{"version":3,"sources":["webpack:///../../../src/components/VVirtualScroll/VVirtualScroll.ts","webpack:///./src/demo/usages/usage.js","webpack:///./src/demo/usages/virtual-scrollers.vue?41c6","webpack:///src/demo/usages/virtual-scrollers.vue","webpack:///./src/demo/usages/virtual-scrollers.vue?9d6b","webpack:///./src/demo/usages/virtual-scrollers.vue","webpack:///../../../src/directives/scroll/index.ts"],"names":["name","directives","Scroll","props","bench","type","Number","default","itemHeight","required","items","data","first","last","scrollTop","computed","__bench","parseInt","this","__itemHeight","firstToRender","Math","lastToRender","watch","height","mounted","getLast","methods","getChildren","slice","genChild","index","top","$createElement","staticClass","style","key","item","getFirst","$el","onScroll","render","content","h","length","modifiers","self","value","on","$listeners","attrs","Object","_vm","_h","_c","_self","_v","_s","scopedSlots","_u","fn","ref","staticRenderFns","component","VCard","VVirtualScroll","inserted","binding","options","passive","handler","target","document","el","undefined","unbind"],"mappings":"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","file":"js/usages22.1170f3b1.js","sourcesContent":["// Styles\nimport './VVirtualScroll.sass'\n\n// Mixins\nimport Measurable from '../../mixins/measurable'\n\n// Directives\nimport Scroll from '../../directives/scroll'\n\n// Utilities\nimport {\n convertToUnit,\n getSlot,\n} from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport default Measurable.extend({\n name: 'v-virtual-scroll',\n\n directives: { Scroll },\n\n props: {\n bench: {\n type: [Number, String],\n default: 0,\n },\n itemHeight: {\n type: [Number, String],\n required: true,\n },\n items: {\n type: Array,\n default: () => [],\n } as PropValidator,\n },\n\n data: () => ({\n first: 0,\n last: 0,\n scrollTop: 0,\n }),\n\n computed: {\n __bench (): number {\n return parseInt(this.bench, 10)\n },\n __itemHeight (): number {\n return parseInt(this.itemHeight, 10)\n },\n firstToRender (): number {\n return Math.max(0, this.first - this.__bench)\n },\n lastToRender (): number {\n return Math.min(this.items.length, this.last + this.__bench)\n },\n },\n\n watch: {\n height: 'onScroll',\n itemHeight: 'onScroll',\n },\n\n mounted () {\n this.last = this.getLast(0)\n },\n\n methods: {\n getChildren (): VNode[] {\n return this.items.slice(\n this.firstToRender,\n this.lastToRender,\n ).map(this.genChild)\n },\n genChild (item: any, index: number) {\n index += this.firstToRender\n\n const top = convertToUnit(index * this.__itemHeight)\n\n return this.$createElement('div', {\n staticClass: 'v-virtual-scroll__item',\n style: { top },\n key: index,\n }, getSlot(this, 'default', { index, item }))\n },\n getFirst (): number {\n return Math.floor(this.scrollTop / this.__itemHeight)\n },\n getLast (first: number): number {\n const height = parseInt(this.height || 0, 10) || this.$el.clientHeight\n\n return first + Math.ceil(height / this.__itemHeight)\n },\n onScroll () {\n this.scrollTop = this.$el.scrollTop\n this.first = this.getFirst()\n this.last = this.getLast(this.first)\n },\n },\n\n render (h): VNode {\n const content = h('div', {\n staticClass: 'v-virtual-scroll__container',\n style: {\n height: convertToUnit((this.items.length * this.__itemHeight)),\n },\n }, this.getChildren())\n\n return h('div', {\n staticClass: 'v-virtual-scroll',\n style: this.measurableStyles,\n directives: [{\n name: 'scroll',\n modifiers: { self: true },\n value: this.onScroll,\n }],\n on: this.$listeners,\n }, [content])\n },\n})\n","export default {\n props: {\n attrs: {\n type: Object,\n default: () => ({}),\n },\n },\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"py-6 grow\"},[_c('div',{staticClass:\"text-center font-weight-bold\"},[_vm._v(_vm._s(_vm.items.length)+\" Total Items\")]),_c('v-card',{attrs:{\"outlined\":\"\"}},[_c('v-virtual-scroll',{attrs:{\"height\":_vm.attrs.height,\"items\":_vm.items,\"item-height\":\"25\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"pa-4\"},[_vm._v(\" I'm item number \"+_vm._s(item)+\" \")])]}}])})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vuetify-loader/lib/loader.js??ref--18-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./virtual-scrollers.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vuetify-loader/lib/loader.js??ref--18-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./virtual-scrollers.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./virtual-scrollers.vue?vue&type=template&id=9a91590a&\"\nimport script from \"./virtual-scrollers.vue?vue&type=script&lang=js&\"\nexport * from \"./virtual-scrollers.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VVirtualScroll } from 'vuetify/lib/components/VVirtualScroll';\ninstallComponents(component, {VCard,VVirtualScroll})\n","import { VNodeDirective } from 'vue/types/vnode'\nimport { DirectiveOptions } from 'vue'\n\ninterface ScrollVNodeDirective extends Omit {\n value: EventListener | {\n handler: EventListener\n options?: boolean | AddEventListenerOptions\n } | EventListenerObject & { options?: boolean | AddEventListenerOptions }\n modifiers?: {\n self?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ScrollVNodeDirective) {\n const { self = false } = binding.modifiers || {}\n const value = binding.value\n const options = (typeof value === 'object' && value.options) || { passive: true }\n const handler = typeof value === 'function' || 'handleEvent' in value ? value : value.handler\n\n const target = self\n ? el\n : binding.arg\n ? document.querySelector(binding.arg)\n : window\n\n if (!target) return\n\n target.addEventListener('scroll', handler, options)\n\n el._onScroll = {\n handler,\n options,\n // Don't reference self\n target: self ? undefined : target,\n }\n}\n\nfunction unbind (el: HTMLElement) {\n if (!el._onScroll) return\n\n const { handler, options, target = el } = el._onScroll\n\n target.removeEventListener('scroll', handler, options)\n delete el._onScroll\n}\n\nexport const Scroll = {\n inserted,\n unbind,\n} as DirectiveOptions\n\nexport default Scroll\n"],"sourceRoot":""}