primeng 11.4.4 → 12.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1281) hide show
  1. package/README.md +1 -1
  2. package/accordion/accordion.d.ts +10 -0
  3. package/accordion/package.json +1 -2
  4. package/accordion/primeng-accordion.d.ts +1 -0
  5. package/api/confirmationservice.d.ts +3 -0
  6. package/api/contextmenuservice.d.ts +3 -0
  7. package/api/filterservice.d.ts +3 -0
  8. package/api/menuitem.d.ts +2 -0
  9. package/api/message.d.ts +1 -1
  10. package/api/messageservice.d.ts +3 -0
  11. package/api/package.json +1 -2
  12. package/api/primeng-api.d.ts +1 -0
  13. package/api/primengconfig.d.ts +3 -0
  14. package/api/shared.d.ts +11 -0
  15. package/api/treedragdropservice.d.ts +3 -0
  16. package/autocomplete/autocomplete.d.ts +12 -0
  17. package/autocomplete/package.json +1 -2
  18. package/autocomplete/primeng-autocomplete.d.ts +1 -0
  19. package/avatar/avatar.d.ts +7 -0
  20. package/avatar/package.json +1 -2
  21. package/avatar/primeng-avatar.d.ts +1 -0
  22. package/avatargroup/avatargroup.d.ts +7 -0
  23. package/avatargroup/package.json +1 -2
  24. package/avatargroup/primeng-avatargroup.d.ts +1 -0
  25. package/badge/badge.d.ts +10 -0
  26. package/badge/package.json +1 -2
  27. package/badge/primeng-badge.d.ts +1 -0
  28. package/blockui/blockui.d.ts +7 -0
  29. package/blockui/package.json +1 -2
  30. package/blockui/primeng-blockui.d.ts +1 -0
  31. package/breadcrumb/breadcrumb.d.ts +8 -0
  32. package/breadcrumb/package.json +1 -2
  33. package/breadcrumb/primeng-breadcrumb.d.ts +1 -0
  34. package/bundles/primeng-accordion.umd.js +130 -71
  35. package/bundles/primeng-accordion.umd.js.map +1 -1
  36. package/bundles/primeng-api.umd.js +98 -52
  37. package/bundles/primeng-api.umd.js.map +1 -1
  38. package/bundles/primeng-autocomplete.umd.js +223 -118
  39. package/bundles/primeng-autocomplete.umd.js.map +1 -1
  40. package/bundles/primeng-avatar.umd.js +61 -26
  41. package/bundles/primeng-avatar.umd.js.map +1 -1
  42. package/bundles/primeng-avatargroup.umd.js +51 -21
  43. package/bundles/primeng-avatargroup.umd.js.map +1 -1
  44. package/bundles/primeng-badge.umd.js +72 -38
  45. package/bundles/primeng-badge.umd.js.map +1 -1
  46. package/bundles/primeng-blockui.umd.js +63 -30
  47. package/bundles/primeng-blockui.umd.js.map +1 -1
  48. package/bundles/primeng-breadcrumb.umd.js +59 -25
  49. package/bundles/primeng-breadcrumb.umd.js.map +1 -1
  50. package/bundles/primeng-button.umd.js +100 -51
  51. package/bundles/primeng-button.umd.js.map +1 -1
  52. package/bundles/primeng-calendar.umd.js +277 -150
  53. package/bundles/primeng-calendar.umd.js.map +1 -1
  54. package/bundles/primeng-captcha.umd.js +65 -34
  55. package/bundles/primeng-captcha.umd.js.map +1 -1
  56. package/bundles/primeng-card.umd.js +64 -29
  57. package/bundles/primeng-card.umd.js.map +1 -1
  58. package/bundles/primeng-carousel.umd.js +102 -51
  59. package/bundles/primeng-carousel.umd.js.map +1 -1
  60. package/bundles/primeng-cascadeselect.umd.js +176 -100
  61. package/bundles/primeng-cascadeselect.umd.js.map +1 -1
  62. package/bundles/primeng-chart.umd.js +41 -30
  63. package/bundles/primeng-chart.umd.js.map +1 -1
  64. package/bundles/primeng-checkbox.umd.js +88 -44
  65. package/bundles/primeng-checkbox.umd.js.map +1 -1
  66. package/bundles/primeng-chip.umd.js +64 -28
  67. package/bundles/primeng-chip.umd.js.map +1 -1
  68. package/bundles/primeng-chips.umd.js +106 -58
  69. package/bundles/primeng-chips.umd.js.map +1 -1
  70. package/bundles/primeng-codehighlighter.umd.js +42 -16
  71. package/bundles/primeng-codehighlighter.umd.js.map +1 -1
  72. package/bundles/primeng-colorpicker.umd.js +132 -69
  73. package/bundles/primeng-colorpicker.umd.js.map +1 -1
  74. package/bundles/primeng-confirmdialog.umd.js +151 -81
  75. package/bundles/primeng-confirmdialog.umd.js.map +1 -1
  76. package/bundles/primeng-confirmpopup.umd.js +96 -52
  77. package/bundles/primeng-confirmpopup.umd.js.map +1 -1
  78. package/bundles/primeng-contextmenu.umd.js +108 -60
  79. package/bundles/primeng-contextmenu.umd.js.map +1 -1
  80. package/bundles/primeng-dataview.umd.js +141 -79
  81. package/bundles/primeng-dataview.umd.js.map +1 -1
  82. package/bundles/primeng-defer.umd.js +48 -24
  83. package/bundles/primeng-defer.umd.js.map +1 -1
  84. package/bundles/primeng-dialog.umd.js +176 -89
  85. package/bundles/primeng-dialog.umd.js.map +1 -1
  86. package/bundles/primeng-divider.umd.js +57 -24
  87. package/bundles/primeng-divider.umd.js.map +1 -1
  88. package/bundles/primeng-dragdrop.umd.js +99 -54
  89. package/bundles/primeng-dragdrop.umd.js.map +1 -1
  90. package/bundles/primeng-dropdown.umd.js +255 -134
  91. package/bundles/primeng-dropdown.umd.js.map +1 -1
  92. package/bundles/primeng-dynamicdialog.umd.js +84 -55
  93. package/bundles/primeng-dynamicdialog.umd.js.map +1 -1
  94. package/bundles/primeng-editor.umd.js +61 -41
  95. package/bundles/primeng-editor.umd.js.map +1 -1
  96. package/bundles/primeng-fieldset.umd.js +97 -48
  97. package/bundles/primeng-fieldset.umd.js.map +1 -1
  98. package/bundles/primeng-fileupload.umd.js +165 -90
  99. package/bundles/primeng-fileupload.umd.js.map +1 -1
  100. package/bundles/primeng-focustrap.umd.js +50 -20
  101. package/bundles/primeng-focustrap.umd.js.map +1 -1
  102. package/bundles/primeng-fullcalendar.umd.js +54 -25
  103. package/bundles/primeng-fullcalendar.umd.js.map +1 -1
  104. package/bundles/primeng-galleria.umd.js +229 -140
  105. package/bundles/primeng-galleria.umd.js.map +1 -1
  106. package/bundles/primeng-gmap.umd.js +81 -46
  107. package/bundles/primeng-gmap.umd.js.map +1 -1
  108. package/bundles/primeng-inplace.umd.js +89 -46
  109. package/bundles/primeng-inplace.umd.js.map +1 -1
  110. package/bundles/primeng-inputmask.umd.js +115 -61
  111. package/bundles/primeng-inputmask.umd.js.map +1 -1
  112. package/bundles/primeng-inputnumber.umd.js +143 -75
  113. package/bundles/primeng-inputnumber.umd.js.map +1 -1
  114. package/bundles/primeng-inputswitch.umd.js +68 -34
  115. package/bundles/primeng-inputswitch.umd.js.map +1 -1
  116. package/bundles/primeng-inputtext.umd.js +58 -28
  117. package/bundles/primeng-inputtext.umd.js.map +1 -1
  118. package/bundles/primeng-inputtextarea.umd.js +73 -37
  119. package/bundles/primeng-inputtextarea.umd.js.map +1 -1
  120. package/bundles/primeng-keyfilter.umd.js +61 -27
  121. package/bundles/primeng-keyfilter.umd.js.map +1 -1
  122. package/bundles/primeng-knob.umd.js +84 -43
  123. package/bundles/primeng-knob.umd.js.map +1 -1
  124. package/bundles/primeng-lightbox.umd.js +70 -34
  125. package/bundles/primeng-lightbox.umd.js.map +1 -1
  126. package/bundles/primeng-listbox.umd.js +129 -68
  127. package/bundles/primeng-listbox.umd.js.map +1 -1
  128. package/bundles/primeng-megamenu.umd.js +64 -31
  129. package/bundles/primeng-megamenu.umd.js.map +1 -1
  130. package/bundles/primeng-menu.umd.js +114 -61
  131. package/bundles/primeng-menu.umd.js.map +1 -1
  132. package/bundles/primeng-menubar.umd.js +97 -56
  133. package/bundles/primeng-menubar.umd.js.map +1 -1
  134. package/bundles/primeng-message.umd.js +57 -24
  135. package/bundles/primeng-message.umd.js.map +1 -1
  136. package/bundles/primeng-messages.umd.js +101 -49
  137. package/bundles/primeng-messages.umd.js.map +1 -1
  138. package/bundles/primeng-multiselect.umd.js +251 -136
  139. package/bundles/primeng-multiselect.umd.js.map +1 -1
  140. package/bundles/primeng-orderlist.umd.js +107 -55
  141. package/bundles/primeng-orderlist.umd.js.map +1 -1
  142. package/bundles/primeng-organizationchart.umd.js +123 -69
  143. package/bundles/primeng-organizationchart.umd.js.map +1 -1
  144. package/bundles/primeng-overlaypanel.umd.js +112 -58
  145. package/bundles/primeng-overlaypanel.umd.js.map +1 -1
  146. package/bundles/primeng-paginator.umd.js +90 -42
  147. package/bundles/primeng-paginator.umd.js.map +1 -1
  148. package/bundles/primeng-panel.umd.js +116 -57
  149. package/bundles/primeng-panel.umd.js.map +1 -1
  150. package/bundles/primeng-panelmenu.umd.js +126 -69
  151. package/bundles/primeng-panelmenu.umd.js.map +1 -1
  152. package/bundles/primeng-password.umd.js +158 -89
  153. package/bundles/primeng-password.umd.js.map +1 -1
  154. package/bundles/primeng-picklist.umd.js +159 -85
  155. package/bundles/primeng-picklist.umd.js.map +1 -1
  156. package/bundles/primeng-progressbar.umd.js +59 -25
  157. package/bundles/primeng-progressbar.umd.js.map +1 -1
  158. package/bundles/primeng-progressspinner.umd.js +57 -24
  159. package/bundles/primeng-progressspinner.umd.js.map +1 -1
  160. package/bundles/primeng-radiobutton.umd.js +87 -45
  161. package/bundles/primeng-radiobutton.umd.js.map +1 -1
  162. package/bundles/primeng-rating.umd.js +75 -38
  163. package/bundles/primeng-rating.umd.js.map +1 -1
  164. package/bundles/primeng-ripple.umd.js +50 -21
  165. package/bundles/primeng-ripple.umd.js.map +1 -1
  166. package/bundles/primeng-scrollpanel.umd.js +66 -31
  167. package/bundles/primeng-scrollpanel.umd.js.map +1 -1
  168. package/bundles/primeng-scrolltop.umd.js +86 -43
  169. package/bundles/primeng-scrolltop.umd.js.map +1 -1
  170. package/bundles/primeng-selectbutton.umd.js +82 -41
  171. package/bundles/primeng-selectbutton.umd.js.map +1 -1
  172. package/bundles/primeng-sidebar.umd.js +110 -57
  173. package/bundles/primeng-sidebar.umd.js.map +1 -1
  174. package/bundles/primeng-skeleton.umd.js +63 -27
  175. package/bundles/primeng-skeleton.umd.js.map +1 -1
  176. package/bundles/primeng-slidemenu.umd.js +140 -74
  177. package/bundles/primeng-slidemenu.umd.js.map +1 -1
  178. package/bundles/primeng-slider.umd.js +86 -45
  179. package/bundles/primeng-slider.umd.js.map +1 -1
  180. package/bundles/primeng-spinner.umd.js +103 -55
  181. package/bundles/primeng-spinner.umd.js.map +1 -1
  182. package/bundles/primeng-splitbutton.umd.js +92 -40
  183. package/bundles/primeng-splitbutton.umd.js.map +1 -1
  184. package/bundles/primeng-splitter.umd.js +91 -48
  185. package/bundles/primeng-splitter.umd.js.map +1 -1
  186. package/bundles/primeng-steps.umd.js +64 -32
  187. package/bundles/primeng-steps.umd.js.map +1 -1
  188. package/bundles/primeng-styleclass.umd.js +61 -28
  189. package/bundles/primeng-styleclass.umd.js.map +1 -1
  190. package/bundles/primeng-table.umd.js +915 -626
  191. package/bundles/primeng-table.umd.js.map +1 -1
  192. package/bundles/primeng-tabmenu.umd.js +68 -27
  193. package/bundles/primeng-tabmenu.umd.js.map +1 -1
  194. package/bundles/primeng-tabview.umd.js +120 -64
  195. package/bundles/primeng-tabview.umd.js.map +1 -1
  196. package/bundles/primeng-tag.umd.js +59 -25
  197. package/bundles/primeng-tag.umd.js.map +1 -1
  198. package/bundles/primeng-terminal.umd.js +63 -32
  199. package/bundles/primeng-terminal.umd.js.map +1 -1
  200. package/bundles/primeng-tieredmenu.umd.js +121 -70
  201. package/bundles/primeng-tieredmenu.umd.js.map +1 -1
  202. package/bundles/primeng-timeline.umd.js +60 -28
  203. package/bundles/primeng-timeline.umd.js.map +1 -1
  204. package/bundles/primeng-toast.umd.js +165 -89
  205. package/bundles/primeng-toast.umd.js.map +1 -1
  206. package/bundles/primeng-togglebutton.umd.js +74 -36
  207. package/bundles/primeng-togglebutton.umd.js.map +1 -1
  208. package/bundles/primeng-toolbar.umd.js +54 -25
  209. package/bundles/primeng-toolbar.umd.js.map +1 -1
  210. package/bundles/primeng-tooltip.umd.js +68 -31
  211. package/bundles/primeng-tooltip.umd.js.map +1 -1
  212. package/bundles/primeng-tree.umd.js +191 -103
  213. package/bundles/primeng-tree.umd.js.map +1 -1
  214. package/bundles/primeng-treetable.umd.js +547 -394
  215. package/bundles/primeng-treetable.umd.js.map +1 -1
  216. package/bundles/primeng-tristatecheckbox.umd.js +73 -36
  217. package/bundles/primeng-tristatecheckbox.umd.js.map +1 -1
  218. package/bundles/primeng-virtualscroller.umd.js +91 -42
  219. package/bundles/primeng-virtualscroller.umd.js.map +1 -1
  220. package/button/button.d.ts +10 -0
  221. package/button/package.json +1 -2
  222. package/button/primeng-button.d.ts +1 -0
  223. package/calendar/calendar.d.ts +10 -0
  224. package/calendar/package.json +1 -2
  225. package/calendar/primeng-calendar.d.ts +1 -0
  226. package/captcha/captcha.d.ts +7 -0
  227. package/captcha/package.json +1 -2
  228. package/captcha/primeng-captcha.d.ts +1 -0
  229. package/card/card.d.ts +8 -0
  230. package/card/package.json +1 -2
  231. package/card/primeng-card.d.ts +1 -0
  232. package/carousel/carousel.d.ts +9 -0
  233. package/carousel/package.json +1 -2
  234. package/carousel/primeng-carousel.d.ts +1 -0
  235. package/cascadeselect/cascadeselect.d.ts +11 -0
  236. package/cascadeselect/package.json +1 -2
  237. package/cascadeselect/primeng-cascadeselect.d.ts +1 -0
  238. package/chart/chart.d.ts +7 -0
  239. package/chart/package.json +1 -2
  240. package/chart/primeng-chart.d.ts +1 -0
  241. package/checkbox/checkbox.d.ts +7 -0
  242. package/checkbox/package.json +1 -2
  243. package/checkbox/primeng-checkbox.d.ts +1 -0
  244. package/chip/chip.d.ts +7 -0
  245. package/chip/package.json +1 -2
  246. package/chip/primeng-chip.d.ts +1 -0
  247. package/chips/chips.d.ts +9 -0
  248. package/chips/package.json +1 -2
  249. package/chips/primeng-chips.d.ts +1 -0
  250. package/codehighlighter/codehighlighter.d.ts +7 -0
  251. package/codehighlighter/package.json +1 -2
  252. package/codehighlighter/primeng-codehighlighter.d.ts +1 -0
  253. package/colorpicker/colorpicker.d.ts +9 -2
  254. package/colorpicker/package.json +1 -2
  255. package/colorpicker/primeng-colorpicker.d.ts +1 -0
  256. package/confirmdialog/confirmdialog.d.ts +10 -0
  257. package/confirmdialog/package.json +1 -2
  258. package/confirmdialog/primeng-confirmdialog.d.ts +1 -0
  259. package/confirmpopup/confirmpopup.d.ts +8 -0
  260. package/confirmpopup/package.json +1 -2
  261. package/confirmpopup/primeng-confirmpopup.d.ts +1 -0
  262. package/contextmenu/contextmenu.d.ts +11 -0
  263. package/contextmenu/package.json +1 -2
  264. package/contextmenu/primeng-contextmenu.d.ts +1 -0
  265. package/dataview/dataview.d.ts +11 -0
  266. package/dataview/package.json +1 -2
  267. package/dataview/primeng-dataview.d.ts +1 -0
  268. package/defer/defer.d.ts +7 -0
  269. package/defer/package.json +1 -2
  270. package/defer/primeng-defer.d.ts +1 -0
  271. package/dialog/dialog.d.ts +11 -1
  272. package/dialog/package.json +1 -2
  273. package/dialog/primeng-dialog.d.ts +1 -0
  274. package/divider/divider.d.ts +7 -0
  275. package/divider/package.json +1 -2
  276. package/divider/primeng-divider.d.ts +1 -0
  277. package/dom/package.json +1 -2
  278. package/dom/primeng-dom.d.ts +1 -0
  279. package/dragdrop/dragdrop.d.ts +9 -0
  280. package/dragdrop/package.json +1 -2
  281. package/dragdrop/primeng-dragdrop.d.ts +1 -0
  282. package/dropdown/dropdown.d.ts +14 -0
  283. package/dropdown/package.json +1 -2
  284. package/dropdown/primeng-dropdown.d.ts +1 -0
  285. package/dynamicdialog/dialogservice.d.ts +3 -0
  286. package/dynamicdialog/dynamicdialog.d.ts +8 -0
  287. package/dynamicdialog/dynamicdialogcontent.d.ts +3 -0
  288. package/dynamicdialog/package.json +1 -2
  289. package/dynamicdialog/primeng-dynamicdialog.d.ts +1 -1
  290. package/editor/editor.d.ts +8 -0
  291. package/editor/package.json +1 -2
  292. package/editor/primeng-editor.d.ts +1 -0
  293. package/esm2015/accordion/accordion.js +131 -68
  294. package/esm2015/accordion/primeng-accordion.js +1 -1
  295. package/esm2015/accordion/public_api.js +1 -1
  296. package/esm2015/api/blockableui.js +1 -1
  297. package/esm2015/api/confirmaeventtype.js +1 -1
  298. package/esm2015/api/confirmation.js +1 -1
  299. package/esm2015/api/confirmationservice.js +7 -4
  300. package/esm2015/api/contextmenuservice.js +7 -4
  301. package/esm2015/api/filtermatchmode.js +1 -1
  302. package/esm2015/api/filtermetadata.js +1 -1
  303. package/esm2015/api/filteroperator.js +1 -1
  304. package/esm2015/api/filterservice.js +7 -5
  305. package/esm2015/api/lazyloadevent.js +1 -1
  306. package/esm2015/api/megamenuitem.js +1 -1
  307. package/esm2015/api/menuitem.js +1 -1
  308. package/esm2015/api/message.js +1 -1
  309. package/esm2015/api/messageservice.js +7 -4
  310. package/esm2015/api/primeicons.js +1 -1
  311. package/esm2015/api/primeng-api.js +1 -1
  312. package/esm2015/api/primengconfig.js +7 -5
  313. package/esm2015/api/public_api.js +1 -1
  314. package/esm2015/api/selectitem.js +1 -1
  315. package/esm2015/api/selectitemgroup.js +1 -1
  316. package/esm2015/api/shared.js +46 -34
  317. package/esm2015/api/sortevent.js +1 -1
  318. package/esm2015/api/sortmeta.js +1 -1
  319. package/esm2015/api/tablestate.js +1 -1
  320. package/esm2015/api/translation.js +1 -1
  321. package/esm2015/api/translationkeys.js +1 -1
  322. package/esm2015/api/treedragdropservice.js +7 -4
  323. package/esm2015/api/treenode.js +1 -1
  324. package/esm2015/api/treenodedragevent.js +1 -1
  325. package/esm2015/autocomplete/autocomplete.js +255 -106
  326. package/esm2015/autocomplete/primeng-autocomplete.js +1 -1
  327. package/esm2015/autocomplete/public_api.js +1 -1
  328. package/esm2015/avatar/avatar.js +47 -26
  329. package/esm2015/avatar/primeng-avatar.js +1 -1
  330. package/esm2015/avatar/public_api.js +1 -1
  331. package/esm2015/avatargroup/avatargroup.js +34 -21
  332. package/esm2015/avatargroup/primeng-avatargroup.js +1 -1
  333. package/esm2015/avatargroup/public_api.js +1 -1
  334. package/esm2015/badge/badge.js +56 -39
  335. package/esm2015/badge/primeng-badge.js +1 -1
  336. package/esm2015/badge/public_api.js +1 -1
  337. package/esm2015/blockui/blockui.js +48 -31
  338. package/esm2015/blockui/primeng-blockui.js +1 -1
  339. package/esm2015/blockui/public_api.js +1 -1
  340. package/esm2015/breadcrumb/breadcrumb.js +84 -24
  341. package/esm2015/breadcrumb/primeng-breadcrumb.js +1 -1
  342. package/esm2015/breadcrumb/public_api.js +1 -1
  343. package/esm2015/button/button.js +97 -49
  344. package/esm2015/button/primeng-button.js +1 -1
  345. package/esm2015/button/public_api.js +1 -1
  346. package/esm2015/calendar/calendar.js +367 -132
  347. package/esm2015/calendar/primeng-calendar.js +1 -1
  348. package/esm2015/calendar/public_api.js +1 -1
  349. package/esm2015/captcha/captcha.js +43 -33
  350. package/esm2015/captcha/primeng-captcha.js +1 -1
  351. package/esm2015/captcha/public_api.js +1 -1
  352. package/esm2015/card/card.js +69 -30
  353. package/esm2015/card/primeng-card.js +1 -1
  354. package/esm2015/card/public_api.js +1 -1
  355. package/esm2015/carousel/carousel.js +126 -48
  356. package/esm2015/carousel/primeng-carousel.js +1 -1
  357. package/esm2015/carousel/public_api.js +1 -1
  358. package/esm2015/cascadeselect/cascadeselect.js +195 -92
  359. package/esm2015/cascadeselect/primeng-cascadeselect.js +1 -1
  360. package/esm2015/cascadeselect/public_api.js +1 -1
  361. package/esm2015/chart/chart.js +45 -30
  362. package/esm2015/chart/primeng-chart.js +1 -1
  363. package/esm2015/chart/public_api.js +1 -1
  364. package/esm2015/checkbox/checkbox.js +79 -42
  365. package/esm2015/checkbox/primeng-checkbox.js +1 -1
  366. package/esm2015/checkbox/public_api.js +1 -1
  367. package/esm2015/chip/chip.js +50 -27
  368. package/esm2015/chip/primeng-chip.js +1 -1
  369. package/esm2015/chip/public_api.js +1 -1
  370. package/esm2015/chips/chips.js +92 -51
  371. package/esm2015/chips/primeng-chips.js +1 -1
  372. package/esm2015/chips/public_api.js +1 -1
  373. package/esm2015/codehighlighter/codehighlighter.js +22 -17
  374. package/esm2015/codehighlighter/primeng-codehighlighter.js +1 -1
  375. package/esm2015/codehighlighter/public_api.js +1 -1
  376. package/esm2015/colorpicker/colorpicker.js +129 -67
  377. package/esm2015/colorpicker/primeng-colorpicker.js +1 -1
  378. package/esm2015/colorpicker/public_api.js +1 -1
  379. package/esm2015/confirmdialog/confirmdialog.js +151 -74
  380. package/esm2015/confirmdialog/primeng-confirmdialog.js +1 -1
  381. package/esm2015/confirmdialog/public_api.js +1 -1
  382. package/esm2015/confirmpopup/confirmpopup.js +88 -50
  383. package/esm2015/confirmpopup/primeng-confirmpopup.js +1 -1
  384. package/esm2015/confirmpopup/public_api.js +1 -1
  385. package/esm2015/contextmenu/contextmenu.js +114 -58
  386. package/esm2015/contextmenu/primeng-contextmenu.js +1 -1
  387. package/esm2015/contextmenu/public_api.js +1 -1
  388. package/esm2015/dataview/dataview.js +164 -76
  389. package/esm2015/dataview/primeng-dataview.js +1 -1
  390. package/esm2015/dataview/public_api.js +1 -1
  391. package/esm2015/defer/defer.js +27 -24
  392. package/esm2015/defer/primeng-defer.js +1 -1
  393. package/esm2015/defer/public_api.js +1 -1
  394. package/esm2015/dialog/dialog.js +189 -83
  395. package/esm2015/dialog/primeng-dialog.js +1 -1
  396. package/esm2015/dialog/public_api.js +1 -1
  397. package/esm2015/divider/divider.js +42 -24
  398. package/esm2015/divider/primeng-divider.js +1 -1
  399. package/esm2015/divider/public_api.js +1 -1
  400. package/esm2015/dom/connectedoverlayscrollhandler.js +1 -1
  401. package/esm2015/dom/domhandler.js +1 -1
  402. package/esm2015/dom/primeng-dom.js +1 -1
  403. package/esm2015/dom/public_api.js +1 -1
  404. package/esm2015/dragdrop/dragdrop.js +73 -49
  405. package/esm2015/dragdrop/primeng-dragdrop.js +1 -1
  406. package/esm2015/dragdrop/public_api.js +1 -1
  407. package/esm2015/dropdown/dropdown.js +308 -126
  408. package/esm2015/dropdown/primeng-dropdown.js +1 -1
  409. package/esm2015/dropdown/public_api.js +1 -1
  410. package/esm2015/dynamicdialog/dialogservice.js +8 -10
  411. package/esm2015/dynamicdialog/dynamicdialog-config.js +1 -1
  412. package/esm2015/dynamicdialog/dynamicdialog-injector.js +1 -1
  413. package/esm2015/dynamicdialog/dynamicdialog-ref.js +1 -1
  414. package/esm2015/dynamicdialog/dynamicdialog.js +75 -41
  415. package/esm2015/dynamicdialog/dynamicdialogcontent.js +11 -10
  416. package/esm2015/dynamicdialog/primeng-dynamicdialog.js +1 -2
  417. package/esm2015/dynamicdialog/public_api.js +1 -1
  418. package/esm2015/editor/editor.js +107 -38
  419. package/esm2015/editor/primeng-editor.js +1 -1
  420. package/esm2015/editor/public_api.js +1 -1
  421. package/esm2015/fieldset/fieldset.js +98 -46
  422. package/esm2015/fieldset/primeng-fieldset.js +1 -1
  423. package/esm2015/fieldset/public_api.js +1 -1
  424. package/esm2015/fileupload/fileupload.js +179 -78
  425. package/esm2015/fileupload/primeng-fileupload.js +1 -1
  426. package/esm2015/fileupload/public_api.js +1 -1
  427. package/esm2015/focustrap/focustrap.js +30 -21
  428. package/esm2015/focustrap/primeng-focustrap.js +1 -1
  429. package/esm2015/focustrap/public_api.js +1 -1
  430. package/esm2015/fullcalendar/fullcalendar.js +34 -26
  431. package/esm2015/fullcalendar/primeng-fullcalendar.js +1 -1
  432. package/esm2015/fullcalendar/public_api.js +1 -1
  433. package/esm2015/galleria/galleria.js +284 -131
  434. package/esm2015/galleria/primeng-galleria.js +1 -1
  435. package/esm2015/galleria/public_api.js +1 -1
  436. package/esm2015/gmap/gmap.js +52 -38
  437. package/esm2015/gmap/primeng-gmap.js +1 -1
  438. package/esm2015/gmap/public_api.js +1 -1
  439. package/esm2015/inplace/inplace.js +80 -45
  440. package/esm2015/inplace/primeng-inplace.js +1 -1
  441. package/esm2015/inplace/public_api.js +1 -1
  442. package/esm2015/inputmask/inputmask.js +92 -56
  443. package/esm2015/inputmask/primeng-inputmask.js +1 -1
  444. package/esm2015/inputmask/public_api.js +1 -1
  445. package/esm2015/inputnumber/inputnumber.js +137 -70
  446. package/esm2015/inputnumber/primeng-inputnumber.js +1 -1
  447. package/esm2015/inputnumber/public_api.js +1 -1
  448. package/esm2015/inputswitch/inputswitch.js +55 -33
  449. package/esm2015/inputswitch/primeng-inputswitch.js +1 -1
  450. package/esm2015/inputswitch/public_api.js +1 -1
  451. package/esm2015/inputtext/inputtext.js +33 -27
  452. package/esm2015/inputtext/primeng-inputtext.js +1 -1
  453. package/esm2015/inputtext/public_api.js +1 -1
  454. package/esm2015/inputtextarea/inputtextarea.js +47 -35
  455. package/esm2015/inputtextarea/primeng-inputtextarea.js +1 -1
  456. package/esm2015/inputtextarea/public_api.js +1 -1
  457. package/esm2015/keyfilter/keyfilter.js +39 -26
  458. package/esm2015/keyfilter/primeng-keyfilter.js +1 -1
  459. package/esm2015/keyfilter/public_api.js +1 -1
  460. package/esm2015/knob/knob.js +71 -42
  461. package/esm2015/knob/primeng-knob.js +1 -1
  462. package/esm2015/knob/public_api.js +1 -1
  463. package/esm2015/lightbox/lightbox.js +78 -35
  464. package/esm2015/lightbox/primeng-lightbox.js +1 -1
  465. package/esm2015/lightbox/public_api.js +1 -1
  466. package/esm2015/listbox/listbox.js +167 -61
  467. package/esm2015/listbox/primeng-listbox.js +1 -1
  468. package/esm2015/listbox/public_api.js +1 -1
  469. package/esm2015/megamenu/megamenu.js +118 -32
  470. package/esm2015/megamenu/primeng-megamenu.js +1 -1
  471. package/esm2015/megamenu/public_api.js +1 -1
  472. package/esm2015/menu/menu.js +127 -60
  473. package/esm2015/menu/primeng-menu.js +1 -1
  474. package/esm2015/menu/public_api.js +1 -1
  475. package/esm2015/menubar/menubar.js +121 -56
  476. package/esm2015/menubar/primeng-menubar.js +1 -1
  477. package/esm2015/menubar/public_api.js +1 -1
  478. package/esm2015/message/message.js +51 -24
  479. package/esm2015/message/primeng-message.js +1 -1
  480. package/esm2015/message/public_api.js +1 -1
  481. package/esm2015/messages/messages.js +109 -48
  482. package/esm2015/messages/primeng-messages.js +1 -1
  483. package/esm2015/messages/public_api.js +1 -1
  484. package/esm2015/multiselect/multiselect.js +332 -125
  485. package/esm2015/multiselect/primeng-multiselect.js +1 -1
  486. package/esm2015/multiselect/public_api.js +1 -1
  487. package/esm2015/orderlist/orderlist.js +119 -49
  488. package/esm2015/orderlist/primeng-orderlist.js +1 -1
  489. package/esm2015/orderlist/public_api.js +1 -1
  490. package/esm2015/organizationchart/organizationchart.js +139 -64
  491. package/esm2015/organizationchart/primeng-organizationchart.js +1 -1
  492. package/esm2015/organizationchart/public_api.js +1 -1
  493. package/esm2015/overlaypanel/overlaypanel.js +102 -57
  494. package/esm2015/overlaypanel/primeng-overlaypanel.js +1 -1
  495. package/esm2015/overlaypanel/public_api.js +1 -1
  496. package/esm2015/paginator/paginator.js +112 -42
  497. package/esm2015/paginator/primeng-paginator.js +1 -1
  498. package/esm2015/paginator/public_api.js +1 -1
  499. package/esm2015/panel/panel.js +120 -55
  500. package/esm2015/panel/primeng-panel.js +1 -1
  501. package/esm2015/panel/public_api.js +1 -1
  502. package/esm2015/panelmenu/panelmenu.js +161 -70
  503. package/esm2015/panelmenu/primeng-panelmenu.js +1 -1
  504. package/esm2015/panelmenu/public_api.js +1 -1
  505. package/esm2015/password/password.js +156 -88
  506. package/esm2015/password/primeng-password.js +1 -1
  507. package/esm2015/password/public_api.js +1 -1
  508. package/esm2015/picklist/picklist.js +215 -80
  509. package/esm2015/picklist/primeng-picklist.js +1 -1
  510. package/esm2015/picklist/public_api.js +1 -1
  511. package/esm2015/primeng.js +1 -1
  512. package/esm2015/progressbar/primeng-progressbar.js +1 -1
  513. package/esm2015/progressbar/progressbar.js +47 -25
  514. package/esm2015/progressbar/public_api.js +1 -1
  515. package/esm2015/progressspinner/primeng-progressspinner.js +1 -1
  516. package/esm2015/progressspinner/progressspinner.js +42 -24
  517. package/esm2015/progressspinner/public_api.js +1 -1
  518. package/esm2015/public_api.js +1 -1
  519. package/esm2015/radiobutton/primeng-radiobutton.js +1 -1
  520. package/esm2015/radiobutton/public_api.js +1 -1
  521. package/esm2015/radiobutton/radiobutton.js +79 -46
  522. package/esm2015/rating/primeng-rating.js +1 -1
  523. package/esm2015/rating/public_api.js +1 -1
  524. package/esm2015/rating/rating.js +59 -36
  525. package/esm2015/ripple/primeng-ripple.js +1 -1
  526. package/esm2015/ripple/public_api.js +1 -1
  527. package/esm2015/ripple/ripple.js +28 -23
  528. package/esm2015/scrollpanel/primeng-scrollpanel.js +1 -1
  529. package/esm2015/scrollpanel/public_api.js +1 -1
  530. package/esm2015/scrollpanel/scrollpanel.js +57 -32
  531. package/esm2015/scrolltop/primeng-scrolltop.js +1 -1
  532. package/esm2015/scrolltop/public_api.js +1 -1
  533. package/esm2015/scrolltop/scrolltop.js +71 -44
  534. package/esm2015/selectbutton/primeng-selectbutton.js +1 -1
  535. package/esm2015/selectbutton/public_api.js +1 -1
  536. package/esm2015/selectbutton/selectbutton.js +75 -38
  537. package/esm2015/sidebar/primeng-sidebar.js +1 -1
  538. package/esm2015/sidebar/public_api.js +1 -1
  539. package/esm2015/sidebar/sidebar.js +103 -56
  540. package/esm2015/skeleton/primeng-skeleton.js +1 -1
  541. package/esm2015/skeleton/public_api.js +1 -1
  542. package/esm2015/skeleton/skeleton.js +45 -27
  543. package/esm2015/slidemenu/primeng-slidemenu.js +1 -1
  544. package/esm2015/slidemenu/public_api.js +1 -1
  545. package/esm2015/slidemenu/slidemenu.js +158 -73
  546. package/esm2015/slider/primeng-slider.js +1 -1
  547. package/esm2015/slider/public_api.js +1 -1
  548. package/esm2015/slider/slider.js +81 -43
  549. package/esm2015/spinner/primeng-spinner.js +1 -1
  550. package/esm2015/spinner/public_api.js +1 -1
  551. package/esm2015/spinner/spinner.js +94 -52
  552. package/esm2015/splitbutton/primeng-splitbutton.js +1 -1
  553. package/esm2015/splitbutton/public_api.js +1 -1
  554. package/esm2015/splitbutton/splitbutton.js +76 -38
  555. package/esm2015/splitter/primeng-splitter.js +1 -1
  556. package/esm2015/splitter/public_api.js +1 -1
  557. package/esm2015/splitter/splitter.js +81 -47
  558. package/esm2015/steps/primeng-steps.js +1 -1
  559. package/esm2015/steps/public_api.js +1 -1
  560. package/esm2015/steps/steps.js +69 -35
  561. package/esm2015/styleclass/primeng-styleclass.js +1 -1
  562. package/esm2015/styleclass/public_api.js +1 -1
  563. package/esm2015/styleclass/styleclass.js +41 -29
  564. package/esm2015/table/primeng-table.js +1 -1
  565. package/esm2015/table/public_api.js +1 -1
  566. package/esm2015/table/table.js +1081 -584
  567. package/esm2015/tabmenu/primeng-tabmenu.js +1 -1
  568. package/esm2015/tabmenu/public_api.js +1 -1
  569. package/esm2015/tabmenu/tabmenu.js +76 -27
  570. package/esm2015/tabview/primeng-tabview.js +1 -1
  571. package/esm2015/tabview/public_api.js +1 -1
  572. package/esm2015/tabview/tabview.js +127 -62
  573. package/esm2015/tag/primeng-tag.js +1 -1
  574. package/esm2015/tag/public_api.js +1 -1
  575. package/esm2015/tag/tag.js +44 -25
  576. package/esm2015/terminal/primeng-terminal.js +1 -1
  577. package/esm2015/terminal/public_api.js +1 -1
  578. package/esm2015/terminal/terminal.js +54 -31
  579. package/esm2015/terminal/terminalservice.js +7 -4
  580. package/esm2015/tieredmenu/primeng-tieredmenu.js +1 -1
  581. package/esm2015/tieredmenu/public_api.js +1 -1
  582. package/esm2015/tieredmenu/tieredmenu.js +133 -69
  583. package/esm2015/timeline/primeng-timeline.js +1 -1
  584. package/esm2015/timeline/public_api.js +1 -1
  585. package/esm2015/timeline/timeline.js +67 -29
  586. package/esm2015/toast/primeng-toast.js +1 -1
  587. package/esm2015/toast/public_api.js +1 -1
  588. package/esm2015/toast/toast.js +166 -87
  589. package/esm2015/togglebutton/primeng-togglebutton.js +1 -1
  590. package/esm2015/togglebutton/public_api.js +1 -1
  591. package/esm2015/togglebutton/togglebutton.js +60 -35
  592. package/esm2015/toolbar/primeng-toolbar.js +1 -1
  593. package/esm2015/toolbar/public_api.js +1 -1
  594. package/esm2015/toolbar/toolbar.js +44 -26
  595. package/esm2015/tooltip/primeng-tooltip.js +1 -1
  596. package/esm2015/tooltip/public_api.js +1 -1
  597. package/esm2015/tooltip/tooltip.js +48 -32
  598. package/esm2015/tree/primeng-tree.js +1 -1
  599. package/esm2015/tree/public_api.js +1 -1
  600. package/esm2015/tree/tree.js +278 -91
  601. package/esm2015/treetable/primeng-treetable.js +1 -1
  602. package/esm2015/treetable/public_api.js +1 -1
  603. package/esm2015/treetable/treetable.js +650 -374
  604. package/esm2015/tristatecheckbox/primeng-tristatecheckbox.js +1 -1
  605. package/esm2015/tristatecheckbox/public_api.js +1 -1
  606. package/esm2015/tristatecheckbox/tristatecheckbox.js +64 -35
  607. package/esm2015/utils/objectutils.js +1 -1
  608. package/esm2015/utils/primeng-utils.js +1 -1
  609. package/esm2015/utils/public_api.js +1 -1
  610. package/esm2015/utils/uniquecomponentid.js +1 -1
  611. package/esm2015/virtualscroller/primeng-virtualscroller.js +1 -1
  612. package/esm2015/virtualscroller/public_api.js +1 -1
  613. package/esm2015/virtualscroller/virtualscroller.js +92 -42
  614. package/fesm2015/primeng-accordion.js +130 -67
  615. package/fesm2015/primeng-accordion.js.map +1 -1
  616. package/fesm2015/primeng-api.js +77 -53
  617. package/fesm2015/primeng-api.js.map +1 -1
  618. package/fesm2015/primeng-autocomplete.js +254 -105
  619. package/fesm2015/primeng-autocomplete.js.map +1 -1
  620. package/fesm2015/primeng-avatar.js +46 -25
  621. package/fesm2015/primeng-avatar.js.map +1 -1
  622. package/fesm2015/primeng-avatargroup.js +33 -20
  623. package/fesm2015/primeng-avatargroup.js.map +1 -1
  624. package/fesm2015/primeng-badge.js +55 -38
  625. package/fesm2015/primeng-badge.js.map +1 -1
  626. package/fesm2015/primeng-blockui.js +47 -30
  627. package/fesm2015/primeng-blockui.js.map +1 -1
  628. package/fesm2015/primeng-breadcrumb.js +83 -23
  629. package/fesm2015/primeng-breadcrumb.js.map +1 -1
  630. package/fesm2015/primeng-button.js +96 -48
  631. package/fesm2015/primeng-button.js.map +1 -1
  632. package/fesm2015/primeng-calendar.js +366 -131
  633. package/fesm2015/primeng-calendar.js.map +1 -1
  634. package/fesm2015/primeng-captcha.js +42 -32
  635. package/fesm2015/primeng-captcha.js.map +1 -1
  636. package/fesm2015/primeng-card.js +68 -29
  637. package/fesm2015/primeng-card.js.map +1 -1
  638. package/fesm2015/primeng-carousel.js +125 -47
  639. package/fesm2015/primeng-carousel.js.map +1 -1
  640. package/fesm2015/primeng-cascadeselect.js +194 -91
  641. package/fesm2015/primeng-cascadeselect.js.map +1 -1
  642. package/fesm2015/primeng-chart.js +44 -29
  643. package/fesm2015/primeng-chart.js.map +1 -1
  644. package/fesm2015/primeng-checkbox.js +78 -41
  645. package/fesm2015/primeng-checkbox.js.map +1 -1
  646. package/fesm2015/primeng-chip.js +49 -26
  647. package/fesm2015/primeng-chip.js.map +1 -1
  648. package/fesm2015/primeng-chips.js +91 -50
  649. package/fesm2015/primeng-chips.js.map +1 -1
  650. package/fesm2015/primeng-codehighlighter.js +21 -16
  651. package/fesm2015/primeng-codehighlighter.js.map +1 -1
  652. package/fesm2015/primeng-colorpicker.js +128 -66
  653. package/fesm2015/primeng-colorpicker.js.map +1 -1
  654. package/fesm2015/primeng-confirmdialog.js +150 -72
  655. package/fesm2015/primeng-confirmdialog.js.map +1 -1
  656. package/fesm2015/primeng-confirmpopup.js +87 -49
  657. package/fesm2015/primeng-confirmpopup.js.map +1 -1
  658. package/fesm2015/primeng-contextmenu.js +113 -57
  659. package/fesm2015/primeng-contextmenu.js.map +1 -1
  660. package/fesm2015/primeng-dataview.js +163 -75
  661. package/fesm2015/primeng-dataview.js.map +1 -1
  662. package/fesm2015/primeng-defer.js +26 -23
  663. package/fesm2015/primeng-defer.js.map +1 -1
  664. package/fesm2015/primeng-dialog.js +188 -82
  665. package/fesm2015/primeng-dialog.js.map +1 -1
  666. package/fesm2015/primeng-divider.js +41 -23
  667. package/fesm2015/primeng-divider.js.map +1 -1
  668. package/fesm2015/primeng-dragdrop.js +72 -48
  669. package/fesm2015/primeng-dragdrop.js.map +1 -1
  670. package/fesm2015/primeng-dropdown.js +306 -124
  671. package/fesm2015/primeng-dropdown.js.map +1 -1
  672. package/fesm2015/primeng-dynamicdialog.js +86 -55
  673. package/fesm2015/primeng-dynamicdialog.js.map +1 -1
  674. package/fesm2015/primeng-editor.js +106 -37
  675. package/fesm2015/primeng-editor.js.map +1 -1
  676. package/fesm2015/primeng-fieldset.js +97 -45
  677. package/fesm2015/primeng-fieldset.js.map +1 -1
  678. package/fesm2015/primeng-fileupload.js +178 -77
  679. package/fesm2015/primeng-fileupload.js.map +1 -1
  680. package/fesm2015/primeng-focustrap.js +29 -20
  681. package/fesm2015/primeng-focustrap.js.map +1 -1
  682. package/fesm2015/primeng-fullcalendar.js +33 -25
  683. package/fesm2015/primeng-fullcalendar.js.map +1 -1
  684. package/fesm2015/primeng-galleria.js +283 -130
  685. package/fesm2015/primeng-galleria.js.map +1 -1
  686. package/fesm2015/primeng-gmap.js +51 -37
  687. package/fesm2015/primeng-gmap.js.map +1 -1
  688. package/fesm2015/primeng-inplace.js +79 -44
  689. package/fesm2015/primeng-inplace.js.map +1 -1
  690. package/fesm2015/primeng-inputmask.js +91 -55
  691. package/fesm2015/primeng-inputmask.js.map +1 -1
  692. package/fesm2015/primeng-inputnumber.js +136 -69
  693. package/fesm2015/primeng-inputnumber.js.map +1 -1
  694. package/fesm2015/primeng-inputswitch.js +54 -32
  695. package/fesm2015/primeng-inputswitch.js.map +1 -1
  696. package/fesm2015/primeng-inputtext.js +32 -26
  697. package/fesm2015/primeng-inputtext.js.map +1 -1
  698. package/fesm2015/primeng-inputtextarea.js +46 -34
  699. package/fesm2015/primeng-inputtextarea.js.map +1 -1
  700. package/fesm2015/primeng-keyfilter.js +38 -25
  701. package/fesm2015/primeng-keyfilter.js.map +1 -1
  702. package/fesm2015/primeng-knob.js +70 -41
  703. package/fesm2015/primeng-knob.js.map +1 -1
  704. package/fesm2015/primeng-lightbox.js +77 -34
  705. package/fesm2015/primeng-lightbox.js.map +1 -1
  706. package/fesm2015/primeng-listbox.js +166 -60
  707. package/fesm2015/primeng-listbox.js.map +1 -1
  708. package/fesm2015/primeng-megamenu.js +117 -31
  709. package/fesm2015/primeng-megamenu.js.map +1 -1
  710. package/fesm2015/primeng-menu.js +126 -59
  711. package/fesm2015/primeng-menu.js.map +1 -1
  712. package/fesm2015/primeng-menubar.js +120 -55
  713. package/fesm2015/primeng-menubar.js.map +1 -1
  714. package/fesm2015/primeng-message.js +50 -23
  715. package/fesm2015/primeng-message.js.map +1 -1
  716. package/fesm2015/primeng-messages.js +108 -47
  717. package/fesm2015/primeng-messages.js.map +1 -1
  718. package/fesm2015/primeng-multiselect.js +331 -124
  719. package/fesm2015/primeng-multiselect.js.map +1 -1
  720. package/fesm2015/primeng-orderlist.js +118 -48
  721. package/fesm2015/primeng-orderlist.js.map +1 -1
  722. package/fesm2015/primeng-organizationchart.js +138 -63
  723. package/fesm2015/primeng-organizationchart.js.map +1 -1
  724. package/fesm2015/primeng-overlaypanel.js +101 -56
  725. package/fesm2015/primeng-overlaypanel.js.map +1 -1
  726. package/fesm2015/primeng-paginator.js +111 -41
  727. package/fesm2015/primeng-paginator.js.map +1 -1
  728. package/fesm2015/primeng-panel.js +119 -54
  729. package/fesm2015/primeng-panel.js.map +1 -1
  730. package/fesm2015/primeng-panelmenu.js +160 -69
  731. package/fesm2015/primeng-panelmenu.js.map +1 -1
  732. package/fesm2015/primeng-password.js +155 -87
  733. package/fesm2015/primeng-password.js.map +1 -1
  734. package/fesm2015/primeng-picklist.js +214 -79
  735. package/fesm2015/primeng-picklist.js.map +1 -1
  736. package/fesm2015/primeng-progressbar.js +46 -24
  737. package/fesm2015/primeng-progressbar.js.map +1 -1
  738. package/fesm2015/primeng-progressspinner.js +41 -23
  739. package/fesm2015/primeng-progressspinner.js.map +1 -1
  740. package/fesm2015/primeng-radiobutton.js +79 -45
  741. package/fesm2015/primeng-radiobutton.js.map +1 -1
  742. package/fesm2015/primeng-rating.js +58 -35
  743. package/fesm2015/primeng-rating.js.map +1 -1
  744. package/fesm2015/primeng-ripple.js +27 -22
  745. package/fesm2015/primeng-ripple.js.map +1 -1
  746. package/fesm2015/primeng-scrollpanel.js +56 -31
  747. package/fesm2015/primeng-scrollpanel.js.map +1 -1
  748. package/fesm2015/primeng-scrolltop.js +70 -43
  749. package/fesm2015/primeng-scrolltop.js.map +1 -1
  750. package/fesm2015/primeng-selectbutton.js +74 -37
  751. package/fesm2015/primeng-selectbutton.js.map +1 -1
  752. package/fesm2015/primeng-sidebar.js +102 -55
  753. package/fesm2015/primeng-sidebar.js.map +1 -1
  754. package/fesm2015/primeng-skeleton.js +44 -26
  755. package/fesm2015/primeng-skeleton.js.map +1 -1
  756. package/fesm2015/primeng-slidemenu.js +157 -72
  757. package/fesm2015/primeng-slidemenu.js.map +1 -1
  758. package/fesm2015/primeng-slider.js +80 -42
  759. package/fesm2015/primeng-slider.js.map +1 -1
  760. package/fesm2015/primeng-spinner.js +93 -51
  761. package/fesm2015/primeng-spinner.js.map +1 -1
  762. package/fesm2015/primeng-splitbutton.js +75 -37
  763. package/fesm2015/primeng-splitbutton.js.map +1 -1
  764. package/fesm2015/primeng-splitter.js +80 -46
  765. package/fesm2015/primeng-splitter.js.map +1 -1
  766. package/fesm2015/primeng-steps.js +68 -34
  767. package/fesm2015/primeng-steps.js.map +1 -1
  768. package/fesm2015/primeng-styleclass.js +40 -28
  769. package/fesm2015/primeng-styleclass.js.map +1 -1
  770. package/fesm2015/primeng-table.js +1080 -583
  771. package/fesm2015/primeng-table.js.map +1 -1
  772. package/fesm2015/primeng-tabmenu.js +75 -26
  773. package/fesm2015/primeng-tabmenu.js.map +1 -1
  774. package/fesm2015/primeng-tabview.js +126 -61
  775. package/fesm2015/primeng-tabview.js.map +1 -1
  776. package/fesm2015/primeng-tag.js +43 -24
  777. package/fesm2015/primeng-tag.js.map +1 -1
  778. package/fesm2015/primeng-terminal.js +57 -32
  779. package/fesm2015/primeng-terminal.js.map +1 -1
  780. package/fesm2015/primeng-tieredmenu.js +132 -68
  781. package/fesm2015/primeng-tieredmenu.js.map +1 -1
  782. package/fesm2015/primeng-timeline.js +66 -28
  783. package/fesm2015/primeng-timeline.js.map +1 -1
  784. package/fesm2015/primeng-toast.js +166 -86
  785. package/fesm2015/primeng-toast.js.map +1 -1
  786. package/fesm2015/primeng-togglebutton.js +59 -34
  787. package/fesm2015/primeng-togglebutton.js.map +1 -1
  788. package/fesm2015/primeng-toolbar.js +43 -25
  789. package/fesm2015/primeng-toolbar.js.map +1 -1
  790. package/fesm2015/primeng-tooltip.js +47 -31
  791. package/fesm2015/primeng-tooltip.js.map +1 -1
  792. package/fesm2015/primeng-tree.js +277 -89
  793. package/fesm2015/primeng-tree.js.map +1 -1
  794. package/fesm2015/primeng-treetable.js +649 -373
  795. package/fesm2015/primeng-treetable.js.map +1 -1
  796. package/fesm2015/primeng-tristatecheckbox.js +63 -34
  797. package/fesm2015/primeng-tristatecheckbox.js.map +1 -1
  798. package/fesm2015/primeng-virtualscroller.js +91 -41
  799. package/fesm2015/primeng-virtualscroller.js.map +1 -1
  800. package/fieldset/fieldset.d.ts +9 -0
  801. package/fieldset/package.json +1 -2
  802. package/fieldset/primeng-fieldset.d.ts +1 -0
  803. package/fileupload/fileupload.d.ts +12 -0
  804. package/fileupload/package.json +1 -2
  805. package/fileupload/primeng-fileupload.d.ts +1 -0
  806. package/focustrap/focustrap.d.ts +7 -0
  807. package/focustrap/package.json +1 -2
  808. package/focustrap/primeng-focustrap.d.ts +1 -0
  809. package/fullcalendar/fullcalendar.d.ts +7 -0
  810. package/fullcalendar/package.json +1 -2
  811. package/fullcalendar/primeng-fullcalendar.d.ts +1 -0
  812. package/galleria/galleria.d.ts +17 -0
  813. package/galleria/package.json +1 -2
  814. package/galleria/primeng-galleria.d.ts +1 -0
  815. package/gmap/gmap.d.ts +7 -0
  816. package/gmap/package.json +1 -2
  817. package/gmap/primeng-gmap.d.ts +1 -0
  818. package/inplace/inplace.d.ts +12 -0
  819. package/inplace/package.json +1 -2
  820. package/inplace/primeng-inplace.d.ts +1 -0
  821. package/inputmask/inputmask.d.ts +8 -0
  822. package/inputmask/package.json +1 -2
  823. package/inputmask/primeng-inputmask.d.ts +1 -0
  824. package/inputnumber/inputnumber.d.ts +9 -0
  825. package/inputnumber/package.json +1 -2
  826. package/inputnumber/primeng-inputnumber.d.ts +1 -0
  827. package/inputswitch/inputswitch.d.ts +7 -0
  828. package/inputswitch/package.json +1 -2
  829. package/inputswitch/primeng-inputswitch.d.ts +1 -0
  830. package/inputtext/inputtext.d.ts +7 -0
  831. package/inputtext/package.json +1 -2
  832. package/inputtext/primeng-inputtext.d.ts +1 -0
  833. package/inputtextarea/inputtextarea.d.ts +7 -0
  834. package/inputtextarea/package.json +1 -2
  835. package/inputtextarea/primeng-inputtextarea.d.ts +1 -0
  836. package/keyfilter/keyfilter.d.ts +7 -0
  837. package/keyfilter/package.json +1 -2
  838. package/keyfilter/primeng-keyfilter.d.ts +1 -0
  839. package/knob/knob.d.ts +7 -0
  840. package/knob/package.json +1 -2
  841. package/knob/primeng-knob.d.ts +1 -0
  842. package/lightbox/lightbox.d.ts +7 -0
  843. package/lightbox/package.json +1 -2
  844. package/lightbox/primeng-lightbox.d.ts +1 -0
  845. package/listbox/listbox.d.ts +9 -0
  846. package/listbox/package.json +1 -2
  847. package/listbox/primeng-listbox.d.ts +1 -0
  848. package/megamenu/megamenu.d.ts +9 -0
  849. package/megamenu/package.json +1 -2
  850. package/megamenu/primeng-megamenu.d.ts +1 -0
  851. package/menu/menu.d.ts +11 -0
  852. package/menu/package.json +1 -2
  853. package/menu/primeng-menu.d.ts +1 -0
  854. package/menubar/menubar.d.ts +11 -0
  855. package/menubar/package.json +1 -2
  856. package/menubar/primeng-menubar.d.ts +1 -0
  857. package/message/message.d.ts +7 -0
  858. package/message/package.json +1 -2
  859. package/message/primeng-message.d.ts +1 -0
  860. package/messages/messages.d.ts +8 -0
  861. package/messages/package.json +1 -2
  862. package/messages/primeng-messages.d.ts +1 -0
  863. package/multiselect/multiselect.d.ts +13 -0
  864. package/multiselect/package.json +1 -2
  865. package/multiselect/primeng-multiselect.d.ts +1 -0
  866. package/orderlist/orderlist.d.ts +11 -0
  867. package/orderlist/package.json +1 -2
  868. package/orderlist/primeng-orderlist.d.ts +1 -0
  869. package/organizationchart/organizationchart.d.ts +10 -0
  870. package/organizationchart/package.json +1 -2
  871. package/organizationchart/primeng-organizationchart.d.ts +1 -0
  872. package/overlaypanel/overlaypanel.d.ts +9 -0
  873. package/overlaypanel/package.json +1 -2
  874. package/overlaypanel/primeng-overlaypanel.d.ts +1 -0
  875. package/package.json +6 -7
  876. package/paginator/package.json +1 -2
  877. package/paginator/paginator.d.ts +11 -0
  878. package/paginator/primeng-paginator.d.ts +1 -0
  879. package/panel/package.json +1 -2
  880. package/panel/panel.d.ts +9 -0
  881. package/panel/primeng-panel.d.ts +1 -0
  882. package/panelmenu/package.json +1 -2
  883. package/panelmenu/panelmenu.d.ts +10 -0
  884. package/panelmenu/primeng-panelmenu.d.ts +1 -0
  885. package/password/package.json +1 -2
  886. package/password/password.d.ts +11 -0
  887. package/password/primeng-password.d.ts +1 -0
  888. package/picklist/package.json +1 -2
  889. package/picklist/picklist.d.ts +11 -0
  890. package/picklist/primeng-picklist.d.ts +1 -0
  891. package/primeng.d.ts +1 -0
  892. package/progressbar/package.json +1 -2
  893. package/progressbar/primeng-progressbar.d.ts +1 -0
  894. package/progressbar/progressbar.d.ts +7 -0
  895. package/progressspinner/package.json +1 -2
  896. package/progressspinner/primeng-progressspinner.d.ts +1 -0
  897. package/progressspinner/progressspinner.d.ts +7 -0
  898. package/radiobutton/package.json +1 -2
  899. package/radiobutton/primeng-radiobutton.d.ts +1 -0
  900. package/radiobutton/radiobutton.d.ts +9 -0
  901. package/rating/package.json +1 -2
  902. package/rating/primeng-rating.d.ts +1 -0
  903. package/rating/rating.d.ts +7 -0
  904. package/resources/components/breadcrumb/breadcrumb.css +2 -1
  905. package/resources/components/fileupload/fileupload.css +5 -1
  906. package/resources/components/tabmenu/tabmenu.css +1 -1
  907. package/ripple/package.json +1 -2
  908. package/ripple/primeng-ripple.d.ts +1 -0
  909. package/ripple/ripple.d.ts +7 -0
  910. package/scrollpanel/package.json +1 -2
  911. package/scrollpanel/primeng-scrollpanel.d.ts +1 -0
  912. package/scrollpanel/scrollpanel.d.ts +7 -0
  913. package/scrolltop/package.json +1 -2
  914. package/scrolltop/primeng-scrolltop.d.ts +1 -0
  915. package/scrolltop/scrolltop.d.ts +7 -0
  916. package/selectbutton/package.json +1 -2
  917. package/selectbutton/primeng-selectbutton.d.ts +1 -0
  918. package/selectbutton/selectbutton.d.ts +8 -0
  919. package/sidebar/package.json +1 -2
  920. package/sidebar/primeng-sidebar.d.ts +1 -0
  921. package/sidebar/sidebar.d.ts +8 -0
  922. package/skeleton/package.json +1 -2
  923. package/skeleton/primeng-skeleton.d.ts +1 -0
  924. package/skeleton/skeleton.d.ts +7 -0
  925. package/slidemenu/package.json +1 -2
  926. package/slidemenu/primeng-slidemenu.d.ts +1 -0
  927. package/slidemenu/slidemenu.d.ts +10 -0
  928. package/slider/package.json +1 -2
  929. package/slider/primeng-slider.d.ts +1 -0
  930. package/slider/slider.d.ts +7 -0
  931. package/spinner/package.json +1 -2
  932. package/spinner/primeng-spinner.d.ts +1 -0
  933. package/spinner/spinner.d.ts +8 -0
  934. package/splitbutton/package.json +1 -2
  935. package/splitbutton/primeng-splitbutton.d.ts +1 -0
  936. package/splitbutton/splitbutton.d.ts +9 -0
  937. package/splitter/package.json +1 -2
  938. package/splitter/primeng-splitter.d.ts +1 -0
  939. package/splitter/splitter.d.ts +10 -1
  940. package/steps/package.json +1 -2
  941. package/steps/primeng-steps.d.ts +1 -0
  942. package/steps/steps.d.ts +8 -0
  943. package/styleclass/package.json +1 -2
  944. package/styleclass/primeng-styleclass.d.ts +1 -0
  945. package/styleclass/styleclass.d.ts +7 -0
  946. package/table/package.json +1 -2
  947. package/table/primeng-table.d.ts +1 -0
  948. package/table/table.d.ts +66 -0
  949. package/tabmenu/package.json +1 -2
  950. package/tabmenu/primeng-tabmenu.d.ts +1 -0
  951. package/tabmenu/tabmenu.d.ts +10 -0
  952. package/tabview/package.json +1 -2
  953. package/tabview/primeng-tabview.d.ts +1 -0
  954. package/tabview/tabview.d.ts +12 -0
  955. package/tag/package.json +1 -2
  956. package/tag/primeng-tag.d.ts +1 -0
  957. package/tag/tag.d.ts +7 -0
  958. package/terminal/package.json +1 -2
  959. package/terminal/primeng-terminal.d.ts +1 -0
  960. package/terminal/terminal.d.ts +8 -0
  961. package/terminal/terminalservice.d.ts +3 -0
  962. package/tieredmenu/package.json +1 -2
  963. package/tieredmenu/primeng-tieredmenu.d.ts +1 -0
  964. package/tieredmenu/tieredmenu.d.ts +11 -0
  965. package/timeline/package.json +1 -2
  966. package/timeline/primeng-timeline.d.ts +1 -0
  967. package/timeline/timeline.d.ts +8 -0
  968. package/toast/package.json +1 -2
  969. package/toast/primeng-toast.d.ts +1 -0
  970. package/toast/toast.d.ts +11 -0
  971. package/togglebutton/package.json +1 -2
  972. package/togglebutton/primeng-togglebutton.d.ts +1 -0
  973. package/togglebutton/togglebutton.d.ts +8 -0
  974. package/toolbar/package.json +1 -2
  975. package/toolbar/primeng-toolbar.d.ts +1 -0
  976. package/toolbar/toolbar.d.ts +7 -0
  977. package/tooltip/package.json +1 -2
  978. package/tooltip/primeng-tooltip.d.ts +1 -0
  979. package/tooltip/tooltip.d.ts +7 -0
  980. package/tree/package.json +1 -2
  981. package/tree/primeng-tree.d.ts +1 -0
  982. package/tree/tree.d.ts +12 -0
  983. package/treetable/package.json +1 -2
  984. package/treetable/primeng-treetable.d.ts +1 -0
  985. package/treetable/treetable.d.ts +43 -0
  986. package/tristatecheckbox/package.json +1 -2
  987. package/tristatecheckbox/primeng-tristatecheckbox.d.ts +1 -0
  988. package/tristatecheckbox/tristatecheckbox.d.ts +7 -0
  989. package/utils/package.json +1 -2
  990. package/utils/primeng-utils.d.ts +1 -0
  991. package/virtualscroller/package.json +1 -2
  992. package/virtualscroller/primeng-virtualscroller.d.ts +1 -0
  993. package/virtualscroller/virtualscroller.d.ts +9 -0
  994. package/accordion/primeng-accordion.metadata.json +0 -1
  995. package/api/primeng-api.metadata.json +0 -1
  996. package/autocomplete/primeng-autocomplete.metadata.json +0 -1
  997. package/avatar/primeng-avatar.metadata.json +0 -1
  998. package/avatargroup/primeng-avatargroup.metadata.json +0 -1
  999. package/badge/primeng-badge.metadata.json +0 -1
  1000. package/blockui/primeng-blockui.metadata.json +0 -1
  1001. package/breadcrumb/primeng-breadcrumb.metadata.json +0 -1
  1002. package/bundles/primeng-accordion.umd.min.js +0 -2
  1003. package/bundles/primeng-accordion.umd.min.js.map +0 -1
  1004. package/bundles/primeng-api.umd.min.js +0 -2
  1005. package/bundles/primeng-api.umd.min.js.map +0 -1
  1006. package/bundles/primeng-autocomplete.umd.min.js +0 -16
  1007. package/bundles/primeng-autocomplete.umd.min.js.map +0 -1
  1008. package/bundles/primeng-avatar.umd.min.js +0 -2
  1009. package/bundles/primeng-avatar.umd.min.js.map +0 -1
  1010. package/bundles/primeng-avatargroup.umd.min.js +0 -2
  1011. package/bundles/primeng-avatargroup.umd.min.js.map +0 -1
  1012. package/bundles/primeng-badge.umd.min.js +0 -2
  1013. package/bundles/primeng-badge.umd.min.js.map +0 -1
  1014. package/bundles/primeng-blockui.umd.min.js +0 -2
  1015. package/bundles/primeng-blockui.umd.min.js.map +0 -1
  1016. package/bundles/primeng-breadcrumb.umd.min.js +0 -2
  1017. package/bundles/primeng-breadcrumb.umd.min.js.map +0 -1
  1018. package/bundles/primeng-button.umd.min.js +0 -2
  1019. package/bundles/primeng-button.umd.min.js.map +0 -1
  1020. package/bundles/primeng-calendar.umd.min.js +0 -16
  1021. package/bundles/primeng-calendar.umd.min.js.map +0 -1
  1022. package/bundles/primeng-captcha.umd.min.js +0 -2
  1023. package/bundles/primeng-captcha.umd.min.js.map +0 -1
  1024. package/bundles/primeng-card.umd.min.js +0 -2
  1025. package/bundles/primeng-card.umd.min.js.map +0 -1
  1026. package/bundles/primeng-carousel.umd.min.js +0 -16
  1027. package/bundles/primeng-carousel.umd.min.js.map +0 -1
  1028. package/bundles/primeng-cascadeselect.umd.min.js +0 -16
  1029. package/bundles/primeng-cascadeselect.umd.min.js.map +0 -1
  1030. package/bundles/primeng-chart.umd.min.js +0 -2
  1031. package/bundles/primeng-chart.umd.min.js.map +0 -1
  1032. package/bundles/primeng-checkbox.umd.min.js +0 -16
  1033. package/bundles/primeng-checkbox.umd.min.js.map +0 -1
  1034. package/bundles/primeng-chip.umd.min.js +0 -2
  1035. package/bundles/primeng-chip.umd.min.js.map +0 -1
  1036. package/bundles/primeng-chips.umd.min.js +0 -16
  1037. package/bundles/primeng-chips.umd.min.js.map +0 -1
  1038. package/bundles/primeng-codehighlighter.umd.min.js +0 -2
  1039. package/bundles/primeng-codehighlighter.umd.min.js.map +0 -1
  1040. package/bundles/primeng-colorpicker.umd.min.js +0 -2
  1041. package/bundles/primeng-colorpicker.umd.min.js.map +0 -1
  1042. package/bundles/primeng-confirmdialog.umd.min.js +0 -2
  1043. package/bundles/primeng-confirmdialog.umd.min.js.map +0 -1
  1044. package/bundles/primeng-confirmpopup.umd.min.js +0 -2
  1045. package/bundles/primeng-confirmpopup.umd.min.js.map +0 -1
  1046. package/bundles/primeng-contextmenu.umd.min.js +0 -16
  1047. package/bundles/primeng-contextmenu.umd.min.js.map +0 -1
  1048. package/bundles/primeng-dataview.umd.min.js +0 -2
  1049. package/bundles/primeng-dataview.umd.min.js.map +0 -1
  1050. package/bundles/primeng-defer.umd.min.js +0 -2
  1051. package/bundles/primeng-defer.umd.min.js.map +0 -1
  1052. package/bundles/primeng-dialog.umd.min.js +0 -2
  1053. package/bundles/primeng-dialog.umd.min.js.map +0 -1
  1054. package/bundles/primeng-divider.umd.min.js +0 -2
  1055. package/bundles/primeng-divider.umd.min.js.map +0 -1
  1056. package/bundles/primeng-dom.umd.min.js +0 -16
  1057. package/bundles/primeng-dom.umd.min.js.map +0 -1
  1058. package/bundles/primeng-dragdrop.umd.min.js +0 -2
  1059. package/bundles/primeng-dragdrop.umd.min.js.map +0 -1
  1060. package/bundles/primeng-dropdown.umd.min.js +0 -16
  1061. package/bundles/primeng-dropdown.umd.min.js.map +0 -1
  1062. package/bundles/primeng-dynamicdialog.umd.min.js +0 -2
  1063. package/bundles/primeng-dynamicdialog.umd.min.js.map +0 -1
  1064. package/bundles/primeng-editor.umd.min.js +0 -2
  1065. package/bundles/primeng-editor.umd.min.js.map +0 -1
  1066. package/bundles/primeng-fieldset.umd.min.js +0 -2
  1067. package/bundles/primeng-fieldset.umd.min.js.map +0 -1
  1068. package/bundles/primeng-fileupload.umd.min.js +0 -16
  1069. package/bundles/primeng-fileupload.umd.min.js.map +0 -1
  1070. package/bundles/primeng-focustrap.umd.min.js +0 -2
  1071. package/bundles/primeng-focustrap.umd.min.js.map +0 -1
  1072. package/bundles/primeng-fullcalendar.umd.min.js +0 -2
  1073. package/bundles/primeng-fullcalendar.umd.min.js.map +0 -1
  1074. package/bundles/primeng-galleria.umd.min.js +0 -16
  1075. package/bundles/primeng-galleria.umd.min.js.map +0 -1
  1076. package/bundles/primeng-gmap.umd.min.js +0 -16
  1077. package/bundles/primeng-gmap.umd.min.js.map +0 -1
  1078. package/bundles/primeng-inplace.umd.min.js +0 -2
  1079. package/bundles/primeng-inplace.umd.min.js.map +0 -1
  1080. package/bundles/primeng-inputmask.umd.min.js +0 -2
  1081. package/bundles/primeng-inputmask.umd.min.js.map +0 -1
  1082. package/bundles/primeng-inputnumber.umd.min.js +0 -16
  1083. package/bundles/primeng-inputnumber.umd.min.js.map +0 -1
  1084. package/bundles/primeng-inputswitch.umd.min.js +0 -2
  1085. package/bundles/primeng-inputswitch.umd.min.js.map +0 -1
  1086. package/bundles/primeng-inputtext.umd.min.js +0 -2
  1087. package/bundles/primeng-inputtext.umd.min.js.map +0 -1
  1088. package/bundles/primeng-inputtextarea.umd.min.js +0 -2
  1089. package/bundles/primeng-inputtextarea.umd.min.js.map +0 -1
  1090. package/bundles/primeng-keyfilter.umd.min.js +0 -16
  1091. package/bundles/primeng-keyfilter.umd.min.js.map +0 -1
  1092. package/bundles/primeng-knob.umd.min.js +0 -2
  1093. package/bundles/primeng-knob.umd.min.js.map +0 -1
  1094. package/bundles/primeng-lightbox.umd.min.js +0 -2
  1095. package/bundles/primeng-lightbox.umd.min.js.map +0 -1
  1096. package/bundles/primeng-listbox.umd.min.js +0 -16
  1097. package/bundles/primeng-listbox.umd.min.js.map +0 -1
  1098. package/bundles/primeng-megamenu.umd.min.js +0 -2
  1099. package/bundles/primeng-megamenu.umd.min.js.map +0 -1
  1100. package/bundles/primeng-menu.umd.min.js +0 -16
  1101. package/bundles/primeng-menu.umd.min.js.map +0 -1
  1102. package/bundles/primeng-menubar.umd.min.js +0 -2
  1103. package/bundles/primeng-menubar.umd.min.js.map +0 -1
  1104. package/bundles/primeng-message.umd.min.js +0 -2
  1105. package/bundles/primeng-message.umd.min.js.map +0 -1
  1106. package/bundles/primeng-messages.umd.min.js +0 -16
  1107. package/bundles/primeng-messages.umd.min.js.map +0 -1
  1108. package/bundles/primeng-multiselect.umd.min.js +0 -16
  1109. package/bundles/primeng-multiselect.umd.min.js.map +0 -1
  1110. package/bundles/primeng-orderlist.umd.min.js +0 -16
  1111. package/bundles/primeng-orderlist.umd.min.js.map +0 -1
  1112. package/bundles/primeng-organizationchart.umd.min.js +0 -16
  1113. package/bundles/primeng-organizationchart.umd.min.js.map +0 -1
  1114. package/bundles/primeng-overlaypanel.umd.min.js +0 -2
  1115. package/bundles/primeng-overlaypanel.umd.min.js.map +0 -1
  1116. package/bundles/primeng-paginator.umd.min.js +0 -16
  1117. package/bundles/primeng-paginator.umd.min.js.map +0 -1
  1118. package/bundles/primeng-panel.umd.min.js +0 -2
  1119. package/bundles/primeng-panel.umd.min.js.map +0 -1
  1120. package/bundles/primeng-panelmenu.umd.min.js +0 -16
  1121. package/bundles/primeng-panelmenu.umd.min.js.map +0 -1
  1122. package/bundles/primeng-password.umd.min.js +0 -2
  1123. package/bundles/primeng-password.umd.min.js.map +0 -1
  1124. package/bundles/primeng-picklist.umd.min.js +0 -2
  1125. package/bundles/primeng-picklist.umd.min.js.map +0 -1
  1126. package/bundles/primeng-progressbar.umd.min.js +0 -2
  1127. package/bundles/primeng-progressbar.umd.min.js.map +0 -1
  1128. package/bundles/primeng-progressspinner.umd.min.js +0 -2
  1129. package/bundles/primeng-progressspinner.umd.min.js.map +0 -1
  1130. package/bundles/primeng-radiobutton.umd.min.js +0 -2
  1131. package/bundles/primeng-radiobutton.umd.min.js.map +0 -1
  1132. package/bundles/primeng-rating.umd.min.js +0 -2
  1133. package/bundles/primeng-rating.umd.min.js.map +0 -1
  1134. package/bundles/primeng-ripple.umd.min.js +0 -2
  1135. package/bundles/primeng-ripple.umd.min.js.map +0 -1
  1136. package/bundles/primeng-scrollpanel.umd.min.js +0 -2
  1137. package/bundles/primeng-scrollpanel.umd.min.js.map +0 -1
  1138. package/bundles/primeng-scrolltop.umd.min.js +0 -2
  1139. package/bundles/primeng-scrolltop.umd.min.js.map +0 -1
  1140. package/bundles/primeng-selectbutton.umd.min.js +0 -16
  1141. package/bundles/primeng-selectbutton.umd.min.js.map +0 -1
  1142. package/bundles/primeng-sidebar.umd.min.js +0 -2
  1143. package/bundles/primeng-sidebar.umd.min.js.map +0 -1
  1144. package/bundles/primeng-skeleton.umd.min.js +0 -2
  1145. package/bundles/primeng-skeleton.umd.min.js.map +0 -1
  1146. package/bundles/primeng-slidemenu.umd.min.js +0 -2
  1147. package/bundles/primeng-slidemenu.umd.min.js.map +0 -1
  1148. package/bundles/primeng-slider.umd.min.js +0 -2
  1149. package/bundles/primeng-slider.umd.min.js.map +0 -1
  1150. package/bundles/primeng-spinner.umd.min.js +0 -2
  1151. package/bundles/primeng-spinner.umd.min.js.map +0 -1
  1152. package/bundles/primeng-splitbutton.umd.min.js +0 -2
  1153. package/bundles/primeng-splitbutton.umd.min.js.map +0 -1
  1154. package/bundles/primeng-splitter.umd.min.js +0 -16
  1155. package/bundles/primeng-splitter.umd.min.js.map +0 -1
  1156. package/bundles/primeng-steps.umd.min.js +0 -2
  1157. package/bundles/primeng-steps.umd.min.js.map +0 -1
  1158. package/bundles/primeng-styleclass.umd.min.js +0 -2
  1159. package/bundles/primeng-styleclass.umd.min.js.map +0 -1
  1160. package/bundles/primeng-table.umd.min.js +0 -16
  1161. package/bundles/primeng-table.umd.min.js.map +0 -1
  1162. package/bundles/primeng-tabmenu.umd.min.js +0 -2
  1163. package/bundles/primeng-tabmenu.umd.min.js.map +0 -1
  1164. package/bundles/primeng-tabview.umd.min.js +0 -2
  1165. package/bundles/primeng-tabview.umd.min.js.map +0 -1
  1166. package/bundles/primeng-tag.umd.min.js +0 -2
  1167. package/bundles/primeng-tag.umd.min.js.map +0 -1
  1168. package/bundles/primeng-terminal.umd.min.js +0 -2
  1169. package/bundles/primeng-terminal.umd.min.js.map +0 -1
  1170. package/bundles/primeng-tieredmenu.umd.min.js +0 -2
  1171. package/bundles/primeng-tieredmenu.umd.min.js.map +0 -1
  1172. package/bundles/primeng-timeline.umd.min.js +0 -2
  1173. package/bundles/primeng-timeline.umd.min.js.map +0 -1
  1174. package/bundles/primeng-toast.umd.min.js +0 -16
  1175. package/bundles/primeng-toast.umd.min.js.map +0 -1
  1176. package/bundles/primeng-togglebutton.umd.min.js +0 -2
  1177. package/bundles/primeng-togglebutton.umd.min.js.map +0 -1
  1178. package/bundles/primeng-toolbar.umd.min.js +0 -2
  1179. package/bundles/primeng-toolbar.umd.min.js.map +0 -1
  1180. package/bundles/primeng-tooltip.umd.min.js +0 -2
  1181. package/bundles/primeng-tooltip.umd.min.js.map +0 -1
  1182. package/bundles/primeng-tree.umd.min.js +0 -16
  1183. package/bundles/primeng-tree.umd.min.js.map +0 -1
  1184. package/bundles/primeng-treetable.umd.min.js +0 -16
  1185. package/bundles/primeng-treetable.umd.min.js.map +0 -1
  1186. package/bundles/primeng-tristatecheckbox.umd.min.js +0 -2
  1187. package/bundles/primeng-tristatecheckbox.umd.min.js.map +0 -1
  1188. package/bundles/primeng-utils.umd.min.js +0 -2
  1189. package/bundles/primeng-utils.umd.min.js.map +0 -1
  1190. package/bundles/primeng-virtualscroller.umd.min.js +0 -2
  1191. package/bundles/primeng-virtualscroller.umd.min.js.map +0 -1
  1192. package/bundles/primeng.umd.min.js +0 -2
  1193. package/bundles/primeng.umd.min.js.map +0 -1
  1194. package/button/primeng-button.metadata.json +0 -1
  1195. package/calendar/primeng-calendar.metadata.json +0 -1
  1196. package/captcha/primeng-captcha.metadata.json +0 -1
  1197. package/card/primeng-card.metadata.json +0 -1
  1198. package/carousel/primeng-carousel.metadata.json +0 -1
  1199. package/cascadeselect/primeng-cascadeselect.metadata.json +0 -1
  1200. package/chart/primeng-chart.metadata.json +0 -1
  1201. package/checkbox/primeng-checkbox.metadata.json +0 -1
  1202. package/chip/primeng-chip.metadata.json +0 -1
  1203. package/chips/primeng-chips.metadata.json +0 -1
  1204. package/codehighlighter/primeng-codehighlighter.metadata.json +0 -1
  1205. package/colorpicker/primeng-colorpicker.metadata.json +0 -1
  1206. package/confirmdialog/primeng-confirmdialog.metadata.json +0 -1
  1207. package/confirmpopup/primeng-confirmpopup.metadata.json +0 -1
  1208. package/contextmenu/primeng-contextmenu.metadata.json +0 -1
  1209. package/dataview/primeng-dataview.metadata.json +0 -1
  1210. package/defer/primeng-defer.metadata.json +0 -1
  1211. package/dialog/primeng-dialog.metadata.json +0 -1
  1212. package/divider/primeng-divider.metadata.json +0 -1
  1213. package/dom/primeng-dom.metadata.json +0 -1
  1214. package/dragdrop/primeng-dragdrop.metadata.json +0 -1
  1215. package/dropdown/primeng-dropdown.metadata.json +0 -1
  1216. package/dynamicdialog/primeng-dynamicdialog.metadata.json +0 -1
  1217. package/editor/primeng-editor.metadata.json +0 -1
  1218. package/fieldset/primeng-fieldset.metadata.json +0 -1
  1219. package/fileupload/primeng-fileupload.metadata.json +0 -1
  1220. package/focustrap/primeng-focustrap.metadata.json +0 -1
  1221. package/fullcalendar/primeng-fullcalendar.metadata.json +0 -1
  1222. package/galleria/primeng-galleria.metadata.json +0 -1
  1223. package/gmap/primeng-gmap.metadata.json +0 -1
  1224. package/inplace/primeng-inplace.metadata.json +0 -1
  1225. package/inputmask/primeng-inputmask.metadata.json +0 -1
  1226. package/inputnumber/primeng-inputnumber.metadata.json +0 -1
  1227. package/inputswitch/primeng-inputswitch.metadata.json +0 -1
  1228. package/inputtext/primeng-inputtext.metadata.json +0 -1
  1229. package/inputtextarea/primeng-inputtextarea.metadata.json +0 -1
  1230. package/keyfilter/primeng-keyfilter.metadata.json +0 -1
  1231. package/knob/primeng-knob.metadata.json +0 -1
  1232. package/lightbox/primeng-lightbox.metadata.json +0 -1
  1233. package/listbox/primeng-listbox.metadata.json +0 -1
  1234. package/megamenu/primeng-megamenu.metadata.json +0 -1
  1235. package/menu/primeng-menu.metadata.json +0 -1
  1236. package/menubar/primeng-menubar.metadata.json +0 -1
  1237. package/message/primeng-message.metadata.json +0 -1
  1238. package/messages/primeng-messages.metadata.json +0 -1
  1239. package/multiselect/primeng-multiselect.metadata.json +0 -1
  1240. package/orderlist/primeng-orderlist.metadata.json +0 -1
  1241. package/organizationchart/primeng-organizationchart.metadata.json +0 -1
  1242. package/overlaypanel/primeng-overlaypanel.metadata.json +0 -1
  1243. package/paginator/primeng-paginator.metadata.json +0 -1
  1244. package/panel/primeng-panel.metadata.json +0 -1
  1245. package/panelmenu/primeng-panelmenu.metadata.json +0 -1
  1246. package/password/primeng-password.metadata.json +0 -1
  1247. package/picklist/primeng-picklist.metadata.json +0 -1
  1248. package/primeng.metadata.json +0 -1
  1249. package/progressbar/primeng-progressbar.metadata.json +0 -1
  1250. package/progressspinner/primeng-progressspinner.metadata.json +0 -1
  1251. package/radiobutton/primeng-radiobutton.metadata.json +0 -1
  1252. package/rating/primeng-rating.metadata.json +0 -1
  1253. package/ripple/primeng-ripple.metadata.json +0 -1
  1254. package/scrollpanel/primeng-scrollpanel.metadata.json +0 -1
  1255. package/scrolltop/primeng-scrolltop.metadata.json +0 -1
  1256. package/selectbutton/primeng-selectbutton.metadata.json +0 -1
  1257. package/sidebar/primeng-sidebar.metadata.json +0 -1
  1258. package/skeleton/primeng-skeleton.metadata.json +0 -1
  1259. package/slidemenu/primeng-slidemenu.metadata.json +0 -1
  1260. package/slider/primeng-slider.metadata.json +0 -1
  1261. package/spinner/primeng-spinner.metadata.json +0 -1
  1262. package/splitbutton/primeng-splitbutton.metadata.json +0 -1
  1263. package/splitter/primeng-splitter.metadata.json +0 -1
  1264. package/steps/primeng-steps.metadata.json +0 -1
  1265. package/styleclass/primeng-styleclass.metadata.json +0 -1
  1266. package/table/primeng-table.metadata.json +0 -1
  1267. package/tabmenu/primeng-tabmenu.metadata.json +0 -1
  1268. package/tabview/primeng-tabview.metadata.json +0 -1
  1269. package/tag/primeng-tag.metadata.json +0 -1
  1270. package/terminal/primeng-terminal.metadata.json +0 -1
  1271. package/tieredmenu/primeng-tieredmenu.metadata.json +0 -1
  1272. package/timeline/primeng-timeline.metadata.json +0 -1
  1273. package/toast/primeng-toast.metadata.json +0 -1
  1274. package/togglebutton/primeng-togglebutton.metadata.json +0 -1
  1275. package/toolbar/primeng-toolbar.metadata.json +0 -1
  1276. package/tooltip/primeng-tooltip.metadata.json +0 -1
  1277. package/tree/primeng-tree.metadata.json +0 -1
  1278. package/treetable/primeng-treetable.metadata.json +0 -1
  1279. package/tristatecheckbox/primeng-tristatecheckbox.metadata.json +0 -1
  1280. package/utils/primeng-utils.metadata.json +0 -1
  1281. package/virtualscroller/primeng-virtualscroller.metadata.json +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-table.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","../../src/app/components/table/table.ts","../../src/app/components/table/primeng-table.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { NgModule, Component, HostListener, OnInit, OnDestroy, AfterViewInit, Directive, Optional, AfterContentInit,\n Input, Output, EventEmitter, ElementRef, ContentChildren, TemplateRef, QueryList, ViewChild, NgZone, ChangeDetectorRef, OnChanges, SimpleChanges, ChangeDetectionStrategy, Query, ViewEncapsulation, Renderer2} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { PrimeTemplate, SharedModule, FilterMatchMode, FilterOperator, SelectItem, PrimeNGConfig, TranslationKeys, FilterService } from 'primeng/api';\nimport { PaginatorModule } from 'primeng/paginator';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { ButtonModule } from 'primeng/button';\nimport { SelectButtonModule } from 'primeng/selectbutton';\nimport { TriStateCheckboxModule } from 'primeng/tristatecheckbox';\nimport { CalendarModule } from 'primeng/calendar';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { DomHandler, ConnectedOverlayScrollHandler } from 'primeng/dom';\nimport { ObjectUtils } from 'primeng/utils';\nimport { SortMeta } from 'primeng/api';\nimport { TableState } from 'primeng/api';\nimport { FilterMetadata } from 'primeng/api';\nimport { Injectable } from '@angular/core';\nimport { BlockableUI } from 'primeng/api';\nimport { Subject, Subscription } from 'rxjs';\nimport { ScrollingModule, CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport {trigger,style,transition,animate,AnimationEvent} from '@angular/animations';\n\n@Injectable()\nexport class TableService {\n\n private sortSource = new Subject<SortMeta|SortMeta[]>();\n private selectionSource = new Subject();\n private contextMenuSource = new Subject<any>();\n private valueSource = new Subject<any>();\n private totalRecordsSource = new Subject<any>();\n private columnsSource = new Subject();\n private resetSource = new Subject();\n\n sortSource$ = this.sortSource.asObservable();\n selectionSource$ = this.selectionSource.asObservable();\n contextMenuSource$ = this.contextMenuSource.asObservable();\n valueSource$ = this.valueSource.asObservable();\n totalRecordsSource$ = this.totalRecordsSource.asObservable();\n columnsSource$ = this.columnsSource.asObservable();\n resetSource$ = this.resetSource.asObservable();\n\n onSort(sortMeta: SortMeta|SortMeta[]) {\n this.sortSource.next(sortMeta);\n }\n\n onSelectionChange() {\n this.selectionSource.next();\n }\n\n onResetChange() {\n this.resetSource.next();\n }\n\n onContextMenu(data: any) {\n this.contextMenuSource.next(data);\n }\n\n onValueChange(value: any) {\n this.valueSource.next(value);\n }\n\n onTotalRecordsChange(value: number) {\n this.totalRecordsSource.next(value);\n }\n\n onColumnsChange(columns: any[]) {\n this.columnsSource.next(columns);\n }\n}\n\n@Component({\n selector: 'p-table',\n template: `\n <div #container [ngStyle]=\"style\" [class]=\"styleClass\" data-scrollselectors=\".p-datatable-scrollable-body, .p-datatable-unfrozen-view .p-datatable-scrollable-body\"\n [ngClass]=\"{'p-datatable p-component': true,\n 'p-datatable-hoverable-rows': (rowHover||selectionMode),\n 'p-datatable-auto-layout': autoLayout,\n 'p-datatable-resizable': resizableColumns,\n 'p-datatable-resizable-fit': (resizableColumns && columnResizeMode === 'fit'),\n 'p-datatable-scrollable': scrollable,\n 'p-datatable-flex-scrollable': (scrollable && scrollHeight === 'flex'),\n 'p-datatable-responsive': responsive}\">\n <div class=\"p-datatable-loading-overlay p-component-overlay\" *ngIf=\"loading && showLoader\">\n <i [class]=\"'p-datatable-loading-icon pi-spin ' + loadingIcon\"></i>\n </div>\n <div *ngIf=\"captionTemplate\" class=\"p-datatable-header\">\n <ng-container *ngTemplateOutlet=\"captionTemplate\"></ng-container>\n </div>\n <p-paginator [rows]=\"rows\" [first]=\"first\" [totalRecords]=\"totalRecords\" [pageLinkSize]=\"pageLinks\" styleClass=\"p-paginator-top\" [alwaysShow]=\"alwaysShowPaginator\"\n (onPageChange)=\"onPageChange($event)\" [rowsPerPageOptions]=\"rowsPerPageOptions\" *ngIf=\"paginator && (paginatorPosition === 'top' || paginatorPosition =='both')\"\n [templateLeft]=\"paginatorLeftTemplate\" [templateRight]=\"paginatorRightTemplate\" [dropdownAppendTo]=\"paginatorDropdownAppendTo\" [dropdownScrollHeight]=\"paginatorDropdownScrollHeight\"\n [currentPageReportTemplate]=\"currentPageReportTemplate\" [showFirstLastIcon]=\"showFirstLastIcon\" [dropdownItemTemplate]=\"paginatorDropdownItemTemplate\" [showCurrentPageReport]=\"showCurrentPageReport\" [showJumpToPageDropdown]=\"showJumpToPageDropdown\" [showPageLinks]=\"showPageLinks\"></p-paginator>\n\n <div class=\"p-datatable-wrapper\" *ngIf=\"!scrollable\">\n <table role=\"grid\" #table [ngClass]=\"tableStyleClass\" [ngStyle]=\"tableStyle\">\n <ng-container *ngTemplateOutlet=\"colGroupTemplate; context {$implicit: columns}\"></ng-container>\n <thead class=\"p-datatable-thead\">\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: {$implicit: columns}\"></ng-container>\n </thead>\n <tbody class=\"p-datatable-tbody\" [pTableBody]=\"columns\" [pTableBodyTemplate]=\"bodyTemplate\"></tbody>\n <tfoot *ngIf=\"footerTemplate\" class=\"p-datatable-tfoot\">\n <ng-container *ngTemplateOutlet=\"footerTemplate; context {$implicit: columns}\"></ng-container>\n </tfoot>\n </table>\n </div>\n\n <div class=\"p-datatable-scrollable-wrapper\" *ngIf=\"scrollable\">\n <div class=\"p-datatable-scrollable-view p-datatable-frozen-view\" *ngIf=\"frozenColumns||frozenBodyTemplate\" #scrollableFrozenView [pScrollableView]=\"frozenColumns\" [frozen]=\"true\" [ngStyle]=\"{width: frozenWidth}\" [scrollHeight]=\"scrollHeight\"></div>\n <div class=\"p-datatable-scrollable-view\" #scrollableView [pScrollableView]=\"columns\" [frozen]=\"false\" [scrollHeight]=\"scrollHeight\" [ngStyle]=\"{left: frozenWidth, width: 'calc(100% - '+frozenWidth+')'}\"></div>\n </div>\n\n <p-paginator [rows]=\"rows\" [first]=\"first\" [totalRecords]=\"totalRecords\" [pageLinkSize]=\"pageLinks\" styleClass=\"p-paginator-bottom\" [alwaysShow]=\"alwaysShowPaginator\"\n (onPageChange)=\"onPageChange($event)\" [rowsPerPageOptions]=\"rowsPerPageOptions\" *ngIf=\"paginator && (paginatorPosition === 'bottom' || paginatorPosition =='both')\"\n [templateLeft]=\"paginatorLeftTemplate\" [templateRight]=\"paginatorRightTemplate\" [dropdownAppendTo]=\"paginatorDropdownAppendTo\" [dropdownScrollHeight]=\"paginatorDropdownScrollHeight\"\n [currentPageReportTemplate]=\"currentPageReportTemplate\" [showFirstLastIcon]=\"showFirstLastIcon\" [dropdownItemTemplate]=\"paginatorDropdownItemTemplate\" [showCurrentPageReport]=\"showCurrentPageReport\" [showJumpToPageDropdown]=\"showJumpToPageDropdown\" [showPageLinks]=\"showPageLinks\"></p-paginator>\n\n <div *ngIf=\"summaryTemplate\" class=\"p-datatable-footer\">\n <ng-container *ngTemplateOutlet=\"summaryTemplate\"></ng-container>\n </div>\n\n <div #resizeHelper class=\"p-column-resizer-helper\" style=\"display:none\" *ngIf=\"resizableColumns\"></div>\n <span #reorderIndicatorUp class=\"pi pi-arrow-down p-datatable-reorder-indicator-up\" style=\"display:none\" *ngIf=\"reorderableColumns\"></span>\n <span #reorderIndicatorDown class=\"pi pi-arrow-up p-datatable-reorder-indicator-down\" style=\"display:none\" *ngIf=\"reorderableColumns\"></span>\n </div>\n `,\n providers: [TableService],\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./table.css']\n})\nexport class Table implements OnInit, AfterViewInit, AfterContentInit, BlockableUI, OnChanges {\n\n @Input() frozenColumns: any[];\n\n @Input() frozenValue: any[];\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() tableStyle: any;\n\n @Input() tableStyleClass: string;\n\n @Input() paginator: boolean;\n\n @Input() pageLinks: number = 5;\n\n @Input() rowsPerPageOptions: any[];\n\n @Input() alwaysShowPaginator: boolean = true;\n\n @Input() paginatorPosition: string = 'bottom';\n\n @Input() paginatorDropdownAppendTo: any;\n\n @Input() paginatorDropdownScrollHeight: string = '200px';\n\n @Input() currentPageReportTemplate: string = '{currentPage} of {totalPages}';\n\n @Input() showCurrentPageReport: boolean;\n\n @Input() showJumpToPageDropdown: boolean;\n\n @Input() showFirstLastIcon: boolean = true;\n\n @Input() showPageLinks: boolean = true;\n\n @Input() defaultSortOrder: number = 1;\n\n @Input() sortMode: string = 'single';\n\n @Input() resetPageOnSort: boolean = true;\n\n @Input() selectionMode: string;\n\n @Output() selectionChange: EventEmitter<any> = new EventEmitter();\n\n @Input() contextMenuSelection: any;\n\n @Output() contextMenuSelectionChange: EventEmitter<any> = new EventEmitter();\n\n @Input() contextMenuSelectionMode: string = \"separate\";\n\n @Input() dataKey: string;\n\n @Input() metaKeySelection: boolean;\n\n @Input() rowTrackBy: Function = (index: number, item: any) => item;\n\n @Input() lazy: boolean = false;\n\n @Input() lazyLoadOnInit: boolean = true;\n\n @Input() compareSelectionBy: string = 'deepEquals';\n\n @Input() csvSeparator: string = ',';\n\n @Input() exportFilename: string = 'download';\n\n @Input() filters: { [s: string]: FilterMetadata | FilterMetadata[] } = {};\n\n @Input() globalFilterFields: string[];\n\n @Input() filterDelay: number = 300;\n\n @Input() filterLocale: string;\n\n @Input() expandedRowKeys: { [s: string]: boolean; } = {};\n\n @Input() editingRowKeys: { [s: string]: boolean; } = {};\n\n @Input() rowExpandMode: string = 'multiple';\n\n @Input() scrollable: boolean;\n\n @Input() scrollHeight: string;\n\n @Input() virtualScroll: boolean;\n\n @Input() virtualScrollDelay: number = 250;\n\n @Input() virtualRowHeight: number = 28;\n\n @Input() frozenWidth: string;\n\n @Input() responsive: boolean;\n\n @Input() contextMenu: any;\n\n @Input() resizableColumns: boolean;\n\n @Input() columnResizeMode: string = 'fit';\n\n @Input() reorderableColumns: boolean;\n\n @Input() loading: boolean;\n\n @Input() loadingIcon: string = 'pi pi-spinner';\n\n @Input() showLoader: boolean = true;\n\n @Input() rowHover: boolean;\n\n @Input() customSort: boolean;\n\n @Input() showInitialSortBadge: boolean = true;\n\n @Input() autoLayout: boolean;\n\n @Input() exportFunction;\n\n @Input() stateKey: string;\n\n @Input() stateStorage: string = 'session';\n\n @Input() editMode: string = 'cell';\n\n @Input() minBufferPx: number;\n\n @Input() maxBufferPx: number;\n\n @Output() onRowSelect: EventEmitter<any> = new EventEmitter();\n\n @Output() onRowUnselect: EventEmitter<any> = new EventEmitter();\n\n @Output() onPage: EventEmitter<any> = new EventEmitter();\n\n @Output() onSort: EventEmitter<any> = new EventEmitter();\n\n @Output() onFilter: EventEmitter<any> = new EventEmitter();\n\n @Output() onLazyLoad: EventEmitter<any> = new EventEmitter();\n\n @Output() onRowExpand: EventEmitter<any> = new EventEmitter();\n\n @Output() onRowCollapse: EventEmitter<any> = new EventEmitter();\n\n @Output() onContextMenuSelect: EventEmitter<any> = new EventEmitter();\n\n @Output() onColResize: EventEmitter<any> = new EventEmitter();\n\n @Output() onColReorder: EventEmitter<any> = new EventEmitter();\n\n @Output() onRowReorder: EventEmitter<any> = new EventEmitter();\n\n @Output() onEditInit: EventEmitter<any> = new EventEmitter();\n\n @Output() onEditComplete: EventEmitter<any> = new EventEmitter();\n\n @Output() onEditCancel: EventEmitter<any> = new EventEmitter();\n\n @Output() onHeaderCheckboxToggle: EventEmitter<any> = new EventEmitter();\n\n @Output() sortFunction: EventEmitter<any> = new EventEmitter();\n\n @Output() firstChange: EventEmitter<number> = new EventEmitter();\n\n @Output() rowsChange: EventEmitter<number> = new EventEmitter();\n\n @Output() onStateSave: EventEmitter<any> = new EventEmitter();\n\n @Output() onStateRestore: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('container') containerViewChild: ElementRef;\n\n @ViewChild('resizeHelper') resizeHelperViewChild: ElementRef;\n\n @ViewChild('reorderIndicatorUp') reorderIndicatorUpViewChild: ElementRef;\n\n @ViewChild('reorderIndicatorDown') reorderIndicatorDownViewChild: ElementRef;\n\n @ViewChild('table') tableViewChild: ElementRef;\n\n @ViewChild('scrollableView') scrollableViewChild;\n\n @ViewChild('scrollableFrozenView') scrollableFrozenViewChild;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate>;\n\n _value: any[] = [];\n\n _columns: any[];\n\n _totalRecords: number = 0;\n\n _first: number = 0;\n\n _rows: number;\n\n filteredValue: any[];\n\n headerTemplate: TemplateRef<any>;\n\n bodyTemplate: TemplateRef<any>;\n\n loadingBodyTemplate: TemplateRef<any>;\n\n captionTemplate: TemplateRef<any>;\n\n frozenRowsTemplate: TemplateRef<any>;\n\n footerTemplate: TemplateRef<any>;\n\n summaryTemplate: TemplateRef<any>;\n\n colGroupTemplate: TemplateRef<any>;\n\n expandedRowTemplate: TemplateRef<any>;\n\n frozenExpandedRowTemplate: TemplateRef<any>;\n\n frozenHeaderTemplate: TemplateRef<any>;\n\n frozenBodyTemplate: TemplateRef<any>;\n\n frozenFooterTemplate: TemplateRef<any>;\n\n frozenColGroupTemplate: TemplateRef<any>;\n\n emptyMessageTemplate: TemplateRef<any>;\n\n paginatorLeftTemplate: TemplateRef<any>;\n\n paginatorRightTemplate: TemplateRef<any>;\n\n paginatorDropdownItemTemplate: TemplateRef<any>;\n\n selectionKeys: any = {};\n\n lastResizerHelperX: number;\n\n reorderIconWidth: number;\n\n reorderIconHeight: number;\n\n draggedColumn: any;\n\n draggedRowIndex: number;\n\n droppedRowIndex: number;\n\n rowDragging: boolean;\n\n dropPosition: number;\n\n editingCell: Element;\n\n editingCellData: any;\n\n editingCellField: any;\n\n editingCellRowIndex: number;\n\n editingCellClick: boolean;\n\n documentEditListener: any;\n\n _multiSortMeta: SortMeta[];\n\n _sortField: string;\n\n _sortOrder: number = 1;\n\n preventSelectionSetterPropagation: boolean;\n\n _selection: any;\n\n anchorRowIndex: number;\n\n rangeRowIndex: number;\n\n filterTimeout: any;\n\n initialized: boolean;\n\n rowTouched: boolean;\n\n restoringSort: boolean;\n\n restoringFilter: boolean;\n\n stateRestored: boolean;\n\n columnOrderStateRestored: boolean;\n\n columnWidthsState: string;\n\n tableWidthState: string;\n\n constructor(public el: ElementRef, public zone: NgZone, public tableService: TableService, public cd: ChangeDetectorRef, public filterService: FilterService) {}\n\n ngOnInit() {\n if (this.lazy && this.lazyLoadOnInit) {\n if (!this.virtualScroll) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n\n if (this.restoringFilter) {\n this.restoringFilter = false;\n }\n }\n\n this.initialized = true;\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'caption':\n this.captionTemplate = item.template;\n break;\n\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'body':\n this.bodyTemplate = item.template;\n break;\n\n case 'loadingbody':\n this.loadingBodyTemplate = item.template;\n break;\n\n case 'footer':\n this.footerTemplate = item.template;\n break;\n\n case 'summary':\n this.summaryTemplate = item.template;\n break;\n\n case 'colgroup':\n this.colGroupTemplate = item.template;\n break;\n\n case 'rowexpansion':\n this.expandedRowTemplate = item.template;\n break;\n\n case 'frozenrows':\n this.frozenRowsTemplate = item.template;\n break;\n\n case 'frozenheader':\n this.frozenHeaderTemplate = item.template;\n break;\n\n case 'frozenbody':\n this.frozenBodyTemplate = item.template;\n break;\n\n case 'frozenfooter':\n this.frozenFooterTemplate = item.template;\n break;\n\n case 'frozencolgroup':\n this.frozenColGroupTemplate = item.template;\n break;\n\n case 'frozenrowexpansion':\n this.frozenExpandedRowTemplate = item.template;\n break;\n\n case 'emptymessage':\n this.emptyMessageTemplate = item.template;\n break;\n\n case 'paginatorleft':\n this.paginatorLeftTemplate = item.template;\n break;\n\n case 'paginatorright':\n this.paginatorRightTemplate = item.template;\n break;\n\n case 'paginatordropdownitem':\n this.paginatorDropdownItemTemplate = item.template;\n break;\n }\n });\n }\n\n ngAfterViewInit() {\n if (this.isStateful() && this.resizableColumns) {\n this.restoreColumnWidths();\n }\n }\n\n ngOnChanges(simpleChange: SimpleChanges) {\n if (simpleChange.value) {\n if (this.isStateful() && !this.stateRestored) {\n this.restoreState();\n }\n\n this._value = simpleChange.value.currentValue;\n\n if (!this.lazy) {\n this.totalRecords = (this._value ? this._value.length : 0);\n\n if (this.sortMode == 'single' && this.sortField)\n this.sortSingle();\n else if (this.sortMode == 'multiple' && this.multiSortMeta)\n this.sortMultiple();\n else if (this.hasFilter()) //sort already filters\n this._filter();\n }\n\n this.tableService.onValueChange(simpleChange.value.currentValue);\n }\n\n if (simpleChange.columns) {\n this._columns = simpleChange.columns.currentValue;\n this.tableService.onColumnsChange(simpleChange.columns.currentValue);\n\n if (this._columns && this.isStateful() && this.reorderableColumns && !this.columnOrderStateRestored ) {\n this.restoreColumnOrder();\n }\n }\n\n if (simpleChange.sortField) {\n this._sortField = simpleChange.sortField.currentValue;\n\n //avoid triggering lazy load prior to lazy initialization at onInit\n if ( !this.lazy || this.initialized ) {\n if (this.sortMode === 'single') {\n this.sortSingle();\n }\n }\n }\n\n if (simpleChange.sortOrder) {\n this._sortOrder = simpleChange.sortOrder.currentValue;\n\n //avoid triggering lazy load prior to lazy initialization at onInit\n if ( !this.lazy || this.initialized ) {\n if (this.sortMode === 'single') {\n this.sortSingle();\n }\n }\n }\n\n if (simpleChange.multiSortMeta) {\n this._multiSortMeta = simpleChange.multiSortMeta.currentValue;\n if (this.sortMode === 'multiple' && (this.initialized || (!this.lazy && !this.virtualScroll))) {\n this.sortMultiple();\n }\n }\n\n if (simpleChange.selection) {\n this._selection = simpleChange.selection.currentValue;\n\n if (!this.preventSelectionSetterPropagation) {\n this.updateSelectionKeys();\n this.tableService.onSelectionChange();\n }\n this.preventSelectionSetterPropagation = false;\n }\n }\n\n @Input() get value(): any[] {\n return this._value;\n }\n set value(val: any[]) {\n this._value = val;\n }\n\n @Input() get columns(): any[] {\n return this._columns;\n }\n set columns(cols: any[]) {\n this._columns = cols;\n }\n\n @Input() get first(): number {\n return this._first;\n }\n set first(val: number) {\n this._first = val;\n }\n\n @Input() get rows(): number {\n return this._rows;\n }\n set rows(val: number) {\n this._rows = val;\n }\n\n @Input() get totalRecords(): number {\n return this._totalRecords;\n }\n set totalRecords(val: number) {\n this._totalRecords = val;\n this.tableService.onTotalRecordsChange(this._totalRecords);\n }\n\n @Input() get sortField(): string {\n return this._sortField;\n }\n\n set sortField(val: string) {\n this._sortField = val;\n }\n\n @Input() get sortOrder(): number {\n return this._sortOrder;\n }\n set sortOrder(val: number) {\n this._sortOrder = val;\n }\n\n @Input() get multiSortMeta(): SortMeta[] {\n return this._multiSortMeta;\n }\n\n set multiSortMeta(val: SortMeta[]) {\n this._multiSortMeta = val;\n }\n\n @Input() get selection(): any {\n return this._selection;\n }\n\n set selection(val: any) {\n this._selection = val;\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 }\n else {\n this.selectionKeys[String(ObjectUtils.resolveFieldData(this._selection, this.dataKey))] = 1;\n }\n }\n }\n\n onPageChange(event) {\n this.first = event.first;\n this.rows = event.rows;\n\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n\n this.onPage.emit({\n first: this.first,\n rows: this.rows\n });\n\n this.firstChange.emit(this.first);\n this.rowsChange.emit(this.rows);\n this.tableService.onValueChange(this.value);\n\n if (this.isStateful()) {\n this.saveState();\n }\n\n this.anchorRowIndex = null;\n\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n\n sort(event) {\n let originalEvent = event.originalEvent;\n\n if (this.sortMode === 'single') {\n this._sortOrder = (this.sortField === event.field) ? this.sortOrder * -1 : this.defaultSortOrder;\n this._sortField = event.field;\n\n if (this.resetPageOnSort) {\n this._first = 0;\n this.firstChange.emit(this._first);\n\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n\n this.sortSingle();\n }\n if (this.sortMode === 'multiple') {\n let metaKey = originalEvent.metaKey || originalEvent.ctrlKey;\n let sortMeta = this.getSortMeta(event.field);\n\n if (sortMeta) {\n if (!metaKey) {\n this._multiSortMeta = [{ field: event.field, order: sortMeta.order * -1 }];\n\n if (this.resetPageOnSort) {\n this._first = 0;\n this.firstChange.emit(this._first);\n\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n }\n else {\n sortMeta.order = sortMeta.order * -1;\n }\n }\n else {\n if (!metaKey || !this.multiSortMeta) {\n this._multiSortMeta = [];\n\n if (this.resetPageOnSort) {\n this._first = 0;\n this.firstChange.emit(this._first);\n }\n }\n this._multiSortMeta.push({ field: event.field, order: this.defaultSortOrder });\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 if (this.sortField && this.sortOrder) {\n if (this.restoringSort) {\n this.restoringSort = false;\n }\n\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n else if (this.value) {\n if (this.customSort) {\n this.sortFunction.emit({\n data: this.value,\n mode: this.sortMode,\n field: this.sortField,\n order: this.sortOrder\n });\n }\n else {\n this.value.sort((data1, data2) => {\n let value1 = ObjectUtils.resolveFieldData(data1, this.sortField);\n let value2 = ObjectUtils.resolveFieldData(data2, this.sortField);\n let result = null;\n\n if (value1 == null && value2 != null)\n result = -1;\n else if (value1 != null && value2 == null)\n result = 1;\n else if (value1 == null && value2 == null)\n result = 0;\n else if (typeof value1 === 'string' && typeof value2 === 'string')\n result = value1.localeCompare(value2);\n else\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\n\n return (this.sortOrder * result);\n });\n\n this._value = [...this.value];\n }\n\n if (this.hasFilter()) {\n this._filter();\n }\n }\n\n let sortMeta: SortMeta = {\n field: this.sortField,\n order: this.sortOrder\n };\n\n this.onSort.emit(sortMeta);\n this.tableService.onSort(sortMeta);\n }\n }\n\n sortMultiple() {\n if (this.multiSortMeta) {\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\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 }\n else {\n this.value.sort((data1, data2) => {\n return this.multisortField(data1, data2, 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: this.multiSortMeta\n });\n this.tableService.onSort(this.multiSortMeta);\n }\n }\n\n multisortField(data1, data2, multiSortMeta, index) {\n let value1 = ObjectUtils.resolveFieldData(data1, multiSortMeta[index].field);\n let value2 = ObjectUtils.resolveFieldData(data2, multiSortMeta[index].field);\n let result = null;\n\n if (value1 == null && value2 != null)\n result = -1;\n else if (value1 != null && value2 == null)\n result = 1;\n else if (value1 == null && value2 == null)\n result = 0;\n else if (typeof value1 == 'string' || value1 instanceof String) {\n if (value1.localeCompare && (value1 != value2)) {\n return (multiSortMeta[index].order * value1.localeCompare(value2));\n }\n }\n else {\n result = (value1 < value2) ? -1 : 1;\n }\n\n if (value1 == value2) {\n return (multiSortMeta.length - 1) > (index) ? (this.multisortField(data1, data2, multiSortMeta, index + 1)) : 0;\n }\n\n return (multiSortMeta[index].order * result);\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 }\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) {\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' ||\n parentNode == 'INPUT' || parentNode == 'BUTTON' || parentNode == 'A' ||\n (DomHandler.hasClass(event.originalEvent.target, 'p-clickable'))) {\n return;\n }\n\n if (this.selectionMode) {\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 = event.rowIndex;\n this.selectRange(event.originalEvent, event.rowIndex);\n }\n else {\n let rowData = event.rowData;\n let selected = this.isSelected(rowData);\n let metaSelection = this.rowTouched ? false : this.metaKeySelection;\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rowData, this.dataKey)) : null;\n this.anchorRowIndex = event.rowIndex;\n this.rangeRowIndex = event.rowIndex;\n\n if (metaSelection) {\n let metaKey = event.originalEvent.metaKey||event.originalEvent.ctrlKey;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this._selection = null;\n this.selectionKeys = {};\n this.selectionChange.emit(null);\n }\n else {\n let selectionIndex = this.findIndexInSelection(rowData);\n this._selection = this.selection.filter((val,i) => i!=selectionIndex);\n this.selectionChange.emit(this.selection);\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n }\n\n this.onRowUnselect.emit({originalEvent: event.originalEvent, data: rowData, type: 'row'});\n }\n else {\n if (this.isSingleSelectionMode()) {\n this._selection = rowData;\n this.selectionChange.emit(rowData);\n if (dataKeyValue) {\n this.selectionKeys = {};\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n else if (this.isMultipleSelectionMode()) {\n if (metaKey) {\n this._selection = this.selection||[];\n }\n else {\n this._selection = [];\n this.selectionKeys = {};\n }\n\n this._selection = [...this.selection,rowData];\n this.selectionChange.emit(this.selection);\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n\n this.onRowSelect.emit({originalEvent: event.originalEvent, data: rowData, type: 'row', index: event.rowIndex});\n }\n }\n else {\n if (this.selectionMode === 'single') {\n if (selected) {\n this._selection = null;\n this.selectionKeys = {};\n this.selectionChange.emit(this.selection);\n this.onRowUnselect.emit({ originalEvent: event.originalEvent, data: rowData, type: 'row', index: event.rowIndex });\n }\n else {\n this._selection = rowData;\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({ originalEvent: event.originalEvent, data: rowData, type: 'row', index: event.rowIndex });\n if (dataKeyValue) {\n this.selectionKeys = {};\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n }\n else if (this.selectionMode === 'multiple') {\n if (selected) {\n let selectionIndex = this.findIndexInSelection(rowData);\n this._selection = this.selection.filter((val, i) => i != selectionIndex);\n this.selectionChange.emit(this.selection);\n this.onRowUnselect.emit({ originalEvent: event.originalEvent, data: rowData, type: 'row', index: event.rowIndex });\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n }\n else {\n this._selection = this.selection ? [...this.selection, rowData] : [rowData];\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({ originalEvent: event.originalEvent, data: rowData, type: 'row', index: event.rowIndex });\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) {\n this.rowTouched = true;\n }\n\n handleRowRightClick(event) {\n if (this.contextMenu) {\n const rowData = event.rowData;\n\n if (this.contextMenuSelectionMode === 'separate') {\n this.contextMenuSelection = rowData;\n this.contextMenuSelectionChange.emit(rowData);\n this.onContextMenuSelect.emit({originalEvent: event.originalEvent, data: rowData, index: event.rowIndex});\n this.contextMenu.show(event.originalEvent);\n this.tableService.onContextMenu(rowData);\n }\n else if (this.contextMenuSelectionMode === 'joint') {\n this.preventSelectionSetterPropagation = true;\n let selected = this.isSelected(rowData);\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rowData, this.dataKey)) : null;\n\n if (!selected) {\n if (this.isSingleSelectionMode()) {\n this.selection = rowData;\n this.selectionChange.emit(rowData);\n \n if (dataKeyValue) {\n this.selectionKeys = {};\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n else if (this.isMultipleSelectionMode()) {\n this._selection = this.selection ? [...this.selection, rowData] : [rowData];\n this.selectionChange.emit(this.selection);\n \n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n }\n\n this.tableService.onSelectionChange();\n this.contextMenu.show(event.originalEvent);\n this.onContextMenuSelect.emit({originalEvent: event, data: rowData, index: event.rowIndex});\n }\n }\n }\n\n selectRange(event: MouseEvent, rowIndex: number) {\n let rangeStart, rangeEnd;\n\n if (this.anchorRowIndex > rowIndex) {\n rangeStart = rowIndex;\n rangeEnd = this.anchorRowIndex;\n }\n else if (this.anchorRowIndex < rowIndex) {\n rangeStart = this.anchorRowIndex;\n rangeEnd = rowIndex;\n }\n else {\n rangeStart = rowIndex;\n rangeEnd = rowIndex;\n }\n\n if (this.lazy && this.paginator) {\n rangeStart -= this.first;\n rangeEnd -= this.first;\n }\n\n let rangeRowsData = [];\n for(let i = rangeStart; i <= rangeEnd; i++) {\n let rangeRowData = this.filteredValue ? this.filteredValue[i] : this.value[i];\n if (!this.isSelected(rangeRowData)) {\n rangeRowsData.push(rangeRowData);\n this._selection = [...this.selection, rangeRowData];\n let dataKeyValue: string = this.dataKey ? String(ObjectUtils.resolveFieldData(rangeRowData, this.dataKey)) : null;\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n }\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({originalEvent: event, data: rangeRowsData, type: 'row'});\n }\n\n clearSelectionRange(event: MouseEvent) {\n let rangeStart, rangeEnd;\n\n if (this.rangeRowIndex > this.anchorRowIndex) {\n rangeStart = this.anchorRowIndex;\n rangeEnd = this.rangeRowIndex;\n }\n else if (this.rangeRowIndex < this.anchorRowIndex) {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.anchorRowIndex;\n }\n else {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.rangeRowIndex;\n }\n\n for(let i = rangeStart; i <= rangeEnd; i++) {\n let rangeRowData = this.value[i];\n let selectionIndex = this.findIndexInSelection(rangeRowData);\n this._selection = this.selection.filter((val,i) => i!=selectionIndex);\n let dataKeyValue: string = this.dataKey ? String(ObjectUtils.resolveFieldData(rangeRowData, this.dataKey)) : null;\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n this.onRowUnselect.emit({originalEvent: event, data: rangeRowData, type: 'row'});\n }\n }\n\n isSelected(rowData) {\n if (rowData && this.selection) {\n if (this.dataKey) {\n return this.selectionKeys[ObjectUtils.resolveFieldData(rowData, this.dataKey)] !== undefined;\n }\n else {\n if (this.selection instanceof Array)\n return this.findIndexInSelection(rowData) > -1;\n else\n return this.equals(rowData, this.selection);\n }\n }\n\n return false;\n }\n\n findIndexInSelection(rowData: any) {\n let index: number = -1;\n if (this.selection && this.selection.length) {\n for (let i = 0; i < this.selection.length; i++) {\n if (this.equals(rowData, this.selection[i])) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n\n toggleRowWithRadio(event: any, rowData:any) {\n this.preventSelectionSetterPropagation = true;\n\n if (this.selection != rowData) {\n this._selection = rowData;\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({originalEvent: event.originalEvent, index: event.rowIndex, data: rowData, type: 'radiobutton'});\n\n if (this.dataKey) {\n this.selectionKeys = {};\n this.selectionKeys[String(ObjectUtils.resolveFieldData(rowData, this.dataKey))] = 1;\n }\n }\n else {\n this._selection = null;\n this.selectionChange.emit(this.selection);\n this.onRowUnselect.emit({originalEvent: event.originalEvent, index: event.rowIndex, data: rowData, type: 'radiobutton'});\n }\n\n this.tableService.onSelectionChange();\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n\n toggleRowWithCheckbox(event, rowData: any) {\n this.selection = this.selection||[];\n let selected = this.isSelected(rowData);\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rowData, this.dataKey)) : null;\n this.preventSelectionSetterPropagation = true;\n\n if (selected) {\n let selectionIndex = this.findIndexInSelection(rowData);\n this._selection = this.selection.filter((val, i) => i != selectionIndex);\n this.selectionChange.emit(this.selection);\n this.onRowUnselect.emit({ originalEvent: event.originalEvent, index: event.rowIndex, data: rowData, type: 'checkbox' });\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n }\n else {\n this._selection = this.selection ? [...this.selection, rowData] : [rowData];\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({ originalEvent: event.originalEvent, index: event.rowIndex, data: rowData, type: 'checkbox' });\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n\n this.tableService.onSelectionChange();\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n\n toggleRowsWithCheckbox(event: Event, check: boolean) {\n this._selection = check ? this.filteredValue ? this.filteredValue.slice(): this.value.slice() : [];\n this.preventSelectionSetterPropagation = true;\n this.updateSelectionKeys();\n this.selectionChange.emit(this._selection);\n this.tableService.onSelectionChange();\n this.onHeaderCheckboxToggle.emit({originalEvent: event, checked: check});\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n\n equals(data1, data2) {\n return this.compareSelectionBy === 'equals' ? (data1 === data2) : ObjectUtils.equals(data1, data2, this.dataKey);\n }\n\n /* Legacy Filtering for custom elements */\n filter(value: any, field: string, matchMode: string) {\n if (this.filterTimeout) {\n clearTimeout(this.filterTimeout);\n }\n if (!this.isFilterBlank(value)) {\n this.filters[field] = { value: value, matchMode: matchMode };\n } else if (this.filters[field]) {\n delete this.filters[field];\n }\n\n this.filterTimeout = setTimeout(() => {\n this._filter();\n this.filterTimeout = null;\n }, this.filterDelay);\n\n this.anchorRowIndex = null;\n }\n\n filterGlobal(value, matchMode) {\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) || (filter instanceof Array && filter.length == 0))\n return true;\n else\n return false;\n }\n return true;\n }\n\n _filter() {\n if (!this.restoringFilter) {\n this.first = 0;\n this.firstChange.emit(this.first);\n }\n\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n else {\n if (!this.value) {\n return;\n }\n\n if (!this.hasFilter()) {\n this.filteredValue = null;\n if (this.paginator) {\n this.totalRecords = this.value ? this.value.length : 0;\n }\n }\n else {\n let globalFilterFieldsArray;\n if (this.filters['global']) {\n if (!this.columns && !this.globalFilterFields)\n throw new Error('Global filtering requires dynamic columns or globalFilterFields to be defined.');\n else\n 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 }\n else {\n localMatch = this.executeLocalFilter(filterField, this.value[i], 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 = this.filterService.filters[(<FilterMetadata> 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 }\n else {\n matches = localFiltered && localMatch;\n }\n\n if (matches) {\n this.filteredValue.push(this.value[i]);\n }\n }\n\n if (this.filteredValue.length === this.value.length) {\n this.filteredValue = null;\n }\n\n if (this.paginator) {\n this.totalRecords = this.filteredValue ? this.filteredValue.length : this.value ? this.value.length : 0;\n }\n }\n }\n\n this.onFilter.emit({\n filters: 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 = 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 };\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.filteredValue = null;\n this.tableService.onResetChange();\n\n this.first = 0;\n this.firstChange.emit(this.first);\n\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n else {\n this.totalRecords = (this._value ? this._value.length : 0);\n }\n }\n\n public reset() {\n this.clear();\n }\n\n public exportCSV(options?: any) {\n let data;\n let csv = '';\n let columns = this.frozenColumns ? [...this.frozenColumns, ...this.columns] : this.columns;\n\n if (options && options.selectionOnly) {\n data = this.selection || [];\n }\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 //headers\n for (let i = 0; i < columns.length; i++) {\n let column = columns[i];\n if (column.exportable !== false && column.field) {\n csv += '\"' + (column.header || column.field) + '\"';\n\n if (i < (columns.length - 1)) {\n csv += this.csvSeparator;\n }\n }\n }\n\n //body\n data.forEach((record, i) => {\n csv += '\\n';\n for (let i = 0; i < columns.length; i++) {\n let column = columns[i];\n if (column.exportable !== false && column.field) {\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 }\n else\n cellData = String(cellData).replace(/\"/g, '\"\"');\n }\n else\n cellData = '';\n\n csv += '\"' + cellData + '\"';\n\n if (i < (columns.length - 1)) {\n csv += this.csvSeparator;\n }\n }\n }\n });\n\n let blob = new Blob([csv], {\n type: 'text/csv;charset=utf-8;'\n });\n\n if (window.navigator.msSaveOrOpenBlob) {\n navigator.msSaveOrOpenBlob(blob, this.exportFilename + '.csv');\n }\n else {\n let link = document.createElement(\"a\");\n link.style.display = 'none';\n document.body.appendChild(link);\n if (link.download !== undefined) {\n link.setAttribute('href', URL.createObjectURL(blob));\n link.setAttribute('download', this.exportFilename + '.csv');\n link.click();\n }\n else {\n csv = 'data:text/csv;charset=utf-8,' + csv;\n window.open(encodeURI(csv));\n }\n document.body.removeChild(link);\n }\n }\n\n public resetScrollTop() {\n if (this.virtualScroll)\n this.scrollToVirtualIndex(0);\n else\n this.scrollTo({top: 0});\n }\n\n public scrollToVirtualIndex(index: number) {\n if (this.scrollableViewChild) {\n this.scrollableViewChild.scrollToVirtualIndex(index);\n }\n\n if (this.scrollableFrozenViewChild) {\n this.scrollableFrozenViewChild.scrollToVirtualIndex(index);\n }\n }\n\n public scrollTo(options) {\n if (this.scrollableViewChild) {\n this.scrollableViewChild.scrollTo(options);\n }\n\n if (this.scrollableFrozenViewChild) {\n this.scrollableFrozenViewChild.scrollTo(options);\n }\n }\n\n updateEditingCell(cell, data, field, index) {\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 = (event) => {\n if (this.editingCell && !this.editingCellClick && this.isEditingCellValid()) {\n DomHandler.removeClass(this.editingCell, 'p-cell-editing');\n this.editingCell = null;\n this.onEditComplete.emit({ field: this.editingCellField, data: this.editingCellData, originalEvent: event, index: this.editingCellRowIndex });\n this.editingCellField = null;\n this.editingCellData = null;\n this.editingCellRowIndex = null;\n this.unbindDocumentEditListener();\n this.cd.markForCheck();\n }\n\n this.editingCellClick = false;\n };\n\n document.addEventListener('click', this.documentEditListener);\n }\n }\n\n unbindDocumentEditListener() {\n if (this.documentEditListener) {\n document.removeEventListener('click', this.documentEditListener);\n this.documentEditListener = null;\n }\n }\n\n initRowEdit(rowData: any) {\n let dataKeyValue = String(ObjectUtils.resolveFieldData(rowData, this.dataKey));\n this.editingRowKeys[dataKeyValue] = true;\n }\n\n saveRowEdit(rowData: any, rowElement: HTMLTableRowElement) {\n if (DomHandler.find(rowElement, '.ng-invalid.ng-dirty').length === 0) {\n let dataKeyValue = String(ObjectUtils.resolveFieldData(rowData, this.dataKey));\n delete this.editingRowKeys[dataKeyValue];\n }\n }\n\n cancelRowEdit(rowData: any) {\n let dataKeyValue = String(ObjectUtils.resolveFieldData(rowData, this.dataKey));\n delete this.editingRowKeys[dataKeyValue];\n }\n\n toggleRow(rowData: any, event?: Event) {\n if (!this.dataKey) {\n throw new Error('dataKey must be defined to use row expansion');\n }\n\n let dataKeyValue = 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,\n data: rowData\n });\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,\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.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) {\n let containerLeft = DomHandler.getOffset(this.containerViewChild.nativeElement).left;\n this.lastResizerHelperX = (event.pageX - containerLeft + this.containerViewChild.nativeElement.scrollLeft);\n this.onColumnResize(event);\n event.preventDefault();\n }\n\n onColumnResize(event) {\n let containerLeft = DomHandler.getOffset(this.containerViewChild.nativeElement).left;\n DomHandler.addClass(this.containerViewChild.nativeElement, 'p-unselectable-text');\n this.resizeHelperViewChild.nativeElement.style.height = this.containerViewChild.nativeElement.offsetHeight + 'px';\n this.resizeHelperViewChild.nativeElement.style.top = 0 + 'px';\n this.resizeHelperViewChild.nativeElement.style.left = (event.pageX - containerLeft + this.containerViewChild.nativeElement.scrollLeft) + 'px';\n\n this.resizeHelperViewChild.nativeElement.style.display = 'block';\n }\n\n onColumnResizeEnd(event, column) {\n let delta = this.resizeHelperViewChild.nativeElement.offsetLeft - this.lastResizerHelperX;\n let columnWidth = column.offsetWidth;\n let minWidth = parseInt(column.style.minWidth || 15);\n\n if (columnWidth + delta < minWidth) {\n delta = minWidth - columnWidth;\n }\n\n const newColumnWidth = columnWidth + delta;\n\n if (newColumnWidth >= minWidth) {\n if (this.columnResizeMode === 'fit') {\n let nextColumn = column.nextElementSibling;\n while (!nextColumn.offsetParent) {\n nextColumn = nextColumn.nextElementSibling;\n }\n\n if (nextColumn) {\n let nextColumnWidth = nextColumn.offsetWidth - delta;\n let nextColumnMinWidth = nextColumn.style.minWidth || 15;\n\n if (newColumnWidth > 15 && nextColumnWidth > parseInt(nextColumnMinWidth)) {\n if (this.scrollable) {\n let scrollableView = this.findParentScrollableView(column);\n let scrollableBodyTable = DomHandler.findSingle(scrollableView, '.p-datatable-scrollable-body table') || DomHandler.findSingle(scrollableView, '.p-datatable-virtual-scrollable-body table');\n let scrollableHeaderTable = DomHandler.findSingle(scrollableView, 'table.p-datatable-scrollable-header-table');\n let scrollableFooterTable = DomHandler.findSingle(scrollableView, 'table.p-datatable-scrollable-footer-table');\n let resizeColumnIndex = DomHandler.index(column);\n\n this.resizeColGroup(scrollableHeaderTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n this.resizeColGroup(scrollableBodyTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n this.resizeColGroup(scrollableFooterTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n }\n else {\n column.style.width = newColumnWidth + 'px';\n if (nextColumn) {\n nextColumn.style.width = nextColumnWidth + 'px';\n }\n }\n }\n }\n }\n else if (this.columnResizeMode === 'expand') {\n if (newColumnWidth >= minWidth) {\n if (this.scrollable) {\n this.setScrollableItemsWidthOnExpandResize(column, newColumnWidth, delta);\n }\n else {\n this.tableViewChild.nativeElement.style.width = this.tableViewChild.nativeElement.offsetWidth + delta + 'px';\n column.style.width = newColumnWidth + 'px';\n let containerWidth = this.tableViewChild.nativeElement.style.width;\n this.containerViewChild.nativeElement.style.width = containerWidth + 'px';\n }\n }\n }\n\n this.onColResize.emit({\n element: column,\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.containerViewChild.nativeElement, 'p-unselectable-text');\n }\n\n setScrollableItemsWidthOnExpandResize(column, newColumnWidth, delta) {\n let scrollableView = column ? this.findParentScrollableView(column) : this.containerViewChild.nativeElement;\n let scrollableBody = DomHandler.findSingle(scrollableView, '.p-datatable-scrollable-body') || DomHandler.findSingle(scrollableView, 'cdk-virtual-scroll-viewport');\n let scrollableHeader = DomHandler.findSingle(scrollableView, '.p-datatable-scrollable-header');\n let scrollableFooter = DomHandler.findSingle(scrollableView, '.p-datatable-scrollable-footer');\n let scrollableBodyTable = DomHandler.findSingle(scrollableBody, '.p-datatable-scrollable-body table') || DomHandler.findSingle(scrollableView, 'cdk-virtual-scroll-viewport table');\n let scrollableHeaderTable = DomHandler.findSingle(scrollableHeader, 'table.p-datatable-scrollable-header-table');\n let scrollableFooterTable = DomHandler.findSingle(scrollableFooter, 'table.p-datatable-scrollable-footer-table');\n\n const scrollableBodyTableWidth = column ? scrollableBodyTable.offsetWidth + delta : newColumnWidth;\n const scrollableHeaderTableWidth = column ? scrollableHeaderTable.offsetWidth + delta : newColumnWidth;\n const isContainerInViewport = this.containerViewChild.nativeElement.offsetWidth >= scrollableBodyTableWidth;\n\n let setWidth = (container, table, width, isContainerInViewport) => {\n if (container && table) {\n container.style.width = isContainerInViewport ? width + DomHandler.calculateScrollbarWidth(scrollableBody) + 'px' : 'auto'\n table.style.width = width + 'px';\n }\n };\n\n setWidth(scrollableBody, scrollableBodyTable, scrollableBodyTableWidth, isContainerInViewport);\n setWidth(scrollableHeader, scrollableHeaderTable, scrollableHeaderTableWidth, isContainerInViewport);\n setWidth(scrollableFooter, scrollableFooterTable, scrollableHeaderTableWidth, isContainerInViewport);\n\n if (column) {\n let resizeColumnIndex = DomHandler.index(column);\n\n this.resizeColGroup(scrollableHeaderTable, resizeColumnIndex, newColumnWidth, null);\n this.resizeColGroup(scrollableBodyTable, resizeColumnIndex, newColumnWidth, null);\n this.resizeColGroup(scrollableFooterTable, resizeColumnIndex, newColumnWidth, null);\n }\n }\n\n findParentScrollableView(column) {\n if (column) {\n let parent = column.parentElement;\n while (parent && !DomHandler.hasClass(parent, 'p-datatable-scrollable-view')) {\n parent = parent.parentElement;\n }\n\n return parent;\n }\n else {\n return null;\n }\n }\n\n resizeColGroup(table, resizeColumnIndex, newColumnWidth, nextColumnWidth) {\n if (table) {\n let colGroup = table.children[0].nodeName === 'COLGROUP' ? table.children[0] : null;\n\n if (colGroup) {\n let col = colGroup.children[resizeColumnIndex];\n let nextCol = col.nextElementSibling;\n col.style.width = newColumnWidth + 'px';\n\n if (nextCol && nextColumnWidth) {\n nextCol.style.width = nextColumnWidth + 'px';\n }\n }\n else {\n throw \"Scrollable tables require a colgroup to support resizable columns\";\n }\n }\n }\n\n onColumnDragStart(event, columnElement) {\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, dropHeader) {\n if (this.reorderableColumns && this.draggedColumn && dropHeader) {\n event.preventDefault();\n let containerOffset = DomHandler.getOffset(this.containerViewChild.nativeElement);\n let dropHeaderOffset = DomHandler.getOffset(dropHeader);\n\n if (this.draggedColumn != dropHeader) {\n let dragIndex = DomHandler.indexWithinGroup(this.draggedColumn, 'preorderablecolumn');\n let dropIndex = DomHandler.indexWithinGroup(dropHeader, 'preorderablecolumn');\n let targetLeft = dropHeaderOffset.left - containerOffset.left;\n let targetTop = containerOffset.top - dropHeaderOffset.top;\n let columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;\n\n this.reorderIndicatorUpViewChild.nativeElement.style.top = dropHeaderOffset.top - containerOffset.top - (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(this.reorderIconWidth / 2)) + 'px';\n this.reorderIndicatorDownViewChild.nativeElement.style.left = (targetLeft + dropHeader.offsetWidth - Math.ceil(this.reorderIconWidth / 2)) + 'px';\n this.dropPosition = 1;\n }\n else {\n this.reorderIndicatorUpViewChild.nativeElement.style.left = (targetLeft - Math.ceil(this.reorderIconWidth / 2)) + 'px';\n this.reorderIndicatorDownViewChild.nativeElement.style.left = (targetLeft - Math.ceil(this.reorderIconWidth / 2)) + 'px';\n this.dropPosition = -1;\n }\n\n if ((dropIndex - dragIndex === 1 && this.dropPosition === -1) || (dropIndex - dragIndex === -1 && this.dropPosition === 1)) {\n this.reorderIndicatorUpViewChild.nativeElement.style.display = 'none';\n this.reorderIndicatorDownViewChild.nativeElement.style.display = 'none';\n }\n else {\n this.reorderIndicatorUpViewChild.nativeElement.style.display = 'block';\n this.reorderIndicatorDownViewChild.nativeElement.style.display = 'block';\n }\n }\n else {\n event.dataTransfer.dropEffect = 'none';\n }\n }\n }\n\n onColumnDragLeave(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 onColumnDrop(event, dropColumn) {\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(this.columns, dragIndex, dropIndex);\n\n this.onColReorder.emit({\n dragIndex: dragIndex,\n dropIndex: dropIndex,\n columns: this.columns\n });\n\n if (this.isStateful()) {\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n this.saveState();\n });\n });\n }\n }\n\n 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 onRowDragStart(event, index) {\n this.rowDragging = true;\n this.draggedRowIndex = index;\n event.dataTransfer.setData('text', 'b'); // For firefox\n }\n\n onRowDragOver(event, index, rowElement) {\n if (this.rowDragging && this.draggedRowIndex !== index) {\n let rowY = DomHandler.getOffset(rowElement).top + DomHandler.getWindowScrollTop();\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)\n DomHandler.addClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n else\n DomHandler.addClass(rowElement, 'p-datatable-dragpoint-top');\n }\n else {\n if (prevRowElement)\n DomHandler.removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n else\n DomHandler.addClass(rowElement, 'p-datatable-dragpoint-top');\n\n this.droppedRowIndex = index + 1;\n DomHandler.addClass(rowElement, 'p-datatable-dragpoint-bottom');\n }\n }\n }\n\n onRowDragLeave(event, rowElement) {\n let prevRowElement = rowElement.previousElementSibling;\n if (prevRowElement) {\n DomHandler.removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n }\n\n DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-top');\n }\n\n onRowDragEnd(event) {\n this.rowDragging = false;\n this.draggedRowIndex = null;\n this.droppedRowIndex = null;\n }\n\n onRowDrop(event, rowElement) {\n if (this.droppedRowIndex != null) {\n let dropIndex = (this.draggedRowIndex > this.droppedRowIndex) ? this.droppedRowIndex : (this.droppedRowIndex === 0) ? 0 : this.droppedRowIndex - 1;\n ObjectUtils.reorderArray(this.value, this.draggedRowIndex, dropIndex);\n\n this.onRowReorder.emit({\n dragIndex: this.draggedRowIndex,\n dropIndex: dropIndex\n });\n }\n //cleanup\n this.onRowDragLeave(event, rowElement);\n this.onRowDragEnd(event);\n }\n\n isEmpty() {\n let data = this.filteredValue||this.value;\n return data == null || data.length == 0;\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n getStorage() {\n 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 }\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 = 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(this.stateKey, JSON.stringify(state));\n this.onStateSave.emit(state);\n }\n\n clearState() {\n const storage = this.getStorage();\n\n if (this.stateKey) {\n storage.removeItem(this.stateKey);\n }\n }\n\n restoreState() {\n const storage = this.getStorage();\n const stateString = storage.getItem(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, value) {\n if (typeof value === \"string\" && dateFormat.test(value)) {\n return new Date(value);\n }\n\n return value;\n }\n\n if (stateString) {\n let state: TableState = JSON.parse(stateString, reviver);\n\n if (this.paginator) {\n if (this.first !== undefined) {\n this.first = state.first;\n this.firstChange.emit(this.first);\n }\n\n if (this.rows !== undefined) {\n this.rows = state.rows;\n this.rowsChange.emit(this.rows);\n }\n }\n\n if (state.sortField) {\n this.restoringSort = true;\n this._sortField = state.sortField;\n this._sortOrder = state.sortOrder;\n }\n\n if (state.multiSortMeta) {\n this.restoringSort = true;\n this._multiSortMeta = state.multiSortMeta;\n }\n\n if (state.filters) {\n this.restoringFilter = true;\n this.filters = state.filters;\n }\n\n if (this.resizableColumns) {\n this.columnWidthsState = state.columnWidths;\n this.tableWidthState = state.tableWidth;\n }\n\n if (state.expandedRowKeys) {\n this.expandedRowKeys = state.expandedRowKeys;\n }\n\n if (state.selection) {\n Promise.resolve(null).then(() => this.selectionChange.emit(state.selection));\n }\n\n this.stateRestored = true;\n\n this.onStateRestore.emit(state);\n }\n }\n\n saveColumnWidths(state) {\n let widths = [];\n let headers = DomHandler.find(this.containerViewChild.nativeElement, '.p-datatable-thead > tr:first-child > th');\n headers.map(header => widths.push(DomHandler.getOuterWidth(header)));\n state.columnWidths = widths.join(',');\n\n if (this.columnResizeMode === 'expand') {\n state.tableWidth = this.scrollable ? DomHandler.findSingle(this.containerViewChild.nativeElement, '.p-datatable-scrollable-header-table').style.width :\n DomHandler.getOuterWidth(this.tableViewChild.nativeElement) + 'px';\n }\n }\n\n restoreColumnWidths() {\n if (this.columnWidthsState) {\n let widths = this.columnWidthsState.split(',');\n\n if (this.columnResizeMode === 'expand' && this.tableWidthState) {\n if (this.scrollable) {\n this.setScrollableItemsWidthOnExpandResize(null, this.tableWidthState, 0);\n }\n else {\n this.tableViewChild.nativeElement.style.width = this.tableWidthState;\n }\n }\n\n if (this.scrollable) {\n let headerCols = DomHandler.find(this.containerViewChild.nativeElement, '.p-datatable-scrollable-header-table > colgroup > col');\n let bodyCols = this.virtualScroll ? DomHandler.find(this.containerViewChild.nativeElement, 'cdk-virtual-scroll-viewport table > colgroup > col') : DomHandler.find(this.containerViewChild.nativeElement, '.p-datatable-scrollable-body table > colgroup > col');\n\n headerCols.map((col, index) => col.style.width = widths[index] + 'px');\n bodyCols.map((col, index) => col.style.width = widths[index] + 'px');\n }\n else {\n let headers = DomHandler.find(this.tableViewChild.nativeElement, '.p-datatable-thead > tr:first-child > th');\n headers.map((header, index) => header.style.width = widths[index] + 'px');\n }\n }\n }\n\n saveColumnOrder(state) {\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(this.stateKey);\n if (stateString) {\n let state: TableState = JSON.parse(stateString);\n let columnOrder = state.columnOrder;\n if (columnOrder) {\n let reorderedColumns = [];\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) {\n if (this.columns) {\n for (let col of this.columns) {\n if (col.key === key || col.field === key)\n return col;\n else\n continue;\n }\n }\n else {\n return null;\n }\n }\n\n ngOnDestroy() {\n this.unbindDocumentEditListener();\n this.editingCell = null;\n this.initialized = null;\n }\n}\n\n@Component({\n selector: '[pTableBody]',\n template: `\n <ng-container *ngIf=\"!dt.expandedRowTemplate && !dt.virtualScroll\">\n <ng-template ngFor let-rowData let-rowIndex=\"index\" [ngForOf]=\"(dt.paginator && !dt.lazy) ? ((dt.filteredValue||dt.value) | slice:dt.first:(dt.first + dt.rows)) : (dt.filteredValue||dt.value)\" [ngForTrackBy]=\"dt.rowTrackBy\">\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: rowData, rowIndex: dt.paginator ? (dt.first + rowIndex) : rowIndex, columns: columns, editing: (dt.editMode === 'row' && dt.isRowEditing(rowData))}\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!dt.expandedRowTemplate && dt.virtualScroll\">\n <ng-template cdkVirtualFor let-rowData let-rowIndex=\"index\" [cdkVirtualForOf]=\"dt.filteredValue||dt.value\" [cdkVirtualForTrackBy]=\"dt.rowTrackBy\" [cdkVirtualForTemplateCacheSize]=\"0\">\n <ng-container *ngTemplateOutlet=\"rowData ? template: dt.loadingBodyTemplate; context: {$implicit: rowData, rowIndex: dt.paginator ? (dt.first + rowIndex) : rowIndex, columns: columns, editing: (dt.editMode === 'row' && dt.isRowEditing(rowData))}\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"dt.expandedRowTemplate && !(frozen && dt.frozenExpandedRowTemplate)\">\n <ng-template ngFor let-rowData let-rowIndex=\"index\" [ngForOf]=\"(dt.paginator && !dt.lazy) ? ((dt.filteredValue||dt.value) | slice:dt.first:(dt.first + dt.rows)) : (dt.filteredValue||dt.value)\" [ngForTrackBy]=\"dt.rowTrackBy\">\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: rowData, rowIndex: dt.paginator ? (dt.first + rowIndex) : rowIndex, columns: columns, expanded: dt.isRowExpanded(rowData), editing: (dt.editMode === 'row' && dt.isRowEditing(rowData))}\"></ng-container>\n <ng-container *ngIf=\"dt.isRowExpanded(rowData)\">\n <ng-container *ngTemplateOutlet=\"dt.expandedRowTemplate; context: {$implicit: rowData, rowIndex: dt.paginator ? (dt.first + rowIndex) : rowIndex, columns: columns}\"></ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"dt.frozenExpandedRowTemplate && frozen\">\n <ng-template ngFor let-rowData let-rowIndex=\"index\" [ngForOf]=\"(dt.paginator && !dt.lazy) ? ((dt.filteredValue||dt.value) | slice:dt.first:(dt.first + dt.rows)) : (dt.filteredValue||dt.value)\" [ngForTrackBy]=\"dt.rowTrackBy\">\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: rowData, rowIndex: dt.paginator ? (dt.first + rowIndex) : rowIndex, columns: columns, expanded: dt.isRowExpanded(rowData), editing: (dt.editMode === 'row' && dt.isRowEditing(rowData))}\"></ng-container>\n <ng-container *ngIf=\"dt.isRowExpanded(rowData)\">\n <ng-container *ngTemplateOutlet=\"dt.frozenExpandedRowTemplate; context: {$implicit: rowData, rowIndex: dt.paginator ? (dt.first + rowIndex) : rowIndex, columns: columns}\"></ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"dt.loading\">\n <ng-container *ngTemplateOutlet=\"dt.loadingBodyTemplate; context: {$implicit: columns, frozen: frozen}\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"dt.isEmpty() && !dt.loading\">\n <ng-container *ngTemplateOutlet=\"dt.emptyMessageTemplate; context: {$implicit: columns, frozen: frozen}\"></ng-container>\n </ng-container>\n `,\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None\n})\nexport class TableBody implements OnDestroy {\n\n @Input(\"pTableBody\") columns: any[];\n\n @Input(\"pTableBodyTemplate\") template: TemplateRef<any>;\n\n @Input() frozen: boolean;\n\n subscription: Subscription;\n\n constructor(public dt: Table, public tableService: TableService, public cd: ChangeDetectorRef) {\n this.subscription = this.dt.tableService.valueSource$.subscribe(() => {\n if (this.dt.virtualScroll) {\n this.cd.detectChanges();\n }\n });\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: '[pScrollableView]',\n template: `\n <div #scrollHeader class=\"p-datatable-scrollable-header\">\n <div #scrollHeaderBox class=\"p-datatable-scrollable-header-box\">\n <table class=\"p-datatable-scrollable-header-table\" [ngClass]=\"dt.tableStyleClass\" [ngStyle]=\"dt.tableStyle\">\n <ng-container *ngTemplateOutlet=\"frozen ? dt.frozenColGroupTemplate||dt.colGroupTemplate : dt.colGroupTemplate; context {$implicit: columns}\"></ng-container>\n <thead class=\"p-datatable-thead\">\n <ng-container *ngTemplateOutlet=\"frozen ? dt.frozenHeaderTemplate||dt.headerTemplate : dt.headerTemplate; context {$implicit: columns}\"></ng-container>\n </thead>\n <tbody class=\"p-datatable-tbody\">\n <ng-template ngFor let-rowData let-rowIndex=\"index\" [ngForOf]=\"dt.frozenValue\" [ngForTrackBy]=\"dt.rowTrackBy\">\n <ng-container *ngTemplateOutlet=\"dt.frozenRowsTemplate; context: {$implicit: rowData, rowIndex: rowIndex, columns: columns}\"></ng-container>\n </ng-template>\n </tbody>\n </table>\n </div>\n </div>\n <ng-container *ngIf=\"!dt.virtualScroll; else virtualScrollTemplate\">\n <div #scrollBody class=\"p-datatable-scrollable-body\" [ngStyle]=\"{'max-height': dt.scrollHeight !== 'flex' ? scrollHeight : undefined, 'overflow-y': !frozen && dt.scrollHeight ? 'scroll' : undefined}\">\n <table #scrollTable [class]=\"dt.tableStyleClass\" [ngStyle]=\"dt.tableStyle\">\n <ng-container *ngTemplateOutlet=\"frozen ? dt.frozenColGroupTemplate||dt.colGroupTemplate : dt.colGroupTemplate; context {$implicit: columns}\"></ng-container>\n <tbody class=\"p-datatable-tbody\" [pTableBody]=\"columns\" [pTableBodyTemplate]=\"frozen ? dt.frozenBodyTemplate||dt.bodyTemplate : dt.bodyTemplate\" [frozen]=\"frozen\"></tbody>\n </table>\n <div #scrollableAligner style=\"background-color:transparent\" *ngIf=\"frozen\"></div>\n </div>\n </ng-container>\n <ng-template #virtualScrollTemplate>\n <cdk-virtual-scroll-viewport [itemSize]=\"dt.virtualRowHeight\" tabindex=\"0\" [style.height]=\"dt.scrollHeight !== 'flex' ? scrollHeight : undefined\"\n [minBufferPx]=\"dt.minBufferPx\" [maxBufferPx]=\"dt.maxBufferPx\" (scrolledIndexChange)=\"onScrollIndexChange($event)\" class=\"p-datatable-virtual-scrollable-body\">\n <table #scrollTable [class]=\"dt.tableStyleClass\" [ngStyle]=\"dt.tableStyle\">\n <ng-container *ngTemplateOutlet=\"frozen ? dt.frozenColGroupTemplate||dt.colGroupTemplate : dt.colGroupTemplate; context {$implicit: columns}\"></ng-container>\n <tbody class=\"p-datatable-tbody\" [pTableBody]=\"columns\" [pTableBodyTemplate]=\"frozen ? dt.frozenBodyTemplate||dt.bodyTemplate : dt.bodyTemplate\" [frozen]=\"frozen\"></tbody>\n </table>\n <div #scrollableAligner style=\"background-color:transparent\" *ngIf=\"frozen\"></div>\n </cdk-virtual-scroll-viewport>\n </ng-template>\n <div #scrollFooter class=\"p-datatable-scrollable-footer\">\n <div #scrollFooterBox class=\"p-datatable-scrollable-footer-box\">\n <table class=\"p-datatable-scrollable-footer-table\" [ngClass]=\"dt.tableStyleClass\" [ngStyle]=\"dt.tableStyle\">\n <ng-container *ngTemplateOutlet=\"frozen ? dt.frozenColGroupTemplate||dt.colGroupTemplate : dt.colGroupTemplate; context {$implicit: columns}\"></ng-container>\n <tfoot class=\"p-datatable-tfoot\">\n <ng-container *ngTemplateOutlet=\"frozen ? dt.frozenFooterTemplate||dt.footerTemplate : dt.footerTemplate; context {$implicit: columns}\"></ng-container>\n </tfoot>\n </table>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None\n})\nexport class ScrollableView implements AfterViewInit,OnDestroy {\n\n @Input(\"pScrollableView\") columns: any[];\n\n @Input() frozen: boolean;\n\n @ViewChild('scrollHeader') scrollHeaderViewChild: ElementRef;\n\n @ViewChild('scrollHeaderBox') scrollHeaderBoxViewChild: ElementRef;\n\n @ViewChild('scrollBody') scrollBodyViewChild: ElementRef;\n\n @ViewChild('scrollTable') scrollTableViewChild: ElementRef;\n\n @ViewChild('scrollFooter') scrollFooterViewChild: ElementRef;\n\n @ViewChild('scrollFooterBox') scrollFooterBoxViewChild: ElementRef;\n\n @ViewChild('scrollableAligner') scrollableAlignerViewChild: ElementRef;\n\n @ViewChild(CdkVirtualScrollViewport) virtualScrollBody: CdkVirtualScrollViewport;\n\n headerScrollListener: any;\n\n bodyScrollListener: any;\n\n footerScrollListener: any;\n\n frozenSiblingBody: HTMLDivElement;\n\n preventBodyScrollPropagation: boolean;\n\n _scrollHeight: string;\n\n virtualScrollTimeout: any;\n\n virtualPage: number;\n\n @Input() get scrollHeight(): string {\n return this._scrollHeight;\n }\n set scrollHeight(val: string) {\n this._scrollHeight = val;\n if (val != null && (val.includes('%') || val.includes('calc'))) {\n console.log('Percentage scroll height calculation is removed in favor of the more performant CSS based flex mode, use scrollHeight=\"flex\" instead.')\n }\n\n if (this.dt.virtualScroll && this.virtualScrollBody) {\n this.virtualScrollBody.ngOnInit();\n }\n }\n\n constructor(public dt: Table, public el: ElementRef, public zone: NgZone) {}\n\n ngAfterViewInit() {\n if (!this.frozen) {\n if (this.dt.frozenColumns || this.dt.frozenBodyTemplate) {\n DomHandler.addClass(this.el.nativeElement, 'p-datatable-unfrozen-view');\n }\n\n let frozenView = this.el.nativeElement.previousElementSibling;\n if (frozenView) {\n if (this.dt.virtualScroll)\n this.frozenSiblingBody = DomHandler.findSingle(frozenView, '.p-datatable-virtual-scrollable-body');\n else\n this.frozenSiblingBody = DomHandler.findSingle(frozenView, '.p-datatable-scrollable-body');\n }\n\n let scrollBarWidth = DomHandler.calculateScrollbarWidth();\n this.scrollHeaderBoxViewChild.nativeElement.style.paddingRight = scrollBarWidth + 'px';\n\n if (this.scrollFooterBoxViewChild && this.scrollFooterBoxViewChild.nativeElement) {\n this.scrollFooterBoxViewChild.nativeElement.style.paddingRight = scrollBarWidth + 'px';\n }\n }\n else {\n if (this.scrollableAlignerViewChild && this.scrollableAlignerViewChild.nativeElement) {\n this.scrollableAlignerViewChild.nativeElement.style.height = DomHandler.calculateScrollbarHeight() + 'px';\n }\n }\n\n this.bindEvents();\n }\n\n bindEvents() {\n this.zone.runOutsideAngular(() => {\n if (this.scrollHeaderViewChild && this.scrollHeaderViewChild.nativeElement) {\n this.headerScrollListener = this.onHeaderScroll.bind(this);\n this.scrollHeaderViewChild.nativeElement.addEventListener('scroll', this.headerScrollListener);\n }\n\n if (this.scrollFooterViewChild && this.scrollFooterViewChild.nativeElement) {\n this.footerScrollListener = this.onFooterScroll.bind(this);\n this.scrollFooterViewChild.nativeElement.addEventListener('scroll', this.footerScrollListener);\n }\n\n if (!this.frozen) {\n this.bodyScrollListener = this.onBodyScroll.bind(this);\n\n if (this.dt.virtualScroll)\n this.virtualScrollBody.getElementRef().nativeElement.addEventListener('scroll', this.bodyScrollListener);\n else\n this.scrollBodyViewChild.nativeElement.addEventListener('scroll', this.bodyScrollListener);\n }\n });\n }\n\n unbindEvents() {\n if (this.scrollHeaderViewChild && this.scrollHeaderViewChild.nativeElement) {\n this.scrollHeaderViewChild.nativeElement.removeEventListener('scroll', this.headerScrollListener);\n }\n\n if (this.scrollFooterViewChild && this.scrollFooterViewChild.nativeElement) {\n this.scrollFooterViewChild.nativeElement.removeEventListener('scroll', this.footerScrollListener);\n }\n\n if (this.scrollBodyViewChild && this.scrollBodyViewChild.nativeElement) {\n this.scrollBodyViewChild.nativeElement.removeEventListener('scroll', this.bodyScrollListener);\n }\n\n if (this.virtualScrollBody && this.virtualScrollBody.getElementRef()) {\n this.virtualScrollBody.getElementRef().nativeElement.removeEventListener('scroll', this.bodyScrollListener);\n }\n }\n\n onHeaderScroll() {\n const scrollLeft = this.scrollHeaderViewChild.nativeElement.scrollLeft;\n\n this.scrollBodyViewChild.nativeElement.scrollLeft = scrollLeft;\n\n if (this.scrollFooterViewChild && this.scrollFooterViewChild.nativeElement) {\n this.scrollFooterViewChild.nativeElement.scrollLeft = scrollLeft;\n }\n\n this.preventBodyScrollPropagation = true;\n }\n\n onFooterScroll() {\n const scrollLeft = this.scrollFooterViewChild.nativeElement.scrollLeft;\n this.scrollBodyViewChild.nativeElement.scrollLeft = scrollLeft;\n\n if (this.scrollHeaderViewChild && this.scrollHeaderViewChild.nativeElement) {\n this.scrollHeaderViewChild.nativeElement.scrollLeft = scrollLeft;\n }\n\n this.preventBodyScrollPropagation = true;\n }\n\n onBodyScroll(event) {\n if (this.preventBodyScrollPropagation) {\n this.preventBodyScrollPropagation = false;\n return;\n }\n\n if (this.scrollHeaderViewChild && this.scrollHeaderViewChild.nativeElement) {\n this.scrollHeaderBoxViewChild.nativeElement.style.marginLeft = -1 * event.target.scrollLeft + 'px';\n }\n\n if (this.scrollFooterViewChild && this.scrollFooterViewChild.nativeElement) {\n this.scrollFooterBoxViewChild.nativeElement.style.marginLeft = -1 * event.target.scrollLeft + 'px';\n }\n\n if (this.frozenSiblingBody) {\n this.frozenSiblingBody.scrollTop = event.target.scrollTop;\n }\n }\n\n onScrollIndexChange(index: number) {\n if (this.dt.lazy) {\n if (this.virtualScrollTimeout) {\n clearTimeout(this.virtualScrollTimeout);\n }\n\n this.virtualScrollTimeout = setTimeout(() => {\n let page = Math.floor(index / this.dt.rows);\n let virtualScrollOffset = page === 0 ? 0 : (page - 1) * this.dt.rows;\n let virtualScrollChunkSize = page === 0 ? this.dt.rows * 2 : this.dt.rows * 3;\n \n if (page !== this.virtualPage) {\n this.virtualPage = page;\n this.dt.onLazyLoad.emit({\n first: virtualScrollOffset,\n rows: virtualScrollChunkSize,\n sortField: this.dt.sortField,\n sortOrder: this.dt.sortOrder,\n filters: this.dt.filters,\n globalFilter: this.dt.filters && this.dt.filters['global'] ? (<FilterMetadata> this.dt.filters['global']).value : null,\n multiSortMeta: this.dt.multiSortMeta\n });\n }\n }, this.dt.virtualScrollDelay);\n }\n }\n\n getPageCount() {\n let dataToRender = this.dt.filteredValue || this.dt.value;\n let dataLength = dataToRender ? dataToRender.length: 0;\n return Math.ceil(dataLength / this.dt.rows);\n }\n\n scrollToVirtualIndex(index: number): void {\n if (this.virtualScrollBody) {\n this.virtualScrollBody.scrollToIndex(index);\n }\n }\n\n scrollTo(options): void {\n if (this.virtualScrollBody) {\n this.virtualScrollBody.scrollTo(options);\n }\n else {\n if (this.scrollBodyViewChild.nativeElement.scrollTo) {\n this.scrollBodyViewChild.nativeElement.scrollTo(options);\n }\n else {\n this.scrollBodyViewChild.nativeElement.scrollLeft = options.left;\n this.scrollBodyViewChild.nativeElement.scrollTop = options.top;\n }\n }\n }\n\n ngOnDestroy() {\n this.unbindEvents();\n this.frozenSiblingBody = null;\n }\n}\n\n@Directive({\n selector: '[pSortableColumn]',\n host: {\n '[class.p-sortable-column]': 'isEnabled()',\n '[class.p-highlight]': 'sorted',\n '[attr.tabindex]': 'isEnabled() ? \"0\" : null',\n '[attr.role]': '\"columnheader\"',\n '[attr.aria-sort]': 'sortOrder'\n }\n})\nexport class SortableColumn implements OnInit, OnDestroy {\n\n @Input(\"pSortableColumn\") field: string;\n\n @Input() pSortableColumnDisabled: boolean;\n\n sorted: boolean;\n\n sortOrder: string;\n\n subscription: Subscription;\n\n constructor(public dt: Table) {\n if (this.isEnabled()) {\n this.subscription = this.dt.tableService.sortSource$.subscribe(sortMeta => {\n this.updateSortState();\n });\n }\n }\n\n ngOnInit() {\n if (this.isEnabled()) {\n this.updateSortState();\n }\n }\n\n updateSortState() {\n this.sorted = this.dt.isSorted(this.field);\n this.sortOrder = this.sorted ? (this.dt.sortOrder === 1 ? 'ascending' : 'descending') : 'none';\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent) {\n if (this.isEnabled() && !this.isFilterElement(<HTMLElement> event.target)) {\n this.updateSortState();\n this.dt.sort({\n originalEvent: event,\n field: this.field\n });\n\n DomHandler.clearSelection();\n }\n }\n\n @HostListener('keydown.enter', ['$event'])\n onEnterKey(event: MouseEvent) {\n this.onClick(event);\n }\n\n isEnabled() {\n return this.pSortableColumnDisabled !== true;\n }\n\n isFilterElement(element: HTMLElement) {\n return DomHandler.hasClass(element, 'pi-filter-icon') || DomHandler.hasClass(element, 'p-column-filter-menu-button');\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n\n\n@Component({\n selector: 'p-sortIcon',\n template: `\n <i class=\"p-sortable-column-icon pi pi-fw\" [ngClass]=\"{'pi-sort-amount-up-alt': sortOrder === 1, 'pi-sort-amount-down': sortOrder === -1, 'pi-sort-alt': sortOrder === 0}\"></i>\n <span *ngIf=\"isMultiSorted()\" class=\"p-sortable-column-badge\">{{getMultiSortMetaIndex() + 1}}</span>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class SortIcon implements OnInit, OnDestroy {\n\n @Input() field: string;\n\n subscription: Subscription;\n\n sortOrder: number;\n\n constructor(public dt: Table, public cd: ChangeDetectorRef) {\n this.subscription = this.dt.tableService.sortSource$.subscribe(sortMeta => {\n this.updateSortState();\n });\n }\n\n ngOnInit() {\n this.updateSortState();\n }\n\n onClick(event){\n event.preventDefault();\n }\n\n updateSortState() {\n if (this.dt.sortMode === 'single') {\n this.sortOrder = this.dt.isSorted(this.field) ? this.dt.sortOrder : 0;\n }\n else if (this.dt.sortMode === 'multiple') {\n let sortMeta = this.dt.getSortMeta(this.field);\n this.sortOrder = sortMeta ? sortMeta.order: 0;\n }\n\n this.cd.markForCheck();\n }\n\n getMultiSortMetaIndex() {\n let multiSortMeta = this.dt._multiSortMeta;\n let index = -1;\n\n if (multiSortMeta && this.dt.sortMode === 'multiple' && (this.dt.showInitialSortBadge || multiSortMeta.length > 1)) {\n \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 isMultiSorted() {\n return this.dt.sortMode === 'multiple' && this.getMultiSortMetaIndex() > -1;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[pSelectableRow]',\n host: {\n '[class.p-selectable-row]': 'isEnabled()',\n '[class.p-highlight]': 'selected',\n '[attr.tabindex]': 'isEnabled() ? 0 : undefined'\n }\n})\nexport class SelectableRow implements OnInit, OnDestroy {\n\n @Input(\"pSelectableRow\") data: any;\n\n @Input(\"pSelectableRowIndex\") index: number;\n\n @Input() pSelectableRowDisabled: boolean;\n\n selected: boolean;\n\n subscription: Subscription;\n\n constructor(public dt: Table, public tableService: TableService) {\n if (this.isEnabled()) {\n this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.selected = this.dt.isSelected(this.data);\n });\n }\n }\n\n ngOnInit() {\n if (this.isEnabled()) {\n this.selected = this.dt.isSelected(this.data);\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.dt.handleRowClick({\n originalEvent: event,\n rowData: this.data,\n rowIndex: this.index\n });\n }\n }\n\n @HostListener('touchend', ['$event'])\n onTouchEnd(event: Event) {\n if (this.isEnabled()) {\n this.dt.handleRowTouchEnd(event);\n }\n }\n\n @HostListener('keydown.arrowdown', ['$event'])\n onArrowDownKeyDown(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 @HostListener('keydown.arrowup', ['$event'])\n onArrowUpKeyDown(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 @HostListener('keydown.enter', ['$event'])\n @HostListener('keydown.shift.enter', ['$event'])\n @HostListener('keydown.meta.enter', ['$event'])\n onEnterKeyDown(event: KeyboardEvent) {\n if (!this.isEnabled()) {\n return;\n }\n\n this.dt.handleRowClick({\n originalEvent: event,\n rowData: this.data,\n rowIndex: this.index\n });\n }\n\n @HostListener('keydown.pagedown')\n @HostListener('keydown.pageup')\n @HostListener('keydown.home')\n @HostListener('keydown.end')\n onPageDownKeyDown() {\n if (this.dt.virtualScroll) {\n DomHandler.findSingle(this.dt.scrollableViewChild.el.nativeElement, 'cdk-virtual-scroll-viewport').focus();\n }\n }\n\n @HostListener('keydown.space')\n onSpaceKeydown() {\n if (this.dt.virtualScroll && !this.dt.editingCell) {\n DomHandler.findSingle(this.dt.scrollableViewChild.el.nativeElement, 'cdk-virtual-scroll-viewport').focus();\n }\n }\n\n findNextSelectableRow(row: HTMLTableRowElement): HTMLTableRowElement {\n let nextRow = <HTMLTableRowElement> row.nextElementSibling;\n if (nextRow) {\n if (DomHandler.hasClass(nextRow, 'p-selectable-row'))\n return nextRow;\n else\n return this.findNextSelectableRow(nextRow);\n }\n else {\n return null;\n }\n }\n\n findPrevSelectableRow(row: HTMLTableRowElement): HTMLTableRowElement {\n let prevRow = <HTMLTableRowElement> row.previousElementSibling;\n if (prevRow) {\n if (DomHandler.hasClass(prevRow, 'p-selectable-row'))\n return prevRow;\n else\n return this.findPrevSelectableRow(prevRow);\n }\n else {\n return null;\n }\n }\n\n isEnabled() {\n return this.pSelectableRowDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n\n@Directive({\n selector: '[pSelectableRowDblClick]',\n host: {\n '[class.p-selectable-row]': 'isEnabled()',\n '[class.p-highlight]': 'selected'\n }\n})\nexport class SelectableRowDblClick implements OnInit, OnDestroy {\n\n @Input(\"pSelectableRowDblClick\") data: any;\n\n @Input(\"pSelectableRowIndex\") index: number;\n\n @Input() pSelectableRowDisabled: boolean;\n\n selected: boolean;\n\n subscription: Subscription;\n\n constructor(public dt: Table, public tableService: TableService) {\n if (this.isEnabled()) {\n this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.selected = this.dt.isSelected(this.data);\n });\n }\n }\n\n ngOnInit() {\n if (this.isEnabled()) {\n this.selected = this.dt.isSelected(this.data);\n }\n }\n\n @HostListener('dblclick', ['$event'])\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.dt.handleRowClick({\n originalEvent: event,\n rowData: this.data,\n rowIndex: this.index\n });\n }\n }\n\n isEnabled() {\n return this.pSelectableRowDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n\n@Directive({\n selector: '[pContextMenuRow]',\n host: {\n '[class.p-highlight-contextmenu]': 'selected',\n '[attr.tabindex]': 'isEnabled() ? 0 : undefined'\n }\n})\nexport class ContextMenuRow {\n\n @Input(\"pContextMenuRow\") data: any;\n\n @Input(\"pContextMenuRowIndex\") index: number;\n\n @Input() pContextMenuRowDisabled: boolean;\n\n selected: boolean;\n\n subscription: Subscription;\n\n constructor(public dt: Table, public tableService: TableService, private el: ElementRef) {\n if (this.isEnabled()) {\n this.subscription = this.dt.tableService.contextMenuSource$.subscribe((data) => {\n this.selected = this.dt.equals(this.data, data);\n });\n }\n }\n\n @HostListener('contextmenu', ['$event'])\n onContextMenu(event: Event) {\n if (this.isEnabled()) {\n this.dt.handleRowRightClick({\n originalEvent: event,\n rowData: this.data,\n rowIndex: this.index\n });\n\n this.el.nativeElement.focus();\n event.preventDefault();\n }\n }\n\n isEnabled() {\n return this.pContextMenuRowDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n\n@Directive({\n selector: '[pRowToggler]'\n})\nexport class RowToggler {\n\n @Input('pRowToggler') data: any;\n\n @Input() pRowTogglerDisabled: boolean;\n\n constructor(public dt: Table) { }\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.dt.toggleRow(this.data, event);\n event.preventDefault();\n }\n }\n\n isEnabled() {\n return this.pRowTogglerDisabled !== true;\n }\n}\n\n@Directive({\n selector: '[pResizableColumn]'\n})\nexport class ResizableColumn implements AfterViewInit, OnDestroy {\n\n @Input() pResizableColumnDisabled: boolean;\n\n resizer: HTMLSpanElement;\n\n resizerMouseDownListener: any;\n\n documentMouseMoveListener: any;\n\n documentMouseUpListener: any;\n\n constructor(public dt: Table, public el: ElementRef, public zone: NgZone) { }\n\n ngAfterViewInit() {\n if (this.isEnabled()) {\n DomHandler.addClass(this.el.nativeElement, 'p-resizable-column');\n this.resizer = document.createElement('span');\n this.resizer.className = 'p-column-resizer';\n this.el.nativeElement.appendChild(this.resizer);\n\n this.zone.runOutsideAngular(() => {\n this.resizerMouseDownListener = this.onMouseDown.bind(this);\n this.resizer.addEventListener('mousedown', this.resizerMouseDownListener);\n });\n }\n }\n\n bindDocumentEvents() {\n this.zone.runOutsideAngular(() => {\n this.documentMouseMoveListener = this.onDocumentMouseMove.bind(this);\n document.addEventListener('mousemove', this.documentMouseMoveListener);\n\n this.documentMouseUpListener = this.onDocumentMouseUp.bind(this);\n document.addEventListener('mouseup', this.documentMouseUpListener);\n });\n }\n\n unbindDocumentEvents() {\n if (this.documentMouseMoveListener) {\n document.removeEventListener('mousemove', this.documentMouseMoveListener);\n this.documentMouseMoveListener = null;\n }\n\n if (this.documentMouseUpListener) {\n document.removeEventListener('mouseup', this.documentMouseUpListener);\n this.documentMouseUpListener = null;\n }\n }\n\n onMouseDown(event: MouseEvent) {\n if (event.which === 1) {\n this.dt.onColumnResizeBegin(event);\n this.bindDocumentEvents();\n }\n }\n\n onDocumentMouseMove(event: MouseEvent) {\n this.dt.onColumnResize(event);\n }\n\n onDocumentMouseUp(event: MouseEvent) {\n this.dt.onColumnResizeEnd(event, this.el.nativeElement);\n this.unbindDocumentEvents();\n }\n\n isEnabled() {\n return this.pResizableColumnDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.resizerMouseDownListener) {\n this.resizer.removeEventListener('mousedown', this.resizerMouseDownListener);\n }\n\n this.unbindDocumentEvents();\n }\n}\n\n@Directive({\n selector: '[pReorderableColumn]'\n})\nexport class ReorderableColumn implements AfterViewInit, OnDestroy {\n\n @Input() pReorderableColumnDisabled: boolean;\n\n dragStartListener: any;\n\n dragOverListener: any;\n\n dragEnterListener: any;\n\n dragLeaveListener: any;\n\n mouseDownListener: any;\n\n constructor(public dt: Table, public el: ElementRef, public zone: NgZone) { }\n\n ngAfterViewInit() {\n if (this.isEnabled()) {\n this.bindEvents();\n }\n }\n\n bindEvents() {\n this.zone.runOutsideAngular(() => {\n this.mouseDownListener = this.onMouseDown.bind(this);\n this.el.nativeElement.addEventListener('mousedown', this.mouseDownListener);\n\n this.dragStartListener = this.onDragStart.bind(this);\n this.el.nativeElement.addEventListener('dragstart', this.dragStartListener);\n\n this.dragOverListener = this.onDragEnter.bind(this);\n this.el.nativeElement.addEventListener('dragover', this.dragOverListener);\n\n this.dragEnterListener = this.onDragEnter.bind(this);\n this.el.nativeElement.addEventListener('dragenter', this.dragEnterListener);\n\n this.dragLeaveListener = this.onDragLeave.bind(this);\n this.el.nativeElement.addEventListener('dragleave', this.dragLeaveListener);\n });\n }\n\n unbindEvents() {\n if (this.mouseDownListener) {\n document.removeEventListener('mousedown', this.mouseDownListener);\n this.mouseDownListener = null;\n }\n\n if (this.dragOverListener) {\n document.removeEventListener('dragover', this.dragOverListener);\n this.dragOverListener = null;\n }\n\n if (this.dragEnterListener) {\n document.removeEventListener('dragenter', this.dragEnterListener);\n this.dragEnterListener = null;\n }\n\n if (this.dragEnterListener) {\n document.removeEventListener('dragenter', this.dragEnterListener);\n this.dragEnterListener = null;\n }\n\n if (this.dragLeaveListener) {\n document.removeEventListener('dragleave', this.dragLeaveListener);\n this.dragLeaveListener = null;\n }\n }\n\n onMouseDown(event) {\n if (event.target.nodeName === 'INPUT' || event.target.nodeName === 'TEXTAREA' || DomHandler.hasClass(event.target, 'p-column-resizer'))\n this.el.nativeElement.draggable = false;\n else\n this.el.nativeElement.draggable = true;\n }\n\n onDragStart(event) {\n this.dt.onColumnDragStart(event, this.el.nativeElement);\n }\n\n onDragOver(event) {\n event.preventDefault();\n }\n\n onDragEnter(event) {\n this.dt.onColumnDragEnter(event, this.el.nativeElement);\n }\n\n onDragLeave(event) {\n this.dt.onColumnDragLeave(event);\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event) {\n if (this.isEnabled()) {\n this.dt.onColumnDrop(event, this.el.nativeElement);\n }\n }\n\n isEnabled() {\n return this.pReorderableColumnDisabled !== true;\n }\n\n ngOnDestroy() {\n this.unbindEvents();\n }\n\n}\n\n@Directive({\n selector: '[pEditableColumn]'\n})\nexport class EditableColumn implements AfterViewInit {\n\n @Input(\"pEditableColumn\") data: any;\n\n @Input(\"pEditableColumnField\") field: any;\n\n @Input(\"pEditableColumnRowIndex\") rowIndex: number;\n\n @Input() pEditableColumnDisabled: boolean;\n\n @Input() pFocusCellSelector: string;\n\n constructor(public dt: Table, public el: ElementRef, public zone: NgZone) {}\n\n ngAfterViewInit() {\n if (this.isEnabled()) {\n DomHandler.addClass(this.el.nativeElement, 'p-editable-column');\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent) {\n if (this.isEnabled()) {\n this.dt.editingCellClick = true;\n\n if (this.dt.editingCell) {\n if (this.dt.editingCell !== this.el.nativeElement) {\n if (!this.dt.isEditingCellValid()) {\n return;\n }\n\n this.closeEditingCell(true, event);\n this.openCell();\n }\n }\n else {\n this.openCell();\n }\n }\n }\n\n openCell() {\n this.dt.updateEditingCell(this.el.nativeElement, this.data, this.field, this.rowIndex);\n DomHandler.addClass(this.el.nativeElement, 'p-cell-editing');\n this.dt.onEditInit.emit({field: this.field, data: this.data, index: this.rowIndex});\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n let focusCellSelector = this.pFocusCellSelector || 'input, textarea, select';\n let focusableElement = DomHandler.findSingle(this.el.nativeElement, focusCellSelector);\n\n if (focusableElement) {\n focusableElement.focus();\n }\n }, 50);\n });\n }\n\n closeEditingCell(completed, event) {\n if (completed)\n this.dt.onEditComplete.emit({field: this.dt.editingCellField, data: this.dt.editingCellData, originalEvent: event, index: this.dt.editingCellRowIndex});\n else\n this.dt.onEditCancel.emit({field: this.dt.editingCellField, data: this.dt.editingCellData, originalEvent: event, index: this.dt.editingCellRowIndex});\n\n DomHandler.removeClass(this.dt.editingCell, 'p-cell-editing');\n this.dt.editingCell = null;\n this.dt.editingCellData = null;\n this.dt.editingCellField = null;\n this.dt.unbindDocumentEditListener();\n }\n\n @HostListener('keydown.enter', ['$event'])\n onEnterKeyDown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n event.preventDefault();\n }\n }\n\n @HostListener('keydown.escape', ['$event'])\n onEscapeKeyDown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(false, event);\n }\n\n event.preventDefault();\n }\n }\n\n @HostListener('keydown.tab', ['$event'])\n @HostListener('keydown.shift.tab', ['$event'])\n @HostListener('keydown.meta.tab', ['$event'])\n onShiftKeyDown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n if (event.shiftKey)\n this.moveToPreviousCell(event);\n else{\n this.moveToNextCell(event);\n }\n }\n }\n @HostListener('keydown.arrowdown', ['$event'])\n onArrowDown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n let currentCell = this.findCell(event.target);\n if (currentCell) {\n let cellIndex = DomHandler.index(currentCell);\n let targetCell = this.findNextEditableColumnByIndex(currentCell, cellIndex);\n\n if (targetCell) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n DomHandler.invokeElementMethod(event.target, 'blur');\n DomHandler.invokeElementMethod(targetCell, 'click');\n }\n\n event.preventDefault();\n }\n }\n }\n\n @HostListener('keydown.arrowup', ['$event'])\n onArrowUp(event: KeyboardEvent) {\n if (this.isEnabled()) {\n let currentCell = this.findCell(event.target);\n if (currentCell) {\n let cellIndex = DomHandler.index(currentCell);\n let targetCell = this.findPrevEditableColumnByIndex(currentCell, cellIndex);\n\n if (targetCell) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n DomHandler.invokeElementMethod(event.target, 'blur');\n DomHandler.invokeElementMethod(targetCell, 'click');\n }\n \n event.preventDefault();\n }\n }\n }\n\n @HostListener('keydown.arrowleft', ['$event'])\n onArrowLeft(event: KeyboardEvent) {\n if (this.isEnabled()) {\n this.moveToPreviousCell(event);\n }\n }\n\n @HostListener('keydown.arrowright', ['$event'])\n onArrowRight(event: KeyboardEvent) {\n if (this.isEnabled()) {\n this.moveToNextCell(event);\n }\n }\n\n findCell(element) {\n if (element) {\n let cell = element;\n while (cell && !DomHandler.hasClass(cell, 'p-cell-editing')) {\n cell = cell.parentElement;\n }\n\n return cell;\n }\n else {\n return null;\n }\n }\n\n moveToPreviousCell(event: KeyboardEvent) {\n let currentCell = this.findCell(event.target);\n if (currentCell) {\n let targetCell = this.findPreviousEditableColumn(currentCell);\n\n if (targetCell) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n DomHandler.invokeElementMethod(event.target, 'blur');\n DomHandler.invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n }\n }\n\n moveToNextCell(event: KeyboardEvent) {\n let currentCell = this.findCell(event.target);\n if (currentCell) {\n let targetCell = this.findNextEditableColumn(currentCell);\n\n if (targetCell) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n DomHandler.invokeElementMethod(event.target, 'blur');\n DomHandler.invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n }\n }\n\n findPreviousEditableColumn(cell: Element) {\n let prevCell = cell.previousElementSibling;\n\n if (!prevCell) {\n let previousRow = cell.parentElement.previousElementSibling;\n if (previousRow) {\n prevCell = previousRow.lastElementChild;\n }\n }\n\n if (prevCell) {\n if (DomHandler.hasClass(prevCell, 'p-editable-column'))\n return prevCell;\n else\n return this.findPreviousEditableColumn(prevCell);\n }\n else {\n return null;\n }\n }\n\n findNextEditableColumn(cell: Element) {\n let nextCell = cell.nextElementSibling;\n\n if (!nextCell) {\n let nextRow = cell.parentElement.nextElementSibling;\n if (nextRow) {\n nextCell = nextRow.firstElementChild;\n }\n }\n\n if (nextCell) {\n if (DomHandler.hasClass(nextCell, 'p-editable-column'))\n return nextCell;\n else\n return this.findNextEditableColumn(nextCell);\n }\n else {\n return null;\n }\n }\n\n findNextEditableColumnByIndex(cell: Element, index: number) {\n let nextRow = cell.parentElement.nextElementSibling;\n\n if (nextRow) {\n let nextCell = nextRow.children[index];\n\n if (nextCell && DomHandler.hasClass(nextCell, 'p-editable-column')) {\n return nextCell;\n }\n\n return null;\n }\n else {\n return null;\n }\n }\n\n findPrevEditableColumnByIndex(cell: Element, index: number) {\n let prevRow = cell.parentElement.previousElementSibling;\n\n if (prevRow) {\n let prevCell = prevRow.children[index];\n\n if (prevCell && DomHandler.hasClass(prevCell, 'p-editable-column')) {\n return prevCell;\n }\n\n return null;\n }\n else {\n return null;\n }\n }\n\n isEnabled() {\n return this.pEditableColumnDisabled !== true;\n }\n\n}\n\n@Directive({\n selector: '[pEditableRow]'\n})\nexport class EditableRow {\n\n @Input(\"pEditableRow\") data: any;\n\n @Input() pEditableRowDisabled: boolean;\n\n constructor(public el: ElementRef) {}\n\n isEnabled() {\n return this.pEditableRowDisabled !== true;\n }\n\n}\n\n@Directive({\n selector: '[pInitEditableRow]'\n})\nexport class InitEditableRow {\n\n constructor(public dt: Table, public editableRow: EditableRow) {}\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n this.dt.initRowEdit(this.editableRow.data);\n event.preventDefault();\n }\n\n}\n\n@Directive({\n selector: '[pSaveEditableRow]'\n})\nexport class SaveEditableRow {\n\n constructor(public dt: Table, public editableRow: EditableRow) {}\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n this.dt.saveRowEdit(this.editableRow.data, this.editableRow.el.nativeElement);\n event.preventDefault();\n }\n}\n\n@Directive({\n selector: '[pCancelEditableRow]'\n})\nexport class CancelEditableRow {\n\n constructor(public dt: Table, public editableRow: EditableRow) {}\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n this.dt.cancelRowEdit(this.editableRow.data);\n event.preventDefault();\n }\n}\n\n@Component({\n selector: 'p-cellEditor',\n template: `\n <ng-container *ngIf=\"editing\">\n <ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!editing\">\n <ng-container *ngTemplateOutlet=\"outputTemplate\"></ng-container>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class CellEditor implements AfterContentInit {\n\n @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate>;\n\n inputTemplate: TemplateRef<any>;\n\n outputTemplate: TemplateRef<any>;\n\n constructor(public dt: Table, @Optional() public editableColumn: EditableColumn, @Optional() public editableRow: EditableRow) { }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'input':\n this.inputTemplate = item.template;\n break;\n\n case 'output':\n this.outputTemplate = item.template;\n break;\n }\n });\n }\n\n get editing(): boolean {\n return (this.dt.editingCell && this.editableColumn && this.dt.editingCell === this.editableColumn.el.nativeElement) ||\n (this.editableRow && this.dt.editMode === 'row' && this.dt.isRowEditing(this.editableRow.data));\n }\n\n}\n\n@Component({\n selector: 'p-tableRadioButton',\n template: `\n <div class=\"p-radiobutton p-component\" (click)=\"onClick($event)\">\n <div class=\"p-hidden-accessible\">\n <input type=\"radio\" [attr.id]=\"inputId\" [attr.name]=\"name\" [checked]=\"checked\" (focus)=\"onFocus()\" (blur)=\"onBlur()\"\n [disabled]=\"disabled\" [attr.aria-label]=\"ariaLabel\">\n </div>\n <div #box [ngClass]=\"{'p-radiobutton-box p-component':true,\n 'p-highlight':checked, 'p-disabled':disabled}\" role=\"radio\" [attr.aria-checked]=\"checked\">\n <div class=\"p-radiobutton-icon\"></div>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class TableRadioButton {\n\n @Input() disabled: boolean;\n\n @Input() value: any;\n\n @Input() index: number;\n\n @Input() inputId: string;\n\n @Input() name: string;\n\n @Input() ariaLabel: string;\n\n @ViewChild('box') boxViewChild: ElementRef;\n\n checked: boolean;\n\n subscription: Subscription;\n\n constructor(public dt: Table, public tableService: TableService, public cd: ChangeDetectorRef) {\n this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.dt.isSelected(this.value);\n this.cd.markForCheck();\n });\n }\n\n ngOnInit() {\n this.checked = this.dt.isSelected(this.value);\n }\n\n onClick(event: Event) {\n if (!this.disabled) {\n this.dt.toggleRowWithRadio({\n originalEvent: event,\n rowIndex: this.index\n }, this.value);\n }\n DomHandler.clearSelection();\n }\n\n onFocus() {\n DomHandler.addClass(this.boxViewChild.nativeElement, 'p-focus');\n }\n\n onBlur() {\n DomHandler.removeClass(this.boxViewChild.nativeElement, 'p-focus');\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n\n@Component({\n selector: 'p-tableCheckbox',\n template: `\n <div class=\"p-checkbox p-component\" (click)=\"onClick($event)\">\n <div class=\"p-hidden-accessible\">\n <input type=\"checkbox\" [attr.id]=\"inputId\" [attr.name]=\"name\" [checked]=\"checked\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" [disabled]=\"disabled\"\n [attr.required]=\"required\" [attr.aria-label]=\"ariaLabel\">\n </div>\n <div #box [ngClass]=\"{'p-checkbox-box p-component':true,\n 'p-highlight':checked, 'p-disabled':disabled}\" role=\"checkbox\" [attr.aria-checked]=\"checked\">\n <span class=\"p-checkbox-icon\" [ngClass]=\"{'pi pi-check':checked}\"></span>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class TableCheckbox {\n\n @Input() disabled: boolean;\n\n @Input() value: any;\n\n @Input() index: number;\n\n @Input() inputId: string;\n\n @Input() name: string;\n\n @Input() required: boolean;\n\n @Input() ariaLabel: string;\n\n @ViewChild('box') boxViewChild: ElementRef;\n\n checked: boolean;\n\n subscription: Subscription;\n\n constructor(public dt: Table, public tableService: TableService, public cd: ChangeDetectorRef) {\n this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.dt.isSelected(this.value);\n this.cd.markForCheck();\n });\n }\n\n ngOnInit() {\n this.checked = this.dt.isSelected(this.value);\n }\n\n onClick(event: Event) {\n if (!this.disabled) {\n this.dt.toggleRowWithCheckbox({\n originalEvent: event,\n rowIndex: this.index\n }, this.value);\n }\n DomHandler.clearSelection();\n }\n\n onFocus() {\n DomHandler.addClass(this.boxViewChild.nativeElement, 'p-focus');\n }\n\n onBlur() {\n DomHandler.removeClass(this.boxViewChild.nativeElement, 'p-focus');\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n\n@Component({\n selector: 'p-tableHeaderCheckbox',\n template: `\n <div class=\"p-checkbox p-component\" (click)=\"onClick($event)\">\n <div class=\"p-hidden-accessible\">\n <input #cb type=\"checkbox\" [attr.id]=\"inputId\" [attr.name]=\"name\" [checked]=\"checked\" (focus)=\"onFocus()\" (blur)=\"onBlur()\"\n [disabled]=\"isDisabled()\" [attr.aria-label]=\"ariaLabel\">\n </div>\n <div #box [ngClass]=\"{'p-checkbox-box':true,\n 'p-highlight':checked, 'p-disabled': isDisabled()}\" role=\"checkbox\" [attr.aria-checked]=\"checked\">\n <span class=\"p-checkbox-icon\" [ngClass]=\"{'pi pi-check':checked}\"></span>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class TableHeaderCheckbox {\n\n @ViewChild('box') boxViewChild: ElementRef;\n\n @Input() disabled: boolean;\n\n @Input() inputId: string;\n\n @Input() name: string;\n\n @Input() ariaLabel: string;\n\n checked: boolean;\n\n selectionChangeSubscription: Subscription;\n\n valueChangeSubscription: Subscription;\n\n constructor(public dt: Table, public tableService: TableService, public cd: ChangeDetectorRef) {\n this.valueChangeSubscription = this.dt.tableService.valueSource$.subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n\n this.selectionChangeSubscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n }\n\n ngOnInit() {\n this.checked = this.updateCheckedState();\n }\n\n onClick(event: Event) {\n if (!this.disabled) {\n if (this.dt.value && this.dt.value.length > 0) {\n this.dt.toggleRowsWithCheckbox(event, !this.checked);\n }\n }\n\n DomHandler.clearSelection();\n }\n\n onFocus() {\n DomHandler.addClass(this.boxViewChild.nativeElement, 'p-focus');\n }\n\n onBlur() {\n DomHandler.removeClass(this.boxViewChild.nativeElement, 'p-focus');\n }\n\n isDisabled() {\n return this.disabled || !this.dt.value || !this.dt.value.length;\n }\n\n ngOnDestroy() {\n if (this.selectionChangeSubscription) {\n this.selectionChangeSubscription.unsubscribe();\n }\n\n if (this.valueChangeSubscription) {\n this.valueChangeSubscription.unsubscribe();\n }\n }\n\n updateCheckedState() {\n this.cd.markForCheck();\n\n if (this.dt.filteredValue) {\n const val = this.dt.filteredValue;\n return (val && val.length > 0 && this.dt.selection && this.dt.selection.length > 0 && this.isAllFilteredValuesChecked());\n }\n else {\n const val = this.dt.value;\n return (val && val.length > 0 && this.dt.selection && this.dt.selection.length > 0 && this.dt.selection.length === val.length);\n }\n }\n\n isAllFilteredValuesChecked() {\n if (!this.dt.filteredValue) {\n return false;\n }\n else {\n for (let rowData of this.dt.filteredValue) {\n if (!this.dt.isSelected(rowData)) {\n return false;\n }\n }\n return true;\n }\n }\n\n}\n\n@Directive({\n selector: '[pReorderableRowHandle]'\n})\nexport class ReorderableRowHandle implements AfterViewInit {\n\n @Input(\"pReorderableRowHandle\") index: number;\n\n constructor(public el: ElementRef) {}\n\n ngAfterViewInit() {\n DomHandler.addClass(this.el.nativeElement, 'p-datatable-reorderablerow-handle');\n }\n}\n\n@Directive({\n selector: '[pReorderableRow]'\n})\nexport class ReorderableRow implements AfterViewInit {\n\n @Input(\"pReorderableRow\") index: number;\n\n @Input() pReorderableRowDisabled: boolean;\n\n mouseDownListener: any;\n\n dragStartListener: any;\n\n dragEndListener: any;\n\n dragOverListener: any;\n\n dragLeaveListener: any;\n\n dropListener: any;\n\n constructor(public dt: Table, public el: ElementRef, public zone: NgZone) {}\n\n ngAfterViewInit() {\n if (this.isEnabled()) {\n this.el.nativeElement.droppable = true;\n this.bindEvents();\n }\n }\n\n bindEvents() {\n this.zone.runOutsideAngular(() => {\n this.mouseDownListener = this.onMouseDown.bind(this);\n this.el.nativeElement.addEventListener('mousedown', this.mouseDownListener);\n\n this.dragStartListener = this.onDragStart.bind(this);\n this.el.nativeElement.addEventListener('dragstart', this.dragStartListener);\n\n this.dragEndListener = this.onDragEnd.bind(this);\n this.el.nativeElement.addEventListener('dragend', this.dragEndListener);\n\n this.dragOverListener = this.onDragOver.bind(this);\n this.el.nativeElement.addEventListener('dragover', this.dragOverListener);\n\n this.dragLeaveListener = this.onDragLeave.bind(this);\n this.el.nativeElement.addEventListener('dragleave', this.dragLeaveListener);\n });\n }\n\n unbindEvents() {\n if (this.mouseDownListener) {\n document.removeEventListener('mousedown', this.mouseDownListener);\n this.mouseDownListener = null;\n }\n\n if (this.dragStartListener) {\n document.removeEventListener('dragstart', this.dragStartListener);\n this.dragStartListener = null;\n }\n\n if (this.dragEndListener) {\n document.removeEventListener('dragend', this.dragEndListener);\n this.dragEndListener = null;\n }\n\n if (this.dragOverListener) {\n document.removeEventListener('dragover', this.dragOverListener);\n this.dragOverListener = null;\n }\n\n if (this.dragLeaveListener) {\n document.removeEventListener('dragleave', this.dragLeaveListener);\n this.dragLeaveListener = null;\n }\n }\n\n onMouseDown(event) {\n if (DomHandler.hasClass(event.target, 'p-datatable-reorderablerow-handle'))\n this.el.nativeElement.draggable = true;\n else\n this.el.nativeElement.draggable = false;\n }\n\n onDragStart(event) {\n this.dt.onRowDragStart(event, this.index);\n }\n\n onDragEnd(event) {\n this.dt.onRowDragEnd(event);\n this.el.nativeElement.draggable = false;\n }\n\n onDragOver(event) {\n this.dt.onRowDragOver(event, this.index, this.el.nativeElement);\n event.preventDefault();\n }\n\n onDragLeave(event) {\n this.dt.onRowDragLeave(event, this.el.nativeElement);\n }\n\n isEnabled() {\n return this.pReorderableRowDisabled !== true;\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event) {\n if (this.isEnabled() && this.dt.rowDragging) {\n this.dt.onRowDrop(event, this.el.nativeElement);\n }\n\n event.preventDefault()\n }\n}\n\n@Component({\n selector: 'p-columnFilterFormElement',\n template: `\n <ng-container *ngIf=\"filterTemplate; else builtInElement\">\n <ng-container *ngTemplateOutlet=\"filterTemplate; context: {$implicit: filterConstraint.value, filterCallback: filterCallback}\"></ng-container>\n </ng-container>\n <ng-template #builtInElement>\n <ng-container [ngSwitch]=\"type\">\n <input *ngSwitchCase=\"'text'\" type=\"text\" pInputText [value]=\"filterConstraint?.value\" (input)=\"onModelChange($event.target.value)\"\n (keydown.enter)=\"onTextInputEnterKeyDown($event)\" [attr.placeholder]=\"placeholder\">\n <p-inputNumber *ngSwitchCase=\"'numeric'\" [ngModel]=\"filterConstraint?.value\" (ngModelChange)=\"onModelChange($event)\" (onKeyDown)=\"onNumericInputKeyDown($event)\" [showButtons]=\"true\" [attr.placeholder]=\"placeholder\"\n [minFractionDigits]=\"minFractionDigits\" [maxFractionDigits]=\"maxFractionDigits\" [prefix]=\"prefix\" [suffix]=\"suffix\" [placeholder]=\"placeholder\"\n [mode]=\"currency ? 'currency' : 'decimal'\" [locale]=\"locale\" [localeMatcher]=\"localeMatcher\" [currency]=\"currency\" [currencyDisplay]=\"currencyDisplay\" [useGrouping]=\"useGrouping\"></p-inputNumber>\n <p-triStateCheckbox *ngSwitchCase=\"'boolean'\" [ngModel]=\"filterConstraint?.value\" (ngModelChange)=\"onModelChange($event)\"></p-triStateCheckbox>\n <p-calendar *ngSwitchCase=\"'date'\" [ngModel]=\"filterConstraint?.value\" (ngModelChange)=\"onModelChange($event)\"></p-calendar>\n </ng-container>\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class ColumnFilterFormElement implements OnInit {\n \n @Input() field: string;\n\n @Input() type: string;\n\n @Input() filterConstraint: FilterMetadata;\n\n @Input() filterTemplate: TemplateRef<any>;\n\n @Input() placeholder: string;\n\n @Input() minFractionDigits: number\n \n @Input() maxFractionDigits: number;\n\n @Input() prefix: string;\n\n @Input() suffix: string;\n\n @Input() locale: string;\n\n @Input() localeMatcher: string;\n\n @Input() currency: string;\n\n @Input() currencyDisplay: string;\n\n @Input() useGrouping: boolean = true;\n\n filterCallback: Function;\n\n constructor(public dt: Table) {}\n\n ngOnInit() {\n this.filterCallback = value => {\n this.filterConstraint.value = value;\n this.dt._filter();\n };\n }\n\n onModelChange(value: any) {\n this.filterConstraint.value = value;\n\n if (this.type === 'boolean' || value === '') {\n this.dt._filter();\n }\n }\n\n onTextInputEnterKeyDown(event: KeyboardEvent) {\n this.dt._filter();\n event.preventDefault();\n }\n\n onNumericInputKeyDown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n this.dt._filter();\n event.preventDefault();\n }\n }\n}\n\n@Component({\n selector: 'p-columnFilter',\n template: `\n <div class=\"p-column-filter\" [ngClass]=\"{'p-column-filter-row': display === 'row', 'p-column-filter-menu': display === 'menu'}\">\n <p-columnFilterFormElement *ngIf=\"display === 'row'\" class=\"p-fluid\" [type]=\"type\" [field]=\"field\" [filterConstraint]=\"dt.filters[field]\" [filterTemplate]=\"filterTemplate\" [placeholder]=\"placeholder\" [minFractionDigits]=\"minFractionDigits\" [maxFractionDigits]=\"maxFractionDigits\" [prefix]=\"prefix\" [suffix]=\"suffix\"\n [locale]=\"locale\" [localeMatcher]=\"localeMatcher\" [currency]=\"currency\" [currencyDisplay]=\"currencyDisplay\" [useGrouping]=\"useGrouping\"></p-columnFilterFormElement>\n <button #icon *ngIf=\"showMenuButton\" type=\"button\" class=\"p-column-filter-menu-button p-link\" aria-haspopup=\"true\" [attr.aria-expanded]=\"overlayVisible\"\n [ngClass]=\"{'p-column-filter-menu-button-open': overlayVisible, 'p-column-filter-menu-button-active': hasFilter()}\" \n (click)=\"toggleMenu()\" (keydown)=\"onToggleButtonKeyDown($event)\"><span class=\"pi pi-filter-icon pi-filter\"></span></button>\n <button #icon *ngIf=\"showMenuButton && display === 'row'\" [ngClass]=\"{'p-hidden-space': !hasRowFilter()}\" type=\"button\" class=\"p-column-filter-clear-button p-link\" (click)=\"clearFilter()\"><span class=\"pi pi-filter-slash\"></span></button>\n <div *ngIf=\"showMenu && overlayVisible\" [ngClass]=\"{'p-column-filter-overlay p-component p-fluid': true, 'p-column-filter-overlay-menu': display === 'menu'}\" \n [@overlayAnimation]=\"'visible'\" (@overlayAnimation.start)=\"onOverlayAnimationStart($event)\" (keydown.escape)=\"onEscape()\">\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: {$implicit: field}\"></ng-container>\n <ul *ngIf=\"display === 'row'; else menu\" class=\"p-column-filter-row-items\">\n <li class=\"p-column-filter-row-item\" *ngFor=\"let matchMode of matchModes; let i = index;\" (click)=\"onRowMatchModeChange(matchMode.value)\" (keydown)=\"onRowMatchModeKeyDown($event)\" (keydown.enter)=\"this.onRowMatchModeChange(matchMode.value)\"\n [ngClass]=\"{'p-highlight': isRowMatchModeSelected(matchMode.value)}\" [attr.tabindex]=\"i === 0 ? '0' : null\">{{matchMode.label}}</li>\n <li class=\"p-column-filter-separator\"></li>\n <li class=\"p-column-filter-row-item\" (click)=\"onRowClearItemClick()\" (keydown)=\"onRowMatchModeKeyDown($event)\" (keydown.enter)=\"onRowClearItemClick()\">{{noFilterLabel}}</li>\n </ul>\n <ng-template #menu>\n <div class=\"p-column-filter-operator\" *ngIf=\"isShowOperator\">\n <p-dropdown [options]=\"operatorOptions\" [ngModel]=\"operator\" (ngModelChange)=\"onOperatorChange($event)\" styleClass=\"p-column-filter-operator-dropdown\"></p-dropdown>\n </div>\n <div class=\"p-column-filter-constraints\">\n <div *ngFor=\"let fieldConstraint of fieldConstraints; let i = index\" class=\"p-column-filter-constraint\">\n <p-dropdown *ngIf=\"showMatchModes && matchModes\" [options]=\"matchModes\" [ngModel]=\"fieldConstraint.matchMode\" (ngModelChange)=\"onMenuMatchModeChange($event, fieldConstraint)\" styleClass=\"p-column-filter-matchmode-dropdown\"></p-dropdown>\n <p-columnFilterFormElement [type]=\"type\" [field]=\"field\" [filterConstraint]=\"fieldConstraint\" [filterTemplate]=\"filterTemplate\" [placeholder]=\"placeholder\"\n [minFractionDigits]=\"minFractionDigits\" [maxFractionDigits]=\"maxFractionDigits\" [prefix]=\"prefix\" [suffix]=\"suffix\"\n [locale]=\"locale\" [localeMatcher]=\"localeMatcher\" [currency]=\"currency\" [currencyDisplay]=\"currencyDisplay\" [useGrouping]=\"useGrouping\"></p-columnFilterFormElement>\n <div>\n <button *ngIf=\"showRemoveIcon\" type=\"button\" pButton icon=\"pi pi-trash\" class=\"p-column-filter-remove-button p-button-text p-button-danger p-button-sm\" (click)=\"removeConstraint(fieldConstraint)\" pRipple [label]=\"removeRuleButtonLabel\"></button>\n </div>\n </div>\n </div>\n <div class=\"p-column-filter-add-rule\" *ngIf=\"isShowAddConstraint\">\n <button type=\"button\" pButton [label]=\"addRuleButtonLabel\" icon=\"pi pi-plus\" class=\"p-column-filter-add-button p-button-text p-button-sm\" (click)=\"addConstraint()\" pRipple></button>\n </div>\n <div class=\"p-column-filter-buttonbar\">\n <button *ngIf=\"showClearButton\" type=\"button\" pButton class=\"p-button-outlined\" (click)=\"clearFilter()\" [label]=\"clearButtonLabel\" pRipple></button>\n <button *ngIf=\"showApplyButton\" type=\"button\" pButton (click)=\"applyFilter()\" [label]=\"applyButtonLabel\" pRipple></button>\n </div>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: {$implicit: field}\"></ng-container>\n </div>\n </div>\n `,\n animations: [\n trigger('overlayAnimation', [\n transition(':enter', [\n style({opacity: 0, transform: 'scaleY(0.8)'}),\n animate('.12s cubic-bezier(0, 0, 0.2, 1)')\n ]),\n transition(':leave', [\n animate('.1s linear', style({ opacity: 0 }))\n ])\n ])\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class ColumnFilter implements AfterContentInit {\n\n @Input() field: string;\n\n @Input() type: string = 'text';\n\n @Input() display: string = 'row';\n\n @Input() showMenu: boolean = true;\n\n @Input() matchMode: string;\n\n @Input() operator: string = FilterOperator.AND;\n\n @Input() showOperator: boolean = true;\n\n @Input() showClearButton: boolean = true;\n\n @Input() showApplyButton: boolean = true;\n\n @Input() showMatchModes: boolean = true;\n\n @Input() showAddButton: boolean = true;\n\n @Input() hideOnClear: boolean = false;\n\n @Input() placeholder: string;\n\n @Input() matchModeOptions: SelectItem[];\n\n @Input() maxConstraints: number = 2;\n\n @Input() minFractionDigits: number;\n \n @Input() maxFractionDigits: number;\n\n @Input() prefix: string;\n\n @Input() suffix: string;\n\n @Input() locale: string;\n\n @Input() localeMatcher: string;\n\n @Input() currency: string;\n\n @Input() currencyDisplay: string;\n\n @Input() useGrouping: boolean = true;\n\n @ViewChild('icon') icon: ElementRef;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n constructor(public el: ElementRef, public dt: Table, public renderer: Renderer2, public config: PrimeNGConfig) {}\n\n headerTemplate: TemplateRef<any>;\n\n filterTemplate: TemplateRef<any>;\n\n footerTemplate: TemplateRef<any>;\n\n operatorOptions: any[];\n\n overlayVisible: boolean;\n\n overlay: HTMLElement;\n\n scrollHandler: any;\n\n documentClickListener: any;\n\n documentResizeListener: any;\n\n matchModes: SelectItem[];\n\n translationSubscription: Subscription;\n\n resetSubscription: Subscription;\n\n ngOnInit() {\n if (!this.dt.filters[this.field]) {\n this.initFieldFilterConstraint();\n }\n\n this.translationSubscription = this.config.translationObserver.subscribe(() => {\n this.generateMatchModeOptions();\n this.generateOperatorOptions();\n });\n\n this.resetSubscription = this.dt.tableService.resetSource$.subscribe(() => {\n this.clearFilter();\n })\n\n this.generateMatchModeOptions();\n this.generateOperatorOptions();\n }\n\n generateMatchModeOptions() {\n this.matchModes = this.matchModeOptions || \n this.config.filterMatchModeOptions[this.type]?.map(key => {\n return {label: this.config.getTranslation(key), value: key}\n });\n }\n\n generateOperatorOptions() {\n this.operatorOptions = [\n {label: this.config.getTranslation(TranslationKeys.MATCH_ALL), value: FilterOperator.AND},\n {label: this.config.getTranslation(TranslationKeys.MATCH_ANY), value: FilterOperator.OR}\n ];\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'filter':\n this.filterTemplate = item.template;\n break;\n \n case 'footer':\n this.footerTemplate = item.template;\n break;\n\n default:\n this.filterTemplate = item.template;\n break;\n }\n });\n }\n\n initFieldFilterConstraint() {\n let defaultMatchMode = this.getDefaultMatchMode();\n this.dt.filters[this.field] = this.display == 'row' ? {value: null, matchMode: defaultMatchMode} : [{value: null, matchMode: defaultMatchMode, operator: this.operator}];\n }\n\n onMenuMatchModeChange(value: any, filterMeta: FilterMetadata) {\n filterMeta.matchMode = value;\n\n if (!this.showApplyButton) {\n this.dt._filter();\n }\n }\n\n onRowMatchModeChange(matchMode: string) {\n (<FilterMetadata> this.dt.filters[this.field]).matchMode = matchMode;\n this.dt._filter();\n this.hide();\n }\n \n onRowMatchModeKeyDown(event: KeyboardEvent) {\n let item = <HTMLLIElement> event.target;\n\n switch(event.key) { \n case 'ArrowDown':\n var nextItem = this.findNextItem(item);\n if (nextItem) {\n item.removeAttribute('tabindex');\n nextItem.tabIndex = '0';\n nextItem.focus();\n }\n\n event.preventDefault();\n break;\n\n case 'ArrowUp':\n var prevItem = this.findPrevItem(item);\n if (prevItem) {\n item.removeAttribute('tabindex');\n prevItem.tabIndex = '0';\n prevItem.focus();\n }\n\n event.preventDefault();\n break;\n }\n }\n\n onRowClearItemClick() {\n this.clearFilter();\n this.hide();\n }\n\n isRowMatchModeSelected(matchMode: string) {\n return (<FilterMetadata> this.dt.filters[this.field]).matchMode === matchMode;\n }\n\n addConstraint() {\n (<FilterMetadata[]> this.dt.filters[this.field]).push({value: null, matchMode: this.getDefaultMatchMode(), operator: this.getDefaultOperator()});\n this.dt._filter();\n }\n\n removeConstraint(filterMeta: FilterMetadata) {\n this.dt.filters[this.field] = (<FilterMetadata[]> this.dt.filters[this.field]).filter(meta => meta !== filterMeta);\n this.dt._filter();\n }\n\n onOperatorChange(value) {\n (<FilterMetadata[]> this.dt.filters[this.field]).forEach(filterMeta => {\n filterMeta.operator = value;\n this.operator = value;\n });\n\n if (!this.showApplyButton) {\n this.dt._filter();\n }\n }\n\n toggleMenu() {\n this.overlayVisible = !this.overlayVisible;\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(this.overlay);\n if (focusable) {\n focusable[0].focus();\n }\n event.preventDefault();\n }\n else if (event.altKey) {\n this.overlayVisible = true;\n event.preventDefault();\n }\n break;\n }\n }\n\n onEscape() {\n this.overlayVisible = false;\n this.icon.nativeElement.focus();\n }\n\n findNextItem(item: HTMLLIElement) {\n let nextItem = <HTMLLIElement> item.nextElementSibling;\n\n if (nextItem)\n return DomHandler.hasClass(nextItem, 'p-column-filter-separator') ? this.findNextItem(nextItem) : nextItem;\n else\n return item.parentElement.firstElementChild;\n }\n\n findPrevItem(item: HTMLLIElement) {\n let prevItem = <HTMLLIElement> item.previousElementSibling;\n\n if (prevItem)\n return DomHandler.hasClass(prevItem, 'p-column-filter-separator') ? this.findPrevItem(prevItem) : prevItem;\n else\n return item.parentElement.lastElementChild;\n }\n\n onOverlayAnimationStart(event: AnimationEvent) {\n switch (event.toState) {\n case 'visible':\n this.overlay = event.element;\n \n document.body.appendChild(this.overlay);\n this.overlay.style.zIndex = String(++DomHandler.zindex);\n DomHandler.absolutePosition(this.overlay, this.icon.nativeElement)\n this.bindDocumentClickListener();\n this.bindDocumentResizeListener();\n this.bindScrollListener();\n break;\n\n case 'void':\n this.onOverlayHide();\n break;\n }\n }\n\n getDefaultMatchMode(): string {\n if (this.matchMode) {\n return this.matchMode;\n }\n else {\n if (this.type === 'text')\n return FilterMatchMode.STARTS_WITH;\n else if (this.type === 'numeric')\n return FilterMatchMode.EQUALS;\n else if (this.type === 'date')\n return FilterMatchMode.DATE_IS;\n else\n return FilterMatchMode.CONTAINS;\n }\n }\n\n getDefaultOperator(): string {\n return this.dt.filters ? (<FilterMetadata[]> this.dt.filters[this.field])[0].operator: this.operator;\n }\n\n hasRowFilter() {\n return this.dt.filters[this.field] && !this.dt.isFilterBlank((<FilterMetadata>this.dt.filters[this.field]).value);\n }\n\n get fieldConstraints(): FilterMetadata[] {\n return this.dt.filters ? <FilterMetadata[]> this.dt.filters[this.field] : null;\n }\n\n get showRemoveIcon(): boolean {\n return this.fieldConstraints ? this.fieldConstraints.length > 1 : false;\n }\n\n get showMenuButton(): boolean {\n return this.showMenu && (this.display === 'row' ? this.type !== 'boolean': true);\n }\n\n get isShowOperator(): boolean {\n return this.showOperator && this.type !== 'boolean';\n }\n\n get isShowAddConstraint(): boolean {\n return this.showAddButton && this.type !== 'boolean' && (this.fieldConstraints && this.fieldConstraints.length < this.maxConstraints);\n }\n\n get applyButtonLabel(): string {\n return this.config.getTranslation(TranslationKeys.APPLY);\n }\n\n get clearButtonLabel(): string {\n return this.config.getTranslation(TranslationKeys.CLEAR);\n }\n\n get addRuleButtonLabel(): string {\n return this.config.getTranslation(TranslationKeys.ADD_RULE);\n }\n\n get removeRuleButtonLabel(): string {\n return this.config.getTranslation(TranslationKeys.REMOVE_RULE);\n }\n\n get noFilterLabel(): string {\n return this.config.getTranslation(TranslationKeys.NO_FILTER);\n }\n\n hasFilter(): boolean {\n let fieldFilter = this.dt.filters[this.field];\n if (fieldFilter) {\n if (Array.isArray(fieldFilter))\n return !this.dt.isFilterBlank((<FilterMetadata[]> fieldFilter)[0].value); \n else\n return !this.dt.isFilterBlank(fieldFilter.value);\n }\n\n return false;\n }\n\n isOutsideClicked(event): boolean {\n return !(this.overlay.isSameNode(event.target) || this.overlay.contains(event.target) \n || this.icon.nativeElement.isSameNode(event.target) || this.icon.nativeElement.contains(event.target)\n || DomHandler.hasClass(event.target, 'p-column-filter-add-button') || DomHandler.hasClass(event.target.parentElement, 'p-column-filter-add-button')\n || DomHandler.hasClass(event.target, 'p-column-filter-remove-button') || DomHandler.hasClass(event.target.parentElement, 'p-column-filter-remove-button'));\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 if (this.isOutsideClicked(event)) {\n this.hide();\n }\n });\n }\n }\n\n unbindDocumentClickListener() {\n if (this.documentClickListener) {\n this.documentClickListener();\n this.documentClickListener = null;\n }\n }\n\n bindDocumentResizeListener() {\n this.documentResizeListener = () => this.hide();\n window.addEventListener('resize', this.documentResizeListener);\n }\n\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', 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\n onOverlayHide() {\n this.unbindDocumentClickListener();\n this.unbindDocumentResizeListener();\n this.unbindScrollListener();\n this.overlay = null;\n }\n\n clearFilter() {\n this.initFieldFilterConstraint();\n this.dt._filter();\n if (this.hideOnClear)\n this.hide();\n }\n\n applyFilter() {\n this.dt._filter();\n this.hide();\n }\n\n ngOnDestroy() {\n if (this.overlay) {\n this.el.nativeElement.appendChild(this.overlay);\n this.onOverlayHide();\n }\n\n if (this.translationSubscription) {\n this.translationSubscription.unsubscribe();\n }\n\n if (this.resetSubscription) {\n this.resetSubscription.unsubscribe();\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule,PaginatorModule,InputTextModule,DropdownModule,ScrollingModule,FormsModule,ButtonModule,SelectButtonModule,CalendarModule,InputNumberModule,TriStateCheckboxModule],\n exports: [Table,SharedModule,SortableColumn,SelectableRow,RowToggler,ContextMenuRow,ResizableColumn,ReorderableColumn,EditableColumn,CellEditor,SortIcon,\n TableRadioButton,TableCheckbox,TableHeaderCheckbox,ReorderableRowHandle,ReorderableRow,SelectableRowDblClick,EditableRow,InitEditableRow,SaveEditableRow,CancelEditableRow,ScrollingModule,ColumnFilter],\n declarations: [Table,SortableColumn,SelectableRow,RowToggler,ContextMenuRow,ResizableColumn,ReorderableColumn,EditableColumn,CellEditor,TableBody,ScrollableView,SortIcon,\n TableRadioButton,TableCheckbox,TableHeaderCheckbox,ReorderableRowHandle,ReorderableRow,SelectableRowDblClick,EditableRow,InitEditableRow,SaveEditableRow,CancelEditableRow,ColumnFilter,ColumnFilterFormElement]\n})\nexport class TableModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["Subject","Injectable","EventEmitter","ObjectUtils","DomHandler","FilterOperator","FilterMatchMode","Component","ChangeDetectionStrategy","ViewEncapsulation","ElementRef","NgZone","ChangeDetectorRef","FilterService","Input","Output","ViewChild","ContentChildren","PrimeTemplate","CdkVirtualScrollViewport","Directive","HostListener","Optional","TranslationKeys","ConnectedOverlayScrollHandler","trigger","transition","style","animate","Renderer2","PrimeNGConfig","NgModule","CommonModule","PaginatorModule","InputTextModule","DropdownModule","ScrollingModule","FormsModule","ButtonModule","SelectButtonModule","CalendarModule","InputNumberModule","TriStateCheckboxModule","SharedModule"],"mappings":"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"}
1
+ {"version":3,"file":"primeng-table.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","../../src/app/components/table/table.ts","../../src/app/components/table/primeng-table.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { NgModule, Component, HostListener, OnInit, OnDestroy, AfterViewInit, Directive, Optional, AfterContentInit,\n Input, Output, EventEmitter, ElementRef, ContentChildren, TemplateRef, QueryList, ViewChild, NgZone, ChangeDetectorRef, OnChanges, SimpleChanges, ChangeDetectionStrategy, Query, ViewEncapsulation, Renderer2} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { PrimeTemplate, SharedModule, FilterMatchMode, FilterOperator, SelectItem, PrimeNGConfig, TranslationKeys, FilterService } from 'primeng/api';\nimport { PaginatorModule } from 'primeng/paginator';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { ButtonModule } from 'primeng/button';\nimport { SelectButtonModule } from 'primeng/selectbutton';\nimport { TriStateCheckboxModule } from 'primeng/tristatecheckbox';\nimport { CalendarModule } from 'primeng/calendar';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { DomHandler, ConnectedOverlayScrollHandler } from 'primeng/dom';\nimport { ObjectUtils } from 'primeng/utils';\nimport { SortMeta } from 'primeng/api';\nimport { TableState } from 'primeng/api';\nimport { FilterMetadata } from 'primeng/api';\nimport { Injectable } from '@angular/core';\nimport { BlockableUI } from 'primeng/api';\nimport { Subject, Subscription } from 'rxjs';\nimport { ScrollingModule, CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport {trigger,style,transition,animate,AnimationEvent} from '@angular/animations';\n\n@Injectable()\nexport class TableService {\n\n private sortSource = new Subject<SortMeta|SortMeta[]>();\n private selectionSource = new Subject();\n private contextMenuSource = new Subject<any>();\n private valueSource = new Subject<any>();\n private totalRecordsSource = new Subject<any>();\n private columnsSource = new Subject();\n private resetSource = new Subject();\n\n sortSource$ = this.sortSource.asObservable();\n selectionSource$ = this.selectionSource.asObservable();\n contextMenuSource$ = this.contextMenuSource.asObservable();\n valueSource$ = this.valueSource.asObservable();\n totalRecordsSource$ = this.totalRecordsSource.asObservable();\n columnsSource$ = this.columnsSource.asObservable();\n resetSource$ = this.resetSource.asObservable();\n\n onSort(sortMeta: SortMeta|SortMeta[]) {\n this.sortSource.next(sortMeta);\n }\n\n onSelectionChange() {\n this.selectionSource.next();\n }\n\n onResetChange() {\n this.resetSource.next();\n }\n\n onContextMenu(data: any) {\n this.contextMenuSource.next(data);\n }\n\n onValueChange(value: any) {\n this.valueSource.next(value);\n }\n\n onTotalRecordsChange(value: number) {\n this.totalRecordsSource.next(value);\n }\n\n onColumnsChange(columns: any[]) {\n this.columnsSource.next(columns);\n }\n}\n\n@Component({\n selector: 'p-table',\n template: `\n <div #container [ngStyle]=\"style\" [class]=\"styleClass\" data-scrollselectors=\".p-datatable-scrollable-body, .p-datatable-unfrozen-view .p-datatable-scrollable-body\"\n [ngClass]=\"{'p-datatable p-component': true,\n 'p-datatable-hoverable-rows': (rowHover||selectionMode),\n 'p-datatable-auto-layout': autoLayout,\n 'p-datatable-resizable': resizableColumns,\n 'p-datatable-resizable-fit': (resizableColumns && columnResizeMode === 'fit'),\n 'p-datatable-scrollable': scrollable,\n 'p-datatable-flex-scrollable': (scrollable && scrollHeight === 'flex'),\n 'p-datatable-responsive': responsive}\">\n <div class=\"p-datatable-loading-overlay p-component-overlay\" *ngIf=\"loading && showLoader\">\n <i [class]=\"'p-datatable-loading-icon pi-spin ' + loadingIcon\"></i>\n </div>\n <div *ngIf=\"captionTemplate\" class=\"p-datatable-header\">\n <ng-container *ngTemplateOutlet=\"captionTemplate\"></ng-container>\n </div>\n <p-paginator [rows]=\"rows\" [first]=\"first\" [totalRecords]=\"totalRecords\" [pageLinkSize]=\"pageLinks\" styleClass=\"p-paginator-top\" [alwaysShow]=\"alwaysShowPaginator\"\n (onPageChange)=\"onPageChange($event)\" [rowsPerPageOptions]=\"rowsPerPageOptions\" *ngIf=\"paginator && (paginatorPosition === 'top' || paginatorPosition =='both')\"\n [templateLeft]=\"paginatorLeftTemplate\" [templateRight]=\"paginatorRightTemplate\" [dropdownAppendTo]=\"paginatorDropdownAppendTo\" [dropdownScrollHeight]=\"paginatorDropdownScrollHeight\"\n [currentPageReportTemplate]=\"currentPageReportTemplate\" [showFirstLastIcon]=\"showFirstLastIcon\" [dropdownItemTemplate]=\"paginatorDropdownItemTemplate\" [showCurrentPageReport]=\"showCurrentPageReport\" [showJumpToPageDropdown]=\"showJumpToPageDropdown\" [showPageLinks]=\"showPageLinks\"></p-paginator>\n\n <div class=\"p-datatable-wrapper\" *ngIf=\"!scrollable\">\n <table role=\"grid\" #table [ngClass]=\"tableStyleClass\" [ngStyle]=\"tableStyle\">\n <ng-container *ngTemplateOutlet=\"colGroupTemplate; context {$implicit: columns}\"></ng-container>\n <thead class=\"p-datatable-thead\">\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: {$implicit: columns}\"></ng-container>\n </thead>\n <tbody class=\"p-datatable-tbody\" [pTableBody]=\"columns\" [pTableBodyTemplate]=\"bodyTemplate\"></tbody>\n <tfoot *ngIf=\"footerTemplate\" class=\"p-datatable-tfoot\">\n <ng-container *ngTemplateOutlet=\"footerTemplate; context {$implicit: columns}\"></ng-container>\n </tfoot>\n </table>\n </div>\n\n <div class=\"p-datatable-scrollable-wrapper\" *ngIf=\"scrollable\">\n <div class=\"p-datatable-scrollable-view p-datatable-frozen-view\" *ngIf=\"frozenColumns||frozenBodyTemplate\" #scrollableFrozenView [pScrollableView]=\"frozenColumns\" [frozen]=\"true\" [ngStyle]=\"{width: frozenWidth}\" [scrollHeight]=\"scrollHeight\"></div>\n <div class=\"p-datatable-scrollable-view\" #scrollableView [pScrollableView]=\"columns\" [frozen]=\"false\" [scrollHeight]=\"scrollHeight\" [ngStyle]=\"{left: frozenWidth, width: 'calc(100% - '+frozenWidth+')'}\"></div>\n </div>\n\n <p-paginator [rows]=\"rows\" [first]=\"first\" [totalRecords]=\"totalRecords\" [pageLinkSize]=\"pageLinks\" styleClass=\"p-paginator-bottom\" [alwaysShow]=\"alwaysShowPaginator\"\n (onPageChange)=\"onPageChange($event)\" [rowsPerPageOptions]=\"rowsPerPageOptions\" *ngIf=\"paginator && (paginatorPosition === 'bottom' || paginatorPosition =='both')\"\n [templateLeft]=\"paginatorLeftTemplate\" [templateRight]=\"paginatorRightTemplate\" [dropdownAppendTo]=\"paginatorDropdownAppendTo\" [dropdownScrollHeight]=\"paginatorDropdownScrollHeight\"\n [currentPageReportTemplate]=\"currentPageReportTemplate\" [showFirstLastIcon]=\"showFirstLastIcon\" [dropdownItemTemplate]=\"paginatorDropdownItemTemplate\" [showCurrentPageReport]=\"showCurrentPageReport\" [showJumpToPageDropdown]=\"showJumpToPageDropdown\" [showPageLinks]=\"showPageLinks\"></p-paginator>\n\n <div *ngIf=\"summaryTemplate\" class=\"p-datatable-footer\">\n <ng-container *ngTemplateOutlet=\"summaryTemplate\"></ng-container>\n </div>\n\n <div #resizeHelper class=\"p-column-resizer-helper\" style=\"display:none\" *ngIf=\"resizableColumns\"></div>\n <span #reorderIndicatorUp class=\"pi pi-arrow-down p-datatable-reorder-indicator-up\" style=\"display:none\" *ngIf=\"reorderableColumns\"></span>\n <span #reorderIndicatorDown class=\"pi pi-arrow-up p-datatable-reorder-indicator-down\" style=\"display:none\" *ngIf=\"reorderableColumns\"></span>\n </div>\n `,\n providers: [TableService],\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./table.css']\n})\nexport class Table implements OnInit, AfterViewInit, AfterContentInit, BlockableUI, OnChanges {\n\n @Input() frozenColumns: any[];\n\n @Input() frozenValue: any[];\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() tableStyle: any;\n\n @Input() tableStyleClass: string;\n\n @Input() paginator: boolean;\n\n @Input() pageLinks: number = 5;\n\n @Input() rowsPerPageOptions: any[];\n\n @Input() alwaysShowPaginator: boolean = true;\n\n @Input() paginatorPosition: string = 'bottom';\n\n @Input() paginatorDropdownAppendTo: any;\n\n @Input() paginatorDropdownScrollHeight: string = '200px';\n\n @Input() currentPageReportTemplate: string = '{currentPage} of {totalPages}';\n\n @Input() showCurrentPageReport: boolean;\n\n @Input() showJumpToPageDropdown: boolean;\n\n @Input() showFirstLastIcon: boolean = true;\n\n @Input() showPageLinks: boolean = true;\n\n @Input() defaultSortOrder: number = 1;\n\n @Input() sortMode: string = 'single';\n\n @Input() resetPageOnSort: boolean = true;\n\n @Input() selectionMode: string;\n\n @Output() selectionChange: EventEmitter<any> = new EventEmitter();\n\n @Input() contextMenuSelection: any;\n\n @Output() contextMenuSelectionChange: EventEmitter<any> = new EventEmitter();\n\n @Input() contextMenuSelectionMode: string = \"separate\";\n\n @Input() dataKey: string;\n\n @Input() metaKeySelection: boolean;\n\n @Input() rowTrackBy: Function = (index: number, item: any) => item;\n\n @Input() lazy: boolean = false;\n\n @Input() lazyLoadOnInit: boolean = true;\n\n @Input() compareSelectionBy: string = 'deepEquals';\n\n @Input() csvSeparator: string = ',';\n\n @Input() exportFilename: string = 'download';\n\n @Input() filters: { [s: string]: FilterMetadata | FilterMetadata[] } = {};\n\n @Input() globalFilterFields: string[];\n\n @Input() filterDelay: number = 300;\n\n @Input() filterLocale: string;\n\n @Input() expandedRowKeys: { [s: string]: boolean; } = {};\n\n @Input() editingRowKeys: { [s: string]: boolean; } = {};\n\n @Input() rowExpandMode: string = 'multiple';\n\n @Input() scrollable: boolean;\n\n @Input() scrollHeight: string;\n\n @Input() virtualScroll: boolean;\n\n @Input() virtualScrollDelay: number = 250;\n\n @Input() virtualRowHeight: number = 28;\n\n @Input() frozenWidth: string;\n\n @Input() responsive: boolean;\n\n @Input() contextMenu: any;\n\n @Input() resizableColumns: boolean;\n\n @Input() columnResizeMode: string = 'fit';\n\n @Input() reorderableColumns: boolean;\n\n @Input() loading: boolean;\n\n @Input() loadingIcon: string = 'pi pi-spinner';\n\n @Input() showLoader: boolean = true;\n\n @Input() rowHover: boolean;\n\n @Input() customSort: boolean;\n\n @Input() showInitialSortBadge: boolean = true;\n\n @Input() autoLayout: boolean;\n\n @Input() exportFunction;\n\n @Input() stateKey: string;\n\n @Input() stateStorage: string = 'session';\n\n @Input() editMode: string = 'cell';\n\n @Input() minBufferPx: number;\n\n @Input() maxBufferPx: number;\n\n @Output() onRowSelect: EventEmitter<any> = new EventEmitter();\n\n @Output() onRowUnselect: EventEmitter<any> = new EventEmitter();\n\n @Output() onPage: EventEmitter<any> = new EventEmitter();\n\n @Output() onSort: EventEmitter<any> = new EventEmitter();\n\n @Output() onFilter: EventEmitter<any> = new EventEmitter();\n\n @Output() onLazyLoad: EventEmitter<any> = new EventEmitter();\n\n @Output() onRowExpand: EventEmitter<any> = new EventEmitter();\n\n @Output() onRowCollapse: EventEmitter<any> = new EventEmitter();\n\n @Output() onContextMenuSelect: EventEmitter<any> = new EventEmitter();\n\n @Output() onColResize: EventEmitter<any> = new EventEmitter();\n\n @Output() onColReorder: EventEmitter<any> = new EventEmitter();\n\n @Output() onRowReorder: EventEmitter<any> = new EventEmitter();\n\n @Output() onEditInit: EventEmitter<any> = new EventEmitter();\n\n @Output() onEditComplete: EventEmitter<any> = new EventEmitter();\n\n @Output() onEditCancel: EventEmitter<any> = new EventEmitter();\n\n @Output() onHeaderCheckboxToggle: EventEmitter<any> = new EventEmitter();\n\n @Output() sortFunction: EventEmitter<any> = new EventEmitter();\n\n @Output() firstChange: EventEmitter<number> = new EventEmitter();\n\n @Output() rowsChange: EventEmitter<number> = new EventEmitter();\n\n @Output() onStateSave: EventEmitter<any> = new EventEmitter();\n\n @Output() onStateRestore: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('container') containerViewChild: ElementRef;\n\n @ViewChild('resizeHelper') resizeHelperViewChild: ElementRef;\n\n @ViewChild('reorderIndicatorUp') reorderIndicatorUpViewChild: ElementRef;\n\n @ViewChild('reorderIndicatorDown') reorderIndicatorDownViewChild: ElementRef;\n\n @ViewChild('table') tableViewChild: ElementRef;\n\n @ViewChild('scrollableView') scrollableViewChild;\n\n @ViewChild('scrollableFrozenView') scrollableFrozenViewChild;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate>;\n\n _value: any[] = [];\n\n _columns: any[];\n\n _totalRecords: number = 0;\n\n _first: number = 0;\n\n _rows: number;\n\n filteredValue: any[];\n\n headerTemplate: TemplateRef<any>;\n\n bodyTemplate: TemplateRef<any>;\n\n loadingBodyTemplate: TemplateRef<any>;\n\n captionTemplate: TemplateRef<any>;\n\n frozenRowsTemplate: TemplateRef<any>;\n\n footerTemplate: TemplateRef<any>;\n\n summaryTemplate: TemplateRef<any>;\n\n colGroupTemplate: TemplateRef<any>;\n\n expandedRowTemplate: TemplateRef<any>;\n\n frozenExpandedRowTemplate: TemplateRef<any>;\n\n frozenHeaderTemplate: TemplateRef<any>;\n\n frozenBodyTemplate: TemplateRef<any>;\n\n frozenFooterTemplate: TemplateRef<any>;\n\n frozenColGroupTemplate: TemplateRef<any>;\n\n emptyMessageTemplate: TemplateRef<any>;\n\n paginatorLeftTemplate: TemplateRef<any>;\n\n paginatorRightTemplate: TemplateRef<any>;\n\n paginatorDropdownItemTemplate: TemplateRef<any>;\n\n selectionKeys: any = {};\n\n lastResizerHelperX: number;\n\n reorderIconWidth: number;\n\n reorderIconHeight: number;\n\n draggedColumn: any;\n\n draggedRowIndex: number;\n\n droppedRowIndex: number;\n\n rowDragging: boolean;\n\n dropPosition: number;\n\n editingCell: Element;\n\n editingCellData: any;\n\n editingCellField: any;\n\n editingCellRowIndex: number;\n\n editingCellClick: boolean;\n\n documentEditListener: any;\n\n _multiSortMeta: SortMeta[];\n\n _sortField: string;\n\n _sortOrder: number = 1;\n\n preventSelectionSetterPropagation: boolean;\n\n _selection: any;\n\n anchorRowIndex: number;\n\n rangeRowIndex: number;\n\n filterTimeout: any;\n\n initialized: boolean;\n\n rowTouched: boolean;\n\n restoringSort: boolean;\n\n restoringFilter: boolean;\n\n stateRestored: boolean;\n\n columnOrderStateRestored: boolean;\n\n columnWidthsState: string;\n\n tableWidthState: string;\n\n constructor(public el: ElementRef, public zone: NgZone, public tableService: TableService, public cd: ChangeDetectorRef, public filterService: FilterService) {}\n\n ngOnInit() {\n if (this.lazy && this.lazyLoadOnInit) {\n if (!this.virtualScroll) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n\n if (this.restoringFilter) {\n this.restoringFilter = false;\n }\n }\n\n this.initialized = true;\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'caption':\n this.captionTemplate = item.template;\n break;\n\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'body':\n this.bodyTemplate = item.template;\n break;\n\n case 'loadingbody':\n this.loadingBodyTemplate = item.template;\n break;\n\n case 'footer':\n this.footerTemplate = item.template;\n break;\n\n case 'summary':\n this.summaryTemplate = item.template;\n break;\n\n case 'colgroup':\n this.colGroupTemplate = item.template;\n break;\n\n case 'rowexpansion':\n this.expandedRowTemplate = item.template;\n break;\n\n case 'frozenrows':\n this.frozenRowsTemplate = item.template;\n break;\n\n case 'frozenheader':\n this.frozenHeaderTemplate = item.template;\n break;\n\n case 'frozenbody':\n this.frozenBodyTemplate = item.template;\n break;\n\n case 'frozenfooter':\n this.frozenFooterTemplate = item.template;\n break;\n\n case 'frozencolgroup':\n this.frozenColGroupTemplate = item.template;\n break;\n\n case 'frozenrowexpansion':\n this.frozenExpandedRowTemplate = item.template;\n break;\n\n case 'emptymessage':\n this.emptyMessageTemplate = item.template;\n break;\n\n case 'paginatorleft':\n this.paginatorLeftTemplate = item.template;\n break;\n\n case 'paginatorright':\n this.paginatorRightTemplate = item.template;\n break;\n\n case 'paginatordropdownitem':\n this.paginatorDropdownItemTemplate = item.template;\n break;\n }\n });\n }\n\n ngAfterViewInit() {\n if (this.isStateful() && this.resizableColumns) {\n this.restoreColumnWidths();\n }\n }\n\n ngOnChanges(simpleChange: SimpleChanges) {\n if (simpleChange.value) {\n if (this.isStateful() && !this.stateRestored) {\n this.restoreState();\n }\n\n this._value = simpleChange.value.currentValue;\n\n if (!this.lazy) {\n this.totalRecords = (this._value ? this._value.length : 0);\n\n if (this.sortMode == 'single' && this.sortField)\n this.sortSingle();\n else if (this.sortMode == 'multiple' && this.multiSortMeta)\n this.sortMultiple();\n else if (this.hasFilter()) //sort already filters\n this._filter();\n }\n\n this.tableService.onValueChange(simpleChange.value.currentValue);\n }\n\n if (simpleChange.columns) {\n this._columns = simpleChange.columns.currentValue;\n this.tableService.onColumnsChange(simpleChange.columns.currentValue);\n\n if (this._columns && this.isStateful() && this.reorderableColumns && !this.columnOrderStateRestored ) {\n this.restoreColumnOrder();\n }\n }\n\n if (simpleChange.sortField) {\n this._sortField = simpleChange.sortField.currentValue;\n\n //avoid triggering lazy load prior to lazy initialization at onInit\n if ( !this.lazy || this.initialized ) {\n if (this.sortMode === 'single') {\n this.sortSingle();\n }\n }\n }\n\n if (simpleChange.sortOrder) {\n this._sortOrder = simpleChange.sortOrder.currentValue;\n\n //avoid triggering lazy load prior to lazy initialization at onInit\n if ( !this.lazy || this.initialized ) {\n if (this.sortMode === 'single') {\n this.sortSingle();\n }\n }\n }\n\n if (simpleChange.multiSortMeta) {\n this._multiSortMeta = simpleChange.multiSortMeta.currentValue;\n if (this.sortMode === 'multiple' && (this.initialized || (!this.lazy && !this.virtualScroll))) {\n this.sortMultiple();\n }\n }\n\n if (simpleChange.selection) {\n this._selection = simpleChange.selection.currentValue;\n\n if (!this.preventSelectionSetterPropagation) {\n this.updateSelectionKeys();\n this.tableService.onSelectionChange();\n }\n this.preventSelectionSetterPropagation = false;\n }\n }\n\n @Input() get value(): any[] {\n return this._value;\n }\n set value(val: any[]) {\n this._value = val;\n }\n\n @Input() get columns(): any[] {\n return this._columns;\n }\n set columns(cols: any[]) {\n this._columns = cols;\n }\n\n @Input() get first(): number {\n return this._first;\n }\n set first(val: number) {\n this._first = val;\n }\n\n @Input() get rows(): number {\n return this._rows;\n }\n set rows(val: number) {\n this._rows = val;\n }\n\n @Input() get totalRecords(): number {\n return this._totalRecords;\n }\n set totalRecords(val: number) {\n this._totalRecords = val;\n this.tableService.onTotalRecordsChange(this._totalRecords);\n }\n\n @Input() get sortField(): string {\n return this._sortField;\n }\n\n set sortField(val: string) {\n this._sortField = val;\n }\n\n @Input() get sortOrder(): number {\n return this._sortOrder;\n }\n set sortOrder(val: number) {\n this._sortOrder = val;\n }\n\n @Input() get multiSortMeta(): SortMeta[] {\n return this._multiSortMeta;\n }\n\n set multiSortMeta(val: SortMeta[]) {\n this._multiSortMeta = val;\n }\n\n @Input() get selection(): any {\n return this._selection;\n }\n\n set selection(val: any) {\n this._selection = val;\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 }\n else {\n this.selectionKeys[String(ObjectUtils.resolveFieldData(this._selection, this.dataKey))] = 1;\n }\n }\n }\n\n onPageChange(event) {\n this.first = event.first;\n this.rows = event.rows;\n\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n\n this.onPage.emit({\n first: this.first,\n rows: this.rows\n });\n\n this.firstChange.emit(this.first);\n this.rowsChange.emit(this.rows);\n this.tableService.onValueChange(this.value);\n\n if (this.isStateful()) {\n this.saveState();\n }\n\n this.anchorRowIndex = null;\n\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n\n sort(event) {\n let originalEvent = event.originalEvent;\n\n if (this.sortMode === 'single') {\n this._sortOrder = (this.sortField === event.field) ? this.sortOrder * -1 : this.defaultSortOrder;\n this._sortField = event.field;\n\n if (this.resetPageOnSort) {\n this._first = 0;\n this.firstChange.emit(this._first);\n\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n\n this.sortSingle();\n }\n if (this.sortMode === 'multiple') {\n let metaKey = originalEvent.metaKey || originalEvent.ctrlKey;\n let sortMeta = this.getSortMeta(event.field);\n\n if (sortMeta) {\n if (!metaKey) {\n this._multiSortMeta = [{ field: event.field, order: sortMeta.order * -1 }];\n\n if (this.resetPageOnSort) {\n this._first = 0;\n this.firstChange.emit(this._first);\n\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n }\n else {\n sortMeta.order = sortMeta.order * -1;\n }\n }\n else {\n if (!metaKey || !this.multiSortMeta) {\n this._multiSortMeta = [];\n\n if (this.resetPageOnSort) {\n this._first = 0;\n this.firstChange.emit(this._first);\n }\n }\n this._multiSortMeta.push({ field: event.field, order: this.defaultSortOrder });\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 if (this.sortField && this.sortOrder) {\n if (this.restoringSort) {\n this.restoringSort = false;\n }\n\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n else if (this.value) {\n if (this.customSort) {\n this.sortFunction.emit({\n data: this.value,\n mode: this.sortMode,\n field: this.sortField,\n order: this.sortOrder\n });\n }\n else {\n this.value.sort((data1, data2) => {\n let value1 = ObjectUtils.resolveFieldData(data1, this.sortField);\n let value2 = ObjectUtils.resolveFieldData(data2, this.sortField);\n let result = null;\n\n if (value1 == null && value2 != null)\n result = -1;\n else if (value1 != null && value2 == null)\n result = 1;\n else if (value1 == null && value2 == null)\n result = 0;\n else if (typeof value1 === 'string' && typeof value2 === 'string')\n result = value1.localeCompare(value2);\n else\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\n\n return (this.sortOrder * result);\n });\n\n this._value = [...this.value];\n }\n\n if (this.hasFilter()) {\n this._filter();\n }\n }\n\n let sortMeta: SortMeta = {\n field: this.sortField,\n order: this.sortOrder\n };\n\n this.onSort.emit(sortMeta);\n this.tableService.onSort(sortMeta);\n }\n }\n\n sortMultiple() {\n if (this.multiSortMeta) {\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\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 }\n else {\n this.value.sort((data1, data2) => {\n return this.multisortField(data1, data2, 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: this.multiSortMeta\n });\n this.tableService.onSort(this.multiSortMeta);\n }\n }\n\n multisortField(data1, data2, multiSortMeta, index) {\n let value1 = ObjectUtils.resolveFieldData(data1, multiSortMeta[index].field);\n let value2 = ObjectUtils.resolveFieldData(data2, multiSortMeta[index].field);\n let result = null;\n\n if (value1 == null && value2 != null)\n result = -1;\n else if (value1 != null && value2 == null)\n result = 1;\n else if (value1 == null && value2 == null)\n result = 0;\n else if (typeof value1 == 'string' || value1 instanceof String) {\n if (value1.localeCompare && (value1 != value2)) {\n return (multiSortMeta[index].order * value1.localeCompare(value2));\n }\n }\n else {\n result = (value1 < value2) ? -1 : 1;\n }\n\n if (value1 == value2) {\n return (multiSortMeta.length - 1) > (index) ? (this.multisortField(data1, data2, multiSortMeta, index + 1)) : 0;\n }\n\n return (multiSortMeta[index].order * result);\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 }\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) {\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' ||\n parentNode == 'INPUT' || parentNode == 'BUTTON' || parentNode == 'A' ||\n (DomHandler.hasClass(event.originalEvent.target, 'p-clickable'))) {\n return;\n }\n\n if (this.selectionMode) {\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 = event.rowIndex;\n this.selectRange(event.originalEvent, event.rowIndex);\n }\n else {\n let rowData = event.rowData;\n let selected = this.isSelected(rowData);\n let metaSelection = this.rowTouched ? false : this.metaKeySelection;\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rowData, this.dataKey)) : null;\n this.anchorRowIndex = event.rowIndex;\n this.rangeRowIndex = event.rowIndex;\n\n if (metaSelection) {\n let metaKey = event.originalEvent.metaKey||event.originalEvent.ctrlKey;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this._selection = null;\n this.selectionKeys = {};\n this.selectionChange.emit(null);\n }\n else {\n let selectionIndex = this.findIndexInSelection(rowData);\n this._selection = this.selection.filter((val,i) => i!=selectionIndex);\n this.selectionChange.emit(this.selection);\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n }\n\n this.onRowUnselect.emit({originalEvent: event.originalEvent, data: rowData, type: 'row'});\n }\n else {\n if (this.isSingleSelectionMode()) {\n this._selection = rowData;\n this.selectionChange.emit(rowData);\n if (dataKeyValue) {\n this.selectionKeys = {};\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n else if (this.isMultipleSelectionMode()) {\n if (metaKey) {\n this._selection = this.selection||[];\n }\n else {\n this._selection = [];\n this.selectionKeys = {};\n }\n\n this._selection = [...this.selection,rowData];\n this.selectionChange.emit(this.selection);\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n\n this.onRowSelect.emit({originalEvent: event.originalEvent, data: rowData, type: 'row', index: event.rowIndex});\n }\n }\n else {\n if (this.selectionMode === 'single') {\n if (selected) {\n this._selection = null;\n this.selectionKeys = {};\n this.selectionChange.emit(this.selection);\n this.onRowUnselect.emit({ originalEvent: event.originalEvent, data: rowData, type: 'row', index: event.rowIndex });\n }\n else {\n this._selection = rowData;\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({ originalEvent: event.originalEvent, data: rowData, type: 'row', index: event.rowIndex });\n if (dataKeyValue) {\n this.selectionKeys = {};\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n }\n else if (this.selectionMode === 'multiple') {\n if (selected) {\n let selectionIndex = this.findIndexInSelection(rowData);\n this._selection = this.selection.filter((val, i) => i != selectionIndex);\n this.selectionChange.emit(this.selection);\n this.onRowUnselect.emit({ originalEvent: event.originalEvent, data: rowData, type: 'row', index: event.rowIndex });\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n }\n else {\n this._selection = this.selection ? [...this.selection, rowData] : [rowData];\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({ originalEvent: event.originalEvent, data: rowData, type: 'row', index: event.rowIndex });\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) {\n this.rowTouched = true;\n }\n\n handleRowRightClick(event) {\n if (this.contextMenu) {\n const rowData = event.rowData;\n\n if (this.contextMenuSelectionMode === 'separate') {\n this.contextMenuSelection = rowData;\n this.contextMenuSelectionChange.emit(rowData);\n this.onContextMenuSelect.emit({originalEvent: event.originalEvent, data: rowData, index: event.rowIndex});\n this.contextMenu.show(event.originalEvent);\n this.tableService.onContextMenu(rowData);\n }\n else if (this.contextMenuSelectionMode === 'joint') {\n this.preventSelectionSetterPropagation = true;\n let selected = this.isSelected(rowData);\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rowData, this.dataKey)) : null;\n\n if (!selected) {\n if (this.isSingleSelectionMode()) {\n this.selection = rowData;\n this.selectionChange.emit(rowData);\n\n if (dataKeyValue) {\n this.selectionKeys = {};\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n else if (this.isMultipleSelectionMode()) {\n this._selection = this.selection ? [...this.selection, rowData] : [rowData];\n this.selectionChange.emit(this.selection);\n\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n }\n\n this.tableService.onSelectionChange();\n this.contextMenu.show(event.originalEvent);\n this.onContextMenuSelect.emit({originalEvent: event, data: rowData, index: event.rowIndex});\n }\n }\n }\n\n selectRange(event: MouseEvent, rowIndex: number) {\n let rangeStart, rangeEnd;\n\n if (this.anchorRowIndex > rowIndex) {\n rangeStart = rowIndex;\n rangeEnd = this.anchorRowIndex;\n }\n else if (this.anchorRowIndex < rowIndex) {\n rangeStart = this.anchorRowIndex;\n rangeEnd = rowIndex;\n }\n else {\n rangeStart = rowIndex;\n rangeEnd = rowIndex;\n }\n\n if (this.lazy && this.paginator) {\n rangeStart -= this.first;\n rangeEnd -= this.first;\n }\n\n let rangeRowsData = [];\n for(let i = rangeStart; i <= rangeEnd; i++) {\n let rangeRowData = this.filteredValue ? this.filteredValue[i] : this.value[i];\n if (!this.isSelected(rangeRowData)) {\n rangeRowsData.push(rangeRowData);\n this._selection = [...this.selection, rangeRowData];\n let dataKeyValue: string = this.dataKey ? String(ObjectUtils.resolveFieldData(rangeRowData, this.dataKey)) : null;\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n }\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({originalEvent: event, data: rangeRowsData, type: 'row'});\n }\n\n clearSelectionRange(event: MouseEvent) {\n let rangeStart, rangeEnd;\n\n if (this.rangeRowIndex > this.anchorRowIndex) {\n rangeStart = this.anchorRowIndex;\n rangeEnd = this.rangeRowIndex;\n }\n else if (this.rangeRowIndex < this.anchorRowIndex) {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.anchorRowIndex;\n }\n else {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.rangeRowIndex;\n }\n\n for(let i = rangeStart; i <= rangeEnd; i++) {\n let rangeRowData = this.value[i];\n let selectionIndex = this.findIndexInSelection(rangeRowData);\n this._selection = this.selection.filter((val,i) => i!=selectionIndex);\n let dataKeyValue: string = this.dataKey ? String(ObjectUtils.resolveFieldData(rangeRowData, this.dataKey)) : null;\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n this.onRowUnselect.emit({originalEvent: event, data: rangeRowData, type: 'row'});\n }\n }\n\n isSelected(rowData) {\n if (rowData && this.selection) {\n if (this.dataKey) {\n return this.selectionKeys[ObjectUtils.resolveFieldData(rowData, this.dataKey)] !== undefined;\n }\n else {\n if (this.selection instanceof Array)\n return this.findIndexInSelection(rowData) > -1;\n else\n return this.equals(rowData, this.selection);\n }\n }\n\n return false;\n }\n\n findIndexInSelection(rowData: any) {\n let index: number = -1;\n if (this.selection && this.selection.length) {\n for (let i = 0; i < this.selection.length; i++) {\n if (this.equals(rowData, this.selection[i])) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n\n toggleRowWithRadio(event: any, rowData:any) {\n this.preventSelectionSetterPropagation = true;\n\n if (this.selection != rowData) {\n this._selection = rowData;\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({originalEvent: event.originalEvent, index: event.rowIndex, data: rowData, type: 'radiobutton'});\n\n if (this.dataKey) {\n this.selectionKeys = {};\n this.selectionKeys[String(ObjectUtils.resolveFieldData(rowData, this.dataKey))] = 1;\n }\n }\n else {\n this._selection = null;\n this.selectionChange.emit(this.selection);\n this.onRowUnselect.emit({originalEvent: event.originalEvent, index: event.rowIndex, data: rowData, type: 'radiobutton'});\n }\n\n this.tableService.onSelectionChange();\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n\n toggleRowWithCheckbox(event, rowData: any) {\n this.selection = this.selection||[];\n let selected = this.isSelected(rowData);\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rowData, this.dataKey)) : null;\n this.preventSelectionSetterPropagation = true;\n\n if (selected) {\n let selectionIndex = this.findIndexInSelection(rowData);\n this._selection = this.selection.filter((val, i) => i != selectionIndex);\n this.selectionChange.emit(this.selection);\n this.onRowUnselect.emit({ originalEvent: event.originalEvent, index: event.rowIndex, data: rowData, type: 'checkbox' });\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n }\n else {\n this._selection = this.selection ? [...this.selection, rowData] : [rowData];\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({ originalEvent: event.originalEvent, index: event.rowIndex, data: rowData, type: 'checkbox' });\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n\n this.tableService.onSelectionChange();\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n\n toggleRowsWithCheckbox(event: Event, check: boolean) {\n this._selection = check ? this.filteredValue ? this.filteredValue.slice(): this.value.slice() : [];\n this.preventSelectionSetterPropagation = true;\n this.updateSelectionKeys();\n this.selectionChange.emit(this._selection);\n this.tableService.onSelectionChange();\n this.onHeaderCheckboxToggle.emit({originalEvent: event, checked: check});\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n\n equals(data1, data2) {\n return this.compareSelectionBy === 'equals' ? (data1 === data2) : ObjectUtils.equals(data1, data2, this.dataKey);\n }\n\n /* Legacy Filtering for custom elements */\n filter(value: any, field: string, matchMode: string) {\n if (this.filterTimeout) {\n clearTimeout(this.filterTimeout);\n }\n if (!this.isFilterBlank(value)) {\n this.filters[field] = { value: value, matchMode: matchMode };\n } else if (this.filters[field]) {\n delete this.filters[field];\n }\n\n this.filterTimeout = setTimeout(() => {\n this._filter();\n this.filterTimeout = null;\n }, this.filterDelay);\n\n this.anchorRowIndex = null;\n }\n\n filterGlobal(value, matchMode) {\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) || (filter instanceof Array && filter.length == 0))\n return true;\n else\n return false;\n }\n return true;\n }\n\n _filter() {\n if (!this.restoringFilter) {\n this.first = 0;\n this.firstChange.emit(this.first);\n }\n\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n else {\n if (!this.value) {\n return;\n }\n\n if (!this.hasFilter()) {\n this.filteredValue = null;\n if (this.paginator) {\n this.totalRecords = this.value ? this.value.length : 0;\n }\n }\n else {\n let globalFilterFieldsArray;\n if (this.filters['global']) {\n if (!this.columns && !this.globalFilterFields)\n throw new Error('Global filtering requires dynamic columns or globalFilterFields to be defined.');\n else\n 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 }\n else {\n localMatch = this.executeLocalFilter(filterField, this.value[i], 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 = this.filterService.filters[(<FilterMetadata> 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 }\n else {\n matches = localFiltered && localMatch;\n }\n\n if (matches) {\n this.filteredValue.push(this.value[i]);\n }\n }\n\n if (this.filteredValue.length === this.value.length) {\n this.filteredValue = null;\n }\n\n if (this.paginator) {\n this.totalRecords = this.filteredValue ? this.filteredValue.length : this.value ? this.value.length : 0;\n }\n }\n }\n\n this.onFilter.emit({\n filters: 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 = 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 };\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.filteredValue = null;\n this.tableService.onResetChange();\n\n this.first = 0;\n this.firstChange.emit(this.first);\n\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n else {\n this.totalRecords = (this._value ? this._value.length : 0);\n }\n }\n\n public reset() {\n this.clear();\n }\n\n public exportCSV(options?: any) {\n let data;\n let csv = '';\n let columns = this.frozenColumns ? [...this.frozenColumns, ...this.columns] : this.columns;\n\n if (options && options.selectionOnly) {\n data = this.selection || [];\n }\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 //headers\n for (let i = 0; i < columns.length; i++) {\n let column = columns[i];\n if (column.exportable !== false && column.field) {\n csv += '\"' + (column.header || column.field) + '\"';\n\n if (i < (columns.length - 1)) {\n csv += this.csvSeparator;\n }\n }\n }\n\n //body\n data.forEach((record, i) => {\n csv += '\\n';\n for (let i = 0; i < columns.length; i++) {\n let column = columns[i];\n if (column.exportable !== false && column.field) {\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 }\n else\n cellData = String(cellData).replace(/\"/g, '\"\"');\n }\n else\n cellData = '';\n\n csv += '\"' + cellData + '\"';\n\n if (i < (columns.length - 1)) {\n csv += this.csvSeparator;\n }\n }\n }\n });\n\n let blob = new Blob([csv], {\n type: 'text/csv;charset=utf-8;'\n });\n\n if (window.navigator.msSaveOrOpenBlob) {\n navigator.msSaveOrOpenBlob(blob, this.exportFilename + '.csv');\n }\n else {\n let link = document.createElement(\"a\");\n link.style.display = 'none';\n document.body.appendChild(link);\n if (link.download !== undefined) {\n link.setAttribute('href', URL.createObjectURL(blob));\n link.setAttribute('download', this.exportFilename + '.csv');\n link.click();\n }\n else {\n csv = 'data:text/csv;charset=utf-8,' + csv;\n window.open(encodeURI(csv));\n }\n document.body.removeChild(link);\n }\n }\n\n public resetScrollTop() {\n if (this.virtualScroll)\n this.scrollToVirtualIndex(0);\n else\n this.scrollTo({top: 0});\n }\n\n public scrollToVirtualIndex(index: number) {\n if (this.scrollableViewChild) {\n this.scrollableViewChild.scrollToVirtualIndex(index);\n }\n\n if (this.scrollableFrozenViewChild) {\n this.scrollableFrozenViewChild.scrollToVirtualIndex(index);\n }\n }\n\n public scrollTo(options) {\n if (this.scrollableViewChild) {\n this.scrollableViewChild.scrollTo(options);\n }\n\n if (this.scrollableFrozenViewChild) {\n this.scrollableFrozenViewChild.scrollTo(options);\n }\n }\n\n updateEditingCell(cell, data, field, index) {\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 = (event) => {\n if (this.editingCell && !this.editingCellClick && this.isEditingCellValid()) {\n DomHandler.removeClass(this.editingCell, 'p-cell-editing');\n this.editingCell = null;\n this.onEditComplete.emit({ field: this.editingCellField, data: this.editingCellData, originalEvent: event, index: this.editingCellRowIndex });\n this.editingCellField = null;\n this.editingCellData = null;\n this.editingCellRowIndex = null;\n this.unbindDocumentEditListener();\n this.cd.markForCheck();\n }\n\n this.editingCellClick = false;\n };\n\n document.addEventListener('click', this.documentEditListener);\n }\n }\n\n unbindDocumentEditListener() {\n if (this.documentEditListener) {\n document.removeEventListener('click', this.documentEditListener);\n this.documentEditListener = null;\n }\n }\n\n initRowEdit(rowData: any) {\n let dataKeyValue = String(ObjectUtils.resolveFieldData(rowData, this.dataKey));\n this.editingRowKeys[dataKeyValue] = true;\n }\n\n saveRowEdit(rowData: any, rowElement: HTMLTableRowElement) {\n if (DomHandler.find(rowElement, '.ng-invalid.ng-dirty').length === 0) {\n let dataKeyValue = String(ObjectUtils.resolveFieldData(rowData, this.dataKey));\n delete this.editingRowKeys[dataKeyValue];\n }\n }\n\n cancelRowEdit(rowData: any) {\n let dataKeyValue = String(ObjectUtils.resolveFieldData(rowData, this.dataKey));\n delete this.editingRowKeys[dataKeyValue];\n }\n\n toggleRow(rowData: any, event?: Event) {\n if (!this.dataKey) {\n throw new Error('dataKey must be defined to use row expansion');\n }\n\n let dataKeyValue = 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,\n data: rowData\n });\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,\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.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) {\n let containerLeft = DomHandler.getOffset(this.containerViewChild.nativeElement).left;\n this.lastResizerHelperX = (event.pageX - containerLeft + this.containerViewChild.nativeElement.scrollLeft);\n this.onColumnResize(event);\n event.preventDefault();\n }\n\n onColumnResize(event) {\n let containerLeft = DomHandler.getOffset(this.containerViewChild.nativeElement).left;\n DomHandler.addClass(this.containerViewChild.nativeElement, 'p-unselectable-text');\n this.resizeHelperViewChild.nativeElement.style.height = this.containerViewChild.nativeElement.offsetHeight + 'px';\n this.resizeHelperViewChild.nativeElement.style.top = 0 + 'px';\n this.resizeHelperViewChild.nativeElement.style.left = (event.pageX - containerLeft + this.containerViewChild.nativeElement.scrollLeft) + 'px';\n\n this.resizeHelperViewChild.nativeElement.style.display = 'block';\n }\n\n onColumnResizeEnd(event, column) {\n let delta = this.resizeHelperViewChild.nativeElement.offsetLeft - this.lastResizerHelperX;\n let columnWidth = column.offsetWidth;\n let minWidth = parseInt(column.style.minWidth || 15);\n\n if (columnWidth + delta < minWidth) {\n delta = minWidth - columnWidth;\n }\n\n const newColumnWidth = columnWidth + delta;\n\n if (newColumnWidth >= minWidth) {\n if (this.columnResizeMode === 'fit') {\n let nextColumn = column.nextElementSibling;\n while (!nextColumn.offsetParent) {\n nextColumn = nextColumn.nextElementSibling;\n }\n\n if (nextColumn) {\n let nextColumnWidth = nextColumn.offsetWidth - delta;\n let nextColumnMinWidth = nextColumn.style.minWidth || 15;\n\n if (newColumnWidth > 15 && nextColumnWidth > parseInt(nextColumnMinWidth)) {\n if (this.scrollable) {\n let scrollableView = this.findParentScrollableView(column);\n let scrollableBodyTable = DomHandler.findSingle(scrollableView, '.p-datatable-scrollable-body table') || DomHandler.findSingle(scrollableView, '.p-datatable-virtual-scrollable-body table');\n let scrollableHeaderTable = DomHandler.findSingle(scrollableView, 'table.p-datatable-scrollable-header-table');\n let scrollableFooterTable = DomHandler.findSingle(scrollableView, 'table.p-datatable-scrollable-footer-table');\n let resizeColumnIndex = DomHandler.index(column);\n\n this.resizeColGroup(scrollableHeaderTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n this.resizeColGroup(scrollableBodyTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n this.resizeColGroup(scrollableFooterTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n }\n else {\n column.style.width = newColumnWidth + 'px';\n if (nextColumn) {\n nextColumn.style.width = nextColumnWidth + 'px';\n }\n }\n }\n }\n }\n else if (this.columnResizeMode === 'expand') {\n if (newColumnWidth >= minWidth) {\n if (this.scrollable) {\n this.setScrollableItemsWidthOnExpandResize(column, newColumnWidth, delta);\n }\n else {\n this.tableViewChild.nativeElement.style.width = this.tableViewChild.nativeElement.offsetWidth + delta + 'px';\n column.style.width = newColumnWidth + 'px';\n let containerWidth = this.tableViewChild.nativeElement.style.width;\n this.containerViewChild.nativeElement.style.width = containerWidth + 'px';\n }\n }\n }\n\n this.onColResize.emit({\n element: column,\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.containerViewChild.nativeElement, 'p-unselectable-text');\n }\n\n setScrollableItemsWidthOnExpandResize(column, newColumnWidth, delta) {\n let scrollableView = column ? this.findParentScrollableView(column) : this.containerViewChild.nativeElement;\n let scrollableBody = DomHandler.findSingle(scrollableView, '.p-datatable-scrollable-body') || DomHandler.findSingle(scrollableView, 'cdk-virtual-scroll-viewport');\n let scrollableHeader = DomHandler.findSingle(scrollableView, '.p-datatable-scrollable-header');\n let scrollableFooter = DomHandler.findSingle(scrollableView, '.p-datatable-scrollable-footer');\n let scrollableBodyTable = DomHandler.findSingle(scrollableBody, '.p-datatable-scrollable-body table') || DomHandler.findSingle(scrollableView, 'cdk-virtual-scroll-viewport table');\n let scrollableHeaderTable = DomHandler.findSingle(scrollableHeader, 'table.p-datatable-scrollable-header-table');\n let scrollableFooterTable = DomHandler.findSingle(scrollableFooter, 'table.p-datatable-scrollable-footer-table');\n let frozenWidth = this.frozenWidth ? parseInt(this.frozenWidth, 10) : 0;\n const scrollableBodyTableWidth = column ? scrollableBodyTable.offsetWidth + delta : newColumnWidth;\n const scrollableHeaderTableWidth = column ? scrollableHeaderTable.offsetWidth + delta : newColumnWidth;\n const isContainerInViewport = this.containerViewChild.nativeElement.offsetWidth - frozenWidth >= scrollableBodyTableWidth;\n\n let setWidth = (container, table, width, isContainerInViewport) => {\n if (container && table) {\n container.style.width = isContainerInViewport ? width + DomHandler.calculateScrollbarWidth(scrollableBody) + 'px' : 'auto'\n table.style.width = width + 'px';\n }\n };\n\n setWidth(scrollableBody, scrollableBodyTable, scrollableBodyTableWidth, isContainerInViewport);\n setWidth(scrollableHeader, scrollableHeaderTable, scrollableHeaderTableWidth, isContainerInViewport);\n setWidth(scrollableFooter, scrollableFooterTable, scrollableHeaderTableWidth, isContainerInViewport);\n\n if (column) {\n let resizeColumnIndex = DomHandler.index(column);\n\n this.resizeColGroup(scrollableHeaderTable, resizeColumnIndex, newColumnWidth, null);\n this.resizeColGroup(scrollableBodyTable, resizeColumnIndex, newColumnWidth, null);\n this.resizeColGroup(scrollableFooterTable, resizeColumnIndex, newColumnWidth, null);\n }\n }\n\n findParentScrollableView(column) {\n if (column) {\n let parent = column.parentElement;\n while (parent && !DomHandler.hasClass(parent, 'p-datatable-scrollable-view')) {\n parent = parent.parentElement;\n }\n\n return parent;\n }\n else {\n return null;\n }\n }\n\n resizeColGroup(table, resizeColumnIndex, newColumnWidth, nextColumnWidth) {\n if (table) {\n let colGroup = table.children[0].nodeName === 'COLGROUP' ? table.children[0] : null;\n\n if (colGroup) {\n let col = colGroup.children[resizeColumnIndex];\n let nextCol = col.nextElementSibling;\n col.style.width = newColumnWidth + 'px';\n\n if (nextCol && nextColumnWidth) {\n nextCol.style.width = nextColumnWidth + 'px';\n }\n }\n else {\n throw \"Scrollable tables require a colgroup to support resizable columns\";\n }\n }\n }\n\n onColumnDragStart(event, columnElement) {\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, dropHeader) {\n if (this.reorderableColumns && this.draggedColumn && dropHeader) {\n event.preventDefault();\n let containerOffset = DomHandler.getOffset(this.containerViewChild.nativeElement);\n let dropHeaderOffset = DomHandler.getOffset(dropHeader);\n\n if (this.draggedColumn != dropHeader) {\n let dragIndex = DomHandler.indexWithinGroup(this.draggedColumn, 'preorderablecolumn');\n let dropIndex = DomHandler.indexWithinGroup(dropHeader, 'preorderablecolumn');\n let targetLeft = dropHeaderOffset.left - containerOffset.left;\n let targetTop = containerOffset.top - dropHeaderOffset.top;\n let columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;\n\n this.reorderIndicatorUpViewChild.nativeElement.style.top = dropHeaderOffset.top - containerOffset.top - (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(this.reorderIconWidth / 2)) + 'px';\n this.reorderIndicatorDownViewChild.nativeElement.style.left = (targetLeft + dropHeader.offsetWidth - Math.ceil(this.reorderIconWidth / 2)) + 'px';\n this.dropPosition = 1;\n }\n else {\n this.reorderIndicatorUpViewChild.nativeElement.style.left = (targetLeft - Math.ceil(this.reorderIconWidth / 2)) + 'px';\n this.reorderIndicatorDownViewChild.nativeElement.style.left = (targetLeft - Math.ceil(this.reorderIconWidth / 2)) + 'px';\n this.dropPosition = -1;\n }\n\n if ((dropIndex - dragIndex === 1 && this.dropPosition === -1) || (dropIndex - dragIndex === -1 && this.dropPosition === 1)) {\n this.reorderIndicatorUpViewChild.nativeElement.style.display = 'none';\n this.reorderIndicatorDownViewChild.nativeElement.style.display = 'none';\n }\n else {\n this.reorderIndicatorUpViewChild.nativeElement.style.display = 'block';\n this.reorderIndicatorDownViewChild.nativeElement.style.display = 'block';\n }\n }\n else {\n event.dataTransfer.dropEffect = 'none';\n }\n }\n }\n\n onColumnDragLeave(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 onColumnDrop(event, dropColumn) {\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(this.columns, dragIndex, dropIndex);\n\n this.onColReorder.emit({\n dragIndex: dragIndex,\n dropIndex: dropIndex,\n columns: this.columns\n });\n\n if (this.isStateful()) {\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n this.saveState();\n });\n });\n }\n }\n\n 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 onRowDragStart(event, index) {\n this.rowDragging = true;\n this.draggedRowIndex = index;\n event.dataTransfer.setData('text', 'b'); // For firefox\n }\n\n onRowDragOver(event, index, rowElement) {\n if (this.rowDragging && this.draggedRowIndex !== index) {\n let rowY = DomHandler.getOffset(rowElement).top + DomHandler.getWindowScrollTop();\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)\n DomHandler.addClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n else\n DomHandler.addClass(rowElement, 'p-datatable-dragpoint-top');\n }\n else {\n if (prevRowElement)\n DomHandler.removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n else\n DomHandler.addClass(rowElement, 'p-datatable-dragpoint-top');\n\n this.droppedRowIndex = index + 1;\n DomHandler.addClass(rowElement, 'p-datatable-dragpoint-bottom');\n }\n }\n }\n\n onRowDragLeave(event, rowElement) {\n let prevRowElement = rowElement.previousElementSibling;\n if (prevRowElement) {\n DomHandler.removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n }\n\n DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-top');\n }\n\n onRowDragEnd(event) {\n this.rowDragging = false;\n this.draggedRowIndex = null;\n this.droppedRowIndex = null;\n }\n\n onRowDrop(event, rowElement) {\n if (this.droppedRowIndex != null) {\n let dropIndex = (this.draggedRowIndex > this.droppedRowIndex) ? this.droppedRowIndex : (this.droppedRowIndex === 0) ? 0 : this.droppedRowIndex - 1;\n ObjectUtils.reorderArray(this.value, this.draggedRowIndex, dropIndex);\n\n this.onRowReorder.emit({\n dragIndex: this.draggedRowIndex,\n dropIndex: dropIndex\n });\n }\n //cleanup\n this.onRowDragLeave(event, rowElement);\n this.onRowDragEnd(event);\n }\n\n isEmpty() {\n let data = this.filteredValue||this.value;\n return data == null || data.length == 0;\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n getStorage() {\n 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 }\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 = 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(this.stateKey, JSON.stringify(state));\n this.onStateSave.emit(state);\n }\n\n clearState() {\n const storage = this.getStorage();\n\n if (this.stateKey) {\n storage.removeItem(this.stateKey);\n }\n }\n\n restoreState() {\n const storage = this.getStorage();\n const stateString = storage.getItem(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, value) {\n if (typeof value === \"string\" && dateFormat.test(value)) {\n return new Date(value);\n }\n\n return value;\n }\n\n if (stateString) {\n let state: TableState = JSON.parse(stateString, reviver);\n\n if (this.paginator) {\n if (this.first !== undefined) {\n this.first = state.first;\n this.firstChange.emit(this.first);\n }\n\n if (this.rows !== undefined) {\n this.rows = state.rows;\n this.rowsChange.emit(this.rows);\n }\n }\n\n if (state.sortField) {\n this.restoringSort = true;\n this._sortField = state.sortField;\n this._sortOrder = state.sortOrder;\n }\n\n if (state.multiSortMeta) {\n this.restoringSort = true;\n this._multiSortMeta = state.multiSortMeta;\n }\n\n if (state.filters) {\n this.restoringFilter = true;\n this.filters = state.filters;\n }\n\n if (this.resizableColumns) {\n this.columnWidthsState = state.columnWidths;\n this.tableWidthState = state.tableWidth;\n }\n\n if (state.expandedRowKeys) {\n this.expandedRowKeys = state.expandedRowKeys;\n }\n\n if (state.selection) {\n Promise.resolve(null).then(() => this.selectionChange.emit(state.selection));\n }\n\n this.stateRestored = true;\n\n this.onStateRestore.emit(state);\n }\n }\n\n saveColumnWidths(state) {\n let widths = [];\n let headers = DomHandler.find(this.containerViewChild.nativeElement, '.p-datatable-thead > tr:first-child > th');\n headers.map(header => widths.push(DomHandler.getOuterWidth(header)));\n state.columnWidths = widths.join(',');\n\n if (this.columnResizeMode === 'expand') {\n state.tableWidth = this.scrollable ? DomHandler.findSingle(this.containerViewChild.nativeElement, '.p-datatable-scrollable-header-table').style.width :\n DomHandler.getOuterWidth(this.tableViewChild.nativeElement) + 'px';\n }\n }\n\n restoreColumnWidths() {\n if (this.columnWidthsState) {\n let widths = this.columnWidthsState.split(',');\n\n if (this.columnResizeMode === 'expand' && this.tableWidthState) {\n if (this.scrollable) {\n this.setScrollableItemsWidthOnExpandResize(null, this.tableWidthState, 0);\n }\n else {\n this.tableViewChild.nativeElement.style.width = this.tableWidthState;\n }\n }\n\n if (this.scrollable) {\n let headerCols = DomHandler.find(this.containerViewChild.nativeElement, '.p-datatable-scrollable-header-table > colgroup > col');\n let bodyCols = this.virtualScroll ? DomHandler.find(this.containerViewChild.nativeElement, 'cdk-virtual-scroll-viewport table > colgroup > col') : DomHandler.find(this.containerViewChild.nativeElement, '.p-datatable-scrollable-body table > colgroup > col');\n\n headerCols.map((col, index) => col.style.width = widths[index] + 'px');\n bodyCols.map((col, index) => col.style.width = widths[index] + 'px');\n }\n else {\n let headers = DomHandler.find(this.tableViewChild.nativeElement, '.p-datatable-thead > tr:first-child > th');\n headers.map((header, index) => header.style.width = widths[index] + 'px');\n }\n }\n }\n\n saveColumnOrder(state) {\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(this.stateKey);\n if (stateString) {\n let state: TableState = JSON.parse(stateString);\n let columnOrder = state.columnOrder;\n if (columnOrder) {\n let reorderedColumns = [];\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) {\n if (this.columns) {\n for (let col of this.columns) {\n if (col.key === key || col.field === key)\n return col;\n else\n continue;\n }\n }\n else {\n return null;\n }\n }\n\n ngOnDestroy() {\n this.unbindDocumentEditListener();\n this.editingCell = null;\n this.initialized = null;\n }\n}\n\n@Component({\n selector: '[pTableBody]',\n template: `\n <ng-container *ngIf=\"!dt.expandedRowTemplate && !dt.virtualScroll\">\n <ng-template ngFor let-rowData let-rowIndex=\"index\" [ngForOf]=\"(dt.paginator && !dt.lazy) ? ((dt.filteredValue||dt.value) | slice:dt.first:(dt.first + dt.rows)) : (dt.filteredValue||dt.value)\" [ngForTrackBy]=\"dt.rowTrackBy\">\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: rowData, rowIndex: dt.paginator ? (dt.first + rowIndex) : rowIndex, columns: columns, editing: (dt.editMode === 'row' && dt.isRowEditing(rowData))}\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!dt.expandedRowTemplate && dt.virtualScroll\">\n <ng-template cdkVirtualFor let-rowData let-rowIndex=\"index\" [cdkVirtualForOf]=\"dt.filteredValue||dt.value\" [cdkVirtualForTrackBy]=\"dt.rowTrackBy\" [cdkVirtualForTemplateCacheSize]=\"0\">\n <ng-container *ngTemplateOutlet=\"rowData ? template: dt.loadingBodyTemplate; context: {$implicit: rowData, rowIndex: dt.paginator ? (dt.first + rowIndex) : rowIndex, columns: columns, editing: (dt.editMode === 'row' && dt.isRowEditing(rowData))}\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"dt.expandedRowTemplate && !(frozen && dt.frozenExpandedRowTemplate)\">\n <ng-template ngFor let-rowData let-rowIndex=\"index\" [ngForOf]=\"(dt.paginator && !dt.lazy) ? ((dt.filteredValue||dt.value) | slice:dt.first:(dt.first + dt.rows)) : (dt.filteredValue||dt.value)\" [ngForTrackBy]=\"dt.rowTrackBy\">\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: rowData, rowIndex: dt.paginator ? (dt.first + rowIndex) : rowIndex, columns: columns, expanded: dt.isRowExpanded(rowData), editing: (dt.editMode === 'row' && dt.isRowEditing(rowData))}\"></ng-container>\n <ng-container *ngIf=\"dt.isRowExpanded(rowData)\">\n <ng-container *ngTemplateOutlet=\"dt.expandedRowTemplate; context: {$implicit: rowData, rowIndex: dt.paginator ? (dt.first + rowIndex) : rowIndex, columns: columns}\"></ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"dt.frozenExpandedRowTemplate && frozen\">\n <ng-template ngFor let-rowData let-rowIndex=\"index\" [ngForOf]=\"(dt.paginator && !dt.lazy) ? ((dt.filteredValue||dt.value) | slice:dt.first:(dt.first + dt.rows)) : (dt.filteredValue||dt.value)\" [ngForTrackBy]=\"dt.rowTrackBy\">\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: rowData, rowIndex: dt.paginator ? (dt.first + rowIndex) : rowIndex, columns: columns, expanded: dt.isRowExpanded(rowData), editing: (dt.editMode === 'row' && dt.isRowEditing(rowData))}\"></ng-container>\n <ng-container *ngIf=\"dt.isRowExpanded(rowData)\">\n <ng-container *ngTemplateOutlet=\"dt.frozenExpandedRowTemplate; context: {$implicit: rowData, rowIndex: dt.paginator ? (dt.first + rowIndex) : rowIndex, columns: columns}\"></ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"dt.loading\">\n <ng-container *ngTemplateOutlet=\"dt.loadingBodyTemplate; context: {$implicit: columns, frozen: frozen}\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"dt.isEmpty() && !dt.loading\">\n <ng-container *ngTemplateOutlet=\"dt.emptyMessageTemplate; context: {$implicit: columns, frozen: frozen}\"></ng-container>\n </ng-container>\n `,\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None\n})\nexport class TableBody implements OnDestroy {\n\n @Input(\"pTableBody\") columns: any[];\n\n @Input(\"pTableBodyTemplate\") template: TemplateRef<any>;\n\n @Input() frozen: boolean;\n\n subscription: Subscription;\n\n constructor(public dt: Table, public tableService: TableService, public cd: ChangeDetectorRef) {\n this.subscription = this.dt.tableService.valueSource$.subscribe(() => {\n if (this.dt.virtualScroll) {\n this.cd.detectChanges();\n }\n });\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: '[pScrollableView]',\n template: `\n <div #scrollHeader class=\"p-datatable-scrollable-header\">\n <div #scrollHeaderBox class=\"p-datatable-scrollable-header-box\">\n <table class=\"p-datatable-scrollable-header-table\" [ngClass]=\"dt.tableStyleClass\" [ngStyle]=\"dt.tableStyle\">\n <ng-container *ngTemplateOutlet=\"frozen ? dt.frozenColGroupTemplate||dt.colGroupTemplate : dt.colGroupTemplate; context {$implicit: columns}\"></ng-container>\n <thead class=\"p-datatable-thead\">\n <ng-container *ngTemplateOutlet=\"frozen ? dt.frozenHeaderTemplate||dt.headerTemplate : dt.headerTemplate; context {$implicit: columns}\"></ng-container>\n </thead>\n <tbody class=\"p-datatable-tbody\">\n <ng-template ngFor let-rowData let-rowIndex=\"index\" [ngForOf]=\"dt.frozenValue\" [ngForTrackBy]=\"dt.rowTrackBy\">\n <ng-container *ngTemplateOutlet=\"dt.frozenRowsTemplate; context: {$implicit: rowData, rowIndex: rowIndex, columns: columns}\"></ng-container>\n </ng-template>\n </tbody>\n </table>\n </div>\n </div>\n <ng-container *ngIf=\"!dt.virtualScroll; else virtualScrollTemplate\">\n <div #scrollBody class=\"p-datatable-scrollable-body\" [ngStyle]=\"{'max-height': dt.scrollHeight !== 'flex' ? scrollHeight : undefined, 'overflow-y': !frozen && dt.scrollHeight ? 'scroll' : undefined}\">\n <table #scrollTable [class]=\"dt.tableStyleClass\" [ngStyle]=\"dt.tableStyle\">\n <ng-container *ngTemplateOutlet=\"frozen ? dt.frozenColGroupTemplate||dt.colGroupTemplate : dt.colGroupTemplate; context {$implicit: columns}\"></ng-container>\n <tbody class=\"p-datatable-tbody\" [pTableBody]=\"columns\" [pTableBodyTemplate]=\"frozen ? dt.frozenBodyTemplate||dt.bodyTemplate : dt.bodyTemplate\" [frozen]=\"frozen\"></tbody>\n </table>\n <div #scrollableAligner style=\"background-color:transparent\" *ngIf=\"frozen\"></div>\n </div>\n </ng-container>\n <ng-template #virtualScrollTemplate>\n <cdk-virtual-scroll-viewport [itemSize]=\"dt.virtualRowHeight\" tabindex=\"0\" [style.height]=\"dt.scrollHeight !== 'flex' ? scrollHeight : undefined\"\n [minBufferPx]=\"dt.minBufferPx\" [maxBufferPx]=\"dt.maxBufferPx\" (scrolledIndexChange)=\"onScrollIndexChange($event)\" class=\"p-datatable-virtual-scrollable-body\">\n <table #scrollTable [class]=\"dt.tableStyleClass\" [ngStyle]=\"dt.tableStyle\">\n <ng-container *ngTemplateOutlet=\"frozen ? dt.frozenColGroupTemplate||dt.colGroupTemplate : dt.colGroupTemplate; context {$implicit: columns}\"></ng-container>\n <tbody class=\"p-datatable-tbody\" [pTableBody]=\"columns\" [pTableBodyTemplate]=\"frozen ? dt.frozenBodyTemplate||dt.bodyTemplate : dt.bodyTemplate\" [frozen]=\"frozen\"></tbody>\n </table>\n <div #scrollableAligner style=\"background-color:transparent\" *ngIf=\"frozen\"></div>\n </cdk-virtual-scroll-viewport>\n </ng-template>\n <div #scrollFooter class=\"p-datatable-scrollable-footer\">\n <div #scrollFooterBox class=\"p-datatable-scrollable-footer-box\">\n <table class=\"p-datatable-scrollable-footer-table\" [ngClass]=\"dt.tableStyleClass\" [ngStyle]=\"dt.tableStyle\">\n <ng-container *ngTemplateOutlet=\"frozen ? dt.frozenColGroupTemplate||dt.colGroupTemplate : dt.colGroupTemplate; context {$implicit: columns}\"></ng-container>\n <tfoot class=\"p-datatable-tfoot\">\n <ng-container *ngTemplateOutlet=\"frozen ? dt.frozenFooterTemplate||dt.footerTemplate : dt.footerTemplate; context {$implicit: columns}\"></ng-container>\n </tfoot>\n </table>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None\n})\nexport class ScrollableView implements AfterViewInit,OnDestroy {\n\n @Input(\"pScrollableView\") columns: any[];\n\n @Input() frozen: boolean;\n\n @ViewChild('scrollHeader') scrollHeaderViewChild: ElementRef;\n\n @ViewChild('scrollHeaderBox') scrollHeaderBoxViewChild: ElementRef;\n\n @ViewChild('scrollBody') scrollBodyViewChild: ElementRef;\n\n @ViewChild('scrollTable') scrollTableViewChild: ElementRef;\n\n @ViewChild('scrollFooter') scrollFooterViewChild: ElementRef;\n\n @ViewChild('scrollFooterBox') scrollFooterBoxViewChild: ElementRef;\n\n @ViewChild('scrollableAligner') scrollableAlignerViewChild: ElementRef;\n\n @ViewChild(CdkVirtualScrollViewport) virtualScrollBody: CdkVirtualScrollViewport;\n\n headerScrollListener: any;\n\n bodyScrollListener: any;\n\n footerScrollListener: any;\n\n frozenSiblingBody: HTMLDivElement;\n\n preventBodyScrollPropagation: boolean;\n\n _scrollHeight: string;\n\n virtualScrollTimeout: any;\n\n virtualPage: number;\n\n @Input() get scrollHeight(): string {\n return this._scrollHeight;\n }\n set scrollHeight(val: string) {\n this._scrollHeight = val;\n if (val != null && (val.includes('%') || val.includes('calc'))) {\n console.log('Percentage scroll height calculation is removed in favor of the more performant CSS based flex mode, use scrollHeight=\"flex\" instead.')\n }\n\n if (this.dt.virtualScroll && this.virtualScrollBody) {\n this.virtualScrollBody.ngOnInit();\n }\n }\n\n constructor(public dt: Table, public el: ElementRef, public zone: NgZone) {}\n\n ngAfterViewInit() {\n if (!this.frozen) {\n if (this.dt.frozenColumns || this.dt.frozenBodyTemplate) {\n DomHandler.addClass(this.el.nativeElement, 'p-datatable-unfrozen-view');\n }\n\n let frozenView = this.el.nativeElement.previousElementSibling;\n if (frozenView) {\n if (this.dt.virtualScroll)\n this.frozenSiblingBody = DomHandler.findSingle(frozenView, '.p-datatable-virtual-scrollable-body');\n else\n this.frozenSiblingBody = DomHandler.findSingle(frozenView, '.p-datatable-scrollable-body');\n }\n\n let scrollBarWidth = DomHandler.calculateScrollbarWidth();\n this.scrollHeaderBoxViewChild.nativeElement.style.paddingRight = scrollBarWidth + 'px';\n\n if (this.scrollFooterBoxViewChild && this.scrollFooterBoxViewChild.nativeElement) {\n this.scrollFooterBoxViewChild.nativeElement.style.paddingRight = scrollBarWidth + 'px';\n }\n }\n else {\n if (this.scrollableAlignerViewChild && this.scrollableAlignerViewChild.nativeElement) {\n this.scrollableAlignerViewChild.nativeElement.style.height = DomHandler.calculateScrollbarHeight() + 'px';\n }\n }\n\n this.bindEvents();\n }\n\n bindEvents() {\n this.zone.runOutsideAngular(() => {\n if (this.scrollHeaderViewChild && this.scrollHeaderViewChild.nativeElement) {\n this.headerScrollListener = this.onHeaderScroll.bind(this);\n this.scrollHeaderViewChild.nativeElement.addEventListener('scroll', this.headerScrollListener);\n }\n\n if (this.scrollFooterViewChild && this.scrollFooterViewChild.nativeElement) {\n this.footerScrollListener = this.onFooterScroll.bind(this);\n this.scrollFooterViewChild.nativeElement.addEventListener('scroll', this.footerScrollListener);\n }\n\n if (!this.frozen) {\n this.bodyScrollListener = this.onBodyScroll.bind(this);\n\n if (this.dt.virtualScroll)\n this.virtualScrollBody.getElementRef().nativeElement.addEventListener('scroll', this.bodyScrollListener);\n else\n this.scrollBodyViewChild.nativeElement.addEventListener('scroll', this.bodyScrollListener);\n }\n });\n }\n\n unbindEvents() {\n if (this.scrollHeaderViewChild && this.scrollHeaderViewChild.nativeElement) {\n this.scrollHeaderViewChild.nativeElement.removeEventListener('scroll', this.headerScrollListener);\n }\n\n if (this.scrollFooterViewChild && this.scrollFooterViewChild.nativeElement) {\n this.scrollFooterViewChild.nativeElement.removeEventListener('scroll', this.footerScrollListener);\n }\n\n if (this.scrollBodyViewChild && this.scrollBodyViewChild.nativeElement) {\n this.scrollBodyViewChild.nativeElement.removeEventListener('scroll', this.bodyScrollListener);\n }\n\n if (this.virtualScrollBody && this.virtualScrollBody.getElementRef()) {\n this.virtualScrollBody.getElementRef().nativeElement.removeEventListener('scroll', this.bodyScrollListener);\n }\n }\n\n onHeaderScroll() {\n const scrollLeft = this.scrollHeaderViewChild.nativeElement.scrollLeft;\n\n this.scrollBodyViewChild.nativeElement.scrollLeft = scrollLeft;\n\n if (this.scrollFooterViewChild && this.scrollFooterViewChild.nativeElement) {\n this.scrollFooterViewChild.nativeElement.scrollLeft = scrollLeft;\n }\n\n this.preventBodyScrollPropagation = true;\n }\n\n onFooterScroll() {\n const scrollLeft = this.scrollFooterViewChild.nativeElement.scrollLeft;\n this.scrollBodyViewChild.nativeElement.scrollLeft = scrollLeft;\n\n if (this.scrollHeaderViewChild && this.scrollHeaderViewChild.nativeElement) {\n this.scrollHeaderViewChild.nativeElement.scrollLeft = scrollLeft;\n }\n\n this.preventBodyScrollPropagation = true;\n }\n\n onBodyScroll(event) {\n if (this.preventBodyScrollPropagation) {\n this.preventBodyScrollPropagation = false;\n return;\n }\n\n if (this.scrollHeaderViewChild && this.scrollHeaderViewChild.nativeElement) {\n this.scrollHeaderBoxViewChild.nativeElement.style.marginLeft = -1 * event.target.scrollLeft + 'px';\n }\n\n if (this.scrollFooterViewChild && this.scrollFooterViewChild.nativeElement) {\n this.scrollFooterBoxViewChild.nativeElement.style.marginLeft = -1 * event.target.scrollLeft + 'px';\n }\n\n if (this.frozenSiblingBody) {\n this.frozenSiblingBody.scrollTop = event.target.scrollTop;\n }\n }\n\n onScrollIndexChange(index: number) {\n if (this.dt.lazy) {\n if (this.virtualScrollTimeout) {\n clearTimeout(this.virtualScrollTimeout);\n }\n\n this.virtualScrollTimeout = setTimeout(() => {\n let page = Math.floor(index / this.dt.rows);\n let virtualScrollOffset = page === 0 ? 0 : (page - 1) * this.dt.rows;\n let virtualScrollChunkSize = page === 0 ? this.dt.rows * 2 : this.dt.rows * 3;\n\n if (page !== this.virtualPage) {\n this.virtualPage = page;\n this.dt.onLazyLoad.emit({\n first: virtualScrollOffset,\n rows: virtualScrollChunkSize,\n sortField: this.dt.sortField,\n sortOrder: this.dt.sortOrder,\n filters: this.dt.filters,\n globalFilter: this.dt.filters && this.dt.filters['global'] ? (<FilterMetadata> this.dt.filters['global']).value : null,\n multiSortMeta: this.dt.multiSortMeta\n });\n }\n }, this.dt.virtualScrollDelay);\n }\n }\n\n getPageCount() {\n let dataToRender = this.dt.filteredValue || this.dt.value;\n let dataLength = dataToRender ? dataToRender.length: 0;\n return Math.ceil(dataLength / this.dt.rows);\n }\n\n scrollToVirtualIndex(index: number): void {\n if (this.virtualScrollBody) {\n this.virtualScrollBody.scrollToIndex(index);\n }\n }\n\n scrollTo(options): void {\n if (this.virtualScrollBody) {\n this.virtualScrollBody.scrollTo(options);\n }\n else {\n if (this.scrollBodyViewChild.nativeElement.scrollTo) {\n this.scrollBodyViewChild.nativeElement.scrollTo(options);\n }\n else {\n this.scrollBodyViewChild.nativeElement.scrollLeft = options.left;\n this.scrollBodyViewChild.nativeElement.scrollTop = options.top;\n }\n }\n }\n\n ngOnDestroy() {\n this.unbindEvents();\n this.frozenSiblingBody = null;\n }\n}\n\n@Directive({\n selector: '[pSortableColumn]',\n host: {\n '[class.p-sortable-column]': 'isEnabled()',\n '[class.p-highlight]': 'sorted',\n '[attr.tabindex]': 'isEnabled() ? \"0\" : null',\n '[attr.role]': '\"columnheader\"',\n '[attr.aria-sort]': 'sortOrder'\n }\n})\nexport class SortableColumn implements OnInit, OnDestroy {\n\n @Input(\"pSortableColumn\") field: string;\n\n @Input() pSortableColumnDisabled: boolean;\n\n sorted: boolean;\n\n sortOrder: string;\n\n subscription: Subscription;\n\n constructor(public dt: Table) {\n if (this.isEnabled()) {\n this.subscription = this.dt.tableService.sortSource$.subscribe(sortMeta => {\n this.updateSortState();\n });\n }\n }\n\n ngOnInit() {\n if (this.isEnabled()) {\n this.updateSortState();\n }\n }\n\n updateSortState() {\n this.sorted = this.dt.isSorted(this.field);\n this.sortOrder = this.sorted ? (this.dt.sortOrder === 1 ? 'ascending' : 'descending') : 'none';\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent) {\n if (this.isEnabled() && !this.isFilterElement(<HTMLElement> event.target)) {\n this.updateSortState();\n this.dt.sort({\n originalEvent: event,\n field: this.field\n });\n\n DomHandler.clearSelection();\n }\n }\n\n @HostListener('keydown.enter', ['$event'])\n onEnterKey(event: MouseEvent) {\n this.onClick(event);\n }\n\n isEnabled() {\n return this.pSortableColumnDisabled !== true;\n }\n\n isFilterElement(element: HTMLElement) {\n return DomHandler.hasClass(element, 'pi-filter-icon') || DomHandler.hasClass(element, 'p-column-filter-menu-button');\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n\n\n@Component({\n selector: 'p-sortIcon',\n template: `\n <i class=\"p-sortable-column-icon pi pi-fw\" [ngClass]=\"{'pi-sort-amount-up-alt': sortOrder === 1, 'pi-sort-amount-down': sortOrder === -1, 'pi-sort-alt': sortOrder === 0}\"></i>\n <span *ngIf=\"isMultiSorted()\" class=\"p-sortable-column-badge\">{{getMultiSortMetaIndex() + 1}}</span>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class SortIcon implements OnInit, OnDestroy {\n\n @Input() field: string;\n\n subscription: Subscription;\n\n sortOrder: number;\n\n constructor(public dt: Table, public cd: ChangeDetectorRef) {\n this.subscription = this.dt.tableService.sortSource$.subscribe(sortMeta => {\n this.updateSortState();\n });\n }\n\n ngOnInit() {\n this.updateSortState();\n }\n\n onClick(event){\n event.preventDefault();\n }\n\n updateSortState() {\n if (this.dt.sortMode === 'single') {\n this.sortOrder = this.dt.isSorted(this.field) ? this.dt.sortOrder : 0;\n }\n else if (this.dt.sortMode === 'multiple') {\n let sortMeta = this.dt.getSortMeta(this.field);\n this.sortOrder = sortMeta ? sortMeta.order: 0;\n }\n\n this.cd.markForCheck();\n }\n\n getMultiSortMetaIndex() {\n let multiSortMeta = this.dt._multiSortMeta;\n let index = -1;\n\n if (multiSortMeta && this.dt.sortMode === 'multiple' && (this.dt.showInitialSortBadge || multiSortMeta.length > 1)) {\n\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 isMultiSorted() {\n return this.dt.sortMode === 'multiple' && this.getMultiSortMetaIndex() > -1;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[pSelectableRow]',\n host: {\n '[class.p-selectable-row]': 'isEnabled()',\n '[class.p-highlight]': 'selected',\n '[attr.tabindex]': 'isEnabled() ? 0 : undefined'\n }\n})\nexport class SelectableRow implements OnInit, OnDestroy {\n\n @Input(\"pSelectableRow\") data: any;\n\n @Input(\"pSelectableRowIndex\") index: number;\n\n @Input() pSelectableRowDisabled: boolean;\n\n selected: boolean;\n\n subscription: Subscription;\n\n constructor(public dt: Table, public tableService: TableService) {\n if (this.isEnabled()) {\n this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.selected = this.dt.isSelected(this.data);\n });\n }\n }\n\n ngOnInit() {\n if (this.isEnabled()) {\n this.selected = this.dt.isSelected(this.data);\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.dt.handleRowClick({\n originalEvent: event,\n rowData: this.data,\n rowIndex: this.index\n });\n }\n }\n\n @HostListener('touchend', ['$event'])\n onTouchEnd(event: Event) {\n if (this.isEnabled()) {\n this.dt.handleRowTouchEnd(event);\n }\n }\n\n @HostListener('keydown.arrowdown', ['$event'])\n onArrowDownKeyDown(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 @HostListener('keydown.arrowup', ['$event'])\n onArrowUpKeyDown(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 @HostListener('keydown.enter', ['$event'])\n @HostListener('keydown.shift.enter', ['$event'])\n @HostListener('keydown.meta.enter', ['$event'])\n onEnterKeyDown(event: KeyboardEvent) {\n if (!this.isEnabled()) {\n return;\n }\n\n this.dt.handleRowClick({\n originalEvent: event,\n rowData: this.data,\n rowIndex: this.index\n });\n }\n\n @HostListener('keydown.pagedown')\n @HostListener('keydown.pageup')\n @HostListener('keydown.home')\n @HostListener('keydown.end')\n onPageDownKeyDown() {\n if (this.dt.virtualScroll) {\n DomHandler.findSingle(this.dt.scrollableViewChild.el.nativeElement, 'cdk-virtual-scroll-viewport').focus();\n }\n }\n\n @HostListener('keydown.space')\n onSpaceKeydown() {\n if (this.dt.virtualScroll && !this.dt.editingCell) {\n DomHandler.findSingle(this.dt.scrollableViewChild.el.nativeElement, 'cdk-virtual-scroll-viewport').focus();\n }\n }\n\n findNextSelectableRow(row: HTMLTableRowElement): HTMLTableRowElement {\n let nextRow = <HTMLTableRowElement> row.nextElementSibling;\n if (nextRow) {\n if (DomHandler.hasClass(nextRow, 'p-selectable-row'))\n return nextRow;\n else\n return this.findNextSelectableRow(nextRow);\n }\n else {\n return null;\n }\n }\n\n findPrevSelectableRow(row: HTMLTableRowElement): HTMLTableRowElement {\n let prevRow = <HTMLTableRowElement> row.previousElementSibling;\n if (prevRow) {\n if (DomHandler.hasClass(prevRow, 'p-selectable-row'))\n return prevRow;\n else\n return this.findPrevSelectableRow(prevRow);\n }\n else {\n return null;\n }\n }\n\n isEnabled() {\n return this.pSelectableRowDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n\n@Directive({\n selector: '[pSelectableRowDblClick]',\n host: {\n '[class.p-selectable-row]': 'isEnabled()',\n '[class.p-highlight]': 'selected'\n }\n})\nexport class SelectableRowDblClick implements OnInit, OnDestroy {\n\n @Input(\"pSelectableRowDblClick\") data: any;\n\n @Input(\"pSelectableRowIndex\") index: number;\n\n @Input() pSelectableRowDisabled: boolean;\n\n selected: boolean;\n\n subscription: Subscription;\n\n constructor(public dt: Table, public tableService: TableService) {\n if (this.isEnabled()) {\n this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.selected = this.dt.isSelected(this.data);\n });\n }\n }\n\n ngOnInit() {\n if (this.isEnabled()) {\n this.selected = this.dt.isSelected(this.data);\n }\n }\n\n @HostListener('dblclick', ['$event'])\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.dt.handleRowClick({\n originalEvent: event,\n rowData: this.data,\n rowIndex: this.index\n });\n }\n }\n\n isEnabled() {\n return this.pSelectableRowDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n\n@Directive({\n selector: '[pContextMenuRow]',\n host: {\n '[class.p-highlight-contextmenu]': 'selected',\n '[attr.tabindex]': 'isEnabled() ? 0 : undefined'\n }\n})\nexport class ContextMenuRow {\n\n @Input(\"pContextMenuRow\") data: any;\n\n @Input(\"pContextMenuRowIndex\") index: number;\n\n @Input() pContextMenuRowDisabled: boolean;\n\n selected: boolean;\n\n subscription: Subscription;\n\n constructor(public dt: Table, public tableService: TableService, private el: ElementRef) {\n if (this.isEnabled()) {\n this.subscription = this.dt.tableService.contextMenuSource$.subscribe((data) => {\n this.selected = this.dt.equals(this.data, data);\n });\n }\n }\n\n @HostListener('contextmenu', ['$event'])\n onContextMenu(event: Event) {\n if (this.isEnabled()) {\n this.dt.handleRowRightClick({\n originalEvent: event,\n rowData: this.data,\n rowIndex: this.index\n });\n\n this.el.nativeElement.focus();\n event.preventDefault();\n }\n }\n\n isEnabled() {\n return this.pContextMenuRowDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n\n@Directive({\n selector: '[pRowToggler]'\n})\nexport class RowToggler {\n\n @Input('pRowToggler') data: any;\n\n @Input() pRowTogglerDisabled: boolean;\n\n constructor(public dt: Table) { }\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.dt.toggleRow(this.data, event);\n event.preventDefault();\n }\n }\n\n isEnabled() {\n return this.pRowTogglerDisabled !== true;\n }\n}\n\n@Directive({\n selector: '[pResizableColumn]'\n})\nexport class ResizableColumn implements AfterViewInit, OnDestroy {\n\n @Input() pResizableColumnDisabled: boolean;\n\n resizer: HTMLSpanElement;\n\n resizerMouseDownListener: any;\n\n documentMouseMoveListener: any;\n\n documentMouseUpListener: any;\n\n constructor(public dt: Table, public el: ElementRef, public zone: NgZone) { }\n\n ngAfterViewInit() {\n if (this.isEnabled()) {\n DomHandler.addClass(this.el.nativeElement, 'p-resizable-column');\n this.resizer = document.createElement('span');\n this.resizer.className = 'p-column-resizer';\n this.el.nativeElement.appendChild(this.resizer);\n\n this.zone.runOutsideAngular(() => {\n this.resizerMouseDownListener = this.onMouseDown.bind(this);\n this.resizer.addEventListener('mousedown', this.resizerMouseDownListener);\n });\n }\n }\n\n bindDocumentEvents() {\n this.zone.runOutsideAngular(() => {\n this.documentMouseMoveListener = this.onDocumentMouseMove.bind(this);\n document.addEventListener('mousemove', this.documentMouseMoveListener);\n\n this.documentMouseUpListener = this.onDocumentMouseUp.bind(this);\n document.addEventListener('mouseup', this.documentMouseUpListener);\n });\n }\n\n unbindDocumentEvents() {\n if (this.documentMouseMoveListener) {\n document.removeEventListener('mousemove', this.documentMouseMoveListener);\n this.documentMouseMoveListener = null;\n }\n\n if (this.documentMouseUpListener) {\n document.removeEventListener('mouseup', this.documentMouseUpListener);\n this.documentMouseUpListener = null;\n }\n }\n\n onMouseDown(event: MouseEvent) {\n if (event.which === 1) {\n this.dt.onColumnResizeBegin(event);\n this.bindDocumentEvents();\n }\n }\n\n onDocumentMouseMove(event: MouseEvent) {\n this.dt.onColumnResize(event);\n }\n\n onDocumentMouseUp(event: MouseEvent) {\n this.dt.onColumnResizeEnd(event, this.el.nativeElement);\n this.unbindDocumentEvents();\n }\n\n isEnabled() {\n return this.pResizableColumnDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.resizerMouseDownListener) {\n this.resizer.removeEventListener('mousedown', this.resizerMouseDownListener);\n }\n\n this.unbindDocumentEvents();\n }\n}\n\n@Directive({\n selector: '[pReorderableColumn]'\n})\nexport class ReorderableColumn implements AfterViewInit, OnDestroy {\n\n @Input() pReorderableColumnDisabled: boolean;\n\n dragStartListener: any;\n\n dragOverListener: any;\n\n dragEnterListener: any;\n\n dragLeaveListener: any;\n\n mouseDownListener: any;\n\n constructor(public dt: Table, public el: ElementRef, public zone: NgZone) { }\n\n ngAfterViewInit() {\n if (this.isEnabled()) {\n this.bindEvents();\n }\n }\n\n bindEvents() {\n this.zone.runOutsideAngular(() => {\n this.mouseDownListener = this.onMouseDown.bind(this);\n this.el.nativeElement.addEventListener('mousedown', this.mouseDownListener);\n\n this.dragStartListener = this.onDragStart.bind(this);\n this.el.nativeElement.addEventListener('dragstart', this.dragStartListener);\n\n this.dragOverListener = this.onDragEnter.bind(this);\n this.el.nativeElement.addEventListener('dragover', this.dragOverListener);\n\n this.dragEnterListener = this.onDragEnter.bind(this);\n this.el.nativeElement.addEventListener('dragenter', this.dragEnterListener);\n\n this.dragLeaveListener = this.onDragLeave.bind(this);\n this.el.nativeElement.addEventListener('dragleave', this.dragLeaveListener);\n });\n }\n\n unbindEvents() {\n if (this.mouseDownListener) {\n document.removeEventListener('mousedown', this.mouseDownListener);\n this.mouseDownListener = null;\n }\n\n if (this.dragOverListener) {\n document.removeEventListener('dragover', this.dragOverListener);\n this.dragOverListener = null;\n }\n\n if (this.dragEnterListener) {\n document.removeEventListener('dragenter', this.dragEnterListener);\n this.dragEnterListener = null;\n }\n\n if (this.dragEnterListener) {\n document.removeEventListener('dragenter', this.dragEnterListener);\n this.dragEnterListener = null;\n }\n\n if (this.dragLeaveListener) {\n document.removeEventListener('dragleave', this.dragLeaveListener);\n this.dragLeaveListener = null;\n }\n }\n\n onMouseDown(event) {\n if (event.target.nodeName === 'INPUT' || event.target.nodeName === 'TEXTAREA' || DomHandler.hasClass(event.target, 'p-column-resizer'))\n this.el.nativeElement.draggable = false;\n else\n this.el.nativeElement.draggable = true;\n }\n\n onDragStart(event) {\n this.dt.onColumnDragStart(event, this.el.nativeElement);\n }\n\n onDragOver(event) {\n event.preventDefault();\n }\n\n onDragEnter(event) {\n this.dt.onColumnDragEnter(event, this.el.nativeElement);\n }\n\n onDragLeave(event) {\n this.dt.onColumnDragLeave(event);\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event) {\n if (this.isEnabled()) {\n this.dt.onColumnDrop(event, this.el.nativeElement);\n }\n }\n\n isEnabled() {\n return this.pReorderableColumnDisabled !== true;\n }\n\n ngOnDestroy() {\n this.unbindEvents();\n }\n\n}\n\n@Directive({\n selector: '[pEditableColumn]'\n})\nexport class EditableColumn implements AfterViewInit {\n\n @Input(\"pEditableColumn\") data: any;\n\n @Input(\"pEditableColumnField\") field: any;\n\n @Input(\"pEditableColumnRowIndex\") rowIndex: number;\n\n @Input() pEditableColumnDisabled: boolean;\n\n @Input() pFocusCellSelector: string;\n\n constructor(public dt: Table, public el: ElementRef, public zone: NgZone) {}\n\n ngAfterViewInit() {\n if (this.isEnabled()) {\n DomHandler.addClass(this.el.nativeElement, 'p-editable-column');\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent) {\n if (this.isEnabled()) {\n this.dt.editingCellClick = true;\n\n if (this.dt.editingCell) {\n if (this.dt.editingCell !== this.el.nativeElement) {\n if (!this.dt.isEditingCellValid()) {\n return;\n }\n\n this.closeEditingCell(true, event);\n this.openCell();\n }\n }\n else {\n this.openCell();\n }\n }\n }\n\n openCell() {\n this.dt.updateEditingCell(this.el.nativeElement, this.data, this.field, this.rowIndex);\n DomHandler.addClass(this.el.nativeElement, 'p-cell-editing');\n this.dt.onEditInit.emit({field: this.field, data: this.data, index: this.rowIndex});\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n let focusCellSelector = this.pFocusCellSelector || 'input, textarea, select';\n let focusableElement = DomHandler.findSingle(this.el.nativeElement, focusCellSelector);\n\n if (focusableElement) {\n focusableElement.focus();\n }\n }, 50);\n });\n }\n\n closeEditingCell(completed, event) {\n if (completed)\n this.dt.onEditComplete.emit({field: this.dt.editingCellField, data: this.dt.editingCellData, originalEvent: event, index: this.dt.editingCellRowIndex});\n else\n this.dt.onEditCancel.emit({field: this.dt.editingCellField, data: this.dt.editingCellData, originalEvent: event, index: this.dt.editingCellRowIndex});\n\n DomHandler.removeClass(this.dt.editingCell, 'p-cell-editing');\n this.dt.editingCell = null;\n this.dt.editingCellData = null;\n this.dt.editingCellField = null;\n this.dt.unbindDocumentEditListener();\n }\n\n @HostListener('keydown.enter', ['$event'])\n onEnterKeyDown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n event.preventDefault();\n }\n }\n\n @HostListener('keydown.escape', ['$event'])\n onEscapeKeyDown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(false, event);\n }\n\n event.preventDefault();\n }\n }\n\n @HostListener('keydown.tab', ['$event'])\n @HostListener('keydown.shift.tab', ['$event'])\n @HostListener('keydown.meta.tab', ['$event'])\n onShiftKeyDown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n if (event.shiftKey)\n this.moveToPreviousCell(event);\n else{\n this.moveToNextCell(event);\n }\n }\n }\n @HostListener('keydown.arrowdown', ['$event'])\n onArrowDown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n let currentCell = this.findCell(event.target);\n if (currentCell) {\n let cellIndex = DomHandler.index(currentCell);\n let targetCell = this.findNextEditableColumnByIndex(currentCell, cellIndex);\n\n if (targetCell) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n DomHandler.invokeElementMethod(event.target, 'blur');\n DomHandler.invokeElementMethod(targetCell, 'click');\n }\n\n event.preventDefault();\n }\n }\n }\n\n @HostListener('keydown.arrowup', ['$event'])\n onArrowUp(event: KeyboardEvent) {\n if (this.isEnabled()) {\n let currentCell = this.findCell(event.target);\n if (currentCell) {\n let cellIndex = DomHandler.index(currentCell);\n let targetCell = this.findPrevEditableColumnByIndex(currentCell, cellIndex);\n\n if (targetCell) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n DomHandler.invokeElementMethod(event.target, 'blur');\n DomHandler.invokeElementMethod(targetCell, 'click');\n }\n\n event.preventDefault();\n }\n }\n }\n\n @HostListener('keydown.arrowleft', ['$event'])\n onArrowLeft(event: KeyboardEvent) {\n if (this.isEnabled()) {\n this.moveToPreviousCell(event);\n }\n }\n\n @HostListener('keydown.arrowright', ['$event'])\n onArrowRight(event: KeyboardEvent) {\n if (this.isEnabled()) {\n this.moveToNextCell(event);\n }\n }\n\n findCell(element) {\n if (element) {\n let cell = element;\n while (cell && !DomHandler.hasClass(cell, 'p-cell-editing')) {\n cell = cell.parentElement;\n }\n\n return cell;\n }\n else {\n return null;\n }\n }\n\n moveToPreviousCell(event: KeyboardEvent) {\n let currentCell = this.findCell(event.target);\n if (currentCell) {\n let targetCell = this.findPreviousEditableColumn(currentCell);\n\n if (targetCell) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n DomHandler.invokeElementMethod(event.target, 'blur');\n DomHandler.invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n }\n }\n\n moveToNextCell(event: KeyboardEvent) {\n let currentCell = this.findCell(event.target);\n if (currentCell) {\n let targetCell = this.findNextEditableColumn(currentCell);\n\n if (targetCell) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n DomHandler.invokeElementMethod(event.target, 'blur');\n DomHandler.invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n }\n }\n\n findPreviousEditableColumn(cell: Element) {\n let prevCell = cell.previousElementSibling;\n\n if (!prevCell) {\n let previousRow = cell.parentElement.previousElementSibling;\n if (previousRow) {\n prevCell = previousRow.lastElementChild;\n }\n }\n\n if (prevCell) {\n if (DomHandler.hasClass(prevCell, 'p-editable-column'))\n return prevCell;\n else\n return this.findPreviousEditableColumn(prevCell);\n }\n else {\n return null;\n }\n }\n\n findNextEditableColumn(cell: Element) {\n let nextCell = cell.nextElementSibling;\n\n if (!nextCell) {\n let nextRow = cell.parentElement.nextElementSibling;\n if (nextRow) {\n nextCell = nextRow.firstElementChild;\n }\n }\n\n if (nextCell) {\n if (DomHandler.hasClass(nextCell, 'p-editable-column'))\n return nextCell;\n else\n return this.findNextEditableColumn(nextCell);\n }\n else {\n return null;\n }\n }\n\n findNextEditableColumnByIndex(cell: Element, index: number) {\n let nextRow = cell.parentElement.nextElementSibling;\n\n if (nextRow) {\n let nextCell = nextRow.children[index];\n\n if (nextCell && DomHandler.hasClass(nextCell, 'p-editable-column')) {\n return nextCell;\n }\n\n return null;\n }\n else {\n return null;\n }\n }\n\n findPrevEditableColumnByIndex(cell: Element, index: number) {\n let prevRow = cell.parentElement.previousElementSibling;\n\n if (prevRow) {\n let prevCell = prevRow.children[index];\n\n if (prevCell && DomHandler.hasClass(prevCell, 'p-editable-column')) {\n return prevCell;\n }\n\n return null;\n }\n else {\n return null;\n }\n }\n\n isEnabled() {\n return this.pEditableColumnDisabled !== true;\n }\n\n}\n\n@Directive({\n selector: '[pEditableRow]'\n})\nexport class EditableRow {\n\n @Input(\"pEditableRow\") data: any;\n\n @Input() pEditableRowDisabled: boolean;\n\n constructor(public el: ElementRef) {}\n\n isEnabled() {\n return this.pEditableRowDisabled !== true;\n }\n\n}\n\n@Directive({\n selector: '[pInitEditableRow]'\n})\nexport class InitEditableRow {\n\n constructor(public dt: Table, public editableRow: EditableRow) {}\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n this.dt.initRowEdit(this.editableRow.data);\n event.preventDefault();\n }\n\n}\n\n@Directive({\n selector: '[pSaveEditableRow]'\n})\nexport class SaveEditableRow {\n\n constructor(public dt: Table, public editableRow: EditableRow) {}\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n this.dt.saveRowEdit(this.editableRow.data, this.editableRow.el.nativeElement);\n event.preventDefault();\n }\n}\n\n@Directive({\n selector: '[pCancelEditableRow]'\n})\nexport class CancelEditableRow {\n\n constructor(public dt: Table, public editableRow: EditableRow) {}\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n this.dt.cancelRowEdit(this.editableRow.data);\n event.preventDefault();\n }\n}\n\n@Component({\n selector: 'p-cellEditor',\n template: `\n <ng-container *ngIf=\"editing\">\n <ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!editing\">\n <ng-container *ngTemplateOutlet=\"outputTemplate\"></ng-container>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class CellEditor implements AfterContentInit {\n\n @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate>;\n\n inputTemplate: TemplateRef<any>;\n\n outputTemplate: TemplateRef<any>;\n\n constructor(public dt: Table, @Optional() public editableColumn: EditableColumn, @Optional() public editableRow: EditableRow) { }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'input':\n this.inputTemplate = item.template;\n break;\n\n case 'output':\n this.outputTemplate = item.template;\n break;\n }\n });\n }\n\n get editing(): boolean {\n return (this.dt.editingCell && this.editableColumn && this.dt.editingCell === this.editableColumn.el.nativeElement) ||\n (this.editableRow && this.dt.editMode === 'row' && this.dt.isRowEditing(this.editableRow.data));\n }\n\n}\n\n@Component({\n selector: 'p-tableRadioButton',\n template: `\n <div class=\"p-radiobutton p-component\" (click)=\"onClick($event)\">\n <div class=\"p-hidden-accessible\">\n <input type=\"radio\" [attr.id]=\"inputId\" [attr.name]=\"name\" [checked]=\"checked\" (focus)=\"onFocus()\" (blur)=\"onBlur()\"\n [disabled]=\"disabled\" [attr.aria-label]=\"ariaLabel\">\n </div>\n <div #box [ngClass]=\"{'p-radiobutton-box p-component':true,\n 'p-highlight':checked, 'p-disabled':disabled}\" role=\"radio\" [attr.aria-checked]=\"checked\">\n <div class=\"p-radiobutton-icon\"></div>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class TableRadioButton {\n\n @Input() disabled: boolean;\n\n @Input() value: any;\n\n @Input() index: number;\n\n @Input() inputId: string;\n\n @Input() name: string;\n\n @Input() ariaLabel: string;\n\n @ViewChild('box') boxViewChild: ElementRef;\n\n checked: boolean;\n\n subscription: Subscription;\n\n constructor(public dt: Table, public tableService: TableService, public cd: ChangeDetectorRef) {\n this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.dt.isSelected(this.value);\n this.cd.markForCheck();\n });\n }\n\n ngOnInit() {\n this.checked = this.dt.isSelected(this.value);\n }\n\n onClick(event: Event) {\n if (!this.disabled) {\n this.dt.toggleRowWithRadio({\n originalEvent: event,\n rowIndex: this.index\n }, this.value);\n }\n DomHandler.clearSelection();\n }\n\n onFocus() {\n DomHandler.addClass(this.boxViewChild.nativeElement, 'p-focus');\n }\n\n onBlur() {\n DomHandler.removeClass(this.boxViewChild.nativeElement, 'p-focus');\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n\n@Component({\n selector: 'p-tableCheckbox',\n template: `\n <div class=\"p-checkbox p-component\" (click)=\"onClick($event)\">\n <div class=\"p-hidden-accessible\">\n <input type=\"checkbox\" [attr.id]=\"inputId\" [attr.name]=\"name\" [checked]=\"checked\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" [disabled]=\"disabled\"\n [attr.required]=\"required\" [attr.aria-label]=\"ariaLabel\">\n </div>\n <div #box [ngClass]=\"{'p-checkbox-box p-component':true,\n 'p-highlight':checked, 'p-disabled':disabled}\" role=\"checkbox\" [attr.aria-checked]=\"checked\">\n <span class=\"p-checkbox-icon\" [ngClass]=\"{'pi pi-check':checked}\"></span>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class TableCheckbox {\n\n @Input() disabled: boolean;\n\n @Input() value: any;\n\n @Input() index: number;\n\n @Input() inputId: string;\n\n @Input() name: string;\n\n @Input() required: boolean;\n\n @Input() ariaLabel: string;\n\n @ViewChild('box') boxViewChild: ElementRef;\n\n checked: boolean;\n\n subscription: Subscription;\n\n constructor(public dt: Table, public tableService: TableService, public cd: ChangeDetectorRef) {\n this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.dt.isSelected(this.value);\n this.cd.markForCheck();\n });\n }\n\n ngOnInit() {\n this.checked = this.dt.isSelected(this.value);\n }\n\n onClick(event: Event) {\n if (!this.disabled) {\n this.dt.toggleRowWithCheckbox({\n originalEvent: event,\n rowIndex: this.index\n }, this.value);\n }\n DomHandler.clearSelection();\n }\n\n onFocus() {\n DomHandler.addClass(this.boxViewChild.nativeElement, 'p-focus');\n }\n\n onBlur() {\n DomHandler.removeClass(this.boxViewChild.nativeElement, 'p-focus');\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n\n@Component({\n selector: 'p-tableHeaderCheckbox',\n template: `\n <div class=\"p-checkbox p-component\" (click)=\"onClick($event)\">\n <div class=\"p-hidden-accessible\">\n <input #cb type=\"checkbox\" [attr.id]=\"inputId\" [attr.name]=\"name\" [checked]=\"checked\" (focus)=\"onFocus()\" (blur)=\"onBlur()\"\n [disabled]=\"isDisabled()\" [attr.aria-label]=\"ariaLabel\">\n </div>\n <div #box [ngClass]=\"{'p-checkbox-box':true,\n 'p-highlight':checked, 'p-disabled': isDisabled()}\" role=\"checkbox\" [attr.aria-checked]=\"checked\">\n <span class=\"p-checkbox-icon\" [ngClass]=\"{'pi pi-check':checked}\"></span>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class TableHeaderCheckbox {\n\n @ViewChild('box') boxViewChild: ElementRef;\n\n @Input() disabled: boolean;\n\n @Input() inputId: string;\n\n @Input() name: string;\n\n @Input() ariaLabel: string;\n\n checked: boolean;\n\n selectionChangeSubscription: Subscription;\n\n valueChangeSubscription: Subscription;\n\n constructor(public dt: Table, public tableService: TableService, public cd: ChangeDetectorRef) {\n this.valueChangeSubscription = this.dt.tableService.valueSource$.subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n\n this.selectionChangeSubscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n }\n\n ngOnInit() {\n this.checked = this.updateCheckedState();\n }\n\n onClick(event: Event) {\n if (!this.disabled) {\n if (this.dt.value && this.dt.value.length > 0) {\n this.dt.toggleRowsWithCheckbox(event, !this.checked);\n }\n }\n\n DomHandler.clearSelection();\n }\n\n onFocus() {\n DomHandler.addClass(this.boxViewChild.nativeElement, 'p-focus');\n }\n\n onBlur() {\n DomHandler.removeClass(this.boxViewChild.nativeElement, 'p-focus');\n }\n\n isDisabled() {\n return this.disabled || !this.dt.value || !this.dt.value.length;\n }\n\n ngOnDestroy() {\n if (this.selectionChangeSubscription) {\n this.selectionChangeSubscription.unsubscribe();\n }\n\n if (this.valueChangeSubscription) {\n this.valueChangeSubscription.unsubscribe();\n }\n }\n\n updateCheckedState() {\n this.cd.markForCheck();\n\n if (this.dt.filteredValue) {\n const val = this.dt.filteredValue;\n return (val && val.length > 0 && this.dt.selection && this.dt.selection.length > 0 && this.isAllFilteredValuesChecked());\n }\n else {\n const val = this.dt.value;\n return (val && val.length > 0 && this.dt.selection && this.dt.selection.length > 0 && this.dt.selection.length === val.length);\n }\n }\n\n isAllFilteredValuesChecked() {\n if (!this.dt.filteredValue) {\n return false;\n }\n else {\n for (let rowData of this.dt.filteredValue) {\n if (!this.dt.isSelected(rowData)) {\n return false;\n }\n }\n return true;\n }\n }\n\n}\n\n@Directive({\n selector: '[pReorderableRowHandle]'\n})\nexport class ReorderableRowHandle implements AfterViewInit {\n\n @Input(\"pReorderableRowHandle\") index: number;\n\n constructor(public el: ElementRef) {}\n\n ngAfterViewInit() {\n DomHandler.addClass(this.el.nativeElement, 'p-datatable-reorderablerow-handle');\n }\n}\n\n@Directive({\n selector: '[pReorderableRow]'\n})\nexport class ReorderableRow implements AfterViewInit {\n\n @Input(\"pReorderableRow\") index: number;\n\n @Input() pReorderableRowDisabled: boolean;\n\n mouseDownListener: any;\n\n dragStartListener: any;\n\n dragEndListener: any;\n\n dragOverListener: any;\n\n dragLeaveListener: any;\n\n dropListener: any;\n\n constructor(public dt: Table, public el: ElementRef, public zone: NgZone) {}\n\n ngAfterViewInit() {\n if (this.isEnabled()) {\n this.el.nativeElement.droppable = true;\n this.bindEvents();\n }\n }\n\n bindEvents() {\n this.zone.runOutsideAngular(() => {\n this.mouseDownListener = this.onMouseDown.bind(this);\n this.el.nativeElement.addEventListener('mousedown', this.mouseDownListener);\n\n this.dragStartListener = this.onDragStart.bind(this);\n this.el.nativeElement.addEventListener('dragstart', this.dragStartListener);\n\n this.dragEndListener = this.onDragEnd.bind(this);\n this.el.nativeElement.addEventListener('dragend', this.dragEndListener);\n\n this.dragOverListener = this.onDragOver.bind(this);\n this.el.nativeElement.addEventListener('dragover', this.dragOverListener);\n\n this.dragLeaveListener = this.onDragLeave.bind(this);\n this.el.nativeElement.addEventListener('dragleave', this.dragLeaveListener);\n });\n }\n\n unbindEvents() {\n if (this.mouseDownListener) {\n document.removeEventListener('mousedown', this.mouseDownListener);\n this.mouseDownListener = null;\n }\n\n if (this.dragStartListener) {\n document.removeEventListener('dragstart', this.dragStartListener);\n this.dragStartListener = null;\n }\n\n if (this.dragEndListener) {\n document.removeEventListener('dragend', this.dragEndListener);\n this.dragEndListener = null;\n }\n\n if (this.dragOverListener) {\n document.removeEventListener('dragover', this.dragOverListener);\n this.dragOverListener = null;\n }\n\n if (this.dragLeaveListener) {\n document.removeEventListener('dragleave', this.dragLeaveListener);\n this.dragLeaveListener = null;\n }\n }\n\n onMouseDown(event) {\n if (DomHandler.hasClass(event.target, 'p-datatable-reorderablerow-handle'))\n this.el.nativeElement.draggable = true;\n else\n this.el.nativeElement.draggable = false;\n }\n\n onDragStart(event) {\n this.dt.onRowDragStart(event, this.index);\n }\n\n onDragEnd(event) {\n this.dt.onRowDragEnd(event);\n this.el.nativeElement.draggable = false;\n }\n\n onDragOver(event) {\n this.dt.onRowDragOver(event, this.index, this.el.nativeElement);\n event.preventDefault();\n }\n\n onDragLeave(event) {\n this.dt.onRowDragLeave(event, this.el.nativeElement);\n }\n\n isEnabled() {\n return this.pReorderableRowDisabled !== true;\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event) {\n if (this.isEnabled() && this.dt.rowDragging) {\n this.dt.onRowDrop(event, this.el.nativeElement);\n }\n\n event.preventDefault()\n }\n}\n\n@Component({\n selector: 'p-columnFilterFormElement',\n template: `\n <ng-container *ngIf=\"filterTemplate; else builtInElement\">\n <ng-container *ngTemplateOutlet=\"filterTemplate; context: {$implicit: filterConstraint.value, filterCallback: filterCallback}\"></ng-container>\n </ng-container>\n <ng-template #builtInElement>\n <ng-container [ngSwitch]=\"type\">\n <input *ngSwitchCase=\"'text'\" type=\"text\" pInputText [value]=\"filterConstraint?.value\" (input)=\"onModelChange($event.target.value)\"\n (keydown.enter)=\"onTextInputEnterKeyDown($event)\" [attr.placeholder]=\"placeholder\">\n <p-inputNumber *ngSwitchCase=\"'numeric'\" [ngModel]=\"filterConstraint?.value\" (ngModelChange)=\"onModelChange($event)\" (onKeyDown)=\"onNumericInputKeyDown($event)\" [showButtons]=\"true\" [attr.placeholder]=\"placeholder\"\n [minFractionDigits]=\"minFractionDigits\" [maxFractionDigits]=\"maxFractionDigits\" [prefix]=\"prefix\" [suffix]=\"suffix\" [placeholder]=\"placeholder\"\n [mode]=\"currency ? 'currency' : 'decimal'\" [locale]=\"locale\" [localeMatcher]=\"localeMatcher\" [currency]=\"currency\" [currencyDisplay]=\"currencyDisplay\" [useGrouping]=\"useGrouping\"></p-inputNumber>\n <p-triStateCheckbox *ngSwitchCase=\"'boolean'\" [ngModel]=\"filterConstraint?.value\" (ngModelChange)=\"onModelChange($event)\"></p-triStateCheckbox>\n <p-calendar *ngSwitchCase=\"'date'\" [ngModel]=\"filterConstraint?.value\" (ngModelChange)=\"onModelChange($event)\"></p-calendar>\n </ng-container>\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class ColumnFilterFormElement implements OnInit {\n\n @Input() field: string;\n\n @Input() type: string;\n\n @Input() filterConstraint: FilterMetadata;\n\n @Input() filterTemplate: TemplateRef<any>;\n\n @Input() placeholder: string;\n\n @Input() minFractionDigits: number\n\n @Input() maxFractionDigits: number;\n\n @Input() prefix: string;\n\n @Input() suffix: string;\n\n @Input() locale: string;\n\n @Input() localeMatcher: string;\n\n @Input() currency: string;\n\n @Input() currencyDisplay: string;\n\n @Input() useGrouping: boolean = true;\n\n filterCallback: Function;\n\n constructor(public dt: Table) {}\n\n ngOnInit() {\n this.filterCallback = value => {\n this.filterConstraint.value = value;\n this.dt._filter();\n };\n }\n\n onModelChange(value: any) {\n this.filterConstraint.value = value;\n\n if (this.type === 'boolean' || value === '') {\n this.dt._filter();\n }\n }\n\n onTextInputEnterKeyDown(event: KeyboardEvent) {\n this.dt._filter();\n event.preventDefault();\n }\n\n onNumericInputKeyDown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n this.dt._filter();\n event.preventDefault();\n }\n }\n}\n\n@Component({\n selector: 'p-columnFilter',\n template: `\n <div class=\"p-column-filter\" [ngClass]=\"{'p-column-filter-row': display === 'row', 'p-column-filter-menu': display === 'menu'}\">\n <p-columnFilterFormElement *ngIf=\"display === 'row'\" class=\"p-fluid\" [type]=\"type\" [field]=\"field\" [filterConstraint]=\"dt.filters[field]\" [filterTemplate]=\"filterTemplate\" [placeholder]=\"placeholder\" [minFractionDigits]=\"minFractionDigits\" [maxFractionDigits]=\"maxFractionDigits\" [prefix]=\"prefix\" [suffix]=\"suffix\"\n [locale]=\"locale\" [localeMatcher]=\"localeMatcher\" [currency]=\"currency\" [currencyDisplay]=\"currencyDisplay\" [useGrouping]=\"useGrouping\"></p-columnFilterFormElement>\n <button #icon *ngIf=\"showMenuButton\" type=\"button\" class=\"p-column-filter-menu-button p-link\" aria-haspopup=\"true\" [attr.aria-expanded]=\"overlayVisible\"\n [ngClass]=\"{'p-column-filter-menu-button-open': overlayVisible, 'p-column-filter-menu-button-active': hasFilter()}\"\n (click)=\"toggleMenu()\" (keydown)=\"onToggleButtonKeyDown($event)\"><span class=\"pi pi-filter-icon pi-filter\"></span></button>\n <button #icon *ngIf=\"showMenuButton && display === 'row'\" [ngClass]=\"{'p-hidden-space': !hasRowFilter()}\" type=\"button\" class=\"p-column-filter-clear-button p-link\" (click)=\"clearFilter()\"><span class=\"pi pi-filter-slash\"></span></button>\n <div *ngIf=\"showMenu && overlayVisible\" [ngClass]=\"{'p-column-filter-overlay p-component p-fluid': true, 'p-column-filter-overlay-menu': display === 'menu'}\"\n [@overlayAnimation]=\"'visible'\" (@overlayAnimation.start)=\"onOverlayAnimationStart($event)\" (keydown.escape)=\"onEscape()\">\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: {$implicit: field}\"></ng-container>\n <ul *ngIf=\"display === 'row'; else menu\" class=\"p-column-filter-row-items\">\n <li class=\"p-column-filter-row-item\" *ngFor=\"let matchMode of matchModes; let i = index;\" (click)=\"onRowMatchModeChange(matchMode.value)\" (keydown)=\"onRowMatchModeKeyDown($event)\" (keydown.enter)=\"this.onRowMatchModeChange(matchMode.value)\"\n [ngClass]=\"{'p-highlight': isRowMatchModeSelected(matchMode.value)}\" [attr.tabindex]=\"i === 0 ? '0' : null\">{{matchMode.label}}</li>\n <li class=\"p-column-filter-separator\"></li>\n <li class=\"p-column-filter-row-item\" (click)=\"onRowClearItemClick()\" (keydown)=\"onRowMatchModeKeyDown($event)\" (keydown.enter)=\"onRowClearItemClick()\">{{noFilterLabel}}</li>\n </ul>\n <ng-template #menu>\n <div class=\"p-column-filter-operator\" *ngIf=\"isShowOperator\">\n <p-dropdown [options]=\"operatorOptions\" [ngModel]=\"operator\" (ngModelChange)=\"onOperatorChange($event)\" styleClass=\"p-column-filter-operator-dropdown\"></p-dropdown>\n </div>\n <div class=\"p-column-filter-constraints\">\n <div *ngFor=\"let fieldConstraint of fieldConstraints; let i = index\" class=\"p-column-filter-constraint\">\n <p-dropdown *ngIf=\"showMatchModes && matchModes\" [options]=\"matchModes\" [ngModel]=\"fieldConstraint.matchMode\" (ngModelChange)=\"onMenuMatchModeChange($event, fieldConstraint)\" styleClass=\"p-column-filter-matchmode-dropdown\"></p-dropdown>\n <p-columnFilterFormElement [type]=\"type\" [field]=\"field\" [filterConstraint]=\"fieldConstraint\" [filterTemplate]=\"filterTemplate\" [placeholder]=\"placeholder\"\n [minFractionDigits]=\"minFractionDigits\" [maxFractionDigits]=\"maxFractionDigits\" [prefix]=\"prefix\" [suffix]=\"suffix\"\n [locale]=\"locale\" [localeMatcher]=\"localeMatcher\" [currency]=\"currency\" [currencyDisplay]=\"currencyDisplay\" [useGrouping]=\"useGrouping\"></p-columnFilterFormElement>\n <div>\n <button *ngIf=\"showRemoveIcon\" type=\"button\" pButton icon=\"pi pi-trash\" class=\"p-column-filter-remove-button p-button-text p-button-danger p-button-sm\" (click)=\"removeConstraint(fieldConstraint)\" pRipple [label]=\"removeRuleButtonLabel\"></button>\n </div>\n </div>\n </div>\n <div class=\"p-column-filter-add-rule\" *ngIf=\"isShowAddConstraint\">\n <button type=\"button\" pButton [label]=\"addRuleButtonLabel\" icon=\"pi pi-plus\" class=\"p-column-filter-add-button p-button-text p-button-sm\" (click)=\"addConstraint()\" pRipple></button>\n </div>\n <div class=\"p-column-filter-buttonbar\">\n <button *ngIf=\"showClearButton\" type=\"button\" pButton class=\"p-button-outlined\" (click)=\"clearFilter()\" [label]=\"clearButtonLabel\" pRipple></button>\n <button *ngIf=\"showApplyButton\" type=\"button\" pButton (click)=\"applyFilter()\" [label]=\"applyButtonLabel\" pRipple></button>\n </div>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: {$implicit: field}\"></ng-container>\n </div>\n </div>\n `,\n animations: [\n trigger('overlayAnimation', [\n transition(':enter', [\n style({opacity: 0, transform: 'scaleY(0.8)'}),\n animate('.12s cubic-bezier(0, 0, 0.2, 1)')\n ]),\n transition(':leave', [\n animate('.1s linear', style({ opacity: 0 }))\n ])\n ])\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class ColumnFilter implements AfterContentInit {\n\n @Input() field: string;\n\n @Input() type: string = 'text';\n\n @Input() display: string = 'row';\n\n @Input() showMenu: boolean = true;\n\n @Input() matchMode: string;\n\n @Input() operator: string = FilterOperator.AND;\n\n @Input() showOperator: boolean = true;\n\n @Input() showClearButton: boolean = true;\n\n @Input() showApplyButton: boolean = true;\n\n @Input() showMatchModes: boolean = true;\n\n @Input() showAddButton: boolean = true;\n\n @Input() hideOnClear: boolean = false;\n\n @Input() placeholder: string;\n\n @Input() matchModeOptions: SelectItem[];\n\n @Input() maxConstraints: number = 2;\n\n @Input() minFractionDigits: number;\n\n @Input() maxFractionDigits: number;\n\n @Input() prefix: string;\n\n @Input() suffix: string;\n\n @Input() locale: string;\n\n @Input() localeMatcher: string;\n\n @Input() currency: string;\n\n @Input() currencyDisplay: string;\n\n @Input() useGrouping: boolean = true;\n\n @ViewChild('icon') icon: ElementRef;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n constructor(public el: ElementRef, public dt: Table, public renderer: Renderer2, public config: PrimeNGConfig) {}\n\n headerTemplate: TemplateRef<any>;\n\n filterTemplate: TemplateRef<any>;\n\n footerTemplate: TemplateRef<any>;\n\n operatorOptions: any[];\n\n overlayVisible: boolean;\n\n overlay: HTMLElement;\n\n scrollHandler: any;\n\n documentClickListener: any;\n\n documentResizeListener: any;\n\n matchModes: SelectItem[];\n\n translationSubscription: Subscription;\n\n resetSubscription: Subscription;\n\n ngOnInit() {\n if (!this.dt.filters[this.field]) {\n this.initFieldFilterConstraint();\n }\n\n this.translationSubscription = this.config.translationObserver.subscribe(() => {\n this.generateMatchModeOptions();\n this.generateOperatorOptions();\n });\n\n this.resetSubscription = this.dt.tableService.resetSource$.subscribe(() => {\n this.clearFilter();\n })\n\n this.generateMatchModeOptions();\n this.generateOperatorOptions();\n }\n\n generateMatchModeOptions() {\n this.matchModes = this.matchModeOptions ||\n this.config.filterMatchModeOptions[this.type]?.map(key => {\n return {label: this.config.getTranslation(key), value: key}\n });\n }\n\n generateOperatorOptions() {\n this.operatorOptions = [\n {label: this.config.getTranslation(TranslationKeys.MATCH_ALL), value: FilterOperator.AND},\n {label: this.config.getTranslation(TranslationKeys.MATCH_ANY), value: FilterOperator.OR}\n ];\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'filter':\n this.filterTemplate = item.template;\n break;\n\n case 'footer':\n this.footerTemplate = item.template;\n break;\n\n default:\n this.filterTemplate = item.template;\n break;\n }\n });\n }\n\n initFieldFilterConstraint() {\n let defaultMatchMode = this.getDefaultMatchMode();\n this.dt.filters[this.field] = this.display == 'row' ? {value: null, matchMode: defaultMatchMode} : [{value: null, matchMode: defaultMatchMode, operator: this.operator}];\n }\n\n onMenuMatchModeChange(value: any, filterMeta: FilterMetadata) {\n filterMeta.matchMode = value;\n\n if (!this.showApplyButton) {\n this.dt._filter();\n }\n }\n\n onRowMatchModeChange(matchMode: string) {\n (<FilterMetadata> this.dt.filters[this.field]).matchMode = matchMode;\n this.dt._filter();\n this.hide();\n }\n\n onRowMatchModeKeyDown(event: KeyboardEvent) {\n let item = <HTMLLIElement> event.target;\n\n switch(event.key) {\n case 'ArrowDown':\n var nextItem = this.findNextItem(item);\n if (nextItem) {\n item.removeAttribute('tabindex');\n nextItem.tabIndex = '0';\n nextItem.focus();\n }\n\n event.preventDefault();\n break;\n\n case 'ArrowUp':\n var prevItem = this.findPrevItem(item);\n if (prevItem) {\n item.removeAttribute('tabindex');\n prevItem.tabIndex = '0';\n prevItem.focus();\n }\n\n event.preventDefault();\n break;\n }\n }\n\n onRowClearItemClick() {\n this.clearFilter();\n this.hide();\n }\n\n isRowMatchModeSelected(matchMode: string) {\n return (<FilterMetadata> this.dt.filters[this.field]).matchMode === matchMode;\n }\n\n addConstraint() {\n (<FilterMetadata[]> this.dt.filters[this.field]).push({value: null, matchMode: this.getDefaultMatchMode(), operator: this.getDefaultOperator()});\n this.dt._filter();\n }\n\n removeConstraint(filterMeta: FilterMetadata) {\n this.dt.filters[this.field] = (<FilterMetadata[]> this.dt.filters[this.field]).filter(meta => meta !== filterMeta);\n this.dt._filter();\n }\n\n onOperatorChange(value) {\n (<FilterMetadata[]> this.dt.filters[this.field]).forEach(filterMeta => {\n filterMeta.operator = value;\n this.operator = value;\n });\n\n if (!this.showApplyButton) {\n this.dt._filter();\n }\n }\n\n toggleMenu() {\n this.overlayVisible = !this.overlayVisible;\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(this.overlay);\n if (focusable) {\n focusable[0].focus();\n }\n event.preventDefault();\n }\n else if (event.altKey) {\n this.overlayVisible = true;\n event.preventDefault();\n }\n break;\n }\n }\n\n onEscape() {\n this.overlayVisible = false;\n this.icon.nativeElement.focus();\n }\n\n findNextItem(item: HTMLLIElement) {\n let nextItem = <HTMLLIElement> item.nextElementSibling;\n\n if (nextItem)\n return DomHandler.hasClass(nextItem, 'p-column-filter-separator') ? this.findNextItem(nextItem) : nextItem;\n else\n return item.parentElement.firstElementChild;\n }\n\n findPrevItem(item: HTMLLIElement) {\n let prevItem = <HTMLLIElement> item.previousElementSibling;\n\n if (prevItem)\n return DomHandler.hasClass(prevItem, 'p-column-filter-separator') ? this.findPrevItem(prevItem) : prevItem;\n else\n return item.parentElement.lastElementChild;\n }\n\n onOverlayAnimationStart(event: AnimationEvent) {\n switch (event.toState) {\n case 'visible':\n this.overlay = event.element;\n\n document.body.appendChild(this.overlay);\n this.overlay.style.zIndex = String(++DomHandler.zindex);\n DomHandler.absolutePosition(this.overlay, this.icon.nativeElement)\n this.bindDocumentClickListener();\n this.bindDocumentResizeListener();\n this.bindScrollListener();\n break;\n\n case 'void':\n this.onOverlayHide();\n break;\n }\n }\n\n getDefaultMatchMode(): string {\n if (this.matchMode) {\n return this.matchMode;\n }\n else {\n if (this.type === 'text')\n return FilterMatchMode.STARTS_WITH;\n else if (this.type === 'numeric')\n return FilterMatchMode.EQUALS;\n else if (this.type === 'date')\n return FilterMatchMode.DATE_IS;\n else\n return FilterMatchMode.CONTAINS;\n }\n }\n\n getDefaultOperator(): string {\n return this.dt.filters ? (<FilterMetadata[]> this.dt.filters[this.field])[0].operator: this.operator;\n }\n\n hasRowFilter() {\n return this.dt.filters[this.field] && !this.dt.isFilterBlank((<FilterMetadata>this.dt.filters[this.field]).value);\n }\n\n get fieldConstraints(): FilterMetadata[] {\n return this.dt.filters ? <FilterMetadata[]> this.dt.filters[this.field] : null;\n }\n\n get showRemoveIcon(): boolean {\n return this.fieldConstraints ? this.fieldConstraints.length > 1 : false;\n }\n\n get showMenuButton(): boolean {\n return this.showMenu && (this.display === 'row' ? this.type !== 'boolean': true);\n }\n\n get isShowOperator(): boolean {\n return this.showOperator && this.type !== 'boolean';\n }\n\n get isShowAddConstraint(): boolean {\n return this.showAddButton && this.type !== 'boolean' && (this.fieldConstraints && this.fieldConstraints.length < this.maxConstraints);\n }\n\n get applyButtonLabel(): string {\n return this.config.getTranslation(TranslationKeys.APPLY);\n }\n\n get clearButtonLabel(): string {\n return this.config.getTranslation(TranslationKeys.CLEAR);\n }\n\n get addRuleButtonLabel(): string {\n return this.config.getTranslation(TranslationKeys.ADD_RULE);\n }\n\n get removeRuleButtonLabel(): string {\n return this.config.getTranslation(TranslationKeys.REMOVE_RULE);\n }\n\n get noFilterLabel(): string {\n return this.config.getTranslation(TranslationKeys.NO_FILTER);\n }\n\n hasFilter(): boolean {\n let fieldFilter = this.dt.filters[this.field];\n if (fieldFilter) {\n if (Array.isArray(fieldFilter))\n return !this.dt.isFilterBlank((<FilterMetadata[]> fieldFilter)[0].value);\n else\n return !this.dt.isFilterBlank(fieldFilter.value);\n }\n\n return false;\n }\n\n isOutsideClicked(event): boolean {\n return !(this.overlay.isSameNode(event.target) || this.overlay.contains(event.target)\n || this.icon.nativeElement.isSameNode(event.target) || this.icon.nativeElement.contains(event.target)\n || DomHandler.hasClass(event.target, 'p-column-filter-add-button') || DomHandler.hasClass(event.target.parentElement, 'p-column-filter-add-button')\n || DomHandler.hasClass(event.target, 'p-column-filter-remove-button') || DomHandler.hasClass(event.target.parentElement, 'p-column-filter-remove-button'));\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 if (this.isOutsideClicked(event)) {\n this.hide();\n }\n });\n }\n }\n\n unbindDocumentClickListener() {\n if (this.documentClickListener) {\n this.documentClickListener();\n this.documentClickListener = null;\n }\n }\n\n bindDocumentResizeListener() {\n this.documentResizeListener = () => this.hide();\n window.addEventListener('resize', this.documentResizeListener);\n }\n\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', 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\n onOverlayHide() {\n this.unbindDocumentClickListener();\n this.unbindDocumentResizeListener();\n this.unbindScrollListener();\n this.overlay = null;\n }\n\n clearFilter() {\n this.initFieldFilterConstraint();\n this.dt._filter();\n if (this.hideOnClear)\n this.hide();\n }\n\n applyFilter() {\n this.dt._filter();\n this.hide();\n }\n\n ngOnDestroy() {\n if (this.overlay) {\n this.el.nativeElement.appendChild(this.overlay);\n this.onOverlayHide();\n }\n\n if (this.translationSubscription) {\n this.translationSubscription.unsubscribe();\n }\n\n if (this.resetSubscription) {\n this.resetSubscription.unsubscribe();\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule,PaginatorModule,InputTextModule,DropdownModule,ScrollingModule,FormsModule,ButtonModule,SelectButtonModule,CalendarModule,InputNumberModule,TriStateCheckboxModule],\n exports: [Table,SharedModule,SortableColumn,SelectableRow,RowToggler,ContextMenuRow,ResizableColumn,ReorderableColumn,EditableColumn,CellEditor,SortIcon,\n TableRadioButton,TableCheckbox,TableHeaderCheckbox,ReorderableRowHandle,ReorderableRow,SelectableRowDblClick,EditableRow,InitEditableRow,SaveEditableRow,CancelEditableRow,ScrollingModule,ColumnFilter],\n declarations: [Table,SortableColumn,SelectableRow,RowToggler,ContextMenuRow,ResizableColumn,ReorderableColumn,EditableColumn,CellEditor,TableBody,ScrollableView,SortIcon,\n TableRadioButton,TableCheckbox,TableHeaderCheckbox,ReorderableRowHandle,ReorderableRow,SelectableRowDblClick,EditableRow,InitEditableRow,SaveEditableRow,CancelEditableRow,ColumnFilter,ColumnFilterFormElement]\n})\nexport class TableModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["Subject","Injectable","EventEmitter","ObjectUtils","DomHandler","FilterOperator","FilterMatchMode","PrimeTemplate","Component","ChangeDetectionStrategy","ViewEncapsulation","Input","Output","ViewChild","ContentChildren","CdkVirtualScrollViewport","Directive","HostListener","Optional","TranslationKeys","ConnectedOverlayScrollHandler","trigger","transition","style","animate","CommonModule","PaginatorModule","InputTextModule","DropdownModule","ScrollingModule","FormsModule","ButtonModule","SelectButtonModule","CalendarModule","InputNumberModule","TriStateCheckboxModule","SharedModule","NgModule"],"mappings":"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"}