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 +0,0 @@
1
- {"version":3,"sources":["../../node_modules/tslib/tslib.es6.js","../../src/app/components/table/table.ts"],"names":["Object","create","__values","o","s","Symbol","iterator","m","i","call","length","next","value","done","TypeError","__read","n","r","e","ar","push","error","__spread","arguments","concat","TableService","this","sortSource","Subject","selectionSource","contextMenuSource","valueSource","totalRecordsSource","columnsSource","resetSource","sortSource$","asObservable","selectionSource$","contextMenuSource$","valueSource$","totalRecordsSource$","columnsSource$","resetSource$","prototype","onSort","sortMeta","onSelectionChange","onResetChange","onContextMenu","data","onValueChange","onTotalRecordsChange","onColumnsChange","columns","Injectable","Table","el","zone","tableService","cd","filterService","pageLinks","alwaysShowPaginator","paginatorPosition","paginatorDropdownScrollHeight","currentPageReportTemplate","showFirstLastIcon","showPageLinks","defaultSortOrder","sortMode","resetPageOnSort","selectionChange","EventEmitter","contextMenuSelectionChange","contextMenuSelectionMode","rowTrackBy","index","item","lazy","lazyLoadOnInit","compareSelectionBy","csvSeparator","exportFilename","filters","filterDelay","expandedRowKeys","editingRowKeys","rowExpandMode","virtualScrollDelay","virtualRowHeight","columnResizeMode","loadingIcon","showLoader","showInitialSortBadge","stateStorage","editMode","onRowSelect","onRowUnselect","onPage","onFilter","onLazyLoad","onRowExpand","onRowCollapse","onContextMenuSelect","onColResize","onColReorder","onRowReorder","onEditInit","onEditComplete","onEditCancel","onHeaderCheckboxToggle","sortFunction","firstChange","rowsChange","onStateSave","onStateRestore","_value","_totalRecords","_first","selectionKeys","_sortOrder","ngOnInit","virtualScroll","emit","createLazyLoadMetadata","restoringFilter","initialized","ngAfterContentInit","_this","templates","forEach","getType","captionTemplate","template","headerTemplate","bodyTemplate","loadingBodyTemplate","footerTemplate","summaryTemplate","colGroupTemplate","expandedRowTemplate","frozenRowsTemplate","frozenHeaderTemplate","frozenBodyTemplate","frozenFooterTemplate","frozenColGroupTemplate","frozenExpandedRowTemplate","emptyMessageTemplate","paginatorLeftTemplate","paginatorRightTemplate","paginatorDropdownItemTemplate","ngAfterViewInit","isStateful","resizableColumns","restoreColumnWidths","ngOnChanges","simpleChange","stateRestored","restoreState","currentValue","totalRecords","sortField","sortSingle","multiSortMeta","sortMultiple","hasFilter","_filter","_columns","reorderableColumns","columnOrderStateRestored","restoreColumnOrder","_sortField","sortOrder","_multiSortMeta","selection","_selection","preventSelectionSetterPropagation","updateSelectionKeys","defineProperty","val","cols","_rows","dataKey","Array","isArray","_c","_d","String","ObjectUtils","resolveFieldData","onPageChange","event","first","rows","saveState","anchorRowIndex","scrollable","resetScrollTop","sort","originalEvent","field","metaKey","ctrlKey","getSortMeta","order","restoringSort","customSort","mode","data1","data2","value1","value2","result","localeCompare","multisortField","multisortmeta","isSorted","sorted","handleRowClick","target","targetNode","nodeName","parentNode","parentElement","DomHandler","hasClass","selectionMode","isMultipleSelectionMode","shiftKey","clearSelection","rangeRowIndex","clearSelectionRange","rowIndex","selectRange","rowData","selected","isSelected","metaSelection","rowTouched","metaKeySelection","dataKeyValue","isSingleSelectionMode","selectionIndex_1","findIndexInSelection","filter","type","selectionIndex_2","handleRowTouchEnd","handleRowRightClick","contextMenu","contextMenuSelection","show","rangeStart","rangeEnd","paginator","rangeRowsData","rangeRowData","filteredValue","this_1","selectionIndex","undefined","equals","toggleRowWithRadio","toggleRowWithCheckbox","selectionIndex_3","toggleRowsWithCheckbox","check","slice","checked","matchMode","filterTimeout","clearTimeout","isFilterBlank","setTimeout","filterGlobal","trim","globalFilterFieldsArray","globalFilterFields","Error","localMatch","globalMatch","localFiltered","prop","hasOwnProperty","filterField","filterMeta","filterMeta_1","e_2","filterMeta_1_1","meta","executeLocalFilter","operator","FilterOperator","OR","AND","j","globalFilterField","filterLocale","markForCheck","filterValue","filterMatchMode","FilterMatchMode","STARTS_WITH","dataFieldValue","filterConstraint","empty","globalFilter","clear","reset","exportCSV","options","csv","frozenColumns","selectionOnly","frozenValue","column","exportable","header","record","i_1","cellData","exportFunction","replace","blob","Blob","window","navigator","msSaveOrOpenBlob","link","document","createElement","style","display","body","appendChild","download","setAttribute","URL","createObjectURL","click","open","encodeURI","removeChild","scrollToVirtualIndex","scrollTo","top","scrollableViewChild","scrollableFrozenViewChild","updateEditingCell","cell","editingCell","editingCellData","editingCellField","editingCellRowIndex","bindDocumentEditListener","isEditingCellValid","find","documentEditListener","editingCellClick","removeClass","unbindDocumentEditListener","addEventListener","removeEventListener","initRowEdit","saveRowEdit","rowElement","cancelRowEdit","toggleRow","preventDefault","isRowExpanded","isRowEditing","onColumnResizeBegin","containerLeft","getOffset","containerViewChild","nativeElement","left","lastResizerHelperX","pageX","scrollLeft","onColumnResize","addClass","resizeHelperViewChild","height","offsetHeight","onColumnResizeEnd","delta","offsetLeft","columnWidth","offsetWidth","minWidth","parseInt","newColumnWidth","nextColumn","nextElementSibling","offsetParent","nextColumnWidth","nextColumnMinWidth","scrollableView","findParentScrollableView","scrollableBodyTable","findSingle","scrollableHeaderTable","scrollableFooterTable","resizeColumnIndex","resizeColGroup","width","setScrollableItemsWidthOnExpandResize","tableViewChild","containerWidth","element","scrollableBody","scrollableHeader","scrollableFooter","scrollableBodyTableWidth","scrollableHeaderTableWidth","isContainerInViewport","setWidth","container","table","calculateScrollbarWidth","parent","colGroup","children","col","nextCol","onColumnDragStart","columnElement","reorderIconWidth","getHiddenElementOuterWidth","reorderIndicatorUpViewChild","reorderIconHeight","getHiddenElementOuterHeight","reorderIndicatorDownViewChild","draggedColumn","dataTransfer","setData","onColumnDragEnter","dropHeader","containerOffset","dropHeaderOffset","dragIndex","indexWithinGroup","dropIndex","targetLeft","columnCenter","Math","ceil","dropPosition","dropEffect","onColumnDragLeave","onColumnDrop","dropColumn","allowDrop","reorderArray","runOutsideAngular","draggable","onRowDragStart","rowDragging","draggedRowIndex","onRowDragOver","rowY","getWindowScrollTop","pageY","rowMidY","getOuterHeight","prevRowElement","previousElementSibling","droppedRowIndex","onRowDragLeave","onRowDragEnd","onRowDrop","isEmpty","getBlockableElement","getStorage","localStorage","sessionStorage","stateKey","storage","state","saveColumnWidths","saveColumnOrder","keys","setItem","JSON","stringify","clearState","removeItem","stateString","getItem","dateFormat","state_1","parse","key","test","Date","columnWidthsState","columnWidths","tableWidthState","tableWidth","Promise","resolve","then","widths","map","getOuterWidth","join","widths_1","split","headerCols","bodyCols","columnOrder_1","columnOrder","reorderedColumns_1","findColumnByKey","ngOnDestroy","Component","args","selector","providers","changeDetection","ChangeDetectionStrategy","Default","encapsulation","ViewEncapsulation","None","ElementRef","NgZone","ChangeDetectorRef","FilterService","Input","Output","ViewChild","ContentChildren","PrimeTemplate","TableBody","dt","subscription","subscribe","detectChanges","unsubscribe","ScrollableView","_scrollHeight","includes","console","log","virtualScrollBody","frozen","scrollableAlignerViewChild","calculateScrollbarHeight","frozenView","frozenSiblingBody","scrollBarWidth","scrollHeaderBoxViewChild","paddingRight","scrollFooterBoxViewChild","bindEvents","scrollHeaderViewChild","headerScrollListener","onHeaderScroll","bind","scrollFooterViewChild","footerScrollListener","onFooterScroll","bodyScrollListener","onBodyScroll","getElementRef","scrollBodyViewChild","unbindEvents","preventBodyScrollPropagation","marginLeft","scrollTop","onScrollIndexChange","virtualScrollTimeout","page","floor","virtualScrollOffset","virtualScrollChunkSize","virtualPage","getPageCount","dataToRender","dataLength","scrollToIndex","CdkVirtualScrollViewport","SortableColumn","isEnabled","updateSortState","onClick","isFilterElement","onEnterKey","pSortableColumnDisabled","Directive","host","[class.p-sortable-column]","[class.p-highlight]","[attr.tabindex]","[attr.role]","[attr.aria-sort]","HostListener","SortIcon","getMultiSortMetaIndex","isMultiSorted","OnPush","SelectableRow","onTouchEnd","onArrowDownKeyDown","row","currentTarget","nextRow","findNextSelectableRow","focus","onArrowUpKeyDown","prevRow","findPrevSelectableRow","onEnterKeyDown","onPageDownKeyDown","onSpaceKeydown","pSelectableRowDisabled","[class.p-selectable-row]","SelectableRowDblClick","ContextMenuRow","pContextMenuRowDisabled","[class.p-highlight-contextmenu]","RowToggler","pRowTogglerDisabled","ResizableColumn","resizer","className","resizerMouseDownListener","onMouseDown","bindDocumentEvents","documentMouseMoveListener","onDocumentMouseMove","documentMouseUpListener","onDocumentMouseUp","unbindDocumentEvents","which","pResizableColumnDisabled","ReorderableColumn","mouseDownListener","dragStartListener","onDragStart","dragOverListener","onDragEnter","dragEnterListener","dragLeaveListener","onDragLeave","onDragOver","onDrop","pReorderableColumnDisabled","EditableColumn","closeEditingCell","openCell","focusCellSelector","pFocusCellSelector","focusableElement","completed","onEscapeKeyDown","onShiftKeyDown","moveToPreviousCell","moveToNextCell","onArrowDown","currentCell","findCell","cellIndex","targetCell","findNextEditableColumnByIndex","invokeElementMethod","onArrowUp","findPrevEditableColumnByIndex","onArrowLeft","onArrowRight","findPreviousEditableColumn","findNextEditableColumn","prevCell","previousRow","lastElementChild","nextCell","firstElementChild","pEditableColumnDisabled","EditableRow","pEditableRowDisabled","InitEditableRow","editableRow","SaveEditableRow","CancelEditableRow","CellEditor","editableColumn","inputTemplate","outputTemplate","decorators","Optional","TableRadioButton","disabled","onFocus","boxViewChild","onBlur","TableCheckbox","TableHeaderCheckbox","valueChangeSubscription","updateCheckedState","selectionChangeSubscription","isDisabled","isAllFilteredValuesChecked","ReorderableRowHandle","ReorderableRow","droppable","dragEndListener","onDragEnd","pReorderableRowDisabled","ColumnFilterFormElement","useGrouping","filterCallback","onModelChange","onTextInputEnterKeyDown","onNumericInputKeyDown","ColumnFilter","renderer","config","showMenu","showOperator","showClearButton","showApplyButton","showMatchModes","showAddButton","hideOnClear","maxConstraints","initFieldFilterConstraint","translationSubscription","translationObserver","generateMatchModeOptions","generateOperatorOptions","resetSubscription","clearFilter","matchModes","matchModeOptions","_a","filterMatchModeOptions","label","getTranslation","operatorOptions","TranslationKeys","MATCH_ALL","MATCH_ANY","filterTemplate","defaultMatchMode","getDefaultMatchMode","onMenuMatchModeChange","onRowMatchModeChange","hide","onRowMatchModeKeyDown","nextItem","findNextItem","removeAttribute","tabIndex","prevItem","findPrevItem","onRowClearItemClick","isRowMatchModeSelected","addConstraint","getDefaultOperator","removeConstraint","onOperatorChange","toggleMenu","overlayVisible","onToggleButtonKeyDown","focusable","getFocusableElements","overlay","altKey","onEscape","icon","onOverlayAnimationStart","toState","zIndex","zindex","absolutePosition","bindDocumentClickListener","bindDocumentResizeListener","bindScrollListener","onOverlayHide","EQUALS","DATE_IS","CONTAINS","hasRowFilter","fieldConstraints","APPLY","CLEAR","ADD_RULE","REMOVE_RULE","NO_FILTER","fieldFilter","isOutsideClicked","isSameNode","contains","documentClickListener","documentTarget","ownerDocument","listen","unbindDocumentClickListener","documentResizeListener","unbindDocumentResizeListener","scrollHandler","ConnectedOverlayScrollHandler","unbindScrollListener","applyFilter","animations","trigger","transition","opacity","transform","animate","Renderer2","PrimeNGConfig","NgModule","imports","CommonModule","PaginatorModule","InputTextModule","DropdownModule","ScrollingModule","FormsModule","ButtonModule","SelectButtonModule","CalendarModule","InputNumberModule","TriStateCheckboxModule","exports","SharedModule","declarations"],"mappings":"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","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 { }"]}