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
@@ -13,6 +13,7 @@
13
13
  this.showSourceFilter = true;
14
14
  this.showTargetFilter = true;
15
15
  this.metaKeySelection = true;
16
+ this.dragdrop = false;
16
17
  this.showSourceControls = true;
17
18
  this.showTargetControls = true;
18
19
  this.disabled = false;
@@ -46,12 +47,24 @@
46
47
  case 'item':
47
48
  _this.itemTemplate = item.template;
48
49
  break;
50
+ case 'sourceHeader':
51
+ _this.sourceHeaderTemplate = item.template;
52
+ break;
53
+ case 'targetHeader':
54
+ _this.targetHeaderTemplate = item.template;
55
+ break;
49
56
  case 'emptymessagesource':
50
57
  _this.emptyMessageSourceTemplate = item.template;
51
58
  break;
59
+ case 'emptyfiltermessagesource':
60
+ _this.emptyFilterMessageSourceTemplate = item.template;
61
+ break;
52
62
  case 'emptymessagetarget':
53
63
  _this.emptyMessageTargetTemplate = item.template;
54
64
  break;
65
+ case 'emptyfiltermessagetarget':
66
+ _this.emptyFilterMessageTargetTemplate = item.template;
67
+ break;
55
68
  default:
56
69
  _this.itemTemplate = item.template;
57
70
  break;
@@ -114,17 +127,19 @@
114
127
  };
115
128
  PickList.prototype.onFilter = function (event, data, listType) {
116
129
  var query = event.target.value.trim().toLocaleLowerCase(this.filterLocale);
117
- this.filter(query, data, listType);
130
+ if (listType === this.SOURCE_LIST)
131
+ this.filterValueSource = query;
132
+ else if (listType === this.TARGET_LIST)
133
+ this.filterValueTarget = query;
134
+ this.filter(data, listType);
118
135
  };
119
- PickList.prototype.filter = function (query, data, listType) {
136
+ PickList.prototype.filter = function (data, listType) {
120
137
  var searchFields = this.filterBy.split(',');
121
138
  if (listType === this.SOURCE_LIST) {
122
- this.filterValueSource = query;
123
139
  this.visibleOptionsSource = this.filterService.filter(data, searchFields, this.filterValueSource, this.filterMatchMode, this.filterLocale);
124
140
  this.onSourceFilter.emit({ query: this.filterValueSource, value: this.visibleOptionsSource });
125
141
  }
126
142
  else if (listType === this.TARGET_LIST) {
127
- this.filterValueTarget = query;
128
143
  this.visibleOptionsTarget = this.filterService.filter(data, searchFields, this.filterValueTarget, this.filterMatchMode, this.filterLocale);
129
144
  this.onTargetFilter.emit({ query: this.filterValueTarget, value: this.visibleOptionsTarget });
130
145
  }
@@ -135,6 +150,12 @@
135
150
  else
136
151
  return this.isVisibleInList(this.visibleOptionsTarget, item, this.filterValueTarget);
137
152
  };
153
+ PickList.prototype.isEmpty = function (listType) {
154
+ if (listType == this.SOURCE_LIST)
155
+ return this.filterValueSource ? (!this.visibleOptionsSource || this.visibleOptionsSource.length === 0) : (!this.source || this.source.length === 0);
156
+ else
157
+ return this.filterValueTarget ? (!this.visibleOptionsTarget || this.visibleOptionsTarget.length === 0) : (!this.target || this.target.length === 0);
158
+ };
138
159
  PickList.prototype.isVisibleInList = function (data, item, filterValue) {
139
160
  if (filterValue && filterValue.trim().length) {
140
161
  for (var i = 0; i < data.length; i++) {
@@ -147,22 +168,21 @@
147
168
  return true;
148
169
  }
149
170
  };
150
- PickList.prototype.onItemTouchEnd = function (event) {
171
+ PickList.prototype.onItemTouchEnd = function () {
151
172
  if (this.disabled) {
152
173
  return;
153
174
  }
154
175
  this.itemTouched = true;
155
176
  };
156
177
  PickList.prototype.sortByIndexInList = function (items, list) {
157
- var _this = this;
158
- return items.sort(function (item1, item2) { return _this.findIndexInList(item1, list) - _this.findIndexInList(item2, list); });
178
+ return items.sort(function (item1, item2) { return utils.ObjectUtils.findIndexInList(item1, list) - utils.ObjectUtils.findIndexInList(item2, list); });
159
179
  };
160
- PickList.prototype.moveUp = function (listElement, list, selectedItems, callback) {
180
+ PickList.prototype.moveUp = function (listElement, list, selectedItems, callback, listType) {
161
181
  if (selectedItems && selectedItems.length) {
162
182
  selectedItems = this.sortByIndexInList(selectedItems, list);
163
183
  for (var i = 0; i < selectedItems.length; i++) {
164
184
  var selectedItem = selectedItems[i];
165
- var selectedItemIndex = this.findIndexInList(selectedItem, list);
185
+ var selectedItemIndex = utils.ObjectUtils.findIndexInList(selectedItem, list);
166
186
  if (selectedItemIndex != 0) {
167
187
  var movedItem = list[selectedItemIndex];
168
188
  var temp = list[selectedItemIndex - 1];
@@ -173,17 +193,19 @@
173
193
  break;
174
194
  }
175
195
  }
196
+ if (this.dragdrop && ((this.filterValueSource && listType === this.SOURCE_LIST) || (this.filterValueTarget && listType === this.TARGET_LIST)))
197
+ this.filter(list, listType);
176
198
  this.movedUp = true;
177
199
  this.reorderedListElement = listElement;
178
200
  callback.emit({ items: selectedItems });
179
201
  }
180
202
  };
181
- PickList.prototype.moveTop = function (listElement, list, selectedItems, callback) {
203
+ PickList.prototype.moveTop = function (listElement, list, selectedItems, callback, listType) {
182
204
  if (selectedItems && selectedItems.length) {
183
205
  selectedItems = this.sortByIndexInList(selectedItems, list);
184
206
  for (var i = 0; i < selectedItems.length; i++) {
185
207
  var selectedItem = selectedItems[i];
186
- var selectedItemIndex = this.findIndexInList(selectedItem, list);
208
+ var selectedItemIndex = utils.ObjectUtils.findIndexInList(selectedItem, list);
187
209
  if (selectedItemIndex != 0) {
188
210
  var movedItem = list.splice(selectedItemIndex, 1)[0];
189
211
  list.unshift(movedItem);
@@ -192,16 +214,18 @@
192
214
  break;
193
215
  }
194
216
  }
217
+ if (this.dragdrop && ((this.filterValueSource && listType === this.SOURCE_LIST) || (this.filterValueTarget && listType === this.TARGET_LIST)))
218
+ this.filter(list, listType);
195
219
  listElement.scrollTop = 0;
196
220
  callback.emit({ items: selectedItems });
197
221
  }
198
222
  };
199
- PickList.prototype.moveDown = function (listElement, list, selectedItems, callback) {
223
+ PickList.prototype.moveDown = function (listElement, list, selectedItems, callback, listType) {
200
224
  if (selectedItems && selectedItems.length) {
201
225
  selectedItems = this.sortByIndexInList(selectedItems, list);
202
226
  for (var i = selectedItems.length - 1; i >= 0; i--) {
203
227
  var selectedItem = selectedItems[i];
204
- var selectedItemIndex = this.findIndexInList(selectedItem, list);
228
+ var selectedItemIndex = utils.ObjectUtils.findIndexInList(selectedItem, list);
205
229
  if (selectedItemIndex != (list.length - 1)) {
206
230
  var movedItem = list[selectedItemIndex];
207
231
  var temp = list[selectedItemIndex + 1];
@@ -212,17 +236,19 @@
212
236
  break;
213
237
  }
214
238
  }
239
+ if (this.dragdrop && ((this.filterValueSource && listType === this.SOURCE_LIST) || (this.filterValueTarget && listType === this.TARGET_LIST)))
240
+ this.filter(list, listType);
215
241
  this.movedDown = true;
216
242
  this.reorderedListElement = listElement;
217
243
  callback.emit({ items: selectedItems });
218
244
  }
219
245
  };
220
- PickList.prototype.moveBottom = function (listElement, list, selectedItems, callback) {
246
+ PickList.prototype.moveBottom = function (listElement, list, selectedItems, callback, listType) {
221
247
  if (selectedItems && selectedItems.length) {
222
248
  selectedItems = this.sortByIndexInList(selectedItems, list);
223
249
  for (var i = selectedItems.length - 1; i >= 0; i--) {
224
250
  var selectedItem = selectedItems[i];
225
- var selectedItemIndex = this.findIndexInList(selectedItem, list);
251
+ var selectedItemIndex = utils.ObjectUtils.findIndexInList(selectedItem, list);
226
252
  if (selectedItemIndex != (list.length - 1)) {
227
253
  var movedItem = list.splice(selectedItemIndex, 1)[0];
228
254
  list.push(movedItem);
@@ -231,6 +257,8 @@
231
257
  break;
232
258
  }
233
259
  }
260
+ if (this.dragdrop && ((this.filterValueSource && listType === this.SOURCE_LIST) || (this.filterValueTarget && listType === this.TARGET_LIST)))
261
+ this.filter(list, listType);
234
262
  listElement.scrollTop = listElement.scrollHeight;
235
263
  callback.emit({ items: selectedItems });
236
264
  }
@@ -239,8 +267,10 @@
239
267
  if (this.selectedItemsSource && this.selectedItemsSource.length) {
240
268
  for (var i = 0; i < this.selectedItemsSource.length; i++) {
241
269
  var selectedItem = this.selectedItemsSource[i];
242
- if (this.findIndexInList(selectedItem, this.target) == -1) {
243
- this.target.push(this.source.splice(this.findIndexInList(selectedItem, this.source), 1)[0]);
270
+ if (utils.ObjectUtils.findIndexInList(selectedItem, this.target) == -1) {
271
+ this.target.push(this.source.splice(utils.ObjectUtils.findIndexInList(selectedItem, this.source), 1)[0]);
272
+ if (this.visibleOptionsSource)
273
+ this.visibleOptionsSource.splice(utils.ObjectUtils.findIndexInList(selectedItem, this.visibleOptionsSource), 1);
244
274
  }
245
275
  }
246
276
  this.onMoveToTarget.emit({
@@ -248,7 +278,7 @@
248
278
  });
249
279
  this.selectedItemsSource = [];
250
280
  if (this.filterValueTarget) {
251
- this.filter(this.filterValueTarget, this.target, this.TARGET_LIST);
281
+ this.filter(this.target, this.TARGET_LIST);
252
282
  }
253
283
  }
254
284
  };
@@ -268,16 +298,19 @@
268
298
  });
269
299
  this.selectedItemsSource = [];
270
300
  if (this.filterValueTarget) {
271
- this.filter(this.filterValueTarget, this.target, this.TARGET_LIST);
301
+ this.filter(this.target, this.TARGET_LIST);
272
302
  }
303
+ this.visibleOptionsSource = [];
273
304
  }
274
305
  };
275
306
  PickList.prototype.moveLeft = function () {
276
307
  if (this.selectedItemsTarget && this.selectedItemsTarget.length) {
277
308
  for (var i = 0; i < this.selectedItemsTarget.length; i++) {
278
309
  var selectedItem = this.selectedItemsTarget[i];
279
- if (this.findIndexInList(selectedItem, this.source) == -1) {
280
- this.source.push(this.target.splice(this.findIndexInList(selectedItem, this.target), 1)[0]);
310
+ if (utils.ObjectUtils.findIndexInList(selectedItem, this.source) == -1) {
311
+ this.source.push(this.target.splice(utils.ObjectUtils.findIndexInList(selectedItem, this.target), 1)[0]);
312
+ if (this.visibleOptionsTarget)
313
+ this.visibleOptionsTarget.splice(utils.ObjectUtils.findIndexInList(selectedItem, this.visibleOptionsTarget), 1)[0];
281
314
  }
282
315
  }
283
316
  this.onMoveToSource.emit({
@@ -285,7 +318,7 @@
285
318
  });
286
319
  this.selectedItemsTarget = [];
287
320
  if (this.filterValueSource) {
288
- this.filter(this.filterValueSource, this.source, this.SOURCE_LIST);
321
+ this.filter(this.source, this.SOURCE_LIST);
289
322
  }
290
323
  }
291
324
  };
@@ -305,42 +338,70 @@
305
338
  });
306
339
  this.selectedItemsTarget = [];
307
340
  if (this.filterValueSource) {
308
- this.filter(this.filterValueSource, this.source, this.SOURCE_LIST);
341
+ this.filter(this.source, this.SOURCE_LIST);
309
342
  }
343
+ this.visibleOptionsTarget = [];
310
344
  }
311
345
  };
312
346
  PickList.prototype.isSelected = function (item, selectedItems) {
313
347
  return this.findIndexInSelection(item, selectedItems) != -1;
314
348
  };
315
349
  PickList.prototype.findIndexInSelection = function (item, selectedItems) {
316
- return this.findIndexInList(item, selectedItems);
317
- };
318
- PickList.prototype.findIndexInList = function (item, list) {
319
- var index = -1;
320
- if (list) {
321
- for (var i = 0; i < list.length; i++) {
322
- if (list[i] == item) {
323
- index = i;
324
- break;
325
- }
350
+ return utils.ObjectUtils.findIndexInList(item, selectedItems);
351
+ };
352
+ PickList.prototype.onDrop = function (event, listType) {
353
+ var isTransfer = event.previousContainer !== event.container;
354
+ var dropIndexes = this.getDropIndexes(event.previousIndex, event.currentIndex, listType, isTransfer, event.item.data);
355
+ if (listType === this.SOURCE_LIST) {
356
+ if (isTransfer) {
357
+ dragDrop.transferArrayItem(event.previousContainer.data, event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);
358
+ if (this.visibleOptionsTarget)
359
+ this.visibleOptionsTarget.splice(event.previousIndex, 1);
360
+ this.onMoveToSource.emit({ items: event.item.data });
361
+ }
362
+ else {
363
+ dragDrop.moveItemInArray(event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);
364
+ this.onSourceReorder.emit({ items: event.item.data });
365
+ }
366
+ if (this.filterValueSource) {
367
+ this.filter(this.source, this.SOURCE_LIST);
368
+ }
369
+ }
370
+ else {
371
+ if (isTransfer) {
372
+ dragDrop.transferArrayItem(event.previousContainer.data, event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);
373
+ if (this.visibleOptionsSource)
374
+ this.visibleOptionsSource.splice(event.previousIndex, 1);
375
+ this.onMoveToTarget.emit({ items: event.item.data });
376
+ }
377
+ else {
378
+ dragDrop.moveItemInArray(event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);
379
+ this.onTargetReorder.emit({ items: event.item.data });
380
+ }
381
+ if (this.filterValueTarget) {
382
+ this.filter(this.target, this.TARGET_LIST);
326
383
  }
327
384
  }
328
- return index;
329
385
  };
330
- PickList.prototype.onDrop = function (event, listType) {
331
- if (event.previousContainer === event.container) {
332
- dragDrop.moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);
333
- if (listType == this.SOURCE_LIST)
334
- this.onSourceReorder.emit([event.item.data]);
335
- else
336
- this.onTargetReorder.emit([event.item.data]);
386
+ PickList.prototype.getDropIndexes = function (fromIndex, toIndex, droppedList, isTransfer, data) {
387
+ var previousIndex, currentIndex;
388
+ if (droppedList === this.SOURCE_LIST) {
389
+ previousIndex = isTransfer ? this.filterValueTarget ? utils.ObjectUtils.findIndexInList(data, this.target) : fromIndex : this.filterValueSource ? utils.ObjectUtils.findIndexInList(data, this.source) : fromIndex;
390
+ currentIndex = this.filterValueSource ? this.findFilteredCurrentIndex(this.visibleOptionsSource, toIndex, this.source) : toIndex;
337
391
  }
338
392
  else {
339
- dragDrop.transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);
340
- if (listType == this.SOURCE_LIST)
341
- this.onMoveToSource.emit([event.item.data]);
342
- else
343
- this.onMoveToTarget.emit([event.item.data]);
393
+ previousIndex = isTransfer ? this.filterValueSource ? utils.ObjectUtils.findIndexInList(data, this.source) : fromIndex : this.filterValueTarget ? utils.ObjectUtils.findIndexInList(data, this.target) : fromIndex;
394
+ currentIndex = this.filterValueTarget ? this.findFilteredCurrentIndex(this.visibleOptionsTarget, toIndex, this.target) : toIndex;
395
+ }
396
+ return { previousIndex: previousIndex, currentIndex: currentIndex };
397
+ };
398
+ PickList.prototype.findFilteredCurrentIndex = function (visibleOptions, index, options) {
399
+ if (visibleOptions.length === index) {
400
+ var toIndex = utils.ObjectUtils.findIndexInList(visibleOptions[index - 1], options);
401
+ return toIndex + 1;
402
+ }
403
+ else {
404
+ return utils.ObjectUtils.findIndexInList(visibleOptions[index], options);
344
405
  }
345
406
  };
346
407
  PickList.prototype.resetFilter = function () {
@@ -416,10 +477,10 @@
416
477
  PickList.decorators = [
417
478
  { type: core.Component, args: [{
418
479
  selector: 'p-pickList',
419
- template: "\n <div [class]=\"styleClass\" [ngStyle]=\"style\" [ngClass]=\"'p-picklist p-component'\" cdkDropListGroup>\n <div class=\"p-picklist-buttons p-picklist-source-controls\" *ngIf=\"showSourceControls\">\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-up\" [disabled]=\"disabled\" (click)=\"moveUp(sourcelist,source,selectedItemsSource,onSourceReorder)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-up\" [disabled]=\"disabled\" (click)=\"moveTop(sourcelist,source,selectedItemsSource,onSourceReorder)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-down\" [disabled]=\"disabled\" (click)=\"moveDown(sourcelist,source,selectedItemsSource,onSourceReorder)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-down\" [disabled]=\"disabled\" (click)=\"moveBottom(sourcelist,source,selectedItemsSource,onSourceReorder)\"></button>\n </div>\n <div class=\"p-picklist-list-wrapper p-picklist-source-wrapper\">\n <div class=\"p-picklist-header\" *ngIf=\"sourceHeader\">\n <div class=\"p-picklist-title\">{{sourceHeader}}</div>\n </div>\n <div class=\"p-picklist-filter-container\" *ngIf=\"filterBy && showSourceFilter !== false\">\n <div class=\"p-picklist-filter\">\n <input #sourceFilter type=\"text\" role=\"textbox\" (keyup)=\"onFilter($event,source,SOURCE_LIST)\" class=\"p-picklist-filter-input p-inputtext p-component\" [disabled]=\"disabled\" [attr.placeholder]=\"sourceFilterPlaceholder\" [attr.aria-label]=\"ariaSourceFilterLabel\">\n <span class=\"p-picklist-filter-icon pi pi-search\"></span>\n </div>\n </div>\n \n <ul #sourcelist class=\"p-picklist-list p-picklist-source\" cdkDropList [cdkDropListData]=\"source\" (cdkDropListDropped)=\"onDrop($event, SOURCE_LIST)\"\n [ngStyle]=\"sourceStyle\" role=\"listbox\" aria-multiselectable=\"multiple\">\n <ng-template ngFor let-item [ngForOf]=\"source\" [ngForTrackBy]=\"sourceTrackBy || trackBy\" let-i=\"index\" let-l=\"last\">\n <li [ngClass]=\"{'p-picklist-item':true,'p-highlight':isSelected(item,selectedItemsSource),'p-disabled': disabled}\" pRipple cdkDrag [cdkDragData]=\"item\"\n (click)=\"onItemClick($event,item,selectedItemsSource,onSourceSelect)\" (dblclick)=\"onSourceItemDblClick()\" (touchend)=\"onItemTouchEnd($event)\" (keydown)=\"onItemKeydown($event,item,selectedItemsSource,onSourceSelect)\"\n [style.display]=\"isItemVisible(item, SOURCE_LIST) ? 'block' : 'none'\" tabindex=\"0\" role=\"option\" [attr.aria-selected]=\"isSelected(item, selectedItemsSource)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item, index: i}\"></ng-container>\n </li>\n </ng-template>\n <ng-container *ngIf=\"(source == null || source.length === 0) && emptyMessageSourceTemplate\">\n <li class=\"p-picklist-empty-message\">\n <ng-container *ngTemplateOutlet=\"emptyMessageSourceTemplate\"></ng-container>\n </li>\n </ng-container>\n </ul>\n </div>\n <div class=\"p-picklist-buttons p-picklist-transfer-buttons\">\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-right\" [disabled]=\"disabled\" (click)=\"moveRight()\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-right\" [disabled]=\"disabled\" (click)=\"moveAllRight()\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-left\" [disabled]=\"disabled\" (click)=\"moveLeft()\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-left\" [disabled]=\"disabled\" (click)=\"moveAllLeft()\"></button>\n </div>\n <div class=\"p-picklist-list-wrapper p-picklist-target-wrapper\">\n <div class=\"p-picklist-header\" *ngIf=\"targetHeader\">\n <div class=\"p-picklist-title\" *ngIf=\"targetHeader\">{{targetHeader}}</div>\n </div>\n <div class=\"p-picklist-filter-container\" *ngIf=\"filterBy && showTargetFilter !== false\">\n <div class=\"p-picklist-filter\">\n <input #targetFilter type=\"text\" role=\"textbox\" (keyup)=\"onFilter($event,target,TARGET_LIST)\" class=\"p-picklist-filter-input p-inputtext p-component\" [disabled]=\"disabled\" [attr.placeholder]=\"targetFilterPlaceholder\" [attr.aria-label]=\"ariaTargetFilterLabel\">\n <span class=\"p-picklist-filter-icon pi pi-search\"></span>\n </div>\n </div>\n <ul #targetlist class=\"p-picklist-list p-picklist-target\" cdkDropList [cdkDropListData]=\"target\" (cdkDropListDropped)=\"onDrop($event, TARGET_LIST)\"\n [ngStyle]=\"targetStyle\" role=\"listbox\" aria-multiselectable=\"multiple\">\n <ng-template ngFor let-item [ngForOf]=\"target\" [ngForTrackBy]=\"targetTrackBy || trackBy\" let-i=\"index\" let-l=\"last\">\n <li [ngClass]=\"{'p-picklist-item':true,'p-highlight':isSelected(item,selectedItemsTarget), 'p-disabled': disabled}\" pRipple cdkDrag [cdkDragData]=\"item\"\n (click)=\"onItemClick($event,item,selectedItemsTarget,onTargetSelect)\" (dblclick)=\"onTargetItemDblClick()\" (touchend)=\"onItemTouchEnd($event)\" (keydown)=\"onItemKeydown($event,item,selectedItemsTarget,onTargetSelect)\"\n [style.display]=\"isItemVisible(item, TARGET_LIST) ? 'block' : 'none'\" tabindex=\"0\" role=\"option\" [attr.aria-selected]=\"isSelected(item, selectedItemsTarget)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item, index: i}\"></ng-container>\n </li>\n </ng-template>\n <ng-container *ngIf=\"(target == null || target.length === 0) && emptyMessageTargetTemplate\">\n <li class=\"p-picklist-empty-message\">\n <ng-container *ngTemplateOutlet=\"emptyMessageTargetTemplate\"></ng-container>\n </li>\n </ng-container>\n </ul>\n </div>\n <div class=\"p-picklist-buttons p-picklist-target-controls\" *ngIf=\"showTargetControls\">\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-up\" [disabled]=\"disabled\" (click)=\"moveUp(targetlist,target,selectedItemsTarget,onTargetReorder)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-up\" [disabled]=\"disabled\" (click)=\"moveTop(targetlist,target,selectedItemsTarget,onTargetReorder)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-down\" [disabled]=\"disabled\" (click)=\"moveDown(targetlist,target,selectedItemsTarget,onTargetReorder)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-down\" [disabled]=\"disabled\" (click)=\"moveBottom(targetlist,target,selectedItemsTarget,onTargetReorder)\"></button>\n </div>\n </div>\n ",
480
+ template: "\n <div [class]=\"styleClass\" [ngStyle]=\"style\" [ngClass]=\"'p-picklist p-component'\" cdkDropListGroup>\n <div class=\"p-picklist-buttons p-picklist-source-controls\" *ngIf=\"showSourceControls\">\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-up\" [disabled]=\"disabled\" (click)=\"moveUp(sourcelist,source,selectedItemsSource,onSourceReorder,SOURCE_LIST)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-up\" [disabled]=\"disabled\" (click)=\"moveTop(sourcelist,source,selectedItemsSource,onSourceReorder,SOURCE_LIST)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-down\" [disabled]=\"disabled\" (click)=\"moveDown(sourcelist,source,selectedItemsSource,onSourceReorder,SOURCE_LIST)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-down\" [disabled]=\"disabled\" (click)=\"moveBottom(sourcelist,source,selectedItemsSource,onSourceReorder,SOURCE_LIST)\"></button>\n </div>\n <div class=\"p-picklist-list-wrapper p-picklist-source-wrapper\">\n <div class=\"p-picklist-header\" *ngIf=\"sourceHeader || sourceHeaderTemplate\">\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\">\n <div class=\"p-picklist-filter\">\n <input #sourceFilter type=\"text\" role=\"textbox\" (keyup)=\"onFilter($event,source,SOURCE_LIST)\" class=\"p-picklist-filter-input p-inputtext p-component\" [disabled]=\"disabled\" [attr.placeholder]=\"sourceFilterPlaceholder\" [attr.aria-label]=\"ariaSourceFilterLabel\">\n <span class=\"p-picklist-filter-icon pi pi-search\"></span>\n </div>\n </div>\n \n <ul #sourcelist class=\"p-picklist-list p-picklist-source\" cdkDropList [cdkDropListData]=\"source\" (cdkDropListDropped)=\"onDrop($event, SOURCE_LIST)\"\n [ngStyle]=\"sourceStyle\" role=\"listbox\" aria-multiselectable=\"multiple\">\n <ng-template ngFor let-item [ngForOf]=\"source\" [ngForTrackBy]=\"sourceTrackBy || trackBy\" let-i=\"index\" let-l=\"last\">\n <li [ngClass]=\"{'p-picklist-item':true,'p-highlight':isSelected(item,selectedItemsSource),'p-disabled': disabled}\" pRipple cdkDrag [cdkDragData]=\"item\" [cdkDragDisabled]=\"!dragdrop\"\n (click)=\"onItemClick($event,item,selectedItemsSource,onSourceSelect)\" (dblclick)=\"onSourceItemDblClick()\" (touchend)=\"onItemTouchEnd()\" (keydown)=\"onItemKeydown($event,item,selectedItemsSource,onSourceSelect)\"\n *ngIf=\"isItemVisible(item, SOURCE_LIST)\" tabindex=\"0\" role=\"option\" [attr.aria-selected]=\"isSelected(item, selectedItemsSource)\">\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\">\n <ng-container *ngTemplateOutlet=\"emptyMessageSourceTemplate\"></ng-container>\n </li>\n <li class=\"p-picklist-empty-message\" *ngIf=\"filterValueSource\">\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\">\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-right\" [disabled]=\"disabled\" (click)=\"moveRight()\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-right\" [disabled]=\"disabled\" (click)=\"moveAllRight()\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-left\" [disabled]=\"disabled\" (click)=\"moveLeft()\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-left\" [disabled]=\"disabled\" (click)=\"moveAllLeft()\"></button>\n </div>\n <div class=\"p-picklist-list-wrapper p-picklist-target-wrapper\">\n <div class=\"p-picklist-header\" *ngIf=\"targetHeader || targetHeaderTemplate\">\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\">\n <div class=\"p-picklist-filter\">\n <input #targetFilter type=\"text\" role=\"textbox\" (keyup)=\"onFilter($event,target,TARGET_LIST)\" class=\"p-picklist-filter-input p-inputtext p-component\" [disabled]=\"disabled\" [attr.placeholder]=\"targetFilterPlaceholder\" [attr.aria-label]=\"ariaTargetFilterLabel\">\n <span class=\"p-picklist-filter-icon pi pi-search\"></span>\n </div>\n </div>\n <ul #targetlist class=\"p-picklist-list p-picklist-target\" cdkDropList [cdkDropListData]=\"target\" (cdkDropListDropped)=\"onDrop($event, TARGET_LIST)\"\n [ngStyle]=\"targetStyle\" role=\"listbox\" aria-multiselectable=\"multiple\">\n <ng-template ngFor let-item [ngForOf]=\"target\" [ngForTrackBy]=\"targetTrackBy || trackBy\" let-i=\"index\" let-l=\"last\">\n <li [ngClass]=\"{'p-picklist-item':true,'p-highlight':isSelected(item,selectedItemsTarget), 'p-disabled': disabled}\" pRipple cdkDrag [cdkDragData]=\"item\" [cdkDragDisabled]=\"!dragdrop\"\n (click)=\"onItemClick($event,item,selectedItemsTarget,onTargetSelect)\" (dblclick)=\"onTargetItemDblClick()\" (touchend)=\"onItemTouchEnd()\" (keydown)=\"onItemKeydown($event,item,selectedItemsTarget,onTargetSelect)\"\n *ngIf=\"isItemVisible(item, TARGET_LIST)\" tabindex=\"0\" role=\"option\" [attr.aria-selected]=\"isSelected(item, selectedItemsTarget)\">\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\">\n <ng-container *ngTemplateOutlet=\"emptyMessageTargetTemplate\"></ng-container>\n </li>\n <li class=\"p-picklist-empty-message\" *ngIf=\"filterValueTarget\">\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\">\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-up\" [disabled]=\"disabled\" (click)=\"moveUp(targetlist,target,selectedItemsTarget,onTargetReorder,TARGET_LIST)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-up\" [disabled]=\"disabled\" (click)=\"moveTop(targetlist,target,selectedItemsTarget,onTargetReorder,TARGET_LIST)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-down\" [disabled]=\"disabled\" (click)=\"moveDown(targetlist,target,selectedItemsTarget,onTargetReorder,TARGET_LIST)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-down\" [disabled]=\"disabled\" (click)=\"moveBottom(targetlist,target,selectedItemsTarget,onTargetReorder,TARGET_LIST)\"></button>\n </div>\n </div>\n ",
420
481
  changeDetection: core.ChangeDetectionStrategy.OnPush,
421
482
  encapsulation: core.ViewEncapsulation.None,
422
- 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)}"]
483
+ 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)}"]
423
484
  },] }
424
485
  ];
425
486
  PickList.ctorParameters = function () { return [
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-picklist.umd.js","sources":["../../src/app/components/picklist/picklist.ts","../../src/app/components/picklist/primeng-picklist.ts"],"sourcesContent":["import { NgModule, Component, ElementRef, AfterContentInit, AfterViewChecked, Input, Output, ContentChildren, QueryList, TemplateRef, EventEmitter, ViewChild, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ButtonModule} from 'primeng/button';\nimport {SharedModule,PrimeTemplate,FilterService} from 'primeng/api';\nimport {DomHandler} from 'primeng/dom';\nimport {RippleModule} from 'primeng/ripple';\nimport {CdkDragDrop, DragDropModule, moveItemInArray, transferArrayItem} from '@angular/cdk/drag-drop';\nimport {UniqueComponentId} from 'primeng/utils';\n\n@Component({\n selector: 'p-pickList',\n template: `\n <div [class]=\"styleClass\" [ngStyle]=\"style\" [ngClass]=\"'p-picklist p-component'\" cdkDropListGroup>\n <div class=\"p-picklist-buttons p-picklist-source-controls\" *ngIf=\"showSourceControls\">\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-up\" [disabled]=\"disabled\" (click)=\"moveUp(sourcelist,source,selectedItemsSource,onSourceReorder)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-up\" [disabled]=\"disabled\" (click)=\"moveTop(sourcelist,source,selectedItemsSource,onSourceReorder)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-down\" [disabled]=\"disabled\" (click)=\"moveDown(sourcelist,source,selectedItemsSource,onSourceReorder)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-down\" [disabled]=\"disabled\" (click)=\"moveBottom(sourcelist,source,selectedItemsSource,onSourceReorder)\"></button>\n </div>\n <div class=\"p-picklist-list-wrapper p-picklist-source-wrapper\">\n <div class=\"p-picklist-header\" *ngIf=\"sourceHeader\">\n <div class=\"p-picklist-title\">{{sourceHeader}}</div>\n </div>\n <div class=\"p-picklist-filter-container\" *ngIf=\"filterBy && showSourceFilter !== false\">\n <div class=\"p-picklist-filter\">\n <input #sourceFilter type=\"text\" role=\"textbox\" (keyup)=\"onFilter($event,source,SOURCE_LIST)\" class=\"p-picklist-filter-input p-inputtext p-component\" [disabled]=\"disabled\" [attr.placeholder]=\"sourceFilterPlaceholder\" [attr.aria-label]=\"ariaSourceFilterLabel\">\n <span class=\"p-picklist-filter-icon pi pi-search\"></span>\n </div>\n </div>\n \n <ul #sourcelist class=\"p-picklist-list p-picklist-source\" cdkDropList [cdkDropListData]=\"source\" (cdkDropListDropped)=\"onDrop($event, SOURCE_LIST)\"\n [ngStyle]=\"sourceStyle\" role=\"listbox\" aria-multiselectable=\"multiple\">\n <ng-template ngFor let-item [ngForOf]=\"source\" [ngForTrackBy]=\"sourceTrackBy || trackBy\" let-i=\"index\" let-l=\"last\">\n <li [ngClass]=\"{'p-picklist-item':true,'p-highlight':isSelected(item,selectedItemsSource),'p-disabled': disabled}\" pRipple cdkDrag [cdkDragData]=\"item\"\n (click)=\"onItemClick($event,item,selectedItemsSource,onSourceSelect)\" (dblclick)=\"onSourceItemDblClick()\" (touchend)=\"onItemTouchEnd($event)\" (keydown)=\"onItemKeydown($event,item,selectedItemsSource,onSourceSelect)\"\n [style.display]=\"isItemVisible(item, SOURCE_LIST) ? 'block' : 'none'\" tabindex=\"0\" role=\"option\" [attr.aria-selected]=\"isSelected(item, selectedItemsSource)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item, index: i}\"></ng-container>\n </li>\n </ng-template>\n <ng-container *ngIf=\"(source == null || source.length === 0) && emptyMessageSourceTemplate\">\n <li class=\"p-picklist-empty-message\">\n <ng-container *ngTemplateOutlet=\"emptyMessageSourceTemplate\"></ng-container>\n </li>\n </ng-container>\n </ul>\n </div>\n <div class=\"p-picklist-buttons p-picklist-transfer-buttons\">\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-right\" [disabled]=\"disabled\" (click)=\"moveRight()\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-right\" [disabled]=\"disabled\" (click)=\"moveAllRight()\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-left\" [disabled]=\"disabled\" (click)=\"moveLeft()\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-left\" [disabled]=\"disabled\" (click)=\"moveAllLeft()\"></button>\n </div>\n <div class=\"p-picklist-list-wrapper p-picklist-target-wrapper\">\n <div class=\"p-picklist-header\" *ngIf=\"targetHeader\">\n <div class=\"p-picklist-title\" *ngIf=\"targetHeader\">{{targetHeader}}</div>\n </div>\n <div class=\"p-picklist-filter-container\" *ngIf=\"filterBy && showTargetFilter !== false\">\n <div class=\"p-picklist-filter\">\n <input #targetFilter type=\"text\" role=\"textbox\" (keyup)=\"onFilter($event,target,TARGET_LIST)\" class=\"p-picklist-filter-input p-inputtext p-component\" [disabled]=\"disabled\" [attr.placeholder]=\"targetFilterPlaceholder\" [attr.aria-label]=\"ariaTargetFilterLabel\">\n <span class=\"p-picklist-filter-icon pi pi-search\"></span>\n </div>\n </div>\n <ul #targetlist class=\"p-picklist-list p-picklist-target\" cdkDropList [cdkDropListData]=\"target\" (cdkDropListDropped)=\"onDrop($event, TARGET_LIST)\"\n [ngStyle]=\"targetStyle\" role=\"listbox\" aria-multiselectable=\"multiple\">\n <ng-template ngFor let-item [ngForOf]=\"target\" [ngForTrackBy]=\"targetTrackBy || trackBy\" let-i=\"index\" let-l=\"last\">\n <li [ngClass]=\"{'p-picklist-item':true,'p-highlight':isSelected(item,selectedItemsTarget), 'p-disabled': disabled}\" pRipple cdkDrag [cdkDragData]=\"item\"\n (click)=\"onItemClick($event,item,selectedItemsTarget,onTargetSelect)\" (dblclick)=\"onTargetItemDblClick()\" (touchend)=\"onItemTouchEnd($event)\" (keydown)=\"onItemKeydown($event,item,selectedItemsTarget,onTargetSelect)\"\n [style.display]=\"isItemVisible(item, TARGET_LIST) ? 'block' : 'none'\" tabindex=\"0\" role=\"option\" [attr.aria-selected]=\"isSelected(item, selectedItemsTarget)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item, index: i}\"></ng-container>\n </li>\n </ng-template>\n <ng-container *ngIf=\"(target == null || target.length === 0) && emptyMessageTargetTemplate\">\n <li class=\"p-picklist-empty-message\">\n <ng-container *ngTemplateOutlet=\"emptyMessageTargetTemplate\"></ng-container>\n </li>\n </ng-container>\n </ul>\n </div>\n <div class=\"p-picklist-buttons p-picklist-target-controls\" *ngIf=\"showTargetControls\">\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-up\" [disabled]=\"disabled\" (click)=\"moveUp(targetlist,target,selectedItemsTarget,onTargetReorder)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-up\" [disabled]=\"disabled\" (click)=\"moveTop(targetlist,target,selectedItemsTarget,onTargetReorder)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-down\" [disabled]=\"disabled\" (click)=\"moveDown(targetlist,target,selectedItemsTarget,onTargetReorder)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-down\" [disabled]=\"disabled\" (click)=\"moveBottom(targetlist,target,selectedItemsTarget,onTargetReorder)\"></button>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./picklist.css']\n})\nexport class PickList implements AfterViewChecked,AfterContentInit {\n\n @Input() source: any[];\n\n @Input() target: any[];\n\n @Input() sourceHeader: string;\n\n @Input() targetHeader: string;\n\n @Input() responsive: boolean;\n\n @Input() filterBy: string;\n\n @Input() filterLocale: string;\n\n @Input() trackBy: Function = (index: number, item: any) => item;\n\n @Input() sourceTrackBy: Function;\n\n @Input() targetTrackBy: Function;\n\n @Input() showSourceFilter: boolean = true;\n\n @Input() showTargetFilter: boolean = true;\n\n @Input() metaKeySelection: boolean = true;\n\n @Input() dragdrop: boolean;\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() sourceStyle: any;\n\n @Input() targetStyle: any;\n\n @Input() showSourceControls: boolean = true;\n\n @Input() showTargetControls: boolean = true;\n\n @Input() sourceFilterPlaceholder: string;\n\n @Input() targetFilterPlaceholder: string;\n\n @Input() disabled: boolean = false;\n\n @Input() ariaSourceFilterLabel: string;\n\n @Input() ariaTargetFilterLabel: string;\n\n @Input() filterMatchMode: string = \"contains\";\n\n @Input() breakpoint: string = \"960px\";\n\n @Output() onMoveToSource: EventEmitter<any> = new EventEmitter();\n\n @Output() onMoveAllToSource: EventEmitter<any> = new EventEmitter();\n\n @Output() onMoveAllToTarget: EventEmitter<any> = new EventEmitter();\n\n @Output() onMoveToTarget: EventEmitter<any> = new EventEmitter();\n\n @Output() onSourceReorder: EventEmitter<any> = new EventEmitter();\n\n @Output() onTargetReorder: EventEmitter<any> = new EventEmitter();\n\n @Output() onSourceSelect: EventEmitter<any> = new EventEmitter();\n\n @Output() onTargetSelect: EventEmitter<any> = new EventEmitter();\n\n @Output() onSourceFilter: EventEmitter<any> = new EventEmitter();\n\n @Output() onTargetFilter: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('sourcelist') listViewSourceChild: ElementRef;\n\n @ViewChild('targetlist') listViewTargetChild: ElementRef;\n\n @ViewChild('sourceFilter') sourceFilterViewChild: ElementRef;\n\n @ViewChild('targetFilter') targetFilterViewChild: ElementRef;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n public itemTemplate: TemplateRef<any>;\n\n public visibleOptionsSource: any[];\n\n public visibleOptionsTarget: any[];\n\n selectedItemsSource: any[] = [];\n\n selectedItemsTarget: any[] = [];\n\n reorderedListElement: any;\n\n movedUp: boolean;\n\n movedDown: boolean;\n\n itemTouched: boolean;\n\n styleElement: any;\n\n id: string = UniqueComponentId();\n\n filterValueSource: string;\n\n filterValueTarget: string;\n\n fromListType: number;\n\n emptyMessageSourceTemplate: TemplateRef<any>;\n\n emptyMessageTargetTemplate: TemplateRef<any>;\n\n readonly SOURCE_LIST = -1;\n\n readonly TARGET_LIST = 1;\n\n constructor(public el: ElementRef, public cd: ChangeDetectorRef, public filterService: FilterService) {}\n\n\n ngOnInit() {\n if (this.responsive) {\n this.createStyle();\n }\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'item':\n this.itemTemplate = item.template;\n break;\n\n case 'emptymessagesource':\n this.emptyMessageSourceTemplate = item.template;\n break;\n\n case 'emptymessagetarget':\n this.emptyMessageTargetTemplate = 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)\n listItem = listItems[0];\n else\n 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, item: any, selectedItems: any[], callback: EventEmitter<any>) {\n if (this.disabled) {\n return;\n }\n\n let index = this.findIndexInSelection(item,selectedItems);\n let selected = (index != -1);\n let metaSelection = this.itemTouched ? false : this.metaKeySelection;\n\n if (metaSelection) {\n let metaKey = (event.metaKey||event.ctrlKey||event.shiftKey);\n\n if (selected && metaKey) {\n selectedItems.splice(index, 1);\n }\n else {\n if (!metaKey) {\n selectedItems.length = 0;\n }\n selectedItems.push(item);\n }\n }\n else {\n if (selected)\n selectedItems.splice(index, 1);\n else\n selectedItems.push(item);\n }\n\n callback.emit({originalEvent: event, items: selectedItems});\n\n this.itemTouched = false;\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, data: any[], listType: number) {\n let query = ((<HTMLInputElement> event.target).value.trim() as any).toLocaleLowerCase(this.filterLocale);\n this.filter(query, data, listType);\n }\n\n filter(query: string, data: any[], listType: number) {\n let searchFields = this.filterBy.split(',');\n\n if (listType === this.SOURCE_LIST) {\n this.filterValueSource = query;\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 }\n else if (listType === this.TARGET_LIST) {\n this.filterValueTarget = query;\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 {\n if (listType == this.SOURCE_LIST)\n return this.isVisibleInList(this.visibleOptionsSource, item, this.filterValueSource);\n else\n return this.isVisibleInList(this.visibleOptionsTarget, item, this.filterValueTarget);\n }\n\n isVisibleInList(data: any[], item: any, filterValue: string): boolean {\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 }\n else {\n return true;\n }\n }\n\n onItemTouchEnd(event) {\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) =>\n this.findIndexInList(item1, list) - this.findIndexInList(item2, list));\n }\n\n moveUp(listElement, list, selectedItems, callback) {\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 = this.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 }\n else {\n break;\n }\n }\n\n this.movedUp = true;\n this.reorderedListElement = listElement;\n callback.emit({items: selectedItems});\n }\n }\n\n moveTop(listElement, list, selectedItems, callback) {\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 = this.findIndexInList(selectedItem, list);\n\n if (selectedItemIndex != 0) {\n let movedItem = list.splice(selectedItemIndex,1)[0];\n list.unshift(movedItem);\n }\n else {\n break;\n }\n }\n\n listElement.scrollTop = 0;\n callback.emit({items: selectedItems});\n }\n }\n\n moveDown(listElement, list, selectedItems, callback) {\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 = this.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 }\n else {\n break;\n }\n }\n\n this.movedDown = true;\n this.reorderedListElement = listElement;\n callback.emit({items: selectedItems});\n }\n }\n\n moveBottom(listElement, list, selectedItems, callback) {\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 = this.findIndexInList(selectedItem, list);\n\n if (selectedItemIndex != (list.length - 1)) {\n let movedItem = list.splice(selectedItemIndex,1)[0];\n list.push(movedItem);\n }\n else {\n break;\n }\n }\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 (this.findIndexInList(selectedItem, this.target) == -1) {\n this.target.push(this.source.splice(this.findIndexInList(selectedItem, this.source),1)[0]);\n }\n }\n this.onMoveToTarget.emit({\n items: this.selectedItemsSource\n });\n this.selectedItemsSource = [];\n\n if (this.filterValueTarget) {\n this.filter(this.filterValueTarget, 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 this.selectedItemsSource = [];\n\n if (this.filterValueTarget) {\n this.filter(this.filterValueTarget, this.target, this.TARGET_LIST);\n }\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 (this.findIndexInList(selectedItem, this.source) == -1) {\n this.source.push(this.target.splice(this.findIndexInList(selectedItem, this.target),1)[0]);\n }\n }\n this.onMoveToSource.emit({\n items: this.selectedItemsTarget\n });\n\n this.selectedItemsTarget = [];\n\n if (this.filterValueSource) {\n this.filter(this.filterValueSource, 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 this.selectedItemsTarget = [];\n\n if (this.filterValueSource) {\n this.filter(this.filterValueSource, this.source, this.SOURCE_LIST);\n }\n }\n }\n\n isSelected(item: any, selectedItems: any[]) {\n return this.findIndexInSelection(item, selectedItems) != -1;\n }\n\n findIndexInSelection(item: any, selectedItems: any[]): number {\n return this.findIndexInList(item, selectedItems);\n }\n\n findIndexInList(item: any, list: any): number {\n let index: number = -1;\n\n if (list) {\n for(let i = 0; i < list.length; i++) {\n if (list[i] == item) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n\n onDrop(event: CdkDragDrop<string[]>, listType: number) {\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n\n if (listType == this.SOURCE_LIST)\n this.onSourceReorder.emit([event.item.data]);\n else\n this.onTargetReorder.emit([event.item.data]);\n } \n else {\n transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);\n\n if (listType == this.SOURCE_LIST)\n this.onMoveToSource.emit([event.item.data]);\n else\n this.onMoveToTarget.emit([event.item.data]);\n }\n }\n\n resetFilter() {\n this.visibleOptionsSource = null;\n this.filterValueSource = null;\n this.visibleOptionsTarget = null;\n this.filterValueTarget = null;\n\n (<HTMLInputElement> this.sourceFilterViewChild.nativeElement).value = '';\n (<HTMLInputElement> this.targetFilterViewChild.nativeElement).value = '';\n }\n\n onItemKeydown(event: KeyboardEvent, item: any, selectedItems: any[], callback: EventEmitter<any>) {\n let listItem = <HTMLLIElement> event.currentTarget;\n\n switch(event.which) {\n //down\n case 40:\n var nextItem = this.findNextItem(listItem);\n if (nextItem) {\n nextItem.focus();\n }\n\n event.preventDefault();\n break;\n\n //up\n case 38:\n var prevItem = this.findPrevItem(listItem);\n if (prevItem) {\n prevItem.focus();\n }\n\n event.preventDefault();\n break;\n\n //enter\n case 13:\n this.onItemClick(event, item, selectedItems, callback);\n event.preventDefault();\n break;\n }\n }\n\n findNextItem(item) {\n let nextItem = item.nextElementSibling;\n\n if (nextItem)\n return !DomHandler.hasClass(nextItem, 'p-picklist-item') || DomHandler.isHidden(nextItem) ? this.findNextItem(nextItem) : nextItem;\n else\n return null;\n }\n\n findPrevItem(item) {\n let prevItem = item.previousElementSibling;\n\n if (prevItem)\n return !DomHandler.hasClass(prevItem, 'p-picklist-item') || DomHandler.isHidden(prevItem) ? this.findPrevItem(prevItem) : prevItem;\n else\n return null;\n }\n\n createStyle() {\n if (!this.styleElement) {\n this.el.nativeElement.children[0].setAttribute(this.id, '');\n this.styleElement = document.createElement('style');\n this.styleElement.type = 'text/css';\n document.head.appendChild(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 .p-picklist[${this.id}] .pi-angle-right:before {\n content: \"\\\\e930\"\n }\n \n .p-picklist[${this.id}] .pi-angle-double-right:before {\n content: \"\\\\e92c\"\n }\n \n .p-picklist[${this.id}] .pi-angle-left:before {\n content: \"\\\\e933\"\n }\n \n .p-picklist[${this.id}] .pi-angle-double-left:before {\n content: \"\\\\e92f\"\n }\n }\n `;\n \n this.styleElement.innerHTML = innerHTML;\n }\n }\n\n destroyStyle() {\n if (this.styleElement) {\n document.head.removeChild(this.styleElement);\n this.styleElement = null;``\n }\n }\n\n ngOnDestroy() {\n this.destroyStyle();\n }\n}\n\n@NgModule({\n imports: [CommonModule,ButtonModule,SharedModule,RippleModule,DragDropModule],\n exports: [PickList,SharedModule,DragDropModule],\n declarations: [PickList]\n})\nexport class PickListModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["EventEmitter","UniqueComponentId","DomHandler","moveItemInArray","transferArrayItem","Component","ChangeDetectionStrategy","ViewEncapsulation","ElementRef","ChangeDetectorRef","FilterService","Input","Output","ViewChild","ContentChildren","PrimeTemplate","NgModule","CommonModule","ButtonModule","SharedModule","RippleModule","DragDropModule"],"mappings":"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"}
1
+ {"version":3,"file":"primeng-picklist.umd.js","sources":["../../src/app/components/picklist/picklist.ts","../../src/app/components/picklist/primeng-picklist.ts"],"sourcesContent":["import { NgModule, Component, ElementRef, AfterContentInit, AfterViewChecked, Input, Output, ContentChildren, QueryList, TemplateRef, EventEmitter, ViewChild, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ButtonModule} from 'primeng/button';\nimport {SharedModule,PrimeTemplate,FilterService} from 'primeng/api';\nimport {DomHandler} from 'primeng/dom';\nimport {RippleModule} from 'primeng/ripple';\nimport {CdkDragDrop, DragDropModule, moveItemInArray, transferArrayItem} from '@angular/cdk/drag-drop';\nimport {ObjectUtils, UniqueComponentId} from 'primeng/utils';\n\n@Component({\n selector: 'p-pickList',\n template: `\n <div [class]=\"styleClass\" [ngStyle]=\"style\" [ngClass]=\"'p-picklist p-component'\" cdkDropListGroup>\n <div class=\"p-picklist-buttons p-picklist-source-controls\" *ngIf=\"showSourceControls\">\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-up\" [disabled]=\"disabled\" (click)=\"moveUp(sourcelist,source,selectedItemsSource,onSourceReorder,SOURCE_LIST)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-up\" [disabled]=\"disabled\" (click)=\"moveTop(sourcelist,source,selectedItemsSource,onSourceReorder,SOURCE_LIST)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-down\" [disabled]=\"disabled\" (click)=\"moveDown(sourcelist,source,selectedItemsSource,onSourceReorder,SOURCE_LIST)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-down\" [disabled]=\"disabled\" (click)=\"moveBottom(sourcelist,source,selectedItemsSource,onSourceReorder,SOURCE_LIST)\"></button>\n </div>\n <div class=\"p-picklist-list-wrapper p-picklist-source-wrapper\">\n <div class=\"p-picklist-header\" *ngIf=\"sourceHeader || sourceHeaderTemplate\">\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\">\n <div class=\"p-picklist-filter\">\n <input #sourceFilter type=\"text\" role=\"textbox\" (keyup)=\"onFilter($event,source,SOURCE_LIST)\" class=\"p-picklist-filter-input p-inputtext p-component\" [disabled]=\"disabled\" [attr.placeholder]=\"sourceFilterPlaceholder\" [attr.aria-label]=\"ariaSourceFilterLabel\">\n <span class=\"p-picklist-filter-icon pi pi-search\"></span>\n </div>\n </div>\n \n <ul #sourcelist class=\"p-picklist-list p-picklist-source\" cdkDropList [cdkDropListData]=\"source\" (cdkDropListDropped)=\"onDrop($event, SOURCE_LIST)\"\n [ngStyle]=\"sourceStyle\" role=\"listbox\" aria-multiselectable=\"multiple\">\n <ng-template ngFor let-item [ngForOf]=\"source\" [ngForTrackBy]=\"sourceTrackBy || trackBy\" let-i=\"index\" let-l=\"last\">\n <li [ngClass]=\"{'p-picklist-item':true,'p-highlight':isSelected(item,selectedItemsSource),'p-disabled': disabled}\" pRipple cdkDrag [cdkDragData]=\"item\" [cdkDragDisabled]=\"!dragdrop\"\n (click)=\"onItemClick($event,item,selectedItemsSource,onSourceSelect)\" (dblclick)=\"onSourceItemDblClick()\" (touchend)=\"onItemTouchEnd()\" (keydown)=\"onItemKeydown($event,item,selectedItemsSource,onSourceSelect)\"\n *ngIf=\"isItemVisible(item, SOURCE_LIST)\" tabindex=\"0\" role=\"option\" [attr.aria-selected]=\"isSelected(item, selectedItemsSource)\">\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\">\n <ng-container *ngTemplateOutlet=\"emptyMessageSourceTemplate\"></ng-container>\n </li>\n <li class=\"p-picklist-empty-message\" *ngIf=\"filterValueSource\">\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\">\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-right\" [disabled]=\"disabled\" (click)=\"moveRight()\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-right\" [disabled]=\"disabled\" (click)=\"moveAllRight()\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-left\" [disabled]=\"disabled\" (click)=\"moveLeft()\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-left\" [disabled]=\"disabled\" (click)=\"moveAllLeft()\"></button>\n </div>\n <div class=\"p-picklist-list-wrapper p-picklist-target-wrapper\">\n <div class=\"p-picklist-header\" *ngIf=\"targetHeader || targetHeaderTemplate\">\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\">\n <div class=\"p-picklist-filter\">\n <input #targetFilter type=\"text\" role=\"textbox\" (keyup)=\"onFilter($event,target,TARGET_LIST)\" class=\"p-picklist-filter-input p-inputtext p-component\" [disabled]=\"disabled\" [attr.placeholder]=\"targetFilterPlaceholder\" [attr.aria-label]=\"ariaTargetFilterLabel\">\n <span class=\"p-picklist-filter-icon pi pi-search\"></span>\n </div>\n </div>\n <ul #targetlist class=\"p-picklist-list p-picklist-target\" cdkDropList [cdkDropListData]=\"target\" (cdkDropListDropped)=\"onDrop($event, TARGET_LIST)\"\n [ngStyle]=\"targetStyle\" role=\"listbox\" aria-multiselectable=\"multiple\">\n <ng-template ngFor let-item [ngForOf]=\"target\" [ngForTrackBy]=\"targetTrackBy || trackBy\" let-i=\"index\" let-l=\"last\">\n <li [ngClass]=\"{'p-picklist-item':true,'p-highlight':isSelected(item,selectedItemsTarget), 'p-disabled': disabled}\" pRipple cdkDrag [cdkDragData]=\"item\" [cdkDragDisabled]=\"!dragdrop\"\n (click)=\"onItemClick($event,item,selectedItemsTarget,onTargetSelect)\" (dblclick)=\"onTargetItemDblClick()\" (touchend)=\"onItemTouchEnd()\" (keydown)=\"onItemKeydown($event,item,selectedItemsTarget,onTargetSelect)\"\n *ngIf=\"isItemVisible(item, TARGET_LIST)\" tabindex=\"0\" role=\"option\" [attr.aria-selected]=\"isSelected(item, selectedItemsTarget)\">\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\">\n <ng-container *ngTemplateOutlet=\"emptyMessageTargetTemplate\"></ng-container>\n </li>\n <li class=\"p-picklist-empty-message\" *ngIf=\"filterValueTarget\">\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\">\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-up\" [disabled]=\"disabled\" (click)=\"moveUp(targetlist,target,selectedItemsTarget,onTargetReorder,TARGET_LIST)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-up\" [disabled]=\"disabled\" (click)=\"moveTop(targetlist,target,selectedItemsTarget,onTargetReorder,TARGET_LIST)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-down\" [disabled]=\"disabled\" (click)=\"moveDown(targetlist,target,selectedItemsTarget,onTargetReorder,TARGET_LIST)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-down\" [disabled]=\"disabled\" (click)=\"moveBottom(targetlist,target,selectedItemsTarget,onTargetReorder,TARGET_LIST)\"></button>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./picklist.css']\n})\nexport class PickList implements AfterViewChecked,AfterContentInit {\n\n @Input() source: any[];\n\n @Input() target: any[];\n\n @Input() sourceHeader: string;\n\n @Input() targetHeader: string;\n\n @Input() responsive: boolean;\n\n @Input() filterBy: string;\n\n @Input() filterLocale: string;\n\n @Input() trackBy: Function = (index: number, item: any) => item;\n\n @Input() sourceTrackBy: Function;\n\n @Input() targetTrackBy: Function;\n\n @Input() showSourceFilter: boolean = true;\n\n @Input() showTargetFilter: boolean = true;\n\n @Input() metaKeySelection: boolean = true;\n\n @Input() dragdrop: boolean = false;\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() sourceStyle: any;\n\n @Input() targetStyle: any;\n\n @Input() showSourceControls: boolean = true;\n\n @Input() showTargetControls: boolean = true;\n\n @Input() sourceFilterPlaceholder: string;\n\n @Input() targetFilterPlaceholder: string;\n\n @Input() disabled: boolean = false;\n\n @Input() ariaSourceFilterLabel: string;\n\n @Input() ariaTargetFilterLabel: string;\n\n @Input() filterMatchMode: string = \"contains\";\n\n @Input() breakpoint: string = \"960px\";\n\n @Output() onMoveToSource: EventEmitter<any> = new EventEmitter();\n\n @Output() onMoveAllToSource: EventEmitter<any> = new EventEmitter();\n\n @Output() onMoveAllToTarget: EventEmitter<any> = new EventEmitter();\n\n @Output() onMoveToTarget: EventEmitter<any> = new EventEmitter();\n\n @Output() onSourceReorder: EventEmitter<any> = new EventEmitter();\n\n @Output() onTargetReorder: EventEmitter<any> = new EventEmitter();\n\n @Output() onSourceSelect: EventEmitter<any> = new EventEmitter();\n\n @Output() onTargetSelect: EventEmitter<any> = new EventEmitter();\n\n @Output() onSourceFilter: EventEmitter<any> = new EventEmitter();\n\n @Output() onTargetFilter: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('sourcelist') listViewSourceChild: ElementRef;\n\n @ViewChild('targetlist') listViewTargetChild: ElementRef;\n\n @ViewChild('sourceFilter') sourceFilterViewChild: ElementRef;\n\n @ViewChild('targetFilter') targetFilterViewChild: ElementRef;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n public itemTemplate: TemplateRef<any>;\n\n public visibleOptionsSource: any[];\n\n public visibleOptionsTarget: any[];\n\n selectedItemsSource: any[] = [];\n\n selectedItemsTarget: any[] = [];\n\n reorderedListElement: any;\n\n movedUp: boolean;\n\n movedDown: boolean;\n\n itemTouched: boolean;\n\n styleElement: any;\n\n id: string = UniqueComponentId();\n\n filterValueSource: string;\n\n filterValueTarget: string;\n\n fromListType: number;\n\n emptyMessageSourceTemplate: TemplateRef<any>;\n\n emptyFilterMessageSourceTemplate: TemplateRef<any>;\n\n emptyMessageTargetTemplate: TemplateRef<any>;\n\n emptyFilterMessageTargetTemplate: TemplateRef<any>;\n\n sourceHeaderTemplate: TemplateRef<any>;\n\n targetHeaderTemplate: TemplateRef<any>;\n\n readonly SOURCE_LIST = -1;\n\n readonly TARGET_LIST = 1;\n\n constructor(public el: ElementRef, public cd: ChangeDetectorRef, public filterService: FilterService) {}\n\n\n ngOnInit() {\n if (this.responsive) {\n this.createStyle();\n }\n }\n\n ngAfterContentInit() {\n this.templates.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 '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 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)\n listItem = listItems[0];\n else\n 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, item: any, selectedItems: any[], callback: EventEmitter<any>) {\n if (this.disabled) {\n return;\n }\n\n let index = this.findIndexInSelection(item,selectedItems);\n let selected = (index != -1);\n let metaSelection = this.itemTouched ? false : this.metaKeySelection;\n\n if (metaSelection) {\n let metaKey = (event.metaKey||event.ctrlKey||event.shiftKey);\n\n if (selected && metaKey) {\n selectedItems.splice(index, 1);\n }\n else {\n if (!metaKey) {\n selectedItems.length = 0;\n }\n selectedItems.push(item);\n }\n }\n else {\n if (selected)\n selectedItems.splice(index, 1);\n else\n selectedItems.push(item);\n }\n\n callback.emit({originalEvent: event, items: selectedItems});\n\n this.itemTouched = false;\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, data: any[], listType: number) {\n let query = ((<HTMLInputElement> event.target).value.trim() as any).toLocaleLowerCase(this.filterLocale);\n if (listType === this.SOURCE_LIST)\n this.filterValueSource = query;\n else if (listType === this.TARGET_LIST)\n this.filterValueTarget = query;\n \n this.filter(data, listType);\n }\n\n filter(data: any[], listType: number) {\n let searchFields = 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 }\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 {\n if (listType == this.SOURCE_LIST)\n return this.isVisibleInList(this.visibleOptionsSource, item, this.filterValueSource);\n else\n return this.isVisibleInList(this.visibleOptionsTarget, item, this.filterValueTarget);\n }\n\n isEmpty(listType: number) {\n if (listType == this.SOURCE_LIST)\n return this.filterValueSource ? (!this.visibleOptionsSource || this.visibleOptionsSource.length === 0) : (!this.source || this.source.length === 0);\n else\n return this.filterValueTarget ? (!this.visibleOptionsTarget || this.visibleOptionsTarget.length === 0) : (!this.target || this.target.length === 0);\n }\n \n\n isVisibleInList(data: any[], item: any, filterValue: string): boolean {\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 }\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) =>\n ObjectUtils.findIndexInList(item1, list) - ObjectUtils.findIndexInList(item2, list));\n }\n\n moveUp(listElement, list, selectedItems, callback, listType) {\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 }\n else {\n break;\n }\n }\n\n if (this.dragdrop && ((this.filterValueSource && listType === this.SOURCE_LIST) || (this.filterValueTarget && listType === this.TARGET_LIST)))\n this.filter(list, listType);\n\n this.movedUp = true;\n this.reorderedListElement = listElement;\n callback.emit({items: selectedItems});\n }\n }\n\n moveTop(listElement, list, selectedItems, callback, listType) {\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 }\n else {\n break;\n }\n }\n\n if (this.dragdrop && ((this.filterValueSource && listType === this.SOURCE_LIST) || (this.filterValueTarget && listType === this.TARGET_LIST)))\n this.filter(list, listType);\n\n listElement.scrollTop = 0;\n callback.emit({items: selectedItems});\n }\n }\n\n moveDown(listElement, list, selectedItems, callback, listType) {\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 }\n else {\n break;\n }\n }\n\n if (this.dragdrop && ((this.filterValueSource && listType === this.SOURCE_LIST) || (this.filterValueTarget && listType === this.TARGET_LIST)))\n this.filter(list, listType);\n\n this.movedDown = true;\n this.reorderedListElement = listElement;\n callback.emit({items: selectedItems});\n }\n }\n\n moveBottom(listElement, list, selectedItems, callback, listType) {\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 }\n else {\n break;\n }\n }\n\n if (this.dragdrop && ((this.filterValueSource && listType === this.SOURCE_LIST) || (this.filterValueTarget && listType === this.TARGET_LIST)))\n 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)\n this.visibleOptionsSource.splice(ObjectUtils.findIndexInList(selectedItem, this.visibleOptionsSource),1);\n }\n }\n this.onMoveToTarget.emit({\n items: this.selectedItemsSource\n });\n this.selectedItemsSource = [];\n\n if (this.filterValueTarget) {\n this.filter(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 this.selectedItemsSource = [];\n\n if (this.filterValueTarget) {\n this.filter(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)\n this.visibleOptionsTarget.splice(ObjectUtils.findIndexInList(selectedItem, this.visibleOptionsTarget),1)[0]\n }\n }\n this.onMoveToSource.emit({\n items: this.selectedItemsTarget\n });\n\n this.selectedItemsTarget = [];\n\n if (this.filterValueSource) {\n this.filter(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 this.selectedItemsTarget = [];\n\n if (this.filterValueSource) {\n this.filter(this.source, this.SOURCE_LIST);\n }\n\n this.visibleOptionsTarget = [];\n }\n }\n\n isSelected(item: any, selectedItems: any[]) {\n return this.findIndexInSelection(item, selectedItems) != -1;\n }\n\n findIndexInSelection(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 \n if (this.visibleOptionsTarget)\n this.visibleOptionsTarget.splice(event.previousIndex, 1);\n \n this.onMoveToSource.emit({items: event.item.data});\n }\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(this.source, this.SOURCE_LIST);\n }\n }\n else {\n if (isTransfer) {\n transferArrayItem(event.previousContainer.data, event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);\n \n if (this.visibleOptionsSource)\n this.visibleOptionsSource.splice(event.previousIndex, 1);\n \n this.onMoveToTarget.emit({items: event.item.data});\n }\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(this.target, this.TARGET_LIST);\n }\n }\n }\n\n getDropIndexes(fromIndex, toIndex, droppedList, isTransfer, data) {\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(this.visibleOptionsSource, toIndex, this.source) : toIndex;\n }\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(this.visibleOptionsTarget, toIndex, this.target) : toIndex;\n }\n\n return {previousIndex, currentIndex};\n }\n\n findFilteredCurrentIndex(visibleOptions, index, options) {\n if (visibleOptions.length === index) {\n let toIndex = ObjectUtils.findIndexInList(visibleOptions[index-1], options);\n \n return toIndex + 1;\n }\n else {\n return ObjectUtils.findIndexInList(visibleOptions[index], options);\n }\n }\n\n resetFilter() {\n this.visibleOptionsSource = null;\n this.filterValueSource = null;\n this.visibleOptionsTarget = null;\n this.filterValueTarget = null;\n\n (<HTMLInputElement> this.sourceFilterViewChild.nativeElement).value = '';\n (<HTMLInputElement> this.targetFilterViewChild.nativeElement).value = '';\n }\n\n onItemKeydown(event: KeyboardEvent, item: any, selectedItems: any[], callback: EventEmitter<any>) {\n let listItem = <HTMLLIElement> event.currentTarget;\n\n switch(event.which) {\n //down\n case 40:\n var nextItem = this.findNextItem(listItem);\n if (nextItem) {\n nextItem.focus();\n }\n\n event.preventDefault();\n break;\n\n //up\n case 38:\n var prevItem = this.findPrevItem(listItem);\n if (prevItem) {\n prevItem.focus();\n }\n\n event.preventDefault();\n break;\n\n //enter\n case 13:\n this.onItemClick(event, item, selectedItems, callback);\n event.preventDefault();\n break;\n }\n }\n\n findNextItem(item) {\n let nextItem = item.nextElementSibling;\n\n if (nextItem)\n return !DomHandler.hasClass(nextItem, 'p-picklist-item') || DomHandler.isHidden(nextItem) ? this.findNextItem(nextItem) : nextItem;\n else\n return null;\n }\n\n findPrevItem(item) {\n let prevItem = item.previousElementSibling;\n\n if (prevItem)\n return !DomHandler.hasClass(prevItem, 'p-picklist-item') || DomHandler.isHidden(prevItem) ? this.findPrevItem(prevItem) : prevItem;\n else\n return null;\n }\n\n createStyle() {\n if (!this.styleElement) {\n this.el.nativeElement.children[0].setAttribute(this.id, '');\n this.styleElement = document.createElement('style');\n this.styleElement.type = 'text/css';\n document.head.appendChild(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 .p-picklist[${this.id}] .pi-angle-right:before {\n content: \"\\\\e930\"\n }\n \n .p-picklist[${this.id}] .pi-angle-double-right:before {\n content: \"\\\\e92c\"\n }\n \n .p-picklist[${this.id}] .pi-angle-left:before {\n content: \"\\\\e933\"\n }\n \n .p-picklist[${this.id}] .pi-angle-double-left:before {\n content: \"\\\\e92f\"\n }\n }\n `;\n \n this.styleElement.innerHTML = innerHTML;\n }\n }\n\n destroyStyle() {\n if (this.styleElement) {\n document.head.removeChild(this.styleElement);\n this.styleElement = null;``\n }\n }\n\n ngOnDestroy() {\n this.destroyStyle();\n }\n}\n\n@NgModule({\n imports: [CommonModule,ButtonModule,SharedModule,RippleModule,DragDropModule],\n exports: [PickList,SharedModule,DragDropModule],\n declarations: [PickList]\n})\nexport class PickListModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["EventEmitter","UniqueComponentId","DomHandler","ObjectUtils","transferArrayItem","moveItemInArray","Component","ChangeDetectionStrategy","ViewEncapsulation","ElementRef","ChangeDetectorRef","FilterService","Input","Output","ViewChild","ContentChildren","PrimeTemplate","NgModule","CommonModule","ButtonModule","SharedModule","RippleModule","DragDropModule"],"mappings":"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"}