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
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common"),require("primeng/button"),require("primeng/api"),require("primeng/dom"),require("primeng/ripple"),require("@angular/cdk/drag-drop"),require("primeng/utils")):"function"==typeof define&&define.amd?define("primeng/picklist",["exports","@angular/core","@angular/common","primeng/button","primeng/api","primeng/dom","primeng/ripple","@angular/cdk/drag-drop","primeng/utils"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).primeng=e.primeng||{},e.primeng.picklist={}),e.ng.core,e.ng.common,e.primeng.button,e.primeng.api,e.primeng.dom,e.primeng.ripple,e.ng.cdk.dragDrop,e.primeng.utils)}(this,(function(e,t,i,n,r,s,o,l,p){"use strict";var a=function(){function e(e,i,n){this.el=e,this.cd=i,this.filterService=n,this.trackBy=function(e,t){return t},this.showSourceFilter=!0,this.showTargetFilter=!0,this.metaKeySelection=!0,this.showSourceControls=!0,this.showTargetControls=!0,this.disabled=!1,this.filterMatchMode="contains",this.breakpoint="960px",this.onMoveToSource=new t.EventEmitter,this.onMoveAllToSource=new t.EventEmitter,this.onMoveAllToTarget=new t.EventEmitter,this.onMoveToTarget=new t.EventEmitter,this.onSourceReorder=new t.EventEmitter,this.onTargetReorder=new t.EventEmitter,this.onSourceSelect=new t.EventEmitter,this.onTargetSelect=new t.EventEmitter,this.onSourceFilter=new t.EventEmitter,this.onTargetFilter=new t.EventEmitter,this.selectedItemsSource=[],this.selectedItemsTarget=[],this.id=p.UniqueComponentId(),this.SOURCE_LIST=-1,this.TARGET_LIST=1}return e.prototype.ngOnInit=function(){this.responsive&&this.createStyle()},e.prototype.ngAfterContentInit=function(){var e=this;this.templates.forEach((function(t){switch(t.getType()){case"item":e.itemTemplate=t.template;break;case"emptymessagesource":e.emptyMessageSourceTemplate=t.template;break;case"emptymessagetarget":e.emptyMessageTargetTemplate=t.template;break;default:e.itemTemplate=t.template}}))},e.prototype.ngAfterViewChecked=function(){if(this.movedUp||this.movedDown){var e=s.DomHandler.find(this.reorderedListElement,"li.p-highlight"),t=void 0;t=this.movedUp?e[0]:e[e.length-1],s.DomHandler.scrollInView(this.reorderedListElement,t),this.movedUp=!1,this.movedDown=!1,this.reorderedListElement=null}},e.prototype.onItemClick=function(e,t,i,n){if(!this.disabled){var r=this.findIndexInSelection(t,i),s=-1!=r;if(!this.itemTouched&&this.metaKeySelection){var o=e.metaKey||e.ctrlKey||e.shiftKey;s&&o?i.splice(r,1):(o||(i.length=0),i.push(t))}else s?i.splice(r,1):i.push(t);n.emit({originalEvent:e,items:i}),this.itemTouched=!1}},e.prototype.onSourceItemDblClick=function(){this.disabled||this.moveRight()},e.prototype.onTargetItemDblClick=function(){this.disabled||this.moveLeft()},e.prototype.onFilter=function(e,t,i){var n=e.target.value.trim().toLocaleLowerCase(this.filterLocale);this.filter(n,t,i)},e.prototype.filter=function(e,t,i){var n=this.filterBy.split(",");i===this.SOURCE_LIST?(this.filterValueSource=e,this.visibleOptionsSource=this.filterService.filter(t,n,this.filterValueSource,this.filterMatchMode,this.filterLocale),this.onSourceFilter.emit({query:this.filterValueSource,value:this.visibleOptionsSource})):i===this.TARGET_LIST&&(this.filterValueTarget=e,this.visibleOptionsTarget=this.filterService.filter(t,n,this.filterValueTarget,this.filterMatchMode,this.filterLocale),this.onTargetFilter.emit({query:this.filterValueTarget,value:this.visibleOptionsTarget}))},e.prototype.isItemVisible=function(e,t){return t==this.SOURCE_LIST?this.isVisibleInList(this.visibleOptionsSource,e,this.filterValueSource):this.isVisibleInList(this.visibleOptionsTarget,e,this.filterValueTarget)},e.prototype.isVisibleInList=function(e,t,i){if(!i||!i.trim().length)return!0;for(var n=0;n<e.length;n++)if(t==e[n])return!0},e.prototype.onItemTouchEnd=function(e){this.disabled||(this.itemTouched=!0)},e.prototype.sortByIndexInList=function(e,t){var i=this;return e.sort((function(e,n){return i.findIndexInList(e,t)-i.findIndexInList(n,t)}))},e.prototype.moveUp=function(e,t,i,n){if(i&&i.length){i=this.sortByIndexInList(i,t);for(var r=0;r<i.length;r++){var s=i[r],o=this.findIndexInList(s,t);if(0==o)break;var l=t[o],p=t[o-1];t[o-1]=l,t[o]=p}this.movedUp=!0,this.reorderedListElement=e,n.emit({items:i})}},e.prototype.moveTop=function(e,t,i,n){if(i&&i.length){i=this.sortByIndexInList(i,t);for(var r=0;r<i.length;r++){var s=i[r],o=this.findIndexInList(s,t);if(0==o)break;var l=t.splice(o,1)[0];t.unshift(l)}e.scrollTop=0,n.emit({items:i})}},e.prototype.moveDown=function(e,t,i,n){if(i&&i.length){for(var r=(i=this.sortByIndexInList(i,t)).length-1;r>=0;r--){var s=i[r],o=this.findIndexInList(s,t);if(o==t.length-1)break;var l=t[o],p=t[o+1];t[o+1]=l,t[o]=p}this.movedDown=!0,this.reorderedListElement=e,n.emit({items:i})}},e.prototype.moveBottom=function(e,t,i,n){if(i&&i.length){for(var r=(i=this.sortByIndexInList(i,t)).length-1;r>=0;r--){var s=i[r],o=this.findIndexInList(s,t);if(o==t.length-1)break;var l=t.splice(o,1)[0];t.push(l)}e.scrollTop=e.scrollHeight,n.emit({items:i})}},e.prototype.moveRight=function(){if(this.selectedItemsSource&&this.selectedItemsSource.length){for(var e=0;e<this.selectedItemsSource.length;e++){var t=this.selectedItemsSource[e];-1==this.findIndexInList(t,this.target)&&this.target.push(this.source.splice(this.findIndexInList(t,this.source),1)[0])}this.onMoveToTarget.emit({items:this.selectedItemsSource}),this.selectedItemsSource=[],this.filterValueTarget&&this.filter(this.filterValueTarget,this.target,this.TARGET_LIST)}},e.prototype.moveAllRight=function(){if(this.source){for(var e=[],t=0;t<this.source.length;t++)if(this.isItemVisible(this.source[t],this.SOURCE_LIST)){var i=this.source.splice(t,1)[0];this.target.push(i),e.push(i),t--}this.onMoveAllToTarget.emit({items:e}),this.selectedItemsSource=[],this.filterValueTarget&&this.filter(this.filterValueTarget,this.target,this.TARGET_LIST)}},e.prototype.moveLeft=function(){if(this.selectedItemsTarget&&this.selectedItemsTarget.length){for(var e=0;e<this.selectedItemsTarget.length;e++){var t=this.selectedItemsTarget[e];-1==this.findIndexInList(t,this.source)&&this.source.push(this.target.splice(this.findIndexInList(t,this.target),1)[0])}this.onMoveToSource.emit({items:this.selectedItemsTarget}),this.selectedItemsTarget=[],this.filterValueSource&&this.filter(this.filterValueSource,this.source,this.SOURCE_LIST)}},e.prototype.moveAllLeft=function(){if(this.target){for(var e=[],t=0;t<this.target.length;t++)if(this.isItemVisible(this.target[t],this.TARGET_LIST)){var i=this.target.splice(t,1)[0];this.source.push(i),e.push(i),t--}this.onMoveAllToSource.emit({items:e}),this.selectedItemsTarget=[],this.filterValueSource&&this.filter(this.filterValueSource,this.source,this.SOURCE_LIST)}},e.prototype.isSelected=function(e,t){return-1!=this.findIndexInSelection(e,t)},e.prototype.findIndexInSelection=function(e,t){return this.findIndexInList(e,t)},e.prototype.findIndexInList=function(e,t){var i=-1;if(t)for(var n=0;n<t.length;n++)if(t[n]==e){i=n;break}return i},e.prototype.onDrop=function(e,t){e.previousContainer===e.container?(l.moveItemInArray(e.container.data,e.previousIndex,e.currentIndex),t==this.SOURCE_LIST?this.onSourceReorder.emit([e.item.data]):this.onTargetReorder.emit([e.item.data])):(l.transferArrayItem(e.previousContainer.data,e.container.data,e.previousIndex,e.currentIndex),t==this.SOURCE_LIST?this.onMoveToSource.emit([e.item.data]):this.onMoveToTarget.emit([e.item.data]))},e.prototype.resetFilter=function(){this.visibleOptionsSource=null,this.filterValueSource=null,this.visibleOptionsTarget=null,this.filterValueTarget=null,this.sourceFilterViewChild.nativeElement.value="",this.targetFilterViewChild.nativeElement.value=""},e.prototype.onItemKeydown=function(e,t,i,n){var r=e.currentTarget;switch(e.which){case 40:var s=this.findNextItem(r);s&&s.focus(),e.preventDefault();break;case 38:var o=this.findPrevItem(r);o&&o.focus(),e.preventDefault();break;case 13:this.onItemClick(e,t,i,n),e.preventDefault()}},e.prototype.findNextItem=function(e){var t=e.nextElementSibling;return t?!s.DomHandler.hasClass(t,"p-picklist-item")||s.DomHandler.isHidden(t)?this.findNextItem(t):t:null},e.prototype.findPrevItem=function(e){var t=e.previousElementSibling;return t?!s.DomHandler.hasClass(t,"p-picklist-item")||s.DomHandler.isHidden(t)?this.findPrevItem(t):t:null},e.prototype.createStyle=function(){if(!this.styleElement){this.el.nativeElement.children[0].setAttribute(this.id,""),this.styleElement=document.createElement("style"),this.styleElement.type="text/css",document.head.appendChild(this.styleElement);var e="\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 ';this.styleElement.innerHTML=e}},e.prototype.destroyStyle=function(){this.styleElement&&(document.head.removeChild(this.styleElement),this.styleElement=null)},e.prototype.ngOnDestroy=function(){this.destroyStyle()},e}();a.decorators=[{type:t.Component,args:[{selector:"p-pickList",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 ',changeDetection:t.ChangeDetectionStrategy.OnPush,encapsulation:t.ViewEncapsulation.None,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)}"]}]}],a.ctorParameters=function(){return[{type:t.ElementRef},{type:t.ChangeDetectorRef},{type:r.FilterService}]},a.propDecorators={source:[{type:t.Input}],target:[{type:t.Input}],sourceHeader:[{type:t.Input}],targetHeader:[{type:t.Input}],responsive:[{type:t.Input}],filterBy:[{type:t.Input}],filterLocale:[{type:t.Input}],trackBy:[{type:t.Input}],sourceTrackBy:[{type:t.Input}],targetTrackBy:[{type:t.Input}],showSourceFilter:[{type:t.Input}],showTargetFilter:[{type:t.Input}],metaKeySelection:[{type:t.Input}],dragdrop:[{type:t.Input}],style:[{type:t.Input}],styleClass:[{type:t.Input}],sourceStyle:[{type:t.Input}],targetStyle:[{type:t.Input}],showSourceControls:[{type:t.Input}],showTargetControls:[{type:t.Input}],sourceFilterPlaceholder:[{type:t.Input}],targetFilterPlaceholder:[{type:t.Input}],disabled:[{type:t.Input}],ariaSourceFilterLabel:[{type:t.Input}],ariaTargetFilterLabel:[{type:t.Input}],filterMatchMode:[{type:t.Input}],breakpoint:[{type:t.Input}],onMoveToSource:[{type:t.Output}],onMoveAllToSource:[{type:t.Output}],onMoveAllToTarget:[{type:t.Output}],onMoveToTarget:[{type:t.Output}],onSourceReorder:[{type:t.Output}],onTargetReorder:[{type:t.Output}],onSourceSelect:[{type:t.Output}],onTargetSelect:[{type:t.Output}],onSourceFilter:[{type:t.Output}],onTargetFilter:[{type:t.Output}],listViewSourceChild:[{type:t.ViewChild,args:["sourcelist"]}],listViewTargetChild:[{type:t.ViewChild,args:["targetlist"]}],sourceFilterViewChild:[{type:t.ViewChild,args:["sourceFilter"]}],targetFilterViewChild:[{type:t.ViewChild,args:["targetFilter"]}],templates:[{type:t.ContentChildren,args:[r.PrimeTemplate]}]};var c=function(){};c.decorators=[{type:t.NgModule,args:[{imports:[i.CommonModule,n.ButtonModule,r.SharedModule,o.RippleModule,l.DragDropModule],exports:[a,r.SharedModule,l.DragDropModule],declarations:[a]}]}],e.PickList=a,e.PickListModule=c,Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common"),require("primeng/button"),require("primeng/api"),require("primeng/dom"),require("primeng/ripple"),require("@angular/cdk/drag-drop"),require("primeng/utils")):"function"==typeof define&&define.amd?define("primeng/picklist",["exports","@angular/core","@angular/common","primeng/button","primeng/api","primeng/dom","primeng/ripple","@angular/cdk/drag-drop","primeng/utils"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).primeng=e.primeng||{},e.primeng.picklist={}),e.ng.core,e.ng.common,e.primeng.button,e.primeng.api,e.primeng.dom,e.primeng.ripple,e.ng.cdk.dragDrop,e.primeng.utils)}(this,(function(e,t,i,r,n,s,l,o,a){"use strict";var p=function(){function e(e,i,r){this.el=e,this.cd=i,this.filterService=r,this.trackBy=function(e,t){return t},this.showSourceFilter=!0,this.showTargetFilter=!0,this.metaKeySelection=!0,this.dragdrop=!1,this.showSourceControls=!0,this.showTargetControls=!0,this.disabled=!1,this.filterMatchMode="contains",this.breakpoint="960px",this.onMoveToSource=new t.EventEmitter,this.onMoveAllToSource=new t.EventEmitter,this.onMoveAllToTarget=new t.EventEmitter,this.onMoveToTarget=new t.EventEmitter,this.onSourceReorder=new t.EventEmitter,this.onTargetReorder=new t.EventEmitter,this.onSourceSelect=new t.EventEmitter,this.onTargetSelect=new t.EventEmitter,this.onSourceFilter=new t.EventEmitter,this.onTargetFilter=new t.EventEmitter,this.selectedItemsSource=[],this.selectedItemsTarget=[],this.id=a.UniqueComponentId(),this.SOURCE_LIST=-1,this.TARGET_LIST=1}return e.prototype.ngOnInit=function(){this.responsive&&this.createStyle()},e.prototype.ngAfterContentInit=function(){var e=this;this.templates.forEach((function(t){switch(t.getType()){case"item":e.itemTemplate=t.template;break;case"sourceHeader":e.sourceHeaderTemplate=t.template;break;case"targetHeader":e.targetHeaderTemplate=t.template;break;case"emptymessagesource":e.emptyMessageSourceTemplate=t.template;break;case"emptyfiltermessagesource":e.emptyFilterMessageSourceTemplate=t.template;break;case"emptymessagetarget":e.emptyMessageTargetTemplate=t.template;break;case"emptyfiltermessagetarget":e.emptyFilterMessageTargetTemplate=t.template;break;default:e.itemTemplate=t.template}}))},e.prototype.ngAfterViewChecked=function(){if(this.movedUp||this.movedDown){var e=s.DomHandler.find(this.reorderedListElement,"li.p-highlight"),t=void 0;t=this.movedUp?e[0]:e[e.length-1],s.DomHandler.scrollInView(this.reorderedListElement,t),this.movedUp=!1,this.movedDown=!1,this.reorderedListElement=null}},e.prototype.onItemClick=function(e,t,i,r){if(!this.disabled){var n=this.findIndexInSelection(t,i),s=-1!=n;if(!this.itemTouched&&this.metaKeySelection){var l=e.metaKey||e.ctrlKey||e.shiftKey;s&&l?i.splice(n,1):(l||(i.length=0),i.push(t))}else s?i.splice(n,1):i.push(t);r.emit({originalEvent:e,items:i}),this.itemTouched=!1}},e.prototype.onSourceItemDblClick=function(){this.disabled||this.moveRight()},e.prototype.onTargetItemDblClick=function(){this.disabled||this.moveLeft()},e.prototype.onFilter=function(e,t,i){var r=e.target.value.trim().toLocaleLowerCase(this.filterLocale);i===this.SOURCE_LIST?this.filterValueSource=r:i===this.TARGET_LIST&&(this.filterValueTarget=r),this.filter(t,i)},e.prototype.filter=function(e,t){var i=this.filterBy.split(",");t===this.SOURCE_LIST?(this.visibleOptionsSource=this.filterService.filter(e,i,this.filterValueSource,this.filterMatchMode,this.filterLocale),this.onSourceFilter.emit({query:this.filterValueSource,value:this.visibleOptionsSource})):t===this.TARGET_LIST&&(this.visibleOptionsTarget=this.filterService.filter(e,i,this.filterValueTarget,this.filterMatchMode,this.filterLocale),this.onTargetFilter.emit({query:this.filterValueTarget,value:this.visibleOptionsTarget}))},e.prototype.isItemVisible=function(e,t){return t==this.SOURCE_LIST?this.isVisibleInList(this.visibleOptionsSource,e,this.filterValueSource):this.isVisibleInList(this.visibleOptionsTarget,e,this.filterValueTarget)},e.prototype.isEmpty=function(e){return e==this.SOURCE_LIST?this.filterValueSource?!this.visibleOptionsSource||0===this.visibleOptionsSource.length:!this.source||0===this.source.length:this.filterValueTarget?!this.visibleOptionsTarget||0===this.visibleOptionsTarget.length:!this.target||0===this.target.length},e.prototype.isVisibleInList=function(e,t,i){if(!i||!i.trim().length)return!0;for(var r=0;r<e.length;r++)if(t==e[r])return!0},e.prototype.onItemTouchEnd=function(){this.disabled||(this.itemTouched=!0)},e.prototype.sortByIndexInList=function(e,t){return e.sort((function(e,i){return a.ObjectUtils.findIndexInList(e,t)-a.ObjectUtils.findIndexInList(i,t)}))},e.prototype.moveUp=function(e,t,i,r,n){if(i&&i.length){i=this.sortByIndexInList(i,t);for(var s=0;s<i.length;s++){var l=i[s],o=a.ObjectUtils.findIndexInList(l,t);if(0==o)break;var p=t[o],c=t[o-1];t[o-1]=p,t[o]=c}this.dragdrop&&(this.filterValueSource&&n===this.SOURCE_LIST||this.filterValueTarget&&n===this.TARGET_LIST)&&this.filter(t,n),this.movedUp=!0,this.reorderedListElement=e,r.emit({items:i})}},e.prototype.moveTop=function(e,t,i,r,n){if(i&&i.length){i=this.sortByIndexInList(i,t);for(var s=0;s<i.length;s++){var l=i[s],o=a.ObjectUtils.findIndexInList(l,t);if(0==o)break;var p=t.splice(o,1)[0];t.unshift(p)}this.dragdrop&&(this.filterValueSource&&n===this.SOURCE_LIST||this.filterValueTarget&&n===this.TARGET_LIST)&&this.filter(t,n),e.scrollTop=0,r.emit({items:i})}},e.prototype.moveDown=function(e,t,i,r,n){if(i&&i.length){for(var s=(i=this.sortByIndexInList(i,t)).length-1;s>=0;s--){var l=i[s],o=a.ObjectUtils.findIndexInList(l,t);if(o==t.length-1)break;var p=t[o],c=t[o+1];t[o+1]=p,t[o]=c}this.dragdrop&&(this.filterValueSource&&n===this.SOURCE_LIST||this.filterValueTarget&&n===this.TARGET_LIST)&&this.filter(t,n),this.movedDown=!0,this.reorderedListElement=e,r.emit({items:i})}},e.prototype.moveBottom=function(e,t,i,r,n){if(i&&i.length){for(var s=(i=this.sortByIndexInList(i,t)).length-1;s>=0;s--){var l=i[s],o=a.ObjectUtils.findIndexInList(l,t);if(o==t.length-1)break;var p=t.splice(o,1)[0];t.push(p)}this.dragdrop&&(this.filterValueSource&&n===this.SOURCE_LIST||this.filterValueTarget&&n===this.TARGET_LIST)&&this.filter(t,n),e.scrollTop=e.scrollHeight,r.emit({items:i})}},e.prototype.moveRight=function(){if(this.selectedItemsSource&&this.selectedItemsSource.length){for(var e=0;e<this.selectedItemsSource.length;e++){var t=this.selectedItemsSource[e];-1==a.ObjectUtils.findIndexInList(t,this.target)&&(this.target.push(this.source.splice(a.ObjectUtils.findIndexInList(t,this.source),1)[0]),this.visibleOptionsSource&&this.visibleOptionsSource.splice(a.ObjectUtils.findIndexInList(t,this.visibleOptionsSource),1))}this.onMoveToTarget.emit({items:this.selectedItemsSource}),this.selectedItemsSource=[],this.filterValueTarget&&this.filter(this.target,this.TARGET_LIST)}},e.prototype.moveAllRight=function(){if(this.source){for(var e=[],t=0;t<this.source.length;t++)if(this.isItemVisible(this.source[t],this.SOURCE_LIST)){var i=this.source.splice(t,1)[0];this.target.push(i),e.push(i),t--}this.onMoveAllToTarget.emit({items:e}),this.selectedItemsSource=[],this.filterValueTarget&&this.filter(this.target,this.TARGET_LIST),this.visibleOptionsSource=[]}},e.prototype.moveLeft=function(){if(this.selectedItemsTarget&&this.selectedItemsTarget.length){for(var e=0;e<this.selectedItemsTarget.length;e++){var t=this.selectedItemsTarget[e];-1==a.ObjectUtils.findIndexInList(t,this.source)&&(this.source.push(this.target.splice(a.ObjectUtils.findIndexInList(t,this.target),1)[0]),this.visibleOptionsTarget&&this.visibleOptionsTarget.splice(a.ObjectUtils.findIndexInList(t,this.visibleOptionsTarget),1)[0])}this.onMoveToSource.emit({items:this.selectedItemsTarget}),this.selectedItemsTarget=[],this.filterValueSource&&this.filter(this.source,this.SOURCE_LIST)}},e.prototype.moveAllLeft=function(){if(this.target){for(var e=[],t=0;t<this.target.length;t++)if(this.isItemVisible(this.target[t],this.TARGET_LIST)){var i=this.target.splice(t,1)[0];this.source.push(i),e.push(i),t--}this.onMoveAllToSource.emit({items:e}),this.selectedItemsTarget=[],this.filterValueSource&&this.filter(this.source,this.SOURCE_LIST),this.visibleOptionsTarget=[]}},e.prototype.isSelected=function(e,t){return-1!=this.findIndexInSelection(e,t)},e.prototype.findIndexInSelection=function(e,t){return a.ObjectUtils.findIndexInList(e,t)},e.prototype.onDrop=function(e,t){var i=e.previousContainer!==e.container,r=this.getDropIndexes(e.previousIndex,e.currentIndex,t,i,e.item.data);t===this.SOURCE_LIST?(i?(o.transferArrayItem(e.previousContainer.data,e.container.data,r.previousIndex,r.currentIndex),this.visibleOptionsTarget&&this.visibleOptionsTarget.splice(e.previousIndex,1),this.onMoveToSource.emit({items:e.item.data})):(o.moveItemInArray(e.container.data,r.previousIndex,r.currentIndex),this.onSourceReorder.emit({items:e.item.data})),this.filterValueSource&&this.filter(this.source,this.SOURCE_LIST)):(i?(o.transferArrayItem(e.previousContainer.data,e.container.data,r.previousIndex,r.currentIndex),this.visibleOptionsSource&&this.visibleOptionsSource.splice(e.previousIndex,1),this.onMoveToTarget.emit({items:e.item.data})):(o.moveItemInArray(e.container.data,r.previousIndex,r.currentIndex),this.onTargetReorder.emit({items:e.item.data})),this.filterValueTarget&&this.filter(this.target,this.TARGET_LIST))},e.prototype.getDropIndexes=function(e,t,i,r,n){var s,l;return i===this.SOURCE_LIST?(s=r?this.filterValueTarget?a.ObjectUtils.findIndexInList(n,this.target):e:this.filterValueSource?a.ObjectUtils.findIndexInList(n,this.source):e,l=this.filterValueSource?this.findFilteredCurrentIndex(this.visibleOptionsSource,t,this.source):t):(s=r?this.filterValueSource?a.ObjectUtils.findIndexInList(n,this.source):e:this.filterValueTarget?a.ObjectUtils.findIndexInList(n,this.target):e,l=this.filterValueTarget?this.findFilteredCurrentIndex(this.visibleOptionsTarget,t,this.target):t),{previousIndex:s,currentIndex:l}},e.prototype.findFilteredCurrentIndex=function(e,t,i){return e.length===t?a.ObjectUtils.findIndexInList(e[t-1],i)+1:a.ObjectUtils.findIndexInList(e[t],i)},e.prototype.resetFilter=function(){this.visibleOptionsSource=null,this.filterValueSource=null,this.visibleOptionsTarget=null,this.filterValueTarget=null,this.sourceFilterViewChild.nativeElement.value="",this.targetFilterViewChild.nativeElement.value=""},e.prototype.onItemKeydown=function(e,t,i,r){var n=e.currentTarget;switch(e.which){case 40:var s=this.findNextItem(n);s&&s.focus(),e.preventDefault();break;case 38:var l=this.findPrevItem(n);l&&l.focus(),e.preventDefault();break;case 13:this.onItemClick(e,t,i,r),e.preventDefault()}},e.prototype.findNextItem=function(e){var t=e.nextElementSibling;return t?!s.DomHandler.hasClass(t,"p-picklist-item")||s.DomHandler.isHidden(t)?this.findNextItem(t):t:null},e.prototype.findPrevItem=function(e){var t=e.previousElementSibling;return t?!s.DomHandler.hasClass(t,"p-picklist-item")||s.DomHandler.isHidden(t)?this.findPrevItem(t):t:null},e.prototype.createStyle=function(){if(!this.styleElement){this.el.nativeElement.children[0].setAttribute(this.id,""),this.styleElement=document.createElement("style"),this.styleElement.type="text/css",document.head.appendChild(this.styleElement);var e="\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 ';this.styleElement.innerHTML=e}},e.prototype.destroyStyle=function(){this.styleElement&&(document.head.removeChild(this.styleElement),this.styleElement=null)},e.prototype.ngOnDestroy=function(){this.destroyStyle()},e}();p.decorators=[{type:t.Component,args:[{selector:"p-pickList",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 ',changeDetection:t.ChangeDetectionStrategy.OnPush,encapsulation:t.ViewEncapsulation.None,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)}"]}]}],p.ctorParameters=function(){return[{type:t.ElementRef},{type:t.ChangeDetectorRef},{type:n.FilterService}]},p.propDecorators={source:[{type:t.Input}],target:[{type:t.Input}],sourceHeader:[{type:t.Input}],targetHeader:[{type:t.Input}],responsive:[{type:t.Input}],filterBy:[{type:t.Input}],filterLocale:[{type:t.Input}],trackBy:[{type:t.Input}],sourceTrackBy:[{type:t.Input}],targetTrackBy:[{type:t.Input}],showSourceFilter:[{type:t.Input}],showTargetFilter:[{type:t.Input}],metaKeySelection:[{type:t.Input}],dragdrop:[{type:t.Input}],style:[{type:t.Input}],styleClass:[{type:t.Input}],sourceStyle:[{type:t.Input}],targetStyle:[{type:t.Input}],showSourceControls:[{type:t.Input}],showTargetControls:[{type:t.Input}],sourceFilterPlaceholder:[{type:t.Input}],targetFilterPlaceholder:[{type:t.Input}],disabled:[{type:t.Input}],ariaSourceFilterLabel:[{type:t.Input}],ariaTargetFilterLabel:[{type:t.Input}],filterMatchMode:[{type:t.Input}],breakpoint:[{type:t.Input}],onMoveToSource:[{type:t.Output}],onMoveAllToSource:[{type:t.Output}],onMoveAllToTarget:[{type:t.Output}],onMoveToTarget:[{type:t.Output}],onSourceReorder:[{type:t.Output}],onTargetReorder:[{type:t.Output}],onSourceSelect:[{type:t.Output}],onTargetSelect:[{type:t.Output}],onSourceFilter:[{type:t.Output}],onTargetFilter:[{type:t.Output}],listViewSourceChild:[{type:t.ViewChild,args:["sourcelist"]}],listViewTargetChild:[{type:t.ViewChild,args:["targetlist"]}],sourceFilterViewChild:[{type:t.ViewChild,args:["sourceFilter"]}],targetFilterViewChild:[{type:t.ViewChild,args:["targetFilter"]}],templates:[{type:t.ContentChildren,args:[n.PrimeTemplate]}]};var c=function(){};c.decorators=[{type:t.NgModule,args:[{imports:[i.CommonModule,r.ButtonModule,n.SharedModule,l.RippleModule,o.DragDropModule],exports:[p,n.SharedModule,o.DragDropModule],declarations:[p]}]}],e.PickList=p,e.PickListModule=c,Object.defineProperty(e,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=primeng-picklist.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/app/components/picklist/picklist.ts"],"names":["PickList","el","cd","filterService","this","trackBy","index","item","showSourceFilter","showTargetFilter","metaKeySelection","showSourceControls","showTargetControls","disabled","filterMatchMode","breakpoint","onMoveToSource","EventEmitter","onMoveAllToSource","onMoveAllToTarget","onMoveToTarget","onSourceReorder","onTargetReorder","onSourceSelect","onTargetSelect","onSourceFilter","onTargetFilter","selectedItemsSource","selectedItemsTarget","id","UniqueComponentId","SOURCE_LIST","TARGET_LIST","prototype","ngOnInit","responsive","createStyle","ngAfterContentInit","_this","templates","forEach","getType","itemTemplate","template","emptyMessageSourceTemplate","emptyMessageTargetTemplate","ngAfterViewChecked","movedUp","movedDown","listItems","DomHandler","find","reorderedListElement","listItem","length","scrollInView","onItemClick","event","selectedItems","callback","findIndexInSelection","selected","itemTouched","metaKey","ctrlKey","shiftKey","splice","push","emit","originalEvent","items","onSourceItemDblClick","moveRight","onTargetItemDblClick","moveLeft","onFilter","data","listType","query","target","value","trim","toLocaleLowerCase","filterLocale","filter","searchFields","filterBy","split","filterValueSource","visibleOptionsSource","filterValueTarget","visibleOptionsTarget","isItemVisible","isVisibleInList","filterValue","i","onItemTouchEnd","sortByIndexInList","list","sort","item1","item2","findIndexInList","moveUp","listElement","selectedItem","selectedItemIndex","movedItem","temp","moveTop","unshift","scrollTop","moveDown","moveBottom","scrollHeight","source","moveAllRight","movedItems","removedItem","moveAllLeft","isSelected","onDrop","previousContainer","container","moveItemInArray","previousIndex","currentIndex","transferArrayItem","resetFilter","sourceFilterViewChild","nativeElement","targetFilterViewChild","onItemKeydown","currentTarget","which","nextItem","findNextItem","focus","preventDefault","prevItem","findPrevItem","nextElementSibling","hasClass","isHidden","previousElementSibling","styleElement","children","setAttribute","document","createElement","type","head","appendChild","innerHTML","destroyStyle","removeChild","ngOnDestroy","Component","args","selector","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","ElementRef","ChangeDetectorRef","FilterService","Input","Output","ViewChild","ContentChildren","PrimeTemplate","NgModule","imports","CommonModule","ButtonModule","SharedModule","RippleModule","DragDropModule","exports","declarations"],"mappings":"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","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"]}
1
+ {"version":3,"sources":["../../src/app/components/picklist/picklist.ts"],"names":["PickList","el","cd","filterService","this","trackBy","index","item","showSourceFilter","showTargetFilter","metaKeySelection","dragdrop","showSourceControls","showTargetControls","disabled","filterMatchMode","breakpoint","onMoveToSource","EventEmitter","onMoveAllToSource","onMoveAllToTarget","onMoveToTarget","onSourceReorder","onTargetReorder","onSourceSelect","onTargetSelect","onSourceFilter","onTargetFilter","selectedItemsSource","selectedItemsTarget","id","UniqueComponentId","SOURCE_LIST","TARGET_LIST","prototype","ngOnInit","responsive","createStyle","ngAfterContentInit","_this","templates","forEach","getType","itemTemplate","template","sourceHeaderTemplate","targetHeaderTemplate","emptyMessageSourceTemplate","emptyFilterMessageSourceTemplate","emptyMessageTargetTemplate","emptyFilterMessageTargetTemplate","ngAfterViewChecked","movedUp","movedDown","listItems","DomHandler","find","reorderedListElement","listItem","length","scrollInView","onItemClick","event","selectedItems","callback","findIndexInSelection","selected","itemTouched","metaKey","ctrlKey","shiftKey","splice","push","emit","originalEvent","items","onSourceItemDblClick","moveRight","onTargetItemDblClick","moveLeft","onFilter","data","listType","query","target","value","trim","toLocaleLowerCase","filterLocale","filterValueSource","filterValueTarget","filter","searchFields","filterBy","split","visibleOptionsSource","visibleOptionsTarget","isItemVisible","isVisibleInList","isEmpty","source","filterValue","i","onItemTouchEnd","sortByIndexInList","list","sort","item1","item2","ObjectUtils","findIndexInList","moveUp","listElement","selectedItem","selectedItemIndex","movedItem","temp","moveTop","unshift","scrollTop","moveDown","moveBottom","scrollHeight","moveAllRight","movedItems","removedItem","moveAllLeft","isSelected","onDrop","isTransfer","previousContainer","container","dropIndexes","getDropIndexes","previousIndex","currentIndex","transferArrayItem","moveItemInArray","fromIndex","toIndex","droppedList","findFilteredCurrentIndex","visibleOptions","options","resetFilter","sourceFilterViewChild","nativeElement","targetFilterViewChild","onItemKeydown","currentTarget","which","nextItem","findNextItem","focus","preventDefault","prevItem","findPrevItem","nextElementSibling","hasClass","isHidden","previousElementSibling","styleElement","children","setAttribute","document","createElement","type","head","appendChild","innerHTML","destroyStyle","removeChild","ngOnDestroy","Component","args","selector","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","ElementRef","ChangeDetectorRef","FilterService","Input","Output","ViewChild","ContentChildren","PrimeTemplate","NgModule","imports","CommonModule","ButtonModule","SharedModule","RippleModule","DragDropModule","exports","declarations"],"mappings":"sxBAoOI,SAAAA,EAAmBC,EAAuBC,EAA8BC,GAArDC,KAAAH,GAAAA,EAAuBG,KAAAF,GAAAA,EAA8BE,KAAAD,cAAAA,EAlH/DC,KAAAC,QAAoB,SAACC,EAAeC,GAAc,OAAAA,GAMlDH,KAAAI,kBAA4B,EAE5BJ,KAAAK,kBAA4B,EAE5BL,KAAAM,kBAA4B,EAE5BN,KAAAO,UAAoB,EAUpBP,KAAAQ,oBAA8B,EAE9BR,KAAAS,oBAA8B,EAM9BT,KAAAU,UAAoB,EAMpBV,KAAAW,gBAA0B,WAE1BX,KAAAY,WAAqB,QAEpBZ,KAAAa,eAAoC,IAAIC,EAAAA,aAExCd,KAAAe,kBAAuC,IAAID,EAAAA,aAE3Cd,KAAAgB,kBAAuC,IAAIF,EAAAA,aAE3Cd,KAAAiB,eAAoC,IAAIH,EAAAA,aAExCd,KAAAkB,gBAAqC,IAAIJ,EAAAA,aAEzCd,KAAAmB,gBAAqC,IAAIL,EAAAA,aAEzCd,KAAAoB,eAAoC,IAAIN,EAAAA,aAExCd,KAAAqB,eAAoC,IAAIP,EAAAA,aAExCd,KAAAsB,eAAoC,IAAIR,EAAAA,aAExCd,KAAAuB,eAAoC,IAAIT,EAAAA,aAkBlDd,KAAAwB,oBAA6B,GAE7BxB,KAAAyB,oBAA6B,GAY7BzB,KAAA0B,GAAaC,EAAAA,oBAoBJ3B,KAAA4B,aAAe,EAEf5B,KAAA6B,YAAc,SAKvBjC,EAAAkC,UAAAC,SAAA,WACQ/B,KAAKgC,YACLhC,KAAKiC,eAIbrC,EAAAkC,UAAAI,mBAAA,WAAA,IAAAC,EAAAnC,KACIA,KAAKoC,UAAUC,SAAQ,SAAClC,GACpB,OAAOA,EAAKmC,WACR,IAAK,OACDH,EAAKI,aAAepC,EAAKqC,SAC7B,MAEA,IAAK,eACDL,EAAKM,qBAAuBtC,EAAKqC,SACrC,MAEA,IAAK,eACDL,EAAKO,qBAAuBvC,EAAKqC,SACrC,MAEA,IAAK,qBACDL,EAAKQ,2BAA6BxC,EAAKqC,SAC3C,MAEA,IAAK,2BACDL,EAAKS,iCAAmCzC,EAAKqC,SACjD,MAEA,IAAK,qBACDL,EAAKU,2BAA6B1C,EAAKqC,SAC3C,MAEA,IAAK,2BACDL,EAAKW,iCAAmC3C,EAAKqC,SACjD,MAEA,QACIL,EAAKI,aAAepC,EAAKqC,cAMzC5C,EAAAkC,UAAAiB,mBAAA,WACI,GAAI/C,KAAKgD,SAAShD,KAAKiD,UAAW,CAC9B,IAAIC,EAAYC,EAAAA,WAAWC,KAAKpD,KAAKqD,qBAAsB,kBACvDC,OAAQ,EAGRA,EADAtD,KAAKgD,QACME,EAAU,GAEVA,EAAUA,EAAUK,OAAS,GAE5CJ,EAAAA,WAAWK,aAAaxD,KAAKqD,qBAAsBC,GACnDtD,KAAKgD,SAAU,EACfhD,KAAKiD,WAAY,EACjBjD,KAAKqD,qBAAuB,OAIpCzD,EAAAkC,UAAA2B,YAAA,SAAYC,EAAOvD,EAAWwD,EAAsBC,GAChD,IAAI5D,KAAKU,SAAT,CAIA,IAAIR,EAAQF,KAAK6D,qBAAqB1D,EAAKwD,GACvCG,GAAsB,GAAV5D,EAGhB,IAFoBF,KAAK+D,aAAsB/D,KAAKM,iBAEjC,CACf,IAAI0D,EAAWN,EAAMM,SAASN,EAAMO,SAASP,EAAMQ,SAE/CJ,GAAYE,EACZL,EAAcQ,OAAOjE,EAAO,IAGvB8D,IACDL,EAAcJ,OAAS,GAE3BI,EAAcS,KAAKjE,SAInB2D,EACAH,EAAcQ,OAAOjE,EAAO,GAE5ByD,EAAcS,KAAKjE,GAG3ByD,EAASS,KAAK,CAACC,cAAeZ,EAAOa,MAAOZ,IAE5C3D,KAAK+D,aAAc,IAGvBnE,EAAAkC,UAAA0C,qBAAA,WACQxE,KAAKU,UAITV,KAAKyE,aAGT7E,EAAAkC,UAAA4C,qBAAA,WACQ1E,KAAKU,UAITV,KAAK2E,YAGT/E,EAAAkC,UAAA8C,SAAA,SAASlB,EAAsBmB,EAAaC,GACxC,IAAIC,EAA6BrB,EAAMsB,OAAQC,MAAMC,OAAeC,kBAAkBnF,KAAKoF,cACvFN,IAAa9E,KAAK4B,YAClB5B,KAAKqF,kBAAoBN,EACpBD,IAAa9E,KAAK6B,cACvB7B,KAAKsF,kBAAoBP,GAE7B/E,KAAKuF,OAAOV,EAAMC,IAGtBlF,EAAAkC,UAAAyD,OAAA,SAAOV,EAAaC,GAChB,IAAIU,EAAexF,KAAKyF,SAASC,MAAM,KAEnCZ,IAAa9E,KAAK4B,aAClB5B,KAAK2F,qBAAuB3F,KAAKD,cAAcwF,OAAOV,EAAMW,EAAcxF,KAAKqF,kBAAmBrF,KAAKW,gBAAiBX,KAAKoF,cAC7HpF,KAAKsB,eAAe+C,KAAK,CAACU,MAAO/E,KAAKqF,kBAAmBJ,MAAOjF,KAAK2F,wBAEhEb,IAAa9E,KAAK6B,cACvB7B,KAAK4F,qBAAuB5F,KAAKD,cAAcwF,OAAOV,EAAMW,EAAcxF,KAAKsF,kBAAmBtF,KAAKW,gBAAiBX,KAAKoF,cAC7HpF,KAAKuB,eAAe8C,KAAK,CAACU,MAAO/E,KAAKsF,kBAAmBL,MAAOjF,KAAK4F,yBAI7EhG,EAAAkC,UAAA+D,cAAA,SAAc1F,EAAW2E,GACrB,OAAIA,GAAY9E,KAAK4B,YACV5B,KAAK8F,gBAAgB9F,KAAK2F,qBAAsBxF,EAAMH,KAAKqF,mBAE3DrF,KAAK8F,gBAAgB9F,KAAK4F,qBAAsBzF,EAAMH,KAAKsF,oBAG1E1F,EAAAkC,UAAAiE,QAAA,SAAQjB,GACJ,OAAIA,GAAY9E,KAAK4B,YACV5B,KAAKqF,mBAAsBrF,KAAK2F,sBAA6D,IAArC3F,KAAK2F,qBAAqBpC,QAAkBvD,KAAKgG,QAAiC,IAAvBhG,KAAKgG,OAAOzC,OAE/HvD,KAAKsF,mBAAsBtF,KAAK4F,sBAA6D,IAArC5F,KAAK4F,qBAAqBrC,QAAkBvD,KAAKgF,QAAiC,IAAvBhF,KAAKgF,OAAOzB,QAI9I3D,EAAAkC,UAAAgE,gBAAA,SAAgBjB,EAAa1E,EAAW8F,GACpC,IAAIA,IAAeA,EAAYf,OAAO3B,OAQlC,OAAO,EAPP,IAAI,IAAI2C,EAAI,EAAGA,EAAIrB,EAAKtB,OAAQ2C,IAC5B,GAAI/F,GAAQ0E,EAAKqB,GACb,OAAO,GASvBtG,EAAAkC,UAAAqE,eAAA,WACQnG,KAAKU,WAITV,KAAK+D,aAAc,IAGfnE,EAAAkC,UAAAsE,kBAAA,SAAkB7B,EAAc8B,GACpC,OAAO9B,EAAM+B,MAAK,SAACC,EAAOC,GACtB,OAAAC,EAAAA,YAAYC,gBAAgBH,EAAOF,GAAQI,EAAAA,YAAYC,gBAAgBF,EAAOH,OAGtFzG,EAAAkC,UAAA6E,OAAA,SAAOC,EAAaP,EAAM1C,EAAeC,EAAUkB,GAC/C,GAAInB,GAAiBA,EAAcJ,OAAQ,CACvCI,EAAgB3D,KAAKoG,kBAAkBzC,EAAe0C,GACtD,IAAI,IAAIH,EAAI,EAAGA,EAAIvC,EAAcJ,OAAQ2C,IAAK,CAC1C,IAAIW,EAAelD,EAAcuC,GAC7BY,EAA4BL,EAAAA,YAAYC,gBAAgBG,EAAcR,GAE1E,GAAyB,GAArBS,EAOA,MANA,IAAIC,EAAYV,EAAKS,GACjBE,EAAOX,EAAKS,EAAkB,GAClCT,EAAKS,EAAkB,GAAKC,EAC5BV,EAAKS,GAAqBE,EAO9BhH,KAAKO,WAAcP,KAAKqF,mBAAqBP,IAAa9E,KAAK4B,aAAiB5B,KAAKsF,mBAAqBR,IAAa9E,KAAK6B,cAC5H7B,KAAKuF,OAAOc,EAAMvB,GAEtB9E,KAAKgD,SAAU,EACfhD,KAAKqD,qBAAuBuD,EAC5BhD,EAASS,KAAK,CAACE,MAAOZ,MAI9B/D,EAAAkC,UAAAmF,QAAA,SAAQL,EAAaP,EAAM1C,EAAeC,EAAUkB,GAChD,GAAInB,GAAiBA,EAAcJ,OAAQ,CACvCI,EAAgB3D,KAAKoG,kBAAkBzC,EAAe0C,GACtD,IAAI,IAAIH,EAAI,EAAGA,EAAIvC,EAAcJ,OAAQ2C,IAAK,CAC1C,IAAIW,EAAelD,EAAcuC,GAC7BY,EAA4BL,EAAAA,YAAYC,gBAAgBG,EAAcR,GAE1E,GAAyB,GAArBS,EAKA,MAJA,IAAIC,EAAYV,EAAKlC,OAAO2C,EAAkB,GAAG,GACjDT,EAAKa,QAAQH,GAOjB/G,KAAKO,WAAcP,KAAKqF,mBAAqBP,IAAa9E,KAAK4B,aAAiB5B,KAAKsF,mBAAqBR,IAAa9E,KAAK6B,cAC5H7B,KAAKuF,OAAOc,EAAMvB,GAEtB8B,EAAYO,UAAY,EACxBvD,EAASS,KAAK,CAACE,MAAOZ,MAI9B/D,EAAAkC,UAAAsF,SAAA,SAASR,EAAaP,EAAM1C,EAAeC,EAAUkB,GACjD,GAAInB,GAAiBA,EAAcJ,OAAQ,CAEvC,IAAI,IAAI2C,GADRvC,EAAgB3D,KAAKoG,kBAAkBzC,EAAe0C,IAC5B9C,OAAS,EAAG2C,GAAK,EAAGA,IAAK,CAC/C,IAAIW,EAAelD,EAAcuC,GAC7BY,EAA4BL,EAAAA,YAAYC,gBAAgBG,EAAcR,GAE1E,GAAIS,GAAsBT,EAAK9C,OAAS,EAOpC,MANA,IAAIwD,EAAYV,EAAKS,GACjBE,EAAOX,EAAKS,EAAkB,GAClCT,EAAKS,EAAkB,GAAKC,EAC5BV,EAAKS,GAAqBE,EAO9BhH,KAAKO,WAAcP,KAAKqF,mBAAqBP,IAAa9E,KAAK4B,aAAiB5B,KAAKsF,mBAAqBR,IAAa9E,KAAK6B,cAC5H7B,KAAKuF,OAAOc,EAAMvB,GAEtB9E,KAAKiD,WAAY,EACjBjD,KAAKqD,qBAAuBuD,EAC5BhD,EAASS,KAAK,CAACE,MAAOZ,MAI9B/D,EAAAkC,UAAAuF,WAAA,SAAWT,EAAaP,EAAM1C,EAAeC,EAAUkB,GACnD,GAAInB,GAAiBA,EAAcJ,OAAQ,CAEvC,IAAI,IAAI2C,GADRvC,EAAgB3D,KAAKoG,kBAAkBzC,EAAe0C,IAC5B9C,OAAS,EAAG2C,GAAK,EAAGA,IAAK,CAC/C,IAAIW,EAAelD,EAAcuC,GAC7BY,EAA4BL,EAAAA,YAAYC,gBAAgBG,EAAcR,GAE1E,GAAIS,GAAsBT,EAAK9C,OAAS,EAKpC,MAJA,IAAIwD,EAAYV,EAAKlC,OAAO2C,EAAkB,GAAG,GACjDT,EAAKjC,KAAK2C,GAOd/G,KAAKO,WAAcP,KAAKqF,mBAAqBP,IAAa9E,KAAK4B,aAAiB5B,KAAKsF,mBAAqBR,IAAa9E,KAAK6B,cAC5H7B,KAAKuF,OAAOc,EAAMvB,GAEtB8B,EAAYO,UAAYP,EAAYU,aACpC1D,EAASS,KAAK,CAACE,MAAOZ,MAI9B/D,EAAAkC,UAAA2C,UAAA,WACI,GAAIzE,KAAKwB,qBAAuBxB,KAAKwB,oBAAoB+B,OAAQ,CAC7D,IAAI,IAAI2C,EAAI,EAAGA,EAAIlG,KAAKwB,oBAAoB+B,OAAQ2C,IAAK,CACrD,IAAIW,EAAe7G,KAAKwB,oBAAoB0E,IACmB,GAA3DO,EAAAA,YAAYC,gBAAgBG,EAAc7G,KAAKgF,UAC/ChF,KAAKgF,OAAOZ,KAAKpE,KAAKgG,OAAO7B,OAAOsC,EAAAA,YAAYC,gBAAgBG,EAAc7G,KAAKgG,QAAQ,GAAG,IAE1FhG,KAAK2F,sBACL3F,KAAK2F,qBAAqBxB,OAAOsC,EAAAA,YAAYC,gBAAgBG,EAAc7G,KAAK2F,sBAAsB,IAGlH3F,KAAKiB,eAAeoD,KAAK,CACrBE,MAAOvE,KAAKwB,sBAEhBxB,KAAKwB,oBAAsB,GAEvBxB,KAAKsF,mBACLtF,KAAKuF,OAAOvF,KAAKgF,OAAQhF,KAAK6B,eAK1CjC,EAAAkC,UAAAyF,aAAA,WACI,GAAIvH,KAAKgG,OAAQ,CAGb,IAFA,IAAIwB,EAAa,GAETtB,EAAI,EAAGA,EAAIlG,KAAKgG,OAAOzC,OAAQ2C,IACnC,GAAIlG,KAAK6F,cAAc7F,KAAKgG,OAAOE,GAAIlG,KAAK4B,aAAc,CACtD,IAAI6F,EAAczH,KAAKgG,OAAO7B,OAAO+B,EAAG,GAAG,GAC3ClG,KAAKgF,OAAOZ,KAAKqD,GACjBD,EAAWpD,KAAKqD,GAChBvB,IAIRlG,KAAKgB,kBAAkBqD,KAAK,CACxBE,MAAOiD,IAGXxH,KAAKwB,oBAAsB,GAEvBxB,KAAKsF,mBACLtF,KAAKuF,OAAOvF,KAAKgF,OAAQhF,KAAK6B,aAGlC7B,KAAK2F,qBAAuB,KAIpC/F,EAAAkC,UAAA6C,SAAA,WACI,GAAI3E,KAAKyB,qBAAuBzB,KAAKyB,oBAAoB8B,OAAQ,CAC7D,IAAI,IAAI2C,EAAI,EAAGA,EAAIlG,KAAKyB,oBAAoB8B,OAAQ2C,IAAK,CACrD,IAAIW,EAAe7G,KAAKyB,oBAAoByE,IACmB,GAA3DO,EAAAA,YAAYC,gBAAgBG,EAAc7G,KAAKgG,UAC/ChG,KAAKgG,OAAO5B,KAAKpE,KAAKgF,OAAOb,OAAOsC,EAAAA,YAAYC,gBAAgBG,EAAc7G,KAAKgF,QAAQ,GAAG,IAE1FhF,KAAK4F,sBACL5F,KAAK4F,qBAAqBzB,OAAOsC,EAAAA,YAAYC,gBAAgBG,EAAc7G,KAAK4F,sBAAsB,GAAG,IAGrH5F,KAAKa,eAAewD,KAAK,CACrBE,MAAOvE,KAAKyB,sBAGhBzB,KAAKyB,oBAAsB,GAEvBzB,KAAKqF,mBACLrF,KAAKuF,OAAOvF,KAAKgG,OAAQhG,KAAK4B,eAK1ChC,EAAAkC,UAAA4F,YAAA,WACI,GAAI1H,KAAKgF,OAAQ,CAGb,IAFA,IAAIwC,EAAa,GAETtB,EAAI,EAAGA,EAAIlG,KAAKgF,OAAOzB,OAAQ2C,IACnC,GAAIlG,KAAK6F,cAAc7F,KAAKgF,OAAOkB,GAAIlG,KAAK6B,aAAc,CACtD,IAAI4F,EAAczH,KAAKgF,OAAOb,OAAO+B,EAAG,GAAG,GAC3ClG,KAAKgG,OAAO5B,KAAKqD,GACjBD,EAAWpD,KAAKqD,GAChBvB,IAIRlG,KAAKe,kBAAkBsD,KAAK,CACxBE,MAAOiD,IAGXxH,KAAKyB,oBAAsB,GAEvBzB,KAAKqF,mBACLrF,KAAKuF,OAAOvF,KAAKgG,OAAQhG,KAAK4B,aAGlC5B,KAAK4F,qBAAuB,KAIpChG,EAAAkC,UAAA6F,WAAA,SAAWxH,EAAWwD,GAClB,OAA0D,GAAnD3D,KAAK6D,qBAAqB1D,EAAMwD,IAG3C/D,EAAAkC,UAAA+B,qBAAA,SAAqB1D,EAAWwD,GAC5B,OAAO8C,EAAAA,YAAYC,gBAAgBvG,EAAMwD,IAG7C/D,EAAAkC,UAAA8F,OAAA,SAAOlE,EAA8BoB,GACjC,IAAI+C,EAAanE,EAAMoE,oBAAsBpE,EAAMqE,UAC/CC,EAAchI,KAAKiI,eAAevE,EAAMwE,cAAexE,EAAMyE,aAAcrD,EAAU+C,EAAYnE,EAAMvD,KAAK0E,MAE5GC,IAAa9E,KAAK4B,aACdiG,GACAO,EAAAA,kBAAkB1E,EAAMoE,kBAAkBjD,KAAMnB,EAAMqE,UAAUlD,KAAMmD,EAAYE,cAAeF,EAAYG,cAEzGnI,KAAK4F,sBACL5F,KAAK4F,qBAAqBzB,OAAOT,EAAMwE,cAAe,GAE1DlI,KAAKa,eAAewD,KAAK,CAACE,MAAOb,EAAMvD,KAAK0E,SAG5CwD,EAAAA,gBAAgB3E,EAAMqE,UAAUlD,KAAMmD,EAAYE,cAAeF,EAAYG,cAC7EnI,KAAKkB,gBAAgBmD,KAAK,CAACE,MAAOb,EAAMvD,KAAK0E,QAG7C7E,KAAKqF,mBACLrF,KAAKuF,OAAOvF,KAAKgG,OAAQhG,KAAK4B,eAI9BiG,GACAO,EAAAA,kBAAkB1E,EAAMoE,kBAAkBjD,KAAMnB,EAAMqE,UAAUlD,KAAMmD,EAAYE,cAAeF,EAAYG,cAEzGnI,KAAK2F,sBACL3F,KAAK2F,qBAAqBxB,OAAOT,EAAMwE,cAAe,GAE1DlI,KAAKiB,eAAeoD,KAAK,CAACE,MAAOb,EAAMvD,KAAK0E,SAG5CwD,EAAAA,gBAAgB3E,EAAMqE,UAAUlD,KAAMmD,EAAYE,cAAeF,EAAYG,cAC7EnI,KAAKmB,gBAAgBkD,KAAK,CAACE,MAAOb,EAAMvD,KAAK0E,QAG7C7E,KAAKsF,mBACLtF,KAAKuF,OAAOvF,KAAKgF,OAAQhF,KAAK6B,eAK1CjC,EAAAkC,UAAAmG,eAAA,SAAeK,EAAWC,EAASC,EAAaX,EAAYhD,GACxD,IAAIqD,EAAeC,EAWnB,OATIK,IAAgBxI,KAAK4B,aACrBsG,EAAgBL,EAAa7H,KAAKsF,kBAAoBmB,EAAAA,YAAYC,gBAAgB7B,EAAM7E,KAAKgF,QAAUsD,EAAYtI,KAAKqF,kBAAoBoB,EAAAA,YAAYC,gBAAgB7B,EAAM7E,KAAKgG,QAAUsC,EAC7LH,EAAenI,KAAKqF,kBAAoBrF,KAAKyI,yBAAyBzI,KAAK2F,qBAAsB4C,EAASvI,KAAKgG,QAAUuC,IAGzHL,EAAgBL,EAAa7H,KAAKqF,kBAAoBoB,EAAAA,YAAYC,gBAAgB7B,EAAM7E,KAAKgG,QAAUsC,EAAYtI,KAAKsF,kBAAoBmB,EAAAA,YAAYC,gBAAgB7B,EAAM7E,KAAKgF,QAAUsD,EAC7LH,EAAenI,KAAKsF,kBAAoBtF,KAAKyI,yBAAyBzI,KAAK4F,qBAAsB2C,EAASvI,KAAKgF,QAAUuD,GAGtH,CAACL,cAAaA,EAAEC,aAAYA,IAGvCvI,EAAAkC,UAAA2G,yBAAA,SAAyBC,EAAgBxI,EAAOyI,GAC5C,OAAID,EAAenF,SAAWrD,EACZuG,EAAAA,YAAYC,gBAAgBgC,EAAexI,EAAM,GAAIyI,GAElD,EAGVlC,EAAAA,YAAYC,gBAAgBgC,EAAexI,GAAQyI,IAIlE/I,EAAAkC,UAAA8G,YAAA,WACI5I,KAAK2F,qBAAuB,KAC5B3F,KAAKqF,kBAAoB,KACzBrF,KAAK4F,qBAAuB,KAC5B5F,KAAKsF,kBAAoB,KAELtF,KAAK6I,sBAAsBC,cAAe7D,MAAQ,GAClDjF,KAAK+I,sBAAsBD,cAAe7D,MAAQ,IAG1ErF,EAAAkC,UAAAkH,cAAA,SAActF,EAAsBvD,EAAWwD,EAAsBC,GACjE,IAAIN,EAA2BI,EAAMuF,cAErC,OAAOvF,EAAMwF,OAET,KAAK,GACD,IAAIC,EAAWnJ,KAAKoJ,aAAa9F,GAC7B6F,GACAA,EAASE,QAGb3F,EAAM4F,iBACV,MAGA,KAAK,GACD,IAAIC,EAAWvJ,KAAKwJ,aAAalG,GAC7BiG,GACAA,EAASF,QAGb3F,EAAM4F,iBACV,MAGA,KAAK,GACDtJ,KAAKyD,YAAYC,EAAOvD,EAAMwD,EAAeC,GAC7CF,EAAM4F,mBAKlB1J,EAAAkC,UAAAsH,aAAA,SAAajJ,GACT,IAAIgJ,EAAWhJ,EAAKsJ,mBAEpB,OAAIN,GACQhG,EAAAA,WAAWuG,SAASP,EAAU,oBAAsBhG,EAAAA,WAAWwG,SAASR,GAAYnJ,KAAKoJ,aAAaD,GAAYA,EAEnH,MAGfvJ,EAAAkC,UAAA0H,aAAA,SAAarJ,GACT,IAAIoJ,EAAWpJ,EAAKyJ,uBAEpB,OAAIL,GACQpG,EAAAA,WAAWuG,SAASH,EAAU,oBAAsBpG,EAAAA,WAAWwG,SAASJ,GAAYvJ,KAAKwJ,aAAaD,GAAYA,EAEnH,MAGf3J,EAAAkC,UAAAG,YAAA,WACI,IAAKjC,KAAK6J,aAAc,CACpB7J,KAAKH,GAAGiJ,cAAcgB,SAAS,GAAGC,aAAa/J,KAAK0B,GAAI,IACxD1B,KAAK6J,aAAeG,SAASC,cAAc,SAC3CjK,KAAK6J,aAAaK,KAAO,WACzBF,SAASG,KAAKC,YAAYpK,KAAK6J,cAE/B,IAAIQ,EAAY,+CACgBrK,KAAKY,WAAU,oCAC7BZ,KAAK0B,GAAE,kHAIP1B,KAAK0B,GAAE,yLAKP1B,KAAK0B,GAAE,oMAKP1B,KAAK0B,GAAE,oJAIP1B,KAAK0B,GAAE,mIAIP1B,KAAK0B,GAAE,0IAIP1B,KAAK0B,GAAE,kIAIP1B,KAAK0B,GAAE,0HAMzB1B,KAAK6J,aAAaQ,UAAYA,IAItCzK,EAAAkC,UAAAwI,aAAA,WACQtK,KAAK6J,eACLG,SAASG,KAAKI,YAAYvK,KAAK6J,cAC/B7J,KAAK6J,aAAe,OAI5BjK,EAAAkC,UAAA0I,YAAA,WACIxK,KAAKsK,yCAvxBZG,EAAAA,UAASC,KAAA,CAAC,CACPC,SAAU,aACVnI,SAAU,gtQAmFVoI,gBAAiBC,EAAAA,wBAAwBC,OACzCC,cAAeC,EAAAA,kBAAkBC,+zBA/FPC,EAAAA,kBAA6KC,EAAAA,yBAGxKC,EAAAA,iDAiG9BC,EAAAA,sBAEAA,EAAAA,4BAEAA,EAAAA,4BAEAA,EAAAA,0BAEAA,EAAAA,wBAEAA,EAAAA,4BAEAA,EAAAA,uBAEAA,EAAAA,6BAEAA,EAAAA,6BAEAA,EAAAA,gCAEAA,EAAAA,gCAEAA,EAAAA,gCAEAA,EAAAA,wBAEAA,EAAAA,qBAEAA,EAAAA,0BAEAA,EAAAA,2BAEAA,EAAAA,2BAEAA,EAAAA,kCAEAA,EAAAA,kCAEAA,EAAAA,uCAEAA,EAAAA,uCAEAA,EAAAA,wBAEAA,EAAAA,qCAEAA,EAAAA,qCAEAA,EAAAA,+BAEAA,EAAAA,0BAEAA,EAAAA,8BAEAC,EAAAA,kCAEAA,EAAAA,kCAEAA,EAAAA,+BAEAA,EAAAA,gCAEAA,EAAAA,gCAEAA,EAAAA,+BAEAA,EAAAA,+BAEAA,EAAAA,+BAEAA,EAAAA,+BAEAA,EAAAA,oCAEAC,EAAAA,UAASb,KAAA,CAAC,2CAEVa,EAAAA,UAASb,KAAA,CAAC,6CAEVa,EAAAA,UAASb,KAAA,CAAC,+CAEVa,EAAAA,UAASb,KAAA,CAAC,mCAEVc,EAAAA,gBAAed,KAAA,CAACe,EAAAA,wBAmnBrB,iCALCC,EAAAA,SAAQhB,KAAA,CAAC,CACNiB,QAAS,CAACC,EAAAA,aAAaC,EAAAA,aAAaC,EAAAA,aAAaC,EAAAA,aAAaC,EAAAA,gBAC9DC,QAAS,CAACrM,EAASkM,EAAAA,aAAaE,EAAAA,gBAChCE,aAAc,CAACtM","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"]}
@@ -55,11 +55,9 @@
55
55
  this.onModelTouched = function () { };
56
56
  }
57
57
  RadioButton.prototype.ngOnInit = function () {
58
- if (this.formControlName) {
59
- this.control = this.injector.get(forms.NgControl);
60
- this.checkName();
61
- this.registry.add(this.control, this);
62
- }
58
+ this.control = this.injector.get(forms.NgControl);
59
+ this.checkName();
60
+ this.registry.add(this.control, this);
63
61
  };
64
62
  RadioButton.prototype.handleClick = function (event, radioButton, focus) {
65
63
  event.preventDefault();
@@ -76,9 +74,7 @@
76
74
  this.inputViewChild.nativeElement.checked = true;
77
75
  this.checked = true;
78
76
  this.onModelChange(this.value);
79
- if (this.formControlName) {
80
- this.registry.select(this);
81
- }
77
+ this.registry.select(this);
82
78
  this.onClick.emit(event);
83
79
  }
84
80
  };
@@ -115,9 +111,7 @@
115
111
  this.inputViewChild.nativeElement.focus();
116
112
  };
117
113
  RadioButton.prototype.ngOnDestroy = function () {
118
- if (this.formControlName) {
119
- this.registry.remove(this);
120
- }
114
+ this.registry.remove(this);
121
115
  };
122
116
  RadioButton.prototype.checkName = function () {
123
117
  if (this.name && this.formControlName && this.name !== this.formControlName) {
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-radiobutton.umd.js","sources":["../../src/app/components/radiobutton/radiobutton.ts","../../src/app/components/radiobutton/primeng-radiobutton.ts"],"sourcesContent":["import {NgModule,Component,Input,Output,ElementRef,EventEmitter,forwardRef,ViewChild,ChangeDetectorRef,ChangeDetectionStrategy, Injectable, Injector, OnInit, OnDestroy} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {NG_VALUE_ACCESSOR, ControlValueAccessor, NgControl} from '@angular/forms';\n\nexport const RADIO_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioButton),\n multi: true\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RadioControlRegistry {\n private accessors: any[] = [];\n\n add(control: NgControl, accessor: RadioButton) {\n this.accessors.push([control, accessor]);\n }\n\n remove(accessor: RadioButton) {\n this.accessors = this.accessors.filter((c) => {\n return c[1] !== accessor;\n })\n }\n\n select(accessor: RadioButton) {\n this.accessors.forEach((c) => {\n if (this.isSameGroup(c, accessor) && c[1] !== accessor) {\n c[1].writeValue(accessor.value);\n }\n });\n }\n\n private isSameGroup(controlPair: [NgControl, RadioButton], accessor: RadioButton): boolean {\n if (!controlPair[0].control) {\n return false;\n }\n\n return controlPair[0].control.root === accessor.control.control.root && controlPair[1].name === accessor.name;\n }\n}\n\n@Component({\n selector: 'p-radioButton',\n template: `\n <div [ngStyle]=\"style\" [ngClass]=\"{'p-radiobutton p-component':true,'p-radiobutton-checked': checked, 'p-radiobutton-disabled': disabled, 'p-radiobutton-focused': focused}\" [class]=\"styleClass\">\n <div class=\"p-hidden-accessible\">\n <input #rb type=\"radio\" [attr.id]=\"inputId\" [attr.name]=\"name\" [attr.value]=\"value\" [attr.tabindex]=\"tabindex\" [attr.aria-checked]=\"checked\" [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\" [checked]=\"checked\" (change)=\"onChange($event)\" (focus)=\"onInputFocus($event)\" (blur)=\"onInputBlur($event)\" [disabled]=\"disabled\">\n </div>\n <div (click)=\"handleClick($event, rb, true)\" [ngClass]=\"{'p-radiobutton-box':true, 'p-highlight': checked, 'p-disabled': disabled, 'p-focus': focused}\">\n <span class=\"p-radiobutton-icon\"></span>\n </div>\n </div>\n <label (click)=\"select($event)\" [class]=\"labelStyleClass\"\n [ngClass]=\"{'p-radiobutton-label':true, 'p-radiobutton-label-active':rb.checked, 'p-disabled':disabled, 'p-radiobutton-label-focus':focused}\"\n *ngIf=\"label\" [attr.for]=\"inputId\">{{label}}</label>\n `,\n providers: [RADIO_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RadioButton implements ControlValueAccessor, OnInit, OnDestroy {\n\n @Input() value: any;\n\n @Input() formControlName: string;\n\n @Input() name: string;\n\n @Input() disabled: boolean;\n\n @Input() label: string;\n\n @Input() tabindex: number;\n\n @Input() inputId: string;\n\n @Input() ariaLabelledBy: string;\n\n @Input() ariaLabel: string;\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() labelStyleClass: string;\n\n @Output() onClick: EventEmitter<any> = new EventEmitter();\n\n @Output() onFocus: EventEmitter<any> = new EventEmitter();\n\n @Output() onBlur: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('rb') inputViewChild: ElementRef;\n\n public onModelChange: Function = () => {};\n\n public onModelTouched: Function = () => {};\n\n public checked: boolean;\n\n public focused: boolean;\n\n control: NgControl;\n\n constructor(public cd: ChangeDetectorRef, private injector: Injector, private registry: RadioControlRegistry) {}\n\n ngOnInit() {\n if (this.formControlName) {\n this.control = this.injector.get(NgControl);\n this.checkName();\n this.registry.add(this.control, this);\n }\n }\n \n handleClick(event, radioButton, focus) {\n event.preventDefault();\n\n if (this.disabled) {\n return;\n }\n\n this.select(event);\n\n if (focus) {\n radioButton.focus();\n }\n }\n \n select(event) {\n if (!this.disabled) {\n this.inputViewChild.nativeElement.checked = true;\n this.checked = true;\n this.onModelChange(this.value);\n \n if (this.formControlName) {\n this.registry.select(this);\n }\n\n this.onClick.emit(event);\n }\n }\n\n writeValue(value: any) : void {\n this.checked = (value == this.value);\n\n if (this.inputViewChild && this.inputViewChild.nativeElement) {\n this.inputViewChild.nativeElement.checked = this.checked;\n }\n\n this.cd.markForCheck();\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n setDisabledState(val: boolean): void {\n this.disabled = val;\n this.cd.markForCheck();\n }\n\n onInputFocus(event) {\n this.focused = true;\n this.onFocus.emit(event);\n }\n\n onInputBlur(event) {\n this.focused = false;\n this.onModelTouched();\n this.onBlur.emit(event);\n }\n\n onChange(event) {\n this.select(event);\n }\n\n focus() {\n this.inputViewChild.nativeElement.focus();\n }\n\n ngOnDestroy() {\n if (this.formControlName) {\n this.registry.remove(this);\n }\n }\n\n private checkName() {\n if (this.name && this.formControlName && this.name !== this.formControlName) {\n this.throwNameError();\n }\n if (!this.name && this.formControlName) {\n this.name = this.formControlName;\n }\n }\n\n private throwNameError() {\n throw new Error(`\n If you define both a name and a formControlName attribute on your radio button, their values\n must match. Ex: <p-radioButton formControlName=\"food\" name=\"food\"></p-radioButton>\n `);\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [RadioButton],\n declarations: [RadioButton]\n})\nexport class RadioButtonModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["NG_VALUE_ACCESSOR","forwardRef","Injectable","EventEmitter","NgControl","Component","ChangeDetectionStrategy","ChangeDetectorRef","Injector","Input","Output","ViewChild","NgModule","CommonModule"],"mappings":"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"}
1
+ {"version":3,"file":"primeng-radiobutton.umd.js","sources":["../../src/app/components/radiobutton/radiobutton.ts","../../src/app/components/radiobutton/primeng-radiobutton.ts"],"sourcesContent":["import {NgModule,Component,Input,Output,ElementRef,EventEmitter,forwardRef,ViewChild,ChangeDetectorRef,ChangeDetectionStrategy, Injectable, Injector, OnInit, OnDestroy} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {NG_VALUE_ACCESSOR, ControlValueAccessor, NgControl} from '@angular/forms';\n\nexport const RADIO_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioButton),\n multi: true\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RadioControlRegistry {\n private accessors: any[] = [];\n\n add(control: NgControl, accessor: RadioButton) {\n this.accessors.push([control, accessor]);\n }\n\n remove(accessor: RadioButton) {\n this.accessors = this.accessors.filter((c) => {\n return c[1] !== accessor;\n })\n }\n\n select(accessor: RadioButton) {\n this.accessors.forEach((c) => {\n if (this.isSameGroup(c, accessor) && c[1] !== accessor) {\n c[1].writeValue(accessor.value);\n }\n });\n }\n\n private isSameGroup(controlPair: [NgControl, RadioButton], accessor: RadioButton): boolean {\n if (!controlPair[0].control) {\n return false;\n }\n\n return controlPair[0].control.root === accessor.control.control.root && controlPair[1].name === accessor.name;\n }\n}\n\n@Component({\n selector: 'p-radioButton',\n template: `\n <div [ngStyle]=\"style\" [ngClass]=\"{'p-radiobutton p-component':true,'p-radiobutton-checked': checked, 'p-radiobutton-disabled': disabled, 'p-radiobutton-focused': focused}\" [class]=\"styleClass\">\n <div class=\"p-hidden-accessible\">\n <input #rb type=\"radio\" [attr.id]=\"inputId\" [attr.name]=\"name\" [attr.value]=\"value\" [attr.tabindex]=\"tabindex\" [attr.aria-checked]=\"checked\" [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\" [checked]=\"checked\" (change)=\"onChange($event)\" (focus)=\"onInputFocus($event)\" (blur)=\"onInputBlur($event)\" [disabled]=\"disabled\">\n </div>\n <div (click)=\"handleClick($event, rb, true)\" [ngClass]=\"{'p-radiobutton-box':true, 'p-highlight': checked, 'p-disabled': disabled, 'p-focus': focused}\">\n <span class=\"p-radiobutton-icon\"></span>\n </div>\n </div>\n <label (click)=\"select($event)\" [class]=\"labelStyleClass\"\n [ngClass]=\"{'p-radiobutton-label':true, 'p-radiobutton-label-active':rb.checked, 'p-disabled':disabled, 'p-radiobutton-label-focus':focused}\"\n *ngIf=\"label\" [attr.for]=\"inputId\">{{label}}</label>\n `,\n providers: [RADIO_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RadioButton implements ControlValueAccessor, OnInit, OnDestroy {\n\n @Input() value: any;\n\n @Input() formControlName: string;\n\n @Input() name: string;\n\n @Input() disabled: boolean;\n\n @Input() label: string;\n\n @Input() tabindex: number;\n\n @Input() inputId: string;\n\n @Input() ariaLabelledBy: string;\n\n @Input() ariaLabel: string;\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() labelStyleClass: string;\n\n @Output() onClick: EventEmitter<any> = new EventEmitter();\n\n @Output() onFocus: EventEmitter<any> = new EventEmitter();\n\n @Output() onBlur: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('rb') inputViewChild: ElementRef;\n\n public onModelChange: Function = () => {};\n\n public onModelTouched: Function = () => {};\n\n public checked: boolean;\n\n public focused: boolean;\n\n control: NgControl;\n\n constructor(public cd: ChangeDetectorRef, private injector: Injector, private registry: RadioControlRegistry) {}\n\n ngOnInit() {\n this.control = this.injector.get(NgControl);\n this.checkName();\n this.registry.add(this.control, this);\n }\n \n handleClick(event, radioButton, focus) {\n event.preventDefault();\n\n if (this.disabled) {\n return;\n }\n\n this.select(event);\n\n if (focus) {\n radioButton.focus();\n }\n }\n \n select(event) {\n if (!this.disabled) {\n this.inputViewChild.nativeElement.checked = true;\n this.checked = true;\n this.onModelChange(this.value);\n this.registry.select(this);\n this.onClick.emit(event);\n }\n }\n\n writeValue(value: any) : void {\n this.checked = (value == this.value);\n\n if (this.inputViewChild && this.inputViewChild.nativeElement) {\n this.inputViewChild.nativeElement.checked = this.checked;\n }\n\n this.cd.markForCheck();\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n setDisabledState(val: boolean): void {\n this.disabled = val;\n this.cd.markForCheck();\n }\n\n onInputFocus(event) {\n this.focused = true;\n this.onFocus.emit(event);\n }\n\n onInputBlur(event) {\n this.focused = false;\n this.onModelTouched();\n this.onBlur.emit(event);\n }\n\n onChange(event) {\n this.select(event);\n }\n\n focus() {\n this.inputViewChild.nativeElement.focus();\n }\n\n ngOnDestroy() {\n this.registry.remove(this);\n }\n\n private checkName() {\n if (this.name && this.formControlName && this.name !== this.formControlName) {\n this.throwNameError();\n }\n if (!this.name && this.formControlName) {\n this.name = this.formControlName;\n }\n }\n\n private throwNameError() {\n throw new Error(`\n If you define both a name and a formControlName attribute on your radio button, their values\n must match. Ex: <p-radioButton formControlName=\"food\" name=\"food\"></p-radioButton>\n `);\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [RadioButton],\n declarations: [RadioButton]\n})\nexport class RadioButtonModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["NG_VALUE_ACCESSOR","forwardRef","Injectable","EventEmitter","NgControl","Component","ChangeDetectionStrategy","ChangeDetectorRef","Injector","Input","Output","ViewChild","NgModule","CommonModule"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/common"),require("@angular/forms")):"function"==typeof define&&define.amd?define("primeng/radiobutton",["exports","@angular/core","@angular/common","@angular/forms"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).primeng=t.primeng||{},t.primeng.radiobutton={}),t.ng.core,t.ng.common,t.ng.forms)}(this,(function(t,e,o,n){"use strict";var i={provide:n.NG_VALUE_ACCESSOR,useExisting:e.forwardRef((function(){return a})),multi:!0},r=function(){function t(){this.accessors=[]}return t.prototype.add=function(t,e){this.accessors.push([t,e])},t.prototype.remove=function(t){this.accessors=this.accessors.filter((function(e){return e[1]!==t}))},t.prototype.select=function(t){var e=this;this.accessors.forEach((function(o){e.isSameGroup(o,t)&&o[1]!==t&&o[1].writeValue(t.value)}))},t.prototype.isSameGroup=function(t,e){return!!t[0].control&&(t[0].control.root===e.control.control.root&&t[1].name===e.name)},t}();r.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new r},token:r,providedIn:"root"}),r.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}];var a=function(){function t(t,o,n){this.cd=t,this.injector=o,this.registry=n,this.onClick=new e.EventEmitter,this.onFocus=new e.EventEmitter,this.onBlur=new e.EventEmitter,this.onModelChange=function(){},this.onModelTouched=function(){}}return t.prototype.ngOnInit=function(){this.formControlName&&(this.control=this.injector.get(n.NgControl),this.checkName(),this.registry.add(this.control,this))},t.prototype.handleClick=function(t,e,o){t.preventDefault(),this.disabled||(this.select(t),o&&e.focus())},t.prototype.select=function(t){this.disabled||(this.inputViewChild.nativeElement.checked=!0,this.checked=!0,this.onModelChange(this.value),this.formControlName&&this.registry.select(this),this.onClick.emit(t))},t.prototype.writeValue=function(t){this.checked=t==this.value,this.inputViewChild&&this.inputViewChild.nativeElement&&(this.inputViewChild.nativeElement.checked=this.checked),this.cd.markForCheck()},t.prototype.registerOnChange=function(t){this.onModelChange=t},t.prototype.registerOnTouched=function(t){this.onModelTouched=t},t.prototype.setDisabledState=function(t){this.disabled=t,this.cd.markForCheck()},t.prototype.onInputFocus=function(t){this.focused=!0,this.onFocus.emit(t)},t.prototype.onInputBlur=function(t){this.focused=!1,this.onModelTouched(),this.onBlur.emit(t)},t.prototype.onChange=function(t){this.select(t)},t.prototype.focus=function(){this.inputViewChild.nativeElement.focus()},t.prototype.ngOnDestroy=function(){this.formControlName&&this.registry.remove(this)},t.prototype.checkName=function(){this.name&&this.formControlName&&this.name!==this.formControlName&&this.throwNameError(),!this.name&&this.formControlName&&(this.name=this.formControlName)},t.prototype.throwNameError=function(){throw new Error('\n If you define both a name and a formControlName attribute on your radio button, their values\n must match. Ex: <p-radioButton formControlName="food" name="food"></p-radioButton>\n ')},t}();a.decorators=[{type:e.Component,args:[{selector:"p-radioButton",template:'\n <div [ngStyle]="style" [ngClass]="{\'p-radiobutton p-component\':true,\'p-radiobutton-checked\': checked, \'p-radiobutton-disabled\': disabled, \'p-radiobutton-focused\': focused}" [class]="styleClass">\n <div class="p-hidden-accessible">\n <input #rb type="radio" [attr.id]="inputId" [attr.name]="name" [attr.value]="value" [attr.tabindex]="tabindex" [attr.aria-checked]="checked" [attr.aria-label]="ariaLabel"\n [attr.aria-labelledby]="ariaLabelledBy" [checked]="checked" (change)="onChange($event)" (focus)="onInputFocus($event)" (blur)="onInputBlur($event)" [disabled]="disabled">\n </div>\n <div (click)="handleClick($event, rb, true)" [ngClass]="{\'p-radiobutton-box\':true, \'p-highlight\': checked, \'p-disabled\': disabled, \'p-focus\': focused}">\n <span class="p-radiobutton-icon"></span>\n </div>\n </div>\n <label (click)="select($event)" [class]="labelStyleClass"\n [ngClass]="{\'p-radiobutton-label\':true, \'p-radiobutton-label-active\':rb.checked, \'p-disabled\':disabled, \'p-radiobutton-label-focus\':focused}"\n *ngIf="label" [attr.for]="inputId">{{label}}</label>\n ',providers:[i],changeDetection:e.ChangeDetectionStrategy.OnPush}]}],a.ctorParameters=function(){return[{type:e.ChangeDetectorRef},{type:e.Injector},{type:r}]},a.propDecorators={value:[{type:e.Input}],formControlName:[{type:e.Input}],name:[{type:e.Input}],disabled:[{type:e.Input}],label:[{type:e.Input}],tabindex:[{type:e.Input}],inputId:[{type:e.Input}],ariaLabelledBy:[{type:e.Input}],ariaLabel:[{type:e.Input}],style:[{type:e.Input}],styleClass:[{type:e.Input}],labelStyleClass:[{type:e.Input}],onClick:[{type:e.Output}],onFocus:[{type:e.Output}],onBlur:[{type:e.Output}],inputViewChild:[{type:e.ViewChild,args:["rb"]}]};var s=function(){};s.decorators=[{type:e.NgModule,args:[{imports:[o.CommonModule],exports:[a],declarations:[a]}]}],t.RADIO_VALUE_ACCESSOR=i,t.RadioButton=a,t.RadioButtonModule=s,t.RadioControlRegistry=r,Object.defineProperty(t,"__esModule",{value:!0})}));
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/common"),require("@angular/forms")):"function"==typeof define&&define.amd?define("primeng/radiobutton",["exports","@angular/core","@angular/common","@angular/forms"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).primeng=t.primeng||{},t.primeng.radiobutton={}),t.ng.core,t.ng.common,t.ng.forms)}(this,(function(t,e,o,n){"use strict";var i={provide:n.NG_VALUE_ACCESSOR,useExisting:e.forwardRef((function(){return a})),multi:!0},r=function(){function t(){this.accessors=[]}return t.prototype.add=function(t,e){this.accessors.push([t,e])},t.prototype.remove=function(t){this.accessors=this.accessors.filter((function(e){return e[1]!==t}))},t.prototype.select=function(t){var e=this;this.accessors.forEach((function(o){e.isSameGroup(o,t)&&o[1]!==t&&o[1].writeValue(t.value)}))},t.prototype.isSameGroup=function(t,e){return!!t[0].control&&(t[0].control.root===e.control.control.root&&t[1].name===e.name)},t}();r.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new r},token:r,providedIn:"root"}),r.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}];var a=function(){function t(t,o,n){this.cd=t,this.injector=o,this.registry=n,this.onClick=new e.EventEmitter,this.onFocus=new e.EventEmitter,this.onBlur=new e.EventEmitter,this.onModelChange=function(){},this.onModelTouched=function(){}}return t.prototype.ngOnInit=function(){this.control=this.injector.get(n.NgControl),this.checkName(),this.registry.add(this.control,this)},t.prototype.handleClick=function(t,e,o){t.preventDefault(),this.disabled||(this.select(t),o&&e.focus())},t.prototype.select=function(t){this.disabled||(this.inputViewChild.nativeElement.checked=!0,this.checked=!0,this.onModelChange(this.value),this.registry.select(this),this.onClick.emit(t))},t.prototype.writeValue=function(t){this.checked=t==this.value,this.inputViewChild&&this.inputViewChild.nativeElement&&(this.inputViewChild.nativeElement.checked=this.checked),this.cd.markForCheck()},t.prototype.registerOnChange=function(t){this.onModelChange=t},t.prototype.registerOnTouched=function(t){this.onModelTouched=t},t.prototype.setDisabledState=function(t){this.disabled=t,this.cd.markForCheck()},t.prototype.onInputFocus=function(t){this.focused=!0,this.onFocus.emit(t)},t.prototype.onInputBlur=function(t){this.focused=!1,this.onModelTouched(),this.onBlur.emit(t)},t.prototype.onChange=function(t){this.select(t)},t.prototype.focus=function(){this.inputViewChild.nativeElement.focus()},t.prototype.ngOnDestroy=function(){this.registry.remove(this)},t.prototype.checkName=function(){this.name&&this.formControlName&&this.name!==this.formControlName&&this.throwNameError(),!this.name&&this.formControlName&&(this.name=this.formControlName)},t.prototype.throwNameError=function(){throw new Error('\n If you define both a name and a formControlName attribute on your radio button, their values\n must match. Ex: <p-radioButton formControlName="food" name="food"></p-radioButton>\n ')},t}();a.decorators=[{type:e.Component,args:[{selector:"p-radioButton",template:'\n <div [ngStyle]="style" [ngClass]="{\'p-radiobutton p-component\':true,\'p-radiobutton-checked\': checked, \'p-radiobutton-disabled\': disabled, \'p-radiobutton-focused\': focused}" [class]="styleClass">\n <div class="p-hidden-accessible">\n <input #rb type="radio" [attr.id]="inputId" [attr.name]="name" [attr.value]="value" [attr.tabindex]="tabindex" [attr.aria-checked]="checked" [attr.aria-label]="ariaLabel"\n [attr.aria-labelledby]="ariaLabelledBy" [checked]="checked" (change)="onChange($event)" (focus)="onInputFocus($event)" (blur)="onInputBlur($event)" [disabled]="disabled">\n </div>\n <div (click)="handleClick($event, rb, true)" [ngClass]="{\'p-radiobutton-box\':true, \'p-highlight\': checked, \'p-disabled\': disabled, \'p-focus\': focused}">\n <span class="p-radiobutton-icon"></span>\n </div>\n </div>\n <label (click)="select($event)" [class]="labelStyleClass"\n [ngClass]="{\'p-radiobutton-label\':true, \'p-radiobutton-label-active\':rb.checked, \'p-disabled\':disabled, \'p-radiobutton-label-focus\':focused}"\n *ngIf="label" [attr.for]="inputId">{{label}}</label>\n ',providers:[i],changeDetection:e.ChangeDetectionStrategy.OnPush}]}],a.ctorParameters=function(){return[{type:e.ChangeDetectorRef},{type:e.Injector},{type:r}]},a.propDecorators={value:[{type:e.Input}],formControlName:[{type:e.Input}],name:[{type:e.Input}],disabled:[{type:e.Input}],label:[{type:e.Input}],tabindex:[{type:e.Input}],inputId:[{type:e.Input}],ariaLabelledBy:[{type:e.Input}],ariaLabel:[{type:e.Input}],style:[{type:e.Input}],styleClass:[{type:e.Input}],labelStyleClass:[{type:e.Input}],onClick:[{type:e.Output}],onFocus:[{type:e.Output}],onBlur:[{type:e.Output}],inputViewChild:[{type:e.ViewChild,args:["rb"]}]};var s=function(){};s.decorators=[{type:e.NgModule,args:[{imports:[o.CommonModule],exports:[a],declarations:[a]}]}],t.RADIO_VALUE_ACCESSOR=i,t.RadioButton=a,t.RadioButtonModule=s,t.RadioControlRegistry=r,Object.defineProperty(t,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=primeng-radiobutton.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/app/components/radiobutton/radiobutton.ts"],"names":["RADIO_VALUE_ACCESSOR","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","RadioButton","multi","RadioControlRegistry","this","accessors","prototype","add","control","accessor","push","remove","filter","c","select","_this","forEach","isSameGroup","writeValue","value","controlPair","root","name","Injectable","args","providedIn","cd","injector","registry","onClick","EventEmitter","onFocus","onBlur","onModelChange","onModelTouched","ngOnInit","formControlName","get","NgControl","checkName","handleClick","event","radioButton","focus","preventDefault","disabled","inputViewChild","nativeElement","checked","emit","markForCheck","registerOnChange","fn","registerOnTouched","setDisabledState","val","onInputFocus","focused","onInputBlur","onChange","ngOnDestroy","throwNameError","Error","Component","selector","template","providers","changeDetection","ChangeDetectionStrategy","OnPush","ChangeDetectorRef","Injector","Input","Output","ViewChild","NgModule","imports","CommonModule","exports","declarations"],"mappings":"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","sourcesContent":["import {NgModule,Component,Input,Output,ElementRef,EventEmitter,forwardRef,ViewChild,ChangeDetectorRef,ChangeDetectionStrategy, Injectable, Injector, OnInit, OnDestroy} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {NG_VALUE_ACCESSOR, ControlValueAccessor, NgControl} from '@angular/forms';\n\nexport const RADIO_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioButton),\n multi: true\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RadioControlRegistry {\n private accessors: any[] = [];\n\n add(control: NgControl, accessor: RadioButton) {\n this.accessors.push([control, accessor]);\n }\n\n remove(accessor: RadioButton) {\n this.accessors = this.accessors.filter((c) => {\n return c[1] !== accessor;\n })\n }\n\n select(accessor: RadioButton) {\n this.accessors.forEach((c) => {\n if (this.isSameGroup(c, accessor) && c[1] !== accessor) {\n c[1].writeValue(accessor.value);\n }\n });\n }\n\n private isSameGroup(controlPair: [NgControl, RadioButton], accessor: RadioButton): boolean {\n if (!controlPair[0].control) {\n return false;\n }\n\n return controlPair[0].control.root === accessor.control.control.root && controlPair[1].name === accessor.name;\n }\n}\n\n@Component({\n selector: 'p-radioButton',\n template: `\n <div [ngStyle]=\"style\" [ngClass]=\"{'p-radiobutton p-component':true,'p-radiobutton-checked': checked, 'p-radiobutton-disabled': disabled, 'p-radiobutton-focused': focused}\" [class]=\"styleClass\">\n <div class=\"p-hidden-accessible\">\n <input #rb type=\"radio\" [attr.id]=\"inputId\" [attr.name]=\"name\" [attr.value]=\"value\" [attr.tabindex]=\"tabindex\" [attr.aria-checked]=\"checked\" [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\" [checked]=\"checked\" (change)=\"onChange($event)\" (focus)=\"onInputFocus($event)\" (blur)=\"onInputBlur($event)\" [disabled]=\"disabled\">\n </div>\n <div (click)=\"handleClick($event, rb, true)\" [ngClass]=\"{'p-radiobutton-box':true, 'p-highlight': checked, 'p-disabled': disabled, 'p-focus': focused}\">\n <span class=\"p-radiobutton-icon\"></span>\n </div>\n </div>\n <label (click)=\"select($event)\" [class]=\"labelStyleClass\"\n [ngClass]=\"{'p-radiobutton-label':true, 'p-radiobutton-label-active':rb.checked, 'p-disabled':disabled, 'p-radiobutton-label-focus':focused}\"\n *ngIf=\"label\" [attr.for]=\"inputId\">{{label}}</label>\n `,\n providers: [RADIO_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RadioButton implements ControlValueAccessor, OnInit, OnDestroy {\n\n @Input() value: any;\n\n @Input() formControlName: string;\n\n @Input() name: string;\n\n @Input() disabled: boolean;\n\n @Input() label: string;\n\n @Input() tabindex: number;\n\n @Input() inputId: string;\n\n @Input() ariaLabelledBy: string;\n\n @Input() ariaLabel: string;\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() labelStyleClass: string;\n\n @Output() onClick: EventEmitter<any> = new EventEmitter();\n\n @Output() onFocus: EventEmitter<any> = new EventEmitter();\n\n @Output() onBlur: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('rb') inputViewChild: ElementRef;\n\n public onModelChange: Function = () => {};\n\n public onModelTouched: Function = () => {};\n\n public checked: boolean;\n\n public focused: boolean;\n\n control: NgControl;\n\n constructor(public cd: ChangeDetectorRef, private injector: Injector, private registry: RadioControlRegistry) {}\n\n ngOnInit() {\n if (this.formControlName) {\n this.control = this.injector.get(NgControl);\n this.checkName();\n this.registry.add(this.control, this);\n }\n }\n \n handleClick(event, radioButton, focus) {\n event.preventDefault();\n\n if (this.disabled) {\n return;\n }\n\n this.select(event);\n\n if (focus) {\n radioButton.focus();\n }\n }\n \n select(event) {\n if (!this.disabled) {\n this.inputViewChild.nativeElement.checked = true;\n this.checked = true;\n this.onModelChange(this.value);\n \n if (this.formControlName) {\n this.registry.select(this);\n }\n\n this.onClick.emit(event);\n }\n }\n\n writeValue(value: any) : void {\n this.checked = (value == this.value);\n\n if (this.inputViewChild && this.inputViewChild.nativeElement) {\n this.inputViewChild.nativeElement.checked = this.checked;\n }\n\n this.cd.markForCheck();\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n setDisabledState(val: boolean): void {\n this.disabled = val;\n this.cd.markForCheck();\n }\n\n onInputFocus(event) {\n this.focused = true;\n this.onFocus.emit(event);\n }\n\n onInputBlur(event) {\n this.focused = false;\n this.onModelTouched();\n this.onBlur.emit(event);\n }\n\n onChange(event) {\n this.select(event);\n }\n\n focus() {\n this.inputViewChild.nativeElement.focus();\n }\n\n ngOnDestroy() {\n if (this.formControlName) {\n this.registry.remove(this);\n }\n }\n\n private checkName() {\n if (this.name && this.formControlName && this.name !== this.formControlName) {\n this.throwNameError();\n }\n if (!this.name && this.formControlName) {\n this.name = this.formControlName;\n }\n }\n\n private throwNameError() {\n throw new Error(`\n If you define both a name and a formControlName attribute on your radio button, their values\n must match. Ex: <p-radioButton formControlName=\"food\" name=\"food\"></p-radioButton>\n `);\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [RadioButton],\n declarations: [RadioButton]\n})\nexport class RadioButtonModule { }"]}
1
+ {"version":3,"sources":["../../src/app/components/radiobutton/radiobutton.ts"],"names":["RADIO_VALUE_ACCESSOR","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","RadioButton","multi","RadioControlRegistry","this","accessors","prototype","add","control","accessor","push","remove","filter","c","select","_this","forEach","isSameGroup","writeValue","value","controlPair","root","name","Injectable","args","providedIn","cd","injector","registry","onClick","EventEmitter","onFocus","onBlur","onModelChange","onModelTouched","ngOnInit","get","NgControl","checkName","handleClick","event","radioButton","focus","preventDefault","disabled","inputViewChild","nativeElement","checked","emit","markForCheck","registerOnChange","fn","registerOnTouched","setDisabledState","val","onInputFocus","focused","onInputBlur","onChange","ngOnDestroy","formControlName","throwNameError","Error","Component","selector","template","providers","changeDetection","ChangeDetectionStrategy","OnPush","ChangeDetectorRef","Injector","Input","Output","ViewChild","NgModule","imports","CommonModule","exports","declarations"],"mappings":"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","sourcesContent":["import {NgModule,Component,Input,Output,ElementRef,EventEmitter,forwardRef,ViewChild,ChangeDetectorRef,ChangeDetectionStrategy, Injectable, Injector, OnInit, OnDestroy} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {NG_VALUE_ACCESSOR, ControlValueAccessor, NgControl} from '@angular/forms';\n\nexport const RADIO_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioButton),\n multi: true\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RadioControlRegistry {\n private accessors: any[] = [];\n\n add(control: NgControl, accessor: RadioButton) {\n this.accessors.push([control, accessor]);\n }\n\n remove(accessor: RadioButton) {\n this.accessors = this.accessors.filter((c) => {\n return c[1] !== accessor;\n })\n }\n\n select(accessor: RadioButton) {\n this.accessors.forEach((c) => {\n if (this.isSameGroup(c, accessor) && c[1] !== accessor) {\n c[1].writeValue(accessor.value);\n }\n });\n }\n\n private isSameGroup(controlPair: [NgControl, RadioButton], accessor: RadioButton): boolean {\n if (!controlPair[0].control) {\n return false;\n }\n\n return controlPair[0].control.root === accessor.control.control.root && controlPair[1].name === accessor.name;\n }\n}\n\n@Component({\n selector: 'p-radioButton',\n template: `\n <div [ngStyle]=\"style\" [ngClass]=\"{'p-radiobutton p-component':true,'p-radiobutton-checked': checked, 'p-radiobutton-disabled': disabled, 'p-radiobutton-focused': focused}\" [class]=\"styleClass\">\n <div class=\"p-hidden-accessible\">\n <input #rb type=\"radio\" [attr.id]=\"inputId\" [attr.name]=\"name\" [attr.value]=\"value\" [attr.tabindex]=\"tabindex\" [attr.aria-checked]=\"checked\" [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\" [checked]=\"checked\" (change)=\"onChange($event)\" (focus)=\"onInputFocus($event)\" (blur)=\"onInputBlur($event)\" [disabled]=\"disabled\">\n </div>\n <div (click)=\"handleClick($event, rb, true)\" [ngClass]=\"{'p-radiobutton-box':true, 'p-highlight': checked, 'p-disabled': disabled, 'p-focus': focused}\">\n <span class=\"p-radiobutton-icon\"></span>\n </div>\n </div>\n <label (click)=\"select($event)\" [class]=\"labelStyleClass\"\n [ngClass]=\"{'p-radiobutton-label':true, 'p-radiobutton-label-active':rb.checked, 'p-disabled':disabled, 'p-radiobutton-label-focus':focused}\"\n *ngIf=\"label\" [attr.for]=\"inputId\">{{label}}</label>\n `,\n providers: [RADIO_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RadioButton implements ControlValueAccessor, OnInit, OnDestroy {\n\n @Input() value: any;\n\n @Input() formControlName: string;\n\n @Input() name: string;\n\n @Input() disabled: boolean;\n\n @Input() label: string;\n\n @Input() tabindex: number;\n\n @Input() inputId: string;\n\n @Input() ariaLabelledBy: string;\n\n @Input() ariaLabel: string;\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() labelStyleClass: string;\n\n @Output() onClick: EventEmitter<any> = new EventEmitter();\n\n @Output() onFocus: EventEmitter<any> = new EventEmitter();\n\n @Output() onBlur: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('rb') inputViewChild: ElementRef;\n\n public onModelChange: Function = () => {};\n\n public onModelTouched: Function = () => {};\n\n public checked: boolean;\n\n public focused: boolean;\n\n control: NgControl;\n\n constructor(public cd: ChangeDetectorRef, private injector: Injector, private registry: RadioControlRegistry) {}\n\n ngOnInit() {\n this.control = this.injector.get(NgControl);\n this.checkName();\n this.registry.add(this.control, this);\n }\n \n handleClick(event, radioButton, focus) {\n event.preventDefault();\n\n if (this.disabled) {\n return;\n }\n\n this.select(event);\n\n if (focus) {\n radioButton.focus();\n }\n }\n \n select(event) {\n if (!this.disabled) {\n this.inputViewChild.nativeElement.checked = true;\n this.checked = true;\n this.onModelChange(this.value);\n this.registry.select(this);\n this.onClick.emit(event);\n }\n }\n\n writeValue(value: any) : void {\n this.checked = (value == this.value);\n\n if (this.inputViewChild && this.inputViewChild.nativeElement) {\n this.inputViewChild.nativeElement.checked = this.checked;\n }\n\n this.cd.markForCheck();\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n setDisabledState(val: boolean): void {\n this.disabled = val;\n this.cd.markForCheck();\n }\n\n onInputFocus(event) {\n this.focused = true;\n this.onFocus.emit(event);\n }\n\n onInputBlur(event) {\n this.focused = false;\n this.onModelTouched();\n this.onBlur.emit(event);\n }\n\n onChange(event) {\n this.select(event);\n }\n\n focus() {\n this.inputViewChild.nativeElement.focus();\n }\n\n ngOnDestroy() {\n this.registry.remove(this);\n }\n\n private checkName() {\n if (this.name && this.formControlName && this.name !== this.formControlName) {\n this.throwNameError();\n }\n if (!this.name && this.formControlName) {\n this.name = this.formControlName;\n }\n }\n\n private throwNameError() {\n throw new Error(`\n If you define both a name and a formControlName attribute on your radio button, their values\n must match. Ex: <p-radioButton formControlName=\"food\" name=\"food\"></p-radioButton>\n `);\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [RadioButton],\n declarations: [RadioButton]\n})\nexport class RadioButtonModule { }"]}
@@ -92,6 +92,7 @@
92
92
  yBar.style.cssText = 'height:' + yBarHeight + '%; top: calc(' + yBarTop + '% - ' + xBar.clientHeight + 'px);right:' + right + 'px;';
93
93
  }
94
94
  });
95
+ this.cd.markForCheck();
95
96
  };
96
97
  ScrollPanel.prototype.onYBarMouseDown = function (e) {
97
98
  this.isYBarClicked = true;