primeng 16.7.1 → 16.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 (423) hide show
  1. package/README.md +1 -0
  2. package/calendar/calendar.d.ts +10 -1
  3. package/chart/chart.d.ts +11 -1
  4. package/chips/chips.d.ts +1 -2
  5. package/confirmdialog/confirmdialog.d.ts +1 -1
  6. package/dropdown/dropdown.d.ts +5 -2
  7. package/esm2022/accordion/accordion.mjs +10 -10
  8. package/esm2022/animate/animate.mjs +7 -7
  9. package/esm2022/animateonscroll/animateonscroll.mjs +7 -7
  10. package/esm2022/api/confirmationservice.mjs +3 -3
  11. package/esm2022/api/contextmenuservice.mjs +3 -3
  12. package/esm2022/api/filterservice.mjs +3 -3
  13. package/esm2022/api/messageservice.mjs +3 -3
  14. package/esm2022/api/overlayservice.mjs +3 -3
  15. package/esm2022/api/primengconfig.mjs +3 -3
  16. package/esm2022/api/shared.mjs +13 -13
  17. package/esm2022/api/treedragdropservice.mjs +3 -3
  18. package/esm2022/autocomplete/autocomplete.mjs +35 -16
  19. package/esm2022/autofocus/autofocus.mjs +7 -7
  20. package/esm2022/avatar/avatar.mjs +7 -7
  21. package/esm2022/avatargroup/avatargroup.mjs +7 -7
  22. package/esm2022/badge/badge.mjs +10 -10
  23. package/esm2022/baseicon/baseicon.mjs +3 -3
  24. package/esm2022/blockui/blockui.mjs +7 -7
  25. package/esm2022/breadcrumb/breadcrumb.mjs +7 -7
  26. package/esm2022/button/button.mjs +10 -10
  27. package/esm2022/calendar/calendar.mjs +177 -32
  28. package/esm2022/card/card.mjs +7 -7
  29. package/esm2022/carousel/carousel.mjs +7 -7
  30. package/esm2022/cascadeselect/cascadeselect.mjs +10 -10
  31. package/esm2022/chart/chart.mjs +24 -10
  32. package/esm2022/checkbox/checkbox.mjs +7 -7
  33. package/esm2022/chip/chip.mjs +7 -7
  34. package/esm2022/chips/chips.mjs +15 -18
  35. package/esm2022/colorpicker/colorpicker.mjs +7 -7
  36. package/esm2022/confirmdialog/confirmdialog.mjs +8 -8
  37. package/esm2022/confirmpopup/confirmpopup.mjs +7 -7
  38. package/esm2022/contextmenu/contextmenu.mjs +10 -10
  39. package/esm2022/dataview/dataview.mjs +10 -10
  40. package/esm2022/defer/defer.mjs +7 -7
  41. package/esm2022/dialog/dialog.mjs +9 -9
  42. package/esm2022/divider/divider.mjs +7 -7
  43. package/esm2022/dock/dock.mjs +7 -7
  44. package/esm2022/dragdrop/dragdrop.mjs +10 -10
  45. package/esm2022/dropdown/dropdown.mjs +82 -48
  46. package/esm2022/dynamicdialog/dialogservice.mjs +3 -3
  47. package/esm2022/dynamicdialog/dynamicdialog.mjs +7 -7
  48. package/esm2022/dynamicdialog/dynamicdialogcontent.mjs +3 -3
  49. package/esm2022/editor/editor.mjs +7 -7
  50. package/esm2022/fieldset/fieldset.mjs +7 -7
  51. package/esm2022/fileupload/fileupload.mjs +20 -13
  52. package/esm2022/focustrap/focustrap.mjs +7 -7
  53. package/esm2022/galleria/galleria.mjs +19 -19
  54. package/esm2022/icons/angledoubledown/angledoubledown.mjs +3 -3
  55. package/esm2022/icons/angledoubleleft/angledoubleleft.mjs +3 -3
  56. package/esm2022/icons/angledoubleright/angledoubleright.mjs +3 -3
  57. package/esm2022/icons/angledoubleup/angledoubleup.mjs +3 -3
  58. package/esm2022/icons/angledown/angledown.mjs +3 -3
  59. package/esm2022/icons/angleleft/angleleft.mjs +3 -3
  60. package/esm2022/icons/angleright/angleright.mjs +3 -3
  61. package/esm2022/icons/angleup/angleup.mjs +3 -3
  62. package/esm2022/icons/arrowdown/arrowdown.mjs +3 -3
  63. package/esm2022/icons/arrowdownleft/arrowdownleft.mjs +3 -3
  64. package/esm2022/icons/arrowdownright/arrowdownright.mjs +3 -3
  65. package/esm2022/icons/arrowleft/arrowleft.mjs +3 -3
  66. package/esm2022/icons/arrowright/arrowright.mjs +3 -3
  67. package/esm2022/icons/arrowup/arrowup.mjs +3 -3
  68. package/esm2022/icons/ban/ban.mjs +3 -3
  69. package/esm2022/icons/bars/bars.mjs +3 -3
  70. package/esm2022/icons/calendar/calendar.mjs +3 -3
  71. package/esm2022/icons/caretleft/caretleft.mjs +3 -3
  72. package/esm2022/icons/caretright/caretright.mjs +3 -3
  73. package/esm2022/icons/check/check.mjs +3 -3
  74. package/esm2022/icons/chevrondown/chevrondown.mjs +3 -3
  75. package/esm2022/icons/chevronleft/chevronleft.mjs +3 -3
  76. package/esm2022/icons/chevronright/chevronright.mjs +3 -3
  77. package/esm2022/icons/chevronup/chevronup.mjs +3 -3
  78. package/esm2022/icons/exclamationtriangle/exclamationtriangle.mjs +3 -3
  79. package/esm2022/icons/eye/eye.mjs +3 -3
  80. package/esm2022/icons/eyeslash/eyeslash.mjs +3 -3
  81. package/esm2022/icons/filter/filter.mjs +3 -3
  82. package/esm2022/icons/filterslash/filterslash.mjs +3 -3
  83. package/esm2022/icons/home/home.mjs +3 -3
  84. package/esm2022/icons/infocircle/infocircle.mjs +3 -3
  85. package/esm2022/icons/minus/minus.mjs +3 -3
  86. package/esm2022/icons/pencil/pencil.mjs +3 -3
  87. package/esm2022/icons/plus/plus.mjs +3 -3
  88. package/esm2022/icons/refresh/refresh.mjs +3 -3
  89. package/esm2022/icons/search/search.mjs +3 -3
  90. package/esm2022/icons/searchminus/searchminus.mjs +3 -3
  91. package/esm2022/icons/searchplus/searchplus.mjs +3 -3
  92. package/esm2022/icons/sortalt/sortalt.mjs +3 -3
  93. package/esm2022/icons/sortamountdown/sortamountdown.mjs +3 -3
  94. package/esm2022/icons/sortamountupalt/sortamountupalt.mjs +3 -3
  95. package/esm2022/icons/spinner/spinner.mjs +3 -3
  96. package/esm2022/icons/star/star.mjs +3 -3
  97. package/esm2022/icons/starfill/starfill.mjs +3 -3
  98. package/esm2022/icons/thlarge/thlarge.mjs +3 -3
  99. package/esm2022/icons/times/times.mjs +3 -3
  100. package/esm2022/icons/timescircle/timescircle.mjs +3 -3
  101. package/esm2022/icons/trash/trash.mjs +3 -3
  102. package/esm2022/icons/undo/undo.mjs +3 -3
  103. package/esm2022/icons/upload/upload.mjs +3 -3
  104. package/esm2022/icons/windowmaximize/windowmaximize.mjs +3 -3
  105. package/esm2022/icons/windowminimize/windowminimize.mjs +3 -3
  106. package/esm2022/image/image.mjs +10 -10
  107. package/esm2022/inplace/inplace.mjs +13 -13
  108. package/esm2022/inputmask/inputmask.mjs +7 -7
  109. package/esm2022/inputnumber/inputnumber.mjs +7 -7
  110. package/esm2022/inputswitch/inputswitch.mjs +7 -7
  111. package/esm2022/inputtext/inputtext.mjs +7 -7
  112. package/esm2022/inputtextarea/inputtextarea.mjs +7 -7
  113. package/esm2022/keyfilter/keyfilter.mjs +7 -7
  114. package/esm2022/knob/knob.mjs +7 -7
  115. package/esm2022/listbox/listbox.interface.mjs +1 -1
  116. package/esm2022/listbox/listbox.mjs +51 -17
  117. package/esm2022/megamenu/megamenu.mjs +12 -14
  118. package/esm2022/menu/menu.mjs +13 -13
  119. package/esm2022/menubar/menubar.mjs +15 -15
  120. package/esm2022/message/message.mjs +7 -7
  121. package/esm2022/messages/messages.mjs +10 -10
  122. package/esm2022/multiselect/multiselect.interface.mjs +1 -1
  123. package/esm2022/multiselect/multiselect.mjs +94 -40
  124. package/esm2022/orderlist/orderlist.mjs +296 -100
  125. package/esm2022/organizationchart/organizationchart.mjs +54 -53
  126. package/esm2022/overlay/overlay.mjs +16 -13
  127. package/esm2022/overlaypanel/overlaypanel.mjs +7 -7
  128. package/esm2022/paginator/paginator.mjs +76 -25
  129. package/esm2022/panel/panel.mjs +10 -8
  130. package/esm2022/panelmenu/panelmenu.mjs +13 -13
  131. package/esm2022/password/password.mjs +13 -13
  132. package/esm2022/picklist/picklist.mjs +321 -118
  133. package/esm2022/progressbar/progressbar.mjs +7 -7
  134. package/esm2022/progressspinner/progressspinner.mjs +7 -7
  135. package/esm2022/radiobutton/radiobutton.mjs +10 -10
  136. package/esm2022/rating/rating.mjs +7 -7
  137. package/esm2022/ripple/ripple.mjs +7 -7
  138. package/esm2022/scroller/scroller.mjs +20 -16
  139. package/esm2022/scrollpanel/scrollpanel.mjs +7 -7
  140. package/esm2022/scrolltop/scrolltop.mjs +7 -7
  141. package/esm2022/selectbutton/selectbutton.mjs +11 -8
  142. package/esm2022/sidebar/sidebar.mjs +17 -8
  143. package/esm2022/skeleton/skeleton.mjs +7 -7
  144. package/esm2022/slidemenu/slidemenu.mjs +10 -10
  145. package/esm2022/slider/slider.mjs +7 -7
  146. package/esm2022/speeddial/speeddial.mjs +7 -7
  147. package/esm2022/spinner/spinner.mjs +7 -7
  148. package/esm2022/splitbutton/splitbutton.mjs +9 -8
  149. package/esm2022/splitter/splitter.mjs +7 -7
  150. package/esm2022/steps/steps.mjs +7 -7
  151. package/esm2022/styleclass/styleclass.mjs +7 -7
  152. package/esm2022/table/table.mjs +280 -147
  153. package/esm2022/tabmenu/tabmenu.mjs +7 -7
  154. package/esm2022/tabview/tabview.mjs +10 -10
  155. package/esm2022/tag/tag.mjs +7 -7
  156. package/esm2022/terminal/terminal.mjs +7 -7
  157. package/esm2022/terminal/terminalservice.mjs +3 -3
  158. package/esm2022/tieredmenu/tieredmenu.mjs +10 -10
  159. package/esm2022/timeline/timeline.mjs +25 -21
  160. package/esm2022/toast/toast.interface.mjs +1 -1
  161. package/esm2022/toast/toast.mjs +37 -18
  162. package/esm2022/togglebutton/togglebutton.mjs +7 -7
  163. package/esm2022/toolbar/toolbar.mjs +7 -7
  164. package/esm2022/tooltip/tooltip.mjs +9 -9
  165. package/esm2022/tree/tree.mjs +172 -92
  166. package/esm2022/treeselect/treeselect.mjs +134 -37
  167. package/esm2022/treetable/treetable.mjs +242 -128
  168. package/esm2022/tristatecheckbox/tristatecheckbox.mjs +12 -12
  169. package/esm2022/virtualscroller/virtualscroller.mjs +14 -14
  170. package/fesm2022/primeng-accordion.mjs +10 -10
  171. package/fesm2022/primeng-animate.mjs +7 -7
  172. package/fesm2022/primeng-animateonscroll.mjs +7 -7
  173. package/fesm2022/primeng-api.mjs +34 -34
  174. package/fesm2022/primeng-autocomplete.mjs +34 -15
  175. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  176. package/fesm2022/primeng-autofocus.mjs +7 -7
  177. package/fesm2022/primeng-avatar.mjs +7 -7
  178. package/fesm2022/primeng-avatargroup.mjs +7 -7
  179. package/fesm2022/primeng-badge.mjs +10 -10
  180. package/fesm2022/primeng-baseicon.mjs +3 -3
  181. package/fesm2022/primeng-blockui.mjs +7 -7
  182. package/fesm2022/primeng-breadcrumb.mjs +7 -7
  183. package/fesm2022/primeng-button.mjs +10 -10
  184. package/fesm2022/primeng-calendar.mjs +176 -31
  185. package/fesm2022/primeng-calendar.mjs.map +1 -1
  186. package/fesm2022/primeng-card.mjs +7 -7
  187. package/fesm2022/primeng-carousel.mjs +7 -7
  188. package/fesm2022/primeng-cascadeselect.mjs +10 -10
  189. package/fesm2022/primeng-chart.mjs +23 -9
  190. package/fesm2022/primeng-chart.mjs.map +1 -1
  191. package/fesm2022/primeng-checkbox.mjs +7 -7
  192. package/fesm2022/primeng-chip.mjs +7 -7
  193. package/fesm2022/primeng-chips.mjs +14 -17
  194. package/fesm2022/primeng-chips.mjs.map +1 -1
  195. package/fesm2022/primeng-colorpicker.mjs +7 -7
  196. package/fesm2022/primeng-confirmdialog.mjs +7 -7
  197. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  198. package/fesm2022/primeng-confirmpopup.mjs +7 -7
  199. package/fesm2022/primeng-contextmenu.mjs +10 -10
  200. package/fesm2022/primeng-dataview.mjs +10 -10
  201. package/fesm2022/primeng-defer.mjs +7 -7
  202. package/fesm2022/primeng-dialog.mjs +8 -8
  203. package/fesm2022/primeng-dialog.mjs.map +1 -1
  204. package/fesm2022/primeng-divider.mjs +7 -7
  205. package/fesm2022/primeng-dock.mjs +7 -7
  206. package/fesm2022/primeng-dragdrop.mjs +10 -10
  207. package/fesm2022/primeng-dropdown.mjs +81 -47
  208. package/fesm2022/primeng-dropdown.mjs.map +1 -1
  209. package/fesm2022/primeng-dynamicdialog.mjs +13 -13
  210. package/fesm2022/primeng-editor.mjs +7 -7
  211. package/fesm2022/primeng-fieldset.mjs +7 -7
  212. package/fesm2022/primeng-fileupload.mjs +19 -12
  213. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  214. package/fesm2022/primeng-focustrap.mjs +7 -7
  215. package/fesm2022/primeng-galleria.mjs +19 -19
  216. package/fesm2022/primeng-icons-angledoubledown.mjs +3 -3
  217. package/fesm2022/primeng-icons-angledoubleleft.mjs +3 -3
  218. package/fesm2022/primeng-icons-angledoubleright.mjs +3 -3
  219. package/fesm2022/primeng-icons-angledoubleup.mjs +3 -3
  220. package/fesm2022/primeng-icons-angledown.mjs +3 -3
  221. package/fesm2022/primeng-icons-angleleft.mjs +3 -3
  222. package/fesm2022/primeng-icons-angleright.mjs +3 -3
  223. package/fesm2022/primeng-icons-angleup.mjs +3 -3
  224. package/fesm2022/primeng-icons-arrowdown.mjs +3 -3
  225. package/fesm2022/primeng-icons-arrowdownleft.mjs +3 -3
  226. package/fesm2022/primeng-icons-arrowdownright.mjs +3 -3
  227. package/fesm2022/primeng-icons-arrowleft.mjs +3 -3
  228. package/fesm2022/primeng-icons-arrowright.mjs +3 -3
  229. package/fesm2022/primeng-icons-arrowup.mjs +3 -3
  230. package/fesm2022/primeng-icons-ban.mjs +3 -3
  231. package/fesm2022/primeng-icons-bars.mjs +3 -3
  232. package/fesm2022/primeng-icons-calendar.mjs +3 -3
  233. package/fesm2022/primeng-icons-caretleft.mjs +3 -3
  234. package/fesm2022/primeng-icons-caretright.mjs +3 -3
  235. package/fesm2022/primeng-icons-check.mjs +3 -3
  236. package/fesm2022/primeng-icons-chevrondown.mjs +3 -3
  237. package/fesm2022/primeng-icons-chevronleft.mjs +3 -3
  238. package/fesm2022/primeng-icons-chevronright.mjs +3 -3
  239. package/fesm2022/primeng-icons-chevronup.mjs +3 -3
  240. package/fesm2022/primeng-icons-exclamationtriangle.mjs +3 -3
  241. package/fesm2022/primeng-icons-eye.mjs +3 -3
  242. package/fesm2022/primeng-icons-eyeslash.mjs +3 -3
  243. package/fesm2022/primeng-icons-filter.mjs +3 -3
  244. package/fesm2022/primeng-icons-filterslash.mjs +3 -3
  245. package/fesm2022/primeng-icons-home.mjs +3 -3
  246. package/fesm2022/primeng-icons-infocircle.mjs +3 -3
  247. package/fesm2022/primeng-icons-minus.mjs +3 -3
  248. package/fesm2022/primeng-icons-pencil.mjs +3 -3
  249. package/fesm2022/primeng-icons-plus.mjs +3 -3
  250. package/fesm2022/primeng-icons-refresh.mjs +3 -3
  251. package/fesm2022/primeng-icons-search.mjs +3 -3
  252. package/fesm2022/primeng-icons-searchminus.mjs +3 -3
  253. package/fesm2022/primeng-icons-searchplus.mjs +3 -3
  254. package/fesm2022/primeng-icons-sortalt.mjs +3 -3
  255. package/fesm2022/primeng-icons-sortamountdown.mjs +3 -3
  256. package/fesm2022/primeng-icons-sortamountupalt.mjs +3 -3
  257. package/fesm2022/primeng-icons-spinner.mjs +3 -3
  258. package/fesm2022/primeng-icons-star.mjs +3 -3
  259. package/fesm2022/primeng-icons-starfill.mjs +3 -3
  260. package/fesm2022/primeng-icons-thlarge.mjs +3 -3
  261. package/fesm2022/primeng-icons-times.mjs +3 -3
  262. package/fesm2022/primeng-icons-timescircle.mjs +3 -3
  263. package/fesm2022/primeng-icons-trash.mjs +3 -3
  264. package/fesm2022/primeng-icons-undo.mjs +3 -3
  265. package/fesm2022/primeng-icons-upload.mjs +3 -3
  266. package/fesm2022/primeng-icons-windowmaximize.mjs +3 -3
  267. package/fesm2022/primeng-icons-windowminimize.mjs +3 -3
  268. package/fesm2022/primeng-image.mjs +9 -9
  269. package/fesm2022/primeng-image.mjs.map +1 -1
  270. package/fesm2022/primeng-inplace.mjs +13 -13
  271. package/fesm2022/primeng-inputmask.mjs +7 -7
  272. package/fesm2022/primeng-inputnumber.mjs +7 -7
  273. package/fesm2022/primeng-inputswitch.mjs +7 -7
  274. package/fesm2022/primeng-inputtext.mjs +7 -7
  275. package/fesm2022/primeng-inputtextarea.mjs +7 -7
  276. package/fesm2022/primeng-keyfilter.mjs +7 -7
  277. package/fesm2022/primeng-knob.mjs +7 -7
  278. package/fesm2022/primeng-listbox.mjs +50 -16
  279. package/fesm2022/primeng-listbox.mjs.map +1 -1
  280. package/fesm2022/primeng-megamenu.mjs +11 -13
  281. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  282. package/fesm2022/primeng-menu.mjs +13 -13
  283. package/fesm2022/primeng-menubar.mjs +14 -14
  284. package/fesm2022/primeng-menubar.mjs.map +1 -1
  285. package/fesm2022/primeng-message.mjs +7 -7
  286. package/fesm2022/primeng-messages.mjs +9 -9
  287. package/fesm2022/primeng-messages.mjs.map +1 -1
  288. package/fesm2022/primeng-multiselect.mjs +93 -39
  289. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  290. package/fesm2022/primeng-orderlist.mjs +299 -103
  291. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  292. package/fesm2022/primeng-organizationchart.mjs +52 -50
  293. package/fesm2022/primeng-organizationchart.mjs.map +1 -1
  294. package/fesm2022/primeng-overlay.mjs +15 -12
  295. package/fesm2022/primeng-overlay.mjs.map +1 -1
  296. package/fesm2022/primeng-overlaypanel.mjs +7 -7
  297. package/fesm2022/primeng-paginator.mjs +79 -27
  298. package/fesm2022/primeng-paginator.mjs.map +1 -1
  299. package/fesm2022/primeng-panel.mjs +9 -7
  300. package/fesm2022/primeng-panel.mjs.map +1 -1
  301. package/fesm2022/primeng-panelmenu.mjs +13 -13
  302. package/fesm2022/primeng-password.mjs +13 -13
  303. package/fesm2022/primeng-picklist.mjs +324 -121
  304. package/fesm2022/primeng-picklist.mjs.map +1 -1
  305. package/fesm2022/primeng-progressbar.mjs +7 -7
  306. package/fesm2022/primeng-progressspinner.mjs +7 -7
  307. package/fesm2022/primeng-radiobutton.mjs +10 -10
  308. package/fesm2022/primeng-rating.mjs +7 -7
  309. package/fesm2022/primeng-ripple.mjs +7 -7
  310. package/fesm2022/primeng-scroller.mjs +19 -15
  311. package/fesm2022/primeng-scroller.mjs.map +1 -1
  312. package/fesm2022/primeng-scrollpanel.mjs +7 -7
  313. package/fesm2022/primeng-scrolltop.mjs +7 -7
  314. package/fesm2022/primeng-selectbutton.mjs +10 -7
  315. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  316. package/fesm2022/primeng-sidebar.mjs +16 -7
  317. package/fesm2022/primeng-sidebar.mjs.map +1 -1
  318. package/fesm2022/primeng-skeleton.mjs +7 -7
  319. package/fesm2022/primeng-slidemenu.mjs +10 -10
  320. package/fesm2022/primeng-slider.mjs +7 -7
  321. package/fesm2022/primeng-speeddial.mjs +7 -7
  322. package/fesm2022/primeng-spinner.mjs +7 -7
  323. package/fesm2022/primeng-splitbutton.mjs +8 -7
  324. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  325. package/fesm2022/primeng-splitter.mjs +7 -7
  326. package/fesm2022/primeng-steps.mjs +7 -7
  327. package/fesm2022/primeng-styleclass.mjs +7 -7
  328. package/fesm2022/primeng-table.mjs +279 -146
  329. package/fesm2022/primeng-table.mjs.map +1 -1
  330. package/fesm2022/primeng-tabmenu.mjs +7 -7
  331. package/fesm2022/primeng-tabview.mjs +10 -10
  332. package/fesm2022/primeng-tag.mjs +7 -7
  333. package/fesm2022/primeng-terminal.mjs +10 -10
  334. package/fesm2022/primeng-tieredmenu.mjs +10 -10
  335. package/fesm2022/primeng-timeline.mjs +25 -21
  336. package/fesm2022/primeng-timeline.mjs.map +1 -1
  337. package/fesm2022/primeng-toast.mjs +36 -17
  338. package/fesm2022/primeng-toast.mjs.map +1 -1
  339. package/fesm2022/primeng-togglebutton.mjs +7 -7
  340. package/fesm2022/primeng-toolbar.mjs +7 -7
  341. package/fesm2022/primeng-tooltip.mjs +8 -8
  342. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  343. package/fesm2022/primeng-tree.mjs +171 -91
  344. package/fesm2022/primeng-tree.mjs.map +1 -1
  345. package/fesm2022/primeng-treeselect.mjs +133 -36
  346. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  347. package/fesm2022/primeng-treetable.mjs +241 -127
  348. package/fesm2022/primeng-treetable.mjs.map +1 -1
  349. package/fesm2022/primeng-tristatecheckbox.mjs +11 -11
  350. package/fesm2022/primeng-tristatecheckbox.mjs.map +1 -1
  351. package/fesm2022/primeng-virtualscroller.mjs +13 -13
  352. package/fesm2022/primeng-virtualscroller.mjs.map +1 -1
  353. package/listbox/listbox.d.ts +19 -2
  354. package/listbox/listbox.interface.d.ts +15 -0
  355. package/multiselect/multiselect.d.ts +29 -5
  356. package/multiselect/multiselect.interface.d.ts +15 -0
  357. package/orderlist/orderlist.d.ts +43 -7
  358. package/organizationchart/organizationchart.d.ts +3 -4
  359. package/overlay/overlay.d.ts +3 -2
  360. package/package.json +156 -156
  361. package/paginator/paginator.d.ts +3 -3
  362. package/picklist/picklist.d.ts +9 -4
  363. package/resources/components/messages/messages.css +1 -0
  364. package/resources/components/toast/toast.css +1 -0
  365. package/resources/components/tristatecheckbox/tristatecheckbox.css +5 -0
  366. package/resources/themes/arya-blue/theme.css +37 -15
  367. package/resources/themes/arya-green/theme.css +37 -15
  368. package/resources/themes/arya-orange/theme.css +37 -15
  369. package/resources/themes/arya-purple/theme.css +37 -15
  370. package/resources/themes/bootstrap4-dark-blue/theme.css +37 -15
  371. package/resources/themes/bootstrap4-dark-purple/theme.css +37 -15
  372. package/resources/themes/bootstrap4-light-blue/theme.css +37 -15
  373. package/resources/themes/bootstrap4-light-purple/theme.css +37 -15
  374. package/resources/themes/fluent-light/theme.css +37 -15
  375. package/resources/themes/lara-dark-blue/theme.css +37 -15
  376. package/resources/themes/lara-dark-indigo/theme.css +37 -15
  377. package/resources/themes/lara-dark-purple/theme.css +37 -15
  378. package/resources/themes/lara-dark-teal/theme.css +37 -15
  379. package/resources/themes/lara-light-blue/theme.css +37 -15
  380. package/resources/themes/lara-light-indigo/theme.css +37 -15
  381. package/resources/themes/lara-light-purple/theme.css +37 -15
  382. package/resources/themes/lara-light-teal/theme.css +37 -15
  383. package/resources/themes/luna-amber/theme.css +37 -15
  384. package/resources/themes/luna-blue/theme.css +37 -15
  385. package/resources/themes/luna-green/theme.css +37 -15
  386. package/resources/themes/luna-pink/theme.css +37 -15
  387. package/resources/themes/md-dark-deeppurple/theme.css +37 -15
  388. package/resources/themes/md-dark-indigo/theme.css +37 -15
  389. package/resources/themes/md-light-deeppurple/theme.css +37 -15
  390. package/resources/themes/md-light-indigo/theme.css +37 -15
  391. package/resources/themes/mdc-dark-deeppurple/theme.css +37 -15
  392. package/resources/themes/mdc-dark-indigo/theme.css +37 -15
  393. package/resources/themes/mdc-light-deeppurple/theme.css +37 -15
  394. package/resources/themes/mdc-light-indigo/theme.css +37 -15
  395. package/resources/themes/mira/theme.css +37 -15
  396. package/resources/themes/nano/theme.css +37 -15
  397. package/resources/themes/nova/theme.css +37 -15
  398. package/resources/themes/nova-accent/theme.css +37 -15
  399. package/resources/themes/nova-alt/theme.css +37 -15
  400. package/resources/themes/rhea/theme.css +37 -15
  401. package/resources/themes/saga-blue/theme.css +37 -15
  402. package/resources/themes/saga-green/theme.css +37 -15
  403. package/resources/themes/saga-orange/theme.css +37 -15
  404. package/resources/themes/saga-purple/theme.css +37 -15
  405. package/resources/themes/soho-dark/theme.css +37 -15
  406. package/resources/themes/soho-light/theme.css +37 -15
  407. package/resources/themes/tailwind-light/theme.css +37 -15
  408. package/resources/themes/vela-blue/theme.css +37 -15
  409. package/resources/themes/vela-green/theme.css +37 -15
  410. package/resources/themes/vela-orange/theme.css +37 -15
  411. package/resources/themes/vela-purple/theme.css +37 -15
  412. package/resources/themes/viva-dark/theme.css +37 -15
  413. package/resources/themes/viva-light/theme.css +37 -15
  414. package/scroller/scroller.d.ts +2 -3
  415. package/sidebar/sidebar.d.ts +3 -2
  416. package/table/table.d.ts +22 -10
  417. package/timeline/timeline.d.ts +1 -1
  418. package/toast/toast.d.ts +4 -2
  419. package/toast/toast.interface.d.ts +1 -0
  420. package/tree/tree.d.ts +12 -1
  421. package/treeselect/treeselect.d.ts +14 -1
  422. package/treetable/treetable.d.ts +16 -2
  423. package/virtualscroller/virtualscroller.d.ts +1 -2
@@ -68,10 +68,10 @@ class TableService {
68
68
  onColumnsChange(columns) {
69
69
  this.columnsSource.next(columns);
70
70
  }
71
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TableService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
72
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TableService });
71
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TableService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
72
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TableService });
73
73
  }
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TableService, decorators: [{
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TableService, decorators: [{
75
75
  type: Injectable
76
76
  }] });
77
77
  /**
@@ -88,6 +88,7 @@ class Table {
88
88
  cd;
89
89
  filterService;
90
90
  overlayService;
91
+ config;
91
92
  /**
92
93
  * An array of objects to represent dynamic columns that are frozen.
93
94
  * @group Props
@@ -812,7 +813,7 @@ class Table {
812
813
  styleElement;
813
814
  responsiveStyleElement;
814
815
  window;
815
- constructor(document, platformId, renderer, el, zone, tableService, cd, filterService, overlayService) {
816
+ constructor(document, platformId, renderer, el, zone, tableService, cd, filterService, overlayService, config) {
816
817
  this.document = document;
817
818
  this.platformId = platformId;
818
819
  this.renderer = renderer;
@@ -822,6 +823,7 @@ class Table {
822
823
  this.cd = cd;
823
824
  this.filterService = filterService;
824
825
  this.overlayService = overlayService;
826
+ this.config = config;
825
827
  this.window = this.document.defaultView;
826
828
  }
827
829
  ngOnInit() {
@@ -2455,8 +2457,8 @@ class Table {
2455
2457
  this.destroyStyleElement();
2456
2458
  this.destroyResponsiveStyle();
2457
2459
  }
2458
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: Table, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: TableService }, { token: i0.ChangeDetectorRef }, { token: i1.FilterService }, { token: i1.OverlayService }], target: i0.ɵɵFactoryTarget.Component });
2459
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: Table, selector: "p-table", inputs: { frozenColumns: "frozenColumns", frozenValue: "frozenValue", style: "style", styleClass: "styleClass", tableStyle: "tableStyle", tableStyleClass: "tableStyleClass", paginator: "paginator", pageLinks: "pageLinks", rowsPerPageOptions: "rowsPerPageOptions", alwaysShowPaginator: "alwaysShowPaginator", paginatorPosition: "paginatorPosition", paginatorStyleClass: "paginatorStyleClass", paginatorDropdownAppendTo: "paginatorDropdownAppendTo", paginatorDropdownScrollHeight: "paginatorDropdownScrollHeight", currentPageReportTemplate: "currentPageReportTemplate", showCurrentPageReport: "showCurrentPageReport", showJumpToPageDropdown: "showJumpToPageDropdown", showJumpToPageInput: "showJumpToPageInput", showFirstLastIcon: "showFirstLastIcon", showPageLinks: "showPageLinks", defaultSortOrder: "defaultSortOrder", sortMode: "sortMode", resetPageOnSort: "resetPageOnSort", selectionMode: "selectionMode", selectionPageOnly: "selectionPageOnly", contextMenuSelection: "contextMenuSelection", contextMenuSelectionMode: "contextMenuSelectionMode", dataKey: "dataKey", metaKeySelection: "metaKeySelection", rowSelectable: "rowSelectable", rowTrackBy: "rowTrackBy", lazy: "lazy", lazyLoadOnInit: "lazyLoadOnInit", compareSelectionBy: "compareSelectionBy", csvSeparator: "csvSeparator", exportFilename: "exportFilename", filters: "filters", globalFilterFields: "globalFilterFields", filterDelay: "filterDelay", filterLocale: "filterLocale", expandedRowKeys: "expandedRowKeys", editingRowKeys: "editingRowKeys", rowExpandMode: "rowExpandMode", scrollable: "scrollable", scrollDirection: "scrollDirection", rowGroupMode: "rowGroupMode", scrollHeight: "scrollHeight", virtualScroll: "virtualScroll", virtualScrollItemSize: "virtualScrollItemSize", virtualScrollOptions: "virtualScrollOptions", virtualScrollDelay: "virtualScrollDelay", frozenWidth: "frozenWidth", responsive: "responsive", contextMenu: "contextMenu", resizableColumns: "resizableColumns", columnResizeMode: "columnResizeMode", reorderableColumns: "reorderableColumns", loading: "loading", loadingIcon: "loadingIcon", showLoader: "showLoader", rowHover: "rowHover", customSort: "customSort", showInitialSortBadge: "showInitialSortBadge", autoLayout: "autoLayout", exportFunction: "exportFunction", exportHeader: "exportHeader", stateKey: "stateKey", stateStorage: "stateStorage", editMode: "editMode", groupRowsBy: "groupRowsBy", groupRowsByOrder: "groupRowsByOrder", responsiveLayout: "responsiveLayout", breakpoint: "breakpoint", paginatorLocale: "paginatorLocale", value: "value", columns: "columns", first: "first", rows: "rows", totalRecords: "totalRecords", sortField: "sortField", sortOrder: "sortOrder", multiSortMeta: "multiSortMeta", selection: "selection", selectAll: "selectAll", virtualRowHeight: "virtualRowHeight" }, outputs: { contextMenuSelectionChange: "contextMenuSelectionChange", selectAllChange: "selectAllChange", selectionChange: "selectionChange", onRowSelect: "onRowSelect", onRowUnselect: "onRowUnselect", onPage: "onPage", onSort: "onSort", onFilter: "onFilter", onLazyLoad: "onLazyLoad", onRowExpand: "onRowExpand", onRowCollapse: "onRowCollapse", onContextMenuSelect: "onContextMenuSelect", onColResize: "onColResize", onColReorder: "onColReorder", onRowReorder: "onRowReorder", onEditInit: "onEditInit", onEditComplete: "onEditComplete", onEditCancel: "onEditCancel", onHeaderCheckboxToggle: "onHeaderCheckboxToggle", sortFunction: "sortFunction", firstChange: "firstChange", rowsChange: "rowsChange", onStateSave: "onStateSave", onStateRestore: "onStateRestore" }, host: { classAttribute: "p-element" }, providers: [TableService], queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "containerViewChild", first: true, predicate: ["container"], descendants: true }, { propertyName: "resizeHelperViewChild", first: true, predicate: ["resizeHelper"], descendants: true }, { propertyName: "reorderIndicatorUpViewChild", first: true, predicate: ["reorderIndicatorUp"], descendants: true }, { propertyName: "reorderIndicatorDownViewChild", first: true, predicate: ["reorderIndicatorDown"], descendants: true }, { propertyName: "wrapperViewChild", first: true, predicate: ["wrapper"], descendants: true }, { propertyName: "tableViewChild", first: true, predicate: ["table"], descendants: true }, { propertyName: "tableHeaderViewChild", first: true, predicate: ["thead"], descendants: true }, { propertyName: "tableFooterViewChild", first: true, predicate: ["tfoot"], descendants: true }, { propertyName: "scroller", first: true, predicate: ["scroller"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
2460
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: Table, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: TableService }, { token: i0.ChangeDetectorRef }, { token: i1.FilterService }, { token: i1.OverlayService }, { token: i1.PrimeNGConfig }], target: i0.ɵɵFactoryTarget.Component });
2461
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: Table, selector: "p-table", inputs: { frozenColumns: "frozenColumns", frozenValue: "frozenValue", style: "style", styleClass: "styleClass", tableStyle: "tableStyle", tableStyleClass: "tableStyleClass", paginator: "paginator", pageLinks: "pageLinks", rowsPerPageOptions: "rowsPerPageOptions", alwaysShowPaginator: "alwaysShowPaginator", paginatorPosition: "paginatorPosition", paginatorStyleClass: "paginatorStyleClass", paginatorDropdownAppendTo: "paginatorDropdownAppendTo", paginatorDropdownScrollHeight: "paginatorDropdownScrollHeight", currentPageReportTemplate: "currentPageReportTemplate", showCurrentPageReport: "showCurrentPageReport", showJumpToPageDropdown: "showJumpToPageDropdown", showJumpToPageInput: "showJumpToPageInput", showFirstLastIcon: "showFirstLastIcon", showPageLinks: "showPageLinks", defaultSortOrder: "defaultSortOrder", sortMode: "sortMode", resetPageOnSort: "resetPageOnSort", selectionMode: "selectionMode", selectionPageOnly: "selectionPageOnly", contextMenuSelection: "contextMenuSelection", contextMenuSelectionMode: "contextMenuSelectionMode", dataKey: "dataKey", metaKeySelection: "metaKeySelection", rowSelectable: "rowSelectable", rowTrackBy: "rowTrackBy", lazy: "lazy", lazyLoadOnInit: "lazyLoadOnInit", compareSelectionBy: "compareSelectionBy", csvSeparator: "csvSeparator", exportFilename: "exportFilename", filters: "filters", globalFilterFields: "globalFilterFields", filterDelay: "filterDelay", filterLocale: "filterLocale", expandedRowKeys: "expandedRowKeys", editingRowKeys: "editingRowKeys", rowExpandMode: "rowExpandMode", scrollable: "scrollable", scrollDirection: "scrollDirection", rowGroupMode: "rowGroupMode", scrollHeight: "scrollHeight", virtualScroll: "virtualScroll", virtualScrollItemSize: "virtualScrollItemSize", virtualScrollOptions: "virtualScrollOptions", virtualScrollDelay: "virtualScrollDelay", frozenWidth: "frozenWidth", responsive: "responsive", contextMenu: "contextMenu", resizableColumns: "resizableColumns", columnResizeMode: "columnResizeMode", reorderableColumns: "reorderableColumns", loading: "loading", loadingIcon: "loadingIcon", showLoader: "showLoader", rowHover: "rowHover", customSort: "customSort", showInitialSortBadge: "showInitialSortBadge", autoLayout: "autoLayout", exportFunction: "exportFunction", exportHeader: "exportHeader", stateKey: "stateKey", stateStorage: "stateStorage", editMode: "editMode", groupRowsBy: "groupRowsBy", groupRowsByOrder: "groupRowsByOrder", responsiveLayout: "responsiveLayout", breakpoint: "breakpoint", paginatorLocale: "paginatorLocale", value: "value", columns: "columns", first: "first", rows: "rows", totalRecords: "totalRecords", sortField: "sortField", sortOrder: "sortOrder", multiSortMeta: "multiSortMeta", selection: "selection", selectAll: "selectAll", virtualRowHeight: "virtualRowHeight" }, outputs: { contextMenuSelectionChange: "contextMenuSelectionChange", selectAllChange: "selectAllChange", selectionChange: "selectionChange", onRowSelect: "onRowSelect", onRowUnselect: "onRowUnselect", onPage: "onPage", onSort: "onSort", onFilter: "onFilter", onLazyLoad: "onLazyLoad", onRowExpand: "onRowExpand", onRowCollapse: "onRowCollapse", onContextMenuSelect: "onContextMenuSelect", onColResize: "onColResize", onColReorder: "onColReorder", onRowReorder: "onRowReorder", onEditInit: "onEditInit", onEditComplete: "onEditComplete", onEditCancel: "onEditCancel", onHeaderCheckboxToggle: "onHeaderCheckboxToggle", sortFunction: "sortFunction", firstChange: "firstChange", rowsChange: "rowsChange", onStateSave: "onStateSave", onStateRestore: "onStateRestore" }, host: { classAttribute: "p-element" }, providers: [TableService], queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "containerViewChild", first: true, predicate: ["container"], descendants: true }, { propertyName: "resizeHelperViewChild", first: true, predicate: ["resizeHelper"], descendants: true }, { propertyName: "reorderIndicatorUpViewChild", first: true, predicate: ["reorderIndicatorUp"], descendants: true }, { propertyName: "reorderIndicatorDownViewChild", first: true, predicate: ["reorderIndicatorDown"], descendants: true }, { propertyName: "wrapperViewChild", first: true, predicate: ["wrapper"], descendants: true }, { propertyName: "tableViewChild", first: true, predicate: ["table"], descendants: true }, { propertyName: "tableHeaderViewChild", first: true, predicate: ["thead"], descendants: true }, { propertyName: "tableFooterViewChild", first: true, predicate: ["tfoot"], descendants: true }, { propertyName: "scroller", first: true, predicate: ["scroller"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
2460
2462
  <div
2461
2463
  #container
2462
2464
  [ngStyle]="style"
@@ -2555,10 +2557,11 @@ class Table {
2555
2557
  [attr.id]="id + '-table'"
2556
2558
  >
2557
2559
  <ng-container *ngTemplateOutlet="colGroupTemplate; context: { $implicit: scrollerOptions.columns }"></ng-container>
2558
- <thead #thead class="p-datatable-thead">
2560
+ <thead role="rowgroup" #thead class="p-datatable-thead">
2559
2561
  <ng-container *ngTemplateOutlet="headerGroupedTemplate || headerTemplate; context: { $implicit: scrollerOptions.columns }"></ng-container>
2560
2562
  </thead>
2561
2563
  <tbody
2564
+ role="rowgroup"
2562
2565
  class="p-datatable-tbody p-datatable-frozen-tbody"
2563
2566
  *ngIf="frozenValue || frozenBodyTemplate"
2564
2567
  [value]="frozenValue"
@@ -2568,6 +2571,7 @@ class Table {
2568
2571
  [frozen]="true"
2569
2572
  ></tbody>
2570
2573
  <tbody
2574
+ role="rowgroup"
2571
2575
  class="p-datatable-tbody"
2572
2576
  [ngClass]="scrollerOptions.contentStyleClass"
2573
2577
  [style]="scrollerOptions.contentStyle"
@@ -2576,8 +2580,13 @@ class Table {
2576
2580
  [pTableBodyTemplate]="bodyTemplate"
2577
2581
  [scrollerOptions]="scrollerOptions"
2578
2582
  ></tbody>
2579
- <tbody *ngIf="scrollerOptions.spacerStyle" [style]="'height: calc(' + scrollerOptions.spacerStyle.height + ' - ' + scrollerOptions.rows.length * scrollerOptions.itemSize + 'px);'" class="p-datatable-scroller-spacer"></tbody>
2580
- <tfoot *ngIf="footerGroupedTemplate || footerTemplate" #tfoot class="p-datatable-tfoot">
2583
+ <tbody
2584
+ role="rowgroup"
2585
+ *ngIf="scrollerOptions.spacerStyle"
2586
+ [style]="'height: calc(' + scrollerOptions.spacerStyle.height + ' - ' + scrollerOptions.rows.length * scrollerOptions.itemSize + 'px);'"
2587
+ class="p-datatable-scroller-spacer"
2588
+ ></tbody>
2589
+ <tfoot role="rowgroup" *ngIf="footerGroupedTemplate || footerTemplate" #tfoot class="p-datatable-tfoot">
2581
2590
  <ng-container *ngTemplateOutlet="footerGroupedTemplate || footerTemplate; context: { $implicit: scrollerOptions.columns }"></ng-container>
2582
2591
  </tfoot>
2583
2592
  </table>
@@ -2641,7 +2650,7 @@ class Table {
2641
2650
  </div>
2642
2651
  `, isInline: true, styles: ["@layer primeng{.p-datatable{position:relative}.p-datatable>.p-datatable-wrapper{overflow:auto}.p-datatable-table{border-spacing:0px;width:100%}.p-datatable .p-sortable-column{cursor:pointer;-webkit-user-select:none;user-select:none}.p-datatable .p-sortable-column .p-column-title,.p-datatable .p-sortable-column .p-sortable-column-icon,.p-datatable .p-sortable-column .p-sortable-column-badge{vertical-align:middle}.p-datatable .p-sortable-column .p-icon-wrapper{display:inline}.p-datatable .p-sortable-column .p-sortable-column-badge{display:inline-flex;align-items:center;justify-content:center}.p-datatable-hoverable-rows .p-selectable-row{cursor:pointer}.p-datatable-scrollable>.p-datatable-wrapper{position:relative}.p-datatable-scrollable-table>.p-datatable-thead{position:sticky;top:0;z-index:1}.p-datatable-scrollable-table>.p-datatable-frozen-tbody{position:sticky;z-index:1}.p-datatable-scrollable-table>.p-datatable-tfoot{position:sticky;bottom:0;z-index:1}.p-datatable-scrollable .p-frozen-column{position:sticky;background:inherit;z-index:1}.p-datatable-scrollable th.p-frozen-column{z-index:1}.p-datatable-flex-scrollable{display:flex;flex-direction:column;height:100%}.p-datatable-flex-scrollable>.p-datatable-wrapper{display:flex;flex-direction:column;flex:1;height:100%}.p-datatable-scrollable-table>.p-datatable-tbody>.p-rowgroup-header{position:sticky;z-index:1}.p-datatable-resizable-table>.p-datatable-thead>tr>th,.p-datatable-resizable-table>.p-datatable-tfoot>tr>td,.p-datatable-resizable-table>.p-datatable-tbody>tr>td{overflow:hidden;white-space:nowrap}.p-datatable-resizable-table>.p-datatable-thead>tr>th.p-resizable-column:not(.p-frozen-column){background-clip:padding-box;position:relative}.p-datatable-resizable-table-fit>.p-datatable-thead>tr>th.p-resizable-column:last-child .p-column-resizer{display:none}.p-datatable .p-column-resizer{display:block;position:absolute!important;top:0;right:0;margin:0;width:.5rem;height:100%;padding:0;cursor:col-resize;border:1px solid transparent}.p-datatable .p-column-resizer-helper{width:1px;position:absolute;z-index:10;display:none}.p-datatable .p-row-editor-init,.p-datatable .p-row-editor-save,.p-datatable .p-row-editor-cancel,.p-datatable .p-row-toggler{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-datatable-reorder-indicator-up,.p-datatable-reorder-indicator-down{position:absolute}.p-datatable-reorderablerow-handle,[pReorderableColumn]{cursor:move}.p-datatable .p-datatable-loading-overlay{position:absolute;display:flex;align-items:center;justify-content:center;z-index:2}.p-column-filter-row{display:flex;align-items:center;width:100%}.p-column-filter-menu{display:inline-flex}.p-column-filter-row p-columnfilterformelement{flex:1 1 auto;width:1%}.p-column-filter-menu-button,.p-column-filter-clear-button{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;text-decoration:none;overflow:hidden;position:relative}.p-column-filter-overlay{position:absolute;top:0;left:0}.p-column-filter-row-items{margin:0;padding:0;list-style:none}.p-column-filter-row-item{cursor:pointer}.p-column-filter-add-button,.p-column-filter-remove-button{justify-content:center}.p-column-filter-add-button .p-button-label,.p-column-filter-remove-button .p-button-label{flex-grow:0}.p-column-filter-buttonbar{display:flex;align-items:center;justify-content:space-between}.p-column-filter-buttonbar .p-button{width:auto}.p-datatable-tbody>tr>td>.p-column-title{display:none}.p-datatable-scroller-spacer{display:flex}.p-datatable .p-scroller .p-scroller-loading{transform:none!important;min-height:0;position:sticky;top:0;left:0}}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i2.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgStyle; }), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i0.forwardRef(function () { return i3.Paginator; }), selector: "p-paginator", inputs: ["pageLinkSize", "style", "styleClass", "alwaysShow", "dropdownAppendTo", "templateLeft", "templateRight", "appendTo", "dropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showFirstLastIcon", "totalRecords", "rows", "rowsPerPageOptions", "showJumpToPageDropdown", "showJumpToPageInput", "showPageLinks", "locale", "dropdownItemTemplate", "first"], outputs: ["onPageChange"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.PrimeTemplate; }), selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i0.forwardRef(function () { return i4.Scroller; }), selector: "p-scroller", inputs: ["id", "style", "styleClass", "tabindex", "items", "itemSize", "scrollHeight", "scrollWidth", "orientation", "step", "delay", "resizeDelay", "appendOnly", "inline", "lazy", "disabled", "loaderDisabled", "columns", "showSpacer", "showLoader", "numToleratedItems", "loading", "autoSize", "trackBy", "options"], outputs: ["onLazyLoad", "onScroll", "onScrollIndexChange"] }, { kind: "component", type: i0.forwardRef(function () { return ArrowDownIcon; }), selector: "ArrowDownIcon" }, { kind: "component", type: i0.forwardRef(function () { return ArrowUpIcon; }), selector: "ArrowUpIcon" }, { kind: "component", type: i0.forwardRef(function () { return SpinnerIcon; }), selector: "SpinnerIcon" }, { kind: "component", type: i0.forwardRef(function () { return TableBody; }), selector: "[pTableBody]", inputs: ["pTableBody", "pTableBodyTemplate", "value", "frozen", "frozenRows", "scrollerOptions"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
2643
2652
  }
2644
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: Table, decorators: [{
2653
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: Table, decorators: [{
2645
2654
  type: Component,
2646
2655
  args: [{ selector: 'p-table', template: `
2647
2656
  <div
@@ -2742,10 +2751,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
2742
2751
  [attr.id]="id + '-table'"
2743
2752
  >
2744
2753
  <ng-container *ngTemplateOutlet="colGroupTemplate; context: { $implicit: scrollerOptions.columns }"></ng-container>
2745
- <thead #thead class="p-datatable-thead">
2754
+ <thead role="rowgroup" #thead class="p-datatable-thead">
2746
2755
  <ng-container *ngTemplateOutlet="headerGroupedTemplate || headerTemplate; context: { $implicit: scrollerOptions.columns }"></ng-container>
2747
2756
  </thead>
2748
2757
  <tbody
2758
+ role="rowgroup"
2749
2759
  class="p-datatable-tbody p-datatable-frozen-tbody"
2750
2760
  *ngIf="frozenValue || frozenBodyTemplate"
2751
2761
  [value]="frozenValue"
@@ -2755,6 +2765,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
2755
2765
  [frozen]="true"
2756
2766
  ></tbody>
2757
2767
  <tbody
2768
+ role="rowgroup"
2758
2769
  class="p-datatable-tbody"
2759
2770
  [ngClass]="scrollerOptions.contentStyleClass"
2760
2771
  [style]="scrollerOptions.contentStyle"
@@ -2763,8 +2774,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
2763
2774
  [pTableBodyTemplate]="bodyTemplate"
2764
2775
  [scrollerOptions]="scrollerOptions"
2765
2776
  ></tbody>
2766
- <tbody *ngIf="scrollerOptions.spacerStyle" [style]="'height: calc(' + scrollerOptions.spacerStyle.height + ' - ' + scrollerOptions.rows.length * scrollerOptions.itemSize + 'px);'" class="p-datatable-scroller-spacer"></tbody>
2767
- <tfoot *ngIf="footerGroupedTemplate || footerTemplate" #tfoot class="p-datatable-tfoot">
2777
+ <tbody
2778
+ role="rowgroup"
2779
+ *ngIf="scrollerOptions.spacerStyle"
2780
+ [style]="'height: calc(' + scrollerOptions.spacerStyle.height + ' - ' + scrollerOptions.rows.length * scrollerOptions.itemSize + 'px);'"
2781
+ class="p-datatable-scroller-spacer"
2782
+ ></tbody>
2783
+ <tfoot role="rowgroup" *ngIf="footerGroupedTemplate || footerTemplate" #tfoot class="p-datatable-tfoot">
2768
2784
  <ng-container *ngTemplateOutlet="footerGroupedTemplate || footerTemplate; context: { $implicit: scrollerOptions.columns }"></ng-container>
2769
2785
  </tfoot>
2770
2786
  </table>
@@ -2835,7 +2851,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
2835
2851
  }] }, { type: undefined, decorators: [{
2836
2852
  type: Inject,
2837
2853
  args: [PLATFORM_ID]
2838
- }] }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: TableService }, { type: i0.ChangeDetectorRef }, { type: i1.FilterService }, { type: i1.OverlayService }]; }, propDecorators: { frozenColumns: [{
2854
+ }] }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: TableService }, { type: i0.ChangeDetectorRef }, { type: i1.FilterService }, { type: i1.OverlayService }, { type: i1.PrimeNGConfig }]; }, propDecorators: { frozenColumns: [{
2839
2855
  type: Input
2840
2856
  }], frozenValue: [{
2841
2857
  type: Input
@@ -3202,8 +3218,8 @@ class TableBody {
3202
3218
  const getItemOptions = this.getScrollerOption('getItemOptions');
3203
3219
  return getItemOptions ? getItemOptions(index).index : index;
3204
3220
  }
3205
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TableBody, deps: [{ token: Table }, { token: TableService }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
3206
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: TableBody, selector: "[pTableBody]", inputs: { columns: ["pTableBody", "columns"], template: ["pTableBodyTemplate", "template"], value: "value", frozen: "frozen", frozenRows: "frozenRows", scrollerOptions: "scrollerOptions" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
3221
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TableBody, deps: [{ token: Table }, { token: TableService }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
3222
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: TableBody, selector: "[pTableBody]", inputs: { columns: ["pTableBody", "columns"], template: ["pTableBodyTemplate", "template"], value: "value", frozen: "frozen", frozenRows: "frozenRows", scrollerOptions: "scrollerOptions" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
3207
3223
  <ng-container *ngIf="!dt.expandedRowTemplate">
3208
3224
  <ng-template ngFor let-rowData let-rowIndex="index" [ngForOf]="value" [ngForTrackBy]="dt.rowTrackBy">
3209
3225
  <ng-container *ngIf="dt.groupHeaderTemplate && !dt.virtualScroll && dt.rowGroupMode === 'subheader' && shouldRenderRowGroupHeader(value, rowData, rowIndex)" role="row">
@@ -3285,7 +3301,7 @@ class TableBody {
3285
3301
  </ng-container>
3286
3302
  `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
3287
3303
  }
3288
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TableBody, decorators: [{
3304
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TableBody, decorators: [{
3289
3305
  type: Component,
3290
3306
  args: [{
3291
3307
  selector: '[pTableBody]',
@@ -3399,10 +3415,10 @@ class RowGroupHeader {
3399
3415
  get getFrozenRowGroupHeaderStickyPosition() {
3400
3416
  return this.dt.rowGroupHeaderStyleObject ? this.dt.rowGroupHeaderStyleObject.top : '';
3401
3417
  }
3402
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: RowGroupHeader, deps: [{ token: Table }], target: i0.ɵɵFactoryTarget.Directive });
3403
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: RowGroupHeader, selector: "[pRowGroupHeader]", host: { properties: { "style.top": "getFrozenRowGroupHeaderStickyPosition" }, classAttribute: "p-rowgroup-header p-element" }, ngImport: i0 });
3418
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: RowGroupHeader, deps: [{ token: Table }], target: i0.ɵɵFactoryTarget.Directive });
3419
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: RowGroupHeader, selector: "[pRowGroupHeader]", host: { properties: { "style.top": "getFrozenRowGroupHeaderStickyPosition" }, classAttribute: "p-rowgroup-header p-element" }, ngImport: i0 });
3404
3420
  }
3405
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: RowGroupHeader, decorators: [{
3421
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: RowGroupHeader, decorators: [{
3406
3422
  type: Directive,
3407
3423
  args: [{
3408
3424
  selector: '[pRowGroupHeader]',
@@ -3459,10 +3475,10 @@ class FrozenColumn {
3459
3475
  }
3460
3476
  }
3461
3477
  }
3462
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: FrozenColumn, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
3463
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: FrozenColumn, selector: "[pFrozenColumn]", inputs: { frozen: "frozen", alignFrozen: "alignFrozen" }, host: { properties: { "class.p-frozen-column": "frozen" }, classAttribute: "p-element" }, ngImport: i0 });
3478
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: FrozenColumn, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
3479
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: FrozenColumn, selector: "[pFrozenColumn]", inputs: { frozen: "frozen", alignFrozen: "alignFrozen" }, host: { properties: { "class.p-frozen-column": "frozen" }, classAttribute: "p-element" }, ngImport: i0 });
3464
3480
  }
3465
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: FrozenColumn, decorators: [{
3481
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: FrozenColumn, decorators: [{
3466
3482
  type: Directive,
3467
3483
  args: [{
3468
3484
  selector: '[pFrozenColumn]',
@@ -3512,6 +3528,7 @@ class SortableColumn {
3512
3528
  }
3513
3529
  onEnterKey(event) {
3514
3530
  this.onClick(event);
3531
+ event.preventDefault();
3515
3532
  }
3516
3533
  isEnabled() {
3517
3534
  return this.pSortableColumnDisabled !== true;
@@ -3527,10 +3544,10 @@ class SortableColumn {
3527
3544
  this.subscription.unsubscribe();
3528
3545
  }
3529
3546
  }
3530
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: SortableColumn, deps: [{ token: Table }], target: i0.ɵɵFactoryTarget.Directive });
3531
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: SortableColumn, selector: "[pSortableColumn]", inputs: { field: ["pSortableColumn", "field"], pSortableColumnDisabled: "pSortableColumnDisabled" }, host: { listeners: { "click": "onClick($event)", "keydown.enter": "onEnterKey($event)" }, properties: { "class.p-sortable-column": "isEnabled()", "class.p-highlight": "sorted", "attr.tabindex": "isEnabled() ? \"0\" : null", "attr.role": "\"columnheader\"", "attr.aria-sort": "sortOrder" }, classAttribute: "p-element" }, ngImport: i0 });
3547
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: SortableColumn, deps: [{ token: Table }], target: i0.ɵɵFactoryTarget.Directive });
3548
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: SortableColumn, selector: "[pSortableColumn]", inputs: { field: ["pSortableColumn", "field"], pSortableColumnDisabled: "pSortableColumnDisabled" }, host: { listeners: { "click": "onClick($event)", "keydown.space": "onEnterKey($event)", "keydown.enter": "onEnterKey($event)" }, properties: { "class.p-sortable-column": "isEnabled()", "class.p-highlight": "sorted", "attr.tabindex": "isEnabled() ? \"0\" : null", "attr.role": "\"columnheader\"", "attr.aria-sort": "sortOrder" }, classAttribute: "p-element" }, ngImport: i0 });
3532
3549
  }
3533
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: SortableColumn, decorators: [{
3550
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: SortableColumn, decorators: [{
3534
3551
  type: Directive,
3535
3552
  args: [{
3536
3553
  selector: '[pSortableColumn]',
@@ -3552,6 +3569,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
3552
3569
  type: HostListener,
3553
3570
  args: ['click', ['$event']]
3554
3571
  }], onEnterKey: [{
3572
+ type: HostListener,
3573
+ args: ['keydown.space', ['$event']]
3574
+ }, {
3555
3575
  type: HostListener,
3556
3576
  args: ['keydown.enter', ['$event']]
3557
3577
  }] } });
@@ -3610,8 +3630,8 @@ class SortIcon {
3610
3630
  this.subscription.unsubscribe();
3611
3631
  }
3612
3632
  }
3613
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: SortIcon, deps: [{ token: Table }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
3614
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: SortIcon, selector: "p-sortIcon", inputs: { field: "field" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
3633
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: SortIcon, deps: [{ token: Table }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
3634
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: SortIcon, selector: "p-sortIcon", inputs: { field: "field" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
3615
3635
  <ng-container *ngIf="!dt.sortIconTemplate">
3616
3636
  <SortAltIcon [styleClass]="'p-sortable-column-icon'" *ngIf="sortOrder === 0" />
3617
3637
  <SortAmountUpAltIcon [styleClass]="'p-sortable-column-icon'" *ngIf="sortOrder === 1" />
@@ -3623,7 +3643,7 @@ class SortIcon {
3623
3643
  <span *ngIf="isMultiSorted()" class="p-sortable-column-badge">{{ getBadgeValue() }}</span>
3624
3644
  `, isInline: true, dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i2.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i0.forwardRef(function () { return SortAltIcon; }), selector: "SortAltIcon" }, { kind: "component", type: i0.forwardRef(function () { return SortAmountUpAltIcon; }), selector: "SortAmountUpAltIcon" }, { kind: "component", type: i0.forwardRef(function () { return SortAmountDownIcon; }), selector: "SortAmountDownIcon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
3625
3645
  }
3626
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: SortIcon, decorators: [{
3646
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: SortIcon, decorators: [{
3627
3647
  type: Component,
3628
3648
  args: [{
3629
3649
  selector: 'p-sortIcon',
@@ -3650,20 +3670,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
3650
3670
  class SelectableRow {
3651
3671
  dt;
3652
3672
  tableService;
3673
+ el;
3653
3674
  data;
3654
3675
  index;
3655
3676
  pSelectableRowDisabled;
3656
3677
  selected;
3657
3678
  subscription;
3658
- constructor(dt, tableService) {
3679
+ constructor(dt, tableService, el) {
3659
3680
  this.dt = dt;
3660
3681
  this.tableService = tableService;
3682
+ this.el = el;
3661
3683
  if (this.isEnabled()) {
3662
3684
  this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {
3663
3685
  this.selected = this.dt.isSelected(this.data);
3664
3686
  });
3665
3687
  }
3666
3688
  }
3689
+ setRowTabIndex() {
3690
+ if (this.dt.selectionMode === 'single' || this.dt.selectionMode === 'multiple') {
3691
+ return !this.dt.selection ? 0 : this.dt.anchorRowIndex === this.index ? 0 : -1;
3692
+ }
3693
+ }
3667
3694
  ngOnInit() {
3668
3695
  if (this.isEnabled()) {
3669
3696
  this.selected = this.dt.isSelected(this.data);
@@ -3683,7 +3710,37 @@ class SelectableRow {
3683
3710
  this.dt.handleRowTouchEnd(event);
3684
3711
  }
3685
3712
  }
3686
- onArrowDownKeyDown(event) {
3713
+ onKeyDown(event) {
3714
+ switch (event.code) {
3715
+ case 'ArrowDown':
3716
+ this.onArrowDownKey(event);
3717
+ break;
3718
+ case 'ArrowUp':
3719
+ this.onArrowUpKey(event);
3720
+ break;
3721
+ case 'Home':
3722
+ this.onHomeKey(event);
3723
+ break;
3724
+ case 'End':
3725
+ this.onEndKey(event);
3726
+ break;
3727
+ case 'Space':
3728
+ this.onSpaceKey(event);
3729
+ break;
3730
+ case 'Enter':
3731
+ this.onEnterKey(event);
3732
+ break;
3733
+ default:
3734
+ if (event.code === 'KeyA' && (event.metaKey || event.ctrlKey)) {
3735
+ const data = this.dt.dataToRender(this.dt.rows);
3736
+ this.dt.selection = [...data];
3737
+ this.dt.selectRange(event, data.length - 1);
3738
+ event.preventDefault();
3739
+ }
3740
+ break;
3741
+ }
3742
+ }
3743
+ onArrowDownKey(event) {
3687
3744
  if (!this.isEnabled()) {
3688
3745
  return;
3689
3746
  }
@@ -3694,7 +3751,7 @@ class SelectableRow {
3694
3751
  }
3695
3752
  event.preventDefault();
3696
3753
  }
3697
- onArrowUpKeyDown(event) {
3754
+ onArrowUpKey(event) {
3698
3755
  if (!this.isEnabled()) {
3699
3756
  return;
3700
3757
  }
@@ -3705,7 +3762,7 @@ class SelectableRow {
3705
3762
  }
3706
3763
  event.preventDefault();
3707
3764
  }
3708
- onEnterKeyDown(event) {
3765
+ onEnterKey(event) {
3709
3766
  if (!this.isEnabled()) {
3710
3767
  return;
3711
3768
  }
@@ -3715,15 +3772,62 @@ class SelectableRow {
3715
3772
  rowIndex: this.index
3716
3773
  });
3717
3774
  }
3718
- onPageDownKeyDown() {
3719
- if (this.dt.virtualScroll) {
3720
- this.dt.scroller.elementViewChild.nativeElement.focus();
3775
+ onEndKey(event) {
3776
+ const lastRow = this.findLastSelectableRow();
3777
+ lastRow && this.focusRowChange(this.el.nativeElement, lastRow);
3778
+ if (event.ctrlKey && event.shiftKey) {
3779
+ const data = this.dt.dataToRender(this.dt.rows);
3780
+ const lastSelectableRowIndex = DomHandler.getAttribute(lastRow, 'index');
3781
+ this.dt.anchorRowIndex = lastSelectableRowIndex;
3782
+ this.dt.selection = data.slice(this.index, data.length);
3783
+ this.dt.selectRange(event, this.index);
3721
3784
  }
3785
+ event.preventDefault();
3722
3786
  }
3723
- onSpaceKeydown() {
3724
- if (this.dt.virtualScroll && !this.dt.editingCell) {
3725
- this.dt.scroller.elementViewChild.nativeElement.focus();
3787
+ onHomeKey(event) {
3788
+ const firstRow = this.findFirstSelectableRow();
3789
+ firstRow && this.focusRowChange(this.el.nativeElement, firstRow);
3790
+ if (event.ctrlKey && event.shiftKey) {
3791
+ const data = this.dt.dataToRender(this.dt.rows);
3792
+ const firstSelectableRowIndex = DomHandler.getAttribute(firstRow, 'index');
3793
+ this.dt.anchorRowIndex = this.dt.anchorRowIndex || firstSelectableRowIndex;
3794
+ this.dt.selection = data.slice(0, this.index + 1);
3795
+ this.dt.selectRange(event, this.index);
3726
3796
  }
3797
+ event.preventDefault();
3798
+ }
3799
+ onSpaceKey(event) {
3800
+ this.onEnterKey(event);
3801
+ if (event.shiftKey && this.dt.selection !== null) {
3802
+ const data = this.dt.dataToRender(this.dt.rows);
3803
+ let index;
3804
+ if (ObjectUtils.isNotEmpty(this.dt.selection) && this.dt.selection.length > 0) {
3805
+ let firstSelectedRowIndex, lastSelectedRowIndex;
3806
+ firstSelectedRowIndex = ObjectUtils.findIndexInList(this.dt.selection[0], data);
3807
+ lastSelectedRowIndex = ObjectUtils.findIndexInList(this.dt.selection[this.dt.selection.length - 1], data);
3808
+ index = this.index <= firstSelectedRowIndex ? lastSelectedRowIndex : firstSelectedRowIndex;
3809
+ }
3810
+ else {
3811
+ index = ObjectUtils.findIndexInList(this.dt.selection, data);
3812
+ }
3813
+ this.dt.anchorRowIndex = index;
3814
+ this.dt.selection = index !== this.index ? data.slice(Math.min(index, this.index), Math.max(index, this.index) + 1) : [this.data];
3815
+ this.dt.selectRange(event, this.index);
3816
+ }
3817
+ event.preventDefault();
3818
+ }
3819
+ focusRowChange(firstFocusableRow, currentFocusedRow) {
3820
+ firstFocusableRow.tabIndex = '-1';
3821
+ currentFocusedRow.tabIndex = '0';
3822
+ DomHandler.focus(currentFocusedRow);
3823
+ }
3824
+ findLastSelectableRow() {
3825
+ const rows = DomHandler.find(this.dt.el.nativeElement, '.p-selectable-row');
3826
+ return rows ? rows[rows.length - 1] : null;
3827
+ }
3828
+ findFirstSelectableRow() {
3829
+ const firstRow = DomHandler.findSingle(this.dt.el.nativeElement, '.p-selectable-row');
3830
+ return firstRow;
3727
3831
  }
3728
3832
  findNextSelectableRow(row) {
3729
3833
  let nextRow = row.nextElementSibling;
@@ -3757,10 +3861,10 @@ class SelectableRow {
3757
3861
  this.subscription.unsubscribe();
3758
3862
  }
3759
3863
  }
3760
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: SelectableRow, deps: [{ token: Table }, { token: TableService }], target: i0.ɵɵFactoryTarget.Directive });
3761
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: SelectableRow, selector: "[pSelectableRow]", inputs: { data: ["pSelectableRow", "data"], index: ["pSelectableRowIndex", "index"], pSelectableRowDisabled: "pSelectableRowDisabled" }, host: { listeners: { "click": "onClick($event)", "touchend": "onTouchEnd($event)", "keydown.arrowdown": "onArrowDownKeyDown($event)", "keydown.arrowup": "onArrowUpKeyDown($event)", "keydown.enter": "onEnterKeyDown($event)", "keydown.shift.enter": "onEnterKeyDown($event)", "keydown.meta.enter": "onEnterKeyDown($event)", "keydown.pagedown": "onPageDownKeyDown()", "keydown.pageup": "onPageDownKeyDown()", "keydown.home": "onPageDownKeyDown()", "keydown.end": "onPageDownKeyDown()", "keydown.space": "onSpaceKeydown()" }, properties: { "class.p-selectable-row": "isEnabled()", "class.p-highlight": "selected", "attr.tabindex": "isEnabled() ? 0 : undefined" }, classAttribute: "p-element" }, ngImport: i0 });
3864
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: SelectableRow, deps: [{ token: Table }, { token: TableService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
3865
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: SelectableRow, selector: "[pSelectableRow]", inputs: { data: ["pSelectableRow", "data"], index: ["pSelectableRowIndex", "index"], pSelectableRowDisabled: "pSelectableRowDisabled" }, host: { listeners: { "click": "onClick($event)", "touchend": "onTouchEnd($event)", "keydown": "onKeyDown($event)" }, properties: { "class.p-selectable-row": "isEnabled()", "class.p-highlight": "selected", "attr.tabindex": "setRowTabIndex()", "attr.data-p-highlight": "selected", "attr.data-p-selectable-row": "true" }, classAttribute: "p-element" }, ngImport: i0 });
3762
3866
  }
3763
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: SelectableRow, decorators: [{
3867
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: SelectableRow, decorators: [{
3764
3868
  type: Directive,
3765
3869
  args: [{
3766
3870
  selector: '[pSelectableRow]',
@@ -3768,10 +3872,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
3768
3872
  class: 'p-element',
3769
3873
  '[class.p-selectable-row]': 'isEnabled()',
3770
3874
  '[class.p-highlight]': 'selected',
3771
- '[attr.tabindex]': 'isEnabled() ? 0 : undefined'
3875
+ '[attr.tabindex]': 'setRowTabIndex()',
3876
+ '[attr.data-p-highlight]': 'selected',
3877
+ '[attr.data-p-selectable-row]': 'true'
3772
3878
  }
3773
3879
  }]
3774
- }], ctorParameters: function () { return [{ type: Table }, { type: TableService }]; }, propDecorators: { data: [{
3880
+ }], ctorParameters: function () { return [{ type: Table }, { type: TableService }, { type: i0.ElementRef }]; }, propDecorators: { data: [{
3775
3881
  type: Input,
3776
3882
  args: ['pSelectableRow']
3777
3883
  }], index: [{
@@ -3785,36 +3891,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
3785
3891
  }], onTouchEnd: [{
3786
3892
  type: HostListener,
3787
3893
  args: ['touchend', ['$event']]
3788
- }], onArrowDownKeyDown: [{
3894
+ }], onKeyDown: [{
3789
3895
  type: HostListener,
3790
- args: ['keydown.arrowdown', ['$event']]
3791
- }], onArrowUpKeyDown: [{
3792
- type: HostListener,
3793
- args: ['keydown.arrowup', ['$event']]
3794
- }], onEnterKeyDown: [{
3795
- type: HostListener,
3796
- args: ['keydown.enter', ['$event']]
3797
- }, {
3798
- type: HostListener,
3799
- args: ['keydown.shift.enter', ['$event']]
3800
- }, {
3801
- type: HostListener,
3802
- args: ['keydown.meta.enter', ['$event']]
3803
- }], onPageDownKeyDown: [{
3804
- type: HostListener,
3805
- args: ['keydown.pagedown']
3806
- }, {
3807
- type: HostListener,
3808
- args: ['keydown.pageup']
3809
- }, {
3810
- type: HostListener,
3811
- args: ['keydown.home']
3812
- }, {
3813
- type: HostListener,
3814
- args: ['keydown.end']
3815
- }], onSpaceKeydown: [{
3816
- type: HostListener,
3817
- args: ['keydown.space']
3896
+ args: ['keydown', ['$event']]
3818
3897
  }] } });
3819
3898
  class SelectableRowDblClick {
3820
3899
  dt;
@@ -3855,10 +3934,10 @@ class SelectableRowDblClick {
3855
3934
  this.subscription.unsubscribe();
3856
3935
  }
3857
3936
  }
3858
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: SelectableRowDblClick, deps: [{ token: Table }, { token: TableService }], target: i0.ɵɵFactoryTarget.Directive });
3859
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: SelectableRowDblClick, selector: "[pSelectableRowDblClick]", inputs: { data: ["pSelectableRowDblClick", "data"], index: ["pSelectableRowIndex", "index"], pSelectableRowDisabled: "pSelectableRowDisabled" }, host: { listeners: { "dblclick": "onClick($event)" }, properties: { "class.p-selectable-row": "isEnabled()", "class.p-highlight": "selected" }, classAttribute: "p-element" }, ngImport: i0 });
3937
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: SelectableRowDblClick, deps: [{ token: Table }, { token: TableService }], target: i0.ɵɵFactoryTarget.Directive });
3938
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: SelectableRowDblClick, selector: "[pSelectableRowDblClick]", inputs: { data: ["pSelectableRowDblClick", "data"], index: ["pSelectableRowIndex", "index"], pSelectableRowDisabled: "pSelectableRowDisabled" }, host: { listeners: { "dblclick": "onClick($event)" }, properties: { "class.p-selectable-row": "isEnabled()", "class.p-highlight": "selected" }, classAttribute: "p-element" }, ngImport: i0 });
3860
3939
  }
3861
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: SelectableRowDblClick, decorators: [{
3940
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: SelectableRowDblClick, decorators: [{
3862
3941
  type: Directive,
3863
3942
  args: [{
3864
3943
  selector: '[pSelectableRowDblClick]',
@@ -3918,10 +3997,10 @@ class ContextMenuRow {
3918
3997
  this.subscription.unsubscribe();
3919
3998
  }
3920
3999
  }
3921
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ContextMenuRow, deps: [{ token: Table }, { token: TableService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
3922
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: ContextMenuRow, selector: "[pContextMenuRow]", inputs: { data: ["pContextMenuRow", "data"], index: ["pContextMenuRowIndex", "index"], pContextMenuRowDisabled: "pContextMenuRowDisabled" }, host: { listeners: { "contextmenu": "onContextMenu($event)" }, properties: { "class.p-highlight-contextmenu": "selected", "attr.tabindex": "isEnabled() ? 0 : undefined" }, classAttribute: "p-element" }, ngImport: i0 });
4000
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ContextMenuRow, deps: [{ token: Table }, { token: TableService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
4001
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: ContextMenuRow, selector: "[pContextMenuRow]", inputs: { data: ["pContextMenuRow", "data"], index: ["pContextMenuRowIndex", "index"], pContextMenuRowDisabled: "pContextMenuRowDisabled" }, host: { listeners: { "contextmenu": "onContextMenu($event)" }, properties: { "class.p-highlight-contextmenu": "selected", "attr.tabindex": "isEnabled() ? 0 : undefined" }, classAttribute: "p-element" }, ngImport: i0 });
3923
4002
  }
3924
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ContextMenuRow, decorators: [{
4003
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ContextMenuRow, decorators: [{
3925
4004
  type: Directive,
3926
4005
  args: [{
3927
4006
  selector: '[pContextMenuRow]',
@@ -3959,10 +4038,10 @@ class RowToggler {
3959
4038
  isEnabled() {
3960
4039
  return this.pRowTogglerDisabled !== true;
3961
4040
  }
3962
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: RowToggler, deps: [{ token: Table }], target: i0.ɵɵFactoryTarget.Directive });
3963
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: RowToggler, selector: "[pRowToggler]", inputs: { data: ["pRowToggler", "data"], pRowTogglerDisabled: "pRowTogglerDisabled" }, host: { listeners: { "click": "onClick($event)" }, classAttribute: "p-element" }, ngImport: i0 });
4041
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: RowToggler, deps: [{ token: Table }], target: i0.ɵɵFactoryTarget.Directive });
4042
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: RowToggler, selector: "[pRowToggler]", inputs: { data: ["pRowToggler", "data"], pRowTogglerDisabled: "pRowTogglerDisabled" }, host: { listeners: { "click": "onClick($event)" }, classAttribute: "p-element" }, ngImport: i0 });
3964
4043
  }
3965
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: RowToggler, decorators: [{
4044
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: RowToggler, decorators: [{
3966
4045
  type: Directive,
3967
4046
  args: [{
3968
4047
  selector: '[pRowToggler]',
@@ -4051,10 +4130,10 @@ class ResizableColumn {
4051
4130
  }
4052
4131
  this.unbindDocumentEvents();
4053
4132
  }
4054
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ResizableColumn, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }, { token: i0.Renderer2 }, { token: Table }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
4055
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: ResizableColumn, selector: "[pResizableColumn]", inputs: { pResizableColumnDisabled: "pResizableColumnDisabled" }, host: { classAttribute: "p-element" }, ngImport: i0 });
4133
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ResizableColumn, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }, { token: i0.Renderer2 }, { token: Table }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
4134
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: ResizableColumn, selector: "[pResizableColumn]", inputs: { pResizableColumnDisabled: "pResizableColumnDisabled" }, host: { classAttribute: "p-element" }, ngImport: i0 });
4056
4135
  }
4057
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ResizableColumn, decorators: [{
4136
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ResizableColumn, decorators: [{
4058
4137
  type: Directive,
4059
4138
  args: [{
4060
4139
  selector: '[pResizableColumn]',
@@ -4157,10 +4236,10 @@ class ReorderableColumn {
4157
4236
  ngOnDestroy() {
4158
4237
  this.unbindEvents();
4159
4238
  }
4160
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ReorderableColumn, deps: [{ token: PLATFORM_ID }, { token: i0.Renderer2 }, { token: Table }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
4161
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: ReorderableColumn, selector: "[pReorderableColumn]", inputs: { pReorderableColumnDisabled: "pReorderableColumnDisabled" }, host: { listeners: { "drop": "onDrop($event)" }, classAttribute: "p-element" }, ngImport: i0 });
4239
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ReorderableColumn, deps: [{ token: PLATFORM_ID }, { token: i0.Renderer2 }, { token: Table }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
4240
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: ReorderableColumn, selector: "[pReorderableColumn]", inputs: { pReorderableColumnDisabled: "pReorderableColumnDisabled" }, host: { listeners: { "drop": "onDrop($event)" }, classAttribute: "p-element" }, ngImport: i0 });
4162
4241
  }
4163
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ReorderableColumn, decorators: [{
4242
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ReorderableColumn, decorators: [{
4164
4243
  type: Directive,
4165
4244
  args: [{
4166
4245
  selector: '[pReorderableColumn]',
@@ -4192,6 +4271,11 @@ class EditableColumn {
4192
4271
  this.el = el;
4193
4272
  this.zone = zone;
4194
4273
  }
4274
+ ngOnChanges({ data }) {
4275
+ if (this.el.nativeElement && !data.firstChange) {
4276
+ this.dt.updateEditingCell(this.el.nativeElement, this.data, this.field, this.rowIndex);
4277
+ }
4278
+ }
4195
4279
  ngAfterViewInit() {
4196
4280
  if (this.isEnabled()) {
4197
4281
  DomHandler.addClass(this.el.nativeElement, 'p-editable-column');
@@ -4443,10 +4527,10 @@ class EditableColumn {
4443
4527
  this.dt.overlaySubscription.unsubscribe();
4444
4528
  }
4445
4529
  }
4446
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: EditableColumn, deps: [{ token: Table }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
4447
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: EditableColumn, selector: "[pEditableColumn]", inputs: { data: ["pEditableColumn", "data"], field: ["pEditableColumnField", "field"], rowIndex: ["pEditableColumnRowIndex", "rowIndex"], pEditableColumnDisabled: "pEditableColumnDisabled", pFocusCellSelector: "pFocusCellSelector" }, host: { listeners: { "click": "onClick($event)", "keydown.enter": "onEnterKeyDown($event)", "keydown.tab": "onShiftKeyDown($event)", "keydown.escape": "onEscapeKeyDown($event)", "keydown.shift.tab": "onShiftKeyDown($event)", "keydown.meta.tab": "onShiftKeyDown($event)", "keydown.arrowdown": "onArrowDown($event)", "keydown.arrowup": "onArrowUp($event)", "keydown.arrowleft": "onArrowLeft($event)", "keydown.arrowright": "onArrowRight($event)" }, classAttribute: "p-element" }, ngImport: i0 });
4530
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: EditableColumn, deps: [{ token: Table }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
4531
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: EditableColumn, selector: "[pEditableColumn]", inputs: { data: ["pEditableColumn", "data"], field: ["pEditableColumnField", "field"], rowIndex: ["pEditableColumnRowIndex", "rowIndex"], pEditableColumnDisabled: "pEditableColumnDisabled", pFocusCellSelector: "pFocusCellSelector" }, host: { listeners: { "click": "onClick($event)", "keydown.enter": "onEnterKeyDown($event)", "keydown.tab": "onShiftKeyDown($event)", "keydown.escape": "onEscapeKeyDown($event)", "keydown.shift.tab": "onShiftKeyDown($event)", "keydown.meta.tab": "onShiftKeyDown($event)", "keydown.arrowdown": "onArrowDown($event)", "keydown.arrowup": "onArrowUp($event)", "keydown.arrowleft": "onArrowLeft($event)", "keydown.arrowright": "onArrowRight($event)" }, classAttribute: "p-element" }, usesOnChanges: true, ngImport: i0 });
4448
4532
  }
4449
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: EditableColumn, decorators: [{
4533
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: EditableColumn, decorators: [{
4450
4534
  type: Directive,
4451
4535
  args: [{
4452
4536
  selector: '[pEditableColumn]',
@@ -4511,10 +4595,10 @@ class EditableRow {
4511
4595
  isEnabled() {
4512
4596
  return this.pEditableRowDisabled !== true;
4513
4597
  }
4514
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: EditableRow, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
4515
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: EditableRow, selector: "[pEditableRow]", inputs: { data: ["pEditableRow", "data"], pEditableRowDisabled: "pEditableRowDisabled" }, host: { classAttribute: "p-element" }, ngImport: i0 });
4598
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: EditableRow, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
4599
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: EditableRow, selector: "[pEditableRow]", inputs: { data: ["pEditableRow", "data"], pEditableRowDisabled: "pEditableRowDisabled" }, host: { classAttribute: "p-element" }, ngImport: i0 });
4516
4600
  }
4517
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: EditableRow, decorators: [{
4601
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: EditableRow, decorators: [{
4518
4602
  type: Directive,
4519
4603
  args: [{
4520
4604
  selector: '[pEditableRow]',
@@ -4539,10 +4623,10 @@ class InitEditableRow {
4539
4623
  this.dt.initRowEdit(this.editableRow.data);
4540
4624
  event.preventDefault();
4541
4625
  }
4542
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InitEditableRow, deps: [{ token: Table }, { token: EditableRow }], target: i0.ɵɵFactoryTarget.Directive });
4543
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: InitEditableRow, selector: "[pInitEditableRow]", host: { listeners: { "click": "onClick($event)" }, classAttribute: "p-element" }, ngImport: i0 });
4626
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: InitEditableRow, deps: [{ token: Table }, { token: EditableRow }], target: i0.ɵɵFactoryTarget.Directive });
4627
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: InitEditableRow, selector: "[pInitEditableRow]", host: { listeners: { "click": "onClick($event)" }, classAttribute: "p-element" }, ngImport: i0 });
4544
4628
  }
4545
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InitEditableRow, decorators: [{
4629
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: InitEditableRow, decorators: [{
4546
4630
  type: Directive,
4547
4631
  args: [{
4548
4632
  selector: '[pInitEditableRow]',
@@ -4565,10 +4649,10 @@ class SaveEditableRow {
4565
4649
  this.dt.saveRowEdit(this.editableRow.data, this.editableRow.el.nativeElement);
4566
4650
  event.preventDefault();
4567
4651
  }
4568
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: SaveEditableRow, deps: [{ token: Table }, { token: EditableRow }], target: i0.ɵɵFactoryTarget.Directive });
4569
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: SaveEditableRow, selector: "[pSaveEditableRow]", host: { listeners: { "click": "onClick($event)" }, classAttribute: "p-element" }, ngImport: i0 });
4652
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: SaveEditableRow, deps: [{ token: Table }, { token: EditableRow }], target: i0.ɵɵFactoryTarget.Directive });
4653
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: SaveEditableRow, selector: "[pSaveEditableRow]", host: { listeners: { "click": "onClick($event)" }, classAttribute: "p-element" }, ngImport: i0 });
4570
4654
  }
4571
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: SaveEditableRow, decorators: [{
4655
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: SaveEditableRow, decorators: [{
4572
4656
  type: Directive,
4573
4657
  args: [{
4574
4658
  selector: '[pSaveEditableRow]',
@@ -4591,10 +4675,10 @@ class CancelEditableRow {
4591
4675
  this.dt.cancelRowEdit(this.editableRow.data);
4592
4676
  event.preventDefault();
4593
4677
  }
4594
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: CancelEditableRow, deps: [{ token: Table }, { token: EditableRow }], target: i0.ɵɵFactoryTarget.Directive });
4595
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: CancelEditableRow, selector: "[pCancelEditableRow]", host: { listeners: { "click": "onClick($event)" }, classAttribute: "p-element" }, ngImport: i0 });
4678
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: CancelEditableRow, deps: [{ token: Table }, { token: EditableRow }], target: i0.ɵɵFactoryTarget.Directive });
4679
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: CancelEditableRow, selector: "[pCancelEditableRow]", host: { listeners: { "click": "onClick($event)" }, classAttribute: "p-element" }, ngImport: i0 });
4596
4680
  }
4597
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: CancelEditableRow, decorators: [{
4681
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: CancelEditableRow, decorators: [{
4598
4682
  type: Directive,
4599
4683
  args: [{
4600
4684
  selector: '[pCancelEditableRow]',
@@ -4633,8 +4717,8 @@ class CellEditor {
4633
4717
  get editing() {
4634
4718
  return (this.dt.editingCell && this.editableColumn && this.dt.editingCell === this.editableColumn.el.nativeElement) || (this.editableRow && this.dt.editMode === 'row' && this.dt.isRowEditing(this.editableRow.data));
4635
4719
  }
4636
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: CellEditor, deps: [{ token: Table }, { token: EditableColumn, optional: true }, { token: EditableRow, optional: true }], target: i0.ɵɵFactoryTarget.Component });
4637
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: CellEditor, selector: "p-cellEditor", host: { classAttribute: "p-element" }, queries: [{ propertyName: "templates", predicate: PrimeTemplate }], ngImport: i0, template: `
4720
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: CellEditor, deps: [{ token: Table }, { token: EditableColumn, optional: true }, { token: EditableRow, optional: true }], target: i0.ɵɵFactoryTarget.Component });
4721
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: CellEditor, selector: "p-cellEditor", host: { classAttribute: "p-element" }, queries: [{ propertyName: "templates", predicate: PrimeTemplate }], ngImport: i0, template: `
4638
4722
  <ng-container *ngIf="editing">
4639
4723
  <ng-container *ngTemplateOutlet="inputTemplate"></ng-container>
4640
4724
  </ng-container>
@@ -4643,7 +4727,7 @@ class CellEditor {
4643
4727
  </ng-container>
4644
4728
  `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None });
4645
4729
  }
4646
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: CellEditor, decorators: [{
4730
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: CellEditor, decorators: [{
4647
4731
  type: Component,
4648
4732
  args: [{
4649
4733
  selector: 'p-cellEditor',
@@ -4686,6 +4770,7 @@ class TableRadioButton {
4686
4770
  this.cd = cd;
4687
4771
  this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {
4688
4772
  this.checked = this.dt.isSelected(this.value);
4773
+ this.ariaLabel = this.ariaLabel || this.dt.config.translation.aria ? (this.checked ? this.dt.config.translation.aria.selectRow : this.dt.config.translation.aria.unselectRow) : undefined;
4689
4774
  this.cd.markForCheck();
4690
4775
  });
4691
4776
  }
@@ -4713,28 +4798,28 @@ class TableRadioButton {
4713
4798
  this.subscription.unsubscribe();
4714
4799
  }
4715
4800
  }
4716
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TableRadioButton, deps: [{ token: Table }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
4717
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: TableRadioButton, selector: "p-tableRadioButton", inputs: { disabled: "disabled", value: "value", index: "index", inputId: "inputId", name: "name", ariaLabel: "ariaLabel" }, host: { classAttribute: "p-element" }, viewQueries: [{ propertyName: "inputViewChild", first: true, predicate: ["rb"], descendants: true }], ngImport: i0, template: `
4801
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TableRadioButton, deps: [{ token: Table }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
4802
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: TableRadioButton, selector: "p-tableRadioButton", inputs: { disabled: "disabled", value: "value", index: "index", inputId: "inputId", name: "name", ariaLabel: "ariaLabel" }, host: { classAttribute: "p-element" }, viewQueries: [{ propertyName: "inputViewChild", first: true, predicate: ["rb"], descendants: true }], ngImport: i0, template: `
4718
4803
  <div class="p-radiobutton p-component" [ngClass]="{ 'p-radiobutton-focused': focused, 'p-radiobutton-checked': checked, 'p-radiobutton-disabled': disabled }" (click)="onClick($event)">
4719
4804
  <div class="p-hidden-accessible">
4720
- <input #rb type="radio" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" [disabled]="disabled" [attr.aria-label]="ariaLabel" />
4805
+ <input #rb type="radio" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" [disabled]="disabled" [attr.aria-label]="ariaLabel" [tabindex]="disabled ? null : '0'" />
4721
4806
  </div>
4722
- <div #box [ngClass]="{ 'p-radiobutton-box p-component': true, 'p-highlight': checked, 'p-focus': focused, 'p-disabled': disabled }" role="radio" [attr.aria-checked]="checked">
4807
+ <div #box [ngClass]="{ 'p-radiobutton-box p-component': true, 'p-highlight': checked, 'p-focus': focused, 'p-disabled': disabled }">
4723
4808
  <div class="p-radiobutton-icon"></div>
4724
4809
  </div>
4725
4810
  </div>
4726
4811
  `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
4727
4812
  }
4728
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TableRadioButton, decorators: [{
4813
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TableRadioButton, decorators: [{
4729
4814
  type: Component,
4730
4815
  args: [{
4731
4816
  selector: 'p-tableRadioButton',
4732
4817
  template: `
4733
4818
  <div class="p-radiobutton p-component" [ngClass]="{ 'p-radiobutton-focused': focused, 'p-radiobutton-checked': checked, 'p-radiobutton-disabled': disabled }" (click)="onClick($event)">
4734
4819
  <div class="p-hidden-accessible">
4735
- <input #rb type="radio" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" [disabled]="disabled" [attr.aria-label]="ariaLabel" />
4820
+ <input #rb type="radio" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" [disabled]="disabled" [attr.aria-label]="ariaLabel" [tabindex]="disabled ? null : '0'" />
4736
4821
  </div>
4737
- <div #box [ngClass]="{ 'p-radiobutton-box p-component': true, 'p-highlight': checked, 'p-focus': focused, 'p-disabled': disabled }" role="radio" [attr.aria-checked]="checked">
4822
+ <div #box [ngClass]="{ 'p-radiobutton-box p-component': true, 'p-highlight': checked, 'p-focus': focused, 'p-disabled': disabled }">
4738
4823
  <div class="p-radiobutton-icon"></div>
4739
4824
  </div>
4740
4825
  </div>
@@ -4781,6 +4866,7 @@ class TableCheckbox {
4781
4866
  this.cd = cd;
4782
4867
  this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {
4783
4868
  this.checked = this.dt.isSelected(this.value);
4869
+ this.ariaLabel = this.ariaLabel || this.dt.config.translation.aria ? (this.checked ? this.dt.config.translation.aria.selectRow : this.dt.config.translation.aria.unselectRow) : undefined;
4784
4870
  this.cd.markForCheck();
4785
4871
  });
4786
4872
  }
@@ -4807,13 +4893,24 @@ class TableCheckbox {
4807
4893
  this.subscription.unsubscribe();
4808
4894
  }
4809
4895
  }
4810
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TableCheckbox, deps: [{ token: Table }, { token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
4811
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: TableCheckbox, selector: "p-tableCheckbox", inputs: { disabled: "disabled", value: "value", index: "index", inputId: "inputId", name: "name", required: "required", ariaLabel: "ariaLabel" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
4896
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TableCheckbox, deps: [{ token: Table }, { token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
4897
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: TableCheckbox, selector: "p-tableCheckbox", inputs: { disabled: "disabled", value: "value", index: "index", inputId: "inputId", name: "name", required: "required", ariaLabel: "ariaLabel" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
4812
4898
  <div class="p-checkbox p-component" [ngClass]="{ 'p-checkbox-focused': focused, 'p-checkbox-disabled': disabled }" (click)="onClick($event)">
4813
4899
  <div class="p-hidden-accessible">
4814
- <input type="checkbox" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" [disabled]="disabled" [attr.required]="required" [attr.aria-label]="ariaLabel" />
4900
+ <input
4901
+ type="checkbox"
4902
+ [attr.id]="inputId"
4903
+ [attr.name]="name"
4904
+ [checked]="checked"
4905
+ (focus)="onFocus()"
4906
+ (blur)="onBlur()"
4907
+ [disabled]="disabled"
4908
+ [attr.required]="required"
4909
+ [attr.aria-label]="ariaLabel"
4910
+ [tabindex]="disabled ? null : '0'"
4911
+ />
4815
4912
  </div>
4816
- <div #box [ngClass]="{ 'p-checkbox-box p-component': true, 'p-highlight': checked, 'p-focus': focused, 'p-disabled': disabled }" role="checkbox" [attr.aria-checked]="checked">
4913
+ <div #box [ngClass]="{ 'p-checkbox-box p-component': true, 'p-highlight': checked, 'p-focus': focused, 'p-disabled': disabled }">
4817
4914
  <ng-container *ngIf="!dt.checkboxIconTemplate">
4818
4915
  <CheckIcon [styleClass]="'p-checkbox-icon'" *ngIf="checked" />
4819
4916
  </ng-container>
@@ -4824,16 +4921,27 @@ class TableCheckbox {
4824
4921
  </div>
4825
4922
  `, isInline: true, dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i2.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i0.forwardRef(function () { return CheckIcon; }), selector: "CheckIcon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
4826
4923
  }
4827
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TableCheckbox, decorators: [{
4924
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TableCheckbox, decorators: [{
4828
4925
  type: Component,
4829
4926
  args: [{
4830
4927
  selector: 'p-tableCheckbox',
4831
4928
  template: `
4832
4929
  <div class="p-checkbox p-component" [ngClass]="{ 'p-checkbox-focused': focused, 'p-checkbox-disabled': disabled }" (click)="onClick($event)">
4833
4930
  <div class="p-hidden-accessible">
4834
- <input type="checkbox" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" [disabled]="disabled" [attr.required]="required" [attr.aria-label]="ariaLabel" />
4931
+ <input
4932
+ type="checkbox"
4933
+ [attr.id]="inputId"
4934
+ [attr.name]="name"
4935
+ [checked]="checked"
4936
+ (focus)="onFocus()"
4937
+ (blur)="onBlur()"
4938
+ [disabled]="disabled"
4939
+ [attr.required]="required"
4940
+ [attr.aria-label]="ariaLabel"
4941
+ [tabindex]="disabled ? null : '0'"
4942
+ />
4835
4943
  </div>
4836
- <div #box [ngClass]="{ 'p-checkbox-box p-component': true, 'p-highlight': checked, 'p-focus': focused, 'p-disabled': disabled }" role="checkbox" [attr.aria-checked]="checked">
4944
+ <div #box [ngClass]="{ 'p-checkbox-box p-component': true, 'p-highlight': checked, 'p-focus': focused, 'p-disabled': disabled }">
4837
4945
  <ng-container *ngIf="!dt.checkboxIconTemplate">
4838
4946
  <CheckIcon [styleClass]="'p-checkbox-icon'" *ngIf="checked" />
4839
4947
  </ng-container>
@@ -4882,6 +4990,7 @@ class TableHeaderCheckbox {
4882
4990
  this.cd = cd;
4883
4991
  this.valueChangeSubscription = this.dt.tableService.valueSource$.subscribe(() => {
4884
4992
  this.checked = this.updateCheckedState();
4993
+ this.ariaLabel = this.ariaLabel || this.dt.config.translation.aria ? (this.checked ? this.dt.config.translation.aria.selectAll : this.dt.config.translation.aria.unselectAll) : undefined;
4885
4994
  });
4886
4995
  this.selectionChangeSubscription = this.dt.tableService.selectionSource$.subscribe(() => {
4887
4996
  this.checked = this.updateCheckedState();
@@ -4927,13 +5036,13 @@ class TableHeaderCheckbox {
4927
5036
  return ObjectUtils.isNotEmpty(selectableVal) && ObjectUtils.isNotEmpty(this.dt.selection) && selectableVal.every((v) => this.dt.selection.some((s) => this.dt.equals(v, s)));
4928
5037
  }
4929
5038
  }
4930
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TableHeaderCheckbox, deps: [{ token: Table }, { token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
4931
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: { disabled: "disabled", inputId: "inputId", name: "name", ariaLabel: "ariaLabel" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
5039
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TableHeaderCheckbox, deps: [{ token: Table }, { token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
5040
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: { disabled: "disabled", inputId: "inputId", name: "name", ariaLabel: "ariaLabel" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
4932
5041
  <div class="p-checkbox p-component" [ngClass]="{ 'p-checkbox-focused': focused, 'p-checkbox-disabled': isDisabled() }" (click)="onClick($event)">
4933
5042
  <div class="p-hidden-accessible">
4934
- <input #cb type="checkbox" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" [disabled]="isDisabled()" [attr.aria-label]="ariaLabel" />
5043
+ <input #cb type="checkbox" [tabindex]="disabled ? null : '0'" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" [disabled]="isDisabled()" [attr.aria-label]="ariaLabel" />
4935
5044
  </div>
4936
- <div #box [ngClass]="{ 'p-checkbox-box': true, 'p-highlight': checked, 'p-focus': focused, 'p-disabled': isDisabled() }" role="checkbox" [attr.aria-checked]="checked">
5045
+ <div #box [ngClass]="{ 'p-checkbox-box': true, 'p-highlight': checked, 'p-focus': focused, 'p-disabled': isDisabled() }">
4937
5046
  <ng-container *ngIf="!dt.headerCheckboxIconTemplate">
4938
5047
  <CheckIcon *ngIf="checked" [styleClass]="'p-checkbox-icon'" />
4939
5048
  </ng-container>
@@ -4944,16 +5053,16 @@ class TableHeaderCheckbox {
4944
5053
  </div>
4945
5054
  `, isInline: true, dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i2.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i0.forwardRef(function () { return CheckIcon; }), selector: "CheckIcon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
4946
5055
  }
4947
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TableHeaderCheckbox, decorators: [{
5056
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TableHeaderCheckbox, decorators: [{
4948
5057
  type: Component,
4949
5058
  args: [{
4950
5059
  selector: 'p-tableHeaderCheckbox',
4951
5060
  template: `
4952
5061
  <div class="p-checkbox p-component" [ngClass]="{ 'p-checkbox-focused': focused, 'p-checkbox-disabled': isDisabled() }" (click)="onClick($event)">
4953
5062
  <div class="p-hidden-accessible">
4954
- <input #cb type="checkbox" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" [disabled]="isDisabled()" [attr.aria-label]="ariaLabel" />
5063
+ <input #cb type="checkbox" [tabindex]="disabled ? null : '0'" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" [disabled]="isDisabled()" [attr.aria-label]="ariaLabel" />
4955
5064
  </div>
4956
- <div #box [ngClass]="{ 'p-checkbox-box': true, 'p-highlight': checked, 'p-focus': focused, 'p-disabled': isDisabled() }" role="checkbox" [attr.aria-checked]="checked">
5065
+ <div #box [ngClass]="{ 'p-checkbox-box': true, 'p-highlight': checked, 'p-focus': focused, 'p-disabled': isDisabled() }">
4957
5066
  <ng-container *ngIf="!dt.headerCheckboxIconTemplate">
4958
5067
  <CheckIcon *ngIf="checked" [styleClass]="'p-checkbox-icon'" />
4959
5068
  </ng-container>
@@ -4986,10 +5095,10 @@ class ReorderableRowHandle {
4986
5095
  ngAfterViewInit() {
4987
5096
  DomHandler.addClass(this.el.nativeElement, 'p-datatable-reorderablerow-handle');
4988
5097
  }
4989
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ReorderableRowHandle, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
4990
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: ReorderableRowHandle, selector: "[pReorderableRowHandle]", host: { classAttribute: "p-element" }, ngImport: i0 });
5098
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ReorderableRowHandle, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
5099
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: ReorderableRowHandle, selector: "[pReorderableRowHandle]", host: { classAttribute: "p-element" }, ngImport: i0 });
4991
5100
  }
4992
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ReorderableRowHandle, decorators: [{
5101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ReorderableRowHandle, decorators: [{
4993
5102
  type: Directive,
4994
5103
  args: [{
4995
5104
  selector: '[pReorderableRowHandle]',
@@ -5086,10 +5195,10 @@ class ReorderableRow {
5086
5195
  ngOnDestroy() {
5087
5196
  this.unbindEvents();
5088
5197
  }
5089
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ReorderableRow, deps: [{ token: i0.Renderer2 }, { token: Table }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
5090
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: ReorderableRow, selector: "[pReorderableRow]", inputs: { index: ["pReorderableRow", "index"], pReorderableRowDisabled: "pReorderableRowDisabled" }, host: { listeners: { "drop": "onDrop($event)" }, classAttribute: "p-element" }, ngImport: i0 });
5198
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ReorderableRow, deps: [{ token: i0.Renderer2 }, { token: Table }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
5199
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: ReorderableRow, selector: "[pReorderableRow]", inputs: { index: ["pReorderableRow", "index"], pReorderableRowDisabled: "pReorderableRowDisabled" }, host: { listeners: { "drop": "onDrop($event)" }, classAttribute: "p-element" }, ngImport: i0 });
5091
5200
  }
5092
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ReorderableRow, decorators: [{
5201
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ReorderableRow, decorators: [{
5093
5202
  type: Directive,
5094
5203
  args: [{
5095
5204
  selector: '[pReorderableRow]',
@@ -5140,6 +5249,7 @@ class ColumnFilter {
5140
5249
  useGrouping = true;
5141
5250
  showButtons = true;
5142
5251
  icon;
5252
+ clearButtonViewChild;
5143
5253
  templates;
5144
5254
  overlaySubscription;
5145
5255
  headerTemplate;
@@ -5160,6 +5270,7 @@ class ColumnFilter {
5160
5270
  selfClick;
5161
5271
  overlayEventListener;
5162
5272
  window;
5273
+ overlayId;
5163
5274
  constructor(document, el, dt, renderer, config, overlayService, cd) {
5164
5275
  this.document = document;
5165
5276
  this.el = el;
@@ -5171,6 +5282,7 @@ class ColumnFilter {
5171
5282
  this.window = this.document.defaultView;
5172
5283
  }
5173
5284
  ngOnInit() {
5285
+ this.overlayId = UniqueComponentId();
5174
5286
  if (!this.dt.filters[this.field]) {
5175
5287
  this.initFieldFilterConstraint();
5176
5288
  }
@@ -5268,10 +5380,12 @@ class ColumnFilter {
5268
5380
  }
5269
5381
  addConstraint() {
5270
5382
  this.dt.filters[this.field].push({ value: null, matchMode: this.getDefaultMatchMode(), operator: this.getDefaultOperator() });
5383
+ DomHandler.focus(this.clearButtonViewChild.nativeElement);
5271
5384
  }
5272
5385
  removeConstraint(filterMeta) {
5273
5386
  this.dt.filters[this.field] = this.dt.filters[this.field].filter((meta) => meta !== filterMeta);
5274
5387
  this.dt._filter();
5388
+ DomHandler.focus(this.clearButtonViewChild.nativeElement);
5275
5389
  }
5276
5390
  onOperatorChange(value) {
5277
5391
  this.dt.filters[this.field].forEach((filterMeta) => {
@@ -5354,11 +5468,19 @@ class ColumnFilter {
5354
5468
  }
5355
5469
  onOverlayAnimationEnd(event) {
5356
5470
  switch (event.toState) {
5471
+ case 'visible':
5472
+ this.focusOnFirstElement();
5473
+ break;
5357
5474
  case 'void':
5358
5475
  ZIndexUtils.clear(event.element);
5359
5476
  break;
5360
5477
  }
5361
5478
  }
5479
+ focusOnFirstElement() {
5480
+ if (this.overlay) {
5481
+ DomHandler.focus(DomHandler.getFirstFocusableElement(this.overlay, ''));
5482
+ }
5483
+ }
5362
5484
  getDefaultMatchMode() {
5363
5485
  if (this.matchMode) {
5364
5486
  return this.matchMode;
@@ -5514,8 +5636,8 @@ class ColumnFilter {
5514
5636
  this.overlaySubscription.unsubscribe();
5515
5637
  }
5516
5638
  }
5517
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ColumnFilter, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }, { token: Table }, { token: i0.Renderer2 }, { token: i1.PrimeNGConfig }, { token: i1.OverlayService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
5518
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: ColumnFilter, selector: "p-columnFilter", inputs: { field: "field", type: "type", display: "display", showMenu: "showMenu", matchMode: "matchMode", operator: "operator", showOperator: "showOperator", showClearButton: "showClearButton", showApplyButton: "showApplyButton", showMatchModes: "showMatchModes", showAddButton: "showAddButton", hideOnClear: "hideOnClear", placeholder: "placeholder", matchModeOptions: "matchModeOptions", maxConstraints: "maxConstraints", minFractionDigits: "minFractionDigits", maxFractionDigits: "maxFractionDigits", prefix: "prefix", suffix: "suffix", locale: "locale", localeMatcher: "localeMatcher", currency: "currency", currencyDisplay: "currencyDisplay", useGrouping: "useGrouping", showButtons: "showButtons" }, host: { classAttribute: "p-element" }, queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "icon", first: true, predicate: ["icon"], descendants: true }], ngImport: i0, template: `
5639
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ColumnFilter, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }, { token: Table }, { token: i0.Renderer2 }, { token: i1.PrimeNGConfig }, { token: i1.OverlayService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
5640
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: ColumnFilter, selector: "p-columnFilter", inputs: { field: "field", type: "type", display: "display", showMenu: "showMenu", matchMode: "matchMode", operator: "operator", showOperator: "showOperator", showClearButton: "showClearButton", showApplyButton: "showApplyButton", showMatchModes: "showMatchModes", showAddButton: "showAddButton", hideOnClear: "hideOnClear", placeholder: "placeholder", matchModeOptions: "matchModeOptions", maxConstraints: "maxConstraints", minFractionDigits: "minFractionDigits", maxFractionDigits: "maxFractionDigits", prefix: "prefix", suffix: "suffix", locale: "locale", localeMatcher: "localeMatcher", currency: "currency", currencyDisplay: "currencyDisplay", useGrouping: "useGrouping", showButtons: "showButtons" }, host: { classAttribute: "p-element" }, queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "icon", first: true, predicate: ["icon"], descendants: true }, { propertyName: "clearButtonViewChild", first: true, predicate: ["clearBtn"], descendants: true }], ngImport: i0, template: `
5519
5641
  <div class="p-column-filter" [ngClass]="{ 'p-column-filter-row': display === 'row', 'p-column-filter-menu': display === 'menu' }">
5520
5642
  <p-columnFilterFormElement
5521
5643
  *ngIf="display === 'row'"
@@ -5542,6 +5664,7 @@ class ColumnFilter {
5542
5664
  type="button"
5543
5665
  class="p-column-filter-menu-button p-link"
5544
5666
  aria-haspopup="true"
5667
+ [attr.aria-controls]="overlayId"
5545
5668
  [attr.aria-expanded]="overlayVisible"
5546
5669
  [ngClass]="{ 'p-column-filter-menu-button-open': overlayVisible, 'p-column-filter-menu-button-active': hasFilter() }"
5547
5670
  (click)="toggleMenu()"
@@ -5559,6 +5682,9 @@ class ColumnFilter {
5559
5682
  <div
5560
5683
  *ngIf="showMenu && overlayVisible"
5561
5684
  [ngClass]="{ 'p-column-filter-overlay p-component p-fluid': true, 'p-column-filter-overlay-menu': display === 'menu' }"
5685
+ [id]="overlayId"
5686
+ [attr.aria-modal]="true"
5687
+ role="dialog"
5562
5688
  (click)="onContentClick()"
5563
5689
  [@overlayAnimation]="'visible'"
5564
5690
  (@overlayAnimation.start)="onOverlayAnimationStart($event)"
@@ -5625,7 +5751,7 @@ class ColumnFilter {
5625
5751
  </button>
5626
5752
  </div>
5627
5753
  <div class="p-column-filter-buttonbar">
5628
- <button *ngIf="showClearButton" type="button" pButton class="p-button-outlined p-button-sm" (click)="clearFilter()" [label]="clearButtonLabel" pRipple></button>
5754
+ <button #clearBtn *ngIf="showClearButton" type="button" pButton class="p-button-outlined p-button-sm" (click)="clearFilter()" [label]="clearButtonLabel" pRipple></button>
5629
5755
  <button *ngIf="showApplyButton" type="button" pButton (click)="applyFilter()" class="p-button-sm" [label]="applyButtonLabel" pRipple></button>
5630
5756
  </div>
5631
5757
  </ng-template>
@@ -5634,7 +5760,7 @@ class ColumnFilter {
5634
5760
  </div>
5635
5761
  `, isInline: true, dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i2.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i0.forwardRef(function () { return i5.Dropdown; }), selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "directive", type: i0.forwardRef(function () { return i6.NgControlStatus; }), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(function () { return i6.NgModel; }), selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i0.forwardRef(function () { return i7.ButtonDirective; }), selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i0.forwardRef(function () { return FilterIcon; }), selector: "FilterIcon" }, { kind: "component", type: i0.forwardRef(function () { return FilterSlashIcon; }), selector: "FilterSlashIcon" }, { kind: "component", type: i0.forwardRef(function () { return ColumnFilterFormElement; }), selector: "p-columnFilterFormElement", inputs: ["field", "type", "filterConstraint", "filterTemplate", "placeholder", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "locale", "localeMatcher", "currency", "currencyDisplay", "useGrouping"] }], animations: [trigger('overlayAnimation', [transition(':enter', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate('.12s cubic-bezier(0, 0, 0.2, 1)')]), transition(':leave', [animate('.1s linear', style({ opacity: 0 }))])])], encapsulation: i0.ViewEncapsulation.None });
5636
5762
  }
5637
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ColumnFilter, decorators: [{
5763
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ColumnFilter, decorators: [{
5638
5764
  type: Component,
5639
5765
  args: [{
5640
5766
  selector: 'p-columnFilter',
@@ -5665,6 +5791,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
5665
5791
  type="button"
5666
5792
  class="p-column-filter-menu-button p-link"
5667
5793
  aria-haspopup="true"
5794
+ [attr.aria-controls]="overlayId"
5668
5795
  [attr.aria-expanded]="overlayVisible"
5669
5796
  [ngClass]="{ 'p-column-filter-menu-button-open': overlayVisible, 'p-column-filter-menu-button-active': hasFilter() }"
5670
5797
  (click)="toggleMenu()"
@@ -5682,6 +5809,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
5682
5809
  <div
5683
5810
  *ngIf="showMenu && overlayVisible"
5684
5811
  [ngClass]="{ 'p-column-filter-overlay p-component p-fluid': true, 'p-column-filter-overlay-menu': display === 'menu' }"
5812
+ [id]="overlayId"
5813
+ [attr.aria-modal]="true"
5814
+ role="dialog"
5685
5815
  (click)="onContentClick()"
5686
5816
  [@overlayAnimation]="'visible'"
5687
5817
  (@overlayAnimation.start)="onOverlayAnimationStart($event)"
@@ -5748,7 +5878,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
5748
5878
  </button>
5749
5879
  </div>
5750
5880
  <div class="p-column-filter-buttonbar">
5751
- <button *ngIf="showClearButton" type="button" pButton class="p-button-outlined p-button-sm" (click)="clearFilter()" [label]="clearButtonLabel" pRipple></button>
5881
+ <button #clearBtn *ngIf="showClearButton" type="button" pButton class="p-button-outlined p-button-sm" (click)="clearFilter()" [label]="clearButtonLabel" pRipple></button>
5752
5882
  <button *ngIf="showApplyButton" type="button" pButton (click)="applyFilter()" class="p-button-sm" [label]="applyButtonLabel" pRipple></button>
5753
5883
  </div>
5754
5884
  </ng-template>
@@ -5818,6 +5948,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
5818
5948
  }], icon: [{
5819
5949
  type: ViewChild,
5820
5950
  args: ['icon']
5951
+ }], clearButtonViewChild: [{
5952
+ type: ViewChild,
5953
+ args: ['clearBtn']
5821
5954
  }], templates: [{
5822
5955
  type: ContentChildren,
5823
5956
  args: [PrimeTemplate]
@@ -5869,8 +6002,8 @@ class ColumnFilterFormElement {
5869
6002
  event.preventDefault();
5870
6003
  }
5871
6004
  }
5872
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ColumnFilterFormElement, deps: [{ token: Table }, { token: ColumnFilter }], target: i0.ɵɵFactoryTarget.Component });
5873
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: ColumnFilterFormElement, selector: "p-columnFilterFormElement", inputs: { field: "field", type: "type", filterConstraint: "filterConstraint", filterTemplate: "filterTemplate", placeholder: "placeholder", minFractionDigits: "minFractionDigits", maxFractionDigits: "maxFractionDigits", prefix: "prefix", suffix: "suffix", locale: "locale", localeMatcher: "localeMatcher", currency: "currency", currencyDisplay: "currencyDisplay", useGrouping: "useGrouping" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
6005
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ColumnFilterFormElement, deps: [{ token: Table }, { token: ColumnFilter }], target: i0.ɵɵFactoryTarget.Component });
6006
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: ColumnFilterFormElement, selector: "p-columnFilterFormElement", inputs: { field: "field", type: "type", filterConstraint: "filterConstraint", filterTemplate: "filterTemplate", placeholder: "placeholder", minFractionDigits: "minFractionDigits", maxFractionDigits: "maxFractionDigits", prefix: "prefix", suffix: "suffix", locale: "locale", localeMatcher: "localeMatcher", currency: "currency", currencyDisplay: "currencyDisplay", useGrouping: "useGrouping" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
5874
6007
  <ng-container *ngIf="filterTemplate; else builtInElement">
5875
6008
  <ng-container
5876
6009
  *ngTemplateOutlet="
@@ -5921,9 +6054,9 @@ class ColumnFilterFormElement {
5921
6054
  <p-calendar *ngSwitchCase="'date'" [placeholder]="placeholder" [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)"></p-calendar>
5922
6055
  </ng-container>
5923
6056
  </ng-template>
5924
- `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i8.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabelledBy", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i9.InputText, selector: "[pInputText]" }, { kind: "component", type: i10.Calendar, selector: "p-calendar", inputs: ["style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "component", type: i11.TriStateCheckbox, selector: "p-triStateCheckbox", inputs: ["disabled", "name", "ariaLabel", "ariaLabelledBy", "tabindex", "inputId", "style", "styleClass", "label", "readonly", "checkboxTrueIcon", "checkboxFalseIcon"], outputs: ["onChange"] }], encapsulation: i0.ViewEncapsulation.None });
6057
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i8.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabelledBy", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i9.InputText, selector: "[pInputText]" }, { kind: "component", type: i10.Calendar, selector: "p-calendar", inputs: ["style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "component", type: i11.TriStateCheckbox, selector: "p-triStateCheckbox", inputs: ["disabled", "name", "ariaLabel", "ariaLabelledBy", "tabindex", "inputId", "style", "styleClass", "label", "readonly", "checkboxTrueIcon", "checkboxFalseIcon"], outputs: ["onChange"] }], encapsulation: i0.ViewEncapsulation.None });
5925
6058
  }
5926
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ColumnFilterFormElement, decorators: [{
6059
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ColumnFilterFormElement, decorators: [{
5927
6060
  type: Component,
5928
6061
  args: [{
5929
6062
  selector: 'p-columnFilterFormElement',
@@ -6014,8 +6147,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
6014
6147
  type: Input
6015
6148
  }] } });
6016
6149
  class TableModule {
6017
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6018
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.2", ngImport: i0, type: TableModule, declarations: [Table, SortableColumn, FrozenColumn, RowGroupHeader, SelectableRow, RowToggler, ContextMenuRow, ResizableColumn, ReorderableColumn, EditableColumn, CellEditor, TableBody, SortIcon, TableRadioButton, TableCheckbox, TableHeaderCheckbox, ReorderableRowHandle, ReorderableRow, SelectableRowDblClick, EditableRow, InitEditableRow, SaveEditableRow, CancelEditableRow, ColumnFilter, ColumnFilterFormElement], imports: [CommonModule,
6150
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6151
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: TableModule, declarations: [Table, SortableColumn, FrozenColumn, RowGroupHeader, SelectableRow, RowToggler, ContextMenuRow, ResizableColumn, ReorderableColumn, EditableColumn, CellEditor, TableBody, SortIcon, TableRadioButton, TableCheckbox, TableHeaderCheckbox, ReorderableRowHandle, ReorderableRow, SelectableRowDblClick, EditableRow, InitEditableRow, SaveEditableRow, CancelEditableRow, ColumnFilter, ColumnFilterFormElement], imports: [CommonModule,
6019
6152
  PaginatorModule,
6020
6153
  InputTextModule,
6021
6154
  DropdownModule,
@@ -6035,7 +6168,7 @@ class TableModule {
6035
6168
  CheckIcon,
6036
6169
  FilterIcon,
6037
6170
  FilterSlashIcon], exports: [Table, SharedModule, SortableColumn, FrozenColumn, RowGroupHeader, SelectableRow, RowToggler, ContextMenuRow, ResizableColumn, ReorderableColumn, EditableColumn, CellEditor, SortIcon, TableRadioButton, TableCheckbox, TableHeaderCheckbox, ReorderableRowHandle, ReorderableRow, SelectableRowDblClick, EditableRow, InitEditableRow, SaveEditableRow, CancelEditableRow, ColumnFilter, ColumnFilterFormElement, ScrollerModule] });
6038
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TableModule, imports: [CommonModule,
6171
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TableModule, imports: [CommonModule,
6039
6172
  PaginatorModule,
6040
6173
  InputTextModule,
6041
6174
  DropdownModule,
@@ -6057,7 +6190,7 @@ class TableModule {
6057
6190
  FilterSlashIcon, SharedModule,
6058
6191
  ScrollerModule] });
6059
6192
  }
6060
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TableModule, decorators: [{
6193
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TableModule, decorators: [{
6061
6194
  type: NgModule,
6062
6195
  args: [{
6063
6196
  imports: [