primeng 18.0.0 → 19.0.0-rc.1

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 (1077) hide show
  1. package/base/style/basestyle.d.ts +11 -11
  2. package/fesm2022/primeng-accordion.mjs +12 -12
  3. package/fesm2022/primeng-accordion.mjs.map +1 -1
  4. package/fesm2022/primeng-animateonscroll.mjs +1 -1
  5. package/fesm2022/primeng-animateonscroll.mjs.map +1 -1
  6. package/fesm2022/primeng-api.mjs +5 -5
  7. package/fesm2022/primeng-api.mjs.map +1 -1
  8. package/fesm2022/primeng-autocomplete.mjs +2 -2
  9. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  10. package/fesm2022/primeng-autofocus.mjs +1 -1
  11. package/fesm2022/primeng-autofocus.mjs.map +1 -1
  12. package/fesm2022/primeng-avatar.mjs +2 -2
  13. package/fesm2022/primeng-avatar.mjs.map +1 -1
  14. package/fesm2022/primeng-avatargroup.mjs +2 -2
  15. package/fesm2022/primeng-avatargroup.mjs.map +1 -1
  16. package/fesm2022/primeng-badge.mjs +3 -3
  17. package/fesm2022/primeng-badge.mjs.map +1 -1
  18. package/fesm2022/primeng-basecomponent.mjs +1 -1
  19. package/fesm2022/primeng-basecomponent.mjs.map +1 -1
  20. package/fesm2022/primeng-blockui.mjs +2 -2
  21. package/fesm2022/primeng-blockui.mjs.map +1 -1
  22. package/fesm2022/primeng-breadcrumb.mjs +2 -2
  23. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  24. package/fesm2022/primeng-button.mjs +5 -5
  25. package/fesm2022/primeng-button.mjs.map +1 -1
  26. package/fesm2022/primeng-buttongroup.mjs +2 -2
  27. package/fesm2022/primeng-buttongroup.mjs.map +1 -1
  28. package/fesm2022/primeng-calendar.mjs +2 -2
  29. package/fesm2022/primeng-calendar.mjs.map +1 -1
  30. package/fesm2022/primeng-card.mjs +2 -2
  31. package/fesm2022/primeng-card.mjs.map +1 -1
  32. package/fesm2022/primeng-carousel.mjs +2 -2
  33. package/fesm2022/primeng-carousel.mjs.map +1 -1
  34. package/fesm2022/primeng-cascadeselect.mjs +6 -6
  35. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  36. package/fesm2022/primeng-chart.mjs +2 -2
  37. package/fesm2022/primeng-chart.mjs.map +1 -1
  38. package/fesm2022/primeng-checkbox.mjs +3 -4
  39. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  40. package/fesm2022/primeng-chip.mjs +2 -2
  41. package/fesm2022/primeng-chip.mjs.map +1 -1
  42. package/fesm2022/primeng-colorpicker.mjs +2 -2
  43. package/fesm2022/primeng-colorpicker.mjs.map +1 -1
  44. package/fesm2022/primeng-config.mjs +1 -1
  45. package/fesm2022/primeng-config.mjs.map +1 -1
  46. package/fesm2022/primeng-confirmdialog.mjs +4 -6
  47. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  48. package/fesm2022/primeng-confirmpopup.mjs +2 -2
  49. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  50. package/fesm2022/primeng-contextmenu.mjs +5 -5
  51. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  52. package/fesm2022/primeng-dataview.mjs +2 -2
  53. package/fesm2022/primeng-dataview.mjs.map +1 -1
  54. package/fesm2022/primeng-datepicker.mjs +2 -2
  55. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  56. package/fesm2022/primeng-defer.mjs +1 -1
  57. package/fesm2022/primeng-dialog.mjs +3 -4
  58. package/fesm2022/primeng-dialog.mjs.map +1 -1
  59. package/fesm2022/primeng-divider.mjs +2 -2
  60. package/fesm2022/primeng-divider.mjs.map +1 -1
  61. package/fesm2022/primeng-dock.mjs +3 -4
  62. package/fesm2022/primeng-dock.mjs.map +1 -1
  63. package/fesm2022/primeng-dragdrop.mjs +2 -2
  64. package/fesm2022/primeng-dragdrop.mjs.map +1 -1
  65. package/fesm2022/primeng-drawer.mjs +2 -2
  66. package/fesm2022/primeng-drawer.mjs.map +1 -1
  67. package/fesm2022/primeng-dropdown.mjs +4 -4
  68. package/fesm2022/primeng-dropdown.mjs.map +1 -1
  69. package/fesm2022/primeng-dynamicdialog.mjs +3 -3
  70. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  71. package/fesm2022/primeng-editor.mjs +2 -2
  72. package/fesm2022/primeng-editor.mjs.map +1 -1
  73. package/fesm2022/primeng-fieldset.mjs +2 -2
  74. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  75. package/fesm2022/primeng-fileupload.mjs +3 -4
  76. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  77. package/fesm2022/primeng-floatlabel.mjs +2 -2
  78. package/fesm2022/primeng-floatlabel.mjs.map +1 -1
  79. package/fesm2022/primeng-fluid.mjs +2 -2
  80. package/fesm2022/primeng-fluid.mjs.map +1 -1
  81. package/fesm2022/primeng-focustrap.mjs +1 -1
  82. package/fesm2022/primeng-focustrap.mjs.map +1 -1
  83. package/fesm2022/primeng-galleria.mjs +10 -10
  84. package/fesm2022/primeng-galleria.mjs.map +1 -1
  85. package/fesm2022/primeng-iconfield.mjs +2 -2
  86. package/fesm2022/primeng-iconfield.mjs.map +1 -1
  87. package/fesm2022/primeng-icons-angledoubledown.mjs +2 -2
  88. package/fesm2022/primeng-icons-angledoubledown.mjs.map +1 -1
  89. package/fesm2022/primeng-icons-angledoubleleft.mjs +2 -2
  90. package/fesm2022/primeng-icons-angledoubleleft.mjs.map +1 -1
  91. package/fesm2022/primeng-icons-angledoubleright.mjs +2 -2
  92. package/fesm2022/primeng-icons-angledoubleright.mjs.map +1 -1
  93. package/fesm2022/primeng-icons-angledoubleup.mjs +2 -2
  94. package/fesm2022/primeng-icons-angledoubleup.mjs.map +1 -1
  95. package/fesm2022/primeng-icons-angledown.mjs +2 -2
  96. package/fesm2022/primeng-icons-angledown.mjs.map +1 -1
  97. package/fesm2022/primeng-icons-angleleft.mjs +2 -2
  98. package/fesm2022/primeng-icons-angleleft.mjs.map +1 -1
  99. package/fesm2022/primeng-icons-angleright.mjs +2 -2
  100. package/fesm2022/primeng-icons-angleright.mjs.map +1 -1
  101. package/fesm2022/primeng-icons-angleup.mjs +2 -2
  102. package/fesm2022/primeng-icons-angleup.mjs.map +1 -1
  103. package/fesm2022/primeng-icons-arrowdown.mjs +2 -2
  104. package/fesm2022/primeng-icons-arrowdown.mjs.map +1 -1
  105. package/fesm2022/primeng-icons-arrowdownleft.mjs +2 -2
  106. package/fesm2022/primeng-icons-arrowdownleft.mjs.map +1 -1
  107. package/fesm2022/primeng-icons-arrowdownright.mjs +2 -2
  108. package/fesm2022/primeng-icons-arrowdownright.mjs.map +1 -1
  109. package/fesm2022/primeng-icons-arrowleft.mjs +2 -2
  110. package/fesm2022/primeng-icons-arrowleft.mjs.map +1 -1
  111. package/fesm2022/primeng-icons-arrowright.mjs +2 -2
  112. package/fesm2022/primeng-icons-arrowright.mjs.map +1 -1
  113. package/fesm2022/primeng-icons-arrowup.mjs +2 -2
  114. package/fesm2022/primeng-icons-arrowup.mjs.map +1 -1
  115. package/fesm2022/primeng-icons-ban.mjs +2 -2
  116. package/fesm2022/primeng-icons-ban.mjs.map +1 -1
  117. package/fesm2022/primeng-icons-bars.mjs +2 -2
  118. package/fesm2022/primeng-icons-bars.mjs.map +1 -1
  119. package/fesm2022/primeng-icons-baseicon.mjs +2 -2
  120. package/fesm2022/primeng-icons-baseicon.mjs.map +1 -1
  121. package/fesm2022/primeng-icons-blank.mjs +2 -2
  122. package/fesm2022/primeng-icons-blank.mjs.map +1 -1
  123. package/fesm2022/primeng-icons-calendar.mjs +2 -2
  124. package/fesm2022/primeng-icons-calendar.mjs.map +1 -1
  125. package/fesm2022/primeng-icons-caretleft.mjs +2 -2
  126. package/fesm2022/primeng-icons-caretleft.mjs.map +1 -1
  127. package/fesm2022/primeng-icons-caretright.mjs +2 -2
  128. package/fesm2022/primeng-icons-caretright.mjs.map +1 -1
  129. package/fesm2022/primeng-icons-check.mjs +2 -2
  130. package/fesm2022/primeng-icons-check.mjs.map +1 -1
  131. package/fesm2022/primeng-icons-chevrondown.mjs +2 -2
  132. package/fesm2022/primeng-icons-chevrondown.mjs.map +1 -1
  133. package/fesm2022/primeng-icons-chevronleft.mjs +2 -2
  134. package/fesm2022/primeng-icons-chevronleft.mjs.map +1 -1
  135. package/fesm2022/primeng-icons-chevronright.mjs +2 -2
  136. package/fesm2022/primeng-icons-chevronright.mjs.map +1 -1
  137. package/fesm2022/primeng-icons-chevronup.mjs +2 -2
  138. package/fesm2022/primeng-icons-chevronup.mjs.map +1 -1
  139. package/fesm2022/primeng-icons-exclamationtriangle.mjs +2 -2
  140. package/fesm2022/primeng-icons-exclamationtriangle.mjs.map +1 -1
  141. package/fesm2022/primeng-icons-eye.mjs +2 -2
  142. package/fesm2022/primeng-icons-eye.mjs.map +1 -1
  143. package/fesm2022/primeng-icons-eyeslash.mjs +2 -2
  144. package/fesm2022/primeng-icons-eyeslash.mjs.map +1 -1
  145. package/fesm2022/primeng-icons-filter.mjs +2 -2
  146. package/fesm2022/primeng-icons-filter.mjs.map +1 -1
  147. package/fesm2022/primeng-icons-filterslash.mjs +2 -2
  148. package/fesm2022/primeng-icons-filterslash.mjs.map +1 -1
  149. package/fesm2022/primeng-icons-home.mjs +2 -2
  150. package/fesm2022/primeng-icons-home.mjs.map +1 -1
  151. package/fesm2022/primeng-icons-infocircle.mjs +2 -2
  152. package/fesm2022/primeng-icons-infocircle.mjs.map +1 -1
  153. package/fesm2022/primeng-icons-minus.mjs +2 -2
  154. package/fesm2022/primeng-icons-minus.mjs.map +1 -1
  155. package/fesm2022/primeng-icons-pencil.mjs +2 -2
  156. package/fesm2022/primeng-icons-pencil.mjs.map +1 -1
  157. package/fesm2022/primeng-icons-plus.mjs +2 -2
  158. package/fesm2022/primeng-icons-plus.mjs.map +1 -1
  159. package/fesm2022/primeng-icons-refresh.mjs +2 -2
  160. package/fesm2022/primeng-icons-refresh.mjs.map +1 -1
  161. package/fesm2022/primeng-icons-search.mjs +2 -2
  162. package/fesm2022/primeng-icons-search.mjs.map +1 -1
  163. package/fesm2022/primeng-icons-searchminus.mjs +2 -2
  164. package/fesm2022/primeng-icons-searchminus.mjs.map +1 -1
  165. package/fesm2022/primeng-icons-searchplus.mjs +2 -2
  166. package/fesm2022/primeng-icons-searchplus.mjs.map +1 -1
  167. package/fesm2022/primeng-icons-sortalt.mjs +2 -2
  168. package/fesm2022/primeng-icons-sortalt.mjs.map +1 -1
  169. package/fesm2022/primeng-icons-sortamountdown.mjs +2 -2
  170. package/fesm2022/primeng-icons-sortamountdown.mjs.map +1 -1
  171. package/fesm2022/primeng-icons-sortamountupalt.mjs +2 -2
  172. package/fesm2022/primeng-icons-sortamountupalt.mjs.map +1 -1
  173. package/fesm2022/primeng-icons-spinner.mjs +2 -2
  174. package/fesm2022/primeng-icons-spinner.mjs.map +1 -1
  175. package/fesm2022/primeng-icons-star.mjs +2 -2
  176. package/fesm2022/primeng-icons-star.mjs.map +1 -1
  177. package/fesm2022/primeng-icons-starfill.mjs +2 -2
  178. package/fesm2022/primeng-icons-starfill.mjs.map +1 -1
  179. package/fesm2022/primeng-icons-thlarge.mjs +2 -2
  180. package/fesm2022/primeng-icons-thlarge.mjs.map +1 -1
  181. package/fesm2022/primeng-icons-times.mjs +2 -2
  182. package/fesm2022/primeng-icons-times.mjs.map +1 -1
  183. package/fesm2022/primeng-icons-timescircle.mjs +2 -2
  184. package/fesm2022/primeng-icons-timescircle.mjs.map +1 -1
  185. package/fesm2022/primeng-icons-trash.mjs +2 -2
  186. package/fesm2022/primeng-icons-trash.mjs.map +1 -1
  187. package/fesm2022/primeng-icons-undo.mjs +2 -2
  188. package/fesm2022/primeng-icons-undo.mjs.map +1 -1
  189. package/fesm2022/primeng-icons-upload.mjs +2 -2
  190. package/fesm2022/primeng-icons-upload.mjs.map +1 -1
  191. package/fesm2022/primeng-icons-windowmaximize.mjs +2 -2
  192. package/fesm2022/primeng-icons-windowmaximize.mjs.map +1 -1
  193. package/fesm2022/primeng-icons-windowminimize.mjs +2 -2
  194. package/fesm2022/primeng-icons-windowminimize.mjs.map +1 -1
  195. package/fesm2022/primeng-iftalabel.mjs +2 -2
  196. package/fesm2022/primeng-iftalabel.mjs.map +1 -1
  197. package/fesm2022/primeng-image.mjs +2 -2
  198. package/fesm2022/primeng-image.mjs.map +1 -1
  199. package/fesm2022/primeng-imagecompare.mjs +2 -2
  200. package/fesm2022/primeng-imagecompare.mjs.map +1 -1
  201. package/fesm2022/primeng-inplace.mjs +6 -6
  202. package/fesm2022/primeng-inplace.mjs.map +1 -1
  203. package/fesm2022/primeng-inputgroup.mjs +2 -2
  204. package/fesm2022/primeng-inputgroup.mjs.map +1 -1
  205. package/fesm2022/primeng-inputgroupaddon.mjs +2 -2
  206. package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -1
  207. package/fesm2022/primeng-inputicon.mjs +2 -2
  208. package/fesm2022/primeng-inputicon.mjs.map +1 -1
  209. package/fesm2022/primeng-inputmask.mjs +2 -2
  210. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  211. package/fesm2022/primeng-inputnumber.mjs +3 -4
  212. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  213. package/fesm2022/primeng-inputotp.mjs +2 -2
  214. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  215. package/fesm2022/primeng-inputswitch.mjs +2 -2
  216. package/fesm2022/primeng-inputswitch.mjs.map +1 -1
  217. package/fesm2022/primeng-inputtext.mjs +1 -1
  218. package/fesm2022/primeng-inputtext.mjs.map +1 -1
  219. package/fesm2022/primeng-inputtextarea.mjs +1 -1
  220. package/fesm2022/primeng-inputtextarea.mjs.map +1 -1
  221. package/fesm2022/primeng-keyfilter.mjs +1 -1
  222. package/fesm2022/primeng-keyfilter.mjs.map +1 -1
  223. package/fesm2022/primeng-knob.mjs +2 -2
  224. package/fesm2022/primeng-knob.mjs.map +1 -1
  225. package/fesm2022/primeng-listbox.mjs +2 -2
  226. package/fesm2022/primeng-listbox.mjs.map +1 -1
  227. package/fesm2022/primeng-megamenu.mjs +5 -5
  228. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  229. package/fesm2022/primeng-menu.mjs +6 -6
  230. package/fesm2022/primeng-menu.mjs.map +1 -1
  231. package/fesm2022/primeng-menubar.mjs +6 -6
  232. package/fesm2022/primeng-menubar.mjs.map +1 -1
  233. package/fesm2022/primeng-message.mjs +2 -2
  234. package/fesm2022/primeng-message.mjs.map +1 -1
  235. package/fesm2022/primeng-messages.mjs +2 -2
  236. package/fesm2022/primeng-messages.mjs.map +1 -1
  237. package/fesm2022/primeng-metergroup.mjs +4 -4
  238. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  239. package/fesm2022/primeng-multiselect.mjs +6 -6
  240. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  241. package/fesm2022/primeng-orderlist.mjs +4 -4
  242. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  243. package/fesm2022/primeng-organizationchart.mjs +5 -5
  244. package/fesm2022/primeng-organizationchart.mjs.map +1 -1
  245. package/fesm2022/primeng-overlay.mjs +2 -2
  246. package/fesm2022/primeng-overlay.mjs.map +1 -1
  247. package/fesm2022/primeng-overlaybadge.mjs +2 -2
  248. package/fesm2022/primeng-overlaybadge.mjs.map +1 -1
  249. package/fesm2022/primeng-overlaypanel.mjs +6 -3
  250. package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
  251. package/fesm2022/primeng-paginator.mjs +2 -2
  252. package/fesm2022/primeng-paginator.mjs.map +1 -1
  253. package/fesm2022/primeng-panel.mjs +3 -4
  254. package/fesm2022/primeng-panel.mjs.map +1 -1
  255. package/fesm2022/primeng-panelmenu.mjs +9 -9
  256. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  257. package/fesm2022/primeng-password.mjs +4 -4
  258. package/fesm2022/primeng-password.mjs.map +1 -1
  259. package/fesm2022/primeng-picklist.mjs +5 -33
  260. package/fesm2022/primeng-picklist.mjs.map +1 -1
  261. package/fesm2022/primeng-popover.mjs +8 -7
  262. package/fesm2022/primeng-popover.mjs.map +1 -1
  263. package/fesm2022/primeng-progressbar.mjs +2 -2
  264. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  265. package/fesm2022/primeng-progressspinner.mjs +2 -2
  266. package/fesm2022/primeng-progressspinner.mjs.map +1 -1
  267. package/fesm2022/primeng-radiobutton.mjs +2 -2
  268. package/fesm2022/primeng-radiobutton.mjs.map +1 -1
  269. package/fesm2022/primeng-rating.mjs +4 -4
  270. package/fesm2022/primeng-rating.mjs.map +1 -1
  271. package/fesm2022/primeng-ripple.mjs +1 -1
  272. package/fesm2022/primeng-ripple.mjs.map +1 -1
  273. package/fesm2022/primeng-scroller.mjs +2 -2
  274. package/fesm2022/primeng-scroller.mjs.map +1 -1
  275. package/fesm2022/primeng-scrollpanel.mjs +2 -2
  276. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  277. package/fesm2022/primeng-scrolltop.mjs +2 -2
  278. package/fesm2022/primeng-scrolltop.mjs.map +1 -1
  279. package/fesm2022/primeng-select.mjs +5 -5
  280. package/fesm2022/primeng-select.mjs.map +1 -1
  281. package/fesm2022/primeng-selectbutton.mjs +3 -4
  282. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  283. package/fesm2022/primeng-sidebar.mjs +3 -4
  284. package/fesm2022/primeng-sidebar.mjs.map +1 -1
  285. package/fesm2022/primeng-skeleton.mjs +2 -2
  286. package/fesm2022/primeng-skeleton.mjs.map +1 -1
  287. package/fesm2022/primeng-slider.mjs +2 -2
  288. package/fesm2022/primeng-slider.mjs.map +1 -1
  289. package/fesm2022/primeng-speeddial.mjs +2 -2
  290. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  291. package/fesm2022/primeng-splitbutton.mjs +2 -2
  292. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  293. package/fesm2022/primeng-splitter.mjs +4 -4
  294. package/fesm2022/primeng-splitter.mjs.map +1 -1
  295. package/fesm2022/primeng-stepper.mjs +16 -16
  296. package/fesm2022/primeng-stepper.mjs.map +1 -1
  297. package/fesm2022/primeng-steps.mjs +2 -2
  298. package/fesm2022/primeng-steps.mjs.map +1 -1
  299. package/fesm2022/primeng-styleclass.mjs +1 -1
  300. package/fesm2022/primeng-styleclass.mjs.map +1 -1
  301. package/fesm2022/primeng-table.mjs +63 -38
  302. package/fesm2022/primeng-table.mjs.map +1 -1
  303. package/fesm2022/primeng-tabmenu.mjs +2 -2
  304. package/fesm2022/primeng-tabmenu.mjs.map +1 -1
  305. package/fesm2022/primeng-tabs.mjs +11 -11
  306. package/fesm2022/primeng-tabs.mjs.map +1 -1
  307. package/fesm2022/primeng-tabview.mjs +5 -5
  308. package/fesm2022/primeng-tabview.mjs.map +1 -1
  309. package/fesm2022/primeng-tag.mjs +2 -2
  310. package/fesm2022/primeng-tag.mjs.map +1 -1
  311. package/fesm2022/primeng-terminal.mjs +2 -2
  312. package/fesm2022/primeng-terminal.mjs.map +1 -1
  313. package/fesm2022/primeng-textarea.mjs +1 -1
  314. package/fesm2022/primeng-textarea.mjs.map +1 -1
  315. package/fesm2022/primeng-tieredmenu.mjs +5 -5
  316. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  317. package/fesm2022/primeng-timeline.mjs +2 -2
  318. package/fesm2022/primeng-timeline.mjs.map +1 -1
  319. package/fesm2022/primeng-toast.mjs +6 -7
  320. package/fesm2022/primeng-toast.mjs.map +1 -1
  321. package/fesm2022/primeng-togglebutton.mjs +3 -4
  322. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  323. package/fesm2022/primeng-toggleswitch.mjs +2 -2
  324. package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
  325. package/fesm2022/primeng-toolbar.mjs +2 -2
  326. package/fesm2022/primeng-toolbar.mjs.map +1 -1
  327. package/fesm2022/primeng-tooltip.mjs +4 -2
  328. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  329. package/fesm2022/primeng-tree.mjs +7 -9
  330. package/fesm2022/primeng-tree.mjs.map +1 -1
  331. package/fesm2022/primeng-treeselect.mjs +4 -6
  332. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  333. package/fesm2022/primeng-treetable.mjs +31 -29
  334. package/fesm2022/primeng-treetable.mjs.map +1 -1
  335. package/package.json +174 -522
  336. package/popover/popover.d.ts +1 -1
  337. package/speeddial/speeddial.d.ts +2 -2
  338. package/treetable/treetable.d.ts +1 -1
  339. package/esm2022/accordion/accordion.mjs +0 -1266
  340. package/esm2022/accordion/primeng-accordion.mjs +0 -5
  341. package/esm2022/accordion/public_api.mjs +0 -3
  342. package/esm2022/accordion/style/accordionstyle.mjs +0 -163
  343. package/esm2022/animateonscroll/animateonscroll.mjs +0 -174
  344. package/esm2022/animateonscroll/primeng-animateonscroll.mjs +0 -5
  345. package/esm2022/animateonscroll/public_api.mjs +0 -2
  346. package/esm2022/api/blockableui.mjs +0 -2
  347. package/esm2022/api/confirmaeventtype.mjs +0 -10
  348. package/esm2022/api/confirmation.mjs +0 -2
  349. package/esm2022/api/confirmationservice.mjs +0 -43
  350. package/esm2022/api/contextmenuservice.mjs +0 -22
  351. package/esm2022/api/filtermatchmode.mjs +0 -23
  352. package/esm2022/api/filtermetadata.mjs +0 -2
  353. package/esm2022/api/filteroperator.mjs +0 -5
  354. package/esm2022/api/filterservice.mjs +0 -224
  355. package/esm2022/api/lazyloadevent.mjs +0 -2
  356. package/esm2022/api/lazyloadmeta.mjs +0 -2
  357. package/esm2022/api/megamenuitem.mjs +0 -2
  358. package/esm2022/api/menuitem.mjs +0 -2
  359. package/esm2022/api/messageservice.mjs +0 -47
  360. package/esm2022/api/overlayoptions.mjs +0 -2
  361. package/esm2022/api/overlayservice.mjs +0 -19
  362. package/esm2022/api/primeicons.mjs +0 -314
  363. package/esm2022/api/primeng-api.mjs +0 -5
  364. package/esm2022/api/public_api.mjs +0 -33
  365. package/esm2022/api/scrolleroptions.mjs +0 -2
  366. package/esm2022/api/selectitem.mjs +0 -2
  367. package/esm2022/api/selectitemgroup.mjs +0 -2
  368. package/esm2022/api/shared.mjs +0 -76
  369. package/esm2022/api/sortevent.mjs +0 -2
  370. package/esm2022/api/sortmeta.mjs +0 -2
  371. package/esm2022/api/tablestate.mjs +0 -2
  372. package/esm2022/api/toastmessage.mjs +0 -2
  373. package/esm2022/api/tooltipoptions.mjs +0 -2
  374. package/esm2022/api/translation.mjs +0 -2
  375. package/esm2022/api/translationkeys.mjs +0 -51
  376. package/esm2022/api/treedragdropservice.mjs +0 -21
  377. package/esm2022/api/treenode.mjs +0 -2
  378. package/esm2022/api/treenodedragevent.mjs +0 -2
  379. package/esm2022/api/treetablenode.mjs +0 -2
  380. package/esm2022/autocomplete/autocomplete.interface.mjs +0 -2
  381. package/esm2022/autocomplete/autocomplete.mjs +0 -2223
  382. package/esm2022/autocomplete/primeng-autocomplete.mjs +0 -5
  383. package/esm2022/autocomplete/public_api.mjs +0 -4
  384. package/esm2022/autocomplete/style/autocompletestyle.mjs +0 -409
  385. package/esm2022/autofocus/autofocus.mjs +0 -86
  386. package/esm2022/autofocus/primeng-autofocus.mjs +0 -5
  387. package/esm2022/autofocus/public_api.mjs +0 -2
  388. package/esm2022/avatar/avatar.mjs +0 -193
  389. package/esm2022/avatar/primeng-avatar.mjs +0 -5
  390. package/esm2022/avatar/public_api.mjs +0 -3
  391. package/esm2022/avatar/style/avatarstyle.mjs +0 -130
  392. package/esm2022/avatargroup/avatargroup.mjs +0 -80
  393. package/esm2022/avatargroup/primeng-avatargroup.mjs +0 -5
  394. package/esm2022/avatargroup/public_api.mjs +0 -3
  395. package/esm2022/avatargroup/style/avatargroupstyle.mjs +0 -29
  396. package/esm2022/badge/badge.mjs +0 -332
  397. package/esm2022/badge/primeng-badge.mjs +0 -5
  398. package/esm2022/badge/public_api.mjs +0 -3
  399. package/esm2022/badge/style/badgestyle.mjs +0 -143
  400. package/esm2022/base/base.mjs +0 -19
  401. package/esm2022/base/primeng-base.mjs +0 -5
  402. package/esm2022/base/public_api.mjs +0 -3
  403. package/esm2022/base/style/basestyle.mjs +0 -256
  404. package/esm2022/basecomponent/basecomponent.mjs +0 -183
  405. package/esm2022/basecomponent/primeng-basecomponent.mjs +0 -5
  406. package/esm2022/basecomponent/public_api.mjs +0 -3
  407. package/esm2022/basecomponent/style/basecomponentstyle.mjs +0 -13
  408. package/esm2022/blockui/blockui.interface.mjs +0 -2
  409. package/esm2022/blockui/blockui.mjs +0 -210
  410. package/esm2022/blockui/primeng-blockui.mjs +0 -5
  411. package/esm2022/blockui/public_api.mjs +0 -4
  412. package/esm2022/blockui/style/blockuistyle.mjs +0 -50
  413. package/esm2022/breadcrumb/breadcrumb.interface.mjs +0 -2
  414. package/esm2022/breadcrumb/breadcrumb.mjs +0 -583
  415. package/esm2022/breadcrumb/primeng-breadcrumb.mjs +0 -5
  416. package/esm2022/breadcrumb/public_api.mjs +0 -4
  417. package/esm2022/breadcrumb/style/breadcrumbstyle.mjs +0 -133
  418. package/esm2022/button/button.interface.mjs +0 -2
  419. package/esm2022/button/button.mjs +0 -896
  420. package/esm2022/button/primeng-button.mjs +0 -5
  421. package/esm2022/button/public_api.mjs +0 -4
  422. package/esm2022/button/style/buttonstyle.mjs +0 -707
  423. package/esm2022/buttongroup/buttongroup.mjs +0 -47
  424. package/esm2022/buttongroup/primeng-buttongroup.mjs +0 -5
  425. package/esm2022/buttongroup/public_api.mjs +0 -3
  426. package/esm2022/buttongroup/style/buttongroupstyle.mjs +0 -120
  427. package/esm2022/calendar/calendar.interface.mjs +0 -2
  428. package/esm2022/calendar/calendar.mjs +0 -4504
  429. package/esm2022/calendar/primeng-calendar.mjs +0 -5
  430. package/esm2022/calendar/public_api.mjs +0 -4
  431. package/esm2022/calendar/style/calendarstyle.mjs +0 -472
  432. package/esm2022/card/card.interface.mjs +0 -2
  433. package/esm2022/card/card.mjs +0 -243
  434. package/esm2022/card/primeng-card.mjs +0 -5
  435. package/esm2022/card/public_api.mjs +0 -4
  436. package/esm2022/card/style/cardstyle.mjs +0 -100
  437. package/esm2022/carousel/carousel.interface.mjs +0 -2
  438. package/esm2022/carousel/carousel.mjs +0 -1181
  439. package/esm2022/carousel/primeng-carousel.mjs +0 -5
  440. package/esm2022/carousel/public_api.mjs +0 -4
  441. package/esm2022/carousel/style/carouselstyle.mjs +0 -234
  442. package/esm2022/cascadeselect/cascadeselect.interface.mjs +0 -2
  443. package/esm2022/cascadeselect/cascadeselect.mjs +0 -1840
  444. package/esm2022/cascadeselect/primeng-cascadeselect.mjs +0 -5
  445. package/esm2022/cascadeselect/public_api.mjs +0 -4
  446. package/esm2022/cascadeselect/style/cascadeselectstyle.mjs +0 -379
  447. package/esm2022/chart/chart.mjs +0 -210
  448. package/esm2022/chart/primeng-chart.mjs +0 -5
  449. package/esm2022/chart/public_api.mjs +0 -3
  450. package/esm2022/chart/style/chartstyle.mjs +0 -36
  451. package/esm2022/checkbox/checkbox.interface.mjs +0 -2
  452. package/esm2022/checkbox/checkbox.mjs +0 -450
  453. package/esm2022/checkbox/primeng-checkbox.mjs +0 -5
  454. package/esm2022/checkbox/public_api.mjs +0 -4
  455. package/esm2022/checkbox/style/checkboxstyle.mjs +0 -191
  456. package/esm2022/chip/chip.interface.mjs +0 -2
  457. package/esm2022/chip/chip.mjs +0 -337
  458. package/esm2022/chip/primeng-chip.mjs +0 -5
  459. package/esm2022/chip/public_api.mjs +0 -4
  460. package/esm2022/chip/style/chipstyle.mjs +0 -104
  461. package/esm2022/colorpicker/colorpicker.interface.mjs +0 -2
  462. package/esm2022/colorpicker/colorpicker.mjs +0 -856
  463. package/esm2022/colorpicker/primeng-colorpicker.mjs +0 -5
  464. package/esm2022/colorpicker/public_api.mjs +0 -4
  465. package/esm2022/colorpicker/style/colorpickerstyle.mjs +0 -213
  466. package/esm2022/config/primeng-config.mjs +0 -5
  467. package/esm2022/config/primeng.mjs +0 -185
  468. package/esm2022/config/provideprimeng.mjs +0 -19
  469. package/esm2022/config/public_api.mjs +0 -4
  470. package/esm2022/config/themeprovider.mjs +0 -68
  471. package/esm2022/confirmdialog/confirmdialog.interface.mjs +0 -2
  472. package/esm2022/confirmdialog/confirmdialog.mjs +0 -815
  473. package/esm2022/confirmdialog/primeng-confirmdialog.mjs +0 -5
  474. package/esm2022/confirmdialog/public_api.mjs +0 -4
  475. package/esm2022/confirmdialog/style/confirmdialogstyle.mjs +0 -67
  476. package/esm2022/confirmpopup/confirmpopup.interface.mjs +0 -2
  477. package/esm2022/confirmpopup/confirmpopup.mjs +0 -619
  478. package/esm2022/confirmpopup/primeng-confirmpopup.mjs +0 -5
  479. package/esm2022/confirmpopup/public_api.mjs +0 -4
  480. package/esm2022/confirmpopup/style/confirmpopupstyle.mjs +0 -170
  481. package/esm2022/contextmenu/contextmenu.mjs +0 -1436
  482. package/esm2022/contextmenu/primeng-contextmenu.mjs +0 -5
  483. package/esm2022/contextmenu/public_api.mjs +0 -3
  484. package/esm2022/contextmenu/style/contextmenustyle.mjs +0 -244
  485. package/esm2022/dataview/dataview.interface.mjs +0 -2
  486. package/esm2022/dataview/dataview.mjs +0 -819
  487. package/esm2022/dataview/primeng-dataview.mjs +0 -5
  488. package/esm2022/dataview/public_api.mjs +0 -4
  489. package/esm2022/dataview/style/dataviewstyle.mjs +0 -115
  490. package/esm2022/datepicker/datepicker.interface.mjs +0 -2
  491. package/esm2022/datepicker/datepicker.mjs +0 -4539
  492. package/esm2022/datepicker/primeng-datepicker.mjs +0 -5
  493. package/esm2022/datepicker/public_api.mjs +0 -4
  494. package/esm2022/datepicker/style/datepickerstyle.mjs +0 -663
  495. package/esm2022/defer/defer.mjs +0 -100
  496. package/esm2022/defer/primeng-defer.mjs +0 -5
  497. package/esm2022/defer/public_api.mjs +0 -2
  498. package/esm2022/dialog/dialog.interface.mjs +0 -2
  499. package/esm2022/dialog/dialog.mjs +0 -1384
  500. package/esm2022/dialog/primeng-dialog.mjs +0 -5
  501. package/esm2022/dialog/public_api.mjs +0 -4
  502. package/esm2022/dialog/style/dialogstyle.mjs +0 -283
  503. package/esm2022/divider/divider.mjs +0 -119
  504. package/esm2022/divider/primeng-divider.mjs +0 -5
  505. package/esm2022/divider/public_api.mjs +0 -3
  506. package/esm2022/divider/style/dividerstyle.mjs +0 -138
  507. package/esm2022/dock/dock.interface.mjs +0 -2
  508. package/esm2022/dock/dock.mjs +0 -447
  509. package/esm2022/dock/primeng-dock.mjs +0 -5
  510. package/esm2022/dock/public_api.mjs +0 -4
  511. package/esm2022/dock/style/dockstyle.mjs +0 -210
  512. package/esm2022/dom/connectedoverlayscrollhandler.mjs +0 -30
  513. package/esm2022/dom/domhandler.mjs +0 -725
  514. package/esm2022/dom/primeng-dom.mjs +0 -5
  515. package/esm2022/dom/public_api.mjs +0 -3
  516. package/esm2022/dragdrop/dragdrop.mjs +0 -323
  517. package/esm2022/dragdrop/primeng-dragdrop.mjs +0 -5
  518. package/esm2022/dragdrop/public_api.mjs +0 -2
  519. package/esm2022/drawer/drawer.interface.mjs +0 -2
  520. package/esm2022/drawer/drawer.mjs +0 -663
  521. package/esm2022/drawer/primeng-drawer.mjs +0 -5
  522. package/esm2022/drawer/public_api.mjs +0 -4
  523. package/esm2022/drawer/style/drawerstyle.mjs +0 -283
  524. package/esm2022/dropdown/dropdown.interface.mjs +0 -2
  525. package/esm2022/dropdown/dropdown.mjs +0 -2498
  526. package/esm2022/dropdown/primeng-dropdown.mjs +0 -5
  527. package/esm2022/dropdown/public_api.mjs +0 -4
  528. package/esm2022/dropdown/style/dropdownstyle.mjs +0 -264
  529. package/esm2022/dynamicdialog/dialogservice.mjs +0 -105
  530. package/esm2022/dynamicdialog/dynamicdialog-config.mjs +0 -182
  531. package/esm2022/dynamicdialog/dynamicdialog-injector.mjs +0 -15
  532. package/esm2022/dynamicdialog/dynamicdialog-ref.mjs +0 -119
  533. package/esm2022/dynamicdialog/dynamicdialog.mjs +0 -875
  534. package/esm2022/dynamicdialog/dynamicdialogcontent.mjs +0 -18
  535. package/esm2022/dynamicdialog/primeng-dynamicdialog.mjs +0 -5
  536. package/esm2022/dynamicdialog/public_api.mjs +0 -8
  537. package/esm2022/dynamicdialog/style/dynamicdialogstyle.mjs +0 -60
  538. package/esm2022/editor/editor.interface.mjs +0 -2
  539. package/esm2022/editor/editor.mjs +0 -427
  540. package/esm2022/editor/primeng-editor.mjs +0 -5
  541. package/esm2022/editor/public_api.mjs +0 -4
  542. package/esm2022/editor/style/editorstyle.mjs +0 -1008
  543. package/esm2022/fieldset/fieldset.interface.mjs +0 -2
  544. package/esm2022/fieldset/fieldset.mjs +0 -427
  545. package/esm2022/fieldset/primeng-fieldset.mjs +0 -5
  546. package/esm2022/fieldset/public_api.mjs +0 -4
  547. package/esm2022/fieldset/style/fieldsetstyle.mjs +0 -143
  548. package/esm2022/fileupload/fileupload.interface.mjs +0 -2
  549. package/esm2022/fileupload/fileupload.mjs +0 -1597
  550. package/esm2022/fileupload/primeng-fileupload.mjs +0 -5
  551. package/esm2022/fileupload/public_api.mjs +0 -4
  552. package/esm2022/fileupload/style/fileuploadstyle.mjs +0 -194
  553. package/esm2022/floatlabel/floatlabel.mjs +0 -61
  554. package/esm2022/floatlabel/primeng-floatlabel.mjs +0 -5
  555. package/esm2022/floatlabel/public_api.mjs +0 -3
  556. package/esm2022/floatlabel/style/floatlabelstyle.mjs +0 -133
  557. package/esm2022/fluid/fluid.mjs +0 -50
  558. package/esm2022/fluid/primeng-fluid.mjs +0 -5
  559. package/esm2022/fluid/public_api.mjs +0 -3
  560. package/esm2022/fluid/style/fluidstyle.mjs +0 -38
  561. package/esm2022/focustrap/focustrap.mjs +0 -104
  562. package/esm2022/focustrap/primeng-focustrap.mjs +0 -5
  563. package/esm2022/focustrap/public_api.mjs +0 -2
  564. package/esm2022/galleria/galleria.interface.mjs +0 -2
  565. package/esm2022/galleria/galleria.mjs +0 -1858
  566. package/esm2022/galleria/primeng-galleria.mjs +0 -5
  567. package/esm2022/galleria/public_api.mjs +0 -4
  568. package/esm2022/galleria/style/galleriastyle.mjs +0 -644
  569. package/esm2022/iconfield/iconfield.mjs +0 -73
  570. package/esm2022/iconfield/primeng-iconfield.mjs +0 -5
  571. package/esm2022/iconfield/public_api.mjs +0 -3
  572. package/esm2022/iconfield/style/iconfieldstyle.mjs +0 -77
  573. package/esm2022/icons/angledoubledown/angledoubledown.mjs +0 -34
  574. package/esm2022/icons/angledoubledown/primeng-icons-angledoubledown.mjs +0 -5
  575. package/esm2022/icons/angledoubledown/public_api.mjs +0 -2
  576. package/esm2022/icons/angledoubleleft/angledoubleleft.mjs +0 -34
  577. package/esm2022/icons/angledoubleleft/primeng-icons-angledoubleleft.mjs +0 -5
  578. package/esm2022/icons/angledoubleleft/public_api.mjs +0 -2
  579. package/esm2022/icons/angledoubleright/angledoubleright.mjs +0 -34
  580. package/esm2022/icons/angledoubleright/primeng-icons-angledoubleright.mjs +0 -5
  581. package/esm2022/icons/angledoubleright/public_api.mjs +0 -2
  582. package/esm2022/icons/angledoubleup/angledoubleup.mjs +0 -34
  583. package/esm2022/icons/angledoubleup/primeng-icons-angledoubleup.mjs +0 -5
  584. package/esm2022/icons/angledoubleup/public_api.mjs +0 -2
  585. package/esm2022/icons/angledown/angledown.mjs +0 -32
  586. package/esm2022/icons/angledown/primeng-icons-angledown.mjs +0 -5
  587. package/esm2022/icons/angledown/public_api.mjs +0 -2
  588. package/esm2022/icons/angleleft/angleleft.mjs +0 -32
  589. package/esm2022/icons/angleleft/primeng-icons-angleleft.mjs +0 -5
  590. package/esm2022/icons/angleleft/public_api.mjs +0 -2
  591. package/esm2022/icons/angleright/angleright.mjs +0 -32
  592. package/esm2022/icons/angleright/primeng-icons-angleright.mjs +0 -5
  593. package/esm2022/icons/angleright/public_api.mjs +0 -2
  594. package/esm2022/icons/angleup/angleup.mjs +0 -32
  595. package/esm2022/icons/angleup/primeng-icons-angleup.mjs +0 -5
  596. package/esm2022/icons/angleup/public_api.mjs +0 -2
  597. package/esm2022/icons/arrowdown/arrowdown.mjs +0 -53
  598. package/esm2022/icons/arrowdown/primeng-icons-arrowdown.mjs +0 -5
  599. package/esm2022/icons/arrowdown/public_api.mjs +0 -2
  600. package/esm2022/icons/arrowdownleft/arrowdownleft.mjs +0 -32
  601. package/esm2022/icons/arrowdownleft/primeng-icons-arrowdownleft.mjs +0 -5
  602. package/esm2022/icons/arrowdownleft/public_api.mjs +0 -2
  603. package/esm2022/icons/arrowdownright/arrowdownright.mjs +0 -32
  604. package/esm2022/icons/arrowdownright/primeng-icons-arrowdownright.mjs +0 -5
  605. package/esm2022/icons/arrowdownright/public_api.mjs +0 -2
  606. package/esm2022/icons/arrowleft/arrowleft.mjs +0 -53
  607. package/esm2022/icons/arrowleft/primeng-icons-arrowleft.mjs +0 -5
  608. package/esm2022/icons/arrowleft/public_api.mjs +0 -2
  609. package/esm2022/icons/arrowright/arrowright.mjs +0 -34
  610. package/esm2022/icons/arrowright/primeng-icons-arrowright.mjs +0 -5
  611. package/esm2022/icons/arrowright/public_api.mjs +0 -2
  612. package/esm2022/icons/arrowup/arrowup.mjs +0 -53
  613. package/esm2022/icons/arrowup/primeng-icons-arrowup.mjs +0 -5
  614. package/esm2022/icons/arrowup/public_api.mjs +0 -2
  615. package/esm2022/icons/ban/ban.mjs +0 -51
  616. package/esm2022/icons/ban/primeng-icons-ban.mjs +0 -5
  617. package/esm2022/icons/ban/public_api.mjs +0 -2
  618. package/esm2022/icons/bars/bars.mjs +0 -34
  619. package/esm2022/icons/bars/primeng-icons-bars.mjs +0 -5
  620. package/esm2022/icons/bars/public_api.mjs +0 -2
  621. package/esm2022/icons/baseicon/baseicon.mjs +0 -54
  622. package/esm2022/icons/baseicon/primeng-icons-baseicon.mjs +0 -5
  623. package/esm2022/icons/baseicon/public_api.mjs +0 -3
  624. package/esm2022/icons/baseicon/style/baseiconstyle.mjs +0 -57
  625. package/esm2022/icons/blank/blank.mjs +0 -26
  626. package/esm2022/icons/blank/primeng-icons-blank.mjs +0 -5
  627. package/esm2022/icons/blank/public_api.mjs +0 -2
  628. package/esm2022/icons/calendar/calendar.mjs +0 -32
  629. package/esm2022/icons/calendar/primeng-icons-calendar.mjs +0 -5
  630. package/esm2022/icons/calendar/public_api.mjs +0 -2
  631. package/esm2022/icons/caretleft/caretleft.mjs +0 -32
  632. package/esm2022/icons/caretleft/primeng-icons-caretleft.mjs +0 -5
  633. package/esm2022/icons/caretleft/public_api.mjs +0 -2
  634. package/esm2022/icons/caretright/caretright.mjs +0 -32
  635. package/esm2022/icons/caretright/primeng-icons-caretright.mjs +0 -5
  636. package/esm2022/icons/caretright/public_api.mjs +0 -2
  637. package/esm2022/icons/check/check.mjs +0 -32
  638. package/esm2022/icons/check/primeng-icons-check.mjs +0 -5
  639. package/esm2022/icons/check/public_api.mjs +0 -2
  640. package/esm2022/icons/chevrondown/chevrondown.mjs +0 -32
  641. package/esm2022/icons/chevrondown/primeng-icons-chevrondown.mjs +0 -5
  642. package/esm2022/icons/chevrondown/public_api.mjs +0 -2
  643. package/esm2022/icons/chevronleft/chevronleft.mjs +0 -32
  644. package/esm2022/icons/chevronleft/primeng-icons-chevronleft.mjs +0 -5
  645. package/esm2022/icons/chevronleft/public_api.mjs +0 -2
  646. package/esm2022/icons/chevronright/chevronright.mjs +0 -32
  647. package/esm2022/icons/chevronright/primeng-icons-chevronright.mjs +0 -5
  648. package/esm2022/icons/chevronright/public_api.mjs +0 -2
  649. package/esm2022/icons/chevronup/chevronup.mjs +0 -32
  650. package/esm2022/icons/chevronup/primeng-icons-chevronup.mjs +0 -5
  651. package/esm2022/icons/chevronup/public_api.mjs +0 -2
  652. package/esm2022/icons/exclamationtriangle/exclamationtriangle.mjs +0 -59
  653. package/esm2022/icons/exclamationtriangle/primeng-icons-exclamationtriangle.mjs +0 -5
  654. package/esm2022/icons/exclamationtriangle/public_api.mjs +0 -2
  655. package/esm2022/icons/eye/eye.mjs +0 -34
  656. package/esm2022/icons/eye/primeng-icons-eye.mjs +0 -5
  657. package/esm2022/icons/eye/public_api.mjs +0 -2
  658. package/esm2022/icons/eyeslash/eyeslash.mjs +0 -53
  659. package/esm2022/icons/eyeslash/primeng-icons-eyeslash.mjs +0 -5
  660. package/esm2022/icons/eyeslash/public_api.mjs +0 -2
  661. package/esm2022/icons/filter/filter.mjs +0 -51
  662. package/esm2022/icons/filter/primeng-icons-filter.mjs +0 -5
  663. package/esm2022/icons/filter/public_api.mjs +0 -2
  664. package/esm2022/icons/filterslash/filterslash.mjs +0 -53
  665. package/esm2022/icons/filterslash/primeng-icons-filterslash.mjs +0 -5
  666. package/esm2022/icons/filterslash/public_api.mjs +0 -2
  667. package/esm2022/icons/home/home.mjs +0 -53
  668. package/esm2022/icons/home/primeng-icons-home.mjs +0 -5
  669. package/esm2022/icons/home/public_api.mjs +0 -2
  670. package/esm2022/icons/infocircle/infocircle.mjs +0 -53
  671. package/esm2022/icons/infocircle/primeng-icons-infocircle.mjs +0 -5
  672. package/esm2022/icons/infocircle/public_api.mjs +0 -2
  673. package/esm2022/icons/minus/minus.mjs +0 -32
  674. package/esm2022/icons/minus/primeng-icons-minus.mjs +0 -5
  675. package/esm2022/icons/minus/public_api.mjs +0 -2
  676. package/esm2022/icons/pencil/pencil.mjs +0 -51
  677. package/esm2022/icons/pencil/primeng-icons-pencil.mjs +0 -5
  678. package/esm2022/icons/pencil/public_api.mjs +0 -2
  679. package/esm2022/icons/plus/plus.mjs +0 -51
  680. package/esm2022/icons/plus/primeng-icons-plus.mjs +0 -5
  681. package/esm2022/icons/plus/public_api.mjs +0 -2
  682. package/esm2022/icons/primeng-icons.mjs +0 -5
  683. package/esm2022/icons/public_api.mjs +0 -58
  684. package/esm2022/icons/refresh/primeng-icons-refresh.mjs +0 -5
  685. package/esm2022/icons/refresh/public_api.mjs +0 -2
  686. package/esm2022/icons/refresh/refresh.mjs +0 -53
  687. package/esm2022/icons/search/primeng-icons-search.mjs +0 -5
  688. package/esm2022/icons/search/public_api.mjs +0 -2
  689. package/esm2022/icons/search/search.mjs +0 -53
  690. package/esm2022/icons/searchminus/primeng-icons-searchminus.mjs +0 -5
  691. package/esm2022/icons/searchminus/public_api.mjs +0 -2
  692. package/esm2022/icons/searchminus/searchminus.mjs +0 -53
  693. package/esm2022/icons/searchplus/primeng-icons-searchplus.mjs +0 -5
  694. package/esm2022/icons/searchplus/public_api.mjs +0 -2
  695. package/esm2022/icons/searchplus/searchplus.mjs +0 -53
  696. package/esm2022/icons/sortalt/primeng-icons-sortalt.mjs +0 -5
  697. package/esm2022/icons/sortalt/public_api.mjs +0 -2
  698. package/esm2022/icons/sortalt/sortalt.mjs +0 -57
  699. package/esm2022/icons/sortamountdown/primeng-icons-sortamountdown.mjs +0 -5
  700. package/esm2022/icons/sortamountdown/public_api.mjs +0 -2
  701. package/esm2022/icons/sortamountdown/sortamountdown.mjs +0 -51
  702. package/esm2022/icons/sortamountupalt/primeng-icons-sortamountupalt.mjs +0 -5
  703. package/esm2022/icons/sortamountupalt/public_api.mjs +0 -2
  704. package/esm2022/icons/sortamountupalt/sortamountupalt.mjs +0 -51
  705. package/esm2022/icons/spinner/primeng-icons-spinner.mjs +0 -5
  706. package/esm2022/icons/spinner/public_api.mjs +0 -2
  707. package/esm2022/icons/spinner/spinner.mjs +0 -51
  708. package/esm2022/icons/star/primeng-icons-star.mjs +0 -5
  709. package/esm2022/icons/star/public_api.mjs +0 -2
  710. package/esm2022/icons/star/star.mjs +0 -51
  711. package/esm2022/icons/starfill/primeng-icons-starfill.mjs +0 -5
  712. package/esm2022/icons/starfill/public_api.mjs +0 -2
  713. package/esm2022/icons/starfill/starfill.mjs +0 -51
  714. package/esm2022/icons/thlarge/primeng-icons-thlarge.mjs +0 -5
  715. package/esm2022/icons/thlarge/public_api.mjs +0 -2
  716. package/esm2022/icons/thlarge/thlarge.mjs +0 -53
  717. package/esm2022/icons/times/primeng-icons-times.mjs +0 -5
  718. package/esm2022/icons/times/public_api.mjs +0 -2
  719. package/esm2022/icons/times/times.mjs +0 -32
  720. package/esm2022/icons/timescircle/primeng-icons-timescircle.mjs +0 -5
  721. package/esm2022/icons/timescircle/public_api.mjs +0 -2
  722. package/esm2022/icons/timescircle/timescircle.mjs +0 -53
  723. package/esm2022/icons/trash/primeng-icons-trash.mjs +0 -5
  724. package/esm2022/icons/trash/public_api.mjs +0 -2
  725. package/esm2022/icons/trash/trash.mjs +0 -53
  726. package/esm2022/icons/undo/primeng-icons-undo.mjs +0 -5
  727. package/esm2022/icons/undo/public_api.mjs +0 -2
  728. package/esm2022/icons/undo/undo.mjs +0 -53
  729. package/esm2022/icons/upload/primeng-icons-upload.mjs +0 -5
  730. package/esm2022/icons/upload/public_api.mjs +0 -2
  731. package/esm2022/icons/upload/upload.mjs +0 -53
  732. package/esm2022/icons/windowmaximize/primeng-icons-windowmaximize.mjs +0 -5
  733. package/esm2022/icons/windowmaximize/public_api.mjs +0 -2
  734. package/esm2022/icons/windowmaximize/windowmaximize.mjs +0 -53
  735. package/esm2022/icons/windowminimize/primeng-icons-windowminimize.mjs +0 -5
  736. package/esm2022/icons/windowminimize/public_api.mjs +0 -2
  737. package/esm2022/icons/windowminimize/windowminimize.mjs +0 -53
  738. package/esm2022/iftalabel/iftalabel.mjs +0 -49
  739. package/esm2022/iftalabel/primeng-iftalabel.mjs +0 -5
  740. package/esm2022/iftalabel/public_api.mjs +0 -3
  741. package/esm2022/iftalabel/style/iftalabelstyle.mjs +0 -96
  742. package/esm2022/image/image.interface.mjs +0 -2
  743. package/esm2022/image/image.mjs +0 -747
  744. package/esm2022/image/primeng-image.mjs +0 -5
  745. package/esm2022/image/public_api.mjs +0 -4
  746. package/esm2022/image/style/imagestyle.mjs +0 -219
  747. package/esm2022/imagecompare/imagecompare.mjs +0 -158
  748. package/esm2022/imagecompare/primeng-imagecompare.mjs +0 -5
  749. package/esm2022/imagecompare/public_api.mjs +0 -3
  750. package/esm2022/imagecompare/style/imagecomparestyle.mjs +0 -124
  751. package/esm2022/inplace/inplace.interface.mjs +0 -2
  752. package/esm2022/inplace/inplace.mjs +0 -344
  753. package/esm2022/inplace/primeng-inplace.mjs +0 -5
  754. package/esm2022/inplace/public_api.mjs +0 -4
  755. package/esm2022/inplace/style/inplacestyle.mjs +0 -69
  756. package/esm2022/inputgroup/inputgroup.mjs +0 -68
  757. package/esm2022/inputgroup/primeng-inputgroup.mjs +0 -5
  758. package/esm2022/inputgroup/public_api.mjs +0 -3
  759. package/esm2022/inputgroup/style/inputgroupstyle.mjs +0 -145
  760. package/esm2022/inputgroupaddon/inputgroupaddon.mjs +0 -74
  761. package/esm2022/inputgroupaddon/primeng-inputgroupaddon.mjs +0 -5
  762. package/esm2022/inputgroupaddon/public_api.mjs +0 -3
  763. package/esm2022/inputgroupaddon/style/inputgroupaddonstyle.mjs +0 -16
  764. package/esm2022/inputicon/inputicon.mjs +0 -66
  765. package/esm2022/inputicon/primeng-inputicon.mjs +0 -5
  766. package/esm2022/inputicon/public_api.mjs +0 -3
  767. package/esm2022/inputicon/style/inputiconstyle.mjs +0 -16
  768. package/esm2022/inputmask/inputmask.interface.mjs +0 -2
  769. package/esm2022/inputmask/inputmask.mjs +0 -911
  770. package/esm2022/inputmask/primeng-inputmask.mjs +0 -5
  771. package/esm2022/inputmask/public_api.mjs +0 -4
  772. package/esm2022/inputmask/style/inputmaskstyle.mjs +0 -62
  773. package/esm2022/inputnumber/inputnumber.interface.mjs +0 -2
  774. package/esm2022/inputnumber/inputnumber.mjs +0 -1745
  775. package/esm2022/inputnumber/primeng-inputnumber.mjs +0 -5
  776. package/esm2022/inputnumber/public_api.mjs +0 -4
  777. package/esm2022/inputnumber/style/inputnumberstyle.mjs +0 -240
  778. package/esm2022/inputotp/inputotp.mjs +0 -406
  779. package/esm2022/inputotp/primeng-inputotp.mjs +0 -5
  780. package/esm2022/inputotp/public_api.mjs +0 -3
  781. package/esm2022/inputotp/style/inputotpstyle.mjs +0 -60
  782. package/esm2022/inputswitch/inputswitch.interface.mjs +0 -2
  783. package/esm2022/inputswitch/inputswitch.mjs +0 -241
  784. package/esm2022/inputswitch/primeng-inputswitch.mjs +0 -5
  785. package/esm2022/inputswitch/public_api.mjs +0 -4
  786. package/esm2022/inputswitch/style/inputswitchstyle.mjs +0 -130
  787. package/esm2022/inputtext/inputtext.mjs +0 -104
  788. package/esm2022/inputtext/primeng-inputtext.mjs +0 -5
  789. package/esm2022/inputtext/public_api.mjs +0 -3
  790. package/esm2022/inputtext/style/inputtextstyle.mjs +0 -117
  791. package/esm2022/inputtextarea/inputtextarea.mjs +0 -156
  792. package/esm2022/inputtextarea/primeng-inputtextarea.mjs +0 -5
  793. package/esm2022/inputtextarea/public_api.mjs +0 -3
  794. package/esm2022/inputtextarea/style/textareastyle.mjs +0 -107
  795. package/esm2022/keyfilter/keyfilter.interface.mjs +0 -2
  796. package/esm2022/keyfilter/keyfilter.mjs +0 -263
  797. package/esm2022/keyfilter/primeng-keyfilter.mjs +0 -5
  798. package/esm2022/keyfilter/public_api.mjs +0 -3
  799. package/esm2022/knob/knob.mjs +0 -471
  800. package/esm2022/knob/primeng-knob.mjs +0 -5
  801. package/esm2022/knob/public_api.mjs +0 -3
  802. package/esm2022/knob/style/knobstyle.mjs +0 -83
  803. package/esm2022/listbox/listbox.interface.mjs +0 -2
  804. package/esm2022/listbox/listbox.mjs +0 -2044
  805. package/esm2022/listbox/primeng-listbox.mjs +0 -5
  806. package/esm2022/listbox/public_api.mjs +0 -4
  807. package/esm2022/listbox/style/listboxstyle.mjs +0 -206
  808. package/esm2022/megamenu/megamenu.interface.mjs +0 -2
  809. package/esm2022/megamenu/megamenu.mjs +0 -1607
  810. package/esm2022/megamenu/primeng-megamenu.mjs +0 -5
  811. package/esm2022/megamenu/public_api.mjs +0 -4
  812. package/esm2022/megamenu/style/megamenustyle.mjs +0 -487
  813. package/esm2022/menu/menu.mjs +0 -1193
  814. package/esm2022/menu/primeng-menu.mjs +0 -5
  815. package/esm2022/menu/public_api.mjs +0 -3
  816. package/esm2022/menu/style/menustyle.mjs +0 -179
  817. package/esm2022/menubar/menubar.interface.mjs +0 -2
  818. package/esm2022/menubar/menubar.mjs +0 -1484
  819. package/esm2022/menubar/primeng-menubar.mjs +0 -5
  820. package/esm2022/menubar/public_api.mjs +0 -4
  821. package/esm2022/menubar/style/menubarstyle.mjs +0 -375
  822. package/esm2022/message/message.mjs +0 -421
  823. package/esm2022/message/primeng-message.mjs +0 -5
  824. package/esm2022/message/public_api.mjs +0 -3
  825. package/esm2022/message/style/messagestyle.mjs +0 -357
  826. package/esm2022/messages/messages.interface.mjs +0 -2
  827. package/esm2022/messages/messages.mjs +0 -529
  828. package/esm2022/messages/primeng-messages.mjs +0 -5
  829. package/esm2022/messages/public_api.mjs +0 -4
  830. package/esm2022/messages/style/messagesstyle.mjs +0 -229
  831. package/esm2022/metergroup/metergroup.interface.mjs +0 -2
  832. package/esm2022/metergroup/metergroup.mjs +0 -423
  833. package/esm2022/metergroup/primeng-metergroup.mjs +0 -5
  834. package/esm2022/metergroup/public_api.mjs +0 -4
  835. package/esm2022/metergroup/style/metergroupstyle.mjs +0 -169
  836. package/esm2022/multiselect/multiselect.interface.mjs +0 -2
  837. package/esm2022/multiselect/multiselect.mjs +0 -2924
  838. package/esm2022/multiselect/primeng-multiselect.mjs +0 -5
  839. package/esm2022/multiselect/public_api.mjs +0 -4
  840. package/esm2022/multiselect/style/multiselectstyle.mjs +0 -373
  841. package/esm2022/orderlist/orderlist.interface.mjs +0 -2
  842. package/esm2022/orderlist/orderlist.mjs +0 -1121
  843. package/esm2022/orderlist/primeng-orderlist.mjs +0 -5
  844. package/esm2022/orderlist/public_api.mjs +0 -4
  845. package/esm2022/orderlist/style/orderliststyle.mjs +0 -51
  846. package/esm2022/organizationchart/organizationchart.interface.mjs +0 -2
  847. package/esm2022/organizationchart/organizationchart.mjs +0 -591
  848. package/esm2022/organizationchart/primeng-organizationchart.mjs +0 -5
  849. package/esm2022/organizationchart/public_api.mjs +0 -4
  850. package/esm2022/organizationchart/style/organizationchartstyle.mjs +0 -191
  851. package/esm2022/overlay/overlay.mjs +0 -668
  852. package/esm2022/overlay/primeng-overlay.mjs +0 -5
  853. package/esm2022/overlay/public_api.mjs +0 -3
  854. package/esm2022/overlay/style/overlaystyle.mjs +0 -93
  855. package/esm2022/overlaybadge/overlaybadge.mjs +0 -121
  856. package/esm2022/overlaybadge/primeng-overlaybadge.mjs +0 -5
  857. package/esm2022/overlaybadge/public_api.mjs +0 -3
  858. package/esm2022/overlaybadge/style/overlaybadgestyle.mjs +0 -34
  859. package/esm2022/overlaypanel/overlaypanel.mjs +0 -529
  860. package/esm2022/overlaypanel/primeng-overlaypanel.mjs +0 -5
  861. package/esm2022/overlaypanel/public_api.mjs +0 -3
  862. package/esm2022/overlaypanel/style/popoverstyle.mjs +0 -119
  863. package/esm2022/paginator/paginator.interface.mjs +0 -2
  864. package/esm2022/paginator/paginator.mjs +0 -893
  865. package/esm2022/paginator/primeng-paginator.mjs +0 -5
  866. package/esm2022/paginator/public_api.mjs +0 -4
  867. package/esm2022/paginator/style/paginatorstyle.mjs +0 -243
  868. package/esm2022/panel/panel.mjs +0 -585
  869. package/esm2022/panel/primeng-panel.mjs +0 -5
  870. package/esm2022/panel/public_api.mjs +0 -3
  871. package/esm2022/panel/style/panelstyle.mjs +0 -120
  872. package/esm2022/panelmenu/panelmenu.interface.mjs +0 -2
  873. package/esm2022/panelmenu/panelmenu.mjs +0 -1628
  874. package/esm2022/panelmenu/primeng-panelmenu.mjs +0 -5
  875. package/esm2022/panelmenu/public_api.mjs +0 -4
  876. package/esm2022/panelmenu/style/panelmenustyle.mjs +0 -291
  877. package/esm2022/password/password.mjs +0 -1201
  878. package/esm2022/password/primeng-password.mjs +0 -5
  879. package/esm2022/password/public_api.mjs +0 -3
  880. package/esm2022/password/style/passwordstyle.mjs +0 -182
  881. package/esm2022/picklist/picklist.interface.mjs +0 -2
  882. package/esm2022/picklist/picklist.mjs +0 -2322
  883. package/esm2022/picklist/primeng-picklist.mjs +0 -5
  884. package/esm2022/picklist/public_api.mjs +0 -4
  885. package/esm2022/picklist/style/pickliststyle.mjs +0 -79
  886. package/esm2022/popover/popover.mjs +0 -518
  887. package/esm2022/popover/primeng-popover.mjs +0 -5
  888. package/esm2022/popover/public_api.mjs +0 -3
  889. package/esm2022/popover/style/popoverstyle.mjs +0 -99
  890. package/esm2022/primeng.mjs +0 -5
  891. package/esm2022/progressbar/primeng-progressbar.mjs +0 -5
  892. package/esm2022/progressbar/progressbar.mjs +0 -197
  893. package/esm2022/progressbar/public_api.mjs +0 -3
  894. package/esm2022/progressbar/style/progressbarstyle.mjs +0 -165
  895. package/esm2022/progressspinner/primeng-progressspinner.mjs +0 -5
  896. package/esm2022/progressspinner/progressspinner.mjs +0 -105
  897. package/esm2022/progressspinner/public_api.mjs +0 -3
  898. package/esm2022/progressspinner/style/progressspinnerstyle.mjs +0 -115
  899. package/esm2022/public_api.mjs +0 -2
  900. package/esm2022/radiobutton/primeng-radiobutton.mjs +0 -5
  901. package/esm2022/radiobutton/public_api.mjs +0 -4
  902. package/esm2022/radiobutton/radiobutton.interface.mjs +0 -2
  903. package/esm2022/radiobutton/radiobutton.mjs +0 -356
  904. package/esm2022/radiobutton/style/radiobuttonstyle.mjs +0 -196
  905. package/esm2022/rating/primeng-rating.mjs +0 -5
  906. package/esm2022/rating/public_api.mjs +0 -4
  907. package/esm2022/rating/rating.interface.mjs +0 -2
  908. package/esm2022/rating/rating.mjs +0 -425
  909. package/esm2022/rating/style/ratingstyle.mjs +0 -103
  910. package/esm2022/ripple/primeng-ripple.mjs +0 -5
  911. package/esm2022/ripple/public_api.mjs +0 -3
  912. package/esm2022/ripple/ripple.mjs +0 -134
  913. package/esm2022/ripple/style/ripplestyle.mjs +0 -63
  914. package/esm2022/scroller/primeng-scroller.mjs +0 -5
  915. package/esm2022/scroller/public_api.mjs +0 -4
  916. package/esm2022/scroller/scroller.interface.mjs +0 -2
  917. package/esm2022/scroller/scroller.mjs +0 -1290
  918. package/esm2022/scroller/style/scrollerstyle.mjs +0 -104
  919. package/esm2022/scrollpanel/primeng-scrollpanel.mjs +0 -5
  920. package/esm2022/scrollpanel/public_api.mjs +0 -4
  921. package/esm2022/scrollpanel/scrollpanel.interface.mjs +0 -2
  922. package/esm2022/scrollpanel/scrollpanel.mjs +0 -506
  923. package/esm2022/scrollpanel/style/scrollpanelstyle.mjs +0 -120
  924. package/esm2022/scrolltop/primeng-scrolltop.mjs +0 -5
  925. package/esm2022/scrolltop/public_api.mjs +0 -4
  926. package/esm2022/scrolltop/scrolltop.interface.mjs +0 -2
  927. package/esm2022/scrolltop/scrolltop.mjs +0 -336
  928. package/esm2022/scrolltop/style/scrolltopstyle.mjs +0 -77
  929. package/esm2022/select/primeng-select.mjs +0 -5
  930. package/esm2022/select/public_api.mjs +0 -4
  931. package/esm2022/select/select.interface.mjs +0 -2
  932. package/esm2022/select/select.mjs +0 -2618
  933. package/esm2022/select/style/selectstyle.mjs +0 -365
  934. package/esm2022/selectbutton/primeng-selectbutton.mjs +0 -5
  935. package/esm2022/selectbutton/public_api.mjs +0 -4
  936. package/esm2022/selectbutton/selectbutton.interface.mjs +0 -2
  937. package/esm2022/selectbutton/selectbutton.mjs +0 -373
  938. package/esm2022/selectbutton/style/selectbuttonstyle.mjs +0 -73
  939. package/esm2022/sidebar/primeng-sidebar.mjs +0 -5
  940. package/esm2022/sidebar/public_api.mjs +0 -4
  941. package/esm2022/sidebar/sidebar.interface.mjs +0 -2
  942. package/esm2022/sidebar/sidebar.mjs +0 -578
  943. package/esm2022/sidebar/style/drawerstyle.mjs +0 -174
  944. package/esm2022/skeleton/primeng-skeleton.mjs +0 -5
  945. package/esm2022/skeleton/public_api.mjs +0 -3
  946. package/esm2022/skeleton/skeleton.mjs +0 -121
  947. package/esm2022/skeleton/style/skeletonstyle.mjs +0 -93
  948. package/esm2022/slider/primeng-slider.mjs +0 -5
  949. package/esm2022/slider/public_api.mjs +0 -4
  950. package/esm2022/slider/slider.interface.mjs +0 -2
  951. package/esm2022/slider/slider.mjs +0 -820
  952. package/esm2022/slider/style/sliderstyle.mjs +0 -141
  953. package/esm2022/speeddial/primeng-speeddial.mjs +0 -5
  954. package/esm2022/speeddial/public_api.mjs +0 -4
  955. package/esm2022/speeddial/speeddial.interface.mjs +0 -2
  956. package/esm2022/speeddial/speeddial.mjs +0 -866
  957. package/esm2022/speeddial/style/speeddialstyle.mjs +0 -167
  958. package/esm2022/splitbutton/primeng-splitbutton.mjs +0 -5
  959. package/esm2022/splitbutton/public_api.mjs +0 -4
  960. package/esm2022/splitbutton/splitbutton.interface.mjs +0 -2
  961. package/esm2022/splitbutton/splitbutton.mjs +0 -579
  962. package/esm2022/splitbutton/style/splitbuttonstyle.mjs +0 -100
  963. package/esm2022/splitter/primeng-splitter.mjs +0 -5
  964. package/esm2022/splitter/public_api.mjs +0 -4
  965. package/esm2022/splitter/splitter.interface.mjs +0 -2
  966. package/esm2022/splitter/splitter.mjs +0 -626
  967. package/esm2022/splitter/style/splitterstyle.mjs +0 -127
  968. package/esm2022/stepper/primeng-stepper.mjs +0 -5
  969. package/esm2022/stepper/public_api.mjs +0 -3
  970. package/esm2022/stepper/stepper.mjs +0 -521
  971. package/esm2022/stepper/style/stepperstyle.mjs +0 -228
  972. package/esm2022/steps/primeng-steps.mjs +0 -5
  973. package/esm2022/steps/public_api.mjs +0 -3
  974. package/esm2022/steps/steps.mjs +0 -405
  975. package/esm2022/steps/style/stepsstyle.mjs +0 -180
  976. package/esm2022/styleclass/primeng-styleclass.mjs +0 -5
  977. package/esm2022/styleclass/public_api.mjs +0 -2
  978. package/esm2022/styleclass/styleclass.mjs +0 -315
  979. package/esm2022/table/columnfilter.interface.mjs +0 -2
  980. package/esm2022/table/primeng-table.mjs +0 -5
  981. package/esm2022/table/public_api.mjs +0 -5
  982. package/esm2022/table/style/tablestyle.mjs +0 -906
  983. package/esm2022/table/table.interface.mjs +0 -2
  984. package/esm2022/table/table.mjs +0 -7829
  985. package/esm2022/tabmenu/primeng-tabmenu.mjs +0 -5
  986. package/esm2022/tabmenu/public_api.mjs +0 -4
  987. package/esm2022/tabmenu/style/tabmenustyle.mjs +0 -192
  988. package/esm2022/tabmenu/tabmenu.interface.mjs +0 -2
  989. package/esm2022/tabmenu/tabmenu.mjs +0 -730
  990. package/esm2022/tabs/primeng-tabs.mjs +0 -5
  991. package/esm2022/tabs/public_api.mjs +0 -7
  992. package/esm2022/tabs/style/tabsstyle.mjs +0 -211
  993. package/esm2022/tabs/tab.mjs +0 -175
  994. package/esm2022/tabs/tablist.mjs +0 -297
  995. package/esm2022/tabs/tabpanel.mjs +0 -60
  996. package/esm2022/tabs/tabpanels.mjs +0 -38
  997. package/esm2022/tabs/tabs.mjs +0 -105
  998. package/esm2022/tabview/primeng-tabview.mjs +0 -5
  999. package/esm2022/tabview/public_api.mjs +0 -4
  1000. package/esm2022/tabview/style/tabsstyle.mjs +0 -211
  1001. package/esm2022/tabview/tabview.interface.mjs +0 -2
  1002. package/esm2022/tabview/tabview.mjs +0 -1089
  1003. package/esm2022/tag/primeng-tag.mjs +0 -5
  1004. package/esm2022/tag/public_api.mjs +0 -4
  1005. package/esm2022/tag/style/tagstyle.mjs +0 -108
  1006. package/esm2022/tag/tag.interface.mjs +0 -2
  1007. package/esm2022/tag/tag.mjs +0 -168
  1008. package/esm2022/terminal/primeng-terminal.mjs +0 -5
  1009. package/esm2022/terminal/public_api.mjs +0 -4
  1010. package/esm2022/terminal/style/terminalstyle.mjs +0 -113
  1011. package/esm2022/terminal/terminal.mjs +0 -195
  1012. package/esm2022/terminal/terminalservice.mjs +0 -25
  1013. package/esm2022/textarea/primeng-textarea.mjs +0 -5
  1014. package/esm2022/textarea/public_api.mjs +0 -3
  1015. package/esm2022/textarea/style/textareastyle.mjs +0 -120
  1016. package/esm2022/textarea/textarea.mjs +0 -165
  1017. package/esm2022/tieredmenu/primeng-tieredmenu.mjs +0 -5
  1018. package/esm2022/tieredmenu/public_api.mjs +0 -4
  1019. package/esm2022/tieredmenu/style/tieredmenustyle.mjs +0 -276
  1020. package/esm2022/tieredmenu/tieredmenu.interface.mjs +0 -2
  1021. package/esm2022/tieredmenu/tieredmenu.mjs +0 -1444
  1022. package/esm2022/timeline/primeng-timeline.mjs +0 -5
  1023. package/esm2022/timeline/public_api.mjs +0 -4
  1024. package/esm2022/timeline/style/timelinestyle.mjs +0 -217
  1025. package/esm2022/timeline/timeline.interface.mjs +0 -2
  1026. package/esm2022/timeline/timeline.mjs +0 -223
  1027. package/esm2022/toast/primeng-toast.mjs +0 -5
  1028. package/esm2022/toast/public_api.mjs +0 -4
  1029. package/esm2022/toast/style/toaststyle.mjs +0 -351
  1030. package/esm2022/toast/toast.interface.mjs +0 -2
  1031. package/esm2022/toast/toast.mjs +0 -738
  1032. package/esm2022/togglebutton/primeng-togglebutton.mjs +0 -5
  1033. package/esm2022/togglebutton/public_api.mjs +0 -3
  1034. package/esm2022/togglebutton/style/togglebuttonstyle.mjs +0 -170
  1035. package/esm2022/togglebutton/togglebutton.interface.mjs +0 -2
  1036. package/esm2022/togglebutton/togglebutton.mjs +0 -353
  1037. package/esm2022/toggleswitch/primeng-toggleswitch.mjs +0 -5
  1038. package/esm2022/toggleswitch/public_api.mjs +0 -4
  1039. package/esm2022/toggleswitch/style/toggleswitchstyle.mjs +0 -165
  1040. package/esm2022/toggleswitch/toggleswitch.interface.mjs +0 -2
  1041. package/esm2022/toggleswitch/toggleswitch.mjs +0 -278
  1042. package/esm2022/toolbar/primeng-toolbar.mjs +0 -5
  1043. package/esm2022/toolbar/public_api.mjs +0 -4
  1044. package/esm2022/toolbar/style/toolbarstyle.mjs +0 -69
  1045. package/esm2022/toolbar/toolbar.interface.mjs +0 -2
  1046. package/esm2022/toolbar/toolbar.mjs +0 -172
  1047. package/esm2022/tooltip/primeng-tooltip.mjs +0 -5
  1048. package/esm2022/tooltip/public_api.mjs +0 -3
  1049. package/esm2022/tooltip/style/tooltipstyle.mjs +0 -113
  1050. package/esm2022/tooltip/tooltip.mjs +0 -715
  1051. package/esm2022/tree/primeng-tree.mjs +0 -5
  1052. package/esm2022/tree/public_api.mjs +0 -4
  1053. package/esm2022/tree/style/treestyle.mjs +0 -333
  1054. package/esm2022/tree/tree.interface.mjs +0 -2
  1055. package/esm2022/tree/tree.mjs +0 -2289
  1056. package/esm2022/treeselect/primeng-treeselect.mjs +0 -5
  1057. package/esm2022/treeselect/public_api.mjs +0 -4
  1058. package/esm2022/treeselect/style/treeselectstyle.mjs +0 -271
  1059. package/esm2022/treeselect/treeselect.interface.mjs +0 -2
  1060. package/esm2022/treeselect/treeselect.mjs +0 -1372
  1061. package/esm2022/treetable/primeng-treetable.mjs +0 -5
  1062. package/esm2022/treetable/public_api.mjs +0 -4
  1063. package/esm2022/treetable/style/treetablestyle.mjs +0 -621
  1064. package/esm2022/treetable/treetable.interface.mjs +0 -2
  1065. package/esm2022/treetable/treetable.mjs +0 -4642
  1066. package/esm2022/ts-helpers/primeng-ts-helpers.mjs +0 -5
  1067. package/esm2022/ts-helpers/public_api.mjs +0 -2
  1068. package/esm2022/ts-helpers/ts-helpers.mjs +0 -2
  1069. package/esm2022/usestyle/primeng-usestyle.mjs +0 -5
  1070. package/esm2022/usestyle/public_api.mjs +0 -2
  1071. package/esm2022/usestyle/usestyle.mjs +0 -44
  1072. package/esm2022/utils/inpututils.mjs +0 -7
  1073. package/esm2022/utils/objectutils.mjs +0 -276
  1074. package/esm2022/utils/primeng-utils.mjs +0 -5
  1075. package/esm2022/utils/public_api.mjs +0 -6
  1076. package/esm2022/utils/uniquecomponentid.mjs +0 -6
  1077. package/esm2022/utils/zindexutils.mjs +0 -35
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-table.mjs","sources":["../../src/table/style/tablestyle.ts","../../src/table/table.ts","../../src/table/primeng-table.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-datatable {\n position: relative;\n}\n\n.p-datatable-table {\n border-spacing: 0;\n border-collapse: separate;\n width: 100%;\n}\n\n.p-datatable-scrollable > .p-datatable-table-container {\n position: relative;\n}\n/* For PrimeNG */\n.p-datatable-scrollable-table > .p-datatable-thead {\n top: 0;\n z-index: 2;\n}\n/* For PrimeNG */\n.p-datatable-scrollable-table > .p-datatable-frozen-tbody {\n position: sticky;\n z-index: 2;\n}\n/* For PrimeNG */\n.p-datatable-scrollable-table > .p-datatable-frozen-tbody:last-child {\n z-index: 1;\n}\n\n.p-datatable-scrollable-table > .p-datatable-tfoot {\n bottom: 0;\n z-index: 1;\n}\n\n.p-datatable-scrollable .p-datatable-frozen-column {\n position: sticky;\n background: ${dt('datatable.header.cell.background')};\n}\n\n.p-datatable-scrollable th.p-datatable-frozen-column {\n z-index: 1;\n}\n\n.p-datatable-scrollable > .p-datatable-table-container > .p-datatable-table > .p-datatable-thead,\n.p-datatable-scrollable > .p-datatable-table-container > .p-virtualscroller > .p-datatable-table > .p-datatable-thead {\n background: ${dt('datatable.header.cell.background')};\n}\n\n.p-datatable-scrollable > .p-datatable-table-container > .p-datatable-table > .p-datatable-tfoot,\n.p-datatable-scrollable > .p-datatable-table-container > .p-virtualscroller > .p-datatable-table > .p-datatable-tfoot {\n background: ${dt('datatable.footer.cell.background')};\n}\n\n.p-datatable-flex-scrollable {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.p-datatable-flex-scrollable > .p-datatable-table-container {\n display: flex;\n flex-direction: column;\n flex: 1;\n height: 100%;\n}\n\n.p-datatable-scrollable-table > .p-datatable-tbody > .p-datatable-row-group-header {\n position: sticky;\n z-index: 1;\n}\n\n.p-datatable-resizable-table > .p-datatable-thead > tr > th,\n.p-datatable-resizable-table > .p-datatable-tfoot > tr > td,\n.p-datatable-resizable-table > .p-datatable-tbody > tr > td {\n overflow: hidden;\n white-space: nowrap;\n}\n\n.p-datatable-resizable-table > .p-datatable-thead > tr > th.p-datatable-resizable-column:not(.p-datatable-frozen-column) {\n background-clip: padding-box;\n position: relative;\n}\n\n.p-datatable-resizable-table-fit > .p-datatable-thead > tr > th.p-datatable-resizable-column:last-child .p-datatable-column-resizer {\n display: none;\n}\n\n.p-datatable-column-resizer {\n display: block;\n position: absolute;\n top: 0;\n inset-inline-end: 0;\n margin: 0;\n width: ${dt('datatable.column.resizer.width')};\n height: 100%;\n padding: 0px;\n cursor: col-resize;\n border: 1px solid transparent;\n}\n\n/*\n.p-datatable-column-header-content {\n display: flex;\n align-items: center;\n gap: ${dt('datatable.header.cell.gap')};\n}\n.p-datatable-thead > tr > th {\n display: flex;\n align-items: center;\n gap: ${dt('datatable.header.cell.gap')};\n}\n*/\n\n.p-datatable-column-resize-indicator {\n width: ${dt('datatable.resize.indicator.width')};\n position: absolute;\n z-index: 10;\n display: none;\n background: ${dt('datatable.resize.indicator.color')};\n}\n\n.p-datatable-row-reorder-indicator-up,\n.p-datatable-row-reorder-indicator-down {\n position: absolute;\n display: none;\n}\n\n.p-datatable-reorderable-column,\n.p-datatable-reorderable-row-handle {\n cursor: move;\n}\n\n.p-datatable-mask {\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 3;\n}\n\n.p-datatable-inline-filter {\n display: flex;\n align-items: center;\n width: 100%;\n gap: ${dt('datatable.filter.inline.gap')};\n}\n\n.p-datatable-inline-filter .p-datatable-filter-element-container {\n flex: 1 1 auto;\n width: 1%;\n}\n\n.p-datatable-filter-overlay {\n position: absolute;\n background: ${dt('datatable.filter.overlay.select.background')};\n color: ${dt('datatable.filter.overlay.select.color')};\n border: 1px solid ${dt('datatable.filter.overlay.select.border.color')};\n border-radius: ${dt('datatable.filter.overlay.select.border.radius')};\n box-shadow: ${dt('datatable.filter.overlay.select.shadow')};\n min-width: 12.5rem;\n}\n\n.p-datatable-filter-constraint-list {\n margin: 0;\n list-style: none;\n display: flex;\n flex-direction: column;\n padding: ${dt('datatable.filter.constraint.list.padding')};\n gap: ${dt('datatable.filter.constraint.list.gap')};\n}\n\n.p-datatable-filter-constraint {\n padding: ${dt('datatable.filter.constraint.padding')};\n color: ${dt('datatable.filter.constraint.color')};\n border-radius: ${dt('datatable.filter.constraint.border.radius')};\n cursor: pointer;\n transition: background ${dt('datatable.transition.duration')}, color ${dt('datatable.transition.duration')}, border-color ${dt('datatable.transition.duration')},\n box-shadow ${dt('datatable.transition.duration')};\n}\n\n.p-datatable-filter-constraint-selected {\n background: ${dt('datatable.filter.constraint.selected.background')};\n color: ${dt('datatable.filter.constraint.selected.color')};\n}\n\n.p-datatable-filter-constraint:not(.p-datatable-filter-constraint-selected):not(.p-disabled):hover {\n background: ${dt('datatable.filter.constraint.focus.background')};\n color: ${dt('datatable.filter.constraint.focus.color')};\n}\n\n.p-datatable-filter-constraint:focus-visible {\n outline: 0 none;\n background: ${dt('datatable.filter.constraint.focus.background')};\n color: ${dt('datatable.filter.constraint.focus.color')};\n}\n\n.p-datatable-filter-constraint-selected:focus-visible {\n outline: 0 none;\n background: ${dt('datatable.filter.constraint.selected.focus.background')};\n color: ${dt('datatable.filter.constraint.selected.focus.color')};\n}\n\n.p-datatable-filter-constraint-separator {\n border-top: 1px solid ${dt('datatable.filter.constraint.separator.border.color')};\n}\n\n.p-datatable-popover-filter {\n display: inline-flex;\n margin-inline-start: auto;\n}\n\n.p-datatable-filter-overlay-popover {\n background: ${dt('datatable.filter.overlay.popover.background')};\n color: ${dt('datatable.filter.overlay.popover.color')};\n border: 1px solid ${dt('datatable.filter.overlay.popover.border.color')};\n border-radius: ${dt('datatable.filter.overlay.popover.border.radius')};\n box-shadow: ${dt('datatable.filter.overlay.popover.shadow')};\n min-width: 12.5rem;\n padding: ${dt('datatable.filter.overlay.popover.padding')};\n display: flex;\n flex-direction: column;\n gap: ${dt('datatable.filter.overlay.popover.gap')};\n}\n\n.p-datatable-filter-operator-dropdown, .p-datatable-filter-constraint-dropdown {\n width: 100%;\n}\n\n.p-datatable-filter-rule-list,\n.p-datatable-filter-rule {\n display: flex;\n flex-direction: column;\n gap: ${dt('datatable.filter.overlay.popover.gap')};\n}\n\n.p-datatable-filter-rule {\n border-bottom: 1px solid ${dt('datatable.filter.rule.border.color')};\n}\n\n.p-datatable-filter-rule:last-child {\n border-bottom: 0 none;\n}\n\n.p-datatable-filter-add-rule-button, .p-datatable-filter-remove-rule-button {\n width: 100%;\n}\n\n.p-datatable-filter-remove-button {\n width: 100%;\n}\n\n.p-datatable-filter-buttonbar {\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.p-datatable-virtualscroller-spacer {\n display: flex;\n}\n\n.p-datatable .p-virtualscroller .p-virtualscroller-loading {\n transform: none !important;\n min-height: 0;\n position: sticky;\n top: 0;\n inset-inline-start: 0;\n}\n\n.p-datatable-paginator-top {\n border-color: ${dt('datatable.paginator.top.border.color')};\n border-style: solid;\n border-width: ${dt('datatable.paginator.top.border.width')};\n}\n\n.p-datatable-paginator-bottom {\n border-color: ${dt('datatable.paginator.bottom.border.color')};\n border-style: solid;\n border-width: ${dt('datatable.paginator.bottom.border.width')};\n}\n\n.p-datatable-header {\n background: ${dt('datatable.header.background')};\n color: ${dt('datatable.header.color')};\n border-color: ${dt('datatable.header.border.color')};\n border-style: solid;\n border-width: ${dt('datatable.header.border.width')};\n padding: ${dt('datatable.header.padding')};\n}\n\n.p-datatable-footer {\n background: ${dt('datatable.footer.background')};\n color: ${dt('datatable.footer.color')};\n border-color: ${dt('datatable.footer.border.color')};\n border-style: solid;\n border-width: ${dt('datatable.footer.border.width')};\n padding: ${dt('datatable.footer.padding')};\n}\n\n.p-datatable-thead > tr > th {\n padding: ${dt('datatable.header.cell.padding')};\n background: ${dt('datatable.header.cell.background')};\n border-color: ${dt('datatable.header.cell.border.color')};\n border-style: solid;\n border-width: 0 0 1px 0;\n color: ${dt('datatable.header.cell.color')};\n font-weight: ${dt('datatable.column.title.font.weight')};\n text-align: start;\n transition: background ${dt('datatable.transition.duration')}, color ${dt('datatable.transition.duration')}, border-color ${dt('datatable.transition.duration')},\n outline-color ${dt('datatable.transition.duration')}, box-shadow ${dt('datatable.transition.duration')};\n}\n\n/** For PrimeNG **/\n.p-datatable-thead > tr > th p-columnfilter {\n font-weight: normal;\n}\n/** For PrimeNG End **/\n\n/*\n.p-datatable-column-title {\n font-weight: ${dt('datatable.column.title.font.weight')};\n}\n*/\n\n.p-datatable-tbody > tr {\n outline-color: transparent;\n background: ${dt('datatable.row.background')};\n color: ${dt('datatable.row.color')};\n transition: background ${dt('datatable.transition.duration')}, color ${dt('datatable.transition.duration')}, border-color ${dt('datatable.transition.duration')},\n outline-color ${dt('datatable.transition.duration')}, box-shadow ${dt('datatable.transition.duration')};\n}\n\n.p-datatable-tbody > tr > td {\n text-align: start;\n border-color: ${dt('datatable.body.cell.border.color')};\n border-style: solid;\n border-width: 0 0 1px 0;\n padding: ${dt('datatable.body.cell.padding')};\n}\n\n.p-datatable-hoverable .p-datatable-tbody > tr:not(.p-datatable-row-selected):hover {\n background: ${dt('datatable.row.hover.background')};\n color: ${dt('datatable.row.hover.color')};\n}\n\n.p-datatable-tbody > tr.p-datatable-row-selected {\n background: ${dt('datatable.row.selected.background')};\n color: ${dt('datatable.row.selected.color')};\n}\n\n.p-datatable-tbody > tr:has(+ .p-datatable-row-selected) > td {\n border-bottom-color: ${dt('datatable.body.cell.selected.border.color')};\n}\n\n.p-datatable-tbody > tr.p-datatable-row-selected > td {\n border-bottom-color: ${dt('datatable.body.cell.selected.border.color')};\n}\n\n.p-datatable-tbody > tr:focus-visible,\n.p-datatable-tbody > tr.p-datatable-contextmenu-row-selected {\n box-shadow: ${dt('datatable.row.focus.ring.shadow')};\n outline: ${dt('datatable.row.focus.ring.width')} ${dt('datatable.row.focus.ring.style')} ${dt('datatable.row.focus.ring.color')};\n outline-offset: ${dt('datatable.row.focus.ring.offset')};\n}\n\n.p-datatable-tfoot > tr > td {\n text-align: start;\n padding: ${dt('datatable.footer.cell.padding')};\n border-color: ${dt('datatable.footer.cell.border.color')};\n border-style: solid;\n border-width: 0 0 1px 0;\n color: ${dt('datatable.footer.cell.color')};\n background: ${dt('datatable.footer.cell.background')};\n}\n\n.p-datatable-column-footer {\n font-weight: ${dt('datatable.column.footer.font.weight')};\n}\n\n.p-datatable-sortable-column {\n cursor: pointer;\n user-select: none;\n outline-color: transparent;\n}\n\n.p-datatable-thead > tr > th,\n.p-datatable-sort-icon,\n.p-datatable-sort-badge {\n vertical-align: middle;\n}\n\n.p-datatable-sort-icon {\n color: ${dt('datatable.sort.icon.color')};\n transition: color ${dt('datatable.transition.duration')};\n}\n\n.p-datatable-sortable-column:not(.p-datatable-column-sorted):hover {\n background: ${dt('datatable.header.cell.hover.background')};\n color: ${dt('datatable.header.cell.hover.color')};\n}\n\n.p-datatable-sortable-column:not(.p-datatable-column-sorted):hover .p-datatable-sort-icon {\n color: ${dt('datatable.sort.icon.hover.color')};\n}\n\n.p-datatable-thead > tr > th.p-datatable-column-sorted {\n background: ${dt('datatable.header.cell.selected.background')};\n color: ${dt('datatable.header.cell.selected.color')};\n}\n\n.p-datatable-thead > tr > th.p-datatable-column-sorted .p-datatable-sort-icon {\n color: ${dt('datatable.header.cell.selected.color')};\n}\n\n.p-datatable-sortable-column:focus-visible {\n box-shadow: ${dt('datatable.header.cell.focus.ring.shadow')};\n outline: ${dt('datatable.header.cell.focus.ring.width')} ${dt('datatable.header.cell.focus.ring.style')} ${dt('datatable.header.cell.focus.ring.color')};\n outline-offset: ${dt('datatable.header.cell.focus.ring.offset')};\n}\n\n.p-datatable-hoverable .p-datatable-selectable-row {\n cursor: pointer;\n}\n\n.p-datatable-tbody > tr.p-datatable-dragpoint-top > td {\n box-shadow: inset 0 2px 0 0 ${dt('datatable.drop.point.color')};\n}\n\n.p-datatable-tbody > tr.p-datatable-dragpoint-bottom > td {\n box-shadow: inset 0 -2px 0 0 ${dt('datatable.drop.point.color')};\n}\n\n.p-datatable-loading-icon {\n font-size: ${dt('datatable.loading.icon.size')};\n width: ${dt('datatable.loading.icon.size')};\n height: ${dt('datatable.loading.icon.size')};\n}\n\n.p-datatable-gridlines .p-datatable-header {\n border-width: 1px 1px 0 1px;\n}\n\n.p-datatable-gridlines .p-datatable-footer {\n border-width: 0 1px 1px 1px;\n}\n\n.p-datatable-gridlines .p-datatable-paginator-top {\n border-width: 1px 1px 0 1px;\n}\n\n.p-datatable-gridlines .p-datatable-paginator-bottom {\n border-width: 0 1px 1px 1px;\n}\n\n.p-datatable-gridlines .p-datatable-thead > tr > th {\n border-width: 1px 0 1px 1px;\n}\n\n.p-datatable-gridlines .p-datatable-thead > tr > th:last-child {\n border-width: 1px;\n}\n\n.p-datatable-gridlines .p-datatable-tbody > tr > td {\n border-width: 1px 0 0 1px;\n}\n\n.p-datatable-gridlines .p-datatable-tbody > tr > td:last-child {\n border-width: 1px 1px 0 1px;\n}\n\np-datatable-gridlines .p-datatable-tbody > tr:last-child > td {\n border-width: 1px 0 1px 1px;\n}\n\n.p-datatable-gridlines .p-datatable-tbody > tr:last-child > td:last-child {\n border-width: 1px;\n}\n\n.p-datatable-gridlines .p-datatable-tfoot > tr > td {\n border-width: 1px 0 1px 1px;\n}\n\n.p-datatable-gridlines .p-datatable-tfoot > tr > td:last-child {\n border-width: 1px 1px 1px 1px;\n}\n\n.p-datatable.p-datatable-gridlines .p-datatable-thead + .p-datatable-tfoot > tr > td {\n border-width: 0 0 1px 1px;\n}\n\n.p-datatable.p-datatable-gridlines .p-datatable-thead + .p-datatable-tfoot > tr > td:last-child {\n border-width: 0 1px 1px 1px;\n}\n\n.p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody > tr > td {\n border-width: 0 0 1px 1px;\n}\n\n.p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody > tr > td:last-child {\n border-width: 0 1px 1px 1px;\n}\n\n.p-datatable.p-datatable-gridlines:has(.p-datatable-tbody):has(.p-datatable-tfoot) .p-datatable-tbody > tr:last-child > td {\n border-width: 0 0 0 1px;\n}\n\n.p-datatable.p-datatable-gridlines:has(.p-datatable-tbody):has(.p-datatable-tfoot) .p-datatable-tbody > tr:last-child > td:last-child {\n border-width: 0 1px 0 1px;\n}\n\n.p-datatable.p-datatable-striped .p-datatable-tbody > tr:nth-child(odd) {\n background: ${dt('datatable.row.striped.background')};\n}\n\n.p-datatable.p-datatable-striped .p-datatable-tbody > tr:nth-child(odd).p-datatable-row-selected {\n background: ${dt('datatable.row.selected.background')};\n color: ${dt('datatable.row.selected.color')};\n}\n\n.p-datatable.p-datatable-sm .p-datatable-header {\n padding: 0.375rem 0.5rem;\n}\n\n.p-datatable.p-datatable-sm .p-datatable-thead > tr > th {\n padding: 0.375rem 0.5rem;\n}\n\n.p-datatable.p-datatable-sm .p-datatable-tbody > tr > td {\n padding: 0.375rem 0.5rem;\n}\n\n.p-datatable.p-datatable-sm .p-datatable-tfoot > tr > td {\n padding: 0.375rem 0.5rem;\n}\n\n.p-datatable.p-datatable-sm .p-datatable-footer {\n padding: 0.375rem 0.5rem;\n}\n\n.p-datatable.p-datatable-lg .p-datatable-header {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-datatable.p-datatable-lg .p-datatable-thead > tr > th {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-datatable.p-datatable-lg .p-datatable-tbody>tr>td {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-datatable.p-datatable-lg .p-datatable-tfoot>tr>td {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-datatable.p-datatable-lg .p-datatable-footer {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-datatable-row-toggle-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n width: ${dt('datatable.row.toggle.button.size')};\n height: ${dt('datatable.row.toggle.button.size')};\n color: ${dt('datatable.row.toggle.button.color')};\n border: 0 none;\n background: transparent;\n cursor: pointer;\n border-radius: ${dt('datatable.row.toggle.button.border.radius')};\n transition: background ${dt('datatable.transition.duration')}, color ${dt('datatable.transition.duration')}, border-color ${dt('datatable.transition.duration')},\n outline-color ${dt('datatable.transition.duration')}, box-shadow ${dt('datatable.transition.duration')};\n outline-color: transparent;\n user-select: none;\n}\n\n.p-datatable-row-toggle-button:enabled:hover {\n color: ${dt('datatable.row.toggle.button.hover.color')};\n background: ${dt('datatable.row.toggle.button.hover.background')};\n}\n\n.p-datatable-tbody > tr.p-datatable-row-selected .p-datatable-row-toggle-button:hover {\n background: ${dt('datatable.row.toggle.button.selected.hover.background')};\n ${dt('datatable.row.toggle.button.selected.hover.color')};\n}\n\n.p-datatable-row-toggle-button:focus-visible {\n box-shadow: ${dt('datatable.row.toggle.button.focus.ring.shadow')};\n outline: ${dt('datatable.row.toggle.button.focus.ring.width')} ${dt('datatable.row.toggle.button.focus.ring.style')} ${dt('datatable.row.toggle.button.focus.ring.color')};\n outline-offset: ${dt('datatable.row.toggle.button.focus.ring.offset')};\n}\n`;\n\nconst classes = {\n root: ({ instance }) => ({\n 'p-datatable p-component': true,\n 'p-datatable-hoverable': instance.rowHover || instance.selectionMode,\n 'p-datatable-resizable': instance.resizableColumns,\n 'p-datatable-resizable-fit': instance.resizableColumns && instance.columnResizeMode === 'fit',\n 'p-datatable-scrollable': instance.scrollable,\n 'p-datatable-flex-scrollable': instance.scrollable && instance.scrollHeight === 'flex',\n 'p-datatable-striped': instance.stripedRows,\n 'p-datatable-gridlines': instance.showGridlines,\n 'p-datatable-sm': instance.size === 'small',\n 'p-datatable-lg': instance.size === 'large'\n }),\n mask: 'p-datatable-mask p-overlay-mask',\n loadingIcon: 'p-datatable-loading-icon',\n header: 'p-datatable-header',\n pcPaginator: ({ instance }) => 'p-datatable-paginator-' + instance.paginatorPosition,\n tableContainer: 'p-datatable-table-container',\n table: ({ instance }) => ({\n 'p-datatable-table': true,\n 'p-datatable-scrollable-table': instance.scrollable,\n 'p-datatable-resizable-table': instance.resizableColumns,\n 'p-datatable-resizable-table-fit': instance.resizableColumns && instance.columnResizeMode === 'fit'\n }),\n thead: 'p-datatable-thead',\n columnResizer: 'p-datatable-column-resizer',\n columnHeaderContent: 'p-datatable-column-header-content',\n columnTitle: 'p-datatable-column-title',\n columnFooter: 'p-datatable-column-footer',\n sortIcon: 'p-datatable-sort-icon',\n pcSortBadge: 'p-datatable-sort-badge',\n filter: ({ instance }) => ({\n 'p-datatable-filter': true,\n 'p-datatable-inline-filter': instance.display === 'row',\n 'p-datatable-popover-filter': instance.display === 'menu'\n }),\n filterElementContainer: 'p-datatable-filter-element-container',\n pcColumnFilterButton: 'p-datatable-column-filter-button',\n pcColumnFilterClearButton: 'p-datatable-column-filter-clear-button',\n filterOverlay: ({ instance }) => ({\n 'p-datatable-filter-overlay p-component': true,\n 'p-datatable-filter-overlay-popover': instance.display === 'menu'\n }),\n filterConstraintList: 'p-datatable-filter-constraint-list',\n filterConstraint: 'p-datatable-filter-constraint',\n filterConstraintSeparator: 'p-datatable-filter-constraint-separator',\n filterOperator: 'p-datatable-filter-operator',\n pcFilterOperatorDropdown: 'p-datatable-filter-operator-dropdown',\n filterRuleList: 'p-datatable-filter-rule-list',\n filterRule: 'p-datatable-filter-rule',\n pcFilterConstraintDropdown: 'p-datatable-filter-constraint-dropdown',\n pcFilterRemoveRuleButton: 'p-datatable-filter-remove-rule-button',\n pcFilterAddRuleButton: 'p-datatable-filter-add-rule-button',\n filterButtonbar: 'p-datatable-filter-buttonbar',\n pcFilterClearButton: 'p-datatable-filter-clear-button',\n pcFilterApplyButton: 'p-datatable-filter-apply-button',\n tbody: ({ instance }) => ({\n 'p-datatable-tbody': true,\n 'p-datatable-frozen-tbody': instance.frozenValue || instance.frozenBodyTemplate,\n 'p-virtualscroller-content': instance.virtualScroll\n }),\n rowGroupHeader: 'p-datatable-row-group-header',\n rowToggleButton: 'p-datatable-row-toggle-button',\n rowToggleIcon: 'p-datatable-row-toggle-icon',\n\n rowExpansion: 'p-datatable-row-expansion',\n rowGroupFooter: 'p-datatable-row-group-footer',\n emptyMessage: 'p-datatable-empty-message',\n bodyCell: ({ instance }) => ({\n 'p-datatable-frozen-column': instance.columnProp('frozen')\n }),\n reorderableRowHandle: 'p-datatable-reorderable-row-handle',\n pcRowEditorInit: 'p-datatable-row-editor-init',\n pcRowEditorSave: 'p-datatable-row-editor-save',\n pcRowEditorCancel: 'p-datatable-row-editor-cancel',\n tfoot: 'p-datatable-tfoot',\n footerCell: ({ instance }) => ({\n 'p-datatable-frozen-column': instance.columnProp('frozen')\n }),\n virtualScrollerSpacer: 'p-datatable-virtualscroller-spacer',\n footer: 'p-datatable-tfoot',\n columnResizeIndicator: 'p-datatable-column-resize-indicator',\n rowReorderIndicatorUp: 'p-datatable-row-reorder-indicator-up',\n rowReorderIndicatorDown: 'p-datatable-row-reorder-indicator-down'\n};\n\nconst inlineStyles = {\n tableContainer: ({ instance }) => ({\n 'max-height': instance.virtualScroll ? '' : instance.scrollHeight,\n overflow: 'auto'\n }),\n thead: { position: 'sticky' },\n tfoot: { position: 'sticky' }\n};\n\n@Injectable()\nexport class TableStyle extends BaseStyle {\n name = 'datatable';\n\n theme = theme;\n\n classes = classes;\n\n inlineStyles = inlineStyles;\n}\n\n/**\n *\n * DataTable displays data in tabular format.\n *\n * [Live Demo](https://www.primeng.org/table/)\n *\n * @module tablestyle\n *\n */\nexport enum TableClasses {\n /**\n * Class name of the root element\n */\n root = 'p-datatable',\n /**\n * Class name of the mask element\n */\n mask = 'p-datatable-mask',\n /**\n * Class name of the loading icon element\n */\n loadingIcon = 'p-datatable-loading-icon',\n /**\n * Class name of the header element\n */\n header = 'p-datatable-header',\n /**\n * Class name of the paginator element\n */\n pcPaginator = 'p-datatable-paginator-[position]',\n /**\n * Class name of the table container element\n */\n tableContainer = 'p-datatable-table-container',\n /**\n * Class name of the table element\n */\n table = 'p-datatable-table',\n /**\n * Class name of the thead element\n */\n thead = 'p-datatable-thead',\n /**\n * Class name of the column resizer element\n */\n columnResizer = 'p-datatable-column-resizer',\n /**\n * Class name of the column header content element\n */\n columnHeaderContent = 'p-datatable-column-header-content',\n /**\n * Class name of the column title element\n */\n columnTitle = 'p-datatable-column-title',\n /**\n * Class name of the sort icon element\n */\n sortIcon = 'p-datatable-sort-icon',\n /**\n * Class name of the sort badge element\n */\n pcSortBadge = 'p-datatable-sort-badge',\n /**\n * Class name of the filter element\n */\n filter = 'p-datatable-filter',\n /**\n * Class name of the filter element container element\n */\n filterElementContainer = 'p-datatable-filter-element-container',\n /**\n * Class name of the column filter button element\n */\n pcColumnFilterButton = 'p-datatable-column-filter-button',\n /**\n * Class name of the column filter clear button element\n */\n pcColumnFilterClearButton = 'p-datatable-column-filter-clear-button',\n /**\n * Class name of the filter overlay element\n */\n filterOverlay = 'p-datatable-filter-overlay',\n /**\n * Class name of the filter constraint list element\n */\n filterConstraintList = 'p-datatable-filter-constraint-list',\n /**\n * Class name of the filter constraint element\n */\n filterConstraint = 'p-datatable-filter-constraint',\n /**\n * Class name of the filter constraint separator element\n */\n filterConstraintSeparator = 'p-datatable-filter-constraint-separator',\n /**\n * Class name of the filter operator element\n */\n filterOperator = 'p-datatable-filter-operator',\n /**\n * Class name of the filter operator dropdown element\n */\n pcFilterOperatorDropdown = 'p-datatable-filter-operator-dropdown',\n /**\n * Class name of the filter rule list element\n */\n filterRuleList = 'p-datatable-filter-rule-list',\n /**\n * Class name of the filter rule element\n */\n filterRule = 'p-datatable-filter-rule',\n /**\n * Class name of the filter constraint dropdown element\n */\n pcFilterConstraintDropdown = 'p-datatable-filter-constraint-dropdown',\n /**\n * Class name of the filter remove rule button element\n */\n pcFilterRemoveRuleButton = 'p-datatable-filter-remove-rule-button',\n /**\n * Class name of the filter add rule button element\n */\n pcFilterAddRuleButton = 'p-datatable-filter-add-rule-button',\n /**\n * Class name of the filter buttonbar element\n */\n filterButtonbar = 'p-datatable-filter-buttonbar',\n /**\n * Class name of the filter clear button element\n */\n pcFilterClearButton = 'p-datatable-filter-clear-button',\n /**\n * Class name of the filter apply button element\n */\n pcFilterApplyButton = 'p-datatable-filter-apply-button',\n /**\n * Class name of the tbody element\n */\n tbody = 'p-datatable-tbody',\n /**\n * Class name of the row group header element\n */\n rowGroupHeader = 'p-datatable-row-group-header',\n /**\n * Class name of the row toggle button element\n */\n rowToggleButton = 'p-datatable-row-toggle-button',\n /**\n * Class name of the row toggle icon element\n */\n rowToggleIcon = 'p-datatable-row-toggle-icon',\n /**\n * Class name of the row expansion element\n */\n rowExpansion = 'p-datatable-row-expansion',\n /**\n * Class name of the row group footer element\n */\n rowGroupFooter = 'p-datatable-row-group-footer',\n /**\n * Class name of the empty message element\n */\n emptyMessage = 'p-datatable-empty-message',\n /**\n * Class name of the reorderable row handle element\n */\n reorderableRowHandle = 'p-datatable-reorderable-row-handle',\n /**\n * Class name of the row editor init element\n */\n pcRowEditorInit = 'p-datatable-row-editor-init',\n /**\n * Class name of the row editor save element\n */\n pcRowEditorSave = 'p-datatable-row-editor-save',\n /**\n * Class name of the row editor cancel element\n */\n pcRowEditorCancel = 'p-datatable-row-editor-cancel',\n /**\n * Class name of the tfoot element\n */\n tfoot = 'p-datatable-tfoot',\n /**\n * Class name of the virtual scroller spacer element\n */\n virtualScrollerSpacer = 'p-datatable-virtualscroller-spacer',\n /**\n * Class name of the footer element\n */\n footer = 'p-datatable-footer',\n /**\n * Class name of the column resize indicator element\n */\n columnResizeIndicator = 'p-datatable-column-resize-indicator',\n /**\n * Class name of the row reorder indicator up element\n */\n rowReorderIndicatorUp = 'p-datatable-row-reorder-indicator-up',\n /**\n * Class name of the row reorder indicator down element\n */\n rowReorderIndicatorDown = 'p-datatable-row-reorder-indicator-down'\n}\n","import { animate, AnimationEvent, style, transition, trigger } from '@angular/animations';\nimport { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n inject,\n Inject,\n Injectable,\n Input,\n NgModule,\n NgZone,\n numberAttribute,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n PLATFORM_ID,\n QueryList,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BlockableUI, FilterMatchMode, FilterMetadata, FilterOperator, FilterService, LazyLoadMeta, OverlayService, PrimeTemplate, ScrollerOptions, SelectItem, SharedModule, SortMeta, TableState, TranslationKeys } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Button, ButtonModule } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { ConnectedOverlayScrollHandler, DomHandler } from 'primeng/dom';\nimport { ArrowDownIcon } from 'primeng/icons/arrowdown';\nimport { ArrowUpIcon } from 'primeng/icons/arrowup';\nimport { CheckIcon } from 'primeng/icons/check';\nimport { FilterIcon } from 'primeng/icons/filter';\nimport { FilterSlashIcon } from 'primeng/icons/filterslash';\nimport { PlusIcon } from 'primeng/icons/plus';\nimport { SortAltIcon } from 'primeng/icons/sortalt';\nimport { SortAmountDownIcon } from 'primeng/icons/sortamountdown';\nimport { SortAmountUpAltIcon } from 'primeng/icons/sortamountupalt';\nimport { SpinnerIcon } from 'primeng/icons/spinner';\nimport { TrashIcon } from 'primeng/icons/trash';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { PaginatorModule } from 'primeng/paginator';\nimport { RadioButton, RadioButtonClickEvent, RadioButtonModule } from 'primeng/radiobutton';\nimport { Scroller, ScrollerModule } from 'primeng/scroller';\nimport { SelectModule } from 'primeng/select';\nimport { SelectButtonModule } from 'primeng/selectbutton';\nimport { Nullable, VoidListener } from 'primeng/ts-helpers';\nimport { ObjectUtils, UniqueComponentId, ZIndexUtils } from 'primeng/utils';\nimport { Subject, Subscription } from 'rxjs';\nimport { TableStyle } from './style/tablestyle';\nimport {\n ExportCSVOptions,\n TableColResizeEvent,\n TableColumnReorderEvent,\n TableContextMenuSelectEvent,\n TableEditCancelEvent,\n TableEditCompleteEvent,\n TableEditInitEvent,\n TableFilterButtonPropsOptions,\n TableFilterEvent,\n TableHeaderCheckboxToggleEvent,\n TableLazyLoadEvent,\n TablePageEvent,\n TableRowCollapseEvent,\n TableRowExpandEvent,\n TableRowReorderEvent,\n TableRowSelectEvent,\n TableRowUnSelectEvent,\n TableSelectAllChangeEvent\n} from './table.interface';\n\n@Injectable()\nexport class TableService {\n private sortSource = new Subject<SortMeta | SortMeta[] | null>();\n private selectionSource = new Subject();\n private contextMenuSource = new Subject<any>();\n private valueSource = new Subject<any>();\n private totalRecordsSource = new Subject<any>();\n private columnsSource = new Subject();\n\n sortSource$ = this.sortSource.asObservable();\n selectionSource$ = this.selectionSource.asObservable();\n contextMenuSource$ = this.contextMenuSource.asObservable();\n valueSource$ = this.valueSource.asObservable();\n totalRecordsSource$ = this.totalRecordsSource.asObservable();\n columnsSource$ = this.columnsSource.asObservable();\n\n onSort(sortMeta: SortMeta | SortMeta[] | null) {\n this.sortSource.next(sortMeta);\n }\n\n onSelectionChange() {\n this.selectionSource.next(null);\n }\n\n onContextMenu(data: any) {\n this.contextMenuSource.next(data);\n }\n\n onValueChange(value: any) {\n this.valueSource.next(value);\n }\n\n onTotalRecordsChange(value: number) {\n this.totalRecordsSource.next(value);\n }\n\n onColumnsChange(columns: any[]) {\n this.columnsSource.next(columns);\n }\n}\n/**\n * Table displays data in tabular format.\n * @group Components\n */\n@Component({\n selector: 'p-table',\n template: `\n <div #container [ngStyle]=\"style\" [class]=\"styleClass\" [ngClass]=\"cx('root')\" [attr.id]=\"id\">\n <div [ngClass]=\"cx('mask')\" *ngIf=\"loading && showLoader\">\n <i *ngIf=\"loadingIcon\" [class]=\"'p-datatable-loading-icon ' + loadingIcon\"></i>\n <ng-container *ngIf=\"!loadingIcon\">\n <SpinnerIcon *ngIf=\"!loadingIconTemplate && !_loadingIconTemplate\" [spin]=\"true\" [styleClass]=\"cx('loadingIcon')\" />\n <span *ngIf=\"loadingIconTemplate || _loadingIconTemplate\" [ngClass]=\"cx('loadingIcon')\">\n <ng-template *ngTemplateOutlet=\"loadingIconTemplate || _loadingIconTemplate\"></ng-template>\n </span>\n </ng-container>\n </div>\n <div *ngIf=\"captionTemplate || _captionTemplate\" [ngClass]=\"cx('header')\">\n <ng-container *ngTemplateOutlet=\"captionTemplate || _captionTemplate\"></ng-container>\n </div>\n <p-paginator\n [rows]=\"rows\"\n [first]=\"first\"\n [totalRecords]=\"totalRecords\"\n [pageLinkSize]=\"pageLinks\"\n [alwaysShow]=\"alwaysShowPaginator\"\n (onPageChange)=\"onPageChange($event)\"\n [rowsPerPageOptions]=\"rowsPerPageOptions\"\n *ngIf=\"paginator && (paginatorPosition === 'top' || paginatorPosition == 'both')\"\n [templateLeft]=\"paginatorLeftTemplate\"\n [templateRight]=\"paginatorRightTemplate\"\n [dropdownAppendTo]=\"paginatorDropdownAppendTo\"\n [dropdownScrollHeight]=\"paginatorDropdownScrollHeight\"\n [currentPageReportTemplate]=\"currentPageReportTemplate\"\n [showFirstLastIcon]=\"showFirstLastIcon\"\n [dropdownItemTemplate]=\"paginatorDropdownItemTemplate || _paginatorDropdownItemTemplate\"\n [showCurrentPageReport]=\"showCurrentPageReport\"\n [showJumpToPageDropdown]=\"showJumpToPageDropdown\"\n [showJumpToPageInput]=\"showJumpToPageInput\"\n [showPageLinks]=\"showPageLinks\"\n [styleClass]=\"cx('pcPaginator')\"\n [locale]=\"paginatorLocale\"\n >\n <ng-template pTemplate=\"dropdownicon\" *ngIf=\"paginatorDropdownIconTemplate || _paginatorDropdownIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorDropdownIconTemplate || _paginatorDropdownIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"firstpagelinkicon\" *ngIf=\"paginatorFirstPageLinkIconTemplate || _paginatorFirstPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorFirstPageLinkIconTemplate || _paginatorFirstPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"previouspagelinkicon\" *ngIf=\"paginatorPreviousPageLinkIconTemplate || _paginatorPreviousPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorPreviousPageLinkIconTemplate || _paginatorPreviousPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"lastpagelinkicon\" *ngIf=\"paginatorLastPageLinkIconTemplate || _paginatorLastPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorLastPageLinkIconTemplate || _paginatorLastPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"nextpagelinkicon\" *ngIf=\"paginatorNextPageLinkIconTemplate || _paginatorNextPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorNextPageLinkIconTemplate || _paginatorNextPageLinkIconTemplate\"></ng-container>\n </ng-template>\n </p-paginator>\n\n <div #wrapper [ngClass]=\"cx('tableContainer')\" [ngStyle]=\"sx('tableContainer')\">\n <p-scroller\n #scroller\n *ngIf=\"virtualScroll\"\n [items]=\"processedData\"\n [columns]=\"columns\"\n [style]=\"{\n height: scrollHeight !== 'flex' ? scrollHeight : undefined\n }\"\n [scrollHeight]=\"scrollHeight !== 'flex' ? undefined : '100%'\"\n [itemSize]=\"virtualScrollItemSize || _virtualRowHeight\"\n [step]=\"rows\"\n [delay]=\"lazy ? virtualScrollDelay : 0\"\n [inline]=\"true\"\n [lazy]=\"lazy\"\n (onLazyLoad)=\"onLazyItemLoad($event)\"\n [loaderDisabled]=\"true\"\n [showSpacer]=\"false\"\n [showLoader]=\"loadingBodyTemplate || _loadingBodyTemplate\"\n [options]=\"virtualScrollOptions\"\n [autoSize]=\"true\"\n >\n <ng-template #content let-items let-scrollerOptions=\"options\">\n <ng-container\n *ngTemplateOutlet=\"\n buildInTable;\n context: {\n $implicit: items,\n options: scrollerOptions\n }\n \"\n ></ng-container>\n </ng-template>\n </p-scroller>\n <ng-container *ngIf=\"!virtualScroll\">\n <ng-container\n *ngTemplateOutlet=\"\n buildInTable;\n context: {\n $implicit: processedData,\n options: { columns }\n }\n \"\n ></ng-container>\n </ng-container>\n\n <ng-template #buildInTable let-items let-scrollerOptions=\"options\">\n <table #table role=\"table\" [ngClass]=\"cx('table')\" [class]=\"tableStyleClass\" [style]=\"tableStyle\" [attr.id]=\"id + '-table'\">\n <ng-container *ngTemplateOutlet=\"colGroupTemplate || _colGroupTemplate; context: { $implicit: scrollerOptions.columns }\"></ng-container>\n <thead role=\"rowgroup\" #thead [ngClass]=\"cx('thead')\" [ngStyle]=\"sx('thead')\">\n <ng-container\n *ngTemplateOutlet=\"\n headerGroupedTemplate || headerTemplate || _headerTemplate;\n context: {\n $implicit: scrollerOptions.columns\n }\n \"\n ></ng-container>\n </thead>\n <tbody\n role=\"rowgroup\"\n [ngClass]=\"cx('tbody')\"\n *ngIf=\"frozenValue || frozenBodyTemplate || _frozenBodyTemplate\"\n [value]=\"frozenValue\"\n [frozenRows]=\"true\"\n [pTableBody]=\"scrollerOptions.columns\"\n [pTableBodyTemplate]=\"frozenBodyTemplate || _frozenBodyTemplate\"\n [frozen]=\"true\"\n ></tbody>\n <tbody\n role=\"rowgroup\"\n [ngClass]=\"cx('tbody', scrollerOptions.contentStyleClass)\"\n [style]=\"scrollerOptions.contentStyle\"\n [value]=\"dataToRender(scrollerOptions.rows)\"\n [pTableBody]=\"scrollerOptions.columns\"\n [pTableBodyTemplate]=\"bodyTemplate || _bodyTemplate\"\n [scrollerOptions]=\"scrollerOptions\"\n ></tbody>\n <tbody\n role=\"rowgroup\"\n *ngIf=\"scrollerOptions.spacerStyle\"\n [style]=\"'height: calc(' + scrollerOptions.spacerStyle.height + ' - ' + scrollerOptions.rows.length * scrollerOptions.itemSize + 'px);'\"\n [ngClass]=\"cx('virtualScrollerSpacer')\"\n ></tbody>\n <tfoot role=\"rowgroup\" *ngIf=\"footerGroupedTemplate || footerTemplate || _footerTemplate || _footerGroupedTemplate\" #tfoot [ngClass]=\"cx('footer')\">\n <ng-container\n *ngTemplateOutlet=\"\n footerGroupedTemplate || footerTemplate || _footerTemplate || _footerGroupedTemplate;\n context: {\n $implicit: scrollerOptions.columns\n }\n \"\n ></ng-container>\n </tfoot>\n </table>\n </ng-template>\n </div>\n\n <p-paginator\n [rows]=\"rows\"\n [first]=\"first\"\n [totalRecords]=\"totalRecords\"\n [pageLinkSize]=\"pageLinks\"\n [alwaysShow]=\"alwaysShowPaginator\"\n (onPageChange)=\"onPageChange($event)\"\n [rowsPerPageOptions]=\"rowsPerPageOptions\"\n *ngIf=\"paginator && (paginatorPosition === 'bottom' || paginatorPosition == 'both')\"\n [templateLeft]=\"paginatorLeftTemplate || _paginatorLeftTemplate\"\n [templateRight]=\"paginatorRightTemplate || _paginatorRightTemplate\"\n [dropdownAppendTo]=\"paginatorDropdownAppendTo\"\n [dropdownScrollHeight]=\"paginatorDropdownScrollHeight\"\n [currentPageReportTemplate]=\"currentPageReportTemplate\"\n [showFirstLastIcon]=\"showFirstLastIcon\"\n [dropdownItemTemplate]=\"paginatorDropdownItemTemplate || _paginatorDropdownItemTemplate\"\n [showCurrentPageReport]=\"showCurrentPageReport\"\n [showJumpToPageDropdown]=\"showJumpToPageDropdown\"\n [showJumpToPageInput]=\"showJumpToPageInput\"\n [showPageLinks]=\"showPageLinks\"\n [styleClass]=\"cx('pcPaginator')\"\n [locale]=\"paginatorLocale\"\n >\n <ng-template pTemplate=\"dropdownicon\" *ngIf=\"paginatorDropdownIconTemplate || _paginatorDropdownIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorDropdownIconTemplate || _paginatorDropdownIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"firstpagelinkicon\" *ngIf=\"paginatorFirstPageLinkIconTemplate || _paginatorFirstPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorFirstPageLinkIconTemplate || _paginatorFirstPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"previouspagelinkicon\" *ngIf=\"paginatorPreviousPageLinkIconTemplate || _paginatorPreviousPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorPreviousPageLinkIconTemplate || _paginatorPreviousPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"lastpagelinkicon\" *ngIf=\"paginatorLastPageLinkIconTemplate || _paginatorLastPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorLastPageLinkIconTemplate || _paginatorLastPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"nextpagelinkicon\" *ngIf=\"paginatorNextPageLinkIconTemplate || _paginatorNextPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorNextPageLinkIconTemplate || _paginatorNextPageLinkIconTemplate\"></ng-container>\n </ng-template>\n </p-paginator>\n\n <div *ngIf=\"summaryTemplate || _summaryTemplate\" [ngClass]=\"cx('footer')\">\n <ng-container *ngTemplateOutlet=\"summaryTemplate || _summaryTemplate\"></ng-container>\n </div>\n\n <div #resizeHelper [ngClass]=\"cx('columnResizeIndicator')\" style=\"display:none\" *ngIf=\"resizableColumns\"></div>\n <span #reorderIndicatorUp [ngClass]=\"cx('rowReorderIndicatorUp')\" style=\"display: none;\" *ngIf=\"reorderableColumns\">\n <ArrowDownIcon *ngIf=\"!reorderIndicatorUpIconTemplate && !_reorderIndicatorUpIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"reorderIndicatorUpIconTemplate || _reorderIndicatorUpIconTemplate\"></ng-template>\n </span>\n <span #reorderIndicatorDown [ngClass]=\"cx('rowReorderIndicatorDown')\" style=\"display: none;\" *ngIf=\"reorderableColumns\">\n <ArrowUpIcon *ngIf=\"!reorderIndicatorDownIconTemplate && !_reorderIndicatorDownIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"reorderIndicatorDownIconTemplate || _reorderIndicatorDownIconTemplate\"></ng-template>\n </span>\n </div>\n `,\n providers: [TableService, TableStyle],\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None\n})\nexport class Table extends BaseComponent implements OnInit, AfterViewInit, AfterContentInit, BlockableUI, OnChanges {\n /**\n * An array of objects to represent dynamic columns that are frozen.\n * @group Props\n */\n @Input() frozenColumns: any[] | undefined;\n /**\n * An array of objects to display as frozen.\n * @group Props\n */\n @Input() frozenValue: any[] | undefined;\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Inline style of the table.\n * @group Props\n */\n @Input() tableStyle: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the table.\n * @group Props\n */\n @Input() tableStyleClass: string | undefined;\n /**\n * When specified as true, enables the pagination.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) paginator: boolean | undefined;\n /**\n * Number of page links to display in paginator.\n * @group Props\n */\n @Input({ transform: numberAttribute }) pageLinks: number = 5;\n /**\n * Array of integer/object values to display inside rows per page dropdown of paginator\n * @group Props\n */\n @Input() rowsPerPageOptions: any[] | undefined;\n /**\n * Whether to show it even there is only one page.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) alwaysShowPaginator: boolean = true;\n /**\n * Position of the paginator, options are \"top\", \"bottom\" or \"both\".\n * @group Props\n */\n @Input() paginatorPosition: 'top' | 'bottom' | 'both' = 'bottom';\n /**\n * Custom style class for paginator\n * @group Props\n */\n @Input() paginatorStyleClass: string | undefined;\n /**\n * Target element to attach the paginator dropdown overlay, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n * @group Props\n */\n @Input() paginatorDropdownAppendTo: HTMLElement | ElementRef | TemplateRef<any> | string | null | undefined | any;\n /**\n * Paginator dropdown height of the viewport in pixels, a scrollbar is defined if height of list exceeds this value.\n * @group Props\n */\n @Input() paginatorDropdownScrollHeight: string = '200px';\n /**\n * Template of the current page report element. Available placeholders are {currentPage},{totalPages},{rows},{first},{last} and {totalRecords}\n * @group Props\n */\n @Input() currentPageReportTemplate: string = '{currentPage} of {totalPages}';\n /**\n * Whether to display current page report.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showCurrentPageReport: boolean | undefined;\n /**\n * Whether to display a dropdown to navigate to any page.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showJumpToPageDropdown: boolean | undefined;\n /**\n * Whether to display a input to navigate to any page.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showJumpToPageInput: boolean | undefined;\n /**\n * When enabled, icons are displayed on paginator to go first and last page.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showFirstLastIcon: boolean = true;\n /**\n * Whether to show page links.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showPageLinks: boolean = true;\n /**\n * Sort order to use when an unsorted column gets sorted by user interaction.\n * @group Props\n */\n @Input({ transform: numberAttribute }) defaultSortOrder: number = 1;\n /**\n * Defines whether sorting works on single column or on multiple columns.\n * @group Props\n */\n @Input() sortMode: 'single' | 'multiple' = 'single';\n /**\n * When true, resets paginator to first page after sorting. Available only when sortMode is set to single.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) resetPageOnSort: boolean = true;\n /**\n * Specifies the selection mode, valid values are \"single\" and \"multiple\".\n * @group Props\n */\n @Input() selectionMode: 'single' | 'multiple' | undefined | null;\n /**\n * When enabled with paginator and checkbox selection mode, the select all checkbox in the header will select all rows on the current page.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) selectionPageOnly: boolean | undefined;\n /**\n * Selected row with a context menu.\n * @group Props\n */\n @Input() contextMenuSelection: any;\n /**\n * Callback to invoke on context menu selection change.\n * @param {*} object - row data.\n * @group Emits\n */\n @Output() contextMenuSelectionChange: EventEmitter<any> = new EventEmitter();\n /**\n * Defines the behavior of context menu selection, in \"separate\" mode context menu updates contextMenuSelection property whereas in joint mode selection property is used instead so that when row selection is enabled, both row selection and context menu selection use the same property.\n * @group Props\n */\n @Input() contextMenuSelectionMode: string = 'separate';\n /**\n * A property to uniquely identify a record in data.\n * @group Props\n */\n @Input() dataKey: string | undefined;\n /**\n * Defines whether metaKey should be considered for the selection. On touch enabled devices, metaKeySelection is turned off automatically.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) metaKeySelection: boolean | undefined = false;\n /**\n * Defines if the row is selectable.\n * @group Props\n */\n @Input() rowSelectable: (row: { data: any; index: number }) => boolean | undefined;\n /**\n * Function to optimize the dom operations by delegating to ngForTrackBy, default algorithm checks for object identity.\n * @group Props\n */\n @Input() rowTrackBy: Function = (index: number, item: any) => item;\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) lazy: boolean = false;\n /**\n * Whether to call lazy loading on initialization.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) lazyLoadOnInit: boolean = true;\n /**\n * Algorithm to define if a row is selected, valid values are \"equals\" that compares by reference and \"deepEquals\" that compares all fields.\n * @group Props\n */\n @Input() compareSelectionBy: 'equals' | 'deepEquals' = 'deepEquals';\n /**\n * Character to use as the csv separator.\n * @group Props\n */\n @Input() csvSeparator: string = ',';\n /**\n * Name of the exported file.\n * @group Props\n */\n @Input() exportFilename: string = 'download';\n /**\n * An array of FilterMetadata objects to provide external filters.\n * @group Props\n */\n @Input() filters: { [s: string]: FilterMetadata | FilterMetadata[] } = {};\n /**\n * An array of fields as string to use in global filtering.\n * @group Props\n */\n @Input() globalFilterFields: string[] | undefined;\n /**\n * Delay in milliseconds before filtering the data.\n * @group Props\n */\n @Input({ transform: numberAttribute }) filterDelay: number = 300;\n /**\n * Locale to use in filtering. The default locale is the host environment's current locale.\n * @group Props\n */\n @Input() filterLocale: string | undefined;\n /**\n * Map instance to keep the expanded rows where key of the map is the data key of the row.\n * @group Props\n */\n @Input() expandedRowKeys: { [s: string]: boolean } = {};\n /**\n * Map instance to keep the rows being edited where key of the map is the data key of the row.\n * @group Props\n */\n @Input() editingRowKeys: { [s: string]: boolean } = {};\n /**\n * Whether multiple rows can be expanded at any time. Valid values are \"multiple\" and \"single\".\n * @group Props\n */\n @Input() rowExpandMode: 'multiple' | 'single' = 'multiple';\n /**\n * Enables scrollable tables.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) scrollable: boolean | undefined;\n /**\n * Orientation of the scrolling, options are \"vertical\", \"horizontal\" and \"both\".\n * @group Props\n * @deprecated Property is obselete since v14.2.0.\n */\n @Input() scrollDirection: 'vertical' | 'horizontal' | 'both' = 'vertical';\n /**\n * Type of the row grouping, valid values are \"subheader\" and \"rowspan\".\n * @group Props\n */\n @Input() rowGroupMode: 'subheader' | 'rowspan' | undefined;\n /**\n * Height of the scroll viewport in fixed pixels or the \"flex\" keyword for a dynamic size.\n * @group Props\n */\n @Input() scrollHeight: string | undefined;\n /**\n * Whether the data should be loaded on demand during scroll.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) virtualScroll: boolean | undefined;\n /**\n * Height of a row to use in calculations of virtual scrolling.\n * @group Props\n */\n @Input({ transform: numberAttribute }) virtualScrollItemSize: number | undefined;\n /**\n * Whether to use the scroller feature. The properties of scroller component can be used like an object in it.\n * @group Props\n */\n @Input() virtualScrollOptions: ScrollerOptions | undefined;\n /**\n * Threshold in milliseconds to delay lazy loading during scrolling.\n * @group Props\n */\n @Input({ transform: numberAttribute }) virtualScrollDelay: number = 250;\n /**\n * Width of the frozen columns container.\n * @group Props\n */\n @Input() frozenWidth: string | undefined;\n /**\n * Defines if the table is responsive.\n * @group Props\n * @deprecated table is always responsive with scrollable behavior.\n */\n @Input() get responsive(): boolean | undefined | null {\n return this._responsive;\n }\n set responsive(val: boolean | undefined | null) {\n this._responsive = val;\n console.log('responsive property is deprecated as table is always responsive with scrollable behavior.');\n }\n _responsive: boolean | undefined | null;\n /**\n * Local ng-template varilable of a ContextMenu.\n * @group Props\n */\n @Input() contextMenu: any;\n /**\n * When enabled, columns can be resized using drag and drop.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) resizableColumns: boolean | undefined;\n /**\n * Defines whether the overall table width should change on column resize, valid values are \"fit\" and \"expand\".\n * @group Props\n */\n @Input() columnResizeMode: string = 'fit';\n /**\n * When enabled, columns can be reordered using drag and drop.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) reorderableColumns: boolean | undefined;\n /**\n * Displays a loader to indicate data load is in progress.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) loading: boolean | undefined;\n /**\n * The icon to show while indicating data load is in progress.\n * @group Props\n */\n @Input() loadingIcon: string | undefined;\n /**\n * Whether to show the loading mask when loading property is true.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showLoader: boolean = true;\n /**\n * Adds hover effect to rows without the need for selectionMode. Note that tr elements that can be hovered need to have \"p-selectable-row\" class for rowHover to work.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) rowHover: boolean | undefined;\n /**\n * Whether to use the default sorting or a custom one using sortFunction.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) customSort: boolean | undefined;\n /**\n * Whether to use the initial sort badge or not.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showInitialSortBadge: boolean = true;\n /**\n * Whether the cell widths scale according to their content or not. Deprecated: Table layout is always \"auto\".\n * @group Props\n */\n @Input({ transform: booleanAttribute }) autoLayout: boolean | undefined;\n /**\n * Export function.\n * @group Props\n */\n @Input() exportFunction: Function | undefined;\n /**\n * Custom export header of the column to be exported as CSV.\n * @group Props\n */\n @Input() exportHeader: string | undefined;\n /**\n * Unique identifier of a stateful table to use in state storage.\n * @group Props\n */\n @Input() stateKey: string | undefined;\n /**\n * Defines where a stateful table keeps its state, valid values are \"session\" for sessionStorage and \"local\" for localStorage.\n * @group Props\n */\n @Input() stateStorage: 'session' | 'local' = 'session';\n /**\n * Defines the editing mode, valid values are \"cell\" and \"row\".\n * @group Props\n */\n @Input() editMode: 'cell' | 'row' = 'cell';\n /**\n * Field name to use in row grouping.\n * @group Props\n */\n @Input() groupRowsBy: any;\n /**\n * Defines the size of the table.\n * @group Props\n */\n @Input() size: 'small' | 'large' | undefined;\n /**\n * Whether to show grid lines between cells.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showGridlines: boolean | undefined;\n /**\n * Whether to display rows with alternating colors.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) stripedRows: boolean | undefined;\n /**\n * Order to sort when default row grouping is enabled.\n * @group Props\n */\n @Input({ transform: numberAttribute }) groupRowsByOrder: number = 1;\n /**\n * Defines the responsive mode, valid options are \"stack\" and \"scroll\".\n * @group Props\n */\n @Input() responsiveLayout: string = 'scroll';\n /**\n * The breakpoint to define the maximum width boundary when using stack responsive layout.\n * @group Props\n */\n @Input() breakpoint: string = '960px';\n /**\n * Locale to be used in paginator formatting.\n * @group Props\n */\n @Input() paginatorLocale: string | undefined;\n /**\n * An array of objects to display.\n * @group Props\n */\n @Input() get value(): any[] {\n return this._value;\n }\n set value(val: any[]) {\n this._value = val;\n }\n /**\n * An array of objects to represent dynamic columns.\n * @group Props\n */\n @Input() get columns(): any[] | undefined {\n return this._columns;\n }\n set columns(cols: any[] | undefined) {\n this._columns = cols;\n }\n /**\n * Index of the first row to be displayed.\n * @group Props\n */\n @Input() get first(): number | null | undefined {\n return this._first;\n }\n set first(val: number | null | undefined) {\n this._first = val;\n }\n /**\n * Number of rows to display per page.\n * @group Props\n */\n @Input() get rows(): number | undefined {\n return this._rows;\n }\n set rows(val: number | undefined) {\n this._rows = val;\n }\n /**\n * Number of total records, defaults to length of value when not defined.\n * @group Props\n */\n @Input() get totalRecords(): number {\n return this._totalRecords;\n }\n set totalRecords(val: number) {\n this._totalRecords = val;\n this.tableService.onTotalRecordsChange(this._totalRecords);\n }\n /**\n * Name of the field to sort data by default.\n * @group Props\n */\n @Input() get sortField(): string | undefined | null {\n return this._sortField;\n }\n set sortField(val: string | undefined | null) {\n this._sortField = val;\n }\n /**\n * Order to sort when default sorting is enabled.\n * @group Props\n */\n @Input() get sortOrder(): number {\n return this._sortOrder;\n }\n set sortOrder(val: number) {\n this._sortOrder = val;\n }\n /**\n * An array of SortMeta objects to sort the data by default in multiple sort mode.\n * @group Props\n */\n @Input() get multiSortMeta(): SortMeta[] | undefined | null {\n return this._multiSortMeta;\n }\n set multiSortMeta(val: SortMeta[] | undefined | null) {\n this._multiSortMeta = val;\n }\n /**\n * Selected row in single mode or an array of values in multiple mode.\n * @group Props\n */\n @Input() get selection(): any {\n return this._selection;\n }\n set selection(val: any) {\n this._selection = val;\n }\n /**\n * Indicates the height of rows to be scrolled.\n * @group Props\n * @deprecated use virtualScrollItemSize property instead.\n */\n @Input() get virtualRowHeight(): number {\n return this._virtualRowHeight;\n }\n set virtualRowHeight(val: number) {\n this._virtualRowHeight = val;\n console.log('The virtualRowHeight property is deprecated.');\n }\n /**\n * Whether all data is selected.\n * @group Props\n */\n @Input() get selectAll(): boolean | null {\n return this._selection;\n }\n set selectAll(val: boolean | null) {\n this._selection = val;\n }\n /**\n * Emits when the all of the items selected or unselected.\n * @param {TableSelectAllChangeEvent} event - custom all selection change event.\n * @group Emits\n */\n @Output() selectAllChange: EventEmitter<TableSelectAllChangeEvent> = new EventEmitter<TableSelectAllChangeEvent>();\n /**\n * Callback to invoke on selection changed.\n * @param {any | null} value - selected data.\n * @group Emits\n */\n @Output() selectionChange: EventEmitter<any | null> = new EventEmitter<any | null>();\n /**\n * Callback to invoke when a row is selected.\n * @param {TableRowSelectEvent} event - custom select event.\n * @group Emits\n */\n @Output() onRowSelect: EventEmitter<TableRowSelectEvent> = new EventEmitter<TableRowSelectEvent>();\n /**\n * Callback to invoke when a row is unselected.\n * @param {TableRowUnSelectEvent} event - custom unselect event.\n * @group Emits\n */\n @Output() onRowUnselect: EventEmitter<TableRowUnSelectEvent> = new EventEmitter<TableRowUnSelectEvent>();\n /**\n * Callback to invoke when pagination occurs.\n * @param {TablePageEvent} event - custom pagination event.\n * @group Emits\n */\n @Output() onPage: EventEmitter<TablePageEvent> = new EventEmitter<TablePageEvent>();\n /**\n * Callback to invoke when a column gets sorted.\n * @param {Object} object - sort meta.\n * @group Emits\n */\n @Output() onSort: EventEmitter<{ multisortmeta: SortMeta[] } | any> = new EventEmitter<{ multisortmeta: SortMeta[] } | any>();\n /**\n * Callback to invoke when data is filtered.\n * @param {TableFilterEvent} event - custom filtering event.\n * @group Emits\n */\n @Output() onFilter: EventEmitter<TableFilterEvent> = new EventEmitter<TableFilterEvent>();\n /**\n * Callback to invoke when paging, sorting or filtering happens in lazy mode.\n * @param {TableLazyLoadEvent} event - custom lazy loading event.\n * @group Emits\n */\n @Output() onLazyLoad: EventEmitter<TableLazyLoadEvent> = new EventEmitter<TableLazyLoadEvent>();\n /**\n * Callback to invoke when a row is expanded.\n * @param {TableRowExpandEvent} event - custom row expand event.\n * @group Emits\n */\n @Output() onRowExpand: EventEmitter<TableRowExpandEvent> = new EventEmitter<TableRowExpandEvent>();\n /**\n * Callback to invoke when a row is collapsed.\n * @param {TableRowCollapseEvent} event - custom row collapse event.\n * @group Emits\n */\n @Output() onRowCollapse: EventEmitter<TableRowCollapseEvent> = new EventEmitter<TableRowCollapseEvent>();\n /**\n * Callback to invoke when a row is selected with right click.\n * @param {TableContextMenuSelectEvent} event - custom context menu select event.\n * @group Emits\n */\n @Output() onContextMenuSelect: EventEmitter<TableContextMenuSelectEvent> = new EventEmitter<TableContextMenuSelectEvent>();\n /**\n * Callback to invoke when a column is resized.\n * @param {TableColResizeEvent} event - custom column resize event.\n * @group Emits\n */\n @Output() onColResize: EventEmitter<TableColResizeEvent> = new EventEmitter<TableColResizeEvent>();\n /**\n * Callback to invoke when a column is reordered.\n * @param {TableColumnReorderEvent} event - custom column reorder event.\n * @group Emits\n */\n @Output() onColReorder: EventEmitter<TableColumnReorderEvent> = new EventEmitter<TableColumnReorderEvent>();\n /**\n * Callback to invoke when a row is reordered.\n * @param {TableRowReorderEvent} event - custom row reorder event.\n * @group Emits\n */\n @Output() onRowReorder: EventEmitter<TableRowReorderEvent> = new EventEmitter<TableRowReorderEvent>();\n /**\n * Callback to invoke when a cell switches to edit mode.\n * @param {TableEditInitEvent} event - custom edit init event.\n * @group Emits\n */\n @Output() onEditInit: EventEmitter<TableEditInitEvent> = new EventEmitter<TableEditInitEvent>();\n /**\n * Callback to invoke when cell edit is completed.\n * @param {TableEditCompleteEvent} event - custom edit complete event.\n * @group Emits\n */\n @Output() onEditComplete: EventEmitter<TableEditCompleteEvent> = new EventEmitter<TableEditCompleteEvent>();\n /**\n * Callback to invoke when cell edit is cancelled with escape key.\n * @param {TableEditCancelEvent} event - custom edit cancel event.\n * @group Emits\n */\n @Output() onEditCancel: EventEmitter<TableEditCancelEvent> = new EventEmitter<TableEditCancelEvent>();\n /**\n * Callback to invoke when state of header checkbox changes.\n * @param {TableHeaderCheckboxToggleEvent} event - custom header checkbox event.\n * @group Emits\n */\n @Output()\n onHeaderCheckboxToggle: EventEmitter<TableHeaderCheckboxToggleEvent> = new EventEmitter<TableHeaderCheckboxToggleEvent>();\n /**\n * A function to implement custom sorting, refer to sorting section for details.\n * @param {any} any - sort meta.\n * @group Emits\n */\n @Output() sortFunction: EventEmitter<any> = new EventEmitter<any>();\n /**\n * Callback to invoke on pagination.\n * @param {number} number - first element.\n * @group Emits\n */\n @Output() firstChange: EventEmitter<number> = new EventEmitter<number>();\n /**\n * Callback to invoke on rows change.\n * @param {number} number - Row count.\n * @group Emits\n */\n @Output() rowsChange: EventEmitter<number> = new EventEmitter<number>();\n /**\n * Callback to invoke table state is saved.\n * @param {TableState} object - table state.\n * @group Emits\n */\n @Output() onStateSave: EventEmitter<TableState> = new EventEmitter<TableState>();\n /**\n * Callback to invoke table state is restored.\n * @param {TableState} object - table state.\n * @group Emits\n */\n @Output() onStateRestore: EventEmitter<TableState> = new EventEmitter<TableState>();\n\n @ViewChild('container') containerViewChild: Nullable<ElementRef>;\n\n @ViewChild('resizeHelper') resizeHelperViewChild: Nullable<ElementRef>;\n\n @ViewChild('reorderIndicatorUp')\n reorderIndicatorUpViewChild: Nullable<ElementRef>;\n\n @ViewChild('reorderIndicatorDown')\n reorderIndicatorDownViewChild: Nullable<ElementRef>;\n\n @ViewChild('wrapper') wrapperViewChild: Nullable<ElementRef>;\n\n @ViewChild('table') tableViewChild: Nullable<ElementRef>;\n\n @ViewChild('thead') tableHeaderViewChild: Nullable<ElementRef>;\n\n @ViewChild('tfoot') tableFooterViewChild: Nullable<ElementRef>;\n\n @ViewChild('scroller') scroller: Nullable<Scroller>;\n\n @ContentChildren(PrimeTemplate) _templates: Nullable<QueryList<PrimeTemplate>>;\n\n _virtualRowHeight: number = 28;\n\n _value: any[] = [];\n\n _columns: any[] | undefined;\n\n _totalRecords: number = 0;\n\n _first: number | null | undefined = 0;\n\n _rows: number | undefined;\n\n filteredValue: any[] | undefined | null;\n\n // @todo will be refactored later\n @ContentChild('header') _headerTemplate: TemplateRef<any>;\n headerTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('headergrouped') _headerGroupedTemplate: TemplateRef<any>;\n headerGroupedTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('body') _bodyTemplate: TemplateRef<any>;\n bodyTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('loadingbody') _loadingBodyTemplate: TemplateRef<any>;\n loadingBodyTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('caption') _captionTemplate: TemplateRef<any>;\n captionTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('footer') _footerTemplate: TemplateRef<any>;\n footerTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('footergrouped') _footerGroupedTemplate: TemplateRef<any>;\n footerGroupedTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('summary') _summaryTemplate: TemplateRef<any>;\n summaryTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('colgroup') _colGroupTemplate: TemplateRef<any>;\n colGroupTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('expandedrow') _expandedRowTemplate: TemplateRef<any>;\n expandedRowTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('groupheader') _groupHeaderTemplate: TemplateRef<any>;\n groupHeaderTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('groupfooter') _groupFooterTemplate: TemplateRef<any>;\n groupFooterTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('frozenexpandedrow') _frozenExpandedRowTemplate: TemplateRef<any>;\n frozenExpandedRowTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('frozenheader') _frozenHeaderTemplate: TemplateRef<any>;\n frozenHeaderTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('frozenbody') _frozenBodyTemplate: TemplateRef<any>;\n frozenBodyTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('frozenfooter') _frozenFooterTemplate: TemplateRef<any>;\n frozenFooterTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('frozencolgroup') _frozenColGroupTemplate: TemplateRef<any>;\n frozenColGroupTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('emptymessage') _emptyMessageTemplate: TemplateRef<any>;\n emptyMessageTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('paginatorleft') _paginatorLeftTemplate: TemplateRef<any>;\n paginatorLeftTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('paginatorright') _paginatorRightTemplate: TemplateRef<any>;\n paginatorRightTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('paginatordropdownitem') _paginatorDropdownItemTemplate: TemplateRef<any>;\n paginatorDropdownItemTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('loadingicon') _loadingIconTemplate: TemplateRef<any>;\n loadingIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('reorderindicatorupicon') _reorderIndicatorUpIconTemplate: TemplateRef<any>;\n reorderIndicatorUpIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('reorderindicatordownicon') _reorderIndicatorDownIconTemplate: TemplateRef<any>;\n reorderIndicatorDownIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('sorticon') _sortIconTemplate: TemplateRef<any>;\n sortIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('checkboxicon') _checkboxIconTemplate: TemplateRef<any>;\n checkboxIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('headercheckboxicon') _headerCheckboxIconTemplate: TemplateRef<any>;\n headerCheckboxIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('paginatordropdownicon') _paginatorDropdownIconTemplate: TemplateRef<any>;\n paginatorDropdownIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('paginatorfirstpagelinkicon') _paginatorFirstPageLinkIconTemplate: TemplateRef<any>;\n paginatorFirstPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('paginatorlastpagelinkicon') _paginatorLastPageLinkIconTemplate: TemplateRef<any>;\n paginatorLastPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('paginatorpreviouspagelinkicon') _paginatorPreviousPageLinkIconTemplate: TemplateRef<any>;\n paginatorPreviousPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('paginatornextpagelinkicon') _paginatorNextPageLinkIconTemplate: TemplateRef<any>;\n paginatorNextPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n\n selectionKeys: any = {};\n\n lastResizerHelperX: number | undefined;\n\n reorderIconWidth: number | undefined;\n\n reorderIconHeight: number | undefined;\n\n draggedColumn: any;\n\n draggedRowIndex: number | undefined | null;\n\n droppedRowIndex: number | undefined | null;\n\n rowDragging: boolean | undefined | null;\n\n dropPosition: number | undefined | null;\n\n editingCell: Element | undefined | null;\n\n editingCellData: any;\n\n editingCellField: any;\n\n editingCellRowIndex: number | undefined | null;\n\n selfClick: boolean | undefined | null;\n\n documentEditListener: any;\n\n _multiSortMeta: SortMeta[] | undefined | null;\n\n _sortField: string | undefined | null;\n\n _sortOrder: number = 1;\n\n preventSelectionSetterPropagation: boolean | undefined;\n\n _selection: any;\n\n _selectAll: boolean | null = null;\n\n anchorRowIndex: number | undefined | null;\n\n rangeRowIndex: number | undefined;\n\n filterTimeout: any;\n\n initialized: boolean | undefined | null;\n\n rowTouched: boolean | undefined;\n\n restoringSort: boolean | undefined;\n\n restoringFilter: boolean | undefined;\n\n stateRestored: boolean | undefined;\n\n columnOrderStateRestored: boolean | undefined;\n\n columnWidthsState: string | undefined;\n\n tableWidthState: string | undefined;\n\n overlaySubscription: Subscription | undefined;\n\n resizeColumnElement: any;\n\n columnResizing: boolean = false;\n\n rowGroupHeaderStyleObject: any = {};\n\n id: string = UniqueComponentId();\n\n styleElement: any;\n\n responsiveStyleElement: any;\n\n overlayService = inject(OverlayService);\n\n filterService = inject(FilterService);\n\n tableService = inject(TableService);\n\n zone = inject(NgZone);\n\n _componentStyle = inject(TableStyle);\n\n ngOnInit() {\n super.ngOnInit();\n if (this.lazy && this.lazyLoadOnInit) {\n if (!this.virtualScroll) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n\n if (this.restoringFilter) {\n this.restoringFilter = false;\n }\n }\n\n if (this.responsiveLayout === 'stack') {\n this.createResponsiveStyle();\n }\n\n this.initialized = true;\n }\n\n ngAfterContentInit() {\n (this._templates as QueryList<PrimeTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'caption':\n this.captionTemplate = item.template;\n break;\n\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'headergrouped':\n this.headerGroupedTemplate = item.template;\n break;\n\n case 'body':\n this.bodyTemplate = item.template;\n break;\n\n case 'loadingbody':\n this.loadingBodyTemplate = item.template;\n break;\n\n case 'footer':\n this.footerTemplate = item.template;\n break;\n\n case 'footergrouped':\n this.footerGroupedTemplate = item.template;\n break;\n\n case 'summary':\n this.summaryTemplate = item.template;\n break;\n\n case 'colgroup':\n this.colGroupTemplate = item.template;\n break;\n\n case 'rowexpansion':\n this.expandedRowTemplate = item.template;\n break;\n\n case 'groupheader':\n this.groupHeaderTemplate = item.template;\n break;\n\n case 'groupfooter':\n this.groupFooterTemplate = item.template;\n break;\n\n case 'frozenheader':\n this.frozenHeaderTemplate = item.template;\n break;\n\n case 'frozenbody':\n this.frozenBodyTemplate = item.template;\n break;\n\n case 'frozenfooter':\n this.frozenFooterTemplate = item.template;\n break;\n\n case 'frozencolgroup':\n this.frozenColGroupTemplate = item.template;\n break;\n\n case 'frozenrowexpansion':\n this.frozenExpandedRowTemplate = item.template;\n break;\n\n case 'emptymessage':\n this.emptyMessageTemplate = item.template;\n break;\n\n case 'paginatorleft':\n this.paginatorLeftTemplate = item.template;\n break;\n\n case 'paginatorright':\n this.paginatorRightTemplate = item.template;\n break;\n\n case 'paginatordropdownicon':\n this.paginatorDropdownIconTemplate = item.template;\n break;\n\n case 'paginatordropdownitem':\n this.paginatorDropdownItemTemplate = item.template;\n break;\n\n case 'paginatorfirstpagelinkicon':\n this.paginatorFirstPageLinkIconTemplate = item.template;\n break;\n\n case 'paginatorlastpagelinkicon':\n this.paginatorLastPageLinkIconTemplate = item.template;\n break;\n\n case 'paginatorpreviouspagelinkicon':\n this.paginatorPreviousPageLinkIconTemplate = item.template;\n break;\n\n case 'paginatornextpagelinkicon':\n this.paginatorNextPageLinkIconTemplate = item.template;\n break;\n\n case 'loadingicon':\n this.loadingIconTemplate = item.template;\n break;\n\n case 'reorderindicatorupicon':\n this.reorderIndicatorUpIconTemplate = item.template;\n break;\n\n case 'reorderindicatordownicon':\n this.reorderIndicatorDownIconTemplate = item.template;\n break;\n\n case 'sorticon':\n this.sortIconTemplate = item.template;\n break;\n\n case 'checkboxicon':\n this.checkboxIconTemplate = item.template;\n break;\n\n case 'headercheckboxicon':\n this.headerCheckboxIconTemplate = item.template;\n break;\n }\n });\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n if (isPlatformBrowser(this.platformId)) {\n if (this.isStateful() && this.resizableColumns) {\n this.restoreColumnWidths();\n }\n }\n }\n\n ngOnChanges(simpleChange: SimpleChanges) {\n super.ngOnChanges(simpleChange);\n if (simpleChange.value) {\n if (this.isStateful() && !this.stateRestored && isPlatformBrowser(this.platformId)) {\n this.restoreState();\n }\n\n this._value = simpleChange.value.currentValue;\n\n if (!this.lazy) {\n this.totalRecords = this._value ? this._value.length : 0;\n\n if (this.sortMode == 'single' && (this.sortField || this.groupRowsBy)) this.sortSingle();\n else if (this.sortMode == 'multiple' && (this.multiSortMeta || this.groupRowsBy)) this.sortMultiple();\n else if (this.hasFilter())\n //sort already filters\n this._filter();\n }\n\n this.tableService.onValueChange(simpleChange.value.currentValue);\n }\n\n if (simpleChange.columns) {\n if (!this.isStateful()) {\n this._columns = simpleChange.columns.currentValue;\n this.tableService.onColumnsChange(simpleChange.columns.currentValue);\n }\n\n if (this._columns && this.isStateful() && this.reorderableColumns && !this.columnOrderStateRestored) {\n this.restoreColumnOrder();\n\n this.tableService.onColumnsChange(this._columns);\n }\n }\n\n if (simpleChange.sortField) {\n this._sortField = simpleChange.sortField.currentValue;\n\n //avoid triggering lazy load prior to lazy initialization at onInit\n if (!this.lazy || this.initialized) {\n if (this.sortMode === 'single') {\n this.sortSingle();\n }\n }\n }\n\n if (simpleChange.groupRowsBy) {\n //avoid triggering lazy load prior to lazy initialization at onInit\n if (!this.lazy || this.initialized) {\n if (this.sortMode === 'single') {\n this.sortSingle();\n }\n }\n }\n\n if (simpleChange.sortOrder) {\n this._sortOrder = simpleChange.sortOrder.currentValue;\n\n //avoid triggering lazy load prior to lazy initialization at onInit\n if (!this.lazy || this.initialized) {\n if (this.sortMode === 'single') {\n this.sortSingle();\n }\n }\n }\n\n if (simpleChange.groupRowsByOrder) {\n //avoid triggering lazy load prior to lazy initialization at onInit\n if (!this.lazy || this.initialized) {\n if (this.sortMode === 'single') {\n this.sortSingle();\n }\n }\n }\n\n if (simpleChange.multiSortMeta) {\n this._multiSortMeta = simpleChange.multiSortMeta.currentValue;\n if (this.sortMode === 'multiple' && (this.initialized || (!this.lazy && !this.virtualScroll))) {\n this.sortMultiple();\n }\n }\n\n if (simpleChange.selection) {\n this._selection = simpleChange.selection.currentValue;\n\n if (!this.preventSelectionSetterPropagation) {\n this.updateSelectionKeys();\n this.tableService.onSelectionChange();\n }\n this.preventSelectionSetterPropagation = false;\n }\n\n if (simpleChange.selectAll) {\n this._selectAll = simpleChange.selectAll.currentValue;\n\n if (!this.preventSelectionSetterPropagation) {\n this.updateSelectionKeys();\n this.tableService.onSelectionChange();\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n this.preventSelectionSetterPropagation = false;\n }\n }\n\n get processedData() {\n return this.filteredValue || this.value || [];\n }\n\n private _initialColWidths: number[];\n\n dataToRender(data: any) {\n const _data = data || this.processedData;\n\n if (_data && this.paginator) {\n const first = this.lazy ? 0 : this.first;\n return _data.slice(first, <number>first + <number>this.rows);\n }\n\n return _data;\n }\n\n updateSelectionKeys() {\n if (this.dataKey && this._selection) {\n this.selectionKeys = {};\n if (Array.isArray(this._selection)) {\n for (let data of this._selection) {\n this.selectionKeys[String(ObjectUtils.resolveFieldData(data, this.dataKey))] = 1;\n }\n } else {\n this.selectionKeys[String(ObjectUtils.resolveFieldData(this._selection, this.dataKey))] = 1;\n }\n }\n }\n\n onPageChange(event: TablePageEvent) {\n this.first = event.first;\n this.rows = event.rows;\n\n this.onPage.emit({\n first: this.first,\n rows: <number>this.rows\n });\n\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n\n this.firstChange.emit(this.first);\n this.rowsChange.emit(this.rows);\n this.tableService.onValueChange(this.value);\n\n if (this.isStateful()) {\n this.saveState();\n }\n\n this.anchorRowIndex = null;\n\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n\n sort(event: any) {\n let originalEvent = event.originalEvent;\n\n if (this.sortMode === 'single') {\n this._sortOrder = this.sortField === event.field ? this.sortOrder * -1 : this.defaultSortOrder;\n this._sortField = event.field;\n\n if (this.resetPageOnSort) {\n this._first = 0;\n this.firstChange.emit(this._first);\n\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n\n this.sortSingle();\n }\n if (this.sortMode === 'multiple') {\n let metaKey = (<KeyboardEvent>originalEvent).metaKey || (<KeyboardEvent>originalEvent).ctrlKey;\n let sortMeta = this.getSortMeta(<string>event.field);\n\n if (sortMeta) {\n if (!metaKey) {\n this._multiSortMeta = [\n {\n field: <string>event.field,\n order: sortMeta.order * -1\n }\n ];\n\n if (this.resetPageOnSort) {\n this._first = 0;\n this.firstChange.emit(this._first);\n\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n } else {\n sortMeta.order = sortMeta.order * -1;\n }\n } else {\n if (!metaKey || !this.multiSortMeta) {\n this._multiSortMeta = [];\n\n if (this.resetPageOnSort) {\n this._first = 0;\n this.firstChange.emit(this._first);\n }\n }\n (<SortMeta[]>this._multiSortMeta).push({\n field: <string>event.field,\n order: this.defaultSortOrder\n });\n }\n\n this.sortMultiple();\n }\n\n if (this.isStateful()) {\n this.saveState();\n }\n\n this.anchorRowIndex = null;\n }\n\n sortSingle() {\n let field = this.sortField || this.groupRowsBy;\n let order = this.sortField ? this.sortOrder : this.groupRowsByOrder;\n if (this.groupRowsBy && this.sortField && this.groupRowsBy !== this.sortField) {\n this._multiSortMeta = [this.getGroupRowsMeta(), { field: this.sortField, order: this.sortOrder }];\n this.sortMultiple();\n return;\n }\n\n if (field && order) {\n if (this.restoringSort) {\n this.restoringSort = false;\n }\n\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else if (this.value) {\n if (this.customSort) {\n this.sortFunction.emit({\n data: this.value,\n mode: this.sortMode,\n field: field,\n order: order\n });\n } else {\n this.value.sort((data1, data2) => {\n let value1 = ObjectUtils.resolveFieldData(data1, field);\n let value2 = ObjectUtils.resolveFieldData(data2, field);\n let result = null;\n\n if (value1 == null && value2 != null) result = -1;\n else if (value1 != null && value2 == null) result = 1;\n else if (value1 == null && value2 == null) result = 0;\n else if (typeof value1 === 'string' && typeof value2 === 'string') result = value1.localeCompare(value2);\n else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n\n return order * result;\n });\n\n this._value = [...this.value];\n }\n\n if (this.hasFilter()) {\n this._filter();\n }\n }\n\n let sortMeta: SortMeta = {\n field: field,\n order: order\n };\n\n this.onSort.emit(sortMeta);\n this.tableService.onSort(sortMeta);\n }\n }\n\n sortMultiple() {\n if (this.groupRowsBy) {\n if (!this._multiSortMeta) this._multiSortMeta = [this.getGroupRowsMeta()];\n else if ((<SortMeta[]>this.multiSortMeta)[0].field !== this.groupRowsBy) this._multiSortMeta = [this.getGroupRowsMeta(), ...this._multiSortMeta];\n }\n\n if (this.multiSortMeta) {\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else if (this.value) {\n if (this.customSort) {\n this.sortFunction.emit({\n data: this.value,\n mode: this.sortMode,\n multiSortMeta: this.multiSortMeta\n });\n } else {\n this.value.sort((data1, data2) => {\n return this.multisortField(data1, data2, <SortMeta[]>this.multiSortMeta, 0);\n });\n\n this._value = [...this.value];\n }\n\n if (this.hasFilter()) {\n this._filter();\n }\n }\n\n this.onSort.emit({\n multisortmeta: <SortMeta[]>this.multiSortMeta\n });\n this.tableService.onSort(this.multiSortMeta);\n }\n }\n\n multisortField(data1: any, data2: any, multiSortMeta: SortMeta[], index: number): any {\n const value1 = ObjectUtils.resolveFieldData(data1, multiSortMeta[index].field);\n const value2 = ObjectUtils.resolveFieldData(data2, multiSortMeta[index].field);\n if (ObjectUtils.compare(value1, value2, this.filterLocale) === 0) {\n return multiSortMeta.length - 1 > index ? this.multisortField(data1, data2, multiSortMeta, index + 1) : 0;\n }\n return this.compareValuesOnSort(value1, value2, multiSortMeta[index].order);\n }\n\n compareValuesOnSort(value1: any, value2: any, order: any) {\n return ObjectUtils.sort(value1, value2, order, this.filterLocale, this.sortOrder);\n }\n\n getSortMeta(field: string) {\n if (this.multiSortMeta && this.multiSortMeta.length) {\n for (let i = 0; i < this.multiSortMeta.length; i++) {\n if (this.multiSortMeta[i].field === field) {\n return this.multiSortMeta[i];\n }\n }\n }\n\n return null;\n }\n\n isSorted(field: string) {\n if (this.sortMode === 'single') {\n return this.sortField && this.sortField === field;\n } else if (this.sortMode === 'multiple') {\n let sorted = false;\n if (this.multiSortMeta) {\n for (let i = 0; i < this.multiSortMeta.length; i++) {\n if (this.multiSortMeta[i].field == field) {\n sorted = true;\n break;\n }\n }\n }\n return sorted;\n }\n }\n\n handleRowClick(event: any) {\n let target = <HTMLElement>event.originalEvent.target;\n let targetNode = target.nodeName;\n let parentNode = target.parentElement && target.parentElement.nodeName;\n if (targetNode == 'INPUT' || targetNode == 'BUTTON' || targetNode == 'A' || parentNode == 'INPUT' || parentNode == 'BUTTON' || parentNode == 'A' || DomHandler.hasClass(event.originalEvent.target, 'p-clickable')) {\n return;\n }\n\n if (this.selectionMode) {\n let rowData = event.rowData;\n let rowIndex = event.rowIndex;\n\n this.preventSelectionSetterPropagation = true;\n if (this.isMultipleSelectionMode() && event.originalEvent.shiftKey && this.anchorRowIndex != null) {\n DomHandler.clearSelection();\n if (this.rangeRowIndex != null) {\n this.clearSelectionRange(event.originalEvent);\n }\n\n this.rangeRowIndex = rowIndex;\n this.selectRange(event.originalEvent, rowIndex);\n } else {\n let selected = this.isSelected(rowData);\n\n if (!selected && !this.isRowSelectable(rowData, rowIndex)) {\n return;\n }\n\n let metaSelection = this.rowTouched ? false : this.metaKeySelection;\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rowData, this.dataKey)) : null;\n this.anchorRowIndex = rowIndex;\n this.rangeRowIndex = rowIndex;\n\n if (metaSelection) {\n let metaKey = event.originalEvent.metaKey || event.originalEvent.ctrlKey;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this._selection = null;\n this.selectionKeys = {};\n this.selectionChange.emit(null);\n } else {\n let selectionIndex = this.findIndexInSelection(rowData);\n this._selection = this.selection.filter((val: any, i: number) => i != selectionIndex);\n this.selectionChange.emit(this.selection);\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n }\n\n this.onRowUnselect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row'\n });\n } else {\n if (this.isSingleSelectionMode()) {\n this._selection = rowData;\n this.selectionChange.emit(rowData);\n if (dataKeyValue) {\n this.selectionKeys = {};\n this.selectionKeys[dataKeyValue] = 1;\n }\n } else if (this.isMultipleSelectionMode()) {\n if (metaKey) {\n this._selection = this.selection || [];\n } else {\n this._selection = [];\n this.selectionKeys = {};\n }\n\n this._selection = [...this.selection, rowData];\n this.selectionChange.emit(this.selection);\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n\n this.onRowSelect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row',\n index: rowIndex\n });\n }\n } else {\n if (this.selectionMode === 'single') {\n if (selected) {\n this._selection = null;\n this.selectionKeys = {};\n this.selectionChange.emit(this.selection);\n this.onRowUnselect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row',\n index: rowIndex\n });\n } else {\n this._selection = rowData;\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row',\n index: rowIndex\n });\n if (dataKeyValue) {\n this.selectionKeys = {};\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n } else if (this.selectionMode === 'multiple') {\n if (selected) {\n let selectionIndex = this.findIndexInSelection(rowData);\n this._selection = this.selection.filter((val: any, i: number) => i != selectionIndex);\n this.selectionChange.emit(this.selection);\n this.onRowUnselect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row',\n index: rowIndex\n });\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n } else {\n this._selection = this.selection ? [...this.selection, rowData] : [rowData];\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row',\n index: rowIndex\n });\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n }\n }\n }\n\n this.tableService.onSelectionChange();\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n\n this.rowTouched = false;\n }\n\n handleRowTouchEnd(event: Event) {\n this.rowTouched = true;\n }\n\n handleRowRightClick(event: any) {\n if (this.contextMenu) {\n const rowData = event.rowData;\n const rowIndex = event.rowIndex;\n\n if (this.contextMenuSelectionMode === 'separate') {\n this.contextMenuSelection = rowData;\n this.contextMenuSelectionChange.emit(rowData);\n this.onContextMenuSelect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n index: event.rowIndex\n });\n this.contextMenu.show(event.originalEvent);\n this.tableService.onContextMenu(rowData);\n } else if (this.contextMenuSelectionMode === 'joint') {\n this.preventSelectionSetterPropagation = true;\n let selected = this.isSelected(rowData);\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rowData, this.dataKey)) : null;\n\n if (!selected) {\n if (!this.isRowSelectable(rowData, rowIndex)) {\n return;\n }\n\n if (this.isSingleSelectionMode()) {\n this.selection = rowData;\n this.selectionChange.emit(rowData);\n\n if (dataKeyValue) {\n this.selectionKeys = {};\n this.selectionKeys[dataKeyValue] = 1;\n }\n } else if (this.isMultipleSelectionMode()) {\n this._selection = this.selection ? [...this.selection, rowData] : [rowData];\n this.selectionChange.emit(this.selection);\n\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n }\n\n this.tableService.onSelectionChange();\n this.contextMenu.show(event.originalEvent);\n this.onContextMenuSelect.emit({\n originalEvent: event,\n data: rowData,\n index: event.rowIndex\n });\n }\n }\n }\n\n selectRange(event: MouseEvent | KeyboardEvent, rowIndex: number) {\n let rangeStart, rangeEnd;\n\n if (<number>this.anchorRowIndex > rowIndex) {\n rangeStart = rowIndex;\n rangeEnd = this.anchorRowIndex;\n } else if (<number>this.anchorRowIndex < rowIndex) {\n rangeStart = this.anchorRowIndex;\n rangeEnd = rowIndex;\n } else {\n rangeStart = rowIndex;\n rangeEnd = rowIndex;\n }\n\n if (this.lazy && this.paginator) {\n (rangeStart as number) -= <number>this.first;\n (rangeEnd as number) -= <number>this.first;\n }\n\n let rangeRowsData = [];\n for (let i = <number>rangeStart; i <= <number>rangeEnd; i++) {\n let rangeRowData = this.filteredValue ? this.filteredValue[i] : this.value[i];\n if (!this.isSelected(rangeRowData)) {\n if (!this.isRowSelectable(rangeRowData, rowIndex)) {\n continue;\n }\n\n rangeRowsData.push(rangeRowData);\n this._selection = [...this.selection, rangeRowData];\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rangeRowData, this.dataKey)) : null;\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n }\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({\n originalEvent: event,\n data: rangeRowsData,\n type: 'row'\n });\n }\n\n clearSelectionRange(event: MouseEvent | KeyboardEvent) {\n let rangeStart, rangeEnd;\n let rangeRowIndex = <number>this.rangeRowIndex;\n let anchorRowIndex = <number>this.anchorRowIndex;\n\n if (rangeRowIndex > anchorRowIndex) {\n rangeStart = this.anchorRowIndex;\n rangeEnd = this.rangeRowIndex;\n } else if (rangeRowIndex < anchorRowIndex) {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.anchorRowIndex;\n } else {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.rangeRowIndex;\n }\n\n for (let i = <number>rangeStart; i <= <number>rangeEnd; i++) {\n let rangeRowData = this.value[i];\n let selectionIndex = this.findIndexInSelection(rangeRowData);\n this._selection = this.selection.filter((val: any, i: number) => i != selectionIndex);\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rangeRowData, this.dataKey)) : null;\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n this.onRowUnselect.emit({\n originalEvent: event,\n data: rangeRowData,\n type: 'row'\n });\n }\n }\n\n isSelected(rowData: any) {\n if (rowData && this.selection) {\n if (this.dataKey) {\n return this.selectionKeys[ObjectUtils.resolveFieldData(rowData, this.dataKey)] !== undefined;\n } else {\n if (Array.isArray(this.selection)) return this.findIndexInSelection(rowData) > -1;\n else return this.equals(rowData, this.selection);\n }\n }\n\n return false;\n }\n\n findIndexInSelection(rowData: any) {\n let index: number = -1;\n if (this.selection && this.selection.length) {\n for (let i = 0; i < this.selection.length; i++) {\n if (this.equals(rowData, this.selection[i])) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n\n isRowSelectable(data: any, index: number) {\n if (this.rowSelectable && !this.rowSelectable({ data, index })) {\n return false;\n }\n\n return true;\n }\n\n toggleRowWithRadio(event: any, rowData: any) {\n this.preventSelectionSetterPropagation = true;\n\n if (this.selection != rowData) {\n if (!this.isRowSelectable(rowData, event.rowIndex)) {\n return;\n }\n\n this._selection = rowData;\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({\n originalEvent: event.originalEvent,\n index: event.rowIndex,\n data: rowData,\n type: 'radiobutton'\n });\n\n if (this.dataKey) {\n this.selectionKeys = {};\n this.selectionKeys[String(ObjectUtils.resolveFieldData(rowData, this.dataKey))] = 1;\n }\n } else {\n this._selection = null;\n this.selectionChange.emit(this.selection);\n this.onRowUnselect.emit({\n originalEvent: event.originalEvent,\n index: event.rowIndex,\n data: rowData,\n type: 'radiobutton'\n });\n }\n\n this.tableService.onSelectionChange();\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n\n toggleRowWithCheckbox(event: any, rowData: any) {\n this.selection = this.selection || [];\n let selected = this.isSelected(rowData);\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rowData, this.dataKey)) : null;\n this.preventSelectionSetterPropagation = true;\n\n if (selected) {\n let selectionIndex = this.findIndexInSelection(rowData);\n this._selection = this.selection.filter((val: any, i: number) => i != selectionIndex);\n this.selectionChange.emit(this.selection);\n this.onRowUnselect.emit({\n originalEvent: event.originalEvent,\n index: event.rowIndex,\n data: rowData,\n type: 'checkbox'\n });\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n } else {\n if (!this.isRowSelectable(rowData, event.rowIndex)) {\n return;\n }\n\n this._selection = this.selection ? [...this.selection, rowData] : [rowData];\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({\n originalEvent: event.originalEvent,\n index: event.rowIndex,\n data: rowData,\n type: 'checkbox'\n });\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n\n this.tableService.onSelectionChange();\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n\n toggleRowsWithCheckbox(event: Event, check: boolean) {\n if (this._selectAll !== null) {\n this.selectAllChange.emit({ originalEvent: event, checked: check });\n } else {\n const data = this.selectionPageOnly ? this.dataToRender(this.processedData) : this.processedData;\n let selection = this.selectionPageOnly && this._selection ? this._selection.filter((s: any) => !data.some((d: any) => this.equals(s, d))) : [];\n\n if (check) {\n selection = this.frozenValue ? [...selection, ...this.frozenValue, ...data] : [...selection, ...data];\n selection = this.rowSelectable ? selection.filter((data: any, index: number) => this.rowSelectable({ data, index })) : selection;\n }\n\n this._selection = selection;\n this.preventSelectionSetterPropagation = true;\n this.updateSelectionKeys();\n this.selectionChange.emit(this._selection);\n this.tableService.onSelectionChange();\n this.onHeaderCheckboxToggle.emit({\n originalEvent: event,\n checked: check\n });\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n }\n\n equals(data1: any, data2: any) {\n return this.compareSelectionBy === 'equals' ? data1 === data2 : ObjectUtils.equals(data1, data2, this.dataKey);\n }\n\n /* Legacy Filtering for custom elements */\n filter(value: any, field: string, matchMode: string) {\n if (this.filterTimeout) {\n clearTimeout(this.filterTimeout);\n }\n if (!this.isFilterBlank(value)) {\n this.filters[field] = { value: value, matchMode: matchMode };\n } else if (this.filters[field]) {\n delete this.filters[field];\n }\n\n this.filterTimeout = setTimeout(() => {\n this._filter();\n this.filterTimeout = null;\n }, this.filterDelay);\n\n this.anchorRowIndex = null;\n }\n\n filterGlobal(value: any, matchMode: string) {\n this.filter(value, 'global', matchMode);\n }\n\n isFilterBlank(filter: any): boolean {\n if (filter !== null && filter !== undefined) {\n if ((typeof filter === 'string' && filter.trim().length == 0) || (Array.isArray(filter) && filter.length == 0)) return true;\n else return false;\n }\n return true;\n }\n\n _filter() {\n if (!this.restoringFilter) {\n this.first = 0;\n this.firstChange.emit(this.first);\n }\n\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else {\n if (!this.value) {\n return;\n }\n\n if (!this.hasFilter()) {\n this.filteredValue = null;\n if (this.paginator) {\n this.totalRecords = this.value ? this.value.length : 0;\n }\n } else {\n let globalFilterFieldsArray;\n if (this.filters['global']) {\n if (!this.columns && !this.globalFilterFields) throw new Error('Global filtering requires dynamic columns or globalFilterFields to be defined.');\n else globalFilterFieldsArray = this.globalFilterFields || this.columns;\n }\n\n this.filteredValue = [];\n\n for (let i = 0; i < this.value.length; i++) {\n let localMatch = true;\n let globalMatch = false;\n let localFiltered = false;\n\n for (let prop in this.filters) {\n if (this.filters.hasOwnProperty(prop) && prop !== 'global') {\n localFiltered = true;\n let filterField = prop;\n let filterMeta = this.filters[filterField];\n\n if (Array.isArray(filterMeta)) {\n for (let meta of filterMeta) {\n localMatch = this.executeLocalFilter(filterField, this.value[i], meta);\n\n if ((meta.operator === FilterOperator.OR && localMatch) || (meta.operator === FilterOperator.AND && !localMatch)) {\n break;\n }\n }\n } else {\n localMatch = this.executeLocalFilter(filterField, this.value[i], <any>filterMeta);\n }\n\n if (!localMatch) {\n break;\n }\n }\n }\n\n if (this.filters['global'] && !globalMatch && globalFilterFieldsArray) {\n for (let j = 0; j < globalFilterFieldsArray.length; j++) {\n let globalFilterField = globalFilterFieldsArray[j].field || globalFilterFieldsArray[j];\n globalMatch = (<any>this.filterService).filters[(<any>this.filters['global']).matchMode](ObjectUtils.resolveFieldData(this.value[i], globalFilterField), (<FilterMetadata>this.filters['global']).value, this.filterLocale);\n\n if (globalMatch) {\n break;\n }\n }\n }\n\n let matches: boolean;\n if (this.filters['global']) {\n matches = localFiltered ? localFiltered && localMatch && globalMatch : globalMatch;\n } else {\n matches = localFiltered && localMatch;\n }\n\n if (matches) {\n this.filteredValue.push(this.value[i]);\n }\n }\n\n if (this.filteredValue.length === this.value.length) {\n this.filteredValue = null;\n }\n\n if (this.paginator) {\n this.totalRecords = this.filteredValue ? this.filteredValue.length : this.value ? this.value.length : 0;\n }\n }\n }\n\n this.onFilter.emit({\n filters: <{ [s: string]: FilterMetadata | undefined }>this.filters,\n filteredValue: this.filteredValue || this.value\n });\n\n this.tableService.onValueChange(this.value);\n\n if (this.isStateful() && !this.restoringFilter) {\n this.saveState();\n }\n\n if (this.restoringFilter) {\n this.restoringFilter = false;\n }\n\n this.cd.markForCheck();\n\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n\n executeLocalFilter(field: string, rowData: any, filterMeta: FilterMetadata): boolean {\n let filterValue = filterMeta.value;\n let filterMatchMode = filterMeta.matchMode || FilterMatchMode.STARTS_WITH;\n let dataFieldValue = ObjectUtils.resolveFieldData(rowData, field);\n let filterConstraint = (<any>this.filterService).filters[filterMatchMode];\n\n return filterConstraint(dataFieldValue, filterValue, this.filterLocale);\n }\n\n hasFilter() {\n let empty = true;\n for (let prop in this.filters) {\n if (this.filters.hasOwnProperty(prop)) {\n empty = false;\n break;\n }\n }\n\n return !empty;\n }\n\n createLazyLoadMetadata(): any {\n return {\n first: this.first,\n rows: this.rows,\n sortField: this.sortField,\n sortOrder: this.sortOrder,\n filters: this.filters,\n globalFilter: this.filters && this.filters['global'] ? (<FilterMetadata>this.filters['global']).value : null,\n multiSortMeta: this.multiSortMeta,\n forceUpdate: () => this.cd.detectChanges()\n };\n }\n\n public clear() {\n this._sortField = null;\n this._sortOrder = this.defaultSortOrder;\n this._multiSortMeta = null;\n this.tableService.onSort(null);\n\n this.clearFilterValues();\n\n this.filteredValue = null;\n\n this.first = 0;\n this.firstChange.emit(this.first);\n\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else {\n this.totalRecords = this._value ? this._value.length : 0;\n }\n }\n\n clearFilterValues() {\n for (const [, filterMetadata] of Object.entries(this.filters)) {\n if (Array.isArray(filterMetadata)) {\n for (let filter of filterMetadata) {\n filter.value = null;\n }\n } else if (filterMetadata) {\n filterMetadata.value = null;\n }\n }\n }\n\n reset() {\n this.clear();\n }\n\n getExportHeader(column: any) {\n return column[<string>this.exportHeader] || column.header || column.field;\n }\n /**\n * Data export method.\n * @param {ExportCSVOptions} object - Export options.\n * @group Method\n */\n public exportCSV(options?: ExportCSVOptions) {\n let data;\n let csv = '';\n let columns = this.columns;\n\n if (options && options.selectionOnly) {\n data = this.selection || [];\n } else if (options && options.allValues) {\n data = this.value || [];\n } else {\n data = this.filteredValue || this.value;\n\n if (this.frozenValue) {\n data = data ? [...this.frozenValue, ...data] : this.frozenValue;\n }\n }\n\n const exportableColumns: any[] = (<any[]>columns).filter((column) => column.exportable !== false && column.field);\n\n //headers\n csv += exportableColumns.map((column) => '\"' + this.getExportHeader(column) + '\"').join(this.csvSeparator);\n\n //body\n const body = data\n .map((record: any) =>\n exportableColumns\n .map((column) => {\n let cellData = ObjectUtils.resolveFieldData(record, column.field);\n\n if (cellData != null) {\n if (this.exportFunction) {\n cellData = this.exportFunction({\n data: cellData,\n field: column.field\n });\n } else cellData = String(cellData).replace(/\"/g, '\"\"');\n } else cellData = '';\n\n return '\"' + cellData + '\"';\n })\n .join(this.csvSeparator)\n )\n .join('\\n');\n\n if (body.length) {\n csv += '\\n' + body;\n }\n\n let blob = new Blob([new Uint8Array([0xef, 0xbb, 0xbf]), csv], {\n type: 'text/csv;charset=utf-8;'\n });\n\n let link = this.renderer.createElement('a');\n link.style.display = 'none';\n this.renderer.appendChild(this.document.body, link);\n if (link.download !== undefined) {\n link.setAttribute('href', URL.createObjectURL(blob));\n link.setAttribute('download', this.exportFilename + '.csv');\n link.click();\n } else {\n csv = 'data:text/csv;charset=utf-8,' + csv;\n this.document.defaultView.open(encodeURI(csv));\n }\n this.renderer.removeChild(this.document.body, link);\n }\n\n onLazyItemLoad(event: LazyLoadMeta) {\n this.onLazyLoad.emit({\n ...this.createLazyLoadMetadata(),\n ...event,\n rows: <number>event.last - <number>event.first\n });\n }\n /**\n * Resets scroll to top.\n * @group Method\n */\n public resetScrollTop() {\n if (this.virtualScroll) this.scrollToVirtualIndex(0);\n else this.scrollTo({ top: 0 });\n }\n /**\n * Scrolls to given index when using virtual scroll.\n * @param {number} index - index of the element.\n * @group Method\n */\n public scrollToVirtualIndex(index: number) {\n this.scroller && this.scroller.scrollToIndex(index);\n }\n /**\n * Scrolls to given index.\n * @param {ScrollToOptions} options - scroll options.\n * @group Method\n */\n public scrollTo(options: any) {\n if (this.virtualScroll) {\n this.scroller?.scrollTo(options);\n } else if (this.wrapperViewChild && this.wrapperViewChild.nativeElement) {\n if (this.wrapperViewChild.nativeElement.scrollTo) {\n this.wrapperViewChild.nativeElement.scrollTo(options);\n } else {\n this.wrapperViewChild.nativeElement.scrollLeft = options.left;\n this.wrapperViewChild.nativeElement.scrollTop = options.top;\n }\n }\n }\n\n updateEditingCell(cell: any, data: any, field: string, index: number) {\n this.editingCell = cell;\n this.editingCellData = data;\n this.editingCellField = field;\n this.editingCellRowIndex = index;\n this.bindDocumentEditListener();\n }\n\n isEditingCellValid() {\n return this.editingCell && DomHandler.find(this.editingCell, '.ng-invalid.ng-dirty').length === 0;\n }\n\n bindDocumentEditListener() {\n if (!this.documentEditListener) {\n this.documentEditListener = this.renderer.listen(this.document, 'click', (event) => {\n if (this.editingCell && !this.selfClick && this.isEditingCellValid()) {\n DomHandler.removeClass(this.editingCell, 'p-cell-editing');\n this.editingCell = null;\n this.onEditComplete.emit({\n field: this.editingCellField,\n data: this.editingCellData,\n originalEvent: event,\n index: <number>this.editingCellRowIndex\n });\n this.editingCellField = null;\n this.editingCellData = null;\n this.editingCellRowIndex = null;\n this.unbindDocumentEditListener();\n this.cd.markForCheck();\n\n if (this.overlaySubscription) {\n this.overlaySubscription.unsubscribe();\n }\n }\n\n this.selfClick = false;\n });\n }\n }\n\n unbindDocumentEditListener() {\n if (this.documentEditListener) {\n this.documentEditListener();\n this.documentEditListener = null;\n }\n }\n\n initRowEdit(rowData: any) {\n let dataKeyValue = String(ObjectUtils.resolveFieldData(rowData, this.dataKey));\n this.editingRowKeys[dataKeyValue] = true;\n }\n\n saveRowEdit(rowData: any, rowElement: HTMLTableRowElement) {\n if (DomHandler.find(rowElement, '.ng-invalid.ng-dirty').length === 0) {\n let dataKeyValue = String(ObjectUtils.resolveFieldData(rowData, this.dataKey));\n delete this.editingRowKeys[dataKeyValue];\n }\n }\n\n cancelRowEdit(rowData: any) {\n let dataKeyValue = String(ObjectUtils.resolveFieldData(rowData, this.dataKey));\n delete this.editingRowKeys[dataKeyValue];\n }\n\n toggleRow(rowData: any, event?: Event) {\n if (!this.dataKey && !this.groupRowsBy) {\n throw new Error('dataKey or groupRowsBy must be defined to use row expansion');\n }\n\n let dataKeyValue = this.groupRowsBy ? String(ObjectUtils.resolveFieldData(rowData, this.groupRowsBy)) : String(ObjectUtils.resolveFieldData(rowData, this.dataKey));\n\n if (this.expandedRowKeys[dataKeyValue] != null) {\n delete this.expandedRowKeys[dataKeyValue];\n this.onRowCollapse.emit({\n originalEvent: <Event>event,\n data: rowData\n });\n } else {\n if (this.rowExpandMode === 'single') {\n this.expandedRowKeys = {};\n }\n\n this.expandedRowKeys[dataKeyValue] = true;\n this.onRowExpand.emit({\n originalEvent: <Event>event,\n data: rowData\n });\n }\n\n if (event) {\n event.preventDefault();\n }\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n\n isRowExpanded(rowData: any): boolean {\n return this.groupRowsBy ? this.expandedRowKeys[String(ObjectUtils.resolveFieldData(rowData, this.groupRowsBy))] === true : this.expandedRowKeys[String(ObjectUtils.resolveFieldData(rowData, this.dataKey))] === true;\n }\n\n isRowEditing(rowData: any): boolean {\n return this.editingRowKeys[String(ObjectUtils.resolveFieldData(rowData, this.dataKey))] === true;\n }\n\n isSingleSelectionMode() {\n return this.selectionMode === 'single';\n }\n\n isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n }\n\n onColumnResizeBegin(event: any) {\n let containerLeft = DomHandler.getOffset(this.containerViewChild?.nativeElement).left;\n this.resizeColumnElement = event.target.parentElement;\n this.columnResizing = true;\n if (event.type == 'touchstart') {\n this.lastResizerHelperX = event.changedTouches[0].clientX - containerLeft + this.containerViewChild?.nativeElement.scrollLeft;\n } else {\n this.lastResizerHelperX = event.pageX - containerLeft + this.containerViewChild?.nativeElement.scrollLeft;\n }\n this.onColumnResize(event);\n event.preventDefault();\n }\n\n onColumnResize(event: any) {\n let containerLeft = DomHandler.getOffset(this.containerViewChild?.nativeElement).left;\n DomHandler.addClass(this.containerViewChild?.nativeElement, 'p-unselectable-text');\n (<ElementRef>this.resizeHelperViewChild).nativeElement.style.height = this.containerViewChild?.nativeElement.offsetHeight + 'px';\n (<ElementRef>this.resizeHelperViewChild).nativeElement.style.top = 0 + 'px';\n if (event.type == 'touchmove') {\n (<ElementRef>this.resizeHelperViewChild).nativeElement.style.left = event.changedTouches[0].clientX - containerLeft + this.containerViewChild?.nativeElement.scrollLeft + 'px';\n } else {\n (<ElementRef>this.resizeHelperViewChild).nativeElement.style.left = event.pageX - containerLeft + this.containerViewChild?.nativeElement.scrollLeft + 'px';\n }\n (<ElementRef>this.resizeHelperViewChild).nativeElement.style.display = 'block';\n }\n\n onColumnResizeEnd() {\n let delta = this.resizeHelperViewChild?.nativeElement.offsetLeft - <number>this.lastResizerHelperX;\n let columnWidth = this.resizeColumnElement.offsetWidth;\n let newColumnWidth = columnWidth + delta;\n let minWidth = this.resizeColumnElement.style.minWidth.replace(/[^\\d.]/g, '') || 15;\n\n if (newColumnWidth >= minWidth) {\n if (this.columnResizeMode === 'fit') {\n let nextColumn = this.resizeColumnElement.nextElementSibling;\n let nextColumnWidth = nextColumn.offsetWidth - delta;\n\n if (newColumnWidth > 15 && nextColumnWidth > 15) {\n this.resizeTableCells(newColumnWidth, nextColumnWidth);\n }\n } else if (this.columnResizeMode === 'expand') {\n this._initialColWidths = this._totalTableWidth();\n let tableWidth = this.tableViewChild?.nativeElement.offsetWidth + delta;\n\n this.setResizeTableWidth(tableWidth + 'px');\n this.resizeTableCells(newColumnWidth, null);\n }\n\n this.onColResize.emit({\n element: this.resizeColumnElement,\n delta: delta\n });\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n\n (<ElementRef>this.resizeHelperViewChild).nativeElement.style.display = 'none';\n DomHandler.removeClass(this.containerViewChild?.nativeElement, 'p-unselectable-text');\n }\n\n private _totalTableWidth(): number[] {\n let widths = [];\n const tableHead = DomHandler.findSingle(this.containerViewChild.nativeElement, '.p-datatable-thead');\n let headers = DomHandler.find(tableHead, 'tr > th');\n headers.forEach((header) => widths.push(DomHandler.getOuterWidth(header)));\n\n return widths;\n }\n\n onColumnDragStart(event: any, columnElement: any) {\n this.reorderIconWidth = DomHandler.getHiddenElementOuterWidth(this.reorderIndicatorUpViewChild?.nativeElement);\n this.reorderIconHeight = DomHandler.getHiddenElementOuterHeight(this.reorderIndicatorDownViewChild?.nativeElement);\n this.draggedColumn = columnElement;\n event.dataTransfer.setData('text', 'b'); // For firefox\n }\n\n onColumnDragEnter(event: any, dropHeader: any) {\n if (this.reorderableColumns && this.draggedColumn && dropHeader) {\n event.preventDefault();\n let containerOffset = DomHandler.getOffset(this.containerViewChild?.nativeElement);\n let dropHeaderOffset = DomHandler.getOffset(dropHeader);\n\n if (this.draggedColumn != dropHeader) {\n let dragIndex = DomHandler.indexWithinGroup(this.draggedColumn, 'preorderablecolumn');\n let dropIndex = DomHandler.indexWithinGroup(dropHeader, 'preorderablecolumn');\n let targetLeft = dropHeaderOffset.left - containerOffset.left;\n let targetTop = containerOffset.top - dropHeaderOffset.top;\n let columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;\n\n (<ElementRef>this.reorderIndicatorUpViewChild).nativeElement.style.top = dropHeaderOffset.top - containerOffset.top - (<number>this.reorderIconHeight - 1) + 'px';\n (<ElementRef>this.reorderIndicatorDownViewChild).nativeElement.style.top = dropHeaderOffset.top - containerOffset.top + dropHeader.offsetHeight + 'px';\n\n if (event.pageX > columnCenter) {\n (<ElementRef>this.reorderIndicatorUpViewChild).nativeElement.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n (<ElementRef>this.reorderIndicatorDownViewChild).nativeElement.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n this.dropPosition = 1;\n } else {\n (<ElementRef>this.reorderIndicatorUpViewChild).nativeElement.style.left = targetLeft - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n (<ElementRef>this.reorderIndicatorDownViewChild).nativeElement.style.left = targetLeft - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n this.dropPosition = -1;\n }\n (<ElementRef>this.reorderIndicatorUpViewChild).nativeElement.style.display = 'block';\n (<ElementRef>this.reorderIndicatorDownViewChild).nativeElement.style.display = 'block';\n } else {\n event.dataTransfer.dropEffect = 'none';\n }\n }\n }\n\n onColumnDragLeave(event: Event) {\n if (this.reorderableColumns && this.draggedColumn) {\n event.preventDefault();\n }\n }\n\n onColumnDrop(event: Event, dropColumn: any) {\n event.preventDefault();\n if (this.draggedColumn) {\n let dragIndex = DomHandler.indexWithinGroup(this.draggedColumn, 'preorderablecolumn');\n let dropIndex = DomHandler.indexWithinGroup(dropColumn, 'preorderablecolumn');\n let allowDrop = dragIndex != dropIndex;\n if (allowDrop && ((dropIndex - dragIndex == 1 && this.dropPosition === -1) || (dragIndex - dropIndex == 1 && this.dropPosition === 1))) {\n allowDrop = false;\n }\n\n if (allowDrop && dropIndex < dragIndex && this.dropPosition === 1) {\n dropIndex = dropIndex + 1;\n }\n\n if (allowDrop && dropIndex > dragIndex && this.dropPosition === -1) {\n dropIndex = dropIndex - 1;\n }\n\n if (allowDrop) {\n ObjectUtils.reorderArray(<any[]>this.columns, dragIndex, dropIndex);\n\n this.onColReorder.emit({\n dragIndex: dragIndex,\n dropIndex: dropIndex,\n columns: this.columns\n });\n\n if (this.isStateful()) {\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n this.saveState();\n });\n });\n }\n }\n\n if (this.resizableColumns && this.resizeColumnElement) {\n let width = this.columnResizeMode === 'expand' ? this._initialColWidths : this._totalTableWidth();\n ObjectUtils.reorderArray(width, dragIndex + 1, dropIndex + 1);\n this.updateStyleElement(width, dragIndex, null, null);\n }\n\n (<ElementRef>this.reorderIndicatorUpViewChild).nativeElement.style.display = 'none';\n (<ElementRef>this.reorderIndicatorDownViewChild).nativeElement.style.display = 'none';\n this.draggedColumn.draggable = false;\n this.draggedColumn = null;\n this.dropPosition = null;\n }\n }\n\n resizeTableCells(newColumnWidth: number, nextColumnWidth: number | null) {\n let colIndex = DomHandler.index(this.resizeColumnElement);\n let width = this.columnResizeMode === 'expand' ? this._initialColWidths : this._totalTableWidth();\n this.updateStyleElement(width, colIndex, newColumnWidth, nextColumnWidth);\n }\n\n updateStyleElement(width: number[], colIndex: number, newColumnWidth: number, nextColumnWidth: number | null) {\n this.destroyStyleElement();\n this.createStyleElement();\n\n let innerHTML = '';\n width.forEach((width, index) => {\n let colWidth = index === colIndex ? newColumnWidth : nextColumnWidth && index === colIndex + 1 ? nextColumnWidth : width;\n let style = `width: ${colWidth}px !important; max-width: ${colWidth}px !important;`;\n innerHTML += `\n #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${index + 1}),\n #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${index + 1}),\n #${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${index + 1}) {\n ${style}\n }\n `;\n });\n this.renderer.setProperty(this.styleElement, 'innerHTML', innerHTML);\n }\n\n onRowDragStart(event: any, index: number) {\n this.rowDragging = true;\n this.draggedRowIndex = index;\n event.dataTransfer.setData('text', 'b'); // For firefox\n }\n\n onRowDragOver(event: MouseEvent, index: number, rowElement: any) {\n if (this.rowDragging && this.draggedRowIndex !== index) {\n let rowY = DomHandler.getOffset(rowElement).top;\n let pageY = event.pageY;\n let rowMidY = rowY + DomHandler.getOuterHeight(rowElement) / 2;\n let prevRowElement = rowElement.previousElementSibling;\n\n if (pageY < rowMidY) {\n DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n\n this.droppedRowIndex = index;\n if (prevRowElement) DomHandler.addClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n else DomHandler.addClass(rowElement, 'p-datatable-dragpoint-top');\n } else {\n if (prevRowElement) DomHandler.removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n else DomHandler.addClass(rowElement, 'p-datatable-dragpoint-top');\n\n this.droppedRowIndex = index + 1;\n DomHandler.addClass(rowElement, 'p-datatable-dragpoint-bottom');\n }\n }\n }\n\n onRowDragLeave(event: Event, rowElement: any) {\n let prevRowElement = rowElement.previousElementSibling;\n if (prevRowElement) {\n DomHandler.removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n }\n\n DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-top');\n }\n\n onRowDragEnd(event: Event) {\n this.rowDragging = false;\n this.draggedRowIndex = null;\n this.droppedRowIndex = null;\n }\n\n onRowDrop(event: Event, rowElement: any) {\n if (this.droppedRowIndex != null) {\n let dropIndex = <number>this.draggedRowIndex > this.droppedRowIndex ? this.droppedRowIndex : this.droppedRowIndex === 0 ? 0 : this.droppedRowIndex - 1;\n ObjectUtils.reorderArray(this.value, <number>this.draggedRowIndex, dropIndex);\n\n if (this.virtualScroll) {\n // TODO: Check\n this._value = [...this._value];\n }\n\n this.onRowReorder.emit({\n dragIndex: <number>this.draggedRowIndex,\n dropIndex: dropIndex\n });\n }\n //cleanup\n this.onRowDragLeave(event, rowElement);\n this.onRowDragEnd(event);\n }\n\n isEmpty() {\n let data = this.filteredValue || this.value;\n return data == null || data.length == 0;\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n getStorage() {\n if (isPlatformBrowser(this.platformId)) {\n switch (this.stateStorage) {\n case 'local':\n return window.localStorage;\n\n case 'session':\n return window.sessionStorage;\n\n default:\n throw new Error(this.stateStorage + ' is not a valid value for the state storage, supported values are \"local\" and \"session\".');\n }\n } else {\n throw new Error('Browser storage is not available in the server side.');\n }\n }\n\n isStateful() {\n return this.stateKey != null;\n }\n\n saveState() {\n const storage = this.getStorage();\n let state: TableState = {};\n\n if (this.paginator) {\n state.first = <number>this.first;\n state.rows = this.rows;\n }\n\n if (this.sortField) {\n state.sortField = this.sortField;\n state.sortOrder = this.sortOrder;\n }\n\n if (this.multiSortMeta) {\n state.multiSortMeta = this.multiSortMeta;\n }\n\n if (this.hasFilter()) {\n state.filters = this.filters;\n }\n\n if (this.resizableColumns) {\n this.saveColumnWidths(state);\n }\n\n if (this.reorderableColumns) {\n this.saveColumnOrder(state);\n }\n\n if (this.selection) {\n state.selection = this.selection;\n }\n\n if (Object.keys(this.expandedRowKeys).length) {\n state.expandedRowKeys = this.expandedRowKeys;\n }\n\n storage.setItem(<string>this.stateKey, JSON.stringify(state));\n this.onStateSave.emit(state);\n }\n\n clearState() {\n const storage = this.getStorage();\n\n if (this.stateKey) {\n storage.removeItem(this.stateKey);\n }\n }\n\n restoreState() {\n const storage = this.getStorage();\n const stateString = storage.getItem(<string>this.stateKey);\n const dateFormat = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/;\n const reviver = function (key: any, value: any) {\n if (typeof value === 'string' && dateFormat.test(value)) {\n return new Date(value);\n }\n\n return value;\n };\n\n if (stateString) {\n let state: TableState = JSON.parse(stateString, reviver);\n\n if (this.paginator) {\n if (this.first !== undefined) {\n this.first = state.first;\n this.firstChange.emit(this.first);\n }\n\n if (this.rows !== undefined) {\n this.rows = state.rows;\n this.rowsChange.emit(this.rows);\n }\n }\n\n if (state.sortField) {\n this.restoringSort = true;\n this._sortField = state.sortField;\n this._sortOrder = <number>state.sortOrder;\n }\n\n if (state.multiSortMeta) {\n this.restoringSort = true;\n this._multiSortMeta = state.multiSortMeta;\n }\n\n if (state.filters) {\n this.restoringFilter = true;\n this.filters = state.filters;\n }\n\n if (this.resizableColumns) {\n this.columnWidthsState = state.columnWidths;\n this.tableWidthState = state.tableWidth;\n }\n\n // if (this.reorderableColumns) {\n // this.restoreColumnOrder();\n // }\n\n if (state.expandedRowKeys) {\n this.expandedRowKeys = state.expandedRowKeys;\n }\n\n if (state.selection) {\n Promise.resolve(null).then(() => this.selectionChange.emit(state.selection));\n }\n\n this.stateRestored = true;\n\n this.onStateRestore.emit(state);\n }\n }\n\n saveColumnWidths(state: any) {\n let widths: any[] = [];\n let headers = DomHandler.find(this.containerViewChild?.nativeElement, '.p-datatable-thead > tr > th');\n headers.forEach((header) => widths.push(DomHandler.getOuterWidth(header)));\n state.columnWidths = widths.join(',');\n\n if (this.columnResizeMode === 'expand') {\n state.tableWidth = DomHandler.getOuterWidth(this.tableViewChild?.nativeElement);\n }\n }\n\n setResizeTableWidth(width: string) {\n (<ElementRef>this.tableViewChild).nativeElement.style.width = width;\n (<ElementRef>this.tableViewChild).nativeElement.style.minWidth = width;\n }\n\n restoreColumnWidths() {\n if (this.columnWidthsState) {\n let widths = this.columnWidthsState.split(',');\n\n if (this.columnResizeMode === 'expand' && this.tableWidthState) {\n this.setResizeTableWidth(this.tableWidthState + 'px');\n }\n\n if (ObjectUtils.isNotEmpty(widths)) {\n this.createStyleElement();\n\n let innerHTML = '';\n widths.forEach((width, index) => {\n let style = `width: ${width}px !important; max-width: ${width}px !important`;\n\n innerHTML += `\n #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${index + 1}),\n #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${index + 1}),\n #${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${index + 1}) {\n ${style}\n }\n `;\n });\n\n this.styleElement.innerHTML = innerHTML;\n }\n }\n }\n\n saveColumnOrder(state: any) {\n if (this.columns) {\n let columnOrder: string[] = [];\n this.columns.map((column) => {\n columnOrder.push(column.field || column.key);\n });\n\n state.columnOrder = columnOrder;\n }\n }\n\n restoreColumnOrder() {\n const storage = this.getStorage();\n const stateString = storage.getItem(<string>this.stateKey);\n if (stateString) {\n let state: TableState = JSON.parse(stateString);\n let columnOrder = state.columnOrder;\n\n if (columnOrder) {\n let reorderedColumns: any[] = [];\n\n columnOrder.map((key) => {\n let col = this.findColumnByKey(key);\n if (col) {\n reorderedColumns.push(col);\n }\n });\n this.columnOrderStateRestored = true;\n this.columns = reorderedColumns;\n }\n }\n }\n\n findColumnByKey(key: any) {\n if (this.columns) {\n for (let col of this.columns) {\n if (col.key === key || col.field === key) return col;\n else continue;\n }\n } else {\n return null;\n }\n }\n\n createStyleElement() {\n this.styleElement = this.renderer.createElement('style');\n this.styleElement.type = 'text/css';\n this.renderer.appendChild(this.document.head, this.styleElement);\n DomHandler.setAttribute(this.styleElement, 'nonce', this.config?.csp()?.nonce);\n }\n\n getGroupRowsMeta() {\n return { field: this.groupRowsBy, order: this.groupRowsByOrder };\n }\n\n createResponsiveStyle() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.responsiveStyleElement) {\n this.responsiveStyleElement = this.renderer.createElement('style');\n this.responsiveStyleElement.type = 'text/css';\n this.renderer.appendChild(this.document.head, this.responsiveStyleElement);\n\n let innerHTML = `\n @media screen and (max-width: ${this.breakpoint}) {\n #${this.id}-table > .p-datatable-thead > tr > th,\n #${this.id}-table > .p-datatable-tfoot > tr > td {\n display: none !important;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td {\n display: flex;\n width: 100% !important;\n align-items: center;\n justify-content: space-between;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td:not(:last-child) {\n border: 0 none;\n }\n\n #${this.id}.p-datatable-gridlines > .p-datatable-table-container > .p-datatable-table > .p-datatable-tbody > tr > td:last-child {\n border-top: 0;\n border-right: 0;\n border-left: 0;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td > .p-datatable-column-title {\n display: block;\n }\n }\n `;\n this.renderer.setProperty(this.responsiveStyleElement, 'innerHTML', innerHTML);\n }\n }\n }\n\n destroyResponsiveStyle() {\n if (this.responsiveStyleElement) {\n this.renderer.removeChild(this.document.head, this.responsiveStyleElement);\n this.responsiveStyleElement = null;\n }\n }\n\n destroyStyleElement() {\n if (this.styleElement) {\n this.renderer.removeChild(this.document.head, this.styleElement);\n this.styleElement = null;\n }\n }\n\n ngOnDestroy() {\n this.unbindDocumentEditListener();\n this.editingCell = null;\n this.initialized = null;\n\n this.destroyStyleElement();\n this.destroyResponsiveStyle();\n super.ngOnDestroy();\n }\n}\n\n@Component({\n selector: '[pTableBody]',\n template: `\n <ng-container *ngIf=\"!dt.expandedRowTemplate && !dt._expandedRowTemplate\">\n <ng-template ngFor let-rowData let-rowIndex=\"index\" [ngForOf]=\"value\" [ngForTrackBy]=\"dt.rowTrackBy\">\n <ng-container *ngIf=\"(dt.groupHeaderTemplate || dt._groupHeaderTemplate) && !dt.virtualScroll && dt.rowGroupMode === 'subheader' && shouldRenderRowGroupHeader(value, rowData, rowIndex)\" role=\"row\">\n <ng-container\n *ngTemplateOutlet=\"\n dt.groupHeaderTemplate || dt._groupHeaderTemplate;\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns,\n editing: dt.editMode === 'row' && dt.isRowEditing(rowData),\n frozen: frozen\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"dt.rowGroupMode !== 'rowspan'\">\n <ng-container\n *ngTemplateOutlet=\"\n rowData ? template : dt.loadingBodyTemplate || dt._loadingBodyTemplate;\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns,\n editing: dt.editMode === 'row' && dt.isRowEditing(rowData),\n frozen: frozen\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"dt.rowGroupMode === 'rowspan'\">\n <ng-container\n *ngTemplateOutlet=\"\n rowData ? template : dt.loadingBodyTemplate || dt._loadingBodyTemplate;\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns,\n editing: dt.editMode === 'row' && dt.isRowEditing(rowData),\n frozen: frozen,\n rowgroup: shouldRenderRowspan(value, rowData, rowIndex),\n rowspan: calculateRowGroupSize(value, rowData, rowIndex)\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"(dt.groupFooterTemplate || dt._groupFooterTemplate) && !dt.virtualScroll && dt.rowGroupMode === 'subheader' && shouldRenderRowGroupFooter(value, rowData, rowIndex)\" role=\"row\">\n <ng-container\n *ngTemplateOutlet=\"\n dt.groupFooterTemplate || dt._groupFooterTemplate;\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns,\n editing: dt.editMode === 'row' && dt.isRowEditing(rowData),\n frozen: frozen\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"(dt.expandedRowTemplate || dt._expandedRowTemplate) && !(frozen && (dt.frozenExpandedRowTemplate || dt._frozenExpandedRowTemplate))\">\n <ng-template ngFor let-rowData let-rowIndex=\"index\" [ngForOf]=\"value\" [ngForTrackBy]=\"dt.rowTrackBy\">\n <ng-container *ngIf=\"!(dt.groupHeaderTemplate && dt._groupHeaderTemplate)\">\n <ng-container\n *ngTemplateOutlet=\"\n template;\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns,\n expanded: dt.isRowExpanded(rowData),\n editing: dt.editMode === 'row' && dt.isRowEditing(rowData),\n frozen: frozen\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"(dt.groupHeaderTemplate || dt._groupHeaderTemplate) && dt.rowGroupMode === 'subheader' && shouldRenderRowGroupHeader(value, rowData, getRowIndex(rowIndex))\" role=\"row\">\n <ng-container\n *ngTemplateOutlet=\"\n dt.groupHeaderTemplate || dt._groupHeaderTemplate;\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns,\n expanded: dt.isRowExpanded(rowData),\n editing: dt.editMode === 'row' && dt.isRowEditing(rowData),\n frozen: frozen\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"dt.isRowExpanded(rowData)\">\n <ng-container\n *ngTemplateOutlet=\"\n dt.expandedRowTemplate || dt._expandedRowTemplate;\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns,\n frozen: frozen\n }\n \"\n ></ng-container>\n <ng-container *ngIf=\"(dt.groupFooterTemplate || dt._groupFooterTemplate) && dt.rowGroupMode === 'subheader' && shouldRenderRowGroupFooter(value, rowData, getRowIndex(rowIndex))\" role=\"row\">\n <ng-container\n *ngTemplateOutlet=\"\n dt.groupFooterTemplate || dt._groupFooterTemplate;\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns,\n expanded: dt.isRowExpanded(rowData),\n editing: dt.editMode === 'row' && dt.isRowEditing(rowData),\n frozen: frozen\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"(dt.frozenExpandedRowTemplate || dt._frozenExpandedRowTemplate) && frozen\">\n <ng-template ngFor let-rowData let-rowIndex=\"index\" [ngForOf]=\"value\" [ngForTrackBy]=\"dt.rowTrackBy\">\n <ng-container\n *ngTemplateOutlet=\"\n template;\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns,\n expanded: dt.isRowExpanded(rowData),\n editing: dt.editMode === 'row' && dt.isRowEditing(rowData),\n frozen: frozen\n }\n \"\n ></ng-container>\n <ng-container *ngIf=\"dt.isRowExpanded(rowData)\">\n <ng-container\n *ngTemplateOutlet=\"\n dt.frozenExpandedRowTemplate || dt._frozenExpandedRowTemplate;\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns,\n frozen: frozen\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"dt.loading\">\n <ng-container *ngTemplateOutlet=\"dt.loadingBodyTemplate || dt._loadingBodyTemplate; context: { $implicit: columns, frozen: frozen }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"dt.isEmpty() && !dt.loading\">\n <ng-container *ngTemplateOutlet=\"dt.emptyMessageTemplate || dt._emptyMessageTemplate; context: { $implicit: columns, frozen: frozen }\"></ng-container>\n </ng-container>\n `,\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None\n})\nexport class TableBody implements AfterViewInit, OnDestroy {\n @Input('pTableBody') columns: any[] | undefined;\n\n @Input('pTableBodyTemplate') template: Nullable<TemplateRef<any>>;\n\n @Input() get value(): any[] | undefined {\n return this._value;\n }\n set value(val: any[] | undefined) {\n this._value = val;\n if (this.frozenRows) {\n this.updateFrozenRowStickyPosition();\n }\n\n if (this.dt.scrollable && this.dt.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n }\n\n @Input({ transform: booleanAttribute }) frozen: boolean | undefined;\n\n @Input({ transform: booleanAttribute }) frozenRows: boolean | undefined;\n\n @Input() scrollerOptions: any;\n\n subscription: Subscription;\n\n _value: any[] | undefined;\n\n ngAfterViewInit() {\n if (this.frozenRows) {\n this.updateFrozenRowStickyPosition();\n }\n\n if (this.dt.scrollable && this.dt.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n }\n\n constructor(\n public dt: Table,\n public tableService: TableService,\n public cd: ChangeDetectorRef,\n public el: ElementRef\n ) {\n this.subscription = this.dt.tableService.valueSource$.subscribe(() => {\n if (this.dt.virtualScroll) {\n this.cd.detectChanges();\n }\n });\n }\n\n shouldRenderRowGroupHeader(value: any, rowData: any, i: number) {\n let currentRowFieldData = ObjectUtils.resolveFieldData(rowData, this.dt.groupRowsBy);\n let prevRowData = value[i - (1 + this.dt._first)];\n if (prevRowData) {\n let previousRowFieldData = ObjectUtils.resolveFieldData(prevRowData, this.dt.groupRowsBy);\n return currentRowFieldData !== previousRowFieldData;\n } else {\n return true;\n }\n }\n\n shouldRenderRowGroupFooter(value: any, rowData: any, i: number) {\n let currentRowFieldData = ObjectUtils.resolveFieldData(rowData, this.dt.groupRowsBy);\n let nextRowData = value[i + (1 + this.dt._first)];\n if (nextRowData) {\n let nextRowFieldData = ObjectUtils.resolveFieldData(nextRowData, this.dt.groupRowsBy);\n return currentRowFieldData !== nextRowFieldData;\n } else {\n return true;\n }\n }\n\n shouldRenderRowspan(value: any, rowData: any, i: number) {\n let currentRowFieldData = ObjectUtils.resolveFieldData(rowData, this.dt.groupRowsBy);\n let prevRowData = value[i - 1];\n if (prevRowData) {\n let previousRowFieldData = ObjectUtils.resolveFieldData(prevRowData, this.dt.groupRowsBy);\n return currentRowFieldData !== previousRowFieldData;\n } else {\n return true;\n }\n }\n\n calculateRowGroupSize(value: any, rowData: any, index: number) {\n let currentRowFieldData = ObjectUtils.resolveFieldData(rowData, this.dt.groupRowsBy);\n let nextRowFieldData = currentRowFieldData;\n let groupRowSpan = 0;\n\n while (currentRowFieldData === nextRowFieldData) {\n groupRowSpan++;\n let nextRowData = value[++index];\n if (nextRowData) {\n nextRowFieldData = ObjectUtils.resolveFieldData(nextRowData, this.dt.groupRowsBy);\n } else {\n break;\n }\n }\n\n return groupRowSpan === 1 ? null : groupRowSpan;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n updateFrozenRowStickyPosition() {\n this.el.nativeElement.style.top = DomHandler.getOuterHeight(this.el.nativeElement.previousElementSibling) + 'px';\n }\n\n updateFrozenRowGroupHeaderStickyPosition() {\n if (this.el.nativeElement.previousElementSibling) {\n let tableHeaderHeight = DomHandler.getOuterHeight(this.el.nativeElement.previousElementSibling);\n this.dt.rowGroupHeaderStyleObject.top = tableHeaderHeight + 'px';\n }\n }\n\n getScrollerOption(option: any, options?: any) {\n if (this.dt.virtualScroll) {\n options = options || this.scrollerOptions;\n return options ? options[option] : null;\n }\n\n return null;\n }\n\n getRowIndex(rowIndex: number) {\n const index = this.dt.paginator ? <number>this.dt.first + rowIndex : rowIndex;\n const getItemOptions = this.getScrollerOption('getItemOptions');\n return getItemOptions ? getItemOptions(index).index : index;\n }\n}\n\n@Directive({\n selector: '[pRowGroupHeader]',\n host: {\n class: 'p-datatable-row-group-header',\n '[style.top]': 'getFrozenRowGroupHeaderStickyPosition'\n }\n})\nexport class RowGroupHeader {\n constructor(public dt: Table) {}\n\n get getFrozenRowGroupHeaderStickyPosition() {\n return this.dt.rowGroupHeaderStyleObject ? this.dt.rowGroupHeaderStyleObject.top : '';\n }\n}\n\n@Directive({\n selector: '[pFrozenColumn]',\n host: {\n '[class.p-datatable-frozen-column]': 'frozen',\n '[class.p-datatable-frozen-column-left]': 'alignFrozen === \"left\"'\n }\n})\nexport class FrozenColumn implements AfterViewInit {\n @Input() get frozen(): boolean {\n return this._frozen;\n }\n\n set frozen(val: boolean) {\n this._frozen = val;\n Promise.resolve(null).then(() => this.updateStickyPosition());\n }\n\n @Input() alignFrozen: string = 'left';\n\n constructor(\n private el: ElementRef,\n private zone: NgZone\n ) {}\n\n ngAfterViewInit() {\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n this.recalculateColumns();\n }, 1000);\n });\n }\n\n @HostListener('window:resize', ['$event'])\n recalculateColumns() {\n const siblings = DomHandler.siblings(this.el.nativeElement);\n const index = DomHandler.index(this.el.nativeElement);\n const time = (siblings.length - index + 1) * 50;\n\n setTimeout(() => {\n this.updateStickyPosition();\n }, time);\n }\n\n _frozen: boolean = true;\n\n updateStickyPosition() {\n if (this._frozen) {\n if (this.alignFrozen === 'right') {\n let right = 0;\n let next = this.el.nativeElement.nextElementSibling;\n if (next) {\n right = DomHandler.getOuterWidth(next) + (parseFloat(next.style.right) || 0);\n }\n this.el.nativeElement.style.right = right + 'px';\n } else {\n let left = 0;\n let prev = this.el.nativeElement.previousElementSibling;\n if (prev) {\n left = DomHandler.getOuterWidth(prev) + (parseFloat(prev.style.left) || 0);\n }\n this.el.nativeElement.style.left = left + 'px';\n }\n\n const filterRow = this.el.nativeElement?.parentElement?.nextElementSibling;\n\n if (filterRow) {\n let index = DomHandler.index(this.el.nativeElement);\n if (filterRow.children && filterRow.children[index]) {\n filterRow.children[index].style.left = this.el.nativeElement.style.left;\n filterRow.children[index].style.right = this.el.nativeElement.style.right;\n }\n }\n }\n }\n}\n@Directive({\n selector: '[pSortableColumn]',\n host: {\n '[class.p-datatable-sortable-column]': 'isEnabled()',\n '[class.p-datatable-column-sorted]': 'sorted',\n '[attr.tabindex]': 'isEnabled() ? \"0\" : null',\n '[attr.role]': '\"columnheader\"',\n '[attr.aria-sort]': 'sortOrder'\n }\n})\nexport class SortableColumn implements OnInit, OnDestroy {\n @Input('pSortableColumn') field: string | undefined;\n\n @Input({ transform: booleanAttribute }) pSortableColumnDisabled: boolean | undefined;\n\n sorted: boolean | undefined;\n\n sortOrder: string | undefined;\n\n subscription: Subscription | undefined;\n\n constructor(public dt: Table) {\n if (this.isEnabled()) {\n this.subscription = this.dt.tableService.sortSource$.subscribe((sortMeta) => {\n this.updateSortState();\n });\n }\n }\n\n ngOnInit() {\n if (this.isEnabled()) {\n this.updateSortState();\n }\n }\n\n updateSortState() {\n this.sorted = this.dt.isSorted(<string>this.field) as boolean;\n this.sortOrder = this.sorted ? (this.dt.sortOrder === 1 ? 'ascending' : 'descending') : 'none';\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent) {\n if (this.isEnabled() && !this.isFilterElement(<HTMLElement>event.target)) {\n this.updateSortState();\n this.dt.sort({\n originalEvent: event,\n field: this.field\n });\n\n DomHandler.clearSelection();\n }\n }\n\n @HostListener('keydown.space', ['$event'])\n @HostListener('keydown.enter', ['$event'])\n onEnterKey(event: MouseEvent) {\n this.onClick(event);\n\n event.preventDefault();\n }\n\n isEnabled() {\n return this.pSortableColumnDisabled !== true;\n }\n\n isFilterElement(element: HTMLElement) {\n return this.isFilterElementIconOrButton(element) || this.isFilterElementIconOrButton(element?.parentElement?.parentElement);\n }\n private isFilterElementIconOrButton(element: HTMLElement) {\n return DomHandler.hasClass(element, 'pi-filter-icon') || DomHandler.hasClass(element, 'p-column-filter-menu-button');\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: 'p-sortIcon',\n template: `\n <ng-container *ngIf=\"!(dt.sortIconTemplate && dt._sortIconTemplate)\">\n <SortAltIcon [styleClass]=\"'p-sortable-column-icon'\" *ngIf=\"sortOrder === 0\" />\n <SortAmountUpAltIcon [styleClass]=\"'p-sortable-column-icon'\" *ngIf=\"sortOrder === 1\" />\n <SortAmountDownIcon [styleClass]=\"'p-sortable-column-icon'\" *ngIf=\"sortOrder === -1\" />\n </ng-container>\n <span *ngIf=\"dt.sortIconTemplate || dt._sortIconTemplate\" class=\"p-sortable-column-icon\">\n <ng-template *ngTemplateOutlet=\"dt.sortIconTemplate || dt._sortIconTemplate; context: { $implicit: sortOrder }\"></ng-template>\n </span>\n <span *ngIf=\"isMultiSorted()\" class=\"p-sortable-column-badge\">{{ getBadgeValue() }}</span>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class SortIcon implements OnInit, OnDestroy {\n @Input() field: string | undefined;\n\n subscription: Subscription | undefined;\n\n sortOrder: number | undefined;\n\n constructor(\n public dt: Table,\n public cd: ChangeDetectorRef\n ) {\n this.subscription = this.dt.tableService.sortSource$.subscribe((sortMeta) => {\n this.updateSortState();\n });\n }\n\n ngOnInit() {\n this.updateSortState();\n }\n\n onClick(event: Event) {\n event.preventDefault();\n }\n\n updateSortState() {\n if (this.dt.sortMode === 'single') {\n this.sortOrder = this.dt.isSorted(<string>this.field) ? this.dt.sortOrder : 0;\n } else if (this.dt.sortMode === 'multiple') {\n let sortMeta = this.dt.getSortMeta(<string>this.field);\n this.sortOrder = sortMeta ? sortMeta.order : 0;\n }\n\n this.cd.markForCheck();\n }\n\n getMultiSortMetaIndex() {\n let multiSortMeta = this.dt._multiSortMeta;\n let index = -1;\n\n if (multiSortMeta && this.dt.sortMode === 'multiple' && this.dt.showInitialSortBadge && multiSortMeta.length > 1) {\n for (let i = 0; i < multiSortMeta.length; i++) {\n let meta = multiSortMeta[i];\n if (meta.field === this.field || meta.field === this.field) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n\n getBadgeValue() {\n let index = this.getMultiSortMetaIndex();\n\n return this.dt.groupRowsBy && index > -1 ? index : index + 1;\n }\n\n isMultiSorted() {\n return this.dt.sortMode === 'multiple' && this.getMultiSortMetaIndex() > -1;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[pSelectableRow]',\n host: {\n '[class.p-datatable-selectable-row]': 'isEnabled()',\n '[class.p-datatable-row-selected]': 'selected',\n '[attr.tabindex]': 'setRowTabIndex()',\n '[attr.data-p-selectable-row]': 'true'\n }\n})\nexport class SelectableRow implements OnInit, OnDestroy {\n @Input('pSelectableRow') data: any;\n\n @Input('pSelectableRowIndex') index: number | undefined;\n\n @Input({ transform: booleanAttribute }) pSelectableRowDisabled: boolean | undefined;\n\n selected: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n constructor(\n public dt: Table,\n public tableService: TableService,\n private el: ElementRef\n ) {\n if (this.isEnabled()) {\n this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.selected = this.dt.isSelected(this.data);\n });\n }\n }\n\n setRowTabIndex() {\n if (this.dt.selectionMode === 'single' || this.dt.selectionMode === 'multiple') {\n return !this.dt.selection ? 0 : this.dt.anchorRowIndex === this.index ? 0 : -1;\n }\n }\n\n ngOnInit() {\n if (this.isEnabled()) {\n this.selected = this.dt.isSelected(this.data);\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.dt.handleRowClick({\n originalEvent: event,\n rowData: this.data,\n rowIndex: this.index\n });\n }\n }\n\n @HostListener('touchend', ['$event'])\n onTouchEnd(event: Event) {\n if (this.isEnabled()) {\n this.dt.handleRowTouchEnd(event);\n }\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'Space':\n this.onSpaceKey(event);\n break;\n\n case 'Enter':\n this.onEnterKey(event);\n break;\n\n default:\n if (event.code === 'KeyA' && (event.metaKey || event.ctrlKey) && this.dt.selectionMode === 'multiple') {\n const data = this.dt.dataToRender(this.dt.processedData);\n this.dt.selection = [...data];\n this.dt.selectRange(event, data.length - 1);\n\n event.preventDefault();\n }\n break;\n }\n }\n\n onArrowDownKey(event: KeyboardEvent) {\n if (!this.isEnabled()) {\n return;\n }\n\n const row = <HTMLTableRowElement>event.currentTarget;\n const nextRow = this.findNextSelectableRow(row);\n\n if (nextRow) {\n nextRow.focus();\n }\n\n event.preventDefault();\n }\n\n onArrowUpKey(event: KeyboardEvent) {\n if (!this.isEnabled()) {\n return;\n }\n\n const row = <HTMLTableRowElement>event.currentTarget;\n const prevRow = this.findPrevSelectableRow(row);\n\n if (prevRow) {\n prevRow.focus();\n }\n\n event.preventDefault();\n }\n\n onEnterKey(event: KeyboardEvent) {\n if (!this.isEnabled()) {\n return;\n }\n\n this.dt.handleRowClick({\n originalEvent: event,\n rowData: this.data,\n rowIndex: this.index\n });\n }\n\n onEndKey(event: KeyboardEvent) {\n const lastRow = this.findLastSelectableRow();\n lastRow && this.focusRowChange(this.el.nativeElement, lastRow);\n\n if (event.ctrlKey && event.shiftKey) {\n const data = this.dt.dataToRender(this.dt.rows);\n const lastSelectableRowIndex = DomHandler.getAttribute(lastRow, 'index');\n\n this.dt.anchorRowIndex = lastSelectableRowIndex;\n this.dt.selection = data.slice(this.index, data.length);\n this.dt.selectRange(event, this.index);\n }\n event.preventDefault();\n }\n\n onHomeKey(event: KeyboardEvent) {\n const firstRow = this.findFirstSelectableRow();\n\n firstRow && this.focusRowChange(this.el.nativeElement, firstRow);\n\n if (event.ctrlKey && event.shiftKey) {\n const data = this.dt.dataToRender(this.dt.rows);\n const firstSelectableRowIndex = DomHandler.getAttribute(firstRow, 'index');\n\n this.dt.anchorRowIndex = this.dt.anchorRowIndex || firstSelectableRowIndex;\n this.dt.selection = data.slice(0, this.index + 1);\n this.dt.selectRange(event, this.index);\n }\n event.preventDefault();\n }\n\n onSpaceKey(event) {\n const isInput = event.target instanceof HTMLInputElement || event.target instanceof HTMLSelectElement || event.target instanceof HTMLTextAreaElement;\n if (isInput) {\n return;\n } else {\n this.onEnterKey(event);\n\n if (event.shiftKey && this.dt.selection !== null) {\n const data = this.dt.dataToRender(this.dt.rows);\n let index;\n\n if (ObjectUtils.isNotEmpty(this.dt.selection) && this.dt.selection.length > 0) {\n let firstSelectedRowIndex, lastSelectedRowIndex;\n firstSelectedRowIndex = ObjectUtils.findIndexInList(this.dt.selection[0], data);\n lastSelectedRowIndex = ObjectUtils.findIndexInList(this.dt.selection[this.dt.selection.length - 1], data);\n\n index = this.index <= firstSelectedRowIndex ? lastSelectedRowIndex : firstSelectedRowIndex;\n } else {\n index = ObjectUtils.findIndexInList(this.dt.selection, data);\n }\n\n this.dt.anchorRowIndex = index;\n this.dt.selection = index !== this.index ? data.slice(Math.min(index, this.index), Math.max(index, this.index) + 1) : [this.data];\n this.dt.selectRange(event, this.index);\n }\n\n event.preventDefault();\n }\n }\n\n focusRowChange(firstFocusableRow, currentFocusedRow) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n DomHandler.focus(currentFocusedRow);\n }\n\n findLastSelectableRow() {\n const rows = DomHandler.find(this.dt.el.nativeElement, '.p-datatable-selectable-row');\n\n return rows ? rows[rows.length - 1] : null;\n }\n\n findFirstSelectableRow() {\n const firstRow = DomHandler.findSingle(this.dt.el.nativeElement, '.p-datatable-selectable-row');\n\n return firstRow;\n }\n\n findNextSelectableRow(row: HTMLTableRowElement): HTMLTableRowElement | null {\n let nextRow = <HTMLTableRowElement>row.nextElementSibling;\n if (nextRow) {\n if (DomHandler.hasClass(nextRow, 'p-selectable-row')) return nextRow;\n else return this.findNextSelectableRow(nextRow);\n } else {\n return null;\n }\n }\n\n findPrevSelectableRow(row: HTMLTableRowElement): HTMLTableRowElement | null {\n let prevRow = <HTMLTableRowElement>row.previousElementSibling;\n if (prevRow) {\n if (DomHandler.hasClass(prevRow, 'p-selectable-row')) return prevRow;\n else return this.findPrevSelectableRow(prevRow);\n } else {\n return null;\n }\n }\n\n isEnabled() {\n return this.pSelectableRowDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[pSelectableRowDblClick]',\n host: {\n '[class.p-selectable-row]': 'isEnabled()',\n '[class.p-highlight]': 'selected'\n }\n})\nexport class SelectableRowDblClick implements OnInit, OnDestroy {\n @Input('pSelectableRowDblClick') data: any;\n\n @Input('pSelectableRowIndex') index: number | undefined;\n\n @Input({ transform: booleanAttribute }) pSelectableRowDisabled: boolean | undefined;\n\n selected: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n constructor(\n public dt: Table,\n public tableService: TableService\n ) {\n if (this.isEnabled()) {\n this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.selected = this.dt.isSelected(this.data);\n });\n }\n }\n\n ngOnInit() {\n if (this.isEnabled()) {\n this.selected = this.dt.isSelected(this.data);\n }\n }\n\n @HostListener('dblclick', ['$event'])\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.dt.handleRowClick({\n originalEvent: event,\n rowData: this.data,\n rowIndex: this.index\n });\n }\n }\n\n isEnabled() {\n return this.pSelectableRowDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[pContextMenuRow]',\n host: {\n '[class.p-highlight-contextmenu]': 'selected',\n '[attr.tabindex]': 'isEnabled() ? 0 : undefined'\n }\n})\nexport class ContextMenuRow {\n @Input('pContextMenuRow') data: any;\n\n @Input('pContextMenuRowIndex') index: number | undefined;\n\n @Input({ transform: booleanAttribute }) pContextMenuRowDisabled: boolean | undefined;\n\n selected: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n constructor(\n public dt: Table,\n public tableService: TableService,\n private el: ElementRef\n ) {\n if (this.isEnabled()) {\n this.subscription = this.dt.tableService.contextMenuSource$.subscribe((data) => {\n this.selected = this.dt.equals(this.data, data);\n });\n }\n }\n\n @HostListener('contextmenu', ['$event'])\n onContextMenu(event: Event) {\n if (this.isEnabled()) {\n this.dt.handleRowRightClick({\n originalEvent: event,\n rowData: this.data,\n rowIndex: this.index\n });\n\n this.el.nativeElement.focus();\n event.preventDefault();\n }\n }\n\n isEnabled() {\n return this.pContextMenuRowDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[pRowToggler]'\n})\nexport class RowToggler {\n @Input('pRowToggler') data: any;\n\n @Input({ transform: booleanAttribute }) pRowTogglerDisabled: boolean | undefined;\n\n constructor(public dt: Table) {}\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.dt.toggleRow(this.data, event);\n event.preventDefault();\n }\n }\n\n isEnabled() {\n return this.pRowTogglerDisabled !== true;\n }\n}\n\n@Directive({\n selector: '[pResizableColumn]',\n host: {\n class: 'p-datatable-resizable-column'\n }\n})\nexport class ResizableColumn implements AfterViewInit, OnDestroy {\n @Input({ transform: booleanAttribute }) pResizableColumnDisabled: boolean | undefined;\n\n resizer: HTMLSpanElement | undefined;\n\n resizerMouseDownListener: VoidListener;\n\n resizerTouchStartListener: VoidListener;\n\n resizerTouchMoveListener: VoidListener;\n\n resizerTouchEndListener: VoidListener;\n\n documentMouseMoveListener: VoidListener;\n\n documentMouseUpListener: VoidListener;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n @Inject(PLATFORM_ID) private platformId: any,\n private renderer: Renderer2,\n public dt: Table,\n public el: ElementRef,\n public zone: NgZone\n ) {}\n\n ngAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.isEnabled()) {\n DomHandler.addClass(this.el.nativeElement, 'p-datatable-resizable-column');\n this.resizer = this.renderer.createElement('span');\n this.renderer.addClass(this.resizer, 'p-datatable-column-resizer');\n this.renderer.appendChild(this.el.nativeElement, this.resizer);\n\n this.zone.runOutsideAngular(() => {\n this.resizerMouseDownListener = this.renderer.listen(this.resizer, 'mousedown', this.onMouseDown.bind(this));\n this.resizerTouchStartListener = this.renderer.listen(this.resizer, 'touchstart', this.onTouchStart.bind(this));\n });\n }\n }\n }\n\n bindDocumentEvents() {\n this.zone.runOutsideAngular(() => {\n this.documentMouseMoveListener = this.renderer.listen(this.document, 'mousemove', this.onDocumentMouseMove.bind(this));\n this.documentMouseUpListener = this.renderer.listen(this.document, 'mouseup', this.onDocumentMouseUp.bind(this));\n this.resizerTouchMoveListener = this.renderer.listen(this.resizer, 'touchmove', this.onTouchMove.bind(this));\n this.resizerTouchEndListener = this.renderer.listen(this.resizer, 'touchend', this.onTouchEnd.bind(this));\n });\n }\n\n unbindDocumentEvents() {\n if (this.documentMouseMoveListener) {\n this.documentMouseMoveListener();\n this.documentMouseMoveListener = null;\n }\n\n if (this.documentMouseUpListener) {\n this.documentMouseUpListener();\n this.documentMouseUpListener = null;\n }\n if (this.resizerTouchMoveListener) {\n this.resizerTouchMoveListener();\n this.resizerTouchMoveListener = null;\n }\n\n if (this.resizerTouchEndListener) {\n this.resizerTouchEndListener();\n this.resizerTouchEndListener = null;\n }\n }\n\n onMouseDown(event: MouseEvent) {\n this.dt.onColumnResizeBegin(event);\n this.bindDocumentEvents();\n }\n\n onTouchStart(event: TouchEvent) {\n this.dt.onColumnResizeBegin(event);\n this.bindDocumentEvents();\n }\n\n onTouchMove(event: TouchEvent) {\n this.dt.onColumnResize(event);\n }\n onDocumentMouseMove(event: MouseEvent) {\n this.dt.onColumnResize(event);\n }\n\n onDocumentMouseUp(event: MouseEvent) {\n this.dt.onColumnResizeEnd();\n this.unbindDocumentEvents();\n }\n\n onTouchEnd(event: TouchEvent) {\n this.dt.onColumnResizeEnd();\n this.unbindDocumentEvents();\n }\n\n isEnabled() {\n return this.pResizableColumnDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.resizerMouseDownListener) {\n this.resizerMouseDownListener();\n this.resizerMouseDownListener = null;\n }\n\n this.unbindDocumentEvents();\n }\n}\n\n@Directive({\n selector: '[pReorderableColumn]',\n host: {\n class: 'p-datatable-reorderable-column'\n }\n})\nexport class ReorderableColumn implements AfterViewInit, OnDestroy {\n @Input({ transform: booleanAttribute }) pReorderableColumnDisabled: boolean | undefined;\n\n dragStartListener: VoidListener;\n\n dragOverListener: VoidListener;\n\n dragEnterListener: VoidListener;\n\n dragLeaveListener: VoidListener;\n\n mouseDownListener: VoidListener;\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: any,\n private renderer: Renderer2,\n public dt: Table,\n public el: ElementRef,\n public zone: NgZone\n ) {}\n\n ngAfterViewInit() {\n if (this.isEnabled()) {\n this.bindEvents();\n }\n }\n\n bindEvents() {\n if (isPlatformBrowser(this.platformId)) {\n this.zone.runOutsideAngular(() => {\n this.mouseDownListener = this.renderer.listen(this.el.nativeElement, 'mousedown', this.onMouseDown.bind(this));\n\n this.dragStartListener = this.renderer.listen(this.el.nativeElement, 'dragstart', this.onDragStart.bind(this));\n\n this.dragOverListener = this.renderer.listen(this.el.nativeElement, 'dragover', this.onDragOver.bind(this));\n\n this.dragEnterListener = this.renderer.listen(this.el.nativeElement, 'dragenter', this.onDragEnter.bind(this));\n\n this.dragLeaveListener = this.renderer.listen(this.el.nativeElement, 'dragleave', this.onDragLeave.bind(this));\n });\n }\n }\n\n unbindEvents() {\n if (this.mouseDownListener) {\n this.mouseDownListener();\n this.mouseDownListener = null;\n }\n\n if (this.dragStartListener) {\n this.dragStartListener();\n this.dragStartListener = null;\n }\n\n if (this.dragOverListener) {\n this.dragOverListener();\n this.dragOverListener = null;\n }\n\n if (this.dragEnterListener) {\n this.dragEnterListener();\n this.dragEnterListener = null;\n }\n\n if (this.dragLeaveListener) {\n this.dragLeaveListener();\n this.dragLeaveListener = null;\n }\n }\n\n onMouseDown(event: any) {\n if (event.target.nodeName === 'INPUT' || event.target.nodeName === 'TEXTAREA' || DomHandler.hasClass(event.target, 'p-datatable-column-resizer')) this.el.nativeElement.draggable = false;\n else this.el.nativeElement.draggable = true;\n }\n\n onDragStart(event: any) {\n this.dt.onColumnDragStart(event, this.el.nativeElement);\n }\n\n onDragOver(event: any) {\n event.preventDefault();\n }\n\n onDragEnter(event: any) {\n this.dt.onColumnDragEnter(event, this.el.nativeElement);\n }\n\n onDragLeave(event: any) {\n this.dt.onColumnDragLeave(event);\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: any) {\n if (this.isEnabled()) {\n this.dt.onColumnDrop(event, this.el.nativeElement);\n }\n }\n\n isEnabled() {\n return this.pReorderableColumnDisabled !== true;\n }\n\n ngOnDestroy() {\n this.unbindEvents();\n }\n}\n\n@Directive({\n selector: '[pEditableColumn]'\n})\nexport class EditableColumn implements OnChanges, AfterViewInit, OnDestroy {\n @Input('pEditableColumn') data: any;\n\n @Input('pEditableColumnField') field: any;\n\n @Input('pEditableColumnRowIndex') rowIndex: number | undefined;\n\n @Input({ transform: booleanAttribute }) pEditableColumnDisabled: boolean | undefined;\n\n @Input() pFocusCellSelector: string | undefined;\n\n overlayEventListener: any;\n\n constructor(\n public dt: Table,\n public el: ElementRef,\n public zone: NgZone\n ) {}\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (this.el.nativeElement && !changes.data?.firstChange) {\n this.dt.updateEditingCell(this.el.nativeElement, this.data, this.field, <number>this.rowIndex);\n }\n }\n\n ngAfterViewInit() {\n if (this.isEnabled()) {\n DomHandler.addClass(this.el.nativeElement, 'p-editable-column');\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent) {\n if (this.isEnabled()) {\n this.dt.selfClick = true;\n\n if (this.dt.editingCell) {\n if (this.dt.editingCell !== this.el.nativeElement) {\n if (!this.dt.isEditingCellValid()) {\n return;\n }\n\n this.closeEditingCell(true, event);\n this.openCell();\n }\n } else {\n this.openCell();\n }\n }\n }\n\n openCell() {\n this.dt.updateEditingCell(this.el.nativeElement, this.data, this.field, <number>this.rowIndex);\n DomHandler.addClass(this.el.nativeElement, 'p-cell-editing');\n this.dt.onEditInit.emit({\n field: this.field,\n data: this.data,\n index: <number>this.rowIndex\n });\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n let focusCellSelector = this.pFocusCellSelector || 'input, textarea, select';\n let focusableElement = DomHandler.findSingle(this.el.nativeElement, focusCellSelector);\n\n if (focusableElement) {\n focusableElement.focus();\n }\n }, 50);\n });\n\n this.overlayEventListener = (e: any) => {\n if (this.el && this.el.nativeElement.contains(e.target)) {\n this.dt.selfClick = true;\n }\n };\n\n this.dt.overlaySubscription = this.dt.overlayService.clickObservable.subscribe(this.overlayEventListener);\n }\n\n closeEditingCell(completed: any, event: Event) {\n const eventData = {\n field: <string>this.dt.editingCellField,\n data: <any>this.dt.editingCellData,\n originalEvent: <Event>event,\n index: <number>this.dt.editingCellRowIndex\n };\n\n if (completed) {\n this.dt.onEditComplete.emit(eventData);\n } else {\n this.dt.onEditCancel.emit(eventData);\n\n this.dt.value.forEach((element) => {\n if (element[this.dt.editingCellField] === this.data) {\n element[this.dt.editingCellField] = this.dt.editingCellData;\n }\n });\n }\n\n DomHandler.removeClass(this.dt.editingCell, 'p-cell-editing');\n this.dt.editingCell = null;\n this.dt.editingCellData = null;\n this.dt.editingCellField = null;\n this.dt.unbindDocumentEditListener();\n\n if (this.dt.overlaySubscription) {\n this.dt.overlaySubscription.unsubscribe();\n }\n }\n\n @HostListener('keydown.enter', ['$event'])\n onEnterKeyDown(event: KeyboardEvent) {\n if (this.isEnabled() && !event.shiftKey) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n event.preventDefault();\n }\n }\n\n @HostListener('keydown.tab', ['$event'])\n onTabKeyDown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n event.preventDefault();\n }\n }\n\n @HostListener('keydown.escape', ['$event'])\n onEscapeKeyDown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(false, event);\n }\n\n event.preventDefault();\n }\n }\n\n @HostListener('keydown.tab', ['$event'])\n @HostListener('keydown.shift.tab', ['$event'])\n @HostListener('keydown.meta.tab', ['$event'])\n onShiftKeyDown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n if (event.shiftKey) this.moveToPreviousCell(event);\n else {\n this.moveToNextCell(event);\n }\n }\n }\n @HostListener('keydown.arrowdown', ['$event'])\n onArrowDown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n let currentCell = this.findCell(event.target);\n if (currentCell) {\n let cellIndex = DomHandler.index(currentCell);\n let targetCell = this.findNextEditableColumnByIndex(currentCell, cellIndex);\n\n if (targetCell) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n DomHandler.invokeElementMethod(event.target, 'blur');\n DomHandler.invokeElementMethod(targetCell, 'click');\n }\n\n event.preventDefault();\n }\n }\n }\n\n @HostListener('keydown.arrowup', ['$event'])\n onArrowUp(event: KeyboardEvent) {\n if (this.isEnabled()) {\n let currentCell = this.findCell(event.target);\n if (currentCell) {\n let cellIndex = DomHandler.index(currentCell);\n let targetCell = this.findPrevEditableColumnByIndex(currentCell, cellIndex);\n\n if (targetCell) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n DomHandler.invokeElementMethod(event.target, 'blur');\n DomHandler.invokeElementMethod(targetCell, 'click');\n }\n\n event.preventDefault();\n }\n }\n }\n\n @HostListener('keydown.arrowleft', ['$event'])\n onArrowLeft(event: KeyboardEvent) {\n if (this.isEnabled()) {\n this.moveToPreviousCell(event);\n }\n }\n\n @HostListener('keydown.arrowright', ['$event'])\n onArrowRight(event: KeyboardEvent) {\n if (this.isEnabled()) {\n this.moveToNextCell(event);\n }\n }\n\n findCell(element: any) {\n if (element) {\n let cell = element;\n while (cell && !DomHandler.hasClass(cell, 'p-cell-editing')) {\n cell = cell.parentElement;\n }\n\n return cell;\n } else {\n return null;\n }\n }\n\n moveToPreviousCell(event: KeyboardEvent) {\n let currentCell = this.findCell(event.target);\n if (currentCell) {\n let targetCell = this.findPreviousEditableColumn(currentCell);\n\n if (targetCell) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n DomHandler.invokeElementMethod(event.target, 'blur');\n DomHandler.invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n }\n }\n\n moveToNextCell(event: KeyboardEvent) {\n let currentCell = this.findCell(event.target);\n if (currentCell) {\n let targetCell = this.findNextEditableColumn(currentCell);\n\n if (targetCell) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n DomHandler.invokeElementMethod(event.target, 'blur');\n DomHandler.invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n } else {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n }\n }\n }\n\n findPreviousEditableColumn(cell: any): HTMLTableCellElement | null {\n let prevCell = cell.previousElementSibling;\n\n if (!prevCell) {\n let previousRow = cell.parentElement?.previousElementSibling;\n if (previousRow) {\n prevCell = previousRow.lastElementChild;\n }\n }\n\n if (prevCell) {\n if (DomHandler.hasClass(prevCell, 'p-editable-column')) return prevCell;\n else return this.findPreviousEditableColumn(prevCell);\n } else {\n return null;\n }\n }\n\n findNextEditableColumn(cell: any): HTMLTableCellElement | null {\n let nextCell = cell.nextElementSibling;\n\n if (!nextCell) {\n let nextRow = cell.parentElement?.nextElementSibling;\n if (nextRow) {\n nextCell = nextRow.firstElementChild;\n }\n }\n\n if (nextCell) {\n if (DomHandler.hasClass(nextCell, 'p-editable-column')) return nextCell;\n else return this.findNextEditableColumn(nextCell);\n } else {\n return null;\n }\n }\n\n findNextEditableColumnByIndex(cell: Element, index: number) {\n let nextRow = cell.parentElement?.nextElementSibling;\n\n if (nextRow) {\n let nextCell = nextRow.children[index];\n\n if (nextCell && DomHandler.hasClass(nextCell, 'p-editable-column')) {\n return nextCell;\n }\n\n return null;\n } else {\n return null;\n }\n }\n\n findPrevEditableColumnByIndex(cell: Element, index: number) {\n let prevRow = cell.parentElement?.previousElementSibling;\n\n if (prevRow) {\n let prevCell = prevRow.children[index];\n\n if (prevCell && DomHandler.hasClass(prevCell, 'p-editable-column')) {\n return prevCell;\n }\n\n return null;\n } else {\n return null;\n }\n }\n\n isEnabled() {\n return this.pEditableColumnDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.dt.overlaySubscription) {\n this.dt.overlaySubscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[pEditableRow]'\n})\nexport class EditableRow {\n @Input('pEditableRow') data: any;\n\n @Input({ transform: booleanAttribute }) pEditableRowDisabled: boolean | undefined;\n\n constructor(public el: ElementRef) {}\n\n isEnabled() {\n return this.pEditableRowDisabled !== true;\n }\n}\n\n@Directive({\n selector: '[pInitEditableRow]',\n host: {\n class: 'p-datatable-row-editor-init'\n }\n})\nexport class InitEditableRow {\n constructor(\n public dt: Table,\n public editableRow: EditableRow\n ) {}\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n this.dt.initRowEdit(this.editableRow.data);\n event.preventDefault();\n }\n}\n\n@Directive({\n selector: '[pSaveEditableRow]',\n host: {\n class: 'p-datatable-row-editor-save'\n }\n})\nexport class SaveEditableRow {\n constructor(\n public dt: Table,\n public editableRow: EditableRow\n ) {}\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n this.dt.saveRowEdit(this.editableRow.data, this.editableRow.el.nativeElement);\n event.preventDefault();\n }\n}\n\n@Directive({\n selector: '[pCancelEditableRow]',\n host: {\n class: 'p-datatable-row-editor-cancel'\n }\n})\nexport class CancelEditableRow {\n constructor(\n public dt: Table,\n public editableRow: EditableRow\n ) {}\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n this.dt.cancelRowEdit(this.editableRow.data);\n event.preventDefault();\n }\n}\n\n@Component({\n selector: 'p-cellEditor',\n template: `\n <ng-container *ngIf=\"editing\">\n <ng-container *ngTemplateOutlet=\"inputTemplate || _inputTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!editing\">\n <ng-container *ngTemplateOutlet=\"outputTemplate || _outputTemplate\"></ng-container>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class CellEditor implements AfterContentInit {\n @ContentChildren(PrimeTemplate) _templates: Nullable<QueryList<PrimeTemplate>>;\n\n @ContentChild('input') _inputTemplate: TemplateRef<any>;\n\n @ContentChild('output') _outputTemplate: TemplateRef<any>;\n\n inputTemplate: Nullable<TemplateRef<any>>;\n\n outputTemplate: Nullable<TemplateRef<any>>;\n\n constructor(\n public dt: Table,\n @Optional() public editableColumn: EditableColumn,\n @Optional() public editableRow: EditableRow\n ) {}\n\n ngAfterContentInit() {\n (this._templates as QueryList<PrimeTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'input':\n this.inputTemplate = item.template;\n break;\n\n case 'output':\n this.outputTemplate = item.template;\n break;\n }\n });\n }\n\n get editing(): boolean {\n 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));\n }\n}\n\n@Component({\n selector: 'p-tableRadioButton',\n template: ` <p-radioButton #rb [(ngModel)]=\"checked\" [disabled]=\"disabled\" [inputId]=\"inputId\" [name]=\"name\" [ariaLabel]=\"ariaLabel\" [binary]=\"true\" [value]=\"value\" (onClick)=\"onClick($event)\" /> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class TableRadioButton {\n @Input({ transform: booleanAttribute }) disabled: boolean | undefined;\n\n @Input() value: any;\n\n @Input({ transform: numberAttribute }) index: number | undefined;\n\n @Input() inputId: string | undefined;\n\n @Input() name: string | undefined;\n\n @Input() ariaLabel: string | undefined;\n\n @ViewChild('rb') inputViewChild: Nullable<RadioButton>;\n\n checked: boolean | undefined;\n\n focused: boolean | undefined;\n\n subscription: Subscription;\n\n constructor(\n public dt: Table,\n public cd: ChangeDetectorRef\n ) {\n this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.dt.isSelected(this.value);\n\n this.ariaLabel = this.ariaLabel || this.dt.config.translation.aria ? (this.checked ? this.dt.config.translation.aria.selectRow : this.dt.config.translation.aria.unselectRow) : undefined;\n this.cd.markForCheck();\n });\n }\n\n ngOnInit() {\n this.checked = this.dt.isSelected(this.value);\n }\n\n onClick(event: RadioButtonClickEvent) {\n if (!this.disabled) {\n this.dt.toggleRowWithRadio(\n {\n originalEvent: event.originalEvent,\n rowIndex: this.index\n },\n this.value\n );\n\n this.inputViewChild?.inputViewChild.nativeElement?.focus();\n }\n DomHandler.clearSelection();\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: 'p-tableCheckbox',\n template: `\n <p-checkbox [(ngModel)]=\"checked\" [binary]=\"true\" (onChange)=\"onClick($event)\" [disabled]=\"disabled\" [ariaLabel]=\"ariaLabel\">\n <ng-container *ngIf=\"dt.checkboxIconTemplate || dt._checkboxIconTemplate\">\n <ng-template pTemplate=\"icon\">\n <ng-template *ngTemplateOutlet=\"dt.checkboxIconTemplate || dt._checkboxIconTemplate; context: { $implicit: checked }\"></ng-template>\n </ng-template>\n </ng-container>\n </p-checkbox>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class TableCheckbox {\n @Input({ transform: booleanAttribute }) disabled: boolean | undefined;\n\n @Input() value: any;\n\n @Input({ transform: numberAttribute }) index: number | undefined;\n\n @Input() inputId: string | undefined;\n\n @Input() name: string | undefined;\n\n @Input({ transform: booleanAttribute }) required: boolean | undefined;\n\n @Input() ariaLabel: string | undefined;\n\n checked: boolean | undefined;\n\n focused: boolean | undefined;\n\n subscription: Subscription;\n\n constructor(\n public dt: Table,\n public tableService: TableService,\n public cd: ChangeDetectorRef\n ) {\n this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.dt.isSelected(this.value) && !this.disabled;\n this.ariaLabel = this.ariaLabel || this.dt.config.translation.aria ? (this.checked ? this.dt.config.translation.aria.selectRow : this.dt.config.translation.aria.unselectRow) : undefined;\n this.cd.markForCheck();\n });\n }\n\n ngOnInit() {\n this.checked = this.dt.isSelected(this.value);\n }\n\n onClick(event: Event) {\n if (!this.disabled) {\n this.dt.toggleRowWithCheckbox(\n {\n originalEvent: event,\n rowIndex: this.index\n },\n this.value\n );\n }\n DomHandler.clearSelection();\n }\n\n onFocus() {\n this.focused = true;\n }\n\n onBlur() {\n this.focused = false;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: 'p-tableHeaderCheckbox',\n template: `\n <p-checkbox [(ngModel)]=\"checked\" (onChange)=\"onClick($event)\" [binary]=\"true\" [disabled]=\"isDisabled()\" [ariaLabel]=\"ariaLabel\">\n <ng-container *ngIf=\"dt.headerCheckboxIconTemplate || dt._headerCheckboxIconTemplate\">\n <ng-template pTemplate=\"icon\">\n <ng-template *ngTemplateOutlet=\"dt.headerCheckboxIconTemplate || dt._headerCheckboxIconTemplate; context: { $implicit: checked }\"></ng-template>\n </ng-template>\n </ng-container>\n </p-checkbox>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class TableHeaderCheckbox {\n @Input({ transform: booleanAttribute }) disabled: boolean | undefined;\n\n @Input() inputId: string | undefined;\n\n @Input() name: string | undefined;\n\n @Input() ariaLabel: string | undefined;\n\n checked: boolean | undefined;\n\n focused: boolean | undefined;\n\n selectionChangeSubscription: Subscription;\n\n valueChangeSubscription: Subscription;\n\n constructor(\n public dt: Table,\n public tableService: TableService,\n public cd: ChangeDetectorRef\n ) {\n this.valueChangeSubscription = this.dt.tableService.valueSource$.subscribe(() => {\n this.checked = this.updateCheckedState();\n this.ariaLabel = this.ariaLabel || this.dt.config.translation.aria ? (this.checked ? this.dt.config.translation.aria.selectAll : this.dt.config.translation.aria.unselectAll) : undefined;\n });\n\n this.selectionChangeSubscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n }\n\n ngOnInit() {\n this.checked = this.updateCheckedState();\n }\n\n onClick(event: Event) {\n if (!this.disabled) {\n if (this.dt.value && this.dt.value.length > 0) {\n this.dt.toggleRowsWithCheckbox(event, this.checked);\n }\n }\n\n DomHandler.clearSelection();\n }\n\n onFocus() {\n this.focused = true;\n }\n\n onBlur() {\n this.focused = false;\n }\n\n isDisabled() {\n return this.disabled || !this.dt.value || !this.dt.value.length;\n }\n\n ngOnDestroy() {\n if (this.selectionChangeSubscription) {\n this.selectionChangeSubscription.unsubscribe();\n }\n\n if (this.valueChangeSubscription) {\n this.valueChangeSubscription.unsubscribe();\n }\n }\n\n updateCheckedState() {\n this.cd.markForCheck();\n\n if (this.dt._selectAll !== null) {\n return this.dt._selectAll;\n } else {\n const data = this.dt.selectionPageOnly ? this.dt.dataToRender(this.dt.processedData) : this.dt.processedData;\n const val = this.dt.frozenValue ? [...this.dt.frozenValue, ...data] : data;\n const selectableVal = this.dt.rowSelectable ? val.filter((data: any, index: number) => this.dt.rowSelectable({ data, index })) : val;\n\n return ObjectUtils.isNotEmpty(selectableVal) && ObjectUtils.isNotEmpty(this.dt.selection) && selectableVal.every((v: any) => this.dt.selection.some((s: any) => this.dt.equals(v, s)));\n }\n }\n}\n\n@Directive({\n selector: '[pReorderableRowHandle]',\n host: {\n class: 'p-datatable-reorderable-row-handle'\n }\n})\nexport class ReorderableRowHandle implements AfterViewInit {\n constructor(public el: ElementRef) {}\n\n ngAfterViewInit() {\n // DomHandler.addClass(this.el.nativeElement, 'p-datatable-reorderable-row-handle');\n }\n}\n\n@Directive({\n selector: '[pReorderableRow]'\n})\nexport class ReorderableRow implements AfterViewInit {\n @Input('pReorderableRow') index: number | undefined;\n\n @Input({ transform: booleanAttribute }) pReorderableRowDisabled: boolean | undefined;\n\n mouseDownListener: VoidListener;\n\n dragStartListener: VoidListener;\n\n dragEndListener: VoidListener;\n\n dragOverListener: VoidListener;\n\n dragLeaveListener: VoidListener;\n\n dropListener: VoidListener;\n\n constructor(\n private renderer: Renderer2,\n public dt: Table,\n public el: ElementRef,\n public zone: NgZone\n ) {}\n\n ngAfterViewInit() {\n if (this.isEnabled()) {\n this.el.nativeElement.droppable = true;\n this.bindEvents();\n }\n }\n\n bindEvents() {\n this.zone.runOutsideAngular(() => {\n this.mouseDownListener = this.renderer.listen(this.el.nativeElement, 'mousedown', this.onMouseDown.bind(this));\n\n this.dragStartListener = this.renderer.listen(this.el.nativeElement, 'dragstart', this.onDragStart.bind(this));\n\n this.dragEndListener = this.renderer.listen(this.el.nativeElement, 'dragend', this.onDragEnd.bind(this));\n\n this.dragOverListener = this.renderer.listen(this.el.nativeElement, 'dragover', this.onDragOver.bind(this));\n\n this.dragLeaveListener = this.renderer.listen(this.el.nativeElement, 'dragleave', this.onDragLeave.bind(this));\n });\n }\n\n unbindEvents() {\n if (this.mouseDownListener) {\n this.mouseDownListener();\n this.mouseDownListener = null;\n }\n\n if (this.dragStartListener) {\n this.dragStartListener();\n this.dragStartListener = null;\n }\n\n if (this.dragEndListener) {\n this.dragEndListener();\n this.dragEndListener = null;\n }\n\n if (this.dragOverListener) {\n this.dragOverListener();\n this.dragOverListener = null;\n }\n\n if (this.dragLeaveListener) {\n this.dragLeaveListener();\n this.dragLeaveListener = null;\n }\n }\n\n onMouseDown(event: Event) {\n const targetElement = event.target as HTMLElement;\n const isHandleClicked = this.isHandleElement(targetElement);\n this.el.nativeElement.draggable = isHandleClicked;\n }\n\n isHandleElement(element: HTMLElement): boolean {\n if (element?.classList.contains('p-datatable-reorderable-row-handle')) {\n return true;\n }\n\n if (element?.parentElement && !['TD', 'TR'].includes(element?.parentElement?.tagName)) {\n return this.isHandleElement(element?.parentElement);\n }\n\n return false;\n }\n\n onDragStart(event: DragEvent) {\n this.dt.onRowDragStart(event, <number>this.index);\n }\n\n onDragEnd(event: DragEvent) {\n this.dt.onRowDragEnd(event);\n this.el.nativeElement.draggable = false;\n }\n\n onDragOver(event: DragEvent) {\n this.dt.onRowDragOver(event, <number>this.index, this.el.nativeElement);\n event.preventDefault();\n }\n\n onDragLeave(event: DragEvent) {\n this.dt.onRowDragLeave(event, this.el.nativeElement);\n }\n\n isEnabled() {\n return this.pReorderableRowDisabled !== true;\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: DragEvent) {\n if (this.isEnabled() && this.dt.rowDragging) {\n this.dt.onRowDrop(event, this.el.nativeElement);\n }\n\n event.preventDefault();\n }\n\n ngOnDestroy() {\n this.unbindEvents();\n }\n}\n\n@Component({\n selector: 'p-columnFilter',\n template: `\n <div [ngClass]=\"cx('filter')\">\n <p-columnFilterFormElement\n *ngIf=\"display === 'row'\"\n class=\"p-fluid\"\n [type]=\"type\"\n [field]=\"field\"\n [ariaLabel]=\"ariaLabel\"\n [filterConstraint]=\"dt.filters[field]\"\n [filterTemplate]=\"filterTemplate\"\n [placeholder]=\"placeholder\"\n [minFractionDigits]=\"minFractionDigits\"\n [maxFractionDigits]=\"maxFractionDigits\"\n [prefix]=\"prefix\"\n [suffix]=\"suffix\"\n [locale]=\"locale\"\n [localeMatcher]=\"localeMatcher\"\n [currency]=\"currency\"\n [currencyDisplay]=\"currencyDisplay\"\n [useGrouping]=\"useGrouping\"\n [showButtons]=\"showButtons\"\n ></p-columnFilterFormElement>\n <p-button\n *ngIf=\"showMenuButton\"\n [styleClass]=\"cx('pcColumnFilterButton')\"\n [attr.aria-haspopup]=\"true\"\n [ariaLabel]=\"filterMenuButtonAriaLabel\"\n [attr.aria-controls]=\"overlayVisible ? overlayId : null\"\n [attr.aria-expanded]=\"overlayVisible ?? false\"\n (click)=\"toggleMenu($event)\"\n (keydown)=\"onToggleButtonKeyDown($event)\"\n [buttonProps]=\"filterButtonProps?.filter\"\n >\n <ng-template #icon>\n <FilterIcon *ngIf=\"!filterIconTemplate && !_filterIconTemplate\" />\n <span class=\"pi-filter-icon\" *ngIf=\"filterIconTemplate || _filterIconTemplate\">\n <ng-template *ngTemplateOutlet=\"filterIconTemplate || _filterIconTemplate\"></ng-template>\n </span>\n </ng-template>\n </p-button>\n <p-button *ngIf=\"showClearButton && display === 'row' && hasFilter\" [styleClass]=\"cx('pcColumnfilterClearButton')\" (onClick)=\"clearFilter()\" [ariaLabel]=\"clearButtonLabel\" [buttonProps]=\"filterButtonProps?.inline?.clear\">\n <ng-template #icon>\n <FilterSlashIcon *ngIf=\"!clearFilterIconTemplate && !_clearFilterIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"clearFilterIconTemplate || _clearFilterIconTemplate\"></ng-template>\n </ng-template>\n </p-button>\n <div\n *ngIf=\"showMenu && overlayVisible\"\n [ngClass]=\"cx('filterOverlay')\"\n [id]=\"overlayId\"\n [attr.aria-modal]=\"true\"\n role=\"dialog\"\n (click)=\"onContentClick()\"\n [@overlayAnimation]=\"'visible'\"\n (@overlayAnimation.start)=\"onOverlayAnimationStart($event)\"\n (@overlayAnimation.done)=\"onOverlayAnimationEnd($event)\"\n (keydown.escape)=\"onEscape()\"\n >\n <ng-container *ngTemplateOutlet=\"headerTemplate || _headerTemplate; context: { $implicit: field }\"></ng-container>\n <ul *ngIf=\"display === 'row'; else menu\" [ngClass]=\"cx('filterConstraintList')\">\n <li\n *ngFor=\"let matchMode of matchModes; let i = index\"\n (click)=\"onRowMatchModeChange(matchMode.value)\"\n (keydown)=\"onRowMatchModeKeyDown($event)\"\n (keydown.enter)=\"onRowMatchModeChange(matchMode.value)\"\n [ngClass]=\"cx('filterConstraint')\"\n [class.p-datatable-filter-constraint-selected]=\"isRowMatchModeSelected(matchMode.value)\"\n [attr.tabindex]=\"i === 0 ? '0' : null\"\n >\n {{ matchMode.label }}\n </li>\n <li [ngClass]=\"cx('filterConstraintSeparator')\"></li>\n <li [ngClass]=\"cx('filterConstraint')\" (click)=\"onRowClearItemClick()\" (keydown)=\"onRowMatchModeKeyDown($event)\" (keydown.enter)=\"onRowClearItemClick()\">\n {{ noFilterLabel }}\n </li>\n </ul>\n <ng-template #menu>\n <div [ngClass]=\"cx('filterOperator')\" *ngIf=\"isShowOperator\">\n <p-select [options]=\"operatorOptions\" [ngModel]=\"operator\" (ngModelChange)=\"onOperatorChange($event)\" [styleClass]=\"cx('pcFilterOperatorDropdown')\"></p-select>\n </div>\n <div [ngClass]=\"cx('filterRuleList')\">\n <div *ngFor=\"let fieldConstraint of fieldConstraints; let i = index\" [ngClass]=\"cx('filterRule')\">\n <p-select\n *ngIf=\"showMatchModes && matchModes\"\n [options]=\"matchModes\"\n [ngModel]=\"fieldConstraint.matchMode\"\n (ngModelChange)=\"onMenuMatchModeChange($event, fieldConstraint)\"\n [styleClass]=\"cx('pcFilterConstraintDropdown')\"\n ></p-select>\n <p-columnFilterFormElement\n [type]=\"type\"\n [field]=\"field\"\n [filterConstraint]=\"fieldConstraint\"\n [filterTemplate]=\"filterTemplate || _filterTemplate\"\n [placeholder]=\"placeholder\"\n [minFractionDigits]=\"minFractionDigits\"\n [maxFractionDigits]=\"maxFractionDigits\"\n [prefix]=\"prefix\"\n [suffix]=\"suffix\"\n [locale]=\"locale\"\n [localeMatcher]=\"localeMatcher\"\n [currency]=\"currency\"\n [currencyDisplay]=\"currencyDisplay\"\n [useGrouping]=\"useGrouping\"\n ></p-columnFilterFormElement>\n <div>\n <p-button\n *ngIf=\"showRemoveIcon\"\n [styleClass]=\"cx('pcFilterRemoveRuleButton')\"\n [text]=\"true\"\n severity=\"danger\"\n size=\"small\"\n (onClick)=\"removeConstraint(fieldConstraint)\"\n [ariaLabel]=\"removeRuleButtonLabel\"\n [label]=\"removeRuleButtonLabel\"\n [buttonProps]=\"filterButtonProps?.popover?.removeRule\"\n >\n <TrashIcon *ngIf=\"!removeRuleIconTemplate && !_removeRuleIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"removeRuleIconTemplate || _removeRuleIconTemplate\"></ng-template>\n </p-button>\n </div>\n </div>\n </div>\n <div *ngIf=\"isShowAddConstraint\">\n <p-button\n type=\"button\"\n [label]=\"addRuleButtonLabel\"\n [attr.aria-label]=\"addRuleButtonLabel\"\n [styleClass]=\"cx('pcFilterAddRuleButton')\"\n [text]=\"true\"\n size=\"small\"\n (onClick)=\"addConstraint()\"\n [buttonProps]=\"filterButtonProps?.popover?.addRule\"\n >\n <PlusIcon *ngIf=\"!addRuleIconTemplate && !_addRuleIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"addRuleIconTemplate || _addRuleIconTemplate\"></ng-template>\n </p-button>\n </div>\n <div [ngClass]=\"cx('filterButtonbar')\">\n <p-button #clearBtn *ngIf=\"showClearButton\" [outlined]=\"true\" (onClick)=\"clearFilter()\" [attr.aria-label]=\"clearButtonLabel\" [label]=\"clearButtonLabel\" [buttonProps]=\"filterButtonProps?.popover?.clear\" />\n <p-button *ngIf=\"showApplyButton\" (onClick)=\"applyFilter()\" size=\"small\" [label]=\"applyButtonLabel\" [attr.aria-label]=\"applyButtonLabel\" [buttonProps]=\"filterButtonProps?.popover?.apply\" />\n </div>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"footerTemplate || _footerTemplate; context: { $implicit: field }\"></ng-container>\n </div>\n </div>\n `,\n 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 }))])])],\n encapsulation: ViewEncapsulation.None\n})\nexport class ColumnFilter extends BaseComponent implements AfterContentInit {\n /**\n * Property represented by the column.\n * @group Props\n */\n @Input() field: string | undefined;\n /**\n * Type of the input.\n * @group Props\n */\n @Input() type: string = 'text';\n /**\n * Filter display.\n * @group Props\n */\n @Input() display: string = 'row';\n /**\n * Decides whether to display filter menu popup.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showMenu: boolean = true;\n /**\n * Filter match mode.\n * @group Props\n */\n @Input() matchMode: string | undefined;\n /**\n * Filter operator.\n * @defaultValue 'AND'\n * @group Props\n */\n @Input() operator: string = FilterOperator.AND;\n /**\n * Decides whether to display filter operator.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showOperator: boolean = true;\n /**\n * Decides whether to display clear filter button.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showClearButton: boolean = true;\n /**\n * Decides whether to display apply filter button.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showApplyButton: boolean = true;\n /**\n * Decides whether to display filter match modes.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showMatchModes: boolean = true;\n /**\n * Decides whether to display add filter button.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showAddButton: boolean = true;\n /**\n * Decides whether to close popup on clear button click.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) hideOnClear: boolean = false;\n /**\n * Filter placeholder.\n * @group Props\n */\n @Input() placeholder: string | undefined;\n /**\n * Filter match mode options.\n * @group Props\n */\n @Input() matchModeOptions: SelectItem[] | undefined;\n /**\n * Defines maximum amount of constraints.\n * @group Props\n */\n @Input({ transform: numberAttribute }) maxConstraints: number = 2;\n /**\n * Defines minimum fraction of digits.\n * @group Props\n */\n @Input({ transform: (value: unknown) => numberAttribute(value, null) })\n minFractionDigits: number | undefined;\n /**\n * Defines maximum fraction of digits.\n * @group Props\n */\n @Input({ transform: (value: unknown) => numberAttribute(value, null) })\n maxFractionDigits: number | undefined;\n /**\n * Defines prefix of the filter.\n * @group Props\n */\n @Input() prefix: string | undefined;\n /**\n * Defines suffix of the filter.\n * @group Props\n */\n @Input() suffix: string | undefined;\n /**\n * Defines filter locale.\n * @group Props\n */\n @Input() locale: string | undefined;\n /**\n * Defines filter locale matcher.\n * @group Props\n */\n @Input() localeMatcher: string | undefined;\n /**\n * Enables currency input.\n * @group Props\n */\n @Input() currency: string | undefined;\n /**\n * Defines the display of the currency input.\n * @group Props\n */\n @Input() currencyDisplay: string | undefined;\n /**\n * Defines if filter grouping will be enabled.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) useGrouping: boolean = true;\n /**\n * Defines the visibility of buttons.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showButtons: boolean = true;\n /**\n * Defines the aria-label of the form element.\n * @group Props\n */\n @Input() ariaLabel: string | undefined;\n /**\n * Used to pass all filter button property object\n * @defaultValue {\n filter: { severity: 'secondary', text: true, rounded: true },\n inline: {\n clear: { severity: 'secondary', text: true, rounded: true }\n },\n popover: {\n addRule: { severity: 'info', text: true, size: 'small' },\n removeRule: { severity: 'danger', text: true, size: 'small' },\n apply: { size: 'small' },\n clear: { outlined: true, size: 'small' }\n }\n }\n */\n @Input() filterButtonProps: TableFilterButtonPropsOptions = {\n filter: { severity: 'secondary', text: true, rounded: true },\n inline: {\n clear: { severity: 'secondary', text: true, rounded: true }\n },\n popover: {\n addRule: { severity: 'info', text: true, size: 'small' },\n removeRule: { severity: 'danger', text: true, size: 'small' },\n apply: { size: 'small' },\n clear: { outlined: true, size: 'small' }\n }\n };\n /**\n * Callback to invoke on overlay is shown.\n * @param {AnimationEvent} originalEvent - animation event.\n * @group Emits\n */\n @Output() onShow: EventEmitter<{ originalEvent: AnimationEvent }> = new EventEmitter<{\n originalEvent: AnimationEvent;\n }>();\n /**\n * Callback to invoke on overlay is hidden.\n * @param {AnimationEvent} originalEvent - animation event.\n * @group Emits\n */\n @Output() onHide: EventEmitter<{ originalEvent: AnimationEvent }> = new EventEmitter<{\n originalEvent: AnimationEvent;\n }>();\n\n @ViewChild(Button, { static: false, read: ElementRef }) icon: ElementRef | undefined;\n\n @ViewChild('clearBtn') clearButtonViewChild: Nullable<ElementRef>;\n\n @ContentChildren(PrimeTemplate) _templates: Nullable<QueryList<any>>;\n\n overlaySubscription: Subscription | undefined;\n\n @ContentChild('header') _headerTemplate: TemplateRef<any>;\n headerTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('filter') _filterTemplate: TemplateRef<any>;\n filterTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('footer') _footerTemplate: TemplateRef<any>;\n footerTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('filtericon') _filterIconTemplate: TemplateRef<any>;\n filterIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('removeruleicon') _removeRuleIconTemplate: TemplateRef<any>;\n removeRuleIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('addruleicon') _addRuleIconTemplate: TemplateRef<any>;\n addRuleIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('clearfiltericon') _clearFilterIconTemplate: TemplateRef<any>;\n clearFilterIconTemplate: Nullable<TemplateRef<any>>;\n\n operatorOptions: any[] | undefined;\n\n overlayVisible: boolean | undefined;\n\n overlay: HTMLElement | undefined | null;\n\n scrollHandler: ConnectedOverlayScrollHandler | null | undefined;\n\n documentClickListener: VoidListener;\n\n documentResizeListener: VoidListener;\n\n matchModes: SelectItem[] | undefined;\n\n translationSubscription: Subscription | undefined;\n\n resetSubscription: Subscription | undefined;\n\n selfClick: boolean | undefined;\n\n overlayEventListener: any;\n\n overlayId: any;\n\n get fieldConstraints(): FilterMetadata[] | undefined | null {\n return this.dt.filters ? <FilterMetadata[]>this.dt.filters[<string>this.field] : null;\n }\n\n get showRemoveIcon(): boolean {\n return this.fieldConstraints ? this.fieldConstraints.length > 1 : false;\n }\n\n get showMenuButton(): boolean {\n return this.showMenu && (this.display === 'row' ? this.type !== 'boolean' : true);\n }\n\n get isShowOperator(): boolean {\n return this.showOperator && this.type !== 'boolean';\n }\n\n get isShowAddConstraint(): boolean | undefined | null {\n return this.showAddButton && this.type !== 'boolean' && this.fieldConstraints && this.fieldConstraints.length < this.maxConstraints;\n }\n\n get showMenuButtonLabel() {\n return this.config.getTranslation(TranslationKeys.SHOW_FILTER_MENU);\n }\n\n get applyButtonLabel(): string {\n return this.config.getTranslation(TranslationKeys.APPLY);\n }\n\n get clearButtonLabel(): string {\n return this.config.getTranslation(TranslationKeys.CLEAR);\n }\n\n get addRuleButtonLabel(): string {\n return this.config.getTranslation(TranslationKeys.ADD_RULE);\n }\n\n get removeRuleButtonLabel(): string {\n return this.config.getTranslation(TranslationKeys.REMOVE_RULE);\n }\n\n get noFilterLabel(): string {\n return this.config.getTranslation(TranslationKeys.NO_FILTER);\n }\n\n get filterMenuButtonAriaLabel() {\n return this.config.translation ? (this.overlayVisible ? this.config.translation.aria.hideFilterMenu : this.config.translation.aria.showFilterMenu) : undefined;\n }\n\n get removeRuleButtonAriaLabel() {\n return this.config.translation ? this.config.translation.removeRule : undefined;\n }\n\n get filterOperatorAriaLabel() {\n return this.config.translation ? this.config.translation.aria.filterOperator : undefined;\n }\n\n get filterConstraintAriaLabel() {\n return this.config.translation ? this.config.translation.aria.filterConstraint : undefined;\n }\n\n dt = inject(Table);\n\n overlayService = inject(OverlayService);\n\n hostName = 'Table';\n\n parentInstance = inject(forwardRef(() => Table));\n\n ngOnInit() {\n super.ngOnInit();\n this.overlayId = UniqueComponentId();\n if (!this.dt.filters[<string>this.field]) {\n this.initFieldFilterConstraint();\n }\n\n this.translationSubscription = this.config.translationObserver.subscribe(() => {\n this.generateMatchModeOptions();\n this.generateOperatorOptions();\n });\n\n this.generateMatchModeOptions();\n this.generateOperatorOptions();\n }\n\n generateMatchModeOptions() {\n this.matchModes =\n this.matchModeOptions ||\n (this.config as any).filterMatchModeOptions[this.type]?.map((key: any) => {\n return {\n label: this.config.getTranslation(key),\n value: key\n };\n });\n }\n\n generateOperatorOptions() {\n this.operatorOptions = [\n {\n label: this.config.getTranslation(TranslationKeys.MATCH_ALL),\n value: FilterOperator.AND\n },\n {\n label: this.config.getTranslation(TranslationKeys.MATCH_ANY),\n value: FilterOperator.OR\n }\n ];\n }\n\n ngAfterContentInit() {\n (this._templates as QueryList<PrimeTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'filter':\n this.filterTemplate = item.template;\n break;\n\n case 'footer':\n this.footerTemplate = item.template;\n break;\n\n case 'filtericon':\n this.filterIconTemplate = item.template;\n break;\n\n case 'clearfiltericon':\n this.clearFilterIconTemplate = item.template;\n break;\n\n case 'removeruleicon':\n this.removeRuleIconTemplate = item.template;\n break;\n\n case 'addruleicon':\n this.addRuleIconTemplate = item.template;\n break;\n\n default:\n this.filterTemplate = item.template;\n break;\n }\n });\n }\n\n initFieldFilterConstraint() {\n let defaultMatchMode = this.getDefaultMatchMode();\n this.dt.filters[<string>this.field] =\n this.display == 'row'\n ? { value: null, matchMode: defaultMatchMode }\n : [\n {\n value: null,\n matchMode: defaultMatchMode,\n operator: this.operator\n }\n ];\n }\n\n onMenuMatchModeChange(value: any, filterMeta: FilterMetadata) {\n filterMeta.matchMode = value;\n\n if (!this.showApplyButton) {\n this.dt._filter();\n }\n }\n\n onRowMatchModeChange(matchMode: string) {\n const fieldFilter = <FilterMetadata>this.dt.filters[<string>this.field];\n fieldFilter.matchMode = matchMode;\n\n if (fieldFilter.value) {\n this.dt._filter();\n }\n\n this.hide();\n }\n\n onRowMatchModeKeyDown(event: KeyboardEvent) {\n let item = <HTMLLIElement>event.target;\n\n switch (event.key) {\n case 'ArrowDown':\n var nextItem = this.findNextItem(item);\n if (nextItem) {\n item.removeAttribute('tabindex');\n nextItem.tabIndex = '0';\n nextItem.focus();\n }\n\n event.preventDefault();\n break;\n\n case 'ArrowUp':\n var prevItem = this.findPrevItem(item);\n if (prevItem) {\n item.removeAttribute('tabindex');\n prevItem.tabIndex = '0';\n prevItem.focus();\n }\n\n event.preventDefault();\n break;\n }\n }\n\n onRowClearItemClick() {\n this.clearFilter();\n this.hide();\n }\n\n isRowMatchModeSelected(matchMode: string) {\n return (<FilterMetadata>this.dt.filters[<string>this.field]).matchMode === matchMode;\n }\n\n addConstraint() {\n (<FilterMetadata[]>this.dt.filters[<string>this.field]).push({\n value: null,\n matchMode: this.getDefaultMatchMode(),\n operator: this.getDefaultOperator()\n });\n DomHandler.focus(this.clearButtonViewChild.nativeElement);\n }\n\n removeConstraint(filterMeta: FilterMetadata) {\n this.dt.filters[<string>this.field] = (<FilterMetadata[]>this.dt.filters[<string>this.field]).filter((meta) => meta !== filterMeta);\n if (!this.showApplyButton) {\n this.dt._filter();\n }\n DomHandler.focus(this.clearButtonViewChild.nativeElement);\n }\n\n onOperatorChange(value: any) {\n (<FilterMetadata[]>this.dt.filters[<string>this.field]).forEach((filterMeta) => {\n filterMeta.operator = value;\n this.operator = value;\n });\n\n if (!this.showApplyButton) {\n this.dt._filter();\n }\n }\n\n toggleMenu(event: Event) {\n this.overlayVisible = !this.overlayVisible;\n event.stopPropagation();\n }\n\n onToggleButtonKeyDown(event: KeyboardEvent) {\n switch (event.key) {\n case 'Escape':\n case 'Tab':\n this.overlayVisible = false;\n break;\n\n case 'ArrowDown':\n if (this.overlayVisible) {\n let focusable = DomHandler.getFocusableElements(<HTMLElement>this.overlay);\n if (focusable) {\n focusable[0].focus();\n }\n event.preventDefault();\n } else if (event.altKey) {\n this.overlayVisible = true;\n event.preventDefault();\n }\n break;\n case 'Enter':\n this.toggleMenu(event);\n event.preventDefault();\n break;\n }\n }\n\n onEscape() {\n this.overlayVisible = false;\n this.icon?.nativeElement.focus();\n }\n\n findNextItem(item: HTMLLIElement): any {\n let nextItem = <HTMLLIElement>item.nextElementSibling;\n\n if (nextItem) return DomHandler.hasClass(nextItem, 'p-datatable-filter-constraint-separator') ? this.findNextItem(nextItem) : nextItem;\n else return item.parentElement?.firstElementChild;\n }\n\n findPrevItem(item: HTMLLIElement): any {\n let prevItem = <HTMLLIElement>item.previousElementSibling;\n\n if (prevItem) return DomHandler.hasClass(prevItem, 'p-datatable-filter-constraint-separator') ? this.findPrevItem(prevItem) : prevItem;\n else return item.parentElement?.lastElementChild;\n }\n\n onContentClick() {\n this.selfClick = true;\n }\n\n onOverlayAnimationStart(event: AnimationEvent) {\n switch (event.toState) {\n case 'visible':\n this.overlay = event.element;\n this.renderer.appendChild(this.document.body, this.overlay);\n ZIndexUtils.set('overlay', this.overlay, this.config.zIndex.overlay);\n DomHandler.absolutePosition(this.overlay, this.icon?.nativeElement);\n this.bindDocumentClickListener();\n this.bindDocumentResizeListener();\n this.bindScrollListener();\n\n this.overlayEventListener = (e: any) => {\n if (this.overlay && this.overlay.contains(e.target)) {\n this.selfClick = true;\n }\n };\n\n this.overlaySubscription = this.overlayService.clickObservable.subscribe(this.overlayEventListener);\n this.onShow.emit({ originalEvent: event });\n break;\n\n case 'void':\n this.onOverlayHide();\n\n if (this.overlaySubscription) {\n this.overlaySubscription.unsubscribe();\n }\n break;\n }\n }\n\n onOverlayAnimationEnd(event: AnimationEvent) {\n switch (event.toState) {\n case 'visible':\n this.focusOnFirstElement();\n break;\n case 'void':\n ZIndexUtils.clear(event.element);\n this.onHide.emit({ originalEvent: event });\n break;\n }\n }\n\n focusOnFirstElement() {\n if (this.overlay) {\n DomHandler.focus(DomHandler.getFirstFocusableElement(this.overlay, ''));\n }\n }\n\n getDefaultMatchMode(): string {\n if (this.matchMode) {\n return this.matchMode;\n } else {\n if (this.type === 'text') return FilterMatchMode.STARTS_WITH;\n else if (this.type === 'numeric') return FilterMatchMode.EQUALS;\n else if (this.type === 'date') return FilterMatchMode.DATE_IS;\n else return FilterMatchMode.CONTAINS;\n }\n }\n\n getDefaultOperator(): string | undefined {\n return this.dt.filters ? (<FilterMetadata[]>this.dt.filters[<string>(<string>this.field)])[0].operator : this.operator;\n }\n\n hasRowFilter() {\n return this.dt.filters[<string>this.field] && !this.dt.isFilterBlank((<FilterMetadata>this.dt.filters[<string>this.field]).value);\n }\n\n get hasFilter(): boolean {\n let fieldFilter = this.dt.filters[<string>this.field];\n if (fieldFilter) {\n if (Array.isArray(fieldFilter)) return !this.dt.isFilterBlank((<FilterMetadata[]>fieldFilter)[0].value);\n else return !this.dt.isFilterBlank(fieldFilter.value);\n }\n\n return false;\n }\n\n isOutsideClicked(event: any): boolean {\n return !(\n DomHandler.hasClass(this.overlay?.nextElementSibling, 'p-overlay') ||\n DomHandler.hasClass(this.overlay?.nextElementSibling, 'p-popover') ||\n this.overlay?.isSameNode(event.target) ||\n this.overlay?.contains(event.target) ||\n this.icon?.nativeElement.isSameNode(event.target) ||\n this.icon?.nativeElement.contains(event.target) ||\n DomHandler.hasClass(event.target, 'p-datatable-filter-add-rule-button') ||\n DomHandler.hasClass(event.target.parentElement, 'p-datatable-filter-add-rule-button') ||\n DomHandler.hasClass(event.target, 'p-datatable-filter-remove-rule-button') ||\n DomHandler.hasClass(event.target.parentElement, 'p-datatable-filter-remove-rule-button')\n );\n }\n\n bindDocumentClickListener() {\n if (!this.documentClickListener) {\n const documentTarget: any = this.el ? this.el.nativeElement.ownerDocument : 'document';\n\n this.documentClickListener = this.renderer.listen(documentTarget, 'mousedown', (event) => {\n const dialogElements = document.querySelectorAll('[role=\"dialog\"]');\n const targetIsColumnFilterMenuButton = event.target.closest('.p-datatable-column-filter-button');\n if (this.overlayVisible && this.isOutsideClicked(event) && (targetIsColumnFilterMenuButton || dialogElements?.length <= 1)) {\n this.hide();\n }\n\n this.selfClick = false;\n });\n }\n }\n\n unbindDocumentClickListener() {\n if (this.documentClickListener) {\n this.documentClickListener();\n this.documentClickListener = null;\n this.selfClick = false;\n }\n }\n\n bindDocumentResizeListener() {\n if (!this.documentResizeListener) {\n this.documentResizeListener = this.renderer.listen(this.document.defaultView, 'resize', (event) => {\n if (this.overlayVisible && !DomHandler.isTouchDevice()) {\n this.hide();\n }\n });\n }\n }\n\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n this.documentResizeListener();\n this.documentResizeListener = null;\n }\n }\n\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.icon?.nativeElement, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n\n hide() {\n this.overlayVisible = false;\n this.cd.markForCheck();\n }\n\n onOverlayHide() {\n this.unbindDocumentClickListener();\n this.unbindDocumentResizeListener();\n this.unbindScrollListener();\n this.overlay = null;\n }\n\n clearFilter() {\n this.initFieldFilterConstraint();\n this.dt._filter();\n if (this.hideOnClear) this.hide();\n }\n\n applyFilter() {\n this.dt._filter();\n this.hide();\n }\n\n ngOnDestroy() {\n if (this.overlay) {\n this.renderer.appendChild(this.el.nativeElement, this.overlay);\n ZIndexUtils.clear(this.overlay);\n this.onOverlayHide();\n }\n\n if (this.translationSubscription) {\n this.translationSubscription.unsubscribe();\n }\n\n if (this.resetSubscription) {\n this.resetSubscription.unsubscribe();\n }\n\n if (this.overlaySubscription) {\n this.overlaySubscription.unsubscribe();\n }\n\n super.ngOnDestroy();\n }\n}\n\n@Component({\n selector: 'p-columnFilterFormElement',\n template: `\n <ng-container *ngIf=\"filterTemplate; else builtInElement\">\n <ng-container\n *ngTemplateOutlet=\"\n filterTemplate;\n context: {\n $implicit: filterConstraint.value,\n filterCallback: filterCallback,\n type: type,\n field: field,\n filterConstraint: filterConstraint,\n placeholder: placeholder,\n minFractionDigits: minFractionDigits,\n maxFractionDigits: maxFractionDigits,\n prefix: prefix,\n suffix: suffix,\n locale: locale,\n localeMatcher: localeMatcher,\n currency: currency,\n currencyDisplay: currencyDisplay,\n useGrouping: useGrouping,\n showButtons: showButtons\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #builtInElement>\n <ng-container [ngSwitch]=\"type\">\n <input\n *ngSwitchCase=\"'text'\"\n type=\"text\"\n [ariaLabel]=\"ariaLabel\"\n pInputText\n [value]=\"filterConstraint?.value\"\n (input)=\"onModelChange($event.target.value)\"\n (keydown.enter)=\"onTextInputEnterKeyDown($event)\"\n [attr.placeholder]=\"placeholder\"\n />\n <p-inputNumber\n *ngSwitchCase=\"'numeric'\"\n [ngModel]=\"filterConstraint?.value\"\n (ngModelChange)=\"onModelChange($event)\"\n (onKeyDown)=\"onNumericInputKeyDown($event)\"\n [showButtons]=\"showButtons\"\n [minFractionDigits]=\"minFractionDigits\"\n [maxFractionDigits]=\"maxFractionDigits\"\n [ariaLabel]=\"ariaLabel\"\n [prefix]=\"prefix\"\n [suffix]=\"suffix\"\n [placeholder]=\"placeholder\"\n [mode]=\"currency ? 'currency' : 'decimal'\"\n [locale]=\"locale\"\n [localeMatcher]=\"localeMatcher\"\n [currency]=\"currency\"\n [currencyDisplay]=\"currencyDisplay\"\n [useGrouping]=\"useGrouping\"\n ></p-inputNumber>\n <p-checkbox [indeterminate]=\"true\" [binary]=\"true\" *ngSwitchCase=\"'boolean'\" [ngModel]=\"filterConstraint?.value\" (ngModelChange)=\"onModelChange($event)\" />\n\n <p-calendar [ariaLabel]=\"ariaLabel\" *ngSwitchCase=\"'date'\" [placeholder]=\"placeholder\" [ngModel]=\"filterConstraint?.value\" (ngModelChange)=\"onModelChange($event)\" appendTo=\"body\"></p-calendar>\n </ng-container>\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class ColumnFilterFormElement implements OnInit {\n @Input() field: string | undefined;\n\n @Input() type: string | undefined;\n\n @Input() filterConstraint: FilterMetadata | undefined;\n\n @Input() filterTemplate: Nullable<TemplateRef<any>>;\n\n @Input() placeholder: string | undefined;\n\n @Input({ transform: (value: unknown) => numberAttribute(value, null) })\n minFractionDigits: number | undefined;\n\n @Input({ transform: (value: unknown) => numberAttribute(value, null) })\n maxFractionDigits: number | undefined;\n\n @Input() prefix: string | undefined;\n\n @Input() suffix: string | undefined;\n\n @Input() locale: string | undefined;\n\n @Input() localeMatcher: string | undefined;\n\n @Input() currency: string | undefined;\n\n @Input() currencyDisplay: string | undefined;\n\n @Input({ transform: booleanAttribute }) useGrouping: boolean = true;\n\n @Input() ariaLabel: string | undefined;\n\n get showButtons(): boolean {\n return this.colFilter.showButtons;\n }\n\n filterCallback: any;\n\n constructor(\n public dt: Table,\n private colFilter: ColumnFilter\n ) {}\n\n ngOnInit() {\n this.filterCallback = (value: any) => {\n (<any>this.filterConstraint).value = value;\n this.dt._filter();\n };\n }\n\n onModelChange(value: any) {\n (<any>this.filterConstraint).value = value;\n\n if (this.type === 'date' || this.type === 'boolean' || value === '') {\n this.dt._filter();\n }\n }\n\n onTextInputEnterKeyDown(event: KeyboardEvent) {\n this.dt._filter();\n event.preventDefault();\n }\n\n onNumericInputKeyDown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n this.dt._filter();\n event.preventDefault();\n }\n }\n}\n\n@NgModule({\n imports: [\n CommonModule,\n PaginatorModule,\n InputTextModule,\n SelectModule,\n FormsModule,\n ButtonModule,\n SelectButtonModule,\n CalendarModule,\n InputNumberModule,\n CheckboxModule,\n ScrollerModule,\n ArrowDownIcon,\n ArrowUpIcon,\n SpinnerIcon,\n SortAltIcon,\n SortAmountUpAltIcon,\n SortAmountDownIcon,\n CheckIcon,\n FilterIcon,\n FilterSlashIcon,\n PlusIcon,\n TrashIcon,\n RadioButtonModule\n ],\n exports: [\n Table,\n SharedModule,\n SortableColumn,\n FrozenColumn,\n RowGroupHeader,\n SelectableRow,\n RowToggler,\n ContextMenuRow,\n ResizableColumn,\n ReorderableColumn,\n EditableColumn,\n CellEditor,\n SortIcon,\n TableRadioButton,\n TableCheckbox,\n TableHeaderCheckbox,\n ReorderableRowHandle,\n ReorderableRow,\n SelectableRowDblClick,\n EditableRow,\n InitEditableRow,\n SaveEditableRow,\n CancelEditableRow,\n ColumnFilter,\n ColumnFilterFormElement,\n ScrollerModule\n ],\n declarations: [\n Table,\n SortableColumn,\n FrozenColumn,\n RowGroupHeader,\n SelectableRow,\n RowToggler,\n ContextMenuRow,\n ResizableColumn,\n ReorderableColumn,\n EditableColumn,\n CellEditor,\n TableBody,\n SortIcon,\n TableRadioButton,\n TableCheckbox,\n TableHeaderCheckbox,\n ReorderableRowHandle,\n ReorderableRow,\n SelectableRowDblClick,\n EditableRow,\n InitEditableRow,\n SaveEditableRow,\n CancelEditableRow,\n ColumnFilter,\n ColumnFilterFormElement\n ],\n providers: [TableStyle]\n})\nexport class TableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primeng-table.mjs","sources":["../../src/table/style/tablestyle.ts","../../src/table/table.ts","../../src/table/primeng-table.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-datatable {\n position: relative;\n}\n\n.p-datatable-table {\n border-spacing: 0;\n border-collapse: separate;\n width: 100%;\n}\n\n.p-datatable-scrollable > .p-datatable-table-container {\n position: relative;\n}\n/* For PrimeNG */\n.p-datatable-scrollable-table > .p-datatable-thead {\n top: 0;\n z-index: 2;\n}\n/* For PrimeNG */\n.p-datatable-scrollable-table > .p-datatable-frozen-tbody {\n position: sticky;\n z-index: 2;\n}\n/* For PrimeNG */\n.p-datatable-scrollable-table > .p-datatable-frozen-tbody:last-child {\n z-index: 1;\n}\n\n.p-datatable-scrollable-table > .p-datatable-tfoot {\n bottom: 0;\n z-index: 1;\n}\n\n.p-datatable-scrollable .p-datatable-frozen-column {\n position: sticky;\n background: ${dt('datatable.header.cell.background')};\n}\n\n.p-datatable-scrollable th.p-datatable-frozen-column {\n z-index: 1;\n}\n\n.p-datatable-scrollable > .p-datatable-table-container > .p-datatable-table > .p-datatable-thead,\n.p-datatable-scrollable > .p-datatable-table-container > .p-virtualscroller > .p-datatable-table > .p-datatable-thead {\n background: ${dt('datatable.header.cell.background')};\n}\n\n.p-datatable-scrollable > .p-datatable-table-container > .p-datatable-table > .p-datatable-tfoot,\n.p-datatable-scrollable > .p-datatable-table-container > .p-virtualscroller > .p-datatable-table > .p-datatable-tfoot {\n background: ${dt('datatable.footer.cell.background')};\n}\n\n.p-datatable-flex-scrollable {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.p-datatable-flex-scrollable > .p-datatable-table-container {\n display: flex;\n flex-direction: column;\n flex: 1;\n height: 100%;\n}\n\n.p-datatable-scrollable-table > .p-datatable-tbody > .p-datatable-row-group-header {\n position: sticky;\n z-index: 1;\n}\n\n.p-datatable-resizable-table > .p-datatable-thead > tr > th,\n.p-datatable-resizable-table > .p-datatable-tfoot > tr > td,\n.p-datatable-resizable-table > .p-datatable-tbody > tr > td {\n overflow: hidden;\n white-space: nowrap;\n}\n\n.p-datatable-resizable-table > .p-datatable-thead > tr > th.p-datatable-resizable-column:not(.p-datatable-frozen-column) {\n background-clip: padding-box;\n position: relative;\n}\n\n.p-datatable-resizable-table-fit > .p-datatable-thead > tr > th.p-datatable-resizable-column:last-child .p-datatable-column-resizer {\n display: none;\n}\n\n.p-datatable-column-resizer {\n display: block;\n position: absolute;\n top: 0;\n inset-inline-end: 0;\n margin: 0;\n width: ${dt('datatable.column.resizer.width')};\n height: 100%;\n padding: 0px;\n cursor: col-resize;\n border: 1px solid transparent;\n}\n\n/*\n.p-datatable-column-header-content {\n display: flex;\n align-items: center;\n gap: ${dt('datatable.header.cell.gap')};\n}\n.p-datatable-thead > tr > th {\n display: flex;\n align-items: center;\n gap: ${dt('datatable.header.cell.gap')};\n}\n*/\n\n.p-datatable-column-resize-indicator {\n width: ${dt('datatable.resize.indicator.width')};\n position: absolute;\n z-index: 10;\n display: none;\n background: ${dt('datatable.resize.indicator.color')};\n}\n\n.p-datatable-row-reorder-indicator-up,\n.p-datatable-row-reorder-indicator-down {\n position: absolute;\n display: none;\n}\n\n.p-datatable-reorderable-column,\n.p-datatable-reorderable-row-handle {\n cursor: move;\n}\n\n.p-datatable-mask {\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 3;\n}\n\n.p-datatable-inline-filter {\n display: flex;\n align-items: center;\n width: 100%;\n gap: ${dt('datatable.filter.inline.gap')};\n}\n\n.p-datatable-inline-filter .p-datatable-filter-element-container {\n flex: 1 1 auto;\n width: 1%;\n}\n\n.p-datatable-filter-overlay {\n position: absolute;\n background: ${dt('datatable.filter.overlay.select.background')};\n color: ${dt('datatable.filter.overlay.select.color')};\n border: 1px solid ${dt('datatable.filter.overlay.select.border.color')};\n border-radius: ${dt('datatable.filter.overlay.select.border.radius')};\n box-shadow: ${dt('datatable.filter.overlay.select.shadow')};\n min-width: 12.5rem;\n}\n\n.p-datatable-filter-constraint-list {\n margin: 0;\n list-style: none;\n display: flex;\n flex-direction: column;\n padding: ${dt('datatable.filter.constraint.list.padding')};\n gap: ${dt('datatable.filter.constraint.list.gap')};\n}\n\n.p-datatable-filter-constraint {\n padding: ${dt('datatable.filter.constraint.padding')};\n color: ${dt('datatable.filter.constraint.color')};\n border-radius: ${dt('datatable.filter.constraint.border.radius')};\n cursor: pointer;\n transition: background ${dt('datatable.transition.duration')}, color ${dt('datatable.transition.duration')}, border-color ${dt('datatable.transition.duration')},\n box-shadow ${dt('datatable.transition.duration')};\n}\n\n.p-datatable-filter-constraint-selected {\n background: ${dt('datatable.filter.constraint.selected.background')};\n color: ${dt('datatable.filter.constraint.selected.color')};\n}\n\n.p-datatable-filter-constraint:not(.p-datatable-filter-constraint-selected):not(.p-disabled):hover {\n background: ${dt('datatable.filter.constraint.focus.background')};\n color: ${dt('datatable.filter.constraint.focus.color')};\n}\n\n.p-datatable-filter-constraint:focus-visible {\n outline: 0 none;\n background: ${dt('datatable.filter.constraint.focus.background')};\n color: ${dt('datatable.filter.constraint.focus.color')};\n}\n\n.p-datatable-filter-constraint-selected:focus-visible {\n outline: 0 none;\n background: ${dt('datatable.filter.constraint.selected.focus.background')};\n color: ${dt('datatable.filter.constraint.selected.focus.color')};\n}\n\n.p-datatable-filter-constraint-separator {\n border-top: 1px solid ${dt('datatable.filter.constraint.separator.border.color')};\n}\n\n.p-datatable-popover-filter {\n display: inline-flex;\n margin-inline-start: auto;\n}\n\n.p-datatable-filter-overlay-popover {\n background: ${dt('datatable.filter.overlay.popover.background')};\n color: ${dt('datatable.filter.overlay.popover.color')};\n border: 1px solid ${dt('datatable.filter.overlay.popover.border.color')};\n border-radius: ${dt('datatable.filter.overlay.popover.border.radius')};\n box-shadow: ${dt('datatable.filter.overlay.popover.shadow')};\n min-width: 12.5rem;\n padding: ${dt('datatable.filter.overlay.popover.padding')};\n display: flex;\n flex-direction: column;\n gap: ${dt('datatable.filter.overlay.popover.gap')};\n}\n\n.p-datatable-filter-operator-dropdown, .p-datatable-filter-constraint-dropdown {\n width: 100%;\n}\n\n.p-datatable-filter-rule-list,\n.p-datatable-filter-rule {\n display: flex;\n flex-direction: column;\n gap: ${dt('datatable.filter.overlay.popover.gap')};\n}\n\n.p-datatable-filter-rule {\n border-bottom: 1px solid ${dt('datatable.filter.rule.border.color')};\n}\n\n.p-datatable-filter-rule:last-child {\n border-bottom: 0 none;\n}\n\n.p-datatable-filter-add-rule-button, .p-datatable-filter-remove-rule-button {\n width: 100%;\n}\n\n.p-datatable-filter-remove-button {\n width: 100%;\n}\n\n.p-datatable-filter-buttonbar {\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.p-datatable-virtualscroller-spacer {\n display: flex;\n}\n\n.p-datatable .p-virtualscroller .p-virtualscroller-loading {\n transform: none !important;\n min-height: 0;\n position: sticky;\n top: 0;\n inset-inline-start: 0;\n}\n\n.p-datatable-paginator-top {\n border-color: ${dt('datatable.paginator.top.border.color')};\n border-style: solid;\n border-width: ${dt('datatable.paginator.top.border.width')};\n}\n\n.p-datatable-paginator-bottom {\n border-color: ${dt('datatable.paginator.bottom.border.color')};\n border-style: solid;\n border-width: ${dt('datatable.paginator.bottom.border.width')};\n}\n\n.p-datatable-header {\n background: ${dt('datatable.header.background')};\n color: ${dt('datatable.header.color')};\n border-color: ${dt('datatable.header.border.color')};\n border-style: solid;\n border-width: ${dt('datatable.header.border.width')};\n padding: ${dt('datatable.header.padding')};\n}\n\n.p-datatable-footer {\n background: ${dt('datatable.footer.background')};\n color: ${dt('datatable.footer.color')};\n border-color: ${dt('datatable.footer.border.color')};\n border-style: solid;\n border-width: ${dt('datatable.footer.border.width')};\n padding: ${dt('datatable.footer.padding')};\n}\n\n.p-datatable-thead > tr > th {\n padding: ${dt('datatable.header.cell.padding')};\n background: ${dt('datatable.header.cell.background')};\n border-color: ${dt('datatable.header.cell.border.color')};\n border-style: solid;\n border-width: 0 0 1px 0;\n color: ${dt('datatable.header.cell.color')};\n font-weight: ${dt('datatable.column.title.font.weight')};\n text-align: start;\n transition: background ${dt('datatable.transition.duration')}, color ${dt('datatable.transition.duration')}, border-color ${dt('datatable.transition.duration')},\n outline-color ${dt('datatable.transition.duration')}, box-shadow ${dt('datatable.transition.duration')};\n}\n\n/** For PrimeNG **/\n.p-datatable-thead > tr > th p-columnfilter {\n font-weight: normal;\n}\n/** For PrimeNG End **/\n\n/*\n.p-datatable-column-title {\n font-weight: ${dt('datatable.column.title.font.weight')};\n}\n*/\n\n.p-datatable-tbody > tr {\n outline-color: transparent;\n background: ${dt('datatable.row.background')};\n color: ${dt('datatable.row.color')};\n transition: background ${dt('datatable.transition.duration')}, color ${dt('datatable.transition.duration')}, border-color ${dt('datatable.transition.duration')},\n outline-color ${dt('datatable.transition.duration')}, box-shadow ${dt('datatable.transition.duration')};\n}\n\n.p-datatable-tbody > tr > td {\n text-align: start;\n border-color: ${dt('datatable.body.cell.border.color')};\n border-style: solid;\n border-width: 0 0 1px 0;\n padding: ${dt('datatable.body.cell.padding')};\n}\n\n.p-datatable-hoverable .p-datatable-tbody > tr:not(.p-datatable-row-selected):hover {\n background: ${dt('datatable.row.hover.background')};\n color: ${dt('datatable.row.hover.color')};\n}\n\n.p-datatable-tbody > tr.p-datatable-row-selected {\n background: ${dt('datatable.row.selected.background')};\n color: ${dt('datatable.row.selected.color')};\n}\n\n.p-datatable-tbody > tr:has(+ .p-datatable-row-selected) > td {\n border-bottom-color: ${dt('datatable.body.cell.selected.border.color')};\n}\n\n.p-datatable-tbody > tr.p-datatable-row-selected > td {\n border-bottom-color: ${dt('datatable.body.cell.selected.border.color')};\n}\n\n.p-datatable-tbody > tr:focus-visible,\n.p-datatable-tbody > tr.p-datatable-contextmenu-row-selected {\n box-shadow: ${dt('datatable.row.focus.ring.shadow')};\n outline: ${dt('datatable.row.focus.ring.width')} ${dt('datatable.row.focus.ring.style')} ${dt('datatable.row.focus.ring.color')};\n outline-offset: ${dt('datatable.row.focus.ring.offset')};\n}\n\n.p-datatable-tfoot > tr > td {\n text-align: start;\n padding: ${dt('datatable.footer.cell.padding')};\n border-color: ${dt('datatable.footer.cell.border.color')};\n border-style: solid;\n border-width: 0 0 1px 0;\n color: ${dt('datatable.footer.cell.color')};\n background: ${dt('datatable.footer.cell.background')};\n}\n\n.p-datatable-column-footer {\n font-weight: ${dt('datatable.column.footer.font.weight')};\n}\n\n.p-datatable-sortable-column {\n cursor: pointer;\n user-select: none;\n outline-color: transparent;\n}\n\n.p-datatable-thead > tr > th,\n.p-datatable-sort-icon,\n.p-datatable-sort-badge {\n vertical-align: middle;\n}\n\n.p-datatable-sort-icon {\n color: ${dt('datatable.sort.icon.color')};\n transition: color ${dt('datatable.transition.duration')};\n}\n\n.p-datatable-sortable-column:not(.p-datatable-column-sorted):hover {\n background: ${dt('datatable.header.cell.hover.background')};\n color: ${dt('datatable.header.cell.hover.color')};\n}\n\n.p-datatable-sortable-column:not(.p-datatable-column-sorted):hover .p-datatable-sort-icon {\n color: ${dt('datatable.sort.icon.hover.color')};\n}\n\n.p-datatable-thead > tr > th.p-datatable-column-sorted {\n background: ${dt('datatable.header.cell.selected.background')};\n color: ${dt('datatable.header.cell.selected.color')};\n}\n\n.p-datatable-thead > tr > th.p-datatable-column-sorted .p-datatable-sort-icon {\n color: ${dt('datatable.header.cell.selected.color')};\n}\n\n.p-datatable-sortable-column:focus-visible {\n box-shadow: ${dt('datatable.header.cell.focus.ring.shadow')};\n outline: ${dt('datatable.header.cell.focus.ring.width')} ${dt('datatable.header.cell.focus.ring.style')} ${dt('datatable.header.cell.focus.ring.color')};\n outline-offset: ${dt('datatable.header.cell.focus.ring.offset')};\n}\n\n.p-datatable-hoverable .p-datatable-selectable-row {\n cursor: pointer;\n}\n\n.p-datatable-tbody > tr.p-datatable-dragpoint-top > td {\n box-shadow: inset 0 2px 0 0 ${dt('datatable.drop.point.color')};\n}\n\n.p-datatable-tbody > tr.p-datatable-dragpoint-bottom > td {\n box-shadow: inset 0 -2px 0 0 ${dt('datatable.drop.point.color')};\n}\n\n.p-datatable-loading-icon {\n font-size: ${dt('datatable.loading.icon.size')};\n width: ${dt('datatable.loading.icon.size')};\n height: ${dt('datatable.loading.icon.size')};\n}\n\n.p-datatable-gridlines .p-datatable-header {\n border-width: 1px 1px 0 1px;\n}\n\n.p-datatable-gridlines .p-datatable-footer {\n border-width: 0 1px 1px 1px;\n}\n\n.p-datatable-gridlines .p-datatable-paginator-top {\n border-width: 1px 1px 0 1px;\n}\n\n.p-datatable-gridlines .p-datatable-paginator-bottom {\n border-width: 0 1px 1px 1px;\n}\n\n.p-datatable-gridlines .p-datatable-thead > tr > th {\n border-width: 1px 0 1px 1px;\n}\n\n.p-datatable-gridlines .p-datatable-thead > tr > th:last-child {\n border-width: 1px;\n}\n\n.p-datatable-gridlines .p-datatable-tbody > tr > td {\n border-width: 1px 0 0 1px;\n}\n\n.p-datatable-gridlines .p-datatable-tbody > tr > td:last-child {\n border-width: 1px 1px 0 1px;\n}\n\np-datatable-gridlines .p-datatable-tbody > tr:last-child > td {\n border-width: 1px 0 1px 1px;\n}\n\n.p-datatable-gridlines .p-datatable-tbody > tr:last-child > td:last-child {\n border-width: 1px;\n}\n\n.p-datatable-gridlines .p-datatable-tfoot > tr > td {\n border-width: 1px 0 1px 1px;\n}\n\n.p-datatable-gridlines .p-datatable-tfoot > tr > td:last-child {\n border-width: 1px 1px 1px 1px;\n}\n\n.p-datatable.p-datatable-gridlines .p-datatable-thead + .p-datatable-tfoot > tr > td {\n border-width: 0 0 1px 1px;\n}\n\n.p-datatable.p-datatable-gridlines .p-datatable-thead + .p-datatable-tfoot > tr > td:last-child {\n border-width: 0 1px 1px 1px;\n}\n\n.p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody > tr > td {\n border-width: 0 0 1px 1px;\n}\n\n.p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody > tr > td:last-child {\n border-width: 0 1px 1px 1px;\n}\n\n.p-datatable.p-datatable-gridlines:has(.p-datatable-tbody):has(.p-datatable-tfoot) .p-datatable-tbody > tr:last-child > td {\n border-width: 0 0 0 1px;\n}\n\n.p-datatable.p-datatable-gridlines:has(.p-datatable-tbody):has(.p-datatable-tfoot) .p-datatable-tbody > tr:last-child > td:last-child {\n border-width: 0 1px 0 1px;\n}\n\n.p-datatable.p-datatable-striped .p-datatable-tbody > tr:nth-child(odd) {\n background: ${dt('datatable.row.striped.background')};\n}\n\n.p-datatable.p-datatable-striped .p-datatable-tbody > tr:nth-child(odd).p-datatable-row-selected {\n background: ${dt('datatable.row.selected.background')};\n color: ${dt('datatable.row.selected.color')};\n}\n\n.p-datatable.p-datatable-sm .p-datatable-header {\n padding: 0.375rem 0.5rem;\n}\n\n.p-datatable.p-datatable-sm .p-datatable-thead > tr > th {\n padding: 0.375rem 0.5rem;\n}\n\n.p-datatable.p-datatable-sm .p-datatable-tbody > tr > td {\n padding: 0.375rem 0.5rem;\n}\n\n.p-datatable.p-datatable-sm .p-datatable-tfoot > tr > td {\n padding: 0.375rem 0.5rem;\n}\n\n.p-datatable.p-datatable-sm .p-datatable-footer {\n padding: 0.375rem 0.5rem;\n}\n\n.p-datatable.p-datatable-lg .p-datatable-header {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-datatable.p-datatable-lg .p-datatable-thead > tr > th {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-datatable.p-datatable-lg .p-datatable-tbody>tr>td {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-datatable.p-datatable-lg .p-datatable-tfoot>tr>td {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-datatable.p-datatable-lg .p-datatable-footer {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-datatable-row-toggle-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n width: ${dt('datatable.row.toggle.button.size')};\n height: ${dt('datatable.row.toggle.button.size')};\n color: ${dt('datatable.row.toggle.button.color')};\n border: 0 none;\n background: transparent;\n cursor: pointer;\n border-radius: ${dt('datatable.row.toggle.button.border.radius')};\n transition: background ${dt('datatable.transition.duration')}, color ${dt('datatable.transition.duration')}, border-color ${dt('datatable.transition.duration')},\n outline-color ${dt('datatable.transition.duration')}, box-shadow ${dt('datatable.transition.duration')};\n outline-color: transparent;\n user-select: none;\n}\n\n.p-datatable-row-toggle-button:enabled:hover {\n color: ${dt('datatable.row.toggle.button.hover.color')};\n background: ${dt('datatable.row.toggle.button.hover.background')};\n}\n\n.p-datatable-tbody > tr.p-datatable-row-selected .p-datatable-row-toggle-button:hover {\n background: ${dt('datatable.row.toggle.button.selected.hover.background')};\n ${dt('datatable.row.toggle.button.selected.hover.color')};\n}\n\n.p-datatable-row-toggle-button:focus-visible {\n box-shadow: ${dt('datatable.row.toggle.button.focus.ring.shadow')};\n outline: ${dt('datatable.row.toggle.button.focus.ring.width')} ${dt('datatable.row.toggle.button.focus.ring.style')} ${dt('datatable.row.toggle.button.focus.ring.color')};\n outline-offset: ${dt('datatable.row.toggle.button.focus.ring.offset')};\n}\n`;\n\nconst classes = {\n root: ({ instance }) => ({\n 'p-datatable p-component': true,\n 'p-datatable-hoverable': instance.rowHover || instance.selectionMode,\n 'p-datatable-resizable': instance.resizableColumns,\n 'p-datatable-resizable-fit': instance.resizableColumns && instance.columnResizeMode === 'fit',\n 'p-datatable-scrollable': instance.scrollable,\n 'p-datatable-flex-scrollable': instance.scrollable && instance.scrollHeight === 'flex',\n 'p-datatable-striped': instance.stripedRows,\n 'p-datatable-gridlines': instance.showGridlines,\n 'p-datatable-sm': instance.size === 'small',\n 'p-datatable-lg': instance.size === 'large'\n }),\n mask: 'p-datatable-mask p-overlay-mask',\n loadingIcon: 'p-datatable-loading-icon',\n header: 'p-datatable-header',\n pcPaginator: ({ instance }) => 'p-datatable-paginator-' + instance.paginatorPosition,\n tableContainer: 'p-datatable-table-container',\n table: ({ instance }) => ({\n 'p-datatable-table': true,\n 'p-datatable-scrollable-table': instance.scrollable,\n 'p-datatable-resizable-table': instance.resizableColumns,\n 'p-datatable-resizable-table-fit': instance.resizableColumns && instance.columnResizeMode === 'fit'\n }),\n thead: 'p-datatable-thead',\n columnResizer: 'p-datatable-column-resizer',\n columnHeaderContent: 'p-datatable-column-header-content',\n columnTitle: 'p-datatable-column-title',\n columnFooter: 'p-datatable-column-footer',\n sortIcon: 'p-datatable-sort-icon',\n pcSortBadge: 'p-datatable-sort-badge',\n filter: ({ instance }) => ({\n 'p-datatable-filter': true,\n 'p-datatable-inline-filter': instance.display === 'row',\n 'p-datatable-popover-filter': instance.display === 'menu'\n }),\n filterElementContainer: 'p-datatable-filter-element-container',\n pcColumnFilterButton: 'p-datatable-column-filter-button',\n pcColumnFilterClearButton: 'p-datatable-column-filter-clear-button',\n filterOverlay: ({ instance }) => ({\n 'p-datatable-filter-overlay p-component': true,\n 'p-datatable-filter-overlay-popover': instance.display === 'menu'\n }),\n filterConstraintList: 'p-datatable-filter-constraint-list',\n filterConstraint: 'p-datatable-filter-constraint',\n filterConstraintSeparator: 'p-datatable-filter-constraint-separator',\n filterOperator: 'p-datatable-filter-operator',\n pcFilterOperatorDropdown: 'p-datatable-filter-operator-dropdown',\n filterRuleList: 'p-datatable-filter-rule-list',\n filterRule: 'p-datatable-filter-rule',\n pcFilterConstraintDropdown: 'p-datatable-filter-constraint-dropdown',\n pcFilterRemoveRuleButton: 'p-datatable-filter-remove-rule-button',\n pcFilterAddRuleButton: 'p-datatable-filter-add-rule-button',\n filterButtonbar: 'p-datatable-filter-buttonbar',\n pcFilterClearButton: 'p-datatable-filter-clear-button',\n pcFilterApplyButton: 'p-datatable-filter-apply-button',\n tbody: ({ instance }) => ({\n 'p-datatable-tbody': true,\n 'p-datatable-frozen-tbody': instance.frozenValue || instance.frozenBodyTemplate,\n 'p-virtualscroller-content': instance.virtualScroll\n }),\n rowGroupHeader: 'p-datatable-row-group-header',\n rowToggleButton: 'p-datatable-row-toggle-button',\n rowToggleIcon: 'p-datatable-row-toggle-icon',\n\n rowExpansion: 'p-datatable-row-expansion',\n rowGroupFooter: 'p-datatable-row-group-footer',\n emptyMessage: 'p-datatable-empty-message',\n bodyCell: ({ instance }) => ({\n 'p-datatable-frozen-column': instance.columnProp('frozen')\n }),\n reorderableRowHandle: 'p-datatable-reorderable-row-handle',\n pcRowEditorInit: 'p-datatable-row-editor-init',\n pcRowEditorSave: 'p-datatable-row-editor-save',\n pcRowEditorCancel: 'p-datatable-row-editor-cancel',\n tfoot: 'p-datatable-tfoot',\n footerCell: ({ instance }) => ({\n 'p-datatable-frozen-column': instance.columnProp('frozen')\n }),\n virtualScrollerSpacer: 'p-datatable-virtualscroller-spacer',\n footer: 'p-datatable-tfoot',\n columnResizeIndicator: 'p-datatable-column-resize-indicator',\n rowReorderIndicatorUp: 'p-datatable-row-reorder-indicator-up',\n rowReorderIndicatorDown: 'p-datatable-row-reorder-indicator-down'\n};\n\nconst inlineStyles = {\n tableContainer: ({ instance }) => ({\n 'max-height': instance.virtualScroll ? '' : instance.scrollHeight,\n overflow: 'auto'\n }),\n thead: { position: 'sticky' },\n tfoot: { position: 'sticky' }\n};\n\n@Injectable()\nexport class TableStyle extends BaseStyle {\n name = 'datatable';\n\n theme = theme;\n\n classes = classes;\n\n inlineStyles = inlineStyles;\n}\n\n/**\n *\n * DataTable displays data in tabular format.\n *\n * [Live Demo](https://www.primeng.org/table/)\n *\n * @module tablestyle\n *\n */\nexport enum TableClasses {\n /**\n * Class name of the root element\n */\n root = 'p-datatable',\n /**\n * Class name of the mask element\n */\n mask = 'p-datatable-mask',\n /**\n * Class name of the loading icon element\n */\n loadingIcon = 'p-datatable-loading-icon',\n /**\n * Class name of the header element\n */\n header = 'p-datatable-header',\n /**\n * Class name of the paginator element\n */\n pcPaginator = 'p-datatable-paginator-[position]',\n /**\n * Class name of the table container element\n */\n tableContainer = 'p-datatable-table-container',\n /**\n * Class name of the table element\n */\n table = 'p-datatable-table',\n /**\n * Class name of the thead element\n */\n thead = 'p-datatable-thead',\n /**\n * Class name of the column resizer element\n */\n columnResizer = 'p-datatable-column-resizer',\n /**\n * Class name of the column header content element\n */\n columnHeaderContent = 'p-datatable-column-header-content',\n /**\n * Class name of the column title element\n */\n columnTitle = 'p-datatable-column-title',\n /**\n * Class name of the sort icon element\n */\n sortIcon = 'p-datatable-sort-icon',\n /**\n * Class name of the sort badge element\n */\n pcSortBadge = 'p-datatable-sort-badge',\n /**\n * Class name of the filter element\n */\n filter = 'p-datatable-filter',\n /**\n * Class name of the filter element container element\n */\n filterElementContainer = 'p-datatable-filter-element-container',\n /**\n * Class name of the column filter button element\n */\n pcColumnFilterButton = 'p-datatable-column-filter-button',\n /**\n * Class name of the column filter clear button element\n */\n pcColumnFilterClearButton = 'p-datatable-column-filter-clear-button',\n /**\n * Class name of the filter overlay element\n */\n filterOverlay = 'p-datatable-filter-overlay',\n /**\n * Class name of the filter constraint list element\n */\n filterConstraintList = 'p-datatable-filter-constraint-list',\n /**\n * Class name of the filter constraint element\n */\n filterConstraint = 'p-datatable-filter-constraint',\n /**\n * Class name of the filter constraint separator element\n */\n filterConstraintSeparator = 'p-datatable-filter-constraint-separator',\n /**\n * Class name of the filter operator element\n */\n filterOperator = 'p-datatable-filter-operator',\n /**\n * Class name of the filter operator dropdown element\n */\n pcFilterOperatorDropdown = 'p-datatable-filter-operator-dropdown',\n /**\n * Class name of the filter rule list element\n */\n filterRuleList = 'p-datatable-filter-rule-list',\n /**\n * Class name of the filter rule element\n */\n filterRule = 'p-datatable-filter-rule',\n /**\n * Class name of the filter constraint dropdown element\n */\n pcFilterConstraintDropdown = 'p-datatable-filter-constraint-dropdown',\n /**\n * Class name of the filter remove rule button element\n */\n pcFilterRemoveRuleButton = 'p-datatable-filter-remove-rule-button',\n /**\n * Class name of the filter add rule button element\n */\n pcFilterAddRuleButton = 'p-datatable-filter-add-rule-button',\n /**\n * Class name of the filter buttonbar element\n */\n filterButtonbar = 'p-datatable-filter-buttonbar',\n /**\n * Class name of the filter clear button element\n */\n pcFilterClearButton = 'p-datatable-filter-clear-button',\n /**\n * Class name of the filter apply button element\n */\n pcFilterApplyButton = 'p-datatable-filter-apply-button',\n /**\n * Class name of the tbody element\n */\n tbody = 'p-datatable-tbody',\n /**\n * Class name of the row group header element\n */\n rowGroupHeader = 'p-datatable-row-group-header',\n /**\n * Class name of the row toggle button element\n */\n rowToggleButton = 'p-datatable-row-toggle-button',\n /**\n * Class name of the row toggle icon element\n */\n rowToggleIcon = 'p-datatable-row-toggle-icon',\n /**\n * Class name of the row expansion element\n */\n rowExpansion = 'p-datatable-row-expansion',\n /**\n * Class name of the row group footer element\n */\n rowGroupFooter = 'p-datatable-row-group-footer',\n /**\n * Class name of the empty message element\n */\n emptyMessage = 'p-datatable-empty-message',\n /**\n * Class name of the reorderable row handle element\n */\n reorderableRowHandle = 'p-datatable-reorderable-row-handle',\n /**\n * Class name of the row editor init element\n */\n pcRowEditorInit = 'p-datatable-row-editor-init',\n /**\n * Class name of the row editor save element\n */\n pcRowEditorSave = 'p-datatable-row-editor-save',\n /**\n * Class name of the row editor cancel element\n */\n pcRowEditorCancel = 'p-datatable-row-editor-cancel',\n /**\n * Class name of the tfoot element\n */\n tfoot = 'p-datatable-tfoot',\n /**\n * Class name of the virtual scroller spacer element\n */\n virtualScrollerSpacer = 'p-datatable-virtualscroller-spacer',\n /**\n * Class name of the footer element\n */\n footer = 'p-datatable-footer',\n /**\n * Class name of the column resize indicator element\n */\n columnResizeIndicator = 'p-datatable-column-resize-indicator',\n /**\n * Class name of the row reorder indicator up element\n */\n rowReorderIndicatorUp = 'p-datatable-row-reorder-indicator-up',\n /**\n * Class name of the row reorder indicator down element\n */\n rowReorderIndicatorDown = 'p-datatable-row-reorder-indicator-down'\n}\n","import { animate, AnimationEvent, style, transition, trigger } from '@angular/animations';\nimport { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n inject,\n Inject,\n Injectable,\n Input,\n NgModule,\n NgZone,\n numberAttribute,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n PLATFORM_ID,\n QueryList,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BlockableUI, FilterMatchMode, FilterMetadata, FilterOperator, FilterService, LazyLoadMeta, OverlayService, PrimeTemplate, ScrollerOptions, SelectItem, SharedModule, SortMeta, TableState, TranslationKeys } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Button, ButtonModule } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { ConnectedOverlayScrollHandler, DomHandler } from 'primeng/dom';\nimport { ArrowDownIcon } from 'primeng/icons/arrowdown';\nimport { ArrowUpIcon } from 'primeng/icons/arrowup';\nimport { CheckIcon } from 'primeng/icons/check';\nimport { FilterIcon } from 'primeng/icons/filter';\nimport { FilterSlashIcon } from 'primeng/icons/filterslash';\nimport { PlusIcon } from 'primeng/icons/plus';\nimport { SortAltIcon } from 'primeng/icons/sortalt';\nimport { SortAmountDownIcon } from 'primeng/icons/sortamountdown';\nimport { SortAmountUpAltIcon } from 'primeng/icons/sortamountupalt';\nimport { SpinnerIcon } from 'primeng/icons/spinner';\nimport { TrashIcon } from 'primeng/icons/trash';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { PaginatorModule } from 'primeng/paginator';\nimport { RadioButton, RadioButtonClickEvent, RadioButtonModule } from 'primeng/radiobutton';\nimport { Scroller, ScrollerModule } from 'primeng/scroller';\nimport { SelectModule } from 'primeng/select';\nimport { SelectButtonModule } from 'primeng/selectbutton';\nimport { Nullable, VoidListener } from 'primeng/ts-helpers';\nimport { ObjectUtils, UniqueComponentId, ZIndexUtils } from 'primeng/utils';\nimport { Subject, Subscription } from 'rxjs';\nimport { TableStyle } from './style/tablestyle';\nimport {\n ExportCSVOptions,\n TableColResizeEvent,\n TableColumnReorderEvent,\n TableContextMenuSelectEvent,\n TableEditCancelEvent,\n TableEditCompleteEvent,\n TableEditInitEvent,\n TableFilterButtonPropsOptions,\n TableFilterEvent,\n TableHeaderCheckboxToggleEvent,\n TableLazyLoadEvent,\n TablePageEvent,\n TableRowCollapseEvent,\n TableRowExpandEvent,\n TableRowReorderEvent,\n TableRowSelectEvent,\n TableRowUnSelectEvent,\n TableSelectAllChangeEvent\n} from './table.interface';\n\n@Injectable()\nexport class TableService {\n private sortSource = new Subject<SortMeta | SortMeta[] | null>();\n private selectionSource = new Subject();\n private contextMenuSource = new Subject<any>();\n private valueSource = new Subject<any>();\n private totalRecordsSource = new Subject<any>();\n private columnsSource = new Subject();\n\n sortSource$ = this.sortSource.asObservable();\n selectionSource$ = this.selectionSource.asObservable();\n contextMenuSource$ = this.contextMenuSource.asObservable();\n valueSource$ = this.valueSource.asObservable();\n totalRecordsSource$ = this.totalRecordsSource.asObservable();\n columnsSource$ = this.columnsSource.asObservable();\n\n onSort(sortMeta: SortMeta | SortMeta[] | null) {\n this.sortSource.next(sortMeta);\n }\n\n onSelectionChange() {\n this.selectionSource.next(null);\n }\n\n onContextMenu(data: any) {\n this.contextMenuSource.next(data);\n }\n\n onValueChange(value: any) {\n this.valueSource.next(value);\n }\n\n onTotalRecordsChange(value: number) {\n this.totalRecordsSource.next(value);\n }\n\n onColumnsChange(columns: any[]) {\n this.columnsSource.next(columns);\n }\n}\n/**\n * Table displays data in tabular format.\n * @group Components\n */\n@Component({\n selector: 'p-table',\n standalone: false,\n template: `\n <div #container [ngStyle]=\"style\" [class]=\"styleClass\" [ngClass]=\"cx('root')\" [attr.id]=\"id\">\n <div [ngClass]=\"cx('mask')\" *ngIf=\"loading && showLoader\">\n <i *ngIf=\"loadingIcon\" [class]=\"'p-datatable-loading-icon ' + loadingIcon\"></i>\n <ng-container *ngIf=\"!loadingIcon\">\n <SpinnerIcon *ngIf=\"!loadingIconTemplate && !_loadingIconTemplate\" [spin]=\"true\" [styleClass]=\"cx('loadingIcon')\" />\n <span *ngIf=\"loadingIconTemplate || _loadingIconTemplate\" [ngClass]=\"cx('loadingIcon')\">\n <ng-template *ngTemplateOutlet=\"loadingIconTemplate || _loadingIconTemplate\"></ng-template>\n </span>\n </ng-container>\n </div>\n <div *ngIf=\"captionTemplate || _captionTemplate\" [ngClass]=\"cx('header')\">\n <ng-container *ngTemplateOutlet=\"captionTemplate || _captionTemplate\"></ng-container>\n </div>\n <p-paginator\n [rows]=\"rows\"\n [first]=\"first\"\n [totalRecords]=\"totalRecords\"\n [pageLinkSize]=\"pageLinks\"\n [alwaysShow]=\"alwaysShowPaginator\"\n (onPageChange)=\"onPageChange($event)\"\n [rowsPerPageOptions]=\"rowsPerPageOptions\"\n *ngIf=\"paginator && (paginatorPosition === 'top' || paginatorPosition == 'both')\"\n [templateLeft]=\"paginatorLeftTemplate\"\n [templateRight]=\"paginatorRightTemplate\"\n [dropdownAppendTo]=\"paginatorDropdownAppendTo\"\n [dropdownScrollHeight]=\"paginatorDropdownScrollHeight\"\n [currentPageReportTemplate]=\"currentPageReportTemplate\"\n [showFirstLastIcon]=\"showFirstLastIcon\"\n [dropdownItemTemplate]=\"paginatorDropdownItemTemplate || _paginatorDropdownItemTemplate\"\n [showCurrentPageReport]=\"showCurrentPageReport\"\n [showJumpToPageDropdown]=\"showJumpToPageDropdown\"\n [showJumpToPageInput]=\"showJumpToPageInput\"\n [showPageLinks]=\"showPageLinks\"\n [styleClass]=\"cx('pcPaginator')\"\n [locale]=\"paginatorLocale\"\n >\n <ng-template pTemplate=\"dropdownicon\" *ngIf=\"paginatorDropdownIconTemplate || _paginatorDropdownIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorDropdownIconTemplate || _paginatorDropdownIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"firstpagelinkicon\" *ngIf=\"paginatorFirstPageLinkIconTemplate || _paginatorFirstPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorFirstPageLinkIconTemplate || _paginatorFirstPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"previouspagelinkicon\" *ngIf=\"paginatorPreviousPageLinkIconTemplate || _paginatorPreviousPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorPreviousPageLinkIconTemplate || _paginatorPreviousPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"lastpagelinkicon\" *ngIf=\"paginatorLastPageLinkIconTemplate || _paginatorLastPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorLastPageLinkIconTemplate || _paginatorLastPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"nextpagelinkicon\" *ngIf=\"paginatorNextPageLinkIconTemplate || _paginatorNextPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorNextPageLinkIconTemplate || _paginatorNextPageLinkIconTemplate\"></ng-container>\n </ng-template>\n </p-paginator>\n\n <div #wrapper [ngClass]=\"cx('tableContainer')\" [ngStyle]=\"sx('tableContainer')\">\n <p-scroller\n #scroller\n *ngIf=\"virtualScroll\"\n [items]=\"processedData\"\n [columns]=\"columns\"\n [style]=\"{\n height: scrollHeight !== 'flex' ? scrollHeight : undefined\n }\"\n [scrollHeight]=\"scrollHeight !== 'flex' ? undefined : '100%'\"\n [itemSize]=\"virtualScrollItemSize || _virtualRowHeight\"\n [step]=\"rows\"\n [delay]=\"lazy ? virtualScrollDelay : 0\"\n [inline]=\"true\"\n [lazy]=\"lazy\"\n (onLazyLoad)=\"onLazyItemLoad($event)\"\n [loaderDisabled]=\"true\"\n [showSpacer]=\"false\"\n [showLoader]=\"loadingBodyTemplate || _loadingBodyTemplate\"\n [options]=\"virtualScrollOptions\"\n [autoSize]=\"true\"\n >\n <ng-template #content let-items let-scrollerOptions=\"options\">\n <ng-container\n *ngTemplateOutlet=\"\n buildInTable;\n context: {\n $implicit: items,\n options: scrollerOptions\n }\n \"\n ></ng-container>\n </ng-template>\n </p-scroller>\n <ng-container *ngIf=\"!virtualScroll\">\n <ng-container\n *ngTemplateOutlet=\"\n buildInTable;\n context: {\n $implicit: processedData,\n options: { columns }\n }\n \"\n ></ng-container>\n </ng-container>\n\n <ng-template #buildInTable let-items let-scrollerOptions=\"options\">\n <table #table role=\"table\" [ngClass]=\"cx('table')\" [class]=\"tableStyleClass\" [style]=\"tableStyle\" [attr.id]=\"id + '-table'\">\n <ng-container *ngTemplateOutlet=\"colGroupTemplate || _colGroupTemplate; context: { $implicit: scrollerOptions.columns }\"></ng-container>\n <thead role=\"rowgroup\" #thead [ngClass]=\"cx('thead')\" [ngStyle]=\"sx('thead')\">\n <ng-container\n *ngTemplateOutlet=\"\n headerGroupedTemplate || headerTemplate || _headerTemplate;\n context: {\n $implicit: scrollerOptions.columns\n }\n \"\n ></ng-container>\n </thead>\n <tbody\n role=\"rowgroup\"\n [ngClass]=\"cx('tbody')\"\n *ngIf=\"frozenValue || frozenBodyTemplate || _frozenBodyTemplate\"\n [value]=\"frozenValue\"\n [frozenRows]=\"true\"\n [pTableBody]=\"scrollerOptions.columns\"\n [pTableBodyTemplate]=\"frozenBodyTemplate || _frozenBodyTemplate\"\n [frozen]=\"true\"\n ></tbody>\n <tbody\n role=\"rowgroup\"\n [ngClass]=\"cx('tbody', scrollerOptions.contentStyleClass)\"\n [style]=\"scrollerOptions.contentStyle\"\n [value]=\"dataToRender(scrollerOptions.rows)\"\n [pTableBody]=\"scrollerOptions.columns\"\n [pTableBodyTemplate]=\"bodyTemplate || _bodyTemplate\"\n [scrollerOptions]=\"scrollerOptions\"\n ></tbody>\n <tbody\n role=\"rowgroup\"\n *ngIf=\"scrollerOptions.spacerStyle\"\n [style]=\"'height: calc(' + scrollerOptions.spacerStyle.height + ' - ' + scrollerOptions.rows.length * scrollerOptions.itemSize + 'px);'\"\n [ngClass]=\"cx('virtualScrollerSpacer')\"\n ></tbody>\n <tfoot role=\"rowgroup\" *ngIf=\"footerGroupedTemplate || footerTemplate || _footerTemplate || _footerGroupedTemplate\" #tfoot [ngClass]=\"cx('footer')\">\n <ng-container\n *ngTemplateOutlet=\"\n footerGroupedTemplate || footerTemplate || _footerTemplate || _footerGroupedTemplate;\n context: {\n $implicit: scrollerOptions.columns\n }\n \"\n ></ng-container>\n </tfoot>\n </table>\n </ng-template>\n </div>\n\n <p-paginator\n [rows]=\"rows\"\n [first]=\"first\"\n [totalRecords]=\"totalRecords\"\n [pageLinkSize]=\"pageLinks\"\n [alwaysShow]=\"alwaysShowPaginator\"\n (onPageChange)=\"onPageChange($event)\"\n [rowsPerPageOptions]=\"rowsPerPageOptions\"\n *ngIf=\"paginator && (paginatorPosition === 'bottom' || paginatorPosition == 'both')\"\n [templateLeft]=\"paginatorLeftTemplate || _paginatorLeftTemplate\"\n [templateRight]=\"paginatorRightTemplate || _paginatorRightTemplate\"\n [dropdownAppendTo]=\"paginatorDropdownAppendTo\"\n [dropdownScrollHeight]=\"paginatorDropdownScrollHeight\"\n [currentPageReportTemplate]=\"currentPageReportTemplate\"\n [showFirstLastIcon]=\"showFirstLastIcon\"\n [dropdownItemTemplate]=\"paginatorDropdownItemTemplate || _paginatorDropdownItemTemplate\"\n [showCurrentPageReport]=\"showCurrentPageReport\"\n [showJumpToPageDropdown]=\"showJumpToPageDropdown\"\n [showJumpToPageInput]=\"showJumpToPageInput\"\n [showPageLinks]=\"showPageLinks\"\n [styleClass]=\"cx('pcPaginator')\"\n [locale]=\"paginatorLocale\"\n >\n <ng-template pTemplate=\"dropdownicon\" *ngIf=\"paginatorDropdownIconTemplate || _paginatorDropdownIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorDropdownIconTemplate || _paginatorDropdownIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"firstpagelinkicon\" *ngIf=\"paginatorFirstPageLinkIconTemplate || _paginatorFirstPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorFirstPageLinkIconTemplate || _paginatorFirstPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"previouspagelinkicon\" *ngIf=\"paginatorPreviousPageLinkIconTemplate || _paginatorPreviousPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorPreviousPageLinkIconTemplate || _paginatorPreviousPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"lastpagelinkicon\" *ngIf=\"paginatorLastPageLinkIconTemplate || _paginatorLastPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorLastPageLinkIconTemplate || _paginatorLastPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"nextpagelinkicon\" *ngIf=\"paginatorNextPageLinkIconTemplate || _paginatorNextPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorNextPageLinkIconTemplate || _paginatorNextPageLinkIconTemplate\"></ng-container>\n </ng-template>\n </p-paginator>\n\n <div *ngIf=\"summaryTemplate || _summaryTemplate\" [ngClass]=\"cx('footer')\">\n <ng-container *ngTemplateOutlet=\"summaryTemplate || _summaryTemplate\"></ng-container>\n </div>\n\n <div #resizeHelper [ngClass]=\"cx('columnResizeIndicator')\" style=\"display:none\" *ngIf=\"resizableColumns\"></div>\n <span #reorderIndicatorUp [ngClass]=\"cx('rowReorderIndicatorUp')\" style=\"display: none;\" *ngIf=\"reorderableColumns\">\n <ArrowDownIcon *ngIf=\"!reorderIndicatorUpIconTemplate && !_reorderIndicatorUpIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"reorderIndicatorUpIconTemplate || _reorderIndicatorUpIconTemplate\"></ng-template>\n </span>\n <span #reorderIndicatorDown [ngClass]=\"cx('rowReorderIndicatorDown')\" style=\"display: none;\" *ngIf=\"reorderableColumns\">\n <ArrowUpIcon *ngIf=\"!reorderIndicatorDownIconTemplate && !_reorderIndicatorDownIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"reorderIndicatorDownIconTemplate || _reorderIndicatorDownIconTemplate\"></ng-template>\n </span>\n </div>\n `,\n providers: [TableService, TableStyle],\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None\n})\nexport class Table extends BaseComponent implements OnInit, AfterViewInit, AfterContentInit, BlockableUI, OnChanges {\n /**\n * An array of objects to represent dynamic columns that are frozen.\n * @group Props\n */\n @Input() frozenColumns: any[] | undefined;\n /**\n * An array of objects to display as frozen.\n * @group Props\n */\n @Input() frozenValue: any[] | undefined;\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Inline style of the table.\n * @group Props\n */\n @Input() tableStyle: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the table.\n * @group Props\n */\n @Input() tableStyleClass: string | undefined;\n /**\n * When specified as true, enables the pagination.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) paginator: boolean | undefined;\n /**\n * Number of page links to display in paginator.\n * @group Props\n */\n @Input({ transform: numberAttribute }) pageLinks: number = 5;\n /**\n * Array of integer/object values to display inside rows per page dropdown of paginator\n * @group Props\n */\n @Input() rowsPerPageOptions: any[] | undefined;\n /**\n * Whether to show it even there is only one page.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) alwaysShowPaginator: boolean = true;\n /**\n * Position of the paginator, options are \"top\", \"bottom\" or \"both\".\n * @group Props\n */\n @Input() paginatorPosition: 'top' | 'bottom' | 'both' = 'bottom';\n /**\n * Custom style class for paginator\n * @group Props\n */\n @Input() paginatorStyleClass: string | undefined;\n /**\n * Target element to attach the paginator dropdown overlay, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n * @group Props\n */\n @Input() paginatorDropdownAppendTo: HTMLElement | ElementRef | TemplateRef<any> | string | null | undefined | any;\n /**\n * Paginator dropdown height of the viewport in pixels, a scrollbar is defined if height of list exceeds this value.\n * @group Props\n */\n @Input() paginatorDropdownScrollHeight: string = '200px';\n /**\n * Template of the current page report element. Available placeholders are {currentPage},{totalPages},{rows},{first},{last} and {totalRecords}\n * @group Props\n */\n @Input() currentPageReportTemplate: string = '{currentPage} of {totalPages}';\n /**\n * Whether to display current page report.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showCurrentPageReport: boolean | undefined;\n /**\n * Whether to display a dropdown to navigate to any page.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showJumpToPageDropdown: boolean | undefined;\n /**\n * Whether to display a input to navigate to any page.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showJumpToPageInput: boolean | undefined;\n /**\n * When enabled, icons are displayed on paginator to go first and last page.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showFirstLastIcon: boolean = true;\n /**\n * Whether to show page links.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showPageLinks: boolean = true;\n /**\n * Sort order to use when an unsorted column gets sorted by user interaction.\n * @group Props\n */\n @Input({ transform: numberAttribute }) defaultSortOrder: number = 1;\n /**\n * Defines whether sorting works on single column or on multiple columns.\n * @group Props\n */\n @Input() sortMode: 'single' | 'multiple' = 'single';\n /**\n * When true, resets paginator to first page after sorting. Available only when sortMode is set to single.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) resetPageOnSort: boolean = true;\n /**\n * Specifies the selection mode, valid values are \"single\" and \"multiple\".\n * @group Props\n */\n @Input() selectionMode: 'single' | 'multiple' | undefined | null;\n /**\n * When enabled with paginator and checkbox selection mode, the select all checkbox in the header will select all rows on the current page.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) selectionPageOnly: boolean | undefined;\n /**\n * Selected row with a context menu.\n * @group Props\n */\n @Input() contextMenuSelection: any;\n /**\n * Callback to invoke on context menu selection change.\n * @param {*} object - row data.\n * @group Emits\n */\n @Output() contextMenuSelectionChange: EventEmitter<any> = new EventEmitter();\n /**\n * Defines the behavior of context menu selection, in \"separate\" mode context menu updates contextMenuSelection property whereas in joint mode selection property is used instead so that when row selection is enabled, both row selection and context menu selection use the same property.\n * @group Props\n */\n @Input() contextMenuSelectionMode: string = 'separate';\n /**\n * A property to uniquely identify a record in data.\n * @group Props\n */\n @Input() dataKey: string | undefined;\n /**\n * Defines whether metaKey should be considered for the selection. On touch enabled devices, metaKeySelection is turned off automatically.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) metaKeySelection: boolean | undefined = false;\n /**\n * Defines if the row is selectable.\n * @group Props\n */\n @Input() rowSelectable: (row: { data: any; index: number }) => boolean | undefined;\n /**\n * Function to optimize the dom operations by delegating to ngForTrackBy, default algorithm checks for object identity.\n * @group Props\n */\n @Input() rowTrackBy: Function = (index: number, item: any) => item;\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) lazy: boolean = false;\n /**\n * Whether to call lazy loading on initialization.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) lazyLoadOnInit: boolean = true;\n /**\n * Algorithm to define if a row is selected, valid values are \"equals\" that compares by reference and \"deepEquals\" that compares all fields.\n * @group Props\n */\n @Input() compareSelectionBy: 'equals' | 'deepEquals' = 'deepEquals';\n /**\n * Character to use as the csv separator.\n * @group Props\n */\n @Input() csvSeparator: string = ',';\n /**\n * Name of the exported file.\n * @group Props\n */\n @Input() exportFilename: string = 'download';\n /**\n * An array of FilterMetadata objects to provide external filters.\n * @group Props\n */\n @Input() filters: { [s: string]: FilterMetadata | FilterMetadata[] } = {};\n /**\n * An array of fields as string to use in global filtering.\n * @group Props\n */\n @Input() globalFilterFields: string[] | undefined;\n /**\n * Delay in milliseconds before filtering the data.\n * @group Props\n */\n @Input({ transform: numberAttribute }) filterDelay: number = 300;\n /**\n * Locale to use in filtering. The default locale is the host environment's current locale.\n * @group Props\n */\n @Input() filterLocale: string | undefined;\n /**\n * Map instance to keep the expanded rows where key of the map is the data key of the row.\n * @group Props\n */\n @Input() expandedRowKeys: { [s: string]: boolean } = {};\n /**\n * Map instance to keep the rows being edited where key of the map is the data key of the row.\n * @group Props\n */\n @Input() editingRowKeys: { [s: string]: boolean } = {};\n /**\n * Whether multiple rows can be expanded at any time. Valid values are \"multiple\" and \"single\".\n * @group Props\n */\n @Input() rowExpandMode: 'multiple' | 'single' = 'multiple';\n /**\n * Enables scrollable tables.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) scrollable: boolean | undefined;\n /**\n * Orientation of the scrolling, options are \"vertical\", \"horizontal\" and \"both\".\n * @group Props\n * @deprecated Property is obselete since v14.2.0.\n */\n @Input() scrollDirection: 'vertical' | 'horizontal' | 'both' = 'vertical';\n /**\n * Type of the row grouping, valid values are \"subheader\" and \"rowspan\".\n * @group Props\n */\n @Input() rowGroupMode: 'subheader' | 'rowspan' | undefined;\n /**\n * Height of the scroll viewport in fixed pixels or the \"flex\" keyword for a dynamic size.\n * @group Props\n */\n @Input() scrollHeight: string | undefined;\n /**\n * Whether the data should be loaded on demand during scroll.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) virtualScroll: boolean | undefined;\n /**\n * Height of a row to use in calculations of virtual scrolling.\n * @group Props\n */\n @Input({ transform: numberAttribute }) virtualScrollItemSize: number | undefined;\n /**\n * Whether to use the scroller feature. The properties of scroller component can be used like an object in it.\n * @group Props\n */\n @Input() virtualScrollOptions: ScrollerOptions | undefined;\n /**\n * Threshold in milliseconds to delay lazy loading during scrolling.\n * @group Props\n */\n @Input({ transform: numberAttribute }) virtualScrollDelay: number = 250;\n /**\n * Width of the frozen columns container.\n * @group Props\n */\n @Input() frozenWidth: string | undefined;\n /**\n * Defines if the table is responsive.\n * @group Props\n * @deprecated table is always responsive with scrollable behavior.\n */\n @Input() get responsive(): boolean | undefined | null {\n return this._responsive;\n }\n set responsive(val: boolean | undefined | null) {\n this._responsive = val;\n console.log('responsive property is deprecated as table is always responsive with scrollable behavior.');\n }\n _responsive: boolean | undefined | null;\n /**\n * Local ng-template varilable of a ContextMenu.\n * @group Props\n */\n @Input() contextMenu: any;\n /**\n * When enabled, columns can be resized using drag and drop.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) resizableColumns: boolean | undefined;\n /**\n * Defines whether the overall table width should change on column resize, valid values are \"fit\" and \"expand\".\n * @group Props\n */\n @Input() columnResizeMode: string = 'fit';\n /**\n * When enabled, columns can be reordered using drag and drop.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) reorderableColumns: boolean | undefined;\n /**\n * Displays a loader to indicate data load is in progress.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) loading: boolean | undefined;\n /**\n * The icon to show while indicating data load is in progress.\n * @group Props\n */\n @Input() loadingIcon: string | undefined;\n /**\n * Whether to show the loading mask when loading property is true.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showLoader: boolean = true;\n /**\n * Adds hover effect to rows without the need for selectionMode. Note that tr elements that can be hovered need to have \"p-selectable-row\" class for rowHover to work.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) rowHover: boolean | undefined;\n /**\n * Whether to use the default sorting or a custom one using sortFunction.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) customSort: boolean | undefined;\n /**\n * Whether to use the initial sort badge or not.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showInitialSortBadge: boolean = true;\n /**\n * Whether the cell widths scale according to their content or not. Deprecated: Table layout is always \"auto\".\n * @group Props\n */\n @Input({ transform: booleanAttribute }) autoLayout: boolean | undefined;\n /**\n * Export function.\n * @group Props\n */\n @Input() exportFunction: Function | undefined;\n /**\n * Custom export header of the column to be exported as CSV.\n * @group Props\n */\n @Input() exportHeader: string | undefined;\n /**\n * Unique identifier of a stateful table to use in state storage.\n * @group Props\n */\n @Input() stateKey: string | undefined;\n /**\n * Defines where a stateful table keeps its state, valid values are \"session\" for sessionStorage and \"local\" for localStorage.\n * @group Props\n */\n @Input() stateStorage: 'session' | 'local' = 'session';\n /**\n * Defines the editing mode, valid values are \"cell\" and \"row\".\n * @group Props\n */\n @Input() editMode: 'cell' | 'row' = 'cell';\n /**\n * Field name to use in row grouping.\n * @group Props\n */\n @Input() groupRowsBy: any;\n /**\n * Defines the size of the table.\n * @group Props\n */\n @Input() size: 'small' | 'large' | undefined;\n /**\n * Whether to show grid lines between cells.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showGridlines: boolean | undefined;\n /**\n * Whether to display rows with alternating colors.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) stripedRows: boolean | undefined;\n /**\n * Order to sort when default row grouping is enabled.\n * @group Props\n */\n @Input({ transform: numberAttribute }) groupRowsByOrder: number = 1;\n /**\n * Defines the responsive mode, valid options are \"stack\" and \"scroll\".\n * @group Props\n */\n @Input() responsiveLayout: string = 'scroll';\n /**\n * The breakpoint to define the maximum width boundary when using stack responsive layout.\n * @group Props\n */\n @Input() breakpoint: string = '960px';\n /**\n * Locale to be used in paginator formatting.\n * @group Props\n */\n @Input() paginatorLocale: string | undefined;\n /**\n * An array of objects to display.\n * @group Props\n */\n @Input() get value(): any[] {\n return this._value;\n }\n set value(val: any[]) {\n this._value = val;\n }\n /**\n * An array of objects to represent dynamic columns.\n * @group Props\n */\n @Input() get columns(): any[] | undefined {\n return this._columns;\n }\n set columns(cols: any[] | undefined) {\n this._columns = cols;\n }\n /**\n * Index of the first row to be displayed.\n * @group Props\n */\n @Input() get first(): number | null | undefined {\n return this._first;\n }\n set first(val: number | null | undefined) {\n this._first = val;\n }\n /**\n * Number of rows to display per page.\n * @group Props\n */\n @Input() get rows(): number | undefined {\n return this._rows;\n }\n set rows(val: number | undefined) {\n this._rows = val;\n }\n /**\n * Number of total records, defaults to length of value when not defined.\n * @group Props\n */\n @Input() get totalRecords(): number {\n return this._totalRecords;\n }\n set totalRecords(val: number) {\n this._totalRecords = val;\n this.tableService.onTotalRecordsChange(this._totalRecords);\n }\n /**\n * Name of the field to sort data by default.\n * @group Props\n */\n @Input() get sortField(): string | undefined | null {\n return this._sortField;\n }\n set sortField(val: string | undefined | null) {\n this._sortField = val;\n }\n /**\n * Order to sort when default sorting is enabled.\n * @group Props\n */\n @Input() get sortOrder(): number {\n return this._sortOrder;\n }\n set sortOrder(val: number) {\n this._sortOrder = val;\n }\n /**\n * An array of SortMeta objects to sort the data by default in multiple sort mode.\n * @group Props\n */\n @Input() get multiSortMeta(): SortMeta[] | undefined | null {\n return this._multiSortMeta;\n }\n set multiSortMeta(val: SortMeta[] | undefined | null) {\n this._multiSortMeta = val;\n }\n /**\n * Selected row in single mode or an array of values in multiple mode.\n * @group Props\n */\n @Input() get selection(): any {\n return this._selection;\n }\n set selection(val: any) {\n this._selection = val;\n }\n /**\n * Indicates the height of rows to be scrolled.\n * @group Props\n * @deprecated use virtualScrollItemSize property instead.\n */\n @Input() get virtualRowHeight(): number {\n return this._virtualRowHeight;\n }\n set virtualRowHeight(val: number) {\n this._virtualRowHeight = val;\n console.log('The virtualRowHeight property is deprecated.');\n }\n /**\n * Whether all data is selected.\n * @group Props\n */\n @Input() get selectAll(): boolean | null {\n return this._selection;\n }\n set selectAll(val: boolean | null) {\n this._selection = val;\n }\n /**\n * Emits when the all of the items selected or unselected.\n * @param {TableSelectAllChangeEvent} event - custom all selection change event.\n * @group Emits\n */\n @Output() selectAllChange: EventEmitter<TableSelectAllChangeEvent> = new EventEmitter<TableSelectAllChangeEvent>();\n /**\n * Callback to invoke on selection changed.\n * @param {any | null} value - selected data.\n * @group Emits\n */\n @Output() selectionChange: EventEmitter<any | null> = new EventEmitter<any | null>();\n /**\n * Callback to invoke when a row is selected.\n * @param {TableRowSelectEvent} event - custom select event.\n * @group Emits\n */\n @Output() onRowSelect: EventEmitter<TableRowSelectEvent> = new EventEmitter<TableRowSelectEvent>();\n /**\n * Callback to invoke when a row is unselected.\n * @param {TableRowUnSelectEvent} event - custom unselect event.\n * @group Emits\n */\n @Output() onRowUnselect: EventEmitter<TableRowUnSelectEvent> = new EventEmitter<TableRowUnSelectEvent>();\n /**\n * Callback to invoke when pagination occurs.\n * @param {TablePageEvent} event - custom pagination event.\n * @group Emits\n */\n @Output() onPage: EventEmitter<TablePageEvent> = new EventEmitter<TablePageEvent>();\n /**\n * Callback to invoke when a column gets sorted.\n * @param {Object} object - sort meta.\n * @group Emits\n */\n @Output() onSort: EventEmitter<{ multisortmeta: SortMeta[] } | any> = new EventEmitter<{ multisortmeta: SortMeta[] } | any>();\n /**\n * Callback to invoke when data is filtered.\n * @param {TableFilterEvent} event - custom filtering event.\n * @group Emits\n */\n @Output() onFilter: EventEmitter<TableFilterEvent> = new EventEmitter<TableFilterEvent>();\n /**\n * Callback to invoke when paging, sorting or filtering happens in lazy mode.\n * @param {TableLazyLoadEvent} event - custom lazy loading event.\n * @group Emits\n */\n @Output() onLazyLoad: EventEmitter<TableLazyLoadEvent> = new EventEmitter<TableLazyLoadEvent>();\n /**\n * Callback to invoke when a row is expanded.\n * @param {TableRowExpandEvent} event - custom row expand event.\n * @group Emits\n */\n @Output() onRowExpand: EventEmitter<TableRowExpandEvent> = new EventEmitter<TableRowExpandEvent>();\n /**\n * Callback to invoke when a row is collapsed.\n * @param {TableRowCollapseEvent} event - custom row collapse event.\n * @group Emits\n */\n @Output() onRowCollapse: EventEmitter<TableRowCollapseEvent> = new EventEmitter<TableRowCollapseEvent>();\n /**\n * Callback to invoke when a row is selected with right click.\n * @param {TableContextMenuSelectEvent} event - custom context menu select event.\n * @group Emits\n */\n @Output() onContextMenuSelect: EventEmitter<TableContextMenuSelectEvent> = new EventEmitter<TableContextMenuSelectEvent>();\n /**\n * Callback to invoke when a column is resized.\n * @param {TableColResizeEvent} event - custom column resize event.\n * @group Emits\n */\n @Output() onColResize: EventEmitter<TableColResizeEvent> = new EventEmitter<TableColResizeEvent>();\n /**\n * Callback to invoke when a column is reordered.\n * @param {TableColumnReorderEvent} event - custom column reorder event.\n * @group Emits\n */\n @Output() onColReorder: EventEmitter<TableColumnReorderEvent> = new EventEmitter<TableColumnReorderEvent>();\n /**\n * Callback to invoke when a row is reordered.\n * @param {TableRowReorderEvent} event - custom row reorder event.\n * @group Emits\n */\n @Output() onRowReorder: EventEmitter<TableRowReorderEvent> = new EventEmitter<TableRowReorderEvent>();\n /**\n * Callback to invoke when a cell switches to edit mode.\n * @param {TableEditInitEvent} event - custom edit init event.\n * @group Emits\n */\n @Output() onEditInit: EventEmitter<TableEditInitEvent> = new EventEmitter<TableEditInitEvent>();\n /**\n * Callback to invoke when cell edit is completed.\n * @param {TableEditCompleteEvent} event - custom edit complete event.\n * @group Emits\n */\n @Output() onEditComplete: EventEmitter<TableEditCompleteEvent> = new EventEmitter<TableEditCompleteEvent>();\n /**\n * Callback to invoke when cell edit is cancelled with escape key.\n * @param {TableEditCancelEvent} event - custom edit cancel event.\n * @group Emits\n */\n @Output() onEditCancel: EventEmitter<TableEditCancelEvent> = new EventEmitter<TableEditCancelEvent>();\n /**\n * Callback to invoke when state of header checkbox changes.\n * @param {TableHeaderCheckboxToggleEvent} event - custom header checkbox event.\n * @group Emits\n */\n @Output()\n onHeaderCheckboxToggle: EventEmitter<TableHeaderCheckboxToggleEvent> = new EventEmitter<TableHeaderCheckboxToggleEvent>();\n /**\n * A function to implement custom sorting, refer to sorting section for details.\n * @param {any} any - sort meta.\n * @group Emits\n */\n @Output() sortFunction: EventEmitter<any> = new EventEmitter<any>();\n /**\n * Callback to invoke on pagination.\n * @param {number} number - first element.\n * @group Emits\n */\n @Output() firstChange: EventEmitter<number> = new EventEmitter<number>();\n /**\n * Callback to invoke on rows change.\n * @param {number} number - Row count.\n * @group Emits\n */\n @Output() rowsChange: EventEmitter<number> = new EventEmitter<number>();\n /**\n * Callback to invoke table state is saved.\n * @param {TableState} object - table state.\n * @group Emits\n */\n @Output() onStateSave: EventEmitter<TableState> = new EventEmitter<TableState>();\n /**\n * Callback to invoke table state is restored.\n * @param {TableState} object - table state.\n * @group Emits\n */\n @Output() onStateRestore: EventEmitter<TableState> = new EventEmitter<TableState>();\n\n @ViewChild('container') containerViewChild: Nullable<ElementRef>;\n\n @ViewChild('resizeHelper') resizeHelperViewChild: Nullable<ElementRef>;\n\n @ViewChild('reorderIndicatorUp')\n reorderIndicatorUpViewChild: Nullable<ElementRef>;\n\n @ViewChild('reorderIndicatorDown')\n reorderIndicatorDownViewChild: Nullable<ElementRef>;\n\n @ViewChild('wrapper') wrapperViewChild: Nullable<ElementRef>;\n\n @ViewChild('table') tableViewChild: Nullable<ElementRef>;\n\n @ViewChild('thead') tableHeaderViewChild: Nullable<ElementRef>;\n\n @ViewChild('tfoot') tableFooterViewChild: Nullable<ElementRef>;\n\n @ViewChild('scroller') scroller: Nullable<Scroller>;\n\n @ContentChildren(PrimeTemplate) _templates: Nullable<QueryList<PrimeTemplate>>;\n\n _virtualRowHeight: number = 28;\n\n _value: any[] = [];\n\n _columns: any[] | undefined;\n\n _totalRecords: number = 0;\n\n _first: number | null | undefined = 0;\n\n _rows: number | undefined;\n\n filteredValue: any[] | undefined | null;\n\n // @todo will be refactored later\n @ContentChild('header') _headerTemplate: TemplateRef<any>;\n headerTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('headergrouped') _headerGroupedTemplate: TemplateRef<any>;\n headerGroupedTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('body') _bodyTemplate: TemplateRef<any>;\n bodyTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('loadingbody') _loadingBodyTemplate: TemplateRef<any>;\n loadingBodyTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('caption') _captionTemplate: TemplateRef<any>;\n captionTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('footer') _footerTemplate: TemplateRef<any>;\n footerTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('footergrouped') _footerGroupedTemplate: TemplateRef<any>;\n footerGroupedTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('summary') _summaryTemplate: TemplateRef<any>;\n summaryTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('colgroup') _colGroupTemplate: TemplateRef<any>;\n colGroupTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('expandedrow') _expandedRowTemplate: TemplateRef<any>;\n expandedRowTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('groupheader') _groupHeaderTemplate: TemplateRef<any>;\n groupHeaderTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('groupfooter') _groupFooterTemplate: TemplateRef<any>;\n groupFooterTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('frozenexpandedrow') _frozenExpandedRowTemplate: TemplateRef<any>;\n frozenExpandedRowTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('frozenheader') _frozenHeaderTemplate: TemplateRef<any>;\n frozenHeaderTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('frozenbody') _frozenBodyTemplate: TemplateRef<any>;\n frozenBodyTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('frozenfooter') _frozenFooterTemplate: TemplateRef<any>;\n frozenFooterTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('frozencolgroup') _frozenColGroupTemplate: TemplateRef<any>;\n frozenColGroupTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('emptymessage') _emptyMessageTemplate: TemplateRef<any>;\n emptyMessageTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('paginatorleft') _paginatorLeftTemplate: TemplateRef<any>;\n paginatorLeftTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('paginatorright') _paginatorRightTemplate: TemplateRef<any>;\n paginatorRightTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('paginatordropdownitem') _paginatorDropdownItemTemplate: TemplateRef<any>;\n paginatorDropdownItemTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('loadingicon') _loadingIconTemplate: TemplateRef<any>;\n loadingIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('reorderindicatorupicon') _reorderIndicatorUpIconTemplate: TemplateRef<any>;\n reorderIndicatorUpIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('reorderindicatordownicon') _reorderIndicatorDownIconTemplate: TemplateRef<any>;\n reorderIndicatorDownIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('sorticon') _sortIconTemplate: TemplateRef<any>;\n sortIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('checkboxicon') _checkboxIconTemplate: TemplateRef<any>;\n checkboxIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('headercheckboxicon') _headerCheckboxIconTemplate: TemplateRef<any>;\n headerCheckboxIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('paginatordropdownicon') _paginatorDropdownIconTemplate: TemplateRef<any>;\n paginatorDropdownIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('paginatorfirstpagelinkicon') _paginatorFirstPageLinkIconTemplate: TemplateRef<any>;\n paginatorFirstPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('paginatorlastpagelinkicon') _paginatorLastPageLinkIconTemplate: TemplateRef<any>;\n paginatorLastPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('paginatorpreviouspagelinkicon') _paginatorPreviousPageLinkIconTemplate: TemplateRef<any>;\n paginatorPreviousPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('paginatornextpagelinkicon') _paginatorNextPageLinkIconTemplate: TemplateRef<any>;\n paginatorNextPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n\n selectionKeys: any = {};\n\n lastResizerHelperX: number | undefined;\n\n reorderIconWidth: number | undefined;\n\n reorderIconHeight: number | undefined;\n\n draggedColumn: any;\n\n draggedRowIndex: number | undefined | null;\n\n droppedRowIndex: number | undefined | null;\n\n rowDragging: boolean | undefined | null;\n\n dropPosition: number | undefined | null;\n\n editingCell: Element | undefined | null;\n\n editingCellData: any;\n\n editingCellField: any;\n\n editingCellRowIndex: number | undefined | null;\n\n selfClick: boolean | undefined | null;\n\n documentEditListener: any;\n\n _multiSortMeta: SortMeta[] | undefined | null;\n\n _sortField: string | undefined | null;\n\n _sortOrder: number = 1;\n\n preventSelectionSetterPropagation: boolean | undefined;\n\n _selection: any;\n\n _selectAll: boolean | null = null;\n\n anchorRowIndex: number | undefined | null;\n\n rangeRowIndex: number | undefined;\n\n filterTimeout: any;\n\n initialized: boolean | undefined | null;\n\n rowTouched: boolean | undefined;\n\n restoringSort: boolean | undefined;\n\n restoringFilter: boolean | undefined;\n\n stateRestored: boolean | undefined;\n\n columnOrderStateRestored: boolean | undefined;\n\n columnWidthsState: string | undefined;\n\n tableWidthState: string | undefined;\n\n overlaySubscription: Subscription | undefined;\n\n resizeColumnElement: any;\n\n columnResizing: boolean = false;\n\n rowGroupHeaderStyleObject: any = {};\n\n id: string = UniqueComponentId();\n\n styleElement: any;\n\n responsiveStyleElement: any;\n\n overlayService = inject(OverlayService);\n\n filterService = inject(FilterService);\n\n tableService = inject(TableService);\n\n zone = inject(NgZone);\n\n _componentStyle = inject(TableStyle);\n\n ngOnInit() {\n super.ngOnInit();\n if (this.lazy && this.lazyLoadOnInit) {\n if (!this.virtualScroll) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n\n if (this.restoringFilter) {\n this.restoringFilter = false;\n }\n }\n\n if (this.responsiveLayout === 'stack') {\n this.createResponsiveStyle();\n }\n\n this.initialized = true;\n }\n\n ngAfterContentInit() {\n (this._templates as QueryList<PrimeTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'caption':\n this.captionTemplate = item.template;\n break;\n\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'headergrouped':\n this.headerGroupedTemplate = item.template;\n break;\n\n case 'body':\n this.bodyTemplate = item.template;\n break;\n\n case 'loadingbody':\n this.loadingBodyTemplate = item.template;\n break;\n\n case 'footer':\n this.footerTemplate = item.template;\n break;\n\n case 'footergrouped':\n this.footerGroupedTemplate = item.template;\n break;\n\n case 'summary':\n this.summaryTemplate = item.template;\n break;\n\n case 'colgroup':\n this.colGroupTemplate = item.template;\n break;\n\n case 'rowexpansion':\n this.expandedRowTemplate = item.template;\n break;\n\n case 'groupheader':\n this.groupHeaderTemplate = item.template;\n break;\n\n case 'groupfooter':\n this.groupFooterTemplate = item.template;\n break;\n\n case 'frozenheader':\n this.frozenHeaderTemplate = item.template;\n break;\n\n case 'frozenbody':\n this.frozenBodyTemplate = item.template;\n break;\n\n case 'frozenfooter':\n this.frozenFooterTemplate = item.template;\n break;\n\n case 'frozencolgroup':\n this.frozenColGroupTemplate = item.template;\n break;\n\n case 'frozenrowexpansion':\n this.frozenExpandedRowTemplate = item.template;\n break;\n\n case 'emptymessage':\n this.emptyMessageTemplate = item.template;\n break;\n\n case 'paginatorleft':\n this.paginatorLeftTemplate = item.template;\n break;\n\n case 'paginatorright':\n this.paginatorRightTemplate = item.template;\n break;\n\n case 'paginatordropdownicon':\n this.paginatorDropdownIconTemplate = item.template;\n break;\n\n case 'paginatordropdownitem':\n this.paginatorDropdownItemTemplate = item.template;\n break;\n\n case 'paginatorfirstpagelinkicon':\n this.paginatorFirstPageLinkIconTemplate = item.template;\n break;\n\n case 'paginatorlastpagelinkicon':\n this.paginatorLastPageLinkIconTemplate = item.template;\n break;\n\n case 'paginatorpreviouspagelinkicon':\n this.paginatorPreviousPageLinkIconTemplate = item.template;\n break;\n\n case 'paginatornextpagelinkicon':\n this.paginatorNextPageLinkIconTemplate = item.template;\n break;\n\n case 'loadingicon':\n this.loadingIconTemplate = item.template;\n break;\n\n case 'reorderindicatorupicon':\n this.reorderIndicatorUpIconTemplate = item.template;\n break;\n\n case 'reorderindicatordownicon':\n this.reorderIndicatorDownIconTemplate = item.template;\n break;\n\n case 'sorticon':\n this.sortIconTemplate = item.template;\n break;\n\n case 'checkboxicon':\n this.checkboxIconTemplate = item.template;\n break;\n\n case 'headercheckboxicon':\n this.headerCheckboxIconTemplate = item.template;\n break;\n }\n });\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n if (isPlatformBrowser(this.platformId)) {\n if (this.isStateful() && this.resizableColumns) {\n this.restoreColumnWidths();\n }\n }\n }\n\n ngOnChanges(simpleChange: SimpleChanges) {\n super.ngOnChanges(simpleChange);\n if (simpleChange.value) {\n if (this.isStateful() && !this.stateRestored && isPlatformBrowser(this.platformId)) {\n this.restoreState();\n }\n\n this._value = simpleChange.value.currentValue;\n\n if (!this.lazy) {\n this.totalRecords = this._value ? this._value.length : 0;\n\n if (this.sortMode == 'single' && (this.sortField || this.groupRowsBy)) this.sortSingle();\n else if (this.sortMode == 'multiple' && (this.multiSortMeta || this.groupRowsBy)) this.sortMultiple();\n else if (this.hasFilter())\n //sort already filters\n this._filter();\n }\n\n this.tableService.onValueChange(simpleChange.value.currentValue);\n }\n\n if (simpleChange.columns) {\n if (!this.isStateful()) {\n this._columns = simpleChange.columns.currentValue;\n this.tableService.onColumnsChange(simpleChange.columns.currentValue);\n }\n\n if (this._columns && this.isStateful() && this.reorderableColumns && !this.columnOrderStateRestored) {\n this.restoreColumnOrder();\n\n this.tableService.onColumnsChange(this._columns);\n }\n }\n\n if (simpleChange.sortField) {\n this._sortField = simpleChange.sortField.currentValue;\n\n //avoid triggering lazy load prior to lazy initialization at onInit\n if (!this.lazy || this.initialized) {\n if (this.sortMode === 'single') {\n this.sortSingle();\n }\n }\n }\n\n if (simpleChange.groupRowsBy) {\n //avoid triggering lazy load prior to lazy initialization at onInit\n if (!this.lazy || this.initialized) {\n if (this.sortMode === 'single') {\n this.sortSingle();\n }\n }\n }\n\n if (simpleChange.sortOrder) {\n this._sortOrder = simpleChange.sortOrder.currentValue;\n\n //avoid triggering lazy load prior to lazy initialization at onInit\n if (!this.lazy || this.initialized) {\n if (this.sortMode === 'single') {\n this.sortSingle();\n }\n }\n }\n\n if (simpleChange.groupRowsByOrder) {\n //avoid triggering lazy load prior to lazy initialization at onInit\n if (!this.lazy || this.initialized) {\n if (this.sortMode === 'single') {\n this.sortSingle();\n }\n }\n }\n\n if (simpleChange.multiSortMeta) {\n this._multiSortMeta = simpleChange.multiSortMeta.currentValue;\n if (this.sortMode === 'multiple' && (this.initialized || (!this.lazy && !this.virtualScroll))) {\n this.sortMultiple();\n }\n }\n\n if (simpleChange.selection) {\n this._selection = simpleChange.selection.currentValue;\n\n if (!this.preventSelectionSetterPropagation) {\n this.updateSelectionKeys();\n this.tableService.onSelectionChange();\n }\n this.preventSelectionSetterPropagation = false;\n }\n\n if (simpleChange.selectAll) {\n this._selectAll = simpleChange.selectAll.currentValue;\n\n if (!this.preventSelectionSetterPropagation) {\n this.updateSelectionKeys();\n this.tableService.onSelectionChange();\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n this.preventSelectionSetterPropagation = false;\n }\n }\n\n get processedData() {\n return this.filteredValue || this.value || [];\n }\n\n private _initialColWidths: number[];\n\n dataToRender(data: any) {\n const _data = data || this.processedData;\n\n if (_data && this.paginator) {\n const first = this.lazy ? 0 : this.first;\n return _data.slice(first, <number>first + <number>this.rows);\n }\n\n return _data;\n }\n\n updateSelectionKeys() {\n if (this.dataKey && this._selection) {\n this.selectionKeys = {};\n if (Array.isArray(this._selection)) {\n for (let data of this._selection) {\n this.selectionKeys[String(ObjectUtils.resolveFieldData(data, this.dataKey))] = 1;\n }\n } else {\n this.selectionKeys[String(ObjectUtils.resolveFieldData(this._selection, this.dataKey))] = 1;\n }\n }\n }\n\n onPageChange(event: TablePageEvent) {\n this.first = event.first;\n this.rows = event.rows;\n\n this.onPage.emit({\n first: this.first,\n rows: <number>this.rows\n });\n\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n\n this.firstChange.emit(this.first);\n this.rowsChange.emit(this.rows);\n this.tableService.onValueChange(this.value);\n\n if (this.isStateful()) {\n this.saveState();\n }\n\n this.anchorRowIndex = null;\n\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n\n sort(event: any) {\n let originalEvent = event.originalEvent;\n\n if (this.sortMode === 'single') {\n this._sortOrder = this.sortField === event.field ? this.sortOrder * -1 : this.defaultSortOrder;\n this._sortField = event.field;\n\n if (this.resetPageOnSort) {\n this._first = 0;\n this.firstChange.emit(this._first);\n\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n\n this.sortSingle();\n }\n if (this.sortMode === 'multiple') {\n let metaKey = (<KeyboardEvent>originalEvent).metaKey || (<KeyboardEvent>originalEvent).ctrlKey;\n let sortMeta = this.getSortMeta(<string>event.field);\n\n if (sortMeta) {\n if (!metaKey) {\n this._multiSortMeta = [\n {\n field: <string>event.field,\n order: sortMeta.order * -1\n }\n ];\n\n if (this.resetPageOnSort) {\n this._first = 0;\n this.firstChange.emit(this._first);\n\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n } else {\n sortMeta.order = sortMeta.order * -1;\n }\n } else {\n if (!metaKey || !this.multiSortMeta) {\n this._multiSortMeta = [];\n\n if (this.resetPageOnSort) {\n this._first = 0;\n this.firstChange.emit(this._first);\n }\n }\n (<SortMeta[]>this._multiSortMeta).push({\n field: <string>event.field,\n order: this.defaultSortOrder\n });\n }\n\n this.sortMultiple();\n }\n\n if (this.isStateful()) {\n this.saveState();\n }\n\n this.anchorRowIndex = null;\n }\n\n sortSingle() {\n let field = this.sortField || this.groupRowsBy;\n let order = this.sortField ? this.sortOrder : this.groupRowsByOrder;\n if (this.groupRowsBy && this.sortField && this.groupRowsBy !== this.sortField) {\n this._multiSortMeta = [this.getGroupRowsMeta(), { field: this.sortField, order: this.sortOrder }];\n this.sortMultiple();\n return;\n }\n\n if (field && order) {\n if (this.restoringSort) {\n this.restoringSort = false;\n }\n\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else if (this.value) {\n if (this.customSort) {\n this.sortFunction.emit({\n data: this.value,\n mode: this.sortMode,\n field: field,\n order: order\n });\n } else {\n this.value.sort((data1, data2) => {\n let value1 = ObjectUtils.resolveFieldData(data1, field);\n let value2 = ObjectUtils.resolveFieldData(data2, field);\n let result = null;\n\n if (value1 == null && value2 != null) result = -1;\n else if (value1 != null && value2 == null) result = 1;\n else if (value1 == null && value2 == null) result = 0;\n else if (typeof value1 === 'string' && typeof value2 === 'string') result = value1.localeCompare(value2);\n else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n\n return order * result;\n });\n\n this._value = [...this.value];\n }\n\n if (this.hasFilter()) {\n this._filter();\n }\n }\n\n let sortMeta: SortMeta = {\n field: field,\n order: order\n };\n\n this.onSort.emit(sortMeta);\n this.tableService.onSort(sortMeta);\n }\n }\n\n sortMultiple() {\n if (this.groupRowsBy) {\n if (!this._multiSortMeta) this._multiSortMeta = [this.getGroupRowsMeta()];\n else if ((<SortMeta[]>this.multiSortMeta)[0].field !== this.groupRowsBy) this._multiSortMeta = [this.getGroupRowsMeta(), ...this._multiSortMeta];\n }\n\n if (this.multiSortMeta) {\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else if (this.value) {\n if (this.customSort) {\n this.sortFunction.emit({\n data: this.value,\n mode: this.sortMode,\n multiSortMeta: this.multiSortMeta\n });\n } else {\n this.value.sort((data1, data2) => {\n return this.multisortField(data1, data2, <SortMeta[]>this.multiSortMeta, 0);\n });\n\n this._value = [...this.value];\n }\n\n if (this.hasFilter()) {\n this._filter();\n }\n }\n\n this.onSort.emit({\n multisortmeta: <SortMeta[]>this.multiSortMeta\n });\n this.tableService.onSort(this.multiSortMeta);\n }\n }\n\n multisortField(data1: any, data2: any, multiSortMeta: SortMeta[], index: number): any {\n const value1 = ObjectUtils.resolveFieldData(data1, multiSortMeta[index].field);\n const value2 = ObjectUtils.resolveFieldData(data2, multiSortMeta[index].field);\n if (ObjectUtils.compare(value1, value2, this.filterLocale) === 0) {\n return multiSortMeta.length - 1 > index ? this.multisortField(data1, data2, multiSortMeta, index + 1) : 0;\n }\n return this.compareValuesOnSort(value1, value2, multiSortMeta[index].order);\n }\n\n compareValuesOnSort(value1: any, value2: any, order: any) {\n return ObjectUtils.sort(value1, value2, order, this.filterLocale, this.sortOrder);\n }\n\n getSortMeta(field: string) {\n if (this.multiSortMeta && this.multiSortMeta.length) {\n for (let i = 0; i < this.multiSortMeta.length; i++) {\n if (this.multiSortMeta[i].field === field) {\n return this.multiSortMeta[i];\n }\n }\n }\n\n return null;\n }\n\n isSorted(field: string) {\n if (this.sortMode === 'single') {\n return this.sortField && this.sortField === field;\n } else if (this.sortMode === 'multiple') {\n let sorted = false;\n if (this.multiSortMeta) {\n for (let i = 0; i < this.multiSortMeta.length; i++) {\n if (this.multiSortMeta[i].field == field) {\n sorted = true;\n break;\n }\n }\n }\n return sorted;\n }\n }\n\n handleRowClick(event: any) {\n let target = <HTMLElement>event.originalEvent.target;\n let targetNode = target.nodeName;\n let parentNode = target.parentElement && target.parentElement.nodeName;\n if (targetNode == 'INPUT' || targetNode == 'BUTTON' || targetNode == 'A' || parentNode == 'INPUT' || parentNode == 'BUTTON' || parentNode == 'A' || DomHandler.hasClass(event.originalEvent.target, 'p-clickable')) {\n return;\n }\n\n if (this.selectionMode) {\n let rowData = event.rowData;\n let rowIndex = event.rowIndex;\n\n this.preventSelectionSetterPropagation = true;\n if (this.isMultipleSelectionMode() && event.originalEvent.shiftKey && this.anchorRowIndex != null) {\n DomHandler.clearSelection();\n if (this.rangeRowIndex != null) {\n this.clearSelectionRange(event.originalEvent);\n }\n\n this.rangeRowIndex = rowIndex;\n this.selectRange(event.originalEvent, rowIndex);\n } else {\n let selected = this.isSelected(rowData);\n\n if (!selected && !this.isRowSelectable(rowData, rowIndex)) {\n return;\n }\n\n let metaSelection = this.rowTouched ? false : this.metaKeySelection;\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rowData, this.dataKey)) : null;\n this.anchorRowIndex = rowIndex;\n this.rangeRowIndex = rowIndex;\n\n if (metaSelection) {\n let metaKey = event.originalEvent.metaKey || event.originalEvent.ctrlKey;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this._selection = null;\n this.selectionKeys = {};\n this.selectionChange.emit(null);\n } else {\n let selectionIndex = this.findIndexInSelection(rowData);\n this._selection = this.selection.filter((val: any, i: number) => i != selectionIndex);\n this.selectionChange.emit(this.selection);\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n }\n\n this.onRowUnselect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row'\n });\n } else {\n if (this.isSingleSelectionMode()) {\n this._selection = rowData;\n this.selectionChange.emit(rowData);\n if (dataKeyValue) {\n this.selectionKeys = {};\n this.selectionKeys[dataKeyValue] = 1;\n }\n } else if (this.isMultipleSelectionMode()) {\n if (metaKey) {\n this._selection = this.selection || [];\n } else {\n this._selection = [];\n this.selectionKeys = {};\n }\n\n this._selection = [...this.selection, rowData];\n this.selectionChange.emit(this.selection);\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n\n this.onRowSelect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row',\n index: rowIndex\n });\n }\n } else {\n if (this.selectionMode === 'single') {\n if (selected) {\n this._selection = null;\n this.selectionKeys = {};\n this.selectionChange.emit(this.selection);\n this.onRowUnselect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row',\n index: rowIndex\n });\n } else {\n this._selection = rowData;\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row',\n index: rowIndex\n });\n if (dataKeyValue) {\n this.selectionKeys = {};\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n } else if (this.selectionMode === 'multiple') {\n if (selected) {\n let selectionIndex = this.findIndexInSelection(rowData);\n this._selection = this.selection.filter((val: any, i: number) => i != selectionIndex);\n this.selectionChange.emit(this.selection);\n this.onRowUnselect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row',\n index: rowIndex\n });\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n } else {\n this._selection = this.selection ? [...this.selection, rowData] : [rowData];\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row',\n index: rowIndex\n });\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n }\n }\n }\n\n this.tableService.onSelectionChange();\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n\n this.rowTouched = false;\n }\n\n handleRowTouchEnd(event: Event) {\n this.rowTouched = true;\n }\n\n handleRowRightClick(event: any) {\n if (this.contextMenu) {\n const rowData = event.rowData;\n const rowIndex = event.rowIndex;\n\n if (this.contextMenuSelectionMode === 'separate') {\n this.contextMenuSelection = rowData;\n this.contextMenuSelectionChange.emit(rowData);\n this.onContextMenuSelect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n index: event.rowIndex\n });\n this.contextMenu.show(event.originalEvent);\n this.tableService.onContextMenu(rowData);\n } else if (this.contextMenuSelectionMode === 'joint') {\n this.preventSelectionSetterPropagation = true;\n let selected = this.isSelected(rowData);\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rowData, this.dataKey)) : null;\n\n if (!selected) {\n if (!this.isRowSelectable(rowData, rowIndex)) {\n return;\n }\n\n if (this.isSingleSelectionMode()) {\n this.selection = rowData;\n this.selectionChange.emit(rowData);\n\n if (dataKeyValue) {\n this.selectionKeys = {};\n this.selectionKeys[dataKeyValue] = 1;\n }\n } else if (this.isMultipleSelectionMode()) {\n this._selection = this.selection ? [...this.selection, rowData] : [rowData];\n this.selectionChange.emit(this.selection);\n\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n }\n\n this.tableService.onSelectionChange();\n this.contextMenu.show(event.originalEvent);\n this.onContextMenuSelect.emit({\n originalEvent: event,\n data: rowData,\n index: event.rowIndex\n });\n }\n }\n }\n\n selectRange(event: MouseEvent | KeyboardEvent, rowIndex: number) {\n let rangeStart, rangeEnd;\n\n if (<number>this.anchorRowIndex > rowIndex) {\n rangeStart = rowIndex;\n rangeEnd = this.anchorRowIndex;\n } else if (<number>this.anchorRowIndex < rowIndex) {\n rangeStart = this.anchorRowIndex;\n rangeEnd = rowIndex;\n } else {\n rangeStart = rowIndex;\n rangeEnd = rowIndex;\n }\n\n if (this.lazy && this.paginator) {\n (rangeStart as number) -= <number>this.first;\n (rangeEnd as number) -= <number>this.first;\n }\n\n let rangeRowsData = [];\n for (let i = <number>rangeStart; i <= <number>rangeEnd; i++) {\n let rangeRowData = this.filteredValue ? this.filteredValue[i] : this.value[i];\n if (!this.isSelected(rangeRowData)) {\n if (!this.isRowSelectable(rangeRowData, rowIndex)) {\n continue;\n }\n\n rangeRowsData.push(rangeRowData);\n this._selection = [...this.selection, rangeRowData];\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rangeRowData, this.dataKey)) : null;\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n }\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({\n originalEvent: event,\n data: rangeRowsData,\n type: 'row'\n });\n }\n\n clearSelectionRange(event: MouseEvent | KeyboardEvent) {\n let rangeStart, rangeEnd;\n let rangeRowIndex = <number>this.rangeRowIndex;\n let anchorRowIndex = <number>this.anchorRowIndex;\n\n if (rangeRowIndex > anchorRowIndex) {\n rangeStart = this.anchorRowIndex;\n rangeEnd = this.rangeRowIndex;\n } else if (rangeRowIndex < anchorRowIndex) {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.anchorRowIndex;\n } else {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.rangeRowIndex;\n }\n\n for (let i = <number>rangeStart; i <= <number>rangeEnd; i++) {\n let rangeRowData = this.value[i];\n let selectionIndex = this.findIndexInSelection(rangeRowData);\n this._selection = this.selection.filter((val: any, i: number) => i != selectionIndex);\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rangeRowData, this.dataKey)) : null;\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n this.onRowUnselect.emit({\n originalEvent: event,\n data: rangeRowData,\n type: 'row'\n });\n }\n }\n\n isSelected(rowData: any) {\n if (rowData && this.selection) {\n if (this.dataKey) {\n return this.selectionKeys[ObjectUtils.resolveFieldData(rowData, this.dataKey)] !== undefined;\n } else {\n if (Array.isArray(this.selection)) return this.findIndexInSelection(rowData) > -1;\n else return this.equals(rowData, this.selection);\n }\n }\n\n return false;\n }\n\n findIndexInSelection(rowData: any) {\n let index: number = -1;\n if (this.selection && this.selection.length) {\n for (let i = 0; i < this.selection.length; i++) {\n if (this.equals(rowData, this.selection[i])) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n\n isRowSelectable(data: any, index: number) {\n if (this.rowSelectable && !this.rowSelectable({ data, index })) {\n return false;\n }\n\n return true;\n }\n\n toggleRowWithRadio(event: any, rowData: any) {\n this.preventSelectionSetterPropagation = true;\n\n if (this.selection != rowData) {\n if (!this.isRowSelectable(rowData, event.rowIndex)) {\n return;\n }\n\n this._selection = rowData;\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({\n originalEvent: event.originalEvent,\n index: event.rowIndex,\n data: rowData,\n type: 'radiobutton'\n });\n\n if (this.dataKey) {\n this.selectionKeys = {};\n this.selectionKeys[String(ObjectUtils.resolveFieldData(rowData, this.dataKey))] = 1;\n }\n } else {\n this._selection = null;\n this.selectionChange.emit(this.selection);\n this.onRowUnselect.emit({\n originalEvent: event.originalEvent,\n index: event.rowIndex,\n data: rowData,\n type: 'radiobutton'\n });\n }\n\n this.tableService.onSelectionChange();\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n\n toggleRowWithCheckbox(event: any, rowData: any) {\n this.selection = this.selection || [];\n let selected = this.isSelected(rowData);\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rowData, this.dataKey)) : null;\n this.preventSelectionSetterPropagation = true;\n\n if (selected) {\n let selectionIndex = this.findIndexInSelection(rowData);\n this._selection = this.selection.filter((val: any, i: number) => i != selectionIndex);\n this.selectionChange.emit(this.selection);\n this.onRowUnselect.emit({\n originalEvent: event.originalEvent,\n index: event.rowIndex,\n data: rowData,\n type: 'checkbox'\n });\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n } else {\n if (!this.isRowSelectable(rowData, event.rowIndex)) {\n return;\n }\n\n this._selection = this.selection ? [...this.selection, rowData] : [rowData];\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({\n originalEvent: event.originalEvent,\n index: event.rowIndex,\n data: rowData,\n type: 'checkbox'\n });\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n\n this.tableService.onSelectionChange();\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n\n toggleRowsWithCheckbox(event: Event, check: boolean) {\n if (this._selectAll !== null) {\n this.selectAllChange.emit({ originalEvent: event, checked: check });\n } else {\n const data = this.selectionPageOnly ? this.dataToRender(this.processedData) : this.processedData;\n let selection = this.selectionPageOnly && this._selection ? this._selection.filter((s: any) => !data.some((d: any) => this.equals(s, d))) : [];\n\n if (check) {\n selection = this.frozenValue ? [...selection, ...this.frozenValue, ...data] : [...selection, ...data];\n selection = this.rowSelectable ? selection.filter((data: any, index: number) => this.rowSelectable({ data, index })) : selection;\n }\n\n this._selection = selection;\n this.preventSelectionSetterPropagation = true;\n this.updateSelectionKeys();\n this.selectionChange.emit(this._selection);\n this.tableService.onSelectionChange();\n this.onHeaderCheckboxToggle.emit({\n originalEvent: event,\n checked: check\n });\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n }\n\n equals(data1: any, data2: any) {\n return this.compareSelectionBy === 'equals' ? data1 === data2 : ObjectUtils.equals(data1, data2, this.dataKey);\n }\n\n /* Legacy Filtering for custom elements */\n filter(value: any, field: string, matchMode: string) {\n if (this.filterTimeout) {\n clearTimeout(this.filterTimeout);\n }\n if (!this.isFilterBlank(value)) {\n this.filters[field] = { value: value, matchMode: matchMode };\n } else if (this.filters[field]) {\n delete this.filters[field];\n }\n\n this.filterTimeout = setTimeout(() => {\n this._filter();\n this.filterTimeout = null;\n }, this.filterDelay);\n\n this.anchorRowIndex = null;\n }\n\n filterGlobal(value: any, matchMode: string) {\n this.filter(value, 'global', matchMode);\n }\n\n isFilterBlank(filter: any): boolean {\n if (filter !== null && filter !== undefined) {\n if ((typeof filter === 'string' && filter.trim().length == 0) || (Array.isArray(filter) && filter.length == 0)) return true;\n else return false;\n }\n return true;\n }\n\n _filter() {\n if (!this.restoringFilter) {\n this.first = 0;\n this.firstChange.emit(this.first);\n }\n\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else {\n if (!this.value) {\n return;\n }\n\n if (!this.hasFilter()) {\n this.filteredValue = null;\n if (this.paginator) {\n this.totalRecords = this.value ? this.value.length : 0;\n }\n } else {\n let globalFilterFieldsArray;\n if (this.filters['global']) {\n if (!this.columns && !this.globalFilterFields) throw new Error('Global filtering requires dynamic columns or globalFilterFields to be defined.');\n else globalFilterFieldsArray = this.globalFilterFields || this.columns;\n }\n\n this.filteredValue = [];\n\n for (let i = 0; i < this.value.length; i++) {\n let localMatch = true;\n let globalMatch = false;\n let localFiltered = false;\n\n for (let prop in this.filters) {\n if (this.filters.hasOwnProperty(prop) && prop !== 'global') {\n localFiltered = true;\n let filterField = prop;\n let filterMeta = this.filters[filterField];\n\n if (Array.isArray(filterMeta)) {\n for (let meta of filterMeta) {\n localMatch = this.executeLocalFilter(filterField, this.value[i], meta);\n\n if ((meta.operator === FilterOperator.OR && localMatch) || (meta.operator === FilterOperator.AND && !localMatch)) {\n break;\n }\n }\n } else {\n localMatch = this.executeLocalFilter(filterField, this.value[i], <any>filterMeta);\n }\n\n if (!localMatch) {\n break;\n }\n }\n }\n\n if (this.filters['global'] && !globalMatch && globalFilterFieldsArray) {\n for (let j = 0; j < globalFilterFieldsArray.length; j++) {\n let globalFilterField = globalFilterFieldsArray[j].field || globalFilterFieldsArray[j];\n globalMatch = (<any>this.filterService).filters[(<any>this.filters['global']).matchMode](ObjectUtils.resolveFieldData(this.value[i], globalFilterField), (<FilterMetadata>this.filters['global']).value, this.filterLocale);\n\n if (globalMatch) {\n break;\n }\n }\n }\n\n let matches: boolean;\n if (this.filters['global']) {\n matches = localFiltered ? localFiltered && localMatch && globalMatch : globalMatch;\n } else {\n matches = localFiltered && localMatch;\n }\n\n if (matches) {\n this.filteredValue.push(this.value[i]);\n }\n }\n\n if (this.filteredValue.length === this.value.length) {\n this.filteredValue = null;\n }\n\n if (this.paginator) {\n this.totalRecords = this.filteredValue ? this.filteredValue.length : this.value ? this.value.length : 0;\n }\n }\n }\n\n this.onFilter.emit({\n filters: <{ [s: string]: FilterMetadata | undefined }>this.filters,\n filteredValue: this.filteredValue || this.value\n });\n\n this.tableService.onValueChange(this.value);\n\n if (this.isStateful() && !this.restoringFilter) {\n this.saveState();\n }\n\n if (this.restoringFilter) {\n this.restoringFilter = false;\n }\n\n this.cd.markForCheck();\n\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n\n executeLocalFilter(field: string, rowData: any, filterMeta: FilterMetadata): boolean {\n let filterValue = filterMeta.value;\n let filterMatchMode = filterMeta.matchMode || FilterMatchMode.STARTS_WITH;\n let dataFieldValue = ObjectUtils.resolveFieldData(rowData, field);\n let filterConstraint = (<any>this.filterService).filters[filterMatchMode];\n\n return filterConstraint(dataFieldValue, filterValue, this.filterLocale);\n }\n\n hasFilter() {\n let empty = true;\n for (let prop in this.filters) {\n if (this.filters.hasOwnProperty(prop)) {\n empty = false;\n break;\n }\n }\n\n return !empty;\n }\n\n createLazyLoadMetadata(): any {\n return {\n first: this.first,\n rows: this.rows,\n sortField: this.sortField,\n sortOrder: this.sortOrder,\n filters: this.filters,\n globalFilter: this.filters && this.filters['global'] ? (<FilterMetadata>this.filters['global']).value : null,\n multiSortMeta: this.multiSortMeta,\n forceUpdate: () => this.cd.detectChanges()\n };\n }\n\n public clear() {\n this._sortField = null;\n this._sortOrder = this.defaultSortOrder;\n this._multiSortMeta = null;\n this.tableService.onSort(null);\n\n this.clearFilterValues();\n\n this.filteredValue = null;\n\n this.first = 0;\n this.firstChange.emit(this.first);\n\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else {\n this.totalRecords = this._value ? this._value.length : 0;\n }\n }\n\n clearFilterValues() {\n for (const [, filterMetadata] of Object.entries(this.filters)) {\n if (Array.isArray(filterMetadata)) {\n for (let filter of filterMetadata) {\n filter.value = null;\n }\n } else if (filterMetadata) {\n filterMetadata.value = null;\n }\n }\n }\n\n reset() {\n this.clear();\n }\n\n getExportHeader(column: any) {\n return column[<string>this.exportHeader] || column.header || column.field;\n }\n /**\n * Data export method.\n * @param {ExportCSVOptions} object - Export options.\n * @group Method\n */\n public exportCSV(options?: ExportCSVOptions) {\n let data;\n let csv = '';\n let columns = this.columns;\n\n if (options && options.selectionOnly) {\n data = this.selection || [];\n } else if (options && options.allValues) {\n data = this.value || [];\n } else {\n data = this.filteredValue || this.value;\n\n if (this.frozenValue) {\n data = data ? [...this.frozenValue, ...data] : this.frozenValue;\n }\n }\n\n const exportableColumns: any[] = (<any[]>columns).filter((column) => column.exportable !== false && column.field);\n\n //headers\n csv += exportableColumns.map((column) => '\"' + this.getExportHeader(column) + '\"').join(this.csvSeparator);\n\n //body\n const body = data\n .map((record: any) =>\n exportableColumns\n .map((column) => {\n let cellData = ObjectUtils.resolveFieldData(record, column.field);\n\n if (cellData != null) {\n if (this.exportFunction) {\n cellData = this.exportFunction({\n data: cellData,\n field: column.field\n });\n } else cellData = String(cellData).replace(/\"/g, '\"\"');\n } else cellData = '';\n\n return '\"' + cellData + '\"';\n })\n .join(this.csvSeparator)\n )\n .join('\\n');\n\n if (body.length) {\n csv += '\\n' + body;\n }\n\n let blob = new Blob([new Uint8Array([0xef, 0xbb, 0xbf]), csv], {\n type: 'text/csv;charset=utf-8;'\n });\n\n let link = this.renderer.createElement('a');\n link.style.display = 'none';\n this.renderer.appendChild(this.document.body, link);\n if (link.download !== undefined) {\n link.setAttribute('href', URL.createObjectURL(blob));\n link.setAttribute('download', this.exportFilename + '.csv');\n link.click();\n } else {\n csv = 'data:text/csv;charset=utf-8,' + csv;\n this.document.defaultView.open(encodeURI(csv));\n }\n this.renderer.removeChild(this.document.body, link);\n }\n\n onLazyItemLoad(event: LazyLoadMeta) {\n this.onLazyLoad.emit({\n ...this.createLazyLoadMetadata(),\n ...event,\n rows: <number>event.last - <number>event.first\n });\n }\n /**\n * Resets scroll to top.\n * @group Method\n */\n public resetScrollTop() {\n if (this.virtualScroll) this.scrollToVirtualIndex(0);\n else this.scrollTo({ top: 0 });\n }\n /**\n * Scrolls to given index when using virtual scroll.\n * @param {number} index - index of the element.\n * @group Method\n */\n public scrollToVirtualIndex(index: number) {\n this.scroller && this.scroller.scrollToIndex(index);\n }\n /**\n * Scrolls to given index.\n * @param {ScrollToOptions} options - scroll options.\n * @group Method\n */\n public scrollTo(options: any) {\n if (this.virtualScroll) {\n this.scroller?.scrollTo(options);\n } else if (this.wrapperViewChild && this.wrapperViewChild.nativeElement) {\n if (this.wrapperViewChild.nativeElement.scrollTo) {\n this.wrapperViewChild.nativeElement.scrollTo(options);\n } else {\n this.wrapperViewChild.nativeElement.scrollLeft = options.left;\n this.wrapperViewChild.nativeElement.scrollTop = options.top;\n }\n }\n }\n\n updateEditingCell(cell: any, data: any, field: string, index: number) {\n this.editingCell = cell;\n this.editingCellData = data;\n this.editingCellField = field;\n this.editingCellRowIndex = index;\n this.bindDocumentEditListener();\n }\n\n isEditingCellValid() {\n return this.editingCell && DomHandler.find(this.editingCell, '.ng-invalid.ng-dirty').length === 0;\n }\n\n bindDocumentEditListener() {\n if (!this.documentEditListener) {\n this.documentEditListener = this.renderer.listen(this.document, 'click', (event) => {\n if (this.editingCell && !this.selfClick && this.isEditingCellValid()) {\n DomHandler.removeClass(this.editingCell, 'p-cell-editing');\n this.editingCell = null;\n this.onEditComplete.emit({\n field: this.editingCellField,\n data: this.editingCellData,\n originalEvent: event,\n index: <number>this.editingCellRowIndex\n });\n this.editingCellField = null;\n this.editingCellData = null;\n this.editingCellRowIndex = null;\n this.unbindDocumentEditListener();\n this.cd.markForCheck();\n\n if (this.overlaySubscription) {\n this.overlaySubscription.unsubscribe();\n }\n }\n\n this.selfClick = false;\n });\n }\n }\n\n unbindDocumentEditListener() {\n if (this.documentEditListener) {\n this.documentEditListener();\n this.documentEditListener = null;\n }\n }\n\n initRowEdit(rowData: any) {\n let dataKeyValue = String(ObjectUtils.resolveFieldData(rowData, this.dataKey));\n this.editingRowKeys[dataKeyValue] = true;\n }\n\n saveRowEdit(rowData: any, rowElement: HTMLTableRowElement) {\n if (DomHandler.find(rowElement, '.ng-invalid.ng-dirty').length === 0) {\n let dataKeyValue = String(ObjectUtils.resolveFieldData(rowData, this.dataKey));\n delete this.editingRowKeys[dataKeyValue];\n }\n }\n\n cancelRowEdit(rowData: any) {\n let dataKeyValue = String(ObjectUtils.resolveFieldData(rowData, this.dataKey));\n delete this.editingRowKeys[dataKeyValue];\n }\n\n toggleRow(rowData: any, event?: Event) {\n if (!this.dataKey && !this.groupRowsBy) {\n throw new Error('dataKey or groupRowsBy must be defined to use row expansion');\n }\n\n let dataKeyValue = this.groupRowsBy ? String(ObjectUtils.resolveFieldData(rowData, this.groupRowsBy)) : String(ObjectUtils.resolveFieldData(rowData, this.dataKey));\n\n if (this.expandedRowKeys[dataKeyValue] != null) {\n delete this.expandedRowKeys[dataKeyValue];\n this.onRowCollapse.emit({\n originalEvent: <Event>event,\n data: rowData\n });\n } else {\n if (this.rowExpandMode === 'single') {\n this.expandedRowKeys = {};\n }\n\n this.expandedRowKeys[dataKeyValue] = true;\n this.onRowExpand.emit({\n originalEvent: <Event>event,\n data: rowData\n });\n }\n\n if (event) {\n event.preventDefault();\n }\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n\n isRowExpanded(rowData: any): boolean {\n return this.groupRowsBy ? this.expandedRowKeys[String(ObjectUtils.resolveFieldData(rowData, this.groupRowsBy))] === true : this.expandedRowKeys[String(ObjectUtils.resolveFieldData(rowData, this.dataKey))] === true;\n }\n\n isRowEditing(rowData: any): boolean {\n return this.editingRowKeys[String(ObjectUtils.resolveFieldData(rowData, this.dataKey))] === true;\n }\n\n isSingleSelectionMode() {\n return this.selectionMode === 'single';\n }\n\n isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n }\n\n onColumnResizeBegin(event: any) {\n let containerLeft = DomHandler.getOffset(this.containerViewChild?.nativeElement).left;\n this.resizeColumnElement = event.target.parentElement;\n this.columnResizing = true;\n if (event.type == 'touchstart') {\n this.lastResizerHelperX = event.changedTouches[0].clientX - containerLeft + this.containerViewChild?.nativeElement.scrollLeft;\n } else {\n this.lastResizerHelperX = event.pageX - containerLeft + this.containerViewChild?.nativeElement.scrollLeft;\n }\n this.onColumnResize(event);\n event.preventDefault();\n }\n\n onColumnResize(event: any) {\n let containerLeft = DomHandler.getOffset(this.containerViewChild?.nativeElement).left;\n DomHandler.addClass(this.containerViewChild?.nativeElement, 'p-unselectable-text');\n (<ElementRef>this.resizeHelperViewChild).nativeElement.style.height = this.containerViewChild?.nativeElement.offsetHeight + 'px';\n (<ElementRef>this.resizeHelperViewChild).nativeElement.style.top = 0 + 'px';\n if (event.type == 'touchmove') {\n (<ElementRef>this.resizeHelperViewChild).nativeElement.style.left = event.changedTouches[0].clientX - containerLeft + this.containerViewChild?.nativeElement.scrollLeft + 'px';\n } else {\n (<ElementRef>this.resizeHelperViewChild).nativeElement.style.left = event.pageX - containerLeft + this.containerViewChild?.nativeElement.scrollLeft + 'px';\n }\n (<ElementRef>this.resizeHelperViewChild).nativeElement.style.display = 'block';\n }\n\n onColumnResizeEnd() {\n let delta = this.resizeHelperViewChild?.nativeElement.offsetLeft - <number>this.lastResizerHelperX;\n let columnWidth = this.resizeColumnElement.offsetWidth;\n let newColumnWidth = columnWidth + delta;\n let minWidth = this.resizeColumnElement.style.minWidth.replace(/[^\\d.]/g, '') || 15;\n\n if (newColumnWidth >= minWidth) {\n if (this.columnResizeMode === 'fit') {\n let nextColumn = this.resizeColumnElement.nextElementSibling;\n let nextColumnWidth = nextColumn.offsetWidth - delta;\n\n if (newColumnWidth > 15 && nextColumnWidth > 15) {\n this.resizeTableCells(newColumnWidth, nextColumnWidth);\n }\n } else if (this.columnResizeMode === 'expand') {\n this._initialColWidths = this._totalTableWidth();\n let tableWidth = this.tableViewChild?.nativeElement.offsetWidth + delta;\n\n this.setResizeTableWidth(tableWidth + 'px');\n this.resizeTableCells(newColumnWidth, null);\n }\n\n this.onColResize.emit({\n element: this.resizeColumnElement,\n delta: delta\n });\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n\n (<ElementRef>this.resizeHelperViewChild).nativeElement.style.display = 'none';\n DomHandler.removeClass(this.containerViewChild?.nativeElement, 'p-unselectable-text');\n }\n\n private _totalTableWidth(): number[] {\n let widths = [];\n const tableHead = DomHandler.findSingle(this.containerViewChild.nativeElement, '.p-datatable-thead');\n let headers = DomHandler.find(tableHead, 'tr > th');\n headers.forEach((header) => widths.push(DomHandler.getOuterWidth(header)));\n\n return widths;\n }\n\n onColumnDragStart(event: any, columnElement: any) {\n this.reorderIconWidth = DomHandler.getHiddenElementOuterWidth(this.reorderIndicatorUpViewChild?.nativeElement);\n this.reorderIconHeight = DomHandler.getHiddenElementOuterHeight(this.reorderIndicatorDownViewChild?.nativeElement);\n this.draggedColumn = columnElement;\n event.dataTransfer.setData('text', 'b'); // For firefox\n }\n\n onColumnDragEnter(event: any, dropHeader: any) {\n if (this.reorderableColumns && this.draggedColumn && dropHeader) {\n event.preventDefault();\n let containerOffset = DomHandler.getOffset(this.containerViewChild?.nativeElement);\n let dropHeaderOffset = DomHandler.getOffset(dropHeader);\n\n if (this.draggedColumn != dropHeader) {\n let dragIndex = DomHandler.indexWithinGroup(this.draggedColumn, 'preorderablecolumn');\n let dropIndex = DomHandler.indexWithinGroup(dropHeader, 'preorderablecolumn');\n let targetLeft = dropHeaderOffset.left - containerOffset.left;\n let targetTop = containerOffset.top - dropHeaderOffset.top;\n let columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;\n\n (<ElementRef>this.reorderIndicatorUpViewChild).nativeElement.style.top = dropHeaderOffset.top - containerOffset.top - (<number>this.reorderIconHeight - 1) + 'px';\n (<ElementRef>this.reorderIndicatorDownViewChild).nativeElement.style.top = dropHeaderOffset.top - containerOffset.top + dropHeader.offsetHeight + 'px';\n\n if (event.pageX > columnCenter) {\n (<ElementRef>this.reorderIndicatorUpViewChild).nativeElement.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n (<ElementRef>this.reorderIndicatorDownViewChild).nativeElement.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n this.dropPosition = 1;\n } else {\n (<ElementRef>this.reorderIndicatorUpViewChild).nativeElement.style.left = targetLeft - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n (<ElementRef>this.reorderIndicatorDownViewChild).nativeElement.style.left = targetLeft - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n this.dropPosition = -1;\n }\n (<ElementRef>this.reorderIndicatorUpViewChild).nativeElement.style.display = 'block';\n (<ElementRef>this.reorderIndicatorDownViewChild).nativeElement.style.display = 'block';\n } else {\n event.dataTransfer.dropEffect = 'none';\n }\n }\n }\n\n onColumnDragLeave(event: Event) {\n if (this.reorderableColumns && this.draggedColumn) {\n event.preventDefault();\n }\n }\n\n onColumnDrop(event: Event, dropColumn: any) {\n event.preventDefault();\n if (this.draggedColumn) {\n let dragIndex = DomHandler.indexWithinGroup(this.draggedColumn, 'preorderablecolumn');\n let dropIndex = DomHandler.indexWithinGroup(dropColumn, 'preorderablecolumn');\n let allowDrop = dragIndex != dropIndex;\n if (allowDrop && ((dropIndex - dragIndex == 1 && this.dropPosition === -1) || (dragIndex - dropIndex == 1 && this.dropPosition === 1))) {\n allowDrop = false;\n }\n\n if (allowDrop && dropIndex < dragIndex && this.dropPosition === 1) {\n dropIndex = dropIndex + 1;\n }\n\n if (allowDrop && dropIndex > dragIndex && this.dropPosition === -1) {\n dropIndex = dropIndex - 1;\n }\n\n if (allowDrop) {\n ObjectUtils.reorderArray(<any[]>this.columns, dragIndex, dropIndex);\n\n this.onColReorder.emit({\n dragIndex: dragIndex,\n dropIndex: dropIndex,\n columns: this.columns\n });\n\n if (this.isStateful()) {\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n this.saveState();\n });\n });\n }\n }\n\n if (this.resizableColumns && this.resizeColumnElement) {\n let width = this.columnResizeMode === 'expand' ? this._initialColWidths : this._totalTableWidth();\n ObjectUtils.reorderArray(width, dragIndex + 1, dropIndex + 1);\n this.updateStyleElement(width, dragIndex, null, null);\n }\n\n (<ElementRef>this.reorderIndicatorUpViewChild).nativeElement.style.display = 'none';\n (<ElementRef>this.reorderIndicatorDownViewChild).nativeElement.style.display = 'none';\n this.draggedColumn.draggable = false;\n this.draggedColumn = null;\n this.dropPosition = null;\n }\n }\n\n resizeTableCells(newColumnWidth: number, nextColumnWidth: number | null) {\n let colIndex = DomHandler.index(this.resizeColumnElement);\n let width = this.columnResizeMode === 'expand' ? this._initialColWidths : this._totalTableWidth();\n this.updateStyleElement(width, colIndex, newColumnWidth, nextColumnWidth);\n }\n\n updateStyleElement(width: number[], colIndex: number, newColumnWidth: number, nextColumnWidth: number | null) {\n this.destroyStyleElement();\n this.createStyleElement();\n\n let innerHTML = '';\n width.forEach((width, index) => {\n let colWidth = index === colIndex ? newColumnWidth : nextColumnWidth && index === colIndex + 1 ? nextColumnWidth : width;\n let style = `width: ${colWidth}px !important; max-width: ${colWidth}px !important;`;\n innerHTML += `\n #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${index + 1}),\n #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${index + 1}),\n #${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${index + 1}) {\n ${style}\n }\n `;\n });\n this.renderer.setProperty(this.styleElement, 'innerHTML', innerHTML);\n }\n\n onRowDragStart(event: any, index: number) {\n this.rowDragging = true;\n this.draggedRowIndex = index;\n event.dataTransfer.setData('text', 'b'); // For firefox\n }\n\n onRowDragOver(event: MouseEvent, index: number, rowElement: any) {\n if (this.rowDragging && this.draggedRowIndex !== index) {\n let rowY = DomHandler.getOffset(rowElement).top;\n let pageY = event.pageY;\n let rowMidY = rowY + DomHandler.getOuterHeight(rowElement) / 2;\n let prevRowElement = rowElement.previousElementSibling;\n\n if (pageY < rowMidY) {\n DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n\n this.droppedRowIndex = index;\n if (prevRowElement) DomHandler.addClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n else DomHandler.addClass(rowElement, 'p-datatable-dragpoint-top');\n } else {\n if (prevRowElement) DomHandler.removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n else DomHandler.addClass(rowElement, 'p-datatable-dragpoint-top');\n\n this.droppedRowIndex = index + 1;\n DomHandler.addClass(rowElement, 'p-datatable-dragpoint-bottom');\n }\n }\n }\n\n onRowDragLeave(event: Event, rowElement: any) {\n let prevRowElement = rowElement.previousElementSibling;\n if (prevRowElement) {\n DomHandler.removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n }\n\n DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-top');\n }\n\n onRowDragEnd(event: Event) {\n this.rowDragging = false;\n this.draggedRowIndex = null;\n this.droppedRowIndex = null;\n }\n\n onRowDrop(event: Event, rowElement: any) {\n if (this.droppedRowIndex != null) {\n let dropIndex = <number>this.draggedRowIndex > this.droppedRowIndex ? this.droppedRowIndex : this.droppedRowIndex === 0 ? 0 : this.droppedRowIndex - 1;\n ObjectUtils.reorderArray(this.value, <number>this.draggedRowIndex, dropIndex);\n\n if (this.virtualScroll) {\n // TODO: Check\n this._value = [...this._value];\n }\n\n this.onRowReorder.emit({\n dragIndex: <number>this.draggedRowIndex,\n dropIndex: dropIndex\n });\n }\n //cleanup\n this.onRowDragLeave(event, rowElement);\n this.onRowDragEnd(event);\n }\n\n isEmpty() {\n let data = this.filteredValue || this.value;\n return data == null || data.length == 0;\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n getStorage() {\n if (isPlatformBrowser(this.platformId)) {\n switch (this.stateStorage) {\n case 'local':\n return window.localStorage;\n\n case 'session':\n return window.sessionStorage;\n\n default:\n throw new Error(this.stateStorage + ' is not a valid value for the state storage, supported values are \"local\" and \"session\".');\n }\n } else {\n throw new Error('Browser storage is not available in the server side.');\n }\n }\n\n isStateful() {\n return this.stateKey != null;\n }\n\n saveState() {\n const storage = this.getStorage();\n let state: TableState = {};\n\n if (this.paginator) {\n state.first = <number>this.first;\n state.rows = this.rows;\n }\n\n if (this.sortField) {\n state.sortField = this.sortField;\n state.sortOrder = this.sortOrder;\n }\n\n if (this.multiSortMeta) {\n state.multiSortMeta = this.multiSortMeta;\n }\n\n if (this.hasFilter()) {\n state.filters = this.filters;\n }\n\n if (this.resizableColumns) {\n this.saveColumnWidths(state);\n }\n\n if (this.reorderableColumns) {\n this.saveColumnOrder(state);\n }\n\n if (this.selection) {\n state.selection = this.selection;\n }\n\n if (Object.keys(this.expandedRowKeys).length) {\n state.expandedRowKeys = this.expandedRowKeys;\n }\n\n storage.setItem(<string>this.stateKey, JSON.stringify(state));\n this.onStateSave.emit(state);\n }\n\n clearState() {\n const storage = this.getStorage();\n\n if (this.stateKey) {\n storage.removeItem(this.stateKey);\n }\n }\n\n restoreState() {\n const storage = this.getStorage();\n const stateString = storage.getItem(<string>this.stateKey);\n const dateFormat = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/;\n const reviver = function (key: any, value: any) {\n if (typeof value === 'string' && dateFormat.test(value)) {\n return new Date(value);\n }\n\n return value;\n };\n\n if (stateString) {\n let state: TableState = JSON.parse(stateString, reviver);\n\n if (this.paginator) {\n if (this.first !== undefined) {\n this.first = state.first;\n this.firstChange.emit(this.first);\n }\n\n if (this.rows !== undefined) {\n this.rows = state.rows;\n this.rowsChange.emit(this.rows);\n }\n }\n\n if (state.sortField) {\n this.restoringSort = true;\n this._sortField = state.sortField;\n this._sortOrder = <number>state.sortOrder;\n }\n\n if (state.multiSortMeta) {\n this.restoringSort = true;\n this._multiSortMeta = state.multiSortMeta;\n }\n\n if (state.filters) {\n this.restoringFilter = true;\n this.filters = state.filters;\n }\n\n if (this.resizableColumns) {\n this.columnWidthsState = state.columnWidths;\n this.tableWidthState = state.tableWidth;\n }\n\n // if (this.reorderableColumns) {\n // this.restoreColumnOrder();\n // }\n\n if (state.expandedRowKeys) {\n this.expandedRowKeys = state.expandedRowKeys;\n }\n\n if (state.selection) {\n Promise.resolve(null).then(() => this.selectionChange.emit(state.selection));\n }\n\n this.stateRestored = true;\n\n this.onStateRestore.emit(state);\n }\n }\n\n saveColumnWidths(state: any) {\n let widths: any[] = [];\n let headers = DomHandler.find(this.containerViewChild?.nativeElement, '.p-datatable-thead > tr > th');\n headers.forEach((header) => widths.push(DomHandler.getOuterWidth(header)));\n state.columnWidths = widths.join(',');\n\n if (this.columnResizeMode === 'expand') {\n state.tableWidth = DomHandler.getOuterWidth(this.tableViewChild?.nativeElement);\n }\n }\n\n setResizeTableWidth(width: string) {\n (<ElementRef>this.tableViewChild).nativeElement.style.width = width;\n (<ElementRef>this.tableViewChild).nativeElement.style.minWidth = width;\n }\n\n restoreColumnWidths() {\n if (this.columnWidthsState) {\n let widths = this.columnWidthsState.split(',');\n\n if (this.columnResizeMode === 'expand' && this.tableWidthState) {\n this.setResizeTableWidth(this.tableWidthState + 'px');\n }\n\n if (ObjectUtils.isNotEmpty(widths)) {\n this.createStyleElement();\n\n let innerHTML = '';\n widths.forEach((width, index) => {\n let style = `width: ${width}px !important; max-width: ${width}px !important`;\n\n innerHTML += `\n #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${index + 1}),\n #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${index + 1}),\n #${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${index + 1}) {\n ${style}\n }\n `;\n });\n\n this.styleElement.innerHTML = innerHTML;\n }\n }\n }\n\n saveColumnOrder(state: any) {\n if (this.columns) {\n let columnOrder: string[] = [];\n this.columns.map((column) => {\n columnOrder.push(column.field || column.key);\n });\n\n state.columnOrder = columnOrder;\n }\n }\n\n restoreColumnOrder() {\n const storage = this.getStorage();\n const stateString = storage.getItem(<string>this.stateKey);\n if (stateString) {\n let state: TableState = JSON.parse(stateString);\n let columnOrder = state.columnOrder;\n\n if (columnOrder) {\n let reorderedColumns: any[] = [];\n\n columnOrder.map((key) => {\n let col = this.findColumnByKey(key);\n if (col) {\n reorderedColumns.push(col);\n }\n });\n this.columnOrderStateRestored = true;\n this.columns = reorderedColumns;\n }\n }\n }\n\n findColumnByKey(key: any) {\n if (this.columns) {\n for (let col of this.columns) {\n if (col.key === key || col.field === key) return col;\n else continue;\n }\n } else {\n return null;\n }\n }\n\n createStyleElement() {\n this.styleElement = this.renderer.createElement('style');\n this.styleElement.type = 'text/css';\n this.renderer.appendChild(this.document.head, this.styleElement);\n DomHandler.setAttribute(this.styleElement, 'nonce', this.config?.csp()?.nonce);\n }\n\n getGroupRowsMeta() {\n return { field: this.groupRowsBy, order: this.groupRowsByOrder };\n }\n\n createResponsiveStyle() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.responsiveStyleElement) {\n this.responsiveStyleElement = this.renderer.createElement('style');\n this.responsiveStyleElement.type = 'text/css';\n this.renderer.appendChild(this.document.head, this.responsiveStyleElement);\n\n let innerHTML = `\n @media screen and (max-width: ${this.breakpoint}) {\n #${this.id}-table > .p-datatable-thead > tr > th,\n #${this.id}-table > .p-datatable-tfoot > tr > td {\n display: none !important;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td {\n display: flex;\n width: 100% !important;\n align-items: center;\n justify-content: space-between;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td:not(:last-child) {\n border: 0 none;\n }\n\n #${this.id}.p-datatable-gridlines > .p-datatable-table-container > .p-datatable-table > .p-datatable-tbody > tr > td:last-child {\n border-top: 0;\n border-right: 0;\n border-left: 0;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td > .p-datatable-column-title {\n display: block;\n }\n }\n `;\n this.renderer.setProperty(this.responsiveStyleElement, 'innerHTML', innerHTML);\n }\n }\n }\n\n destroyResponsiveStyle() {\n if (this.responsiveStyleElement) {\n this.renderer.removeChild(this.document.head, this.responsiveStyleElement);\n this.responsiveStyleElement = null;\n }\n }\n\n destroyStyleElement() {\n if (this.styleElement) {\n this.renderer.removeChild(this.document.head, this.styleElement);\n this.styleElement = null;\n }\n }\n\n ngOnDestroy() {\n this.unbindDocumentEditListener();\n this.editingCell = null;\n this.initialized = null;\n\n this.destroyStyleElement();\n this.destroyResponsiveStyle();\n super.ngOnDestroy();\n }\n}\n\n@Component({\n selector: '[pTableBody]',\n standalone: false,\n template: `\n <ng-container *ngIf=\"!dt.expandedRowTemplate && !dt._expandedRowTemplate\">\n <ng-template ngFor let-rowData let-rowIndex=\"index\" [ngForOf]=\"value\" [ngForTrackBy]=\"dt.rowTrackBy\">\n <ng-container *ngIf=\"(dt.groupHeaderTemplate || dt._groupHeaderTemplate) && !dt.virtualScroll && dt.rowGroupMode === 'subheader' && shouldRenderRowGroupHeader(value, rowData, rowIndex)\" role=\"row\">\n <ng-container\n *ngTemplateOutlet=\"\n dt.groupHeaderTemplate || dt._groupHeaderTemplate;\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns,\n editing: dt.editMode === 'row' && dt.isRowEditing(rowData),\n frozen: frozen\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"dt.rowGroupMode !== 'rowspan'\">\n <ng-container\n *ngTemplateOutlet=\"\n rowData ? template : dt.loadingBodyTemplate || dt._loadingBodyTemplate;\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns,\n editing: dt.editMode === 'row' && dt.isRowEditing(rowData),\n frozen: frozen\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"dt.rowGroupMode === 'rowspan'\">\n <ng-container\n *ngTemplateOutlet=\"\n rowData ? template : dt.loadingBodyTemplate || dt._loadingBodyTemplate;\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns,\n editing: dt.editMode === 'row' && dt.isRowEditing(rowData),\n frozen: frozen,\n rowgroup: shouldRenderRowspan(value, rowData, rowIndex),\n rowspan: calculateRowGroupSize(value, rowData, rowIndex)\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"(dt.groupFooterTemplate || dt._groupFooterTemplate) && !dt.virtualScroll && dt.rowGroupMode === 'subheader' && shouldRenderRowGroupFooter(value, rowData, rowIndex)\" role=\"row\">\n <ng-container\n *ngTemplateOutlet=\"\n dt.groupFooterTemplate || dt._groupFooterTemplate;\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns,\n editing: dt.editMode === 'row' && dt.isRowEditing(rowData),\n frozen: frozen\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"(dt.expandedRowTemplate || dt._expandedRowTemplate) && !(frozen && (dt.frozenExpandedRowTemplate || dt._frozenExpandedRowTemplate))\">\n <ng-template ngFor let-rowData let-rowIndex=\"index\" [ngForOf]=\"value\" [ngForTrackBy]=\"dt.rowTrackBy\">\n <ng-container *ngIf=\"!(dt.groupHeaderTemplate && dt._groupHeaderTemplate)\">\n <ng-container\n *ngTemplateOutlet=\"\n template;\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns,\n expanded: dt.isRowExpanded(rowData),\n editing: dt.editMode === 'row' && dt.isRowEditing(rowData),\n frozen: frozen\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"(dt.groupHeaderTemplate || dt._groupHeaderTemplate) && dt.rowGroupMode === 'subheader' && shouldRenderRowGroupHeader(value, rowData, getRowIndex(rowIndex))\" role=\"row\">\n <ng-container\n *ngTemplateOutlet=\"\n dt.groupHeaderTemplate || dt._groupHeaderTemplate;\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns,\n expanded: dt.isRowExpanded(rowData),\n editing: dt.editMode === 'row' && dt.isRowEditing(rowData),\n frozen: frozen\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"dt.isRowExpanded(rowData)\">\n <ng-container\n *ngTemplateOutlet=\"\n dt.expandedRowTemplate || dt._expandedRowTemplate;\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns,\n frozen: frozen\n }\n \"\n ></ng-container>\n <ng-container *ngIf=\"(dt.groupFooterTemplate || dt._groupFooterTemplate) && dt.rowGroupMode === 'subheader' && shouldRenderRowGroupFooter(value, rowData, getRowIndex(rowIndex))\" role=\"row\">\n <ng-container\n *ngTemplateOutlet=\"\n dt.groupFooterTemplate || dt._groupFooterTemplate;\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns,\n expanded: dt.isRowExpanded(rowData),\n editing: dt.editMode === 'row' && dt.isRowEditing(rowData),\n frozen: frozen\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"(dt.frozenExpandedRowTemplate || dt._frozenExpandedRowTemplate) && frozen\">\n <ng-template ngFor let-rowData let-rowIndex=\"index\" [ngForOf]=\"value\" [ngForTrackBy]=\"dt.rowTrackBy\">\n <ng-container\n *ngTemplateOutlet=\"\n template;\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns,\n expanded: dt.isRowExpanded(rowData),\n editing: dt.editMode === 'row' && dt.isRowEditing(rowData),\n frozen: frozen\n }\n \"\n ></ng-container>\n <ng-container *ngIf=\"dt.isRowExpanded(rowData)\">\n <ng-container\n *ngTemplateOutlet=\"\n dt.frozenExpandedRowTemplate || dt._frozenExpandedRowTemplate;\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns,\n frozen: frozen\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"dt.loading\">\n <ng-container *ngTemplateOutlet=\"dt.loadingBodyTemplate || dt._loadingBodyTemplate; context: { $implicit: columns, frozen: frozen }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"dt.isEmpty() && !dt.loading\">\n <ng-container *ngTemplateOutlet=\"dt.emptyMessageTemplate || dt._emptyMessageTemplate; context: { $implicit: columns, frozen: frozen }\"></ng-container>\n </ng-container>\n `,\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None\n})\nexport class TableBody implements AfterViewInit, OnDestroy {\n @Input('pTableBody') columns: any[] | undefined;\n\n @Input('pTableBodyTemplate') template: Nullable<TemplateRef<any>>;\n\n @Input() get value(): any[] | undefined {\n return this._value;\n }\n set value(val: any[] | undefined) {\n this._value = val;\n if (this.frozenRows) {\n this.updateFrozenRowStickyPosition();\n }\n\n if (this.dt.scrollable && this.dt.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n }\n\n @Input({ transform: booleanAttribute }) frozen: boolean | undefined;\n\n @Input({ transform: booleanAttribute }) frozenRows: boolean | undefined;\n\n @Input() scrollerOptions: any;\n\n subscription: Subscription;\n\n _value: any[] | undefined;\n\n ngAfterViewInit() {\n if (this.frozenRows) {\n this.updateFrozenRowStickyPosition();\n }\n\n if (this.dt.scrollable && this.dt.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n }\n\n constructor(\n public dt: Table,\n public tableService: TableService,\n public cd: ChangeDetectorRef,\n public el: ElementRef\n ) {\n this.subscription = this.dt.tableService.valueSource$.subscribe(() => {\n if (this.dt.virtualScroll) {\n this.cd.detectChanges();\n }\n });\n }\n\n shouldRenderRowGroupHeader(value: any, rowData: any, i: number) {\n let currentRowFieldData = ObjectUtils.resolveFieldData(rowData, this.dt.groupRowsBy);\n let prevRowData = value[i - (1 + this.dt._first)];\n if (prevRowData) {\n let previousRowFieldData = ObjectUtils.resolveFieldData(prevRowData, this.dt.groupRowsBy);\n return currentRowFieldData !== previousRowFieldData;\n } else {\n return true;\n }\n }\n\n shouldRenderRowGroupFooter(value: any, rowData: any, i: number) {\n let currentRowFieldData = ObjectUtils.resolveFieldData(rowData, this.dt.groupRowsBy);\n let nextRowData = value[i + (1 + this.dt._first)];\n if (nextRowData) {\n let nextRowFieldData = ObjectUtils.resolveFieldData(nextRowData, this.dt.groupRowsBy);\n return currentRowFieldData !== nextRowFieldData;\n } else {\n return true;\n }\n }\n\n shouldRenderRowspan(value: any, rowData: any, i: number) {\n let currentRowFieldData = ObjectUtils.resolveFieldData(rowData, this.dt.groupRowsBy);\n let prevRowData = value[i - 1];\n if (prevRowData) {\n let previousRowFieldData = ObjectUtils.resolveFieldData(prevRowData, this.dt.groupRowsBy);\n return currentRowFieldData !== previousRowFieldData;\n } else {\n return true;\n }\n }\n\n calculateRowGroupSize(value: any, rowData: any, index: number) {\n let currentRowFieldData = ObjectUtils.resolveFieldData(rowData, this.dt.groupRowsBy);\n let nextRowFieldData = currentRowFieldData;\n let groupRowSpan = 0;\n\n while (currentRowFieldData === nextRowFieldData) {\n groupRowSpan++;\n let nextRowData = value[++index];\n if (nextRowData) {\n nextRowFieldData = ObjectUtils.resolveFieldData(nextRowData, this.dt.groupRowsBy);\n } else {\n break;\n }\n }\n\n return groupRowSpan === 1 ? null : groupRowSpan;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n updateFrozenRowStickyPosition() {\n this.el.nativeElement.style.top = DomHandler.getOuterHeight(this.el.nativeElement.previousElementSibling) + 'px';\n }\n\n updateFrozenRowGroupHeaderStickyPosition() {\n if (this.el.nativeElement.previousElementSibling) {\n let tableHeaderHeight = DomHandler.getOuterHeight(this.el.nativeElement.previousElementSibling);\n this.dt.rowGroupHeaderStyleObject.top = tableHeaderHeight + 'px';\n }\n }\n\n getScrollerOption(option: any, options?: any) {\n if (this.dt.virtualScroll) {\n options = options || this.scrollerOptions;\n return options ? options[option] : null;\n }\n\n return null;\n }\n\n getRowIndex(rowIndex: number) {\n const index = this.dt.paginator ? <number>this.dt.first + rowIndex : rowIndex;\n const getItemOptions = this.getScrollerOption('getItemOptions');\n return getItemOptions ? getItemOptions(index).index : index;\n }\n}\n\n@Directive({\n selector: '[pRowGroupHeader]',\n standalone: false,\n host: {\n class: 'p-datatable-row-group-header',\n '[style.top]': 'getFrozenRowGroupHeaderStickyPosition'\n }\n})\nexport class RowGroupHeader {\n constructor(public dt: Table) {}\n\n get getFrozenRowGroupHeaderStickyPosition() {\n return this.dt.rowGroupHeaderStyleObject ? this.dt.rowGroupHeaderStyleObject.top : '';\n }\n}\n\n@Directive({\n selector: '[pFrozenColumn]',\n standalone: false,\n host: {\n '[class.p-datatable-frozen-column]': 'frozen',\n '[class.p-datatable-frozen-column-left]': 'alignFrozen === \"left\"'\n }\n})\nexport class FrozenColumn implements AfterViewInit {\n @Input() get frozen(): boolean {\n return this._frozen;\n }\n\n set frozen(val: boolean) {\n this._frozen = val;\n Promise.resolve(null).then(() => this.updateStickyPosition());\n }\n\n @Input() alignFrozen: string = 'left';\n\n constructor(\n private el: ElementRef,\n private zone: NgZone\n ) {}\n\n ngAfterViewInit() {\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n this.recalculateColumns();\n }, 1000);\n });\n }\n\n @HostListener('window:resize', ['$event'])\n recalculateColumns() {\n const siblings = DomHandler.siblings(this.el.nativeElement);\n const index = DomHandler.index(this.el.nativeElement);\n const time = (siblings.length - index + 1) * 50;\n\n setTimeout(() => {\n this.updateStickyPosition();\n }, time);\n }\n\n _frozen: boolean = true;\n\n updateStickyPosition() {\n if (this._frozen) {\n if (this.alignFrozen === 'right') {\n let right = 0;\n let next = this.el.nativeElement.nextElementSibling;\n if (next) {\n right = DomHandler.getOuterWidth(next) + (parseFloat(next.style.right) || 0);\n }\n this.el.nativeElement.style.right = right + 'px';\n } else {\n let left = 0;\n let prev = this.el.nativeElement.previousElementSibling;\n if (prev) {\n left = DomHandler.getOuterWidth(prev) + (parseFloat(prev.style.left) || 0);\n }\n this.el.nativeElement.style.left = left + 'px';\n }\n\n const filterRow = this.el.nativeElement?.parentElement?.nextElementSibling;\n\n if (filterRow) {\n let index = DomHandler.index(this.el.nativeElement);\n if (filterRow.children && filterRow.children[index]) {\n filterRow.children[index].style.left = this.el.nativeElement.style.left;\n filterRow.children[index].style.right = this.el.nativeElement.style.right;\n }\n }\n }\n }\n}\n@Directive({\n selector: '[pSortableColumn]',\n standalone: false,\n host: {\n '[class.p-datatable-sortable-column]': 'isEnabled()',\n '[class.p-datatable-column-sorted]': 'sorted',\n '[attr.tabindex]': 'isEnabled() ? \"0\" : null',\n '[attr.role]': '\"columnheader\"',\n '[attr.aria-sort]': 'sortOrder'\n }\n})\nexport class SortableColumn implements OnInit, OnDestroy {\n @Input('pSortableColumn') field: string | undefined;\n\n @Input({ transform: booleanAttribute }) pSortableColumnDisabled: boolean | undefined;\n\n sorted: boolean | undefined;\n\n sortOrder: string | undefined;\n\n subscription: Subscription | undefined;\n\n constructor(public dt: Table) {\n if (this.isEnabled()) {\n this.subscription = this.dt.tableService.sortSource$.subscribe((sortMeta) => {\n this.updateSortState();\n });\n }\n }\n\n ngOnInit() {\n if (this.isEnabled()) {\n this.updateSortState();\n }\n }\n\n updateSortState() {\n this.sorted = this.dt.isSorted(<string>this.field) as boolean;\n this.sortOrder = this.sorted ? (this.dt.sortOrder === 1 ? 'ascending' : 'descending') : 'none';\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent) {\n if (this.isEnabled() && !this.isFilterElement(<HTMLElement>event.target)) {\n this.updateSortState();\n this.dt.sort({\n originalEvent: event,\n field: this.field\n });\n\n DomHandler.clearSelection();\n }\n }\n\n @HostListener('keydown.space', ['$event'])\n @HostListener('keydown.enter', ['$event'])\n onEnterKey(event: MouseEvent) {\n this.onClick(event);\n\n event.preventDefault();\n }\n\n isEnabled() {\n return this.pSortableColumnDisabled !== true;\n }\n\n isFilterElement(element: HTMLElement) {\n return this.isFilterElementIconOrButton(element) || this.isFilterElementIconOrButton(element?.parentElement?.parentElement);\n }\n private isFilterElementIconOrButton(element: HTMLElement) {\n return DomHandler.hasClass(element, 'pi-filter-icon') || DomHandler.hasClass(element, 'p-column-filter-menu-button');\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: 'p-sortIcon',\n standalone: false,\n template: `\n <ng-container *ngIf=\"!(dt.sortIconTemplate && dt._sortIconTemplate)\">\n <SortAltIcon [styleClass]=\"'p-sortable-column-icon'\" *ngIf=\"sortOrder === 0\" />\n <SortAmountUpAltIcon [styleClass]=\"'p-sortable-column-icon'\" *ngIf=\"sortOrder === 1\" />\n <SortAmountDownIcon [styleClass]=\"'p-sortable-column-icon'\" *ngIf=\"sortOrder === -1\" />\n </ng-container>\n <span *ngIf=\"dt.sortIconTemplate || dt._sortIconTemplate\" class=\"p-sortable-column-icon\">\n <ng-template *ngTemplateOutlet=\"dt.sortIconTemplate || dt._sortIconTemplate; context: { $implicit: sortOrder }\"></ng-template>\n </span>\n <span *ngIf=\"isMultiSorted()\" class=\"p-sortable-column-badge\">{{ getBadgeValue() }}</span>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class SortIcon implements OnInit, OnDestroy {\n @Input() field: string | undefined;\n\n subscription: Subscription | undefined;\n\n sortOrder: number | undefined;\n\n constructor(\n public dt: Table,\n public cd: ChangeDetectorRef\n ) {\n this.subscription = this.dt.tableService.sortSource$.subscribe((sortMeta) => {\n this.updateSortState();\n });\n }\n\n ngOnInit() {\n this.updateSortState();\n }\n\n onClick(event: Event) {\n event.preventDefault();\n }\n\n updateSortState() {\n if (this.dt.sortMode === 'single') {\n this.sortOrder = this.dt.isSorted(<string>this.field) ? this.dt.sortOrder : 0;\n } else if (this.dt.sortMode === 'multiple') {\n let sortMeta = this.dt.getSortMeta(<string>this.field);\n this.sortOrder = sortMeta ? sortMeta.order : 0;\n }\n\n this.cd.markForCheck();\n }\n\n getMultiSortMetaIndex() {\n let multiSortMeta = this.dt._multiSortMeta;\n let index = -1;\n\n if (multiSortMeta && this.dt.sortMode === 'multiple' && this.dt.showInitialSortBadge && multiSortMeta.length > 1) {\n for (let i = 0; i < multiSortMeta.length; i++) {\n let meta = multiSortMeta[i];\n if (meta.field === this.field || meta.field === this.field) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n\n getBadgeValue() {\n let index = this.getMultiSortMetaIndex();\n\n return this.dt.groupRowsBy && index > -1 ? index : index + 1;\n }\n\n isMultiSorted() {\n return this.dt.sortMode === 'multiple' && this.getMultiSortMetaIndex() > -1;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[pSelectableRow]',\n standalone: false,\n host: {\n '[class.p-datatable-selectable-row]': 'isEnabled()',\n '[class.p-datatable-row-selected]': 'selected',\n '[attr.tabindex]': 'setRowTabIndex()',\n '[attr.data-p-selectable-row]': 'true'\n }\n})\nexport class SelectableRow implements OnInit, OnDestroy {\n @Input('pSelectableRow') data: any;\n\n @Input('pSelectableRowIndex') index: number | undefined;\n\n @Input({ transform: booleanAttribute }) pSelectableRowDisabled: boolean | undefined;\n\n selected: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n constructor(\n public dt: Table,\n public tableService: TableService,\n private el: ElementRef\n ) {\n if (this.isEnabled()) {\n this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.selected = this.dt.isSelected(this.data);\n });\n }\n }\n\n setRowTabIndex() {\n if (this.dt.selectionMode === 'single' || this.dt.selectionMode === 'multiple') {\n return !this.dt.selection ? 0 : this.dt.anchorRowIndex === this.index ? 0 : -1;\n }\n }\n\n ngOnInit() {\n if (this.isEnabled()) {\n this.selected = this.dt.isSelected(this.data);\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.dt.handleRowClick({\n originalEvent: event,\n rowData: this.data,\n rowIndex: this.index\n });\n }\n }\n\n @HostListener('touchend', ['$event'])\n onTouchEnd(event: Event) {\n if (this.isEnabled()) {\n this.dt.handleRowTouchEnd(event);\n }\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'Space':\n this.onSpaceKey(event);\n break;\n\n case 'Enter':\n this.onEnterKey(event);\n break;\n\n default:\n if (event.code === 'KeyA' && (event.metaKey || event.ctrlKey) && this.dt.selectionMode === 'multiple') {\n const data = this.dt.dataToRender(this.dt.processedData);\n this.dt.selection = [...data];\n this.dt.selectRange(event, data.length - 1);\n\n event.preventDefault();\n }\n break;\n }\n }\n\n onArrowDownKey(event: KeyboardEvent) {\n if (!this.isEnabled()) {\n return;\n }\n\n const row = <HTMLTableRowElement>event.currentTarget;\n const nextRow = this.findNextSelectableRow(row);\n\n if (nextRow) {\n nextRow.focus();\n }\n\n event.preventDefault();\n }\n\n onArrowUpKey(event: KeyboardEvent) {\n if (!this.isEnabled()) {\n return;\n }\n\n const row = <HTMLTableRowElement>event.currentTarget;\n const prevRow = this.findPrevSelectableRow(row);\n\n if (prevRow) {\n prevRow.focus();\n }\n\n event.preventDefault();\n }\n\n onEnterKey(event: KeyboardEvent) {\n if (!this.isEnabled()) {\n return;\n }\n\n this.dt.handleRowClick({\n originalEvent: event,\n rowData: this.data,\n rowIndex: this.index\n });\n }\n\n onEndKey(event: KeyboardEvent) {\n const lastRow = this.findLastSelectableRow();\n lastRow && this.focusRowChange(this.el.nativeElement, lastRow);\n\n if (event.ctrlKey && event.shiftKey) {\n const data = this.dt.dataToRender(this.dt.rows);\n const lastSelectableRowIndex = DomHandler.getAttribute(lastRow, 'index');\n\n this.dt.anchorRowIndex = lastSelectableRowIndex;\n this.dt.selection = data.slice(this.index, data.length);\n this.dt.selectRange(event, this.index);\n }\n event.preventDefault();\n }\n\n onHomeKey(event: KeyboardEvent) {\n const firstRow = this.findFirstSelectableRow();\n\n firstRow && this.focusRowChange(this.el.nativeElement, firstRow);\n\n if (event.ctrlKey && event.shiftKey) {\n const data = this.dt.dataToRender(this.dt.rows);\n const firstSelectableRowIndex = DomHandler.getAttribute(firstRow, 'index');\n\n this.dt.anchorRowIndex = this.dt.anchorRowIndex || firstSelectableRowIndex;\n this.dt.selection = data.slice(0, this.index + 1);\n this.dt.selectRange(event, this.index);\n }\n event.preventDefault();\n }\n\n onSpaceKey(event) {\n const isInput = event.target instanceof HTMLInputElement || event.target instanceof HTMLSelectElement || event.target instanceof HTMLTextAreaElement;\n if (isInput) {\n return;\n } else {\n this.onEnterKey(event);\n\n if (event.shiftKey && this.dt.selection !== null) {\n const data = this.dt.dataToRender(this.dt.rows);\n let index;\n\n if (ObjectUtils.isNotEmpty(this.dt.selection) && this.dt.selection.length > 0) {\n let firstSelectedRowIndex, lastSelectedRowIndex;\n firstSelectedRowIndex = ObjectUtils.findIndexInList(this.dt.selection[0], data);\n lastSelectedRowIndex = ObjectUtils.findIndexInList(this.dt.selection[this.dt.selection.length - 1], data);\n\n index = this.index <= firstSelectedRowIndex ? lastSelectedRowIndex : firstSelectedRowIndex;\n } else {\n index = ObjectUtils.findIndexInList(this.dt.selection, data);\n }\n\n this.dt.anchorRowIndex = index;\n this.dt.selection = index !== this.index ? data.slice(Math.min(index, this.index), Math.max(index, this.index) + 1) : [this.data];\n this.dt.selectRange(event, this.index);\n }\n\n event.preventDefault();\n }\n }\n\n focusRowChange(firstFocusableRow, currentFocusedRow) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n DomHandler.focus(currentFocusedRow);\n }\n\n findLastSelectableRow() {\n const rows = DomHandler.find(this.dt.el.nativeElement, '.p-datatable-selectable-row');\n\n return rows ? rows[rows.length - 1] : null;\n }\n\n findFirstSelectableRow() {\n const firstRow = DomHandler.findSingle(this.dt.el.nativeElement, '.p-datatable-selectable-row');\n\n return firstRow;\n }\n\n findNextSelectableRow(row: HTMLTableRowElement): HTMLTableRowElement | null {\n let nextRow = <HTMLTableRowElement>row.nextElementSibling;\n if (nextRow) {\n if (DomHandler.hasClass(nextRow, 'p-selectable-row')) return nextRow;\n else return this.findNextSelectableRow(nextRow);\n } else {\n return null;\n }\n }\n\n findPrevSelectableRow(row: HTMLTableRowElement): HTMLTableRowElement | null {\n let prevRow = <HTMLTableRowElement>row.previousElementSibling;\n if (prevRow) {\n if (DomHandler.hasClass(prevRow, 'p-selectable-row')) return prevRow;\n else return this.findPrevSelectableRow(prevRow);\n } else {\n return null;\n }\n }\n\n isEnabled() {\n return this.pSelectableRowDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[pSelectableRowDblClick]',\n standalone: false,\n host: {\n '[class.p-selectable-row]': 'isEnabled()',\n '[class.p-highlight]': 'selected'\n }\n})\nexport class SelectableRowDblClick implements OnInit, OnDestroy {\n @Input('pSelectableRowDblClick') data: any;\n\n @Input('pSelectableRowIndex') index: number | undefined;\n\n @Input({ transform: booleanAttribute }) pSelectableRowDisabled: boolean | undefined;\n\n selected: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n constructor(\n public dt: Table,\n public tableService: TableService\n ) {\n if (this.isEnabled()) {\n this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.selected = this.dt.isSelected(this.data);\n });\n }\n }\n\n ngOnInit() {\n if (this.isEnabled()) {\n this.selected = this.dt.isSelected(this.data);\n }\n }\n\n @HostListener('dblclick', ['$event'])\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.dt.handleRowClick({\n originalEvent: event,\n rowData: this.data,\n rowIndex: this.index\n });\n }\n }\n\n isEnabled() {\n return this.pSelectableRowDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[pContextMenuRow]',\n standalone: false,\n host: {\n '[class.p-highlight-contextmenu]': 'selected',\n '[attr.tabindex]': 'isEnabled() ? 0 : undefined'\n }\n})\nexport class ContextMenuRow {\n @Input('pContextMenuRow') data: any;\n\n @Input('pContextMenuRowIndex') index: number | undefined;\n\n @Input({ transform: booleanAttribute }) pContextMenuRowDisabled: boolean | undefined;\n\n selected: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n constructor(\n public dt: Table,\n public tableService: TableService,\n private el: ElementRef\n ) {\n if (this.isEnabled()) {\n this.subscription = this.dt.tableService.contextMenuSource$.subscribe((data) => {\n this.selected = this.dt.equals(this.data, data);\n });\n }\n }\n\n @HostListener('contextmenu', ['$event'])\n onContextMenu(event: Event) {\n if (this.isEnabled()) {\n this.dt.handleRowRightClick({\n originalEvent: event,\n rowData: this.data,\n rowIndex: this.index\n });\n\n this.el.nativeElement.focus();\n event.preventDefault();\n }\n }\n\n isEnabled() {\n return this.pContextMenuRowDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[pRowToggler]',\n standalone: false\n})\nexport class RowToggler {\n @Input('pRowToggler') data: any;\n\n @Input({ transform: booleanAttribute }) pRowTogglerDisabled: boolean | undefined;\n\n constructor(public dt: Table) {}\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.dt.toggleRow(this.data, event);\n event.preventDefault();\n }\n }\n\n isEnabled() {\n return this.pRowTogglerDisabled !== true;\n }\n}\n\n@Directive({\n selector: '[pResizableColumn]',\n standalone: false,\n host: {\n class: 'p-datatable-resizable-column'\n }\n})\nexport class ResizableColumn implements AfterViewInit, OnDestroy {\n @Input({ transform: booleanAttribute }) pResizableColumnDisabled: boolean | undefined;\n\n resizer: HTMLSpanElement | undefined;\n\n resizerMouseDownListener: VoidListener;\n\n resizerTouchStartListener: VoidListener;\n\n resizerTouchMoveListener: VoidListener;\n\n resizerTouchEndListener: VoidListener;\n\n documentMouseMoveListener: VoidListener;\n\n documentMouseUpListener: VoidListener;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n @Inject(PLATFORM_ID) private platformId: any,\n private renderer: Renderer2,\n public dt: Table,\n public el: ElementRef,\n public zone: NgZone\n ) {}\n\n ngAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.isEnabled()) {\n DomHandler.addClass(this.el.nativeElement, 'p-datatable-resizable-column');\n this.resizer = this.renderer.createElement('span');\n this.renderer.addClass(this.resizer, 'p-datatable-column-resizer');\n this.renderer.appendChild(this.el.nativeElement, this.resizer);\n\n this.zone.runOutsideAngular(() => {\n this.resizerMouseDownListener = this.renderer.listen(this.resizer, 'mousedown', this.onMouseDown.bind(this));\n this.resizerTouchStartListener = this.renderer.listen(this.resizer, 'touchstart', this.onTouchStart.bind(this));\n });\n }\n }\n }\n\n bindDocumentEvents() {\n this.zone.runOutsideAngular(() => {\n this.documentMouseMoveListener = this.renderer.listen(this.document, 'mousemove', this.onDocumentMouseMove.bind(this));\n this.documentMouseUpListener = this.renderer.listen(this.document, 'mouseup', this.onDocumentMouseUp.bind(this));\n this.resizerTouchMoveListener = this.renderer.listen(this.resizer, 'touchmove', this.onTouchMove.bind(this));\n this.resizerTouchEndListener = this.renderer.listen(this.resizer, 'touchend', this.onTouchEnd.bind(this));\n });\n }\n\n unbindDocumentEvents() {\n if (this.documentMouseMoveListener) {\n this.documentMouseMoveListener();\n this.documentMouseMoveListener = null;\n }\n\n if (this.documentMouseUpListener) {\n this.documentMouseUpListener();\n this.documentMouseUpListener = null;\n }\n if (this.resizerTouchMoveListener) {\n this.resizerTouchMoveListener();\n this.resizerTouchMoveListener = null;\n }\n\n if (this.resizerTouchEndListener) {\n this.resizerTouchEndListener();\n this.resizerTouchEndListener = null;\n }\n }\n\n onMouseDown(event: MouseEvent) {\n this.dt.onColumnResizeBegin(event);\n this.bindDocumentEvents();\n }\n\n onTouchStart(event: TouchEvent) {\n this.dt.onColumnResizeBegin(event);\n this.bindDocumentEvents();\n }\n\n onTouchMove(event: TouchEvent) {\n this.dt.onColumnResize(event);\n }\n onDocumentMouseMove(event: MouseEvent) {\n this.dt.onColumnResize(event);\n }\n\n onDocumentMouseUp(event: MouseEvent) {\n this.dt.onColumnResizeEnd();\n this.unbindDocumentEvents();\n }\n\n onTouchEnd(event: TouchEvent) {\n this.dt.onColumnResizeEnd();\n this.unbindDocumentEvents();\n }\n\n isEnabled() {\n return this.pResizableColumnDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.resizerMouseDownListener) {\n this.resizerMouseDownListener();\n this.resizerMouseDownListener = null;\n }\n\n this.unbindDocumentEvents();\n }\n}\n\n@Directive({\n selector: '[pReorderableColumn]',\n standalone: false,\n host: {\n class: 'p-datatable-reorderable-column'\n }\n})\nexport class ReorderableColumn implements AfterViewInit, OnDestroy {\n @Input({ transform: booleanAttribute }) pReorderableColumnDisabled: boolean | undefined;\n\n dragStartListener: VoidListener;\n\n dragOverListener: VoidListener;\n\n dragEnterListener: VoidListener;\n\n dragLeaveListener: VoidListener;\n\n mouseDownListener: VoidListener;\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: any,\n private renderer: Renderer2,\n public dt: Table,\n public el: ElementRef,\n public zone: NgZone\n ) {}\n\n ngAfterViewInit() {\n if (this.isEnabled()) {\n this.bindEvents();\n }\n }\n\n bindEvents() {\n if (isPlatformBrowser(this.platformId)) {\n this.zone.runOutsideAngular(() => {\n this.mouseDownListener = this.renderer.listen(this.el.nativeElement, 'mousedown', this.onMouseDown.bind(this));\n\n this.dragStartListener = this.renderer.listen(this.el.nativeElement, 'dragstart', this.onDragStart.bind(this));\n\n this.dragOverListener = this.renderer.listen(this.el.nativeElement, 'dragover', this.onDragOver.bind(this));\n\n this.dragEnterListener = this.renderer.listen(this.el.nativeElement, 'dragenter', this.onDragEnter.bind(this));\n\n this.dragLeaveListener = this.renderer.listen(this.el.nativeElement, 'dragleave', this.onDragLeave.bind(this));\n });\n }\n }\n\n unbindEvents() {\n if (this.mouseDownListener) {\n this.mouseDownListener();\n this.mouseDownListener = null;\n }\n\n if (this.dragStartListener) {\n this.dragStartListener();\n this.dragStartListener = null;\n }\n\n if (this.dragOverListener) {\n this.dragOverListener();\n this.dragOverListener = null;\n }\n\n if (this.dragEnterListener) {\n this.dragEnterListener();\n this.dragEnterListener = null;\n }\n\n if (this.dragLeaveListener) {\n this.dragLeaveListener();\n this.dragLeaveListener = null;\n }\n }\n\n onMouseDown(event: any) {\n if (event.target.nodeName === 'INPUT' || event.target.nodeName === 'TEXTAREA' || DomHandler.hasClass(event.target, 'p-datatable-column-resizer')) this.el.nativeElement.draggable = false;\n else this.el.nativeElement.draggable = true;\n }\n\n onDragStart(event: any) {\n this.dt.onColumnDragStart(event, this.el.nativeElement);\n }\n\n onDragOver(event: any) {\n event.preventDefault();\n }\n\n onDragEnter(event: any) {\n this.dt.onColumnDragEnter(event, this.el.nativeElement);\n }\n\n onDragLeave(event: any) {\n this.dt.onColumnDragLeave(event);\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: any) {\n if (this.isEnabled()) {\n this.dt.onColumnDrop(event, this.el.nativeElement);\n }\n }\n\n isEnabled() {\n return this.pReorderableColumnDisabled !== true;\n }\n\n ngOnDestroy() {\n this.unbindEvents();\n }\n}\n\n@Directive({\n selector: '[pEditableColumn]',\n standalone: false\n})\nexport class EditableColumn implements OnChanges, AfterViewInit, OnDestroy {\n @Input('pEditableColumn') data: any;\n\n @Input('pEditableColumnField') field: any;\n\n @Input('pEditableColumnRowIndex') rowIndex: number | undefined;\n\n @Input({ transform: booleanAttribute }) pEditableColumnDisabled: boolean | undefined;\n\n @Input() pFocusCellSelector: string | undefined;\n\n overlayEventListener: any;\n\n constructor(\n public dt: Table,\n public el: ElementRef,\n public zone: NgZone\n ) {}\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (this.el.nativeElement && !changes.data?.firstChange) {\n this.dt.updateEditingCell(this.el.nativeElement, this.data, this.field, <number>this.rowIndex);\n }\n }\n\n ngAfterViewInit() {\n if (this.isEnabled()) {\n DomHandler.addClass(this.el.nativeElement, 'p-editable-column');\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent) {\n if (this.isEnabled()) {\n this.dt.selfClick = true;\n\n if (this.dt.editingCell) {\n if (this.dt.editingCell !== this.el.nativeElement) {\n if (!this.dt.isEditingCellValid()) {\n return;\n }\n\n this.closeEditingCell(true, event);\n this.openCell();\n }\n } else {\n this.openCell();\n }\n }\n }\n\n openCell() {\n this.dt.updateEditingCell(this.el.nativeElement, this.data, this.field, <number>this.rowIndex);\n DomHandler.addClass(this.el.nativeElement, 'p-cell-editing');\n this.dt.onEditInit.emit({\n field: this.field,\n data: this.data,\n index: <number>this.rowIndex\n });\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n let focusCellSelector = this.pFocusCellSelector || 'input, textarea, select';\n let focusableElement = DomHandler.findSingle(this.el.nativeElement, focusCellSelector);\n\n if (focusableElement) {\n focusableElement.focus();\n }\n }, 50);\n });\n\n this.overlayEventListener = (e: any) => {\n if (this.el && this.el.nativeElement.contains(e.target)) {\n this.dt.selfClick = true;\n }\n };\n\n this.dt.overlaySubscription = this.dt.overlayService.clickObservable.subscribe(this.overlayEventListener);\n }\n\n closeEditingCell(completed: any, event: Event) {\n const eventData = {\n field: <string>this.dt.editingCellField,\n data: <any>this.dt.editingCellData,\n originalEvent: <Event>event,\n index: <number>this.dt.editingCellRowIndex\n };\n\n if (completed) {\n this.dt.onEditComplete.emit(eventData);\n } else {\n this.dt.onEditCancel.emit(eventData);\n\n this.dt.value.forEach((element) => {\n if (element[this.dt.editingCellField] === this.data) {\n element[this.dt.editingCellField] = this.dt.editingCellData;\n }\n });\n }\n\n DomHandler.removeClass(this.dt.editingCell, 'p-cell-editing');\n this.dt.editingCell = null;\n this.dt.editingCellData = null;\n this.dt.editingCellField = null;\n this.dt.unbindDocumentEditListener();\n\n if (this.dt.overlaySubscription) {\n this.dt.overlaySubscription.unsubscribe();\n }\n }\n\n @HostListener('keydown.enter', ['$event'])\n onEnterKeyDown(event: KeyboardEvent) {\n if (this.isEnabled() && !event.shiftKey) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n event.preventDefault();\n }\n }\n\n @HostListener('keydown.tab', ['$event'])\n onTabKeyDown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n event.preventDefault();\n }\n }\n\n @HostListener('keydown.escape', ['$event'])\n onEscapeKeyDown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(false, event);\n }\n\n event.preventDefault();\n }\n }\n\n @HostListener('keydown.tab', ['$event'])\n @HostListener('keydown.shift.tab', ['$event'])\n @HostListener('keydown.meta.tab', ['$event'])\n onShiftKeyDown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n if (event.shiftKey) this.moveToPreviousCell(event);\n else {\n this.moveToNextCell(event);\n }\n }\n }\n @HostListener('keydown.arrowdown', ['$event'])\n onArrowDown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n let currentCell = this.findCell(event.target);\n if (currentCell) {\n let cellIndex = DomHandler.index(currentCell);\n let targetCell = this.findNextEditableColumnByIndex(currentCell, cellIndex);\n\n if (targetCell) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n DomHandler.invokeElementMethod(event.target, 'blur');\n DomHandler.invokeElementMethod(targetCell, 'click');\n }\n\n event.preventDefault();\n }\n }\n }\n\n @HostListener('keydown.arrowup', ['$event'])\n onArrowUp(event: KeyboardEvent) {\n if (this.isEnabled()) {\n let currentCell = this.findCell(event.target);\n if (currentCell) {\n let cellIndex = DomHandler.index(currentCell);\n let targetCell = this.findPrevEditableColumnByIndex(currentCell, cellIndex);\n\n if (targetCell) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n DomHandler.invokeElementMethod(event.target, 'blur');\n DomHandler.invokeElementMethod(targetCell, 'click');\n }\n\n event.preventDefault();\n }\n }\n }\n\n @HostListener('keydown.arrowleft', ['$event'])\n onArrowLeft(event: KeyboardEvent) {\n if (this.isEnabled()) {\n this.moveToPreviousCell(event);\n }\n }\n\n @HostListener('keydown.arrowright', ['$event'])\n onArrowRight(event: KeyboardEvent) {\n if (this.isEnabled()) {\n this.moveToNextCell(event);\n }\n }\n\n findCell(element: any) {\n if (element) {\n let cell = element;\n while (cell && !DomHandler.hasClass(cell, 'p-cell-editing')) {\n cell = cell.parentElement;\n }\n\n return cell;\n } else {\n return null;\n }\n }\n\n moveToPreviousCell(event: KeyboardEvent) {\n let currentCell = this.findCell(event.target);\n if (currentCell) {\n let targetCell = this.findPreviousEditableColumn(currentCell);\n\n if (targetCell) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n DomHandler.invokeElementMethod(event.target, 'blur');\n DomHandler.invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n }\n }\n\n moveToNextCell(event: KeyboardEvent) {\n let currentCell = this.findCell(event.target);\n if (currentCell) {\n let targetCell = this.findNextEditableColumn(currentCell);\n\n if (targetCell) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n DomHandler.invokeElementMethod(event.target, 'blur');\n DomHandler.invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n } else {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n }\n }\n }\n\n findPreviousEditableColumn(cell: any): HTMLTableCellElement | null {\n let prevCell = cell.previousElementSibling;\n\n if (!prevCell) {\n let previousRow = cell.parentElement?.previousElementSibling;\n if (previousRow) {\n prevCell = previousRow.lastElementChild;\n }\n }\n\n if (prevCell) {\n if (DomHandler.hasClass(prevCell, 'p-editable-column')) return prevCell;\n else return this.findPreviousEditableColumn(prevCell);\n } else {\n return null;\n }\n }\n\n findNextEditableColumn(cell: any): HTMLTableCellElement | null {\n let nextCell = cell.nextElementSibling;\n\n if (!nextCell) {\n let nextRow = cell.parentElement?.nextElementSibling;\n if (nextRow) {\n nextCell = nextRow.firstElementChild;\n }\n }\n\n if (nextCell) {\n if (DomHandler.hasClass(nextCell, 'p-editable-column')) return nextCell;\n else return this.findNextEditableColumn(nextCell);\n } else {\n return null;\n }\n }\n\n findNextEditableColumnByIndex(cell: Element, index: number) {\n let nextRow = cell.parentElement?.nextElementSibling;\n\n if (nextRow) {\n let nextCell = nextRow.children[index];\n\n if (nextCell && DomHandler.hasClass(nextCell, 'p-editable-column')) {\n return nextCell;\n }\n\n return null;\n } else {\n return null;\n }\n }\n\n findPrevEditableColumnByIndex(cell: Element, index: number) {\n let prevRow = cell.parentElement?.previousElementSibling;\n\n if (prevRow) {\n let prevCell = prevRow.children[index];\n\n if (prevCell && DomHandler.hasClass(prevCell, 'p-editable-column')) {\n return prevCell;\n }\n\n return null;\n } else {\n return null;\n }\n }\n\n isEnabled() {\n return this.pEditableColumnDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.dt.overlaySubscription) {\n this.dt.overlaySubscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[pEditableRow]',\n standalone: false\n})\nexport class EditableRow {\n @Input('pEditableRow') data: any;\n\n @Input({ transform: booleanAttribute }) pEditableRowDisabled: boolean | undefined;\n\n constructor(public el: ElementRef) {}\n\n isEnabled() {\n return this.pEditableRowDisabled !== true;\n }\n}\n\n@Directive({\n selector: '[pInitEditableRow]',\n standalone: false,\n host: {\n class: 'p-datatable-row-editor-init'\n }\n})\nexport class InitEditableRow {\n constructor(\n public dt: Table,\n public editableRow: EditableRow\n ) {}\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n this.dt.initRowEdit(this.editableRow.data);\n event.preventDefault();\n }\n}\n\n@Directive({\n selector: '[pSaveEditableRow]',\n standalone: false,\n host: {\n class: 'p-datatable-row-editor-save'\n }\n})\nexport class SaveEditableRow {\n constructor(\n public dt: Table,\n public editableRow: EditableRow\n ) {}\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n this.dt.saveRowEdit(this.editableRow.data, this.editableRow.el.nativeElement);\n event.preventDefault();\n }\n}\n\n@Directive({\n selector: '[pCancelEditableRow]',\n standalone: false,\n host: {\n class: 'p-datatable-row-editor-cancel'\n }\n})\nexport class CancelEditableRow {\n constructor(\n public dt: Table,\n public editableRow: EditableRow\n ) {}\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n this.dt.cancelRowEdit(this.editableRow.data);\n event.preventDefault();\n }\n}\n\n@Component({\n selector: 'p-cellEditor',\n standalone: false,\n template: `\n <ng-container *ngIf=\"editing\">\n <ng-container *ngTemplateOutlet=\"inputTemplate || _inputTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!editing\">\n <ng-container *ngTemplateOutlet=\"outputTemplate || _outputTemplate\"></ng-container>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class CellEditor implements AfterContentInit {\n @ContentChildren(PrimeTemplate) _templates: Nullable<QueryList<PrimeTemplate>>;\n\n @ContentChild('input') _inputTemplate: TemplateRef<any>;\n\n @ContentChild('output') _outputTemplate: TemplateRef<any>;\n\n inputTemplate: Nullable<TemplateRef<any>>;\n\n outputTemplate: Nullable<TemplateRef<any>>;\n\n constructor(\n public dt: Table,\n @Optional() public editableColumn: EditableColumn,\n @Optional() public editableRow: EditableRow\n ) {}\n\n ngAfterContentInit() {\n (this._templates as QueryList<PrimeTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'input':\n this.inputTemplate = item.template;\n break;\n\n case 'output':\n this.outputTemplate = item.template;\n break;\n }\n });\n }\n\n get editing(): boolean {\n 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));\n }\n}\n\n@Component({\n selector: 'p-tableRadioButton',\n standalone: false,\n template: ` <p-radioButton #rb [(ngModel)]=\"checked\" [disabled]=\"disabled\" [inputId]=\"inputId\" [name]=\"name\" [ariaLabel]=\"ariaLabel\" [binary]=\"true\" [value]=\"value\" (onClick)=\"onClick($event)\" /> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class TableRadioButton {\n @Input({ transform: booleanAttribute }) disabled: boolean | undefined;\n\n @Input() value: any;\n\n @Input({ transform: numberAttribute }) index: number | undefined;\n\n @Input() inputId: string | undefined;\n\n @Input() name: string | undefined;\n\n @Input() ariaLabel: string | undefined;\n\n @ViewChild('rb') inputViewChild: Nullable<RadioButton>;\n\n checked: boolean | undefined;\n\n focused: boolean | undefined;\n\n subscription: Subscription;\n\n constructor(\n public dt: Table,\n public cd: ChangeDetectorRef\n ) {\n this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.dt.isSelected(this.value);\n\n this.ariaLabel = this.ariaLabel || this.dt.config.translation.aria ? (this.checked ? this.dt.config.translation.aria.selectRow : this.dt.config.translation.aria.unselectRow) : undefined;\n this.cd.markForCheck();\n });\n }\n\n ngOnInit() {\n this.checked = this.dt.isSelected(this.value);\n }\n\n onClick(event: RadioButtonClickEvent) {\n if (!this.disabled) {\n this.dt.toggleRowWithRadio(\n {\n originalEvent: event.originalEvent,\n rowIndex: this.index\n },\n this.value\n );\n\n this.inputViewChild?.inputViewChild.nativeElement?.focus();\n }\n DomHandler.clearSelection();\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: 'p-tableCheckbox',\n standalone: false,\n template: `\n <p-checkbox [(ngModel)]=\"checked\" [binary]=\"true\" (onChange)=\"onClick($event)\" [disabled]=\"disabled\" [ariaLabel]=\"ariaLabel\">\n <ng-container *ngIf=\"dt.checkboxIconTemplate || dt._checkboxIconTemplate\">\n <ng-template pTemplate=\"icon\">\n <ng-template *ngTemplateOutlet=\"dt.checkboxIconTemplate || dt._checkboxIconTemplate; context: { $implicit: checked }\"></ng-template>\n </ng-template>\n </ng-container>\n </p-checkbox>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class TableCheckbox {\n @Input({ transform: booleanAttribute }) disabled: boolean | undefined;\n\n @Input() value: any;\n\n @Input({ transform: numberAttribute }) index: number | undefined;\n\n @Input() inputId: string | undefined;\n\n @Input() name: string | undefined;\n\n @Input({ transform: booleanAttribute }) required: boolean | undefined;\n\n @Input() ariaLabel: string | undefined;\n\n checked: boolean | undefined;\n\n focused: boolean | undefined;\n\n subscription: Subscription;\n\n constructor(\n public dt: Table,\n public tableService: TableService,\n public cd: ChangeDetectorRef\n ) {\n this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.dt.isSelected(this.value) && !this.disabled;\n this.ariaLabel = this.ariaLabel || this.dt.config.translation.aria ? (this.checked ? this.dt.config.translation.aria.selectRow : this.dt.config.translation.aria.unselectRow) : undefined;\n this.cd.markForCheck();\n });\n }\n\n ngOnInit() {\n this.checked = this.dt.isSelected(this.value);\n }\n\n onClick(event: Event) {\n if (!this.disabled) {\n this.dt.toggleRowWithCheckbox(\n {\n originalEvent: event,\n rowIndex: this.index\n },\n this.value\n );\n }\n DomHandler.clearSelection();\n }\n\n onFocus() {\n this.focused = true;\n }\n\n onBlur() {\n this.focused = false;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: 'p-tableHeaderCheckbox',\n standalone: false,\n template: `\n <p-checkbox [(ngModel)]=\"checked\" (onChange)=\"onClick($event)\" [binary]=\"true\" [disabled]=\"isDisabled()\" [ariaLabel]=\"ariaLabel\">\n <ng-container *ngIf=\"dt.headerCheckboxIconTemplate || dt._headerCheckboxIconTemplate\">\n <ng-template pTemplate=\"icon\">\n <ng-template *ngTemplateOutlet=\"dt.headerCheckboxIconTemplate || dt._headerCheckboxIconTemplate; context: { $implicit: checked }\"></ng-template>\n </ng-template>\n </ng-container>\n </p-checkbox>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class TableHeaderCheckbox {\n @Input({ transform: booleanAttribute }) disabled: boolean | undefined;\n\n @Input() inputId: string | undefined;\n\n @Input() name: string | undefined;\n\n @Input() ariaLabel: string | undefined;\n\n checked: boolean | undefined;\n\n focused: boolean | undefined;\n\n selectionChangeSubscription: Subscription;\n\n valueChangeSubscription: Subscription;\n\n constructor(\n public dt: Table,\n public tableService: TableService,\n public cd: ChangeDetectorRef\n ) {\n this.valueChangeSubscription = this.dt.tableService.valueSource$.subscribe(() => {\n this.checked = this.updateCheckedState();\n this.ariaLabel = this.ariaLabel || this.dt.config.translation.aria ? (this.checked ? this.dt.config.translation.aria.selectAll : this.dt.config.translation.aria.unselectAll) : undefined;\n });\n\n this.selectionChangeSubscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n }\n\n ngOnInit() {\n this.checked = this.updateCheckedState();\n }\n\n onClick(event: Event) {\n if (!this.disabled) {\n if (this.dt.value && this.dt.value.length > 0) {\n this.dt.toggleRowsWithCheckbox(event, this.checked);\n }\n }\n\n DomHandler.clearSelection();\n }\n\n onFocus() {\n this.focused = true;\n }\n\n onBlur() {\n this.focused = false;\n }\n\n isDisabled() {\n return this.disabled || !this.dt.value || !this.dt.value.length;\n }\n\n ngOnDestroy() {\n if (this.selectionChangeSubscription) {\n this.selectionChangeSubscription.unsubscribe();\n }\n\n if (this.valueChangeSubscription) {\n this.valueChangeSubscription.unsubscribe();\n }\n }\n\n updateCheckedState() {\n this.cd.markForCheck();\n\n if (this.dt._selectAll !== null) {\n return this.dt._selectAll;\n } else {\n const data = this.dt.selectionPageOnly ? this.dt.dataToRender(this.dt.processedData) : this.dt.processedData;\n const val = this.dt.frozenValue ? [...this.dt.frozenValue, ...data] : data;\n const selectableVal = this.dt.rowSelectable ? val.filter((data: any, index: number) => this.dt.rowSelectable({ data, index })) : val;\n\n return ObjectUtils.isNotEmpty(selectableVal) && ObjectUtils.isNotEmpty(this.dt.selection) && selectableVal.every((v: any) => this.dt.selection.some((s: any) => this.dt.equals(v, s)));\n }\n }\n}\n\n@Directive({\n selector: '[pReorderableRowHandle]',\n standalone: false,\n host: {\n class: 'p-datatable-reorderable-row-handle'\n }\n})\nexport class ReorderableRowHandle implements AfterViewInit {\n constructor(public el: ElementRef) {}\n\n ngAfterViewInit() {\n // DomHandler.addClass(this.el.nativeElement, 'p-datatable-reorderable-row-handle');\n }\n}\n\n@Directive({\n selector: '[pReorderableRow]',\n standalone: false\n})\nexport class ReorderableRow implements AfterViewInit {\n @Input('pReorderableRow') index: number | undefined;\n\n @Input({ transform: booleanAttribute }) pReorderableRowDisabled: boolean | undefined;\n\n mouseDownListener: VoidListener;\n\n dragStartListener: VoidListener;\n\n dragEndListener: VoidListener;\n\n dragOverListener: VoidListener;\n\n dragLeaveListener: VoidListener;\n\n dropListener: VoidListener;\n\n constructor(\n private renderer: Renderer2,\n public dt: Table,\n public el: ElementRef,\n public zone: NgZone\n ) {}\n\n ngAfterViewInit() {\n if (this.isEnabled()) {\n this.el.nativeElement.droppable = true;\n this.bindEvents();\n }\n }\n\n bindEvents() {\n this.zone.runOutsideAngular(() => {\n this.mouseDownListener = this.renderer.listen(this.el.nativeElement, 'mousedown', this.onMouseDown.bind(this));\n\n this.dragStartListener = this.renderer.listen(this.el.nativeElement, 'dragstart', this.onDragStart.bind(this));\n\n this.dragEndListener = this.renderer.listen(this.el.nativeElement, 'dragend', this.onDragEnd.bind(this));\n\n this.dragOverListener = this.renderer.listen(this.el.nativeElement, 'dragover', this.onDragOver.bind(this));\n\n this.dragLeaveListener = this.renderer.listen(this.el.nativeElement, 'dragleave', this.onDragLeave.bind(this));\n });\n }\n\n unbindEvents() {\n if (this.mouseDownListener) {\n this.mouseDownListener();\n this.mouseDownListener = null;\n }\n\n if (this.dragStartListener) {\n this.dragStartListener();\n this.dragStartListener = null;\n }\n\n if (this.dragEndListener) {\n this.dragEndListener();\n this.dragEndListener = null;\n }\n\n if (this.dragOverListener) {\n this.dragOverListener();\n this.dragOverListener = null;\n }\n\n if (this.dragLeaveListener) {\n this.dragLeaveListener();\n this.dragLeaveListener = null;\n }\n }\n\n onMouseDown(event: Event) {\n const targetElement = event.target as HTMLElement;\n const isHandleClicked = this.isHandleElement(targetElement);\n this.el.nativeElement.draggable = isHandleClicked;\n }\n\n isHandleElement(element: HTMLElement): boolean {\n if (element?.classList.contains('p-datatable-reorderable-row-handle')) {\n return true;\n }\n\n if (element?.parentElement && !['TD', 'TR'].includes(element?.parentElement?.tagName)) {\n return this.isHandleElement(element?.parentElement);\n }\n\n return false;\n }\n\n onDragStart(event: DragEvent) {\n this.dt.onRowDragStart(event, <number>this.index);\n }\n\n onDragEnd(event: DragEvent) {\n this.dt.onRowDragEnd(event);\n this.el.nativeElement.draggable = false;\n }\n\n onDragOver(event: DragEvent) {\n this.dt.onRowDragOver(event, <number>this.index, this.el.nativeElement);\n event.preventDefault();\n }\n\n onDragLeave(event: DragEvent) {\n this.dt.onRowDragLeave(event, this.el.nativeElement);\n }\n\n isEnabled() {\n return this.pReorderableRowDisabled !== true;\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: DragEvent) {\n if (this.isEnabled() && this.dt.rowDragging) {\n this.dt.onRowDrop(event, this.el.nativeElement);\n }\n\n event.preventDefault();\n }\n\n ngOnDestroy() {\n this.unbindEvents();\n }\n}\n\n@Component({\n selector: 'p-columnFilter',\n standalone: false,\n template: `\n <div [ngClass]=\"cx('filter')\">\n <p-columnFilterFormElement\n *ngIf=\"display === 'row'\"\n class=\"p-fluid\"\n [type]=\"type\"\n [field]=\"field\"\n [ariaLabel]=\"ariaLabel\"\n [filterConstraint]=\"dt.filters[field]\"\n [filterTemplate]=\"filterTemplate\"\n [placeholder]=\"placeholder\"\n [minFractionDigits]=\"minFractionDigits\"\n [maxFractionDigits]=\"maxFractionDigits\"\n [prefix]=\"prefix\"\n [suffix]=\"suffix\"\n [locale]=\"locale\"\n [localeMatcher]=\"localeMatcher\"\n [currency]=\"currency\"\n [currencyDisplay]=\"currencyDisplay\"\n [useGrouping]=\"useGrouping\"\n [showButtons]=\"showButtons\"\n ></p-columnFilterFormElement>\n <p-button\n *ngIf=\"showMenuButton\"\n [styleClass]=\"cx('pcColumnFilterButton')\"\n [attr.aria-haspopup]=\"true\"\n [ariaLabel]=\"filterMenuButtonAriaLabel\"\n [attr.aria-controls]=\"overlayVisible ? overlayId : null\"\n [attr.aria-expanded]=\"overlayVisible ?? false\"\n (click)=\"toggleMenu($event)\"\n (keydown)=\"onToggleButtonKeyDown($event)\"\n [buttonProps]=\"filterButtonProps?.filter\"\n >\n <ng-template #icon>\n <FilterIcon *ngIf=\"!filterIconTemplate && !_filterIconTemplate\" />\n <span class=\"pi-filter-icon\" *ngIf=\"filterIconTemplate || _filterIconTemplate\">\n <ng-template *ngTemplateOutlet=\"filterIconTemplate || _filterIconTemplate\"></ng-template>\n </span>\n </ng-template>\n </p-button>\n <p-button *ngIf=\"showClearButton && display === 'row' && hasFilter\" [styleClass]=\"cx('pcColumnfilterClearButton')\" (onClick)=\"clearFilter()\" [ariaLabel]=\"clearButtonLabel\" [buttonProps]=\"filterButtonProps?.inline?.clear\">\n <ng-template #icon>\n <FilterSlashIcon *ngIf=\"!clearFilterIconTemplate && !_clearFilterIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"clearFilterIconTemplate || _clearFilterIconTemplate\"></ng-template>\n </ng-template>\n </p-button>\n <div\n *ngIf=\"showMenu && overlayVisible\"\n [ngClass]=\"cx('filterOverlay')\"\n [id]=\"overlayId\"\n [attr.aria-modal]=\"true\"\n role=\"dialog\"\n (click)=\"onContentClick()\"\n [@overlayAnimation]=\"'visible'\"\n (@overlayAnimation.start)=\"onOverlayAnimationStart($event)\"\n (@overlayAnimation.done)=\"onOverlayAnimationEnd($event)\"\n (keydown.escape)=\"onEscape()\"\n >\n <ng-container *ngTemplateOutlet=\"headerTemplate || _headerTemplate; context: { $implicit: field }\"></ng-container>\n <ul *ngIf=\"display === 'row'; else menu\" [ngClass]=\"cx('filterConstraintList')\">\n <li\n *ngFor=\"let matchMode of matchModes; let i = index\"\n (click)=\"onRowMatchModeChange(matchMode.value)\"\n (keydown)=\"onRowMatchModeKeyDown($event)\"\n (keydown.enter)=\"onRowMatchModeChange(matchMode.value)\"\n [ngClass]=\"cx('filterConstraint')\"\n [class.p-datatable-filter-constraint-selected]=\"isRowMatchModeSelected(matchMode.value)\"\n [attr.tabindex]=\"i === 0 ? '0' : null\"\n >\n {{ matchMode.label }}\n </li>\n <li [ngClass]=\"cx('filterConstraintSeparator')\"></li>\n <li [ngClass]=\"cx('filterConstraint')\" (click)=\"onRowClearItemClick()\" (keydown)=\"onRowMatchModeKeyDown($event)\" (keydown.enter)=\"onRowClearItemClick()\">\n {{ noFilterLabel }}\n </li>\n </ul>\n <ng-template #menu>\n <div [ngClass]=\"cx('filterOperator')\" *ngIf=\"isShowOperator\">\n <p-select [options]=\"operatorOptions\" [ngModel]=\"operator\" (ngModelChange)=\"onOperatorChange($event)\" [styleClass]=\"cx('pcFilterOperatorDropdown')\"></p-select>\n </div>\n <div [ngClass]=\"cx('filterRuleList')\">\n <div *ngFor=\"let fieldConstraint of fieldConstraints; let i = index\" [ngClass]=\"cx('filterRule')\">\n <p-select\n *ngIf=\"showMatchModes && matchModes\"\n [options]=\"matchModes\"\n [ngModel]=\"fieldConstraint.matchMode\"\n (ngModelChange)=\"onMenuMatchModeChange($event, fieldConstraint)\"\n [styleClass]=\"cx('pcFilterConstraintDropdown')\"\n ></p-select>\n <p-columnFilterFormElement\n [type]=\"type\"\n [field]=\"field\"\n [filterConstraint]=\"fieldConstraint\"\n [filterTemplate]=\"filterTemplate || _filterTemplate\"\n [placeholder]=\"placeholder\"\n [minFractionDigits]=\"minFractionDigits\"\n [maxFractionDigits]=\"maxFractionDigits\"\n [prefix]=\"prefix\"\n [suffix]=\"suffix\"\n [locale]=\"locale\"\n [localeMatcher]=\"localeMatcher\"\n [currency]=\"currency\"\n [currencyDisplay]=\"currencyDisplay\"\n [useGrouping]=\"useGrouping\"\n ></p-columnFilterFormElement>\n <div>\n <p-button\n *ngIf=\"showRemoveIcon\"\n [styleClass]=\"cx('pcFilterRemoveRuleButton')\"\n [text]=\"true\"\n severity=\"danger\"\n size=\"small\"\n (onClick)=\"removeConstraint(fieldConstraint)\"\n [ariaLabel]=\"removeRuleButtonLabel\"\n [label]=\"removeRuleButtonLabel\"\n [buttonProps]=\"filterButtonProps?.popover?.removeRule\"\n >\n <TrashIcon *ngIf=\"!removeRuleIconTemplate && !_removeRuleIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"removeRuleIconTemplate || _removeRuleIconTemplate\"></ng-template>\n </p-button>\n </div>\n </div>\n </div>\n <div *ngIf=\"isShowAddConstraint\">\n <p-button\n type=\"button\"\n [label]=\"addRuleButtonLabel\"\n [attr.aria-label]=\"addRuleButtonLabel\"\n [styleClass]=\"cx('pcFilterAddRuleButton')\"\n [text]=\"true\"\n size=\"small\"\n (onClick)=\"addConstraint()\"\n [buttonProps]=\"filterButtonProps?.popover?.addRule\"\n >\n <PlusIcon *ngIf=\"!addRuleIconTemplate && !_addRuleIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"addRuleIconTemplate || _addRuleIconTemplate\"></ng-template>\n </p-button>\n </div>\n <div [ngClass]=\"cx('filterButtonbar')\">\n <p-button #clearBtn *ngIf=\"showClearButton\" [outlined]=\"true\" (onClick)=\"clearFilter()\" [attr.aria-label]=\"clearButtonLabel\" [label]=\"clearButtonLabel\" [buttonProps]=\"filterButtonProps?.popover?.clear\" />\n <p-button *ngIf=\"showApplyButton\" (onClick)=\"applyFilter()\" size=\"small\" [label]=\"applyButtonLabel\" [attr.aria-label]=\"applyButtonLabel\" [buttonProps]=\"filterButtonProps?.popover?.apply\" />\n </div>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"footerTemplate || _footerTemplate; context: { $implicit: field }\"></ng-container>\n </div>\n </div>\n `,\n 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 }))])])],\n encapsulation: ViewEncapsulation.None\n})\nexport class ColumnFilter extends BaseComponent implements AfterContentInit {\n /**\n * Property represented by the column.\n * @group Props\n */\n @Input() field: string | undefined;\n /**\n * Type of the input.\n * @group Props\n */\n @Input() type: string = 'text';\n /**\n * Filter display.\n * @group Props\n */\n @Input() display: string = 'row';\n /**\n * Decides whether to display filter menu popup.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showMenu: boolean = true;\n /**\n * Filter match mode.\n * @group Props\n */\n @Input() matchMode: string | undefined;\n /**\n * Filter operator.\n * @defaultValue 'AND'\n * @group Props\n */\n @Input() operator: string = FilterOperator.AND;\n /**\n * Decides whether to display filter operator.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showOperator: boolean = true;\n /**\n * Decides whether to display clear filter button.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showClearButton: boolean = true;\n /**\n * Decides whether to display apply filter button.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showApplyButton: boolean = true;\n /**\n * Decides whether to display filter match modes.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showMatchModes: boolean = true;\n /**\n * Decides whether to display add filter button.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showAddButton: boolean = true;\n /**\n * Decides whether to close popup on clear button click.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) hideOnClear: boolean = false;\n /**\n * Filter placeholder.\n * @group Props\n */\n @Input() placeholder: string | undefined;\n /**\n * Filter match mode options.\n * @group Props\n */\n @Input() matchModeOptions: SelectItem[] | undefined;\n /**\n * Defines maximum amount of constraints.\n * @group Props\n */\n @Input({ transform: numberAttribute }) maxConstraints: number = 2;\n /**\n * Defines minimum fraction of digits.\n * @group Props\n */\n @Input({ transform: (value: unknown) => numberAttribute(value, null) })\n minFractionDigits: number | undefined;\n /**\n * Defines maximum fraction of digits.\n * @group Props\n */\n @Input({ transform: (value: unknown) => numberAttribute(value, null) })\n maxFractionDigits: number | undefined;\n /**\n * Defines prefix of the filter.\n * @group Props\n */\n @Input() prefix: string | undefined;\n /**\n * Defines suffix of the filter.\n * @group Props\n */\n @Input() suffix: string | undefined;\n /**\n * Defines filter locale.\n * @group Props\n */\n @Input() locale: string | undefined;\n /**\n * Defines filter locale matcher.\n * @group Props\n */\n @Input() localeMatcher: string | undefined;\n /**\n * Enables currency input.\n * @group Props\n */\n @Input() currency: string | undefined;\n /**\n * Defines the display of the currency input.\n * @group Props\n */\n @Input() currencyDisplay: string | undefined;\n /**\n * Defines if filter grouping will be enabled.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) useGrouping: boolean = true;\n /**\n * Defines the visibility of buttons.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showButtons: boolean = true;\n /**\n * Defines the aria-label of the form element.\n * @group Props\n */\n @Input() ariaLabel: string | undefined;\n /**\n * Used to pass all filter button property object\n * @defaultValue {\n filter: { severity: 'secondary', text: true, rounded: true },\n inline: {\n clear: { severity: 'secondary', text: true, rounded: true }\n },\n popover: {\n addRule: { severity: 'info', text: true, size: 'small' },\n removeRule: { severity: 'danger', text: true, size: 'small' },\n apply: { size: 'small' },\n clear: { outlined: true, size: 'small' }\n }\n }\n */\n @Input() filterButtonProps: TableFilterButtonPropsOptions = {\n filter: { severity: 'secondary', text: true, rounded: true },\n inline: {\n clear: { severity: 'secondary', text: true, rounded: true }\n },\n popover: {\n addRule: { severity: 'info', text: true, size: 'small' },\n removeRule: { severity: 'danger', text: true, size: 'small' },\n apply: { size: 'small' },\n clear: { outlined: true, size: 'small' }\n }\n };\n /**\n * Callback to invoke on overlay is shown.\n * @param {AnimationEvent} originalEvent - animation event.\n * @group Emits\n */\n @Output() onShow: EventEmitter<{ originalEvent: AnimationEvent }> = new EventEmitter<{\n originalEvent: AnimationEvent;\n }>();\n /**\n * Callback to invoke on overlay is hidden.\n * @param {AnimationEvent} originalEvent - animation event.\n * @group Emits\n */\n @Output() onHide: EventEmitter<{ originalEvent: AnimationEvent }> = new EventEmitter<{\n originalEvent: AnimationEvent;\n }>();\n\n @ViewChild(Button, { static: false, read: ElementRef }) icon: ElementRef | undefined;\n\n @ViewChild('clearBtn') clearButtonViewChild: Nullable<ElementRef>;\n\n @ContentChildren(PrimeTemplate) _templates: Nullable<QueryList<any>>;\n\n overlaySubscription: Subscription | undefined;\n\n @ContentChild('header') _headerTemplate: TemplateRef<any>;\n headerTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('filter') _filterTemplate: TemplateRef<any>;\n filterTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('footer') _footerTemplate: TemplateRef<any>;\n footerTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('filtericon') _filterIconTemplate: TemplateRef<any>;\n filterIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('removeruleicon') _removeRuleIconTemplate: TemplateRef<any>;\n removeRuleIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('addruleicon') _addRuleIconTemplate: TemplateRef<any>;\n addRuleIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('clearfiltericon') _clearFilterIconTemplate: TemplateRef<any>;\n clearFilterIconTemplate: Nullable<TemplateRef<any>>;\n\n operatorOptions: any[] | undefined;\n\n overlayVisible: boolean | undefined;\n\n overlay: HTMLElement | undefined | null;\n\n scrollHandler: ConnectedOverlayScrollHandler | null | undefined;\n\n documentClickListener: VoidListener;\n\n documentResizeListener: VoidListener;\n\n matchModes: SelectItem[] | undefined;\n\n translationSubscription: Subscription | undefined;\n\n resetSubscription: Subscription | undefined;\n\n selfClick: boolean | undefined;\n\n overlayEventListener: any;\n\n overlayId: any;\n\n get fieldConstraints(): FilterMetadata[] | undefined | null {\n return this.dt.filters ? <FilterMetadata[]>this.dt.filters[<string>this.field] : null;\n }\n\n get showRemoveIcon(): boolean {\n return this.fieldConstraints ? this.fieldConstraints.length > 1 : false;\n }\n\n get showMenuButton(): boolean {\n return this.showMenu && (this.display === 'row' ? this.type !== 'boolean' : true);\n }\n\n get isShowOperator(): boolean {\n return this.showOperator && this.type !== 'boolean';\n }\n\n get isShowAddConstraint(): boolean | undefined | null {\n return this.showAddButton && this.type !== 'boolean' && this.fieldConstraints && this.fieldConstraints.length < this.maxConstraints;\n }\n\n get showMenuButtonLabel() {\n return this.config.getTranslation(TranslationKeys.SHOW_FILTER_MENU);\n }\n\n get applyButtonLabel(): string {\n return this.config.getTranslation(TranslationKeys.APPLY);\n }\n\n get clearButtonLabel(): string {\n return this.config.getTranslation(TranslationKeys.CLEAR);\n }\n\n get addRuleButtonLabel(): string {\n return this.config.getTranslation(TranslationKeys.ADD_RULE);\n }\n\n get removeRuleButtonLabel(): string {\n return this.config.getTranslation(TranslationKeys.REMOVE_RULE);\n }\n\n get noFilterLabel(): string {\n return this.config.getTranslation(TranslationKeys.NO_FILTER);\n }\n\n get filterMenuButtonAriaLabel() {\n return this.config.translation ? (this.overlayVisible ? this.config.translation.aria.hideFilterMenu : this.config.translation.aria.showFilterMenu) : undefined;\n }\n\n get removeRuleButtonAriaLabel() {\n return this.config.translation ? this.config.translation.removeRule : undefined;\n }\n\n get filterOperatorAriaLabel() {\n return this.config.translation ? this.config.translation.aria.filterOperator : undefined;\n }\n\n get filterConstraintAriaLabel() {\n return this.config.translation ? this.config.translation.aria.filterConstraint : undefined;\n }\n\n dt = inject(Table);\n\n overlayService = inject(OverlayService);\n\n hostName = 'Table';\n\n parentInstance = inject(forwardRef(() => Table));\n\n ngOnInit() {\n super.ngOnInit();\n this.overlayId = UniqueComponentId();\n if (!this.dt.filters[<string>this.field]) {\n this.initFieldFilterConstraint();\n }\n\n this.translationSubscription = this.config.translationObserver.subscribe(() => {\n this.generateMatchModeOptions();\n this.generateOperatorOptions();\n });\n\n this.generateMatchModeOptions();\n this.generateOperatorOptions();\n }\n\n generateMatchModeOptions() {\n this.matchModes =\n this.matchModeOptions ||\n (this.config as any).filterMatchModeOptions[this.type]?.map((key: any) => {\n return {\n label: this.config.getTranslation(key),\n value: key\n };\n });\n }\n\n generateOperatorOptions() {\n this.operatorOptions = [\n {\n label: this.config.getTranslation(TranslationKeys.MATCH_ALL),\n value: FilterOperator.AND\n },\n {\n label: this.config.getTranslation(TranslationKeys.MATCH_ANY),\n value: FilterOperator.OR\n }\n ];\n }\n\n ngAfterContentInit() {\n (this._templates as QueryList<PrimeTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'filter':\n this.filterTemplate = item.template;\n break;\n\n case 'footer':\n this.footerTemplate = item.template;\n break;\n\n case 'filtericon':\n this.filterIconTemplate = item.template;\n break;\n\n case 'clearfiltericon':\n this.clearFilterIconTemplate = item.template;\n break;\n\n case 'removeruleicon':\n this.removeRuleIconTemplate = item.template;\n break;\n\n case 'addruleicon':\n this.addRuleIconTemplate = item.template;\n break;\n\n default:\n this.filterTemplate = item.template;\n break;\n }\n });\n }\n\n initFieldFilterConstraint() {\n let defaultMatchMode = this.getDefaultMatchMode();\n this.dt.filters[<string>this.field] =\n this.display == 'row'\n ? { value: null, matchMode: defaultMatchMode }\n : [\n {\n value: null,\n matchMode: defaultMatchMode,\n operator: this.operator\n }\n ];\n }\n\n onMenuMatchModeChange(value: any, filterMeta: FilterMetadata) {\n filterMeta.matchMode = value;\n\n if (!this.showApplyButton) {\n this.dt._filter();\n }\n }\n\n onRowMatchModeChange(matchMode: string) {\n const fieldFilter = <FilterMetadata>this.dt.filters[<string>this.field];\n fieldFilter.matchMode = matchMode;\n\n if (fieldFilter.value) {\n this.dt._filter();\n }\n\n this.hide();\n }\n\n onRowMatchModeKeyDown(event: KeyboardEvent) {\n let item = <HTMLLIElement>event.target;\n\n switch (event.key) {\n case 'ArrowDown':\n var nextItem = this.findNextItem(item);\n if (nextItem) {\n item.removeAttribute('tabindex');\n nextItem.tabIndex = '0';\n nextItem.focus();\n }\n\n event.preventDefault();\n break;\n\n case 'ArrowUp':\n var prevItem = this.findPrevItem(item);\n if (prevItem) {\n item.removeAttribute('tabindex');\n prevItem.tabIndex = '0';\n prevItem.focus();\n }\n\n event.preventDefault();\n break;\n }\n }\n\n onRowClearItemClick() {\n this.clearFilter();\n this.hide();\n }\n\n isRowMatchModeSelected(matchMode: string) {\n return (<FilterMetadata>this.dt.filters[<string>this.field]).matchMode === matchMode;\n }\n\n addConstraint() {\n (<FilterMetadata[]>this.dt.filters[<string>this.field]).push({\n value: null,\n matchMode: this.getDefaultMatchMode(),\n operator: this.getDefaultOperator()\n });\n DomHandler.focus(this.clearButtonViewChild.nativeElement);\n }\n\n removeConstraint(filterMeta: FilterMetadata) {\n this.dt.filters[<string>this.field] = (<FilterMetadata[]>this.dt.filters[<string>this.field]).filter((meta) => meta !== filterMeta);\n if (!this.showApplyButton) {\n this.dt._filter();\n }\n DomHandler.focus(this.clearButtonViewChild.nativeElement);\n }\n\n onOperatorChange(value: any) {\n (<FilterMetadata[]>this.dt.filters[<string>this.field]).forEach((filterMeta) => {\n filterMeta.operator = value;\n this.operator = value;\n });\n\n if (!this.showApplyButton) {\n this.dt._filter();\n }\n }\n\n toggleMenu(event: Event) {\n this.overlayVisible = !this.overlayVisible;\n event.stopPropagation();\n }\n\n onToggleButtonKeyDown(event: KeyboardEvent) {\n switch (event.key) {\n case 'Escape':\n case 'Tab':\n this.overlayVisible = false;\n break;\n\n case 'ArrowDown':\n if (this.overlayVisible) {\n let focusable = DomHandler.getFocusableElements(<HTMLElement>this.overlay);\n if (focusable) {\n focusable[0].focus();\n }\n event.preventDefault();\n } else if (event.altKey) {\n this.overlayVisible = true;\n event.preventDefault();\n }\n break;\n case 'Enter':\n this.toggleMenu(event);\n event.preventDefault();\n break;\n }\n }\n\n onEscape() {\n this.overlayVisible = false;\n this.icon?.nativeElement.focus();\n }\n\n findNextItem(item: HTMLLIElement): any {\n let nextItem = <HTMLLIElement>item.nextElementSibling;\n\n if (nextItem) return DomHandler.hasClass(nextItem, 'p-datatable-filter-constraint-separator') ? this.findNextItem(nextItem) : nextItem;\n else return item.parentElement?.firstElementChild;\n }\n\n findPrevItem(item: HTMLLIElement): any {\n let prevItem = <HTMLLIElement>item.previousElementSibling;\n\n if (prevItem) return DomHandler.hasClass(prevItem, 'p-datatable-filter-constraint-separator') ? this.findPrevItem(prevItem) : prevItem;\n else return item.parentElement?.lastElementChild;\n }\n\n onContentClick() {\n this.selfClick = true;\n }\n\n onOverlayAnimationStart(event: AnimationEvent) {\n switch (event.toState) {\n case 'visible':\n this.overlay = event.element;\n this.renderer.appendChild(this.document.body, this.overlay);\n ZIndexUtils.set('overlay', this.overlay, this.config.zIndex.overlay);\n DomHandler.absolutePosition(this.overlay, this.icon?.nativeElement);\n this.bindDocumentClickListener();\n this.bindDocumentResizeListener();\n this.bindScrollListener();\n\n this.overlayEventListener = (e: any) => {\n if (this.overlay && this.overlay.contains(e.target)) {\n this.selfClick = true;\n }\n };\n\n this.overlaySubscription = this.overlayService.clickObservable.subscribe(this.overlayEventListener);\n this.onShow.emit({ originalEvent: event });\n break;\n\n case 'void':\n this.onOverlayHide();\n\n if (this.overlaySubscription) {\n this.overlaySubscription.unsubscribe();\n }\n break;\n }\n }\n\n onOverlayAnimationEnd(event: AnimationEvent) {\n switch (event.toState) {\n case 'visible':\n this.focusOnFirstElement();\n break;\n case 'void':\n ZIndexUtils.clear(event.element);\n this.onHide.emit({ originalEvent: event });\n break;\n }\n }\n\n focusOnFirstElement() {\n if (this.overlay) {\n DomHandler.focus(DomHandler.getFirstFocusableElement(this.overlay, ''));\n }\n }\n\n getDefaultMatchMode(): string {\n if (this.matchMode) {\n return this.matchMode;\n } else {\n if (this.type === 'text') return FilterMatchMode.STARTS_WITH;\n else if (this.type === 'numeric') return FilterMatchMode.EQUALS;\n else if (this.type === 'date') return FilterMatchMode.DATE_IS;\n else return FilterMatchMode.CONTAINS;\n }\n }\n\n getDefaultOperator(): string | undefined {\n return this.dt.filters ? (<FilterMetadata[]>this.dt.filters[<string>(<string>this.field)])[0].operator : this.operator;\n }\n\n hasRowFilter() {\n return this.dt.filters[<string>this.field] && !this.dt.isFilterBlank((<FilterMetadata>this.dt.filters[<string>this.field]).value);\n }\n\n get hasFilter(): boolean {\n let fieldFilter = this.dt.filters[<string>this.field];\n if (fieldFilter) {\n if (Array.isArray(fieldFilter)) return !this.dt.isFilterBlank((<FilterMetadata[]>fieldFilter)[0].value);\n else return !this.dt.isFilterBlank(fieldFilter.value);\n }\n\n return false;\n }\n\n isOutsideClicked(event: any): boolean {\n return !(\n DomHandler.hasClass(this.overlay?.nextElementSibling, 'p-overlay') ||\n DomHandler.hasClass(this.overlay?.nextElementSibling, 'p-popover') ||\n this.overlay?.isSameNode(event.target) ||\n this.overlay?.contains(event.target) ||\n this.icon?.nativeElement.isSameNode(event.target) ||\n this.icon?.nativeElement.contains(event.target) ||\n DomHandler.hasClass(event.target, 'p-datatable-filter-add-rule-button') ||\n DomHandler.hasClass(event.target.parentElement, 'p-datatable-filter-add-rule-button') ||\n DomHandler.hasClass(event.target, 'p-datatable-filter-remove-rule-button') ||\n DomHandler.hasClass(event.target.parentElement, 'p-datatable-filter-remove-rule-button')\n );\n }\n\n bindDocumentClickListener() {\n if (!this.documentClickListener) {\n const documentTarget: any = this.el ? this.el.nativeElement.ownerDocument : 'document';\n\n this.documentClickListener = this.renderer.listen(documentTarget, 'mousedown', (event) => {\n const dialogElements = document.querySelectorAll('[role=\"dialog\"]');\n const targetIsColumnFilterMenuButton = event.target.closest('.p-datatable-column-filter-button');\n if (this.overlayVisible && this.isOutsideClicked(event) && (targetIsColumnFilterMenuButton || dialogElements?.length <= 1)) {\n this.hide();\n }\n\n this.selfClick = false;\n });\n }\n }\n\n unbindDocumentClickListener() {\n if (this.documentClickListener) {\n this.documentClickListener();\n this.documentClickListener = null;\n this.selfClick = false;\n }\n }\n\n bindDocumentResizeListener() {\n if (!this.documentResizeListener) {\n this.documentResizeListener = this.renderer.listen(this.document.defaultView, 'resize', (event) => {\n if (this.overlayVisible && !DomHandler.isTouchDevice()) {\n this.hide();\n }\n });\n }\n }\n\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n this.documentResizeListener();\n this.documentResizeListener = null;\n }\n }\n\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.icon?.nativeElement, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n\n hide() {\n this.overlayVisible = false;\n this.cd.markForCheck();\n }\n\n onOverlayHide() {\n this.unbindDocumentClickListener();\n this.unbindDocumentResizeListener();\n this.unbindScrollListener();\n this.overlay = null;\n }\n\n clearFilter() {\n this.initFieldFilterConstraint();\n this.dt._filter();\n if (this.hideOnClear) this.hide();\n }\n\n applyFilter() {\n this.dt._filter();\n this.hide();\n }\n\n ngOnDestroy() {\n if (this.overlay) {\n this.renderer.appendChild(this.el.nativeElement, this.overlay);\n ZIndexUtils.clear(this.overlay);\n this.onOverlayHide();\n }\n\n if (this.translationSubscription) {\n this.translationSubscription.unsubscribe();\n }\n\n if (this.resetSubscription) {\n this.resetSubscription.unsubscribe();\n }\n\n if (this.overlaySubscription) {\n this.overlaySubscription.unsubscribe();\n }\n\n super.ngOnDestroy();\n }\n}\n\n@Component({\n selector: 'p-columnFilterFormElement',\n standalone: false,\n template: `\n <ng-container *ngIf=\"filterTemplate; else builtInElement\">\n <ng-container\n *ngTemplateOutlet=\"\n filterTemplate;\n context: {\n $implicit: filterConstraint.value,\n filterCallback: filterCallback,\n type: type,\n field: field,\n filterConstraint: filterConstraint,\n placeholder: placeholder,\n minFractionDigits: minFractionDigits,\n maxFractionDigits: maxFractionDigits,\n prefix: prefix,\n suffix: suffix,\n locale: locale,\n localeMatcher: localeMatcher,\n currency: currency,\n currencyDisplay: currencyDisplay,\n useGrouping: useGrouping,\n showButtons: showButtons\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #builtInElement>\n <ng-container [ngSwitch]=\"type\">\n <input\n *ngSwitchCase=\"'text'\"\n type=\"text\"\n [ariaLabel]=\"ariaLabel\"\n pInputText\n [value]=\"filterConstraint?.value\"\n (input)=\"onModelChange($event.target.value)\"\n (keydown.enter)=\"onTextInputEnterKeyDown($event)\"\n [attr.placeholder]=\"placeholder\"\n />\n <p-inputNumber\n *ngSwitchCase=\"'numeric'\"\n [ngModel]=\"filterConstraint?.value\"\n (ngModelChange)=\"onModelChange($event)\"\n (onKeyDown)=\"onNumericInputKeyDown($event)\"\n [showButtons]=\"showButtons\"\n [minFractionDigits]=\"minFractionDigits\"\n [maxFractionDigits]=\"maxFractionDigits\"\n [ariaLabel]=\"ariaLabel\"\n [prefix]=\"prefix\"\n [suffix]=\"suffix\"\n [placeholder]=\"placeholder\"\n [mode]=\"currency ? 'currency' : 'decimal'\"\n [locale]=\"locale\"\n [localeMatcher]=\"localeMatcher\"\n [currency]=\"currency\"\n [currencyDisplay]=\"currencyDisplay\"\n [useGrouping]=\"useGrouping\"\n ></p-inputNumber>\n <p-checkbox [indeterminate]=\"true\" [binary]=\"true\" *ngSwitchCase=\"'boolean'\" [ngModel]=\"filterConstraint?.value\" (ngModelChange)=\"onModelChange($event)\" />\n\n <p-calendar [ariaLabel]=\"ariaLabel\" *ngSwitchCase=\"'date'\" [placeholder]=\"placeholder\" [ngModel]=\"filterConstraint?.value\" (ngModelChange)=\"onModelChange($event)\" appendTo=\"body\"></p-calendar>\n </ng-container>\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class ColumnFilterFormElement implements OnInit {\n @Input() field: string | undefined;\n\n @Input() type: string | undefined;\n\n @Input() filterConstraint: FilterMetadata | undefined;\n\n @Input() filterTemplate: Nullable<TemplateRef<any>>;\n\n @Input() placeholder: string | undefined;\n\n @Input({ transform: (value: unknown) => numberAttribute(value, null) })\n minFractionDigits: number | undefined;\n\n @Input({ transform: (value: unknown) => numberAttribute(value, null) })\n maxFractionDigits: number | undefined;\n\n @Input() prefix: string | undefined;\n\n @Input() suffix: string | undefined;\n\n @Input() locale: string | undefined;\n\n @Input() localeMatcher: string | undefined;\n\n @Input() currency: string | undefined;\n\n @Input() currencyDisplay: string | undefined;\n\n @Input({ transform: booleanAttribute }) useGrouping: boolean = true;\n\n @Input() ariaLabel: string | undefined;\n\n get showButtons(): boolean {\n return this.colFilter.showButtons;\n }\n\n filterCallback: any;\n\n constructor(\n public dt: Table,\n private colFilter: ColumnFilter\n ) {}\n\n ngOnInit() {\n this.filterCallback = (value: any) => {\n (<any>this.filterConstraint).value = value;\n this.dt._filter();\n };\n }\n\n onModelChange(value: any) {\n (<any>this.filterConstraint).value = value;\n\n if (this.type === 'date' || this.type === 'boolean' || value === '') {\n this.dt._filter();\n }\n }\n\n onTextInputEnterKeyDown(event: KeyboardEvent) {\n this.dt._filter();\n event.preventDefault();\n }\n\n onNumericInputKeyDown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n this.dt._filter();\n event.preventDefault();\n }\n }\n}\n\n@NgModule({\n imports: [\n CommonModule,\n PaginatorModule,\n InputTextModule,\n SelectModule,\n FormsModule,\n ButtonModule,\n SelectButtonModule,\n CalendarModule,\n InputNumberModule,\n CheckboxModule,\n ScrollerModule,\n ArrowDownIcon,\n ArrowUpIcon,\n SpinnerIcon,\n SortAltIcon,\n SortAmountUpAltIcon,\n SortAmountDownIcon,\n CheckIcon,\n FilterIcon,\n FilterSlashIcon,\n PlusIcon,\n TrashIcon,\n RadioButtonModule\n ],\n exports: [\n Table,\n SharedModule,\n SortableColumn,\n FrozenColumn,\n RowGroupHeader,\n SelectableRow,\n RowToggler,\n ContextMenuRow,\n ResizableColumn,\n ReorderableColumn,\n EditableColumn,\n CellEditor,\n SortIcon,\n TableRadioButton,\n TableCheckbox,\n TableHeaderCheckbox,\n ReorderableRowHandle,\n ReorderableRow,\n SelectableRowDblClick,\n EditableRow,\n InitEditableRow,\n SaveEditableRow,\n CancelEditableRow,\n ColumnFilter,\n ColumnFilterFormElement,\n ScrollerModule\n ],\n declarations: [\n Table,\n SortableColumn,\n FrozenColumn,\n RowGroupHeader,\n SelectableRow,\n RowToggler,\n ContextMenuRow,\n ResizableColumn,\n ReorderableColumn,\n EditableColumn,\n CellEditor,\n TableBody,\n SortIcon,\n TableRadioButton,\n TableCheckbox,\n TableHeaderCheckbox,\n ReorderableRowHandle,\n ReorderableRow,\n SelectableRowDblClick,\n EditableRow,\n InitEditableRow,\n SaveEditableRow,\n CancelEditableRow,\n ColumnFilter,\n ColumnFilterFormElement\n ],\n providers: [TableStyle]\n})\nexport class TableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}