primevue 3.8.2 → 3.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (745) hide show
  1. package/README.md +2 -2
  2. package/accordion/Accordion.d.ts +74 -11
  3. package/accordion/accordion.esm.js +1 -1
  4. package/accordion/accordion.esm.min.js +1 -1
  5. package/accordion/accordion.js +1 -1
  6. package/accordiontab/AccordionTab.d.ts +37 -8
  7. package/accordiontab/accordiontab.esm.js +1 -1
  8. package/accordiontab/accordiontab.esm.min.js +1 -1
  9. package/accordiontab/accordiontab.js +1 -1
  10. package/api/Api.d.ts +292 -251
  11. package/api/api.cjs.js +66 -32
  12. package/api/api.cjs.min.js +1 -1
  13. package/api/api.esm.js +66 -32
  14. package/api/api.esm.min.js +1 -1
  15. package/api/api.js +67 -33
  16. package/api/api.min.js +1 -1
  17. package/autocomplete/AutoComplete.d.ts +280 -63
  18. package/autocomplete/AutoComplete.vue +16 -9
  19. package/autocomplete/autocomplete.cjs.js +23 -15
  20. package/autocomplete/autocomplete.cjs.min.js +1 -1
  21. package/autocomplete/autocomplete.esm.js +20 -12
  22. package/autocomplete/autocomplete.esm.min.js +1 -1
  23. package/autocomplete/autocomplete.js +24 -16
  24. package/autocomplete/autocomplete.min.js +1 -1
  25. package/avatar/Avatar.d.ts +57 -8
  26. package/avatar/avatar.esm.js +1 -1
  27. package/avatar/avatar.esm.min.js +1 -1
  28. package/avatar/avatar.js +1 -1
  29. package/avatargroup/AvatarGroup.d.ts +29 -3
  30. package/avatargroup/avatargroup.esm.js +1 -1
  31. package/avatargroup/avatargroup.esm.min.js +1 -1
  32. package/avatargroup/avatargroup.js +1 -1
  33. package/badge/Badge.d.ts +46 -5
  34. package/badge/badge.esm.js +1 -1
  35. package/badge/badge.esm.min.js +1 -1
  36. package/badge/badge.js +1 -1
  37. package/badgedirective/badgedirective.esm.js +1 -1
  38. package/badgedirective/badgedirective.esm.min.js +1 -1
  39. package/badgedirective/badgedirective.js +1 -1
  40. package/blockui/BlockUI.d.ts +52 -11
  41. package/blockui/blockui.esm.js +1 -1
  42. package/blockui/blockui.esm.min.js +1 -1
  43. package/blockui/blockui.js +1 -1
  44. package/breadcrumb/Breadcrumb.d.ts +49 -9
  45. package/breadcrumb/BreadcrumbItem.vue +5 -2
  46. package/breadcrumb/breadcrumb.cjs.js +5 -2
  47. package/breadcrumb/breadcrumb.cjs.min.js +1 -1
  48. package/breadcrumb/breadcrumb.esm.js +6 -3
  49. package/breadcrumb/breadcrumb.esm.min.js +1 -1
  50. package/breadcrumb/breadcrumb.js +6 -3
  51. package/breadcrumb/breadcrumb.min.js +1 -1
  52. package/button/Button.d.ts +68 -11
  53. package/button/button.cjs.js +1 -1
  54. package/button/button.esm.js +1 -1
  55. package/button/button.esm.min.js +1 -1
  56. package/button/button.js +2 -2
  57. package/calendar/Calendar.d.ts +320 -58
  58. package/calendar/Calendar.vue +406 -84
  59. package/calendar/calendar.cjs.js +521 -204
  60. package/calendar/calendar.cjs.min.js +1 -1
  61. package/calendar/calendar.esm.js +521 -203
  62. package/calendar/calendar.esm.min.js +1 -1
  63. package/calendar/calendar.js +523 -205
  64. package/calendar/calendar.min.js +1 -1
  65. package/card/Card.d.ts +43 -9
  66. package/card/card.esm.js +1 -1
  67. package/card/card.esm.min.js +1 -1
  68. package/card/card.js +1 -1
  69. package/carousel/Carousel.d.ts +121 -24
  70. package/carousel/Carousel.vue +2 -2
  71. package/carousel/carousel.cjs.js +7 -7
  72. package/carousel/carousel.cjs.min.js +1 -1
  73. package/carousel/carousel.esm.js +7 -7
  74. package/carousel/carousel.esm.min.js +1 -1
  75. package/carousel/carousel.js +8 -8
  76. package/carousel/carousel.min.js +1 -1
  77. package/cascadeselect/CascadeSelect.d.ts +172 -35
  78. package/cascadeselect/cascadeselect.cjs.js +2 -2
  79. package/cascadeselect/cascadeselect.esm.js +1 -1
  80. package/cascadeselect/cascadeselect.esm.min.js +1 -1
  81. package/cascadeselect/cascadeselect.js +3 -3
  82. package/chart/Chart.d.ts +104 -12
  83. package/chart/Chart.vue +18 -4
  84. package/chart/chart.cjs.js +20 -8
  85. package/chart/chart.cjs.min.js +1 -1
  86. package/chart/chart.esm.js +19 -5
  87. package/chart/chart.esm.min.js +1 -1
  88. package/chart/chart.js +19 -5
  89. package/chart/chart.min.js +1 -1
  90. package/checkbox/Checkbox.d.ts +66 -8
  91. package/checkbox/checkbox.esm.js +1 -1
  92. package/checkbox/checkbox.esm.min.js +1 -1
  93. package/checkbox/checkbox.js +1 -1
  94. package/chip/Chip.d.ts +50 -4
  95. package/chip/chip.esm.js +1 -1
  96. package/chip/chip.esm.min.js +1 -1
  97. package/chip/chip.js +1 -1
  98. package/chips/Chips.d.ts +88 -15
  99. package/chips/chips.esm.js +1 -1
  100. package/chips/chips.esm.min.js +1 -1
  101. package/chips/chips.js +1 -1
  102. package/colorpicker/ColorPicker.d.ts +105 -13
  103. package/colorpicker/ColorPicker.vue +6 -1
  104. package/colorpicker/colorpicker.cjs.js +7 -2
  105. package/colorpicker/colorpicker.cjs.min.js +1 -1
  106. package/colorpicker/colorpicker.esm.js +7 -2
  107. package/colorpicker/colorpicker.esm.min.js +1 -1
  108. package/colorpicker/colorpicker.js +8 -3
  109. package/colorpicker/colorpicker.min.js +1 -1
  110. package/column/Column.d.ts +448 -78
  111. package/column/column.esm.js +1 -1
  112. package/column/column.esm.min.js +1 -1
  113. package/column/column.js +1 -1
  114. package/columngroup/ColumnGroup.d.ts +30 -4
  115. package/columngroup/columngroup.esm.js +1 -1
  116. package/columngroup/columngroup.esm.min.js +1 -1
  117. package/columngroup/columngroup.js +1 -1
  118. package/config/config.cjs.js +1 -1
  119. package/config/config.esm.js +1 -2
  120. package/config/config.esm.min.js +1 -1
  121. package/config/config.js +2 -2
  122. package/confirmationeventbus/confirmationeventbus.esm.js +1 -1
  123. package/confirmationeventbus/confirmationeventbus.esm.min.js +1 -1
  124. package/confirmationeventbus/confirmationeventbus.js +1 -1
  125. package/confirmationoptions/ConfirmationOptions.d.ts +58 -0
  126. package/confirmationoptions/package.json +3 -0
  127. package/confirmationservice/ConfirmationService.d.ts +2 -1
  128. package/confirmationservice/confirmationservice.cjs.js +2 -2
  129. package/confirmationservice/confirmationservice.esm.js +1 -1
  130. package/confirmationservice/confirmationservice.esm.min.js +1 -1
  131. package/confirmationservice/confirmationservice.js +3 -3
  132. package/confirmdialog/ConfirmDialog.d.ts +57 -5
  133. package/confirmdialog/ConfirmDialog.vue +8 -2
  134. package/confirmdialog/confirmdialog.cjs.js +17 -10
  135. package/confirmdialog/confirmdialog.cjs.min.js +1 -1
  136. package/confirmdialog/confirmdialog.esm.js +12 -5
  137. package/confirmdialog/confirmdialog.esm.min.js +1 -1
  138. package/confirmdialog/confirmdialog.js +18 -11
  139. package/confirmdialog/confirmdialog.min.js +1 -1
  140. package/confirmpopup/ConfirmPopup.d.ts +41 -3
  141. package/confirmpopup/ConfirmPopup.vue +7 -4
  142. package/confirmpopup/confirmpopup.cjs.js +19 -11
  143. package/confirmpopup/confirmpopup.cjs.min.js +1 -1
  144. package/confirmpopup/confirmpopup.esm.js +15 -7
  145. package/confirmpopup/confirmpopup.esm.min.js +1 -1
  146. package/confirmpopup/confirmpopup.js +20 -12
  147. package/confirmpopup/confirmpopup.min.js +1 -1
  148. package/contextmenu/ContextMenu.d.ts +88 -16
  149. package/contextmenu/ContextMenuSub.vue +7 -4
  150. package/contextmenu/contextmenu.cjs.js +8 -5
  151. package/contextmenu/contextmenu.cjs.min.js +1 -1
  152. package/contextmenu/contextmenu.esm.js +8 -5
  153. package/contextmenu/contextmenu.esm.min.js +1 -1
  154. package/contextmenu/contextmenu.js +9 -6
  155. package/contextmenu/contextmenu.min.js +1 -1
  156. package/core/core.js +861 -383
  157. package/core/core.min.js +15 -13
  158. package/datatable/BodyCell.vue +27 -1
  159. package/datatable/ColumnFilter.vue +17 -6
  160. package/datatable/DataTable.d.ts +1056 -130
  161. package/datatable/DataTable.vue +150 -131
  162. package/datatable/HeaderCheckbox.vue +5 -2
  163. package/datatable/RowCheckbox.vue +1 -1
  164. package/datatable/RowRadioButton.vue +1 -1
  165. package/datatable/TableBody.vue +57 -14
  166. package/datatable/TableFooter.vue +15 -1
  167. package/datatable/TableHeader.vue +15 -1
  168. package/datatable/datatable.cjs.js +542 -381
  169. package/datatable/datatable.cjs.min.js +1 -1
  170. package/datatable/datatable.esm.js +533 -373
  171. package/datatable/datatable.esm.min.js +1 -1
  172. package/datatable/datatable.js +543 -383
  173. package/datatable/datatable.min.js +1 -1
  174. package/dataview/DataView.d.ts +198 -32
  175. package/dataview/DataView.vue +8 -8
  176. package/dataview/dataview.cjs.js +13 -13
  177. package/dataview/dataview.cjs.min.js +1 -1
  178. package/dataview/dataview.esm.js +13 -13
  179. package/dataview/dataview.esm.min.js +1 -1
  180. package/dataview/dataview.js +14 -14
  181. package/dataview/dataview.min.js +1 -1
  182. package/dataviewlayoutoptions/DataViewLayoutOptions.d.ts +34 -5
  183. package/dataviewlayoutoptions/dataviewlayoutoptions.esm.js +1 -1
  184. package/dataviewlayoutoptions/dataviewlayoutoptions.esm.min.js +1 -1
  185. package/dataviewlayoutoptions/dataviewlayoutoptions.js +1 -1
  186. package/deferredcontent/DeferredContent.d.ts +31 -6
  187. package/deferredcontent/deferredcontent.esm.js +1 -1
  188. package/deferredcontent/deferredcontent.esm.min.js +1 -1
  189. package/deferredcontent/deferredcontent.js +1 -1
  190. package/dialog/Dialog.d.ts +187 -34
  191. package/dialog/Dialog.vue +1 -1
  192. package/dialog/dialog.cjs.js +2 -3
  193. package/dialog/dialog.cjs.min.js +1 -1
  194. package/dialog/dialog.esm.js +2 -3
  195. package/dialog/dialog.esm.min.js +1 -1
  196. package/dialog/dialog.js +3 -4
  197. package/dialog/dialog.min.js +1 -1
  198. package/divider/Divider.d.ts +53 -8
  199. package/divider/divider.esm.js +1 -1
  200. package/divider/divider.esm.min.js +1 -1
  201. package/divider/divider.js +1 -1
  202. package/dock/Dock.d.ts +92 -15
  203. package/dock/DockSub.vue +3 -1
  204. package/dock/dock.cjs.js +4 -1
  205. package/dock/dock.cjs.min.js +1 -1
  206. package/dock/dock.esm.js +4 -2
  207. package/dock/dock.esm.min.js +1 -1
  208. package/dock/dock.js +5 -3
  209. package/dock/dock.min.js +1 -1
  210. package/dropdown/Dropdown.d.ts +340 -76
  211. package/dropdown/Dropdown.vue +1 -1
  212. package/dropdown/dropdown.cjs.js +4 -4
  213. package/dropdown/dropdown.cjs.min.js +1 -1
  214. package/dropdown/dropdown.esm.js +2 -2
  215. package/dropdown/dropdown.esm.min.js +1 -1
  216. package/dropdown/dropdown.js +5 -5
  217. package/dropdown/dropdown.min.js +1 -1
  218. package/editor/Editor.d.ts +78 -11
  219. package/editor/editor.cjs.js +1 -1
  220. package/editor/editor.esm.js +1 -1
  221. package/editor/editor.esm.min.js +1 -1
  222. package/editor/editor.js +2 -2
  223. package/fieldset/Fieldset.d.ts +63 -11
  224. package/fieldset/fieldset.cjs.js +1 -1
  225. package/fieldset/fieldset.esm.js +1 -1
  226. package/fieldset/fieldset.esm.min.js +1 -1
  227. package/fieldset/fieldset.js +2 -2
  228. package/fileupload/FileUpload.d.ts +255 -37
  229. package/fileupload/fileupload.cjs.js +4 -4
  230. package/fileupload/fileupload.esm.js +1 -1
  231. package/fileupload/fileupload.esm.min.js +1 -1
  232. package/fileupload/fileupload.js +5 -5
  233. package/fullcalendar/FullCalendar.d.ts +29 -3
  234. package/fullcalendar/fullcalendar.esm.js +1 -1
  235. package/fullcalendar/fullcalendar.esm.min.js +1 -1
  236. package/fullcalendar/fullcalendar.js +1 -1
  237. package/galleria/Galleria.d.ts +196 -46
  238. package/galleria/galleria.cjs.js +3 -3
  239. package/galleria/galleria.esm.js +1 -1
  240. package/galleria/galleria.esm.min.js +1 -1
  241. package/galleria/galleria.js +4 -4
  242. package/image/Image.d.ts +51 -6
  243. package/image/image.esm.js +1 -1
  244. package/image/image.esm.min.js +1 -1
  245. package/image/image.js +1 -1
  246. package/inlinemessage/InlineMessage.d.ts +34 -6
  247. package/inlinemessage/inlinemessage.esm.js +1 -1
  248. package/inlinemessage/inlinemessage.esm.min.js +1 -1
  249. package/inlinemessage/inlinemessage.js +1 -1
  250. package/inplace/Inplace.d.ts +57 -12
  251. package/inplace/inplace.cjs.js +1 -1
  252. package/inplace/inplace.esm.js +1 -1
  253. package/inplace/inplace.esm.min.js +1 -1
  254. package/inplace/inplace.js +2 -2
  255. package/inputmask/InputMask.d.ts +75 -15
  256. package/inputmask/inputmask.esm.js +1 -1
  257. package/inputmask/inputmask.esm.min.js +1 -1
  258. package/inputmask/inputmask.js +1 -1
  259. package/inputnumber/InputNumber.d.ts +180 -30
  260. package/inputnumber/InputNumber.vue +19 -3
  261. package/inputnumber/inputnumber.cjs.js +21 -5
  262. package/inputnumber/inputnumber.cjs.min.js +1 -1
  263. package/inputnumber/inputnumber.esm.js +20 -4
  264. package/inputnumber/inputnumber.esm.min.js +1 -1
  265. package/inputnumber/inputnumber.js +22 -6
  266. package/inputnumber/inputnumber.min.js +1 -1
  267. package/inputswitch/InputSwitch.d.ts +61 -9
  268. package/inputswitch/inputswitch.esm.js +1 -1
  269. package/inputswitch/inputswitch.esm.min.js +1 -1
  270. package/inputswitch/inputswitch.js +1 -1
  271. package/inputtext/InputText.d.ts +34 -5
  272. package/inputtext/InputText.vue +1 -1
  273. package/inputtext/inputtext.cjs.js +2 -2
  274. package/inputtext/inputtext.cjs.min.js +1 -1
  275. package/inputtext/inputtext.esm.js +4 -4
  276. package/inputtext/inputtext.esm.min.js +1 -1
  277. package/inputtext/inputtext.js +3 -3
  278. package/inputtext/inputtext.min.js +1 -1
  279. package/knob/Knob.d.ts +92 -18
  280. package/knob/knob.esm.js +1 -1
  281. package/knob/knob.esm.min.js +1 -1
  282. package/knob/knob.js +1 -1
  283. package/listbox/Listbox.d.ts +246 -56
  284. package/listbox/listbox.cjs.js +2 -2
  285. package/listbox/listbox.esm.js +1 -1
  286. package/listbox/listbox.esm.min.js +1 -1
  287. package/listbox/listbox.js +3 -3
  288. package/megamenu/MegaMenu.d.ts +60 -12
  289. package/megamenu/MegaMenu.vue +10 -7
  290. package/megamenu/megamenu.cjs.js +11 -8
  291. package/megamenu/megamenu.cjs.min.js +1 -1
  292. package/megamenu/megamenu.esm.js +11 -8
  293. package/megamenu/megamenu.esm.min.js +1 -1
  294. package/megamenu/megamenu.js +12 -9
  295. package/megamenu/megamenu.min.js +1 -1
  296. package/menu/Menu.d.ts +84 -15
  297. package/menu/Menu.vue +6 -3
  298. package/menu/Menuitem.vue +5 -2
  299. package/menu/menu.cjs.js +13 -7
  300. package/menu/menu.cjs.min.js +1 -1
  301. package/menu/menu.esm.js +12 -6
  302. package/menu/menu.esm.min.js +1 -1
  303. package/menu/menu.js +14 -8
  304. package/menu/menu.min.js +1 -1
  305. package/menubar/Menubar.d.ts +52 -11
  306. package/menubar/Menubar.vue +1 -0
  307. package/menubar/MenubarSub.vue +7 -4
  308. package/menubar/menubar.cjs.js +9 -6
  309. package/menubar/menubar.cjs.min.js +1 -1
  310. package/menubar/menubar.esm.js +9 -6
  311. package/menubar/menubar.esm.min.js +1 -1
  312. package/menubar/menubar.js +10 -7
  313. package/menubar/menubar.min.js +1 -1
  314. package/menuitem/MenuItem.d.ts +82 -0
  315. package/menuitem/package.json +3 -0
  316. package/message/Message.d.ts +57 -10
  317. package/message/Message.vue +6 -2
  318. package/message/message.cjs.js +7 -3
  319. package/message/message.cjs.min.js +1 -1
  320. package/message/message.esm.js +7 -3
  321. package/message/message.esm.min.js +1 -1
  322. package/message/message.js +8 -4
  323. package/message/message.min.js +1 -1
  324. package/multiselect/MultiSelect.d.ts +368 -83
  325. package/multiselect/multiselect.cjs.js +3 -3
  326. package/multiselect/multiselect.esm.js +1 -1
  327. package/multiselect/multiselect.esm.min.js +1 -1
  328. package/multiselect/multiselect.js +4 -4
  329. package/orderlist/OrderList.d.ts +122 -17
  330. package/orderlist/OrderList.vue +2 -0
  331. package/orderlist/orderlist.cjs.js +5 -3
  332. package/orderlist/orderlist.cjs.min.js +1 -1
  333. package/orderlist/orderlist.esm.js +4 -2
  334. package/orderlist/orderlist.esm.min.js +1 -1
  335. package/orderlist/orderlist.js +6 -4
  336. package/orderlist/orderlist.min.js +1 -1
  337. package/organizationchart/OrganizationChart.d.ts +137 -15
  338. package/organizationchart/OrganizationChart.vue +1 -0
  339. package/organizationchart/organizationchart.cjs.js +1 -1
  340. package/organizationchart/organizationchart.cjs.min.js +1 -1
  341. package/organizationchart/organizationchart.esm.js +2 -2
  342. package/organizationchart/organizationchart.esm.min.js +1 -1
  343. package/organizationchart/organizationchart.js +2 -2
  344. package/organizationchart/organizationchart.min.js +1 -1
  345. package/overlayeventbus/overlayeventbus.esm.js +1 -1
  346. package/overlayeventbus/overlayeventbus.esm.min.js +1 -1
  347. package/overlayeventbus/overlayeventbus.js +1 -1
  348. package/overlaypanel/OverlayPanel.d.ts +107 -12
  349. package/overlaypanel/overlaypanel.cjs.js +5 -5
  350. package/overlaypanel/overlaypanel.esm.js +1 -1
  351. package/overlaypanel/overlaypanel.esm.min.js +1 -1
  352. package/overlaypanel/overlaypanel.js +6 -6
  353. package/package.json +5 -1
  354. package/paginator/Paginator.d.ts +129 -27
  355. package/paginator/Paginator.vue +4 -4
  356. package/paginator/paginator.cjs.js +12 -12
  357. package/paginator/paginator.cjs.min.js +1 -1
  358. package/paginator/paginator.esm.js +5 -5
  359. package/paginator/paginator.esm.min.js +1 -1
  360. package/paginator/paginator.js +13 -13
  361. package/paginator/paginator.min.js +1 -1
  362. package/panel/Panel.d.ts +64 -8
  363. package/panel/Panel.vue +1 -1
  364. package/panel/panel.cjs.js +1 -1
  365. package/panel/panel.esm.js +1 -1
  366. package/panel/panel.esm.min.js +1 -1
  367. package/panel/panel.js +2 -2
  368. package/panelmenu/PanelMenu.d.ts +59 -11
  369. package/panelmenu/PanelMenu.vue +8 -5
  370. package/panelmenu/PanelMenuSub.vue +8 -5
  371. package/panelmenu/panelmenu.cjs.js +18 -12
  372. package/panelmenu/panelmenu.cjs.min.js +1 -1
  373. package/panelmenu/panelmenu.esm.js +19 -13
  374. package/panelmenu/panelmenu.esm.min.js +1 -1
  375. package/panelmenu/panelmenu.js +19 -13
  376. package/panelmenu/panelmenu.min.js +1 -1
  377. package/password/Password.d.ts +115 -24
  378. package/password/password.cjs.js +2 -2
  379. package/password/password.esm.js +1 -1
  380. package/password/password.esm.min.js +1 -1
  381. package/password/password.js +3 -3
  382. package/picklist/PickList.d.ts +199 -26
  383. package/picklist/PickList.vue +10 -4
  384. package/picklist/picklist.cjs.js +15 -9
  385. package/picklist/picklist.cjs.min.js +1 -1
  386. package/picklist/picklist.esm.js +14 -8
  387. package/picklist/picklist.esm.min.js +1 -1
  388. package/picklist/picklist.js +16 -10
  389. package/picklist/picklist.min.js +1 -1
  390. package/progressbar/ProgressBar.d.ts +43 -8
  391. package/progressbar/ProgressBar.vue +13 -12
  392. package/progressbar/progressbar.cjs.js +13 -12
  393. package/progressbar/progressbar.cjs.min.js +1 -1
  394. package/progressbar/progressbar.esm.js +15 -14
  395. package/progressbar/progressbar.esm.min.js +1 -1
  396. package/progressbar/progressbar.js +14 -13
  397. package/progressbar/progressbar.min.js +1 -1
  398. package/progressspinner/ProgressSpinner.d.ts +39 -6
  399. package/progressspinner/progressspinner.esm.js +1 -1
  400. package/progressspinner/progressspinner.esm.min.js +1 -1
  401. package/progressspinner/progressspinner.js +1 -1
  402. package/radiobutton/RadioButton.d.ts +52 -7
  403. package/radiobutton/radiobutton.esm.js +1 -1
  404. package/radiobutton/radiobutton.esm.min.js +1 -1
  405. package/radiobutton/radiobutton.js +1 -1
  406. package/rating/Rating.d.ts +67 -10
  407. package/rating/Rating.vue +1 -1
  408. package/rating/rating.cjs.js +1 -1
  409. package/rating/rating.cjs.min.js +1 -1
  410. package/rating/rating.esm.js +2 -2
  411. package/rating/rating.esm.min.js +1 -1
  412. package/rating/rating.js +2 -2
  413. package/rating/rating.min.js +1 -1
  414. package/resources/primevue.css +5 -0
  415. package/resources/primevue.min.css +1 -1
  416. package/resources/themes/arya-blue/theme.css +81 -33
  417. package/resources/themes/arya-green/theme.css +81 -33
  418. package/resources/themes/arya-orange/theme.css +81 -33
  419. package/resources/themes/arya-purple/theme.css +81 -33
  420. package/resources/themes/bootstrap4-dark-blue/theme.css +62 -21
  421. package/resources/themes/bootstrap4-dark-purple/theme.css +62 -21
  422. package/resources/themes/bootstrap4-light-blue/theme.css +62 -21
  423. package/resources/themes/bootstrap4-light-purple/theme.css +62 -21
  424. package/resources/themes/fluent-light/theme.css +81 -33
  425. package/resources/themes/lara-dark-blue/fonts/Inter-Bold.woff +0 -0
  426. package/resources/themes/lara-dark-blue/fonts/Inter-Bold.woff2 +0 -0
  427. package/resources/themes/lara-dark-blue/fonts/Inter-Light.woff +0 -0
  428. package/resources/themes/lara-dark-blue/fonts/Inter-Light.woff2 +0 -0
  429. package/resources/themes/lara-dark-blue/fonts/Inter-Medium.woff +0 -0
  430. package/resources/themes/lara-dark-blue/fonts/Inter-Medium.woff2 +0 -0
  431. package/resources/themes/lara-dark-blue/fonts/Inter-Regular.woff +0 -0
  432. package/resources/themes/lara-dark-blue/fonts/Inter-Regular.woff2 +0 -0
  433. package/resources/themes/lara-dark-blue/fonts/Inter-SemiBold.woff +0 -0
  434. package/resources/themes/lara-dark-blue/fonts/Inter-SemiBold.woff2 +0 -0
  435. package/resources/themes/lara-dark-blue/theme.css +5421 -0
  436. package/resources/themes/lara-dark-indigo/fonts/Inter-Bold.woff +0 -0
  437. package/resources/themes/lara-dark-indigo/fonts/Inter-Bold.woff2 +0 -0
  438. package/resources/themes/lara-dark-indigo/fonts/Inter-Light.woff +0 -0
  439. package/resources/themes/lara-dark-indigo/fonts/Inter-Light.woff2 +0 -0
  440. package/resources/themes/lara-dark-indigo/fonts/Inter-Medium.woff +0 -0
  441. package/resources/themes/lara-dark-indigo/fonts/Inter-Medium.woff2 +0 -0
  442. package/resources/themes/lara-dark-indigo/fonts/Inter-Regular.woff +0 -0
  443. package/resources/themes/lara-dark-indigo/fonts/Inter-Regular.woff2 +0 -0
  444. package/resources/themes/lara-dark-indigo/fonts/Inter-SemiBold.woff +0 -0
  445. package/resources/themes/lara-dark-indigo/fonts/Inter-SemiBold.woff2 +0 -0
  446. package/resources/themes/lara-dark-indigo/theme.css +5421 -0
  447. package/resources/themes/lara-dark-purple/fonts/Inter-Bold.woff +0 -0
  448. package/resources/themes/lara-dark-purple/fonts/Inter-Bold.woff2 +0 -0
  449. package/resources/themes/lara-dark-purple/fonts/Inter-Light.woff +0 -0
  450. package/resources/themes/lara-dark-purple/fonts/Inter-Light.woff2 +0 -0
  451. package/resources/themes/lara-dark-purple/fonts/Inter-Medium.woff +0 -0
  452. package/resources/themes/lara-dark-purple/fonts/Inter-Medium.woff2 +0 -0
  453. package/resources/themes/lara-dark-purple/fonts/Inter-Regular.woff +0 -0
  454. package/resources/themes/lara-dark-purple/fonts/Inter-Regular.woff2 +0 -0
  455. package/resources/themes/lara-dark-purple/fonts/Inter-SemiBold.woff +0 -0
  456. package/resources/themes/lara-dark-purple/fonts/Inter-SemiBold.woff2 +0 -0
  457. package/resources/themes/lara-dark-purple/theme.css +5421 -0
  458. package/resources/themes/lara-dark-teal/fonts/Inter-Bold.woff +0 -0
  459. package/resources/themes/lara-dark-teal/fonts/Inter-Bold.woff2 +0 -0
  460. package/resources/themes/lara-dark-teal/fonts/Inter-Light.woff +0 -0
  461. package/resources/themes/lara-dark-teal/fonts/Inter-Light.woff2 +0 -0
  462. package/resources/themes/lara-dark-teal/fonts/Inter-Medium.woff +0 -0
  463. package/resources/themes/lara-dark-teal/fonts/Inter-Medium.woff2 +0 -0
  464. package/resources/themes/lara-dark-teal/fonts/Inter-Regular.woff +0 -0
  465. package/resources/themes/lara-dark-teal/fonts/Inter-Regular.woff2 +0 -0
  466. package/resources/themes/lara-dark-teal/fonts/Inter-SemiBold.woff +0 -0
  467. package/resources/themes/lara-dark-teal/fonts/Inter-SemiBold.woff2 +0 -0
  468. package/resources/themes/lara-dark-teal/theme.css +5421 -0
  469. package/resources/themes/lara-light-blue/fonts/Inter-Bold.woff +0 -0
  470. package/resources/themes/lara-light-blue/fonts/Inter-Bold.woff2 +0 -0
  471. package/resources/themes/lara-light-blue/fonts/Inter-Light.woff +0 -0
  472. package/resources/themes/lara-light-blue/fonts/Inter-Light.woff2 +0 -0
  473. package/resources/themes/lara-light-blue/fonts/Inter-Medium.woff +0 -0
  474. package/resources/themes/lara-light-blue/fonts/Inter-Medium.woff2 +0 -0
  475. package/resources/themes/lara-light-blue/fonts/Inter-Regular.woff +0 -0
  476. package/resources/themes/lara-light-blue/fonts/Inter-Regular.woff2 +0 -0
  477. package/resources/themes/lara-light-blue/fonts/Inter-SemiBold.woff +0 -0
  478. package/resources/themes/lara-light-blue/fonts/Inter-SemiBold.woff2 +0 -0
  479. package/resources/themes/lara-light-blue/theme.css +5421 -0
  480. package/resources/themes/lara-light-indigo/fonts/Inter-Bold.woff +0 -0
  481. package/resources/themes/lara-light-indigo/fonts/Inter-Bold.woff2 +0 -0
  482. package/resources/themes/lara-light-indigo/fonts/Inter-Light.woff +0 -0
  483. package/resources/themes/lara-light-indigo/fonts/Inter-Light.woff2 +0 -0
  484. package/resources/themes/lara-light-indigo/fonts/Inter-Medium.woff +0 -0
  485. package/resources/themes/lara-light-indigo/fonts/Inter-Medium.woff2 +0 -0
  486. package/resources/themes/lara-light-indigo/fonts/Inter-Regular.woff +0 -0
  487. package/resources/themes/lara-light-indigo/fonts/Inter-Regular.woff2 +0 -0
  488. package/resources/themes/lara-light-indigo/fonts/Inter-SemiBold.woff +0 -0
  489. package/resources/themes/lara-light-indigo/fonts/Inter-SemiBold.woff2 +0 -0
  490. package/resources/themes/lara-light-indigo/theme.css +5421 -0
  491. package/resources/themes/lara-light-purple/fonts/Inter-Bold.woff +0 -0
  492. package/resources/themes/lara-light-purple/fonts/Inter-Bold.woff2 +0 -0
  493. package/resources/themes/lara-light-purple/fonts/Inter-Light.woff +0 -0
  494. package/resources/themes/lara-light-purple/fonts/Inter-Light.woff2 +0 -0
  495. package/resources/themes/lara-light-purple/fonts/Inter-Medium.woff +0 -0
  496. package/resources/themes/lara-light-purple/fonts/Inter-Medium.woff2 +0 -0
  497. package/resources/themes/lara-light-purple/fonts/Inter-Regular.woff +0 -0
  498. package/resources/themes/lara-light-purple/fonts/Inter-Regular.woff2 +0 -0
  499. package/resources/themes/lara-light-purple/fonts/Inter-SemiBold.woff +0 -0
  500. package/resources/themes/lara-light-purple/fonts/Inter-SemiBold.woff2 +0 -0
  501. package/resources/themes/lara-light-purple/theme.css +5421 -0
  502. package/resources/themes/lara-light-teal/fonts/Inter-Bold.woff +0 -0
  503. package/resources/themes/lara-light-teal/fonts/Inter-Bold.woff2 +0 -0
  504. package/resources/themes/lara-light-teal/fonts/Inter-Light.woff +0 -0
  505. package/resources/themes/lara-light-teal/fonts/Inter-Light.woff2 +0 -0
  506. package/resources/themes/lara-light-teal/fonts/Inter-Medium.woff +0 -0
  507. package/resources/themes/lara-light-teal/fonts/Inter-Medium.woff2 +0 -0
  508. package/resources/themes/lara-light-teal/fonts/Inter-Regular.woff +0 -0
  509. package/resources/themes/lara-light-teal/fonts/Inter-Regular.woff2 +0 -0
  510. package/resources/themes/lara-light-teal/fonts/Inter-SemiBold.woff +0 -0
  511. package/resources/themes/lara-light-teal/fonts/Inter-SemiBold.woff2 +0 -0
  512. package/resources/themes/lara-light-teal/theme.css +5421 -0
  513. package/resources/themes/luna-amber/theme.css +78 -37
  514. package/resources/themes/luna-blue/theme.css +78 -37
  515. package/resources/themes/luna-green/theme.css +78 -37
  516. package/resources/themes/luna-pink/theme.css +78 -37
  517. package/resources/themes/md-dark-deeppurple/theme.css +252 -48
  518. package/resources/themes/md-dark-indigo/theme.css +252 -48
  519. package/resources/themes/md-light-deeppurple/theme.css +252 -48
  520. package/resources/themes/md-light-indigo/theme.css +252 -48
  521. package/resources/themes/mdc-dark-deeppurple/theme.css +252 -48
  522. package/resources/themes/mdc-dark-indigo/theme.css +252 -48
  523. package/resources/themes/mdc-light-deeppurple/theme.css +252 -48
  524. package/resources/themes/mdc-light-indigo/theme.css +252 -48
  525. package/resources/themes/nova/theme.css +78 -37
  526. package/resources/themes/nova-accent/theme.css +78 -37
  527. package/resources/themes/nova-alt/theme.css +78 -37
  528. package/resources/themes/nova-vue/theme.css +78 -37
  529. package/resources/themes/rhea/theme.css +78 -37
  530. package/resources/themes/saga-blue/theme.css +65 -17
  531. package/resources/themes/saga-green/theme.css +65 -17
  532. package/resources/themes/saga-orange/theme.css +65 -17
  533. package/resources/themes/saga-purple/theme.css +65 -17
  534. package/resources/themes/tailwind-light/theme.css +92 -36
  535. package/resources/themes/vela-blue/theme.css +81 -33
  536. package/resources/themes/vela-green/theme.css +81 -33
  537. package/resources/themes/vela-orange/theme.css +81 -33
  538. package/resources/themes/vela-purple/theme.css +81 -33
  539. package/ripple/ripple.esm.js +1 -1
  540. package/ripple/ripple.esm.min.js +1 -1
  541. package/ripple/ripple.js +1 -1
  542. package/row/Row.d.ts +25 -3
  543. package/row/row.esm.js +1 -1
  544. package/row/row.esm.min.js +1 -1
  545. package/row/row.js +1 -1
  546. package/scrollpanel/ScrollPanel.d.ts +27 -5
  547. package/scrollpanel/scrollpanel.esm.js +1 -1
  548. package/scrollpanel/scrollpanel.esm.min.js +1 -1
  549. package/scrollpanel/scrollpanel.js +1 -1
  550. package/scrolltop/ScrollTop.d.ts +47 -7
  551. package/scrolltop/scrolltop.esm.js +1 -1
  552. package/scrolltop/scrolltop.esm.min.js +1 -1
  553. package/scrolltop/scrolltop.js +1 -1
  554. package/selectbutton/SelectButton.d.ts +108 -19
  555. package/selectbutton/SelectButton.vue +8 -2
  556. package/selectbutton/selectbutton.cjs.js +15 -10
  557. package/selectbutton/selectbutton.cjs.min.js +1 -1
  558. package/selectbutton/selectbutton.esm.js +15 -10
  559. package/selectbutton/selectbutton.esm.min.js +1 -1
  560. package/selectbutton/selectbutton.js +16 -11
  561. package/selectbutton/selectbutton.min.js +1 -1
  562. package/sidebar/Sidebar.d.ts +81 -16
  563. package/sidebar/sidebar.cjs.js +1 -1
  564. package/sidebar/sidebar.esm.js +1 -1
  565. package/sidebar/sidebar.esm.min.js +1 -1
  566. package/sidebar/sidebar.js +2 -2
  567. package/skeleton/Skeleton.d.ts +58 -9
  568. package/skeleton/skeleton.esm.js +1 -1
  569. package/skeleton/skeleton.esm.min.js +1 -1
  570. package/skeleton/skeleton.js +1 -1
  571. package/slider/Slider.d.ts +90 -14
  572. package/slider/slider.esm.js +1 -1
  573. package/slider/slider.esm.min.js +1 -1
  574. package/slider/slider.js +1 -1
  575. package/speeddial/SpeedDial.d.ts +166 -29
  576. package/speeddial/SpeedDial.vue +3 -1
  577. package/speeddial/speeddial.cjs.js +5 -2
  578. package/speeddial/speeddial.cjs.min.js +1 -1
  579. package/speeddial/speeddial.esm.js +4 -2
  580. package/speeddial/speeddial.esm.min.js +1 -1
  581. package/speeddial/speeddial.js +6 -4
  582. package/speeddial/speeddial.min.js +1 -1
  583. package/splitbutton/SplitButton.d.ts +76 -11
  584. package/splitbutton/SplitButton.vue +3 -1
  585. package/splitbutton/splitbutton.cjs.js +15 -13
  586. package/splitbutton/splitbutton.cjs.min.js +1 -1
  587. package/splitbutton/splitbutton.esm.js +15 -13
  588. package/splitbutton/splitbutton.esm.min.js +1 -1
  589. package/splitbutton/splitbutton.js +16 -14
  590. package/splitbutton/splitbutton.min.js +1 -1
  591. package/splitter/Splitter.d.ts +74 -7
  592. package/splitter/Splitter.vue +5 -5
  593. package/splitter/splitter.cjs.js +1 -1
  594. package/splitter/splitter.cjs.min.js +1 -1
  595. package/splitter/splitter.esm.js +2 -2
  596. package/splitter/splitter.esm.min.js +1 -1
  597. package/splitter/splitter.js +2 -2
  598. package/splitter/splitter.min.js +1 -1
  599. package/splitterpanel/SplitterPanel.d.ts +34 -7
  600. package/splitterpanel/splitterpanel.esm.js +1 -1
  601. package/splitterpanel/splitterpanel.esm.min.js +1 -1
  602. package/splitterpanel/splitterpanel.js +1 -1
  603. package/steps/Steps.d.ts +51 -11
  604. package/steps/Steps.vue +5 -2
  605. package/steps/steps.cjs.js +5 -2
  606. package/steps/steps.cjs.min.js +1 -1
  607. package/steps/steps.esm.js +6 -3
  608. package/steps/steps.esm.min.js +1 -1
  609. package/steps/steps.js +6 -3
  610. package/steps/steps.min.js +1 -1
  611. package/styleclass/styleclass.esm.js +1 -1
  612. package/styleclass/styleclass.esm.min.js +1 -1
  613. package/styleclass/styleclass.js +1 -1
  614. package/tabmenu/TabMenu.d.ts +63 -10
  615. package/tabmenu/TabMenu.vue +6 -3
  616. package/tabmenu/tabmenu.cjs.js +7 -4
  617. package/tabmenu/tabmenu.cjs.min.js +1 -1
  618. package/tabmenu/tabmenu.esm.js +7 -4
  619. package/tabmenu/tabmenu.esm.min.js +1 -1
  620. package/tabmenu/tabmenu.js +8 -5
  621. package/tabmenu/tabmenu.min.js +1 -1
  622. package/tabpanel/TabPanel.d.ts +38 -7
  623. package/tabpanel/tabpanel.esm.js +1 -1
  624. package/tabpanel/tabpanel.esm.min.js +1 -1
  625. package/tabpanel/tabpanel.js +1 -1
  626. package/tabview/TabView.d.ts +73 -11
  627. package/tabview/tabview.cjs.js +1 -1
  628. package/tabview/tabview.esm.js +1 -1
  629. package/tabview/tabview.esm.min.js +1 -1
  630. package/tabview/tabview.js +2 -2
  631. package/tag/Tag.d.ts +44 -8
  632. package/tag/Tag.vue +1 -1
  633. package/tag/tag.cjs.js +6 -6
  634. package/tag/tag.cjs.min.js +1 -1
  635. package/tag/tag.esm.js +8 -8
  636. package/tag/tag.esm.min.js +1 -1
  637. package/tag/tag.js +7 -7
  638. package/tag/tag.min.js +1 -1
  639. package/terminal/Terminal.d.ts +36 -5
  640. package/terminal/terminal.cjs.js +3 -3
  641. package/terminal/terminal.esm.js +1 -1
  642. package/terminal/terminal.esm.min.js +1 -1
  643. package/terminal/terminal.js +4 -4
  644. package/terminalservice/TerminalService.d.ts +9 -6
  645. package/terminalservice/terminalservice.esm.js +1 -1
  646. package/terminalservice/terminalservice.esm.min.js +1 -1
  647. package/terminalservice/terminalservice.js +1 -1
  648. package/textarea/Textarea.d.ts +38 -6
  649. package/textarea/textarea.esm.js +1 -1
  650. package/textarea/textarea.esm.min.js +1 -1
  651. package/textarea/textarea.js +1 -1
  652. package/tieredmenu/TieredMenu.d.ts +89 -15
  653. package/tieredmenu/TieredMenuSub.vue +7 -4
  654. package/tieredmenu/tieredmenu.cjs.js +9 -6
  655. package/tieredmenu/tieredmenu.cjs.min.js +1 -1
  656. package/tieredmenu/tieredmenu.esm.js +8 -5
  657. package/tieredmenu/tieredmenu.esm.min.js +1 -1
  658. package/tieredmenu/tieredmenu.js +10 -7
  659. package/tieredmenu/tieredmenu.min.js +1 -1
  660. package/timeline/Timeline.d.ts +94 -15
  661. package/timeline/timeline.esm.js +1 -1
  662. package/timeline/timeline.esm.min.js +1 -1
  663. package/timeline/timeline.js +1 -1
  664. package/toast/Toast.d.ts +118 -12
  665. package/toast/toast.cjs.js +7 -7
  666. package/toast/toast.esm.js +1 -1
  667. package/toast/toast.esm.min.js +1 -1
  668. package/toast/toast.js +8 -8
  669. package/toasteventbus/toasteventbus.esm.js +1 -1
  670. package/toasteventbus/toasteventbus.esm.min.js +1 -1
  671. package/toasteventbus/toasteventbus.js +1 -1
  672. package/toastservice/ToastService.d.ts +17 -5
  673. package/toastservice/toastservice.cjs.js +3 -3
  674. package/toastservice/toastservice.esm.js +1 -1
  675. package/toastservice/toastservice.esm.min.js +1 -1
  676. package/toastservice/toastservice.js +4 -4
  677. package/togglebutton/ToggleButton.d.ts +64 -11
  678. package/togglebutton/togglebutton.cjs.js +1 -1
  679. package/togglebutton/togglebutton.esm.js +1 -1
  680. package/togglebutton/togglebutton.esm.min.js +1 -1
  681. package/togglebutton/togglebutton.js +2 -2
  682. package/toolbar/Toolbar.d.ts +31 -6
  683. package/toolbar/Toolbar.vue +2 -2
  684. package/toolbar/toolbar.cjs.js +2 -2
  685. package/toolbar/toolbar.cjs.min.js +1 -1
  686. package/toolbar/toolbar.esm.js +3 -3
  687. package/toolbar/toolbar.esm.min.js +1 -1
  688. package/toolbar/toolbar.js +3 -3
  689. package/toolbar/toolbar.min.js +1 -1
  690. package/tooltip/tooltip.esm.js +1 -1
  691. package/tooltip/tooltip.esm.min.js +1 -1
  692. package/tooltip/tooltip.js +1 -1
  693. package/tree/Tree.d.ts +189 -26
  694. package/tree/Tree.vue +1 -0
  695. package/tree/TreeNode.vue +4 -1
  696. package/tree/tree.cjs.js +6 -3
  697. package/tree/tree.cjs.min.js +1 -1
  698. package/tree/tree.esm.js +6 -3
  699. package/tree/tree.esm.min.js +1 -1
  700. package/tree/tree.js +7 -4
  701. package/tree/tree.min.js +1 -1
  702. package/treeselect/TreeSelect.d.ts +201 -44
  703. package/treeselect/TreeSelect.vue +9 -0
  704. package/treeselect/treeselect.cjs.js +12 -3
  705. package/treeselect/treeselect.cjs.min.js +1 -1
  706. package/treeselect/treeselect.esm.js +10 -1
  707. package/treeselect/treeselect.esm.min.js +1 -1
  708. package/treeselect/treeselect.js +13 -4
  709. package/treeselect/treeselect.min.js +1 -1
  710. package/treetable/BodyCell.vue +3 -3
  711. package/treetable/TreeTable.d.ts +459 -63
  712. package/treetable/TreeTable.vue +9 -9
  713. package/treetable/treetable.cjs.js +17 -17
  714. package/treetable/treetable.cjs.min.js +1 -1
  715. package/treetable/treetable.esm.js +16 -16
  716. package/treetable/treetable.esm.min.js +1 -1
  717. package/treetable/treetable.js +18 -18
  718. package/treetable/treetable.min.js +1 -1
  719. package/tristatecheckbox/TriStateCheckbox.d.ts +40 -6
  720. package/tristatecheckbox/tristatecheckbox.esm.js +1 -1
  721. package/tristatecheckbox/tristatecheckbox.esm.min.js +1 -1
  722. package/tristatecheckbox/tristatecheckbox.js +1 -1
  723. package/ts-helpers.d.ts +28 -0
  724. package/useconfirm/UseConfirm.d.ts +5 -19
  725. package/useconfirm/useconfirm.js +1 -1
  726. package/usetoast/UseToast.d.ts +3 -5
  727. package/usetoast/usetoast.js +1 -1
  728. package/utils/Utils.d.ts +3 -0
  729. package/utils/utils.cjs.js +41 -4
  730. package/utils/utils.cjs.min.js +1 -1
  731. package/utils/utils.esm.js +41 -4
  732. package/utils/utils.esm.min.js +1 -1
  733. package/utils/utils.js +42 -5
  734. package/utils/utils.min.js +1 -1
  735. package/vetur-attributes.json +66 -30
  736. package/vetur-tags.json +16 -7
  737. package/virtualscroller/VirtualScroller.d.ts +294 -53
  738. package/virtualscroller/VirtualScroller.vue +296 -255
  739. package/virtualscroller/virtualscroller.cjs.js +325 -266
  740. package/virtualscroller/virtualscroller.cjs.min.js +1 -1
  741. package/virtualscroller/virtualscroller.esm.js +326 -267
  742. package/virtualscroller/virtualscroller.esm.min.js +1 -1
  743. package/virtualscroller/virtualscroller.js +326 -267
  744. package/virtualscroller/virtualscroller.min.js +1 -1
  745. package/web-types.json +296 -47
@@ -4,15 +4,21 @@ var vue = require('vue');
4
4
 
5
5
  var script = {
6
6
  name: 'VirtualScroller',
7
- emits: ['update:numToleratedItems', 'scroll-index-change', 'lazy-load'],
7
+ emits: ['update:numToleratedItems', 'scroll', 'scroll-index-change', 'lazy-load'],
8
8
  props: {
9
+ id: {
10
+ type: String,
11
+ default: null
12
+ },
13
+ style: null,
14
+ class: null,
9
15
  items: {
10
16
  type: Array,
11
17
  default: null
12
18
  },
13
19
  itemSize: {
14
20
  type: [Number,Array],
15
- default: null
21
+ default: 0
16
22
  },
17
23
  scrollHeight: null,
18
24
  scrollWidth: null,
@@ -32,17 +38,27 @@ var script = {
32
38
  type: Boolean,
33
39
  default: false
34
40
  },
35
- showLoader: {
41
+ disabled: {
42
+ type: Boolean,
43
+ default: false
44
+ },
45
+ loaderDisabled: {
36
46
  type: Boolean,
37
47
  default: false
38
48
  },
49
+ columns: {
50
+ type: Array,
51
+ default: null
52
+ },
39
53
  loading: {
40
54
  type: Boolean,
41
55
  default: false
42
56
  },
43
- style: null,
44
- class: null,
45
- disabled: {
57
+ showSpacer: {
58
+ type: Boolean,
59
+ default: true
60
+ },
61
+ showLoader: {
46
62
  type: Boolean,
47
63
  default: false
48
64
  }
@@ -55,15 +71,19 @@ var script = {
55
71
  lastScrollPos: this.isBoth() ? { top: 0, left: 0 } : 0,
56
72
  d_numToleratedItems: this.numToleratedItems,
57
73
  d_loading: this.loading,
58
- loaderArr: null
74
+ loaderArr: [],
75
+ spacerStyle: {},
76
+ contentStyle: {}
59
77
  }
60
78
  },
61
79
  element: null,
62
80
  content: null,
63
- spacer: null,
81
+ lastScrollPos: null,
64
82
  scrollTimeout: null,
65
83
  mounted() {
66
84
  this.init();
85
+
86
+ this.lastScrollPos = this.isBoth() ? { top: 0, left: 0 } : 0;
67
87
  },
68
88
  watch: {
69
89
  numToleratedItems(newValue) {
@@ -72,67 +92,185 @@ var script = {
72
92
  loading(newValue) {
73
93
  this.d_loading = newValue;
74
94
  },
75
- items(newValue, oldVal) {
76
- if (!oldVal || oldVal.length !== (newValue || []).length) {
95
+ items(newValue, oldValue) {
96
+ if (!oldValue || oldValue.length !== (newValue || []).length) {
77
97
  this.init();
78
98
  }
99
+ },
100
+ orientation() {
101
+ this.lastScrollPos = this.isBoth() ? { top: 0, left: 0 } : 0;
79
102
  }
80
103
  },
81
104
  methods: {
82
105
  init() {
83
- if (!this.disabled) {
84
- this.setSize();
85
- this.calculateOptions();
86
- this.setSpacerSize();
106
+ this.setSize();
107
+ this.calculateOptions();
108
+ this.setSpacerSize();
109
+ },
110
+ isVertical() {
111
+ return this.orientation === 'vertical';
112
+ },
113
+ isHorizontal() {
114
+ return this.orientation === 'horizontal';
115
+ },
116
+ isBoth() {
117
+ return this.orientation === 'both';
118
+ },
119
+ scrollTo(options) {
120
+ this.element && this.element.scrollTo(options);
121
+ },
122
+ scrollToIndex(index, behavior = 'auto') {
123
+ const both = this.isBoth();
124
+ const horizontal = this.isHorizontal();
125
+ const contentPos = this.getContentPosition();
126
+ const calculateFirst = (_index = 0, _numT) => (_index <= _numT ? 0 : _index);
127
+ const calculateCoord = (_first, _size, _cpos) => (_first * _size) + _cpos;
128
+ const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });
129
+
130
+ if (both) {
131
+ const newFirst = { rows: calculateFirst(index[0], this.d_numToleratedItems[0]), cols: calculateFirst(index[1], this.d_numToleratedItems[1]) };
132
+ if (newFirst.rows !== this.first.rows || newFirst.cols !== this.first.cols) {
133
+ scrollTo(calculateCoord(newFirst.cols, this.itemSize[1], contentPos.left), calculateCoord(newFirst.rows, this.itemSize[0], contentPos.top));
134
+ this.first = newFirst;
135
+ }
136
+ }
137
+ else {
138
+ const newFirst = calculateFirst(index, this.d_numToleratedItems);
139
+
140
+ if (newFirst !== this.first) {
141
+ horizontal ? scrollTo(calculateCoord(newFirst, this.itemSize, contentPos.left), 0) : scrollTo(0, calculateCoord(newFirst, this.itemSize, contentPos.top));
142
+ this.first = newFirst;
143
+ }
87
144
  }
88
145
  },
89
- getLast(last, isCols) {
90
- return this.items ? Math.min((isCols ? this.items[0].length : this.items.length), last) : 0;
146
+ scrollInView(index, to, behavior = 'auto') {
147
+ if (to) {
148
+ const both = this.isBoth();
149
+ const horizontal = this.isHorizontal();
150
+ const { first, viewport } = this.getRenderedRange();
151
+ const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });
152
+ const isToStart = to === 'to-start';
153
+ const isToEnd = to === 'to-end';
154
+
155
+ if (isToStart) {
156
+ if (both) {
157
+ if (viewport.first.rows - first.rows > index[0]) {
158
+ scrollTo(viewport.first.cols * this.itemSize[1], (viewport.first.rows - 1) * this.itemSize[0]);
159
+ }
160
+ else if (viewport.first.cols - first.cols > index[1]) {
161
+ scrollTo((viewport.first.cols - 1) * this.itemSize[1], viewport.first.rows * this.itemSize[0]);
162
+ }
163
+ }
164
+ else {
165
+ if (viewport.first - first > index) {
166
+ const pos = (viewport.first - 1) * this.itemSize;
167
+ horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);
168
+ }
169
+ }
170
+ }
171
+ else if (isToEnd) {
172
+ if (both) {
173
+ if (viewport.last.rows - first.rows <= index[0] + 1) {
174
+ scrollTo(viewport.first.cols * this.itemSize[1], (viewport.first.rows + 1) * this.itemSize[0]);
175
+ }
176
+ else if (viewport.last.cols - first.cols <= index[1] + 1) {
177
+ scrollTo((viewport.first.cols + 1) * this.itemSize[1], viewport.first.rows * this.itemSize[0]);
178
+ }
179
+ }
180
+ else {
181
+ if (viewport.last - first <= index + 1) {
182
+ const pos = (viewport.first + 1) * this.itemSize;
183
+ horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);
184
+ }
185
+ }
186
+ }
187
+ }
188
+ else {
189
+ this.scrollToIndex(index, behavior);
190
+ }
191
+ },
192
+ getRenderedRange() {
193
+ const calculateFirstInViewport = (_pos, _size) => Math.floor(_pos / (_size || _pos));
194
+
195
+ let firstInViewport = this.first;
196
+ let lastInViewport = 0;
197
+
198
+ if (this.element) {
199
+ const both = this.isBoth();
200
+ const horizontal = this.isHorizontal();
201
+ const scrollTop = this.element.scrollTop;
202
+ const scrollLeft = this.element.scrollLeft;
203
+
204
+ if (both) {
205
+ firstInViewport = { rows: calculateFirstInViewport(scrollTop, this.itemSize[0]), cols: calculateFirstInViewport(scrollLeft, this.itemSize[1]) };
206
+ lastInViewport = { rows: firstInViewport.rows + this.numItemsInViewport.rows, cols: firstInViewport.cols + this.numItemsInViewport.cols };
207
+ }
208
+ else {
209
+ const scrollPos = horizontal ? scrollLeft : scrollTop;
210
+ firstInViewport = calculateFirstInViewport(scrollPos, this.itemSize);
211
+ lastInViewport = firstInViewport + this.numItemsInViewport;
212
+ }
213
+ }
214
+
215
+ return {
216
+ first: this.first,
217
+ last: this.last,
218
+ viewport: {
219
+ first: firstInViewport,
220
+ last: lastInViewport
221
+ }
222
+ };
91
223
  },
92
224
  calculateOptions() {
93
- const isBoth = this.isBoth();
94
- const isHorizontal = this.isHorizontal();
95
- const first = this.first;
96
- const itemSize = this.itemSize;
97
- const contentPadding = this.getContentPadding();
98
- const contentWidth = this.element ? this.element.offsetWidth - contentPadding.left : 0;
99
- const contentHeight = this.element ? this.element.offsetHeight - contentPadding.top : 0;
225
+ const both = this.isBoth();
226
+ const horizontal = this.isHorizontal();
227
+ const contentPos = this.getContentPosition();
228
+ const contentWidth = this.element ? this.element.offsetWidth - contentPos.left : 0;
229
+ const contentHeight = this.element ? this.element.offsetHeight - contentPos.top : 0;
100
230
  const calculateNumItemsInViewport = (_contentSize, _itemSize) => Math.ceil(_contentSize / (_itemSize || _contentSize));
101
- const numItemsInViewport = isBoth ?
102
- { rows: calculateNumItemsInViewport(contentHeight, itemSize[0]), cols: calculateNumItemsInViewport(contentWidth, itemSize[1]) } :
103
- calculateNumItemsInViewport((isHorizontal ? contentWidth : contentHeight), itemSize);
231
+ const calculateNumToleratedItems = (_numItems) => Math.ceil(_numItems / 2);
232
+ const numItemsInViewport = both ?
233
+ { rows: calculateNumItemsInViewport(contentHeight, this.itemSize[0]), cols: calculateNumItemsInViewport(contentWidth, this.itemSize[1]) } :
234
+ calculateNumItemsInViewport((horizontal ? contentWidth : contentHeight), this.itemSize);
104
235
 
105
- let numToleratedItems = this.d_numToleratedItems || Math.ceil((isBoth ? numItemsInViewport.rows : numItemsInViewport) / 2);
106
- const calculateLast = (_first, _num, _isCols) => this.getLast(_first + _num + ((_first < numToleratedItems ? 2 : 3) * numToleratedItems), _isCols);
107
- const last = isBoth ?
108
- { rows: calculateLast(first.rows, numItemsInViewport.rows), cols: calculateLast(first.cols, numItemsInViewport.cols, true) } :
109
- calculateLast(first, numItemsInViewport);
236
+ let numToleratedItems = this.d_numToleratedItems || (both ?
237
+ [calculateNumToleratedItems(numItemsInViewport.rows), calculateNumToleratedItems(numItemsInViewport.cols)] :
238
+ calculateNumToleratedItems(numItemsInViewport));
239
+
240
+ const calculateLast = (_first, _num, _numT, _isCols) => this.getLast(_first + _num + ((_first < _numT ? 2 : 3) * _numT), _isCols);
241
+ const last = both ?
242
+ { rows: calculateLast(this.first.rows, numItemsInViewport.rows, numToleratedItems[0]), cols: calculateLast(this.first.cols, numItemsInViewport.cols, numToleratedItems[1], true) } :
243
+ calculateLast(this.first, numItemsInViewport, numToleratedItems);
110
244
 
111
- this.d_numToleratedItems = numToleratedItems;
112
- this.$emit('update:numToleratedItems', this.d_numToleratedItems);
113
245
  this.last = last;
114
246
  this.numItemsInViewport = numItemsInViewport;
247
+ this.d_numToleratedItems = numToleratedItems;
248
+ this.$emit('update:numToleratedItems', this.d_numToleratedItems);
115
249
 
116
250
  if (this.showLoader) {
117
- if (this.$slots && this.$slots.loader) {
118
- this.loaderArr = Array.from({ length: (isBoth ? numItemsInViewport.rows : numItemsInViewport) });
119
- }
120
- else {
121
- this.loaderArr = Array.from({ length: 1});
122
- }
251
+ this.loaderArr = both ?
252
+ Array.from({ length: numItemsInViewport.rows }).map(() => Array.from({ length: numItemsInViewport.cols })) :
253
+ Array.from({ length: numItemsInViewport });
123
254
  }
124
255
 
125
256
  if (this.lazy) {
126
- this.$emit('lazy-load', { first, last });
257
+ this.$emit('lazy-load', { first: this.first, last });
127
258
  }
128
259
  },
129
- getContentPadding() {
260
+ getLast(last = 0, isCols) {
261
+ if (this.items) {
262
+ return Math.min((isCols ? (this.columns || this.items[0]).length : this.items.length), last);
263
+ }
264
+
265
+ return 0;
266
+ },
267
+ getContentPosition() {
130
268
  if (this.content) {
131
269
  const style = getComputedStyle(this.content);
132
- const left = parseInt(parseFloat(style.paddingLeft.slice(0, -2)), 10);
133
- const right = parseInt(parseFloat(style.paddingRight.slice(0, -2)), 10);
134
- const top = parseInt(parseFloat(style.paddingTop.slice(0, -2)), 10);
135
- const bottom = parseInt(parseFloat(style.paddingBottom.slice(0, -2)), 10);
270
+ const left = parseInt(style.paddingLeft, 10) + Math.max(parseInt(style.left, 10), 0);
271
+ const right = parseInt(style.paddingRight, 10) + Math.max(parseInt(style.right, 10), 0);
272
+ const top = parseInt(style.paddingTop, 10) + Math.max(parseInt(style.top, 10), 0);
273
+ const bottom = parseInt(style.paddingBottom, 10) + Math.max(parseInt(style.bottom, 10), 0);
136
274
 
137
275
  return { left, right, top, bottom, x: left + right, y: top + bottom };
138
276
  }
@@ -141,126 +279,125 @@ var script = {
141
279
  },
142
280
  setSize() {
143
281
  if (this.element) {
144
- const isBoth = this.isBoth();
145
- const isHorizontal = this.isHorizontal();
282
+ const both = this.isBoth();
283
+ const horizontal = this.isHorizontal();
146
284
  const parentElement = this.element.parentElement;
147
285
  const width = this.scrollWidth || `${(this.element.offsetWidth || parentElement.offsetWidth)}px`;
148
286
  const height = this.scrollHeight || `${(this.element.offsetHeight || parentElement.offsetHeight)}px`;
149
287
  const setProp = (_name, _value) => this.element.style[_name] = _value;
150
288
 
151
- if (isBoth) {
289
+ if (both || horizontal) {
152
290
  setProp('height', height);
153
291
  setProp('width', width);
154
292
  }
155
293
  else {
156
- isHorizontal ? setProp('width', width) : setProp('height', height);
294
+ setProp('height', height);
157
295
  }
158
296
  }
159
297
  },
160
298
  setSpacerSize() {
161
299
  const items = this.items;
162
300
 
163
- if (this.spacer && items) {
164
- const isBoth = this.isBoth();
165
- const isHorizontal = this.isHorizontal();
166
- const itemSize = this.itemSize;
167
- const contentPadding = this.getContentPadding();
168
- const setProp = (_name, _value, _size, _padding = 0) => this.spacer.style[_name] = (((_value || []).length * _size) + _padding) + 'px';
301
+ if (items) {
302
+ const both = this.isBoth();
303
+ const horizontal = this.isHorizontal();
304
+ const contentPos = this.getContentPosition();
305
+ const setProp = (_name, _value, _size, _cpos = 0) => this.spacerStyle = { ...this.spacerStyle, ...{ [`${_name}`]: (((_value || []).length * _size) + _cpos) + 'px' } };
169
306
 
170
- if (isBoth) {
171
- setProp('height', items[0], itemSize[0], contentPadding.y);
172
- setProp('width', items[1], itemSize[1], contentPadding.x);
307
+ if (both) {
308
+ setProp('height', items, this.itemSize[0], contentPos.y);
309
+ setProp('width', (this.columns || items[1]), this.itemSize[1], contentPos.x);
173
310
  }
174
311
  else {
175
- isHorizontal ? setProp('width', items, itemSize, contentPadding.x) : setProp('height', items, itemSize, contentPadding.y);
312
+ horizontal ? setProp('width', (this.columns || items), this.itemSize, contentPos.x) : setProp('height', items, this.itemSize, contentPos.y);
176
313
  }
177
314
  }
178
315
  },
179
316
  setContentPosition(pos) {
180
317
  if (this.content) {
181
- const isBoth = this.isBoth();
182
- const isHorizontal = this.isHorizontal();
183
- const content = this.content;
318
+ const both = this.isBoth();
319
+ const horizontal = this.isHorizontal();
184
320
  const first = pos ? pos.first : this.first;
185
- const itemSize = this.itemSize;
186
321
  const calculateTranslateVal = (_first, _size) => (_first * _size);
187
- const setTransform = (_x = 0, _y = 0) => content.style.transform = `translate3d(${_x}px, ${_y}px, 0)`;
322
+ const setTransform = (_x = 0, _y = 0) => {
323
+ this.contentStyle = { ...this.contentStyle, ...{ transform: `translate3d(${_x}px, ${_y}px, 0)` } };
324
+ };
188
325
 
189
- if (isBoth) {
190
- setTransform(calculateTranslateVal(first.cols, itemSize[1]), calculateTranslateVal(first.rows, itemSize[0]));
326
+ if (both) {
327
+ setTransform(calculateTranslateVal(first.cols, this.itemSize[1]), calculateTranslateVal(first.rows, this.itemSize[0]));
191
328
  }
192
329
  else {
193
- const translateVal = calculateTranslateVal(first, itemSize);
194
- isHorizontal ? setTransform(translateVal, 0) : setTransform(0, translateVal);
330
+ const translateVal = calculateTranslateVal(first, this.itemSize);
331
+ horizontal ? setTransform(translateVal, 0) : setTransform(0, translateVal);
195
332
  }
196
333
  }
197
334
  },
198
335
  onScrollPositionChange(event) {
199
336
  const target = event.target;
200
- const isBoth = this.isBoth();
201
- const isHorizontal = this.isHorizontal();
202
- const itemSize = this.itemSize;
203
- const contentPadding = this.getContentPadding();
204
- const calculateScrollPos = (_pos, _padding) => _pos ? (_pos > _padding ? _pos - _padding : _pos) : 0;
337
+ const both = this.isBoth();
338
+ const horizontal = this.isHorizontal();
339
+ const contentPos = this.getContentPosition();
340
+ const calculateScrollPos = (_pos, _cpos) => _pos ? (_pos > _cpos ? _pos - _cpos : _pos) : 0;
205
341
  const calculateCurrentIndex = (_pos, _size) => Math.floor(_pos / (_size || _pos));
206
- const calculateTriggerIndex = (_currentIndex, _first, _last, _num, _isScrollDownOrRight) => {
207
- return (_currentIndex <= this.d_numToleratedItems ? this.d_numToleratedItems : (_isScrollDownOrRight ? (_last - _num - this.d_numToleratedItems) : (_first + this.d_numToleratedItems - 1)))
342
+ const calculateTriggerIndex = (_currentIndex, _first, _last, _num, _numT, _isScrollDownOrRight) => {
343
+ return (_currentIndex <= _numT ? _numT : (_isScrollDownOrRight ? (_last - _num - _numT) : (_first + _numT - 1)))
208
344
  };
209
- const calculateFirst = (_currentIndex, _triggerIndex, _first, _last, _num, _isScrollDownOrRight) => {
210
- if (_currentIndex <= this.d_numToleratedItems)
345
+ const calculateFirst = (_currentIndex, _triggerIndex, _first, _last, _num, _numT, _isScrollDownOrRight) => {
346
+ if (_currentIndex <= _numT)
211
347
  return 0;
212
348
  else
213
- return _isScrollDownOrRight ?
214
- (_currentIndex < _triggerIndex ? _first : _currentIndex - this.d_numToleratedItems) :
215
- (_currentIndex > _triggerIndex ? _first : _currentIndex - (2 * this.d_numToleratedItems));
349
+ return Math.max(0, _isScrollDownOrRight ?
350
+ (_currentIndex < _triggerIndex ? _first : _currentIndex - _numT) :
351
+ (_currentIndex > _triggerIndex ? _first : _currentIndex - (2 * _numT)));
216
352
  };
217
- const calculateLast = (_currentIndex, _first, _last, _num, _isCols) => {
218
- let lastValue = _first + _num + (2 * this.d_numToleratedItems);
353
+ const calculateLast = (_currentIndex, _first, _last, _num, _numT, _isCols) => {
354
+ let lastValue = _first + _num + (2 * _numT);
219
355
 
220
- if (_currentIndex >= this.d_numToleratedItems) {
221
- lastValue += (this.d_numToleratedItems + 1);
356
+ if (_currentIndex >= _numT) {
357
+ lastValue += (_numT + 1);
222
358
  }
223
359
 
224
360
  return this.getLast(lastValue, _isCols);
225
361
  };
226
362
 
227
- const scrollTop = calculateScrollPos(target.scrollTop, contentPadding.top);
228
- const scrollLeft = calculateScrollPos(target.scrollLeft, contentPadding.left);
363
+ const scrollTop = calculateScrollPos(target.scrollTop, contentPos.top);
364
+ const scrollLeft = calculateScrollPos(target.scrollLeft, contentPos.left);
229
365
 
230
366
  let newFirst = 0;
231
367
  let newLast = this.last;
232
368
  let isRangeChanged = false;
233
369
 
234
- if (isBoth) {
370
+ if (both) {
235
371
  const isScrollDown = this.lastScrollPos.top <= scrollTop;
236
372
  const isScrollRight = this.lastScrollPos.left <= scrollLeft;
237
- const currentIndex = { rows: calculateCurrentIndex(scrollTop, itemSize[0]), cols: calculateCurrentIndex(scrollLeft, itemSize[1]) };
373
+ const currentIndex = { rows: calculateCurrentIndex(scrollTop, this.itemSize[0]), cols: calculateCurrentIndex(scrollLeft, this.itemSize[1]) };
238
374
  const triggerIndex = {
239
- rows: calculateTriggerIndex(currentIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, isScrollDown),
240
- cols: calculateTriggerIndex(currentIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, isScrollRight)
375
+ rows: calculateTriggerIndex(currentIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),
376
+ cols: calculateTriggerIndex(currentIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)
241
377
  };
242
378
 
243
379
  newFirst = {
244
- rows: calculateFirst(currentIndex.rows, triggerIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, isScrollDown),
245
- cols: calculateFirst(currentIndex.cols, triggerIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, isScrollRight)
380
+ rows: calculateFirst(currentIndex.rows, triggerIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),
381
+ cols: calculateFirst(currentIndex.cols, triggerIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)
246
382
  };
247
383
  newLast = {
248
- rows: calculateLast(currentIndex.rows, newFirst.rows, this.last.rows, this.numItemsInViewport.rows),
249
- cols: calculateLast(currentIndex.cols, newFirst.cols, this.last.cols, this.numItemsInViewport.cols, true)
384
+ rows: calculateLast(currentIndex.rows, newFirst.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0]),
385
+ cols: calculateLast(currentIndex.cols, newFirst.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], true)
250
386
  };
251
- isRangeChanged = (newFirst.rows !== this.first.rows || newFirst.cols !== this.first.cols) || (newLast.rows !== this.last.rows || newLast.cols !== this.last.cols);
387
+
388
+ isRangeChanged = (newFirst.rows !== this.first.rows && newLast.rows !== this.last.rows) || (newFirst.cols !== this.first.cols && newLast.cols !== this.last.cols);
252
389
 
253
390
  this.lastScrollPos = { top: scrollTop, left: scrollLeft };
254
391
  }
255
392
  else {
256
- const scrollPos = isHorizontal ? scrollLeft : scrollTop;
393
+ const scrollPos = horizontal ? scrollLeft : scrollTop;
257
394
  const isScrollDownOrRight = this.lastScrollPos <= scrollPos;
258
- const currentIndex = calculateCurrentIndex(scrollPos, itemSize);
259
- const triggerIndex = calculateTriggerIndex(currentIndex, this.first, this.last, this.numItemsInViewport, isScrollDownOrRight);
395
+ const currentIndex = calculateCurrentIndex(scrollPos, this.itemSize);
396
+ const triggerIndex = calculateTriggerIndex(currentIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);
260
397
 
261
- newFirst = calculateFirst(currentIndex, triggerIndex, this.first, this.last, this.numItemsInViewport, isScrollDownOrRight);
262
- newLast = calculateLast(currentIndex, newFirst, this.last, this.numItemsInViewport);
263
- isRangeChanged = newFirst !== this.first || newLast !== this.last;
398
+ newFirst = calculateFirst(currentIndex, triggerIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);
399
+ newLast = calculateLast(currentIndex, newFirst, this.last, this.numItemsInViewport, this.d_numToleratedItems);
400
+ isRangeChanged = newFirst !== this.first && newLast !== this.last;
264
401
 
265
402
  this.lastScrollPos = scrollPos;
266
403
  }
@@ -279,27 +416,27 @@ var script = {
279
416
 
280
417
  this.setContentPosition(newState);
281
418
 
282
- if (this.lazy) {
283
- this.$emit('lazy-load', { first, last });
284
- }
285
419
  this.first = first;
286
420
  this.last = last;
287
421
 
288
- this.$emit('scroll-index-change', { first, last });
422
+ this.$emit('scroll-index-change', newState);
423
+
424
+ if (this.lazy) {
425
+ this.$emit('lazy-load', newState);
426
+ }
289
427
  }
290
428
  },
291
429
  onScroll(event) {
292
- if (this.delay && !this.lazy) {
430
+ this.$emit('scroll', event);
431
+
432
+ if (this.delay) {
293
433
  if (this.scrollTimeout) {
294
434
  clearTimeout(this.scrollTimeout);
295
435
  }
296
436
 
297
437
  if (!this.d_loading && this.showLoader) {
298
438
  const { isRangeChanged: changed } = this.onScrollPositionChange(event);
299
-
300
- if (changed) {
301
- this.d_loading = true;
302
- }
439
+ changed && (this.d_loading = true);
303
440
  }
304
441
 
305
442
  this.scrollTimeout = setTimeout(() => {
@@ -315,8 +452,8 @@ var script = {
315
452
  }
316
453
  },
317
454
  getOptions(renderedIndex) {
318
- let count = this.items.length;
319
- let index = this.isBoth() ? this.first.rows + renderedIndex : this.first + renderedIndex;
455
+ const count = (this.items || []).length;
456
+ const index = this.isBoth() ? this.first.rows + renderedIndex : this.first + renderedIndex;
320
457
  return {
321
458
  index,
322
459
  count,
@@ -326,139 +463,23 @@ var script = {
326
463
  odd: index % 2 !== 0
327
464
  };
328
465
  },
329
- getLoaderOptions(index) {
466
+ getLoaderOptions(index, extOptions) {
330
467
  let count = this.loaderArr.length;
331
468
  return {
332
- loading: this.d_loading,
469
+ index,
470
+ count,
333
471
  first: index === 0,
334
472
  last: index === (count - 1),
335
473
  even: index % 2 === 0,
336
- odd: index % 2 !== 0
337
- }
338
- },
339
- isHorizontal() {
340
- return this.orientation === 'horizontal';
341
- },
342
- isBoth() {
343
- return this.orientation === 'both';
344
- },
345
- scrollTo(options) {
346
- if (this.element) {
347
- this.element.scrollTo(options);
348
- }
349
- },
350
- scrollToIndex(index, behavior = 'auto') {
351
- const isBoth = this.isBoth();
352
- const isHorizontal = this.isHorizontal();
353
- const itemSize = this.itemSize;
354
- const contentPadding = this.getContentPadding();
355
- const calculateFirst = (_index = 0) => (_index <= this.d_numToleratedItems ? 0 : _index);
356
- const calculateCoord = (_first, _size, _padding) => (_first * _size) + _padding;
357
- const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });
358
-
359
- if (isBoth) {
360
- const newFirst = { rows: calculateFirst(index[0]), cols: calculateFirst(index[1]) };
361
- if (newFirst.rows !== this.first.rows || newFirst.cols !== this.first.cols)
362
- scrollTo(calculateCoord(newFirst.cols, itemSize[1], contentPadding.left),calculateCoord(newFirst.rows, itemSize[0], contentPadding.top));
363
- }
364
- else {
365
- const newFirst = calculateFirst(index);
366
-
367
- if (newFirst !== this.first) {
368
- isHorizontal ? scrollTo(calculateCoord(newFirst, itemSize, contentPadding.left), 0) : scrollTo(0, calculateCoord(newFirst, itemSize, contentPadding.top));
369
- }
370
-
371
- this.first = newFirst;
372
- }
373
- },
374
- scrollInView(index, to, behavior = 'auto') {
375
- if (to) {
376
- const isBoth = this.isBoth();
377
- const isHorizontal = this.isHorizontal();
378
- const { first, viewport } = this.getRenderedRange();
379
- const itemSize = this.itemSize;
380
- const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });
381
- const isToStart = to === 'to-start';
382
- const isToEnd = to === 'to-end';
383
-
384
- if (isToStart) {
385
- if (isBoth) {
386
- if (viewport.first.rows - first.rows > index[0]) {
387
- scrollTo(viewport.first.cols * itemSize[1], (viewport.first.rows - 1) * itemSize[0]);
388
- }
389
- else if (viewport.first.cols - first.cols > index[1]) {
390
- scrollTo((viewport.first.cols - 1) * itemSize[1], viewport.first.rows * itemSize[0]);
391
- }
392
- }
393
- else {
394
- if (viewport.first - first > index) {
395
- const pos = (viewport.first - 1) * itemSize;
396
- isHorizontal ? scrollTo(pos, 0) : scrollTo(0, pos);
397
- }
398
- }
399
- }
400
- else if (isToEnd) {
401
- if (isBoth) {
402
- if (viewport.last.rows - first.rows <= index[0] + 1) {
403
- scrollTo(viewport.first.cols * itemSize[1], (viewport.first.rows + 1) * itemSize[0]);
404
- }
405
- else if (viewport.last.cols - first.cols <= index[1] + 1) {
406
- scrollTo((viewport.first.cols + 1) * itemSize[1], viewport.first.rows * itemSize[0]);
407
- }
408
- }
409
- else {
410
- if (viewport.last - first <= index + 1) {
411
- const pos = (viewport.first + 1) * itemSize;
412
- isHorizontal ? scrollTo(pos, 0) : scrollTo(0, pos);
413
- }
414
- }
415
- }
416
- }
417
- else {
418
- this.scrollToIndex(index, behavior);
419
- }
420
- },
421
- getRenderedRange() {
422
- const isBoth = this.isBoth();
423
- const isHorizontal = this.isHorizontal();
424
- const itemSize = this.itemSize;
425
- const calculateFirstInViewport = (_pos, _size) => Math.floor(_pos / (_size || _pos));
426
-
427
- let firstInViewport = this.first;
428
- let lastInViewport = 0;
429
-
430
- if (this.element) {
431
- const scrollTop = this.element.scrollTop;
432
- const scrollLeft = this.element.scrollLeft;
433
-
434
- if (isBoth) {
435
- firstInViewport = { rows: calculateFirstInViewport(scrollTop, itemSize[0]), cols: calculateFirstInViewport(scrollLeft, itemSize[1]) };
436
- lastInViewport = { rows: firstInViewport.rows + this.numItemsInViewport.rows, cols: firstInViewport.cols + this.numItemsInViewport.cols };
437
- }
438
- else {
439
- const scrollPos = isHorizontal ? scrollLeft : scrollTop;
440
- firstInViewport = calculateFirstInViewport(scrollPos, itemSize);
441
- lastInViewport = firstInViewport + this.numItemsInViewport;
442
- }
474
+ odd: index % 2 !== 0,
475
+ ...extOptions
443
476
  }
444
-
445
- return {
446
- first: this.first,
447
- last: this.last,
448
- viewport: {
449
- first: firstInViewport,
450
- last: lastInViewport
451
- }
452
- };
453
477
  },
454
478
  elementRef(el) {
455
479
  this.element = el;
456
480
  },
457
481
  contentRef(el) {
458
482
  this.content = el;
459
- },
460
- spacerRef(el) {
461
- this.spacer = el;
462
483
  }
463
484
  },
464
485
  computed: {
@@ -468,6 +489,11 @@ var script = {
468
489
  'p-horizontal-scroll': this.isHorizontal()
469
490
  }, this.class];
470
491
  },
492
+ contentClass() {
493
+ return ['p-virtualscroller-content', {
494
+ 'p-virtualscroller-loading': this.d_loading
495
+ }];
496
+ },
471
497
  loaderClass() {
472
498
  return ['p-virtualscroller-loader', {
473
499
  'p-component-overlay': !this.$slots.loader
@@ -476,27 +502,41 @@ var script = {
476
502
  loadedItems() {
477
503
  const items = this.items;
478
504
  if (items && !this.d_loading) {
479
- const isBoth = this.isBoth();
480
-
481
- if (isBoth) {
482
- return items.slice(this.first.rows, this.last.rows).map((item) => {
483
- const items = item.slice(this.first.cols, this.last.cols);
484
- return items;
485
- });
486
- }
487
- else {
488
- return items.slice(this.first, this.last).map((item) => {
489
- return item;
490
- });
505
+ if (this.isBoth()) {
506
+ return items.slice(this.first.rows, this.last.rows).map(item => this.columns ? item : item.slice(this.first.cols, this.last.cols));
491
507
  }
508
+ else if (this.isHorizontal() && this.columns)
509
+ return items;
510
+ else
511
+ return items.slice(this.first, this.last);
492
512
  }
493
513
 
494
514
  return [];
515
+ },
516
+ loadedRows() {
517
+ return this.d_loading ? (this.loaderDisabled ? this.loaderArr : []) : this.loadedItems;
518
+ },
519
+ loadedColumns() {
520
+ if (this.columns) {
521
+ const both = this.isBoth();
522
+ const horizontal = this.isHorizontal();
523
+
524
+ if (both || horizontal) {
525
+ return this.d_loading && this.loaderDisabled ?
526
+ (both ? this.loaderArr[0] : this.loaderArr):
527
+ this.columns.slice((both ? this.first.cols : this.first), (both ? this.last.cols : this.last));
528
+ }
529
+ }
530
+
531
+ return this.columns;
495
532
  }
496
533
  }
497
534
  };
498
535
 
499
- const _hoisted_1 = /*#__PURE__*/vue.createVNode("i", { class: "p-virtualscroller-loading-icon pi pi-spinner pi-spin" }, null, -1);
536
+ const _hoisted_1 = {
537
+ key: 1,
538
+ class: "p-virtualscroller-loading-icon pi pi-spinner pi-spin"
539
+ };
500
540
 
501
541
  function render(_ctx, _cache, $props, $setup, $data, $options) {
502
542
  return (!$props.disabled)
@@ -504,18 +544,30 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
504
544
  key: 0,
505
545
  ref: $options.elementRef,
506
546
  class: $options.containerClass,
547
+ tabindex: 0,
507
548
  style: $props.style,
508
549
  onScroll: _cache[1] || (_cache[1] = (...args) => ($options.onScroll && $options.onScroll(...args)))
509
550
  }, [
510
551
  vue.renderSlot(_ctx.$slots, "content", {
511
- styleClass: "p-virtualscroller-content",
512
- contentRef: $options.contentRef,
552
+ styleClass: $options.contentClass,
513
553
  items: $options.loadedItems,
514
- getItemOptions: $options.getOptions
554
+ getItemOptions: $options.getOptions,
555
+ loading: $data.d_loading,
556
+ getLoaderOptions: $options.getLoaderOptions,
557
+ itemSize: $props.itemSize,
558
+ rows: $options.loadedRows,
559
+ columns: $options.loadedColumns,
560
+ contentRef: $options.contentRef,
561
+ spacerStyle: $data.spacerStyle,
562
+ contentStyle: $data.contentStyle,
563
+ vertical: $options.isVertical(),
564
+ horizontal: $options.isHorizontal(),
565
+ both: $options.isBoth()
515
566
  }, () => [
516
567
  vue.createVNode("div", {
517
568
  ref: $options.contentRef,
518
- class: "p-virtualscroller-content"
569
+ class: $options.contentClass,
570
+ style: $data.contentStyle
519
571
  }, [
520
572
  (vue.openBlock(true), vue.createBlock(vue.Fragment, null, vue.renderList($options.loadedItems, (item, index) => {
521
573
  return vue.renderSlot(_ctx.$slots, "item", {
@@ -524,31 +576,38 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
524
576
  options: $options.getOptions(index)
525
577
  })
526
578
  }), 128))
527
- ], 512)
579
+ ], 6)
528
580
  ]),
529
- vue.createVNode("div", {
530
- ref: $options.spacerRef,
531
- class: "p-virtualscroller-spacer"
532
- }, null, 512),
533
- ($data.d_loading)
581
+ ($props.showSpacer)
534
582
  ? (vue.openBlock(), vue.createBlock("div", {
535
583
  key: 0,
584
+ class: "p-virtualscroller-spacer",
585
+ style: $data.spacerStyle
586
+ }, null, 4))
587
+ : vue.createCommentVNode("", true),
588
+ (!$props.loaderDisabled && $props.showLoader && $data.d_loading)
589
+ ? (vue.openBlock(), vue.createBlock("div", {
590
+ key: 1,
536
591
  class: $options.loaderClass
537
592
  }, [
538
- (vue.openBlock(true), vue.createBlock(vue.Fragment, null, vue.renderList($data.loaderArr, (loadItem, index) => {
539
- return vue.renderSlot(_ctx.$slots, "loader", {
540
- key: index,
541
- options: $options.getLoaderOptions(index)
542
- }, () => [
543
- _hoisted_1
544
- ])
545
- }), 128))
593
+ (_ctx.$slots && _ctx.$slots.loader)
594
+ ? (vue.openBlock(true), vue.createBlock(vue.Fragment, { key: 0 }, vue.renderList($data.loaderArr, (_, index) => {
595
+ return vue.renderSlot(_ctx.$slots, "loader", {
596
+ key: index,
597
+ options: $options.getLoaderOptions(index, $options.isBoth() && { numCols: _ctx.d_numItemsInViewport.cols })
598
+ })
599
+ }), 128))
600
+ : (vue.openBlock(), vue.createBlock("i", _hoisted_1))
546
601
  ], 2))
547
602
  : vue.createCommentVNode("", true)
548
603
  ], 38))
549
604
  : (vue.openBlock(), vue.createBlock(vue.Fragment, { key: 1 }, [
550
605
  vue.renderSlot(_ctx.$slots, "default"),
551
- vue.renderSlot(_ctx.$slots, "content", { items: $props.items })
606
+ vue.renderSlot(_ctx.$slots, "content", {
607
+ items: $props.items,
608
+ rows: $props.items,
609
+ columns: $options.loadedColumns
610
+ })
552
611
  ], 64))
553
612
  }
554
613
 
@@ -579,7 +638,7 @@ function styleInject(css, ref) {
579
638
  }
580
639
  }
581
640
 
582
- var css_248z = "\n.p-virtualscroller {\n position: relative;\n overflow: auto;\n contain: strict;\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n will-change: scroll-position;\n}\n.p-virtualscroller-content {\n position: absolute;\n top: 0;\n left: 0;\n contain: content;\n min-height: 100%;\n min-width: 100%;\n will-change: transform;\n}\n.p-virtualscroller-spacer {\n position: absolute;\n top: 0;\n left: 0;\n height: 1px;\n width: 1px;\n -webkit-transform-origin: 0 0;\n transform-origin: 0 0;\n pointer-events: none;\n}\n.p-virtualscroller .p-virtualscroller-loader {\n position: sticky;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n.p-virtualscroller-loader.p-component-overlay {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n";
641
+ var css_248z = "\n.p-virtualscroller {\n position: relative;\n overflow: auto;\n contain: strict;\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n will-change: scroll-position;\n outline: 0 none;\n}\n.p-virtualscroller-content {\n position: absolute;\n top: 0;\n left: 0;\n contain: content;\n min-height: 100%;\n min-width: 100%;\n will-change: transform;\n}\n.p-virtualscroller-spacer {\n position: absolute;\n top: 0;\n left: 0;\n height: 1px;\n width: 1px;\n -webkit-transform-origin: 0 0;\n transform-origin: 0 0;\n pointer-events: none;\n}\n.p-virtualscroller .p-virtualscroller-loader {\n position: sticky;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n.p-virtualscroller-loader.p-component-overlay {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n";
583
642
  styleInject(css_248z);
584
643
 
585
644
  script.render = render;