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 +1 @@
1
- {"version":3,"file":"primeng-picklist.js","sources":["../../src/app/components/picklist/picklist.ts","../../src/app/components/picklist/primeng-picklist.ts"],"sourcesContent":["import { NgModule, Component, ElementRef, AfterContentInit, AfterViewChecked, Input, Output, ContentChildren, QueryList, TemplateRef, EventEmitter, ViewChild, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ButtonModule} from 'primeng/button';\nimport {SharedModule,PrimeTemplate,FilterService} from 'primeng/api';\nimport {DomHandler} from 'primeng/dom';\nimport {RippleModule} from 'primeng/ripple';\nimport {CdkDragDrop, DragDropModule, moveItemInArray, transferArrayItem} from '@angular/cdk/drag-drop';\nimport {UniqueComponentId} from 'primeng/utils';\n\n@Component({\n selector: 'p-pickList',\n template: `\n <div [class]=\"styleClass\" [ngStyle]=\"style\" [ngClass]=\"'p-picklist p-component'\" cdkDropListGroup>\n <div class=\"p-picklist-buttons p-picklist-source-controls\" *ngIf=\"showSourceControls\">\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-up\" [disabled]=\"disabled\" (click)=\"moveUp(sourcelist,source,selectedItemsSource,onSourceReorder)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-up\" [disabled]=\"disabled\" (click)=\"moveTop(sourcelist,source,selectedItemsSource,onSourceReorder)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-down\" [disabled]=\"disabled\" (click)=\"moveDown(sourcelist,source,selectedItemsSource,onSourceReorder)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-down\" [disabled]=\"disabled\" (click)=\"moveBottom(sourcelist,source,selectedItemsSource,onSourceReorder)\"></button>\n </div>\n <div class=\"p-picklist-list-wrapper p-picklist-source-wrapper\">\n <div class=\"p-picklist-header\" *ngIf=\"sourceHeader\">\n <div class=\"p-picklist-title\">{{sourceHeader}}</div>\n </div>\n <div class=\"p-picklist-filter-container\" *ngIf=\"filterBy && showSourceFilter !== false\">\n <div class=\"p-picklist-filter\">\n <input #sourceFilter type=\"text\" role=\"textbox\" (keyup)=\"onFilter($event,source,SOURCE_LIST)\" class=\"p-picklist-filter-input p-inputtext p-component\" [disabled]=\"disabled\" [attr.placeholder]=\"sourceFilterPlaceholder\" [attr.aria-label]=\"ariaSourceFilterLabel\">\n <span class=\"p-picklist-filter-icon pi pi-search\"></span>\n </div>\n </div>\n \n <ul #sourcelist class=\"p-picklist-list p-picklist-source\" cdkDropList [cdkDropListData]=\"source\" (cdkDropListDropped)=\"onDrop($event, SOURCE_LIST)\"\n [ngStyle]=\"sourceStyle\" role=\"listbox\" aria-multiselectable=\"multiple\">\n <ng-template ngFor let-item [ngForOf]=\"source\" [ngForTrackBy]=\"sourceTrackBy || trackBy\" let-i=\"index\" let-l=\"last\">\n <li [ngClass]=\"{'p-picklist-item':true,'p-highlight':isSelected(item,selectedItemsSource),'p-disabled': disabled}\" pRipple cdkDrag [cdkDragData]=\"item\"\n (click)=\"onItemClick($event,item,selectedItemsSource,onSourceSelect)\" (dblclick)=\"onSourceItemDblClick()\" (touchend)=\"onItemTouchEnd($event)\" (keydown)=\"onItemKeydown($event,item,selectedItemsSource,onSourceSelect)\"\n [style.display]=\"isItemVisible(item, SOURCE_LIST) ? 'block' : 'none'\" tabindex=\"0\" role=\"option\" [attr.aria-selected]=\"isSelected(item, selectedItemsSource)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item, index: i}\"></ng-container>\n </li>\n </ng-template>\n <ng-container *ngIf=\"(source == null || source.length === 0) && emptyMessageSourceTemplate\">\n <li class=\"p-picklist-empty-message\">\n <ng-container *ngTemplateOutlet=\"emptyMessageSourceTemplate\"></ng-container>\n </li>\n </ng-container>\n </ul>\n </div>\n <div class=\"p-picklist-buttons p-picklist-transfer-buttons\">\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-right\" [disabled]=\"disabled\" (click)=\"moveRight()\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-right\" [disabled]=\"disabled\" (click)=\"moveAllRight()\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-left\" [disabled]=\"disabled\" (click)=\"moveLeft()\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-left\" [disabled]=\"disabled\" (click)=\"moveAllLeft()\"></button>\n </div>\n <div class=\"p-picklist-list-wrapper p-picklist-target-wrapper\">\n <div class=\"p-picklist-header\" *ngIf=\"targetHeader\">\n <div class=\"p-picklist-title\" *ngIf=\"targetHeader\">{{targetHeader}}</div>\n </div>\n <div class=\"p-picklist-filter-container\" *ngIf=\"filterBy && showTargetFilter !== false\">\n <div class=\"p-picklist-filter\">\n <input #targetFilter type=\"text\" role=\"textbox\" (keyup)=\"onFilter($event,target,TARGET_LIST)\" class=\"p-picklist-filter-input p-inputtext p-component\" [disabled]=\"disabled\" [attr.placeholder]=\"targetFilterPlaceholder\" [attr.aria-label]=\"ariaTargetFilterLabel\">\n <span class=\"p-picklist-filter-icon pi pi-search\"></span>\n </div>\n </div>\n <ul #targetlist class=\"p-picklist-list p-picklist-target\" cdkDropList [cdkDropListData]=\"target\" (cdkDropListDropped)=\"onDrop($event, TARGET_LIST)\"\n [ngStyle]=\"targetStyle\" role=\"listbox\" aria-multiselectable=\"multiple\">\n <ng-template ngFor let-item [ngForOf]=\"target\" [ngForTrackBy]=\"targetTrackBy || trackBy\" let-i=\"index\" let-l=\"last\">\n <li [ngClass]=\"{'p-picklist-item':true,'p-highlight':isSelected(item,selectedItemsTarget), 'p-disabled': disabled}\" pRipple cdkDrag [cdkDragData]=\"item\"\n (click)=\"onItemClick($event,item,selectedItemsTarget,onTargetSelect)\" (dblclick)=\"onTargetItemDblClick()\" (touchend)=\"onItemTouchEnd($event)\" (keydown)=\"onItemKeydown($event,item,selectedItemsTarget,onTargetSelect)\"\n [style.display]=\"isItemVisible(item, TARGET_LIST) ? 'block' : 'none'\" tabindex=\"0\" role=\"option\" [attr.aria-selected]=\"isSelected(item, selectedItemsTarget)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item, index: i}\"></ng-container>\n </li>\n </ng-template>\n <ng-container *ngIf=\"(target == null || target.length === 0) && emptyMessageTargetTemplate\">\n <li class=\"p-picklist-empty-message\">\n <ng-container *ngTemplateOutlet=\"emptyMessageTargetTemplate\"></ng-container>\n </li>\n </ng-container>\n </ul>\n </div>\n <div class=\"p-picklist-buttons p-picklist-target-controls\" *ngIf=\"showTargetControls\">\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-up\" [disabled]=\"disabled\" (click)=\"moveUp(targetlist,target,selectedItemsTarget,onTargetReorder)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-up\" [disabled]=\"disabled\" (click)=\"moveTop(targetlist,target,selectedItemsTarget,onTargetReorder)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-down\" [disabled]=\"disabled\" (click)=\"moveDown(targetlist,target,selectedItemsTarget,onTargetReorder)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-down\" [disabled]=\"disabled\" (click)=\"moveBottom(targetlist,target,selectedItemsTarget,onTargetReorder)\"></button>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./picklist.css']\n})\nexport class PickList implements AfterViewChecked,AfterContentInit {\n\n @Input() source: any[];\n\n @Input() target: any[];\n\n @Input() sourceHeader: string;\n\n @Input() targetHeader: string;\n\n @Input() responsive: boolean;\n\n @Input() filterBy: string;\n\n @Input() filterLocale: string;\n\n @Input() trackBy: Function = (index: number, item: any) => item;\n\n @Input() sourceTrackBy: Function;\n\n @Input() targetTrackBy: Function;\n\n @Input() showSourceFilter: boolean = true;\n\n @Input() showTargetFilter: boolean = true;\n\n @Input() metaKeySelection: boolean = true;\n\n @Input() dragdrop: boolean;\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() sourceStyle: any;\n\n @Input() targetStyle: any;\n\n @Input() showSourceControls: boolean = true;\n\n @Input() showTargetControls: boolean = true;\n\n @Input() sourceFilterPlaceholder: string;\n\n @Input() targetFilterPlaceholder: string;\n\n @Input() disabled: boolean = false;\n\n @Input() ariaSourceFilterLabel: string;\n\n @Input() ariaTargetFilterLabel: string;\n\n @Input() filterMatchMode: string = \"contains\";\n\n @Input() breakpoint: string = \"960px\";\n\n @Output() onMoveToSource: EventEmitter<any> = new EventEmitter();\n\n @Output() onMoveAllToSource: EventEmitter<any> = new EventEmitter();\n\n @Output() onMoveAllToTarget: EventEmitter<any> = new EventEmitter();\n\n @Output() onMoveToTarget: EventEmitter<any> = new EventEmitter();\n\n @Output() onSourceReorder: EventEmitter<any> = new EventEmitter();\n\n @Output() onTargetReorder: EventEmitter<any> = new EventEmitter();\n\n @Output() onSourceSelect: EventEmitter<any> = new EventEmitter();\n\n @Output() onTargetSelect: EventEmitter<any> = new EventEmitter();\n\n @Output() onSourceFilter: EventEmitter<any> = new EventEmitter();\n\n @Output() onTargetFilter: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('sourcelist') listViewSourceChild: ElementRef;\n\n @ViewChild('targetlist') listViewTargetChild: ElementRef;\n\n @ViewChild('sourceFilter') sourceFilterViewChild: ElementRef;\n\n @ViewChild('targetFilter') targetFilterViewChild: ElementRef;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n public itemTemplate: TemplateRef<any>;\n\n public visibleOptionsSource: any[];\n\n public visibleOptionsTarget: any[];\n\n selectedItemsSource: any[] = [];\n\n selectedItemsTarget: any[] = [];\n\n reorderedListElement: any;\n\n movedUp: boolean;\n\n movedDown: boolean;\n\n itemTouched: boolean;\n\n styleElement: any;\n\n id: string = UniqueComponentId();\n\n filterValueSource: string;\n\n filterValueTarget: string;\n\n fromListType: number;\n\n emptyMessageSourceTemplate: TemplateRef<any>;\n\n emptyMessageTargetTemplate: TemplateRef<any>;\n\n readonly SOURCE_LIST = -1;\n\n readonly TARGET_LIST = 1;\n\n constructor(public el: ElementRef, public cd: ChangeDetectorRef, public filterService: FilterService) {}\n\n\n ngOnInit() {\n if (this.responsive) {\n this.createStyle();\n }\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'item':\n this.itemTemplate = item.template;\n break;\n\n case 'emptymessagesource':\n this.emptyMessageSourceTemplate = item.template;\n break;\n\n case 'emptymessagetarget':\n this.emptyMessageTargetTemplate = item.template;\n break;\n\n default:\n this.itemTemplate = item.template;\n break;\n }\n });\n }\n\n ngAfterViewChecked() {\n if (this.movedUp||this.movedDown) {\n let listItems = DomHandler.find(this.reorderedListElement, 'li.p-highlight');\n let listItem;\n\n if (this.movedUp)\n listItem = listItems[0];\n else\n listItem = listItems[listItems.length - 1];\n\n DomHandler.scrollInView(this.reorderedListElement, listItem);\n this.movedUp = false;\n this.movedDown = false;\n this.reorderedListElement = null;\n }\n }\n\n onItemClick(event, item: any, selectedItems: any[], callback: EventEmitter<any>) {\n if (this.disabled) {\n return;\n }\n\n let index = this.findIndexInSelection(item,selectedItems);\n let selected = (index != -1);\n let metaSelection = this.itemTouched ? false : this.metaKeySelection;\n\n if (metaSelection) {\n let metaKey = (event.metaKey||event.ctrlKey||event.shiftKey);\n\n if (selected && metaKey) {\n selectedItems.splice(index, 1);\n }\n else {\n if (!metaKey) {\n selectedItems.length = 0;\n }\n selectedItems.push(item);\n }\n }\n else {\n if (selected)\n selectedItems.splice(index, 1);\n else\n selectedItems.push(item);\n }\n\n callback.emit({originalEvent: event, items: selectedItems});\n\n this.itemTouched = false;\n }\n\n onSourceItemDblClick() {\n if (this.disabled) {\n return;\n }\n\n this.moveRight();\n }\n\n onTargetItemDblClick() {\n if (this.disabled) {\n return;\n }\n\n this.moveLeft();\n }\n\n onFilter(event: KeyboardEvent, data: any[], listType: number) {\n let query = ((<HTMLInputElement> event.target).value.trim() as any).toLocaleLowerCase(this.filterLocale);\n this.filter(query, data, listType);\n }\n\n filter(query: string, data: any[], listType: number) {\n let searchFields = this.filterBy.split(',');\n\n if (listType === this.SOURCE_LIST) {\n this.filterValueSource = query;\n this.visibleOptionsSource = this.filterService.filter(data, searchFields, this.filterValueSource, this.filterMatchMode, this.filterLocale);\n this.onSourceFilter.emit({query: this.filterValueSource, value: this.visibleOptionsSource});\n }\n else if (listType === this.TARGET_LIST) {\n this.filterValueTarget = query;\n this.visibleOptionsTarget = this.filterService.filter(data, searchFields, this.filterValueTarget, this.filterMatchMode, this.filterLocale);\n this.onTargetFilter.emit({query: this.filterValueTarget, value: this.visibleOptionsTarget});\n }\n }\n\n isItemVisible(item: any, listType: number): boolean {\n if (listType == this.SOURCE_LIST)\n return this.isVisibleInList(this.visibleOptionsSource, item, this.filterValueSource);\n else\n return this.isVisibleInList(this.visibleOptionsTarget, item, this.filterValueTarget);\n }\n\n isVisibleInList(data: any[], item: any, filterValue: string): boolean {\n if (filterValue && filterValue.trim().length) {\n for(let i = 0; i < data.length; i++) {\n if (item == data[i]) {\n return true;\n }\n }\n }\n else {\n return true;\n }\n }\n\n onItemTouchEnd(event) {\n if (this.disabled) {\n return;\n }\n\n this.itemTouched = true;\n }\n\n private sortByIndexInList(items: any[], list: any) {\n return items.sort((item1, item2) =>\n this.findIndexInList(item1, list) - this.findIndexInList(item2, list));\n }\n\n moveUp(listElement, list, selectedItems, callback) {\n if (selectedItems && selectedItems.length) {\n selectedItems = this.sortByIndexInList(selectedItems, list);\n for(let i = 0; i < selectedItems.length; i++) {\n let selectedItem = selectedItems[i];\n let selectedItemIndex: number = this.findIndexInList(selectedItem, list);\n\n if (selectedItemIndex != 0) {\n let movedItem = list[selectedItemIndex];\n let temp = list[selectedItemIndex-1];\n list[selectedItemIndex-1] = movedItem;\n list[selectedItemIndex] = temp;\n }\n else {\n break;\n }\n }\n\n this.movedUp = true;\n this.reorderedListElement = listElement;\n callback.emit({items: selectedItems});\n }\n }\n\n moveTop(listElement, list, selectedItems, callback) {\n if (selectedItems && selectedItems.length) {\n selectedItems = this.sortByIndexInList(selectedItems, list);\n for(let i = 0; i < selectedItems.length; i++) {\n let selectedItem = selectedItems[i];\n let selectedItemIndex: number = this.findIndexInList(selectedItem, list);\n\n if (selectedItemIndex != 0) {\n let movedItem = list.splice(selectedItemIndex,1)[0];\n list.unshift(movedItem);\n }\n else {\n break;\n }\n }\n\n listElement.scrollTop = 0;\n callback.emit({items: selectedItems});\n }\n }\n\n moveDown(listElement, list, selectedItems, callback) {\n if (selectedItems && selectedItems.length) {\n selectedItems = this.sortByIndexInList(selectedItems, list);\n for(let i = selectedItems.length - 1; i >= 0; i--) {\n let selectedItem = selectedItems[i];\n let selectedItemIndex: number = this.findIndexInList(selectedItem, list);\n\n if (selectedItemIndex != (list.length - 1)) {\n let movedItem = list[selectedItemIndex];\n let temp = list[selectedItemIndex+1];\n list[selectedItemIndex+1] = movedItem;\n list[selectedItemIndex] = temp;\n }\n else {\n break;\n }\n }\n\n this.movedDown = true;\n this.reorderedListElement = listElement;\n callback.emit({items: selectedItems});\n }\n }\n\n moveBottom(listElement, list, selectedItems, callback) {\n if (selectedItems && selectedItems.length) {\n selectedItems = this.sortByIndexInList(selectedItems, list);\n for(let i = selectedItems.length - 1; i >= 0; i--) {\n let selectedItem = selectedItems[i];\n let selectedItemIndex: number = this.findIndexInList(selectedItem, list);\n\n if (selectedItemIndex != (list.length - 1)) {\n let movedItem = list.splice(selectedItemIndex,1)[0];\n list.push(movedItem);\n }\n else {\n break;\n }\n }\n\n listElement.scrollTop = listElement.scrollHeight;\n callback.emit({items: selectedItems});\n }\n }\n\n moveRight() {\n if (this.selectedItemsSource && this.selectedItemsSource.length) {\n for(let i = 0; i < this.selectedItemsSource.length; i++) {\n let selectedItem = this.selectedItemsSource[i];\n if (this.findIndexInList(selectedItem, this.target) == -1) {\n this.target.push(this.source.splice(this.findIndexInList(selectedItem, this.source),1)[0]);\n }\n }\n this.onMoveToTarget.emit({\n items: this.selectedItemsSource\n });\n this.selectedItemsSource = [];\n\n if (this.filterValueTarget) {\n this.filter(this.filterValueTarget, this.target, this.TARGET_LIST);\n }\n }\n }\n\n moveAllRight() {\n if (this.source) {\n let movedItems = [];\n\n for(let i = 0; i < this.source.length; i++) {\n if (this.isItemVisible(this.source[i], this.SOURCE_LIST)) {\n let removedItem = this.source.splice(i, 1)[0];\n this.target.push(removedItem);\n movedItems.push(removedItem);\n i--;\n }\n }\n\n this.onMoveAllToTarget.emit({\n items: movedItems\n });\n\n this.selectedItemsSource = [];\n\n if (this.filterValueTarget) {\n this.filter(this.filterValueTarget, this.target, this.TARGET_LIST);\n }\n }\n }\n\n moveLeft() {\n if (this.selectedItemsTarget && this.selectedItemsTarget.length) {\n for(let i = 0; i < this.selectedItemsTarget.length; i++) {\n let selectedItem = this.selectedItemsTarget[i];\n if (this.findIndexInList(selectedItem, this.source) == -1) {\n this.source.push(this.target.splice(this.findIndexInList(selectedItem, this.target),1)[0]);\n }\n }\n this.onMoveToSource.emit({\n items: this.selectedItemsTarget\n });\n\n this.selectedItemsTarget = [];\n\n if (this.filterValueSource) {\n this.filter(this.filterValueSource, this.source, this.SOURCE_LIST);\n }\n }\n }\n\n moveAllLeft() {\n if (this.target) {\n let movedItems = [];\n\n for(let i = 0; i < this.target.length; i++) {\n if (this.isItemVisible(this.target[i], this.TARGET_LIST)) {\n let removedItem = this.target.splice(i, 1)[0];\n this.source.push(removedItem);\n movedItems.push(removedItem);\n i--;\n }\n }\n\n this.onMoveAllToSource.emit({\n items: movedItems\n });\n\n this.selectedItemsTarget = [];\n\n if (this.filterValueSource) {\n this.filter(this.filterValueSource, this.source, this.SOURCE_LIST);\n }\n }\n }\n\n isSelected(item: any, selectedItems: any[]) {\n return this.findIndexInSelection(item, selectedItems) != -1;\n }\n\n findIndexInSelection(item: any, selectedItems: any[]): number {\n return this.findIndexInList(item, selectedItems);\n }\n\n findIndexInList(item: any, list: any): number {\n let index: number = -1;\n\n if (list) {\n for(let i = 0; i < list.length; i++) {\n if (list[i] == item) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n\n onDrop(event: CdkDragDrop<string[]>, listType: number) {\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n\n if (listType == this.SOURCE_LIST)\n this.onSourceReorder.emit([event.item.data]);\n else\n this.onTargetReorder.emit([event.item.data]);\n } \n else {\n transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);\n\n if (listType == this.SOURCE_LIST)\n this.onMoveToSource.emit([event.item.data]);\n else\n this.onMoveToTarget.emit([event.item.data]);\n }\n }\n\n resetFilter() {\n this.visibleOptionsSource = null;\n this.filterValueSource = null;\n this.visibleOptionsTarget = null;\n this.filterValueTarget = null;\n\n (<HTMLInputElement> this.sourceFilterViewChild.nativeElement).value = '';\n (<HTMLInputElement> this.targetFilterViewChild.nativeElement).value = '';\n }\n\n onItemKeydown(event: KeyboardEvent, item: any, selectedItems: any[], callback: EventEmitter<any>) {\n let listItem = <HTMLLIElement> event.currentTarget;\n\n switch(event.which) {\n //down\n case 40:\n var nextItem = this.findNextItem(listItem);\n if (nextItem) {\n nextItem.focus();\n }\n\n event.preventDefault();\n break;\n\n //up\n case 38:\n var prevItem = this.findPrevItem(listItem);\n if (prevItem) {\n prevItem.focus();\n }\n\n event.preventDefault();\n break;\n\n //enter\n case 13:\n this.onItemClick(event, item, selectedItems, callback);\n event.preventDefault();\n break;\n }\n }\n\n findNextItem(item) {\n let nextItem = item.nextElementSibling;\n\n if (nextItem)\n return !DomHandler.hasClass(nextItem, 'p-picklist-item') || DomHandler.isHidden(nextItem) ? this.findNextItem(nextItem) : nextItem;\n else\n return null;\n }\n\n findPrevItem(item) {\n let prevItem = item.previousElementSibling;\n\n if (prevItem)\n return !DomHandler.hasClass(prevItem, 'p-picklist-item') || DomHandler.isHidden(prevItem) ? this.findPrevItem(prevItem) : prevItem;\n else\n return null;\n }\n\n createStyle() {\n if (!this.styleElement) {\n this.el.nativeElement.children[0].setAttribute(this.id, '');\n this.styleElement = document.createElement('style');\n this.styleElement.type = 'text/css';\n document.head.appendChild(this.styleElement);\n\n let innerHTML = `\n @media screen and (max-width: ${this.breakpoint}) {\n .p-picklist[${this.id}] {\n flex-direction: column;\n }\n \n .p-picklist[${this.id}] .p-picklist-buttons {\n padding: var(--content-padding);\n flex-direction: row;\n }\n \n .p-picklist[${this.id}] .p-picklist-buttons .p-button {\n margin-right: var(--inline-spacing);\n margin-bottom: 0;\n }\n \n .p-picklist[${this.id}] .p-picklist-buttons .p-button:last-child {\n margin-right: 0;\n }\n \n .p-picklist[${this.id}] .pi-angle-right:before {\n content: \"\\\\e930\"\n }\n \n .p-picklist[${this.id}] .pi-angle-double-right:before {\n content: \"\\\\e92c\"\n }\n \n .p-picklist[${this.id}] .pi-angle-left:before {\n content: \"\\\\e933\"\n }\n \n .p-picklist[${this.id}] .pi-angle-double-left:before {\n content: \"\\\\e92f\"\n }\n }\n `;\n \n this.styleElement.innerHTML = innerHTML;\n }\n }\n\n destroyStyle() {\n if (this.styleElement) {\n document.head.removeChild(this.styleElement);\n this.styleElement = null;``\n }\n }\n\n ngOnDestroy() {\n this.destroyStyle();\n }\n}\n\n@NgModule({\n imports: [CommonModule,ButtonModule,SharedModule,RippleModule,DragDropModule],\n exports: [PickList,SharedModule,DragDropModule],\n declarations: [PickList]\n})\nexport class PickListModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primeng-picklist.js","sources":["../../src/app/components/picklist/picklist.ts","../../src/app/components/picklist/primeng-picklist.ts"],"sourcesContent":["import { NgModule, Component, ElementRef, AfterContentInit, AfterViewChecked, Input, Output, ContentChildren, QueryList, TemplateRef, EventEmitter, ViewChild, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ButtonModule} from 'primeng/button';\nimport {SharedModule,PrimeTemplate,FilterService} from 'primeng/api';\nimport {DomHandler} from 'primeng/dom';\nimport {RippleModule} from 'primeng/ripple';\nimport {CdkDragDrop, DragDropModule, moveItemInArray, transferArrayItem} from '@angular/cdk/drag-drop';\nimport {ObjectUtils, UniqueComponentId} from 'primeng/utils';\n\n@Component({\n selector: 'p-pickList',\n template: `\n <div [class]=\"styleClass\" [ngStyle]=\"style\" [ngClass]=\"'p-picklist p-component'\" cdkDropListGroup>\n <div class=\"p-picklist-buttons p-picklist-source-controls\" *ngIf=\"showSourceControls\">\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-up\" [disabled]=\"disabled\" (click)=\"moveUp(sourcelist,source,selectedItemsSource,onSourceReorder,SOURCE_LIST)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-up\" [disabled]=\"disabled\" (click)=\"moveTop(sourcelist,source,selectedItemsSource,onSourceReorder,SOURCE_LIST)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-down\" [disabled]=\"disabled\" (click)=\"moveDown(sourcelist,source,selectedItemsSource,onSourceReorder,SOURCE_LIST)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-down\" [disabled]=\"disabled\" (click)=\"moveBottom(sourcelist,source,selectedItemsSource,onSourceReorder,SOURCE_LIST)\"></button>\n </div>\n <div class=\"p-picklist-list-wrapper p-picklist-source-wrapper\">\n <div class=\"p-picklist-header\" *ngIf=\"sourceHeader || sourceHeaderTemplate\">\n <div class=\"p-picklist-title\" *ngIf=\"!sourceHeaderTemplate\">{{sourceHeader}}</div>\n <ng-container *ngTemplateOutlet=\"sourceHeaderTemplate\"></ng-container>\n </div>\n <div class=\"p-picklist-filter-container\" *ngIf=\"filterBy && showSourceFilter !== false\">\n <div class=\"p-picklist-filter\">\n <input #sourceFilter type=\"text\" role=\"textbox\" (keyup)=\"onFilter($event,source,SOURCE_LIST)\" class=\"p-picklist-filter-input p-inputtext p-component\" [disabled]=\"disabled\" [attr.placeholder]=\"sourceFilterPlaceholder\" [attr.aria-label]=\"ariaSourceFilterLabel\">\n <span class=\"p-picklist-filter-icon pi pi-search\"></span>\n </div>\n </div>\n \n <ul #sourcelist class=\"p-picklist-list p-picklist-source\" cdkDropList [cdkDropListData]=\"source\" (cdkDropListDropped)=\"onDrop($event, SOURCE_LIST)\"\n [ngStyle]=\"sourceStyle\" role=\"listbox\" aria-multiselectable=\"multiple\">\n <ng-template ngFor let-item [ngForOf]=\"source\" [ngForTrackBy]=\"sourceTrackBy || trackBy\" let-i=\"index\" let-l=\"last\">\n <li [ngClass]=\"{'p-picklist-item':true,'p-highlight':isSelected(item,selectedItemsSource),'p-disabled': disabled}\" pRipple cdkDrag [cdkDragData]=\"item\" [cdkDragDisabled]=\"!dragdrop\"\n (click)=\"onItemClick($event,item,selectedItemsSource,onSourceSelect)\" (dblclick)=\"onSourceItemDblClick()\" (touchend)=\"onItemTouchEnd()\" (keydown)=\"onItemKeydown($event,item,selectedItemsSource,onSourceSelect)\"\n *ngIf=\"isItemVisible(item, SOURCE_LIST)\" tabindex=\"0\" role=\"option\" [attr.aria-selected]=\"isSelected(item, selectedItemsSource)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item, index: i}\"></ng-container>\n </li>\n </ng-template>\n <ng-container *ngIf=\"isEmpty(SOURCE_LIST) && (emptyMessageSourceTemplate || emptyFilterMessageSourceTemplate)\">\n <li class=\"p-picklist-empty-message\" *ngIf=\"!filterValueSource || !emptyFilterMessageSourceTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyMessageSourceTemplate\"></ng-container>\n </li>\n <li class=\"p-picklist-empty-message\" *ngIf=\"filterValueSource\">\n <ng-container *ngTemplateOutlet=\"emptyFilterMessageSourceTemplate\"></ng-container>\n </li>\n </ng-container>\n </ul>\n </div>\n <div class=\"p-picklist-buttons p-picklist-transfer-buttons\">\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-right\" [disabled]=\"disabled\" (click)=\"moveRight()\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-right\" [disabled]=\"disabled\" (click)=\"moveAllRight()\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-left\" [disabled]=\"disabled\" (click)=\"moveLeft()\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-left\" [disabled]=\"disabled\" (click)=\"moveAllLeft()\"></button>\n </div>\n <div class=\"p-picklist-list-wrapper p-picklist-target-wrapper\">\n <div class=\"p-picklist-header\" *ngIf=\"targetHeader || targetHeaderTemplate\">\n <div class=\"p-picklist-title\" *ngIf=\"!targetHeaderTemplate\">{{targetHeader}}</div>\n <ng-container *ngTemplateOutlet=\"targetHeaderTemplate\"></ng-container>\n </div>\n <div class=\"p-picklist-filter-container\" *ngIf=\"filterBy && showTargetFilter !== false\">\n <div class=\"p-picklist-filter\">\n <input #targetFilter type=\"text\" role=\"textbox\" (keyup)=\"onFilter($event,target,TARGET_LIST)\" class=\"p-picklist-filter-input p-inputtext p-component\" [disabled]=\"disabled\" [attr.placeholder]=\"targetFilterPlaceholder\" [attr.aria-label]=\"ariaTargetFilterLabel\">\n <span class=\"p-picklist-filter-icon pi pi-search\"></span>\n </div>\n </div>\n <ul #targetlist class=\"p-picklist-list p-picklist-target\" cdkDropList [cdkDropListData]=\"target\" (cdkDropListDropped)=\"onDrop($event, TARGET_LIST)\"\n [ngStyle]=\"targetStyle\" role=\"listbox\" aria-multiselectable=\"multiple\">\n <ng-template ngFor let-item [ngForOf]=\"target\" [ngForTrackBy]=\"targetTrackBy || trackBy\" let-i=\"index\" let-l=\"last\">\n <li [ngClass]=\"{'p-picklist-item':true,'p-highlight':isSelected(item,selectedItemsTarget), 'p-disabled': disabled}\" pRipple cdkDrag [cdkDragData]=\"item\" [cdkDragDisabled]=\"!dragdrop\"\n (click)=\"onItemClick($event,item,selectedItemsTarget,onTargetSelect)\" (dblclick)=\"onTargetItemDblClick()\" (touchend)=\"onItemTouchEnd()\" (keydown)=\"onItemKeydown($event,item,selectedItemsTarget,onTargetSelect)\"\n *ngIf=\"isItemVisible(item, TARGET_LIST)\" tabindex=\"0\" role=\"option\" [attr.aria-selected]=\"isSelected(item, selectedItemsTarget)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item, index: i}\"></ng-container>\n </li>\n </ng-template>\n <ng-container *ngIf=\"isEmpty(TARGET_LIST) && (emptyMessageTargetTemplate || emptyFilterMessageTargetTemplate)\">\n <li class=\"p-picklist-empty-message\" *ngIf=\"!filterValueTarget || !emptyFilterMessageTargetTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyMessageTargetTemplate\"></ng-container>\n </li>\n <li class=\"p-picklist-empty-message\" *ngIf=\"filterValueTarget\">\n <ng-container *ngTemplateOutlet=\"emptyFilterMessageTargetTemplate\"></ng-container>\n </li>\n </ng-container>\n </ul>\n </div>\n <div class=\"p-picklist-buttons p-picklist-target-controls\" *ngIf=\"showTargetControls\">\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-up\" [disabled]=\"disabled\" (click)=\"moveUp(targetlist,target,selectedItemsTarget,onTargetReorder,TARGET_LIST)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-up\" [disabled]=\"disabled\" (click)=\"moveTop(targetlist,target,selectedItemsTarget,onTargetReorder,TARGET_LIST)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-down\" [disabled]=\"disabled\" (click)=\"moveDown(targetlist,target,selectedItemsTarget,onTargetReorder,TARGET_LIST)\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-angle-double-down\" [disabled]=\"disabled\" (click)=\"moveBottom(targetlist,target,selectedItemsTarget,onTargetReorder,TARGET_LIST)\"></button>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./picklist.css']\n})\nexport class PickList implements AfterViewChecked,AfterContentInit {\n\n @Input() source: any[];\n\n @Input() target: any[];\n\n @Input() sourceHeader: string;\n\n @Input() targetHeader: string;\n\n @Input() responsive: boolean;\n\n @Input() filterBy: string;\n\n @Input() filterLocale: string;\n\n @Input() trackBy: Function = (index: number, item: any) => item;\n\n @Input() sourceTrackBy: Function;\n\n @Input() targetTrackBy: Function;\n\n @Input() showSourceFilter: boolean = true;\n\n @Input() showTargetFilter: boolean = true;\n\n @Input() metaKeySelection: boolean = true;\n\n @Input() dragdrop: boolean = false;\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() sourceStyle: any;\n\n @Input() targetStyle: any;\n\n @Input() showSourceControls: boolean = true;\n\n @Input() showTargetControls: boolean = true;\n\n @Input() sourceFilterPlaceholder: string;\n\n @Input() targetFilterPlaceholder: string;\n\n @Input() disabled: boolean = false;\n\n @Input() ariaSourceFilterLabel: string;\n\n @Input() ariaTargetFilterLabel: string;\n\n @Input() filterMatchMode: string = \"contains\";\n\n @Input() breakpoint: string = \"960px\";\n\n @Output() onMoveToSource: EventEmitter<any> = new EventEmitter();\n\n @Output() onMoveAllToSource: EventEmitter<any> = new EventEmitter();\n\n @Output() onMoveAllToTarget: EventEmitter<any> = new EventEmitter();\n\n @Output() onMoveToTarget: EventEmitter<any> = new EventEmitter();\n\n @Output() onSourceReorder: EventEmitter<any> = new EventEmitter();\n\n @Output() onTargetReorder: EventEmitter<any> = new EventEmitter();\n\n @Output() onSourceSelect: EventEmitter<any> = new EventEmitter();\n\n @Output() onTargetSelect: EventEmitter<any> = new EventEmitter();\n\n @Output() onSourceFilter: EventEmitter<any> = new EventEmitter();\n\n @Output() onTargetFilter: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('sourcelist') listViewSourceChild: ElementRef;\n\n @ViewChild('targetlist') listViewTargetChild: ElementRef;\n\n @ViewChild('sourceFilter') sourceFilterViewChild: ElementRef;\n\n @ViewChild('targetFilter') targetFilterViewChild: ElementRef;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n public itemTemplate: TemplateRef<any>;\n\n public visibleOptionsSource: any[];\n\n public visibleOptionsTarget: any[];\n\n selectedItemsSource: any[] = [];\n\n selectedItemsTarget: any[] = [];\n\n reorderedListElement: any;\n\n movedUp: boolean;\n\n movedDown: boolean;\n\n itemTouched: boolean;\n\n styleElement: any;\n\n id: string = UniqueComponentId();\n\n filterValueSource: string;\n\n filterValueTarget: string;\n\n fromListType: number;\n\n emptyMessageSourceTemplate: TemplateRef<any>;\n\n emptyFilterMessageSourceTemplate: TemplateRef<any>;\n\n emptyMessageTargetTemplate: TemplateRef<any>;\n\n emptyFilterMessageTargetTemplate: TemplateRef<any>;\n\n sourceHeaderTemplate: TemplateRef<any>;\n\n targetHeaderTemplate: TemplateRef<any>;\n\n readonly SOURCE_LIST = -1;\n\n readonly TARGET_LIST = 1;\n\n constructor(public el: ElementRef, public cd: ChangeDetectorRef, public filterService: FilterService) {}\n\n\n ngOnInit() {\n if (this.responsive) {\n this.createStyle();\n }\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'item':\n this.itemTemplate = item.template;\n break;\n\n case 'sourceHeader':\n this.sourceHeaderTemplate = item.template;\n break;\n\n case 'targetHeader':\n this.targetHeaderTemplate = item.template;\n break;\n\n case 'emptymessagesource':\n this.emptyMessageSourceTemplate = item.template;\n break;\n\n case 'emptyfiltermessagesource':\n this.emptyFilterMessageSourceTemplate = item.template;\n break;\n\n case 'emptymessagetarget':\n this.emptyMessageTargetTemplate = item.template;\n break;\n\n case 'emptyfiltermessagetarget':\n this.emptyFilterMessageTargetTemplate = item.template;\n break;\n\n default:\n this.itemTemplate = item.template;\n break;\n }\n });\n }\n\n ngAfterViewChecked() {\n if (this.movedUp||this.movedDown) {\n let listItems = DomHandler.find(this.reorderedListElement, 'li.p-highlight');\n let listItem;\n\n if (this.movedUp)\n listItem = listItems[0];\n else\n listItem = listItems[listItems.length - 1];\n\n DomHandler.scrollInView(this.reorderedListElement, listItem);\n this.movedUp = false;\n this.movedDown = false;\n this.reorderedListElement = null;\n }\n }\n\n onItemClick(event, item: any, selectedItems: any[], callback: EventEmitter<any>) {\n if (this.disabled) {\n return;\n }\n\n let index = this.findIndexInSelection(item,selectedItems);\n let selected = (index != -1);\n let metaSelection = this.itemTouched ? false : this.metaKeySelection;\n\n if (metaSelection) {\n let metaKey = (event.metaKey||event.ctrlKey||event.shiftKey);\n\n if (selected && metaKey) {\n selectedItems.splice(index, 1);\n }\n else {\n if (!metaKey) {\n selectedItems.length = 0;\n }\n selectedItems.push(item);\n }\n }\n else {\n if (selected)\n selectedItems.splice(index, 1);\n else\n selectedItems.push(item);\n }\n\n callback.emit({originalEvent: event, items: selectedItems});\n\n this.itemTouched = false;\n }\n\n onSourceItemDblClick() {\n if (this.disabled) {\n return;\n }\n\n this.moveRight();\n }\n\n onTargetItemDblClick() {\n if (this.disabled) {\n return;\n }\n\n this.moveLeft();\n }\n\n onFilter(event: KeyboardEvent, data: any[], listType: number) {\n let query = ((<HTMLInputElement> event.target).value.trim() as any).toLocaleLowerCase(this.filterLocale);\n if (listType === this.SOURCE_LIST)\n this.filterValueSource = query;\n else if (listType === this.TARGET_LIST)\n this.filterValueTarget = query;\n \n this.filter(data, listType);\n }\n\n filter(data: any[], listType: number) {\n let searchFields = this.filterBy.split(',');\n\n if (listType === this.SOURCE_LIST) {\n this.visibleOptionsSource = this.filterService.filter(data, searchFields, this.filterValueSource, this.filterMatchMode, this.filterLocale);\n this.onSourceFilter.emit({query: this.filterValueSource, value: this.visibleOptionsSource});\n }\n else if (listType === this.TARGET_LIST) {\n this.visibleOptionsTarget = this.filterService.filter(data, searchFields, this.filterValueTarget, this.filterMatchMode, this.filterLocale);\n this.onTargetFilter.emit({query: this.filterValueTarget, value: this.visibleOptionsTarget});\n }\n }\n\n isItemVisible(item: any, listType: number): boolean {\n if (listType == this.SOURCE_LIST)\n return this.isVisibleInList(this.visibleOptionsSource, item, this.filterValueSource);\n else\n return this.isVisibleInList(this.visibleOptionsTarget, item, this.filterValueTarget);\n }\n\n isEmpty(listType: number) {\n if (listType == this.SOURCE_LIST)\n return this.filterValueSource ? (!this.visibleOptionsSource || this.visibleOptionsSource.length === 0) : (!this.source || this.source.length === 0);\n else\n return this.filterValueTarget ? (!this.visibleOptionsTarget || this.visibleOptionsTarget.length === 0) : (!this.target || this.target.length === 0);\n }\n \n\n isVisibleInList(data: any[], item: any, filterValue: string): boolean {\n if (filterValue && filterValue.trim().length) {\n for(let i = 0; i < data.length; i++) {\n if (item == data[i]) {\n return true;\n }\n }\n }\n else {\n return true;\n }\n }\n\n onItemTouchEnd() {\n if (this.disabled) {\n return;\n }\n\n this.itemTouched = true;\n }\n\n private sortByIndexInList(items: any[], list: any) {\n return items.sort((item1, item2) =>\n ObjectUtils.findIndexInList(item1, list) - ObjectUtils.findIndexInList(item2, list));\n }\n\n moveUp(listElement, list, selectedItems, callback, listType) {\n if (selectedItems && selectedItems.length) {\n selectedItems = this.sortByIndexInList(selectedItems, list);\n for(let i = 0; i < selectedItems.length; i++) {\n let selectedItem = selectedItems[i];\n let selectedItemIndex: number = ObjectUtils.findIndexInList(selectedItem, list);\n\n if (selectedItemIndex != 0) {\n let movedItem = list[selectedItemIndex];\n let temp = list[selectedItemIndex-1];\n list[selectedItemIndex-1] = movedItem;\n list[selectedItemIndex] = temp;\n }\n else {\n break;\n }\n }\n\n if (this.dragdrop && ((this.filterValueSource && listType === this.SOURCE_LIST) || (this.filterValueTarget && listType === this.TARGET_LIST)))\n this.filter(list, listType);\n\n this.movedUp = true;\n this.reorderedListElement = listElement;\n callback.emit({items: selectedItems});\n }\n }\n\n moveTop(listElement, list, selectedItems, callback, listType) {\n if (selectedItems && selectedItems.length) {\n selectedItems = this.sortByIndexInList(selectedItems, list);\n for(let i = 0; i < selectedItems.length; i++) {\n let selectedItem = selectedItems[i];\n let selectedItemIndex: number = ObjectUtils.findIndexInList(selectedItem, list);\n\n if (selectedItemIndex != 0) {\n let movedItem = list.splice(selectedItemIndex,1)[0];\n list.unshift(movedItem);\n }\n else {\n break;\n }\n }\n\n if (this.dragdrop && ((this.filterValueSource && listType === this.SOURCE_LIST) || (this.filterValueTarget && listType === this.TARGET_LIST)))\n this.filter(list, listType);\n\n listElement.scrollTop = 0;\n callback.emit({items: selectedItems});\n }\n }\n\n moveDown(listElement, list, selectedItems, callback, listType) {\n if (selectedItems && selectedItems.length) {\n selectedItems = this.sortByIndexInList(selectedItems, list);\n for(let i = selectedItems.length - 1; i >= 0; i--) {\n let selectedItem = selectedItems[i];\n let selectedItemIndex: number = ObjectUtils.findIndexInList(selectedItem, list);\n\n if (selectedItemIndex != (list.length - 1)) {\n let movedItem = list[selectedItemIndex];\n let temp = list[selectedItemIndex+1];\n list[selectedItemIndex+1] = movedItem;\n list[selectedItemIndex] = temp;\n }\n else {\n break;\n }\n }\n\n if (this.dragdrop && ((this.filterValueSource && listType === this.SOURCE_LIST) || (this.filterValueTarget && listType === this.TARGET_LIST)))\n this.filter(list, listType);\n\n this.movedDown = true;\n this.reorderedListElement = listElement;\n callback.emit({items: selectedItems});\n }\n }\n\n moveBottom(listElement, list, selectedItems, callback, listType) {\n if (selectedItems && selectedItems.length) {\n selectedItems = this.sortByIndexInList(selectedItems, list);\n for(let i = selectedItems.length - 1; i >= 0; i--) {\n let selectedItem = selectedItems[i];\n let selectedItemIndex: number = ObjectUtils.findIndexInList(selectedItem, list);\n\n if (selectedItemIndex != (list.length - 1)) {\n let movedItem = list.splice(selectedItemIndex,1)[0];\n list.push(movedItem);\n }\n else {\n break;\n }\n }\n\n if (this.dragdrop && ((this.filterValueSource && listType === this.SOURCE_LIST) || (this.filterValueTarget && listType === this.TARGET_LIST)))\n this.filter(list, listType);\n\n listElement.scrollTop = listElement.scrollHeight;\n callback.emit({items: selectedItems});\n }\n }\n\n moveRight() {\n if (this.selectedItemsSource && this.selectedItemsSource.length) {\n for(let i = 0; i < this.selectedItemsSource.length; i++) {\n let selectedItem = this.selectedItemsSource[i];\n if (ObjectUtils.findIndexInList(selectedItem, this.target) == -1) {\n this.target.push(this.source.splice(ObjectUtils.findIndexInList(selectedItem, this.source),1)[0]);\n\n if (this.visibleOptionsSource)\n this.visibleOptionsSource.splice(ObjectUtils.findIndexInList(selectedItem, this.visibleOptionsSource),1);\n }\n }\n this.onMoveToTarget.emit({\n items: this.selectedItemsSource\n });\n this.selectedItemsSource = [];\n\n if (this.filterValueTarget) {\n this.filter(this.target, this.TARGET_LIST);\n }\n }\n }\n\n moveAllRight() {\n if (this.source) {\n let movedItems = [];\n\n for(let i = 0; i < this.source.length; i++) {\n if (this.isItemVisible(this.source[i], this.SOURCE_LIST)) {\n let removedItem = this.source.splice(i, 1)[0];\n this.target.push(removedItem);\n movedItems.push(removedItem);\n i--;\n }\n }\n\n this.onMoveAllToTarget.emit({\n items: movedItems\n });\n\n this.selectedItemsSource = [];\n\n if (this.filterValueTarget) {\n this.filter(this.target, this.TARGET_LIST);\n }\n\n this.visibleOptionsSource = [];\n }\n }\n\n moveLeft() {\n if (this.selectedItemsTarget && this.selectedItemsTarget.length) {\n for(let i = 0; i < this.selectedItemsTarget.length; i++) {\n let selectedItem = this.selectedItemsTarget[i];\n if (ObjectUtils.findIndexInList(selectedItem, this.source) == -1) {\n this.source.push(this.target.splice(ObjectUtils.findIndexInList(selectedItem, this.target),1)[0]);\n\n if (this.visibleOptionsTarget)\n this.visibleOptionsTarget.splice(ObjectUtils.findIndexInList(selectedItem, this.visibleOptionsTarget),1)[0]\n }\n }\n this.onMoveToSource.emit({\n items: this.selectedItemsTarget\n });\n\n this.selectedItemsTarget = [];\n\n if (this.filterValueSource) {\n this.filter(this.source, this.SOURCE_LIST);\n }\n }\n }\n\n moveAllLeft() {\n if (this.target) {\n let movedItems = [];\n\n for(let i = 0; i < this.target.length; i++) {\n if (this.isItemVisible(this.target[i], this.TARGET_LIST)) {\n let removedItem = this.target.splice(i, 1)[0];\n this.source.push(removedItem);\n movedItems.push(removedItem);\n i--;\n }\n }\n\n this.onMoveAllToSource.emit({\n items: movedItems\n });\n\n this.selectedItemsTarget = [];\n\n if (this.filterValueSource) {\n this.filter(this.source, this.SOURCE_LIST);\n }\n\n this.visibleOptionsTarget = [];\n }\n }\n\n isSelected(item: any, selectedItems: any[]) {\n return this.findIndexInSelection(item, selectedItems) != -1;\n }\n\n findIndexInSelection(item: any, selectedItems: any[]): number {\n return ObjectUtils.findIndexInList(item, selectedItems);\n }\n\n onDrop(event: CdkDragDrop<string[]>, listType: number) {\n let isTransfer = event.previousContainer !== event.container;\n let dropIndexes = this.getDropIndexes(event.previousIndex, event.currentIndex, listType, isTransfer, event.item.data);\n \n if (listType === this.SOURCE_LIST) {\n if (isTransfer) {\n transferArrayItem(event.previousContainer.data, event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);\n \n if (this.visibleOptionsTarget)\n this.visibleOptionsTarget.splice(event.previousIndex, 1);\n \n this.onMoveToSource.emit({items: event.item.data});\n }\n else {\n moveItemInArray(event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);\n this.onSourceReorder.emit({items: event.item.data});\n }\n\n if (this.filterValueSource) {\n this.filter(this.source, this.SOURCE_LIST);\n }\n }\n else {\n if (isTransfer) {\n transferArrayItem(event.previousContainer.data, event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);\n \n if (this.visibleOptionsSource)\n this.visibleOptionsSource.splice(event.previousIndex, 1);\n \n this.onMoveToTarget.emit({items: event.item.data});\n }\n else {\n moveItemInArray(event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);\n this.onTargetReorder.emit({items: event.item.data});\n }\n\n if (this.filterValueTarget) {\n this.filter(this.target, this.TARGET_LIST);\n }\n }\n }\n\n getDropIndexes(fromIndex, toIndex, droppedList, isTransfer, data) {\n let previousIndex, currentIndex;\n\n if (droppedList === this.SOURCE_LIST) {\n previousIndex = isTransfer ? this.filterValueTarget ? ObjectUtils.findIndexInList(data, this.target) : fromIndex : this.filterValueSource ? ObjectUtils.findIndexInList(data, this.source) : fromIndex;\n currentIndex = this.filterValueSource ? this.findFilteredCurrentIndex(this.visibleOptionsSource, toIndex, this.source) : toIndex;\n }\n else {\n previousIndex = isTransfer ? this.filterValueSource ? ObjectUtils.findIndexInList(data, this.source) : fromIndex : this.filterValueTarget ? ObjectUtils.findIndexInList(data, this.target) : fromIndex;\n currentIndex = this.filterValueTarget ? this.findFilteredCurrentIndex(this.visibleOptionsTarget, toIndex, this.target) : toIndex;\n }\n\n return {previousIndex, currentIndex};\n }\n\n findFilteredCurrentIndex(visibleOptions, index, options) {\n if (visibleOptions.length === index) {\n let toIndex = ObjectUtils.findIndexInList(visibleOptions[index-1], options);\n \n return toIndex + 1;\n }\n else {\n return ObjectUtils.findIndexInList(visibleOptions[index], options);\n }\n }\n\n resetFilter() {\n this.visibleOptionsSource = null;\n this.filterValueSource = null;\n this.visibleOptionsTarget = null;\n this.filterValueTarget = null;\n\n (<HTMLInputElement> this.sourceFilterViewChild.nativeElement).value = '';\n (<HTMLInputElement> this.targetFilterViewChild.nativeElement).value = '';\n }\n\n onItemKeydown(event: KeyboardEvent, item: any, selectedItems: any[], callback: EventEmitter<any>) {\n let listItem = <HTMLLIElement> event.currentTarget;\n\n switch(event.which) {\n //down\n case 40:\n var nextItem = this.findNextItem(listItem);\n if (nextItem) {\n nextItem.focus();\n }\n\n event.preventDefault();\n break;\n\n //up\n case 38:\n var prevItem = this.findPrevItem(listItem);\n if (prevItem) {\n prevItem.focus();\n }\n\n event.preventDefault();\n break;\n\n //enter\n case 13:\n this.onItemClick(event, item, selectedItems, callback);\n event.preventDefault();\n break;\n }\n }\n\n findNextItem(item) {\n let nextItem = item.nextElementSibling;\n\n if (nextItem)\n return !DomHandler.hasClass(nextItem, 'p-picklist-item') || DomHandler.isHidden(nextItem) ? this.findNextItem(nextItem) : nextItem;\n else\n return null;\n }\n\n findPrevItem(item) {\n let prevItem = item.previousElementSibling;\n\n if (prevItem)\n return !DomHandler.hasClass(prevItem, 'p-picklist-item') || DomHandler.isHidden(prevItem) ? this.findPrevItem(prevItem) : prevItem;\n else\n return null;\n }\n\n createStyle() {\n if (!this.styleElement) {\n this.el.nativeElement.children[0].setAttribute(this.id, '');\n this.styleElement = document.createElement('style');\n this.styleElement.type = 'text/css';\n document.head.appendChild(this.styleElement);\n\n let innerHTML = `\n @media screen and (max-width: ${this.breakpoint}) {\n .p-picklist[${this.id}] {\n flex-direction: column;\n }\n \n .p-picklist[${this.id}] .p-picklist-buttons {\n padding: var(--content-padding);\n flex-direction: row;\n }\n \n .p-picklist[${this.id}] .p-picklist-buttons .p-button {\n margin-right: var(--inline-spacing);\n margin-bottom: 0;\n }\n \n .p-picklist[${this.id}] .p-picklist-buttons .p-button:last-child {\n margin-right: 0;\n }\n \n .p-picklist[${this.id}] .pi-angle-right:before {\n content: \"\\\\e930\"\n }\n \n .p-picklist[${this.id}] .pi-angle-double-right:before {\n content: \"\\\\e92c\"\n }\n \n .p-picklist[${this.id}] .pi-angle-left:before {\n content: \"\\\\e933\"\n }\n \n .p-picklist[${this.id}] .pi-angle-double-left:before {\n content: \"\\\\e92f\"\n }\n }\n `;\n \n this.styleElement.innerHTML = innerHTML;\n }\n }\n\n destroyStyle() {\n if (this.styleElement) {\n document.head.removeChild(this.styleElement);\n this.styleElement = null;``\n }\n }\n\n ngOnDestroy() {\n this.destroyStyle();\n }\n}\n\n@NgModule({\n imports: [CommonModule,ButtonModule,SharedModule,RippleModule,DragDropModule],\n exports: [PickList,SharedModule,DragDropModule],\n declarations: [PickList]\n})\nexport class PickListModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -51,11 +51,9 @@ class RadioButton {
51
51
  this.onModelTouched = () => { };
52
52
  }
53
53
  ngOnInit() {
54
- if (this.formControlName) {
55
- this.control = this.injector.get(NgControl);
56
- this.checkName();
57
- this.registry.add(this.control, this);
58
- }
54
+ this.control = this.injector.get(NgControl);
55
+ this.checkName();
56
+ this.registry.add(this.control, this);
59
57
  }
60
58
  handleClick(event, radioButton, focus) {
61
59
  event.preventDefault();
@@ -72,9 +70,7 @@ class RadioButton {
72
70
  this.inputViewChild.nativeElement.checked = true;
73
71
  this.checked = true;
74
72
  this.onModelChange(this.value);
75
- if (this.formControlName) {
76
- this.registry.select(this);
77
- }
73
+ this.registry.select(this);
78
74
  this.onClick.emit(event);
79
75
  }
80
76
  }
@@ -111,9 +107,7 @@ class RadioButton {
111
107
  this.inputViewChild.nativeElement.focus();
112
108
  }
113
109
  ngOnDestroy() {
114
- if (this.formControlName) {
115
- this.registry.remove(this);
116
- }
110
+ this.registry.remove(this);
117
111
  }
118
112
  checkName() {
119
113
  if (this.name && this.formControlName && this.name !== this.formControlName) {
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-radiobutton.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":[],"mappings":"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"}
1
+ {"version":3,"file":"primeng-radiobutton.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":[],"mappings":"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"}
@@ -88,6 +88,7 @@ class ScrollPanel {
88
88
  yBar.style.cssText = 'height:' + yBarHeight + '%; top: calc(' + yBarTop + '% - ' + xBar.clientHeight + 'px);right:' + right + 'px;';
89
89
  }
90
90
  });
91
+ this.cd.markForCheck();
91
92
  }
92
93
  onYBarMouseDown(e) {
93
94
  this.isYBarClicked = true;
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-scrollpanel.js","sources":["../../src/app/components/scrollpanel/scrollpanel.ts","../../src/app/components/scrollpanel/primeng-scrollpanel.ts"],"sourcesContent":["import { NgModule, Component, Input, AfterViewInit, OnDestroy, ElementRef, NgZone, ViewChild, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, AfterContentInit, ContentChildren, QueryList, TemplateRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomHandler } from 'primeng/dom';\nimport { PrimeTemplate } from 'primeng/api';\n\n@Component({\n selector: 'p-scrollPanel',\n template: `\n <div #container [ngClass]=\"'p-scrollpanel p-component'\" [ngStyle]=\"style\" [class]=\"styleClass\">\n <div class=\"p-scrollpanel-wrapper\">\n <div #content class=\"p-scrollpanel-content\">\n <ng-content></ng-content>\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </div>\n </div>\n <div #xBar class=\"p-scrollpanel-bar p-scrollpanel-bar-x\"></div>\n <div #yBar class=\"p-scrollpanel-bar p-scrollpanel-bar-y\"></div> \n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./scrollpanel.css']\n})\nexport class ScrollPanel implements AfterViewInit, AfterContentInit, OnDestroy {\n\n @Input() style: any;\n\n @Input() styleClass: string;\n \n constructor(public el: ElementRef, public zone: NgZone, public cd: ChangeDetectorRef) {}\n\n @ViewChild('container') containerViewChild: ElementRef;\n\n @ViewChild('content') contentViewChild: ElementRef;\n\n @ViewChild('xBar') xBarViewChild: ElementRef;\n \n @ViewChild('yBar') yBarViewChild: ElementRef;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n scrollYRatio: number;\n\n scrollXRatio: number;\n\n timeoutFrame: any = (fn) => setTimeout(fn, 0);\n\n initialized: boolean;\n\n lastPageY: number;\n\n lastPageX: number;\n\n isXBarClicked: boolean;\n\n isYBarClicked: boolean;\n\n contentTemplate: TemplateRef<any>;\n\n ngAfterViewInit() {\n this.zone.runOutsideAngular(() => {\n this.moveBar();\n this.moveBar = this.moveBar.bind(this);\n this.onXBarMouseDown = this.onXBarMouseDown.bind(this);\n this.onYBarMouseDown = this.onYBarMouseDown.bind(this);\n this.onDocumentMouseMove = this.onDocumentMouseMove.bind(this);\n this.onDocumentMouseUp = this.onDocumentMouseUp.bind(this);\n \n window.addEventListener('resize', this.moveBar);\n this.contentViewChild.nativeElement.addEventListener('scroll', this.moveBar);\n this.contentViewChild.nativeElement.addEventListener('mouseenter', this.moveBar);\n this.xBarViewChild.nativeElement.addEventListener('mousedown', this.onXBarMouseDown);\n this.yBarViewChild.nativeElement.addEventListener('mousedown', this.onYBarMouseDown);\n\n this.calculateContainerHeight();\n\n this.initialized = true;\n });\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'content':\n this.contentTemplate = item.template;\n break;\n\n default:\n this.contentTemplate = item.template;\n break;\n }\n });\n }\n\n calculateContainerHeight() {\n let container = this.containerViewChild.nativeElement;\n let content = this.contentViewChild.nativeElement;\n let xBar = this.xBarViewChild.nativeElement;\n\n let containerStyles = getComputedStyle(container),\n xBarStyles = getComputedStyle(xBar),\n pureContainerHeight = DomHandler.getHeight(container) - parseInt(xBarStyles['height'], 10);\n\n if (containerStyles['max-height'] != \"none\" && pureContainerHeight == 0) {\n if (content.offsetHeight + parseInt(xBarStyles['height'], 10) > parseInt(containerStyles['max-height'], 10)) {\n container.style.height = containerStyles['max-height'];\n }\n else {\n container.style.height = content.offsetHeight + parseFloat(containerStyles.paddingTop) + parseFloat(containerStyles.paddingBottom) + parseFloat(containerStyles.borderTopWidth) + parseFloat(containerStyles.borderBottomWidth) + \"px\";\n }\n }\n }\n\n moveBar() {\n let container = this.containerViewChild.nativeElement;\n let content = this.contentViewChild.nativeElement;\n\n /* horizontal scroll */\n let xBar = this.xBarViewChild.nativeElement;\n let totalWidth = content.scrollWidth;\n let ownWidth = content.clientWidth;\n let bottom = (container.clientHeight - xBar.clientHeight) * -1;\n\n this.scrollXRatio = ownWidth / totalWidth;\n\n /* vertical scroll */\n let yBar = this.yBarViewChild.nativeElement;\n let totalHeight = content.scrollHeight;\n let ownHeight = content.clientHeight;\n let right = (container.clientWidth - yBar.clientWidth) * -1;\n\n this.scrollYRatio = ownHeight / totalHeight;\n\n this.requestAnimationFrame(() => {\n if (this.scrollXRatio >= 1) {\n DomHandler.addClass(xBar, 'p-scrollpanel-hidden');\n } \n else {\n DomHandler.removeClass(xBar, 'p-scrollpanel-hidden');\n const xBarWidth = Math.max(this.scrollXRatio * 100, 10);\n const xBarLeft = content.scrollLeft * (100 - xBarWidth) / (totalWidth - ownWidth);\n xBar.style.cssText = 'width:' + xBarWidth + '%; left:' + xBarLeft + '%;bottom:' + bottom + 'px;';\n }\n\n if (this.scrollYRatio >= 1) {\n DomHandler.addClass(yBar, 'p-scrollpanel-hidden');\n } \n else {\n DomHandler.removeClass(yBar, 'p-scrollpanel-hidden');\n const yBarHeight = Math.max(this.scrollYRatio * 100, 10);\n const yBarTop = content.scrollTop * (100 - yBarHeight) / (totalHeight - ownHeight);\n yBar.style.cssText = 'height:' + yBarHeight + '%; top: calc(' + yBarTop + '% - ' + xBar.clientHeight + 'px);right:' + right + 'px;';\n }\n });\n }\n\n onYBarMouseDown(e: MouseEvent) {\n this.isYBarClicked = true;\n this.lastPageY = e.pageY;\n DomHandler.addClass(this.yBarViewChild.nativeElement, 'p-scrollpanel-grabbed');\n \n DomHandler.addClass(document.body, 'p-scrollpanel-grabbed');\n\n document.addEventListener('mousemove', this.onDocumentMouseMove);\n document.addEventListener('mouseup', this.onDocumentMouseUp);\n e.preventDefault();\n }\n\n onXBarMouseDown(e: MouseEvent) {\n this.isXBarClicked = true;\n this.lastPageX = e.pageX;\n DomHandler.addClass(this.xBarViewChild.nativeElement, 'p-scrollpanel-grabbed');\n\n DomHandler.addClass(document.body, 'p-scrollpanel-grabbed');\n\n document.addEventListener('mousemove', this.onDocumentMouseMove);\n document.addEventListener('mouseup', this.onDocumentMouseUp);\n e.preventDefault();\n }\n\n onDocumentMouseMove(e: MouseEvent) {\n if (this.isXBarClicked) {\n this.onMouseMoveForXBar(e);\n }\n else if (this.isYBarClicked) {\n this.onMouseMoveForYBar(e);\n }\n else {\n this.onMouseMoveForXBar(e);\n this.onMouseMoveForYBar(e);\n }\n \n }\n\n onMouseMoveForXBar(e: MouseEvent) {\n let deltaX = e.pageX - this.lastPageX;\n this.lastPageX = e.pageX;\n\n this.requestAnimationFrame(() => {\n this.contentViewChild.nativeElement.scrollLeft += deltaX / this.scrollXRatio;\n });\n }\n\n onMouseMoveForYBar(e: MouseEvent) {\n let deltaY = e.pageY - this.lastPageY;\n this.lastPageY = e.pageY;\n\n this.requestAnimationFrame(() => {\n this.contentViewChild.nativeElement.scrollTop += deltaY / this.scrollYRatio;\n });\n }\n\n scrollTop(scrollTop: number) {\n let scrollableHeight = this.contentViewChild.nativeElement.scrollHeight - this.contentViewChild.nativeElement.clientHeight;\n scrollTop = scrollTop > scrollableHeight ? scrollableHeight : scrollTop > 0 ? scrollTop : 0;\n this.contentViewChild.nativeElement.scrollTop = scrollTop;\n }\n\n onDocumentMouseUp(e: Event) {\n DomHandler.removeClass(this.yBarViewChild.nativeElement, 'p-scrollpanel-grabbed');\n DomHandler.removeClass(this.xBarViewChild.nativeElement, 'p-scrollpanel-grabbed');\n DomHandler.removeClass(document.body, 'p-scrollpanel-grabbed');\n\n document.removeEventListener('mousemove', this.onDocumentMouseMove);\n document.removeEventListener('mouseup', this.onDocumentMouseUp);\n this.isXBarClicked = false;\n this.isYBarClicked = false;\n }\n\n requestAnimationFrame(f: Function) {\n let frame = window.requestAnimationFrame || this.timeoutFrame;\n frame(f);\n }\n\n ngOnDestroy() {\n if (this.initialized) {\n window.removeEventListener('resize', this.moveBar);\n this.contentViewChild.nativeElement.removeEventListener('scroll', this.moveBar);\n this.contentViewChild.nativeElement.removeEventListener('mouseenter', this.moveBar);\n this.xBarViewChild.nativeElement.removeEventListener('mousedown', this.onXBarMouseDown);\n this.yBarViewChild.nativeElement.removeEventListener('mousedown', this.onYBarMouseDown);\n }\n }\n\n refresh() {\n this.moveBar();\n }\n\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [ScrollPanel],\n declarations: [ScrollPanel]\n})\nexport class ScrollPanelModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primeng-scrollpanel.js","sources":["../../src/app/components/scrollpanel/scrollpanel.ts","../../src/app/components/scrollpanel/primeng-scrollpanel.ts"],"sourcesContent":["import { NgModule, Component, Input, AfterViewInit, OnDestroy, ElementRef, NgZone, ViewChild, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, AfterContentInit, ContentChildren, QueryList, TemplateRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomHandler } from 'primeng/dom';\nimport { PrimeTemplate } from 'primeng/api';\n\n@Component({\n selector: 'p-scrollPanel',\n template: `\n <div #container [ngClass]=\"'p-scrollpanel p-component'\" [ngStyle]=\"style\" [class]=\"styleClass\">\n <div class=\"p-scrollpanel-wrapper\">\n <div #content class=\"p-scrollpanel-content\">\n <ng-content></ng-content>\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </div>\n </div>\n <div #xBar class=\"p-scrollpanel-bar p-scrollpanel-bar-x\"></div>\n <div #yBar class=\"p-scrollpanel-bar p-scrollpanel-bar-y\"></div> \n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./scrollpanel.css']\n})\nexport class ScrollPanel implements AfterViewInit, AfterContentInit, OnDestroy {\n\n @Input() style: any;\n\n @Input() styleClass: string;\n \n constructor(public el: ElementRef, public zone: NgZone, public cd: ChangeDetectorRef) {}\n\n @ViewChild('container') containerViewChild: ElementRef;\n\n @ViewChild('content') contentViewChild: ElementRef;\n\n @ViewChild('xBar') xBarViewChild: ElementRef;\n \n @ViewChild('yBar') yBarViewChild: ElementRef;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n scrollYRatio: number;\n\n scrollXRatio: number;\n\n timeoutFrame: any = (fn) => setTimeout(fn, 0);\n\n initialized: boolean;\n\n lastPageY: number;\n\n lastPageX: number;\n\n isXBarClicked: boolean;\n\n isYBarClicked: boolean;\n\n contentTemplate: TemplateRef<any>;\n\n ngAfterViewInit() {\n this.zone.runOutsideAngular(() => {\n this.moveBar();\n this.moveBar = this.moveBar.bind(this);\n this.onXBarMouseDown = this.onXBarMouseDown.bind(this);\n this.onYBarMouseDown = this.onYBarMouseDown.bind(this);\n this.onDocumentMouseMove = this.onDocumentMouseMove.bind(this);\n this.onDocumentMouseUp = this.onDocumentMouseUp.bind(this);\n \n window.addEventListener('resize', this.moveBar);\n this.contentViewChild.nativeElement.addEventListener('scroll', this.moveBar);\n this.contentViewChild.nativeElement.addEventListener('mouseenter', this.moveBar);\n this.xBarViewChild.nativeElement.addEventListener('mousedown', this.onXBarMouseDown);\n this.yBarViewChild.nativeElement.addEventListener('mousedown', this.onYBarMouseDown);\n\n this.calculateContainerHeight();\n\n this.initialized = true;\n });\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'content':\n this.contentTemplate = item.template;\n break;\n\n default:\n this.contentTemplate = item.template;\n break;\n }\n });\n }\n\n calculateContainerHeight() {\n let container = this.containerViewChild.nativeElement;\n let content = this.contentViewChild.nativeElement;\n let xBar = this.xBarViewChild.nativeElement;\n\n let containerStyles = getComputedStyle(container),\n xBarStyles = getComputedStyle(xBar),\n pureContainerHeight = DomHandler.getHeight(container) - parseInt(xBarStyles['height'], 10);\n\n if (containerStyles['max-height'] != \"none\" && pureContainerHeight == 0) {\n if (content.offsetHeight + parseInt(xBarStyles['height'], 10) > parseInt(containerStyles['max-height'], 10)) {\n container.style.height = containerStyles['max-height'];\n }\n else {\n container.style.height = content.offsetHeight + parseFloat(containerStyles.paddingTop) + parseFloat(containerStyles.paddingBottom) + parseFloat(containerStyles.borderTopWidth) + parseFloat(containerStyles.borderBottomWidth) + \"px\";\n }\n }\n }\n\n moveBar() {\n let container = this.containerViewChild.nativeElement;\n let content = this.contentViewChild.nativeElement;\n\n /* horizontal scroll */\n let xBar = this.xBarViewChild.nativeElement;\n let totalWidth = content.scrollWidth;\n let ownWidth = content.clientWidth;\n let bottom = (container.clientHeight - xBar.clientHeight) * -1;\n\n this.scrollXRatio = ownWidth / totalWidth;\n\n /* vertical scroll */\n let yBar = this.yBarViewChild.nativeElement;\n let totalHeight = content.scrollHeight;\n let ownHeight = content.clientHeight;\n let right = (container.clientWidth - yBar.clientWidth) * -1;\n\n this.scrollYRatio = ownHeight / totalHeight;\n\n this.requestAnimationFrame(() => {\n if (this.scrollXRatio >= 1) {\n DomHandler.addClass(xBar, 'p-scrollpanel-hidden');\n } \n else {\n DomHandler.removeClass(xBar, 'p-scrollpanel-hidden');\n const xBarWidth = Math.max(this.scrollXRatio * 100, 10);\n const xBarLeft = content.scrollLeft * (100 - xBarWidth) / (totalWidth - ownWidth);\n xBar.style.cssText = 'width:' + xBarWidth + '%; left:' + xBarLeft + '%;bottom:' + bottom + 'px;';\n }\n\n if (this.scrollYRatio >= 1) {\n DomHandler.addClass(yBar, 'p-scrollpanel-hidden');\n } \n else {\n DomHandler.removeClass(yBar, 'p-scrollpanel-hidden');\n const yBarHeight = Math.max(this.scrollYRatio * 100, 10);\n const yBarTop = content.scrollTop * (100 - yBarHeight) / (totalHeight - ownHeight);\n yBar.style.cssText = 'height:' + yBarHeight + '%; top: calc(' + yBarTop + '% - ' + xBar.clientHeight + 'px);right:' + right + 'px;';\n }\n });\n this.cd.markForCheck();\n }\n\n onYBarMouseDown(e: MouseEvent) {\n this.isYBarClicked = true;\n this.lastPageY = e.pageY;\n DomHandler.addClass(this.yBarViewChild.nativeElement, 'p-scrollpanel-grabbed');\n \n DomHandler.addClass(document.body, 'p-scrollpanel-grabbed');\n\n document.addEventListener('mousemove', this.onDocumentMouseMove);\n document.addEventListener('mouseup', this.onDocumentMouseUp);\n e.preventDefault();\n }\n\n onXBarMouseDown(e: MouseEvent) {\n this.isXBarClicked = true;\n this.lastPageX = e.pageX;\n DomHandler.addClass(this.xBarViewChild.nativeElement, 'p-scrollpanel-grabbed');\n\n DomHandler.addClass(document.body, 'p-scrollpanel-grabbed');\n\n document.addEventListener('mousemove', this.onDocumentMouseMove);\n document.addEventListener('mouseup', this.onDocumentMouseUp);\n e.preventDefault();\n }\n\n onDocumentMouseMove(e: MouseEvent) {\n if (this.isXBarClicked) {\n this.onMouseMoveForXBar(e);\n }\n else if (this.isYBarClicked) {\n this.onMouseMoveForYBar(e);\n }\n else {\n this.onMouseMoveForXBar(e);\n this.onMouseMoveForYBar(e);\n }\n \n }\n\n onMouseMoveForXBar(e: MouseEvent) {\n let deltaX = e.pageX - this.lastPageX;\n this.lastPageX = e.pageX;\n\n this.requestAnimationFrame(() => {\n this.contentViewChild.nativeElement.scrollLeft += deltaX / this.scrollXRatio;\n });\n }\n\n onMouseMoveForYBar(e: MouseEvent) {\n let deltaY = e.pageY - this.lastPageY;\n this.lastPageY = e.pageY;\n\n this.requestAnimationFrame(() => {\n this.contentViewChild.nativeElement.scrollTop += deltaY / this.scrollYRatio;\n });\n }\n\n scrollTop(scrollTop: number) {\n let scrollableHeight = this.contentViewChild.nativeElement.scrollHeight - this.contentViewChild.nativeElement.clientHeight;\n scrollTop = scrollTop > scrollableHeight ? scrollableHeight : scrollTop > 0 ? scrollTop : 0;\n this.contentViewChild.nativeElement.scrollTop = scrollTop;\n }\n\n onDocumentMouseUp(e: Event) {\n DomHandler.removeClass(this.yBarViewChild.nativeElement, 'p-scrollpanel-grabbed');\n DomHandler.removeClass(this.xBarViewChild.nativeElement, 'p-scrollpanel-grabbed');\n DomHandler.removeClass(document.body, 'p-scrollpanel-grabbed');\n\n document.removeEventListener('mousemove', this.onDocumentMouseMove);\n document.removeEventListener('mouseup', this.onDocumentMouseUp);\n this.isXBarClicked = false;\n this.isYBarClicked = false;\n }\n\n requestAnimationFrame(f: Function) {\n let frame = window.requestAnimationFrame || this.timeoutFrame;\n frame(f);\n }\n\n ngOnDestroy() {\n if (this.initialized) {\n window.removeEventListener('resize', this.moveBar);\n this.contentViewChild.nativeElement.removeEventListener('scroll', this.moveBar);\n this.contentViewChild.nativeElement.removeEventListener('mouseenter', this.moveBar);\n this.xBarViewChild.nativeElement.removeEventListener('mousedown', this.onXBarMouseDown);\n this.yBarViewChild.nativeElement.removeEventListener('mousedown', this.onYBarMouseDown);\n }\n }\n\n refresh() {\n this.moveBar();\n }\n\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [ScrollPanel],\n declarations: [ScrollPanel]\n})\nexport class ScrollPanelModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ class SelectButton {
22
22
  return this.optionLabel ? ObjectUtils.resolveFieldData(option, this.optionLabel) : (option.label != undefined ? option.label : option);
23
23
  }
24
24
  getOptionValue(option) {
25
- return this.optionValue ? ObjectUtils.resolveFieldData(option, this.optionValue) : (this.optionLabel ? option : option.value);
25
+ return this.optionValue ? ObjectUtils.resolveFieldData(option, this.optionValue) : (this.optionLabel || option.value === undefined ? option : option.value);
26
26
  }
27
27
  isOptionDisabled(option) {
28
28
  return this.optionDisabled ? ObjectUtils.resolveFieldData(option, this.optionDisabled) : (option.disabled !== undefined ? option.disabled : false);
@@ -114,7 +114,7 @@ SelectButton.decorators = [
114
114
  providers: [SELECTBUTTON_VALUE_ACCESSOR],
115
115
  changeDetection: ChangeDetectionStrategy.OnPush,
116
116
  encapsulation: ViewEncapsulation.None,
117
- styles: [".p-button{-ms-user-select:none;-webkit-user-select:none;align-items:center;cursor:pointer;display:inline-flex;margin:0;overflow:hidden;position:relative;text-align:center;user-select:none;vertical-align:bottom}.p-button-label{flex:1 1 auto}.p-button-icon-right{order:1}.p-button:disabled{cursor:default}.p-button-icon-only{justify-content:center}.p-button-icon-only .p-button-label{flex:0 0 auto;visibility:hidden;width:0}.p-button-vertical{flex-direction:column}.p-button-icon-bottom{order:2}.p-buttonset .p-button{margin:0}.p-buttonset .p-button:not(:last-child){border-right:0}.p-buttonset .p-button:not(:first-of-type):not(:last-of-type){border-radius:0}.p-buttonset .p-button:first-of-type{border-bottom-right-radius:0;border-top-right-radius:0}.p-buttonset .p-button:last-of-type{border-bottom-left-radius:0;border-top-left-radius:0}.p-buttonset .p-button:focus{position:relative;z-index:1}"]
117
+ styles: [".p-button{-ms-user-select:none;-webkit-user-select:none;align-items:center;cursor:pointer;display:inline-flex;margin:0;overflow:hidden;position:relative;text-align:center;user-select:none;vertical-align:bottom}.p-button-label{flex:1 1 auto}.p-button-icon-right{order:1}.p-button:disabled{cursor:default}.p-button-icon-only{justify-content:center}.p-button-icon-only .p-button-label{flex:0 0 auto;visibility:hidden;width:0}.p-button-vertical{flex-direction:column}.p-button-icon-bottom{order:2}.p-buttonset .p-button{margin:0}.p-buttonset .p-button:not(:last-child){border-right:0}.p-buttonset .p-button:not(:first-of-type):not(:last-of-type){border-radius:0}.p-buttonset .p-button:first-of-type{border-bottom-right-radius:0;border-top-right-radius:0}.p-buttonset .p-button:last-of-type{border-bottom-left-radius:0;border-top-left-radius:0}.p-buttonset .p-button:focus{position:relative;z-index:1}.p-button-label{transition:all .2s}"]
118
118
  },] }
119
119
  ];
120
120
  SelectButton.ctorParameters = () => [
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-selectbutton.js","sources":["../../src/app/components/selectbutton/selectbutton.ts","../../src/app/components/selectbutton/primeng-selectbutton.ts"],"sourcesContent":["import {NgModule,Component,Input,Output,EventEmitter,forwardRef,ChangeDetectorRef,ContentChild,TemplateRef,ChangeDetectionStrategy, ViewEncapsulation} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ObjectUtils} from 'primeng/utils';\nimport {RippleModule} from 'primeng/ripple';\nimport {NG_VALUE_ACCESSOR, ControlValueAccessor} from '@angular/forms';\n\nexport const SELECTBUTTON_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectButton),\n multi: true\n};\n\n@Component({\n selector: 'p-selectButton',\n template: `\n <div [ngClass]=\"'p-selectbutton p-buttonset p-component'\" [ngStyle]=\"style\" [class]=\"styleClass\" role=\"group\">\n <div *ngFor=\"let option of options; let i = index\" #btn class=\"p-button p-component\" [class]=\"option.styleClass\" role=\"button\" [attr.aria-pressed]=\"isSelected(option)\"\n [ngClass]=\"{'p-highlight':isSelected(option), \n 'p-disabled': disabled || isOptionDisabled(option),\n 'p-button-icon-only': (option.icon && !getOptionLabel(option))}\" \n (click)=\"onItemClick($event,option,i)\" (keydown.enter)=\"onItemClick($event,option,i)\"\n [attr.title]=\"option.title\" [attr.aria-label]=\"option.label\" (blur)=\"onBlur()\" [attr.tabindex]=\"disabled ? null : tabindex\" [attr.aria-labelledby]=\"this.getOptionLabel(option)\" pRipple>\n <ng-container *ngIf=\"!itemTemplate else customcontent\">\n <span [ngClass]=\"'p-button-icon p-button-icon-left'\" [class]=\"option.icon\" *ngIf=\"option.icon\"></span>\n <span class=\"p-button-label\">{{getOptionLabel(option)}}</span>\n </ng-container>\n <ng-template #customcontent>\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: option, index: i}\"></ng-container>\n </ng-template>\n </div>\n </div>\n `,\n providers: [SELECTBUTTON_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['../button/button.css']\n})\nexport class SelectButton implements ControlValueAccessor {\n\n @Input() options: any[];\n\n @Input() optionLabel: string;\n\n @Input() optionValue: string;\n\n @Input() optionDisabled: string;\n\n @Input() tabindex: number = 0;\n\n @Input() multiple: boolean;\n \n @Input() style: any;\n \n @Input() styleClass: string;\n\n @Input() ariaLabelledBy: string;\n\n @Input() disabled: boolean;\n\n @Input() dataKey: string\n \n @Output() onOptionClick: EventEmitter<any> = new EventEmitter();\n\n @Output() onChange: EventEmitter<any> = new EventEmitter();\n\n @ContentChild(TemplateRef) itemTemplate;\n \n value: any;\n \n onModelChange: Function = () => {};\n \n onModelTouched: Function = () => {};\n \n constructor(public cd: ChangeDetectorRef) {}\n \n getOptionLabel(option: any) {\n return this.optionLabel ? ObjectUtils.resolveFieldData(option, this.optionLabel) : (option.label != undefined ? option.label : option);\n }\n\n getOptionValue(option: any) {\n return this.optionValue ? ObjectUtils.resolveFieldData(option, this.optionValue) : (this.optionLabel ? option : option.value);\n }\n\n isOptionDisabled(option: any) {\n return this.optionDisabled ? ObjectUtils.resolveFieldData(option, this.optionDisabled) : (option.disabled !== undefined ? option.disabled : false);\n }\n \n writeValue(value: any) : void {\n this.value = value;\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 onItemClick(event, option: any, index: number) {\n if (this.disabled || this.isOptionDisabled(option)) {\n return;\n }\n \n if (this.multiple) {\n if (this.isSelected(option))\n this.removeOption(option);\n else\n this.value = [...(this.value||[]), this.getOptionValue(option)];\n }\n else {\n this.value = this.getOptionValue(option);\n }\n \n this.onOptionClick.emit({\n originalEvent: event,\n option: option,\n index: index\n });\n \n this.onModelChange(this.value);\n \n this.onChange.emit({\n originalEvent: event,\n value: this.value\n });\n }\n \n onBlur() {\n this.onModelTouched();\n }\n\n removeOption(option: any): void {\n this.value = this.value.filter(val => !ObjectUtils.equals(val, this.getOptionValue(option), this.dataKey));\n }\n \n isSelected(option: any) {\n let selected = false;\n let optionValue = this.getOptionValue(option);\n\n if (this.multiple) {\n if (this.value) {\n for (let val of this.value) {\n if (ObjectUtils.equals(val, optionValue, this.dataKey)) {\n selected = true;\n break;\n }\n }\n }\n }\n else {\n selected = ObjectUtils.equals(this.getOptionValue(option), this.value, this.dataKey);\n }\n\n return selected;\n }\n}\n\n@NgModule({\n imports: [CommonModule,RippleModule],\n exports: [SelectButton],\n declarations: [SelectButton]\n})\nexport class SelectButtonModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primeng-selectbutton.js","sources":["../../src/app/components/selectbutton/selectbutton.ts","../../src/app/components/selectbutton/primeng-selectbutton.ts"],"sourcesContent":["import {NgModule,Component,Input,Output,EventEmitter,forwardRef,ChangeDetectorRef,ContentChild,TemplateRef,ChangeDetectionStrategy, ViewEncapsulation} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ObjectUtils} from 'primeng/utils';\nimport {RippleModule} from 'primeng/ripple';\nimport {NG_VALUE_ACCESSOR, ControlValueAccessor} from '@angular/forms';\n\nexport const SELECTBUTTON_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectButton),\n multi: true\n};\n\n@Component({\n selector: 'p-selectButton',\n template: `\n <div [ngClass]=\"'p-selectbutton p-buttonset p-component'\" [ngStyle]=\"style\" [class]=\"styleClass\" role=\"group\">\n <div *ngFor=\"let option of options; let i = index\" #btn class=\"p-button p-component\" [class]=\"option.styleClass\" role=\"button\" [attr.aria-pressed]=\"isSelected(option)\"\n [ngClass]=\"{'p-highlight':isSelected(option), \n 'p-disabled': disabled || isOptionDisabled(option),\n 'p-button-icon-only': (option.icon && !getOptionLabel(option))}\" \n (click)=\"onItemClick($event,option,i)\" (keydown.enter)=\"onItemClick($event,option,i)\"\n [attr.title]=\"option.title\" [attr.aria-label]=\"option.label\" (blur)=\"onBlur()\" [attr.tabindex]=\"disabled ? null : tabindex\" [attr.aria-labelledby]=\"this.getOptionLabel(option)\" pRipple>\n <ng-container *ngIf=\"!itemTemplate else customcontent\">\n <span [ngClass]=\"'p-button-icon p-button-icon-left'\" [class]=\"option.icon\" *ngIf=\"option.icon\"></span>\n <span class=\"p-button-label\">{{getOptionLabel(option)}}</span>\n </ng-container>\n <ng-template #customcontent>\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: option, index: i}\"></ng-container>\n </ng-template>\n </div>\n </div>\n `,\n providers: [SELECTBUTTON_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['../button/button.css']\n})\nexport class SelectButton implements ControlValueAccessor {\n\n @Input() options: any[];\n\n @Input() optionLabel: string;\n\n @Input() optionValue: string;\n\n @Input() optionDisabled: string;\n\n @Input() tabindex: number = 0;\n\n @Input() multiple: boolean;\n \n @Input() style: any;\n \n @Input() styleClass: string;\n\n @Input() ariaLabelledBy: string;\n\n @Input() disabled: boolean;\n\n @Input() dataKey: string\n \n @Output() onOptionClick: EventEmitter<any> = new EventEmitter();\n\n @Output() onChange: EventEmitter<any> = new EventEmitter();\n\n @ContentChild(TemplateRef) itemTemplate;\n \n value: any;\n \n onModelChange: Function = () => {};\n \n onModelTouched: Function = () => {};\n \n constructor(public cd: ChangeDetectorRef) {}\n \n getOptionLabel(option: any) {\n return this.optionLabel ? ObjectUtils.resolveFieldData(option, this.optionLabel) : (option.label != undefined ? option.label : option);\n }\n\n getOptionValue(option: any) {\n return this.optionValue ? ObjectUtils.resolveFieldData(option, this.optionValue) : (this.optionLabel || option.value === undefined ? option : option.value);\n }\n\n isOptionDisabled(option: any) {\n return this.optionDisabled ? ObjectUtils.resolveFieldData(option, this.optionDisabled) : (option.disabled !== undefined ? option.disabled : false);\n }\n \n writeValue(value: any) : void {\n this.value = value;\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 onItemClick(event, option: any, index: number) {\n if (this.disabled || this.isOptionDisabled(option)) {\n return;\n }\n \n if (this.multiple) {\n if (this.isSelected(option))\n this.removeOption(option);\n else\n this.value = [...(this.value||[]), this.getOptionValue(option)];\n }\n else {\n this.value = this.getOptionValue(option);\n }\n \n this.onOptionClick.emit({\n originalEvent: event,\n option: option,\n index: index\n });\n \n this.onModelChange(this.value);\n \n this.onChange.emit({\n originalEvent: event,\n value: this.value\n });\n }\n \n onBlur() {\n this.onModelTouched();\n }\n\n removeOption(option: any): void {\n this.value = this.value.filter(val => !ObjectUtils.equals(val, this.getOptionValue(option), this.dataKey));\n }\n \n isSelected(option: any) {\n let selected = false;\n let optionValue = this.getOptionValue(option);\n\n if (this.multiple) {\n if (this.value) {\n for (let val of this.value) {\n if (ObjectUtils.equals(val, optionValue, this.dataKey)) {\n selected = true;\n break;\n }\n }\n }\n }\n else {\n selected = ObjectUtils.equals(this.getOptionValue(option), this.value, this.dataKey);\n }\n\n return selected;\n }\n}\n\n@NgModule({\n imports: [CommonModule,RippleModule],\n exports: [SelectButton],\n declarations: [SelectButton]\n})\nexport class SelectButtonModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}