primeng 16.7.2 → 16.9.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 (417) hide show
  1. package/breadcrumb/breadcrumb.interface.d.ts +2 -2
  2. package/calendar/calendar.d.ts +10 -1
  3. package/chart/chart.d.ts +11 -1
  4. package/chips/chips.d.ts +1 -2
  5. package/dropdown/dropdown.d.ts +7 -3
  6. package/esm2022/accordion/accordion.mjs +10 -10
  7. package/esm2022/animate/animate.mjs +7 -7
  8. package/esm2022/animateonscroll/animateonscroll.mjs +7 -7
  9. package/esm2022/api/confirmationservice.mjs +3 -3
  10. package/esm2022/api/contextmenuservice.mjs +3 -3
  11. package/esm2022/api/filterservice.mjs +3 -3
  12. package/esm2022/api/messageservice.mjs +3 -3
  13. package/esm2022/api/overlayservice.mjs +3 -3
  14. package/esm2022/api/primengconfig.mjs +3 -3
  15. package/esm2022/api/shared.mjs +13 -13
  16. package/esm2022/api/treedragdropservice.mjs +3 -3
  17. package/esm2022/autocomplete/autocomplete.mjs +38 -18
  18. package/esm2022/autofocus/autofocus.mjs +7 -7
  19. package/esm2022/avatar/avatar.mjs +7 -7
  20. package/esm2022/avatargroup/avatargroup.mjs +7 -7
  21. package/esm2022/badge/badge.mjs +10 -10
  22. package/esm2022/baseicon/baseicon.mjs +3 -3
  23. package/esm2022/blockui/blockui.mjs +7 -7
  24. package/esm2022/breadcrumb/breadcrumb.interface.mjs +1 -1
  25. package/esm2022/breadcrumb/breadcrumb.mjs +7 -7
  26. package/esm2022/button/button.mjs +10 -10
  27. package/esm2022/calendar/calendar.mjs +180 -34
  28. package/esm2022/card/card.mjs +7 -7
  29. package/esm2022/carousel/carousel.mjs +7 -7
  30. package/esm2022/cascadeselect/cascadeselect.mjs +10 -10
  31. package/esm2022/chart/chart.mjs +24 -10
  32. package/esm2022/checkbox/checkbox.mjs +7 -7
  33. package/esm2022/chip/chip.mjs +7 -7
  34. package/esm2022/chips/chips.mjs +15 -18
  35. package/esm2022/colorpicker/colorpicker.mjs +7 -7
  36. package/esm2022/confirmdialog/confirmdialog.mjs +7 -7
  37. package/esm2022/confirmpopup/confirmpopup.mjs +7 -7
  38. package/esm2022/contextmenu/contextmenu.mjs +18 -14
  39. package/esm2022/dataview/dataview.mjs +10 -10
  40. package/esm2022/defer/defer.mjs +7 -7
  41. package/esm2022/dialog/dialog.mjs +7 -7
  42. package/esm2022/divider/divider.mjs +7 -7
  43. package/esm2022/dock/dock.mjs +7 -7
  44. package/esm2022/dragdrop/dragdrop.mjs +10 -10
  45. package/esm2022/dropdown/dropdown.mjs +90 -51
  46. package/esm2022/dynamicdialog/dialogservice.mjs +3 -3
  47. package/esm2022/dynamicdialog/dynamicdialog.mjs +7 -7
  48. package/esm2022/dynamicdialog/dynamicdialogcontent.mjs +3 -3
  49. package/esm2022/editor/editor.mjs +7 -7
  50. package/esm2022/fieldset/fieldset.mjs +7 -7
  51. package/esm2022/fileupload/fileupload.mjs +18 -11
  52. package/esm2022/focustrap/focustrap.mjs +7 -7
  53. package/esm2022/galleria/galleria.mjs +19 -19
  54. package/esm2022/icons/angledoubledown/angledoubledown.mjs +3 -3
  55. package/esm2022/icons/angledoubleleft/angledoubleleft.mjs +3 -3
  56. package/esm2022/icons/angledoubleright/angledoubleright.mjs +3 -3
  57. package/esm2022/icons/angledoubleup/angledoubleup.mjs +3 -3
  58. package/esm2022/icons/angledown/angledown.mjs +3 -3
  59. package/esm2022/icons/angleleft/angleleft.mjs +3 -3
  60. package/esm2022/icons/angleright/angleright.mjs +3 -3
  61. package/esm2022/icons/angleup/angleup.mjs +3 -3
  62. package/esm2022/icons/arrowdown/arrowdown.mjs +3 -3
  63. package/esm2022/icons/arrowdownleft/arrowdownleft.mjs +3 -3
  64. package/esm2022/icons/arrowdownright/arrowdownright.mjs +3 -3
  65. package/esm2022/icons/arrowleft/arrowleft.mjs +3 -3
  66. package/esm2022/icons/arrowright/arrowright.mjs +3 -3
  67. package/esm2022/icons/arrowup/arrowup.mjs +3 -3
  68. package/esm2022/icons/ban/ban.mjs +3 -3
  69. package/esm2022/icons/bars/bars.mjs +3 -3
  70. package/esm2022/icons/calendar/calendar.mjs +3 -3
  71. package/esm2022/icons/caretleft/caretleft.mjs +3 -3
  72. package/esm2022/icons/caretright/caretright.mjs +3 -3
  73. package/esm2022/icons/check/check.mjs +3 -3
  74. package/esm2022/icons/chevrondown/chevrondown.mjs +3 -3
  75. package/esm2022/icons/chevronleft/chevronleft.mjs +3 -3
  76. package/esm2022/icons/chevronright/chevronright.mjs +3 -3
  77. package/esm2022/icons/chevronup/chevronup.mjs +3 -3
  78. package/esm2022/icons/exclamationtriangle/exclamationtriangle.mjs +3 -3
  79. package/esm2022/icons/eye/eye.mjs +3 -3
  80. package/esm2022/icons/eyeslash/eyeslash.mjs +3 -3
  81. package/esm2022/icons/filter/filter.mjs +3 -3
  82. package/esm2022/icons/filterslash/filterslash.mjs +3 -3
  83. package/esm2022/icons/home/home.mjs +3 -3
  84. package/esm2022/icons/infocircle/infocircle.mjs +3 -3
  85. package/esm2022/icons/minus/minus.mjs +3 -3
  86. package/esm2022/icons/pencil/pencil.mjs +3 -3
  87. package/esm2022/icons/plus/plus.mjs +3 -3
  88. package/esm2022/icons/refresh/refresh.mjs +3 -3
  89. package/esm2022/icons/search/search.mjs +3 -3
  90. package/esm2022/icons/searchminus/searchminus.mjs +3 -3
  91. package/esm2022/icons/searchplus/searchplus.mjs +3 -3
  92. package/esm2022/icons/sortalt/sortalt.mjs +3 -3
  93. package/esm2022/icons/sortamountdown/sortamountdown.mjs +3 -3
  94. package/esm2022/icons/sortamountupalt/sortamountupalt.mjs +3 -3
  95. package/esm2022/icons/spinner/spinner.mjs +3 -3
  96. package/esm2022/icons/star/star.mjs +3 -3
  97. package/esm2022/icons/starfill/starfill.mjs +3 -3
  98. package/esm2022/icons/thlarge/thlarge.mjs +3 -3
  99. package/esm2022/icons/times/times.mjs +3 -3
  100. package/esm2022/icons/timescircle/timescircle.mjs +3 -3
  101. package/esm2022/icons/trash/trash.mjs +3 -3
  102. package/esm2022/icons/undo/undo.mjs +3 -3
  103. package/esm2022/icons/upload/upload.mjs +3 -3
  104. package/esm2022/icons/windowmaximize/windowmaximize.mjs +3 -3
  105. package/esm2022/icons/windowminimize/windowminimize.mjs +3 -3
  106. package/esm2022/image/image.mjs +7 -7
  107. package/esm2022/inplace/inplace.mjs +13 -13
  108. package/esm2022/inputmask/inputmask.mjs +7 -7
  109. package/esm2022/inputnumber/inputnumber.mjs +7 -7
  110. package/esm2022/inputswitch/inputswitch.mjs +7 -7
  111. package/esm2022/inputtext/inputtext.mjs +7 -7
  112. package/esm2022/inputtextarea/inputtextarea.mjs +7 -7
  113. package/esm2022/keyfilter/keyfilter.mjs +7 -7
  114. package/esm2022/knob/knob.mjs +7 -7
  115. package/esm2022/listbox/listbox.interface.mjs +1 -1
  116. package/esm2022/listbox/listbox.mjs +52 -18
  117. package/esm2022/megamenu/megamenu.mjs +12 -14
  118. package/esm2022/menu/menu.mjs +13 -13
  119. package/esm2022/menubar/menubar.mjs +15 -15
  120. package/esm2022/message/message.mjs +7 -7
  121. package/esm2022/messages/messages.mjs +10 -10
  122. package/esm2022/multiselect/multiselect.interface.mjs +1 -1
  123. package/esm2022/multiselect/multiselect.mjs +110 -44
  124. package/esm2022/orderlist/orderlist.mjs +331 -103
  125. package/esm2022/organizationchart/organizationchart.mjs +54 -53
  126. package/esm2022/overlay/overlay.mjs +9 -9
  127. package/esm2022/overlaypanel/overlaypanel.mjs +7 -7
  128. package/esm2022/paginator/paginator.mjs +76 -25
  129. package/esm2022/panel/panel.mjs +10 -8
  130. package/esm2022/panelmenu/panelmenu.mjs +13 -13
  131. package/esm2022/password/password.mjs +13 -13
  132. package/esm2022/picklist/picklist.mjs +601 -135
  133. package/esm2022/progressbar/progressbar.mjs +7 -7
  134. package/esm2022/progressspinner/progressspinner.mjs +7 -7
  135. package/esm2022/radiobutton/radiobutton.mjs +10 -10
  136. package/esm2022/rating/rating.mjs +7 -7
  137. package/esm2022/ripple/ripple.mjs +7 -7
  138. package/esm2022/scroller/scroller.mjs +20 -16
  139. package/esm2022/scrollpanel/scrollpanel.mjs +7 -7
  140. package/esm2022/scrolltop/scrolltop.mjs +7 -7
  141. package/esm2022/selectbutton/selectbutton.mjs +7 -7
  142. package/esm2022/sidebar/sidebar.mjs +11 -11
  143. package/esm2022/skeleton/skeleton.mjs +7 -7
  144. package/esm2022/slidemenu/slidemenu.mjs +10 -10
  145. package/esm2022/slider/slider.mjs +7 -7
  146. package/esm2022/speeddial/speeddial.mjs +7 -7
  147. package/esm2022/spinner/spinner.mjs +7 -7
  148. package/esm2022/splitbutton/splitbutton.mjs +7 -7
  149. package/esm2022/splitter/splitter.mjs +10 -10
  150. package/esm2022/steps/steps.mjs +7 -7
  151. package/esm2022/styleclass/styleclass.mjs +7 -7
  152. package/esm2022/table/table.mjs +284 -154
  153. package/esm2022/tabmenu/tabmenu.mjs +7 -7
  154. package/esm2022/tabview/tabview.mjs +77 -32
  155. package/esm2022/tag/tag.mjs +7 -7
  156. package/esm2022/terminal/terminal.mjs +7 -7
  157. package/esm2022/terminal/terminalservice.mjs +3 -3
  158. package/esm2022/tieredmenu/tieredmenu.mjs +10 -10
  159. package/esm2022/timeline/timeline.mjs +25 -21
  160. package/esm2022/toast/toast.mjs +13 -13
  161. package/esm2022/togglebutton/togglebutton.mjs +7 -7
  162. package/esm2022/toolbar/toolbar.mjs +7 -7
  163. package/esm2022/tooltip/tooltip.mjs +9 -9
  164. package/esm2022/tree/tree.mjs +172 -92
  165. package/esm2022/treeselect/treeselect.mjs +134 -37
  166. package/esm2022/treetable/treetable.mjs +242 -128
  167. package/esm2022/tristatecheckbox/tristatecheckbox.mjs +7 -7
  168. package/esm2022/virtualscroller/virtualscroller.mjs +14 -14
  169. package/fesm2022/primeng-accordion.mjs +10 -10
  170. package/fesm2022/primeng-animate.mjs +7 -7
  171. package/fesm2022/primeng-animateonscroll.mjs +7 -7
  172. package/fesm2022/primeng-api.mjs +34 -34
  173. package/fesm2022/primeng-autocomplete.mjs +37 -17
  174. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  175. package/fesm2022/primeng-autofocus.mjs +7 -7
  176. package/fesm2022/primeng-avatar.mjs +7 -7
  177. package/fesm2022/primeng-avatargroup.mjs +7 -7
  178. package/fesm2022/primeng-badge.mjs +10 -10
  179. package/fesm2022/primeng-baseicon.mjs +3 -3
  180. package/fesm2022/primeng-blockui.mjs +7 -7
  181. package/fesm2022/primeng-breadcrumb.mjs +7 -7
  182. package/fesm2022/primeng-button.mjs +10 -10
  183. package/fesm2022/primeng-calendar.mjs +179 -33
  184. package/fesm2022/primeng-calendar.mjs.map +1 -1
  185. package/fesm2022/primeng-card.mjs +7 -7
  186. package/fesm2022/primeng-carousel.mjs +7 -7
  187. package/fesm2022/primeng-cascadeselect.mjs +10 -10
  188. package/fesm2022/primeng-chart.mjs +23 -9
  189. package/fesm2022/primeng-chart.mjs.map +1 -1
  190. package/fesm2022/primeng-checkbox.mjs +7 -7
  191. package/fesm2022/primeng-chip.mjs +7 -7
  192. package/fesm2022/primeng-chips.mjs +14 -17
  193. package/fesm2022/primeng-chips.mjs.map +1 -1
  194. package/fesm2022/primeng-colorpicker.mjs +7 -7
  195. package/fesm2022/primeng-confirmdialog.mjs +7 -7
  196. package/fesm2022/primeng-confirmpopup.mjs +7 -7
  197. package/fesm2022/primeng-contextmenu.mjs +17 -13
  198. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  199. package/fesm2022/primeng-dataview.mjs +10 -10
  200. package/fesm2022/primeng-defer.mjs +7 -7
  201. package/fesm2022/primeng-dialog.mjs +7 -7
  202. package/fesm2022/primeng-divider.mjs +7 -7
  203. package/fesm2022/primeng-dock.mjs +7 -7
  204. package/fesm2022/primeng-dragdrop.mjs +10 -10
  205. package/fesm2022/primeng-dropdown.mjs +89 -50
  206. package/fesm2022/primeng-dropdown.mjs.map +1 -1
  207. package/fesm2022/primeng-dynamicdialog.mjs +13 -13
  208. package/fesm2022/primeng-editor.mjs +7 -7
  209. package/fesm2022/primeng-fieldset.mjs +7 -7
  210. package/fesm2022/primeng-fileupload.mjs +17 -10
  211. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  212. package/fesm2022/primeng-focustrap.mjs +7 -7
  213. package/fesm2022/primeng-galleria.mjs +19 -19
  214. package/fesm2022/primeng-icons-angledoubledown.mjs +3 -3
  215. package/fesm2022/primeng-icons-angledoubleleft.mjs +3 -3
  216. package/fesm2022/primeng-icons-angledoubleright.mjs +3 -3
  217. package/fesm2022/primeng-icons-angledoubleup.mjs +3 -3
  218. package/fesm2022/primeng-icons-angledown.mjs +3 -3
  219. package/fesm2022/primeng-icons-angleleft.mjs +3 -3
  220. package/fesm2022/primeng-icons-angleright.mjs +3 -3
  221. package/fesm2022/primeng-icons-angleup.mjs +3 -3
  222. package/fesm2022/primeng-icons-arrowdown.mjs +3 -3
  223. package/fesm2022/primeng-icons-arrowdownleft.mjs +3 -3
  224. package/fesm2022/primeng-icons-arrowdownright.mjs +3 -3
  225. package/fesm2022/primeng-icons-arrowleft.mjs +3 -3
  226. package/fesm2022/primeng-icons-arrowright.mjs +3 -3
  227. package/fesm2022/primeng-icons-arrowup.mjs +3 -3
  228. package/fesm2022/primeng-icons-ban.mjs +3 -3
  229. package/fesm2022/primeng-icons-bars.mjs +3 -3
  230. package/fesm2022/primeng-icons-calendar.mjs +3 -3
  231. package/fesm2022/primeng-icons-caretleft.mjs +3 -3
  232. package/fesm2022/primeng-icons-caretright.mjs +3 -3
  233. package/fesm2022/primeng-icons-check.mjs +3 -3
  234. package/fesm2022/primeng-icons-chevrondown.mjs +3 -3
  235. package/fesm2022/primeng-icons-chevronleft.mjs +3 -3
  236. package/fesm2022/primeng-icons-chevronright.mjs +3 -3
  237. package/fesm2022/primeng-icons-chevronup.mjs +3 -3
  238. package/fesm2022/primeng-icons-exclamationtriangle.mjs +3 -3
  239. package/fesm2022/primeng-icons-eye.mjs +3 -3
  240. package/fesm2022/primeng-icons-eyeslash.mjs +3 -3
  241. package/fesm2022/primeng-icons-filter.mjs +3 -3
  242. package/fesm2022/primeng-icons-filterslash.mjs +3 -3
  243. package/fesm2022/primeng-icons-home.mjs +3 -3
  244. package/fesm2022/primeng-icons-infocircle.mjs +3 -3
  245. package/fesm2022/primeng-icons-minus.mjs +3 -3
  246. package/fesm2022/primeng-icons-pencil.mjs +3 -3
  247. package/fesm2022/primeng-icons-plus.mjs +3 -3
  248. package/fesm2022/primeng-icons-refresh.mjs +3 -3
  249. package/fesm2022/primeng-icons-search.mjs +3 -3
  250. package/fesm2022/primeng-icons-searchminus.mjs +3 -3
  251. package/fesm2022/primeng-icons-searchplus.mjs +3 -3
  252. package/fesm2022/primeng-icons-sortalt.mjs +3 -3
  253. package/fesm2022/primeng-icons-sortamountdown.mjs +3 -3
  254. package/fesm2022/primeng-icons-sortamountupalt.mjs +3 -3
  255. package/fesm2022/primeng-icons-spinner.mjs +3 -3
  256. package/fesm2022/primeng-icons-star.mjs +3 -3
  257. package/fesm2022/primeng-icons-starfill.mjs +3 -3
  258. package/fesm2022/primeng-icons-thlarge.mjs +3 -3
  259. package/fesm2022/primeng-icons-times.mjs +3 -3
  260. package/fesm2022/primeng-icons-timescircle.mjs +3 -3
  261. package/fesm2022/primeng-icons-trash.mjs +3 -3
  262. package/fesm2022/primeng-icons-undo.mjs +3 -3
  263. package/fesm2022/primeng-icons-upload.mjs +3 -3
  264. package/fesm2022/primeng-icons-windowmaximize.mjs +3 -3
  265. package/fesm2022/primeng-icons-windowminimize.mjs +3 -3
  266. package/fesm2022/primeng-image.mjs +7 -7
  267. package/fesm2022/primeng-inplace.mjs +13 -13
  268. package/fesm2022/primeng-inputmask.mjs +7 -7
  269. package/fesm2022/primeng-inputnumber.mjs +7 -7
  270. package/fesm2022/primeng-inputswitch.mjs +7 -7
  271. package/fesm2022/primeng-inputtext.mjs +7 -7
  272. package/fesm2022/primeng-inputtextarea.mjs +7 -7
  273. package/fesm2022/primeng-keyfilter.mjs +7 -7
  274. package/fesm2022/primeng-knob.mjs +7 -7
  275. package/fesm2022/primeng-listbox.mjs +51 -17
  276. package/fesm2022/primeng-listbox.mjs.map +1 -1
  277. package/fesm2022/primeng-megamenu.mjs +11 -13
  278. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  279. package/fesm2022/primeng-menu.mjs +13 -13
  280. package/fesm2022/primeng-menubar.mjs +14 -14
  281. package/fesm2022/primeng-menubar.mjs.map +1 -1
  282. package/fesm2022/primeng-message.mjs +7 -7
  283. package/fesm2022/primeng-messages.mjs +9 -9
  284. package/fesm2022/primeng-messages.mjs.map +1 -1
  285. package/fesm2022/primeng-multiselect.mjs +109 -43
  286. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  287. package/fesm2022/primeng-orderlist.mjs +334 -106
  288. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  289. package/fesm2022/primeng-organizationchart.mjs +52 -50
  290. package/fesm2022/primeng-organizationchart.mjs.map +1 -1
  291. package/fesm2022/primeng-overlay.mjs +8 -8
  292. package/fesm2022/primeng-overlay.mjs.map +1 -1
  293. package/fesm2022/primeng-overlaypanel.mjs +7 -7
  294. package/fesm2022/primeng-paginator.mjs +79 -27
  295. package/fesm2022/primeng-paginator.mjs.map +1 -1
  296. package/fesm2022/primeng-panel.mjs +9 -7
  297. package/fesm2022/primeng-panel.mjs.map +1 -1
  298. package/fesm2022/primeng-panelmenu.mjs +13 -13
  299. package/fesm2022/primeng-password.mjs +13 -13
  300. package/fesm2022/primeng-picklist.mjs +604 -138
  301. package/fesm2022/primeng-picklist.mjs.map +1 -1
  302. package/fesm2022/primeng-progressbar.mjs +7 -7
  303. package/fesm2022/primeng-progressspinner.mjs +7 -7
  304. package/fesm2022/primeng-radiobutton.mjs +10 -10
  305. package/fesm2022/primeng-rating.mjs +7 -7
  306. package/fesm2022/primeng-ripple.mjs +7 -7
  307. package/fesm2022/primeng-scroller.mjs +19 -15
  308. package/fesm2022/primeng-scroller.mjs.map +1 -1
  309. package/fesm2022/primeng-scrollpanel.mjs +7 -7
  310. package/fesm2022/primeng-scrolltop.mjs +7 -7
  311. package/fesm2022/primeng-selectbutton.mjs +7 -7
  312. package/fesm2022/primeng-sidebar.mjs +10 -10
  313. package/fesm2022/primeng-sidebar.mjs.map +1 -1
  314. package/fesm2022/primeng-skeleton.mjs +7 -7
  315. package/fesm2022/primeng-slidemenu.mjs +10 -10
  316. package/fesm2022/primeng-slider.mjs +7 -7
  317. package/fesm2022/primeng-speeddial.mjs +7 -7
  318. package/fesm2022/primeng-spinner.mjs +7 -7
  319. package/fesm2022/primeng-splitbutton.mjs +7 -7
  320. package/fesm2022/primeng-splitter.mjs +9 -9
  321. package/fesm2022/primeng-splitter.mjs.map +1 -1
  322. package/fesm2022/primeng-steps.mjs +7 -7
  323. package/fesm2022/primeng-styleclass.mjs +7 -7
  324. package/fesm2022/primeng-table.mjs +283 -153
  325. package/fesm2022/primeng-table.mjs.map +1 -1
  326. package/fesm2022/primeng-tabmenu.mjs +7 -7
  327. package/fesm2022/primeng-tabview.mjs +76 -31
  328. package/fesm2022/primeng-tabview.mjs.map +1 -1
  329. package/fesm2022/primeng-tag.mjs +7 -7
  330. package/fesm2022/primeng-terminal.mjs +10 -10
  331. package/fesm2022/primeng-tieredmenu.mjs +10 -10
  332. package/fesm2022/primeng-timeline.mjs +25 -21
  333. package/fesm2022/primeng-timeline.mjs.map +1 -1
  334. package/fesm2022/primeng-toast.mjs +12 -12
  335. package/fesm2022/primeng-toast.mjs.map +1 -1
  336. package/fesm2022/primeng-togglebutton.mjs +7 -7
  337. package/fesm2022/primeng-toolbar.mjs +7 -7
  338. package/fesm2022/primeng-tooltip.mjs +8 -8
  339. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  340. package/fesm2022/primeng-tree.mjs +171 -91
  341. package/fesm2022/primeng-tree.mjs.map +1 -1
  342. package/fesm2022/primeng-treeselect.mjs +133 -36
  343. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  344. package/fesm2022/primeng-treetable.mjs +241 -127
  345. package/fesm2022/primeng-treetable.mjs.map +1 -1
  346. package/fesm2022/primeng-tristatecheckbox.mjs +7 -7
  347. package/fesm2022/primeng-virtualscroller.mjs +13 -13
  348. package/fesm2022/primeng-virtualscroller.mjs.map +1 -1
  349. package/listbox/listbox.d.ts +19 -2
  350. package/listbox/listbox.interface.d.ts +16 -1
  351. package/multiselect/multiselect.d.ts +31 -5
  352. package/multiselect/multiselect.interface.d.ts +15 -0
  353. package/orderlist/orderlist.d.ts +59 -7
  354. package/organizationchart/organizationchart.d.ts +3 -4
  355. package/package.json +54 -54
  356. package/paginator/paginator.d.ts +3 -3
  357. package/picklist/picklist.d.ts +64 -7
  358. package/resources/components/dropdown/dropdown.css +1 -7
  359. package/resources/components/messages/messages.css +1 -0
  360. package/resources/components/table/table.css +3 -3
  361. package/resources/components/toast/toast.css +1 -0
  362. package/resources/themes/arya-blue/theme.css +40 -14
  363. package/resources/themes/arya-green/theme.css +40 -14
  364. package/resources/themes/arya-orange/theme.css +40 -14
  365. package/resources/themes/arya-purple/theme.css +40 -14
  366. package/resources/themes/bootstrap4-dark-blue/theme.css +40 -14
  367. package/resources/themes/bootstrap4-dark-purple/theme.css +40 -14
  368. package/resources/themes/bootstrap4-light-blue/theme.css +40 -14
  369. package/resources/themes/bootstrap4-light-purple/theme.css +40 -14
  370. package/resources/themes/fluent-light/theme.css +40 -14
  371. package/resources/themes/lara-dark-blue/theme.css +40 -14
  372. package/resources/themes/lara-dark-indigo/theme.css +40 -14
  373. package/resources/themes/lara-dark-purple/theme.css +40 -14
  374. package/resources/themes/lara-dark-teal/theme.css +40 -14
  375. package/resources/themes/lara-light-blue/theme.css +40 -14
  376. package/resources/themes/lara-light-indigo/theme.css +40 -14
  377. package/resources/themes/lara-light-purple/theme.css +40 -14
  378. package/resources/themes/lara-light-teal/theme.css +40 -14
  379. package/resources/themes/luna-amber/theme.css +40 -14
  380. package/resources/themes/luna-blue/theme.css +40 -14
  381. package/resources/themes/luna-green/theme.css +40 -14
  382. package/resources/themes/luna-pink/theme.css +40 -14
  383. package/resources/themes/md-dark-deeppurple/theme.css +40 -14
  384. package/resources/themes/md-dark-indigo/theme.css +40 -14
  385. package/resources/themes/md-light-deeppurple/theme.css +40 -14
  386. package/resources/themes/md-light-indigo/theme.css +40 -14
  387. package/resources/themes/mdc-dark-deeppurple/theme.css +40 -14
  388. package/resources/themes/mdc-dark-indigo/theme.css +40 -14
  389. package/resources/themes/mdc-light-deeppurple/theme.css +40 -14
  390. package/resources/themes/mdc-light-indigo/theme.css +40 -14
  391. package/resources/themes/mira/theme.css +40 -14
  392. package/resources/themes/nano/theme.css +40 -14
  393. package/resources/themes/nova/theme.css +40 -14
  394. package/resources/themes/nova-accent/theme.css +40 -14
  395. package/resources/themes/nova-alt/theme.css +40 -14
  396. package/resources/themes/rhea/theme.css +40 -14
  397. package/resources/themes/saga-blue/theme.css +40 -14
  398. package/resources/themes/saga-green/theme.css +40 -14
  399. package/resources/themes/saga-orange/theme.css +40 -14
  400. package/resources/themes/saga-purple/theme.css +40 -14
  401. package/resources/themes/soho-dark/theme.css +40 -14
  402. package/resources/themes/soho-light/theme.css +40 -14
  403. package/resources/themes/tailwind-light/theme.css +40 -14
  404. package/resources/themes/vela-blue/theme.css +40 -14
  405. package/resources/themes/vela-green/theme.css +40 -14
  406. package/resources/themes/vela-orange/theme.css +40 -14
  407. package/resources/themes/vela-purple/theme.css +40 -14
  408. package/resources/themes/viva-dark/theme.css +40 -14
  409. package/resources/themes/viva-light/theme.css +40 -14
  410. package/scroller/scroller.d.ts +2 -3
  411. package/table/table.d.ts +20 -9
  412. package/tabview/tabview.d.ts +19 -2
  413. package/timeline/timeline.d.ts +1 -1
  414. package/tree/tree.d.ts +12 -1
  415. package/treeselect/treeselect.d.ts +14 -1
  416. package/treetable/treetable.d.ts +16 -2
  417. package/virtualscroller/virtualscroller.d.ts +1 -2
@@ -1,17 +1,14 @@
1
- import * as i0 from '@angular/core';
2
- import { EventEmitter, PLATFORM_ID, Component, ChangeDetectionStrategy, ViewEncapsulation, Inject, Input, Output, ViewChild, ContentChildren, NgModule } from '@angular/core';
1
+ import * as i5 from '@angular/cdk/drag-drop';
2
+ import { transferArrayItem, moveItemInArray, DragDropModule, CDK_DRAG_CONFIG } from '@angular/cdk/drag-drop';
3
3
  import * as i2 from '@angular/common';
4
4
  import { isPlatformBrowser, DOCUMENT, CommonModule } from '@angular/common';
5
- import * as i3 from 'primeng/button';
6
- import { ButtonModule } from 'primeng/button';
5
+ import * as i0 from '@angular/core';
6
+ import { EventEmitter, PLATFORM_ID, Component, ChangeDetectionStrategy, ViewEncapsulation, Inject, Input, Output, ViewChild, ContentChildren, NgModule } from '@angular/core';
7
7
  import * as i1 from 'primeng/api';
8
8
  import { PrimeTemplate, SharedModule } from 'primeng/api';
9
+ import * as i3 from 'primeng/button';
10
+ import { ButtonModule } from 'primeng/button';
9
11
  import { DomHandler } from 'primeng/dom';
10
- import * as i4 from 'primeng/ripple';
11
- import { RippleModule } from 'primeng/ripple';
12
- import * as i5 from '@angular/cdk/drag-drop';
13
- import { transferArrayItem, moveItemInArray, DragDropModule, CDK_DRAG_CONFIG } from '@angular/cdk/drag-drop';
14
- import { UniqueComponentId, ObjectUtils } from 'primeng/utils';
15
12
  import { AngleDoubleDownIcon } from 'primeng/icons/angledoubledown';
16
13
  import { AngleDoubleLeftIcon } from 'primeng/icons/angledoubleleft';
17
14
  import { AngleDoubleRightIcon } from 'primeng/icons/angledoubleright';
@@ -20,8 +17,11 @@ import { AngleDownIcon } from 'primeng/icons/angledown';
20
17
  import { AngleLeftIcon } from 'primeng/icons/angleleft';
21
18
  import { AngleRightIcon } from 'primeng/icons/angleright';
22
19
  import { AngleUpIcon } from 'primeng/icons/angleup';
23
- import { SearchIcon } from 'primeng/icons/search';
24
20
  import { HomeIcon } from 'primeng/icons/home';
21
+ import { SearchIcon } from 'primeng/icons/search';
22
+ import * as i4 from 'primeng/ripple';
23
+ import { RippleModule } from 'primeng/ripple';
24
+ import { UniqueComponentId, ObjectUtils } from 'primeng/utils';
25
25
 
26
26
  /**
27
27
  * PickList is used to reorder items between different lists.
@@ -34,6 +34,7 @@ class PickList {
34
34
  el;
35
35
  cd;
36
36
  filterService;
37
+ config;
37
38
  /**
38
39
  * An array of objects for the source list.
39
40
  * @group Props
@@ -49,6 +50,11 @@ class PickList {
49
50
  * @group Props
50
51
  */
51
52
  sourceHeader;
53
+ /**
54
+ * Index of the element in tabbing order.
55
+ * @group Props
56
+ */
57
+ tabindex = 0;
52
58
  /**
53
59
  * Defines a string that labels the move to right button for accessibility.
54
60
  * @group Props
@@ -290,11 +296,56 @@ class PickList {
290
296
  * @group Emits
291
297
  */
292
298
  onTargetFilter = new EventEmitter();
299
+ /**
300
+ * Callback to invoke when the list is focused
301
+ * @param {Event} event - Browser event.
302
+ * @group Emits
303
+ */
304
+ onFocus = new EventEmitter();
305
+ /**
306
+ * Callback to invoke when the list is blurred
307
+ * @param {Event} event - Browser event.
308
+ * @group Emits
309
+ */
310
+ onBlur = new EventEmitter();
293
311
  listViewSourceChild;
294
312
  listViewTargetChild;
295
313
  sourceFilterViewChild;
296
314
  targetFilterViewChild;
297
315
  templates;
316
+ get moveUpAriaLabel() {
317
+ return this.upButtonAriaLabel ? this.upButtonAriaLabel : this.config.translation.aria ? this.config.translation.aria.moveUp : undefined;
318
+ }
319
+ get moveTopAriaLabel() {
320
+ return this.topButtonAriaLabel ? this.topButtonAriaLabel : this.config.translation.aria ? this.config.translation.aria.moveTop : undefined;
321
+ }
322
+ get moveDownAriaLabel() {
323
+ return this.downButtonAriaLabel ? this.downButtonAriaLabel : this.config.translation.aria ? this.config.translation.aria.moveDown : undefined;
324
+ }
325
+ get moveBottomAriaLabel() {
326
+ return this.bottomButtonAriaLabel ? this.bottomButtonAriaLabel : this.config.translation.aria ? this.config.translation.aria.moveDown : undefined;
327
+ }
328
+ get moveToTargetAriaLabel() {
329
+ return this.rightButtonAriaLabel ? this.rightButtonAriaLabel : this.config.translation.aria ? this.config.translation.aria.moveToTarget : undefined;
330
+ }
331
+ get moveAllToTargetAriaLabel() {
332
+ return this.allRightButtonAriaLabel ? this.allRightButtonAriaLabel : this.config.translation.aria ? this.config.translation.aria.moveAllToTarget : undefined;
333
+ }
334
+ get moveToSourceAriaLabel() {
335
+ return this.allLeftButtonAriaLabel ? this.allLeftButtonAriaLabel : this.config.translation.aria ? this.config.translation.aria.moveToSource : undefined;
336
+ }
337
+ get moveAllToSourceAriaLabel() {
338
+ return this.allLeftButtonAriaLabel ? this.allLeftButtonAriaLabel : this.config.translation.aria ? this.config.translation.aria.moveAllToSource : undefined;
339
+ }
340
+ get idSource() {
341
+ return this.id + '_source';
342
+ }
343
+ get idTarget() {
344
+ return this.id + '_target';
345
+ }
346
+ get focusedOptionId() {
347
+ return this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : null;
348
+ }
298
349
  _breakpoint = '960px';
299
350
  itemTemplate;
300
351
  moveTopIconTemplate;
@@ -335,14 +386,21 @@ class PickList {
335
386
  window;
336
387
  media;
337
388
  viewChanged;
389
+ focusedOptionIndex = -1;
390
+ focusedOption;
391
+ focused = {
392
+ sourceList: false,
393
+ targetList: false
394
+ };
338
395
  mediaChangeListener;
339
- constructor(document, platformId, renderer, el, cd, filterService) {
396
+ constructor(document, platformId, renderer, el, cd, filterService, config) {
340
397
  this.document = document;
341
398
  this.platformId = platformId;
342
399
  this.renderer = renderer;
343
400
  this.el = el;
344
401
  this.cd = cd;
345
402
  this.filterService = filterService;
403
+ this.config = config;
346
404
  this.window = this.document.defaultView;
347
405
  }
348
406
  ngOnInit() {
@@ -441,11 +499,13 @@ class PickList {
441
499
  this.reorderedListElement = null;
442
500
  }
443
501
  }
444
- onItemClick(event, item, selectedItems, callback) {
502
+ onItemClick(event, item, selectedItems, callback, itemId) {
445
503
  if (this.disabled) {
446
504
  return;
447
505
  }
448
- let index = this.findIndexInSelection(item, selectedItems);
506
+ let index = this.findIndexInList(item, selectedItems);
507
+ if (itemId)
508
+ this.focusedOptionIndex = itemId;
449
509
  let selected = index != -1;
450
510
  let metaSelection = this.itemTouched ? false : this.metaKeySelection;
451
511
  if (metaSelection) {
@@ -469,6 +529,10 @@ class PickList {
469
529
  callback.emit({ originalEvent: event, items: selectedItems });
470
530
  this.itemTouched = false;
471
531
  }
532
+ onOptionMouseDown(index, listType) {
533
+ this.focused[listType === this.SOURCE_LIST ? 'sourceList' : 'targetList'] = true;
534
+ this.focusedOptionIndex = index;
535
+ }
472
536
  onSourceItemDblClick() {
473
537
  if (this.disabled) {
474
538
  return;
@@ -719,9 +783,16 @@ class PickList {
719
783
  }
720
784
  }
721
785
  isSelected(item, selectedItems) {
722
- return this.findIndexInSelection(item, selectedItems) != -1;
786
+ return this.findIndexInList(item, selectedItems) != -1;
723
787
  }
724
- findIndexInSelection(item, selectedItems) {
788
+ itemClass(item, id, selectedItems) {
789
+ return {
790
+ 'p-picklist-item': true,
791
+ 'p-highlight': this.isSelected(item, selectedItems),
792
+ 'p-focus': id === this.focusedOptionId
793
+ };
794
+ }
795
+ findIndexInList(item, selectedItems) {
725
796
  return ObjectUtils.findIndexInList(item, selectedItems);
726
797
  }
727
798
  onDrop(event, listType) {
@@ -772,6 +843,171 @@ class PickList {
772
843
  }
773
844
  }
774
845
  }
846
+ onListFocus(event, listType) {
847
+ let listElement = this.getListElement(listType);
848
+ const selectedFirstItem = DomHandler.findSingle(listElement, 'li.p-picklist-item.p-highlight') || DomHandler.findSingle(listElement, 'li.p-picklist-item');
849
+ const findIndex = ObjectUtils.findIndexInList(selectedFirstItem, listElement.children);
850
+ this.focused[listType === this.SOURCE_LIST ? 'sourceList' : 'targetList'] = true;
851
+ const index = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : selectedFirstItem ? findIndex : -1;
852
+ this.changeFocusedOptionIndex(index, listType);
853
+ this.onFocus.emit(event);
854
+ }
855
+ onListBlur(event, listType) {
856
+ this.focused[listType === this.SOURCE_LIST ? 'sourceList' : 'targetList'] = false;
857
+ this.focusedOptionIndex = -1;
858
+ this.focusedOption = null;
859
+ this.onBlur.emit(event);
860
+ }
861
+ getListElement(listType) {
862
+ return listType === this.SOURCE_LIST ? this.listViewSourceChild?.nativeElement : this.listViewTargetChild?.nativeElement;
863
+ }
864
+ getListItems(listType) {
865
+ let listElemet = this.getListElement(listType);
866
+ return DomHandler.find(listElemet, 'li.p-picklist-item');
867
+ }
868
+ getLatestSelectedVisibleOptionIndex(visibleList, selectedItems) {
869
+ const latestSelectedItem = [...selectedItems].reverse().find((item) => visibleList.includes(item));
870
+ return latestSelectedItem !== undefined ? visibleList.indexOf(latestSelectedItem) : -1;
871
+ }
872
+ getVisibleList(listType) {
873
+ if (listType === this.SOURCE_LIST) {
874
+ return this.visibleOptionsSource && this.visibleOptionsSource.length > 0 ? this.visibleOptionsSource : this.source && this.source.length > 0 ? this.source : null;
875
+ }
876
+ return this.visibleOptionsTarget && this.visibleOptionsTarget.length > 0 ? this.visibleOptionsTarget : this.target && this.target.length > 0 ? this.target : null;
877
+ }
878
+ setSelectionList(listType, selectedItems) {
879
+ if (listType === this.SOURCE_LIST) {
880
+ this.selectedItemsSource = selectedItems;
881
+ }
882
+ else {
883
+ this.selectedItemsTarget = selectedItems;
884
+ }
885
+ }
886
+ findNextOptionIndex(index, listType) {
887
+ const items = this.getListItems(listType);
888
+ const matchedOptionIndex = [...items].findIndex((link) => link.id === index);
889
+ return matchedOptionIndex > -1 ? matchedOptionIndex + 1 : 0;
890
+ }
891
+ findPrevOptionIndex(index, listType) {
892
+ const items = this.getListItems(listType);
893
+ const matchedOptionIndex = [...items].findIndex((link) => link.id === index);
894
+ return matchedOptionIndex > -1 ? matchedOptionIndex - 1 : 0;
895
+ }
896
+ onItemKeyDown(event, selectedItems, callback, listType) {
897
+ switch (event.code) {
898
+ case 'ArrowDown':
899
+ this.onArrowDownKey(event, selectedItems, callback, listType);
900
+ break;
901
+ case 'ArrowUp':
902
+ this.onArrowUpKey(event, selectedItems, callback, listType);
903
+ break;
904
+ case 'Home':
905
+ this.onHomeKey(event, selectedItems, callback, listType);
906
+ break;
907
+ case 'End':
908
+ this.onEndKey(event, selectedItems, callback, listType);
909
+ break;
910
+ case 'Enter':
911
+ this.onEnterKey(event, selectedItems, callback);
912
+ break;
913
+ case 'Space':
914
+ this.onSpaceKey(event, selectedItems, callback, listType);
915
+ break;
916
+ case 'KeyA':
917
+ if (event.ctrlKey) {
918
+ this.setSelectionList(listType, this.getVisibleList(listType));
919
+ callback.emit({ items: selectedItems });
920
+ event.preventDefault();
921
+ }
922
+ default:
923
+ break;
924
+ }
925
+ }
926
+ getFocusedOption(index, listType) {
927
+ if (index === -1)
928
+ return null;
929
+ if (listType === this.SOURCE_LIST) {
930
+ return this.visibleOptionsSource && this.visibleOptionsSource.length ? this.visibleOptionsSource[index] : this.source && this.source.length ? this.source[index] : null;
931
+ }
932
+ return this.visibleOptionsTarget && this.visibleOptionsTarget.length ? this.visibleOptionsTarget[index] : this.target && this.target.length ? this.target[index] : null;
933
+ }
934
+ changeFocusedOptionIndex(index, listType) {
935
+ const items = this.getListItems(listType);
936
+ let order = index >= items.length ? items.length - 1 : index < 0 ? 0 : index;
937
+ this.focusedOptionIndex = items[order].getAttribute('id');
938
+ this.focusedOption = this.getFocusedOption(order, listType);
939
+ this.scrollInView(items[order].getAttribute('id'), listType);
940
+ }
941
+ scrollInView(id, listType) {
942
+ const element = DomHandler.findSingle(this.getListElement(listType), `li[id="${id}"]`);
943
+ if (element) {
944
+ element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'start' });
945
+ }
946
+ }
947
+ onArrowDownKey(event, selectedItems, callback, listType) {
948
+ const optionIndex = this.findNextOptionIndex(this.focusedOptionIndex, listType);
949
+ this.changeFocusedOptionIndex(optionIndex, listType);
950
+ if (event.shiftKey) {
951
+ this.onEnterKey(event, selectedItems, callback);
952
+ }
953
+ event.preventDefault();
954
+ }
955
+ onArrowUpKey(event, selectedItems, callback, listType) {
956
+ const optionIndex = this.findPrevOptionIndex(this.focusedOptionIndex, listType);
957
+ this.changeFocusedOptionIndex(optionIndex, listType);
958
+ if (event.shiftKey) {
959
+ this.onEnterKey(event, selectedItems, callback);
960
+ }
961
+ event.preventDefault();
962
+ }
963
+ onEnterKey(event, selectedItems, callback) {
964
+ this.onItemClick(event, this.focusedOption, selectedItems, callback);
965
+ event.preventDefault();
966
+ }
967
+ onSpaceKey(event, selectedItems, callback, listType) {
968
+ event.preventDefault();
969
+ if (event.shiftKey && selectedItems && selectedItems.length > 0) {
970
+ let visibleList = this.getVisibleList(listType);
971
+ let lastSelectedIndex = this.getLatestSelectedVisibleOptionIndex(visibleList, selectedItems);
972
+ if (lastSelectedIndex !== -1) {
973
+ let focusedIndex = ObjectUtils.findIndexInList(this.focusedOption, visibleList);
974
+ selectedItems = [...visibleList.slice(Math.min(lastSelectedIndex, focusedIndex), Math.max(lastSelectedIndex, focusedIndex) + 1)];
975
+ this.setSelectionList(listType, selectedItems);
976
+ callback.emit({ items: selectedItems });
977
+ return;
978
+ }
979
+ }
980
+ this.onEnterKey(event, selectedItems, callback);
981
+ }
982
+ onHomeKey(event, selectedItems, callback, listType) {
983
+ if (event.ctrlKey && event.shiftKey) {
984
+ let visibleList = this.getVisibleList(listType);
985
+ let focusedIndex = ObjectUtils.findIndexInList(this.focusedOption, visibleList);
986
+ selectedItems = [...visibleList.slice(0, focusedIndex + 1)];
987
+ this.setSelectionList(listType, selectedItems);
988
+ callback.emit({ items: selectedItems });
989
+ }
990
+ else {
991
+ this.changeFocusedOptionIndex(0, listType);
992
+ }
993
+ event.preventDefault();
994
+ }
995
+ onEndKey(event, selectedItems, callback, listType) {
996
+ let visibleList = this.getVisibleList(listType);
997
+ let lastIndex = visibleList && visibleList.length > 0 ? visibleList.length - 1 : null;
998
+ if (lastIndex === null)
999
+ return;
1000
+ if (event.ctrlKey && event.shiftKey) {
1001
+ let focusedIndex = ObjectUtils.findIndexInList(this.focusedOption, visibleList);
1002
+ selectedItems = [...visibleList.slice(focusedIndex, lastIndex)];
1003
+ this.setSelectionList(listType, selectedItems);
1004
+ callback.emit({ items: selectedItems });
1005
+ }
1006
+ else {
1007
+ this.changeFocusedOptionIndex(lastIndex, listType);
1008
+ }
1009
+ event.preventDefault();
1010
+ }
775
1011
  getDropIndexes(fromIndex, toIndex, droppedList, isTransfer, data) {
776
1012
  let previousIndex, currentIndex;
777
1013
  if (droppedList === this.SOURCE_LIST) {
@@ -883,17 +1119,17 @@ class PickList {
883
1119
  .p-picklist[${this.id}] {
884
1120
  flex-direction: column;
885
1121
  }
886
-
1122
+
887
1123
  .p-picklist[${this.id}] .p-picklist-buttons {
888
1124
  padding: var(--content-padding);
889
1125
  flex-direction: row;
890
1126
  }
891
-
1127
+
892
1128
  .p-picklist[${this.id}] .p-picklist-buttons .p-button {
893
1129
  margin-right: var(--inline-spacing);
894
1130
  margin-bottom: 0;
895
1131
  }
896
-
1132
+
897
1133
  .p-picklist[${this.id}] .p-picklist-buttons .p-button:last-child {
898
1134
  margin-right: 0;
899
1135
  }
@@ -935,38 +1171,74 @@ class PickList {
935
1171
  this.destroyStyle();
936
1172
  this.destroyMedia();
937
1173
  }
938
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: PickList, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.FilterService }], target: i0.ɵɵFactoryTarget.Component });
939
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: PickList, selector: "p-pickList", inputs: { source: "source", target: "target", sourceHeader: "sourceHeader", rightButtonAriaLabel: "rightButtonAriaLabel", leftButtonAriaLabel: "leftButtonAriaLabel", allRightButtonAriaLabel: "allRightButtonAriaLabel", allLeftButtonAriaLabel: "allLeftButtonAriaLabel", upButtonAriaLabel: "upButtonAriaLabel", downButtonAriaLabel: "downButtonAriaLabel", topButtonAriaLabel: "topButtonAriaLabel", bottomButtonAriaLabel: "bottomButtonAriaLabel", targetHeader: "targetHeader", responsive: "responsive", filterBy: "filterBy", filterLocale: "filterLocale", trackBy: "trackBy", sourceTrackBy: "sourceTrackBy", targetTrackBy: "targetTrackBy", showSourceFilter: "showSourceFilter", showTargetFilter: "showTargetFilter", metaKeySelection: "metaKeySelection", dragdrop: "dragdrop", style: "style", styleClass: "styleClass", sourceStyle: "sourceStyle", targetStyle: "targetStyle", showSourceControls: "showSourceControls", showTargetControls: "showTargetControls", sourceFilterPlaceholder: "sourceFilterPlaceholder", targetFilterPlaceholder: "targetFilterPlaceholder", disabled: "disabled", ariaSourceFilterLabel: "ariaSourceFilterLabel", ariaTargetFilterLabel: "ariaTargetFilterLabel", filterMatchMode: "filterMatchMode", stripedRows: "stripedRows", keepSelection: "keepSelection", breakpoint: "breakpoint" }, outputs: { onMoveToSource: "onMoveToSource", onMoveAllToSource: "onMoveAllToSource", onMoveAllToTarget: "onMoveAllToTarget", onMoveToTarget: "onMoveToTarget", onSourceReorder: "onSourceReorder", onTargetReorder: "onTargetReorder", onSourceSelect: "onSourceSelect", onTargetSelect: "onTargetSelect", onSourceFilter: "onSourceFilter", onTargetFilter: "onTargetFilter" }, host: { classAttribute: "p-element" }, queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "listViewSourceChild", first: true, predicate: ["sourcelist"], descendants: true }, { propertyName: "listViewTargetChild", first: true, predicate: ["targetlist"], descendants: true }, { propertyName: "sourceFilterViewChild", first: true, predicate: ["sourceFilter"], descendants: true }, { propertyName: "targetFilterViewChild", first: true, predicate: ["targetFilter"], descendants: true }], ngImport: i0, template: `
940
- <div [class]="styleClass" [ngStyle]="style" [ngClass]="{ 'p-picklist p-component': true, 'p-picklist-striped': stripedRows }" cdkDropListGroup>
941
- <div class="p-picklist-buttons p-picklist-source-controls" *ngIf="showSourceControls">
942
- <button type="button" [attr.aria-label]="upButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="sourceMoveDisabled()" (click)="moveUp(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)">
943
- <AngleUpIcon *ngIf="!moveUpIconTemplate" />
1174
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: PickList, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.FilterService }, { token: i1.PrimeNGConfig }], target: i0.ɵɵFactoryTarget.Component });
1175
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: PickList, selector: "p-pickList", inputs: { source: "source", target: "target", sourceHeader: "sourceHeader", tabindex: "tabindex", rightButtonAriaLabel: "rightButtonAriaLabel", leftButtonAriaLabel: "leftButtonAriaLabel", allRightButtonAriaLabel: "allRightButtonAriaLabel", allLeftButtonAriaLabel: "allLeftButtonAriaLabel", upButtonAriaLabel: "upButtonAriaLabel", downButtonAriaLabel: "downButtonAriaLabel", topButtonAriaLabel: "topButtonAriaLabel", bottomButtonAriaLabel: "bottomButtonAriaLabel", targetHeader: "targetHeader", responsive: "responsive", filterBy: "filterBy", filterLocale: "filterLocale", trackBy: "trackBy", sourceTrackBy: "sourceTrackBy", targetTrackBy: "targetTrackBy", showSourceFilter: "showSourceFilter", showTargetFilter: "showTargetFilter", metaKeySelection: "metaKeySelection", dragdrop: "dragdrop", style: "style", styleClass: "styleClass", sourceStyle: "sourceStyle", targetStyle: "targetStyle", showSourceControls: "showSourceControls", showTargetControls: "showTargetControls", sourceFilterPlaceholder: "sourceFilterPlaceholder", targetFilterPlaceholder: "targetFilterPlaceholder", disabled: "disabled", ariaSourceFilterLabel: "ariaSourceFilterLabel", ariaTargetFilterLabel: "ariaTargetFilterLabel", filterMatchMode: "filterMatchMode", stripedRows: "stripedRows", keepSelection: "keepSelection", breakpoint: "breakpoint" }, outputs: { onMoveToSource: "onMoveToSource", onMoveAllToSource: "onMoveAllToSource", onMoveAllToTarget: "onMoveAllToTarget", onMoveToTarget: "onMoveToTarget", onSourceReorder: "onSourceReorder", onTargetReorder: "onTargetReorder", onSourceSelect: "onSourceSelect", onTargetSelect: "onTargetSelect", onSourceFilter: "onSourceFilter", onTargetFilter: "onTargetFilter", onFocus: "onFocus", onBlur: "onBlur" }, host: { classAttribute: "p-element" }, queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "listViewSourceChild", first: true, predicate: ["sourcelist"], descendants: true }, { propertyName: "listViewTargetChild", first: true, predicate: ["targetlist"], descendants: true }, { propertyName: "sourceFilterViewChild", first: true, predicate: ["sourceFilter"], descendants: true }, { propertyName: "targetFilterViewChild", first: true, predicate: ["targetFilter"], descendants: true }], ngImport: i0, template: `
1176
+ <div [class]="styleClass" [ngStyle]="style" [ngClass]="{ 'p-picklist p-component': true, 'p-picklist-striped': stripedRows }" cdkDropListGroup [attr.data-pc-name]="'picklist'" [attr.data-pc-section]="'root'">
1177
+ <div class="p-picklist-buttons p-picklist-source-controls" *ngIf="showSourceControls" [attr.data-pc-section]="'sourceControls'" [attr.data-pc-group-section]="'controls'">
1178
+ <button
1179
+ type="button"
1180
+ [attr.aria-label]="moveUpAriaLabel"
1181
+ pButton
1182
+ pRipple
1183
+ class="p-button-icon-only"
1184
+ [disabled]="sourceMoveDisabled()"
1185
+ (click)="moveUp(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)"
1186
+ [attr.data-pc-section]="'sourceMoveUpButton'"
1187
+ >
1188
+ <AngleUpIcon *ngIf="!moveUpIconTemplate" [attr.data-pc-section]="'moveupicon'" />
944
1189
  <ng-template *ngTemplateOutlet="moveUpIconTemplate"></ng-template>
945
1190
  </button>
946
- <button type="button" [attr.aria-label]="topButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="sourceMoveDisabled()" (click)="moveTop(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)">
947
- <AngleDoubleUpIcon *ngIf="!moveTopIconTemplate" />
1191
+ <button
1192
+ type="button"
1193
+ [attr.aria-label]="moveTopAriaLabel"
1194
+ pButton
1195
+ pRipple
1196
+ class="p-button-icon-only"
1197
+ [disabled]="sourceMoveDisabled()"
1198
+ (click)="moveTop(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)"
1199
+ [attr.data-pc-section]="'sourceMoveTopButton'"
1200
+ >
1201
+ <AngleDoubleUpIcon *ngIf="!moveTopIconTemplate" [attr.data-pc-section]="'movetopicon'" />
948
1202
  <ng-template *ngTemplateOutlet="moveTopIconTemplate"></ng-template>
949
1203
  </button>
950
- <button type="button" [attr.aria-label]="downButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="sourceMoveDisabled()" (click)="moveDown(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)">
951
- <AngleDownIcon *ngIf="!moveDownIconTemplate" />
1204
+ <button
1205
+ type="button"
1206
+ [attr.aria-label]="moveDownAriaLabel"
1207
+ pButton
1208
+ pRipple
1209
+ class="p-button-icon-only"
1210
+ [disabled]="sourceMoveDisabled()"
1211
+ (click)="moveDown(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)"
1212
+ [attr.data-pc-section]="'sourceMoveDownButton'"
1213
+ >
1214
+ <AngleDownIcon *ngIf="!moveDownIconTemplate" [attr.data-pc-section]="'movedownicon'" />
952
1215
  <ng-template *ngTemplateOutlet="moveDownIconTemplate"></ng-template>
953
1216
  </button>
954
- <button type="button" [attr.aria-label]="bottomButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="sourceMoveDisabled()" (click)="moveBottom(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)">
955
- <AngleDoubleDownIcon *ngIf="!moveBottomIconTemplate" />
1217
+ <button
1218
+ type="button"
1219
+ [attr.aria-label]="moveBottomAriaLabel"
1220
+ pButton
1221
+ pRipple
1222
+ class="p-button-icon-only"
1223
+ [disabled]="sourceMoveDisabled()"
1224
+ (click)="moveBottom(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)"
1225
+ [attr.data-pc-section]="'sourceMoveBottomButton'"
1226
+ >
1227
+ <AngleDoubleDownIcon *ngIf="!moveBottomIconTemplate" [attr.data-pc-section]="'movebottomicon'" />
956
1228
  <ng-template *ngTemplateOutlet="moveBottomIconTemplate"></ng-template>
957
1229
  </button>
958
1230
  </div>
959
- <div class="p-picklist-list-wrapper p-picklist-source-wrapper">
960
- <div class="p-picklist-header" *ngIf="sourceHeader || sourceHeaderTemplate">
1231
+ <div class="p-picklist-list-wrapper p-picklist-source-wrapper" [attr.data-pc-section]="'sourceWrapper'" [attr.data-pc-group-section]="'listWrapper'">
1232
+ <div class="p-picklist-header" *ngIf="sourceHeader || sourceHeaderTemplate" [attr.data-pc-section]="'sourceHeader'" [attr.data-pc-group-section]="'header'">
961
1233
  <div class="p-picklist-title" *ngIf="!sourceHeaderTemplate">{{ sourceHeader }}</div>
962
1234
  <ng-container *ngTemplateOutlet="sourceHeaderTemplate"></ng-container>
963
1235
  </div>
964
- <div class="p-picklist-filter-container" *ngIf="filterBy && showSourceFilter !== false">
1236
+ <div class="p-picklist-filter-container" *ngIf="filterBy && showSourceFilter !== false" [attr.data-pc-section]="'sourceFilterContainer'">
965
1237
  <ng-container *ngIf="sourceFilterTemplate; else builtInSourceElement">
966
1238
  <ng-container *ngTemplateOutlet="sourceFilterTemplate; context: { options: sourceFilterOptions }"></ng-container>
967
1239
  </ng-container>
968
1240
  <ng-template #builtInSourceElement>
969
- <div class="p-picklist-filter">
1241
+ <div class="p-picklist-filter" [attr.data-pc-section]="'sourceFilter'">
970
1242
  <input
971
1243
  #sourceFilter
972
1244
  type="text"
@@ -976,86 +1248,106 @@ class PickList {
976
1248
  [disabled]="disabled"
977
1249
  [attr.placeholder]="sourceFilterPlaceholder"
978
1250
  [attr.aria-label]="ariaSourceFilterLabel"
1251
+ [attr.data-pc-section]="'sourceFilterInput'"
979
1252
  />
980
- <SearchIcon *ngIf="!sourceFilterIconTemplate" [styleClass]="'p-picklist-filter-icon'" />
981
- <span class="p-picklist-filter-icon" *ngIf="sourceFilterIconTemplate">
1253
+ <SearchIcon *ngIf="!sourceFilterIconTemplate" [styleClass]="'p-picklist-filter-icon'" [attr.data-pc-section]="'sourcefilterIcon'" />
1254
+ <span class="p-picklist-filter-icon" *ngIf="sourceFilterIconTemplate" [attr.data-pc-section]="'sourcefilterIcon'">
982
1255
  <ng-template *ngTemplateOutlet="sourceFilterIconTemplate"></ng-template>
983
1256
  </span>
984
1257
  </div>
985
1258
  </ng-template>
986
1259
  </div>
987
1260
 
988
- <ul #sourcelist class="p-picklist-list p-picklist-source" cdkDropList [cdkDropListData]="source" (cdkDropListDropped)="onDrop($event, SOURCE_LIST)" [ngStyle]="sourceStyle" role="listbox" aria-multiselectable="multiple">
1261
+ <ul
1262
+ #sourcelist
1263
+ class="p-picklist-list p-picklist-source"
1264
+ [id]="idSource + '_list'"
1265
+ (keydown)="onItemKeyDown($event, selectedItemsSource, onSourceSelect, SOURCE_LIST)"
1266
+ (focus)="onListFocus($event, SOURCE_LIST)"
1267
+ (blur)="onListBlur($event, SOURCE_LIST)"
1268
+ cdkDropList
1269
+ [cdkDropListData]="source"
1270
+ (cdkDropListDropped)="onDrop($event, SOURCE_LIST)"
1271
+ [ngStyle]="sourceStyle"
1272
+ role="listbox"
1273
+ aria-multiselectable="true"
1274
+ [attr.aria-activedescendant]="focused['sourceList'] ? focusedOptionId : undefined"
1275
+ [attr.tabindex]="source && source.length > 0 ? tabindex : -1"
1276
+ [attr.data-pc-section]="'sourceList'"
1277
+ [attr.data-pc-group-section]="'list'"
1278
+ >
989
1279
  <ng-template ngFor let-item [ngForOf]="source" [ngForTrackBy]="sourceTrackBy || trackBy" let-i="index" let-l="last">
990
1280
  <li
991
1281
  [ngClass]="{ 'p-picklist-item': true, 'p-highlight': isSelected(item, selectedItemsSource), 'p-disabled': disabled }"
992
1282
  pRipple
993
1283
  cdkDrag
1284
+ [id]="idSource + '_' + i"
1285
+ [ngClass]="itemClass(item, idSource + '_' + i, selectedItemsSource)"
994
1286
  [cdkDragData]="item"
995
1287
  [cdkDragDisabled]="!dragdrop"
996
- (click)="onItemClick($event, item, selectedItemsSource, onSourceSelect)"
1288
+ (click)="onItemClick($event, item, selectedItemsSource, onSourceSelect, idSource + '_' + i)"
1289
+ (mousedown)="onOptionMouseDown(i, SOURCE_LIST)"
997
1290
  (dblclick)="onSourceItemDblClick()"
998
1291
  (touchend)="onItemTouchEnd()"
999
- (keydown)="onItemKeydown($event, item, selectedItemsSource, onSourceSelect)"
1000
1292
  *ngIf="isItemVisible(item, SOURCE_LIST)"
1001
- tabindex="0"
1002
1293
  role="option"
1294
+ [attr.data-pc-section]="'item'"
1003
1295
  [attr.aria-selected]="isSelected(item, selectedItemsSource)"
1004
1296
  >
1005
1297
  <ng-container *ngTemplateOutlet="itemTemplate; context: { $implicit: item, index: i }"></ng-container>
1006
1298
  </li>
1007
1299
  </ng-template>
1008
1300
  <ng-container *ngIf="isEmpty(SOURCE_LIST) && (emptyMessageSourceTemplate || emptyFilterMessageSourceTemplate)">
1009
- <li class="p-picklist-empty-message" *ngIf="!filterValueSource || !emptyFilterMessageSourceTemplate">
1301
+ <li class="p-picklist-empty-message" *ngIf="!filterValueSource || !emptyFilterMessageSourceTemplate" [attr.data-pc-section]="'sourceEmptyMessage'">
1010
1302
  <ng-container *ngTemplateOutlet="emptyMessageSourceTemplate"></ng-container>
1011
1303
  </li>
1012
- <li class="p-picklist-empty-message" *ngIf="filterValueSource">
1304
+ <li class="p-picklist-empty-message" *ngIf="filterValueSource" [attr.data-pc-section]="'sourceEmptyMessage'">
1013
1305
  <ng-container *ngTemplateOutlet="emptyFilterMessageSourceTemplate"></ng-container>
1014
1306
  </li>
1015
1307
  </ng-container>
1016
1308
  </ul>
1017
1309
  </div>
1018
- <div class="p-picklist-buttons p-picklist-transfer-buttons">
1019
- <button type="button" [attr.aria-label]="rightButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="moveRightDisabled()" (click)="moveRight()">
1310
+ <div class="p-picklist-buttons p-picklist-transfer-buttons" [attr.data-pc-section]="'buttons'" [attr.data-pc-group-section]="'controls'">
1311
+ <button type="button" [attr.aria-label]="moveToTargetAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="moveRightDisabled()" (click)="moveRight()" [attr.data-pc-section]="'moveToTargetButton'">
1020
1312
  <ng-container *ngIf="!moveToTargetIconTemplate">
1021
- <AngleRightIcon *ngIf="!viewChanged" />
1022
- <AngleDownIcon *ngIf="viewChanged" />
1313
+ <AngleRightIcon *ngIf="!viewChanged" [attr.data-pc-section]="'movetotargeticon'" />
1314
+ <AngleDownIcon *ngIf="viewChanged" [attr.data-pc-section]="'movetotargeticon'" />
1023
1315
  </ng-container>
1024
1316
  <ng-template *ngTemplateOutlet="moveToTargetIconTemplate; context: { $implicit: viewChanged }"></ng-template>
1025
1317
  </button>
1026
- <button type="button" [attr.aria-label]="allRightButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="moveAllRightDisabled()" (click)="moveAllRight()">
1318
+ <button type="button" [attr.aria-label]="moveAllToTargetAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="moveAllRightDisabled()" (click)="moveAllRight()" [attr.data-pc-section]="'moveAllToTargetButton'">
1027
1319
  <ng-container *ngIf="!moveAllToTargetIconTemplate">
1028
- <AngleDoubleRightIcon *ngIf="!viewChanged" />
1029
- <AngleDoubleDownIcon *ngIf="viewChanged" />
1320
+ <AngleDoubleRightIcon *ngIf="!viewChanged" [attr.data-pc-section]="'movealltotargeticon'" />
1321
+ <AngleDoubleDownIcon *ngIf="viewChanged" [attr.data-pc-section]="'movealltotargeticon'" />
1030
1322
  </ng-container>
1031
1323
  <ng-template *ngTemplateOutlet="moveAllToTargetIconTemplate; context: { $implicit: viewChanged }"></ng-template>
1032
1324
  </button>
1033
- <button type="button" [attr.aria-label]="leftButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="moveLeftDisabled()" (click)="moveLeft()">
1325
+ <button type="button" [attr.aria-label]="moveToSourceAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="moveLeftDisabled()" (click)="moveLeft()" [attr.data-pc-section]="'moveToSourceButton'">
1034
1326
  <ng-container *ngIf="!moveToSourceIconTemplate">
1035
- <AngleLeftIcon *ngIf="!viewChanged" />
1036
- <AngleUpIcon *ngIf="viewChanged" />
1327
+ <AngleLeftIcon *ngIf="!viewChanged" [attr.data-pc-section]="'movedownsourceticon'" />
1328
+ <AngleUpIcon *ngIf="viewChanged" [attr.data-pc-section]="'movedownsourceticon'" />
1037
1329
  </ng-container>
1038
1330
  <ng-template *ngTemplateOutlet="moveToSourceIconTemplate; context: { $implicit: viewChanged }"></ng-template>
1039
1331
  </button>
1040
- <button type="button" [attr.aria-label]="allLeftButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="moveAllLeftDisabled()" (click)="moveAllLeft()">
1332
+ <button type="button" [attr.aria-label]="moveAllToSourceAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="moveAllLeftDisabled()" (click)="moveAllLeft()" [attr.data-pc-section]="'moveAllToSourceButton'">
1041
1333
  <ng-container *ngIf="!moveAllToSourceIconTemplate">
1042
- <AngleDoubleLeftIcon *ngIf="!viewChanged" />
1043
- <AngleDoubleUpIcon *ngIf="viewChanged" />
1334
+ <AngleDoubleLeftIcon *ngIf="!viewChanged" [attr.data-pc-section]="'movealltosourceticon'" />
1335
+ <AngleDoubleUpIcon *ngIf="viewChanged" [attr.data-pc-section]="'movealltosourceticon'" />
1044
1336
  </ng-container>
1045
1337
  <ng-template *ngTemplateOutlet="moveAllToSourceIconTemplate; context: { $implicit: viewChanged }"></ng-template>
1046
1338
  </button>
1047
1339
  </div>
1048
- <div class="p-picklist-list-wrapper p-picklist-target-wrapper">
1049
- <div class="p-picklist-header" *ngIf="targetHeader || targetHeaderTemplate">
1340
+ <div class="p-picklist-list-wrapper p-picklist-target-wrapper" [attr.data-pc-section]="'targetWrapper'" [attr.data-pc-group-section]="'listwrapper'">
1341
+ <div class="p-picklist-header" *ngIf="targetHeader || targetHeaderTemplate" [attr.data-pc-section]="'targetHead'" [attr.data-pc-group-section]="'header'">
1050
1342
  <div class="p-picklist-title" *ngIf="!targetHeaderTemplate">{{ targetHeader }}</div>
1051
1343
  <ng-container *ngTemplateOutlet="targetHeaderTemplate"></ng-container>
1052
1344
  </div>
1053
- <div class="p-picklist-filter-container" *ngIf="filterBy && showTargetFilter !== false">
1345
+ <div class="p-picklist-filter-container" *ngIf="filterBy && showTargetFilter !== false" [attr.data-pc-section]="'targetFilterContainer'">
1054
1346
  <ng-container *ngIf="targetFilterTemplate; else builtInTargetElement">
1055
1347
  <ng-container *ngTemplateOutlet="targetFilterTemplate; context: { options: targetFilterOptions }"></ng-container>
1056
1348
  </ng-container>
1057
1349
  <ng-template #builtInTargetElement>
1058
- <div class="p-picklist-filter">
1350
+ <div class="p-picklist-filter" [attr.data-pc-section]="'targetFilter'">
1059
1351
  <input
1060
1352
  #targetFilter
1061
1353
  type="text"
@@ -1065,98 +1357,190 @@ class PickList {
1065
1357
  [disabled]="disabled"
1066
1358
  [attr.placeholder]="targetFilterPlaceholder"
1067
1359
  [attr.aria-label]="ariaTargetFilterLabel"
1360
+ [attr.data-pc-section]="'targetFilterInput'"
1068
1361
  />
1069
- <SearchIcon *ngIf="!targetFilterIconTemplate" [styleClass]="'p-picklist-filter-icon'" />
1070
- <span class="p-picklist-filter-icon" *ngIf="targetFilterIconTemplate">
1362
+ <SearchIcon *ngIf="!targetFilterIconTemplate" [styleClass]="'p-picklist-filter-icon'" [attr.data-pc-section]="'targetfiltericon'" />
1363
+ <span class="p-picklist-filter-icon" *ngIf="targetFilterIconTemplate" [attr.data-pc-section]="'targetfiltericon'">
1071
1364
  <ng-template *ngTemplateOutlet="targetFilterIconTemplate"></ng-template>
1072
1365
  </span>
1073
1366
  </div>
1074
1367
  </ng-template>
1075
1368
  </div>
1076
- <ul #targetlist class="p-picklist-list p-picklist-target" cdkDropList [cdkDropListData]="target" (cdkDropListDropped)="onDrop($event, TARGET_LIST)" [ngStyle]="targetStyle" role="listbox" aria-multiselectable="multiple">
1369
+ <ul
1370
+ #targetlist
1371
+ class="p-picklist-list p-picklist-target"
1372
+ [id]="idTarget + '_list'"
1373
+ (keydown)="onItemKeyDown($event, selectedItemsTarget, onTargetSelect, TARGET_LIST)"
1374
+ (focus)="onListFocus($event, TARGET_LIST)"
1375
+ (blur)="onListBlur($event, TARGET_LIST)"
1376
+ cdkDropList
1377
+ [cdkDropListData]="target"
1378
+ (cdkDropListDropped)="onDrop($event, TARGET_LIST)"
1379
+ [ngStyle]="targetStyle"
1380
+ role="listbox"
1381
+ aria-multiselectable="true"
1382
+ [attr.aria-activedescendant]="focused['targetList'] ? focusedOptionId : undefined"
1383
+ [attr.tabindex]="target && target.length > 0 ? tabindex : -1"
1384
+ [attr.data-pc-section]="'targetList'"
1385
+ [attr.data-pc-group-section]="'list'"
1386
+ >
1077
1387
  <ng-template ngFor let-item [ngForOf]="target" [ngForTrackBy]="targetTrackBy || trackBy" let-i="index" let-l="last">
1078
1388
  <li
1079
1389
  [ngClass]="{ 'p-picklist-item': true, 'p-highlight': isSelected(item, selectedItemsTarget), 'p-disabled': disabled }"
1080
1390
  pRipple
1081
1391
  cdkDrag
1392
+ [id]="idTarget + '_' + i"
1393
+ [ngClass]="itemClass(item, idTarget + '_' + i, selectedItemsTarget)"
1082
1394
  [cdkDragData]="item"
1083
1395
  [cdkDragDisabled]="!dragdrop"
1084
- (click)="onItemClick($event, item, selectedItemsTarget, onTargetSelect)"
1396
+ (click)="onItemClick($event, item, selectedItemsTarget, onTargetSelect, idTarget + '_' + i)"
1397
+ (mousedown)="onOptionMouseDown(i, TARGET_LIST)"
1085
1398
  (dblclick)="onTargetItemDblClick()"
1086
1399
  (touchend)="onItemTouchEnd()"
1087
- (keydown)="onItemKeydown($event, item, selectedItemsTarget, onTargetSelect)"
1088
1400
  *ngIf="isItemVisible(item, TARGET_LIST)"
1089
- tabindex="0"
1090
1401
  role="option"
1402
+ [attr.data-pc-section]="'item'"
1091
1403
  [attr.aria-selected]="isSelected(item, selectedItemsTarget)"
1092
1404
  >
1093
1405
  <ng-container *ngTemplateOutlet="itemTemplate; context: { $implicit: item, index: i }"></ng-container>
1094
1406
  </li>
1095
1407
  </ng-template>
1096
1408
  <ng-container *ngIf="isEmpty(TARGET_LIST) && (emptyMessageTargetTemplate || emptyFilterMessageTargetTemplate)">
1097
- <li class="p-picklist-empty-message" *ngIf="!filterValueTarget || !emptyFilterMessageTargetTemplate">
1409
+ <li class="p-picklist-empty-message" *ngIf="!filterValueTarget || !emptyFilterMessageTargetTemplate" [attr.data-pc-section]="'targetEmptyMessage'">
1098
1410
  <ng-container *ngTemplateOutlet="emptyMessageTargetTemplate"></ng-container>
1099
1411
  </li>
1100
- <li class="p-picklist-empty-message" *ngIf="filterValueTarget">
1412
+ <li class="p-picklist-empty-message" *ngIf="filterValueTarget" [attr.data-pc-section]="'targetEmptyMessage'">
1101
1413
  <ng-container *ngTemplateOutlet="emptyFilterMessageTargetTemplate"></ng-container>
1102
1414
  </li>
1103
1415
  </ng-container>
1104
1416
  </ul>
1105
1417
  </div>
1106
- <div class="p-picklist-buttons p-picklist-target-controls" *ngIf="showTargetControls">
1107
- <button type="button" [attr.aria-label]="upButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="targetMoveDisabled()" (click)="moveUp(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)">
1108
- <AngleUpIcon *ngIf="!moveUpIconTemplate" />
1418
+ <div class="p-picklist-buttons p-picklist-target-controls" *ngIf="showTargetControls" [attr.data-pc-section]="'targetControls'" [attr.data-pc-group-section]="'controls'">
1419
+ <button
1420
+ type="button"
1421
+ [attr.aria-label]="moveUpAriaLabel"
1422
+ pButton
1423
+ pRipple
1424
+ class="p-button-icon-only"
1425
+ [disabled]="targetMoveDisabled()"
1426
+ (click)="moveUp(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)"
1427
+ [attr.data-pc-section]="'targetMoveUpButton'"
1428
+ >
1429
+ <AngleUpIcon *ngIf="!moveUpIconTemplate" [attr.data-pc-section]="'moveupicon'" />
1109
1430
  <ng-template *ngTemplateOutlet="moveUpIconTemplate"></ng-template>
1110
1431
  </button>
1111
- <button type="button" [attr.aria-label]="topButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="targetMoveDisabled()" (click)="moveTop(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)">
1112
- <AngleDoubleUpIcon *ngIf="!moveTopIconTemplate" />
1432
+ <button
1433
+ type="button"
1434
+ [attr.aria-label]="moveTopAriaLabel"
1435
+ pButton
1436
+ pRipple
1437
+ class="p-button-icon-only"
1438
+ [disabled]="targetMoveDisabled()"
1439
+ (click)="moveTop(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)"
1440
+ [attr.data-pc-section]="'targetMoveTopButton'"
1441
+ >
1442
+ <AngleDoubleUpIcon *ngIf="!moveTopIconTemplate" [attr.data-pc-section]="'movetopicon'" />
1113
1443
  <ng-template *ngTemplateOutlet="moveTopIconTemplate"></ng-template>
1114
1444
  </button>
1115
- <button type="button" [attr.aria-label]="downButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="targetMoveDisabled()" (click)="moveDown(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)">
1116
- <AngleDownIcon *ngIf="!moveDownIconTemplate" />
1445
+ <button
1446
+ type="button"
1447
+ [attr.aria-label]="moveDownAriaLabel"
1448
+ pButton
1449
+ pRipple
1450
+ class="p-button-icon-only"
1451
+ [disabled]="targetMoveDisabled()"
1452
+ (click)="moveDown(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)"
1453
+ [attr.data-pc-section]="'targetMoveDownButton'"
1454
+ >
1455
+ <AngleDownIcon *ngIf="!moveDownIconTemplate" [attr.data-pc-section]="'movedownicon'" />
1117
1456
  <ng-template *ngTemplateOutlet="moveDownIconTemplate"></ng-template>
1118
1457
  </button>
1119
- <button type="button" [attr.aria-label]="bottomButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="targetMoveDisabled()" (click)="moveBottom(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)">
1120
- <AngleDoubleDownIcon *ngIf="!moveBottomIconTemplate" />
1458
+ <button
1459
+ type="button"
1460
+ [attr.aria-label]="moveBottomAriaLabel"
1461
+ pButton
1462
+ pRipple
1463
+ class="p-button-icon-only"
1464
+ [disabled]="targetMoveDisabled()"
1465
+ (click)="moveBottom(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)"
1466
+ [attr.data-pc-section]="'targetMoveBottomButton'"
1467
+ >
1468
+ <AngleDoubleDownIcon *ngIf="!moveBottomIconTemplate" [attr.data-pc-section]="'movebottomicon'" />
1121
1469
  <ng-template *ngTemplateOutlet="moveBottomIconTemplate"></ng-template>
1122
1470
  </button>
1123
1471
  </div>
1124
1472
  </div>
1125
1473
  `, isInline: true, styles: ["@layer primeng{.p-picklist{display:flex}.p-picklist-buttons{display:flex;flex-direction:column;justify-content:center}.p-picklist-list-wrapper{flex:1 1 50%}.p-picklist-list{list-style-type:none;margin:0;padding:0;overflow:auto;min-height:12rem}.p-picklist-item{display:block;cursor:pointer;overflow:hidden;position:relative}.p-picklist-item:not(.cdk-drag-disabled){cursor:move}.p-picklist-item.cdk-drag-placeholder{opacity:0}.p-picklist-item.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.p-picklist-filter{position:relative}.p-picklist-filter-icon{position:absolute;top:50%;margin-top:-.5rem}.p-picklist-filter-input{width:100%}.p-picklist-list.cdk-drop-list-dragging .p-picklist-item:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i2.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgStyle; }), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i0.forwardRef(function () { return i3.ButtonDirective; }), selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "directive", type: i0.forwardRef(function () { return i4.Ripple; }), selector: "[pRipple]" }, { kind: "directive", type: i0.forwardRef(function () { return i5.CdkDropList; }), selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i0.forwardRef(function () { return i5.CdkDropListGroup; }), selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "directive", type: i0.forwardRef(function () { return i5.CdkDrag; }), selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i0.forwardRef(function () { return AngleDoubleDownIcon; }), selector: "AngleDoubleDownIcon" }, { kind: "component", type: i0.forwardRef(function () { return AngleDoubleLeftIcon; }), selector: "AngleDoubleLeftIcon" }, { kind: "component", type: i0.forwardRef(function () { return AngleDoubleRightIcon; }), selector: "AngleDoubleRightIcon" }, { kind: "component", type: i0.forwardRef(function () { return AngleDoubleUpIcon; }), selector: "AngleDoubleUpIcon" }, { kind: "component", type: i0.forwardRef(function () { return AngleDownIcon; }), selector: "AngleDownIcon" }, { kind: "component", type: i0.forwardRef(function () { return AngleLeftIcon; }), selector: "AngleLeftIcon" }, { kind: "component", type: i0.forwardRef(function () { return AngleRightIcon; }), selector: "AngleRightIcon" }, { kind: "component", type: i0.forwardRef(function () { return AngleUpIcon; }), selector: "AngleUpIcon" }, { kind: "component", type: i0.forwardRef(function () { return SearchIcon; }), selector: "SearchIcon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1126
1474
  }
1127
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: PickList, decorators: [{
1475
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: PickList, decorators: [{
1128
1476
  type: Component,
1129
1477
  args: [{ selector: 'p-pickList', template: `
1130
- <div [class]="styleClass" [ngStyle]="style" [ngClass]="{ 'p-picklist p-component': true, 'p-picklist-striped': stripedRows }" cdkDropListGroup>
1131
- <div class="p-picklist-buttons p-picklist-source-controls" *ngIf="showSourceControls">
1132
- <button type="button" [attr.aria-label]="upButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="sourceMoveDisabled()" (click)="moveUp(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)">
1133
- <AngleUpIcon *ngIf="!moveUpIconTemplate" />
1478
+ <div [class]="styleClass" [ngStyle]="style" [ngClass]="{ 'p-picklist p-component': true, 'p-picklist-striped': stripedRows }" cdkDropListGroup [attr.data-pc-name]="'picklist'" [attr.data-pc-section]="'root'">
1479
+ <div class="p-picklist-buttons p-picklist-source-controls" *ngIf="showSourceControls" [attr.data-pc-section]="'sourceControls'" [attr.data-pc-group-section]="'controls'">
1480
+ <button
1481
+ type="button"
1482
+ [attr.aria-label]="moveUpAriaLabel"
1483
+ pButton
1484
+ pRipple
1485
+ class="p-button-icon-only"
1486
+ [disabled]="sourceMoveDisabled()"
1487
+ (click)="moveUp(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)"
1488
+ [attr.data-pc-section]="'sourceMoveUpButton'"
1489
+ >
1490
+ <AngleUpIcon *ngIf="!moveUpIconTemplate" [attr.data-pc-section]="'moveupicon'" />
1134
1491
  <ng-template *ngTemplateOutlet="moveUpIconTemplate"></ng-template>
1135
1492
  </button>
1136
- <button type="button" [attr.aria-label]="topButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="sourceMoveDisabled()" (click)="moveTop(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)">
1137
- <AngleDoubleUpIcon *ngIf="!moveTopIconTemplate" />
1493
+ <button
1494
+ type="button"
1495
+ [attr.aria-label]="moveTopAriaLabel"
1496
+ pButton
1497
+ pRipple
1498
+ class="p-button-icon-only"
1499
+ [disabled]="sourceMoveDisabled()"
1500
+ (click)="moveTop(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)"
1501
+ [attr.data-pc-section]="'sourceMoveTopButton'"
1502
+ >
1503
+ <AngleDoubleUpIcon *ngIf="!moveTopIconTemplate" [attr.data-pc-section]="'movetopicon'" />
1138
1504
  <ng-template *ngTemplateOutlet="moveTopIconTemplate"></ng-template>
1139
1505
  </button>
1140
- <button type="button" [attr.aria-label]="downButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="sourceMoveDisabled()" (click)="moveDown(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)">
1141
- <AngleDownIcon *ngIf="!moveDownIconTemplate" />
1506
+ <button
1507
+ type="button"
1508
+ [attr.aria-label]="moveDownAriaLabel"
1509
+ pButton
1510
+ pRipple
1511
+ class="p-button-icon-only"
1512
+ [disabled]="sourceMoveDisabled()"
1513
+ (click)="moveDown(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)"
1514
+ [attr.data-pc-section]="'sourceMoveDownButton'"
1515
+ >
1516
+ <AngleDownIcon *ngIf="!moveDownIconTemplate" [attr.data-pc-section]="'movedownicon'" />
1142
1517
  <ng-template *ngTemplateOutlet="moveDownIconTemplate"></ng-template>
1143
1518
  </button>
1144
- <button type="button" [attr.aria-label]="bottomButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="sourceMoveDisabled()" (click)="moveBottom(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)">
1145
- <AngleDoubleDownIcon *ngIf="!moveBottomIconTemplate" />
1519
+ <button
1520
+ type="button"
1521
+ [attr.aria-label]="moveBottomAriaLabel"
1522
+ pButton
1523
+ pRipple
1524
+ class="p-button-icon-only"
1525
+ [disabled]="sourceMoveDisabled()"
1526
+ (click)="moveBottom(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)"
1527
+ [attr.data-pc-section]="'sourceMoveBottomButton'"
1528
+ >
1529
+ <AngleDoubleDownIcon *ngIf="!moveBottomIconTemplate" [attr.data-pc-section]="'movebottomicon'" />
1146
1530
  <ng-template *ngTemplateOutlet="moveBottomIconTemplate"></ng-template>
1147
1531
  </button>
1148
1532
  </div>
1149
- <div class="p-picklist-list-wrapper p-picklist-source-wrapper">
1150
- <div class="p-picklist-header" *ngIf="sourceHeader || sourceHeaderTemplate">
1533
+ <div class="p-picklist-list-wrapper p-picklist-source-wrapper" [attr.data-pc-section]="'sourceWrapper'" [attr.data-pc-group-section]="'listWrapper'">
1534
+ <div class="p-picklist-header" *ngIf="sourceHeader || sourceHeaderTemplate" [attr.data-pc-section]="'sourceHeader'" [attr.data-pc-group-section]="'header'">
1151
1535
  <div class="p-picklist-title" *ngIf="!sourceHeaderTemplate">{{ sourceHeader }}</div>
1152
1536
  <ng-container *ngTemplateOutlet="sourceHeaderTemplate"></ng-container>
1153
1537
  </div>
1154
- <div class="p-picklist-filter-container" *ngIf="filterBy && showSourceFilter !== false">
1538
+ <div class="p-picklist-filter-container" *ngIf="filterBy && showSourceFilter !== false" [attr.data-pc-section]="'sourceFilterContainer'">
1155
1539
  <ng-container *ngIf="sourceFilterTemplate; else builtInSourceElement">
1156
1540
  <ng-container *ngTemplateOutlet="sourceFilterTemplate; context: { options: sourceFilterOptions }"></ng-container>
1157
1541
  </ng-container>
1158
1542
  <ng-template #builtInSourceElement>
1159
- <div class="p-picklist-filter">
1543
+ <div class="p-picklist-filter" [attr.data-pc-section]="'sourceFilter'">
1160
1544
  <input
1161
1545
  #sourceFilter
1162
1546
  type="text"
@@ -1166,86 +1550,106 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
1166
1550
  [disabled]="disabled"
1167
1551
  [attr.placeholder]="sourceFilterPlaceholder"
1168
1552
  [attr.aria-label]="ariaSourceFilterLabel"
1553
+ [attr.data-pc-section]="'sourceFilterInput'"
1169
1554
  />
1170
- <SearchIcon *ngIf="!sourceFilterIconTemplate" [styleClass]="'p-picklist-filter-icon'" />
1171
- <span class="p-picklist-filter-icon" *ngIf="sourceFilterIconTemplate">
1555
+ <SearchIcon *ngIf="!sourceFilterIconTemplate" [styleClass]="'p-picklist-filter-icon'" [attr.data-pc-section]="'sourcefilterIcon'" />
1556
+ <span class="p-picklist-filter-icon" *ngIf="sourceFilterIconTemplate" [attr.data-pc-section]="'sourcefilterIcon'">
1172
1557
  <ng-template *ngTemplateOutlet="sourceFilterIconTemplate"></ng-template>
1173
1558
  </span>
1174
1559
  </div>
1175
1560
  </ng-template>
1176
1561
  </div>
1177
1562
 
1178
- <ul #sourcelist class="p-picklist-list p-picklist-source" cdkDropList [cdkDropListData]="source" (cdkDropListDropped)="onDrop($event, SOURCE_LIST)" [ngStyle]="sourceStyle" role="listbox" aria-multiselectable="multiple">
1563
+ <ul
1564
+ #sourcelist
1565
+ class="p-picklist-list p-picklist-source"
1566
+ [id]="idSource + '_list'"
1567
+ (keydown)="onItemKeyDown($event, selectedItemsSource, onSourceSelect, SOURCE_LIST)"
1568
+ (focus)="onListFocus($event, SOURCE_LIST)"
1569
+ (blur)="onListBlur($event, SOURCE_LIST)"
1570
+ cdkDropList
1571
+ [cdkDropListData]="source"
1572
+ (cdkDropListDropped)="onDrop($event, SOURCE_LIST)"
1573
+ [ngStyle]="sourceStyle"
1574
+ role="listbox"
1575
+ aria-multiselectable="true"
1576
+ [attr.aria-activedescendant]="focused['sourceList'] ? focusedOptionId : undefined"
1577
+ [attr.tabindex]="source && source.length > 0 ? tabindex : -1"
1578
+ [attr.data-pc-section]="'sourceList'"
1579
+ [attr.data-pc-group-section]="'list'"
1580
+ >
1179
1581
  <ng-template ngFor let-item [ngForOf]="source" [ngForTrackBy]="sourceTrackBy || trackBy" let-i="index" let-l="last">
1180
1582
  <li
1181
1583
  [ngClass]="{ 'p-picklist-item': true, 'p-highlight': isSelected(item, selectedItemsSource), 'p-disabled': disabled }"
1182
1584
  pRipple
1183
1585
  cdkDrag
1586
+ [id]="idSource + '_' + i"
1587
+ [ngClass]="itemClass(item, idSource + '_' + i, selectedItemsSource)"
1184
1588
  [cdkDragData]="item"
1185
1589
  [cdkDragDisabled]="!dragdrop"
1186
- (click)="onItemClick($event, item, selectedItemsSource, onSourceSelect)"
1590
+ (click)="onItemClick($event, item, selectedItemsSource, onSourceSelect, idSource + '_' + i)"
1591
+ (mousedown)="onOptionMouseDown(i, SOURCE_LIST)"
1187
1592
  (dblclick)="onSourceItemDblClick()"
1188
1593
  (touchend)="onItemTouchEnd()"
1189
- (keydown)="onItemKeydown($event, item, selectedItemsSource, onSourceSelect)"
1190
1594
  *ngIf="isItemVisible(item, SOURCE_LIST)"
1191
- tabindex="0"
1192
1595
  role="option"
1596
+ [attr.data-pc-section]="'item'"
1193
1597
  [attr.aria-selected]="isSelected(item, selectedItemsSource)"
1194
1598
  >
1195
1599
  <ng-container *ngTemplateOutlet="itemTemplate; context: { $implicit: item, index: i }"></ng-container>
1196
1600
  </li>
1197
1601
  </ng-template>
1198
1602
  <ng-container *ngIf="isEmpty(SOURCE_LIST) && (emptyMessageSourceTemplate || emptyFilterMessageSourceTemplate)">
1199
- <li class="p-picklist-empty-message" *ngIf="!filterValueSource || !emptyFilterMessageSourceTemplate">
1603
+ <li class="p-picklist-empty-message" *ngIf="!filterValueSource || !emptyFilterMessageSourceTemplate" [attr.data-pc-section]="'sourceEmptyMessage'">
1200
1604
  <ng-container *ngTemplateOutlet="emptyMessageSourceTemplate"></ng-container>
1201
1605
  </li>
1202
- <li class="p-picklist-empty-message" *ngIf="filterValueSource">
1606
+ <li class="p-picklist-empty-message" *ngIf="filterValueSource" [attr.data-pc-section]="'sourceEmptyMessage'">
1203
1607
  <ng-container *ngTemplateOutlet="emptyFilterMessageSourceTemplate"></ng-container>
1204
1608
  </li>
1205
1609
  </ng-container>
1206
1610
  </ul>
1207
1611
  </div>
1208
- <div class="p-picklist-buttons p-picklist-transfer-buttons">
1209
- <button type="button" [attr.aria-label]="rightButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="moveRightDisabled()" (click)="moveRight()">
1612
+ <div class="p-picklist-buttons p-picklist-transfer-buttons" [attr.data-pc-section]="'buttons'" [attr.data-pc-group-section]="'controls'">
1613
+ <button type="button" [attr.aria-label]="moveToTargetAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="moveRightDisabled()" (click)="moveRight()" [attr.data-pc-section]="'moveToTargetButton'">
1210
1614
  <ng-container *ngIf="!moveToTargetIconTemplate">
1211
- <AngleRightIcon *ngIf="!viewChanged" />
1212
- <AngleDownIcon *ngIf="viewChanged" />
1615
+ <AngleRightIcon *ngIf="!viewChanged" [attr.data-pc-section]="'movetotargeticon'" />
1616
+ <AngleDownIcon *ngIf="viewChanged" [attr.data-pc-section]="'movetotargeticon'" />
1213
1617
  </ng-container>
1214
1618
  <ng-template *ngTemplateOutlet="moveToTargetIconTemplate; context: { $implicit: viewChanged }"></ng-template>
1215
1619
  </button>
1216
- <button type="button" [attr.aria-label]="allRightButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="moveAllRightDisabled()" (click)="moveAllRight()">
1620
+ <button type="button" [attr.aria-label]="moveAllToTargetAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="moveAllRightDisabled()" (click)="moveAllRight()" [attr.data-pc-section]="'moveAllToTargetButton'">
1217
1621
  <ng-container *ngIf="!moveAllToTargetIconTemplate">
1218
- <AngleDoubleRightIcon *ngIf="!viewChanged" />
1219
- <AngleDoubleDownIcon *ngIf="viewChanged" />
1622
+ <AngleDoubleRightIcon *ngIf="!viewChanged" [attr.data-pc-section]="'movealltotargeticon'" />
1623
+ <AngleDoubleDownIcon *ngIf="viewChanged" [attr.data-pc-section]="'movealltotargeticon'" />
1220
1624
  </ng-container>
1221
1625
  <ng-template *ngTemplateOutlet="moveAllToTargetIconTemplate; context: { $implicit: viewChanged }"></ng-template>
1222
1626
  </button>
1223
- <button type="button" [attr.aria-label]="leftButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="moveLeftDisabled()" (click)="moveLeft()">
1627
+ <button type="button" [attr.aria-label]="moveToSourceAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="moveLeftDisabled()" (click)="moveLeft()" [attr.data-pc-section]="'moveToSourceButton'">
1224
1628
  <ng-container *ngIf="!moveToSourceIconTemplate">
1225
- <AngleLeftIcon *ngIf="!viewChanged" />
1226
- <AngleUpIcon *ngIf="viewChanged" />
1629
+ <AngleLeftIcon *ngIf="!viewChanged" [attr.data-pc-section]="'movedownsourceticon'" />
1630
+ <AngleUpIcon *ngIf="viewChanged" [attr.data-pc-section]="'movedownsourceticon'" />
1227
1631
  </ng-container>
1228
1632
  <ng-template *ngTemplateOutlet="moveToSourceIconTemplate; context: { $implicit: viewChanged }"></ng-template>
1229
1633
  </button>
1230
- <button type="button" [attr.aria-label]="allLeftButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="moveAllLeftDisabled()" (click)="moveAllLeft()">
1634
+ <button type="button" [attr.aria-label]="moveAllToSourceAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="moveAllLeftDisabled()" (click)="moveAllLeft()" [attr.data-pc-section]="'moveAllToSourceButton'">
1231
1635
  <ng-container *ngIf="!moveAllToSourceIconTemplate">
1232
- <AngleDoubleLeftIcon *ngIf="!viewChanged" />
1233
- <AngleDoubleUpIcon *ngIf="viewChanged" />
1636
+ <AngleDoubleLeftIcon *ngIf="!viewChanged" [attr.data-pc-section]="'movealltosourceticon'" />
1637
+ <AngleDoubleUpIcon *ngIf="viewChanged" [attr.data-pc-section]="'movealltosourceticon'" />
1234
1638
  </ng-container>
1235
1639
  <ng-template *ngTemplateOutlet="moveAllToSourceIconTemplate; context: { $implicit: viewChanged }"></ng-template>
1236
1640
  </button>
1237
1641
  </div>
1238
- <div class="p-picklist-list-wrapper p-picklist-target-wrapper">
1239
- <div class="p-picklist-header" *ngIf="targetHeader || targetHeaderTemplate">
1642
+ <div class="p-picklist-list-wrapper p-picklist-target-wrapper" [attr.data-pc-section]="'targetWrapper'" [attr.data-pc-group-section]="'listwrapper'">
1643
+ <div class="p-picklist-header" *ngIf="targetHeader || targetHeaderTemplate" [attr.data-pc-section]="'targetHead'" [attr.data-pc-group-section]="'header'">
1240
1644
  <div class="p-picklist-title" *ngIf="!targetHeaderTemplate">{{ targetHeader }}</div>
1241
1645
  <ng-container *ngTemplateOutlet="targetHeaderTemplate"></ng-container>
1242
1646
  </div>
1243
- <div class="p-picklist-filter-container" *ngIf="filterBy && showTargetFilter !== false">
1647
+ <div class="p-picklist-filter-container" *ngIf="filterBy && showTargetFilter !== false" [attr.data-pc-section]="'targetFilterContainer'">
1244
1648
  <ng-container *ngIf="targetFilterTemplate; else builtInTargetElement">
1245
1649
  <ng-container *ngTemplateOutlet="targetFilterTemplate; context: { options: targetFilterOptions }"></ng-container>
1246
1650
  </ng-container>
1247
1651
  <ng-template #builtInTargetElement>
1248
- <div class="p-picklist-filter">
1652
+ <div class="p-picklist-filter" [attr.data-pc-section]="'targetFilter'">
1249
1653
  <input
1250
1654
  #targetFilter
1251
1655
  type="text"
@@ -1255,59 +1659,115 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
1255
1659
  [disabled]="disabled"
1256
1660
  [attr.placeholder]="targetFilterPlaceholder"
1257
1661
  [attr.aria-label]="ariaTargetFilterLabel"
1662
+ [attr.data-pc-section]="'targetFilterInput'"
1258
1663
  />
1259
- <SearchIcon *ngIf="!targetFilterIconTemplate" [styleClass]="'p-picklist-filter-icon'" />
1260
- <span class="p-picklist-filter-icon" *ngIf="targetFilterIconTemplate">
1664
+ <SearchIcon *ngIf="!targetFilterIconTemplate" [styleClass]="'p-picklist-filter-icon'" [attr.data-pc-section]="'targetfiltericon'" />
1665
+ <span class="p-picklist-filter-icon" *ngIf="targetFilterIconTemplate" [attr.data-pc-section]="'targetfiltericon'">
1261
1666
  <ng-template *ngTemplateOutlet="targetFilterIconTemplate"></ng-template>
1262
1667
  </span>
1263
1668
  </div>
1264
1669
  </ng-template>
1265
1670
  </div>
1266
- <ul #targetlist class="p-picklist-list p-picklist-target" cdkDropList [cdkDropListData]="target" (cdkDropListDropped)="onDrop($event, TARGET_LIST)" [ngStyle]="targetStyle" role="listbox" aria-multiselectable="multiple">
1671
+ <ul
1672
+ #targetlist
1673
+ class="p-picklist-list p-picklist-target"
1674
+ [id]="idTarget + '_list'"
1675
+ (keydown)="onItemKeyDown($event, selectedItemsTarget, onTargetSelect, TARGET_LIST)"
1676
+ (focus)="onListFocus($event, TARGET_LIST)"
1677
+ (blur)="onListBlur($event, TARGET_LIST)"
1678
+ cdkDropList
1679
+ [cdkDropListData]="target"
1680
+ (cdkDropListDropped)="onDrop($event, TARGET_LIST)"
1681
+ [ngStyle]="targetStyle"
1682
+ role="listbox"
1683
+ aria-multiselectable="true"
1684
+ [attr.aria-activedescendant]="focused['targetList'] ? focusedOptionId : undefined"
1685
+ [attr.tabindex]="target && target.length > 0 ? tabindex : -1"
1686
+ [attr.data-pc-section]="'targetList'"
1687
+ [attr.data-pc-group-section]="'list'"
1688
+ >
1267
1689
  <ng-template ngFor let-item [ngForOf]="target" [ngForTrackBy]="targetTrackBy || trackBy" let-i="index" let-l="last">
1268
1690
  <li
1269
1691
  [ngClass]="{ 'p-picklist-item': true, 'p-highlight': isSelected(item, selectedItemsTarget), 'p-disabled': disabled }"
1270
1692
  pRipple
1271
1693
  cdkDrag
1694
+ [id]="idTarget + '_' + i"
1695
+ [ngClass]="itemClass(item, idTarget + '_' + i, selectedItemsTarget)"
1272
1696
  [cdkDragData]="item"
1273
1697
  [cdkDragDisabled]="!dragdrop"
1274
- (click)="onItemClick($event, item, selectedItemsTarget, onTargetSelect)"
1698
+ (click)="onItemClick($event, item, selectedItemsTarget, onTargetSelect, idTarget + '_' + i)"
1699
+ (mousedown)="onOptionMouseDown(i, TARGET_LIST)"
1275
1700
  (dblclick)="onTargetItemDblClick()"
1276
1701
  (touchend)="onItemTouchEnd()"
1277
- (keydown)="onItemKeydown($event, item, selectedItemsTarget, onTargetSelect)"
1278
1702
  *ngIf="isItemVisible(item, TARGET_LIST)"
1279
- tabindex="0"
1280
1703
  role="option"
1704
+ [attr.data-pc-section]="'item'"
1281
1705
  [attr.aria-selected]="isSelected(item, selectedItemsTarget)"
1282
1706
  >
1283
1707
  <ng-container *ngTemplateOutlet="itemTemplate; context: { $implicit: item, index: i }"></ng-container>
1284
1708
  </li>
1285
1709
  </ng-template>
1286
1710
  <ng-container *ngIf="isEmpty(TARGET_LIST) && (emptyMessageTargetTemplate || emptyFilterMessageTargetTemplate)">
1287
- <li class="p-picklist-empty-message" *ngIf="!filterValueTarget || !emptyFilterMessageTargetTemplate">
1711
+ <li class="p-picklist-empty-message" *ngIf="!filterValueTarget || !emptyFilterMessageTargetTemplate" [attr.data-pc-section]="'targetEmptyMessage'">
1288
1712
  <ng-container *ngTemplateOutlet="emptyMessageTargetTemplate"></ng-container>
1289
1713
  </li>
1290
- <li class="p-picklist-empty-message" *ngIf="filterValueTarget">
1714
+ <li class="p-picklist-empty-message" *ngIf="filterValueTarget" [attr.data-pc-section]="'targetEmptyMessage'">
1291
1715
  <ng-container *ngTemplateOutlet="emptyFilterMessageTargetTemplate"></ng-container>
1292
1716
  </li>
1293
1717
  </ng-container>
1294
1718
  </ul>
1295
1719
  </div>
1296
- <div class="p-picklist-buttons p-picklist-target-controls" *ngIf="showTargetControls">
1297
- <button type="button" [attr.aria-label]="upButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="targetMoveDisabled()" (click)="moveUp(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)">
1298
- <AngleUpIcon *ngIf="!moveUpIconTemplate" />
1720
+ <div class="p-picklist-buttons p-picklist-target-controls" *ngIf="showTargetControls" [attr.data-pc-section]="'targetControls'" [attr.data-pc-group-section]="'controls'">
1721
+ <button
1722
+ type="button"
1723
+ [attr.aria-label]="moveUpAriaLabel"
1724
+ pButton
1725
+ pRipple
1726
+ class="p-button-icon-only"
1727
+ [disabled]="targetMoveDisabled()"
1728
+ (click)="moveUp(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)"
1729
+ [attr.data-pc-section]="'targetMoveUpButton'"
1730
+ >
1731
+ <AngleUpIcon *ngIf="!moveUpIconTemplate" [attr.data-pc-section]="'moveupicon'" />
1299
1732
  <ng-template *ngTemplateOutlet="moveUpIconTemplate"></ng-template>
1300
1733
  </button>
1301
- <button type="button" [attr.aria-label]="topButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="targetMoveDisabled()" (click)="moveTop(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)">
1302
- <AngleDoubleUpIcon *ngIf="!moveTopIconTemplate" />
1734
+ <button
1735
+ type="button"
1736
+ [attr.aria-label]="moveTopAriaLabel"
1737
+ pButton
1738
+ pRipple
1739
+ class="p-button-icon-only"
1740
+ [disabled]="targetMoveDisabled()"
1741
+ (click)="moveTop(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)"
1742
+ [attr.data-pc-section]="'targetMoveTopButton'"
1743
+ >
1744
+ <AngleDoubleUpIcon *ngIf="!moveTopIconTemplate" [attr.data-pc-section]="'movetopicon'" />
1303
1745
  <ng-template *ngTemplateOutlet="moveTopIconTemplate"></ng-template>
1304
1746
  </button>
1305
- <button type="button" [attr.aria-label]="downButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="targetMoveDisabled()" (click)="moveDown(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)">
1306
- <AngleDownIcon *ngIf="!moveDownIconTemplate" />
1747
+ <button
1748
+ type="button"
1749
+ [attr.aria-label]="moveDownAriaLabel"
1750
+ pButton
1751
+ pRipple
1752
+ class="p-button-icon-only"
1753
+ [disabled]="targetMoveDisabled()"
1754
+ (click)="moveDown(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)"
1755
+ [attr.data-pc-section]="'targetMoveDownButton'"
1756
+ >
1757
+ <AngleDownIcon *ngIf="!moveDownIconTemplate" [attr.data-pc-section]="'movedownicon'" />
1307
1758
  <ng-template *ngTemplateOutlet="moveDownIconTemplate"></ng-template>
1308
1759
  </button>
1309
- <button type="button" [attr.aria-label]="bottomButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="targetMoveDisabled()" (click)="moveBottom(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)">
1310
- <AngleDoubleDownIcon *ngIf="!moveBottomIconTemplate" />
1760
+ <button
1761
+ type="button"
1762
+ [attr.aria-label]="moveBottomAriaLabel"
1763
+ pButton
1764
+ pRipple
1765
+ class="p-button-icon-only"
1766
+ [disabled]="targetMoveDisabled()"
1767
+ (click)="moveBottom(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)"
1768
+ [attr.data-pc-section]="'targetMoveBottomButton'"
1769
+ >
1770
+ <AngleDoubleDownIcon *ngIf="!moveBottomIconTemplate" [attr.data-pc-section]="'movebottomicon'" />
1311
1771
  <ng-template *ngTemplateOutlet="moveBottomIconTemplate"></ng-template>
1312
1772
  </button>
1313
1773
  </div>
@@ -1321,12 +1781,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
1321
1781
  }] }, { type: undefined, decorators: [{
1322
1782
  type: Inject,
1323
1783
  args: [PLATFORM_ID]
1324
- }] }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.FilterService }]; }, propDecorators: { source: [{
1784
+ }] }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.FilterService }, { type: i1.PrimeNGConfig }]; }, propDecorators: { source: [{
1325
1785
  type: Input
1326
1786
  }], target: [{
1327
1787
  type: Input
1328
1788
  }], sourceHeader: [{
1329
1789
  type: Input
1790
+ }], tabindex: [{
1791
+ type: Input
1330
1792
  }], rightButtonAriaLabel: [{
1331
1793
  type: Input
1332
1794
  }], leftButtonAriaLabel: [{
@@ -1415,6 +1877,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
1415
1877
  type: Output
1416
1878
  }], onTargetFilter: [{
1417
1879
  type: Output
1880
+ }], onFocus: [{
1881
+ type: Output
1882
+ }], onBlur: [{
1883
+ type: Output
1418
1884
  }], listViewSourceChild: [{
1419
1885
  type: ViewChild,
1420
1886
  args: ['sourcelist']
@@ -1435,11 +1901,11 @@ const DragConfig = {
1435
1901
  zIndex: 1200
1436
1902
  };
1437
1903
  class PickListModule {
1438
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: PickListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1439
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.2", ngImport: i0, type: PickListModule, declarations: [PickList], imports: [CommonModule, ButtonModule, SharedModule, RippleModule, DragDropModule, AngleDoubleDownIcon, AngleDoubleLeftIcon, AngleDoubleRightIcon, AngleDoubleUpIcon, AngleDownIcon, AngleLeftIcon, AngleRightIcon, AngleUpIcon, SearchIcon, HomeIcon], exports: [PickList, SharedModule, DragDropModule] });
1440
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: PickListModule, providers: [{ provide: CDK_DRAG_CONFIG, useValue: DragConfig }], imports: [CommonModule, ButtonModule, SharedModule, RippleModule, DragDropModule, AngleDoubleDownIcon, AngleDoubleLeftIcon, AngleDoubleRightIcon, AngleDoubleUpIcon, AngleDownIcon, AngleLeftIcon, AngleRightIcon, AngleUpIcon, SearchIcon, HomeIcon, SharedModule, DragDropModule] });
1904
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: PickListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1905
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: PickListModule, declarations: [PickList], imports: [CommonModule, ButtonModule, SharedModule, RippleModule, DragDropModule, AngleDoubleDownIcon, AngleDoubleLeftIcon, AngleDoubleRightIcon, AngleDoubleUpIcon, AngleDownIcon, AngleLeftIcon, AngleRightIcon, AngleUpIcon, SearchIcon, HomeIcon], exports: [PickList, SharedModule, DragDropModule] });
1906
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: PickListModule, providers: [{ provide: CDK_DRAG_CONFIG, useValue: DragConfig }], imports: [CommonModule, ButtonModule, SharedModule, RippleModule, DragDropModule, AngleDoubleDownIcon, AngleDoubleLeftIcon, AngleDoubleRightIcon, AngleDoubleUpIcon, AngleDownIcon, AngleLeftIcon, AngleRightIcon, AngleUpIcon, SearchIcon, HomeIcon, SharedModule, DragDropModule] });
1441
1907
  }
1442
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: PickListModule, decorators: [{
1908
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: PickListModule, decorators: [{
1443
1909
  type: NgModule,
1444
1910
  args: [{
1445
1911
  imports: [CommonModule, ButtonModule, SharedModule, RippleModule, DragDropModule, AngleDoubleDownIcon, AngleDoubleLeftIcon, AngleDoubleRightIcon, AngleDoubleUpIcon, AngleDownIcon, AngleLeftIcon, AngleRightIcon, AngleUpIcon, SearchIcon, HomeIcon],