primeng 22.1.0 → 22.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (850) hide show
  1. package/fesm2022/primeng-accordion.mjs +998 -578
  2. package/fesm2022/primeng-accordion.mjs.map +1 -1
  3. package/fesm2022/primeng-animateonscroll.mjs +266 -165
  4. package/fesm2022/primeng-animateonscroll.mjs.map +1 -1
  5. package/fesm2022/primeng-api.mjs +888 -847
  6. package/fesm2022/primeng-api.mjs.map +1 -1
  7. package/fesm2022/primeng-autocomplete.mjs +2534 -1592
  8. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  9. package/fesm2022/primeng-autofocus.mjs +114 -77
  10. package/fesm2022/primeng-autofocus.mjs.map +1 -1
  11. package/fesm2022/primeng-avatar.mjs +330 -189
  12. package/fesm2022/primeng-avatar.mjs.map +1 -1
  13. package/fesm2022/primeng-avatargroup.mjs +178 -95
  14. package/fesm2022/primeng-avatargroup.mjs.map +1 -1
  15. package/fesm2022/primeng-badge.mjs +290 -156
  16. package/fesm2022/primeng-badge.mjs.map +1 -1
  17. package/fesm2022/primeng-base.mjs +95 -101
  18. package/fesm2022/primeng-base.mjs.map +1 -1
  19. package/fesm2022/primeng-basecomponent.mjs +528 -489
  20. package/fesm2022/primeng-basecomponent.mjs.map +1 -1
  21. package/fesm2022/primeng-baseeditableholder.mjs +131 -69
  22. package/fesm2022/primeng-baseeditableholder.mjs.map +1 -1
  23. package/fesm2022/primeng-baseinput.mjs +214 -99
  24. package/fesm2022/primeng-baseinput.mjs.map +1 -1
  25. package/fesm2022/primeng-basemodelholder.mjs +39 -26
  26. package/fesm2022/primeng-basemodelholder.mjs.map +1 -1
  27. package/fesm2022/primeng-bind.mjs +156 -96
  28. package/fesm2022/primeng-bind.mjs.map +1 -1
  29. package/fesm2022/primeng-blockui.mjs +360 -228
  30. package/fesm2022/primeng-blockui.mjs.map +1 -1
  31. package/fesm2022/primeng-breadcrumb.mjs +458 -220
  32. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  33. package/fesm2022/primeng-button.mjs +1568 -703
  34. package/fesm2022/primeng-button.mjs.map +1 -1
  35. package/fesm2022/primeng-buttongroup.mjs +125 -73
  36. package/fesm2022/primeng-buttongroup.mjs.map +1 -1
  37. package/fesm2022/primeng-card.mjs +389 -178
  38. package/fesm2022/primeng-card.mjs.map +1 -1
  39. package/fesm2022/primeng-carousel.mjs +2393 -1773
  40. package/fesm2022/primeng-carousel.mjs.map +1 -1
  41. package/fesm2022/primeng-cascadeselect.mjs +2373 -1364
  42. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  43. package/fesm2022/primeng-chart.mjs +402 -231
  44. package/fesm2022/primeng-chart.mjs.map +1 -1
  45. package/fesm2022/primeng-checkbox.mjs +650 -353
  46. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  47. package/fesm2022/primeng-chip.mjs +411 -224
  48. package/fesm2022/primeng-chip.mjs.map +1 -1
  49. package/fesm2022/primeng-classnames.mjs +95 -48
  50. package/fesm2022/primeng-classnames.mjs.map +1 -1
  51. package/fesm2022/primeng-colorpicker.mjs +890 -635
  52. package/fesm2022/primeng-colorpicker.mjs.map +1 -1
  53. package/fesm2022/primeng-commandmenu.mjs +568 -315
  54. package/fesm2022/primeng-commandmenu.mjs.map +1 -1
  55. package/fesm2022/primeng-compare.mjs +843 -480
  56. package/fesm2022/primeng-compare.mjs.map +1 -1
  57. package/fesm2022/primeng-config.mjs +415 -321
  58. package/fesm2022/primeng-config.mjs.map +1 -1
  59. package/fesm2022/primeng-confirmdialog.mjs +1188 -540
  60. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  61. package/fesm2022/primeng-confirmpopup.mjs +810 -531
  62. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  63. package/fesm2022/primeng-contextmenu.mjs +1862 -1051
  64. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  65. package/fesm2022/primeng-dataview.mjs +1130 -549
  66. package/fesm2022/primeng-dataview.mjs.map +1 -1
  67. package/fesm2022/primeng-datepicker.mjs +3750 -3354
  68. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  69. package/fesm2022/primeng-dialog.mjs +1635 -968
  70. package/fesm2022/primeng-dialog.mjs.map +1 -1
  71. package/fesm2022/primeng-divider.mjs +272 -148
  72. package/fesm2022/primeng-divider.mjs.map +1 -1
  73. package/fesm2022/primeng-dock.mjs +609 -385
  74. package/fesm2022/primeng-dock.mjs.map +1 -1
  75. package/fesm2022/primeng-dom.mjs +599 -761
  76. package/fesm2022/primeng-dom.mjs.map +1 -1
  77. package/fesm2022/primeng-dragdrop.mjs +323 -311
  78. package/fesm2022/primeng-dragdrop.mjs.map +1 -1
  79. package/fesm2022/primeng-drawer.mjs +913 -482
  80. package/fesm2022/primeng-drawer.mjs.map +1 -1
  81. package/fesm2022/primeng-dynamicdialog.mjs +828 -928
  82. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  83. package/fesm2022/primeng-editor.mjs +547 -390
  84. package/fesm2022/primeng-editor.mjs.map +1 -1
  85. package/fesm2022/primeng-fieldset.mjs +559 -274
  86. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  87. package/fesm2022/primeng-fileupload.mjs +1836 -1047
  88. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  89. package/fesm2022/primeng-floatlabel.mjs +187 -102
  90. package/fesm2022/primeng-floatlabel.mjs.map +1 -1
  91. package/fesm2022/primeng-fluid.mjs +156 -85
  92. package/fesm2022/primeng-fluid.mjs.map +1 -1
  93. package/fesm2022/primeng-focustrap.mjs +150 -112
  94. package/fesm2022/primeng-focustrap.mjs.map +1 -1
  95. package/fesm2022/primeng-galleria.mjs +2589 -1406
  96. package/fesm2022/primeng-galleria.mjs.map +1 -1
  97. package/fesm2022/primeng-gallery.mjs +2768 -1798
  98. package/fesm2022/primeng-gallery.mjs.map +1 -1
  99. package/fesm2022/primeng-iconfield.mjs +192 -93
  100. package/fesm2022/primeng-iconfield.mjs.map +1 -1
  101. package/fesm2022/primeng-icons-angledoubledown.mjs +41 -23
  102. package/fesm2022/primeng-icons-angledoubledown.mjs.map +1 -1
  103. package/fesm2022/primeng-icons-angledoubleleft.mjs +41 -23
  104. package/fesm2022/primeng-icons-angledoubleleft.mjs.map +1 -1
  105. package/fesm2022/primeng-icons-angledoubleright.mjs +41 -23
  106. package/fesm2022/primeng-icons-angledoubleright.mjs.map +1 -1
  107. package/fesm2022/primeng-icons-angledoubleup.mjs +41 -23
  108. package/fesm2022/primeng-icons-angledoubleup.mjs.map +1 -1
  109. package/fesm2022/primeng-icons-angledown.mjs +41 -23
  110. package/fesm2022/primeng-icons-angledown.mjs.map +1 -1
  111. package/fesm2022/primeng-icons-angleleft.mjs +41 -23
  112. package/fesm2022/primeng-icons-angleleft.mjs.map +1 -1
  113. package/fesm2022/primeng-icons-angleright.mjs +41 -23
  114. package/fesm2022/primeng-icons-angleright.mjs.map +1 -1
  115. package/fesm2022/primeng-icons-angleup.mjs +41 -23
  116. package/fesm2022/primeng-icons-angleup.mjs.map +1 -1
  117. package/fesm2022/primeng-icons-arrowdown.mjs +46 -28
  118. package/fesm2022/primeng-icons-arrowdown.mjs.map +1 -1
  119. package/fesm2022/primeng-icons-arrowdownleft.mjs +41 -23
  120. package/fesm2022/primeng-icons-arrowdownleft.mjs.map +1 -1
  121. package/fesm2022/primeng-icons-arrowdownright.mjs +41 -23
  122. package/fesm2022/primeng-icons-arrowdownright.mjs.map +1 -1
  123. package/fesm2022/primeng-icons-arrowleft.mjs +46 -28
  124. package/fesm2022/primeng-icons-arrowleft.mjs.map +1 -1
  125. package/fesm2022/primeng-icons-arrowright.mjs +41 -23
  126. package/fesm2022/primeng-icons-arrowright.mjs.map +1 -1
  127. package/fesm2022/primeng-icons-arrowup.mjs +46 -28
  128. package/fesm2022/primeng-icons-arrowup.mjs.map +1 -1
  129. package/fesm2022/primeng-icons-ban.mjs +46 -28
  130. package/fesm2022/primeng-icons-ban.mjs.map +1 -1
  131. package/fesm2022/primeng-icons-bars.mjs +41 -23
  132. package/fesm2022/primeng-icons-bars.mjs.map +1 -1
  133. package/fesm2022/primeng-icons-baseicon.mjs +111 -67
  134. package/fesm2022/primeng-icons-baseicon.mjs.map +1 -1
  135. package/fesm2022/primeng-icons-blank.mjs +40 -22
  136. package/fesm2022/primeng-icons-blank.mjs.map +1 -1
  137. package/fesm2022/primeng-icons-calendar.mjs +41 -23
  138. package/fesm2022/primeng-icons-calendar.mjs.map +1 -1
  139. package/fesm2022/primeng-icons-caretleft.mjs +41 -23
  140. package/fesm2022/primeng-icons-caretleft.mjs.map +1 -1
  141. package/fesm2022/primeng-icons-caretright.mjs +41 -23
  142. package/fesm2022/primeng-icons-caretright.mjs.map +1 -1
  143. package/fesm2022/primeng-icons-check.mjs +41 -23
  144. package/fesm2022/primeng-icons-check.mjs.map +1 -1
  145. package/fesm2022/primeng-icons-chevrondown.mjs +41 -23
  146. package/fesm2022/primeng-icons-chevrondown.mjs.map +1 -1
  147. package/fesm2022/primeng-icons-chevronleft.mjs +41 -23
  148. package/fesm2022/primeng-icons-chevronleft.mjs.map +1 -1
  149. package/fesm2022/primeng-icons-chevronright.mjs +41 -23
  150. package/fesm2022/primeng-icons-chevronright.mjs.map +1 -1
  151. package/fesm2022/primeng-icons-chevronup.mjs +41 -23
  152. package/fesm2022/primeng-icons-chevronup.mjs.map +1 -1
  153. package/fesm2022/primeng-icons-exclamationtriangle.mjs +46 -28
  154. package/fesm2022/primeng-icons-exclamationtriangle.mjs.map +1 -1
  155. package/fesm2022/primeng-icons-eye.mjs +41 -23
  156. package/fesm2022/primeng-icons-eye.mjs.map +1 -1
  157. package/fesm2022/primeng-icons-eyeslash.mjs +46 -28
  158. package/fesm2022/primeng-icons-eyeslash.mjs.map +1 -1
  159. package/fesm2022/primeng-icons-filter.mjs +46 -28
  160. package/fesm2022/primeng-icons-filter.mjs.map +1 -1
  161. package/fesm2022/primeng-icons-filterfill.mjs +41 -23
  162. package/fesm2022/primeng-icons-filterfill.mjs.map +1 -1
  163. package/fesm2022/primeng-icons-filterslash.mjs +46 -28
  164. package/fesm2022/primeng-icons-filterslash.mjs.map +1 -1
  165. package/fesm2022/primeng-icons-home.mjs +46 -28
  166. package/fesm2022/primeng-icons-home.mjs.map +1 -1
  167. package/fesm2022/primeng-icons-infocircle.mjs +46 -28
  168. package/fesm2022/primeng-icons-infocircle.mjs.map +1 -1
  169. package/fesm2022/primeng-icons-minus.mjs +41 -23
  170. package/fesm2022/primeng-icons-minus.mjs.map +1 -1
  171. package/fesm2022/primeng-icons-pencil.mjs +46 -28
  172. package/fesm2022/primeng-icons-pencil.mjs.map +1 -1
  173. package/fesm2022/primeng-icons-plus.mjs +46 -28
  174. package/fesm2022/primeng-icons-plus.mjs.map +1 -1
  175. package/fesm2022/primeng-icons-refresh.mjs +46 -28
  176. package/fesm2022/primeng-icons-refresh.mjs.map +1 -1
  177. package/fesm2022/primeng-icons-search.mjs +46 -28
  178. package/fesm2022/primeng-icons-search.mjs.map +1 -1
  179. package/fesm2022/primeng-icons-searchminus.mjs +46 -28
  180. package/fesm2022/primeng-icons-searchminus.mjs.map +1 -1
  181. package/fesm2022/primeng-icons-searchplus.mjs +46 -28
  182. package/fesm2022/primeng-icons-searchplus.mjs.map +1 -1
  183. package/fesm2022/primeng-icons-sortalt.mjs +46 -28
  184. package/fesm2022/primeng-icons-sortalt.mjs.map +1 -1
  185. package/fesm2022/primeng-icons-sortamountdown.mjs +46 -28
  186. package/fesm2022/primeng-icons-sortamountdown.mjs.map +1 -1
  187. package/fesm2022/primeng-icons-sortamountupalt.mjs +46 -28
  188. package/fesm2022/primeng-icons-sortamountupalt.mjs.map +1 -1
  189. package/fesm2022/primeng-icons-spinner.mjs +46 -28
  190. package/fesm2022/primeng-icons-spinner.mjs.map +1 -1
  191. package/fesm2022/primeng-icons-star.mjs +46 -28
  192. package/fesm2022/primeng-icons-star.mjs.map +1 -1
  193. package/fesm2022/primeng-icons-starfill.mjs +46 -28
  194. package/fesm2022/primeng-icons-starfill.mjs.map +1 -1
  195. package/fesm2022/primeng-icons-thlarge.mjs +46 -28
  196. package/fesm2022/primeng-icons-thlarge.mjs.map +1 -1
  197. package/fesm2022/primeng-icons-times.mjs +41 -23
  198. package/fesm2022/primeng-icons-times.mjs.map +1 -1
  199. package/fesm2022/primeng-icons-timescircle.mjs +46 -28
  200. package/fesm2022/primeng-icons-timescircle.mjs.map +1 -1
  201. package/fesm2022/primeng-icons-trash.mjs +46 -28
  202. package/fesm2022/primeng-icons-trash.mjs.map +1 -1
  203. package/fesm2022/primeng-icons-undo.mjs +46 -28
  204. package/fesm2022/primeng-icons-undo.mjs.map +1 -1
  205. package/fesm2022/primeng-icons-upload.mjs +46 -28
  206. package/fesm2022/primeng-icons-upload.mjs.map +1 -1
  207. package/fesm2022/primeng-icons-windowmaximize.mjs +46 -28
  208. package/fesm2022/primeng-icons-windowmaximize.mjs.map +1 -1
  209. package/fesm2022/primeng-icons-windowminimize.mjs +46 -28
  210. package/fesm2022/primeng-icons-windowminimize.mjs.map +1 -1
  211. package/fesm2022/primeng-icons.mjs +53 -63
  212. package/fesm2022/primeng-iftalabel.mjs +153 -86
  213. package/fesm2022/primeng-iftalabel.mjs.map +1 -1
  214. package/fesm2022/primeng-image.mjs +1006 -534
  215. package/fesm2022/primeng-image.mjs.map +1 -1
  216. package/fesm2022/primeng-imagecompare.mjs +325 -165
  217. package/fesm2022/primeng-imagecompare.mjs.map +1 -1
  218. package/fesm2022/primeng-inplace.mjs +401 -199
  219. package/fesm2022/primeng-inplace.mjs.map +1 -1
  220. package/fesm2022/primeng-inputcolor.mjs +2631 -2180
  221. package/fesm2022/primeng-inputcolor.mjs.map +1 -1
  222. package/fesm2022/primeng-inputgroup.mjs +159 -91
  223. package/fesm2022/primeng-inputgroup.mjs.map +1 -1
  224. package/fesm2022/primeng-inputgroupaddon.mjs +153 -68
  225. package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -1
  226. package/fesm2022/primeng-inputicon.mjs +173 -72
  227. package/fesm2022/primeng-inputicon.mjs.map +1 -1
  228. package/fesm2022/primeng-inputmask.mjs +1607 -1379
  229. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  230. package/fesm2022/primeng-inputnumber.mjs +1646 -1305
  231. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  232. package/fesm2022/primeng-inputotp.mjs +571 -375
  233. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  234. package/fesm2022/primeng-inputpassword.mjs +179 -98
  235. package/fesm2022/primeng-inputpassword.mjs.map +1 -1
  236. package/fesm2022/primeng-inputtags.mjs +1212 -588
  237. package/fesm2022/primeng-inputtags.mjs.map +1 -1
  238. package/fesm2022/primeng-inputtext.mjs +325 -170
  239. package/fesm2022/primeng-inputtext.mjs.map +1 -1
  240. package/fesm2022/primeng-keyfilter.mjs +268 -243
  241. package/fesm2022/primeng-keyfilter.mjs.map +1 -1
  242. package/fesm2022/primeng-knob.mjs +627 -403
  243. package/fesm2022/primeng-knob.mjs.map +1 -1
  244. package/fesm2022/primeng-label.mjs +143 -81
  245. package/fesm2022/primeng-label.mjs.map +1 -1
  246. package/fesm2022/primeng-license.mjs +10 -36
  247. package/fesm2022/primeng-license.mjs.map +1 -1
  248. package/fesm2022/primeng-listbox.mjs +2409 -1593
  249. package/fesm2022/primeng-listbox.mjs.map +1 -1
  250. package/fesm2022/primeng-megamenu.mjs +2006 -1117
  251. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  252. package/fesm2022/primeng-menu.mjs +1437 -845
  253. package/fesm2022/primeng-menu.mjs.map +1 -1
  254. package/fesm2022/primeng-menubar.mjs +1832 -972
  255. package/fesm2022/primeng-menubar.mjs.map +1 -1
  256. package/fesm2022/primeng-message.mjs +474 -243
  257. package/fesm2022/primeng-message.mjs.map +1 -1
  258. package/fesm2022/primeng-metergroup.mjs +663 -331
  259. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  260. package/fesm2022/primeng-motion.mjs +1179 -690
  261. package/fesm2022/primeng-motion.mjs.map +1 -1
  262. package/fesm2022/primeng-multiselect.mjs +3406 -1898
  263. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  264. package/fesm2022/primeng-orderlist.mjs +1308 -678
  265. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  266. package/fesm2022/primeng-organizationchart.mjs +912 -597
  267. package/fesm2022/primeng-organizationchart.mjs.map +1 -1
  268. package/fesm2022/primeng-overlay.mjs +929 -610
  269. package/fesm2022/primeng-overlay.mjs.map +1 -1
  270. package/fesm2022/primeng-overlaybadge.mjs +291 -107
  271. package/fesm2022/primeng-overlaybadge.mjs.map +1 -1
  272. package/fesm2022/primeng-paginator.mjs +961 -505
  273. package/fesm2022/primeng-paginator.mjs.map +1 -1
  274. package/fesm2022/primeng-panel.mjs +668 -347
  275. package/fesm2022/primeng-panel.mjs.map +1 -1
  276. package/fesm2022/primeng-panelmenu.mjs +1842 -966
  277. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  278. package/fesm2022/primeng-passthrough.mjs +10 -20
  279. package/fesm2022/primeng-passthrough.mjs.map +1 -1
  280. package/fesm2022/primeng-password.mjs +1518 -858
  281. package/fesm2022/primeng-password.mjs.map +1 -1
  282. package/fesm2022/primeng-picklist.mjs +2270 -1253
  283. package/fesm2022/primeng-picklist.mjs.map +1 -1
  284. package/fesm2022/primeng-popover.mjs +656 -434
  285. package/fesm2022/primeng-popover.mjs.map +1 -1
  286. package/fesm2022/primeng-progressbar.mjs +346 -168
  287. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  288. package/fesm2022/primeng-progressspinner.mjs +338 -188
  289. package/fesm2022/primeng-progressspinner.mjs.map +1 -1
  290. package/fesm2022/primeng-radiobutton.mjs +499 -294
  291. package/fesm2022/primeng-radiobutton.mjs.map +1 -1
  292. package/fesm2022/primeng-rating.mjs +583 -352
  293. package/fesm2022/primeng-rating.mjs.map +1 -1
  294. package/fesm2022/primeng-ripple.mjs +194 -170
  295. package/fesm2022/primeng-ripple.mjs.map +1 -1
  296. package/fesm2022/primeng-scrollarea.mjs +1018 -721
  297. package/fesm2022/primeng-scrollarea.mjs.map +1 -1
  298. package/fesm2022/primeng-scroller.mjs +1386 -1047
  299. package/fesm2022/primeng-scroller.mjs.map +1 -1
  300. package/fesm2022/primeng-scrollpanel.mjs +568 -454
  301. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  302. package/fesm2022/primeng-scrolltop.mjs +509 -261
  303. package/fesm2022/primeng-scrolltop.mjs.map +1 -1
  304. package/fesm2022/primeng-select.mjs +2948 -1714
  305. package/fesm2022/primeng-select.mjs.map +1 -1
  306. package/fesm2022/primeng-selectbutton.mjs +629 -339
  307. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  308. package/fesm2022/primeng-sidebar.mjs +2561 -1413
  309. package/fesm2022/primeng-sidebar.mjs.map +1 -1
  310. package/fesm2022/primeng-skeleton.mjs +300 -157
  311. package/fesm2022/primeng-skeleton.mjs.map +1 -1
  312. package/fesm2022/primeng-slider.mjs +841 -604
  313. package/fesm2022/primeng-slider.mjs.map +1 -1
  314. package/fesm2022/primeng-speeddial.mjs +1115 -704
  315. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  316. package/fesm2022/primeng-splitbutton.mjs +889 -340
  317. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  318. package/fesm2022/primeng-splitter.mjs +997 -762
  319. package/fesm2022/primeng-splitter.mjs.map +1 -1
  320. package/fesm2022/primeng-stepper.mjs +1355 -645
  321. package/fesm2022/primeng-stepper.mjs.map +1 -1
  322. package/fesm2022/primeng-steps.mjs +523 -407
  323. package/fesm2022/primeng-steps.mjs.map +1 -1
  324. package/fesm2022/primeng-styleclass.mjs +446 -330
  325. package/fesm2022/primeng-styleclass.mjs.map +1 -1
  326. package/fesm2022/primeng-table.mjs +9765 -5849
  327. package/fesm2022/primeng-table.mjs.map +1 -1
  328. package/fesm2022/primeng-tabs.mjs +1357 -815
  329. package/fesm2022/primeng-tabs.mjs.map +1 -1
  330. package/fesm2022/primeng-tag.mjs +305 -151
  331. package/fesm2022/primeng-tag.mjs.map +1 -1
  332. package/fesm2022/primeng-terminal.mjs +368 -216
  333. package/fesm2022/primeng-terminal.mjs.map +1 -1
  334. package/fesm2022/primeng-textarea.mjs +345 -204
  335. package/fesm2022/primeng-textarea.mjs.map +1 -1
  336. package/fesm2022/primeng-tieredmenu.mjs +1917 -1094
  337. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  338. package/fesm2022/primeng-timeline.mjs +304 -165
  339. package/fesm2022/primeng-timeline.mjs.map +1 -1
  340. package/fesm2022/primeng-toast.mjs +1369 -928
  341. package/fesm2022/primeng-toast.mjs.map +1 -1
  342. package/fesm2022/primeng-togglebutton.mjs +563 -309
  343. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  344. package/fesm2022/primeng-toggleswitch.mjs +464 -237
  345. package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
  346. package/fesm2022/primeng-toolbar.mjs +299 -129
  347. package/fesm2022/primeng-toolbar.mjs.map +1 -1
  348. package/fesm2022/primeng-tooltip.mjs +1018 -765
  349. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  350. package/fesm2022/primeng-tree.mjs +2681 -1888
  351. package/fesm2022/primeng-tree.mjs.map +1 -1
  352. package/fesm2022/primeng-treeselect.mjs +1678 -927
  353. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  354. package/fesm2022/primeng-treetable.mjs +5849 -3742
  355. package/fesm2022/primeng-treetable.mjs.map +1 -1
  356. package/fesm2022/primeng-ts-helpers.mjs +0 -4
  357. package/fesm2022/primeng-types-accordion.mjs +0 -4
  358. package/fesm2022/primeng-types-autocomplete.mjs +0 -4
  359. package/fesm2022/primeng-types-avatar.mjs +0 -4
  360. package/fesm2022/primeng-types-avatargroup.mjs +0 -4
  361. package/fesm2022/primeng-types-badge.mjs +0 -4
  362. package/fesm2022/primeng-types-blockui.mjs +0 -4
  363. package/fesm2022/primeng-types-breadcrumb.mjs +0 -4
  364. package/fesm2022/primeng-types-button.mjs +0 -4
  365. package/fesm2022/primeng-types-card.mjs +0 -4
  366. package/fesm2022/primeng-types-carousel.mjs +0 -4
  367. package/fesm2022/primeng-types-cascadeselect.mjs +0 -4
  368. package/fesm2022/primeng-types-chart.mjs +0 -4
  369. package/fesm2022/primeng-types-checkbox.mjs +0 -4
  370. package/fesm2022/primeng-types-chip.mjs +0 -4
  371. package/fesm2022/primeng-types-colorpicker.mjs +0 -4
  372. package/fesm2022/primeng-types-commandmenu.mjs +0 -4
  373. package/fesm2022/primeng-types-compare.mjs +0 -4
  374. package/fesm2022/primeng-types-confirmdialog.mjs +0 -4
  375. package/fesm2022/primeng-types-confirmpopup.mjs +0 -4
  376. package/fesm2022/primeng-types-contextmenu.mjs +0 -4
  377. package/fesm2022/primeng-types-dataview.mjs +0 -4
  378. package/fesm2022/primeng-types-datepicker.mjs +0 -4
  379. package/fesm2022/primeng-types-dialog.mjs +0 -4
  380. package/fesm2022/primeng-types-divider.mjs +0 -4
  381. package/fesm2022/primeng-types-dock.mjs +0 -4
  382. package/fesm2022/primeng-types-drawer.mjs +0 -4
  383. package/fesm2022/primeng-types-editor.mjs +0 -4
  384. package/fesm2022/primeng-types-fieldset.mjs +0 -4
  385. package/fesm2022/primeng-types-fileupload.mjs +0 -4
  386. package/fesm2022/primeng-types-floatlabel.mjs +0 -4
  387. package/fesm2022/primeng-types-fluid.mjs +0 -4
  388. package/fesm2022/primeng-types-galleria.mjs +0 -4
  389. package/fesm2022/primeng-types-gallery.mjs +0 -4
  390. package/fesm2022/primeng-types-iconfield.mjs +0 -4
  391. package/fesm2022/primeng-types-iftalabel.mjs +0 -4
  392. package/fesm2022/primeng-types-image.mjs +0 -4
  393. package/fesm2022/primeng-types-imagecompare.mjs +0 -4
  394. package/fesm2022/primeng-types-inplace.mjs +0 -4
  395. package/fesm2022/primeng-types-inputcolor.mjs +0 -4
  396. package/fesm2022/primeng-types-inputgroup.mjs +0 -4
  397. package/fesm2022/primeng-types-inputgroupaddon.mjs +0 -4
  398. package/fesm2022/primeng-types-inputicon.mjs +0 -4
  399. package/fesm2022/primeng-types-inputmask.mjs +0 -4
  400. package/fesm2022/primeng-types-inputnumber.mjs +0 -4
  401. package/fesm2022/primeng-types-inputotp.mjs +0 -4
  402. package/fesm2022/primeng-types-inputpassword.mjs +0 -4
  403. package/fesm2022/primeng-types-inputtags.mjs +0 -4
  404. package/fesm2022/primeng-types-inputtext.mjs +0 -4
  405. package/fesm2022/primeng-types-knob.mjs +0 -4
  406. package/fesm2022/primeng-types-label.mjs +0 -4
  407. package/fesm2022/primeng-types-listbox.mjs +0 -4
  408. package/fesm2022/primeng-types-megamenu.mjs +0 -4
  409. package/fesm2022/primeng-types-menu.mjs +0 -4
  410. package/fesm2022/primeng-types-menubar.mjs +0 -4
  411. package/fesm2022/primeng-types-message.mjs +0 -4
  412. package/fesm2022/primeng-types-metergroup.mjs +0 -4
  413. package/fesm2022/primeng-types-motion.mjs +0 -4
  414. package/fesm2022/primeng-types-multiselect.mjs +0 -4
  415. package/fesm2022/primeng-types-orderlist.mjs +0 -4
  416. package/fesm2022/primeng-types-organizationchart.mjs +0 -4
  417. package/fesm2022/primeng-types-overlay.mjs +0 -4
  418. package/fesm2022/primeng-types-overlaybadge.mjs +0 -4
  419. package/fesm2022/primeng-types-paginator.mjs +0 -4
  420. package/fesm2022/primeng-types-panel.mjs +0 -4
  421. package/fesm2022/primeng-types-panelmenu.mjs +0 -4
  422. package/fesm2022/primeng-types-password.mjs +0 -4
  423. package/fesm2022/primeng-types-picklist.mjs +0 -4
  424. package/fesm2022/primeng-types-popover.mjs +0 -4
  425. package/fesm2022/primeng-types-progressbar.mjs +0 -4
  426. package/fesm2022/primeng-types-progressspinner.mjs +0 -4
  427. package/fesm2022/primeng-types-radiobutton.mjs +0 -4
  428. package/fesm2022/primeng-types-rating.mjs +0 -4
  429. package/fesm2022/primeng-types-scrollarea.mjs +0 -4
  430. package/fesm2022/primeng-types-scroller.mjs +0 -4
  431. package/fesm2022/primeng-types-scrollpanel.mjs +0 -4
  432. package/fesm2022/primeng-types-scrolltop.mjs +0 -4
  433. package/fesm2022/primeng-types-select.mjs +0 -4
  434. package/fesm2022/primeng-types-selectbutton.mjs +0 -4
  435. package/fesm2022/primeng-types-shared.mjs +0 -4
  436. package/fesm2022/primeng-types-sidebar.mjs +0 -4
  437. package/fesm2022/primeng-types-skeleton.mjs +0 -4
  438. package/fesm2022/primeng-types-slider.mjs +0 -4
  439. package/fesm2022/primeng-types-speeddial.mjs +0 -4
  440. package/fesm2022/primeng-types-splitbutton.mjs +0 -4
  441. package/fesm2022/primeng-types-splitter.mjs +0 -4
  442. package/fesm2022/primeng-types-stepper.mjs +0 -4
  443. package/fesm2022/primeng-types-table.mjs +0 -4
  444. package/fesm2022/primeng-types-tabs.mjs +0 -4
  445. package/fesm2022/primeng-types-tag.mjs +0 -4
  446. package/fesm2022/primeng-types-terminal.mjs +0 -4
  447. package/fesm2022/primeng-types-textarea.mjs +0 -4
  448. package/fesm2022/primeng-types-tieredmenu.mjs +0 -4
  449. package/fesm2022/primeng-types-timeline.mjs +0 -4
  450. package/fesm2022/primeng-types-toast.mjs +0 -4
  451. package/fesm2022/primeng-types-togglebutton.mjs +0 -4
  452. package/fesm2022/primeng-types-toggleswitch.mjs +0 -4
  453. package/fesm2022/primeng-types-toolbar.mjs +0 -4
  454. package/fesm2022/primeng-types-tooltip.mjs +0 -4
  455. package/fesm2022/primeng-types-tree.mjs +0 -4
  456. package/fesm2022/primeng-types-treeselect.mjs +0 -4
  457. package/fesm2022/primeng-types-treetable.mjs +0 -4
  458. package/fesm2022/primeng-usestyle.mjs +105 -109
  459. package/fesm2022/primeng-usestyle.mjs.map +1 -1
  460. package/fesm2022/primeng-utils.mjs +238 -328
  461. package/fesm2022/primeng-utils.mjs.map +1 -1
  462. package/fesm2022/primeng.mjs +1 -5
  463. package/fesm2022/primeng.mjs.map +1 -1
  464. package/package.json +7 -2
  465. package/types/primeng-accordion.d.ts +289 -221
  466. package/types/primeng-animateonscroll.d.ts +89 -61
  467. package/types/primeng-api.d.ts +1760 -1790
  468. package/types/primeng-autocomplete.d.ts +1054 -757
  469. package/types/primeng-autofocus.d.ts +27 -24
  470. package/types/primeng-avatar.d.ts +153 -117
  471. package/types/primeng-avatargroup.d.ts +46 -43
  472. package/types/primeng-badge.d.ts +105 -81
  473. package/types/primeng-base.d.ts +49 -52
  474. package/types/primeng-basecomponent.d.ts +191 -174
  475. package/types/primeng-baseeditableholder.d.ts +63 -45
  476. package/types/primeng-baseinput.d.ts +122 -74
  477. package/types/primeng-basemodelholder.d.ts +9 -12
  478. package/types/primeng-bind.d.ts +36 -32
  479. package/types/primeng-blockui.d.ts +99 -80
  480. package/types/primeng-breadcrumb.d.ts +159 -133
  481. package/types/primeng-button.d.ts +690 -427
  482. package/types/primeng-buttongroup.d.ts +27 -33
  483. package/types/primeng-card.d.ts +131 -122
  484. package/types/primeng-carousel.d.ts +800 -632
  485. package/types/primeng-cascadeselect.d.ts +754 -565
  486. package/types/primeng-chart.d.ts +160 -116
  487. package/types/primeng-checkbox.d.ts +299 -211
  488. package/types/primeng-chip.d.ts +189 -147
  489. package/types/primeng-classnames.d.ts +23 -21
  490. package/types/primeng-colorpicker.d.ts +325 -272
  491. package/types/primeng-commandmenu.d.ts +213 -165
  492. package/types/primeng-compare.d.ts +267 -191
  493. package/types/primeng-config.d.ts +294 -304
  494. package/types/primeng-confirmdialog.d.ts +505 -328
  495. package/types/primeng-confirmpopup.d.ts +254 -214
  496. package/types/primeng-contextmenu.d.ts +522 -368
  497. package/types/primeng-dataview.d.ts +498 -345
  498. package/types/primeng-datepicker.d.ts +1269 -972
  499. package/types/primeng-dialog.d.ts +668 -465
  500. package/types/primeng-divider.d.ts +114 -100
  501. package/types/primeng-dock.d.ts +207 -175
  502. package/types/primeng-dom.d.ts +97 -100
  503. package/types/primeng-dragdrop.d.ts +142 -107
  504. package/types/primeng-drawer.d.ts +355 -257
  505. package/types/primeng-dynamicdialog.d.ts +528 -540
  506. package/types/primeng-editor.d.ts +211 -165
  507. package/types/primeng-fieldset.d.ts +199 -166
  508. package/types/primeng-fileupload.d.ts +727 -526
  509. package/types/primeng-floatlabel.d.ts +55 -51
  510. package/types/primeng-fluid.d.ts +37 -39
  511. package/types/primeng-focustrap.d.ts +30 -27
  512. package/types/primeng-galleria.d.ts +570 -433
  513. package/types/primeng-gallery.d.ts +754 -552
  514. package/types/primeng-iconfield.d.ts +54 -45
  515. package/types/primeng-icons-angledoubledown.d.ts +6 -9
  516. package/types/primeng-icons-angledoubleleft.d.ts +6 -9
  517. package/types/primeng-icons-angledoubleright.d.ts +6 -9
  518. package/types/primeng-icons-angledoubleup.d.ts +6 -9
  519. package/types/primeng-icons-angledown.d.ts +6 -9
  520. package/types/primeng-icons-angleleft.d.ts +6 -9
  521. package/types/primeng-icons-angleright.d.ts +6 -9
  522. package/types/primeng-icons-angleup.d.ts +6 -9
  523. package/types/primeng-icons-arrowdown.d.ts +8 -11
  524. package/types/primeng-icons-arrowdownleft.d.ts +6 -9
  525. package/types/primeng-icons-arrowdownright.d.ts +6 -9
  526. package/types/primeng-icons-arrowleft.d.ts +8 -11
  527. package/types/primeng-icons-arrowright.d.ts +6 -9
  528. package/types/primeng-icons-arrowup.d.ts +8 -11
  529. package/types/primeng-icons-ban.d.ts +8 -11
  530. package/types/primeng-icons-bars.d.ts +6 -9
  531. package/types/primeng-icons-baseicon.d.ts +24 -25
  532. package/types/primeng-icons-blank.d.ts +6 -9
  533. package/types/primeng-icons-calendar.d.ts +6 -9
  534. package/types/primeng-icons-caretleft.d.ts +6 -9
  535. package/types/primeng-icons-caretright.d.ts +6 -9
  536. package/types/primeng-icons-check.d.ts +6 -9
  537. package/types/primeng-icons-chevrondown.d.ts +6 -9
  538. package/types/primeng-icons-chevronleft.d.ts +6 -9
  539. package/types/primeng-icons-chevronright.d.ts +6 -9
  540. package/types/primeng-icons-chevronup.d.ts +6 -9
  541. package/types/primeng-icons-exclamationtriangle.d.ts +8 -11
  542. package/types/primeng-icons-eye.d.ts +6 -9
  543. package/types/primeng-icons-eyeslash.d.ts +8 -11
  544. package/types/primeng-icons-filter.d.ts +8 -11
  545. package/types/primeng-icons-filterfill.d.ts +6 -9
  546. package/types/primeng-icons-filterslash.d.ts +8 -11
  547. package/types/primeng-icons-home.d.ts +8 -11
  548. package/types/primeng-icons-infocircle.d.ts +8 -11
  549. package/types/primeng-icons-minus.d.ts +6 -9
  550. package/types/primeng-icons-pencil.d.ts +8 -11
  551. package/types/primeng-icons-plus.d.ts +8 -11
  552. package/types/primeng-icons-refresh.d.ts +8 -11
  553. package/types/primeng-icons-search.d.ts +8 -11
  554. package/types/primeng-icons-searchminus.d.ts +8 -11
  555. package/types/primeng-icons-searchplus.d.ts +8 -11
  556. package/types/primeng-icons-sortalt.d.ts +8 -11
  557. package/types/primeng-icons-sortamountdown.d.ts +8 -11
  558. package/types/primeng-icons-sortamountupalt.d.ts +8 -11
  559. package/types/primeng-icons-spinner.d.ts +8 -11
  560. package/types/primeng-icons-star.d.ts +8 -11
  561. package/types/primeng-icons-starfill.d.ts +8 -11
  562. package/types/primeng-icons-thlarge.d.ts +8 -11
  563. package/types/primeng-icons-times.d.ts +6 -9
  564. package/types/primeng-icons-timescircle.d.ts +8 -11
  565. package/types/primeng-icons-trash.d.ts +8 -11
  566. package/types/primeng-icons-undo.d.ts +8 -11
  567. package/types/primeng-icons-upload.d.ts +8 -11
  568. package/types/primeng-icons-windowmaximize.d.ts +8 -11
  569. package/types/primeng-icons-windowminimize.d.ts +8 -11
  570. package/types/primeng-icons.d.ts +53 -53
  571. package/types/primeng-iftalabel.d.ts +38 -40
  572. package/types/primeng-image.d.ts +404 -311
  573. package/types/primeng-imagecompare.d.ts +94 -80
  574. package/types/primeng-inplace.d.ts +126 -114
  575. package/types/primeng-inputcolor.d.ts +645 -508
  576. package/types/primeng-inputgroup.d.ts +42 -44
  577. package/types/primeng-inputgroupaddon.d.ts +31 -31
  578. package/types/primeng-inputicon.d.ts +38 -32
  579. package/types/primeng-inputmask.d.ts +520 -365
  580. package/types/primeng-inputnumber.d.ts +573 -408
  581. package/types/primeng-inputotp.d.ts +206 -159
  582. package/types/primeng-inputpassword.d.ts +60 -47
  583. package/types/primeng-inputtags.d.ts +453 -301
  584. package/types/primeng-inputtext.d.ts +130 -96
  585. package/types/primeng-keyfilter.d.ts +62 -53
  586. package/types/primeng-knob.d.ts +257 -186
  587. package/types/primeng-label.d.ts +37 -39
  588. package/types/primeng-license.d.ts +1 -3
  589. package/types/primeng-listbox.d.ts +1040 -786
  590. package/types/primeng-megamenu.d.ts +536 -386
  591. package/types/primeng-menu.d.ts +478 -363
  592. package/types/primeng-menubar.d.ts +495 -354
  593. package/types/primeng-message.d.ts +192 -151
  594. package/types/primeng-metergroup.d.ts +249 -189
  595. package/types/primeng-motion.d.ts +601 -385
  596. package/types/primeng-multiselect.d.ts +1193 -861
  597. package/types/primeng-orderlist.d.ts +539 -393
  598. package/types/primeng-organizationchart.d.ts +236 -195
  599. package/types/primeng-overlay.d.ts +394 -294
  600. package/types/primeng-overlaybadge.d.ts +95 -64
  601. package/types/primeng-paginator.d.ts +410 -314
  602. package/types/primeng-panel.d.ts +267 -217
  603. package/types/primeng-panelmenu.d.ts +255 -231
  604. package/types/primeng-passthrough.d.ts +5 -7
  605. package/types/primeng-password.d.ts +606 -433
  606. package/types/primeng-picklist.d.ts +1042 -759
  607. package/types/primeng-popover.d.ts +235 -176
  608. package/types/primeng-progressbar.d.ts +131 -102
  609. package/types/primeng-progressspinner.d.ts +145 -111
  610. package/types/primeng-radiobutton.d.ts +219 -171
  611. package/types/primeng-rating.d.ts +240 -192
  612. package/types/primeng-ripple.d.ts +39 -45
  613. package/types/primeng-scrollarea.d.ts +292 -243
  614. package/types/primeng-scroller.d.ts +523 -390
  615. package/types/primeng-scrollpanel.d.ts +135 -131
  616. package/types/primeng-scrolltop.d.ts +170 -126
  617. package/types/primeng-select.d.ts +1014 -741
  618. package/types/primeng-selectbutton.d.ts +239 -167
  619. package/types/primeng-sidebar.d.ts +793 -562
  620. package/types/primeng-skeleton.d.ts +116 -87
  621. package/types/primeng-slider.d.ts +378 -311
  622. package/types/primeng-speeddial.d.ts +495 -375
  623. package/types/primeng-splitbutton.d.ts +382 -243
  624. package/types/primeng-splitter.d.ts +392 -301
  625. package/types/primeng-stepper.d.ts +417 -257
  626. package/types/primeng-steps.d.ts +158 -137
  627. package/types/primeng-styleclass.d.ts +163 -105
  628. package/types/primeng-table.d.ts +2898 -1912
  629. package/types/primeng-tabs.d.ts +463 -307
  630. package/types/primeng-tag.d.ts +107 -88
  631. package/types/primeng-terminal.d.ts +132 -120
  632. package/types/primeng-textarea.d.ts +146 -110
  633. package/types/primeng-tieredmenu.d.ts +573 -401
  634. package/types/primeng-timeline.d.ts +126 -112
  635. package/types/primeng-toast.d.ts +313 -252
  636. package/types/primeng-togglebutton.d.ts +255 -185
  637. package/types/primeng-toggleswitch.d.ts +190 -144
  638. package/types/primeng-toolbar.d.ts +83 -79
  639. package/types/primeng-tooltip.d.ts +335 -235
  640. package/types/primeng-tree.d.ts +763 -562
  641. package/types/primeng-treeselect.d.ts +750 -544
  642. package/types/primeng-treetable.d.ts +1839 -1315
  643. package/types/primeng-ts-helpers.d.ts +4 -6
  644. package/types/primeng-types-accordion.d.ts +58 -62
  645. package/types/primeng-types-autocomplete.d.ts +230 -233
  646. package/types/primeng-types-avatar.d.ts +25 -28
  647. package/types/primeng-types-avatargroup.d.ts +11 -14
  648. package/types/primeng-types-badge.d.ts +13 -16
  649. package/types/primeng-types-blockui.d.ts +18 -21
  650. package/types/primeng-types-breadcrumb.d.ts +65 -68
  651. package/types/primeng-types-button.d.ts +106 -109
  652. package/types/primeng-types-card.d.ts +54 -57
  653. package/types/primeng-types-carousel.d.ts +143 -146
  654. package/types/primeng-types-cascadeselect.d.ts +186 -192
  655. package/types/primeng-types-chart.d.ts +34 -39
  656. package/types/primeng-types-checkbox.d.ts +52 -55
  657. package/types/primeng-types-chip.d.ts +48 -51
  658. package/types/primeng-types-colorpicker.d.ts +59 -62
  659. package/types/primeng-types-commandmenu.d.ts +98 -101
  660. package/types/primeng-types-compare.d.ts +33 -36
  661. package/types/primeng-types-confirmdialog.d.ts +124 -127
  662. package/types/primeng-types-confirmpopup.d.ts +75 -78
  663. package/types/primeng-types-contextmenu.d.ts +100 -103
  664. package/types/primeng-types-dataview.d.ts +180 -183
  665. package/types/primeng-types-datepicker.d.ts +442 -445
  666. package/types/primeng-types-dialog.d.ts +93 -96
  667. package/types/primeng-types-divider.d.ts +14 -17
  668. package/types/primeng-types-dock.d.ts +45 -48
  669. package/types/primeng-types-drawer.d.ts +62 -65
  670. package/types/primeng-types-editor.d.ts +143 -146
  671. package/types/primeng-types-fieldset.d.ts +83 -87
  672. package/types/primeng-types-fileupload.d.ts +296 -301
  673. package/types/primeng-types-floatlabel.d.ts +12 -15
  674. package/types/primeng-types-fluid.d.ts +11 -14
  675. package/types/primeng-types-galleria.d.ts +209 -212
  676. package/types/primeng-types-gallery.d.ts +195 -198
  677. package/types/primeng-types-iconfield.d.ts +12 -15
  678. package/types/primeng-types-iftalabel.d.ts +11 -14
  679. package/types/primeng-types-image.d.ts +118 -121
  680. package/types/primeng-types-imagecompare.d.ts +22 -25
  681. package/types/primeng-types-inplace.d.ts +46 -49
  682. package/types/primeng-types-inputcolor.d.ts +86 -89
  683. package/types/primeng-types-inputgroup.d.ts +11 -14
  684. package/types/primeng-types-inputgroupaddon.d.ts +11 -14
  685. package/types/primeng-types-inputicon.d.ts +11 -14
  686. package/types/primeng-types-inputmask.d.ts +30 -33
  687. package/types/primeng-types-inputnumber.d.ts +72 -75
  688. package/types/primeng-types-inputotp.d.ts +67 -70
  689. package/types/primeng-types-inputpassword.d.ts +7 -10
  690. package/types/primeng-types-inputtags.d.ts +122 -125
  691. package/types/primeng-types-inputtext.d.ts +7 -10
  692. package/types/primeng-types-knob.d.ts +23 -26
  693. package/types/primeng-types-label.d.ts +7 -10
  694. package/types/primeng-types-listbox.d.ts +262 -266
  695. package/types/primeng-types-megamenu.d.ts +135 -138
  696. package/types/primeng-types-menu.d.ts +98 -101
  697. package/types/primeng-types-menubar.d.ts +122 -125
  698. package/types/primeng-types-message.d.ts +69 -72
  699. package/types/primeng-types-metergroup.d.ts +137 -140
  700. package/types/primeng-types-motion.d.ts +11 -14
  701. package/types/primeng-types-multiselect.d.ts +329 -333
  702. package/types/primeng-types-orderlist.d.ts +126 -129
  703. package/types/primeng-types-organizationchart.d.ts +147 -153
  704. package/types/primeng-types-overlay.d.ts +31 -34
  705. package/types/primeng-types-overlaybadge.d.ts +17 -20
  706. package/types/primeng-types-paginator.d.ts +131 -134
  707. package/types/primeng-types-panel.d.ts +91 -95
  708. package/types/primeng-types-panelmenu.d.ts +150 -153
  709. package/types/primeng-types-password.d.ts +94 -97
  710. package/types/primeng-types-picklist.d.ts +250 -260
  711. package/types/primeng-types-popover.d.ts +33 -36
  712. package/types/primeng-types-progressbar.d.ts +33 -36
  713. package/types/primeng-types-progressspinner.d.ts +27 -30
  714. package/types/primeng-types-radiobutton.d.ts +29 -32
  715. package/types/primeng-types-rating.d.ts +62 -65
  716. package/types/primeng-types-scrollarea.d.ts +35 -38
  717. package/types/primeng-types-scroller.d.ts +142 -146
  718. package/types/primeng-types-scrollpanel.d.ts +31 -34
  719. package/types/primeng-types-scrolltop.d.ts +37 -40
  720. package/types/primeng-types-select.d.ts +251 -254
  721. package/types/primeng-types-selectbutton.d.ts +56 -59
  722. package/types/primeng-types-shared.d.ts +6 -9
  723. package/types/primeng-types-sidebar.d.ts +105 -108
  724. package/types/primeng-types-skeleton.d.ts +11 -14
  725. package/types/primeng-types-slider.d.ts +59 -62
  726. package/types/primeng-types-speeddial.d.ts +71 -74
  727. package/types/primeng-types-splitbutton.d.ts +35 -38
  728. package/types/primeng-types-splitter.d.ts +58 -63
  729. package/types/primeng-types-stepper.d.ts +77 -80
  730. package/types/primeng-types-table.d.ts +743 -749
  731. package/types/primeng-types-tabs.d.ts +48 -51
  732. package/types/primeng-types-tag.d.ts +27 -30
  733. package/types/primeng-types-terminal.d.ts +43 -46
  734. package/types/primeng-types-textarea.d.ts +11 -14
  735. package/types/primeng-types-tieredmenu.d.ts +154 -157
  736. package/types/primeng-types-timeline.d.ts +60 -63
  737. package/types/primeng-types-toast.d.ts +92 -95
  738. package/types/primeng-types-togglebutton.d.ts +52 -55
  739. package/types/primeng-types-toggleswitch.d.ts +41 -44
  740. package/types/primeng-types-toolbar.d.ts +34 -37
  741. package/types/primeng-types-tooltip.d.ts +17 -20
  742. package/types/primeng-types-tree.d.ts +237 -246
  743. package/types/primeng-types-treeselect.d.ts +198 -202
  744. package/types/primeng-types-treetable.d.ts +492 -497
  745. package/types/primeng-usestyle.d.ts +28 -31
  746. package/types/primeng-utils.d.ts +37 -40
  747. package/types/primeng.d.ts +2 -2
  748. package/fesm2022/primeng-icons.mjs.map +0 -1
  749. package/fesm2022/primeng-ts-helpers.mjs.map +0 -1
  750. package/fesm2022/primeng-types-accordion.mjs.map +0 -1
  751. package/fesm2022/primeng-types-autocomplete.mjs.map +0 -1
  752. package/fesm2022/primeng-types-avatar.mjs.map +0 -1
  753. package/fesm2022/primeng-types-avatargroup.mjs.map +0 -1
  754. package/fesm2022/primeng-types-badge.mjs.map +0 -1
  755. package/fesm2022/primeng-types-blockui.mjs.map +0 -1
  756. package/fesm2022/primeng-types-breadcrumb.mjs.map +0 -1
  757. package/fesm2022/primeng-types-button.mjs.map +0 -1
  758. package/fesm2022/primeng-types-card.mjs.map +0 -1
  759. package/fesm2022/primeng-types-carousel.mjs.map +0 -1
  760. package/fesm2022/primeng-types-cascadeselect.mjs.map +0 -1
  761. package/fesm2022/primeng-types-chart.mjs.map +0 -1
  762. package/fesm2022/primeng-types-checkbox.mjs.map +0 -1
  763. package/fesm2022/primeng-types-chip.mjs.map +0 -1
  764. package/fesm2022/primeng-types-colorpicker.mjs.map +0 -1
  765. package/fesm2022/primeng-types-commandmenu.mjs.map +0 -1
  766. package/fesm2022/primeng-types-compare.mjs.map +0 -1
  767. package/fesm2022/primeng-types-confirmdialog.mjs.map +0 -1
  768. package/fesm2022/primeng-types-confirmpopup.mjs.map +0 -1
  769. package/fesm2022/primeng-types-contextmenu.mjs.map +0 -1
  770. package/fesm2022/primeng-types-dataview.mjs.map +0 -1
  771. package/fesm2022/primeng-types-datepicker.mjs.map +0 -1
  772. package/fesm2022/primeng-types-dialog.mjs.map +0 -1
  773. package/fesm2022/primeng-types-divider.mjs.map +0 -1
  774. package/fesm2022/primeng-types-dock.mjs.map +0 -1
  775. package/fesm2022/primeng-types-drawer.mjs.map +0 -1
  776. package/fesm2022/primeng-types-editor.mjs.map +0 -1
  777. package/fesm2022/primeng-types-fieldset.mjs.map +0 -1
  778. package/fesm2022/primeng-types-fileupload.mjs.map +0 -1
  779. package/fesm2022/primeng-types-floatlabel.mjs.map +0 -1
  780. package/fesm2022/primeng-types-fluid.mjs.map +0 -1
  781. package/fesm2022/primeng-types-galleria.mjs.map +0 -1
  782. package/fesm2022/primeng-types-gallery.mjs.map +0 -1
  783. package/fesm2022/primeng-types-iconfield.mjs.map +0 -1
  784. package/fesm2022/primeng-types-iftalabel.mjs.map +0 -1
  785. package/fesm2022/primeng-types-image.mjs.map +0 -1
  786. package/fesm2022/primeng-types-imagecompare.mjs.map +0 -1
  787. package/fesm2022/primeng-types-inplace.mjs.map +0 -1
  788. package/fesm2022/primeng-types-inputcolor.mjs.map +0 -1
  789. package/fesm2022/primeng-types-inputgroup.mjs.map +0 -1
  790. package/fesm2022/primeng-types-inputgroupaddon.mjs.map +0 -1
  791. package/fesm2022/primeng-types-inputicon.mjs.map +0 -1
  792. package/fesm2022/primeng-types-inputmask.mjs.map +0 -1
  793. package/fesm2022/primeng-types-inputnumber.mjs.map +0 -1
  794. package/fesm2022/primeng-types-inputotp.mjs.map +0 -1
  795. package/fesm2022/primeng-types-inputpassword.mjs.map +0 -1
  796. package/fesm2022/primeng-types-inputtags.mjs.map +0 -1
  797. package/fesm2022/primeng-types-inputtext.mjs.map +0 -1
  798. package/fesm2022/primeng-types-knob.mjs.map +0 -1
  799. package/fesm2022/primeng-types-label.mjs.map +0 -1
  800. package/fesm2022/primeng-types-listbox.mjs.map +0 -1
  801. package/fesm2022/primeng-types-megamenu.mjs.map +0 -1
  802. package/fesm2022/primeng-types-menu.mjs.map +0 -1
  803. package/fesm2022/primeng-types-menubar.mjs.map +0 -1
  804. package/fesm2022/primeng-types-message.mjs.map +0 -1
  805. package/fesm2022/primeng-types-metergroup.mjs.map +0 -1
  806. package/fesm2022/primeng-types-motion.mjs.map +0 -1
  807. package/fesm2022/primeng-types-multiselect.mjs.map +0 -1
  808. package/fesm2022/primeng-types-orderlist.mjs.map +0 -1
  809. package/fesm2022/primeng-types-organizationchart.mjs.map +0 -1
  810. package/fesm2022/primeng-types-overlay.mjs.map +0 -1
  811. package/fesm2022/primeng-types-overlaybadge.mjs.map +0 -1
  812. package/fesm2022/primeng-types-paginator.mjs.map +0 -1
  813. package/fesm2022/primeng-types-panel.mjs.map +0 -1
  814. package/fesm2022/primeng-types-panelmenu.mjs.map +0 -1
  815. package/fesm2022/primeng-types-password.mjs.map +0 -1
  816. package/fesm2022/primeng-types-picklist.mjs.map +0 -1
  817. package/fesm2022/primeng-types-popover.mjs.map +0 -1
  818. package/fesm2022/primeng-types-progressbar.mjs.map +0 -1
  819. package/fesm2022/primeng-types-progressspinner.mjs.map +0 -1
  820. package/fesm2022/primeng-types-radiobutton.mjs.map +0 -1
  821. package/fesm2022/primeng-types-rating.mjs.map +0 -1
  822. package/fesm2022/primeng-types-scrollarea.mjs.map +0 -1
  823. package/fesm2022/primeng-types-scroller.mjs.map +0 -1
  824. package/fesm2022/primeng-types-scrollpanel.mjs.map +0 -1
  825. package/fesm2022/primeng-types-scrolltop.mjs.map +0 -1
  826. package/fesm2022/primeng-types-select.mjs.map +0 -1
  827. package/fesm2022/primeng-types-selectbutton.mjs.map +0 -1
  828. package/fesm2022/primeng-types-shared.mjs.map +0 -1
  829. package/fesm2022/primeng-types-sidebar.mjs.map +0 -1
  830. package/fesm2022/primeng-types-skeleton.mjs.map +0 -1
  831. package/fesm2022/primeng-types-slider.mjs.map +0 -1
  832. package/fesm2022/primeng-types-speeddial.mjs.map +0 -1
  833. package/fesm2022/primeng-types-splitbutton.mjs.map +0 -1
  834. package/fesm2022/primeng-types-splitter.mjs.map +0 -1
  835. package/fesm2022/primeng-types-stepper.mjs.map +0 -1
  836. package/fesm2022/primeng-types-table.mjs.map +0 -1
  837. package/fesm2022/primeng-types-tabs.mjs.map +0 -1
  838. package/fesm2022/primeng-types-tag.mjs.map +0 -1
  839. package/fesm2022/primeng-types-terminal.mjs.map +0 -1
  840. package/fesm2022/primeng-types-textarea.mjs.map +0 -1
  841. package/fesm2022/primeng-types-tieredmenu.mjs.map +0 -1
  842. package/fesm2022/primeng-types-timeline.mjs.map +0 -1
  843. package/fesm2022/primeng-types-toast.mjs.map +0 -1
  844. package/fesm2022/primeng-types-togglebutton.mjs.map +0 -1
  845. package/fesm2022/primeng-types-toggleswitch.mjs.map +0 -1
  846. package/fesm2022/primeng-types-toolbar.mjs.map +0 -1
  847. package/fesm2022/primeng-types-tooltip.mjs.map +0 -1
  848. package/fesm2022/primeng-types-tree.mjs.map +0 -1
  849. package/fesm2022/primeng-types-treeselect.mjs.map +0 -1
  850. package/fesm2022/primeng-types-treetable.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-table.mjs","sources":["../../src/table/style/tablestyle.ts","../../src/table/table-service.ts","../../src/table/table-body.ts","../../src/table/table.ts","../../src/table/frozen-column.ts","../../src/table/editable-row.ts","../../src/table/reorderable-row-handle.ts","../../src/table/row-group-header.ts","../../src/table/row-toggler.ts","../../src/table/sortable-column.ts","../../src/table/selectable-row.ts","../../src/table/selectable-row-dbl-click.ts","../../src/table/context-menu-row.ts","../../src/table/resizable-column.ts","../../src/table/reorderable-column.ts","../../src/table/editable-column.ts","../../src/table/reorderable-row.ts","../../src/table/init-editable-row.ts","../../src/table/save-editable-row.ts","../../src/table/cancel-editable-row.ts","../../src/table/sort-icon.ts","../../src/table/cell-editor.ts","../../src/table/table-radio-button.ts","../../src/table/table-checkbox.ts","../../src/table/table-header-checkbox.ts","../../src/table/column-filter-form-element.ts","../../src/table/column-filter.ts","../../src/table/table.module.ts","../../src/table/primeng-table.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style as datatable_style } from '@primeuix/styles/datatable';\nimport { BaseStyle } from 'primeng/base';\n\nconst style = /*css*/ `\n${datatable_style}\n\n/* For PrimeNG */\n.p-datatable-scrollable-table > .p-datatable-thead {\n top: 0;\n z-index: 2;\n}\n\n.p-datatable-scrollable-table > .p-datatable-frozen-tbody {\n position: sticky;\n z-index: 2;\n}\n\n.p-datatable-scrollable-table > .p-datatable-frozen-tbody + .p-datatable-frozen-tbody {\n z-index: 1;\n}\n\n.p-datatable-frozen-column {\n z-index: 1;\n}\n\n.p-datatable-mask.p-overlay-mask {\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 3;\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-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,\n.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-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:\n background dt('datatable.transition.duration'),\n color dt('datatable.transition.duration'),\n border-color dt('datatable.transition.duration'),\n outline-color dt('datatable.transition.duration'),\n box-shadow dt('datatable.transition.duration');\n}\n\n.p-datatable-thead > tr > th p-column-filter,\n.p-datatable-thead > tr > th p-columnfilter {\n font-weight: normal;\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-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.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\np-sort-icon, p-sorticon {\n display: inline-flex;\n align-items: center;\n gap: dt('datatable.header.cell.gap');\n}\n\n.p-datatable .p-editable-column.p-cell-editing {\n padding: 0;\n}\n\n.p-datatable .p-editable-column.p-cell-editing p-cell-editor,\n.p-datatable .p-editable-column.p-cell-editing p-celleditor {\n display: block;\n width: 100%;\n}\n`;\n\nconst classes = {\n root: ({ instance }) => [\n 'p-datatable p-component',\n {\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 ],\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',\n {\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 ],\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\n filterConstraint: ({ selected }) => ({\n 'p-datatable-filter-constraint': true,\n 'p-datatable-filter-constraint-selected': selected\n }),\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 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 sortableColumn: ({ instance }) => ({\n 'p-datatable-sortable-column': instance.isEnabled(),\n ' p-datatable-column-sorted': instance.sorted()\n }),\n sortableColumnIcon: 'p-datatable-sort-icon',\n sortableColumnBadge: 'p-sortable-column-badge',\n selectableRow: ({ instance }) => ({\n 'p-datatable-selectable-row': instance.isEnabled(),\n 'p-datatable-row-selected': instance.selected\n }),\n resizableColumn: 'p-datatable-resizable-column',\n reorderableColumn: 'p-datatable-reorderable-column',\n rowEditorCancel: 'p-datatable-row-editor-cancel',\n frozenColumn: ({ instance }) => ({\n 'p-datatable-frozen-column': instance.frozen(),\n 'p-datatable-frozen-column-left': instance.alignFrozen() === 'left'\n }),\n contextMenuRowSelected: ({ instance }) => ({\n 'p-datatable-contextmenu-row-selected': instance.selected\n })\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 rowGroupHeader: ({ instance }) => ({\n top: instance.getFrozenRowGroupHeaderStickyPosition\n })\n};\n\n@Injectable()\nexport class TableStyle extends BaseStyle {\n name = 'datatable';\n\n style = style;\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 * Class name of the sortable column element\n */\n sortableColumn = 'p-datatable-sortable-column',\n /**\n * Class name of the sortable column icon element\n */\n sortableColumnIcon = 'p-sortable-column-icon',\n /**\n * Class name of the sortable column badge element\n */\n sortableColumnBadge = 'p-sortable-column-badge',\n /**\n * Class name of the selectable row element\n */\n selectableRow = 'p-datatable-selectable-row',\n /**\n * Class name of the resizable column element\n */\n resizableColumn = 'p-datatable-resizable-column',\n /**\n * Class name of the row editor cancel element\n */\n rowEditorCancel = 'p-datatable-row-editor-cancel',\n /**\n * Class name of the frozen column element\n */\n frozenColumn = 'p-datatable-frozen-column',\n /**\n * Class name of the contextmenu row selected element\n */\n contextMenuRowSelected = 'p-datatable-contextmenu-row-selected'\n}\n","import { Injectable, InjectionToken } from '@angular/core';\nimport { SortMeta } from 'primeng/api';\nimport { Subject } from 'rxjs';\n\nexport const TABLE_INSTANCE = new InjectionToken<any>('TABLE_INSTANCE');\nexport const COLUMN_FILTER_INSTANCE = new InjectionToken<any>('COLUMN_FILTER_INSTANCE');\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 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 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 onColumnsChange(columns: any[]) {\n this.columnsSource.next(columns);\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, effect, inject, input, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { DomHandler } from 'primeng/dom';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { ObjectUtils } from 'primeng/utils';\nimport { TABLE_INSTANCE } from './table-service';\nimport type { Table } from './table';\n\n@Component({\n selector: '[pTableBody]',\n standalone: true,\n imports: [NgTemplateOutlet],\n template: `\n @if (!dataTable.expandedRowTemplate()) {\n @for (rowData of value(); track dataTable.rowTrackBy()($index, rowData); let rowIndex = $index) {\n @if (dataTable.groupHeaderTemplate() && !dataTable.virtualScroll() && dataTable.rowGroupMode() === 'subheader' && shouldRenderRowGroupHeader(value(), rowData, getRowIndex(rowIndex))) {\n <ng-container role=\"row\">\n <ng-container\n *ngTemplateOutlet=\"\n dataTable.groupHeaderTemplate();\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns(),\n editing: dataTable.editMode() === 'row' && dataTable.isRowEditing(rowData),\n frozen: frozen()\n }\n \"\n ></ng-container>\n </ng-container>\n }\n @if (dataTable.rowGroupMode() !== 'rowspan') {\n <ng-container\n *ngTemplateOutlet=\"\n rowData ? template() : dataTable.loadingBodyTemplate();\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns(),\n editing: dataTable.editMode() === 'row' && dataTable.isRowEditing(rowData),\n frozen: frozen()\n }\n \"\n ></ng-container>\n }\n @if (dataTable.rowGroupMode() === 'rowspan') {\n <ng-container\n *ngTemplateOutlet=\"\n rowData ? template() : dataTable.loadingBodyTemplate();\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns(),\n editing: dataTable.editMode() === 'row' && dataTable.isRowEditing(rowData),\n frozen: frozen(),\n rowgroup: shouldRenderRowspan(value(), rowData, rowIndex),\n rowspan: calculateRowGroupSize(value(), rowData, rowIndex)\n }\n \"\n ></ng-container>\n }\n @if (dataTable.groupFooterTemplate() && !dataTable.virtualScroll() && dataTable.rowGroupMode() === 'subheader' && shouldRenderRowGroupFooter(value(), rowData, getRowIndex(rowIndex))) {\n <ng-container role=\"row\">\n <ng-container\n *ngTemplateOutlet=\"\n dataTable.groupFooterTemplate();\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns(),\n editing: dataTable.editMode() === 'row' && dataTable.isRowEditing(rowData),\n frozen: frozen()\n }\n \"\n ></ng-container>\n </ng-container>\n }\n }\n }\n @if (dataTable.expandedRowTemplate() && !(frozen() && dataTable.frozenExpandedRowTemplate())) {\n @for (rowData of value(); track dataTable.rowTrackBy()($index, rowData); let rowIndex = $index) {\n @if (!dataTable.groupHeaderTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"\n template();\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns(),\n expanded: dataTable.isRowExpanded(rowData),\n editing: dataTable.editMode() === 'row' && dataTable.isRowEditing(rowData),\n frozen: frozen()\n }\n \"\n ></ng-container>\n }\n @if (dataTable.groupHeaderTemplate() && dataTable.rowGroupMode() === 'subheader' && shouldRenderRowGroupHeader(value(), rowData, getRowIndex(rowIndex))) {\n <ng-container role=\"row\">\n <ng-container\n *ngTemplateOutlet=\"\n dataTable.groupHeaderTemplate();\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns(),\n expanded: dataTable.isRowExpanded(rowData),\n editing: dataTable.editMode() === 'row' && dataTable.isRowEditing(rowData),\n frozen: frozen()\n }\n \"\n ></ng-container>\n </ng-container>\n }\n @if (dataTable.isRowExpanded(rowData)) {\n <ng-container\n *ngTemplateOutlet=\"\n dataTable.expandedRowTemplate();\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns(),\n frozen: frozen()\n }\n \"\n ></ng-container>\n @if (dataTable.groupFooterTemplate() && dataTable.rowGroupMode() === 'subheader' && shouldRenderRowGroupFooter(value(), rowData, getRowIndex(rowIndex))) {\n <ng-container role=\"row\">\n <ng-container\n *ngTemplateOutlet=\"\n dataTable.groupFooterTemplate();\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns(),\n expanded: dataTable.isRowExpanded(rowData),\n editing: dataTable.editMode() === 'row' && dataTable.isRowEditing(rowData),\n frozen: frozen()\n }\n \"\n ></ng-container>\n </ng-container>\n }\n }\n }\n }\n @if (dataTable.frozenExpandedRowTemplate() && frozen()) {\n @for (rowData of value(); track dataTable.rowTrackBy()($index, rowData); let rowIndex = $index) {\n <ng-container\n *ngTemplateOutlet=\"\n template();\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns(),\n expanded: dataTable.isRowExpanded(rowData),\n editing: dataTable.editMode() === 'row' && dataTable.isRowEditing(rowData),\n frozen: frozen()\n }\n \"\n ></ng-container>\n @if (dataTable.isRowExpanded(rowData)) {\n <ng-container\n *ngTemplateOutlet=\"\n dataTable.frozenExpandedRowTemplate();\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns(),\n frozen: frozen()\n }\n \"\n ></ng-container>\n }\n }\n }\n @if (dataTable.loading()) {\n <ng-container *ngTemplateOutlet=\"dataTable.loadingBodyTemplate(); context: bodyContext()\"></ng-container>\n }\n @if (dataTable.isEmpty() && !dataTable.loading()) {\n <ng-container *ngTemplateOutlet=\"dataTable.emptyMessageTemplate(); context: bodyContext()\"></ng-container>\n }\n `,\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[attr.data-p]': 'dataP()'\n }\n})\nexport class TableBody extends BaseComponent {\n hostName = 'Table';\n\n columns = input<any[] | undefined>(undefined, { alias: 'pTableBody' });\n\n template = input<Nullable<TemplateRef<any>>>(undefined, { alias: 'pTableBodyTemplate' });\n\n value = input<any[] | undefined>();\n\n frozen = input(undefined, { transform: booleanAttribute });\n\n frozenRows = input(undefined, { transform: booleanAttribute });\n\n scrollerOptions = input<any>();\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n bodyContext = computed(() => ({\n $implicit: this.columns(),\n frozen: this.frozen()\n }));\n\n constructor() {\n super();\n effect(() => {\n const val = this.value();\n if (val !== undefined) {\n if (this.frozenRows()) {\n this.updateFrozenRowStickyPosition();\n }\n\n if (this.dataTable.scrollable() && this.dataTable.rowGroupMode() === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n }\n });\n }\n\n onAfterViewInit() {\n if (this.frozenRows()) {\n this.updateFrozenRowStickyPosition();\n }\n\n if (this.dataTable.scrollable() && this.dataTable.rowGroupMode() === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n }\n\n shouldRenderRowGroupHeader(value: any, rowData: any, i: number) {\n let currentRowFieldData = ObjectUtils.resolveFieldData(rowData, this.dataTable?.groupRowsBy() || '');\n let prevRowData = value[i - (this.dataTable?.first() || 0) - 1];\n if (prevRowData) {\n let previousRowFieldData = ObjectUtils.resolveFieldData(prevRowData, this.dataTable?.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.dataTable?.groupRowsBy() || '');\n let nextRowData = value[i - (this.dataTable?.first() || 0) + 1];\n if (nextRowData) {\n let nextRowFieldData = ObjectUtils.resolveFieldData(nextRowData, this.dataTable?.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.dataTable?.groupRowsBy());\n let prevRowData = value[i - 1];\n if (prevRowData) {\n let previousRowFieldData = ObjectUtils.resolveFieldData(prevRowData, this.dataTable?.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.dataTable?.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.dataTable?.groupRowsBy() || '');\n } else {\n break;\n }\n }\n\n return groupRowSpan === 1 ? null : groupRowSpan;\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.dataTable.rowGroupHeaderStyleObject.top = tableHeaderHeight + 'px';\n }\n }\n\n getScrollerOption(option: any, options?: any) {\n if (this.dataTable.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.dataTable.paginator() ? <number>this.dataTable.first() + rowIndex : rowIndex;\n const getItemOptions = this.getScrollerOption('getItemOptions');\n return getItemOptions ? getItemOptions(index).index : index;\n }\n\n dataP = computed(() => {\n return this.cn({\n hoverable: this.dataTable.rowHover() || this.dataTable.selectionMode(),\n frozen: this.frozen()\n });\n });\n}\n","import { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, contentChild, effect, ElementRef, inject, input, model, numberAttribute, output, TemplateRef, untracked, viewChild, ViewEncapsulation, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { isClickable, setAttribute } from '@primeuix/utils';\nimport { BlockableUI, FilterMatchMode, FilterMetadata, FilterOperator, FilterService, LazyLoadMeta, OverlayService, ScrollerOptions, SortMeta, TableState } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { CheckboxChangeEvent } from 'primeng/checkbox';\nimport { DomHandler } from 'primeng/dom';\nimport { PaginatorModule } from 'primeng/paginator';\nimport type { PaginatorState } from 'primeng/types/paginator';\nimport { Scroller, ScrollerModule } from 'primeng/scroller';\nimport { ArrowDown } from '@primeicons/angular/arrow-down';\nimport { ArrowUp } from '@primeicons/angular/arrow-up';\nimport { Spinner } from '@primeicons/angular/spinner';\nimport {\n ExportCSVOptions,\n TableColResizeEvent,\n TableColumnReorderEvent,\n TableContextMenuSelectEvent,\n TableEditCancelEvent,\n TableEditCompleteEvent,\n TableEditInitEvent,\n TableFilterEvent,\n TableHeaderCheckboxToggleEvent,\n TableLazyLoadEvent,\n TablePageEvent,\n TablePaginatorPosition,\n TableColumnResizeMode,\n TableEditMode,\n TablePassThrough,\n TableRowExpandMode,\n TableRowGroupMode,\n TableSelectionMode,\n TableSize,\n TableSortMode,\n TableStateStorage,\n TableRowCollapseEvent,\n TableRowExpandEvent,\n TableRowReorderEvent,\n TableRowSelectEvent,\n TableRowUnSelectEvent,\n TableSelectAllChangeEvent\n} from 'primeng/types/table';\nimport type { CSSProperties } from 'primeng/types/shared';\nimport { ObjectUtils, UniqueComponentId } from 'primeng/utils';\nimport { Subscription } from 'rxjs';\nimport { TableStyle } from './style/tablestyle';\nimport { TableBody } from './table-body';\nimport { TABLE_INSTANCE, TableService } from './table-service';\n/**\n * Table displays data in tabular format.\n * @group Components\n */\n@Component({\n selector: 'p-table',\n standalone: true,\n imports: [NgTemplateOutlet, PaginatorModule, ScrollerModule, FormsModule, BindModule, Spinner, ArrowDown, ArrowUp, TableBody],\n template: `\n @if (showLoadingMask()) {\n <div [class]=\"cx('mask')\" [pBind]=\"ptm('mask')\" animate.enter=\"p-overlay-mask-enter-active\" animate.leave=\"p-overlay-mask-leave-active\">\n @if (loadingIcon()) {\n <i [class]=\"cn(cx('loadingIcon'), loadingIcon())\" [pBind]=\"ptm('loadingIcon')\"></i>\n }\n @if (!loadingIcon()) {\n @if (!loadingIconTemplate()) {\n <svg data-p-icon=\"spinner\" [class]=\"cx('loadingIcon')\" [spin]=\"true\" [pBind]=\"ptm('loadingIcon')\" />\n }\n @if (loadingIconTemplate()) {\n <span [class]=\"cx('loadingIcon')\" [pBind]=\"ptm('loadingIcon')\">\n <ng-template *ngTemplateOutlet=\"loadingIconTemplate()\"></ng-template>\n </span>\n }\n }\n </div>\n }\n @if (captionTemplate()) {\n <div [class]=\"cx('header')\" [pBind]=\"ptm('header')\">\n <ng-container *ngTemplateOutlet=\"captionTemplate()\"></ng-container>\n </div>\n }\n @if (showTopPaginator()) {\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 [templateLeft]=\"paginatorLeftTemplate()\"\n [templateRight]=\"paginatorRightTemplate()\"\n [appendTo]=\"paginatorDropdownAppendTo()\"\n [dropdownScrollHeight]=\"paginatorDropdownScrollHeight()\"\n [currentPageReportTemplate]=\"currentPageReportTemplate()\"\n [showFirstLastIcon]=\"showFirstLastIcon()\"\n [dropdownItemTemplate]=\"paginatorDropdownItemTemplate()\"\n [showCurrentPageReport]=\"showCurrentPageReport()\"\n [showJumpToPageDropdown]=\"showJumpToPageDropdown()\"\n [showJumpToPageInput]=\"showJumpToPageInput()\"\n [showPageLinks]=\"showPageLinks()\"\n [class]=\"cn(cx('pcPaginator'), paginatorStyleClass())\"\n [locale]=\"paginatorLocale()\"\n [pt]=\"ptm('pcPaginator')\"\n [unstyled]=\"unstyled()\"\n >\n @if (paginatorDropdownIconTemplate()) {\n <ng-template #dropdownicon>\n <ng-container *ngTemplateOutlet=\"paginatorDropdownIconTemplate()\"></ng-container>\n </ng-template>\n }\n\n @if (paginatorFirstPageLinkIconTemplate()) {\n <ng-template #firstpagelinkicon>\n <ng-container *ngTemplateOutlet=\"paginatorFirstPageLinkIconTemplate()\"></ng-container>\n </ng-template>\n }\n\n @if (paginatorPreviousPageLinkIconTemplate()) {\n <ng-template #previouspagelinkicon>\n <ng-container *ngTemplateOutlet=\"paginatorPreviousPageLinkIconTemplate()\"></ng-container>\n </ng-template>\n }\n\n @if (paginatorLastPageLinkIconTemplate()) {\n <ng-template #lastpagelinkicon>\n <ng-container *ngTemplateOutlet=\"paginatorLastPageLinkIconTemplate()\"></ng-container>\n </ng-template>\n }\n\n @if (paginatorNextPageLinkIconTemplate()) {\n <ng-template #nextpagelinkicon>\n <ng-container *ngTemplateOutlet=\"paginatorNextPageLinkIconTemplate()\"></ng-container>\n </ng-template>\n }\n </p-paginator>\n }\n\n <div #wrapper [class]=\"cx('tableContainer')\" [style]=\"sx('tableContainer')\" [pBind]=\"ptm('tableContainer')\" [attr.data-p]=\"dataP\">\n @if (virtualScroll()) {\n <p-scroller\n #scroller\n [items]=\"processedData\"\n [columns]=\"columns\"\n [style]=\"scrollerStyle()\"\n [scrollHeight]=\"scrollerScrollHeight()\"\n [itemSize]=\"virtualScrollItemSize()!\"\n [step]=\"rows()!\"\n [delay]=\"scrollerDelay()\"\n [inline]=\"true\"\n [autoSize]=\"true\"\n [lazy]=\"lazy()\"\n (onLazyLoad)=\"onLazyItemLoad($event)\"\n [loaderDisabled]=\"true\"\n [showSpacer]=\"false\"\n [showLoader]=\"!!loadingBodyTemplate()\"\n [options]=\"virtualScrollOptions()\"\n [pt]=\"ptm('virtualScroller')\"\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 }\n @if (!virtualScroll()) {\n <ng-container\n *ngTemplateOutlet=\"\n buildInTable;\n context: {\n $implicit: processedData,\n options: { columns }\n }\n \"\n ></ng-container>\n }\n\n <ng-template #buildInTable let-items let-scrollerOptions=\"options\">\n <table #table role=\"table\" [class]=\"cn(cx('table'), tableStyleClass())\" [pBind]=\"ptm('table')\" [style]=\"tableStyle()\" [attr.id]=\"id + '-table'\">\n <ng-container *ngTemplateOutlet=\"colGroupTemplate(); context: { $implicit: scrollerOptions.columns }\"></ng-container>\n <thead role=\"rowgroup\" #thead [class]=\"cx('thead')\" [style]=\"sx('thead')\" [pBind]=\"ptm('thead')\">\n <ng-container\n *ngTemplateOutlet=\"\n headerGroupedTemplate() || headerTemplate();\n context: {\n $implicit: scrollerOptions.columns\n }\n \"\n ></ng-container>\n </thead>\n @if (showFrozenBody()) {\n <tbody\n role=\"rowgroup\"\n [class]=\"cx('tbody')\"\n [pBind]=\"ptm('tbody')\"\n [value]=\"frozenValue()\"\n [frozenRows]=\"true\"\n [pTableBody]=\"scrollerOptions.columns\"\n [pTableBodyTemplate]=\"frozenBodyTemplate()\"\n [unstyled]=\"unstyled()\"\n [frozen]=\"true\"\n [attr.data-p-virtualscroll]=\"virtualScroll()\"\n ></tbody>\n }\n <tbody\n role=\"rowgroup\"\n [class]=\"cn(cx('tbody'), scrollerOptions.contentStyleClass)\"\n [pBind]=\"ptm('tbody')\"\n [style]=\"scrollerOptions.contentStyle\"\n [value]=\"dataToRender(scrollerOptions.rows)\"\n [pTableBody]=\"scrollerOptions.columns\"\n [pTableBodyTemplate]=\"bodyTemplate()\"\n [scrollerOptions]=\"scrollerOptions\"\n [unstyled]=\"unstyled()\"\n [attr.data-p-virtualscroll]=\"virtualScroll()\"\n ></tbody>\n @if (scrollerOptions.spacerStyle) {\n <tbody role=\"rowgroup\" [style]=\"getVirtualScrollerSpacerStyle(scrollerOptions)\" [class]=\"cx('virtualScrollerSpacer')\" [pBind]=\"ptm('virtualScrollerSpacer')\"></tbody>\n }\n @if (showFooter()) {\n <tfoot role=\"rowgroup\" #tfoot [class]=\"cx('footer')\" [style]=\"sx('tfoot')\" [pBind]=\"ptm('tfoot')\">\n <ng-container\n *ngTemplateOutlet=\"\n footerGroupedTemplate() || footerTemplate();\n context: {\n $implicit: scrollerOptions.columns\n }\n \"\n ></ng-container>\n </tfoot>\n }\n </table>\n </ng-template>\n </div>\n\n @if (showBottomPaginator()) {\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 [templateLeft]=\"paginatorLeftTemplate()\"\n [templateRight]=\"paginatorRightTemplate()\"\n [appendTo]=\"paginatorDropdownAppendTo()\"\n [dropdownScrollHeight]=\"paginatorDropdownScrollHeight()\"\n [currentPageReportTemplate]=\"currentPageReportTemplate()\"\n [showFirstLastIcon]=\"showFirstLastIcon()\"\n [dropdownItemTemplate]=\"paginatorDropdownItemTemplate()\"\n [showCurrentPageReport]=\"showCurrentPageReport()\"\n [showJumpToPageDropdown]=\"showJumpToPageDropdown()\"\n [showJumpToPageInput]=\"showJumpToPageInput()\"\n [showPageLinks]=\"showPageLinks()\"\n [class]=\"cn(cx('pcPaginator'), paginatorStyleClass())\"\n [locale]=\"paginatorLocale()\"\n [pt]=\"ptm('pcPaginator')\"\n [unstyled]=\"unstyled()\"\n >\n @if (paginatorDropdownIconTemplate()) {\n <ng-template #dropdownicon>\n <ng-container *ngTemplateOutlet=\"paginatorDropdownIconTemplate()\"></ng-container>\n </ng-template>\n }\n\n @if (paginatorFirstPageLinkIconTemplate()) {\n <ng-template #firstpagelinkicon>\n <ng-container *ngTemplateOutlet=\"paginatorFirstPageLinkIconTemplate()\"></ng-container>\n </ng-template>\n }\n\n @if (paginatorPreviousPageLinkIconTemplate()) {\n <ng-template #previouspagelinkicon>\n <ng-container *ngTemplateOutlet=\"paginatorPreviousPageLinkIconTemplate()\"></ng-container>\n </ng-template>\n }\n\n @if (paginatorLastPageLinkIconTemplate()) {\n <ng-template #lastpagelinkicon>\n <ng-container *ngTemplateOutlet=\"paginatorLastPageLinkIconTemplate()\"></ng-container>\n </ng-template>\n }\n\n @if (paginatorNextPageLinkIconTemplate()) {\n <ng-template #nextpagelinkicon>\n <ng-container *ngTemplateOutlet=\"paginatorNextPageLinkIconTemplate()\"></ng-container>\n </ng-template>\n }\n </p-paginator>\n }\n\n @if (summaryTemplate()) {\n <div [class]=\"cx('footer')\" [pBind]=\"ptm('footer')\">\n <ng-container *ngTemplateOutlet=\"summaryTemplate()\"></ng-container>\n </div>\n }\n\n @if (resizableColumns()) {\n <div #resizeHelper [class]=\"cx('columnResizeIndicator')\" [pBind]=\"ptm('columnResizeIndicator')\" [style.display]=\"'none'\"></div>\n }\n @if (reorderableColumns()) {\n <span #reorderIndicatorUp [class]=\"cx('rowReorderIndicatorUp')\" [pBind]=\"ptm('rowReorderIndicatorUp')\" [style.display]=\"'none'\">\n @if (!reorderIndicatorUpIconTemplate()) {\n <svg data-p-icon=\"arrow-down\" [pBind]=\"ptm('rowReorderIndicatorUp')['icon']\" />\n }\n <ng-template *ngTemplateOutlet=\"reorderIndicatorUpIconTemplate()\"></ng-template>\n </span>\n <span #reorderIndicatorDown [class]=\"cx('rowReorderIndicatorDown')\" [pBind]=\"ptm('rowReorderIndicatorDown')\" [style.display]=\"'none'\">\n @if (!reorderIndicatorDownIconTemplate()) {\n <svg data-p-icon=\"arrow-up\" [pBind]=\"ptm('rowReorderIndicatorDown')['icon']\" />\n }\n <ng-template *ngTemplateOutlet=\"reorderIndicatorDownIconTemplate()\"></ng-template>\n </span>\n }\n `,\n providers: [TableService, TableStyle, { provide: TABLE_INSTANCE, useExisting: Table }, { provide: PARENT_INSTANCE, useExisting: Table }],\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"cx('root')\",\n '[attr.data-p]': 'dataP'\n },\n hostDirectives: [Bind]\n})\nexport class Table<RowData = any> extends BaseComponent<TablePassThrough> implements BlockableUI {\n componentName = 'Table';\n /**\n * An array of objects to represent dynamic columns that are frozen.\n * @group Props\n */\n frozenColumns = input<any[]>();\n /**\n * An array of objects to display as frozen.\n * @group Props\n */\n frozenValue = input<any[]>();\n /**\n * Inline style of the table.\n * @group Props\n */\n tableStyle = input<CSSProperties>();\n /**\n * Style class of the table.\n * @group Props\n */\n tableStyleClass = input<string>();\n /**\n * When specified as true, enables the pagination.\n * @group Props\n */\n paginator = input(undefined, { transform: booleanAttribute });\n /**\n * Number of page links to display in paginator.\n * @group Props\n */\n pageLinks = input(5, { transform: numberAttribute });\n /**\n * Array of integer/object values to display inside rows per page dropdown of paginator\n * @group Props\n */\n rowsPerPageOptions = input<any[]>();\n /**\n * Whether to show it even there is only one page.\n * @group Props\n */\n alwaysShowPaginator = input(true, { transform: booleanAttribute });\n /**\n * Position of the paginator, options are \"top\", \"bottom\" or \"both\".\n * @group Props\n */\n paginatorPosition = input<TablePaginatorPosition>('bottom');\n /**\n * Custom style class for paginator\n * @group Props\n */\n paginatorStyleClass = input<string>();\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 paginatorDropdownAppendTo = input<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 paginatorDropdownScrollHeight = input('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 currentPageReportTemplate = input('{currentPage} of {totalPages}');\n /**\n * Whether to display current page report.\n * @group Props\n */\n showCurrentPageReport = input(undefined, { transform: booleanAttribute });\n /**\n * Whether to display a dropdown to navigate to any page.\n * @group Props\n */\n showJumpToPageDropdown = input(undefined, { transform: booleanAttribute });\n /**\n * Whether to display a input to navigate to any page.\n * @group Props\n */\n showJumpToPageInput = input(undefined, { transform: booleanAttribute });\n /**\n * When enabled, icons are displayed on paginator to go first and last page.\n * @group Props\n */\n showFirstLastIcon = input(true, { transform: booleanAttribute });\n /**\n * Whether to show page links.\n * @group Props\n */\n showPageLinks = input(true, { transform: booleanAttribute });\n /**\n * Sort order to use when an unsorted column gets sorted by user interaction.\n * @group Props\n */\n defaultSortOrder = input(1, { transform: numberAttribute });\n /**\n * Defines whether sorting works on single column or on multiple columns.\n * @group Props\n */\n sortMode = input<TableSortMode>('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 resetPageOnSort = input(true, { transform: booleanAttribute });\n /**\n * Specifies the selection mode, valid values are \"single\" and \"multiple\".\n * @group Props\n */\n selectionMode = input<TableSelectionMode | 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 selectionPageOnly = input(undefined, { transform: booleanAttribute });\n /**\n * Selected row with a context menu.\n * @group Props\n */\n contextMenuSelectionInput = input<any>(undefined, { alias: 'contextMenuSelection' });\n\n contextMenuSelection: any;\n /**\n * Callback to invoke on context menu selection change.\n * @param {*} object - row data.\n * @group Emits\n */\n contextMenuSelectionChange = output<any>();\n /**\n * A property to uniquely identify a record in data.\n * @group Props\n */\n dataKey = input<string>();\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 metaKeySelection = input(false, { transform: booleanAttribute });\n /**\n * Defines if the row is selectable.\n * @group Props\n */\n rowSelectable = input<(row: { data: any; index: number }) => boolean>();\n /**\n * Function to optimize the dom operations by delegating to ngForTrackBy, default algorithm checks for object identity.\n * @group Props\n */\n rowTrackBy = input<Function>((index: number, item: any) => item ?? index);\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n lazy = input(false, { transform: booleanAttribute });\n /**\n * Whether to call lazy loading on initialization.\n * @group Props\n */\n lazyLoadOnInit = input(true, { transform: booleanAttribute });\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 compareSelectionBy = input<'equals' | 'deepEquals'>('deepEquals');\n /**\n * Character to use as the csv separator.\n * @group Props\n */\n csvSeparator = input(',');\n /**\n * Name of the exported file.\n * @group Props\n */\n exportFilename = input('download');\n /**\n * An array of FilterMetadata objects to provide external filters.\n * @group Props\n */\n filtersInput = input<{ [s: string]: FilterMetadata | FilterMetadata[] }>({}, { alias: 'filters' });\n\n filters: { [s: string]: FilterMetadata | FilterMetadata[] } = {};\n /**\n * An array of fields as string to use in global filtering.\n * @group Props\n */\n globalFilterFields = input<string[]>();\n /**\n * Delay in milliseconds before filtering the data.\n * @group Props\n */\n filterDelay = input(300, { transform: numberAttribute });\n /**\n * Locale to use in filtering. The default locale is the host environment's current locale.\n * @group Props\n */\n filterLocale = input<string>();\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 expandedRowKeysInput = input<{ [s: string]: boolean }>({}, { alias: 'expandedRowKeys' });\n\n 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 editingRowKeysInput = input<{ [s: string]: boolean }>({}, { alias: 'editingRowKeys' });\n\n private _editingRowKeys = signal<{ [s: string]: boolean }>({});\n\n get editingRowKeys(): { [s: string]: boolean } {\n return this._editingRowKeys();\n }\n\n set editingRowKeys(value: { [s: string]: boolean }) {\n this._editingRowKeys.set(value);\n }\n /**\n * Whether multiple rows can be expanded at any time. Valid values are \"multiple\" and \"single\".\n * @group Props\n */\n rowExpandMode = input<TableRowExpandMode>('multiple');\n /**\n * Enables scrollable tables.\n * @group Props\n */\n scrollable = input(undefined, { transform: booleanAttribute });\n /**\n * Type of the row grouping, valid values are \"subheader\" and \"rowspan\".\n * @group Props\n */\n rowGroupMode = input<TableRowGroupMode>();\n /**\n * Height of the scroll viewport in fixed pixels or the \"flex\" keyword for a dynamic size.\n * @group Props\n */\n scrollHeight = input<string>();\n /**\n * Whether the data should be loaded on demand during scroll.\n * @group Props\n */\n virtualScroll = input(undefined, { transform: booleanAttribute });\n /**\n * Height of a row to use in calculations of virtual scrolling.\n * @group Props\n */\n virtualScrollItemSize = input(undefined, { transform: (v: unknown) => numberAttribute(v, 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 virtualScrollOptions = input<ScrollerOptions>();\n /**\n * Threshold in milliseconds to delay lazy loading during scrolling.\n * @group Props\n */\n virtualScrollDelay = input(250, { transform: numberAttribute });\n /**\n * Width of the frozen columns container.\n * @group Props\n */\n frozenWidth = input<string>();\n /**\n * Local ng-template varilable of a ContextMenu.\n * @group Props\n */\n contextMenu = input<any>();\n /**\n * When enabled, columns can be resized using drag and drop.\n * @group Props\n */\n resizableColumns = input(undefined, { transform: booleanAttribute });\n /**\n * Defines whether the overall table width should change on column resize, valid values are \"fit\" and \"expand\".\n * @group Props\n */\n columnResizeMode = input<TableColumnResizeMode>('fit');\n /**\n * When enabled, columns can be reordered using drag and drop.\n * @group Props\n */\n reorderableColumns = input(undefined, { transform: booleanAttribute });\n /**\n * Displays a loader to indicate data load is in progress.\n * @group Props\n */\n loading = input(undefined, { transform: booleanAttribute });\n /**\n * The icon to show while indicating data load is in progress.\n * @group Props\n */\n loadingIcon = input<string>();\n /**\n * Whether to show the loading mask when loading property is true.\n * @group Props\n */\n showLoader = input(true, { transform: booleanAttribute });\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 rowHover = input(undefined, { transform: booleanAttribute });\n /**\n * Whether to use the default sorting or a custom one using sortFunction.\n * @group Props\n */\n customSort = input(undefined, { transform: booleanAttribute });\n /**\n * Whether to use the initial sort badge or not.\n * @group Props\n */\n showInitialSortBadge = input(true, { transform: booleanAttribute });\n /**\n * Export function.\n * @group Props\n */\n exportFunction = input<Function>();\n /**\n * Custom export header of the column to be exported as CSV.\n * @group Props\n */\n exportHeader = input<string>();\n /**\n * Unique identifier of a stateful table to use in state storage.\n * @group Props\n */\n stateKey = input<string>();\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 stateStorage = input<TableStateStorage>('session');\n /**\n * Defines the editing mode, valid values are \"cell\" and \"row\".\n * @group Props\n */\n editMode = input<TableEditMode>('cell');\n /**\n * Field name to use in row grouping.\n * @group Props\n */\n groupRowsBy = input<any>();\n /**\n * Defines the size of the table.\n * @group Props\n */\n size = input<TableSize>();\n /**\n * Whether to show grid lines between cells.\n * @group Props\n */\n showGridlines = input(undefined, { transform: booleanAttribute });\n /**\n * Whether to display rows with alternating colors.\n * @group Props\n */\n stripedRows = input(undefined, { transform: booleanAttribute });\n /**\n * Order to sort when default row grouping is enabled.\n * @group Props\n */\n groupRowsByOrder = input(1, { transform: numberAttribute });\n /**\n * Locale to be used in paginator formatting.\n * @group Props\n */\n paginatorLocale = input<string>();\n /**\n * An array of objects to display.\n * @group Props\n */\n valueInput = input<RowData[]>(undefined, { alias: 'value' });\n /**\n * An array of objects to represent dynamic columns.\n * @group Props\n */\n columnsInput = input<any[]>(undefined, { alias: 'columns' });\n /**\n * Index of the first row to be displayed.\n * @group Props\n */\n first = model<number | null | undefined>(0);\n /**\n * Number of rows to display per page.\n * @group Props\n */\n rows = model<number | undefined>();\n /**\n * Number of total records, defaults to length of value when not defined.\n * @group Props\n */\n totalRecords = model(0);\n\n /**\n * Name of the field to sort data by default.\n * @group Props\n */\n sortFieldInput = input<string | null>(undefined, { alias: 'sortField' });\n /**\n * Order to sort when default sorting is enabled.\n * @group Props\n */\n sortOrderInput = input(1, { alias: 'sortOrder' });\n /**\n * An array of SortMeta objects to sort the data by default in multiple sort mode.\n * @group Props\n */\n multiSortMetaInput = input<SortMeta[] | null>(undefined, { alias: 'multiSortMeta' });\n /**\n * Selected row in single mode or an array of values in multiple mode.\n * @group Props\n */\n selection = model<any>();\n /**\n * Whether all data is selected.\n * @group Props\n */\n selectAllInput = input<boolean | null>(null, { alias: 'selectAll' });\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 selectAllChange = output<TableSelectAllChangeEvent>();\n /**\n * Callback to invoke when a row is selected.\n * @param {TableRowSelectEvent} event - custom select event.\n * @group Emits\n */\n onRowSelect = output<TableRowSelectEvent<RowData>>();\n /**\n * Callback to invoke when a row is unselected.\n * @param {TableRowUnSelectEvent} event - custom unselect event.\n * @group Emits\n */\n onRowUnselect = output<TableRowUnSelectEvent<RowData>>();\n /**\n * Callback to invoke when pagination occurs.\n * @param {TablePageEvent} event - custom pagination event.\n * @group Emits\n */\n onPage = output<TablePageEvent>();\n /**\n * Callback to invoke when a column gets sorted.\n * @param {Object} object - sort meta.\n * @group Emits\n */\n onSort = output<{ multisortmeta: SortMeta[] } | any>();\n /**\n * Callback to invoke when data is filtered.\n * @param {TableFilterEvent} event - custom filtering event.\n * @group Emits\n */\n onFilter = output<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 onLazyLoad = output<TableLazyLoadEvent>();\n /**\n * Callback to invoke when a row is expanded.\n * @param {TableRowExpandEvent} event - custom row expand event.\n * @group Emits\n */\n onRowExpand = output<TableRowExpandEvent<RowData>>();\n /**\n * Callback to invoke when a row is collapsed.\n * @param {TableRowCollapseEvent} event - custom row collapse event.\n * @group Emits\n */\n onRowCollapse = output<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 onContextMenuSelect = output<TableContextMenuSelectEvent<RowData>>();\n /**\n * Callback to invoke when a column is resized.\n * @param {TableColResizeEvent} event - custom column resize event.\n * @group Emits\n */\n onColResize = output<TableColResizeEvent>();\n /**\n * Callback to invoke when a column is reordered.\n * @param {TableColumnReorderEvent} event - custom column reorder event.\n * @group Emits\n */\n onColReorder = output<TableColumnReorderEvent>();\n /**\n * Callback to invoke when a row is reordered.\n * @param {TableRowReorderEvent} event - custom row reorder event.\n * @group Emits\n */\n onRowReorder = output<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 onEditInit = output<TableEditInitEvent>();\n /**\n * Callback to invoke when cell edit is completed.\n * @param {TableEditCompleteEvent} event - custom edit complete event.\n * @group Emits\n */\n onEditComplete = output<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 onEditCancel = output<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 onHeaderCheckboxToggle = output<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 sortFunction = output<any>();\n /**\n * Callback to invoke table state is saved.\n * @param {TableState} object - table state.\n * @group Emits\n */\n onStateSave = output<TableState>();\n /**\n * Callback to invoke table state is restored.\n * @param {TableState} object - table state.\n * @group Emits\n */\n onStateRestore = output<TableState>();\n\n resizeHelperViewChild = viewChild<ElementRef>('resizeHelper');\n\n reorderIndicatorUpViewChild = viewChild<ElementRef>('reorderIndicatorUp');\n\n reorderIndicatorDownViewChild = viewChild<ElementRef>('reorderIndicatorDown');\n\n wrapperViewChild = viewChild<ElementRef>('wrapper');\n\n tableViewChild = viewChild<ElementRef>('table');\n\n tableHeaderViewChild = viewChild<ElementRef>('thead');\n\n tableFooterViewChild = viewChild<ElementRef>('tfoot');\n\n scroller = viewChild<Scroller>('scroller');\n\n value: RowData[] = [];\n\n columns: any[] | undefined;\n\n filteredValue: any[] | undefined | null;\n\n headerTemplate = contentChild<TemplateRef<any>>('header', { descendants: false });\n\n headerGroupedTemplate = contentChild<TemplateRef<any>>('headergrouped', { descendants: false });\n\n bodyTemplate = contentChild<TemplateRef<any>>('body', { descendants: false });\n\n loadingBodyTemplate = contentChild<TemplateRef<any>>('loadingbody', { descendants: false });\n\n captionTemplate = contentChild<TemplateRef<any>>('caption', { descendants: false });\n\n footerTemplate = contentChild<TemplateRef<any>>('footer', { descendants: false });\n\n footerGroupedTemplate = contentChild<TemplateRef<any>>('footergrouped', { descendants: false });\n\n summaryTemplate = contentChild<TemplateRef<any>>('summary', { descendants: false });\n\n colGroupTemplate = contentChild<TemplateRef<any>>('colgroup', { descendants: false });\n\n expandedRowTemplate = contentChild<TemplateRef<any>>('expandedrow', { descendants: false });\n\n groupHeaderTemplate = contentChild<TemplateRef<any>>('groupheader', { descendants: false });\n\n groupFooterTemplate = contentChild<TemplateRef<any>>('groupfooter', { descendants: false });\n\n frozenExpandedRowTemplate = contentChild<TemplateRef<any>>('frozenexpandedrow', { descendants: false });\n\n frozenHeaderTemplate = contentChild<TemplateRef<any>>('frozenheader', { descendants: false });\n\n frozenBodyTemplate = contentChild<TemplateRef<any>>('frozenbody', { descendants: false });\n\n frozenFooterTemplate = contentChild<TemplateRef<any>>('frozenfooter', { descendants: false });\n\n frozenColGroupTemplate = contentChild<TemplateRef<any>>('frozencolgroup', { descendants: false });\n\n emptyMessageTemplate = contentChild<TemplateRef<any>>('emptymessage', { descendants: false });\n\n paginatorLeftTemplate = contentChild<TemplateRef<any>>('paginatorleft', { descendants: false });\n\n paginatorRightTemplate = contentChild<TemplateRef<any>>('paginatorright', { descendants: false });\n\n paginatorDropdownItemTemplate = contentChild<TemplateRef<any>>('paginatordropdownitem', { descendants: false });\n\n loadingIconTemplate = contentChild<TemplateRef<any>>('loadingicon', { descendants: false });\n\n reorderIndicatorUpIconTemplate = contentChild<TemplateRef<any>>('reorderindicatorupicon', { descendants: false });\n\n reorderIndicatorDownIconTemplate = contentChild<TemplateRef<any>>('reorderindicatordownicon', { descendants: false });\n\n sortIconTemplate = contentChild<TemplateRef<any>>('sorticon', { descendants: false });\n\n checkboxIconTemplate = contentChild<TemplateRef<any>>('checkboxicon', { descendants: false });\n\n headerCheckboxIconTemplate = contentChild<TemplateRef<any>>('headercheckboxicon', { descendants: false });\n\n paginatorDropdownIconTemplate = contentChild<TemplateRef<any>>('paginatordropdownicon', { descendants: false });\n\n paginatorFirstPageLinkIconTemplate = contentChild<TemplateRef<any>>('paginatorfirstpagelinkicon', { descendants: false });\n\n paginatorLastPageLinkIconTemplate = contentChild<TemplateRef<any>>('paginatorlastpagelinkicon', { descendants: false });\n\n paginatorPreviousPageLinkIconTemplate = contentChild<TemplateRef<any>>('paginatorpreviouspagelinkicon', { descendants: false });\n\n paginatorNextPageLinkIconTemplate = contentChild<TemplateRef<any>>('paginatornextpagelinkicon', { descendants: false });\n\n showLoadingMask = computed(() => this.loading() && this.showLoader());\n\n showTopPaginator = computed(() => this.paginator() && (this.paginatorPosition() === 'top' || this.paginatorPosition() === 'both'));\n\n showBottomPaginator = computed(() => this.paginator() && (this.paginatorPosition() === 'bottom' || this.paginatorPosition() === 'both'));\n\n showFrozenBody = computed(() => !!(this.frozenValue() || this.frozenBodyTemplate()));\n\n showFooter = computed(() => !!(this.footerGroupedTemplate() || this.footerTemplate()));\n\n scrollerStyle = computed(() => ({\n height: this.scrollHeight() !== 'flex' ? this.scrollHeight() : undefined\n }));\n\n scrollerScrollHeight = computed(() => (this.scrollHeight() !== 'flex' ? undefined : '100%'));\n\n scrollerDelay = computed(() => (this.lazy() ? this.virtualScrollDelay() : 0));\n\n selectionKeys: any = {};\n\n disabledSelectionKeys = new Set<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 private _editingCell = signal<Element | undefined | null>(null);\n\n get editingCell(): Element | undefined | null {\n return this._editingCell();\n }\n\n set editingCell(value: Element | undefined | null) {\n this._editingCell.set(value);\n }\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 _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: HTMLElement;\n\n columnResizing: boolean = false;\n\n rowGroupHeaderStyleObject: any = {};\n\n id: string = UniqueComponentId();\n\n styleElement: any;\n\n overlayService = inject(OverlayService);\n\n filterService = inject(FilterService);\n\n tableService = inject(TableService);\n\n _componentStyle = inject(TableStyle);\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n constructor() {\n super();\n\n effect(() => {\n const initialRows = this.rows();\n untracked(() => {\n if (this._defaultRows === undefined && initialRows !== undefined) {\n this._defaultRows = initialRows;\n }\n });\n });\n\n // Sync value + side effects\n effect(() => {\n const val = this.valueInput();\n untracked(() => {\n if (val !== undefined) {\n if (this.isStateful() && !this.stateRestored && isPlatformBrowser(this.platformId)) {\n this.restoreState();\n }\n this.value = val;\n if (!this.lazy()) {\n this.totalRecords.set(this.value ? this.value.length : 0);\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()) this._filter();\n }\n this.tableService.onValueChange(val);\n }\n });\n });\n\n // Sync columns + side effects\n effect(() => {\n const cols = this.columnsInput();\n untracked(() => {\n if (cols !== undefined) {\n if (!this.isStateful()) {\n this.columns = cols;\n this.tableService.onColumnsChange(cols);\n }\n if (this.columns && this.isStateful() && this.reorderableColumns() && !this.columnOrderStateRestored) {\n this.restoreColumnOrder();\n this.tableService.onColumnsChange(this.columns);\n }\n }\n });\n });\n\n // Sync sortField + side effects\n effect(() => {\n const val = this.sortFieldInput();\n untracked(() => {\n if (val !== undefined) {\n this.sortField = val;\n if (!this.lazy() || this.initialized) {\n if (this.sortMode() === 'single') {\n this.sortSingle();\n }\n }\n }\n });\n });\n\n // groupRowsBy change effect\n effect(() => {\n this.groupRowsBy();\n untracked(() => {\n if (!this.lazy() || this.initialized) {\n if (this.sortMode() === 'single') {\n this.sortSingle();\n }\n }\n });\n });\n\n // Sync sortOrder + side effects\n effect(() => {\n const val = this.sortOrderInput();\n untracked(() => {\n this.sortOrder = val;\n if (!this.lazy() || this.initialized) {\n if (this.sortMode() === 'single') {\n this.sortSingle();\n }\n }\n });\n });\n\n // groupRowsByOrder change effect\n effect(() => {\n this.groupRowsByOrder();\n untracked(() => {\n if (!this.lazy() || this.initialized) {\n if (this.sortMode() === 'single') {\n this.sortSingle();\n }\n }\n });\n });\n\n // Sync multiSortMeta + side effects\n effect(() => {\n const val = this.multiSortMetaInput();\n untracked(() => {\n if (val !== undefined) {\n this.multiSortMeta = val;\n if (this.sortMode() === 'multiple' && (this.initialized || (!this.lazy() && !this.virtualScroll()))) {\n this.sortMultiple();\n }\n }\n });\n });\n\n // Selection side effects\n effect(() => {\n const val = this.selection();\n untracked(() => {\n if (val !== undefined) {\n if (!this.preventSelectionSetterPropagation) {\n this.updateSelectionKeys();\n this.tableService.onSelectionChange();\n }\n this.preventSelectionSetterPropagation = false;\n }\n });\n });\n\n // Sync selectAll + side effects\n effect(() => {\n const val = this.selectAllInput();\n untracked(() => {\n if (val !== null) {\n this._selectAll = val;\n if (!this.preventSelectionSetterPropagation) {\n this.updateSelectionKeys();\n this.tableService.onSelectionChange();\n if (this.isStateful()) {\n this.saveState();\n }\n }\n this.preventSelectionSetterPropagation = false;\n }\n });\n });\n\n // Sync contextMenuSelection\n effect(() => {\n const val = this.contextMenuSelectionInput();\n if (val !== undefined) {\n this.contextMenuSelection = val;\n }\n });\n\n // Sync filters\n effect(() => {\n const val = this.filtersInput();\n this.filters = val ?? {};\n });\n\n // Sync expandedRowKeys\n effect(() => {\n const val = this.expandedRowKeysInput();\n this.expandedRowKeys = val ?? {};\n });\n\n // Sync editingRowKeys\n effect(() => {\n const val = this.editingRowKeysInput();\n this.editingRowKeys = val ?? {};\n });\n }\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n\n onInit() {\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 this.initialized = true;\n }\n\n onAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.isStateful() && this.resizableColumns()) {\n this.restoreColumnWidths();\n }\n }\n }\n\n get processedData() {\n return this.filteredValue || this.value || [];\n }\n\n private _initialColWidths: number[];\n\n private _defaultRows: number | undefined;\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 | PaginatorState) {\n this.first.set(event.first);\n this.rows.set(event.rows);\n\n this.onPage.emit({\n first: <number>this.first(),\n rows: <number>this.rows()\n });\n\n if (this.lazy()) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n\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.set(0);\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.set(0);\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.set(0);\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: any = 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 || 0);\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 && this.multiSortMeta.length > 0) {\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' || isClickable(event.originalEvent.target)) {\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.set(null);\n this.selectionKeys = {};\n } else {\n let selectionIndex = this.findIndexInSelection(rowData);\n this.selection.set(this.selection().filter((val: any, i: number) => i != selectionIndex));\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.set(rowData);\n if (dataKeyValue) {\n this.selectionKeys = {};\n this.selectionKeys[dataKeyValue] = 1;\n }\n } else if (this.isMultipleSelectionMode()) {\n if (metaKey) {\n this.selection.set(this.selection() || []);\n } else {\n this.selection.set([]);\n this.selectionKeys = {};\n }\n\n this.selection.set([...this.selection(), rowData]);\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.set(null);\n this.selectionKeys = {};\n this.onRowUnselect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row',\n index: rowIndex\n });\n } else {\n this.selection.set(rowData);\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.set(this.selection().filter((val: any, i: number) => i != selectionIndex));\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.set(this.selection() ? [...this.selection(), rowData] : [rowData]);\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 const showContextMenu = () => {\n this.contextMenu()!.show(event.originalEvent);\n this.contextMenu()!.hideCallback = () => {\n this.contextMenuSelection = null;\n this.contextMenuSelectionChange.emit(null);\n this.tableService.onContextMenu(null);\n };\n };\n\n this.contextMenuSelection = rowData;\n this.contextMenuSelectionChange.emit(rowData);\n this.tableService.onContextMenu(rowData);\n showContextMenu();\n this.onContextMenuSelect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n index: event.rowIndex\n });\n }\n }\n\n selectRange(event: MouseEvent | KeyboardEvent, rowIndex: number, isMetaKeySelection?: boolean | undefined) {\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: RowData[] = [];\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) && !isMetaKeySelection) {\n if (!this.isRowSelectable(rangeRowData, rowIndex)) {\n continue;\n }\n\n rangeRowsData.push(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 if (rangeRowsData.length > 0) {\n this.selection.set([...this.selection(), ...rangeRowsData]);\n }\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 const indicesToRemove = new Set<number>();\n for (let i = <number>rangeStart; i <= <number>rangeEnd; i++) {\n let rangeRowData = this.value[i];\n let selectionIndex = this.findIndexInSelection(rangeRowData);\n if (selectionIndex !== -1) {\n indicesToRemove.add(selectionIndex);\n }\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 this.selection.set(this.selection().filter((_: any, i: number) => !indicesToRemove.has(i)));\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 const sel = this.selection();\n if (sel && sel.length) {\n for (let i = 0; i < sel.length; i++) {\n if (this.equals(rowData, sel[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.set(rowData);\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.set(null);\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: { originalEvent: Event; rowIndex: number }, rowData: any) {\n if (!this.selection()) this.selection.set([]);\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.set(this.selection().filter((val: any, i: number) => i != selectionIndex));\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.set(this.selection() ? [...this.selection(), rowData] : [rowData]);\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({ originalEvent }: CheckboxChangeEvent, check: boolean) {\n if (this._selectAll !== null) {\n this.selectAllChange.emit({ originalEvent: originalEvent!, 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 const isSelectable = (rowData: any, index: number) => (!this.rowSelectable() || this.rowSelectable()!({ data: rowData, index })) && !this.isRowCheckboxDisabled(rowData);\n\n if (check) {\n selection = this.frozenValue() ? [...selection, ...this.frozenValue()!, ...data] : [...selection, ...data];\n selection = selection.filter((rowData: any, index: number) => isSelectable(rowData, index));\n }\n\n const previousSelection = this.selection() || [];\n const selectedKeys = new Set(previousSelection.map((s: any) => this.getSelectionKey(s)));\n const alreadyIncluded = new Set(selection.map((s: any) => this.getSelectionKey(s)));\n const preserveCandidates = this.frozenValue() ? [...this.frozenValue()!, ...data] : data;\n\n preserveCandidates.forEach((d: any, index: number) => {\n const key = this.getSelectionKey(d);\n if (!isSelectable(d, index) && selectedKeys.has(key) && !alreadyIncluded.has(key)) {\n selection.push(d);\n alreadyIncluded.add(key);\n }\n });\n\n this.preventSelectionSetterPropagation = true;\n this.selection.set(selection);\n this.updateSelectionKeys();\n this.tableService.onSelectionChange();\n this.onHeaderCheckboxToggle.emit({\n originalEvent: originalEvent!,\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 getSelectionKey(data: any) {\n return this.dataKey() && this.compareSelectionBy() !== 'equals' ? String(ObjectUtils.resolveFieldData(data, this.dataKey())) : data;\n }\n\n setRowCheckboxDisabled(rowData: any, disabled: boolean) {\n const key = this.getSelectionKey(rowData);\n if (disabled) {\n this.disabledSelectionKeys.add(key);\n } else {\n this.disabledSelectionKeys.delete(key);\n }\n }\n\n isRowCheckboxDisabled(rowData: any) {\n return this.disabledSelectionKeys.has(this.getSelectionKey(rowData));\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 (<any>this.filters[field]) = { value: value, matchMode: matchMode, applyFilter: true };\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.set(0);\n }\n\n if (this.lazy()) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else {\n if (!this.value) {\n return;\n }\n if (!this.hasFilter()) {\n this.filteredValue = null;\n if (this.paginator()) {\n this.totalRecords.set(this.totalRecords() === 0 && this.value ? this.value.length : this.totalRecords());\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.set(this.filteredValue ? this.filteredValue.length : this.totalRecords() === 0 && this.value ? this.value.length : (this.totalRecords() ?? 0));\n }\n }\n }\n\n this.onFilter.emit({\n filters: 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.set(0);\n\n // Restore the initial rows value; the 'All' option may have set it to totalRecords.\n if (this._defaultRows !== undefined && this.rows() !== this._defaultRows) {\n this.rows.set(this._defaultRows);\n }\n\n if (this.lazy()) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else {\n this.totalRecords.set(this.totalRecords() === 0 && this.value ? this.value.length : (this.totalRecords() ?? 0));\n }\n\n // Notify subscribers (e.g. ColumnFilter) so the filter icon resets when clearing externally\n this.tableService.onValueChange(this.value);\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()?.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()?.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 !this.$unstyled() && DomHandler.removeClass(this.editingCell, 'p-cell-editing');\n setAttribute(this.editingCell as HTMLElement, 'data-p-cell-editing', 'false');\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 = { ...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 const { [dataKeyValue]: removed, ...rest } = this.editingRowKeys;\n this.editingRowKeys = rest;\n }\n }\n\n cancelRowEdit(rowData: any) {\n let dataKeyValue = String(ObjectUtils.resolveFieldData(rowData, this.dataKey()));\n const { [dataKeyValue]: removed, ...rest } = this.editingRowKeys;\n this.editingRowKeys = rest;\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.el?.nativeElement).left;\n this.resizeColumnElement = event.target.closest('th');\n this.columnResizing = true;\n if (event.type == 'touchstart') {\n this.lastResizerHelperX = event.changedTouches[0].clientX - containerLeft + this.el?.nativeElement.scrollLeft;\n } else {\n this.lastResizerHelperX = event.pageX - containerLeft + this.el?.nativeElement.scrollLeft;\n }\n this.onColumnResize(event);\n event.preventDefault();\n }\n\n onColumnResize(event: any) {\n let containerLeft = DomHandler.getOffset(this.el?.nativeElement).left;\n !this.$unstyled() && DomHandler.addClass(this.el?.nativeElement, 'p-unselectable-text');\n this.resizeHelperViewChild()!.nativeElement.style.height = this.el?.nativeElement.offsetHeight + 'px';\n this.resizeHelperViewChild()!.nativeElement.style.top = 0 + 'px';\n if (event.type == 'touchmove') {\n this.resizeHelperViewChild()!.nativeElement.style.left = event.changedTouches[0].clientX - containerLeft + this.el?.nativeElement.scrollLeft + 'px';\n } else {\n this.resizeHelperViewChild()!.nativeElement.style.left = event.pageX - containerLeft + this.el?.nativeElement.scrollLeft + 'px';\n }\n this.resizeHelperViewChild()!.nativeElement.style.display = 'block';\n }\n\n onColumnResizeEnd() {\n const isRTL = getComputedStyle(this.el?.nativeElement ?? document.documentElement).direction === 'rtl';\n const rawDelta = this.resizeHelperViewChild()?.nativeElement.offsetLeft - <number>this.lastResizerHelperX;\n const delta = isRTL ? -rawDelta : rawDelta;\n const columnWidth = this.resizeColumnElement.offsetWidth;\n const newColumnWidth = columnWidth + delta;\n const elementMinWidth = this.resizeColumnElement.style.minWidth.replace(/[^\\d.]/g, '');\n const minWidth = elementMinWidth ? parseFloat(elementMinWidth) : 15;\n\n if (newColumnWidth >= minWidth) {\n if (this.columnResizeMode() === 'fit') {\n const nextColumn = this.resizeColumnElement.nextElementSibling as HTMLElement;\n const 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 const 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 this.resizeHelperViewChild()!.nativeElement.style.display = 'none';\n DomHandler.removeClass(this.el?.nativeElement, 'p-unselectable-text');\n }\n\n private _totalTableWidth(): number[] {\n let widths = [];\n const tableHead = DomHandler.findSingle(this.el.nativeElement, '[data-pc-section=\"thead\"]');\n let headers = DomHandler.find(tableHead, 'tr > th');\n headers.forEach((header) => (widths as any[]).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 }\n }\n\n onColumnDragOver(event: any, dropHeader: any) {\n if (this.reorderableColumns() && this.draggedColumn && dropHeader) {\n event.preventDefault();\n let containerOffset = DomHandler.getOffset(this.el?.nativeElement);\n let dropHeaderOffset = DomHandler.getOffset(dropHeader);\n\n if (this.draggedColumn != dropHeader) {\n let targetLeft = dropHeaderOffset.left - containerOffset.left;\n let columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;\n\n this.reorderIndicatorUpViewChild()!.nativeElement.style.top = dropHeaderOffset.top - containerOffset.top - (<number>this.reorderIconHeight - 1) + 'px';\n this.reorderIndicatorDownViewChild()!.nativeElement.style.top = dropHeaderOffset.top - containerOffset.top + dropHeader.offsetHeight + 'px';\n\n if (event.pageX > columnCenter) {\n this.reorderIndicatorUpViewChild()!.nativeElement.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n this.reorderIndicatorDownViewChild()!.nativeElement.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n this.dropPosition = 1;\n } else {\n this.reorderIndicatorUpViewChild()!.nativeElement.style.left = targetLeft - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n this.reorderIndicatorDownViewChild()!.nativeElement.style.left = targetLeft - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n this.dropPosition = -1;\n }\n this.reorderIndicatorUpViewChild()!.nativeElement.style.display = 'block';\n 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 this.reorderIndicatorUpViewChild()!.nativeElement.style.display = 'none';\n this.reorderIndicatorDownViewChild()!.nativeElement.style.display = 'none';\n }\n }\n\n onColumnDragEnd(event: Event) {\n if (this.reorderableColumns() && this.draggedColumn) {\n this.reorderIndicatorUpViewChild()!.nativeElement.style.display = 'none';\n this.reorderIndicatorDownViewChild()!.nativeElement.style.display = 'none';\n this.draggedColumn.draggable = false;\n this.draggedColumn = null;\n this.dropPosition = null;\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 setTimeout(() => {\n this.saveState();\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, 0, 0);\n }\n\n this.reorderIndicatorUpViewChild()!.nativeElement.style.display = 'none';\n 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 && !this.$unstyled()) DomHandler.addClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n else !this.$unstyled() && DomHandler.addClass(rowElement, 'p-datatable-dragpoint-top');\n } else {\n if (prevRowElement && !this.$unstyled()) DomHandler.removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n else !this.$unstyled() && DomHandler.addClass(rowElement, 'p-datatable-dragpoint-top');\n\n this.droppedRowIndex = index + 1;\n !this.$unstyled() && 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 !this.$unstyled() && DomHandler.removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n }\n\n !this.$unstyled() && DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n !this.$unstyled() && 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 getVirtualScrollerSpacerStyle(scrollerOptions: any) {\n return `height: calc(${scrollerOptions.spacerStyle.height} - ${scrollerOptions.rows.length * scrollerOptions.itemSize}px)`;\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(<string>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.set(state.first);\n }\n\n if (this.rows() !== undefined) {\n this.rows.set(state.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 // When restoring with given value, set applyFilter true to fill the filter icon\n for (const key in state.filters) {\n if (state.filters.hasOwnProperty(key) && (state.filters[key]['value'] || state.filters[key][0]['value'])) {\n if (Array.isArray(state.filters[key])) {\n state.filters[key][0]['applyFilter'] = true;\n } else {\n state.filters[key]['applyFilter'] = true;\n }\n }\n }\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.selection.set(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: any[] = [];\n\n const container = this.el?.nativeElement;\n\n if (container) {\n headers = DomHandler.find(container, '[data-pc-section=\"thead\"] > tr > th');\n }\n\n headers.forEach((header) => (widths as any[]).push(DomHandler.getOuterWidth(header)));\n state.columnWidths = widths.join(',');\n\n if (this.columnResizeMode() === 'expand' && this.tableViewChild()) {\n state.tableWidth = DomHandler.getOuterWidth(this.tableViewChild()!.nativeElement);\n }\n }\n\n setResizeTableWidth(width: string) {\n this.tableViewChild()!.nativeElement.style.width = width;\n 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 DomHandler.setAttribute(this.styleElement, 'nonce', this.config?.csp()?.nonce);\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 destroyStyleElement() {\n if (this.styleElement) {\n this.renderer.removeChild(this.document.head, this.styleElement);\n this.styleElement = null;\n }\n }\n\n ngAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n\n onDestroy() {\n this.unbindDocumentEditListener();\n this.editingCell = null;\n this.initialized = null;\n\n this.destroyStyleElement();\n }\n\n get dataP() {\n return this.cn({\n scrollable: this.scrollable(),\n 'flex-scrollable': this.scrollable() && this.scrollHeight() === 'flex',\n [this.size() as string]: this.size(),\n loading: this.loading(),\n empty: this.isEmpty()\n });\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, effect, inject, input } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { DomHandler } from 'primeng/dom';\nimport { VoidListener } from 'primeng/ts-helpers';\nimport { TableStyle } from './style/tablestyle';\n\n@Directive({\n selector: '[pFrozenColumn]',\n standalone: true,\n host: {\n '[class]': 'cx(\"frozenColumn\")'\n },\n providers: [TableStyle]\n})\nexport class FrozenColumn extends BaseComponent {\n frozen = input<boolean>(true);\n\n alignFrozen = input<string>('left');\n\n resizeListener: VoidListener;\n\n private resizeObserver?: ResizeObserver;\n\n _componentStyle = inject(TableStyle);\n\n constructor() {\n super();\n effect(() => {\n const frozen = this.frozen();\n if (frozen !== undefined) {\n Promise.resolve(null).then(() => this.updateStickyPosition());\n }\n });\n }\n\n onAfterViewInit() {\n this.bindResizeListener();\n this.observeChanges();\n }\n\n bindResizeListener() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.resizeListener) {\n this.resizeListener = this.renderer.listen(this.document.defaultView, 'resize', () => {\n this.recalculateColumns();\n });\n }\n }\n }\n\n unbindResizeListener() {\n if (this.resizeListener) {\n this.resizeListener();\n this.resizeListener = null;\n }\n }\n\n observeChanges() {\n if (isPlatformBrowser(this.platformId)) {\n const resizeObserver = new ResizeObserver(() => {\n this.recalculateColumns();\n });\n\n resizeObserver.observe(this.el.nativeElement);\n this.resizeObserver = resizeObserver;\n }\n }\n\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 updateStickyPosition() {\n if (!this.frozen()) {\n return;\n }\n\n const cell = this.el.nativeElement;\n\n if (this.alignFrozen() === 'right') {\n let right = 0;\n let sibling = cell.nextElementSibling;\n while (sibling) {\n right += DomHandler.getOuterWidth(sibling);\n sibling = sibling.nextElementSibling;\n }\n cell.style.right = right + 'px';\n } else {\n let left = 0;\n let sibling = cell.previousElementSibling;\n while (sibling) {\n left += DomHandler.getOuterWidth(sibling);\n sibling = sibling.previousElementSibling;\n }\n cell.style.left = left + 'px';\n }\n }\n\n onDestroy() {\n this.unbindResizeListener();\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n}\n","import { booleanAttribute, Directive, input } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\n\n@Directive({\n selector: '[pEditableRow]',\n standalone: true\n})\nexport class EditableRow extends BaseComponent {\n data = input<any>(undefined, { alias: 'pEditableRow' });\n\n pEditableRowDisabled = input(undefined, { transform: booleanAttribute });\n\n isEnabled() {\n return this.pEditableRowDisabled() !== true;\n }\n}\n","import { Directive, ElementRef, inject } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { TableStyle } from './style/tablestyle';\n\n@Directive({\n selector: '[pReorderableRowHandle]',\n standalone: true,\n host: {\n '[class]': \"cx('reorderableRowHandle')\"\n },\n providers: [TableStyle],\n hostDirectives: [Bind]\n})\nexport class ReorderableRowHandle extends BaseComponent {\n hostName = 'Table';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptm('reorderableRowHandle'));\n }\n\n _componentStyle = inject(TableStyle);\n\n constructor(public el: ElementRef) {\n super();\n }\n\n onAfterViewInit() {\n // DomHandler.addClass(this.el.nativeElement, 'p-datatable-reorderable-row-handle');\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { TableStyle } from './style/tablestyle';\nimport { TABLE_INSTANCE } from './table-service';\nimport type { Table } from './table';\n\n@Directive({\n selector: '[pRowGroupHeader]',\n standalone: true,\n host: {\n '[class]': 'cx(\"rowGroupHeader\")',\n '[style]': 'sx(\"rowGroupHeader\")'\n },\n providers: [TableStyle]\n})\nexport class RowGroupHeader extends BaseComponent {\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n _componentStyle = inject(TableStyle);\n\n get getFrozenRowGroupHeaderStickyPosition() {\n return this.dataTable.rowGroupHeaderStyleObject ? this.dataTable.rowGroupHeaderStyleObject.top : '';\n }\n}\n","import { booleanAttribute, Directive, HostListener, inject, input } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { TABLE_INSTANCE } from './table-service';\nimport type { Table } from './table';\n\n@Directive({\n selector: '[pRowToggler]',\n standalone: true\n})\nexport class RowToggler extends BaseComponent {\n data = input<any>(undefined, { alias: 'pRowToggler' });\n\n pRowTogglerDisabled = input(undefined, { transform: booleanAttribute });\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.dataTable.toggleRow(this.data(), event);\n event.preventDefault();\n }\n }\n\n isEnabled() {\n return this.pRowTogglerDisabled() !== true;\n }\n}\n","import { booleanAttribute, computed, Directive, HostListener, inject, input, signal } from '@angular/core';\nimport { getAttribute } from '@primeuix/utils';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { DomHandler } from 'primeng/dom';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TableStyle } from './style/tablestyle';\nimport { TABLE_INSTANCE } from './table-service';\nimport type { Table } from './table';\n\n@Directive({\n selector: '[pSortableColumn]',\n standalone: true,\n host: {\n '[class]': \"cx('sortableColumn')\",\n '[tabindex]': '$tabindex()',\n role: 'columnheader',\n '[attr.aria-sort]': 'ariaSort()'\n },\n providers: [TableStyle]\n})\nexport class SortableColumn extends BaseComponent {\n field = input<string | undefined>(undefined, { alias: 'pSortableColumn' });\n\n pSortableColumnDisabled = input(undefined, { transform: booleanAttribute });\n\n role = this.el.nativeElement?.tagName !== 'TH' ? 'columnheader' : null;\n\n sorted = signal(false);\n\n sortOrder = signal(0);\n\n $tabindex = computed(() => (this.isEnabled() ? '0' : null));\n\n ariaSort = computed(() => {\n const sorted = this.sorted();\n const order = this.sortOrder();\n return sorted ? (order === 1 ? 'ascending' : 'descending') : 'none';\n });\n\n _componentStyle = inject(TableStyle);\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n constructor() {\n super();\n if (this.isEnabled()) {\n this.dataTable.tableService.sortSource$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.updateSortState();\n });\n }\n }\n\n onInit() {\n if (this.isEnabled()) {\n this.updateSortState();\n }\n }\n\n updateSortState() {\n let sorted = false;\n let sortOrder = 0;\n\n if (this.dataTable.sortMode() === 'single') {\n sorted = this.dataTable.isSorted(<string>this.field()) as boolean;\n sortOrder = this.dataTable.sortOrder;\n } else if (this.dataTable.sortMode() === 'multiple') {\n const sortMeta = this.dataTable.getSortMeta(<string>this.field());\n sorted = !!sortMeta;\n sortOrder = sortMeta ? sortMeta.order : 0;\n }\n\n this.sorted.set(sorted);\n this.sortOrder.set(sortOrder);\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent) {\n if (this.isEnabled() && !this.isFilterElement(<HTMLElement>event.target)) {\n this.updateSortState();\n this.dataTable.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: Event) {\n this.onClick(event as MouseEvent);\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\n private isFilterElementIconOrButton(element: HTMLElement) {\n return getAttribute(element, '[data-pc-name=\"pccolumnfilterbutton\"]') || getAttribute(element, '[data-pc-section=\"columnfilterbuttonicon\"]');\n }\n}\n","import { booleanAttribute, Directive, HostListener, inject, input } from '@angular/core';\nimport { find } from '@primeuix/utils';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { DomHandler } from 'primeng/dom';\nimport { ObjectUtils } from 'primeng/utils';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TableStyle } from './style/tablestyle';\nimport { TABLE_INSTANCE, TableService } from './table-service';\nimport type { Table } from './table';\n\n@Directive({\n selector: '[pSelectableRow]',\n standalone: true,\n host: {\n '[class]': \"cx('selectableRow')\",\n '[tabindex]': 'setRowTabIndex()',\n '[attr.data-p-selectable-row]': 'true'\n },\n providers: [TableStyle]\n})\nexport class SelectableRow extends BaseComponent {\n data = input<any>(undefined, { alias: 'pSelectableRow' });\n\n index = input<number | undefined>(undefined, { alias: 'pSelectableRowIndex' });\n\n pSelectableRowDisabled = input(undefined, { transform: booleanAttribute });\n\n selected: boolean | undefined;\n\n _componentStyle = inject(TableStyle);\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n public tableService = inject(TableService);\n\n constructor() {\n super();\n if (this.isEnabled()) {\n this.dataTable.tableService.selectionSource$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.selected = this.dataTable.isSelected(this.data());\n });\n }\n }\n\n setRowTabIndex() {\n if (this.dataTable.selectionMode() === 'single' || this.dataTable.selectionMode() === 'multiple') {\n const anchorIndex = this.dataTable.anchorRowIndex;\n return anchorIndex != null ? (anchorIndex === this.index() ? 0 : -1) : 0;\n }\n }\n\n onInit() {\n if (this.isEnabled()) {\n this.selected = this.dataTable.isSelected(this.data());\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.dataTable.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.dataTable.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.dataTable.selectionMode() === 'multiple') {\n const data = this.dataTable.dataToRender(this.dataTable.processedData);\n this.dataTable.selection.set([...data]);\n this.dataTable.selectRange(event, data.length - 1, true);\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.dataTable.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.dataTable.dataToRender(this.dataTable.rows());\n const lastSelectableRowIndex = DomHandler.getAttribute(lastRow, 'index');\n\n this.dataTable.anchorRowIndex = lastSelectableRowIndex;\n this.dataTable.selection.set(data.slice(this.index() || 0, data.length));\n this.dataTable.selectRange(event, this.index() || 0);\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.dataTable.dataToRender(this.dataTable.rows());\n const firstSelectableRowIndex = DomHandler.getAttribute(firstRow, 'index');\n\n this.dataTable.anchorRowIndex = this.dataTable.anchorRowIndex || firstSelectableRowIndex || 0;\n this.dataTable.selection.set(data.slice(0, (this.index() || 0) + 1));\n this.dataTable.selectRange(event, this.index() || 0);\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.dataTable.selection() !== null) {\n const data = this.dataTable.dataToRender(this.dataTable.rows());\n let index;\n const sel = this.dataTable.selection();\n\n if (ObjectUtils.isNotEmpty(sel) && sel.length > 0) {\n let firstSelectedRowIndex, lastSelectedRowIndex;\n firstSelectedRowIndex = ObjectUtils.findIndexInList(sel[0], data);\n lastSelectedRowIndex = ObjectUtils.findIndexInList(sel[sel.length - 1], data);\n\n index = (this.index() || 0) <= firstSelectedRowIndex ? lastSelectedRowIndex : firstSelectedRowIndex;\n } else {\n index = ObjectUtils.findIndexInList(sel, data);\n }\n\n this.dataTable.anchorRowIndex = index || 0;\n this.dataTable.selection.set(index !== this.index() ? data.slice(Math.min(index || 0, this.index() || 0), Math.max(index || 0, this.index() || 0) + 1) : [this.data()]);\n this.dataTable.selectRange(event, this.index() || 0);\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.dataTable.el.nativeElement, '[data-p-selectable-row=\"true\"]');\n\n return rows ? rows[rows.length - 1] : null;\n }\n\n findFirstSelectableRow() {\n const firstRow = DomHandler.findSingle(this.dataTable.el.nativeElement, '[data-p-selectable-row=\"true\"]');\n\n return firstRow;\n }\n\n findNextSelectableRow(row: HTMLTableRowElement): HTMLTableRowElement | null {\n let nextRow = <HTMLTableRowElement>row.nextElementSibling;\n\n if (nextRow) {\n if (find(nextRow, '[data-p-selectable-row=\"true\"]')) 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 (find(prevRow, '[data-p-selectable-row=\"true\"]')) 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","import { booleanAttribute, Directive, HostListener, inject, input } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TableStyle } from './style/tablestyle';\nimport { TABLE_INSTANCE, TableService } from './table-service';\nimport type { Table } from './table';\n\n@Directive({\n selector: '[pSelectableRowDblClick]',\n standalone: true,\n host: {\n '[class]': 'cx(\"selectableRow\")'\n },\n providers: [TableStyle]\n})\nexport class SelectableRowDblClick extends BaseComponent {\n data = input<any>(undefined, { alias: 'pSelectableRowDblClick' });\n\n index = input<number | undefined>(undefined, { alias: 'pSelectableRowIndex' });\n\n pSelectableRowDisabled = input(undefined, { transform: booleanAttribute });\n\n selected: boolean | undefined;\n\n _componentStyle = inject(TableStyle);\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n public tableService = inject(TableService);\n\n constructor() {\n super();\n if (this.isEnabled()) {\n this.dataTable.tableService.selectionSource$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.selected = this.dataTable.isSelected(this.data());\n });\n }\n }\n\n onInit() {\n if (this.isEnabled()) {\n this.selected = this.dataTable.isSelected(this.data());\n }\n }\n\n @HostListener('dblclick', ['$event'])\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.dataTable.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","import { booleanAttribute, Directive, HostListener, inject, input } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TableStyle } from './style/tablestyle';\nimport { TABLE_INSTANCE, TableService } from './table-service';\nimport type { Table } from './table';\n\n@Directive({\n selector: '[pContextMenuRow]',\n standalone: true,\n host: {\n '[class]': 'cx(\"contextMenuRowSelected\")',\n '[attr.tabindex]': 'isEnabled() ? 0 : undefined'\n },\n providers: [TableStyle]\n})\nexport class ContextMenuRow extends BaseComponent {\n data = input<any>(undefined, { alias: 'pContextMenuRow' });\n\n index = input<number | undefined>(undefined, { alias: 'pContextMenuRowIndex' });\n\n pContextMenuRowDisabled = input(undefined, { transform: booleanAttribute });\n\n selected: boolean | undefined;\n\n _componentStyle = inject(TableStyle);\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n public tableService = inject(TableService);\n\n constructor() {\n super();\n if (this.isEnabled()) {\n this.dataTable.tableService.contextMenuSource$.pipe(takeUntilDestroyed()).subscribe((data) => {\n this.selected = data ? this.dataTable.equals(this.data(), data) : false;\n });\n }\n }\n\n @HostListener('contextmenu', ['$event'])\n onContextMenu(event: Event) {\n if (this.isEnabled()) {\n this.dataTable.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","import { isPlatformBrowser } from '@angular/common';\nimport { booleanAttribute, Directive, inject, input } from '@angular/core';\nimport { setAttribute } from '@primeuix/utils';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { DomHandler } from 'primeng/dom';\nimport { VoidListener } from 'primeng/ts-helpers';\nimport { TableStyle } from './style/tablestyle';\nimport { TABLE_INSTANCE } from './table-service';\nimport type { Table } from './table';\n\n@Directive({\n selector: '[pResizableColumn]',\n standalone: true,\n host: {\n '[class]': \"cx('resizableColumn')\"\n },\n providers: [TableStyle]\n})\nexport class ResizableColumn extends BaseComponent {\n pResizableColumnDisabled = input(undefined, { transform: booleanAttribute });\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 _componentStyle = inject(TableStyle);\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n onAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.isEnabled()) {\n this.resizer = this.renderer.createElement('span');\n setAttribute(this.resizer as HTMLElement, 'data-pc-column-resizer', 'true');\n !this.$unstyled() && this.renderer.addClass(this.resizer, 'p-datatable-column-resizer');\n this.renderer.appendChild(this.el.nativeElement, this.resizer);\n\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 bindDocumentEvents() {\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 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.dataTable.onColumnResizeBegin(event);\n this.bindDocumentEvents();\n }\n\n onTouchStart(event: TouchEvent) {\n this.dataTable.onColumnResizeBegin(event);\n this.bindDocumentEvents();\n }\n\n onTouchMove(event: TouchEvent) {\n this.dataTable.onColumnResize(event);\n }\n onDocumentMouseMove(event: MouseEvent) {\n this.dataTable.onColumnResize(event);\n }\n\n onDocumentMouseUp(event: MouseEvent) {\n this.dataTable.onColumnResizeEnd();\n this.unbindDocumentEvents();\n }\n\n onTouchEnd(event: TouchEvent) {\n this.dataTable.onColumnResizeEnd();\n this.unbindDocumentEvents();\n }\n\n isEnabled() {\n return this.pResizableColumnDisabled() !== true;\n }\n\n onDestroy() {\n if (this.resizerMouseDownListener) {\n this.resizerMouseDownListener();\n this.resizerMouseDownListener = null;\n }\n\n this.unbindDocumentEvents();\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { booleanAttribute, Directive, HostListener, inject, input } from '@angular/core';\nimport { findSingle } from '@primeuix/utils';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { VoidListener } from 'primeng/ts-helpers';\nimport { TableStyle } from './style/tablestyle';\nimport { TABLE_INSTANCE } from './table-service';\nimport type { Table } from './table';\n\n@Directive({\n selector: '[pReorderableColumn]',\n standalone: true,\n host: {\n '[class]': \"cx('reorderableColumn')\"\n },\n providers: [TableStyle]\n})\nexport class ReorderableColumn extends BaseComponent {\n pReorderableColumnDisabled = input(undefined, { transform: booleanAttribute });\n\n dragStartListener: VoidListener;\n\n dragOverListener: VoidListener;\n\n dragEnterListener: VoidListener;\n\n dragLeaveListener: VoidListener;\n\n dragEndListener: VoidListener;\n\n mouseDownListener: VoidListener;\n\n _componentStyle = inject(TableStyle);\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n onAfterViewInit() {\n if (this.isEnabled()) {\n this.bindEvents();\n }\n }\n\n bindEvents() {\n if (isPlatformBrowser(this.platformId)) {\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 this.dragEndListener = this.renderer.listen(this.el.nativeElement, 'dragend', this.onDragEnd.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.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 if (this.dragEndListener) {\n this.dragEndListener();\n this.dragEndListener = null;\n }\n }\n\n onMouseDown(event: any) {\n if (event.target.nodeName === 'INPUT' || event.target.nodeName === 'TEXTAREA' || findSingle(event.target, '[data-pc-column-resizer=\"true\"]')) this.el.nativeElement.draggable = false;\n else this.el.nativeElement.draggable = true;\n }\n\n onDragStart(event: any) {\n this.dataTable.onColumnDragStart(event, this.el.nativeElement);\n }\n\n onDragOver(event: any) {\n this.dataTable.onColumnDragOver(event, this.el.nativeElement);\n }\n\n onDragEnter(event: any) {\n this.dataTable.onColumnDragEnter(event, this.el.nativeElement);\n }\n\n onDragLeave(event: any) {\n this.dataTable.onColumnDragLeave(event);\n }\n\n onDragEnd(event: any) {\n this.dataTable.onColumnDragEnd(event);\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: any) {\n if (this.isEnabled()) {\n this.dataTable.onColumnDrop(event, this.el.nativeElement);\n }\n }\n\n isEnabled() {\n return this.pReorderableColumnDisabled() !== true;\n }\n\n onDestroy() {\n this.unbindEvents();\n }\n}\n","import { booleanAttribute, Directive, effect, HostListener, inject, input, untracked } from '@angular/core';\nimport { findSingle, setAttribute } from '@primeuix/utils';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { DomHandler } from 'primeng/dom';\nimport { TABLE_INSTANCE } from './table-service';\nimport type { Table } from './table';\n\n@Directive({\n selector: '[pEditableColumn]',\n standalone: true,\n host: {\n '[attr.data-p-editable-column]': 'true'\n }\n})\nexport class EditableColumn extends BaseComponent {\n data = input<any>(undefined, { alias: 'pEditableColumn' });\n\n field = input<any>(undefined, { alias: 'pEditableColumnField' });\n\n rowIndex = input<number | undefined>(undefined, { alias: 'pEditableColumnRowIndex' });\n\n pEditableColumnDisabled = input(undefined, { transform: booleanAttribute });\n\n pFocusCellSelector = input<string | undefined>();\n\n overlayEventListener: any;\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n private initialized = false;\n\n private originalCellValue: any;\n\n constructor() {\n super();\n effect(() => {\n const data = this.data();\n untracked(() => {\n // only refresh editing state for the cell that is currently being edited;\n // declaring any cell whose data changes as the editing cell opens its editor\n if (this.el.nativeElement && this.initialized && this.dataTable.editingCell === this.el.nativeElement) {\n this.dataTable.updateEditingCell(this.el.nativeElement, data, this.field(), <number>this.rowIndex());\n }\n this.initialized = true;\n });\n });\n }\n\n onAfterViewInit() {\n if (this.isEnabled()) {\n !this.$unstyled() && 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.dataTable.selfClick = true;\n\n if (this.dataTable.editingCell) {\n if (this.dataTable.editingCell !== this.el.nativeElement) {\n if (!this.dataTable.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 const editingRow = this.resolveEditingRow();\n const field = this.field();\n // Snapshot the value before editing so Escape can restore it. Depending on the\n // binding style, `data()` is either the row object or the cell value itself.\n this.originalCellValue = editingRow && field != null ? editingRow[field] : this.data();\n this.dataTable.updateEditingCell(this.el.nativeElement, this.data(), this.field(), <number>this.rowIndex());\n !this.$unstyled() && DomHandler.addClass(this.el.nativeElement, 'p-cell-editing');\n setAttribute(this.el.nativeElement, 'data-p-cell-editing', 'true');\n\n this.dataTable.onEditInit.emit({\n field: this.field(),\n data: this.data(),\n index: <number>this.rowIndex()\n });\n setTimeout(() => {\n // Editors are not necessarily native form elements: p-select & friends\n // expose their focus target as an element with a tabindex instead.\n let focusCellSelector = this.pFocusCellSelector() || 'input, textarea, select, [tabindex]:not([tabindex=\"-1\"])';\n let focusableElement = DomHandler.findSingle(this.el.nativeElement, focusCellSelector);\n\n if (focusableElement) {\n focusableElement.focus();\n }\n }, 50);\n\n this.overlayEventListener = (e: any) => {\n if (this.el && this.el.nativeElement.contains(e.target)) {\n this.dataTable.selfClick = true;\n }\n };\n\n this.dataTable.overlaySubscription = this.dataTable.overlayService.clickObservable.subscribe(this.overlayEventListener);\n }\n\n closeEditingCell(completed: any, event: Event) {\n const eventData = {\n field: <string>this.dataTable.editingCellField,\n data: <any>this.dataTable.editingCellData,\n originalEvent: <Event>event,\n index: <number>this.dataTable.editingCellRowIndex\n };\n\n if (completed) {\n this.dataTable.onEditComplete.emit(eventData);\n } else {\n this.dataTable.onEditCancel.emit(eventData);\n\n const editingField = this.dataTable.editingCellField;\n const editingRow = this.resolveEditingRow();\n\n if (editingRow && editingField != null) {\n editingRow[editingField] = this.originalCellValue;\n }\n }\n\n this.originalCellValue = undefined;\n\n !this.$unstyled() && DomHandler.removeClass(this.dataTable.editingCell, 'p-cell-editing');\n setAttribute(this.el.nativeElement, 'data-p-cell-editing', 'false');\n this.dataTable.editingCell = null;\n this.dataTable.editingCellData = null;\n this.dataTable.editingCellField = null;\n this.dataTable.unbindDocumentEditListener();\n\n if (this.dataTable.overlaySubscription) {\n this.dataTable.overlaySubscription.unsubscribe();\n }\n }\n\n /**\n * Resolves the row object being edited. The `pEditableColumn` binding can either receive\n * the row object directly (with `pEditableColumnRowIndex`) or the cell value; this handles\n * both by preferring the row index and falling back to a value match.\n */\n private resolveEditingRow(): any {\n const rows = this.dataTable.value;\n const data = this.data();\n\n // Row object passed directly to pEditableColumn.\n if (data && typeof data === 'object') {\n return data;\n }\n\n const rowIndex = this.rowIndex();\n if (typeof rowIndex === 'number' && rows?.[rowIndex]) {\n return rows[rowIndex];\n }\n\n const field = this.field();\n if (field != null) {\n return rows?.find((element) => element[field] === data);\n }\n\n return undefined;\n }\n\n @HostListener('keydown.enter', ['$event'])\n onEnterKeyDown(event: Event) {\n const keyboardEvent = event as KeyboardEvent;\n if (this.isEnabled() && !keyboardEvent.shiftKey) {\n if (this.dataTable.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n event.preventDefault();\n }\n }\n\n @HostListener('keydown.tab', ['$event'])\n onTabKeyDown(event: Event) {\n if (this.isEnabled()) {\n if (this.dataTable.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n event.preventDefault();\n }\n }\n\n @HostListener('keydown.escape', ['$event'])\n onEscapeKeyDown(event: Event) {\n if (this.isEnabled()) {\n if (this.dataTable.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: Event) {\n if (this.isEnabled()) {\n if ((event as KeyboardEvent).shiftKey) this.moveToPreviousCell(event);\n else {\n this.moveToNextCell(event);\n }\n }\n }\n @HostListener('keydown.arrowdown', ['$event'])\n onArrowDown(event: Event) {\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.dataTable.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: Event) {\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.dataTable.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: Event) {\n if (this.isEnabled()) {\n this.moveToPreviousCell(event);\n }\n }\n\n @HostListener('keydown.arrowright', ['$event'])\n onArrowRight(event: Event) {\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 && !findSingle(cell as HTMLElement, '[data-p-cell-editing=\"true\"]')) {\n cell = cell.parentElement;\n }\n\n return cell;\n } else {\n return null;\n }\n }\n\n moveToPreviousCell(event: Event) {\n let currentCell = this.findCell(event.target);\n if (currentCell) {\n let targetCell = this.findPreviousEditableColumn(currentCell);\n\n if (targetCell) {\n if (this.dataTable.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: Event) {\n let currentCell = this.findCell(event.target);\n if (currentCell) {\n let targetCell = this.findNextEditableColumn(currentCell);\n\n if (targetCell) {\n if (this.dataTable.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.dataTable.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 (findSingle(prevCell, '[data-p-editable-column=\"true\"]')) 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 (findSingle(nextCell, '[data-p-editable-column=\"true\"]')) 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 && findSingle(nextCell, '[data-p-editable-column=\"true\"]')) {\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 && findSingle(prevCell, '[data-p-editable-column=\"true\"]')) {\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 onDestroy() {\n if (this.dataTable.overlaySubscription) {\n this.dataTable.overlaySubscription.unsubscribe();\n }\n }\n}\n","import { booleanAttribute, Directive, HostListener, inject, input } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { VoidListener } from 'primeng/ts-helpers';\nimport { TABLE_INSTANCE } from './table-service';\nimport type { Table } from './table';\n\n@Directive({\n selector: '[pReorderableRow]',\n standalone: true,\n hostDirectives: [Bind]\n})\nexport class ReorderableRow extends BaseComponent {\n hostName = 'Table';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptm('reorderableRow'));\n }\n\n index = input<number | undefined>(undefined, { alias: 'pReorderableRow' });\n\n pReorderableRowDisabled = input(undefined, { transform: booleanAttribute });\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 public dataTable = inject<Table>(TABLE_INSTANCE);\n\n onAfterViewInit() {\n if (this.isEnabled()) {\n this.el.nativeElement.droppable = true;\n this.bindEvents();\n }\n }\n\n bindEvents() {\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 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.dataTable.onRowDragStart(event, <number>this.index());\n }\n\n onDragEnd(event: DragEvent) {\n this.dataTable.onRowDragEnd(event);\n this.el.nativeElement.draggable = false;\n }\n\n onDragOver(event: DragEvent) {\n this.dataTable.onRowDragOver(event, <number>this.index(), this.el.nativeElement);\n event.preventDefault();\n }\n\n onDragLeave(event: DragEvent) {\n this.dataTable.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.dataTable.rowDragging) {\n this.dataTable.onRowDrop(event, this.el.nativeElement);\n }\n\n event.preventDefault();\n }\n\n onDestroy() {\n this.unbindEvents();\n }\n}\n","import { Directive, HostListener, inject } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { EditableRow } from './editable-row';\nimport { TABLE_INSTANCE } from './table-service';\nimport type { Table } from './table';\n\n@Directive({\n selector: '[pInitEditableRow]',\n standalone: true,\n host: {\n class: 'p-datatable-row-editor-init'\n }\n})\nexport class InitEditableRow extends BaseComponent {\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n public editableRow = inject(EditableRow);\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n this.dataTable.initRowEdit(this.editableRow.data());\n event.preventDefault();\n }\n}\n","import { Directive, HostListener, inject } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { TableStyle } from './style/tablestyle';\nimport { EditableRow } from './editable-row';\nimport { TABLE_INSTANCE } from './table-service';\nimport type { Table } from './table';\n\n@Directive({\n selector: '[pSaveEditableRow]',\n standalone: true,\n providers: [TableStyle],\n host: {\n '[class]': 'cx(\"pcRowEditorSave\")'\n }\n})\nexport class SaveEditableRow extends BaseComponent {\n hostName = 'Table';\n\n _componentStyle = inject(TableStyle);\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n public editableRow = inject(EditableRow);\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n this.dataTable.saveRowEdit(this.editableRow.data(), this.editableRow.el.nativeElement);\n event.preventDefault();\n }\n}\n","import { Directive, HostListener, inject } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { EditableRow } from './editable-row';\nimport { TableStyle } from './style/tablestyle';\nimport { TABLE_INSTANCE } from './table-service';\nimport type { Table } from './table';\n\n@Directive({\n selector: '[pCancelEditableRow]',\n standalone: true,\n host: {\n '[class]': \"cx('rowEditorCancel')\"\n },\n providers: [TableStyle]\n})\nexport class CancelEditableRow extends BaseComponent {\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n public editableRow = inject(EditableRow);\n\n _componentStyle = inject(TableStyle);\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n this.dataTable.cancelRowEdit(this.editableRow.data());\n event.preventDefault();\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input, signal, ViewEncapsulation } from '@angular/core';\nimport { BadgeModule } from 'primeng/badge';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { SortAlt } from '@primeicons/angular/sort-alt';\nimport { SortAmountDown } from '@primeicons/angular/sort-amount-down';\nimport { SortAmountUpAlt } from '@primeicons/angular/sort-amount-up-alt';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TableStyle } from './style/tablestyle';\nimport { TABLE_INSTANCE } from './table-service';\nimport type { Table } from './table';\n\n@Component({\n selector: 'p-sort-icon, p-sorticon',\n standalone: true,\n imports: [NgTemplateOutlet, BadgeModule, SortAlt, SortAmountUpAlt, SortAmountDown],\n template: `\n @if (!dataTable.sortIconTemplate()) {\n @if (sortOrder() === 0) {\n <svg data-p-icon=\"sort-alt\" [class]=\"cx('sortableColumnIcon')\" />\n }\n @if (sortOrder() === 1) {\n <svg data-p-icon=\"sort-amount-up-alt\" [class]=\"cx('sortableColumnIcon')\" />\n }\n @if (sortOrder() === -1) {\n <svg data-p-icon=\"sort-amount-down\" [class]=\"cx('sortableColumnIcon')\" />\n }\n }\n @if (dataTable.sortIconTemplate()) {\n <span [class]=\"cx('sortableColumnIcon')\">\n <ng-template *ngTemplateOutlet=\"dataTable.sortIconTemplate(); context: { $implicit: sortOrder() }\"></ng-template>\n </span>\n }\n @if (isMultiSorted()) {\n <p-badge [class]=\"cx('sortableColumnBadge')\" [value]=\"getBadgeValue()\" size=\"small\" />\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [TableStyle]\n})\nexport class SortIcon extends BaseComponent {\n field = input<string | undefined>();\n\n sortOrder = signal<number>(0);\n\n _componentStyle = inject(TableStyle);\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n constructor() {\n super();\n this.dataTable.tableService.sortSource$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.updateSortState();\n });\n }\n\n onInit() {\n this.updateSortState();\n }\n\n onClick(event: Event) {\n event.preventDefault();\n }\n\n updateSortState() {\n if (this.dataTable.sortMode() === 'single') {\n this.sortOrder.set(this.dataTable.isSorted(<string>this.field()) ? this.dataTable.sortOrder : 0);\n } else if (this.dataTable.sortMode() === 'multiple') {\n let sortMeta = this.dataTable.getSortMeta(<string>this.field());\n this.sortOrder.set(sortMeta ? sortMeta.order : 0);\n }\n }\n\n getMultiSortMetaIndex() {\n let multiSortMeta = this.dataTable.multiSortMeta;\n let index = -1;\n\n if (multiSortMeta && this.dataTable.sortMode() === 'multiple' && this.dataTable.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.dataTable?.groupRowsBy() || '') && index > -1 ? index : index + 1;\n }\n\n isMultiSorted() {\n return this.dataTable.sortMode() === 'multiple' && this.getMultiSortMetaIndex() > -1;\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, contentChild, inject, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { EditableColumn } from './editable-column';\nimport { EditableRow } from './editable-row';\nimport { TABLE_INSTANCE } from './table-service';\nimport type { Table } from './table';\n\n@Component({\n selector: 'p-cell-editor, p-celleditor',\n standalone: true,\n imports: [NgTemplateOutlet],\n template: `\n @if (editing) {\n <ng-container *ngTemplateOutlet=\"_inputTemplate()\"></ng-container>\n }\n @if (!editing) {\n <ng-container *ngTemplateOutlet=\"_outputTemplate()\"></ng-container>\n }\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class CellEditor extends BaseComponent {\n _inputTemplate = contentChild<TemplateRef<any>>('input', { descendants: false });\n\n _outputTemplate = contentChild<TemplateRef<any>>('output', { descendants: false });\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n public editableColumn = inject(EditableColumn, { optional: true });\n\n public editableRow = inject(EditableRow, { optional: true });\n\n get editing() {\n return !!(\n (this.dataTable.editingCell && this.editableColumn && this.dataTable.editingCell === this.editableColumn.el.nativeElement) ||\n (this.editableRow && this.dataTable.editMode() === 'row' && this.dataTable.isRowEditing(this.editableRow.data()))\n );\n }\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, inject, input, numberAttribute, signal, viewChild, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { DomHandler } from 'primeng/dom';\nimport { RadioButton, RadioButtonClickEvent, RadioButtonModule } from 'primeng/radiobutton';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TABLE_INSTANCE } from './table-service';\nimport type { Table } from './table';\n\n@Component({\n selector: 'p-table-radio-button, p-tableradiobutton',\n standalone: true,\n imports: [RadioButtonModule, FormsModule],\n template: `<p-radiobutton\n #rb\n [ngModel]=\"checked()\"\n (ngModelChange)=\"checked.set($event)\"\n [disabled]=\"disabled()\"\n [inputId]=\"inputId()\"\n [name]=\"name()!\"\n [ariaLabel]=\"resolvedAriaLabel()\"\n [binary]=\"true\"\n [value]=\"value()\"\n (onClick)=\"onClick($event)\"\n [unstyled]=\"unstyled()\"\n /> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class TableRadioButton extends BaseComponent {\n value = input<any>();\n\n disabled = input(false, { transform: booleanAttribute });\n\n index = input(undefined, { transform: numberAttribute });\n\n inputId = input<string>();\n\n name = input<string>();\n\n ariaLabel = input<string | undefined>();\n\n inputViewChild = viewChild<RadioButton>('rb');\n\n checked = signal(false);\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n private get aria() {\n return this.dataTable.config.translation.aria;\n }\n\n resolvedAriaLabel = computed(() => {\n const checked = this.checked();\n return this.ariaLabel() || (this.aria ? (checked ? this.aria.selectRow : this.aria.unselectRow) : undefined);\n });\n\n constructor() {\n super();\n this.dataTable.tableService.selectionSource$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.checked.set(this.dataTable.isSelected(this.value()));\n });\n }\n\n onInit() {\n this.checked.set(this.dataTable.isSelected(this.value()));\n }\n\n onClick(event: RadioButtonClickEvent) {\n if (!this.disabled()) {\n this.dataTable.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","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, effect, inject, input, numberAttribute, signal, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { CheckboxChangeEvent, CheckboxModule } from 'primeng/checkbox';\nimport { DomHandler } from 'primeng/dom';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TABLE_INSTANCE, TableService } from './table-service';\nimport type { Table } from './table';\n\n@Component({\n selector: 'p-table-checkbox, p-tablecheckbox',\n standalone: true,\n imports: [NgTemplateOutlet, CheckboxModule, FormsModule],\n template: `\n <p-checkbox\n [ngModel]=\"checked()\"\n (ngModelChange)=\"checked.set($event)\"\n [binary]=\"true\"\n (onChange)=\"onClick($event)\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n [inputId]=\"inputId()\"\n [name]=\"name()!\"\n [ariaLabel]=\"resolvedAriaLabel()\"\n [unstyled]=\"unstyled()\"\n >\n @if (dataTable.checkboxIconTemplate(); as template) {\n <ng-template #icon>\n <ng-template *ngTemplateOutlet=\"template; context: { $implicit: checked() }\" />\n </ng-template>\n }\n </p-checkbox>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class TableCheckbox extends BaseComponent {\n value = input<any>();\n\n disabled = input(false, { transform: booleanAttribute });\n\n required = input(false, { transform: booleanAttribute });\n\n index = input(undefined, { transform: numberAttribute });\n\n inputId = input<string>();\n\n name = input<string>();\n\n ariaLabel = input<string | undefined>();\n\n checked = signal(false);\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n private get aria() {\n return this.dataTable.config.translation.aria;\n }\n\n resolvedAriaLabel = computed(() => {\n const checked = this.checked();\n return this.ariaLabel() || (this.aria ? (checked ? this.aria.selectRow : this.aria.unselectRow) : undefined);\n });\n\n public tableService = inject(TableService);\n\n constructor() {\n super();\n this.dataTable.tableService.selectionSource$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.checked.set(this.dataTable.isSelected(this.value()));\n });\n\n effect((onCleanup) => {\n const value = this.value();\n this.dataTable.setRowCheckboxDisabled(value, !!this.disabled());\n onCleanup(() => this.dataTable.setRowCheckboxDisabled(value, false));\n });\n }\n\n onInit() {\n this.checked.set(this.dataTable.isSelected(this.value()));\n }\n\n onClick({ originalEvent }: CheckboxChangeEvent) {\n if (!this.disabled()) {\n this.dataTable.toggleRowWithCheckbox(\n {\n originalEvent: originalEvent!,\n rowIndex: this.index() || 0\n },\n this.value()\n );\n }\n DomHandler.clearSelection();\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, inject, input, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { CheckboxChangeEvent, CheckboxModule } from 'primeng/checkbox';\nimport { DomHandler } from 'primeng/dom';\nimport { ObjectUtils } from 'primeng/utils';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TABLE_INSTANCE, TableService } from './table-service';\nimport type { Table } from './table';\n\n@Component({\n selector: 'p-table-header-checkbox, p-tableheadercheckbox',\n standalone: true,\n imports: [NgTemplateOutlet, CheckboxModule, FormsModule],\n template: `\n <p-checkbox [pt]=\"ptm('pcCheckbox')\" [(ngModel)]=\"checked\" (onChange)=\"onClick($event)\" [binary]=\"true\" [disabled]=\"isDisabled()\" [inputId]=\"inputId()\" [name]=\"name()!\" [ariaLabel]=\"resolvedAriaLabel\" [unstyled]=\"unstyled()\">\n @if (dataTable.headerCheckboxIconTemplate(); as template) {\n <ng-template #icon>\n <ng-template *ngTemplateOutlet=\"template; context: { $implicit: checked }\" />\n </ng-template>\n }\n </p-checkbox>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [Bind]\n})\nexport class TableHeaderCheckbox extends BaseComponent {\n hostName = 'Table';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptm('headerCheckbox'));\n }\n\n disabled = input(undefined, { transform: booleanAttribute });\n\n inputId = input<string>();\n\n name = input<string>();\n\n ariaLabel = input<string | undefined>();\n\n checked: boolean | undefined;\n\n resolvedAriaLabel: string | undefined;\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n public tableService = inject(TableService);\n\n private get aria() {\n return this.dataTable.config.translation.aria;\n }\n\n constructor() {\n super();\n this.dataTable.tableService.valueSource$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.checked = this.updateCheckedState();\n this.resolvedAriaLabel = this.ariaLabel() || (this.aria ? (this.checked ? this.aria.selectAll : this.aria.unselectAll) : undefined);\n });\n\n this.dataTable.tableService.selectionSource$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n }\n\n onInit() {\n this.checked = this.updateCheckedState();\n }\n\n onClick(event: CheckboxChangeEvent) {\n if (!this.disabled()) {\n if (this.dataTable.value && this.dataTable.value.length > 0) {\n this.dataTable.toggleRowsWithCheckbox(event, this.checked || false);\n }\n }\n\n DomHandler.clearSelection();\n }\n\n isDisabled() {\n return this.disabled() || !this.dataTable.value || !this.dataTable.value.length;\n }\n\n updateCheckedState() {\n this.cd.markForCheck();\n\n if (this.dataTable._selectAll !== null) {\n return this.dataTable._selectAll;\n } else {\n const data = this.dataTable.selectionPageOnly() ? this.dataTable.dataToRender(this.dataTable.processedData) : this.dataTable.processedData;\n const val = this.dataTable.frozenValue() ? [...this.dataTable.frozenValue()!, ...data] : data;\n const selectableVal = val.filter((data: any, index: number) => (!this.dataTable.rowSelectable() || this.dataTable.rowSelectable()!({ data, index })) && !this.dataTable.isRowCheckboxDisabled(data));\n\n const isRowSelected = this.dataTable.compareSelectionBy() === 'equals' ? (v: any) => this.dataTable.selection().some((s: any) => this.dataTable.equals(v, s)) : (v: any) => this.dataTable.isSelected(v);\n\n return ObjectUtils.isNotEmpty(selectableVal) && ObjectUtils.isNotEmpty(this.dataTable.selection()) && selectableVal.every(isRowSelected);\n }\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, Component, computed, inject, input, numberAttribute, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { FilterMetadata } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { DatePickerModule } from 'primeng/datepicker';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { Nullable } from 'primeng/ts-helpers';\nimport type { InputNumberCurrencyDisplay, InputNumberLocaleMatcher } from 'primeng/types/inputnumber';\nimport { ColumnFilterPassThrough } from 'primeng/types/table';\nimport type { ColumnFilter } from './column-filter';\nimport { TableStyle } from './style/tablestyle';\nimport type { Table } from './table';\nimport { COLUMN_FILTER_INSTANCE, TABLE_INSTANCE } from './table-service';\n\n@Component({\n selector: 'p-column-filter-form-element, p-columnfilterformelement',\n standalone: true,\n imports: [NgTemplateOutlet, FormsModule, InputTextModule, InputNumberModule, CheckboxModule, DatePickerModule, BindModule],\n template: `\n @if (filterTemplate()) {\n <ng-container *ngTemplateOutlet=\"filterTemplate(); context: filterTemplateContext()\" />\n } @else {\n @switch (type()) {\n @case ('text') {\n <input\n type=\"text\"\n [ariaLabel]=\"ariaLabel()\"\n pInputText\n [pt]=\"ptm('pcFilterInputText')\"\n [value]=\"filterConstraint()?.value\"\n (input)=\"onModelChange($event.target.value)\"\n (keydown.enter)=\"onTextInputEnterKeyDown($event)\"\n [attr.placeholder]=\"placeholder()\"\n [unstyled]=\"unstyled()\"\n />\n }\n @case ('numeric') {\n <p-input-number\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 [pt]=\"ptm('pcFilterInputNumber')\"\n [unstyled]=\"unstyled()\"\n />\n }\n @case ('boolean') {\n <p-checkbox [pt]=\"ptm('pcFilterCheckbox')\" [indeterminate]=\"filterConstraint()?.value === null\" [binary]=\"true\" [ngModel]=\"filterConstraint()?.value\" (ngModelChange)=\"onModelChange($event)\" [unstyled]=\"unstyled()\" />\n }\n @case ('date') {\n <p-datepicker [pt]=\"ptm('pcFilterDatePicker')\" [ariaLabel]=\"ariaLabel()\" [placeholder]=\"placeholder()\" [ngModel]=\"filterConstraint()?.value\" (ngModelChange)=\"onModelChange($event)\" appendTo=\"body\" [unstyled]=\"unstyled()\" />\n }\n }\n }\n `,\n providers: [TableStyle],\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [Bind]\n})\nexport class ColumnFilterFormElement extends BaseComponent<ColumnFilterPassThrough> {\n hostName = 'Table';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(TableStyle);\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptm('columnFilterFormElement'));\n }\n\n field = input<string>();\n\n type = input<string>();\n\n filterConstraint = input<FilterMetadata>();\n\n filterTemplate = input<Nullable<TemplateRef<any>>>();\n\n placeholder = input<string>();\n\n minFractionDigits = input(undefined, { transform: (v: unknown) => numberAttribute(v, undefined) });\n\n maxFractionDigits = input(undefined, { transform: (v: unknown) => numberAttribute(v, undefined) });\n\n prefix = input<string>();\n\n suffix = input<string>();\n\n locale = input<string>();\n\n localeMatcher = input<InputNumberLocaleMatcher>();\n\n currency = input<string>();\n\n currencyDisplay = input<InputNumberCurrencyDisplay>();\n\n useGrouping = input(true, { transform: booleanAttribute });\n\n ariaLabel = input<string>();\n\n filterOn = input<string>();\n\n showButtons = computed(() => this.colFilter.showButtons());\n\n private onFilterCallback = ((value: any) => {\n const constraint = this.filterConstraint();\n\n if (constraint) {\n (<any>constraint).value = value;\n }\n\n this.colFilter.setHasFilter(true);\n this.dataTable._filter();\n }).bind(this);\n\n filterTemplateContext() {\n return {\n $implicit: this.filterConstraint()?.value,\n filterCallback: this.onFilterCallback,\n type: this.type(),\n field: this.field(),\n filterConstraint: this.filterConstraint(),\n placeholder: this.placeholder(),\n minFractionDigits: this.minFractionDigits(),\n maxFractionDigits: this.maxFractionDigits(),\n prefix: this.prefix(),\n suffix: this.suffix(),\n locale: this.locale(),\n localeMatcher: this.localeMatcher(),\n currency: this.currency(),\n currencyDisplay: this.currencyDisplay(),\n useGrouping: this.useGrouping(),\n showButtons: this.showButtons()\n };\n }\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n private colFilter = inject<ColumnFilter>(COLUMN_FILTER_INSTANCE);\n\n constructor() {\n super();\n this.dataTable.tableService.valueSource$.pipe(takeUntilDestroyed()).subscribe(() => this.cd.markForCheck());\n }\n\n onModelChange(value: any) {\n const constraint = this.filterConstraint();\n\n if (constraint) {\n (<any>constraint).value = value;\n }\n\n const applyButtonVisible = this.showButtons() && this.colFilter.showApplyButton();\n\n if (this.type() === 'boolean' || (this.type() === 'date' && !applyButtonVisible) || ((this.type() === 'text' || this.type() === 'numeric') && this.filterOn() === 'input') || this.dataTable.isFilterBlank(value)) {\n this.colFilter.setHasFilter(true);\n this.dataTable._filter();\n }\n }\n\n onTextInputEnterKeyDown(event: Event) {\n this.colFilter.setHasFilter(true);\n this.dataTable._filter();\n event.preventDefault();\n }\n\n onNumericInputKeyDown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n this.dataTable._filter();\n event.preventDefault();\n }\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, Component, computed, contentChild, ElementRef, inject, input, model, numberAttribute, output, signal, TemplateRef, viewChild, ViewEncapsulation } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { Filter } from '@primeicons/angular/filter';\nimport { FilterFill } from '@primeicons/angular/filter-fill';\nimport { Plus } from '@primeicons/angular/plus';\nimport { Trash } from '@primeicons/angular/trash';\nimport { MotionEvent, MotionOptions } from '@primeuix/motion';\nimport { absolutePosition, addStyle, appendChild, find, findSingle } from '@primeuix/utils';\nimport { FilterMatchMode, FilterMetadata, FilterOperator, OverlayService, SelectItem, TranslationKeys } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { ButtonModule } from 'primeng/button';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { DatePickerModule } from 'primeng/datepicker';\nimport { ConnectedOverlayScrollHandler, DomHandler } from 'primeng/dom';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport type { InputNumberCurrencyDisplay, InputNumberLocaleMatcher } from 'primeng/types/inputnumber';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { MotionModule } from 'primeng/motion';\nimport { SelectModule } from 'primeng/select';\nimport { TableFilterButtonPropsOptions, TableFilterButtonResolvedPropsOptions } from 'primeng/types/table';\nimport { UniqueComponentId, ZIndexUtils } from 'primeng/utils';\nimport { Subscription } from 'rxjs';\nimport { ColumnFilterFormElement } from './column-filter-form-element';\nimport { TableStyle } from './style/tablestyle';\nimport type { Table } from './table';\nimport { COLUMN_FILTER_INSTANCE, TABLE_INSTANCE } from './table-service';\n\n/**\n * Column Filter Component.\n * @group Components\n */\n@Component({\n selector: 'p-column-filter, p-columnfilter',\n standalone: true,\n imports: [NgTemplateOutlet, FormsModule, ButtonModule, SelectModule, InputTextModule, InputNumberModule, CheckboxModule, DatePickerModule, BindModule, MotionModule, Filter, FilterFill, Trash, Plus, ColumnFilterFormElement],\n template: `\n <div [class]=\"cx('filter')\">\n @if (display() === 'row') {\n <p-column-filter-form-element\n [class]=\"cx('filterElementContainer')\"\n [type]=\"type()\"\n [field]=\"field()\"\n [ariaLabel]=\"ariaLabel()\"\n [filterConstraint]=\"rowFilterConstraint\"\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 [filterOn]=\"filterOn()\"\n [pt]=\"pt()\"\n [unstyled]=\"unstyled()\"\n />\n }\n @if (showMenuButton) {\n <button\n #menuButton\n type=\"button\"\n iconOnly\n [pButton]=\"computedFilterButtonProps().filter\"\n [class]=\"cx('pcColumnFilterButton')\"\n [attr.aria-haspopup]=\"true\"\n [attr.aria-label]=\"filterMenuButtonAriaLabel\"\n [attr.aria-controls]=\"overlayVisible ? overlayId : null\"\n [attr.aria-expanded]=\"overlayVisible ?? false\"\n [pButtonPT]=\"ptm('pcColumnFilterButton')\"\n [pButtonUnstyled]=\"unstyled()\"\n (click)=\"toggleMenu($event)\"\n (keydown)=\"onToggleButtonKeyDown($event)\"\n >\n @if (filterIconTemplate()) {\n <span [pBind]=\"ptm('pcColumnFilterButton')['icon']\" [attr.data-pc-section]=\"'columnfilterbuttonicon'\">\n <ng-template *ngTemplateOutlet=\"filterIconTemplate(); context: { hasFilter: hasFilter }\" />\n </span>\n } @else if (hasFilter) {\n <svg data-p-icon=\"filter-fill\" [pBind]=\"ptm('pcColumnFilterButton')['icon']\" />\n } @else {\n <svg data-p-icon=\"filter\" [pBind]=\"ptm('pcColumnFilterButton')['icon']\" />\n }\n </button>\n }\n @if (renderOverlay()) {\n <div\n [pMotion]=\"showMenu() && overlayVisible\"\n [pMotionAppear]=\"true\"\n pMotionName=\"p-anchored-overlay\"\n (pMotionOnBeforeEnter)=\"onOverlayBeforeEnter($event)\"\n (pMotionOnAfterLeave)=\"onOverlayAnimationAfterLeave($event)\"\n [pMotionOptions]=\"computedMotionOptions()\"\n [class]=\"cx('filterOverlay')\"\n [pBind]=\"ptm('filterOverlay')\"\n [id]=\"overlayId\"\n [attr.aria-modal]=\"true\"\n role=\"dialog\"\n (click)=\"onContentClick()\"\n (keydown.escape)=\"onEscape()\"\n >\n <ng-container *ngTemplateOutlet=\"headerTemplate(); context: { $implicit: field() }\" />\n @if (display() === 'row') {\n <ul [class]=\"cx('filterConstraintList')\" [pBind]=\"ptm('filterConstraintList')\">\n @for (matchMode of matchModes; track matchMode.value; let i = $index) {\n <li\n (click)=\"onRowMatchModeChange(matchMode.value)\"\n (keydown)=\"onRowMatchModeKeyDown($event)\"\n (keydown.enter)=\"onRowMatchModeChange(matchMode.value)\"\n [class]=\"cx('filterConstraint')\"\n [pBind]=\"ptm('filterConstraint', ptmFilterConstraintOptions(matchMode))\"\n [class.p-datatable-filter-constraint-selected]=\"isRowMatchModeSelected(matchMode.value)\"\n [attr.tabindex]=\"i === 0 ? '0' : null\"\n >\n {{ matchMode.label }}\n </li>\n }\n <li [class]=\"cx('filterConstraintSeparator')\" [pBind]=\"ptm('filterConstraintSeparator')\"></li>\n <li [class]=\"cx('filterConstraint')\" [pBind]=\"ptm('emtpyFilterLabel')\" (click)=\"onRowClearItemClick()\" (keydown)=\"onRowMatchModeKeyDown($event)\" (keydown.enter)=\"onRowClearItemClick()\">\n {{ noFilterLabel }}\n </li>\n </ul>\n } @else {\n @if (isShowOperator) {\n <div [class]=\"cx('filterOperator')\" [pBind]=\"ptm('filterOperator')\">\n <p-select [options]=\"operatorOptions\" [pt]=\"ptm('pcFilterOperatorDropdown')\" [ngModel]=\"operator()\" (ngModelChange)=\"onOperatorChange($event)\" [class]=\"cx('pcFilterOperatorDropdown')\" [unstyled]=\"unstyled()\" />\n </div>\n }\n <div [class]=\"cx('filterRuleList')\" [pBind]=\"ptm('filterRuleList')\">\n @for (fieldConstraint of fieldConstraints; track $index; let i = $index) {\n <div [class]=\"cx('filterRule')\" [pBind]=\"ptm('filterRule')\">\n @if (showMatchModes() && matchModes) {\n <p-select\n [options]=\"matchModes\"\n [ngModel]=\"fieldConstraint.matchMode\"\n (ngModelChange)=\"onMenuMatchModeChange($event, fieldConstraint)\"\n [class]=\"cx('pcFilterConstraintDropdown')\"\n [pt]=\"ptm('pcFilterConstraintDropdown')\"\n [unstyled]=\"unstyled()\"\n />\n }\n <p-column-filter-form-element\n [type]=\"type()\"\n [field]=\"field()\"\n [filterConstraint]=\"fieldConstraint\"\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 [filterOn]=\"filterOn()\"\n [pt]=\"pt()\"\n [unstyled]=\"unstyled()\"\n />\n <div>\n @if (showRemoveIcon) {\n <button\n type=\"button\"\n text\n severity=\"danger\"\n size=\"small\"\n [pButton]=\"computedFilterButtonProps().popover.removeRule\"\n [class]=\"cx('pcFilterRemoveRuleButton')\"\n [attr.aria-label]=\"removeRuleButtonLabel\"\n [pButtonPT]=\"ptm('pcFilterRemoveRuleButton')\"\n [pButtonUnstyled]=\"unstyled()\"\n (click)=\"removeConstraint(fieldConstraint)\"\n >\n @if (!removeRuleIconTemplate()) {\n <svg data-p-icon=\"trash\" [pBind]=\"ptm('pcFilterRemoveRuleButton')['icon']\" />\n }\n <ng-template *ngTemplateOutlet=\"removeRuleIconTemplate()\" />\n {{ removeRuleButtonLabel }}\n </button>\n }\n </div>\n </div>\n }\n </div>\n @if (isShowAddConstraint) {\n <button\n type=\"button\"\n text\n size=\"small\"\n [pButton]=\"computedFilterButtonProps().popover.addRule\"\n [class]=\"cx('pcFilterAddRuleButton')\"\n [attr.aria-label]=\"addRuleButtonLabel\"\n [pButtonPT]=\"ptm('pcAddRuleButtonLabel')\"\n [pButtonUnstyled]=\"unstyled()\"\n (click)=\"addConstraint()\"\n >\n @if (!addRuleIconTemplate()) {\n <svg data-p-icon=\"plus\" [pBind]=\"ptm('pcAddRuleButtonLabel')['icon']\" />\n }\n <ng-template *ngTemplateOutlet=\"addRuleIconTemplate()\" />\n {{ addRuleButtonLabel }}\n </button>\n }\n <div [class]=\"cx('filterButtonbar')\" [pBind]=\"ptm('filterButtonBar')\">\n @if (showClearButton()) {\n <button\n #clearBtn\n type=\"button\"\n [pButton]=\"computedFilterButtonProps().popover.clear\"\n [attr.aria-label]=\"clearButtonLabel\"\n [pButtonPT]=\"ptm('pcFilterClearButton')\"\n [pButtonUnstyled]=\"unstyled()\"\n (click)=\"clearFilter()\"\n >\n {{ clearButtonLabel }}\n </button>\n }\n @if (showApplyButton()) {\n <button\n type=\"button\"\n size=\"small\"\n [pButton]=\"computedFilterButtonProps().popover.apply\"\n [attr.aria-label]=\"applyButtonLabel\"\n [pButtonPT]=\"ptm('pcFilterApplyButton')\"\n [pButtonUnstyled]=\"unstyled()\"\n (click)=\"applyFilter()\"\n >\n {{ applyButtonLabel }}\n </button>\n }\n </div>\n }\n <ng-container *ngTemplateOutlet=\"footerTemplate(); context: { $implicit: field() }\" />\n </div>\n }\n </div>\n `,\n providers: [TableStyle, { provide: COLUMN_FILTER_INSTANCE, useExisting: ColumnFilter }],\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [Bind]\n})\nexport class ColumnFilter extends BaseComponent {\n hostName = 'Table';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(TableStyle);\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptm('columnFilter'));\n }\n\n ptmFilterConstraintOptions(matchMode: any) {\n return {\n context: {\n highlighted: matchMode && this.isRowMatchModeSelected(matchMode.value)\n }\n };\n }\n /**\n * Property represented by the column.\n * @group Props\n */\n field = input<string>();\n /**\n * Type of the input.\n * @group Props\n */\n type = input('text');\n /**\n * Filter display.\n * @group Props\n */\n display = input('row');\n /**\n * Decides whether to display filter menu popup.\n * @group Props\n */\n showMenu = input(true, { transform: booleanAttribute });\n /**\n * Filter match mode.\n * @group Props\n */\n matchMode = input<string>();\n /**\n * Filter operator.\n * @defaultValue 'AND'\n * @group Props\n */\n operator = model(FilterOperator.AND);\n /**\n * Decides whether to display filter operator.\n * @group Props\n */\n showOperator = input(true, { transform: booleanAttribute });\n /**\n * Decides whether to display clear filter button when display is menu.\n * @defaultValue true\n * @group Props\n */\n showClearButton = input(true, { transform: booleanAttribute });\n /**\n * Decides whether to display apply filter button when display is menu.\n * @group Props\n */\n showApplyButton = input(true, { transform: booleanAttribute });\n /**\n * Decides whether to display filter match modes when display is menu.\n * @group Props\n */\n showMatchModes = input(true, { transform: booleanAttribute });\n /**\n * Decides whether to display add filter button when display is menu.\n * @group Props\n */\n showAddButton = input(true, { transform: booleanAttribute });\n /**\n * Decides whether to close popup on clear button click.\n * @group Props\n */\n hideOnClear = input(true, { transform: booleanAttribute });\n /**\n * Filter placeholder.\n * @group Props\n */\n placeholder = input<string>();\n /**\n * Filter match mode options.\n * @group Props\n */\n matchModeOptions = input<SelectItem[]>();\n /**\n * Defines maximum amount of constraints.\n * @group Props\n */\n maxConstraints = input(2, { transform: numberAttribute });\n /**\n * Defines minimum fraction of digits.\n * @group Props\n */\n minFractionDigits = input(undefined, { transform: (v: unknown) => numberAttribute(v, undefined) });\n /**\n * Defines maximum fraction of digits.\n * @group Props\n */\n maxFractionDigits = input(undefined, { transform: (v: unknown) => numberAttribute(v, undefined) });\n /**\n * Defines prefix of the filter.\n * @group Props\n */\n prefix = input<string>();\n /**\n * Defines suffix of the filter.\n * @group Props\n */\n suffix = input<string>();\n /**\n * Defines filter locale.\n * @group Props\n */\n locale = input<string>();\n /**\n * Defines filter locale matcher.\n * @group Props\n */\n localeMatcher = input<InputNumberLocaleMatcher>();\n /**\n * Enables currency input.\n * @group Props\n */\n currency = input<string>();\n /**\n * Defines the display of the currency input.\n * @group Props\n */\n currencyDisplay = input<InputNumberCurrencyDisplay>();\n /**\n * Default trigger to run filtering on built-in text and numeric filters, valid values are 'enter' and 'input'.\n * @defaultValue enter\n * @group Props\n */\n filterOn = input<string | undefined>('enter');\n /**\n * Defines if filter grouping will be enabled.\n * @group Props\n */\n useGrouping = input(true, { transform: booleanAttribute });\n /**\n * Defines the visibility of buttons.\n * @group Props\n */\n showButtons = input(true, { transform: booleanAttribute });\n /**\n * Defines the aria-label of the form element.\n * @group Props\n */\n ariaLabel = input<string>();\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 @group Props\n */\n filterButtonProps = input<TableFilterButtonPropsOptions>({});\n /**\n * Filter button props merged over the defaults per button, so partial objects\n * only override the given fields.\n */\n computedFilterButtonProps = computed<TableFilterButtonResolvedPropsOptions>(() => {\n const props = this.filterButtonProps() ?? {};\n\n return {\n filter: { severity: 'secondary', variant: 'text', rounded: true, ...props.filter },\n inline: {\n clear: { severity: 'secondary', variant: 'text', rounded: true, ...props.inline?.clear }\n },\n popover: {\n addRule: { severity: 'info', variant: 'text', size: 'small', ...props.popover?.addRule },\n removeRule: { severity: 'danger', variant: 'text', size: 'small', ...props.popover?.removeRule },\n apply: { size: 'small', ...props.popover?.apply },\n clear: { variant: props.popover?.clear?.outlined === false ? undefined : 'outlined', size: 'small', ...props.popover?.clear }\n }\n };\n });\n motionOptions = input<MotionOptions | undefined>(undefined);\n\n computedMotionOptions = computed<MotionOptions>(() => {\n return {\n ...this.ptm('motion'),\n ...this.motionOptions()\n };\n });\n /**\n * Callback to invoke on overlay is shown.\n * @param {AnimationEvent} originalEvent - animation event.\n * @group Emits\n */\n onShow = output<{ originalEvent: AnimationEvent }>();\n /**\n * Callback to invoke on overlay is hidden.\n * @param {AnimationEvent} originalEvent - animation event.\n * @group Emits\n */\n onHide = output<{ originalEvent: AnimationEvent }>();\n\n icon = viewChild('menuButton', { read: ElementRef });\n\n clearButtonViewChild = viewChild<ElementRef>('clearBtn');\n\n overlaySubscription: Subscription | undefined;\n\n renderOverlay = signal<boolean>(false);\n\n /**\n * Custom header template.\n * @group Templates\n */\n headerTemplate = contentChild<TemplateRef<any>>('header', { descendants: false });\n\n /**\n * Custom filter template.\n * @group Templates\n */\n filterTemplate = contentChild<TemplateRef<any>>('filter', { descendants: false });\n\n /**\n * Custom footer template.\n * @group Templates\n */\n footerTemplate = contentChild<TemplateRef<any>>('footer', { descendants: false });\n /**\n * Custom filter icon template.\n * @group Templates\n */\n filterIconTemplate = contentChild<TemplateRef<any>>('filtericon', { descendants: false });\n\n /**\n * Custom remove rule button icon template.\n * @group Templates\n */\n removeRuleIconTemplate = contentChild<TemplateRef<any>>('removeruleicon', { descendants: false });\n\n /**\n * Custom add rule button icon template.\n * @group Templates\n */\n addRuleIconTemplate = contentChild<TemplateRef<any>>('addruleicon', { descendants: false });\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: any;\n\n documentResizeListener: any;\n\n matchModes: SelectItem[] | undefined;\n\n selfClick: boolean | undefined;\n\n overlayEventListener: any;\n\n overlayId: any;\n\n filterApplied: boolean = false;\n\n get fieldConstraints(): FilterMetadata[] | undefined | null {\n return this.dataTable.filters ? <FilterMetadata[]>this.dataTable.filters[<string>this.field()] : null;\n }\n\n get rowFilterConstraint(): FilterMetadata | undefined {\n return <FilterMetadata | undefined>this.dataTable.filters[<string>this.field()];\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.translate(TranslationKeys.SHOW_FILTER_MENU);\n }\n\n get applyButtonLabel(): string {\n return this.translate(TranslationKeys.APPLY);\n }\n\n get clearButtonLabel(): string {\n return this.translate(TranslationKeys.CLEAR);\n }\n\n get addRuleButtonLabel(): string {\n return this.translate(TranslationKeys.ADD_RULE);\n }\n\n get removeRuleButtonLabel(): string {\n return this.translate(TranslationKeys.REMOVE_RULE);\n }\n\n get noFilterLabel(): string {\n return this.translate(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 dataTable = inject<Table>(TABLE_INSTANCE);\n\n overlayService = inject(OverlayService);\n\n constructor() {\n super();\n this.config.translationObserver.pipe(takeUntilDestroyed()).subscribe(() => {\n this.generateMatchModeOptions();\n this.generateOperatorOptions();\n });\n // Resync the filter icon when the table value changes externally (e.g. Table.clear())\n this.dataTable.tableService.valueSource$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.setHasFilter(true);\n this.cd.markForCheck();\n });\n }\n\n onInit() {\n this.overlayId = UniqueComponentId();\n if (!this.dataTable.filters[<string>this.field()]) {\n this.initFieldFilterConstraint();\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.translate(key),\n value: key\n };\n });\n }\n\n generateOperatorOptions() {\n this.operatorOptions = [\n {\n label: this.translate(TranslationKeys.MATCH_ALL),\n value: FilterOperator.AND\n },\n {\n label: this.translate(TranslationKeys.MATCH_ANY),\n value: FilterOperator.OR\n }\n ];\n }\n\n initFieldFilterConstraint() {\n let defaultMatchMode = this.getDefaultMatchMode();\n this.dataTable.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.dataTable._filter();\n }\n }\n\n onRowMatchModeChange(matchMode: string) {\n const fieldFilter = <FilterMetadata>this.dataTable.filters[<string>this.field()];\n fieldFilter.matchMode = matchMode;\n\n if (!this.dataTable.isFilterBlank(fieldFilter.value)) {\n this.dataTable._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.dataTable.filters[<string>this.field()]).matchMode === matchMode;\n }\n\n addConstraint() {\n (<FilterMetadata[]>this.dataTable.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.dataTable.filters[<string>this.field()] = (<FilterMetadata[]>this.dataTable.filters[<string>this.field()]).filter((meta) => meta !== filterMeta);\n if (!this.showApplyButton()) {\n this.dataTable._filter();\n }\n DomHandler.focus(this.clearButtonViewChild()?.nativeElement);\n }\n\n onOperatorChange(value: any) {\n (<FilterMetadata[]>this.dataTable.filters[<string>this.field()]).forEach((filterMeta) => {\n filterMeta.operator = value;\n this.operator.set(value);\n });\n\n if (!this.showApplyButton()) {\n this.dataTable._filter();\n }\n }\n\n toggleMenu(event: Event) {\n this.overlayVisible = !this.overlayVisible;\n\n if (this.overlayVisible) {\n this.renderOverlay.set(true);\n }\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 find(nextItem, '[data-pc-section=\"filterconstraintseparator\"]') ? 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 find(prevItem, '[data-pc-section=\"filterconstraintseparator\"]') ? this.findPrevItem(prevItem) : prevItem;\n else return item.parentElement?.lastElementChild;\n }\n\n onContentClick() {\n this.selfClick = true;\n }\n\n onOverlayBeforeEnter(event: MotionEvent) {\n this.overlay = event.element as HTMLElement;\n if (this.overlay && this.overlay.parentElement !== this.document.body) {\n const buttonEl = <HTMLButtonElement>findSingle(this.el.nativeElement, '[data-pc-name=\"pccolumnfilterbutton\"]');\n appendChild(this.document.body, this.overlay);\n addStyle(this.overlay!, { position: 'absolute', top: '0' });\n absolutePosition(this.overlay, buttonEl);\n ZIndexUtils.set('overlay', this.overlay, this.config.zIndex.overlay);\n }\n\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\n this.onShow.emit({ originalEvent: event as any });\n this.focusOnFirstElement();\n }\n\n onOverlayAnimationAfterLeave(event: MotionEvent) {\n const overlay = this.overlay;\n this.restoreOverlayAppend();\n this.onOverlayHide();\n this.renderOverlay.set(false);\n if (this.overlaySubscription) {\n this.overlaySubscription.unsubscribe();\n }\n ZIndexUtils.clear(overlay);\n\n this.onHide.emit({ originalEvent: event as any });\n }\n\n restoreOverlayAppend() {\n if (this.overlay) {\n this.el.nativeElement.appendChild(this.overlay!);\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.dataTable.filters ? (<FilterMetadata[]>this.dataTable.filters[<string>this.field()])[0].operator : this.operator();\n }\n\n hasRowFilter() {\n return this.dataTable.filters[<string>this.field()] && !this.dataTable.isFilterBlank((<FilterMetadata>this.dataTable.filters[<string>this.field()]).value);\n }\n\n setHasFilter(newValue: boolean): void {\n let fieldFilter = this.dataTable.filters[<string>this.field()];\n if (fieldFilter && newValue) {\n if (Array.isArray(fieldFilter)) {\n this.filterApplied = !this.dataTable.isFilterBlank((<FilterMetadata[]>fieldFilter)[0].value);\n } else {\n this.filterApplied = !this.dataTable.isFilterBlank(fieldFilter.value);\n }\n } else {\n this.filterApplied = false;\n }\n }\n\n get hasFilter(): boolean {\n if (!Array.isArray(this.fieldConstraints) && (<any>this.fieldConstraints)?.applyFilter) {\n // This can only happen when legacy \"filter(value: any, field: string, matchMode: string)\" is programmatically called or when the table state is restored with filter value (type object)\n delete (<any>this.fieldConstraints).applyFilter;\n this.setHasFilter(true);\n } else if (Array.isArray(this.fieldConstraints) && (<any>this.fieldConstraints[0])?.applyFilter) {\n // This can only happen when the table state is restored with filter value (type array)\n delete (<any>this.fieldConstraints[0]).applyFilter;\n this.setHasFilter(true);\n }\n if (!this.filterApplied) {\n return false;\n }\n // Because Table's clearFilterValues method may have been called (which clears all filters, but doesn't update filterApplied), must call setHasFilter to make sure that filterApplied is up to date.\n this.setHasFilter(true);\n return this.filterApplied;\n }\n\n isOutsideClicked(event: any): boolean {\n return !(\n findSingle((this.overlay as HTMLElement).nextElementSibling!, '[data-pc-section=\"filteroverlay\"]') ||\n findSingle((this.overlay as HTMLElement).nextElementSibling!, '[data-pc-name=\"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 findSingle(event.target, '[data-pc-name=\"pcaddrulebuttonlabel\"]') ||\n findSingle(event.target.parentElement, '[data-pc-name=\"pcaddrulebuttonlabel\"]') ||\n findSingle(event.target, '[data-pc-name=\"pcfilterremoverulebutton\"]') ||\n findSingle(event.target.parentElement, '[data-pc-name=\"pcfilterremoverulebutton\"]')\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('[data-pc-name=\"pccolumnfilterbutton\"]');\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 // Remove this overlay's entry from the ZIndexUtils stack synchronously. When another\n // column's filter is opened while this one is open, the document mousedown listener\n // closes this overlay (hide()) *before* the click opens the next one and assigns its\n // z-index. Deferring the clear to the leave animation (onOverlayAnimationAfterLeave)\n // let the new overlay stack on top of this stale entry, so the z-index kept growing on\n // every cross-open (#19602). The inline z-index is kept for the leave animation and\n // fully cleared in onOverlayAnimationAfterLeave.\n if (this.overlay) {\n ZIndexUtils.revertZIndex(ZIndexUtils.get(this.overlay));\n }\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.setHasFilter(false);\n this.dataTable._filter();\n if (this.hideOnClear()) this.hide();\n }\n\n applyFilter() {\n this.setHasFilter(true);\n this.dataTable._filter();\n this.hide();\n }\n\n onDestroy() {\n if (this.overlay) {\n this.restoreOverlayAppend();\n ZIndexUtils.clear(this.overlay);\n this.onOverlayHide();\n }\n\n if (this.overlaySubscription) {\n this.overlaySubscription.unsubscribe();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SharedModule } from 'primeng/api';\nimport { ScrollerModule } from 'primeng/scroller';\nimport { CancelEditableRow } from './cancel-editable-row';\nimport { CellEditor } from './cell-editor';\nimport { ColumnFilter } from './column-filter';\nimport { ColumnFilterFormElement } from './column-filter-form-element';\nimport { ContextMenuRow } from './context-menu-row';\nimport { EditableColumn } from './editable-column';\nimport { EditableRow } from './editable-row';\nimport { FrozenColumn } from './frozen-column';\nimport { InitEditableRow } from './init-editable-row';\nimport { ReorderableColumn } from './reorderable-column';\nimport { ReorderableRow } from './reorderable-row';\nimport { ReorderableRowHandle } from './reorderable-row-handle';\nimport { ResizableColumn } from './resizable-column';\nimport { RowGroupHeader } from './row-group-header';\nimport { RowToggler } from './row-toggler';\nimport { SaveEditableRow } from './save-editable-row';\nimport { SelectableRow } from './selectable-row';\nimport { SelectableRowDblClick } from './selectable-row-dbl-click';\nimport { SortIcon } from './sort-icon';\nimport { SortableColumn } from './sortable-column';\nimport { Table } from './table';\nimport { TableBody } from './table-body';\nimport { TableCheckbox } from './table-checkbox';\nimport { TableHeaderCheckbox } from './table-header-checkbox';\nimport { TableRadioButton } from './table-radio-button';\n\n@NgModule({\n imports: [\n Table,\n TableBody,\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 ],\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 providers: []\n})\nexport class TableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["datatable_style","i1","i2","i3","i5","i4"],"mappings":"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"}
1
+ {"version":3,"file":"primeng-table.mjs","names":["style","datatable_style","i1","i2","i3","i1","i1","i1","i1","i1","i2","i3","i1","i3","i4","i5","i1"],"sources":["../../src/table/style/tablestyle.ts","../../src/table/table-service.ts","../../src/table/table-body.ts","../../src/table/table.ts","../../src/table/frozen-column.ts","../../src/table/editable-row.ts","../../src/table/reorderable-row-handle.ts","../../src/table/row-group-header.ts","../../src/table/row-toggler.ts","../../src/table/sortable-column.ts","../../src/table/selectable-row.ts","../../src/table/selectable-row-dbl-click.ts","../../src/table/context-menu-row.ts","../../src/table/resizable-column.ts","../../src/table/reorderable-column.ts","../../src/table/editable-column.ts","../../src/table/reorderable-row.ts","../../src/table/init-editable-row.ts","../../src/table/save-editable-row.ts","../../src/table/cancel-editable-row.ts","../../src/table/sort-icon.ts","../../src/table/cell-editor.ts","../../src/table/table-radio-button.ts","../../src/table/table-checkbox.ts","../../src/table/table-header-checkbox.ts","../../src/table/column-filter-form-element.ts","../../src/table/column-filter.ts","../../src/table/table.module.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style as datatable_style } from '@primeuix/styles/datatable';\nimport { BaseStyle } from 'primeng/base';\n\nconst style = /*css*/ `\n${datatable_style}\n\n/* For PrimeNG */\n.p-datatable-scrollable-table > .p-datatable-thead {\n top: 0;\n z-index: 2;\n}\n\n.p-datatable-scrollable-table > .p-datatable-frozen-tbody {\n position: sticky;\n z-index: 2;\n}\n\n.p-datatable-scrollable-table > .p-datatable-frozen-tbody + .p-datatable-frozen-tbody {\n z-index: 1;\n}\n\n.p-datatable-frozen-column {\n z-index: 1;\n}\n\n.p-datatable-mask.p-overlay-mask {\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 3;\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-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,\n.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-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:\n background dt('datatable.transition.duration'),\n color dt('datatable.transition.duration'),\n border-color dt('datatable.transition.duration'),\n outline-color dt('datatable.transition.duration'),\n box-shadow dt('datatable.transition.duration');\n}\n\n.p-datatable-thead > tr > th p-column-filter,\n.p-datatable-thead > tr > th p-columnfilter {\n font-weight: normal;\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-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.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\np-sort-icon, p-sorticon {\n display: inline-flex;\n align-items: center;\n gap: dt('datatable.header.cell.gap');\n}\n\n.p-datatable .p-editable-column.p-cell-editing {\n padding: 0;\n}\n\n.p-datatable .p-editable-column.p-cell-editing p-cell-editor,\n.p-datatable .p-editable-column.p-cell-editing p-celleditor {\n display: block;\n width: 100%;\n}\n`;\n\nconst classes = {\n root: ({ instance }) => [\n 'p-datatable p-component',\n {\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 ],\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',\n {\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 ],\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\n filterConstraint: ({ selected }) => ({\n 'p-datatable-filter-constraint': true,\n 'p-datatable-filter-constraint-selected': selected\n }),\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 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 sortableColumn: ({ instance }) => ({\n 'p-datatable-sortable-column': instance.isEnabled(),\n ' p-datatable-column-sorted': instance.sorted()\n }),\n sortableColumnIcon: 'p-datatable-sort-icon',\n sortableColumnBadge: 'p-sortable-column-badge',\n selectableRow: ({ instance }) => ({\n 'p-datatable-selectable-row': instance.isEnabled(),\n 'p-datatable-row-selected': instance.selected\n }),\n resizableColumn: 'p-datatable-resizable-column',\n reorderableColumn: 'p-datatable-reorderable-column',\n rowEditorCancel: 'p-datatable-row-editor-cancel',\n frozenColumn: ({ instance }) => ({\n 'p-datatable-frozen-column': instance.frozen(),\n 'p-datatable-frozen-column-left': instance.alignFrozen() === 'left'\n }),\n contextMenuRowSelected: ({ instance }) => ({\n 'p-datatable-contextmenu-row-selected': instance.selected\n })\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 rowGroupHeader: ({ instance }) => ({\n top: instance.getFrozenRowGroupHeaderStickyPosition\n })\n};\n\n@Injectable()\nexport class TableStyle extends BaseStyle {\n name = 'datatable';\n\n style = style;\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 * Class name of the sortable column element\n */\n sortableColumn = 'p-datatable-sortable-column',\n /**\n * Class name of the sortable column icon element\n */\n sortableColumnIcon = 'p-sortable-column-icon',\n /**\n * Class name of the sortable column badge element\n */\n sortableColumnBadge = 'p-sortable-column-badge',\n /**\n * Class name of the selectable row element\n */\n selectableRow = 'p-datatable-selectable-row',\n /**\n * Class name of the resizable column element\n */\n resizableColumn = 'p-datatable-resizable-column',\n /**\n * Class name of the row editor cancel element\n */\n // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values\n rowEditorCancel = 'p-datatable-row-editor-cancel',\n /**\n * Class name of the frozen column element\n */\n frozenColumn = 'p-datatable-frozen-column',\n /**\n * Class name of the contextmenu row selected element\n */\n contextMenuRowSelected = 'p-datatable-contextmenu-row-selected'\n}\n","import { Injectable, InjectionToken } from '@angular/core';\nimport { SortMeta } from 'primeng/api';\nimport { Subject } from 'rxjs';\n\nexport const TABLE_INSTANCE = new InjectionToken<any>('TABLE_INSTANCE');\nexport const COLUMN_FILTER_INSTANCE = new InjectionToken<any>('COLUMN_FILTER_INSTANCE');\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 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 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 onColumnsChange(columns: any[]) {\n this.columnsSource.next(columns);\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, effect, inject, input, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { DomHandler } from 'primeng/dom';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { ObjectUtils } from 'primeng/utils';\nimport { TABLE_INSTANCE } from './table-service';\nimport type { Table } from './table';\n\n@Component({\n selector: '[pTableBody]',\n standalone: true,\n imports: [NgTemplateOutlet],\n template: `\n @if (!dataTable.expandedRowTemplate()) {\n @for (rowData of value(); track dataTable.rowTrackBy()($index, rowData); let rowIndex = $index) {\n @if (dataTable.groupHeaderTemplate() && !dataTable.virtualScroll() && dataTable.rowGroupMode() === 'subheader' && shouldRenderRowGroupHeader(value(), rowData, getRowIndex(rowIndex))) {\n <ng-container role=\"row\">\n <ng-container\n *ngTemplateOutlet=\"\n dataTable.groupHeaderTemplate();\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns(),\n editing: dataTable.editMode() === 'row' && dataTable.isRowEditing(rowData),\n frozen: frozen()\n }\n \"\n ></ng-container>\n </ng-container>\n }\n @if (dataTable.rowGroupMode() !== 'rowspan') {\n <ng-container\n *ngTemplateOutlet=\"\n rowData ? template() : dataTable.loadingBodyTemplate();\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns(),\n editing: dataTable.editMode() === 'row' && dataTable.isRowEditing(rowData),\n frozen: frozen()\n }\n \"\n ></ng-container>\n }\n @if (dataTable.rowGroupMode() === 'rowspan') {\n <ng-container\n *ngTemplateOutlet=\"\n rowData ? template() : dataTable.loadingBodyTemplate();\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns(),\n editing: dataTable.editMode() === 'row' && dataTable.isRowEditing(rowData),\n frozen: frozen(),\n rowgroup: shouldRenderRowspan(value(), rowData, rowIndex),\n rowspan: calculateRowGroupSize(value(), rowData, rowIndex)\n }\n \"\n ></ng-container>\n }\n @if (dataTable.groupFooterTemplate() && !dataTable.virtualScroll() && dataTable.rowGroupMode() === 'subheader' && shouldRenderRowGroupFooter(value(), rowData, getRowIndex(rowIndex))) {\n <ng-container role=\"row\">\n <ng-container\n *ngTemplateOutlet=\"\n dataTable.groupFooterTemplate();\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns(),\n editing: dataTable.editMode() === 'row' && dataTable.isRowEditing(rowData),\n frozen: frozen()\n }\n \"\n ></ng-container>\n </ng-container>\n }\n }\n }\n @if (dataTable.expandedRowTemplate() && !(frozen() && dataTable.frozenExpandedRowTemplate())) {\n @for (rowData of value(); track dataTable.rowTrackBy()($index, rowData); let rowIndex = $index) {\n @if (!dataTable.groupHeaderTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"\n template();\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns(),\n expanded: dataTable.isRowExpanded(rowData),\n editing: dataTable.editMode() === 'row' && dataTable.isRowEditing(rowData),\n frozen: frozen()\n }\n \"\n ></ng-container>\n }\n @if (dataTable.groupHeaderTemplate() && dataTable.rowGroupMode() === 'subheader' && shouldRenderRowGroupHeader(value(), rowData, getRowIndex(rowIndex))) {\n <ng-container role=\"row\">\n <ng-container\n *ngTemplateOutlet=\"\n dataTable.groupHeaderTemplate();\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns(),\n expanded: dataTable.isRowExpanded(rowData),\n editing: dataTable.editMode() === 'row' && dataTable.isRowEditing(rowData),\n frozen: frozen()\n }\n \"\n ></ng-container>\n </ng-container>\n }\n @if (dataTable.isRowExpanded(rowData)) {\n <ng-container\n *ngTemplateOutlet=\"\n dataTable.expandedRowTemplate();\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns(),\n frozen: frozen()\n }\n \"\n ></ng-container>\n @if (dataTable.groupFooterTemplate() && dataTable.rowGroupMode() === 'subheader' && shouldRenderRowGroupFooter(value(), rowData, getRowIndex(rowIndex))) {\n <ng-container role=\"row\">\n <ng-container\n *ngTemplateOutlet=\"\n dataTable.groupFooterTemplate();\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns(),\n expanded: dataTable.isRowExpanded(rowData),\n editing: dataTable.editMode() === 'row' && dataTable.isRowEditing(rowData),\n frozen: frozen()\n }\n \"\n ></ng-container>\n </ng-container>\n }\n }\n }\n }\n @if (dataTable.frozenExpandedRowTemplate() && frozen()) {\n @for (rowData of value(); track dataTable.rowTrackBy()($index, rowData); let rowIndex = $index) {\n <ng-container\n *ngTemplateOutlet=\"\n template();\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns(),\n expanded: dataTable.isRowExpanded(rowData),\n editing: dataTable.editMode() === 'row' && dataTable.isRowEditing(rowData),\n frozen: frozen()\n }\n \"\n ></ng-container>\n @if (dataTable.isRowExpanded(rowData)) {\n <ng-container\n *ngTemplateOutlet=\"\n dataTable.frozenExpandedRowTemplate();\n context: {\n $implicit: rowData,\n rowIndex: getRowIndex(rowIndex),\n columns: columns(),\n frozen: frozen()\n }\n \"\n ></ng-container>\n }\n }\n }\n @if (dataTable.loading()) {\n <ng-container *ngTemplateOutlet=\"dataTable.loadingBodyTemplate(); context: bodyContext()\"></ng-container>\n }\n @if (dataTable.isEmpty() && !dataTable.loading()) {\n <ng-container *ngTemplateOutlet=\"dataTable.emptyMessageTemplate(); context: bodyContext()\"></ng-container>\n }\n `,\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[attr.data-p]': 'dataP()'\n }\n})\nexport class TableBody extends BaseComponent {\n hostName = 'Table';\n\n columns = input<any[] | undefined>(undefined, { alias: 'pTableBody' });\n\n template = input<Nullable<TemplateRef<any>>>(undefined, { alias: 'pTableBodyTemplate' });\n\n value = input<any[] | undefined>();\n\n frozen = input(undefined, { transform: booleanAttribute });\n\n frozenRows = input(undefined, { transform: booleanAttribute });\n\n scrollerOptions = input<any>();\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n bodyContext = computed(() => ({\n $implicit: this.columns(),\n frozen: this.frozen()\n }));\n\n constructor() {\n super();\n effect(() => {\n const val = this.value();\n\n if (val !== undefined) {\n if (this.frozenRows()) {\n this.updateFrozenRowStickyPosition();\n }\n\n if (this.dataTable.scrollable() && this.dataTable.rowGroupMode() === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n }\n });\n }\n\n dataP = computed(() =>\n this.cn({\n hoverable: this.dataTable.rowHover() || this.dataTable.selectionMode(),\n frozen: this.frozen()\n })\n );\n\n onAfterViewInit() {\n if (this.frozenRows()) {\n this.updateFrozenRowStickyPosition();\n }\n\n if (this.dataTable.scrollable() && this.dataTable.rowGroupMode() === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n }\n\n shouldRenderRowGroupHeader(value: any, rowData: any, i: number) {\n let currentRowFieldData = ObjectUtils.resolveFieldData(rowData, this.dataTable?.groupRowsBy() || '');\n let prevRowData = value[i - (this.dataTable?.first() || 0) - 1];\n\n if (prevRowData) {\n let previousRowFieldData = ObjectUtils.resolveFieldData(prevRowData, this.dataTable?.groupRowsBy() || '');\n\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.dataTable?.groupRowsBy() || '');\n let nextRowData = value[i - (this.dataTable?.first() || 0) + 1];\n\n if (nextRowData) {\n let nextRowFieldData = ObjectUtils.resolveFieldData(nextRowData, this.dataTable?.groupRowsBy() || '');\n\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.dataTable?.groupRowsBy());\n let prevRowData = value[i - 1];\n\n if (prevRowData) {\n let previousRowFieldData = ObjectUtils.resolveFieldData(prevRowData, this.dataTable?.groupRowsBy() || '');\n\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.dataTable?.groupRowsBy());\n let nextRowFieldData = currentRowFieldData;\n let groupRowSpan = 0;\n\n while (currentRowFieldData === nextRowFieldData) {\n groupRowSpan++;\n let nextRowData = value[++index];\n\n if (nextRowData) {\n nextRowFieldData = ObjectUtils.resolveFieldData(nextRowData, this.dataTable?.groupRowsBy() || '');\n } else {\n break;\n }\n }\n\n return groupRowSpan === 1 ? null : groupRowSpan;\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\n this.dataTable.rowGroupHeaderStyleObject.top = tableHeaderHeight + 'px';\n }\n }\n\n getScrollerOption(option: any, options?: any) {\n if (this.dataTable.virtualScroll()) {\n options = options || this.scrollerOptions();\n\n return options ? options[option] : null;\n }\n\n return null;\n }\n\n getRowIndex(rowIndex: number) {\n const index = this.dataTable.paginator() ? <number>this.dataTable.first() + rowIndex : rowIndex;\n const getItemOptions = this.getScrollerOption('getItemOptions');\n\n return getItemOptions ? getItemOptions(index).index : index;\n }\n}\n","import { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, contentChild, effect, ElementRef, inject, input, model, numberAttribute, output, signal, TemplateRef, untracked, viewChild, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ArrowDown } from '@primeicons/angular/arrow-down';\nimport { ArrowUp } from '@primeicons/angular/arrow-up';\nimport { Spinner } from '@primeicons/angular/spinner';\nimport { isClickable, setAttribute } from '@primeuix/utils';\nimport { BlockableUI, FilterMatchMode, FilterMetadata, FilterOperator, FilterService, LazyLoadMeta, OverlayService, ScrollerOptions, SortMeta, TableState } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { CheckboxChangeEvent } from 'primeng/checkbox';\nimport { DomHandler } from 'primeng/dom';\nimport { PaginatorModule } from 'primeng/paginator';\nimport { Scroller, ScrollerModule } from 'primeng/scroller';\nimport type { PaginatorState } from 'primeng/types/paginator';\nimport type { CSSProperties } from 'primeng/types/shared';\nimport {\n ExportCSVOptions,\n TableColResizeEvent,\n TableColumnReorderEvent,\n TableColumnResizeMode,\n TableContextMenuSelectEvent,\n TableEditCancelEvent,\n TableEditCompleteEvent,\n TableEditInitEvent,\n TableEditMode,\n TableFilterEvent,\n TableHeaderCheckboxToggleEvent,\n TableLazyLoadEvent,\n TablePageEvent,\n TablePaginatorPosition,\n TablePassThrough,\n TableRowCollapseEvent,\n TableRowExpandEvent,\n TableRowExpandMode,\n TableRowGroupMode,\n TableRowReorderEvent,\n TableRowSelectEvent,\n TableRowUnSelectEvent,\n TableSelectAllChangeEvent,\n TableSelectionMode,\n TableSize,\n TableSortMode,\n TableStateStorage\n} from 'primeng/types/table';\nimport { ObjectUtils, UniqueComponentId } from 'primeng/utils';\nimport { Subscription } from 'rxjs';\nimport { TableStyle } from './style/tablestyle';\nimport { TableBody } from './table-body';\nimport { TABLE_INSTANCE, TableService } from './table-service';\n\n/**\n * Table displays data in tabular format.\n * @group Components\n */\n@Component({\n selector: 'p-table',\n standalone: true,\n imports: [NgTemplateOutlet, PaginatorModule, ScrollerModule, FormsModule, BindModule, Spinner, ArrowDown, ArrowUp, TableBody],\n template: `\n @if (showLoadingMask()) {\n <div [class]=\"cx('mask')\" [pBind]=\"ptm('mask')\" animate.enter=\"p-overlay-mask-enter-active\" animate.leave=\"p-overlay-mask-leave-active\">\n @if (loadingIcon()) {\n <i [class]=\"cn(cx('loadingIcon'), loadingIcon())\" [pBind]=\"ptm('loadingIcon')\"></i>\n }\n @if (!loadingIcon()) {\n @if (!loadingIconTemplate()) {\n <svg data-p-icon=\"spinner\" [class]=\"cx('loadingIcon')\" [spin]=\"true\" [pBind]=\"ptm('loadingIcon')\" />\n }\n @if (loadingIconTemplate()) {\n <span [class]=\"cx('loadingIcon')\" [pBind]=\"ptm('loadingIcon')\">\n <ng-template *ngTemplateOutlet=\"loadingIconTemplate()\"></ng-template>\n </span>\n }\n }\n </div>\n }\n @if (captionTemplate()) {\n <div [class]=\"cx('header')\" [pBind]=\"ptm('header')\">\n <ng-container *ngTemplateOutlet=\"captionTemplate()\"></ng-container>\n </div>\n }\n @if (showTopPaginator()) {\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 [templateLeft]=\"paginatorLeftTemplate()\"\n [templateRight]=\"paginatorRightTemplate()\"\n [appendTo]=\"paginatorDropdownAppendTo()\"\n [dropdownScrollHeight]=\"paginatorDropdownScrollHeight()\"\n [currentPageReportTemplate]=\"currentPageReportTemplate()\"\n [showFirstLastIcon]=\"showFirstLastIcon()\"\n [dropdownItemTemplate]=\"paginatorDropdownItemTemplate()\"\n [showCurrentPageReport]=\"showCurrentPageReport()\"\n [showJumpToPageDropdown]=\"showJumpToPageDropdown()\"\n [showJumpToPageInput]=\"showJumpToPageInput()\"\n [showPageLinks]=\"showPageLinks()\"\n [class]=\"cn(cx('pcPaginator'), paginatorStyleClass())\"\n [locale]=\"paginatorLocale()\"\n [pt]=\"ptm('pcPaginator')\"\n [unstyled]=\"unstyled()\"\n >\n @if (paginatorDropdownIconTemplate()) {\n <ng-template #dropdownicon>\n <ng-container *ngTemplateOutlet=\"paginatorDropdownIconTemplate()\"></ng-container>\n </ng-template>\n }\n\n @if (paginatorFirstPageLinkIconTemplate()) {\n <ng-template #firstpagelinkicon>\n <ng-container *ngTemplateOutlet=\"paginatorFirstPageLinkIconTemplate()\"></ng-container>\n </ng-template>\n }\n\n @if (paginatorPreviousPageLinkIconTemplate()) {\n <ng-template #previouspagelinkicon>\n <ng-container *ngTemplateOutlet=\"paginatorPreviousPageLinkIconTemplate()\"></ng-container>\n </ng-template>\n }\n\n @if (paginatorLastPageLinkIconTemplate()) {\n <ng-template #lastpagelinkicon>\n <ng-container *ngTemplateOutlet=\"paginatorLastPageLinkIconTemplate()\"></ng-container>\n </ng-template>\n }\n\n @if (paginatorNextPageLinkIconTemplate()) {\n <ng-template #nextpagelinkicon>\n <ng-container *ngTemplateOutlet=\"paginatorNextPageLinkIconTemplate()\"></ng-container>\n </ng-template>\n }\n </p-paginator>\n }\n\n <div #wrapper [class]=\"cx('tableContainer')\" [style]=\"sx('tableContainer')\" [pBind]=\"ptm('tableContainer')\" [attr.data-p]=\"dataP\">\n @if (virtualScroll()) {\n <p-scroller\n #scroller\n [items]=\"processedData\"\n [columns]=\"columns\"\n [style]=\"scrollerStyle()\"\n [scrollHeight]=\"scrollerScrollHeight()\"\n [itemSize]=\"virtualScrollItemSize()!\"\n [step]=\"rows()!\"\n [delay]=\"scrollerDelay()\"\n [inline]=\"true\"\n [autoSize]=\"true\"\n [lazy]=\"lazy()\"\n (onLazyLoad)=\"onLazyItemLoad($event)\"\n [loaderDisabled]=\"true\"\n [showSpacer]=\"false\"\n [showLoader]=\"!!loadingBodyTemplate()\"\n [options]=\"virtualScrollOptions()\"\n [pt]=\"ptm('virtualScroller')\"\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 }\n @if (!virtualScroll()) {\n <ng-container\n *ngTemplateOutlet=\"\n buildInTable;\n context: {\n $implicit: processedData,\n options: { columns }\n }\n \"\n ></ng-container>\n }\n\n <ng-template #buildInTable let-items let-scrollerOptions=\"options\">\n <table #table role=\"table\" [class]=\"cn(cx('table'), tableStyleClass())\" [pBind]=\"ptm('table')\" [style]=\"tableStyle()\" [attr.id]=\"id + '-table'\">\n <ng-container *ngTemplateOutlet=\"colGroupTemplate(); context: { $implicit: scrollerOptions.columns }\"></ng-container>\n <thead role=\"rowgroup\" #thead [class]=\"cx('thead')\" [style]=\"sx('thead')\" [pBind]=\"ptm('thead')\">\n <ng-container\n *ngTemplateOutlet=\"\n headerGroupedTemplate() || headerTemplate();\n context: {\n $implicit: scrollerOptions.columns\n }\n \"\n ></ng-container>\n </thead>\n @if (showFrozenBody()) {\n <tbody\n role=\"rowgroup\"\n [class]=\"cx('tbody')\"\n [pBind]=\"ptm('tbody')\"\n [value]=\"frozenValue()\"\n [frozenRows]=\"true\"\n [pTableBody]=\"scrollerOptions.columns\"\n [pTableBodyTemplate]=\"frozenBodyTemplate()\"\n [unstyled]=\"unstyled()\"\n [frozen]=\"true\"\n [attr.data-p-virtualscroll]=\"virtualScroll()\"\n ></tbody>\n }\n <tbody\n role=\"rowgroup\"\n [class]=\"cn(cx('tbody'), scrollerOptions.contentStyleClass)\"\n [pBind]=\"ptm('tbody')\"\n [style]=\"scrollerOptions.contentStyle\"\n [value]=\"dataToRender(scrollerOptions.rows)\"\n [pTableBody]=\"scrollerOptions.columns\"\n [pTableBodyTemplate]=\"bodyTemplate()\"\n [scrollerOptions]=\"scrollerOptions\"\n [unstyled]=\"unstyled()\"\n [attr.data-p-virtualscroll]=\"virtualScroll()\"\n ></tbody>\n @if (scrollerOptions.spacerStyle) {\n <tbody role=\"rowgroup\" [style]=\"getVirtualScrollerSpacerStyle(scrollerOptions)\" [class]=\"cx('virtualScrollerSpacer')\" [pBind]=\"ptm('virtualScrollerSpacer')\"></tbody>\n }\n @if (showFooter()) {\n <tfoot role=\"rowgroup\" #tfoot [class]=\"cx('footer')\" [style]=\"sx('tfoot')\" [pBind]=\"ptm('tfoot')\">\n <ng-container\n *ngTemplateOutlet=\"\n footerGroupedTemplate() || footerTemplate();\n context: {\n $implicit: scrollerOptions.columns\n }\n \"\n ></ng-container>\n </tfoot>\n }\n </table>\n </ng-template>\n </div>\n\n @if (showBottomPaginator()) {\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 [templateLeft]=\"paginatorLeftTemplate()\"\n [templateRight]=\"paginatorRightTemplate()\"\n [appendTo]=\"paginatorDropdownAppendTo()\"\n [dropdownScrollHeight]=\"paginatorDropdownScrollHeight()\"\n [currentPageReportTemplate]=\"currentPageReportTemplate()\"\n [showFirstLastIcon]=\"showFirstLastIcon()\"\n [dropdownItemTemplate]=\"paginatorDropdownItemTemplate()\"\n [showCurrentPageReport]=\"showCurrentPageReport()\"\n [showJumpToPageDropdown]=\"showJumpToPageDropdown()\"\n [showJumpToPageInput]=\"showJumpToPageInput()\"\n [showPageLinks]=\"showPageLinks()\"\n [class]=\"cn(cx('pcPaginator'), paginatorStyleClass())\"\n [locale]=\"paginatorLocale()\"\n [pt]=\"ptm('pcPaginator')\"\n [unstyled]=\"unstyled()\"\n >\n @if (paginatorDropdownIconTemplate()) {\n <ng-template #dropdownicon>\n <ng-container *ngTemplateOutlet=\"paginatorDropdownIconTemplate()\"></ng-container>\n </ng-template>\n }\n\n @if (paginatorFirstPageLinkIconTemplate()) {\n <ng-template #firstpagelinkicon>\n <ng-container *ngTemplateOutlet=\"paginatorFirstPageLinkIconTemplate()\"></ng-container>\n </ng-template>\n }\n\n @if (paginatorPreviousPageLinkIconTemplate()) {\n <ng-template #previouspagelinkicon>\n <ng-container *ngTemplateOutlet=\"paginatorPreviousPageLinkIconTemplate()\"></ng-container>\n </ng-template>\n }\n\n @if (paginatorLastPageLinkIconTemplate()) {\n <ng-template #lastpagelinkicon>\n <ng-container *ngTemplateOutlet=\"paginatorLastPageLinkIconTemplate()\"></ng-container>\n </ng-template>\n }\n\n @if (paginatorNextPageLinkIconTemplate()) {\n <ng-template #nextpagelinkicon>\n <ng-container *ngTemplateOutlet=\"paginatorNextPageLinkIconTemplate()\"></ng-container>\n </ng-template>\n }\n </p-paginator>\n }\n\n @if (summaryTemplate()) {\n <div [class]=\"cx('footer')\" [pBind]=\"ptm('footer')\">\n <ng-container *ngTemplateOutlet=\"summaryTemplate()\"></ng-container>\n </div>\n }\n\n @if (resizableColumns()) {\n <div #resizeHelper [class]=\"cx('columnResizeIndicator')\" [pBind]=\"ptm('columnResizeIndicator')\" [style.display]=\"'none'\"></div>\n }\n @if (reorderableColumns()) {\n <span #reorderIndicatorUp [class]=\"cx('rowReorderIndicatorUp')\" [pBind]=\"ptm('rowReorderIndicatorUp')\" [style.display]=\"'none'\">\n @if (!reorderIndicatorUpIconTemplate()) {\n <svg data-p-icon=\"arrow-down\" [pBind]=\"ptm('rowReorderIndicatorUp')['icon']\" />\n }\n <ng-template *ngTemplateOutlet=\"reorderIndicatorUpIconTemplate()\"></ng-template>\n </span>\n <span #reorderIndicatorDown [class]=\"cx('rowReorderIndicatorDown')\" [pBind]=\"ptm('rowReorderIndicatorDown')\" [style.display]=\"'none'\">\n @if (!reorderIndicatorDownIconTemplate()) {\n <svg data-p-icon=\"arrow-up\" [pBind]=\"ptm('rowReorderIndicatorDown')['icon']\" />\n }\n <ng-template *ngTemplateOutlet=\"reorderIndicatorDownIconTemplate()\"></ng-template>\n </span>\n }\n `,\n providers: [TableService, TableStyle, { provide: TABLE_INSTANCE, useExisting: Table }, { provide: PARENT_INSTANCE, useExisting: Table }],\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"cx('root')\",\n '[attr.data-p]': 'dataP'\n },\n hostDirectives: [Bind]\n})\nexport class Table<RowData = any> extends BaseComponent<TablePassThrough> implements BlockableUI {\n componentName = 'Table';\n /**\n * An array of objects to represent dynamic columns that are frozen.\n * @group Props\n */\n frozenColumns = input<any[]>();\n /**\n * An array of objects to display as frozen.\n * @group Props\n */\n frozenValue = input<any[]>();\n /**\n * Inline style of the table.\n * @group Props\n */\n tableStyle = input<CSSProperties>();\n /**\n * Style class of the table.\n * @group Props\n */\n tableStyleClass = input<string>();\n /**\n * When specified as true, enables the pagination.\n * @group Props\n */\n paginator = input(undefined, { transform: booleanAttribute });\n /**\n * Number of page links to display in paginator.\n * @group Props\n */\n pageLinks = input(5, { transform: numberAttribute });\n /**\n * Array of integer/object values to display inside rows per page dropdown of paginator\n * @group Props\n */\n rowsPerPageOptions = input<any[]>();\n /**\n * Whether to show it even there is only one page.\n * @group Props\n */\n alwaysShowPaginator = input(true, { transform: booleanAttribute });\n /**\n * Position of the paginator, options are \"top\", \"bottom\" or \"both\".\n * @group Props\n */\n paginatorPosition = input<TablePaginatorPosition>('bottom');\n /**\n * Custom style class for paginator\n * @group Props\n */\n paginatorStyleClass = input<string>();\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 paginatorDropdownAppendTo = input<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 paginatorDropdownScrollHeight = input('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 currentPageReportTemplate = input('{currentPage} of {totalPages}');\n /**\n * Whether to display current page report.\n * @group Props\n */\n showCurrentPageReport = input(undefined, { transform: booleanAttribute });\n /**\n * Whether to display a dropdown to navigate to any page.\n * @group Props\n */\n showJumpToPageDropdown = input(undefined, { transform: booleanAttribute });\n /**\n * Whether to display a input to navigate to any page.\n * @group Props\n */\n showJumpToPageInput = input(undefined, { transform: booleanAttribute });\n /**\n * When enabled, icons are displayed on paginator to go first and last page.\n * @group Props\n */\n showFirstLastIcon = input(true, { transform: booleanAttribute });\n /**\n * Whether to show page links.\n * @group Props\n */\n showPageLinks = input(true, { transform: booleanAttribute });\n /**\n * Sort order to use when an unsorted column gets sorted by user interaction.\n * @group Props\n */\n defaultSortOrder = input(1, { transform: numberAttribute });\n /**\n * Defines whether sorting works on single column or on multiple columns.\n * @group Props\n */\n sortMode = input<TableSortMode>('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 resetPageOnSort = input(true, { transform: booleanAttribute });\n /**\n * Specifies the selection mode, valid values are \"single\" and \"multiple\".\n * @group Props\n */\n selectionMode = input<TableSelectionMode | 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 selectionPageOnly = input(undefined, { transform: booleanAttribute });\n /**\n * Selected row with a context menu.\n * @group Props\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n contextMenuSelectionInput = input<any>(undefined, { alias: 'contextMenuSelection' });\n\n contextMenuSelection: any;\n /**\n * Callback to invoke on context menu selection change.\n * @param {*} object - row data.\n * @group Emits\n */\n contextMenuSelectionChange = output<any>();\n /**\n * A property to uniquely identify a record in data.\n * @group Props\n */\n dataKey = input<string>();\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 metaKeySelection = input(false, { transform: booleanAttribute });\n /**\n * Defines if the row is selectable.\n * @group Props\n */\n rowSelectable = input<(row: { data: any; index: number }) => boolean>();\n /**\n * Function to optimize the dom operations by delegating to ngForTrackBy, default algorithm checks for object identity.\n * @group Props\n */\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n rowTrackBy = input<Function>((index: number, item: any) => item ?? index);\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n lazy = input(false, { transform: booleanAttribute });\n /**\n * Whether to call lazy loading on initialization.\n * @group Props\n */\n lazyLoadOnInit = input(true, { transform: booleanAttribute });\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 compareSelectionBy = input<'equals' | 'deepEquals'>('deepEquals');\n /**\n * Character to use as the csv separator.\n * @group Props\n */\n csvSeparator = input(',');\n /**\n * Name of the exported file.\n * @group Props\n */\n exportFilename = input('download');\n /**\n * An array of FilterMetadata objects to provide external filters.\n * @group Props\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n filtersInput = input<{ [s: string]: FilterMetadata | FilterMetadata[] }>({}, { alias: 'filters' });\n\n filters: { [s: string]: FilterMetadata | FilterMetadata[] } = {};\n /**\n * An array of fields as string to use in global filtering.\n * @group Props\n */\n globalFilterFields = input<string[]>();\n /**\n * Delay in milliseconds before filtering the data.\n * @group Props\n */\n filterDelay = input(300, { transform: numberAttribute });\n /**\n * Locale to use in filtering. The default locale is the host environment's current locale.\n * @group Props\n */\n filterLocale = input<string>();\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 // eslint-disable-next-line @angular-eslint/no-input-rename\n expandedRowKeysInput = input<{ [s: string]: boolean }>({}, { alias: 'expandedRowKeys' });\n\n 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 // eslint-disable-next-line @angular-eslint/no-input-rename\n editingRowKeysInput = input<{ [s: string]: boolean }>({}, { alias: 'editingRowKeys' });\n\n private _editingRowKeys = signal<{ [s: string]: boolean }>({});\n\n get editingRowKeys(): { [s: string]: boolean } {\n return this._editingRowKeys();\n }\n\n set editingRowKeys(value: { [s: string]: boolean }) {\n this._editingRowKeys.set(value);\n }\n /**\n * Whether multiple rows can be expanded at any time. Valid values are \"multiple\" and \"single\".\n * @group Props\n */\n rowExpandMode = input<TableRowExpandMode>('multiple');\n /**\n * Enables scrollable tables.\n * @group Props\n */\n scrollable = input(undefined, { transform: booleanAttribute });\n /**\n * Type of the row grouping, valid values are \"subheader\" and \"rowspan\".\n * @group Props\n */\n rowGroupMode = input<TableRowGroupMode>();\n /**\n * Height of the scroll viewport in fixed pixels or the \"flex\" keyword for a dynamic size.\n * @group Props\n */\n scrollHeight = input<string>();\n /**\n * Whether the data should be loaded on demand during scroll.\n * @group Props\n */\n virtualScroll = input(undefined, { transform: booleanAttribute });\n /**\n * Height of a row to use in calculations of virtual scrolling.\n * @group Props\n */\n virtualScrollItemSize = input(undefined, { transform: (v: unknown) => numberAttribute(v, 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 virtualScrollOptions = input<ScrollerOptions>();\n /**\n * Threshold in milliseconds to delay lazy loading during scrolling.\n * @group Props\n */\n virtualScrollDelay = input(250, { transform: numberAttribute });\n /**\n * Width of the frozen columns container.\n * @group Props\n */\n frozenWidth = input<string>();\n /**\n * Local ng-template varilable of a ContextMenu.\n * @group Props\n */\n contextMenu = input<any>();\n /**\n * When enabled, columns can be resized using drag and drop.\n * @group Props\n */\n resizableColumns = input(undefined, { transform: booleanAttribute });\n /**\n * Defines whether the overall table width should change on column resize, valid values are \"fit\" and \"expand\".\n * @group Props\n */\n columnResizeMode = input<TableColumnResizeMode>('fit');\n /**\n * When enabled, columns can be reordered using drag and drop.\n * @group Props\n */\n reorderableColumns = input(undefined, { transform: booleanAttribute });\n /**\n * Displays a loader to indicate data load is in progress.\n * @group Props\n */\n loading = input(undefined, { transform: booleanAttribute });\n /**\n * The icon to show while indicating data load is in progress.\n * @group Props\n */\n loadingIcon = input<string>();\n /**\n * Whether to show the loading mask when loading property is true.\n * @group Props\n */\n showLoader = input(true, { transform: booleanAttribute });\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 rowHover = input(undefined, { transform: booleanAttribute });\n /**\n * Whether to use the default sorting or a custom one using sortFunction.\n * @group Props\n */\n customSort = input(undefined, { transform: booleanAttribute });\n /**\n * Whether to use the initial sort badge or not.\n * @group Props\n */\n showInitialSortBadge = input(true, { transform: booleanAttribute });\n /**\n * Export function.\n * @group Props\n */\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n exportFunction = input<Function>();\n /**\n * Custom export header of the column to be exported as CSV.\n * @group Props\n */\n exportHeader = input<string>();\n /**\n * Unique identifier of a stateful table to use in state storage.\n * @group Props\n */\n stateKey = input<string>();\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 stateStorage = input<TableStateStorage>('session');\n /**\n * Defines the editing mode, valid values are \"cell\" and \"row\".\n * @group Props\n */\n editMode = input<TableEditMode>('cell');\n /**\n * Field name to use in row grouping.\n * @group Props\n */\n groupRowsBy = input<any>();\n /**\n * Defines the size of the table.\n * @group Props\n */\n size = input<TableSize>();\n /**\n * Whether to show grid lines between cells.\n * @group Props\n */\n showGridlines = input(undefined, { transform: booleanAttribute });\n /**\n * Whether to display rows with alternating colors.\n * @group Props\n */\n stripedRows = input(undefined, { transform: booleanAttribute });\n /**\n * Order to sort when default row grouping is enabled.\n * @group Props\n */\n groupRowsByOrder = input(1, { transform: numberAttribute });\n /**\n * Locale to be used in paginator formatting.\n * @group Props\n */\n paginatorLocale = input<string>();\n /**\n * An array of objects to display.\n * @group Props\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n valueInput = input<RowData[]>(undefined, { alias: 'value' });\n /**\n * An array of objects to represent dynamic columns.\n * @group Props\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n columnsInput = input<any[]>(undefined, { alias: 'columns' });\n /**\n * Index of the first row to be displayed.\n * @group Props\n */\n first = model<number | null | undefined>(0);\n /**\n * Number of rows to display per page.\n * @group Props\n */\n rows = model<number | undefined>();\n /**\n * Number of total records, defaults to length of value when not defined.\n * @group Props\n */\n totalRecords = model(0);\n\n /**\n * Name of the field to sort data by default.\n * @group Props\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n sortFieldInput = input<string | null>(undefined, { alias: 'sortField' });\n /**\n * Order to sort when default sorting is enabled.\n * @group Props\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n sortOrderInput = input(1, { alias: 'sortOrder' });\n /**\n * An array of SortMeta objects to sort the data by default in multiple sort mode.\n * @group Props\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n multiSortMetaInput = input<SortMeta[] | null>(undefined, { alias: 'multiSortMeta' });\n /**\n * Selected row in single mode or an array of values in multiple mode.\n * @group Props\n */\n selection = model<any>();\n /**\n * Whether all data is selected.\n * @group Props\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n selectAllInput = input<boolean | null>(null, { alias: 'selectAll' });\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 selectAllChange = output<TableSelectAllChangeEvent>();\n /**\n * Callback to invoke when a row is selected.\n * @param {TableRowSelectEvent} event - custom select event.\n * @group Emits\n */\n onRowSelect = output<TableRowSelectEvent<RowData>>();\n /**\n * Callback to invoke when a row is unselected.\n * @param {TableRowUnSelectEvent} event - custom unselect event.\n * @group Emits\n */\n onRowUnselect = output<TableRowUnSelectEvent<RowData>>();\n /**\n * Callback to invoke when pagination occurs.\n * @param {TablePageEvent} event - custom pagination event.\n * @group Emits\n */\n onPage = output<TablePageEvent>();\n /**\n * Callback to invoke when a column gets sorted.\n * @param {Object} object - sort meta.\n * @group Emits\n */\n onSort = output<{ multisortmeta: SortMeta[] } | any>();\n /**\n * Callback to invoke when data is filtered.\n * @param {TableFilterEvent} event - custom filtering event.\n * @group Emits\n */\n onFilter = output<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 onLazyLoad = output<TableLazyLoadEvent>();\n /**\n * Callback to invoke when a row is expanded.\n * @param {TableRowExpandEvent} event - custom row expand event.\n * @group Emits\n */\n onRowExpand = output<TableRowExpandEvent<RowData>>();\n /**\n * Callback to invoke when a row is collapsed.\n * @param {TableRowCollapseEvent} event - custom row collapse event.\n * @group Emits\n */\n onRowCollapse = output<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 onContextMenuSelect = output<TableContextMenuSelectEvent<RowData>>();\n /**\n * Callback to invoke when a column is resized.\n * @param {TableColResizeEvent} event - custom column resize event.\n * @group Emits\n */\n onColResize = output<TableColResizeEvent>();\n /**\n * Callback to invoke when a column is reordered.\n * @param {TableColumnReorderEvent} event - custom column reorder event.\n * @group Emits\n */\n onColReorder = output<TableColumnReorderEvent>();\n /**\n * Callback to invoke when a row is reordered.\n * @param {TableRowReorderEvent} event - custom row reorder event.\n * @group Emits\n */\n onRowReorder = output<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 onEditInit = output<TableEditInitEvent>();\n /**\n * Callback to invoke when cell edit is completed.\n * @param {TableEditCompleteEvent} event - custom edit complete event.\n * @group Emits\n */\n onEditComplete = output<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 onEditCancel = output<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 onHeaderCheckboxToggle = output<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 sortFunction = output<any>();\n /**\n * Callback to invoke table state is saved.\n * @param {TableState} object - table state.\n * @group Emits\n */\n onStateSave = output<TableState>();\n /**\n * Callback to invoke table state is restored.\n * @param {TableState} object - table state.\n * @group Emits\n */\n onStateRestore = output<TableState>();\n\n resizeHelperViewChild = viewChild<ElementRef>('resizeHelper');\n\n reorderIndicatorUpViewChild = viewChild<ElementRef>('reorderIndicatorUp');\n\n reorderIndicatorDownViewChild = viewChild<ElementRef>('reorderIndicatorDown');\n\n wrapperViewChild = viewChild<ElementRef>('wrapper');\n\n tableViewChild = viewChild<ElementRef>('table');\n\n tableHeaderViewChild = viewChild<ElementRef>('thead');\n\n tableFooterViewChild = viewChild<ElementRef>('tfoot');\n\n scroller = viewChild<Scroller>('scroller');\n\n value: RowData[] = [];\n\n columns: any[] | undefined;\n\n filteredValue: any[] | undefined | null;\n\n headerTemplate = contentChild<TemplateRef<any>>('header', { descendants: false });\n\n headerGroupedTemplate = contentChild<TemplateRef<any>>('headergrouped', { descendants: false });\n\n bodyTemplate = contentChild<TemplateRef<any>>('body', { descendants: false });\n\n loadingBodyTemplate = contentChild<TemplateRef<any>>('loadingbody', { descendants: false });\n\n captionTemplate = contentChild<TemplateRef<any>>('caption', { descendants: false });\n\n footerTemplate = contentChild<TemplateRef<any>>('footer', { descendants: false });\n\n footerGroupedTemplate = contentChild<TemplateRef<any>>('footergrouped', { descendants: false });\n\n summaryTemplate = contentChild<TemplateRef<any>>('summary', { descendants: false });\n\n colGroupTemplate = contentChild<TemplateRef<any>>('colgroup', { descendants: false });\n\n expandedRowTemplate = contentChild<TemplateRef<any>>('expandedrow', { descendants: false });\n\n groupHeaderTemplate = contentChild<TemplateRef<any>>('groupheader', { descendants: false });\n\n groupFooterTemplate = contentChild<TemplateRef<any>>('groupfooter', { descendants: false });\n\n frozenExpandedRowTemplate = contentChild<TemplateRef<any>>('frozenexpandedrow', { descendants: false });\n\n frozenHeaderTemplate = contentChild<TemplateRef<any>>('frozenheader', { descendants: false });\n\n frozenBodyTemplate = contentChild<TemplateRef<any>>('frozenbody', { descendants: false });\n\n frozenFooterTemplate = contentChild<TemplateRef<any>>('frozenfooter', { descendants: false });\n\n frozenColGroupTemplate = contentChild<TemplateRef<any>>('frozencolgroup', { descendants: false });\n\n emptyMessageTemplate = contentChild<TemplateRef<any>>('emptymessage', { descendants: false });\n\n paginatorLeftTemplate = contentChild<TemplateRef<any>>('paginatorleft', { descendants: false });\n\n paginatorRightTemplate = contentChild<TemplateRef<any>>('paginatorright', { descendants: false });\n\n paginatorDropdownItemTemplate = contentChild<TemplateRef<any>>('paginatordropdownitem', { descendants: false });\n\n loadingIconTemplate = contentChild<TemplateRef<any>>('loadingicon', { descendants: false });\n\n reorderIndicatorUpIconTemplate = contentChild<TemplateRef<any>>('reorderindicatorupicon', { descendants: false });\n\n reorderIndicatorDownIconTemplate = contentChild<TemplateRef<any>>('reorderindicatordownicon', { descendants: false });\n\n sortIconTemplate = contentChild<TemplateRef<any>>('sorticon', { descendants: false });\n\n checkboxIconTemplate = contentChild<TemplateRef<any>>('checkboxicon', { descendants: false });\n\n headerCheckboxIconTemplate = contentChild<TemplateRef<any>>('headercheckboxicon', { descendants: false });\n\n paginatorDropdownIconTemplate = contentChild<TemplateRef<any>>('paginatordropdownicon', { descendants: false });\n\n paginatorFirstPageLinkIconTemplate = contentChild<TemplateRef<any>>('paginatorfirstpagelinkicon', { descendants: false });\n\n paginatorLastPageLinkIconTemplate = contentChild<TemplateRef<any>>('paginatorlastpagelinkicon', { descendants: false });\n\n paginatorPreviousPageLinkIconTemplate = contentChild<TemplateRef<any>>('paginatorpreviouspagelinkicon', { descendants: false });\n\n paginatorNextPageLinkIconTemplate = contentChild<TemplateRef<any>>('paginatornextpagelinkicon', { descendants: false });\n\n showLoadingMask = computed(() => this.loading() && this.showLoader());\n\n showTopPaginator = computed(() => this.paginator() && (this.paginatorPosition() === 'top' || this.paginatorPosition() === 'both'));\n\n showBottomPaginator = computed(() => this.paginator() && (this.paginatorPosition() === 'bottom' || this.paginatorPosition() === 'both'));\n\n showFrozenBody = computed(() => !!(this.frozenValue() || this.frozenBodyTemplate()));\n\n showFooter = computed(() => !!(this.footerGroupedTemplate() || this.footerTemplate()));\n\n scrollerStyle = computed(() => ({\n height: this.scrollHeight() !== 'flex' ? this.scrollHeight() : undefined\n }));\n\n scrollerScrollHeight = computed(() => (this.scrollHeight() !== 'flex' ? undefined : '100%'));\n\n scrollerDelay = computed(() => (this.lazy() ? this.virtualScrollDelay() : 0));\n\n selectionKeys: any = {};\n\n disabledSelectionKeys = new Set<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 private _editingCell = signal<Element | undefined | null>(null);\n\n get editingCell(): Element | undefined | null {\n return this._editingCell();\n }\n\n set editingCell(value: Element | undefined | null) {\n this._editingCell.set(value);\n }\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 _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: HTMLElement;\n\n columnResizing: boolean = false;\n\n rowGroupHeaderStyleObject: any = {};\n\n id: string = UniqueComponentId();\n\n styleElement: any;\n\n overlayService = inject(OverlayService);\n\n filterService = inject(FilterService);\n\n tableService = inject(TableService);\n\n _componentStyle = inject(TableStyle);\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n constructor() {\n super();\n\n effect(() => {\n const initialRows = this.rows();\n\n untracked(() => {\n if (this._defaultRows === undefined && initialRows !== undefined) {\n this._defaultRows = initialRows;\n }\n });\n });\n\n // Sync value + side effects\n effect(() => {\n const val = this.valueInput();\n\n untracked(() => {\n if (val !== undefined) {\n if (this.isStateful() && !this.stateRestored && isPlatformBrowser(this.platformId)) {\n this.restoreState();\n }\n\n this.value = val;\n\n if (!this.lazy()) {\n this.totalRecords.set(this.value ? this.value.length : 0);\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()) this._filter();\n }\n\n this.tableService.onValueChange(val);\n }\n });\n });\n\n // Sync columns + side effects\n effect(() => {\n const cols = this.columnsInput();\n\n untracked(() => {\n if (cols !== undefined) {\n this.columns = cols;\n\n if (this.isStateful() && this.reorderableColumns() && !this.columnOrderStateRestored) {\n this.restoreColumnOrder();\n }\n\n this.tableService.onColumnsChange(this.columns);\n }\n });\n });\n\n // Sync sortField + side effects\n effect(() => {\n const val = this.sortFieldInput();\n\n untracked(() => {\n if (val !== undefined) {\n this.sortField = val;\n\n if (!this.lazy() || this.initialized) {\n if (this.sortMode() === 'single') {\n this.sortSingle();\n }\n }\n }\n });\n });\n\n // groupRowsBy change effect\n effect(() => {\n this.groupRowsBy();\n untracked(() => {\n if (!this.lazy() || this.initialized) {\n if (this.sortMode() === 'single') {\n this.sortSingle();\n }\n }\n });\n });\n\n // Sync sortOrder + side effects\n effect(() => {\n const val = this.sortOrderInput();\n\n untracked(() => {\n this.sortOrder = val;\n\n if (!this.lazy() || this.initialized) {\n if (this.sortMode() === 'single') {\n this.sortSingle();\n }\n }\n });\n });\n\n // groupRowsByOrder change effect\n effect(() => {\n this.groupRowsByOrder();\n untracked(() => {\n if (!this.lazy() || this.initialized) {\n if (this.sortMode() === 'single') {\n this.sortSingle();\n }\n }\n });\n });\n\n // Sync multiSortMeta + side effects\n effect(() => {\n const val = this.multiSortMetaInput();\n\n untracked(() => {\n if (val !== undefined) {\n this.multiSortMeta = val;\n\n if (this.sortMode() === 'multiple' && (this.initialized || (!this.lazy() && !this.virtualScroll()))) {\n this.sortMultiple();\n }\n }\n });\n });\n\n // Selection side effects\n effect(() => {\n const val = this.selection();\n\n untracked(() => {\n if (val !== undefined) {\n if (!this.preventSelectionSetterPropagation) {\n this.updateSelectionKeys();\n this.tableService.onSelectionChange();\n }\n\n this.preventSelectionSetterPropagation = false;\n }\n });\n });\n\n // Sync selectAll + side effects\n effect(() => {\n const val = this.selectAllInput();\n\n untracked(() => {\n if (val !== null) {\n this._selectAll = val;\n\n if (!this.preventSelectionSetterPropagation) {\n this.updateSelectionKeys();\n this.tableService.onSelectionChange();\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n\n this.preventSelectionSetterPropagation = false;\n }\n });\n });\n\n // Sync contextMenuSelection\n effect(() => {\n const val = this.contextMenuSelectionInput();\n\n if (val !== undefined) {\n this.contextMenuSelection = val;\n }\n });\n\n // Sync filters\n effect(() => {\n const val = this.filtersInput();\n\n this.filters = val ?? {};\n });\n\n // Sync expandedRowKeys\n effect(() => {\n const val = this.expandedRowKeysInput();\n\n this.expandedRowKeys = val ?? {};\n });\n\n // Sync editingRowKeys\n effect(() => {\n const val = this.editingRowKeysInput();\n\n this.editingRowKeys = val ?? {};\n });\n }\n\n private _initialColWidths: number[];\n\n private _defaultRows: number | undefined;\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n\n onInit() {\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 this.initialized = true;\n }\n\n onAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.isStateful() && this.resizableColumns()) {\n this.restoreColumnWidths();\n }\n }\n }\n\n get processedData() {\n return this.filteredValue || this.value || [];\n }\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\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\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 | PaginatorState) {\n this.first.set(event.first);\n this.rows.set(event.rows);\n\n this.onPage.emit({\n first: <number>this.first(),\n rows: <number>this.rows()\n });\n\n if (this.lazy()) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n\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.set(0);\n\n if (this.scrollable()) {\n this.resetScrollTop();\n }\n }\n\n this.sortSingle();\n }\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.set(0);\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.set(0);\n }\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\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\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: any = 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 || 0);\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 && this.multiSortMeta.length > 0) {\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) => this.multisortField(data1, data2, <SortMeta[]>this.multiSortMeta, 0));\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\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\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\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\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\n if (targetNode == 'INPUT' || targetNode == 'BUTTON' || targetNode == 'A' || parentNode == 'INPUT' || parentNode == 'BUTTON' || parentNode == 'A' || isClickable(event.originalEvent.target)) {\n return;\n }\n\n if (this.selectionMode()) {\n let rowData = event.rowData;\n let rowIndex = event.rowIndex;\n\n this.preventSelectionSetterPropagation = true;\n\n if (this.isMultipleSelectionMode() && event.originalEvent.shiftKey && this.anchorRowIndex != null) {\n DomHandler.clearSelection();\n\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\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.set(null);\n this.selectionKeys = {};\n } else {\n let selectionIndex = this.findIndexInSelection(rowData);\n\n this.selection.set(this.selection().filter((val: any, i: number) => i != selectionIndex));\n\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.set(rowData);\n\n if (dataKeyValue) {\n this.selectionKeys = {};\n this.selectionKeys[dataKeyValue] = 1;\n }\n } else if (this.isMultipleSelectionMode()) {\n if (metaKey) {\n this.selection.set(this.selection() || []);\n } else {\n this.selection.set([]);\n this.selectionKeys = {};\n }\n\n this.selection.set([...this.selection(), rowData]);\n\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.set(null);\n this.selectionKeys = {};\n this.onRowUnselect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row',\n index: rowIndex\n });\n } else {\n this.selection.set(rowData);\n this.onRowSelect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row',\n index: rowIndex\n });\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\n this.selection.set(this.selection().filter((val: any, i: number) => i != selectionIndex));\n this.onRowUnselect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row',\n index: rowIndex\n });\n\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n } else {\n this.selection.set(this.selection() ? [...this.selection(), rowData] : [rowData]);\n this.onRowSelect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row',\n index: rowIndex\n });\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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\n handleRowTouchEnd(event: Event) {\n this.rowTouched = true;\n }\n\n handleRowRightClick(event: any) {\n if (this.contextMenu()) {\n const rowData = event.rowData;\n\n const showContextMenu = () => {\n this.contextMenu()!.show(event.originalEvent);\n\n this.contextMenu()!.hideCallback = () => {\n this.contextMenuSelection = null;\n this.contextMenuSelectionChange.emit(null);\n this.tableService.onContextMenu(null);\n };\n };\n\n this.contextMenuSelection = rowData;\n this.contextMenuSelectionChange.emit(rowData);\n this.tableService.onContextMenu(rowData);\n showContextMenu();\n this.onContextMenuSelect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n index: event.rowIndex\n });\n }\n }\n\n selectRange(event: MouseEvent | KeyboardEvent, rowIndex: number, isMetaKeySelection?: boolean | undefined) {\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: RowData[] = [];\n\n for (let i = <number>rangeStart; i <= <number>rangeEnd; i++) {\n let rangeRowData = this.filteredValue ? this.filteredValue[i] : this.value[i];\n\n if (!this.isSelected(rangeRowData) && !isMetaKeySelection) {\n if (!this.isRowSelectable(rangeRowData, rowIndex)) {\n continue;\n }\n\n rangeRowsData.push(rangeRowData);\n let dataKeyValue = this.dataKey() ? String(ObjectUtils.resolveFieldData(rangeRowData, this.dataKey())) : null;\n\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n }\n\n if (rangeRowsData.length > 0) {\n this.selection.set([...this.selection(), ...rangeRowsData]);\n }\n\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 const indicesToRemove = new Set<number>();\n\n for (let i = <number>rangeStart; i <= <number>rangeEnd; i++) {\n let rangeRowData = this.value[i];\n let selectionIndex = this.findIndexInSelection(rangeRowData);\n\n if (selectionIndex !== -1) {\n indicesToRemove.add(selectionIndex);\n }\n\n let dataKeyValue = this.dataKey() ? String(ObjectUtils.resolveFieldData(rangeRowData, this.dataKey())) : null;\n\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n\n this.onRowUnselect.emit({\n originalEvent: event,\n data: rangeRowData,\n type: 'row'\n });\n }\n\n this.selection.set(this.selection().filter((_: any, i: number) => !indicesToRemove.has(i)));\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 const sel = this.selection();\n\n if (sel && sel.length) {\n for (let i = 0; i < sel.length; i++) {\n if (this.equals(rowData, sel[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.set(rowData);\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.set(null);\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: { originalEvent: Event; rowIndex: number }, rowData: any) {\n if (!this.selection()) this.selection.set([]);\n\n let selected = this.isSelected(rowData);\n let dataKeyValue = this.dataKey() ? String(ObjectUtils.resolveFieldData(rowData, this.dataKey())) : null;\n\n this.preventSelectionSetterPropagation = true;\n\n if (selected) {\n let selectionIndex = this.findIndexInSelection(rowData);\n\n this.selection.set(this.selection().filter((val: any, i: number) => i != selectionIndex));\n this.onRowUnselect.emit({\n originalEvent: event.originalEvent,\n index: event.rowIndex,\n data: rowData,\n type: 'checkbox'\n });\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.set(this.selection() ? [...this.selection(), rowData] : [rowData]);\n this.onRowSelect.emit({\n originalEvent: event.originalEvent,\n index: event.rowIndex,\n data: rowData,\n type: 'checkbox'\n });\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({ originalEvent }: CheckboxChangeEvent, check: boolean) {\n if (this._selectAll !== null) {\n this.selectAllChange.emit({ originalEvent: originalEvent!, 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 const isSelectable = (rowData: any, index: number) => (!this.rowSelectable() || this.rowSelectable()!({ data: rowData, index })) && !this.isRowCheckboxDisabled(rowData);\n\n if (check) {\n selection = this.frozenValue() ? [...selection, ...this.frozenValue()!, ...data] : [...selection, ...data];\n selection = selection.filter((rowData: any, index: number) => isSelectable(rowData, index));\n }\n\n const previousSelection = this.selection() || [];\n const selectedKeys = new Set(previousSelection.map((s: any) => this.getSelectionKey(s)));\n const alreadyIncluded = new Set(selection.map((s: any) => this.getSelectionKey(s)));\n const preserveCandidates = this.frozenValue() ? [...this.frozenValue()!, ...data] : data;\n\n preserveCandidates.forEach((d: any, index: number) => {\n const key = this.getSelectionKey(d);\n\n if (!isSelectable(d, index) && selectedKeys.has(key) && !alreadyIncluded.has(key)) {\n selection.push(d);\n alreadyIncluded.add(key);\n }\n });\n\n this.preventSelectionSetterPropagation = true;\n this.selection.set(selection);\n this.updateSelectionKeys();\n this.tableService.onSelectionChange();\n this.onHeaderCheckboxToggle.emit({\n originalEvent: originalEvent!,\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 getSelectionKey(data: any) {\n return this.dataKey() && this.compareSelectionBy() !== 'equals' ? String(ObjectUtils.resolveFieldData(data, this.dataKey())) : data;\n }\n\n setRowCheckboxDisabled(rowData: any, disabled: boolean) {\n const key = this.getSelectionKey(rowData);\n\n if (disabled) {\n this.disabledSelectionKeys.add(key);\n } else {\n this.disabledSelectionKeys.delete(key);\n }\n }\n\n isRowCheckboxDisabled(rowData: any) {\n return this.disabledSelectionKeys.has(this.getSelectionKey(rowData));\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\n if (!this.isFilterBlank(value)) {\n (<any>this.filters[field]) = { value: value, matchMode: matchMode, applyFilter: true };\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\n return true;\n }\n\n _filter() {\n if (!this.restoringFilter) {\n this.first.set(0);\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\n if (this.paginator()) {\n this.totalRecords.set(this.value ? this.value.length : 0);\n }\n } else {\n let globalFilterFieldsArray;\n\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 (Object.prototype.hasOwnProperty.call(this.filters, 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\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\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.set(this.filteredValue ? this.filteredValue.length : this.value ? this.value.length : 0);\n }\n }\n }\n\n this.onFilter.emit({\n filters: 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\n for (let prop in this.filters) {\n if (Object.prototype.hasOwnProperty.call(this.filters, 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.set(0);\n\n if (this._defaultRows !== undefined && this.rows() !== this._defaultRows) {\n this.rows.set(this._defaultRows);\n }\n\n if (this.lazy()) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else {\n this.totalRecords.set(this.value ? this.value.length : 0);\n }\n\n this.tableService.onValueChange(this.value);\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\n link.style.display = 'none';\n this.renderer.appendChild(this.document.body, link);\n\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\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()?.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()?.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 if (!this.$unstyled()) {\n DomHandler.removeClass(this.editingCell, 'p-cell-editing');\n }\n\n setAttribute(this.editingCell as HTMLElement, 'data-p-cell-editing', 'false');\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\n this.editingRowKeys = { ...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 const rest = { ...this.editingRowKeys };\n\n delete rest[dataKeyValue];\n this.editingRowKeys = rest;\n }\n }\n\n cancelRowEdit(rowData: any) {\n let dataKeyValue = String(ObjectUtils.resolveFieldData(rowData, this.dataKey()));\n const rest = { ...this.editingRowKeys };\n\n delete rest[dataKeyValue];\n this.editingRowKeys = rest;\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.el?.nativeElement).left;\n\n this.resizeColumnElement = event.target.closest('th');\n this.columnResizing = true;\n\n if (event.type == 'touchstart') {\n this.lastResizerHelperX = event.changedTouches[0].clientX - containerLeft + this.el?.nativeElement.scrollLeft;\n } else {\n this.lastResizerHelperX = event.pageX - containerLeft + this.el?.nativeElement.scrollLeft;\n }\n\n this.onColumnResize(event);\n event.preventDefault();\n }\n\n onColumnResize(event: any) {\n let containerLeft = DomHandler.getOffset(this.el?.nativeElement).left;\n\n if (!this.$unstyled()) {\n DomHandler.addClass(this.el?.nativeElement, 'p-unselectable-text');\n }\n\n this.resizeHelperViewChild()!.nativeElement.style.height = this.el?.nativeElement.offsetHeight + 'px';\n this.resizeHelperViewChild()!.nativeElement.style.top = 0 + 'px';\n\n if (event.type == 'touchmove') {\n this.resizeHelperViewChild()!.nativeElement.style.left = event.changedTouches[0].clientX - containerLeft + this.el?.nativeElement.scrollLeft + 'px';\n } else {\n this.resizeHelperViewChild()!.nativeElement.style.left = event.pageX - containerLeft + this.el?.nativeElement.scrollLeft + 'px';\n }\n\n this.resizeHelperViewChild()!.nativeElement.style.display = 'block';\n }\n\n onColumnResizeEnd() {\n const isRTL = getComputedStyle(this.el?.nativeElement ?? document.documentElement).direction === 'rtl';\n const rawDelta = this.resizeHelperViewChild()?.nativeElement.offsetLeft - <number>this.lastResizerHelperX;\n const delta = isRTL ? -rawDelta : rawDelta;\n const columnWidth = this.resizeColumnElement.offsetWidth;\n const newColumnWidth = columnWidth + delta;\n const elementMinWidth = this.resizeColumnElement.style.minWidth.replace(/[^\\d.]/g, '');\n const minWidth = elementMinWidth ? parseFloat(elementMinWidth) : 15;\n\n if (newColumnWidth >= minWidth) {\n if (this.columnResizeMode() === 'fit') {\n const nextColumn = this.resizeColumnElement.nextElementSibling as HTMLElement;\n const 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 const 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 this.resizeHelperViewChild()!.nativeElement.style.display = 'none';\n DomHandler.removeClass(this.el?.nativeElement, 'p-unselectable-text');\n }\n\n private _totalTableWidth(): number[] {\n let widths = [];\n const tableHead = DomHandler.findSingle(this.el.nativeElement, '[data-pc-section=\"thead\"]');\n let headers = DomHandler.find(tableHead, 'tr > th');\n\n headers.forEach((header) => (widths as any[]).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 }\n }\n\n onColumnDragOver(event: any, dropHeader: any) {\n if (this.reorderableColumns() && this.draggedColumn && dropHeader) {\n event.preventDefault();\n let containerOffset = DomHandler.getOffset(this.el?.nativeElement);\n let dropHeaderOffset = DomHandler.getOffset(dropHeader);\n\n if (this.draggedColumn != dropHeader) {\n let targetLeft = dropHeaderOffset.left - containerOffset.left;\n let columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;\n\n this.reorderIndicatorUpViewChild()!.nativeElement.style.top = dropHeaderOffset.top - containerOffset.top - (<number>this.reorderIconHeight - 1) + 'px';\n this.reorderIndicatorDownViewChild()!.nativeElement.style.top = dropHeaderOffset.top - containerOffset.top + dropHeader.offsetHeight + 'px';\n\n if (event.pageX > columnCenter) {\n this.reorderIndicatorUpViewChild()!.nativeElement.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n this.reorderIndicatorDownViewChild()!.nativeElement.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n this.dropPosition = 1;\n } else {\n this.reorderIndicatorUpViewChild()!.nativeElement.style.left = targetLeft - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n this.reorderIndicatorDownViewChild()!.nativeElement.style.left = targetLeft - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n this.dropPosition = -1;\n }\n\n this.reorderIndicatorUpViewChild()!.nativeElement.style.display = 'block';\n 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 this.reorderIndicatorUpViewChild()!.nativeElement.style.display = 'none';\n this.reorderIndicatorDownViewChild()!.nativeElement.style.display = 'none';\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onColumnDragEnd(event: Event) {\n if (this.reorderableColumns() && this.draggedColumn) {\n this.reorderIndicatorUpViewChild()!.nativeElement.style.display = 'none';\n this.reorderIndicatorDownViewChild()!.nativeElement.style.display = 'none';\n this.draggedColumn.draggable = false;\n this.draggedColumn = null;\n this.dropPosition = null;\n }\n }\n\n onColumnDrop(event: Event, dropColumn: any) {\n event.preventDefault();\n\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\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 setTimeout(() => {\n this.saveState();\n });\n }\n }\n\n if (this.resizableColumns() && this.resizeColumnElement) {\n let width = this.columnResizeMode() === 'expand' ? this._initialColWidths : this._totalTableWidth();\n\n ObjectUtils.reorderArray(width, dragIndex + 1, dropIndex + 1);\n this.updateStyleElement(width, dragIndex, 0, 0);\n }\n\n this.reorderIndicatorUpViewChild()!.nativeElement.style.display = 'none';\n 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\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\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\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\n if (prevRowElement && !this.$unstyled()) DomHandler.addClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n else if (!this.$unstyled()) {\n DomHandler.addClass(rowElement, 'p-datatable-dragpoint-top');\n }\n } else {\n if (prevRowElement && !this.$unstyled()) DomHandler.removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n else if (!this.$unstyled()) {\n DomHandler.addClass(rowElement, 'p-datatable-dragpoint-top');\n }\n\n this.droppedRowIndex = index + 1;\n\n if (!this.$unstyled()) {\n DomHandler.addClass(rowElement, 'p-datatable-dragpoint-bottom');\n }\n }\n }\n }\n\n onRowDragLeave(event: Event, rowElement: any) {\n let prevRowElement = rowElement.previousElementSibling;\n\n if (prevRowElement) {\n if (!this.$unstyled()) {\n DomHandler.removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n }\n }\n\n if (!this.$unstyled()) {\n DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n }\n\n if (!this.$unstyled()) {\n DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-top');\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\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\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\n //cleanup\n this.onRowDragLeave(event, rowElement);\n this.onRowDragEnd(event);\n }\n\n isEmpty() {\n let data = this.filteredValue || this.value;\n\n return data == null || data.length == 0;\n }\n\n getVirtualScrollerSpacerStyle(scrollerOptions: any) {\n return `height: calc(${scrollerOptions.spacerStyle.height} - ${scrollerOptions.rows.length * scrollerOptions.itemSize}px)`;\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(<string>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\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.set(state.first);\n }\n\n if (this.rows() !== undefined) {\n this.rows.set(state.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\n for (const key in state.filters) {\n if (Object.prototype.hasOwnProperty.call(state.filters, key) && (state.filters[key]['value'] || state.filters[key][0]['value'])) {\n if (Array.isArray(state.filters[key])) {\n state.filters[key][0]['applyFilter'] = true;\n } else {\n state.filters[key]['applyFilter'] = true;\n }\n }\n }\n\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.selection.set(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: any[] = [];\n\n const container = this.el?.nativeElement;\n\n if (container) {\n headers = DomHandler.find(container, '[data-pc-section=\"thead\"] > tr > th');\n }\n\n headers.forEach((header) => (widths as any[]).push(DomHandler.getOuterWidth(header)));\n state.columnWidths = widths.join(',');\n\n if (this.columnResizeMode() === 'expand' && this.tableViewChild()) {\n state.tableWidth = DomHandler.getOuterWidth(this.tableViewChild()!.nativeElement);\n }\n }\n\n setResizeTableWidth(width: string) {\n this.tableViewChild()!.nativeElement.style.width = width;\n 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\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\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\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\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 DomHandler.setAttribute(this.styleElement, 'nonce', this.config?.csp()?.nonce);\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 destroyStyleElement() {\n if (this.styleElement) {\n this.renderer.removeChild(this.document.head, this.styleElement);\n this.styleElement = null;\n }\n }\n\n ngAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n\n onDestroy() {\n this.unbindDocumentEditListener();\n this.editingCell = null;\n this.initialized = null;\n\n this.destroyStyleElement();\n }\n\n get dataP() {\n return this.cn({\n scrollable: this.scrollable(),\n 'flex-scrollable': this.scrollable() && this.scrollHeight() === 'flex',\n [this.size() as string]: this.size(),\n loading: this.loading(),\n empty: this.isEmpty()\n });\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, effect, inject, input } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { DomHandler } from 'primeng/dom';\nimport { VoidListener } from 'primeng/ts-helpers';\nimport { TableStyle } from './style/tablestyle';\n\n@Directive({\n selector: '[pFrozenColumn]',\n standalone: true,\n host: {\n '[class]': 'cx(\"frozenColumn\")'\n },\n providers: [TableStyle]\n})\nexport class FrozenColumn extends BaseComponent {\n frozen = input<boolean>(true);\n\n alignFrozen = input<string>('left');\n\n resizeListener: VoidListener;\n\n private resizeObserver?: ResizeObserver;\n\n _componentStyle = inject(TableStyle);\n\n constructor() {\n super();\n effect(() => {\n const frozen = this.frozen();\n\n if (frozen !== undefined) {\n Promise.resolve(null).then(() => this.updateStickyPosition());\n }\n });\n }\n\n onAfterViewInit() {\n this.bindResizeListener();\n this.observeChanges();\n }\n\n bindResizeListener() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.resizeListener) {\n this.resizeListener = this.renderer.listen(this.document.defaultView, 'resize', () => {\n this.recalculateColumns();\n });\n }\n }\n }\n\n unbindResizeListener() {\n if (this.resizeListener) {\n this.resizeListener();\n this.resizeListener = null;\n }\n }\n\n observeChanges() {\n if (isPlatformBrowser(this.platformId)) {\n const resizeObserver = new ResizeObserver(() => {\n this.recalculateColumns();\n });\n\n resizeObserver.observe(this.el.nativeElement);\n this.resizeObserver = resizeObserver;\n }\n }\n\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 updateStickyPosition() {\n if (!this.frozen()) {\n return;\n }\n\n const cell = this.el.nativeElement;\n\n if (this.alignFrozen() === 'right') {\n let right = 0;\n let sibling = cell.nextElementSibling;\n\n while (sibling) {\n right += DomHandler.getOuterWidth(sibling);\n sibling = sibling.nextElementSibling;\n }\n\n cell.style.right = right + 'px';\n } else {\n let left = 0;\n let sibling = cell.previousElementSibling;\n\n while (sibling) {\n left += DomHandler.getOuterWidth(sibling);\n sibling = sibling.previousElementSibling;\n }\n\n cell.style.left = left + 'px';\n }\n }\n\n onDestroy() {\n this.unbindResizeListener();\n\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n}\n","import { booleanAttribute, Directive, input } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\n\n@Directive({\n selector: '[pEditableRow]',\n standalone: true\n})\nexport class EditableRow extends BaseComponent {\n data = input<any>(undefined, { alias: 'pEditableRow' });\n\n pEditableRowDisabled = input(undefined, { transform: booleanAttribute });\n\n isEnabled() {\n return this.pEditableRowDisabled() !== true;\n }\n}\n","import { Directive, ElementRef, inject } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { TableStyle } from './style/tablestyle';\n\n@Directive({\n selector: '[pReorderableRowHandle]',\n standalone: true,\n host: {\n '[class]': \"cx('reorderableRowHandle')\"\n },\n providers: [TableStyle],\n hostDirectives: [Bind]\n})\nexport class ReorderableRowHandle extends BaseComponent {\n hostName = 'Table';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(TableStyle);\n\n el = inject(ElementRef);\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptm('reorderableRowHandle'));\n }\n\n onAfterViewInit() {\n // DomHandler.addClass(this.el.nativeElement, 'p-datatable-reorderable-row-handle');\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { TableStyle } from './style/tablestyle';\nimport { TABLE_INSTANCE } from './table-service';\nimport type { Table } from './table';\n\n@Directive({\n selector: '[pRowGroupHeader]',\n standalone: true,\n host: {\n '[class]': 'cx(\"rowGroupHeader\")',\n '[style]': 'sx(\"rowGroupHeader\")'\n },\n providers: [TableStyle]\n})\nexport class RowGroupHeader extends BaseComponent {\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n _componentStyle = inject(TableStyle);\n\n get getFrozenRowGroupHeaderStickyPosition() {\n return this.dataTable.rowGroupHeaderStyleObject ? this.dataTable.rowGroupHeaderStyleObject.top : '';\n }\n}\n","import { booleanAttribute, Directive, HostListener, inject, input } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { TABLE_INSTANCE } from './table-service';\nimport type { Table } from './table';\n\n@Directive({\n selector: '[pRowToggler]',\n standalone: true\n})\nexport class RowToggler extends BaseComponent {\n data = input<any>(undefined, { alias: 'pRowToggler' });\n\n pRowTogglerDisabled = input(undefined, { transform: booleanAttribute });\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.dataTable.toggleRow(this.data(), event);\n event.preventDefault();\n }\n }\n\n isEnabled() {\n return this.pRowTogglerDisabled() !== true;\n }\n}\n","import { booleanAttribute, computed, Directive, HostListener, inject, input, signal } from '@angular/core';\nimport { getAttribute } from '@primeuix/utils';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { DomHandler } from 'primeng/dom';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TableStyle } from './style/tablestyle';\nimport { TABLE_INSTANCE } from './table-service';\nimport type { Table } from './table';\n\n@Directive({\n selector: '[pSortableColumn]',\n standalone: true,\n host: {\n '[class]': \"cx('sortableColumn')\",\n '[tabindex]': '$tabindex()',\n role: 'columnheader',\n '[attr.aria-sort]': 'ariaSort()'\n },\n providers: [TableStyle]\n})\nexport class SortableColumn extends BaseComponent {\n field = input<string | undefined>(undefined, { alias: 'pSortableColumn' });\n\n pSortableColumnDisabled = input(undefined, { transform: booleanAttribute });\n\n role = this.el.nativeElement?.tagName !== 'TH' ? 'columnheader' : null;\n\n sorted = signal(false);\n\n sortOrder = signal(0);\n\n $tabindex = computed(() => (this.isEnabled() ? '0' : null));\n\n ariaSort = computed(() => {\n const sorted = this.sorted();\n const order = this.sortOrder();\n\n return sorted ? (order === 1 ? 'ascending' : 'descending') : 'none';\n });\n\n _componentStyle = inject(TableStyle);\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n constructor() {\n super();\n\n if (this.isEnabled()) {\n this.dataTable.tableService.sortSource$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.updateSortState();\n });\n }\n }\n\n onInit() {\n if (this.isEnabled()) {\n this.updateSortState();\n }\n }\n\n updateSortState() {\n let sorted = false;\n let sortOrder = 0;\n\n if (this.dataTable.sortMode() === 'single') {\n sorted = this.dataTable.isSorted(<string>this.field()) as boolean;\n sortOrder = this.dataTable.sortOrder;\n } else if (this.dataTable.sortMode() === 'multiple') {\n const sortMeta = this.dataTable.getSortMeta(<string>this.field());\n\n sorted = !!sortMeta;\n sortOrder = sortMeta ? sortMeta.order : 0;\n }\n\n this.sorted.set(sorted);\n this.sortOrder.set(sortOrder);\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent) {\n if (this.isEnabled() && !this.isFilterElement(<HTMLElement>event.target)) {\n this.updateSortState();\n this.dataTable.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: Event) {\n this.onClick(event as MouseEvent);\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\n private isFilterElementIconOrButton(element: HTMLElement | null | undefined) {\n if (!element) {\n return false;\n }\n\n return getAttribute(element, '[data-pc-name=\"pccolumnfilterbutton\"]') || getAttribute(element, '[data-pc-section=\"columnfilterbuttonicon\"]');\n }\n}\n","import { booleanAttribute, Directive, HostListener, inject, input } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { find } from '@primeuix/utils';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { DomHandler } from 'primeng/dom';\nimport { ObjectUtils } from 'primeng/utils';\nimport { TableStyle } from './style/tablestyle';\nimport type { Table } from './table';\nimport { TABLE_INSTANCE, TableService } from './table-service';\n\n@Directive({\n selector: '[pSelectableRow]',\n standalone: true,\n host: {\n '[class]': \"cx('selectableRow')\",\n '[tabindex]': 'setRowTabIndex()',\n '[attr.data-p-selectable-row]': 'true'\n },\n providers: [TableStyle]\n})\nexport class SelectableRow extends BaseComponent {\n data = input<any>(undefined, { alias: 'pSelectableRow' });\n\n index = input<number | undefined>(undefined, { alias: 'pSelectableRowIndex' });\n\n pSelectableRowDisabled = input(undefined, { transform: booleanAttribute });\n\n selected: boolean | undefined;\n\n _componentStyle = inject(TableStyle);\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n public tableService = inject(TableService);\n\n constructor() {\n super();\n\n if (this.isEnabled()) {\n this.dataTable.tableService.selectionSource$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.selected = this.dataTable.isSelected(this.data());\n });\n }\n }\n\n setRowTabIndex() {\n if (this.dataTable.selectionMode() === 'single' || this.dataTable.selectionMode() === 'multiple') {\n const anchorIndex = this.dataTable.anchorRowIndex;\n\n return anchorIndex != null ? (anchorIndex === this.index() ? 0 : -1) : 0;\n }\n }\n\n onInit() {\n if (this.isEnabled()) {\n this.selected = this.dataTable.isSelected(this.data());\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.dataTable.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.dataTable.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.dataTable.selectionMode() === 'multiple') {\n const data = this.dataTable.dataToRender(this.dataTable.processedData);\n\n this.dataTable.selection.set([...data]);\n this.dataTable.selectRange(event, data.length - 1, true);\n\n event.preventDefault();\n }\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.dataTable.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\n if (lastRow) {\n this.focusRowChange(this.el.nativeElement, lastRow);\n }\n\n if (event.ctrlKey && event.shiftKey) {\n const data = this.dataTable.dataToRender(this.dataTable.rows());\n const lastSelectableRowIndex = DomHandler.getAttribute(lastRow, 'index');\n\n this.dataTable.anchorRowIndex = lastSelectableRowIndex;\n this.dataTable.selection.set(data.slice(this.index() || 0, data.length));\n this.dataTable.selectRange(event, this.index() || 0);\n }\n\n event.preventDefault();\n }\n\n onHomeKey(event: KeyboardEvent) {\n const firstRow = this.findFirstSelectableRow();\n\n if (firstRow) {\n this.focusRowChange(this.el.nativeElement, firstRow);\n }\n\n if (event.ctrlKey && event.shiftKey) {\n const data = this.dataTable.dataToRender(this.dataTable.rows());\n const firstSelectableRowIndex = DomHandler.getAttribute(firstRow, 'index');\n\n this.dataTable.anchorRowIndex = this.dataTable.anchorRowIndex || firstSelectableRowIndex || 0;\n this.dataTable.selection.set(data.slice(0, (this.index() || 0) + 1));\n this.dataTable.selectRange(event, this.index() || 0);\n }\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\n if (isInput) {\n return;\n } else {\n this.onEnterKey(event);\n\n if (event.shiftKey && this.dataTable.selection() !== null) {\n const data = this.dataTable.dataToRender(this.dataTable.rows());\n let index;\n const sel = this.dataTable.selection();\n\n if (ObjectUtils.isNotEmpty(sel) && sel.length > 0) {\n let firstSelectedRowIndex, lastSelectedRowIndex;\n\n firstSelectedRowIndex = ObjectUtils.findIndexInList(sel[0], data);\n lastSelectedRowIndex = ObjectUtils.findIndexInList(sel[sel.length - 1], data);\n\n index = (this.index() || 0) <= firstSelectedRowIndex ? lastSelectedRowIndex : firstSelectedRowIndex;\n } else {\n index = ObjectUtils.findIndexInList(sel, data);\n }\n\n this.dataTable.anchorRowIndex = index || 0;\n this.dataTable.selection.set(index !== this.index() ? data.slice(Math.min(index || 0, this.index() || 0), Math.max(index || 0, this.index() || 0) + 1) : [this.data()]);\n this.dataTable.selectRange(event, this.index() || 0);\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.dataTable.el.nativeElement, '[data-p-selectable-row=\"true\"]');\n\n return rows ? rows[rows.length - 1] : null;\n }\n\n findFirstSelectableRow() {\n const firstRow = DomHandler.findSingle(this.dataTable.el.nativeElement, '[data-p-selectable-row=\"true\"]');\n\n return firstRow;\n }\n\n findNextSelectableRow(row: HTMLTableRowElement): HTMLTableRowElement | null {\n let nextRow = <HTMLTableRowElement>row.nextElementSibling;\n\n if (nextRow) {\n if (find(nextRow, '[data-p-selectable-row=\"true\"]')) 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\n if (prevRow) {\n if (find(prevRow, '[data-p-selectable-row=\"true\"]')) 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","import { booleanAttribute, Directive, HostListener, inject, input } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TableStyle } from './style/tablestyle';\nimport { TABLE_INSTANCE, TableService } from './table-service';\nimport type { Table } from './table';\n\n@Directive({\n selector: '[pSelectableRowDblClick]',\n standalone: true,\n host: {\n '[class]': 'cx(\"selectableRow\")'\n },\n providers: [TableStyle]\n})\nexport class SelectableRowDblClick extends BaseComponent {\n data = input<any>(undefined, { alias: 'pSelectableRowDblClick' });\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n index = input<number | undefined>(undefined, { alias: 'pSelectableRowIndex' });\n\n pSelectableRowDisabled = input(undefined, { transform: booleanAttribute });\n\n selected: boolean | undefined;\n\n _componentStyle = inject(TableStyle);\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n public tableService = inject(TableService);\n\n constructor() {\n super();\n\n if (this.isEnabled()) {\n this.dataTable.tableService.selectionSource$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.selected = this.dataTable.isSelected(this.data());\n });\n }\n }\n\n onInit() {\n if (this.isEnabled()) {\n this.selected = this.dataTable.isSelected(this.data());\n }\n }\n\n @HostListener('dblclick', ['$event'])\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.dataTable.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","import { booleanAttribute, Directive, HostListener, inject, input } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TableStyle } from './style/tablestyle';\nimport { TABLE_INSTANCE, TableService } from './table-service';\nimport type { Table } from './table';\n\n@Directive({\n selector: '[pContextMenuRow]',\n standalone: true,\n host: {\n '[class]': 'cx(\"contextMenuRowSelected\")',\n '[attr.tabindex]': 'isEnabled() ? 0 : undefined'\n },\n providers: [TableStyle]\n})\nexport class ContextMenuRow extends BaseComponent {\n data = input<any>(undefined, { alias: 'pContextMenuRow' });\n\n index = input<number | undefined>(undefined, { alias: 'pContextMenuRowIndex' });\n\n pContextMenuRowDisabled = input(undefined, { transform: booleanAttribute });\n\n selected: boolean | undefined;\n\n _componentStyle = inject(TableStyle);\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n public tableService = inject(TableService);\n\n constructor() {\n super();\n\n if (this.isEnabled()) {\n this.dataTable.tableService.contextMenuSource$.pipe(takeUntilDestroyed()).subscribe((data) => {\n this.selected = data ? this.dataTable.equals(this.data(), data) : false;\n });\n }\n }\n\n @HostListener('contextmenu', ['$event'])\n onContextMenu(event: Event) {\n if (this.isEnabled()) {\n this.dataTable.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","import { isPlatformBrowser } from '@angular/common';\nimport { booleanAttribute, Directive, inject, input } from '@angular/core';\nimport { setAttribute } from '@primeuix/utils';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { VoidListener } from 'primeng/ts-helpers';\nimport { TableStyle } from './style/tablestyle';\nimport type { Table } from './table';\nimport { TABLE_INSTANCE } from './table-service';\n\n@Directive({\n selector: '[pResizableColumn]',\n standalone: true,\n host: {\n '[class]': \"cx('resizableColumn')\"\n },\n providers: [TableStyle]\n})\nexport class ResizableColumn extends BaseComponent {\n pResizableColumnDisabled = input(undefined, { transform: booleanAttribute });\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 _componentStyle = inject(TableStyle);\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n onAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.isEnabled()) {\n this.resizer = this.renderer.createElement('span');\n setAttribute(this.resizer as HTMLElement, 'data-pc-column-resizer', 'true');\n\n if (!this.$unstyled()) {\n this.renderer.addClass(this.resizer, 'p-datatable-column-resizer');\n }\n\n this.renderer.appendChild(this.el.nativeElement, this.resizer);\n\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 bindDocumentEvents() {\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 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\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.dataTable.onColumnResizeBegin(event);\n this.bindDocumentEvents();\n }\n\n onTouchStart(event: TouchEvent) {\n this.dataTable.onColumnResizeBegin(event);\n this.bindDocumentEvents();\n }\n\n onTouchMove(event: TouchEvent) {\n this.dataTable.onColumnResize(event);\n }\n onDocumentMouseMove(event: MouseEvent) {\n this.dataTable.onColumnResize(event);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onDocumentMouseUp(event: MouseEvent) {\n this.dataTable.onColumnResizeEnd();\n this.unbindDocumentEvents();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onTouchEnd(event: TouchEvent) {\n this.dataTable.onColumnResizeEnd();\n this.unbindDocumentEvents();\n }\n\n isEnabled() {\n return this.pResizableColumnDisabled() !== true;\n }\n\n onDestroy() {\n if (this.resizerMouseDownListener) {\n this.resizerMouseDownListener();\n this.resizerMouseDownListener = null;\n }\n\n this.unbindDocumentEvents();\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { booleanAttribute, Directive, HostListener, inject, input } from '@angular/core';\nimport { findSingle } from '@primeuix/utils';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { VoidListener } from 'primeng/ts-helpers';\nimport { TableStyle } from './style/tablestyle';\nimport type { Table } from './table';\nimport { TABLE_INSTANCE } from './table-service';\n\n@Directive({\n selector: '[pReorderableColumn]',\n standalone: true,\n host: {\n '[class]': \"cx('reorderableColumn')\"\n },\n providers: [TableStyle]\n})\nexport class ReorderableColumn extends BaseComponent {\n pReorderableColumnDisabled = input(undefined, { transform: booleanAttribute });\n\n dragStartListener: VoidListener;\n\n dragOverListener: VoidListener;\n\n dragEnterListener: VoidListener;\n\n dragLeaveListener: VoidListener;\n\n dragEndListener: VoidListener;\n\n mouseDownListener: VoidListener;\n\n _componentStyle = inject(TableStyle);\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n onAfterViewInit() {\n if (this.isEnabled()) {\n this.bindEvents();\n }\n }\n\n bindEvents() {\n if (isPlatformBrowser(this.platformId)) {\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 this.dragEndListener = this.renderer.listen(this.el.nativeElement, 'dragend', this.onDragEnd.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.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 if (this.dragEndListener) {\n this.dragEndListener();\n this.dragEndListener = null;\n }\n }\n\n onMouseDown(event: any) {\n if (event.target.nodeName === 'INPUT' || event.target.nodeName === 'TEXTAREA' || findSingle(event.target, '[data-pc-column-resizer=\"true\"]')) this.el.nativeElement.draggable = false;\n else this.el.nativeElement.draggable = true;\n }\n\n onDragStart(event: any) {\n this.dataTable.onColumnDragStart(event, this.el.nativeElement);\n }\n\n onDragOver(event: any) {\n this.dataTable.onColumnDragOver(event, this.el.nativeElement);\n }\n\n onDragEnter(event: any) {\n this.dataTable.onColumnDragEnter(event, this.el.nativeElement);\n }\n\n onDragLeave(event: any) {\n this.dataTable.onColumnDragLeave(event);\n }\n\n onDragEnd(event: any) {\n this.dataTable.onColumnDragEnd(event);\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: any) {\n if (this.isEnabled()) {\n this.dataTable.onColumnDrop(event, this.el.nativeElement);\n }\n }\n\n isEnabled() {\n return this.pReorderableColumnDisabled() !== true;\n }\n\n onDestroy() {\n this.unbindEvents();\n }\n}\n","import { booleanAttribute, Directive, effect, HostListener, inject, input, untracked } from '@angular/core';\nimport { findSingle, setAttribute } from '@primeuix/utils';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { DomHandler } from 'primeng/dom';\nimport { TABLE_INSTANCE } from './table-service';\nimport type { Table } from './table';\n\n@Directive({\n selector: '[pEditableColumn]',\n standalone: true,\n host: {\n '[attr.data-p-editable-column]': 'true'\n }\n})\nexport class EditableColumn extends BaseComponent {\n data = input<any>(undefined, { alias: 'pEditableColumn' });\n\n field = input<any>(undefined, { alias: 'pEditableColumnField' });\n\n rowIndex = input<number | undefined>(undefined, { alias: 'pEditableColumnRowIndex' });\n\n pEditableColumnDisabled = input(undefined, { transform: booleanAttribute });\n\n pFocusCellSelector = input<string | undefined>();\n\n overlayEventListener: any;\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n private initialized = false;\n\n private originalCellValue: any;\n\n constructor() {\n super();\n effect(() => {\n const data = this.data();\n\n untracked(() => {\n if (this.el.nativeElement && this.initialized && this.dataTable.editingCell === this.el.nativeElement) {\n this.dataTable.updateEditingCell(this.el.nativeElement, data, this.field(), <number>this.rowIndex());\n }\n\n this.initialized = true;\n });\n });\n }\n\n onAfterViewInit() {\n if (this.isEnabled()) {\n if (!this.$unstyled()) {\n DomHandler.addClass(this.el.nativeElement, 'p-editable-column');\n }\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent) {\n if (this.isEnabled()) {\n this.dataTable.selfClick = true;\n\n if (this.dataTable.editingCell) {\n if (this.dataTable.editingCell !== this.el.nativeElement) {\n if (!this.dataTable.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 const editingRow = this.resolveEditingRow();\n const field = this.field();\n\n this.originalCellValue = editingRow && field != null ? editingRow[field] : this.data();\n this.dataTable.updateEditingCell(this.el.nativeElement, this.data(), this.field(), <number>this.rowIndex());\n\n if (!this.$unstyled()) {\n DomHandler.addClass(this.el.nativeElement, 'p-cell-editing');\n }\n\n setAttribute(this.el.nativeElement, 'data-p-cell-editing', 'true');\n\n this.dataTable.onEditInit.emit({\n field: this.field(),\n data: this.data(),\n index: <number>this.rowIndex()\n });\n setTimeout(() => {\n let focusCellSelector = this.pFocusCellSelector() || 'input, textarea, select, [tabindex]:not([tabindex=\"-1\"])';\n let focusableElement = DomHandler.findSingle(this.el.nativeElement, focusCellSelector);\n\n if (focusableElement) {\n focusableElement.focus();\n }\n }, 50);\n\n this.overlayEventListener = (e: any) => {\n if (this.el && this.el.nativeElement.contains(e.target)) {\n this.dataTable.selfClick = true;\n }\n };\n\n this.dataTable.overlaySubscription = this.dataTable.overlayService.clickObservable.subscribe(this.overlayEventListener);\n }\n\n closeEditingCell(completed: any, event: Event) {\n const eventData = {\n field: <string>this.dataTable.editingCellField,\n data: <any>this.dataTable.editingCellData,\n originalEvent: <Event>event,\n index: <number>this.dataTable.editingCellRowIndex\n };\n\n if (completed) {\n this.dataTable.onEditComplete.emit(eventData);\n } else {\n this.dataTable.onEditCancel.emit(eventData);\n\n const editingField = this.dataTable.editingCellField;\n const editingRow = this.resolveEditingRow();\n\n if (editingRow && editingField != null) {\n editingRow[editingField] = this.originalCellValue;\n }\n }\n\n this.originalCellValue = undefined;\n\n if (!this.$unstyled()) {\n DomHandler.removeClass(this.dataTable.editingCell, 'p-cell-editing');\n }\n\n setAttribute(this.el.nativeElement, 'data-p-cell-editing', 'false');\n this.dataTable.editingCell = null;\n this.dataTable.editingCellData = null;\n this.dataTable.editingCellField = null;\n this.dataTable.unbindDocumentEditListener();\n\n if (this.dataTable.overlaySubscription) {\n this.dataTable.overlaySubscription.unsubscribe();\n }\n }\n\n /**\n * Resolves the row object being edited. The `pEditableColumn` binding can either receive\n * the row object directly (with `pEditableColumnRowIndex`) or the cell value; this handles\n * both by preferring the row index and falling back to a value match.\n */\n private resolveEditingRow(): any {\n const rows = this.dataTable.value;\n const data = this.data();\n\n // Row object passed directly to pEditableColumn.\n if (data && typeof data === 'object') {\n return data;\n }\n\n const rowIndex = this.rowIndex();\n\n if (typeof rowIndex === 'number' && rows?.[rowIndex]) {\n return rows[rowIndex];\n }\n\n const field = this.field();\n\n if (field != null) {\n return rows?.find((element) => element[field] === data);\n }\n\n return undefined;\n }\n\n @HostListener('keydown.enter', ['$event'])\n onEnterKeyDown(event: Event) {\n const keyboardEvent = event as KeyboardEvent;\n\n if (this.isEnabled() && !keyboardEvent.shiftKey) {\n if (this.dataTable.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n event.preventDefault();\n }\n }\n\n @HostListener('keydown.tab', ['$event'])\n onTabKeyDown(event: Event) {\n if (this.isEnabled()) {\n if (this.dataTable.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n event.preventDefault();\n }\n }\n\n @HostListener('keydown.escape', ['$event'])\n onEscapeKeyDown(event: Event) {\n if (this.isEnabled()) {\n if (this.dataTable.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: Event) {\n if (this.isEnabled()) {\n if ((event as KeyboardEvent).shiftKey) this.moveToPreviousCell(event);\n else {\n this.moveToNextCell(event);\n }\n }\n }\n @HostListener('keydown.arrowdown', ['$event'])\n onArrowDown(event: Event) {\n if (this.isEnabled()) {\n let currentCell = this.findCell(event.target);\n\n if (currentCell) {\n let cellIndex = DomHandler.index(currentCell);\n let targetCell = this.findNextEditableColumnByIndex(currentCell, cellIndex);\n\n if (targetCell) {\n if (this.dataTable.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: Event) {\n if (this.isEnabled()) {\n let currentCell = this.findCell(event.target);\n\n if (currentCell) {\n let cellIndex = DomHandler.index(currentCell);\n let targetCell = this.findPrevEditableColumnByIndex(currentCell, cellIndex);\n\n if (targetCell) {\n if (this.dataTable.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: Event) {\n if (this.isEnabled()) {\n this.moveToPreviousCell(event);\n }\n }\n\n @HostListener('keydown.arrowright', ['$event'])\n onArrowRight(event: Event) {\n if (this.isEnabled()) {\n this.moveToNextCell(event);\n }\n }\n\n findCell(element: any) {\n if (element) {\n let cell = element;\n\n while (cell && !findSingle(cell as HTMLElement, '[data-p-cell-editing=\"true\"]')) {\n cell = cell.parentElement;\n }\n\n return cell;\n } else {\n return null;\n }\n }\n\n moveToPreviousCell(event: Event) {\n let currentCell = this.findCell(event.target);\n\n if (currentCell) {\n let targetCell = this.findPreviousEditableColumn(currentCell);\n\n if (targetCell) {\n if (this.dataTable.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: Event) {\n let currentCell = this.findCell(event.target);\n\n if (currentCell) {\n let targetCell = this.findNextEditableColumn(currentCell);\n\n if (targetCell) {\n if (this.dataTable.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.dataTable.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\n if (previousRow) {\n prevCell = previousRow.lastElementChild;\n }\n }\n\n if (prevCell) {\n if (findSingle(prevCell, '[data-p-editable-column=\"true\"]')) 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\n if (nextRow) {\n nextCell = nextRow.firstElementChild;\n }\n }\n\n if (nextCell) {\n if (findSingle(nextCell, '[data-p-editable-column=\"true\"]')) 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 && findSingle(nextCell, '[data-p-editable-column=\"true\"]')) {\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 && findSingle(prevCell, '[data-p-editable-column=\"true\"]')) {\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 onDestroy() {\n if (this.dataTable.overlaySubscription) {\n this.dataTable.overlaySubscription.unsubscribe();\n }\n }\n}\n","import { booleanAttribute, Directive, HostListener, inject, input } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { VoidListener } from 'primeng/ts-helpers';\nimport type { Table } from './table';\nimport { TABLE_INSTANCE } from './table-service';\n\n@Directive({\n selector: '[pReorderableRow]',\n standalone: true,\n hostDirectives: [Bind]\n})\nexport class ReorderableRow extends BaseComponent {\n hostName = 'Table';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n index = input<number | undefined>(undefined, { alias: 'pReorderableRow' });\n\n pReorderableRowDisabled = input(undefined, { transform: booleanAttribute });\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 public dataTable = inject<Table>(TABLE_INSTANCE);\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptm('reorderableRow'));\n }\n\n onAfterViewInit() {\n if (this.isEnabled()) {\n this.el.nativeElement.droppable = true;\n this.bindEvents();\n }\n }\n\n bindEvents() {\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 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\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.dataTable.onRowDragStart(event, <number>this.index());\n }\n\n onDragEnd(event: DragEvent) {\n this.dataTable.onRowDragEnd(event);\n this.el.nativeElement.draggable = false;\n }\n\n onDragOver(event: DragEvent) {\n this.dataTable.onRowDragOver(event, <number>this.index(), this.el.nativeElement);\n event.preventDefault();\n }\n\n onDragLeave(event: DragEvent) {\n this.dataTable.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.dataTable.rowDragging) {\n this.dataTable.onRowDrop(event, this.el.nativeElement);\n }\n\n event.preventDefault();\n }\n\n onDestroy() {\n this.unbindEvents();\n }\n}\n","import { Directive, HostListener, inject } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { EditableRow } from './editable-row';\nimport { TABLE_INSTANCE } from './table-service';\nimport type { Table } from './table';\n\n@Directive({\n selector: '[pInitEditableRow]',\n standalone: true,\n host: {\n class: 'p-datatable-row-editor-init'\n }\n})\nexport class InitEditableRow extends BaseComponent {\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n public editableRow = inject(EditableRow);\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n this.dataTable.initRowEdit(this.editableRow.data());\n event.preventDefault();\n }\n}\n","import { Directive, HostListener, inject } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { TableStyle } from './style/tablestyle';\nimport { EditableRow } from './editable-row';\nimport { TABLE_INSTANCE } from './table-service';\nimport type { Table } from './table';\n\n@Directive({\n selector: '[pSaveEditableRow]',\n standalone: true,\n providers: [TableStyle],\n host: {\n '[class]': 'cx(\"pcRowEditorSave\")'\n }\n})\nexport class SaveEditableRow extends BaseComponent {\n hostName = 'Table';\n\n _componentStyle = inject(TableStyle);\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n public editableRow = inject(EditableRow);\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n this.dataTable.saveRowEdit(this.editableRow.data(), this.editableRow.el.nativeElement);\n event.preventDefault();\n }\n}\n","import { Directive, HostListener, inject } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { EditableRow } from './editable-row';\nimport { TableStyle } from './style/tablestyle';\nimport { TABLE_INSTANCE } from './table-service';\nimport type { Table } from './table';\n\n@Directive({\n selector: '[pCancelEditableRow]',\n standalone: true,\n host: {\n '[class]': \"cx('rowEditorCancel')\"\n },\n providers: [TableStyle]\n})\nexport class CancelEditableRow extends BaseComponent {\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n public editableRow = inject(EditableRow);\n\n _componentStyle = inject(TableStyle);\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n this.dataTable.cancelRowEdit(this.editableRow.data());\n event.preventDefault();\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input, signal, ViewEncapsulation } from '@angular/core';\nimport { BadgeModule } from 'primeng/badge';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { SortAlt } from '@primeicons/angular/sort-alt';\nimport { SortAmountDown } from '@primeicons/angular/sort-amount-down';\nimport { SortAmountUpAlt } from '@primeicons/angular/sort-amount-up-alt';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TableStyle } from './style/tablestyle';\nimport { TABLE_INSTANCE } from './table-service';\nimport type { Table } from './table';\n\n@Component({\n selector: 'p-sort-icon, p-sorticon',\n standalone: true,\n imports: [NgTemplateOutlet, BadgeModule, SortAlt, SortAmountUpAlt, SortAmountDown],\n template: `\n @if (!dataTable.sortIconTemplate()) {\n @if (sortOrder() === 0) {\n <svg data-p-icon=\"sort-alt\" [class]=\"cx('sortableColumnIcon')\" />\n }\n @if (sortOrder() === 1) {\n <svg data-p-icon=\"sort-amount-up-alt\" [class]=\"cx('sortableColumnIcon')\" />\n }\n @if (sortOrder() === -1) {\n <svg data-p-icon=\"sort-amount-down\" [class]=\"cx('sortableColumnIcon')\" />\n }\n }\n @if (dataTable.sortIconTemplate()) {\n <span [class]=\"cx('sortableColumnIcon')\">\n <ng-template *ngTemplateOutlet=\"dataTable.sortIconTemplate(); context: { $implicit: sortOrder() }\"></ng-template>\n </span>\n }\n @if (isMultiSorted()) {\n <p-badge [class]=\"cx('sortableColumnBadge')\" [value]=\"getBadgeValue()\" size=\"small\" />\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [TableStyle]\n})\nexport class SortIcon extends BaseComponent {\n field = input<string | undefined>();\n\n sortOrder = signal<number>(0);\n\n _componentStyle = inject(TableStyle);\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n constructor() {\n super();\n this.dataTable.tableService.sortSource$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.updateSortState();\n });\n }\n\n onInit() {\n this.updateSortState();\n }\n\n onClick(event: Event) {\n event.preventDefault();\n }\n\n updateSortState() {\n if (this.dataTable.sortMode() === 'single') {\n this.sortOrder.set(this.dataTable.isSorted(<string>this.field()) ? this.dataTable.sortOrder : 0);\n } else if (this.dataTable.sortMode() === 'multiple') {\n let sortMeta = this.dataTable.getSortMeta(<string>this.field());\n\n this.sortOrder.set(sortMeta ? sortMeta.order : 0);\n }\n }\n\n getMultiSortMetaIndex() {\n let multiSortMeta = this.dataTable.multiSortMeta;\n let index = -1;\n\n if (multiSortMeta && this.dataTable.sortMode() === 'multiple' && this.dataTable.showInitialSortBadge() && multiSortMeta.length > 1) {\n for (let i = 0; i < multiSortMeta.length; i++) {\n let meta = multiSortMeta[i];\n\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.dataTable?.groupRowsBy() || '') && index > -1 ? index : index + 1;\n }\n\n isMultiSorted() {\n return this.dataTable.sortMode() === 'multiple' && this.getMultiSortMetaIndex() > -1;\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, contentChild, inject, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { EditableColumn } from './editable-column';\nimport { EditableRow } from './editable-row';\nimport { TABLE_INSTANCE } from './table-service';\nimport type { Table } from './table';\n\n@Component({\n selector: 'p-cell-editor, p-celleditor',\n standalone: true,\n imports: [NgTemplateOutlet],\n template: `\n @if (editing) {\n <ng-container *ngTemplateOutlet=\"_inputTemplate()\"></ng-container>\n }\n @if (!editing) {\n <ng-container *ngTemplateOutlet=\"_outputTemplate()\"></ng-container>\n }\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class CellEditor extends BaseComponent {\n _inputTemplate = contentChild<TemplateRef<any>>('input', { descendants: false });\n\n _outputTemplate = contentChild<TemplateRef<any>>('output', { descendants: false });\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n public editableColumn = inject(EditableColumn, { optional: true });\n\n public editableRow = inject(EditableRow, { optional: true });\n\n get editing() {\n return !!(\n (this.dataTable.editingCell && this.editableColumn && this.dataTable.editingCell === this.editableColumn.el.nativeElement) ||\n (this.editableRow && this.dataTable.editMode() === 'row' && this.dataTable.isRowEditing(this.editableRow.data()))\n );\n }\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, inject, input, numberAttribute, signal, viewChild, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { DomHandler } from 'primeng/dom';\nimport { RadioButton, RadioButtonClickEvent, RadioButtonModule } from 'primeng/radiobutton';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TABLE_INSTANCE } from './table-service';\nimport type { Table } from './table';\n\n@Component({\n selector: 'p-table-radio-button, p-tableradiobutton',\n standalone: true,\n imports: [RadioButtonModule, FormsModule],\n template: `<p-radiobutton\n #rb\n [ngModel]=\"checked()\"\n (ngModelChange)=\"checked.set($event)\"\n [disabled]=\"disabled()\"\n [inputId]=\"inputId()\"\n [name]=\"name()!\"\n [ariaLabel]=\"resolvedAriaLabel()\"\n [binary]=\"true\"\n [value]=\"value()\"\n (onClick)=\"onClick($event)\"\n [unstyled]=\"unstyled()\"\n /> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class TableRadioButton extends BaseComponent {\n value = input<any>();\n\n disabled = input(false, { transform: booleanAttribute });\n\n index = input(undefined, { transform: numberAttribute });\n\n inputId = input<string>();\n\n name = input<string>();\n\n ariaLabel = input<string | undefined>();\n\n inputViewChild = viewChild<RadioButton>('rb');\n\n checked = signal(false);\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n private get aria() {\n return this.dataTable.config.translation.aria;\n }\n\n resolvedAriaLabel = computed(() => {\n const checked = this.checked();\n\n return this.ariaLabel() || (this.aria ? (checked ? this.aria.selectRow : this.aria.unselectRow) : undefined);\n });\n\n constructor() {\n super();\n this.dataTable.tableService.selectionSource$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.checked.set(this.dataTable.isSelected(this.value()));\n });\n }\n\n onInit() {\n this.checked.set(this.dataTable.isSelected(this.value()));\n }\n\n onClick(event: RadioButtonClickEvent) {\n if (!this.disabled()) {\n this.dataTable.toggleRowWithRadio(\n {\n originalEvent: event.originalEvent,\n rowIndex: this.index()\n },\n this.value()\n );\n\n this.inputViewChild()?.inputViewChild().nativeElement?.focus();\n }\n\n DomHandler.clearSelection();\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, effect, inject, input, numberAttribute, signal, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { CheckboxChangeEvent, CheckboxModule } from 'primeng/checkbox';\nimport { DomHandler } from 'primeng/dom';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TABLE_INSTANCE, TableService } from './table-service';\nimport type { Table } from './table';\n\n@Component({\n selector: 'p-table-checkbox, p-tablecheckbox',\n standalone: true,\n imports: [NgTemplateOutlet, CheckboxModule, FormsModule],\n template: `\n <p-checkbox\n [ngModel]=\"checked()\"\n (ngModelChange)=\"checked.set($event)\"\n [binary]=\"true\"\n (onChange)=\"onClick($event)\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n [inputId]=\"inputId()\"\n [name]=\"name()!\"\n [ariaLabel]=\"resolvedAriaLabel()\"\n [unstyled]=\"unstyled()\"\n >\n @if (dataTable.checkboxIconTemplate(); as template) {\n <ng-template #icon>\n <ng-template *ngTemplateOutlet=\"template; context: { $implicit: checked() }\" />\n </ng-template>\n }\n </p-checkbox>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class TableCheckbox extends BaseComponent {\n value = input<any>();\n\n disabled = input(false, { transform: booleanAttribute });\n\n required = input(false, { transform: booleanAttribute });\n\n index = input(undefined, { transform: numberAttribute });\n\n inputId = input<string>();\n\n name = input<string>();\n\n ariaLabel = input<string | undefined>();\n\n checked = signal(false);\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n private get aria() {\n return this.dataTable.config.translation.aria;\n }\n\n resolvedAriaLabel = computed(() => {\n const checked = this.checked();\n\n return this.ariaLabel() || (this.aria ? (checked ? this.aria.selectRow : this.aria.unselectRow) : undefined);\n });\n\n public tableService = inject(TableService);\n\n constructor() {\n super();\n this.dataTable.tableService.selectionSource$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.checked.set(this.dataTable.isSelected(this.value()));\n });\n\n effect((onCleanup) => {\n const value = this.value();\n\n this.dataTable.setRowCheckboxDisabled(value, !!this.disabled());\n onCleanup(() => this.dataTable.setRowCheckboxDisabled(value, false));\n });\n }\n\n onInit() {\n this.checked.set(this.dataTable.isSelected(this.value()));\n }\n\n onClick({ originalEvent }: CheckboxChangeEvent) {\n if (!this.disabled()) {\n this.dataTable.toggleRowWithCheckbox(\n {\n originalEvent: originalEvent!,\n rowIndex: this.index() || 0\n },\n this.value()\n );\n }\n\n DomHandler.clearSelection();\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, inject, input, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { CheckboxChangeEvent, CheckboxModule } from 'primeng/checkbox';\nimport { DomHandler } from 'primeng/dom';\nimport { ObjectUtils } from 'primeng/utils';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TABLE_INSTANCE, TableService } from './table-service';\nimport type { Table } from './table';\n\n@Component({\n selector: 'p-table-header-checkbox, p-tableheadercheckbox',\n standalone: true,\n imports: [NgTemplateOutlet, CheckboxModule, FormsModule],\n template: `\n <p-checkbox [pt]=\"ptm('pcCheckbox')\" [(ngModel)]=\"checked\" (onChange)=\"onClick($event)\" [binary]=\"true\" [disabled]=\"isDisabled()\" [inputId]=\"inputId()\" [name]=\"name()!\" [ariaLabel]=\"resolvedAriaLabel\" [unstyled]=\"unstyled()\">\n @if (dataTable.headerCheckboxIconTemplate(); as template) {\n <ng-template #icon>\n <ng-template *ngTemplateOutlet=\"template; context: { $implicit: checked }\" />\n </ng-template>\n }\n </p-checkbox>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [Bind]\n})\nexport class TableHeaderCheckbox extends BaseComponent {\n hostName = 'Table';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n disabled = input(undefined, { transform: booleanAttribute });\n\n inputId = input<string>();\n\n name = input<string>();\n\n ariaLabel = input<string | undefined>();\n\n checked: boolean | undefined;\n\n resolvedAriaLabel: string | undefined;\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n public tableService = inject(TableService);\n\n private get aria() {\n return this.dataTable.config.translation.aria;\n }\n\n constructor() {\n super();\n this.dataTable.tableService.valueSource$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.checked = this.updateCheckedState();\n this.resolvedAriaLabel = this.ariaLabel() || (this.aria ? (this.checked ? this.aria.selectAll : this.aria.unselectAll) : undefined);\n });\n\n this.dataTable.tableService.selectionSource$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n }\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptm('headerCheckbox'));\n }\n\n onInit() {\n this.checked = this.updateCheckedState();\n }\n\n onClick(event: CheckboxChangeEvent) {\n if (!this.disabled()) {\n if (this.dataTable.value && this.dataTable.value.length > 0) {\n this.dataTable.toggleRowsWithCheckbox(event, this.checked || false);\n }\n }\n\n DomHandler.clearSelection();\n }\n\n isDisabled() {\n return this.disabled() || !this.dataTable.value || !this.dataTable.value.length;\n }\n\n updateCheckedState() {\n this.cd.markForCheck();\n\n if (this.dataTable._selectAll !== null) {\n return this.dataTable._selectAll;\n } else {\n const data = this.dataTable.selectionPageOnly() ? this.dataTable.dataToRender(this.dataTable.processedData) : this.dataTable.processedData;\n const val = this.dataTable.frozenValue() ? [...this.dataTable.frozenValue()!, ...data] : data;\n const selectableVal = val.filter((data: any, index: number) => (!this.dataTable.rowSelectable() || this.dataTable.rowSelectable()!({ data, index })) && !this.dataTable.isRowCheckboxDisabled(data));\n\n const isRowSelected = this.dataTable.compareSelectionBy() === 'equals' ? (v: any) => this.dataTable.selection().some((s: any) => this.dataTable.equals(v, s)) : (v: any) => this.dataTable.isSelected(v);\n\n return ObjectUtils.isNotEmpty(selectableVal) && ObjectUtils.isNotEmpty(this.dataTable.selection()) && selectableVal.every(isRowSelected);\n }\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, Component, computed, inject, input, numberAttribute, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { FilterMetadata } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { DatePickerModule } from 'primeng/datepicker';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { Nullable } from 'primeng/ts-helpers';\nimport type { InputNumberCurrencyDisplay, InputNumberLocaleMatcher } from 'primeng/types/inputnumber';\nimport { ColumnFilterPassThrough } from 'primeng/types/table';\nimport type { ColumnFilter } from './column-filter';\nimport { TableStyle } from './style/tablestyle';\nimport type { Table } from './table';\nimport { COLUMN_FILTER_INSTANCE, TABLE_INSTANCE } from './table-service';\n\n@Component({\n selector: 'p-column-filter-form-element, p-columnfilterformelement',\n standalone: true,\n imports: [NgTemplateOutlet, FormsModule, InputTextModule, InputNumberModule, CheckboxModule, DatePickerModule, BindModule],\n template: `\n @if (filterTemplate()) {\n <ng-container *ngTemplateOutlet=\"filterTemplate(); context: filterTemplateContext()\" />\n } @else {\n @switch (type()) {\n @case ('text') {\n <input\n type=\"text\"\n [ariaLabel]=\"ariaLabel()\"\n pInputText\n [pt]=\"ptm('pcFilterInputText')\"\n [value]=\"filterConstraint()?.value\"\n (input)=\"onModelChange($event.target.value)\"\n (keydown.enter)=\"onTextInputEnterKeyDown($event)\"\n [attr.placeholder]=\"placeholder()\"\n [unstyled]=\"unstyled()\"\n />\n }\n @case ('numeric') {\n <p-input-number\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 [pt]=\"ptm('pcFilterInputNumber')\"\n [unstyled]=\"unstyled()\"\n />\n }\n @case ('boolean') {\n <p-checkbox [pt]=\"ptm('pcFilterCheckbox')\" [indeterminate]=\"filterConstraint()?.value === null\" [binary]=\"true\" [ngModel]=\"filterConstraint()?.value\" (ngModelChange)=\"onModelChange($event)\" [unstyled]=\"unstyled()\" />\n }\n @case ('date') {\n <p-datepicker [pt]=\"ptm('pcFilterDatePicker')\" [ariaLabel]=\"ariaLabel()\" [placeholder]=\"placeholder()\" [ngModel]=\"filterConstraint()?.value\" (ngModelChange)=\"onModelChange($event)\" appendTo=\"body\" [unstyled]=\"unstyled()\" />\n }\n }\n }\n `,\n providers: [TableStyle],\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [Bind]\n})\nexport class ColumnFilterFormElement extends BaseComponent<ColumnFilterPassThrough> {\n hostName = 'Table';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(TableStyle);\n\n field = input<string>();\n\n type = input<string>();\n\n filterConstraint = input<FilterMetadata>();\n\n filterTemplate = input<Nullable<TemplateRef<any>>>();\n\n placeholder = input<string>();\n\n minFractionDigits = input(undefined, { transform: (v: unknown) => numberAttribute(v, undefined) });\n\n maxFractionDigits = input(undefined, { transform: (v: unknown) => numberAttribute(v, undefined) });\n\n prefix = input<string>();\n\n suffix = input<string>();\n\n locale = input<string>();\n\n localeMatcher = input<InputNumberLocaleMatcher>();\n\n currency = input<string>();\n\n currencyDisplay = input<InputNumberCurrencyDisplay>();\n\n useGrouping = input(true, { transform: booleanAttribute });\n\n ariaLabel = input<string>();\n\n filterOn = input<string>();\n\n public dataTable = inject<Table>(TABLE_INSTANCE);\n\n private colFilter = inject<ColumnFilter>(COLUMN_FILTER_INSTANCE);\n\n showButtons = computed(() => this.colFilter.showButtons());\n\n private onFilterCallback = ((value: any) => {\n const constraint = this.filterConstraint();\n\n if (constraint) {\n (<any>constraint).value = value;\n }\n\n this.colFilter.setHasFilter(true);\n this.dataTable._filter();\n }).bind(this);\n\n filterTemplateContext() {\n return {\n $implicit: this.filterConstraint()?.value,\n filterCallback: this.onFilterCallback,\n type: this.type(),\n field: this.field(),\n filterConstraint: this.filterConstraint(),\n placeholder: this.placeholder(),\n minFractionDigits: this.minFractionDigits(),\n maxFractionDigits: this.maxFractionDigits(),\n prefix: this.prefix(),\n suffix: this.suffix(),\n locale: this.locale(),\n localeMatcher: this.localeMatcher(),\n currency: this.currency(),\n currencyDisplay: this.currencyDisplay(),\n useGrouping: this.useGrouping(),\n showButtons: this.showButtons()\n };\n }\n\n constructor() {\n super();\n this.dataTable.tableService.valueSource$.pipe(takeUntilDestroyed()).subscribe(() => this.cd.markForCheck());\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptm('columnFilterFormElement'));\n }\n\n onModelChange(value: any) {\n const constraint = this.filterConstraint();\n\n if (constraint) {\n (<any>constraint).value = value;\n }\n\n const applyButtonVisible = this.showButtons() && this.colFilter.showApplyButton();\n\n if (this.type() === 'boolean' || (this.type() === 'date' && !applyButtonVisible) || ((this.type() === 'text' || this.type() === 'numeric') && this.filterOn() === 'input') || this.dataTable.isFilterBlank(value)) {\n this.colFilter.setHasFilter(true);\n this.dataTable._filter();\n }\n }\n\n onTextInputEnterKeyDown(event: Event) {\n this.colFilter.setHasFilter(true);\n this.dataTable._filter();\n event.preventDefault();\n }\n\n onNumericInputKeyDown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n this.dataTable._filter();\n event.preventDefault();\n }\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, Component, computed, contentChild, ElementRef, inject, input, model, numberAttribute, output, signal, TemplateRef, viewChild, ViewEncapsulation } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { Filter } from '@primeicons/angular/filter';\nimport { FilterFill } from '@primeicons/angular/filter-fill';\nimport { Plus } from '@primeicons/angular/plus';\nimport { Trash } from '@primeicons/angular/trash';\nimport { MotionEvent, MotionOptions } from '@primeuix/motion';\nimport { absolutePosition, addStyle, appendChild, find, findSingle } from '@primeuix/utils';\nimport { FilterMatchMode, FilterMetadata, FilterOperator, OverlayService, SelectItem, TranslationKeys } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { ButtonModule } from 'primeng/button';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { DatePickerModule } from 'primeng/datepicker';\nimport { ConnectedOverlayScrollHandler, DomHandler } from 'primeng/dom';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport type { InputNumberCurrencyDisplay, InputNumberLocaleMatcher } from 'primeng/types/inputnumber';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { MotionModule } from 'primeng/motion';\nimport { SelectModule } from 'primeng/select';\nimport { TableFilterButtonPropsOptions, TableFilterButtonResolvedPropsOptions } from 'primeng/types/table';\nimport { UniqueComponentId, ZIndexUtils } from 'primeng/utils';\nimport { Subscription } from 'rxjs';\nimport { ColumnFilterFormElement } from './column-filter-form-element';\nimport { TableStyle } from './style/tablestyle';\nimport type { Table } from './table';\nimport { COLUMN_FILTER_INSTANCE, TABLE_INSTANCE } from './table-service';\n\n/**\n * Column Filter Component.\n * @group Components\n */\n@Component({\n selector: 'p-column-filter, p-columnfilter',\n standalone: true,\n imports: [NgTemplateOutlet, FormsModule, ButtonModule, SelectModule, InputTextModule, InputNumberModule, CheckboxModule, DatePickerModule, BindModule, MotionModule, Filter, FilterFill, Trash, Plus, ColumnFilterFormElement],\n template: `\n <div [class]=\"cx('filter')\">\n @if (display() === 'row') {\n <p-column-filter-form-element\n [class]=\"cx('filterElementContainer')\"\n [type]=\"type()\"\n [field]=\"field()\"\n [ariaLabel]=\"ariaLabel()\"\n [filterConstraint]=\"rowFilterConstraint\"\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 [filterOn]=\"filterOn()\"\n [pt]=\"pt()\"\n [unstyled]=\"unstyled()\"\n />\n }\n @if (showMenuButton) {\n <button\n #menuButton\n type=\"button\"\n iconOnly\n [pButton]=\"computedFilterButtonProps().filter\"\n [class]=\"cx('pcColumnFilterButton')\"\n [attr.aria-haspopup]=\"true\"\n [attr.aria-label]=\"filterMenuButtonAriaLabel\"\n [attr.aria-controls]=\"overlayVisible ? overlayId : null\"\n [attr.aria-expanded]=\"overlayVisible ?? false\"\n [pButtonPT]=\"ptm('pcColumnFilterButton')\"\n [pButtonUnstyled]=\"unstyled()\"\n (click)=\"toggleMenu($event)\"\n (keydown)=\"onToggleButtonKeyDown($event)\"\n >\n @if (filterIconTemplate()) {\n <span [pBind]=\"ptm('pcColumnFilterButton')['icon']\" [attr.data-pc-section]=\"'columnfilterbuttonicon'\">\n <ng-template *ngTemplateOutlet=\"filterIconTemplate(); context: { hasFilter: hasFilter }\" />\n </span>\n } @else if (hasFilter) {\n <svg data-p-icon=\"filter-fill\" [pBind]=\"ptm('pcColumnFilterButton')['icon']\" />\n } @else {\n <svg data-p-icon=\"filter\" [pBind]=\"ptm('pcColumnFilterButton')['icon']\" />\n }\n </button>\n }\n @if (renderOverlay()) {\n <div\n [pMotion]=\"showMenu() && overlayVisible\"\n [pMotionAppear]=\"true\"\n pMotionName=\"p-anchored-overlay\"\n (pMotionOnBeforeEnter)=\"onOverlayBeforeEnter($event)\"\n (pMotionOnAfterLeave)=\"onOverlayAnimationAfterLeave($event)\"\n [pMotionOptions]=\"computedMotionOptions()\"\n [class]=\"cx('filterOverlay')\"\n [pBind]=\"ptm('filterOverlay')\"\n [id]=\"overlayId\"\n [attr.aria-modal]=\"true\"\n role=\"dialog\"\n (click)=\"onContentClick()\"\n (keydown.escape)=\"onEscape()\"\n >\n <ng-container *ngTemplateOutlet=\"headerTemplate(); context: { $implicit: field() }\" />\n @if (display() === 'row') {\n <ul [class]=\"cx('filterConstraintList')\" [pBind]=\"ptm('filterConstraintList')\">\n @for (matchMode of matchModes; track matchMode.value; let i = $index) {\n <li\n (click)=\"onRowMatchModeChange(matchMode.value)\"\n (keydown)=\"onRowMatchModeKeyDown($event)\"\n (keydown.enter)=\"onRowMatchModeChange(matchMode.value)\"\n [class]=\"cx('filterConstraint')\"\n [pBind]=\"ptm('filterConstraint', ptmFilterConstraintOptions(matchMode))\"\n [class.p-datatable-filter-constraint-selected]=\"isRowMatchModeSelected(matchMode.value)\"\n [attr.tabindex]=\"i === 0 ? '0' : null\"\n >\n {{ matchMode.label }}\n </li>\n }\n <li [class]=\"cx('filterConstraintSeparator')\" [pBind]=\"ptm('filterConstraintSeparator')\"></li>\n <li [class]=\"cx('filterConstraint')\" [pBind]=\"ptm('emtpyFilterLabel')\" (click)=\"onRowClearItemClick()\" (keydown)=\"onRowMatchModeKeyDown($event)\" (keydown.enter)=\"onRowClearItemClick()\">\n {{ noFilterLabel }}\n </li>\n </ul>\n } @else {\n @if (isShowOperator) {\n <div [class]=\"cx('filterOperator')\" [pBind]=\"ptm('filterOperator')\">\n <p-select [options]=\"operatorOptions\" [pt]=\"ptm('pcFilterOperatorDropdown')\" [ngModel]=\"operator()\" (ngModelChange)=\"onOperatorChange($event)\" [class]=\"cx('pcFilterOperatorDropdown')\" [unstyled]=\"unstyled()\" />\n </div>\n }\n <div [class]=\"cx('filterRuleList')\" [pBind]=\"ptm('filterRuleList')\">\n @for (fieldConstraint of fieldConstraints; track $index; let i = $index) {\n <div [class]=\"cx('filterRule')\" [pBind]=\"ptm('filterRule')\">\n @if (showMatchModes() && matchModes) {\n <p-select\n [options]=\"matchModes\"\n [ngModel]=\"fieldConstraint.matchMode\"\n (ngModelChange)=\"onMenuMatchModeChange($event, fieldConstraint)\"\n [class]=\"cx('pcFilterConstraintDropdown')\"\n [pt]=\"ptm('pcFilterConstraintDropdown')\"\n [unstyled]=\"unstyled()\"\n />\n }\n <p-column-filter-form-element\n [type]=\"type()\"\n [field]=\"field()\"\n [filterConstraint]=\"fieldConstraint\"\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 [filterOn]=\"filterOn()\"\n [pt]=\"pt()\"\n [unstyled]=\"unstyled()\"\n />\n <div>\n @if (showRemoveIcon) {\n <button\n type=\"button\"\n text\n severity=\"danger\"\n size=\"small\"\n [pButton]=\"computedFilterButtonProps().popover.removeRule\"\n [class]=\"cx('pcFilterRemoveRuleButton')\"\n [attr.aria-label]=\"removeRuleButtonLabel\"\n [pButtonPT]=\"ptm('pcFilterRemoveRuleButton')\"\n [pButtonUnstyled]=\"unstyled()\"\n (click)=\"removeConstraint(fieldConstraint)\"\n >\n @if (!removeRuleIconTemplate()) {\n <svg data-p-icon=\"trash\" [pBind]=\"ptm('pcFilterRemoveRuleButton')['icon']\" />\n }\n <ng-template *ngTemplateOutlet=\"removeRuleIconTemplate()\" />\n {{ removeRuleButtonLabel }}\n </button>\n }\n </div>\n </div>\n }\n </div>\n @if (isShowAddConstraint) {\n <button\n type=\"button\"\n text\n size=\"small\"\n [pButton]=\"computedFilterButtonProps().popover.addRule\"\n [class]=\"cx('pcFilterAddRuleButton')\"\n [attr.aria-label]=\"addRuleButtonLabel\"\n [pButtonPT]=\"ptm('pcAddRuleButtonLabel')\"\n [pButtonUnstyled]=\"unstyled()\"\n (click)=\"addConstraint()\"\n >\n @if (!addRuleIconTemplate()) {\n <svg data-p-icon=\"plus\" [pBind]=\"ptm('pcAddRuleButtonLabel')['icon']\" />\n }\n <ng-template *ngTemplateOutlet=\"addRuleIconTemplate()\" />\n {{ addRuleButtonLabel }}\n </button>\n }\n <div [class]=\"cx('filterButtonbar')\" [pBind]=\"ptm('filterButtonBar')\">\n @if (showClearButton()) {\n <button\n #clearBtn\n type=\"button\"\n [pButton]=\"computedFilterButtonProps().popover.clear\"\n [attr.aria-label]=\"clearButtonLabel\"\n [pButtonPT]=\"ptm('pcFilterClearButton')\"\n [pButtonUnstyled]=\"unstyled()\"\n (click)=\"clearFilter()\"\n >\n {{ clearButtonLabel }}\n </button>\n }\n @if (showApplyButton()) {\n <button\n type=\"button\"\n size=\"small\"\n [pButton]=\"computedFilterButtonProps().popover.apply\"\n [attr.aria-label]=\"applyButtonLabel\"\n [pButtonPT]=\"ptm('pcFilterApplyButton')\"\n [pButtonUnstyled]=\"unstyled()\"\n (click)=\"applyFilter()\"\n >\n {{ applyButtonLabel }}\n </button>\n }\n </div>\n }\n <ng-container *ngTemplateOutlet=\"footerTemplate(); context: { $implicit: field() }\" />\n </div>\n }\n </div>\n `,\n providers: [TableStyle, { provide: COLUMN_FILTER_INSTANCE, useExisting: ColumnFilter }],\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [Bind]\n})\nexport class ColumnFilter extends BaseComponent {\n hostName = 'Table';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(TableStyle);\n /**\n * Property represented by the column.\n * @group Props\n */\n field = input<string>();\n /**\n * Type of the input.\n * @group Props\n */\n type = input('text');\n /**\n * Filter display.\n * @group Props\n */\n display = input('row');\n /**\n * Decides whether to display filter menu popup.\n * @group Props\n */\n showMenu = input(true, { transform: booleanAttribute });\n /**\n * Filter match mode.\n * @group Props\n */\n matchMode = input<string>();\n /**\n * Filter operator.\n * @defaultValue 'AND'\n * @group Props\n */\n operator = model(FilterOperator.AND);\n /**\n * Decides whether to display filter operator.\n * @group Props\n */\n showOperator = input(true, { transform: booleanAttribute });\n /**\n * Decides whether to display clear filter button when display is menu.\n * @defaultValue true\n * @group Props\n */\n showClearButton = input(true, { transform: booleanAttribute });\n /**\n * Decides whether to display apply filter button when display is menu.\n * @group Props\n */\n showApplyButton = input(true, { transform: booleanAttribute });\n /**\n * Decides whether to display filter match modes when display is menu.\n * @group Props\n */\n showMatchModes = input(true, { transform: booleanAttribute });\n /**\n * Decides whether to display add filter button when display is menu.\n * @group Props\n */\n showAddButton = input(true, { transform: booleanAttribute });\n /**\n * Decides whether to close popup on clear button click.\n * @group Props\n */\n hideOnClear = input(true, { transform: booleanAttribute });\n /**\n * Filter placeholder.\n * @group Props\n */\n placeholder = input<string>();\n /**\n * Filter match mode options.\n * @group Props\n */\n matchModeOptions = input<SelectItem[]>();\n /**\n * Defines maximum amount of constraints.\n * @group Props\n */\n maxConstraints = input(2, { transform: numberAttribute });\n /**\n * Defines minimum fraction of digits.\n * @group Props\n */\n minFractionDigits = input(undefined, { transform: (v: unknown) => numberAttribute(v, undefined) });\n /**\n * Defines maximum fraction of digits.\n * @group Props\n */\n maxFractionDigits = input(undefined, { transform: (v: unknown) => numberAttribute(v, undefined) });\n /**\n * Defines prefix of the filter.\n * @group Props\n */\n prefix = input<string>();\n /**\n * Defines suffix of the filter.\n * @group Props\n */\n suffix = input<string>();\n /**\n * Defines filter locale.\n * @group Props\n */\n locale = input<string>();\n /**\n * Defines filter locale matcher.\n * @group Props\n */\n localeMatcher = input<InputNumberLocaleMatcher>();\n /**\n * Enables currency input.\n * @group Props\n */\n currency = input<string>();\n /**\n * Defines the display of the currency input.\n * @group Props\n */\n currencyDisplay = input<InputNumberCurrencyDisplay>();\n /**\n * Default trigger to run filtering on built-in text and numeric filters, valid values are 'enter' and 'input'.\n * @defaultValue enter\n * @group Props\n */\n filterOn = input<string | undefined>('enter');\n /**\n * Defines if filter grouping will be enabled.\n * @group Props\n */\n useGrouping = input(true, { transform: booleanAttribute });\n /**\n * Defines the visibility of buttons.\n * @group Props\n */\n showButtons = input(true, { transform: booleanAttribute });\n /**\n * Defines the aria-label of the form element.\n * @group Props\n */\n ariaLabel = input<string>();\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 @group Props\n */\n filterButtonProps = input<TableFilterButtonPropsOptions>({});\n /**\n * Filter button props merged over the defaults per button, so partial objects\n * only override the given fields.\n */\n computedFilterButtonProps = computed<TableFilterButtonResolvedPropsOptions>(() => {\n const props = this.filterButtonProps() ?? {};\n\n return {\n filter: { severity: 'secondary', variant: 'text', rounded: true, ...props.filter },\n inline: {\n clear: { severity: 'secondary', variant: 'text', rounded: true, ...props.inline?.clear }\n },\n popover: {\n addRule: { severity: 'info', variant: 'text', size: 'small', ...props.popover?.addRule },\n removeRule: { severity: 'danger', variant: 'text', size: 'small', ...props.popover?.removeRule },\n apply: { size: 'small', ...props.popover?.apply },\n clear: { variant: props.popover?.clear?.outlined === false ? undefined : 'outlined', size: 'small', ...props.popover?.clear }\n }\n };\n });\n motionOptions = input<MotionOptions | undefined>(undefined);\n\n computedMotionOptions = computed<MotionOptions>(() => ({\n ...this.ptm('motion'),\n ...this.motionOptions()\n }));\n /**\n * Callback to invoke on overlay is shown.\n * @param {AnimationEvent} originalEvent - animation event.\n * @group Emits\n */\n onShow = output<{ originalEvent: AnimationEvent }>();\n /**\n * Callback to invoke on overlay is hidden.\n * @param {AnimationEvent} originalEvent - animation event.\n * @group Emits\n */\n onHide = output<{ originalEvent: AnimationEvent }>();\n\n icon = viewChild('menuButton', { read: ElementRef });\n\n clearButtonViewChild = viewChild<ElementRef>('clearBtn');\n\n overlaySubscription: Subscription | undefined;\n\n renderOverlay = signal<boolean>(false);\n\n /**\n * Custom header template.\n * @group Templates\n */\n headerTemplate = contentChild<TemplateRef<any>>('header', { descendants: false });\n\n /**\n * Custom filter template.\n * @group Templates\n */\n filterTemplate = contentChild<TemplateRef<any>>('filter', { descendants: false });\n\n /**\n * Custom footer template.\n * @group Templates\n */\n footerTemplate = contentChild<TemplateRef<any>>('footer', { descendants: false });\n /**\n * Custom filter icon template.\n * @group Templates\n */\n filterIconTemplate = contentChild<TemplateRef<any>>('filtericon', { descendants: false });\n\n /**\n * Custom remove rule button icon template.\n * @group Templates\n */\n removeRuleIconTemplate = contentChild<TemplateRef<any>>('removeruleicon', { descendants: false });\n\n /**\n * Custom add rule button icon template.\n * @group Templates\n */\n addRuleIconTemplate = contentChild<TemplateRef<any>>('addruleicon', { descendants: false });\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: any;\n\n documentResizeListener: any;\n\n matchModes: SelectItem[] | undefined;\n\n selfClick: boolean | undefined;\n\n overlayEventListener: any;\n\n overlayId: any;\n\n filterApplied: boolean = false;\n\n get fieldConstraints(): FilterMetadata[] | undefined | null {\n return this.dataTable.filters ? <FilterMetadata[]>this.dataTable.filters[<string>this.field()] : null;\n }\n\n get rowFilterConstraint(): FilterMetadata | undefined {\n return <FilterMetadata | undefined>this.dataTable.filters[<string>this.field()];\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.translate(TranslationKeys.SHOW_FILTER_MENU);\n }\n\n get applyButtonLabel(): string {\n return this.translate(TranslationKeys.APPLY);\n }\n\n get clearButtonLabel(): string {\n return this.translate(TranslationKeys.CLEAR);\n }\n\n get addRuleButtonLabel(): string {\n return this.translate(TranslationKeys.ADD_RULE);\n }\n\n get removeRuleButtonLabel(): string {\n return this.translate(TranslationKeys.REMOVE_RULE);\n }\n\n get noFilterLabel(): string {\n return this.translate(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 dataTable = inject<Table>(TABLE_INSTANCE);\n\n overlayService = inject(OverlayService);\n\n constructor() {\n super();\n this.config.translationObserver.pipe(takeUntilDestroyed()).subscribe(() => {\n this.generateMatchModeOptions();\n this.generateOperatorOptions();\n });\n this.dataTable.tableService.valueSource$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.setHasFilter(true);\n this.cd.markForCheck();\n });\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptm('columnFilter'));\n }\n\n ptmFilterConstraintOptions(matchMode: any) {\n return {\n context: {\n highlighted: matchMode && this.isRowMatchModeSelected(matchMode.value)\n }\n };\n }\n\n onInit() {\n this.overlayId = UniqueComponentId();\n\n if (!this.dataTable.filters[<string>this.field()]) {\n this.initFieldFilterConstraint();\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 label: this.translate(key),\n value: key\n }));\n }\n\n generateOperatorOptions() {\n this.operatorOptions = [\n {\n label: this.translate(TranslationKeys.MATCH_ALL),\n value: FilterOperator.AND\n },\n {\n label: this.translate(TranslationKeys.MATCH_ANY),\n value: FilterOperator.OR\n }\n ];\n }\n\n initFieldFilterConstraint() {\n let defaultMatchMode = this.getDefaultMatchMode();\n\n this.dataTable.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.dataTable._filter();\n }\n }\n\n onRowMatchModeChange(matchMode: string) {\n const fieldFilter = <FilterMetadata>this.dataTable.filters[<string>this.field()];\n\n fieldFilter.matchMode = matchMode;\n\n if (!this.dataTable.isFilterBlank(fieldFilter.value)) {\n this.dataTable._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 const nextItem = this.findNextItem(item);\n\n if (nextItem) {\n item.removeAttribute('tabindex');\n nextItem.tabIndex = '0';\n nextItem.focus();\n }\n\n event.preventDefault();\n break;\n }\n\n case 'ArrowUp': {\n const prevItem = this.findPrevItem(item);\n\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\n onRowClearItemClick() {\n this.clearFilter();\n this.hide();\n }\n\n isRowMatchModeSelected(matchMode: string) {\n return (<FilterMetadata>this.dataTable.filters[<string>this.field()]).matchMode === matchMode;\n }\n\n addConstraint() {\n (<FilterMetadata[]>this.dataTable.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.dataTable.filters[<string>this.field()] = (<FilterMetadata[]>this.dataTable.filters[<string>this.field()]).filter((meta) => meta !== filterMeta);\n\n if (!this.showApplyButton()) {\n this.dataTable._filter();\n }\n\n DomHandler.focus(this.clearButtonViewChild()?.nativeElement);\n }\n\n onOperatorChange(value: any) {\n (<FilterMetadata[]>this.dataTable.filters[<string>this.field()]).forEach((filterMeta) => {\n filterMeta.operator = value;\n this.operator.set(value);\n });\n\n if (!this.showApplyButton()) {\n this.dataTable._filter();\n }\n }\n\n toggleMenu(event: Event) {\n this.overlayVisible = !this.overlayVisible;\n\n if (this.overlayVisible) {\n this.renderOverlay.set(true);\n }\n\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\n if (focusable) {\n focusable[0].focus();\n }\n\n event.preventDefault();\n } else if (event.altKey) {\n this.overlayVisible = true;\n event.preventDefault();\n }\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 find(nextItem, '[data-pc-section=\"filterconstraintseparator\"]') ? 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 find(prevItem, '[data-pc-section=\"filterconstraintseparator\"]') ? this.findPrevItem(prevItem) : prevItem;\n else return item.parentElement?.lastElementChild;\n }\n\n onContentClick() {\n this.selfClick = true;\n }\n\n onOverlayBeforeEnter(event: MotionEvent) {\n this.overlay = event.element as HTMLElement;\n\n if (this.overlay && this.overlay.parentElement !== this.document.body) {\n const buttonEl = <HTMLButtonElement>findSingle(this.el.nativeElement, '[data-pc-name=\"pccolumnfilterbutton\"]');\n\n appendChild(this.document.body, this.overlay);\n addStyle(this.overlay!, { position: 'absolute', top: '0' });\n absolutePosition(this.overlay, buttonEl);\n ZIndexUtils.set('overlay', this.overlay, this.config.zIndex.overlay);\n }\n\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\n this.onShow.emit({ originalEvent: event as any });\n this.focusOnFirstElement();\n }\n\n onOverlayAnimationAfterLeave(event: MotionEvent) {\n const overlay = this.overlay;\n\n this.restoreOverlayAppend();\n this.onOverlayHide();\n this.renderOverlay.set(false);\n\n if (this.overlaySubscription) {\n this.overlaySubscription.unsubscribe();\n }\n\n ZIndexUtils.clear(overlay);\n\n this.onHide.emit({ originalEvent: event as any });\n }\n\n restoreOverlayAppend() {\n if (this.overlay) {\n this.el.nativeElement.appendChild(this.overlay!);\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.dataTable.filters ? (<FilterMetadata[]>this.dataTable.filters[<string>this.field()])[0].operator : this.operator();\n }\n\n hasRowFilter() {\n return this.dataTable.filters[<string>this.field()] && !this.dataTable.isFilterBlank((<FilterMetadata>this.dataTable.filters[<string>this.field()]).value);\n }\n\n setHasFilter(newValue: boolean): void {\n let fieldFilter = this.dataTable.filters[<string>this.field()];\n\n if (fieldFilter && newValue) {\n if (Array.isArray(fieldFilter)) {\n this.filterApplied = !this.dataTable.isFilterBlank((<FilterMetadata[]>fieldFilter)[0].value);\n } else {\n this.filterApplied = !this.dataTable.isFilterBlank(fieldFilter.value);\n }\n } else {\n this.filterApplied = false;\n }\n }\n\n get hasFilter(): boolean {\n if (!Array.isArray(this.fieldConstraints) && (<any>this.fieldConstraints)?.applyFilter) {\n delete (<any>this.fieldConstraints).applyFilter;\n this.setHasFilter(true);\n } else if (Array.isArray(this.fieldConstraints) && (<any>this.fieldConstraints[0])?.applyFilter) {\n delete (<any>this.fieldConstraints[0]).applyFilter;\n this.setHasFilter(true);\n }\n\n if (!this.filterApplied) {\n return false;\n }\n\n this.setHasFilter(true);\n\n return this.filterApplied;\n }\n\n isOutsideClicked(event: any): boolean {\n return !(\n findSingle((this.overlay as HTMLElement).nextElementSibling!, '[data-pc-section=\"filteroverlay\"]') ||\n findSingle((this.overlay as HTMLElement).nextElementSibling!, '[data-pc-name=\"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 findSingle(event.target, '[data-pc-name=\"pcaddrulebuttonlabel\"]') ||\n findSingle(event.target.parentElement, '[data-pc-name=\"pcaddrulebuttonlabel\"]') ||\n findSingle(event.target, '[data-pc-name=\"pcfilterremoverulebutton\"]') ||\n findSingle(event.target.parentElement, '[data-pc-name=\"pcfilterremoverulebutton\"]')\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('[data-pc-name=\"pccolumnfilterbutton\"]');\n\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', () => {\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\n if (this.overlay) {\n ZIndexUtils.revertZIndex(ZIndexUtils.get(this.overlay));\n }\n\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.setHasFilter(false);\n this.dataTable._filter();\n if (this.hideOnClear()) this.hide();\n }\n\n applyFilter() {\n this.setHasFilter(true);\n this.dataTable._filter();\n this.hide();\n }\n\n onDestroy() {\n if (this.overlay) {\n this.restoreOverlayAppend();\n ZIndexUtils.clear(this.overlay);\n this.onOverlayHide();\n }\n\n if (this.overlaySubscription) {\n this.overlaySubscription.unsubscribe();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SharedModule } from 'primeng/api';\nimport { ScrollerModule } from 'primeng/scroller';\nimport { CancelEditableRow } from './cancel-editable-row';\nimport { CellEditor } from './cell-editor';\nimport { ColumnFilter } from './column-filter';\nimport { ColumnFilterFormElement } from './column-filter-form-element';\nimport { ContextMenuRow } from './context-menu-row';\nimport { EditableColumn } from './editable-column';\nimport { EditableRow } from './editable-row';\nimport { FrozenColumn } from './frozen-column';\nimport { InitEditableRow } from './init-editable-row';\nimport { ReorderableColumn } from './reorderable-column';\nimport { ReorderableRow } from './reorderable-row';\nimport { ReorderableRowHandle } from './reorderable-row-handle';\nimport { ResizableColumn } from './resizable-column';\nimport { RowGroupHeader } from './row-group-header';\nimport { RowToggler } from './row-toggler';\nimport { SaveEditableRow } from './save-editable-row';\nimport { SelectableRow } from './selectable-row';\nimport { SelectableRowDblClick } from './selectable-row-dbl-click';\nimport { SortIcon } from './sort-icon';\nimport { SortableColumn } from './sortable-column';\nimport { Table } from './table';\nimport { TableBody } from './table-body';\nimport { TableCheckbox } from './table-checkbox';\nimport { TableHeaderCheckbox } from './table-header-checkbox';\nimport { TableRadioButton } from './table-radio-button';\n\n@NgModule({\n imports: [\n Table,\n TableBody,\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 ],\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 providers: []\n})\nexport class TableModule {}\n"],"mappings":"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CA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EAAuB;EAAA,SAAA;GAGvB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EAAc;CAAA,CAAA;CAIT,OAAA,OAAA,GAAA,oBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAW,SAAA;GAxDhB;GAYA;GACA;GACA;GACA;GAQA;GACA;GAIA;GAwBA;EAAc;CAAA,CAAA;;AAIT,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAW,YAAA,CAAA;EA1DvB,MAAA;EAAS,MAAA,CAAA;GACN,SAAS;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACH;GACD,SAAS;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACH;GACD,WAAW,CAAA;EACd,CAAA"}