primeng 11.3.1 → 11.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (375) hide show
  1. package/README.md +3 -2
  2. package/api/primeng-api.metadata.json +1 -1
  3. package/api/translation.d.ts +2 -0
  4. package/api/translationkeys.d.ts +2 -0
  5. package/autocomplete/autocomplete.d.ts +15 -2
  6. package/autocomplete/primeng-autocomplete.metadata.json +1 -1
  7. package/bundles/primeng-api.umd.js +19 -12
  8. package/bundles/primeng-api.umd.js.map +1 -1
  9. package/bundles/primeng-api.umd.min.js +1 -1
  10. package/bundles/primeng-api.umd.min.js.map +1 -1
  11. package/bundles/primeng-autocomplete.umd.js +65 -30
  12. package/bundles/primeng-autocomplete.umd.js.map +1 -1
  13. package/bundles/primeng-autocomplete.umd.min.js +2 -2
  14. package/bundles/primeng-autocomplete.umd.min.js.map +1 -1
  15. package/bundles/primeng-button.umd.js +71 -15
  16. package/bundles/primeng-button.umd.js.map +1 -1
  17. package/bundles/primeng-button.umd.min.js +1 -1
  18. package/bundles/primeng-button.umd.min.js.map +1 -1
  19. package/bundles/primeng-calendar.umd.js +25 -14
  20. package/bundles/primeng-calendar.umd.js.map +1 -1
  21. package/bundles/primeng-calendar.umd.min.js +2 -2
  22. package/bundles/primeng-calendar.umd.min.js.map +1 -1
  23. package/bundles/primeng-carousel.umd.js +24 -13
  24. package/bundles/primeng-carousel.umd.js.map +1 -1
  25. package/bundles/primeng-carousel.umd.min.js +1 -1
  26. package/bundles/primeng-carousel.umd.min.js.map +1 -1
  27. package/bundles/primeng-cascadeselect.umd.js +14 -12
  28. package/bundles/primeng-cascadeselect.umd.js.map +1 -1
  29. package/bundles/primeng-cascadeselect.umd.min.js +1 -1
  30. package/bundles/primeng-cascadeselect.umd.min.js.map +1 -1
  31. package/bundles/primeng-checkbox.umd.js +14 -11
  32. package/bundles/primeng-checkbox.umd.js.map +1 -1
  33. package/bundles/primeng-checkbox.umd.min.js.map +1 -1
  34. package/bundles/primeng-chips.umd.js +14 -11
  35. package/bundles/primeng-chips.umd.js.map +1 -1
  36. package/bundles/primeng-chips.umd.min.js.map +1 -1
  37. package/bundles/primeng-confirmdialog.umd.js +19 -7
  38. package/bundles/primeng-confirmdialog.umd.js.map +1 -1
  39. package/bundles/primeng-confirmdialog.umd.min.js +1 -1
  40. package/bundles/primeng-confirmdialog.umd.min.js.map +1 -1
  41. package/bundles/primeng-contextmenu.umd.js +15 -12
  42. package/bundles/primeng-contextmenu.umd.js.map +1 -1
  43. package/bundles/primeng-contextmenu.umd.min.js +1 -1
  44. package/bundles/primeng-contextmenu.umd.min.js.map +1 -1
  45. package/bundles/primeng-dataview.umd.js +25 -4
  46. package/bundles/primeng-dataview.umd.js.map +1 -1
  47. package/bundles/primeng-dataview.umd.min.js +1 -1
  48. package/bundles/primeng-dataview.umd.min.js.map +1 -1
  49. package/bundles/primeng-dom.umd.js +14 -11
  50. package/bundles/primeng-dom.umd.js.map +1 -1
  51. package/bundles/primeng-dom.umd.min.js.map +1 -1
  52. package/bundles/primeng-dropdown.umd.js +78 -46
  53. package/bundles/primeng-dropdown.umd.js.map +1 -1
  54. package/bundles/primeng-dropdown.umd.min.js +1 -1
  55. package/bundles/primeng-dropdown.umd.min.js.map +1 -1
  56. package/bundles/primeng-editor.umd.js +1 -1
  57. package/bundles/primeng-editor.umd.js.map +1 -1
  58. package/bundles/primeng-editor.umd.min.js +1 -1
  59. package/bundles/primeng-editor.umd.min.js.map +1 -1
  60. package/bundles/primeng-fileupload.umd.js +23 -11
  61. package/bundles/primeng-fileupload.umd.js.map +1 -1
  62. package/bundles/primeng-fileupload.umd.min.js +1 -1
  63. package/bundles/primeng-fileupload.umd.min.js.map +1 -1
  64. package/bundles/primeng-galleria.umd.js +17 -12
  65. package/bundles/primeng-galleria.umd.js.map +1 -1
  66. package/bundles/primeng-galleria.umd.min.js +1 -1
  67. package/bundles/primeng-galleria.umd.min.js.map +1 -1
  68. package/bundles/primeng-gmap.umd.js +14 -11
  69. package/bundles/primeng-gmap.umd.js.map +1 -1
  70. package/bundles/primeng-gmap.umd.min.js.map +1 -1
  71. package/bundles/primeng-inputnumber.umd.js +15 -12
  72. package/bundles/primeng-inputnumber.umd.js.map +1 -1
  73. package/bundles/primeng-inputnumber.umd.min.js +1 -1
  74. package/bundles/primeng-inputnumber.umd.min.js.map +1 -1
  75. package/bundles/primeng-keyfilter.umd.js +14 -11
  76. package/bundles/primeng-keyfilter.umd.js.map +1 -1
  77. package/bundles/primeng-keyfilter.umd.min.js.map +1 -1
  78. package/bundles/primeng-listbox.umd.js +69 -28
  79. package/bundles/primeng-listbox.umd.js.map +1 -1
  80. package/bundles/primeng-listbox.umd.min.js +1 -1
  81. package/bundles/primeng-listbox.umd.min.js.map +1 -1
  82. package/bundles/primeng-menu.umd.js +14 -11
  83. package/bundles/primeng-menu.umd.js.map +1 -1
  84. package/bundles/primeng-menu.umd.min.js.map +1 -1
  85. package/bundles/primeng-menubar.umd.js +1 -1
  86. package/bundles/primeng-menubar.umd.js.map +1 -1
  87. package/bundles/primeng-menubar.umd.min.js +1 -1
  88. package/bundles/primeng-menubar.umd.min.js.map +1 -1
  89. package/bundles/primeng-messages.umd.js +14 -11
  90. package/bundles/primeng-messages.umd.js.map +1 -1
  91. package/bundles/primeng-messages.umd.min.js.map +1 -1
  92. package/bundles/primeng-multiselect.umd.js +62 -32
  93. package/bundles/primeng-multiselect.umd.js.map +1 -1
  94. package/bundles/primeng-multiselect.umd.min.js +1 -1
  95. package/bundles/primeng-multiselect.umd.min.js.map +1 -1
  96. package/bundles/primeng-orderlist.umd.js +49 -16
  97. package/bundles/primeng-orderlist.umd.js.map +1 -1
  98. package/bundles/primeng-orderlist.umd.min.js +2 -2
  99. package/bundles/primeng-orderlist.umd.min.js.map +1 -1
  100. package/bundles/primeng-organizationchart.umd.js +14 -11
  101. package/bundles/primeng-organizationchart.umd.js.map +1 -1
  102. package/bundles/primeng-organizationchart.umd.min.js.map +1 -1
  103. package/bundles/primeng-paginator.umd.js +14 -11
  104. package/bundles/primeng-paginator.umd.js.map +1 -1
  105. package/bundles/primeng-paginator.umd.min.js.map +1 -1
  106. package/bundles/primeng-panelmenu.umd.js +14 -11
  107. package/bundles/primeng-panelmenu.umd.js.map +1 -1
  108. package/bundles/primeng-panelmenu.umd.min.js.map +1 -1
  109. package/bundles/primeng-password.umd.js +48 -38
  110. package/bundles/primeng-password.umd.js.map +1 -1
  111. package/bundles/primeng-password.umd.min.js +1 -1
  112. package/bundles/primeng-password.umd.min.js.map +1 -1
  113. package/bundles/primeng-picklist.umd.js +109 -48
  114. package/bundles/primeng-picklist.umd.js.map +1 -1
  115. package/bundles/primeng-picklist.umd.min.js +1 -1
  116. package/bundles/primeng-picklist.umd.min.js.map +1 -1
  117. package/bundles/primeng-radiobutton.umd.js +5 -11
  118. package/bundles/primeng-radiobutton.umd.js.map +1 -1
  119. package/bundles/primeng-radiobutton.umd.min.js +1 -1
  120. package/bundles/primeng-radiobutton.umd.min.js.map +1 -1
  121. package/bundles/primeng-scrollpanel.umd.js +1 -0
  122. package/bundles/primeng-scrollpanel.umd.js.map +1 -1
  123. package/bundles/primeng-scrollpanel.umd.min.js +1 -1
  124. package/bundles/primeng-scrollpanel.umd.min.js.map +1 -1
  125. package/bundles/primeng-selectbutton.umd.js +16 -13
  126. package/bundles/primeng-selectbutton.umd.js.map +1 -1
  127. package/bundles/primeng-selectbutton.umd.min.js +1 -1
  128. package/bundles/primeng-selectbutton.umd.min.js.map +1 -1
  129. package/bundles/primeng-sidebar.umd.js +77 -46
  130. package/bundles/primeng-sidebar.umd.js.map +1 -1
  131. package/bundles/primeng-sidebar.umd.min.js +1 -1
  132. package/bundles/primeng-sidebar.umd.min.js.map +1 -1
  133. package/bundles/primeng-skeleton.umd.js +1 -1
  134. package/bundles/primeng-skeleton.umd.js.map +1 -1
  135. package/bundles/primeng-skeleton.umd.min.js +1 -1
  136. package/bundles/primeng-skeleton.umd.min.js.map +1 -1
  137. package/bundles/primeng-splitter.umd.js +53 -22
  138. package/bundles/primeng-splitter.umd.js.map +1 -1
  139. package/bundles/primeng-splitter.umd.min.js +1 -1
  140. package/bundles/primeng-splitter.umd.min.js.map +1 -1
  141. package/bundles/primeng-table.umd.js +30 -17
  142. package/bundles/primeng-table.umd.js.map +1 -1
  143. package/bundles/primeng-table.umd.min.js +2 -2
  144. package/bundles/primeng-table.umd.min.js.map +1 -1
  145. package/bundles/primeng-tabmenu.umd.js +1 -1
  146. package/bundles/primeng-tabmenu.umd.js.map +1 -1
  147. package/bundles/primeng-tabmenu.umd.min.js +1 -1
  148. package/bundles/primeng-tabmenu.umd.min.js.map +1 -1
  149. package/bundles/primeng-tabview.umd.js +1 -0
  150. package/bundles/primeng-tabview.umd.js.map +1 -1
  151. package/bundles/primeng-tabview.umd.min.js +1 -1
  152. package/bundles/primeng-tabview.umd.min.js.map +1 -1
  153. package/bundles/primeng-tieredmenu.umd.js +1 -1
  154. package/bundles/primeng-tieredmenu.umd.js.map +1 -1
  155. package/bundles/primeng-tieredmenu.umd.min.js +1 -1
  156. package/bundles/primeng-tieredmenu.umd.min.js.map +1 -1
  157. package/bundles/primeng-timeline.umd.js +1 -1
  158. package/bundles/primeng-timeline.umd.js.map +1 -1
  159. package/bundles/primeng-timeline.umd.min.js +1 -1
  160. package/bundles/primeng-timeline.umd.min.js.map +1 -1
  161. package/bundles/primeng-toast.umd.js +14 -11
  162. package/bundles/primeng-toast.umd.js.map +1 -1
  163. package/bundles/primeng-toast.umd.min.js.map +1 -1
  164. package/bundles/primeng-togglebutton.umd.js +1 -1
  165. package/bundles/primeng-togglebutton.umd.min.js +1 -1
  166. package/bundles/primeng-togglebutton.umd.min.js.map +1 -1
  167. package/bundles/primeng-tree.umd.js +85 -30
  168. package/bundles/primeng-tree.umd.js.map +1 -1
  169. package/bundles/primeng-tree.umd.min.js +1 -1
  170. package/bundles/primeng-tree.umd.min.js.map +1 -1
  171. package/bundles/primeng-treetable.umd.js +18 -11
  172. package/bundles/primeng-treetable.umd.js.map +1 -1
  173. package/bundles/primeng-treetable.umd.min.js +1 -1
  174. package/bundles/primeng-treetable.umd.min.js.map +1 -1
  175. package/bundles/primeng-tristatecheckbox.umd.js +5 -1
  176. package/bundles/primeng-tristatecheckbox.umd.js.map +1 -1
  177. package/bundles/primeng-tristatecheckbox.umd.min.js +1 -1
  178. package/bundles/primeng-tristatecheckbox.umd.min.js.map +1 -1
  179. package/button/button.d.ts +10 -0
  180. package/button/primeng-button.metadata.json +1 -1
  181. package/calendar/calendar.d.ts +3 -1
  182. package/calendar/primeng-calendar.metadata.json +1 -1
  183. package/carousel/carousel.d.ts +7 -2
  184. package/carousel/primeng-carousel.metadata.json +1 -1
  185. package/cascadeselect/primeng-cascadeselect.metadata.json +1 -1
  186. package/confirmdialog/confirmdialog.d.ts +2 -0
  187. package/confirmdialog/primeng-confirmdialog.metadata.json +1 -1
  188. package/contextmenu/primeng-contextmenu.metadata.json +1 -1
  189. package/dataview/dataview.d.ts +10 -4
  190. package/dataview/primeng-dataview.metadata.json +1 -1
  191. package/dropdown/dropdown.d.ts +15 -7
  192. package/dropdown/primeng-dropdown.metadata.json +1 -1
  193. package/esm2015/api/primengconfig.js +4 -2
  194. package/esm2015/api/translation.js +1 -1
  195. package/esm2015/api/translationkeys.js +3 -1
  196. package/esm2015/autocomplete/autocomplete.js +70 -22
  197. package/esm2015/button/button.js +75 -20
  198. package/esm2015/calendar/calendar.js +18 -11
  199. package/esm2015/carousel/carousel.js +14 -6
  200. package/esm2015/cascadeselect/cascadeselect.js +1 -2
  201. package/esm2015/confirmdialog/confirmdialog.js +22 -7
  202. package/esm2015/contextmenu/contextmenu.js +5 -6
  203. package/esm2015/dataview/dataview.js +27 -6
  204. package/esm2015/dropdown/dropdown.js +69 -34
  205. package/esm2015/editor/editor.js +2 -2
  206. package/esm2015/fileupload/fileupload.js +9 -1
  207. package/esm2015/galleria/galleria.js +4 -2
  208. package/esm2015/inputnumber/inputnumber.js +2 -2
  209. package/esm2015/listbox/listbox.js +55 -14
  210. package/esm2015/menubar/menubar.js +4 -5
  211. package/esm2015/multiselect/multiselect.js +51 -21
  212. package/esm2015/orderlist/orderlist.js +48 -9
  213. package/esm2015/password/password.js +50 -40
  214. package/esm2015/picklist/picklist.js +140 -70
  215. package/esm2015/radiobutton/radiobutton.js +6 -12
  216. package/esm2015/scrollpanel/scrollpanel.js +2 -1
  217. package/esm2015/selectbutton/selectbutton.js +3 -3
  218. package/esm2015/sidebar/sidebar.js +77 -53
  219. package/esm2015/skeleton/skeleton.js +2 -2
  220. package/esm2015/splitter/splitter.js +40 -13
  221. package/esm2015/table/table.js +18 -8
  222. package/esm2015/tabmenu/tabmenu.js +2 -2
  223. package/esm2015/tabview/tabview.js +2 -1
  224. package/esm2015/tieredmenu/tieredmenu.js +4 -4
  225. package/esm2015/timeline/timeline.js +3 -3
  226. package/esm2015/togglebutton/togglebutton.js +1 -1
  227. package/esm2015/tree/tree.js +82 -20
  228. package/esm2015/treetable/treetable.js +5 -1
  229. package/esm2015/tristatecheckbox/tristatecheckbox.js +6 -2
  230. package/fesm2015/primeng-api.js +5 -1
  231. package/fesm2015/primeng-api.js.map +1 -1
  232. package/fesm2015/primeng-autocomplete.js +69 -21
  233. package/fesm2015/primeng-autocomplete.js.map +1 -1
  234. package/fesm2015/primeng-button.js +74 -19
  235. package/fesm2015/primeng-button.js.map +1 -1
  236. package/fesm2015/primeng-calendar.js +17 -10
  237. package/fesm2015/primeng-calendar.js.map +1 -1
  238. package/fesm2015/primeng-carousel.js +13 -5
  239. package/fesm2015/primeng-carousel.js.map +1 -1
  240. package/fesm2015/primeng-cascadeselect.js +0 -1
  241. package/fesm2015/primeng-cascadeselect.js.map +1 -1
  242. package/fesm2015/primeng-confirmdialog.js +21 -6
  243. package/fesm2015/primeng-confirmdialog.js.map +1 -1
  244. package/fesm2015/primeng-contextmenu.js +4 -5
  245. package/fesm2015/primeng-contextmenu.js.map +1 -1
  246. package/fesm2015/primeng-dataview.js +26 -5
  247. package/fesm2015/primeng-dataview.js.map +1 -1
  248. package/fesm2015/primeng-dropdown.js +68 -34
  249. package/fesm2015/primeng-dropdown.js.map +1 -1
  250. package/fesm2015/primeng-editor.js +1 -1
  251. package/fesm2015/primeng-editor.js.map +1 -1
  252. package/fesm2015/primeng-fileupload.js +8 -0
  253. package/fesm2015/primeng-fileupload.js.map +1 -1
  254. package/fesm2015/primeng-galleria.js +3 -1
  255. package/fesm2015/primeng-galleria.js.map +1 -1
  256. package/fesm2015/primeng-inputnumber.js +1 -1
  257. package/fesm2015/primeng-inputnumber.js.map +1 -1
  258. package/fesm2015/primeng-listbox.js +54 -13
  259. package/fesm2015/primeng-listbox.js.map +1 -1
  260. package/fesm2015/primeng-menubar.js +3 -4
  261. package/fesm2015/primeng-menubar.js.map +1 -1
  262. package/fesm2015/primeng-multiselect.js +50 -20
  263. package/fesm2015/primeng-multiselect.js.map +1 -1
  264. package/fesm2015/primeng-orderlist.js +47 -8
  265. package/fesm2015/primeng-orderlist.js.map +1 -1
  266. package/fesm2015/primeng-password.js +49 -39
  267. package/fesm2015/primeng-password.js.map +1 -1
  268. package/fesm2015/primeng-picklist.js +140 -70
  269. package/fesm2015/primeng-picklist.js.map +1 -1
  270. package/fesm2015/primeng-radiobutton.js +5 -11
  271. package/fesm2015/primeng-radiobutton.js.map +1 -1
  272. package/fesm2015/primeng-scrollpanel.js +1 -0
  273. package/fesm2015/primeng-scrollpanel.js.map +1 -1
  274. package/fesm2015/primeng-selectbutton.js +2 -2
  275. package/fesm2015/primeng-selectbutton.js.map +1 -1
  276. package/fesm2015/primeng-sidebar.js +76 -52
  277. package/fesm2015/primeng-sidebar.js.map +1 -1
  278. package/fesm2015/primeng-skeleton.js +1 -1
  279. package/fesm2015/primeng-skeleton.js.map +1 -1
  280. package/fesm2015/primeng-splitter.js +39 -12
  281. package/fesm2015/primeng-splitter.js.map +1 -1
  282. package/fesm2015/primeng-table.js +17 -7
  283. package/fesm2015/primeng-table.js.map +1 -1
  284. package/fesm2015/primeng-tabmenu.js +1 -1
  285. package/fesm2015/primeng-tabmenu.js.map +1 -1
  286. package/fesm2015/primeng-tabview.js +1 -0
  287. package/fesm2015/primeng-tabview.js.map +1 -1
  288. package/fesm2015/primeng-tieredmenu.js +3 -3
  289. package/fesm2015/primeng-tieredmenu.js.map +1 -1
  290. package/fesm2015/primeng-timeline.js +2 -2
  291. package/fesm2015/primeng-timeline.js.map +1 -1
  292. package/fesm2015/primeng-togglebutton.js +1 -1
  293. package/fesm2015/primeng-tree.js +81 -20
  294. package/fesm2015/primeng-tree.js.map +1 -1
  295. package/fesm2015/primeng-treetable.js +4 -0
  296. package/fesm2015/primeng-treetable.js.map +1 -1
  297. package/fesm2015/primeng-tristatecheckbox.js +5 -1
  298. package/fesm2015/primeng-tristatecheckbox.js.map +1 -1
  299. package/fileupload/fileupload.d.ts +5 -2
  300. package/fileupload/primeng-fileupload.metadata.json +1 -1
  301. package/galleria/galleria.d.ts +3 -2
  302. package/galleria/primeng-galleria.metadata.json +1 -1
  303. package/inputnumber/primeng-inputnumber.metadata.json +1 -1
  304. package/listbox/listbox.d.ts +16 -4
  305. package/listbox/primeng-listbox.metadata.json +1 -1
  306. package/menubar/primeng-menubar.metadata.json +1 -1
  307. package/multiselect/multiselect.d.ts +10 -3
  308. package/multiselect/primeng-multiselect.metadata.json +1 -1
  309. package/orderlist/orderlist.d.ts +5 -1
  310. package/orderlist/primeng-orderlist.metadata.json +1 -1
  311. package/package.json +1 -1
  312. package/password/password.d.ts +5 -4
  313. package/password/primeng-password.metadata.json +1 -1
  314. package/picklist/picklist.d.ts +16 -7
  315. package/picklist/primeng-picklist.metadata.json +1 -1
  316. package/radiobutton/primeng-radiobutton.metadata.json +1 -1
  317. package/resources/components/button/button.css +4 -0
  318. package/resources/components/calendar/calendar.css +0 -1
  319. package/resources/components/orderlist/orderlist.css +1 -0
  320. package/resources/components/picklist/picklist.css +1 -0
  321. package/resources/components/sidebar/sidebar.css +12 -26
  322. package/resources/primeng.css +4 -0
  323. package/resources/primeng.min.css +1 -1
  324. package/resources/themes/arya-blue/theme.css +49 -9
  325. package/resources/themes/arya-green/theme.css +49 -9
  326. package/resources/themes/arya-orange/theme.css +49 -9
  327. package/resources/themes/arya-purple/theme.css +49 -9
  328. package/resources/themes/bootstrap4-dark-blue/theme.css +49 -9
  329. package/resources/themes/bootstrap4-dark-purple/theme.css +49 -9
  330. package/resources/themes/bootstrap4-light-blue/theme.css +49 -9
  331. package/resources/themes/bootstrap4-light-purple/theme.css +49 -9
  332. package/resources/themes/fluent-light/theme.css +47 -7
  333. package/resources/themes/luna-amber/theme.css +49 -9
  334. package/resources/themes/luna-blue/theme.css +49 -9
  335. package/resources/themes/luna-green/theme.css +49 -9
  336. package/resources/themes/luna-pink/theme.css +49 -9
  337. package/resources/themes/md-dark-deeppurple/theme.css +60 -14
  338. package/resources/themes/md-dark-indigo/theme.css +60 -14
  339. package/resources/themes/md-light-deeppurple/theme.css +60 -14
  340. package/resources/themes/md-light-indigo/theme.css +60 -14
  341. package/resources/themes/mdc-dark-deeppurple/theme.css +60 -14
  342. package/resources/themes/mdc-dark-indigo/theme.css +60 -14
  343. package/resources/themes/mdc-light-deeppurple/theme.css +60 -14
  344. package/resources/themes/mdc-light-indigo/theme.css +60 -14
  345. package/resources/themes/nova/theme.css +49 -9
  346. package/resources/themes/nova-accent/theme.css +49 -9
  347. package/resources/themes/nova-alt/theme.css +49 -9
  348. package/resources/themes/rhea/theme.css +49 -9
  349. package/resources/themes/saga-blue/theme.css +49 -9
  350. package/resources/themes/saga-green/theme.css +49 -9
  351. package/resources/themes/saga-orange/theme.css +49 -9
  352. package/resources/themes/saga-purple/theme.css +49 -9
  353. package/resources/themes/vela-blue/theme.css +49 -9
  354. package/resources/themes/vela-green/theme.css +49 -9
  355. package/resources/themes/vela-orange/theme.css +49 -9
  356. package/resources/themes/vela-purple/theme.css +49 -9
  357. package/scrollpanel/primeng-scrollpanel.metadata.json +1 -1
  358. package/selectbutton/primeng-selectbutton.metadata.json +1 -1
  359. package/sidebar/primeng-sidebar.metadata.json +1 -1
  360. package/sidebar/sidebar.d.ts +12 -8
  361. package/skeleton/skeleton.d.ts +1 -1
  362. package/splitter/primeng-splitter.metadata.json +1 -1
  363. package/splitter/splitter.d.ts +5 -1
  364. package/table/primeng-table.metadata.json +1 -1
  365. package/table/table.d.ts +3 -0
  366. package/tabmenu/primeng-tabmenu.metadata.json +1 -1
  367. package/tabview/primeng-tabview.metadata.json +1 -1
  368. package/tieredmenu/primeng-tieredmenu.metadata.json +1 -1
  369. package/timeline/primeng-timeline.metadata.json +1 -1
  370. package/togglebutton/primeng-togglebutton.metadata.json +1 -1
  371. package/tree/primeng-tree.metadata.json +1 -1
  372. package/tree/tree.d.ts +12 -4
  373. package/treetable/primeng-treetable.metadata.json +1 -1
  374. package/tristatecheckbox/primeng-tristatecheckbox.metadata.json +1 -1
  375. package/tristatecheckbox/tristatecheckbox.d.ts +2 -0
@@ -4,8 +4,8 @@ import { ButtonModule } from 'primeng/button';
4
4
  import { FilterService, PrimeTemplate, SharedModule } from 'primeng/api';
5
5
  import { DomHandler } from 'primeng/dom';
6
6
  import { RippleModule } from 'primeng/ripple';
7
- import { moveItemInArray, transferArrayItem, DragDropModule } from '@angular/cdk/drag-drop';
8
- import { UniqueComponentId } from 'primeng/utils';
7
+ import { transferArrayItem, moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
8
+ import { UniqueComponentId, ObjectUtils } from 'primeng/utils';
9
9
 
10
10
  class PickList {
11
11
  constructor(el, cd, filterService) {
@@ -16,6 +16,7 @@ class PickList {
16
16
  this.showSourceFilter = true;
17
17
  this.showTargetFilter = true;
18
18
  this.metaKeySelection = true;
19
+ this.dragdrop = false;
19
20
  this.showSourceControls = true;
20
21
  this.showTargetControls = true;
21
22
  this.disabled = false;
@@ -48,12 +49,24 @@ class PickList {
48
49
  case 'item':
49
50
  this.itemTemplate = item.template;
50
51
  break;
52
+ case 'sourceHeader':
53
+ this.sourceHeaderTemplate = item.template;
54
+ break;
55
+ case 'targetHeader':
56
+ this.targetHeaderTemplate = item.template;
57
+ break;
51
58
  case 'emptymessagesource':
52
59
  this.emptyMessageSourceTemplate = item.template;
53
60
  break;
61
+ case 'emptyfiltermessagesource':
62
+ this.emptyFilterMessageSourceTemplate = item.template;
63
+ break;
54
64
  case 'emptymessagetarget':
55
65
  this.emptyMessageTargetTemplate = item.template;
56
66
  break;
67
+ case 'emptyfiltermessagetarget':
68
+ this.emptyFilterMessageTargetTemplate = item.template;
69
+ break;
57
70
  default:
58
71
  this.itemTemplate = item.template;
59
72
  break;
@@ -116,17 +129,19 @@ class PickList {
116
129
  }
117
130
  onFilter(event, data, listType) {
118
131
  let query = event.target.value.trim().toLocaleLowerCase(this.filterLocale);
119
- this.filter(query, data, listType);
132
+ if (listType === this.SOURCE_LIST)
133
+ this.filterValueSource = query;
134
+ else if (listType === this.TARGET_LIST)
135
+ this.filterValueTarget = query;
136
+ this.filter(data, listType);
120
137
  }
121
- filter(query, data, listType) {
138
+ filter(data, listType) {
122
139
  let searchFields = this.filterBy.split(',');
123
140
  if (listType === this.SOURCE_LIST) {
124
- this.filterValueSource = query;
125
141
  this.visibleOptionsSource = this.filterService.filter(data, searchFields, this.filterValueSource, this.filterMatchMode, this.filterLocale);
126
142
  this.onSourceFilter.emit({ query: this.filterValueSource, value: this.visibleOptionsSource });
127
143
  }
128
144
  else if (listType === this.TARGET_LIST) {
129
- this.filterValueTarget = query;
130
145
  this.visibleOptionsTarget = this.filterService.filter(data, searchFields, this.filterValueTarget, this.filterMatchMode, this.filterLocale);
131
146
  this.onTargetFilter.emit({ query: this.filterValueTarget, value: this.visibleOptionsTarget });
132
147
  }
@@ -137,6 +152,12 @@ class PickList {
137
152
  else
138
153
  return this.isVisibleInList(this.visibleOptionsTarget, item, this.filterValueTarget);
139
154
  }
155
+ isEmpty(listType) {
156
+ if (listType == this.SOURCE_LIST)
157
+ return this.filterValueSource ? (!this.visibleOptionsSource || this.visibleOptionsSource.length === 0) : (!this.source || this.source.length === 0);
158
+ else
159
+ return this.filterValueTarget ? (!this.visibleOptionsTarget || this.visibleOptionsTarget.length === 0) : (!this.target || this.target.length === 0);
160
+ }
140
161
  isVisibleInList(data, item, filterValue) {
141
162
  if (filterValue && filterValue.trim().length) {
142
163
  for (let i = 0; i < data.length; i++) {
@@ -149,21 +170,21 @@ class PickList {
149
170
  return true;
150
171
  }
151
172
  }
152
- onItemTouchEnd(event) {
173
+ onItemTouchEnd() {
153
174
  if (this.disabled) {
154
175
  return;
155
176
  }
156
177
  this.itemTouched = true;
157
178
  }
158
179
  sortByIndexInList(items, list) {
159
- return items.sort((item1, item2) => this.findIndexInList(item1, list) - this.findIndexInList(item2, list));
180
+ return items.sort((item1, item2) => ObjectUtils.findIndexInList(item1, list) - ObjectUtils.findIndexInList(item2, list));
160
181
  }
161
- moveUp(listElement, list, selectedItems, callback) {
182
+ moveUp(listElement, list, selectedItems, callback, listType) {
162
183
  if (selectedItems && selectedItems.length) {
163
184
  selectedItems = this.sortByIndexInList(selectedItems, list);
164
185
  for (let i = 0; i < selectedItems.length; i++) {
165
186
  let selectedItem = selectedItems[i];
166
- let selectedItemIndex = this.findIndexInList(selectedItem, list);
187
+ let selectedItemIndex = ObjectUtils.findIndexInList(selectedItem, list);
167
188
  if (selectedItemIndex != 0) {
168
189
  let movedItem = list[selectedItemIndex];
169
190
  let temp = list[selectedItemIndex - 1];
@@ -174,17 +195,19 @@ class PickList {
174
195
  break;
175
196
  }
176
197
  }
198
+ if (this.dragdrop && ((this.filterValueSource && listType === this.SOURCE_LIST) || (this.filterValueTarget && listType === this.TARGET_LIST)))
199
+ this.filter(list, listType);
177
200
  this.movedUp = true;
178
201
  this.reorderedListElement = listElement;
179
202
  callback.emit({ items: selectedItems });
180
203
  }
181
204
  }
182
- moveTop(listElement, list, selectedItems, callback) {
205
+ moveTop(listElement, list, selectedItems, callback, listType) {
183
206
  if (selectedItems && selectedItems.length) {
184
207
  selectedItems = this.sortByIndexInList(selectedItems, list);
185
208
  for (let i = 0; i < selectedItems.length; i++) {
186
209
  let selectedItem = selectedItems[i];
187
- let selectedItemIndex = this.findIndexInList(selectedItem, list);
210
+ let selectedItemIndex = ObjectUtils.findIndexInList(selectedItem, list);
188
211
  if (selectedItemIndex != 0) {
189
212
  let movedItem = list.splice(selectedItemIndex, 1)[0];
190
213
  list.unshift(movedItem);
@@ -193,16 +216,18 @@ class PickList {
193
216
  break;
194
217
  }
195
218
  }
219
+ if (this.dragdrop && ((this.filterValueSource && listType === this.SOURCE_LIST) || (this.filterValueTarget && listType === this.TARGET_LIST)))
220
+ this.filter(list, listType);
196
221
  listElement.scrollTop = 0;
197
222
  callback.emit({ items: selectedItems });
198
223
  }
199
224
  }
200
- moveDown(listElement, list, selectedItems, callback) {
225
+ moveDown(listElement, list, selectedItems, callback, listType) {
201
226
  if (selectedItems && selectedItems.length) {
202
227
  selectedItems = this.sortByIndexInList(selectedItems, list);
203
228
  for (let i = selectedItems.length - 1; i >= 0; i--) {
204
229
  let selectedItem = selectedItems[i];
205
- let selectedItemIndex = this.findIndexInList(selectedItem, list);
230
+ let selectedItemIndex = ObjectUtils.findIndexInList(selectedItem, list);
206
231
  if (selectedItemIndex != (list.length - 1)) {
207
232
  let movedItem = list[selectedItemIndex];
208
233
  let temp = list[selectedItemIndex + 1];
@@ -213,17 +238,19 @@ class PickList {
213
238
  break;
214
239
  }
215
240
  }
241
+ if (this.dragdrop && ((this.filterValueSource && listType === this.SOURCE_LIST) || (this.filterValueTarget && listType === this.TARGET_LIST)))
242
+ this.filter(list, listType);
216
243
  this.movedDown = true;
217
244
  this.reorderedListElement = listElement;
218
245
  callback.emit({ items: selectedItems });
219
246
  }
220
247
  }
221
- moveBottom(listElement, list, selectedItems, callback) {
248
+ moveBottom(listElement, list, selectedItems, callback, listType) {
222
249
  if (selectedItems && selectedItems.length) {
223
250
  selectedItems = this.sortByIndexInList(selectedItems, list);
224
251
  for (let i = selectedItems.length - 1; i >= 0; i--) {
225
252
  let selectedItem = selectedItems[i];
226
- let selectedItemIndex = this.findIndexInList(selectedItem, list);
253
+ let selectedItemIndex = ObjectUtils.findIndexInList(selectedItem, list);
227
254
  if (selectedItemIndex != (list.length - 1)) {
228
255
  let movedItem = list.splice(selectedItemIndex, 1)[0];
229
256
  list.push(movedItem);
@@ -232,6 +259,8 @@ class PickList {
232
259
  break;
233
260
  }
234
261
  }
262
+ if (this.dragdrop && ((this.filterValueSource && listType === this.SOURCE_LIST) || (this.filterValueTarget && listType === this.TARGET_LIST)))
263
+ this.filter(list, listType);
235
264
  listElement.scrollTop = listElement.scrollHeight;
236
265
  callback.emit({ items: selectedItems });
237
266
  }
@@ -240,8 +269,10 @@ class PickList {
240
269
  if (this.selectedItemsSource && this.selectedItemsSource.length) {
241
270
  for (let i = 0; i < this.selectedItemsSource.length; i++) {
242
271
  let selectedItem = this.selectedItemsSource[i];
243
- if (this.findIndexInList(selectedItem, this.target) == -1) {
244
- this.target.push(this.source.splice(this.findIndexInList(selectedItem, this.source), 1)[0]);
272
+ if (ObjectUtils.findIndexInList(selectedItem, this.target) == -1) {
273
+ this.target.push(this.source.splice(ObjectUtils.findIndexInList(selectedItem, this.source), 1)[0]);
274
+ if (this.visibleOptionsSource)
275
+ this.visibleOptionsSource.splice(ObjectUtils.findIndexInList(selectedItem, this.visibleOptionsSource), 1);
245
276
  }
246
277
  }
247
278
  this.onMoveToTarget.emit({
@@ -249,7 +280,7 @@ class PickList {
249
280
  });
250
281
  this.selectedItemsSource = [];
251
282
  if (this.filterValueTarget) {
252
- this.filter(this.filterValueTarget, this.target, this.TARGET_LIST);
283
+ this.filter(this.target, this.TARGET_LIST);
253
284
  }
254
285
  }
255
286
  }
@@ -269,16 +300,19 @@ class PickList {
269
300
  });
270
301
  this.selectedItemsSource = [];
271
302
  if (this.filterValueTarget) {
272
- this.filter(this.filterValueTarget, this.target, this.TARGET_LIST);
303
+ this.filter(this.target, this.TARGET_LIST);
273
304
  }
305
+ this.visibleOptionsSource = [];
274
306
  }
275
307
  }
276
308
  moveLeft() {
277
309
  if (this.selectedItemsTarget && this.selectedItemsTarget.length) {
278
310
  for (let i = 0; i < this.selectedItemsTarget.length; i++) {
279
311
  let selectedItem = this.selectedItemsTarget[i];
280
- if (this.findIndexInList(selectedItem, this.source) == -1) {
281
- this.source.push(this.target.splice(this.findIndexInList(selectedItem, this.target), 1)[0]);
312
+ if (ObjectUtils.findIndexInList(selectedItem, this.source) == -1) {
313
+ this.source.push(this.target.splice(ObjectUtils.findIndexInList(selectedItem, this.target), 1)[0]);
314
+ if (this.visibleOptionsTarget)
315
+ this.visibleOptionsTarget.splice(ObjectUtils.findIndexInList(selectedItem, this.visibleOptionsTarget), 1)[0];
282
316
  }
283
317
  }
284
318
  this.onMoveToSource.emit({
@@ -286,7 +320,7 @@ class PickList {
286
320
  });
287
321
  this.selectedItemsTarget = [];
288
322
  if (this.filterValueSource) {
289
- this.filter(this.filterValueSource, this.source, this.SOURCE_LIST);
323
+ this.filter(this.source, this.SOURCE_LIST);
290
324
  }
291
325
  }
292
326
  }
@@ -306,42 +340,70 @@ class PickList {
306
340
  });
307
341
  this.selectedItemsTarget = [];
308
342
  if (this.filterValueSource) {
309
- this.filter(this.filterValueSource, this.source, this.SOURCE_LIST);
343
+ this.filter(this.source, this.SOURCE_LIST);
310
344
  }
345
+ this.visibleOptionsTarget = [];
311
346
  }
312
347
  }
313
348
  isSelected(item, selectedItems) {
314
349
  return this.findIndexInSelection(item, selectedItems) != -1;
315
350
  }
316
351
  findIndexInSelection(item, selectedItems) {
317
- return this.findIndexInList(item, selectedItems);
318
- }
319
- findIndexInList(item, list) {
320
- let index = -1;
321
- if (list) {
322
- for (let i = 0; i < list.length; i++) {
323
- if (list[i] == item) {
324
- index = i;
325
- break;
326
- }
352
+ return ObjectUtils.findIndexInList(item, selectedItems);
353
+ }
354
+ onDrop(event, listType) {
355
+ let isTransfer = event.previousContainer !== event.container;
356
+ let dropIndexes = this.getDropIndexes(event.previousIndex, event.currentIndex, listType, isTransfer, event.item.data);
357
+ if (listType === this.SOURCE_LIST) {
358
+ if (isTransfer) {
359
+ transferArrayItem(event.previousContainer.data, event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);
360
+ if (this.visibleOptionsTarget)
361
+ this.visibleOptionsTarget.splice(event.previousIndex, 1);
362
+ this.onMoveToSource.emit({ items: event.item.data });
363
+ }
364
+ else {
365
+ moveItemInArray(event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);
366
+ this.onSourceReorder.emit({ items: event.item.data });
367
+ }
368
+ if (this.filterValueSource) {
369
+ this.filter(this.source, this.SOURCE_LIST);
370
+ }
371
+ }
372
+ else {
373
+ if (isTransfer) {
374
+ transferArrayItem(event.previousContainer.data, event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);
375
+ if (this.visibleOptionsSource)
376
+ this.visibleOptionsSource.splice(event.previousIndex, 1);
377
+ this.onMoveToTarget.emit({ items: event.item.data });
378
+ }
379
+ else {
380
+ moveItemInArray(event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);
381
+ this.onTargetReorder.emit({ items: event.item.data });
382
+ }
383
+ if (this.filterValueTarget) {
384
+ this.filter(this.target, this.TARGET_LIST);
327
385
  }
328
386
  }
329
- return index;
330
387
  }
331
- onDrop(event, listType) {
332
- if (event.previousContainer === event.container) {
333
- moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);
334
- if (listType == this.SOURCE_LIST)
335
- this.onSourceReorder.emit([event.item.data]);
336
- else
337
- this.onTargetReorder.emit([event.item.data]);
388
+ getDropIndexes(fromIndex, toIndex, droppedList, isTransfer, data) {
389
+ let previousIndex, currentIndex;
390
+ if (droppedList === this.SOURCE_LIST) {
391
+ previousIndex = isTransfer ? this.filterValueTarget ? ObjectUtils.findIndexInList(data, this.target) : fromIndex : this.filterValueSource ? ObjectUtils.findIndexInList(data, this.source) : fromIndex;
392
+ currentIndex = this.filterValueSource ? this.findFilteredCurrentIndex(this.visibleOptionsSource, toIndex, this.source) : toIndex;
338
393
  }
339
394
  else {
340
- transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);
341
- if (listType == this.SOURCE_LIST)
342
- this.onMoveToSource.emit([event.item.data]);
343
- else
344
- this.onMoveToTarget.emit([event.item.data]);
395
+ previousIndex = isTransfer ? this.filterValueSource ? ObjectUtils.findIndexInList(data, this.source) : fromIndex : this.filterValueTarget ? ObjectUtils.findIndexInList(data, this.target) : fromIndex;
396
+ currentIndex = this.filterValueTarget ? this.findFilteredCurrentIndex(this.visibleOptionsTarget, toIndex, this.target) : toIndex;
397
+ }
398
+ return { previousIndex, currentIndex };
399
+ }
400
+ findFilteredCurrentIndex(visibleOptions, index, options) {
401
+ if (visibleOptions.length === index) {
402
+ let toIndex = ObjectUtils.findIndexInList(visibleOptions[index - 1], options);
403
+ return toIndex + 1;
404
+ }
405
+ else {
406
+ return ObjectUtils.findIndexInList(visibleOptions[index], options);
345
407
  }
346
408
  }
347
409
  resetFilter() {
@@ -455,14 +517,15 @@ PickList.decorators = [
455
517
  template: `
456
518
  <div [class]="styleClass" [ngStyle]="style" [ngClass]="'p-picklist p-component'" cdkDropListGroup>
457
519
  <div class="p-picklist-buttons p-picklist-source-controls" *ngIf="showSourceControls">
458
- <button type="button" pButton pRipple icon="pi pi-angle-up" [disabled]="disabled" (click)="moveUp(sourcelist,source,selectedItemsSource,onSourceReorder)"></button>
459
- <button type="button" pButton pRipple icon="pi pi-angle-double-up" [disabled]="disabled" (click)="moveTop(sourcelist,source,selectedItemsSource,onSourceReorder)"></button>
460
- <button type="button" pButton pRipple icon="pi pi-angle-down" [disabled]="disabled" (click)="moveDown(sourcelist,source,selectedItemsSource,onSourceReorder)"></button>
461
- <button type="button" pButton pRipple icon="pi pi-angle-double-down" [disabled]="disabled" (click)="moveBottom(sourcelist,source,selectedItemsSource,onSourceReorder)"></button>
520
+ <button type="button" pButton pRipple icon="pi pi-angle-up" [disabled]="disabled" (click)="moveUp(sourcelist,source,selectedItemsSource,onSourceReorder,SOURCE_LIST)"></button>
521
+ <button type="button" pButton pRipple icon="pi pi-angle-double-up" [disabled]="disabled" (click)="moveTop(sourcelist,source,selectedItemsSource,onSourceReorder,SOURCE_LIST)"></button>
522
+ <button type="button" pButton pRipple icon="pi pi-angle-down" [disabled]="disabled" (click)="moveDown(sourcelist,source,selectedItemsSource,onSourceReorder,SOURCE_LIST)"></button>
523
+ <button type="button" pButton pRipple icon="pi pi-angle-double-down" [disabled]="disabled" (click)="moveBottom(sourcelist,source,selectedItemsSource,onSourceReorder,SOURCE_LIST)"></button>
462
524
  </div>
463
525
  <div class="p-picklist-list-wrapper p-picklist-source-wrapper">
464
- <div class="p-picklist-header" *ngIf="sourceHeader">
465
- <div class="p-picklist-title">{{sourceHeader}}</div>
526
+ <div class="p-picklist-header" *ngIf="sourceHeader || sourceHeaderTemplate">
527
+ <div class="p-picklist-title" *ngIf="!sourceHeaderTemplate">{{sourceHeader}}</div>
528
+ <ng-container *ngTemplateOutlet="sourceHeaderTemplate"></ng-container>
466
529
  </div>
467
530
  <div class="p-picklist-filter-container" *ngIf="filterBy && showSourceFilter !== false">
468
531
  <div class="p-picklist-filter">
@@ -474,16 +537,19 @@ PickList.decorators = [
474
537
  <ul #sourcelist class="p-picklist-list p-picklist-source" cdkDropList [cdkDropListData]="source" (cdkDropListDropped)="onDrop($event, SOURCE_LIST)"
475
538
  [ngStyle]="sourceStyle" role="listbox" aria-multiselectable="multiple">
476
539
  <ng-template ngFor let-item [ngForOf]="source" [ngForTrackBy]="sourceTrackBy || trackBy" let-i="index" let-l="last">
477
- <li [ngClass]="{'p-picklist-item':true,'p-highlight':isSelected(item,selectedItemsSource),'p-disabled': disabled}" pRipple cdkDrag [cdkDragData]="item"
478
- (click)="onItemClick($event,item,selectedItemsSource,onSourceSelect)" (dblclick)="onSourceItemDblClick()" (touchend)="onItemTouchEnd($event)" (keydown)="onItemKeydown($event,item,selectedItemsSource,onSourceSelect)"
479
- [style.display]="isItemVisible(item, SOURCE_LIST) ? 'block' : 'none'" tabindex="0" role="option" [attr.aria-selected]="isSelected(item, selectedItemsSource)">
540
+ <li [ngClass]="{'p-picklist-item':true,'p-highlight':isSelected(item,selectedItemsSource),'p-disabled': disabled}" pRipple cdkDrag [cdkDragData]="item" [cdkDragDisabled]="!dragdrop"
541
+ (click)="onItemClick($event,item,selectedItemsSource,onSourceSelect)" (dblclick)="onSourceItemDblClick()" (touchend)="onItemTouchEnd()" (keydown)="onItemKeydown($event,item,selectedItemsSource,onSourceSelect)"
542
+ *ngIf="isItemVisible(item, SOURCE_LIST)" tabindex="0" role="option" [attr.aria-selected]="isSelected(item, selectedItemsSource)">
480
543
  <ng-container *ngTemplateOutlet="itemTemplate; context: {$implicit: item, index: i}"></ng-container>
481
544
  </li>
482
545
  </ng-template>
483
- <ng-container *ngIf="(source == null || source.length === 0) && emptyMessageSourceTemplate">
484
- <li class="p-picklist-empty-message">
546
+ <ng-container *ngIf="isEmpty(SOURCE_LIST) && (emptyMessageSourceTemplate || emptyFilterMessageSourceTemplate)">
547
+ <li class="p-picklist-empty-message" *ngIf="!filterValueSource || !emptyFilterMessageSourceTemplate">
485
548
  <ng-container *ngTemplateOutlet="emptyMessageSourceTemplate"></ng-container>
486
549
  </li>
550
+ <li class="p-picklist-empty-message" *ngIf="filterValueSource">
551
+ <ng-container *ngTemplateOutlet="emptyFilterMessageSourceTemplate"></ng-container>
552
+ </li>
487
553
  </ng-container>
488
554
  </ul>
489
555
  </div>
@@ -494,8 +560,9 @@ PickList.decorators = [
494
560
  <button type="button" pButton pRipple icon="pi pi-angle-double-left" [disabled]="disabled" (click)="moveAllLeft()"></button>
495
561
  </div>
496
562
  <div class="p-picklist-list-wrapper p-picklist-target-wrapper">
497
- <div class="p-picklist-header" *ngIf="targetHeader">
498
- <div class="p-picklist-title" *ngIf="targetHeader">{{targetHeader}}</div>
563
+ <div class="p-picklist-header" *ngIf="targetHeader || targetHeaderTemplate">
564
+ <div class="p-picklist-title" *ngIf="!targetHeaderTemplate">{{targetHeader}}</div>
565
+ <ng-container *ngTemplateOutlet="targetHeaderTemplate"></ng-container>
499
566
  </div>
500
567
  <div class="p-picklist-filter-container" *ngIf="filterBy && showTargetFilter !== false">
501
568
  <div class="p-picklist-filter">
@@ -506,30 +573,33 @@ PickList.decorators = [
506
573
  <ul #targetlist class="p-picklist-list p-picklist-target" cdkDropList [cdkDropListData]="target" (cdkDropListDropped)="onDrop($event, TARGET_LIST)"
507
574
  [ngStyle]="targetStyle" role="listbox" aria-multiselectable="multiple">
508
575
  <ng-template ngFor let-item [ngForOf]="target" [ngForTrackBy]="targetTrackBy || trackBy" let-i="index" let-l="last">
509
- <li [ngClass]="{'p-picklist-item':true,'p-highlight':isSelected(item,selectedItemsTarget), 'p-disabled': disabled}" pRipple cdkDrag [cdkDragData]="item"
510
- (click)="onItemClick($event,item,selectedItemsTarget,onTargetSelect)" (dblclick)="onTargetItemDblClick()" (touchend)="onItemTouchEnd($event)" (keydown)="onItemKeydown($event,item,selectedItemsTarget,onTargetSelect)"
511
- [style.display]="isItemVisible(item, TARGET_LIST) ? 'block' : 'none'" tabindex="0" role="option" [attr.aria-selected]="isSelected(item, selectedItemsTarget)">
576
+ <li [ngClass]="{'p-picklist-item':true,'p-highlight':isSelected(item,selectedItemsTarget), 'p-disabled': disabled}" pRipple cdkDrag [cdkDragData]="item" [cdkDragDisabled]="!dragdrop"
577
+ (click)="onItemClick($event,item,selectedItemsTarget,onTargetSelect)" (dblclick)="onTargetItemDblClick()" (touchend)="onItemTouchEnd()" (keydown)="onItemKeydown($event,item,selectedItemsTarget,onTargetSelect)"
578
+ *ngIf="isItemVisible(item, TARGET_LIST)" tabindex="0" role="option" [attr.aria-selected]="isSelected(item, selectedItemsTarget)">
512
579
  <ng-container *ngTemplateOutlet="itemTemplate; context: {$implicit: item, index: i}"></ng-container>
513
580
  </li>
514
581
  </ng-template>
515
- <ng-container *ngIf="(target == null || target.length === 0) && emptyMessageTargetTemplate">
516
- <li class="p-picklist-empty-message">
582
+ <ng-container *ngIf="isEmpty(TARGET_LIST) && (emptyMessageTargetTemplate || emptyFilterMessageTargetTemplate)">
583
+ <li class="p-picklist-empty-message" *ngIf="!filterValueTarget || !emptyFilterMessageTargetTemplate">
517
584
  <ng-container *ngTemplateOutlet="emptyMessageTargetTemplate"></ng-container>
518
585
  </li>
586
+ <li class="p-picklist-empty-message" *ngIf="filterValueTarget">
587
+ <ng-container *ngTemplateOutlet="emptyFilterMessageTargetTemplate"></ng-container>
588
+ </li>
519
589
  </ng-container>
520
590
  </ul>
521
591
  </div>
522
592
  <div class="p-picklist-buttons p-picklist-target-controls" *ngIf="showTargetControls">
523
- <button type="button" pButton pRipple icon="pi pi-angle-up" [disabled]="disabled" (click)="moveUp(targetlist,target,selectedItemsTarget,onTargetReorder)"></button>
524
- <button type="button" pButton pRipple icon="pi pi-angle-double-up" [disabled]="disabled" (click)="moveTop(targetlist,target,selectedItemsTarget,onTargetReorder)"></button>
525
- <button type="button" pButton pRipple icon="pi pi-angle-down" [disabled]="disabled" (click)="moveDown(targetlist,target,selectedItemsTarget,onTargetReorder)"></button>
526
- <button type="button" pButton pRipple icon="pi pi-angle-double-down" [disabled]="disabled" (click)="moveBottom(targetlist,target,selectedItemsTarget,onTargetReorder)"></button>
593
+ <button type="button" pButton pRipple icon="pi pi-angle-up" [disabled]="disabled" (click)="moveUp(targetlist,target,selectedItemsTarget,onTargetReorder,TARGET_LIST)"></button>
594
+ <button type="button" pButton pRipple icon="pi pi-angle-double-up" [disabled]="disabled" (click)="moveTop(targetlist,target,selectedItemsTarget,onTargetReorder,TARGET_LIST)"></button>
595
+ <button type="button" pButton pRipple icon="pi pi-angle-down" [disabled]="disabled" (click)="moveDown(targetlist,target,selectedItemsTarget,onTargetReorder,TARGET_LIST)"></button>
596
+ <button type="button" pButton pRipple icon="pi pi-angle-double-down" [disabled]="disabled" (click)="moveBottom(targetlist,target,selectedItemsTarget,onTargetReorder,TARGET_LIST)"></button>
527
597
  </div>
528
598
  </div>
529
599
  `,
530
600
  changeDetection: ChangeDetectionStrategy.OnPush,
531
601
  encapsulation: ViewEncapsulation.None,
532
- styles: [".p-picklist{display:flex}.p-picklist-buttons{display:flex;flex-direction:column;justify-content:center}.p-picklist-list-wrapper{flex:1 1 50%}.p-picklist-list{list-style-type:none;margin:0;min-height:12rem;overflow:auto;padding:0}.p-picklist-item{cursor:pointer;overflow:hidden;position:relative}.p-picklist-item:not(.cdk-drag-disabled){cursor:move}.p-picklist-item.cdk-drag-placeholder{opacity:0}.p-picklist-item.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.p-picklist-filter{position:relative}.p-picklist-filter-icon{margin-top:-.5rem;position:absolute;top:50%}.p-picklist-filter-input{width:100%}.p-picklist-list.cdk-drop-list-dragging .p-picklist-item:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}"]
602
+ styles: [".p-picklist{display:flex}.p-picklist-buttons{display:flex;flex-direction:column;justify-content:center}.p-picklist-list-wrapper{flex:1 1 50%}.p-picklist-list{list-style-type:none;margin:0;min-height:12rem;overflow:auto;padding:0}.p-picklist-item{cursor:pointer;display:block;overflow:hidden;position:relative}.p-picklist-item:not(.cdk-drag-disabled){cursor:move}.p-picklist-item.cdk-drag-placeholder{opacity:0}.p-picklist-item.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.p-picklist-filter{position:relative}.p-picklist-filter-icon{margin-top:-.5rem;position:absolute;top:50%}.p-picklist-filter-input{width:100%}.p-picklist-list.cdk-drop-list-dragging .p-picklist-item:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}"]
533
603
  },] }
534
604
  ];
535
605
  PickList.ctorParameters = () => [