primeng 17.16.0 → 17.16.1

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 (434) hide show
  1. package/api/primeicons.d.ts +53 -0
  2. package/badge/badge.d.ts +2 -5
  3. package/button/button.d.ts +1 -1
  4. package/calendar/calendar.d.ts +5 -2
  5. package/dataview/dataview.d.ts +0 -1
  6. package/dropdown/dropdown.d.ts +1 -1
  7. package/esm2022/accordion/accordion.mjs +10 -10
  8. package/esm2022/animate/animate.mjs +7 -7
  9. package/esm2022/animateonscroll/animateonscroll.mjs +7 -7
  10. package/esm2022/api/confirmationservice.mjs +3 -3
  11. package/esm2022/api/contextmenuservice.mjs +3 -3
  12. package/esm2022/api/filterservice.mjs +3 -3
  13. package/esm2022/api/messageservice.mjs +3 -3
  14. package/esm2022/api/overlayservice.mjs +3 -3
  15. package/esm2022/api/primeicons.mjs +54 -1
  16. package/esm2022/api/primengconfig.mjs +3 -3
  17. package/esm2022/api/shared.mjs +13 -13
  18. package/esm2022/api/treedragdropservice.mjs +3 -3
  19. package/esm2022/autocomplete/autocomplete.mjs +7 -7
  20. package/esm2022/autofocus/autofocus.mjs +7 -7
  21. package/esm2022/avatar/avatar.mjs +7 -7
  22. package/esm2022/avatargroup/avatargroup.mjs +7 -7
  23. package/esm2022/badge/badge.mjs +25 -18
  24. package/esm2022/baseicon/baseicon.mjs +3 -3
  25. package/esm2022/blockui/blockui.mjs +7 -7
  26. package/esm2022/breadcrumb/breadcrumb.mjs +7 -7
  27. package/esm2022/button/button.mjs +11 -11
  28. package/esm2022/buttongroup/buttongroup.mjs +7 -7
  29. package/esm2022/calendar/calendar.mjs +94 -22
  30. package/esm2022/card/card.mjs +7 -7
  31. package/esm2022/carousel/carousel.mjs +7 -7
  32. package/esm2022/cascadeselect/cascadeselect.mjs +10 -10
  33. package/esm2022/chart/chart.mjs +7 -7
  34. package/esm2022/checkbox/checkbox.mjs +7 -7
  35. package/esm2022/chip/chip.mjs +7 -7
  36. package/esm2022/chips/chips.mjs +7 -7
  37. package/esm2022/colorpicker/colorpicker.mjs +7 -7
  38. package/esm2022/confirmdialog/confirmdialog.mjs +7 -7
  39. package/esm2022/confirmpopup/confirmpopup.mjs +7 -7
  40. package/esm2022/contextmenu/contextmenu.mjs +10 -10
  41. package/esm2022/dataview/dataview.mjs +12 -13
  42. package/esm2022/defer/defer.mjs +7 -7
  43. package/esm2022/dialog/dialog.mjs +7 -7
  44. package/esm2022/divider/divider.mjs +7 -7
  45. package/esm2022/dock/dock.mjs +7 -7
  46. package/esm2022/dragdrop/dragdrop.mjs +10 -10
  47. package/esm2022/dropdown/dropdown.mjs +28 -20
  48. package/esm2022/dynamicdialog/dialogservice.mjs +3 -3
  49. package/esm2022/dynamicdialog/dynamicdialog.mjs +11 -8
  50. package/esm2022/dynamicdialog/dynamicdialogcontent.mjs +3 -3
  51. package/esm2022/editor/editor.mjs +7 -7
  52. package/esm2022/fieldset/fieldset.mjs +7 -7
  53. package/esm2022/fileupload/fileupload.interface.mjs +1 -1
  54. package/esm2022/fileupload/fileupload.mjs +62 -12
  55. package/esm2022/floatlabel/floatlabel.mjs +7 -7
  56. package/esm2022/focustrap/focustrap.mjs +7 -7
  57. package/esm2022/galleria/galleria.mjs +19 -19
  58. package/esm2022/iconfield/iconfield.mjs +7 -7
  59. package/esm2022/icons/angledoubledown/angledoubledown.mjs +3 -3
  60. package/esm2022/icons/angledoubleleft/angledoubleleft.mjs +3 -3
  61. package/esm2022/icons/angledoubleright/angledoubleright.mjs +3 -3
  62. package/esm2022/icons/angledoubleup/angledoubleup.mjs +3 -3
  63. package/esm2022/icons/angledown/angledown.mjs +3 -3
  64. package/esm2022/icons/angleleft/angleleft.mjs +3 -3
  65. package/esm2022/icons/angleright/angleright.mjs +3 -3
  66. package/esm2022/icons/angleup/angleup.mjs +3 -3
  67. package/esm2022/icons/arrowdown/arrowdown.mjs +3 -3
  68. package/esm2022/icons/arrowdownleft/arrowdownleft.mjs +3 -3
  69. package/esm2022/icons/arrowdownright/arrowdownright.mjs +3 -3
  70. package/esm2022/icons/arrowleft/arrowleft.mjs +3 -3
  71. package/esm2022/icons/arrowright/arrowright.mjs +3 -3
  72. package/esm2022/icons/arrowup/arrowup.mjs +3 -3
  73. package/esm2022/icons/ban/ban.mjs +3 -3
  74. package/esm2022/icons/bars/bars.mjs +3 -3
  75. package/esm2022/icons/blank/blank.mjs +3 -3
  76. package/esm2022/icons/calendar/calendar.mjs +3 -3
  77. package/esm2022/icons/caretleft/caretleft.mjs +3 -3
  78. package/esm2022/icons/caretright/caretright.mjs +3 -3
  79. package/esm2022/icons/check/check.mjs +3 -3
  80. package/esm2022/icons/chevrondown/chevrondown.mjs +3 -3
  81. package/esm2022/icons/chevronleft/chevronleft.mjs +3 -3
  82. package/esm2022/icons/chevronright/chevronright.mjs +3 -3
  83. package/esm2022/icons/chevronup/chevronup.mjs +3 -3
  84. package/esm2022/icons/exclamationtriangle/exclamationtriangle.mjs +3 -3
  85. package/esm2022/icons/eye/eye.mjs +3 -3
  86. package/esm2022/icons/eyeslash/eyeslash.mjs +3 -3
  87. package/esm2022/icons/filter/filter.mjs +3 -3
  88. package/esm2022/icons/filterslash/filterslash.mjs +3 -3
  89. package/esm2022/icons/home/home.mjs +3 -3
  90. package/esm2022/icons/infocircle/infocircle.mjs +3 -3
  91. package/esm2022/icons/minus/minus.mjs +3 -3
  92. package/esm2022/icons/pencil/pencil.mjs +3 -3
  93. package/esm2022/icons/plus/plus.mjs +3 -3
  94. package/esm2022/icons/refresh/refresh.mjs +3 -3
  95. package/esm2022/icons/search/search.mjs +3 -3
  96. package/esm2022/icons/searchminus/searchminus.mjs +3 -3
  97. package/esm2022/icons/searchplus/searchplus.mjs +3 -3
  98. package/esm2022/icons/sortalt/sortalt.mjs +3 -3
  99. package/esm2022/icons/sortamountdown/sortamountdown.mjs +3 -3
  100. package/esm2022/icons/sortamountupalt/sortamountupalt.mjs +3 -3
  101. package/esm2022/icons/spinner/spinner.mjs +3 -3
  102. package/esm2022/icons/star/star.mjs +3 -3
  103. package/esm2022/icons/starfill/starfill.mjs +3 -3
  104. package/esm2022/icons/thlarge/thlarge.mjs +3 -3
  105. package/esm2022/icons/times/times.mjs +3 -3
  106. package/esm2022/icons/timescircle/timescircle.mjs +3 -3
  107. package/esm2022/icons/trash/trash.mjs +3 -3
  108. package/esm2022/icons/undo/undo.mjs +3 -3
  109. package/esm2022/icons/upload/upload.mjs +3 -3
  110. package/esm2022/icons/windowmaximize/windowmaximize.mjs +3 -3
  111. package/esm2022/icons/windowminimize/windowminimize.mjs +3 -3
  112. package/esm2022/image/image.mjs +7 -7
  113. package/esm2022/inplace/inplace.mjs +13 -13
  114. package/esm2022/inputgroup/inputgroup.mjs +7 -7
  115. package/esm2022/inputgroupaddon/inputgroupaddon.mjs +7 -7
  116. package/esm2022/inputicon/inputicon.mjs +7 -7
  117. package/esm2022/inputmask/inputmask.mjs +7 -7
  118. package/esm2022/inputnumber/inputnumber.mjs +23 -14
  119. package/esm2022/inputotp/inputotp.mjs +11 -8
  120. package/esm2022/inputswitch/inputswitch.mjs +8 -9
  121. package/esm2022/inputtext/inputtext.mjs +7 -7
  122. package/esm2022/inputtextarea/inputtextarea.mjs +7 -7
  123. package/esm2022/keyfilter/keyfilter.mjs +7 -7
  124. package/esm2022/knob/knob.mjs +7 -7
  125. package/esm2022/listbox/listbox.mjs +7 -7
  126. package/esm2022/megamenu/megamenu.mjs +10 -10
  127. package/esm2022/menu/menu.mjs +13 -13
  128. package/esm2022/menubar/menubar.mjs +13 -13
  129. package/esm2022/message/message.mjs +18 -36
  130. package/esm2022/messages/messages.mjs +7 -7
  131. package/esm2022/metergroup/metergroup.mjs +10 -10
  132. package/esm2022/multiselect/multiselect.mjs +10 -10
  133. package/esm2022/orderlist/orderlist.mjs +7 -7
  134. package/esm2022/organizationchart/organizationchart.mjs +10 -10
  135. package/esm2022/overlay/overlay.mjs +7 -7
  136. package/esm2022/overlaypanel/overlaypanel.mjs +7 -7
  137. package/esm2022/paginator/paginator.mjs +7 -7
  138. package/esm2022/panel/panel.mjs +7 -7
  139. package/esm2022/panelmenu/panelmenu.mjs +13 -13
  140. package/esm2022/password/password.mjs +13 -13
  141. package/esm2022/picklist/picklist.mjs +11 -10
  142. package/esm2022/progressbar/progressbar.mjs +7 -7
  143. package/esm2022/progressspinner/progressspinner.mjs +7 -7
  144. package/esm2022/radiobutton/radiobutton.mjs +10 -10
  145. package/esm2022/rating/rating.mjs +7 -7
  146. package/esm2022/ripple/ripple.mjs +7 -7
  147. package/esm2022/scroller/scroller.mjs +7 -7
  148. package/esm2022/scrollpanel/scrollpanel.mjs +7 -7
  149. package/esm2022/scrolltop/scrolltop.mjs +7 -7
  150. package/esm2022/selectbutton/selectbutton.mjs +7 -7
  151. package/esm2022/sidebar/sidebar.mjs +7 -7
  152. package/esm2022/skeleton/skeleton.mjs +12 -12
  153. package/esm2022/slidemenu/slidemenu.mjs +10 -10
  154. package/esm2022/slider/slider.mjs +7 -7
  155. package/esm2022/speeddial/speeddial.mjs +7 -7
  156. package/esm2022/spinner/spinner.mjs +7 -7
  157. package/esm2022/splitbutton/splitbutton.mjs +7 -7
  158. package/esm2022/splitter/splitter.mjs +7 -7
  159. package/esm2022/stepper/stepper.mjs +19 -19
  160. package/esm2022/steps/steps.mjs +7 -7
  161. package/esm2022/styleclass/styleclass.mjs +7 -7
  162. package/esm2022/table/table.mjs +106 -85
  163. package/esm2022/tabmenu/tabmenu.mjs +7 -7
  164. package/esm2022/tabview/tabview.mjs +10 -10
  165. package/esm2022/tag/tag.mjs +9 -12
  166. package/esm2022/terminal/terminal.mjs +7 -7
  167. package/esm2022/terminal/terminalservice.mjs +3 -3
  168. package/esm2022/tieredmenu/tieredmenu.mjs +26 -29
  169. package/esm2022/timeline/timeline.mjs +7 -7
  170. package/esm2022/toast/toast.mjs +10 -10
  171. package/esm2022/togglebutton/togglebutton.mjs +7 -7
  172. package/esm2022/toolbar/toolbar.mjs +7 -7
  173. package/esm2022/tooltip/tooltip.mjs +25 -15
  174. package/esm2022/tree/tree.mjs +10 -10
  175. package/esm2022/treeselect/treeselect.mjs +7 -7
  176. package/esm2022/treetable/treetable.mjs +55 -55
  177. package/esm2022/tristatecheckbox/tristatecheckbox.mjs +7 -7
  178. package/esm2022/virtualscroller/virtualscroller.mjs +7 -7
  179. package/fesm2022/primeng-accordion.mjs +10 -10
  180. package/fesm2022/primeng-animate.mjs +7 -7
  181. package/fesm2022/primeng-animateonscroll.mjs +7 -7
  182. package/fesm2022/primeng-api.mjs +87 -34
  183. package/fesm2022/primeng-api.mjs.map +1 -1
  184. package/fesm2022/primeng-autocomplete.mjs +7 -7
  185. package/fesm2022/primeng-autofocus.mjs +7 -7
  186. package/fesm2022/primeng-avatar.mjs +7 -7
  187. package/fesm2022/primeng-avatargroup.mjs +7 -7
  188. package/fesm2022/primeng-badge.mjs +24 -17
  189. package/fesm2022/primeng-badge.mjs.map +1 -1
  190. package/fesm2022/primeng-baseicon.mjs +3 -3
  191. package/fesm2022/primeng-blockui.mjs +7 -7
  192. package/fesm2022/primeng-breadcrumb.mjs +7 -7
  193. package/fesm2022/primeng-button.mjs +10 -10
  194. package/fesm2022/primeng-button.mjs.map +1 -1
  195. package/fesm2022/primeng-buttongroup.mjs +7 -7
  196. package/fesm2022/primeng-calendar.mjs +93 -21
  197. package/fesm2022/primeng-calendar.mjs.map +1 -1
  198. package/fesm2022/primeng-card.mjs +7 -7
  199. package/fesm2022/primeng-carousel.mjs +7 -7
  200. package/fesm2022/primeng-cascadeselect.mjs +10 -10
  201. package/fesm2022/primeng-chart.mjs +7 -7
  202. package/fesm2022/primeng-checkbox.mjs +7 -7
  203. package/fesm2022/primeng-chip.mjs +7 -7
  204. package/fesm2022/primeng-chips.mjs +7 -7
  205. package/fesm2022/primeng-colorpicker.mjs +7 -7
  206. package/fesm2022/primeng-confirmdialog.mjs +7 -7
  207. package/fesm2022/primeng-confirmpopup.mjs +7 -7
  208. package/fesm2022/primeng-contextmenu.mjs +10 -10
  209. package/fesm2022/primeng-dataview.mjs +11 -12
  210. package/fesm2022/primeng-dataview.mjs.map +1 -1
  211. package/fesm2022/primeng-defer.mjs +7 -7
  212. package/fesm2022/primeng-dialog.mjs +7 -7
  213. package/fesm2022/primeng-divider.mjs +7 -7
  214. package/fesm2022/primeng-dock.mjs +7 -7
  215. package/fesm2022/primeng-dragdrop.mjs +10 -10
  216. package/fesm2022/primeng-dropdown.mjs +27 -19
  217. package/fesm2022/primeng-dropdown.mjs.map +1 -1
  218. package/fesm2022/primeng-dynamicdialog.mjs +16 -13
  219. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  220. package/fesm2022/primeng-editor.mjs +7 -7
  221. package/fesm2022/primeng-fieldset.mjs +7 -7
  222. package/fesm2022/primeng-fileupload.mjs +61 -11
  223. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  224. package/fesm2022/primeng-floatlabel.mjs +7 -7
  225. package/fesm2022/primeng-focustrap.mjs +7 -7
  226. package/fesm2022/primeng-galleria.mjs +19 -19
  227. package/fesm2022/primeng-iconfield.mjs +7 -7
  228. package/fesm2022/primeng-icons-angledoubledown.mjs +3 -3
  229. package/fesm2022/primeng-icons-angledoubleleft.mjs +3 -3
  230. package/fesm2022/primeng-icons-angledoubleright.mjs +3 -3
  231. package/fesm2022/primeng-icons-angledoubleup.mjs +3 -3
  232. package/fesm2022/primeng-icons-angledown.mjs +3 -3
  233. package/fesm2022/primeng-icons-angleleft.mjs +3 -3
  234. package/fesm2022/primeng-icons-angleright.mjs +3 -3
  235. package/fesm2022/primeng-icons-angleup.mjs +3 -3
  236. package/fesm2022/primeng-icons-arrowdown.mjs +3 -3
  237. package/fesm2022/primeng-icons-arrowdownleft.mjs +3 -3
  238. package/fesm2022/primeng-icons-arrowdownright.mjs +3 -3
  239. package/fesm2022/primeng-icons-arrowleft.mjs +3 -3
  240. package/fesm2022/primeng-icons-arrowright.mjs +3 -3
  241. package/fesm2022/primeng-icons-arrowup.mjs +3 -3
  242. package/fesm2022/primeng-icons-ban.mjs +3 -3
  243. package/fesm2022/primeng-icons-bars.mjs +3 -3
  244. package/fesm2022/primeng-icons-blank.mjs +3 -3
  245. package/fesm2022/primeng-icons-calendar.mjs +3 -3
  246. package/fesm2022/primeng-icons-caretleft.mjs +3 -3
  247. package/fesm2022/primeng-icons-caretright.mjs +3 -3
  248. package/fesm2022/primeng-icons-check.mjs +3 -3
  249. package/fesm2022/primeng-icons-chevrondown.mjs +3 -3
  250. package/fesm2022/primeng-icons-chevronleft.mjs +3 -3
  251. package/fesm2022/primeng-icons-chevronright.mjs +3 -3
  252. package/fesm2022/primeng-icons-chevronup.mjs +3 -3
  253. package/fesm2022/primeng-icons-exclamationtriangle.mjs +3 -3
  254. package/fesm2022/primeng-icons-eye.mjs +3 -3
  255. package/fesm2022/primeng-icons-eyeslash.mjs +3 -3
  256. package/fesm2022/primeng-icons-filter.mjs +3 -3
  257. package/fesm2022/primeng-icons-filterslash.mjs +3 -3
  258. package/fesm2022/primeng-icons-home.mjs +3 -3
  259. package/fesm2022/primeng-icons-infocircle.mjs +3 -3
  260. package/fesm2022/primeng-icons-minus.mjs +3 -3
  261. package/fesm2022/primeng-icons-pencil.mjs +3 -3
  262. package/fesm2022/primeng-icons-plus.mjs +3 -3
  263. package/fesm2022/primeng-icons-refresh.mjs +3 -3
  264. package/fesm2022/primeng-icons-search.mjs +3 -3
  265. package/fesm2022/primeng-icons-searchminus.mjs +3 -3
  266. package/fesm2022/primeng-icons-searchplus.mjs +3 -3
  267. package/fesm2022/primeng-icons-sortalt.mjs +3 -3
  268. package/fesm2022/primeng-icons-sortamountdown.mjs +3 -3
  269. package/fesm2022/primeng-icons-sortamountupalt.mjs +3 -3
  270. package/fesm2022/primeng-icons-spinner.mjs +3 -3
  271. package/fesm2022/primeng-icons-star.mjs +3 -3
  272. package/fesm2022/primeng-icons-starfill.mjs +3 -3
  273. package/fesm2022/primeng-icons-thlarge.mjs +3 -3
  274. package/fesm2022/primeng-icons-times.mjs +3 -3
  275. package/fesm2022/primeng-icons-timescircle.mjs +3 -3
  276. package/fesm2022/primeng-icons-trash.mjs +3 -3
  277. package/fesm2022/primeng-icons-undo.mjs +3 -3
  278. package/fesm2022/primeng-icons-upload.mjs +3 -3
  279. package/fesm2022/primeng-icons-windowmaximize.mjs +3 -3
  280. package/fesm2022/primeng-icons-windowminimize.mjs +3 -3
  281. package/fesm2022/primeng-image.mjs +7 -7
  282. package/fesm2022/primeng-inplace.mjs +13 -13
  283. package/fesm2022/primeng-inputgroup.mjs +7 -7
  284. package/fesm2022/primeng-inputgroupaddon.mjs +7 -7
  285. package/fesm2022/primeng-inputicon.mjs +7 -7
  286. package/fesm2022/primeng-inputmask.mjs +7 -7
  287. package/fesm2022/primeng-inputnumber.mjs +23 -14
  288. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  289. package/fesm2022/primeng-inputotp.mjs +10 -7
  290. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  291. package/fesm2022/primeng-inputswitch.mjs +7 -8
  292. package/fesm2022/primeng-inputswitch.mjs.map +1 -1
  293. package/fesm2022/primeng-inputtext.mjs +7 -7
  294. package/fesm2022/primeng-inputtextarea.mjs +7 -7
  295. package/fesm2022/primeng-keyfilter.mjs +7 -7
  296. package/fesm2022/primeng-knob.mjs +7 -7
  297. package/fesm2022/primeng-listbox.mjs +7 -7
  298. package/fesm2022/primeng-megamenu.mjs +10 -10
  299. package/fesm2022/primeng-menu.mjs +13 -13
  300. package/fesm2022/primeng-menubar.mjs +13 -13
  301. package/fesm2022/primeng-message.mjs +17 -35
  302. package/fesm2022/primeng-message.mjs.map +1 -1
  303. package/fesm2022/primeng-messages.mjs +7 -7
  304. package/fesm2022/primeng-metergroup.mjs +10 -10
  305. package/fesm2022/primeng-multiselect.mjs +10 -10
  306. package/fesm2022/primeng-orderlist.mjs +7 -7
  307. package/fesm2022/primeng-organizationchart.mjs +10 -10
  308. package/fesm2022/primeng-overlay.mjs +7 -7
  309. package/fesm2022/primeng-overlaypanel.mjs +7 -7
  310. package/fesm2022/primeng-paginator.mjs +7 -7
  311. package/fesm2022/primeng-panel.mjs +7 -7
  312. package/fesm2022/primeng-panelmenu.mjs +13 -13
  313. package/fesm2022/primeng-password.mjs +13 -13
  314. package/fesm2022/primeng-picklist.mjs +10 -9
  315. package/fesm2022/primeng-picklist.mjs.map +1 -1
  316. package/fesm2022/primeng-progressbar.mjs +7 -7
  317. package/fesm2022/primeng-progressspinner.mjs +7 -7
  318. package/fesm2022/primeng-radiobutton.mjs +10 -10
  319. package/fesm2022/primeng-rating.mjs +7 -7
  320. package/fesm2022/primeng-ripple.mjs +7 -7
  321. package/fesm2022/primeng-scroller.mjs +7 -7
  322. package/fesm2022/primeng-scrollpanel.mjs +7 -7
  323. package/fesm2022/primeng-scrolltop.mjs +7 -7
  324. package/fesm2022/primeng-selectbutton.mjs +7 -7
  325. package/fesm2022/primeng-sidebar.mjs +7 -7
  326. package/fesm2022/primeng-skeleton.mjs +11 -11
  327. package/fesm2022/primeng-skeleton.mjs.map +1 -1
  328. package/fesm2022/primeng-slidemenu.mjs +10 -10
  329. package/fesm2022/primeng-slider.mjs +7 -7
  330. package/fesm2022/primeng-speeddial.mjs +7 -7
  331. package/fesm2022/primeng-spinner.mjs +7 -7
  332. package/fesm2022/primeng-splitbutton.mjs +7 -7
  333. package/fesm2022/primeng-splitter.mjs +7 -7
  334. package/fesm2022/primeng-stepper.mjs +19 -19
  335. package/fesm2022/primeng-steps.mjs +7 -7
  336. package/fesm2022/primeng-styleclass.mjs +7 -7
  337. package/fesm2022/primeng-table.mjs +105 -84
  338. package/fesm2022/primeng-table.mjs.map +1 -1
  339. package/fesm2022/primeng-tabmenu.mjs +7 -7
  340. package/fesm2022/primeng-tabview.mjs +10 -10
  341. package/fesm2022/primeng-tag.mjs +8 -11
  342. package/fesm2022/primeng-tag.mjs.map +1 -1
  343. package/fesm2022/primeng-terminal.mjs +10 -10
  344. package/fesm2022/primeng-tieredmenu.mjs +25 -28
  345. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  346. package/fesm2022/primeng-timeline.mjs +7 -7
  347. package/fesm2022/primeng-toast.mjs +10 -10
  348. package/fesm2022/primeng-togglebutton.mjs +7 -7
  349. package/fesm2022/primeng-toolbar.mjs +7 -7
  350. package/fesm2022/primeng-tooltip.mjs +24 -14
  351. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  352. package/fesm2022/primeng-tree.mjs +10 -10
  353. package/fesm2022/primeng-treeselect.mjs +7 -7
  354. package/fesm2022/primeng-treetable.mjs +55 -55
  355. package/fesm2022/primeng-tristatecheckbox.mjs +7 -7
  356. package/fesm2022/primeng-virtualscroller.mjs +7 -7
  357. package/fileupload/fileupload.d.ts +21 -2
  358. package/fileupload/fileupload.interface.d.ts +73 -3
  359. package/message/message.d.ts +6 -2
  360. package/package.json +203 -203
  361. package/resources/components/dropdown/dropdown.css +6 -2
  362. package/resources/themes/arya-blue/theme.css +0 -4
  363. package/resources/themes/arya-green/theme.css +0 -4
  364. package/resources/themes/arya-orange/theme.css +0 -4
  365. package/resources/themes/arya-purple/theme.css +0 -4
  366. package/resources/themes/aura-dark-amber/theme.css +56 -0
  367. package/resources/themes/aura-dark-blue/theme.css +56 -0
  368. package/resources/themes/aura-dark-cyan/theme.css +56 -0
  369. package/resources/themes/aura-dark-green/theme.css +56 -0
  370. package/resources/themes/aura-dark-indigo/theme.css +56 -0
  371. package/resources/themes/aura-dark-lime/theme.css +56 -0
  372. package/resources/themes/aura-dark-noir/theme.css +56 -0
  373. package/resources/themes/aura-dark-pink/theme.css +56 -0
  374. package/resources/themes/aura-dark-purple/theme.css +56 -0
  375. package/resources/themes/aura-dark-teal/theme.css +56 -0
  376. package/resources/themes/aura-light-amber/theme.css +56 -0
  377. package/resources/themes/aura-light-blue/theme.css +56 -0
  378. package/resources/themes/aura-light-cyan/theme.css +56 -0
  379. package/resources/themes/aura-light-green/theme.css +56 -0
  380. package/resources/themes/aura-light-indigo/theme.css +56 -0
  381. package/resources/themes/aura-light-lime/theme.css +56 -0
  382. package/resources/themes/aura-light-noir/theme.css +56 -0
  383. package/resources/themes/aura-light-pink/theme.css +56 -0
  384. package/resources/themes/aura-light-purple/theme.css +56 -0
  385. package/resources/themes/aura-light-teal/theme.css +56 -0
  386. package/resources/themes/bootstrap4-dark-blue/theme.css +49 -4
  387. package/resources/themes/bootstrap4-dark-purple/theme.css +49 -4
  388. package/resources/themes/bootstrap4-light-blue/theme.css +49 -4
  389. package/resources/themes/bootstrap4-light-purple/theme.css +49 -4
  390. package/resources/themes/fluent-light/theme.css +0 -4
  391. package/resources/themes/lara-dark-blue/theme.css +56 -0
  392. package/resources/themes/lara-dark-indigo/theme.css +56 -0
  393. package/resources/themes/lara-dark-purple/theme.css +56 -0
  394. package/resources/themes/lara-dark-teal/theme.css +56 -0
  395. package/resources/themes/lara-light-blue/theme.css +105 -0
  396. package/resources/themes/lara-light-indigo/theme.css +105 -0
  397. package/resources/themes/lara-light-purple/theme.css +105 -0
  398. package/resources/themes/lara-light-teal/theme.css +105 -0
  399. package/resources/themes/luna-amber/theme.css +0 -4
  400. package/resources/themes/luna-blue/theme.css +0 -4
  401. package/resources/themes/luna-green/theme.css +0 -4
  402. package/resources/themes/luna-pink/theme.css +0 -4
  403. package/resources/themes/md-dark-deeppurple/theme.css +56 -0
  404. package/resources/themes/md-dark-indigo/theme.css +56 -0
  405. package/resources/themes/md-light-deeppurple/theme.css +56 -0
  406. package/resources/themes/md-light-indigo/theme.css +56 -0
  407. package/resources/themes/mdc-dark-deeppurple/theme.css +56 -0
  408. package/resources/themes/mdc-dark-indigo/theme.css +56 -0
  409. package/resources/themes/mdc-light-deeppurple/theme.css +56 -0
  410. package/resources/themes/mdc-light-indigo/theme.css +56 -0
  411. package/resources/themes/mira/theme.css +0 -4
  412. package/resources/themes/nano/theme.css +0 -4
  413. package/resources/themes/nova/theme.css +0 -4
  414. package/resources/themes/nova-accent/theme.css +0 -4
  415. package/resources/themes/nova-alt/theme.css +0 -4
  416. package/resources/themes/rhea/theme.css +0 -4
  417. package/resources/themes/saga-blue/theme.css +0 -4
  418. package/resources/themes/saga-green/theme.css +0 -4
  419. package/resources/themes/saga-orange/theme.css +0 -4
  420. package/resources/themes/saga-purple/theme.css +0 -4
  421. package/resources/themes/soho-dark/theme.css +0 -4
  422. package/resources/themes/soho-light/theme.css +0 -4
  423. package/resources/themes/tailwind-light/theme.css +0 -4
  424. package/resources/themes/vela-blue/theme.css +0 -4
  425. package/resources/themes/vela-green/theme.css +0 -4
  426. package/resources/themes/vela-orange/theme.css +0 -4
  427. package/resources/themes/vela-purple/theme.css +0 -4
  428. package/resources/themes/viva-dark/theme.css +0 -4
  429. package/resources/themes/viva-light/theme.css +0 -4
  430. package/skeleton/skeleton.d.ts +3 -3
  431. package/table/table.d.ts +17 -1
  432. package/tag/tag.d.ts +2 -5
  433. package/tieredmenu/tieredmenu.d.ts +1 -1
  434. package/tooltip/tooltip.d.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-picklist.mjs","sources":["../../src/app/components/picklist/picklist.ts","../../src/app/components/picklist/primeng-picklist.ts"],"sourcesContent":["import { CDK_DRAG_CONFIG, CdkDragDrop, DragDropModule, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewChecked,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n NgModule,\n Output,\n PLATFORM_ID,\n QueryList,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n numberAttribute\n} from '@angular/core';\nimport { FilterService, PrimeNGConfig, PrimeTemplate, SharedModule } from 'primeng/api';\nimport { ButtonModule } from 'primeng/button';\nimport { DomHandler } from 'primeng/dom';\nimport { AngleDoubleDownIcon } from 'primeng/icons/angledoubledown';\nimport { AngleDoubleLeftIcon } from 'primeng/icons/angledoubleleft';\nimport { AngleDoubleRightIcon } from 'primeng/icons/angledoubleright';\nimport { AngleDoubleUpIcon } from 'primeng/icons/angledoubleup';\nimport { AngleDownIcon } from 'primeng/icons/angledown';\nimport { AngleLeftIcon } from 'primeng/icons/angleleft';\nimport { AngleRightIcon } from 'primeng/icons/angleright';\nimport { AngleUpIcon } from 'primeng/icons/angleup';\nimport { HomeIcon } from 'primeng/icons/home';\nimport { SearchIcon } from 'primeng/icons/search';\nimport { RippleModule } from 'primeng/ripple';\nimport { Nullable, VoidListener } from 'primeng/ts-helpers';\nimport { ObjectUtils, UniqueComponentId } from 'primeng/utils';\nimport {\n PickListFilterOptions,\n PickListMoveAllToSourceEvent,\n PickListMoveAllToTargetEvent,\n PickListMoveToSourceEvent,\n PickListMoveToTargetEvent,\n PickListSourceFilterEvent,\n PickListSourceReorderEvent,\n PickListSourceSelectEvent,\n PickListTargetFilterEvent,\n PickListTargetReorderEvent,\n PickListTargetSelectEvent\n} from './picklist.interface';\n/**\n * PickList is used to reorder items between different lists.\n * @group Components\n */\n@Component({\n selector: 'p-pickList',\n template: `\n <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'\">\n <div class=\"p-picklist-buttons p-picklist-source-controls\" *ngIf=\"showSourceControls\" [attr.data-pc-section]=\"'sourceControls'\" [attr.data-pc-group-section]=\"'controls'\">\n <button\n type=\"button\"\n [attr.aria-label]=\"moveUpAriaLabel\"\n pButton\n pRipple\n class=\"p-button-icon-only\"\n [disabled]=\"sourceMoveDisabled()\"\n (click)=\"moveUp(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)\"\n [attr.data-pc-section]=\"'sourceMoveUpButton'\"\n >\n <AngleUpIcon *ngIf=\"!moveUpIconTemplate\" [attr.data-pc-section]=\"'moveupicon'\" />\n <ng-template *ngTemplateOutlet=\"moveUpIconTemplate\"></ng-template>\n </button>\n <button\n type=\"button\"\n [attr.aria-label]=\"moveTopAriaLabel\"\n pButton\n pRipple\n class=\"p-button-icon-only\"\n [disabled]=\"sourceMoveDisabled()\"\n (click)=\"moveTop(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)\"\n [attr.data-pc-section]=\"'sourceMoveTopButton'\"\n >\n <AngleDoubleUpIcon *ngIf=\"!moveTopIconTemplate\" [attr.data-pc-section]=\"'movetopicon'\" />\n <ng-template *ngTemplateOutlet=\"moveTopIconTemplate\"></ng-template>\n </button>\n <button\n type=\"button\"\n [attr.aria-label]=\"moveDownAriaLabel\"\n pButton\n pRipple\n class=\"p-button-icon-only\"\n [disabled]=\"sourceMoveDisabled()\"\n (click)=\"moveDown(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)\"\n [attr.data-pc-section]=\"'sourceMoveDownButton'\"\n >\n <AngleDownIcon *ngIf=\"!moveDownIconTemplate\" [attr.data-pc-section]=\"'movedownicon'\" />\n <ng-template *ngTemplateOutlet=\"moveDownIconTemplate\"></ng-template>\n </button>\n <button\n type=\"button\"\n [attr.aria-label]=\"moveBottomAriaLabel\"\n pButton\n pRipple\n class=\"p-button-icon-only\"\n [disabled]=\"sourceMoveDisabled()\"\n (click)=\"moveBottom(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)\"\n [attr.data-pc-section]=\"'sourceMoveBottomButton'\"\n >\n <AngleDoubleDownIcon *ngIf=\"!moveBottomIconTemplate\" [attr.data-pc-section]=\"'movebottomicon'\" />\n <ng-template *ngTemplateOutlet=\"moveBottomIconTemplate\"></ng-template>\n </button>\n </div>\n <div class=\"p-picklist-list-wrapper p-picklist-source-wrapper\" [attr.data-pc-section]=\"'sourceWrapper'\" [attr.data-pc-group-section]=\"'listWrapper'\">\n <div [id]=\"idSource + '_header'\" class=\"p-picklist-header\" *ngIf=\"sourceHeader || sourceHeaderTemplate\" [attr.data-pc-section]=\"'sourceHeader'\" [attr.data-pc-group-section]=\"'header'\">\n <div class=\"p-picklist-title\" *ngIf=\"!sourceHeaderTemplate\">{{ sourceHeader }}</div>\n <ng-container *ngTemplateOutlet=\"sourceHeaderTemplate\"></ng-container>\n </div>\n <div class=\"p-picklist-filter-container\" *ngIf=\"filterBy && showSourceFilter !== false\" [attr.data-pc-section]=\"'sourceFilterContainer'\">\n <ng-container *ngIf=\"sourceFilterTemplate; else builtInSourceElement\">\n <ng-container *ngTemplateOutlet=\"sourceFilterTemplate; context: { options: sourceFilterOptions }\"></ng-container>\n </ng-container>\n <ng-template #builtInSourceElement>\n <div class=\"p-picklist-filter\" [attr.data-pc-section]=\"'sourceFilter'\">\n <input\n #sourceFilter\n type=\"text\"\n role=\"textbox\"\n (keyup)=\"onFilter($event, SOURCE_LIST)\"\n class=\"p-picklist-filter-input p-inputtext p-component\"\n [disabled]=\"disabled\"\n [attr.placeholder]=\"sourceFilterPlaceholder\"\n [attr.aria-label]=\"ariaSourceFilterLabel\"\n [attr.data-pc-section]=\"'sourceFilterInput'\"\n />\n <SearchIcon *ngIf=\"!sourceFilterIconTemplate\" [styleClass]=\"'p-picklist-filter-icon'\" [attr.data-pc-section]=\"'sourcefilterIcon'\" />\n <span class=\"p-picklist-filter-icon\" *ngIf=\"sourceFilterIconTemplate\" [attr.data-pc-section]=\"'sourcefilterIcon'\">\n <ng-template *ngTemplateOutlet=\"sourceFilterIconTemplate\"></ng-template>\n </span>\n </div>\n </ng-template>\n </div>\n\n <ul\n #sourcelist\n class=\"p-picklist-list p-picklist-source\"\n [id]=\"idSource + '_list'\"\n [attr.aria-labelledby]=\"idSource + '_header'\"\n (keydown)=\"onItemKeyDown($event, selectedItemsSource, onSourceSelect, SOURCE_LIST)\"\n (focus)=\"onListFocus($event, SOURCE_LIST)\"\n (blur)=\"onListBlur($event, SOURCE_LIST)\"\n cdkDropList\n [cdkDropListData]=\"source\"\n (cdkDropListDropped)=\"onDrop($event, SOURCE_LIST)\"\n [ngStyle]=\"sourceStyle\"\n role=\"listbox\"\n aria-multiselectable=\"true\"\n [attr.aria-activedescendant]=\"focused['sourceList'] ? focusedOptionId : undefined\"\n [attr.tabindex]=\"source && source.length > 0 ? tabindex : -1\"\n [attr.data-pc-section]=\"'sourceList'\"\n [attr.data-pc-group-section]=\"'list'\"\n >\n <ng-template ngFor let-item [ngForOf]=\"source\" [ngForTrackBy]=\"sourceTrackBy || trackBy\" let-i=\"index\" let-l=\"last\">\n <li\n [ngClass]=\"{ 'p-picklist-item': true, 'p-highlight': isSelected(item, selectedItemsSource), 'p-disabled': disabled }\"\n pRipple\n cdkDrag\n [id]=\"idSource + '_' + i\"\n [ngClass]=\"itemClass(item, idSource + '_' + i, selectedItemsSource)\"\n [cdkDragData]=\"item\"\n [cdkDragDisabled]=\"!dragdrop\"\n (click)=\"onItemClick($event, item, selectedItemsSource, SOURCE_LIST, onSourceSelect, idSource + '_' + i)\"\n (mousedown)=\"onOptionMouseDown(i, SOURCE_LIST)\"\n (dblclick)=\"onSourceItemDblClick()\"\n (touchend)=\"onItemTouchEnd()\"\n *ngIf=\"isItemVisible(item, SOURCE_LIST)\"\n role=\"option\"\n [attr.data-pc-section]=\"'item'\"\n [attr.aria-selected]=\"isSelected(item, selectedItemsSource)\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, index: i }\"></ng-container>\n </li>\n </ng-template>\n <ng-container *ngIf=\"isEmpty(SOURCE_LIST) && (emptyMessageSourceTemplate || emptyFilterMessageSourceTemplate)\">\n <li class=\"p-picklist-empty-message\" *ngIf=\"!filterValueSource || !emptyFilterMessageSourceTemplate\" [attr.data-pc-section]=\"'sourceEmptyMessage'\">\n <ng-container *ngTemplateOutlet=\"emptyMessageSourceTemplate\"></ng-container>\n </li>\n <li class=\"p-picklist-empty-message\" *ngIf=\"filterValueSource\" [attr.data-pc-section]=\"'sourceEmptyMessage'\">\n <ng-container *ngTemplateOutlet=\"emptyFilterMessageSourceTemplate\"></ng-container>\n </li>\n </ng-container>\n </ul>\n </div>\n <div class=\"p-picklist-buttons p-picklist-transfer-buttons\" [attr.data-pc-section]=\"'buttons'\" [attr.data-pc-group-section]=\"'controls'\">\n <button type=\"button\" [attr.aria-label]=\"moveToTargetAriaLabel\" pButton pRipple class=\"p-button-icon-only\" [disabled]=\"moveRightDisabled()\" (click)=\"moveRight()\" [attr.data-pc-section]=\"'moveToTargetButton'\">\n <ng-container *ngIf=\"!moveToTargetIconTemplate\">\n <AngleRightIcon *ngIf=\"!viewChanged\" [attr.data-pc-section]=\"'movetotargeticon'\" />\n <AngleDownIcon *ngIf=\"viewChanged\" [attr.data-pc-section]=\"'movetotargeticon'\" />\n </ng-container>\n <ng-template *ngTemplateOutlet=\"moveToTargetIconTemplate; context: { $implicit: viewChanged }\"></ng-template>\n </button>\n <button type=\"button\" [attr.aria-label]=\"moveAllToTargetAriaLabel\" pButton pRipple class=\"p-button-icon-only\" [disabled]=\"moveAllRightDisabled()\" (click)=\"moveAllRight()\" [attr.data-pc-section]=\"'moveAllToTargetButton'\">\n <ng-container *ngIf=\"!moveAllToTargetIconTemplate\">\n <AngleDoubleRightIcon *ngIf=\"!viewChanged\" [attr.data-pc-section]=\"'movealltotargeticon'\" />\n <AngleDoubleDownIcon *ngIf=\"viewChanged\" [attr.data-pc-section]=\"'movealltotargeticon'\" />\n </ng-container>\n <ng-template *ngTemplateOutlet=\"moveAllToTargetIconTemplate; context: { $implicit: viewChanged }\"></ng-template>\n </button>\n <button type=\"button\" [attr.aria-label]=\"moveToSourceAriaLabel\" pButton pRipple class=\"p-button-icon-only\" [disabled]=\"moveLeftDisabled()\" (click)=\"moveLeft()\" [attr.data-pc-section]=\"'moveToSourceButton'\">\n <ng-container *ngIf=\"!moveToSourceIconTemplate\">\n <AngleLeftIcon *ngIf=\"!viewChanged\" [attr.data-pc-section]=\"'movedownsourceticon'\" />\n <AngleUpIcon *ngIf=\"viewChanged\" [attr.data-pc-section]=\"'movedownsourceticon'\" />\n </ng-container>\n <ng-template *ngTemplateOutlet=\"moveToSourceIconTemplate; context: { $implicit: viewChanged }\"></ng-template>\n </button>\n <button type=\"button\" [attr.aria-label]=\"moveAllToSourceAriaLabel\" pButton pRipple class=\"p-button-icon-only\" [disabled]=\"moveAllLeftDisabled()\" (click)=\"moveAllLeft()\" [attr.data-pc-section]=\"'moveAllToSourceButton'\">\n <ng-container *ngIf=\"!moveAllToSourceIconTemplate\">\n <AngleDoubleLeftIcon *ngIf=\"!viewChanged\" [attr.data-pc-section]=\"'movealltosourceticon'\" />\n <AngleDoubleUpIcon *ngIf=\"viewChanged\" [attr.data-pc-section]=\"'movealltosourceticon'\" />\n </ng-container>\n <ng-template *ngTemplateOutlet=\"moveAllToSourceIconTemplate; context: { $implicit: viewChanged }\"></ng-template>\n </button>\n </div>\n <div class=\"p-picklist-list-wrapper p-picklist-target-wrapper\" [attr.data-pc-section]=\"'targetWrapper'\" [attr.data-pc-group-section]=\"'listwrapper'\">\n <div [id]=\"idTarget + '_header'\" class=\"p-picklist-header\" *ngIf=\"targetHeader || targetHeaderTemplate\" [attr.data-pc-section]=\"'targetHead'\" [attr.data-pc-group-section]=\"'header'\">\n <div class=\"p-picklist-title\" *ngIf=\"!targetHeaderTemplate\">{{ targetHeader }}</div>\n <ng-container *ngTemplateOutlet=\"targetHeaderTemplate\"></ng-container>\n </div>\n <div class=\"p-picklist-filter-container\" *ngIf=\"filterBy && showTargetFilter !== false\" [attr.data-pc-section]=\"'targetFilterContainer'\">\n <ng-container *ngIf=\"targetFilterTemplate; else builtInTargetElement\">\n <ng-container *ngTemplateOutlet=\"targetFilterTemplate; context: { options: targetFilterOptions }\"></ng-container>\n </ng-container>\n <ng-template #builtInTargetElement>\n <div class=\"p-picklist-filter\" [attr.data-pc-section]=\"'targetFilter'\">\n <input\n #targetFilter\n type=\"text\"\n role=\"textbox\"\n (keyup)=\"onFilter($event, TARGET_LIST)\"\n class=\"p-picklist-filter-input p-inputtext p-component\"\n [disabled]=\"disabled\"\n [attr.placeholder]=\"targetFilterPlaceholder\"\n [attr.aria-label]=\"ariaTargetFilterLabel\"\n [attr.data-pc-section]=\"'targetFilterInput'\"\n />\n <SearchIcon *ngIf=\"!targetFilterIconTemplate\" [styleClass]=\"'p-picklist-filter-icon'\" [attr.data-pc-section]=\"'targetfiltericon'\" />\n <span class=\"p-picklist-filter-icon\" *ngIf=\"targetFilterIconTemplate\" [attr.data-pc-section]=\"'targetfiltericon'\">\n <ng-template *ngTemplateOutlet=\"targetFilterIconTemplate\"></ng-template>\n </span>\n </div>\n </ng-template>\n </div>\n <ul\n #targetlist\n class=\"p-picklist-list p-picklist-target\"\n [id]=\"idTarget + '_list'\"\n [attr.aria-labelledby]=\"idTarget + '_header'\"\n (keydown)=\"onItemKeyDown($event, selectedItemsTarget, onTargetSelect, TARGET_LIST)\"\n (focus)=\"onListFocus($event, TARGET_LIST)\"\n (blur)=\"onListBlur($event, TARGET_LIST)\"\n cdkDropList\n [cdkDropListData]=\"target\"\n (cdkDropListDropped)=\"onDrop($event, TARGET_LIST)\"\n [ngStyle]=\"targetStyle\"\n role=\"listbox\"\n aria-multiselectable=\"true\"\n [attr.aria-activedescendant]=\"focused['targetList'] ? focusedOptionId : undefined\"\n [attr.tabindex]=\"target && target.length > 0 ? tabindex : -1\"\n [attr.data-pc-section]=\"'targetList'\"\n [attr.data-pc-group-section]=\"'list'\"\n >\n <ng-template ngFor let-item [ngForOf]=\"target\" [ngForTrackBy]=\"targetTrackBy || trackBy\" let-i=\"index\" let-l=\"last\">\n <li\n [ngClass]=\"{ 'p-picklist-item': true, 'p-highlight': isSelected(item, selectedItemsTarget), 'p-disabled': disabled }\"\n pRipple\n cdkDrag\n [id]=\"idTarget + '_' + i\"\n [ngClass]=\"itemClass(item, idTarget + '_' + i, selectedItemsTarget)\"\n [cdkDragData]=\"item\"\n [cdkDragDisabled]=\"!dragdrop\"\n (click)=\"onItemClick($event, item, selectedItemsTarget, TARGET_LIST, onTargetSelect, idTarget + '_' + i)\"\n (mousedown)=\"onOptionMouseDown(i, TARGET_LIST)\"\n (dblclick)=\"onTargetItemDblClick()\"\n (touchend)=\"onItemTouchEnd()\"\n *ngIf=\"isItemVisible(item, TARGET_LIST)\"\n role=\"option\"\n [attr.data-pc-section]=\"'item'\"\n [attr.aria-selected]=\"isSelected(item, selectedItemsTarget)\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, index: i }\"></ng-container>\n </li>\n </ng-template>\n <ng-container *ngIf=\"isEmpty(TARGET_LIST) && (emptyMessageTargetTemplate || emptyFilterMessageTargetTemplate)\">\n <li class=\"p-picklist-empty-message\" *ngIf=\"!filterValueTarget || !emptyFilterMessageTargetTemplate\" [attr.data-pc-section]=\"'targetEmptyMessage'\">\n <ng-container *ngTemplateOutlet=\"emptyMessageTargetTemplate\"></ng-container>\n </li>\n <li class=\"p-picklist-empty-message\" *ngIf=\"filterValueTarget\" [attr.data-pc-section]=\"'targetEmptyMessage'\">\n <ng-container *ngTemplateOutlet=\"emptyFilterMessageTargetTemplate\"></ng-container>\n </li>\n </ng-container>\n </ul>\n </div>\n <div class=\"p-picklist-buttons p-picklist-target-controls\" *ngIf=\"showTargetControls\" [attr.data-pc-section]=\"'targetControls'\" [attr.data-pc-group-section]=\"'controls'\">\n <button\n type=\"button\"\n [attr.aria-label]=\"moveUpAriaLabel\"\n pButton\n pRipple\n class=\"p-button-icon-only\"\n [disabled]=\"targetMoveDisabled()\"\n (click)=\"moveUp(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)\"\n [attr.data-pc-section]=\"'targetMoveUpButton'\"\n >\n <AngleUpIcon *ngIf=\"!moveUpIconTemplate\" [attr.data-pc-section]=\"'moveupicon'\" />\n <ng-template *ngTemplateOutlet=\"moveUpIconTemplate\"></ng-template>\n </button>\n <button\n type=\"button\"\n [attr.aria-label]=\"moveTopAriaLabel\"\n pButton\n pRipple\n class=\"p-button-icon-only\"\n [disabled]=\"targetMoveDisabled()\"\n (click)=\"moveTop(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)\"\n [attr.data-pc-section]=\"'targetMoveTopButton'\"\n >\n <AngleDoubleUpIcon *ngIf=\"!moveTopIconTemplate\" [attr.data-pc-section]=\"'movetopicon'\" />\n <ng-template *ngTemplateOutlet=\"moveTopIconTemplate\"></ng-template>\n </button>\n <button\n type=\"button\"\n [attr.aria-label]=\"moveDownAriaLabel\"\n pButton\n pRipple\n class=\"p-button-icon-only\"\n [disabled]=\"targetMoveDisabled()\"\n (click)=\"moveDown(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)\"\n [attr.data-pc-section]=\"'targetMoveDownButton'\"\n >\n <AngleDownIcon *ngIf=\"!moveDownIconTemplate\" [attr.data-pc-section]=\"'movedownicon'\" />\n <ng-template *ngTemplateOutlet=\"moveDownIconTemplate\"></ng-template>\n </button>\n <button\n type=\"button\"\n [attr.aria-label]=\"moveBottomAriaLabel\"\n pButton\n pRipple\n class=\"p-button-icon-only\"\n [disabled]=\"targetMoveDisabled()\"\n (click)=\"moveBottom(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)\"\n [attr.data-pc-section]=\"'targetMoveBottomButton'\"\n >\n <AngleDoubleDownIcon *ngIf=\"!moveBottomIconTemplate\" [attr.data-pc-section]=\"'movebottomicon'\" />\n <ng-template *ngTemplateOutlet=\"moveBottomIconTemplate\"></ng-template>\n </button>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./picklist.css'],\n host: {\n class: 'p-element'\n }\n})\nexport class PickList implements AfterViewChecked, AfterContentInit {\n /**\n * An array of objects for the source list.\n * @group Props\n */\n @Input() source: any[] | undefined;\n /**\n * An array of objects for the target list.\n * @group Props\n */\n @Input() target: any[] | undefined;\n /**\n * Text for the source list caption\n * @group Props\n */\n @Input() sourceHeader: string | undefined;\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n @Input({ transform: numberAttribute }) tabindex: number | undefined = 0;\n /**\n * Defines a string that labels the move to right button for accessibility.\n * @group Props\n */\n @Input() rightButtonAriaLabel: string | undefined;\n /**\n * Defines a string that labels the move to left button for accessibility.\n * @group Props\n */\n @Input() leftButtonAriaLabel: string | undefined;\n /**\n * Defines a string that labels the move to all right button for accessibility.\n * @group Props\n */\n @Input() allRightButtonAriaLabel: string | undefined;\n /**\n * Defines a string that labels the move to all left button for accessibility.\n * @group Props\n */\n @Input() allLeftButtonAriaLabel: string | undefined;\n /**\n * Defines a string that labels the move to up button for accessibility.\n * @group Props\n */\n @Input() upButtonAriaLabel: string | undefined;\n /**\n * Defines a string that labels the move to down button for accessibility.\n * @group Props\n */\n @Input() downButtonAriaLabel: string | undefined;\n /**\n * Defines a string that labels the move to top button for accessibility.\n * @group Props\n */\n @Input() topButtonAriaLabel: string | undefined;\n /**\n * Defines a string that labels the move to bottom button for accessibility.\n * @group Props\n */\n @Input() bottomButtonAriaLabel: string | undefined;\n /**\n * Text for the target list caption\n * @group Props\n */\n @Input() targetHeader: string | undefined;\n /**\n * When enabled orderlist adjusts its controls based on screen size.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) responsive: boolean | undefined;\n /**\n * When specified displays an input field to filter the items on keyup and decides which field to search (Accepts multiple fields with a comma).\n * @group Props\n */\n @Input() filterBy: string | undefined;\n /**\n * Locale to use in filtering. The default locale is the host environment's current locale.\n * @group Props\n */\n @Input() filterLocale: string | undefined;\n /**\n * Function to optimize the dom operations by delegating to ngForTrackBy, default algorithm checks for object identity. Use sourceTrackBy or targetTrackBy in case different algorithms are needed per list.\n * @group Props\n */\n @Input() trackBy: Function = (index: number, item: any) => item;\n /**\n * Function to optimize the dom operations by delegating to ngForTrackBy in source list, default algorithm checks for object identity.\n * @group Props\n */\n @Input() sourceTrackBy: Function | undefined;\n /**\n * Function to optimize the dom operations by delegating to ngForTrackBy in target list, default algorithm checks for object identity.\n * @group Props\n */\n @Input() targetTrackBy: Function | undefined;\n /**\n * Whether to show filter input for source list when filterBy is enabled.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showSourceFilter: boolean = true;\n /**\n * Whether to show filter input for target list when filterBy is enabled.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showTargetFilter: boolean = true;\n /**\n * Defines how multiple items can be selected, when true metaKey needs to be pressed to select or unselect an item and when set to false selection of each item can be toggled individually. On touch enabled devices, metaKeySelection is turned off automatically.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) metaKeySelection: boolean = false;\n /**\n * Whether to enable dragdrop based reordering.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) dragdrop: boolean = false;\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Inline style of the source list element.\n * @group Props\n */\n @Input() sourceStyle: any;\n /**\n * Inline style of the target list element.\n * @group Props\n */\n @Input() targetStyle: any;\n /**\n * Whether to show buttons of source list.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showSourceControls: boolean = true;\n /**\n * Whether to show buttons of target list.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showTargetControls: boolean = true;\n /**\n * Placeholder text on source filter input.\n * @group Props\n */\n @Input() sourceFilterPlaceholder: string | undefined;\n /**\n * Placeholder text on target filter input.\n * @group Props\n */\n @Input() targetFilterPlaceholder: string | undefined;\n /**\n * When present, it specifies that the component should be disabled.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) disabled: boolean = false;\n /**\n * Defines a string that labels the filter input of source list.\n * @group Props\n */\n @Input() ariaSourceFilterLabel: string | undefined;\n /**\n * Defines a string that labels the filter input of target list.\n * @group Props\n */\n @Input() ariaTargetFilterLabel: string | undefined;\n /**\n * Defines how the items are filtered.\n * @group Props\n */\n @Input() filterMatchMode: 'contains' | 'startsWith' | 'endsWith' | 'equals' | 'notEquals' | 'in' | 'lt' | 'lte' | 'gt' | 'gte' = 'contains';\n /**\n * Whether to displays rows with alternating colors.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) stripedRows: boolean | undefined;\n /**\n * Keeps selection on the transfer list.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) keepSelection: boolean = false;\n /**\n * Indicates the width of the screen at which the component should change its behavior.\n * @group Props\n */\n @Input() get breakpoint(): string {\n return this._breakpoint;\n }\n set breakpoint(value: string) {\n if (value !== this._breakpoint) {\n this._breakpoint = value;\n if (isPlatformBrowser(this.platformId)) {\n this.destroyMedia();\n this.initMedia();\n }\n }\n }\n /**\n * Callback to invoke when items are moved from target to source.\n * @param {PickListMoveToSourceEvent} event - Custom move to source event.\n * @group Emits\n */\n @Output() onMoveToSource: EventEmitter<PickListMoveToSourceEvent> = new EventEmitter<PickListMoveToSourceEvent>();\n /**\n * Callback to invoke when all items are moved from target to source.\n * @param {PickListMoveAllToSourceEvent} event - Custom move all to source event.\n * @group Emits\n */\n @Output() onMoveAllToSource: EventEmitter<PickListMoveAllToSourceEvent> = new EventEmitter<PickListMoveAllToSourceEvent>();\n /**\n * Callback to invoke when all items are moved from source to target.\n * @param {PickListMoveAllToTargetEvent} event - Custom move all to target event.\n * @group Emits\n */\n @Output() onMoveAllToTarget: EventEmitter<PickListMoveAllToTargetEvent> = new EventEmitter<PickListMoveAllToTargetEvent>();\n /**\n * Callback to invoke when items are moved from source to target.\n * @param {PickListMoveToTargetEvent} event - Custom move to target event.\n * @group Emits\n */\n @Output() onMoveToTarget: EventEmitter<PickListMoveToTargetEvent> = new EventEmitter<PickListMoveToTargetEvent>();\n /**\n * Callback to invoke when items are reordered within source list.\n * @param {PickListSourceReorderEvent} event - Custom source reorder event.\n * @group Emits\n */\n @Output() onSourceReorder: EventEmitter<PickListSourceReorderEvent> = new EventEmitter<PickListSourceReorderEvent>();\n /**\n * Callback to invoke when items are reordered within target list.\n * @param {PickListTargetReorderEvent} event - Custom target reorder event.\n * @group Emits\n */\n @Output() onTargetReorder: EventEmitter<PickListTargetReorderEvent> = new EventEmitter<PickListTargetReorderEvent>();\n /**\n * Callback to invoke when items are selected within source list.\n * @param {PickListSourceSelectEvent} event - Custom source select event.\n * @group Emits\n */\n @Output() onSourceSelect: EventEmitter<PickListSourceSelectEvent> = new EventEmitter<PickListSourceSelectEvent>();\n /**\n * Callback to invoke when items are selected within target list.\n * @param {PickListTargetSelectEvent} event - Custom target select event.\n * @group Emits\n */\n @Output() onTargetSelect: EventEmitter<PickListTargetSelectEvent> = new EventEmitter<PickListTargetSelectEvent>();\n /**\n * Callback to invoke when the source list is filtered\n * @param {PickListSourceFilterEvent} event - Custom source filter event.\n * @group Emits\n */\n @Output() onSourceFilter: EventEmitter<PickListSourceFilterEvent> = new EventEmitter<PickListSourceFilterEvent>();\n /**\n * Callback to invoke when the target list is filtered\n * @param {PickListTargetFilterEvent} event - Custom target filter event.\n * @group Emits\n */\n @Output() onTargetFilter: EventEmitter<PickListTargetFilterEvent> = new EventEmitter<PickListTargetFilterEvent>();\n\n /**\n * Callback to invoke when the list is focused\n * @param {Event} event - Browser event.\n * @group Emits\n */\n @Output() onFocus: EventEmitter<Event> = new EventEmitter<Event>();\n\n /**\n * Callback to invoke when the list is blurred\n * @param {Event} event - Browser event.\n * @group Emits\n */\n @Output() onBlur: EventEmitter<Event> = new EventEmitter<Event>();\n\n @ViewChild('sourcelist') listViewSourceChild: Nullable<ElementRef>;\n\n @ViewChild('targetlist') listViewTargetChild: Nullable<ElementRef>;\n\n @ViewChild('sourceFilter') sourceFilterViewChild: Nullable<ElementRef>;\n\n @ViewChild('targetFilter') targetFilterViewChild: Nullable<ElementRef>;\n\n @ContentChildren(PrimeTemplate) templates: Nullable<QueryList<PrimeTemplate>>;\n\n get moveUpAriaLabel() {\n return this.upButtonAriaLabel ? this.upButtonAriaLabel : this.config.translation.aria ? this.config.translation.aria.moveUp : undefined;\n }\n\n get moveTopAriaLabel() {\n return this.topButtonAriaLabel ? this.topButtonAriaLabel : this.config.translation.aria ? this.config.translation.aria.moveTop : undefined;\n }\n\n get moveDownAriaLabel() {\n return this.downButtonAriaLabel ? this.downButtonAriaLabel : this.config.translation.aria ? this.config.translation.aria.moveDown : undefined;\n }\n\n get moveBottomAriaLabel() {\n return this.bottomButtonAriaLabel ? this.bottomButtonAriaLabel : this.config.translation.aria ? this.config.translation.aria.moveDown : undefined;\n }\n\n get moveToTargetAriaLabel() {\n return this.rightButtonAriaLabel ? this.rightButtonAriaLabel : this.config.translation.aria ? this.config.translation.aria.moveToTarget : undefined;\n }\n\n get moveAllToTargetAriaLabel() {\n return this.allRightButtonAriaLabel ? this.allRightButtonAriaLabel : this.config.translation.aria ? this.config.translation.aria.moveAllToTarget : undefined;\n }\n\n get moveToSourceAriaLabel() {\n return this.leftButtonAriaLabel ? this.leftButtonAriaLabel : this.config.translation.aria ? this.config.translation.aria.moveToSource : undefined;\n }\n\n get moveAllToSourceAriaLabel() {\n return this.allLeftButtonAriaLabel ? this.allLeftButtonAriaLabel : this.config.translation.aria ? this.config.translation.aria.moveAllToSource : undefined;\n }\n\n get idSource() {\n return this.id + '_source';\n }\n\n get idTarget() {\n return this.id + '_target';\n }\n\n get focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : null;\n }\n\n _breakpoint: string = '960px';\n\n public itemTemplate: TemplateRef<any> | undefined;\n\n moveTopIconTemplate: Nullable<TemplateRef<any>>;\n\n moveUpIconTemplate: Nullable<TemplateRef<any>>;\n\n moveDownIconTemplate: Nullable<TemplateRef<any>>;\n\n moveBottomIconTemplate: Nullable<TemplateRef<any>>;\n\n moveToTargetIconTemplate: Nullable<TemplateRef<any>>;\n\n moveAllToTargetIconTemplate: Nullable<TemplateRef<any>>;\n\n moveToSourceIconTemplate: Nullable<TemplateRef<any>>;\n\n moveAllToSourceIconTemplate: Nullable<TemplateRef<any>>;\n\n targetFilterIconTemplate: Nullable<TemplateRef<any>>;\n\n sourceFilterIconTemplate: Nullable<TemplateRef<any>>;\n\n public visibleOptionsSource: any[] | undefined | null;\n\n public visibleOptionsTarget: any[] | undefined | null;\n\n selectedItemsSource: any[] = [];\n\n selectedItemsTarget: any[] = [];\n\n reorderedListElement: any;\n\n movedUp: Nullable<boolean>;\n\n movedDown: Nullable<boolean>;\n\n itemTouched: Nullable<boolean>;\n\n styleElement: any;\n\n id: string = UniqueComponentId();\n\n filterValueSource: Nullable<string>;\n\n filterValueTarget: Nullable<string>;\n\n fromListType: Nullable<number>;\n\n emptyMessageSourceTemplate: Nullable<TemplateRef<any>>;\n\n emptyFilterMessageSourceTemplate: Nullable<TemplateRef<any>>;\n\n emptyMessageTargetTemplate: Nullable<TemplateRef<any>>;\n\n emptyFilterMessageTargetTemplate: Nullable<TemplateRef<any>>;\n\n sourceHeaderTemplate: Nullable<TemplateRef<any>>;\n\n targetHeaderTemplate: Nullable<TemplateRef<any>>;\n\n sourceFilterTemplate: Nullable<TemplateRef<any>>;\n\n targetFilterTemplate: Nullable<TemplateRef<any>>;\n\n sourceFilterOptions: Nullable<PickListFilterOptions>;\n\n targetFilterOptions: Nullable<PickListFilterOptions>;\n\n readonly SOURCE_LIST: number = -1;\n\n readonly TARGET_LIST: number = 1;\n\n window: Window;\n\n media: MediaQueryList | null | undefined;\n\n viewChanged: boolean | undefined;\n\n focusedOptionIndex: any = -1;\n\n focusedOption: any | undefined;\n\n focused: any = {\n sourceList: false,\n targetList: false\n };\n\n mediaChangeListener: VoidListener;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n @Inject(PLATFORM_ID) private platformId: any,\n private renderer: Renderer2,\n public el: ElementRef,\n public cd: ChangeDetectorRef,\n public filterService: FilterService,\n public config: PrimeNGConfig\n ) {\n this.window = this.document.defaultView as Window;\n }\n\n ngOnInit() {\n if (this.responsive) {\n this.createStyle();\n this.initMedia();\n }\n\n if (this.filterBy) {\n this.sourceFilterOptions = {\n filter: (value) => this.filterSource(value),\n reset: () => this.resetSourceFilter()\n };\n\n this.targetFilterOptions = {\n filter: (value) => this.filterTarget(value),\n reset: () => this.resetTargetFilter()\n };\n }\n }\n\n ngAfterContentInit() {\n (this.templates as QueryList<PrimeTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'item':\n this.itemTemplate = item.template;\n break;\n\n case 'sourceHeader':\n this.sourceHeaderTemplate = item.template;\n break;\n\n case 'targetHeader':\n this.targetHeaderTemplate = item.template;\n break;\n\n case 'sourceFilter':\n this.sourceFilterTemplate = item.template;\n break;\n\n case 'targetFilter':\n this.targetFilterTemplate = item.template;\n break;\n\n case 'emptymessagesource':\n this.emptyMessageSourceTemplate = item.template;\n break;\n\n case 'emptyfiltermessagesource':\n this.emptyFilterMessageSourceTemplate = item.template;\n break;\n\n case 'emptymessagetarget':\n this.emptyMessageTargetTemplate = item.template;\n break;\n\n case 'emptyfiltermessagetarget':\n this.emptyFilterMessageTargetTemplate = item.template;\n break;\n\n case 'moveupicon':\n this.moveUpIconTemplate = item.template;\n break;\n\n case 'movetopicon':\n this.moveTopIconTemplate = item.template;\n break;\n\n case 'movedownicon':\n this.moveDownIconTemplate = item.template;\n break;\n\n case 'movebottomicon':\n this.moveBottomIconTemplate = item.template;\n break;\n\n case 'movetotargeticon':\n this.moveToTargetIconTemplate = item.template;\n break;\n\n case 'movealltotargeticon':\n this.moveAllToTargetIconTemplate = item.template;\n break;\n\n case 'movetosourceicon':\n this.moveToSourceIconTemplate = item.template;\n break;\n\n case 'movealltosourceicon':\n this.moveAllToSourceIconTemplate = item.template;\n break;\n\n case 'targetfiltericon':\n this.targetFilterIconTemplate = item.template;\n break;\n\n case 'sourcefiltericon':\n this.sourceFilterIconTemplate = item.template;\n break;\n\n default:\n this.itemTemplate = item.template;\n break;\n }\n });\n }\n\n ngAfterViewChecked() {\n if (this.movedUp || this.movedDown) {\n let listItems = DomHandler.find(this.reorderedListElement, 'li.p-highlight');\n let listItem;\n\n if (this.movedUp) listItem = listItems[0];\n else listItem = listItems[listItems.length - 1];\n\n DomHandler.scrollInView(this.reorderedListElement, listItem);\n this.movedUp = false;\n this.movedDown = false;\n this.reorderedListElement = null;\n }\n }\n\n onItemClick(event: Event | any, item: any, selectedItems: any[], listType: number, callback: EventEmitter<any>, itemId?: string) {\n if (this.disabled) {\n return;\n }\n\n let index = this.findIndexInList(item, selectedItems);\n if (itemId) this.focusedOptionIndex = itemId;\n let selected = index != -1;\n let metaSelection = this.itemTouched ? false : this.metaKeySelection;\n\n if (metaSelection) {\n let metaKey = (<KeyboardEvent>event).metaKey || (<KeyboardEvent>event).ctrlKey || (<KeyboardEvent>event).shiftKey;\n\n if (selected && metaKey) {\n selectedItems = selectedItems.filter((_, i) => i !== index);\n } else {\n if (!metaKey) {\n selectedItems = [];\n }\n selectedItems.push(item);\n }\n } else {\n if (selected) {\n selectedItems = selectedItems.filter((_, i) => i !== index); // Creating a new array without the selected item\n } else {\n selectedItems.push(item);\n }\n }\n this.setSelectionList(listType, selectedItems);\n callback.emit({ originalEvent: event, items: selectedItems });\n\n this.itemTouched = false;\n }\n\n onOptionMouseDown(index, listType: number) {\n this.focused[listType === this.SOURCE_LIST ? 'sourceList' : 'targetList'] = true;\n this.focusedOptionIndex = index;\n }\n\n onSourceItemDblClick() {\n if (this.disabled) {\n return;\n }\n\n this.moveRight();\n }\n\n onTargetItemDblClick() {\n if (this.disabled) {\n return;\n }\n\n this.moveLeft();\n }\n\n onFilter(event: KeyboardEvent, listType: number) {\n let query = (<HTMLInputElement>event.target).value;\n if (listType === this.SOURCE_LIST) this.filterSource(query);\n else if (listType === this.TARGET_LIST) this.filterTarget(query);\n }\n\n filterSource(value: any = '') {\n this.filterValueSource = value.trim().toLocaleLowerCase(this.filterLocale);\n this.filter(<any[]>this.source, this.SOURCE_LIST);\n }\n\n filterTarget(value: any = '') {\n this.filterValueTarget = value.trim().toLocaleLowerCase(this.filterLocale);\n this.filter(<any[]>this.target, this.TARGET_LIST);\n }\n\n filter(data: any[], listType: number) {\n let searchFields = (<string>this.filterBy).split(',');\n\n if (listType === this.SOURCE_LIST) {\n this.visibleOptionsSource = this.filterService.filter(data, searchFields, this.filterValueSource, this.filterMatchMode, this.filterLocale);\n this.onSourceFilter.emit({ query: this.filterValueSource, value: this.visibleOptionsSource });\n } else if (listType === this.TARGET_LIST) {\n this.visibleOptionsTarget = this.filterService.filter(data, searchFields, this.filterValueTarget, this.filterMatchMode, this.filterLocale);\n this.onTargetFilter.emit({ query: this.filterValueTarget, value: this.visibleOptionsTarget });\n }\n }\n\n isItemVisible(item: any, listType: number): boolean | undefined {\n if (listType == this.SOURCE_LIST) return this.isVisibleInList(<any[]>this.visibleOptionsSource, item, <string>this.filterValueSource);\n else return this.isVisibleInList(<any[]>this.visibleOptionsTarget, item, <string>this.filterValueTarget);\n }\n\n isEmpty(listType: number) {\n if (listType == this.SOURCE_LIST) return this.filterValueSource ? !this.visibleOptionsSource || this.visibleOptionsSource.length === 0 : !this.source || this.source.length === 0;\n else return this.filterValueTarget ? !this.visibleOptionsTarget || this.visibleOptionsTarget.length === 0 : !this.target || this.target.length === 0;\n }\n\n isVisibleInList(data: any[], item: any, filterValue: string): boolean | undefined {\n if (filterValue && filterValue.trim().length) {\n for (let i = 0; i < data.length; i++) {\n if (item == data[i]) {\n return true;\n }\n }\n } else {\n return true;\n }\n }\n\n onItemTouchEnd() {\n if (this.disabled) {\n return;\n }\n\n this.itemTouched = true;\n }\n\n private sortByIndexInList(items: any[], list: any) {\n return items.sort((item1, item2) => ObjectUtils.findIndexInList(item1, list) - ObjectUtils.findIndexInList(item2, list));\n }\n\n moveUp(listElement: HTMLElement, list: any[], selectedItems: any[], callback: EventEmitter<any>, listType: number) {\n if (selectedItems && selectedItems.length) {\n selectedItems = this.sortByIndexInList(selectedItems, list);\n for (let i = 0; i < selectedItems.length; i++) {\n let selectedItem = selectedItems[i];\n let selectedItemIndex: number = ObjectUtils.findIndexInList(selectedItem, list);\n\n if (selectedItemIndex != 0) {\n let movedItem = list[selectedItemIndex];\n let temp = list[selectedItemIndex - 1];\n list[selectedItemIndex - 1] = movedItem;\n list[selectedItemIndex] = temp;\n } else {\n break;\n }\n }\n\n if (this.dragdrop && ((this.filterValueSource && listType === this.SOURCE_LIST) || (this.filterValueTarget && listType === this.TARGET_LIST))) this.filter(list, listType);\n\n this.movedUp = true;\n this.reorderedListElement = listElement;\n callback.emit({ items: selectedItems });\n }\n }\n\n moveTop(listElement: HTMLElement, list: any[], selectedItems: any[], callback: EventEmitter<any>, listType: number) {\n if (selectedItems && selectedItems.length) {\n selectedItems = this.sortByIndexInList(selectedItems, list);\n for (let i = 0; i < selectedItems.length; i++) {\n let selectedItem = selectedItems[i];\n let selectedItemIndex: number = ObjectUtils.findIndexInList(selectedItem, list);\n\n if (selectedItemIndex != 0) {\n let movedItem = list.splice(selectedItemIndex, 1)[0];\n list.unshift(movedItem);\n } else {\n break;\n }\n }\n\n if (this.dragdrop && ((this.filterValueSource && listType === this.SOURCE_LIST) || (this.filterValueTarget && listType === this.TARGET_LIST))) this.filter(list, listType);\n\n listElement.scrollTop = 0;\n callback.emit({ items: selectedItems });\n }\n }\n\n moveDown(listElement: HTMLElement, list: any[], selectedItems: any[], callback: EventEmitter<any>, listType: number) {\n if (selectedItems && selectedItems.length) {\n selectedItems = this.sortByIndexInList(selectedItems, list);\n for (let i = selectedItems.length - 1; i >= 0; i--) {\n let selectedItem = selectedItems[i];\n let selectedItemIndex: number = ObjectUtils.findIndexInList(selectedItem, list);\n\n if (selectedItemIndex != list.length - 1) {\n let movedItem = list[selectedItemIndex];\n let temp = list[selectedItemIndex + 1];\n list[selectedItemIndex + 1] = movedItem;\n list[selectedItemIndex] = temp;\n } else {\n break;\n }\n }\n\n if (this.dragdrop && ((this.filterValueSource && listType === this.SOURCE_LIST) || (this.filterValueTarget && listType === this.TARGET_LIST))) this.filter(list, listType);\n\n this.movedDown = true;\n this.reorderedListElement = listElement;\n callback.emit({ items: selectedItems });\n }\n }\n\n moveBottom(listElement: HTMLElement, list: any[], selectedItems: any[], callback: EventEmitter<any>, listType: number) {\n if (selectedItems && selectedItems.length) {\n selectedItems = this.sortByIndexInList(selectedItems, list);\n for (let i = selectedItems.length - 1; i >= 0; i--) {\n let selectedItem = selectedItems[i];\n let selectedItemIndex: number = ObjectUtils.findIndexInList(selectedItem, list);\n\n if (selectedItemIndex != list.length - 1) {\n let movedItem = list.splice(selectedItemIndex, 1)[0];\n list.push(movedItem);\n } else {\n break;\n }\n }\n\n if (this.dragdrop && ((this.filterValueSource && listType === this.SOURCE_LIST) || (this.filterValueTarget && listType === this.TARGET_LIST))) this.filter(list, listType);\n\n listElement.scrollTop = listElement.scrollHeight;\n callback.emit({ items: selectedItems });\n }\n }\n\n moveRight() {\n if (this.selectedItemsSource && this.selectedItemsSource.length) {\n for (let i = 0; i < this.selectedItemsSource.length; i++) {\n let selectedItem = this.selectedItemsSource[i];\n if (ObjectUtils.findIndexInList(selectedItem, this.target) == -1) {\n this.target?.push(this.source?.splice(ObjectUtils.findIndexInList(selectedItem, this.source), 1)[0]);\n\n if (this.visibleOptionsSource?.includes(selectedItem)) {\n this.visibleOptionsSource.splice(ObjectUtils.findIndexInList(selectedItem, this.visibleOptionsSource), 1);\n }\n }\n }\n\n this.onMoveToTarget.emit({\n items: this.selectedItemsSource\n });\n\n if (this.keepSelection) {\n this.selectedItemsTarget = [...this.selectedItemsTarget, ...this.selectedItemsSource];\n }\n\n this.selectedItemsSource = [];\n\n if (this.filterValueTarget) {\n this.filter(<any[]>this.target, this.TARGET_LIST);\n }\n }\n }\n\n moveAllRight() {\n if (this.source) {\n let movedItems = [];\n\n for (let i = 0; i < this.source.length; i++) {\n if (this.isItemVisible(this.source[i], this.SOURCE_LIST)) {\n let removedItem = this.source.splice(i, 1)[0];\n this.target?.push(removedItem);\n movedItems.push(removedItem);\n i--;\n }\n }\n\n this.onMoveAllToTarget.emit({\n items: movedItems\n });\n\n if (this.keepSelection) {\n this.selectedItemsTarget = [...this.selectedItemsTarget, ...this.selectedItemsSource];\n }\n\n this.selectedItemsSource = [];\n\n if (this.filterValueTarget) {\n this.filter(<any[]>this.target, this.TARGET_LIST);\n }\n\n this.visibleOptionsSource = [];\n }\n }\n\n moveLeft() {\n if (this.selectedItemsTarget && this.selectedItemsTarget.length) {\n for (let i = 0; i < this.selectedItemsTarget.length; i++) {\n let selectedItem = this.selectedItemsTarget[i];\n if (ObjectUtils.findIndexInList(selectedItem, this.source) == -1) {\n this.source?.push(this.target?.splice(ObjectUtils.findIndexInList(selectedItem, this.target), 1)[0]);\n\n if (this.visibleOptionsTarget?.includes(selectedItem)) {\n this.visibleOptionsTarget.splice(ObjectUtils.findIndexInList(selectedItem, this.visibleOptionsTarget), 1)[0];\n }\n }\n }\n\n this.onMoveToSource.emit({\n items: this.selectedItemsTarget\n });\n\n if (this.keepSelection) {\n this.selectedItemsSource = [...this.selectedItemsSource, ...this.selectedItemsTarget];\n }\n\n this.selectedItemsTarget = [];\n\n if (this.filterValueSource) {\n this.filter(<any[]>this.source, this.SOURCE_LIST);\n }\n }\n }\n\n moveAllLeft() {\n if (this.target) {\n let movedItems = [];\n\n for (let i = 0; i < this.target.length; i++) {\n if (this.isItemVisible(this.target[i], this.TARGET_LIST)) {\n let removedItem = this.target.splice(i, 1)[0];\n this.source?.push(removedItem);\n movedItems.push(removedItem);\n i--;\n }\n }\n\n this.onMoveAllToSource.emit({\n items: movedItems\n });\n\n if (this.keepSelection) {\n this.selectedItemsSource = [...this.selectedItemsSource, ...this.selectedItemsTarget];\n }\n\n this.selectedItemsTarget = [];\n\n if (this.filterValueSource) {\n this.filter(<any[]>this.source, this.SOURCE_LIST);\n }\n\n this.visibleOptionsTarget = [];\n }\n }\n\n isSelected(item: any, selectedItems: any[]) {\n return this.findIndexInList(item, selectedItems) != -1;\n }\n\n itemClass(item, id, selectedItems) {\n return {\n 'p-picklist-item': true,\n 'p-highlight': this.isSelected(item, selectedItems),\n 'p-focus': id === this.focusedOptionId\n };\n }\n\n findIndexInList(item: any, selectedItems: any[]): number {\n return ObjectUtils.findIndexInList(item, selectedItems);\n }\n\n onDrop(event: CdkDragDrop<string[]>, listType: number) {\n let isTransfer = event.previousContainer !== event.container;\n let dropIndexes = this.getDropIndexes(event.previousIndex, event.currentIndex, listType, isTransfer, event.item.data);\n\n if (listType === this.SOURCE_LIST) {\n if (isTransfer) {\n transferArrayItem(event.previousContainer.data, event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);\n let selectedItemIndex = ObjectUtils.findIndexInList(event.item.data, this.selectedItemsTarget);\n\n if (selectedItemIndex != -1) {\n this.selectedItemsTarget.splice(selectedItemIndex, 1);\n\n if (this.keepSelection) {\n this.selectedItemsTarget.push(event.item.data);\n }\n }\n\n if (this.visibleOptionsTarget) this.visibleOptionsTarget.splice(event.previousIndex, 1);\n\n this.onMoveToSource.emit({ items: [event.item.data] });\n } else {\n moveItemInArray(event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);\n this.onSourceReorder.emit({ items: [event.item.data] });\n }\n\n if (this.filterValueSource) {\n this.filter(<any[]>this.source, this.SOURCE_LIST);\n }\n } else {\n if (isTransfer) {\n transferArrayItem(event.previousContainer.data, event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);\n\n let selectedItemIndex = ObjectUtils.findIndexInList(event.item.data, this.selectedItemsSource);\n\n if (selectedItemIndex != -1) {\n this.selectedItemsSource.splice(selectedItemIndex, 1);\n\n if (this.keepSelection) {\n this.selectedItemsTarget.push(event.item.data);\n }\n }\n\n if (this.visibleOptionsSource) this.visibleOptionsSource.splice(event.previousIndex, 1);\n\n this.onMoveToTarget.emit({ items: [event.item.data] });\n } else {\n moveItemInArray(event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);\n this.onTargetReorder.emit({ items: [event.item.data] });\n }\n\n if (this.filterValueTarget) {\n this.filter(<any[]>this.target, this.TARGET_LIST);\n }\n }\n }\n\n onListFocus(event, listType) {\n let listElement = this.getListElement(listType);\n const selectedFirstItem = DomHandler.findSingle(listElement, 'li.p-picklist-item.p-highlight') || DomHandler.findSingle(listElement, 'li.p-picklist-item');\n const findIndex = ObjectUtils.findIndexInList(selectedFirstItem, listElement.children);\n\n this.focused[listType === this.SOURCE_LIST ? 'sourceList' : 'targetList'] = true;\n const index = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : selectedFirstItem ? findIndex : -1;\n\n this.changeFocusedOptionIndex(index, listType);\n this.onFocus.emit(event);\n }\n\n onListBlur(event, listType) {\n this.focused[listType === this.SOURCE_LIST ? 'sourceList' : 'targetList'] = false;\n this.focusedOptionIndex = -1;\n this.focusedOption = null;\n this.onBlur.emit(event);\n }\n\n getListElement(listType: number) {\n return listType === this.SOURCE_LIST ? this.listViewSourceChild?.nativeElement : this.listViewTargetChild?.nativeElement;\n }\n\n getListItems(listType: number) {\n let listElemet = this.getListElement(listType);\n\n return DomHandler.find(listElemet, 'li.p-picklist-item');\n }\n\n getLatestSelectedVisibleOptionIndex(visibleList: any[], selectedItems: any[]): number {\n const latestSelectedItem = [...selectedItems].reverse().find((item) => visibleList.includes(item));\n return latestSelectedItem !== undefined ? visibleList.indexOf(latestSelectedItem) : -1;\n }\n\n getVisibleList(listType: number) {\n if (listType === this.SOURCE_LIST) {\n return this.visibleOptionsSource && this.visibleOptionsSource.length > 0 ? this.visibleOptionsSource : this.source && this.source.length > 0 ? this.source : null;\n }\n\n return this.visibleOptionsTarget && this.visibleOptionsTarget.length > 0 ? this.visibleOptionsTarget : this.target && this.target.length > 0 ? this.target : null;\n }\n\n setSelectionList(listType: number, selectedItems: any[]) {\n if (listType === this.SOURCE_LIST) {\n this.selectedItemsSource = selectedItems;\n } else {\n this.selectedItemsTarget = selectedItems;\n }\n }\n\n findNextOptionIndex(index: number, listType: number) {\n const items = this.getListItems(listType);\n\n const matchedOptionIndex = [...items].findIndex((link) => link.id === index);\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + 1 : 0;\n }\n\n findPrevOptionIndex(index: number, listType: number) {\n const items = this.getListItems(listType);\n const matchedOptionIndex = [...items].findIndex((link) => link.id === index);\n\n return matchedOptionIndex > -1 ? matchedOptionIndex - 1 : 0;\n }\n\n onItemKeyDown(event: Event | any, selectedItems: any[], callback: EventEmitter<any>, listType: number) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event, selectedItems, callback, listType);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event, selectedItems, callback, listType);\n break;\n\n case 'Home':\n this.onHomeKey(event, selectedItems, callback, listType);\n break;\n\n case 'End':\n this.onEndKey(event, selectedItems, callback, listType);\n break;\n\n case 'Enter':\n this.onEnterKey(event, selectedItems, callback, listType);\n break;\n\n case 'Space':\n this.onSpaceKey(event, selectedItems, callback, listType);\n break;\n\n case 'KeyA':\n if (event.ctrlKey) {\n this.setSelectionList(listType, this.getVisibleList(listType));\n callback.emit({ items: selectedItems });\n event.preventDefault();\n }\n\n default:\n break;\n }\n }\n\n getFocusedOption(index: number, listType: number) {\n if (index === -1) return null;\n\n if (listType === this.SOURCE_LIST) {\n return this.visibleOptionsSource && this.visibleOptionsSource.length ? this.visibleOptionsSource[index] : this.source && this.source.length ? this.source[index] : null;\n }\n\n return this.visibleOptionsTarget && this.visibleOptionsTarget.length ? this.visibleOptionsTarget[index] : this.target && this.target.length ? this.target[index] : null;\n }\n\n changeFocusedOptionIndex(index, listType) {\n const items = this.getListItems(listType);\n if (items?.length > 0) {\n let order = index >= items.length ? items.length - 1 : index < 0 ? 0 : index;\n\n this.focusedOptionIndex = items[order].getAttribute('id');\n this.focusedOption = this.getFocusedOption(order, listType);\n this.scrollInView(items[order].getAttribute('id'), listType);\n }\n }\n\n scrollInView(id, listType) {\n const element = DomHandler.findSingle(this.getListElement(listType), `li[id=\"${id}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'start' });\n }\n }\n\n onArrowDownKey(event: Event | any, selectedItems: any[], callback: EventEmitter<any>, listType: number) {\n const optionIndex = this.findNextOptionIndex(this.focusedOptionIndex, listType);\n\n this.changeFocusedOptionIndex(optionIndex, listType);\n\n if (event.shiftKey) {\n this.onEnterKey(event, selectedItems, callback, listType);\n }\n\n event.preventDefault();\n }\n\n onArrowUpKey(event: Event | any, selectedItems: any[], callback: EventEmitter<any>, listType: number) {\n const optionIndex = this.findPrevOptionIndex(this.focusedOptionIndex, listType);\n\n this.changeFocusedOptionIndex(optionIndex, listType);\n\n if (event.shiftKey) {\n this.onEnterKey(event, selectedItems, callback, listType);\n }\n\n event.preventDefault();\n }\n\n onEnterKey(event: Event | any, selectedItems: any[], callback: EventEmitter<any>, listType: number) {\n this.onItemClick(event, this.focusedOption, selectedItems, listType, callback);\n event.preventDefault();\n }\n\n onSpaceKey(event: Event | any, selectedItems: any[], callback: EventEmitter<any>, listType: number) {\n event.preventDefault();\n\n if (event.shiftKey && selectedItems && selectedItems.length > 0) {\n let visibleList = this.getVisibleList(listType);\n let lastSelectedIndex = this.getLatestSelectedVisibleOptionIndex(visibleList, selectedItems);\n\n if (lastSelectedIndex !== -1) {\n let focusedIndex = ObjectUtils.findIndexInList(this.focusedOption, visibleList);\n\n selectedItems = [...visibleList.slice(Math.min(lastSelectedIndex, focusedIndex), Math.max(lastSelectedIndex, focusedIndex) + 1)];\n this.setSelectionList(listType, selectedItems);\n\n callback.emit({ items: selectedItems });\n return;\n }\n }\n\n this.onEnterKey(event, selectedItems, callback, listType);\n }\n\n onHomeKey(event: Event | any, selectedItems: any[], callback: EventEmitter<any>, listType: number) {\n if (event.ctrlKey && event.shiftKey) {\n let visibleList = this.getVisibleList(listType);\n let focusedIndex = ObjectUtils.findIndexInList(this.focusedOption, visibleList);\n\n selectedItems = [...visibleList.slice(0, focusedIndex + 1)];\n this.setSelectionList(listType, selectedItems);\n callback.emit({ items: selectedItems });\n } else {\n this.changeFocusedOptionIndex(0, listType);\n }\n\n event.preventDefault();\n }\n\n onEndKey(event: Event | any, selectedItems: any[], callback: EventEmitter<any>, listType: number) {\n let visibleList = this.getVisibleList(listType);\n let lastIndex = visibleList && visibleList.length > 0 ? visibleList.length - 1 : null;\n if (lastIndex === null) return;\n\n if (event.ctrlKey && event.shiftKey) {\n let focusedIndex = ObjectUtils.findIndexInList(this.focusedOption, visibleList);\n selectedItems = [...visibleList.slice(focusedIndex, lastIndex)];\n\n this.setSelectionList(listType, selectedItems);\n callback.emit({ items: selectedItems });\n } else {\n this.changeFocusedOptionIndex(lastIndex, listType);\n }\n\n event.preventDefault();\n }\n\n getDropIndexes(fromIndex: number, toIndex: number, droppedList: number, isTransfer: boolean, data: any[] | any) {\n let previousIndex, currentIndex;\n\n if (droppedList === this.SOURCE_LIST) {\n previousIndex = isTransfer ? (this.filterValueTarget ? ObjectUtils.findIndexInList(data, this.target) : fromIndex) : this.filterValueSource ? ObjectUtils.findIndexInList(data, this.source) : fromIndex;\n currentIndex = this.filterValueSource ? this.findFilteredCurrentIndex(<any[]>this.visibleOptionsSource, toIndex, this.source) : toIndex;\n } else {\n previousIndex = isTransfer ? (this.filterValueSource ? ObjectUtils.findIndexInList(data, this.source) : fromIndex) : this.filterValueTarget ? ObjectUtils.findIndexInList(data, this.target) : fromIndex;\n currentIndex = this.filterValueTarget ? this.findFilteredCurrentIndex(<any[]>this.visibleOptionsTarget, toIndex, this.target) : toIndex;\n }\n\n return { previousIndex, currentIndex };\n }\n\n findFilteredCurrentIndex(visibleOptions: any[], index: number, options: any) {\n if (visibleOptions.length === index) {\n let toIndex = ObjectUtils.findIndexInList(visibleOptions[index - 1], options);\n\n return toIndex + 1;\n } else {\n return ObjectUtils.findIndexInList(visibleOptions[index], options);\n }\n }\n\n resetSourceFilter() {\n this.visibleOptionsSource = null;\n this.filterValueSource = null;\n this.sourceFilterViewChild && ((<HTMLInputElement>this.sourceFilterViewChild.nativeElement).value = '');\n }\n\n resetTargetFilter() {\n this.visibleOptionsTarget = null;\n this.filterValueTarget = null;\n this.targetFilterViewChild && ((<HTMLInputElement>this.targetFilterViewChild.nativeElement).value = '');\n }\n\n resetFilter() {\n this.resetSourceFilter();\n this.resetTargetFilter();\n }\n\n findNextItem(item: any): HTMLElement | null {\n let nextItem = item.nextElementSibling;\n\n if (nextItem) return !DomHandler.hasClass(nextItem, 'p-picklist-item') || DomHandler.isHidden(nextItem) ? this.findNextItem(nextItem) : nextItem;\n else return null;\n }\n\n findPrevItem(item: any): HTMLElement | null {\n let prevItem = item.previousElementSibling;\n\n if (prevItem) return !DomHandler.hasClass(prevItem, 'p-picklist-item') || DomHandler.isHidden(prevItem) ? this.findPrevItem(prevItem) : prevItem;\n else return null;\n }\n\n initMedia() {\n if (isPlatformBrowser(this.platformId)) {\n this.media = this.window.matchMedia(`(max-width: ${this.breakpoint})`);\n this.viewChanged = this.media.matches;\n this.bindMediaChangeListener();\n }\n }\n\n destroyMedia() {\n this.unbindMediaChangeListener();\n }\n\n bindMediaChangeListener() {\n if (this.media && !this.mediaChangeListener) {\n this.mediaChangeListener = this.renderer.listen(this.media, 'change', (event) => {\n this.viewChanged = event.matches;\n this.cd.markForCheck();\n });\n }\n }\n\n unbindMediaChangeListener() {\n if (this.mediaChangeListener) {\n this.mediaChangeListener();\n this.mediaChangeListener = null;\n }\n }\n\n createStyle() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.styleElement) {\n this.renderer.setAttribute(this.el.nativeElement.children[0], this.id, '');\n this.styleElement = this.renderer.createElement('style');\n this.renderer.setAttribute(this.styleElement, 'type', 'text/css');\n this.renderer.appendChild(this.document.head, this.styleElement);\n\n let innerHTML = `\n @media screen and (max-width: ${this.breakpoint}) {\n .p-picklist[${this.id}] {\n flex-direction: column;\n }\n\n .p-picklist[${this.id}] .p-picklist-buttons {\n padding: var(--content-padding);\n flex-direction: row;\n }\n\n .p-picklist[${this.id}] .p-picklist-buttons .p-button {\n margin-right: var(--inline-spacing);\n margin-bottom: 0;\n }\n\n .p-picklist[${this.id}] .p-picklist-buttons .p-button:last-child {\n margin-right: 0;\n }\n }`;\n\n this.renderer.setProperty(this.styleElement, 'innerHTML', innerHTML);\n }\n }\n }\n\n sourceMoveDisabled() {\n if (this.disabled || !this.selectedItemsSource.length) {\n return true;\n }\n }\n\n targetMoveDisabled() {\n if (this.disabled || !this.selectedItemsTarget.length) {\n return true;\n }\n }\n\n moveRightDisabled() {\n return this.disabled || ObjectUtils.isEmpty(this.selectedItemsSource);\n }\n\n moveLeftDisabled() {\n return this.disabled || ObjectUtils.isEmpty(this.selectedItemsTarget);\n }\n\n moveAllRightDisabled() {\n return this.disabled || ObjectUtils.isEmpty(this.source);\n }\n\n moveAllLeftDisabled() {\n return this.disabled || ObjectUtils.isEmpty(this.target);\n }\n\n destroyStyle() {\n if (this.styleElement) {\n this.renderer.removeChild(this.document.head, this.styleElement);\n this.styleElement = null;\n ``;\n }\n }\n\n ngOnDestroy() {\n this.destroyStyle();\n this.destroyMedia();\n }\n}\n\nconst DragConfig = {\n zIndex: 1200\n};\n\n@NgModule({\n imports: [CommonModule, ButtonModule, SharedModule, RippleModule, DragDropModule, AngleDoubleDownIcon, AngleDoubleLeftIcon, AngleDoubleRightIcon, AngleDoubleUpIcon, AngleDownIcon, AngleLeftIcon, AngleRightIcon, AngleUpIcon, SearchIcon, HomeIcon],\n exports: [PickList, SharedModule, DragDropModule],\n declarations: [PickList],\n providers: [{ provide: CDK_DRAG_CONFIG, useValue: DragConfig }]\n})\nexport class PickListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primeng-picklist.mjs","sources":["../../src/app/components/picklist/picklist.ts","../../src/app/components/picklist/primeng-picklist.ts"],"sourcesContent":["import { CDK_DRAG_CONFIG, CdkDragDrop, DragDropModule, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewChecked,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n NgModule,\n Output,\n PLATFORM_ID,\n QueryList,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n numberAttribute\n} from '@angular/core';\nimport { FilterService, PrimeNGConfig, PrimeTemplate, SharedModule } from 'primeng/api';\nimport { ButtonModule } from 'primeng/button';\nimport { DomHandler } from 'primeng/dom';\nimport { AngleDoubleDownIcon } from 'primeng/icons/angledoubledown';\nimport { AngleDoubleLeftIcon } from 'primeng/icons/angledoubleleft';\nimport { AngleDoubleRightIcon } from 'primeng/icons/angledoubleright';\nimport { AngleDoubleUpIcon } from 'primeng/icons/angledoubleup';\nimport { AngleDownIcon } from 'primeng/icons/angledown';\nimport { AngleLeftIcon } from 'primeng/icons/angleleft';\nimport { AngleRightIcon } from 'primeng/icons/angleright';\nimport { AngleUpIcon } from 'primeng/icons/angleup';\nimport { HomeIcon } from 'primeng/icons/home';\nimport { SearchIcon } from 'primeng/icons/search';\nimport { RippleModule } from 'primeng/ripple';\nimport { Nullable, VoidListener } from 'primeng/ts-helpers';\nimport { ObjectUtils, UniqueComponentId } from 'primeng/utils';\nimport {\n PickListFilterOptions,\n PickListMoveAllToSourceEvent,\n PickListMoveAllToTargetEvent,\n PickListMoveToSourceEvent,\n PickListMoveToTargetEvent,\n PickListSourceFilterEvent,\n PickListSourceReorderEvent,\n PickListSourceSelectEvent,\n PickListTargetFilterEvent,\n PickListTargetReorderEvent,\n PickListTargetSelectEvent\n} from './picklist.interface';\n/**\n * PickList is used to reorder items between different lists.\n * @group Components\n */\n@Component({\n selector: 'p-pickList',\n template: `\n <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'\">\n <div class=\"p-picklist-buttons p-picklist-source-controls\" *ngIf=\"showSourceControls\" [attr.data-pc-section]=\"'sourceControls'\" [attr.data-pc-group-section]=\"'controls'\">\n <button\n type=\"button\"\n [attr.aria-label]=\"moveUpAriaLabel\"\n pButton\n pRipple\n class=\"p-button-icon-only\"\n [disabled]=\"sourceMoveDisabled()\"\n (click)=\"moveUp(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)\"\n [attr.data-pc-section]=\"'sourceMoveUpButton'\"\n >\n <AngleUpIcon *ngIf=\"!moveUpIconTemplate\" [attr.data-pc-section]=\"'moveupicon'\" />\n <ng-template *ngTemplateOutlet=\"moveUpIconTemplate\"></ng-template>\n </button>\n <button\n type=\"button\"\n [attr.aria-label]=\"moveTopAriaLabel\"\n pButton\n pRipple\n class=\"p-button-icon-only\"\n [disabled]=\"sourceMoveDisabled()\"\n (click)=\"moveTop(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)\"\n [attr.data-pc-section]=\"'sourceMoveTopButton'\"\n >\n <AngleDoubleUpIcon *ngIf=\"!moveTopIconTemplate\" [attr.data-pc-section]=\"'movetopicon'\" />\n <ng-template *ngTemplateOutlet=\"moveTopIconTemplate\"></ng-template>\n </button>\n <button\n type=\"button\"\n [attr.aria-label]=\"moveDownAriaLabel\"\n pButton\n pRipple\n class=\"p-button-icon-only\"\n [disabled]=\"sourceMoveDisabled()\"\n (click)=\"moveDown(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)\"\n [attr.data-pc-section]=\"'sourceMoveDownButton'\"\n >\n <AngleDownIcon *ngIf=\"!moveDownIconTemplate\" [attr.data-pc-section]=\"'movedownicon'\" />\n <ng-template *ngTemplateOutlet=\"moveDownIconTemplate\"></ng-template>\n </button>\n <button\n type=\"button\"\n [attr.aria-label]=\"moveBottomAriaLabel\"\n pButton\n pRipple\n class=\"p-button-icon-only\"\n [disabled]=\"sourceMoveDisabled()\"\n (click)=\"moveBottom(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)\"\n [attr.data-pc-section]=\"'sourceMoveBottomButton'\"\n >\n <AngleDoubleDownIcon *ngIf=\"!moveBottomIconTemplate\" [attr.data-pc-section]=\"'movebottomicon'\" />\n <ng-template *ngTemplateOutlet=\"moveBottomIconTemplate\"></ng-template>\n </button>\n </div>\n <div class=\"p-picklist-list-wrapper p-picklist-source-wrapper\" [attr.data-pc-section]=\"'sourceWrapper'\" [attr.data-pc-group-section]=\"'listWrapper'\">\n <div [id]=\"idSource + '_header'\" class=\"p-picklist-header\" *ngIf=\"sourceHeader || sourceHeaderTemplate\" [attr.data-pc-section]=\"'sourceHeader'\" [attr.data-pc-group-section]=\"'header'\">\n <div class=\"p-picklist-title\" *ngIf=\"!sourceHeaderTemplate\">{{ sourceHeader }}</div>\n <ng-container *ngTemplateOutlet=\"sourceHeaderTemplate\"></ng-container>\n </div>\n <div class=\"p-picklist-filter-container\" *ngIf=\"filterBy && showSourceFilter !== false\" [attr.data-pc-section]=\"'sourceFilterContainer'\">\n <ng-container *ngIf=\"sourceFilterTemplate; else builtInSourceElement\">\n <ng-container *ngTemplateOutlet=\"sourceFilterTemplate; context: { options: sourceFilterOptions }\"></ng-container>\n </ng-container>\n <ng-template #builtInSourceElement>\n <div class=\"p-picklist-filter\" [attr.data-pc-section]=\"'sourceFilter'\">\n <input\n #sourceFilter\n type=\"text\"\n role=\"textbox\"\n (keyup)=\"onFilter($event, SOURCE_LIST)\"\n class=\"p-picklist-filter-input p-inputtext p-component\"\n [disabled]=\"disabled\"\n [attr.placeholder]=\"sourceFilterPlaceholder\"\n [attr.aria-label]=\"ariaSourceFilterLabel\"\n [attr.data-pc-section]=\"'sourceFilterInput'\"\n />\n <SearchIcon *ngIf=\"!sourceFilterIconTemplate\" [styleClass]=\"'p-picklist-filter-icon'\" [attr.data-pc-section]=\"'sourcefilterIcon'\" />\n <span class=\"p-picklist-filter-icon\" *ngIf=\"sourceFilterIconTemplate\" [attr.data-pc-section]=\"'sourcefilterIcon'\">\n <ng-template *ngTemplateOutlet=\"sourceFilterIconTemplate\"></ng-template>\n </span>\n </div>\n </ng-template>\n </div>\n\n <ul\n #sourcelist\n class=\"p-picklist-list p-picklist-source\"\n [id]=\"idSource + '_list'\"\n [attr.aria-labelledby]=\"idSource + '_header'\"\n (keydown)=\"onItemKeyDown($event, selectedItemsSource, onSourceSelect, SOURCE_LIST)\"\n (focus)=\"onListFocus($event, SOURCE_LIST)\"\n (blur)=\"onListBlur($event, SOURCE_LIST)\"\n cdkDropList\n [cdkDropListData]=\"source\"\n (cdkDropListDropped)=\"onDrop($event, SOURCE_LIST)\"\n [ngStyle]=\"sourceStyle\"\n role=\"listbox\"\n aria-multiselectable=\"true\"\n [attr.aria-activedescendant]=\"focused['sourceList'] ? focusedOptionId : undefined\"\n [attr.tabindex]=\"source && source.length > 0 ? tabindex : -1\"\n [attr.data-pc-section]=\"'sourceList'\"\n [attr.data-pc-group-section]=\"'list'\"\n >\n <ng-template ngFor let-item [ngForOf]=\"source\" [ngForTrackBy]=\"sourceTrackBy || trackBy\" let-i=\"index\" let-l=\"last\">\n <li\n [ngClass]=\"{ 'p-picklist-item': true, 'p-highlight': isSelected(item, selectedItemsSource), 'p-disabled': disabled }\"\n pRipple\n cdkDrag\n [id]=\"idSource + '_' + i\"\n [ngClass]=\"itemClass(item, idSource + '_' + i, selectedItemsSource)\"\n [cdkDragData]=\"item\"\n [cdkDragDisabled]=\"!dragdrop\"\n (click)=\"onItemClick($event, item, selectedItemsSource, SOURCE_LIST, onSourceSelect, idSource + '_' + i)\"\n (mousedown)=\"onOptionMouseDown(i, SOURCE_LIST)\"\n (dblclick)=\"onSourceItemDblClick()\"\n (touchend)=\"onItemTouchEnd()\"\n *ngIf=\"isItemVisible(item, SOURCE_LIST)\"\n role=\"option\"\n [attr.data-pc-section]=\"'item'\"\n [attr.aria-selected]=\"isSelected(item, selectedItemsSource)\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, index: i }\"></ng-container>\n </li>\n </ng-template>\n <ng-container *ngIf=\"isEmpty(SOURCE_LIST) && (emptyMessageSourceTemplate || emptyFilterMessageSourceTemplate)\">\n <li class=\"p-picklist-empty-message\" *ngIf=\"!filterValueSource || !emptyFilterMessageSourceTemplate\" [attr.data-pc-section]=\"'sourceEmptyMessage'\">\n <ng-container *ngTemplateOutlet=\"emptyMessageSourceTemplate\"></ng-container>\n </li>\n <li class=\"p-picklist-empty-message\" *ngIf=\"filterValueSource\" [attr.data-pc-section]=\"'sourceEmptyMessage'\">\n <ng-container *ngTemplateOutlet=\"emptyFilterMessageSourceTemplate\"></ng-container>\n </li>\n </ng-container>\n </ul>\n </div>\n <div class=\"p-picklist-buttons p-picklist-transfer-buttons\" [attr.data-pc-section]=\"'buttons'\" [attr.data-pc-group-section]=\"'controls'\">\n <button type=\"button\" [attr.aria-label]=\"moveToTargetAriaLabel\" pButton pRipple class=\"p-button-icon-only\" [disabled]=\"moveRightDisabled()\" (click)=\"moveRight()\" [attr.data-pc-section]=\"'moveToTargetButton'\">\n <ng-container *ngIf=\"!moveToTargetIconTemplate\">\n <AngleRightIcon *ngIf=\"!viewChanged\" [attr.data-pc-section]=\"'movetotargeticon'\" />\n <AngleDownIcon *ngIf=\"viewChanged\" [attr.data-pc-section]=\"'movetotargeticon'\" />\n </ng-container>\n <ng-template *ngTemplateOutlet=\"moveToTargetIconTemplate; context: { $implicit: viewChanged }\"></ng-template>\n </button>\n <button type=\"button\" [attr.aria-label]=\"moveAllToTargetAriaLabel\" pButton pRipple class=\"p-button-icon-only\" [disabled]=\"moveAllRightDisabled()\" (click)=\"moveAllRight()\" [attr.data-pc-section]=\"'moveAllToTargetButton'\">\n <ng-container *ngIf=\"!moveAllToTargetIconTemplate\">\n <AngleDoubleRightIcon *ngIf=\"!viewChanged\" [attr.data-pc-section]=\"'movealltotargeticon'\" />\n <AngleDoubleDownIcon *ngIf=\"viewChanged\" [attr.data-pc-section]=\"'movealltotargeticon'\" />\n </ng-container>\n <ng-template *ngTemplateOutlet=\"moveAllToTargetIconTemplate; context: { $implicit: viewChanged }\"></ng-template>\n </button>\n <button type=\"button\" [attr.aria-label]=\"moveToSourceAriaLabel\" pButton pRipple class=\"p-button-icon-only\" [disabled]=\"moveLeftDisabled()\" (click)=\"moveLeft()\" [attr.data-pc-section]=\"'moveToSourceButton'\">\n <ng-container *ngIf=\"!moveToSourceIconTemplate\">\n <AngleLeftIcon *ngIf=\"!viewChanged\" [attr.data-pc-section]=\"'movedownsourceticon'\" />\n <AngleUpIcon *ngIf=\"viewChanged\" [attr.data-pc-section]=\"'movedownsourceticon'\" />\n </ng-container>\n <ng-template *ngTemplateOutlet=\"moveToSourceIconTemplate; context: { $implicit: viewChanged }\"></ng-template>\n </button>\n <button type=\"button\" [attr.aria-label]=\"moveAllToSourceAriaLabel\" pButton pRipple class=\"p-button-icon-only\" [disabled]=\"moveAllLeftDisabled()\" (click)=\"moveAllLeft()\" [attr.data-pc-section]=\"'moveAllToSourceButton'\">\n <ng-container *ngIf=\"!moveAllToSourceIconTemplate\">\n <AngleDoubleLeftIcon *ngIf=\"!viewChanged\" [attr.data-pc-section]=\"'movealltosourceticon'\" />\n <AngleDoubleUpIcon *ngIf=\"viewChanged\" [attr.data-pc-section]=\"'movealltosourceticon'\" />\n </ng-container>\n <ng-template *ngTemplateOutlet=\"moveAllToSourceIconTemplate; context: { $implicit: viewChanged }\"></ng-template>\n </button>\n </div>\n <div class=\"p-picklist-list-wrapper p-picklist-target-wrapper\" [attr.data-pc-section]=\"'targetWrapper'\" [attr.data-pc-group-section]=\"'listwrapper'\">\n <div [id]=\"idTarget + '_header'\" class=\"p-picklist-header\" *ngIf=\"targetHeader || targetHeaderTemplate\" [attr.data-pc-section]=\"'targetHead'\" [attr.data-pc-group-section]=\"'header'\">\n <div class=\"p-picklist-title\" *ngIf=\"!targetHeaderTemplate\">{{ targetHeader }}</div>\n <ng-container *ngTemplateOutlet=\"targetHeaderTemplate\"></ng-container>\n </div>\n <div class=\"p-picklist-filter-container\" *ngIf=\"filterBy && showTargetFilter !== false\" [attr.data-pc-section]=\"'targetFilterContainer'\">\n <ng-container *ngIf=\"targetFilterTemplate; else builtInTargetElement\">\n <ng-container *ngTemplateOutlet=\"targetFilterTemplate; context: { options: targetFilterOptions }\"></ng-container>\n </ng-container>\n <ng-template #builtInTargetElement>\n <div class=\"p-picklist-filter\" [attr.data-pc-section]=\"'targetFilter'\">\n <input\n #targetFilter\n type=\"text\"\n role=\"textbox\"\n (keyup)=\"onFilter($event, TARGET_LIST)\"\n class=\"p-picklist-filter-input p-inputtext p-component\"\n [disabled]=\"disabled\"\n [attr.placeholder]=\"targetFilterPlaceholder\"\n [attr.aria-label]=\"ariaTargetFilterLabel\"\n [attr.data-pc-section]=\"'targetFilterInput'\"\n />\n <SearchIcon *ngIf=\"!targetFilterIconTemplate\" [styleClass]=\"'p-picklist-filter-icon'\" [attr.data-pc-section]=\"'targetfiltericon'\" />\n <span class=\"p-picklist-filter-icon\" *ngIf=\"targetFilterIconTemplate\" [attr.data-pc-section]=\"'targetfiltericon'\">\n <ng-template *ngTemplateOutlet=\"targetFilterIconTemplate\"></ng-template>\n </span>\n </div>\n </ng-template>\n </div>\n <ul\n #targetlist\n class=\"p-picklist-list p-picklist-target\"\n [id]=\"idTarget + '_list'\"\n [attr.aria-labelledby]=\"idTarget + '_header'\"\n (keydown)=\"onItemKeyDown($event, selectedItemsTarget, onTargetSelect, TARGET_LIST)\"\n (focus)=\"onListFocus($event, TARGET_LIST)\"\n (blur)=\"onListBlur($event, TARGET_LIST)\"\n cdkDropList\n [cdkDropListData]=\"target\"\n (cdkDropListDropped)=\"onDrop($event, TARGET_LIST)\"\n [ngStyle]=\"targetStyle\"\n role=\"listbox\"\n aria-multiselectable=\"true\"\n [attr.aria-activedescendant]=\"focused['targetList'] ? focusedOptionId : undefined\"\n [attr.tabindex]=\"target && target.length > 0 ? tabindex : -1\"\n [attr.data-pc-section]=\"'targetList'\"\n [attr.data-pc-group-section]=\"'list'\"\n >\n <ng-template ngFor let-item [ngForOf]=\"target\" [ngForTrackBy]=\"targetTrackBy || trackBy\" let-i=\"index\" let-l=\"last\">\n <li\n [ngClass]=\"{ 'p-picklist-item': true, 'p-highlight': isSelected(item, selectedItemsTarget), 'p-disabled': disabled }\"\n pRipple\n cdkDrag\n [id]=\"idTarget + '_' + i\"\n [ngClass]=\"itemClass(item, idTarget + '_' + i, selectedItemsTarget)\"\n [cdkDragData]=\"item\"\n [cdkDragDisabled]=\"!dragdrop\"\n (click)=\"onItemClick($event, item, selectedItemsTarget, TARGET_LIST, onTargetSelect, idTarget + '_' + i)\"\n (mousedown)=\"onOptionMouseDown(i, TARGET_LIST)\"\n (dblclick)=\"onTargetItemDblClick()\"\n (touchend)=\"onItemTouchEnd()\"\n *ngIf=\"isItemVisible(item, TARGET_LIST)\"\n role=\"option\"\n [attr.data-pc-section]=\"'item'\"\n [attr.aria-selected]=\"isSelected(item, selectedItemsTarget)\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, index: i }\"></ng-container>\n </li>\n </ng-template>\n <ng-container *ngIf=\"isEmpty(TARGET_LIST) && (emptyMessageTargetTemplate || emptyFilterMessageTargetTemplate)\">\n <li class=\"p-picklist-empty-message\" *ngIf=\"!filterValueTarget || !emptyFilterMessageTargetTemplate\" [attr.data-pc-section]=\"'targetEmptyMessage'\">\n <ng-container *ngTemplateOutlet=\"emptyMessageTargetTemplate\"></ng-container>\n </li>\n <li class=\"p-picklist-empty-message\" *ngIf=\"filterValueTarget\" [attr.data-pc-section]=\"'targetEmptyMessage'\">\n <ng-container *ngTemplateOutlet=\"emptyFilterMessageTargetTemplate\"></ng-container>\n </li>\n </ng-container>\n </ul>\n </div>\n <div class=\"p-picklist-buttons p-picklist-target-controls\" *ngIf=\"showTargetControls\" [attr.data-pc-section]=\"'targetControls'\" [attr.data-pc-group-section]=\"'controls'\">\n <button\n type=\"button\"\n [attr.aria-label]=\"moveUpAriaLabel\"\n pButton\n pRipple\n class=\"p-button-icon-only\"\n [disabled]=\"targetMoveDisabled()\"\n (click)=\"moveUp(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)\"\n [attr.data-pc-section]=\"'targetMoveUpButton'\"\n >\n <AngleUpIcon *ngIf=\"!moveUpIconTemplate\" [attr.data-pc-section]=\"'moveupicon'\" />\n <ng-template *ngTemplateOutlet=\"moveUpIconTemplate\"></ng-template>\n </button>\n <button\n type=\"button\"\n [attr.aria-label]=\"moveTopAriaLabel\"\n pButton\n pRipple\n class=\"p-button-icon-only\"\n [disabled]=\"targetMoveDisabled()\"\n (click)=\"moveTop(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)\"\n [attr.data-pc-section]=\"'targetMoveTopButton'\"\n >\n <AngleDoubleUpIcon *ngIf=\"!moveTopIconTemplate\" [attr.data-pc-section]=\"'movetopicon'\" />\n <ng-template *ngTemplateOutlet=\"moveTopIconTemplate\"></ng-template>\n </button>\n <button\n type=\"button\"\n [attr.aria-label]=\"moveDownAriaLabel\"\n pButton\n pRipple\n class=\"p-button-icon-only\"\n [disabled]=\"targetMoveDisabled()\"\n (click)=\"moveDown(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)\"\n [attr.data-pc-section]=\"'targetMoveDownButton'\"\n >\n <AngleDownIcon *ngIf=\"!moveDownIconTemplate\" [attr.data-pc-section]=\"'movedownicon'\" />\n <ng-template *ngTemplateOutlet=\"moveDownIconTemplate\"></ng-template>\n </button>\n <button\n type=\"button\"\n [attr.aria-label]=\"moveBottomAriaLabel\"\n pButton\n pRipple\n class=\"p-button-icon-only\"\n [disabled]=\"targetMoveDisabled()\"\n (click)=\"moveBottom(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)\"\n [attr.data-pc-section]=\"'targetMoveBottomButton'\"\n >\n <AngleDoubleDownIcon *ngIf=\"!moveBottomIconTemplate\" [attr.data-pc-section]=\"'movebottomicon'\" />\n <ng-template *ngTemplateOutlet=\"moveBottomIconTemplate\"></ng-template>\n </button>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./picklist.css'],\n host: {\n class: 'p-element'\n }\n})\nexport class PickList implements AfterViewChecked, AfterContentInit {\n /**\n * An array of objects for the source list.\n * @group Props\n */\n @Input() source: any[] | undefined;\n /**\n * An array of objects for the target list.\n * @group Props\n */\n @Input() target: any[] | undefined;\n /**\n * Text for the source list caption\n * @group Props\n */\n @Input() sourceHeader: string | undefined;\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n @Input({ transform: numberAttribute }) tabindex: number | undefined = 0;\n /**\n * Defines a string that labels the move to right button for accessibility.\n * @group Props\n */\n @Input() rightButtonAriaLabel: string | undefined;\n /**\n * Defines a string that labels the move to left button for accessibility.\n * @group Props\n */\n @Input() leftButtonAriaLabel: string | undefined;\n /**\n * Defines a string that labels the move to all right button for accessibility.\n * @group Props\n */\n @Input() allRightButtonAriaLabel: string | undefined;\n /**\n * Defines a string that labels the move to all left button for accessibility.\n * @group Props\n */\n @Input() allLeftButtonAriaLabel: string | undefined;\n /**\n * Defines a string that labels the move to up button for accessibility.\n * @group Props\n */\n @Input() upButtonAriaLabel: string | undefined;\n /**\n * Defines a string that labels the move to down button for accessibility.\n * @group Props\n */\n @Input() downButtonAriaLabel: string | undefined;\n /**\n * Defines a string that labels the move to top button for accessibility.\n * @group Props\n */\n @Input() topButtonAriaLabel: string | undefined;\n /**\n * Defines a string that labels the move to bottom button for accessibility.\n * @group Props\n */\n @Input() bottomButtonAriaLabel: string | undefined;\n /**\n * Text for the target list caption\n * @group Props\n */\n @Input() targetHeader: string | undefined;\n /**\n * When enabled orderlist adjusts its controls based on screen size.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) responsive: boolean | undefined;\n /**\n * When specified displays an input field to filter the items on keyup and decides which field to search (Accepts multiple fields with a comma).\n * @group Props\n */\n @Input() filterBy: string | undefined;\n /**\n * Locale to use in filtering. The default locale is the host environment's current locale.\n * @group Props\n */\n @Input() filterLocale: string | undefined;\n /**\n * Function to optimize the dom operations by delegating to ngForTrackBy, default algorithm checks for object identity. Use sourceTrackBy or targetTrackBy in case different algorithms are needed per list.\n * @group Props\n */\n @Input() trackBy: Function = (index: number, item: any) => item;\n /**\n * Function to optimize the dom operations by delegating to ngForTrackBy in source list, default algorithm checks for object identity.\n * @group Props\n */\n @Input() sourceTrackBy: Function | undefined;\n /**\n * Function to optimize the dom operations by delegating to ngForTrackBy in target list, default algorithm checks for object identity.\n * @group Props\n */\n @Input() targetTrackBy: Function | undefined;\n /**\n * Whether to show filter input for source list when filterBy is enabled.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showSourceFilter: boolean = true;\n /**\n * Whether to show filter input for target list when filterBy is enabled.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showTargetFilter: boolean = true;\n /**\n * Defines how multiple items can be selected, when true metaKey needs to be pressed to select or unselect an item and when set to false selection of each item can be toggled individually. On touch enabled devices, metaKeySelection is turned off automatically.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) metaKeySelection: boolean = false;\n /**\n * Whether to enable dragdrop based reordering.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) dragdrop: boolean = false;\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Inline style of the source list element.\n * @group Props\n */\n @Input() sourceStyle: any;\n /**\n * Inline style of the target list element.\n * @group Props\n */\n @Input() targetStyle: any;\n /**\n * Whether to show buttons of source list.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showSourceControls: boolean = true;\n /**\n * Whether to show buttons of target list.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showTargetControls: boolean = true;\n /**\n * Placeholder text on source filter input.\n * @group Props\n */\n @Input() sourceFilterPlaceholder: string | undefined;\n /**\n * Placeholder text on target filter input.\n * @group Props\n */\n @Input() targetFilterPlaceholder: string | undefined;\n /**\n * When present, it specifies that the component should be disabled.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) disabled: boolean = false;\n /**\n * Defines a string that labels the filter input of source list.\n * @group Props\n */\n @Input() ariaSourceFilterLabel: string | undefined;\n /**\n * Defines a string that labels the filter input of target list.\n * @group Props\n */\n @Input() ariaTargetFilterLabel: string | undefined;\n /**\n * Defines how the items are filtered.\n * @group Props\n */\n @Input() filterMatchMode: 'contains' | 'startsWith' | 'endsWith' | 'equals' | 'notEquals' | 'in' | 'lt' | 'lte' | 'gt' | 'gte' = 'contains';\n /**\n * Whether to displays rows with alternating colors.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) stripedRows: boolean | undefined;\n /**\n * Keeps selection on the transfer list.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) keepSelection: boolean = false;\n /**\n * Indicates the width of the screen at which the component should change its behavior.\n * @group Props\n */\n @Input() get breakpoint(): string {\n return this._breakpoint;\n }\n set breakpoint(value: string) {\n if (value !== this._breakpoint) {\n this._breakpoint = value;\n if (isPlatformBrowser(this.platformId)) {\n this.destroyMedia();\n this.initMedia();\n }\n }\n }\n /**\n * Callback to invoke when items are moved from target to source.\n * @param {PickListMoveToSourceEvent} event - Custom move to source event.\n * @group Emits\n */\n @Output() onMoveToSource: EventEmitter<PickListMoveToSourceEvent> = new EventEmitter<PickListMoveToSourceEvent>();\n /**\n * Callback to invoke when all items are moved from target to source.\n * @param {PickListMoveAllToSourceEvent} event - Custom move all to source event.\n * @group Emits\n */\n @Output() onMoveAllToSource: EventEmitter<PickListMoveAllToSourceEvent> = new EventEmitter<PickListMoveAllToSourceEvent>();\n /**\n * Callback to invoke when all items are moved from source to target.\n * @param {PickListMoveAllToTargetEvent} event - Custom move all to target event.\n * @group Emits\n */\n @Output() onMoveAllToTarget: EventEmitter<PickListMoveAllToTargetEvent> = new EventEmitter<PickListMoveAllToTargetEvent>();\n /**\n * Callback to invoke when items are moved from source to target.\n * @param {PickListMoveToTargetEvent} event - Custom move to target event.\n * @group Emits\n */\n @Output() onMoveToTarget: EventEmitter<PickListMoveToTargetEvent> = new EventEmitter<PickListMoveToTargetEvent>();\n /**\n * Callback to invoke when items are reordered within source list.\n * @param {PickListSourceReorderEvent} event - Custom source reorder event.\n * @group Emits\n */\n @Output() onSourceReorder: EventEmitter<PickListSourceReorderEvent> = new EventEmitter<PickListSourceReorderEvent>();\n /**\n * Callback to invoke when items are reordered within target list.\n * @param {PickListTargetReorderEvent} event - Custom target reorder event.\n * @group Emits\n */\n @Output() onTargetReorder: EventEmitter<PickListTargetReorderEvent> = new EventEmitter<PickListTargetReorderEvent>();\n /**\n * Callback to invoke when items are selected within source list.\n * @param {PickListSourceSelectEvent} event - Custom source select event.\n * @group Emits\n */\n @Output() onSourceSelect: EventEmitter<PickListSourceSelectEvent> = new EventEmitter<PickListSourceSelectEvent>();\n /**\n * Callback to invoke when items are selected within target list.\n * @param {PickListTargetSelectEvent} event - Custom target select event.\n * @group Emits\n */\n @Output() onTargetSelect: EventEmitter<PickListTargetSelectEvent> = new EventEmitter<PickListTargetSelectEvent>();\n /**\n * Callback to invoke when the source list is filtered\n * @param {PickListSourceFilterEvent} event - Custom source filter event.\n * @group Emits\n */\n @Output() onSourceFilter: EventEmitter<PickListSourceFilterEvent> = new EventEmitter<PickListSourceFilterEvent>();\n /**\n * Callback to invoke when the target list is filtered\n * @param {PickListTargetFilterEvent} event - Custom target filter event.\n * @group Emits\n */\n @Output() onTargetFilter: EventEmitter<PickListTargetFilterEvent> = new EventEmitter<PickListTargetFilterEvent>();\n\n /**\n * Callback to invoke when the list is focused\n * @param {Event} event - Browser event.\n * @group Emits\n */\n @Output() onFocus: EventEmitter<Event> = new EventEmitter<Event>();\n\n /**\n * Callback to invoke when the list is blurred\n * @param {Event} event - Browser event.\n * @group Emits\n */\n @Output() onBlur: EventEmitter<Event> = new EventEmitter<Event>();\n\n @ViewChild('sourcelist') listViewSourceChild: Nullable<ElementRef>;\n\n @ViewChild('targetlist') listViewTargetChild: Nullable<ElementRef>;\n\n @ViewChild('sourceFilter') sourceFilterViewChild: Nullable<ElementRef>;\n\n @ViewChild('targetFilter') targetFilterViewChild: Nullable<ElementRef>;\n\n @ContentChildren(PrimeTemplate) templates: Nullable<QueryList<PrimeTemplate>>;\n\n get moveUpAriaLabel() {\n return this.upButtonAriaLabel ? this.upButtonAriaLabel : this.config.translation.aria ? this.config.translation.aria.moveUp : undefined;\n }\n\n get moveTopAriaLabel() {\n return this.topButtonAriaLabel ? this.topButtonAriaLabel : this.config.translation.aria ? this.config.translation.aria.moveTop : undefined;\n }\n\n get moveDownAriaLabel() {\n return this.downButtonAriaLabel ? this.downButtonAriaLabel : this.config.translation.aria ? this.config.translation.aria.moveDown : undefined;\n }\n\n get moveBottomAriaLabel() {\n return this.bottomButtonAriaLabel ? this.bottomButtonAriaLabel : this.config.translation.aria ? this.config.translation.aria.moveDown : undefined;\n }\n\n get moveToTargetAriaLabel() {\n return this.rightButtonAriaLabel ? this.rightButtonAriaLabel : this.config.translation.aria ? this.config.translation.aria.moveToTarget : undefined;\n }\n\n get moveAllToTargetAriaLabel() {\n return this.allRightButtonAriaLabel ? this.allRightButtonAriaLabel : this.config.translation.aria ? this.config.translation.aria.moveAllToTarget : undefined;\n }\n\n get moveToSourceAriaLabel() {\n return this.leftButtonAriaLabel ? this.leftButtonAriaLabel : this.config.translation.aria ? this.config.translation.aria.moveToSource : undefined;\n }\n\n get moveAllToSourceAriaLabel() {\n return this.allLeftButtonAriaLabel ? this.allLeftButtonAriaLabel : this.config.translation.aria ? this.config.translation.aria.moveAllToSource : undefined;\n }\n\n get idSource() {\n return this.id + '_source';\n }\n\n get idTarget() {\n return this.id + '_target';\n }\n\n get focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : null;\n }\n\n _breakpoint: string = '960px';\n\n public itemTemplate: TemplateRef<any> | undefined;\n\n moveTopIconTemplate: Nullable<TemplateRef<any>>;\n\n moveUpIconTemplate: Nullable<TemplateRef<any>>;\n\n moveDownIconTemplate: Nullable<TemplateRef<any>>;\n\n moveBottomIconTemplate: Nullable<TemplateRef<any>>;\n\n moveToTargetIconTemplate: Nullable<TemplateRef<any>>;\n\n moveAllToTargetIconTemplate: Nullable<TemplateRef<any>>;\n\n moveToSourceIconTemplate: Nullable<TemplateRef<any>>;\n\n moveAllToSourceIconTemplate: Nullable<TemplateRef<any>>;\n\n targetFilterIconTemplate: Nullable<TemplateRef<any>>;\n\n sourceFilterIconTemplate: Nullable<TemplateRef<any>>;\n\n public visibleOptionsSource: any[] | undefined | null;\n\n public visibleOptionsTarget: any[] | undefined | null;\n\n selectedItemsSource: any[] = [];\n\n selectedItemsTarget: any[] = [];\n\n reorderedListElement: any;\n\n movedUp: Nullable<boolean>;\n\n movedDown: Nullable<boolean>;\n\n itemTouched: Nullable<boolean>;\n\n styleElement: any;\n\n id: string = UniqueComponentId();\n\n filterValueSource: Nullable<string>;\n\n filterValueTarget: Nullable<string>;\n\n fromListType: Nullable<number>;\n\n emptyMessageSourceTemplate: Nullable<TemplateRef<any>>;\n\n emptyFilterMessageSourceTemplate: Nullable<TemplateRef<any>>;\n\n emptyMessageTargetTemplate: Nullable<TemplateRef<any>>;\n\n emptyFilterMessageTargetTemplate: Nullable<TemplateRef<any>>;\n\n sourceHeaderTemplate: Nullable<TemplateRef<any>>;\n\n targetHeaderTemplate: Nullable<TemplateRef<any>>;\n\n sourceFilterTemplate: Nullable<TemplateRef<any>>;\n\n targetFilterTemplate: Nullable<TemplateRef<any>>;\n\n sourceFilterOptions: Nullable<PickListFilterOptions>;\n\n targetFilterOptions: Nullable<PickListFilterOptions>;\n\n readonly SOURCE_LIST: number = -1;\n\n readonly TARGET_LIST: number = 1;\n\n window: Window;\n\n media: MediaQueryList | null | undefined;\n\n viewChanged: boolean | undefined;\n\n focusedOptionIndex: any = -1;\n\n focusedOption: any | undefined;\n\n focused: any = {\n sourceList: false,\n targetList: false\n };\n\n mediaChangeListener: VoidListener;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n @Inject(PLATFORM_ID) private platformId: any,\n private renderer: Renderer2,\n public el: ElementRef,\n public cd: ChangeDetectorRef,\n public filterService: FilterService,\n public config: PrimeNGConfig\n ) {\n this.window = this.document.defaultView as Window;\n }\n\n ngOnInit() {\n if (this.responsive) {\n this.createStyle();\n this.initMedia();\n }\n\n if (this.filterBy) {\n this.sourceFilterOptions = {\n filter: (value) => this.filterSource(value),\n reset: () => this.resetSourceFilter()\n };\n\n this.targetFilterOptions = {\n filter: (value) => this.filterTarget(value),\n reset: () => this.resetTargetFilter()\n };\n }\n }\n\n ngAfterContentInit() {\n (this.templates as QueryList<PrimeTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'item':\n this.itemTemplate = item.template;\n break;\n\n case 'sourceHeader':\n this.sourceHeaderTemplate = item.template;\n break;\n\n case 'targetHeader':\n this.targetHeaderTemplate = item.template;\n break;\n\n case 'sourceFilter':\n this.sourceFilterTemplate = item.template;\n break;\n\n case 'targetFilter':\n this.targetFilterTemplate = item.template;\n break;\n\n case 'emptymessagesource':\n this.emptyMessageSourceTemplate = item.template;\n break;\n\n case 'emptyfiltermessagesource':\n this.emptyFilterMessageSourceTemplate = item.template;\n break;\n\n case 'emptymessagetarget':\n this.emptyMessageTargetTemplate = item.template;\n break;\n\n case 'emptyfiltermessagetarget':\n this.emptyFilterMessageTargetTemplate = item.template;\n break;\n\n case 'moveupicon':\n this.moveUpIconTemplate = item.template;\n break;\n\n case 'movetopicon':\n this.moveTopIconTemplate = item.template;\n break;\n\n case 'movedownicon':\n this.moveDownIconTemplate = item.template;\n break;\n\n case 'movebottomicon':\n this.moveBottomIconTemplate = item.template;\n break;\n\n case 'movetotargeticon':\n this.moveToTargetIconTemplate = item.template;\n break;\n\n case 'movealltotargeticon':\n this.moveAllToTargetIconTemplate = item.template;\n break;\n\n case 'movetosourceicon':\n this.moveToSourceIconTemplate = item.template;\n break;\n\n case 'movealltosourceicon':\n this.moveAllToSourceIconTemplate = item.template;\n break;\n\n case 'targetfiltericon':\n this.targetFilterIconTemplate = item.template;\n break;\n\n case 'sourcefiltericon':\n this.sourceFilterIconTemplate = item.template;\n break;\n\n default:\n this.itemTemplate = item.template;\n break;\n }\n });\n }\n\n ngAfterViewChecked() {\n if (this.movedUp || this.movedDown) {\n let listItems = DomHandler.find(this.reorderedListElement, 'li.p-highlight');\n let listItem;\n\n if (this.movedUp) listItem = listItems[0];\n else listItem = listItems[listItems.length - 1];\n\n DomHandler.scrollInView(this.reorderedListElement, listItem);\n this.movedUp = false;\n this.movedDown = false;\n this.reorderedListElement = null;\n }\n }\n\n onItemClick(event: Event | any, item: any, selectedItems: any[], listType: number, callback: EventEmitter<any>, itemId?: string) {\n if (this.disabled) {\n return;\n }\n\n let index = this.findIndexInList(item, selectedItems);\n if (itemId) this.focusedOptionIndex = itemId;\n let selected = index != -1;\n let metaSelection = this.itemTouched ? false : this.metaKeySelection;\n\n if (metaSelection) {\n let metaKey = (<KeyboardEvent>event).metaKey || (<KeyboardEvent>event).ctrlKey || (<KeyboardEvent>event).shiftKey;\n\n if (selected && metaKey) {\n selectedItems = selectedItems.filter((_, i) => i !== index);\n } else {\n if (!metaKey) {\n selectedItems = [];\n }\n selectedItems.push(item);\n }\n } else {\n if (selected) {\n selectedItems = selectedItems.filter((_, i) => i !== index); // Creating a new array without the selected item\n } else {\n selectedItems.push(item);\n }\n }\n this.setSelectionList(listType, selectedItems);\n callback.emit({ originalEvent: event, items: selectedItems });\n\n this.itemTouched = false;\n }\n\n onOptionMouseDown(index, listType: number) {\n this.focused[listType === this.SOURCE_LIST ? 'sourceList' : 'targetList'] = true;\n this.focusedOptionIndex = index;\n }\n\n onSourceItemDblClick() {\n if (this.disabled) {\n return;\n }\n\n this.moveRight();\n }\n\n onTargetItemDblClick() {\n if (this.disabled) {\n return;\n }\n\n this.moveLeft();\n }\n\n onFilter(event: KeyboardEvent, listType: number) {\n let query = (<HTMLInputElement>event.target).value;\n if (listType === this.SOURCE_LIST) this.filterSource(query);\n else if (listType === this.TARGET_LIST) this.filterTarget(query);\n }\n\n filterSource(value: any = '') {\n this.filterValueSource = value.trim().toLocaleLowerCase(this.filterLocale);\n this.filter(<any[]>this.source, this.SOURCE_LIST);\n }\n\n filterTarget(value: any = '') {\n this.filterValueTarget = value.trim().toLocaleLowerCase(this.filterLocale);\n this.filter(<any[]>this.target, this.TARGET_LIST);\n }\n\n filter(data: any[], listType: number) {\n let searchFields = (<string>this.filterBy).split(',');\n\n if (listType === this.SOURCE_LIST) {\n this.visibleOptionsSource = this.filterService.filter(data, searchFields, this.filterValueSource, this.filterMatchMode, this.filterLocale);\n this.onSourceFilter.emit({ query: this.filterValueSource, value: this.visibleOptionsSource });\n } else if (listType === this.TARGET_LIST) {\n this.visibleOptionsTarget = this.filterService.filter(data, searchFields, this.filterValueTarget, this.filterMatchMode, this.filterLocale);\n this.onTargetFilter.emit({ query: this.filterValueTarget, value: this.visibleOptionsTarget });\n }\n }\n\n isItemVisible(item: any, listType: number): boolean | undefined {\n if (listType == this.SOURCE_LIST) return this.isVisibleInList(<any[]>this.visibleOptionsSource, item, <string>this.filterValueSource);\n else return this.isVisibleInList(<any[]>this.visibleOptionsTarget, item, <string>this.filterValueTarget);\n }\n\n isEmpty(listType: number) {\n if (listType == this.SOURCE_LIST) return this.filterValueSource ? !this.visibleOptionsSource || this.visibleOptionsSource.length === 0 : !this.source || this.source.length === 0;\n else return this.filterValueTarget ? !this.visibleOptionsTarget || this.visibleOptionsTarget.length === 0 : !this.target || this.target.length === 0;\n }\n\n isVisibleInList(data: any[], item: any, filterValue: string): boolean | undefined {\n if (filterValue && filterValue.trim().length) {\n for (let i = 0; i < data.length; i++) {\n if (item == data[i]) {\n return true;\n }\n }\n } else {\n return true;\n }\n }\n\n onItemTouchEnd() {\n if (this.disabled) {\n return;\n }\n\n this.itemTouched = true;\n }\n\n private sortByIndexInList(items: any[], list: any) {\n return items.sort((item1, item2) => ObjectUtils.findIndexInList(item1, list) - ObjectUtils.findIndexInList(item2, list));\n }\n\n moveUp(listElement: HTMLElement, list: any[], selectedItems: any[], callback: EventEmitter<any>, listType: number) {\n if (selectedItems && selectedItems.length) {\n selectedItems = this.sortByIndexInList(selectedItems, list);\n for (let i = 0; i < selectedItems.length; i++) {\n let selectedItem = selectedItems[i];\n let selectedItemIndex: number = ObjectUtils.findIndexInList(selectedItem, list);\n\n if (selectedItemIndex != 0) {\n let movedItem = list[selectedItemIndex];\n let temp = list[selectedItemIndex - 1];\n list[selectedItemIndex - 1] = movedItem;\n list[selectedItemIndex] = temp;\n } else {\n break;\n }\n }\n\n if (this.dragdrop && ((this.filterValueSource && listType === this.SOURCE_LIST) || (this.filterValueTarget && listType === this.TARGET_LIST))) this.filter(list, listType);\n\n this.movedUp = true;\n this.reorderedListElement = listElement;\n callback.emit({ items: selectedItems });\n }\n }\n\n moveTop(listElement: HTMLElement, list: any[], selectedItems: any[], callback: EventEmitter<any>, listType: number) {\n if (selectedItems && selectedItems.length) {\n selectedItems = this.sortByIndexInList(selectedItems, list);\n for (let i = 0; i < selectedItems.length; i++) {\n let selectedItem = selectedItems[i];\n let selectedItemIndex: number = ObjectUtils.findIndexInList(selectedItem, list);\n\n if (selectedItemIndex != 0) {\n let movedItem = list.splice(selectedItemIndex, 1)[0];\n list.unshift(movedItem);\n } else {\n break;\n }\n }\n\n if (this.dragdrop && ((this.filterValueSource && listType === this.SOURCE_LIST) || (this.filterValueTarget && listType === this.TARGET_LIST))) this.filter(list, listType);\n\n listElement.scrollTop = 0;\n callback.emit({ items: selectedItems });\n }\n }\n\n moveDown(listElement: HTMLElement, list: any[], selectedItems: any[], callback: EventEmitter<any>, listType: number) {\n if (selectedItems && selectedItems.length) {\n selectedItems = this.sortByIndexInList(selectedItems, list);\n for (let i = selectedItems.length - 1; i >= 0; i--) {\n let selectedItem = selectedItems[i];\n let selectedItemIndex: number = ObjectUtils.findIndexInList(selectedItem, list);\n\n if (selectedItemIndex != list.length - 1) {\n let movedItem = list[selectedItemIndex];\n let temp = list[selectedItemIndex + 1];\n list[selectedItemIndex + 1] = movedItem;\n list[selectedItemIndex] = temp;\n } else {\n break;\n }\n }\n\n if (this.dragdrop && ((this.filterValueSource && listType === this.SOURCE_LIST) || (this.filterValueTarget && listType === this.TARGET_LIST))) this.filter(list, listType);\n\n this.movedDown = true;\n this.reorderedListElement = listElement;\n callback.emit({ items: selectedItems });\n }\n }\n\n moveBottom(listElement: HTMLElement, list: any[], selectedItems: any[], callback: EventEmitter<any>, listType: number) {\n if (selectedItems && selectedItems.length) {\n selectedItems = this.sortByIndexInList(selectedItems, list);\n for (let i = selectedItems.length - 1; i >= 0; i--) {\n let selectedItem = selectedItems[i];\n let selectedItemIndex: number = ObjectUtils.findIndexInList(selectedItem, list);\n\n if (selectedItemIndex != list.length - 1) {\n let movedItem = list.splice(selectedItemIndex, 1)[0];\n list.push(movedItem);\n } else {\n break;\n }\n }\n\n if (this.dragdrop && ((this.filterValueSource && listType === this.SOURCE_LIST) || (this.filterValueTarget && listType === this.TARGET_LIST))) this.filter(list, listType);\n\n listElement.scrollTop = listElement.scrollHeight;\n callback.emit({ items: selectedItems });\n }\n }\n\n moveRight() {\n if (this.selectedItemsSource && this.selectedItemsSource.length) {\n for (let i = 0; i < this.selectedItemsSource.length; i++) {\n let selectedItem = this.selectedItemsSource[i];\n if (ObjectUtils.findIndexInList(selectedItem, this.target) == -1) {\n this.target?.push(this.source?.splice(ObjectUtils.findIndexInList(selectedItem, this.source), 1)[0]);\n\n if (this.visibleOptionsSource?.includes(selectedItem)) {\n this.visibleOptionsSource.splice(ObjectUtils.findIndexInList(selectedItem, this.visibleOptionsSource), 1);\n }\n }\n }\n\n this.onMoveToTarget.emit({\n items: this.selectedItemsSource\n });\n\n if (this.keepSelection) {\n this.selectedItemsTarget = [...this.selectedItemsTarget, ...this.selectedItemsSource];\n }\n\n this.selectedItemsSource = [];\n\n if (this.filterValueTarget) {\n this.filter(<any[]>this.target, this.TARGET_LIST);\n }\n }\n }\n\n moveAllRight() {\n if (this.source) {\n let movedItems = [];\n\n for (let i = 0; i < this.source.length; i++) {\n if (this.isItemVisible(this.source[i], this.SOURCE_LIST)) {\n let removedItem = this.source.splice(i, 1)[0];\n this.target?.push(removedItem);\n movedItems.push(removedItem);\n i--;\n }\n }\n\n this.onMoveAllToTarget.emit({\n items: movedItems\n });\n\n if (this.keepSelection) {\n this.selectedItemsTarget = [...this.selectedItemsTarget, ...this.selectedItemsSource];\n }\n\n this.selectedItemsSource = [];\n\n if (this.filterValueTarget) {\n this.filter(<any[]>this.target, this.TARGET_LIST);\n }\n\n this.visibleOptionsSource = [];\n }\n }\n\n moveLeft() {\n if (this.selectedItemsTarget && this.selectedItemsTarget.length) {\n for (let i = 0; i < this.selectedItemsTarget.length; i++) {\n let selectedItem = this.selectedItemsTarget[i];\n if (ObjectUtils.findIndexInList(selectedItem, this.source) == -1) {\n this.source?.push(this.target?.splice(ObjectUtils.findIndexInList(selectedItem, this.target), 1)[0]);\n\n if (this.visibleOptionsTarget?.includes(selectedItem)) {\n this.visibleOptionsTarget.splice(ObjectUtils.findIndexInList(selectedItem, this.visibleOptionsTarget), 1)[0];\n }\n }\n }\n\n this.onMoveToSource.emit({\n items: this.selectedItemsTarget\n });\n\n if (this.keepSelection) {\n this.selectedItemsSource = [...this.selectedItemsSource, ...this.selectedItemsTarget];\n }\n\n this.selectedItemsTarget = [];\n\n if (this.filterValueSource) {\n this.filter(<any[]>this.source, this.SOURCE_LIST);\n }\n }\n }\n\n moveAllLeft() {\n if (this.target) {\n let movedItems = [];\n\n for (let i = 0; i < this.target.length; i++) {\n if (this.isItemVisible(this.target[i], this.TARGET_LIST)) {\n let removedItem = this.target.splice(i, 1)[0];\n this.source?.push(removedItem);\n movedItems.push(removedItem);\n i--;\n }\n }\n\n this.onMoveAllToSource.emit({\n items: movedItems\n });\n\n if (this.keepSelection) {\n this.selectedItemsSource = [...this.selectedItemsSource, ...this.selectedItemsTarget];\n }\n\n this.selectedItemsTarget = [];\n\n if (this.filterValueSource) {\n this.filter(<any[]>this.source, this.SOURCE_LIST);\n }\n\n this.visibleOptionsTarget = [];\n }\n }\n\n isSelected(item: any, selectedItems: any[]) {\n return this.findIndexInList(item, selectedItems) != -1;\n }\n\n itemClass(item, id, selectedItems) {\n return {\n 'p-picklist-item': true,\n 'p-highlight': this.isSelected(item, selectedItems),\n 'p-focus': id === this.focusedOptionId\n };\n }\n\n findIndexInList(item: any, selectedItems: any[]): number {\n return ObjectUtils.findIndexInList(item, selectedItems);\n }\n\n onDrop(event: CdkDragDrop<string[]>, listType: number) {\n let isTransfer = event.previousContainer !== event.container;\n let dropIndexes = this.getDropIndexes(event.previousIndex, event.currentIndex, listType, isTransfer, event.item.data);\n\n if (listType === this.SOURCE_LIST) {\n if (isTransfer) {\n transferArrayItem(event.previousContainer.data, event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);\n let selectedItemIndex = ObjectUtils.findIndexInList(event.item.data, this.selectedItemsTarget);\n\n if (selectedItemIndex != -1) {\n this.selectedItemsTarget.splice(selectedItemIndex, 1);\n\n if (this.keepSelection) {\n this.selectedItemsTarget.push(event.item.data);\n }\n }\n\n if (this.visibleOptionsTarget) this.visibleOptionsTarget.splice(event.previousIndex, 1);\n\n this.onMoveToSource.emit({ items: [event.item.data] });\n } else {\n moveItemInArray(event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);\n this.onSourceReorder.emit({ items: [event.item.data] });\n }\n\n if (this.filterValueSource) {\n this.filter(<any[]>this.source, this.SOURCE_LIST);\n }\n } else {\n if (isTransfer) {\n transferArrayItem(event.previousContainer.data, event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);\n\n let selectedItemIndex = ObjectUtils.findIndexInList(event.item.data, this.selectedItemsSource);\n\n if (selectedItemIndex != -1) {\n this.selectedItemsSource.splice(selectedItemIndex, 1);\n\n if (this.keepSelection) {\n this.selectedItemsTarget.push(event.item.data);\n }\n }\n\n if (this.visibleOptionsSource) this.visibleOptionsSource.splice(event.previousIndex, 1);\n\n this.onMoveToTarget.emit({ items: [event.item.data] });\n } else {\n moveItemInArray(event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);\n this.onTargetReorder.emit({ items: [event.item.data] });\n }\n\n if (this.filterValueTarget) {\n this.filter(<any[]>this.target, this.TARGET_LIST);\n }\n }\n }\n\n onListFocus(event, listType) {\n let listElement = this.getListElement(listType);\n const selectedFirstItem = DomHandler.findSingle(listElement, 'li.p-picklist-item.p-highlight') || DomHandler.findSingle(listElement, 'li.p-picklist-item');\n const findIndex = ObjectUtils.findIndexInList(selectedFirstItem, listElement.children);\n this.focused[listType === this.SOURCE_LIST ? 'sourceList' : 'targetList'] = true;\n\n const sourceIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : selectedFirstItem ? findIndex : -1;\n const filteredIndex = this.findIndexInList(this.source[sourceIndex], this.visibleOptionsSource);\n\n this.changeFocusedOptionIndex(filteredIndex, listType);\n this.onFocus.emit(event);\n }\n\n onListBlur(event, listType) {\n this.focused[listType === this.SOURCE_LIST ? 'sourceList' : 'targetList'] = false;\n this.focusedOptionIndex = -1;\n this.focusedOption = null;\n this.onBlur.emit(event);\n }\n\n getListElement(listType: number) {\n return listType === this.SOURCE_LIST ? this.listViewSourceChild?.nativeElement : this.listViewTargetChild?.nativeElement;\n }\n\n getListItems(listType: number) {\n let listElemet = this.getListElement(listType);\n\n return DomHandler.find(listElemet, 'li.p-picklist-item');\n }\n\n getLatestSelectedVisibleOptionIndex(visibleList: any[], selectedItems: any[]): number {\n const latestSelectedItem = [...selectedItems].reverse().find((item) => visibleList.includes(item));\n return latestSelectedItem !== undefined ? visibleList.indexOf(latestSelectedItem) : -1;\n }\n\n getVisibleList(listType: number) {\n if (listType === this.SOURCE_LIST) {\n return this.visibleOptionsSource && this.visibleOptionsSource.length > 0 ? this.visibleOptionsSource : this.source && this.source.length > 0 ? this.source : null;\n }\n\n return this.visibleOptionsTarget && this.visibleOptionsTarget.length > 0 ? this.visibleOptionsTarget : this.target && this.target.length > 0 ? this.target : null;\n }\n\n setSelectionList(listType: number, selectedItems: any[]) {\n if (listType === this.SOURCE_LIST) {\n this.selectedItemsSource = selectedItems;\n } else {\n this.selectedItemsTarget = selectedItems;\n }\n }\n\n findNextOptionIndex(index: number, listType: number) {\n const items = this.getListItems(listType);\n\n const matchedOptionIndex = [...items].findIndex((link) => link.id === index);\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + 1 : 0;\n }\n\n findPrevOptionIndex(index: number, listType: number) {\n const items = this.getListItems(listType);\n const matchedOptionIndex = [...items].findIndex((link) => link.id === index);\n\n return matchedOptionIndex > -1 ? matchedOptionIndex - 1 : 0;\n }\n\n onItemKeyDown(event: Event | any, selectedItems: any[], callback: EventEmitter<any>, listType: number) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event, selectedItems, callback, listType);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event, selectedItems, callback, listType);\n break;\n\n case 'Home':\n this.onHomeKey(event, selectedItems, callback, listType);\n break;\n\n case 'End':\n this.onEndKey(event, selectedItems, callback, listType);\n break;\n\n case 'Enter':\n this.onEnterKey(event, selectedItems, callback, listType);\n break;\n\n case 'Space':\n this.onSpaceKey(event, selectedItems, callback, listType);\n break;\n\n case 'KeyA':\n if (event.ctrlKey) {\n this.setSelectionList(listType, this.getVisibleList(listType));\n callback.emit({ items: selectedItems });\n event.preventDefault();\n }\n\n default:\n break;\n }\n }\n\n getFocusedOption(index: number, listType: number) {\n if (index === -1) return null;\n\n if (listType === this.SOURCE_LIST) {\n return this.visibleOptionsSource && this.visibleOptionsSource.length ? this.visibleOptionsSource[index] : this.source && this.source.length ? this.source[index] : null;\n }\n\n return this.visibleOptionsTarget && this.visibleOptionsTarget.length ? this.visibleOptionsTarget[index] : this.target && this.target.length ? this.target[index] : null;\n }\n\n changeFocusedOptionIndex(index, listType) {\n const items = this.getListItems(listType);\n if (items?.length > 0) {\n let order = index >= items.length ? items.length - 1 : index < 0 ? 0 : index;\n\n this.focusedOptionIndex = items[order].getAttribute('id');\n this.focusedOption = this.getFocusedOption(order, listType);\n this.scrollInView(items[order].getAttribute('id'), listType);\n }\n }\n\n scrollInView(id, listType) {\n const element = DomHandler.findSingle(this.getListElement(listType), `li[id=\"${id}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'start' });\n }\n }\n\n onArrowDownKey(event: Event | any, selectedItems: any[], callback: EventEmitter<any>, listType: number) {\n const optionIndex = this.findNextOptionIndex(this.focusedOptionIndex, listType);\n\n this.changeFocusedOptionIndex(optionIndex, listType);\n\n if (event.shiftKey) {\n this.onEnterKey(event, selectedItems, callback, listType);\n }\n\n event.preventDefault();\n }\n\n onArrowUpKey(event: Event | any, selectedItems: any[], callback: EventEmitter<any>, listType: number) {\n const optionIndex = this.findPrevOptionIndex(this.focusedOptionIndex, listType);\n\n this.changeFocusedOptionIndex(optionIndex, listType);\n\n if (event.shiftKey) {\n this.onEnterKey(event, selectedItems, callback, listType);\n }\n\n event.preventDefault();\n }\n\n onEnterKey(event: Event | any, selectedItems: any[], callback: EventEmitter<any>, listType: number) {\n this.onItemClick(event, this.focusedOption, selectedItems, listType, callback);\n event.preventDefault();\n }\n\n onSpaceKey(event: Event | any, selectedItems: any[], callback: EventEmitter<any>, listType: number) {\n event.preventDefault();\n\n if (event.shiftKey && selectedItems && selectedItems.length > 0) {\n let visibleList = this.getVisibleList(listType);\n let lastSelectedIndex = this.getLatestSelectedVisibleOptionIndex(visibleList, selectedItems);\n\n if (lastSelectedIndex !== -1) {\n let focusedIndex = ObjectUtils.findIndexInList(this.focusedOption, visibleList);\n\n selectedItems = [...visibleList.slice(Math.min(lastSelectedIndex, focusedIndex), Math.max(lastSelectedIndex, focusedIndex) + 1)];\n this.setSelectionList(listType, selectedItems);\n\n callback.emit({ items: selectedItems });\n return;\n }\n }\n\n this.onEnterKey(event, selectedItems, callback, listType);\n }\n\n onHomeKey(event: Event | any, selectedItems: any[], callback: EventEmitter<any>, listType: number) {\n if (event.ctrlKey && event.shiftKey) {\n let visibleList = this.getVisibleList(listType);\n let focusedIndex = ObjectUtils.findIndexInList(this.focusedOption, visibleList);\n\n selectedItems = [...visibleList.slice(0, focusedIndex + 1)];\n this.setSelectionList(listType, selectedItems);\n callback.emit({ items: selectedItems });\n } else {\n this.changeFocusedOptionIndex(0, listType);\n }\n\n event.preventDefault();\n }\n\n onEndKey(event: Event | any, selectedItems: any[], callback: EventEmitter<any>, listType: number) {\n let visibleList = this.getVisibleList(listType);\n let lastIndex = visibleList && visibleList.length > 0 ? visibleList.length - 1 : null;\n if (lastIndex === null) return;\n\n if (event.ctrlKey && event.shiftKey) {\n let focusedIndex = ObjectUtils.findIndexInList(this.focusedOption, visibleList);\n selectedItems = [...visibleList.slice(focusedIndex, lastIndex)];\n\n this.setSelectionList(listType, selectedItems);\n callback.emit({ items: selectedItems });\n } else {\n this.changeFocusedOptionIndex(lastIndex, listType);\n }\n\n event.preventDefault();\n }\n\n getDropIndexes(fromIndex: number, toIndex: number, droppedList: number, isTransfer: boolean, data: any[] | any) {\n let previousIndex, currentIndex;\n\n if (droppedList === this.SOURCE_LIST) {\n previousIndex = isTransfer ? (this.filterValueTarget ? ObjectUtils.findIndexInList(data, this.target) : fromIndex) : this.filterValueSource ? ObjectUtils.findIndexInList(data, this.source) : fromIndex;\n currentIndex = this.filterValueSource ? this.findFilteredCurrentIndex(<any[]>this.visibleOptionsSource, toIndex, this.source) : toIndex;\n } else {\n previousIndex = isTransfer ? (this.filterValueSource ? ObjectUtils.findIndexInList(data, this.source) : fromIndex) : this.filterValueTarget ? ObjectUtils.findIndexInList(data, this.target) : fromIndex;\n currentIndex = this.filterValueTarget ? this.findFilteredCurrentIndex(<any[]>this.visibleOptionsTarget, toIndex, this.target) : toIndex;\n }\n\n return { previousIndex, currentIndex };\n }\n\n findFilteredCurrentIndex(visibleOptions: any[], index: number, options: any) {\n if (visibleOptions.length === index) {\n let toIndex = ObjectUtils.findIndexInList(visibleOptions[index - 1], options);\n\n return toIndex + 1;\n } else {\n return ObjectUtils.findIndexInList(visibleOptions[index], options);\n }\n }\n\n resetSourceFilter() {\n this.visibleOptionsSource = null;\n this.filterValueSource = null;\n this.sourceFilterViewChild && ((<HTMLInputElement>this.sourceFilterViewChild.nativeElement).value = '');\n }\n\n resetTargetFilter() {\n this.visibleOptionsTarget = null;\n this.filterValueTarget = null;\n this.targetFilterViewChild && ((<HTMLInputElement>this.targetFilterViewChild.nativeElement).value = '');\n }\n\n resetFilter() {\n this.resetSourceFilter();\n this.resetTargetFilter();\n }\n\n findNextItem(item: any): HTMLElement | null {\n let nextItem = item.nextElementSibling;\n\n if (nextItem) return !DomHandler.hasClass(nextItem, 'p-picklist-item') || DomHandler.isHidden(nextItem) ? this.findNextItem(nextItem) : nextItem;\n else return null;\n }\n\n findPrevItem(item: any): HTMLElement | null {\n let prevItem = item.previousElementSibling;\n\n if (prevItem) return !DomHandler.hasClass(prevItem, 'p-picklist-item') || DomHandler.isHidden(prevItem) ? this.findPrevItem(prevItem) : prevItem;\n else return null;\n }\n\n initMedia() {\n if (isPlatformBrowser(this.platformId)) {\n this.media = this.window.matchMedia(`(max-width: ${this.breakpoint})`);\n this.viewChanged = this.media.matches;\n this.bindMediaChangeListener();\n }\n }\n\n destroyMedia() {\n this.unbindMediaChangeListener();\n }\n\n bindMediaChangeListener() {\n if (this.media && !this.mediaChangeListener) {\n this.mediaChangeListener = this.renderer.listen(this.media, 'change', (event) => {\n this.viewChanged = event.matches;\n this.cd.markForCheck();\n });\n }\n }\n\n unbindMediaChangeListener() {\n if (this.mediaChangeListener) {\n this.mediaChangeListener();\n this.mediaChangeListener = null;\n }\n }\n\n createStyle() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.styleElement) {\n this.renderer.setAttribute(this.el.nativeElement.children[0], this.id, '');\n this.styleElement = this.renderer.createElement('style');\n this.renderer.setAttribute(this.styleElement, 'type', 'text/css');\n this.renderer.appendChild(this.document.head, this.styleElement);\n\n let innerHTML = `\n @media screen and (max-width: ${this.breakpoint}) {\n .p-picklist[${this.id}] {\n flex-direction: column;\n }\n\n .p-picklist[${this.id}] .p-picklist-buttons {\n padding: var(--content-padding);\n flex-direction: row;\n }\n\n .p-picklist[${this.id}] .p-picklist-buttons .p-button {\n margin-right: var(--inline-spacing);\n margin-bottom: 0;\n }\n\n .p-picklist[${this.id}] .p-picklist-buttons .p-button:last-child {\n margin-right: 0;\n }\n }`;\n\n this.renderer.setProperty(this.styleElement, 'innerHTML', innerHTML);\n }\n }\n }\n\n sourceMoveDisabled() {\n if (this.disabled || !this.selectedItemsSource.length) {\n return true;\n }\n }\n\n targetMoveDisabled() {\n if (this.disabled || !this.selectedItemsTarget.length) {\n return true;\n }\n }\n\n moveRightDisabled() {\n return this.disabled || ObjectUtils.isEmpty(this.selectedItemsSource);\n }\n\n moveLeftDisabled() {\n return this.disabled || ObjectUtils.isEmpty(this.selectedItemsTarget);\n }\n\n moveAllRightDisabled() {\n return this.disabled || ObjectUtils.isEmpty(this.source);\n }\n\n moveAllLeftDisabled() {\n return this.disabled || ObjectUtils.isEmpty(this.target);\n }\n\n destroyStyle() {\n if (this.styleElement) {\n this.renderer.removeChild(this.document.head, this.styleElement);\n this.styleElement = null;\n ``;\n }\n }\n\n ngOnDestroy() {\n this.destroyStyle();\n this.destroyMedia();\n }\n}\n\nconst DragConfig = {\n zIndex: 1200\n};\n\n@NgModule({\n imports: [CommonModule, ButtonModule, SharedModule, RippleModule, DragDropModule, AngleDoubleDownIcon, AngleDoubleLeftIcon, AngleDoubleRightIcon, AngleDoubleUpIcon, AngleDownIcon, AngleLeftIcon, AngleRightIcon, AngleUpIcon, SearchIcon, HomeIcon],\n exports: [PickList, SharedModule, DragDropModule],\n declarations: [PickList],\n providers: [{ provide: CDK_DRAG_CONFIG, useValue: DragConfig }]\n})\nexport class PickListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}