primeng 11.0.0-rc.1 → 11.1.0

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 (902) hide show
  1. package/api/confirmation.d.ts +2 -0
  2. package/api/filterservice.d.ts +22 -0
  3. package/api/primeicons.d.ts +19 -0
  4. package/api/primeng-api.metadata.json +1 -1
  5. package/api/public_api.d.ts +1 -0
  6. package/api/translation.d.ts +1 -0
  7. package/api/translationkeys.d.ts +1 -0
  8. package/autocomplete/autocomplete.d.ts +0 -1
  9. package/autocomplete/primeng-autocomplete.metadata.json +1 -1
  10. package/avatar/avatar.d.ts +18 -0
  11. package/avatar/package.json +11 -0
  12. package/avatar/primeng-avatar.d.ts +4 -0
  13. package/avatar/primeng-avatar.metadata.json +1 -0
  14. package/avatar/public_api.d.ts +1 -0
  15. package/avatargroup/avatargroup.d.ts +6 -0
  16. package/avatargroup/package.json +11 -0
  17. package/avatargroup/primeng-avatargroup.d.ts +4 -0
  18. package/avatargroup/primeng-avatargroup.metadata.json +1 -0
  19. package/avatargroup/public_api.d.ts +1 -0
  20. package/badge/badge.d.ts +33 -0
  21. package/badge/package.json +11 -0
  22. package/badge/primeng-badge.d.ts +4 -0
  23. package/badge/primeng-badge.metadata.json +1 -0
  24. package/badge/public_api.d.ts +1 -0
  25. package/bundles/primeng-accordion.umd.js.map +1 -1
  26. package/bundles/primeng-accordion.umd.min.js.map +1 -1
  27. package/bundles/primeng-api.umd.js +539 -5
  28. package/bundles/primeng-api.umd.js.map +1 -1
  29. package/bundles/primeng-api.umd.min.js +1 -1
  30. package/bundles/primeng-api.umd.min.js.map +1 -1
  31. package/bundles/primeng-autocomplete.umd.js +12 -9
  32. package/bundles/primeng-autocomplete.umd.js.map +1 -1
  33. package/bundles/primeng-autocomplete.umd.min.js +1 -1
  34. package/bundles/primeng-autocomplete.umd.min.js.map +1 -1
  35. package/bundles/primeng-avatar.umd.js +64 -0
  36. package/bundles/primeng-avatar.umd.js.map +1 -0
  37. package/bundles/primeng-avatar.umd.min.js +2 -0
  38. package/bundles/primeng-avatar.umd.min.js.map +1 -0
  39. package/bundles/primeng-avatargroup.umd.js +48 -0
  40. package/bundles/primeng-avatargroup.umd.js.map +1 -0
  41. package/bundles/primeng-avatargroup.umd.min.js +2 -0
  42. package/bundles/primeng-avatargroup.umd.min.js.map +1 -0
  43. package/bundles/primeng-badge.umd.js +139 -0
  44. package/bundles/primeng-badge.umd.js.map +1 -0
  45. package/bundles/primeng-badge.umd.min.js +2 -0
  46. package/bundles/primeng-badge.umd.min.js.map +1 -0
  47. package/bundles/primeng-blockui.umd.js.map +1 -1
  48. package/bundles/primeng-blockui.umd.min.js.map +1 -1
  49. package/bundles/primeng-breadcrumb.umd.js.map +1 -1
  50. package/bundles/primeng-breadcrumb.umd.min.js.map +1 -1
  51. package/bundles/primeng-button.umd.js +7 -1
  52. package/bundles/primeng-button.umd.js.map +1 -1
  53. package/bundles/primeng-button.umd.min.js +1 -1
  54. package/bundles/primeng-button.umd.min.js.map +1 -1
  55. package/bundles/primeng-calendar.umd.js +10 -2
  56. package/bundles/primeng-calendar.umd.js.map +1 -1
  57. package/bundles/primeng-calendar.umd.min.js +1 -1
  58. package/bundles/primeng-calendar.umd.min.js.map +1 -1
  59. package/bundles/primeng-captcha.umd.js.map +1 -1
  60. package/bundles/primeng-captcha.umd.min.js.map +1 -1
  61. package/bundles/primeng-card.umd.js.map +1 -1
  62. package/bundles/primeng-card.umd.min.js.map +1 -1
  63. package/bundles/primeng-carousel.umd.js +36 -7
  64. package/bundles/primeng-carousel.umd.js.map +1 -1
  65. package/bundles/primeng-carousel.umd.min.js +1 -1
  66. package/bundles/primeng-carousel.umd.min.js.map +1 -1
  67. package/bundles/primeng-cascadeselect.umd.js +896 -0
  68. package/bundles/primeng-cascadeselect.umd.js.map +1 -0
  69. package/bundles/primeng-cascadeselect.umd.min.js +16 -0
  70. package/bundles/primeng-cascadeselect.umd.min.js.map +1 -0
  71. package/bundles/primeng-chart.umd.js.map +1 -1
  72. package/bundles/primeng-chart.umd.min.js.map +1 -1
  73. package/bundles/primeng-checkbox.umd.js +9 -1
  74. package/bundles/primeng-checkbox.umd.js.map +1 -1
  75. package/bundles/primeng-checkbox.umd.min.js.map +1 -1
  76. package/bundles/primeng-chip.umd.js +67 -0
  77. package/bundles/primeng-chip.umd.js.map +1 -0
  78. package/bundles/primeng-chip.umd.min.js +2 -0
  79. package/bundles/primeng-chip.umd.min.js.map +1 -0
  80. package/bundles/primeng-chips.umd.js +10 -2
  81. package/bundles/primeng-chips.umd.js.map +1 -1
  82. package/bundles/primeng-chips.umd.min.js +2 -2
  83. package/bundles/primeng-chips.umd.min.js.map +1 -1
  84. package/bundles/primeng-codehighlighter.umd.js.map +1 -1
  85. package/bundles/primeng-codehighlighter.umd.min.js.map +1 -1
  86. package/bundles/primeng-colorpicker.umd.js +18 -1
  87. package/bundles/primeng-colorpicker.umd.js.map +1 -1
  88. package/bundles/primeng-colorpicker.umd.min.js +1 -1
  89. package/bundles/primeng-colorpicker.umd.min.js.map +1 -1
  90. package/bundles/primeng-confirmdialog.umd.js +30 -10
  91. package/bundles/primeng-confirmdialog.umd.js.map +1 -1
  92. package/bundles/primeng-confirmdialog.umd.min.js +1 -1
  93. package/bundles/primeng-confirmdialog.umd.min.js.map +1 -1
  94. package/bundles/primeng-confirmpopup.umd.js +17 -8
  95. package/bundles/primeng-confirmpopup.umd.js.map +1 -1
  96. package/bundles/primeng-confirmpopup.umd.min.js +1 -1
  97. package/bundles/primeng-confirmpopup.umd.min.js.map +1 -1
  98. package/bundles/primeng-contextmenu.umd.js +9 -1
  99. package/bundles/primeng-contextmenu.umd.js.map +1 -1
  100. package/bundles/primeng-contextmenu.umd.min.js.map +1 -1
  101. package/bundles/primeng-dataview.umd.js +5 -3
  102. package/bundles/primeng-dataview.umd.js.map +1 -1
  103. package/bundles/primeng-dataview.umd.min.js +1 -1
  104. package/bundles/primeng-dataview.umd.min.js.map +1 -1
  105. package/bundles/primeng-defer.umd.js.map +1 -1
  106. package/bundles/primeng-defer.umd.min.js.map +1 -1
  107. package/bundles/primeng-dialog.umd.js +6 -1
  108. package/bundles/primeng-dialog.umd.js.map +1 -1
  109. package/bundles/primeng-dialog.umd.min.js +1 -1
  110. package/bundles/primeng-dialog.umd.min.js.map +1 -1
  111. package/bundles/primeng-divider.umd.js +68 -0
  112. package/bundles/primeng-divider.umd.js.map +1 -0
  113. package/bundles/primeng-divider.umd.min.js +2 -0
  114. package/bundles/primeng-divider.umd.min.js.map +1 -0
  115. package/bundles/primeng-dom.umd.js +9 -1
  116. package/bundles/primeng-dom.umd.js.map +1 -1
  117. package/bundles/primeng-dom.umd.min.js.map +1 -1
  118. package/bundles/primeng-dragdrop.umd.js.map +1 -1
  119. package/bundles/primeng-dragdrop.umd.min.js.map +1 -1
  120. package/bundles/primeng-dropdown.umd.js +16 -6
  121. package/bundles/primeng-dropdown.umd.js.map +1 -1
  122. package/bundles/primeng-dropdown.umd.min.js +1 -1
  123. package/bundles/primeng-dropdown.umd.min.js.map +1 -1
  124. package/bundles/primeng-dynamicdialog.umd.js.map +1 -1
  125. package/bundles/primeng-dynamicdialog.umd.min.js.map +1 -1
  126. package/bundles/primeng-editor.umd.js +7 -3
  127. package/bundles/primeng-editor.umd.js.map +1 -1
  128. package/bundles/primeng-editor.umd.min.js +1 -1
  129. package/bundles/primeng-editor.umd.min.js.map +1 -1
  130. package/bundles/primeng-fieldset.umd.js.map +1 -1
  131. package/bundles/primeng-fieldset.umd.min.js.map +1 -1
  132. package/bundles/primeng-fileupload.umd.js +10 -2
  133. package/bundles/primeng-fileupload.umd.js.map +1 -1
  134. package/bundles/primeng-fileupload.umd.min.js +1 -1
  135. package/bundles/primeng-fileupload.umd.min.js.map +1 -1
  136. package/bundles/primeng-focustrap.umd.js.map +1 -1
  137. package/bundles/primeng-focustrap.umd.min.js.map +1 -1
  138. package/bundles/primeng-fullcalendar.umd.js.map +1 -1
  139. package/bundles/primeng-fullcalendar.umd.min.js.map +1 -1
  140. package/bundles/primeng-galleria.umd.js +9 -1
  141. package/bundles/primeng-galleria.umd.js.map +1 -1
  142. package/bundles/primeng-galleria.umd.min.js.map +1 -1
  143. package/bundles/primeng-gmap.umd.js +9 -1
  144. package/bundles/primeng-gmap.umd.js.map +1 -1
  145. package/bundles/primeng-gmap.umd.min.js.map +1 -1
  146. package/bundles/primeng-inplace.umd.js.map +1 -1
  147. package/bundles/primeng-inplace.umd.min.js.map +1 -1
  148. package/bundles/primeng-inputmask.umd.js.map +1 -1
  149. package/bundles/primeng-inputmask.umd.min.js.map +1 -1
  150. package/bundles/primeng-inputnumber.umd.js +9 -1
  151. package/bundles/primeng-inputnumber.umd.js.map +1 -1
  152. package/bundles/primeng-inputnumber.umd.min.js.map +1 -1
  153. package/bundles/primeng-inputswitch.umd.js.map +1 -1
  154. package/bundles/primeng-inputswitch.umd.min.js.map +1 -1
  155. package/bundles/primeng-inputtext.umd.js.map +1 -1
  156. package/bundles/primeng-inputtext.umd.min.js.map +1 -1
  157. package/bundles/primeng-inputtextarea.umd.js +7 -3
  158. package/bundles/primeng-inputtextarea.umd.js.map +1 -1
  159. package/bundles/primeng-inputtextarea.umd.min.js +1 -1
  160. package/bundles/primeng-inputtextarea.umd.min.js.map +1 -1
  161. package/bundles/primeng-keyfilter.umd.js +9 -1
  162. package/bundles/primeng-keyfilter.umd.js.map +1 -1
  163. package/bundles/primeng-keyfilter.umd.min.js.map +1 -1
  164. package/bundles/primeng-knob.umd.js +250 -0
  165. package/bundles/primeng-knob.umd.js.map +1 -0
  166. package/bundles/primeng-knob.umd.min.js +2 -0
  167. package/bundles/primeng-knob.umd.min.js.map +1 -0
  168. package/bundles/primeng-lightbox.umd.js.map +1 -1
  169. package/bundles/primeng-lightbox.umd.min.js.map +1 -1
  170. package/bundles/primeng-listbox.umd.js +15 -5
  171. package/bundles/primeng-listbox.umd.js.map +1 -1
  172. package/bundles/primeng-listbox.umd.min.js +1 -1
  173. package/bundles/primeng-listbox.umd.min.js.map +1 -1
  174. package/bundles/primeng-megamenu.umd.js.map +1 -1
  175. package/bundles/primeng-megamenu.umd.min.js.map +1 -1
  176. package/bundles/primeng-menu.umd.js +9 -1
  177. package/bundles/primeng-menu.umd.js.map +1 -1
  178. package/bundles/primeng-menu.umd.min.js.map +1 -1
  179. package/bundles/primeng-menubar.umd.js.map +1 -1
  180. package/bundles/primeng-menubar.umd.min.js.map +1 -1
  181. package/bundles/primeng-message.umd.js.map +1 -1
  182. package/bundles/primeng-message.umd.min.js.map +1 -1
  183. package/bundles/primeng-messages.umd.js +10 -1
  184. package/bundles/primeng-messages.umd.js.map +1 -1
  185. package/bundles/primeng-messages.umd.min.js +1 -1
  186. package/bundles/primeng-messages.umd.min.js.map +1 -1
  187. package/bundles/primeng-multiselect.umd.js +22 -9
  188. package/bundles/primeng-multiselect.umd.js.map +1 -1
  189. package/bundles/primeng-multiselect.umd.min.js +1 -1
  190. package/bundles/primeng-multiselect.umd.min.js.map +1 -1
  191. package/bundles/primeng-orderlist.umd.js +15 -5
  192. package/bundles/primeng-orderlist.umd.js.map +1 -1
  193. package/bundles/primeng-orderlist.umd.min.js +1 -1
  194. package/bundles/primeng-orderlist.umd.min.js.map +1 -1
  195. package/bundles/primeng-organizationchart.umd.js +9 -1
  196. package/bundles/primeng-organizationchart.umd.js.map +1 -1
  197. package/bundles/primeng-organizationchart.umd.min.js.map +1 -1
  198. package/bundles/primeng-overlaypanel.umd.js +9 -6
  199. package/bundles/primeng-overlaypanel.umd.js.map +1 -1
  200. package/bundles/primeng-overlaypanel.umd.min.js +1 -1
  201. package/bundles/primeng-overlaypanel.umd.min.js.map +1 -1
  202. package/bundles/primeng-paginator.umd.js +9 -1
  203. package/bundles/primeng-paginator.umd.js.map +1 -1
  204. package/bundles/primeng-paginator.umd.min.js.map +1 -1
  205. package/bundles/primeng-panel.umd.js.map +1 -1
  206. package/bundles/primeng-panel.umd.min.js.map +1 -1
  207. package/bundles/primeng-panelmenu.umd.js +9 -1
  208. package/bundles/primeng-panelmenu.umd.js.map +1 -1
  209. package/bundles/primeng-panelmenu.umd.min.js +1 -1
  210. package/bundles/primeng-panelmenu.umd.min.js.map +1 -1
  211. package/bundles/primeng-password.umd.js.map +1 -1
  212. package/bundles/primeng-password.umd.min.js.map +1 -1
  213. package/bundles/primeng-picklist.umd.js +7 -11
  214. package/bundles/primeng-picklist.umd.js.map +1 -1
  215. package/bundles/primeng-picklist.umd.min.js +1 -1
  216. package/bundles/primeng-picklist.umd.min.js.map +1 -1
  217. package/bundles/primeng-progressbar.umd.js.map +1 -1
  218. package/bundles/primeng-progressbar.umd.min.js.map +1 -1
  219. package/bundles/primeng-progressspinner.umd.js.map +1 -1
  220. package/bundles/primeng-progressspinner.umd.min.js.map +1 -1
  221. package/bundles/primeng-radiobutton.umd.js.map +1 -1
  222. package/bundles/primeng-radiobutton.umd.min.js.map +1 -1
  223. package/bundles/primeng-rating.umd.js.map +1 -1
  224. package/bundles/primeng-rating.umd.min.js.map +1 -1
  225. package/bundles/primeng-ripple.umd.js.map +1 -1
  226. package/bundles/primeng-ripple.umd.min.js.map +1 -1
  227. package/bundles/primeng-scrollpanel.umd.js.map +1 -1
  228. package/bundles/primeng-scrollpanel.umd.min.js.map +1 -1
  229. package/bundles/primeng-scrolltop.umd.js +140 -0
  230. package/bundles/primeng-scrolltop.umd.js.map +1 -0
  231. package/bundles/primeng-scrolltop.umd.min.js +2 -0
  232. package/bundles/primeng-scrolltop.umd.min.js.map +1 -0
  233. package/bundles/primeng-selectbutton.umd.js +11 -3
  234. package/bundles/primeng-selectbutton.umd.js.map +1 -1
  235. package/bundles/primeng-selectbutton.umd.min.js +1 -1
  236. package/bundles/primeng-selectbutton.umd.min.js.map +1 -1
  237. package/bundles/primeng-sidebar.umd.js.map +1 -1
  238. package/bundles/primeng-sidebar.umd.min.js.map +1 -1
  239. package/bundles/primeng-skeleton.umd.js +73 -0
  240. package/bundles/primeng-skeleton.umd.js.map +1 -0
  241. package/bundles/primeng-skeleton.umd.min.js +2 -0
  242. package/bundles/primeng-skeleton.umd.min.js.map +1 -0
  243. package/bundles/primeng-slidemenu.umd.js.map +1 -1
  244. package/bundles/primeng-slidemenu.umd.min.js.map +1 -1
  245. package/bundles/primeng-slider.umd.js +12 -2
  246. package/bundles/primeng-slider.umd.js.map +1 -1
  247. package/bundles/primeng-slider.umd.min.js +1 -1
  248. package/bundles/primeng-slider.umd.min.js.map +1 -1
  249. package/bundles/primeng-spinner.umd.js.map +1 -1
  250. package/bundles/primeng-spinner.umd.min.js.map +1 -1
  251. package/bundles/primeng-splitbutton.umd.js.map +1 -1
  252. package/bundles/primeng-splitbutton.umd.min.js.map +1 -1
  253. package/bundles/primeng-splitter.umd.js +580 -0
  254. package/bundles/primeng-splitter.umd.js.map +1 -0
  255. package/bundles/primeng-splitter.umd.min.js +16 -0
  256. package/bundles/primeng-splitter.umd.min.js.map +1 -0
  257. package/bundles/primeng-steps.umd.js.map +1 -1
  258. package/bundles/primeng-steps.umd.min.js.map +1 -1
  259. package/bundles/primeng-table.umd.js +33 -18
  260. package/bundles/primeng-table.umd.js.map +1 -1
  261. package/bundles/primeng-table.umd.min.js +1 -1
  262. package/bundles/primeng-table.umd.min.js.map +1 -1
  263. package/bundles/primeng-tabmenu.umd.js.map +1 -1
  264. package/bundles/primeng-tabmenu.umd.min.js.map +1 -1
  265. package/bundles/primeng-tabview.umd.js +15 -3
  266. package/bundles/primeng-tabview.umd.js.map +1 -1
  267. package/bundles/primeng-tabview.umd.min.js +1 -1
  268. package/bundles/primeng-tabview.umd.min.js.map +1 -1
  269. package/bundles/primeng-tag.umd.js +62 -0
  270. package/bundles/primeng-tag.umd.js.map +1 -0
  271. package/bundles/primeng-tag.umd.min.js +2 -0
  272. package/bundles/primeng-tag.umd.min.js.map +1 -0
  273. package/bundles/primeng-terminal.umd.js.map +1 -1
  274. package/bundles/primeng-terminal.umd.min.js.map +1 -1
  275. package/bundles/primeng-tieredmenu.umd.js.map +1 -1
  276. package/bundles/primeng-tieredmenu.umd.min.js.map +1 -1
  277. package/bundles/primeng-timeline.umd.js.map +1 -1
  278. package/bundles/primeng-timeline.umd.min.js.map +1 -1
  279. package/bundles/primeng-toast.umd.js +10 -2
  280. package/bundles/primeng-toast.umd.js.map +1 -1
  281. package/bundles/primeng-toast.umd.min.js +1 -1
  282. package/bundles/primeng-toast.umd.min.js.map +1 -1
  283. package/bundles/primeng-togglebutton.umd.js.map +1 -1
  284. package/bundles/primeng-togglebutton.umd.min.js.map +1 -1
  285. package/bundles/primeng-toolbar.umd.js.map +1 -1
  286. package/bundles/primeng-toolbar.umd.min.js.map +1 -1
  287. package/bundles/primeng-tooltip.umd.js.map +1 -1
  288. package/bundles/primeng-tooltip.umd.min.js.map +1 -1
  289. package/bundles/primeng-tree.umd.js +10 -2
  290. package/bundles/primeng-tree.umd.js.map +1 -1
  291. package/bundles/primeng-tree.umd.min.js +1 -1
  292. package/bundles/primeng-tree.umd.min.js.map +1 -1
  293. package/bundles/primeng-treetable.umd.js +19 -9
  294. package/bundles/primeng-treetable.umd.js.map +1 -1
  295. package/bundles/primeng-treetable.umd.min.js +1 -1
  296. package/bundles/primeng-treetable.umd.min.js.map +1 -1
  297. package/bundles/primeng-tristatecheckbox.umd.js.map +1 -1
  298. package/bundles/primeng-tristatecheckbox.umd.min.js.map +1 -1
  299. package/bundles/primeng-utils.umd.js +0 -517
  300. package/bundles/primeng-utils.umd.js.map +1 -1
  301. package/bundles/primeng-utils.umd.min.js +1 -15
  302. package/bundles/primeng-utils.umd.min.js.map +1 -1
  303. package/bundles/primeng-virtualscroller.umd.js.map +1 -1
  304. package/bundles/primeng-virtualscroller.umd.min.js.map +1 -1
  305. package/bundles/primeng.umd.js.map +1 -1
  306. package/button/button.d.ts +4 -0
  307. package/button/primeng-button.metadata.json +1 -1
  308. package/calendar/primeng-calendar.metadata.json +1 -1
  309. package/carousel/carousel.d.ts +2 -1
  310. package/carousel/primeng-carousel.metadata.json +1 -1
  311. package/cascadeselect/cascadeselect.d.ts +134 -0
  312. package/cascadeselect/package.json +11 -0
  313. package/cascadeselect/primeng-cascadeselect.d.ts +4 -0
  314. package/cascadeselect/primeng-cascadeselect.metadata.json +1 -0
  315. package/cascadeselect/public_api.d.ts +1 -0
  316. package/chip/chip.d.ts +19 -0
  317. package/chip/package.json +11 -0
  318. package/chip/primeng-chip.d.ts +4 -0
  319. package/chip/primeng-chip.metadata.json +1 -0
  320. package/chip/public_api.d.ts +1 -0
  321. package/chips/primeng-chips.metadata.json +1 -1
  322. package/colorpicker/colorpicker.d.ts +3 -0
  323. package/colorpicker/primeng-colorpicker.metadata.json +1 -1
  324. package/confirmdialog/confirmdialog.d.ts +3 -0
  325. package/confirmdialog/primeng-confirmdialog.metadata.json +1 -1
  326. package/confirmpopup/confirmpopup.d.ts +1 -0
  327. package/confirmpopup/primeng-confirmpopup.metadata.json +1 -1
  328. package/dataview/dataview.d.ts +3 -1
  329. package/dataview/primeng-dataview.metadata.json +1 -1
  330. package/dialog/dialog.d.ts +1 -0
  331. package/dialog/primeng-dialog.metadata.json +1 -1
  332. package/divider/divider.d.ts +22 -0
  333. package/divider/package.json +11 -0
  334. package/divider/primeng-divider.d.ts +4 -0
  335. package/divider/primeng-divider.metadata.json +1 -0
  336. package/divider/public_api.d.ts +1 -0
  337. package/dropdown/dropdown.d.ts +3 -1
  338. package/dropdown/primeng-dropdown.metadata.json +1 -1
  339. package/editor/editor.d.ts +1 -0
  340. package/editor/primeng-editor.metadata.json +1 -1
  341. package/esm2015/accordion/accordion.js +1 -1
  342. package/esm2015/accordion/primeng-accordion.js +1 -1
  343. package/esm2015/accordion/public_api.js +1 -1
  344. package/esm2015/api/blockableui.js +1 -1
  345. package/esm2015/api/confirmation.js +1 -1
  346. package/esm2015/api/confirmationservice.js +1 -1
  347. package/esm2015/api/contextmenuservice.js +1 -1
  348. package/esm2015/api/filtermatchmode.js +1 -1
  349. package/esm2015/api/filtermetadata.js +1 -1
  350. package/esm2015/api/filteroperator.js +1 -1
  351. package/esm2015/api/filterservice.js +183 -0
  352. package/esm2015/api/lazyloadevent.js +1 -1
  353. package/esm2015/api/megamenuitem.js +1 -1
  354. package/esm2015/api/menuitem.js +1 -1
  355. package/esm2015/api/message.js +1 -1
  356. package/esm2015/api/messageservice.js +1 -1
  357. package/esm2015/api/primeicons.js +20 -1
  358. package/esm2015/api/primeng-api.js +1 -1
  359. package/esm2015/api/primengconfig.js +3 -2
  360. package/esm2015/api/public_api.js +2 -1
  361. package/esm2015/api/selectitem.js +1 -1
  362. package/esm2015/api/selectitemgroup.js +1 -1
  363. package/esm2015/api/shared.js +1 -1
  364. package/esm2015/api/sortevent.js +1 -1
  365. package/esm2015/api/sortmeta.js +1 -1
  366. package/esm2015/api/tablestate.js +1 -1
  367. package/esm2015/api/translation.js +1 -1
  368. package/esm2015/api/translationkeys.js +2 -1
  369. package/esm2015/api/treedragdropservice.js +1 -1
  370. package/esm2015/api/treenode.js +1 -1
  371. package/esm2015/api/treenodedragevent.js +1 -1
  372. package/esm2015/autocomplete/autocomplete.js +4 -9
  373. package/esm2015/autocomplete/primeng-autocomplete.js +1 -1
  374. package/esm2015/autocomplete/public_api.js +1 -1
  375. package/esm2015/avatar/avatar.js +52 -0
  376. package/esm2015/avatar/primeng-avatar.js +5 -0
  377. package/esm2015/avatar/public_api.js +2 -0
  378. package/esm2015/avatargroup/avatargroup.js +31 -0
  379. package/esm2015/avatargroup/primeng-avatargroup.js +5 -0
  380. package/esm2015/avatargroup/public_api.js +2 -0
  381. package/esm2015/badge/badge.js +119 -0
  382. package/esm2015/badge/primeng-badge.js +5 -0
  383. package/esm2015/badge/public_api.js +2 -0
  384. package/esm2015/blockui/blockui.js +1 -1
  385. package/esm2015/blockui/primeng-blockui.js +1 -1
  386. package/esm2015/blockui/public_api.js +1 -1
  387. package/esm2015/breadcrumb/breadcrumb.js +1 -1
  388. package/esm2015/breadcrumb/primeng-breadcrumb.js +1 -1
  389. package/esm2015/breadcrumb/public_api.js +1 -1
  390. package/esm2015/button/button.js +8 -2
  391. package/esm2015/button/primeng-button.js +1 -1
  392. package/esm2015/button/public_api.js +1 -1
  393. package/esm2015/calendar/calendar.js +4 -4
  394. package/esm2015/calendar/primeng-calendar.js +1 -1
  395. package/esm2015/calendar/public_api.js +1 -1
  396. package/esm2015/captcha/captcha.js +1 -1
  397. package/esm2015/captcha/primeng-captcha.js +1 -1
  398. package/esm2015/captcha/public_api.js +1 -1
  399. package/esm2015/card/card.js +1 -1
  400. package/esm2015/card/primeng-card.js +1 -1
  401. package/esm2015/card/public_api.js +1 -1
  402. package/esm2015/carousel/carousel.js +27 -6
  403. package/esm2015/carousel/primeng-carousel.js +1 -1
  404. package/esm2015/carousel/public_api.js +1 -1
  405. package/esm2015/cascadeselect/cascadeselect.js +579 -0
  406. package/esm2015/cascadeselect/primeng-cascadeselect.js +5 -0
  407. package/esm2015/cascadeselect/public_api.js +2 -0
  408. package/esm2015/chart/chart.js +1 -1
  409. package/esm2015/chart/primeng-chart.js +1 -1
  410. package/esm2015/chart/public_api.js +1 -1
  411. package/esm2015/checkbox/checkbox.js +1 -1
  412. package/esm2015/checkbox/primeng-checkbox.js +1 -1
  413. package/esm2015/checkbox/public_api.js +1 -1
  414. package/esm2015/chip/chip.js +56 -0
  415. package/esm2015/chip/primeng-chip.js +5 -0
  416. package/esm2015/chip/public_api.js +2 -0
  417. package/esm2015/chips/chips.js +2 -2
  418. package/esm2015/chips/primeng-chips.js +1 -1
  419. package/esm2015/chips/public_api.js +1 -1
  420. package/esm2015/codehighlighter/codehighlighter.js +1 -1
  421. package/esm2015/codehighlighter/primeng-codehighlighter.js +1 -1
  422. package/esm2015/codehighlighter/public_api.js +1 -1
  423. package/esm2015/colorpicker/colorpicker.js +20 -2
  424. package/esm2015/colorpicker/primeng-colorpicker.js +1 -1
  425. package/esm2015/colorpicker/public_api.js +1 -1
  426. package/esm2015/confirmdialog/confirmdialog.js +30 -11
  427. package/esm2015/confirmdialog/primeng-confirmdialog.js +1 -1
  428. package/esm2015/confirmdialog/public_api.js +1 -1
  429. package/esm2015/confirmpopup/confirmpopup.js +19 -10
  430. package/esm2015/confirmpopup/primeng-confirmpopup.js +1 -1
  431. package/esm2015/confirmpopup/public_api.js +1 -1
  432. package/esm2015/contextmenu/contextmenu.js +1 -1
  433. package/esm2015/contextmenu/primeng-contextmenu.js +1 -1
  434. package/esm2015/contextmenu/public_api.js +1 -1
  435. package/esm2015/dataview/dataview.js +7 -6
  436. package/esm2015/dataview/primeng-dataview.js +1 -1
  437. package/esm2015/dataview/public_api.js +1 -1
  438. package/esm2015/defer/defer.js +1 -1
  439. package/esm2015/defer/primeng-defer.js +1 -1
  440. package/esm2015/defer/public_api.js +1 -1
  441. package/esm2015/dialog/dialog.js +7 -2
  442. package/esm2015/dialog/primeng-dialog.js +1 -1
  443. package/esm2015/dialog/public_api.js +1 -1
  444. package/esm2015/divider/divider.js +55 -0
  445. package/esm2015/divider/primeng-divider.js +5 -0
  446. package/esm2015/divider/public_api.js +2 -0
  447. package/esm2015/dom/connectedoverlayscrollhandler.js +1 -1
  448. package/esm2015/dom/domhandler.js +1 -1
  449. package/esm2015/dom/primeng-dom.js +1 -1
  450. package/esm2015/dom/public_api.js +1 -1
  451. package/esm2015/dragdrop/dragdrop.js +1 -1
  452. package/esm2015/dragdrop/primeng-dragdrop.js +1 -1
  453. package/esm2015/dragdrop/public_api.js +1 -1
  454. package/esm2015/dropdown/dropdown.js +9 -8
  455. package/esm2015/dropdown/primeng-dropdown.js +1 -1
  456. package/esm2015/dropdown/public_api.js +1 -1
  457. package/esm2015/dynamicdialog/dialogservice.js +1 -1
  458. package/esm2015/dynamicdialog/dynamicdialog-config.js +1 -1
  459. package/esm2015/dynamicdialog/dynamicdialog-injector.js +1 -1
  460. package/esm2015/dynamicdialog/dynamicdialog-ref.js +1 -1
  461. package/esm2015/dynamicdialog/dynamicdialog.js +1 -1
  462. package/esm2015/dynamicdialog/dynamicdialogcontent.js +1 -1
  463. package/esm2015/dynamicdialog/primeng-dynamicdialog.js +1 -1
  464. package/esm2015/dynamicdialog/public_api.js +1 -1
  465. package/esm2015/editor/editor.js +8 -4
  466. package/esm2015/editor/primeng-editor.js +1 -1
  467. package/esm2015/editor/public_api.js +1 -1
  468. package/esm2015/fieldset/fieldset.js +1 -1
  469. package/esm2015/fieldset/primeng-fieldset.js +1 -1
  470. package/esm2015/fieldset/public_api.js +1 -1
  471. package/esm2015/fileupload/fileupload.js +3 -3
  472. package/esm2015/fileupload/primeng-fileupload.js +1 -1
  473. package/esm2015/fileupload/public_api.js +1 -1
  474. package/esm2015/focustrap/focustrap.js +1 -1
  475. package/esm2015/focustrap/primeng-focustrap.js +1 -1
  476. package/esm2015/focustrap/public_api.js +1 -1
  477. package/esm2015/fullcalendar/fullcalendar.js +1 -1
  478. package/esm2015/fullcalendar/primeng-fullcalendar.js +1 -1
  479. package/esm2015/fullcalendar/public_api.js +1 -1
  480. package/esm2015/galleria/galleria.js +1 -1
  481. package/esm2015/galleria/primeng-galleria.js +1 -1
  482. package/esm2015/galleria/public_api.js +1 -1
  483. package/esm2015/gmap/gmap.js +1 -1
  484. package/esm2015/gmap/primeng-gmap.js +1 -1
  485. package/esm2015/gmap/public_api.js +1 -1
  486. package/esm2015/inplace/inplace.js +1 -1
  487. package/esm2015/inplace/primeng-inplace.js +1 -1
  488. package/esm2015/inplace/public_api.js +1 -1
  489. package/esm2015/inputmask/inputmask.js +1 -1
  490. package/esm2015/inputmask/primeng-inputmask.js +1 -1
  491. package/esm2015/inputmask/public_api.js +1 -1
  492. package/esm2015/inputnumber/inputnumber.js +1 -1
  493. package/esm2015/inputnumber/primeng-inputnumber.js +1 -1
  494. package/esm2015/inputnumber/public_api.js +1 -1
  495. package/esm2015/inputswitch/inputswitch.js +1 -1
  496. package/esm2015/inputswitch/primeng-inputswitch.js +1 -1
  497. package/esm2015/inputswitch/public_api.js +1 -1
  498. package/esm2015/inputtext/inputtext.js +1 -1
  499. package/esm2015/inputtext/primeng-inputtext.js +1 -1
  500. package/esm2015/inputtext/public_api.js +1 -1
  501. package/esm2015/inputtextarea/inputtextarea.js +9 -5
  502. package/esm2015/inputtextarea/primeng-inputtextarea.js +1 -1
  503. package/esm2015/inputtextarea/public_api.js +1 -1
  504. package/esm2015/keyfilter/keyfilter.js +1 -1
  505. package/esm2015/keyfilter/primeng-keyfilter.js +1 -1
  506. package/esm2015/keyfilter/public_api.js +1 -1
  507. package/esm2015/knob/knob.js +236 -0
  508. package/esm2015/knob/primeng-knob.js +5 -0
  509. package/esm2015/knob/public_api.js +2 -0
  510. package/esm2015/lightbox/lightbox.js +1 -1
  511. package/esm2015/lightbox/primeng-lightbox.js +1 -1
  512. package/esm2015/lightbox/public_api.js +1 -1
  513. package/esm2015/listbox/listbox.js +8 -7
  514. package/esm2015/listbox/primeng-listbox.js +1 -1
  515. package/esm2015/listbox/public_api.js +1 -1
  516. package/esm2015/megamenu/megamenu.js +1 -1
  517. package/esm2015/megamenu/primeng-megamenu.js +1 -1
  518. package/esm2015/megamenu/public_api.js +1 -1
  519. package/esm2015/menu/menu.js +1 -1
  520. package/esm2015/menu/primeng-menu.js +1 -1
  521. package/esm2015/menu/public_api.js +1 -1
  522. package/esm2015/menubar/menubar.js +1 -1
  523. package/esm2015/menubar/primeng-menubar.js +1 -1
  524. package/esm2015/menubar/public_api.js +1 -1
  525. package/esm2015/message/message.js +1 -1
  526. package/esm2015/message/primeng-message.js +1 -1
  527. package/esm2015/message/public_api.js +1 -1
  528. package/esm2015/messages/messages.js +2 -1
  529. package/esm2015/messages/primeng-messages.js +1 -1
  530. package/esm2015/messages/public_api.js +1 -1
  531. package/esm2015/multiselect/multiselect.js +15 -11
  532. package/esm2015/multiselect/primeng-multiselect.js +1 -1
  533. package/esm2015/multiselect/public_api.js +1 -1
  534. package/esm2015/orderlist/orderlist.js +8 -7
  535. package/esm2015/orderlist/primeng-orderlist.js +1 -1
  536. package/esm2015/orderlist/public_api.js +1 -1
  537. package/esm2015/organizationchart/organizationchart.js +1 -1
  538. package/esm2015/organizationchart/primeng-organizationchart.js +1 -1
  539. package/esm2015/organizationchart/public_api.js +1 -1
  540. package/esm2015/overlaypanel/overlaypanel.js +10 -7
  541. package/esm2015/overlaypanel/primeng-overlaypanel.js +1 -1
  542. package/esm2015/overlaypanel/public_api.js +1 -1
  543. package/esm2015/paginator/paginator.js +1 -1
  544. package/esm2015/paginator/primeng-paginator.js +1 -1
  545. package/esm2015/paginator/public_api.js +1 -1
  546. package/esm2015/panel/panel.js +1 -1
  547. package/esm2015/panel/primeng-panel.js +1 -1
  548. package/esm2015/panel/public_api.js +1 -1
  549. package/esm2015/panelmenu/panelmenu.js +1 -1
  550. package/esm2015/panelmenu/primeng-panelmenu.js +1 -1
  551. package/esm2015/panelmenu/public_api.js +1 -1
  552. package/esm2015/password/password.js +1 -1
  553. package/esm2015/password/primeng-password.js +1 -1
  554. package/esm2015/password/public_api.js +1 -1
  555. package/esm2015/picklist/picklist.js +9 -14
  556. package/esm2015/picklist/primeng-picklist.js +1 -1
  557. package/esm2015/picklist/public_api.js +1 -1
  558. package/esm2015/primeng.js +1 -1
  559. package/esm2015/progressbar/primeng-progressbar.js +1 -1
  560. package/esm2015/progressbar/progressbar.js +1 -1
  561. package/esm2015/progressbar/public_api.js +1 -1
  562. package/esm2015/progressspinner/primeng-progressspinner.js +1 -1
  563. package/esm2015/progressspinner/progressspinner.js +1 -1
  564. package/esm2015/progressspinner/public_api.js +1 -1
  565. package/esm2015/public_api.js +1 -1
  566. package/esm2015/radiobutton/primeng-radiobutton.js +1 -1
  567. package/esm2015/radiobutton/public_api.js +1 -1
  568. package/esm2015/radiobutton/radiobutton.js +1 -1
  569. package/esm2015/rating/primeng-rating.js +1 -1
  570. package/esm2015/rating/public_api.js +1 -1
  571. package/esm2015/rating/rating.js +1 -1
  572. package/esm2015/ripple/primeng-ripple.js +1 -1
  573. package/esm2015/ripple/public_api.js +1 -1
  574. package/esm2015/ripple/ripple.js +1 -1
  575. package/esm2015/scrollpanel/primeng-scrollpanel.js +1 -1
  576. package/esm2015/scrollpanel/public_api.js +1 -1
  577. package/esm2015/scrollpanel/scrollpanel.js +1 -1
  578. package/esm2015/scrolltop/primeng-scrolltop.js +5 -0
  579. package/esm2015/scrolltop/public_api.js +2 -0
  580. package/esm2015/scrolltop/scrolltop.js +126 -0
  581. package/esm2015/selectbutton/primeng-selectbutton.js +1 -1
  582. package/esm2015/selectbutton/public_api.js +1 -1
  583. package/esm2015/selectbutton/selectbutton.js +3 -3
  584. package/esm2015/sidebar/primeng-sidebar.js +1 -1
  585. package/esm2015/sidebar/public_api.js +1 -1
  586. package/esm2015/sidebar/sidebar.js +1 -1
  587. package/esm2015/skeleton/primeng-skeleton.js +5 -0
  588. package/esm2015/skeleton/public_api.js +2 -0
  589. package/esm2015/skeleton/skeleton.js +57 -0
  590. package/esm2015/slidemenu/primeng-slidemenu.js +1 -1
  591. package/esm2015/slidemenu/public_api.js +1 -1
  592. package/esm2015/slidemenu/slidemenu.js +1 -1
  593. package/esm2015/slider/primeng-slider.js +1 -1
  594. package/esm2015/slider/public_api.js +1 -1
  595. package/esm2015/slider/slider.js +13 -3
  596. package/esm2015/spinner/primeng-spinner.js +1 -1
  597. package/esm2015/spinner/public_api.js +1 -1
  598. package/esm2015/spinner/spinner.js +1 -1
  599. package/esm2015/splitbutton/primeng-splitbutton.js +1 -1
  600. package/esm2015/splitbutton/public_api.js +1 -1
  601. package/esm2015/splitbutton/splitbutton.js +1 -1
  602. package/esm2015/splitter/primeng-splitter.js +5 -0
  603. package/esm2015/splitter/public_api.js +2 -0
  604. package/esm2015/splitter/splitter.js +262 -0
  605. package/esm2015/steps/primeng-steps.js +1 -1
  606. package/esm2015/steps/public_api.js +1 -1
  607. package/esm2015/steps/steps.js +1 -1
  608. package/esm2015/table/primeng-table.js +1 -1
  609. package/esm2015/table/public_api.js +1 -1
  610. package/esm2015/table/table.js +23 -21
  611. package/esm2015/tabmenu/primeng-tabmenu.js +1 -1
  612. package/esm2015/tabmenu/public_api.js +1 -1
  613. package/esm2015/tabmenu/tabmenu.js +1 -1
  614. package/esm2015/tabview/primeng-tabview.js +1 -1
  615. package/esm2015/tabview/public_api.js +1 -1
  616. package/esm2015/tabview/tabview.js +12 -4
  617. package/esm2015/tag/primeng-tag.js +5 -0
  618. package/esm2015/tag/public_api.js +2 -0
  619. package/esm2015/tag/tag.js +47 -0
  620. package/esm2015/terminal/primeng-terminal.js +1 -1
  621. package/esm2015/terminal/public_api.js +1 -1
  622. package/esm2015/terminal/terminal.js +1 -1
  623. package/esm2015/terminal/terminalservice.js +1 -1
  624. package/esm2015/tieredmenu/primeng-tieredmenu.js +1 -1
  625. package/esm2015/tieredmenu/public_api.js +1 -1
  626. package/esm2015/tieredmenu/tieredmenu.js +1 -1
  627. package/esm2015/timeline/primeng-timeline.js +1 -1
  628. package/esm2015/timeline/public_api.js +1 -1
  629. package/esm2015/timeline/timeline.js +1 -1
  630. package/esm2015/toast/primeng-toast.js +1 -1
  631. package/esm2015/toast/public_api.js +1 -1
  632. package/esm2015/toast/toast.js +2 -2
  633. package/esm2015/togglebutton/primeng-togglebutton.js +1 -1
  634. package/esm2015/togglebutton/public_api.js +1 -1
  635. package/esm2015/togglebutton/togglebutton.js +1 -1
  636. package/esm2015/toolbar/primeng-toolbar.js +1 -1
  637. package/esm2015/toolbar/public_api.js +1 -1
  638. package/esm2015/toolbar/toolbar.js +1 -1
  639. package/esm2015/tooltip/primeng-tooltip.js +1 -1
  640. package/esm2015/tooltip/public_api.js +1 -1
  641. package/esm2015/tooltip/tooltip.js +1 -1
  642. package/esm2015/tree/primeng-tree.js +1 -1
  643. package/esm2015/tree/public_api.js +1 -1
  644. package/esm2015/tree/tree.js +5 -5
  645. package/esm2015/treetable/primeng-treetable.js +1 -1
  646. package/esm2015/treetable/public_api.js +1 -1
  647. package/esm2015/treetable/treetable.js +12 -11
  648. package/esm2015/tristatecheckbox/primeng-tristatecheckbox.js +1 -1
  649. package/esm2015/tristatecheckbox/public_api.js +1 -1
  650. package/esm2015/tristatecheckbox/tristatecheckbox.js +1 -1
  651. package/esm2015/utils/objectutils.js +1 -11
  652. package/esm2015/utils/primeng-utils.js +1 -1
  653. package/esm2015/utils/public_api.js +1 -2
  654. package/esm2015/utils/uniquecomponentid.js +1 -1
  655. package/esm2015/virtualscroller/primeng-virtualscroller.js +1 -1
  656. package/esm2015/virtualscroller/public_api.js +1 -1
  657. package/esm2015/virtualscroller/virtualscroller.js +1 -1
  658. package/fesm2015/primeng-accordion.js.map +1 -1
  659. package/fesm2015/primeng-api.js +204 -2
  660. package/fesm2015/primeng-api.js.map +1 -1
  661. package/fesm2015/primeng-autocomplete.js +3 -8
  662. package/fesm2015/primeng-autocomplete.js.map +1 -1
  663. package/fesm2015/primeng-avatar.js +59 -0
  664. package/fesm2015/primeng-avatar.js.map +1 -0
  665. package/fesm2015/primeng-avatargroup.js +38 -0
  666. package/fesm2015/primeng-avatargroup.js.map +1 -0
  667. package/fesm2015/primeng-badge.js +126 -0
  668. package/fesm2015/primeng-badge.js.map +1 -0
  669. package/fesm2015/primeng-blockui.js.map +1 -1
  670. package/fesm2015/primeng-breadcrumb.js.map +1 -1
  671. package/fesm2015/primeng-button.js +7 -1
  672. package/fesm2015/primeng-button.js.map +1 -1
  673. package/fesm2015/primeng-calendar.js +3 -3
  674. package/fesm2015/primeng-calendar.js.map +1 -1
  675. package/fesm2015/primeng-captcha.js.map +1 -1
  676. package/fesm2015/primeng-card.js.map +1 -1
  677. package/fesm2015/primeng-carousel.js +26 -5
  678. package/fesm2015/primeng-carousel.js.map +1 -1
  679. package/fesm2015/primeng-cascadeselect.js +585 -0
  680. package/fesm2015/primeng-cascadeselect.js.map +1 -0
  681. package/fesm2015/primeng-chart.js.map +1 -1
  682. package/fesm2015/primeng-checkbox.js.map +1 -1
  683. package/fesm2015/primeng-chip.js +63 -0
  684. package/fesm2015/primeng-chip.js.map +1 -0
  685. package/fesm2015/primeng-chips.js +1 -1
  686. package/fesm2015/primeng-chips.js.map +1 -1
  687. package/fesm2015/primeng-codehighlighter.js.map +1 -1
  688. package/fesm2015/primeng-colorpicker.js +19 -1
  689. package/fesm2015/primeng-colorpicker.js.map +1 -1
  690. package/fesm2015/primeng-confirmdialog.js +29 -10
  691. package/fesm2015/primeng-confirmdialog.js.map +1 -1
  692. package/fesm2015/primeng-confirmpopup.js +18 -9
  693. package/fesm2015/primeng-confirmpopup.js.map +1 -1
  694. package/fesm2015/primeng-contextmenu.js.map +1 -1
  695. package/fesm2015/primeng-dataview.js +7 -5
  696. package/fesm2015/primeng-dataview.js.map +1 -1
  697. package/fesm2015/primeng-defer.js.map +1 -1
  698. package/fesm2015/primeng-dialog.js +6 -1
  699. package/fesm2015/primeng-dialog.js.map +1 -1
  700. package/fesm2015/primeng-divider.js +62 -0
  701. package/fesm2015/primeng-divider.js.map +1 -0
  702. package/fesm2015/primeng-dom.js.map +1 -1
  703. package/fesm2015/primeng-dragdrop.js.map +1 -1
  704. package/fesm2015/primeng-dropdown.js +9 -7
  705. package/fesm2015/primeng-dropdown.js.map +1 -1
  706. package/fesm2015/primeng-dynamicdialog.js.map +1 -1
  707. package/fesm2015/primeng-editor.js +7 -3
  708. package/fesm2015/primeng-editor.js.map +1 -1
  709. package/fesm2015/primeng-fieldset.js.map +1 -1
  710. package/fesm2015/primeng-fileupload.js +2 -2
  711. package/fesm2015/primeng-fileupload.js.map +1 -1
  712. package/fesm2015/primeng-focustrap.js.map +1 -1
  713. package/fesm2015/primeng-fullcalendar.js.map +1 -1
  714. package/fesm2015/primeng-galleria.js.map +1 -1
  715. package/fesm2015/primeng-gmap.js.map +1 -1
  716. package/fesm2015/primeng-inplace.js.map +1 -1
  717. package/fesm2015/primeng-inputmask.js.map +1 -1
  718. package/fesm2015/primeng-inputnumber.js.map +1 -1
  719. package/fesm2015/primeng-inputswitch.js.map +1 -1
  720. package/fesm2015/primeng-inputtext.js.map +1 -1
  721. package/fesm2015/primeng-inputtextarea.js +8 -4
  722. package/fesm2015/primeng-inputtextarea.js.map +1 -1
  723. package/fesm2015/primeng-keyfilter.js.map +1 -1
  724. package/fesm2015/primeng-knob.js +243 -0
  725. package/fesm2015/primeng-knob.js.map +1 -0
  726. package/fesm2015/primeng-lightbox.js.map +1 -1
  727. package/fesm2015/primeng-listbox.js +8 -6
  728. package/fesm2015/primeng-listbox.js.map +1 -1
  729. package/fesm2015/primeng-megamenu.js.map +1 -1
  730. package/fesm2015/primeng-menu.js.map +1 -1
  731. package/fesm2015/primeng-menubar.js.map +1 -1
  732. package/fesm2015/primeng-message.js.map +1 -1
  733. package/fesm2015/primeng-messages.js +1 -0
  734. package/fesm2015/primeng-messages.js.map +1 -1
  735. package/fesm2015/primeng-multiselect.js +15 -10
  736. package/fesm2015/primeng-multiselect.js.map +1 -1
  737. package/fesm2015/primeng-orderlist.js +8 -6
  738. package/fesm2015/primeng-orderlist.js.map +1 -1
  739. package/fesm2015/primeng-organizationchart.js.map +1 -1
  740. package/fesm2015/primeng-overlaypanel.js +9 -6
  741. package/fesm2015/primeng-overlaypanel.js.map +1 -1
  742. package/fesm2015/primeng-paginator.js.map +1 -1
  743. package/fesm2015/primeng-panel.js.map +1 -1
  744. package/fesm2015/primeng-panelmenu.js.map +1 -1
  745. package/fesm2015/primeng-password.js.map +1 -1
  746. package/fesm2015/primeng-picklist.js +9 -13
  747. package/fesm2015/primeng-picklist.js.map +1 -1
  748. package/fesm2015/primeng-progressbar.js.map +1 -1
  749. package/fesm2015/primeng-progressspinner.js.map +1 -1
  750. package/fesm2015/primeng-radiobutton.js.map +1 -1
  751. package/fesm2015/primeng-rating.js.map +1 -1
  752. package/fesm2015/primeng-ripple.js.map +1 -1
  753. package/fesm2015/primeng-scrollpanel.js.map +1 -1
  754. package/fesm2015/primeng-scrolltop.js +133 -0
  755. package/fesm2015/primeng-scrolltop.js.map +1 -0
  756. package/fesm2015/primeng-selectbutton.js +2 -2
  757. package/fesm2015/primeng-selectbutton.js.map +1 -1
  758. package/fesm2015/primeng-sidebar.js.map +1 -1
  759. package/fesm2015/primeng-skeleton.js +64 -0
  760. package/fesm2015/primeng-skeleton.js.map +1 -0
  761. package/fesm2015/primeng-slidemenu.js.map +1 -1
  762. package/fesm2015/primeng-slider.js +12 -2
  763. package/fesm2015/primeng-slider.js.map +1 -1
  764. package/fesm2015/primeng-spinner.js.map +1 -1
  765. package/fesm2015/primeng-splitbutton.js.map +1 -1
  766. package/fesm2015/primeng-splitter.js +269 -0
  767. package/fesm2015/primeng-splitter.js.map +1 -0
  768. package/fesm2015/primeng-steps.js.map +1 -1
  769. package/fesm2015/primeng-table.js +23 -20
  770. package/fesm2015/primeng-table.js.map +1 -1
  771. package/fesm2015/primeng-tabmenu.js.map +1 -1
  772. package/fesm2015/primeng-tabview.js +11 -3
  773. package/fesm2015/primeng-tabview.js.map +1 -1
  774. package/fesm2015/primeng-tag.js +54 -0
  775. package/fesm2015/primeng-tag.js.map +1 -0
  776. package/fesm2015/primeng-terminal.js.map +1 -1
  777. package/fesm2015/primeng-tieredmenu.js.map +1 -1
  778. package/fesm2015/primeng-timeline.js.map +1 -1
  779. package/fesm2015/primeng-toast.js +1 -1
  780. package/fesm2015/primeng-toast.js.map +1 -1
  781. package/fesm2015/primeng-togglebutton.js.map +1 -1
  782. package/fesm2015/primeng-toolbar.js.map +1 -1
  783. package/fesm2015/primeng-tooltip.js.map +1 -1
  784. package/fesm2015/primeng-tree.js +4 -4
  785. package/fesm2015/primeng-tree.js.map +1 -1
  786. package/fesm2015/primeng-treetable.js +12 -10
  787. package/fesm2015/primeng-treetable.js.map +1 -1
  788. package/fesm2015/primeng-tristatecheckbox.js.map +1 -1
  789. package/fesm2015/primeng-utils.js +1 -181
  790. package/fesm2015/primeng-utils.js.map +1 -1
  791. package/fesm2015/primeng-virtualscroller.js.map +1 -1
  792. package/fesm2015/primeng.js.map +1 -1
  793. package/fileupload/primeng-fileupload.metadata.json +1 -1
  794. package/inputtextarea/inputtextarea.d.ts +3 -2
  795. package/inputtextarea/primeng-inputtextarea.metadata.json +1 -1
  796. package/knob/knob.d.ts +72 -0
  797. package/knob/package.json +11 -0
  798. package/knob/primeng-knob.d.ts +4 -0
  799. package/knob/primeng-knob.metadata.json +1 -0
  800. package/knob/public_api.d.ts +1 -0
  801. package/listbox/listbox.d.ts +3 -1
  802. package/listbox/primeng-listbox.metadata.json +1 -1
  803. package/messages/primeng-messages.metadata.json +1 -1
  804. package/multiselect/multiselect.d.ts +5 -3
  805. package/multiselect/primeng-multiselect.metadata.json +1 -1
  806. package/orderlist/orderlist.d.ts +3 -1
  807. package/orderlist/primeng-orderlist.metadata.json +1 -1
  808. package/overlaypanel/primeng-overlaypanel.metadata.json +1 -1
  809. package/package.json +4 -4
  810. package/picklist/picklist.d.ts +3 -1
  811. package/picklist/primeng-picklist.metadata.json +1 -1
  812. package/resources/components/autocomplete/autocomplete.css +1 -0
  813. package/resources/components/avatar/avatar.css +25 -0
  814. package/resources/components/avatargroup/avatargroup.css +8 -0
  815. package/resources/components/badge/badge.css +17 -13
  816. package/resources/components/cascadeselect/cascadeselect.css +84 -0
  817. package/resources/components/chip/chip.css +21 -0
  818. package/resources/components/chips/chips.css +1 -0
  819. package/resources/components/confirmpopup/confirmpopup.css +3 -3
  820. package/resources/components/divider/divider.css +84 -0
  821. package/resources/components/editor/editor.css +4 -0
  822. package/resources/components/knob/knob.css +18 -0
  823. package/resources/components/orderlist/orderlist.css +4 -0
  824. package/resources/components/overlaypanel/overlaypanel.css +2 -2
  825. package/resources/components/picklist/picklist.css +4 -0
  826. package/resources/components/scrolltop/scrolltop.css +16 -0
  827. package/resources/components/skeleton/skeleton.css +33 -0
  828. package/resources/components/splitter/splitter.css +62 -0
  829. package/resources/components/table/table.css +8 -0
  830. package/resources/components/tag/tag.css +15 -0
  831. package/resources/components/treetable/treetable.css +4 -0
  832. package/resources/primeng.css +17 -13
  833. package/resources/primeng.min.css +1 -1
  834. package/resources/themes/arya-blue/theme.css +309 -47
  835. package/resources/themes/arya-green/theme.css +309 -47
  836. package/resources/themes/arya-orange/theme.css +309 -47
  837. package/resources/themes/arya-purple/theme.css +309 -47
  838. package/resources/themes/bootstrap4-dark-blue/theme.css +309 -47
  839. package/resources/themes/bootstrap4-dark-purple/theme.css +309 -47
  840. package/resources/themes/bootstrap4-light-blue/theme.css +309 -47
  841. package/resources/themes/bootstrap4-light-purple/theme.css +309 -47
  842. package/resources/themes/fluent-light/theme.css +309 -47
  843. package/resources/themes/luna-amber/theme.css +309 -47
  844. package/resources/themes/luna-blue/theme.css +309 -47
  845. package/resources/themes/luna-green/theme.css +309 -47
  846. package/resources/themes/luna-pink/theme.css +309 -47
  847. package/resources/themes/md-dark-deeppurple/theme.css +522 -86
  848. package/resources/themes/md-dark-indigo/theme.css +522 -86
  849. package/resources/themes/md-light-deeppurple/theme.css +528 -92
  850. package/resources/themes/md-light-indigo/theme.css +528 -92
  851. package/resources/themes/mdc-dark-deeppurple/theme.css +535 -99
  852. package/resources/themes/mdc-dark-indigo/theme.css +535 -99
  853. package/resources/themes/mdc-light-deeppurple/theme.css +537 -101
  854. package/resources/themes/mdc-light-indigo/theme.css +537 -101
  855. package/resources/themes/nova/theme.css +309 -47
  856. package/resources/themes/nova-accent/theme.css +309 -47
  857. package/resources/themes/nova-alt/theme.css +309 -47
  858. package/resources/themes/rhea/theme.css +309 -47
  859. package/resources/themes/saga-blue/theme.css +309 -47
  860. package/resources/themes/saga-green/theme.css +309 -47
  861. package/resources/themes/saga-orange/theme.css +309 -47
  862. package/resources/themes/saga-purple/theme.css +309 -47
  863. package/resources/themes/vela-blue/theme.css +309 -47
  864. package/resources/themes/vela-green/theme.css +309 -47
  865. package/resources/themes/vela-orange/theme.css +309 -47
  866. package/resources/themes/vela-purple/theme.css +309 -47
  867. package/scrolltop/package.json +11 -0
  868. package/scrolltop/primeng-scrolltop.d.ts +4 -0
  869. package/scrolltop/primeng-scrolltop.metadata.json +1 -0
  870. package/scrolltop/public_api.d.ts +1 -0
  871. package/scrolltop/scrolltop.d.ts +31 -0
  872. package/selectbutton/primeng-selectbutton.metadata.json +1 -1
  873. package/skeleton/package.json +11 -0
  874. package/skeleton/primeng-skeleton.d.ts +4 -0
  875. package/skeleton/primeng-skeleton.metadata.json +1 -0
  876. package/skeleton/public_api.d.ts +1 -0
  877. package/skeleton/skeleton.d.ts +18 -0
  878. package/slider/primeng-slider.metadata.json +1 -1
  879. package/splitter/package.json +11 -0
  880. package/splitter/primeng-splitter.d.ts +4 -0
  881. package/splitter/primeng-splitter.metadata.json +1 -0
  882. package/splitter/public_api.d.ts +1 -0
  883. package/splitter/splitter.d.ts +68 -0
  884. package/table/primeng-table.metadata.json +1 -1
  885. package/table/table.d.ts +5 -3
  886. package/tabview/primeng-tabview.metadata.json +1 -1
  887. package/tabview/tabview.d.ts +3 -1
  888. package/tag/package.json +11 -0
  889. package/tag/primeng-tag.d.ts +4 -0
  890. package/tag/primeng-tag.metadata.json +1 -0
  891. package/tag/public_api.d.ts +1 -0
  892. package/tag/tag.d.ts +18 -0
  893. package/toast/primeng-toast.metadata.json +1 -1
  894. package/tree/primeng-tree.metadata.json +1 -1
  895. package/treetable/primeng-treetable.metadata.json +1 -1
  896. package/treetable/treetable.d.ts +3 -2
  897. package/utils/objectutils.d.ts +0 -2
  898. package/utils/primeng-utils.metadata.json +1 -1
  899. package/utils/public_api.d.ts +0 -1
  900. package/esm2015/utils/filterutils.js +0 -171
  901. package/resources/components/selectbutton/selectbutton.css +0 -11
  902. package/utils/filterutils.d.ts +0 -19
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-tooltip.js","sources":["../../../src/app/components/tooltip/tooltip.ts","../../../src/app/components/tooltip/primeng-tooltip.ts"],"sourcesContent":["import { NgModule, Directive, ElementRef, AfterViewInit, OnDestroy, Input, NgZone } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomHandler, ConnectedOverlayScrollHandler } from 'primeng/dom';\n\n@Directive({\n selector: '[pTooltip]'\n})\nexport class Tooltip implements AfterViewInit, OnDestroy {\n\n @Input() tooltipPosition: string = 'right';\n\n @Input() tooltipEvent: string = 'hover';\n\n @Input() appendTo: any = 'body';\n\n @Input() positionStyle: string;\n\n @Input() tooltipStyleClass: string;\n\n @Input() tooltipZIndex: string = 'auto';\n\n @Input() escape: boolean = true;\n\n @Input() showDelay: number;\n\n @Input() hideDelay: number;\n\n @Input() life: number;\n\n @Input(\"tooltipDisabled\") get disabled(): boolean {\n return this._disabled;\n }\n set disabled(val:boolean) {\n this._disabled = val;\n this.deactivate();\n }\n\n _disabled: boolean;\n\n container: any;\n\n styleClass: string;\n\n tooltipText: any;\n\n showTimeout: any;\n\n hideTimeout: any;\n\n active: boolean;\n\n _text: string;\n\n mouseEnterListener: Function;\n\n mouseLeaveListener: Function;\n\n clickListener: Function;\n\n focusListener: Function;\n\n blurListener: Function;\n\n scrollHandler: any;\n\n resizeListener: any;\n\n constructor(public el: ElementRef, public zone: NgZone) { }\n\n ngAfterViewInit() {\n this.zone.runOutsideAngular(() => {\n if (this.tooltipEvent === 'hover') {\n this.mouseEnterListener = this.onMouseEnter.bind(this);\n this.mouseLeaveListener = this.onMouseLeave.bind(this);\n this.clickListener = this.onClick.bind(this);\n this.el.nativeElement.addEventListener('mouseenter', this.mouseEnterListener);\n this.el.nativeElement.addEventListener('mouseleave', this.mouseLeaveListener);\n this.el.nativeElement.addEventListener('click', this.clickListener);\n }\n else if (this.tooltipEvent === 'focus') {\n this.focusListener = this.onFocus.bind(this);\n this.blurListener = this.onBlur.bind(this);\n this.el.nativeElement.addEventListener('focus', this.focusListener);\n this.el.nativeElement.addEventListener('blur', this.blurListener);\n }\n });\n }\n\n onMouseEnter(e: Event) {\n if (!this.container && !this.showTimeout) {\n this.activate();\n }\n }\n\n onMouseLeave(e: Event) {\n this.deactivate();\n }\n\n onFocus(e: Event) {\n this.activate();\n }\n\n onBlur(e: Event) {\n this.deactivate();\n }\n\n onClick(e: Event) {\n this.deactivate();\n }\n\n activate() {\n this.active = true;\n this.clearHideTimeout();\n\n if (this.showDelay)\n this.showTimeout = setTimeout(() => { this.show() }, this.showDelay);\n else\n this.show();\n\n if (this.life) {\n let duration = this.showDelay ? this.life + this.showDelay : this.life;\n this.hideTimeout = setTimeout(() => { this.hide() }, duration);\n }\n }\n\n deactivate() {\n this.active = false;\n this.clearShowTimeout();\n\n if (this.hideDelay) {\n this.clearHideTimeout(); //life timeout\n this.hideTimeout = setTimeout(() => { this.hide() }, this.hideDelay);\n }\n else {\n this.hide();\n }\n }\n\n get text(): string {\n return this._text;\n }\n\n @Input('pTooltip') set text(text: string) {\n this._text = text;\n if (this.active) {\n if (this._text) {\n if (this.container && this.container.offsetParent) {\n this.updateText();\n\t\t\t\t\tthis.align();\n\t\t\t\t}\n else {\n this.show();\n }\n }\n else {\n this.hide();\n }\n }\n }\n\n create() {\n if (this.container) {\n this.clearHideTimeout();\n this.remove();\n }\n\n this.container = document.createElement('div');\n\n let tooltipArrow = document.createElement('div');\n tooltipArrow.className = 'p-tooltip-arrow';\n this.container.appendChild(tooltipArrow);\n\n this.tooltipText = document.createElement('div');\n this.tooltipText.className = 'p-tooltip-text';\n\n this.updateText();\n\n if (this.positionStyle) {\n this.container.style.position = this.positionStyle;\n }\n\n this.container.appendChild(this.tooltipText);\n\n if (this.appendTo === 'body')\n document.body.appendChild(this.container);\n else if (this.appendTo === 'target')\n DomHandler.appendChild(this.container, this.el.nativeElement);\n else\n DomHandler.appendChild(this.container, this.appendTo);\n\n this.container.style.display = 'inline-block';\n }\n\n show() {\n if (!this.text || this.disabled) {\n return;\n }\n\n this.create();\n this.align();\n DomHandler.fadeIn(this.container, 250);\n\n if (this.tooltipZIndex === 'auto')\n this.container.style.zIndex = ++DomHandler.zindex;\n else\n this.container.style.zIndex = this.tooltipZIndex;\n\n this.bindDocumentResizeListener();\n this.bindScrollListener();\n }\n\n hide() {\n this.remove();\n }\n\n updateText() {\n if (this.escape) {\n this.tooltipText.innerHTML = '';\n this.tooltipText.appendChild(document.createTextNode(this._text));\n }\n else {\n this.tooltipText.innerHTML = this._text;\n }\n }\n\n align() {\n let position = this.tooltipPosition;\n\n switch (position) {\n case 'top':\n this.alignTop();\n if (this.isOutOfBounds()) {\n this.alignBottom();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n\n case 'bottom':\n this.alignBottom();\n if (this.isOutOfBounds()) {\n this.alignTop();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n\n case 'left':\n this.alignLeft();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignTop();\n\n if (this.isOutOfBounds()) {\n this.alignBottom();\n }\n }\n }\n break;\n\n case 'right':\n this.alignRight();\n if (this.isOutOfBounds()) {\n this.alignLeft();\n\n if (this.isOutOfBounds()) {\n this.alignTop();\n\n if (this.isOutOfBounds()) {\n this.alignBottom();\n }\n }\n }\n break;\n }\n }\n\n getHostOffset() {\n if (this.appendTo === 'body' || this.appendTo === 'target') {\n let offset = this.el.nativeElement.getBoundingClientRect();\n let targetLeft = offset.left + DomHandler.getWindowScrollLeft();\n let targetTop = offset.top + DomHandler.getWindowScrollTop();\n\n return { left: targetLeft, top: targetTop };\n }\n else {\n return { left: 0, top: 0 };\n }\n }\n\n alignRight() {\n this.preAlign('right');\n let hostOffset = this.getHostOffset();\n let left = hostOffset.left + DomHandler.getOuterWidth(this.el.nativeElement);\n let top = hostOffset.top + (DomHandler.getOuterHeight(this.el.nativeElement) - DomHandler.getOuterHeight(this.container)) / 2;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n\n alignLeft() {\n this.preAlign('left');\n let hostOffset = this.getHostOffset();\n let left = hostOffset.left - DomHandler.getOuterWidth(this.container);\n let top = hostOffset.top + (DomHandler.getOuterHeight(this.el.nativeElement) - DomHandler.getOuterHeight(this.container)) / 2;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n\n alignTop() {\n this.preAlign('top');\n let hostOffset = this.getHostOffset();\n let left = hostOffset.left + (DomHandler.getOuterWidth(this.el.nativeElement) - DomHandler.getOuterWidth(this.container)) / 2;\n let top = hostOffset.top - DomHandler.getOuterHeight(this.container);\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n\n alignBottom() {\n this.preAlign('bottom');\n let hostOffset = this.getHostOffset();\n let left = hostOffset.left + (DomHandler.getOuterWidth(this.el.nativeElement) - DomHandler.getOuterWidth(this.container)) / 2;\n let top = hostOffset.top + DomHandler.getOuterHeight(this.el.nativeElement);\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n\n preAlign(position: string) {\n this.container.style.left = -999 + 'px';\n this.container.style.top = -999 + 'px';\n\n let defaultClassName = 'p-tooltip p-component p-tooltip-' + position;\n this.container.className = this.tooltipStyleClass ? defaultClassName + ' ' + this.tooltipStyleClass : defaultClassName;\n }\n\n isOutOfBounds(): boolean {\n let offset = this.container.getBoundingClientRect();\n let targetTop = offset.top;\n let targetLeft = offset.left;\n let width = DomHandler.getOuterWidth(this.container);\n let height = DomHandler.getOuterHeight(this.container);\n let viewport = DomHandler.getViewport();\n\n return (targetLeft + width > viewport.width) || (targetLeft < 0) || (targetTop < 0) || (targetTop + height > viewport.height);\n }\n\n onWindowResize(e: Event) {\n this.hide();\n }\n\n bindDocumentResizeListener() {\n this.zone.runOutsideAngular(() => {\n this.resizeListener = this.onWindowResize.bind(this);\n window.addEventListener('resize', this.resizeListener);\n });\n }\n\n unbindDocumentResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.el.nativeElement, () => {\n if (this.container) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n\n unbindEvents() {\n if (this.tooltipEvent === 'hover') {\n this.el.nativeElement.removeEventListener('mouseenter', this.mouseEnterListener);\n this.el.nativeElement.removeEventListener('mouseleave', this.mouseLeaveListener);\n this.el.nativeElement.removeEventListener('click', this.clickListener);\n }\n else if (this.tooltipEvent === 'focus') {\n this.el.nativeElement.removeEventListener('focus', this.focusListener);\n this.el.nativeElement.removeEventListener('blur', this.blurListener);\n }\n\n this.unbindDocumentResizeListener();\n }\n\n remove() {\n if (this.container && this.container.parentElement) {\n if (this.appendTo === 'body')\n document.body.removeChild(this.container);\n else if (this.appendTo === 'target')\n this.el.nativeElement.removeChild(this.container);\n else\n DomHandler.removeChild(this.container, this.appendTo);\n }\n\n this.unbindDocumentResizeListener();\n this.unbindScrollListener();\n this.clearTimeouts();\n this.container = null;\n this.scrollHandler = null;\n }\n\n clearShowTimeout() {\n if (this.showTimeout) {\n clearTimeout(this.showTimeout);\n this.showTimeout = null;\n }\n }\n\n clearHideTimeout() {\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = null;\n }\n }\n\n clearTimeouts() {\n this.clearShowTimeout();\n this.clearHideTimeout();\n }\n\n ngOnDestroy() {\n this.unbindEvents();\n this.remove();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [Tooltip],\n declarations: [Tooltip]\n})\nexport class TooltipModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primeng-tooltip.js","sources":["../../src/app/components/tooltip/tooltip.ts","../../src/app/components/tooltip/primeng-tooltip.ts"],"sourcesContent":["import { NgModule, Directive, ElementRef, AfterViewInit, OnDestroy, Input, NgZone } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomHandler, ConnectedOverlayScrollHandler } from 'primeng/dom';\n\n@Directive({\n selector: '[pTooltip]'\n})\nexport class Tooltip implements AfterViewInit, OnDestroy {\n\n @Input() tooltipPosition: string = 'right';\n\n @Input() tooltipEvent: string = 'hover';\n\n @Input() appendTo: any = 'body';\n\n @Input() positionStyle: string;\n\n @Input() tooltipStyleClass: string;\n\n @Input() tooltipZIndex: string = 'auto';\n\n @Input() escape: boolean = true;\n\n @Input() showDelay: number;\n\n @Input() hideDelay: number;\n\n @Input() life: number;\n\n @Input(\"tooltipDisabled\") get disabled(): boolean {\n return this._disabled;\n }\n set disabled(val:boolean) {\n this._disabled = val;\n this.deactivate();\n }\n\n _disabled: boolean;\n\n container: any;\n\n styleClass: string;\n\n tooltipText: any;\n\n showTimeout: any;\n\n hideTimeout: any;\n\n active: boolean;\n\n _text: string;\n\n mouseEnterListener: Function;\n\n mouseLeaveListener: Function;\n\n clickListener: Function;\n\n focusListener: Function;\n\n blurListener: Function;\n\n scrollHandler: any;\n\n resizeListener: any;\n\n constructor(public el: ElementRef, public zone: NgZone) { }\n\n ngAfterViewInit() {\n this.zone.runOutsideAngular(() => {\n if (this.tooltipEvent === 'hover') {\n this.mouseEnterListener = this.onMouseEnter.bind(this);\n this.mouseLeaveListener = this.onMouseLeave.bind(this);\n this.clickListener = this.onClick.bind(this);\n this.el.nativeElement.addEventListener('mouseenter', this.mouseEnterListener);\n this.el.nativeElement.addEventListener('mouseleave', this.mouseLeaveListener);\n this.el.nativeElement.addEventListener('click', this.clickListener);\n }\n else if (this.tooltipEvent === 'focus') {\n this.focusListener = this.onFocus.bind(this);\n this.blurListener = this.onBlur.bind(this);\n this.el.nativeElement.addEventListener('focus', this.focusListener);\n this.el.nativeElement.addEventListener('blur', this.blurListener);\n }\n });\n }\n\n onMouseEnter(e: Event) {\n if (!this.container && !this.showTimeout) {\n this.activate();\n }\n }\n\n onMouseLeave(e: Event) {\n this.deactivate();\n }\n\n onFocus(e: Event) {\n this.activate();\n }\n\n onBlur(e: Event) {\n this.deactivate();\n }\n\n onClick(e: Event) {\n this.deactivate();\n }\n\n activate() {\n this.active = true;\n this.clearHideTimeout();\n\n if (this.showDelay)\n this.showTimeout = setTimeout(() => { this.show() }, this.showDelay);\n else\n this.show();\n\n if (this.life) {\n let duration = this.showDelay ? this.life + this.showDelay : this.life;\n this.hideTimeout = setTimeout(() => { this.hide() }, duration);\n }\n }\n\n deactivate() {\n this.active = false;\n this.clearShowTimeout();\n\n if (this.hideDelay) {\n this.clearHideTimeout(); //life timeout\n this.hideTimeout = setTimeout(() => { this.hide() }, this.hideDelay);\n }\n else {\n this.hide();\n }\n }\n\n get text(): string {\n return this._text;\n }\n\n @Input('pTooltip') set text(text: string) {\n this._text = text;\n if (this.active) {\n if (this._text) {\n if (this.container && this.container.offsetParent) {\n this.updateText();\n\t\t\t\t\tthis.align();\n\t\t\t\t}\n else {\n this.show();\n }\n }\n else {\n this.hide();\n }\n }\n }\n\n create() {\n if (this.container) {\n this.clearHideTimeout();\n this.remove();\n }\n\n this.container = document.createElement('div');\n\n let tooltipArrow = document.createElement('div');\n tooltipArrow.className = 'p-tooltip-arrow';\n this.container.appendChild(tooltipArrow);\n\n this.tooltipText = document.createElement('div');\n this.tooltipText.className = 'p-tooltip-text';\n\n this.updateText();\n\n if (this.positionStyle) {\n this.container.style.position = this.positionStyle;\n }\n\n this.container.appendChild(this.tooltipText);\n\n if (this.appendTo === 'body')\n document.body.appendChild(this.container);\n else if (this.appendTo === 'target')\n DomHandler.appendChild(this.container, this.el.nativeElement);\n else\n DomHandler.appendChild(this.container, this.appendTo);\n\n this.container.style.display = 'inline-block';\n }\n\n show() {\n if (!this.text || this.disabled) {\n return;\n }\n\n this.create();\n this.align();\n DomHandler.fadeIn(this.container, 250);\n\n if (this.tooltipZIndex === 'auto')\n this.container.style.zIndex = ++DomHandler.zindex;\n else\n this.container.style.zIndex = this.tooltipZIndex;\n\n this.bindDocumentResizeListener();\n this.bindScrollListener();\n }\n\n hide() {\n this.remove();\n }\n\n updateText() {\n if (this.escape) {\n this.tooltipText.innerHTML = '';\n this.tooltipText.appendChild(document.createTextNode(this._text));\n }\n else {\n this.tooltipText.innerHTML = this._text;\n }\n }\n\n align() {\n let position = this.tooltipPosition;\n\n switch (position) {\n case 'top':\n this.alignTop();\n if (this.isOutOfBounds()) {\n this.alignBottom();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n\n case 'bottom':\n this.alignBottom();\n if (this.isOutOfBounds()) {\n this.alignTop();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n\n case 'left':\n this.alignLeft();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignTop();\n\n if (this.isOutOfBounds()) {\n this.alignBottom();\n }\n }\n }\n break;\n\n case 'right':\n this.alignRight();\n if (this.isOutOfBounds()) {\n this.alignLeft();\n\n if (this.isOutOfBounds()) {\n this.alignTop();\n\n if (this.isOutOfBounds()) {\n this.alignBottom();\n }\n }\n }\n break;\n }\n }\n\n getHostOffset() {\n if (this.appendTo === 'body' || this.appendTo === 'target') {\n let offset = this.el.nativeElement.getBoundingClientRect();\n let targetLeft = offset.left + DomHandler.getWindowScrollLeft();\n let targetTop = offset.top + DomHandler.getWindowScrollTop();\n\n return { left: targetLeft, top: targetTop };\n }\n else {\n return { left: 0, top: 0 };\n }\n }\n\n alignRight() {\n this.preAlign('right');\n let hostOffset = this.getHostOffset();\n let left = hostOffset.left + DomHandler.getOuterWidth(this.el.nativeElement);\n let top = hostOffset.top + (DomHandler.getOuterHeight(this.el.nativeElement) - DomHandler.getOuterHeight(this.container)) / 2;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n\n alignLeft() {\n this.preAlign('left');\n let hostOffset = this.getHostOffset();\n let left = hostOffset.left - DomHandler.getOuterWidth(this.container);\n let top = hostOffset.top + (DomHandler.getOuterHeight(this.el.nativeElement) - DomHandler.getOuterHeight(this.container)) / 2;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n\n alignTop() {\n this.preAlign('top');\n let hostOffset = this.getHostOffset();\n let left = hostOffset.left + (DomHandler.getOuterWidth(this.el.nativeElement) - DomHandler.getOuterWidth(this.container)) / 2;\n let top = hostOffset.top - DomHandler.getOuterHeight(this.container);\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n\n alignBottom() {\n this.preAlign('bottom');\n let hostOffset = this.getHostOffset();\n let left = hostOffset.left + (DomHandler.getOuterWidth(this.el.nativeElement) - DomHandler.getOuterWidth(this.container)) / 2;\n let top = hostOffset.top + DomHandler.getOuterHeight(this.el.nativeElement);\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n\n preAlign(position: string) {\n this.container.style.left = -999 + 'px';\n this.container.style.top = -999 + 'px';\n\n let defaultClassName = 'p-tooltip p-component p-tooltip-' + position;\n this.container.className = this.tooltipStyleClass ? defaultClassName + ' ' + this.tooltipStyleClass : defaultClassName;\n }\n\n isOutOfBounds(): boolean {\n let offset = this.container.getBoundingClientRect();\n let targetTop = offset.top;\n let targetLeft = offset.left;\n let width = DomHandler.getOuterWidth(this.container);\n let height = DomHandler.getOuterHeight(this.container);\n let viewport = DomHandler.getViewport();\n\n return (targetLeft + width > viewport.width) || (targetLeft < 0) || (targetTop < 0) || (targetTop + height > viewport.height);\n }\n\n onWindowResize(e: Event) {\n this.hide();\n }\n\n bindDocumentResizeListener() {\n this.zone.runOutsideAngular(() => {\n this.resizeListener = this.onWindowResize.bind(this);\n window.addEventListener('resize', this.resizeListener);\n });\n }\n\n unbindDocumentResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.el.nativeElement, () => {\n if (this.container) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n\n unbindEvents() {\n if (this.tooltipEvent === 'hover') {\n this.el.nativeElement.removeEventListener('mouseenter', this.mouseEnterListener);\n this.el.nativeElement.removeEventListener('mouseleave', this.mouseLeaveListener);\n this.el.nativeElement.removeEventListener('click', this.clickListener);\n }\n else if (this.tooltipEvent === 'focus') {\n this.el.nativeElement.removeEventListener('focus', this.focusListener);\n this.el.nativeElement.removeEventListener('blur', this.blurListener);\n }\n\n this.unbindDocumentResizeListener();\n }\n\n remove() {\n if (this.container && this.container.parentElement) {\n if (this.appendTo === 'body')\n document.body.removeChild(this.container);\n else if (this.appendTo === 'target')\n this.el.nativeElement.removeChild(this.container);\n else\n DomHandler.removeChild(this.container, this.appendTo);\n }\n\n this.unbindDocumentResizeListener();\n this.unbindScrollListener();\n this.clearTimeouts();\n this.container = null;\n this.scrollHandler = null;\n }\n\n clearShowTimeout() {\n if (this.showTimeout) {\n clearTimeout(this.showTimeout);\n this.showTimeout = null;\n }\n }\n\n clearHideTimeout() {\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = null;\n }\n }\n\n clearTimeouts() {\n this.clearShowTimeout();\n this.clearHideTimeout();\n }\n\n ngOnDestroy() {\n this.unbindEvents();\n this.remove();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [Tooltip],\n declarations: [Tooltip]\n})\nexport class TooltipModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -345,16 +345,16 @@ UITreeNode.decorators = [
345
345
  <ng-template [ngIf]="node">
346
346
  <li *ngIf="tree.droppableNodes" class="p-treenode-droppoint" [ngClass]="{'p-treenode-droppoint-active':draghoverPrev}"
347
347
  (drop)="onDropPoint($event,-1)" (dragover)="onDropPointDragOver($event)" (dragenter)="onDropPointDragEnter($event,-1)" (dragleave)="onDropPointDragLeave($event)"></li>
348
- <li *ngIf="!tree.horizontal" role="treeitem" [ngClass]="['p-treenode',node.styleClass||'', isLeaf() ? 'p-treenode-leaf': '']">
348
+ <li *ngIf="!tree.horizontal" [ngClass]="['p-treenode',node.styleClass||'', isLeaf() ? 'p-treenode-leaf': '']">
349
349
  <div class="p-treenode-content" [style.paddingLeft]="(level * indentation) + 'rem'" (click)="onNodeClick($event)" (contextmenu)="onNodeRightClick($event)" (touchend)="onNodeTouchEnd()"
350
350
  (drop)="onDropNode($event)" (dragover)="onDropNodeDragOver($event)" (dragenter)="onDropNodeDragEnter($event)" (dragleave)="onDropNodeDragLeave($event)"
351
351
  [draggable]="tree.draggableNodes" (dragstart)="onDragStart($event)" (dragend)="onDragStop($event)" [attr.tabindex]="0"
352
- [ngClass]="{'p-treenode-selectable':tree.selectionMode && node.selectable !== false,'p-treenode-dragover':draghoverNode, 'p-highlight':isSelected()}"
352
+ [ngClass]="{'p-treenode-selectable':tree.selectionMode && node.selectable !== false,'p-treenode-dragover':draghoverNode, 'p-highlight':isSelected()}" role="treeitem"
353
353
  (keydown)="onKeyDown($event)" [attr.aria-posinset]="this.index + 1" [attr.aria-expanded]="this.node.expanded" [attr.aria-selected]="isSelected()" [attr.aria-label]="node.label">
354
- <button type="button" class="p-tree-toggler p-link" (click)="toggle($event)" pRipple>
354
+ <button type="button" class="p-tree-toggler p-link" (click)="toggle($event)" pRipple tabindex="-1">
355
355
  <span class="p-tree-toggler-icon pi pi-fw" [ngClass]="{'pi-chevron-right':!node.expanded,'pi-chevron-down':node.expanded}"></span>
356
356
  </button>
357
- <div class="p-checkbox p-component" *ngIf="tree.selectionMode == 'checkbox'" [attr.aria-checked]="isSelected()">
357
+ <div class="p-checkbox p-component" [ngClass]="{'p-checkbox-disabled': node.selectable === false}" *ngIf="tree.selectionMode == 'checkbox'" [attr.aria-checked]="isSelected()">
358
358
  <div class="p-checkbox-box" [ngClass]="{'p-highlight': isSelected(), 'p-indeterminate': node.partialSelected}">
359
359
  <span class="p-checkbox-icon pi" [ngClass]="{'pi-check':isSelected(),'pi-minus':node.partialSelected}"></span>
360
360
  </div>
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-tree.js","sources":["../../../src/app/components/tree/tree.ts","../../../src/app/components/tree/primeng-tree.ts"],"sourcesContent":["import {NgModule,Component,Input,AfterContentInit,OnDestroy,Output,EventEmitter,OnInit,OnChanges,\n ContentChildren,QueryList,TemplateRef,Inject,ElementRef,forwardRef,ChangeDetectionStrategy,SimpleChanges, ViewEncapsulation, ViewChild} from '@angular/core';\nimport {CdkVirtualScrollViewport, ScrollingModule} from '@angular/cdk/scrolling';\nimport {Optional} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TreeNode} from 'primeng/api';\nimport {SharedModule} from 'primeng/api';\nimport {PrimeTemplate} from 'primeng/api';\nimport {TreeDragDropService} from 'primeng/api';\nimport {Subscription} from 'rxjs';\nimport {BlockableUI} from 'primeng/api';\nimport {ObjectUtils} from 'primeng/utils';\nimport {DomHandler} from 'primeng/dom';\nimport {RippleModule} from 'primeng/ripple';\n\n@Component({\n selector: 'p-treeNode',\n template: `\n <ng-template [ngIf]=\"node\">\n <li *ngIf=\"tree.droppableNodes\" class=\"p-treenode-droppoint\" [ngClass]=\"{'p-treenode-droppoint-active':draghoverPrev}\"\n (drop)=\"onDropPoint($event,-1)\" (dragover)=\"onDropPointDragOver($event)\" (dragenter)=\"onDropPointDragEnter($event,-1)\" (dragleave)=\"onDropPointDragLeave($event)\"></li>\n <li *ngIf=\"!tree.horizontal\" role=\"treeitem\" [ngClass]=\"['p-treenode',node.styleClass||'', isLeaf() ? 'p-treenode-leaf': '']\">\n <div class=\"p-treenode-content\" [style.paddingLeft]=\"(level * indentation) + 'rem'\" (click)=\"onNodeClick($event)\" (contextmenu)=\"onNodeRightClick($event)\" (touchend)=\"onNodeTouchEnd()\"\n (drop)=\"onDropNode($event)\" (dragover)=\"onDropNodeDragOver($event)\" (dragenter)=\"onDropNodeDragEnter($event)\" (dragleave)=\"onDropNodeDragLeave($event)\"\n [draggable]=\"tree.draggableNodes\" (dragstart)=\"onDragStart($event)\" (dragend)=\"onDragStop($event)\" [attr.tabindex]=\"0\"\n [ngClass]=\"{'p-treenode-selectable':tree.selectionMode && node.selectable !== false,'p-treenode-dragover':draghoverNode, 'p-highlight':isSelected()}\"\n (keydown)=\"onKeyDown($event)\" [attr.aria-posinset]=\"this.index + 1\" [attr.aria-expanded]=\"this.node.expanded\" [attr.aria-selected]=\"isSelected()\" [attr.aria-label]=\"node.label\">\n <button type=\"button\" class=\"p-tree-toggler p-link\" (click)=\"toggle($event)\" pRipple>\n <span class=\"p-tree-toggler-icon pi pi-fw\" [ngClass]=\"{'pi-chevron-right':!node.expanded,'pi-chevron-down':node.expanded}\"></span>\n </button>\n <div class=\"p-checkbox p-component\" *ngIf=\"tree.selectionMode == 'checkbox'\" [attr.aria-checked]=\"isSelected()\">\n <div class=\"p-checkbox-box\" [ngClass]=\"{'p-highlight': isSelected(), 'p-indeterminate': node.partialSelected}\">\n <span class=\"p-checkbox-icon pi\" [ngClass]=\"{'pi-check':isSelected(),'pi-minus':node.partialSelected}\"></span>\n </div>\n </div>\n <span [class]=\"getIcon()\" *ngIf=\"node.icon||node.expandedIcon||node.collapsedIcon\"></span>\n <span class=\"p-treenode-label\">\n <span *ngIf=\"!tree.getTemplateForNode(node)\">{{node.label}}</span>\n <span *ngIf=\"tree.getTemplateForNode(node)\">\n <ng-container *ngTemplateOutlet=\"tree.getTemplateForNode(node); context: {$implicit: node}\"></ng-container>\n </span>\n </span>\n </div>\n <ul class=\"p-treenode-children\" style=\"display: none;\" *ngIf=\"!tree.virtualScroll && node.children && node.expanded\" [style.display]=\"node.expanded ? 'block' : 'none'\" role=\"group\">\n <p-treeNode *ngFor=\"let childNode of node.children;let firstChild=first;let lastChild=last; let index=index; trackBy: tree.trackBy\" [node]=\"childNode\" [parentNode]=\"node\"\n [firstChild]=\"firstChild\" [lastChild]=\"lastChild\" [index]=\"index\" [style.height.px]=\"tree.virtualNodeHeight\" [level]=\"level + 1\"></p-treeNode>\n </ul>\n </li>\n <li *ngIf=\"tree.droppableNodes&&lastChild\" class=\"p-treenode-droppoint\" [ngClass]=\"{'p-treenode-droppoint-active':draghoverNext}\"\n (drop)=\"onDropPoint($event,1)\" (dragover)=\"onDropPointDragOver($event)\" (dragenter)=\"onDropPointDragEnter($event,1)\" (dragleave)=\"onDropPointDragLeave($event)\"></li>\n <table *ngIf=\"tree.horizontal\" [class]=\"node.styleClass\">\n <tbody>\n <tr>\n <td class=\"p-treenode-connector\" *ngIf=\"!root\">\n <table class=\"p-treenode-connector-table\">\n <tbody>\n <tr>\n <td [ngClass]=\"{'p-treenode-connector-line':!firstChild}\"></td>\n </tr>\n <tr>\n <td [ngClass]=\"{'p-treenode-connector-line':!lastChild}\"></td>\n </tr>\n </tbody>\n </table>\n </td>\n <td class=\"p-treenode\" [ngClass]=\"{'p-treenode-collapsed':!node.expanded}\">\n <div class=\"p-treenode-content\" tabindex=\"0\" [ngClass]=\"{'p-treenode-selectable':tree.selectionMode,'p-highlight':isSelected()}\" (click)=\"onNodeClick($event)\" (contextmenu)=\"onNodeRightClick($event)\"\n (touchend)=\"onNodeTouchEnd()\" (keydown)=\"onNodeKeydown($event)\">\n <span class=\"p-tree-toggler pi pi-fw\" [ngClass]=\"{'pi-plus':!node.expanded,'pi-minus':node.expanded}\" *ngIf=\"!isLeaf()\" (click)=\"toggle($event)\"></span>\n <span [class]=\"getIcon()\" *ngIf=\"node.icon||node.expandedIcon||node.collapsedIcon\"></span>\n <span class=\"p-treenode-label\">\n <span *ngIf=\"!tree.getTemplateForNode(node)\">{{node.label}}</span>\n <span *ngIf=\"tree.getTemplateForNode(node)\">\n <ng-container *ngTemplateOutlet=\"tree.getTemplateForNode(node); context: {$implicit: node}\"></ng-container>\n </span>\n </span>\n </div>\n </td>\n <td class=\"p-treenode-children-container\" *ngIf=\"node.children && node.expanded\" [style.display]=\"node.expanded ? 'table-cell' : 'none'\">\n <div class=\"p-treenode-children\">\n <p-treeNode *ngFor=\"let childNode of node.children;let firstChild=first;let lastChild=last; trackBy: tree.trackBy\" [node]=\"childNode\"\n [firstChild]=\"firstChild\" [lastChild]=\"lastChild\"></p-treeNode>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class UITreeNode implements OnInit {\n\n static ICON_CLASS: string = 'p-treenode-icon ';\n\n @Input() rowNode: any;\n\n @Input() node: TreeNode;\n\n @Input() parentNode: TreeNode;\n\n @Input() root: boolean;\n\n @Input() index: number;\n\n @Input() firstChild: boolean;\n\n @Input() lastChild: boolean;\n\n @Input() level: number;\n\n @Input() indentation: number;\n\n tree: Tree;\n\n constructor(@Inject(forwardRef(() => Tree)) tree) {\n this.tree = tree as Tree;\n }\n\n draghoverPrev: boolean;\n\n draghoverNext: boolean;\n\n draghoverNode: boolean\n\n ngOnInit() {\n this.node.parent = this.parentNode;\n\n if (this.parentNode) {\n this.tree.syncNodeOption(this.node, this.tree.value, 'parent', this.tree.getNodeWithKey(this.parentNode.key, this.tree.value));\n }\n }\n\n getIcon() {\n let icon: string;\n\n if (this.node.icon)\n icon = this.node.icon;\n else\n icon = this.node.expanded && this.node.children && this.node.children.length ? this.node.expandedIcon : this.node.collapsedIcon;\n\n return UITreeNode.ICON_CLASS + ' ' + icon;\n }\n\n isLeaf() {\n return this.tree.isNodeLeaf(this.node);\n }\n\n toggle(event: Event) {\n if (this.node.expanded)\n this.collapse(event);\n else\n this.expand(event);\n }\n\n expand(event: Event) {\n this.node.expanded = true;\n if (this.tree.virtualScroll) {\n this.tree.updateSerializedValue();\n }\n this.tree.onNodeExpand.emit({originalEvent: event, node: this.node});\n }\n\n collapse(event: Event) {\n this.node.expanded = false;\n if (this.tree.virtualScroll) {\n this.tree.updateSerializedValue();\n }\n this.tree.onNodeCollapse.emit({originalEvent: event, node: this.node});\n }\n\n onNodeClick(event: MouseEvent) {\n this.tree.onNodeClick(event, this.node);\n }\n\n onNodeKeydown(event: KeyboardEvent) {\n if (event.which === 13) {\n this.tree.onNodeClick(event, this.node);\n }\n }\n\n onNodeTouchEnd() {\n this.tree.onNodeTouchEnd();\n }\n\n onNodeRightClick(event: MouseEvent) {\n this.tree.onNodeRightClick(event, this.node);\n }\n\n isSelected() {\n return this.tree.isSelected(this.node);\n }\n\n onDropPoint(event: Event, position: number) {\n event.preventDefault();\n let dragNode = this.tree.dragNode;\n let dragNodeIndex = this.tree.dragNodeIndex;\n let dragNodeScope = this.tree.dragNodeScope;\n let isValidDropPointIndex = this.tree.dragNodeTree === this.tree ? (position === 1 || dragNodeIndex !== this.index - 1) : true;\n\n if (this.tree.allowDrop(dragNode, this.node, dragNodeScope) && isValidDropPointIndex) {\n let dropParams = {...this.createDropPointEventMetadata(position)};\n\n if (this.tree.validateDrop) {\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: this.node,\n dropIndex: this.index,\n accept: () => {\n this.processPointDrop(dropParams);\n }\n });\n }\n else {\n this.processPointDrop(dropParams);\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: this.node,\n dropIndex: this.index\n });\n }\n }\n\n this.draghoverPrev = false;\n this.draghoverNext = false;\n }\n\n processPointDrop(event) {\n let newNodeList = event.dropNode.parent ? event.dropNode.parent.children : this.tree.value;\n event.dragNodeSubNodes.splice(event.dragNodeIndex, 1);\n let dropIndex = this.index;\n\n if (event.position < 0) {\n dropIndex = (event.dragNodeSubNodes === newNodeList) ? ((event.dragNodeIndex > event.index) ? event.index : event.index - 1) : event.index;\n newNodeList.splice(dropIndex, 0, event.dragNode);\n }\n else {\n dropIndex = newNodeList.length;\n newNodeList.push(event.dragNode);\n }\n\n this.tree.dragDropService.stopDrag({\n node: event.dragNode,\n subNodes: event.dropNode.parent ? event.dropNode.parent.children : this.tree.value,\n index: event.dragNodeIndex\n });\n }\n\n createDropPointEventMetadata(position) {\n return {\n dragNode: this.tree.dragNode,\n dragNodeIndex: this.tree.dragNodeIndex,\n dragNodeSubNodes: this.tree.dragNodeSubNodes,\n dropNode: this.node,\n index: this.index,\n position: position\n };\n }\n\n onDropPointDragOver(event) {\n event.dataTransfer.dropEffect = 'move';\n event.preventDefault();\n }\n\n onDropPointDragEnter(event: Event, position: number) {\n if (this.tree.allowDrop(this.tree.dragNode, this.node, this.tree.dragNodeScope)) {\n if (position < 0)\n this.draghoverPrev = true;\n else\n this.draghoverNext = true;\n }\n }\n\n onDropPointDragLeave(event: Event) {\n this.draghoverPrev = false;\n this.draghoverNext = false;\n }\n\n onDragStart(event) {\n if (this.tree.draggableNodes && this.node.draggable !== false) {\n event.dataTransfer.setData(\"text\", \"data\");\n\n this.tree.dragDropService.startDrag({\n tree: this,\n node: this.node,\n subNodes: this.node.parent ? this.node.parent.children : this.tree.value,\n index: this.index,\n scope: this.tree.draggableScope\n });\n }\n else {\n event.preventDefault();\n }\n }\n\n onDragStop(event) {\n this.tree.dragDropService.stopDrag({\n node: this.node,\n subNodes: this.node.parent ? this.node.parent.children : this.tree.value,\n index: this.index\n });\n }\n\n onDropNodeDragOver(event) {\n event.dataTransfer.dropEffect = 'move';\n if (this.tree.droppableNodes) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n onDropNode(event) {\n if (this.tree.droppableNodes && this.node.droppable !== false) {\n let dragNode = this.tree.dragNode;\n\n if (this.tree.allowDrop(dragNode, this.node, this.tree.dragNodeScope)) {\n let dropParams = {...this.createDropNodeEventMetadata()};\n\n if (this.tree.validateDrop) {\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: this.node,\n index: this.index,\n accept: () => {\n this.processNodeDrop(dropParams);\n }\n });\n }\n else {\n this.processNodeDrop(dropParams);\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: this.node,\n index: this.index\n });\n }\n }\n }\n\n event.preventDefault();\n event.stopPropagation();\n this.draghoverNode = false;\n }\n\n createDropNodeEventMetadata() {\n return {\n dragNode: this.tree.dragNode,\n dragNodeIndex: this.tree.dragNodeIndex,\n dragNodeSubNodes: this.tree.dragNodeSubNodes,\n dropNode: this.node\n };\n }\n\n processNodeDrop(event) {\n let dragNodeIndex = event.dragNodeIndex;\n event.dragNodeSubNodes.splice(dragNodeIndex, 1);\n\n if (event.dropNode.children)\n event.dropNode.children.push(event.dragNode);\n else\n event.dropNode.children = [event.dragNode];\n\n this.tree.dragDropService.stopDrag({\n node: event.dragNode,\n subNodes: event.dropNode.parent ? event.dropNode.parent.children : this.tree.value,\n index: dragNodeIndex\n });\n }\n\n onDropNodeDragEnter(event) {\n if (this.tree.droppableNodes && this.node.droppable !== false && this.tree.allowDrop(this.tree.dragNode, this.node, this.tree.dragNodeScope)) {\n this.draghoverNode = true;\n }\n }\n\n onDropNodeDragLeave(event) {\n if (this.tree.droppableNodes) {\n let rect = event.currentTarget.getBoundingClientRect();\n if (event.x > rect.left + rect.width || event.x < rect.left || event.y >= Math.floor(rect.top + rect.height) || event.y < rect.top) {\n this.draghoverNode = false;\n }\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n const nodeElement = (<HTMLDivElement> event.target).parentElement.parentElement;\n\n if (nodeElement.nodeName !== 'P-TREENODE' || (this.tree.contextMenu && this.tree.contextMenu.containerViewChild.nativeElement.style.display === 'block')) {\n return;\n }\n\n switch (event.which) {\n //down arrow\n case 40:\n const listElement = (this.tree.droppableNodes) ? nodeElement.children[1].children[1] : nodeElement.children[0].children[1];\n if (listElement && listElement.children.length > 0) {\n this.focusNode(listElement.children[0]);\n }\n else {\n const nextNodeElement = nodeElement.nextElementSibling;\n if (nextNodeElement) {\n this.focusNode(nextNodeElement);\n }\n else {\n let nextSiblingAncestor = this.findNextSiblingOfAncestor(nodeElement);\n if (nextSiblingAncestor) {\n this.focusNode(nextSiblingAncestor);\n }\n }\n }\n\n event.preventDefault();\n break;\n\n //up arrow\n case 38:\n if (nodeElement.previousElementSibling) {\n this.focusNode(this.findLastVisibleDescendant(nodeElement.previousElementSibling));\n }\n else {\n let parentNodeElement = this.getParentNodeElement(nodeElement);\n if (parentNodeElement) {\n this.focusNode(parentNodeElement);\n }\n }\n\n event.preventDefault();\n break;\n\n //right arrow\n case 39:\n if (!this.node.expanded && !this.tree.isNodeLeaf(this.node)) {\n this.expand(event);\n }\n\n event.preventDefault();\n break;\n\n //left arrow\n case 37:\n if (this.node.expanded) {\n this.collapse(event);\n }\n else {\n let parentNodeElement = this.getParentNodeElement(nodeElement);\n if (parentNodeElement) {\n this.focusNode(parentNodeElement);\n }\n }\n\n event.preventDefault();\n break;\n\n //enter\n case 13:\n this.tree.onNodeClick(event, this.node);\n event.preventDefault();\n break;\n\n default:\n //no op\n break;\n }\n }\n\n findNextSiblingOfAncestor(nodeElement) {\n let parentNodeElement = this.getParentNodeElement(nodeElement);\n if (parentNodeElement) {\n if (parentNodeElement.nextElementSibling)\n return parentNodeElement.nextElementSibling;\n else\n return this.findNextSiblingOfAncestor(parentNodeElement);\n }\n else {\n return null;\n }\n }\n\n findLastVisibleDescendant(nodeElement) {\n const listElement = <HTMLElement> Array.from(nodeElement.children).find(el => DomHandler.hasClass(el, 'p-treenode'));\n const childrenListElement = listElement.children[1];\n if (childrenListElement && childrenListElement.children.length > 0) {\n const lastChildElement = childrenListElement.children[childrenListElement.children.length - 1];\n\n return this.findLastVisibleDescendant(lastChildElement);\n }\n else {\n return nodeElement;\n }\n }\n\n getParentNodeElement(nodeElement) {\n const parentNodeElement = nodeElement.parentElement.parentElement.parentElement;\n\n return parentNodeElement.tagName === 'P-TREENODE' ? parentNodeElement : null;\n }\n\n focusNode(element) {\n if (this.tree.droppableNodes)\n element.children[1].children[0].focus();\n else\n element.children[0].children[0].focus();\n }\n}\n\n@Component({\n selector: 'p-tree',\n template: `\n <div [ngClass]=\"{'p-tree p-component':true,'p-tree-selectable':selectionMode,\n 'p-treenode-dragover':dragHover,'p-tree-loading': loading, 'p-tree-flex-scrollable': scrollHeight === 'flex'}\" \n [ngStyle]=\"style\" [class]=\"styleClass\" *ngIf=\"!horizontal\"\n (drop)=\"onDrop($event)\" (dragover)=\"onDragOver($event)\" (dragenter)=\"onDragEnter($event)\" (dragleave)=\"onDragLeave($event)\">\n <div class=\"p-tree-loading-overlay p-component-overlay\" *ngIf=\"loading\">\n <i [class]=\"'p-tree-loading-icon pi-spin ' + loadingIcon\"></i>\n </div>\n <div *ngIf=\"filter\" class=\"p-tree-filter-container\">\n <input #filter type=\"text\" autocomplete=\"off\" class=\"p-tree-filter p-inputtext p-component\" [attr.placeholder]=\"filterPlaceholder\"\n (keydown.enter)=\"$event.preventDefault()\" (input)=\"_filter($event)\">\n <span class=\"p-tree-filter-icon pi pi-search\"></span>\n </div>\n <ng-container *ngIf=\"!virtualScroll; else virtualScrollList\">\n <div class=\"p-tree-wrapper\" [style.max-height]=\"scrollHeight\">\n <ul class=\"p-tree-container\" *ngIf=\"getRootNode()\" role=\"tree\" [attr.aria-label]=\"ariaLabel\" [attr.aria-labelledby]=\"ariaLabelledBy\">\n <p-treeNode *ngFor=\"let node of getRootNode(); let firstChild=first;let lastChild=last; let index=index; trackBy: trackBy\" [node]=\"node\"\n [firstChild]=\"firstChild\" [lastChild]=\"lastChild\" [index]=\"index\" [level]=\"0\"></p-treeNode>\n </ul>\n </div>\n </ng-container>\n <ng-template #virtualScrollList>\n <cdk-virtual-scroll-viewport class=\"p-tree-wrapper\" [style.height]=\"scrollHeight\" [itemSize]=\"virtualNodeHeight\" [minBufferPx]=\"minBufferPx\" [maxBufferPx]=\"maxBufferPx\">\n <ul class=\"p-tree-container\" *ngIf=\"getRootNode()\" role=\"tree\" [attr.aria-label]=\"ariaLabel\" [attr.aria-labelledby]=\"ariaLabelledBy\">\n <p-treeNode *cdkVirtualFor=\"let rowNode of serializedValue; let firstChild=first; let lastChild=last; let index=index; trackBy: trackBy; templateCacheSize: 0\" [level]=\"rowNode.level\"\n [rowNode]=\"rowNode\" [node]=\"rowNode.node\" [firstChild]=\"firstChild\" [lastChild]=\"lastChild\" [index]=\"index\" [style.height.px]=\"virtualNodeHeight\" [indentation]=\"indentation\"></p-treeNode>\n </ul>\n </cdk-virtual-scroll-viewport>\n </ng-template>\n <div class=\"p-tree-empty-message\" *ngIf=\"!loading && (value == null || value.length === 0)\">{{emptyMessage}}</div>\n </div>\n <div [ngClass]=\"{'p-tree p-tree-horizontal p-component':true,'p-tree-selectable':selectionMode}\" [ngStyle]=\"style\" [class]=\"styleClass\" *ngIf=\"horizontal\">\n <div class=\"p-tree-loading-mask p-component-overlay\" *ngIf=\"loading\">\n <i [class]=\"'p-tree-loading-icon pi-spin ' + loadingIcon\"></i>\n </div>\n <table *ngIf=\"value&&value[0]\">\n <p-treeNode [node]=\"value[0]\" [root]=\"true\"></p-treeNode>\n </table>\n <div class=\"p-tree-empty-message\" *ngIf=\"!loading && (value == null || value.length === 0)\">{{emptyMessage}}</div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./tree.css']\n})\nexport class Tree implements OnInit,AfterContentInit,OnChanges,OnDestroy,BlockableUI {\n\n @Input() value: TreeNode[];\n\n @Input() selectionMode: string;\n\n @Input() selection: any;\n\n @Output() selectionChange: EventEmitter<any> = new EventEmitter();\n\n @Output() onNodeSelect: EventEmitter<any> = new EventEmitter();\n\n @Output() onNodeUnselect: EventEmitter<any> = new EventEmitter();\n\n @Output() onNodeExpand: EventEmitter<any> = new EventEmitter();\n\n @Output() onNodeCollapse: EventEmitter<any> = new EventEmitter();\n\n @Output() onNodeContextMenuSelect: EventEmitter<any> = new EventEmitter();\n\n @Output() onNodeDrop: EventEmitter<any> = new EventEmitter();\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() contextMenu: any;\n\n @Input() layout: string = 'vertical';\n\n @Input() draggableScope: any;\n\n @Input() droppableScope: any;\n\n @Input() draggableNodes: boolean;\n\n @Input() droppableNodes: boolean;\n\n @Input() metaKeySelection: boolean = true;\n\n @Input() propagateSelectionUp: boolean = true;\n\n @Input() propagateSelectionDown: boolean = true;\n\n @Input() loading: boolean;\n\n @Input() loadingIcon: string = 'pi pi-spinner';\n\n @Input() emptyMessage: string = 'No records found';\n\n @Input() ariaLabel: string;\n\n @Input() ariaLabelledBy: string;\n\n @Input() validateDrop: boolean;\n\n @Input() filter: boolean;\n\n @Input() filterBy: string = 'label';\n\n @Input() filterMode: string = 'lenient';\n\n @Input() filterPlaceholder: string;\n\n @Input() filterLocale: string;\n\n @Input() scrollHeight: string;\n\n @Input() virtualScroll: boolean;\n\n @Input() virtualNodeHeight: string;\n\n @Input() minBufferPx: number;\n\n @Input() maxBufferPx: number;\n\n @Input() indentation: number = 1.5;\n\n @Input() trackBy: Function = (index: number, item: any) => item;\n\n @Output() onFilter: EventEmitter<any> = new EventEmitter();\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n @ViewChild(CdkVirtualScrollViewport) virtualScrollBody: CdkVirtualScrollViewport;\n\n serializedValue: any[];\n\n public templateMap: any;\n\n public nodeTouched: boolean;\n\n public dragNodeTree: Tree;\n\n public dragNode: TreeNode;\n\n public dragNodeSubNodes: TreeNode[];\n\n public dragNodeIndex: number;\n\n public dragNodeScope: any;\n\n public dragHover: boolean;\n\n public dragStartSubscription: Subscription;\n\n public dragStopSubscription: Subscription;\n\n public filteredNodes: TreeNode[];\n\n constructor(public el: ElementRef, @Optional() public dragDropService: TreeDragDropService) {}\n\n ngOnInit() {\n if (this.droppableNodes) {\n this.dragStartSubscription = this.dragDropService.dragStart$.subscribe(\n event => {\n this.dragNodeTree = event.tree;\n this.dragNode = event.node;\n this.dragNodeSubNodes = event.subNodes;\n this.dragNodeIndex = event.index;\n this.dragNodeScope = event.scope;\n });\n\n this.dragStopSubscription = this.dragDropService.dragStop$.subscribe(\n event => {\n this.dragNodeTree = null;\n this.dragNode = null;\n this.dragNodeSubNodes = null;\n this.dragNodeIndex = null;\n this.dragNodeScope = null;\n this.dragHover = false;\n });\n }\n }\n\n ngOnChanges(simpleChange: SimpleChanges) {\n if (simpleChange.value) {\n this.updateSerializedValue();\n }\n\n if (simpleChange.scrollHeight && this.virtualScrollBody) {\n this.virtualScrollBody.ngOnInit();\n }\n }\n\n get horizontal(): boolean {\n return this.layout == 'horizontal';\n }\n\n ngAfterContentInit() {\n if (this.templates.length) {\n this.templateMap = {};\n }\n\n this.templates.forEach((item) => {\n this.templateMap[item.name] = item.template;\n });\n }\n\n updateSerializedValue() {\n this.serializedValue = [];\n this.serializeNodes(null, this.getRootNode(), 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 onNodeClick(event, node: TreeNode) {\n let eventTarget = (<Element> event.target);\n\n if (DomHandler.hasClass(eventTarget, 'p-tree-toggler') || DomHandler.hasClass(eventTarget, 'p-tree-toggler-icon')) {\n return;\n }\n else if (this.selectionMode) {\n if (node.selectable === false) {\n return;\n }\n\n if (this.hasFilteredNodes()) {\n node = this.getNodeWithKey(node.key, this.value);\n\n if (!node) {\n return;\n }\n }\n\n let index = this.findIndexInSelection(node);\n let selected = (index >= 0);\n\n if (this.isCheckboxSelectionMode()) {\n if (selected) {\n if (this.propagateSelectionDown)\n this.propagateDown(node, false);\n else\n this.selection = this.selection.filter((val,i) => i!=index);\n\n if (this.propagateSelectionUp && node.parent) {\n this.propagateUp(node.parent, false);\n }\n\n this.selectionChange.emit(this.selection);\n this.onNodeUnselect.emit({originalEvent: event, node: node});\n }\n else {\n if (this.propagateSelectionDown)\n this.propagateDown(node, true);\n else\n this.selection = [...this.selection||[],node];\n\n if (this.propagateSelectionUp && node.parent) {\n this.propagateUp(node.parent, true);\n }\n\n this.selectionChange.emit(this.selection);\n this.onNodeSelect.emit({originalEvent: event, node: node});\n }\n }\n else {\n let metaSelection = this.nodeTouched ? false : this.metaKeySelection;\n\n if (metaSelection) {\n let metaKey = (event.metaKey||event.ctrlKey);\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this.selectionChange.emit(null);\n }\n else {\n this.selection = this.selection.filter((val,i) => i!=index);\n this.selectionChange.emit(this.selection);\n }\n\n this.onNodeUnselect.emit({originalEvent: event, node: node});\n }\n else {\n if (this.isSingleSelectionMode()) {\n this.selectionChange.emit(node);\n }\n else if (this.isMultipleSelectionMode()) {\n this.selection = (!metaKey) ? [] : this.selection||[];\n this.selection = [...this.selection,node];\n this.selectionChange.emit(this.selection);\n }\n\n this.onNodeSelect.emit({originalEvent: event, node: node});\n }\n }\n else {\n if (this.isSingleSelectionMode()) {\n if (selected) {\n this.selection = null;\n this.onNodeUnselect.emit({originalEvent: event, node: node});\n }\n else {\n this.selection = node;\n this.onNodeSelect.emit({originalEvent: event, node: node});\n }\n }\n else {\n if (selected) {\n this.selection = this.selection.filter((val,i) => i!=index);\n this.onNodeUnselect.emit({originalEvent: event, node: node});\n }\n else {\n this.selection = [...this.selection||[],node];\n this.onNodeSelect.emit({originalEvent: event, node: node});\n }\n }\n\n this.selectionChange.emit(this.selection);\n }\n }\n }\n\n this.nodeTouched = false;\n }\n\n onNodeTouchEnd() {\n this.nodeTouched = true;\n }\n\n onNodeRightClick(event: MouseEvent, node: TreeNode) {\n if (this.contextMenu) {\n let eventTarget = (<Element> event.target);\n\n if (eventTarget.className && eventTarget.className.indexOf('p-tree-toggler') === 0) {\n return;\n }\n else {\n let index = this.findIndexInSelection(node);\n let selected = (index >= 0);\n\n if (!selected) {\n if (this.isSingleSelectionMode())\n this.selectionChange.emit(node);\n else\n this.selectionChange.emit([node]);\n }\n\n this.contextMenu.show(event);\n this.onNodeContextMenuSelect.emit({originalEvent: event, node: node});\n }\n }\n }\n\n findIndexInSelection(node: TreeNode) {\n let index: number = -1;\n\n if (this.selectionMode && this.selection) {\n if (this.isSingleSelectionMode()) {\n let areNodesEqual = (this.selection.key && this.selection.key === node.key) || this.selection == node;\n index = areNodesEqual ? 0 : - 1;\n }\n else {\n for(let i = 0; i < this.selection.length; i++) {\n let selectedNode = this.selection[i];\n let areNodesEqual = (selectedNode.key && selectedNode.key === node.key) || selectedNode == node;\n if (areNodesEqual) {\n index = i;\n break;\n }\n }\n }\n }\n\n return index;\n }\n\n syncNodeOption(node, parentNodes, option, value?: any) {\n // to synchronize the node option between the filtered nodes and the original nodes(this.value)\n const _node = this.hasFilteredNodes() ? this.getNodeWithKey(node.key, parentNodes) : null;\n if (_node) {\n _node[option] = value||node[option];\n }\n }\n\n hasFilteredNodes() {\n return this.filter && this.filteredNodes && this.filteredNodes.length;\n }\n\n getNodeWithKey(key: string, nodes: TreeNode[]) {\n for (let node of nodes) {\n if (node.key === key) {\n return node;\n }\n\n if (node.children) {\n let matchedNode = this.getNodeWithKey(key, node.children);\n if (matchedNode) {\n return matchedNode;\n }\n }\n }\n }\n\n propagateUp(node: TreeNode, select: boolean) {\n if (node.children && node.children.length) {\n let selectedCount: number = 0;\n let childPartialSelected: boolean = false;\n for(let child of node.children) {\n if (this.isSelected(child)) {\n selectedCount++;\n }\n else if (child.partialSelected) {\n childPartialSelected = true;\n }\n }\n\n if (select && selectedCount == node.children.length) {\n this.selection = [...this.selection||[],node];\n node.partialSelected = false;\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 }\n\n if (childPartialSelected || selectedCount > 0 && selectedCount != node.children.length)\n node.partialSelected = true;\n else\n node.partialSelected = false;\n }\n\n this.syncNodeOption(node, this.filteredNodes, 'partialSelected');\n }\n\n let parent = node.parent;\n if (parent) {\n this.propagateUp(parent, select);\n }\n }\n\n propagateDown(node: TreeNode, select: boolean) {\n let index = this.findIndexInSelection(node);\n\n if (select && index == -1) {\n this.selection = [...this.selection||[],node];\n }\n else if (!select && index > -1) {\n this.selection = this.selection.filter((val,i) => i!=index);\n }\n\n node.partialSelected = false;\n\n this.syncNodeOption(node, this.filteredNodes, 'partialSelected');\n\n if (node.children && node.children.length) {\n for(let child of node.children) {\n this.propagateDown(child, select);\n }\n }\n }\n\n isSelected(node: TreeNode) {\n return this.findIndexInSelection(node) != -1;\n }\n\n isSingleSelectionMode() {\n return this.selectionMode && this.selectionMode == 'single';\n }\n\n isMultipleSelectionMode() {\n return this.selectionMode && this.selectionMode == 'multiple';\n }\n\n isCheckboxSelectionMode() {\n return this.selectionMode && this.selectionMode == 'checkbox';\n }\n\n isNodeLeaf(node) {\n return node.leaf == false ? false : !(node.children && node.children.length);\n }\n\n getRootNode() {\n return this.filteredNodes ? this.filteredNodes : this.value;\n }\n\n getTemplateForNode(node: TreeNode): TemplateRef<any> {\n if (this.templateMap)\n return node.type ? this.templateMap[node.type] : this.templateMap['default'];\n else\n return null;\n }\n\n onDragOver(event) {\n if (this.droppableNodes && (!this.value || this.value.length === 0)) {\n event.dataTransfer.dropEffect = 'move';\n event.preventDefault();\n }\n }\n\n onDrop(event) {\n if (this.droppableNodes && (!this.value || this.value.length === 0)) {\n event.preventDefault();\n let dragNode = this.dragNode;\n if (this.allowDrop(dragNode, null, this.dragNodeScope)) {\n let dragNodeIndex = this.dragNodeIndex;\n this.dragNodeSubNodes.splice(dragNodeIndex, 1);\n this.value = this.value||[];\n this.value.push(dragNode);\n\n this.dragDropService.stopDrag({\n node: dragNode\n });\n }\n }\n }\n\n onDragEnter(event) {\n if (this.droppableNodes && this.allowDrop(this.dragNode, null, this.dragNodeScope)) {\n this.dragHover = true;\n }\n }\n\n onDragLeave(event) {\n if (this.droppableNodes) {\n let rect = event.currentTarget.getBoundingClientRect();\n if (event.x > rect.left + rect.width || event.x < rect.left || event.y > rect.top + rect.height || event.y < rect.top) {\n this.dragHover = false;\n }\n }\n }\n\n allowDrop(dragNode: TreeNode, dropNode: TreeNode, dragNodeScope: any): boolean {\n if (!dragNode) {\n //prevent random html elements to be dragged\n return false;\n }\n else if (this.isValidDragScope(dragNodeScope)) {\n let allow: boolean = true;\n if (dropNode) {\n if (dragNode === dropNode) {\n allow = false;\n }\n else {\n let parent = dropNode.parent;\n while(parent != null) {\n if (parent === dragNode) {\n allow = false;\n break;\n }\n parent = parent.parent;\n }\n }\n }\n\n return allow;\n }\n else {\n return false;\n }\n }\n\n isValidDragScope(dragScope: any): boolean {\n let dropScope = this.droppableScope;\n\n if (dropScope) {\n if (typeof dropScope === 'string') {\n if (typeof dragScope === 'string')\n return dropScope === dragScope;\n else if (dragScope instanceof Array)\n return (<Array<any>>dragScope).indexOf(dropScope) != -1;\n }\n else if (dropScope instanceof Array) {\n if (typeof dragScope === 'string') {\n return (<Array<any>>dropScope).indexOf(dragScope) != -1;\n }\n else if (dragScope instanceof Array) {\n for(let s of dropScope) {\n for(let ds of dragScope) {\n if (s === ds) {\n return true;\n }\n }\n }\n }\n }\n return false;\n }\n else {\n return true;\n }\n }\n\n _filter(event) {\n let filterValue = event.target.value;\n if (filterValue === '') {\n this.filteredNodes = null;\n }\n else {\n this.filteredNodes = [];\n const searchFields: string[] = this.filterBy.split(',');\n const filterText = ObjectUtils.removeAccents(filterValue).toLocaleLowerCase(this.filterLocale);\n const isStrictMode = this.filterMode === 'strict';\n for(let node of this.value) {\n let copyNode = {...node};\n let paramsWithoutNode = {searchFields, filterText, isStrictMode};\n if ((isStrictMode && (this.findFilteredNodes(copyNode, paramsWithoutNode) || this.isFilterMatched(copyNode, paramsWithoutNode))) ||\n (!isStrictMode && (this.isFilterMatched(copyNode, paramsWithoutNode) || this.findFilteredNodes(copyNode, paramsWithoutNode)))) {\n this.filteredNodes.push(copyNode);\n }\n }\n }\n\n this.updateSerializedValue();\n this.onFilter.emit({\n filter: filterValue,\n filteredValue: this.filteredNodes\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 node.expanded = true;\n return true;\n }\n }\n }\n\n isFilterMatched(node, {searchFields, filterText, isStrictMode}) {\n let matched = false;\n for(let field of searchFields) {\n let fieldValue = ObjectUtils.removeAccents(String(ObjectUtils.resolveFieldData(node, field))).toLocaleLowerCase(this.filterLocale);\n if (fieldValue.indexOf(filterText) > -1) {\n matched = true;\n }\n }\n\n if (!matched || (isStrictMode && !this.isNodeLeaf(node))) {\n matched = this.findFilteredNodes(node, {searchFields, filterText, isStrictMode}) || matched;\n }\n\n return matched;\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n ngOnDestroy() {\n if (this.dragStartSubscription) {\n this.dragStartSubscription.unsubscribe();\n }\n\n if (this.dragStopSubscription) {\n this.dragStopSubscription.unsubscribe();\n }\n }\n}\n@NgModule({\n imports: [CommonModule,ScrollingModule,RippleModule],\n exports: [Tree,SharedModule,ScrollingModule],\n declarations: [Tree,UITreeNode]\n})\nexport class TreeModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primeng-tree.js","sources":["../../src/app/components/tree/tree.ts","../../src/app/components/tree/primeng-tree.ts"],"sourcesContent":["import {NgModule,Component,Input,AfterContentInit,OnDestroy,Output,EventEmitter,OnInit,OnChanges,\n ContentChildren,QueryList,TemplateRef,Inject,ElementRef,forwardRef,ChangeDetectionStrategy,SimpleChanges, ViewEncapsulation, ViewChild} from '@angular/core';\nimport {CdkVirtualScrollViewport, ScrollingModule} from '@angular/cdk/scrolling';\nimport {Optional} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TreeNode} from 'primeng/api';\nimport {SharedModule} from 'primeng/api';\nimport {PrimeTemplate} from 'primeng/api';\nimport {TreeDragDropService} from 'primeng/api';\nimport {Subscription} from 'rxjs';\nimport {BlockableUI} from 'primeng/api';\nimport {ObjectUtils} from 'primeng/utils';\nimport {DomHandler} from 'primeng/dom';\nimport {RippleModule} from 'primeng/ripple';\n\n@Component({\n selector: 'p-treeNode',\n template: `\n <ng-template [ngIf]=\"node\">\n <li *ngIf=\"tree.droppableNodes\" class=\"p-treenode-droppoint\" [ngClass]=\"{'p-treenode-droppoint-active':draghoverPrev}\"\n (drop)=\"onDropPoint($event,-1)\" (dragover)=\"onDropPointDragOver($event)\" (dragenter)=\"onDropPointDragEnter($event,-1)\" (dragleave)=\"onDropPointDragLeave($event)\"></li>\n <li *ngIf=\"!tree.horizontal\" [ngClass]=\"['p-treenode',node.styleClass||'', isLeaf() ? 'p-treenode-leaf': '']\">\n <div class=\"p-treenode-content\" [style.paddingLeft]=\"(level * indentation) + 'rem'\" (click)=\"onNodeClick($event)\" (contextmenu)=\"onNodeRightClick($event)\" (touchend)=\"onNodeTouchEnd()\"\n (drop)=\"onDropNode($event)\" (dragover)=\"onDropNodeDragOver($event)\" (dragenter)=\"onDropNodeDragEnter($event)\" (dragleave)=\"onDropNodeDragLeave($event)\"\n [draggable]=\"tree.draggableNodes\" (dragstart)=\"onDragStart($event)\" (dragend)=\"onDragStop($event)\" [attr.tabindex]=\"0\"\n [ngClass]=\"{'p-treenode-selectable':tree.selectionMode && node.selectable !== false,'p-treenode-dragover':draghoverNode, 'p-highlight':isSelected()}\" role=\"treeitem\"\n (keydown)=\"onKeyDown($event)\" [attr.aria-posinset]=\"this.index + 1\" [attr.aria-expanded]=\"this.node.expanded\" [attr.aria-selected]=\"isSelected()\" [attr.aria-label]=\"node.label\">\n <button type=\"button\" class=\"p-tree-toggler p-link\" (click)=\"toggle($event)\" pRipple tabindex=\"-1\">\n <span class=\"p-tree-toggler-icon pi pi-fw\" [ngClass]=\"{'pi-chevron-right':!node.expanded,'pi-chevron-down':node.expanded}\"></span>\n </button>\n <div class=\"p-checkbox p-component\" [ngClass]=\"{'p-checkbox-disabled': node.selectable === false}\" *ngIf=\"tree.selectionMode == 'checkbox'\" [attr.aria-checked]=\"isSelected()\">\n <div class=\"p-checkbox-box\" [ngClass]=\"{'p-highlight': isSelected(), 'p-indeterminate': node.partialSelected}\">\n <span class=\"p-checkbox-icon pi\" [ngClass]=\"{'pi-check':isSelected(),'pi-minus':node.partialSelected}\"></span>\n </div>\n </div>\n <span [class]=\"getIcon()\" *ngIf=\"node.icon||node.expandedIcon||node.collapsedIcon\"></span>\n <span class=\"p-treenode-label\">\n <span *ngIf=\"!tree.getTemplateForNode(node)\">{{node.label}}</span>\n <span *ngIf=\"tree.getTemplateForNode(node)\">\n <ng-container *ngTemplateOutlet=\"tree.getTemplateForNode(node); context: {$implicit: node}\"></ng-container>\n </span>\n </span>\n </div>\n <ul class=\"p-treenode-children\" style=\"display: none;\" *ngIf=\"!tree.virtualScroll && node.children && node.expanded\" [style.display]=\"node.expanded ? 'block' : 'none'\" role=\"group\">\n <p-treeNode *ngFor=\"let childNode of node.children;let firstChild=first;let lastChild=last; let index=index; trackBy: tree.trackBy\" [node]=\"childNode\" [parentNode]=\"node\"\n [firstChild]=\"firstChild\" [lastChild]=\"lastChild\" [index]=\"index\" [style.height.px]=\"tree.virtualNodeHeight\" [level]=\"level + 1\"></p-treeNode>\n </ul>\n </li>\n <li *ngIf=\"tree.droppableNodes&&lastChild\" class=\"p-treenode-droppoint\" [ngClass]=\"{'p-treenode-droppoint-active':draghoverNext}\"\n (drop)=\"onDropPoint($event,1)\" (dragover)=\"onDropPointDragOver($event)\" (dragenter)=\"onDropPointDragEnter($event,1)\" (dragleave)=\"onDropPointDragLeave($event)\"></li>\n <table *ngIf=\"tree.horizontal\" [class]=\"node.styleClass\">\n <tbody>\n <tr>\n <td class=\"p-treenode-connector\" *ngIf=\"!root\">\n <table class=\"p-treenode-connector-table\">\n <tbody>\n <tr>\n <td [ngClass]=\"{'p-treenode-connector-line':!firstChild}\"></td>\n </tr>\n <tr>\n <td [ngClass]=\"{'p-treenode-connector-line':!lastChild}\"></td>\n </tr>\n </tbody>\n </table>\n </td>\n <td class=\"p-treenode\" [ngClass]=\"{'p-treenode-collapsed':!node.expanded}\">\n <div class=\"p-treenode-content\" tabindex=\"0\" [ngClass]=\"{'p-treenode-selectable':tree.selectionMode,'p-highlight':isSelected()}\" (click)=\"onNodeClick($event)\" (contextmenu)=\"onNodeRightClick($event)\"\n (touchend)=\"onNodeTouchEnd()\" (keydown)=\"onNodeKeydown($event)\">\n <span class=\"p-tree-toggler pi pi-fw\" [ngClass]=\"{'pi-plus':!node.expanded,'pi-minus':node.expanded}\" *ngIf=\"!isLeaf()\" (click)=\"toggle($event)\"></span>\n <span [class]=\"getIcon()\" *ngIf=\"node.icon||node.expandedIcon||node.collapsedIcon\"></span>\n <span class=\"p-treenode-label\">\n <span *ngIf=\"!tree.getTemplateForNode(node)\">{{node.label}}</span>\n <span *ngIf=\"tree.getTemplateForNode(node)\">\n <ng-container *ngTemplateOutlet=\"tree.getTemplateForNode(node); context: {$implicit: node}\"></ng-container>\n </span>\n </span>\n </div>\n </td>\n <td class=\"p-treenode-children-container\" *ngIf=\"node.children && node.expanded\" [style.display]=\"node.expanded ? 'table-cell' : 'none'\">\n <div class=\"p-treenode-children\">\n <p-treeNode *ngFor=\"let childNode of node.children;let firstChild=first;let lastChild=last; trackBy: tree.trackBy\" [node]=\"childNode\"\n [firstChild]=\"firstChild\" [lastChild]=\"lastChild\"></p-treeNode>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class UITreeNode implements OnInit {\n\n static ICON_CLASS: string = 'p-treenode-icon ';\n\n @Input() rowNode: any;\n\n @Input() node: TreeNode;\n\n @Input() parentNode: TreeNode;\n\n @Input() root: boolean;\n\n @Input() index: number;\n\n @Input() firstChild: boolean;\n\n @Input() lastChild: boolean;\n\n @Input() level: number;\n\n @Input() indentation: number;\n\n tree: Tree;\n\n constructor(@Inject(forwardRef(() => Tree)) tree) {\n this.tree = tree as Tree;\n }\n\n draghoverPrev: boolean;\n\n draghoverNext: boolean;\n\n draghoverNode: boolean\n\n ngOnInit() {\n this.node.parent = this.parentNode;\n\n if (this.parentNode) {\n this.tree.syncNodeOption(this.node, this.tree.value, 'parent', this.tree.getNodeWithKey(this.parentNode.key, this.tree.value));\n }\n }\n\n getIcon() {\n let icon: string;\n\n if (this.node.icon)\n icon = this.node.icon;\n else\n icon = this.node.expanded && this.node.children && this.node.children.length ? this.node.expandedIcon : this.node.collapsedIcon;\n\n return UITreeNode.ICON_CLASS + ' ' + icon;\n }\n\n isLeaf() {\n return this.tree.isNodeLeaf(this.node);\n }\n\n toggle(event: Event) {\n if (this.node.expanded)\n this.collapse(event);\n else\n this.expand(event);\n }\n\n expand(event: Event) {\n this.node.expanded = true;\n if (this.tree.virtualScroll) {\n this.tree.updateSerializedValue();\n }\n this.tree.onNodeExpand.emit({originalEvent: event, node: this.node});\n }\n\n collapse(event: Event) {\n this.node.expanded = false;\n if (this.tree.virtualScroll) {\n this.tree.updateSerializedValue();\n }\n this.tree.onNodeCollapse.emit({originalEvent: event, node: this.node});\n }\n\n onNodeClick(event: MouseEvent) {\n this.tree.onNodeClick(event, this.node);\n }\n\n onNodeKeydown(event: KeyboardEvent) {\n if (event.which === 13) {\n this.tree.onNodeClick(event, this.node);\n }\n }\n\n onNodeTouchEnd() {\n this.tree.onNodeTouchEnd();\n }\n\n onNodeRightClick(event: MouseEvent) {\n this.tree.onNodeRightClick(event, this.node);\n }\n\n isSelected() {\n return this.tree.isSelected(this.node);\n }\n\n onDropPoint(event: Event, position: number) {\n event.preventDefault();\n let dragNode = this.tree.dragNode;\n let dragNodeIndex = this.tree.dragNodeIndex;\n let dragNodeScope = this.tree.dragNodeScope;\n let isValidDropPointIndex = this.tree.dragNodeTree === this.tree ? (position === 1 || dragNodeIndex !== this.index - 1) : true;\n\n if (this.tree.allowDrop(dragNode, this.node, dragNodeScope) && isValidDropPointIndex) {\n let dropParams = {...this.createDropPointEventMetadata(position)};\n\n if (this.tree.validateDrop) {\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: this.node,\n dropIndex: this.index,\n accept: () => {\n this.processPointDrop(dropParams);\n }\n });\n }\n else {\n this.processPointDrop(dropParams);\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: this.node,\n dropIndex: this.index\n });\n }\n }\n\n this.draghoverPrev = false;\n this.draghoverNext = false;\n }\n\n processPointDrop(event) {\n let newNodeList = event.dropNode.parent ? event.dropNode.parent.children : this.tree.value;\n event.dragNodeSubNodes.splice(event.dragNodeIndex, 1);\n let dropIndex = this.index;\n\n if (event.position < 0) {\n dropIndex = (event.dragNodeSubNodes === newNodeList) ? ((event.dragNodeIndex > event.index) ? event.index : event.index - 1) : event.index;\n newNodeList.splice(dropIndex, 0, event.dragNode);\n }\n else {\n dropIndex = newNodeList.length;\n newNodeList.push(event.dragNode);\n }\n\n this.tree.dragDropService.stopDrag({\n node: event.dragNode,\n subNodes: event.dropNode.parent ? event.dropNode.parent.children : this.tree.value,\n index: event.dragNodeIndex\n });\n }\n\n createDropPointEventMetadata(position) {\n return {\n dragNode: this.tree.dragNode,\n dragNodeIndex: this.tree.dragNodeIndex,\n dragNodeSubNodes: this.tree.dragNodeSubNodes,\n dropNode: this.node,\n index: this.index,\n position: position\n };\n }\n\n onDropPointDragOver(event) {\n event.dataTransfer.dropEffect = 'move';\n event.preventDefault();\n }\n\n onDropPointDragEnter(event: Event, position: number) {\n if (this.tree.allowDrop(this.tree.dragNode, this.node, this.tree.dragNodeScope)) {\n if (position < 0)\n this.draghoverPrev = true;\n else\n this.draghoverNext = true;\n }\n }\n\n onDropPointDragLeave(event: Event) {\n this.draghoverPrev = false;\n this.draghoverNext = false;\n }\n\n onDragStart(event) {\n if (this.tree.draggableNodes && this.node.draggable !== false) {\n event.dataTransfer.setData(\"text\", \"data\");\n\n this.tree.dragDropService.startDrag({\n tree: this,\n node: this.node,\n subNodes: this.node.parent ? this.node.parent.children : this.tree.value,\n index: this.index,\n scope: this.tree.draggableScope\n });\n }\n else {\n event.preventDefault();\n }\n }\n\n onDragStop(event) {\n this.tree.dragDropService.stopDrag({\n node: this.node,\n subNodes: this.node.parent ? this.node.parent.children : this.tree.value,\n index: this.index\n });\n }\n\n onDropNodeDragOver(event) {\n event.dataTransfer.dropEffect = 'move';\n if (this.tree.droppableNodes) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n onDropNode(event) {\n if (this.tree.droppableNodes && this.node.droppable !== false) {\n let dragNode = this.tree.dragNode;\n\n if (this.tree.allowDrop(dragNode, this.node, this.tree.dragNodeScope)) {\n let dropParams = {...this.createDropNodeEventMetadata()};\n\n if (this.tree.validateDrop) {\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: this.node,\n index: this.index,\n accept: () => {\n this.processNodeDrop(dropParams);\n }\n });\n }\n else {\n this.processNodeDrop(dropParams);\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: this.node,\n index: this.index\n });\n }\n }\n }\n\n event.preventDefault();\n event.stopPropagation();\n this.draghoverNode = false;\n }\n\n createDropNodeEventMetadata() {\n return {\n dragNode: this.tree.dragNode,\n dragNodeIndex: this.tree.dragNodeIndex,\n dragNodeSubNodes: this.tree.dragNodeSubNodes,\n dropNode: this.node\n };\n }\n\n processNodeDrop(event) {\n let dragNodeIndex = event.dragNodeIndex;\n event.dragNodeSubNodes.splice(dragNodeIndex, 1);\n\n if (event.dropNode.children)\n event.dropNode.children.push(event.dragNode);\n else\n event.dropNode.children = [event.dragNode];\n\n this.tree.dragDropService.stopDrag({\n node: event.dragNode,\n subNodes: event.dropNode.parent ? event.dropNode.parent.children : this.tree.value,\n index: dragNodeIndex\n });\n }\n\n onDropNodeDragEnter(event) {\n if (this.tree.droppableNodes && this.node.droppable !== false && this.tree.allowDrop(this.tree.dragNode, this.node, this.tree.dragNodeScope)) {\n this.draghoverNode = true;\n }\n }\n\n onDropNodeDragLeave(event) {\n if (this.tree.droppableNodes) {\n let rect = event.currentTarget.getBoundingClientRect();\n if (event.x > rect.left + rect.width || event.x < rect.left || event.y >= Math.floor(rect.top + rect.height) || event.y < rect.top) {\n this.draghoverNode = false;\n }\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n const nodeElement = (<HTMLDivElement> event.target).parentElement.parentElement;\n\n if (nodeElement.nodeName !== 'P-TREENODE' || (this.tree.contextMenu && this.tree.contextMenu.containerViewChild.nativeElement.style.display === 'block')) {\n return;\n }\n\n switch (event.which) {\n //down arrow\n case 40:\n const listElement = (this.tree.droppableNodes) ? nodeElement.children[1].children[1] : nodeElement.children[0].children[1];\n if (listElement && listElement.children.length > 0) {\n this.focusNode(listElement.children[0]);\n }\n else {\n const nextNodeElement = nodeElement.nextElementSibling;\n if (nextNodeElement) {\n this.focusNode(nextNodeElement);\n }\n else {\n let nextSiblingAncestor = this.findNextSiblingOfAncestor(nodeElement);\n if (nextSiblingAncestor) {\n this.focusNode(nextSiblingAncestor);\n }\n }\n }\n\n event.preventDefault();\n break;\n\n //up arrow\n case 38:\n if (nodeElement.previousElementSibling) {\n this.focusNode(this.findLastVisibleDescendant(nodeElement.previousElementSibling));\n }\n else {\n let parentNodeElement = this.getParentNodeElement(nodeElement);\n if (parentNodeElement) {\n this.focusNode(parentNodeElement);\n }\n }\n\n event.preventDefault();\n break;\n\n //right arrow\n case 39:\n if (!this.node.expanded && !this.tree.isNodeLeaf(this.node)) {\n this.expand(event);\n }\n\n event.preventDefault();\n break;\n\n //left arrow\n case 37:\n if (this.node.expanded) {\n this.collapse(event);\n }\n else {\n let parentNodeElement = this.getParentNodeElement(nodeElement);\n if (parentNodeElement) {\n this.focusNode(parentNodeElement);\n }\n }\n\n event.preventDefault();\n break;\n\n //enter\n case 13:\n this.tree.onNodeClick(event, this.node);\n event.preventDefault();\n break;\n\n default:\n //no op\n break;\n }\n }\n\n findNextSiblingOfAncestor(nodeElement) {\n let parentNodeElement = this.getParentNodeElement(nodeElement);\n if (parentNodeElement) {\n if (parentNodeElement.nextElementSibling)\n return parentNodeElement.nextElementSibling;\n else\n return this.findNextSiblingOfAncestor(parentNodeElement);\n }\n else {\n return null;\n }\n }\n\n findLastVisibleDescendant(nodeElement) {\n const listElement = <HTMLElement> Array.from(nodeElement.children).find(el => DomHandler.hasClass(el, 'p-treenode'));\n const childrenListElement = listElement.children[1];\n if (childrenListElement && childrenListElement.children.length > 0) {\n const lastChildElement = childrenListElement.children[childrenListElement.children.length - 1];\n\n return this.findLastVisibleDescendant(lastChildElement);\n }\n else {\n return nodeElement;\n }\n }\n\n getParentNodeElement(nodeElement) {\n const parentNodeElement = nodeElement.parentElement.parentElement.parentElement;\n\n return parentNodeElement.tagName === 'P-TREENODE' ? parentNodeElement : null;\n }\n\n focusNode(element) {\n if (this.tree.droppableNodes)\n element.children[1].children[0].focus();\n else\n element.children[0].children[0].focus();\n }\n}\n\n@Component({\n selector: 'p-tree',\n template: `\n <div [ngClass]=\"{'p-tree p-component':true,'p-tree-selectable':selectionMode,\n 'p-treenode-dragover':dragHover,'p-tree-loading': loading, 'p-tree-flex-scrollable': scrollHeight === 'flex'}\" \n [ngStyle]=\"style\" [class]=\"styleClass\" *ngIf=\"!horizontal\"\n (drop)=\"onDrop($event)\" (dragover)=\"onDragOver($event)\" (dragenter)=\"onDragEnter($event)\" (dragleave)=\"onDragLeave($event)\">\n <div class=\"p-tree-loading-overlay p-component-overlay\" *ngIf=\"loading\">\n <i [class]=\"'p-tree-loading-icon pi-spin ' + loadingIcon\"></i>\n </div>\n <div *ngIf=\"filter\" class=\"p-tree-filter-container\">\n <input #filter type=\"text\" autocomplete=\"off\" class=\"p-tree-filter p-inputtext p-component\" [attr.placeholder]=\"filterPlaceholder\"\n (keydown.enter)=\"$event.preventDefault()\" (input)=\"_filter($event)\">\n <span class=\"p-tree-filter-icon pi pi-search\"></span>\n </div>\n <ng-container *ngIf=\"!virtualScroll; else virtualScrollList\">\n <div class=\"p-tree-wrapper\" [style.max-height]=\"scrollHeight\">\n <ul class=\"p-tree-container\" *ngIf=\"getRootNode()\" role=\"tree\" [attr.aria-label]=\"ariaLabel\" [attr.aria-labelledby]=\"ariaLabelledBy\">\n <p-treeNode *ngFor=\"let node of getRootNode(); let firstChild=first;let lastChild=last; let index=index; trackBy: trackBy\" [node]=\"node\"\n [firstChild]=\"firstChild\" [lastChild]=\"lastChild\" [index]=\"index\" [level]=\"0\"></p-treeNode>\n </ul>\n </div>\n </ng-container>\n <ng-template #virtualScrollList>\n <cdk-virtual-scroll-viewport class=\"p-tree-wrapper\" [style.height]=\"scrollHeight\" [itemSize]=\"virtualNodeHeight\" [minBufferPx]=\"minBufferPx\" [maxBufferPx]=\"maxBufferPx\">\n <ul class=\"p-tree-container\" *ngIf=\"getRootNode()\" role=\"tree\" [attr.aria-label]=\"ariaLabel\" [attr.aria-labelledby]=\"ariaLabelledBy\">\n <p-treeNode *cdkVirtualFor=\"let rowNode of serializedValue; let firstChild=first; let lastChild=last; let index=index; trackBy: trackBy; templateCacheSize: 0\" [level]=\"rowNode.level\"\n [rowNode]=\"rowNode\" [node]=\"rowNode.node\" [firstChild]=\"firstChild\" [lastChild]=\"lastChild\" [index]=\"index\" [style.height.px]=\"virtualNodeHeight\" [indentation]=\"indentation\"></p-treeNode>\n </ul>\n </cdk-virtual-scroll-viewport>\n </ng-template>\n <div class=\"p-tree-empty-message\" *ngIf=\"!loading && (value == null || value.length === 0)\">{{emptyMessage}}</div>\n </div>\n <div [ngClass]=\"{'p-tree p-tree-horizontal p-component':true,'p-tree-selectable':selectionMode}\" [ngStyle]=\"style\" [class]=\"styleClass\" *ngIf=\"horizontal\">\n <div class=\"p-tree-loading-mask p-component-overlay\" *ngIf=\"loading\">\n <i [class]=\"'p-tree-loading-icon pi-spin ' + loadingIcon\"></i>\n </div>\n <table *ngIf=\"value&&value[0]\">\n <p-treeNode [node]=\"value[0]\" [root]=\"true\"></p-treeNode>\n </table>\n <div class=\"p-tree-empty-message\" *ngIf=\"!loading && (value == null || value.length === 0)\">{{emptyMessage}}</div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./tree.css']\n})\nexport class Tree implements OnInit,AfterContentInit,OnChanges,OnDestroy,BlockableUI {\n\n @Input() value: TreeNode[];\n\n @Input() selectionMode: string;\n\n @Input() selection: any;\n\n @Output() selectionChange: EventEmitter<any> = new EventEmitter();\n\n @Output() onNodeSelect: EventEmitter<any> = new EventEmitter();\n\n @Output() onNodeUnselect: EventEmitter<any> = new EventEmitter();\n\n @Output() onNodeExpand: EventEmitter<any> = new EventEmitter();\n\n @Output() onNodeCollapse: EventEmitter<any> = new EventEmitter();\n\n @Output() onNodeContextMenuSelect: EventEmitter<any> = new EventEmitter();\n\n @Output() onNodeDrop: EventEmitter<any> = new EventEmitter();\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() contextMenu: any;\n\n @Input() layout: string = 'vertical';\n\n @Input() draggableScope: any;\n\n @Input() droppableScope: any;\n\n @Input() draggableNodes: boolean;\n\n @Input() droppableNodes: boolean;\n\n @Input() metaKeySelection: boolean = true;\n\n @Input() propagateSelectionUp: boolean = true;\n\n @Input() propagateSelectionDown: boolean = true;\n\n @Input() loading: boolean;\n\n @Input() loadingIcon: string = 'pi pi-spinner';\n\n @Input() emptyMessage: string = 'No records found';\n\n @Input() ariaLabel: string;\n\n @Input() ariaLabelledBy: string;\n\n @Input() validateDrop: boolean;\n\n @Input() filter: boolean;\n\n @Input() filterBy: string = 'label';\n\n @Input() filterMode: string = 'lenient';\n\n @Input() filterPlaceholder: string;\n\n @Input() filterLocale: string;\n\n @Input() scrollHeight: string;\n\n @Input() virtualScroll: boolean;\n\n @Input() virtualNodeHeight: string;\n\n @Input() minBufferPx: number;\n\n @Input() maxBufferPx: number;\n\n @Input() indentation: number = 1.5;\n\n @Input() trackBy: Function = (index: number, item: any) => item;\n\n @Output() onFilter: EventEmitter<any> = new EventEmitter();\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n @ViewChild(CdkVirtualScrollViewport) virtualScrollBody: CdkVirtualScrollViewport;\n\n serializedValue: any[];\n\n public templateMap: any;\n\n public nodeTouched: boolean;\n\n public dragNodeTree: Tree;\n\n public dragNode: TreeNode;\n\n public dragNodeSubNodes: TreeNode[];\n\n public dragNodeIndex: number;\n\n public dragNodeScope: any;\n\n public dragHover: boolean;\n\n public dragStartSubscription: Subscription;\n\n public dragStopSubscription: Subscription;\n\n public filteredNodes: TreeNode[];\n\n constructor(public el: ElementRef, @Optional() public dragDropService: TreeDragDropService) {}\n\n ngOnInit() {\n if (this.droppableNodes) {\n this.dragStartSubscription = this.dragDropService.dragStart$.subscribe(\n event => {\n this.dragNodeTree = event.tree;\n this.dragNode = event.node;\n this.dragNodeSubNodes = event.subNodes;\n this.dragNodeIndex = event.index;\n this.dragNodeScope = event.scope;\n });\n\n this.dragStopSubscription = this.dragDropService.dragStop$.subscribe(\n event => {\n this.dragNodeTree = null;\n this.dragNode = null;\n this.dragNodeSubNodes = null;\n this.dragNodeIndex = null;\n this.dragNodeScope = null;\n this.dragHover = false;\n });\n }\n }\n\n ngOnChanges(simpleChange: SimpleChanges) {\n if (simpleChange.value) {\n this.updateSerializedValue();\n }\n\n if (simpleChange.scrollHeight && this.virtualScrollBody) {\n this.virtualScrollBody.ngOnInit();\n }\n }\n\n get horizontal(): boolean {\n return this.layout == 'horizontal';\n }\n\n ngAfterContentInit() {\n if (this.templates.length) {\n this.templateMap = {};\n }\n\n this.templates.forEach((item) => {\n this.templateMap[item.name] = item.template;\n });\n }\n\n updateSerializedValue() {\n this.serializedValue = [];\n this.serializeNodes(null, this.getRootNode(), 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 onNodeClick(event, node: TreeNode) {\n let eventTarget = (<Element> event.target);\n\n if (DomHandler.hasClass(eventTarget, 'p-tree-toggler') || DomHandler.hasClass(eventTarget, 'p-tree-toggler-icon')) {\n return;\n }\n else if (this.selectionMode) {\n if (node.selectable === false) {\n return;\n }\n\n if (this.hasFilteredNodes()) {\n node = this.getNodeWithKey(node.key, this.value);\n\n if (!node) {\n return;\n }\n }\n\n let index = this.findIndexInSelection(node);\n let selected = (index >= 0);\n\n if (this.isCheckboxSelectionMode()) {\n if (selected) {\n if (this.propagateSelectionDown)\n this.propagateDown(node, false);\n else\n this.selection = this.selection.filter((val,i) => i!=index);\n\n if (this.propagateSelectionUp && node.parent) {\n this.propagateUp(node.parent, false);\n }\n\n this.selectionChange.emit(this.selection);\n this.onNodeUnselect.emit({originalEvent: event, node: node});\n }\n else {\n if (this.propagateSelectionDown)\n this.propagateDown(node, true);\n else\n this.selection = [...this.selection||[],node];\n\n if (this.propagateSelectionUp && node.parent) {\n this.propagateUp(node.parent, true);\n }\n\n this.selectionChange.emit(this.selection);\n this.onNodeSelect.emit({originalEvent: event, node: node});\n }\n }\n else {\n let metaSelection = this.nodeTouched ? false : this.metaKeySelection;\n\n if (metaSelection) {\n let metaKey = (event.metaKey||event.ctrlKey);\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this.selectionChange.emit(null);\n }\n else {\n this.selection = this.selection.filter((val,i) => i!=index);\n this.selectionChange.emit(this.selection);\n }\n\n this.onNodeUnselect.emit({originalEvent: event, node: node});\n }\n else {\n if (this.isSingleSelectionMode()) {\n this.selectionChange.emit(node);\n }\n else if (this.isMultipleSelectionMode()) {\n this.selection = (!metaKey) ? [] : this.selection||[];\n this.selection = [...this.selection,node];\n this.selectionChange.emit(this.selection);\n }\n\n this.onNodeSelect.emit({originalEvent: event, node: node});\n }\n }\n else {\n if (this.isSingleSelectionMode()) {\n if (selected) {\n this.selection = null;\n this.onNodeUnselect.emit({originalEvent: event, node: node});\n }\n else {\n this.selection = node;\n this.onNodeSelect.emit({originalEvent: event, node: node});\n }\n }\n else {\n if (selected) {\n this.selection = this.selection.filter((val,i) => i!=index);\n this.onNodeUnselect.emit({originalEvent: event, node: node});\n }\n else {\n this.selection = [...this.selection||[],node];\n this.onNodeSelect.emit({originalEvent: event, node: node});\n }\n }\n\n this.selectionChange.emit(this.selection);\n }\n }\n }\n\n this.nodeTouched = false;\n }\n\n onNodeTouchEnd() {\n this.nodeTouched = true;\n }\n\n onNodeRightClick(event: MouseEvent, node: TreeNode) {\n if (this.contextMenu) {\n let eventTarget = (<Element> event.target);\n\n if (eventTarget.className && eventTarget.className.indexOf('p-tree-toggler') === 0) {\n return;\n }\n else {\n let index = this.findIndexInSelection(node);\n let selected = (index >= 0);\n\n if (!selected) {\n if (this.isSingleSelectionMode())\n this.selectionChange.emit(node);\n else\n this.selectionChange.emit([node]);\n }\n\n this.contextMenu.show(event);\n this.onNodeContextMenuSelect.emit({originalEvent: event, node: node});\n }\n }\n }\n\n findIndexInSelection(node: TreeNode) {\n let index: number = -1;\n\n if (this.selectionMode && this.selection) {\n if (this.isSingleSelectionMode()) {\n let areNodesEqual = (this.selection.key && this.selection.key === node.key) || this.selection == node;\n index = areNodesEqual ? 0 : - 1;\n }\n else {\n for(let i = 0; i < this.selection.length; i++) {\n let selectedNode = this.selection[i];\n let areNodesEqual = (selectedNode.key && selectedNode.key === node.key) || selectedNode == node;\n if (areNodesEqual) {\n index = i;\n break;\n }\n }\n }\n }\n\n return index;\n }\n\n syncNodeOption(node, parentNodes, option, value?: any) {\n // to synchronize the node option between the filtered nodes and the original nodes(this.value)\n const _node = this.hasFilteredNodes() ? this.getNodeWithKey(node.key, parentNodes) : null;\n if (_node) {\n _node[option] = value||node[option];\n }\n }\n\n hasFilteredNodes() {\n return this.filter && this.filteredNodes && this.filteredNodes.length;\n }\n\n getNodeWithKey(key: string, nodes: TreeNode[]) {\n for (let node of nodes) {\n if (node.key === key) {\n return node;\n }\n\n if (node.children) {\n let matchedNode = this.getNodeWithKey(key, node.children);\n if (matchedNode) {\n return matchedNode;\n }\n }\n }\n }\n\n propagateUp(node: TreeNode, select: boolean) {\n if (node.children && node.children.length) {\n let selectedCount: number = 0;\n let childPartialSelected: boolean = false;\n for(let child of node.children) {\n if (this.isSelected(child)) {\n selectedCount++;\n }\n else if (child.partialSelected) {\n childPartialSelected = true;\n }\n }\n\n if (select && selectedCount == node.children.length) {\n this.selection = [...this.selection||[],node];\n node.partialSelected = false;\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 }\n\n if (childPartialSelected || selectedCount > 0 && selectedCount != node.children.length)\n node.partialSelected = true;\n else\n node.partialSelected = false;\n }\n\n this.syncNodeOption(node, this.filteredNodes, 'partialSelected');\n }\n\n let parent = node.parent;\n if (parent) {\n this.propagateUp(parent, select);\n }\n }\n\n propagateDown(node: TreeNode, select: boolean) {\n let index = this.findIndexInSelection(node);\n\n if (select && index == -1) {\n this.selection = [...this.selection||[],node];\n }\n else if (!select && index > -1) {\n this.selection = this.selection.filter((val,i) => i!=index);\n }\n\n node.partialSelected = false;\n\n this.syncNodeOption(node, this.filteredNodes, 'partialSelected');\n\n if (node.children && node.children.length) {\n for(let child of node.children) {\n this.propagateDown(child, select);\n }\n }\n }\n\n isSelected(node: TreeNode) {\n return this.findIndexInSelection(node) != -1;\n }\n\n isSingleSelectionMode() {\n return this.selectionMode && this.selectionMode == 'single';\n }\n\n isMultipleSelectionMode() {\n return this.selectionMode && this.selectionMode == 'multiple';\n }\n\n isCheckboxSelectionMode() {\n return this.selectionMode && this.selectionMode == 'checkbox';\n }\n\n isNodeLeaf(node) {\n return node.leaf == false ? false : !(node.children && node.children.length);\n }\n\n getRootNode() {\n return this.filteredNodes ? this.filteredNodes : this.value;\n }\n\n getTemplateForNode(node: TreeNode): TemplateRef<any> {\n if (this.templateMap)\n return node.type ? this.templateMap[node.type] : this.templateMap['default'];\n else\n return null;\n }\n\n onDragOver(event) {\n if (this.droppableNodes && (!this.value || this.value.length === 0)) {\n event.dataTransfer.dropEffect = 'move';\n event.preventDefault();\n }\n }\n\n onDrop(event) {\n if (this.droppableNodes && (!this.value || this.value.length === 0)) {\n event.preventDefault();\n let dragNode = this.dragNode;\n if (this.allowDrop(dragNode, null, this.dragNodeScope)) {\n let dragNodeIndex = this.dragNodeIndex;\n this.dragNodeSubNodes.splice(dragNodeIndex, 1);\n this.value = this.value||[];\n this.value.push(dragNode);\n\n this.dragDropService.stopDrag({\n node: dragNode\n });\n }\n }\n }\n\n onDragEnter(event) {\n if (this.droppableNodes && this.allowDrop(this.dragNode, null, this.dragNodeScope)) {\n this.dragHover = true;\n }\n }\n\n onDragLeave(event) {\n if (this.droppableNodes) {\n let rect = event.currentTarget.getBoundingClientRect();\n if (event.x > rect.left + rect.width || event.x < rect.left || event.y > rect.top + rect.height || event.y < rect.top) {\n this.dragHover = false;\n }\n }\n }\n\n allowDrop(dragNode: TreeNode, dropNode: TreeNode, dragNodeScope: any): boolean {\n if (!dragNode) {\n //prevent random html elements to be dragged\n return false;\n }\n else if (this.isValidDragScope(dragNodeScope)) {\n let allow: boolean = true;\n if (dropNode) {\n if (dragNode === dropNode) {\n allow = false;\n }\n else {\n let parent = dropNode.parent;\n while(parent != null) {\n if (parent === dragNode) {\n allow = false;\n break;\n }\n parent = parent.parent;\n }\n }\n }\n\n return allow;\n }\n else {\n return false;\n }\n }\n\n isValidDragScope(dragScope: any): boolean {\n let dropScope = this.droppableScope;\n\n if (dropScope) {\n if (typeof dropScope === 'string') {\n if (typeof dragScope === 'string')\n return dropScope === dragScope;\n else if (dragScope instanceof Array)\n return (<Array<any>>dragScope).indexOf(dropScope) != -1;\n }\n else if (dropScope instanceof Array) {\n if (typeof dragScope === 'string') {\n return (<Array<any>>dropScope).indexOf(dragScope) != -1;\n }\n else if (dragScope instanceof Array) {\n for(let s of dropScope) {\n for(let ds of dragScope) {\n if (s === ds) {\n return true;\n }\n }\n }\n }\n }\n return false;\n }\n else {\n return true;\n }\n }\n\n _filter(event) {\n let filterValue = event.target.value;\n if (filterValue === '') {\n this.filteredNodes = null;\n }\n else {\n this.filteredNodes = [];\n const searchFields: string[] = this.filterBy.split(',');\n const filterText = ObjectUtils.removeAccents(filterValue).toLocaleLowerCase(this.filterLocale);\n const isStrictMode = this.filterMode === 'strict';\n for(let node of this.value) {\n let copyNode = {...node};\n let paramsWithoutNode = {searchFields, filterText, isStrictMode};\n if ((isStrictMode && (this.findFilteredNodes(copyNode, paramsWithoutNode) || this.isFilterMatched(copyNode, paramsWithoutNode))) ||\n (!isStrictMode && (this.isFilterMatched(copyNode, paramsWithoutNode) || this.findFilteredNodes(copyNode, paramsWithoutNode)))) {\n this.filteredNodes.push(copyNode);\n }\n }\n }\n\n this.updateSerializedValue();\n this.onFilter.emit({\n filter: filterValue,\n filteredValue: this.filteredNodes\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 node.expanded = true;\n return true;\n }\n }\n }\n\n isFilterMatched(node, {searchFields, filterText, isStrictMode}) {\n let matched = false;\n for(let field of searchFields) {\n let fieldValue = ObjectUtils.removeAccents(String(ObjectUtils.resolveFieldData(node, field))).toLocaleLowerCase(this.filterLocale);\n if (fieldValue.indexOf(filterText) > -1) {\n matched = true;\n }\n }\n\n if (!matched || (isStrictMode && !this.isNodeLeaf(node))) {\n matched = this.findFilteredNodes(node, {searchFields, filterText, isStrictMode}) || matched;\n }\n\n return matched;\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n ngOnDestroy() {\n if (this.dragStartSubscription) {\n this.dragStartSubscription.unsubscribe();\n }\n\n if (this.dragStopSubscription) {\n this.dragStopSubscription.unsubscribe();\n }\n }\n}\n@NgModule({\n imports: [CommonModule,ScrollingModule,RippleModule],\n exports: [Tree,SharedModule,ScrollingModule],\n declarations: [Tree,UITreeNode]\n})\nexport class TreeModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}