primeng 11.4.4 → 12.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1281) hide show
  1. package/README.md +1 -1
  2. package/accordion/accordion.d.ts +10 -0
  3. package/accordion/package.json +1 -2
  4. package/accordion/primeng-accordion.d.ts +1 -0
  5. package/api/confirmationservice.d.ts +3 -0
  6. package/api/contextmenuservice.d.ts +3 -0
  7. package/api/filterservice.d.ts +3 -0
  8. package/api/menuitem.d.ts +2 -0
  9. package/api/message.d.ts +1 -1
  10. package/api/messageservice.d.ts +3 -0
  11. package/api/package.json +1 -2
  12. package/api/primeng-api.d.ts +1 -0
  13. package/api/primengconfig.d.ts +3 -0
  14. package/api/shared.d.ts +11 -0
  15. package/api/treedragdropservice.d.ts +3 -0
  16. package/autocomplete/autocomplete.d.ts +12 -0
  17. package/autocomplete/package.json +1 -2
  18. package/autocomplete/primeng-autocomplete.d.ts +1 -0
  19. package/avatar/avatar.d.ts +7 -0
  20. package/avatar/package.json +1 -2
  21. package/avatar/primeng-avatar.d.ts +1 -0
  22. package/avatargroup/avatargroup.d.ts +7 -0
  23. package/avatargroup/package.json +1 -2
  24. package/avatargroup/primeng-avatargroup.d.ts +1 -0
  25. package/badge/badge.d.ts +10 -0
  26. package/badge/package.json +1 -2
  27. package/badge/primeng-badge.d.ts +1 -0
  28. package/blockui/blockui.d.ts +7 -0
  29. package/blockui/package.json +1 -2
  30. package/blockui/primeng-blockui.d.ts +1 -0
  31. package/breadcrumb/breadcrumb.d.ts +8 -0
  32. package/breadcrumb/package.json +1 -2
  33. package/breadcrumb/primeng-breadcrumb.d.ts +1 -0
  34. package/bundles/primeng-accordion.umd.js +130 -71
  35. package/bundles/primeng-accordion.umd.js.map +1 -1
  36. package/bundles/primeng-api.umd.js +98 -52
  37. package/bundles/primeng-api.umd.js.map +1 -1
  38. package/bundles/primeng-autocomplete.umd.js +223 -118
  39. package/bundles/primeng-autocomplete.umd.js.map +1 -1
  40. package/bundles/primeng-avatar.umd.js +61 -26
  41. package/bundles/primeng-avatar.umd.js.map +1 -1
  42. package/bundles/primeng-avatargroup.umd.js +51 -21
  43. package/bundles/primeng-avatargroup.umd.js.map +1 -1
  44. package/bundles/primeng-badge.umd.js +72 -38
  45. package/bundles/primeng-badge.umd.js.map +1 -1
  46. package/bundles/primeng-blockui.umd.js +63 -30
  47. package/bundles/primeng-blockui.umd.js.map +1 -1
  48. package/bundles/primeng-breadcrumb.umd.js +59 -25
  49. package/bundles/primeng-breadcrumb.umd.js.map +1 -1
  50. package/bundles/primeng-button.umd.js +100 -51
  51. package/bundles/primeng-button.umd.js.map +1 -1
  52. package/bundles/primeng-calendar.umd.js +277 -150
  53. package/bundles/primeng-calendar.umd.js.map +1 -1
  54. package/bundles/primeng-captcha.umd.js +65 -34
  55. package/bundles/primeng-captcha.umd.js.map +1 -1
  56. package/bundles/primeng-card.umd.js +64 -29
  57. package/bundles/primeng-card.umd.js.map +1 -1
  58. package/bundles/primeng-carousel.umd.js +102 -51
  59. package/bundles/primeng-carousel.umd.js.map +1 -1
  60. package/bundles/primeng-cascadeselect.umd.js +176 -100
  61. package/bundles/primeng-cascadeselect.umd.js.map +1 -1
  62. package/bundles/primeng-chart.umd.js +41 -30
  63. package/bundles/primeng-chart.umd.js.map +1 -1
  64. package/bundles/primeng-checkbox.umd.js +88 -44
  65. package/bundles/primeng-checkbox.umd.js.map +1 -1
  66. package/bundles/primeng-chip.umd.js +64 -28
  67. package/bundles/primeng-chip.umd.js.map +1 -1
  68. package/bundles/primeng-chips.umd.js +106 -58
  69. package/bundles/primeng-chips.umd.js.map +1 -1
  70. package/bundles/primeng-codehighlighter.umd.js +42 -16
  71. package/bundles/primeng-codehighlighter.umd.js.map +1 -1
  72. package/bundles/primeng-colorpicker.umd.js +132 -69
  73. package/bundles/primeng-colorpicker.umd.js.map +1 -1
  74. package/bundles/primeng-confirmdialog.umd.js +151 -81
  75. package/bundles/primeng-confirmdialog.umd.js.map +1 -1
  76. package/bundles/primeng-confirmpopup.umd.js +96 -52
  77. package/bundles/primeng-confirmpopup.umd.js.map +1 -1
  78. package/bundles/primeng-contextmenu.umd.js +108 -60
  79. package/bundles/primeng-contextmenu.umd.js.map +1 -1
  80. package/bundles/primeng-dataview.umd.js +141 -79
  81. package/bundles/primeng-dataview.umd.js.map +1 -1
  82. package/bundles/primeng-defer.umd.js +48 -24
  83. package/bundles/primeng-defer.umd.js.map +1 -1
  84. package/bundles/primeng-dialog.umd.js +176 -89
  85. package/bundles/primeng-dialog.umd.js.map +1 -1
  86. package/bundles/primeng-divider.umd.js +57 -24
  87. package/bundles/primeng-divider.umd.js.map +1 -1
  88. package/bundles/primeng-dragdrop.umd.js +99 -54
  89. package/bundles/primeng-dragdrop.umd.js.map +1 -1
  90. package/bundles/primeng-dropdown.umd.js +255 -134
  91. package/bundles/primeng-dropdown.umd.js.map +1 -1
  92. package/bundles/primeng-dynamicdialog.umd.js +84 -55
  93. package/bundles/primeng-dynamicdialog.umd.js.map +1 -1
  94. package/bundles/primeng-editor.umd.js +61 -41
  95. package/bundles/primeng-editor.umd.js.map +1 -1
  96. package/bundles/primeng-fieldset.umd.js +97 -48
  97. package/bundles/primeng-fieldset.umd.js.map +1 -1
  98. package/bundles/primeng-fileupload.umd.js +165 -90
  99. package/bundles/primeng-fileupload.umd.js.map +1 -1
  100. package/bundles/primeng-focustrap.umd.js +50 -20
  101. package/bundles/primeng-focustrap.umd.js.map +1 -1
  102. package/bundles/primeng-fullcalendar.umd.js +54 -25
  103. package/bundles/primeng-fullcalendar.umd.js.map +1 -1
  104. package/bundles/primeng-galleria.umd.js +229 -140
  105. package/bundles/primeng-galleria.umd.js.map +1 -1
  106. package/bundles/primeng-gmap.umd.js +81 -46
  107. package/bundles/primeng-gmap.umd.js.map +1 -1
  108. package/bundles/primeng-inplace.umd.js +89 -46
  109. package/bundles/primeng-inplace.umd.js.map +1 -1
  110. package/bundles/primeng-inputmask.umd.js +115 -61
  111. package/bundles/primeng-inputmask.umd.js.map +1 -1
  112. package/bundles/primeng-inputnumber.umd.js +143 -75
  113. package/bundles/primeng-inputnumber.umd.js.map +1 -1
  114. package/bundles/primeng-inputswitch.umd.js +68 -34
  115. package/bundles/primeng-inputswitch.umd.js.map +1 -1
  116. package/bundles/primeng-inputtext.umd.js +58 -28
  117. package/bundles/primeng-inputtext.umd.js.map +1 -1
  118. package/bundles/primeng-inputtextarea.umd.js +73 -37
  119. package/bundles/primeng-inputtextarea.umd.js.map +1 -1
  120. package/bundles/primeng-keyfilter.umd.js +61 -27
  121. package/bundles/primeng-keyfilter.umd.js.map +1 -1
  122. package/bundles/primeng-knob.umd.js +84 -43
  123. package/bundles/primeng-knob.umd.js.map +1 -1
  124. package/bundles/primeng-lightbox.umd.js +70 -34
  125. package/bundles/primeng-lightbox.umd.js.map +1 -1
  126. package/bundles/primeng-listbox.umd.js +129 -68
  127. package/bundles/primeng-listbox.umd.js.map +1 -1
  128. package/bundles/primeng-megamenu.umd.js +64 -31
  129. package/bundles/primeng-megamenu.umd.js.map +1 -1
  130. package/bundles/primeng-menu.umd.js +114 -61
  131. package/bundles/primeng-menu.umd.js.map +1 -1
  132. package/bundles/primeng-menubar.umd.js +97 -56
  133. package/bundles/primeng-menubar.umd.js.map +1 -1
  134. package/bundles/primeng-message.umd.js +57 -24
  135. package/bundles/primeng-message.umd.js.map +1 -1
  136. package/bundles/primeng-messages.umd.js +101 -49
  137. package/bundles/primeng-messages.umd.js.map +1 -1
  138. package/bundles/primeng-multiselect.umd.js +251 -136
  139. package/bundles/primeng-multiselect.umd.js.map +1 -1
  140. package/bundles/primeng-orderlist.umd.js +107 -55
  141. package/bundles/primeng-orderlist.umd.js.map +1 -1
  142. package/bundles/primeng-organizationchart.umd.js +123 -69
  143. package/bundles/primeng-organizationchart.umd.js.map +1 -1
  144. package/bundles/primeng-overlaypanel.umd.js +112 -58
  145. package/bundles/primeng-overlaypanel.umd.js.map +1 -1
  146. package/bundles/primeng-paginator.umd.js +90 -42
  147. package/bundles/primeng-paginator.umd.js.map +1 -1
  148. package/bundles/primeng-panel.umd.js +116 -57
  149. package/bundles/primeng-panel.umd.js.map +1 -1
  150. package/bundles/primeng-panelmenu.umd.js +126 -69
  151. package/bundles/primeng-panelmenu.umd.js.map +1 -1
  152. package/bundles/primeng-password.umd.js +158 -89
  153. package/bundles/primeng-password.umd.js.map +1 -1
  154. package/bundles/primeng-picklist.umd.js +159 -85
  155. package/bundles/primeng-picklist.umd.js.map +1 -1
  156. package/bundles/primeng-progressbar.umd.js +59 -25
  157. package/bundles/primeng-progressbar.umd.js.map +1 -1
  158. package/bundles/primeng-progressspinner.umd.js +57 -24
  159. package/bundles/primeng-progressspinner.umd.js.map +1 -1
  160. package/bundles/primeng-radiobutton.umd.js +87 -45
  161. package/bundles/primeng-radiobutton.umd.js.map +1 -1
  162. package/bundles/primeng-rating.umd.js +75 -38
  163. package/bundles/primeng-rating.umd.js.map +1 -1
  164. package/bundles/primeng-ripple.umd.js +50 -21
  165. package/bundles/primeng-ripple.umd.js.map +1 -1
  166. package/bundles/primeng-scrollpanel.umd.js +66 -31
  167. package/bundles/primeng-scrollpanel.umd.js.map +1 -1
  168. package/bundles/primeng-scrolltop.umd.js +86 -43
  169. package/bundles/primeng-scrolltop.umd.js.map +1 -1
  170. package/bundles/primeng-selectbutton.umd.js +82 -41
  171. package/bundles/primeng-selectbutton.umd.js.map +1 -1
  172. package/bundles/primeng-sidebar.umd.js +110 -57
  173. package/bundles/primeng-sidebar.umd.js.map +1 -1
  174. package/bundles/primeng-skeleton.umd.js +63 -27
  175. package/bundles/primeng-skeleton.umd.js.map +1 -1
  176. package/bundles/primeng-slidemenu.umd.js +140 -74
  177. package/bundles/primeng-slidemenu.umd.js.map +1 -1
  178. package/bundles/primeng-slider.umd.js +86 -45
  179. package/bundles/primeng-slider.umd.js.map +1 -1
  180. package/bundles/primeng-spinner.umd.js +103 -55
  181. package/bundles/primeng-spinner.umd.js.map +1 -1
  182. package/bundles/primeng-splitbutton.umd.js +92 -40
  183. package/bundles/primeng-splitbutton.umd.js.map +1 -1
  184. package/bundles/primeng-splitter.umd.js +91 -48
  185. package/bundles/primeng-splitter.umd.js.map +1 -1
  186. package/bundles/primeng-steps.umd.js +64 -32
  187. package/bundles/primeng-steps.umd.js.map +1 -1
  188. package/bundles/primeng-styleclass.umd.js +61 -28
  189. package/bundles/primeng-styleclass.umd.js.map +1 -1
  190. package/bundles/primeng-table.umd.js +915 -626
  191. package/bundles/primeng-table.umd.js.map +1 -1
  192. package/bundles/primeng-tabmenu.umd.js +68 -27
  193. package/bundles/primeng-tabmenu.umd.js.map +1 -1
  194. package/bundles/primeng-tabview.umd.js +120 -64
  195. package/bundles/primeng-tabview.umd.js.map +1 -1
  196. package/bundles/primeng-tag.umd.js +59 -25
  197. package/bundles/primeng-tag.umd.js.map +1 -1
  198. package/bundles/primeng-terminal.umd.js +63 -32
  199. package/bundles/primeng-terminal.umd.js.map +1 -1
  200. package/bundles/primeng-tieredmenu.umd.js +121 -70
  201. package/bundles/primeng-tieredmenu.umd.js.map +1 -1
  202. package/bundles/primeng-timeline.umd.js +60 -28
  203. package/bundles/primeng-timeline.umd.js.map +1 -1
  204. package/bundles/primeng-toast.umd.js +165 -89
  205. package/bundles/primeng-toast.umd.js.map +1 -1
  206. package/bundles/primeng-togglebutton.umd.js +74 -36
  207. package/bundles/primeng-togglebutton.umd.js.map +1 -1
  208. package/bundles/primeng-toolbar.umd.js +54 -25
  209. package/bundles/primeng-toolbar.umd.js.map +1 -1
  210. package/bundles/primeng-tooltip.umd.js +68 -31
  211. package/bundles/primeng-tooltip.umd.js.map +1 -1
  212. package/bundles/primeng-tree.umd.js +191 -103
  213. package/bundles/primeng-tree.umd.js.map +1 -1
  214. package/bundles/primeng-treetable.umd.js +547 -394
  215. package/bundles/primeng-treetable.umd.js.map +1 -1
  216. package/bundles/primeng-tristatecheckbox.umd.js +73 -36
  217. package/bundles/primeng-tristatecheckbox.umd.js.map +1 -1
  218. package/bundles/primeng-virtualscroller.umd.js +91 -42
  219. package/bundles/primeng-virtualscroller.umd.js.map +1 -1
  220. package/button/button.d.ts +10 -0
  221. package/button/package.json +1 -2
  222. package/button/primeng-button.d.ts +1 -0
  223. package/calendar/calendar.d.ts +10 -0
  224. package/calendar/package.json +1 -2
  225. package/calendar/primeng-calendar.d.ts +1 -0
  226. package/captcha/captcha.d.ts +7 -0
  227. package/captcha/package.json +1 -2
  228. package/captcha/primeng-captcha.d.ts +1 -0
  229. package/card/card.d.ts +8 -0
  230. package/card/package.json +1 -2
  231. package/card/primeng-card.d.ts +1 -0
  232. package/carousel/carousel.d.ts +9 -0
  233. package/carousel/package.json +1 -2
  234. package/carousel/primeng-carousel.d.ts +1 -0
  235. package/cascadeselect/cascadeselect.d.ts +11 -0
  236. package/cascadeselect/package.json +1 -2
  237. package/cascadeselect/primeng-cascadeselect.d.ts +1 -0
  238. package/chart/chart.d.ts +7 -0
  239. package/chart/package.json +1 -2
  240. package/chart/primeng-chart.d.ts +1 -0
  241. package/checkbox/checkbox.d.ts +7 -0
  242. package/checkbox/package.json +1 -2
  243. package/checkbox/primeng-checkbox.d.ts +1 -0
  244. package/chip/chip.d.ts +7 -0
  245. package/chip/package.json +1 -2
  246. package/chip/primeng-chip.d.ts +1 -0
  247. package/chips/chips.d.ts +9 -0
  248. package/chips/package.json +1 -2
  249. package/chips/primeng-chips.d.ts +1 -0
  250. package/codehighlighter/codehighlighter.d.ts +7 -0
  251. package/codehighlighter/package.json +1 -2
  252. package/codehighlighter/primeng-codehighlighter.d.ts +1 -0
  253. package/colorpicker/colorpicker.d.ts +9 -2
  254. package/colorpicker/package.json +1 -2
  255. package/colorpicker/primeng-colorpicker.d.ts +1 -0
  256. package/confirmdialog/confirmdialog.d.ts +10 -0
  257. package/confirmdialog/package.json +1 -2
  258. package/confirmdialog/primeng-confirmdialog.d.ts +1 -0
  259. package/confirmpopup/confirmpopup.d.ts +8 -0
  260. package/confirmpopup/package.json +1 -2
  261. package/confirmpopup/primeng-confirmpopup.d.ts +1 -0
  262. package/contextmenu/contextmenu.d.ts +11 -0
  263. package/contextmenu/package.json +1 -2
  264. package/contextmenu/primeng-contextmenu.d.ts +1 -0
  265. package/dataview/dataview.d.ts +11 -0
  266. package/dataview/package.json +1 -2
  267. package/dataview/primeng-dataview.d.ts +1 -0
  268. package/defer/defer.d.ts +7 -0
  269. package/defer/package.json +1 -2
  270. package/defer/primeng-defer.d.ts +1 -0
  271. package/dialog/dialog.d.ts +11 -1
  272. package/dialog/package.json +1 -2
  273. package/dialog/primeng-dialog.d.ts +1 -0
  274. package/divider/divider.d.ts +7 -0
  275. package/divider/package.json +1 -2
  276. package/divider/primeng-divider.d.ts +1 -0
  277. package/dom/package.json +1 -2
  278. package/dom/primeng-dom.d.ts +1 -0
  279. package/dragdrop/dragdrop.d.ts +9 -0
  280. package/dragdrop/package.json +1 -2
  281. package/dragdrop/primeng-dragdrop.d.ts +1 -0
  282. package/dropdown/dropdown.d.ts +14 -0
  283. package/dropdown/package.json +1 -2
  284. package/dropdown/primeng-dropdown.d.ts +1 -0
  285. package/dynamicdialog/dialogservice.d.ts +3 -0
  286. package/dynamicdialog/dynamicdialog.d.ts +8 -0
  287. package/dynamicdialog/dynamicdialogcontent.d.ts +3 -0
  288. package/dynamicdialog/package.json +1 -2
  289. package/dynamicdialog/primeng-dynamicdialog.d.ts +1 -1
  290. package/editor/editor.d.ts +8 -0
  291. package/editor/package.json +1 -2
  292. package/editor/primeng-editor.d.ts +1 -0
  293. package/esm2015/accordion/accordion.js +131 -68
  294. package/esm2015/accordion/primeng-accordion.js +1 -1
  295. package/esm2015/accordion/public_api.js +1 -1
  296. package/esm2015/api/blockableui.js +1 -1
  297. package/esm2015/api/confirmaeventtype.js +1 -1
  298. package/esm2015/api/confirmation.js +1 -1
  299. package/esm2015/api/confirmationservice.js +7 -4
  300. package/esm2015/api/contextmenuservice.js +7 -4
  301. package/esm2015/api/filtermatchmode.js +1 -1
  302. package/esm2015/api/filtermetadata.js +1 -1
  303. package/esm2015/api/filteroperator.js +1 -1
  304. package/esm2015/api/filterservice.js +7 -5
  305. package/esm2015/api/lazyloadevent.js +1 -1
  306. package/esm2015/api/megamenuitem.js +1 -1
  307. package/esm2015/api/menuitem.js +1 -1
  308. package/esm2015/api/message.js +1 -1
  309. package/esm2015/api/messageservice.js +7 -4
  310. package/esm2015/api/primeicons.js +1 -1
  311. package/esm2015/api/primeng-api.js +1 -1
  312. package/esm2015/api/primengconfig.js +7 -5
  313. package/esm2015/api/public_api.js +1 -1
  314. package/esm2015/api/selectitem.js +1 -1
  315. package/esm2015/api/selectitemgroup.js +1 -1
  316. package/esm2015/api/shared.js +46 -34
  317. package/esm2015/api/sortevent.js +1 -1
  318. package/esm2015/api/sortmeta.js +1 -1
  319. package/esm2015/api/tablestate.js +1 -1
  320. package/esm2015/api/translation.js +1 -1
  321. package/esm2015/api/translationkeys.js +1 -1
  322. package/esm2015/api/treedragdropservice.js +7 -4
  323. package/esm2015/api/treenode.js +1 -1
  324. package/esm2015/api/treenodedragevent.js +1 -1
  325. package/esm2015/autocomplete/autocomplete.js +255 -106
  326. package/esm2015/autocomplete/primeng-autocomplete.js +1 -1
  327. package/esm2015/autocomplete/public_api.js +1 -1
  328. package/esm2015/avatar/avatar.js +47 -26
  329. package/esm2015/avatar/primeng-avatar.js +1 -1
  330. package/esm2015/avatar/public_api.js +1 -1
  331. package/esm2015/avatargroup/avatargroup.js +34 -21
  332. package/esm2015/avatargroup/primeng-avatargroup.js +1 -1
  333. package/esm2015/avatargroup/public_api.js +1 -1
  334. package/esm2015/badge/badge.js +56 -39
  335. package/esm2015/badge/primeng-badge.js +1 -1
  336. package/esm2015/badge/public_api.js +1 -1
  337. package/esm2015/blockui/blockui.js +48 -31
  338. package/esm2015/blockui/primeng-blockui.js +1 -1
  339. package/esm2015/blockui/public_api.js +1 -1
  340. package/esm2015/breadcrumb/breadcrumb.js +84 -24
  341. package/esm2015/breadcrumb/primeng-breadcrumb.js +1 -1
  342. package/esm2015/breadcrumb/public_api.js +1 -1
  343. package/esm2015/button/button.js +97 -49
  344. package/esm2015/button/primeng-button.js +1 -1
  345. package/esm2015/button/public_api.js +1 -1
  346. package/esm2015/calendar/calendar.js +367 -132
  347. package/esm2015/calendar/primeng-calendar.js +1 -1
  348. package/esm2015/calendar/public_api.js +1 -1
  349. package/esm2015/captcha/captcha.js +43 -33
  350. package/esm2015/captcha/primeng-captcha.js +1 -1
  351. package/esm2015/captcha/public_api.js +1 -1
  352. package/esm2015/card/card.js +69 -30
  353. package/esm2015/card/primeng-card.js +1 -1
  354. package/esm2015/card/public_api.js +1 -1
  355. package/esm2015/carousel/carousel.js +126 -48
  356. package/esm2015/carousel/primeng-carousel.js +1 -1
  357. package/esm2015/carousel/public_api.js +1 -1
  358. package/esm2015/cascadeselect/cascadeselect.js +195 -92
  359. package/esm2015/cascadeselect/primeng-cascadeselect.js +1 -1
  360. package/esm2015/cascadeselect/public_api.js +1 -1
  361. package/esm2015/chart/chart.js +45 -30
  362. package/esm2015/chart/primeng-chart.js +1 -1
  363. package/esm2015/chart/public_api.js +1 -1
  364. package/esm2015/checkbox/checkbox.js +79 -42
  365. package/esm2015/checkbox/primeng-checkbox.js +1 -1
  366. package/esm2015/checkbox/public_api.js +1 -1
  367. package/esm2015/chip/chip.js +50 -27
  368. package/esm2015/chip/primeng-chip.js +1 -1
  369. package/esm2015/chip/public_api.js +1 -1
  370. package/esm2015/chips/chips.js +92 -51
  371. package/esm2015/chips/primeng-chips.js +1 -1
  372. package/esm2015/chips/public_api.js +1 -1
  373. package/esm2015/codehighlighter/codehighlighter.js +22 -17
  374. package/esm2015/codehighlighter/primeng-codehighlighter.js +1 -1
  375. package/esm2015/codehighlighter/public_api.js +1 -1
  376. package/esm2015/colorpicker/colorpicker.js +129 -67
  377. package/esm2015/colorpicker/primeng-colorpicker.js +1 -1
  378. package/esm2015/colorpicker/public_api.js +1 -1
  379. package/esm2015/confirmdialog/confirmdialog.js +151 -74
  380. package/esm2015/confirmdialog/primeng-confirmdialog.js +1 -1
  381. package/esm2015/confirmdialog/public_api.js +1 -1
  382. package/esm2015/confirmpopup/confirmpopup.js +88 -50
  383. package/esm2015/confirmpopup/primeng-confirmpopup.js +1 -1
  384. package/esm2015/confirmpopup/public_api.js +1 -1
  385. package/esm2015/contextmenu/contextmenu.js +114 -58
  386. package/esm2015/contextmenu/primeng-contextmenu.js +1 -1
  387. package/esm2015/contextmenu/public_api.js +1 -1
  388. package/esm2015/dataview/dataview.js +164 -76
  389. package/esm2015/dataview/primeng-dataview.js +1 -1
  390. package/esm2015/dataview/public_api.js +1 -1
  391. package/esm2015/defer/defer.js +27 -24
  392. package/esm2015/defer/primeng-defer.js +1 -1
  393. package/esm2015/defer/public_api.js +1 -1
  394. package/esm2015/dialog/dialog.js +189 -83
  395. package/esm2015/dialog/primeng-dialog.js +1 -1
  396. package/esm2015/dialog/public_api.js +1 -1
  397. package/esm2015/divider/divider.js +42 -24
  398. package/esm2015/divider/primeng-divider.js +1 -1
  399. package/esm2015/divider/public_api.js +1 -1
  400. package/esm2015/dom/connectedoverlayscrollhandler.js +1 -1
  401. package/esm2015/dom/domhandler.js +1 -1
  402. package/esm2015/dom/primeng-dom.js +1 -1
  403. package/esm2015/dom/public_api.js +1 -1
  404. package/esm2015/dragdrop/dragdrop.js +73 -49
  405. package/esm2015/dragdrop/primeng-dragdrop.js +1 -1
  406. package/esm2015/dragdrop/public_api.js +1 -1
  407. package/esm2015/dropdown/dropdown.js +308 -126
  408. package/esm2015/dropdown/primeng-dropdown.js +1 -1
  409. package/esm2015/dropdown/public_api.js +1 -1
  410. package/esm2015/dynamicdialog/dialogservice.js +8 -10
  411. package/esm2015/dynamicdialog/dynamicdialog-config.js +1 -1
  412. package/esm2015/dynamicdialog/dynamicdialog-injector.js +1 -1
  413. package/esm2015/dynamicdialog/dynamicdialog-ref.js +1 -1
  414. package/esm2015/dynamicdialog/dynamicdialog.js +75 -41
  415. package/esm2015/dynamicdialog/dynamicdialogcontent.js +11 -10
  416. package/esm2015/dynamicdialog/primeng-dynamicdialog.js +1 -2
  417. package/esm2015/dynamicdialog/public_api.js +1 -1
  418. package/esm2015/editor/editor.js +107 -38
  419. package/esm2015/editor/primeng-editor.js +1 -1
  420. package/esm2015/editor/public_api.js +1 -1
  421. package/esm2015/fieldset/fieldset.js +98 -46
  422. package/esm2015/fieldset/primeng-fieldset.js +1 -1
  423. package/esm2015/fieldset/public_api.js +1 -1
  424. package/esm2015/fileupload/fileupload.js +179 -78
  425. package/esm2015/fileupload/primeng-fileupload.js +1 -1
  426. package/esm2015/fileupload/public_api.js +1 -1
  427. package/esm2015/focustrap/focustrap.js +30 -21
  428. package/esm2015/focustrap/primeng-focustrap.js +1 -1
  429. package/esm2015/focustrap/public_api.js +1 -1
  430. package/esm2015/fullcalendar/fullcalendar.js +34 -26
  431. package/esm2015/fullcalendar/primeng-fullcalendar.js +1 -1
  432. package/esm2015/fullcalendar/public_api.js +1 -1
  433. package/esm2015/galleria/galleria.js +284 -131
  434. package/esm2015/galleria/primeng-galleria.js +1 -1
  435. package/esm2015/galleria/public_api.js +1 -1
  436. package/esm2015/gmap/gmap.js +52 -38
  437. package/esm2015/gmap/primeng-gmap.js +1 -1
  438. package/esm2015/gmap/public_api.js +1 -1
  439. package/esm2015/inplace/inplace.js +80 -45
  440. package/esm2015/inplace/primeng-inplace.js +1 -1
  441. package/esm2015/inplace/public_api.js +1 -1
  442. package/esm2015/inputmask/inputmask.js +92 -56
  443. package/esm2015/inputmask/primeng-inputmask.js +1 -1
  444. package/esm2015/inputmask/public_api.js +1 -1
  445. package/esm2015/inputnumber/inputnumber.js +137 -70
  446. package/esm2015/inputnumber/primeng-inputnumber.js +1 -1
  447. package/esm2015/inputnumber/public_api.js +1 -1
  448. package/esm2015/inputswitch/inputswitch.js +55 -33
  449. package/esm2015/inputswitch/primeng-inputswitch.js +1 -1
  450. package/esm2015/inputswitch/public_api.js +1 -1
  451. package/esm2015/inputtext/inputtext.js +33 -27
  452. package/esm2015/inputtext/primeng-inputtext.js +1 -1
  453. package/esm2015/inputtext/public_api.js +1 -1
  454. package/esm2015/inputtextarea/inputtextarea.js +47 -35
  455. package/esm2015/inputtextarea/primeng-inputtextarea.js +1 -1
  456. package/esm2015/inputtextarea/public_api.js +1 -1
  457. package/esm2015/keyfilter/keyfilter.js +39 -26
  458. package/esm2015/keyfilter/primeng-keyfilter.js +1 -1
  459. package/esm2015/keyfilter/public_api.js +1 -1
  460. package/esm2015/knob/knob.js +71 -42
  461. package/esm2015/knob/primeng-knob.js +1 -1
  462. package/esm2015/knob/public_api.js +1 -1
  463. package/esm2015/lightbox/lightbox.js +78 -35
  464. package/esm2015/lightbox/primeng-lightbox.js +1 -1
  465. package/esm2015/lightbox/public_api.js +1 -1
  466. package/esm2015/listbox/listbox.js +167 -61
  467. package/esm2015/listbox/primeng-listbox.js +1 -1
  468. package/esm2015/listbox/public_api.js +1 -1
  469. package/esm2015/megamenu/megamenu.js +118 -32
  470. package/esm2015/megamenu/primeng-megamenu.js +1 -1
  471. package/esm2015/megamenu/public_api.js +1 -1
  472. package/esm2015/menu/menu.js +127 -60
  473. package/esm2015/menu/primeng-menu.js +1 -1
  474. package/esm2015/menu/public_api.js +1 -1
  475. package/esm2015/menubar/menubar.js +121 -56
  476. package/esm2015/menubar/primeng-menubar.js +1 -1
  477. package/esm2015/menubar/public_api.js +1 -1
  478. package/esm2015/message/message.js +51 -24
  479. package/esm2015/message/primeng-message.js +1 -1
  480. package/esm2015/message/public_api.js +1 -1
  481. package/esm2015/messages/messages.js +109 -48
  482. package/esm2015/messages/primeng-messages.js +1 -1
  483. package/esm2015/messages/public_api.js +1 -1
  484. package/esm2015/multiselect/multiselect.js +332 -125
  485. package/esm2015/multiselect/primeng-multiselect.js +1 -1
  486. package/esm2015/multiselect/public_api.js +1 -1
  487. package/esm2015/orderlist/orderlist.js +119 -49
  488. package/esm2015/orderlist/primeng-orderlist.js +1 -1
  489. package/esm2015/orderlist/public_api.js +1 -1
  490. package/esm2015/organizationchart/organizationchart.js +139 -64
  491. package/esm2015/organizationchart/primeng-organizationchart.js +1 -1
  492. package/esm2015/organizationchart/public_api.js +1 -1
  493. package/esm2015/overlaypanel/overlaypanel.js +102 -57
  494. package/esm2015/overlaypanel/primeng-overlaypanel.js +1 -1
  495. package/esm2015/overlaypanel/public_api.js +1 -1
  496. package/esm2015/paginator/paginator.js +112 -42
  497. package/esm2015/paginator/primeng-paginator.js +1 -1
  498. package/esm2015/paginator/public_api.js +1 -1
  499. package/esm2015/panel/panel.js +120 -55
  500. package/esm2015/panel/primeng-panel.js +1 -1
  501. package/esm2015/panel/public_api.js +1 -1
  502. package/esm2015/panelmenu/panelmenu.js +161 -70
  503. package/esm2015/panelmenu/primeng-panelmenu.js +1 -1
  504. package/esm2015/panelmenu/public_api.js +1 -1
  505. package/esm2015/password/password.js +156 -88
  506. package/esm2015/password/primeng-password.js +1 -1
  507. package/esm2015/password/public_api.js +1 -1
  508. package/esm2015/picklist/picklist.js +215 -80
  509. package/esm2015/picklist/primeng-picklist.js +1 -1
  510. package/esm2015/picklist/public_api.js +1 -1
  511. package/esm2015/primeng.js +1 -1
  512. package/esm2015/progressbar/primeng-progressbar.js +1 -1
  513. package/esm2015/progressbar/progressbar.js +47 -25
  514. package/esm2015/progressbar/public_api.js +1 -1
  515. package/esm2015/progressspinner/primeng-progressspinner.js +1 -1
  516. package/esm2015/progressspinner/progressspinner.js +42 -24
  517. package/esm2015/progressspinner/public_api.js +1 -1
  518. package/esm2015/public_api.js +1 -1
  519. package/esm2015/radiobutton/primeng-radiobutton.js +1 -1
  520. package/esm2015/radiobutton/public_api.js +1 -1
  521. package/esm2015/radiobutton/radiobutton.js +79 -46
  522. package/esm2015/rating/primeng-rating.js +1 -1
  523. package/esm2015/rating/public_api.js +1 -1
  524. package/esm2015/rating/rating.js +59 -36
  525. package/esm2015/ripple/primeng-ripple.js +1 -1
  526. package/esm2015/ripple/public_api.js +1 -1
  527. package/esm2015/ripple/ripple.js +28 -23
  528. package/esm2015/scrollpanel/primeng-scrollpanel.js +1 -1
  529. package/esm2015/scrollpanel/public_api.js +1 -1
  530. package/esm2015/scrollpanel/scrollpanel.js +57 -32
  531. package/esm2015/scrolltop/primeng-scrolltop.js +1 -1
  532. package/esm2015/scrolltop/public_api.js +1 -1
  533. package/esm2015/scrolltop/scrolltop.js +71 -44
  534. package/esm2015/selectbutton/primeng-selectbutton.js +1 -1
  535. package/esm2015/selectbutton/public_api.js +1 -1
  536. package/esm2015/selectbutton/selectbutton.js +75 -38
  537. package/esm2015/sidebar/primeng-sidebar.js +1 -1
  538. package/esm2015/sidebar/public_api.js +1 -1
  539. package/esm2015/sidebar/sidebar.js +103 -56
  540. package/esm2015/skeleton/primeng-skeleton.js +1 -1
  541. package/esm2015/skeleton/public_api.js +1 -1
  542. package/esm2015/skeleton/skeleton.js +45 -27
  543. package/esm2015/slidemenu/primeng-slidemenu.js +1 -1
  544. package/esm2015/slidemenu/public_api.js +1 -1
  545. package/esm2015/slidemenu/slidemenu.js +158 -73
  546. package/esm2015/slider/primeng-slider.js +1 -1
  547. package/esm2015/slider/public_api.js +1 -1
  548. package/esm2015/slider/slider.js +81 -43
  549. package/esm2015/spinner/primeng-spinner.js +1 -1
  550. package/esm2015/spinner/public_api.js +1 -1
  551. package/esm2015/spinner/spinner.js +94 -52
  552. package/esm2015/splitbutton/primeng-splitbutton.js +1 -1
  553. package/esm2015/splitbutton/public_api.js +1 -1
  554. package/esm2015/splitbutton/splitbutton.js +76 -38
  555. package/esm2015/splitter/primeng-splitter.js +1 -1
  556. package/esm2015/splitter/public_api.js +1 -1
  557. package/esm2015/splitter/splitter.js +81 -47
  558. package/esm2015/steps/primeng-steps.js +1 -1
  559. package/esm2015/steps/public_api.js +1 -1
  560. package/esm2015/steps/steps.js +69 -35
  561. package/esm2015/styleclass/primeng-styleclass.js +1 -1
  562. package/esm2015/styleclass/public_api.js +1 -1
  563. package/esm2015/styleclass/styleclass.js +41 -29
  564. package/esm2015/table/primeng-table.js +1 -1
  565. package/esm2015/table/public_api.js +1 -1
  566. package/esm2015/table/table.js +1081 -584
  567. package/esm2015/tabmenu/primeng-tabmenu.js +1 -1
  568. package/esm2015/tabmenu/public_api.js +1 -1
  569. package/esm2015/tabmenu/tabmenu.js +76 -27
  570. package/esm2015/tabview/primeng-tabview.js +1 -1
  571. package/esm2015/tabview/public_api.js +1 -1
  572. package/esm2015/tabview/tabview.js +127 -62
  573. package/esm2015/tag/primeng-tag.js +1 -1
  574. package/esm2015/tag/public_api.js +1 -1
  575. package/esm2015/tag/tag.js +44 -25
  576. package/esm2015/terminal/primeng-terminal.js +1 -1
  577. package/esm2015/terminal/public_api.js +1 -1
  578. package/esm2015/terminal/terminal.js +54 -31
  579. package/esm2015/terminal/terminalservice.js +7 -4
  580. package/esm2015/tieredmenu/primeng-tieredmenu.js +1 -1
  581. package/esm2015/tieredmenu/public_api.js +1 -1
  582. package/esm2015/tieredmenu/tieredmenu.js +133 -69
  583. package/esm2015/timeline/primeng-timeline.js +1 -1
  584. package/esm2015/timeline/public_api.js +1 -1
  585. package/esm2015/timeline/timeline.js +67 -29
  586. package/esm2015/toast/primeng-toast.js +1 -1
  587. package/esm2015/toast/public_api.js +1 -1
  588. package/esm2015/toast/toast.js +166 -87
  589. package/esm2015/togglebutton/primeng-togglebutton.js +1 -1
  590. package/esm2015/togglebutton/public_api.js +1 -1
  591. package/esm2015/togglebutton/togglebutton.js +60 -35
  592. package/esm2015/toolbar/primeng-toolbar.js +1 -1
  593. package/esm2015/toolbar/public_api.js +1 -1
  594. package/esm2015/toolbar/toolbar.js +44 -26
  595. package/esm2015/tooltip/primeng-tooltip.js +1 -1
  596. package/esm2015/tooltip/public_api.js +1 -1
  597. package/esm2015/tooltip/tooltip.js +48 -32
  598. package/esm2015/tree/primeng-tree.js +1 -1
  599. package/esm2015/tree/public_api.js +1 -1
  600. package/esm2015/tree/tree.js +278 -91
  601. package/esm2015/treetable/primeng-treetable.js +1 -1
  602. package/esm2015/treetable/public_api.js +1 -1
  603. package/esm2015/treetable/treetable.js +650 -374
  604. package/esm2015/tristatecheckbox/primeng-tristatecheckbox.js +1 -1
  605. package/esm2015/tristatecheckbox/public_api.js +1 -1
  606. package/esm2015/tristatecheckbox/tristatecheckbox.js +64 -35
  607. package/esm2015/utils/objectutils.js +1 -1
  608. package/esm2015/utils/primeng-utils.js +1 -1
  609. package/esm2015/utils/public_api.js +1 -1
  610. package/esm2015/utils/uniquecomponentid.js +1 -1
  611. package/esm2015/virtualscroller/primeng-virtualscroller.js +1 -1
  612. package/esm2015/virtualscroller/public_api.js +1 -1
  613. package/esm2015/virtualscroller/virtualscroller.js +92 -42
  614. package/fesm2015/primeng-accordion.js +130 -67
  615. package/fesm2015/primeng-accordion.js.map +1 -1
  616. package/fesm2015/primeng-api.js +77 -53
  617. package/fesm2015/primeng-api.js.map +1 -1
  618. package/fesm2015/primeng-autocomplete.js +254 -105
  619. package/fesm2015/primeng-autocomplete.js.map +1 -1
  620. package/fesm2015/primeng-avatar.js +46 -25
  621. package/fesm2015/primeng-avatar.js.map +1 -1
  622. package/fesm2015/primeng-avatargroup.js +33 -20
  623. package/fesm2015/primeng-avatargroup.js.map +1 -1
  624. package/fesm2015/primeng-badge.js +55 -38
  625. package/fesm2015/primeng-badge.js.map +1 -1
  626. package/fesm2015/primeng-blockui.js +47 -30
  627. package/fesm2015/primeng-blockui.js.map +1 -1
  628. package/fesm2015/primeng-breadcrumb.js +83 -23
  629. package/fesm2015/primeng-breadcrumb.js.map +1 -1
  630. package/fesm2015/primeng-button.js +96 -48
  631. package/fesm2015/primeng-button.js.map +1 -1
  632. package/fesm2015/primeng-calendar.js +366 -131
  633. package/fesm2015/primeng-calendar.js.map +1 -1
  634. package/fesm2015/primeng-captcha.js +42 -32
  635. package/fesm2015/primeng-captcha.js.map +1 -1
  636. package/fesm2015/primeng-card.js +68 -29
  637. package/fesm2015/primeng-card.js.map +1 -1
  638. package/fesm2015/primeng-carousel.js +125 -47
  639. package/fesm2015/primeng-carousel.js.map +1 -1
  640. package/fesm2015/primeng-cascadeselect.js +194 -91
  641. package/fesm2015/primeng-cascadeselect.js.map +1 -1
  642. package/fesm2015/primeng-chart.js +44 -29
  643. package/fesm2015/primeng-chart.js.map +1 -1
  644. package/fesm2015/primeng-checkbox.js +78 -41
  645. package/fesm2015/primeng-checkbox.js.map +1 -1
  646. package/fesm2015/primeng-chip.js +49 -26
  647. package/fesm2015/primeng-chip.js.map +1 -1
  648. package/fesm2015/primeng-chips.js +91 -50
  649. package/fesm2015/primeng-chips.js.map +1 -1
  650. package/fesm2015/primeng-codehighlighter.js +21 -16
  651. package/fesm2015/primeng-codehighlighter.js.map +1 -1
  652. package/fesm2015/primeng-colorpicker.js +128 -66
  653. package/fesm2015/primeng-colorpicker.js.map +1 -1
  654. package/fesm2015/primeng-confirmdialog.js +150 -72
  655. package/fesm2015/primeng-confirmdialog.js.map +1 -1
  656. package/fesm2015/primeng-confirmpopup.js +87 -49
  657. package/fesm2015/primeng-confirmpopup.js.map +1 -1
  658. package/fesm2015/primeng-contextmenu.js +113 -57
  659. package/fesm2015/primeng-contextmenu.js.map +1 -1
  660. package/fesm2015/primeng-dataview.js +163 -75
  661. package/fesm2015/primeng-dataview.js.map +1 -1
  662. package/fesm2015/primeng-defer.js +26 -23
  663. package/fesm2015/primeng-defer.js.map +1 -1
  664. package/fesm2015/primeng-dialog.js +188 -82
  665. package/fesm2015/primeng-dialog.js.map +1 -1
  666. package/fesm2015/primeng-divider.js +41 -23
  667. package/fesm2015/primeng-divider.js.map +1 -1
  668. package/fesm2015/primeng-dragdrop.js +72 -48
  669. package/fesm2015/primeng-dragdrop.js.map +1 -1
  670. package/fesm2015/primeng-dropdown.js +306 -124
  671. package/fesm2015/primeng-dropdown.js.map +1 -1
  672. package/fesm2015/primeng-dynamicdialog.js +86 -55
  673. package/fesm2015/primeng-dynamicdialog.js.map +1 -1
  674. package/fesm2015/primeng-editor.js +106 -37
  675. package/fesm2015/primeng-editor.js.map +1 -1
  676. package/fesm2015/primeng-fieldset.js +97 -45
  677. package/fesm2015/primeng-fieldset.js.map +1 -1
  678. package/fesm2015/primeng-fileupload.js +178 -77
  679. package/fesm2015/primeng-fileupload.js.map +1 -1
  680. package/fesm2015/primeng-focustrap.js +29 -20
  681. package/fesm2015/primeng-focustrap.js.map +1 -1
  682. package/fesm2015/primeng-fullcalendar.js +33 -25
  683. package/fesm2015/primeng-fullcalendar.js.map +1 -1
  684. package/fesm2015/primeng-galleria.js +283 -130
  685. package/fesm2015/primeng-galleria.js.map +1 -1
  686. package/fesm2015/primeng-gmap.js +51 -37
  687. package/fesm2015/primeng-gmap.js.map +1 -1
  688. package/fesm2015/primeng-inplace.js +79 -44
  689. package/fesm2015/primeng-inplace.js.map +1 -1
  690. package/fesm2015/primeng-inputmask.js +91 -55
  691. package/fesm2015/primeng-inputmask.js.map +1 -1
  692. package/fesm2015/primeng-inputnumber.js +136 -69
  693. package/fesm2015/primeng-inputnumber.js.map +1 -1
  694. package/fesm2015/primeng-inputswitch.js +54 -32
  695. package/fesm2015/primeng-inputswitch.js.map +1 -1
  696. package/fesm2015/primeng-inputtext.js +32 -26
  697. package/fesm2015/primeng-inputtext.js.map +1 -1
  698. package/fesm2015/primeng-inputtextarea.js +46 -34
  699. package/fesm2015/primeng-inputtextarea.js.map +1 -1
  700. package/fesm2015/primeng-keyfilter.js +38 -25
  701. package/fesm2015/primeng-keyfilter.js.map +1 -1
  702. package/fesm2015/primeng-knob.js +70 -41
  703. package/fesm2015/primeng-knob.js.map +1 -1
  704. package/fesm2015/primeng-lightbox.js +77 -34
  705. package/fesm2015/primeng-lightbox.js.map +1 -1
  706. package/fesm2015/primeng-listbox.js +166 -60
  707. package/fesm2015/primeng-listbox.js.map +1 -1
  708. package/fesm2015/primeng-megamenu.js +117 -31
  709. package/fesm2015/primeng-megamenu.js.map +1 -1
  710. package/fesm2015/primeng-menu.js +126 -59
  711. package/fesm2015/primeng-menu.js.map +1 -1
  712. package/fesm2015/primeng-menubar.js +120 -55
  713. package/fesm2015/primeng-menubar.js.map +1 -1
  714. package/fesm2015/primeng-message.js +50 -23
  715. package/fesm2015/primeng-message.js.map +1 -1
  716. package/fesm2015/primeng-messages.js +108 -47
  717. package/fesm2015/primeng-messages.js.map +1 -1
  718. package/fesm2015/primeng-multiselect.js +331 -124
  719. package/fesm2015/primeng-multiselect.js.map +1 -1
  720. package/fesm2015/primeng-orderlist.js +118 -48
  721. package/fesm2015/primeng-orderlist.js.map +1 -1
  722. package/fesm2015/primeng-organizationchart.js +138 -63
  723. package/fesm2015/primeng-organizationchart.js.map +1 -1
  724. package/fesm2015/primeng-overlaypanel.js +101 -56
  725. package/fesm2015/primeng-overlaypanel.js.map +1 -1
  726. package/fesm2015/primeng-paginator.js +111 -41
  727. package/fesm2015/primeng-paginator.js.map +1 -1
  728. package/fesm2015/primeng-panel.js +119 -54
  729. package/fesm2015/primeng-panel.js.map +1 -1
  730. package/fesm2015/primeng-panelmenu.js +160 -69
  731. package/fesm2015/primeng-panelmenu.js.map +1 -1
  732. package/fesm2015/primeng-password.js +155 -87
  733. package/fesm2015/primeng-password.js.map +1 -1
  734. package/fesm2015/primeng-picklist.js +214 -79
  735. package/fesm2015/primeng-picklist.js.map +1 -1
  736. package/fesm2015/primeng-progressbar.js +46 -24
  737. package/fesm2015/primeng-progressbar.js.map +1 -1
  738. package/fesm2015/primeng-progressspinner.js +41 -23
  739. package/fesm2015/primeng-progressspinner.js.map +1 -1
  740. package/fesm2015/primeng-radiobutton.js +79 -45
  741. package/fesm2015/primeng-radiobutton.js.map +1 -1
  742. package/fesm2015/primeng-rating.js +58 -35
  743. package/fesm2015/primeng-rating.js.map +1 -1
  744. package/fesm2015/primeng-ripple.js +27 -22
  745. package/fesm2015/primeng-ripple.js.map +1 -1
  746. package/fesm2015/primeng-scrollpanel.js +56 -31
  747. package/fesm2015/primeng-scrollpanel.js.map +1 -1
  748. package/fesm2015/primeng-scrolltop.js +70 -43
  749. package/fesm2015/primeng-scrolltop.js.map +1 -1
  750. package/fesm2015/primeng-selectbutton.js +74 -37
  751. package/fesm2015/primeng-selectbutton.js.map +1 -1
  752. package/fesm2015/primeng-sidebar.js +102 -55
  753. package/fesm2015/primeng-sidebar.js.map +1 -1
  754. package/fesm2015/primeng-skeleton.js +44 -26
  755. package/fesm2015/primeng-skeleton.js.map +1 -1
  756. package/fesm2015/primeng-slidemenu.js +157 -72
  757. package/fesm2015/primeng-slidemenu.js.map +1 -1
  758. package/fesm2015/primeng-slider.js +80 -42
  759. package/fesm2015/primeng-slider.js.map +1 -1
  760. package/fesm2015/primeng-spinner.js +93 -51
  761. package/fesm2015/primeng-spinner.js.map +1 -1
  762. package/fesm2015/primeng-splitbutton.js +75 -37
  763. package/fesm2015/primeng-splitbutton.js.map +1 -1
  764. package/fesm2015/primeng-splitter.js +80 -46
  765. package/fesm2015/primeng-splitter.js.map +1 -1
  766. package/fesm2015/primeng-steps.js +68 -34
  767. package/fesm2015/primeng-steps.js.map +1 -1
  768. package/fesm2015/primeng-styleclass.js +40 -28
  769. package/fesm2015/primeng-styleclass.js.map +1 -1
  770. package/fesm2015/primeng-table.js +1080 -583
  771. package/fesm2015/primeng-table.js.map +1 -1
  772. package/fesm2015/primeng-tabmenu.js +75 -26
  773. package/fesm2015/primeng-tabmenu.js.map +1 -1
  774. package/fesm2015/primeng-tabview.js +126 -61
  775. package/fesm2015/primeng-tabview.js.map +1 -1
  776. package/fesm2015/primeng-tag.js +43 -24
  777. package/fesm2015/primeng-tag.js.map +1 -1
  778. package/fesm2015/primeng-terminal.js +57 -32
  779. package/fesm2015/primeng-terminal.js.map +1 -1
  780. package/fesm2015/primeng-tieredmenu.js +132 -68
  781. package/fesm2015/primeng-tieredmenu.js.map +1 -1
  782. package/fesm2015/primeng-timeline.js +66 -28
  783. package/fesm2015/primeng-timeline.js.map +1 -1
  784. package/fesm2015/primeng-toast.js +166 -86
  785. package/fesm2015/primeng-toast.js.map +1 -1
  786. package/fesm2015/primeng-togglebutton.js +59 -34
  787. package/fesm2015/primeng-togglebutton.js.map +1 -1
  788. package/fesm2015/primeng-toolbar.js +43 -25
  789. package/fesm2015/primeng-toolbar.js.map +1 -1
  790. package/fesm2015/primeng-tooltip.js +47 -31
  791. package/fesm2015/primeng-tooltip.js.map +1 -1
  792. package/fesm2015/primeng-tree.js +277 -89
  793. package/fesm2015/primeng-tree.js.map +1 -1
  794. package/fesm2015/primeng-treetable.js +649 -373
  795. package/fesm2015/primeng-treetable.js.map +1 -1
  796. package/fesm2015/primeng-tristatecheckbox.js +63 -34
  797. package/fesm2015/primeng-tristatecheckbox.js.map +1 -1
  798. package/fesm2015/primeng-virtualscroller.js +91 -41
  799. package/fesm2015/primeng-virtualscroller.js.map +1 -1
  800. package/fieldset/fieldset.d.ts +9 -0
  801. package/fieldset/package.json +1 -2
  802. package/fieldset/primeng-fieldset.d.ts +1 -0
  803. package/fileupload/fileupload.d.ts +12 -0
  804. package/fileupload/package.json +1 -2
  805. package/fileupload/primeng-fileupload.d.ts +1 -0
  806. package/focustrap/focustrap.d.ts +7 -0
  807. package/focustrap/package.json +1 -2
  808. package/focustrap/primeng-focustrap.d.ts +1 -0
  809. package/fullcalendar/fullcalendar.d.ts +7 -0
  810. package/fullcalendar/package.json +1 -2
  811. package/fullcalendar/primeng-fullcalendar.d.ts +1 -0
  812. package/galleria/galleria.d.ts +17 -0
  813. package/galleria/package.json +1 -2
  814. package/galleria/primeng-galleria.d.ts +1 -0
  815. package/gmap/gmap.d.ts +7 -0
  816. package/gmap/package.json +1 -2
  817. package/gmap/primeng-gmap.d.ts +1 -0
  818. package/inplace/inplace.d.ts +12 -0
  819. package/inplace/package.json +1 -2
  820. package/inplace/primeng-inplace.d.ts +1 -0
  821. package/inputmask/inputmask.d.ts +8 -0
  822. package/inputmask/package.json +1 -2
  823. package/inputmask/primeng-inputmask.d.ts +1 -0
  824. package/inputnumber/inputnumber.d.ts +9 -0
  825. package/inputnumber/package.json +1 -2
  826. package/inputnumber/primeng-inputnumber.d.ts +1 -0
  827. package/inputswitch/inputswitch.d.ts +7 -0
  828. package/inputswitch/package.json +1 -2
  829. package/inputswitch/primeng-inputswitch.d.ts +1 -0
  830. package/inputtext/inputtext.d.ts +7 -0
  831. package/inputtext/package.json +1 -2
  832. package/inputtext/primeng-inputtext.d.ts +1 -0
  833. package/inputtextarea/inputtextarea.d.ts +7 -0
  834. package/inputtextarea/package.json +1 -2
  835. package/inputtextarea/primeng-inputtextarea.d.ts +1 -0
  836. package/keyfilter/keyfilter.d.ts +7 -0
  837. package/keyfilter/package.json +1 -2
  838. package/keyfilter/primeng-keyfilter.d.ts +1 -0
  839. package/knob/knob.d.ts +7 -0
  840. package/knob/package.json +1 -2
  841. package/knob/primeng-knob.d.ts +1 -0
  842. package/lightbox/lightbox.d.ts +7 -0
  843. package/lightbox/package.json +1 -2
  844. package/lightbox/primeng-lightbox.d.ts +1 -0
  845. package/listbox/listbox.d.ts +9 -0
  846. package/listbox/package.json +1 -2
  847. package/listbox/primeng-listbox.d.ts +1 -0
  848. package/megamenu/megamenu.d.ts +9 -0
  849. package/megamenu/package.json +1 -2
  850. package/megamenu/primeng-megamenu.d.ts +1 -0
  851. package/menu/menu.d.ts +11 -0
  852. package/menu/package.json +1 -2
  853. package/menu/primeng-menu.d.ts +1 -0
  854. package/menubar/menubar.d.ts +11 -0
  855. package/menubar/package.json +1 -2
  856. package/menubar/primeng-menubar.d.ts +1 -0
  857. package/message/message.d.ts +7 -0
  858. package/message/package.json +1 -2
  859. package/message/primeng-message.d.ts +1 -0
  860. package/messages/messages.d.ts +8 -0
  861. package/messages/package.json +1 -2
  862. package/messages/primeng-messages.d.ts +1 -0
  863. package/multiselect/multiselect.d.ts +13 -0
  864. package/multiselect/package.json +1 -2
  865. package/multiselect/primeng-multiselect.d.ts +1 -0
  866. package/orderlist/orderlist.d.ts +11 -0
  867. package/orderlist/package.json +1 -2
  868. package/orderlist/primeng-orderlist.d.ts +1 -0
  869. package/organizationchart/organizationchart.d.ts +10 -0
  870. package/organizationchart/package.json +1 -2
  871. package/organizationchart/primeng-organizationchart.d.ts +1 -0
  872. package/overlaypanel/overlaypanel.d.ts +9 -0
  873. package/overlaypanel/package.json +1 -2
  874. package/overlaypanel/primeng-overlaypanel.d.ts +1 -0
  875. package/package.json +6 -7
  876. package/paginator/package.json +1 -2
  877. package/paginator/paginator.d.ts +11 -0
  878. package/paginator/primeng-paginator.d.ts +1 -0
  879. package/panel/package.json +1 -2
  880. package/panel/panel.d.ts +9 -0
  881. package/panel/primeng-panel.d.ts +1 -0
  882. package/panelmenu/package.json +1 -2
  883. package/panelmenu/panelmenu.d.ts +10 -0
  884. package/panelmenu/primeng-panelmenu.d.ts +1 -0
  885. package/password/package.json +1 -2
  886. package/password/password.d.ts +11 -0
  887. package/password/primeng-password.d.ts +1 -0
  888. package/picklist/package.json +1 -2
  889. package/picklist/picklist.d.ts +11 -0
  890. package/picklist/primeng-picklist.d.ts +1 -0
  891. package/primeng.d.ts +1 -0
  892. package/progressbar/package.json +1 -2
  893. package/progressbar/primeng-progressbar.d.ts +1 -0
  894. package/progressbar/progressbar.d.ts +7 -0
  895. package/progressspinner/package.json +1 -2
  896. package/progressspinner/primeng-progressspinner.d.ts +1 -0
  897. package/progressspinner/progressspinner.d.ts +7 -0
  898. package/radiobutton/package.json +1 -2
  899. package/radiobutton/primeng-radiobutton.d.ts +1 -0
  900. package/radiobutton/radiobutton.d.ts +9 -0
  901. package/rating/package.json +1 -2
  902. package/rating/primeng-rating.d.ts +1 -0
  903. package/rating/rating.d.ts +7 -0
  904. package/resources/components/breadcrumb/breadcrumb.css +2 -1
  905. package/resources/components/fileupload/fileupload.css +5 -1
  906. package/resources/components/tabmenu/tabmenu.css +1 -1
  907. package/ripple/package.json +1 -2
  908. package/ripple/primeng-ripple.d.ts +1 -0
  909. package/ripple/ripple.d.ts +7 -0
  910. package/scrollpanel/package.json +1 -2
  911. package/scrollpanel/primeng-scrollpanel.d.ts +1 -0
  912. package/scrollpanel/scrollpanel.d.ts +7 -0
  913. package/scrolltop/package.json +1 -2
  914. package/scrolltop/primeng-scrolltop.d.ts +1 -0
  915. package/scrolltop/scrolltop.d.ts +7 -0
  916. package/selectbutton/package.json +1 -2
  917. package/selectbutton/primeng-selectbutton.d.ts +1 -0
  918. package/selectbutton/selectbutton.d.ts +8 -0
  919. package/sidebar/package.json +1 -2
  920. package/sidebar/primeng-sidebar.d.ts +1 -0
  921. package/sidebar/sidebar.d.ts +8 -0
  922. package/skeleton/package.json +1 -2
  923. package/skeleton/primeng-skeleton.d.ts +1 -0
  924. package/skeleton/skeleton.d.ts +7 -0
  925. package/slidemenu/package.json +1 -2
  926. package/slidemenu/primeng-slidemenu.d.ts +1 -0
  927. package/slidemenu/slidemenu.d.ts +10 -0
  928. package/slider/package.json +1 -2
  929. package/slider/primeng-slider.d.ts +1 -0
  930. package/slider/slider.d.ts +7 -0
  931. package/spinner/package.json +1 -2
  932. package/spinner/primeng-spinner.d.ts +1 -0
  933. package/spinner/spinner.d.ts +8 -0
  934. package/splitbutton/package.json +1 -2
  935. package/splitbutton/primeng-splitbutton.d.ts +1 -0
  936. package/splitbutton/splitbutton.d.ts +9 -0
  937. package/splitter/package.json +1 -2
  938. package/splitter/primeng-splitter.d.ts +1 -0
  939. package/splitter/splitter.d.ts +10 -1
  940. package/steps/package.json +1 -2
  941. package/steps/primeng-steps.d.ts +1 -0
  942. package/steps/steps.d.ts +8 -0
  943. package/styleclass/package.json +1 -2
  944. package/styleclass/primeng-styleclass.d.ts +1 -0
  945. package/styleclass/styleclass.d.ts +7 -0
  946. package/table/package.json +1 -2
  947. package/table/primeng-table.d.ts +1 -0
  948. package/table/table.d.ts +66 -0
  949. package/tabmenu/package.json +1 -2
  950. package/tabmenu/primeng-tabmenu.d.ts +1 -0
  951. package/tabmenu/tabmenu.d.ts +10 -0
  952. package/tabview/package.json +1 -2
  953. package/tabview/primeng-tabview.d.ts +1 -0
  954. package/tabview/tabview.d.ts +12 -0
  955. package/tag/package.json +1 -2
  956. package/tag/primeng-tag.d.ts +1 -0
  957. package/tag/tag.d.ts +7 -0
  958. package/terminal/package.json +1 -2
  959. package/terminal/primeng-terminal.d.ts +1 -0
  960. package/terminal/terminal.d.ts +8 -0
  961. package/terminal/terminalservice.d.ts +3 -0
  962. package/tieredmenu/package.json +1 -2
  963. package/tieredmenu/primeng-tieredmenu.d.ts +1 -0
  964. package/tieredmenu/tieredmenu.d.ts +11 -0
  965. package/timeline/package.json +1 -2
  966. package/timeline/primeng-timeline.d.ts +1 -0
  967. package/timeline/timeline.d.ts +8 -0
  968. package/toast/package.json +1 -2
  969. package/toast/primeng-toast.d.ts +1 -0
  970. package/toast/toast.d.ts +11 -0
  971. package/togglebutton/package.json +1 -2
  972. package/togglebutton/primeng-togglebutton.d.ts +1 -0
  973. package/togglebutton/togglebutton.d.ts +8 -0
  974. package/toolbar/package.json +1 -2
  975. package/toolbar/primeng-toolbar.d.ts +1 -0
  976. package/toolbar/toolbar.d.ts +7 -0
  977. package/tooltip/package.json +1 -2
  978. package/tooltip/primeng-tooltip.d.ts +1 -0
  979. package/tooltip/tooltip.d.ts +7 -0
  980. package/tree/package.json +1 -2
  981. package/tree/primeng-tree.d.ts +1 -0
  982. package/tree/tree.d.ts +12 -0
  983. package/treetable/package.json +1 -2
  984. package/treetable/primeng-treetable.d.ts +1 -0
  985. package/treetable/treetable.d.ts +43 -0
  986. package/tristatecheckbox/package.json +1 -2
  987. package/tristatecheckbox/primeng-tristatecheckbox.d.ts +1 -0
  988. package/tristatecheckbox/tristatecheckbox.d.ts +7 -0
  989. package/utils/package.json +1 -2
  990. package/utils/primeng-utils.d.ts +1 -0
  991. package/virtualscroller/package.json +1 -2
  992. package/virtualscroller/primeng-virtualscroller.d.ts +1 -0
  993. package/virtualscroller/virtualscroller.d.ts +9 -0
  994. package/accordion/primeng-accordion.metadata.json +0 -1
  995. package/api/primeng-api.metadata.json +0 -1
  996. package/autocomplete/primeng-autocomplete.metadata.json +0 -1
  997. package/avatar/primeng-avatar.metadata.json +0 -1
  998. package/avatargroup/primeng-avatargroup.metadata.json +0 -1
  999. package/badge/primeng-badge.metadata.json +0 -1
  1000. package/blockui/primeng-blockui.metadata.json +0 -1
  1001. package/breadcrumb/primeng-breadcrumb.metadata.json +0 -1
  1002. package/bundles/primeng-accordion.umd.min.js +0 -2
  1003. package/bundles/primeng-accordion.umd.min.js.map +0 -1
  1004. package/bundles/primeng-api.umd.min.js +0 -2
  1005. package/bundles/primeng-api.umd.min.js.map +0 -1
  1006. package/bundles/primeng-autocomplete.umd.min.js +0 -16
  1007. package/bundles/primeng-autocomplete.umd.min.js.map +0 -1
  1008. package/bundles/primeng-avatar.umd.min.js +0 -2
  1009. package/bundles/primeng-avatar.umd.min.js.map +0 -1
  1010. package/bundles/primeng-avatargroup.umd.min.js +0 -2
  1011. package/bundles/primeng-avatargroup.umd.min.js.map +0 -1
  1012. package/bundles/primeng-badge.umd.min.js +0 -2
  1013. package/bundles/primeng-badge.umd.min.js.map +0 -1
  1014. package/bundles/primeng-blockui.umd.min.js +0 -2
  1015. package/bundles/primeng-blockui.umd.min.js.map +0 -1
  1016. package/bundles/primeng-breadcrumb.umd.min.js +0 -2
  1017. package/bundles/primeng-breadcrumb.umd.min.js.map +0 -1
  1018. package/bundles/primeng-button.umd.min.js +0 -2
  1019. package/bundles/primeng-button.umd.min.js.map +0 -1
  1020. package/bundles/primeng-calendar.umd.min.js +0 -16
  1021. package/bundles/primeng-calendar.umd.min.js.map +0 -1
  1022. package/bundles/primeng-captcha.umd.min.js +0 -2
  1023. package/bundles/primeng-captcha.umd.min.js.map +0 -1
  1024. package/bundles/primeng-card.umd.min.js +0 -2
  1025. package/bundles/primeng-card.umd.min.js.map +0 -1
  1026. package/bundles/primeng-carousel.umd.min.js +0 -16
  1027. package/bundles/primeng-carousel.umd.min.js.map +0 -1
  1028. package/bundles/primeng-cascadeselect.umd.min.js +0 -16
  1029. package/bundles/primeng-cascadeselect.umd.min.js.map +0 -1
  1030. package/bundles/primeng-chart.umd.min.js +0 -2
  1031. package/bundles/primeng-chart.umd.min.js.map +0 -1
  1032. package/bundles/primeng-checkbox.umd.min.js +0 -16
  1033. package/bundles/primeng-checkbox.umd.min.js.map +0 -1
  1034. package/bundles/primeng-chip.umd.min.js +0 -2
  1035. package/bundles/primeng-chip.umd.min.js.map +0 -1
  1036. package/bundles/primeng-chips.umd.min.js +0 -16
  1037. package/bundles/primeng-chips.umd.min.js.map +0 -1
  1038. package/bundles/primeng-codehighlighter.umd.min.js +0 -2
  1039. package/bundles/primeng-codehighlighter.umd.min.js.map +0 -1
  1040. package/bundles/primeng-colorpicker.umd.min.js +0 -2
  1041. package/bundles/primeng-colorpicker.umd.min.js.map +0 -1
  1042. package/bundles/primeng-confirmdialog.umd.min.js +0 -2
  1043. package/bundles/primeng-confirmdialog.umd.min.js.map +0 -1
  1044. package/bundles/primeng-confirmpopup.umd.min.js +0 -2
  1045. package/bundles/primeng-confirmpopup.umd.min.js.map +0 -1
  1046. package/bundles/primeng-contextmenu.umd.min.js +0 -16
  1047. package/bundles/primeng-contextmenu.umd.min.js.map +0 -1
  1048. package/bundles/primeng-dataview.umd.min.js +0 -2
  1049. package/bundles/primeng-dataview.umd.min.js.map +0 -1
  1050. package/bundles/primeng-defer.umd.min.js +0 -2
  1051. package/bundles/primeng-defer.umd.min.js.map +0 -1
  1052. package/bundles/primeng-dialog.umd.min.js +0 -2
  1053. package/bundles/primeng-dialog.umd.min.js.map +0 -1
  1054. package/bundles/primeng-divider.umd.min.js +0 -2
  1055. package/bundles/primeng-divider.umd.min.js.map +0 -1
  1056. package/bundles/primeng-dom.umd.min.js +0 -16
  1057. package/bundles/primeng-dom.umd.min.js.map +0 -1
  1058. package/bundles/primeng-dragdrop.umd.min.js +0 -2
  1059. package/bundles/primeng-dragdrop.umd.min.js.map +0 -1
  1060. package/bundles/primeng-dropdown.umd.min.js +0 -16
  1061. package/bundles/primeng-dropdown.umd.min.js.map +0 -1
  1062. package/bundles/primeng-dynamicdialog.umd.min.js +0 -2
  1063. package/bundles/primeng-dynamicdialog.umd.min.js.map +0 -1
  1064. package/bundles/primeng-editor.umd.min.js +0 -2
  1065. package/bundles/primeng-editor.umd.min.js.map +0 -1
  1066. package/bundles/primeng-fieldset.umd.min.js +0 -2
  1067. package/bundles/primeng-fieldset.umd.min.js.map +0 -1
  1068. package/bundles/primeng-fileupload.umd.min.js +0 -16
  1069. package/bundles/primeng-fileupload.umd.min.js.map +0 -1
  1070. package/bundles/primeng-focustrap.umd.min.js +0 -2
  1071. package/bundles/primeng-focustrap.umd.min.js.map +0 -1
  1072. package/bundles/primeng-fullcalendar.umd.min.js +0 -2
  1073. package/bundles/primeng-fullcalendar.umd.min.js.map +0 -1
  1074. package/bundles/primeng-galleria.umd.min.js +0 -16
  1075. package/bundles/primeng-galleria.umd.min.js.map +0 -1
  1076. package/bundles/primeng-gmap.umd.min.js +0 -16
  1077. package/bundles/primeng-gmap.umd.min.js.map +0 -1
  1078. package/bundles/primeng-inplace.umd.min.js +0 -2
  1079. package/bundles/primeng-inplace.umd.min.js.map +0 -1
  1080. package/bundles/primeng-inputmask.umd.min.js +0 -2
  1081. package/bundles/primeng-inputmask.umd.min.js.map +0 -1
  1082. package/bundles/primeng-inputnumber.umd.min.js +0 -16
  1083. package/bundles/primeng-inputnumber.umd.min.js.map +0 -1
  1084. package/bundles/primeng-inputswitch.umd.min.js +0 -2
  1085. package/bundles/primeng-inputswitch.umd.min.js.map +0 -1
  1086. package/bundles/primeng-inputtext.umd.min.js +0 -2
  1087. package/bundles/primeng-inputtext.umd.min.js.map +0 -1
  1088. package/bundles/primeng-inputtextarea.umd.min.js +0 -2
  1089. package/bundles/primeng-inputtextarea.umd.min.js.map +0 -1
  1090. package/bundles/primeng-keyfilter.umd.min.js +0 -16
  1091. package/bundles/primeng-keyfilter.umd.min.js.map +0 -1
  1092. package/bundles/primeng-knob.umd.min.js +0 -2
  1093. package/bundles/primeng-knob.umd.min.js.map +0 -1
  1094. package/bundles/primeng-lightbox.umd.min.js +0 -2
  1095. package/bundles/primeng-lightbox.umd.min.js.map +0 -1
  1096. package/bundles/primeng-listbox.umd.min.js +0 -16
  1097. package/bundles/primeng-listbox.umd.min.js.map +0 -1
  1098. package/bundles/primeng-megamenu.umd.min.js +0 -2
  1099. package/bundles/primeng-megamenu.umd.min.js.map +0 -1
  1100. package/bundles/primeng-menu.umd.min.js +0 -16
  1101. package/bundles/primeng-menu.umd.min.js.map +0 -1
  1102. package/bundles/primeng-menubar.umd.min.js +0 -2
  1103. package/bundles/primeng-menubar.umd.min.js.map +0 -1
  1104. package/bundles/primeng-message.umd.min.js +0 -2
  1105. package/bundles/primeng-message.umd.min.js.map +0 -1
  1106. package/bundles/primeng-messages.umd.min.js +0 -16
  1107. package/bundles/primeng-messages.umd.min.js.map +0 -1
  1108. package/bundles/primeng-multiselect.umd.min.js +0 -16
  1109. package/bundles/primeng-multiselect.umd.min.js.map +0 -1
  1110. package/bundles/primeng-orderlist.umd.min.js +0 -16
  1111. package/bundles/primeng-orderlist.umd.min.js.map +0 -1
  1112. package/bundles/primeng-organizationchart.umd.min.js +0 -16
  1113. package/bundles/primeng-organizationchart.umd.min.js.map +0 -1
  1114. package/bundles/primeng-overlaypanel.umd.min.js +0 -2
  1115. package/bundles/primeng-overlaypanel.umd.min.js.map +0 -1
  1116. package/bundles/primeng-paginator.umd.min.js +0 -16
  1117. package/bundles/primeng-paginator.umd.min.js.map +0 -1
  1118. package/bundles/primeng-panel.umd.min.js +0 -2
  1119. package/bundles/primeng-panel.umd.min.js.map +0 -1
  1120. package/bundles/primeng-panelmenu.umd.min.js +0 -16
  1121. package/bundles/primeng-panelmenu.umd.min.js.map +0 -1
  1122. package/bundles/primeng-password.umd.min.js +0 -2
  1123. package/bundles/primeng-password.umd.min.js.map +0 -1
  1124. package/bundles/primeng-picklist.umd.min.js +0 -2
  1125. package/bundles/primeng-picklist.umd.min.js.map +0 -1
  1126. package/bundles/primeng-progressbar.umd.min.js +0 -2
  1127. package/bundles/primeng-progressbar.umd.min.js.map +0 -1
  1128. package/bundles/primeng-progressspinner.umd.min.js +0 -2
  1129. package/bundles/primeng-progressspinner.umd.min.js.map +0 -1
  1130. package/bundles/primeng-radiobutton.umd.min.js +0 -2
  1131. package/bundles/primeng-radiobutton.umd.min.js.map +0 -1
  1132. package/bundles/primeng-rating.umd.min.js +0 -2
  1133. package/bundles/primeng-rating.umd.min.js.map +0 -1
  1134. package/bundles/primeng-ripple.umd.min.js +0 -2
  1135. package/bundles/primeng-ripple.umd.min.js.map +0 -1
  1136. package/bundles/primeng-scrollpanel.umd.min.js +0 -2
  1137. package/bundles/primeng-scrollpanel.umd.min.js.map +0 -1
  1138. package/bundles/primeng-scrolltop.umd.min.js +0 -2
  1139. package/bundles/primeng-scrolltop.umd.min.js.map +0 -1
  1140. package/bundles/primeng-selectbutton.umd.min.js +0 -16
  1141. package/bundles/primeng-selectbutton.umd.min.js.map +0 -1
  1142. package/bundles/primeng-sidebar.umd.min.js +0 -2
  1143. package/bundles/primeng-sidebar.umd.min.js.map +0 -1
  1144. package/bundles/primeng-skeleton.umd.min.js +0 -2
  1145. package/bundles/primeng-skeleton.umd.min.js.map +0 -1
  1146. package/bundles/primeng-slidemenu.umd.min.js +0 -2
  1147. package/bundles/primeng-slidemenu.umd.min.js.map +0 -1
  1148. package/bundles/primeng-slider.umd.min.js +0 -2
  1149. package/bundles/primeng-slider.umd.min.js.map +0 -1
  1150. package/bundles/primeng-spinner.umd.min.js +0 -2
  1151. package/bundles/primeng-spinner.umd.min.js.map +0 -1
  1152. package/bundles/primeng-splitbutton.umd.min.js +0 -2
  1153. package/bundles/primeng-splitbutton.umd.min.js.map +0 -1
  1154. package/bundles/primeng-splitter.umd.min.js +0 -16
  1155. package/bundles/primeng-splitter.umd.min.js.map +0 -1
  1156. package/bundles/primeng-steps.umd.min.js +0 -2
  1157. package/bundles/primeng-steps.umd.min.js.map +0 -1
  1158. package/bundles/primeng-styleclass.umd.min.js +0 -2
  1159. package/bundles/primeng-styleclass.umd.min.js.map +0 -1
  1160. package/bundles/primeng-table.umd.min.js +0 -16
  1161. package/bundles/primeng-table.umd.min.js.map +0 -1
  1162. package/bundles/primeng-tabmenu.umd.min.js +0 -2
  1163. package/bundles/primeng-tabmenu.umd.min.js.map +0 -1
  1164. package/bundles/primeng-tabview.umd.min.js +0 -2
  1165. package/bundles/primeng-tabview.umd.min.js.map +0 -1
  1166. package/bundles/primeng-tag.umd.min.js +0 -2
  1167. package/bundles/primeng-tag.umd.min.js.map +0 -1
  1168. package/bundles/primeng-terminal.umd.min.js +0 -2
  1169. package/bundles/primeng-terminal.umd.min.js.map +0 -1
  1170. package/bundles/primeng-tieredmenu.umd.min.js +0 -2
  1171. package/bundles/primeng-tieredmenu.umd.min.js.map +0 -1
  1172. package/bundles/primeng-timeline.umd.min.js +0 -2
  1173. package/bundles/primeng-timeline.umd.min.js.map +0 -1
  1174. package/bundles/primeng-toast.umd.min.js +0 -16
  1175. package/bundles/primeng-toast.umd.min.js.map +0 -1
  1176. package/bundles/primeng-togglebutton.umd.min.js +0 -2
  1177. package/bundles/primeng-togglebutton.umd.min.js.map +0 -1
  1178. package/bundles/primeng-toolbar.umd.min.js +0 -2
  1179. package/bundles/primeng-toolbar.umd.min.js.map +0 -1
  1180. package/bundles/primeng-tooltip.umd.min.js +0 -2
  1181. package/bundles/primeng-tooltip.umd.min.js.map +0 -1
  1182. package/bundles/primeng-tree.umd.min.js +0 -16
  1183. package/bundles/primeng-tree.umd.min.js.map +0 -1
  1184. package/bundles/primeng-treetable.umd.min.js +0 -16
  1185. package/bundles/primeng-treetable.umd.min.js.map +0 -1
  1186. package/bundles/primeng-tristatecheckbox.umd.min.js +0 -2
  1187. package/bundles/primeng-tristatecheckbox.umd.min.js.map +0 -1
  1188. package/bundles/primeng-utils.umd.min.js +0 -2
  1189. package/bundles/primeng-utils.umd.min.js.map +0 -1
  1190. package/bundles/primeng-virtualscroller.umd.min.js +0 -2
  1191. package/bundles/primeng-virtualscroller.umd.min.js.map +0 -1
  1192. package/bundles/primeng.umd.min.js +0 -2
  1193. package/bundles/primeng.umd.min.js.map +0 -1
  1194. package/button/primeng-button.metadata.json +0 -1
  1195. package/calendar/primeng-calendar.metadata.json +0 -1
  1196. package/captcha/primeng-captcha.metadata.json +0 -1
  1197. package/card/primeng-card.metadata.json +0 -1
  1198. package/carousel/primeng-carousel.metadata.json +0 -1
  1199. package/cascadeselect/primeng-cascadeselect.metadata.json +0 -1
  1200. package/chart/primeng-chart.metadata.json +0 -1
  1201. package/checkbox/primeng-checkbox.metadata.json +0 -1
  1202. package/chip/primeng-chip.metadata.json +0 -1
  1203. package/chips/primeng-chips.metadata.json +0 -1
  1204. package/codehighlighter/primeng-codehighlighter.metadata.json +0 -1
  1205. package/colorpicker/primeng-colorpicker.metadata.json +0 -1
  1206. package/confirmdialog/primeng-confirmdialog.metadata.json +0 -1
  1207. package/confirmpopup/primeng-confirmpopup.metadata.json +0 -1
  1208. package/contextmenu/primeng-contextmenu.metadata.json +0 -1
  1209. package/dataview/primeng-dataview.metadata.json +0 -1
  1210. package/defer/primeng-defer.metadata.json +0 -1
  1211. package/dialog/primeng-dialog.metadata.json +0 -1
  1212. package/divider/primeng-divider.metadata.json +0 -1
  1213. package/dom/primeng-dom.metadata.json +0 -1
  1214. package/dragdrop/primeng-dragdrop.metadata.json +0 -1
  1215. package/dropdown/primeng-dropdown.metadata.json +0 -1
  1216. package/dynamicdialog/primeng-dynamicdialog.metadata.json +0 -1
  1217. package/editor/primeng-editor.metadata.json +0 -1
  1218. package/fieldset/primeng-fieldset.metadata.json +0 -1
  1219. package/fileupload/primeng-fileupload.metadata.json +0 -1
  1220. package/focustrap/primeng-focustrap.metadata.json +0 -1
  1221. package/fullcalendar/primeng-fullcalendar.metadata.json +0 -1
  1222. package/galleria/primeng-galleria.metadata.json +0 -1
  1223. package/gmap/primeng-gmap.metadata.json +0 -1
  1224. package/inplace/primeng-inplace.metadata.json +0 -1
  1225. package/inputmask/primeng-inputmask.metadata.json +0 -1
  1226. package/inputnumber/primeng-inputnumber.metadata.json +0 -1
  1227. package/inputswitch/primeng-inputswitch.metadata.json +0 -1
  1228. package/inputtext/primeng-inputtext.metadata.json +0 -1
  1229. package/inputtextarea/primeng-inputtextarea.metadata.json +0 -1
  1230. package/keyfilter/primeng-keyfilter.metadata.json +0 -1
  1231. package/knob/primeng-knob.metadata.json +0 -1
  1232. package/lightbox/primeng-lightbox.metadata.json +0 -1
  1233. package/listbox/primeng-listbox.metadata.json +0 -1
  1234. package/megamenu/primeng-megamenu.metadata.json +0 -1
  1235. package/menu/primeng-menu.metadata.json +0 -1
  1236. package/menubar/primeng-menubar.metadata.json +0 -1
  1237. package/message/primeng-message.metadata.json +0 -1
  1238. package/messages/primeng-messages.metadata.json +0 -1
  1239. package/multiselect/primeng-multiselect.metadata.json +0 -1
  1240. package/orderlist/primeng-orderlist.metadata.json +0 -1
  1241. package/organizationchart/primeng-organizationchart.metadata.json +0 -1
  1242. package/overlaypanel/primeng-overlaypanel.metadata.json +0 -1
  1243. package/paginator/primeng-paginator.metadata.json +0 -1
  1244. package/panel/primeng-panel.metadata.json +0 -1
  1245. package/panelmenu/primeng-panelmenu.metadata.json +0 -1
  1246. package/password/primeng-password.metadata.json +0 -1
  1247. package/picklist/primeng-picklist.metadata.json +0 -1
  1248. package/primeng.metadata.json +0 -1
  1249. package/progressbar/primeng-progressbar.metadata.json +0 -1
  1250. package/progressspinner/primeng-progressspinner.metadata.json +0 -1
  1251. package/radiobutton/primeng-radiobutton.metadata.json +0 -1
  1252. package/rating/primeng-rating.metadata.json +0 -1
  1253. package/ripple/primeng-ripple.metadata.json +0 -1
  1254. package/scrollpanel/primeng-scrollpanel.metadata.json +0 -1
  1255. package/scrolltop/primeng-scrolltop.metadata.json +0 -1
  1256. package/selectbutton/primeng-selectbutton.metadata.json +0 -1
  1257. package/sidebar/primeng-sidebar.metadata.json +0 -1
  1258. package/skeleton/primeng-skeleton.metadata.json +0 -1
  1259. package/slidemenu/primeng-slidemenu.metadata.json +0 -1
  1260. package/slider/primeng-slider.metadata.json +0 -1
  1261. package/spinner/primeng-spinner.metadata.json +0 -1
  1262. package/splitbutton/primeng-splitbutton.metadata.json +0 -1
  1263. package/splitter/primeng-splitter.metadata.json +0 -1
  1264. package/steps/primeng-steps.metadata.json +0 -1
  1265. package/styleclass/primeng-styleclass.metadata.json +0 -1
  1266. package/table/primeng-table.metadata.json +0 -1
  1267. package/tabmenu/primeng-tabmenu.metadata.json +0 -1
  1268. package/tabview/primeng-tabview.metadata.json +0 -1
  1269. package/tag/primeng-tag.metadata.json +0 -1
  1270. package/terminal/primeng-terminal.metadata.json +0 -1
  1271. package/tieredmenu/primeng-tieredmenu.metadata.json +0 -1
  1272. package/timeline/primeng-timeline.metadata.json +0 -1
  1273. package/toast/primeng-toast.metadata.json +0 -1
  1274. package/togglebutton/primeng-togglebutton.metadata.json +0 -1
  1275. package/toolbar/primeng-toolbar.metadata.json +0 -1
  1276. package/tooltip/primeng-tooltip.metadata.json +0 -1
  1277. package/tree/primeng-tree.metadata.json +0 -1
  1278. package/treetable/primeng-treetable.metadata.json +0 -1
  1279. package/tristatecheckbox/primeng-tristatecheckbox.metadata.json +0 -1
  1280. package/utils/primeng-utils.metadata.json +0 -1
  1281. package/virtualscroller/primeng-virtualscroller.metadata.json +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-treetable.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","../../src/app/components/treetable/treetable.ts","../../src/app/components/treetable/primeng-treetable.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { NgModule, AfterContentInit, OnInit, OnDestroy, HostListener, Injectable, Directive, Component, Input, Output, EventEmitter, ContentChildren, TemplateRef, QueryList, ElementRef, NgZone, ViewChild, AfterViewInit, AfterViewChecked, OnChanges, SimpleChanges, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TreeNode } from 'primeng/api';\nimport { Subject, Subscription } from 'rxjs';\nimport { DomHandler } from 'primeng/dom';\nimport { PaginatorModule } from 'primeng/paginator';\nimport { PrimeTemplate, SharedModule, FilterService } from 'primeng/api';\nimport { SortMeta } from 'primeng/api';\nimport { BlockableUI } from 'primeng/api';\nimport { FilterMetadata } from 'primeng/api';\nimport { ObjectUtils } from 'primeng/utils';\nimport { RippleModule } from 'primeng/ripple';\nimport { ScrollingModule, CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\n\n@Injectable()\nexport class TreeTableService {\n\n private sortSource = new Subject<SortMeta|SortMeta[]>();\n private selectionSource = new Subject();\n private contextMenuSource = new Subject<any>();\n private uiUpdateSource = new Subject<any>();\n private totalRecordsSource = new Subject<any>();\n\n sortSource$ = this.sortSource.asObservable();\n selectionSource$ = this.selectionSource.asObservable();\n contextMenuSource$ = this.contextMenuSource.asObservable();\n uiUpdateSource$ = this.uiUpdateSource.asObservable();\n totalRecordsSource$ = this.totalRecordsSource.asObservable();\n\n onSort(sortMeta: SortMeta|SortMeta[]) {\n this.sortSource.next(sortMeta);\n }\n\n onSelectionChange() {\n this.selectionSource.next();\n }\n\n onContextMenu(node: any) {\n this.contextMenuSource.next(node);\n }\n\n onUIUpdate(value: any) {\n this.uiUpdateSource.next(value);\n }\n\n onTotalRecordsChange(value: number) {\n this.totalRecordsSource.next(value);\n }\n}\n\n@Component({\n selector: 'p-treeTable',\n template: `\n <div #container [ngStyle]=\"style\" [class]=\"styleClass\" data-scrollselectors=\".p-treetable-scrollable-body\"\n [ngClass]=\"{'p-treetable p-component': true,\n 'p-treetable-hoverable-rows': (rowHover||(selectionMode === 'single' || selectionMode === 'multiple')),\n 'p-treetable-auto-layout': autoLayout,\n 'p-treetable-resizable': resizableColumns,\n 'p-treetable-resizable-fit': (resizableColumns && columnResizeMode === 'fit'),\n 'p-treetable-flex-scrollable': (scrollable && scrollHeight === 'flex')}\">\n <div class=\"p-treetable-loading\" *ngIf=\"loading && showLoader\">\n <div class=\"p-treetable-loading-overlay p-component-overlay\">\n <i [class]=\"'p-treetable-loading-icon pi-spin ' + loadingIcon\"></i>\n </div>\n </div>\n <div *ngIf=\"captionTemplate\" class=\"p-treetable-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\"\n [currentPageReportTemplate]=\"currentPageReportTemplate\" [showFirstLastIcon]=\"showFirstLastIcon\" [dropdownItemTemplate]=\"paginatorDropdownItemTemplate\" [showCurrentPageReport]=\"showCurrentPageReport\" [showJumpToPageDropdown]=\"showJumpToPageDropdown\" [showPageLinks]=\"showPageLinks\"></p-paginator>\n\n <div class=\"p-treetable-wrapper\" *ngIf=\"!scrollable\">\n <table #table [ngClass]=\"tableStyleClass\" [ngStyle]=\"tableStyle\">\n <ng-container *ngTemplateOutlet=\"colGroupTemplate; context {$implicit: columns}\"></ng-container>\n <thead class=\"p-treetable-thead\">\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: {$implicit: columns}\"></ng-container>\n </thead>\n <tbody class=\"p-treetable-tbody\" [pTreeTableBody]=\"columns\" [pTreeTableBodyTemplate]=\"bodyTemplate\"></tbody>\n <tfoot class=\"p-treetable-tfoot\">\n <ng-container *ngTemplateOutlet=\"footerTemplate; context {$implicit: columns}\"></ng-container>\n </tfoot>\n </table>\n </div>\n\n <div class=\"p-treetable-scrollable-wrapper\" *ngIf=\"scrollable\">\n <div class=\"p-treetable-scrollable-view p-treetable-frozen-view\" *ngIf=\"frozenColumns||frozenBodyTemplate\" #scrollableFrozenView [ttScrollableView]=\"frozenColumns\" [frozen]=\"true\" [ngStyle]=\"{width: frozenWidth}\" [scrollHeight]=\"scrollHeight\"></div>\n <div class=\"p-treetable-scrollable-view\" #scrollableView [ttScrollableView]=\"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\"\n [currentPageReportTemplate]=\"currentPageReportTemplate\" [showFirstLastIcon]=\"showFirstLastIcon\" [dropdownItemTemplate]=\"paginatorDropdownItemTemplate\" [showCurrentPageReport]=\"showCurrentPageReport\" [showJumpToPageDropdown]=\"showJumpToPageDropdown\" [showPageLinks]=\"showPageLinks\"></p-paginator>\n <div *ngIf=\"summaryTemplate\" class=\"p-treetable-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\n <span #reorderIndicatorUp class=\"pi pi-arrow-down p-treetable-reorder-indicator-up\" *ngIf=\"reorderableColumns\"></span>\n <span #reorderIndicatorDown class=\"pi pi-arrow-up p-treetable-reorder-indicator-down\" *ngIf=\"reorderableColumns\"></span>\n </div>\n `,\n providers: [TreeTableService],\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./treetable.css']\n})\nexport class TreeTable implements AfterContentInit, OnInit, OnDestroy, BlockableUI, OnChanges {\n\n @Input() columns: any[];\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() tableStyle: any;\n\n @Input() tableStyleClass: string;\n\n @Input() autoLayout: boolean;\n\n @Input() lazy: boolean = false;\n\n @Input() lazyLoadOnInit: boolean = true;\n\n @Input() paginator: boolean;\n\n @Input() rows: number;\n\n @Input() first: number = 0;\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() 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() customSort: boolean;\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() compareSelectionBy: string = 'deepEquals';\n\n @Input() rowHover: boolean;\n\n @Input() loading: boolean;\n\n @Input() loadingIcon: string = 'pi pi-spinner';\n\n @Input() showLoader: boolean = true;\n\n @Input() scrollable: boolean;\n\n @Input() scrollHeight: string;\n\n @Input() virtualScroll: boolean;\n\n @Input() virtualScrollDelay: number = 150;\n\n @Input() virtualRowHeight: number = 28;\n\n @Input() minBufferPx: number;\n\n @Input() maxBufferPx: number;\n\n @Input() frozenWidth: string;\n\n @Input() frozenColumns: any[];\n\n @Input() resizableColumns: boolean;\n\n @Input() columnResizeMode: string = 'fit';\n\n @Input() reorderableColumns: boolean;\n\n @Input() contextMenu: any;\n\n @Input() rowTrackBy: Function = (index: number, item: any) => item;\n\n @Input() filters: { [s: string]: FilterMetadata; } = {};\n\n @Input() globalFilterFields: string[];\n\n @Input() filterDelay: number = 300;\n\n @Input() filterMode: string = 'lenient';\n\n @Input() filterLocale: string;\n\n @Output() onFilter: EventEmitter<any> = new EventEmitter();\n\n @Output() onNodeExpand: EventEmitter<any> = new EventEmitter();\n\n @Output() onNodeCollapse: EventEmitter<any> = new EventEmitter();\n\n @Output() onPage: EventEmitter<any> = new EventEmitter();\n\n @Output() onSort: EventEmitter<any> = new EventEmitter();\n\n @Output() onLazyLoad: EventEmitter<any> = new EventEmitter();\n\n @Output() sortFunction: EventEmitter<any> = new EventEmitter();\n\n @Output() onColResize: EventEmitter<any> = new EventEmitter();\n\n @Output() onColReorder: EventEmitter<any> = new EventEmitter();\n\n @Output() onNodeSelect: EventEmitter<any> = new EventEmitter();\n\n @Output() onNodeUnselect: EventEmitter<any> = new EventEmitter();\n\n @Output() onContextMenuSelect: EventEmitter<any> = new EventEmitter();\n\n @Output() onHeaderCheckboxToggle: 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 @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: TreeNode[] = [];\n\n serializedValue: any[];\n\n _totalRecords: number = 0;\n\n _multiSortMeta: SortMeta[];\n\n _sortField: string;\n\n _sortOrder: number = 1;\n\n filteredNodes: any[];\n\n filterTimeout: any;\n\n colGroupTemplate: TemplateRef<any>;\n\n captionTemplate: TemplateRef<any>;\n\n headerTemplate: TemplateRef<any>;\n\n bodyTemplate: TemplateRef<any>;\n\n loadingBodyTemplate: TemplateRef<any>;\n\n footerTemplate: TemplateRef<any>;\n\n summaryTemplate: TemplateRef<any>;\n\n emptyMessageTemplate: TemplateRef<any>;\n\n paginatorLeftTemplate: TemplateRef<any>;\n\n paginatorRightTemplate: TemplateRef<any>;\n\n paginatorDropdownItemTemplate: TemplateRef<any>;\n\n frozenHeaderTemplate: TemplateRef<any>;\n\n frozenBodyTemplate: TemplateRef<any>;\n\n frozenFooterTemplate: TemplateRef<any>;\n\n frozenColGroupTemplate: TemplateRef<any>;\n\n lastResizerHelperX: number;\n\n reorderIconWidth: number;\n\n reorderIconHeight: number;\n\n draggedColumn: any;\n\n dropPosition: number;\n\n preventSelectionSetterPropagation: boolean;\n\n _selection: any;\n\n selectionKeys: any = {};\n\n rowTouched: boolean;\n\n editingCell: Element;\n\n editingCellData: any;\n\n editingCellField: any;\n\n editingCellClick: boolean;\n\n documentEditListener: any;\n\n initialized: boolean;\n\n toggleRowIndex: number;\n\n ngOnInit() {\n if (this.lazy && this.lazyLoadOnInit) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\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 '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 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 });\n }\n\n constructor(public el: ElementRef, public zone: NgZone, public tableService: TreeTableService, public filterService: FilterService) {}\n\n ngOnChanges(simpleChange: SimpleChanges) {\n if (simpleChange.value) {\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.updateSerializedValue();\n this.tableService.onUIUpdate(this.value);\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') {\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 updateSerializedValue() {\n this.serializedValue = [];\n\n if (this.paginator)\n this.serializePageNodes();\n else\n this.serializeNodes(null, this.filteredNodes||this.value, 0, true);\n }\n\n serializeNodes(parent, nodes, level, visible) {\n if (nodes && nodes.length) {\n for(let node of nodes) {\n node.parent = parent;\n const rowNode = {\n node: node,\n parent: parent,\n level: level,\n visible: visible && (parent ? parent.expanded : true)\n };\n this.serializedValue.push(rowNode);\n\n if (rowNode.visible && node.expanded) {\n this.serializeNodes(node, node.children, level + 1, rowNode.visible);\n }\n }\n }\n }\n\n serializePageNodes() {\n let data = this.filteredNodes || this.value;\n this.serializedValue = [];\n if (data && data.length) {\n const first = this.lazy ? 0 : this.first;\n\n for(let i = first; i < (first + this.rows); i++) {\n let node = data[i];\n if (node) {\n this.serializedValue.push({\n node: node,\n parent: null,\n level: 0,\n visible: true\n });\n\n this.serializeNodes(node, node.children, 1, true);\n }\n }\n }\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 node of this._selection) {\n this.selectionKeys[String(ObjectUtils.resolveFieldData(node.data, this.dataKey))] = 1;\n }\n }\n else {\n this.selectionKeys[String(ObjectUtils.resolveFieldData(this._selection.data, 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 else\n this.serializePageNodes();\n\n this.onPage.emit({\n first: this.first,\n rows: this.rows\n });\n\n this.tableService.onUIUpdate(this.value);\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 this.sortSingle();\n\n if (this.resetPageOnSort && this.scrollable) {\n this.resetScrollTop();\n }\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 && this.scrollable) {\n this.resetScrollTop();\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 && this.scrollable) {\n this.resetScrollTop();\n }\n }\n this.multiSortMeta.push({ field: event.field, order: this.defaultSortOrder });\n }\n\n this.sortMultiple();\n }\n }\n\n sortSingle() {\n if (this.sortField && this.sortOrder) {\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n else if (this.value) {\n this.sortNodes(this.value);\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 this.updateSerializedValue();\n }\n }\n\n sortNodes(nodes) {\n if (!nodes || nodes.length === 0) {\n return;\n }\n\n if (this.customSort) {\n this.sortFunction.emit({\n data: nodes,\n mode: this.sortMode,\n field: this.sortField,\n order: this.sortOrder\n });\n }\n else {\n nodes.sort((node1, node2) => {\n let value1 = ObjectUtils.resolveFieldData(node1.data, this.sortField);\n let value2 = ObjectUtils.resolveFieldData(node2.data, 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, undefined, {numeric: true});\n else\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\n\n return (this.sortOrder * result);\n });\n }\n\n for(let node of nodes) {\n this.sortNodes(node.children);\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 this.sortMultipleNodes(this.value);\n\n if (this.hasFilter()) {\n this._filter();\n }\n }\n\n this.onSort.emit({\n multisortmeta: this.multiSortMeta\n });\n this.updateSerializedValue();\n this.tableService.onSort(this.multiSortMeta);\n }\n }\n\n sortMultipleNodes(nodes) {\n if (!nodes || nodes.length === 0) {\n return;\n }\n\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 nodes.sort((node1, node2) => {\n return this.multisortField(node1, node2, this.multiSortMeta, 0);\n });\n }\n\n for(let node of nodes) {\n this.sortMultipleNodes(node.children);\n }\n }\n\n multisortField(node1, node2, multiSortMeta, index) {\n let value1 = ObjectUtils.resolveFieldData(node1.data, multiSortMeta[index].field);\n let value2 = ObjectUtils.resolveFieldData(node2.data, 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 if (typeof value1 == 'string' || value1 instanceof String) {\n if (value1.localeCompare && (value1 != value2)) {\n return (multiSortMeta[index].order * value1.localeCompare(value2, undefined, {numeric: true}));\n }\n }\n else {\n result = (value1 < value2) ? -1 : 1;\n }\n\n if (value1 == value2) {\n return (multiSortMeta.length - 1) > (index) ? (this.multisortField(node1, node2, 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 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'] ? this.filters['global'].value : null,\n multiSortMeta: this.multiSortMeta\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 isEmpty() {\n let data = this.filteredNodes||this.value;\n return data == null || data.length == 0;\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\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 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 newColumnWidth = columnWidth + delta;\n let minWidth = column.style.minWidth || 15;\n\n if (columnWidth + delta > parseInt(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-treetable-scrollable-body table') || DomHandler.findSingle(scrollableView, '.p-treetable-virtual-scrollable-body table');\n let scrollableHeaderTable = DomHandler.findSingle(scrollableView, 'table.p-treetable-scrollable-header-table');\n let scrollableFooterTable = DomHandler.findSingle(scrollableView, 'table.p-treetable-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 (this.scrollable) {\n let scrollableView = this.findParentScrollableView(column);\n let scrollableBody = DomHandler.findSingle(scrollableView, '.p-treetable-scrollable-body') || DomHandler.findSingle(scrollableView, 'cdk-virtual-scroll-viewport');\n let scrollableHeader = DomHandler.findSingle(scrollableView, '.p-treetable-scrollable-header');\n let scrollableFooter = DomHandler.findSingle(scrollableView, '.p-treetable-scrollable-footer');\n let scrollableBodyTable = DomHandler.findSingle(scrollableView, '.p-treetable-scrollable-body table') || DomHandler.findSingle(scrollableView, 'cdk-virtual-scroll-viewport table');\n let scrollableHeaderTable = DomHandler.findSingle(scrollableView, 'table.p-treetable-scrollable-header-table');\n let scrollableFooterTable = DomHandler.findSingle(scrollableView, 'table.p-treetable-scrollable-footer-table');\n scrollableBodyTable.style.width = scrollableBodyTable.offsetWidth + delta + 'px';\n scrollableHeaderTable.style.width = scrollableHeaderTable.offsetWidth + delta + 'px';\n if (scrollableFooterTable) {\n scrollableFooterTable.style.width = scrollableFooterTable.offsetWidth + delta + 'px';\n }\n let resizeColumnIndex = DomHandler.index(column);\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 this.resizeColGroup(scrollableHeaderTable, resizeColumnIndex, newColumnWidth, null);\n this.resizeColGroup(scrollableBodyTable, resizeColumnIndex, newColumnWidth, null);\n this.resizeColGroup(scrollableFooterTable, resizeColumnIndex, newColumnWidth, null);\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 this.onColResize.emit({\n element: column,\n delta: delta\n });\n }\n\n this.resizeHelperViewChild.nativeElement.style.display = 'none';\n DomHandler.removeClass(this.containerViewChild.nativeElement, 'p-unselectable-text');\n }\n\n findParentScrollableView(column) {\n if (column) {\n let parent = column.parentElement;\n while (parent && !DomHandler.hasClass(parent, 'p-treetable-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 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 this.reorderIndicatorUpViewChild.nativeElement.style.display = 'block';\n this.reorderIndicatorDownViewChild.nativeElement.style.display = 'block';\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, 'ttreorderablecolumn');\n let dropIndex = DomHandler.indexWithinGroup(dropColumn, 'ttreorderablecolumn');\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\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 handleRowClick(event) {\n let targetNode = (<HTMLElement> event.originalEvent.target).nodeName;\n if (targetNode == 'INPUT' || targetNode == 'BUTTON' || targetNode == 'A' || (DomHandler.hasClass(event.originalEvent.target, 'p-clickable'))) {\n return;\n }\n\n if (this.selectionMode) {\n this.preventSelectionSetterPropagation = true;\n let rowNode = event.rowNode;\n let selected = this.isSelected(rowNode.node);\n let metaSelection = this.rowTouched ? false : this.metaKeySelection;\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rowNode.node.data, this.dataKey)) : null;\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(rowNode.node);\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.onNodeUnselect.emit({originalEvent: event.originalEvent, node: rowNode.node, type: 'row'});\n }\n else {\n if (this.isSingleSelectionMode()) {\n this._selection = rowNode.node;\n this.selectionChange.emit(rowNode.node);\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, rowNode.node];\n this.selectionChange.emit(this.selection);\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n\n this.onNodeSelect.emit({originalEvent: event.originalEvent, node: rowNode.node, 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.onNodeUnselect.emit({ originalEvent: event.originalEvent, node: rowNode.node, type: 'row' });\n }\n else {\n this._selection = rowNode.node;\n this.selectionChange.emit(this.selection);\n this.onNodeSelect.emit({ originalEvent: event.originalEvent, node: rowNode.node, 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(rowNode.node);\n this._selection = this.selection.filter((val, i) => i != selectionIndex);\n this.selectionChange.emit(this.selection);\n this.onNodeUnselect.emit({ originalEvent: event.originalEvent, node: rowNode.node, type: 'row' });\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n }\n else {\n this._selection = this.selection ? [...this.selection, rowNode.node] : [rowNode.node];\n this.selectionChange.emit(this.selection);\n this.onNodeSelect.emit({ originalEvent: event.originalEvent, node: rowNode.node, type: 'row', index: event.rowIndex });\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n }\n }\n\n this.tableService.onSelectionChange();\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 node = event.rowNode.node;\n\n if (this.contextMenuSelectionMode === 'separate') {\n this.contextMenuSelection = node;\n this.contextMenuSelectionChange.emit(node);\n this.onContextMenuSelect.emit({originalEvent: event.originalEvent, node: node});\n this.contextMenu.show(event.originalEvent);\n this.tableService.onContextMenu(node);\n }\n else if (this.contextMenuSelectionMode === 'joint') {\n this.preventSelectionSetterPropagation = true;\n let selected = this.isSelected(node);\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(node.data, this.dataKey)) : null;\n\n if (!selected) {\n if (this.isSingleSelectionMode()) {\n this.selection = node;\n this.selectionChange.emit(node);\n }\n else if (this.isMultipleSelectionMode()) {\n this.selection = [node];\n this.selectionChange.emit(this.selection);\n }\n\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n\n this.contextMenu.show(event.originalEvent);\n this.onContextMenuSelect.emit({originalEvent: event.originalEvent, node: node});\n }\n }\n }\n\n toggleNodeWithCheckbox(event) {\n this.selection = this.selection||[];\n this.preventSelectionSetterPropagation = true;\n let node = event.rowNode.node;\n let selected = this.isSelected(node);\n\n if (selected) {\n this.propagateSelectionDown(node, false);\n if (event.rowNode.parent) {\n this.propagateSelectionUp(node.parent, false);\n }\n this.selectionChange.emit(this.selection);\n this.onNodeUnselect.emit({originalEvent: event, node: node});\n }\n else {\n this.propagateSelectionDown(node, true);\n if (event.rowNode.parent) {\n this.propagateSelectionUp(node.parent, true);\n }\n this.selectionChange.emit(this.selection);\n this.onNodeSelect.emit({originalEvent: event, node: node});\n }\n\n this.tableService.onSelectionChange();\n }\n\n toggleNodesWithCheckbox(event: Event, check: boolean) {\n let data = this.filteredNodes || this.value;\n this._selection = check && data ? data.slice() : [];\n if (check) {\n if (data && data.length) {\n for (let node of data) {\n this.propagateSelectionDown(node, true);\n }\n }\n }\n else {\n this._selection = [];\n this.selectionKeys = {};\n }\n\n this.preventSelectionSetterPropagation = true;\n this.selectionChange.emit(this._selection);\n this.tableService.onSelectionChange();\n this.onHeaderCheckboxToggle.emit({originalEvent: event, checked: check});\n }\n\n propagateSelectionUp(node: TreeNode, select: boolean) {\n if (node.children && node.children.length) {\n let selectedChildCount: number = 0;\n let childPartialSelected: boolean = false;\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(node.data, this.dataKey)) : null;\n\n for (let child of node.children) {\n if (this.isSelected(child))\n selectedChildCount++;\n else if (child.partialSelected)\n childPartialSelected = true;\n }\n\n if (select && selectedChildCount == node.children.length) {\n this._selection = [...this.selection||[], node];\n node.partialSelected = false;\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n else {\n if (!select) {\n let index = this.findIndexInSelection(node);\n if (index >= 0) {\n this._selection = this.selection.filter((val,i) => i!=index);\n\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n }\n }\n\n if (childPartialSelected || selectedChildCount > 0 && selectedChildCount != node.children.length)\n node.partialSelected = true;\n else\n node.partialSelected = false;\n }\n }\n\n let parent = node.parent;\n if (parent) {\n this.propagateSelectionUp(parent, select);\n }\n }\n\n propagateSelectionDown(node: TreeNode, select: boolean) {\n let index = this.findIndexInSelection(node);\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(node.data, this.dataKey)) : null;\n\n if (select && index == -1) {\n this._selection = [...this.selection||[],node]\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n else if (!select && index > -1) {\n this._selection = this.selection.filter((val,i) => i!=index);\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n }\n\n node.partialSelected = false;\n\n if (node.children && node.children.length) {\n for (let child of node.children) {\n this.propagateSelectionDown(child, select);\n }\n }\n }\n\n isSelected(node) {\n if (node && this.selection) {\n if (this.dataKey) {\n return this.selectionKeys[ObjectUtils.resolveFieldData(node.data, this.dataKey)] !== undefined;\n }\n else {\n if (this.selection instanceof Array)\n return this.findIndexInSelection(node) > -1;\n else\n return this.equals(node, this.selection);\n }\n }\n\n return false;\n }\n\n findIndexInSelection(node: 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(node, this.selection[i])) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n\n isSingleSelectionMode() {\n return this.selectionMode === 'single';\n }\n\n isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n }\n\n equals(node1, node2) {\n return this.compareSelectionBy === 'equals' ? (node1 === node2) : ObjectUtils.equals(node1.data, node2.data, this.dataKey);\n }\n\n filter(value, field, matchMode) {\n if (this.filterTimeout) {\n clearTimeout(this.filterTimeout);\n }\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\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.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n else {\n if (!this.value) {\n return;\n }\n\n if (!this.hasFilter()) {\n this.filteredNodes = 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.filteredNodes = [];\n const isStrictMode = this.filterMode === 'strict';\n let isValueChanged = false;\n\n for (let node of this.value) {\n let copyNode = {...node};\n let localMatch = true;\n let globalMatch = false;\n let paramsWithoutNode;\n\n for (let prop in this.filters) {\n if (this.filters.hasOwnProperty(prop) && prop !== 'global') {\n let filterMeta = this.filters[prop];\n let filterField = prop;\n let filterValue = filterMeta.value;\n let filterMatchMode = filterMeta.matchMode || 'startsWith';\n let filterConstraint = this.filterService.filters[filterMatchMode];\n paramsWithoutNode = {filterField, filterValue, filterConstraint, isStrictMode};\n if ((isStrictMode && !(this.findFilteredNodes(copyNode, paramsWithoutNode) || this.isFilterMatched(copyNode, paramsWithoutNode))) ||\n (!isStrictMode && !(this.isFilterMatched(copyNode, paramsWithoutNode) || this.findFilteredNodes(copyNode, paramsWithoutNode)))) {\n localMatch = false;\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 copyNodeForGlobal = {...copyNode};\n let filterField = globalFilterFieldsArray[j].field||globalFilterFieldsArray[j];\n let filterValue = this.filters['global'].value;\n let filterConstraint = this.filterService.filters[this.filters['global'].matchMode];\n paramsWithoutNode = {filterField, filterValue, filterConstraint, isStrictMode};\n\n if ((isStrictMode && (this.findFilteredNodes(copyNodeForGlobal, paramsWithoutNode) || this.isFilterMatched(copyNodeForGlobal, paramsWithoutNode))) ||\n (!isStrictMode && (this.isFilterMatched(copyNodeForGlobal, paramsWithoutNode) || this.findFilteredNodes(copyNodeForGlobal, paramsWithoutNode)))) {\n globalMatch = true;\n copyNode = copyNodeForGlobal;\n }\n }\n }\n\n let matches = localMatch;\n if (this.filters['global']) {\n matches = localMatch && globalMatch;\n }\n\n if (matches) {\n this.filteredNodes.push(copyNode);\n }\n\n isValueChanged = isValueChanged || !localMatch || globalMatch || (localMatch && this.filteredNodes.length > 0) || (!globalMatch && this.filteredNodes.length === 0)\n }\n\n if (!isValueChanged) {\n this.filteredNodes = null;\n }\n\n if (this.paginator) {\n this.totalRecords = this.filteredNodes ? this.filteredNodes.length : this.value ? this.value.length : 0;\n }\n }\n }\n\n this.first = 0;\n\n const filteredValue = this.filteredNodes || this.value;\n\n this.onFilter.emit({\n filters: this.filters,\n filteredValue: filteredValue\n });\n\n this.tableService.onUIUpdate(filteredValue);\n this.updateSerializedValue();\n\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n\n findFilteredNodes(node, paramsWithoutNode) {\n if (node) {\n let matched = false;\n if (node.children) {\n let childNodes = [...node.children];\n node.children = [];\n for (let childNode of childNodes) {\n let copyChildNode = {...childNode};\n if (this.isFilterMatched(copyChildNode, paramsWithoutNode)) {\n matched = true;\n node.children.push(copyChildNode);\n }\n }\n }\n\n if (matched) {\n return true;\n }\n }\n }\n\n isFilterMatched(node, {filterField, filterValue, filterConstraint, isStrictMode}) {\n let matched = false;\n let dataFieldValue = ObjectUtils.resolveFieldData(node.data, filterField);\n if (filterConstraint(dataFieldValue, filterValue, this.filterLocale)) {\n matched = true;\n }\n\n if (!matched || (isStrictMode && !this.isNodeLeaf(node))) {\n matched = this.findFilteredNodes(node, {filterField, filterValue, filterConstraint, isStrictMode}) || matched;\n }\n\n return matched;\n }\n\n isNodeLeaf(node) {\n return node.leaf === false ? false : !(node.children && node.children.length);\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 public reset() {\n this._sortField = null;\n this._sortOrder = 1;\n this._multiSortMeta = null;\n this.tableService.onSort(null);\n\n this.filteredNodes = null;\n this.filters = {};\n\n this.first = 0;\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 updateEditingCell(cell, data, field) {\n this.editingCell = cell;\n this.editingCellData = data;\n this.editingCellField = field;\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 });\n this.editingCellField = null;\n this.editingCellData = null;\n this.unbindDocumentEditListener();\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 ngOnDestroy() {\n this.unbindDocumentEditListener();\n this.editingCell = null;\n this.editingCellField = null;\n this.editingCellData = null;\n this.initialized = null;\n }\n\n}\n\n@Component({\n selector: '[pTreeTableBody]',\n template: `\n <ng-container *ngIf=\"!tt.virtualScroll\">\n <ng-template ngFor let-serializedNode let-rowIndex=\"index\" [ngForOf]=\"tt.serializedValue\" [ngForTrackBy]=\"tt.rowTrackBy\">\n <ng-container *ngIf=\"serializedNode.visible\">\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: serializedNode, node: serializedNode.node, rowData: serializedNode.node.data, columns: columns}\"></ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"tt.virtualScroll\">\n <ng-template cdkVirtualFor let-serializedNode let-rowIndex=\"index\" [cdkVirtualForOf]=\"tt.serializedValue\" [cdkVirtualForTrackBy]=\"tt.rowTrackBy\" [cdkVirtualForTemplateCacheSize]=\"0\">\n <ng-container *ngIf=\"serializedNode.visible\">\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: serializedNode, node: serializedNode.node, rowData: serializedNode.node.data, columns: columns}\"></ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"tt.isEmpty()\">\n <ng-container *ngTemplateOutlet=\"tt.emptyMessageTemplate; context: {$implicit: columns, frozen: frozen}\"></ng-container>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class TTBody {\n\n @Input(\"pTreeTableBody\") columns: any[];\n\n @Input(\"pTreeTableBodyTemplate\") template: TemplateRef<any>;\n\n @Input() frozen: boolean;\n\n subscription: Subscription;\n\n constructor(public tt: TreeTable, public treeTableService: TreeTableService, public cd: ChangeDetectorRef) {\n this.subscription = this.tt.tableService.uiUpdateSource$.subscribe(() => {\n if (this.tt.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: '[ttScrollableView]',\n template: `\n <div #scrollHeader class=\"p-treetable-scrollable-header\">\n <div #scrollHeaderBox class=\"p-treetable-scrollable-header-box\">\n <table class=\"p-treetable-scrollable-header-table\" [ngClass]=\"tt.tableStyleClass\" [ngStyle]=\"tt.tableStyle\">\n <ng-container *ngTemplateOutlet=\"frozen ? tt.frozenColGroupTemplate||tt.colGroupTemplate : tt.colGroupTemplate; context {$implicit: columns}\"></ng-container>\n <thead class=\"p-treetable-thead\">\n <ng-container *ngTemplateOutlet=\"frozen ? tt.frozenHeaderTemplate||tt.headerTemplate : tt.headerTemplate; context {$implicit: columns}\"></ng-container>\n </thead>\n </table>\n </div>\n </div>\n <ng-container *ngIf=\"!tt.virtualScroll; else virtualScrollTemplate\">\n <div #scrollBody class=\"p-treetable-scrollable-body\" [ngStyle]=\"{'max-height': tt.scrollHeight !== 'flex' ? scrollHeight : undefined, 'overflow-y': !frozen && tt.scrollHeight ? 'scroll' : undefined}\">\n <table #scrollTable [class]=\"tt.tableStyleClass\" [ngStyle]=\"tt.tableStyle\">\n <ng-container *ngTemplateOutlet=\"frozen ? tt.frozenColGroupTemplate||tt.colGroupTemplate : tt.colGroupTemplate; context {$implicit: columns}\"></ng-container>\n <tbody class=\"p-treetable-tbody\" [pTreeTableBody]=\"columns\" [pTreeTableBodyTemplate]=\"frozen ? tt.frozenBodyTemplate||tt.bodyTemplate : tt.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]=\"tt.virtualRowHeight\" [style.height]=\"tt.scrollHeight !== 'flex' ? scrollHeight : undefined\"\n [minBufferPx]=\"tt.minBufferPx\" [maxBufferPx]=\"tt.maxBufferPx\" class=\"p-treetable-virtual-scrollable-body\">\n <table #scrollTable [class]=\"tt.tableStyleClass\" [ngStyle]=\"tt.tableStyle\">\n <ng-container *ngTemplateOutlet=\"frozen ? tt.frozenColGroupTemplate||tt.colGroupTemplate : tt.colGroupTemplate; context {$implicit: columns}\"></ng-container>\n <tbody class=\"p-treetable-tbody\" [pTreeTableBody]=\"columns\" [pTreeTableBodyTemplate]=\"frozen ? tt.frozenBodyTemplate||tt.bodyTemplate : tt.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 *ngIf=\"tt.footerTemplate\" class=\"p-treetable-scrollable-footer\">\n <div #scrollFooterBox class=\"p-treetable-scrollable-footer-box\">\n <table class=\"p-treetable-scrollable-footer-table\" [ngClass]=\"tt.tableStyleClass\" [ngStyle]=\"tt.tableStyle\">\n <ng-container *ngTemplateOutlet=\"frozen ? tt.frozenColGroupTemplate||tt.colGroupTemplate : tt.colGroupTemplate; context {$implicit: columns}\"></ng-container>\n <tfoot class=\"p-treetable-tfoot\">\n <ng-container *ngTemplateOutlet=\"frozen ? tt.frozenFooterTemplate||tt.footerTemplate : tt.footerTemplate; context {$implicit: columns}\"></ng-container>\n </tfoot>\n </table>\n </div>\n </div>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class TTScrollableView implements AfterViewInit, OnDestroy {\n\n @Input(\"ttScrollableView\") 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('loadingTable') scrollLoadingTableViewChild: 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;\n\n bodyScrollListener;\n\n footerScrollListener;\n\n frozenSiblingBody: Element;\n\n totalRecordsSubscription: Subscription;\n\n _scrollHeight: string;\n\n preventBodyScrollPropagation: boolean;\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.tt.virtualScroll && this.virtualScrollBody) {\n this.virtualScrollBody.ngOnInit();\n }\n }\n\n constructor(public tt: TreeTable, public el: ElementRef, public zone: NgZone) {}\n\n ngAfterViewInit() {\n if (!this.frozen) {\n if (this.tt.frozenColumns || this.tt.frozenBodyTemplate) {\n DomHandler.addClass(this.el.nativeElement, 'p-treetable-unfrozen-view');\n }\n\n let frozenView = this.el.nativeElement.previousElementSibling;\n if (frozenView) {\n if (this.tt.virtualScroll)\n this.frozenSiblingBody = DomHandler.findSingle(frozenView, '.p-treetable-virtual-scrollable-body');\n else\n this.frozenSiblingBody = DomHandler.findSingle(frozenView, '.p-treetable-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.scrollHeaderBoxViewChild.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.tt.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.scrollHeaderBoxViewChild.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 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\n this.frozenSiblingBody = null;\n }\n}\n\n@Directive({\n selector: '[ttSortableColumn]',\n host: {\n '[class.p-sortable-column]': 'isEnabled()',\n '[class.p-highlight]': 'sorted',\n '[attr.tabindex]': 'isEnabled() ? \"0\" : null',\n '[attr.role]': '\"columnheader\"'\n }\n})\nexport class TTSortableColumn implements OnInit, OnDestroy {\n\n @Input(\"ttSortableColumn\") field: string;\n\n @Input() ttSortableColumnDisabled: boolean;\n\n sorted: boolean;\n\n subscription: Subscription;\n\n constructor(public tt: TreeTable) {\n if (this.isEnabled()) {\n this.subscription = this.tt.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.tt.isSorted(this.field);\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent) {\n if (this.isEnabled()) {\n this.updateSortState();\n this.tt.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.ttSortableColumnDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: 'p-treeTableSortIcon',\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 `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TTSortIcon implements OnInit, OnDestroy {\n\n @Input() field: string;\n\n @Input() ariaLabelDesc: string;\n\n @Input() ariaLabelAsc: string;\n\n subscription: Subscription;\n\n sortOrder: number;\n\n constructor(public tt: TreeTable, public cd: ChangeDetectorRef) {\n this.subscription = this.tt.tableService.sortSource$.subscribe(sortMeta => {\n this.updateSortState();\n this.cd.markForCheck();\n });\n }\n\n ngOnInit() {\n this.updateSortState();\n }\n\n onClick(event){\n event.preventDefault();\n }\n\n updateSortState() {\n if (this.tt.sortMode === 'single') {\n this.sortOrder = this.tt.isSorted(this.field) ? this.tt.sortOrder : 0;\n }\n else if (this.tt.sortMode === 'multiple') {\n let sortMeta = this.tt.getSortMeta(this.field);\n this.sortOrder = sortMeta ? sortMeta.order: 0;\n }\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[ttResizableColumn]'\n})\nexport class TTResizableColumn implements AfterViewInit, OnDestroy {\n\n @Input() ttResizableColumnDisabled: boolean;\n\n resizer: HTMLSpanElement;\n\n resizerMouseDownListener: any;\n\n documentMouseMoveListener: any;\n\n documentMouseUpListener: any;\n\n constructor(public tt: TreeTable, 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: Event) {\n this.tt.onColumnResizeBegin(event);\n this.bindDocumentEvents();\n }\n\n onDocumentMouseMove(event: Event) {\n this.tt.onColumnResize(event);\n }\n\n onDocumentMouseUp(event: Event) {\n this.tt.onColumnResizeEnd(event, this.el.nativeElement);\n this.unbindDocumentEvents();\n }\n\n isEnabled() {\n return this.ttResizableColumnDisabled !== 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: '[ttReorderableColumn]'\n})\nexport class TTReorderableColumn implements AfterViewInit, OnDestroy {\n\n @Input() ttReorderableColumnDisabled: 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 tt: TreeTable, 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.tt.onColumnDragStart(event, this.el.nativeElement);\n }\n\n onDragOver(event) {\n event.preventDefault();\n }\n\n onDragEnter(event) {\n this.tt.onColumnDragEnter(event, this.el.nativeElement);\n }\n\n onDragLeave(event) {\n this.tt.onColumnDragLeave(event);\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event) {\n if (this.isEnabled()) {\n this.tt.onColumnDrop(event, this.el.nativeElement);\n }\n }\n\n isEnabled() {\n return this.ttReorderableColumnDisabled !== true;\n }\n\n ngOnDestroy() {\n this.unbindEvents();\n }\n\n}\n\n@Directive({\n selector: '[ttSelectableRow]',\n host: {\n '[class.p-highlight]': 'selected'\n }\n})\nexport class TTSelectableRow implements OnInit, OnDestroy {\n\n @Input(\"ttSelectableRow\") rowNode: any;\n\n @Input() ttSelectableRowDisabled: boolean;\n\n selected: boolean;\n\n subscription: Subscription;\n\n constructor(public tt: TreeTable, public tableService: TreeTableService) {\n if (this.isEnabled()) {\n this.subscription = this.tt.tableService.selectionSource$.subscribe(() => {\n this.selected = this.tt.isSelected(this.rowNode.node);\n });\n }\n }\n\n ngOnInit() {\n if (this.isEnabled()) {\n this.selected = this.tt.isSelected(this.rowNode.node);\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.tt.handleRowClick({\n originalEvent: event,\n rowNode: this.rowNode\n });\n }\n }\n\n @HostListener('keydown', ['$event'])\n onEnterKey(event: KeyboardEvent) {\n if (event.which === 13) {\n this.onClick(event);\n }\n }\n\n @HostListener('touchend', ['$event'])\n onTouchEnd(event: Event) {\n if (this.isEnabled()) {\n this.tt.handleRowTouchEnd(event);\n }\n }\n\n isEnabled() {\n return this.ttSelectableRowDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n\n@Directive({\n selector: '[ttSelectableRowDblClick]',\n host: {\n '[class.p-highlight]': 'selected'\n }\n})\nexport class TTSelectableRowDblClick implements OnInit, OnDestroy {\n\n @Input(\"ttSelectableRowDblClick\") rowNode: any;\n\n @Input() ttSelectableRowDisabled: boolean;\n\n selected: boolean;\n\n subscription: Subscription;\n\n constructor(public tt: TreeTable, public tableService: TreeTableService) {\n if (this.isEnabled()) {\n this.subscription = this.tt.tableService.selectionSource$.subscribe(() => {\n this.selected = this.tt.isSelected(this.rowNode.node);\n });\n }\n }\n\n ngOnInit() {\n if (this.isEnabled()) {\n this.selected = this.tt.isSelected(this.rowNode.node);\n }\n }\n\n @HostListener('dblclick', ['$event'])\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.tt.handleRowClick({\n originalEvent: event,\n rowNode: this.rowNode\n });\n }\n }\n\n isEnabled() {\n return this.ttSelectableRowDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n\n@Directive({\n selector: '[ttContextMenuRow]',\n host: {\n '[class.p-highlight-contextmenu]': 'selected',\n '[attr.tabindex]': 'isEnabled() ? 0 : undefined'\n }\n})\nexport class TTContextMenuRow {\n\n @Input(\"ttContextMenuRow\") rowNode: any;\n\n @Input() ttContextMenuRowDisabled: boolean;\n\n selected: boolean;\n\n subscription: Subscription;\n\n constructor(public tt: TreeTable, public tableService: TreeTableService, private el: ElementRef) {\n if (this.isEnabled()) {\n this.subscription = this.tt.tableService.contextMenuSource$.subscribe((node) => {\n this.selected = this.tt.equals(this.rowNode.node, node);\n });\n }\n }\n\n @HostListener('contextmenu', ['$event'])\n onContextMenu(event: Event) {\n if (this.isEnabled()) {\n this.tt.handleRowRightClick({\n originalEvent: event,\n rowNode: this.rowNode\n });\n\n this.el.nativeElement.focus();\n\n event.preventDefault();\n }\n }\n\n isEnabled() {\n return this.ttContextMenuRowDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n\n@Component({\n selector: 'p-treeTableCheckbox',\n template: `\n <div class=\"p-checkbox p-component\" (click)=\"onClick($event)\">\n <div class=\"p-hidden-accessible\">\n <input type=\"checkbox\" [checked]=\"checked\" (focus)=\"onFocus()\" (blur)=\"onBlur()\">\n </div>\n <div #box [ngClass]=\"{'p-checkbox-box':true,\n 'p-highlight':checked, 'p-disabled':disabled}\" role=\"checkbox\" [attr.aria-checked]=\"checked\">\n <span class=\"p-checkbox-icon pi\" [ngClass]=\"{'pi-check':checked, 'pi-minus': rowNode.node.partialSelected}\"></span>\n </div>\n </div>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TTCheckbox {\n\n @Input() disabled: boolean;\n\n @Input(\"value\") rowNode: any;\n\n @ViewChild('box') boxViewChild: ElementRef;\n\n checked: boolean;\n\n subscription: Subscription;\n\n constructor(public tt: TreeTable, public tableService: TreeTableService, public cd: ChangeDetectorRef) {\n this.subscription = this.tt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.tt.isSelected(this.rowNode.node);\n this.cd.markForCheck();\n });\n }\n\n ngOnInit() {\n this.checked = this.tt.isSelected(this.rowNode.node);\n }\n\n onClick(event: Event) {\n if (!this.disabled) {\n this.tt.toggleNodeWithCheckbox({\n originalEvent: event,\n rowNode: this.rowNode\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 ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n\n@Component({\n selector: 'p-treeTableHeaderCheckbox',\n template: `\n <div class=\"p-checkbox p-component\" (click)=\"onClick($event, cb.checked)\">\n <div class=\"p-hidden-accessible\">\n <input #cb type=\"checkbox\" [checked]=\"checked\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" [disabled]=\"!tt.value||tt.value.length === 0\">\n </div>\n <div #box [ngClass]=\"{'p-checkbox-box':true,\n 'p-highlight':checked, 'p-disabled': (!tt.value || tt.value.length === 0)}\" role=\"checkbox\" [attr.aria-checked]=\"checked\">\n <span class=\"p-checkbox-icon\" [ngClass]=\"{'pi pi-check':checked}\"></span>\n </div>\n </div>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TTHeaderCheckbox {\n\n @ViewChild('box') boxViewChild: ElementRef;\n\n checked: boolean;\n\n disabled: boolean;\n\n selectionChangeSubscription: Subscription;\n\n valueChangeSubscription: Subscription;\n\n constructor(public tt: TreeTable, public tableService: TreeTableService, private cd: ChangeDetectorRef) {\n this.valueChangeSubscription = this.tt.tableService.uiUpdateSource$.subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n\n this.selectionChangeSubscription = this.tt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n }\n\n ngOnInit() {\n this.checked = this.updateCheckedState();\n }\n\n onClick(event: Event, checked) {\n if (this.tt.value && this.tt.value.length > 0) {\n this.tt.toggleNodesWithCheckbox(event, !checked);\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 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 let checked: boolean;\n const data = this.tt.filteredNodes||this.tt.value;\n\n if (data) {\n for (let node of data) {\n if (this.tt.isSelected(node)) {\n checked = true;\n }\n else {\n checked = false;\n break;\n }\n }\n }\n else {\n checked = false;\n }\n\n return checked;\n }\n\n}\n\n@Directive({\n selector: '[ttEditableColumn]'\n})\nexport class TTEditableColumn implements AfterViewInit {\n\n @Input(\"ttEditableColumn\") data: any;\n\n @Input(\"ttEditableColumnField\") field: any;\n\n @Input() ttEditableColumnDisabled: boolean;\n\n constructor(public tt: TreeTable, 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.tt.editingCellClick = true;\n\n if (this.tt.editingCell) {\n if (this.tt.editingCell !== this.el.nativeElement) {\n if (!this.tt.isEditingCellValid()) {\n return;\n }\n\n DomHandler.removeClass(this.tt.editingCell, 'p-cell-editing');\n this.openCell();\n }\n }\n else {\n this.openCell();\n }\n }\n }\n\n openCell() {\n this.tt.updateEditingCell(this.el.nativeElement, this.data, this.field);\n DomHandler.addClass(this.el.nativeElement, 'p-cell-editing');\n this.tt.onEditInit.emit({ field: this.field, data: this.data});\n this.tt.editingCellClick = true;\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n let focusable = DomHandler.findSingle(this.el.nativeElement, 'input, textarea');\n if (focusable) {\n focusable.focus();\n }\n }, 50);\n });\n }\n\n closeEditingCell() {\n DomHandler.removeClass(this.tt.editingCell, 'p-checkbox-icon');\n this.tt.editingCell = null;\n this.tt.unbindDocumentEditListener();\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n //enter\n if (event.keyCode == 13) {\n if (this.tt.isEditingCellValid()) {\n DomHandler.removeClass(this.tt.editingCell, 'p-cell-editing');\n this.closeEditingCell();\n this.tt.onEditComplete.emit({ field: this.field, data: this.data });\n }\n\n event.preventDefault();\n }\n\n //escape\n else if (event.keyCode == 27) {\n if (this.tt.isEditingCellValid()) {\n DomHandler.removeClass(this.tt.editingCell, 'p-cell-editing');\n this.closeEditingCell();\n this.tt.onEditCancel.emit({ field: this.field, data: this.data });\n }\n\n event.preventDefault();\n }\n\n //tab\n else if (event.keyCode == 9) {\n this.tt.onEditComplete.emit({ field: this.field, data: this.data });\n\n if (event.shiftKey)\n this.moveToPreviousCell(event);\n else\n this.moveToNextCell(event);\n }\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 let row = currentCell.parentElement;\n let targetCell = this.findPreviousEditableColumn(currentCell);\n\n if (targetCell) {\n DomHandler.invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n }\n\n moveToNextCell(event: KeyboardEvent) {\n let currentCell = this.findCell(event.target);\n let row = currentCell.parentElement;\n let targetCell = this.findNextEditableColumn(currentCell);\n\n if (targetCell) {\n DomHandler.invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n }\n\n findPreviousEditableColumn(cell: Element) {\n let prevCell = cell.previousElementSibling;\n\n if (!prevCell) {\n let previousRow = cell.parentElement ? cell.parentElement.previousElementSibling : null;\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 ? cell.parentElement.nextElementSibling : null;\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 isEnabled() {\n return this.ttEditableColumnDisabled !== true;\n }\n\n}\n\n@Component({\n selector: 'p-treeTableCellEditor',\n template: `\n <ng-container *ngIf=\"tt.editingCell === editableColumn.el.nativeElement\">\n <ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!tt.editingCell || tt.editingCell !== editableColumn.el.nativeElement\">\n <ng-container *ngTemplateOutlet=\"outputTemplate\"></ng-container>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class TreeTableCellEditor implements AfterContentInit {\n\n @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate>;\n\n inputTemplate: TemplateRef<any>;\n\n outputTemplate: TemplateRef<any>;\n\n constructor(public tt: TreeTable, public editableColumn: TTEditableColumn) { }\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\n@Directive({\n selector: '[ttRow]',\n host: {\n '[attr.tabindex]': '\"0\"'\n }\n})\nexport class TTRow {\n\n @Input('ttRow') rowNode: any;\n\n constructor(public tt: TreeTable, public el: ElementRef, public zone: NgZone) {}\n\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n switch (event.which) {\n //down arrow\n case 40:\n let nextRow = this.el.nativeElement.nextElementSibling;\n if (nextRow) {\n nextRow.focus();\n }\n\n event.preventDefault();\n break;\n\n //down arrow\n case 38:\n let prevRow = this.el.nativeElement.previousElementSibling;\n if (prevRow) {\n prevRow.focus();\n }\n\n event.preventDefault();\n break;\n\n //left arrow\n case 37:\n if (this.rowNode.node.expanded) {\n this.tt.toggleRowIndex = DomHandler.index(this.el.nativeElement);\n this.rowNode.node.expanded = false;\n\n this.tt.onNodeCollapse.emit({\n originalEvent: event,\n node: this.rowNode.node\n });\n\n this.tt.updateSerializedValue();\n this.tt.tableService.onUIUpdate(this.tt.value);\n this.restoreFocus();\n }\n break;\n\n //right arrow\n case 39:\n if (!this.rowNode.node.expanded) {\n this.tt.toggleRowIndex = DomHandler.index(this.el.nativeElement);\n this.rowNode.node.expanded = true;\n\n this.tt.onNodeExpand.emit({\n originalEvent: event,\n node: this.rowNode.node\n });\n\n this.tt.updateSerializedValue();\n this.tt.tableService.onUIUpdate(this.tt.value);\n this.restoreFocus();\n }\n break;\n }\n }\n\n restoreFocus() {\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n let row = DomHandler.findSingle(this.tt.containerViewChild.nativeElement, '.p-treetable-tbody').children[this.tt.toggleRowIndex];\n if (row) {\n row.focus();\n }\n }, 25);\n });\n }\n}\n\n@Component({\n selector: 'p-treeTableToggler',\n template: `\n <button type=\"button\" class=\"p-treetable-toggler p-link\" (click)=\"onClick($event)\" tabindex=\"-1\" pRipple\n [style.visibility]=\"rowNode.node.leaf === false || (rowNode.node.children && rowNode.node.children.length) ? 'visible' : 'hidden'\" [style.marginLeft]=\"rowNode.level * 16 + 'px'\">\n <i [ngClass]=\"rowNode.node.expanded ? 'pi pi-fw pi-chevron-down' : 'pi pi-fw pi-chevron-right'\"></i>\n </button>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class TreeTableToggler {\n\n @Input() rowNode: any;\n\n constructor(public tt: TreeTable) {}\n\n onClick(event: Event) {\n this.rowNode.node.expanded = !this.rowNode.node.expanded;\n\n if (this.rowNode.node.expanded) {\n this.tt.onNodeExpand.emit({\n originalEvent: event,\n node: this.rowNode.node\n });\n }\n else {\n this.tt.onNodeCollapse.emit({\n originalEvent: event,\n node: this.rowNode.node\n });\n }\n\n this.tt.updateSerializedValue();\n this.tt.tableService.onUIUpdate(this.tt.value);\n\n event.preventDefault();\n }\n}\n\n@NgModule({\n imports: [CommonModule,PaginatorModule,ScrollingModule,RippleModule],\n exports: [TreeTable,SharedModule,TreeTableToggler,TTSortableColumn,TTSortIcon,TTResizableColumn,TTRow,TTReorderableColumn,TTSelectableRow,TTSelectableRowDblClick,TTContextMenuRow,TTCheckbox,TTHeaderCheckbox,TTEditableColumn,TreeTableCellEditor,ScrollingModule],\n declarations: [TreeTable,TreeTableToggler,TTScrollableView,TTBody,TTSortableColumn,TTSortIcon,TTResizableColumn,TTRow,TTReorderableColumn,TTSelectableRow,TTSelectableRowDblClick,TTContextMenuRow,TTCheckbox,TTHeaderCheckbox,TTEditableColumn,TreeTableCellEditor]\n})\nexport class TreeTableModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["Subject","Injectable","EventEmitter","ObjectUtils","DomHandler","Component","ViewEncapsulation","ElementRef","NgZone","FilterService","Input","Output","ViewChild","ContentChildren","PrimeTemplate","ChangeDetectorRef","CdkVirtualScrollViewport","Directive","HostListener","ChangeDetectionStrategy","NgModule","CommonModule","PaginatorModule","ScrollingModule","RippleModule","SharedModule"],"mappings":"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"}
1
+ {"version":3,"file":"primeng-treetable.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","../../src/app/components/treetable/treetable.ts","../../src/app/components/treetable/primeng-treetable.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { NgModule, AfterContentInit, OnInit, OnDestroy, HostListener, Injectable, Directive, Component, Input, Output, EventEmitter, ContentChildren, TemplateRef, QueryList, ElementRef, NgZone, ViewChild, AfterViewInit, AfterViewChecked, OnChanges, SimpleChanges, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TreeNode } from 'primeng/api';\nimport { Subject, Subscription } from 'rxjs';\nimport { DomHandler } from 'primeng/dom';\nimport { PaginatorModule } from 'primeng/paginator';\nimport { PrimeTemplate, SharedModule, FilterService } from 'primeng/api';\nimport { SortMeta } from 'primeng/api';\nimport { BlockableUI } from 'primeng/api';\nimport { FilterMetadata } from 'primeng/api';\nimport { ObjectUtils } from 'primeng/utils';\nimport { RippleModule } from 'primeng/ripple';\nimport { ScrollingModule, CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\n\n@Injectable()\nexport class TreeTableService {\n\n private sortSource = new Subject<SortMeta|SortMeta[]>();\n private selectionSource = new Subject();\n private contextMenuSource = new Subject<any>();\n private uiUpdateSource = new Subject<any>();\n private totalRecordsSource = new Subject<any>();\n\n sortSource$ = this.sortSource.asObservable();\n selectionSource$ = this.selectionSource.asObservable();\n contextMenuSource$ = this.contextMenuSource.asObservable();\n uiUpdateSource$ = this.uiUpdateSource.asObservable();\n totalRecordsSource$ = this.totalRecordsSource.asObservable();\n\n onSort(sortMeta: SortMeta|SortMeta[]) {\n this.sortSource.next(sortMeta);\n }\n\n onSelectionChange() {\n this.selectionSource.next();\n }\n\n onContextMenu(node: any) {\n this.contextMenuSource.next(node);\n }\n\n onUIUpdate(value: any) {\n this.uiUpdateSource.next(value);\n }\n\n onTotalRecordsChange(value: number) {\n this.totalRecordsSource.next(value);\n }\n}\n\n@Component({\n selector: 'p-treeTable',\n template: `\n <div #container [ngStyle]=\"style\" [class]=\"styleClass\" data-scrollselectors=\".p-treetable-scrollable-body\"\n [ngClass]=\"{'p-treetable p-component': true,\n 'p-treetable-hoverable-rows': (rowHover||(selectionMode === 'single' || selectionMode === 'multiple')),\n 'p-treetable-auto-layout': autoLayout,\n 'p-treetable-resizable': resizableColumns,\n 'p-treetable-resizable-fit': (resizableColumns && columnResizeMode === 'fit'),\n 'p-treetable-flex-scrollable': (scrollable && scrollHeight === 'flex')}\">\n <div class=\"p-treetable-loading\" *ngIf=\"loading && showLoader\">\n <div class=\"p-treetable-loading-overlay p-component-overlay\">\n <i [class]=\"'p-treetable-loading-icon pi-spin ' + loadingIcon\"></i>\n </div>\n </div>\n <div *ngIf=\"captionTemplate\" class=\"p-treetable-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\"\n [currentPageReportTemplate]=\"currentPageReportTemplate\" [showFirstLastIcon]=\"showFirstLastIcon\" [dropdownItemTemplate]=\"paginatorDropdownItemTemplate\" [showCurrentPageReport]=\"showCurrentPageReport\" [showJumpToPageDropdown]=\"showJumpToPageDropdown\" [showPageLinks]=\"showPageLinks\"></p-paginator>\n\n <div class=\"p-treetable-wrapper\" *ngIf=\"!scrollable\">\n <table #table [ngClass]=\"tableStyleClass\" [ngStyle]=\"tableStyle\">\n <ng-container *ngTemplateOutlet=\"colGroupTemplate; context {$implicit: columns}\"></ng-container>\n <thead class=\"p-treetable-thead\">\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: {$implicit: columns}\"></ng-container>\n </thead>\n <tbody class=\"p-treetable-tbody\" [pTreeTableBody]=\"columns\" [pTreeTableBodyTemplate]=\"bodyTemplate\"></tbody>\n <tfoot class=\"p-treetable-tfoot\">\n <ng-container *ngTemplateOutlet=\"footerTemplate; context {$implicit: columns}\"></ng-container>\n </tfoot>\n </table>\n </div>\n\n <div class=\"p-treetable-scrollable-wrapper\" *ngIf=\"scrollable\">\n <div class=\"p-treetable-scrollable-view p-treetable-frozen-view\" *ngIf=\"frozenColumns||frozenBodyTemplate\" #scrollableFrozenView [ttScrollableView]=\"frozenColumns\" [frozen]=\"true\" [ngStyle]=\"{width: frozenWidth}\" [scrollHeight]=\"scrollHeight\"></div>\n <div class=\"p-treetable-scrollable-view\" #scrollableView [ttScrollableView]=\"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\"\n [currentPageReportTemplate]=\"currentPageReportTemplate\" [showFirstLastIcon]=\"showFirstLastIcon\" [dropdownItemTemplate]=\"paginatorDropdownItemTemplate\" [showCurrentPageReport]=\"showCurrentPageReport\" [showJumpToPageDropdown]=\"showJumpToPageDropdown\" [showPageLinks]=\"showPageLinks\"></p-paginator>\n <div *ngIf=\"summaryTemplate\" class=\"p-treetable-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\n <span #reorderIndicatorUp class=\"pi pi-arrow-down p-treetable-reorder-indicator-up\" *ngIf=\"reorderableColumns\"></span>\n <span #reorderIndicatorDown class=\"pi pi-arrow-up p-treetable-reorder-indicator-down\" *ngIf=\"reorderableColumns\"></span>\n </div>\n `,\n providers: [TreeTableService],\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./treetable.css']\n})\nexport class TreeTable implements AfterContentInit, OnInit, OnDestroy, BlockableUI, OnChanges {\n\n @Input() columns: any[];\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() tableStyle: any;\n\n @Input() tableStyleClass: string;\n\n @Input() autoLayout: boolean;\n\n @Input() lazy: boolean = false;\n\n @Input() lazyLoadOnInit: boolean = true;\n\n @Input() paginator: boolean;\n\n @Input() rows: number;\n\n @Input() first: number = 0;\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() 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() customSort: boolean;\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() compareSelectionBy: string = 'deepEquals';\n\n @Input() rowHover: boolean;\n\n @Input() loading: boolean;\n\n @Input() loadingIcon: string = 'pi pi-spinner';\n\n @Input() showLoader: boolean = true;\n\n @Input() scrollable: boolean;\n\n @Input() scrollHeight: string;\n\n @Input() virtualScroll: boolean;\n\n @Input() virtualScrollDelay: number = 150;\n\n @Input() virtualRowHeight: number = 28;\n\n @Input() minBufferPx: number;\n\n @Input() maxBufferPx: number;\n\n @Input() frozenWidth: string;\n\n @Input() frozenColumns: any[];\n\n @Input() resizableColumns: boolean;\n\n @Input() columnResizeMode: string = 'fit';\n\n @Input() reorderableColumns: boolean;\n\n @Input() contextMenu: any;\n\n @Input() rowTrackBy: Function = (index: number, item: any) => item;\n\n @Input() filters: { [s: string]: FilterMetadata; } = {};\n\n @Input() globalFilterFields: string[];\n\n @Input() filterDelay: number = 300;\n\n @Input() filterMode: string = 'lenient';\n\n @Input() filterLocale: string;\n\n @Output() onFilter: EventEmitter<any> = new EventEmitter();\n\n @Output() onNodeExpand: EventEmitter<any> = new EventEmitter();\n\n @Output() onNodeCollapse: EventEmitter<any> = new EventEmitter();\n\n @Output() onPage: EventEmitter<any> = new EventEmitter();\n\n @Output() onSort: EventEmitter<any> = new EventEmitter();\n\n @Output() onLazyLoad: EventEmitter<any> = new EventEmitter();\n\n @Output() sortFunction: EventEmitter<any> = new EventEmitter();\n\n @Output() onColResize: EventEmitter<any> = new EventEmitter();\n\n @Output() onColReorder: EventEmitter<any> = new EventEmitter();\n\n @Output() onNodeSelect: EventEmitter<any> = new EventEmitter();\n\n @Output() onNodeUnselect: EventEmitter<any> = new EventEmitter();\n\n @Output() onContextMenuSelect: EventEmitter<any> = new EventEmitter();\n\n @Output() onHeaderCheckboxToggle: 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 @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: TreeNode[] = [];\n\n serializedValue: any[];\n\n _totalRecords: number = 0;\n\n _multiSortMeta: SortMeta[];\n\n _sortField: string;\n\n _sortOrder: number = 1;\n\n filteredNodes: any[];\n\n filterTimeout: any;\n\n colGroupTemplate: TemplateRef<any>;\n\n captionTemplate: TemplateRef<any>;\n\n headerTemplate: TemplateRef<any>;\n\n bodyTemplate: TemplateRef<any>;\n\n loadingBodyTemplate: TemplateRef<any>;\n\n footerTemplate: TemplateRef<any>;\n\n summaryTemplate: TemplateRef<any>;\n\n emptyMessageTemplate: TemplateRef<any>;\n\n paginatorLeftTemplate: TemplateRef<any>;\n\n paginatorRightTemplate: TemplateRef<any>;\n\n paginatorDropdownItemTemplate: TemplateRef<any>;\n\n frozenHeaderTemplate: TemplateRef<any>;\n\n frozenBodyTemplate: TemplateRef<any>;\n\n frozenFooterTemplate: TemplateRef<any>;\n\n frozenColGroupTemplate: TemplateRef<any>;\n\n lastResizerHelperX: number;\n\n reorderIconWidth: number;\n\n reorderIconHeight: number;\n\n draggedColumn: any;\n\n dropPosition: number;\n\n preventSelectionSetterPropagation: boolean;\n\n _selection: any;\n\n selectionKeys: any = {};\n\n rowTouched: boolean;\n\n editingCell: Element;\n\n editingCellData: any;\n\n editingCellField: any;\n\n editingCellClick: boolean;\n\n documentEditListener: any;\n\n initialized: boolean;\n\n toggleRowIndex: number;\n\n ngOnInit() {\n if (this.lazy && this.lazyLoadOnInit) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\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 '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 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 });\n }\n\n constructor(public el: ElementRef, public zone: NgZone, public tableService: TreeTableService, public filterService: FilterService) {}\n\n ngOnChanges(simpleChange: SimpleChanges) {\n if (simpleChange.value) {\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.updateSerializedValue();\n this.tableService.onUIUpdate(this.value);\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') {\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 updateSerializedValue() {\n this.serializedValue = [];\n\n if (this.paginator)\n this.serializePageNodes();\n else\n this.serializeNodes(null, this.filteredNodes||this.value, 0, true);\n }\n\n serializeNodes(parent, nodes, level, visible) {\n if (nodes && nodes.length) {\n for(let node of nodes) {\n node.parent = parent;\n const rowNode = {\n node: node,\n parent: parent,\n level: level,\n visible: visible && (parent ? parent.expanded : true)\n };\n this.serializedValue.push(rowNode);\n\n if (rowNode.visible && node.expanded) {\n this.serializeNodes(node, node.children, level + 1, rowNode.visible);\n }\n }\n }\n }\n\n serializePageNodes() {\n let data = this.filteredNodes || this.value;\n this.serializedValue = [];\n if (data && data.length) {\n const first = this.lazy ? 0 : this.first;\n\n for(let i = first; i < (first + this.rows); i++) {\n let node = data[i];\n if (node) {\n this.serializedValue.push({\n node: node,\n parent: null,\n level: 0,\n visible: true\n });\n\n this.serializeNodes(node, node.children, 1, true);\n }\n }\n }\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 node of this._selection) {\n this.selectionKeys[String(ObjectUtils.resolveFieldData(node.data, this.dataKey))] = 1;\n }\n }\n else {\n this.selectionKeys[String(ObjectUtils.resolveFieldData(this._selection.data, 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 else\n this.serializePageNodes();\n\n this.onPage.emit({\n first: this.first,\n rows: this.rows\n });\n\n this.tableService.onUIUpdate(this.value);\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 this.sortSingle();\n\n if (this.resetPageOnSort && this.scrollable) {\n this.resetScrollTop();\n }\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 && this.scrollable) {\n this.resetScrollTop();\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 && this.scrollable) {\n this.resetScrollTop();\n }\n }\n this.multiSortMeta.push({ field: event.field, order: this.defaultSortOrder });\n }\n\n this.sortMultiple();\n }\n }\n\n sortSingle() {\n if (this.sortField && this.sortOrder) {\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n else if (this.value) {\n this.sortNodes(this.value);\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 this.updateSerializedValue();\n }\n }\n\n sortNodes(nodes) {\n if (!nodes || nodes.length === 0) {\n return;\n }\n\n if (this.customSort) {\n this.sortFunction.emit({\n data: nodes,\n mode: this.sortMode,\n field: this.sortField,\n order: this.sortOrder\n });\n }\n else {\n nodes.sort((node1, node2) => {\n let value1 = ObjectUtils.resolveFieldData(node1.data, this.sortField);\n let value2 = ObjectUtils.resolveFieldData(node2.data, 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, undefined, {numeric: true});\n else\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\n\n return (this.sortOrder * result);\n });\n }\n\n for(let node of nodes) {\n this.sortNodes(node.children);\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 this.sortMultipleNodes(this.value);\n\n if (this.hasFilter()) {\n this._filter();\n }\n }\n\n this.onSort.emit({\n multisortmeta: this.multiSortMeta\n });\n this.updateSerializedValue();\n this.tableService.onSort(this.multiSortMeta);\n }\n }\n\n sortMultipleNodes(nodes) {\n if (!nodes || nodes.length === 0) {\n return;\n }\n\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 nodes.sort((node1, node2) => {\n return this.multisortField(node1, node2, this.multiSortMeta, 0);\n });\n }\n\n for(let node of nodes) {\n this.sortMultipleNodes(node.children);\n }\n }\n\n multisortField(node1, node2, multiSortMeta, index) {\n let value1 = ObjectUtils.resolveFieldData(node1.data, multiSortMeta[index].field);\n let value2 = ObjectUtils.resolveFieldData(node2.data, 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 if (typeof value1 == 'string' || value1 instanceof String) {\n if (value1.localeCompare && (value1 != value2)) {\n return (multiSortMeta[index].order * value1.localeCompare(value2, undefined, {numeric: true}));\n }\n }\n else {\n result = (value1 < value2) ? -1 : 1;\n }\n\n if (value1 == value2) {\n return (multiSortMeta.length - 1) > (index) ? (this.multisortField(node1, node2, 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 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'] ? this.filters['global'].value : null,\n multiSortMeta: this.multiSortMeta\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 isEmpty() {\n let data = this.filteredNodes||this.value;\n return data == null || data.length == 0;\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\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 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 newColumnWidth = columnWidth + delta;\n let minWidth = column.style.minWidth || 15;\n\n if (columnWidth + delta > parseInt(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-treetable-scrollable-body table') || DomHandler.findSingle(scrollableView, '.p-treetable-virtual-scrollable-body table');\n let scrollableHeaderTable = DomHandler.findSingle(scrollableView, 'table.p-treetable-scrollable-header-table');\n let scrollableFooterTable = DomHandler.findSingle(scrollableView, 'table.p-treetable-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 (this.scrollable) {\n let scrollableView = this.findParentScrollableView(column);\n let scrollableBody = DomHandler.findSingle(scrollableView, '.p-treetable-scrollable-body') || DomHandler.findSingle(scrollableView, 'cdk-virtual-scroll-viewport');\n let scrollableHeader = DomHandler.findSingle(scrollableView, '.p-treetable-scrollable-header');\n let scrollableFooter = DomHandler.findSingle(scrollableView, '.p-treetable-scrollable-footer');\n let scrollableBodyTable = DomHandler.findSingle(scrollableView, '.p-treetable-scrollable-body table') || DomHandler.findSingle(scrollableView, 'cdk-virtual-scroll-viewport table');\n let scrollableHeaderTable = DomHandler.findSingle(scrollableView, 'table.p-treetable-scrollable-header-table');\n let scrollableFooterTable = DomHandler.findSingle(scrollableView, 'table.p-treetable-scrollable-footer-table');\n scrollableBodyTable.style.width = scrollableBodyTable.offsetWidth + delta + 'px';\n scrollableHeaderTable.style.width = scrollableHeaderTable.offsetWidth + delta + 'px';\n if (scrollableFooterTable) {\n scrollableFooterTable.style.width = scrollableFooterTable.offsetWidth + delta + 'px';\n }\n let resizeColumnIndex = DomHandler.index(column);\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 this.resizeColGroup(scrollableHeaderTable, resizeColumnIndex, newColumnWidth, null);\n this.resizeColGroup(scrollableBodyTable, resizeColumnIndex, newColumnWidth, null);\n this.resizeColGroup(scrollableFooterTable, resizeColumnIndex, newColumnWidth, null);\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 this.onColResize.emit({\n element: column,\n delta: delta\n });\n }\n\n this.resizeHelperViewChild.nativeElement.style.display = 'none';\n DomHandler.removeClass(this.containerViewChild.nativeElement, 'p-unselectable-text');\n }\n\n findParentScrollableView(column) {\n if (column) {\n let parent = column.parentElement;\n while (parent && !DomHandler.hasClass(parent, 'p-treetable-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 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 this.reorderIndicatorUpViewChild.nativeElement.style.display = 'block';\n this.reorderIndicatorDownViewChild.nativeElement.style.display = 'block';\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, 'ttreorderablecolumn');\n let dropIndex = DomHandler.indexWithinGroup(dropColumn, 'ttreorderablecolumn');\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\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 handleRowClick(event) {\n let targetNode = (<HTMLElement> event.originalEvent.target).nodeName;\n if (targetNode == 'INPUT' || targetNode == 'BUTTON' || targetNode == 'A' || (DomHandler.hasClass(event.originalEvent.target, 'p-clickable'))) {\n return;\n }\n\n if (this.selectionMode) {\n this.preventSelectionSetterPropagation = true;\n let rowNode = event.rowNode;\n let selected = this.isSelected(rowNode.node);\n let metaSelection = this.rowTouched ? false : this.metaKeySelection;\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rowNode.node.data, this.dataKey)) : null;\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(rowNode.node);\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.onNodeUnselect.emit({originalEvent: event.originalEvent, node: rowNode.node, type: 'row'});\n }\n else {\n if (this.isSingleSelectionMode()) {\n this._selection = rowNode.node;\n this.selectionChange.emit(rowNode.node);\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, rowNode.node];\n this.selectionChange.emit(this.selection);\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n\n this.onNodeSelect.emit({originalEvent: event.originalEvent, node: rowNode.node, 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.onNodeUnselect.emit({ originalEvent: event.originalEvent, node: rowNode.node, type: 'row' });\n }\n else {\n this._selection = rowNode.node;\n this.selectionChange.emit(this.selection);\n this.onNodeSelect.emit({ originalEvent: event.originalEvent, node: rowNode.node, 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(rowNode.node);\n this._selection = this.selection.filter((val, i) => i != selectionIndex);\n this.selectionChange.emit(this.selection);\n this.onNodeUnselect.emit({ originalEvent: event.originalEvent, node: rowNode.node, type: 'row' });\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n }\n else {\n this._selection = this.selection ? [...this.selection, rowNode.node] : [rowNode.node];\n this.selectionChange.emit(this.selection);\n this.onNodeSelect.emit({ originalEvent: event.originalEvent, node: rowNode.node, type: 'row', index: event.rowIndex });\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n }\n }\n\n this.tableService.onSelectionChange();\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 node = event.rowNode.node;\n\n if (this.contextMenuSelectionMode === 'separate') {\n this.contextMenuSelection = node;\n this.contextMenuSelectionChange.emit(node);\n this.onContextMenuSelect.emit({originalEvent: event.originalEvent, node: node});\n this.contextMenu.show(event.originalEvent);\n this.tableService.onContextMenu(node);\n }\n else if (this.contextMenuSelectionMode === 'joint') {\n this.preventSelectionSetterPropagation = true;\n let selected = this.isSelected(node);\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(node.data, this.dataKey)) : null;\n\n if (!selected) {\n if (this.isSingleSelectionMode()) {\n this.selection = node;\n this.selectionChange.emit(node);\n }\n else if (this.isMultipleSelectionMode()) {\n this.selection = [node];\n this.selectionChange.emit(this.selection);\n }\n\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n\n this.contextMenu.show(event.originalEvent);\n this.onContextMenuSelect.emit({originalEvent: event.originalEvent, node: node});\n }\n }\n }\n\n toggleNodeWithCheckbox(event) {\n this.selection = this.selection||[];\n this.preventSelectionSetterPropagation = true;\n let node = event.rowNode.node;\n let selected = this.isSelected(node);\n\n if (selected) {\n this.propagateSelectionDown(node, false);\n if (event.rowNode.parent) {\n this.propagateSelectionUp(node.parent, false);\n }\n this.selectionChange.emit(this.selection);\n this.onNodeUnselect.emit({originalEvent: event, node: node});\n }\n else {\n this.propagateSelectionDown(node, true);\n if (event.rowNode.parent) {\n this.propagateSelectionUp(node.parent, true);\n }\n this.selectionChange.emit(this.selection);\n this.onNodeSelect.emit({originalEvent: event, node: node});\n }\n\n this.tableService.onSelectionChange();\n }\n\n toggleNodesWithCheckbox(event: Event, check: boolean) {\n let data = this.filteredNodes || this.value;\n this._selection = check && data ? data.slice() : [];\n if (check) {\n if (data && data.length) {\n for (let node of data) {\n this.propagateSelectionDown(node, true);\n }\n }\n }\n else {\n this._selection = [];\n this.selectionKeys = {};\n }\n\n this.preventSelectionSetterPropagation = true;\n this.selectionChange.emit(this._selection);\n this.tableService.onSelectionChange();\n this.onHeaderCheckboxToggle.emit({originalEvent: event, checked: check});\n }\n\n propagateSelectionUp(node: TreeNode, select: boolean) {\n if (node.children && node.children.length) {\n let selectedChildCount: number = 0;\n let childPartialSelected: boolean = false;\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(node.data, this.dataKey)) : null;\n\n for (let child of node.children) {\n if (this.isSelected(child))\n selectedChildCount++;\n else if (child.partialSelected)\n childPartialSelected = true;\n }\n\n if (select && selectedChildCount == node.children.length) {\n this._selection = [...this.selection||[], node];\n node.partialSelected = false;\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n else {\n if (!select) {\n let index = this.findIndexInSelection(node);\n if (index >= 0) {\n this._selection = this.selection.filter((val,i) => i!=index);\n\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n }\n }\n\n if (childPartialSelected || selectedChildCount > 0 && selectedChildCount != node.children.length)\n node.partialSelected = true;\n else\n node.partialSelected = false;\n }\n }\n\n let parent = node.parent;\n if (parent) {\n this.propagateSelectionUp(parent, select);\n }\n }\n\n propagateSelectionDown(node: TreeNode, select: boolean) {\n let index = this.findIndexInSelection(node);\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(node.data, this.dataKey)) : null;\n\n if (select && index == -1) {\n this._selection = [...this.selection||[],node]\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n else if (!select && index > -1) {\n this._selection = this.selection.filter((val,i) => i!=index);\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n }\n\n node.partialSelected = false;\n\n if (node.children && node.children.length) {\n for (let child of node.children) {\n this.propagateSelectionDown(child, select);\n }\n }\n }\n\n isSelected(node) {\n if (node && this.selection) {\n if (this.dataKey) {\n return this.selectionKeys[ObjectUtils.resolveFieldData(node.data, this.dataKey)] !== undefined;\n }\n else {\n if (this.selection instanceof Array)\n return this.findIndexInSelection(node) > -1;\n else\n return this.equals(node, this.selection);\n }\n }\n\n return false;\n }\n\n findIndexInSelection(node: 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(node, this.selection[i])) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n\n isSingleSelectionMode() {\n return this.selectionMode === 'single';\n }\n\n isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n }\n\n equals(node1, node2) {\n return this.compareSelectionBy === 'equals' ? (node1 === node2) : ObjectUtils.equals(node1.data, node2.data, this.dataKey);\n }\n\n filter(value, field, matchMode) {\n if (this.filterTimeout) {\n clearTimeout(this.filterTimeout);\n }\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\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.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n else {\n if (!this.value) {\n return;\n }\n\n if (!this.hasFilter()) {\n this.filteredNodes = 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.filteredNodes = [];\n const isStrictMode = this.filterMode === 'strict';\n let isValueChanged = false;\n\n for (let node of this.value) {\n let copyNode = {...node};\n let localMatch = true;\n let globalMatch = false;\n let paramsWithoutNode;\n\n for (let prop in this.filters) {\n if (this.filters.hasOwnProperty(prop) && prop !== 'global') {\n let filterMeta = this.filters[prop];\n let filterField = prop;\n let filterValue = filterMeta.value;\n let filterMatchMode = filterMeta.matchMode || 'startsWith';\n let filterConstraint = this.filterService.filters[filterMatchMode];\n paramsWithoutNode = {filterField, filterValue, filterConstraint, isStrictMode};\n if ((isStrictMode && !(this.findFilteredNodes(copyNode, paramsWithoutNode) || this.isFilterMatched(copyNode, paramsWithoutNode))) ||\n (!isStrictMode && !(this.isFilterMatched(copyNode, paramsWithoutNode) || this.findFilteredNodes(copyNode, paramsWithoutNode)))) {\n localMatch = false;\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 copyNodeForGlobal = {...copyNode};\n let filterField = globalFilterFieldsArray[j].field||globalFilterFieldsArray[j];\n let filterValue = this.filters['global'].value;\n let filterConstraint = this.filterService.filters[this.filters['global'].matchMode];\n paramsWithoutNode = {filterField, filterValue, filterConstraint, isStrictMode};\n\n if ((isStrictMode && (this.findFilteredNodes(copyNodeForGlobal, paramsWithoutNode) || this.isFilterMatched(copyNodeForGlobal, paramsWithoutNode))) ||\n (!isStrictMode && (this.isFilterMatched(copyNodeForGlobal, paramsWithoutNode) || this.findFilteredNodes(copyNodeForGlobal, paramsWithoutNode)))) {\n globalMatch = true;\n copyNode = copyNodeForGlobal;\n }\n }\n }\n\n let matches = localMatch;\n if (this.filters['global']) {\n matches = localMatch && globalMatch;\n }\n\n if (matches) {\n this.filteredNodes.push(copyNode);\n }\n\n isValueChanged = isValueChanged || !localMatch || globalMatch || (localMatch && this.filteredNodes.length > 0) || (!globalMatch && this.filteredNodes.length === 0)\n }\n\n if (!isValueChanged) {\n this.filteredNodes = null;\n }\n\n if (this.paginator) {\n this.totalRecords = this.filteredNodes ? this.filteredNodes.length : this.value ? this.value.length : 0;\n }\n }\n }\n\n this.first = 0;\n\n const filteredValue = this.filteredNodes || this.value;\n\n this.onFilter.emit({\n filters: this.filters,\n filteredValue: filteredValue\n });\n\n this.tableService.onUIUpdate(filteredValue);\n this.updateSerializedValue();\n\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n\n findFilteredNodes(node, paramsWithoutNode) {\n if (node) {\n let matched = false;\n if (node.children) {\n let childNodes = [...node.children];\n node.children = [];\n for (let childNode of childNodes) {\n let copyChildNode = {...childNode};\n if (this.isFilterMatched(copyChildNode, paramsWithoutNode)) {\n matched = true;\n node.children.push(copyChildNode);\n }\n }\n }\n\n if (matched) {\n return true;\n }\n }\n }\n\n isFilterMatched(node, {filterField, filterValue, filterConstraint, isStrictMode}) {\n let matched = false;\n let dataFieldValue = ObjectUtils.resolveFieldData(node.data, filterField);\n if (filterConstraint(dataFieldValue, filterValue, this.filterLocale)) {\n matched = true;\n }\n\n if (!matched || (isStrictMode && !this.isNodeLeaf(node))) {\n matched = this.findFilteredNodes(node, {filterField, filterValue, filterConstraint, isStrictMode}) || matched;\n }\n\n return matched;\n }\n\n isNodeLeaf(node) {\n return node.leaf === false ? false : !(node.children && node.children.length);\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 public reset() {\n this._sortField = null;\n this._sortOrder = 1;\n this._multiSortMeta = null;\n this.tableService.onSort(null);\n\n this.filteredNodes = null;\n this.filters = {};\n\n this.first = 0;\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 updateEditingCell(cell, data, field) {\n this.editingCell = cell;\n this.editingCellData = data;\n this.editingCellField = field;\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 });\n this.editingCellField = null;\n this.editingCellData = null;\n this.unbindDocumentEditListener();\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 ngOnDestroy() {\n this.unbindDocumentEditListener();\n this.editingCell = null;\n this.editingCellField = null;\n this.editingCellData = null;\n this.initialized = null;\n }\n\n}\n\n@Component({\n selector: '[pTreeTableBody]',\n template: `\n <ng-container *ngIf=\"!tt.virtualScroll\">\n <ng-template ngFor let-serializedNode let-rowIndex=\"index\" [ngForOf]=\"tt.serializedValue\" [ngForTrackBy]=\"tt.rowTrackBy\">\n <ng-container *ngIf=\"serializedNode.visible\">\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: serializedNode, node: serializedNode.node, rowData: serializedNode.node.data, columns: columns}\"></ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"tt.virtualScroll\">\n <ng-template cdkVirtualFor let-serializedNode let-rowIndex=\"index\" [cdkVirtualForOf]=\"tt.serializedValue\" [cdkVirtualForTrackBy]=\"tt.rowTrackBy\" [cdkVirtualForTemplateCacheSize]=\"0\">\n <ng-container *ngIf=\"serializedNode.visible\">\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: serializedNode, node: serializedNode.node, rowData: serializedNode.node.data, columns: columns}\"></ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"tt.isEmpty()\">\n <ng-container *ngTemplateOutlet=\"tt.emptyMessageTemplate; context: {$implicit: columns, frozen: frozen}\"></ng-container>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class TTBody {\n\n @Input(\"pTreeTableBody\") columns: any[];\n\n @Input(\"pTreeTableBodyTemplate\") template: TemplateRef<any>;\n\n @Input() frozen: boolean;\n\n subscription: Subscription;\n\n constructor(public tt: TreeTable, public treeTableService: TreeTableService, public cd: ChangeDetectorRef) {\n this.subscription = this.tt.tableService.uiUpdateSource$.subscribe(() => {\n if (this.tt.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: '[ttScrollableView]',\n template: `\n <div #scrollHeader class=\"p-treetable-scrollable-header\">\n <div #scrollHeaderBox class=\"p-treetable-scrollable-header-box\">\n <table class=\"p-treetable-scrollable-header-table\" [ngClass]=\"tt.tableStyleClass\" [ngStyle]=\"tt.tableStyle\">\n <ng-container *ngTemplateOutlet=\"frozen ? tt.frozenColGroupTemplate||tt.colGroupTemplate : tt.colGroupTemplate; context {$implicit: columns}\"></ng-container>\n <thead class=\"p-treetable-thead\">\n <ng-container *ngTemplateOutlet=\"frozen ? tt.frozenHeaderTemplate||tt.headerTemplate : tt.headerTemplate; context {$implicit: columns}\"></ng-container>\n </thead>\n </table>\n </div>\n </div>\n <ng-container *ngIf=\"!tt.virtualScroll; else virtualScrollTemplate\">\n <div #scrollBody class=\"p-treetable-scrollable-body\" [ngStyle]=\"{'max-height': tt.scrollHeight !== 'flex' ? scrollHeight : undefined, 'overflow-y': !frozen && tt.scrollHeight ? 'scroll' : undefined}\">\n <table #scrollTable [class]=\"tt.tableStyleClass\" [ngStyle]=\"tt.tableStyle\">\n <ng-container *ngTemplateOutlet=\"frozen ? tt.frozenColGroupTemplate||tt.colGroupTemplate : tt.colGroupTemplate; context {$implicit: columns}\"></ng-container>\n <tbody class=\"p-treetable-tbody\" [pTreeTableBody]=\"columns\" [pTreeTableBodyTemplate]=\"frozen ? tt.frozenBodyTemplate||tt.bodyTemplate : tt.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]=\"tt.virtualRowHeight\" [style.height]=\"tt.scrollHeight !== 'flex' ? scrollHeight : undefined\"\n [minBufferPx]=\"tt.minBufferPx\" [maxBufferPx]=\"tt.maxBufferPx\" class=\"p-treetable-virtual-scrollable-body\">\n <table #scrollTable [class]=\"tt.tableStyleClass\" [ngStyle]=\"tt.tableStyle\">\n <ng-container *ngTemplateOutlet=\"frozen ? tt.frozenColGroupTemplate||tt.colGroupTemplate : tt.colGroupTemplate; context {$implicit: columns}\"></ng-container>\n <tbody class=\"p-treetable-tbody\" [pTreeTableBody]=\"columns\" [pTreeTableBodyTemplate]=\"frozen ? tt.frozenBodyTemplate||tt.bodyTemplate : tt.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 *ngIf=\"tt.footerTemplate\" class=\"p-treetable-scrollable-footer\">\n <div #scrollFooterBox class=\"p-treetable-scrollable-footer-box\">\n <table class=\"p-treetable-scrollable-footer-table\" [ngClass]=\"tt.tableStyleClass\" [ngStyle]=\"tt.tableStyle\">\n <ng-container *ngTemplateOutlet=\"frozen ? tt.frozenColGroupTemplate||tt.colGroupTemplate : tt.colGroupTemplate; context {$implicit: columns}\"></ng-container>\n <tfoot class=\"p-treetable-tfoot\">\n <ng-container *ngTemplateOutlet=\"frozen ? tt.frozenFooterTemplate||tt.footerTemplate : tt.footerTemplate; context {$implicit: columns}\"></ng-container>\n </tfoot>\n </table>\n </div>\n </div>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class TTScrollableView implements AfterViewInit, OnDestroy {\n\n @Input(\"ttScrollableView\") 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('loadingTable') scrollLoadingTableViewChild: 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;\n\n bodyScrollListener;\n\n footerScrollListener;\n\n frozenSiblingBody: Element;\n\n totalRecordsSubscription: Subscription;\n\n _scrollHeight: string;\n\n preventBodyScrollPropagation: boolean;\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.tt.virtualScroll && this.virtualScrollBody) {\n this.virtualScrollBody.ngOnInit();\n }\n }\n\n constructor(public tt: TreeTable, public el: ElementRef, public zone: NgZone) {}\n\n ngAfterViewInit() {\n if (!this.frozen) {\n if (this.tt.frozenColumns || this.tt.frozenBodyTemplate) {\n DomHandler.addClass(this.el.nativeElement, 'p-treetable-unfrozen-view');\n }\n\n let frozenView = this.el.nativeElement.previousElementSibling;\n if (frozenView) {\n if (this.tt.virtualScroll)\n this.frozenSiblingBody = DomHandler.findSingle(frozenView, '.p-treetable-virtual-scrollable-body');\n else\n this.frozenSiblingBody = DomHandler.findSingle(frozenView, '.p-treetable-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.scrollHeaderBoxViewChild.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.tt.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.scrollHeaderBoxViewChild.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 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\n this.frozenSiblingBody = null;\n }\n}\n\n@Directive({\n selector: '[ttSortableColumn]',\n host: {\n '[class.p-sortable-column]': 'isEnabled()',\n '[class.p-highlight]': 'sorted',\n '[attr.tabindex]': 'isEnabled() ? \"0\" : null',\n '[attr.role]': '\"columnheader\"'\n }\n})\nexport class TTSortableColumn implements OnInit, OnDestroy {\n\n @Input(\"ttSortableColumn\") field: string;\n\n @Input() ttSortableColumnDisabled: boolean;\n\n sorted: boolean;\n\n subscription: Subscription;\n\n constructor(public tt: TreeTable) {\n if (this.isEnabled()) {\n this.subscription = this.tt.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.tt.isSorted(this.field);\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent) {\n if (this.isEnabled()) {\n this.updateSortState();\n this.tt.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.ttSortableColumnDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: 'p-treeTableSortIcon',\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 `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TTSortIcon implements OnInit, OnDestroy {\n\n @Input() field: string;\n\n @Input() ariaLabelDesc: string;\n\n @Input() ariaLabelAsc: string;\n\n subscription: Subscription;\n\n sortOrder: number;\n\n constructor(public tt: TreeTable, public cd: ChangeDetectorRef) {\n this.subscription = this.tt.tableService.sortSource$.subscribe(sortMeta => {\n this.updateSortState();\n this.cd.markForCheck();\n });\n }\n\n ngOnInit() {\n this.updateSortState();\n }\n\n onClick(event){\n event.preventDefault();\n }\n\n updateSortState() {\n if (this.tt.sortMode === 'single') {\n this.sortOrder = this.tt.isSorted(this.field) ? this.tt.sortOrder : 0;\n }\n else if (this.tt.sortMode === 'multiple') {\n let sortMeta = this.tt.getSortMeta(this.field);\n this.sortOrder = sortMeta ? sortMeta.order: 0;\n }\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[ttResizableColumn]'\n})\nexport class TTResizableColumn implements AfterViewInit, OnDestroy {\n\n @Input() ttResizableColumnDisabled: boolean;\n\n resizer: HTMLSpanElement;\n\n resizerMouseDownListener: any;\n\n documentMouseMoveListener: any;\n\n documentMouseUpListener: any;\n\n constructor(public tt: TreeTable, 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: Event) {\n this.tt.onColumnResizeBegin(event);\n this.bindDocumentEvents();\n }\n\n onDocumentMouseMove(event: Event) {\n this.tt.onColumnResize(event);\n }\n\n onDocumentMouseUp(event: Event) {\n this.tt.onColumnResizeEnd(event, this.el.nativeElement);\n this.unbindDocumentEvents();\n }\n\n isEnabled() {\n return this.ttResizableColumnDisabled !== 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: '[ttReorderableColumn]'\n})\nexport class TTReorderableColumn implements AfterViewInit, OnDestroy {\n\n @Input() ttReorderableColumnDisabled: 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 tt: TreeTable, 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.tt.onColumnDragStart(event, this.el.nativeElement);\n }\n\n onDragOver(event) {\n event.preventDefault();\n }\n\n onDragEnter(event) {\n this.tt.onColumnDragEnter(event, this.el.nativeElement);\n }\n\n onDragLeave(event) {\n this.tt.onColumnDragLeave(event);\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event) {\n if (this.isEnabled()) {\n this.tt.onColumnDrop(event, this.el.nativeElement);\n }\n }\n\n isEnabled() {\n return this.ttReorderableColumnDisabled !== true;\n }\n\n ngOnDestroy() {\n this.unbindEvents();\n }\n\n}\n\n@Directive({\n selector: '[ttSelectableRow]',\n host: {\n '[class.p-highlight]': 'selected'\n }\n})\nexport class TTSelectableRow implements OnInit, OnDestroy {\n\n @Input(\"ttSelectableRow\") rowNode: any;\n\n @Input() ttSelectableRowDisabled: boolean;\n\n selected: boolean;\n\n subscription: Subscription;\n\n constructor(public tt: TreeTable, public tableService: TreeTableService) {\n if (this.isEnabled()) {\n this.subscription = this.tt.tableService.selectionSource$.subscribe(() => {\n this.selected = this.tt.isSelected(this.rowNode.node);\n });\n }\n }\n\n ngOnInit() {\n if (this.isEnabled()) {\n this.selected = this.tt.isSelected(this.rowNode.node);\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.tt.handleRowClick({\n originalEvent: event,\n rowNode: this.rowNode\n });\n }\n }\n\n @HostListener('keydown', ['$event'])\n onEnterKey(event: KeyboardEvent) {\n if (event.which === 13) {\n this.onClick(event);\n }\n }\n\n @HostListener('touchend', ['$event'])\n onTouchEnd(event: Event) {\n if (this.isEnabled()) {\n this.tt.handleRowTouchEnd(event);\n }\n }\n\n isEnabled() {\n return this.ttSelectableRowDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n\n@Directive({\n selector: '[ttSelectableRowDblClick]',\n host: {\n '[class.p-highlight]': 'selected'\n }\n})\nexport class TTSelectableRowDblClick implements OnInit, OnDestroy {\n\n @Input(\"ttSelectableRowDblClick\") rowNode: any;\n\n @Input() ttSelectableRowDisabled: boolean;\n\n selected: boolean;\n\n subscription: Subscription;\n\n constructor(public tt: TreeTable, public tableService: TreeTableService) {\n if (this.isEnabled()) {\n this.subscription = this.tt.tableService.selectionSource$.subscribe(() => {\n this.selected = this.tt.isSelected(this.rowNode.node);\n });\n }\n }\n\n ngOnInit() {\n if (this.isEnabled()) {\n this.selected = this.tt.isSelected(this.rowNode.node);\n }\n }\n\n @HostListener('dblclick', ['$event'])\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.tt.handleRowClick({\n originalEvent: event,\n rowNode: this.rowNode\n });\n }\n }\n\n isEnabled() {\n return this.ttSelectableRowDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n\n@Directive({\n selector: '[ttContextMenuRow]',\n host: {\n '[class.p-highlight-contextmenu]': 'selected',\n '[attr.tabindex]': 'isEnabled() ? 0 : undefined'\n }\n})\nexport class TTContextMenuRow {\n\n @Input(\"ttContextMenuRow\") rowNode: any;\n\n @Input() ttContextMenuRowDisabled: boolean;\n\n selected: boolean;\n\n subscription: Subscription;\n\n constructor(public tt: TreeTable, public tableService: TreeTableService, private el: ElementRef) {\n if (this.isEnabled()) {\n this.subscription = this.tt.tableService.contextMenuSource$.subscribe((node) => {\n this.selected = this.tt.equals(this.rowNode.node, node);\n });\n }\n }\n\n @HostListener('contextmenu', ['$event'])\n onContextMenu(event: Event) {\n if (this.isEnabled()) {\n this.tt.handleRowRightClick({\n originalEvent: event,\n rowNode: this.rowNode\n });\n\n this.el.nativeElement.focus();\n\n event.preventDefault();\n }\n }\n\n isEnabled() {\n return this.ttContextMenuRowDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n\n@Component({\n selector: 'p-treeTableCheckbox',\n template: `\n <div class=\"p-checkbox p-component\" (click)=\"onClick($event)\">\n <div class=\"p-hidden-accessible\">\n <input type=\"checkbox\" [checked]=\"checked\" (focus)=\"onFocus()\" (blur)=\"onBlur()\">\n </div>\n <div #box [ngClass]=\"{'p-checkbox-box':true,\n 'p-highlight':checked, 'p-indeterminate': rowNode.node.partialSelected, 'p-disabled':disabled}\" role=\"checkbox\" [attr.aria-checked]=\"checked\">\n <span class=\"p-checkbox-icon pi\" [ngClass]=\"{'pi-check':checked, 'pi-minus': rowNode.node.partialSelected}\"></span>\n </div>\n </div>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TTCheckbox {\n\n @Input() disabled: boolean;\n\n @Input(\"value\") rowNode: any;\n\n @ViewChild('box') boxViewChild: ElementRef;\n\n checked: boolean;\n\n subscription: Subscription;\n\n constructor(public tt: TreeTable, public tableService: TreeTableService, public cd: ChangeDetectorRef) {\n this.subscription = this.tt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.tt.isSelected(this.rowNode.node);\n this.cd.markForCheck();\n });\n }\n\n ngOnInit() {\n this.checked = this.tt.isSelected(this.rowNode.node);\n }\n\n onClick(event: Event) {\n if (!this.disabled) {\n this.tt.toggleNodeWithCheckbox({\n originalEvent: event,\n rowNode: this.rowNode\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 ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n\n@Component({\n selector: 'p-treeTableHeaderCheckbox',\n template: `\n <div class=\"p-checkbox p-component\" (click)=\"onClick($event, cb.checked)\">\n <div class=\"p-hidden-accessible\">\n <input #cb type=\"checkbox\" [checked]=\"checked\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" [disabled]=\"!tt.value||tt.value.length === 0\">\n </div>\n <div #box [ngClass]=\"{'p-checkbox-box':true,\n 'p-highlight':checked, 'p-disabled': (!tt.value || tt.value.length === 0)}\" role=\"checkbox\" [attr.aria-checked]=\"checked\">\n <span class=\"p-checkbox-icon\" [ngClass]=\"{'pi pi-check':checked}\"></span>\n </div>\n </div>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TTHeaderCheckbox {\n\n @ViewChild('box') boxViewChild: ElementRef;\n\n checked: boolean;\n\n disabled: boolean;\n\n selectionChangeSubscription: Subscription;\n\n valueChangeSubscription: Subscription;\n\n constructor(public tt: TreeTable, public tableService: TreeTableService, private cd: ChangeDetectorRef) {\n this.valueChangeSubscription = this.tt.tableService.uiUpdateSource$.subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n\n this.selectionChangeSubscription = this.tt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n }\n\n ngOnInit() {\n this.checked = this.updateCheckedState();\n }\n\n onClick(event: Event, checked) {\n if (this.tt.value && this.tt.value.length > 0) {\n this.tt.toggleNodesWithCheckbox(event, !checked);\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 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 let checked: boolean;\n const data = this.tt.filteredNodes||this.tt.value;\n\n if (data) {\n for (let node of data) {\n if (this.tt.isSelected(node)) {\n checked = true;\n }\n else {\n checked = false;\n break;\n }\n }\n }\n else {\n checked = false;\n }\n\n return checked;\n }\n\n}\n\n@Directive({\n selector: '[ttEditableColumn]'\n})\nexport class TTEditableColumn implements AfterViewInit {\n\n @Input(\"ttEditableColumn\") data: any;\n\n @Input(\"ttEditableColumnField\") field: any;\n\n @Input() ttEditableColumnDisabled: boolean;\n\n constructor(public tt: TreeTable, 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.tt.editingCellClick = true;\n\n if (this.tt.editingCell) {\n if (this.tt.editingCell !== this.el.nativeElement) {\n if (!this.tt.isEditingCellValid()) {\n return;\n }\n\n DomHandler.removeClass(this.tt.editingCell, 'p-cell-editing');\n this.openCell();\n }\n }\n else {\n this.openCell();\n }\n }\n }\n\n openCell() {\n this.tt.updateEditingCell(this.el.nativeElement, this.data, this.field);\n DomHandler.addClass(this.el.nativeElement, 'p-cell-editing');\n this.tt.onEditInit.emit({ field: this.field, data: this.data});\n this.tt.editingCellClick = true;\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n let focusable = DomHandler.findSingle(this.el.nativeElement, 'input, textarea');\n if (focusable) {\n focusable.focus();\n }\n }, 50);\n });\n }\n\n closeEditingCell() {\n DomHandler.removeClass(this.tt.editingCell, 'p-checkbox-icon');\n this.tt.editingCell = null;\n this.tt.unbindDocumentEditListener();\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n //enter\n if (event.keyCode == 13) {\n if (this.tt.isEditingCellValid()) {\n DomHandler.removeClass(this.tt.editingCell, 'p-cell-editing');\n this.closeEditingCell();\n this.tt.onEditComplete.emit({ field: this.field, data: this.data });\n }\n\n event.preventDefault();\n }\n\n //escape\n else if (event.keyCode == 27) {\n if (this.tt.isEditingCellValid()) {\n DomHandler.removeClass(this.tt.editingCell, 'p-cell-editing');\n this.closeEditingCell();\n this.tt.onEditCancel.emit({ field: this.field, data: this.data });\n }\n\n event.preventDefault();\n }\n\n //tab\n else if (event.keyCode == 9) {\n this.tt.onEditComplete.emit({ field: this.field, data: this.data });\n\n if (event.shiftKey)\n this.moveToPreviousCell(event);\n else\n this.moveToNextCell(event);\n }\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 let row = currentCell.parentElement;\n let targetCell = this.findPreviousEditableColumn(currentCell);\n\n if (targetCell) {\n DomHandler.invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n }\n\n moveToNextCell(event: KeyboardEvent) {\n let currentCell = this.findCell(event.target);\n let row = currentCell.parentElement;\n let targetCell = this.findNextEditableColumn(currentCell);\n\n if (targetCell) {\n DomHandler.invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n }\n\n findPreviousEditableColumn(cell: Element) {\n let prevCell = cell.previousElementSibling;\n\n if (!prevCell) {\n let previousRow = cell.parentElement ? cell.parentElement.previousElementSibling : null;\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 ? cell.parentElement.nextElementSibling : null;\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 isEnabled() {\n return this.ttEditableColumnDisabled !== true;\n }\n\n}\n\n@Component({\n selector: 'p-treeTableCellEditor',\n template: `\n <ng-container *ngIf=\"tt.editingCell === editableColumn.el.nativeElement\">\n <ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!tt.editingCell || tt.editingCell !== editableColumn.el.nativeElement\">\n <ng-container *ngTemplateOutlet=\"outputTemplate\"></ng-container>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class TreeTableCellEditor implements AfterContentInit {\n\n @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate>;\n\n inputTemplate: TemplateRef<any>;\n\n outputTemplate: TemplateRef<any>;\n\n constructor(public tt: TreeTable, public editableColumn: TTEditableColumn) { }\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\n@Directive({\n selector: '[ttRow]',\n host: {\n '[attr.tabindex]': '\"0\"'\n }\n})\nexport class TTRow {\n\n @Input('ttRow') rowNode: any;\n\n constructor(public tt: TreeTable, public el: ElementRef, public zone: NgZone) {}\n\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n switch (event.which) {\n //down arrow\n case 40:\n let nextRow = this.el.nativeElement.nextElementSibling;\n if (nextRow) {\n nextRow.focus();\n }\n\n event.preventDefault();\n break;\n\n //down arrow\n case 38:\n let prevRow = this.el.nativeElement.previousElementSibling;\n if (prevRow) {\n prevRow.focus();\n }\n\n event.preventDefault();\n break;\n\n //left arrow\n case 37:\n if (this.rowNode.node.expanded) {\n this.tt.toggleRowIndex = DomHandler.index(this.el.nativeElement);\n this.rowNode.node.expanded = false;\n\n this.tt.onNodeCollapse.emit({\n originalEvent: event,\n node: this.rowNode.node\n });\n\n this.tt.updateSerializedValue();\n this.tt.tableService.onUIUpdate(this.tt.value);\n this.restoreFocus();\n }\n break;\n\n //right arrow\n case 39:\n if (!this.rowNode.node.expanded) {\n this.tt.toggleRowIndex = DomHandler.index(this.el.nativeElement);\n this.rowNode.node.expanded = true;\n\n this.tt.onNodeExpand.emit({\n originalEvent: event,\n node: this.rowNode.node\n });\n\n this.tt.updateSerializedValue();\n this.tt.tableService.onUIUpdate(this.tt.value);\n this.restoreFocus();\n }\n break;\n }\n }\n\n restoreFocus() {\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n let row = DomHandler.findSingle(this.tt.containerViewChild.nativeElement, '.p-treetable-tbody').children[this.tt.toggleRowIndex];\n if (row) {\n row.focus();\n }\n }, 25);\n });\n }\n}\n\n@Component({\n selector: 'p-treeTableToggler',\n template: `\n <button type=\"button\" class=\"p-treetable-toggler p-link\" (click)=\"onClick($event)\" tabindex=\"-1\" pRipple\n [style.visibility]=\"rowNode.node.leaf === false || (rowNode.node.children && rowNode.node.children.length) ? 'visible' : 'hidden'\" [style.marginLeft]=\"rowNode.level * 16 + 'px'\">\n <i [ngClass]=\"rowNode.node.expanded ? 'pi pi-fw pi-chevron-down' : 'pi pi-fw pi-chevron-right'\"></i>\n </button>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class TreeTableToggler {\n\n @Input() rowNode: any;\n\n constructor(public tt: TreeTable) {}\n\n onClick(event: Event) {\n this.rowNode.node.expanded = !this.rowNode.node.expanded;\n\n if (this.rowNode.node.expanded) {\n this.tt.onNodeExpand.emit({\n originalEvent: event,\n node: this.rowNode.node\n });\n }\n else {\n this.tt.onNodeCollapse.emit({\n originalEvent: event,\n node: this.rowNode.node\n });\n }\n\n this.tt.updateSerializedValue();\n this.tt.tableService.onUIUpdate(this.tt.value);\n\n event.preventDefault();\n }\n}\n\n@NgModule({\n imports: [CommonModule,PaginatorModule,ScrollingModule,RippleModule],\n exports: [TreeTable,SharedModule,TreeTableToggler,TTSortableColumn,TTSortIcon,TTResizableColumn,TTRow,TTReorderableColumn,TTSelectableRow,TTSelectableRowDblClick,TTContextMenuRow,TTCheckbox,TTHeaderCheckbox,TTEditableColumn,TreeTableCellEditor,ScrollingModule],\n declarations: [TreeTable,TreeTableToggler,TTScrollableView,TTBody,TTSortableColumn,TTSortIcon,TTResizableColumn,TTRow,TTReorderableColumn,TTSelectableRow,TTSelectableRowDblClick,TTContextMenuRow,TTCheckbox,TTHeaderCheckbox,TTEditableColumn,TreeTableCellEditor]\n})\nexport class TreeTableModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["Subject","Injectable","EventEmitter","ObjectUtils","DomHandler","PrimeTemplate","Component","ViewEncapsulation","Input","Output","ViewChild","ContentChildren","CdkVirtualScrollViewport","Directive","HostListener","ChangeDetectionStrategy","CommonModule","PaginatorModule","ScrollingModule","RippleModule","SharedModule","NgModule"],"mappings":"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"}