primevue 4.1.1 → 4.2.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 (493) hide show
  1. package/accordion/index.mjs.map +1 -1
  2. package/accordion/style/index.mjs +1 -1
  3. package/accordion/style/index.mjs.map +1 -1
  4. package/accordioncontent/index.mjs.map +1 -1
  5. package/accordioncontent/style/index.mjs.map +1 -1
  6. package/accordionheader/index.mjs.map +1 -1
  7. package/accordionheader/style/index.mjs.map +1 -1
  8. package/accordionpanel/index.mjs.map +1 -1
  9. package/accordionpanel/style/index.mjs.map +1 -1
  10. package/accordiontab/index.mjs.map +1 -1
  11. package/accordiontab/style/index.mjs.map +1 -1
  12. package/animateonscroll/index.mjs.map +1 -1
  13. package/animateonscroll/style/index.mjs.map +1 -1
  14. package/autocomplete/AutoComplete.vue +36 -32
  15. package/autocomplete/BaseAutoComplete.vue +2 -19
  16. package/autocomplete/index.d.ts +21 -0
  17. package/autocomplete/index.mjs +40 -53
  18. package/autocomplete/index.mjs.map +1 -1
  19. package/autocomplete/style/index.mjs +7 -7
  20. package/autocomplete/style/index.mjs.map +1 -1
  21. package/avatar/index.mjs.map +1 -1
  22. package/avatar/style/index.mjs +1 -1
  23. package/avatar/style/index.mjs.map +1 -1
  24. package/avatargroup/index.mjs.map +1 -1
  25. package/avatargroup/style/index.mjs.map +1 -1
  26. package/badge/index.mjs.map +1 -1
  27. package/badge/style/index.mjs.map +1 -1
  28. package/badgedirective/index.d.ts +2 -2
  29. package/badgedirective/index.mjs.map +1 -1
  30. package/badgedirective/style/index.mjs.map +1 -1
  31. package/blockui/index.mjs.map +1 -1
  32. package/blockui/style/index.mjs.map +1 -1
  33. package/breadcrumb/Breadcrumb.vue +1 -1
  34. package/breadcrumb/index.mjs +2 -1
  35. package/breadcrumb/index.mjs.map +1 -1
  36. package/breadcrumb/style/index.d.ts +4 -0
  37. package/breadcrumb/style/index.mjs +2 -1
  38. package/breadcrumb/style/index.mjs.map +1 -1
  39. package/button/BaseButton.vue +4 -0
  40. package/button/index.d.ts +6 -0
  41. package/button/index.mjs +4 -0
  42. package/button/index.mjs.map +1 -1
  43. package/button/style/index.mjs +3 -3
  44. package/button/style/index.mjs.map +1 -1
  45. package/buttongroup/index.mjs.map +1 -1
  46. package/buttongroup/style/index.mjs +1 -1
  47. package/buttongroup/style/index.mjs.map +1 -1
  48. package/calendar/index.mjs.map +1 -1
  49. package/calendar/style/index.mjs.map +1 -1
  50. package/card/index.mjs.map +1 -1
  51. package/card/style/index.mjs.map +1 -1
  52. package/carousel/index.mjs.map +1 -1
  53. package/carousel/style/index.mjs +1 -1
  54. package/carousel/style/index.mjs.map +1 -1
  55. package/cascadeselect/BaseCascadeSelect.vue +8 -14
  56. package/cascadeselect/CascadeSelect.vue +34 -25
  57. package/cascadeselect/index.d.ts +45 -0
  58. package/cascadeselect/index.mjs +50 -38
  59. package/cascadeselect/index.mjs.map +1 -1
  60. package/cascadeselect/style/index.d.ts +4 -0
  61. package/cascadeselect/style/index.mjs +8 -5
  62. package/cascadeselect/style/index.mjs.map +1 -1
  63. package/chart/index.mjs.map +1 -1
  64. package/chart/style/index.mjs.map +1 -1
  65. package/checkbox/BaseCheckbox.vue +2 -19
  66. package/checkbox/Checkbox.vue +18 -6
  67. package/checkbox/index.d.ts +17 -0
  68. package/checkbox/index.mjs +20 -25
  69. package/checkbox/index.mjs.map +1 -1
  70. package/checkbox/style/index.mjs +5 -3
  71. package/checkbox/style/index.mjs.map +1 -1
  72. package/checkboxgroup/BaseCheckboxGroup.vue +16 -0
  73. package/checkboxgroup/CheckboxGroup.vue +29 -0
  74. package/checkboxgroup/index.d.ts +160 -0
  75. package/checkboxgroup/index.mjs +46 -0
  76. package/checkboxgroup/index.mjs.map +1 -0
  77. package/checkboxgroup/package.json +11 -0
  78. package/checkboxgroup/style/index.d.ts +19 -0
  79. package/checkboxgroup/style/index.mjs +17 -0
  80. package/checkboxgroup/style/index.mjs.map +1 -0
  81. package/checkboxgroup/style/package.json +6 -0
  82. package/chip/index.mjs.map +1 -1
  83. package/chip/style/index.mjs +1 -1
  84. package/chip/style/index.mjs.map +1 -1
  85. package/chips/index.mjs.map +1 -1
  86. package/chips/style/index.mjs.map +1 -1
  87. package/colorpicker/BaseColorPicker.vue +2 -10
  88. package/colorpicker/ColorPicker.vue +7 -4
  89. package/colorpicker/index.d.ts +22 -0
  90. package/colorpicker/index.mjs +21 -23
  91. package/colorpicker/index.mjs.map +1 -1
  92. package/colorpicker/style/index.mjs +5 -3
  93. package/colorpicker/style/index.mjs.map +1 -1
  94. package/column/index.mjs.map +1 -1
  95. package/column/style/index.mjs.map +1 -1
  96. package/columngroup/index.mjs.map +1 -1
  97. package/columngroup/style/index.mjs.map +1 -1
  98. package/config/index.d.ts +4 -0
  99. package/confirmationservice/index.mjs.map +1 -1
  100. package/confirmdialog/index.mjs.map +1 -1
  101. package/confirmdialog/style/index.mjs.map +1 -1
  102. package/confirmpopup/index.mjs.map +1 -1
  103. package/confirmpopup/style/index.mjs +1 -1
  104. package/confirmpopup/style/index.mjs.map +1 -1
  105. package/contextmenu/index.mjs.map +1 -1
  106. package/contextmenu/style/index.mjs +1 -1
  107. package/contextmenu/style/index.mjs.map +1 -1
  108. package/datatable/BodyCell.vue +15 -6
  109. package/datatable/DataTable.vue +56 -2
  110. package/datatable/FooterCell.vue +15 -6
  111. package/datatable/HeaderCell.vue +15 -6
  112. package/datatable/index.d.ts +12 -8
  113. package/datatable/index.mjs +163 -78
  114. package/datatable/index.mjs.map +1 -1
  115. package/datatable/style/index.mjs +1 -1
  116. package/datatable/style/index.mjs.map +1 -1
  117. package/dataview/DataView.vue +33 -1
  118. package/dataview/index.d.ts +4 -0
  119. package/dataview/index.mjs +42 -6
  120. package/dataview/index.mjs.map +1 -1
  121. package/dataview/style/index.mjs.map +1 -1
  122. package/datepicker/BaseDatePicker.vue +2 -23
  123. package/datepicker/DatePicker.vue +39 -40
  124. package/datepicker/index.d.ts +21 -4
  125. package/datepicker/index.mjs +45 -65
  126. package/datepicker/index.mjs.map +1 -1
  127. package/datepicker/style/index.mjs +4 -5
  128. package/datepicker/style/index.mjs.map +1 -1
  129. package/deferredcontent/index.mjs.map +1 -1
  130. package/deferredcontent/style/index.mjs.map +1 -1
  131. package/dialog/index.mjs.map +1 -1
  132. package/dialog/style/index.mjs +1 -1
  133. package/dialog/style/index.mjs.map +1 -1
  134. package/dialogservice/index.mjs.map +1 -1
  135. package/divider/index.mjs.map +1 -1
  136. package/divider/style/index.mjs +1 -1
  137. package/divider/style/index.mjs.map +1 -1
  138. package/dock/index.mjs.map +1 -1
  139. package/dock/style/index.mjs +1 -1
  140. package/dock/style/index.mjs.map +1 -1
  141. package/drawer/index.mjs.map +1 -1
  142. package/drawer/style/index.mjs +1 -1
  143. package/drawer/style/index.mjs.map +1 -1
  144. package/dropdown/index.mjs.map +1 -1
  145. package/dropdown/style/index.mjs.map +1 -1
  146. package/dynamicdialog/index.mjs.map +1 -1
  147. package/dynamicdialog/style/index.mjs.map +1 -1
  148. package/editor/BaseEditor.vue +2 -3
  149. package/editor/Editor.vue +3 -3
  150. package/editor/index.d.ts +22 -0
  151. package/editor/index.mjs +5 -6
  152. package/editor/index.mjs.map +1 -1
  153. package/editor/style/index.mjs +7 -2
  154. package/editor/style/index.mjs.map +1 -1
  155. package/fieldset/index.mjs.map +1 -1
  156. package/fieldset/style/index.mjs +1 -1
  157. package/fieldset/style/index.mjs.map +1 -1
  158. package/fileupload/index.mjs.map +1 -1
  159. package/fileupload/style/index.mjs +1 -1
  160. package/fileupload/style/index.mjs.map +1 -1
  161. package/floatlabel/index.mjs.map +1 -1
  162. package/floatlabel/style/index.mjs +1 -1
  163. package/floatlabel/style/index.mjs.map +1 -1
  164. package/fluid/index.mjs.map +1 -1
  165. package/fluid/style/index.mjs.map +1 -1
  166. package/focustrap/index.mjs.map +1 -1
  167. package/focustrap/style/index.mjs.map +1 -1
  168. package/galleria/index.mjs.map +1 -1
  169. package/galleria/style/index.mjs +1 -1
  170. package/galleria/style/index.mjs.map +1 -1
  171. package/iconfield/index.mjs.map +1 -1
  172. package/iconfield/style/index.mjs +1 -1
  173. package/iconfield/style/index.mjs.map +1 -1
  174. package/iftalabel/index.mjs.map +1 -1
  175. package/iftalabel/style/index.mjs +1 -1
  176. package/iftalabel/style/index.mjs.map +1 -1
  177. package/image/index.mjs.map +1 -1
  178. package/image/style/index.mjs +1 -1
  179. package/image/style/index.mjs.map +1 -1
  180. package/imagecompare/ImageCompare.vue +33 -1
  181. package/imagecompare/index.mjs +35 -1
  182. package/imagecompare/index.mjs.map +1 -1
  183. package/imagecompare/style/index.mjs +1 -1
  184. package/imagecompare/style/index.mjs.map +1 -1
  185. package/index.d.ts +811 -0
  186. package/index.mjs +531 -0
  187. package/index.mjs.map +1 -0
  188. package/inlinemessage/index.mjs.map +1 -1
  189. package/inlinemessage/style/index.mjs.map +1 -1
  190. package/inplace/index.d.ts +0 -4
  191. package/inplace/index.mjs.map +1 -1
  192. package/inplace/style/index.mjs.map +1 -1
  193. package/inputchips/index.mjs.map +1 -1
  194. package/inputchips/style/index.mjs.map +1 -1
  195. package/inputgroup/index.mjs.map +1 -1
  196. package/inputgroup/style/index.mjs +1 -1
  197. package/inputgroup/style/index.mjs.map +1 -1
  198. package/inputgroupaddon/index.mjs.map +1 -1
  199. package/inputgroupaddon/style/index.mjs.map +1 -1
  200. package/inputicon/index.mjs.map +1 -1
  201. package/inputicon/style/index.mjs.map +1 -1
  202. package/inputmask/BaseInputMask.vue +2 -23
  203. package/inputmask/InputMask.vue +9 -14
  204. package/inputmask/index.d.ts +13 -0
  205. package/inputmask/index.mjs +13 -38
  206. package/inputmask/index.mjs.map +1 -1
  207. package/inputmask/style/index.mjs +1 -1
  208. package/inputmask/style/index.mjs.map +1 -1
  209. package/inputnumber/BaseInputNumber.vue +2 -22
  210. package/inputnumber/InputNumber.vue +14 -16
  211. package/inputnumber/index.d.ts +26 -0
  212. package/inputnumber/index.mjs +22 -39
  213. package/inputnumber/index.mjs.map +1 -1
  214. package/inputnumber/style/index.mjs +3 -3
  215. package/inputnumber/style/index.mjs.map +1 -1
  216. package/inputotp/BaseInputOtp.vue +2 -18
  217. package/inputotp/InputOtp.vue +4 -2
  218. package/inputotp/index.d.ts +21 -0
  219. package/inputotp/index.mjs +7 -21
  220. package/inputotp/index.mjs.map +1 -1
  221. package/inputotp/style/index.mjs +2 -2
  222. package/inputotp/style/index.mjs.map +1 -1
  223. package/inputswitch/index.mjs.map +1 -1
  224. package/inputswitch/style/index.mjs.map +1 -1
  225. package/inputtext/BaseInputText.vue +2 -21
  226. package/inputtext/InputText.vue +13 -22
  227. package/inputtext/index.d.ts +17 -0
  228. package/inputtext/index.mjs +16 -48
  229. package/inputtext/index.mjs.map +1 -1
  230. package/inputtext/style/index.mjs +7 -7
  231. package/inputtext/style/index.mjs.map +1 -1
  232. package/keyfilter/index.mjs.map +1 -1
  233. package/keyfilter/style/index.mjs.map +1 -1
  234. package/knob/BaseKnob.vue +2 -10
  235. package/knob/Knob.vue +23 -19
  236. package/knob/index.d.ts +24 -2
  237. package/knob/index.mjs +31 -32
  238. package/knob/index.mjs.map +1 -1
  239. package/knob/style/index.mjs +4 -2
  240. package/knob/style/index.mjs.map +1 -1
  241. package/listbox/BaseListbox.vue +2 -11
  242. package/listbox/Listbox.vue +21 -20
  243. package/listbox/index.d.ts +17 -0
  244. package/listbox/index.mjs +23 -31
  245. package/listbox/index.mjs.map +1 -1
  246. package/listbox/style/index.mjs +4 -3
  247. package/listbox/style/index.mjs.map +1 -1
  248. package/megamenu/index.mjs.map +1 -1
  249. package/megamenu/style/index.mjs +1 -1
  250. package/megamenu/style/index.mjs.map +1 -1
  251. package/menu/index.mjs.map +1 -1
  252. package/menu/style/index.mjs +1 -1
  253. package/menu/style/index.mjs.map +1 -1
  254. package/menubar/index.mjs.map +1 -1
  255. package/menubar/style/index.mjs +1 -1
  256. package/menubar/style/index.mjs.map +1 -1
  257. package/message/BaseMessage.vue +8 -0
  258. package/message/index.d.ts +9 -0
  259. package/message/index.mjs +8 -0
  260. package/message/index.mjs.map +1 -1
  261. package/message/style/index.mjs +7 -2
  262. package/message/style/index.mjs.map +1 -1
  263. package/metergroup/index.mjs.map +1 -1
  264. package/metergroup/style/index.mjs +1 -1
  265. package/metergroup/style/index.mjs.map +1 -1
  266. package/multiselect/BaseMultiSelect.vue +14 -19
  267. package/multiselect/MultiSelect.vue +45 -31
  268. package/multiselect/index.d.ts +50 -0
  269. package/multiselect/index.mjs +71 -52
  270. package/multiselect/index.mjs.map +1 -1
  271. package/multiselect/style/index.d.ts +4 -0
  272. package/multiselect/style/index.mjs +8 -5
  273. package/multiselect/style/index.mjs.map +1 -1
  274. package/orderlist/index.mjs.map +1 -1
  275. package/orderlist/style/index.mjs.map +1 -1
  276. package/organizationchart/index.mjs.map +1 -1
  277. package/organizationchart/style/index.mjs +1 -1
  278. package/organizationchart/style/index.mjs.map +1 -1
  279. package/overlaybadge/index.mjs.map +1 -1
  280. package/overlaybadge/style/index.mjs +1 -1
  281. package/overlaybadge/style/index.mjs.map +1 -1
  282. package/overlaypanel/index.mjs.map +1 -1
  283. package/overlaypanel/style/index.mjs.map +1 -1
  284. package/package.json +15 -6
  285. package/paginator/Paginator.vue +104 -84
  286. package/paginator/index.d.ts +54 -0
  287. package/paginator/index.mjs +21 -3
  288. package/paginator/index.mjs.map +1 -1
  289. package/paginator/style/index.mjs +1 -1
  290. package/paginator/style/index.mjs.map +1 -1
  291. package/panel/index.mjs.map +1 -1
  292. package/panel/style/index.mjs.map +1 -1
  293. package/panelmenu/index.mjs.map +1 -1
  294. package/panelmenu/style/index.mjs +1 -1
  295. package/panelmenu/style/index.mjs.map +1 -1
  296. package/passthrough/index.mjs.map +1 -1
  297. package/password/BasePassword.vue +2 -15
  298. package/password/Password.vue +13 -18
  299. package/password/index.d.ts +21 -0
  300. package/password/index.mjs +14 -32
  301. package/password/index.mjs.map +1 -1
  302. package/password/style/index.mjs +3 -3
  303. package/password/style/index.mjs.map +1 -1
  304. package/picklist/index.mjs.map +1 -1
  305. package/picklist/style/index.mjs.map +1 -1
  306. package/popover/index.mjs.map +1 -1
  307. package/popover/style/index.mjs +1 -1
  308. package/popover/style/index.mjs.map +1 -1
  309. package/portal/index.mjs.map +1 -1
  310. package/portal/style/index.mjs.map +1 -1
  311. package/progressbar/index.mjs.map +1 -1
  312. package/progressbar/style/index.mjs +1 -1
  313. package/progressbar/style/index.mjs.map +1 -1
  314. package/progressspinner/index.mjs.map +1 -1
  315. package/progressspinner/style/index.mjs.map +1 -1
  316. package/radiobutton/BaseRadioButton.vue +2 -19
  317. package/radiobutton/RadioButton.vue +15 -4
  318. package/radiobutton/index.d.ts +17 -0
  319. package/radiobutton/index.mjs +17 -23
  320. package/radiobutton/index.mjs.map +1 -1
  321. package/radiobutton/style/index.mjs +5 -3
  322. package/radiobutton/style/index.mjs.map +1 -1
  323. package/radiobuttongroup/BaseRadioButtonGroup.vue +16 -0
  324. package/radiobuttongroup/RadioButtonGroup.vue +29 -0
  325. package/radiobuttongroup/index.d.ts +160 -0
  326. package/radiobuttongroup/index.mjs +46 -0
  327. package/radiobuttongroup/index.mjs.map +1 -0
  328. package/radiobuttongroup/package.json +11 -0
  329. package/radiobuttongroup/style/index.d.ts +19 -0
  330. package/radiobuttongroup/style/index.mjs +17 -0
  331. package/radiobuttongroup/style/index.mjs.map +1 -0
  332. package/radiobuttongroup/style/package.json +6 -0
  333. package/rating/BaseRating.vue +2 -10
  334. package/rating/Rating.vue +17 -16
  335. package/rating/index.d.ts +18 -0
  336. package/rating/index.mjs +17 -23
  337. package/rating/index.mjs.map +1 -1
  338. package/rating/style/index.mjs +14 -5
  339. package/rating/style/index.mjs.map +1 -1
  340. package/ripple/index.mjs.map +1 -1
  341. package/ripple/style/index.mjs.map +1 -1
  342. package/row/index.mjs.map +1 -1
  343. package/row/style/index.mjs.map +1 -1
  344. package/scrollpanel/ScrollPanel.vue +38 -5
  345. package/scrollpanel/index.mjs +58 -28
  346. package/scrollpanel/index.mjs.map +1 -1
  347. package/scrollpanel/style/index.mjs +1 -1
  348. package/scrollpanel/style/index.mjs.map +1 -1
  349. package/scrolltop/index.mjs.map +1 -1
  350. package/scrolltop/style/index.mjs +1 -1
  351. package/scrolltop/style/index.mjs.map +1 -1
  352. package/select/BaseSelect.vue +2 -19
  353. package/select/Select.vue +15 -19
  354. package/select/index.d.ts +21 -0
  355. package/select/index.mjs +18 -40
  356. package/select/index.mjs.map +1 -1
  357. package/select/style/index.mjs +7 -5
  358. package/select/style/index.mjs.map +1 -1
  359. package/selectbutton/BaseSelectButton.vue +6 -8
  360. package/selectbutton/SelectButton.vue +9 -8
  361. package/selectbutton/index.d.ts +21 -0
  362. package/selectbutton/index.mjs +15 -16
  363. package/selectbutton/index.mjs.map +1 -1
  364. package/selectbutton/style/index.mjs +3 -3
  365. package/selectbutton/style/index.mjs.map +1 -1
  366. package/sidebar/index.mjs.map +1 -1
  367. package/sidebar/style/index.mjs.map +1 -1
  368. package/skeleton/index.mjs.map +1 -1
  369. package/skeleton/style/index.mjs +1 -1
  370. package/skeleton/style/index.mjs.map +1 -1
  371. package/slider/BaseSlider.vue +2 -7
  372. package/slider/Slider.vue +94 -38
  373. package/slider/index.d.ts +22 -0
  374. package/slider/index.mjs +145 -72
  375. package/slider/index.mjs.map +1 -1
  376. package/slider/style/index.mjs +4 -2
  377. package/slider/style/index.mjs.map +1 -1
  378. package/speeddial/index.mjs.map +1 -1
  379. package/speeddial/style/index.mjs +1 -1
  380. package/speeddial/style/index.mjs.map +1 -1
  381. package/splitbutton/index.mjs.map +1 -1
  382. package/splitbutton/style/index.mjs +1 -1
  383. package/splitbutton/style/index.mjs.map +1 -1
  384. package/splitter/Splitter.vue +31 -3
  385. package/splitter/index.mjs +50 -20
  386. package/splitter/index.mjs.map +1 -1
  387. package/splitter/style/index.mjs.map +1 -1
  388. package/splitterpanel/index.mjs.map +1 -1
  389. package/splitterpanel/style/index.mjs.map +1 -1
  390. package/step/index.mjs.map +1 -1
  391. package/step/style/index.mjs.map +1 -1
  392. package/stepitem/index.mjs.map +1 -1
  393. package/stepitem/style/index.mjs.map +1 -1
  394. package/steplist/index.mjs.map +1 -1
  395. package/steplist/style/index.mjs.map +1 -1
  396. package/steppanel/index.mjs.map +1 -1
  397. package/steppanel/style/index.mjs.map +1 -1
  398. package/steppanels/index.mjs.map +1 -1
  399. package/steppanels/style/index.mjs.map +1 -1
  400. package/stepper/index.mjs.map +1 -1
  401. package/stepper/style/index.mjs +1 -1
  402. package/stepper/style/index.mjs.map +1 -1
  403. package/steps/index.mjs.map +1 -1
  404. package/steps/style/index.mjs +1 -1
  405. package/steps/style/index.mjs.map +1 -1
  406. package/styleclass/index.mjs.map +1 -1
  407. package/styleclass/style/index.mjs.map +1 -1
  408. package/tab/index.mjs.map +1 -1
  409. package/tab/style/index.mjs.map +1 -1
  410. package/tablist/TabList.vue +40 -5
  411. package/tablist/index.mjs +38 -5
  412. package/tablist/index.mjs.map +1 -1
  413. package/tablist/style/index.mjs.map +1 -1
  414. package/tabmenu/index.mjs.map +1 -1
  415. package/tabmenu/style/index.mjs.map +1 -1
  416. package/tabpanel/index.mjs.map +1 -1
  417. package/tabpanel/style/index.mjs.map +1 -1
  418. package/tabpanels/index.mjs.map +1 -1
  419. package/tabpanels/style/index.mjs.map +1 -1
  420. package/tabs/index.mjs.map +1 -1
  421. package/tabs/style/index.mjs +1 -1
  422. package/tabs/style/index.mjs.map +1 -1
  423. package/tabview/index.mjs.map +1 -1
  424. package/tabview/style/index.mjs.map +1 -1
  425. package/tag/index.mjs.map +1 -1
  426. package/tag/style/index.mjs.map +1 -1
  427. package/terminal/index.mjs.map +1 -1
  428. package/terminal/style/index.mjs +1 -1
  429. package/terminal/style/index.mjs.map +1 -1
  430. package/textarea/BaseTextarea.vue +3 -16
  431. package/textarea/Textarea.vue +13 -19
  432. package/textarea/index.d.ts +21 -0
  433. package/textarea/index.mjs +14 -38
  434. package/textarea/index.mjs.map +1 -1
  435. package/textarea/style/index.mjs +7 -5
  436. package/textarea/style/index.mjs.map +1 -1
  437. package/tieredmenu/index.mjs.map +1 -1
  438. package/tieredmenu/style/index.mjs +1 -1
  439. package/tieredmenu/style/index.mjs.map +1 -1
  440. package/timeline/index.mjs.map +1 -1
  441. package/timeline/style/index.mjs.map +1 -1
  442. package/toast/Toast.vue +0 -1
  443. package/toast/index.mjs.map +1 -1
  444. package/toast/style/index.mjs +1 -1
  445. package/toast/style/index.mjs.map +1 -1
  446. package/toastservice/index.mjs.map +1 -1
  447. package/togglebutton/BaseToggleButton.vue +6 -11
  448. package/togglebutton/ToggleButton.vue +11 -7
  449. package/togglebutton/index.d.ts +21 -0
  450. package/togglebutton/index.mjs +20 -18
  451. package/togglebutton/index.mjs.map +1 -1
  452. package/togglebutton/style/index.mjs +4 -2
  453. package/togglebutton/style/index.mjs.map +1 -1
  454. package/toggleswitch/BaseToggleSwitch.vue +2 -14
  455. package/toggleswitch/ToggleSwitch.vue +4 -3
  456. package/toggleswitch/index.d.ts +17 -0
  457. package/toggleswitch/index.mjs +7 -17
  458. package/toggleswitch/index.mjs.map +1 -1
  459. package/toggleswitch/style/index.mjs +2 -2
  460. package/toggleswitch/style/index.mjs.map +1 -1
  461. package/toolbar/index.mjs.map +1 -1
  462. package/toolbar/style/index.mjs.map +1 -1
  463. package/tooltip/index.mjs.map +1 -1
  464. package/tooltip/style/index.mjs.map +1 -1
  465. package/tree/TreeNode.vue +1 -1
  466. package/tree/index.mjs +2 -2
  467. package/tree/index.mjs.map +1 -1
  468. package/tree/style/index.mjs +1 -1
  469. package/tree/style/index.mjs.map +1 -1
  470. package/treeselect/BaseTreeSelect.vue +18 -19
  471. package/treeselect/TreeSelect.vue +61 -18
  472. package/treeselect/index.d.ts +80 -26
  473. package/treeselect/index.mjs +87 -38
  474. package/treeselect/index.mjs.map +1 -1
  475. package/treeselect/style/index.d.ts +4 -0
  476. package/treeselect/style/index.mjs +8 -5
  477. package/treeselect/style/index.mjs.map +1 -1
  478. package/treetable/BodyCell.vue +21 -12
  479. package/treetable/FooterCell.vue +15 -6
  480. package/treetable/HeaderCell.vue +15 -6
  481. package/treetable/TreeTable.vue +57 -2
  482. package/treetable/index.d.ts +12 -8
  483. package/treetable/index.mjs +146 -59
  484. package/treetable/index.mjs.map +1 -1
  485. package/treetable/style/index.mjs +1 -1
  486. package/treetable/style/index.mjs.map +1 -1
  487. package/umd/primevue.min.js +1 -1
  488. package/useconfirm/index.mjs.map +1 -1
  489. package/usedialog/index.mjs.map +1 -1
  490. package/usetoast/index.mjs.map +1 -1
  491. package/virtualscroller/index.mjs.map +1 -1
  492. package/virtualscroller/style/index.mjs.map +1 -1
  493. package/web-types.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/multiselect/BaseMultiSelect.vue","../../src/multiselect/MultiSelect.vue","../../src/multiselect/MultiSelect.vue?vue&type=template&id=03a91e5e&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport MultiSelectStyle from 'primevue/multiselect/style';\n\nexport default {\n name: 'BaseMultiSelect',\n extends: BaseComponent,\n props: {\n modelValue: null,\n options: Array,\n optionLabel: null,\n optionValue: null,\n optionDisabled: null,\n optionGroupLabel: null,\n optionGroupChildren: null,\n scrollHeight: {\n type: String,\n default: '14rem'\n },\n placeholder: String,\n variant: {\n type: String,\n default: null\n },\n invalid: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n fluid: {\n type: Boolean,\n default: null\n },\n inputId: {\n type: String,\n default: null\n },\n panelClass: {\n type: String,\n default: null\n },\n panelStyle: {\n type: null,\n default: null\n },\n overlayClass: {\n type: String,\n default: null\n },\n overlayStyle: {\n type: null,\n default: null\n },\n dataKey: null,\n filter: Boolean,\n filterPlaceholder: String,\n filterLocale: String,\n filterMatchMode: {\n type: String,\n default: 'contains'\n },\n filterFields: {\n type: Array,\n default: null\n },\n appendTo: {\n type: [String, Object],\n default: 'body'\n },\n display: {\n type: String,\n default: 'comma'\n },\n selectedItemsLabel: {\n type: String,\n default: null\n },\n maxSelectedLabels: {\n type: Number,\n default: null\n },\n selectionLimit: {\n type: Number,\n default: null\n },\n showToggleAll: {\n type: Boolean,\n default: true\n },\n loading: {\n type: Boolean,\n default: false\n },\n checkboxIcon: {\n type: String,\n default: undefined\n },\n dropdownIcon: {\n type: String,\n default: undefined\n },\n filterIcon: {\n type: String,\n default: undefined\n },\n loadingIcon: {\n type: String,\n default: undefined\n },\n removeTokenIcon: {\n type: String,\n default: undefined\n },\n chipIcon: {\n type: String,\n default: undefined\n },\n selectAll: {\n type: Boolean,\n default: null\n },\n resetFilterOnHide: {\n type: Boolean,\n default: false\n },\n virtualScrollerOptions: {\n type: Object,\n default: null\n },\n autoOptionFocus: {\n type: Boolean,\n default: false\n },\n autoFilterFocus: {\n type: Boolean,\n default: false\n },\n focusOnHover: {\n type: Boolean,\n default: true\n },\n highlightOnSelect: {\n type: Boolean,\n default: false\n },\n filterMessage: {\n type: String,\n default: null\n },\n selectionMessage: {\n type: String,\n default: null\n },\n emptySelectionMessage: {\n type: String,\n default: null\n },\n emptyFilterMessage: {\n type: String,\n default: null\n },\n emptyMessage: {\n type: String,\n default: null\n },\n tabindex: {\n type: Number,\n default: 0\n },\n ariaLabel: {\n type: String,\n default: null\n },\n ariaLabelledby: {\n type: String,\n default: null\n }\n },\n style: MultiSelectStyle,\n provide() {\n return {\n $pcMultiSelect: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <div ref=\"container\" :class=\"cx('root')\" :style=\"sx('root')\" @click=\"onContainerClick\" v-bind=\"ptmi('root')\">\n <div class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenInputContainer')\" :data-p-hidden-accessible=\"true\">\n <input\n ref=\"focusInput\"\n :id=\"inputId\"\n type=\"text\"\n readonly\n :disabled=\"disabled\"\n :placeholder=\"placeholder\"\n :tabindex=\"!disabled ? tabindex : -1\"\n role=\"combobox\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n aria-haspopup=\"listbox\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"id + '_list'\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-invalid=\"invalid || undefined\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n v-bind=\"ptm('hiddenInput')\"\n />\n </div>\n <div :class=\"cx('labelContainer')\" v-bind=\"ptm('labelContainer')\">\n <div :class=\"cx('label')\" v-bind=\"ptm('label')\">\n <slot name=\"value\" :value=\"modelValue\" :placeholder=\"placeholder\">\n <template v-if=\"display === 'comma'\">\n {{ label || 'empty' }}\n </template>\n <template v-else-if=\"display === 'chip'\">\n <template v-if=\"chipSelectedItems\">\n <span>{{ label }}</span>\n </template>\n <template v-else>\n <span v-for=\"item of modelValue\" :key=\"getLabelByValue(item)\" :class=\"cx('chipItem')\" v-bind=\"ptm('chipItem')\">\n <slot name=\"chip\" :value=\"item\" :removeCallback=\"(event) => removeOption(event, item)\">\n <!-- TODO: removetokenicon and removeTokenIcon deprecated since v4.0. Use chipicon slot and chipIcon prop-->\n <Chip :class=\"cx('pcChip')\" :label=\"getLabelByValue(item)\" :removeIcon=\"chipIcon || removeTokenIcon\" removable :unstyled=\"unstyled\" @remove=\"removeOption($event, item)\" :pt=\"ptm('pcChip')\">\n <template #removeicon>\n <slot :name=\"$slots.chipicon ? 'chipicon' : 'removetokenicon'\" :class=\"cx('chipIcon')\" :item=\"item\" :removeCallback=\"(event) => removeOption(event, item)\" />\n </template>\n </Chip>\n </slot>\n </span>\n </template>\n <template v-if=\"!modelValue || modelValue.length === 0\">{{ placeholder || 'empty' }}</template>\n </template>\n </slot>\n </div>\n </div>\n <div :class=\"cx('dropdown')\" v-bind=\"ptm('dropdown')\">\n <slot v-if=\"loading\" name=\"loadingicon\" :class=\"cx('loadingIcon')\">\n <span v-if=\"loadingIcon\" :class=\"[cx('loadingIcon'), 'pi-spin', loadingIcon]\" aria-hidden=\"true\" v-bind=\"ptm('loadingIcon')\" />\n <SpinnerIcon v-else :class=\"cx('loadingIcon')\" spin aria-hidden=\"true\" v-bind=\"ptm('loadingIcon')\" />\n </slot>\n <slot v-else name=\"dropdownicon\" :class=\"cx('dropdownIcon')\">\n <component :is=\"dropdownIcon ? 'span' : 'ChevronDownIcon'\" :class=\"[cx('dropdownIcon'), dropdownIcon]\" aria-hidden=\"true\" v-bind=\"ptm('dropdownIcon')\" />\n </slot>\n </div>\n <Portal :appendTo=\"appendTo\">\n <transition name=\"p-connected-overlay\" @enter=\"onOverlayEnter\" @after-enter=\"onOverlayAfterEnter\" @leave=\"onOverlayLeave\" @after-leave=\"onOverlayAfterLeave\" v-bind=\"ptm('transition')\">\n <div v-if=\"overlayVisible\" :ref=\"overlayRef\" :style=\"[panelStyle, overlayStyle]\" :class=\"[cx('overlay'), panelClass, overlayClass]\" @click=\"onOverlayClick\" @keydown=\"onOverlayKeyDown\" v-bind=\"ptm('overlay')\">\n <span\n ref=\"firstHiddenFocusableElementOnOverlay\"\n role=\"presentation\"\n aria-hidden=\"true\"\n class=\"p-hidden-accessible p-hidden-focusable\"\n :tabindex=\"0\"\n @focus=\"onFirstHiddenFocus\"\n v-bind=\"ptm('hiddenFirstFocusableEl')\"\n :data-p-hidden-accessible=\"true\"\n :data-p-hidden-focusable=\"true\"\n ></span>\n <slot name=\"header\" :value=\"modelValue\" :options=\"visibleOptions\"></slot>\n <div v-if=\"(showToggleAll && selectionLimit == null) || filter\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <Checkbox\n v-if=\"showToggleAll && selectionLimit == null\"\n :modelValue=\"allSelected\"\n :binary=\"true\"\n :disabled=\"disabled\"\n :variant=\"variant\"\n :aria-label=\"toggleAllAriaLabel\"\n @change=\"onToggleAll\"\n :unstyled=\"unstyled\"\n :pt=\"getHeaderCheckboxPTOptions('pcHeaderCheckbox')\"\n >\n <template #icon=\"slotProps\">\n <component v-if=\"$slots.headercheckboxicon\" :is=\"$slots.headercheckboxicon\" :checked=\"slotProps.checked\" :class=\"slotProps.class\" />\n <component v-else-if=\"slotProps.checked\" :is=\"checkboxIcon ? 'span' : 'CheckIcon'\" :class=\"[slotProps.class, { [checkboxIcon]: slotProps.checked }]\" v-bind=\"getHeaderCheckboxPTOptions('pcHeaderCheckbox.icon')\" />\n </template>\n </Checkbox>\n <IconField v-if=\"filter\" :class=\"cx('pcFilterContainer')\" :unstyled=\"unstyled\" :pt=\"ptm('pcFilterContainer')\">\n <InputText\n ref=\"filterInput\"\n :value=\"filterValue\"\n @vue:mounted=\"onFilterUpdated\"\n @vue:updated=\"onFilterUpdated\"\n :class=\"cx('pcFilter')\"\n :placeholder=\"filterPlaceholder\"\n :disabled=\"disabled\"\n :variant=\"variant\"\n :unstyled=\"unstyled\"\n role=\"searchbox\"\n autocomplete=\"off\"\n :aria-owns=\"id + '_list'\"\n :aria-activedescendant=\"focusedOptionId\"\n @keydown=\"onFilterKeyDown\"\n @blur=\"onFilterBlur\"\n @input=\"onFilterChange\"\n :pt=\"ptm('pcFilter')\"\n />\n <InputIcon :unstyled=\"unstyled\" :pt=\"ptm('pcFilterIconContainer')\">\n <slot name=\"filtericon\">\n <span v-if=\"filterIcon\" :class=\"filterIcon\" v-bind=\"ptm('filterIcon')\" />\n <SearchIcon v-else v-bind=\"ptm('filterIcon')\" />\n </slot>\n </InputIcon>\n </IconField>\n <span v-if=\"filter\" role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenFilterResult')\" :data-p-hidden-accessible=\"true\">\n {{ filterResultMessageText }}\n </span>\n </div>\n <div :class=\"cx('listContainer')\" :style=\"{ 'max-height': virtualScrollerDisabled ? scrollHeight : '' }\" v-bind=\"ptm('listContainer')\">\n <VirtualScroller :ref=\"virtualScrollerRef\" v-bind=\"virtualScrollerOptions\" :items=\"visibleOptions\" :style=\"{ height: scrollHeight }\" :tabindex=\"-1\" :disabled=\"virtualScrollerDisabled\" :pt=\"ptm('virtualScroller')\">\n <template v-slot:content=\"{ styleClass, contentRef, items, getItemOptions, contentStyle, itemSize }\">\n <ul :ref=\"(el) => listRef(el, contentRef)\" :id=\"id + '_list'\" :class=\"[cx('list'), styleClass]\" :style=\"contentStyle\" role=\"listbox\" aria-multiselectable=\"true\" :aria-label=\"listAriaLabel\" v-bind=\"ptm('list')\">\n <template v-for=\"(option, i) of items\" :key=\"getOptionRenderKey(option, getOptionIndex(i, getItemOptions))\">\n <li\n v-if=\"isOptionGroup(option)\"\n :id=\"id + '_' + getOptionIndex(i, getItemOptions)\"\n :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\"\n :class=\"cx('optionGroup')\"\n role=\"option\"\n v-bind=\"ptm('optionGroup')\"\n >\n <slot name=\"optiongroup\" :option=\"option.optionGroup\" :index=\"getOptionIndex(i, getItemOptions)\">{{ getOptionGroupLabel(option.optionGroup) }}</slot>\n </li>\n <li\n v-else\n :id=\"id + '_' + getOptionIndex(i, getItemOptions)\"\n v-ripple\n :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\"\n :class=\"cx('option', { option, index: i, getItemOptions })\"\n role=\"option\"\n :aria-label=\"getOptionLabel(option)\"\n :aria-selected=\"isSelected(option)\"\n :aria-disabled=\"isOptionDisabled(option)\"\n :aria-setsize=\"ariaSetSize\"\n :aria-posinset=\"getAriaPosInset(getOptionIndex(i, getItemOptions))\"\n @click=\"onOptionSelect($event, option, getOptionIndex(i, getItemOptions), true)\"\n @mousemove=\"onOptionMouseMove($event, getOptionIndex(i, getItemOptions))\"\n v-bind=\"getCheckboxPTOptions(option, getItemOptions, i, 'option')\"\n :data-p-selected=\"isSelected(option)\"\n :data-p-focused=\"focusedOptionIndex === getOptionIndex(i, getItemOptions)\"\n :data-p-disabled=\"isOptionDisabled(option)\"\n >\n <Checkbox :modelValue=\"isSelected(option)\" :binary=\"true\" :tabindex=\"-1\" :variant=\"variant\" :unstyled=\"unstyled\" :pt=\"getCheckboxPTOptions(option, getItemOptions, i, 'pcOptionCheckbox')\">\n <template #icon=\"slotProps\">\n <component v-if=\"$slots.optioncheckboxicon || $slots.itemcheckboxicon\" :is=\"$slots.optioncheckboxicon || $slots.itemcheckboxicon\" :checked=\"slotProps.checked\" :class=\"slotProps.class\" />\n <component\n v-else-if=\"slotProps.checked\"\n :is=\"checkboxIcon ? 'span' : 'CheckIcon'\"\n :class=\"[slotProps.class, { [checkboxIcon]: slotProps.checked }]\"\n v-bind=\"getCheckboxPTOptions(option, getItemOptions, i, 'pcOptionCheckbox.icon')\"\n />\n </template>\n </Checkbox>\n <slot name=\"option\" :option=\"option\" :selected=\"isSelected(option)\" :index=\"getOptionIndex(i, getItemOptions)\">\n <span v-bind=\"ptm('optionLabel')\">{{ getOptionLabel(option) }}</span>\n </slot>\n </li>\n </template>\n <li v-if=\"filterValue && (!items || (items && items.length === 0))\" :class=\"cx('emptyMessage')\" role=\"option\" v-bind=\"ptm('emptyMessage')\">\n <slot name=\"emptyfilter\">{{ emptyFilterMessageText }}</slot>\n </li>\n <li v-else-if=\"!options || (options && options.length === 0)\" :class=\"cx('emptyMessage')\" role=\"option\" v-bind=\"ptm('emptyMessage')\">\n <slot name=\"empty\">{{ emptyMessageText }}</slot>\n </li>\n </ul>\n </template>\n <template v-if=\"$slots.loader\" v-slot:loader=\"{ options }\">\n <slot name=\"loader\" :options=\"options\"></slot>\n </template>\n </VirtualScroller>\n </div>\n <slot name=\"footer\" :value=\"modelValue\" :options=\"visibleOptions\"></slot>\n <span v-if=\"!options || (options && options.length === 0)\" role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenEmptyMessage')\" :data-p-hidden-accessible=\"true\">\n {{ emptyMessageText }}\n </span>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenSelectedMessage')\" :data-p-hidden-accessible=\"true\">\n {{ selectedMessageText }}\n </span>\n <span\n ref=\"lastHiddenFocusableElementOnOverlay\"\n role=\"presentation\"\n aria-hidden=\"true\"\n class=\"p-hidden-accessible p-hidden-focusable\"\n :tabindex=\"0\"\n @focus=\"onLastHiddenFocus\"\n v-bind=\"ptm('hiddenLastFocusableEl')\"\n :data-p-hidden-accessible=\"true\"\n :data-p-hidden-focusable=\"true\"\n ></span>\n </div>\n </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { absolutePosition, addStyle, findSingle, focus, getFirstFocusableElement, getFocusableElements, getLastFocusableElement, getOuterWidth, isTouchDevice, relativePosition } from '@primeuix/utils/dom';\nimport { equals, findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, resolveFieldData } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { FilterService } from '@primevue/core/api';\nimport { ConnectedOverlayScrollHandler, UniqueComponentId } from '@primevue/core/utils';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport SearchIcon from '@primevue/icons/search';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport TimesIcon from '@primevue/icons/times';\nimport Checkbox from 'primevue/checkbox';\nimport Chip from 'primevue/chip';\nimport IconField from 'primevue/iconfield';\nimport InputIcon from 'primevue/inputicon';\nimport InputText from 'primevue/inputtext';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Ripple from 'primevue/ripple';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseMultiSelect from './BaseMultiSelect.vue';\n\nexport default {\n name: 'MultiSelect',\n extends: BaseMultiSelect,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur', 'before-show', 'before-hide', 'show', 'hide', 'filter', 'selectall-change'],\n inject: {\n $pcFluid: { default: null }\n },\n outsideClickListener: null,\n scrollHandler: null,\n resizeListener: null,\n overlay: null,\n list: null,\n virtualScroller: null,\n startRangeIndex: -1,\n searchTimeout: null,\n searchValue: '',\n selectOnFocus: false,\n data() {\n return {\n id: this.$attrs.id,\n clicked: false,\n focused: false,\n focusedOptionIndex: -1,\n filterValue: null,\n overlayVisible: false\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n },\n options() {\n this.autoUpdateModel();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n },\n beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.overlay = null;\n }\n },\n methods: {\n getOptionIndex(index, fn) {\n return this.virtualScrollerDisabled ? index : fn && fn(index)['index'];\n },\n getOptionLabel(option) {\n return this.optionLabel ? resolveFieldData(option, this.optionLabel) : option;\n },\n getOptionValue(option) {\n return this.optionValue ? resolveFieldData(option, this.optionValue) : option;\n },\n getOptionRenderKey(option, index) {\n return this.dataKey ? resolveFieldData(option, this.dataKey) : this.getOptionLabel(option) + `_${index}`;\n },\n getHeaderCheckboxPTOptions(key) {\n return this.ptm(key, {\n context: {\n selected: this.allSelected\n }\n });\n },\n getCheckboxPTOptions(option, itemOptions, index, key) {\n return this.ptm(key, {\n context: {\n selected: this.isSelected(option),\n focused: this.focusedOptionIndex === this.getOptionIndex(index, itemOptions),\n disabled: this.isOptionDisabled(option)\n }\n });\n },\n isOptionDisabled(option) {\n if (this.maxSelectionLimitReached && !this.isSelected(option)) {\n return true;\n }\n\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n },\n isOptionGroup(option) {\n return this.optionGroupLabel && option.optionGroup && option.group;\n },\n getOptionGroupLabel(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupLabel);\n },\n getOptionGroupChildren(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupChildren);\n },\n getAriaPosInset(index) {\n return (this.optionGroupLabel ? index - this.visibleOptions.slice(0, index).filter((option) => this.isOptionGroup(option)).length : index) + 1;\n },\n show(isFocus) {\n this.$emit('before-show');\n this.overlayVisible = true;\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex();\n\n isFocus && focus(this.$refs.focusInput);\n },\n hide(isFocus) {\n const _hide = () => {\n this.$emit('before-hide');\n this.overlayVisible = false;\n this.clicked = false;\n this.focusedOptionIndex = -1;\n this.searchValue = '';\n\n this.resetFilterOnHide && (this.filterValue = null);\n isFocus && focus(this.$refs.focusInput);\n };\n\n setTimeout(() => {\n _hide();\n }, 0); // For ScreenReaders\n },\n onFocus(event) {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n\n this.focused = true;\n\n if (this.overlayVisible) {\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex();\n this.scrollInView(this.focusedOptionIndex);\n }\n\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.clicked = false;\n this.focused = false;\n this.focusedOptionIndex = -1;\n this.searchValue = '';\n this.$emit('blur', event);\n },\n onKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n\n return;\n }\n\n const metaKey = event.metaKey || event.ctrlKey;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'ShiftLeft':\n case 'ShiftRight':\n this.onShiftKey(event);\n break;\n\n default:\n if (event.code === 'KeyA' && metaKey) {\n const value = this.visibleOptions.filter((option) => this.isValidOption(option)).map((option) => this.getOptionValue(option));\n\n this.updateModel(event, value);\n\n event.preventDefault();\n break;\n }\n\n if (!metaKey && isPrintableCharacter(event.key)) {\n !this.overlayVisible && this.show();\n this.searchOptions(event);\n event.preventDefault();\n }\n\n break;\n }\n\n this.clicked = false;\n },\n onContainerClick(event) {\n if (this.disabled || this.loading) {\n return;\n }\n\n if (!this.overlay || !this.overlay.contains(event.target)) {\n this.overlayVisible ? this.hide(true) : this.show(true);\n }\n\n this.clicked = true;\n },\n onFirstHiddenFocus(event) {\n const focusableEl = event.relatedTarget === this.$refs.focusInput ? getFirstFocusableElement(this.overlay, ':not([data-p-hidden-focusable=\"true\"])') : this.$refs.focusInput;\n\n focus(focusableEl);\n },\n onLastHiddenFocus(event) {\n const focusableEl = event.relatedTarget === this.$refs.focusInput ? getLastFocusableElement(this.overlay, ':not([data-p-hidden-focusable=\"true\"])') : this.$refs.focusInput;\n\n focus(focusableEl);\n },\n onOptionSelect(event, option, index = -1, isFocus = false) {\n if (this.disabled || this.isOptionDisabled(option)) {\n return;\n }\n\n let selected = this.isSelected(option);\n let value = null;\n\n if (selected) value = this.modelValue.filter((val) => !equals(val, this.getOptionValue(option), this.equalityKey));\n else value = [...(this.modelValue || []), this.getOptionValue(option)];\n\n this.updateModel(event, value);\n index !== -1 && (this.focusedOptionIndex = index);\n isFocus && focus(this.$refs.focusInput);\n },\n onOptionMouseMove(event, index) {\n if (this.focusOnHover) {\n this.changeFocusedOptionIndex(event, index);\n }\n },\n onOptionSelectRange(event, start = -1, end = -1) {\n start === -1 && (start = this.findNearestSelectedOptionIndex(end, true));\n end === -1 && (end = this.findNearestSelectedOptionIndex(start));\n\n if (start !== -1 && end !== -1) {\n const rangeStart = Math.min(start, end);\n const rangeEnd = Math.max(start, end);\n const value = this.visibleOptions\n .slice(rangeStart, rangeEnd + 1)\n .filter((option) => this.isValidOption(option))\n .map((option) => this.getOptionValue(option));\n\n this.updateModel(event, value);\n }\n },\n onFilterChange(event) {\n const value = event.target.value;\n\n this.filterValue = value;\n this.focusedOptionIndex = -1;\n this.$emit('filter', { originalEvent: event, value });\n\n !this.virtualScrollerDisabled && this.virtualScroller.scrollToIndex(0);\n },\n onFilterKeyDown(event) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event, true);\n break;\n\n case 'ArrowLeft':\n case 'ArrowRight':\n this.onArrowLeftKey(event, true);\n break;\n\n case 'Home':\n this.onHomeKey(event, true);\n break;\n\n case 'End':\n this.onEndKey(event, true);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event, true);\n break;\n\n default:\n break;\n }\n },\n onFilterBlur() {\n this.focusedOptionIndex = -1;\n },\n onFilterUpdated() {\n if (this.overlayVisible) {\n this.alignOverlay();\n }\n },\n onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.$el\n });\n },\n onOverlayKeyDown(event) {\n switch (event.code) {\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n if (!this.overlayVisible) {\n this.show();\n } else {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();\n\n if (event.shiftKey) {\n this.onOptionSelectRange(event, this.startRangeIndex, optionIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n\n event.preventDefault();\n },\n onArrowUpKey(event, pressedInInputText = false) {\n if (event.altKey && !pressedInInputText) {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.overlayVisible && this.hide();\n event.preventDefault();\n } else {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();\n\n if (event.shiftKey) {\n this.onOptionSelectRange(event, optionIndex, this.startRangeIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n }\n },\n onArrowLeftKey(event, pressedInInputText = false) {\n pressedInInputText && (this.focusedOptionIndex = -1);\n },\n onHomeKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n const target = event.currentTarget;\n\n if (event.shiftKey) {\n target.setSelectionRange(0, event.target.selectionStart);\n } else {\n target.setSelectionRange(0, 0);\n this.focusedOptionIndex = -1;\n }\n } else {\n let metaKey = event.metaKey || event.ctrlKey;\n let optionIndex = this.findFirstOptionIndex();\n\n if (event.shiftKey && metaKey) {\n this.onOptionSelectRange(event, optionIndex, this.startRangeIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n\n !this.overlayVisible && this.show();\n }\n\n event.preventDefault();\n },\n onEndKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n const target = event.currentTarget;\n\n if (event.shiftKey) {\n target.setSelectionRange(event.target.selectionStart, target.value.length);\n } else {\n const len = target.value.length;\n\n target.setSelectionRange(len, len);\n this.focusedOptionIndex = -1;\n }\n } else {\n let metaKey = event.metaKey || event.ctrlKey;\n let optionIndex = this.findLastOptionIndex();\n\n if (event.shiftKey && metaKey) {\n this.onOptionSelectRange(event, this.startRangeIndex, optionIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n\n !this.overlayVisible && this.show();\n }\n\n event.preventDefault();\n },\n onPageUpKey(event) {\n this.scrollInView(0);\n event.preventDefault();\n },\n onPageDownKey(event) {\n this.scrollInView(this.visibleOptions.length - 1);\n event.preventDefault();\n },\n onEnterKey(event) {\n if (!this.overlayVisible) {\n this.focusedOptionIndex = -1; // reset\n this.onArrowDownKey(event);\n } else {\n if (this.focusedOptionIndex !== -1) {\n if (event.shiftKey) this.onOptionSelectRange(event, this.focusedOptionIndex);\n else this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n }\n\n event.preventDefault();\n },\n onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\n },\n onTabKey(event, pressedInInputText = false) {\n if (!pressedInInputText) {\n if (this.overlayVisible && this.hasFocusableElements()) {\n focus(event.shiftKey ? this.$refs.lastHiddenFocusableElementOnOverlay : this.$refs.firstHiddenFocusableElementOnOverlay);\n\n event.preventDefault();\n } else {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.overlayVisible && this.hide(this.filter);\n }\n }\n },\n onShiftKey() {\n this.startRangeIndex = this.focusedOptionIndex;\n },\n onOverlayEnter(el) {\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n\n addStyle(el, { position: 'absolute', top: '0', left: '0' });\n this.alignOverlay();\n this.scrollInView();\n\n this.autoFilterFocus && focus(this.$refs.filterInput.$el);\n },\n onOverlayAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.$emit('show');\n },\n onOverlayLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n\n this.$emit('hide');\n this.overlay = null;\n },\n onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n alignOverlay() {\n if (this.appendTo === 'self') {\n relativePosition(this.overlay, this.$el);\n } else {\n this.overlay.style.minWidth = getOuterWidth(this.$el) + 'px';\n absolutePosition(this.overlay, this.$el);\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.overlayVisible && this.isOutsideClicked(event)) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n isOutsideClicked(event) {\n return !(this.$el.isSameNode(event.target) || this.$el.contains(event.target) || (this.overlay && this.overlay.contains(event.target)));\n },\n getLabelByValue(value) {\n const options = this.optionGroupLabel ? this.flatOptions(this.options) : this.options || [];\n const matchedOption = options.find((option) => !this.isOptionGroup(option) && equals(this.getOptionValue(option), value, this.equalityKey));\n\n return matchedOption ? this.getOptionLabel(matchedOption) : null;\n },\n getSelectedItemsLabel() {\n let pattern = /{(.*?)}/;\n const selectedItemsLabel = this.selectedItemsLabel || this.$primevue.config.locale.selectionMessage;\n\n if (pattern.test(selectedItemsLabel)) {\n return selectedItemsLabel.replace(selectedItemsLabel.match(pattern)[0], this.modelValue.length + '');\n }\n\n return selectedItemsLabel;\n },\n onToggleAll(event) {\n if (this.selectAll !== null) {\n this.$emit('selectall-change', { originalEvent: event, checked: !this.allSelected });\n } else {\n const value = this.allSelected ? [] : this.visibleOptions.filter((option) => this.isValidOption(option)).map((option) => this.getOptionValue(option));\n\n this.updateModel(event, value);\n }\n },\n removeOption(event, optionValue) {\n event.stopPropagation();\n let value = this.modelValue.filter((val) => !equals(val, optionValue, this.equalityKey));\n\n this.updateModel(event, value);\n },\n clearFilter() {\n this.filterValue = null;\n },\n hasFocusableElements() {\n return getFocusableElements(this.overlay, ':not([data-p-hidden-focusable=\"true\"])').length > 0;\n },\n isOptionMatched(option) {\n return this.isValidOption(option) && typeof this.getOptionLabel(option) === 'string' && this.getOptionLabel(option)?.toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale));\n },\n isValidOption(option) {\n return isNotEmpty(option) && !(this.isOptionDisabled(option) || this.isOptionGroup(option));\n },\n isValidSelectedOption(option) {\n return this.isValidOption(option) && this.isSelected(option);\n },\n isEquals(value1, value2) {\n return equals(value1, value2, this.equalityKey);\n },\n isSelected(option) {\n const optionValue = this.getOptionValue(option);\n\n return (this.modelValue || []).some((value) => this.isEquals(value, optionValue));\n },\n findFirstOptionIndex() {\n return this.visibleOptions.findIndex((option) => this.isValidOption(option));\n },\n findLastOptionIndex() {\n return findLastIndex(this.visibleOptions, (option) => this.isValidOption(option));\n },\n findNextOptionIndex(index) {\n const matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((option) => this.isValidOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n },\n findPrevOptionIndex(index) {\n const matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), (option) => this.isValidOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findSelectedOptionIndex() {\n if (this.hasSelectedOption) {\n for (let index = this.modelValue.length - 1; index >= 0; index--) {\n const value = this.modelValue[index];\n const matchedOptionIndex = this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option) && this.isEquals(value, this.getOptionValue(option)));\n\n if (matchedOptionIndex > -1) return matchedOptionIndex;\n }\n }\n\n return -1;\n },\n findFirstSelectedOptionIndex() {\n return this.hasSelectedOption ? this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option)) : -1;\n },\n findLastSelectedOptionIndex() {\n return this.hasSelectedOption ? findLastIndex(this.visibleOptions, (option) => this.isValidSelectedOption(option)) : -1;\n },\n findNextSelectedOptionIndex(index) {\n const matchedOptionIndex = this.hasSelectedOption && index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((option) => this.isValidSelectedOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : -1;\n },\n findPrevSelectedOptionIndex(index) {\n const matchedOptionIndex = this.hasSelectedOption && index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), (option) => this.isValidSelectedOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : -1;\n },\n findNearestSelectedOptionIndex(index, firstCheckUp = false) {\n let matchedOptionIndex = -1;\n\n if (this.hasSelectedOption) {\n if (firstCheckUp) {\n matchedOptionIndex = this.findPrevSelectedOptionIndex(index);\n matchedOptionIndex = matchedOptionIndex === -1 ? this.findNextSelectedOptionIndex(index) : matchedOptionIndex;\n } else {\n matchedOptionIndex = this.findNextSelectedOptionIndex(index);\n matchedOptionIndex = matchedOptionIndex === -1 ? this.findPrevSelectedOptionIndex(index) : matchedOptionIndex;\n }\n }\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findFirstFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n },\n searchOptions(event) {\n this.searchValue = (this.searchValue || '') + event.key;\n\n let optionIndex = -1;\n\n if (isNotEmpty(this.searchValue)) {\n if (this.focusedOptionIndex !== -1) {\n optionIndex = this.visibleOptions.slice(this.focusedOptionIndex).findIndex((option) => this.isOptionMatched(option));\n optionIndex = optionIndex === -1 ? this.visibleOptions.slice(0, this.focusedOptionIndex).findIndex((option) => this.isOptionMatched(option)) : optionIndex + this.focusedOptionIndex;\n } else {\n optionIndex = this.visibleOptions.findIndex((option) => this.isOptionMatched(option));\n }\n\n if (optionIndex === -1 && this.focusedOptionIndex === -1) {\n optionIndex = this.findFirstFocusedOptionIndex();\n }\n\n if (optionIndex !== -1) {\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n },\n changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex !== index) {\n this.focusedOptionIndex = index;\n this.scrollInView();\n\n if (this.selectOnFocus) {\n this.onOptionSelect(event, this.visibleOptions[index]);\n }\n }\n },\n scrollInView(index = -1) {\n this.$nextTick(() => {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;\n const element = findSingle(this.list, `li[id=\"${id}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n } else if (!this.virtualScrollerDisabled) {\n this.virtualScroller && this.virtualScroller.scrollToIndex(index !== -1 ? index : this.focusedOptionIndex);\n }\n });\n },\n autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n const value = this.getOptionValue(this.visibleOptions[this.focusedOptionIndex]);\n\n this.updateModel(null, [value]);\n }\n },\n updateModel(event, value) {\n this.$emit('update:modelValue', value);\n this.$emit('change', { originalEvent: event, value });\n },\n flatOptions(options) {\n return (options || []).reduce((result, option, index) => {\n result.push({ optionGroup: option, group: true, index });\n\n const optionGroupChildren = this.getOptionGroupChildren(option);\n\n optionGroupChildren && optionGroupChildren.forEach((o) => result.push(o));\n\n return result;\n }, []);\n },\n overlayRef(el) {\n this.overlay = el;\n },\n listRef(el, contentRef) {\n this.list = el;\n contentRef && contentRef(el); // For VirtualScroller\n },\n virtualScrollerRef(el) {\n this.virtualScroller = el;\n }\n },\n computed: {\n visibleOptions() {\n const options = this.optionGroupLabel ? this.flatOptions(this.options) : this.options || [];\n\n if (this.filterValue) {\n const filteredOptions = FilterService.filter(options, this.searchFields, this.filterValue, this.filterMatchMode, this.filterLocale);\n\n if (this.optionGroupLabel) {\n const optionGroups = this.options || [];\n const filtered = [];\n\n optionGroups.forEach((group) => {\n const groupChildren = this.getOptionGroupChildren(group);\n const filteredItems = groupChildren.filter((item) => filteredOptions.includes(item));\n\n if (filteredItems.length > 0) filtered.push({ ...group, [typeof this.optionGroupChildren === 'string' ? this.optionGroupChildren : 'items']: [...filteredItems] });\n });\n\n return this.flatOptions(filtered);\n }\n\n return filteredOptions;\n }\n\n return options;\n },\n label() {\n // TODO: Refactor\n let label;\n\n if (this.modelValue && this.modelValue.length) {\n if (isNotEmpty(this.maxSelectedLabels) && this.modelValue.length > this.maxSelectedLabels) {\n return this.getSelectedItemsLabel();\n } else {\n label = '';\n\n for (let i = 0; i < this.modelValue.length; i++) {\n if (i !== 0) {\n label += ', ';\n }\n\n label += this.getLabelByValue(this.modelValue[i]);\n }\n }\n } else {\n label = this.placeholder;\n }\n\n return label;\n },\n chipSelectedItems() {\n return isNotEmpty(this.maxSelectedLabels) && this.modelValue && this.modelValue.length > this.maxSelectedLabels;\n },\n allSelected() {\n return this.selectAll !== null ? this.selectAll : isNotEmpty(this.visibleOptions) && this.visibleOptions.every((option) => this.isOptionGroup(option) || this.isOptionDisabled(option) || this.isSelected(option));\n },\n hasSelectedOption() {\n return isNotEmpty(this.modelValue);\n },\n equalityKey() {\n return this.optionValue ? null : this.dataKey;\n },\n searchFields() {\n return this.filterFields || [this.optionLabel];\n },\n maxSelectionLimitReached() {\n return this.selectionLimit && this.modelValue && this.modelValue.length === this.selectionLimit;\n },\n filterResultMessageText() {\n return isNotEmpty(this.visibleOptions) ? this.filterMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptyFilterMessageText;\n },\n filterMessageText() {\n return this.filterMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptyFilterMessageText() {\n return this.emptyFilterMessage || this.$primevue.config.locale.emptySearchMessage || this.$primevue.config.locale.emptyFilterMessage || '';\n },\n emptyMessageText() {\n return this.emptyMessage || this.$primevue.config.locale.emptyMessage || '';\n },\n selectionMessageText() {\n return this.selectionMessage || this.$primevue.config.locale.selectionMessage || '';\n },\n emptySelectionMessageText() {\n return this.emptySelectionMessage || this.$primevue.config.locale.emptySelectionMessage || '';\n },\n selectedMessageText() {\n return this.hasSelectedOption ? this.selectionMessageText.replaceAll('{0}', this.modelValue.length) : this.emptySelectionMessageText;\n },\n focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? `${this.id}_${this.focusedOptionIndex}` : null;\n },\n ariaSetSize() {\n return this.visibleOptions.filter((option) => !this.isOptionGroup(option)).length;\n },\n toggleAllAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria[this.allSelected ? 'selectAll' : 'unselectAll'] : undefined;\n },\n listAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.listLabel : undefined;\n },\n virtualScrollerDisabled() {\n return !this.virtualScrollerOptions;\n },\n hasFluid() {\n return isEmpty(this.fluid) ? !!this.$pcFluid : this.fluid;\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n InputText,\n Checkbox,\n VirtualScroller,\n Portal,\n Chip,\n IconField,\n InputIcon,\n TimesIcon,\n SearchIcon,\n ChevronDownIcon,\n SpinnerIcon,\n CheckIcon\n }\n};\n</script>\n","<template>\n <div ref=\"container\" :class=\"cx('root')\" :style=\"sx('root')\" @click=\"onContainerClick\" v-bind=\"ptmi('root')\">\n <div class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenInputContainer')\" :data-p-hidden-accessible=\"true\">\n <input\n ref=\"focusInput\"\n :id=\"inputId\"\n type=\"text\"\n readonly\n :disabled=\"disabled\"\n :placeholder=\"placeholder\"\n :tabindex=\"!disabled ? tabindex : -1\"\n role=\"combobox\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n aria-haspopup=\"listbox\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"id + '_list'\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-invalid=\"invalid || undefined\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n v-bind=\"ptm('hiddenInput')\"\n />\n </div>\n <div :class=\"cx('labelContainer')\" v-bind=\"ptm('labelContainer')\">\n <div :class=\"cx('label')\" v-bind=\"ptm('label')\">\n <slot name=\"value\" :value=\"modelValue\" :placeholder=\"placeholder\">\n <template v-if=\"display === 'comma'\">\n {{ label || 'empty' }}\n </template>\n <template v-else-if=\"display === 'chip'\">\n <template v-if=\"chipSelectedItems\">\n <span>{{ label }}</span>\n </template>\n <template v-else>\n <span v-for=\"item of modelValue\" :key=\"getLabelByValue(item)\" :class=\"cx('chipItem')\" v-bind=\"ptm('chipItem')\">\n <slot name=\"chip\" :value=\"item\" :removeCallback=\"(event) => removeOption(event, item)\">\n <!-- TODO: removetokenicon and removeTokenIcon deprecated since v4.0. Use chipicon slot and chipIcon prop-->\n <Chip :class=\"cx('pcChip')\" :label=\"getLabelByValue(item)\" :removeIcon=\"chipIcon || removeTokenIcon\" removable :unstyled=\"unstyled\" @remove=\"removeOption($event, item)\" :pt=\"ptm('pcChip')\">\n <template #removeicon>\n <slot :name=\"$slots.chipicon ? 'chipicon' : 'removetokenicon'\" :class=\"cx('chipIcon')\" :item=\"item\" :removeCallback=\"(event) => removeOption(event, item)\" />\n </template>\n </Chip>\n </slot>\n </span>\n </template>\n <template v-if=\"!modelValue || modelValue.length === 0\">{{ placeholder || 'empty' }}</template>\n </template>\n </slot>\n </div>\n </div>\n <div :class=\"cx('dropdown')\" v-bind=\"ptm('dropdown')\">\n <slot v-if=\"loading\" name=\"loadingicon\" :class=\"cx('loadingIcon')\">\n <span v-if=\"loadingIcon\" :class=\"[cx('loadingIcon'), 'pi-spin', loadingIcon]\" aria-hidden=\"true\" v-bind=\"ptm('loadingIcon')\" />\n <SpinnerIcon v-else :class=\"cx('loadingIcon')\" spin aria-hidden=\"true\" v-bind=\"ptm('loadingIcon')\" />\n </slot>\n <slot v-else name=\"dropdownicon\" :class=\"cx('dropdownIcon')\">\n <component :is=\"dropdownIcon ? 'span' : 'ChevronDownIcon'\" :class=\"[cx('dropdownIcon'), dropdownIcon]\" aria-hidden=\"true\" v-bind=\"ptm('dropdownIcon')\" />\n </slot>\n </div>\n <Portal :appendTo=\"appendTo\">\n <transition name=\"p-connected-overlay\" @enter=\"onOverlayEnter\" @after-enter=\"onOverlayAfterEnter\" @leave=\"onOverlayLeave\" @after-leave=\"onOverlayAfterLeave\" v-bind=\"ptm('transition')\">\n <div v-if=\"overlayVisible\" :ref=\"overlayRef\" :style=\"[panelStyle, overlayStyle]\" :class=\"[cx('overlay'), panelClass, overlayClass]\" @click=\"onOverlayClick\" @keydown=\"onOverlayKeyDown\" v-bind=\"ptm('overlay')\">\n <span\n ref=\"firstHiddenFocusableElementOnOverlay\"\n role=\"presentation\"\n aria-hidden=\"true\"\n class=\"p-hidden-accessible p-hidden-focusable\"\n :tabindex=\"0\"\n @focus=\"onFirstHiddenFocus\"\n v-bind=\"ptm('hiddenFirstFocusableEl')\"\n :data-p-hidden-accessible=\"true\"\n :data-p-hidden-focusable=\"true\"\n ></span>\n <slot name=\"header\" :value=\"modelValue\" :options=\"visibleOptions\"></slot>\n <div v-if=\"(showToggleAll && selectionLimit == null) || filter\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <Checkbox\n v-if=\"showToggleAll && selectionLimit == null\"\n :modelValue=\"allSelected\"\n :binary=\"true\"\n :disabled=\"disabled\"\n :variant=\"variant\"\n :aria-label=\"toggleAllAriaLabel\"\n @change=\"onToggleAll\"\n :unstyled=\"unstyled\"\n :pt=\"getHeaderCheckboxPTOptions('pcHeaderCheckbox')\"\n >\n <template #icon=\"slotProps\">\n <component v-if=\"$slots.headercheckboxicon\" :is=\"$slots.headercheckboxicon\" :checked=\"slotProps.checked\" :class=\"slotProps.class\" />\n <component v-else-if=\"slotProps.checked\" :is=\"checkboxIcon ? 'span' : 'CheckIcon'\" :class=\"[slotProps.class, { [checkboxIcon]: slotProps.checked }]\" v-bind=\"getHeaderCheckboxPTOptions('pcHeaderCheckbox.icon')\" />\n </template>\n </Checkbox>\n <IconField v-if=\"filter\" :class=\"cx('pcFilterContainer')\" :unstyled=\"unstyled\" :pt=\"ptm('pcFilterContainer')\">\n <InputText\n ref=\"filterInput\"\n :value=\"filterValue\"\n @vue:mounted=\"onFilterUpdated\"\n @vue:updated=\"onFilterUpdated\"\n :class=\"cx('pcFilter')\"\n :placeholder=\"filterPlaceholder\"\n :disabled=\"disabled\"\n :variant=\"variant\"\n :unstyled=\"unstyled\"\n role=\"searchbox\"\n autocomplete=\"off\"\n :aria-owns=\"id + '_list'\"\n :aria-activedescendant=\"focusedOptionId\"\n @keydown=\"onFilterKeyDown\"\n @blur=\"onFilterBlur\"\n @input=\"onFilterChange\"\n :pt=\"ptm('pcFilter')\"\n />\n <InputIcon :unstyled=\"unstyled\" :pt=\"ptm('pcFilterIconContainer')\">\n <slot name=\"filtericon\">\n <span v-if=\"filterIcon\" :class=\"filterIcon\" v-bind=\"ptm('filterIcon')\" />\n <SearchIcon v-else v-bind=\"ptm('filterIcon')\" />\n </slot>\n </InputIcon>\n </IconField>\n <span v-if=\"filter\" role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenFilterResult')\" :data-p-hidden-accessible=\"true\">\n {{ filterResultMessageText }}\n </span>\n </div>\n <div :class=\"cx('listContainer')\" :style=\"{ 'max-height': virtualScrollerDisabled ? scrollHeight : '' }\" v-bind=\"ptm('listContainer')\">\n <VirtualScroller :ref=\"virtualScrollerRef\" v-bind=\"virtualScrollerOptions\" :items=\"visibleOptions\" :style=\"{ height: scrollHeight }\" :tabindex=\"-1\" :disabled=\"virtualScrollerDisabled\" :pt=\"ptm('virtualScroller')\">\n <template v-slot:content=\"{ styleClass, contentRef, items, getItemOptions, contentStyle, itemSize }\">\n <ul :ref=\"(el) => listRef(el, contentRef)\" :id=\"id + '_list'\" :class=\"[cx('list'), styleClass]\" :style=\"contentStyle\" role=\"listbox\" aria-multiselectable=\"true\" :aria-label=\"listAriaLabel\" v-bind=\"ptm('list')\">\n <template v-for=\"(option, i) of items\" :key=\"getOptionRenderKey(option, getOptionIndex(i, getItemOptions))\">\n <li\n v-if=\"isOptionGroup(option)\"\n :id=\"id + '_' + getOptionIndex(i, getItemOptions)\"\n :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\"\n :class=\"cx('optionGroup')\"\n role=\"option\"\n v-bind=\"ptm('optionGroup')\"\n >\n <slot name=\"optiongroup\" :option=\"option.optionGroup\" :index=\"getOptionIndex(i, getItemOptions)\">{{ getOptionGroupLabel(option.optionGroup) }}</slot>\n </li>\n <li\n v-else\n :id=\"id + '_' + getOptionIndex(i, getItemOptions)\"\n v-ripple\n :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\"\n :class=\"cx('option', { option, index: i, getItemOptions })\"\n role=\"option\"\n :aria-label=\"getOptionLabel(option)\"\n :aria-selected=\"isSelected(option)\"\n :aria-disabled=\"isOptionDisabled(option)\"\n :aria-setsize=\"ariaSetSize\"\n :aria-posinset=\"getAriaPosInset(getOptionIndex(i, getItemOptions))\"\n @click=\"onOptionSelect($event, option, getOptionIndex(i, getItemOptions), true)\"\n @mousemove=\"onOptionMouseMove($event, getOptionIndex(i, getItemOptions))\"\n v-bind=\"getCheckboxPTOptions(option, getItemOptions, i, 'option')\"\n :data-p-selected=\"isSelected(option)\"\n :data-p-focused=\"focusedOptionIndex === getOptionIndex(i, getItemOptions)\"\n :data-p-disabled=\"isOptionDisabled(option)\"\n >\n <Checkbox :modelValue=\"isSelected(option)\" :binary=\"true\" :tabindex=\"-1\" :variant=\"variant\" :unstyled=\"unstyled\" :pt=\"getCheckboxPTOptions(option, getItemOptions, i, 'pcOptionCheckbox')\">\n <template #icon=\"slotProps\">\n <component v-if=\"$slots.optioncheckboxicon || $slots.itemcheckboxicon\" :is=\"$slots.optioncheckboxicon || $slots.itemcheckboxicon\" :checked=\"slotProps.checked\" :class=\"slotProps.class\" />\n <component\n v-else-if=\"slotProps.checked\"\n :is=\"checkboxIcon ? 'span' : 'CheckIcon'\"\n :class=\"[slotProps.class, { [checkboxIcon]: slotProps.checked }]\"\n v-bind=\"getCheckboxPTOptions(option, getItemOptions, i, 'pcOptionCheckbox.icon')\"\n />\n </template>\n </Checkbox>\n <slot name=\"option\" :option=\"option\" :selected=\"isSelected(option)\" :index=\"getOptionIndex(i, getItemOptions)\">\n <span v-bind=\"ptm('optionLabel')\">{{ getOptionLabel(option) }}</span>\n </slot>\n </li>\n </template>\n <li v-if=\"filterValue && (!items || (items && items.length === 0))\" :class=\"cx('emptyMessage')\" role=\"option\" v-bind=\"ptm('emptyMessage')\">\n <slot name=\"emptyfilter\">{{ emptyFilterMessageText }}</slot>\n </li>\n <li v-else-if=\"!options || (options && options.length === 0)\" :class=\"cx('emptyMessage')\" role=\"option\" v-bind=\"ptm('emptyMessage')\">\n <slot name=\"empty\">{{ emptyMessageText }}</slot>\n </li>\n </ul>\n </template>\n <template v-if=\"$slots.loader\" v-slot:loader=\"{ options }\">\n <slot name=\"loader\" :options=\"options\"></slot>\n </template>\n </VirtualScroller>\n </div>\n <slot name=\"footer\" :value=\"modelValue\" :options=\"visibleOptions\"></slot>\n <span v-if=\"!options || (options && options.length === 0)\" role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenEmptyMessage')\" :data-p-hidden-accessible=\"true\">\n {{ emptyMessageText }}\n </span>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenSelectedMessage')\" :data-p-hidden-accessible=\"true\">\n {{ selectedMessageText }}\n </span>\n <span\n ref=\"lastHiddenFocusableElementOnOverlay\"\n role=\"presentation\"\n aria-hidden=\"true\"\n class=\"p-hidden-accessible p-hidden-focusable\"\n :tabindex=\"0\"\n @focus=\"onLastHiddenFocus\"\n v-bind=\"ptm('hiddenLastFocusableEl')\"\n :data-p-hidden-accessible=\"true\"\n :data-p-hidden-focusable=\"true\"\n ></span>\n </div>\n </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { absolutePosition, addStyle, findSingle, focus, getFirstFocusableElement, getFocusableElements, getLastFocusableElement, getOuterWidth, isTouchDevice, relativePosition } from '@primeuix/utils/dom';\nimport { equals, findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, resolveFieldData } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { FilterService } from '@primevue/core/api';\nimport { ConnectedOverlayScrollHandler, UniqueComponentId } from '@primevue/core/utils';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport SearchIcon from '@primevue/icons/search';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport TimesIcon from '@primevue/icons/times';\nimport Checkbox from 'primevue/checkbox';\nimport Chip from 'primevue/chip';\nimport IconField from 'primevue/iconfield';\nimport InputIcon from 'primevue/inputicon';\nimport InputText from 'primevue/inputtext';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Ripple from 'primevue/ripple';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseMultiSelect from './BaseMultiSelect.vue';\n\nexport default {\n name: 'MultiSelect',\n extends: BaseMultiSelect,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur', 'before-show', 'before-hide', 'show', 'hide', 'filter', 'selectall-change'],\n inject: {\n $pcFluid: { default: null }\n },\n outsideClickListener: null,\n scrollHandler: null,\n resizeListener: null,\n overlay: null,\n list: null,\n virtualScroller: null,\n startRangeIndex: -1,\n searchTimeout: null,\n searchValue: '',\n selectOnFocus: false,\n data() {\n return {\n id: this.$attrs.id,\n clicked: false,\n focused: false,\n focusedOptionIndex: -1,\n filterValue: null,\n overlayVisible: false\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n },\n options() {\n this.autoUpdateModel();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n },\n beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.overlay = null;\n }\n },\n methods: {\n getOptionIndex(index, fn) {\n return this.virtualScrollerDisabled ? index : fn && fn(index)['index'];\n },\n getOptionLabel(option) {\n return this.optionLabel ? resolveFieldData(option, this.optionLabel) : option;\n },\n getOptionValue(option) {\n return this.optionValue ? resolveFieldData(option, this.optionValue) : option;\n },\n getOptionRenderKey(option, index) {\n return this.dataKey ? resolveFieldData(option, this.dataKey) : this.getOptionLabel(option) + `_${index}`;\n },\n getHeaderCheckboxPTOptions(key) {\n return this.ptm(key, {\n context: {\n selected: this.allSelected\n }\n });\n },\n getCheckboxPTOptions(option, itemOptions, index, key) {\n return this.ptm(key, {\n context: {\n selected: this.isSelected(option),\n focused: this.focusedOptionIndex === this.getOptionIndex(index, itemOptions),\n disabled: this.isOptionDisabled(option)\n }\n });\n },\n isOptionDisabled(option) {\n if (this.maxSelectionLimitReached && !this.isSelected(option)) {\n return true;\n }\n\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n },\n isOptionGroup(option) {\n return this.optionGroupLabel && option.optionGroup && option.group;\n },\n getOptionGroupLabel(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupLabel);\n },\n getOptionGroupChildren(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupChildren);\n },\n getAriaPosInset(index) {\n return (this.optionGroupLabel ? index - this.visibleOptions.slice(0, index).filter((option) => this.isOptionGroup(option)).length : index) + 1;\n },\n show(isFocus) {\n this.$emit('before-show');\n this.overlayVisible = true;\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex();\n\n isFocus && focus(this.$refs.focusInput);\n },\n hide(isFocus) {\n const _hide = () => {\n this.$emit('before-hide');\n this.overlayVisible = false;\n this.clicked = false;\n this.focusedOptionIndex = -1;\n this.searchValue = '';\n\n this.resetFilterOnHide && (this.filterValue = null);\n isFocus && focus(this.$refs.focusInput);\n };\n\n setTimeout(() => {\n _hide();\n }, 0); // For ScreenReaders\n },\n onFocus(event) {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n\n this.focused = true;\n\n if (this.overlayVisible) {\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex();\n this.scrollInView(this.focusedOptionIndex);\n }\n\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.clicked = false;\n this.focused = false;\n this.focusedOptionIndex = -1;\n this.searchValue = '';\n this.$emit('blur', event);\n },\n onKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n\n return;\n }\n\n const metaKey = event.metaKey || event.ctrlKey;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'ShiftLeft':\n case 'ShiftRight':\n this.onShiftKey(event);\n break;\n\n default:\n if (event.code === 'KeyA' && metaKey) {\n const value = this.visibleOptions.filter((option) => this.isValidOption(option)).map((option) => this.getOptionValue(option));\n\n this.updateModel(event, value);\n\n event.preventDefault();\n break;\n }\n\n if (!metaKey && isPrintableCharacter(event.key)) {\n !this.overlayVisible && this.show();\n this.searchOptions(event);\n event.preventDefault();\n }\n\n break;\n }\n\n this.clicked = false;\n },\n onContainerClick(event) {\n if (this.disabled || this.loading) {\n return;\n }\n\n if (!this.overlay || !this.overlay.contains(event.target)) {\n this.overlayVisible ? this.hide(true) : this.show(true);\n }\n\n this.clicked = true;\n },\n onFirstHiddenFocus(event) {\n const focusableEl = event.relatedTarget === this.$refs.focusInput ? getFirstFocusableElement(this.overlay, ':not([data-p-hidden-focusable=\"true\"])') : this.$refs.focusInput;\n\n focus(focusableEl);\n },\n onLastHiddenFocus(event) {\n const focusableEl = event.relatedTarget === this.$refs.focusInput ? getLastFocusableElement(this.overlay, ':not([data-p-hidden-focusable=\"true\"])') : this.$refs.focusInput;\n\n focus(focusableEl);\n },\n onOptionSelect(event, option, index = -1, isFocus = false) {\n if (this.disabled || this.isOptionDisabled(option)) {\n return;\n }\n\n let selected = this.isSelected(option);\n let value = null;\n\n if (selected) value = this.modelValue.filter((val) => !equals(val, this.getOptionValue(option), this.equalityKey));\n else value = [...(this.modelValue || []), this.getOptionValue(option)];\n\n this.updateModel(event, value);\n index !== -1 && (this.focusedOptionIndex = index);\n isFocus && focus(this.$refs.focusInput);\n },\n onOptionMouseMove(event, index) {\n if (this.focusOnHover) {\n this.changeFocusedOptionIndex(event, index);\n }\n },\n onOptionSelectRange(event, start = -1, end = -1) {\n start === -1 && (start = this.findNearestSelectedOptionIndex(end, true));\n end === -1 && (end = this.findNearestSelectedOptionIndex(start));\n\n if (start !== -1 && end !== -1) {\n const rangeStart = Math.min(start, end);\n const rangeEnd = Math.max(start, end);\n const value = this.visibleOptions\n .slice(rangeStart, rangeEnd + 1)\n .filter((option) => this.isValidOption(option))\n .map((option) => this.getOptionValue(option));\n\n this.updateModel(event, value);\n }\n },\n onFilterChange(event) {\n const value = event.target.value;\n\n this.filterValue = value;\n this.focusedOptionIndex = -1;\n this.$emit('filter', { originalEvent: event, value });\n\n !this.virtualScrollerDisabled && this.virtualScroller.scrollToIndex(0);\n },\n onFilterKeyDown(event) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event, true);\n break;\n\n case 'ArrowLeft':\n case 'ArrowRight':\n this.onArrowLeftKey(event, true);\n break;\n\n case 'Home':\n this.onHomeKey(event, true);\n break;\n\n case 'End':\n this.onEndKey(event, true);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event, true);\n break;\n\n default:\n break;\n }\n },\n onFilterBlur() {\n this.focusedOptionIndex = -1;\n },\n onFilterUpdated() {\n if (this.overlayVisible) {\n this.alignOverlay();\n }\n },\n onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.$el\n });\n },\n onOverlayKeyDown(event) {\n switch (event.code) {\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n if (!this.overlayVisible) {\n this.show();\n } else {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();\n\n if (event.shiftKey) {\n this.onOptionSelectRange(event, this.startRangeIndex, optionIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n\n event.preventDefault();\n },\n onArrowUpKey(event, pressedInInputText = false) {\n if (event.altKey && !pressedInInputText) {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.overlayVisible && this.hide();\n event.preventDefault();\n } else {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();\n\n if (event.shiftKey) {\n this.onOptionSelectRange(event, optionIndex, this.startRangeIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n }\n },\n onArrowLeftKey(event, pressedInInputText = false) {\n pressedInInputText && (this.focusedOptionIndex = -1);\n },\n onHomeKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n const target = event.currentTarget;\n\n if (event.shiftKey) {\n target.setSelectionRange(0, event.target.selectionStart);\n } else {\n target.setSelectionRange(0, 0);\n this.focusedOptionIndex = -1;\n }\n } else {\n let metaKey = event.metaKey || event.ctrlKey;\n let optionIndex = this.findFirstOptionIndex();\n\n if (event.shiftKey && metaKey) {\n this.onOptionSelectRange(event, optionIndex, this.startRangeIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n\n !this.overlayVisible && this.show();\n }\n\n event.preventDefault();\n },\n onEndKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n const target = event.currentTarget;\n\n if (event.shiftKey) {\n target.setSelectionRange(event.target.selectionStart, target.value.length);\n } else {\n const len = target.value.length;\n\n target.setSelectionRange(len, len);\n this.focusedOptionIndex = -1;\n }\n } else {\n let metaKey = event.metaKey || event.ctrlKey;\n let optionIndex = this.findLastOptionIndex();\n\n if (event.shiftKey && metaKey) {\n this.onOptionSelectRange(event, this.startRangeIndex, optionIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n\n !this.overlayVisible && this.show();\n }\n\n event.preventDefault();\n },\n onPageUpKey(event) {\n this.scrollInView(0);\n event.preventDefault();\n },\n onPageDownKey(event) {\n this.scrollInView(this.visibleOptions.length - 1);\n event.preventDefault();\n },\n onEnterKey(event) {\n if (!this.overlayVisible) {\n this.focusedOptionIndex = -1; // reset\n this.onArrowDownKey(event);\n } else {\n if (this.focusedOptionIndex !== -1) {\n if (event.shiftKey) this.onOptionSelectRange(event, this.focusedOptionIndex);\n else this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n }\n\n event.preventDefault();\n },\n onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\n },\n onTabKey(event, pressedInInputText = false) {\n if (!pressedInInputText) {\n if (this.overlayVisible && this.hasFocusableElements()) {\n focus(event.shiftKey ? this.$refs.lastHiddenFocusableElementOnOverlay : this.$refs.firstHiddenFocusableElementOnOverlay);\n\n event.preventDefault();\n } else {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.overlayVisible && this.hide(this.filter);\n }\n }\n },\n onShiftKey() {\n this.startRangeIndex = this.focusedOptionIndex;\n },\n onOverlayEnter(el) {\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n\n addStyle(el, { position: 'absolute', top: '0', left: '0' });\n this.alignOverlay();\n this.scrollInView();\n\n this.autoFilterFocus && focus(this.$refs.filterInput.$el);\n },\n onOverlayAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.$emit('show');\n },\n onOverlayLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n\n this.$emit('hide');\n this.overlay = null;\n },\n onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n alignOverlay() {\n if (this.appendTo === 'self') {\n relativePosition(this.overlay, this.$el);\n } else {\n this.overlay.style.minWidth = getOuterWidth(this.$el) + 'px';\n absolutePosition(this.overlay, this.$el);\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.overlayVisible && this.isOutsideClicked(event)) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n isOutsideClicked(event) {\n return !(this.$el.isSameNode(event.target) || this.$el.contains(event.target) || (this.overlay && this.overlay.contains(event.target)));\n },\n getLabelByValue(value) {\n const options = this.optionGroupLabel ? this.flatOptions(this.options) : this.options || [];\n const matchedOption = options.find((option) => !this.isOptionGroup(option) && equals(this.getOptionValue(option), value, this.equalityKey));\n\n return matchedOption ? this.getOptionLabel(matchedOption) : null;\n },\n getSelectedItemsLabel() {\n let pattern = /{(.*?)}/;\n const selectedItemsLabel = this.selectedItemsLabel || this.$primevue.config.locale.selectionMessage;\n\n if (pattern.test(selectedItemsLabel)) {\n return selectedItemsLabel.replace(selectedItemsLabel.match(pattern)[0], this.modelValue.length + '');\n }\n\n return selectedItemsLabel;\n },\n onToggleAll(event) {\n if (this.selectAll !== null) {\n this.$emit('selectall-change', { originalEvent: event, checked: !this.allSelected });\n } else {\n const value = this.allSelected ? [] : this.visibleOptions.filter((option) => this.isValidOption(option)).map((option) => this.getOptionValue(option));\n\n this.updateModel(event, value);\n }\n },\n removeOption(event, optionValue) {\n event.stopPropagation();\n let value = this.modelValue.filter((val) => !equals(val, optionValue, this.equalityKey));\n\n this.updateModel(event, value);\n },\n clearFilter() {\n this.filterValue = null;\n },\n hasFocusableElements() {\n return getFocusableElements(this.overlay, ':not([data-p-hidden-focusable=\"true\"])').length > 0;\n },\n isOptionMatched(option) {\n return this.isValidOption(option) && typeof this.getOptionLabel(option) === 'string' && this.getOptionLabel(option)?.toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale));\n },\n isValidOption(option) {\n return isNotEmpty(option) && !(this.isOptionDisabled(option) || this.isOptionGroup(option));\n },\n isValidSelectedOption(option) {\n return this.isValidOption(option) && this.isSelected(option);\n },\n isEquals(value1, value2) {\n return equals(value1, value2, this.equalityKey);\n },\n isSelected(option) {\n const optionValue = this.getOptionValue(option);\n\n return (this.modelValue || []).some((value) => this.isEquals(value, optionValue));\n },\n findFirstOptionIndex() {\n return this.visibleOptions.findIndex((option) => this.isValidOption(option));\n },\n findLastOptionIndex() {\n return findLastIndex(this.visibleOptions, (option) => this.isValidOption(option));\n },\n findNextOptionIndex(index) {\n const matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((option) => this.isValidOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n },\n findPrevOptionIndex(index) {\n const matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), (option) => this.isValidOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findSelectedOptionIndex() {\n if (this.hasSelectedOption) {\n for (let index = this.modelValue.length - 1; index >= 0; index--) {\n const value = this.modelValue[index];\n const matchedOptionIndex = this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option) && this.isEquals(value, this.getOptionValue(option)));\n\n if (matchedOptionIndex > -1) return matchedOptionIndex;\n }\n }\n\n return -1;\n },\n findFirstSelectedOptionIndex() {\n return this.hasSelectedOption ? this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option)) : -1;\n },\n findLastSelectedOptionIndex() {\n return this.hasSelectedOption ? findLastIndex(this.visibleOptions, (option) => this.isValidSelectedOption(option)) : -1;\n },\n findNextSelectedOptionIndex(index) {\n const matchedOptionIndex = this.hasSelectedOption && index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((option) => this.isValidSelectedOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : -1;\n },\n findPrevSelectedOptionIndex(index) {\n const matchedOptionIndex = this.hasSelectedOption && index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), (option) => this.isValidSelectedOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : -1;\n },\n findNearestSelectedOptionIndex(index, firstCheckUp = false) {\n let matchedOptionIndex = -1;\n\n if (this.hasSelectedOption) {\n if (firstCheckUp) {\n matchedOptionIndex = this.findPrevSelectedOptionIndex(index);\n matchedOptionIndex = matchedOptionIndex === -1 ? this.findNextSelectedOptionIndex(index) : matchedOptionIndex;\n } else {\n matchedOptionIndex = this.findNextSelectedOptionIndex(index);\n matchedOptionIndex = matchedOptionIndex === -1 ? this.findPrevSelectedOptionIndex(index) : matchedOptionIndex;\n }\n }\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findFirstFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n },\n searchOptions(event) {\n this.searchValue = (this.searchValue || '') + event.key;\n\n let optionIndex = -1;\n\n if (isNotEmpty(this.searchValue)) {\n if (this.focusedOptionIndex !== -1) {\n optionIndex = this.visibleOptions.slice(this.focusedOptionIndex).findIndex((option) => this.isOptionMatched(option));\n optionIndex = optionIndex === -1 ? this.visibleOptions.slice(0, this.focusedOptionIndex).findIndex((option) => this.isOptionMatched(option)) : optionIndex + this.focusedOptionIndex;\n } else {\n optionIndex = this.visibleOptions.findIndex((option) => this.isOptionMatched(option));\n }\n\n if (optionIndex === -1 && this.focusedOptionIndex === -1) {\n optionIndex = this.findFirstFocusedOptionIndex();\n }\n\n if (optionIndex !== -1) {\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n },\n changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex !== index) {\n this.focusedOptionIndex = index;\n this.scrollInView();\n\n if (this.selectOnFocus) {\n this.onOptionSelect(event, this.visibleOptions[index]);\n }\n }\n },\n scrollInView(index = -1) {\n this.$nextTick(() => {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;\n const element = findSingle(this.list, `li[id=\"${id}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n } else if (!this.virtualScrollerDisabled) {\n this.virtualScroller && this.virtualScroller.scrollToIndex(index !== -1 ? index : this.focusedOptionIndex);\n }\n });\n },\n autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n const value = this.getOptionValue(this.visibleOptions[this.focusedOptionIndex]);\n\n this.updateModel(null, [value]);\n }\n },\n updateModel(event, value) {\n this.$emit('update:modelValue', value);\n this.$emit('change', { originalEvent: event, value });\n },\n flatOptions(options) {\n return (options || []).reduce((result, option, index) => {\n result.push({ optionGroup: option, group: true, index });\n\n const optionGroupChildren = this.getOptionGroupChildren(option);\n\n optionGroupChildren && optionGroupChildren.forEach((o) => result.push(o));\n\n return result;\n }, []);\n },\n overlayRef(el) {\n this.overlay = el;\n },\n listRef(el, contentRef) {\n this.list = el;\n contentRef && contentRef(el); // For VirtualScroller\n },\n virtualScrollerRef(el) {\n this.virtualScroller = el;\n }\n },\n computed: {\n visibleOptions() {\n const options = this.optionGroupLabel ? this.flatOptions(this.options) : this.options || [];\n\n if (this.filterValue) {\n const filteredOptions = FilterService.filter(options, this.searchFields, this.filterValue, this.filterMatchMode, this.filterLocale);\n\n if (this.optionGroupLabel) {\n const optionGroups = this.options || [];\n const filtered = [];\n\n optionGroups.forEach((group) => {\n const groupChildren = this.getOptionGroupChildren(group);\n const filteredItems = groupChildren.filter((item) => filteredOptions.includes(item));\n\n if (filteredItems.length > 0) filtered.push({ ...group, [typeof this.optionGroupChildren === 'string' ? this.optionGroupChildren : 'items']: [...filteredItems] });\n });\n\n return this.flatOptions(filtered);\n }\n\n return filteredOptions;\n }\n\n return options;\n },\n label() {\n // TODO: Refactor\n let label;\n\n if (this.modelValue && this.modelValue.length) {\n if (isNotEmpty(this.maxSelectedLabels) && this.modelValue.length > this.maxSelectedLabels) {\n return this.getSelectedItemsLabel();\n } else {\n label = '';\n\n for (let i = 0; i < this.modelValue.length; i++) {\n if (i !== 0) {\n label += ', ';\n }\n\n label += this.getLabelByValue(this.modelValue[i]);\n }\n }\n } else {\n label = this.placeholder;\n }\n\n return label;\n },\n chipSelectedItems() {\n return isNotEmpty(this.maxSelectedLabels) && this.modelValue && this.modelValue.length > this.maxSelectedLabels;\n },\n allSelected() {\n return this.selectAll !== null ? this.selectAll : isNotEmpty(this.visibleOptions) && this.visibleOptions.every((option) => this.isOptionGroup(option) || this.isOptionDisabled(option) || this.isSelected(option));\n },\n hasSelectedOption() {\n return isNotEmpty(this.modelValue);\n },\n equalityKey() {\n return this.optionValue ? null : this.dataKey;\n },\n searchFields() {\n return this.filterFields || [this.optionLabel];\n },\n maxSelectionLimitReached() {\n return this.selectionLimit && this.modelValue && this.modelValue.length === this.selectionLimit;\n },\n filterResultMessageText() {\n return isNotEmpty(this.visibleOptions) ? this.filterMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptyFilterMessageText;\n },\n filterMessageText() {\n return this.filterMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptyFilterMessageText() {\n return this.emptyFilterMessage || this.$primevue.config.locale.emptySearchMessage || this.$primevue.config.locale.emptyFilterMessage || '';\n },\n emptyMessageText() {\n return this.emptyMessage || this.$primevue.config.locale.emptyMessage || '';\n },\n selectionMessageText() {\n return this.selectionMessage || this.$primevue.config.locale.selectionMessage || '';\n },\n emptySelectionMessageText() {\n return this.emptySelectionMessage || this.$primevue.config.locale.emptySelectionMessage || '';\n },\n selectedMessageText() {\n return this.hasSelectedOption ? this.selectionMessageText.replaceAll('{0}', this.modelValue.length) : this.emptySelectionMessageText;\n },\n focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? `${this.id}_${this.focusedOptionIndex}` : null;\n },\n ariaSetSize() {\n return this.visibleOptions.filter((option) => !this.isOptionGroup(option)).length;\n },\n toggleAllAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria[this.allSelected ? 'selectAll' : 'unselectAll'] : undefined;\n },\n listAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.listLabel : undefined;\n },\n virtualScrollerDisabled() {\n return !this.virtualScrollerOptions;\n },\n hasFluid() {\n return isEmpty(this.fluid) ? !!this.$pcFluid : this.fluid;\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n InputText,\n Checkbox,\n VirtualScroller,\n Portal,\n Chip,\n IconField,\n InputIcon,\n TimesIcon,\n SearchIcon,\n ChevronDownIcon,\n SpinnerIcon,\n CheckIcon\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","modelValue","options","Array","optionLabel","optionValue","optionDisabled","optionGroupLabel","optionGroupChildren","scrollHeight","type","String","placeholder","variant","invalid","Boolean","disabled","fluid","inputId","panelClass","panelStyle","overlayClass","overlayStyle","dataKey","filter","filterPlaceholder","filterLocale","filterMatchMode","filterFields","appendTo","Object","display","selectedItemsLabel","maxSelectedLabels","Number","selectionLimit","showToggleAll","loading","checkboxIcon","undefined","dropdownIcon","filterIcon","loadingIcon","removeTokenIcon","chipIcon","selectAll","resetFilterOnHide","virtualScrollerOptions","autoOptionFocus","autoFilterFocus","focusOnHover","highlightOnSelect","filterMessage","selectionMessage","emptySelectionMessage","emptyFilterMessage","emptyMessage","tabindex","ariaLabel","ariaLabelledby","style","MultiSelectStyle","provide","$pcMultiSelect","$parentInstance","BaseMultiSelect","inheritAttrs","emits","inject","$pcFluid","outsideClickListener","scrollHandler","resizeListener","overlay","list","virtualScroller","startRangeIndex","searchTimeout","searchValue","selectOnFocus","data","id","$attrs","clicked","focused","focusedOptionIndex","filterValue","overlayVisible","watch","$attrsId","newValue","UniqueComponentId","autoUpdateModel","mounted","beforeUnmount","unbindOutsideClickListener","unbindResizeListener","destroy","ZIndex","clear","methods","getOptionIndex","index","fn","virtualScrollerDisabled","getOptionLabel","option","resolveFieldData","getOptionValue","getOptionRenderKey","concat","getHeaderCheckboxPTOptions","key","ptm","context","selected","allSelected","getCheckboxPTOptions","itemOptions","isSelected","isOptionDisabled","maxSelectionLimitReached","isOptionGroup","optionGroup","group","getOptionGroupLabel","getOptionGroupChildren","getAriaPosInset","_this","visibleOptions","slice","length","show","isFocus","$emit","findFirstFocusedOptionIndex","findSelectedOptionIndex","focus","$refs","focusInput","hide","_this2","_hide","setTimeout","onFocus","event","scrollInView","onBlur","onKeyDown","_this3","preventDefault","metaKey","ctrlKey","code","onArrowDownKey","onArrowUpKey","onHomeKey","onEndKey","onPageDownKey","onPageUpKey","onEnterKey","onEscapeKey","onTabKey","onShiftKey","value","isValidOption","map","updateModel","isPrintableCharacter","searchOptions","onContainerClick","contains","target","onFirstHiddenFocus","focusableEl","relatedTarget","getFirstFocusableElement","onLastHiddenFocus","getLastFocusableElement","onOptionSelect","_this4","arguments","val","equals","equalityKey","_toConsumableArray","onOptionMouseMove","changeFocusedOptionIndex","onOptionSelectRange","_this5","start","end","findNearestSelectedOptionIndex","rangeStart","Math","min","rangeEnd","max","onFilterChange","originalEvent","scrollToIndex","onFilterKeyDown","onArrowLeftKey","onFilterBlur","onFilterUpdated","alignOverlay","onOverlayClick","OverlayEventBus","emit","$el","onOverlayKeyDown","optionIndex","findNextOptionIndex","findFirstOptionIndex","shiftKey","pressedInInputText","altKey","findPrevOptionIndex","findLastOptionIndex","findLastFocusedOptionIndex","currentTarget","setSelectionRange","selectionStart","len","hasFocusableElements","lastHiddenFocusableElementOnOverlay","firstHiddenFocusableElementOnOverlay","onOverlayEnter","el","set","$primevue","config","zIndex","addStyle","position","top","left","filterInput","onOverlayAfterEnter","bindOutsideClickListener","bindScrollListener","bindResizeListener","onOverlayLeave","unbindScrollListener","onOverlayAfterLeave","relativePosition","minWidth","getOuterWidth","absolutePosition","_this6","isOutsideClicked","document","addEventListener","removeEventListener","_this7","ConnectedOverlayScrollHandler","container","_this8","isTouchDevice","window","isSameNode","getLabelByValue","_this9","flatOptions","matchedOption","find","getSelectedItemsLabel","pattern","locale","test","replace","match","onToggleAll","_this10","checked","removeOption","_this11","stopPropagation","clearFilter","getFocusableElements","isOptionMatched","_this$getOptionLabel","toLocaleLowerCase","startsWith","isNotEmpty","isValidSelectedOption","isEquals","value1","value2","_this12","some","_this13","findIndex","_this14","findLastIndex","_this15","matchedOptionIndex","_this16","_this17","hasSelectedOption","_loop","v","_ret","findFirstSelectedOptionIndex","_this18","findLastSelectedOptionIndex","_this19","findNextSelectedOptionIndex","_this20","findPrevSelectedOptionIndex","_this21","firstCheckUp","selectedIndex","_this22","clearTimeout","_this23","$nextTick","focusedOptionId","element","findSingle","scrollIntoView","block","inline","_this24","reduce","result","push","forEach","o","overlayRef","listRef","contentRef","virtualScrollerRef","computed","_this25","filteredOptions","FilterService","searchFields","optionGroups","filtered","groupChildren","filteredItems","item","includes","_objectSpread","_defineProperty","label","i","chipSelectedItems","_this26","every","filterResultMessageText","filterMessageText","replaceAll","emptyFilterMessageText","searchMessage","emptySearchMessage","emptyMessageText","selectionMessageText","emptySelectionMessageText","selectedMessageText","ariaSetSize","_this27","toggleAllAriaLabel","aria","listAriaLabel","listLabel","hasFluid","isEmpty","directives","ripple","Ripple","components","InputText","Checkbox","VirtualScroller","Portal","Chip","IconField","InputIcon","TimesIcon","SearchIcon","ChevronDownIcon","SpinnerIcon","CheckIcon","_openBlock","_createElementBlock","_mergeProps","ref","_ctx","cx","sx","onClick","$options","apply","ptmi","_createElementVNode","readonly","role","$data","onKeydown","_hoisted_1","_renderSlot","$slots","_Fragment","_renderList","removeCallback","_createVNode","_component_Chip","removeIcon","removable","unstyled","onRemove","$event","pt","removeicon","chipicon","_createBlock","_component_SpinnerIcon","spin","_resolveDynamicComponent","_component_Portal","_Transition","onEnter","onAfterEnter","onLeave","onAfterLeave","_component_Checkbox","binary","onChange","icon","_withCtx","slotProps","headercheckboxicon","_normalizeClass","_component_IconField","_component_InputText","onVnodeMounted","onVnodeUpdated","autocomplete","onInput","_component_InputIcon","_component_SearchIcon","_component_VirtualScroller","items","content","_ref2","styleClass","getItemOptions","contentStyle","itemSize","height","_withDirectives","onMousemove","optioncheckboxicon","itemcheckboxicon","ref_for","_toDisplayString","loader","_ref4"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/multiselect/BaseMultiSelect.vue","../../src/multiselect/MultiSelect.vue","../../src/multiselect/MultiSelect.vue?vue&type=template&id=c08e490a&lang.js"],"sourcesContent":["<script>\nimport BaseInput from '@primevue/core/baseinput';\nimport MultiSelectStyle from 'primevue/multiselect/style';\n\nexport default {\n name: 'BaseMultiSelect',\n extends: BaseInput,\n props: {\n options: Array,\n optionLabel: null,\n optionValue: null,\n optionDisabled: null,\n optionGroupLabel: null,\n optionGroupChildren: null,\n scrollHeight: {\n type: String,\n default: '14rem'\n },\n placeholder: String,\n inputId: {\n type: String,\n default: null\n },\n panelClass: {\n type: String,\n default: null\n },\n panelStyle: {\n type: null,\n default: null\n },\n overlayClass: {\n type: String,\n default: null\n },\n overlayStyle: {\n type: null,\n default: null\n },\n dataKey: null,\n showClear: {\n type: Boolean,\n default: false\n },\n clearIcon: {\n type: String,\n default: undefined\n },\n resetFilterOnClear: {\n type: Boolean,\n default: false\n },\n filter: Boolean,\n filterPlaceholder: String,\n filterLocale: String,\n filterMatchMode: {\n type: String,\n default: 'contains'\n },\n filterFields: {\n type: Array,\n default: null\n },\n appendTo: {\n type: [String, Object],\n default: 'body'\n },\n display: {\n type: String,\n default: 'comma'\n },\n selectedItemsLabel: {\n type: String,\n default: null\n },\n maxSelectedLabels: {\n type: Number,\n default: null\n },\n selectionLimit: {\n type: Number,\n default: null\n },\n showToggleAll: {\n type: Boolean,\n default: true\n },\n loading: {\n type: Boolean,\n default: false\n },\n checkboxIcon: {\n type: String,\n default: undefined\n },\n dropdownIcon: {\n type: String,\n default: undefined\n },\n filterIcon: {\n type: String,\n default: undefined\n },\n loadingIcon: {\n type: String,\n default: undefined\n },\n removeTokenIcon: {\n type: String,\n default: undefined\n },\n chipIcon: {\n type: String,\n default: undefined\n },\n selectAll: {\n type: Boolean,\n default: null\n },\n resetFilterOnHide: {\n type: Boolean,\n default: false\n },\n virtualScrollerOptions: {\n type: Object,\n default: null\n },\n autoOptionFocus: {\n type: Boolean,\n default: false\n },\n autoFilterFocus: {\n type: Boolean,\n default: false\n },\n focusOnHover: {\n type: Boolean,\n default: true\n },\n highlightOnSelect: {\n type: Boolean,\n default: false\n },\n filterMessage: {\n type: String,\n default: null\n },\n selectionMessage: {\n type: String,\n default: null\n },\n emptySelectionMessage: {\n type: String,\n default: null\n },\n emptyFilterMessage: {\n type: String,\n default: null\n },\n emptyMessage: {\n type: String,\n default: null\n },\n tabindex: {\n type: Number,\n default: 0\n },\n ariaLabel: {\n type: String,\n default: null\n },\n ariaLabelledby: {\n type: String,\n default: null\n }\n },\n style: MultiSelectStyle,\n provide() {\n return {\n $pcMultiSelect: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <div ref=\"container\" :class=\"cx('root')\" :style=\"sx('root')\" @click=\"onContainerClick\" v-bind=\"ptmi('root')\">\n <div class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenInputContainer')\" :data-p-hidden-accessible=\"true\">\n <input\n ref=\"focusInput\"\n :id=\"inputId\"\n type=\"text\"\n readonly\n :disabled=\"disabled\"\n :placeholder=\"placeholder\"\n :tabindex=\"!disabled ? tabindex : -1\"\n role=\"combobox\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n aria-haspopup=\"listbox\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"id + '_list'\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-invalid=\"invalid || undefined\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n v-bind=\"ptm('hiddenInput')\"\n />\n </div>\n <div :class=\"cx('labelContainer')\" v-bind=\"ptm('labelContainer')\">\n <div :class=\"cx('label')\" v-bind=\"ptm('label')\">\n <slot name=\"value\" :value=\"d_value\" :placeholder=\"placeholder\">\n <template v-if=\"display === 'comma'\">\n {{ label || 'empty' }}\n </template>\n <template v-else-if=\"display === 'chip'\">\n <template v-if=\"chipSelectedItems\">\n <span>{{ label }}</span>\n </template>\n <template v-else>\n <span v-for=\"item of d_value\" :key=\"getLabelByValue(item)\" :class=\"cx('chipItem')\" v-bind=\"ptm('chipItem')\">\n <slot name=\"chip\" :value=\"item\" :removeCallback=\"(event) => removeOption(event, item)\">\n <!-- TODO: removetokenicon and removeTokenIcon deprecated since v4.0. Use chipicon slot and chipIcon prop-->\n <Chip :class=\"cx('pcChip')\" :label=\"getLabelByValue(item)\" :removeIcon=\"chipIcon || removeTokenIcon\" removable :unstyled=\"unstyled\" @remove=\"removeOption($event, item)\" :pt=\"ptm('pcChip')\">\n <template #removeicon>\n <slot :name=\"$slots.chipicon ? 'chipicon' : 'removetokenicon'\" :class=\"cx('chipIcon')\" :item=\"item\" :removeCallback=\"(event) => removeOption(event, item)\" />\n </template>\n </Chip>\n </slot>\n </span>\n </template>\n <template v-if=\"!d_value || d_value.length === 0\">{{ placeholder || 'empty' }}</template>\n </template>\n </slot>\n </div>\n </div>\n <slot v-if=\"isClearIconVisible\" name=\"clearicon\" :class=\"cx('clearIcon')\" :clearCallback=\"onClearClick\">\n <component :is=\"clearIcon ? 'i' : 'TimesIcon'\" ref=\"clearIcon\" :class=\"[cx('clearIcon'), clearIcon]\" @click=\"onClearClick\" v-bind=\"ptm('clearIcon')\" data-pc-section=\"clearicon\" />\n </slot>\n <div :class=\"cx('dropdown')\" v-bind=\"ptm('dropdown')\">\n <slot v-if=\"loading\" name=\"loadingicon\" :class=\"cx('loadingIcon')\">\n <span v-if=\"loadingIcon\" :class=\"[cx('loadingIcon'), 'pi-spin', loadingIcon]\" aria-hidden=\"true\" v-bind=\"ptm('loadingIcon')\" />\n <SpinnerIcon v-else :class=\"cx('loadingIcon')\" spin aria-hidden=\"true\" v-bind=\"ptm('loadingIcon')\" />\n </slot>\n <slot v-else name=\"dropdownicon\" :class=\"cx('dropdownIcon')\">\n <component :is=\"dropdownIcon ? 'span' : 'ChevronDownIcon'\" :class=\"[cx('dropdownIcon'), dropdownIcon]\" aria-hidden=\"true\" v-bind=\"ptm('dropdownIcon')\" />\n </slot>\n </div>\n <Portal :appendTo=\"appendTo\">\n <transition name=\"p-connected-overlay\" @enter=\"onOverlayEnter\" @after-enter=\"onOverlayAfterEnter\" @leave=\"onOverlayLeave\" @after-leave=\"onOverlayAfterLeave\" v-bind=\"ptm('transition')\">\n <div v-if=\"overlayVisible\" :ref=\"overlayRef\" :style=\"[panelStyle, overlayStyle]\" :class=\"[cx('overlay'), panelClass, overlayClass]\" @click=\"onOverlayClick\" @keydown=\"onOverlayKeyDown\" v-bind=\"ptm('overlay')\">\n <span\n ref=\"firstHiddenFocusableElementOnOverlay\"\n role=\"presentation\"\n aria-hidden=\"true\"\n class=\"p-hidden-accessible p-hidden-focusable\"\n :tabindex=\"0\"\n @focus=\"onFirstHiddenFocus\"\n v-bind=\"ptm('hiddenFirstFocusableEl')\"\n :data-p-hidden-accessible=\"true\"\n :data-p-hidden-focusable=\"true\"\n ></span>\n <slot name=\"header\" :value=\"d_value\" :options=\"visibleOptions\"></slot>\n <div v-if=\"(showToggleAll && selectionLimit == null) || filter\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <Checkbox\n v-if=\"showToggleAll && selectionLimit == null\"\n :modelValue=\"allSelected\"\n :binary=\"true\"\n :disabled=\"disabled\"\n :variant=\"variant\"\n :aria-label=\"toggleAllAriaLabel\"\n @change=\"onToggleAll\"\n :unstyled=\"unstyled\"\n :pt=\"getHeaderCheckboxPTOptions('pcHeaderCheckbox')\"\n >\n <template #icon=\"slotProps\">\n <component v-if=\"$slots.headercheckboxicon\" :is=\"$slots.headercheckboxicon\" :checked=\"slotProps.checked\" :class=\"slotProps.class\" />\n <component v-else-if=\"slotProps.checked\" :is=\"checkboxIcon ? 'span' : 'CheckIcon'\" :class=\"[slotProps.class, { [checkboxIcon]: slotProps.checked }]\" v-bind=\"getHeaderCheckboxPTOptions('pcHeaderCheckbox.icon')\" />\n </template>\n </Checkbox>\n <IconField v-if=\"filter\" :class=\"cx('pcFilterContainer')\" :unstyled=\"unstyled\" :pt=\"ptm('pcFilterContainer')\">\n <InputText\n ref=\"filterInput\"\n :value=\"filterValue\"\n @vue:mounted=\"onFilterUpdated\"\n @vue:updated=\"onFilterUpdated\"\n :class=\"cx('pcFilter')\"\n :placeholder=\"filterPlaceholder\"\n :disabled=\"disabled\"\n :variant=\"variant\"\n :unstyled=\"unstyled\"\n role=\"searchbox\"\n autocomplete=\"off\"\n :aria-owns=\"id + '_list'\"\n :aria-activedescendant=\"focusedOptionId\"\n @keydown=\"onFilterKeyDown\"\n @blur=\"onFilterBlur\"\n @input=\"onFilterChange\"\n :pt=\"ptm('pcFilter')\"\n />\n <InputIcon :unstyled=\"unstyled\" :pt=\"ptm('pcFilterIconContainer')\">\n <slot name=\"filtericon\">\n <span v-if=\"filterIcon\" :class=\"filterIcon\" v-bind=\"ptm('filterIcon')\" />\n <SearchIcon v-else v-bind=\"ptm('filterIcon')\" />\n </slot>\n </InputIcon>\n </IconField>\n <span v-if=\"filter\" role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenFilterResult')\" :data-p-hidden-accessible=\"true\">\n {{ filterResultMessageText }}\n </span>\n </div>\n <div :class=\"cx('listContainer')\" :style=\"{ 'max-height': virtualScrollerDisabled ? scrollHeight : '' }\" v-bind=\"ptm('listContainer')\">\n <VirtualScroller :ref=\"virtualScrollerRef\" v-bind=\"virtualScrollerOptions\" :items=\"visibleOptions\" :style=\"{ height: scrollHeight }\" :tabindex=\"-1\" :disabled=\"virtualScrollerDisabled\" :pt=\"ptm('virtualScroller')\">\n <template v-slot:content=\"{ styleClass, contentRef, items, getItemOptions, contentStyle, itemSize }\">\n <ul :ref=\"(el) => listRef(el, contentRef)\" :id=\"id + '_list'\" :class=\"[cx('list'), styleClass]\" :style=\"contentStyle\" role=\"listbox\" aria-multiselectable=\"true\" :aria-label=\"listAriaLabel\" v-bind=\"ptm('list')\">\n <template v-for=\"(option, i) of items\" :key=\"getOptionRenderKey(option, getOptionIndex(i, getItemOptions))\">\n <li\n v-if=\"isOptionGroup(option)\"\n :id=\"id + '_' + getOptionIndex(i, getItemOptions)\"\n :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\"\n :class=\"cx('optionGroup')\"\n role=\"option\"\n v-bind=\"ptm('optionGroup')\"\n >\n <slot name=\"optiongroup\" :option=\"option.optionGroup\" :index=\"getOptionIndex(i, getItemOptions)\">{{ getOptionGroupLabel(option.optionGroup) }}</slot>\n </li>\n <li\n v-else\n :id=\"id + '_' + getOptionIndex(i, getItemOptions)\"\n v-ripple\n :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\"\n :class=\"cx('option', { option, index: i, getItemOptions })\"\n role=\"option\"\n :aria-label=\"getOptionLabel(option)\"\n :aria-selected=\"isSelected(option)\"\n :aria-disabled=\"isOptionDisabled(option)\"\n :aria-setsize=\"ariaSetSize\"\n :aria-posinset=\"getAriaPosInset(getOptionIndex(i, getItemOptions))\"\n @click=\"onOptionSelect($event, option, getOptionIndex(i, getItemOptions), true)\"\n @mousemove=\"onOptionMouseMove($event, getOptionIndex(i, getItemOptions))\"\n v-bind=\"getCheckboxPTOptions(option, getItemOptions, i, 'option')\"\n :data-p-selected=\"isSelected(option)\"\n :data-p-focused=\"focusedOptionIndex === getOptionIndex(i, getItemOptions)\"\n :data-p-disabled=\"isOptionDisabled(option)\"\n >\n <Checkbox :defaultValue=\"isSelected(option)\" :binary=\"true\" :tabindex=\"-1\" :variant=\"variant\" :unstyled=\"unstyled\" :pt=\"getCheckboxPTOptions(option, getItemOptions, i, 'pcOptionCheckbox')\">\n <template #icon=\"slotProps\">\n <component v-if=\"$slots.optioncheckboxicon || $slots.itemcheckboxicon\" :is=\"$slots.optioncheckboxicon || $slots.itemcheckboxicon\" :checked=\"slotProps.checked\" :class=\"slotProps.class\" />\n <component\n v-else-if=\"slotProps.checked\"\n :is=\"checkboxIcon ? 'span' : 'CheckIcon'\"\n :class=\"[slotProps.class, { [checkboxIcon]: slotProps.checked }]\"\n v-bind=\"getCheckboxPTOptions(option, getItemOptions, i, 'pcOptionCheckbox.icon')\"\n />\n </template>\n </Checkbox>\n <slot name=\"option\" :option=\"option\" :selected=\"isSelected(option)\" :index=\"getOptionIndex(i, getItemOptions)\">\n <span v-bind=\"ptm('optionLabel')\">{{ getOptionLabel(option) }}</span>\n </slot>\n </li>\n </template>\n <li v-if=\"filterValue && (!items || (items && items.length === 0))\" :class=\"cx('emptyMessage')\" role=\"option\" v-bind=\"ptm('emptyMessage')\">\n <slot name=\"emptyfilter\">{{ emptyFilterMessageText }}</slot>\n </li>\n <li v-else-if=\"!options || (options && options.length === 0)\" :class=\"cx('emptyMessage')\" role=\"option\" v-bind=\"ptm('emptyMessage')\">\n <slot name=\"empty\">{{ emptyMessageText }}</slot>\n </li>\n </ul>\n </template>\n <template v-if=\"$slots.loader\" v-slot:loader=\"{ options }\">\n <slot name=\"loader\" :options=\"options\"></slot>\n </template>\n </VirtualScroller>\n </div>\n <slot name=\"footer\" :value=\"d_value\" :options=\"visibleOptions\"></slot>\n <span v-if=\"!options || (options && options.length === 0)\" role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenEmptyMessage')\" :data-p-hidden-accessible=\"true\">\n {{ emptyMessageText }}\n </span>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenSelectedMessage')\" :data-p-hidden-accessible=\"true\">\n {{ selectedMessageText }}\n </span>\n <span\n ref=\"lastHiddenFocusableElementOnOverlay\"\n role=\"presentation\"\n aria-hidden=\"true\"\n class=\"p-hidden-accessible p-hidden-focusable\"\n :tabindex=\"0\"\n @focus=\"onLastHiddenFocus\"\n v-bind=\"ptm('hiddenLastFocusableEl')\"\n :data-p-hidden-accessible=\"true\"\n :data-p-hidden-focusable=\"true\"\n ></span>\n </div>\n </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { absolutePosition, addStyle, findSingle, focus, getFirstFocusableElement, getFocusableElements, getLastFocusableElement, getOuterWidth, isTouchDevice, relativePosition } from '@primeuix/utils/dom';\nimport { equals, findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, resolveFieldData } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { FilterService } from '@primevue/core/api';\nimport { ConnectedOverlayScrollHandler, UniqueComponentId } from '@primevue/core/utils';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport SearchIcon from '@primevue/icons/search';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport TimesIcon from '@primevue/icons/times';\nimport Checkbox from 'primevue/checkbox';\nimport Chip from 'primevue/chip';\nimport IconField from 'primevue/iconfield';\nimport InputIcon from 'primevue/inputicon';\nimport InputText from 'primevue/inputtext';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Ripple from 'primevue/ripple';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseMultiSelect from './BaseMultiSelect.vue';\n\nexport default {\n name: 'MultiSelect',\n extends: BaseMultiSelect,\n inheritAttrs: false,\n emits: ['change', 'focus', 'blur', 'before-show', 'before-hide', 'show', 'hide', 'filter', 'selectall-change'],\n inject: {\n $pcFluid: { default: null }\n },\n outsideClickListener: null,\n scrollHandler: null,\n resizeListener: null,\n overlay: null,\n list: null,\n virtualScroller: null,\n startRangeIndex: -1,\n searchTimeout: null,\n searchValue: '',\n selectOnFocus: false,\n data() {\n return {\n id: this.$attrs.id,\n clicked: false,\n focused: false,\n focusedOptionIndex: -1,\n filterValue: null,\n overlayVisible: false\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n },\n options() {\n this.autoUpdateModel();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n },\n beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.overlay = null;\n }\n },\n methods: {\n getOptionIndex(index, fn) {\n return this.virtualScrollerDisabled ? index : fn && fn(index)['index'];\n },\n getOptionLabel(option) {\n return this.optionLabel ? resolveFieldData(option, this.optionLabel) : option;\n },\n getOptionValue(option) {\n return this.optionValue ? resolveFieldData(option, this.optionValue) : option;\n },\n getOptionRenderKey(option, index) {\n return this.dataKey ? resolveFieldData(option, this.dataKey) : this.getOptionLabel(option) + `_${index}`;\n },\n getHeaderCheckboxPTOptions(key) {\n return this.ptm(key, {\n context: {\n selected: this.allSelected\n }\n });\n },\n getCheckboxPTOptions(option, itemOptions, index, key) {\n return this.ptm(key, {\n context: {\n selected: this.isSelected(option),\n focused: this.focusedOptionIndex === this.getOptionIndex(index, itemOptions),\n disabled: this.isOptionDisabled(option)\n }\n });\n },\n isOptionDisabled(option) {\n if (this.maxSelectionLimitReached && !this.isSelected(option)) {\n return true;\n }\n\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n },\n isOptionGroup(option) {\n return this.optionGroupLabel && option.optionGroup && option.group;\n },\n getOptionGroupLabel(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupLabel);\n },\n getOptionGroupChildren(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupChildren);\n },\n getAriaPosInset(index) {\n return (this.optionGroupLabel ? index - this.visibleOptions.slice(0, index).filter((option) => this.isOptionGroup(option)).length : index) + 1;\n },\n show(isFocus) {\n this.$emit('before-show');\n this.overlayVisible = true;\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex();\n\n isFocus && focus(this.$refs.focusInput);\n },\n hide(isFocus) {\n const _hide = () => {\n this.$emit('before-hide');\n this.overlayVisible = false;\n this.clicked = false;\n this.focusedOptionIndex = -1;\n this.searchValue = '';\n\n this.resetFilterOnHide && (this.filterValue = null);\n isFocus && focus(this.$refs.focusInput);\n };\n\n setTimeout(() => {\n _hide();\n }, 0); // For ScreenReaders\n },\n onFocus(event) {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n\n this.focused = true;\n\n if (this.overlayVisible) {\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex();\n this.scrollInView(this.focusedOptionIndex);\n }\n\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.clicked = false;\n this.focused = false;\n this.focusedOptionIndex = -1;\n this.searchValue = '';\n this.$emit('blur', event);\n this.formField.onBlur?.();\n },\n onKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n\n return;\n }\n\n const metaKey = event.metaKey || event.ctrlKey;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'ShiftLeft':\n case 'ShiftRight':\n this.onShiftKey(event);\n break;\n\n default:\n if (event.code === 'KeyA' && metaKey) {\n const value = this.visibleOptions.filter((option) => this.isValidOption(option)).map((option) => this.getOptionValue(option));\n\n this.updateModel(event, value);\n\n event.preventDefault();\n break;\n }\n\n if (!metaKey && isPrintableCharacter(event.key)) {\n !this.overlayVisible && this.show();\n this.searchOptions(event);\n event.preventDefault();\n }\n\n break;\n }\n\n this.clicked = false;\n },\n onContainerClick(event) {\n if (this.disabled || this.loading) {\n return;\n }\n\n if (event.target.tagName === 'INPUT' || event.target.getAttribute('data-pc-section') === 'clearicon' || event.target.closest('[data-pc-section=\"clearicon\"]')) {\n return;\n } else if (!this.overlay || !this.overlay.contains(event.target)) {\n this.overlayVisible ? this.hide(true) : this.show(true);\n }\n\n this.clicked = true;\n },\n onClearClick(event) {\n this.updateModel(event, null);\n this.resetFilterOnClear && (this.filterValue = null);\n },\n onFirstHiddenFocus(event) {\n const focusableEl = event.relatedTarget === this.$refs.focusInput ? getFirstFocusableElement(this.overlay, ':not([data-p-hidden-focusable=\"true\"])') : this.$refs.focusInput;\n\n focus(focusableEl);\n },\n onLastHiddenFocus(event) {\n const focusableEl = event.relatedTarget === this.$refs.focusInput ? getLastFocusableElement(this.overlay, ':not([data-p-hidden-focusable=\"true\"])') : this.$refs.focusInput;\n\n focus(focusableEl);\n },\n onOptionSelect(event, option, index = -1, isFocus = false) {\n if (this.disabled || this.isOptionDisabled(option)) {\n return;\n }\n\n let selected = this.isSelected(option);\n let value = null;\n\n if (selected) value = this.d_value.filter((val) => !equals(val, this.getOptionValue(option), this.equalityKey));\n else value = [...(this.d_value || []), this.getOptionValue(option)];\n\n this.updateModel(event, value);\n index !== -1 && (this.focusedOptionIndex = index);\n isFocus && focus(this.$refs.focusInput);\n },\n onOptionMouseMove(event, index) {\n if (this.focusOnHover) {\n this.changeFocusedOptionIndex(event, index);\n }\n },\n onOptionSelectRange(event, start = -1, end = -1) {\n start === -1 && (start = this.findNearestSelectedOptionIndex(end, true));\n end === -1 && (end = this.findNearestSelectedOptionIndex(start));\n\n if (start !== -1 && end !== -1) {\n const rangeStart = Math.min(start, end);\n const rangeEnd = Math.max(start, end);\n const value = this.visibleOptions\n .slice(rangeStart, rangeEnd + 1)\n .filter((option) => this.isValidOption(option))\n .map((option) => this.getOptionValue(option));\n\n this.updateModel(event, value);\n }\n },\n onFilterChange(event) {\n const value = event.target.value;\n\n this.filterValue = value;\n this.focusedOptionIndex = -1;\n this.$emit('filter', { originalEvent: event, value });\n\n !this.virtualScrollerDisabled && this.virtualScroller.scrollToIndex(0);\n },\n onFilterKeyDown(event) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event, true);\n break;\n\n case 'ArrowLeft':\n case 'ArrowRight':\n this.onArrowLeftKey(event, true);\n break;\n\n case 'Home':\n this.onHomeKey(event, true);\n break;\n\n case 'End':\n this.onEndKey(event, true);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event, true);\n break;\n\n default:\n break;\n }\n },\n onFilterBlur() {\n this.focusedOptionIndex = -1;\n },\n onFilterUpdated() {\n if (this.overlayVisible) {\n this.alignOverlay();\n }\n },\n onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.$el\n });\n },\n onOverlayKeyDown(event) {\n switch (event.code) {\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n if (!this.overlayVisible) {\n this.show();\n } else {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();\n\n if (event.shiftKey) {\n this.onOptionSelectRange(event, this.startRangeIndex, optionIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n\n event.preventDefault();\n },\n onArrowUpKey(event, pressedInInputText = false) {\n if (event.altKey && !pressedInInputText) {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.overlayVisible && this.hide();\n event.preventDefault();\n } else {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();\n\n if (event.shiftKey) {\n this.onOptionSelectRange(event, optionIndex, this.startRangeIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n }\n },\n onArrowLeftKey(event, pressedInInputText = false) {\n pressedInInputText && (this.focusedOptionIndex = -1);\n },\n onHomeKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n const target = event.currentTarget;\n\n if (event.shiftKey) {\n target.setSelectionRange(0, event.target.selectionStart);\n } else {\n target.setSelectionRange(0, 0);\n this.focusedOptionIndex = -1;\n }\n } else {\n let metaKey = event.metaKey || event.ctrlKey;\n let optionIndex = this.findFirstOptionIndex();\n\n if (event.shiftKey && metaKey) {\n this.onOptionSelectRange(event, optionIndex, this.startRangeIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n\n !this.overlayVisible && this.show();\n }\n\n event.preventDefault();\n },\n onEndKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n const target = event.currentTarget;\n\n if (event.shiftKey) {\n target.setSelectionRange(event.target.selectionStart, target.value.length);\n } else {\n const len = target.value.length;\n\n target.setSelectionRange(len, len);\n this.focusedOptionIndex = -1;\n }\n } else {\n let metaKey = event.metaKey || event.ctrlKey;\n let optionIndex = this.findLastOptionIndex();\n\n if (event.shiftKey && metaKey) {\n this.onOptionSelectRange(event, this.startRangeIndex, optionIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n\n !this.overlayVisible && this.show();\n }\n\n event.preventDefault();\n },\n onPageUpKey(event) {\n this.scrollInView(0);\n event.preventDefault();\n },\n onPageDownKey(event) {\n this.scrollInView(this.visibleOptions.length - 1);\n event.preventDefault();\n },\n onEnterKey(event) {\n if (!this.overlayVisible) {\n this.focusedOptionIndex = -1; // reset\n this.onArrowDownKey(event);\n } else {\n if (this.focusedOptionIndex !== -1) {\n if (event.shiftKey) this.onOptionSelectRange(event, this.focusedOptionIndex);\n else this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n }\n\n event.preventDefault();\n },\n onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\n },\n onTabKey(event, pressedInInputText = false) {\n if (!pressedInInputText) {\n if (this.overlayVisible && this.hasFocusableElements()) {\n focus(event.shiftKey ? this.$refs.lastHiddenFocusableElementOnOverlay : this.$refs.firstHiddenFocusableElementOnOverlay);\n\n event.preventDefault();\n } else {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.overlayVisible && this.hide(this.filter);\n }\n }\n },\n onShiftKey() {\n this.startRangeIndex = this.focusedOptionIndex;\n },\n onOverlayEnter(el) {\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n\n addStyle(el, { position: 'absolute', top: '0', left: '0' });\n this.alignOverlay();\n this.scrollInView();\n\n this.autoFilterFocus && focus(this.$refs.filterInput.$el);\n },\n onOverlayAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.$emit('show');\n },\n onOverlayLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n\n this.$emit('hide');\n this.overlay = null;\n },\n onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n alignOverlay() {\n if (this.appendTo === 'self') {\n relativePosition(this.overlay, this.$el);\n } else {\n this.overlay.style.minWidth = getOuterWidth(this.$el) + 'px';\n absolutePosition(this.overlay, this.$el);\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.overlayVisible && this.isOutsideClicked(event)) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n isOutsideClicked(event) {\n return !(this.$el.isSameNode(event.target) || this.$el.contains(event.target) || (this.overlay && this.overlay.contains(event.target)));\n },\n getLabelByValue(value) {\n const options = this.optionGroupLabel ? this.flatOptions(this.options) : this.options || [];\n const matchedOption = options.find((option) => !this.isOptionGroup(option) && equals(this.getOptionValue(option), value, this.equalityKey));\n\n return matchedOption ? this.getOptionLabel(matchedOption) : null;\n },\n getSelectedItemsLabel() {\n let pattern = /{(.*?)}/;\n const selectedItemsLabel = this.selectedItemsLabel || this.$primevue.config.locale.selectionMessage;\n\n if (pattern.test(selectedItemsLabel)) {\n return selectedItemsLabel.replace(selectedItemsLabel.match(pattern)[0], this.d_value.length + '');\n }\n\n return selectedItemsLabel;\n },\n onToggleAll(event) {\n if (this.selectAll !== null) {\n this.$emit('selectall-change', { originalEvent: event, checked: !this.allSelected });\n } else {\n const value = this.allSelected ? [] : this.visibleOptions.filter((option) => this.isValidOption(option)).map((option) => this.getOptionValue(option));\n\n this.updateModel(event, value);\n }\n },\n removeOption(event, optionValue) {\n event.stopPropagation();\n let value = this.d_value.filter((val) => !equals(val, optionValue, this.equalityKey));\n\n this.updateModel(event, value);\n },\n clearFilter() {\n this.filterValue = null;\n },\n hasFocusableElements() {\n return getFocusableElements(this.overlay, ':not([data-p-hidden-focusable=\"true\"])').length > 0;\n },\n isOptionMatched(option) {\n return this.isValidOption(option) && typeof this.getOptionLabel(option) === 'string' && this.getOptionLabel(option)?.toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale));\n },\n isValidOption(option) {\n return isNotEmpty(option) && !(this.isOptionDisabled(option) || this.isOptionGroup(option));\n },\n isValidSelectedOption(option) {\n return this.isValidOption(option) && this.isSelected(option);\n },\n isEquals(value1, value2) {\n return equals(value1, value2, this.equalityKey);\n },\n isSelected(option) {\n const optionValue = this.getOptionValue(option);\n\n return (this.d_value || []).some((value) => this.isEquals(value, optionValue));\n },\n findFirstOptionIndex() {\n return this.visibleOptions.findIndex((option) => this.isValidOption(option));\n },\n findLastOptionIndex() {\n return findLastIndex(this.visibleOptions, (option) => this.isValidOption(option));\n },\n findNextOptionIndex(index) {\n const matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((option) => this.isValidOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n },\n findPrevOptionIndex(index) {\n const matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), (option) => this.isValidOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findSelectedOptionIndex() {\n if (this.$filled) {\n for (let index = this.d_value.length - 1; index >= 0; index--) {\n const value = this.d_value[index];\n const matchedOptionIndex = this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option) && this.isEquals(value, this.getOptionValue(option)));\n\n if (matchedOptionIndex > -1) return matchedOptionIndex;\n }\n }\n\n return -1;\n },\n findFirstSelectedOptionIndex() {\n return this.$filled ? this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option)) : -1;\n },\n findLastSelectedOptionIndex() {\n return this.$filled ? findLastIndex(this.visibleOptions, (option) => this.isValidSelectedOption(option)) : -1;\n },\n findNextSelectedOptionIndex(index) {\n const matchedOptionIndex = this.$filled && index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((option) => this.isValidSelectedOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : -1;\n },\n findPrevSelectedOptionIndex(index) {\n const matchedOptionIndex = this.$filled && index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), (option) => this.isValidSelectedOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : -1;\n },\n findNearestSelectedOptionIndex(index, firstCheckUp = false) {\n let matchedOptionIndex = -1;\n\n if (this.$filled) {\n if (firstCheckUp) {\n matchedOptionIndex = this.findPrevSelectedOptionIndex(index);\n matchedOptionIndex = matchedOptionIndex === -1 ? this.findNextSelectedOptionIndex(index) : matchedOptionIndex;\n } else {\n matchedOptionIndex = this.findNextSelectedOptionIndex(index);\n matchedOptionIndex = matchedOptionIndex === -1 ? this.findPrevSelectedOptionIndex(index) : matchedOptionIndex;\n }\n }\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findFirstFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n },\n searchOptions(event) {\n this.searchValue = (this.searchValue || '') + event.key;\n\n let optionIndex = -1;\n\n if (isNotEmpty(this.searchValue)) {\n if (this.focusedOptionIndex !== -1) {\n optionIndex = this.visibleOptions.slice(this.focusedOptionIndex).findIndex((option) => this.isOptionMatched(option));\n optionIndex = optionIndex === -1 ? this.visibleOptions.slice(0, this.focusedOptionIndex).findIndex((option) => this.isOptionMatched(option)) : optionIndex + this.focusedOptionIndex;\n } else {\n optionIndex = this.visibleOptions.findIndex((option) => this.isOptionMatched(option));\n }\n\n if (optionIndex === -1 && this.focusedOptionIndex === -1) {\n optionIndex = this.findFirstFocusedOptionIndex();\n }\n\n if (optionIndex !== -1) {\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n },\n changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex !== index) {\n this.focusedOptionIndex = index;\n this.scrollInView();\n\n if (this.selectOnFocus) {\n this.onOptionSelect(event, this.visibleOptions[index]);\n }\n }\n },\n scrollInView(index = -1) {\n this.$nextTick(() => {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;\n const element = findSingle(this.list, `li[id=\"${id}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n } else if (!this.virtualScrollerDisabled) {\n this.virtualScroller && this.virtualScroller.scrollToIndex(index !== -1 ? index : this.focusedOptionIndex);\n }\n });\n },\n autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.$filled) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n const value = this.getOptionValue(this.visibleOptions[this.focusedOptionIndex]);\n\n this.updateModel(null, [value]);\n }\n },\n updateModel(event, value) {\n this.writeValue(value, event);\n this.$emit('change', { originalEvent: event, value });\n },\n flatOptions(options) {\n return (options || []).reduce((result, option, index) => {\n result.push({ optionGroup: option, group: true, index });\n\n const optionGroupChildren = this.getOptionGroupChildren(option);\n\n optionGroupChildren && optionGroupChildren.forEach((o) => result.push(o));\n\n return result;\n }, []);\n },\n overlayRef(el) {\n this.overlay = el;\n },\n listRef(el, contentRef) {\n this.list = el;\n contentRef && contentRef(el); // For VirtualScroller\n },\n virtualScrollerRef(el) {\n this.virtualScroller = el;\n }\n },\n computed: {\n visibleOptions() {\n const options = this.optionGroupLabel ? this.flatOptions(this.options) : this.options || [];\n\n if (this.filterValue) {\n const filteredOptions = FilterService.filter(options, this.searchFields, this.filterValue, this.filterMatchMode, this.filterLocale);\n\n if (this.optionGroupLabel) {\n const optionGroups = this.options || [];\n const filtered = [];\n\n optionGroups.forEach((group) => {\n const groupChildren = this.getOptionGroupChildren(group);\n const filteredItems = groupChildren.filter((item) => filteredOptions.includes(item));\n\n if (filteredItems.length > 0) filtered.push({ ...group, [typeof this.optionGroupChildren === 'string' ? this.optionGroupChildren : 'items']: [...filteredItems] });\n });\n\n return this.flatOptions(filtered);\n }\n\n return filteredOptions;\n }\n\n return options;\n },\n label() {\n // TODO: Refactor\n let label;\n\n if (this.d_value && this.d_value.length) {\n if (isNotEmpty(this.maxSelectedLabels) && this.d_value.length > this.maxSelectedLabels) {\n return this.getSelectedItemsLabel();\n } else {\n label = '';\n\n for (let i = 0; i < this.d_value.length; i++) {\n if (i !== 0) {\n label += ', ';\n }\n\n label += this.getLabelByValue(this.d_value[i]);\n }\n }\n } else {\n label = this.placeholder;\n }\n\n return label;\n },\n chipSelectedItems() {\n return isNotEmpty(this.maxSelectedLabels) && this.d_value && this.d_value.length > this.maxSelectedLabels;\n },\n allSelected() {\n return this.selectAll !== null ? this.selectAll : isNotEmpty(this.visibleOptions) && this.visibleOptions.every((option) => this.isOptionGroup(option) || this.isOptionDisabled(option) || this.isSelected(option));\n },\n // @deprecated use $filled instead.\n hasSelectedOption() {\n return this.$filled;\n },\n equalityKey() {\n return this.optionValue ? null : this.dataKey;\n },\n searchFields() {\n return this.filterFields || [this.optionLabel];\n },\n maxSelectionLimitReached() {\n return this.selectionLimit && this.d_value && this.d_value.length === this.selectionLimit;\n },\n filterResultMessageText() {\n return isNotEmpty(this.visibleOptions) ? this.filterMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptyFilterMessageText;\n },\n filterMessageText() {\n return this.filterMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptyFilterMessageText() {\n return this.emptyFilterMessage || this.$primevue.config.locale.emptySearchMessage || this.$primevue.config.locale.emptyFilterMessage || '';\n },\n emptyMessageText() {\n return this.emptyMessage || this.$primevue.config.locale.emptyMessage || '';\n },\n selectionMessageText() {\n return this.selectionMessage || this.$primevue.config.locale.selectionMessage || '';\n },\n emptySelectionMessageText() {\n return this.emptySelectionMessage || this.$primevue.config.locale.emptySelectionMessage || '';\n },\n selectedMessageText() {\n return this.$filled ? this.selectionMessageText.replaceAll('{0}', this.d_value.length) : this.emptySelectionMessageText;\n },\n focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? `${this.id}_${this.focusedOptionIndex}` : null;\n },\n ariaSetSize() {\n return this.visibleOptions.filter((option) => !this.isOptionGroup(option)).length;\n },\n toggleAllAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria[this.allSelected ? 'selectAll' : 'unselectAll'] : undefined;\n },\n listAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.listLabel : undefined;\n },\n virtualScrollerDisabled() {\n return !this.virtualScrollerOptions;\n },\n hasFluid() {\n return isEmpty(this.fluid) ? !!this.$pcFluid : this.fluid;\n },\n isClearIconVisible() {\n return this.showClear && this.d_value != null && isNotEmpty(this.options);\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n InputText,\n Checkbox,\n VirtualScroller,\n Portal,\n Chip,\n IconField,\n InputIcon,\n TimesIcon,\n SearchIcon,\n ChevronDownIcon,\n SpinnerIcon,\n CheckIcon\n }\n};\n</script>\n","<template>\n <div ref=\"container\" :class=\"cx('root')\" :style=\"sx('root')\" @click=\"onContainerClick\" v-bind=\"ptmi('root')\">\n <div class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenInputContainer')\" :data-p-hidden-accessible=\"true\">\n <input\n ref=\"focusInput\"\n :id=\"inputId\"\n type=\"text\"\n readonly\n :disabled=\"disabled\"\n :placeholder=\"placeholder\"\n :tabindex=\"!disabled ? tabindex : -1\"\n role=\"combobox\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n aria-haspopup=\"listbox\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"id + '_list'\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-invalid=\"invalid || undefined\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n v-bind=\"ptm('hiddenInput')\"\n />\n </div>\n <div :class=\"cx('labelContainer')\" v-bind=\"ptm('labelContainer')\">\n <div :class=\"cx('label')\" v-bind=\"ptm('label')\">\n <slot name=\"value\" :value=\"d_value\" :placeholder=\"placeholder\">\n <template v-if=\"display === 'comma'\">\n {{ label || 'empty' }}\n </template>\n <template v-else-if=\"display === 'chip'\">\n <template v-if=\"chipSelectedItems\">\n <span>{{ label }}</span>\n </template>\n <template v-else>\n <span v-for=\"item of d_value\" :key=\"getLabelByValue(item)\" :class=\"cx('chipItem')\" v-bind=\"ptm('chipItem')\">\n <slot name=\"chip\" :value=\"item\" :removeCallback=\"(event) => removeOption(event, item)\">\n <!-- TODO: removetokenicon and removeTokenIcon deprecated since v4.0. Use chipicon slot and chipIcon prop-->\n <Chip :class=\"cx('pcChip')\" :label=\"getLabelByValue(item)\" :removeIcon=\"chipIcon || removeTokenIcon\" removable :unstyled=\"unstyled\" @remove=\"removeOption($event, item)\" :pt=\"ptm('pcChip')\">\n <template #removeicon>\n <slot :name=\"$slots.chipicon ? 'chipicon' : 'removetokenicon'\" :class=\"cx('chipIcon')\" :item=\"item\" :removeCallback=\"(event) => removeOption(event, item)\" />\n </template>\n </Chip>\n </slot>\n </span>\n </template>\n <template v-if=\"!d_value || d_value.length === 0\">{{ placeholder || 'empty' }}</template>\n </template>\n </slot>\n </div>\n </div>\n <slot v-if=\"isClearIconVisible\" name=\"clearicon\" :class=\"cx('clearIcon')\" :clearCallback=\"onClearClick\">\n <component :is=\"clearIcon ? 'i' : 'TimesIcon'\" ref=\"clearIcon\" :class=\"[cx('clearIcon'), clearIcon]\" @click=\"onClearClick\" v-bind=\"ptm('clearIcon')\" data-pc-section=\"clearicon\" />\n </slot>\n <div :class=\"cx('dropdown')\" v-bind=\"ptm('dropdown')\">\n <slot v-if=\"loading\" name=\"loadingicon\" :class=\"cx('loadingIcon')\">\n <span v-if=\"loadingIcon\" :class=\"[cx('loadingIcon'), 'pi-spin', loadingIcon]\" aria-hidden=\"true\" v-bind=\"ptm('loadingIcon')\" />\n <SpinnerIcon v-else :class=\"cx('loadingIcon')\" spin aria-hidden=\"true\" v-bind=\"ptm('loadingIcon')\" />\n </slot>\n <slot v-else name=\"dropdownicon\" :class=\"cx('dropdownIcon')\">\n <component :is=\"dropdownIcon ? 'span' : 'ChevronDownIcon'\" :class=\"[cx('dropdownIcon'), dropdownIcon]\" aria-hidden=\"true\" v-bind=\"ptm('dropdownIcon')\" />\n </slot>\n </div>\n <Portal :appendTo=\"appendTo\">\n <transition name=\"p-connected-overlay\" @enter=\"onOverlayEnter\" @after-enter=\"onOverlayAfterEnter\" @leave=\"onOverlayLeave\" @after-leave=\"onOverlayAfterLeave\" v-bind=\"ptm('transition')\">\n <div v-if=\"overlayVisible\" :ref=\"overlayRef\" :style=\"[panelStyle, overlayStyle]\" :class=\"[cx('overlay'), panelClass, overlayClass]\" @click=\"onOverlayClick\" @keydown=\"onOverlayKeyDown\" v-bind=\"ptm('overlay')\">\n <span\n ref=\"firstHiddenFocusableElementOnOverlay\"\n role=\"presentation\"\n aria-hidden=\"true\"\n class=\"p-hidden-accessible p-hidden-focusable\"\n :tabindex=\"0\"\n @focus=\"onFirstHiddenFocus\"\n v-bind=\"ptm('hiddenFirstFocusableEl')\"\n :data-p-hidden-accessible=\"true\"\n :data-p-hidden-focusable=\"true\"\n ></span>\n <slot name=\"header\" :value=\"d_value\" :options=\"visibleOptions\"></slot>\n <div v-if=\"(showToggleAll && selectionLimit == null) || filter\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <Checkbox\n v-if=\"showToggleAll && selectionLimit == null\"\n :modelValue=\"allSelected\"\n :binary=\"true\"\n :disabled=\"disabled\"\n :variant=\"variant\"\n :aria-label=\"toggleAllAriaLabel\"\n @change=\"onToggleAll\"\n :unstyled=\"unstyled\"\n :pt=\"getHeaderCheckboxPTOptions('pcHeaderCheckbox')\"\n >\n <template #icon=\"slotProps\">\n <component v-if=\"$slots.headercheckboxicon\" :is=\"$slots.headercheckboxicon\" :checked=\"slotProps.checked\" :class=\"slotProps.class\" />\n <component v-else-if=\"slotProps.checked\" :is=\"checkboxIcon ? 'span' : 'CheckIcon'\" :class=\"[slotProps.class, { [checkboxIcon]: slotProps.checked }]\" v-bind=\"getHeaderCheckboxPTOptions('pcHeaderCheckbox.icon')\" />\n </template>\n </Checkbox>\n <IconField v-if=\"filter\" :class=\"cx('pcFilterContainer')\" :unstyled=\"unstyled\" :pt=\"ptm('pcFilterContainer')\">\n <InputText\n ref=\"filterInput\"\n :value=\"filterValue\"\n @vue:mounted=\"onFilterUpdated\"\n @vue:updated=\"onFilterUpdated\"\n :class=\"cx('pcFilter')\"\n :placeholder=\"filterPlaceholder\"\n :disabled=\"disabled\"\n :variant=\"variant\"\n :unstyled=\"unstyled\"\n role=\"searchbox\"\n autocomplete=\"off\"\n :aria-owns=\"id + '_list'\"\n :aria-activedescendant=\"focusedOptionId\"\n @keydown=\"onFilterKeyDown\"\n @blur=\"onFilterBlur\"\n @input=\"onFilterChange\"\n :pt=\"ptm('pcFilter')\"\n />\n <InputIcon :unstyled=\"unstyled\" :pt=\"ptm('pcFilterIconContainer')\">\n <slot name=\"filtericon\">\n <span v-if=\"filterIcon\" :class=\"filterIcon\" v-bind=\"ptm('filterIcon')\" />\n <SearchIcon v-else v-bind=\"ptm('filterIcon')\" />\n </slot>\n </InputIcon>\n </IconField>\n <span v-if=\"filter\" role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenFilterResult')\" :data-p-hidden-accessible=\"true\">\n {{ filterResultMessageText }}\n </span>\n </div>\n <div :class=\"cx('listContainer')\" :style=\"{ 'max-height': virtualScrollerDisabled ? scrollHeight : '' }\" v-bind=\"ptm('listContainer')\">\n <VirtualScroller :ref=\"virtualScrollerRef\" v-bind=\"virtualScrollerOptions\" :items=\"visibleOptions\" :style=\"{ height: scrollHeight }\" :tabindex=\"-1\" :disabled=\"virtualScrollerDisabled\" :pt=\"ptm('virtualScroller')\">\n <template v-slot:content=\"{ styleClass, contentRef, items, getItemOptions, contentStyle, itemSize }\">\n <ul :ref=\"(el) => listRef(el, contentRef)\" :id=\"id + '_list'\" :class=\"[cx('list'), styleClass]\" :style=\"contentStyle\" role=\"listbox\" aria-multiselectable=\"true\" :aria-label=\"listAriaLabel\" v-bind=\"ptm('list')\">\n <template v-for=\"(option, i) of items\" :key=\"getOptionRenderKey(option, getOptionIndex(i, getItemOptions))\">\n <li\n v-if=\"isOptionGroup(option)\"\n :id=\"id + '_' + getOptionIndex(i, getItemOptions)\"\n :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\"\n :class=\"cx('optionGroup')\"\n role=\"option\"\n v-bind=\"ptm('optionGroup')\"\n >\n <slot name=\"optiongroup\" :option=\"option.optionGroup\" :index=\"getOptionIndex(i, getItemOptions)\">{{ getOptionGroupLabel(option.optionGroup) }}</slot>\n </li>\n <li\n v-else\n :id=\"id + '_' + getOptionIndex(i, getItemOptions)\"\n v-ripple\n :style=\"{ height: itemSize ? itemSize + 'px' : undefined }\"\n :class=\"cx('option', { option, index: i, getItemOptions })\"\n role=\"option\"\n :aria-label=\"getOptionLabel(option)\"\n :aria-selected=\"isSelected(option)\"\n :aria-disabled=\"isOptionDisabled(option)\"\n :aria-setsize=\"ariaSetSize\"\n :aria-posinset=\"getAriaPosInset(getOptionIndex(i, getItemOptions))\"\n @click=\"onOptionSelect($event, option, getOptionIndex(i, getItemOptions), true)\"\n @mousemove=\"onOptionMouseMove($event, getOptionIndex(i, getItemOptions))\"\n v-bind=\"getCheckboxPTOptions(option, getItemOptions, i, 'option')\"\n :data-p-selected=\"isSelected(option)\"\n :data-p-focused=\"focusedOptionIndex === getOptionIndex(i, getItemOptions)\"\n :data-p-disabled=\"isOptionDisabled(option)\"\n >\n <Checkbox :defaultValue=\"isSelected(option)\" :binary=\"true\" :tabindex=\"-1\" :variant=\"variant\" :unstyled=\"unstyled\" :pt=\"getCheckboxPTOptions(option, getItemOptions, i, 'pcOptionCheckbox')\">\n <template #icon=\"slotProps\">\n <component v-if=\"$slots.optioncheckboxicon || $slots.itemcheckboxicon\" :is=\"$slots.optioncheckboxicon || $slots.itemcheckboxicon\" :checked=\"slotProps.checked\" :class=\"slotProps.class\" />\n <component\n v-else-if=\"slotProps.checked\"\n :is=\"checkboxIcon ? 'span' : 'CheckIcon'\"\n :class=\"[slotProps.class, { [checkboxIcon]: slotProps.checked }]\"\n v-bind=\"getCheckboxPTOptions(option, getItemOptions, i, 'pcOptionCheckbox.icon')\"\n />\n </template>\n </Checkbox>\n <slot name=\"option\" :option=\"option\" :selected=\"isSelected(option)\" :index=\"getOptionIndex(i, getItemOptions)\">\n <span v-bind=\"ptm('optionLabel')\">{{ getOptionLabel(option) }}</span>\n </slot>\n </li>\n </template>\n <li v-if=\"filterValue && (!items || (items && items.length === 0))\" :class=\"cx('emptyMessage')\" role=\"option\" v-bind=\"ptm('emptyMessage')\">\n <slot name=\"emptyfilter\">{{ emptyFilterMessageText }}</slot>\n </li>\n <li v-else-if=\"!options || (options && options.length === 0)\" :class=\"cx('emptyMessage')\" role=\"option\" v-bind=\"ptm('emptyMessage')\">\n <slot name=\"empty\">{{ emptyMessageText }}</slot>\n </li>\n </ul>\n </template>\n <template v-if=\"$slots.loader\" v-slot:loader=\"{ options }\">\n <slot name=\"loader\" :options=\"options\"></slot>\n </template>\n </VirtualScroller>\n </div>\n <slot name=\"footer\" :value=\"d_value\" :options=\"visibleOptions\"></slot>\n <span v-if=\"!options || (options && options.length === 0)\" role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenEmptyMessage')\" :data-p-hidden-accessible=\"true\">\n {{ emptyMessageText }}\n </span>\n <span role=\"status\" aria-live=\"polite\" class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenSelectedMessage')\" :data-p-hidden-accessible=\"true\">\n {{ selectedMessageText }}\n </span>\n <span\n ref=\"lastHiddenFocusableElementOnOverlay\"\n role=\"presentation\"\n aria-hidden=\"true\"\n class=\"p-hidden-accessible p-hidden-focusable\"\n :tabindex=\"0\"\n @focus=\"onLastHiddenFocus\"\n v-bind=\"ptm('hiddenLastFocusableEl')\"\n :data-p-hidden-accessible=\"true\"\n :data-p-hidden-focusable=\"true\"\n ></span>\n </div>\n </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { absolutePosition, addStyle, findSingle, focus, getFirstFocusableElement, getFocusableElements, getLastFocusableElement, getOuterWidth, isTouchDevice, relativePosition } from '@primeuix/utils/dom';\nimport { equals, findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, resolveFieldData } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { FilterService } from '@primevue/core/api';\nimport { ConnectedOverlayScrollHandler, UniqueComponentId } from '@primevue/core/utils';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport SearchIcon from '@primevue/icons/search';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport TimesIcon from '@primevue/icons/times';\nimport Checkbox from 'primevue/checkbox';\nimport Chip from 'primevue/chip';\nimport IconField from 'primevue/iconfield';\nimport InputIcon from 'primevue/inputicon';\nimport InputText from 'primevue/inputtext';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Ripple from 'primevue/ripple';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseMultiSelect from './BaseMultiSelect.vue';\n\nexport default {\n name: 'MultiSelect',\n extends: BaseMultiSelect,\n inheritAttrs: false,\n emits: ['change', 'focus', 'blur', 'before-show', 'before-hide', 'show', 'hide', 'filter', 'selectall-change'],\n inject: {\n $pcFluid: { default: null }\n },\n outsideClickListener: null,\n scrollHandler: null,\n resizeListener: null,\n overlay: null,\n list: null,\n virtualScroller: null,\n startRangeIndex: -1,\n searchTimeout: null,\n searchValue: '',\n selectOnFocus: false,\n data() {\n return {\n id: this.$attrs.id,\n clicked: false,\n focused: false,\n focusedOptionIndex: -1,\n filterValue: null,\n overlayVisible: false\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n },\n options() {\n this.autoUpdateModel();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n },\n beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.overlay = null;\n }\n },\n methods: {\n getOptionIndex(index, fn) {\n return this.virtualScrollerDisabled ? index : fn && fn(index)['index'];\n },\n getOptionLabel(option) {\n return this.optionLabel ? resolveFieldData(option, this.optionLabel) : option;\n },\n getOptionValue(option) {\n return this.optionValue ? resolveFieldData(option, this.optionValue) : option;\n },\n getOptionRenderKey(option, index) {\n return this.dataKey ? resolveFieldData(option, this.dataKey) : this.getOptionLabel(option) + `_${index}`;\n },\n getHeaderCheckboxPTOptions(key) {\n return this.ptm(key, {\n context: {\n selected: this.allSelected\n }\n });\n },\n getCheckboxPTOptions(option, itemOptions, index, key) {\n return this.ptm(key, {\n context: {\n selected: this.isSelected(option),\n focused: this.focusedOptionIndex === this.getOptionIndex(index, itemOptions),\n disabled: this.isOptionDisabled(option)\n }\n });\n },\n isOptionDisabled(option) {\n if (this.maxSelectionLimitReached && !this.isSelected(option)) {\n return true;\n }\n\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n },\n isOptionGroup(option) {\n return this.optionGroupLabel && option.optionGroup && option.group;\n },\n getOptionGroupLabel(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupLabel);\n },\n getOptionGroupChildren(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupChildren);\n },\n getAriaPosInset(index) {\n return (this.optionGroupLabel ? index - this.visibleOptions.slice(0, index).filter((option) => this.isOptionGroup(option)).length : index) + 1;\n },\n show(isFocus) {\n this.$emit('before-show');\n this.overlayVisible = true;\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex();\n\n isFocus && focus(this.$refs.focusInput);\n },\n hide(isFocus) {\n const _hide = () => {\n this.$emit('before-hide');\n this.overlayVisible = false;\n this.clicked = false;\n this.focusedOptionIndex = -1;\n this.searchValue = '';\n\n this.resetFilterOnHide && (this.filterValue = null);\n isFocus && focus(this.$refs.focusInput);\n };\n\n setTimeout(() => {\n _hide();\n }, 0); // For ScreenReaders\n },\n onFocus(event) {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n\n this.focused = true;\n\n if (this.overlayVisible) {\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex();\n this.scrollInView(this.focusedOptionIndex);\n }\n\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.clicked = false;\n this.focused = false;\n this.focusedOptionIndex = -1;\n this.searchValue = '';\n this.$emit('blur', event);\n this.formField.onBlur?.();\n },\n onKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n\n return;\n }\n\n const metaKey = event.metaKey || event.ctrlKey;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'ShiftLeft':\n case 'ShiftRight':\n this.onShiftKey(event);\n break;\n\n default:\n if (event.code === 'KeyA' && metaKey) {\n const value = this.visibleOptions.filter((option) => this.isValidOption(option)).map((option) => this.getOptionValue(option));\n\n this.updateModel(event, value);\n\n event.preventDefault();\n break;\n }\n\n if (!metaKey && isPrintableCharacter(event.key)) {\n !this.overlayVisible && this.show();\n this.searchOptions(event);\n event.preventDefault();\n }\n\n break;\n }\n\n this.clicked = false;\n },\n onContainerClick(event) {\n if (this.disabled || this.loading) {\n return;\n }\n\n if (event.target.tagName === 'INPUT' || event.target.getAttribute('data-pc-section') === 'clearicon' || event.target.closest('[data-pc-section=\"clearicon\"]')) {\n return;\n } else if (!this.overlay || !this.overlay.contains(event.target)) {\n this.overlayVisible ? this.hide(true) : this.show(true);\n }\n\n this.clicked = true;\n },\n onClearClick(event) {\n this.updateModel(event, null);\n this.resetFilterOnClear && (this.filterValue = null);\n },\n onFirstHiddenFocus(event) {\n const focusableEl = event.relatedTarget === this.$refs.focusInput ? getFirstFocusableElement(this.overlay, ':not([data-p-hidden-focusable=\"true\"])') : this.$refs.focusInput;\n\n focus(focusableEl);\n },\n onLastHiddenFocus(event) {\n const focusableEl = event.relatedTarget === this.$refs.focusInput ? getLastFocusableElement(this.overlay, ':not([data-p-hidden-focusable=\"true\"])') : this.$refs.focusInput;\n\n focus(focusableEl);\n },\n onOptionSelect(event, option, index = -1, isFocus = false) {\n if (this.disabled || this.isOptionDisabled(option)) {\n return;\n }\n\n let selected = this.isSelected(option);\n let value = null;\n\n if (selected) value = this.d_value.filter((val) => !equals(val, this.getOptionValue(option), this.equalityKey));\n else value = [...(this.d_value || []), this.getOptionValue(option)];\n\n this.updateModel(event, value);\n index !== -1 && (this.focusedOptionIndex = index);\n isFocus && focus(this.$refs.focusInput);\n },\n onOptionMouseMove(event, index) {\n if (this.focusOnHover) {\n this.changeFocusedOptionIndex(event, index);\n }\n },\n onOptionSelectRange(event, start = -1, end = -1) {\n start === -1 && (start = this.findNearestSelectedOptionIndex(end, true));\n end === -1 && (end = this.findNearestSelectedOptionIndex(start));\n\n if (start !== -1 && end !== -1) {\n const rangeStart = Math.min(start, end);\n const rangeEnd = Math.max(start, end);\n const value = this.visibleOptions\n .slice(rangeStart, rangeEnd + 1)\n .filter((option) => this.isValidOption(option))\n .map((option) => this.getOptionValue(option));\n\n this.updateModel(event, value);\n }\n },\n onFilterChange(event) {\n const value = event.target.value;\n\n this.filterValue = value;\n this.focusedOptionIndex = -1;\n this.$emit('filter', { originalEvent: event, value });\n\n !this.virtualScrollerDisabled && this.virtualScroller.scrollToIndex(0);\n },\n onFilterKeyDown(event) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event, true);\n break;\n\n case 'ArrowLeft':\n case 'ArrowRight':\n this.onArrowLeftKey(event, true);\n break;\n\n case 'Home':\n this.onHomeKey(event, true);\n break;\n\n case 'End':\n this.onEndKey(event, true);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event, true);\n break;\n\n default:\n break;\n }\n },\n onFilterBlur() {\n this.focusedOptionIndex = -1;\n },\n onFilterUpdated() {\n if (this.overlayVisible) {\n this.alignOverlay();\n }\n },\n onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.$el\n });\n },\n onOverlayKeyDown(event) {\n switch (event.code) {\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n if (!this.overlayVisible) {\n this.show();\n } else {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();\n\n if (event.shiftKey) {\n this.onOptionSelectRange(event, this.startRangeIndex, optionIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n\n event.preventDefault();\n },\n onArrowUpKey(event, pressedInInputText = false) {\n if (event.altKey && !pressedInInputText) {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.overlayVisible && this.hide();\n event.preventDefault();\n } else {\n const optionIndex = this.focusedOptionIndex !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();\n\n if (event.shiftKey) {\n this.onOptionSelectRange(event, optionIndex, this.startRangeIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n\n !this.overlayVisible && this.show();\n event.preventDefault();\n }\n },\n onArrowLeftKey(event, pressedInInputText = false) {\n pressedInInputText && (this.focusedOptionIndex = -1);\n },\n onHomeKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n const target = event.currentTarget;\n\n if (event.shiftKey) {\n target.setSelectionRange(0, event.target.selectionStart);\n } else {\n target.setSelectionRange(0, 0);\n this.focusedOptionIndex = -1;\n }\n } else {\n let metaKey = event.metaKey || event.ctrlKey;\n let optionIndex = this.findFirstOptionIndex();\n\n if (event.shiftKey && metaKey) {\n this.onOptionSelectRange(event, optionIndex, this.startRangeIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n\n !this.overlayVisible && this.show();\n }\n\n event.preventDefault();\n },\n onEndKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n const target = event.currentTarget;\n\n if (event.shiftKey) {\n target.setSelectionRange(event.target.selectionStart, target.value.length);\n } else {\n const len = target.value.length;\n\n target.setSelectionRange(len, len);\n this.focusedOptionIndex = -1;\n }\n } else {\n let metaKey = event.metaKey || event.ctrlKey;\n let optionIndex = this.findLastOptionIndex();\n\n if (event.shiftKey && metaKey) {\n this.onOptionSelectRange(event, this.startRangeIndex, optionIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n\n !this.overlayVisible && this.show();\n }\n\n event.preventDefault();\n },\n onPageUpKey(event) {\n this.scrollInView(0);\n event.preventDefault();\n },\n onPageDownKey(event) {\n this.scrollInView(this.visibleOptions.length - 1);\n event.preventDefault();\n },\n onEnterKey(event) {\n if (!this.overlayVisible) {\n this.focusedOptionIndex = -1; // reset\n this.onArrowDownKey(event);\n } else {\n if (this.focusedOptionIndex !== -1) {\n if (event.shiftKey) this.onOptionSelectRange(event, this.focusedOptionIndex);\n else this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n }\n\n event.preventDefault();\n },\n onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\n },\n onTabKey(event, pressedInInputText = false) {\n if (!pressedInInputText) {\n if (this.overlayVisible && this.hasFocusableElements()) {\n focus(event.shiftKey ? this.$refs.lastHiddenFocusableElementOnOverlay : this.$refs.firstHiddenFocusableElementOnOverlay);\n\n event.preventDefault();\n } else {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n\n this.overlayVisible && this.hide(this.filter);\n }\n }\n },\n onShiftKey() {\n this.startRangeIndex = this.focusedOptionIndex;\n },\n onOverlayEnter(el) {\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n\n addStyle(el, { position: 'absolute', top: '0', left: '0' });\n this.alignOverlay();\n this.scrollInView();\n\n this.autoFilterFocus && focus(this.$refs.filterInput.$el);\n },\n onOverlayAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.$emit('show');\n },\n onOverlayLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n\n this.$emit('hide');\n this.overlay = null;\n },\n onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n alignOverlay() {\n if (this.appendTo === 'self') {\n relativePosition(this.overlay, this.$el);\n } else {\n this.overlay.style.minWidth = getOuterWidth(this.$el) + 'px';\n absolutePosition(this.overlay, this.$el);\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.overlayVisible && this.isOutsideClicked(event)) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n isOutsideClicked(event) {\n return !(this.$el.isSameNode(event.target) || this.$el.contains(event.target) || (this.overlay && this.overlay.contains(event.target)));\n },\n getLabelByValue(value) {\n const options = this.optionGroupLabel ? this.flatOptions(this.options) : this.options || [];\n const matchedOption = options.find((option) => !this.isOptionGroup(option) && equals(this.getOptionValue(option), value, this.equalityKey));\n\n return matchedOption ? this.getOptionLabel(matchedOption) : null;\n },\n getSelectedItemsLabel() {\n let pattern = /{(.*?)}/;\n const selectedItemsLabel = this.selectedItemsLabel || this.$primevue.config.locale.selectionMessage;\n\n if (pattern.test(selectedItemsLabel)) {\n return selectedItemsLabel.replace(selectedItemsLabel.match(pattern)[0], this.d_value.length + '');\n }\n\n return selectedItemsLabel;\n },\n onToggleAll(event) {\n if (this.selectAll !== null) {\n this.$emit('selectall-change', { originalEvent: event, checked: !this.allSelected });\n } else {\n const value = this.allSelected ? [] : this.visibleOptions.filter((option) => this.isValidOption(option)).map((option) => this.getOptionValue(option));\n\n this.updateModel(event, value);\n }\n },\n removeOption(event, optionValue) {\n event.stopPropagation();\n let value = this.d_value.filter((val) => !equals(val, optionValue, this.equalityKey));\n\n this.updateModel(event, value);\n },\n clearFilter() {\n this.filterValue = null;\n },\n hasFocusableElements() {\n return getFocusableElements(this.overlay, ':not([data-p-hidden-focusable=\"true\"])').length > 0;\n },\n isOptionMatched(option) {\n return this.isValidOption(option) && typeof this.getOptionLabel(option) === 'string' && this.getOptionLabel(option)?.toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale));\n },\n isValidOption(option) {\n return isNotEmpty(option) && !(this.isOptionDisabled(option) || this.isOptionGroup(option));\n },\n isValidSelectedOption(option) {\n return this.isValidOption(option) && this.isSelected(option);\n },\n isEquals(value1, value2) {\n return equals(value1, value2, this.equalityKey);\n },\n isSelected(option) {\n const optionValue = this.getOptionValue(option);\n\n return (this.d_value || []).some((value) => this.isEquals(value, optionValue));\n },\n findFirstOptionIndex() {\n return this.visibleOptions.findIndex((option) => this.isValidOption(option));\n },\n findLastOptionIndex() {\n return findLastIndex(this.visibleOptions, (option) => this.isValidOption(option));\n },\n findNextOptionIndex(index) {\n const matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((option) => this.isValidOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n },\n findPrevOptionIndex(index) {\n const matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), (option) => this.isValidOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findSelectedOptionIndex() {\n if (this.$filled) {\n for (let index = this.d_value.length - 1; index >= 0; index--) {\n const value = this.d_value[index];\n const matchedOptionIndex = this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option) && this.isEquals(value, this.getOptionValue(option)));\n\n if (matchedOptionIndex > -1) return matchedOptionIndex;\n }\n }\n\n return -1;\n },\n findFirstSelectedOptionIndex() {\n return this.$filled ? this.visibleOptions.findIndex((option) => this.isValidSelectedOption(option)) : -1;\n },\n findLastSelectedOptionIndex() {\n return this.$filled ? findLastIndex(this.visibleOptions, (option) => this.isValidSelectedOption(option)) : -1;\n },\n findNextSelectedOptionIndex(index) {\n const matchedOptionIndex = this.$filled && index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex((option) => this.isValidSelectedOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : -1;\n },\n findPrevSelectedOptionIndex(index) {\n const matchedOptionIndex = this.$filled && index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), (option) => this.isValidSelectedOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : -1;\n },\n findNearestSelectedOptionIndex(index, firstCheckUp = false) {\n let matchedOptionIndex = -1;\n\n if (this.$filled) {\n if (firstCheckUp) {\n matchedOptionIndex = this.findPrevSelectedOptionIndex(index);\n matchedOptionIndex = matchedOptionIndex === -1 ? this.findNextSelectedOptionIndex(index) : matchedOptionIndex;\n } else {\n matchedOptionIndex = this.findNextSelectedOptionIndex(index);\n matchedOptionIndex = matchedOptionIndex === -1 ? this.findPrevSelectedOptionIndex(index) : matchedOptionIndex;\n }\n }\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findFirstFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n },\n searchOptions(event) {\n this.searchValue = (this.searchValue || '') + event.key;\n\n let optionIndex = -1;\n\n if (isNotEmpty(this.searchValue)) {\n if (this.focusedOptionIndex !== -1) {\n optionIndex = this.visibleOptions.slice(this.focusedOptionIndex).findIndex((option) => this.isOptionMatched(option));\n optionIndex = optionIndex === -1 ? this.visibleOptions.slice(0, this.focusedOptionIndex).findIndex((option) => this.isOptionMatched(option)) : optionIndex + this.focusedOptionIndex;\n } else {\n optionIndex = this.visibleOptions.findIndex((option) => this.isOptionMatched(option));\n }\n\n if (optionIndex === -1 && this.focusedOptionIndex === -1) {\n optionIndex = this.findFirstFocusedOptionIndex();\n }\n\n if (optionIndex !== -1) {\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n },\n changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex !== index) {\n this.focusedOptionIndex = index;\n this.scrollInView();\n\n if (this.selectOnFocus) {\n this.onOptionSelect(event, this.visibleOptions[index]);\n }\n }\n },\n scrollInView(index = -1) {\n this.$nextTick(() => {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;\n const element = findSingle(this.list, `li[id=\"${id}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n } else if (!this.virtualScrollerDisabled) {\n this.virtualScroller && this.virtualScroller.scrollToIndex(index !== -1 ? index : this.focusedOptionIndex);\n }\n });\n },\n autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.$filled) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n const value = this.getOptionValue(this.visibleOptions[this.focusedOptionIndex]);\n\n this.updateModel(null, [value]);\n }\n },\n updateModel(event, value) {\n this.writeValue(value, event);\n this.$emit('change', { originalEvent: event, value });\n },\n flatOptions(options) {\n return (options || []).reduce((result, option, index) => {\n result.push({ optionGroup: option, group: true, index });\n\n const optionGroupChildren = this.getOptionGroupChildren(option);\n\n optionGroupChildren && optionGroupChildren.forEach((o) => result.push(o));\n\n return result;\n }, []);\n },\n overlayRef(el) {\n this.overlay = el;\n },\n listRef(el, contentRef) {\n this.list = el;\n contentRef && contentRef(el); // For VirtualScroller\n },\n virtualScrollerRef(el) {\n this.virtualScroller = el;\n }\n },\n computed: {\n visibleOptions() {\n const options = this.optionGroupLabel ? this.flatOptions(this.options) : this.options || [];\n\n if (this.filterValue) {\n const filteredOptions = FilterService.filter(options, this.searchFields, this.filterValue, this.filterMatchMode, this.filterLocale);\n\n if (this.optionGroupLabel) {\n const optionGroups = this.options || [];\n const filtered = [];\n\n optionGroups.forEach((group) => {\n const groupChildren = this.getOptionGroupChildren(group);\n const filteredItems = groupChildren.filter((item) => filteredOptions.includes(item));\n\n if (filteredItems.length > 0) filtered.push({ ...group, [typeof this.optionGroupChildren === 'string' ? this.optionGroupChildren : 'items']: [...filteredItems] });\n });\n\n return this.flatOptions(filtered);\n }\n\n return filteredOptions;\n }\n\n return options;\n },\n label() {\n // TODO: Refactor\n let label;\n\n if (this.d_value && this.d_value.length) {\n if (isNotEmpty(this.maxSelectedLabels) && this.d_value.length > this.maxSelectedLabels) {\n return this.getSelectedItemsLabel();\n } else {\n label = '';\n\n for (let i = 0; i < this.d_value.length; i++) {\n if (i !== 0) {\n label += ', ';\n }\n\n label += this.getLabelByValue(this.d_value[i]);\n }\n }\n } else {\n label = this.placeholder;\n }\n\n return label;\n },\n chipSelectedItems() {\n return isNotEmpty(this.maxSelectedLabels) && this.d_value && this.d_value.length > this.maxSelectedLabels;\n },\n allSelected() {\n return this.selectAll !== null ? this.selectAll : isNotEmpty(this.visibleOptions) && this.visibleOptions.every((option) => this.isOptionGroup(option) || this.isOptionDisabled(option) || this.isSelected(option));\n },\n // @deprecated use $filled instead.\n hasSelectedOption() {\n return this.$filled;\n },\n equalityKey() {\n return this.optionValue ? null : this.dataKey;\n },\n searchFields() {\n return this.filterFields || [this.optionLabel];\n },\n maxSelectionLimitReached() {\n return this.selectionLimit && this.d_value && this.d_value.length === this.selectionLimit;\n },\n filterResultMessageText() {\n return isNotEmpty(this.visibleOptions) ? this.filterMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptyFilterMessageText;\n },\n filterMessageText() {\n return this.filterMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptyFilterMessageText() {\n return this.emptyFilterMessage || this.$primevue.config.locale.emptySearchMessage || this.$primevue.config.locale.emptyFilterMessage || '';\n },\n emptyMessageText() {\n return this.emptyMessage || this.$primevue.config.locale.emptyMessage || '';\n },\n selectionMessageText() {\n return this.selectionMessage || this.$primevue.config.locale.selectionMessage || '';\n },\n emptySelectionMessageText() {\n return this.emptySelectionMessage || this.$primevue.config.locale.emptySelectionMessage || '';\n },\n selectedMessageText() {\n return this.$filled ? this.selectionMessageText.replaceAll('{0}', this.d_value.length) : this.emptySelectionMessageText;\n },\n focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? `${this.id}_${this.focusedOptionIndex}` : null;\n },\n ariaSetSize() {\n return this.visibleOptions.filter((option) => !this.isOptionGroup(option)).length;\n },\n toggleAllAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria[this.allSelected ? 'selectAll' : 'unselectAll'] : undefined;\n },\n listAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.listLabel : undefined;\n },\n virtualScrollerDisabled() {\n return !this.virtualScrollerOptions;\n },\n hasFluid() {\n return isEmpty(this.fluid) ? !!this.$pcFluid : this.fluid;\n },\n isClearIconVisible() {\n return this.showClear && this.d_value != null && isNotEmpty(this.options);\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n InputText,\n Checkbox,\n VirtualScroller,\n Portal,\n Chip,\n IconField,\n InputIcon,\n TimesIcon,\n SearchIcon,\n ChevronDownIcon,\n SpinnerIcon,\n CheckIcon\n }\n};\n</script>\n"],"names":["name","BaseInput","props","options","Array","optionLabel","optionValue","optionDisabled","optionGroupLabel","optionGroupChildren","scrollHeight","type","String","placeholder","inputId","panelClass","panelStyle","overlayClass","overlayStyle","dataKey","showClear","Boolean","clearIcon","undefined","resetFilterOnClear","filter","filterPlaceholder","filterLocale","filterMatchMode","filterFields","appendTo","Object","display","selectedItemsLabel","maxSelectedLabels","Number","selectionLimit","showToggleAll","loading","checkboxIcon","dropdownIcon","filterIcon","loadingIcon","removeTokenIcon","chipIcon","selectAll","resetFilterOnHide","virtualScrollerOptions","autoOptionFocus","autoFilterFocus","focusOnHover","highlightOnSelect","filterMessage","selectionMessage","emptySelectionMessage","emptyFilterMessage","emptyMessage","tabindex","ariaLabel","ariaLabelledby","style","MultiSelectStyle","provide","$pcMultiSelect","$parentInstance","BaseMultiSelect","inheritAttrs","emits","inject","$pcFluid","outsideClickListener","scrollHandler","resizeListener","overlay","list","virtualScroller","startRangeIndex","searchTimeout","searchValue","selectOnFocus","data","id","$attrs","clicked","focused","focusedOptionIndex","filterValue","overlayVisible","watch","$attrsId","newValue","UniqueComponentId","autoUpdateModel","mounted","beforeUnmount","unbindOutsideClickListener","unbindResizeListener","destroy","ZIndex","clear","methods","getOptionIndex","index","fn","virtualScrollerDisabled","getOptionLabel","option","resolveFieldData","getOptionValue","getOptionRenderKey","concat","getHeaderCheckboxPTOptions","key","ptm","context","selected","allSelected","getCheckboxPTOptions","itemOptions","isSelected","disabled","isOptionDisabled","maxSelectionLimitReached","isOptionGroup","optionGroup","group","getOptionGroupLabel","getOptionGroupChildren","getAriaPosInset","_this","visibleOptions","slice","length","show","isFocus","$emit","findFirstFocusedOptionIndex","findSelectedOptionIndex","focus","$refs","focusInput","hide","_this2","_hide","setTimeout","onFocus","event","scrollInView","onBlur","_this$formField$onBlu","_this$formField","formField","call","onKeyDown","_this3","preventDefault","metaKey","ctrlKey","code","onArrowDownKey","onArrowUpKey","onHomeKey","onEndKey","onPageDownKey","onPageUpKey","onEnterKey","onEscapeKey","onTabKey","onShiftKey","value","isValidOption","map","updateModel","isPrintableCharacter","searchOptions","onContainerClick","target","tagName","getAttribute","closest","contains","onClearClick","onFirstHiddenFocus","focusableEl","relatedTarget","getFirstFocusableElement","onLastHiddenFocus","getLastFocusableElement","onOptionSelect","_this4","arguments","d_value","val","equals","equalityKey","_toConsumableArray","onOptionMouseMove","changeFocusedOptionIndex","onOptionSelectRange","_this5","start","end","findNearestSelectedOptionIndex","rangeStart","Math","min","rangeEnd","max","onFilterChange","originalEvent","scrollToIndex","onFilterKeyDown","onArrowLeftKey","onFilterBlur","onFilterUpdated","alignOverlay","onOverlayClick","OverlayEventBus","emit","$el","onOverlayKeyDown","optionIndex","findNextOptionIndex","findFirstOptionIndex","shiftKey","pressedInInputText","altKey","findPrevOptionIndex","findLastOptionIndex","findLastFocusedOptionIndex","currentTarget","setSelectionRange","selectionStart","len","hasFocusableElements","lastHiddenFocusableElementOnOverlay","firstHiddenFocusableElementOnOverlay","onOverlayEnter","el","set","$primevue","config","zIndex","addStyle","position","top","left","filterInput","onOverlayAfterEnter","bindOutsideClickListener","bindScrollListener","bindResizeListener","onOverlayLeave","unbindScrollListener","onOverlayAfterLeave","relativePosition","minWidth","getOuterWidth","absolutePosition","_this6","isOutsideClicked","document","addEventListener","removeEventListener","_this7","ConnectedOverlayScrollHandler","container","_this8","isTouchDevice","window","isSameNode","getLabelByValue","_this9","flatOptions","matchedOption","find","getSelectedItemsLabel","pattern","locale","test","replace","match","onToggleAll","_this10","checked","removeOption","_this11","stopPropagation","clearFilter","getFocusableElements","isOptionMatched","_this$getOptionLabel","toLocaleLowerCase","startsWith","isNotEmpty","isValidSelectedOption","isEquals","value1","value2","_this12","some","_this13","findIndex","_this14","findLastIndex","_this15","matchedOptionIndex","_this16","_this17","$filled","_loop","v","_ret","findFirstSelectedOptionIndex","_this18","findLastSelectedOptionIndex","_this19","findNextSelectedOptionIndex","_this20","findPrevSelectedOptionIndex","_this21","firstCheckUp","selectedIndex","_this22","clearTimeout","_this23","$nextTick","focusedOptionId","element","findSingle","scrollIntoView","block","inline","writeValue","_this24","reduce","result","push","forEach","o","overlayRef","listRef","contentRef","virtualScrollerRef","computed","_this25","filteredOptions","FilterService","searchFields","optionGroups","filtered","groupChildren","filteredItems","item","includes","_objectSpread","_defineProperty","label","i","chipSelectedItems","_this26","every","hasSelectedOption","filterResultMessageText","filterMessageText","replaceAll","emptyFilterMessageText","searchMessage","emptySearchMessage","emptyMessageText","selectionMessageText","emptySelectionMessageText","selectedMessageText","ariaSetSize","_this27","toggleAllAriaLabel","aria","listAriaLabel","listLabel","hasFluid","isEmpty","fluid","isClearIconVisible","directives","ripple","Ripple","components","InputText","Checkbox","VirtualScroller","Portal","Chip","IconField","InputIcon","TimesIcon","SearchIcon","ChevronDownIcon","SpinnerIcon","CheckIcon","_openBlock","_createElementBlock","_mergeProps","ref","_ctx","cx","sx","onClick","$options","apply","ptmi","_createElementVNode","readonly","role","$data","invalid","onKeydown","_hoisted_1","_renderSlot","$slots","_Fragment","_renderList","removeCallback","_createVNode","_component_Chip","removeIcon","removable","unstyled","onRemove","$event","pt","removeicon","chipicon","clearCallback","_createBlock","_resolveDynamicComponent","_component_SpinnerIcon","spin","_component_Portal","_Transition","onEnter","onAfterEnter","onLeave","onAfterLeave","_component_Checkbox","modelValue","binary","variant","onChange","icon","_withCtx","slotProps","headercheckboxicon","_normalizeClass","_component_IconField","_component_InputText","onVnodeMounted","onVnodeUpdated","autocomplete","onInput","_component_InputIcon","_component_SearchIcon","_component_VirtualScroller","items","content","_ref2","styleClass","getItemOptions","contentStyle","itemSize","height","_withDirectives","onMousemove","defaultValue","optioncheckboxicon","itemcheckboxicon","ref_for","_toDisplayString","loader","_ref4"],"mappings":"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"}