primevue 3.7.0 → 3.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) hide show
  1. package/autocomplete/AutoComplete.d.ts +1 -0
  2. package/autocomplete/AutoComplete.vue +8 -1
  3. package/autocomplete/autocomplete.cjs.js +8 -1
  4. package/autocomplete/autocomplete.cjs.min.js +1 -1
  5. package/autocomplete/autocomplete.esm.js +8 -1
  6. package/autocomplete/autocomplete.esm.min.js +1 -1
  7. package/autocomplete/autocomplete.js +8 -1
  8. package/autocomplete/autocomplete.min.js +1 -1
  9. package/blockui/BlockUI.vue +1 -1
  10. package/blockui/blockui.cjs.js +1 -1
  11. package/blockui/blockui.cjs.min.js +1 -1
  12. package/blockui/blockui.esm.js +1 -1
  13. package/blockui/blockui.esm.min.js +1 -1
  14. package/blockui/blockui.js +1 -1
  15. package/blockui/blockui.min.js +1 -1
  16. package/breadcrumb/Breadcrumb.vue +4 -0
  17. package/breadcrumb/breadcrumb.cjs.js +1 -1
  18. package/breadcrumb/breadcrumb.cjs.min.js +1 -1
  19. package/breadcrumb/breadcrumb.esm.js +1 -1
  20. package/breadcrumb/breadcrumb.esm.min.js +1 -1
  21. package/breadcrumb/breadcrumb.js +1 -1
  22. package/breadcrumb/breadcrumb.min.js +1 -1
  23. package/confirmationservice/ConfirmationService.d.ts +3 -2
  24. package/core/core.js +7574 -0
  25. package/core/core.min.js +47 -0
  26. package/datatable/BodyCell.vue +36 -17
  27. package/datatable/ColumnFilter.vue +3 -3
  28. package/datatable/DataTable.d.ts +1 -1
  29. package/datatable/DataTable.vue +109 -69
  30. package/datatable/FooterCell.vue +2 -2
  31. package/datatable/HeaderCell.vue +2 -2
  32. package/datatable/TableBody.vue +10 -5
  33. package/datatable/TableFooter.vue +2 -1
  34. package/datatable/TableHeader.vue +3 -2
  35. package/datatable/datatable.cjs.js +192 -122
  36. package/datatable/datatable.cjs.min.js +1 -1
  37. package/datatable/datatable.esm.js +192 -122
  38. package/datatable/datatable.esm.min.js +1 -1
  39. package/datatable/datatable.js +192 -122
  40. package/datatable/datatable.min.js +1 -1
  41. package/dock/Dock.d.ts +1 -0
  42. package/dock/Dock.vue +1 -1
  43. package/dock/DockSub.vue +13 -8
  44. package/dock/dock.cjs.js +24 -10
  45. package/dock/dock.cjs.min.js +1 -1
  46. package/dock/dock.esm.js +20 -10
  47. package/dock/dock.esm.min.js +1 -1
  48. package/dock/dock.js +25 -12
  49. package/dock/dock.min.js +1 -1
  50. package/dropdown/Dropdown.vue +9 -8
  51. package/dropdown/dropdown.cjs.js +13 -11
  52. package/dropdown/dropdown.cjs.min.js +1 -1
  53. package/dropdown/dropdown.esm.js +13 -11
  54. package/dropdown/dropdown.esm.min.js +1 -1
  55. package/dropdown/dropdown.js +13 -11
  56. package/dropdown/dropdown.min.js +1 -1
  57. package/galleria/Galleria.vue +1 -0
  58. package/galleria/GalleriaContent.vue +10 -1
  59. package/galleria/galleria.cjs.js +11 -2
  60. package/galleria/galleria.cjs.min.js +1 -1
  61. package/galleria/galleria.esm.js +11 -2
  62. package/galleria/galleria.esm.min.js +1 -1
  63. package/galleria/galleria.js +11 -2
  64. package/galleria/galleria.min.js +1 -1
  65. package/inplace/Inplace.d.ts +1 -0
  66. package/inplace/Inplace.vue +12 -1
  67. package/inplace/inplace.cjs.js +13 -2
  68. package/inplace/inplace.cjs.min.js +1 -1
  69. package/inplace/inplace.esm.js +13 -2
  70. package/inplace/inplace.esm.min.js +1 -1
  71. package/inplace/inplace.js +13 -2
  72. package/inplace/inplace.min.js +1 -1
  73. package/inputnumber/InputNumber.d.ts +2 -0
  74. package/inputnumber/InputNumber.vue +84 -35
  75. package/inputnumber/inputnumber.cjs.js +84 -35
  76. package/inputnumber/inputnumber.cjs.min.js +1 -1
  77. package/inputnumber/inputnumber.esm.js +84 -35
  78. package/inputnumber/inputnumber.esm.min.js +1 -1
  79. package/inputnumber/inputnumber.js +84 -35
  80. package/inputnumber/inputnumber.min.js +1 -1
  81. package/inputswitch/InputSwitch.vue +6 -3
  82. package/inputswitch/inputswitch.cjs.js +6 -3
  83. package/inputswitch/inputswitch.cjs.min.js +1 -1
  84. package/inputswitch/inputswitch.esm.js +6 -3
  85. package/inputswitch/inputswitch.esm.min.js +1 -1
  86. package/inputswitch/inputswitch.js +6 -3
  87. package/inputswitch/inputswitch.min.js +1 -1
  88. package/knob/Knob.vue +1 -1
  89. package/knob/knob.cjs.js +1 -1
  90. package/knob/knob.esm.js +1 -1
  91. package/knob/knob.js +1 -1
  92. package/overlaypanel/OverlayPanel.d.ts +2 -0
  93. package/overlaypanel/OverlayPanel.vue +4 -1
  94. package/overlaypanel/overlaypanel.cjs.js +7 -3
  95. package/overlaypanel/overlaypanel.cjs.min.js +1 -1
  96. package/overlaypanel/overlaypanel.esm.js +7 -3
  97. package/overlaypanel/overlaypanel.esm.min.js +1 -1
  98. package/overlaypanel/overlaypanel.js +7 -3
  99. package/overlaypanel/overlaypanel.min.js +1 -1
  100. package/package.json +1 -1
  101. package/paginator/CurrentPageReport.vue +5 -1
  102. package/paginator/JumpToPageInput.vue +1 -1
  103. package/paginator/Paginator.vue +6 -3
  104. package/paginator/paginator.cjs.js +12 -4
  105. package/paginator/paginator.cjs.min.js +1 -1
  106. package/paginator/paginator.esm.js +12 -4
  107. package/paginator/paginator.esm.min.js +1 -1
  108. package/paginator/paginator.js +12 -4
  109. package/paginator/paginator.min.js +1 -1
  110. package/panelmenu/PanelMenuSub.vue +4 -4
  111. package/panelmenu/panelmenu.cjs.js +4 -4
  112. package/panelmenu/panelmenu.cjs.min.js +1 -1
  113. package/panelmenu/panelmenu.esm.js +4 -4
  114. package/panelmenu/panelmenu.esm.min.js +1 -1
  115. package/panelmenu/panelmenu.js +4 -4
  116. package/panelmenu/panelmenu.min.js +1 -1
  117. package/resources/primevue.css +3 -0
  118. package/resources/primevue.min.css +1 -1
  119. package/resources/themes/arya-blue/theme.css +6 -1
  120. package/resources/themes/arya-green/theme.css +6 -1
  121. package/resources/themes/arya-orange/theme.css +6 -1
  122. package/resources/themes/arya-purple/theme.css +6 -1
  123. package/resources/themes/bootstrap4-dark-blue/theme.css +6 -1
  124. package/resources/themes/bootstrap4-dark-purple/theme.css +6 -1
  125. package/resources/themes/bootstrap4-light-blue/theme.css +6 -1
  126. package/resources/themes/bootstrap4-light-purple/theme.css +6 -1
  127. package/resources/themes/fluent-light/theme.css +6 -1
  128. package/resources/themes/luna-amber/theme.css +6 -1
  129. package/resources/themes/luna-blue/theme.css +6 -1
  130. package/resources/themes/luna-green/theme.css +6 -1
  131. package/resources/themes/luna-pink/theme.css +6 -1
  132. package/resources/themes/md-dark-deeppurple/theme.css +6 -1
  133. package/resources/themes/md-dark-indigo/theme.css +6 -1
  134. package/resources/themes/md-light-deeppurple/theme.css +6 -1
  135. package/resources/themes/md-light-indigo/theme.css +6 -1
  136. package/resources/themes/mdc-dark-deeppurple/theme.css +6 -1
  137. package/resources/themes/mdc-dark-indigo/theme.css +6 -1
  138. package/resources/themes/mdc-light-deeppurple/theme.css +6 -1
  139. package/resources/themes/mdc-light-indigo/theme.css +6 -1
  140. package/resources/themes/nova/theme.css +6 -1
  141. package/resources/themes/nova-accent/theme.css +6 -1
  142. package/resources/themes/nova-alt/theme.css +6 -1
  143. package/resources/themes/nova-vue/theme.css +6 -1
  144. package/resources/themes/rhea/theme.css +6 -1
  145. package/resources/themes/saga-blue/theme.css +6 -1
  146. package/resources/themes/saga-green/theme.css +6 -1
  147. package/resources/themes/saga-orange/theme.css +6 -1
  148. package/resources/themes/saga-purple/theme.css +6 -1
  149. package/resources/themes/tailwind-light/fonts/Inter-Bold.woff +0 -0
  150. package/resources/themes/tailwind-light/fonts/Inter-Bold.woff2 +0 -0
  151. package/resources/themes/tailwind-light/fonts/Inter-Light.woff +0 -0
  152. package/resources/themes/tailwind-light/fonts/Inter-Light.woff2 +0 -0
  153. package/resources/themes/tailwind-light/fonts/Inter-Medium.woff +0 -0
  154. package/resources/themes/tailwind-light/fonts/Inter-Medium.woff2 +0 -0
  155. package/resources/themes/tailwind-light/fonts/Inter-Regular.woff +0 -0
  156. package/resources/themes/tailwind-light/fonts/Inter-Regular.woff2 +0 -0
  157. package/resources/themes/tailwind-light/fonts/Inter-SemiBold.woff +0 -0
  158. package/resources/themes/tailwind-light/fonts/Inter-SemiBold.woff2 +0 -0
  159. package/resources/themes/tailwind-light/theme.css +5440 -0
  160. package/resources/themes/vela-blue/theme.css +6 -1
  161. package/resources/themes/vela-green/theme.css +6 -1
  162. package/resources/themes/vela-orange/theme.css +6 -1
  163. package/resources/themes/vela-purple/theme.css +6 -1
  164. package/speeddial/SpeedDial.vue +2 -1
  165. package/speeddial/speeddial.cjs.js +2 -1
  166. package/speeddial/speeddial.cjs.min.js +1 -1
  167. package/speeddial/speeddial.esm.js +2 -1
  168. package/speeddial/speeddial.esm.min.js +1 -1
  169. package/speeddial/speeddial.js +2 -1
  170. package/speeddial/speeddial.min.js +1 -1
  171. package/splitter/Splitter.vue +5 -3
  172. package/splitter/splitter.cjs.js +4 -2
  173. package/splitter/splitter.cjs.min.js +1 -1
  174. package/splitter/splitter.esm.js +5 -3
  175. package/splitter/splitter.esm.min.js +1 -1
  176. package/splitter/splitter.js +4 -2
  177. package/splitter/splitter.min.js +1 -1
  178. package/tabmenu/TabMenu.vue +4 -0
  179. package/tabmenu/tabmenu.cjs.js +1 -1
  180. package/tabmenu/tabmenu.cjs.min.js +1 -1
  181. package/tabmenu/tabmenu.esm.js +1 -1
  182. package/tabmenu/tabmenu.esm.min.js +1 -1
  183. package/tabmenu/tabmenu.js +1 -1
  184. package/tabmenu/tabmenu.min.js +1 -1
  185. package/terminal/terminal.js +1 -1
  186. package/terminal/terminal.min.js +1 -1
  187. package/tieredmenu/TieredMenuSub.vue +1 -1
  188. package/tieredmenu/tieredmenu.cjs.js +1 -1
  189. package/tieredmenu/tieredmenu.cjs.min.js +1 -1
  190. package/tieredmenu/tieredmenu.esm.js +1 -1
  191. package/tieredmenu/tieredmenu.esm.min.js +1 -1
  192. package/tieredmenu/tieredmenu.js +1 -1
  193. package/tieredmenu/tieredmenu.min.js +1 -1
  194. package/toastservice/ToastService.d.ts +3 -2
  195. package/tooltip/tooltip.cjs.js +10 -3
  196. package/tooltip/tooltip.cjs.min.js +1 -1
  197. package/tooltip/tooltip.esm.js +10 -3
  198. package/tooltip/tooltip.esm.min.js +1 -1
  199. package/tooltip/tooltip.js +10 -3
  200. package/tooltip/tooltip.min.js +1 -1
  201. package/treetable/BodyCell.vue +2 -3
  202. package/treetable/FooterCell.vue +2 -2
  203. package/treetable/HeaderCell.vue +2 -2
  204. package/treetable/TreeTable.vue +2 -2
  205. package/treetable/TreeTableRow.vue +2 -2
  206. package/treetable/treetable.cjs.js +6 -6
  207. package/treetable/treetable.cjs.min.js +1 -1
  208. package/treetable/treetable.esm.js +7 -7
  209. package/treetable/treetable.esm.min.js +1 -1
  210. package/treetable/treetable.js +6 -6
  211. package/treetable/treetable.min.js +1 -1
  212. package/utils/Utils.d.ts +80 -0
  213. package/utils/package.json +3 -2
  214. package/utils/utils.cjs.js +126 -108
  215. package/utils/utils.cjs.min.js +1 -1
  216. package/utils/utils.esm.js +126 -108
  217. package/utils/utils.esm.min.js +1 -1
  218. package/utils/utils.js +126 -108
  219. package/utils/utils.min.js +1 -1
  220. package/vetur-attributes.json +12 -0
  221. package/vetur-tags.json +4 -1
  222. package/virtualscroller/VirtualScroller.vue +1 -1
  223. package/virtualscroller/virtualscroller.cjs.js +1 -1
  224. package/virtualscroller/virtualscroller.cjs.min.js +1 -1
  225. package/virtualscroller/virtualscroller.esm.js +1 -1
  226. package/virtualscroller/virtualscroller.esm.min.js +1 -1
  227. package/virtualscroller/virtualscroller.js +1 -1
  228. package/virtualscroller/virtualscroller.min.js +1 -1
  229. package/web-types.json +88 -5
package/vetur-tags.json CHANGED
@@ -25,6 +25,7 @@
25
25
  "scrollHeight",
26
26
  "dropdown",
27
27
  "dropdownMode",
28
+ "autoHighlight",
28
29
  "multiple",
29
30
  "minLength",
30
31
  "completeOnFocus",
@@ -557,7 +558,8 @@
557
558
  "description": "Inplace provides an easy to do editing and display at the same time where clicking the output displays the actual content.",
558
559
  "attributes": [
559
560
  "active",
560
- "closable"
561
+ "closable",
562
+ "diabled"
561
563
  ]
562
564
  },
563
565
  "InputMask": {
@@ -594,6 +596,7 @@
594
596
  "min",
595
597
  "max",
596
598
  "step",
599
+ "allowEmpty",
597
600
  "inputStyle",
598
601
  "inputClass",
599
602
  "class",
@@ -391,7 +391,7 @@ export default {
391
391
  isHorizontal ? scrollTo(calculateCoord(newFirst, itemSize, contentPadding.left), 0) : scrollTo(0, calculateCoord(newFirst, itemSize, contentPadding.top));
392
392
  }
393
393
 
394
- this.first = newFirst.index;
394
+ this.first = newFirst;
395
395
  }
396
396
  },
397
397
  scrollInView(index, to, behavior = 'auto') {
@@ -368,7 +368,7 @@ var script = {
368
368
  isHorizontal ? scrollTo(calculateCoord(newFirst, itemSize, contentPadding.left), 0) : scrollTo(0, calculateCoord(newFirst, itemSize, contentPadding.top));
369
369
  }
370
370
 
371
- this.first = newFirst.index;
371
+ this.first = newFirst;
372
372
  }
373
373
  },
374
374
  scrollInView(index, to, behavior = 'auto') {
@@ -1 +1 @@
1
- "use strict";var t=require("vue"),s={name:"VirtualScroller",emits:["update:numToleratedItems","scroll-index-change","lazy-load"],props:{items:{type:Array,default:null},itemSize:{type:[Number,Array],default:null},scrollHeight:null,scrollWidth:null,orientation:{type:String,default:"vertical"},numToleratedItems:{type:Number,default:null},delay:{type:Number,default:0},lazy:{type:Boolean,default:!1},showLoader:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},style:null,class:null,disabled:{type:Boolean,default:!1}},data(){return{first:this.isBoth()?{rows:0,cols:0}:0,last:this.isBoth()?{rows:0,cols:0}:0,numItemsInViewport:this.isBoth()?{rows:0,cols:0}:0,lastScrollPos:this.isBoth()?{top:0,left:0}:0,d_numToleratedItems:this.numToleratedItems,d_loading:this.loading,loaderArr:null}},element:null,content:null,spacer:null,scrollTimeout:null,mounted(){this.init()},watch:{numToleratedItems(t){this.d_numToleratedItems=t},loading(t){this.d_loading=t},items(t,s){s&&s.length===(t||[]).length||this.init()}},methods:{init(){this.disabled||(this.setSize(),this.calculateOptions(),this.setSpacerSize())},getLast(t,s){return this.items?Math.min(s?this.items[0].length:this.items.length,t):0},calculateOptions(){const t=this.isBoth(),s=this.isHorizontal(),e=this.first,i=this.itemSize,o=this.getContentPadding(),l=this.element?this.element.offsetWidth-o.left:0,n=this.element?this.element.offsetHeight-o.top:0,r=(t,s)=>Math.ceil(t/(s||t)),a=t?{rows:r(n,i[0]),cols:r(l,i[1])}:r(s?l:n,i);let h=this.d_numToleratedItems||Math.ceil((t?a.rows:a)/2);const c=(t,s,e)=>this.getLast(t+s+(t<h?2:3)*h,e),d=t?{rows:c(e.rows,a.rows),cols:c(e.cols,a.cols,!0)}:c(e,a);this.d_numToleratedItems=h,this.$emit("update:numToleratedItems",this.d_numToleratedItems),this.last=d,this.numItemsInViewport=a,this.showLoader&&(this.$slots&&this.$slots.loader?this.loaderArr=Array.from({length:t?a.rows:a}):this.loaderArr=Array.from({length:1})),this.lazy&&this.$emit("lazy-load",{first:e,last:d})},getContentPadding(){if(this.content){const t=getComputedStyle(this.content),s=parseInt(parseFloat(t.paddingLeft.slice(0,-2)),10),e=parseInt(parseFloat(t.paddingRight.slice(0,-2)),10),i=parseInt(parseFloat(t.paddingTop.slice(0,-2)),10),o=parseInt(parseFloat(t.paddingBottom.slice(0,-2)),10);return{left:s,right:e,top:i,bottom:o,x:s+e,y:i+o}}return{left:0,right:0,top:0,bottom:0,x:0,y:0}},setSize(){if(this.element){const t=this.isBoth(),s=this.isHorizontal(),e=this.element.parentElement,i=this.scrollWidth||`${this.element.offsetWidth||e.offsetWidth}px`,o=this.scrollHeight||`${this.element.offsetHeight||e.offsetHeight}px`,l=(t,s)=>this.element.style[t]=s;t?(l("height",o),l("width",i)):s?l("width",i):l("height",o)}},setSpacerSize(){const t=this.items;if(this.spacer&&t){const s=this.isBoth(),e=this.isHorizontal(),i=this.itemSize,o=this.getContentPadding(),l=(t,s,e,i=0)=>this.spacer.style[t]=(s||[]).length*e+i+"px";s?(l("height",t[0],i[0],o.y),l("width",t[1],i[1],o.x)):e?l("width",t,i,o.x):l("height",t,i,o.y)}},setContentPosition(t){if(this.content){const s=this.isBoth(),e=this.isHorizontal(),i=this.content,o=t?t.first:this.first,l=this.itemSize,n=(t,s)=>t*s,r=(t=0,s=0)=>i.style.transform=`translate3d(${t}px, ${s}px, 0)`;if(s)r(n(o.cols,l[1]),n(o.rows,l[0]));else{const t=n(o,l);e?r(t,0):r(0,t)}}},onScrollPositionChange(t){const s=t.target,e=this.isBoth(),i=this.isHorizontal(),o=this.itemSize,l=this.getContentPadding(),n=(t,s)=>t?t>s?t-s:t:0,r=(t,s)=>Math.floor(t/(s||t)),a=(t,s,e,i,o)=>t<=this.d_numToleratedItems?this.d_numToleratedItems:o?e-i-this.d_numToleratedItems:s+this.d_numToleratedItems-1,h=(t,s,e,i,o,l)=>t<=this.d_numToleratedItems?0:l?t<s?e:t-this.d_numToleratedItems:t>s?e:t-2*this.d_numToleratedItems,c=(t,s,e,i,o)=>{let l=s+i+2*this.d_numToleratedItems;return t>=this.d_numToleratedItems&&(l+=this.d_numToleratedItems+1),this.getLast(l,o)},d=n(s.scrollTop,l.top),m=n(s.scrollLeft,l.left);let f=0,p=this.last,u=!1;if(e){const t=this.lastScrollPos.top<=d,s=this.lastScrollPos.left<=m,e={rows:r(d,o[0]),cols:r(m,o[1])},i={rows:a(e.rows,this.first.rows,this.last.rows,this.numItemsInViewport.rows,t),cols:a(e.cols,this.first.cols,this.last.cols,this.numItemsInViewport.cols,s)};f={rows:h(e.rows,i.rows,this.first.rows,this.last.rows,this.numItemsInViewport.rows,t),cols:h(e.cols,i.cols,this.first.cols,this.last.cols,this.numItemsInViewport.cols,s)},p={rows:c(e.rows,f.rows,this.last.rows,this.numItemsInViewport.rows),cols:c(e.cols,f.cols,this.last.cols,this.numItemsInViewport.cols,!0)},u=f.rows!==this.first.rows||f.cols!==this.first.cols||p.rows!==this.last.rows||p.cols!==this.last.cols,this.lastScrollPos={top:d,left:m}}else{const t=i?m:d,s=this.lastScrollPos<=t,e=r(t,o);f=h(e,a(e,this.first,this.last,this.numItemsInViewport,s),this.first,this.last,this.numItemsInViewport,s),p=c(e,f,this.last,this.numItemsInViewport),u=f!==this.first||p!==this.last,this.lastScrollPos=t}return{first:f,last:p,isRangeChanged:u}},onScrollChange(t){const{first:s,last:e,isRangeChanged:i}=this.onScrollPositionChange(t);if(i){const t={first:s,last:e};this.setContentPosition(t),this.lazy&&this.$emit("lazy-load",{first:s,last:e}),this.first=s,this.last=e,this.$emit("scroll-index-change",{first:s,last:e})}},onScroll(t){if(this.delay&&!this.lazy){if(this.scrollTimeout&&clearTimeout(this.scrollTimeout),!this.d_loading&&this.showLoader){const{isRangeChanged:s}=this.onScrollPositionChange(t);s&&(this.d_loading=!0)}this.scrollTimeout=setTimeout((()=>{this.onScrollChange(t),this.d_loading&&this.showLoader&&!this.lazy&&(this.d_loading=!1)}),this.delay)}else this.onScrollChange(t)},getOptions(t){let s=this.items.length,e=this.isBoth()?this.first.rows+t:this.first+t;return{index:e,count:s,first:0===e,last:e===s-1,even:e%2==0,odd:e%2!=0}},getLoaderOptions(t){let s=this.loaderArr.length;return{loading:this.d_loading,first:0===t,last:t===s-1,even:t%2==0,odd:t%2!=0}},isHorizontal(){return"horizontal"===this.orientation},isBoth(){return"both"===this.orientation},scrollTo(t){this.element&&this.element.scrollTo(t)},scrollToIndex(t,s="auto"){const e=this.isBoth(),i=this.isHorizontal(),o=this.itemSize,l=this.getContentPadding(),n=(t=0)=>t<=this.d_numToleratedItems?0:t,r=(t,s,e)=>t*s+e,a=(t=0,e=0)=>this.scrollTo({left:t,top:e,behavior:s});if(e){const s={rows:n(t[0]),cols:n(t[1])};s.rows===this.first.rows&&s.cols===this.first.cols||a(r(s.cols,o[1],l.left),r(s.rows,o[0],l.top))}else{const s=n(t);s!==this.first&&(i?a(r(s,o,l.left),0):a(0,r(s,o,l.top))),this.first=s.index}},scrollInView(t,s,e="auto"){if(s){const i=this.isBoth(),o=this.isHorizontal(),{first:l,viewport:n}=this.getRenderedRange(),r=this.itemSize,a=(t=0,s=0)=>this.scrollTo({left:t,top:s,behavior:e}),h="to-end"===s;if("to-start"===s){if(i)n.first.rows-l.rows>t[0]?a(n.first.cols*r[1],(n.first.rows-1)*r[0]):n.first.cols-l.cols>t[1]&&a((n.first.cols-1)*r[1],n.first.rows*r[0]);else if(n.first-l>t){const t=(n.first-1)*r;o?a(t,0):a(0,t)}}else if(h)if(i)n.last.rows-l.rows<=t[0]+1?a(n.first.cols*r[1],(n.first.rows+1)*r[0]):n.last.cols-l.cols<=t[1]+1&&a((n.first.cols+1)*r[1],n.first.rows*r[0]);else if(n.last-l<=t+1){const t=(n.first+1)*r;o?a(t,0):a(0,t)}}else this.scrollToIndex(t,e)},getRenderedRange(){const t=this.isBoth(),s=this.isHorizontal(),e=this.itemSize,i=(t,s)=>Math.floor(t/(s||t));let o=this.first,l=0;if(this.element){const n=this.element.scrollTop,r=this.element.scrollLeft;if(t)o={rows:i(n,e[0]),cols:i(r,e[1])},l={rows:o.rows+this.numItemsInViewport.rows,cols:o.cols+this.numItemsInViewport.cols};else{o=i(s?r:n,e),l=o+this.numItemsInViewport}}return{first:this.first,last:this.last,viewport:{first:o,last:l}}},elementRef(t){this.element=t},contentRef(t){this.content=t},spacerRef(t){this.spacer=t}},computed:{containerClass(){return["p-virtualscroller",{"p-both-scroll":this.isBoth(),"p-horizontal-scroll":this.isHorizontal()},this.class]},loaderClass(){return["p-virtualscroller-loader",{"p-component-overlay":!this.$slots.loader}]},loadedItems(){const t=this.items;if(t&&!this.d_loading){return this.isBoth()?t.slice(this.first.rows,this.last.rows).map((t=>t.slice(this.first.cols,this.last.cols))):t.slice(this.first,this.last).map((t=>t))}return[]}}};const e=t.createVNode("i",{class:"p-virtualscroller-loading-icon pi pi-spinner pi-spin"},null,-1);!function(t,s){void 0===s&&(s={});var e=s.insertAt;if(t&&"undefined"!=typeof document){var i=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===e&&i.firstChild?i.insertBefore(o,i.firstChild):i.appendChild(o),o.styleSheet?o.styleSheet.cssText=t:o.appendChild(document.createTextNode(t))}}("\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"),s.render=function(s,i,o,l,n,r){return o.disabled?(t.openBlock(),t.createBlock(t.Fragment,{key:1},[t.renderSlot(s.$slots,"default"),t.renderSlot(s.$slots,"content",{items:o.items})],64)):(t.openBlock(),t.createBlock("div",{key:0,ref:r.elementRef,class:r.containerClass,style:o.style,onScroll:i[1]||(i[1]=(...t)=>r.onScroll&&r.onScroll(...t))},[t.renderSlot(s.$slots,"content",{styleClass:"p-virtualscroller-content",contentRef:r.contentRef,items:r.loadedItems,getItemOptions:r.getOptions},(()=>[t.createVNode("div",{ref:r.contentRef,class:"p-virtualscroller-content"},[(t.openBlock(!0),t.createBlock(t.Fragment,null,t.renderList(r.loadedItems,((e,i)=>t.renderSlot(s.$slots,"item",{key:i,item:e,options:r.getOptions(i)}))),128))],512)])),t.createVNode("div",{ref:r.spacerRef,class:"p-virtualscroller-spacer"},null,512),n.d_loading?(t.openBlock(),t.createBlock("div",{key:0,class:r.loaderClass},[(t.openBlock(!0),t.createBlock(t.Fragment,null,t.renderList(n.loaderArr,((i,o)=>t.renderSlot(s.$slots,"loader",{key:o,options:r.getLoaderOptions(o)},(()=>[e])))),128))],2)):t.createCommentVNode("",!0)],38))},module.exports=s;
1
+ "use strict";var t=require("vue"),s={name:"VirtualScroller",emits:["update:numToleratedItems","scroll-index-change","lazy-load"],props:{items:{type:Array,default:null},itemSize:{type:[Number,Array],default:null},scrollHeight:null,scrollWidth:null,orientation:{type:String,default:"vertical"},numToleratedItems:{type:Number,default:null},delay:{type:Number,default:0},lazy:{type:Boolean,default:!1},showLoader:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},style:null,class:null,disabled:{type:Boolean,default:!1}},data(){return{first:this.isBoth()?{rows:0,cols:0}:0,last:this.isBoth()?{rows:0,cols:0}:0,numItemsInViewport:this.isBoth()?{rows:0,cols:0}:0,lastScrollPos:this.isBoth()?{top:0,left:0}:0,d_numToleratedItems:this.numToleratedItems,d_loading:this.loading,loaderArr:null}},element:null,content:null,spacer:null,scrollTimeout:null,mounted(){this.init()},watch:{numToleratedItems(t){this.d_numToleratedItems=t},loading(t){this.d_loading=t},items(t,s){s&&s.length===(t||[]).length||this.init()}},methods:{init(){this.disabled||(this.setSize(),this.calculateOptions(),this.setSpacerSize())},getLast(t,s){return this.items?Math.min(s?this.items[0].length:this.items.length,t):0},calculateOptions(){const t=this.isBoth(),s=this.isHorizontal(),e=this.first,i=this.itemSize,o=this.getContentPadding(),l=this.element?this.element.offsetWidth-o.left:0,n=this.element?this.element.offsetHeight-o.top:0,r=(t,s)=>Math.ceil(t/(s||t)),a=t?{rows:r(n,i[0]),cols:r(l,i[1])}:r(s?l:n,i);let h=this.d_numToleratedItems||Math.ceil((t?a.rows:a)/2);const c=(t,s,e)=>this.getLast(t+s+(t<h?2:3)*h,e),d=t?{rows:c(e.rows,a.rows),cols:c(e.cols,a.cols,!0)}:c(e,a);this.d_numToleratedItems=h,this.$emit("update:numToleratedItems",this.d_numToleratedItems),this.last=d,this.numItemsInViewport=a,this.showLoader&&(this.$slots&&this.$slots.loader?this.loaderArr=Array.from({length:t?a.rows:a}):this.loaderArr=Array.from({length:1})),this.lazy&&this.$emit("lazy-load",{first:e,last:d})},getContentPadding(){if(this.content){const t=getComputedStyle(this.content),s=parseInt(parseFloat(t.paddingLeft.slice(0,-2)),10),e=parseInt(parseFloat(t.paddingRight.slice(0,-2)),10),i=parseInt(parseFloat(t.paddingTop.slice(0,-2)),10),o=parseInt(parseFloat(t.paddingBottom.slice(0,-2)),10);return{left:s,right:e,top:i,bottom:o,x:s+e,y:i+o}}return{left:0,right:0,top:0,bottom:0,x:0,y:0}},setSize(){if(this.element){const t=this.isBoth(),s=this.isHorizontal(),e=this.element.parentElement,i=this.scrollWidth||`${this.element.offsetWidth||e.offsetWidth}px`,o=this.scrollHeight||`${this.element.offsetHeight||e.offsetHeight}px`,l=(t,s)=>this.element.style[t]=s;t?(l("height",o),l("width",i)):s?l("width",i):l("height",o)}},setSpacerSize(){const t=this.items;if(this.spacer&&t){const s=this.isBoth(),e=this.isHorizontal(),i=this.itemSize,o=this.getContentPadding(),l=(t,s,e,i=0)=>this.spacer.style[t]=(s||[]).length*e+i+"px";s?(l("height",t[0],i[0],o.y),l("width",t[1],i[1],o.x)):e?l("width",t,i,o.x):l("height",t,i,o.y)}},setContentPosition(t){if(this.content){const s=this.isBoth(),e=this.isHorizontal(),i=this.content,o=t?t.first:this.first,l=this.itemSize,n=(t,s)=>t*s,r=(t=0,s=0)=>i.style.transform=`translate3d(${t}px, ${s}px, 0)`;if(s)r(n(o.cols,l[1]),n(o.rows,l[0]));else{const t=n(o,l);e?r(t,0):r(0,t)}}},onScrollPositionChange(t){const s=t.target,e=this.isBoth(),i=this.isHorizontal(),o=this.itemSize,l=this.getContentPadding(),n=(t,s)=>t?t>s?t-s:t:0,r=(t,s)=>Math.floor(t/(s||t)),a=(t,s,e,i,o)=>t<=this.d_numToleratedItems?this.d_numToleratedItems:o?e-i-this.d_numToleratedItems:s+this.d_numToleratedItems-1,h=(t,s,e,i,o,l)=>t<=this.d_numToleratedItems?0:l?t<s?e:t-this.d_numToleratedItems:t>s?e:t-2*this.d_numToleratedItems,c=(t,s,e,i,o)=>{let l=s+i+2*this.d_numToleratedItems;return t>=this.d_numToleratedItems&&(l+=this.d_numToleratedItems+1),this.getLast(l,o)},d=n(s.scrollTop,l.top),m=n(s.scrollLeft,l.left);let f=0,p=this.last,u=!1;if(e){const t=this.lastScrollPos.top<=d,s=this.lastScrollPos.left<=m,e={rows:r(d,o[0]),cols:r(m,o[1])},i={rows:a(e.rows,this.first.rows,this.last.rows,this.numItemsInViewport.rows,t),cols:a(e.cols,this.first.cols,this.last.cols,this.numItemsInViewport.cols,s)};f={rows:h(e.rows,i.rows,this.first.rows,this.last.rows,this.numItemsInViewport.rows,t),cols:h(e.cols,i.cols,this.first.cols,this.last.cols,this.numItemsInViewport.cols,s)},p={rows:c(e.rows,f.rows,this.last.rows,this.numItemsInViewport.rows),cols:c(e.cols,f.cols,this.last.cols,this.numItemsInViewport.cols,!0)},u=f.rows!==this.first.rows||f.cols!==this.first.cols||p.rows!==this.last.rows||p.cols!==this.last.cols,this.lastScrollPos={top:d,left:m}}else{const t=i?m:d,s=this.lastScrollPos<=t,e=r(t,o);f=h(e,a(e,this.first,this.last,this.numItemsInViewport,s),this.first,this.last,this.numItemsInViewport,s),p=c(e,f,this.last,this.numItemsInViewport),u=f!==this.first||p!==this.last,this.lastScrollPos=t}return{first:f,last:p,isRangeChanged:u}},onScrollChange(t){const{first:s,last:e,isRangeChanged:i}=this.onScrollPositionChange(t);if(i){const t={first:s,last:e};this.setContentPosition(t),this.lazy&&this.$emit("lazy-load",{first:s,last:e}),this.first=s,this.last=e,this.$emit("scroll-index-change",{first:s,last:e})}},onScroll(t){if(this.delay&&!this.lazy){if(this.scrollTimeout&&clearTimeout(this.scrollTimeout),!this.d_loading&&this.showLoader){const{isRangeChanged:s}=this.onScrollPositionChange(t);s&&(this.d_loading=!0)}this.scrollTimeout=setTimeout((()=>{this.onScrollChange(t),this.d_loading&&this.showLoader&&!this.lazy&&(this.d_loading=!1)}),this.delay)}else this.onScrollChange(t)},getOptions(t){let s=this.items.length,e=this.isBoth()?this.first.rows+t:this.first+t;return{index:e,count:s,first:0===e,last:e===s-1,even:e%2==0,odd:e%2!=0}},getLoaderOptions(t){let s=this.loaderArr.length;return{loading:this.d_loading,first:0===t,last:t===s-1,even:t%2==0,odd:t%2!=0}},isHorizontal(){return"horizontal"===this.orientation},isBoth(){return"both"===this.orientation},scrollTo(t){this.element&&this.element.scrollTo(t)},scrollToIndex(t,s="auto"){const e=this.isBoth(),i=this.isHorizontal(),o=this.itemSize,l=this.getContentPadding(),n=(t=0)=>t<=this.d_numToleratedItems?0:t,r=(t,s,e)=>t*s+e,a=(t=0,e=0)=>this.scrollTo({left:t,top:e,behavior:s});if(e){const s={rows:n(t[0]),cols:n(t[1])};s.rows===this.first.rows&&s.cols===this.first.cols||a(r(s.cols,o[1],l.left),r(s.rows,o[0],l.top))}else{const s=n(t);s!==this.first&&(i?a(r(s,o,l.left),0):a(0,r(s,o,l.top))),this.first=s}},scrollInView(t,s,e="auto"){if(s){const i=this.isBoth(),o=this.isHorizontal(),{first:l,viewport:n}=this.getRenderedRange(),r=this.itemSize,a=(t=0,s=0)=>this.scrollTo({left:t,top:s,behavior:e}),h="to-end"===s;if("to-start"===s){if(i)n.first.rows-l.rows>t[0]?a(n.first.cols*r[1],(n.first.rows-1)*r[0]):n.first.cols-l.cols>t[1]&&a((n.first.cols-1)*r[1],n.first.rows*r[0]);else if(n.first-l>t){const t=(n.first-1)*r;o?a(t,0):a(0,t)}}else if(h)if(i)n.last.rows-l.rows<=t[0]+1?a(n.first.cols*r[1],(n.first.rows+1)*r[0]):n.last.cols-l.cols<=t[1]+1&&a((n.first.cols+1)*r[1],n.first.rows*r[0]);else if(n.last-l<=t+1){const t=(n.first+1)*r;o?a(t,0):a(0,t)}}else this.scrollToIndex(t,e)},getRenderedRange(){const t=this.isBoth(),s=this.isHorizontal(),e=this.itemSize,i=(t,s)=>Math.floor(t/(s||t));let o=this.first,l=0;if(this.element){const n=this.element.scrollTop,r=this.element.scrollLeft;if(t)o={rows:i(n,e[0]),cols:i(r,e[1])},l={rows:o.rows+this.numItemsInViewport.rows,cols:o.cols+this.numItemsInViewport.cols};else{o=i(s?r:n,e),l=o+this.numItemsInViewport}}return{first:this.first,last:this.last,viewport:{first:o,last:l}}},elementRef(t){this.element=t},contentRef(t){this.content=t},spacerRef(t){this.spacer=t}},computed:{containerClass(){return["p-virtualscroller",{"p-both-scroll":this.isBoth(),"p-horizontal-scroll":this.isHorizontal()},this.class]},loaderClass(){return["p-virtualscroller-loader",{"p-component-overlay":!this.$slots.loader}]},loadedItems(){const t=this.items;if(t&&!this.d_loading){return this.isBoth()?t.slice(this.first.rows,this.last.rows).map((t=>t.slice(this.first.cols,this.last.cols))):t.slice(this.first,this.last).map((t=>t))}return[]}}};const e=t.createVNode("i",{class:"p-virtualscroller-loading-icon pi pi-spinner pi-spin"},null,-1);!function(t,s){void 0===s&&(s={});var e=s.insertAt;if(t&&"undefined"!=typeof document){var i=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===e&&i.firstChild?i.insertBefore(o,i.firstChild):i.appendChild(o),o.styleSheet?o.styleSheet.cssText=t:o.appendChild(document.createTextNode(t))}}("\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"),s.render=function(s,i,o,l,n,r){return o.disabled?(t.openBlock(),t.createBlock(t.Fragment,{key:1},[t.renderSlot(s.$slots,"default"),t.renderSlot(s.$slots,"content",{items:o.items})],64)):(t.openBlock(),t.createBlock("div",{key:0,ref:r.elementRef,class:r.containerClass,style:o.style,onScroll:i[1]||(i[1]=(...t)=>r.onScroll&&r.onScroll(...t))},[t.renderSlot(s.$slots,"content",{styleClass:"p-virtualscroller-content",contentRef:r.contentRef,items:r.loadedItems,getItemOptions:r.getOptions},(()=>[t.createVNode("div",{ref:r.contentRef,class:"p-virtualscroller-content"},[(t.openBlock(!0),t.createBlock(t.Fragment,null,t.renderList(r.loadedItems,((e,i)=>t.renderSlot(s.$slots,"item",{key:i,item:e,options:r.getOptions(i)}))),128))],512)])),t.createVNode("div",{ref:r.spacerRef,class:"p-virtualscroller-spacer"},null,512),n.d_loading?(t.openBlock(),t.createBlock("div",{key:0,class:r.loaderClass},[(t.openBlock(!0),t.createBlock(t.Fragment,null,t.renderList(n.loaderArr,((i,o)=>t.renderSlot(s.$slots,"loader",{key:o,options:r.getLoaderOptions(o)},(()=>[e])))),128))],2)):t.createCommentVNode("",!0)],38))},module.exports=s;
@@ -366,7 +366,7 @@ var script = {
366
366
  isHorizontal ? scrollTo(calculateCoord(newFirst, itemSize, contentPadding.left), 0) : scrollTo(0, calculateCoord(newFirst, itemSize, contentPadding.top));
367
367
  }
368
368
 
369
- this.first = newFirst.index;
369
+ this.first = newFirst;
370
370
  }
371
371
  },
372
372
  scrollInView(index, to, behavior = 'auto') {
@@ -1 +1 @@
1
- import{openBlock as t,createBlock as s,renderSlot as e,createVNode as i,Fragment as o,renderList as l,createCommentVNode as n}from"vue";var r={name:"VirtualScroller",emits:["update:numToleratedItems","scroll-index-change","lazy-load"],props:{items:{type:Array,default:null},itemSize:{type:[Number,Array],default:null},scrollHeight:null,scrollWidth:null,orientation:{type:String,default:"vertical"},numToleratedItems:{type:Number,default:null},delay:{type:Number,default:0},lazy:{type:Boolean,default:!1},showLoader:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},style:null,class:null,disabled:{type:Boolean,default:!1}},data(){return{first:this.isBoth()?{rows:0,cols:0}:0,last:this.isBoth()?{rows:0,cols:0}:0,numItemsInViewport:this.isBoth()?{rows:0,cols:0}:0,lastScrollPos:this.isBoth()?{top:0,left:0}:0,d_numToleratedItems:this.numToleratedItems,d_loading:this.loading,loaderArr:null}},element:null,content:null,spacer:null,scrollTimeout:null,mounted(){this.init()},watch:{numToleratedItems(t){this.d_numToleratedItems=t},loading(t){this.d_loading=t},items(t,s){s&&s.length===(t||[]).length||this.init()}},methods:{init(){this.disabled||(this.setSize(),this.calculateOptions(),this.setSpacerSize())},getLast(t,s){return this.items?Math.min(s?this.items[0].length:this.items.length,t):0},calculateOptions(){const t=this.isBoth(),s=this.isHorizontal(),e=this.first,i=this.itemSize,o=this.getContentPadding(),l=this.element?this.element.offsetWidth-o.left:0,n=this.element?this.element.offsetHeight-o.top:0,r=(t,s)=>Math.ceil(t/(s||t)),a=t?{rows:r(n,i[0]),cols:r(l,i[1])}:r(s?l:n,i);let h=this.d_numToleratedItems||Math.ceil((t?a.rows:a)/2);const c=(t,s,e)=>this.getLast(t+s+(t<h?2:3)*h,e),d=t?{rows:c(e.rows,a.rows),cols:c(e.cols,a.cols,!0)}:c(e,a);this.d_numToleratedItems=h,this.$emit("update:numToleratedItems",this.d_numToleratedItems),this.last=d,this.numItemsInViewport=a,this.showLoader&&(this.$slots&&this.$slots.loader?this.loaderArr=Array.from({length:t?a.rows:a}):this.loaderArr=Array.from({length:1})),this.lazy&&this.$emit("lazy-load",{first:e,last:d})},getContentPadding(){if(this.content){const t=getComputedStyle(this.content),s=parseInt(parseFloat(t.paddingLeft.slice(0,-2)),10),e=parseInt(parseFloat(t.paddingRight.slice(0,-2)),10),i=parseInt(parseFloat(t.paddingTop.slice(0,-2)),10),o=parseInt(parseFloat(t.paddingBottom.slice(0,-2)),10);return{left:s,right:e,top:i,bottom:o,x:s+e,y:i+o}}return{left:0,right:0,top:0,bottom:0,x:0,y:0}},setSize(){if(this.element){const t=this.isBoth(),s=this.isHorizontal(),e=this.element.parentElement,i=this.scrollWidth||`${this.element.offsetWidth||e.offsetWidth}px`,o=this.scrollHeight||`${this.element.offsetHeight||e.offsetHeight}px`,l=(t,s)=>this.element.style[t]=s;t?(l("height",o),l("width",i)):s?l("width",i):l("height",o)}},setSpacerSize(){const t=this.items;if(this.spacer&&t){const s=this.isBoth(),e=this.isHorizontal(),i=this.itemSize,o=this.getContentPadding(),l=(t,s,e,i=0)=>this.spacer.style[t]=(s||[]).length*e+i+"px";s?(l("height",t[0],i[0],o.y),l("width",t[1],i[1],o.x)):e?l("width",t,i,o.x):l("height",t,i,o.y)}},setContentPosition(t){if(this.content){const s=this.isBoth(),e=this.isHorizontal(),i=this.content,o=t?t.first:this.first,l=this.itemSize,n=(t,s)=>t*s,r=(t=0,s=0)=>i.style.transform=`translate3d(${t}px, ${s}px, 0)`;if(s)r(n(o.cols,l[1]),n(o.rows,l[0]));else{const t=n(o,l);e?r(t,0):r(0,t)}}},onScrollPositionChange(t){const s=t.target,e=this.isBoth(),i=this.isHorizontal(),o=this.itemSize,l=this.getContentPadding(),n=(t,s)=>t?t>s?t-s:t:0,r=(t,s)=>Math.floor(t/(s||t)),a=(t,s,e,i,o)=>t<=this.d_numToleratedItems?this.d_numToleratedItems:o?e-i-this.d_numToleratedItems:s+this.d_numToleratedItems-1,h=(t,s,e,i,o,l)=>t<=this.d_numToleratedItems?0:l?t<s?e:t-this.d_numToleratedItems:t>s?e:t-2*this.d_numToleratedItems,c=(t,s,e,i,o)=>{let l=s+i+2*this.d_numToleratedItems;return t>=this.d_numToleratedItems&&(l+=this.d_numToleratedItems+1),this.getLast(l,o)},d=n(s.scrollTop,l.top),m=n(s.scrollLeft,l.left);let f=0,p=this.last,u=!1;if(e){const t=this.lastScrollPos.top<=d,s=this.lastScrollPos.left<=m,e={rows:r(d,o[0]),cols:r(m,o[1])},i={rows:a(e.rows,this.first.rows,this.last.rows,this.numItemsInViewport.rows,t),cols:a(e.cols,this.first.cols,this.last.cols,this.numItemsInViewport.cols,s)};f={rows:h(e.rows,i.rows,this.first.rows,this.last.rows,this.numItemsInViewport.rows,t),cols:h(e.cols,i.cols,this.first.cols,this.last.cols,this.numItemsInViewport.cols,s)},p={rows:c(e.rows,f.rows,this.last.rows,this.numItemsInViewport.rows),cols:c(e.cols,f.cols,this.last.cols,this.numItemsInViewport.cols,!0)},u=f.rows!==this.first.rows||f.cols!==this.first.cols||p.rows!==this.last.rows||p.cols!==this.last.cols,this.lastScrollPos={top:d,left:m}}else{const t=i?m:d,s=this.lastScrollPos<=t,e=r(t,o);f=h(e,a(e,this.first,this.last,this.numItemsInViewport,s),this.first,this.last,this.numItemsInViewport,s),p=c(e,f,this.last,this.numItemsInViewport),u=f!==this.first||p!==this.last,this.lastScrollPos=t}return{first:f,last:p,isRangeChanged:u}},onScrollChange(t){const{first:s,last:e,isRangeChanged:i}=this.onScrollPositionChange(t);if(i){const t={first:s,last:e};this.setContentPosition(t),this.lazy&&this.$emit("lazy-load",{first:s,last:e}),this.first=s,this.last=e,this.$emit("scroll-index-change",{first:s,last:e})}},onScroll(t){if(this.delay&&!this.lazy){if(this.scrollTimeout&&clearTimeout(this.scrollTimeout),!this.d_loading&&this.showLoader){const{isRangeChanged:s}=this.onScrollPositionChange(t);s&&(this.d_loading=!0)}this.scrollTimeout=setTimeout((()=>{this.onScrollChange(t),this.d_loading&&this.showLoader&&!this.lazy&&(this.d_loading=!1)}),this.delay)}else this.onScrollChange(t)},getOptions(t){let s=this.items.length,e=this.isBoth()?this.first.rows+t:this.first+t;return{index:e,count:s,first:0===e,last:e===s-1,even:e%2==0,odd:e%2!=0}},getLoaderOptions(t){let s=this.loaderArr.length;return{loading:this.d_loading,first:0===t,last:t===s-1,even:t%2==0,odd:t%2!=0}},isHorizontal(){return"horizontal"===this.orientation},isBoth(){return"both"===this.orientation},scrollTo(t){this.element&&this.element.scrollTo(t)},scrollToIndex(t,s="auto"){const e=this.isBoth(),i=this.isHorizontal(),o=this.itemSize,l=this.getContentPadding(),n=(t=0)=>t<=this.d_numToleratedItems?0:t,r=(t,s,e)=>t*s+e,a=(t=0,e=0)=>this.scrollTo({left:t,top:e,behavior:s});if(e){const s={rows:n(t[0]),cols:n(t[1])};s.rows===this.first.rows&&s.cols===this.first.cols||a(r(s.cols,o[1],l.left),r(s.rows,o[0],l.top))}else{const s=n(t);s!==this.first&&(i?a(r(s,o,l.left),0):a(0,r(s,o,l.top))),this.first=s.index}},scrollInView(t,s,e="auto"){if(s){const i=this.isBoth(),o=this.isHorizontal(),{first:l,viewport:n}=this.getRenderedRange(),r=this.itemSize,a=(t=0,s=0)=>this.scrollTo({left:t,top:s,behavior:e}),h="to-end"===s;if("to-start"===s){if(i)n.first.rows-l.rows>t[0]?a(n.first.cols*r[1],(n.first.rows-1)*r[0]):n.first.cols-l.cols>t[1]&&a((n.first.cols-1)*r[1],n.first.rows*r[0]);else if(n.first-l>t){const t=(n.first-1)*r;o?a(t,0):a(0,t)}}else if(h)if(i)n.last.rows-l.rows<=t[0]+1?a(n.first.cols*r[1],(n.first.rows+1)*r[0]):n.last.cols-l.cols<=t[1]+1&&a((n.first.cols+1)*r[1],n.first.rows*r[0]);else if(n.last-l<=t+1){const t=(n.first+1)*r;o?a(t,0):a(0,t)}}else this.scrollToIndex(t,e)},getRenderedRange(){const t=this.isBoth(),s=this.isHorizontal(),e=this.itemSize,i=(t,s)=>Math.floor(t/(s||t));let o=this.first,l=0;if(this.element){const n=this.element.scrollTop,r=this.element.scrollLeft;if(t)o={rows:i(n,e[0]),cols:i(r,e[1])},l={rows:o.rows+this.numItemsInViewport.rows,cols:o.cols+this.numItemsInViewport.cols};else{o=i(s?r:n,e),l=o+this.numItemsInViewport}}return{first:this.first,last:this.last,viewport:{first:o,last:l}}},elementRef(t){this.element=t},contentRef(t){this.content=t},spacerRef(t){this.spacer=t}},computed:{containerClass(){return["p-virtualscroller",{"p-both-scroll":this.isBoth(),"p-horizontal-scroll":this.isHorizontal()},this.class]},loaderClass(){return["p-virtualscroller-loader",{"p-component-overlay":!this.$slots.loader}]},loadedItems(){const t=this.items;if(t&&!this.d_loading){return this.isBoth()?t.slice(this.first.rows,this.last.rows).map((t=>t.slice(this.first.cols,this.last.cols))):t.slice(this.first,this.last).map((t=>t))}return[]}}};const a=i("i",{class:"p-virtualscroller-loading-icon pi pi-spinner pi-spin"},null,-1);!function(t,s){void 0===s&&(s={});var e=s.insertAt;if(t&&"undefined"!=typeof document){var i=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===e&&i.firstChild?i.insertBefore(o,i.firstChild):i.appendChild(o),o.styleSheet?o.styleSheet.cssText=t:o.appendChild(document.createTextNode(t))}}("\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"),r.render=function(r,h,c,d,m,f){return c.disabled?(t(),s(o,{key:1},[e(r.$slots,"default"),e(r.$slots,"content",{items:c.items})],64)):(t(),s("div",{key:0,ref:f.elementRef,class:f.containerClass,style:c.style,onScroll:h[1]||(h[1]=(...t)=>f.onScroll&&f.onScroll(...t))},[e(r.$slots,"content",{styleClass:"p-virtualscroller-content",contentRef:f.contentRef,items:f.loadedItems,getItemOptions:f.getOptions},(()=>[i("div",{ref:f.contentRef,class:"p-virtualscroller-content"},[(t(!0),s(o,null,l(f.loadedItems,((t,s)=>e(r.$slots,"item",{key:s,item:t,options:f.getOptions(s)}))),128))],512)])),i("div",{ref:f.spacerRef,class:"p-virtualscroller-spacer"},null,512),m.d_loading?(t(),s("div",{key:0,class:f.loaderClass},[(t(!0),s(o,null,l(m.loaderArr,((t,s)=>e(r.$slots,"loader",{key:s,options:f.getLoaderOptions(s)},(()=>[a])))),128))],2)):n("",!0)],38))};export default r;
1
+ import{openBlock as t,createBlock as s,renderSlot as e,createVNode as i,Fragment as o,renderList as l,createCommentVNode as n}from"vue";var r={name:"VirtualScroller",emits:["update:numToleratedItems","scroll-index-change","lazy-load"],props:{items:{type:Array,default:null},itemSize:{type:[Number,Array],default:null},scrollHeight:null,scrollWidth:null,orientation:{type:String,default:"vertical"},numToleratedItems:{type:Number,default:null},delay:{type:Number,default:0},lazy:{type:Boolean,default:!1},showLoader:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},style:null,class:null,disabled:{type:Boolean,default:!1}},data(){return{first:this.isBoth()?{rows:0,cols:0}:0,last:this.isBoth()?{rows:0,cols:0}:0,numItemsInViewport:this.isBoth()?{rows:0,cols:0}:0,lastScrollPos:this.isBoth()?{top:0,left:0}:0,d_numToleratedItems:this.numToleratedItems,d_loading:this.loading,loaderArr:null}},element:null,content:null,spacer:null,scrollTimeout:null,mounted(){this.init()},watch:{numToleratedItems(t){this.d_numToleratedItems=t},loading(t){this.d_loading=t},items(t,s){s&&s.length===(t||[]).length||this.init()}},methods:{init(){this.disabled||(this.setSize(),this.calculateOptions(),this.setSpacerSize())},getLast(t,s){return this.items?Math.min(s?this.items[0].length:this.items.length,t):0},calculateOptions(){const t=this.isBoth(),s=this.isHorizontal(),e=this.first,i=this.itemSize,o=this.getContentPadding(),l=this.element?this.element.offsetWidth-o.left:0,n=this.element?this.element.offsetHeight-o.top:0,r=(t,s)=>Math.ceil(t/(s||t)),a=t?{rows:r(n,i[0]),cols:r(l,i[1])}:r(s?l:n,i);let h=this.d_numToleratedItems||Math.ceil((t?a.rows:a)/2);const c=(t,s,e)=>this.getLast(t+s+(t<h?2:3)*h,e),d=t?{rows:c(e.rows,a.rows),cols:c(e.cols,a.cols,!0)}:c(e,a);this.d_numToleratedItems=h,this.$emit("update:numToleratedItems",this.d_numToleratedItems),this.last=d,this.numItemsInViewport=a,this.showLoader&&(this.$slots&&this.$slots.loader?this.loaderArr=Array.from({length:t?a.rows:a}):this.loaderArr=Array.from({length:1})),this.lazy&&this.$emit("lazy-load",{first:e,last:d})},getContentPadding(){if(this.content){const t=getComputedStyle(this.content),s=parseInt(parseFloat(t.paddingLeft.slice(0,-2)),10),e=parseInt(parseFloat(t.paddingRight.slice(0,-2)),10),i=parseInt(parseFloat(t.paddingTop.slice(0,-2)),10),o=parseInt(parseFloat(t.paddingBottom.slice(0,-2)),10);return{left:s,right:e,top:i,bottom:o,x:s+e,y:i+o}}return{left:0,right:0,top:0,bottom:0,x:0,y:0}},setSize(){if(this.element){const t=this.isBoth(),s=this.isHorizontal(),e=this.element.parentElement,i=this.scrollWidth||`${this.element.offsetWidth||e.offsetWidth}px`,o=this.scrollHeight||`${this.element.offsetHeight||e.offsetHeight}px`,l=(t,s)=>this.element.style[t]=s;t?(l("height",o),l("width",i)):s?l("width",i):l("height",o)}},setSpacerSize(){const t=this.items;if(this.spacer&&t){const s=this.isBoth(),e=this.isHorizontal(),i=this.itemSize,o=this.getContentPadding(),l=(t,s,e,i=0)=>this.spacer.style[t]=(s||[]).length*e+i+"px";s?(l("height",t[0],i[0],o.y),l("width",t[1],i[1],o.x)):e?l("width",t,i,o.x):l("height",t,i,o.y)}},setContentPosition(t){if(this.content){const s=this.isBoth(),e=this.isHorizontal(),i=this.content,o=t?t.first:this.first,l=this.itemSize,n=(t,s)=>t*s,r=(t=0,s=0)=>i.style.transform=`translate3d(${t}px, ${s}px, 0)`;if(s)r(n(o.cols,l[1]),n(o.rows,l[0]));else{const t=n(o,l);e?r(t,0):r(0,t)}}},onScrollPositionChange(t){const s=t.target,e=this.isBoth(),i=this.isHorizontal(),o=this.itemSize,l=this.getContentPadding(),n=(t,s)=>t?t>s?t-s:t:0,r=(t,s)=>Math.floor(t/(s||t)),a=(t,s,e,i,o)=>t<=this.d_numToleratedItems?this.d_numToleratedItems:o?e-i-this.d_numToleratedItems:s+this.d_numToleratedItems-1,h=(t,s,e,i,o,l)=>t<=this.d_numToleratedItems?0:l?t<s?e:t-this.d_numToleratedItems:t>s?e:t-2*this.d_numToleratedItems,c=(t,s,e,i,o)=>{let l=s+i+2*this.d_numToleratedItems;return t>=this.d_numToleratedItems&&(l+=this.d_numToleratedItems+1),this.getLast(l,o)},d=n(s.scrollTop,l.top),m=n(s.scrollLeft,l.left);let f=0,p=this.last,u=!1;if(e){const t=this.lastScrollPos.top<=d,s=this.lastScrollPos.left<=m,e={rows:r(d,o[0]),cols:r(m,o[1])},i={rows:a(e.rows,this.first.rows,this.last.rows,this.numItemsInViewport.rows,t),cols:a(e.cols,this.first.cols,this.last.cols,this.numItemsInViewport.cols,s)};f={rows:h(e.rows,i.rows,this.first.rows,this.last.rows,this.numItemsInViewport.rows,t),cols:h(e.cols,i.cols,this.first.cols,this.last.cols,this.numItemsInViewport.cols,s)},p={rows:c(e.rows,f.rows,this.last.rows,this.numItemsInViewport.rows),cols:c(e.cols,f.cols,this.last.cols,this.numItemsInViewport.cols,!0)},u=f.rows!==this.first.rows||f.cols!==this.first.cols||p.rows!==this.last.rows||p.cols!==this.last.cols,this.lastScrollPos={top:d,left:m}}else{const t=i?m:d,s=this.lastScrollPos<=t,e=r(t,o);f=h(e,a(e,this.first,this.last,this.numItemsInViewport,s),this.first,this.last,this.numItemsInViewport,s),p=c(e,f,this.last,this.numItemsInViewport),u=f!==this.first||p!==this.last,this.lastScrollPos=t}return{first:f,last:p,isRangeChanged:u}},onScrollChange(t){const{first:s,last:e,isRangeChanged:i}=this.onScrollPositionChange(t);if(i){const t={first:s,last:e};this.setContentPosition(t),this.lazy&&this.$emit("lazy-load",{first:s,last:e}),this.first=s,this.last=e,this.$emit("scroll-index-change",{first:s,last:e})}},onScroll(t){if(this.delay&&!this.lazy){if(this.scrollTimeout&&clearTimeout(this.scrollTimeout),!this.d_loading&&this.showLoader){const{isRangeChanged:s}=this.onScrollPositionChange(t);s&&(this.d_loading=!0)}this.scrollTimeout=setTimeout((()=>{this.onScrollChange(t),this.d_loading&&this.showLoader&&!this.lazy&&(this.d_loading=!1)}),this.delay)}else this.onScrollChange(t)},getOptions(t){let s=this.items.length,e=this.isBoth()?this.first.rows+t:this.first+t;return{index:e,count:s,first:0===e,last:e===s-1,even:e%2==0,odd:e%2!=0}},getLoaderOptions(t){let s=this.loaderArr.length;return{loading:this.d_loading,first:0===t,last:t===s-1,even:t%2==0,odd:t%2!=0}},isHorizontal(){return"horizontal"===this.orientation},isBoth(){return"both"===this.orientation},scrollTo(t){this.element&&this.element.scrollTo(t)},scrollToIndex(t,s="auto"){const e=this.isBoth(),i=this.isHorizontal(),o=this.itemSize,l=this.getContentPadding(),n=(t=0)=>t<=this.d_numToleratedItems?0:t,r=(t,s,e)=>t*s+e,a=(t=0,e=0)=>this.scrollTo({left:t,top:e,behavior:s});if(e){const s={rows:n(t[0]),cols:n(t[1])};s.rows===this.first.rows&&s.cols===this.first.cols||a(r(s.cols,o[1],l.left),r(s.rows,o[0],l.top))}else{const s=n(t);s!==this.first&&(i?a(r(s,o,l.left),0):a(0,r(s,o,l.top))),this.first=s}},scrollInView(t,s,e="auto"){if(s){const i=this.isBoth(),o=this.isHorizontal(),{first:l,viewport:n}=this.getRenderedRange(),r=this.itemSize,a=(t=0,s=0)=>this.scrollTo({left:t,top:s,behavior:e}),h="to-end"===s;if("to-start"===s){if(i)n.first.rows-l.rows>t[0]?a(n.first.cols*r[1],(n.first.rows-1)*r[0]):n.first.cols-l.cols>t[1]&&a((n.first.cols-1)*r[1],n.first.rows*r[0]);else if(n.first-l>t){const t=(n.first-1)*r;o?a(t,0):a(0,t)}}else if(h)if(i)n.last.rows-l.rows<=t[0]+1?a(n.first.cols*r[1],(n.first.rows+1)*r[0]):n.last.cols-l.cols<=t[1]+1&&a((n.first.cols+1)*r[1],n.first.rows*r[0]);else if(n.last-l<=t+1){const t=(n.first+1)*r;o?a(t,0):a(0,t)}}else this.scrollToIndex(t,e)},getRenderedRange(){const t=this.isBoth(),s=this.isHorizontal(),e=this.itemSize,i=(t,s)=>Math.floor(t/(s||t));let o=this.first,l=0;if(this.element){const n=this.element.scrollTop,r=this.element.scrollLeft;if(t)o={rows:i(n,e[0]),cols:i(r,e[1])},l={rows:o.rows+this.numItemsInViewport.rows,cols:o.cols+this.numItemsInViewport.cols};else{o=i(s?r:n,e),l=o+this.numItemsInViewport}}return{first:this.first,last:this.last,viewport:{first:o,last:l}}},elementRef(t){this.element=t},contentRef(t){this.content=t},spacerRef(t){this.spacer=t}},computed:{containerClass(){return["p-virtualscroller",{"p-both-scroll":this.isBoth(),"p-horizontal-scroll":this.isHorizontal()},this.class]},loaderClass(){return["p-virtualscroller-loader",{"p-component-overlay":!this.$slots.loader}]},loadedItems(){const t=this.items;if(t&&!this.d_loading){return this.isBoth()?t.slice(this.first.rows,this.last.rows).map((t=>t.slice(this.first.cols,this.last.cols))):t.slice(this.first,this.last).map((t=>t))}return[]}}};const a=i("i",{class:"p-virtualscroller-loading-icon pi pi-spinner pi-spin"},null,-1);!function(t,s){void 0===s&&(s={});var e=s.insertAt;if(t&&"undefined"!=typeof document){var i=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===e&&i.firstChild?i.insertBefore(o,i.firstChild):i.appendChild(o),o.styleSheet?o.styleSheet.cssText=t:o.appendChild(document.createTextNode(t))}}("\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"),r.render=function(r,h,c,d,m,f){return c.disabled?(t(),s(o,{key:1},[e(r.$slots,"default"),e(r.$slots,"content",{items:c.items})],64)):(t(),s("div",{key:0,ref:f.elementRef,class:f.containerClass,style:c.style,onScroll:h[1]||(h[1]=(...t)=>f.onScroll&&f.onScroll(...t))},[e(r.$slots,"content",{styleClass:"p-virtualscroller-content",contentRef:f.contentRef,items:f.loadedItems,getItemOptions:f.getOptions},(()=>[i("div",{ref:f.contentRef,class:"p-virtualscroller-content"},[(t(!0),s(o,null,l(f.loadedItems,((t,s)=>e(r.$slots,"item",{key:s,item:t,options:f.getOptions(s)}))),128))],512)])),i("div",{ref:f.spacerRef,class:"p-virtualscroller-spacer"},null,512),m.d_loading?(t(),s("div",{key:0,class:f.loaderClass},[(t(!0),s(o,null,l(m.loaderArr,((t,s)=>e(r.$slots,"loader",{key:s,options:f.getLoaderOptions(s)},(()=>[a])))),128))],2)):n("",!0)],38))};export default r;
@@ -368,7 +368,7 @@ this.primevue.virtualscroller = (function (vue) {
368
368
  isHorizontal ? scrollTo(calculateCoord(newFirst, itemSize, contentPadding.left), 0) : scrollTo(0, calculateCoord(newFirst, itemSize, contentPadding.top));
369
369
  }
370
370
 
371
- this.first = newFirst.index;
371
+ this.first = newFirst;
372
372
  }
373
373
  },
374
374
  scrollInView(index, to, behavior = 'auto') {
@@ -1 +1 @@
1
- this.primevue=this.primevue||{},this.primevue.virtualscroller=function(t){"use strict";var s={name:"VirtualScroller",emits:["update:numToleratedItems","scroll-index-change","lazy-load"],props:{items:{type:Array,default:null},itemSize:{type:[Number,Array],default:null},scrollHeight:null,scrollWidth:null,orientation:{type:String,default:"vertical"},numToleratedItems:{type:Number,default:null},delay:{type:Number,default:0},lazy:{type:Boolean,default:!1},showLoader:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},style:null,class:null,disabled:{type:Boolean,default:!1}},data(){return{first:this.isBoth()?{rows:0,cols:0}:0,last:this.isBoth()?{rows:0,cols:0}:0,numItemsInViewport:this.isBoth()?{rows:0,cols:0}:0,lastScrollPos:this.isBoth()?{top:0,left:0}:0,d_numToleratedItems:this.numToleratedItems,d_loading:this.loading,loaderArr:null}},element:null,content:null,spacer:null,scrollTimeout:null,mounted(){this.init()},watch:{numToleratedItems(t){this.d_numToleratedItems=t},loading(t){this.d_loading=t},items(t,s){s&&s.length===(t||[]).length||this.init()}},methods:{init(){this.disabled||(this.setSize(),this.calculateOptions(),this.setSpacerSize())},getLast(t,s){return this.items?Math.min(s?this.items[0].length:this.items.length,t):0},calculateOptions(){const t=this.isBoth(),s=this.isHorizontal(),e=this.first,i=this.itemSize,o=this.getContentPadding(),l=this.element?this.element.offsetWidth-o.left:0,n=this.element?this.element.offsetHeight-o.top:0,r=(t,s)=>Math.ceil(t/(s||t)),a=t?{rows:r(n,i[0]),cols:r(l,i[1])}:r(s?l:n,i);let h=this.d_numToleratedItems||Math.ceil((t?a.rows:a)/2);const c=(t,s,e)=>this.getLast(t+s+(t<h?2:3)*h,e),d=t?{rows:c(e.rows,a.rows),cols:c(e.cols,a.cols,!0)}:c(e,a);this.d_numToleratedItems=h,this.$emit("update:numToleratedItems",this.d_numToleratedItems),this.last=d,this.numItemsInViewport=a,this.showLoader&&(this.$slots&&this.$slots.loader?this.loaderArr=Array.from({length:t?a.rows:a}):this.loaderArr=Array.from({length:1})),this.lazy&&this.$emit("lazy-load",{first:e,last:d})},getContentPadding(){if(this.content){const t=getComputedStyle(this.content),s=parseInt(parseFloat(t.paddingLeft.slice(0,-2)),10),e=parseInt(parseFloat(t.paddingRight.slice(0,-2)),10),i=parseInt(parseFloat(t.paddingTop.slice(0,-2)),10),o=parseInt(parseFloat(t.paddingBottom.slice(0,-2)),10);return{left:s,right:e,top:i,bottom:o,x:s+e,y:i+o}}return{left:0,right:0,top:0,bottom:0,x:0,y:0}},setSize(){if(this.element){const t=this.isBoth(),s=this.isHorizontal(),e=this.element.parentElement,i=this.scrollWidth||`${this.element.offsetWidth||e.offsetWidth}px`,o=this.scrollHeight||`${this.element.offsetHeight||e.offsetHeight}px`,l=(t,s)=>this.element.style[t]=s;t?(l("height",o),l("width",i)):s?l("width",i):l("height",o)}},setSpacerSize(){const t=this.items;if(this.spacer&&t){const s=this.isBoth(),e=this.isHorizontal(),i=this.itemSize,o=this.getContentPadding(),l=(t,s,e,i=0)=>this.spacer.style[t]=(s||[]).length*e+i+"px";s?(l("height",t[0],i[0],o.y),l("width",t[1],i[1],o.x)):e?l("width",t,i,o.x):l("height",t,i,o.y)}},setContentPosition(t){if(this.content){const s=this.isBoth(),e=this.isHorizontal(),i=this.content,o=t?t.first:this.first,l=this.itemSize,n=(t,s)=>t*s,r=(t=0,s=0)=>i.style.transform=`translate3d(${t}px, ${s}px, 0)`;if(s)r(n(o.cols,l[1]),n(o.rows,l[0]));else{const t=n(o,l);e?r(t,0):r(0,t)}}},onScrollPositionChange(t){const s=t.target,e=this.isBoth(),i=this.isHorizontal(),o=this.itemSize,l=this.getContentPadding(),n=(t,s)=>t?t>s?t-s:t:0,r=(t,s)=>Math.floor(t/(s||t)),a=(t,s,e,i,o)=>t<=this.d_numToleratedItems?this.d_numToleratedItems:o?e-i-this.d_numToleratedItems:s+this.d_numToleratedItems-1,h=(t,s,e,i,o,l)=>t<=this.d_numToleratedItems?0:l?t<s?e:t-this.d_numToleratedItems:t>s?e:t-2*this.d_numToleratedItems,c=(t,s,e,i,o)=>{let l=s+i+2*this.d_numToleratedItems;return t>=this.d_numToleratedItems&&(l+=this.d_numToleratedItems+1),this.getLast(l,o)},d=n(s.scrollTop,l.top),m=n(s.scrollLeft,l.left);let f=0,p=this.last,u=!1;if(e){const t=this.lastScrollPos.top<=d,s=this.lastScrollPos.left<=m,e={rows:r(d,o[0]),cols:r(m,o[1])},i={rows:a(e.rows,this.first.rows,this.last.rows,this.numItemsInViewport.rows,t),cols:a(e.cols,this.first.cols,this.last.cols,this.numItemsInViewport.cols,s)};f={rows:h(e.rows,i.rows,this.first.rows,this.last.rows,this.numItemsInViewport.rows,t),cols:h(e.cols,i.cols,this.first.cols,this.last.cols,this.numItemsInViewport.cols,s)},p={rows:c(e.rows,f.rows,this.last.rows,this.numItemsInViewport.rows),cols:c(e.cols,f.cols,this.last.cols,this.numItemsInViewport.cols,!0)},u=f.rows!==this.first.rows||f.cols!==this.first.cols||p.rows!==this.last.rows||p.cols!==this.last.cols,this.lastScrollPos={top:d,left:m}}else{const t=i?m:d,s=this.lastScrollPos<=t,e=r(t,o);f=h(e,a(e,this.first,this.last,this.numItemsInViewport,s),this.first,this.last,this.numItemsInViewport,s),p=c(e,f,this.last,this.numItemsInViewport),u=f!==this.first||p!==this.last,this.lastScrollPos=t}return{first:f,last:p,isRangeChanged:u}},onScrollChange(t){const{first:s,last:e,isRangeChanged:i}=this.onScrollPositionChange(t);if(i){const t={first:s,last:e};this.setContentPosition(t),this.lazy&&this.$emit("lazy-load",{first:s,last:e}),this.first=s,this.last=e,this.$emit("scroll-index-change",{first:s,last:e})}},onScroll(t){if(this.delay&&!this.lazy){if(this.scrollTimeout&&clearTimeout(this.scrollTimeout),!this.d_loading&&this.showLoader){const{isRangeChanged:s}=this.onScrollPositionChange(t);s&&(this.d_loading=!0)}this.scrollTimeout=setTimeout((()=>{this.onScrollChange(t),this.d_loading&&this.showLoader&&!this.lazy&&(this.d_loading=!1)}),this.delay)}else this.onScrollChange(t)},getOptions(t){let s=this.items.length,e=this.isBoth()?this.first.rows+t:this.first+t;return{index:e,count:s,first:0===e,last:e===s-1,even:e%2==0,odd:e%2!=0}},getLoaderOptions(t){let s=this.loaderArr.length;return{loading:this.d_loading,first:0===t,last:t===s-1,even:t%2==0,odd:t%2!=0}},isHorizontal(){return"horizontal"===this.orientation},isBoth(){return"both"===this.orientation},scrollTo(t){this.element&&this.element.scrollTo(t)},scrollToIndex(t,s="auto"){const e=this.isBoth(),i=this.isHorizontal(),o=this.itemSize,l=this.getContentPadding(),n=(t=0)=>t<=this.d_numToleratedItems?0:t,r=(t,s,e)=>t*s+e,a=(t=0,e=0)=>this.scrollTo({left:t,top:e,behavior:s});if(e){const s={rows:n(t[0]),cols:n(t[1])};s.rows===this.first.rows&&s.cols===this.first.cols||a(r(s.cols,o[1],l.left),r(s.rows,o[0],l.top))}else{const s=n(t);s!==this.first&&(i?a(r(s,o,l.left),0):a(0,r(s,o,l.top))),this.first=s.index}},scrollInView(t,s,e="auto"){if(s){const i=this.isBoth(),o=this.isHorizontal(),{first:l,viewport:n}=this.getRenderedRange(),r=this.itemSize,a=(t=0,s=0)=>this.scrollTo({left:t,top:s,behavior:e}),h="to-end"===s;if("to-start"===s){if(i)n.first.rows-l.rows>t[0]?a(n.first.cols*r[1],(n.first.rows-1)*r[0]):n.first.cols-l.cols>t[1]&&a((n.first.cols-1)*r[1],n.first.rows*r[0]);else if(n.first-l>t){const t=(n.first-1)*r;o?a(t,0):a(0,t)}}else if(h)if(i)n.last.rows-l.rows<=t[0]+1?a(n.first.cols*r[1],(n.first.rows+1)*r[0]):n.last.cols-l.cols<=t[1]+1&&a((n.first.cols+1)*r[1],n.first.rows*r[0]);else if(n.last-l<=t+1){const t=(n.first+1)*r;o?a(t,0):a(0,t)}}else this.scrollToIndex(t,e)},getRenderedRange(){const t=this.isBoth(),s=this.isHorizontal(),e=this.itemSize,i=(t,s)=>Math.floor(t/(s||t));let o=this.first,l=0;if(this.element){const n=this.element.scrollTop,r=this.element.scrollLeft;if(t)o={rows:i(n,e[0]),cols:i(r,e[1])},l={rows:o.rows+this.numItemsInViewport.rows,cols:o.cols+this.numItemsInViewport.cols};else{o=i(s?r:n,e),l=o+this.numItemsInViewport}}return{first:this.first,last:this.last,viewport:{first:o,last:l}}},elementRef(t){this.element=t},contentRef(t){this.content=t},spacerRef(t){this.spacer=t}},computed:{containerClass(){return["p-virtualscroller",{"p-both-scroll":this.isBoth(),"p-horizontal-scroll":this.isHorizontal()},this.class]},loaderClass(){return["p-virtualscroller-loader",{"p-component-overlay":!this.$slots.loader}]},loadedItems(){const t=this.items;if(t&&!this.d_loading){return this.isBoth()?t.slice(this.first.rows,this.last.rows).map((t=>t.slice(this.first.cols,this.last.cols))):t.slice(this.first,this.last).map((t=>t))}return[]}}};const e=t.createVNode("i",{class:"p-virtualscroller-loading-icon pi pi-spinner pi-spin"},null,-1);return function(t,s){void 0===s&&(s={});var e=s.insertAt;if(t&&"undefined"!=typeof document){var i=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===e&&i.firstChild?i.insertBefore(o,i.firstChild):i.appendChild(o),o.styleSheet?o.styleSheet.cssText=t:o.appendChild(document.createTextNode(t))}}("\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"),s.render=function(s,i,o,l,n,r){return o.disabled?(t.openBlock(),t.createBlock(t.Fragment,{key:1},[t.renderSlot(s.$slots,"default"),t.renderSlot(s.$slots,"content",{items:o.items})],64)):(t.openBlock(),t.createBlock("div",{key:0,ref:r.elementRef,class:r.containerClass,style:o.style,onScroll:i[1]||(i[1]=(...t)=>r.onScroll&&r.onScroll(...t))},[t.renderSlot(s.$slots,"content",{styleClass:"p-virtualscroller-content",contentRef:r.contentRef,items:r.loadedItems,getItemOptions:r.getOptions},(()=>[t.createVNode("div",{ref:r.contentRef,class:"p-virtualscroller-content"},[(t.openBlock(!0),t.createBlock(t.Fragment,null,t.renderList(r.loadedItems,((e,i)=>t.renderSlot(s.$slots,"item",{key:i,item:e,options:r.getOptions(i)}))),128))],512)])),t.createVNode("div",{ref:r.spacerRef,class:"p-virtualscroller-spacer"},null,512),n.d_loading?(t.openBlock(),t.createBlock("div",{key:0,class:r.loaderClass},[(t.openBlock(!0),t.createBlock(t.Fragment,null,t.renderList(n.loaderArr,((i,o)=>t.renderSlot(s.$slots,"loader",{key:o,options:r.getLoaderOptions(o)},(()=>[e])))),128))],2)):t.createCommentVNode("",!0)],38))},s}(Vue);
1
+ this.primevue=this.primevue||{},this.primevue.virtualscroller=function(t){"use strict";var s={name:"VirtualScroller",emits:["update:numToleratedItems","scroll-index-change","lazy-load"],props:{items:{type:Array,default:null},itemSize:{type:[Number,Array],default:null},scrollHeight:null,scrollWidth:null,orientation:{type:String,default:"vertical"},numToleratedItems:{type:Number,default:null},delay:{type:Number,default:0},lazy:{type:Boolean,default:!1},showLoader:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},style:null,class:null,disabled:{type:Boolean,default:!1}},data(){return{first:this.isBoth()?{rows:0,cols:0}:0,last:this.isBoth()?{rows:0,cols:0}:0,numItemsInViewport:this.isBoth()?{rows:0,cols:0}:0,lastScrollPos:this.isBoth()?{top:0,left:0}:0,d_numToleratedItems:this.numToleratedItems,d_loading:this.loading,loaderArr:null}},element:null,content:null,spacer:null,scrollTimeout:null,mounted(){this.init()},watch:{numToleratedItems(t){this.d_numToleratedItems=t},loading(t){this.d_loading=t},items(t,s){s&&s.length===(t||[]).length||this.init()}},methods:{init(){this.disabled||(this.setSize(),this.calculateOptions(),this.setSpacerSize())},getLast(t,s){return this.items?Math.min(s?this.items[0].length:this.items.length,t):0},calculateOptions(){const t=this.isBoth(),s=this.isHorizontal(),e=this.first,i=this.itemSize,o=this.getContentPadding(),l=this.element?this.element.offsetWidth-o.left:0,n=this.element?this.element.offsetHeight-o.top:0,r=(t,s)=>Math.ceil(t/(s||t)),a=t?{rows:r(n,i[0]),cols:r(l,i[1])}:r(s?l:n,i);let h=this.d_numToleratedItems||Math.ceil((t?a.rows:a)/2);const c=(t,s,e)=>this.getLast(t+s+(t<h?2:3)*h,e),d=t?{rows:c(e.rows,a.rows),cols:c(e.cols,a.cols,!0)}:c(e,a);this.d_numToleratedItems=h,this.$emit("update:numToleratedItems",this.d_numToleratedItems),this.last=d,this.numItemsInViewport=a,this.showLoader&&(this.$slots&&this.$slots.loader?this.loaderArr=Array.from({length:t?a.rows:a}):this.loaderArr=Array.from({length:1})),this.lazy&&this.$emit("lazy-load",{first:e,last:d})},getContentPadding(){if(this.content){const t=getComputedStyle(this.content),s=parseInt(parseFloat(t.paddingLeft.slice(0,-2)),10),e=parseInt(parseFloat(t.paddingRight.slice(0,-2)),10),i=parseInt(parseFloat(t.paddingTop.slice(0,-2)),10),o=parseInt(parseFloat(t.paddingBottom.slice(0,-2)),10);return{left:s,right:e,top:i,bottom:o,x:s+e,y:i+o}}return{left:0,right:0,top:0,bottom:0,x:0,y:0}},setSize(){if(this.element){const t=this.isBoth(),s=this.isHorizontal(),e=this.element.parentElement,i=this.scrollWidth||`${this.element.offsetWidth||e.offsetWidth}px`,o=this.scrollHeight||`${this.element.offsetHeight||e.offsetHeight}px`,l=(t,s)=>this.element.style[t]=s;t?(l("height",o),l("width",i)):s?l("width",i):l("height",o)}},setSpacerSize(){const t=this.items;if(this.spacer&&t){const s=this.isBoth(),e=this.isHorizontal(),i=this.itemSize,o=this.getContentPadding(),l=(t,s,e,i=0)=>this.spacer.style[t]=(s||[]).length*e+i+"px";s?(l("height",t[0],i[0],o.y),l("width",t[1],i[1],o.x)):e?l("width",t,i,o.x):l("height",t,i,o.y)}},setContentPosition(t){if(this.content){const s=this.isBoth(),e=this.isHorizontal(),i=this.content,o=t?t.first:this.first,l=this.itemSize,n=(t,s)=>t*s,r=(t=0,s=0)=>i.style.transform=`translate3d(${t}px, ${s}px, 0)`;if(s)r(n(o.cols,l[1]),n(o.rows,l[0]));else{const t=n(o,l);e?r(t,0):r(0,t)}}},onScrollPositionChange(t){const s=t.target,e=this.isBoth(),i=this.isHorizontal(),o=this.itemSize,l=this.getContentPadding(),n=(t,s)=>t?t>s?t-s:t:0,r=(t,s)=>Math.floor(t/(s||t)),a=(t,s,e,i,o)=>t<=this.d_numToleratedItems?this.d_numToleratedItems:o?e-i-this.d_numToleratedItems:s+this.d_numToleratedItems-1,h=(t,s,e,i,o,l)=>t<=this.d_numToleratedItems?0:l?t<s?e:t-this.d_numToleratedItems:t>s?e:t-2*this.d_numToleratedItems,c=(t,s,e,i,o)=>{let l=s+i+2*this.d_numToleratedItems;return t>=this.d_numToleratedItems&&(l+=this.d_numToleratedItems+1),this.getLast(l,o)},d=n(s.scrollTop,l.top),m=n(s.scrollLeft,l.left);let f=0,p=this.last,u=!1;if(e){const t=this.lastScrollPos.top<=d,s=this.lastScrollPos.left<=m,e={rows:r(d,o[0]),cols:r(m,o[1])},i={rows:a(e.rows,this.first.rows,this.last.rows,this.numItemsInViewport.rows,t),cols:a(e.cols,this.first.cols,this.last.cols,this.numItemsInViewport.cols,s)};f={rows:h(e.rows,i.rows,this.first.rows,this.last.rows,this.numItemsInViewport.rows,t),cols:h(e.cols,i.cols,this.first.cols,this.last.cols,this.numItemsInViewport.cols,s)},p={rows:c(e.rows,f.rows,this.last.rows,this.numItemsInViewport.rows),cols:c(e.cols,f.cols,this.last.cols,this.numItemsInViewport.cols,!0)},u=f.rows!==this.first.rows||f.cols!==this.first.cols||p.rows!==this.last.rows||p.cols!==this.last.cols,this.lastScrollPos={top:d,left:m}}else{const t=i?m:d,s=this.lastScrollPos<=t,e=r(t,o);f=h(e,a(e,this.first,this.last,this.numItemsInViewport,s),this.first,this.last,this.numItemsInViewport,s),p=c(e,f,this.last,this.numItemsInViewport),u=f!==this.first||p!==this.last,this.lastScrollPos=t}return{first:f,last:p,isRangeChanged:u}},onScrollChange(t){const{first:s,last:e,isRangeChanged:i}=this.onScrollPositionChange(t);if(i){const t={first:s,last:e};this.setContentPosition(t),this.lazy&&this.$emit("lazy-load",{first:s,last:e}),this.first=s,this.last=e,this.$emit("scroll-index-change",{first:s,last:e})}},onScroll(t){if(this.delay&&!this.lazy){if(this.scrollTimeout&&clearTimeout(this.scrollTimeout),!this.d_loading&&this.showLoader){const{isRangeChanged:s}=this.onScrollPositionChange(t);s&&(this.d_loading=!0)}this.scrollTimeout=setTimeout((()=>{this.onScrollChange(t),this.d_loading&&this.showLoader&&!this.lazy&&(this.d_loading=!1)}),this.delay)}else this.onScrollChange(t)},getOptions(t){let s=this.items.length,e=this.isBoth()?this.first.rows+t:this.first+t;return{index:e,count:s,first:0===e,last:e===s-1,even:e%2==0,odd:e%2!=0}},getLoaderOptions(t){let s=this.loaderArr.length;return{loading:this.d_loading,first:0===t,last:t===s-1,even:t%2==0,odd:t%2!=0}},isHorizontal(){return"horizontal"===this.orientation},isBoth(){return"both"===this.orientation},scrollTo(t){this.element&&this.element.scrollTo(t)},scrollToIndex(t,s="auto"){const e=this.isBoth(),i=this.isHorizontal(),o=this.itemSize,l=this.getContentPadding(),n=(t=0)=>t<=this.d_numToleratedItems?0:t,r=(t,s,e)=>t*s+e,a=(t=0,e=0)=>this.scrollTo({left:t,top:e,behavior:s});if(e){const s={rows:n(t[0]),cols:n(t[1])};s.rows===this.first.rows&&s.cols===this.first.cols||a(r(s.cols,o[1],l.left),r(s.rows,o[0],l.top))}else{const s=n(t);s!==this.first&&(i?a(r(s,o,l.left),0):a(0,r(s,o,l.top))),this.first=s}},scrollInView(t,s,e="auto"){if(s){const i=this.isBoth(),o=this.isHorizontal(),{first:l,viewport:n}=this.getRenderedRange(),r=this.itemSize,a=(t=0,s=0)=>this.scrollTo({left:t,top:s,behavior:e}),h="to-end"===s;if("to-start"===s){if(i)n.first.rows-l.rows>t[0]?a(n.first.cols*r[1],(n.first.rows-1)*r[0]):n.first.cols-l.cols>t[1]&&a((n.first.cols-1)*r[1],n.first.rows*r[0]);else if(n.first-l>t){const t=(n.first-1)*r;o?a(t,0):a(0,t)}}else if(h)if(i)n.last.rows-l.rows<=t[0]+1?a(n.first.cols*r[1],(n.first.rows+1)*r[0]):n.last.cols-l.cols<=t[1]+1&&a((n.first.cols+1)*r[1],n.first.rows*r[0]);else if(n.last-l<=t+1){const t=(n.first+1)*r;o?a(t,0):a(0,t)}}else this.scrollToIndex(t,e)},getRenderedRange(){const t=this.isBoth(),s=this.isHorizontal(),e=this.itemSize,i=(t,s)=>Math.floor(t/(s||t));let o=this.first,l=0;if(this.element){const n=this.element.scrollTop,r=this.element.scrollLeft;if(t)o={rows:i(n,e[0]),cols:i(r,e[1])},l={rows:o.rows+this.numItemsInViewport.rows,cols:o.cols+this.numItemsInViewport.cols};else{o=i(s?r:n,e),l=o+this.numItemsInViewport}}return{first:this.first,last:this.last,viewport:{first:o,last:l}}},elementRef(t){this.element=t},contentRef(t){this.content=t},spacerRef(t){this.spacer=t}},computed:{containerClass(){return["p-virtualscroller",{"p-both-scroll":this.isBoth(),"p-horizontal-scroll":this.isHorizontal()},this.class]},loaderClass(){return["p-virtualscroller-loader",{"p-component-overlay":!this.$slots.loader}]},loadedItems(){const t=this.items;if(t&&!this.d_loading){return this.isBoth()?t.slice(this.first.rows,this.last.rows).map((t=>t.slice(this.first.cols,this.last.cols))):t.slice(this.first,this.last).map((t=>t))}return[]}}};const e=t.createVNode("i",{class:"p-virtualscroller-loading-icon pi pi-spinner pi-spin"},null,-1);return function(t,s){void 0===s&&(s={});var e=s.insertAt;if(t&&"undefined"!=typeof document){var i=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===e&&i.firstChild?i.insertBefore(o,i.firstChild):i.appendChild(o),o.styleSheet?o.styleSheet.cssText=t:o.appendChild(document.createTextNode(t))}}("\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"),s.render=function(s,i,o,l,n,r){return o.disabled?(t.openBlock(),t.createBlock(t.Fragment,{key:1},[t.renderSlot(s.$slots,"default"),t.renderSlot(s.$slots,"content",{items:o.items})],64)):(t.openBlock(),t.createBlock("div",{key:0,ref:r.elementRef,class:r.containerClass,style:o.style,onScroll:i[1]||(i[1]=(...t)=>r.onScroll&&r.onScroll(...t))},[t.renderSlot(s.$slots,"content",{styleClass:"p-virtualscroller-content",contentRef:r.contentRef,items:r.loadedItems,getItemOptions:r.getOptions},(()=>[t.createVNode("div",{ref:r.contentRef,class:"p-virtualscroller-content"},[(t.openBlock(!0),t.createBlock(t.Fragment,null,t.renderList(r.loadedItems,((e,i)=>t.renderSlot(s.$slots,"item",{key:i,item:e,options:r.getOptions(i)}))),128))],512)])),t.createVNode("div",{ref:r.spacerRef,class:"p-virtualscroller-spacer"},null,512),n.d_loading?(t.openBlock(),t.createBlock("div",{key:0,class:r.loaderClass},[(t.openBlock(!0),t.createBlock(t.Fragment,null,t.renderList(n.loaderArr,((i,o)=>t.renderSlot(s.$slots,"loader",{key:o,options:r.getLoaderOptions(o)},(()=>[e])))),128))],2)):t.createCommentVNode("",!0)],38))},s}(Vue);
package/web-types.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "framework": "vue",
4
4
  "name": "PrimeVue",
5
- "version": "3.7.0",
5
+ "version": "3.8.1",
6
6
  "contributions": {
7
7
  "html": {
8
8
  "types-syntax": "typescript",
@@ -209,6 +209,16 @@
209
209
  "type": "string"
210
210
  }
211
211
  },
212
+ {
213
+ "name": "autoHighlight",
214
+ "default": false,
215
+ "doc-url": "https://primefaces.org/primevue/showcase/#/autocomplete",
216
+ "description": "Highlights automatically the first item of the dropdown to be selected.",
217
+ "value": {
218
+ "kind": "expression",
219
+ "type": "boolean"
220
+ }
221
+ },
212
222
  {
213
223
  "name": "multiple",
214
224
  "default": "false",
@@ -3950,6 +3960,24 @@
3950
3960
  "type": "object",
3951
3961
  "description": "Row data to edit."
3952
3962
  },
3963
+ {
3964
+ "name": "event.newData",
3965
+ "doc-url": "https://primefaces.org/primevue/showcase/#/datatable",
3966
+ "type": "object",
3967
+ "description": "New row data after editing."
3968
+ },
3969
+ {
3970
+ "name": "event.value",
3971
+ "doc-url": "https://primefaces.org/primevue/showcase/#/datatable",
3972
+ "type": "object",
3973
+ "description": "Field value of row data to edit."
3974
+ },
3975
+ {
3976
+ "name": "event.newValue",
3977
+ "doc-url": "https://primefaces.org/primevue/showcase/#/datatable",
3978
+ "type": "object",
3979
+ "description": "Field value of new row data after editing"
3980
+ },
3953
3981
  {
3954
3982
  "name": "event.field",
3955
3983
  "doc-url": "https://primefaces.org/primevue/showcase/#/datatable",
@@ -4018,6 +4046,12 @@
4018
4046
  "type": "object",
4019
4047
  "description": "Row data to edit."
4020
4048
  },
4049
+ {
4050
+ "name": "event.newData",
4051
+ "doc-url": "https://primefaces.org/primevue/showcase/#/datatable",
4052
+ "type": "object",
4053
+ "description": "New row data after editing."
4054
+ },
4021
4055
  {
4022
4056
  "name": "event.field",
4023
4057
  "doc-url": "https://primefaces.org/primevue/showcase/#/datatable",
@@ -4033,9 +4067,9 @@
4033
4067
  ]
4034
4068
  },
4035
4069
  {
4036
- "name": "cell-edit-save",
4070
+ "name": "row-edit-save",
4037
4071
  "doc-url": "https://primefaces.org/primevue/showcase/#/datatable",
4038
- "description": "Callback to invoke when cell edit is saved.",
4072
+ "description": "Callback to invoke when row edit is saved.",
4039
4073
  "arguments": [
4040
4074
  {
4041
4075
  "name": "event.originalEvent",
@@ -4049,6 +4083,12 @@
4049
4083
  "type": "object",
4050
4084
  "description": "Row data to edit."
4051
4085
  },
4086
+ {
4087
+ "name": "event.newData",
4088
+ "doc-url": "https://primefaces.org/primevue/showcase/#/datatable",
4089
+ "type": "object",
4090
+ "description": "New row data after editing."
4091
+ },
4052
4092
  {
4053
4093
  "name": "event.field",
4054
4094
  "doc-url": "https://primefaces.org/primevue/showcase/#/datatable",
@@ -4064,9 +4104,9 @@
4064
4104
  ]
4065
4105
  },
4066
4106
  {
4067
- "name": "cell-edit-cancel",
4107
+ "name": "row-edit-cancel",
4068
4108
  "doc-url": "https://primefaces.org/primevue/showcase/#/datatable",
4069
- "description": "Callback to invoke when cell edit is cancelled.",
4109
+ "description": "Callback to invoke when row edit is cancelled.",
4070
4110
  "arguments": [
4071
4111
  {
4072
4112
  "name": "event.originalEvent",
@@ -4080,6 +4120,12 @@
4080
4120
  "type": "object",
4081
4121
  "description": "Row data to edit."
4082
4122
  },
4123
+ {
4124
+ "name": "event.newData",
4125
+ "doc-url": "https://primefaces.org/primevue/showcase/#/datatable",
4126
+ "type": "object",
4127
+ "description": "New row data after editing."
4128
+ },
4083
4129
  {
4084
4130
  "name": "event.field",
4085
4131
  "doc-url": "https://primefaces.org/primevue/showcase/#/datatable",
@@ -4977,6 +5023,11 @@
4977
5023
  "name": "item",
4978
5024
  "doc-url": "https://primefaces.org/primevue/showcase/#/dock",
4979
5025
  "description": "Custom content for the item."
5026
+ },
5027
+ {
5028
+ "name": "icon",
5029
+ "doc-url": "https://primefaces.org/primevue/showcase/#/dock",
5030
+ "description": "Custom content for the item."
4980
5031
  }
4981
5032
  ]
4982
5033
  },
@@ -6385,6 +6436,16 @@
6385
6436
  "kind": "expression",
6386
6437
  "type": "boolean"
6387
6438
  }
6439
+ },
6440
+ {
6441
+ "name": "diabled",
6442
+ "default": "false",
6443
+ "doc-url": "https://primefaces.org/primevue/showcase/#/inplace",
6444
+ "description": "When present, it specifies that the element should be disabled.",
6445
+ "value": {
6446
+ "kind": "expression",
6447
+ "type": "boolean"
6448
+ }
6388
6449
  }
6389
6450
  ],
6390
6451
  "events": [
@@ -6708,6 +6769,16 @@
6708
6769
  "type": "number"
6709
6770
  }
6710
6771
  },
6772
+ {
6773
+ "name": "allowEmpty",
6774
+ "default": "true",
6775
+ "doc-url": "https://primefaces.org/primevue/showcase/#/inputnumber",
6776
+ "description": "Determines whether the input field is empty.",
6777
+ "value": {
6778
+ "kind": "expression",
6779
+ "type": "boolean"
6780
+ }
6781
+ },
6711
6782
  {
6712
6783
  "name": "inputStyle",
6713
6784
  "default": "null",
@@ -8356,6 +8427,18 @@
8356
8427
  "type": "object"
8357
8428
  }
8358
8429
  }
8430
+ ],
8431
+ "events": [
8432
+ {
8433
+ "name": "show",
8434
+ "doc-url": "https://primefaces.org/primevue/showcase/#/overlaypanel",
8435
+ "description": "Callback to invoke before the overlay is shown."
8436
+ },
8437
+ {
8438
+ "name": "hide",
8439
+ "doc-url": "https://primefaces.org/primevue/showcase/#/overlaypanel",
8440
+ "description": "Callback to invoke before the overlay is hidden."
8441
+ }
8359
8442
  ]
8360
8443
  },
8361
8444
  {