primevue 2.7.0 → 2.8.0

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 (387) hide show
  1. package/accordiontab/accordiontab.common.js +22 -0
  2. package/accordiontab/accordiontab.umd.js +22 -0
  3. package/accordiontab/accordiontab.umd.min.js +1 -1
  4. package/api/Api.d.ts +296 -0
  5. package/api/Api.js +47 -0
  6. package/api/FilterMatchMode.js +26 -0
  7. package/api/FilterOperator.js +12 -0
  8. package/api/FilterService.js +260 -0
  9. package/api/PrimeIcons.js +246 -0
  10. package/api/ToastSeverity.js +14 -0
  11. package/api/api.common.js +4889 -0
  12. package/api/api.umd.js +4899 -0
  13. package/api/api.umd.min.js +1 -0
  14. package/api/demo.html +8 -0
  15. package/api/filtermatchmode.common.js +186 -0
  16. package/api/filtermatchmode.umd.js +196 -0
  17. package/api/filtermatchmode.umd.min.js +1 -0
  18. package/api/filteroperator.common.js +172 -0
  19. package/api/filteroperator.umd.js +182 -0
  20. package/api/filteroperator.umd.min.js +1 -0
  21. package/{utils/filterutils.common.js → api/filterservice.common.js} +207 -110
  22. package/{utils/filterutils.umd.js → api/filterservice.umd.js} +209 -112
  23. package/api/filterservice.umd.min.js +1 -0
  24. package/api/index.d.ts +1 -0
  25. package/api/index.js +2 -0
  26. package/api/primeicons.common.js +406 -0
  27. package/api/primeicons.umd.js +416 -0
  28. package/api/primeicons.umd.min.js +1 -0
  29. package/api/toastseverity.common.js +174 -0
  30. package/api/toastseverity.umd.js +184 -0
  31. package/api/toastseverity.umd.min.js +1 -0
  32. package/autocomplete/autocomplete.common.js +45 -21
  33. package/autocomplete/autocomplete.umd.js +45 -21
  34. package/autocomplete/autocomplete.umd.min.js +1 -1
  35. package/badgedirective/badgedirective.common.js +22 -0
  36. package/badgedirective/badgedirective.umd.js +22 -0
  37. package/badgedirective/badgedirective.umd.min.js +1 -1
  38. package/blockui/blockui.common.js +22 -0
  39. package/blockui/blockui.umd.js +22 -0
  40. package/blockui/blockui.umd.min.js +1 -1
  41. package/button/button.common.js +22 -0
  42. package/button/button.umd.js +22 -0
  43. package/button/button.umd.min.js +1 -1
  44. package/calendar/Calendar.vue +23 -6
  45. package/calendar/calendar.common.js +71 -37
  46. package/calendar/calendar.umd.js +71 -37
  47. package/calendar/calendar.umd.min.js +1 -1
  48. package/carousel/carousel.common.js +22 -0
  49. package/carousel/carousel.umd.js +22 -0
  50. package/carousel/carousel.umd.min.js +1 -1
  51. package/cascadeselect/cascadeselect.common.js +42 -17
  52. package/cascadeselect/cascadeselect.umd.js +42 -17
  53. package/cascadeselect/cascadeselect.umd.min.js +1 -1
  54. package/cascadeselect/cascadeselectsub.common.js +42 -17
  55. package/cascadeselect/cascadeselectsub.umd.js +42 -17
  56. package/cascadeselect/cascadeselectsub.umd.min.js +1 -1
  57. package/cascadeselect/demo.html +4 -3
  58. package/chart/Chart.vue +16 -5
  59. package/chart/chart.common.js +18 -6
  60. package/chart/chart.umd.js +18 -6
  61. package/chart/chart.umd.min.js +1 -1
  62. package/checkbox/checkbox.common.js +25 -17
  63. package/checkbox/checkbox.umd.js +25 -17
  64. package/checkbox/checkbox.umd.min.js +1 -1
  65. package/colorpicker/colorpicker.common.js +22 -0
  66. package/colorpicker/colorpicker.umd.js +22 -0
  67. package/colorpicker/colorpicker.umd.min.js +1 -1
  68. package/column/Column.vue +72 -12
  69. package/column/column.common.js +71 -11
  70. package/column/column.umd.js +71 -11
  71. package/column/column.umd.min.js +1 -1
  72. package/config/PrimeVue.d.ts +24 -2
  73. package/config/PrimeVue.js +34 -4
  74. package/config/primevue.common.js +3584 -133
  75. package/config/primevue.umd.js +3584 -133
  76. package/config/primevue.umd.min.js +1 -1
  77. package/confirmationeventbus/confirmationeventbus.common.js +0 -4
  78. package/confirmationeventbus/confirmationeventbus.umd.js +0 -4
  79. package/confirmationeventbus/confirmationeventbus.umd.min.js +1 -1
  80. package/confirmationservice/confirmationservice.common.js +0 -4
  81. package/confirmationservice/confirmationservice.umd.js +0 -4
  82. package/confirmationservice/confirmationservice.umd.min.js +1 -1
  83. package/confirmdialog/confirmdialog.common.js +24 -7
  84. package/confirmdialog/confirmdialog.umd.js +24 -7
  85. package/confirmdialog/confirmdialog.umd.min.js +1 -1
  86. package/confirmpopup/confirmpopup.common.js +22 -4
  87. package/confirmpopup/confirmpopup.umd.js +22 -4
  88. package/confirmpopup/confirmpopup.umd.min.js +1 -1
  89. package/contextmenu/contextmenu.common.js +22 -0
  90. package/contextmenu/contextmenu.umd.js +22 -0
  91. package/contextmenu/contextmenu.umd.min.js +1 -1
  92. package/contextmenu/contextmenusub.common.js +22 -0
  93. package/contextmenu/contextmenusub.umd.js +22 -0
  94. package/contextmenu/contextmenusub.umd.min.js +1 -1
  95. package/datatable/BodyCell.vue +116 -36
  96. package/datatable/ColumnFilter.vue +558 -0
  97. package/datatable/ColumnSlot.vue +21 -1
  98. package/datatable/DataTable.d.ts +34 -8
  99. package/datatable/DataTable.vue +569 -379
  100. package/datatable/FooterCell.vue +82 -0
  101. package/datatable/HeaderCell.vue +246 -0
  102. package/datatable/TableBody.vue +79 -19
  103. package/datatable/TableFooter.vue +34 -18
  104. package/datatable/TableHeader.vue +79 -134
  105. package/datatable/bodycell.common.js +570 -56
  106. package/datatable/bodycell.umd.js +570 -56
  107. package/datatable/bodycell.umd.min.js +1 -1
  108. package/datatable/columnfilter.common.js +7610 -0
  109. package/datatable/columnfilter.umd.js +7620 -0
  110. package/datatable/columnfilter.umd.min.js +1 -0
  111. package/datatable/columnslot.common.js +21 -1
  112. package/datatable/columnslot.umd.js +21 -1
  113. package/datatable/columnslot.umd.min.js +1 -1
  114. package/datatable/datatable.common.js +2777 -1703
  115. package/datatable/datatable.umd.js +2777 -1703
  116. package/datatable/datatable.umd.min.js +1 -1
  117. package/datatable/demo.html +3 -3
  118. package/datatable/{scrollableview.common.js → footercell.common.js} +1861 -411
  119. package/datatable/{scrollableview.umd.js → footercell.umd.js} +1863 -413
  120. package/datatable/footercell.umd.min.js +1 -0
  121. package/datatable/headercell.common.js +8058 -0
  122. package/datatable/headercell.umd.js +8068 -0
  123. package/datatable/headercell.umd.min.js +1 -0
  124. package/datatable/tablebody.common.js +1054 -478
  125. package/datatable/tablebody.umd.js +1054 -478
  126. package/datatable/tablebody.umd.min.js +1 -1
  127. package/datatable/tablefooter.common.js +3785 -105
  128. package/datatable/tablefooter.umd.js +3785 -105
  129. package/datatable/tablefooter.umd.min.js +1 -1
  130. package/datatable/tableheader.common.js +6629 -2139
  131. package/datatable/tableheader.umd.js +6629 -2139
  132. package/datatable/tableheader.umd.min.js +1 -1
  133. package/datatable/tableloadingbody.common.js +21 -1
  134. package/datatable/tableloadingbody.umd.js +21 -1
  135. package/datatable/tableloadingbody.umd.min.js +1 -1
  136. package/dataview/dataview.common.js +53 -30
  137. package/dataview/dataview.umd.js +53 -30
  138. package/dataview/dataview.umd.min.js +1 -1
  139. package/dialog/dialog.common.js +24 -6
  140. package/dialog/dialog.umd.js +24 -6
  141. package/dialog/dialog.umd.min.js +1 -1
  142. package/dropdown/Dropdown.vue +2 -0
  143. package/dropdown/dropdown.common.js +45 -20
  144. package/dropdown/dropdown.umd.js +45 -20
  145. package/dropdown/dropdown.umd.min.js +1 -1
  146. package/fieldset/fieldset.common.js +22 -0
  147. package/fieldset/fieldset.umd.js +22 -0
  148. package/fieldset/fieldset.umd.min.js +1 -1
  149. package/fileupload/fileupload.common.js +22 -0
  150. package/fileupload/fileupload.umd.js +22 -0
  151. package/fileupload/fileupload.umd.min.js +1 -1
  152. package/fullcalendar/fullcalendar.common.js +5 -9
  153. package/fullcalendar/fullcalendar.umd.js +5 -9
  154. package/fullcalendar/fullcalendar.umd.min.js +2 -2
  155. package/galleria/galleria.common.js +22 -4
  156. package/galleria/galleria.umd.js +22 -4
  157. package/galleria/galleria.umd.min.js +1 -1
  158. package/galleria/galleriacontent.common.js +22 -0
  159. package/galleria/galleriacontent.umd.js +22 -0
  160. package/galleria/galleriacontent.umd.min.js +1 -1
  161. package/galleria/galleriaitem.common.js +22 -0
  162. package/galleria/galleriaitem.umd.js +22 -0
  163. package/galleria/galleriaitem.umd.min.js +1 -1
  164. package/galleria/galleriathumbnails.common.js +22 -0
  165. package/galleria/galleriathumbnails.umd.js +22 -0
  166. package/galleria/galleriathumbnails.umd.min.js +1 -1
  167. package/imagepreview/imagepreview.common.js +22 -0
  168. package/imagepreview/imagepreview.umd.js +22 -0
  169. package/imagepreview/imagepreview.umd.min.js +1 -1
  170. package/inplace/inplace.common.js +22 -0
  171. package/inplace/inplace.umd.js +22 -0
  172. package/inplace/inplace.umd.min.js +1 -1
  173. package/inputmask/inputmask.common.js +24 -6
  174. package/inputmask/inputmask.umd.js +24 -6
  175. package/inputmask/inputmask.umd.min.js +1 -1
  176. package/inputnumber/inputnumber.common.js +26 -9
  177. package/inputnumber/inputnumber.umd.js +26 -9
  178. package/inputnumber/inputnumber.umd.min.js +1 -1
  179. package/inputtext/inputtext.common.js +2 -6
  180. package/inputtext/inputtext.umd.js +2 -6
  181. package/inputtext/inputtext.umd.min.js +1 -1
  182. package/listbox/listbox.common.js +42 -17
  183. package/listbox/listbox.umd.js +42 -17
  184. package/listbox/listbox.umd.min.js +1 -1
  185. package/megamenu/megamenu.common.js +22 -0
  186. package/megamenu/megamenu.umd.js +22 -0
  187. package/megamenu/megamenu.umd.min.js +1 -1
  188. package/menu/menu.common.js +22 -0
  189. package/menu/menu.umd.js +22 -0
  190. package/menu/menu.umd.min.js +1 -1
  191. package/menu/menuitem.common.js +22 -0
  192. package/menu/menuitem.umd.js +22 -0
  193. package/menu/menuitem.umd.min.js +1 -1
  194. package/menubar/menubar.common.js +22 -0
  195. package/menubar/menubar.umd.js +22 -0
  196. package/menubar/menubar.umd.min.js +1 -1
  197. package/menubar/menubarsub.common.js +22 -0
  198. package/menubar/menubarsub.umd.js +22 -0
  199. package/menubar/menubarsub.umd.min.js +1 -1
  200. package/message/message.common.js +22 -0
  201. package/message/message.umd.js +22 -0
  202. package/message/message.umd.min.js +1 -1
  203. package/multiselect/multiselect.common.js +42 -17
  204. package/multiselect/multiselect.umd.js +42 -17
  205. package/multiselect/multiselect.umd.min.js +1 -1
  206. package/orderlist/orderlist.common.js +42 -17
  207. package/orderlist/orderlist.umd.js +42 -17
  208. package/orderlist/orderlist.umd.min.js +1 -1
  209. package/organizationchart/organizationchart.common.js +24 -6
  210. package/organizationchart/organizationchart.umd.js +24 -6
  211. package/organizationchart/organizationchart.umd.min.js +1 -1
  212. package/organizationchart/organizationchartnode.common.js +22 -0
  213. package/organizationchart/organizationchartnode.umd.js +22 -0
  214. package/organizationchart/organizationchartnode.umd.min.js +1 -1
  215. package/overlayeventbus/OverlayEventBus.js +14 -0
  216. package/overlayeventbus/demo.html +8 -0
  217. package/overlayeventbus/index.d.ts +1 -0
  218. package/overlayeventbus/index.js +2 -0
  219. package/overlayeventbus/overlayeventbus.common.js +1773 -0
  220. package/overlayeventbus/overlayeventbus.umd.js +1783 -0
  221. package/overlayeventbus/overlayeventbus.umd.min.js +1 -0
  222. package/overlaypanel/overlaypanel.common.js +22 -0
  223. package/overlaypanel/overlaypanel.umd.js +22 -0
  224. package/overlaypanel/overlaypanel.umd.min.js +1 -1
  225. package/package.json +1 -1
  226. package/paginator/firstpagelink.common.js +22 -0
  227. package/paginator/firstpagelink.umd.js +22 -0
  228. package/paginator/firstpagelink.umd.min.js +1 -1
  229. package/paginator/jumptopagedropdown.common.js +49 -24
  230. package/paginator/jumptopagedropdown.umd.js +49 -24
  231. package/paginator/jumptopagedropdown.umd.min.js +1 -1
  232. package/paginator/jumptopageinput.common.js +26 -9
  233. package/paginator/jumptopageinput.umd.js +26 -9
  234. package/paginator/jumptopageinput.umd.min.js +1 -1
  235. package/paginator/lastpagelink.common.js +22 -0
  236. package/paginator/lastpagelink.umd.js +22 -0
  237. package/paginator/lastpagelink.umd.min.js +1 -1
  238. package/paginator/nextpagelink.common.js +22 -0
  239. package/paginator/nextpagelink.umd.js +22 -0
  240. package/paginator/nextpagelink.umd.min.js +1 -1
  241. package/paginator/pagelinks.common.js +22 -0
  242. package/paginator/pagelinks.umd.js +22 -0
  243. package/paginator/pagelinks.umd.min.js +1 -1
  244. package/paginator/paginator.common.js +53 -30
  245. package/paginator/paginator.umd.js +53 -30
  246. package/paginator/paginator.umd.min.js +1 -1
  247. package/paginator/prevpagelink.common.js +22 -0
  248. package/paginator/prevpagelink.umd.js +22 -0
  249. package/paginator/prevpagelink.umd.min.js +1 -1
  250. package/paginator/rowsperpagedropdown.common.js +49 -24
  251. package/paginator/rowsperpagedropdown.umd.js +49 -24
  252. package/paginator/rowsperpagedropdown.umd.min.js +1 -1
  253. package/panel/panel.common.js +22 -0
  254. package/panel/panel.umd.js +22 -0
  255. package/panel/panel.umd.min.js +1 -1
  256. package/password/password.common.js +24 -6
  257. package/password/password.umd.js +24 -6
  258. package/password/password.umd.min.js +1 -1
  259. package/picklist/PickList.vue +0 -3
  260. package/picklist/picklist.common.js +44 -22
  261. package/picklist/picklist.umd.js +44 -22
  262. package/picklist/picklist.umd.min.js +1 -1
  263. package/radiobutton/radiobutton.common.js +25 -17
  264. package/radiobutton/radiobutton.umd.js +25 -17
  265. package/radiobutton/radiobutton.umd.min.js +1 -1
  266. package/ripple/ripple.common.js +22 -0
  267. package/ripple/ripple.umd.js +22 -0
  268. package/ripple/ripple.umd.min.js +1 -1
  269. package/scrollpanel/scrollpanel.common.js +22 -0
  270. package/scrollpanel/scrollpanel.umd.js +22 -0
  271. package/scrollpanel/scrollpanel.umd.min.js +1 -1
  272. package/scrolltop/scrolltop.common.js +22 -0
  273. package/scrolltop/scrolltop.umd.js +22 -0
  274. package/scrolltop/scrolltop.umd.min.js +1 -1
  275. package/selectbutton/selectbutton.common.js +42 -17
  276. package/selectbutton/selectbutton.umd.js +42 -17
  277. package/selectbutton/selectbutton.umd.min.js +1 -1
  278. package/sidebar/sidebar.common.js +22 -0
  279. package/sidebar/sidebar.umd.js +22 -0
  280. package/sidebar/sidebar.umd.min.js +1 -1
  281. package/slider/Slider.vue +20 -12
  282. package/slider/slider.common.js +36 -9
  283. package/slider/slider.umd.js +36 -9
  284. package/slider/slider.umd.min.js +1 -1
  285. package/speeddial/speeddial.common.js +24 -6
  286. package/speeddial/speeddial.umd.js +24 -6
  287. package/speeddial/speeddial.umd.min.js +1 -1
  288. package/splitbutton/splitbutton.common.js +22 -0
  289. package/splitbutton/splitbutton.umd.js +22 -0
  290. package/splitbutton/splitbutton.umd.min.js +1 -1
  291. package/splitter/splitter.common.js +22 -0
  292. package/splitter/splitter.umd.js +22 -0
  293. package/splitter/splitter.umd.min.js +1 -1
  294. package/styleclass/styleclass.common.js +22 -0
  295. package/styleclass/styleclass.umd.js +22 -0
  296. package/styleclass/styleclass.umd.min.js +1 -1
  297. package/tabmenu/tabmenu.common.js +22 -0
  298. package/tabmenu/tabmenu.umd.js +22 -0
  299. package/tabmenu/tabmenu.umd.min.js +1 -1
  300. package/tabview/tabview.common.js +42 -17
  301. package/tabview/tabview.umd.js +42 -17
  302. package/tabview/tabview.umd.min.js +1 -1
  303. package/textarea/textarea.common.js +2 -6
  304. package/textarea/textarea.umd.js +2 -6
  305. package/textarea/textarea.umd.min.js +1 -1
  306. package/tieredmenu/demo.html +3 -4
  307. package/tieredmenu/tieredmenu.common.js +22 -0
  308. package/tieredmenu/tieredmenu.umd.js +22 -0
  309. package/tieredmenu/tieredmenu.umd.min.js +1 -1
  310. package/tieredmenu/tieredmenusub.common.js +22 -0
  311. package/tieredmenu/tieredmenusub.umd.js +22 -0
  312. package/tieredmenu/tieredmenusub.umd.min.js +1 -1
  313. package/timeline/timeline.common.js +25 -17
  314. package/timeline/timeline.umd.js +25 -17
  315. package/timeline/timeline.umd.min.js +1 -1
  316. package/toast/toast.common.js +22 -0
  317. package/toast/toast.umd.js +22 -0
  318. package/toast/toast.umd.min.js +1 -1
  319. package/toast/toastmessage.common.js +22 -0
  320. package/toast/toastmessage.umd.js +22 -0
  321. package/toast/toastmessage.umd.min.js +1 -1
  322. package/togglebutton/togglebutton.common.js +22 -0
  323. package/togglebutton/togglebutton.umd.js +22 -0
  324. package/togglebutton/togglebutton.umd.min.js +1 -1
  325. package/tooltip/Tooltip.js +1 -1
  326. package/tooltip/tooltip.common.js +29 -17
  327. package/tooltip/tooltip.umd.js +29 -17
  328. package/tooltip/tooltip.umd.min.js +1 -1
  329. package/tree/tree.common.js +46 -23
  330. package/tree/tree.umd.js +46 -23
  331. package/tree/tree.umd.min.js +1 -1
  332. package/tree/treenode.common.js +24 -6
  333. package/tree/treenode.umd.js +24 -6
  334. package/tree/treenode.umd.min.js +1 -1
  335. package/treetable/BodyCell.vue +162 -0
  336. package/treetable/FooterCell.vue +81 -0
  337. package/treetable/HeaderCell.vue +183 -0
  338. package/treetable/TreeTable.vue +85 -108
  339. package/treetable/bodycell.common.js +5596 -0
  340. package/treetable/bodycell.umd.js +5606 -0
  341. package/treetable/bodycell.umd.min.js +1 -0
  342. package/treetable/demo.html +3 -3
  343. package/treetable/footercell.common.js +5300 -0
  344. package/treetable/footercell.umd.js +5310 -0
  345. package/treetable/footercell.umd.min.js +1 -0
  346. package/treetable/headercell.common.js +5529 -0
  347. package/treetable/headercell.umd.js +5539 -0
  348. package/treetable/headercell.umd.min.js +1 -0
  349. package/treetable/treetable.common.js +917 -481
  350. package/treetable/treetable.umd.js +917 -481
  351. package/treetable/treetable.umd.min.js +1 -1
  352. package/treetable/treetablerow.common.js +44 -20
  353. package/treetable/treetablerow.umd.js +44 -20
  354. package/treetable/treetablerow.umd.min.js +1 -1
  355. package/treetable/treetablerowloader.common.js +46 -23
  356. package/treetable/treetablerowloader.umd.js +46 -23
  357. package/treetable/treetablerowloader.umd.min.js +1 -1
  358. package/utils/ConnectedOverlayScrollHandler.js +1 -1
  359. package/utils/DomHandler.js +18 -1
  360. package/utils/ObjectUtils.js +15 -2
  361. package/utils/Utils.d.ts +73 -0
  362. package/utils/Utils.js +47 -0
  363. package/utils/connectedoverlayscrollhandler.common.js +22 -0
  364. package/utils/connectedoverlayscrollhandler.umd.js +22 -0
  365. package/utils/connectedoverlayscrollhandler.umd.min.js +1 -1
  366. package/utils/demo.html +3 -3
  367. package/utils/domhandler.common.js +22 -0
  368. package/utils/domhandler.umd.js +22 -0
  369. package/utils/domhandler.umd.min.js +1 -1
  370. package/utils/eventbus.common.js +0 -4
  371. package/utils/eventbus.umd.js +0 -4
  372. package/utils/eventbus.umd.min.js +1 -1
  373. package/utils/index.d.ts +1 -0
  374. package/utils/index.js +2 -0
  375. package/utils/objectutils.common.js +25 -17
  376. package/utils/objectutils.umd.js +25 -17
  377. package/utils/objectutils.umd.min.js +1 -1
  378. package/utils/utils.common.js +5481 -0
  379. package/utils/utils.umd.js +5491 -0
  380. package/utils/utils.umd.min.js +1 -0
  381. package/vetur-attributes.json +4 -0
  382. package/vetur-tags.json +1 -0
  383. package/web-types.json +24 -1
  384. package/datatable/ScrollableView.vue +0 -223
  385. package/datatable/scrollableview.umd.min.js +0 -1
  386. package/utils/FilterUtils.js +0 -176
  387. package/utils/filterutils.umd.min.js +0 -1
@@ -1,53 +1,58 @@
1
1
  <template>
2
- <thead class="p-datatable-thead">
2
+ <thead class="p-datatable-thead" role="rowgroup">
3
3
  <template v-if="!columnGroup">
4
- <tr>
4
+ <tr role="row">
5
5
  <template v-for="(col,i) of columns">
6
- <th v-if="rowGroupMode !== 'subheader' || (groupRowsBy !== col.field)" :tabindex="col.sortable ? '0' : null" @keydown="onColumnKeyDown($event, col)"
7
- :key="col.columnKey||col.field||i" :style="col.headerStyle" :class="getColumnHeaderClass(col)"
8
- @click="onColumnHeaderClick($event, col)" @mousedown="onColumnHeaderMouseDown($event, col)"
9
- @dragstart="onColumnHeaderDragStart($event)" @dragover="onColumnHeaderDragOver($event)" @dragleave="onColumnHeaderDragLeave($event)" @drop="onColumnHeaderDrop($event)"
10
- :colspan="col.colspan" :rowspan="col.rowspan" :aria-sort="getAriaSort(col)">
11
- <span class="p-column-resizer" @mousedown="onColumnResizeStart($event)" v-if="resizableColumns"></span>
12
- <DTColumnSlot :column="col" type="header" v-if="col.$scopedSlots.header" />
13
- <span class="p-column-title" v-if="col.header">{{col.header}}</span>
14
- <span v-if="col.sortable" :class="getSortableColumnIcon(col)"></span>
15
- <span v-if="isMultiSorted(col)" class="p-sortable-column-badge">{{getMultiSortMetaIndex(col) + 1}}</span>
16
- <DTHeaderCheckbox :checked="allRowsSelected" @change="onHeaderCheckboxChange($event)" :disabled="empty" v-if="col.selectionMode ==='multiple' && !hasColumnFilter()" />
17
- </th>
6
+ <DTHeaderCell v-if="!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || (groupRowsBy !== columnProp(col, 'field')))" :column="col" :key="columnProp(col, 'columnKey')+i||columnProp(col, 'field')+i||i"
7
+ @column-click="$emit('column-click', $event)" @column-mousedown="$emit('column-mousedown', $event)"
8
+ @column-dragstart="$emit('column-dragstart', $event)" @column-dragover="$emit('column-dragover', $event)" @column-dragleave="$emit('column-dragleave', $event)" @column-drop="$emit('column-drop', $event)"
9
+ :groupRowsBy="groupRowsBy" :groupRowSortField="groupRowSortField" :resizableColumns="resizableColumns" @column-resizestart="$emit('column-resizestart', $event)"
10
+ :sortMode="sortMode" :sortField="sortField" :sortOrder="sortOrder" :multiSortMeta="multiSortMeta"
11
+ :allRowsSelected="allRowsSelected" :empty="empty" @checkbox-change="$emit('checkbox-change', $event)"
12
+ :filters="filters" :filterDisplay="filterDisplay" :filtersStore="filtersStore" @filter-change="$emit('filter-change', $event)" @filter-apply="$emit('filter-apply')"
13
+ @operator-change="$emit('operator-change',$event)" @matchmode-change="$emit('matchmode-change', $event)" @constraint-add="$emit('constraint-add', $event)"
14
+ @constraint-remove="$emit('constraint-remove', $event)" @apply-click="$emit('apply-click',$event)"/>
18
15
  </template>
19
16
  </tr>
20
- <tr v-if="hasColumnFilter()">
17
+ <tr v-if="filterDisplay === 'row'" role="row">
21
18
  <template v-for="(col,i) of columns">
22
- <th v-if="rowGroupMode !== 'subheader' || (groupRowsBy !== col.field)" :key="col.columnKey||col.field||i"
23
- :class="getFilterColumnHeaderClass(col)" :style="col.filterHeaderStyle">
24
- <DTColumnSlot :column="col" type="filter" v-if="col.$scopedSlots.filter" />
25
- <DTHeaderCheckbox :checked="allRowsSelected" @change="onHeaderCheckboxChange($event)" :disabled="empty" v-if="col.selectionMode ==='multiple'" />
19
+ <th :style="getFilterColumnHeaderStyle(col)" :class="getFilterColumnHeaderClass(col)" v-if="!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || (groupRowsBy !== columnProp(col, 'field')))" :key="columnProp(col, 'columnKey')||columnProp(col, 'field')||i">
20
+ <DTHeaderCheckbox :checked="allRowsSelected" @change="$emit('checkbox-change', $event)" :disabled="empty" v-if="columnProp(col, 'selectionMode') ==='multiple'" />
21
+ <DTColumnFilter v-if="col.$scopedSlots && col.$scopedSlots.filter" :field="columnProp(col,'filterField')||columnProp(col,'field')" :type="columnProp(col,'dataType')" display="row"
22
+ :showMenu="columnProp(col,'showFilterMenu')" :filterElement="col.$scopedSlots && col.$scopedSlots.filter" :templates="col.$scopedSlots"
23
+ :filterHeaderTemplate="col.$scopedSlots && col.$scopedSlots.filterheader" :filterFooterTemplate="col.$scopedSlots && col.$scopedSlots.filterfooter"
24
+ :filterClearTemplate="col.$scopedSlots && col.$scopedSlots.filterclear" :filterApplyTemplate="col.$scopedSlots && col.$scopedSlots.filterapply"
25
+ :filters="filters" :filtersStore="filtersStore" @filter-change="$emit('filter-change', $event)" @filter-apply="$emit('filter-apply')" :filterMenuStyle="columnProp(col,'filterMenuStyle')" :filterMenuClass="columnProp(col,'filterMenuClass')"
26
+ :showOperator="columnProp(col,'showFilterOperator')" :showClearButton="columnProp(col,'showClearButton')" :showApplyButton="columnProp(col,'showApplyButton')"
27
+ :showMatchModes="columnProp(col,'showFilterMatchModes')" :showAddButton="columnProp(col,'showAddButton')" :matchModeOptions="columnProp(col,'filterMatchModeOptions')" :maxConstraints="columnProp(col,'maxConstraints')"
28
+ @operator-change="$emit('operator-change',$event)" @matchmode-change="$emit('matchmode-change', $event)"
29
+ @constraint-add="$emit('constraint-add', $event)" @constraint-remove="$emit('constraint-remove', $event)" @apply-click="$emit('apply-click',$event)"/>
26
30
  </th>
27
31
  </template>
28
32
  </tr>
29
33
  </template>
30
34
  <template v-else>
31
- <tr v-for="(row,i) of columnGroup.rows" :key="i">
32
- <th v-for="(col,i) of row.columns" :key="col.columnKey||col.field||i" :style="col.headerStyle" :class="getColumnHeaderClass(col)" :tabindex="col.sortable ? '0' : null"
33
- @click="onColumnHeaderClick($event, col)" @keydown="onColumnKeyDown($event, col)" @dragstart="onColumnHeaderDragStart($event)" @dragover="onColumnHeaderDragOver($event)" @dragleave="onColumnHeaderDragLeave($event)" @drop="onColumnHeaderDrop($event)"
34
- :colspan="col.colspan" :rowspan="col.rowspan" :aria-sort="getAriaSort(col)">
35
- <DTColumnSlot :column="col" type="header" v-if="col.$scopedSlots.header" />
36
- <span class="p-column-title" v-if="col.header">{{col.header}}</span>
37
- <span v-if="col.sortable" :class="getSortableColumnIcon(col)"></span>
38
- <span v-if="isMultiSorted(col)" class="p-sortable-column-badge">{{getMultiSortMetaIndex(col) + 1}}</span>
39
- <DTColumnSlot :column="col" type="filter" v-if="col.$scopedSlots.filter" />
40
- <DTHeaderCheckbox :checked="allRowsSelected" @change="onHeaderCheckboxChange($event)" :disabled="empty" v-if="col.selectionMode ==='multiple'" />
41
- </th>
35
+ <tr v-for="(row,i) of columnGroup.$scopedSlots.default()" :key="ariaId + i" role="row">
36
+ <template v-for="(col,j) of getHeaderColumns(row)">
37
+ <DTHeaderCell v-if="!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || (groupRowsBy !== columnProp(col, 'field'))) && (typeof col.children !== 'string')" :column="col.child" :key="columnProp(col, 'columnKey')+j||columnProp(col, 'field')+j||j"
38
+ @column-click="$emit('column-click', $event)" @column-mousedown="$emit('column-mousedown', $event)"
39
+ :groupRowsBy="groupRowsBy" :groupRowSortField="groupRowSortField" :sortMode="sortMode" :sortField="sortField" :sortOrder="sortOrder" :multiSortMeta="multiSortMeta"
40
+ :allRowsSelected="allRowsSelected" :empty="empty" @checkbox-change="$emit('checkbox-change', $event)"
41
+ :filters="filters" :filterDisplay="filterDisplay" :filtersStore="filtersStore" @filter-change="$emit('filter-change', $event)" @filter-apply="$emit('filter-apply')"
42
+ @operator-change="$emit('operator-change',$event)" @matchmode-change="$emit('matchmode-change', $event)" @constraint-add="$emit('constraint-add', $event)"
43
+ @constraint-remove="$emit('constraint-remove', $event)" @apply-click="$emit('apply-click',$event)"/>
44
+ </template>
42
45
  </tr>
43
46
  </template>
44
47
  </thead>
45
48
  </template>
46
49
 
47
50
  <script>
48
- import DomHandler from '../utils/DomHandler';
49
- import ColumnSlot from './ColumnSlot.vue';
51
+ import HeaderCell from './HeaderCell.vue';
50
52
  import HeaderCheckbox from './HeaderCheckbox.vue';
53
+ import ColumnFilter from './ColumnFilter.vue';
54
+ import ObjectUtils from '../utils/ObjectUtils';
55
+ import UniqueComponentId from '../utils/UniqueComponentId';
51
56
 
52
57
  export default {
53
58
  props: {
@@ -83,6 +88,10 @@ export default {
83
88
  type: String,
84
89
  default: 'single'
85
90
  },
91
+ groupRowSortField: {
92
+ type: [String, Function],
93
+ default: null
94
+ },
86
95
  sortField: {
87
96
  type: [String, Function],
88
97
  default: null
@@ -94,120 +103,56 @@ export default {
94
103
  multiSortMeta: {
95
104
  type: Array,
96
105
  default: null
106
+ },
107
+ filterDisplay: {
108
+ type: String,
109
+ default: null
110
+ },
111
+ filters: {
112
+ type: Object,
113
+ default: null
114
+ },
115
+ filtersStore: {
116
+ type: Object,
117
+ default: null
97
118
  }
98
119
  },
99
120
  methods: {
100
- isMultiSorted(column) {
101
- return column.sortable && this.getMultiSortMetaIndex(column) > -1
102
- },
103
- isColumnSorted(column) {
104
- return this.sortMode === 'single' ? (this.sortField && (this.sortField === column.field || this.sortField === column.sortField)) : this.isMultiSorted(column);
105
- },
106
- getColumnHeaderClass(column) {
107
- return [column.headerClass,
108
- {'p-sortable-column': column.sortable},
109
- {'p-resizable-column': this.resizableColumns},
110
- {'p-highlight': this.isColumnSorted(column)}
111
- ];
121
+ columnProp(col, prop) {
122
+ return ObjectUtils.getVNodeProp(col, prop);
112
123
  },
113
124
  getFilterColumnHeaderClass(column) {
114
- return ['p-filter-column', column.filterHeaderClass];
125
+ return ['p-filter-column', this.columnProp(column, 'filterHeaderClass'), this.columnProp(column, 'className'), {
126
+ 'p-frozen-column': this.columnProp(column, 'frozen')
127
+ }];
115
128
  },
116
- getSortableColumnIcon(column) {
117
- let sorted = false;
118
- let sortOrder = null;
119
-
120
- if (this.sortMode === 'single') {
121
- sorted = this.sortField && (this.sortField === column.field || this.sortField === column.sortField);
122
- sortOrder = sorted ? this.sortOrder: 0;
123
- }
124
- else if (this.sortMode === 'multiple') {
125
- let metaIndex = this.getMultiSortMetaIndex(column);
126
- if (metaIndex > -1) {
127
- sorted = true;
128
- sortOrder = this.multiSortMeta[metaIndex].order;
129
- }
130
- }
129
+ getFilterColumnHeaderStyle(column) {
130
+ return [this.columnProp(column, 'filterHeaderStyle'), this.columnProp(column, 'styles')];
131
+ },
132
+ getHeaderColumns(row){
133
+ let cols = [];
131
134
 
132
- return [
133
- 'p-sortable-column-icon pi pi-fw', {
134
- 'pi-sort-alt': !sorted,
135
- 'pi-sort-amount-up-alt': sorted && sortOrder > 0,
136
- 'pi-sort-amount-down': sorted && sortOrder < 0
137
- }
138
- ];
139
- },
140
- getMultiSortMetaIndex(column) {
141
- let index = -1;
135
+ if (row.child && row.child.$scopedSlots.default) {
136
+ row.child.$scopedSlots.default().forEach(child => {
137
+ if (child.child && child.child.children && child.child.children instanceof Array)
138
+ cols = [...cols, ...child.child.children];
139
+ else if (child.componentOptions.tag === 'Column')
140
+ cols.push(child);
141
+ });
142
142
 
143
- for (let i = 0; i < this.multiSortMeta.length; i++) {
144
- let meta = this.multiSortMeta[i];
145
- if (meta.field === column.field || meta.field === column.sortField) {
146
- index = i;
147
- break;
148
- }
143
+ return cols;
149
144
  }
150
-
151
- return index;
152
- },
153
- onColumnHeaderClick(event, col) {
154
- this.$emit('column-click', {originalEvent: event, column: col});
155
- },
156
- onColumnHeaderMouseDown(event, col) {
157
- this.$emit('column-mousedown', {originalEvent: event, column: col});
158
- },
159
- onColumnHeaderDragStart(event) {
160
- this.$emit('column-dragstart', event);
161
- },
162
- onColumnHeaderDragOver(event) {
163
- this.$emit('column-dragover', event);
164
- },
165
- onColumnHeaderDragLeave(event) {
166
- this.$emit('column-dragleave', event);
167
- },
168
- onColumnHeaderDrop(event) {
169
- this.$emit('column-drop', event);
170
- },
171
- onColumnResizeStart(event) {
172
- this.$emit('column-resizestart', event);
173
- },
174
- onHeaderCheckboxChange(event) {
175
- this.$emit('checkbox-change', event);
176
- },
177
- onColumnKeyDown(event, col) {
178
- if (event.which === 13 && event.currentTarget.nodeName === 'TH' && DomHandler.hasClass(event.currentTarget, 'p-sortable-column')) {
179
- this.$emit('column-click', {originalEvent: event, column: col});
180
- }
181
- },
182
- getAriaSort(column) {
183
- if (column.sortable) {
184
- const sortIcon = this.getSortableColumnIcon(column);
185
- if (sortIcon[1]['pi-sort-amount-down'])
186
- return 'descending';
187
- else if (sortIcon[1]['pi-sort-amount-up-alt'])
188
- return 'ascending';
189
- else
190
- return 'none';
191
- }
192
- else {
193
- return null;
194
- }
195
- },
196
- hasColumnFilter() {
197
- if (this.columns) {
198
- for (let col of this.columns) {
199
- if (col.$scopedSlots.filter) {
200
- return true;
201
- }
202
- }
203
- }
204
-
205
- return false;
145
+ }
146
+ },
147
+ computed: {
148
+ ariaId() {
149
+ return UniqueComponentId();
206
150
  }
207
151
  },
208
152
  components: {
209
- 'DTColumnSlot': ColumnSlot,
210
- 'DTHeaderCheckbox': HeaderCheckbox
153
+ 'DTHeaderCell': HeaderCell,
154
+ 'DTHeaderCheckbox': HeaderCheckbox,
155
+ 'DTColumnFilter': ColumnFilter
211
156
  }
212
157
  }
213
158
  </script>