primeng 13.4.1 → 14.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (679) hide show
  1. package/accordion/accordion.d.ts +2 -2
  2. package/api/lazyloadevent.d.ts +2 -0
  3. package/api/shared.d.ts +3 -3
  4. package/autocomplete/autocomplete.d.ts +26 -19
  5. package/autofocus/autofocus.d.ts +17 -0
  6. package/autofocus/package.json +10 -0
  7. package/autofocus/primeng-autofocus.d.ts +5 -0
  8. package/autofocus/public_api.d.ts +1 -0
  9. package/avatar/avatar.d.ts +1 -1
  10. package/avatargroup/avatargroup.d.ts +1 -1
  11. package/badge/badge.d.ts +2 -2
  12. package/blockui/blockui.d.ts +1 -1
  13. package/breadcrumb/breadcrumb.d.ts +1 -1
  14. package/button/button.d.ts +2 -2
  15. package/calendar/calendar.d.ts +6 -5
  16. package/captcha/captcha.d.ts +1 -1
  17. package/card/card.d.ts +1 -1
  18. package/carousel/carousel.d.ts +1 -1
  19. package/cascadeselect/cascadeselect.d.ts +2 -3
  20. package/chart/chart.d.ts +1 -1
  21. package/checkbox/checkbox.d.ts +1 -1
  22. package/chip/chip.d.ts +1 -1
  23. package/chips/chips.d.ts +1 -1
  24. package/codehighlighter/codehighlighter.d.ts +1 -1
  25. package/colorpicker/colorpicker.d.ts +1 -1
  26. package/confirmdialog/confirmdialog.d.ts +1 -1
  27. package/confirmpopup/confirmpopup.d.ts +1 -1
  28. package/contextmenu/contextmenu.d.ts +2 -2
  29. package/dataview/dataview.d.ts +2 -2
  30. package/defer/defer.d.ts +1 -1
  31. package/dialog/dialog.d.ts +1 -1
  32. package/divider/divider.d.ts +1 -1
  33. package/dock/dock.d.ts +1 -1
  34. package/dragdrop/dragdrop.d.ts +2 -2
  35. package/dropdown/dropdown.d.ts +24 -14
  36. package/dynamicdialog/dynamicdialog-config.d.ts +1 -0
  37. package/dynamicdialog/dynamicdialog.d.ts +1 -1
  38. package/dynamicdialog/dynamicdialogcontent.d.ts +1 -1
  39. package/editor/editor.d.ts +1 -1
  40. package/esm2020/accordion/accordion.mjs +18 -20
  41. package/esm2020/api/confirmationservice.mjs +3 -3
  42. package/esm2020/api/contextmenuservice.mjs +3 -3
  43. package/esm2020/api/filterservice.mjs +3 -3
  44. package/esm2020/api/lazyloadevent.mjs +1 -1
  45. package/esm2020/api/messageservice.mjs +3 -3
  46. package/esm2020/api/overlayservice.mjs +3 -3
  47. package/esm2020/api/primengconfig.mjs +3 -3
  48. package/esm2020/api/shared.mjs +14 -14
  49. package/esm2020/api/treedragdropservice.mjs +3 -3
  50. package/esm2020/autocomplete/autocomplete.mjs +156 -130
  51. package/esm2020/autofocus/autofocus.mjs +52 -0
  52. package/esm2020/autofocus/primeng-autofocus.mjs +5 -0
  53. package/esm2020/autofocus/public_api.mjs +2 -0
  54. package/esm2020/avatar/avatar.mjs +9 -9
  55. package/esm2020/avatargroup/avatargroup.mjs +9 -9
  56. package/esm2020/badge/badge.mjs +14 -18
  57. package/esm2020/blockui/blockui.mjs +9 -9
  58. package/esm2020/breadcrumb/breadcrumb.mjs +11 -11
  59. package/esm2020/button/button.mjs +14 -14
  60. package/esm2020/calendar/calendar.mjs +18 -11
  61. package/esm2020/captcha/captcha.mjs +8 -8
  62. package/esm2020/card/card.mjs +9 -9
  63. package/esm2020/carousel/carousel.mjs +9 -9
  64. package/esm2020/cascadeselect/cascadeselect.mjs +20 -21
  65. package/esm2020/chart/chart.mjs +8 -8
  66. package/esm2020/checkbox/checkbox.mjs +9 -9
  67. package/esm2020/chip/chip.mjs +9 -9
  68. package/esm2020/chips/chips.mjs +9 -9
  69. package/esm2020/codehighlighter/codehighlighter.mjs +8 -8
  70. package/esm2020/colorpicker/colorpicker.mjs +12 -10
  71. package/esm2020/confirmdialog/confirmdialog.mjs +13 -13
  72. package/esm2020/confirmpopup/confirmpopup.mjs +12 -10
  73. package/esm2020/contextmenu/contextmenu.mjs +20 -15
  74. package/esm2020/dataview/dataview.mjs +15 -15
  75. package/esm2020/defer/defer.mjs +8 -8
  76. package/esm2020/dialog/dialog.mjs +11 -11
  77. package/esm2020/divider/divider.mjs +9 -9
  78. package/esm2020/dock/dock.mjs +9 -9
  79. package/esm2020/dragdrop/dragdrop.mjs +11 -11
  80. package/esm2020/dropdown/dropdown.mjs +186 -161
  81. package/esm2020/dynamicdialog/dialogservice.mjs +3 -3
  82. package/esm2020/dynamicdialog/dynamicdialog-config.mjs +1 -1
  83. package/esm2020/dynamicdialog/dynamicdialog.mjs +11 -11
  84. package/esm2020/dynamicdialog/dynamicdialogcontent.mjs +3 -3
  85. package/esm2020/editor/editor.mjs +9 -9
  86. package/esm2020/fieldset/fieldset.mjs +16 -18
  87. package/esm2020/fileupload/fileupload.mjs +13 -13
  88. package/esm2020/focustrap/focustrap.mjs +8 -8
  89. package/esm2020/fullcalendar/fullcalendar.mjs +8 -8
  90. package/esm2020/galleria/galleria.mjs +25 -25
  91. package/esm2020/gmap/gmap.mjs +8 -8
  92. package/esm2020/image/image.mjs +43 -29
  93. package/esm2020/inplace/inplace.mjs +15 -15
  94. package/esm2020/inputmask/inputmask.mjs +16 -14
  95. package/esm2020/inputnumber/inputnumber.mjs +9 -9
  96. package/esm2020/inputswitch/inputswitch.mjs +9 -9
  97. package/esm2020/inputtext/inputtext.mjs +8 -8
  98. package/esm2020/inputtextarea/inputtextarea.mjs +8 -8
  99. package/esm2020/keyfilter/keyfilter.mjs +8 -8
  100. package/esm2020/knob/knob.mjs +9 -9
  101. package/esm2020/lightbox/lightbox.mjs +9 -9
  102. package/esm2020/listbox/listbox.mjs +75 -44
  103. package/esm2020/megamenu/megamenu.mjs +22 -12
  104. package/esm2020/menu/menu.mjs +23 -17
  105. package/esm2020/menubar/menubar.mjs +22 -18
  106. package/esm2020/message/message.mjs +9 -9
  107. package/esm2020/messages/messages.mjs +14 -14
  108. package/esm2020/multiselect/multiselect.mjs +180 -116
  109. package/esm2020/orderlist/orderlist.mjs +44 -18
  110. package/esm2020/organizationchart/organizationchart.mjs +13 -13
  111. package/esm2020/overlaypanel/overlaypanel.mjs +27 -10
  112. package/esm2020/paginator/paginator.mjs +14 -14
  113. package/esm2020/panel/panel.mjs +16 -18
  114. package/esm2020/panelmenu/panelmenu.mjs +36 -32
  115. package/esm2020/password/password.mjs +16 -14
  116. package/esm2020/picklist/picklist.mjs +86 -37
  117. package/esm2020/progressbar/progressbar.mjs +9 -9
  118. package/esm2020/progressspinner/progressspinner.mjs +9 -9
  119. package/esm2020/radiobutton/radiobutton.mjs +12 -12
  120. package/esm2020/rating/rating.mjs +9 -9
  121. package/esm2020/ripple/ripple.mjs +8 -8
  122. package/esm2020/scroller/primeng-scroller.mjs +5 -0
  123. package/esm2020/scroller/public_api.mjs +2 -0
  124. package/esm2020/scroller/scroller.mjs +735 -0
  125. package/esm2020/scrollpanel/scrollpanel.mjs +9 -9
  126. package/esm2020/scrolltop/scrolltop.mjs +9 -9
  127. package/esm2020/selectbutton/selectbutton.mjs +9 -9
  128. package/esm2020/sidebar/sidebar.mjs +10 -10
  129. package/esm2020/skeleton/skeleton.mjs +9 -9
  130. package/esm2020/slidemenu/slidemenu.mjs +22 -16
  131. package/esm2020/slider/slider.mjs +9 -9
  132. package/esm2020/speeddial/speeddial.mjs +11 -11
  133. package/esm2020/spinner/spinner.mjs +9 -9
  134. package/esm2020/splitbutton/splitbutton.mjs +12 -12
  135. package/esm2020/splitter/splitter.mjs +9 -9
  136. package/esm2020/steps/steps.mjs +9 -9
  137. package/esm2020/styleclass/styleclass.mjs +8 -8
  138. package/esm2020/table/table.mjs +277 -259
  139. package/esm2020/tabmenu/tabmenu.mjs +51 -13
  140. package/esm2020/tabview/tabview.mjs +31 -19
  141. package/esm2020/tag/tag.mjs +9 -9
  142. package/esm2020/terminal/terminal.mjs +9 -9
  143. package/esm2020/terminal/terminalservice.mjs +3 -3
  144. package/esm2020/tieredmenu/tieredmenu.mjs +29 -18
  145. package/esm2020/timeline/timeline.mjs +9 -9
  146. package/esm2020/toast/toast.mjs +14 -14
  147. package/esm2020/togglebutton/togglebutton.mjs +11 -11
  148. package/esm2020/toolbar/toolbar.mjs +9 -9
  149. package/esm2020/tooltip/tooltip.mjs +14 -8
  150. package/esm2020/tree/tree.mjs +144 -83
  151. package/esm2020/treeselect/treeselect.mjs +14 -14
  152. package/esm2020/treetable/treetable.mjs +180 -155
  153. package/esm2020/tristatecheckbox/tristatecheckbox.mjs +9 -9
  154. package/esm2020/virtualscroller/virtualscroller.mjs +58 -99
  155. package/fesm2015/primeng-accordion.mjs +17 -19
  156. package/fesm2015/primeng-accordion.mjs.map +1 -1
  157. package/fesm2015/primeng-api.mjs +34 -34
  158. package/fesm2015/primeng-api.mjs.map +1 -1
  159. package/fesm2015/primeng-autocomplete.mjs +157 -130
  160. package/fesm2015/primeng-autocomplete.mjs.map +1 -1
  161. package/fesm2015/primeng-autofocus.mjs +59 -0
  162. package/fesm2015/primeng-autofocus.mjs.map +1 -0
  163. package/fesm2015/primeng-avatar.mjs +8 -8
  164. package/fesm2015/primeng-avatar.mjs.map +1 -1
  165. package/fesm2015/primeng-avatargroup.mjs +8 -8
  166. package/fesm2015/primeng-avatargroup.mjs.map +1 -1
  167. package/fesm2015/primeng-badge.mjs +13 -17
  168. package/fesm2015/primeng-badge.mjs.map +1 -1
  169. package/fesm2015/primeng-blockui.mjs +8 -8
  170. package/fesm2015/primeng-blockui.mjs.map +1 -1
  171. package/fesm2015/primeng-breadcrumb.mjs +10 -10
  172. package/fesm2015/primeng-breadcrumb.mjs.map +1 -1
  173. package/fesm2015/primeng-button.mjs +13 -13
  174. package/fesm2015/primeng-button.mjs.map +1 -1
  175. package/fesm2015/primeng-calendar.mjs +17 -10
  176. package/fesm2015/primeng-calendar.mjs.map +1 -1
  177. package/fesm2015/primeng-captcha.mjs +7 -7
  178. package/fesm2015/primeng-captcha.mjs.map +1 -1
  179. package/fesm2015/primeng-card.mjs +8 -8
  180. package/fesm2015/primeng-card.mjs.map +1 -1
  181. package/fesm2015/primeng-carousel.mjs +8 -8
  182. package/fesm2015/primeng-carousel.mjs.map +1 -1
  183. package/fesm2015/primeng-cascadeselect.mjs +19 -20
  184. package/fesm2015/primeng-cascadeselect.mjs.map +1 -1
  185. package/fesm2015/primeng-chart.mjs +7 -7
  186. package/fesm2015/primeng-chart.mjs.map +1 -1
  187. package/fesm2015/primeng-checkbox.mjs +8 -8
  188. package/fesm2015/primeng-checkbox.mjs.map +1 -1
  189. package/fesm2015/primeng-chip.mjs +8 -8
  190. package/fesm2015/primeng-chip.mjs.map +1 -1
  191. package/fesm2015/primeng-chips.mjs +8 -8
  192. package/fesm2015/primeng-chips.mjs.map +1 -1
  193. package/fesm2015/primeng-codehighlighter.mjs +7 -7
  194. package/fesm2015/primeng-codehighlighter.mjs.map +1 -1
  195. package/fesm2015/primeng-colorpicker.mjs +11 -9
  196. package/fesm2015/primeng-colorpicker.mjs.map +1 -1
  197. package/fesm2015/primeng-confirmdialog.mjs +12 -12
  198. package/fesm2015/primeng-confirmdialog.mjs.map +1 -1
  199. package/fesm2015/primeng-confirmpopup.mjs +11 -9
  200. package/fesm2015/primeng-confirmpopup.mjs.map +1 -1
  201. package/fesm2015/primeng-contextmenu.mjs +19 -14
  202. package/fesm2015/primeng-contextmenu.mjs.map +1 -1
  203. package/fesm2015/primeng-dataview.mjs +14 -14
  204. package/fesm2015/primeng-dataview.mjs.map +1 -1
  205. package/fesm2015/primeng-defer.mjs +7 -7
  206. package/fesm2015/primeng-defer.mjs.map +1 -1
  207. package/fesm2015/primeng-dialog.mjs +10 -10
  208. package/fesm2015/primeng-dialog.mjs.map +1 -1
  209. package/fesm2015/primeng-divider.mjs +8 -8
  210. package/fesm2015/primeng-divider.mjs.map +1 -1
  211. package/fesm2015/primeng-dock.mjs +8 -8
  212. package/fesm2015/primeng-dock.mjs.map +1 -1
  213. package/fesm2015/primeng-dragdrop.mjs +10 -10
  214. package/fesm2015/primeng-dragdrop.mjs.map +1 -1
  215. package/fesm2015/primeng-dropdown.mjs +185 -160
  216. package/fesm2015/primeng-dropdown.mjs.map +1 -1
  217. package/fesm2015/primeng-dynamicdialog.mjs +16 -16
  218. package/fesm2015/primeng-dynamicdialog.mjs.map +1 -1
  219. package/fesm2015/primeng-editor.mjs +8 -8
  220. package/fesm2015/primeng-editor.mjs.map +1 -1
  221. package/fesm2015/primeng-fieldset.mjs +15 -17
  222. package/fesm2015/primeng-fieldset.mjs.map +1 -1
  223. package/fesm2015/primeng-fileupload.mjs +12 -12
  224. package/fesm2015/primeng-fileupload.mjs.map +1 -1
  225. package/fesm2015/primeng-focustrap.mjs +7 -7
  226. package/fesm2015/primeng-focustrap.mjs.map +1 -1
  227. package/fesm2015/primeng-fullcalendar.mjs +7 -7
  228. package/fesm2015/primeng-fullcalendar.mjs.map +1 -1
  229. package/fesm2015/primeng-galleria.mjs +24 -24
  230. package/fesm2015/primeng-galleria.mjs.map +1 -1
  231. package/fesm2015/primeng-gmap.mjs +7 -7
  232. package/fesm2015/primeng-gmap.mjs.map +1 -1
  233. package/fesm2015/primeng-image.mjs +42 -28
  234. package/fesm2015/primeng-image.mjs.map +1 -1
  235. package/fesm2015/primeng-inplace.mjs +14 -14
  236. package/fesm2015/primeng-inplace.mjs.map +1 -1
  237. package/fesm2015/primeng-inputmask.mjs +15 -13
  238. package/fesm2015/primeng-inputmask.mjs.map +1 -1
  239. package/fesm2015/primeng-inputnumber.mjs +8 -8
  240. package/fesm2015/primeng-inputnumber.mjs.map +1 -1
  241. package/fesm2015/primeng-inputswitch.mjs +8 -8
  242. package/fesm2015/primeng-inputswitch.mjs.map +1 -1
  243. package/fesm2015/primeng-inputtext.mjs +7 -7
  244. package/fesm2015/primeng-inputtext.mjs.map +1 -1
  245. package/fesm2015/primeng-inputtextarea.mjs +7 -7
  246. package/fesm2015/primeng-inputtextarea.mjs.map +1 -1
  247. package/fesm2015/primeng-keyfilter.mjs +7 -7
  248. package/fesm2015/primeng-keyfilter.mjs.map +1 -1
  249. package/fesm2015/primeng-knob.mjs +8 -8
  250. package/fesm2015/primeng-knob.mjs.map +1 -1
  251. package/fesm2015/primeng-lightbox.mjs +8 -8
  252. package/fesm2015/primeng-lightbox.mjs.map +1 -1
  253. package/fesm2015/primeng-listbox.mjs +74 -43
  254. package/fesm2015/primeng-listbox.mjs.map +1 -1
  255. package/fesm2015/primeng-megamenu.mjs +21 -11
  256. package/fesm2015/primeng-megamenu.mjs.map +1 -1
  257. package/fesm2015/primeng-menu.mjs +22 -16
  258. package/fesm2015/primeng-menu.mjs.map +1 -1
  259. package/fesm2015/primeng-menubar.mjs +21 -17
  260. package/fesm2015/primeng-menubar.mjs.map +1 -1
  261. package/fesm2015/primeng-message.mjs +8 -8
  262. package/fesm2015/primeng-message.mjs.map +1 -1
  263. package/fesm2015/primeng-messages.mjs +13 -13
  264. package/fesm2015/primeng-messages.mjs.map +1 -1
  265. package/fesm2015/primeng-multiselect.mjs +180 -115
  266. package/fesm2015/primeng-multiselect.mjs.map +1 -1
  267. package/fesm2015/primeng-orderlist.mjs +43 -17
  268. package/fesm2015/primeng-orderlist.mjs.map +1 -1
  269. package/fesm2015/primeng-organizationchart.mjs +12 -12
  270. package/fesm2015/primeng-organizationchart.mjs.map +1 -1
  271. package/fesm2015/primeng-overlaypanel.mjs +26 -9
  272. package/fesm2015/primeng-overlaypanel.mjs.map +1 -1
  273. package/fesm2015/primeng-paginator.mjs +13 -13
  274. package/fesm2015/primeng-paginator.mjs.map +1 -1
  275. package/fesm2015/primeng-panel.mjs +15 -17
  276. package/fesm2015/primeng-panel.mjs.map +1 -1
  277. package/fesm2015/primeng-panelmenu.mjs +35 -31
  278. package/fesm2015/primeng-panelmenu.mjs.map +1 -1
  279. package/fesm2015/primeng-password.mjs +15 -13
  280. package/fesm2015/primeng-password.mjs.map +1 -1
  281. package/fesm2015/primeng-picklist.mjs +85 -36
  282. package/fesm2015/primeng-picklist.mjs.map +1 -1
  283. package/fesm2015/primeng-progressbar.mjs +8 -8
  284. package/fesm2015/primeng-progressbar.mjs.map +1 -1
  285. package/fesm2015/primeng-progressspinner.mjs +8 -8
  286. package/fesm2015/primeng-progressspinner.mjs.map +1 -1
  287. package/fesm2015/primeng-radiobutton.mjs +11 -11
  288. package/fesm2015/primeng-radiobutton.mjs.map +1 -1
  289. package/fesm2015/primeng-rating.mjs +8 -8
  290. package/fesm2015/primeng-rating.mjs.map +1 -1
  291. package/fesm2015/primeng-ripple.mjs +7 -7
  292. package/fesm2015/primeng-ripple.mjs.map +1 -1
  293. package/fesm2015/primeng-scroller.mjs +740 -0
  294. package/fesm2015/primeng-scroller.mjs.map +1 -0
  295. package/fesm2015/primeng-scrollpanel.mjs +8 -8
  296. package/fesm2015/primeng-scrollpanel.mjs.map +1 -1
  297. package/fesm2015/primeng-scrolltop.mjs +8 -8
  298. package/fesm2015/primeng-scrolltop.mjs.map +1 -1
  299. package/fesm2015/primeng-selectbutton.mjs +8 -8
  300. package/fesm2015/primeng-selectbutton.mjs.map +1 -1
  301. package/fesm2015/primeng-sidebar.mjs +9 -9
  302. package/fesm2015/primeng-sidebar.mjs.map +1 -1
  303. package/fesm2015/primeng-skeleton.mjs +8 -8
  304. package/fesm2015/primeng-skeleton.mjs.map +1 -1
  305. package/fesm2015/primeng-slidemenu.mjs +21 -15
  306. package/fesm2015/primeng-slidemenu.mjs.map +1 -1
  307. package/fesm2015/primeng-slider.mjs +8 -8
  308. package/fesm2015/primeng-slider.mjs.map +1 -1
  309. package/fesm2015/primeng-speeddial.mjs +10 -10
  310. package/fesm2015/primeng-speeddial.mjs.map +1 -1
  311. package/fesm2015/primeng-spinner.mjs +8 -8
  312. package/fesm2015/primeng-spinner.mjs.map +1 -1
  313. package/fesm2015/primeng-splitbutton.mjs +11 -11
  314. package/fesm2015/primeng-splitbutton.mjs.map +1 -1
  315. package/fesm2015/primeng-splitter.mjs +8 -8
  316. package/fesm2015/primeng-splitter.mjs.map +1 -1
  317. package/fesm2015/primeng-steps.mjs +8 -8
  318. package/fesm2015/primeng-steps.mjs.map +1 -1
  319. package/fesm2015/primeng-styleclass.mjs +7 -7
  320. package/fesm2015/primeng-styleclass.mjs.map +1 -1
  321. package/fesm2015/primeng-table.mjs +272 -258
  322. package/fesm2015/primeng-table.mjs.map +1 -1
  323. package/fesm2015/primeng-tabmenu.mjs +50 -12
  324. package/fesm2015/primeng-tabmenu.mjs.map +1 -1
  325. package/fesm2015/primeng-tabview.mjs +30 -18
  326. package/fesm2015/primeng-tabview.mjs.map +1 -1
  327. package/fesm2015/primeng-tag.mjs +8 -8
  328. package/fesm2015/primeng-tag.mjs.map +1 -1
  329. package/fesm2015/primeng-terminal.mjs +11 -11
  330. package/fesm2015/primeng-terminal.mjs.map +1 -1
  331. package/fesm2015/primeng-tieredmenu.mjs +28 -17
  332. package/fesm2015/primeng-tieredmenu.mjs.map +1 -1
  333. package/fesm2015/primeng-timeline.mjs +8 -8
  334. package/fesm2015/primeng-timeline.mjs.map +1 -1
  335. package/fesm2015/primeng-toast.mjs +13 -13
  336. package/fesm2015/primeng-toast.mjs.map +1 -1
  337. package/fesm2015/primeng-togglebutton.mjs +10 -10
  338. package/fesm2015/primeng-togglebutton.mjs.map +1 -1
  339. package/fesm2015/primeng-toolbar.mjs +8 -8
  340. package/fesm2015/primeng-toolbar.mjs.map +1 -1
  341. package/fesm2015/primeng-tooltip.mjs +13 -7
  342. package/fesm2015/primeng-tooltip.mjs.map +1 -1
  343. package/fesm2015/primeng-tree.mjs +143 -82
  344. package/fesm2015/primeng-tree.mjs.map +1 -1
  345. package/fesm2015/primeng-treeselect.mjs +13 -13
  346. package/fesm2015/primeng-treeselect.mjs.map +1 -1
  347. package/fesm2015/primeng-treetable.mjs +175 -154
  348. package/fesm2015/primeng-treetable.mjs.map +1 -1
  349. package/fesm2015/primeng-tristatecheckbox.mjs +8 -8
  350. package/fesm2015/primeng-tristatecheckbox.mjs.map +1 -1
  351. package/fesm2015/primeng-virtualscroller.mjs +53 -97
  352. package/fesm2015/primeng-virtualscroller.mjs.map +1 -1
  353. package/fesm2020/primeng-accordion.mjs +17 -19
  354. package/fesm2020/primeng-accordion.mjs.map +1 -1
  355. package/fesm2020/primeng-api.mjs +34 -34
  356. package/fesm2020/primeng-api.mjs.map +1 -1
  357. package/fesm2020/primeng-autocomplete.mjs +156 -130
  358. package/fesm2020/primeng-autocomplete.mjs.map +1 -1
  359. package/fesm2020/primeng-autofocus.mjs +59 -0
  360. package/fesm2020/primeng-autofocus.mjs.map +1 -0
  361. package/fesm2020/primeng-avatar.mjs +8 -8
  362. package/fesm2020/primeng-avatar.mjs.map +1 -1
  363. package/fesm2020/primeng-avatargroup.mjs +8 -8
  364. package/fesm2020/primeng-avatargroup.mjs.map +1 -1
  365. package/fesm2020/primeng-badge.mjs +13 -17
  366. package/fesm2020/primeng-badge.mjs.map +1 -1
  367. package/fesm2020/primeng-blockui.mjs +8 -8
  368. package/fesm2020/primeng-blockui.mjs.map +1 -1
  369. package/fesm2020/primeng-breadcrumb.mjs +10 -10
  370. package/fesm2020/primeng-breadcrumb.mjs.map +1 -1
  371. package/fesm2020/primeng-button.mjs +13 -13
  372. package/fesm2020/primeng-button.mjs.map +1 -1
  373. package/fesm2020/primeng-calendar.mjs +17 -10
  374. package/fesm2020/primeng-calendar.mjs.map +1 -1
  375. package/fesm2020/primeng-captcha.mjs +7 -7
  376. package/fesm2020/primeng-captcha.mjs.map +1 -1
  377. package/fesm2020/primeng-card.mjs +8 -8
  378. package/fesm2020/primeng-card.mjs.map +1 -1
  379. package/fesm2020/primeng-carousel.mjs +8 -8
  380. package/fesm2020/primeng-carousel.mjs.map +1 -1
  381. package/fesm2020/primeng-cascadeselect.mjs +19 -20
  382. package/fesm2020/primeng-cascadeselect.mjs.map +1 -1
  383. package/fesm2020/primeng-chart.mjs +7 -7
  384. package/fesm2020/primeng-chart.mjs.map +1 -1
  385. package/fesm2020/primeng-checkbox.mjs +8 -8
  386. package/fesm2020/primeng-checkbox.mjs.map +1 -1
  387. package/fesm2020/primeng-chip.mjs +8 -8
  388. package/fesm2020/primeng-chip.mjs.map +1 -1
  389. package/fesm2020/primeng-chips.mjs +8 -8
  390. package/fesm2020/primeng-chips.mjs.map +1 -1
  391. package/fesm2020/primeng-codehighlighter.mjs +7 -7
  392. package/fesm2020/primeng-codehighlighter.mjs.map +1 -1
  393. package/fesm2020/primeng-colorpicker.mjs +11 -9
  394. package/fesm2020/primeng-colorpicker.mjs.map +1 -1
  395. package/fesm2020/primeng-confirmdialog.mjs +12 -12
  396. package/fesm2020/primeng-confirmdialog.mjs.map +1 -1
  397. package/fesm2020/primeng-confirmpopup.mjs +11 -9
  398. package/fesm2020/primeng-confirmpopup.mjs.map +1 -1
  399. package/fesm2020/primeng-contextmenu.mjs +19 -14
  400. package/fesm2020/primeng-contextmenu.mjs.map +1 -1
  401. package/fesm2020/primeng-dataview.mjs +14 -14
  402. package/fesm2020/primeng-dataview.mjs.map +1 -1
  403. package/fesm2020/primeng-defer.mjs +7 -7
  404. package/fesm2020/primeng-defer.mjs.map +1 -1
  405. package/fesm2020/primeng-dialog.mjs +10 -10
  406. package/fesm2020/primeng-dialog.mjs.map +1 -1
  407. package/fesm2020/primeng-divider.mjs +8 -8
  408. package/fesm2020/primeng-divider.mjs.map +1 -1
  409. package/fesm2020/primeng-dock.mjs +8 -8
  410. package/fesm2020/primeng-dock.mjs.map +1 -1
  411. package/fesm2020/primeng-dragdrop.mjs +10 -10
  412. package/fesm2020/primeng-dragdrop.mjs.map +1 -1
  413. package/fesm2020/primeng-dropdown.mjs +185 -160
  414. package/fesm2020/primeng-dropdown.mjs.map +1 -1
  415. package/fesm2020/primeng-dynamicdialog.mjs +16 -16
  416. package/fesm2020/primeng-dynamicdialog.mjs.map +1 -1
  417. package/fesm2020/primeng-editor.mjs +8 -8
  418. package/fesm2020/primeng-editor.mjs.map +1 -1
  419. package/fesm2020/primeng-fieldset.mjs +15 -17
  420. package/fesm2020/primeng-fieldset.mjs.map +1 -1
  421. package/fesm2020/primeng-fileupload.mjs +12 -12
  422. package/fesm2020/primeng-fileupload.mjs.map +1 -1
  423. package/fesm2020/primeng-focustrap.mjs +7 -7
  424. package/fesm2020/primeng-focustrap.mjs.map +1 -1
  425. package/fesm2020/primeng-fullcalendar.mjs +7 -7
  426. package/fesm2020/primeng-fullcalendar.mjs.map +1 -1
  427. package/fesm2020/primeng-galleria.mjs +24 -24
  428. package/fesm2020/primeng-galleria.mjs.map +1 -1
  429. package/fesm2020/primeng-gmap.mjs +7 -7
  430. package/fesm2020/primeng-gmap.mjs.map +1 -1
  431. package/fesm2020/primeng-image.mjs +42 -28
  432. package/fesm2020/primeng-image.mjs.map +1 -1
  433. package/fesm2020/primeng-inplace.mjs +14 -14
  434. package/fesm2020/primeng-inplace.mjs.map +1 -1
  435. package/fesm2020/primeng-inputmask.mjs +15 -13
  436. package/fesm2020/primeng-inputmask.mjs.map +1 -1
  437. package/fesm2020/primeng-inputnumber.mjs +8 -8
  438. package/fesm2020/primeng-inputnumber.mjs.map +1 -1
  439. package/fesm2020/primeng-inputswitch.mjs +8 -8
  440. package/fesm2020/primeng-inputswitch.mjs.map +1 -1
  441. package/fesm2020/primeng-inputtext.mjs +7 -7
  442. package/fesm2020/primeng-inputtext.mjs.map +1 -1
  443. package/fesm2020/primeng-inputtextarea.mjs +7 -7
  444. package/fesm2020/primeng-inputtextarea.mjs.map +1 -1
  445. package/fesm2020/primeng-keyfilter.mjs +7 -7
  446. package/fesm2020/primeng-keyfilter.mjs.map +1 -1
  447. package/fesm2020/primeng-knob.mjs +8 -8
  448. package/fesm2020/primeng-knob.mjs.map +1 -1
  449. package/fesm2020/primeng-lightbox.mjs +8 -8
  450. package/fesm2020/primeng-lightbox.mjs.map +1 -1
  451. package/fesm2020/primeng-listbox.mjs +74 -43
  452. package/fesm2020/primeng-listbox.mjs.map +1 -1
  453. package/fesm2020/primeng-megamenu.mjs +21 -11
  454. package/fesm2020/primeng-megamenu.mjs.map +1 -1
  455. package/fesm2020/primeng-menu.mjs +22 -16
  456. package/fesm2020/primeng-menu.mjs.map +1 -1
  457. package/fesm2020/primeng-menubar.mjs +21 -17
  458. package/fesm2020/primeng-menubar.mjs.map +1 -1
  459. package/fesm2020/primeng-message.mjs +8 -8
  460. package/fesm2020/primeng-message.mjs.map +1 -1
  461. package/fesm2020/primeng-messages.mjs +13 -13
  462. package/fesm2020/primeng-messages.mjs.map +1 -1
  463. package/fesm2020/primeng-multiselect.mjs +179 -115
  464. package/fesm2020/primeng-multiselect.mjs.map +1 -1
  465. package/fesm2020/primeng-orderlist.mjs +43 -17
  466. package/fesm2020/primeng-orderlist.mjs.map +1 -1
  467. package/fesm2020/primeng-organizationchart.mjs +12 -12
  468. package/fesm2020/primeng-organizationchart.mjs.map +1 -1
  469. package/fesm2020/primeng-overlaypanel.mjs +26 -9
  470. package/fesm2020/primeng-overlaypanel.mjs.map +1 -1
  471. package/fesm2020/primeng-paginator.mjs +13 -13
  472. package/fesm2020/primeng-paginator.mjs.map +1 -1
  473. package/fesm2020/primeng-panel.mjs +15 -17
  474. package/fesm2020/primeng-panel.mjs.map +1 -1
  475. package/fesm2020/primeng-panelmenu.mjs +35 -31
  476. package/fesm2020/primeng-panelmenu.mjs.map +1 -1
  477. package/fesm2020/primeng-password.mjs +15 -13
  478. package/fesm2020/primeng-password.mjs.map +1 -1
  479. package/fesm2020/primeng-picklist.mjs +85 -36
  480. package/fesm2020/primeng-picklist.mjs.map +1 -1
  481. package/fesm2020/primeng-progressbar.mjs +8 -8
  482. package/fesm2020/primeng-progressbar.mjs.map +1 -1
  483. package/fesm2020/primeng-progressspinner.mjs +8 -8
  484. package/fesm2020/primeng-progressspinner.mjs.map +1 -1
  485. package/fesm2020/primeng-radiobutton.mjs +11 -11
  486. package/fesm2020/primeng-radiobutton.mjs.map +1 -1
  487. package/fesm2020/primeng-rating.mjs +8 -8
  488. package/fesm2020/primeng-rating.mjs.map +1 -1
  489. package/fesm2020/primeng-ripple.mjs +7 -7
  490. package/fesm2020/primeng-ripple.mjs.map +1 -1
  491. package/fesm2020/primeng-scroller.mjs +742 -0
  492. package/fesm2020/primeng-scroller.mjs.map +1 -0
  493. package/fesm2020/primeng-scrollpanel.mjs +8 -8
  494. package/fesm2020/primeng-scrollpanel.mjs.map +1 -1
  495. package/fesm2020/primeng-scrolltop.mjs +8 -8
  496. package/fesm2020/primeng-scrolltop.mjs.map +1 -1
  497. package/fesm2020/primeng-selectbutton.mjs +8 -8
  498. package/fesm2020/primeng-selectbutton.mjs.map +1 -1
  499. package/fesm2020/primeng-sidebar.mjs +9 -9
  500. package/fesm2020/primeng-sidebar.mjs.map +1 -1
  501. package/fesm2020/primeng-skeleton.mjs +8 -8
  502. package/fesm2020/primeng-skeleton.mjs.map +1 -1
  503. package/fesm2020/primeng-slidemenu.mjs +21 -15
  504. package/fesm2020/primeng-slidemenu.mjs.map +1 -1
  505. package/fesm2020/primeng-slider.mjs +8 -8
  506. package/fesm2020/primeng-slider.mjs.map +1 -1
  507. package/fesm2020/primeng-speeddial.mjs +10 -10
  508. package/fesm2020/primeng-speeddial.mjs.map +1 -1
  509. package/fesm2020/primeng-spinner.mjs +8 -8
  510. package/fesm2020/primeng-spinner.mjs.map +1 -1
  511. package/fesm2020/primeng-splitbutton.mjs +11 -11
  512. package/fesm2020/primeng-splitbutton.mjs.map +1 -1
  513. package/fesm2020/primeng-splitter.mjs +8 -8
  514. package/fesm2020/primeng-splitter.mjs.map +1 -1
  515. package/fesm2020/primeng-steps.mjs +8 -8
  516. package/fesm2020/primeng-steps.mjs.map +1 -1
  517. package/fesm2020/primeng-styleclass.mjs +7 -7
  518. package/fesm2020/primeng-styleclass.mjs.map +1 -1
  519. package/fesm2020/primeng-table.mjs +276 -258
  520. package/fesm2020/primeng-table.mjs.map +1 -1
  521. package/fesm2020/primeng-tabmenu.mjs +50 -12
  522. package/fesm2020/primeng-tabmenu.mjs.map +1 -1
  523. package/fesm2020/primeng-tabview.mjs +30 -18
  524. package/fesm2020/primeng-tabview.mjs.map +1 -1
  525. package/fesm2020/primeng-tag.mjs +8 -8
  526. package/fesm2020/primeng-tag.mjs.map +1 -1
  527. package/fesm2020/primeng-terminal.mjs +11 -11
  528. package/fesm2020/primeng-terminal.mjs.map +1 -1
  529. package/fesm2020/primeng-tieredmenu.mjs +28 -17
  530. package/fesm2020/primeng-tieredmenu.mjs.map +1 -1
  531. package/fesm2020/primeng-timeline.mjs +8 -8
  532. package/fesm2020/primeng-timeline.mjs.map +1 -1
  533. package/fesm2020/primeng-toast.mjs +13 -13
  534. package/fesm2020/primeng-toast.mjs.map +1 -1
  535. package/fesm2020/primeng-togglebutton.mjs +10 -10
  536. package/fesm2020/primeng-togglebutton.mjs.map +1 -1
  537. package/fesm2020/primeng-toolbar.mjs +8 -8
  538. package/fesm2020/primeng-toolbar.mjs.map +1 -1
  539. package/fesm2020/primeng-tooltip.mjs +13 -7
  540. package/fesm2020/primeng-tooltip.mjs.map +1 -1
  541. package/fesm2020/primeng-tree.mjs +143 -82
  542. package/fesm2020/primeng-tree.mjs.map +1 -1
  543. package/fesm2020/primeng-treeselect.mjs +13 -13
  544. package/fesm2020/primeng-treeselect.mjs.map +1 -1
  545. package/fesm2020/primeng-treetable.mjs +179 -154
  546. package/fesm2020/primeng-treetable.mjs.map +1 -1
  547. package/fesm2020/primeng-tristatecheckbox.mjs +8 -8
  548. package/fesm2020/primeng-tristatecheckbox.mjs.map +1 -1
  549. package/fesm2020/primeng-virtualscroller.mjs +56 -97
  550. package/fesm2020/primeng-virtualscroller.mjs.map +1 -1
  551. package/fieldset/fieldset.d.ts +1 -1
  552. package/fileupload/fileupload.d.ts +1 -1
  553. package/focustrap/focustrap.d.ts +1 -1
  554. package/fullcalendar/fullcalendar.d.ts +1 -1
  555. package/galleria/galleria.d.ts +5 -5
  556. package/gmap/gmap.d.ts +1 -1
  557. package/image/image.d.ts +6 -2
  558. package/inplace/inplace.d.ts +3 -3
  559. package/inputmask/inputmask.d.ts +3 -2
  560. package/inputnumber/inputnumber.d.ts +1 -1
  561. package/inputswitch/inputswitch.d.ts +1 -1
  562. package/inputtext/inputtext.d.ts +1 -1
  563. package/inputtextarea/inputtextarea.d.ts +1 -1
  564. package/keyfilter/keyfilter.d.ts +1 -1
  565. package/knob/knob.d.ts +1 -1
  566. package/lightbox/lightbox.d.ts +1 -1
  567. package/listbox/listbox.d.ts +11 -2
  568. package/megamenu/megamenu.d.ts +1 -1
  569. package/menu/menu.d.ts +2 -2
  570. package/menubar/menubar.d.ts +4 -3
  571. package/message/message.d.ts +1 -1
  572. package/messages/messages.d.ts +1 -1
  573. package/multiselect/multiselect.d.ts +26 -9
  574. package/orderlist/orderlist.d.ts +9 -1
  575. package/organizationchart/organizationchart.d.ts +2 -2
  576. package/overlaypanel/overlaypanel.d.ts +2 -1
  577. package/package.json +20 -4
  578. package/paginator/paginator.d.ts +1 -1
  579. package/panel/panel.d.ts +1 -1
  580. package/panelmenu/panelmenu.d.ts +2 -2
  581. package/password/password.d.ts +2 -2
  582. package/picklist/picklist.d.ts +14 -2
  583. package/progressbar/progressbar.d.ts +1 -1
  584. package/progressspinner/progressspinner.d.ts +1 -1
  585. package/radiobutton/radiobutton.d.ts +1 -1
  586. package/rating/rating.d.ts +1 -1
  587. package/resources/components/accordion/accordion.css +8 -0
  588. package/resources/components/fieldset/fieldset.css +8 -0
  589. package/resources/components/image/image.css +5 -0
  590. package/resources/components/inputtext/inputtext.css +16 -1
  591. package/resources/components/megamenu/megamenu.css +5 -0
  592. package/resources/components/menu/menu.css +5 -0
  593. package/resources/components/messages/messages.css +4 -0
  594. package/resources/components/orderlist/orderlist.css +1 -0
  595. package/resources/components/panel/panel.css +8 -0
  596. package/resources/components/panelmenu/panelmenu.css +10 -0
  597. package/resources/components/scroller/scroller.css +51 -0
  598. package/resources/components/table/table.css +12 -5
  599. package/resources/components/tree/tree.css +6 -1
  600. package/resources/components/treetable/treetable.css +11 -1
  601. package/resources/primeng.css +15 -1
  602. package/resources/primeng.min.css +1 -1
  603. package/resources/themes/arya-blue/theme.css +101 -14
  604. package/resources/themes/arya-green/theme.css +101 -14
  605. package/resources/themes/arya-orange/theme.css +101 -14
  606. package/resources/themes/arya-purple/theme.css +101 -14
  607. package/resources/themes/bootstrap4-dark-blue/theme.css +101 -14
  608. package/resources/themes/bootstrap4-dark-purple/theme.css +101 -14
  609. package/resources/themes/bootstrap4-light-blue/theme.css +100 -13
  610. package/resources/themes/bootstrap4-light-purple/theme.css +100 -13
  611. package/resources/themes/fluent-light/theme.css +101 -14
  612. package/resources/themes/lara-dark-blue/theme.css +101 -14
  613. package/resources/themes/lara-dark-indigo/theme.css +101 -14
  614. package/resources/themes/lara-dark-purple/theme.css +101 -14
  615. package/resources/themes/lara-dark-teal/theme.css +101 -14
  616. package/resources/themes/lara-light-blue/theme.css +101 -14
  617. package/resources/themes/lara-light-indigo/theme.css +101 -14
  618. package/resources/themes/lara-light-purple/theme.css +101 -14
  619. package/resources/themes/lara-light-teal/theme.css +101 -14
  620. package/resources/themes/luna-amber/theme.css +101 -14
  621. package/resources/themes/luna-blue/theme.css +101 -14
  622. package/resources/themes/luna-green/theme.css +101 -14
  623. package/resources/themes/luna-pink/theme.css +101 -14
  624. package/resources/themes/md-dark-deeppurple/theme.css +106 -18
  625. package/resources/themes/md-dark-indigo/theme.css +106 -18
  626. package/resources/themes/md-light-deeppurple/theme.css +106 -18
  627. package/resources/themes/md-light-indigo/theme.css +106 -18
  628. package/resources/themes/mdc-dark-deeppurple/theme.css +106 -18
  629. package/resources/themes/mdc-dark-indigo/theme.css +106 -18
  630. package/resources/themes/mdc-light-deeppurple/theme.css +106 -18
  631. package/resources/themes/mdc-light-indigo/theme.css +106 -18
  632. package/resources/themes/nova/theme.css +102 -15
  633. package/resources/themes/nova-accent/theme.css +102 -15
  634. package/resources/themes/nova-alt/theme.css +102 -15
  635. package/resources/themes/rhea/theme.css +102 -15
  636. package/resources/themes/saga-blue/theme.css +101 -14
  637. package/resources/themes/saga-green/theme.css +101 -14
  638. package/resources/themes/saga-orange/theme.css +101 -14
  639. package/resources/themes/saga-purple/theme.css +101 -14
  640. package/resources/themes/tailwind-light/theme.css +101 -14
  641. package/resources/themes/vela-blue/theme.css +101 -14
  642. package/resources/themes/vela-green/theme.css +101 -14
  643. package/resources/themes/vela-orange/theme.css +101 -14
  644. package/resources/themes/vela-purple/theme.css +101 -14
  645. package/ripple/ripple.d.ts +1 -1
  646. package/scroller/package.json +10 -0
  647. package/scroller/primeng-scroller.d.ts +5 -0
  648. package/scroller/public_api.d.ts +1 -0
  649. package/scroller/scroller.d.ts +223 -0
  650. package/scrollpanel/scrollpanel.d.ts +1 -1
  651. package/scrolltop/scrolltop.d.ts +1 -1
  652. package/selectbutton/selectbutton.d.ts +1 -1
  653. package/sidebar/sidebar.d.ts +1 -1
  654. package/skeleton/skeleton.d.ts +1 -1
  655. package/slidemenu/slidemenu.d.ts +2 -2
  656. package/slider/slider.d.ts +1 -1
  657. package/speeddial/speeddial.d.ts +1 -1
  658. package/spinner/spinner.d.ts +1 -1
  659. package/splitbutton/splitbutton.d.ts +1 -1
  660. package/splitter/splitter.d.ts +1 -1
  661. package/steps/steps.d.ts +1 -1
  662. package/styleclass/styleclass.d.ts +1 -1
  663. package/table/table.d.ts +50 -45
  664. package/tabmenu/tabmenu.d.ts +9 -4
  665. package/tabview/tabview.d.ts +5 -3
  666. package/tag/tag.d.ts +1 -1
  667. package/terminal/terminal.d.ts +1 -1
  668. package/tieredmenu/tieredmenu.d.ts +3 -3
  669. package/timeline/timeline.d.ts +1 -1
  670. package/toast/toast.d.ts +2 -2
  671. package/togglebutton/togglebutton.d.ts +1 -1
  672. package/toolbar/toolbar.d.ts +1 -1
  673. package/tooltip/tooltip.d.ts +2 -1
  674. package/tree/tree.d.ts +29 -17
  675. package/treeselect/treeselect.d.ts +1 -1
  676. package/treetable/treetable.d.ts +33 -25
  677. package/tristatecheckbox/tristatecheckbox.d.ts +1 -1
  678. package/virtualscroller/virtualscroller.d.ts +12 -27
  679. package/resources/components/virtualscroller/virtualscroller.css +0 -3
@@ -0,0 +1,740 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, ViewChild, ContentChildren, Output, NgModule } from '@angular/core';
3
+ import * as i1 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import { DomHandler } from 'primeng/dom';
6
+ import { PrimeTemplate } from 'primeng/api';
7
+
8
+ class Scroller {
9
+ constructor(cd, zone) {
10
+ this.cd = cd;
11
+ this.zone = zone;
12
+ this.onLazyLoad = new EventEmitter();
13
+ this.onScroll = new EventEmitter();
14
+ this.onScrollIndexChange = new EventEmitter();
15
+ this._tabindex = 0;
16
+ this._itemSize = 0;
17
+ this._orientation = 'vertical';
18
+ this._delay = 0;
19
+ this._resizeDelay = 10;
20
+ this._lazy = false;
21
+ this._disabled = false;
22
+ this._loaderDisabled = false;
23
+ this._showSpacer = true;
24
+ this._showLoader = false;
25
+ this._autoSize = false;
26
+ this.d_loading = false;
27
+ this.first = 0;
28
+ this.last = 0;
29
+ this.numItemsInViewport = 0;
30
+ this.lastScrollPos = 0;
31
+ this.loaderArr = [];
32
+ this.spacerStyle = {};
33
+ this.contentStyle = {};
34
+ this.initialized = false;
35
+ if (!this._disabled) {
36
+ this.zone.runOutsideAngular(() => {
37
+ this.windowResizeListener = this.onWindowResize.bind(this);
38
+ window.addEventListener('resize', this.windowResizeListener);
39
+ window.addEventListener('orientationchange', this.windowResizeListener);
40
+ });
41
+ }
42
+ }
43
+ get id() { return this._id; }
44
+ set id(val) { this._id = val; }
45
+ get style() { return this._style; }
46
+ set style(val) { this._style = val; }
47
+ get styleClass() { return this._styleClass; }
48
+ set styleClass(val) { this._styleClass = val; }
49
+ get tabindex() { return this._tabindex; }
50
+ set tabindex(val) { this._tabindex = val; }
51
+ get items() { return this._items; }
52
+ set items(val) { this._items = val; }
53
+ get itemSize() { return this._itemSize; }
54
+ set itemSize(val) { this._itemSize = val; }
55
+ get scrollHeight() { return this._scrollHeight; }
56
+ set scrollHeight(val) { this._scrollHeight = val; }
57
+ get scrollWidth() { return this._scrollWidth; }
58
+ set scrollWidth(val) { this._scrollWidth = val; }
59
+ get orientation() { return this._orientation; }
60
+ set orientation(val) { this._orientation = val; }
61
+ get delay() { return this._delay; }
62
+ set delay(val) { this._delay = val; }
63
+ get resizeDelay() { return this._resizeDelay; }
64
+ set resizeDelay(val) { this._resizeDelay = val; }
65
+ get lazy() { return this._lazy; }
66
+ set lazy(val) { this._lazy = val; }
67
+ get disabled() { return this._disabled; }
68
+ set disabled(val) { this._disabled = val; }
69
+ get loaderDisabled() { return this._loaderDisabled; }
70
+ set loaderDisabled(val) { this._loaderDisabled = val; }
71
+ get columns() { return this._columns; }
72
+ set columns(val) { this._columns = val; }
73
+ get showSpacer() { return this._showSpacer; }
74
+ set showSpacer(val) { this._showSpacer = val; }
75
+ get showLoader() { return this._showLoader; }
76
+ set showLoader(val) { this._showLoader = val; }
77
+ get numToleratedItems() { return this._numToleratedItems; }
78
+ set numToleratedItems(val) { this._numToleratedItems = val; }
79
+ get loading() { return this._loading; }
80
+ set loading(val) { this._loading = val; }
81
+ get autoSize() { return this._autoSize; }
82
+ set autoSize(val) { this._autoSize = val; }
83
+ get trackBy() { return this._trackBy; }
84
+ set trackBy(val) { this._trackBy = val; }
85
+ get options() { return this._options; }
86
+ set options(val) {
87
+ this._options = val;
88
+ if (val && typeof val === 'object') {
89
+ Object.entries(val).forEach(([k, v]) => this[`_${k}`] !== v && (this[`_${k}`] = v));
90
+ }
91
+ }
92
+ get vertical() {
93
+ return this._orientation === 'vertical';
94
+ }
95
+ get horizontal() {
96
+ return this._orientation === 'horizontal';
97
+ }
98
+ get both() {
99
+ return this._orientation === 'both';
100
+ }
101
+ get loadedItems() {
102
+ if (this._items && !this.d_loading) {
103
+ if (this.both)
104
+ return this._items.slice(this.first.rows, this.last.rows).map(item => this._columns ? item : item.slice(this.first.cols, this.last.cols));
105
+ else if (this.horizontal && this._columns)
106
+ return this._items;
107
+ else
108
+ return this._items.slice(this.first, this.last);
109
+ }
110
+ return [];
111
+ }
112
+ get loadedRows() {
113
+ return this.d_loading ? (this._loaderDisabled ? this.loaderArr : []) : this.loadedItems;
114
+ }
115
+ get loadedColumns() {
116
+ if (this._columns && (this.both || this.horizontal)) {
117
+ return this.d_loading && this._loaderDisabled ?
118
+ (this.both ? this.loaderArr[0] : this.loaderArr) :
119
+ this._columns.slice((this.both ? this.first.cols : this.first), (this.both ? this.last.cols : this.last));
120
+ }
121
+ return this._columns;
122
+ }
123
+ ngOnInit() {
124
+ this.setInitialState();
125
+ }
126
+ ngOnChanges(simpleChanges) {
127
+ let isLoadingChanged = false;
128
+ if (simpleChanges.loading) {
129
+ const { previousValue, currentValue } = simpleChanges.loading;
130
+ if (this.lazy && previousValue !== currentValue && currentValue !== this.d_loading) {
131
+ this.d_loading = currentValue;
132
+ isLoadingChanged = true;
133
+ }
134
+ }
135
+ if (this.initialized) {
136
+ const isChanged = !isLoadingChanged && (simpleChanges.items || simpleChanges.itemSize || simpleChanges.scrollHeight || simpleChanges.scrollWidth);
137
+ isChanged && this.init();
138
+ }
139
+ if (simpleChanges.orientation) {
140
+ this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;
141
+ }
142
+ if (simpleChanges.numToleratedItems) {
143
+ const { previousValue, currentValue } = simpleChanges.numToleratedItems;
144
+ if (previousValue !== currentValue && currentValue !== this.d_numToleratedItems) {
145
+ this.d_numToleratedItems = currentValue;
146
+ }
147
+ }
148
+ if (simpleChanges.options) {
149
+ const { previousValue, currentValue } = simpleChanges.options;
150
+ if (this.lazy && (previousValue === null || previousValue === void 0 ? void 0 : previousValue.loading) !== (currentValue === null || currentValue === void 0 ? void 0 : currentValue.loading) && (currentValue === null || currentValue === void 0 ? void 0 : currentValue.loading) !== this.d_loading) {
151
+ this.d_loading = currentValue.loading;
152
+ }
153
+ if ((previousValue === null || previousValue === void 0 ? void 0 : previousValue.numToleratedItems) !== (currentValue === null || currentValue === void 0 ? void 0 : currentValue.numToleratedItems) && (currentValue === null || currentValue === void 0 ? void 0 : currentValue.numToleratedItems) !== this.d_numToleratedItems) {
154
+ this.d_numToleratedItems = currentValue.numToleratedItems;
155
+ }
156
+ }
157
+ }
158
+ ngAfterContentInit() {
159
+ this.templates.forEach((item) => {
160
+ switch (item.getType()) {
161
+ case 'content':
162
+ this.contentTemplate = item.template;
163
+ break;
164
+ case 'item':
165
+ this.itemTemplate = item.template;
166
+ break;
167
+ case 'loader':
168
+ this.loaderTemplate = item.template;
169
+ break;
170
+ case 'loadericon':
171
+ this.loaderIconTemplate = item.template;
172
+ break;
173
+ default:
174
+ this.itemTemplate = item.template;
175
+ break;
176
+ }
177
+ });
178
+ }
179
+ ngAfterViewInit() {
180
+ this.setContentEl(this.contentEl);
181
+ this.init();
182
+ this.defaultWidth = DomHandler.getWidth(this.elementViewChild.nativeElement);
183
+ this.defaultHeight = DomHandler.getHeight(this.elementViewChild.nativeElement);
184
+ this.initialized = true;
185
+ }
186
+ ngAfterViewChecked() {
187
+ this.calculateAutoSize();
188
+ }
189
+ ngOnDestroy() {
190
+ if (this.windowResizeListener) {
191
+ window.removeEventListener('resize', this.windowResizeListener);
192
+ window.removeEventListener('orientationchange', this.windowResizeListener);
193
+ this.windowResizeListener = null;
194
+ }
195
+ }
196
+ init() {
197
+ if (!this._disabled) {
198
+ this.setSize();
199
+ this.calculateOptions();
200
+ this.setSpacerSize();
201
+ this.cd.detectChanges();
202
+ }
203
+ }
204
+ setContentEl(el) {
205
+ var _a, _b;
206
+ this.contentEl = el || ((_a = this.contentViewChild) === null || _a === void 0 ? void 0 : _a.nativeElement) || DomHandler.findSingle((_b = this.elementViewChild) === null || _b === void 0 ? void 0 : _b.nativeElement, '.p-scroller-content');
207
+ }
208
+ setInitialState() {
209
+ this.first = this.both ? { rows: 0, cols: 0 } : 0;
210
+ this.last = this.both ? { rows: 0, cols: 0 } : 0;
211
+ this.numItemsInViewport = this.both ? { rows: 0, cols: 0 } : 0;
212
+ this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;
213
+ this.d_loading = this._loading || false;
214
+ this.d_numToleratedItems = this._numToleratedItems;
215
+ }
216
+ getElementRef() {
217
+ return this.elementViewChild;
218
+ }
219
+ scrollTo(options) {
220
+ var _a, _b;
221
+ this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;
222
+ (_b = (_a = this.elementViewChild) === null || _a === void 0 ? void 0 : _a.nativeElement) === null || _b === void 0 ? void 0 : _b.scrollTo(options);
223
+ }
224
+ scrollToIndex(index, behavior = 'auto') {
225
+ const { numToleratedItems } = this.calculateNumItems();
226
+ const contentPos = this.getContentPosition();
227
+ const calculateFirst = (_index = 0, _numT) => (_index <= _numT ? 0 : _index);
228
+ const calculateCoord = (_first, _size, _cpos) => (_first * _size) + _cpos;
229
+ const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });
230
+ if (this.both) {
231
+ const newFirst = { rows: calculateFirst(index[0], numToleratedItems[0]), cols: calculateFirst(index[1], numToleratedItems[1]) };
232
+ if (newFirst.rows !== this.first.rows || newFirst.cols !== this.first.cols) {
233
+ scrollTo(calculateCoord(newFirst.cols, this._itemSize[1], contentPos.left), calculateCoord(newFirst.rows, this._itemSize[0], contentPos.top));
234
+ }
235
+ }
236
+ else {
237
+ const newFirst = calculateFirst(index, numToleratedItems);
238
+ if (newFirst !== this.first) {
239
+ this.horizontal ? scrollTo(calculateCoord(newFirst, this._itemSize, contentPos.left), 0) : scrollTo(0, calculateCoord(newFirst, this._itemSize, contentPos.top));
240
+ }
241
+ }
242
+ }
243
+ scrollInView(index, to, behavior = 'auto') {
244
+ if (to) {
245
+ const { first, viewport } = this.getRenderedRange();
246
+ const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });
247
+ const isToStart = to === 'to-start';
248
+ const isToEnd = to === 'to-end';
249
+ if (isToStart) {
250
+ if (this.both) {
251
+ if (viewport.first.rows - first.rows > index[0]) {
252
+ scrollTo(viewport.first.cols * this._itemSize[1], (viewport.first.rows - 1) * this._itemSize[0]);
253
+ }
254
+ else if (viewport.first.cols - first.cols > index[1]) {
255
+ scrollTo((viewport.first.cols - 1) * this._itemSize[1], viewport.first.rows * this._itemSize[0]);
256
+ }
257
+ }
258
+ else {
259
+ if (viewport.first - first > index) {
260
+ const pos = (viewport.first - 1) * this._itemSize;
261
+ this.horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);
262
+ }
263
+ }
264
+ }
265
+ else if (isToEnd) {
266
+ if (this.both) {
267
+ if (viewport.last.rows - first.rows <= index[0] + 1) {
268
+ scrollTo(viewport.first.cols * this._itemSize[1], (viewport.first.rows + 1) * this._itemSize[0]);
269
+ }
270
+ else if (viewport.last.cols - first.cols <= index[1] + 1) {
271
+ scrollTo((viewport.first.cols + 1) * this._itemSize[1], viewport.first.rows * this._itemSize[0]);
272
+ }
273
+ }
274
+ else {
275
+ if (viewport.last - first <= index + 1) {
276
+ const pos = (viewport.first + 1) * this._itemSize;
277
+ this.horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);
278
+ }
279
+ }
280
+ }
281
+ }
282
+ else {
283
+ this.scrollToIndex(index, behavior);
284
+ }
285
+ }
286
+ getRenderedRange() {
287
+ var _a;
288
+ const calculateFirstInViewport = (_pos, _size) => Math.floor(_pos / (_size || _pos));
289
+ let firstInViewport = this.first;
290
+ let lastInViewport = 0;
291
+ if ((_a = this.elementViewChild) === null || _a === void 0 ? void 0 : _a.nativeElement) {
292
+ const { scrollTop, scrollLeft } = this.elementViewChild.nativeElement;
293
+ if (this.both) {
294
+ firstInViewport = { rows: calculateFirstInViewport(scrollTop, this._itemSize[0]), cols: calculateFirstInViewport(scrollLeft, this._itemSize[1]) };
295
+ lastInViewport = { rows: firstInViewport.rows + this.numItemsInViewport.rows, cols: firstInViewport.cols + this.numItemsInViewport.cols };
296
+ }
297
+ else {
298
+ const scrollPos = this.horizontal ? scrollLeft : scrollTop;
299
+ firstInViewport = calculateFirstInViewport(scrollPos, this._itemSize);
300
+ lastInViewport = firstInViewport + this.numItemsInViewport;
301
+ }
302
+ }
303
+ return {
304
+ first: this.first,
305
+ last: this.last,
306
+ viewport: {
307
+ first: firstInViewport,
308
+ last: lastInViewport
309
+ }
310
+ };
311
+ }
312
+ calculateNumItems() {
313
+ var _a, _b;
314
+ const contentPos = this.getContentPosition();
315
+ const contentWidth = ((_a = this.elementViewChild) === null || _a === void 0 ? void 0 : _a.nativeElement) ? this.elementViewChild.nativeElement.offsetWidth - contentPos.left : 0;
316
+ const contentHeight = ((_b = this.elementViewChild) === null || _b === void 0 ? void 0 : _b.nativeElement) ? this.elementViewChild.nativeElement.offsetHeight - contentPos.top : 0;
317
+ const calculateNumItemsInViewport = (_contentSize, _itemSize) => Math.ceil(_contentSize / (_itemSize || _contentSize));
318
+ const calculateNumToleratedItems = (_numItems) => Math.ceil(_numItems / 2);
319
+ const numItemsInViewport = this.both ?
320
+ { rows: calculateNumItemsInViewport(contentHeight, this._itemSize[0]), cols: calculateNumItemsInViewport(contentWidth, this._itemSize[1]) } :
321
+ calculateNumItemsInViewport((this.horizontal ? contentWidth : contentHeight), this._itemSize);
322
+ const numToleratedItems = this.d_numToleratedItems || (this.both ?
323
+ [calculateNumToleratedItems(numItemsInViewport.rows), calculateNumToleratedItems(numItemsInViewport.cols)] :
324
+ calculateNumToleratedItems(numItemsInViewport));
325
+ return { numItemsInViewport, numToleratedItems };
326
+ }
327
+ calculateOptions() {
328
+ const { numItemsInViewport, numToleratedItems } = this.calculateNumItems();
329
+ const calculateLast = (_first, _num, _numT, _isCols = false) => this.getLast(_first + _num + ((_first < _numT ? 2 : 3) * _numT), _isCols);
330
+ const first = this.first;
331
+ const last = this.both ?
332
+ { rows: calculateLast(this.first.rows, numItemsInViewport.rows, numToleratedItems[0]), cols: calculateLast(this.first.cols, numItemsInViewport.cols, numToleratedItems[1], true) } :
333
+ calculateLast(this.first, numItemsInViewport, numToleratedItems);
334
+ this.last = last;
335
+ this.numItemsInViewport = numItemsInViewport;
336
+ this.d_numToleratedItems = numToleratedItems;
337
+ if (this.showLoader) {
338
+ this.loaderArr = this.both ?
339
+ Array.from({ length: numItemsInViewport.rows }).map(() => Array.from({ length: numItemsInViewport.cols })) :
340
+ Array.from({ length: numItemsInViewport });
341
+ }
342
+ if (this._lazy) {
343
+ this.handleEvents('onLazyLoad', { first, last });
344
+ }
345
+ }
346
+ calculateAutoSize() {
347
+ if (this._autoSize && !this.d_loading) {
348
+ Promise.resolve().then(() => {
349
+ if (this.contentEl) {
350
+ this.contentEl.style.minHeight = this.contentEl.style.minWidth = 'auto';
351
+ const { offsetWidth, offsetHeight } = this.contentEl;
352
+ (this.both || this.horizontal) && (this.elementViewChild.nativeElement.style.width = (offsetWidth < this.defaultWidth ? offsetWidth : this.defaultWidth) + 'px');
353
+ (this.both || this.vertical) && (this.elementViewChild.nativeElement.style.height = (offsetHeight < this.defaultHeight ? offsetHeight : this.defaultHeight) + 'px');
354
+ this.contentEl.style.minHeight = this.contentEl.style.minWidth = '';
355
+ }
356
+ });
357
+ }
358
+ }
359
+ getLast(last = 0, isCols = false) {
360
+ return this._items ? Math.min((isCols ? (this._columns || this._items[0]).length : this._items.length), last) : 0;
361
+ }
362
+ getContentPosition() {
363
+ if (this.contentEl) {
364
+ const style = getComputedStyle(this.contentEl);
365
+ const left = parseInt(style.paddingLeft, 10) + Math.max(parseInt(style.left, 10), 0);
366
+ const right = parseInt(style.paddingRight, 10) + Math.max(parseInt(style.right, 10), 0);
367
+ const top = parseInt(style.paddingTop, 10) + Math.max(parseInt(style.top, 10), 0);
368
+ const bottom = parseInt(style.paddingBottom, 10) + Math.max(parseInt(style.bottom, 10), 0);
369
+ return { left, right, top, bottom, x: left + right, y: top + bottom };
370
+ }
371
+ return { left: 0, right: 0, top: 0, bottom: 0, x: 0, y: 0 };
372
+ }
373
+ setSize() {
374
+ var _a;
375
+ if ((_a = this.elementViewChild) === null || _a === void 0 ? void 0 : _a.nativeElement) {
376
+ const parentElement = this.elementViewChild.nativeElement.parentElement.parentElement;
377
+ const width = this._scrollWidth || `${(this.elementViewChild.nativeElement.offsetWidth || parentElement.offsetWidth)}px`;
378
+ const height = this._scrollHeight || `${(this.elementViewChild.nativeElement.offsetHeight || parentElement.offsetHeight)}px`;
379
+ const setProp = (_name, _value) => this.elementViewChild.nativeElement.style[_name] = _value;
380
+ if (this.both || this.horizontal) {
381
+ setProp('height', height);
382
+ setProp('width', width);
383
+ }
384
+ else {
385
+ setProp('height', height);
386
+ }
387
+ }
388
+ }
389
+ setSpacerSize() {
390
+ if (this._items) {
391
+ const contentPos = this.getContentPosition();
392
+ const setProp = (_name, _value, _size, _cpos = 0) => this.spacerStyle = Object.assign(Object.assign({}, this.spacerStyle), { [`${_name}`]: (((_value || []).length * _size) + _cpos) + 'px' });
393
+ if (this.both) {
394
+ setProp('height', this._items, this._itemSize[0], contentPos.y);
395
+ setProp('width', (this._columns || this._items[1]), this._itemSize[1], contentPos.x);
396
+ }
397
+ else {
398
+ this.horizontal ? setProp('width', (this._columns || this._items), this._itemSize, contentPos.x) : setProp('height', this._items, this._itemSize, contentPos.y);
399
+ }
400
+ }
401
+ }
402
+ setContentPosition(pos) {
403
+ if (this.contentEl) {
404
+ const first = pos ? pos.first : this.first;
405
+ const calculateTranslateVal = (_first, _size) => (_first * _size);
406
+ const setTransform = (_x = 0, _y = 0) => this.contentStyle = Object.assign(Object.assign({}, this.contentStyle), { transform: `translate3d(${_x}px, ${_y}px, 0)` });
407
+ if (this.both) {
408
+ setTransform(calculateTranslateVal(first.cols, this._itemSize[1]), calculateTranslateVal(first.rows, this._itemSize[0]));
409
+ }
410
+ else {
411
+ const translateVal = calculateTranslateVal(first, this._itemSize);
412
+ this.horizontal ? setTransform(translateVal, 0) : setTransform(0, translateVal);
413
+ }
414
+ }
415
+ }
416
+ onScrollPositionChange(event) {
417
+ const target = event.target;
418
+ const contentPos = this.getContentPosition();
419
+ const calculateScrollPos = (_pos, _cpos) => _pos ? (_pos > _cpos ? _pos - _cpos : _pos) : 0;
420
+ const calculateCurrentIndex = (_pos, _size) => Math.floor(_pos / (_size || _pos));
421
+ const calculateTriggerIndex = (_currentIndex, _first, _last, _num, _numT, _isScrollDownOrRight) => {
422
+ return (_currentIndex <= _numT ? _numT : (_isScrollDownOrRight ? (_last - _num - _numT) : (_first + _numT - 1)));
423
+ };
424
+ const calculateFirst = (_currentIndex, _triggerIndex, _first, _last, _num, _numT, _isScrollDownOrRight) => {
425
+ if (_currentIndex <= _numT)
426
+ return 0;
427
+ else
428
+ return Math.max(0, _isScrollDownOrRight ?
429
+ (_currentIndex < _triggerIndex ? _first : _currentIndex - _numT) :
430
+ (_currentIndex > _triggerIndex ? _first : _currentIndex - (2 * _numT)));
431
+ };
432
+ const calculateLast = (_currentIndex, _first, _last, _num, _numT, _isCols = false) => {
433
+ let lastValue = _first + _num + (2 * _numT);
434
+ if (_currentIndex >= _numT) {
435
+ lastValue += (_numT + 1);
436
+ }
437
+ return this.getLast(lastValue, _isCols);
438
+ };
439
+ const scrollTop = calculateScrollPos(target.scrollTop, contentPos.top);
440
+ const scrollLeft = calculateScrollPos(target.scrollLeft, contentPos.left);
441
+ let newFirst = this.both ? { rows: 0, cols: 0 } : 0;
442
+ let newLast = this.last;
443
+ let isRangeChanged = false;
444
+ let newScrollPos = this.lastScrollPos;
445
+ if (this.both) {
446
+ const isScrollDown = this.lastScrollPos.top <= scrollTop;
447
+ const isScrollRight = this.lastScrollPos.left <= scrollLeft;
448
+ const currentIndex = { rows: calculateCurrentIndex(scrollTop, this._itemSize[0]), cols: calculateCurrentIndex(scrollLeft, this._itemSize[1]) };
449
+ const triggerIndex = {
450
+ rows: calculateTriggerIndex(currentIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),
451
+ cols: calculateTriggerIndex(currentIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)
452
+ };
453
+ newFirst = {
454
+ rows: calculateFirst(currentIndex.rows, triggerIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),
455
+ cols: calculateFirst(currentIndex.cols, triggerIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)
456
+ };
457
+ newLast = {
458
+ rows: calculateLast(currentIndex.rows, newFirst.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0]),
459
+ cols: calculateLast(currentIndex.cols, newFirst.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], true)
460
+ };
461
+ isRangeChanged = (newFirst.rows !== this.first.rows || newLast.rows !== this.last.rows) || (newFirst.cols !== this.first.cols || newLast.cols !== this.last.cols);
462
+ newScrollPos = { top: scrollTop, left: scrollLeft };
463
+ }
464
+ else {
465
+ const scrollPos = this.horizontal ? scrollLeft : scrollTop;
466
+ const isScrollDownOrRight = this.lastScrollPos <= scrollPos;
467
+ const currentIndex = calculateCurrentIndex(scrollPos, this._itemSize);
468
+ const triggerIndex = calculateTriggerIndex(currentIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);
469
+ newFirst = calculateFirst(currentIndex, triggerIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);
470
+ newLast = calculateLast(currentIndex, newFirst, this.last, this.numItemsInViewport, this.d_numToleratedItems);
471
+ isRangeChanged = newFirst !== this.first || newLast !== this.last;
472
+ newScrollPos = scrollPos;
473
+ }
474
+ return {
475
+ first: newFirst,
476
+ last: newLast,
477
+ isRangeChanged,
478
+ scrollPos: newScrollPos
479
+ };
480
+ }
481
+ onScrollChange(event) {
482
+ const { first, last, isRangeChanged, scrollPos } = this.onScrollPositionChange(event);
483
+ if (isRangeChanged) {
484
+ const newState = { first, last };
485
+ this.setContentPosition(newState);
486
+ this.first = first;
487
+ this.last = last;
488
+ this.lastScrollPos = scrollPos;
489
+ this.handleEvents('onScrollIndexChange', newState);
490
+ if (this._lazy) {
491
+ this.handleEvents('onLazyLoad', newState);
492
+ }
493
+ }
494
+ }
495
+ onContainerScroll(event) {
496
+ this.handleEvents('onScroll', { originalEvent: event });
497
+ if (this._delay) {
498
+ if (this.scrollTimeout) {
499
+ clearTimeout(this.scrollTimeout);
500
+ }
501
+ if (!this.d_loading && this.showLoader) {
502
+ const { isRangeChanged: changed } = this.onScrollPositionChange(event);
503
+ if (changed) {
504
+ this.d_loading = true;
505
+ this.cd.detectChanges();
506
+ }
507
+ }
508
+ this.scrollTimeout = setTimeout(() => {
509
+ this.onScrollChange(event);
510
+ if (this.d_loading && this.showLoader && (!this._lazy || this._loading === undefined)) {
511
+ this.d_loading = false;
512
+ this.cd.detectChanges();
513
+ }
514
+ }, this._delay);
515
+ }
516
+ else {
517
+ this.onScrollChange(event);
518
+ }
519
+ }
520
+ onWindowResize() {
521
+ if (this.resizeTimeout) {
522
+ clearTimeout(this.resizeTimeout);
523
+ }
524
+ this.resizeTimeout = setTimeout(() => {
525
+ if (this.elementViewChild) {
526
+ const [width, height] = [DomHandler.getWidth(this.elementViewChild.nativeElement), DomHandler.getHeight(this.elementViewChild.nativeElement)];
527
+ const [isDiffWidth, isDiffHeight] = [width !== this.defaultWidth, height !== this.defaultHeight];
528
+ const reinit = this.both ? (isDiffWidth || isDiffHeight) : (this.horizontal ? isDiffWidth : (this.vertical ? isDiffHeight : false));
529
+ reinit && this.zone.run(() => {
530
+ this.d_numToleratedItems = this._numToleratedItems;
531
+ this.defaultWidth = width;
532
+ this.defaultHeight = height;
533
+ this.init();
534
+ });
535
+ }
536
+ }, this._resizeDelay);
537
+ }
538
+ handleEvents(name, params) {
539
+ return this.options && this.options[name] ? this.options[name](params) : this[name].emit(params);
540
+ }
541
+ getContentOptions() {
542
+ return {
543
+ contentStyleClass: `p-scroller-content ${this.d_loading ? 'p-scroller-loading' : ''}`,
544
+ items: this.loadedItems,
545
+ getItemOptions: (index) => this.getOptions(index),
546
+ loading: this.d_loading,
547
+ getLoaderOptions: (index, options) => this.getLoaderOptions(index, options),
548
+ itemSize: this._itemSize,
549
+ rows: this.loadedRows,
550
+ columns: this.loadedColumns,
551
+ spacerStyle: this.spacerStyle,
552
+ contentStyle: this.contentStyle,
553
+ vertical: this.vertical,
554
+ horizontal: this.horizontal,
555
+ both: this.both
556
+ };
557
+ }
558
+ getOptions(renderedIndex) {
559
+ const count = (this._items || []).length;
560
+ const index = this.both ? this.first.rows + renderedIndex : this.first + renderedIndex;
561
+ return {
562
+ index,
563
+ count,
564
+ first: index === 0,
565
+ last: index === (count - 1),
566
+ even: index % 2 === 0,
567
+ odd: index % 2 !== 0
568
+ };
569
+ }
570
+ getLoaderOptions(index, extOptions) {
571
+ const count = this.loaderArr.length;
572
+ return Object.assign({ index,
573
+ count, first: index === 0, last: index === (count - 1), even: index % 2 === 0, odd: index % 2 !== 0 }, extOptions);
574
+ }
575
+ }
576
+ Scroller.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: Scroller, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
577
+ Scroller.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: Scroller, selector: "p-scroller", inputs: { id: "id", style: "style", styleClass: "styleClass", tabindex: "tabindex", items: "items", itemSize: "itemSize", scrollHeight: "scrollHeight", scrollWidth: "scrollWidth", orientation: "orientation", delay: "delay", resizeDelay: "resizeDelay", lazy: "lazy", disabled: "disabled", loaderDisabled: "loaderDisabled", columns: "columns", showSpacer: "showSpacer", showLoader: "showLoader", numToleratedItems: "numToleratedItems", loading: "loading", autoSize: "autoSize", trackBy: "trackBy", options: "options" }, outputs: { onLazyLoad: "onLazyLoad", onScroll: "onScroll", onScrollIndexChange: "onScrollIndexChange" }, host: { classAttribute: "p-scroller-viewport p-element" }, queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "elementViewChild", first: true, predicate: ["element"], descendants: true }, { propertyName: "contentViewChild", first: true, predicate: ["content"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
578
+ <ng-container *ngIf="!_disabled; else disabledContainer">
579
+ <div #element [attr.id]="_id" [attr.tabindex]="tabindex" [ngStyle]="_style" [class]="_styleClass"
580
+ [ngClass]="{'p-scroller': true, 'p-both-scroll': both, 'p-horizontal-scroll': horizontal}"
581
+ (scroll)="onContainerScroll($event)">
582
+ <ng-container *ngIf="contentTemplate; else buildInContent">
583
+ <ng-container *ngTemplateOutlet="contentTemplate; context: {$implicit: loadedItems, options: getContentOptions()}"></ng-container>
584
+ </ng-container>
585
+ <ng-template #buildInContent>
586
+ <div #content class="p-scroller-content" [ngClass]="{'p-scroller-loading': d_loading}" [ngStyle]="contentStyle">
587
+ <ng-container *ngFor="let item of loadedItems; let index = index; trackBy: _trackBy || index">
588
+ <ng-container *ngTemplateOutlet="itemTemplate; context: {$implicit: item, options: getOptions(index)}"></ng-container>
589
+ </ng-container>
590
+ </div>
591
+ </ng-template>
592
+ <div *ngIf="_showSpacer" class="p-scroller-spacer" [ngStyle]="spacerStyle"></div>
593
+ <div *ngIf="!loaderDisabled && _showLoader && d_loading" class="p-scroller-loader" [ngClass]="{'p-component-overlay': !loaderTemplate}">
594
+ <ng-container *ngIf="loaderTemplate; else buildInLoader">
595
+ <ng-container *ngFor="let item of loaderArr; let index = index">
596
+ <ng-container *ngTemplateOutlet="loaderTemplate; context: {options: getLoaderOptions(index, both && { numCols: _numItemsInViewport.cols })}"></ng-container>
597
+ </ng-container>
598
+ </ng-container>
599
+ <ng-template #buildInLoader>
600
+ <ng-container *ngIf="loaderIconTemplate; else buildInLoaderIcon">
601
+ <ng-container *ngTemplateOutlet="loaderIconTemplate; context: {options: { styleClass: 'p-scroller-loading-icon' }}"></ng-container>
602
+ </ng-container>
603
+ <ng-template #buildInLoaderIcon>
604
+ <i class="p-scroller-loading-icon pi pi-spinner pi-spin"></i>
605
+ </ng-template>
606
+ </ng-template>
607
+ </div>
608
+ </div>
609
+ </ng-container>
610
+ <ng-template #disabledContainer>
611
+ <ng-content></ng-content>
612
+ <ng-container *ngIf="contentTemplate">
613
+ <ng-container *ngTemplateOutlet="contentTemplate; context: {$implicit: items, options: {rows: _items, columns: loadedColumns}}"></ng-container>
614
+ </ng-container>
615
+ </ng-template>
616
+ `, isInline: true, styles: ["p-scroller{flex:1;outline:0 none}.p-scroller{position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;outline:0 none}.p-scroller-content{position:absolute;top:0;left:0;min-height:100%;min-width:100%;will-change:transform}.p-scroller-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0;pointer-events:none}.p-scroller-loader{position:sticky;top:0;left:0;width:100%;height:100%}.p-scroller-loader.p-component-overlay{display:flex;align-items:center;justify-content:center}.p-scroller-loading-icon{font-size:2rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
617
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: Scroller, decorators: [{
618
+ type: Component,
619
+ args: [{ selector: 'p-scroller', template: `
620
+ <ng-container *ngIf="!_disabled; else disabledContainer">
621
+ <div #element [attr.id]="_id" [attr.tabindex]="tabindex" [ngStyle]="_style" [class]="_styleClass"
622
+ [ngClass]="{'p-scroller': true, 'p-both-scroll': both, 'p-horizontal-scroll': horizontal}"
623
+ (scroll)="onContainerScroll($event)">
624
+ <ng-container *ngIf="contentTemplate; else buildInContent">
625
+ <ng-container *ngTemplateOutlet="contentTemplate; context: {$implicit: loadedItems, options: getContentOptions()}"></ng-container>
626
+ </ng-container>
627
+ <ng-template #buildInContent>
628
+ <div #content class="p-scroller-content" [ngClass]="{'p-scroller-loading': d_loading}" [ngStyle]="contentStyle">
629
+ <ng-container *ngFor="let item of loadedItems; let index = index; trackBy: _trackBy || index">
630
+ <ng-container *ngTemplateOutlet="itemTemplate; context: {$implicit: item, options: getOptions(index)}"></ng-container>
631
+ </ng-container>
632
+ </div>
633
+ </ng-template>
634
+ <div *ngIf="_showSpacer" class="p-scroller-spacer" [ngStyle]="spacerStyle"></div>
635
+ <div *ngIf="!loaderDisabled && _showLoader && d_loading" class="p-scroller-loader" [ngClass]="{'p-component-overlay': !loaderTemplate}">
636
+ <ng-container *ngIf="loaderTemplate; else buildInLoader">
637
+ <ng-container *ngFor="let item of loaderArr; let index = index">
638
+ <ng-container *ngTemplateOutlet="loaderTemplate; context: {options: getLoaderOptions(index, both && { numCols: _numItemsInViewport.cols })}"></ng-container>
639
+ </ng-container>
640
+ </ng-container>
641
+ <ng-template #buildInLoader>
642
+ <ng-container *ngIf="loaderIconTemplate; else buildInLoaderIcon">
643
+ <ng-container *ngTemplateOutlet="loaderIconTemplate; context: {options: { styleClass: 'p-scroller-loading-icon' }}"></ng-container>
644
+ </ng-container>
645
+ <ng-template #buildInLoaderIcon>
646
+ <i class="p-scroller-loading-icon pi pi-spinner pi-spin"></i>
647
+ </ng-template>
648
+ </ng-template>
649
+ </div>
650
+ </div>
651
+ </ng-container>
652
+ <ng-template #disabledContainer>
653
+ <ng-content></ng-content>
654
+ <ng-container *ngIf="contentTemplate">
655
+ <ng-container *ngTemplateOutlet="contentTemplate; context: {$implicit: items, options: {rows: _items, columns: loadedColumns}}"></ng-container>
656
+ </ng-container>
657
+ </ng-template>
658
+ `, changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, host: {
659
+ 'class': 'p-scroller-viewport p-element'
660
+ }, styles: ["p-scroller{flex:1;outline:0 none}.p-scroller{position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;outline:0 none}.p-scroller-content{position:absolute;top:0;left:0;min-height:100%;min-width:100%;will-change:transform}.p-scroller-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0;pointer-events:none}.p-scroller-loader{position:sticky;top:0;left:0;width:100%;height:100%}.p-scroller-loader.p-component-overlay{display:flex;align-items:center;justify-content:center}.p-scroller-loading-icon{font-size:2rem}\n"] }]
661
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }]; }, propDecorators: { id: [{
662
+ type: Input
663
+ }], style: [{
664
+ type: Input
665
+ }], styleClass: [{
666
+ type: Input
667
+ }], tabindex: [{
668
+ type: Input
669
+ }], items: [{
670
+ type: Input
671
+ }], itemSize: [{
672
+ type: Input
673
+ }], scrollHeight: [{
674
+ type: Input
675
+ }], scrollWidth: [{
676
+ type: Input
677
+ }], orientation: [{
678
+ type: Input
679
+ }], delay: [{
680
+ type: Input
681
+ }], resizeDelay: [{
682
+ type: Input
683
+ }], lazy: [{
684
+ type: Input
685
+ }], disabled: [{
686
+ type: Input
687
+ }], loaderDisabled: [{
688
+ type: Input
689
+ }], columns: [{
690
+ type: Input
691
+ }], showSpacer: [{
692
+ type: Input
693
+ }], showLoader: [{
694
+ type: Input
695
+ }], numToleratedItems: [{
696
+ type: Input
697
+ }], loading: [{
698
+ type: Input
699
+ }], autoSize: [{
700
+ type: Input
701
+ }], trackBy: [{
702
+ type: Input
703
+ }], options: [{
704
+ type: Input
705
+ }], elementViewChild: [{
706
+ type: ViewChild,
707
+ args: ['element']
708
+ }], contentViewChild: [{
709
+ type: ViewChild,
710
+ args: ['content']
711
+ }], templates: [{
712
+ type: ContentChildren,
713
+ args: [PrimeTemplate]
714
+ }], onLazyLoad: [{
715
+ type: Output
716
+ }], onScroll: [{
717
+ type: Output
718
+ }], onScrollIndexChange: [{
719
+ type: Output
720
+ }] } });
721
+ class ScrollerModule {
722
+ }
723
+ ScrollerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: ScrollerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
724
+ ScrollerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.7", ngImport: i0, type: ScrollerModule, declarations: [Scroller], imports: [CommonModule], exports: [Scroller] });
725
+ ScrollerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: ScrollerModule, imports: [CommonModule] });
726
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: ScrollerModule, decorators: [{
727
+ type: NgModule,
728
+ args: [{
729
+ imports: [CommonModule],
730
+ exports: [Scroller],
731
+ declarations: [Scroller]
732
+ }]
733
+ }] });
734
+
735
+ /**
736
+ * Generated bundle index. Do not edit.
737
+ */
738
+
739
+ export { Scroller, ScrollerModule };
740
+ //# sourceMappingURL=primeng-scroller.mjs.map