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
@@ -2,15 +2,21 @@ import { openBlock, createBlock, renderSlot, createVNode, Fragment, renderList,
2
2
 
3
3
  var script = {
4
4
  name: 'VirtualScroller',
5
- emits: ['update:numToleratedItems', 'scroll-index-change', 'lazy-load'],
5
+ emits: ['update:numToleratedItems', 'scroll', 'scroll-index-change', 'lazy-load'],
6
6
  props: {
7
+ id: {
8
+ type: String,
9
+ default: null
10
+ },
11
+ style: null,
12
+ class: null,
7
13
  items: {
8
14
  type: Array,
9
15
  default: null
10
16
  },
11
17
  itemSize: {
12
18
  type: [Number,Array],
13
- default: null
19
+ default: 0
14
20
  },
15
21
  scrollHeight: null,
16
22
  scrollWidth: null,
@@ -30,17 +36,27 @@ var script = {
30
36
  type: Boolean,
31
37
  default: false
32
38
  },
33
- showLoader: {
39
+ disabled: {
40
+ type: Boolean,
41
+ default: false
42
+ },
43
+ loaderDisabled: {
34
44
  type: Boolean,
35
45
  default: false
36
46
  },
47
+ columns: {
48
+ type: Array,
49
+ default: null
50
+ },
37
51
  loading: {
38
52
  type: Boolean,
39
53
  default: false
40
54
  },
41
- style: null,
42
- class: null,
43
- disabled: {
55
+ showSpacer: {
56
+ type: Boolean,
57
+ default: true
58
+ },
59
+ showLoader: {
44
60
  type: Boolean,
45
61
  default: false
46
62
  }
@@ -53,15 +69,19 @@ var script = {
53
69
  lastScrollPos: this.isBoth() ? { top: 0, left: 0 } : 0,
54
70
  d_numToleratedItems: this.numToleratedItems,
55
71
  d_loading: this.loading,
56
- loaderArr: null
72
+ loaderArr: [],
73
+ spacerStyle: {},
74
+ contentStyle: {}
57
75
  }
58
76
  },
59
77
  element: null,
60
78
  content: null,
61
- spacer: null,
79
+ lastScrollPos: null,
62
80
  scrollTimeout: null,
63
81
  mounted() {
64
82
  this.init();
83
+
84
+ this.lastScrollPos = this.isBoth() ? { top: 0, left: 0 } : 0;
65
85
  },
66
86
  watch: {
67
87
  numToleratedItems(newValue) {
@@ -70,67 +90,185 @@ var script = {
70
90
  loading(newValue) {
71
91
  this.d_loading = newValue;
72
92
  },
73
- items(newValue, oldVal) {
74
- if (!oldVal || oldVal.length !== (newValue || []).length) {
93
+ items(newValue, oldValue) {
94
+ if (!oldValue || oldValue.length !== (newValue || []).length) {
75
95
  this.init();
76
96
  }
97
+ },
98
+ orientation() {
99
+ this.lastScrollPos = this.isBoth() ? { top: 0, left: 0 } : 0;
77
100
  }
78
101
  },
79
102
  methods: {
80
103
  init() {
81
- if (!this.disabled) {
82
- this.setSize();
83
- this.calculateOptions();
84
- this.setSpacerSize();
104
+ this.setSize();
105
+ this.calculateOptions();
106
+ this.setSpacerSize();
107
+ },
108
+ isVertical() {
109
+ return this.orientation === 'vertical';
110
+ },
111
+ isHorizontal() {
112
+ return this.orientation === 'horizontal';
113
+ },
114
+ isBoth() {
115
+ return this.orientation === 'both';
116
+ },
117
+ scrollTo(options) {
118
+ this.element && this.element.scrollTo(options);
119
+ },
120
+ scrollToIndex(index, behavior = 'auto') {
121
+ const both = this.isBoth();
122
+ const horizontal = this.isHorizontal();
123
+ const contentPos = this.getContentPosition();
124
+ const calculateFirst = (_index = 0, _numT) => (_index <= _numT ? 0 : _index);
125
+ const calculateCoord = (_first, _size, _cpos) => (_first * _size) + _cpos;
126
+ const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });
127
+
128
+ if (both) {
129
+ const newFirst = { rows: calculateFirst(index[0], this.d_numToleratedItems[0]), cols: calculateFirst(index[1], this.d_numToleratedItems[1]) };
130
+ if (newFirst.rows !== this.first.rows || newFirst.cols !== this.first.cols) {
131
+ scrollTo(calculateCoord(newFirst.cols, this.itemSize[1], contentPos.left), calculateCoord(newFirst.rows, this.itemSize[0], contentPos.top));
132
+ this.first = newFirst;
133
+ }
134
+ }
135
+ else {
136
+ const newFirst = calculateFirst(index, this.d_numToleratedItems);
137
+
138
+ if (newFirst !== this.first) {
139
+ horizontal ? scrollTo(calculateCoord(newFirst, this.itemSize, contentPos.left), 0) : scrollTo(0, calculateCoord(newFirst, this.itemSize, contentPos.top));
140
+ this.first = newFirst;
141
+ }
85
142
  }
86
143
  },
87
- getLast(last, isCols) {
88
- return this.items ? Math.min((isCols ? this.items[0].length : this.items.length), last) : 0;
144
+ scrollInView(index, to, behavior = 'auto') {
145
+ if (to) {
146
+ const both = this.isBoth();
147
+ const horizontal = this.isHorizontal();
148
+ const { first, viewport } = this.getRenderedRange();
149
+ const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });
150
+ const isToStart = to === 'to-start';
151
+ const isToEnd = to === 'to-end';
152
+
153
+ if (isToStart) {
154
+ if (both) {
155
+ if (viewport.first.rows - first.rows > index[0]) {
156
+ scrollTo(viewport.first.cols * this.itemSize[1], (viewport.first.rows - 1) * this.itemSize[0]);
157
+ }
158
+ else if (viewport.first.cols - first.cols > index[1]) {
159
+ scrollTo((viewport.first.cols - 1) * this.itemSize[1], viewport.first.rows * this.itemSize[0]);
160
+ }
161
+ }
162
+ else {
163
+ if (viewport.first - first > index) {
164
+ const pos = (viewport.first - 1) * this.itemSize;
165
+ horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);
166
+ }
167
+ }
168
+ }
169
+ else if (isToEnd) {
170
+ if (both) {
171
+ if (viewport.last.rows - first.rows <= index[0] + 1) {
172
+ scrollTo(viewport.first.cols * this.itemSize[1], (viewport.first.rows + 1) * this.itemSize[0]);
173
+ }
174
+ else if (viewport.last.cols - first.cols <= index[1] + 1) {
175
+ scrollTo((viewport.first.cols + 1) * this.itemSize[1], viewport.first.rows * this.itemSize[0]);
176
+ }
177
+ }
178
+ else {
179
+ if (viewport.last - first <= index + 1) {
180
+ const pos = (viewport.first + 1) * this.itemSize;
181
+ horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);
182
+ }
183
+ }
184
+ }
185
+ }
186
+ else {
187
+ this.scrollToIndex(index, behavior);
188
+ }
189
+ },
190
+ getRenderedRange() {
191
+ const calculateFirstInViewport = (_pos, _size) => Math.floor(_pos / (_size || _pos));
192
+
193
+ let firstInViewport = this.first;
194
+ let lastInViewport = 0;
195
+
196
+ if (this.element) {
197
+ const both = this.isBoth();
198
+ const horizontal = this.isHorizontal();
199
+ const scrollTop = this.element.scrollTop;
200
+ const scrollLeft = this.element.scrollLeft;
201
+
202
+ if (both) {
203
+ firstInViewport = { rows: calculateFirstInViewport(scrollTop, this.itemSize[0]), cols: calculateFirstInViewport(scrollLeft, this.itemSize[1]) };
204
+ lastInViewport = { rows: firstInViewport.rows + this.numItemsInViewport.rows, cols: firstInViewport.cols + this.numItemsInViewport.cols };
205
+ }
206
+ else {
207
+ const scrollPos = horizontal ? scrollLeft : scrollTop;
208
+ firstInViewport = calculateFirstInViewport(scrollPos, this.itemSize);
209
+ lastInViewport = firstInViewport + this.numItemsInViewport;
210
+ }
211
+ }
212
+
213
+ return {
214
+ first: this.first,
215
+ last: this.last,
216
+ viewport: {
217
+ first: firstInViewport,
218
+ last: lastInViewport
219
+ }
220
+ };
89
221
  },
90
222
  calculateOptions() {
91
- const isBoth = this.isBoth();
92
- const isHorizontal = this.isHorizontal();
93
- const first = this.first;
94
- const itemSize = this.itemSize;
95
- const contentPadding = this.getContentPadding();
96
- const contentWidth = this.element ? this.element.offsetWidth - contentPadding.left : 0;
97
- const contentHeight = this.element ? this.element.offsetHeight - contentPadding.top : 0;
223
+ const both = this.isBoth();
224
+ const horizontal = this.isHorizontal();
225
+ const contentPos = this.getContentPosition();
226
+ const contentWidth = this.element ? this.element.offsetWidth - contentPos.left : 0;
227
+ const contentHeight = this.element ? this.element.offsetHeight - contentPos.top : 0;
98
228
  const calculateNumItemsInViewport = (_contentSize, _itemSize) => Math.ceil(_contentSize / (_itemSize || _contentSize));
99
- const numItemsInViewport = isBoth ?
100
- { rows: calculateNumItemsInViewport(contentHeight, itemSize[0]), cols: calculateNumItemsInViewport(contentWidth, itemSize[1]) } :
101
- calculateNumItemsInViewport((isHorizontal ? contentWidth : contentHeight), itemSize);
229
+ const calculateNumToleratedItems = (_numItems) => Math.ceil(_numItems / 2);
230
+ const numItemsInViewport = both ?
231
+ { rows: calculateNumItemsInViewport(contentHeight, this.itemSize[0]), cols: calculateNumItemsInViewport(contentWidth, this.itemSize[1]) } :
232
+ calculateNumItemsInViewport((horizontal ? contentWidth : contentHeight), this.itemSize);
102
233
 
103
- let numToleratedItems = this.d_numToleratedItems || Math.ceil((isBoth ? numItemsInViewport.rows : numItemsInViewport) / 2);
104
- const calculateLast = (_first, _num, _isCols) => this.getLast(_first + _num + ((_first < numToleratedItems ? 2 : 3) * numToleratedItems), _isCols);
105
- const last = isBoth ?
106
- { rows: calculateLast(first.rows, numItemsInViewport.rows), cols: calculateLast(first.cols, numItemsInViewport.cols, true) } :
107
- calculateLast(first, numItemsInViewport);
234
+ let numToleratedItems = this.d_numToleratedItems || (both ?
235
+ [calculateNumToleratedItems(numItemsInViewport.rows), calculateNumToleratedItems(numItemsInViewport.cols)] :
236
+ calculateNumToleratedItems(numItemsInViewport));
237
+
238
+ const calculateLast = (_first, _num, _numT, _isCols) => this.getLast(_first + _num + ((_first < _numT ? 2 : 3) * _numT), _isCols);
239
+ const last = both ?
240
+ { rows: calculateLast(this.first.rows, numItemsInViewport.rows, numToleratedItems[0]), cols: calculateLast(this.first.cols, numItemsInViewport.cols, numToleratedItems[1], true) } :
241
+ calculateLast(this.first, numItemsInViewport, numToleratedItems);
108
242
 
109
- this.d_numToleratedItems = numToleratedItems;
110
- this.$emit('update:numToleratedItems', this.d_numToleratedItems);
111
243
  this.last = last;
112
244
  this.numItemsInViewport = numItemsInViewport;
245
+ this.d_numToleratedItems = numToleratedItems;
246
+ this.$emit('update:numToleratedItems', this.d_numToleratedItems);
113
247
 
114
248
  if (this.showLoader) {
115
- if (this.$slots && this.$slots.loader) {
116
- this.loaderArr = Array.from({ length: (isBoth ? numItemsInViewport.rows : numItemsInViewport) });
117
- }
118
- else {
119
- this.loaderArr = Array.from({ length: 1});
120
- }
249
+ this.loaderArr = both ?
250
+ Array.from({ length: numItemsInViewport.rows }).map(() => Array.from({ length: numItemsInViewport.cols })) :
251
+ Array.from({ length: numItemsInViewport });
121
252
  }
122
253
 
123
254
  if (this.lazy) {
124
- this.$emit('lazy-load', { first, last });
255
+ this.$emit('lazy-load', { first: this.first, last });
125
256
  }
126
257
  },
127
- getContentPadding() {
258
+ getLast(last = 0, isCols) {
259
+ if (this.items) {
260
+ return Math.min((isCols ? (this.columns || this.items[0]).length : this.items.length), last);
261
+ }
262
+
263
+ return 0;
264
+ },
265
+ getContentPosition() {
128
266
  if (this.content) {
129
267
  const style = getComputedStyle(this.content);
130
- const left = parseInt(parseFloat(style.paddingLeft.slice(0, -2)), 10);
131
- const right = parseInt(parseFloat(style.paddingRight.slice(0, -2)), 10);
132
- const top = parseInt(parseFloat(style.paddingTop.slice(0, -2)), 10);
133
- const bottom = parseInt(parseFloat(style.paddingBottom.slice(0, -2)), 10);
268
+ const left = parseInt(style.paddingLeft, 10) + Math.max(parseInt(style.left, 10), 0);
269
+ const right = parseInt(style.paddingRight, 10) + Math.max(parseInt(style.right, 10), 0);
270
+ const top = parseInt(style.paddingTop, 10) + Math.max(parseInt(style.top, 10), 0);
271
+ const bottom = parseInt(style.paddingBottom, 10) + Math.max(parseInt(style.bottom, 10), 0);
134
272
 
135
273
  return { left, right, top, bottom, x: left + right, y: top + bottom };
136
274
  }
@@ -139,126 +277,125 @@ var script = {
139
277
  },
140
278
  setSize() {
141
279
  if (this.element) {
142
- const isBoth = this.isBoth();
143
- const isHorizontal = this.isHorizontal();
280
+ const both = this.isBoth();
281
+ const horizontal = this.isHorizontal();
144
282
  const parentElement = this.element.parentElement;
145
283
  const width = this.scrollWidth || `${(this.element.offsetWidth || parentElement.offsetWidth)}px`;
146
284
  const height = this.scrollHeight || `${(this.element.offsetHeight || parentElement.offsetHeight)}px`;
147
285
  const setProp = (_name, _value) => this.element.style[_name] = _value;
148
286
 
149
- if (isBoth) {
287
+ if (both || horizontal) {
150
288
  setProp('height', height);
151
289
  setProp('width', width);
152
290
  }
153
291
  else {
154
- isHorizontal ? setProp('width', width) : setProp('height', height);
292
+ setProp('height', height);
155
293
  }
156
294
  }
157
295
  },
158
296
  setSpacerSize() {
159
297
  const items = this.items;
160
298
 
161
- if (this.spacer && items) {
162
- const isBoth = this.isBoth();
163
- const isHorizontal = this.isHorizontal();
164
- const itemSize = this.itemSize;
165
- const contentPadding = this.getContentPadding();
166
- const setProp = (_name, _value, _size, _padding = 0) => this.spacer.style[_name] = (((_value || []).length * _size) + _padding) + 'px';
299
+ if (items) {
300
+ const both = this.isBoth();
301
+ const horizontal = this.isHorizontal();
302
+ const contentPos = this.getContentPosition();
303
+ const setProp = (_name, _value, _size, _cpos = 0) => this.spacerStyle = { ...this.spacerStyle, ...{ [`${_name}`]: (((_value || []).length * _size) + _cpos) + 'px' } };
167
304
 
168
- if (isBoth) {
169
- setProp('height', items[0], itemSize[0], contentPadding.y);
170
- setProp('width', items[1], itemSize[1], contentPadding.x);
305
+ if (both) {
306
+ setProp('height', items, this.itemSize[0], contentPos.y);
307
+ setProp('width', (this.columns || items[1]), this.itemSize[1], contentPos.x);
171
308
  }
172
309
  else {
173
- isHorizontal ? setProp('width', items, itemSize, contentPadding.x) : setProp('height', items, itemSize, contentPadding.y);
310
+ horizontal ? setProp('width', (this.columns || items), this.itemSize, contentPos.x) : setProp('height', items, this.itemSize, contentPos.y);
174
311
  }
175
312
  }
176
313
  },
177
314
  setContentPosition(pos) {
178
315
  if (this.content) {
179
- const isBoth = this.isBoth();
180
- const isHorizontal = this.isHorizontal();
181
- const content = this.content;
316
+ const both = this.isBoth();
317
+ const horizontal = this.isHorizontal();
182
318
  const first = pos ? pos.first : this.first;
183
- const itemSize = this.itemSize;
184
319
  const calculateTranslateVal = (_first, _size) => (_first * _size);
185
- const setTransform = (_x = 0, _y = 0) => content.style.transform = `translate3d(${_x}px, ${_y}px, 0)`;
320
+ const setTransform = (_x = 0, _y = 0) => {
321
+ this.contentStyle = { ...this.contentStyle, ...{ transform: `translate3d(${_x}px, ${_y}px, 0)` } };
322
+ };
186
323
 
187
- if (isBoth) {
188
- setTransform(calculateTranslateVal(first.cols, itemSize[1]), calculateTranslateVal(first.rows, itemSize[0]));
324
+ if (both) {
325
+ setTransform(calculateTranslateVal(first.cols, this.itemSize[1]), calculateTranslateVal(first.rows, this.itemSize[0]));
189
326
  }
190
327
  else {
191
- const translateVal = calculateTranslateVal(first, itemSize);
192
- isHorizontal ? setTransform(translateVal, 0) : setTransform(0, translateVal);
328
+ const translateVal = calculateTranslateVal(first, this.itemSize);
329
+ horizontal ? setTransform(translateVal, 0) : setTransform(0, translateVal);
193
330
  }
194
331
  }
195
332
  },
196
333
  onScrollPositionChange(event) {
197
334
  const target = event.target;
198
- const isBoth = this.isBoth();
199
- const isHorizontal = this.isHorizontal();
200
- const itemSize = this.itemSize;
201
- const contentPadding = this.getContentPadding();
202
- const calculateScrollPos = (_pos, _padding) => _pos ? (_pos > _padding ? _pos - _padding : _pos) : 0;
335
+ const both = this.isBoth();
336
+ const horizontal = this.isHorizontal();
337
+ const contentPos = this.getContentPosition();
338
+ const calculateScrollPos = (_pos, _cpos) => _pos ? (_pos > _cpos ? _pos - _cpos : _pos) : 0;
203
339
  const calculateCurrentIndex = (_pos, _size) => Math.floor(_pos / (_size || _pos));
204
- const calculateTriggerIndex = (_currentIndex, _first, _last, _num, _isScrollDownOrRight) => {
205
- return (_currentIndex <= this.d_numToleratedItems ? this.d_numToleratedItems : (_isScrollDownOrRight ? (_last - _num - this.d_numToleratedItems) : (_first + this.d_numToleratedItems - 1)))
340
+ const calculateTriggerIndex = (_currentIndex, _first, _last, _num, _numT, _isScrollDownOrRight) => {
341
+ return (_currentIndex <= _numT ? _numT : (_isScrollDownOrRight ? (_last - _num - _numT) : (_first + _numT - 1)))
206
342
  };
207
- const calculateFirst = (_currentIndex, _triggerIndex, _first, _last, _num, _isScrollDownOrRight) => {
208
- if (_currentIndex <= this.d_numToleratedItems)
343
+ const calculateFirst = (_currentIndex, _triggerIndex, _first, _last, _num, _numT, _isScrollDownOrRight) => {
344
+ if (_currentIndex <= _numT)
209
345
  return 0;
210
346
  else
211
- return _isScrollDownOrRight ?
212
- (_currentIndex < _triggerIndex ? _first : _currentIndex - this.d_numToleratedItems) :
213
- (_currentIndex > _triggerIndex ? _first : _currentIndex - (2 * this.d_numToleratedItems));
347
+ return Math.max(0, _isScrollDownOrRight ?
348
+ (_currentIndex < _triggerIndex ? _first : _currentIndex - _numT) :
349
+ (_currentIndex > _triggerIndex ? _first : _currentIndex - (2 * _numT)));
214
350
  };
215
- const calculateLast = (_currentIndex, _first, _last, _num, _isCols) => {
216
- let lastValue = _first + _num + (2 * this.d_numToleratedItems);
351
+ const calculateLast = (_currentIndex, _first, _last, _num, _numT, _isCols) => {
352
+ let lastValue = _first + _num + (2 * _numT);
217
353
 
218
- if (_currentIndex >= this.d_numToleratedItems) {
219
- lastValue += (this.d_numToleratedItems + 1);
354
+ if (_currentIndex >= _numT) {
355
+ lastValue += (_numT + 1);
220
356
  }
221
357
 
222
358
  return this.getLast(lastValue, _isCols);
223
359
  };
224
360
 
225
- const scrollTop = calculateScrollPos(target.scrollTop, contentPadding.top);
226
- const scrollLeft = calculateScrollPos(target.scrollLeft, contentPadding.left);
361
+ const scrollTop = calculateScrollPos(target.scrollTop, contentPos.top);
362
+ const scrollLeft = calculateScrollPos(target.scrollLeft, contentPos.left);
227
363
 
228
364
  let newFirst = 0;
229
365
  let newLast = this.last;
230
366
  let isRangeChanged = false;
231
367
 
232
- if (isBoth) {
368
+ if (both) {
233
369
  const isScrollDown = this.lastScrollPos.top <= scrollTop;
234
370
  const isScrollRight = this.lastScrollPos.left <= scrollLeft;
235
- const currentIndex = { rows: calculateCurrentIndex(scrollTop, itemSize[0]), cols: calculateCurrentIndex(scrollLeft, itemSize[1]) };
371
+ const currentIndex = { rows: calculateCurrentIndex(scrollTop, this.itemSize[0]), cols: calculateCurrentIndex(scrollLeft, this.itemSize[1]) };
236
372
  const triggerIndex = {
237
- rows: calculateTriggerIndex(currentIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, isScrollDown),
238
- cols: calculateTriggerIndex(currentIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, isScrollRight)
373
+ rows: calculateTriggerIndex(currentIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),
374
+ cols: calculateTriggerIndex(currentIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)
239
375
  };
240
376
 
241
377
  newFirst = {
242
- rows: calculateFirst(currentIndex.rows, triggerIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, isScrollDown),
243
- cols: calculateFirst(currentIndex.cols, triggerIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, isScrollRight)
378
+ rows: calculateFirst(currentIndex.rows, triggerIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),
379
+ cols: calculateFirst(currentIndex.cols, triggerIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)
244
380
  };
245
381
  newLast = {
246
- rows: calculateLast(currentIndex.rows, newFirst.rows, this.last.rows, this.numItemsInViewport.rows),
247
- cols: calculateLast(currentIndex.cols, newFirst.cols, this.last.cols, this.numItemsInViewport.cols, true)
382
+ rows: calculateLast(currentIndex.rows, newFirst.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0]),
383
+ cols: calculateLast(currentIndex.cols, newFirst.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], true)
248
384
  };
249
- isRangeChanged = (newFirst.rows !== this.first.rows || newFirst.cols !== this.first.cols) || (newLast.rows !== this.last.rows || newLast.cols !== this.last.cols);
385
+
386
+ isRangeChanged = (newFirst.rows !== this.first.rows && newLast.rows !== this.last.rows) || (newFirst.cols !== this.first.cols && newLast.cols !== this.last.cols);
250
387
 
251
388
  this.lastScrollPos = { top: scrollTop, left: scrollLeft };
252
389
  }
253
390
  else {
254
- const scrollPos = isHorizontal ? scrollLeft : scrollTop;
391
+ const scrollPos = horizontal ? scrollLeft : scrollTop;
255
392
  const isScrollDownOrRight = this.lastScrollPos <= scrollPos;
256
- const currentIndex = calculateCurrentIndex(scrollPos, itemSize);
257
- const triggerIndex = calculateTriggerIndex(currentIndex, this.first, this.last, this.numItemsInViewport, isScrollDownOrRight);
393
+ const currentIndex = calculateCurrentIndex(scrollPos, this.itemSize);
394
+ const triggerIndex = calculateTriggerIndex(currentIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);
258
395
 
259
- newFirst = calculateFirst(currentIndex, triggerIndex, this.first, this.last, this.numItemsInViewport, isScrollDownOrRight);
260
- newLast = calculateLast(currentIndex, newFirst, this.last, this.numItemsInViewport);
261
- isRangeChanged = newFirst !== this.first || newLast !== this.last;
396
+ newFirst = calculateFirst(currentIndex, triggerIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);
397
+ newLast = calculateLast(currentIndex, newFirst, this.last, this.numItemsInViewport, this.d_numToleratedItems);
398
+ isRangeChanged = newFirst !== this.first && newLast !== this.last;
262
399
 
263
400
  this.lastScrollPos = scrollPos;
264
401
  }
@@ -277,27 +414,27 @@ var script = {
277
414
 
278
415
  this.setContentPosition(newState);
279
416
 
280
- if (this.lazy) {
281
- this.$emit('lazy-load', { first, last });
282
- }
283
417
  this.first = first;
284
418
  this.last = last;
285
419
 
286
- this.$emit('scroll-index-change', { first, last });
420
+ this.$emit('scroll-index-change', newState);
421
+
422
+ if (this.lazy) {
423
+ this.$emit('lazy-load', newState);
424
+ }
287
425
  }
288
426
  },
289
427
  onScroll(event) {
290
- if (this.delay && !this.lazy) {
428
+ this.$emit('scroll', event);
429
+
430
+ if (this.delay) {
291
431
  if (this.scrollTimeout) {
292
432
  clearTimeout(this.scrollTimeout);
293
433
  }
294
434
 
295
435
  if (!this.d_loading && this.showLoader) {
296
436
  const { isRangeChanged: changed } = this.onScrollPositionChange(event);
297
-
298
- if (changed) {
299
- this.d_loading = true;
300
- }
437
+ changed && (this.d_loading = true);
301
438
  }
302
439
 
303
440
  this.scrollTimeout = setTimeout(() => {
@@ -313,8 +450,8 @@ var script = {
313
450
  }
314
451
  },
315
452
  getOptions(renderedIndex) {
316
- let count = this.items.length;
317
- let index = this.isBoth() ? this.first.rows + renderedIndex : this.first + renderedIndex;
453
+ const count = (this.items || []).length;
454
+ const index = this.isBoth() ? this.first.rows + renderedIndex : this.first + renderedIndex;
318
455
  return {
319
456
  index,
320
457
  count,
@@ -324,139 +461,23 @@ var script = {
324
461
  odd: index % 2 !== 0
325
462
  };
326
463
  },
327
- getLoaderOptions(index) {
464
+ getLoaderOptions(index, extOptions) {
328
465
  let count = this.loaderArr.length;
329
466
  return {
330
- loading: this.d_loading,
467
+ index,
468
+ count,
331
469
  first: index === 0,
332
470
  last: index === (count - 1),
333
471
  even: index % 2 === 0,
334
- odd: index % 2 !== 0
335
- }
336
- },
337
- isHorizontal() {
338
- return this.orientation === 'horizontal';
339
- },
340
- isBoth() {
341
- return this.orientation === 'both';
342
- },
343
- scrollTo(options) {
344
- if (this.element) {
345
- this.element.scrollTo(options);
346
- }
347
- },
348
- scrollToIndex(index, behavior = 'auto') {
349
- const isBoth = this.isBoth();
350
- const isHorizontal = this.isHorizontal();
351
- const itemSize = this.itemSize;
352
- const contentPadding = this.getContentPadding();
353
- const calculateFirst = (_index = 0) => (_index <= this.d_numToleratedItems ? 0 : _index);
354
- const calculateCoord = (_first, _size, _padding) => (_first * _size) + _padding;
355
- const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });
356
-
357
- if (isBoth) {
358
- const newFirst = { rows: calculateFirst(index[0]), cols: calculateFirst(index[1]) };
359
- if (newFirst.rows !== this.first.rows || newFirst.cols !== this.first.cols)
360
- scrollTo(calculateCoord(newFirst.cols, itemSize[1], contentPadding.left),calculateCoord(newFirst.rows, itemSize[0], contentPadding.top));
361
- }
362
- else {
363
- const newFirst = calculateFirst(index);
364
-
365
- if (newFirst !== this.first) {
366
- isHorizontal ? scrollTo(calculateCoord(newFirst, itemSize, contentPadding.left), 0) : scrollTo(0, calculateCoord(newFirst, itemSize, contentPadding.top));
367
- }
368
-
369
- this.first = newFirst;
370
- }
371
- },
372
- scrollInView(index, to, behavior = 'auto') {
373
- if (to) {
374
- const isBoth = this.isBoth();
375
- const isHorizontal = this.isHorizontal();
376
- const { first, viewport } = this.getRenderedRange();
377
- const itemSize = this.itemSize;
378
- const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });
379
- const isToStart = to === 'to-start';
380
- const isToEnd = to === 'to-end';
381
-
382
- if (isToStart) {
383
- if (isBoth) {
384
- if (viewport.first.rows - first.rows > index[0]) {
385
- scrollTo(viewport.first.cols * itemSize[1], (viewport.first.rows - 1) * itemSize[0]);
386
- }
387
- else if (viewport.first.cols - first.cols > index[1]) {
388
- scrollTo((viewport.first.cols - 1) * itemSize[1], viewport.first.rows * itemSize[0]);
389
- }
390
- }
391
- else {
392
- if (viewport.first - first > index) {
393
- const pos = (viewport.first - 1) * itemSize;
394
- isHorizontal ? scrollTo(pos, 0) : scrollTo(0, pos);
395
- }
396
- }
397
- }
398
- else if (isToEnd) {
399
- if (isBoth) {
400
- if (viewport.last.rows - first.rows <= index[0] + 1) {
401
- scrollTo(viewport.first.cols * itemSize[1], (viewport.first.rows + 1) * itemSize[0]);
402
- }
403
- else if (viewport.last.cols - first.cols <= index[1] + 1) {
404
- scrollTo((viewport.first.cols + 1) * itemSize[1], viewport.first.rows * itemSize[0]);
405
- }
406
- }
407
- else {
408
- if (viewport.last - first <= index + 1) {
409
- const pos = (viewport.first + 1) * itemSize;
410
- isHorizontal ? scrollTo(pos, 0) : scrollTo(0, pos);
411
- }
412
- }
413
- }
414
- }
415
- else {
416
- this.scrollToIndex(index, behavior);
417
- }
418
- },
419
- getRenderedRange() {
420
- const isBoth = this.isBoth();
421
- const isHorizontal = this.isHorizontal();
422
- const itemSize = this.itemSize;
423
- const calculateFirstInViewport = (_pos, _size) => Math.floor(_pos / (_size || _pos));
424
-
425
- let firstInViewport = this.first;
426
- let lastInViewport = 0;
427
-
428
- if (this.element) {
429
- const scrollTop = this.element.scrollTop;
430
- const scrollLeft = this.element.scrollLeft;
431
-
432
- if (isBoth) {
433
- firstInViewport = { rows: calculateFirstInViewport(scrollTop, itemSize[0]), cols: calculateFirstInViewport(scrollLeft, itemSize[1]) };
434
- lastInViewport = { rows: firstInViewport.rows + this.numItemsInViewport.rows, cols: firstInViewport.cols + this.numItemsInViewport.cols };
435
- }
436
- else {
437
- const scrollPos = isHorizontal ? scrollLeft : scrollTop;
438
- firstInViewport = calculateFirstInViewport(scrollPos, itemSize);
439
- lastInViewport = firstInViewport + this.numItemsInViewport;
440
- }
472
+ odd: index % 2 !== 0,
473
+ ...extOptions
441
474
  }
442
-
443
- return {
444
- first: this.first,
445
- last: this.last,
446
- viewport: {
447
- first: firstInViewport,
448
- last: lastInViewport
449
- }
450
- };
451
475
  },
452
476
  elementRef(el) {
453
477
  this.element = el;
454
478
  },
455
479
  contentRef(el) {
456
480
  this.content = el;
457
- },
458
- spacerRef(el) {
459
- this.spacer = el;
460
481
  }
461
482
  },
462
483
  computed: {
@@ -466,6 +487,11 @@ var script = {
466
487
  'p-horizontal-scroll': this.isHorizontal()
467
488
  }, this.class];
468
489
  },
490
+ contentClass() {
491
+ return ['p-virtualscroller-content', {
492
+ 'p-virtualscroller-loading': this.d_loading
493
+ }];
494
+ },
469
495
  loaderClass() {
470
496
  return ['p-virtualscroller-loader', {
471
497
  'p-component-overlay': !this.$slots.loader
@@ -474,27 +500,41 @@ var script = {
474
500
  loadedItems() {
475
501
  const items = this.items;
476
502
  if (items && !this.d_loading) {
477
- const isBoth = this.isBoth();
478
-
479
- if (isBoth) {
480
- return items.slice(this.first.rows, this.last.rows).map((item) => {
481
- const items = item.slice(this.first.cols, this.last.cols);
482
- return items;
483
- });
484
- }
485
- else {
486
- return items.slice(this.first, this.last).map((item) => {
487
- return item;
488
- });
503
+ if (this.isBoth()) {
504
+ return items.slice(this.first.rows, this.last.rows).map(item => this.columns ? item : item.slice(this.first.cols, this.last.cols));
489
505
  }
506
+ else if (this.isHorizontal() && this.columns)
507
+ return items;
508
+ else
509
+ return items.slice(this.first, this.last);
490
510
  }
491
511
 
492
512
  return [];
513
+ },
514
+ loadedRows() {
515
+ return this.d_loading ? (this.loaderDisabled ? this.loaderArr : []) : this.loadedItems;
516
+ },
517
+ loadedColumns() {
518
+ if (this.columns) {
519
+ const both = this.isBoth();
520
+ const horizontal = this.isHorizontal();
521
+
522
+ if (both || horizontal) {
523
+ return this.d_loading && this.loaderDisabled ?
524
+ (both ? this.loaderArr[0] : this.loaderArr):
525
+ this.columns.slice((both ? this.first.cols : this.first), (both ? this.last.cols : this.last));
526
+ }
527
+ }
528
+
529
+ return this.columns;
493
530
  }
494
531
  }
495
532
  };
496
533
 
497
- const _hoisted_1 = /*#__PURE__*/createVNode("i", { class: "p-virtualscroller-loading-icon pi pi-spinner pi-spin" }, null, -1);
534
+ const _hoisted_1 = {
535
+ key: 1,
536
+ class: "p-virtualscroller-loading-icon pi pi-spinner pi-spin"
537
+ };
498
538
 
499
539
  function render(_ctx, _cache, $props, $setup, $data, $options) {
500
540
  return (!$props.disabled)
@@ -502,18 +542,30 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
502
542
  key: 0,
503
543
  ref: $options.elementRef,
504
544
  class: $options.containerClass,
545
+ tabindex: 0,
505
546
  style: $props.style,
506
547
  onScroll: _cache[1] || (_cache[1] = (...args) => ($options.onScroll && $options.onScroll(...args)))
507
548
  }, [
508
549
  renderSlot(_ctx.$slots, "content", {
509
- styleClass: "p-virtualscroller-content",
510
- contentRef: $options.contentRef,
550
+ styleClass: $options.contentClass,
511
551
  items: $options.loadedItems,
512
- getItemOptions: $options.getOptions
552
+ getItemOptions: $options.getOptions,
553
+ loading: $data.d_loading,
554
+ getLoaderOptions: $options.getLoaderOptions,
555
+ itemSize: $props.itemSize,
556
+ rows: $options.loadedRows,
557
+ columns: $options.loadedColumns,
558
+ contentRef: $options.contentRef,
559
+ spacerStyle: $data.spacerStyle,
560
+ contentStyle: $data.contentStyle,
561
+ vertical: $options.isVertical(),
562
+ horizontal: $options.isHorizontal(),
563
+ both: $options.isBoth()
513
564
  }, () => [
514
565
  createVNode("div", {
515
566
  ref: $options.contentRef,
516
- class: "p-virtualscroller-content"
567
+ class: $options.contentClass,
568
+ style: $data.contentStyle
517
569
  }, [
518
570
  (openBlock(true), createBlock(Fragment, null, renderList($options.loadedItems, (item, index) => {
519
571
  return renderSlot(_ctx.$slots, "item", {
@@ -522,31 +574,38 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
522
574
  options: $options.getOptions(index)
523
575
  })
524
576
  }), 128))
525
- ], 512)
577
+ ], 6)
526
578
  ]),
527
- createVNode("div", {
528
- ref: $options.spacerRef,
529
- class: "p-virtualscroller-spacer"
530
- }, null, 512),
531
- ($data.d_loading)
579
+ ($props.showSpacer)
532
580
  ? (openBlock(), createBlock("div", {
533
581
  key: 0,
582
+ class: "p-virtualscroller-spacer",
583
+ style: $data.spacerStyle
584
+ }, null, 4))
585
+ : createCommentVNode("", true),
586
+ (!$props.loaderDisabled && $props.showLoader && $data.d_loading)
587
+ ? (openBlock(), createBlock("div", {
588
+ key: 1,
534
589
  class: $options.loaderClass
535
590
  }, [
536
- (openBlock(true), createBlock(Fragment, null, renderList($data.loaderArr, (loadItem, index) => {
537
- return renderSlot(_ctx.$slots, "loader", {
538
- key: index,
539
- options: $options.getLoaderOptions(index)
540
- }, () => [
541
- _hoisted_1
542
- ])
543
- }), 128))
591
+ (_ctx.$slots && _ctx.$slots.loader)
592
+ ? (openBlock(true), createBlock(Fragment, { key: 0 }, renderList($data.loaderArr, (_, index) => {
593
+ return renderSlot(_ctx.$slots, "loader", {
594
+ key: index,
595
+ options: $options.getLoaderOptions(index, $options.isBoth() && { numCols: _ctx.d_numItemsInViewport.cols })
596
+ })
597
+ }), 128))
598
+ : (openBlock(), createBlock("i", _hoisted_1))
544
599
  ], 2))
545
600
  : createCommentVNode("", true)
546
601
  ], 38))
547
602
  : (openBlock(), createBlock(Fragment, { key: 1 }, [
548
603
  renderSlot(_ctx.$slots, "default"),
549
- renderSlot(_ctx.$slots, "content", { items: $props.items })
604
+ renderSlot(_ctx.$slots, "content", {
605
+ items: $props.items,
606
+ rows: $props.items,
607
+ columns: $options.loadedColumns
608
+ })
550
609
  ], 64))
551
610
  }
552
611
 
@@ -577,9 +636,9 @@ function styleInject(css, ref) {
577
636
  }
578
637
  }
579
638
 
580
- 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";
639
+ 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";
581
640
  styleInject(css_248z);
582
641
 
583
642
  script.render = render;
584
643
 
585
- export default script;
644
+ export { script as default };