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