From 07f048b95c6ebd95388e731348db5bba8aa4bf9b Mon Sep 17 00:00:00 2001 From: Damir Date: Wed, 15 Apr 2020 21:26:11 +0200 Subject: [PATCH 01/26] refactor: Use early return --- src/components/RecycleScroller.vue | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/components/RecycleScroller.vue b/src/components/RecycleScroller.vue index 236d2ba6..4fd3bb60 100644 --- a/src/components/RecycleScroller.vue +++ b/src/components/RecycleScroller.vue @@ -291,14 +291,10 @@ export default { let startIndex, endIndex let totalSize - if (!count) { - startIndex = endIndex = totalSize = 0 - } else if (this.$_prerender) { - startIndex = 0 - endIndex = this.prerender - totalSize = null - } else { - const scroll = this.getScroll() + let scroll + + if (count && !this.$_prerender) { + scroll = this.getScroll() // Skip update if use hasn't scrolled enough if (checkPositionDiff) { @@ -310,6 +306,15 @@ export default { } } } + } + + if (!count) { + startIndex = endIndex = totalSize = 0 + } else if (this.$_prerender) { + startIndex = 0 + endIndex = this.prerender + totalSize = null + } else { this.$_lastUpdateScrollPosition = scroll.start const buffer = this.buffer From 35c0ad239201d2b7666ad7dec46ec6d7fea6b676 Mon Sep 17 00:00:00 2001 From: Damir Date: Sun, 19 Apr 2020 12:44:40 +0200 Subject: [PATCH 02/26] fix: Items are not checked when scroll start is above the fold --- src/components/RecycleScroller.vue | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/components/RecycleScroller.vue b/src/components/RecycleScroller.vue index 4fd3bb60..13daf118 100644 --- a/src/components/RecycleScroller.vue +++ b/src/components/RecycleScroller.vue @@ -298,7 +298,7 @@ export default { // Skip update if use hasn't scrolled enough if (checkPositionDiff) { - let positionDiff = scroll.start - this.$_lastUpdateScrollPosition + let positionDiff = scroll.originalStart - this.$_lastUpdateScrollPosition if (positionDiff < 0) positionDiff = -positionDiff if ((itemSize === null && positionDiff < minItemSize) || positionDiff < itemSize) { return { @@ -315,7 +315,7 @@ export default { endIndex = this.prerender totalSize = null } else { - this.$_lastUpdateScrollPosition = scroll.start + this.$_lastUpdateScrollPosition = scroll.originalStart const buffer = this.buffer scroll.start -= buffer @@ -507,13 +507,15 @@ export default { getScroll () { const { $el: el, direction } = this const isVertical = direction === 'vertical' - let scrollState if (this.pageMode) { const bounds = el.getBoundingClientRect() const boundsSize = isVertical ? bounds.height : bounds.width - let start = -(isVertical ? bounds.top : bounds.left) - let size = isVertical ? window.innerHeight : window.innerWidth + const originalStart = -(isVertical ? bounds.top : bounds.left) + const originalSize = isVertical ? window.innerHeight : window.innerWidth + let start = originalStart + let size = originalSize + if (start < 0) { size += start start = 0 @@ -521,23 +523,26 @@ export default { if (start + size > boundsSize) { size = boundsSize - start } - scrollState = { + return { + originalStart, start, end: start + size, } - } else if (isVertical) { - scrollState = { + } + + if (isVertical) { + return { + originalStart: el.scrollTop, start: el.scrollTop, end: el.scrollTop + el.clientHeight, } } else { - scrollState = { + return { + originalStart: el.scrollLeft, start: el.scrollLeft, end: el.scrollLeft + el.clientWidth, } } - - return scrollState }, applyPageMode () { From 832a5bae5998486b1c2f40cab9f97b92f5020127 Mon Sep 17 00:00:00 2001 From: Damir Date: Sun, 19 Apr 2020 12:51:51 +0200 Subject: [PATCH 03/26] refactor: Use absolute scroll diff --- src/components/RecycleScroller.vue | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/components/RecycleScroller.vue b/src/components/RecycleScroller.vue index 13daf118..4575c209 100644 --- a/src/components/RecycleScroller.vue +++ b/src/components/RecycleScroller.vue @@ -298,8 +298,7 @@ export default { // Skip update if use hasn't scrolled enough if (checkPositionDiff) { - let positionDiff = scroll.originalStart - this.$_lastUpdateScrollPosition - if (positionDiff < 0) positionDiff = -positionDiff + const positionDiff = Math.abs(scroll.originalStart - this.$_lastUpdateScrollPosition) if ((itemSize === null && positionDiff < minItemSize) || positionDiff < itemSize) { return { continuous: true, From 2d6583d4914da1b683684e2c4f7421399e1363d1 Mon Sep 17 00:00:00 2001 From: Damir Date: Sun, 19 Apr 2020 19:59:51 +0200 Subject: [PATCH 04/26] fix: scrollToItem works with pageMode --- .../src/components/RecycleScrollerDemo.vue | 10 ++++++++++ src/components/RecycleScroller.vue | 20 +++++++++++++++---- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/docs-src/src/components/RecycleScrollerDemo.vue b/docs-src/src/components/RecycleScrollerDemo.vue index 52772d31..02d79571 100644 --- a/docs-src/src/components/RecycleScrollerDemo.vue +++ b/docs-src/src/components/RecycleScrollerDemo.vue @@ -42,6 +42,15 @@ max="500000" > buffer + + + + @@ -113,6 +122,7 @@ export default { enableLetters: true, pageMode: false, pageModeFullPage: true, + scrollTo: 100, }), computed: { diff --git a/src/components/RecycleScroller.vue b/src/components/RecycleScroller.vue index 236d2ba6..ebe75a61 100644 --- a/src/components/RecycleScroller.vue +++ b/src/components/RecycleScroller.vue @@ -573,11 +573,23 @@ export default { }, scrollToPosition (position) { - if (this.direction === 'vertical') { - this.$el.scrollTop = position - } else { - this.$el.scrollLeft = position + const direction = this.direction === 'vertical' + ? { scroll: 'scrollTop', start: 'top', size: 'height' } + : { scroll: 'scrollLeft', start: 'left', size: 'width' } + + if (this.pageMode) { + const viewportEl = ScrollParent(this.$el) + // HTML doesn't overflow like other elements + const scrollTop = viewportEl.tagName === 'HTML' ? 0 : viewportEl[direction.scroll] + const viewport = viewportEl.getBoundingClientRect() + + const scroller = this.$el.getBoundingClientRect() + const scrollerPosition = scroller[direction.start] - viewport[direction.start] + viewportEl[direction.scroll] = position + scrollTop + scrollerPosition + return } + + this.$el[direction.scroll] = position }, itemsLimitError () { From 7bfc355715808113f410514e365ed9db6ecf2e7e Mon Sep 17 00:00:00 2001 From: Damir Date: Sun, 19 Apr 2020 20:13:19 +0200 Subject: [PATCH 05/26] fix: Remove unused property --- src/components/RecycleScroller.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/RecycleScroller.vue b/src/components/RecycleScroller.vue index ebe75a61..cbaf9fc1 100644 --- a/src/components/RecycleScroller.vue +++ b/src/components/RecycleScroller.vue @@ -574,8 +574,8 @@ export default { scrollToPosition (position) { const direction = this.direction === 'vertical' - ? { scroll: 'scrollTop', start: 'top', size: 'height' } - : { scroll: 'scrollLeft', start: 'left', size: 'width' } + ? { scroll: 'scrollTop', start: 'top' } + : { scroll: 'scrollLeft', start: 'left' } if (this.pageMode) { const viewportEl = ScrollParent(this.$el) From f6302b3289e08bb80bf16d27b2e985d66d48ebb2 Mon Sep 17 00:00:00 2001 From: Damir Date: Mon, 20 Apr 2020 18:54:02 +0200 Subject: [PATCH 06/26] feat: Allow client to fetch scrollPosition and decide what to do with it --- src/components/RecycleScroller.vue | 33 ++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/src/components/RecycleScroller.vue b/src/components/RecycleScroller.vue index cbaf9fc1..e69b2a1c 100644 --- a/src/components/RecycleScroller.vue +++ b/src/components/RecycleScroller.vue @@ -563,16 +563,19 @@ export default { }, scrollToItem (index) { - let scroll - if (this.itemSize === null) { - scroll = index > 0 ? this.sizes[index - 1].accumulator : 0 - } else { - scroll = index * this.itemSize - } - this.scrollToPosition(scroll) + const { viewport, scrollDirection, scrollDistance } = this.scrollToPosition(index) + viewport[scrollDirection] = scrollDistance }, - scrollToPosition (position) { + scrollToPosition (index) { + const getPositionOfItem = (index) => { + if (this.itemSize === null) { + return index > 0 ? this.sizes[index - 1].accumulator : 0 + } else { + return index * this.itemSize + } + } + const position = getPositionOfItem(index) const direction = this.direction === 'vertical' ? { scroll: 'scrollTop', start: 'top' } : { scroll: 'scrollLeft', start: 'left' } @@ -585,11 +588,19 @@ export default { const scroller = this.$el.getBoundingClientRect() const scrollerPosition = scroller[direction.start] - viewport[direction.start] - viewportEl[direction.scroll] = position + scrollTop + scrollerPosition - return + + return { + viewport: viewportEl, + scrollDirection: direction.scroll, + scrollDistance: position + scrollTop + scrollerPosition, + } } - this.$el[direction.scroll] = position + return { + viewport: this.$el, + scrollDirection: direction.scroll, + scrollDistance: position, + } }, itemsLimitError () { From 7305ab993733e7c7881017709709967fdc2152eb Mon Sep 17 00:00:00 2001 From: Damir Date: Thu, 23 Apr 2020 17:35:49 +0200 Subject: [PATCH 07/26] fix: Remove sorting views --- src/components/RecycleScroller.vue | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/components/RecycleScroller.vue b/src/components/RecycleScroller.vue index 09460dee..2ea76403 100644 --- a/src/components/RecycleScroller.vue +++ b/src/components/RecycleScroller.vue @@ -486,8 +486,6 @@ export default { // After the user has finished scrolling // Sort views so text selection is correct - clearTimeout(this.$_sortTimer) - this.$_sortTimer = setTimeout(this.sortViews, 300) return { continuous, @@ -619,10 +617,6 @@ export default { }) throw new Error('Rendered items limit reached') }, - - sortViews () { - this.pool.sort((viewA, viewB) => viewA.nr.index - viewB.nr.index) - }, }, } From b683a4da0d6bd282bb0acd387a5d69eb2d47da59 Mon Sep 17 00:00:00 2001 From: Damir Date: Thu, 23 Apr 2020 17:37:20 +0200 Subject: [PATCH 08/26] chore: Move to infinity namespace --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c83c8b19..a73ba8a6 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "vue-virtual-scroller", + "name": "@startinfinity/vue-virtual-scroller", "description": "Smooth scrolling for any amount of data", "version": "1.0.10", "author": { From bf92a323224ffe8c0bc8f08158608838e3a39a38 Mon Sep 17 00:00:00 2001 From: Damir Date: Thu, 23 Apr 2020 17:45:13 +0200 Subject: [PATCH 09/26] 1.1.0 --- dist/vue-virtual-scroller.esm.js | 115 +++++++++++++++++---------- dist/vue-virtual-scroller.esm.js.map | 2 +- dist/vue-virtual-scroller.min.js | 2 +- dist/vue-virtual-scroller.min.js.map | 2 +- dist/vue-virtual-scroller.umd.js | 115 +++++++++++++++++---------- dist/vue-virtual-scroller.umd.js.map | 2 +- package.json | 2 +- 7 files changed, 149 insertions(+), 91 deletions(-) diff --git a/dist/vue-virtual-scroller.esm.js b/dist/vue-virtual-scroller.esm.js index 33e441d9..80dda954 100644 --- a/dist/vue-virtual-scroller.esm.js +++ b/dist/vue-virtual-scroller.esm.js @@ -405,19 +405,13 @@ var script = { var pool = this.pool; var startIndex, endIndex; var totalSize; + var scroll; - if (!count) { - startIndex = endIndex = totalSize = 0; - } else if (this.$_prerender) { - startIndex = 0; - endIndex = this.prerender; - totalSize = null; - } else { - var scroll = this.getScroll(); // Skip update if use hasn't scrolled enough + if (count && !this.$_prerender) { + scroll = this.getScroll(); // Skip update if use hasn't scrolled enough if (checkPositionDiff) { - var positionDiff = scroll.start - this.$_lastUpdateScrollPosition; - if (positionDiff < 0) positionDiff = -positionDiff; + var positionDiff = Math.abs(scroll.originalStart - this.$_lastUpdateScrollPosition); if (itemSize === null && positionDiff < minItemSize || positionDiff < itemSize) { return { @@ -425,8 +419,16 @@ var script = { }; } } + } - this.$_lastUpdateScrollPosition = scroll.start; + if (!count) { + startIndex = endIndex = totalSize = 0; + } else if (this.$_prerender) { + startIndex = 0; + endIndex = this.prerender; + totalSize = null; + } else { + this.$_lastUpdateScrollPosition = scroll.originalStart; var buffer = this.buffer; scroll.start -= buffer; scroll.end += buffer; // Variable size mode @@ -594,8 +596,6 @@ var script = { if (this.emitUpdate) this.$emit('update', startIndex, endIndex); // After the user has finished scrolling // Sort views so text selection is correct - clearTimeout(this.$_sortTimer); - this.$_sortTimer = setTimeout(this.sortViews, 300); return { continuous: continuous }; @@ -613,13 +613,14 @@ var script = { var el = this.$el, direction = this.direction; var isVertical = direction === 'vertical'; - var scrollState; if (this.pageMode) { var bounds = el.getBoundingClientRect(); var boundsSize = isVertical ? bounds.height : bounds.width; - var start = -(isVertical ? bounds.top : bounds.left); - var size = isVertical ? window.innerHeight : window.innerWidth; + var originalStart = -(isVertical ? bounds.top : bounds.left); + var originalSize = isVertical ? window.innerHeight : window.innerWidth; + var start = originalStart; + var size = originalSize; if (start < 0) { size += start; @@ -630,23 +631,26 @@ var script = { size = boundsSize - start; } - scrollState = { + return { + originalStart: originalStart, start: start, end: start + size }; - } else if (isVertical) { - scrollState = { + } + + if (isVertical) { + return { + originalStart: el.scrollTop, start: el.scrollTop, end: el.scrollTop + el.clientHeight }; } else { - scrollState = { + return { + originalStart: el.scrollLeft, start: el.scrollLeft, end: el.scrollLeft + el.clientWidth }; } - - return scrollState; }, applyPageMode: function applyPageMode() { if (this.pageMode) { @@ -672,36 +676,61 @@ var script = { this.listenerTarget = null; }, scrollToItem: function scrollToItem(index) { - var scroll; + var _this$scrollToPositio = this.scrollToPosition(index), + viewport = _this$scrollToPositio.viewport, + scrollDirection = _this$scrollToPositio.scrollDirection, + scrollDistance = _this$scrollToPositio.scrollDistance; - if (this.itemSize === null) { - scroll = index > 0 ? this.sizes[index - 1].accumulator : 0; - } else { - scroll = index * this.itemSize; - } - - this.scrollToPosition(scroll); + viewport[scrollDirection] = scrollDistance; }, - scrollToPosition: function scrollToPosition(position) { - if (this.direction === 'vertical') { - this.$el.scrollTop = position; - } else { - this.$el.scrollLeft = position; + scrollToPosition: function scrollToPosition(index) { + var _this4 = this; + + var getPositionOfItem = function getPositionOfItem(index) { + if (_this4.itemSize === null) { + return index > 0 ? _this4.sizes[index - 1].accumulator : 0; + } else { + return index * _this4.itemSize; + } + }; + + var position = getPositionOfItem(index); + var direction = this.direction === 'vertical' ? { + scroll: 'scrollTop', + start: 'top' + } : { + scroll: 'scrollLeft', + start: 'left' + }; + + if (this.pageMode) { + var viewportEl = ScrollParent(this.$el); // HTML doesn't overflow like other elements + + var scrollTop = viewportEl.tagName === 'HTML' ? 0 : viewportEl[direction.scroll]; + var viewport = viewportEl.getBoundingClientRect(); + var scroller = this.$el.getBoundingClientRect(); + var scrollerPosition = scroller[direction.start] - viewport[direction.start]; + return { + viewport: viewportEl, + scrollDirection: direction.scroll, + scrollDistance: position + scrollTop + scrollerPosition + }; } + + return { + viewport: this.$el, + scrollDirection: direction.scroll, + scrollDistance: position + }; }, itemsLimitError: function itemsLimitError() { - var _this4 = this; + var _this5 = this; setTimeout(function () { - console.log('It seems the scroller element isn\'t scrolling, so it tries to render all the items at once.', 'Scroller:', _this4.$el); + console.log('It seems the scroller element isn\'t scrolling, so it tries to render all the items at once.', 'Scroller:', _this5.$el); console.log('Make sure the scroller has a fixed height (or width) and \'overflow-y\' (or \'overflow-x\') set to \'auto\' so it can scroll correctly and only render the items visible in the scroll viewport.'); }); throw new Error('Rendered items limit reached'); - }, - sortViews: function sortViews() { - this.pool.sort(function (viewA, viewB) { - return viewA.nr.index - viewB.nr.index; - }); } } }; @@ -1539,7 +1568,7 @@ function registerComponents(Vue, prefix) { var plugin = { // eslint-disable-next-line no-undef - version: "1.0.10", + version: "1.1.0", install: function install(Vue, options) { var finalOptions = Object.assign({}, { installComponents: true, diff --git a/dist/vue-virtual-scroller.esm.js.map b/dist/vue-virtual-scroller.esm.js.map index 9ec17bea..71a51062 100644 --- a/dist/vue-virtual-scroller.esm.js.map +++ b/dist/vue-virtual-scroller.esm.js.map @@ -1 +1 @@ -{"version":3,"file":"vue-virtual-scroller.esm.js","sources":["../src/config.js","../src/components/common.js","../src/utils.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/mixins/IdState.js","../src/index.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: VERSION,\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n"],"names":["itemsLimit","props","items","type","Array","required","keyField","String","default","direction","validator","value","includes","simpleArray","length","supportsPassive","window","opts","Object","defineProperty","get","addEventListener","e","idProp","vm","item","id","store","Vue","data","idState","created","$_id","$_getId","call","$watch","handler","$nextTick","immediate","$_updateIdState","beforeUpdate","methods","$_idStateInit","factory","$options","$set","Error","console","warn","registerComponents","prefix","component","RecycleScroller","DynamicScroller","DynamicScrollerItem","plugin","version","VERSION","install","options","finalOptions","assign","installComponents","componentsPrefix","key","config","GlobalVue","global","use"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"vue-virtual-scroller.esm.js","sources":["../src/config.js","../src/components/common.js","../src/utils.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/mixins/IdState.js","../src/index.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: VERSION,\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n"],"names":["itemsLimit","props","items","type","Array","required","keyField","String","default","direction","validator","value","includes","simpleArray","length","supportsPassive","window","opts","Object","defineProperty","get","addEventListener","e","idProp","vm","item","id","store","Vue","data","idState","created","$_id","$_getId","call","$watch","handler","$nextTick","immediate","$_updateIdState","beforeUpdate","methods","$_idStateInit","factory","$options","$set","Error","console","warn","registerComponents","prefix","component","RecycleScroller","DynamicScroller","DynamicScrollerItem","plugin","version","VERSION","install","options","finalOptions","assign","installComponents","componentsPrefix","key","config","GlobalVue","global","use"],"mappings":"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"} \ No newline at end of file diff --git a/dist/vue-virtual-scroller.min.js b/dist/vue-virtual-scroller.min.js index ba5df9d2..319da3b3 100644 --- a/dist/vue-virtual-scroller.min.js +++ b/dist/vue-virtual-scroller.min.js @@ -1,2 +1,2 @@ -var VueVirtualScroller=function(e,t){"use strict";t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;var i={itemsLimit:1e3};function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function s(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function o(e){for(var t=1;te.length)&&(t=e.length);for(var i=0,n=new Array(t);i=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var n,r,s=!0,o=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return s=e.done,e},e:function(e){o=!0,r=e},f:function(){try{s||null==n.return||n.return()}finally{if(o)throw r}}}}var c=void 0;function d(){d.init||(d.init=!0,c=-1!==function(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);if(e.indexOf("Trident/")>0){var i=e.indexOf("rv:");return parseInt(e.substring(i+3,e.indexOf(".",i)),10)}var n=e.indexOf("Edge/");return n>0?parseInt(e.substring(n+5,e.indexOf(".",n)),10):-1}())}var u={render:function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"resize-observer",attrs:{tabindex:"-1"}})},staticRenderFns:[],_scopeId:"data-v-b329ee4c",name:"resize-observer",methods:{compareAndNotify:function(){this._w===this.$el.offsetWidth&&this._h===this.$el.offsetHeight||(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.$emit("notify"))},addResizeHandlers:function(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers:function(){this._resizeObject&&this._resizeObject.onload&&(!c&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),delete this._resizeObject.onload)}},mounted:function(){var e=this;d(),this.$nextTick((function(){e._w=e.$el.offsetWidth,e._h=e.$el.offsetHeight}));var t=document.createElement("object");this._resizeObject=t,t.setAttribute("aria-hidden","true"),t.setAttribute("tabindex",-1),t.onload=this.addResizeHandlers,t.type="text/html",c&&this.$el.appendChild(t),t.data="about:blank",c||this.$el.appendChild(t)},beforeDestroy:function(){this.removeResizeHandlers()}};var h={version:"0.4.5",install:function(e){e.component("resize-observer",u),e.component("ResizeObserver",u)}},f=null;function v(e){return(v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function p(e,t){for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:{},o=function(o){for(var l=arguments.length,a=new Array(l>1?l-1:0),c=1;c1){var n=e.find((function(e){return e.isIntersecting}));n&&(t=n)}if(i.callback){var r=t.isIntersecting&&t.intersectionRatio>=i.threshold;if(r===i.oldResult)return;i.oldResult=r,i.callback(r,t)}}),this.options.intersection),t.context.$nextTick((function(){i.observer&&i.observer.observe(i.el)}))}}},{key:"destroyObserver",value:function(){this.observer&&(this.observer.disconnect(),this.observer=null),this.callback&&this.callback._clear&&(this.callback._clear(),this.callback=null)}},{key:"threshold",get:function(){return this.options.intersection&&this.options.intersection.threshold||0}}])&&p(t.prototype,i),n&&p(t,n),e}();function b(e,t,i){var n=t.value;if(n)if("undefined"==typeof IntersectionObserver)console.warn("[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill");else{var r=new y(e,n,i);e._vue_visibilityState=r}}function _(e){var t=e._vue_visibilityState;t&&(t.destroyObserver(),delete e._vue_visibilityState)}var g={bind:b,update:function(e,t,i){var n=t.value;if(!function e(t,i){if(t===i)return!0;if("object"===v(t)){for(var n in t)if(!e(t[n],i[n]))return!1;return!0}return!1}(n,t.oldValue)){var r=e._vue_visibilityState;n?r?r.createObserver(n,i):b(e,{value:n},i):_(e)}},unbind:_};var $={version:"0.4.6",install:function(e){e.directive("observe-visibility",g)}},S=null;"undefined"!=typeof window?S=window.Vue:"undefined"!=typeof global&&(S=global.Vue),S&&S.use($);var z="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var w=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){var t,i;t=z,i=function(){var e=/(auto|scroll)/,t=function(e,i){return null===e.parentNode?i:t(e.parentNode,i.concat([e]))},i=function(e,t){return getComputedStyle(e,null).getPropertyValue(t)},n=function(t){return e.test(function(e){return i(e,"overflow")+i(e,"overflow-y")+i(e,"overflow-x")}(t))};return function(e){if(e instanceof HTMLElement||e instanceof SVGElement){for(var i=t(e.parentNode,[]),r=0;r1&&void 0!==arguments[1]&&arguments[1],i=this.$_unusedViews,n=e.nr.type,r=i.get(n);r||(r=[],i.set(n,r)),r.push(e),t||(e.nr.used=!1,e.position=-9999,this.$_views.delete(e.nr.key))},handleResize:function(){this.$emit("resize"),this.ready&&this.updateVisibleItems(!1)},handleScroll:function(e){var t=this;this.$_scrollDirty||(this.$_scrollDirty=!0,requestAnimationFrame((function(){t.$_scrollDirty=!1,t.updateVisibleItems(!1,!0).continuous||(clearTimeout(t.$_refreshTimout),t.$_refreshTimout=setTimeout(t.handleScroll,100))})))},handleVisibilityChange:function(e,t){var i=this;this.ready&&(e||0!==t.boundingClientRect.width||0!==t.boundingClientRect.height?(this.$emit("visible"),requestAnimationFrame((function(){i.updateVisibleItems(!1)}))):this.$emit("hidden"))},updateVisibleItems:function(e){var t,n,r,s,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1],l=this.itemSize,a=this.$_computedMinItemSize,c=this.typeField,d=this.simpleArray?null:this.keyField,u=this.items,h=u.length,f=this.sizes,v=this.$_views,p=this.$_unusedViews,m=this.pool;if(h)if(this.$_prerender)t=0,n=this.prerender,r=null;else{var y=this.getScroll();if(o){var b=y.start-this.$_lastUpdateScrollPosition;if(b<0&&(b=-b),null===l&&by.start&&(S=z),z=~~(($+S)/2)}while(z!==g);for(z<0&&(z=0),t=z,r=f[h-1].accumulator,n=z;nh&&(n=h)}else(t=~~(y.start/l))<0&&(t=0),(n=Math.ceil(y.end/l))>h&&(n=h),r=h*l}else t=n=r=0;n-t>i.itemsLimit&&this.itemsLimitError(),this.totalSize=r;var w=t<=this.$_endIndex&&n>=this.$_startIndex;if(this.$_continuous!==w){if(w){v.clear(),p.clear();for(var O=0,x=m.length;O=n)&&this.unuseView(s));for(var D,R,T,P,k=w?null:new Map,A=t;A=T.length)&&(s=this.addView(m,A,D,E,R),this.unuseView(s,!0),T=p.get(R)),(s=T[P]).item=D,s.nr.used=!0,s.nr.index=A,s.nr.key=E,s.nr.type=R,k.set(R,P+1),P++),v.set(E,s)),s.position=null===l?f[A-1].accumulator:A*l):s&&this.unuseView(s)}return this.$_startIndex=t,this.$_endIndex=n,this.emitUpdate&&this.$emit("update",t,n),clearTimeout(this.$_sortTimer),this.$_sortTimer=setTimeout(this.sortViews,300),{continuous:w}},getListenerTarget:function(){var e=w(this.$el);return!window.document||e!==window.document.documentElement&&e!==window.document.body||(e=window),e},getScroll:function(){var e,t=this.$el,i="vertical"===this.direction;if(this.pageMode){var n=t.getBoundingClientRect(),r=i?n.height:n.width,s=-(i?n.top:n.left),o=i?window.innerHeight:window.innerWidth;s<0&&(o+=s,s=0),s+o>r&&(o=r-s),e={start:s,end:s+o}}else e=i?{start:t.scrollTop,end:t.scrollTop+t.clientHeight}:{start:t.scrollLeft,end:t.scrollLeft+t.clientWidth};return e},applyPageMode:function(){this.pageMode?this.addListeners():this.removeListeners()},addListeners:function(){this.listenerTarget=this.getListenerTarget(),this.listenerTarget.addEventListener("scroll",this.handleScroll,!!I&&{passive:!0}),this.listenerTarget.addEventListener("resize",this.handleResize)},removeListeners:function(){this.listenerTarget&&(this.listenerTarget.removeEventListener("scroll",this.handleScroll),this.listenerTarget.removeEventListener("resize",this.handleResize),this.listenerTarget=null)},scrollToItem:function(e){var t;t=null===this.itemSize?e>0?this.sizes[e-1].accumulator:0:e*this.itemSize,this.scrollToPosition(t)},scrollToPosition:function(e){"vertical"===this.direction?this.$el.scrollTop=e:this.$el.scrollLeft=e},itemsLimitError:function(){var e=this;throw setTimeout((function(){console.log("It seems the scroller element isn't scrolling, so it tries to render all the items at once.","Scroller:",e.$el),console.log("Make sure the scroller has a fixed height (or width) and 'overflow-y' (or 'overflow-x') set to 'auto' so it can scroll correctly and only render the items visible in the scroll viewport.")})),new Error("Rendered items limit reached")},sortViews:function(){this.pool.sort((function(e,t){return e.nr.index-t.nr.index}))}}};var P=function(){var e,t,i=this,n=i.$createElement,r=i._self._c||n;return r("div",{directives:[{name:"observe-visibility",rawName:"v-observe-visibility",value:i.handleVisibilityChange,expression:"handleVisibilityChange"}],staticClass:"vue-recycle-scroller",class:(e={ready:i.ready,"page-mode":i.pageMode},e["direction-"+i.direction]=!0,e),on:{"&scroll":function(e){return i.handleScroll(e)}}},[i.$slots.before?r("div",{staticClass:"vue-recycle-scroller__slot"},[i._t("before")],2):i._e(),i._v(" "),r("div",{ref:"wrapper",staticClass:"vue-recycle-scroller__item-wrapper",style:(t={},t["vertical"===i.direction?"minHeight":"minWidth"]=i.totalSize+"px",t)},i._l(i.pool,(function(e){return r("div",{key:e.nr.id,staticClass:"vue-recycle-scroller__item-view",class:{hover:i.hoverKey===e.nr.key},style:i.ready?{transform:"translate"+("vertical"===i.direction?"Y":"X")+"("+e.position+"px)"}:null,on:{mouseenter:function(t){i.hoverKey=e.nr.key},mouseleave:function(e){i.hoverKey=null}}},[i._t("default",null,{item:e.item,index:e.nr.index,active:e.nr.used})],2)})),0),i._v(" "),i.$slots.after?r("div",{staticClass:"vue-recycle-scroller__slot"},[i._t("after")],2):i._e(),i._v(" "),r("ResizeObserver",{on:{notify:i.handleResize}})],1)};P._withStripped=!0;const k=R({render:P,staticRenderFns:[]},void 0,T,void 0,!1,void 0,!1,void 0,void 0,void 0);const A={name:"DynamicScroller",components:{RecycleScroller:k},inheritAttrs:!1,provide:function(){return"undefined"!=typeof ResizeObserver&&(this.$_resizeObserver=new ResizeObserver((function(e){var t,i=a(e);try{for(i.s();!(t=i.n()).done;){var n=t.value;if(n.target){var r=new CustomEvent("resize",{detail:{contentRect:n.contentRect}});n.target.dispatchEvent(r)}}}catch(e){i.e(e)}finally{i.f()}}))),{vscrollData:this.vscrollData,vscrollParent:this,vscrollResizeObserver:this.$_resizeObserver}},props:o({},O,{minItemSize:{type:[Number,String],required:!0}}),data:function(){return{vscrollData:{active:!0,sizes:{},validSizes:{},keyField:this.keyField,simpleArray:!1}}},computed:{simpleArray:x,itemsWithSize:function(){for(var e=[],t=this.items,i=this.keyField,n=this.simpleArray,r=this.vscrollData.sizes,s=0;s0&&void 0!==arguments[0])||arguments[0];(e||this.simpleArray)&&(this.vscrollData.validSizes={}),this.$emit("vscroll:update",{force:!0})},scrollToItem:function(e){var t=this.$refs.scroller;t&&t.scrollToItem(e)},getItemSize:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=this.simpleArray?null!=t?t:this.items.indexOf(e):e[this.keyField];return this.vscrollData.sizes[i]||0},scrollToBottom:function(){var e=this;if(!this.$_scrollingToBottom){this.$_scrollingToBottom=!0;var t=this.$el;this.$nextTick((function(){t.scrollTop=t.scrollHeight+5e3;requestAnimationFrame((function i(){t.scrollTop=t.scrollHeight+5e3,requestAnimationFrame((function(){t.scrollTop=t.scrollHeight+5e3,0===e.$_undefinedSizes?e.$_scrollingToBottom=!1:requestAnimationFrame(i)}))}))}))}}}};var E=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("RecycleScroller",e._g(e._b({ref:"scroller",attrs:{items:e.itemsWithSize,"min-item-size":e.minItemSize,direction:e.direction,"key-field":"id"},on:{resize:e.onScrollerResize,visible:e.onScrollerVisible},scopedSlots:e._u([{key:"default",fn:function(t){var i=t.item,n=t.index,r=t.active;return[e._t("default",null,null,{item:i.item,index:n,active:r,itemWithSize:i})]}}],null,!0)},"RecycleScroller",e.$attrs,!1),e.listeners),[e._v(" "),i("template",{slot:"before"},[e._t("before")],2),e._v(" "),i("template",{slot:"after"},[e._t("after")],2)],2)};E._withStripped=!0;const j=R({render:E,staticRenderFns:[]},void 0,A,void 0,!1,void 0,!1,void 0,void 0,void 0);const U=R({},void 0,{name:"DynamicScrollerItem",inject:["vscrollData","vscrollParent","vscrollResizeObserver"],props:{item:{required:!0},watchData:{type:Boolean,default:!1},active:{type:Boolean,required:!0},index:{type:Number,default:void 0},sizeDependencies:{type:[Array,Object],default:null},emitResize:{type:Boolean,default:!1},tag:{type:String,default:"div"}},computed:{id:function(){return this.vscrollData.simpleArray?this.index:this.item[this.vscrollData.keyField]},size:function(){return this.vscrollData.validSizes[this.id]&&this.vscrollData.sizes[this.id]||0},finalActive:function(){return this.active&&this.vscrollData.active}},watch:{watchData:"updateWatchData",id:function(){this.size||this.onDataUpdate()},finalActive:function(e){this.size||(e?this.vscrollParent.$_undefinedMap[this.id]||(this.vscrollParent.$_undefinedSizes++,this.vscrollParent.$_undefinedMap[this.id]=!0):this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=!1)),this.vscrollResizeObserver?e?this.observeSize():this.unobserveSize():e&&this.$_pendingVScrollUpdate===this.id&&this.updateSize()}},created:function(){var e=this;if(!this.$isServer&&(this.$_forceNextVScrollUpdate=null,this.updateWatchData(),!this.vscrollResizeObserver)){var t=function(t){e.$watch((function(){return e.sizeDependencies[t]}),e.onDataUpdate)};for(var i in this.sizeDependencies)t(i);this.vscrollParent.$on("vscroll:update",this.onVscrollUpdate),this.vscrollParent.$on("vscroll:update-size",this.onVscrollUpdateSize)}},mounted:function(){this.vscrollData.active&&(this.updateSize(),this.observeSize())},beforeDestroy:function(){this.vscrollParent.$off("vscroll:update",this.onVscrollUpdate),this.vscrollParent.$off("vscroll:update-size",this.onVscrollUpdateSize),this.unobserveSize()},methods:{updateSize:function(){this.finalActive?this.$_pendingSizeUpdate!==this.id&&(this.$_pendingSizeUpdate=this.id,this.$_forceNextVScrollUpdate=null,this.$_pendingVScrollUpdate=null,this.computeSize(this.id)):this.$_forceNextVScrollUpdate=this.id},updateWatchData:function(){var e=this;this.watchData?this.$_watchData=this.$watch("data",(function(){e.onDataUpdate()}),{deep:!0}):this.$_watchData&&(this.$_watchData(),this.$_watchData=null)},onVscrollUpdate:function(e){var t=e.force;!this.finalActive&&t&&(this.$_pendingVScrollUpdate=this.id),this.$_forceNextVScrollUpdate!==this.id&&!t&&this.size||this.updateSize()},onDataUpdate:function(){this.updateSize()},computeSize:function(e){var t=this;this.$nextTick((function(){if(t.id===e){var i=t.$el.offsetWidth,n=t.$el.offsetHeight;t.applySize(i,n)}t.$_pendingSizeUpdate=null}))},applySize:function(e,t){var i=Math.round("vertical"===this.vscrollParent.direction?t:e);i&&this.size!==i&&(this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=void 0),this.$set(this.vscrollData.sizes,this.id,i),this.$set(this.vscrollData.validSizes,this.id,!0),this.emitResize&&this.$emit("resize",this.id))},observeSize:function(){this.vscrollResizeObserver&&(this.vscrollResizeObserver.observe(this.$el.parentNode),this.$el.parentNode.addEventListener("resize",this.onResize))},unobserveSize:function(){this.vscrollResizeObserver&&(this.vscrollResizeObserver.unobserve(this.$el.parentNode),this.$el.parentNode.removeEventListener("resize",this.onResize))},onResize:function(e){var t=e.detail.contentRect,i=t.width,n=t.height;this.applySize(i,n)}},render:function(e){return e(this.tag,this.$slots.default)}},void 0,void 0,void 0,!1,void 0,void 0,void 0);var C={version:"1.0.10",install:function(e,t){var n=Object.assign({},{installComponents:!0,componentsPrefix:""},t);for(var r in n)void 0!==n[r]&&(i[r]=n[r]);n.installComponents&&function(e,t){e.component("".concat(t,"recycle-scroller"),k),e.component("".concat(t,"RecycleScroller"),k),e.component("".concat(t,"dynamic-scroller"),j),e.component("".concat(t,"DynamicScroller"),j),e.component("".concat(t,"dynamic-scroller-item"),U),e.component("".concat(t,"DynamicScrollerItem"),U)}(e,n.componentsPrefix)}},M=null;return"undefined"!=typeof window?M=window.Vue:"undefined"!=typeof global&&(M=global.Vue),M&&M.use(C),e.DynamicScroller=j,e.DynamicScrollerItem=U,e.IdState=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=e.idProp,n=void 0===i?function(e){return e.item.id}:i,r={},s=new t({data:function(){return{store:r}}});return{data:function(){return{idState:null}},created:function(){var e=this;this.$_id=null,this.$_getId="function"==typeof n?function(){return n.call(e,e)}:function(){return e[n]},this.$watch(this.$_getId,{handler:function(e){var t=this;this.$nextTick((function(){t.$_id=e}))},immediate:!0}),this.$_updateIdState()},beforeUpdate:function(){this.$_updateIdState()},methods:{$_idStateInit:function(e){var t=this.$options.idState;if("function"==typeof t){var i=t.call(this,this);return s.$set(r,e,i),this.$_id=e,i}throw new Error("[mixin IdState] Missing `idState` function on component definition.")},$_updateIdState:function(){var e=this.$_getId();null==e&&console.warn("No id found for IdState with idProp: '".concat(n,"'.")),e!==this.$_id&&(r[e]||this.$_idStateInit(e),this.idState=r[e])}}}},e.RecycleScroller=k,e.default=C,e}({},Vue); +var VueVirtualScroller=function(e,t){"use strict";t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;var i={itemsLimit:1e3};function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function o(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function s(e){for(var t=1;te.length)&&(t=e.length);for(var i=0,n=new Array(t);i=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var n,r,o=!0,s=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,r=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw r}}}}var c=void 0;function d(){d.init||(d.init=!0,c=-1!==function(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);if(e.indexOf("Trident/")>0){var i=e.indexOf("rv:");return parseInt(e.substring(i+3,e.indexOf(".",i)),10)}var n=e.indexOf("Edge/");return n>0?parseInt(e.substring(n+5,e.indexOf(".",n)),10):-1}())}var u={render:function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"resize-observer",attrs:{tabindex:"-1"}})},staticRenderFns:[],_scopeId:"data-v-b329ee4c",name:"resize-observer",methods:{compareAndNotify:function(){this._w===this.$el.offsetWidth&&this._h===this.$el.offsetHeight||(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.$emit("notify"))},addResizeHandlers:function(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers:function(){this._resizeObject&&this._resizeObject.onload&&(!c&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),delete this._resizeObject.onload)}},mounted:function(){var e=this;d(),this.$nextTick((function(){e._w=e.$el.offsetWidth,e._h=e.$el.offsetHeight}));var t=document.createElement("object");this._resizeObject=t,t.setAttribute("aria-hidden","true"),t.setAttribute("tabindex",-1),t.onload=this.addResizeHandlers,t.type="text/html",c&&this.$el.appendChild(t),t.data="about:blank",c||this.$el.appendChild(t)},beforeDestroy:function(){this.removeResizeHandlers()}};var h={version:"0.4.5",install:function(e){e.component("resize-observer",u),e.component("ResizeObserver",u)}},f=null;function v(e){return(v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function p(e,t){for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:{},s=function(s){for(var l=arguments.length,a=new Array(l>1?l-1:0),c=1;c1){var n=e.find((function(e){return e.isIntersecting}));n&&(t=n)}if(i.callback){var r=t.isIntersecting&&t.intersectionRatio>=i.threshold;if(r===i.oldResult)return;i.oldResult=r,i.callback(r,t)}}),this.options.intersection),t.context.$nextTick((function(){i.observer&&i.observer.observe(i.el)}))}}},{key:"destroyObserver",value:function(){this.observer&&(this.observer.disconnect(),this.observer=null),this.callback&&this.callback._clear&&(this.callback._clear(),this.callback=null)}},{key:"threshold",get:function(){return this.options.intersection&&this.options.intersection.threshold||0}}])&&p(t.prototype,i),n&&p(t,n),e}();function b(e,t,i){var n=t.value;if(n)if("undefined"==typeof IntersectionObserver)console.warn("[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill");else{var r=new y(e,n,i);e._vue_visibilityState=r}}function g(e){var t=e._vue_visibilityState;t&&(t.destroyObserver(),delete e._vue_visibilityState)}var _={bind:b,update:function(e,t,i){var n=t.value;if(!function e(t,i){if(t===i)return!0;if("object"===v(t)){for(var n in t)if(!e(t[n],i[n]))return!1;return!0}return!1}(n,t.oldValue)){var r=e._vue_visibilityState;n?r?r.createObserver(n,i):b(e,{value:n},i):g(e)}},unbind:g};var S={version:"0.4.6",install:function(e){e.directive("observe-visibility",_)}},$=null;"undefined"!=typeof window?$=window.Vue:"undefined"!=typeof global&&($=global.Vue),$&&$.use(S);var z="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var w=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){var t,i;t=z,i=function(){var e=/(auto|scroll)/,t=function(e,i){return null===e.parentNode?i:t(e.parentNode,i.concat([e]))},i=function(e,t){return getComputedStyle(e,null).getPropertyValue(t)},n=function(t){return e.test(function(e){return i(e,"overflow")+i(e,"overflow-y")+i(e,"overflow-x")}(t))};return function(e){if(e instanceof HTMLElement||e instanceof SVGElement){for(var i=t(e.parentNode,[]),r=0;r1&&void 0!==arguments[1]&&arguments[1],i=this.$_unusedViews,n=e.nr.type,r=i.get(n);r||(r=[],i.set(n,r)),r.push(e),t||(e.nr.used=!1,e.position=-9999,this.$_views.delete(e.nr.key))},handleResize:function(){this.$emit("resize"),this.ready&&this.updateVisibleItems(!1)},handleScroll:function(e){var t=this;this.$_scrollDirty||(this.$_scrollDirty=!0,requestAnimationFrame((function(){t.$_scrollDirty=!1,t.updateVisibleItems(!1,!0).continuous||(clearTimeout(t.$_refreshTimout),t.$_refreshTimout=setTimeout(t.handleScroll,100))})))},handleVisibilityChange:function(e,t){var i=this;this.ready&&(e||0!==t.boundingClientRect.width||0!==t.boundingClientRect.height?(this.$emit("visible"),requestAnimationFrame((function(){i.updateVisibleItems(!1)}))):this.$emit("hidden"))},updateVisibleItems:function(e){var t,n,r,o,s,l=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=this.itemSize,c=this.$_computedMinItemSize,d=this.typeField,u=this.simpleArray?null:this.keyField,h=this.items,f=h.length,v=this.sizes,p=this.$_views,m=this.$_unusedViews,y=this.pool;if(f&&!this.$_prerender&&(o=this.getScroll(),l)){var b=Math.abs(o.originalStart-this.$_lastUpdateScrollPosition);if(null===a&&bo.start&&($=z),z=~~((S+$)/2)}while(z!==_);for(z<0&&(z=0),t=z,r=v[f-1].accumulator,n=z;nf&&(n=f)}else(t=~~(o.start/a))<0&&(t=0),(n=Math.ceil(o.end/a))>f&&(n=f),r=f*a}else t=n=r=0;n-t>i.itemsLimit&&this.itemsLimitError(),this.totalSize=r;var w=t<=this.$_endIndex&&n>=this.$_startIndex;if(this.$_continuous!==w){if(w){p.clear(),m.clear();for(var O=0,D=y.length;O=n)&&this.unuseView(s));for(var R,V,T,P,k=w?null:new Map,A=t;A=T.length)&&(s=this.addView(y,A,R,E,V),this.unuseView(s,!0),T=m.get(V)),(s=T[P]).item=R,s.nr.used=!0,s.nr.index=A,s.nr.key=E,s.nr.type=V,k.set(V,P+1),P++),p.set(E,s)),s.position=null===a?v[A-1].accumulator:A*a):s&&this.unuseView(s)}return this.$_startIndex=t,this.$_endIndex=n,this.emitUpdate&&this.$emit("update",t,n),{continuous:w}},getListenerTarget:function(){var e=w(this.$el);return!window.document||e!==window.document.documentElement&&e!==window.document.body||(e=window),e},getScroll:function(){var e=this.$el,t="vertical"===this.direction;if(this.pageMode){var i=e.getBoundingClientRect(),n=t?i.height:i.width,r=-(t?i.top:i.left),o=r,s=t?window.innerHeight:window.innerWidth;return o<0&&(s+=o,o=0),o+s>n&&(s=n-o),{originalStart:r,start:o,end:o+s}}return t?{originalStart:e.scrollTop,start:e.scrollTop,end:e.scrollTop+e.clientHeight}:{originalStart:e.scrollLeft,start:e.scrollLeft,end:e.scrollLeft+e.clientWidth}},applyPageMode:function(){this.pageMode?this.addListeners():this.removeListeners()},addListeners:function(){this.listenerTarget=this.getListenerTarget(),this.listenerTarget.addEventListener("scroll",this.handleScroll,!!x&&{passive:!0}),this.listenerTarget.addEventListener("resize",this.handleResize)},removeListeners:function(){this.listenerTarget&&(this.listenerTarget.removeEventListener("scroll",this.handleScroll),this.listenerTarget.removeEventListener("resize",this.handleResize),this.listenerTarget=null)},scrollToItem:function(e){var t=this.scrollToPosition(e),i=t.viewport,n=t.scrollDirection,r=t.scrollDistance;i[n]=r},scrollToPosition:function(e){var t=this,i=function(e){return null===t.itemSize?e>0?t.sizes[e-1].accumulator:0:e*t.itemSize}(e),n="vertical"===this.direction?{scroll:"scrollTop",start:"top"}:{scroll:"scrollLeft",start:"left"};if(this.pageMode){var r=w(this.$el),o="HTML"===r.tagName?0:r[n.scroll],s=r.getBoundingClientRect(),l=this.$el.getBoundingClientRect()[n.start]-s[n.start];return{viewport:r,scrollDirection:n.scroll,scrollDistance:i+o+l}}return{viewport:this.$el,scrollDirection:n.scroll,scrollDistance:i}},itemsLimitError:function(){var e=this;throw setTimeout((function(){console.log("It seems the scroller element isn't scrolling, so it tries to render all the items at once.","Scroller:",e.$el),console.log("Make sure the scroller has a fixed height (or width) and 'overflow-y' (or 'overflow-x') set to 'auto' so it can scroll correctly and only render the items visible in the scroll viewport.")})),new Error("Rendered items limit reached")}}};var P=function(){var e,t,i=this,n=i.$createElement,r=i._self._c||n;return r("div",{directives:[{name:"observe-visibility",rawName:"v-observe-visibility",value:i.handleVisibilityChange,expression:"handleVisibilityChange"}],staticClass:"vue-recycle-scroller",class:(e={ready:i.ready,"page-mode":i.pageMode},e["direction-"+i.direction]=!0,e),on:{"&scroll":function(e){return i.handleScroll(e)}}},[i.$slots.before?r("div",{staticClass:"vue-recycle-scroller__slot"},[i._t("before")],2):i._e(),i._v(" "),r("div",{ref:"wrapper",staticClass:"vue-recycle-scroller__item-wrapper",style:(t={},t["vertical"===i.direction?"minHeight":"minWidth"]=i.totalSize+"px",t)},i._l(i.pool,(function(e){return r("div",{key:e.nr.id,staticClass:"vue-recycle-scroller__item-view",class:{hover:i.hoverKey===e.nr.key},style:i.ready?{transform:"translate"+("vertical"===i.direction?"Y":"X")+"("+e.position+"px)"}:null,on:{mouseenter:function(t){i.hoverKey=e.nr.key},mouseleave:function(e){i.hoverKey=null}}},[i._t("default",null,{item:e.item,index:e.nr.index,active:e.nr.used})],2)})),0),i._v(" "),i.$slots.after?r("div",{staticClass:"vue-recycle-scroller__slot"},[i._t("after")],2):i._e(),i._v(" "),r("ResizeObserver",{on:{notify:i.handleResize}})],1)};P._withStripped=!0;const k=V({render:P,staticRenderFns:[]},void 0,T,void 0,!1,void 0,!1,void 0,void 0,void 0);const A={name:"DynamicScroller",components:{RecycleScroller:k},inheritAttrs:!1,provide:function(){return"undefined"!=typeof ResizeObserver&&(this.$_resizeObserver=new ResizeObserver((function(e){var t,i=a(e);try{for(i.s();!(t=i.n()).done;){var n=t.value;if(n.target){var r=new CustomEvent("resize",{detail:{contentRect:n.contentRect}});n.target.dispatchEvent(r)}}}catch(e){i.e(e)}finally{i.f()}}))),{vscrollData:this.vscrollData,vscrollParent:this,vscrollResizeObserver:this.$_resizeObserver}},props:s({},O,{minItemSize:{type:[Number,String],required:!0}}),data:function(){return{vscrollData:{active:!0,sizes:{},validSizes:{},keyField:this.keyField,simpleArray:!1}}},computed:{simpleArray:D,itemsWithSize:function(){for(var e=[],t=this.items,i=this.keyField,n=this.simpleArray,r=this.vscrollData.sizes,o=0;o0&&void 0!==arguments[0])||arguments[0];(e||this.simpleArray)&&(this.vscrollData.validSizes={}),this.$emit("vscroll:update",{force:!0})},scrollToItem:function(e){var t=this.$refs.scroller;t&&t.scrollToItem(e)},getItemSize:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=this.simpleArray?null!=t?t:this.items.indexOf(e):e[this.keyField];return this.vscrollData.sizes[i]||0},scrollToBottom:function(){var e=this;if(!this.$_scrollingToBottom){this.$_scrollingToBottom=!0;var t=this.$el;this.$nextTick((function(){t.scrollTop=t.scrollHeight+5e3;requestAnimationFrame((function i(){t.scrollTop=t.scrollHeight+5e3,requestAnimationFrame((function(){t.scrollTop=t.scrollHeight+5e3,0===e.$_undefinedSizes?e.$_scrollingToBottom=!1:requestAnimationFrame(i)}))}))}))}}}};var E=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("RecycleScroller",e._g(e._b({ref:"scroller",attrs:{items:e.itemsWithSize,"min-item-size":e.minItemSize,direction:e.direction,"key-field":"id"},on:{resize:e.onScrollerResize,visible:e.onScrollerVisible},scopedSlots:e._u([{key:"default",fn:function(t){var i=t.item,n=t.index,r=t.active;return[e._t("default",null,null,{item:i.item,index:n,active:r,itemWithSize:i})]}}],null,!0)},"RecycleScroller",e.$attrs,!1),e.listeners),[e._v(" "),i("template",{slot:"before"},[e._t("before")],2),e._v(" "),i("template",{slot:"after"},[e._t("after")],2)],2)};E._withStripped=!0;const j=V({render:E,staticRenderFns:[]},void 0,A,void 0,!1,void 0,!1,void 0,void 0,void 0);const U=V({},void 0,{name:"DynamicScrollerItem",inject:["vscrollData","vscrollParent","vscrollResizeObserver"],props:{item:{required:!0},watchData:{type:Boolean,default:!1},active:{type:Boolean,required:!0},index:{type:Number,default:void 0},sizeDependencies:{type:[Array,Object],default:null},emitResize:{type:Boolean,default:!1},tag:{type:String,default:"div"}},computed:{id:function(){return this.vscrollData.simpleArray?this.index:this.item[this.vscrollData.keyField]},size:function(){return this.vscrollData.validSizes[this.id]&&this.vscrollData.sizes[this.id]||0},finalActive:function(){return this.active&&this.vscrollData.active}},watch:{watchData:"updateWatchData",id:function(){this.size||this.onDataUpdate()},finalActive:function(e){this.size||(e?this.vscrollParent.$_undefinedMap[this.id]||(this.vscrollParent.$_undefinedSizes++,this.vscrollParent.$_undefinedMap[this.id]=!0):this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=!1)),this.vscrollResizeObserver?e?this.observeSize():this.unobserveSize():e&&this.$_pendingVScrollUpdate===this.id&&this.updateSize()}},created:function(){var e=this;if(!this.$isServer&&(this.$_forceNextVScrollUpdate=null,this.updateWatchData(),!this.vscrollResizeObserver)){var t=function(t){e.$watch((function(){return e.sizeDependencies[t]}),e.onDataUpdate)};for(var i in this.sizeDependencies)t(i);this.vscrollParent.$on("vscroll:update",this.onVscrollUpdate),this.vscrollParent.$on("vscroll:update-size",this.onVscrollUpdateSize)}},mounted:function(){this.vscrollData.active&&(this.updateSize(),this.observeSize())},beforeDestroy:function(){this.vscrollParent.$off("vscroll:update",this.onVscrollUpdate),this.vscrollParent.$off("vscroll:update-size",this.onVscrollUpdateSize),this.unobserveSize()},methods:{updateSize:function(){this.finalActive?this.$_pendingSizeUpdate!==this.id&&(this.$_pendingSizeUpdate=this.id,this.$_forceNextVScrollUpdate=null,this.$_pendingVScrollUpdate=null,this.computeSize(this.id)):this.$_forceNextVScrollUpdate=this.id},updateWatchData:function(){var e=this;this.watchData?this.$_watchData=this.$watch("data",(function(){e.onDataUpdate()}),{deep:!0}):this.$_watchData&&(this.$_watchData(),this.$_watchData=null)},onVscrollUpdate:function(e){var t=e.force;!this.finalActive&&t&&(this.$_pendingVScrollUpdate=this.id),this.$_forceNextVScrollUpdate!==this.id&&!t&&this.size||this.updateSize()},onDataUpdate:function(){this.updateSize()},computeSize:function(e){var t=this;this.$nextTick((function(){if(t.id===e){var i=t.$el.offsetWidth,n=t.$el.offsetHeight;t.applySize(i,n)}t.$_pendingSizeUpdate=null}))},applySize:function(e,t){var i=Math.round("vertical"===this.vscrollParent.direction?t:e);i&&this.size!==i&&(this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=void 0),this.$set(this.vscrollData.sizes,this.id,i),this.$set(this.vscrollData.validSizes,this.id,!0),this.emitResize&&this.$emit("resize",this.id))},observeSize:function(){this.vscrollResizeObserver&&(this.vscrollResizeObserver.observe(this.$el.parentNode),this.$el.parentNode.addEventListener("resize",this.onResize))},unobserveSize:function(){this.vscrollResizeObserver&&(this.vscrollResizeObserver.unobserve(this.$el.parentNode),this.$el.parentNode.removeEventListener("resize",this.onResize))},onResize:function(e){var t=e.detail.contentRect,i=t.width,n=t.height;this.applySize(i,n)}},render:function(e){return e(this.tag,this.$slots.default)}},void 0,void 0,void 0,!1,void 0,void 0,void 0);var M={version:"1.1.0",install:function(e,t){var n=Object.assign({},{installComponents:!0,componentsPrefix:""},t);for(var r in n)void 0!==n[r]&&(i[r]=n[r]);n.installComponents&&function(e,t){e.component("".concat(t,"recycle-scroller"),k),e.component("".concat(t,"RecycleScroller"),k),e.component("".concat(t,"dynamic-scroller"),j),e.component("".concat(t,"DynamicScroller"),j),e.component("".concat(t,"dynamic-scroller-item"),U),e.component("".concat(t,"DynamicScrollerItem"),U)}(e,n.componentsPrefix)}},C=null;return"undefined"!=typeof window?C=window.Vue:"undefined"!=typeof global&&(C=global.Vue),C&&C.use(M),e.DynamicScroller=j,e.DynamicScrollerItem=U,e.IdState=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=e.idProp,n=void 0===i?function(e){return e.item.id}:i,r={},o=new t({data:function(){return{store:r}}});return{data:function(){return{idState:null}},created:function(){var e=this;this.$_id=null,this.$_getId="function"==typeof n?function(){return n.call(e,e)}:function(){return e[n]},this.$watch(this.$_getId,{handler:function(e){var t=this;this.$nextTick((function(){t.$_id=e}))},immediate:!0}),this.$_updateIdState()},beforeUpdate:function(){this.$_updateIdState()},methods:{$_idStateInit:function(e){var t=this.$options.idState;if("function"==typeof t){var i=t.call(this,this);return o.$set(r,e,i),this.$_id=e,i}throw new Error("[mixin IdState] Missing `idState` function on component definition.")},$_updateIdState:function(){var e=this.$_getId();null==e&&console.warn("No id found for IdState with idProp: '".concat(n,"'.")),e!==this.$_id&&(r[e]||this.$_idStateInit(e),this.idState=r[e])}}}},e.RecycleScroller=k,e.default=M,e}({},Vue); //# sourceMappingURL=vue-virtual-scroller.min.js.map diff --git a/dist/vue-virtual-scroller.min.js.map b/dist/vue-virtual-scroller.min.js.map index 9060c89b..320e524a 100644 --- a/dist/vue-virtual-scroller.min.js.map +++ b/dist/vue-virtual-scroller.min.js.map @@ -1 +1 @@ -{"version":3,"file":"vue-virtual-scroller.min.js","sources":["../src/config.js","../node_modules/vue-resize/dist/vue-resize.esm.js","../node_modules/vue-observe-visibility/dist/vue-observe-visibility.esm.js","../node_modules/scrollparent/scrollparent.js","../src/components/common.js","../src/utils.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/index.js","../src/mixins/IdState.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","function getInternetExplorerVersion() {\n\tvar ua = window.navigator.userAgent;\n\n\tvar msie = ua.indexOf('MSIE ');\n\tif (msie > 0) {\n\t\t// IE 10 or older => return version number\n\t\treturn parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n\t}\n\n\tvar trident = ua.indexOf('Trident/');\n\tif (trident > 0) {\n\t\t// IE 11 => return version number\n\t\tvar rv = ua.indexOf('rv:');\n\t\treturn parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n\t}\n\n\tvar edge = ua.indexOf('Edge/');\n\tif (edge > 0) {\n\t\t// Edge (IE 12+) => return version number\n\t\treturn parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n\t}\n\n\t// other browser\n\treturn -1;\n}\n\nvar isIE = void 0;\n\nfunction initCompat() {\n\tif (!initCompat.init) {\n\t\tinitCompat.init = true;\n\t\tisIE = getInternetExplorerVersion() !== -1;\n\t}\n}\n\nvar ResizeObserver = { render: function render() {\n\t\tvar _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: \"resize-observer\", attrs: { \"tabindex\": \"-1\" } });\n\t}, staticRenderFns: [], _scopeId: 'data-v-b329ee4c',\n\tname: 'resize-observer',\n\n\tmethods: {\n\t\tcompareAndNotify: function compareAndNotify() {\n\t\t\tif (this._w !== this.$el.offsetWidth || this._h !== this.$el.offsetHeight) {\n\t\t\t\tthis._w = this.$el.offsetWidth;\n\t\t\t\tthis._h = this.$el.offsetHeight;\n\t\t\t\tthis.$emit('notify');\n\t\t\t}\n\t\t},\n\t\taddResizeHandlers: function addResizeHandlers() {\n\t\t\tthis._resizeObject.contentDocument.defaultView.addEventListener('resize', this.compareAndNotify);\n\t\t\tthis.compareAndNotify();\n\t\t},\n\t\tremoveResizeHandlers: function removeResizeHandlers() {\n\t\t\tif (this._resizeObject && this._resizeObject.onload) {\n\t\t\t\tif (!isIE && this._resizeObject.contentDocument) {\n\t\t\t\t\tthis._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.compareAndNotify);\n\t\t\t\t}\n\t\t\t\tdelete this._resizeObject.onload;\n\t\t\t}\n\t\t}\n\t},\n\n\tmounted: function mounted() {\n\t\tvar _this = this;\n\n\t\tinitCompat();\n\t\tthis.$nextTick(function () {\n\t\t\t_this._w = _this.$el.offsetWidth;\n\t\t\t_this._h = _this.$el.offsetHeight;\n\t\t});\n\t\tvar object = document.createElement('object');\n\t\tthis._resizeObject = object;\n\t\tobject.setAttribute('aria-hidden', 'true');\n\t\tobject.setAttribute('tabindex', -1);\n\t\tobject.onload = this.addResizeHandlers;\n\t\tobject.type = 'text/html';\n\t\tif (isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t\tobject.data = 'about:blank';\n\t\tif (!isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t},\n\tbeforeDestroy: function beforeDestroy() {\n\t\tthis.removeResizeHandlers();\n\t}\n};\n\n// Install the components\nfunction install(Vue) {\n\tVue.component('resize-observer', ResizeObserver);\n\tVue.component('ResizeObserver', ResizeObserver);\n}\n\n// Plugin\nvar plugin = {\n\t// eslint-disable-next-line no-undef\n\tversion: \"0.4.5\",\n\tinstall: install\n};\n\n// Auto-install\nvar GlobalVue = null;\nif (typeof window !== 'undefined') {\n\tGlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n\tGlobalVue = global.Vue;\n}\nif (GlobalVue) {\n\tGlobalVue.use(plugin);\n}\n\nexport { install, ResizeObserver };\nexport default plugin;\n","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction processOptions(value) {\n var options;\n\n if (typeof value === 'function') {\n // Simple options (callback-only)\n options = {\n callback: value\n };\n } else {\n // Options object\n options = value;\n }\n\n return options;\n}\nfunction throttle(callback, delay) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var timeout;\n var lastState;\n var currentArgs;\n\n var throttled = function throttled(state) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n currentArgs = args;\n if (timeout && state === lastState) return;\n var leading = options.leading;\n\n if (typeof leading === 'function') {\n leading = leading(state, lastState);\n }\n\n if ((!timeout || state !== lastState) && leading) {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n }\n\n lastState = state;\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n timeout = 0;\n }, delay);\n };\n\n throttled._clear = function () {\n clearTimeout(timeout);\n timeout = null;\n };\n\n return throttled;\n}\nfunction deepEqual(val1, val2) {\n if (val1 === val2) return true;\n\n if (_typeof(val1) === 'object') {\n for (var key in val1) {\n if (!deepEqual(val1[key], val2[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\nvar VisibilityState =\n/*#__PURE__*/\nfunction () {\n function VisibilityState(el, options, vnode) {\n _classCallCheck(this, VisibilityState);\n\n this.el = el;\n this.observer = null;\n this.frozen = false;\n this.createObserver(options, vnode);\n }\n\n _createClass(VisibilityState, [{\n key: \"createObserver\",\n value: function createObserver(options, vnode) {\n var _this = this;\n\n if (this.observer) {\n this.destroyObserver();\n }\n\n if (this.frozen) return;\n this.options = processOptions(options);\n\n this.callback = function (result, entry) {\n _this.options.callback(result, entry);\n\n if (result && _this.options.once) {\n _this.frozen = true;\n\n _this.destroyObserver();\n }\n }; // Throttle\n\n\n if (this.callback && this.options.throttle) {\n var _ref = this.options.throttleOptions || {},\n _leading = _ref.leading;\n\n this.callback = throttle(this.callback, this.options.throttle, {\n leading: function leading(state) {\n return _leading === 'both' || _leading === 'visible' && state || _leading === 'hidden' && !state;\n }\n });\n }\n\n this.oldResult = undefined;\n this.observer = new IntersectionObserver(function (entries) {\n var entry = entries[0];\n\n if (entries.length > 1) {\n var intersectingEntry = entries.find(function (e) {\n return e.isIntersecting;\n });\n\n if (intersectingEntry) {\n entry = intersectingEntry;\n }\n }\n\n if (_this.callback) {\n // Use isIntersecting if possible because browsers can report isIntersecting as true, but intersectionRatio as 0, when something very slowly enters the viewport.\n var result = entry.isIntersecting && entry.intersectionRatio >= _this.threshold;\n if (result === _this.oldResult) return;\n _this.oldResult = result;\n\n _this.callback(result, entry);\n }\n }, this.options.intersection); // Wait for the element to be in document\n\n vnode.context.$nextTick(function () {\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n } // Cancel throttled call\n\n\n if (this.callback && this.callback._clear) {\n this.callback._clear();\n\n this.callback = null;\n }\n }\n }, {\n key: \"threshold\",\n get: function get() {\n return this.options.intersection && this.options.intersection.threshold || 0;\n }\n }]);\n\n return VisibilityState;\n}();\n\nfunction bind(el, _ref2, vnode) {\n var value = _ref2.value;\n if (!value) return;\n\n if (typeof IntersectionObserver === 'undefined') {\n console.warn('[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill');\n } else {\n var state = new VisibilityState(el, value, vnode);\n el._vue_visibilityState = state;\n }\n}\n\nfunction update(el, _ref3, vnode) {\n var value = _ref3.value,\n oldValue = _ref3.oldValue;\n if (deepEqual(value, oldValue)) return;\n var state = el._vue_visibilityState;\n\n if (!value) {\n unbind(el);\n return;\n }\n\n if (state) {\n state.createObserver(value, vnode);\n } else {\n bind(el, {\n value: value\n }, vnode);\n }\n}\n\nfunction unbind(el) {\n var state = el._vue_visibilityState;\n\n if (state) {\n state.destroyObserver();\n delete el._vue_visibilityState;\n }\n}\n\nvar ObserveVisibility = {\n bind: bind,\n update: update,\n unbind: unbind\n};\n\nfunction install(Vue) {\n Vue.directive('observe-visibility', ObserveVisibility);\n /* -- Add more components here -- */\n}\n/* -- Plugin definition & Auto-install -- */\n\n/* You shouldn't have to modify the code below */\n// Plugin\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"0.4.6\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { ObserveVisibility, install };\n","(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Scrollparent = factory();\n }\n}(this, function () {\n var regex = /(auto|scroll)/;\n\n var parents = function (node, ps) {\n if (node.parentNode === null) { return ps; }\n\n return parents(node.parentNode, ps.concat([node]));\n };\n\n var style = function (node, prop) {\n return getComputedStyle(node, null).getPropertyValue(prop);\n };\n\n var overflow = function (node) {\n return style(node, \"overflow\") + style(node, \"overflow-y\") + style(node, \"overflow-x\");\n };\n\n var scroll = function (node) {\n return regex.test(overflow(node));\n };\n\n var scrollParent = function (node) {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return ;\n }\n\n var ps = parents(node.parentNode, []);\n\n for (var i = 0; i < ps.length; i += 1) {\n if (scroll(ps[i])) {\n return ps[i];\n }\n }\n\n return document.scrollingElement || document.documentElement;\n };\n\n return scrollParent;\n}));\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: VERSION,\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n"],"names":["itemsLimit","isIE","initCompat","init","ua","window","navigator","userAgent","msie","indexOf","parseInt","substring","rv","edge","getInternetExplorerVersion","ResizeObserver","render","_h","this","$createElement","_self","_c","staticClass","attrs","tabindex","staticRenderFns","_scopeId","name","methods","compareAndNotify","_w","$el","offsetWidth","offsetHeight","$emit","addResizeHandlers","_resizeObject","contentDocument","defaultView","addEventListener","removeResizeHandlers","onload","removeEventListener","mounted","_this","$nextTick","object","document","createElement","setAttribute","type","appendChild","data","beforeDestroy","plugin","version","install","Vue","component","GlobalVue","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_toConsumableArray","arr","Array","isArray","arr2","_arrayWithoutHoles","iter","toString","call","from","_iterableToArray","TypeError","_nonIterableSpread","global","use","VisibilityState","el","options","vnode","instance","Constructor","_classCallCheck","observer","frozen","createObserver","protoProps","staticProps","value","destroyObserver","callback","result","entry","once","throttle","_leading","throttleOptions","leading","delay","timeout","lastState","currentArgs","arguments","undefined","throttled","state","_len","args","_key","apply","concat","clearTimeout","setTimeout","_clear","oldResult","IntersectionObserver","entries","intersectingEntry","find","e","isIntersecting","intersectionRatio","threshold","intersection","context","observe","disconnect","get","bind","_ref2","console","warn","_vue_visibilityState","unbind","ObserveVisibility","update","_ref3","deepEqual","val1","val2","oldValue","directive","root","factory","regex","parents","node","ps","parentNode","style","prop","getComputedStyle","getPropertyValue","scroll","test","overflow","HTMLElement","SVGElement","scrollingElement","documentElement","module","exports","Scrollparent","items","required","keyField","String","default","direction","validator","includes","simpleArray","supportsPassive","opts","normalizeComponent","template","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","_compiled","functional","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","VERSION","finalOptions","assign","installComponents","componentsPrefix","config","prefix","RecycleScroller","DynamicScroller","DynamicScrollerItem","registerComponents","idProp","vm","item","id","store","idState","created","$_id","$_getId","$watch","handler","_this2","immediate","$_updateIdState","beforeUpdate","$_idStateInit","$set","Error"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"vue-virtual-scroller.min.js","sources":["../src/config.js","../node_modules/vue-resize/dist/vue-resize.esm.js","../node_modules/vue-observe-visibility/dist/vue-observe-visibility.esm.js","../node_modules/scrollparent/scrollparent.js","../src/components/common.js","../src/utils.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/index.js","../src/mixins/IdState.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","function getInternetExplorerVersion() {\n\tvar ua = window.navigator.userAgent;\n\n\tvar msie = ua.indexOf('MSIE ');\n\tif (msie > 0) {\n\t\t// IE 10 or older => return version number\n\t\treturn parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n\t}\n\n\tvar trident = ua.indexOf('Trident/');\n\tif (trident > 0) {\n\t\t// IE 11 => return version number\n\t\tvar rv = ua.indexOf('rv:');\n\t\treturn parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n\t}\n\n\tvar edge = ua.indexOf('Edge/');\n\tif (edge > 0) {\n\t\t// Edge (IE 12+) => return version number\n\t\treturn parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n\t}\n\n\t// other browser\n\treturn -1;\n}\n\nvar isIE = void 0;\n\nfunction initCompat() {\n\tif (!initCompat.init) {\n\t\tinitCompat.init = true;\n\t\tisIE = getInternetExplorerVersion() !== -1;\n\t}\n}\n\nvar ResizeObserver = { render: function render() {\n\t\tvar _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: \"resize-observer\", attrs: { \"tabindex\": \"-1\" } });\n\t}, staticRenderFns: [], _scopeId: 'data-v-b329ee4c',\n\tname: 'resize-observer',\n\n\tmethods: {\n\t\tcompareAndNotify: function compareAndNotify() {\n\t\t\tif (this._w !== this.$el.offsetWidth || this._h !== this.$el.offsetHeight) {\n\t\t\t\tthis._w = this.$el.offsetWidth;\n\t\t\t\tthis._h = this.$el.offsetHeight;\n\t\t\t\tthis.$emit('notify');\n\t\t\t}\n\t\t},\n\t\taddResizeHandlers: function addResizeHandlers() {\n\t\t\tthis._resizeObject.contentDocument.defaultView.addEventListener('resize', this.compareAndNotify);\n\t\t\tthis.compareAndNotify();\n\t\t},\n\t\tremoveResizeHandlers: function removeResizeHandlers() {\n\t\t\tif (this._resizeObject && this._resizeObject.onload) {\n\t\t\t\tif (!isIE && this._resizeObject.contentDocument) {\n\t\t\t\t\tthis._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.compareAndNotify);\n\t\t\t\t}\n\t\t\t\tdelete this._resizeObject.onload;\n\t\t\t}\n\t\t}\n\t},\n\n\tmounted: function mounted() {\n\t\tvar _this = this;\n\n\t\tinitCompat();\n\t\tthis.$nextTick(function () {\n\t\t\t_this._w = _this.$el.offsetWidth;\n\t\t\t_this._h = _this.$el.offsetHeight;\n\t\t});\n\t\tvar object = document.createElement('object');\n\t\tthis._resizeObject = object;\n\t\tobject.setAttribute('aria-hidden', 'true');\n\t\tobject.setAttribute('tabindex', -1);\n\t\tobject.onload = this.addResizeHandlers;\n\t\tobject.type = 'text/html';\n\t\tif (isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t\tobject.data = 'about:blank';\n\t\tif (!isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t},\n\tbeforeDestroy: function beforeDestroy() {\n\t\tthis.removeResizeHandlers();\n\t}\n};\n\n// Install the components\nfunction install(Vue) {\n\tVue.component('resize-observer', ResizeObserver);\n\tVue.component('ResizeObserver', ResizeObserver);\n}\n\n// Plugin\nvar plugin = {\n\t// eslint-disable-next-line no-undef\n\tversion: \"0.4.5\",\n\tinstall: install\n};\n\n// Auto-install\nvar GlobalVue = null;\nif (typeof window !== 'undefined') {\n\tGlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n\tGlobalVue = global.Vue;\n}\nif (GlobalVue) {\n\tGlobalVue.use(plugin);\n}\n\nexport { install, ResizeObserver };\nexport default plugin;\n","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction processOptions(value) {\n var options;\n\n if (typeof value === 'function') {\n // Simple options (callback-only)\n options = {\n callback: value\n };\n } else {\n // Options object\n options = value;\n }\n\n return options;\n}\nfunction throttle(callback, delay) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var timeout;\n var lastState;\n var currentArgs;\n\n var throttled = function throttled(state) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n currentArgs = args;\n if (timeout && state === lastState) return;\n var leading = options.leading;\n\n if (typeof leading === 'function') {\n leading = leading(state, lastState);\n }\n\n if ((!timeout || state !== lastState) && leading) {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n }\n\n lastState = state;\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n timeout = 0;\n }, delay);\n };\n\n throttled._clear = function () {\n clearTimeout(timeout);\n timeout = null;\n };\n\n return throttled;\n}\nfunction deepEqual(val1, val2) {\n if (val1 === val2) return true;\n\n if (_typeof(val1) === 'object') {\n for (var key in val1) {\n if (!deepEqual(val1[key], val2[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\nvar VisibilityState =\n/*#__PURE__*/\nfunction () {\n function VisibilityState(el, options, vnode) {\n _classCallCheck(this, VisibilityState);\n\n this.el = el;\n this.observer = null;\n this.frozen = false;\n this.createObserver(options, vnode);\n }\n\n _createClass(VisibilityState, [{\n key: \"createObserver\",\n value: function createObserver(options, vnode) {\n var _this = this;\n\n if (this.observer) {\n this.destroyObserver();\n }\n\n if (this.frozen) return;\n this.options = processOptions(options);\n\n this.callback = function (result, entry) {\n _this.options.callback(result, entry);\n\n if (result && _this.options.once) {\n _this.frozen = true;\n\n _this.destroyObserver();\n }\n }; // Throttle\n\n\n if (this.callback && this.options.throttle) {\n var _ref = this.options.throttleOptions || {},\n _leading = _ref.leading;\n\n this.callback = throttle(this.callback, this.options.throttle, {\n leading: function leading(state) {\n return _leading === 'both' || _leading === 'visible' && state || _leading === 'hidden' && !state;\n }\n });\n }\n\n this.oldResult = undefined;\n this.observer = new IntersectionObserver(function (entries) {\n var entry = entries[0];\n\n if (entries.length > 1) {\n var intersectingEntry = entries.find(function (e) {\n return e.isIntersecting;\n });\n\n if (intersectingEntry) {\n entry = intersectingEntry;\n }\n }\n\n if (_this.callback) {\n // Use isIntersecting if possible because browsers can report isIntersecting as true, but intersectionRatio as 0, when something very slowly enters the viewport.\n var result = entry.isIntersecting && entry.intersectionRatio >= _this.threshold;\n if (result === _this.oldResult) return;\n _this.oldResult = result;\n\n _this.callback(result, entry);\n }\n }, this.options.intersection); // Wait for the element to be in document\n\n vnode.context.$nextTick(function () {\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n } // Cancel throttled call\n\n\n if (this.callback && this.callback._clear) {\n this.callback._clear();\n\n this.callback = null;\n }\n }\n }, {\n key: \"threshold\",\n get: function get() {\n return this.options.intersection && this.options.intersection.threshold || 0;\n }\n }]);\n\n return VisibilityState;\n}();\n\nfunction bind(el, _ref2, vnode) {\n var value = _ref2.value;\n if (!value) return;\n\n if (typeof IntersectionObserver === 'undefined') {\n console.warn('[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill');\n } else {\n var state = new VisibilityState(el, value, vnode);\n el._vue_visibilityState = state;\n }\n}\n\nfunction update(el, _ref3, vnode) {\n var value = _ref3.value,\n oldValue = _ref3.oldValue;\n if (deepEqual(value, oldValue)) return;\n var state = el._vue_visibilityState;\n\n if (!value) {\n unbind(el);\n return;\n }\n\n if (state) {\n state.createObserver(value, vnode);\n } else {\n bind(el, {\n value: value\n }, vnode);\n }\n}\n\nfunction unbind(el) {\n var state = el._vue_visibilityState;\n\n if (state) {\n state.destroyObserver();\n delete el._vue_visibilityState;\n }\n}\n\nvar ObserveVisibility = {\n bind: bind,\n update: update,\n unbind: unbind\n};\n\nfunction install(Vue) {\n Vue.directive('observe-visibility', ObserveVisibility);\n /* -- Add more components here -- */\n}\n/* -- Plugin definition & Auto-install -- */\n\n/* You shouldn't have to modify the code below */\n// Plugin\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"0.4.6\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { ObserveVisibility, install };\n","(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Scrollparent = factory();\n }\n}(this, function () {\n var regex = /(auto|scroll)/;\n\n var parents = function (node, ps) {\n if (node.parentNode === null) { return ps; }\n\n return parents(node.parentNode, ps.concat([node]));\n };\n\n var style = function (node, prop) {\n return getComputedStyle(node, null).getPropertyValue(prop);\n };\n\n var overflow = function (node) {\n return style(node, \"overflow\") + style(node, \"overflow-y\") + style(node, \"overflow-x\");\n };\n\n var scroll = function (node) {\n return regex.test(overflow(node));\n };\n\n var scrollParent = function (node) {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return ;\n }\n\n var ps = parents(node.parentNode, []);\n\n for (var i = 0; i < ps.length; i += 1) {\n if (scroll(ps[i])) {\n return ps[i];\n }\n }\n\n return document.scrollingElement || document.documentElement;\n };\n\n return scrollParent;\n}));\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: VERSION,\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n"],"names":["itemsLimit","isIE","initCompat","init","ua","window","navigator","userAgent","msie","indexOf","parseInt","substring","rv","edge","getInternetExplorerVersion","ResizeObserver","render","_h","this","$createElement","_self","_c","staticClass","attrs","tabindex","staticRenderFns","_scopeId","name","methods","compareAndNotify","_w","$el","offsetWidth","offsetHeight","$emit","addResizeHandlers","_resizeObject","contentDocument","defaultView","addEventListener","removeResizeHandlers","onload","removeEventListener","mounted","_this","$nextTick","object","document","createElement","setAttribute","type","appendChild","data","beforeDestroy","plugin","version","install","Vue","component","GlobalVue","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_toConsumableArray","arr","Array","isArray","arr2","_arrayWithoutHoles","iter","toString","call","from","_iterableToArray","TypeError","_nonIterableSpread","global","use","VisibilityState","el","options","vnode","instance","Constructor","_classCallCheck","observer","frozen","createObserver","protoProps","staticProps","value","destroyObserver","callback","result","entry","once","throttle","_leading","throttleOptions","leading","delay","timeout","lastState","currentArgs","arguments","undefined","throttled","state","_len","args","_key","apply","concat","clearTimeout","setTimeout","_clear","oldResult","IntersectionObserver","entries","intersectingEntry","find","e","isIntersecting","intersectionRatio","threshold","intersection","context","observe","disconnect","get","bind","_ref2","console","warn","_vue_visibilityState","unbind","ObserveVisibility","update","_ref3","deepEqual","val1","val2","oldValue","directive","root","factory","regex","parents","node","ps","parentNode","style","prop","getComputedStyle","getPropertyValue","scroll","test","overflow","HTMLElement","SVGElement","scrollingElement","documentElement","module","exports","Scrollparent","items","required","keyField","String","default","direction","validator","includes","simpleArray","supportsPassive","opts","normalizeComponent","template","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","_compiled","functional","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","VERSION","finalOptions","assign","installComponents","componentsPrefix","config","prefix","RecycleScroller","DynamicScroller","DynamicScrollerItem","registerComponents","idProp","vm","item","id","store","idState","created","$_id","$_getId","$watch","handler","_this2","immediate","$_updateIdState","beforeUpdate","$_idStateInit","$set","Error"],"mappings":"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"} \ No newline at end of file diff --git a/dist/vue-virtual-scroller.umd.js b/dist/vue-virtual-scroller.umd.js index 1853f791..5ecb83b6 100644 --- a/dist/vue-virtual-scroller.umd.js +++ b/dist/vue-virtual-scroller.umd.js @@ -875,19 +875,13 @@ var pool = this.pool; var startIndex, endIndex; var totalSize; + var scroll; - if (!count) { - startIndex = endIndex = totalSize = 0; - } else if (this.$_prerender) { - startIndex = 0; - endIndex = this.prerender; - totalSize = null; - } else { - var scroll = this.getScroll(); // Skip update if use hasn't scrolled enough + if (count && !this.$_prerender) { + scroll = this.getScroll(); // Skip update if use hasn't scrolled enough if (checkPositionDiff) { - var positionDiff = scroll.start - this.$_lastUpdateScrollPosition; - if (positionDiff < 0) positionDiff = -positionDiff; + var positionDiff = Math.abs(scroll.originalStart - this.$_lastUpdateScrollPosition); if (itemSize === null && positionDiff < minItemSize || positionDiff < itemSize) { return { @@ -895,8 +889,16 @@ }; } } + } - this.$_lastUpdateScrollPosition = scroll.start; + if (!count) { + startIndex = endIndex = totalSize = 0; + } else if (this.$_prerender) { + startIndex = 0; + endIndex = this.prerender; + totalSize = null; + } else { + this.$_lastUpdateScrollPosition = scroll.originalStart; var buffer = this.buffer; scroll.start -= buffer; scroll.end += buffer; // Variable size mode @@ -1064,8 +1066,6 @@ if (this.emitUpdate) this.$emit('update', startIndex, endIndex); // After the user has finished scrolling // Sort views so text selection is correct - clearTimeout(this.$_sortTimer); - this.$_sortTimer = setTimeout(this.sortViews, 300); return { continuous: continuous }; @@ -1083,13 +1083,14 @@ var el = this.$el, direction = this.direction; var isVertical = direction === 'vertical'; - var scrollState; if (this.pageMode) { var bounds = el.getBoundingClientRect(); var boundsSize = isVertical ? bounds.height : bounds.width; - var start = -(isVertical ? bounds.top : bounds.left); - var size = isVertical ? window.innerHeight : window.innerWidth; + var originalStart = -(isVertical ? bounds.top : bounds.left); + var originalSize = isVertical ? window.innerHeight : window.innerWidth; + var start = originalStart; + var size = originalSize; if (start < 0) { size += start; @@ -1100,23 +1101,26 @@ size = boundsSize - start; } - scrollState = { + return { + originalStart: originalStart, start: start, end: start + size }; - } else if (isVertical) { - scrollState = { + } + + if (isVertical) { + return { + originalStart: el.scrollTop, start: el.scrollTop, end: el.scrollTop + el.clientHeight }; } else { - scrollState = { + return { + originalStart: el.scrollLeft, start: el.scrollLeft, end: el.scrollLeft + el.clientWidth }; } - - return scrollState; }, applyPageMode: function applyPageMode() { if (this.pageMode) { @@ -1142,36 +1146,61 @@ this.listenerTarget = null; }, scrollToItem: function scrollToItem(index) { - var scroll; + var _this$scrollToPositio = this.scrollToPosition(index), + viewport = _this$scrollToPositio.viewport, + scrollDirection = _this$scrollToPositio.scrollDirection, + scrollDistance = _this$scrollToPositio.scrollDistance; - if (this.itemSize === null) { - scroll = index > 0 ? this.sizes[index - 1].accumulator : 0; - } else { - scroll = index * this.itemSize; - } - - this.scrollToPosition(scroll); + viewport[scrollDirection] = scrollDistance; }, - scrollToPosition: function scrollToPosition(position) { - if (this.direction === 'vertical') { - this.$el.scrollTop = position; - } else { - this.$el.scrollLeft = position; + scrollToPosition: function scrollToPosition(index) { + var _this4 = this; + + var getPositionOfItem = function getPositionOfItem(index) { + if (_this4.itemSize === null) { + return index > 0 ? _this4.sizes[index - 1].accumulator : 0; + } else { + return index * _this4.itemSize; + } + }; + + var position = getPositionOfItem(index); + var direction = this.direction === 'vertical' ? { + scroll: 'scrollTop', + start: 'top' + } : { + scroll: 'scrollLeft', + start: 'left' + }; + + if (this.pageMode) { + var viewportEl = scrollparent(this.$el); // HTML doesn't overflow like other elements + + var scrollTop = viewportEl.tagName === 'HTML' ? 0 : viewportEl[direction.scroll]; + var viewport = viewportEl.getBoundingClientRect(); + var scroller = this.$el.getBoundingClientRect(); + var scrollerPosition = scroller[direction.start] - viewport[direction.start]; + return { + viewport: viewportEl, + scrollDirection: direction.scroll, + scrollDistance: position + scrollTop + scrollerPosition + }; } + + return { + viewport: this.$el, + scrollDirection: direction.scroll, + scrollDistance: position + }; }, itemsLimitError: function itemsLimitError() { - var _this4 = this; + var _this5 = this; setTimeout(function () { - console.log('It seems the scroller element isn\'t scrolling, so it tries to render all the items at once.', 'Scroller:', _this4.$el); + console.log('It seems the scroller element isn\'t scrolling, so it tries to render all the items at once.', 'Scroller:', _this5.$el); console.log('Make sure the scroller has a fixed height (or width) and \'overflow-y\' (or \'overflow-x\') set to \'auto\' so it can scroll correctly and only render the items visible in the scroll viewport.'); }); throw new Error('Rendered items limit reached'); - }, - sortViews: function sortViews() { - this.pool.sort(function (viewA, viewB) { - return viewA.nr.index - viewB.nr.index; - }); } } }; @@ -2009,7 +2038,7 @@ var plugin$2 = { // eslint-disable-next-line no-undef - version: "1.0.10", + version: "1.1.0", install: function install(Vue, options) { var finalOptions = Object.assign({}, { installComponents: true, diff --git a/dist/vue-virtual-scroller.umd.js.map b/dist/vue-virtual-scroller.umd.js.map index 7aca6a78..1aa4282b 100644 --- a/dist/vue-virtual-scroller.umd.js.map +++ b/dist/vue-virtual-scroller.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"vue-virtual-scroller.umd.js","sources":["../src/config.js","../node_modules/vue-resize/dist/vue-resize.esm.js","../node_modules/vue-observe-visibility/dist/vue-observe-visibility.esm.js","../node_modules/scrollparent/scrollparent.js","../src/components/common.js","../src/utils.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/mixins/IdState.js","../src/index.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","function getInternetExplorerVersion() {\n\tvar ua = window.navigator.userAgent;\n\n\tvar msie = ua.indexOf('MSIE ');\n\tif (msie > 0) {\n\t\t// IE 10 or older => return version number\n\t\treturn parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n\t}\n\n\tvar trident = ua.indexOf('Trident/');\n\tif (trident > 0) {\n\t\t// IE 11 => return version number\n\t\tvar rv = ua.indexOf('rv:');\n\t\treturn parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n\t}\n\n\tvar edge = ua.indexOf('Edge/');\n\tif (edge > 0) {\n\t\t// Edge (IE 12+) => return version number\n\t\treturn parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n\t}\n\n\t// other browser\n\treturn -1;\n}\n\nvar isIE = void 0;\n\nfunction initCompat() {\n\tif (!initCompat.init) {\n\t\tinitCompat.init = true;\n\t\tisIE = getInternetExplorerVersion() !== -1;\n\t}\n}\n\nvar ResizeObserver = { render: function render() {\n\t\tvar _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: \"resize-observer\", attrs: { \"tabindex\": \"-1\" } });\n\t}, staticRenderFns: [], _scopeId: 'data-v-b329ee4c',\n\tname: 'resize-observer',\n\n\tmethods: {\n\t\tcompareAndNotify: function compareAndNotify() {\n\t\t\tif (this._w !== this.$el.offsetWidth || this._h !== this.$el.offsetHeight) {\n\t\t\t\tthis._w = this.$el.offsetWidth;\n\t\t\t\tthis._h = this.$el.offsetHeight;\n\t\t\t\tthis.$emit('notify');\n\t\t\t}\n\t\t},\n\t\taddResizeHandlers: function addResizeHandlers() {\n\t\t\tthis._resizeObject.contentDocument.defaultView.addEventListener('resize', this.compareAndNotify);\n\t\t\tthis.compareAndNotify();\n\t\t},\n\t\tremoveResizeHandlers: function removeResizeHandlers() {\n\t\t\tif (this._resizeObject && this._resizeObject.onload) {\n\t\t\t\tif (!isIE && this._resizeObject.contentDocument) {\n\t\t\t\t\tthis._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.compareAndNotify);\n\t\t\t\t}\n\t\t\t\tdelete this._resizeObject.onload;\n\t\t\t}\n\t\t}\n\t},\n\n\tmounted: function mounted() {\n\t\tvar _this = this;\n\n\t\tinitCompat();\n\t\tthis.$nextTick(function () {\n\t\t\t_this._w = _this.$el.offsetWidth;\n\t\t\t_this._h = _this.$el.offsetHeight;\n\t\t});\n\t\tvar object = document.createElement('object');\n\t\tthis._resizeObject = object;\n\t\tobject.setAttribute('aria-hidden', 'true');\n\t\tobject.setAttribute('tabindex', -1);\n\t\tobject.onload = this.addResizeHandlers;\n\t\tobject.type = 'text/html';\n\t\tif (isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t\tobject.data = 'about:blank';\n\t\tif (!isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t},\n\tbeforeDestroy: function beforeDestroy() {\n\t\tthis.removeResizeHandlers();\n\t}\n};\n\n// Install the components\nfunction install(Vue) {\n\tVue.component('resize-observer', ResizeObserver);\n\tVue.component('ResizeObserver', ResizeObserver);\n}\n\n// Plugin\nvar plugin = {\n\t// eslint-disable-next-line no-undef\n\tversion: \"0.4.5\",\n\tinstall: install\n};\n\n// Auto-install\nvar GlobalVue = null;\nif (typeof window !== 'undefined') {\n\tGlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n\tGlobalVue = global.Vue;\n}\nif (GlobalVue) {\n\tGlobalVue.use(plugin);\n}\n\nexport { install, ResizeObserver };\nexport default plugin;\n","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction processOptions(value) {\n var options;\n\n if (typeof value === 'function') {\n // Simple options (callback-only)\n options = {\n callback: value\n };\n } else {\n // Options object\n options = value;\n }\n\n return options;\n}\nfunction throttle(callback, delay) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var timeout;\n var lastState;\n var currentArgs;\n\n var throttled = function throttled(state) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n currentArgs = args;\n if (timeout && state === lastState) return;\n var leading = options.leading;\n\n if (typeof leading === 'function') {\n leading = leading(state, lastState);\n }\n\n if ((!timeout || state !== lastState) && leading) {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n }\n\n lastState = state;\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n timeout = 0;\n }, delay);\n };\n\n throttled._clear = function () {\n clearTimeout(timeout);\n timeout = null;\n };\n\n return throttled;\n}\nfunction deepEqual(val1, val2) {\n if (val1 === val2) return true;\n\n if (_typeof(val1) === 'object') {\n for (var key in val1) {\n if (!deepEqual(val1[key], val2[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\nvar VisibilityState =\n/*#__PURE__*/\nfunction () {\n function VisibilityState(el, options, vnode) {\n _classCallCheck(this, VisibilityState);\n\n this.el = el;\n this.observer = null;\n this.frozen = false;\n this.createObserver(options, vnode);\n }\n\n _createClass(VisibilityState, [{\n key: \"createObserver\",\n value: function createObserver(options, vnode) {\n var _this = this;\n\n if (this.observer) {\n this.destroyObserver();\n }\n\n if (this.frozen) return;\n this.options = processOptions(options);\n\n this.callback = function (result, entry) {\n _this.options.callback(result, entry);\n\n if (result && _this.options.once) {\n _this.frozen = true;\n\n _this.destroyObserver();\n }\n }; // Throttle\n\n\n if (this.callback && this.options.throttle) {\n var _ref = this.options.throttleOptions || {},\n _leading = _ref.leading;\n\n this.callback = throttle(this.callback, this.options.throttle, {\n leading: function leading(state) {\n return _leading === 'both' || _leading === 'visible' && state || _leading === 'hidden' && !state;\n }\n });\n }\n\n this.oldResult = undefined;\n this.observer = new IntersectionObserver(function (entries) {\n var entry = entries[0];\n\n if (entries.length > 1) {\n var intersectingEntry = entries.find(function (e) {\n return e.isIntersecting;\n });\n\n if (intersectingEntry) {\n entry = intersectingEntry;\n }\n }\n\n if (_this.callback) {\n // Use isIntersecting if possible because browsers can report isIntersecting as true, but intersectionRatio as 0, when something very slowly enters the viewport.\n var result = entry.isIntersecting && entry.intersectionRatio >= _this.threshold;\n if (result === _this.oldResult) return;\n _this.oldResult = result;\n\n _this.callback(result, entry);\n }\n }, this.options.intersection); // Wait for the element to be in document\n\n vnode.context.$nextTick(function () {\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n } // Cancel throttled call\n\n\n if (this.callback && this.callback._clear) {\n this.callback._clear();\n\n this.callback = null;\n }\n }\n }, {\n key: \"threshold\",\n get: function get() {\n return this.options.intersection && this.options.intersection.threshold || 0;\n }\n }]);\n\n return VisibilityState;\n}();\n\nfunction bind(el, _ref2, vnode) {\n var value = _ref2.value;\n if (!value) return;\n\n if (typeof IntersectionObserver === 'undefined') {\n console.warn('[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill');\n } else {\n var state = new VisibilityState(el, value, vnode);\n el._vue_visibilityState = state;\n }\n}\n\nfunction update(el, _ref3, vnode) {\n var value = _ref3.value,\n oldValue = _ref3.oldValue;\n if (deepEqual(value, oldValue)) return;\n var state = el._vue_visibilityState;\n\n if (!value) {\n unbind(el);\n return;\n }\n\n if (state) {\n state.createObserver(value, vnode);\n } else {\n bind(el, {\n value: value\n }, vnode);\n }\n}\n\nfunction unbind(el) {\n var state = el._vue_visibilityState;\n\n if (state) {\n state.destroyObserver();\n delete el._vue_visibilityState;\n }\n}\n\nvar ObserveVisibility = {\n bind: bind,\n update: update,\n unbind: unbind\n};\n\nfunction install(Vue) {\n Vue.directive('observe-visibility', ObserveVisibility);\n /* -- Add more components here -- */\n}\n/* -- Plugin definition & Auto-install -- */\n\n/* You shouldn't have to modify the code below */\n// Plugin\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"0.4.6\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { ObserveVisibility, install };\n","(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Scrollparent = factory();\n }\n}(this, function () {\n var regex = /(auto|scroll)/;\n\n var parents = function (node, ps) {\n if (node.parentNode === null) { return ps; }\n\n return parents(node.parentNode, ps.concat([node]));\n };\n\n var style = function (node, prop) {\n return getComputedStyle(node, null).getPropertyValue(prop);\n };\n\n var overflow = function (node) {\n return style(node, \"overflow\") + style(node, \"overflow-y\") + style(node, \"overflow-x\");\n };\n\n var scroll = function (node) {\n return regex.test(overflow(node));\n };\n\n var scrollParent = function (node) {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return ;\n }\n\n var ps = parents(node.parentNode, []);\n\n for (var i = 0; i < ps.length; i += 1) {\n if (scroll(ps[i])) {\n return ps[i];\n }\n }\n\n return document.scrollingElement || document.documentElement;\n };\n\n return scrollParent;\n}));\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: VERSION,\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n"],"names":["itemsLimit","ResizeObserver","_typeof","install","plugin","GlobalVue","this","props","items","type","Array","required","keyField","String","default","direction","validator","value","includes","simpleArray","length","supportsPassive","window","opts","Object","defineProperty","get","addEventListener","e","idProp","vm","item","id","store","Vue","data","idState","created","$_id","$_getId","call","$watch","handler","$nextTick","immediate","$_updateIdState","beforeUpdate","methods","$_idStateInit","factory","$options","$set","Error","console","warn","registerComponents","prefix","component","RecycleScroller","DynamicScroller","DynamicScrollerItem","version","VERSION","options","finalOptions","assign","installComponents","componentsPrefix","key","config","global","use"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"vue-virtual-scroller.umd.js","sources":["../src/config.js","../node_modules/vue-resize/dist/vue-resize.esm.js","../node_modules/vue-observe-visibility/dist/vue-observe-visibility.esm.js","../node_modules/scrollparent/scrollparent.js","../src/components/common.js","../src/utils.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/mixins/IdState.js","../src/index.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","function getInternetExplorerVersion() {\n\tvar ua = window.navigator.userAgent;\n\n\tvar msie = ua.indexOf('MSIE ');\n\tif (msie > 0) {\n\t\t// IE 10 or older => return version number\n\t\treturn parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n\t}\n\n\tvar trident = ua.indexOf('Trident/');\n\tif (trident > 0) {\n\t\t// IE 11 => return version number\n\t\tvar rv = ua.indexOf('rv:');\n\t\treturn parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n\t}\n\n\tvar edge = ua.indexOf('Edge/');\n\tif (edge > 0) {\n\t\t// Edge (IE 12+) => return version number\n\t\treturn parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n\t}\n\n\t// other browser\n\treturn -1;\n}\n\nvar isIE = void 0;\n\nfunction initCompat() {\n\tif (!initCompat.init) {\n\t\tinitCompat.init = true;\n\t\tisIE = getInternetExplorerVersion() !== -1;\n\t}\n}\n\nvar ResizeObserver = { render: function render() {\n\t\tvar _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: \"resize-observer\", attrs: { \"tabindex\": \"-1\" } });\n\t}, staticRenderFns: [], _scopeId: 'data-v-b329ee4c',\n\tname: 'resize-observer',\n\n\tmethods: {\n\t\tcompareAndNotify: function compareAndNotify() {\n\t\t\tif (this._w !== this.$el.offsetWidth || this._h !== this.$el.offsetHeight) {\n\t\t\t\tthis._w = this.$el.offsetWidth;\n\t\t\t\tthis._h = this.$el.offsetHeight;\n\t\t\t\tthis.$emit('notify');\n\t\t\t}\n\t\t},\n\t\taddResizeHandlers: function addResizeHandlers() {\n\t\t\tthis._resizeObject.contentDocument.defaultView.addEventListener('resize', this.compareAndNotify);\n\t\t\tthis.compareAndNotify();\n\t\t},\n\t\tremoveResizeHandlers: function removeResizeHandlers() {\n\t\t\tif (this._resizeObject && this._resizeObject.onload) {\n\t\t\t\tif (!isIE && this._resizeObject.contentDocument) {\n\t\t\t\t\tthis._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.compareAndNotify);\n\t\t\t\t}\n\t\t\t\tdelete this._resizeObject.onload;\n\t\t\t}\n\t\t}\n\t},\n\n\tmounted: function mounted() {\n\t\tvar _this = this;\n\n\t\tinitCompat();\n\t\tthis.$nextTick(function () {\n\t\t\t_this._w = _this.$el.offsetWidth;\n\t\t\t_this._h = _this.$el.offsetHeight;\n\t\t});\n\t\tvar object = document.createElement('object');\n\t\tthis._resizeObject = object;\n\t\tobject.setAttribute('aria-hidden', 'true');\n\t\tobject.setAttribute('tabindex', -1);\n\t\tobject.onload = this.addResizeHandlers;\n\t\tobject.type = 'text/html';\n\t\tif (isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t\tobject.data = 'about:blank';\n\t\tif (!isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t},\n\tbeforeDestroy: function beforeDestroy() {\n\t\tthis.removeResizeHandlers();\n\t}\n};\n\n// Install the components\nfunction install(Vue) {\n\tVue.component('resize-observer', ResizeObserver);\n\tVue.component('ResizeObserver', ResizeObserver);\n}\n\n// Plugin\nvar plugin = {\n\t// eslint-disable-next-line no-undef\n\tversion: \"0.4.5\",\n\tinstall: install\n};\n\n// Auto-install\nvar GlobalVue = null;\nif (typeof window !== 'undefined') {\n\tGlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n\tGlobalVue = global.Vue;\n}\nif (GlobalVue) {\n\tGlobalVue.use(plugin);\n}\n\nexport { install, ResizeObserver };\nexport default plugin;\n","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction processOptions(value) {\n var options;\n\n if (typeof value === 'function') {\n // Simple options (callback-only)\n options = {\n callback: value\n };\n } else {\n // Options object\n options = value;\n }\n\n return options;\n}\nfunction throttle(callback, delay) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var timeout;\n var lastState;\n var currentArgs;\n\n var throttled = function throttled(state) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n currentArgs = args;\n if (timeout && state === lastState) return;\n var leading = options.leading;\n\n if (typeof leading === 'function') {\n leading = leading(state, lastState);\n }\n\n if ((!timeout || state !== lastState) && leading) {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n }\n\n lastState = state;\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n timeout = 0;\n }, delay);\n };\n\n throttled._clear = function () {\n clearTimeout(timeout);\n timeout = null;\n };\n\n return throttled;\n}\nfunction deepEqual(val1, val2) {\n if (val1 === val2) return true;\n\n if (_typeof(val1) === 'object') {\n for (var key in val1) {\n if (!deepEqual(val1[key], val2[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\nvar VisibilityState =\n/*#__PURE__*/\nfunction () {\n function VisibilityState(el, options, vnode) {\n _classCallCheck(this, VisibilityState);\n\n this.el = el;\n this.observer = null;\n this.frozen = false;\n this.createObserver(options, vnode);\n }\n\n _createClass(VisibilityState, [{\n key: \"createObserver\",\n value: function createObserver(options, vnode) {\n var _this = this;\n\n if (this.observer) {\n this.destroyObserver();\n }\n\n if (this.frozen) return;\n this.options = processOptions(options);\n\n this.callback = function (result, entry) {\n _this.options.callback(result, entry);\n\n if (result && _this.options.once) {\n _this.frozen = true;\n\n _this.destroyObserver();\n }\n }; // Throttle\n\n\n if (this.callback && this.options.throttle) {\n var _ref = this.options.throttleOptions || {},\n _leading = _ref.leading;\n\n this.callback = throttle(this.callback, this.options.throttle, {\n leading: function leading(state) {\n return _leading === 'both' || _leading === 'visible' && state || _leading === 'hidden' && !state;\n }\n });\n }\n\n this.oldResult = undefined;\n this.observer = new IntersectionObserver(function (entries) {\n var entry = entries[0];\n\n if (entries.length > 1) {\n var intersectingEntry = entries.find(function (e) {\n return e.isIntersecting;\n });\n\n if (intersectingEntry) {\n entry = intersectingEntry;\n }\n }\n\n if (_this.callback) {\n // Use isIntersecting if possible because browsers can report isIntersecting as true, but intersectionRatio as 0, when something very slowly enters the viewport.\n var result = entry.isIntersecting && entry.intersectionRatio >= _this.threshold;\n if (result === _this.oldResult) return;\n _this.oldResult = result;\n\n _this.callback(result, entry);\n }\n }, this.options.intersection); // Wait for the element to be in document\n\n vnode.context.$nextTick(function () {\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n } // Cancel throttled call\n\n\n if (this.callback && this.callback._clear) {\n this.callback._clear();\n\n this.callback = null;\n }\n }\n }, {\n key: \"threshold\",\n get: function get() {\n return this.options.intersection && this.options.intersection.threshold || 0;\n }\n }]);\n\n return VisibilityState;\n}();\n\nfunction bind(el, _ref2, vnode) {\n var value = _ref2.value;\n if (!value) return;\n\n if (typeof IntersectionObserver === 'undefined') {\n console.warn('[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill');\n } else {\n var state = new VisibilityState(el, value, vnode);\n el._vue_visibilityState = state;\n }\n}\n\nfunction update(el, _ref3, vnode) {\n var value = _ref3.value,\n oldValue = _ref3.oldValue;\n if (deepEqual(value, oldValue)) return;\n var state = el._vue_visibilityState;\n\n if (!value) {\n unbind(el);\n return;\n }\n\n if (state) {\n state.createObserver(value, vnode);\n } else {\n bind(el, {\n value: value\n }, vnode);\n }\n}\n\nfunction unbind(el) {\n var state = el._vue_visibilityState;\n\n if (state) {\n state.destroyObserver();\n delete el._vue_visibilityState;\n }\n}\n\nvar ObserveVisibility = {\n bind: bind,\n update: update,\n unbind: unbind\n};\n\nfunction install(Vue) {\n Vue.directive('observe-visibility', ObserveVisibility);\n /* -- Add more components here -- */\n}\n/* -- Plugin definition & Auto-install -- */\n\n/* You shouldn't have to modify the code below */\n// Plugin\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"0.4.6\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { ObserveVisibility, install };\n","(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Scrollparent = factory();\n }\n}(this, function () {\n var regex = /(auto|scroll)/;\n\n var parents = function (node, ps) {\n if (node.parentNode === null) { return ps; }\n\n return parents(node.parentNode, ps.concat([node]));\n };\n\n var style = function (node, prop) {\n return getComputedStyle(node, null).getPropertyValue(prop);\n };\n\n var overflow = function (node) {\n return style(node, \"overflow\") + style(node, \"overflow-y\") + style(node, \"overflow-x\");\n };\n\n var scroll = function (node) {\n return regex.test(overflow(node));\n };\n\n var scrollParent = function (node) {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return ;\n }\n\n var ps = parents(node.parentNode, []);\n\n for (var i = 0; i < ps.length; i += 1) {\n if (scroll(ps[i])) {\n return ps[i];\n }\n }\n\n return document.scrollingElement || document.documentElement;\n };\n\n return scrollParent;\n}));\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: VERSION,\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n"],"names":["itemsLimit","ResizeObserver","_typeof","install","plugin","GlobalVue","this","props","items","type","Array","required","keyField","String","default","direction","validator","value","includes","simpleArray","length","supportsPassive","window","opts","Object","defineProperty","get","addEventListener","e","idProp","vm","item","id","store","Vue","data","idState","created","$_id","$_getId","call","$watch","handler","$nextTick","immediate","$_updateIdState","beforeUpdate","methods","$_idStateInit","factory","$options","$set","Error","console","warn","registerComponents","prefix","component","RecycleScroller","DynamicScroller","DynamicScrollerItem","version","VERSION","options","finalOptions","assign","installComponents","componentsPrefix","key","config","global","use"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index a73ba8a6..c99b612f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@startinfinity/vue-virtual-scroller", "description": "Smooth scrolling for any amount of data", - "version": "1.0.10", + "version": "1.1.0", "author": { "name": "Guillaume Chau", "email": "guillaume.b.chau@gmail.com" From 656308fe80d69a8054b443fb2d62e2308eb2e88a Mon Sep 17 00:00:00 2001 From: Damir Date: Sun, 26 Apr 2020 15:03:19 +0200 Subject: [PATCH 10/26] feature: Skip vue when assigning hover class --- src/components/RecycleScroller.vue | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/components/RecycleScroller.vue b/src/components/RecycleScroller.vue index 2ea76403..86324920 100644 --- a/src/components/RecycleScroller.vue +++ b/src/components/RecycleScroller.vue @@ -28,9 +28,8 @@ :key="view.nr.id" :style="ready ? { transform: `translate${direction === 'vertical' ? 'Y' : 'X'}(${view.position}px)` } : null" class="vue-recycle-scroller__item-view" - :class="{ hover: hoverKey === view.nr.key }" - @mouseenter="hoverKey = view.nr.key" - @mouseleave="hoverKey = null" + @mouseenter="$event.target.classList.add('hover')" + @mouseleave="$event.target.classList.remove('hover')" > Date: Sun, 26 Apr 2020 15:06:26 +0200 Subject: [PATCH 11/26] 1.1.1 --- dist/vue-virtual-scroller.esm.js | 7 +++---- dist/vue-virtual-scroller.esm.js.map | 2 +- dist/vue-virtual-scroller.min.js | 2 +- dist/vue-virtual-scroller.min.js.map | 2 +- dist/vue-virtual-scroller.umd.js | 7 +++---- dist/vue-virtual-scroller.umd.js.map | 2 +- package.json | 2 +- 7 files changed, 11 insertions(+), 13 deletions(-) diff --git a/dist/vue-virtual-scroller.esm.js b/dist/vue-virtual-scroller.esm.js index 80dda954..3ae77055 100644 --- a/dist/vue-virtual-scroller.esm.js +++ b/dist/vue-virtual-scroller.esm.js @@ -870,7 +870,6 @@ var __vue_render__ = function() { { key: view.nr.id, staticClass: "vue-recycle-scroller__item-view", - class: { hover: _vm.hoverKey === view.nr.key }, style: _vm.ready ? { transform: @@ -883,10 +882,10 @@ var __vue_render__ = function() { : null, on: { mouseenter: function($event) { - _vm.hoverKey = view.nr.key; + return $event.target.classList.add("hover") }, mouseleave: function($event) { - _vm.hoverKey = null; + return $event.target.classList.remove("hover") } } }, @@ -1568,7 +1567,7 @@ function registerComponents(Vue, prefix) { var plugin = { // eslint-disable-next-line no-undef - version: "1.1.0", + version: '"1.1.1"', install: function install(Vue, options) { var finalOptions = Object.assign({}, { installComponents: true, diff --git a/dist/vue-virtual-scroller.esm.js.map b/dist/vue-virtual-scroller.esm.js.map index 71a51062..2939b91d 100644 --- a/dist/vue-virtual-scroller.esm.js.map +++ b/dist/vue-virtual-scroller.esm.js.map @@ -1 +1 @@ -{"version":3,"file":"vue-virtual-scroller.esm.js","sources":["../src/config.js","../src/components/common.js","../src/utils.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/mixins/IdState.js","../src/index.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: VERSION,\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n"],"names":["itemsLimit","props","items","type","Array","required","keyField","String","default","direction","validator","value","includes","simpleArray","length","supportsPassive","window","opts","Object","defineProperty","get","addEventListener","e","idProp","vm","item","id","store","Vue","data","idState","created","$_id","$_getId","call","$watch","handler","$nextTick","immediate","$_updateIdState","beforeUpdate","methods","$_idStateInit","factory","$options","$set","Error","console","warn","registerComponents","prefix","component","RecycleScroller","DynamicScroller","DynamicScrollerItem","plugin","version","VERSION","install","options","finalOptions","assign","installComponents","componentsPrefix","key","config","GlobalVue","global","use"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"vue-virtual-scroller.esm.js","sources":["../src/config.js","../src/components/common.js","../src/utils.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/mixins/IdState.js","../src/index.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: 'VERSION',\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n"],"names":["itemsLimit","props","items","type","Array","required","keyField","String","default","direction","validator","value","includes","simpleArray","length","supportsPassive","window","opts","Object","defineProperty","get","addEventListener","e","idProp","vm","item","id","store","Vue","data","idState","created","$_id","$_getId","call","$watch","handler","$nextTick","immediate","$_updateIdState","beforeUpdate","methods","$_idStateInit","factory","$options","$set","Error","console","warn","registerComponents","prefix","component","RecycleScroller","DynamicScroller","DynamicScrollerItem","plugin","version","install","options","finalOptions","assign","installComponents","componentsPrefix","key","config","GlobalVue","global","use"],"mappings":"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"} \ No newline at end of file diff --git a/dist/vue-virtual-scroller.min.js b/dist/vue-virtual-scroller.min.js index 319da3b3..a091d099 100644 --- a/dist/vue-virtual-scroller.min.js +++ b/dist/vue-virtual-scroller.min.js @@ -1,2 +1,2 @@ -var VueVirtualScroller=function(e,t){"use strict";t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;var i={itemsLimit:1e3};function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function o(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function s(e){for(var t=1;te.length)&&(t=e.length);for(var i=0,n=new Array(t);i=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var n,r,o=!0,s=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,r=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw r}}}}var c=void 0;function d(){d.init||(d.init=!0,c=-1!==function(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);if(e.indexOf("Trident/")>0){var i=e.indexOf("rv:");return parseInt(e.substring(i+3,e.indexOf(".",i)),10)}var n=e.indexOf("Edge/");return n>0?parseInt(e.substring(n+5,e.indexOf(".",n)),10):-1}())}var u={render:function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"resize-observer",attrs:{tabindex:"-1"}})},staticRenderFns:[],_scopeId:"data-v-b329ee4c",name:"resize-observer",methods:{compareAndNotify:function(){this._w===this.$el.offsetWidth&&this._h===this.$el.offsetHeight||(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.$emit("notify"))},addResizeHandlers:function(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers:function(){this._resizeObject&&this._resizeObject.onload&&(!c&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),delete this._resizeObject.onload)}},mounted:function(){var e=this;d(),this.$nextTick((function(){e._w=e.$el.offsetWidth,e._h=e.$el.offsetHeight}));var t=document.createElement("object");this._resizeObject=t,t.setAttribute("aria-hidden","true"),t.setAttribute("tabindex",-1),t.onload=this.addResizeHandlers,t.type="text/html",c&&this.$el.appendChild(t),t.data="about:blank",c||this.$el.appendChild(t)},beforeDestroy:function(){this.removeResizeHandlers()}};var h={version:"0.4.5",install:function(e){e.component("resize-observer",u),e.component("ResizeObserver",u)}},f=null;function v(e){return(v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function p(e,t){for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:{},s=function(s){for(var l=arguments.length,a=new Array(l>1?l-1:0),c=1;c1){var n=e.find((function(e){return e.isIntersecting}));n&&(t=n)}if(i.callback){var r=t.isIntersecting&&t.intersectionRatio>=i.threshold;if(r===i.oldResult)return;i.oldResult=r,i.callback(r,t)}}),this.options.intersection),t.context.$nextTick((function(){i.observer&&i.observer.observe(i.el)}))}}},{key:"destroyObserver",value:function(){this.observer&&(this.observer.disconnect(),this.observer=null),this.callback&&this.callback._clear&&(this.callback._clear(),this.callback=null)}},{key:"threshold",get:function(){return this.options.intersection&&this.options.intersection.threshold||0}}])&&p(t.prototype,i),n&&p(t,n),e}();function b(e,t,i){var n=t.value;if(n)if("undefined"==typeof IntersectionObserver)console.warn("[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill");else{var r=new y(e,n,i);e._vue_visibilityState=r}}function g(e){var t=e._vue_visibilityState;t&&(t.destroyObserver(),delete e._vue_visibilityState)}var _={bind:b,update:function(e,t,i){var n=t.value;if(!function e(t,i){if(t===i)return!0;if("object"===v(t)){for(var n in t)if(!e(t[n],i[n]))return!1;return!0}return!1}(n,t.oldValue)){var r=e._vue_visibilityState;n?r?r.createObserver(n,i):b(e,{value:n},i):g(e)}},unbind:g};var S={version:"0.4.6",install:function(e){e.directive("observe-visibility",_)}},$=null;"undefined"!=typeof window?$=window.Vue:"undefined"!=typeof global&&($=global.Vue),$&&$.use(S);var z="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var w=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){var t,i;t=z,i=function(){var e=/(auto|scroll)/,t=function(e,i){return null===e.parentNode?i:t(e.parentNode,i.concat([e]))},i=function(e,t){return getComputedStyle(e,null).getPropertyValue(t)},n=function(t){return e.test(function(e){return i(e,"overflow")+i(e,"overflow-y")+i(e,"overflow-x")}(t))};return function(e){if(e instanceof HTMLElement||e instanceof SVGElement){for(var i=t(e.parentNode,[]),r=0;r1&&void 0!==arguments[1]&&arguments[1],i=this.$_unusedViews,n=e.nr.type,r=i.get(n);r||(r=[],i.set(n,r)),r.push(e),t||(e.nr.used=!1,e.position=-9999,this.$_views.delete(e.nr.key))},handleResize:function(){this.$emit("resize"),this.ready&&this.updateVisibleItems(!1)},handleScroll:function(e){var t=this;this.$_scrollDirty||(this.$_scrollDirty=!0,requestAnimationFrame((function(){t.$_scrollDirty=!1,t.updateVisibleItems(!1,!0).continuous||(clearTimeout(t.$_refreshTimout),t.$_refreshTimout=setTimeout(t.handleScroll,100))})))},handleVisibilityChange:function(e,t){var i=this;this.ready&&(e||0!==t.boundingClientRect.width||0!==t.boundingClientRect.height?(this.$emit("visible"),requestAnimationFrame((function(){i.updateVisibleItems(!1)}))):this.$emit("hidden"))},updateVisibleItems:function(e){var t,n,r,o,s,l=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=this.itemSize,c=this.$_computedMinItemSize,d=this.typeField,u=this.simpleArray?null:this.keyField,h=this.items,f=h.length,v=this.sizes,p=this.$_views,m=this.$_unusedViews,y=this.pool;if(f&&!this.$_prerender&&(o=this.getScroll(),l)){var b=Math.abs(o.originalStart-this.$_lastUpdateScrollPosition);if(null===a&&bo.start&&($=z),z=~~((S+$)/2)}while(z!==_);for(z<0&&(z=0),t=z,r=v[f-1].accumulator,n=z;nf&&(n=f)}else(t=~~(o.start/a))<0&&(t=0),(n=Math.ceil(o.end/a))>f&&(n=f),r=f*a}else t=n=r=0;n-t>i.itemsLimit&&this.itemsLimitError(),this.totalSize=r;var w=t<=this.$_endIndex&&n>=this.$_startIndex;if(this.$_continuous!==w){if(w){p.clear(),m.clear();for(var O=0,D=y.length;O=n)&&this.unuseView(s));for(var R,V,T,P,k=w?null:new Map,A=t;A=T.length)&&(s=this.addView(y,A,R,E,V),this.unuseView(s,!0),T=m.get(V)),(s=T[P]).item=R,s.nr.used=!0,s.nr.index=A,s.nr.key=E,s.nr.type=V,k.set(V,P+1),P++),p.set(E,s)),s.position=null===a?v[A-1].accumulator:A*a):s&&this.unuseView(s)}return this.$_startIndex=t,this.$_endIndex=n,this.emitUpdate&&this.$emit("update",t,n),{continuous:w}},getListenerTarget:function(){var e=w(this.$el);return!window.document||e!==window.document.documentElement&&e!==window.document.body||(e=window),e},getScroll:function(){var e=this.$el,t="vertical"===this.direction;if(this.pageMode){var i=e.getBoundingClientRect(),n=t?i.height:i.width,r=-(t?i.top:i.left),o=r,s=t?window.innerHeight:window.innerWidth;return o<0&&(s+=o,o=0),o+s>n&&(s=n-o),{originalStart:r,start:o,end:o+s}}return t?{originalStart:e.scrollTop,start:e.scrollTop,end:e.scrollTop+e.clientHeight}:{originalStart:e.scrollLeft,start:e.scrollLeft,end:e.scrollLeft+e.clientWidth}},applyPageMode:function(){this.pageMode?this.addListeners():this.removeListeners()},addListeners:function(){this.listenerTarget=this.getListenerTarget(),this.listenerTarget.addEventListener("scroll",this.handleScroll,!!x&&{passive:!0}),this.listenerTarget.addEventListener("resize",this.handleResize)},removeListeners:function(){this.listenerTarget&&(this.listenerTarget.removeEventListener("scroll",this.handleScroll),this.listenerTarget.removeEventListener("resize",this.handleResize),this.listenerTarget=null)},scrollToItem:function(e){var t=this.scrollToPosition(e),i=t.viewport,n=t.scrollDirection,r=t.scrollDistance;i[n]=r},scrollToPosition:function(e){var t=this,i=function(e){return null===t.itemSize?e>0?t.sizes[e-1].accumulator:0:e*t.itemSize}(e),n="vertical"===this.direction?{scroll:"scrollTop",start:"top"}:{scroll:"scrollLeft",start:"left"};if(this.pageMode){var r=w(this.$el),o="HTML"===r.tagName?0:r[n.scroll],s=r.getBoundingClientRect(),l=this.$el.getBoundingClientRect()[n.start]-s[n.start];return{viewport:r,scrollDirection:n.scroll,scrollDistance:i+o+l}}return{viewport:this.$el,scrollDirection:n.scroll,scrollDistance:i}},itemsLimitError:function(){var e=this;throw setTimeout((function(){console.log("It seems the scroller element isn't scrolling, so it tries to render all the items at once.","Scroller:",e.$el),console.log("Make sure the scroller has a fixed height (or width) and 'overflow-y' (or 'overflow-x') set to 'auto' so it can scroll correctly and only render the items visible in the scroll viewport.")})),new Error("Rendered items limit reached")}}};var P=function(){var e,t,i=this,n=i.$createElement,r=i._self._c||n;return r("div",{directives:[{name:"observe-visibility",rawName:"v-observe-visibility",value:i.handleVisibilityChange,expression:"handleVisibilityChange"}],staticClass:"vue-recycle-scroller",class:(e={ready:i.ready,"page-mode":i.pageMode},e["direction-"+i.direction]=!0,e),on:{"&scroll":function(e){return i.handleScroll(e)}}},[i.$slots.before?r("div",{staticClass:"vue-recycle-scroller__slot"},[i._t("before")],2):i._e(),i._v(" "),r("div",{ref:"wrapper",staticClass:"vue-recycle-scroller__item-wrapper",style:(t={},t["vertical"===i.direction?"minHeight":"minWidth"]=i.totalSize+"px",t)},i._l(i.pool,(function(e){return r("div",{key:e.nr.id,staticClass:"vue-recycle-scroller__item-view",class:{hover:i.hoverKey===e.nr.key},style:i.ready?{transform:"translate"+("vertical"===i.direction?"Y":"X")+"("+e.position+"px)"}:null,on:{mouseenter:function(t){i.hoverKey=e.nr.key},mouseleave:function(e){i.hoverKey=null}}},[i._t("default",null,{item:e.item,index:e.nr.index,active:e.nr.used})],2)})),0),i._v(" "),i.$slots.after?r("div",{staticClass:"vue-recycle-scroller__slot"},[i._t("after")],2):i._e(),i._v(" "),r("ResizeObserver",{on:{notify:i.handleResize}})],1)};P._withStripped=!0;const k=V({render:P,staticRenderFns:[]},void 0,T,void 0,!1,void 0,!1,void 0,void 0,void 0);const A={name:"DynamicScroller",components:{RecycleScroller:k},inheritAttrs:!1,provide:function(){return"undefined"!=typeof ResizeObserver&&(this.$_resizeObserver=new ResizeObserver((function(e){var t,i=a(e);try{for(i.s();!(t=i.n()).done;){var n=t.value;if(n.target){var r=new CustomEvent("resize",{detail:{contentRect:n.contentRect}});n.target.dispatchEvent(r)}}}catch(e){i.e(e)}finally{i.f()}}))),{vscrollData:this.vscrollData,vscrollParent:this,vscrollResizeObserver:this.$_resizeObserver}},props:s({},O,{minItemSize:{type:[Number,String],required:!0}}),data:function(){return{vscrollData:{active:!0,sizes:{},validSizes:{},keyField:this.keyField,simpleArray:!1}}},computed:{simpleArray:D,itemsWithSize:function(){for(var e=[],t=this.items,i=this.keyField,n=this.simpleArray,r=this.vscrollData.sizes,o=0;o0&&void 0!==arguments[0])||arguments[0];(e||this.simpleArray)&&(this.vscrollData.validSizes={}),this.$emit("vscroll:update",{force:!0})},scrollToItem:function(e){var t=this.$refs.scroller;t&&t.scrollToItem(e)},getItemSize:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=this.simpleArray?null!=t?t:this.items.indexOf(e):e[this.keyField];return this.vscrollData.sizes[i]||0},scrollToBottom:function(){var e=this;if(!this.$_scrollingToBottom){this.$_scrollingToBottom=!0;var t=this.$el;this.$nextTick((function(){t.scrollTop=t.scrollHeight+5e3;requestAnimationFrame((function i(){t.scrollTop=t.scrollHeight+5e3,requestAnimationFrame((function(){t.scrollTop=t.scrollHeight+5e3,0===e.$_undefinedSizes?e.$_scrollingToBottom=!1:requestAnimationFrame(i)}))}))}))}}}};var E=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("RecycleScroller",e._g(e._b({ref:"scroller",attrs:{items:e.itemsWithSize,"min-item-size":e.minItemSize,direction:e.direction,"key-field":"id"},on:{resize:e.onScrollerResize,visible:e.onScrollerVisible},scopedSlots:e._u([{key:"default",fn:function(t){var i=t.item,n=t.index,r=t.active;return[e._t("default",null,null,{item:i.item,index:n,active:r,itemWithSize:i})]}}],null,!0)},"RecycleScroller",e.$attrs,!1),e.listeners),[e._v(" "),i("template",{slot:"before"},[e._t("before")],2),e._v(" "),i("template",{slot:"after"},[e._t("after")],2)],2)};E._withStripped=!0;const j=V({render:E,staticRenderFns:[]},void 0,A,void 0,!1,void 0,!1,void 0,void 0,void 0);const U=V({},void 0,{name:"DynamicScrollerItem",inject:["vscrollData","vscrollParent","vscrollResizeObserver"],props:{item:{required:!0},watchData:{type:Boolean,default:!1},active:{type:Boolean,required:!0},index:{type:Number,default:void 0},sizeDependencies:{type:[Array,Object],default:null},emitResize:{type:Boolean,default:!1},tag:{type:String,default:"div"}},computed:{id:function(){return this.vscrollData.simpleArray?this.index:this.item[this.vscrollData.keyField]},size:function(){return this.vscrollData.validSizes[this.id]&&this.vscrollData.sizes[this.id]||0},finalActive:function(){return this.active&&this.vscrollData.active}},watch:{watchData:"updateWatchData",id:function(){this.size||this.onDataUpdate()},finalActive:function(e){this.size||(e?this.vscrollParent.$_undefinedMap[this.id]||(this.vscrollParent.$_undefinedSizes++,this.vscrollParent.$_undefinedMap[this.id]=!0):this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=!1)),this.vscrollResizeObserver?e?this.observeSize():this.unobserveSize():e&&this.$_pendingVScrollUpdate===this.id&&this.updateSize()}},created:function(){var e=this;if(!this.$isServer&&(this.$_forceNextVScrollUpdate=null,this.updateWatchData(),!this.vscrollResizeObserver)){var t=function(t){e.$watch((function(){return e.sizeDependencies[t]}),e.onDataUpdate)};for(var i in this.sizeDependencies)t(i);this.vscrollParent.$on("vscroll:update",this.onVscrollUpdate),this.vscrollParent.$on("vscroll:update-size",this.onVscrollUpdateSize)}},mounted:function(){this.vscrollData.active&&(this.updateSize(),this.observeSize())},beforeDestroy:function(){this.vscrollParent.$off("vscroll:update",this.onVscrollUpdate),this.vscrollParent.$off("vscroll:update-size",this.onVscrollUpdateSize),this.unobserveSize()},methods:{updateSize:function(){this.finalActive?this.$_pendingSizeUpdate!==this.id&&(this.$_pendingSizeUpdate=this.id,this.$_forceNextVScrollUpdate=null,this.$_pendingVScrollUpdate=null,this.computeSize(this.id)):this.$_forceNextVScrollUpdate=this.id},updateWatchData:function(){var e=this;this.watchData?this.$_watchData=this.$watch("data",(function(){e.onDataUpdate()}),{deep:!0}):this.$_watchData&&(this.$_watchData(),this.$_watchData=null)},onVscrollUpdate:function(e){var t=e.force;!this.finalActive&&t&&(this.$_pendingVScrollUpdate=this.id),this.$_forceNextVScrollUpdate!==this.id&&!t&&this.size||this.updateSize()},onDataUpdate:function(){this.updateSize()},computeSize:function(e){var t=this;this.$nextTick((function(){if(t.id===e){var i=t.$el.offsetWidth,n=t.$el.offsetHeight;t.applySize(i,n)}t.$_pendingSizeUpdate=null}))},applySize:function(e,t){var i=Math.round("vertical"===this.vscrollParent.direction?t:e);i&&this.size!==i&&(this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=void 0),this.$set(this.vscrollData.sizes,this.id,i),this.$set(this.vscrollData.validSizes,this.id,!0),this.emitResize&&this.$emit("resize",this.id))},observeSize:function(){this.vscrollResizeObserver&&(this.vscrollResizeObserver.observe(this.$el.parentNode),this.$el.parentNode.addEventListener("resize",this.onResize))},unobserveSize:function(){this.vscrollResizeObserver&&(this.vscrollResizeObserver.unobserve(this.$el.parentNode),this.$el.parentNode.removeEventListener("resize",this.onResize))},onResize:function(e){var t=e.detail.contentRect,i=t.width,n=t.height;this.applySize(i,n)}},render:function(e){return e(this.tag,this.$slots.default)}},void 0,void 0,void 0,!1,void 0,void 0,void 0);var M={version:"1.1.0",install:function(e,t){var n=Object.assign({},{installComponents:!0,componentsPrefix:""},t);for(var r in n)void 0!==n[r]&&(i[r]=n[r]);n.installComponents&&function(e,t){e.component("".concat(t,"recycle-scroller"),k),e.component("".concat(t,"RecycleScroller"),k),e.component("".concat(t,"dynamic-scroller"),j),e.component("".concat(t,"DynamicScroller"),j),e.component("".concat(t,"dynamic-scroller-item"),U),e.component("".concat(t,"DynamicScrollerItem"),U)}(e,n.componentsPrefix)}},C=null;return"undefined"!=typeof window?C=window.Vue:"undefined"!=typeof global&&(C=global.Vue),C&&C.use(M),e.DynamicScroller=j,e.DynamicScrollerItem=U,e.IdState=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=e.idProp,n=void 0===i?function(e){return e.item.id}:i,r={},o=new t({data:function(){return{store:r}}});return{data:function(){return{idState:null}},created:function(){var e=this;this.$_id=null,this.$_getId="function"==typeof n?function(){return n.call(e,e)}:function(){return e[n]},this.$watch(this.$_getId,{handler:function(e){var t=this;this.$nextTick((function(){t.$_id=e}))},immediate:!0}),this.$_updateIdState()},beforeUpdate:function(){this.$_updateIdState()},methods:{$_idStateInit:function(e){var t=this.$options.idState;if("function"==typeof t){var i=t.call(this,this);return o.$set(r,e,i),this.$_id=e,i}throw new Error("[mixin IdState] Missing `idState` function on component definition.")},$_updateIdState:function(){var e=this.$_getId();null==e&&console.warn("No id found for IdState with idProp: '".concat(n,"'.")),e!==this.$_id&&(r[e]||this.$_idStateInit(e),this.idState=r[e])}}}},e.RecycleScroller=k,e.default=M,e}({},Vue); +var VueVirtualScroller=function(e,t){"use strict";t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;var i={itemsLimit:1e3};function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function o(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function s(e){for(var t=1;te.length)&&(t=e.length);for(var i=0,n=new Array(t);i=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var n,r,o=!0,s=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,r=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw r}}}}var c=void 0;function d(){d.init||(d.init=!0,c=-1!==function(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);if(e.indexOf("Trident/")>0){var i=e.indexOf("rv:");return parseInt(e.substring(i+3,e.indexOf(".",i)),10)}var n=e.indexOf("Edge/");return n>0?parseInt(e.substring(n+5,e.indexOf(".",n)),10):-1}())}var u={render:function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"resize-observer",attrs:{tabindex:"-1"}})},staticRenderFns:[],_scopeId:"data-v-b329ee4c",name:"resize-observer",methods:{compareAndNotify:function(){this._w===this.$el.offsetWidth&&this._h===this.$el.offsetHeight||(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.$emit("notify"))},addResizeHandlers:function(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers:function(){this._resizeObject&&this._resizeObject.onload&&(!c&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),delete this._resizeObject.onload)}},mounted:function(){var e=this;d(),this.$nextTick((function(){e._w=e.$el.offsetWidth,e._h=e.$el.offsetHeight}));var t=document.createElement("object");this._resizeObject=t,t.setAttribute("aria-hidden","true"),t.setAttribute("tabindex",-1),t.onload=this.addResizeHandlers,t.type="text/html",c&&this.$el.appendChild(t),t.data="about:blank",c||this.$el.appendChild(t)},beforeDestroy:function(){this.removeResizeHandlers()}};var h={version:"0.4.5",install:function(e){e.component("resize-observer",u),e.component("ResizeObserver",u)}},f=null;function v(e){return(v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function p(e,t){for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:{},s=function(s){for(var l=arguments.length,a=new Array(l>1?l-1:0),c=1;c1){var n=e.find((function(e){return e.isIntersecting}));n&&(t=n)}if(i.callback){var r=t.isIntersecting&&t.intersectionRatio>=i.threshold;if(r===i.oldResult)return;i.oldResult=r,i.callback(r,t)}}),this.options.intersection),t.context.$nextTick((function(){i.observer&&i.observer.observe(i.el)}))}}},{key:"destroyObserver",value:function(){this.observer&&(this.observer.disconnect(),this.observer=null),this.callback&&this.callback._clear&&(this.callback._clear(),this.callback=null)}},{key:"threshold",get:function(){return this.options.intersection&&this.options.intersection.threshold||0}}])&&p(t.prototype,i),n&&p(t,n),e}();function b(e,t,i){var n=t.value;if(n)if("undefined"==typeof IntersectionObserver)console.warn("[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill");else{var r=new y(e,n,i);e._vue_visibilityState=r}}function g(e){var t=e._vue_visibilityState;t&&(t.destroyObserver(),delete e._vue_visibilityState)}var _={bind:b,update:function(e,t,i){var n=t.value;if(!function e(t,i){if(t===i)return!0;if("object"===v(t)){for(var n in t)if(!e(t[n],i[n]))return!1;return!0}return!1}(n,t.oldValue)){var r=e._vue_visibilityState;n?r?r.createObserver(n,i):b(e,{value:n},i):g(e)}},unbind:g};var S={version:"0.4.6",install:function(e){e.directive("observe-visibility",_)}},$=null;"undefined"!=typeof window?$=window.Vue:"undefined"!=typeof global&&($=global.Vue),$&&$.use(S);var z="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var w=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){var t,i;t=z,i=function(){var e=/(auto|scroll)/,t=function(e,i){return null===e.parentNode?i:t(e.parentNode,i.concat([e]))},i=function(e,t){return getComputedStyle(e,null).getPropertyValue(t)},n=function(t){return e.test(function(e){return i(e,"overflow")+i(e,"overflow-y")+i(e,"overflow-x")}(t))};return function(e){if(e instanceof HTMLElement||e instanceof SVGElement){for(var i=t(e.parentNode,[]),r=0;r1&&void 0!==arguments[1]&&arguments[1],i=this.$_unusedViews,n=e.nr.type,r=i.get(n);r||(r=[],i.set(n,r)),r.push(e),t||(e.nr.used=!1,e.position=-9999,this.$_views.delete(e.nr.key))},handleResize:function(){this.$emit("resize"),this.ready&&this.updateVisibleItems(!1)},handleScroll:function(e){var t=this;this.$_scrollDirty||(this.$_scrollDirty=!0,requestAnimationFrame((function(){t.$_scrollDirty=!1,t.updateVisibleItems(!1,!0).continuous||(clearTimeout(t.$_refreshTimout),t.$_refreshTimout=setTimeout(t.handleScroll,100))})))},handleVisibilityChange:function(e,t){var i=this;this.ready&&(e||0!==t.boundingClientRect.width||0!==t.boundingClientRect.height?(this.$emit("visible"),requestAnimationFrame((function(){i.updateVisibleItems(!1)}))):this.$emit("hidden"))},updateVisibleItems:function(e){var t,n,r,o,s,l=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=this.itemSize,c=this.$_computedMinItemSize,d=this.typeField,u=this.simpleArray?null:this.keyField,h=this.items,f=h.length,v=this.sizes,p=this.$_views,m=this.$_unusedViews,y=this.pool;if(f&&!this.$_prerender&&(o=this.getScroll(),l)){var b=Math.abs(o.originalStart-this.$_lastUpdateScrollPosition);if(null===a&&bo.start&&($=z),z=~~((S+$)/2)}while(z!==_);for(z<0&&(z=0),t=z,r=v[f-1].accumulator,n=z;nf&&(n=f)}else(t=~~(o.start/a))<0&&(t=0),(n=Math.ceil(o.end/a))>f&&(n=f),r=f*a}else t=n=r=0;n-t>i.itemsLimit&&this.itemsLimitError(),this.totalSize=r;var w=t<=this.$_endIndex&&n>=this.$_startIndex;if(this.$_continuous!==w){if(w){p.clear(),m.clear();for(var O=0,D=y.length;O=n)&&this.unuseView(s));for(var R,V,T,P,A=w?null:new Map,k=t;k=T.length)&&(s=this.addView(y,k,R,E,V),this.unuseView(s,!0),T=m.get(V)),(s=T[P]).item=R,s.nr.used=!0,s.nr.index=k,s.nr.key=E,s.nr.type=V,A.set(V,P+1),P++),p.set(E,s)),s.position=null===a?v[k-1].accumulator:k*a):s&&this.unuseView(s)}return this.$_startIndex=t,this.$_endIndex=n,this.emitUpdate&&this.$emit("update",t,n),{continuous:w}},getListenerTarget:function(){var e=w(this.$el);return!window.document||e!==window.document.documentElement&&e!==window.document.body||(e=window),e},getScroll:function(){var e=this.$el,t="vertical"===this.direction;if(this.pageMode){var i=e.getBoundingClientRect(),n=t?i.height:i.width,r=-(t?i.top:i.left),o=r,s=t?window.innerHeight:window.innerWidth;return o<0&&(s+=o,o=0),o+s>n&&(s=n-o),{originalStart:r,start:o,end:o+s}}return t?{originalStart:e.scrollTop,start:e.scrollTop,end:e.scrollTop+e.clientHeight}:{originalStart:e.scrollLeft,start:e.scrollLeft,end:e.scrollLeft+e.clientWidth}},applyPageMode:function(){this.pageMode?this.addListeners():this.removeListeners()},addListeners:function(){this.listenerTarget=this.getListenerTarget(),this.listenerTarget.addEventListener("scroll",this.handleScroll,!!x&&{passive:!0}),this.listenerTarget.addEventListener("resize",this.handleResize)},removeListeners:function(){this.listenerTarget&&(this.listenerTarget.removeEventListener("scroll",this.handleScroll),this.listenerTarget.removeEventListener("resize",this.handleResize),this.listenerTarget=null)},scrollToItem:function(e){var t=this.scrollToPosition(e),i=t.viewport,n=t.scrollDirection,r=t.scrollDistance;i[n]=r},scrollToPosition:function(e){var t=this,i=function(e){return null===t.itemSize?e>0?t.sizes[e-1].accumulator:0:e*t.itemSize}(e),n="vertical"===this.direction?{scroll:"scrollTop",start:"top"}:{scroll:"scrollLeft",start:"left"};if(this.pageMode){var r=w(this.$el),o="HTML"===r.tagName?0:r[n.scroll],s=r.getBoundingClientRect(),l=this.$el.getBoundingClientRect()[n.start]-s[n.start];return{viewport:r,scrollDirection:n.scroll,scrollDistance:i+o+l}}return{viewport:this.$el,scrollDirection:n.scroll,scrollDistance:i}},itemsLimitError:function(){var e=this;throw setTimeout((function(){console.log("It seems the scroller element isn't scrolling, so it tries to render all the items at once.","Scroller:",e.$el),console.log("Make sure the scroller has a fixed height (or width) and 'overflow-y' (or 'overflow-x') set to 'auto' so it can scroll correctly and only render the items visible in the scroll viewport.")})),new Error("Rendered items limit reached")}}};var P=function(){var e,t,i=this,n=i.$createElement,r=i._self._c||n;return r("div",{directives:[{name:"observe-visibility",rawName:"v-observe-visibility",value:i.handleVisibilityChange,expression:"handleVisibilityChange"}],staticClass:"vue-recycle-scroller",class:(e={ready:i.ready,"page-mode":i.pageMode},e["direction-"+i.direction]=!0,e),on:{"&scroll":function(e){return i.handleScroll(e)}}},[i.$slots.before?r("div",{staticClass:"vue-recycle-scroller__slot"},[i._t("before")],2):i._e(),i._v(" "),r("div",{ref:"wrapper",staticClass:"vue-recycle-scroller__item-wrapper",style:(t={},t["vertical"===i.direction?"minHeight":"minWidth"]=i.totalSize+"px",t)},i._l(i.pool,(function(e){return r("div",{key:e.nr.id,staticClass:"vue-recycle-scroller__item-view",style:i.ready?{transform:"translate"+("vertical"===i.direction?"Y":"X")+"("+e.position+"px)"}:null,on:{mouseenter:function(e){return e.target.classList.add("hover")},mouseleave:function(e){return e.target.classList.remove("hover")}}},[i._t("default",null,{item:e.item,index:e.nr.index,active:e.nr.used})],2)})),0),i._v(" "),i.$slots.after?r("div",{staticClass:"vue-recycle-scroller__slot"},[i._t("after")],2):i._e(),i._v(" "),r("ResizeObserver",{on:{notify:i.handleResize}})],1)};P._withStripped=!0;const A=V({render:P,staticRenderFns:[]},void 0,T,void 0,!1,void 0,!1,void 0,void 0,void 0);const k={name:"DynamicScroller",components:{RecycleScroller:A},inheritAttrs:!1,provide:function(){return"undefined"!=typeof ResizeObserver&&(this.$_resizeObserver=new ResizeObserver((function(e){var t,i=a(e);try{for(i.s();!(t=i.n()).done;){var n=t.value;if(n.target){var r=new CustomEvent("resize",{detail:{contentRect:n.contentRect}});n.target.dispatchEvent(r)}}}catch(e){i.e(e)}finally{i.f()}}))),{vscrollData:this.vscrollData,vscrollParent:this,vscrollResizeObserver:this.$_resizeObserver}},props:s({},O,{minItemSize:{type:[Number,String],required:!0}}),data:function(){return{vscrollData:{active:!0,sizes:{},validSizes:{},keyField:this.keyField,simpleArray:!1}}},computed:{simpleArray:D,itemsWithSize:function(){for(var e=[],t=this.items,i=this.keyField,n=this.simpleArray,r=this.vscrollData.sizes,o=0;o0&&void 0!==arguments[0])||arguments[0];(e||this.simpleArray)&&(this.vscrollData.validSizes={}),this.$emit("vscroll:update",{force:!0})},scrollToItem:function(e){var t=this.$refs.scroller;t&&t.scrollToItem(e)},getItemSize:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=this.simpleArray?null!=t?t:this.items.indexOf(e):e[this.keyField];return this.vscrollData.sizes[i]||0},scrollToBottom:function(){var e=this;if(!this.$_scrollingToBottom){this.$_scrollingToBottom=!0;var t=this.$el;this.$nextTick((function(){t.scrollTop=t.scrollHeight+5e3;requestAnimationFrame((function i(){t.scrollTop=t.scrollHeight+5e3,requestAnimationFrame((function(){t.scrollTop=t.scrollHeight+5e3,0===e.$_undefinedSizes?e.$_scrollingToBottom=!1:requestAnimationFrame(i)}))}))}))}}}};var E=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("RecycleScroller",e._g(e._b({ref:"scroller",attrs:{items:e.itemsWithSize,"min-item-size":e.minItemSize,direction:e.direction,"key-field":"id"},on:{resize:e.onScrollerResize,visible:e.onScrollerVisible},scopedSlots:e._u([{key:"default",fn:function(t){var i=t.item,n=t.index,r=t.active;return[e._t("default",null,null,{item:i.item,index:n,active:r,itemWithSize:i})]}}],null,!0)},"RecycleScroller",e.$attrs,!1),e.listeners),[e._v(" "),i("template",{slot:"before"},[e._t("before")],2),e._v(" "),i("template",{slot:"after"},[e._t("after")],2)],2)};E._withStripped=!0;const j=V({render:E,staticRenderFns:[]},void 0,k,void 0,!1,void 0,!1,void 0,void 0,void 0);const U=V({},void 0,{name:"DynamicScrollerItem",inject:["vscrollData","vscrollParent","vscrollResizeObserver"],props:{item:{required:!0},watchData:{type:Boolean,default:!1},active:{type:Boolean,required:!0},index:{type:Number,default:void 0},sizeDependencies:{type:[Array,Object],default:null},emitResize:{type:Boolean,default:!1},tag:{type:String,default:"div"}},computed:{id:function(){return this.vscrollData.simpleArray?this.index:this.item[this.vscrollData.keyField]},size:function(){return this.vscrollData.validSizes[this.id]&&this.vscrollData.sizes[this.id]||0},finalActive:function(){return this.active&&this.vscrollData.active}},watch:{watchData:"updateWatchData",id:function(){this.size||this.onDataUpdate()},finalActive:function(e){this.size||(e?this.vscrollParent.$_undefinedMap[this.id]||(this.vscrollParent.$_undefinedSizes++,this.vscrollParent.$_undefinedMap[this.id]=!0):this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=!1)),this.vscrollResizeObserver?e?this.observeSize():this.unobserveSize():e&&this.$_pendingVScrollUpdate===this.id&&this.updateSize()}},created:function(){var e=this;if(!this.$isServer&&(this.$_forceNextVScrollUpdate=null,this.updateWatchData(),!this.vscrollResizeObserver)){var t=function(t){e.$watch((function(){return e.sizeDependencies[t]}),e.onDataUpdate)};for(var i in this.sizeDependencies)t(i);this.vscrollParent.$on("vscroll:update",this.onVscrollUpdate),this.vscrollParent.$on("vscroll:update-size",this.onVscrollUpdateSize)}},mounted:function(){this.vscrollData.active&&(this.updateSize(),this.observeSize())},beforeDestroy:function(){this.vscrollParent.$off("vscroll:update",this.onVscrollUpdate),this.vscrollParent.$off("vscroll:update-size",this.onVscrollUpdateSize),this.unobserveSize()},methods:{updateSize:function(){this.finalActive?this.$_pendingSizeUpdate!==this.id&&(this.$_pendingSizeUpdate=this.id,this.$_forceNextVScrollUpdate=null,this.$_pendingVScrollUpdate=null,this.computeSize(this.id)):this.$_forceNextVScrollUpdate=this.id},updateWatchData:function(){var e=this;this.watchData?this.$_watchData=this.$watch("data",(function(){e.onDataUpdate()}),{deep:!0}):this.$_watchData&&(this.$_watchData(),this.$_watchData=null)},onVscrollUpdate:function(e){var t=e.force;!this.finalActive&&t&&(this.$_pendingVScrollUpdate=this.id),this.$_forceNextVScrollUpdate!==this.id&&!t&&this.size||this.updateSize()},onDataUpdate:function(){this.updateSize()},computeSize:function(e){var t=this;this.$nextTick((function(){if(t.id===e){var i=t.$el.offsetWidth,n=t.$el.offsetHeight;t.applySize(i,n)}t.$_pendingSizeUpdate=null}))},applySize:function(e,t){var i=Math.round("vertical"===this.vscrollParent.direction?t:e);i&&this.size!==i&&(this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=void 0),this.$set(this.vscrollData.sizes,this.id,i),this.$set(this.vscrollData.validSizes,this.id,!0),this.emitResize&&this.$emit("resize",this.id))},observeSize:function(){this.vscrollResizeObserver&&(this.vscrollResizeObserver.observe(this.$el.parentNode),this.$el.parentNode.addEventListener("resize",this.onResize))},unobserveSize:function(){this.vscrollResizeObserver&&(this.vscrollResizeObserver.unobserve(this.$el.parentNode),this.$el.parentNode.removeEventListener("resize",this.onResize))},onResize:function(e){var t=e.detail.contentRect,i=t.width,n=t.height;this.applySize(i,n)}},render:function(e){return e(this.tag,this.$slots.default)}},void 0,void 0,void 0,!1,void 0,void 0,void 0);var M={version:'"1.1.1"',install:function(e,t){var n=Object.assign({},{installComponents:!0,componentsPrefix:""},t);for(var r in n)void 0!==n[r]&&(i[r]=n[r]);n.installComponents&&function(e,t){e.component("".concat(t,"recycle-scroller"),A),e.component("".concat(t,"RecycleScroller"),A),e.component("".concat(t,"dynamic-scroller"),j),e.component("".concat(t,"DynamicScroller"),j),e.component("".concat(t,"dynamic-scroller-item"),U),e.component("".concat(t,"DynamicScrollerItem"),U)}(e,n.componentsPrefix)}},C=null;return"undefined"!=typeof window?C=window.Vue:"undefined"!=typeof global&&(C=global.Vue),C&&C.use(M),e.DynamicScroller=j,e.DynamicScrollerItem=U,e.IdState=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=e.idProp,n=void 0===i?function(e){return e.item.id}:i,r={},o=new t({data:function(){return{store:r}}});return{data:function(){return{idState:null}},created:function(){var e=this;this.$_id=null,this.$_getId="function"==typeof n?function(){return n.call(e,e)}:function(){return e[n]},this.$watch(this.$_getId,{handler:function(e){var t=this;this.$nextTick((function(){t.$_id=e}))},immediate:!0}),this.$_updateIdState()},beforeUpdate:function(){this.$_updateIdState()},methods:{$_idStateInit:function(e){var t=this.$options.idState;if("function"==typeof t){var i=t.call(this,this);return o.$set(r,e,i),this.$_id=e,i}throw new Error("[mixin IdState] Missing `idState` function on component definition.")},$_updateIdState:function(){var e=this.$_getId();null==e&&console.warn("No id found for IdState with idProp: '".concat(n,"'.")),e!==this.$_id&&(r[e]||this.$_idStateInit(e),this.idState=r[e])}}}},e.RecycleScroller=A,e.default=M,e}({},Vue); //# sourceMappingURL=vue-virtual-scroller.min.js.map diff --git a/dist/vue-virtual-scroller.min.js.map b/dist/vue-virtual-scroller.min.js.map index 320e524a..896e6dbd 100644 --- a/dist/vue-virtual-scroller.min.js.map +++ b/dist/vue-virtual-scroller.min.js.map @@ -1 +1 @@ -{"version":3,"file":"vue-virtual-scroller.min.js","sources":["../src/config.js","../node_modules/vue-resize/dist/vue-resize.esm.js","../node_modules/vue-observe-visibility/dist/vue-observe-visibility.esm.js","../node_modules/scrollparent/scrollparent.js","../src/components/common.js","../src/utils.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/index.js","../src/mixins/IdState.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","function getInternetExplorerVersion() {\n\tvar ua = window.navigator.userAgent;\n\n\tvar msie = ua.indexOf('MSIE ');\n\tif (msie > 0) {\n\t\t// IE 10 or older => return version number\n\t\treturn parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n\t}\n\n\tvar trident = ua.indexOf('Trident/');\n\tif (trident > 0) {\n\t\t// IE 11 => return version number\n\t\tvar rv = ua.indexOf('rv:');\n\t\treturn parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n\t}\n\n\tvar edge = ua.indexOf('Edge/');\n\tif (edge > 0) {\n\t\t// Edge (IE 12+) => return version number\n\t\treturn parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n\t}\n\n\t// other browser\n\treturn -1;\n}\n\nvar isIE = void 0;\n\nfunction initCompat() {\n\tif (!initCompat.init) {\n\t\tinitCompat.init = true;\n\t\tisIE = getInternetExplorerVersion() !== -1;\n\t}\n}\n\nvar ResizeObserver = { render: function render() {\n\t\tvar _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: \"resize-observer\", attrs: { \"tabindex\": \"-1\" } });\n\t}, staticRenderFns: [], _scopeId: 'data-v-b329ee4c',\n\tname: 'resize-observer',\n\n\tmethods: {\n\t\tcompareAndNotify: function compareAndNotify() {\n\t\t\tif (this._w !== this.$el.offsetWidth || this._h !== this.$el.offsetHeight) {\n\t\t\t\tthis._w = this.$el.offsetWidth;\n\t\t\t\tthis._h = this.$el.offsetHeight;\n\t\t\t\tthis.$emit('notify');\n\t\t\t}\n\t\t},\n\t\taddResizeHandlers: function addResizeHandlers() {\n\t\t\tthis._resizeObject.contentDocument.defaultView.addEventListener('resize', this.compareAndNotify);\n\t\t\tthis.compareAndNotify();\n\t\t},\n\t\tremoveResizeHandlers: function removeResizeHandlers() {\n\t\t\tif (this._resizeObject && this._resizeObject.onload) {\n\t\t\t\tif (!isIE && this._resizeObject.contentDocument) {\n\t\t\t\t\tthis._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.compareAndNotify);\n\t\t\t\t}\n\t\t\t\tdelete this._resizeObject.onload;\n\t\t\t}\n\t\t}\n\t},\n\n\tmounted: function mounted() {\n\t\tvar _this = this;\n\n\t\tinitCompat();\n\t\tthis.$nextTick(function () {\n\t\t\t_this._w = _this.$el.offsetWidth;\n\t\t\t_this._h = _this.$el.offsetHeight;\n\t\t});\n\t\tvar object = document.createElement('object');\n\t\tthis._resizeObject = object;\n\t\tobject.setAttribute('aria-hidden', 'true');\n\t\tobject.setAttribute('tabindex', -1);\n\t\tobject.onload = this.addResizeHandlers;\n\t\tobject.type = 'text/html';\n\t\tif (isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t\tobject.data = 'about:blank';\n\t\tif (!isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t},\n\tbeforeDestroy: function beforeDestroy() {\n\t\tthis.removeResizeHandlers();\n\t}\n};\n\n// Install the components\nfunction install(Vue) {\n\tVue.component('resize-observer', ResizeObserver);\n\tVue.component('ResizeObserver', ResizeObserver);\n}\n\n// Plugin\nvar plugin = {\n\t// eslint-disable-next-line no-undef\n\tversion: \"0.4.5\",\n\tinstall: install\n};\n\n// Auto-install\nvar GlobalVue = null;\nif (typeof window !== 'undefined') {\n\tGlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n\tGlobalVue = global.Vue;\n}\nif (GlobalVue) {\n\tGlobalVue.use(plugin);\n}\n\nexport { install, ResizeObserver };\nexport default plugin;\n","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction processOptions(value) {\n var options;\n\n if (typeof value === 'function') {\n // Simple options (callback-only)\n options = {\n callback: value\n };\n } else {\n // Options object\n options = value;\n }\n\n return options;\n}\nfunction throttle(callback, delay) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var timeout;\n var lastState;\n var currentArgs;\n\n var throttled = function throttled(state) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n currentArgs = args;\n if (timeout && state === lastState) return;\n var leading = options.leading;\n\n if (typeof leading === 'function') {\n leading = leading(state, lastState);\n }\n\n if ((!timeout || state !== lastState) && leading) {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n }\n\n lastState = state;\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n timeout = 0;\n }, delay);\n };\n\n throttled._clear = function () {\n clearTimeout(timeout);\n timeout = null;\n };\n\n return throttled;\n}\nfunction deepEqual(val1, val2) {\n if (val1 === val2) return true;\n\n if (_typeof(val1) === 'object') {\n for (var key in val1) {\n if (!deepEqual(val1[key], val2[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\nvar VisibilityState =\n/*#__PURE__*/\nfunction () {\n function VisibilityState(el, options, vnode) {\n _classCallCheck(this, VisibilityState);\n\n this.el = el;\n this.observer = null;\n this.frozen = false;\n this.createObserver(options, vnode);\n }\n\n _createClass(VisibilityState, [{\n key: \"createObserver\",\n value: function createObserver(options, vnode) {\n var _this = this;\n\n if (this.observer) {\n this.destroyObserver();\n }\n\n if (this.frozen) return;\n this.options = processOptions(options);\n\n this.callback = function (result, entry) {\n _this.options.callback(result, entry);\n\n if (result && _this.options.once) {\n _this.frozen = true;\n\n _this.destroyObserver();\n }\n }; // Throttle\n\n\n if (this.callback && this.options.throttle) {\n var _ref = this.options.throttleOptions || {},\n _leading = _ref.leading;\n\n this.callback = throttle(this.callback, this.options.throttle, {\n leading: function leading(state) {\n return _leading === 'both' || _leading === 'visible' && state || _leading === 'hidden' && !state;\n }\n });\n }\n\n this.oldResult = undefined;\n this.observer = new IntersectionObserver(function (entries) {\n var entry = entries[0];\n\n if (entries.length > 1) {\n var intersectingEntry = entries.find(function (e) {\n return e.isIntersecting;\n });\n\n if (intersectingEntry) {\n entry = intersectingEntry;\n }\n }\n\n if (_this.callback) {\n // Use isIntersecting if possible because browsers can report isIntersecting as true, but intersectionRatio as 0, when something very slowly enters the viewport.\n var result = entry.isIntersecting && entry.intersectionRatio >= _this.threshold;\n if (result === _this.oldResult) return;\n _this.oldResult = result;\n\n _this.callback(result, entry);\n }\n }, this.options.intersection); // Wait for the element to be in document\n\n vnode.context.$nextTick(function () {\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n } // Cancel throttled call\n\n\n if (this.callback && this.callback._clear) {\n this.callback._clear();\n\n this.callback = null;\n }\n }\n }, {\n key: \"threshold\",\n get: function get() {\n return this.options.intersection && this.options.intersection.threshold || 0;\n }\n }]);\n\n return VisibilityState;\n}();\n\nfunction bind(el, _ref2, vnode) {\n var value = _ref2.value;\n if (!value) return;\n\n if (typeof IntersectionObserver === 'undefined') {\n console.warn('[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill');\n } else {\n var state = new VisibilityState(el, value, vnode);\n el._vue_visibilityState = state;\n }\n}\n\nfunction update(el, _ref3, vnode) {\n var value = _ref3.value,\n oldValue = _ref3.oldValue;\n if (deepEqual(value, oldValue)) return;\n var state = el._vue_visibilityState;\n\n if (!value) {\n unbind(el);\n return;\n }\n\n if (state) {\n state.createObserver(value, vnode);\n } else {\n bind(el, {\n value: value\n }, vnode);\n }\n}\n\nfunction unbind(el) {\n var state = el._vue_visibilityState;\n\n if (state) {\n state.destroyObserver();\n delete el._vue_visibilityState;\n }\n}\n\nvar ObserveVisibility = {\n bind: bind,\n update: update,\n unbind: unbind\n};\n\nfunction install(Vue) {\n Vue.directive('observe-visibility', ObserveVisibility);\n /* -- Add more components here -- */\n}\n/* -- Plugin definition & Auto-install -- */\n\n/* You shouldn't have to modify the code below */\n// Plugin\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"0.4.6\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { ObserveVisibility, install };\n","(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Scrollparent = factory();\n }\n}(this, function () {\n var regex = /(auto|scroll)/;\n\n var parents = function (node, ps) {\n if (node.parentNode === null) { return ps; }\n\n return parents(node.parentNode, ps.concat([node]));\n };\n\n var style = function (node, prop) {\n return getComputedStyle(node, null).getPropertyValue(prop);\n };\n\n var overflow = function (node) {\n return style(node, \"overflow\") + style(node, \"overflow-y\") + style(node, \"overflow-x\");\n };\n\n var scroll = function (node) {\n return regex.test(overflow(node));\n };\n\n var scrollParent = function (node) {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return ;\n }\n\n var ps = parents(node.parentNode, []);\n\n for (var i = 0; i < ps.length; i += 1) {\n if (scroll(ps[i])) {\n return ps[i];\n }\n }\n\n return document.scrollingElement || document.documentElement;\n };\n\n return scrollParent;\n}));\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: VERSION,\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n"],"names":["itemsLimit","isIE","initCompat","init","ua","window","navigator","userAgent","msie","indexOf","parseInt","substring","rv","edge","getInternetExplorerVersion","ResizeObserver","render","_h","this","$createElement","_self","_c","staticClass","attrs","tabindex","staticRenderFns","_scopeId","name","methods","compareAndNotify","_w","$el","offsetWidth","offsetHeight","$emit","addResizeHandlers","_resizeObject","contentDocument","defaultView","addEventListener","removeResizeHandlers","onload","removeEventListener","mounted","_this","$nextTick","object","document","createElement","setAttribute","type","appendChild","data","beforeDestroy","plugin","version","install","Vue","component","GlobalVue","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_toConsumableArray","arr","Array","isArray","arr2","_arrayWithoutHoles","iter","toString","call","from","_iterableToArray","TypeError","_nonIterableSpread","global","use","VisibilityState","el","options","vnode","instance","Constructor","_classCallCheck","observer","frozen","createObserver","protoProps","staticProps","value","destroyObserver","callback","result","entry","once","throttle","_leading","throttleOptions","leading","delay","timeout","lastState","currentArgs","arguments","undefined","throttled","state","_len","args","_key","apply","concat","clearTimeout","setTimeout","_clear","oldResult","IntersectionObserver","entries","intersectingEntry","find","e","isIntersecting","intersectionRatio","threshold","intersection","context","observe","disconnect","get","bind","_ref2","console","warn","_vue_visibilityState","unbind","ObserveVisibility","update","_ref3","deepEqual","val1","val2","oldValue","directive","root","factory","regex","parents","node","ps","parentNode","style","prop","getComputedStyle","getPropertyValue","scroll","test","overflow","HTMLElement","SVGElement","scrollingElement","documentElement","module","exports","Scrollparent","items","required","keyField","String","default","direction","validator","includes","simpleArray","supportsPassive","opts","normalizeComponent","template","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","_compiled","functional","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","VERSION","finalOptions","assign","installComponents","componentsPrefix","config","prefix","RecycleScroller","DynamicScroller","DynamicScrollerItem","registerComponents","idProp","vm","item","id","store","idState","created","$_id","$_getId","$watch","handler","_this2","immediate","$_updateIdState","beforeUpdate","$_idStateInit","$set","Error"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"vue-virtual-scroller.min.js","sources":["../src/config.js","../node_modules/vue-resize/dist/vue-resize.esm.js","../node_modules/vue-observe-visibility/dist/vue-observe-visibility.esm.js","../node_modules/scrollparent/scrollparent.js","../src/components/common.js","../src/utils.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/index.js","../src/mixins/IdState.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","function getInternetExplorerVersion() {\n\tvar ua = window.navigator.userAgent;\n\n\tvar msie = ua.indexOf('MSIE ');\n\tif (msie > 0) {\n\t\t// IE 10 or older => return version number\n\t\treturn parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n\t}\n\n\tvar trident = ua.indexOf('Trident/');\n\tif (trident > 0) {\n\t\t// IE 11 => return version number\n\t\tvar rv = ua.indexOf('rv:');\n\t\treturn parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n\t}\n\n\tvar edge = ua.indexOf('Edge/');\n\tif (edge > 0) {\n\t\t// Edge (IE 12+) => return version number\n\t\treturn parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n\t}\n\n\t// other browser\n\treturn -1;\n}\n\nvar isIE = void 0;\n\nfunction initCompat() {\n\tif (!initCompat.init) {\n\t\tinitCompat.init = true;\n\t\tisIE = getInternetExplorerVersion() !== -1;\n\t}\n}\n\nvar ResizeObserver = { render: function render() {\n\t\tvar _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: \"resize-observer\", attrs: { \"tabindex\": \"-1\" } });\n\t}, staticRenderFns: [], _scopeId: 'data-v-b329ee4c',\n\tname: 'resize-observer',\n\n\tmethods: {\n\t\tcompareAndNotify: function compareAndNotify() {\n\t\t\tif (this._w !== this.$el.offsetWidth || this._h !== this.$el.offsetHeight) {\n\t\t\t\tthis._w = this.$el.offsetWidth;\n\t\t\t\tthis._h = this.$el.offsetHeight;\n\t\t\t\tthis.$emit('notify');\n\t\t\t}\n\t\t},\n\t\taddResizeHandlers: function addResizeHandlers() {\n\t\t\tthis._resizeObject.contentDocument.defaultView.addEventListener('resize', this.compareAndNotify);\n\t\t\tthis.compareAndNotify();\n\t\t},\n\t\tremoveResizeHandlers: function removeResizeHandlers() {\n\t\t\tif (this._resizeObject && this._resizeObject.onload) {\n\t\t\t\tif (!isIE && this._resizeObject.contentDocument) {\n\t\t\t\t\tthis._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.compareAndNotify);\n\t\t\t\t}\n\t\t\t\tdelete this._resizeObject.onload;\n\t\t\t}\n\t\t}\n\t},\n\n\tmounted: function mounted() {\n\t\tvar _this = this;\n\n\t\tinitCompat();\n\t\tthis.$nextTick(function () {\n\t\t\t_this._w = _this.$el.offsetWidth;\n\t\t\t_this._h = _this.$el.offsetHeight;\n\t\t});\n\t\tvar object = document.createElement('object');\n\t\tthis._resizeObject = object;\n\t\tobject.setAttribute('aria-hidden', 'true');\n\t\tobject.setAttribute('tabindex', -1);\n\t\tobject.onload = this.addResizeHandlers;\n\t\tobject.type = 'text/html';\n\t\tif (isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t\tobject.data = 'about:blank';\n\t\tif (!isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t},\n\tbeforeDestroy: function beforeDestroy() {\n\t\tthis.removeResizeHandlers();\n\t}\n};\n\n// Install the components\nfunction install(Vue) {\n\tVue.component('resize-observer', ResizeObserver);\n\tVue.component('ResizeObserver', ResizeObserver);\n}\n\n// Plugin\nvar plugin = {\n\t// eslint-disable-next-line no-undef\n\tversion: \"0.4.5\",\n\tinstall: install\n};\n\n// Auto-install\nvar GlobalVue = null;\nif (typeof window !== 'undefined') {\n\tGlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n\tGlobalVue = global.Vue;\n}\nif (GlobalVue) {\n\tGlobalVue.use(plugin);\n}\n\nexport { install, ResizeObserver };\nexport default plugin;\n","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction processOptions(value) {\n var options;\n\n if (typeof value === 'function') {\n // Simple options (callback-only)\n options = {\n callback: value\n };\n } else {\n // Options object\n options = value;\n }\n\n return options;\n}\nfunction throttle(callback, delay) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var timeout;\n var lastState;\n var currentArgs;\n\n var throttled = function throttled(state) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n currentArgs = args;\n if (timeout && state === lastState) return;\n var leading = options.leading;\n\n if (typeof leading === 'function') {\n leading = leading(state, lastState);\n }\n\n if ((!timeout || state !== lastState) && leading) {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n }\n\n lastState = state;\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n timeout = 0;\n }, delay);\n };\n\n throttled._clear = function () {\n clearTimeout(timeout);\n timeout = null;\n };\n\n return throttled;\n}\nfunction deepEqual(val1, val2) {\n if (val1 === val2) return true;\n\n if (_typeof(val1) === 'object') {\n for (var key in val1) {\n if (!deepEqual(val1[key], val2[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\nvar VisibilityState =\n/*#__PURE__*/\nfunction () {\n function VisibilityState(el, options, vnode) {\n _classCallCheck(this, VisibilityState);\n\n this.el = el;\n this.observer = null;\n this.frozen = false;\n this.createObserver(options, vnode);\n }\n\n _createClass(VisibilityState, [{\n key: \"createObserver\",\n value: function createObserver(options, vnode) {\n var _this = this;\n\n if (this.observer) {\n this.destroyObserver();\n }\n\n if (this.frozen) return;\n this.options = processOptions(options);\n\n this.callback = function (result, entry) {\n _this.options.callback(result, entry);\n\n if (result && _this.options.once) {\n _this.frozen = true;\n\n _this.destroyObserver();\n }\n }; // Throttle\n\n\n if (this.callback && this.options.throttle) {\n var _ref = this.options.throttleOptions || {},\n _leading = _ref.leading;\n\n this.callback = throttle(this.callback, this.options.throttle, {\n leading: function leading(state) {\n return _leading === 'both' || _leading === 'visible' && state || _leading === 'hidden' && !state;\n }\n });\n }\n\n this.oldResult = undefined;\n this.observer = new IntersectionObserver(function (entries) {\n var entry = entries[0];\n\n if (entries.length > 1) {\n var intersectingEntry = entries.find(function (e) {\n return e.isIntersecting;\n });\n\n if (intersectingEntry) {\n entry = intersectingEntry;\n }\n }\n\n if (_this.callback) {\n // Use isIntersecting if possible because browsers can report isIntersecting as true, but intersectionRatio as 0, when something very slowly enters the viewport.\n var result = entry.isIntersecting && entry.intersectionRatio >= _this.threshold;\n if (result === _this.oldResult) return;\n _this.oldResult = result;\n\n _this.callback(result, entry);\n }\n }, this.options.intersection); // Wait for the element to be in document\n\n vnode.context.$nextTick(function () {\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n } // Cancel throttled call\n\n\n if (this.callback && this.callback._clear) {\n this.callback._clear();\n\n this.callback = null;\n }\n }\n }, {\n key: \"threshold\",\n get: function get() {\n return this.options.intersection && this.options.intersection.threshold || 0;\n }\n }]);\n\n return VisibilityState;\n}();\n\nfunction bind(el, _ref2, vnode) {\n var value = _ref2.value;\n if (!value) return;\n\n if (typeof IntersectionObserver === 'undefined') {\n console.warn('[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill');\n } else {\n var state = new VisibilityState(el, value, vnode);\n el._vue_visibilityState = state;\n }\n}\n\nfunction update(el, _ref3, vnode) {\n var value = _ref3.value,\n oldValue = _ref3.oldValue;\n if (deepEqual(value, oldValue)) return;\n var state = el._vue_visibilityState;\n\n if (!value) {\n unbind(el);\n return;\n }\n\n if (state) {\n state.createObserver(value, vnode);\n } else {\n bind(el, {\n value: value\n }, vnode);\n }\n}\n\nfunction unbind(el) {\n var state = el._vue_visibilityState;\n\n if (state) {\n state.destroyObserver();\n delete el._vue_visibilityState;\n }\n}\n\nvar ObserveVisibility = {\n bind: bind,\n update: update,\n unbind: unbind\n};\n\nfunction install(Vue) {\n Vue.directive('observe-visibility', ObserveVisibility);\n /* -- Add more components here -- */\n}\n/* -- Plugin definition & Auto-install -- */\n\n/* You shouldn't have to modify the code below */\n// Plugin\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"0.4.6\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { ObserveVisibility, install };\n","(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Scrollparent = factory();\n }\n}(this, function () {\n var regex = /(auto|scroll)/;\n\n var parents = function (node, ps) {\n if (node.parentNode === null) { return ps; }\n\n return parents(node.parentNode, ps.concat([node]));\n };\n\n var style = function (node, prop) {\n return getComputedStyle(node, null).getPropertyValue(prop);\n };\n\n var overflow = function (node) {\n return style(node, \"overflow\") + style(node, \"overflow-y\") + style(node, \"overflow-x\");\n };\n\n var scroll = function (node) {\n return regex.test(overflow(node));\n };\n\n var scrollParent = function (node) {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return ;\n }\n\n var ps = parents(node.parentNode, []);\n\n for (var i = 0; i < ps.length; i += 1) {\n if (scroll(ps[i])) {\n return ps[i];\n }\n }\n\n return document.scrollingElement || document.documentElement;\n };\n\n return scrollParent;\n}));\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: 'VERSION',\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n"],"names":["itemsLimit","isIE","initCompat","init","ua","window","navigator","userAgent","msie","indexOf","parseInt","substring","rv","edge","getInternetExplorerVersion","ResizeObserver","render","_h","this","$createElement","_self","_c","staticClass","attrs","tabindex","staticRenderFns","_scopeId","name","methods","compareAndNotify","_w","$el","offsetWidth","offsetHeight","$emit","addResizeHandlers","_resizeObject","contentDocument","defaultView","addEventListener","removeResizeHandlers","onload","removeEventListener","mounted","_this","$nextTick","object","document","createElement","setAttribute","type","appendChild","data","beforeDestroy","plugin","version","install","Vue","component","GlobalVue","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_toConsumableArray","arr","Array","isArray","arr2","_arrayWithoutHoles","iter","toString","call","from","_iterableToArray","TypeError","_nonIterableSpread","global","use","VisibilityState","el","options","vnode","instance","Constructor","_classCallCheck","observer","frozen","createObserver","protoProps","staticProps","value","destroyObserver","callback","result","entry","once","throttle","_leading","throttleOptions","leading","delay","timeout","lastState","currentArgs","arguments","undefined","throttled","state","_len","args","_key","apply","concat","clearTimeout","setTimeout","_clear","oldResult","IntersectionObserver","entries","intersectingEntry","find","e","isIntersecting","intersectionRatio","threshold","intersection","context","observe","disconnect","get","bind","_ref2","console","warn","_vue_visibilityState","unbind","ObserveVisibility","update","_ref3","deepEqual","val1","val2","oldValue","directive","root","factory","regex","parents","node","ps","parentNode","style","prop","getComputedStyle","getPropertyValue","scroll","test","overflow","HTMLElement","SVGElement","scrollingElement","documentElement","module","exports","Scrollparent","items","required","keyField","String","default","direction","validator","includes","simpleArray","supportsPassive","opts","normalizeComponent","template","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","_compiled","functional","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","finalOptions","assign","installComponents","componentsPrefix","config","prefix","RecycleScroller","DynamicScroller","DynamicScrollerItem","registerComponents","idProp","vm","item","id","store","idState","created","$_id","$_getId","$watch","handler","_this2","immediate","$_updateIdState","beforeUpdate","$_idStateInit","$set","Error"],"mappings":"2HAAe,CACbA,WAAY,q3DCyBd,IAAIC,OAAO,EAEX,SAASC,IACHA,EAAWC,OACfD,EAAWC,MAAO,EAClBF,GAAyC,IA/B3C,WACC,IAAIG,EAAKC,OAAOC,UAAUC,UAEtBC,EAAOJ,EAAGK,QAAQ,SACtB,GAAID,EAAO,EAEV,OAAOE,SAASN,EAAGO,UAAUH,EAAO,EAAGJ,EAAGK,QAAQ,IAAKD,IAAQ,IAIhE,GADcJ,EAAGK,QAAQ,YACX,EAAG,CAEhB,IAAIG,EAAKR,EAAGK,QAAQ,OACpB,OAAOC,SAASN,EAAGO,UAAUC,EAAK,EAAGR,EAAGK,QAAQ,IAAKG,IAAM,IAG5D,IAAIC,EAAOT,EAAGK,QAAQ,SACtB,OAAII,EAAO,EAEHH,SAASN,EAAGO,UAAUE,EAAO,EAAGT,EAAGK,QAAQ,IAAKI,IAAQ,KAIxD,EAQAC,IAIT,IAAIC,EAAiB,CAAEC,OAAQ,WAC7B,IAAmBC,EAATC,KAAkBC,eAA2C,OAA7DD,KAA8CE,MAAMC,IAAMJ,GAAa,MAAO,CAAEK,YAAa,kBAAmBC,MAAO,CAAEC,SAAY,SAC7IC,gBAAiB,GAAIC,SAAU,kBAClCC,KAAM,kBAENC,QAAS,CACRC,iBAAkB,WACbX,KAAKY,KAAOZ,KAAKa,IAAIC,aAAed,KAAKD,KAAOC,KAAKa,IAAIE,eAC5Df,KAAKY,GAAKZ,KAAKa,IAAIC,YACnBd,KAAKD,GAAKC,KAAKa,IAAIE,aACnBf,KAAKgB,MAAM,YAGbC,kBAAmB,WAClBjB,KAAKkB,cAAcC,gBAAgBC,YAAYC,iBAAiB,SAAUrB,KAAKW,kBAC/EX,KAAKW,oBAENW,qBAAsB,WACjBtB,KAAKkB,eAAiBlB,KAAKkB,cAAcK,UACvCxC,GAAQiB,KAAKkB,cAAcC,iBAC/BnB,KAAKkB,cAAcC,gBAAgBC,YAAYI,oBAAoB,SAAUxB,KAAKW,yBAE5EX,KAAKkB,cAAcK,UAK7BE,QAAS,WACR,IAAIC,EAAQ1B,KAEZhB,IACAgB,KAAK2B,WAAU,WACdD,EAAMd,GAAKc,EAAMb,IAAIC,YACrBY,EAAM3B,GAAK2B,EAAMb,IAAIE,gBAEtB,IAAIa,EAASC,SAASC,cAAc,UACpC9B,KAAKkB,cAAgBU,EACrBA,EAAOG,aAAa,cAAe,QACnCH,EAAOG,aAAa,YAAa,GACjCH,EAAOL,OAASvB,KAAKiB,kBACrBW,EAAOI,KAAO,YACVjD,GACHiB,KAAKa,IAAIoB,YAAYL,GAEtBA,EAAOM,KAAO,cACTnD,GACJiB,KAAKa,IAAIoB,YAAYL,IAGvBO,cAAe,WACdnC,KAAKsB,yBAWP,IAAIc,EAAS,CAEZC,QAAS,QACTC,QATD,SAAiBC,GAChBA,EAAIC,UAAU,kBAAmB3C,GACjC0C,EAAIC,UAAU,iBAAkB3C,KAW7B4C,EAAY,KCvGhB,SAASC,EAAQC,GAWf,OATED,EADoB,mBAAXE,QAAoD,iBAApBA,OAAOC,SACtC,SAAUF,GAClB,cAAcA,GAGN,SAAUA,GAClB,OAAOA,GAAyB,mBAAXC,QAAyBD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOG,UAAY,gBAAkBJ,IAI9GA,GASjB,SAASK,EAAkBC,EAAQC,GACjC,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CACrC,IAAIE,EAAaH,EAAMC,GACvBE,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDC,OAAOC,eAAeT,EAAQI,EAAWM,IAAKN,IAUlD,SAASO,EAAmBC,GAC1B,OAGF,SAA4BA,GAC1B,GAAIC,MAAMC,QAAQF,GAAM,CACtB,IAAK,IAAIV,EAAI,EAAGa,EAAO,IAAIF,MAAMD,EAAIT,QAASD,EAAIU,EAAIT,OAAQD,IAAKa,EAAKb,GAAKU,EAAIV,GAEjF,OAAOa,GAPFC,CAAmBJ,IAW5B,SAA0BK,GACxB,GAAItB,OAAOC,YAAYY,OAAOS,IAAkD,uBAAzCT,OAAOV,UAAUoB,SAASC,KAAKF,GAAgC,OAAOJ,MAAMO,KAAKH,GAZtFI,CAAiBT,IAerD,WACE,MAAM,IAAIU,UAAU,mDAhBuCC,GDmEvC,oBAAXrF,OACVsD,EAAYtD,OAAOoD,IACS,oBAAXkC,SACjBhC,EAAYgC,OAAOlC,KAEhBE,GACHA,EAAUiC,IAAItC,GCef,IAAIuC,EAEJ,WACE,SAASA,EAAgBC,EAAIC,EAASC,IAlHxC,SAAyBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIT,UAAU,qCAiHpBU,CAAgBjF,KAAM2E,GAEtB3E,KAAK4E,GAAKA,EACV5E,KAAKkF,SAAW,KAChBlF,KAAKmF,QAAS,EACdnF,KAAKoF,eAAeP,EAASC,GAxGjC,IAAsBE,EAAaK,EAAYC,EAiM7C,OAjMoBN,EA2GPL,GA3GoBU,EA2GH,CAAC,CAC7B1B,IAAK,iBACL4B,MAAO,SAAwBV,EAASC,GACtC,IAAIpD,EAAQ1B,KAMZ,GAJIA,KAAKkF,UACPlF,KAAKwF,mBAGHxF,KAAKmF,OAAT,CA1FN,IAAwBI,EAwGlB,GAbAvF,KAAK6E,QAxFY,mBAHCU,EA2FYV,GAtFtB,CACRY,SAAUF,GAIFA,EAmFRvF,KAAKyF,SAAW,SAAUC,EAAQC,GAChCjE,EAAMmD,QAAQY,SAASC,EAAQC,GAE3BD,GAAUhE,EAAMmD,QAAQe,OAC1BlE,EAAMyD,QAAS,EAEfzD,EAAM8D,oBAKNxF,KAAKyF,UAAYzF,KAAK6E,QAAQgB,SAAU,CAC1C,IACIC,GADO9F,KAAK6E,QAAQkB,iBAAmB,IACvBC,QAEpBhG,KAAKyF,SA7Fb,SAAkBA,EAAUQ,GAC1B,IACIC,EACAC,EACAC,EAHAvB,EAAUwB,UAAUjD,OAAS,QAAsBkD,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAK9EE,EAAY,SAAmBC,GACjC,IAAK,IAAIC,EAAOJ,UAAUjD,OAAQsD,EAAO,IAAI5C,MAAM2C,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAClGD,EAAKC,EAAO,GAAKN,UAAUM,GAI7B,GADAP,EAAcM,GACVR,GAAWM,IAAUL,EAAzB,CACA,IAAIH,EAAUnB,EAAQmB,QAEC,mBAAZA,IACTA,EAAUA,EAAQQ,EAAOL,IAGrBD,GAAWM,IAAUL,IAAcH,GACvCP,EAASmB,WAAM,EAAQ,CAACJ,GAAOK,OAAOjD,EAAmBwC,KAG3DD,EAAYK,EACZM,aAAaZ,GACbA,EAAUa,YAAW,WACnBtB,EAASmB,WAAM,EAAQ,CAACJ,GAAOK,OAAOjD,EAAmBwC,KACzDF,EAAU,IACTD,KAQL,OALAM,EAAUS,OAAS,WACjBF,aAAaZ,GACbA,EAAU,MAGLK,EAyDeV,CAAS7F,KAAKyF,SAAUzF,KAAK6E,QAAQgB,SAAU,CAC7DG,QAAS,SAAiBQ,GACxB,MAAoB,SAAbV,GAAoC,YAAbA,GAA0BU,GAAsB,WAAbV,IAA0BU,KAKjGxG,KAAKiH,eAAYX,EACjBtG,KAAKkF,SAAW,IAAIgC,sBAAqB,SAAUC,GACjD,IAAIxB,EAAQwB,EAAQ,GAEpB,GAAIA,EAAQ/D,OAAS,EAAG,CACtB,IAAIgE,EAAoBD,EAAQE,MAAK,SAAUC,GAC7C,OAAOA,EAAEC,kBAGPH,IACFzB,EAAQyB,GAIZ,GAAI1F,EAAM+D,SAAU,CAElB,IAAIC,EAASC,EAAM4B,gBAAkB5B,EAAM6B,mBAAqB9F,EAAM+F,UACtE,GAAI/B,IAAWhE,EAAMuF,UAAW,OAChCvF,EAAMuF,UAAYvB,EAElBhE,EAAM+D,SAASC,EAAQC,MAExB3F,KAAK6E,QAAQ6C,cAEhB5C,EAAM6C,QAAQhG,WAAU,WAClBD,EAAMwD,UACRxD,EAAMwD,SAAS0C,QAAQlG,EAAMkD,UAIlC,CACDjB,IAAK,kBACL4B,MAAO,WACDvF,KAAKkF,WACPlF,KAAKkF,SAAS2C,aACd7H,KAAKkF,SAAW,MAIdlF,KAAKyF,UAAYzF,KAAKyF,SAASuB,SACjChH,KAAKyF,SAASuB,SAEdhH,KAAKyF,SAAW,QAGnB,CACD9B,IAAK,YACLmE,IAAK,WACH,OAAO9H,KAAK6E,QAAQ6C,cAAgB1H,KAAK6E,QAAQ6C,aAAaD,WAAa,OA5L/DzE,EAAkBgC,EAAYjC,UAAWsC,GACrDC,GAAatC,EAAkBgC,EAAaM,GA+LzCX,EAhGT,GAmGA,SAASoD,EAAKnD,EAAIoD,EAAOlD,GACvB,IAAIS,EAAQyC,EAAMzC,MAClB,GAAKA,EAEL,GAAoC,oBAAzB2B,qBACTe,QAAQC,KAAK,0LACR,CACL,IAAI1B,EAAQ,IAAI7B,EAAgBC,EAAIW,EAAOT,GAC3CF,EAAGuD,qBAAuB3B,GAwB9B,SAAS4B,EAAOxD,GACd,IAAI4B,EAAQ5B,EAAGuD,qBAEX3B,IACFA,EAAMhB,yBACCZ,EAAGuD,sBAId,IAAIE,EAAoB,CACtBN,KAAMA,EACNO,OA/BF,SAAgB1D,EAAI2D,EAAOzD,GACzB,IAAIS,EAAQgD,EAAMhD,MAElB,IApIF,SAASiD,EAAUC,EAAMC,GACvB,GAAID,IAASC,EAAM,OAAO,EAE1B,GAAsB,WAAlBhG,EAAQ+F,GAAoB,CAC9B,IAAK,IAAI9E,KAAO8E,EACd,IAAKD,EAAUC,EAAK9E,GAAM+E,EAAK/E,IAC7B,OAAO,EAIX,OAAO,EAGT,OAAO,EAuHH6E,CAAUjD,EADCgD,EAAMI,UACrB,CACA,IAAInC,EAAQ5B,EAAGuD,qBAEV5C,EAKDiB,EACFA,EAAMpB,eAAeG,EAAOT,GAE5BiD,EAAKnD,EAAI,CACPW,MAAOA,GACNT,GATHsD,EAAOxD,KAyBTwD,OAAQA,GAYV,IAAIhG,EAAS,CAEXC,QAAS,QACTC,QAZF,SAAiBC,GACfA,EAAIqG,UAAU,qBAAsBP,KAclC5F,EAAY,KAEM,oBAAXtD,OACTsD,EAAYtD,OAAOoD,IACQ,oBAAXkC,SAChBhC,EAAYgC,OAAOlC,KAGjBE,GACFA,EAAUiC,IAAItC,uOCzSf,IAAUyG,EAAMC,EAAND,EAQT7I,EARe8I,EAQT,WACN,IAAIC,EAAQ,gBAERC,EAAU,SAAUC,EAAMC,GAC5B,OAAwB,OAApBD,EAAKE,WAA8BD,EAEhCF,EAAQC,EAAKE,WAAYD,EAAGrC,OAAO,CAACoC,MAGzCG,EAAQ,SAAUH,EAAMI,GAC1B,OAAOC,iBAAiBL,EAAM,MAAMM,iBAAiBF,IAOnDG,EAAS,SAAUP,GACtB,OAAOF,EAAMU,KALC,SAAUR,GACvB,OAAOG,EAAMH,EAAM,YAAcG,EAAMH,EAAM,cAAgBG,EAAMH,EAAM,cAIxDS,CAAST,KAmB5B,OAhBmB,SAAUA,GAC3B,GAAMA,aAAgBU,aAAeV,aAAgBW,WAArD,CAMA,IAFA,IAAIV,EAAKF,EAAQC,EAAKE,WAAY,IAEzBhG,EAAI,EAAGA,EAAI+F,EAAG9F,OAAQD,GAAK,EAClC,GAAIqG,EAAON,EAAG/F,IACZ,OAAO+F,EAAG/F,GAId,OAAOtB,SAASgI,kBAAoBhI,SAASiI,mBAvCNC,EAAOC,QAC9CD,UAAiBjB,IAEjBD,EAAKoB,aAAenB,OCNX5F,EAAQ,CACnBgH,MAAO,CACLlI,KAAM8B,MACNqG,UAAU,GAGZC,SAAU,CACRpI,KAAMqI,OACNC,QAAS,MAGXC,UAAW,CACTvI,KAAMqI,OACNC,QAAS,WACTE,UAAW,SAACjF,SAAU,CAAC,WAAY,cAAckF,SAASlF,MAIvD,SAASmF,WACP1K,KAAKkK,MAAM9G,QAAmC,WAAzBV,EAAO1C,KAAKkK,MAAM,ICnBzC,IAAIS,GAAkB,EAE7B,GAAsB,oBAAXxL,OAAwB,CACjCwL,GAAkB,UAEZC,EAAOnH,OAAOC,eAAe,GAAI,UAAW,CAC9CoE,eACE6C,GAAkB,KAGtBxL,OAAOkC,iBAAiB,OAAQ,KAAMuJ,GACtC,MAAOtD,KCmDX,QC9DA,SAASuD,EAAmBC,EAAU1B,EAAO2B,EAAQC,EAASC,EAAsBC,EAAoCC,EAAYC,EAAgBC,EAAmBC,GACzI,kBAAfH,IACPE,EAAoBD,EACpBA,EAAiBD,EACjBA,GAAa,GAGjB,MAAMtG,EAA4B,mBAAXkG,EAAwBA,EAAOlG,QAAUkG,EAehE,IAAIQ,EAmCJ,GAhDIT,GAAYA,EAAShL,SACrB+E,EAAQ/E,OAASgL,EAAShL,OAC1B+E,EAAQtE,gBAAkBuK,EAASvK,gBACnCsE,EAAQ2G,WAAY,EAEhBP,IACApG,EAAQ4G,YAAa,IAIzBT,IACAnG,EAAQrE,SAAWwK,GAGnBE,GAEAK,EAAO,SAAU5D,IAEbA,EACIA,GACK3H,KAAK0L,QAAU1L,KAAK0L,OAAOC,YAC3B3L,KAAK4L,QAAU5L,KAAK4L,OAAOF,QAAU1L,KAAK4L,OAAOF,OAAOC,aAElB,oBAAxBE,sBACnBlE,EAAUkE,qBAGVzC,GACAA,EAAMhF,KAAKpE,KAAMqL,EAAkB1D,IAGnCA,GAAWA,EAAQmE,uBACnBnE,EAAQmE,sBAAsBC,IAAIb,IAK1CrG,EAAQmH,aAAeT,GAElBnC,IACLmC,EAAOJ,EACD,SAAUxD,GACRyB,EAAMhF,KAAKpE,KAAMsL,EAAqB3D,EAAS3H,KAAKiM,MAAMC,SAASC,cAErE,SAAUxE,GACRyB,EAAMhF,KAAKpE,KAAMoL,EAAezD,MAGxC4D,EACA,GAAI1G,EAAQ4G,WAAY,CAEpB,MAAMW,EAAiBvH,EAAQ/E,OAC/B+E,EAAQ/E,OAAS,SAAkCuM,EAAG1E,GAElD,OADA4D,EAAKnH,KAAKuD,GACHyE,EAAeC,EAAG1E,QAG5B,CAED,MAAM2E,EAAWzH,EAAQ0H,aACzB1H,EAAQ0H,aAAeD,EAAW,GAAGzF,OAAOyF,EAAUf,GAAQ,CAACA,GAGvE,OAAOR,EDtEX,0vPEAA,imGCAA,2/GCqBA,IAAM3I,EAAS,CAEbC,QAAS,UACTC,iBAASC,EAAKsC,OACN2H,EAAe/I,OAAOgJ,OAAO,GAAI,CACrCC,mBAAmB,EACnBC,iBAAkB,IACjB9H,OAEE,IAAMlB,KAAO6I,OACiB,IAAtBA,EAAa7I,KACtBiJ,EAAOjJ,GAAO6I,EAAa7I,IAI3B6I,EAAaE,mBAxBrB,SAA6BnK,EAAKsK,GAChCtK,EAAIC,oBAAaqK,sBAA0BC,GAC3CvK,EAAIC,oBAAaqK,qBAAyBC,GAC1CvK,EAAIC,oBAAaqK,sBAA0BE,GAC3CxK,EAAIC,oBAAaqK,qBAAyBE,GAC1CxK,EAAIC,oBAAaqK,2BAA+BG,GAChDzK,EAAIC,oBAAaqK,yBAA6BG,GAmB1CC,CAAmB1K,EAAKiK,EAAaG,oBAQvClK,EAAY,WACM,oBAAXtD,OACTsD,EAAYtD,OAAOoD,IACQ,oBAAXkC,SAChBhC,EAAYgC,OAAOlC,KAEjBE,GACFA,EAAUiC,IAAItC,yDCpDD,wEAEX,OADF8K,OAAAA,aAAS,SAAAC,UAAMA,EAAGC,KAAKC,MAEjBC,EAAQ,GACRH,EAAK,IAAI5K,EAAI,CACjBL,sBACS,CACLoL,MAAAA,YAMC,CACLpL,sBACS,CACLqL,QAAS,OAIbC,mCACOC,KAAO,UAELC,QADe,mBAAXR,EACM,kBAAMA,EAAO9I,KAAK1C,EAAMA,IAExB,kBAAMA,EAAKwL,SAEvBS,OAAO3N,KAAK0N,QAAS,CACxBE,iBAASrI,mBACF5D,WAAU,WACbkM,EAAKJ,KAAOlI,MAGhBuI,WAAW,SAERC,mBAGPC,6BACOD,mBAGPrN,QAAS,CAKPuN,uBAAeZ,OACPvE,EAAU9I,KAAKkM,SAASqB,WACP,mBAAZzE,EAAwB,KAC3B5G,EAAO4G,EAAQ1E,KAAKpE,KAAMA,aAChCmN,EAAGe,KAAKZ,EAAOD,EAAInL,QACduL,KAAOJ,EACLnL,QAED,IAAIiM,MAAM,wEAOpBJ,+BACQV,EAAKrN,KAAK0N,UACN,MAANL,GACFpF,QAAQC,qDAA8CgF,SAEpDG,IAAOrN,KAAKyN,OACTH,EAAMD,SACJY,cAAcZ,QAEhBE,QAAUD,EAAMD"} \ No newline at end of file diff --git a/dist/vue-virtual-scroller.umd.js b/dist/vue-virtual-scroller.umd.js index 5ecb83b6..796d0c52 100644 --- a/dist/vue-virtual-scroller.umd.js +++ b/dist/vue-virtual-scroller.umd.js @@ -1340,7 +1340,6 @@ { key: view.nr.id, staticClass: "vue-recycle-scroller__item-view", - class: { hover: _vm.hoverKey === view.nr.key }, style: _vm.ready ? { transform: @@ -1353,10 +1352,10 @@ : null, on: { mouseenter: function($event) { - _vm.hoverKey = view.nr.key; + return $event.target.classList.add("hover") }, mouseleave: function($event) { - _vm.hoverKey = null; + return $event.target.classList.remove("hover") } } }, @@ -2038,7 +2037,7 @@ var plugin$2 = { // eslint-disable-next-line no-undef - version: "1.1.0", + version: '"1.1.1"', install: function install(Vue, options) { var finalOptions = Object.assign({}, { installComponents: true, diff --git a/dist/vue-virtual-scroller.umd.js.map b/dist/vue-virtual-scroller.umd.js.map index 1aa4282b..2374d03e 100644 --- a/dist/vue-virtual-scroller.umd.js.map +++ b/dist/vue-virtual-scroller.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"vue-virtual-scroller.umd.js","sources":["../src/config.js","../node_modules/vue-resize/dist/vue-resize.esm.js","../node_modules/vue-observe-visibility/dist/vue-observe-visibility.esm.js","../node_modules/scrollparent/scrollparent.js","../src/components/common.js","../src/utils.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/mixins/IdState.js","../src/index.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","function getInternetExplorerVersion() {\n\tvar ua = window.navigator.userAgent;\n\n\tvar msie = ua.indexOf('MSIE ');\n\tif (msie > 0) {\n\t\t// IE 10 or older => return version number\n\t\treturn parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n\t}\n\n\tvar trident = ua.indexOf('Trident/');\n\tif (trident > 0) {\n\t\t// IE 11 => return version number\n\t\tvar rv = ua.indexOf('rv:');\n\t\treturn parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n\t}\n\n\tvar edge = ua.indexOf('Edge/');\n\tif (edge > 0) {\n\t\t// Edge (IE 12+) => return version number\n\t\treturn parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n\t}\n\n\t// other browser\n\treturn -1;\n}\n\nvar isIE = void 0;\n\nfunction initCompat() {\n\tif (!initCompat.init) {\n\t\tinitCompat.init = true;\n\t\tisIE = getInternetExplorerVersion() !== -1;\n\t}\n}\n\nvar ResizeObserver = { render: function render() {\n\t\tvar _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: \"resize-observer\", attrs: { \"tabindex\": \"-1\" } });\n\t}, staticRenderFns: [], _scopeId: 'data-v-b329ee4c',\n\tname: 'resize-observer',\n\n\tmethods: {\n\t\tcompareAndNotify: function compareAndNotify() {\n\t\t\tif (this._w !== this.$el.offsetWidth || this._h !== this.$el.offsetHeight) {\n\t\t\t\tthis._w = this.$el.offsetWidth;\n\t\t\t\tthis._h = this.$el.offsetHeight;\n\t\t\t\tthis.$emit('notify');\n\t\t\t}\n\t\t},\n\t\taddResizeHandlers: function addResizeHandlers() {\n\t\t\tthis._resizeObject.contentDocument.defaultView.addEventListener('resize', this.compareAndNotify);\n\t\t\tthis.compareAndNotify();\n\t\t},\n\t\tremoveResizeHandlers: function removeResizeHandlers() {\n\t\t\tif (this._resizeObject && this._resizeObject.onload) {\n\t\t\t\tif (!isIE && this._resizeObject.contentDocument) {\n\t\t\t\t\tthis._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.compareAndNotify);\n\t\t\t\t}\n\t\t\t\tdelete this._resizeObject.onload;\n\t\t\t}\n\t\t}\n\t},\n\n\tmounted: function mounted() {\n\t\tvar _this = this;\n\n\t\tinitCompat();\n\t\tthis.$nextTick(function () {\n\t\t\t_this._w = _this.$el.offsetWidth;\n\t\t\t_this._h = _this.$el.offsetHeight;\n\t\t});\n\t\tvar object = document.createElement('object');\n\t\tthis._resizeObject = object;\n\t\tobject.setAttribute('aria-hidden', 'true');\n\t\tobject.setAttribute('tabindex', -1);\n\t\tobject.onload = this.addResizeHandlers;\n\t\tobject.type = 'text/html';\n\t\tif (isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t\tobject.data = 'about:blank';\n\t\tif (!isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t},\n\tbeforeDestroy: function beforeDestroy() {\n\t\tthis.removeResizeHandlers();\n\t}\n};\n\n// Install the components\nfunction install(Vue) {\n\tVue.component('resize-observer', ResizeObserver);\n\tVue.component('ResizeObserver', ResizeObserver);\n}\n\n// Plugin\nvar plugin = {\n\t// eslint-disable-next-line no-undef\n\tversion: \"0.4.5\",\n\tinstall: install\n};\n\n// Auto-install\nvar GlobalVue = null;\nif (typeof window !== 'undefined') {\n\tGlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n\tGlobalVue = global.Vue;\n}\nif (GlobalVue) {\n\tGlobalVue.use(plugin);\n}\n\nexport { install, ResizeObserver };\nexport default plugin;\n","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction processOptions(value) {\n var options;\n\n if (typeof value === 'function') {\n // Simple options (callback-only)\n options = {\n callback: value\n };\n } else {\n // Options object\n options = value;\n }\n\n return options;\n}\nfunction throttle(callback, delay) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var timeout;\n var lastState;\n var currentArgs;\n\n var throttled = function throttled(state) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n currentArgs = args;\n if (timeout && state === lastState) return;\n var leading = options.leading;\n\n if (typeof leading === 'function') {\n leading = leading(state, lastState);\n }\n\n if ((!timeout || state !== lastState) && leading) {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n }\n\n lastState = state;\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n timeout = 0;\n }, delay);\n };\n\n throttled._clear = function () {\n clearTimeout(timeout);\n timeout = null;\n };\n\n return throttled;\n}\nfunction deepEqual(val1, val2) {\n if (val1 === val2) return true;\n\n if (_typeof(val1) === 'object') {\n for (var key in val1) {\n if (!deepEqual(val1[key], val2[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\nvar VisibilityState =\n/*#__PURE__*/\nfunction () {\n function VisibilityState(el, options, vnode) {\n _classCallCheck(this, VisibilityState);\n\n this.el = el;\n this.observer = null;\n this.frozen = false;\n this.createObserver(options, vnode);\n }\n\n _createClass(VisibilityState, [{\n key: \"createObserver\",\n value: function createObserver(options, vnode) {\n var _this = this;\n\n if (this.observer) {\n this.destroyObserver();\n }\n\n if (this.frozen) return;\n this.options = processOptions(options);\n\n this.callback = function (result, entry) {\n _this.options.callback(result, entry);\n\n if (result && _this.options.once) {\n _this.frozen = true;\n\n _this.destroyObserver();\n }\n }; // Throttle\n\n\n if (this.callback && this.options.throttle) {\n var _ref = this.options.throttleOptions || {},\n _leading = _ref.leading;\n\n this.callback = throttle(this.callback, this.options.throttle, {\n leading: function leading(state) {\n return _leading === 'both' || _leading === 'visible' && state || _leading === 'hidden' && !state;\n }\n });\n }\n\n this.oldResult = undefined;\n this.observer = new IntersectionObserver(function (entries) {\n var entry = entries[0];\n\n if (entries.length > 1) {\n var intersectingEntry = entries.find(function (e) {\n return e.isIntersecting;\n });\n\n if (intersectingEntry) {\n entry = intersectingEntry;\n }\n }\n\n if (_this.callback) {\n // Use isIntersecting if possible because browsers can report isIntersecting as true, but intersectionRatio as 0, when something very slowly enters the viewport.\n var result = entry.isIntersecting && entry.intersectionRatio >= _this.threshold;\n if (result === _this.oldResult) return;\n _this.oldResult = result;\n\n _this.callback(result, entry);\n }\n }, this.options.intersection); // Wait for the element to be in document\n\n vnode.context.$nextTick(function () {\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n } // Cancel throttled call\n\n\n if (this.callback && this.callback._clear) {\n this.callback._clear();\n\n this.callback = null;\n }\n }\n }, {\n key: \"threshold\",\n get: function get() {\n return this.options.intersection && this.options.intersection.threshold || 0;\n }\n }]);\n\n return VisibilityState;\n}();\n\nfunction bind(el, _ref2, vnode) {\n var value = _ref2.value;\n if (!value) return;\n\n if (typeof IntersectionObserver === 'undefined') {\n console.warn('[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill');\n } else {\n var state = new VisibilityState(el, value, vnode);\n el._vue_visibilityState = state;\n }\n}\n\nfunction update(el, _ref3, vnode) {\n var value = _ref3.value,\n oldValue = _ref3.oldValue;\n if (deepEqual(value, oldValue)) return;\n var state = el._vue_visibilityState;\n\n if (!value) {\n unbind(el);\n return;\n }\n\n if (state) {\n state.createObserver(value, vnode);\n } else {\n bind(el, {\n value: value\n }, vnode);\n }\n}\n\nfunction unbind(el) {\n var state = el._vue_visibilityState;\n\n if (state) {\n state.destroyObserver();\n delete el._vue_visibilityState;\n }\n}\n\nvar ObserveVisibility = {\n bind: bind,\n update: update,\n unbind: unbind\n};\n\nfunction install(Vue) {\n Vue.directive('observe-visibility', ObserveVisibility);\n /* -- Add more components here -- */\n}\n/* -- Plugin definition & Auto-install -- */\n\n/* You shouldn't have to modify the code below */\n// Plugin\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"0.4.6\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { ObserveVisibility, install };\n","(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Scrollparent = factory();\n }\n}(this, function () {\n var regex = /(auto|scroll)/;\n\n var parents = function (node, ps) {\n if (node.parentNode === null) { return ps; }\n\n return parents(node.parentNode, ps.concat([node]));\n };\n\n var style = function (node, prop) {\n return getComputedStyle(node, null).getPropertyValue(prop);\n };\n\n var overflow = function (node) {\n return style(node, \"overflow\") + style(node, \"overflow-y\") + style(node, \"overflow-x\");\n };\n\n var scroll = function (node) {\n return regex.test(overflow(node));\n };\n\n var scrollParent = function (node) {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return ;\n }\n\n var ps = parents(node.parentNode, []);\n\n for (var i = 0; i < ps.length; i += 1) {\n if (scroll(ps[i])) {\n return ps[i];\n }\n }\n\n return document.scrollingElement || document.documentElement;\n };\n\n return scrollParent;\n}));\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: VERSION,\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n"],"names":["itemsLimit","ResizeObserver","_typeof","install","plugin","GlobalVue","this","props","items","type","Array","required","keyField","String","default","direction","validator","value","includes","simpleArray","length","supportsPassive","window","opts","Object","defineProperty","get","addEventListener","e","idProp","vm","item","id","store","Vue","data","idState","created","$_id","$_getId","call","$watch","handler","$nextTick","immediate","$_updateIdState","beforeUpdate","methods","$_idStateInit","factory","$options","$set","Error","console","warn","registerComponents","prefix","component","RecycleScroller","DynamicScroller","DynamicScrollerItem","version","VERSION","options","finalOptions","assign","installComponents","componentsPrefix","key","config","global","use"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"vue-virtual-scroller.umd.js","sources":["../src/config.js","../node_modules/vue-resize/dist/vue-resize.esm.js","../node_modules/vue-observe-visibility/dist/vue-observe-visibility.esm.js","../node_modules/scrollparent/scrollparent.js","../src/components/common.js","../src/utils.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/mixins/IdState.js","../src/index.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","function getInternetExplorerVersion() {\n\tvar ua = window.navigator.userAgent;\n\n\tvar msie = ua.indexOf('MSIE ');\n\tif (msie > 0) {\n\t\t// IE 10 or older => return version number\n\t\treturn parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n\t}\n\n\tvar trident = ua.indexOf('Trident/');\n\tif (trident > 0) {\n\t\t// IE 11 => return version number\n\t\tvar rv = ua.indexOf('rv:');\n\t\treturn parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n\t}\n\n\tvar edge = ua.indexOf('Edge/');\n\tif (edge > 0) {\n\t\t// Edge (IE 12+) => return version number\n\t\treturn parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n\t}\n\n\t// other browser\n\treturn -1;\n}\n\nvar isIE = void 0;\n\nfunction initCompat() {\n\tif (!initCompat.init) {\n\t\tinitCompat.init = true;\n\t\tisIE = getInternetExplorerVersion() !== -1;\n\t}\n}\n\nvar ResizeObserver = { render: function render() {\n\t\tvar _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: \"resize-observer\", attrs: { \"tabindex\": \"-1\" } });\n\t}, staticRenderFns: [], _scopeId: 'data-v-b329ee4c',\n\tname: 'resize-observer',\n\n\tmethods: {\n\t\tcompareAndNotify: function compareAndNotify() {\n\t\t\tif (this._w !== this.$el.offsetWidth || this._h !== this.$el.offsetHeight) {\n\t\t\t\tthis._w = this.$el.offsetWidth;\n\t\t\t\tthis._h = this.$el.offsetHeight;\n\t\t\t\tthis.$emit('notify');\n\t\t\t}\n\t\t},\n\t\taddResizeHandlers: function addResizeHandlers() {\n\t\t\tthis._resizeObject.contentDocument.defaultView.addEventListener('resize', this.compareAndNotify);\n\t\t\tthis.compareAndNotify();\n\t\t},\n\t\tremoveResizeHandlers: function removeResizeHandlers() {\n\t\t\tif (this._resizeObject && this._resizeObject.onload) {\n\t\t\t\tif (!isIE && this._resizeObject.contentDocument) {\n\t\t\t\t\tthis._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.compareAndNotify);\n\t\t\t\t}\n\t\t\t\tdelete this._resizeObject.onload;\n\t\t\t}\n\t\t}\n\t},\n\n\tmounted: function mounted() {\n\t\tvar _this = this;\n\n\t\tinitCompat();\n\t\tthis.$nextTick(function () {\n\t\t\t_this._w = _this.$el.offsetWidth;\n\t\t\t_this._h = _this.$el.offsetHeight;\n\t\t});\n\t\tvar object = document.createElement('object');\n\t\tthis._resizeObject = object;\n\t\tobject.setAttribute('aria-hidden', 'true');\n\t\tobject.setAttribute('tabindex', -1);\n\t\tobject.onload = this.addResizeHandlers;\n\t\tobject.type = 'text/html';\n\t\tif (isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t\tobject.data = 'about:blank';\n\t\tif (!isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t},\n\tbeforeDestroy: function beforeDestroy() {\n\t\tthis.removeResizeHandlers();\n\t}\n};\n\n// Install the components\nfunction install(Vue) {\n\tVue.component('resize-observer', ResizeObserver);\n\tVue.component('ResizeObserver', ResizeObserver);\n}\n\n// Plugin\nvar plugin = {\n\t// eslint-disable-next-line no-undef\n\tversion: \"0.4.5\",\n\tinstall: install\n};\n\n// Auto-install\nvar GlobalVue = null;\nif (typeof window !== 'undefined') {\n\tGlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n\tGlobalVue = global.Vue;\n}\nif (GlobalVue) {\n\tGlobalVue.use(plugin);\n}\n\nexport { install, ResizeObserver };\nexport default plugin;\n","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction processOptions(value) {\n var options;\n\n if (typeof value === 'function') {\n // Simple options (callback-only)\n options = {\n callback: value\n };\n } else {\n // Options object\n options = value;\n }\n\n return options;\n}\nfunction throttle(callback, delay) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var timeout;\n var lastState;\n var currentArgs;\n\n var throttled = function throttled(state) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n currentArgs = args;\n if (timeout && state === lastState) return;\n var leading = options.leading;\n\n if (typeof leading === 'function') {\n leading = leading(state, lastState);\n }\n\n if ((!timeout || state !== lastState) && leading) {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n }\n\n lastState = state;\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n timeout = 0;\n }, delay);\n };\n\n throttled._clear = function () {\n clearTimeout(timeout);\n timeout = null;\n };\n\n return throttled;\n}\nfunction deepEqual(val1, val2) {\n if (val1 === val2) return true;\n\n if (_typeof(val1) === 'object') {\n for (var key in val1) {\n if (!deepEqual(val1[key], val2[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\nvar VisibilityState =\n/*#__PURE__*/\nfunction () {\n function VisibilityState(el, options, vnode) {\n _classCallCheck(this, VisibilityState);\n\n this.el = el;\n this.observer = null;\n this.frozen = false;\n this.createObserver(options, vnode);\n }\n\n _createClass(VisibilityState, [{\n key: \"createObserver\",\n value: function createObserver(options, vnode) {\n var _this = this;\n\n if (this.observer) {\n this.destroyObserver();\n }\n\n if (this.frozen) return;\n this.options = processOptions(options);\n\n this.callback = function (result, entry) {\n _this.options.callback(result, entry);\n\n if (result && _this.options.once) {\n _this.frozen = true;\n\n _this.destroyObserver();\n }\n }; // Throttle\n\n\n if (this.callback && this.options.throttle) {\n var _ref = this.options.throttleOptions || {},\n _leading = _ref.leading;\n\n this.callback = throttle(this.callback, this.options.throttle, {\n leading: function leading(state) {\n return _leading === 'both' || _leading === 'visible' && state || _leading === 'hidden' && !state;\n }\n });\n }\n\n this.oldResult = undefined;\n this.observer = new IntersectionObserver(function (entries) {\n var entry = entries[0];\n\n if (entries.length > 1) {\n var intersectingEntry = entries.find(function (e) {\n return e.isIntersecting;\n });\n\n if (intersectingEntry) {\n entry = intersectingEntry;\n }\n }\n\n if (_this.callback) {\n // Use isIntersecting if possible because browsers can report isIntersecting as true, but intersectionRatio as 0, when something very slowly enters the viewport.\n var result = entry.isIntersecting && entry.intersectionRatio >= _this.threshold;\n if (result === _this.oldResult) return;\n _this.oldResult = result;\n\n _this.callback(result, entry);\n }\n }, this.options.intersection); // Wait for the element to be in document\n\n vnode.context.$nextTick(function () {\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n } // Cancel throttled call\n\n\n if (this.callback && this.callback._clear) {\n this.callback._clear();\n\n this.callback = null;\n }\n }\n }, {\n key: \"threshold\",\n get: function get() {\n return this.options.intersection && this.options.intersection.threshold || 0;\n }\n }]);\n\n return VisibilityState;\n}();\n\nfunction bind(el, _ref2, vnode) {\n var value = _ref2.value;\n if (!value) return;\n\n if (typeof IntersectionObserver === 'undefined') {\n console.warn('[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill');\n } else {\n var state = new VisibilityState(el, value, vnode);\n el._vue_visibilityState = state;\n }\n}\n\nfunction update(el, _ref3, vnode) {\n var value = _ref3.value,\n oldValue = _ref3.oldValue;\n if (deepEqual(value, oldValue)) return;\n var state = el._vue_visibilityState;\n\n if (!value) {\n unbind(el);\n return;\n }\n\n if (state) {\n state.createObserver(value, vnode);\n } else {\n bind(el, {\n value: value\n }, vnode);\n }\n}\n\nfunction unbind(el) {\n var state = el._vue_visibilityState;\n\n if (state) {\n state.destroyObserver();\n delete el._vue_visibilityState;\n }\n}\n\nvar ObserveVisibility = {\n bind: bind,\n update: update,\n unbind: unbind\n};\n\nfunction install(Vue) {\n Vue.directive('observe-visibility', ObserveVisibility);\n /* -- Add more components here -- */\n}\n/* -- Plugin definition & Auto-install -- */\n\n/* You shouldn't have to modify the code below */\n// Plugin\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"0.4.6\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { ObserveVisibility, install };\n","(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Scrollparent = factory();\n }\n}(this, function () {\n var regex = /(auto|scroll)/;\n\n var parents = function (node, ps) {\n if (node.parentNode === null) { return ps; }\n\n return parents(node.parentNode, ps.concat([node]));\n };\n\n var style = function (node, prop) {\n return getComputedStyle(node, null).getPropertyValue(prop);\n };\n\n var overflow = function (node) {\n return style(node, \"overflow\") + style(node, \"overflow-y\") + style(node, \"overflow-x\");\n };\n\n var scroll = function (node) {\n return regex.test(overflow(node));\n };\n\n var scrollParent = function (node) {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return ;\n }\n\n var ps = parents(node.parentNode, []);\n\n for (var i = 0; i < ps.length; i += 1) {\n if (scroll(ps[i])) {\n return ps[i];\n }\n }\n\n return document.scrollingElement || document.documentElement;\n };\n\n return scrollParent;\n}));\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: 'VERSION',\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n"],"names":["itemsLimit","ResizeObserver","_typeof","install","plugin","GlobalVue","this","props","items","type","Array","required","keyField","String","default","direction","validator","value","includes","simpleArray","length","supportsPassive","window","opts","Object","defineProperty","get","addEventListener","e","idProp","vm","item","id","store","Vue","data","idState","created","$_id","$_getId","call","$watch","handler","$nextTick","immediate","$_updateIdState","beforeUpdate","methods","$_idStateInit","factory","$options","$set","Error","console","warn","registerComponents","prefix","component","RecycleScroller","DynamicScroller","DynamicScrollerItem","version","options","finalOptions","assign","installComponents","componentsPrefix","key","config","global","use"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index c99b612f..676ad47e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@startinfinity/vue-virtual-scroller", "description": "Smooth scrolling for any amount of data", - "version": "1.1.0", + "version": "1.1.1", "author": { "name": "Guillaume Chau", "email": "guillaume.b.chau@gmail.com" From cfca3562b62c091db5276d5c048aa674af2f2486 Mon Sep 17 00:00:00 2001 From: Damir Date: Wed, 29 Apr 2020 19:25:09 +0200 Subject: [PATCH 12/26] refactor: Default group --- src/components/RecycleScroller.vue | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/components/RecycleScroller.vue b/src/components/RecycleScroller.vue index 86324920..0199b536 100644 --- a/src/components/RecycleScroller.vue +++ b/src/components/RecycleScroller.vue @@ -228,11 +228,10 @@ export default { unuseView (view, fake = false) { const unusedViews = this.$_unusedViews const type = view.nr.type - let unusedPool = unusedViews.get(type) - if (!unusedPool) { - unusedPool = [] - unusedViews.set(type, unusedPool) + if (!unusedViews.get(type)) { + unusedViews.set(type, []) } + const unusedPool = unusedViews.get(type) unusedPool.push(view) if (!fake) { view.nr.used = false From 33036a45a3bb18597413a56d93296456910c5544 Mon Sep 17 00:00:00 2001 From: Damir Date: Wed, 29 Apr 2020 19:53:56 +0200 Subject: [PATCH 13/26] refactor: extract calculating start end and total --- src/components/RecycleScroller.vue | 69 +++++++++++++++++++----------- 1 file changed, 43 insertions(+), 26 deletions(-) diff --git a/src/components/RecycleScroller.vue b/src/components/RecycleScroller.vue index 0199b536..d102e497 100644 --- a/src/components/RecycleScroller.vue +++ b/src/components/RecycleScroller.vue @@ -286,8 +286,6 @@ export default { const views = this.$_views const unusedViews = this.$_unusedViews const pool = this.pool - let startIndex, endIndex - let totalSize let scroll @@ -305,13 +303,22 @@ export default { } } - if (!count) { - startIndex = endIndex = totalSize = 0 - } else if (this.$_prerender) { - startIndex = 0 - endIndex = this.prerender - totalSize = null - } else { + function getStartEnd () { + if (!count) { + return { + startIndex: 0, + endIndex: 0, + totalSize: 0, + } + } + if (this.$_prerender) { + return { + startIndex: 0, + endIndex: this.prerender, + totalSize: null, + } + } + this.$_lastUpdateScrollPosition = scroll.originalStart const buffer = this.buffer @@ -338,33 +345,43 @@ export default { i = ~~((a + b) / 2) } while (i !== oldI) i < 0 && (i = 0) - startIndex = i + const startIndex = i // For container style - totalSize = sizes[count - 1].accumulator + const totalSize = sizes[count - 1].accumulator // Searching for endIndex - for (endIndex = i; endIndex < count && sizes[endIndex].accumulator < scroll.end; endIndex++); - if (endIndex === -1) { - endIndex = items.length - 1 - } else { - endIndex++ - // Bounds - endIndex > count && (endIndex = count) + let endIndex + for (endIndex = i; endIndex < count && sizes[endIndex].accumulator < scroll.end; endIndex++) { + if (endIndex === -1) { + endIndex = items.length - 1 + } else { + endIndex++ + // Bounds + endIndex > count && (endIndex = count) + } } - } else { - // Fixed size mode - startIndex = ~~(scroll.start / itemSize) - endIndex = Math.ceil(scroll.end / itemSize) - // Bounds - startIndex < 0 && (startIndex = 0) - endIndex > count && (endIndex = count) + return { + startIndex, + endIndex, + totalSize, + } + } + // Fixed size mode + const startIndex = Math.max(0, ~~(scroll.start / itemSize)) + const endIndex = Math.min(count, Math.ceil(scroll.end / itemSize)) + const totalSize = count * itemSize - totalSize = count * itemSize + return { + startIndex, + endIndex, + totalSize, } } + const { startIndex, endIndex, totalSize } = getStartEnd.call(this) + if (endIndex - startIndex > config.itemsLimit) { this.itemsLimitError() } From c03e5304f6ff9f44fe0de756bb1d2fbab7181576 Mon Sep 17 00:00:00 2001 From: Damir Date: Wed, 29 Apr 2020 21:37:56 +0200 Subject: [PATCH 14/26] fix: Extract getting start and end index --- src/components/RecycleScroller.vue | 164 +++++++++++++++-------------- 1 file changed, 85 insertions(+), 79 deletions(-) diff --git a/src/components/RecycleScroller.vue b/src/components/RecycleScroller.vue index d102e497..9ee76f6b 100644 --- a/src/components/RecycleScroller.vue +++ b/src/components/RecycleScroller.vue @@ -192,6 +192,8 @@ export default { mounted () { this.applyPageMode() + const { totalSize } = this.startEndIndex(this.getScroll()) + this.$refs.wrapper.style[this.direction === 'vertical' ? 'minHeight' : 'minWidth'] = totalSize + 'px' this.$nextTick(() => { // In SSR mode, render the real number of visible items this.$_prerender = false @@ -264,7 +266,7 @@ export default { handleVisibilityChange (isVisible, entry) { if (this.ready) { - if (isVisible || entry.boundingClientRect.width !== 0 || entry.boundingClientRect.height !== 0) { + if (isVisible) { this.$emit('visible') requestAnimationFrame(() => { this.updateVisibleItems(false) @@ -274,8 +276,89 @@ export default { } } }, + startEndIndex (scroll) { + const itemSize = this.itemSize + const items = this.items + const count = items.length + const sizes = this.sizes + if (!count) { + return { + startIndex: 0, + endIndex: 0, + totalSize: 0, + } + } + if (this.$_prerender) { + return { + startIndex: 0, + endIndex: this.prerender, + totalSize: null, + } + } + + this.$_lastUpdateScrollPosition = scroll.originalStart + + const buffer = this.buffer + scroll.start -= buffer + scroll.end += buffer + + // Variable size mode + if (itemSize === null) { + let h + let a = 0 + let b = count - 1 + let i = ~~(count / 2) + let oldI + + // Searching for startIndex + do { + oldI = i + h = sizes[i].accumulator + if (h < scroll.start) { + a = i + } else if (i < count - 1 && sizes[i + 1].accumulator > scroll.start) { + b = i + } + i = ~~((a + b) / 2) + } while (i !== oldI) + i < 0 && (i = 0) + const startIndex = i + + // For container style + const totalSize = sizes[count - 1].accumulator + + // Searching for endIndex + let endIndex + for (endIndex = i; endIndex < count && sizes[endIndex].accumulator < scroll.end; endIndex++) { + if (endIndex === -1) { + endIndex = items.length - 1 + } else { + endIndex++ + // Bounds + endIndex > count && (endIndex = count) + } + } + + return { + startIndex, + endIndex, + totalSize, + } + } + // Fixed size mode + const startIndex = Math.max(0, ~~(scroll.start / itemSize)) + const endIndex = Math.min(count, Math.ceil(scroll.end / itemSize)) + const totalSize = count * itemSize + + return { + startIndex, + endIndex, + totalSize, + } + }, updateVisibleItems (checkItem, checkPositionDiff = false) { + console.log('updating') const itemSize = this.itemSize const minItemSize = this.$_computedMinItemSize const typeField = this.typeField @@ -303,84 +386,7 @@ export default { } } - function getStartEnd () { - if (!count) { - return { - startIndex: 0, - endIndex: 0, - totalSize: 0, - } - } - if (this.$_prerender) { - return { - startIndex: 0, - endIndex: this.prerender, - totalSize: null, - } - } - - this.$_lastUpdateScrollPosition = scroll.originalStart - - const buffer = this.buffer - scroll.start -= buffer - scroll.end += buffer - - // Variable size mode - if (itemSize === null) { - let h - let a = 0 - let b = count - 1 - let i = ~~(count / 2) - let oldI - - // Searching for startIndex - do { - oldI = i - h = sizes[i].accumulator - if (h < scroll.start) { - a = i - } else if (i < count - 1 && sizes[i + 1].accumulator > scroll.start) { - b = i - } - i = ~~((a + b) / 2) - } while (i !== oldI) - i < 0 && (i = 0) - const startIndex = i - - // For container style - const totalSize = sizes[count - 1].accumulator - - // Searching for endIndex - let endIndex - for (endIndex = i; endIndex < count && sizes[endIndex].accumulator < scroll.end; endIndex++) { - if (endIndex === -1) { - endIndex = items.length - 1 - } else { - endIndex++ - // Bounds - endIndex > count && (endIndex = count) - } - } - - return { - startIndex, - endIndex, - totalSize, - } - } - // Fixed size mode - const startIndex = Math.max(0, ~~(scroll.start / itemSize)) - const endIndex = Math.min(count, Math.ceil(scroll.end / itemSize)) - const totalSize = count * itemSize - - return { - startIndex, - endIndex, - totalSize, - } - } - - const { startIndex, endIndex, totalSize } = getStartEnd.call(this) + const { startIndex, endIndex, totalSize } = this.startEndIndex(scroll) if (endIndex - startIndex > config.itemsLimit) { this.itemsLimitError() From 1faa05b82895a2c2bf52635e47f518a996426667 Mon Sep 17 00:00:00 2001 From: Damir Date: Wed, 29 Apr 2020 22:06:37 +0200 Subject: [PATCH 15/26] refactor: Cancel animation frame --- src/components/RecycleScroller.vue | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/src/components/RecycleScroller.vue b/src/components/RecycleScroller.vue index 9ee76f6b..d7aac6c7 100644 --- a/src/components/RecycleScroller.vue +++ b/src/components/RecycleScroller.vue @@ -179,7 +179,7 @@ export default { this.$_endIndex = 0 this.$_views = new Map() this.$_unusedViews = new Map() - this.$_scrollDirty = false + this.$_scrollAnimationRequest = null this.$_lastUpdateScrollPosition = 0 // In SSR mode, we also prerender the same number of item for the first render @@ -248,20 +248,18 @@ export default { }, handleScroll (event) { - if (!this.$_scrollDirty) { - this.$_scrollDirty = true - requestAnimationFrame(() => { - this.$_scrollDirty = false - const { continuous } = this.updateVisibleItems(false, true) - - // It seems sometimes chrome doesn't fire scroll event :/ - // When non continous scrolling is ending, we force a refresh - if (!continuous) { - clearTimeout(this.$_refreshTimout) - this.$_refreshTimout = setTimeout(this.handleScroll, 100) - } - }) - } + cancelAnimationFrame(this.$_scrollAnimationRequest) + this.$_scrollAnimationRequest = requestAnimationFrame(() => { + this.$_scrollAnimationRequest = false + const { continuous } = this.updateVisibleItems(false, true) + + // It seems sometimes chrome doesn't fire scroll event :/ + // When non continous scrolling is ending, we force a refresh + if (!continuous) { + clearTimeout(this.$_refreshTimout) + this.$_refreshTimout = setTimeout(this.handleScroll, 100) + } + }) }, handleVisibilityChange (isVisible, entry) { @@ -358,7 +356,6 @@ export default { } }, updateVisibleItems (checkItem, checkPositionDiff = false) { - console.log('updating') const itemSize = this.itemSize const minItemSize = this.$_computedMinItemSize const typeField = this.typeField @@ -378,6 +375,7 @@ export default { // Skip update if use hasn't scrolled enough if (checkPositionDiff) { const positionDiff = Math.abs(scroll.originalStart - this.$_lastUpdateScrollPosition) + if ((itemSize === null && positionDiff < minItemSize) || positionDiff < itemSize) { return { continuous: true, From 13cd5b2ba6cff5c06c8580f3ff9b8f7d1309934d Mon Sep 17 00:00:00 2001 From: Damir Date: Wed, 29 Apr 2020 22:14:56 +0200 Subject: [PATCH 16/26] fix: Remove resize observer. Change of item number will handle it. --- package.json | 3 +-- src/components/RecycleScroller.vue | 2 -- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/package.json b/package.json index 676ad47e..0d5a87d2 100644 --- a/package.json +++ b/package.json @@ -34,8 +34,7 @@ "homepage": "https://github.com/Akryum/vue-virtual-scroller#readme", "dependencies": { "scrollparent": "^2.0.1", - "vue-observe-visibility": "^0.4.4", - "vue-resize": "^0.4.5" + "vue-observe-visibility": "^0.4.4" }, "peerDependencies": { "vue": "^2.6.11" diff --git a/src/components/RecycleScroller.vue b/src/components/RecycleScroller.vue index d7aac6c7..94050d33 100644 --- a/src/components/RecycleScroller.vue +++ b/src/components/RecycleScroller.vue @@ -47,8 +47,6 @@ name="after" /> - - From 6c0ca4f19ad297fe6d6c3ac32c7f4ceddc030f9b Mon Sep 17 00:00:00 2001 From: Damir Date: Wed, 29 Apr 2020 22:17:07 +0200 Subject: [PATCH 17/26] 1.2.0 --- dist/vue-virtual-scroller.esm.js | 223 ++++++++-------- dist/vue-virtual-scroller.esm.js.map | 2 +- dist/vue-virtual-scroller.min.js | 2 +- dist/vue-virtual-scroller.min.js.map | 2 +- dist/vue-virtual-scroller.umd.js | 365 ++++++++++----------------- dist/vue-virtual-scroller.umd.js.map | 2 +- package.json | 2 +- src/components/RecycleScroller.vue | 5 - 8 files changed, 264 insertions(+), 339 deletions(-) diff --git a/dist/vue-virtual-scroller.esm.js b/dist/vue-virtual-scroller.esm.js index 3ae77055..cdd12ad3 100644 --- a/dist/vue-virtual-scroller.esm.js +++ b/dist/vue-virtual-scroller.esm.js @@ -1,4 +1,3 @@ -import { ResizeObserver as ResizeObserver$1 } from 'vue-resize'; import { ObserveVisibility } from 'vue-observe-visibility'; import ScrollParent from 'scrollparent'; import Vue from 'vue'; @@ -183,9 +182,6 @@ if (typeof window !== 'undefined') { var uid = 0; var script = { name: 'RecycleScroller', - components: { - ResizeObserver: ResizeObserver$1 - }, directives: { ObserveVisibility: ObserveVisibility }, @@ -289,7 +285,7 @@ var script = { this.$_endIndex = 0; this.$_views = new Map(); this.$_unusedViews = new Map(); - this.$_scrollDirty = false; + this.$_scrollAnimationRequest = null; this.$_lastUpdateScrollPosition = 0; // In SSR mode, we also prerender the same number of item for the first render // to avoir mismatch between server and client templates @@ -302,6 +298,11 @@ var script = { var _this = this; this.applyPageMode(); + + var _this$startEndIndex = this.startEndIndex(this.getScroll()), + totalSize = _this$startEndIndex.totalSize; + + this.$refs.wrapper.style[this.direction === 'vertical' ? 'minHeight' : 'minWidth'] = totalSize + 'px'; this.$nextTick(function () { // In SSR mode, render the real number of visible items _this.$_prerender = false; @@ -338,13 +339,12 @@ var script = { var fake = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var unusedViews = this.$_unusedViews; var type = view.nr.type; - var unusedPool = unusedViews.get(type); - if (!unusedPool) { - unusedPool = []; - unusedViews.set(type, unusedPool); + if (!unusedViews.get(type)) { + unusedViews.set(type, []); } + var unusedPool = unusedViews.get(type); unusedPool.push(view); if (!fake) { @@ -360,28 +360,26 @@ var script = { handleScroll: function handleScroll(event) { var _this2 = this; - if (!this.$_scrollDirty) { - this.$_scrollDirty = true; - requestAnimationFrame(function () { - _this2.$_scrollDirty = false; + cancelAnimationFrame(this.$_scrollAnimationRequest); + this.$_scrollAnimationRequest = requestAnimationFrame(function () { + _this2.$_scrollAnimationRequest = false; - var _this2$updateVisibleI = _this2.updateVisibleItems(false, true), - continuous = _this2$updateVisibleI.continuous; // It seems sometimes chrome doesn't fire scroll event :/ - // When non continous scrolling is ending, we force a refresh + var _this2$updateVisibleI = _this2.updateVisibleItems(false, true), + continuous = _this2$updateVisibleI.continuous; // It seems sometimes chrome doesn't fire scroll event :/ + // When non continous scrolling is ending, we force a refresh - if (!continuous) { - clearTimeout(_this2.$_refreshTimout); - _this2.$_refreshTimout = setTimeout(_this2.handleScroll, 100); - } - }); - } + if (!continuous) { + clearTimeout(_this2.$_refreshTimout); + _this2.$_refreshTimout = setTimeout(_this2.handleScroll, 100); + } + }); }, handleVisibilityChange: function handleVisibilityChange(isVisible, entry) { var _this3 = this; if (this.ready) { - if (isVisible || entry.boundingClientRect.width !== 0 || entry.boundingClientRect.height !== 0) { + if (isVisible) { this.$emit('visible'); requestAnimationFrame(function () { _this3.updateVisibleItems(false); @@ -391,6 +389,87 @@ var script = { } } }, + startEndIndex: function startEndIndex(scroll) { + var itemSize = this.itemSize; + var items = this.items; + var count = items.length; + var sizes = this.sizes; + + if (!count) { + return { + startIndex: 0, + endIndex: 0, + totalSize: 0 + }; + } + + if (this.$_prerender) { + return { + startIndex: 0, + endIndex: this.prerender, + totalSize: null + }; + } + + this.$_lastUpdateScrollPosition = scroll.originalStart; + var buffer = this.buffer; + scroll.start -= buffer; + scroll.end += buffer; // Variable size mode + + if (itemSize === null) { + var h; + var a = 0; + var b = count - 1; + var i = ~~(count / 2); + var oldI; // Searching for startIndex + + do { + oldI = i; + h = sizes[i].accumulator; + + if (h < scroll.start) { + a = i; + } else if (i < count - 1 && sizes[i + 1].accumulator > scroll.start) { + b = i; + } + + i = ~~((a + b) / 2); + } while (i !== oldI); + + i < 0 && (i = 0); + var _startIndex = i; // For container style + + var _totalSize = sizes[count - 1].accumulator; // Searching for endIndex + + var _endIndex; + + for (_endIndex = i; _endIndex < count && sizes[_endIndex].accumulator < scroll.end; _endIndex++) { + if (_endIndex === -1) { + _endIndex = items.length - 1; + } else { + _endIndex++; // Bounds + + _endIndex > count && (_endIndex = count); + } + } + + return { + startIndex: _startIndex, + endIndex: _endIndex, + totalSize: _totalSize + }; + } // Fixed size mode + + + var startIndex = Math.max(0, ~~(scroll.start / itemSize)); + var endIndex = Math.min(count, Math.ceil(scroll.end / itemSize)); + var totalSize = count * itemSize; + return { + startIndex: startIndex, + endIndex: endIndex, + totalSize: totalSize + }; + }, updateVisibleItems: function updateVisibleItems(checkItem) { var checkPositionDiff = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var itemSize = this.itemSize; @@ -403,8 +482,6 @@ var script = { var views = this.$_views; var unusedViews = this.$_unusedViews; var pool = this.pool; - var startIndex, endIndex; - var totalSize; var scroll; if (count && !this.$_prerender) { @@ -421,63 +498,10 @@ var script = { } } - if (!count) { - startIndex = endIndex = totalSize = 0; - } else if (this.$_prerender) { - startIndex = 0; - endIndex = this.prerender; - totalSize = null; - } else { - this.$_lastUpdateScrollPosition = scroll.originalStart; - var buffer = this.buffer; - scroll.start -= buffer; - scroll.end += buffer; // Variable size mode - - if (itemSize === null) { - var h; - var a = 0; - var b = count - 1; - var i = ~~(count / 2); - var oldI; // Searching for startIndex - - do { - oldI = i; - h = sizes[i].accumulator; - - if (h < scroll.start) { - a = i; - } else if (i < count - 1 && sizes[i + 1].accumulator > scroll.start) { - b = i; - } - - i = ~~((a + b) / 2); - } while (i !== oldI); - - i < 0 && (i = 0); - startIndex = i; // For container style - - totalSize = sizes[count - 1].accumulator; // Searching for endIndex - - for (endIndex = i; endIndex < count && sizes[endIndex].accumulator < scroll.end; endIndex++) { - } - - if (endIndex === -1) { - endIndex = items.length - 1; - } else { - endIndex++; // Bounds - - endIndex > count && (endIndex = count); - } - } else { - // Fixed size mode - startIndex = ~~(scroll.start / itemSize); - endIndex = Math.ceil(scroll.end / itemSize); // Bounds - - startIndex < 0 && (startIndex = 0); - endIndex > count && (endIndex = count); - totalSize = count * itemSize; - } - } + var _this$startEndIndex2 = this.startEndIndex(scroll), + startIndex = _this$startEndIndex2.startIndex, + endIndex = _this$startEndIndex2.endIndex, + totalSize = _this$startEndIndex2.totalSize; if (endIndex - startIndex > config.itemsLimit) { this.itemsLimitError(); @@ -492,16 +516,16 @@ var script = { views.clear(); unusedViews.clear(); - for (var _i = 0, l = pool.length; _i < l; _i++) { - view = pool[_i]; + for (var i = 0, l = pool.length; i < l; i++) { + view = pool[i]; this.unuseView(view); } } this.$_continuous = continuous; } else if (continuous) { - for (var _i2 = 0, _l = pool.length; _i2 < _l; _i2++) { - view = pool[_i2]; + for (var _i = 0, _l = pool.length; _i < _l; _i++) { + view = pool[_i]; if (view.nr.used) { // Update view item index @@ -523,8 +547,8 @@ var script = { var item, type, unusedPool; var v; - for (var _i3 = startIndex; _i3 < endIndex; _i3++) { - item = items[_i3]; + for (var _i2 = startIndex; _i2 < endIndex; _i2++) { + item = items[_i2]; var key = keyField ? item[keyField] : item; if (key == null) { @@ -533,7 +557,7 @@ var script = { view = views.get(key); - if (!itemSize && !sizes[_i3].size) { + if (!itemSize && !sizes[_i2].size) { if (view) this.unuseView(view); continue; } // No view assigned to item @@ -549,11 +573,11 @@ var script = { view = unusedPool.pop(); view.item = item; view.nr.used = true; - view.nr.index = _i3; + view.nr.index = _i2; view.nr.key = key; view.nr.type = type; } else { - view = this.addView(pool, _i3, item, key, type); + view = this.addView(pool, _i2, item, key, type); } } else { // Use existing view @@ -562,7 +586,7 @@ var script = { v = unusedIndex.get(type) || 0; if (!unusedPool || v >= unusedPool.length) { - view = this.addView(pool, _i3, item, key, type); + view = this.addView(pool, _i2, item, key, type); this.unuseView(view, true); unusedPool = unusedViews.get(type); } @@ -570,7 +594,7 @@ var script = { view = unusedPool[v]; view.item = item; view.nr.used = true; - view.nr.index = _i3; + view.nr.index = _i2; view.nr.key = key; view.nr.type = type; unusedIndex.set(type, v + 1); @@ -585,9 +609,9 @@ var script = { if (itemSize === null) { - view.position = sizes[_i3 - 1].accumulator; + view.position = sizes[_i2 - 1].accumulator; } else { - view.position = _i3 * itemSize; + view.position = _i2 * itemSize; } } @@ -909,11 +933,8 @@ var __vue_render__ = function() { [_vm._t("after")], 2 ) - : _vm._e(), - _vm._v(" "), - _c("ResizeObserver", { on: { notify: _vm.handleResize } }) - ], - 1 + : _vm._e() + ] ) }; var __vue_staticRenderFns__ = []; @@ -1567,7 +1588,7 @@ function registerComponents(Vue, prefix) { var plugin = { // eslint-disable-next-line no-undef - version: '"1.1.1"', + version: "1.2.0", install: function install(Vue, options) { var finalOptions = Object.assign({}, { installComponents: true, diff --git a/dist/vue-virtual-scroller.esm.js.map b/dist/vue-virtual-scroller.esm.js.map index 2939b91d..d71d9fa7 100644 --- a/dist/vue-virtual-scroller.esm.js.map +++ b/dist/vue-virtual-scroller.esm.js.map @@ -1 +1 @@ -{"version":3,"file":"vue-virtual-scroller.esm.js","sources":["../src/config.js","../src/components/common.js","../src/utils.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/mixins/IdState.js","../src/index.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: 'VERSION',\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n"],"names":["itemsLimit","props","items","type","Array","required","keyField","String","default","direction","validator","value","includes","simpleArray","length","supportsPassive","window","opts","Object","defineProperty","get","addEventListener","e","idProp","vm","item","id","store","Vue","data","idState","created","$_id","$_getId","call","$watch","handler","$nextTick","immediate","$_updateIdState","beforeUpdate","methods","$_idStateInit","factory","$options","$set","Error","console","warn","registerComponents","prefix","component","RecycleScroller","DynamicScroller","DynamicScrollerItem","plugin","version","install","options","finalOptions","assign","installComponents","componentsPrefix","key","config","GlobalVue","global","use"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"vue-virtual-scroller.esm.js","sources":["../src/config.js","../src/components/common.js","../src/utils.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/mixins/IdState.js","../src/index.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: VERSION,\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n"],"names":["itemsLimit","props","items","type","Array","required","keyField","String","default","direction","validator","value","includes","simpleArray","length","supportsPassive","window","opts","Object","defineProperty","get","addEventListener","e","idProp","vm","item","id","store","Vue","data","idState","created","$_id","$_getId","call","$watch","handler","$nextTick","immediate","$_updateIdState","beforeUpdate","methods","$_idStateInit","factory","$options","$set","Error","console","warn","registerComponents","prefix","component","RecycleScroller","DynamicScroller","DynamicScrollerItem","plugin","version","VERSION","install","options","finalOptions","assign","installComponents","componentsPrefix","key","config","GlobalVue","global","use"],"mappings":"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"} \ No newline at end of file diff --git a/dist/vue-virtual-scroller.min.js b/dist/vue-virtual-scroller.min.js index a091d099..ea448314 100644 --- a/dist/vue-virtual-scroller.min.js +++ b/dist/vue-virtual-scroller.min.js @@ -1,2 +1,2 @@ -var VueVirtualScroller=function(e,t){"use strict";t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;var i={itemsLimit:1e3};function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function o(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function s(e){for(var t=1;te.length)&&(t=e.length);for(var i=0,n=new Array(t);i=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var n,r,o=!0,s=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,r=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw r}}}}var c=void 0;function d(){d.init||(d.init=!0,c=-1!==function(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);if(e.indexOf("Trident/")>0){var i=e.indexOf("rv:");return parseInt(e.substring(i+3,e.indexOf(".",i)),10)}var n=e.indexOf("Edge/");return n>0?parseInt(e.substring(n+5,e.indexOf(".",n)),10):-1}())}var u={render:function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"resize-observer",attrs:{tabindex:"-1"}})},staticRenderFns:[],_scopeId:"data-v-b329ee4c",name:"resize-observer",methods:{compareAndNotify:function(){this._w===this.$el.offsetWidth&&this._h===this.$el.offsetHeight||(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.$emit("notify"))},addResizeHandlers:function(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers:function(){this._resizeObject&&this._resizeObject.onload&&(!c&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),delete this._resizeObject.onload)}},mounted:function(){var e=this;d(),this.$nextTick((function(){e._w=e.$el.offsetWidth,e._h=e.$el.offsetHeight}));var t=document.createElement("object");this._resizeObject=t,t.setAttribute("aria-hidden","true"),t.setAttribute("tabindex",-1),t.onload=this.addResizeHandlers,t.type="text/html",c&&this.$el.appendChild(t),t.data="about:blank",c||this.$el.appendChild(t)},beforeDestroy:function(){this.removeResizeHandlers()}};var h={version:"0.4.5",install:function(e){e.component("resize-observer",u),e.component("ResizeObserver",u)}},f=null;function v(e){return(v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function p(e,t){for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:{},s=function(s){for(var l=arguments.length,a=new Array(l>1?l-1:0),c=1;c1){var n=e.find((function(e){return e.isIntersecting}));n&&(t=n)}if(i.callback){var r=t.isIntersecting&&t.intersectionRatio>=i.threshold;if(r===i.oldResult)return;i.oldResult=r,i.callback(r,t)}}),this.options.intersection),t.context.$nextTick((function(){i.observer&&i.observer.observe(i.el)}))}}},{key:"destroyObserver",value:function(){this.observer&&(this.observer.disconnect(),this.observer=null),this.callback&&this.callback._clear&&(this.callback._clear(),this.callback=null)}},{key:"threshold",get:function(){return this.options.intersection&&this.options.intersection.threshold||0}}])&&p(t.prototype,i),n&&p(t,n),e}();function b(e,t,i){var n=t.value;if(n)if("undefined"==typeof IntersectionObserver)console.warn("[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill");else{var r=new y(e,n,i);e._vue_visibilityState=r}}function g(e){var t=e._vue_visibilityState;t&&(t.destroyObserver(),delete e._vue_visibilityState)}var _={bind:b,update:function(e,t,i){var n=t.value;if(!function e(t,i){if(t===i)return!0;if("object"===v(t)){for(var n in t)if(!e(t[n],i[n]))return!1;return!0}return!1}(n,t.oldValue)){var r=e._vue_visibilityState;n?r?r.createObserver(n,i):b(e,{value:n},i):g(e)}},unbind:g};var S={version:"0.4.6",install:function(e){e.directive("observe-visibility",_)}},$=null;"undefined"!=typeof window?$=window.Vue:"undefined"!=typeof global&&($=global.Vue),$&&$.use(S);var z="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var w=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){var t,i;t=z,i=function(){var e=/(auto|scroll)/,t=function(e,i){return null===e.parentNode?i:t(e.parentNode,i.concat([e]))},i=function(e,t){return getComputedStyle(e,null).getPropertyValue(t)},n=function(t){return e.test(function(e){return i(e,"overflow")+i(e,"overflow-y")+i(e,"overflow-x")}(t))};return function(e){if(e instanceof HTMLElement||e instanceof SVGElement){for(var i=t(e.parentNode,[]),r=0;r1&&void 0!==arguments[1]&&arguments[1],i=this.$_unusedViews,n=e.nr.type,r=i.get(n);r||(r=[],i.set(n,r)),r.push(e),t||(e.nr.used=!1,e.position=-9999,this.$_views.delete(e.nr.key))},handleResize:function(){this.$emit("resize"),this.ready&&this.updateVisibleItems(!1)},handleScroll:function(e){var t=this;this.$_scrollDirty||(this.$_scrollDirty=!0,requestAnimationFrame((function(){t.$_scrollDirty=!1,t.updateVisibleItems(!1,!0).continuous||(clearTimeout(t.$_refreshTimout),t.$_refreshTimout=setTimeout(t.handleScroll,100))})))},handleVisibilityChange:function(e,t){var i=this;this.ready&&(e||0!==t.boundingClientRect.width||0!==t.boundingClientRect.height?(this.$emit("visible"),requestAnimationFrame((function(){i.updateVisibleItems(!1)}))):this.$emit("hidden"))},updateVisibleItems:function(e){var t,n,r,o,s,l=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=this.itemSize,c=this.$_computedMinItemSize,d=this.typeField,u=this.simpleArray?null:this.keyField,h=this.items,f=h.length,v=this.sizes,p=this.$_views,m=this.$_unusedViews,y=this.pool;if(f&&!this.$_prerender&&(o=this.getScroll(),l)){var b=Math.abs(o.originalStart-this.$_lastUpdateScrollPosition);if(null===a&&bo.start&&($=z),z=~~((S+$)/2)}while(z!==_);for(z<0&&(z=0),t=z,r=v[f-1].accumulator,n=z;nf&&(n=f)}else(t=~~(o.start/a))<0&&(t=0),(n=Math.ceil(o.end/a))>f&&(n=f),r=f*a}else t=n=r=0;n-t>i.itemsLimit&&this.itemsLimitError(),this.totalSize=r;var w=t<=this.$_endIndex&&n>=this.$_startIndex;if(this.$_continuous!==w){if(w){p.clear(),m.clear();for(var O=0,D=y.length;O=n)&&this.unuseView(s));for(var R,V,T,P,A=w?null:new Map,k=t;k=T.length)&&(s=this.addView(y,k,R,E,V),this.unuseView(s,!0),T=m.get(V)),(s=T[P]).item=R,s.nr.used=!0,s.nr.index=k,s.nr.key=E,s.nr.type=V,A.set(V,P+1),P++),p.set(E,s)),s.position=null===a?v[k-1].accumulator:k*a):s&&this.unuseView(s)}return this.$_startIndex=t,this.$_endIndex=n,this.emitUpdate&&this.$emit("update",t,n),{continuous:w}},getListenerTarget:function(){var e=w(this.$el);return!window.document||e!==window.document.documentElement&&e!==window.document.body||(e=window),e},getScroll:function(){var e=this.$el,t="vertical"===this.direction;if(this.pageMode){var i=e.getBoundingClientRect(),n=t?i.height:i.width,r=-(t?i.top:i.left),o=r,s=t?window.innerHeight:window.innerWidth;return o<0&&(s+=o,o=0),o+s>n&&(s=n-o),{originalStart:r,start:o,end:o+s}}return t?{originalStart:e.scrollTop,start:e.scrollTop,end:e.scrollTop+e.clientHeight}:{originalStart:e.scrollLeft,start:e.scrollLeft,end:e.scrollLeft+e.clientWidth}},applyPageMode:function(){this.pageMode?this.addListeners():this.removeListeners()},addListeners:function(){this.listenerTarget=this.getListenerTarget(),this.listenerTarget.addEventListener("scroll",this.handleScroll,!!x&&{passive:!0}),this.listenerTarget.addEventListener("resize",this.handleResize)},removeListeners:function(){this.listenerTarget&&(this.listenerTarget.removeEventListener("scroll",this.handleScroll),this.listenerTarget.removeEventListener("resize",this.handleResize),this.listenerTarget=null)},scrollToItem:function(e){var t=this.scrollToPosition(e),i=t.viewport,n=t.scrollDirection,r=t.scrollDistance;i[n]=r},scrollToPosition:function(e){var t=this,i=function(e){return null===t.itemSize?e>0?t.sizes[e-1].accumulator:0:e*t.itemSize}(e),n="vertical"===this.direction?{scroll:"scrollTop",start:"top"}:{scroll:"scrollLeft",start:"left"};if(this.pageMode){var r=w(this.$el),o="HTML"===r.tagName?0:r[n.scroll],s=r.getBoundingClientRect(),l=this.$el.getBoundingClientRect()[n.start]-s[n.start];return{viewport:r,scrollDirection:n.scroll,scrollDistance:i+o+l}}return{viewport:this.$el,scrollDirection:n.scroll,scrollDistance:i}},itemsLimitError:function(){var e=this;throw setTimeout((function(){console.log("It seems the scroller element isn't scrolling, so it tries to render all the items at once.","Scroller:",e.$el),console.log("Make sure the scroller has a fixed height (or width) and 'overflow-y' (or 'overflow-x') set to 'auto' so it can scroll correctly and only render the items visible in the scroll viewport.")})),new Error("Rendered items limit reached")}}};var P=function(){var e,t,i=this,n=i.$createElement,r=i._self._c||n;return r("div",{directives:[{name:"observe-visibility",rawName:"v-observe-visibility",value:i.handleVisibilityChange,expression:"handleVisibilityChange"}],staticClass:"vue-recycle-scroller",class:(e={ready:i.ready,"page-mode":i.pageMode},e["direction-"+i.direction]=!0,e),on:{"&scroll":function(e){return i.handleScroll(e)}}},[i.$slots.before?r("div",{staticClass:"vue-recycle-scroller__slot"},[i._t("before")],2):i._e(),i._v(" "),r("div",{ref:"wrapper",staticClass:"vue-recycle-scroller__item-wrapper",style:(t={},t["vertical"===i.direction?"minHeight":"minWidth"]=i.totalSize+"px",t)},i._l(i.pool,(function(e){return r("div",{key:e.nr.id,staticClass:"vue-recycle-scroller__item-view",style:i.ready?{transform:"translate"+("vertical"===i.direction?"Y":"X")+"("+e.position+"px)"}:null,on:{mouseenter:function(e){return e.target.classList.add("hover")},mouseleave:function(e){return e.target.classList.remove("hover")}}},[i._t("default",null,{item:e.item,index:e.nr.index,active:e.nr.used})],2)})),0),i._v(" "),i.$slots.after?r("div",{staticClass:"vue-recycle-scroller__slot"},[i._t("after")],2):i._e(),i._v(" "),r("ResizeObserver",{on:{notify:i.handleResize}})],1)};P._withStripped=!0;const A=V({render:P,staticRenderFns:[]},void 0,T,void 0,!1,void 0,!1,void 0,void 0,void 0);const k={name:"DynamicScroller",components:{RecycleScroller:A},inheritAttrs:!1,provide:function(){return"undefined"!=typeof ResizeObserver&&(this.$_resizeObserver=new ResizeObserver((function(e){var t,i=a(e);try{for(i.s();!(t=i.n()).done;){var n=t.value;if(n.target){var r=new CustomEvent("resize",{detail:{contentRect:n.contentRect}});n.target.dispatchEvent(r)}}}catch(e){i.e(e)}finally{i.f()}}))),{vscrollData:this.vscrollData,vscrollParent:this,vscrollResizeObserver:this.$_resizeObserver}},props:s({},O,{minItemSize:{type:[Number,String],required:!0}}),data:function(){return{vscrollData:{active:!0,sizes:{},validSizes:{},keyField:this.keyField,simpleArray:!1}}},computed:{simpleArray:D,itemsWithSize:function(){for(var e=[],t=this.items,i=this.keyField,n=this.simpleArray,r=this.vscrollData.sizes,o=0;o0&&void 0!==arguments[0])||arguments[0];(e||this.simpleArray)&&(this.vscrollData.validSizes={}),this.$emit("vscroll:update",{force:!0})},scrollToItem:function(e){var t=this.$refs.scroller;t&&t.scrollToItem(e)},getItemSize:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=this.simpleArray?null!=t?t:this.items.indexOf(e):e[this.keyField];return this.vscrollData.sizes[i]||0},scrollToBottom:function(){var e=this;if(!this.$_scrollingToBottom){this.$_scrollingToBottom=!0;var t=this.$el;this.$nextTick((function(){t.scrollTop=t.scrollHeight+5e3;requestAnimationFrame((function i(){t.scrollTop=t.scrollHeight+5e3,requestAnimationFrame((function(){t.scrollTop=t.scrollHeight+5e3,0===e.$_undefinedSizes?e.$_scrollingToBottom=!1:requestAnimationFrame(i)}))}))}))}}}};var E=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("RecycleScroller",e._g(e._b({ref:"scroller",attrs:{items:e.itemsWithSize,"min-item-size":e.minItemSize,direction:e.direction,"key-field":"id"},on:{resize:e.onScrollerResize,visible:e.onScrollerVisible},scopedSlots:e._u([{key:"default",fn:function(t){var i=t.item,n=t.index,r=t.active;return[e._t("default",null,null,{item:i.item,index:n,active:r,itemWithSize:i})]}}],null,!0)},"RecycleScroller",e.$attrs,!1),e.listeners),[e._v(" "),i("template",{slot:"before"},[e._t("before")],2),e._v(" "),i("template",{slot:"after"},[e._t("after")],2)],2)};E._withStripped=!0;const j=V({render:E,staticRenderFns:[]},void 0,k,void 0,!1,void 0,!1,void 0,void 0,void 0);const U=V({},void 0,{name:"DynamicScrollerItem",inject:["vscrollData","vscrollParent","vscrollResizeObserver"],props:{item:{required:!0},watchData:{type:Boolean,default:!1},active:{type:Boolean,required:!0},index:{type:Number,default:void 0},sizeDependencies:{type:[Array,Object],default:null},emitResize:{type:Boolean,default:!1},tag:{type:String,default:"div"}},computed:{id:function(){return this.vscrollData.simpleArray?this.index:this.item[this.vscrollData.keyField]},size:function(){return this.vscrollData.validSizes[this.id]&&this.vscrollData.sizes[this.id]||0},finalActive:function(){return this.active&&this.vscrollData.active}},watch:{watchData:"updateWatchData",id:function(){this.size||this.onDataUpdate()},finalActive:function(e){this.size||(e?this.vscrollParent.$_undefinedMap[this.id]||(this.vscrollParent.$_undefinedSizes++,this.vscrollParent.$_undefinedMap[this.id]=!0):this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=!1)),this.vscrollResizeObserver?e?this.observeSize():this.unobserveSize():e&&this.$_pendingVScrollUpdate===this.id&&this.updateSize()}},created:function(){var e=this;if(!this.$isServer&&(this.$_forceNextVScrollUpdate=null,this.updateWatchData(),!this.vscrollResizeObserver)){var t=function(t){e.$watch((function(){return e.sizeDependencies[t]}),e.onDataUpdate)};for(var i in this.sizeDependencies)t(i);this.vscrollParent.$on("vscroll:update",this.onVscrollUpdate),this.vscrollParent.$on("vscroll:update-size",this.onVscrollUpdateSize)}},mounted:function(){this.vscrollData.active&&(this.updateSize(),this.observeSize())},beforeDestroy:function(){this.vscrollParent.$off("vscroll:update",this.onVscrollUpdate),this.vscrollParent.$off("vscroll:update-size",this.onVscrollUpdateSize),this.unobserveSize()},methods:{updateSize:function(){this.finalActive?this.$_pendingSizeUpdate!==this.id&&(this.$_pendingSizeUpdate=this.id,this.$_forceNextVScrollUpdate=null,this.$_pendingVScrollUpdate=null,this.computeSize(this.id)):this.$_forceNextVScrollUpdate=this.id},updateWatchData:function(){var e=this;this.watchData?this.$_watchData=this.$watch("data",(function(){e.onDataUpdate()}),{deep:!0}):this.$_watchData&&(this.$_watchData(),this.$_watchData=null)},onVscrollUpdate:function(e){var t=e.force;!this.finalActive&&t&&(this.$_pendingVScrollUpdate=this.id),this.$_forceNextVScrollUpdate!==this.id&&!t&&this.size||this.updateSize()},onDataUpdate:function(){this.updateSize()},computeSize:function(e){var t=this;this.$nextTick((function(){if(t.id===e){var i=t.$el.offsetWidth,n=t.$el.offsetHeight;t.applySize(i,n)}t.$_pendingSizeUpdate=null}))},applySize:function(e,t){var i=Math.round("vertical"===this.vscrollParent.direction?t:e);i&&this.size!==i&&(this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=void 0),this.$set(this.vscrollData.sizes,this.id,i),this.$set(this.vscrollData.validSizes,this.id,!0),this.emitResize&&this.$emit("resize",this.id))},observeSize:function(){this.vscrollResizeObserver&&(this.vscrollResizeObserver.observe(this.$el.parentNode),this.$el.parentNode.addEventListener("resize",this.onResize))},unobserveSize:function(){this.vscrollResizeObserver&&(this.vscrollResizeObserver.unobserve(this.$el.parentNode),this.$el.parentNode.removeEventListener("resize",this.onResize))},onResize:function(e){var t=e.detail.contentRect,i=t.width,n=t.height;this.applySize(i,n)}},render:function(e){return e(this.tag,this.$slots.default)}},void 0,void 0,void 0,!1,void 0,void 0,void 0);var M={version:'"1.1.1"',install:function(e,t){var n=Object.assign({},{installComponents:!0,componentsPrefix:""},t);for(var r in n)void 0!==n[r]&&(i[r]=n[r]);n.installComponents&&function(e,t){e.component("".concat(t,"recycle-scroller"),A),e.component("".concat(t,"RecycleScroller"),A),e.component("".concat(t,"dynamic-scroller"),j),e.component("".concat(t,"DynamicScroller"),j),e.component("".concat(t,"dynamic-scroller-item"),U),e.component("".concat(t,"DynamicScrollerItem"),U)}(e,n.componentsPrefix)}},C=null;return"undefined"!=typeof window?C=window.Vue:"undefined"!=typeof global&&(C=global.Vue),C&&C.use(M),e.DynamicScroller=j,e.DynamicScrollerItem=U,e.IdState=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=e.idProp,n=void 0===i?function(e){return e.item.id}:i,r={},o=new t({data:function(){return{store:r}}});return{data:function(){return{idState:null}},created:function(){var e=this;this.$_id=null,this.$_getId="function"==typeof n?function(){return n.call(e,e)}:function(){return e[n]},this.$watch(this.$_getId,{handler:function(e){var t=this;this.$nextTick((function(){t.$_id=e}))},immediate:!0}),this.$_updateIdState()},beforeUpdate:function(){this.$_updateIdState()},methods:{$_idStateInit:function(e){var t=this.$options.idState;if("function"==typeof t){var i=t.call(this,this);return o.$set(r,e,i),this.$_id=e,i}throw new Error("[mixin IdState] Missing `idState` function on component definition.")},$_updateIdState:function(){var e=this.$_getId();null==e&&console.warn("No id found for IdState with idProp: '".concat(n,"'.")),e!==this.$_id&&(r[e]||this.$_idStateInit(e),this.idState=r[e])}}}},e.RecycleScroller=A,e.default=M,e}({},Vue); +var VueVirtualScroller=function(e,t){"use strict";t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;var i={itemsLimit:1e3};function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function o(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function s(e){for(var t=1;te.length)&&(t=e.length);for(var i=0,n=new Array(t);i=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var n,r,o=!0,s=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,r=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw r}}}}function c(e){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u(e,t){for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:{},s=function(s){for(var l=arguments.length,a=new Array(l>1?l-1:0),c=1;c1){var n=e.find((function(e){return e.isIntersecting}));n&&(t=n)}if(i.callback){var r=t.isIntersecting&&t.intersectionRatio>=i.threshold;if(r===i.oldResult)return;i.oldResult=r,i.callback(r,t)}}),this.options.intersection),t.context.$nextTick((function(){i.observer&&i.observer.observe(i.el)}))}}},{key:"destroyObserver",value:function(){this.observer&&(this.observer.disconnect(),this.observer=null),this.callback&&this.callback._clear&&(this.callback._clear(),this.callback=null)}},{key:"threshold",get:function(){return this.options.intersection&&this.options.intersection.threshold||0}}])&&u(t.prototype,i),n&&u(t,n),e}();function f(e,t,i){var n=t.value;if(n)if("undefined"==typeof IntersectionObserver)console.warn("[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill");else{var r=new h(e,n,i);e._vue_visibilityState=r}}function v(e){var t=e._vue_visibilityState;t&&(t.destroyObserver(),delete e._vue_visibilityState)}var p={bind:f,update:function(e,t,i){var n=t.value;if(!function e(t,i){if(t===i)return!0;if("object"===c(t)){for(var n in t)if(!e(t[n],i[n]))return!1;return!0}return!1}(n,t.oldValue)){var r=e._vue_visibilityState;n?r?r.createObserver(n,i):f(e,{value:n},i):v(e)}},unbind:v};var m={version:"0.4.6",install:function(e){e.directive("observe-visibility",p)}},y=null;"undefined"!=typeof window?y=window.Vue:"undefined"!=typeof global&&(y=global.Vue),y&&y.use(m);var b="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var g=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){var t,i;t=b,i=function(){var e=/(auto|scroll)/,t=function(e,i){return null===e.parentNode?i:t(e.parentNode,i.concat([e]))},i=function(e,t){return getComputedStyle(e,null).getPropertyValue(t)},n=function(t){return e.test(function(e){return i(e,"overflow")+i(e,"overflow-y")+i(e,"overflow-x")}(t))};return function(e){if(e instanceof HTMLElement||e instanceof SVGElement){for(var i=t(e.parentNode,[]),r=0;r1&&void 0!==arguments[1]&&arguments[1],i=this.$_unusedViews,n=e.nr.type;i.get(n)||i.set(n,[]);var r=i.get(n);r.push(e),t||(e.nr.used=!1,e.position=-9999,this.$_views.delete(e.nr.key))},handleResize:function(){this.$emit("resize"),this.ready&&this.updateVisibleItems(!1)},handleScroll:function(e){var t=this;cancelAnimationFrame(this.$_scrollAnimationRequest),this.$_scrollAnimationRequest=requestAnimationFrame((function(){t.$_scrollAnimationRequest=!1,t.updateVisibleItems(!1,!0).continuous||(clearTimeout(t.$_refreshTimout),t.$_refreshTimout=setTimeout(t.handleScroll,100))}))},handleVisibilityChange:function(e,t){var i=this;this.ready&&(e?(this.$emit("visible"),requestAnimationFrame((function(){i.updateVisibleItems(!1)}))):this.$emit("hidden"))},startEndIndex:function(e){var t=this.itemSize,i=this.items,n=i.length,r=this.sizes;if(!n)return{startIndex:0,endIndex:0,totalSize:0};if(this.$_prerender)return{startIndex:0,endIndex:this.prerender,totalSize:null};this.$_lastUpdateScrollPosition=e.originalStart;var o=this.buffer;if(e.start-=o,e.end+=o,null===t){var s,l=0,a=n-1,c=~~(n/2);do{s=c,r[c].accumulatore.start&&(a=c),c=~~((l+a)/2)}while(c!==s);c<0&&(c=0);var u,d=c,h=r[n-1].accumulator;for(u=c;un&&(u=n);return{startIndex:d,endIndex:u,totalSize:h}}return{startIndex:Math.max(0,~~(e.start/t)),endIndex:Math.min(n,Math.ceil(e.end/t)),totalSize:n*t}},updateVisibleItems:function(e){var t,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.itemSize,o=this.$_computedMinItemSize,s=this.typeField,l=this.simpleArray?null:this.keyField,a=this.items,c=a.length,u=this.sizes,d=this.$_views,h=this.$_unusedViews,f=this.pool;if(c&&!this.$_prerender&&(t=this.getScroll(),n)){var v=Math.abs(t.originalStart-this.$_lastUpdateScrollPosition);if(null===r&&vi.itemsLimit&&this.itemsLimitError(),this.totalSize=g;var S=y<=this.$_endIndex&&b>=this.$_startIndex;if(this.$_continuous!==S){if(S){d.clear(),h.clear();for(var _=0,$=f.length;_<$;_++)p=f[_],this.unuseView(p)}this.$_continuous=S}else if(S)for(var z=0,w=f.length;z=b)&&this.unuseView(p));for(var I,x,O,D,V=S?null:new Map,R=y;R=O.length)&&(p=this.addView(f,R,I,T,x),this.unuseView(p,!0),O=h.get(x)),(p=O[D]).item=I,p.nr.used=!0,p.nr.index=R,p.nr.key=T,p.nr.type=x,V.set(x,D+1),D++),d.set(T,p)),p.position=null===r?u[R-1].accumulator:R*r):p&&this.unuseView(p)}return this.$_startIndex=y,this.$_endIndex=b,this.emitUpdate&&this.$emit("update",y,b),{continuous:S}},getListenerTarget:function(){var e=g(this.$el);return!window.document||e!==window.document.documentElement&&e!==window.document.body||(e=window),e},getScroll:function(){var e=this.$el,t="vertical"===this.direction;if(this.pageMode){var i=e.getBoundingClientRect(),n=t?i.height:i.width,r=-(t?i.top:i.left),o=r,s=t?window.innerHeight:window.innerWidth;return o<0&&(s+=o,o=0),o+s>n&&(s=n-o),{originalStart:r,start:o,end:o+s}}return t?{originalStart:e.scrollTop,start:e.scrollTop,end:e.scrollTop+e.clientHeight}:{originalStart:e.scrollLeft,start:e.scrollLeft,end:e.scrollLeft+e.clientWidth}},applyPageMode:function(){this.pageMode?this.addListeners():this.removeListeners()},addListeners:function(){this.listenerTarget=this.getListenerTarget(),this.listenerTarget.addEventListener("scroll",this.handleScroll,!!$&&{passive:!0}),this.listenerTarget.addEventListener("resize",this.handleResize)},removeListeners:function(){this.listenerTarget&&(this.listenerTarget.removeEventListener("scroll",this.handleScroll),this.listenerTarget.removeEventListener("resize",this.handleResize),this.listenerTarget=null)},scrollToItem:function(e){var t=this.scrollToPosition(e),i=t.viewport,n=t.scrollDirection,r=t.scrollDistance;i[n]=r},scrollToPosition:function(e){var t=this,i=function(e){return null===t.itemSize?e>0?t.sizes[e-1].accumulator:0:e*t.itemSize}(e),n="vertical"===this.direction?{scroll:"scrollTop",start:"top"}:{scroll:"scrollLeft",start:"left"};if(this.pageMode){var r=g(this.$el),o="HTML"===r.tagName?0:r[n.scroll],s=r.getBoundingClientRect(),l=this.$el.getBoundingClientRect()[n.start]-s[n.start];return{viewport:r,scrollDirection:n.scroll,scrollDistance:i+o+l}}return{viewport:this.$el,scrollDirection:n.scroll,scrollDistance:i}},itemsLimitError:function(){var e=this;throw setTimeout((function(){console.log("It seems the scroller element isn't scrolling, so it tries to render all the items at once.","Scroller:",e.$el),console.log("Make sure the scroller has a fixed height (or width) and 'overflow-y' (or 'overflow-x') set to 'auto' so it can scroll correctly and only render the items visible in the scroll viewport.")})),new Error("Rendered items limit reached")}}};var O=function(){var e,t,i=this,n=i.$createElement,r=i._self._c||n;return r("div",{directives:[{name:"observe-visibility",rawName:"v-observe-visibility",value:i.handleVisibilityChange,expression:"handleVisibilityChange"}],staticClass:"vue-recycle-scroller",class:(e={ready:i.ready,"page-mode":i.pageMode},e["direction-"+i.direction]=!0,e),on:{"&scroll":function(e){return i.handleScroll(e)}}},[i.$slots.before?r("div",{staticClass:"vue-recycle-scroller__slot"},[i._t("before")],2):i._e(),i._v(" "),r("div",{ref:"wrapper",staticClass:"vue-recycle-scroller__item-wrapper",style:(t={},t["vertical"===i.direction?"minHeight":"minWidth"]=i.totalSize+"px",t)},i._l(i.pool,(function(e){return r("div",{key:e.nr.id,staticClass:"vue-recycle-scroller__item-view",style:i.ready?{transform:"translate"+("vertical"===i.direction?"Y":"X")+"("+e.position+"px)"}:null,on:{mouseenter:function(e){return e.target.classList.add("hover")},mouseleave:function(e){return e.target.classList.remove("hover")}}},[i._t("default",null,{item:e.item,index:e.nr.index,active:e.nr.used})],2)})),0),i._v(" "),i.$slots.after?r("div",{staticClass:"vue-recycle-scroller__slot"},[i._t("after")],2):i._e()])};O._withStripped=!0;const D=I({render:O,staticRenderFns:[]},void 0,x,void 0,!1,void 0,!1,void 0,void 0,void 0);const V={name:"DynamicScroller",components:{RecycleScroller:D},inheritAttrs:!1,provide:function(){return"undefined"!=typeof ResizeObserver&&(this.$_resizeObserver=new ResizeObserver((function(e){var t,i=a(e);try{for(i.s();!(t=i.n()).done;){var n=t.value;if(n.target){var r=new CustomEvent("resize",{detail:{contentRect:n.contentRect}});n.target.dispatchEvent(r)}}}catch(e){i.e(e)}finally{i.f()}}))),{vscrollData:this.vscrollData,vscrollParent:this,vscrollResizeObserver:this.$_resizeObserver}},props:s({},S,{minItemSize:{type:[Number,String],required:!0}}),data:function(){return{vscrollData:{active:!0,sizes:{},validSizes:{},keyField:this.keyField,simpleArray:!1}}},computed:{simpleArray:_,itemsWithSize:function(){for(var e=[],t=this.items,i=this.keyField,n=this.simpleArray,r=this.vscrollData.sizes,o=0;o0&&void 0!==arguments[0])||arguments[0];(e||this.simpleArray)&&(this.vscrollData.validSizes={}),this.$emit("vscroll:update",{force:!0})},scrollToItem:function(e){var t=this.$refs.scroller;t&&t.scrollToItem(e)},getItemSize:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=this.simpleArray?null!=t?t:this.items.indexOf(e):e[this.keyField];return this.vscrollData.sizes[i]||0},scrollToBottom:function(){var e=this;if(!this.$_scrollingToBottom){this.$_scrollingToBottom=!0;var t=this.$el;this.$nextTick((function(){t.scrollTop=t.scrollHeight+5e3;requestAnimationFrame((function i(){t.scrollTop=t.scrollHeight+5e3,requestAnimationFrame((function(){t.scrollTop=t.scrollHeight+5e3,0===e.$_undefinedSizes?e.$_scrollingToBottom=!1:requestAnimationFrame(i)}))}))}))}}}};var R=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("RecycleScroller",e._g(e._b({ref:"scroller",attrs:{items:e.itemsWithSize,"min-item-size":e.minItemSize,direction:e.direction,"key-field":"id"},on:{resize:e.onScrollerResize,visible:e.onScrollerVisible},scopedSlots:e._u([{key:"default",fn:function(t){var i=t.item,n=t.index,r=t.active;return[e._t("default",null,null,{item:i.item,index:n,active:r,itemWithSize:i})]}}],null,!0)},"RecycleScroller",e.$attrs,!1),e.listeners),[e._v(" "),i("template",{slot:"before"},[e._t("before")],2),e._v(" "),i("template",{slot:"after"},[e._t("after")],2)],2)};R._withStripped=!0;const T=I({render:R,staticRenderFns:[]},void 0,V,void 0,!1,void 0,!1,void 0,void 0,void 0);const P=I({},void 0,{name:"DynamicScrollerItem",inject:["vscrollData","vscrollParent","vscrollResizeObserver"],props:{item:{required:!0},watchData:{type:Boolean,default:!1},active:{type:Boolean,required:!0},index:{type:Number,default:void 0},sizeDependencies:{type:[Array,Object],default:null},emitResize:{type:Boolean,default:!1},tag:{type:String,default:"div"}},computed:{id:function(){return this.vscrollData.simpleArray?this.index:this.item[this.vscrollData.keyField]},size:function(){return this.vscrollData.validSizes[this.id]&&this.vscrollData.sizes[this.id]||0},finalActive:function(){return this.active&&this.vscrollData.active}},watch:{watchData:"updateWatchData",id:function(){this.size||this.onDataUpdate()},finalActive:function(e){this.size||(e?this.vscrollParent.$_undefinedMap[this.id]||(this.vscrollParent.$_undefinedSizes++,this.vscrollParent.$_undefinedMap[this.id]=!0):this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=!1)),this.vscrollResizeObserver?e?this.observeSize():this.unobserveSize():e&&this.$_pendingVScrollUpdate===this.id&&this.updateSize()}},created:function(){var e=this;if(!this.$isServer&&(this.$_forceNextVScrollUpdate=null,this.updateWatchData(),!this.vscrollResizeObserver)){var t=function(t){e.$watch((function(){return e.sizeDependencies[t]}),e.onDataUpdate)};for(var i in this.sizeDependencies)t(i);this.vscrollParent.$on("vscroll:update",this.onVscrollUpdate),this.vscrollParent.$on("vscroll:update-size",this.onVscrollUpdateSize)}},mounted:function(){this.vscrollData.active&&(this.updateSize(),this.observeSize())},beforeDestroy:function(){this.vscrollParent.$off("vscroll:update",this.onVscrollUpdate),this.vscrollParent.$off("vscroll:update-size",this.onVscrollUpdateSize),this.unobserveSize()},methods:{updateSize:function(){this.finalActive?this.$_pendingSizeUpdate!==this.id&&(this.$_pendingSizeUpdate=this.id,this.$_forceNextVScrollUpdate=null,this.$_pendingVScrollUpdate=null,this.computeSize(this.id)):this.$_forceNextVScrollUpdate=this.id},updateWatchData:function(){var e=this;this.watchData?this.$_watchData=this.$watch("data",(function(){e.onDataUpdate()}),{deep:!0}):this.$_watchData&&(this.$_watchData(),this.$_watchData=null)},onVscrollUpdate:function(e){var t=e.force;!this.finalActive&&t&&(this.$_pendingVScrollUpdate=this.id),this.$_forceNextVScrollUpdate!==this.id&&!t&&this.size||this.updateSize()},onDataUpdate:function(){this.updateSize()},computeSize:function(e){var t=this;this.$nextTick((function(){if(t.id===e){var i=t.$el.offsetWidth,n=t.$el.offsetHeight;t.applySize(i,n)}t.$_pendingSizeUpdate=null}))},applySize:function(e,t){var i=Math.round("vertical"===this.vscrollParent.direction?t:e);i&&this.size!==i&&(this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=void 0),this.$set(this.vscrollData.sizes,this.id,i),this.$set(this.vscrollData.validSizes,this.id,!0),this.emitResize&&this.$emit("resize",this.id))},observeSize:function(){this.vscrollResizeObserver&&(this.vscrollResizeObserver.observe(this.$el.parentNode),this.$el.parentNode.addEventListener("resize",this.onResize))},unobserveSize:function(){this.vscrollResizeObserver&&(this.vscrollResizeObserver.unobserve(this.$el.parentNode),this.$el.parentNode.removeEventListener("resize",this.onResize))},onResize:function(e){var t=e.detail.contentRect,i=t.width,n=t.height;this.applySize(i,n)}},render:function(e){return e(this.tag,this.$slots.default)}},void 0,void 0,void 0,!1,void 0,void 0,void 0);var A={version:"1.2.0",install:function(e,t){var n=Object.assign({},{installComponents:!0,componentsPrefix:""},t);for(var r in n)void 0!==n[r]&&(i[r]=n[r]);n.installComponents&&function(e,t){e.component("".concat(t,"recycle-scroller"),D),e.component("".concat(t,"RecycleScroller"),D),e.component("".concat(t,"dynamic-scroller"),T),e.component("".concat(t,"DynamicScroller"),T),e.component("".concat(t,"dynamic-scroller-item"),P),e.component("".concat(t,"DynamicScrollerItem"),P)}(e,n.componentsPrefix)}},k=null;return"undefined"!=typeof window?k=window.Vue:"undefined"!=typeof global&&(k=global.Vue),k&&k.use(A),e.DynamicScroller=T,e.DynamicScrollerItem=P,e.IdState=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=e.idProp,n=void 0===i?function(e){return e.item.id}:i,r={},o=new t({data:function(){return{store:r}}});return{data:function(){return{idState:null}},created:function(){var e=this;this.$_id=null,this.$_getId="function"==typeof n?function(){return n.call(e,e)}:function(){return e[n]},this.$watch(this.$_getId,{handler:function(e){var t=this;this.$nextTick((function(){t.$_id=e}))},immediate:!0}),this.$_updateIdState()},beforeUpdate:function(){this.$_updateIdState()},methods:{$_idStateInit:function(e){var t=this.$options.idState;if("function"==typeof t){var i=t.call(this,this);return o.$set(r,e,i),this.$_id=e,i}throw new Error("[mixin IdState] Missing `idState` function on component definition.")},$_updateIdState:function(){var e=this.$_getId();null==e&&console.warn("No id found for IdState with idProp: '".concat(n,"'.")),e!==this.$_id&&(r[e]||this.$_idStateInit(e),this.idState=r[e])}}}},e.RecycleScroller=D,e.default=A,e}({},Vue); //# sourceMappingURL=vue-virtual-scroller.min.js.map diff --git a/dist/vue-virtual-scroller.min.js.map b/dist/vue-virtual-scroller.min.js.map index 896e6dbd..615a54c7 100644 --- a/dist/vue-virtual-scroller.min.js.map +++ b/dist/vue-virtual-scroller.min.js.map @@ -1 +1 @@ -{"version":3,"file":"vue-virtual-scroller.min.js","sources":["../src/config.js","../node_modules/vue-resize/dist/vue-resize.esm.js","../node_modules/vue-observe-visibility/dist/vue-observe-visibility.esm.js","../node_modules/scrollparent/scrollparent.js","../src/components/common.js","../src/utils.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/index.js","../src/mixins/IdState.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","function getInternetExplorerVersion() {\n\tvar ua = window.navigator.userAgent;\n\n\tvar msie = ua.indexOf('MSIE ');\n\tif (msie > 0) {\n\t\t// IE 10 or older => return version number\n\t\treturn parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n\t}\n\n\tvar trident = ua.indexOf('Trident/');\n\tif (trident > 0) {\n\t\t// IE 11 => return version number\n\t\tvar rv = ua.indexOf('rv:');\n\t\treturn parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n\t}\n\n\tvar edge = ua.indexOf('Edge/');\n\tif (edge > 0) {\n\t\t// Edge (IE 12+) => return version number\n\t\treturn parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n\t}\n\n\t// other browser\n\treturn -1;\n}\n\nvar isIE = void 0;\n\nfunction initCompat() {\n\tif (!initCompat.init) {\n\t\tinitCompat.init = true;\n\t\tisIE = getInternetExplorerVersion() !== -1;\n\t}\n}\n\nvar ResizeObserver = { render: function render() {\n\t\tvar _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: \"resize-observer\", attrs: { \"tabindex\": \"-1\" } });\n\t}, staticRenderFns: [], _scopeId: 'data-v-b329ee4c',\n\tname: 'resize-observer',\n\n\tmethods: {\n\t\tcompareAndNotify: function compareAndNotify() {\n\t\t\tif (this._w !== this.$el.offsetWidth || this._h !== this.$el.offsetHeight) {\n\t\t\t\tthis._w = this.$el.offsetWidth;\n\t\t\t\tthis._h = this.$el.offsetHeight;\n\t\t\t\tthis.$emit('notify');\n\t\t\t}\n\t\t},\n\t\taddResizeHandlers: function addResizeHandlers() {\n\t\t\tthis._resizeObject.contentDocument.defaultView.addEventListener('resize', this.compareAndNotify);\n\t\t\tthis.compareAndNotify();\n\t\t},\n\t\tremoveResizeHandlers: function removeResizeHandlers() {\n\t\t\tif (this._resizeObject && this._resizeObject.onload) {\n\t\t\t\tif (!isIE && this._resizeObject.contentDocument) {\n\t\t\t\t\tthis._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.compareAndNotify);\n\t\t\t\t}\n\t\t\t\tdelete this._resizeObject.onload;\n\t\t\t}\n\t\t}\n\t},\n\n\tmounted: function mounted() {\n\t\tvar _this = this;\n\n\t\tinitCompat();\n\t\tthis.$nextTick(function () {\n\t\t\t_this._w = _this.$el.offsetWidth;\n\t\t\t_this._h = _this.$el.offsetHeight;\n\t\t});\n\t\tvar object = document.createElement('object');\n\t\tthis._resizeObject = object;\n\t\tobject.setAttribute('aria-hidden', 'true');\n\t\tobject.setAttribute('tabindex', -1);\n\t\tobject.onload = this.addResizeHandlers;\n\t\tobject.type = 'text/html';\n\t\tif (isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t\tobject.data = 'about:blank';\n\t\tif (!isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t},\n\tbeforeDestroy: function beforeDestroy() {\n\t\tthis.removeResizeHandlers();\n\t}\n};\n\n// Install the components\nfunction install(Vue) {\n\tVue.component('resize-observer', ResizeObserver);\n\tVue.component('ResizeObserver', ResizeObserver);\n}\n\n// Plugin\nvar plugin = {\n\t// eslint-disable-next-line no-undef\n\tversion: \"0.4.5\",\n\tinstall: install\n};\n\n// Auto-install\nvar GlobalVue = null;\nif (typeof window !== 'undefined') {\n\tGlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n\tGlobalVue = global.Vue;\n}\nif (GlobalVue) {\n\tGlobalVue.use(plugin);\n}\n\nexport { install, ResizeObserver };\nexport default plugin;\n","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction processOptions(value) {\n var options;\n\n if (typeof value === 'function') {\n // Simple options (callback-only)\n options = {\n callback: value\n };\n } else {\n // Options object\n options = value;\n }\n\n return options;\n}\nfunction throttle(callback, delay) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var timeout;\n var lastState;\n var currentArgs;\n\n var throttled = function throttled(state) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n currentArgs = args;\n if (timeout && state === lastState) return;\n var leading = options.leading;\n\n if (typeof leading === 'function') {\n leading = leading(state, lastState);\n }\n\n if ((!timeout || state !== lastState) && leading) {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n }\n\n lastState = state;\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n timeout = 0;\n }, delay);\n };\n\n throttled._clear = function () {\n clearTimeout(timeout);\n timeout = null;\n };\n\n return throttled;\n}\nfunction deepEqual(val1, val2) {\n if (val1 === val2) return true;\n\n if (_typeof(val1) === 'object') {\n for (var key in val1) {\n if (!deepEqual(val1[key], val2[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\nvar VisibilityState =\n/*#__PURE__*/\nfunction () {\n function VisibilityState(el, options, vnode) {\n _classCallCheck(this, VisibilityState);\n\n this.el = el;\n this.observer = null;\n this.frozen = false;\n this.createObserver(options, vnode);\n }\n\n _createClass(VisibilityState, [{\n key: \"createObserver\",\n value: function createObserver(options, vnode) {\n var _this = this;\n\n if (this.observer) {\n this.destroyObserver();\n }\n\n if (this.frozen) return;\n this.options = processOptions(options);\n\n this.callback = function (result, entry) {\n _this.options.callback(result, entry);\n\n if (result && _this.options.once) {\n _this.frozen = true;\n\n _this.destroyObserver();\n }\n }; // Throttle\n\n\n if (this.callback && this.options.throttle) {\n var _ref = this.options.throttleOptions || {},\n _leading = _ref.leading;\n\n this.callback = throttle(this.callback, this.options.throttle, {\n leading: function leading(state) {\n return _leading === 'both' || _leading === 'visible' && state || _leading === 'hidden' && !state;\n }\n });\n }\n\n this.oldResult = undefined;\n this.observer = new IntersectionObserver(function (entries) {\n var entry = entries[0];\n\n if (entries.length > 1) {\n var intersectingEntry = entries.find(function (e) {\n return e.isIntersecting;\n });\n\n if (intersectingEntry) {\n entry = intersectingEntry;\n }\n }\n\n if (_this.callback) {\n // Use isIntersecting if possible because browsers can report isIntersecting as true, but intersectionRatio as 0, when something very slowly enters the viewport.\n var result = entry.isIntersecting && entry.intersectionRatio >= _this.threshold;\n if (result === _this.oldResult) return;\n _this.oldResult = result;\n\n _this.callback(result, entry);\n }\n }, this.options.intersection); // Wait for the element to be in document\n\n vnode.context.$nextTick(function () {\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n } // Cancel throttled call\n\n\n if (this.callback && this.callback._clear) {\n this.callback._clear();\n\n this.callback = null;\n }\n }\n }, {\n key: \"threshold\",\n get: function get() {\n return this.options.intersection && this.options.intersection.threshold || 0;\n }\n }]);\n\n return VisibilityState;\n}();\n\nfunction bind(el, _ref2, vnode) {\n var value = _ref2.value;\n if (!value) return;\n\n if (typeof IntersectionObserver === 'undefined') {\n console.warn('[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill');\n } else {\n var state = new VisibilityState(el, value, vnode);\n el._vue_visibilityState = state;\n }\n}\n\nfunction update(el, _ref3, vnode) {\n var value = _ref3.value,\n oldValue = _ref3.oldValue;\n if (deepEqual(value, oldValue)) return;\n var state = el._vue_visibilityState;\n\n if (!value) {\n unbind(el);\n return;\n }\n\n if (state) {\n state.createObserver(value, vnode);\n } else {\n bind(el, {\n value: value\n }, vnode);\n }\n}\n\nfunction unbind(el) {\n var state = el._vue_visibilityState;\n\n if (state) {\n state.destroyObserver();\n delete el._vue_visibilityState;\n }\n}\n\nvar ObserveVisibility = {\n bind: bind,\n update: update,\n unbind: unbind\n};\n\nfunction install(Vue) {\n Vue.directive('observe-visibility', ObserveVisibility);\n /* -- Add more components here -- */\n}\n/* -- Plugin definition & Auto-install -- */\n\n/* You shouldn't have to modify the code below */\n// Plugin\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"0.4.6\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { ObserveVisibility, install };\n","(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Scrollparent = factory();\n }\n}(this, function () {\n var regex = /(auto|scroll)/;\n\n var parents = function (node, ps) {\n if (node.parentNode === null) { return ps; }\n\n return parents(node.parentNode, ps.concat([node]));\n };\n\n var style = function (node, prop) {\n return getComputedStyle(node, null).getPropertyValue(prop);\n };\n\n var overflow = function (node) {\n return style(node, \"overflow\") + style(node, \"overflow-y\") + style(node, \"overflow-x\");\n };\n\n var scroll = function (node) {\n return regex.test(overflow(node));\n };\n\n var scrollParent = function (node) {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return ;\n }\n\n var ps = parents(node.parentNode, []);\n\n for (var i = 0; i < ps.length; i += 1) {\n if (scroll(ps[i])) {\n return ps[i];\n }\n }\n\n return document.scrollingElement || document.documentElement;\n };\n\n return scrollParent;\n}));\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: 'VERSION',\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n"],"names":["itemsLimit","isIE","initCompat","init","ua","window","navigator","userAgent","msie","indexOf","parseInt","substring","rv","edge","getInternetExplorerVersion","ResizeObserver","render","_h","this","$createElement","_self","_c","staticClass","attrs","tabindex","staticRenderFns","_scopeId","name","methods","compareAndNotify","_w","$el","offsetWidth","offsetHeight","$emit","addResizeHandlers","_resizeObject","contentDocument","defaultView","addEventListener","removeResizeHandlers","onload","removeEventListener","mounted","_this","$nextTick","object","document","createElement","setAttribute","type","appendChild","data","beforeDestroy","plugin","version","install","Vue","component","GlobalVue","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_toConsumableArray","arr","Array","isArray","arr2","_arrayWithoutHoles","iter","toString","call","from","_iterableToArray","TypeError","_nonIterableSpread","global","use","VisibilityState","el","options","vnode","instance","Constructor","_classCallCheck","observer","frozen","createObserver","protoProps","staticProps","value","destroyObserver","callback","result","entry","once","throttle","_leading","throttleOptions","leading","delay","timeout","lastState","currentArgs","arguments","undefined","throttled","state","_len","args","_key","apply","concat","clearTimeout","setTimeout","_clear","oldResult","IntersectionObserver","entries","intersectingEntry","find","e","isIntersecting","intersectionRatio","threshold","intersection","context","observe","disconnect","get","bind","_ref2","console","warn","_vue_visibilityState","unbind","ObserveVisibility","update","_ref3","deepEqual","val1","val2","oldValue","directive","root","factory","regex","parents","node","ps","parentNode","style","prop","getComputedStyle","getPropertyValue","scroll","test","overflow","HTMLElement","SVGElement","scrollingElement","documentElement","module","exports","Scrollparent","items","required","keyField","String","default","direction","validator","includes","simpleArray","supportsPassive","opts","normalizeComponent","template","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","_compiled","functional","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","finalOptions","assign","installComponents","componentsPrefix","config","prefix","RecycleScroller","DynamicScroller","DynamicScrollerItem","registerComponents","idProp","vm","item","id","store","idState","created","$_id","$_getId","$watch","handler","_this2","immediate","$_updateIdState","beforeUpdate","$_idStateInit","$set","Error"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"vue-virtual-scroller.min.js","sources":["../src/config.js","../node_modules/vue-observe-visibility/dist/vue-observe-visibility.esm.js","../node_modules/scrollparent/scrollparent.js","../src/components/common.js","../src/utils.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/index.js","../src/mixins/IdState.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction processOptions(value) {\n var options;\n\n if (typeof value === 'function') {\n // Simple options (callback-only)\n options = {\n callback: value\n };\n } else {\n // Options object\n options = value;\n }\n\n return options;\n}\nfunction throttle(callback, delay) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var timeout;\n var lastState;\n var currentArgs;\n\n var throttled = function throttled(state) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n currentArgs = args;\n if (timeout && state === lastState) return;\n var leading = options.leading;\n\n if (typeof leading === 'function') {\n leading = leading(state, lastState);\n }\n\n if ((!timeout || state !== lastState) && leading) {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n }\n\n lastState = state;\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n timeout = 0;\n }, delay);\n };\n\n throttled._clear = function () {\n clearTimeout(timeout);\n timeout = null;\n };\n\n return throttled;\n}\nfunction deepEqual(val1, val2) {\n if (val1 === val2) return true;\n\n if (_typeof(val1) === 'object') {\n for (var key in val1) {\n if (!deepEqual(val1[key], val2[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\nvar VisibilityState =\n/*#__PURE__*/\nfunction () {\n function VisibilityState(el, options, vnode) {\n _classCallCheck(this, VisibilityState);\n\n this.el = el;\n this.observer = null;\n this.frozen = false;\n this.createObserver(options, vnode);\n }\n\n _createClass(VisibilityState, [{\n key: \"createObserver\",\n value: function createObserver(options, vnode) {\n var _this = this;\n\n if (this.observer) {\n this.destroyObserver();\n }\n\n if (this.frozen) return;\n this.options = processOptions(options);\n\n this.callback = function (result, entry) {\n _this.options.callback(result, entry);\n\n if (result && _this.options.once) {\n _this.frozen = true;\n\n _this.destroyObserver();\n }\n }; // Throttle\n\n\n if (this.callback && this.options.throttle) {\n var _ref = this.options.throttleOptions || {},\n _leading = _ref.leading;\n\n this.callback = throttle(this.callback, this.options.throttle, {\n leading: function leading(state) {\n return _leading === 'both' || _leading === 'visible' && state || _leading === 'hidden' && !state;\n }\n });\n }\n\n this.oldResult = undefined;\n this.observer = new IntersectionObserver(function (entries) {\n var entry = entries[0];\n\n if (entries.length > 1) {\n var intersectingEntry = entries.find(function (e) {\n return e.isIntersecting;\n });\n\n if (intersectingEntry) {\n entry = intersectingEntry;\n }\n }\n\n if (_this.callback) {\n // Use isIntersecting if possible because browsers can report isIntersecting as true, but intersectionRatio as 0, when something very slowly enters the viewport.\n var result = entry.isIntersecting && entry.intersectionRatio >= _this.threshold;\n if (result === _this.oldResult) return;\n _this.oldResult = result;\n\n _this.callback(result, entry);\n }\n }, this.options.intersection); // Wait for the element to be in document\n\n vnode.context.$nextTick(function () {\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n } // Cancel throttled call\n\n\n if (this.callback && this.callback._clear) {\n this.callback._clear();\n\n this.callback = null;\n }\n }\n }, {\n key: \"threshold\",\n get: function get() {\n return this.options.intersection && this.options.intersection.threshold || 0;\n }\n }]);\n\n return VisibilityState;\n}();\n\nfunction bind(el, _ref2, vnode) {\n var value = _ref2.value;\n if (!value) return;\n\n if (typeof IntersectionObserver === 'undefined') {\n console.warn('[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill');\n } else {\n var state = new VisibilityState(el, value, vnode);\n el._vue_visibilityState = state;\n }\n}\n\nfunction update(el, _ref3, vnode) {\n var value = _ref3.value,\n oldValue = _ref3.oldValue;\n if (deepEqual(value, oldValue)) return;\n var state = el._vue_visibilityState;\n\n if (!value) {\n unbind(el);\n return;\n }\n\n if (state) {\n state.createObserver(value, vnode);\n } else {\n bind(el, {\n value: value\n }, vnode);\n }\n}\n\nfunction unbind(el) {\n var state = el._vue_visibilityState;\n\n if (state) {\n state.destroyObserver();\n delete el._vue_visibilityState;\n }\n}\n\nvar ObserveVisibility = {\n bind: bind,\n update: update,\n unbind: unbind\n};\n\nfunction install(Vue) {\n Vue.directive('observe-visibility', ObserveVisibility);\n /* -- Add more components here -- */\n}\n/* -- Plugin definition & Auto-install -- */\n\n/* You shouldn't have to modify the code below */\n// Plugin\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"0.4.6\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { ObserveVisibility, install };\n","(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Scrollparent = factory();\n }\n}(this, function () {\n var regex = /(auto|scroll)/;\n\n var parents = function (node, ps) {\n if (node.parentNode === null) { return ps; }\n\n return parents(node.parentNode, ps.concat([node]));\n };\n\n var style = function (node, prop) {\n return getComputedStyle(node, null).getPropertyValue(prop);\n };\n\n var overflow = function (node) {\n return style(node, \"overflow\") + style(node, \"overflow-y\") + style(node, \"overflow-x\");\n };\n\n var scroll = function (node) {\n return regex.test(overflow(node));\n };\n\n var scrollParent = function (node) {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return ;\n }\n\n var ps = parents(node.parentNode, []);\n\n for (var i = 0; i < ps.length; i += 1) {\n if (scroll(ps[i])) {\n return ps[i];\n }\n }\n\n return document.scrollingElement || document.documentElement;\n };\n\n return scrollParent;\n}));\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: VERSION,\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n"],"names":["itemsLimit","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_toConsumableArray","arr","Array","isArray","arr2","_arrayWithoutHoles","iter","toString","call","from","_iterableToArray","TypeError","_nonIterableSpread","VisibilityState","el","options","vnode","instance","Constructor","_classCallCheck","this","observer","frozen","createObserver","protoProps","staticProps","value","_this","destroyObserver","callback","result","entry","once","throttle","_leading","throttleOptions","leading","delay","timeout","lastState","currentArgs","arguments","undefined","throttled","state","_len","args","_key","apply","concat","clearTimeout","setTimeout","_clear","oldResult","IntersectionObserver","entries","intersectingEntry","find","e","isIntersecting","intersectionRatio","threshold","intersection","context","$nextTick","observe","disconnect","get","bind","_ref2","console","warn","_vue_visibilityState","unbind","ObserveVisibility","update","_ref3","deepEqual","val1","val2","oldValue","plugin","version","install","Vue","directive","GlobalVue","window","global","use","root","factory","regex","parents","node","ps","parentNode","style","prop","getComputedStyle","getPropertyValue","scroll","test","overflow","HTMLElement","SVGElement","document","scrollingElement","documentElement","module","exports","Scrollparent","items","type","required","keyField","String","default","direction","validator","includes","simpleArray","supportsPassive","opts","addEventListener","normalizeComponent","template","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","render","staticRenderFns","_compiled","functional","_scopeId","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","VERSION","finalOptions","assign","installComponents","componentsPrefix","config","prefix","component","RecycleScroller","DynamicScroller","DynamicScrollerItem","registerComponents","idProp","vm","item","id","store","data","idState","created","$_id","$_getId","$watch","handler","_this2","immediate","$_updateIdState","beforeUpdate","methods","$_idStateInit","$set","Error"],"mappings":"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"} \ No newline at end of file diff --git a/dist/vue-virtual-scroller.umd.js b/dist/vue-virtual-scroller.umd.js index 796d0c52..e41ff127 100644 --- a/dist/vue-virtual-scroller.umd.js +++ b/dist/vue-virtual-scroller.umd.js @@ -147,119 +147,6 @@ }; } - function getInternetExplorerVersion() { - var ua = window.navigator.userAgent; - - var msie = ua.indexOf('MSIE '); - if (msie > 0) { - // IE 10 or older => return version number - return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10); - } - - var trident = ua.indexOf('Trident/'); - if (trident > 0) { - // IE 11 => return version number - var rv = ua.indexOf('rv:'); - return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10); - } - - var edge = ua.indexOf('Edge/'); - if (edge > 0) { - // Edge (IE 12+) => return version number - return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10); - } - - // other browser - return -1; - } - - var isIE = void 0; - - function initCompat() { - if (!initCompat.init) { - initCompat.init = true; - isIE = getInternetExplorerVersion() !== -1; - } - } - - var ResizeObserver$1 = { render: function render() { - var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: "resize-observer", attrs: { "tabindex": "-1" } }); - }, staticRenderFns: [], _scopeId: 'data-v-b329ee4c', - name: 'resize-observer', - - methods: { - compareAndNotify: function compareAndNotify() { - if (this._w !== this.$el.offsetWidth || this._h !== this.$el.offsetHeight) { - this._w = this.$el.offsetWidth; - this._h = this.$el.offsetHeight; - this.$emit('notify'); - } - }, - addResizeHandlers: function addResizeHandlers() { - this._resizeObject.contentDocument.defaultView.addEventListener('resize', this.compareAndNotify); - this.compareAndNotify(); - }, - removeResizeHandlers: function removeResizeHandlers() { - if (this._resizeObject && this._resizeObject.onload) { - if (!isIE && this._resizeObject.contentDocument) { - this._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.compareAndNotify); - } - delete this._resizeObject.onload; - } - } - }, - - mounted: function mounted() { - var _this = this; - - initCompat(); - this.$nextTick(function () { - _this._w = _this.$el.offsetWidth; - _this._h = _this.$el.offsetHeight; - }); - var object = document.createElement('object'); - this._resizeObject = object; - object.setAttribute('aria-hidden', 'true'); - object.setAttribute('tabindex', -1); - object.onload = this.addResizeHandlers; - object.type = 'text/html'; - if (isIE) { - this.$el.appendChild(object); - } - object.data = 'about:blank'; - if (!isIE) { - this.$el.appendChild(object); - } - }, - beforeDestroy: function beforeDestroy() { - this.removeResizeHandlers(); - } - }; - - // Install the components - function install(Vue) { - Vue.component('resize-observer', ResizeObserver$1); - Vue.component('ResizeObserver', ResizeObserver$1); - } - - // Plugin - var plugin = { - // eslint-disable-next-line no-undef - version: "0.4.5", - install: install - }; - - // Auto-install - var GlobalVue = null; - if (typeof window !== 'undefined') { - GlobalVue = window.Vue; - } else if (typeof global !== 'undefined') { - GlobalVue = global.Vue; - } - if (GlobalVue) { - GlobalVue.use(plugin); - } - function _typeof$1(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof$1 = function (obj) { @@ -533,7 +420,7 @@ unbind: unbind }; - function install$1(Vue) { + function install(Vue) { Vue.directive('observe-visibility', ObserveVisibility); /* -- Add more components here -- */ } @@ -542,22 +429,22 @@ /* You shouldn't have to modify the code below */ // Plugin - var plugin$1 = { + var plugin = { // eslint-disable-next-line no-undef version: "0.4.6", - install: install$1 + install: install }; - var GlobalVue$1 = null; + var GlobalVue = null; if (typeof window !== 'undefined') { - GlobalVue$1 = window.Vue; + GlobalVue = window.Vue; } else if (typeof global !== 'undefined') { - GlobalVue$1 = global.Vue; + GlobalVue = global.Vue; } - if (GlobalVue$1) { - GlobalVue$1.use(plugin$1); + if (GlobalVue) { + GlobalVue.use(plugin); } var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; @@ -653,9 +540,6 @@ var uid = 0; var script = { name: 'RecycleScroller', - components: { - ResizeObserver: ResizeObserver$1 - }, directives: { ObserveVisibility: ObserveVisibility }, @@ -759,7 +643,7 @@ this.$_endIndex = 0; this.$_views = new Map(); this.$_unusedViews = new Map(); - this.$_scrollDirty = false; + this.$_scrollAnimationRequest = null; this.$_lastUpdateScrollPosition = 0; // In SSR mode, we also prerender the same number of item for the first render // to avoir mismatch between server and client templates @@ -772,6 +656,11 @@ var _this = this; this.applyPageMode(); + + var _this$startEndIndex = this.startEndIndex(this.getScroll()), + totalSize = _this$startEndIndex.totalSize; + + this.$refs.wrapper.style[this.direction === 'vertical' ? 'minHeight' : 'minWidth'] = totalSize + 'px'; this.$nextTick(function () { // In SSR mode, render the real number of visible items _this.$_prerender = false; @@ -808,13 +697,12 @@ var fake = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var unusedViews = this.$_unusedViews; var type = view.nr.type; - var unusedPool = unusedViews.get(type); - if (!unusedPool) { - unusedPool = []; - unusedViews.set(type, unusedPool); + if (!unusedViews.get(type)) { + unusedViews.set(type, []); } + var unusedPool = unusedViews.get(type); unusedPool.push(view); if (!fake) { @@ -830,28 +718,26 @@ handleScroll: function handleScroll(event) { var _this2 = this; - if (!this.$_scrollDirty) { - this.$_scrollDirty = true; - requestAnimationFrame(function () { - _this2.$_scrollDirty = false; + cancelAnimationFrame(this.$_scrollAnimationRequest); + this.$_scrollAnimationRequest = requestAnimationFrame(function () { + _this2.$_scrollAnimationRequest = false; - var _this2$updateVisibleI = _this2.updateVisibleItems(false, true), - continuous = _this2$updateVisibleI.continuous; // It seems sometimes chrome doesn't fire scroll event :/ - // When non continous scrolling is ending, we force a refresh + var _this2$updateVisibleI = _this2.updateVisibleItems(false, true), + continuous = _this2$updateVisibleI.continuous; // It seems sometimes chrome doesn't fire scroll event :/ + // When non continous scrolling is ending, we force a refresh - if (!continuous) { - clearTimeout(_this2.$_refreshTimout); - _this2.$_refreshTimout = setTimeout(_this2.handleScroll, 100); - } - }); - } + if (!continuous) { + clearTimeout(_this2.$_refreshTimout); + _this2.$_refreshTimout = setTimeout(_this2.handleScroll, 100); + } + }); }, handleVisibilityChange: function handleVisibilityChange(isVisible, entry) { var _this3 = this; if (this.ready) { - if (isVisible || entry.boundingClientRect.width !== 0 || entry.boundingClientRect.height !== 0) { + if (isVisible) { this.$emit('visible'); requestAnimationFrame(function () { _this3.updateVisibleItems(false); @@ -861,6 +747,87 @@ } } }, + startEndIndex: function startEndIndex(scroll) { + var itemSize = this.itemSize; + var items = this.items; + var count = items.length; + var sizes = this.sizes; + + if (!count) { + return { + startIndex: 0, + endIndex: 0, + totalSize: 0 + }; + } + + if (this.$_prerender) { + return { + startIndex: 0, + endIndex: this.prerender, + totalSize: null + }; + } + + this.$_lastUpdateScrollPosition = scroll.originalStart; + var buffer = this.buffer; + scroll.start -= buffer; + scroll.end += buffer; // Variable size mode + + if (itemSize === null) { + var h; + var a = 0; + var b = count - 1; + var i = ~~(count / 2); + var oldI; // Searching for startIndex + + do { + oldI = i; + h = sizes[i].accumulator; + + if (h < scroll.start) { + a = i; + } else if (i < count - 1 && sizes[i + 1].accumulator > scroll.start) { + b = i; + } + + i = ~~((a + b) / 2); + } while (i !== oldI); + + i < 0 && (i = 0); + var _startIndex = i; // For container style + + var _totalSize = sizes[count - 1].accumulator; // Searching for endIndex + + var _endIndex; + + for (_endIndex = i; _endIndex < count && sizes[_endIndex].accumulator < scroll.end; _endIndex++) { + if (_endIndex === -1) { + _endIndex = items.length - 1; + } else { + _endIndex++; // Bounds + + _endIndex > count && (_endIndex = count); + } + } + + return { + startIndex: _startIndex, + endIndex: _endIndex, + totalSize: _totalSize + }; + } // Fixed size mode + + + var startIndex = Math.max(0, ~~(scroll.start / itemSize)); + var endIndex = Math.min(count, Math.ceil(scroll.end / itemSize)); + var totalSize = count * itemSize; + return { + startIndex: startIndex, + endIndex: endIndex, + totalSize: totalSize + }; + }, updateVisibleItems: function updateVisibleItems(checkItem) { var checkPositionDiff = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var itemSize = this.itemSize; @@ -873,8 +840,6 @@ var views = this.$_views; var unusedViews = this.$_unusedViews; var pool = this.pool; - var startIndex, endIndex; - var totalSize; var scroll; if (count && !this.$_prerender) { @@ -891,63 +856,10 @@ } } - if (!count) { - startIndex = endIndex = totalSize = 0; - } else if (this.$_prerender) { - startIndex = 0; - endIndex = this.prerender; - totalSize = null; - } else { - this.$_lastUpdateScrollPosition = scroll.originalStart; - var buffer = this.buffer; - scroll.start -= buffer; - scroll.end += buffer; // Variable size mode - - if (itemSize === null) { - var h; - var a = 0; - var b = count - 1; - var i = ~~(count / 2); - var oldI; // Searching for startIndex - - do { - oldI = i; - h = sizes[i].accumulator; - - if (h < scroll.start) { - a = i; - } else if (i < count - 1 && sizes[i + 1].accumulator > scroll.start) { - b = i; - } - - i = ~~((a + b) / 2); - } while (i !== oldI); - - i < 0 && (i = 0); - startIndex = i; // For container style - - totalSize = sizes[count - 1].accumulator; // Searching for endIndex - - for (endIndex = i; endIndex < count && sizes[endIndex].accumulator < scroll.end; endIndex++) { - } - - if (endIndex === -1) { - endIndex = items.length - 1; - } else { - endIndex++; // Bounds - - endIndex > count && (endIndex = count); - } - } else { - // Fixed size mode - startIndex = ~~(scroll.start / itemSize); - endIndex = Math.ceil(scroll.end / itemSize); // Bounds - - startIndex < 0 && (startIndex = 0); - endIndex > count && (endIndex = count); - totalSize = count * itemSize; - } - } + var _this$startEndIndex2 = this.startEndIndex(scroll), + startIndex = _this$startEndIndex2.startIndex, + endIndex = _this$startEndIndex2.endIndex, + totalSize = _this$startEndIndex2.totalSize; if (endIndex - startIndex > config.itemsLimit) { this.itemsLimitError(); @@ -962,16 +874,16 @@ views.clear(); unusedViews.clear(); - for (var _i = 0, l = pool.length; _i < l; _i++) { - view = pool[_i]; + for (var i = 0, l = pool.length; i < l; i++) { + view = pool[i]; this.unuseView(view); } } this.$_continuous = continuous; } else if (continuous) { - for (var _i2 = 0, _l = pool.length; _i2 < _l; _i2++) { - view = pool[_i2]; + for (var _i = 0, _l = pool.length; _i < _l; _i++) { + view = pool[_i]; if (view.nr.used) { // Update view item index @@ -993,8 +905,8 @@ var item, type, unusedPool; var v; - for (var _i3 = startIndex; _i3 < endIndex; _i3++) { - item = items[_i3]; + for (var _i2 = startIndex; _i2 < endIndex; _i2++) { + item = items[_i2]; var key = keyField ? item[keyField] : item; if (key == null) { @@ -1003,7 +915,7 @@ view = views.get(key); - if (!itemSize && !sizes[_i3].size) { + if (!itemSize && !sizes[_i2].size) { if (view) this.unuseView(view); continue; } // No view assigned to item @@ -1019,11 +931,11 @@ view = unusedPool.pop(); view.item = item; view.nr.used = true; - view.nr.index = _i3; + view.nr.index = _i2; view.nr.key = key; view.nr.type = type; } else { - view = this.addView(pool, _i3, item, key, type); + view = this.addView(pool, _i2, item, key, type); } } else { // Use existing view @@ -1032,7 +944,7 @@ v = unusedIndex.get(type) || 0; if (!unusedPool || v >= unusedPool.length) { - view = this.addView(pool, _i3, item, key, type); + view = this.addView(pool, _i2, item, key, type); this.unuseView(view, true); unusedPool = unusedViews.get(type); } @@ -1040,7 +952,7 @@ view = unusedPool[v]; view.item = item; view.nr.used = true; - view.nr.index = _i3; + view.nr.index = _i2; view.nr.key = key; view.nr.type = type; unusedIndex.set(type, v + 1); @@ -1055,9 +967,9 @@ if (itemSize === null) { - view.position = sizes[_i3 - 1].accumulator; + view.position = sizes[_i2 - 1].accumulator; } else { - view.position = _i3 * itemSize; + view.position = _i2 * itemSize; } } @@ -1379,11 +1291,8 @@ [_vm._t("after")], 2 ) - : _vm._e(), - _vm._v(" "), - _c("ResizeObserver", { on: { notify: _vm.handleResize } }) - ], - 1 + : _vm._e() + ] ) }; var __vue_staticRenderFns__ = []; @@ -2035,9 +1944,9 @@ Vue.component("".concat(prefix, "DynamicScrollerItem"), __vue_component__$2); } - var plugin$2 = { + var plugin$1 = { // eslint-disable-next-line no-undef - version: '"1.1.1"', + version: "1.2.0", install: function install(Vue, options) { var finalOptions = Object.assign({}, { installComponents: true, @@ -2056,23 +1965,23 @@ } }; - var GlobalVue$2 = null; + var GlobalVue$1 = null; if (typeof window !== 'undefined') { - GlobalVue$2 = window.Vue; + GlobalVue$1 = window.Vue; } else if (typeof global !== 'undefined') { - GlobalVue$2 = global.Vue; + GlobalVue$1 = global.Vue; } - if (GlobalVue$2) { - GlobalVue$2.use(plugin$2); + if (GlobalVue$1) { + GlobalVue$1.use(plugin$1); } exports.DynamicScroller = __vue_component__$1; exports.DynamicScrollerItem = __vue_component__$2; exports.IdState = IdState; exports.RecycleScroller = __vue_component__; - exports.default = plugin$2; + exports.default = plugin$1; Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/dist/vue-virtual-scroller.umd.js.map b/dist/vue-virtual-scroller.umd.js.map index 2374d03e..62df407b 100644 --- a/dist/vue-virtual-scroller.umd.js.map +++ b/dist/vue-virtual-scroller.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"vue-virtual-scroller.umd.js","sources":["../src/config.js","../node_modules/vue-resize/dist/vue-resize.esm.js","../node_modules/vue-observe-visibility/dist/vue-observe-visibility.esm.js","../node_modules/scrollparent/scrollparent.js","../src/components/common.js","../src/utils.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/mixins/IdState.js","../src/index.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","function getInternetExplorerVersion() {\n\tvar ua = window.navigator.userAgent;\n\n\tvar msie = ua.indexOf('MSIE ');\n\tif (msie > 0) {\n\t\t// IE 10 or older => return version number\n\t\treturn parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n\t}\n\n\tvar trident = ua.indexOf('Trident/');\n\tif (trident > 0) {\n\t\t// IE 11 => return version number\n\t\tvar rv = ua.indexOf('rv:');\n\t\treturn parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n\t}\n\n\tvar edge = ua.indexOf('Edge/');\n\tif (edge > 0) {\n\t\t// Edge (IE 12+) => return version number\n\t\treturn parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n\t}\n\n\t// other browser\n\treturn -1;\n}\n\nvar isIE = void 0;\n\nfunction initCompat() {\n\tif (!initCompat.init) {\n\t\tinitCompat.init = true;\n\t\tisIE = getInternetExplorerVersion() !== -1;\n\t}\n}\n\nvar ResizeObserver = { render: function render() {\n\t\tvar _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: \"resize-observer\", attrs: { \"tabindex\": \"-1\" } });\n\t}, staticRenderFns: [], _scopeId: 'data-v-b329ee4c',\n\tname: 'resize-observer',\n\n\tmethods: {\n\t\tcompareAndNotify: function compareAndNotify() {\n\t\t\tif (this._w !== this.$el.offsetWidth || this._h !== this.$el.offsetHeight) {\n\t\t\t\tthis._w = this.$el.offsetWidth;\n\t\t\t\tthis._h = this.$el.offsetHeight;\n\t\t\t\tthis.$emit('notify');\n\t\t\t}\n\t\t},\n\t\taddResizeHandlers: function addResizeHandlers() {\n\t\t\tthis._resizeObject.contentDocument.defaultView.addEventListener('resize', this.compareAndNotify);\n\t\t\tthis.compareAndNotify();\n\t\t},\n\t\tremoveResizeHandlers: function removeResizeHandlers() {\n\t\t\tif (this._resizeObject && this._resizeObject.onload) {\n\t\t\t\tif (!isIE && this._resizeObject.contentDocument) {\n\t\t\t\t\tthis._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.compareAndNotify);\n\t\t\t\t}\n\t\t\t\tdelete this._resizeObject.onload;\n\t\t\t}\n\t\t}\n\t},\n\n\tmounted: function mounted() {\n\t\tvar _this = this;\n\n\t\tinitCompat();\n\t\tthis.$nextTick(function () {\n\t\t\t_this._w = _this.$el.offsetWidth;\n\t\t\t_this._h = _this.$el.offsetHeight;\n\t\t});\n\t\tvar object = document.createElement('object');\n\t\tthis._resizeObject = object;\n\t\tobject.setAttribute('aria-hidden', 'true');\n\t\tobject.setAttribute('tabindex', -1);\n\t\tobject.onload = this.addResizeHandlers;\n\t\tobject.type = 'text/html';\n\t\tif (isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t\tobject.data = 'about:blank';\n\t\tif (!isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t},\n\tbeforeDestroy: function beforeDestroy() {\n\t\tthis.removeResizeHandlers();\n\t}\n};\n\n// Install the components\nfunction install(Vue) {\n\tVue.component('resize-observer', ResizeObserver);\n\tVue.component('ResizeObserver', ResizeObserver);\n}\n\n// Plugin\nvar plugin = {\n\t// eslint-disable-next-line no-undef\n\tversion: \"0.4.5\",\n\tinstall: install\n};\n\n// Auto-install\nvar GlobalVue = null;\nif (typeof window !== 'undefined') {\n\tGlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n\tGlobalVue = global.Vue;\n}\nif (GlobalVue) {\n\tGlobalVue.use(plugin);\n}\n\nexport { install, ResizeObserver };\nexport default plugin;\n","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction processOptions(value) {\n var options;\n\n if (typeof value === 'function') {\n // Simple options (callback-only)\n options = {\n callback: value\n };\n } else {\n // Options object\n options = value;\n }\n\n return options;\n}\nfunction throttle(callback, delay) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var timeout;\n var lastState;\n var currentArgs;\n\n var throttled = function throttled(state) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n currentArgs = args;\n if (timeout && state === lastState) return;\n var leading = options.leading;\n\n if (typeof leading === 'function') {\n leading = leading(state, lastState);\n }\n\n if ((!timeout || state !== lastState) && leading) {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n }\n\n lastState = state;\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n timeout = 0;\n }, delay);\n };\n\n throttled._clear = function () {\n clearTimeout(timeout);\n timeout = null;\n };\n\n return throttled;\n}\nfunction deepEqual(val1, val2) {\n if (val1 === val2) return true;\n\n if (_typeof(val1) === 'object') {\n for (var key in val1) {\n if (!deepEqual(val1[key], val2[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\nvar VisibilityState =\n/*#__PURE__*/\nfunction () {\n function VisibilityState(el, options, vnode) {\n _classCallCheck(this, VisibilityState);\n\n this.el = el;\n this.observer = null;\n this.frozen = false;\n this.createObserver(options, vnode);\n }\n\n _createClass(VisibilityState, [{\n key: \"createObserver\",\n value: function createObserver(options, vnode) {\n var _this = this;\n\n if (this.observer) {\n this.destroyObserver();\n }\n\n if (this.frozen) return;\n this.options = processOptions(options);\n\n this.callback = function (result, entry) {\n _this.options.callback(result, entry);\n\n if (result && _this.options.once) {\n _this.frozen = true;\n\n _this.destroyObserver();\n }\n }; // Throttle\n\n\n if (this.callback && this.options.throttle) {\n var _ref = this.options.throttleOptions || {},\n _leading = _ref.leading;\n\n this.callback = throttle(this.callback, this.options.throttle, {\n leading: function leading(state) {\n return _leading === 'both' || _leading === 'visible' && state || _leading === 'hidden' && !state;\n }\n });\n }\n\n this.oldResult = undefined;\n this.observer = new IntersectionObserver(function (entries) {\n var entry = entries[0];\n\n if (entries.length > 1) {\n var intersectingEntry = entries.find(function (e) {\n return e.isIntersecting;\n });\n\n if (intersectingEntry) {\n entry = intersectingEntry;\n }\n }\n\n if (_this.callback) {\n // Use isIntersecting if possible because browsers can report isIntersecting as true, but intersectionRatio as 0, when something very slowly enters the viewport.\n var result = entry.isIntersecting && entry.intersectionRatio >= _this.threshold;\n if (result === _this.oldResult) return;\n _this.oldResult = result;\n\n _this.callback(result, entry);\n }\n }, this.options.intersection); // Wait for the element to be in document\n\n vnode.context.$nextTick(function () {\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n } // Cancel throttled call\n\n\n if (this.callback && this.callback._clear) {\n this.callback._clear();\n\n this.callback = null;\n }\n }\n }, {\n key: \"threshold\",\n get: function get() {\n return this.options.intersection && this.options.intersection.threshold || 0;\n }\n }]);\n\n return VisibilityState;\n}();\n\nfunction bind(el, _ref2, vnode) {\n var value = _ref2.value;\n if (!value) return;\n\n if (typeof IntersectionObserver === 'undefined') {\n console.warn('[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill');\n } else {\n var state = new VisibilityState(el, value, vnode);\n el._vue_visibilityState = state;\n }\n}\n\nfunction update(el, _ref3, vnode) {\n var value = _ref3.value,\n oldValue = _ref3.oldValue;\n if (deepEqual(value, oldValue)) return;\n var state = el._vue_visibilityState;\n\n if (!value) {\n unbind(el);\n return;\n }\n\n if (state) {\n state.createObserver(value, vnode);\n } else {\n bind(el, {\n value: value\n }, vnode);\n }\n}\n\nfunction unbind(el) {\n var state = el._vue_visibilityState;\n\n if (state) {\n state.destroyObserver();\n delete el._vue_visibilityState;\n }\n}\n\nvar ObserveVisibility = {\n bind: bind,\n update: update,\n unbind: unbind\n};\n\nfunction install(Vue) {\n Vue.directive('observe-visibility', ObserveVisibility);\n /* -- Add more components here -- */\n}\n/* -- Plugin definition & Auto-install -- */\n\n/* You shouldn't have to modify the code below */\n// Plugin\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"0.4.6\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { ObserveVisibility, install };\n","(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Scrollparent = factory();\n }\n}(this, function () {\n var regex = /(auto|scroll)/;\n\n var parents = function (node, ps) {\n if (node.parentNode === null) { return ps; }\n\n return parents(node.parentNode, ps.concat([node]));\n };\n\n var style = function (node, prop) {\n return getComputedStyle(node, null).getPropertyValue(prop);\n };\n\n var overflow = function (node) {\n return style(node, \"overflow\") + style(node, \"overflow-y\") + style(node, \"overflow-x\");\n };\n\n var scroll = function (node) {\n return regex.test(overflow(node));\n };\n\n var scrollParent = function (node) {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return ;\n }\n\n var ps = parents(node.parentNode, []);\n\n for (var i = 0; i < ps.length; i += 1) {\n if (scroll(ps[i])) {\n return ps[i];\n }\n }\n\n return document.scrollingElement || document.documentElement;\n };\n\n return scrollParent;\n}));\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: 'VERSION',\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n"],"names":["itemsLimit","ResizeObserver","_typeof","install","plugin","GlobalVue","this","props","items","type","Array","required","keyField","String","default","direction","validator","value","includes","simpleArray","length","supportsPassive","window","opts","Object","defineProperty","get","addEventListener","e","idProp","vm","item","id","store","Vue","data","idState","created","$_id","$_getId","call","$watch","handler","$nextTick","immediate","$_updateIdState","beforeUpdate","methods","$_idStateInit","factory","$options","$set","Error","console","warn","registerComponents","prefix","component","RecycleScroller","DynamicScroller","DynamicScrollerItem","version","options","finalOptions","assign","installComponents","componentsPrefix","key","config","global","use"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"vue-virtual-scroller.umd.js","sources":["../src/config.js","../node_modules/vue-observe-visibility/dist/vue-observe-visibility.esm.js","../node_modules/scrollparent/scrollparent.js","../src/components/common.js","../src/utils.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/mixins/IdState.js","../src/index.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction processOptions(value) {\n var options;\n\n if (typeof value === 'function') {\n // Simple options (callback-only)\n options = {\n callback: value\n };\n } else {\n // Options object\n options = value;\n }\n\n return options;\n}\nfunction throttle(callback, delay) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var timeout;\n var lastState;\n var currentArgs;\n\n var throttled = function throttled(state) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n currentArgs = args;\n if (timeout && state === lastState) return;\n var leading = options.leading;\n\n if (typeof leading === 'function') {\n leading = leading(state, lastState);\n }\n\n if ((!timeout || state !== lastState) && leading) {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n }\n\n lastState = state;\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n timeout = 0;\n }, delay);\n };\n\n throttled._clear = function () {\n clearTimeout(timeout);\n timeout = null;\n };\n\n return throttled;\n}\nfunction deepEqual(val1, val2) {\n if (val1 === val2) return true;\n\n if (_typeof(val1) === 'object') {\n for (var key in val1) {\n if (!deepEqual(val1[key], val2[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\nvar VisibilityState =\n/*#__PURE__*/\nfunction () {\n function VisibilityState(el, options, vnode) {\n _classCallCheck(this, VisibilityState);\n\n this.el = el;\n this.observer = null;\n this.frozen = false;\n this.createObserver(options, vnode);\n }\n\n _createClass(VisibilityState, [{\n key: \"createObserver\",\n value: function createObserver(options, vnode) {\n var _this = this;\n\n if (this.observer) {\n this.destroyObserver();\n }\n\n if (this.frozen) return;\n this.options = processOptions(options);\n\n this.callback = function (result, entry) {\n _this.options.callback(result, entry);\n\n if (result && _this.options.once) {\n _this.frozen = true;\n\n _this.destroyObserver();\n }\n }; // Throttle\n\n\n if (this.callback && this.options.throttle) {\n var _ref = this.options.throttleOptions || {},\n _leading = _ref.leading;\n\n this.callback = throttle(this.callback, this.options.throttle, {\n leading: function leading(state) {\n return _leading === 'both' || _leading === 'visible' && state || _leading === 'hidden' && !state;\n }\n });\n }\n\n this.oldResult = undefined;\n this.observer = new IntersectionObserver(function (entries) {\n var entry = entries[0];\n\n if (entries.length > 1) {\n var intersectingEntry = entries.find(function (e) {\n return e.isIntersecting;\n });\n\n if (intersectingEntry) {\n entry = intersectingEntry;\n }\n }\n\n if (_this.callback) {\n // Use isIntersecting if possible because browsers can report isIntersecting as true, but intersectionRatio as 0, when something very slowly enters the viewport.\n var result = entry.isIntersecting && entry.intersectionRatio >= _this.threshold;\n if (result === _this.oldResult) return;\n _this.oldResult = result;\n\n _this.callback(result, entry);\n }\n }, this.options.intersection); // Wait for the element to be in document\n\n vnode.context.$nextTick(function () {\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n } // Cancel throttled call\n\n\n if (this.callback && this.callback._clear) {\n this.callback._clear();\n\n this.callback = null;\n }\n }\n }, {\n key: \"threshold\",\n get: function get() {\n return this.options.intersection && this.options.intersection.threshold || 0;\n }\n }]);\n\n return VisibilityState;\n}();\n\nfunction bind(el, _ref2, vnode) {\n var value = _ref2.value;\n if (!value) return;\n\n if (typeof IntersectionObserver === 'undefined') {\n console.warn('[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill');\n } else {\n var state = new VisibilityState(el, value, vnode);\n el._vue_visibilityState = state;\n }\n}\n\nfunction update(el, _ref3, vnode) {\n var value = _ref3.value,\n oldValue = _ref3.oldValue;\n if (deepEqual(value, oldValue)) return;\n var state = el._vue_visibilityState;\n\n if (!value) {\n unbind(el);\n return;\n }\n\n if (state) {\n state.createObserver(value, vnode);\n } else {\n bind(el, {\n value: value\n }, vnode);\n }\n}\n\nfunction unbind(el) {\n var state = el._vue_visibilityState;\n\n if (state) {\n state.destroyObserver();\n delete el._vue_visibilityState;\n }\n}\n\nvar ObserveVisibility = {\n bind: bind,\n update: update,\n unbind: unbind\n};\n\nfunction install(Vue) {\n Vue.directive('observe-visibility', ObserveVisibility);\n /* -- Add more components here -- */\n}\n/* -- Plugin definition & Auto-install -- */\n\n/* You shouldn't have to modify the code below */\n// Plugin\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"0.4.6\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { ObserveVisibility, install };\n","(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Scrollparent = factory();\n }\n}(this, function () {\n var regex = /(auto|scroll)/;\n\n var parents = function (node, ps) {\n if (node.parentNode === null) { return ps; }\n\n return parents(node.parentNode, ps.concat([node]));\n };\n\n var style = function (node, prop) {\n return getComputedStyle(node, null).getPropertyValue(prop);\n };\n\n var overflow = function (node) {\n return style(node, \"overflow\") + style(node, \"overflow-y\") + style(node, \"overflow-x\");\n };\n\n var scroll = function (node) {\n return regex.test(overflow(node));\n };\n\n var scrollParent = function (node) {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return ;\n }\n\n var ps = parents(node.parentNode, []);\n\n for (var i = 0; i < ps.length; i += 1) {\n if (scroll(ps[i])) {\n return ps[i];\n }\n }\n\n return document.scrollingElement || document.documentElement;\n };\n\n return scrollParent;\n}));\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: VERSION,\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n"],"names":["itemsLimit","_typeof","this","props","items","type","Array","required","keyField","String","default","direction","validator","value","includes","simpleArray","length","supportsPassive","window","opts","Object","defineProperty","get","addEventListener","e","idProp","vm","item","id","store","Vue","data","idState","created","$_id","$_getId","call","$watch","handler","$nextTick","immediate","$_updateIdState","beforeUpdate","methods","$_idStateInit","factory","$options","$set","Error","console","warn","registerComponents","prefix","component","RecycleScroller","DynamicScroller","DynamicScrollerItem","plugin","version","VERSION","install","options","finalOptions","assign","installComponents","componentsPrefix","key","config","GlobalVue","global","use"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 0d5a87d2..c6a9916d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@startinfinity/vue-virtual-scroller", "description": "Smooth scrolling for any amount of data", - "version": "1.1.1", + "version": "1.2.0", "author": { "name": "Guillaume Chau", "email": "guillaume.b.chau@gmail.com" diff --git a/src/components/RecycleScroller.vue b/src/components/RecycleScroller.vue index 94050d33..0cd598e8 100644 --- a/src/components/RecycleScroller.vue +++ b/src/components/RecycleScroller.vue @@ -51,7 +51,6 @@ \n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: VERSION,\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n"],"names":["itemsLimit","props","items","type","Array","required","keyField","String","default","direction","validator","value","includes","simpleArray","length","supportsPassive","window","opts","Object","defineProperty","get","addEventListener","e","idProp","vm","item","id","store","Vue","data","idState","created","$_id","$_getId","call","$watch","handler","$nextTick","immediate","$_updateIdState","beforeUpdate","methods","$_idStateInit","factory","$options","$set","Error","console","warn","registerComponents","prefix","component","RecycleScroller","DynamicScroller","DynamicScrollerItem","plugin","version","VERSION","install","options","finalOptions","assign","installComponents","componentsPrefix","key","config","GlobalVue","global","use"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"vue-virtual-scroller.esm.js","sources":["../src/config.js","../src/components/common.js","../src/utils.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/mixins/IdState.js","../src/index.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: VERSION,\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n"],"names":["itemsLimit","props","items","type","Array","required","keyField","String","default","direction","validator","value","includes","simpleArray","length","supportsPassive","window","opts","Object","defineProperty","get","addEventListener","e","idProp","vm","item","id","store","Vue","data","idState","created","$_id","$_getId","call","$watch","handler","$nextTick","immediate","$_updateIdState","beforeUpdate","methods","$_idStateInit","factory","$options","$set","Error","console","warn","registerComponents","prefix","component","RecycleScroller","DynamicScroller","DynamicScrollerItem","plugin","version","VERSION","install","options","finalOptions","assign","installComponents","componentsPrefix","key","config","GlobalVue","global","use"],"mappings":"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"} \ No newline at end of file diff --git a/dist/vue-virtual-scroller.min.js b/dist/vue-virtual-scroller.min.js index ea448314..fac75464 100644 --- a/dist/vue-virtual-scroller.min.js +++ b/dist/vue-virtual-scroller.min.js @@ -1,2 +1,2 @@ -var VueVirtualScroller=function(e,t){"use strict";t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;var i={itemsLimit:1e3};function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function o(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function s(e){for(var t=1;te.length)&&(t=e.length);for(var i=0,n=new Array(t);i=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var n,r,o=!0,s=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,r=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw r}}}}function c(e){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u(e,t){for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:{},s=function(s){for(var l=arguments.length,a=new Array(l>1?l-1:0),c=1;c1){var n=e.find((function(e){return e.isIntersecting}));n&&(t=n)}if(i.callback){var r=t.isIntersecting&&t.intersectionRatio>=i.threshold;if(r===i.oldResult)return;i.oldResult=r,i.callback(r,t)}}),this.options.intersection),t.context.$nextTick((function(){i.observer&&i.observer.observe(i.el)}))}}},{key:"destroyObserver",value:function(){this.observer&&(this.observer.disconnect(),this.observer=null),this.callback&&this.callback._clear&&(this.callback._clear(),this.callback=null)}},{key:"threshold",get:function(){return this.options.intersection&&this.options.intersection.threshold||0}}])&&u(t.prototype,i),n&&u(t,n),e}();function f(e,t,i){var n=t.value;if(n)if("undefined"==typeof IntersectionObserver)console.warn("[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill");else{var r=new h(e,n,i);e._vue_visibilityState=r}}function v(e){var t=e._vue_visibilityState;t&&(t.destroyObserver(),delete e._vue_visibilityState)}var p={bind:f,update:function(e,t,i){var n=t.value;if(!function e(t,i){if(t===i)return!0;if("object"===c(t)){for(var n in t)if(!e(t[n],i[n]))return!1;return!0}return!1}(n,t.oldValue)){var r=e._vue_visibilityState;n?r?r.createObserver(n,i):f(e,{value:n},i):v(e)}},unbind:v};var m={version:"0.4.6",install:function(e){e.directive("observe-visibility",p)}},y=null;"undefined"!=typeof window?y=window.Vue:"undefined"!=typeof global&&(y=global.Vue),y&&y.use(m);var b="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var g=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){var t,i;t=b,i=function(){var e=/(auto|scroll)/,t=function(e,i){return null===e.parentNode?i:t(e.parentNode,i.concat([e]))},i=function(e,t){return getComputedStyle(e,null).getPropertyValue(t)},n=function(t){return e.test(function(e){return i(e,"overflow")+i(e,"overflow-y")+i(e,"overflow-x")}(t))};return function(e){if(e instanceof HTMLElement||e instanceof SVGElement){for(var i=t(e.parentNode,[]),r=0;r1&&void 0!==arguments[1]&&arguments[1],i=this.$_unusedViews,n=e.nr.type;i.get(n)||i.set(n,[]);var r=i.get(n);r.push(e),t||(e.nr.used=!1,e.position=-9999,this.$_views.delete(e.nr.key))},handleResize:function(){this.$emit("resize"),this.ready&&this.updateVisibleItems(!1)},handleScroll:function(e){var t=this;cancelAnimationFrame(this.$_scrollAnimationRequest),this.$_scrollAnimationRequest=requestAnimationFrame((function(){t.$_scrollAnimationRequest=!1,t.updateVisibleItems(!1,!0).continuous||(clearTimeout(t.$_refreshTimout),t.$_refreshTimout=setTimeout(t.handleScroll,100))}))},handleVisibilityChange:function(e,t){var i=this;this.ready&&(e?(this.$emit("visible"),requestAnimationFrame((function(){i.updateVisibleItems(!1)}))):this.$emit("hidden"))},startEndIndex:function(e){var t=this.itemSize,i=this.items,n=i.length,r=this.sizes;if(!n)return{startIndex:0,endIndex:0,totalSize:0};if(this.$_prerender)return{startIndex:0,endIndex:this.prerender,totalSize:null};this.$_lastUpdateScrollPosition=e.originalStart;var o=this.buffer;if(e.start-=o,e.end+=o,null===t){var s,l=0,a=n-1,c=~~(n/2);do{s=c,r[c].accumulatore.start&&(a=c),c=~~((l+a)/2)}while(c!==s);c<0&&(c=0);var u,d=c,h=r[n-1].accumulator;for(u=c;un&&(u=n);return{startIndex:d,endIndex:u,totalSize:h}}return{startIndex:Math.max(0,~~(e.start/t)),endIndex:Math.min(n,Math.ceil(e.end/t)),totalSize:n*t}},updateVisibleItems:function(e){var t,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.itemSize,o=this.$_computedMinItemSize,s=this.typeField,l=this.simpleArray?null:this.keyField,a=this.items,c=a.length,u=this.sizes,d=this.$_views,h=this.$_unusedViews,f=this.pool;if(c&&!this.$_prerender&&(t=this.getScroll(),n)){var v=Math.abs(t.originalStart-this.$_lastUpdateScrollPosition);if(null===r&&vi.itemsLimit&&this.itemsLimitError(),this.totalSize=g;var S=y<=this.$_endIndex&&b>=this.$_startIndex;if(this.$_continuous!==S){if(S){d.clear(),h.clear();for(var _=0,$=f.length;_<$;_++)p=f[_],this.unuseView(p)}this.$_continuous=S}else if(S)for(var z=0,w=f.length;z=b)&&this.unuseView(p));for(var I,x,O,D,V=S?null:new Map,R=y;R=O.length)&&(p=this.addView(f,R,I,T,x),this.unuseView(p,!0),O=h.get(x)),(p=O[D]).item=I,p.nr.used=!0,p.nr.index=R,p.nr.key=T,p.nr.type=x,V.set(x,D+1),D++),d.set(T,p)),p.position=null===r?u[R-1].accumulator:R*r):p&&this.unuseView(p)}return this.$_startIndex=y,this.$_endIndex=b,this.emitUpdate&&this.$emit("update",y,b),{continuous:S}},getListenerTarget:function(){var e=g(this.$el);return!window.document||e!==window.document.documentElement&&e!==window.document.body||(e=window),e},getScroll:function(){var e=this.$el,t="vertical"===this.direction;if(this.pageMode){var i=e.getBoundingClientRect(),n=t?i.height:i.width,r=-(t?i.top:i.left),o=r,s=t?window.innerHeight:window.innerWidth;return o<0&&(s+=o,o=0),o+s>n&&(s=n-o),{originalStart:r,start:o,end:o+s}}return t?{originalStart:e.scrollTop,start:e.scrollTop,end:e.scrollTop+e.clientHeight}:{originalStart:e.scrollLeft,start:e.scrollLeft,end:e.scrollLeft+e.clientWidth}},applyPageMode:function(){this.pageMode?this.addListeners():this.removeListeners()},addListeners:function(){this.listenerTarget=this.getListenerTarget(),this.listenerTarget.addEventListener("scroll",this.handleScroll,!!$&&{passive:!0}),this.listenerTarget.addEventListener("resize",this.handleResize)},removeListeners:function(){this.listenerTarget&&(this.listenerTarget.removeEventListener("scroll",this.handleScroll),this.listenerTarget.removeEventListener("resize",this.handleResize),this.listenerTarget=null)},scrollToItem:function(e){var t=this.scrollToPosition(e),i=t.viewport,n=t.scrollDirection,r=t.scrollDistance;i[n]=r},scrollToPosition:function(e){var t=this,i=function(e){return null===t.itemSize?e>0?t.sizes[e-1].accumulator:0:e*t.itemSize}(e),n="vertical"===this.direction?{scroll:"scrollTop",start:"top"}:{scroll:"scrollLeft",start:"left"};if(this.pageMode){var r=g(this.$el),o="HTML"===r.tagName?0:r[n.scroll],s=r.getBoundingClientRect(),l=this.$el.getBoundingClientRect()[n.start]-s[n.start];return{viewport:r,scrollDirection:n.scroll,scrollDistance:i+o+l}}return{viewport:this.$el,scrollDirection:n.scroll,scrollDistance:i}},itemsLimitError:function(){var e=this;throw setTimeout((function(){console.log("It seems the scroller element isn't scrolling, so it tries to render all the items at once.","Scroller:",e.$el),console.log("Make sure the scroller has a fixed height (or width) and 'overflow-y' (or 'overflow-x') set to 'auto' so it can scroll correctly and only render the items visible in the scroll viewport.")})),new Error("Rendered items limit reached")}}};var O=function(){var e,t,i=this,n=i.$createElement,r=i._self._c||n;return r("div",{directives:[{name:"observe-visibility",rawName:"v-observe-visibility",value:i.handleVisibilityChange,expression:"handleVisibilityChange"}],staticClass:"vue-recycle-scroller",class:(e={ready:i.ready,"page-mode":i.pageMode},e["direction-"+i.direction]=!0,e),on:{"&scroll":function(e){return i.handleScroll(e)}}},[i.$slots.before?r("div",{staticClass:"vue-recycle-scroller__slot"},[i._t("before")],2):i._e(),i._v(" "),r("div",{ref:"wrapper",staticClass:"vue-recycle-scroller__item-wrapper",style:(t={},t["vertical"===i.direction?"minHeight":"minWidth"]=i.totalSize+"px",t)},i._l(i.pool,(function(e){return r("div",{key:e.nr.id,staticClass:"vue-recycle-scroller__item-view",style:i.ready?{transform:"translate"+("vertical"===i.direction?"Y":"X")+"("+e.position+"px)"}:null,on:{mouseenter:function(e){return e.target.classList.add("hover")},mouseleave:function(e){return e.target.classList.remove("hover")}}},[i._t("default",null,{item:e.item,index:e.nr.index,active:e.nr.used})],2)})),0),i._v(" "),i.$slots.after?r("div",{staticClass:"vue-recycle-scroller__slot"},[i._t("after")],2):i._e()])};O._withStripped=!0;const D=I({render:O,staticRenderFns:[]},void 0,x,void 0,!1,void 0,!1,void 0,void 0,void 0);const V={name:"DynamicScroller",components:{RecycleScroller:D},inheritAttrs:!1,provide:function(){return"undefined"!=typeof ResizeObserver&&(this.$_resizeObserver=new ResizeObserver((function(e){var t,i=a(e);try{for(i.s();!(t=i.n()).done;){var n=t.value;if(n.target){var r=new CustomEvent("resize",{detail:{contentRect:n.contentRect}});n.target.dispatchEvent(r)}}}catch(e){i.e(e)}finally{i.f()}}))),{vscrollData:this.vscrollData,vscrollParent:this,vscrollResizeObserver:this.$_resizeObserver}},props:s({},S,{minItemSize:{type:[Number,String],required:!0}}),data:function(){return{vscrollData:{active:!0,sizes:{},validSizes:{},keyField:this.keyField,simpleArray:!1}}},computed:{simpleArray:_,itemsWithSize:function(){for(var e=[],t=this.items,i=this.keyField,n=this.simpleArray,r=this.vscrollData.sizes,o=0;o0&&void 0!==arguments[0])||arguments[0];(e||this.simpleArray)&&(this.vscrollData.validSizes={}),this.$emit("vscroll:update",{force:!0})},scrollToItem:function(e){var t=this.$refs.scroller;t&&t.scrollToItem(e)},getItemSize:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=this.simpleArray?null!=t?t:this.items.indexOf(e):e[this.keyField];return this.vscrollData.sizes[i]||0},scrollToBottom:function(){var e=this;if(!this.$_scrollingToBottom){this.$_scrollingToBottom=!0;var t=this.$el;this.$nextTick((function(){t.scrollTop=t.scrollHeight+5e3;requestAnimationFrame((function i(){t.scrollTop=t.scrollHeight+5e3,requestAnimationFrame((function(){t.scrollTop=t.scrollHeight+5e3,0===e.$_undefinedSizes?e.$_scrollingToBottom=!1:requestAnimationFrame(i)}))}))}))}}}};var R=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("RecycleScroller",e._g(e._b({ref:"scroller",attrs:{items:e.itemsWithSize,"min-item-size":e.minItemSize,direction:e.direction,"key-field":"id"},on:{resize:e.onScrollerResize,visible:e.onScrollerVisible},scopedSlots:e._u([{key:"default",fn:function(t){var i=t.item,n=t.index,r=t.active;return[e._t("default",null,null,{item:i.item,index:n,active:r,itemWithSize:i})]}}],null,!0)},"RecycleScroller",e.$attrs,!1),e.listeners),[e._v(" "),i("template",{slot:"before"},[e._t("before")],2),e._v(" "),i("template",{slot:"after"},[e._t("after")],2)],2)};R._withStripped=!0;const T=I({render:R,staticRenderFns:[]},void 0,V,void 0,!1,void 0,!1,void 0,void 0,void 0);const P=I({},void 0,{name:"DynamicScrollerItem",inject:["vscrollData","vscrollParent","vscrollResizeObserver"],props:{item:{required:!0},watchData:{type:Boolean,default:!1},active:{type:Boolean,required:!0},index:{type:Number,default:void 0},sizeDependencies:{type:[Array,Object],default:null},emitResize:{type:Boolean,default:!1},tag:{type:String,default:"div"}},computed:{id:function(){return this.vscrollData.simpleArray?this.index:this.item[this.vscrollData.keyField]},size:function(){return this.vscrollData.validSizes[this.id]&&this.vscrollData.sizes[this.id]||0},finalActive:function(){return this.active&&this.vscrollData.active}},watch:{watchData:"updateWatchData",id:function(){this.size||this.onDataUpdate()},finalActive:function(e){this.size||(e?this.vscrollParent.$_undefinedMap[this.id]||(this.vscrollParent.$_undefinedSizes++,this.vscrollParent.$_undefinedMap[this.id]=!0):this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=!1)),this.vscrollResizeObserver?e?this.observeSize():this.unobserveSize():e&&this.$_pendingVScrollUpdate===this.id&&this.updateSize()}},created:function(){var e=this;if(!this.$isServer&&(this.$_forceNextVScrollUpdate=null,this.updateWatchData(),!this.vscrollResizeObserver)){var t=function(t){e.$watch((function(){return e.sizeDependencies[t]}),e.onDataUpdate)};for(var i in this.sizeDependencies)t(i);this.vscrollParent.$on("vscroll:update",this.onVscrollUpdate),this.vscrollParent.$on("vscroll:update-size",this.onVscrollUpdateSize)}},mounted:function(){this.vscrollData.active&&(this.updateSize(),this.observeSize())},beforeDestroy:function(){this.vscrollParent.$off("vscroll:update",this.onVscrollUpdate),this.vscrollParent.$off("vscroll:update-size",this.onVscrollUpdateSize),this.unobserveSize()},methods:{updateSize:function(){this.finalActive?this.$_pendingSizeUpdate!==this.id&&(this.$_pendingSizeUpdate=this.id,this.$_forceNextVScrollUpdate=null,this.$_pendingVScrollUpdate=null,this.computeSize(this.id)):this.$_forceNextVScrollUpdate=this.id},updateWatchData:function(){var e=this;this.watchData?this.$_watchData=this.$watch("data",(function(){e.onDataUpdate()}),{deep:!0}):this.$_watchData&&(this.$_watchData(),this.$_watchData=null)},onVscrollUpdate:function(e){var t=e.force;!this.finalActive&&t&&(this.$_pendingVScrollUpdate=this.id),this.$_forceNextVScrollUpdate!==this.id&&!t&&this.size||this.updateSize()},onDataUpdate:function(){this.updateSize()},computeSize:function(e){var t=this;this.$nextTick((function(){if(t.id===e){var i=t.$el.offsetWidth,n=t.$el.offsetHeight;t.applySize(i,n)}t.$_pendingSizeUpdate=null}))},applySize:function(e,t){var i=Math.round("vertical"===this.vscrollParent.direction?t:e);i&&this.size!==i&&(this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=void 0),this.$set(this.vscrollData.sizes,this.id,i),this.$set(this.vscrollData.validSizes,this.id,!0),this.emitResize&&this.$emit("resize",this.id))},observeSize:function(){this.vscrollResizeObserver&&(this.vscrollResizeObserver.observe(this.$el.parentNode),this.$el.parentNode.addEventListener("resize",this.onResize))},unobserveSize:function(){this.vscrollResizeObserver&&(this.vscrollResizeObserver.unobserve(this.$el.parentNode),this.$el.parentNode.removeEventListener("resize",this.onResize))},onResize:function(e){var t=e.detail.contentRect,i=t.width,n=t.height;this.applySize(i,n)}},render:function(e){return e(this.tag,this.$slots.default)}},void 0,void 0,void 0,!1,void 0,void 0,void 0);var A={version:"1.2.0",install:function(e,t){var n=Object.assign({},{installComponents:!0,componentsPrefix:""},t);for(var r in n)void 0!==n[r]&&(i[r]=n[r]);n.installComponents&&function(e,t){e.component("".concat(t,"recycle-scroller"),D),e.component("".concat(t,"RecycleScroller"),D),e.component("".concat(t,"dynamic-scroller"),T),e.component("".concat(t,"DynamicScroller"),T),e.component("".concat(t,"dynamic-scroller-item"),P),e.component("".concat(t,"DynamicScrollerItem"),P)}(e,n.componentsPrefix)}},k=null;return"undefined"!=typeof window?k=window.Vue:"undefined"!=typeof global&&(k=global.Vue),k&&k.use(A),e.DynamicScroller=T,e.DynamicScrollerItem=P,e.IdState=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=e.idProp,n=void 0===i?function(e){return e.item.id}:i,r={},o=new t({data:function(){return{store:r}}});return{data:function(){return{idState:null}},created:function(){var e=this;this.$_id=null,this.$_getId="function"==typeof n?function(){return n.call(e,e)}:function(){return e[n]},this.$watch(this.$_getId,{handler:function(e){var t=this;this.$nextTick((function(){t.$_id=e}))},immediate:!0}),this.$_updateIdState()},beforeUpdate:function(){this.$_updateIdState()},methods:{$_idStateInit:function(e){var t=this.$options.idState;if("function"==typeof t){var i=t.call(this,this);return o.$set(r,e,i),this.$_id=e,i}throw new Error("[mixin IdState] Missing `idState` function on component definition.")},$_updateIdState:function(){var e=this.$_getId();null==e&&console.warn("No id found for IdState with idProp: '".concat(n,"'.")),e!==this.$_id&&(r[e]||this.$_idStateInit(e),this.idState=r[e])}}}},e.RecycleScroller=D,e.default=A,e}({},Vue); +var VueVirtualScroller=function(e,t){"use strict";t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;var i={itemsLimit:1e3};function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function o(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function s(e){for(var t=1;te.length)&&(t=e.length);for(var i=0,n=new Array(t);i=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var n,r,o=!0,s=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,r=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw r}}}}function c(e){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function d(e,t){for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:{},s=function(s){for(var l=arguments.length,a=new Array(l>1?l-1:0),c=1;c1){var n=e.find((function(e){return e.isIntersecting}));n&&(t=n)}if(i.callback){var r=t.isIntersecting&&t.intersectionRatio>=i.threshold;if(r===i.oldResult)return;i.oldResult=r,i.callback(r,t)}}),this.options.intersection),t.context.$nextTick((function(){i.observer&&i.observer.observe(i.el)}))}}},{key:"destroyObserver",value:function(){this.observer&&(this.observer.disconnect(),this.observer=null),this.callback&&this.callback._clear&&(this.callback._clear(),this.callback=null)}},{key:"threshold",get:function(){return this.options.intersection&&this.options.intersection.threshold||0}}])&&d(t.prototype,i),n&&d(t,n),e}();function f(e,t,i){var n=t.value;if(n)if("undefined"==typeof IntersectionObserver)console.warn("[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill");else{var r=new h(e,n,i);e._vue_visibilityState=r}}function v(e){var t=e._vue_visibilityState;t&&(t.destroyObserver(),delete e._vue_visibilityState)}var p={bind:f,update:function(e,t,i){var n=t.value;if(!function e(t,i){if(t===i)return!0;if("object"===c(t)){for(var n in t)if(!e(t[n],i[n]))return!1;return!0}return!1}(n,t.oldValue)){var r=e._vue_visibilityState;n?r?r.createObserver(n,i):f(e,{value:n},i):v(e)}},unbind:v};var m={version:"0.4.6",install:function(e){e.directive("observe-visibility",p)}},y=null;"undefined"!=typeof window?y=window.Vue:"undefined"!=typeof global&&(y=global.Vue),y&&y.use(m);var b="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var g=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){var t,i;t=b,i=function(){var e=/(auto|scroll)/,t=function(e,i){return null===e.parentNode?i:t(e.parentNode,i.concat([e]))},i=function(e,t){return getComputedStyle(e,null).getPropertyValue(t)},n=function(t){return e.test(function(e){return i(e,"overflow")+i(e,"overflow-y")+i(e,"overflow-x")}(t))};return function(e){if(e instanceof HTMLElement||e instanceof SVGElement){for(var i=t(e.parentNode,[]),r=0;r1&&void 0!==arguments[1]&&arguments[1],i=this.$_unusedViews,n=e.nr.type;i.get(n)||i.set(n,[]);var r=i.get(n);r.push(e),t||(e.nr.used=!1,e.position=-9999,this.$_views.delete(e.nr.key))},handleResize:function(){this.$emit("resize"),this.ready&&this.updateVisibleItems(!1)},handleScroll:function(e){var t=this;cancelAnimationFrame(this.$_scrollAnimationRequest),this.$_scrollAnimationRequest=requestAnimationFrame((function(){t.$_scrollAnimationRequest=!1,t.updateVisibleItems(!1,!0).continuous||(clearTimeout(t.$_refreshTimout),t.$_refreshTimout=setTimeout(t.handleScroll,100))}))},handleVisibilityChange:function(e,t){var i=this;this.ready&&(e?(this.$emit("visible"),requestAnimationFrame((function(){i.updateVisibleItems(!1)}))):this.$emit("hidden"))},startEndIndex:function(e){var t=this.itemSize,i=this.items,n=i.length,r=this.sizes;if(!n)return{startIndex:0,endIndex:0,totalSize:0};if(this.$_prerender)return{startIndex:0,endIndex:this.prerender,totalSize:null};this.$_lastUpdateScrollPosition=e.originalStart;var o=this.buffer;if(e.start-=o,e.end+=o,null===t){var s,l=0,a=n-1,c=~~(n/2);do{s=c,r[c].accumulatore.start&&(a=c),c=~~((l+a)/2)}while(c!==s);c<0&&(c=0);var d,u=c,h=r[n-1].accumulator;for(d=c;dn&&(d=n);return{startIndex:u,endIndex:d,totalSize:h}}return{startIndex:Math.max(0,~~(e.start/t)),endIndex:Math.min(n,Math.ceil(e.end/t)),totalSize:n*t}},updateVisibleItems:function(e){var t,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.itemSize,o=this.$_computedMinItemSize,s=this.typeField,l=this.simpleArray?null:this.keyField,a=this.items,c=a.length,d=this.sizes,u=this.$_views,h=this.$_unusedViews,f=this.pool;if(c&&!this.$_prerender&&(t=this.getScroll(),n)){var v=Math.abs(t.originalStart-this.$_lastUpdateScrollPosition);if(null===r&&vi.itemsLimit&&this.itemsLimitError(),this.totalSize=g;var S=y<=this.$_endIndex&&b>=this.$_startIndex;if(this.$_continuous!==S){if(S){u.clear(),h.clear();for(var _=0,$=f.length;_<$;_++)p=f[_],this.unuseView(p)}this.$_continuous=S}else if(S)for(var z=0,w=f.length;z=b)&&this.unuseView(p));for(var I,x,O,D,V=S?null:new Map,R=y;R=O.length)&&(p=this.addView(f,R,I,T,x),this.unuseView(p,!0),O=h.get(x)),(p=O[D]).item=I,p.nr.used=!0,p.nr.index=R,p.nr.key=T,p.nr.type=x,V.set(x,D+1),D++),u.set(T,p)),p.position=null===r?d[R-1].accumulator:R*r):p&&this.unuseView(p)}return this.$_startIndex=y,this.$_endIndex=b,this.emitUpdate&&this.$emit("update",y,b),{continuous:S}},getListenerTarget:function(){var e=g(this.$el);return!window.document||e!==window.document.documentElement&&e!==window.document.body||(e=window),e},getScroll:function(){var e=this.$el,t="vertical"===this.direction;if(this.pageMode){var i=e.getBoundingClientRect(),n=t?i.height:i.width,r=-(t?i.top:i.left),o=r,s=t?window.innerHeight:window.innerWidth;return o<0&&(s+=o,o=0),o+s>n&&(s=n-o),{originalStart:r,start:o,end:o+s}}return t?{originalStart:e.scrollTop,start:e.scrollTop,end:e.scrollTop+e.clientHeight}:{originalStart:e.scrollLeft,start:e.scrollLeft,end:e.scrollLeft+e.clientWidth}},applyPageMode:function(){this.pageMode?this.addListeners():this.removeListeners()},addListeners:function(){this.listenerTarget=this.getListenerTarget(),this.listenerTarget.addEventListener("scroll",this.handleScroll,!!$&&{passive:!0}),this.listenerTarget.addEventListener("resize",this.handleResize)},removeListeners:function(){this.listenerTarget&&(this.listenerTarget.removeEventListener("scroll",this.handleScroll),this.listenerTarget.removeEventListener("resize",this.handleResize),this.listenerTarget=null)},scrollToItem:function(e){var t=this.scrollToPosition(e),i=t.viewport,n=t.scrollDirection,r=t.scrollDistance;i[n]=r},scrollToPosition:function(e){var t=this,i=function(e){return null===t.itemSize?e>0?t.sizes[e-1].accumulator:0:e*t.itemSize}(e),n="vertical"===this.direction?{scroll:"scrollTop",start:"top"}:{scroll:"scrollLeft",start:"left"};if(this.pageMode){var r=g(this.$el),o="HTML"===r.tagName?0:r[n.scroll],s=r.getBoundingClientRect(),l=this.$el.getBoundingClientRect()[n.start]-s[n.start];return{viewport:r,scrollDirection:n.scroll,scrollDistance:i+o+l}}return{viewport:this.$el,scrollDirection:n.scroll,scrollDistance:i}},itemsLimitError:function(){var e=this;throw setTimeout((function(){console.log("It seems the scroller element isn't scrolling, so it tries to render all the items at once.","Scroller:",e.$el),console.log("Make sure the scroller has a fixed height (or width) and 'overflow-y' (or 'overflow-x') set to 'auto' so it can scroll correctly and only render the items visible in the scroll viewport.")})),new Error("Rendered items limit reached")}}};var O=function(){var e,t,i=this,n=i.$createElement,r=i._self._c||n;return r("div",{directives:[{name:"observe-visibility",rawName:"v-observe-visibility",value:i.handleVisibilityChange,expression:"handleVisibilityChange"}],staticClass:"vue-recycle-scroller",class:(e={ready:i.ready,"page-mode":i.pageMode},e["direction-"+i.direction]=!0,e),on:{"&scroll":function(e){return i.handleScroll(e)}}},[i.$slots.before?r("div",{staticClass:"vue-recycle-scroller__slot"},[i._t("before")],2):i._e(),i._v(" "),r("div",{ref:"wrapper",staticClass:"vue-recycle-scroller__item-wrapper",style:(t={},t["vertical"===i.direction?"minHeight":"minWidth"]=i.totalSize+"px",t)},i._l(i.pool,(function(e){return r("div",{key:e.nr.id,staticClass:"vue-recycle-scroller__item-view",style:i.ready?{transform:"translate"+("vertical"===i.direction?"Y":"X")+"("+e.position+"px)",zIndex:i.pool.length-e.nr.index}:null,on:{mouseenter:function(e){return e.target.classList.add("hover")},mouseleave:function(e){return e.target.classList.remove("hover")}}},[i._t("default",null,{item:e.item,index:e.nr.index,active:e.nr.used})],2)})),0),i._v(" "),i.$slots.after?r("div",{staticClass:"vue-recycle-scroller__slot"},[i._t("after")],2):i._e()])};O._withStripped=!0;const D=I({render:O,staticRenderFns:[]},void 0,x,void 0,!1,void 0,!1,void 0,void 0,void 0);const V={name:"DynamicScroller",components:{RecycleScroller:D},inheritAttrs:!1,provide:function(){return"undefined"!=typeof ResizeObserver&&(this.$_resizeObserver=new ResizeObserver((function(e){var t,i=a(e);try{for(i.s();!(t=i.n()).done;){var n=t.value;if(n.target){var r=new CustomEvent("resize",{detail:{contentRect:n.contentRect}});n.target.dispatchEvent(r)}}}catch(e){i.e(e)}finally{i.f()}}))),{vscrollData:this.vscrollData,vscrollParent:this,vscrollResizeObserver:this.$_resizeObserver}},props:s({},S,{minItemSize:{type:[Number,String],required:!0}}),data:function(){return{vscrollData:{active:!0,sizes:{},validSizes:{},keyField:this.keyField,simpleArray:!1}}},computed:{simpleArray:_,itemsWithSize:function(){for(var e=[],t=this.items,i=this.keyField,n=this.simpleArray,r=this.vscrollData.sizes,o=0;o0&&void 0!==arguments[0])||arguments[0];(e||this.simpleArray)&&(this.vscrollData.validSizes={}),this.$emit("vscroll:update",{force:!0})},scrollToItem:function(e){var t=this.$refs.scroller;t&&t.scrollToItem(e)},getItemSize:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=this.simpleArray?null!=t?t:this.items.indexOf(e):e[this.keyField];return this.vscrollData.sizes[i]||0},scrollToBottom:function(){var e=this;if(!this.$_scrollingToBottom){this.$_scrollingToBottom=!0;var t=this.$el;this.$nextTick((function(){t.scrollTop=t.scrollHeight+5e3;requestAnimationFrame((function i(){t.scrollTop=t.scrollHeight+5e3,requestAnimationFrame((function(){t.scrollTop=t.scrollHeight+5e3,0===e.$_undefinedSizes?e.$_scrollingToBottom=!1:requestAnimationFrame(i)}))}))}))}}}};var R=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("RecycleScroller",e._g(e._b({ref:"scroller",attrs:{items:e.itemsWithSize,"min-item-size":e.minItemSize,direction:e.direction,"key-field":"id"},on:{resize:e.onScrollerResize,visible:e.onScrollerVisible},scopedSlots:e._u([{key:"default",fn:function(t){var i=t.item,n=t.index,r=t.active;return[e._t("default",null,null,{item:i.item,index:n,active:r,itemWithSize:i})]}}],null,!0)},"RecycleScroller",e.$attrs,!1),e.listeners),[e._v(" "),i("template",{slot:"before"},[e._t("before")],2),e._v(" "),i("template",{slot:"after"},[e._t("after")],2)],2)};R._withStripped=!0;const T=I({render:R,staticRenderFns:[]},void 0,V,void 0,!1,void 0,!1,void 0,void 0,void 0);const P=I({},void 0,{name:"DynamicScrollerItem",inject:["vscrollData","vscrollParent","vscrollResizeObserver"],props:{item:{required:!0},watchData:{type:Boolean,default:!1},active:{type:Boolean,required:!0},index:{type:Number,default:void 0},sizeDependencies:{type:[Array,Object],default:null},emitResize:{type:Boolean,default:!1},tag:{type:String,default:"div"}},computed:{id:function(){return this.vscrollData.simpleArray?this.index:this.item[this.vscrollData.keyField]},size:function(){return this.vscrollData.validSizes[this.id]&&this.vscrollData.sizes[this.id]||0},finalActive:function(){return this.active&&this.vscrollData.active}},watch:{watchData:"updateWatchData",id:function(){this.size||this.onDataUpdate()},finalActive:function(e){this.size||(e?this.vscrollParent.$_undefinedMap[this.id]||(this.vscrollParent.$_undefinedSizes++,this.vscrollParent.$_undefinedMap[this.id]=!0):this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=!1)),this.vscrollResizeObserver?e?this.observeSize():this.unobserveSize():e&&this.$_pendingVScrollUpdate===this.id&&this.updateSize()}},created:function(){var e=this;if(!this.$isServer&&(this.$_forceNextVScrollUpdate=null,this.updateWatchData(),!this.vscrollResizeObserver)){var t=function(t){e.$watch((function(){return e.sizeDependencies[t]}),e.onDataUpdate)};for(var i in this.sizeDependencies)t(i);this.vscrollParent.$on("vscroll:update",this.onVscrollUpdate),this.vscrollParent.$on("vscroll:update-size",this.onVscrollUpdateSize)}},mounted:function(){this.vscrollData.active&&(this.updateSize(),this.observeSize())},beforeDestroy:function(){this.vscrollParent.$off("vscroll:update",this.onVscrollUpdate),this.vscrollParent.$off("vscroll:update-size",this.onVscrollUpdateSize),this.unobserveSize()},methods:{updateSize:function(){this.finalActive?this.$_pendingSizeUpdate!==this.id&&(this.$_pendingSizeUpdate=this.id,this.$_forceNextVScrollUpdate=null,this.$_pendingVScrollUpdate=null,this.computeSize(this.id)):this.$_forceNextVScrollUpdate=this.id},updateWatchData:function(){var e=this;this.watchData?this.$_watchData=this.$watch("data",(function(){e.onDataUpdate()}),{deep:!0}):this.$_watchData&&(this.$_watchData(),this.$_watchData=null)},onVscrollUpdate:function(e){var t=e.force;!this.finalActive&&t&&(this.$_pendingVScrollUpdate=this.id),this.$_forceNextVScrollUpdate!==this.id&&!t&&this.size||this.updateSize()},onDataUpdate:function(){this.updateSize()},computeSize:function(e){var t=this;this.$nextTick((function(){if(t.id===e){var i=t.$el.offsetWidth,n=t.$el.offsetHeight;t.applySize(i,n)}t.$_pendingSizeUpdate=null}))},applySize:function(e,t){var i=Math.round("vertical"===this.vscrollParent.direction?t:e);i&&this.size!==i&&(this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=void 0),this.$set(this.vscrollData.sizes,this.id,i),this.$set(this.vscrollData.validSizes,this.id,!0),this.emitResize&&this.$emit("resize",this.id))},observeSize:function(){this.vscrollResizeObserver&&(this.vscrollResizeObserver.observe(this.$el.parentNode),this.$el.parentNode.addEventListener("resize",this.onResize))},unobserveSize:function(){this.vscrollResizeObserver&&(this.vscrollResizeObserver.unobserve(this.$el.parentNode),this.$el.parentNode.removeEventListener("resize",this.onResize))},onResize:function(e){var t=e.detail.contentRect,i=t.width,n=t.height;this.applySize(i,n)}},render:function(e){return e(this.tag,this.$slots.default)}},void 0,void 0,void 0,!1,void 0,void 0,void 0);var A={version:"1.2.1",install:function(e,t){var n=Object.assign({},{installComponents:!0,componentsPrefix:""},t);for(var r in n)void 0!==n[r]&&(i[r]=n[r]);n.installComponents&&function(e,t){e.component("".concat(t,"recycle-scroller"),D),e.component("".concat(t,"RecycleScroller"),D),e.component("".concat(t,"dynamic-scroller"),T),e.component("".concat(t,"DynamicScroller"),T),e.component("".concat(t,"dynamic-scroller-item"),P),e.component("".concat(t,"DynamicScrollerItem"),P)}(e,n.componentsPrefix)}},k=null;return"undefined"!=typeof window?k=window.Vue:"undefined"!=typeof global&&(k=global.Vue),k&&k.use(A),e.DynamicScroller=T,e.DynamicScrollerItem=P,e.IdState=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=e.idProp,n=void 0===i?function(e){return e.item.id}:i,r={},o=new t({data:function(){return{store:r}}});return{data:function(){return{idState:null}},created:function(){var e=this;this.$_id=null,this.$_getId="function"==typeof n?function(){return n.call(e,e)}:function(){return e[n]},this.$watch(this.$_getId,{handler:function(e){var t=this;this.$nextTick((function(){t.$_id=e}))},immediate:!0}),this.$_updateIdState()},beforeUpdate:function(){this.$_updateIdState()},methods:{$_idStateInit:function(e){var t=this.$options.idState;if("function"==typeof t){var i=t.call(this,this);return o.$set(r,e,i),this.$_id=e,i}throw new Error("[mixin IdState] Missing `idState` function on component definition.")},$_updateIdState:function(){var e=this.$_getId();null==e&&console.warn("No id found for IdState with idProp: '".concat(n,"'.")),e!==this.$_id&&(r[e]||this.$_idStateInit(e),this.idState=r[e])}}}},e.RecycleScroller=D,e.default=A,e}({},Vue); //# sourceMappingURL=vue-virtual-scroller.min.js.map diff --git a/dist/vue-virtual-scroller.min.js.map b/dist/vue-virtual-scroller.min.js.map index 615a54c7..abd4dc24 100644 --- a/dist/vue-virtual-scroller.min.js.map +++ b/dist/vue-virtual-scroller.min.js.map @@ -1 +1 @@ -{"version":3,"file":"vue-virtual-scroller.min.js","sources":["../src/config.js","../node_modules/vue-observe-visibility/dist/vue-observe-visibility.esm.js","../node_modules/scrollparent/scrollparent.js","../src/components/common.js","../src/utils.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/index.js","../src/mixins/IdState.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction processOptions(value) {\n var options;\n\n if (typeof value === 'function') {\n // Simple options (callback-only)\n options = {\n callback: value\n };\n } else {\n // Options object\n options = value;\n }\n\n return options;\n}\nfunction throttle(callback, delay) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var timeout;\n var lastState;\n var currentArgs;\n\n var throttled = function throttled(state) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n currentArgs = args;\n if (timeout && state === lastState) return;\n var leading = options.leading;\n\n if (typeof leading === 'function') {\n leading = leading(state, lastState);\n }\n\n if ((!timeout || state !== lastState) && leading) {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n }\n\n lastState = state;\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n timeout = 0;\n }, delay);\n };\n\n throttled._clear = function () {\n clearTimeout(timeout);\n timeout = null;\n };\n\n return throttled;\n}\nfunction deepEqual(val1, val2) {\n if (val1 === val2) return true;\n\n if (_typeof(val1) === 'object') {\n for (var key in val1) {\n if (!deepEqual(val1[key], val2[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\nvar VisibilityState =\n/*#__PURE__*/\nfunction () {\n function VisibilityState(el, options, vnode) {\n _classCallCheck(this, VisibilityState);\n\n this.el = el;\n this.observer = null;\n this.frozen = false;\n this.createObserver(options, vnode);\n }\n\n _createClass(VisibilityState, [{\n key: \"createObserver\",\n value: function createObserver(options, vnode) {\n var _this = this;\n\n if (this.observer) {\n this.destroyObserver();\n }\n\n if (this.frozen) return;\n this.options = processOptions(options);\n\n this.callback = function (result, entry) {\n _this.options.callback(result, entry);\n\n if (result && _this.options.once) {\n _this.frozen = true;\n\n _this.destroyObserver();\n }\n }; // Throttle\n\n\n if (this.callback && this.options.throttle) {\n var _ref = this.options.throttleOptions || {},\n _leading = _ref.leading;\n\n this.callback = throttle(this.callback, this.options.throttle, {\n leading: function leading(state) {\n return _leading === 'both' || _leading === 'visible' && state || _leading === 'hidden' && !state;\n }\n });\n }\n\n this.oldResult = undefined;\n this.observer = new IntersectionObserver(function (entries) {\n var entry = entries[0];\n\n if (entries.length > 1) {\n var intersectingEntry = entries.find(function (e) {\n return e.isIntersecting;\n });\n\n if (intersectingEntry) {\n entry = intersectingEntry;\n }\n }\n\n if (_this.callback) {\n // Use isIntersecting if possible because browsers can report isIntersecting as true, but intersectionRatio as 0, when something very slowly enters the viewport.\n var result = entry.isIntersecting && entry.intersectionRatio >= _this.threshold;\n if (result === _this.oldResult) return;\n _this.oldResult = result;\n\n _this.callback(result, entry);\n }\n }, this.options.intersection); // Wait for the element to be in document\n\n vnode.context.$nextTick(function () {\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n } // Cancel throttled call\n\n\n if (this.callback && this.callback._clear) {\n this.callback._clear();\n\n this.callback = null;\n }\n }\n }, {\n key: \"threshold\",\n get: function get() {\n return this.options.intersection && this.options.intersection.threshold || 0;\n }\n }]);\n\n return VisibilityState;\n}();\n\nfunction bind(el, _ref2, vnode) {\n var value = _ref2.value;\n if (!value) return;\n\n if (typeof IntersectionObserver === 'undefined') {\n console.warn('[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill');\n } else {\n var state = new VisibilityState(el, value, vnode);\n el._vue_visibilityState = state;\n }\n}\n\nfunction update(el, _ref3, vnode) {\n var value = _ref3.value,\n oldValue = _ref3.oldValue;\n if (deepEqual(value, oldValue)) return;\n var state = el._vue_visibilityState;\n\n if (!value) {\n unbind(el);\n return;\n }\n\n if (state) {\n state.createObserver(value, vnode);\n } else {\n bind(el, {\n value: value\n }, vnode);\n }\n}\n\nfunction unbind(el) {\n var state = el._vue_visibilityState;\n\n if (state) {\n state.destroyObserver();\n delete el._vue_visibilityState;\n }\n}\n\nvar ObserveVisibility = {\n bind: bind,\n update: update,\n unbind: unbind\n};\n\nfunction install(Vue) {\n Vue.directive('observe-visibility', ObserveVisibility);\n /* -- Add more components here -- */\n}\n/* -- Plugin definition & Auto-install -- */\n\n/* You shouldn't have to modify the code below */\n// Plugin\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"0.4.6\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { ObserveVisibility, install };\n","(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Scrollparent = factory();\n }\n}(this, function () {\n var regex = /(auto|scroll)/;\n\n var parents = function (node, ps) {\n if (node.parentNode === null) { return ps; }\n\n return parents(node.parentNode, ps.concat([node]));\n };\n\n var style = function (node, prop) {\n return getComputedStyle(node, null).getPropertyValue(prop);\n };\n\n var overflow = function (node) {\n return style(node, \"overflow\") + style(node, \"overflow-y\") + style(node, \"overflow-x\");\n };\n\n var scroll = function (node) {\n return regex.test(overflow(node));\n };\n\n var scrollParent = function (node) {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return ;\n }\n\n var ps = parents(node.parentNode, []);\n\n for (var i = 0; i < ps.length; i += 1) {\n if (scroll(ps[i])) {\n return ps[i];\n }\n }\n\n return document.scrollingElement || document.documentElement;\n };\n\n return scrollParent;\n}));\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: VERSION,\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n"],"names":["itemsLimit","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_toConsumableArray","arr","Array","isArray","arr2","_arrayWithoutHoles","iter","toString","call","from","_iterableToArray","TypeError","_nonIterableSpread","VisibilityState","el","options","vnode","instance","Constructor","_classCallCheck","this","observer","frozen","createObserver","protoProps","staticProps","value","_this","destroyObserver","callback","result","entry","once","throttle","_leading","throttleOptions","leading","delay","timeout","lastState","currentArgs","arguments","undefined","throttled","state","_len","args","_key","apply","concat","clearTimeout","setTimeout","_clear","oldResult","IntersectionObserver","entries","intersectingEntry","find","e","isIntersecting","intersectionRatio","threshold","intersection","context","$nextTick","observe","disconnect","get","bind","_ref2","console","warn","_vue_visibilityState","unbind","ObserveVisibility","update","_ref3","deepEqual","val1","val2","oldValue","plugin","version","install","Vue","directive","GlobalVue","window","global","use","root","factory","regex","parents","node","ps","parentNode","style","prop","getComputedStyle","getPropertyValue","scroll","test","overflow","HTMLElement","SVGElement","document","scrollingElement","documentElement","module","exports","Scrollparent","items","type","required","keyField","String","default","direction","validator","includes","simpleArray","supportsPassive","opts","addEventListener","normalizeComponent","template","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","render","staticRenderFns","_compiled","functional","_scopeId","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","VERSION","finalOptions","assign","installComponents","componentsPrefix","config","prefix","component","RecycleScroller","DynamicScroller","DynamicScrollerItem","registerComponents","idProp","vm","item","id","store","data","idState","created","$_id","$_getId","$watch","handler","_this2","immediate","$_updateIdState","beforeUpdate","methods","$_idStateInit","$set","Error"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"vue-virtual-scroller.min.js","sources":["../src/config.js","../node_modules/vue-observe-visibility/dist/vue-observe-visibility.esm.js","../node_modules/scrollparent/scrollparent.js","../src/components/common.js","../src/utils.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/index.js","../src/mixins/IdState.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction processOptions(value) {\n var options;\n\n if (typeof value === 'function') {\n // Simple options (callback-only)\n options = {\n callback: value\n };\n } else {\n // Options object\n options = value;\n }\n\n return options;\n}\nfunction throttle(callback, delay) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var timeout;\n var lastState;\n var currentArgs;\n\n var throttled = function throttled(state) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n currentArgs = args;\n if (timeout && state === lastState) return;\n var leading = options.leading;\n\n if (typeof leading === 'function') {\n leading = leading(state, lastState);\n }\n\n if ((!timeout || state !== lastState) && leading) {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n }\n\n lastState = state;\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n timeout = 0;\n }, delay);\n };\n\n throttled._clear = function () {\n clearTimeout(timeout);\n timeout = null;\n };\n\n return throttled;\n}\nfunction deepEqual(val1, val2) {\n if (val1 === val2) return true;\n\n if (_typeof(val1) === 'object') {\n for (var key in val1) {\n if (!deepEqual(val1[key], val2[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\nvar VisibilityState =\n/*#__PURE__*/\nfunction () {\n function VisibilityState(el, options, vnode) {\n _classCallCheck(this, VisibilityState);\n\n this.el = el;\n this.observer = null;\n this.frozen = false;\n this.createObserver(options, vnode);\n }\n\n _createClass(VisibilityState, [{\n key: \"createObserver\",\n value: function createObserver(options, vnode) {\n var _this = this;\n\n if (this.observer) {\n this.destroyObserver();\n }\n\n if (this.frozen) return;\n this.options = processOptions(options);\n\n this.callback = function (result, entry) {\n _this.options.callback(result, entry);\n\n if (result && _this.options.once) {\n _this.frozen = true;\n\n _this.destroyObserver();\n }\n }; // Throttle\n\n\n if (this.callback && this.options.throttle) {\n var _ref = this.options.throttleOptions || {},\n _leading = _ref.leading;\n\n this.callback = throttle(this.callback, this.options.throttle, {\n leading: function leading(state) {\n return _leading === 'both' || _leading === 'visible' && state || _leading === 'hidden' && !state;\n }\n });\n }\n\n this.oldResult = undefined;\n this.observer = new IntersectionObserver(function (entries) {\n var entry = entries[0];\n\n if (entries.length > 1) {\n var intersectingEntry = entries.find(function (e) {\n return e.isIntersecting;\n });\n\n if (intersectingEntry) {\n entry = intersectingEntry;\n }\n }\n\n if (_this.callback) {\n // Use isIntersecting if possible because browsers can report isIntersecting as true, but intersectionRatio as 0, when something very slowly enters the viewport.\n var result = entry.isIntersecting && entry.intersectionRatio >= _this.threshold;\n if (result === _this.oldResult) return;\n _this.oldResult = result;\n\n _this.callback(result, entry);\n }\n }, this.options.intersection); // Wait for the element to be in document\n\n vnode.context.$nextTick(function () {\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n } // Cancel throttled call\n\n\n if (this.callback && this.callback._clear) {\n this.callback._clear();\n\n this.callback = null;\n }\n }\n }, {\n key: \"threshold\",\n get: function get() {\n return this.options.intersection && this.options.intersection.threshold || 0;\n }\n }]);\n\n return VisibilityState;\n}();\n\nfunction bind(el, _ref2, vnode) {\n var value = _ref2.value;\n if (!value) return;\n\n if (typeof IntersectionObserver === 'undefined') {\n console.warn('[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill');\n } else {\n var state = new VisibilityState(el, value, vnode);\n el._vue_visibilityState = state;\n }\n}\n\nfunction update(el, _ref3, vnode) {\n var value = _ref3.value,\n oldValue = _ref3.oldValue;\n if (deepEqual(value, oldValue)) return;\n var state = el._vue_visibilityState;\n\n if (!value) {\n unbind(el);\n return;\n }\n\n if (state) {\n state.createObserver(value, vnode);\n } else {\n bind(el, {\n value: value\n }, vnode);\n }\n}\n\nfunction unbind(el) {\n var state = el._vue_visibilityState;\n\n if (state) {\n state.destroyObserver();\n delete el._vue_visibilityState;\n }\n}\n\nvar ObserveVisibility = {\n bind: bind,\n update: update,\n unbind: unbind\n};\n\nfunction install(Vue) {\n Vue.directive('observe-visibility', ObserveVisibility);\n /* -- Add more components here -- */\n}\n/* -- Plugin definition & Auto-install -- */\n\n/* You shouldn't have to modify the code below */\n// Plugin\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"0.4.6\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { ObserveVisibility, install };\n","(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Scrollparent = factory();\n }\n}(this, function () {\n var regex = /(auto|scroll)/;\n\n var parents = function (node, ps) {\n if (node.parentNode === null) { return ps; }\n\n return parents(node.parentNode, ps.concat([node]));\n };\n\n var style = function (node, prop) {\n return getComputedStyle(node, null).getPropertyValue(prop);\n };\n\n var overflow = function (node) {\n return style(node, \"overflow\") + style(node, \"overflow-y\") + style(node, \"overflow-x\");\n };\n\n var scroll = function (node) {\n return regex.test(overflow(node));\n };\n\n var scrollParent = function (node) {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return ;\n }\n\n var ps = parents(node.parentNode, []);\n\n for (var i = 0; i < ps.length; i += 1) {\n if (scroll(ps[i])) {\n return ps[i];\n }\n }\n\n return document.scrollingElement || document.documentElement;\n };\n\n return scrollParent;\n}));\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: VERSION,\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n"],"names":["itemsLimit","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_toConsumableArray","arr","Array","isArray","arr2","_arrayWithoutHoles","iter","toString","call","from","_iterableToArray","TypeError","_nonIterableSpread","VisibilityState","el","options","vnode","instance","Constructor","_classCallCheck","this","observer","frozen","createObserver","protoProps","staticProps","value","_this","destroyObserver","callback","result","entry","once","throttle","_leading","throttleOptions","leading","delay","timeout","lastState","currentArgs","arguments","undefined","throttled","state","_len","args","_key","apply","concat","clearTimeout","setTimeout","_clear","oldResult","IntersectionObserver","entries","intersectingEntry","find","e","isIntersecting","intersectionRatio","threshold","intersection","context","$nextTick","observe","disconnect","get","bind","_ref2","console","warn","_vue_visibilityState","unbind","ObserveVisibility","update","_ref3","deepEqual","val1","val2","oldValue","plugin","version","install","Vue","directive","GlobalVue","window","global","use","root","factory","regex","parents","node","ps","parentNode","style","prop","getComputedStyle","getPropertyValue","scroll","test","overflow","HTMLElement","SVGElement","document","scrollingElement","documentElement","module","exports","Scrollparent","items","type","required","keyField","String","default","direction","validator","includes","simpleArray","supportsPassive","opts","addEventListener","normalizeComponent","template","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","render","staticRenderFns","_compiled","functional","_scopeId","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","VERSION","finalOptions","assign","installComponents","componentsPrefix","config","prefix","component","RecycleScroller","DynamicScroller","DynamicScrollerItem","registerComponents","idProp","vm","item","id","store","data","idState","created","$_id","$_getId","$watch","handler","_this2","immediate","$_updateIdState","beforeUpdate","methods","$_idStateInit","$set","Error"],"mappings":"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"} \ No newline at end of file diff --git a/dist/vue-virtual-scroller.umd.js b/dist/vue-virtual-scroller.umd.js index e41ff127..1a72afb6 100644 --- a/dist/vue-virtual-scroller.umd.js +++ b/dist/vue-virtual-scroller.umd.js @@ -1259,7 +1259,8 @@ (_vm.direction === "vertical" ? "Y" : "X") + "(" + view.position + - "px)" + "px)", + zIndex: _vm.pool.length - view.nr.index } : null, on: { @@ -1946,7 +1947,7 @@ var plugin$1 = { // eslint-disable-next-line no-undef - version: "1.2.0", + version: "1.2.1", install: function install(Vue, options) { var finalOptions = Object.assign({}, { installComponents: true, diff --git a/dist/vue-virtual-scroller.umd.js.map b/dist/vue-virtual-scroller.umd.js.map index 62df407b..5496d264 100644 --- a/dist/vue-virtual-scroller.umd.js.map +++ b/dist/vue-virtual-scroller.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"vue-virtual-scroller.umd.js","sources":["../src/config.js","../node_modules/vue-observe-visibility/dist/vue-observe-visibility.esm.js","../node_modules/scrollparent/scrollparent.js","../src/components/common.js","../src/utils.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/mixins/IdState.js","../src/index.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction processOptions(value) {\n var options;\n\n if (typeof value === 'function') {\n // Simple options (callback-only)\n options = {\n callback: value\n };\n } else {\n // Options object\n options = value;\n }\n\n return options;\n}\nfunction throttle(callback, delay) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var timeout;\n var lastState;\n var currentArgs;\n\n var throttled = function throttled(state) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n currentArgs = args;\n if (timeout && state === lastState) return;\n var leading = options.leading;\n\n if (typeof leading === 'function') {\n leading = leading(state, lastState);\n }\n\n if ((!timeout || state !== lastState) && leading) {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n }\n\n lastState = state;\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n timeout = 0;\n }, delay);\n };\n\n throttled._clear = function () {\n clearTimeout(timeout);\n timeout = null;\n };\n\n return throttled;\n}\nfunction deepEqual(val1, val2) {\n if (val1 === val2) return true;\n\n if (_typeof(val1) === 'object') {\n for (var key in val1) {\n if (!deepEqual(val1[key], val2[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\nvar VisibilityState =\n/*#__PURE__*/\nfunction () {\n function VisibilityState(el, options, vnode) {\n _classCallCheck(this, VisibilityState);\n\n this.el = el;\n this.observer = null;\n this.frozen = false;\n this.createObserver(options, vnode);\n }\n\n _createClass(VisibilityState, [{\n key: \"createObserver\",\n value: function createObserver(options, vnode) {\n var _this = this;\n\n if (this.observer) {\n this.destroyObserver();\n }\n\n if (this.frozen) return;\n this.options = processOptions(options);\n\n this.callback = function (result, entry) {\n _this.options.callback(result, entry);\n\n if (result && _this.options.once) {\n _this.frozen = true;\n\n _this.destroyObserver();\n }\n }; // Throttle\n\n\n if (this.callback && this.options.throttle) {\n var _ref = this.options.throttleOptions || {},\n _leading = _ref.leading;\n\n this.callback = throttle(this.callback, this.options.throttle, {\n leading: function leading(state) {\n return _leading === 'both' || _leading === 'visible' && state || _leading === 'hidden' && !state;\n }\n });\n }\n\n this.oldResult = undefined;\n this.observer = new IntersectionObserver(function (entries) {\n var entry = entries[0];\n\n if (entries.length > 1) {\n var intersectingEntry = entries.find(function (e) {\n return e.isIntersecting;\n });\n\n if (intersectingEntry) {\n entry = intersectingEntry;\n }\n }\n\n if (_this.callback) {\n // Use isIntersecting if possible because browsers can report isIntersecting as true, but intersectionRatio as 0, when something very slowly enters the viewport.\n var result = entry.isIntersecting && entry.intersectionRatio >= _this.threshold;\n if (result === _this.oldResult) return;\n _this.oldResult = result;\n\n _this.callback(result, entry);\n }\n }, this.options.intersection); // Wait for the element to be in document\n\n vnode.context.$nextTick(function () {\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n } // Cancel throttled call\n\n\n if (this.callback && this.callback._clear) {\n this.callback._clear();\n\n this.callback = null;\n }\n }\n }, {\n key: \"threshold\",\n get: function get() {\n return this.options.intersection && this.options.intersection.threshold || 0;\n }\n }]);\n\n return VisibilityState;\n}();\n\nfunction bind(el, _ref2, vnode) {\n var value = _ref2.value;\n if (!value) return;\n\n if (typeof IntersectionObserver === 'undefined') {\n console.warn('[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill');\n } else {\n var state = new VisibilityState(el, value, vnode);\n el._vue_visibilityState = state;\n }\n}\n\nfunction update(el, _ref3, vnode) {\n var value = _ref3.value,\n oldValue = _ref3.oldValue;\n if (deepEqual(value, oldValue)) return;\n var state = el._vue_visibilityState;\n\n if (!value) {\n unbind(el);\n return;\n }\n\n if (state) {\n state.createObserver(value, vnode);\n } else {\n bind(el, {\n value: value\n }, vnode);\n }\n}\n\nfunction unbind(el) {\n var state = el._vue_visibilityState;\n\n if (state) {\n state.destroyObserver();\n delete el._vue_visibilityState;\n }\n}\n\nvar ObserveVisibility = {\n bind: bind,\n update: update,\n unbind: unbind\n};\n\nfunction install(Vue) {\n Vue.directive('observe-visibility', ObserveVisibility);\n /* -- Add more components here -- */\n}\n/* -- Plugin definition & Auto-install -- */\n\n/* You shouldn't have to modify the code below */\n// Plugin\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"0.4.6\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { ObserveVisibility, install };\n","(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Scrollparent = factory();\n }\n}(this, function () {\n var regex = /(auto|scroll)/;\n\n var parents = function (node, ps) {\n if (node.parentNode === null) { return ps; }\n\n return parents(node.parentNode, ps.concat([node]));\n };\n\n var style = function (node, prop) {\n return getComputedStyle(node, null).getPropertyValue(prop);\n };\n\n var overflow = function (node) {\n return style(node, \"overflow\") + style(node, \"overflow-y\") + style(node, \"overflow-x\");\n };\n\n var scroll = function (node) {\n return regex.test(overflow(node));\n };\n\n var scrollParent = function (node) {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return ;\n }\n\n var ps = parents(node.parentNode, []);\n\n for (var i = 0; i < ps.length; i += 1) {\n if (scroll(ps[i])) {\n return ps[i];\n }\n }\n\n return document.scrollingElement || document.documentElement;\n };\n\n return scrollParent;\n}));\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: VERSION,\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n"],"names":["itemsLimit","_typeof","this","props","items","type","Array","required","keyField","String","default","direction","validator","value","includes","simpleArray","length","supportsPassive","window","opts","Object","defineProperty","get","addEventListener","e","idProp","vm","item","id","store","Vue","data","idState","created","$_id","$_getId","call","$watch","handler","$nextTick","immediate","$_updateIdState","beforeUpdate","methods","$_idStateInit","factory","$options","$set","Error","console","warn","registerComponents","prefix","component","RecycleScroller","DynamicScroller","DynamicScrollerItem","plugin","version","VERSION","install","options","finalOptions","assign","installComponents","componentsPrefix","key","config","GlobalVue","global","use"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"vue-virtual-scroller.umd.js","sources":["../src/config.js","../node_modules/vue-observe-visibility/dist/vue-observe-visibility.esm.js","../node_modules/scrollparent/scrollparent.js","../src/components/common.js","../src/utils.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/mixins/IdState.js","../src/index.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction processOptions(value) {\n var options;\n\n if (typeof value === 'function') {\n // Simple options (callback-only)\n options = {\n callback: value\n };\n } else {\n // Options object\n options = value;\n }\n\n return options;\n}\nfunction throttle(callback, delay) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var timeout;\n var lastState;\n var currentArgs;\n\n var throttled = function throttled(state) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n currentArgs = args;\n if (timeout && state === lastState) return;\n var leading = options.leading;\n\n if (typeof leading === 'function') {\n leading = leading(state, lastState);\n }\n\n if ((!timeout || state !== lastState) && leading) {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n }\n\n lastState = state;\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n timeout = 0;\n }, delay);\n };\n\n throttled._clear = function () {\n clearTimeout(timeout);\n timeout = null;\n };\n\n return throttled;\n}\nfunction deepEqual(val1, val2) {\n if (val1 === val2) return true;\n\n if (_typeof(val1) === 'object') {\n for (var key in val1) {\n if (!deepEqual(val1[key], val2[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\nvar VisibilityState =\n/*#__PURE__*/\nfunction () {\n function VisibilityState(el, options, vnode) {\n _classCallCheck(this, VisibilityState);\n\n this.el = el;\n this.observer = null;\n this.frozen = false;\n this.createObserver(options, vnode);\n }\n\n _createClass(VisibilityState, [{\n key: \"createObserver\",\n value: function createObserver(options, vnode) {\n var _this = this;\n\n if (this.observer) {\n this.destroyObserver();\n }\n\n if (this.frozen) return;\n this.options = processOptions(options);\n\n this.callback = function (result, entry) {\n _this.options.callback(result, entry);\n\n if (result && _this.options.once) {\n _this.frozen = true;\n\n _this.destroyObserver();\n }\n }; // Throttle\n\n\n if (this.callback && this.options.throttle) {\n var _ref = this.options.throttleOptions || {},\n _leading = _ref.leading;\n\n this.callback = throttle(this.callback, this.options.throttle, {\n leading: function leading(state) {\n return _leading === 'both' || _leading === 'visible' && state || _leading === 'hidden' && !state;\n }\n });\n }\n\n this.oldResult = undefined;\n this.observer = new IntersectionObserver(function (entries) {\n var entry = entries[0];\n\n if (entries.length > 1) {\n var intersectingEntry = entries.find(function (e) {\n return e.isIntersecting;\n });\n\n if (intersectingEntry) {\n entry = intersectingEntry;\n }\n }\n\n if (_this.callback) {\n // Use isIntersecting if possible because browsers can report isIntersecting as true, but intersectionRatio as 0, when something very slowly enters the viewport.\n var result = entry.isIntersecting && entry.intersectionRatio >= _this.threshold;\n if (result === _this.oldResult) return;\n _this.oldResult = result;\n\n _this.callback(result, entry);\n }\n }, this.options.intersection); // Wait for the element to be in document\n\n vnode.context.$nextTick(function () {\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n } // Cancel throttled call\n\n\n if (this.callback && this.callback._clear) {\n this.callback._clear();\n\n this.callback = null;\n }\n }\n }, {\n key: \"threshold\",\n get: function get() {\n return this.options.intersection && this.options.intersection.threshold || 0;\n }\n }]);\n\n return VisibilityState;\n}();\n\nfunction bind(el, _ref2, vnode) {\n var value = _ref2.value;\n if (!value) return;\n\n if (typeof IntersectionObserver === 'undefined') {\n console.warn('[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill');\n } else {\n var state = new VisibilityState(el, value, vnode);\n el._vue_visibilityState = state;\n }\n}\n\nfunction update(el, _ref3, vnode) {\n var value = _ref3.value,\n oldValue = _ref3.oldValue;\n if (deepEqual(value, oldValue)) return;\n var state = el._vue_visibilityState;\n\n if (!value) {\n unbind(el);\n return;\n }\n\n if (state) {\n state.createObserver(value, vnode);\n } else {\n bind(el, {\n value: value\n }, vnode);\n }\n}\n\nfunction unbind(el) {\n var state = el._vue_visibilityState;\n\n if (state) {\n state.destroyObserver();\n delete el._vue_visibilityState;\n }\n}\n\nvar ObserveVisibility = {\n bind: bind,\n update: update,\n unbind: unbind\n};\n\nfunction install(Vue) {\n Vue.directive('observe-visibility', ObserveVisibility);\n /* -- Add more components here -- */\n}\n/* -- Plugin definition & Auto-install -- */\n\n/* You shouldn't have to modify the code below */\n// Plugin\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"0.4.6\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { ObserveVisibility, install };\n","(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Scrollparent = factory();\n }\n}(this, function () {\n var regex = /(auto|scroll)/;\n\n var parents = function (node, ps) {\n if (node.parentNode === null) { return ps; }\n\n return parents(node.parentNode, ps.concat([node]));\n };\n\n var style = function (node, prop) {\n return getComputedStyle(node, null).getPropertyValue(prop);\n };\n\n var overflow = function (node) {\n return style(node, \"overflow\") + style(node, \"overflow-y\") + style(node, \"overflow-x\");\n };\n\n var scroll = function (node) {\n return regex.test(overflow(node));\n };\n\n var scrollParent = function (node) {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return ;\n }\n\n var ps = parents(node.parentNode, []);\n\n for (var i = 0; i < ps.length; i += 1) {\n if (scroll(ps[i])) {\n return ps[i];\n }\n }\n\n return document.scrollingElement || document.documentElement;\n };\n\n return scrollParent;\n}));\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: VERSION,\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n"],"names":["itemsLimit","_typeof","this","props","items","type","Array","required","keyField","String","default","direction","validator","value","includes","simpleArray","length","supportsPassive","window","opts","Object","defineProperty","get","addEventListener","e","idProp","vm","item","id","store","Vue","data","idState","created","$_id","$_getId","call","$watch","handler","$nextTick","immediate","$_updateIdState","beforeUpdate","methods","$_idStateInit","factory","$options","$set","Error","console","warn","registerComponents","prefix","component","RecycleScroller","DynamicScroller","DynamicScrollerItem","plugin","version","VERSION","install","options","finalOptions","assign","installComponents","componentsPrefix","key","config","GlobalVue","global","use"],"mappings":"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"} \ No newline at end of file From 2fdc033602c709c4fb67d961a7212b95b154dca2 Mon Sep 17 00:00:00 2001 From: Damir Date: Fri, 5 Jun 2020 12:48:39 +0200 Subject: [PATCH 21/26] fix: wrong z index --- README.md | 34 ------------------------------ src/components/RecycleScroller.vue | 2 +- 2 files changed, 1 insertion(+), 35 deletions(-) diff --git a/README.md b/README.md index 547a8dc9..6e77f394 100644 --- a/README.md +++ b/README.md @@ -11,40 +11,6 @@ Blazing fast scrolling of any amount of data | [Live demo](https://akryum.github

-## Sponsors - -### Gold - -

- - sum.cumo logo - -

- -### Silver - -

- - VueSchool logo - - - - Vue Mastery logo - -

- -### Bronze - -

- - - - - - - -

- ## Table of contents - [Installation](#installation) diff --git a/src/components/RecycleScroller.vue b/src/components/RecycleScroller.vue index 800b850c..af8e98d6 100644 --- a/src/components/RecycleScroller.vue +++ b/src/components/RecycleScroller.vue @@ -26,7 +26,7 @@
Date: Fri, 5 Jun 2020 12:49:11 +0200 Subject: [PATCH 22/26] 1.2.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8f94b435..631a9725 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@startinfinity/vue-virtual-scroller", "description": "Smooth scrolling for any amount of data", - "version": "1.2.1", + "version": "1.2.2", "author": { "name": "Guillaume Chau", "email": "guillaume.b.chau@gmail.com" From bfb5d3a8e2030c0e735b9bcee17e55ab9620fcd2 Mon Sep 17 00:00:00 2001 From: reza Date: Fri, 26 Nov 2021 10:57:52 +0100 Subject: [PATCH 23/26] added resizeObserver --- package.json | 3 ++- src/components/RecycleScroller.vue | 10 ++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 631a9725..24e7dbdc 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,8 @@ "homepage": "https://github.com/Akryum/vue-virtual-scroller#readme", "dependencies": { "scrollparent": "^2.0.1", - "vue-observe-visibility": "^0.4.4" + "vue-observe-visibility": "^0.4.4", + "vue-resize": "^0.4.5" }, "peerDependencies": { "vue": "^2.6.11" diff --git a/src/components/RecycleScroller.vue b/src/components/RecycleScroller.vue index af8e98d6..c359cd55 100644 --- a/src/components/RecycleScroller.vue +++ b/src/components/RecycleScroller.vue @@ -47,6 +47,8 @@ name="after" />
+ + @@ -56,14 +58,18 @@ import ScrollParent from 'scrollparent' import config from '../config' import { props, simpleArray } from './common' import { supportsPassive } from '../utils' - +import { ResizeObserver } from 'vue-resize' let uid = 0 export default { name: 'RecycleScroller', + components: { + ResizeObserver + }, + directives: { - ObserveVisibility, + ObserveVisibility }, props: { From 4f1b411220fc49c9ee3226ab6206bbd0b2ec3ed4 Mon Sep 17 00:00:00 2001 From: Damir Date: Tue, 7 Dec 2021 08:38:48 +0100 Subject: [PATCH 24/26] 1.2.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 24e7dbdc..aabf3ca5 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@startinfinity/vue-virtual-scroller", "description": "Smooth scrolling for any amount of data", - "version": "1.2.2", + "version": "1.2.3", "author": { "name": "Guillaume Chau", "email": "guillaume.b.chau@gmail.com" From ad0273e6117a3e15a61afa9b1ba2cb09d3135ca0 Mon Sep 17 00:00:00 2001 From: Damir Date: Tue, 7 Dec 2021 08:40:36 +0100 Subject: [PATCH 25/26] fix: eslint --- src/components/RecycleScroller.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/RecycleScroller.vue b/src/components/RecycleScroller.vue index c359cd55..14b0369b 100644 --- a/src/components/RecycleScroller.vue +++ b/src/components/RecycleScroller.vue @@ -65,11 +65,11 @@ export default { name: 'RecycleScroller', components: { - ResizeObserver + ResizeObserver, }, directives: { - ObserveVisibility + ObserveVisibility, }, props: { From 35f2db362e80f3186f507d31ebd0ece6671e0456 Mon Sep 17 00:00:00 2001 From: Damir Date: Tue, 7 Dec 2021 08:41:03 +0100 Subject: [PATCH 26/26] 1.2.4 --- dist/vue-virtual-scroller.esm.js | 232 +- dist/vue-virtual-scroller.esm.js.map | 2 +- dist/vue-virtual-scroller.min.js | 2 +- dist/vue-virtual-scroller.min.js.map | 2 +- dist/vue-virtual-scroller.umd.js | 401 ++- dist/vue-virtual-scroller.umd.js.map | 2 +- package-lock.json | 4768 ++++++++++++++++++++++++++ package.json | 2 +- 8 files changed, 5159 insertions(+), 252 deletions(-) create mode 100644 package-lock.json diff --git a/dist/vue-virtual-scroller.esm.js b/dist/vue-virtual-scroller.esm.js index 0eda2d6b..dd4b1cb5 100644 --- a/dist/vue-virtual-scroller.esm.js +++ b/dist/vue-virtual-scroller.esm.js @@ -1,50 +1,24 @@ import { ObserveVisibility } from 'vue-observe-visibility'; import ScrollParent from 'scrollparent'; +import { ResizeObserver as ResizeObserver$1 } from 'vue-resize'; import Vue from 'vue'; var config = { itemsLimit: 1000 }; -function _typeof(obj) { - "@babel/helpers - typeof"; - - if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - _typeof = function (obj) { - return typeof obj; - }; - } else { - _typeof = function (obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }; - } - - return _typeof(obj); -} - -function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; -} - function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); + + if (enumerableOnly) { + symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + } + keys.push.apply(keys, symbols); } @@ -71,12 +45,43 @@ function _objectSpread2(target) { return target; } +function _typeof(obj) { + "@babel/helpers - typeof"; + + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function (obj) { + return typeof obj; + }; + } else { + _typeof = function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + + return _typeof(obj); +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(n); + if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } @@ -88,9 +93,12 @@ function _arrayLikeToArray(arr, len) { return arr2; } -function _createForOfIteratorHelper(o) { - if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { - if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { +function _createForOfIteratorHelper(o, allowArrayLike) { + var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; + + if (!it) { + if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; var i = 0; var F = function () {}; @@ -116,13 +124,12 @@ function _createForOfIteratorHelper(o) { throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - var it, - normalCompletion = true, + var normalCompletion = true, didErr = false, err; return { s: function () { - it = o[Symbol.iterator](); + it = it.call(o); }, n: function () { var step = it.next(); @@ -180,12 +187,15 @@ if (typeof window !== 'undefined') { } var uid = 0; -var script = { +var script$2 = { name: 'RecycleScroller', + components: { + ResizeObserver: ResizeObserver$1 + }, directives: { ObserveVisibility: ObserveVisibility }, - props: _objectSpread2({}, props, { + props: _objectSpread2(_objectSpread2({}, props), {}, { itemSize: { type: Number, default: null @@ -835,9 +845,9 @@ function normalizeComponent(template, style, script, scopeId, isFunctionalTempla } /* script */ -const __vue_script__ = script; +const __vue_script__$2 = script$2; /* template */ -var __vue_render__ = function() { +var __vue_render__$1 = function () { var _obj, _obj$1; var _vm = this; var _h = _vm.$createElement; @@ -850,22 +860,22 @@ var __vue_render__ = function() { name: "observe-visibility", rawName: "v-observe-visibility", value: _vm.handleVisibilityChange, - expression: "handleVisibilityChange" - } + expression: "handleVisibilityChange", + }, ], staticClass: "vue-recycle-scroller", class: ((_obj = { ready: _vm.ready, - "page-mode": _vm.pageMode + "page-mode": _vm.pageMode, }), (_obj["direction-" + _vm.direction] = true), _obj), on: { - "&scroll": function($event) { - return _vm.handleScroll($event) - } - } + "&scroll": function ($event) { + return _vm.handleScroll.apply(null, arguments) + }, + }, }, [ _vm.$slots.before @@ -886,9 +896,9 @@ var __vue_render__ = function() { ((_obj$1 = {}), (_obj$1[_vm.direction === "vertical" ? "minHeight" : "minWidth"] = _vm.totalSize + "px"), - _obj$1) + _obj$1), }, - _vm._l(_vm.pool, function(view) { + _vm._l(_vm.pool, function (view) { return _c( "div", { @@ -902,24 +912,24 @@ var __vue_render__ = function() { "(" + view.position + "px)", - zIndex: _vm.pool.length - view.nr.index + zIndex: _vm.items.length - view.nr.index, } : null, on: { - mouseenter: function($event) { + mouseenter: function ($event) { return $event.target.classList.add("hover") }, - mouseleave: function($event) { + mouseleave: function ($event) { return $event.target.classList.remove("hover") - } - } + }, + }, }, [ _vm._t("default", null, { item: view.item, index: view.nr.index, - active: view.nr.used - }) + active: view.nr.used, + }), ], 2 ) @@ -934,21 +944,24 @@ var __vue_render__ = function() { [_vm._t("after")], 2 ) - : _vm._e() - ] + : _vm._e(), + _vm._v(" "), + _c("ResizeObserver", { on: { notify: _vm.handleResize } }), + ], + 1 ) }; -var __vue_staticRenderFns__ = []; -__vue_render__._withStripped = true; +var __vue_staticRenderFns__$1 = []; +__vue_render__$1._withStripped = true; /* style */ - const __vue_inject_styles__ = undefined; + const __vue_inject_styles__$2 = undefined; /* scoped */ - const __vue_scope_id__ = undefined; + const __vue_scope_id__$2 = undefined; /* module identifier */ - const __vue_module_identifier__ = undefined; + const __vue_module_identifier__$2 = undefined; /* functional template */ - const __vue_is_functional_template__ = false; + const __vue_is_functional_template__$2 = false; /* style inject */ /* style inject SSR */ @@ -957,13 +970,13 @@ __vue_render__._withStripped = true; - const __vue_component__ = normalizeComponent( - { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ }, - __vue_inject_styles__, - __vue_script__, - __vue_scope_id__, - __vue_is_functional_template__, - __vue_module_identifier__, + const __vue_component__$2 = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 }, + __vue_inject_styles__$2, + __vue_script__$2, + __vue_scope_id__$2, + __vue_is_functional_template__$2, + __vue_module_identifier__$2, false, undefined, undefined, @@ -973,7 +986,7 @@ __vue_render__._withStripped = true; var script$1 = { name: 'DynamicScroller', components: { - RecycleScroller: __vue_component__ + RecycleScroller: __vue_component__$2 }, inheritAttrs: false, provide: function provide() { @@ -1009,7 +1022,7 @@ var script$1 = { vscrollResizeObserver: this.$_resizeObserver }; }, - props: _objectSpread2({}, props, { + props: _objectSpread2(_objectSpread2({}, props), {}, { minItemSize: { type: [Number, String], required: true @@ -1159,7 +1172,7 @@ var script$1 = { const __vue_script__$1 = script$1; /* template */ -var __vue_render__$1 = function() { +var __vue_render__ = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -1173,14 +1186,14 @@ var __vue_render__$1 = function() { items: _vm.itemsWithSize, "min-item-size": _vm.minItemSize, direction: _vm.direction, - "key-field": "id" + "key-field": "id", }, on: { resize: _vm.onScrollerResize, visible: _vm.onScrollerVisible }, scopedSlots: _vm._u( [ { key: "default", - fn: function(ref) { + fn: function (ref) { var itemWithSize = ref.item; var index = ref.index; var active = ref.active; @@ -1189,15 +1202,15 @@ var __vue_render__$1 = function() { item: itemWithSize.item, index: index, active: active, - itemWithSize: itemWithSize - }) + itemWithSize: itemWithSize, + }), ] - } - } + }, + }, ], null, true - ) + ), }, "RecycleScroller", _vm.$attrs, @@ -1209,13 +1222,13 @@ var __vue_render__$1 = function() { _vm._v(" "), _c("template", { slot: "before" }, [_vm._t("before")], 2), _vm._v(" "), - _c("template", { slot: "after" }, [_vm._t("after")], 2) + _c("template", { slot: "after" }, [_vm._t("after")], 2), ], 2 ) }; -var __vue_staticRenderFns__$1 = []; -__vue_render__$1._withStripped = true; +var __vue_staticRenderFns__ = []; +__vue_render__._withStripped = true; /* style */ const __vue_inject_styles__$1 = undefined; @@ -1233,8 +1246,8 @@ __vue_render__$1._withStripped = true; - const __vue_component__$1 = normalizeComponent( - { render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 }, + const __vue_component__$1 = /*#__PURE__*/normalizeComponent( + { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ }, __vue_inject_styles__$1, __vue_script__$1, __vue_scope_id__$1, @@ -1246,7 +1259,7 @@ __vue_render__$1._withStripped = true; undefined ); -var script$2 = { +var script = { name: 'DynamicScrollerItem', inject: ['vscrollData', 'vscrollParent', 'vscrollResizeObserver'], props: { @@ -1453,18 +1466,18 @@ var script$2 = { }; /* script */ -const __vue_script__$2 = script$2; +const __vue_script__ = script; /* template */ /* style */ - const __vue_inject_styles__$2 = undefined; + const __vue_inject_styles__ = undefined; /* scoped */ - const __vue_scope_id__$2 = undefined; + const __vue_scope_id__ = undefined; /* module identifier */ - const __vue_module_identifier__$2 = undefined; + const __vue_module_identifier__ = undefined; /* functional template */ - const __vue_is_functional_template__$2 = undefined; + const __vue_is_functional_template__ = undefined; /* style inject */ /* style inject SSR */ @@ -1473,13 +1486,13 @@ const __vue_script__$2 = script$2; - const __vue_component__$2 = normalizeComponent( + const __vue_component__ = /*#__PURE__*/normalizeComponent( {}, - __vue_inject_styles__$2, - __vue_script__$2, - __vue_scope_id__$2, - __vue_is_functional_template__$2, - __vue_module_identifier__$2, + __vue_inject_styles__, + __vue_script__, + __vue_scope_id__, + __vue_is_functional_template__, + __vue_module_identifier__, false, undefined, undefined, @@ -1579,17 +1592,17 @@ function IdState () { } function registerComponents(Vue, prefix) { - Vue.component("".concat(prefix, "recycle-scroller"), __vue_component__); - Vue.component("".concat(prefix, "RecycleScroller"), __vue_component__); + Vue.component("".concat(prefix, "recycle-scroller"), __vue_component__$2); + Vue.component("".concat(prefix, "RecycleScroller"), __vue_component__$2); Vue.component("".concat(prefix, "dynamic-scroller"), __vue_component__$1); Vue.component("".concat(prefix, "DynamicScroller"), __vue_component__$1); - Vue.component("".concat(prefix, "dynamic-scroller-item"), __vue_component__$2); - Vue.component("".concat(prefix, "DynamicScrollerItem"), __vue_component__$2); + Vue.component("".concat(prefix, "dynamic-scroller-item"), __vue_component__); + Vue.component("".concat(prefix, "DynamicScrollerItem"), __vue_component__); } var plugin = { // eslint-disable-next-line no-undef - version: "1.2.1", + version: "1.2.4", install: function install(Vue, options) { var finalOptions = Object.assign({}, { installComponents: true, @@ -1620,6 +1633,5 @@ if (GlobalVue) { GlobalVue.use(plugin); } -export default plugin; -export { __vue_component__$1 as DynamicScroller, __vue_component__$2 as DynamicScrollerItem, IdState, __vue_component__ as RecycleScroller }; +export { __vue_component__$1 as DynamicScroller, __vue_component__ as DynamicScrollerItem, IdState, __vue_component__$2 as RecycleScroller, plugin as default }; //# sourceMappingURL=vue-virtual-scroller.esm.js.map diff --git a/dist/vue-virtual-scroller.esm.js.map b/dist/vue-virtual-scroller.esm.js.map index 09c128b6..52486040 100644 --- a/dist/vue-virtual-scroller.esm.js.map +++ b/dist/vue-virtual-scroller.esm.js.map @@ -1 +1 @@ -{"version":3,"file":"vue-virtual-scroller.esm.js","sources":["../src/config.js","../src/components/common.js","../src/utils.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/mixins/IdState.js","../src/index.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: VERSION,\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n"],"names":["itemsLimit","props","items","type","Array","required","keyField","String","default","direction","validator","value","includes","simpleArray","length","supportsPassive","window","opts","Object","defineProperty","get","addEventListener","e","idProp","vm","item","id","store","Vue","data","idState","created","$_id","$_getId","call","$watch","handler","$nextTick","immediate","$_updateIdState","beforeUpdate","methods","$_idStateInit","factory","$options","$set","Error","console","warn","registerComponents","prefix","component","RecycleScroller","DynamicScroller","DynamicScrollerItem","plugin","version","VERSION","install","options","finalOptions","assign","installComponents","componentsPrefix","key","config","GlobalVue","global","use"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"vue-virtual-scroller.esm.js","sources":["../src/config.js","../src/components/common.js","../src/utils.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/mixins/IdState.js","../src/index.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: VERSION,\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n"],"names":["itemsLimit","props","items","type","Array","required","keyField","String","default","direction","validator","value","includes","simpleArray","length","supportsPassive","window","opts","Object","defineProperty","get","addEventListener","e","idProp","vm","item","id","store","Vue","data","idState","created","$_id","$_getId","call","$watch","handler","$nextTick","immediate","$_updateIdState","beforeUpdate","methods","$_idStateInit","factory","$options","$set","Error","console","warn","registerComponents","prefix","component","RecycleScroller","DynamicScroller","DynamicScrollerItem","plugin","version","VERSION","install","options","finalOptions","assign","installComponents","componentsPrefix","key","config","GlobalVue","global","use"],"mappings":"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"} \ No newline at end of file diff --git a/dist/vue-virtual-scroller.min.js b/dist/vue-virtual-scroller.min.js index fac75464..875aef37 100644 --- a/dist/vue-virtual-scroller.min.js +++ b/dist/vue-virtual-scroller.min.js @@ -1,2 +1,2 @@ -var VueVirtualScroller=function(e,t){"use strict";t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;var i={itemsLimit:1e3};function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function o(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function s(e){for(var t=1;te.length)&&(t=e.length);for(var i=0,n=new Array(t);i=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var n,r,o=!0,s=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,r=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw r}}}}function c(e){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function d(e,t){for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:{},s=function(s){for(var l=arguments.length,a=new Array(l>1?l-1:0),c=1;c1){var n=e.find((function(e){return e.isIntersecting}));n&&(t=n)}if(i.callback){var r=t.isIntersecting&&t.intersectionRatio>=i.threshold;if(r===i.oldResult)return;i.oldResult=r,i.callback(r,t)}}),this.options.intersection),t.context.$nextTick((function(){i.observer&&i.observer.observe(i.el)}))}}},{key:"destroyObserver",value:function(){this.observer&&(this.observer.disconnect(),this.observer=null),this.callback&&this.callback._clear&&(this.callback._clear(),this.callback=null)}},{key:"threshold",get:function(){return this.options.intersection&&this.options.intersection.threshold||0}}])&&d(t.prototype,i),n&&d(t,n),e}();function f(e,t,i){var n=t.value;if(n)if("undefined"==typeof IntersectionObserver)console.warn("[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill");else{var r=new h(e,n,i);e._vue_visibilityState=r}}function v(e){var t=e._vue_visibilityState;t&&(t.destroyObserver(),delete e._vue_visibilityState)}var p={bind:f,update:function(e,t,i){var n=t.value;if(!function e(t,i){if(t===i)return!0;if("object"===c(t)){for(var n in t)if(!e(t[n],i[n]))return!1;return!0}return!1}(n,t.oldValue)){var r=e._vue_visibilityState;n?r?r.createObserver(n,i):f(e,{value:n},i):v(e)}},unbind:v};var m={version:"0.4.6",install:function(e){e.directive("observe-visibility",p)}},y=null;"undefined"!=typeof window?y=window.Vue:"undefined"!=typeof global&&(y=global.Vue),y&&y.use(m);var b="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var g=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){var t,i;t=b,i=function(){var e=/(auto|scroll)/,t=function(e,i){return null===e.parentNode?i:t(e.parentNode,i.concat([e]))},i=function(e,t){return getComputedStyle(e,null).getPropertyValue(t)},n=function(t){return e.test(function(e){return i(e,"overflow")+i(e,"overflow-y")+i(e,"overflow-x")}(t))};return function(e){if(e instanceof HTMLElement||e instanceof SVGElement){for(var i=t(e.parentNode,[]),r=0;r1&&void 0!==arguments[1]&&arguments[1],i=this.$_unusedViews,n=e.nr.type;i.get(n)||i.set(n,[]);var r=i.get(n);r.push(e),t||(e.nr.used=!1,e.position=-9999,this.$_views.delete(e.nr.key))},handleResize:function(){this.$emit("resize"),this.ready&&this.updateVisibleItems(!1)},handleScroll:function(e){var t=this;cancelAnimationFrame(this.$_scrollAnimationRequest),this.$_scrollAnimationRequest=requestAnimationFrame((function(){t.$_scrollAnimationRequest=!1,t.updateVisibleItems(!1,!0).continuous||(clearTimeout(t.$_refreshTimout),t.$_refreshTimout=setTimeout(t.handleScroll,100))}))},handleVisibilityChange:function(e,t){var i=this;this.ready&&(e?(this.$emit("visible"),requestAnimationFrame((function(){i.updateVisibleItems(!1)}))):this.$emit("hidden"))},startEndIndex:function(e){var t=this.itemSize,i=this.items,n=i.length,r=this.sizes;if(!n)return{startIndex:0,endIndex:0,totalSize:0};if(this.$_prerender)return{startIndex:0,endIndex:this.prerender,totalSize:null};this.$_lastUpdateScrollPosition=e.originalStart;var o=this.buffer;if(e.start-=o,e.end+=o,null===t){var s,l=0,a=n-1,c=~~(n/2);do{s=c,r[c].accumulatore.start&&(a=c),c=~~((l+a)/2)}while(c!==s);c<0&&(c=0);var d,u=c,h=r[n-1].accumulator;for(d=c;dn&&(d=n);return{startIndex:u,endIndex:d,totalSize:h}}return{startIndex:Math.max(0,~~(e.start/t)),endIndex:Math.min(n,Math.ceil(e.end/t)),totalSize:n*t}},updateVisibleItems:function(e){var t,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.itemSize,o=this.$_computedMinItemSize,s=this.typeField,l=this.simpleArray?null:this.keyField,a=this.items,c=a.length,d=this.sizes,u=this.$_views,h=this.$_unusedViews,f=this.pool;if(c&&!this.$_prerender&&(t=this.getScroll(),n)){var v=Math.abs(t.originalStart-this.$_lastUpdateScrollPosition);if(null===r&&vi.itemsLimit&&this.itemsLimitError(),this.totalSize=g;var S=y<=this.$_endIndex&&b>=this.$_startIndex;if(this.$_continuous!==S){if(S){u.clear(),h.clear();for(var _=0,$=f.length;_<$;_++)p=f[_],this.unuseView(p)}this.$_continuous=S}else if(S)for(var z=0,w=f.length;z=b)&&this.unuseView(p));for(var I,x,O,D,V=S?null:new Map,R=y;R=O.length)&&(p=this.addView(f,R,I,T,x),this.unuseView(p,!0),O=h.get(x)),(p=O[D]).item=I,p.nr.used=!0,p.nr.index=R,p.nr.key=T,p.nr.type=x,V.set(x,D+1),D++),u.set(T,p)),p.position=null===r?d[R-1].accumulator:R*r):p&&this.unuseView(p)}return this.$_startIndex=y,this.$_endIndex=b,this.emitUpdate&&this.$emit("update",y,b),{continuous:S}},getListenerTarget:function(){var e=g(this.$el);return!window.document||e!==window.document.documentElement&&e!==window.document.body||(e=window),e},getScroll:function(){var e=this.$el,t="vertical"===this.direction;if(this.pageMode){var i=e.getBoundingClientRect(),n=t?i.height:i.width,r=-(t?i.top:i.left),o=r,s=t?window.innerHeight:window.innerWidth;return o<0&&(s+=o,o=0),o+s>n&&(s=n-o),{originalStart:r,start:o,end:o+s}}return t?{originalStart:e.scrollTop,start:e.scrollTop,end:e.scrollTop+e.clientHeight}:{originalStart:e.scrollLeft,start:e.scrollLeft,end:e.scrollLeft+e.clientWidth}},applyPageMode:function(){this.pageMode?this.addListeners():this.removeListeners()},addListeners:function(){this.listenerTarget=this.getListenerTarget(),this.listenerTarget.addEventListener("scroll",this.handleScroll,!!$&&{passive:!0}),this.listenerTarget.addEventListener("resize",this.handleResize)},removeListeners:function(){this.listenerTarget&&(this.listenerTarget.removeEventListener("scroll",this.handleScroll),this.listenerTarget.removeEventListener("resize",this.handleResize),this.listenerTarget=null)},scrollToItem:function(e){var t=this.scrollToPosition(e),i=t.viewport,n=t.scrollDirection,r=t.scrollDistance;i[n]=r},scrollToPosition:function(e){var t=this,i=function(e){return null===t.itemSize?e>0?t.sizes[e-1].accumulator:0:e*t.itemSize}(e),n="vertical"===this.direction?{scroll:"scrollTop",start:"top"}:{scroll:"scrollLeft",start:"left"};if(this.pageMode){var r=g(this.$el),o="HTML"===r.tagName?0:r[n.scroll],s=r.getBoundingClientRect(),l=this.$el.getBoundingClientRect()[n.start]-s[n.start];return{viewport:r,scrollDirection:n.scroll,scrollDistance:i+o+l}}return{viewport:this.$el,scrollDirection:n.scroll,scrollDistance:i}},itemsLimitError:function(){var e=this;throw setTimeout((function(){console.log("It seems the scroller element isn't scrolling, so it tries to render all the items at once.","Scroller:",e.$el),console.log("Make sure the scroller has a fixed height (or width) and 'overflow-y' (or 'overflow-x') set to 'auto' so it can scroll correctly and only render the items visible in the scroll viewport.")})),new Error("Rendered items limit reached")}}};var O=function(){var e,t,i=this,n=i.$createElement,r=i._self._c||n;return r("div",{directives:[{name:"observe-visibility",rawName:"v-observe-visibility",value:i.handleVisibilityChange,expression:"handleVisibilityChange"}],staticClass:"vue-recycle-scroller",class:(e={ready:i.ready,"page-mode":i.pageMode},e["direction-"+i.direction]=!0,e),on:{"&scroll":function(e){return i.handleScroll(e)}}},[i.$slots.before?r("div",{staticClass:"vue-recycle-scroller__slot"},[i._t("before")],2):i._e(),i._v(" "),r("div",{ref:"wrapper",staticClass:"vue-recycle-scroller__item-wrapper",style:(t={},t["vertical"===i.direction?"minHeight":"minWidth"]=i.totalSize+"px",t)},i._l(i.pool,(function(e){return r("div",{key:e.nr.id,staticClass:"vue-recycle-scroller__item-view",style:i.ready?{transform:"translate"+("vertical"===i.direction?"Y":"X")+"("+e.position+"px)",zIndex:i.pool.length-e.nr.index}:null,on:{mouseenter:function(e){return e.target.classList.add("hover")},mouseleave:function(e){return e.target.classList.remove("hover")}}},[i._t("default",null,{item:e.item,index:e.nr.index,active:e.nr.used})],2)})),0),i._v(" "),i.$slots.after?r("div",{staticClass:"vue-recycle-scroller__slot"},[i._t("after")],2):i._e()])};O._withStripped=!0;const D=I({render:O,staticRenderFns:[]},void 0,x,void 0,!1,void 0,!1,void 0,void 0,void 0);const V={name:"DynamicScroller",components:{RecycleScroller:D},inheritAttrs:!1,provide:function(){return"undefined"!=typeof ResizeObserver&&(this.$_resizeObserver=new ResizeObserver((function(e){var t,i=a(e);try{for(i.s();!(t=i.n()).done;){var n=t.value;if(n.target){var r=new CustomEvent("resize",{detail:{contentRect:n.contentRect}});n.target.dispatchEvent(r)}}}catch(e){i.e(e)}finally{i.f()}}))),{vscrollData:this.vscrollData,vscrollParent:this,vscrollResizeObserver:this.$_resizeObserver}},props:s({},S,{minItemSize:{type:[Number,String],required:!0}}),data:function(){return{vscrollData:{active:!0,sizes:{},validSizes:{},keyField:this.keyField,simpleArray:!1}}},computed:{simpleArray:_,itemsWithSize:function(){for(var e=[],t=this.items,i=this.keyField,n=this.simpleArray,r=this.vscrollData.sizes,o=0;o0&&void 0!==arguments[0])||arguments[0];(e||this.simpleArray)&&(this.vscrollData.validSizes={}),this.$emit("vscroll:update",{force:!0})},scrollToItem:function(e){var t=this.$refs.scroller;t&&t.scrollToItem(e)},getItemSize:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=this.simpleArray?null!=t?t:this.items.indexOf(e):e[this.keyField];return this.vscrollData.sizes[i]||0},scrollToBottom:function(){var e=this;if(!this.$_scrollingToBottom){this.$_scrollingToBottom=!0;var t=this.$el;this.$nextTick((function(){t.scrollTop=t.scrollHeight+5e3;requestAnimationFrame((function i(){t.scrollTop=t.scrollHeight+5e3,requestAnimationFrame((function(){t.scrollTop=t.scrollHeight+5e3,0===e.$_undefinedSizes?e.$_scrollingToBottom=!1:requestAnimationFrame(i)}))}))}))}}}};var R=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("RecycleScroller",e._g(e._b({ref:"scroller",attrs:{items:e.itemsWithSize,"min-item-size":e.minItemSize,direction:e.direction,"key-field":"id"},on:{resize:e.onScrollerResize,visible:e.onScrollerVisible},scopedSlots:e._u([{key:"default",fn:function(t){var i=t.item,n=t.index,r=t.active;return[e._t("default",null,null,{item:i.item,index:n,active:r,itemWithSize:i})]}}],null,!0)},"RecycleScroller",e.$attrs,!1),e.listeners),[e._v(" "),i("template",{slot:"before"},[e._t("before")],2),e._v(" "),i("template",{slot:"after"},[e._t("after")],2)],2)};R._withStripped=!0;const T=I({render:R,staticRenderFns:[]},void 0,V,void 0,!1,void 0,!1,void 0,void 0,void 0);const P=I({},void 0,{name:"DynamicScrollerItem",inject:["vscrollData","vscrollParent","vscrollResizeObserver"],props:{item:{required:!0},watchData:{type:Boolean,default:!1},active:{type:Boolean,required:!0},index:{type:Number,default:void 0},sizeDependencies:{type:[Array,Object],default:null},emitResize:{type:Boolean,default:!1},tag:{type:String,default:"div"}},computed:{id:function(){return this.vscrollData.simpleArray?this.index:this.item[this.vscrollData.keyField]},size:function(){return this.vscrollData.validSizes[this.id]&&this.vscrollData.sizes[this.id]||0},finalActive:function(){return this.active&&this.vscrollData.active}},watch:{watchData:"updateWatchData",id:function(){this.size||this.onDataUpdate()},finalActive:function(e){this.size||(e?this.vscrollParent.$_undefinedMap[this.id]||(this.vscrollParent.$_undefinedSizes++,this.vscrollParent.$_undefinedMap[this.id]=!0):this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=!1)),this.vscrollResizeObserver?e?this.observeSize():this.unobserveSize():e&&this.$_pendingVScrollUpdate===this.id&&this.updateSize()}},created:function(){var e=this;if(!this.$isServer&&(this.$_forceNextVScrollUpdate=null,this.updateWatchData(),!this.vscrollResizeObserver)){var t=function(t){e.$watch((function(){return e.sizeDependencies[t]}),e.onDataUpdate)};for(var i in this.sizeDependencies)t(i);this.vscrollParent.$on("vscroll:update",this.onVscrollUpdate),this.vscrollParent.$on("vscroll:update-size",this.onVscrollUpdateSize)}},mounted:function(){this.vscrollData.active&&(this.updateSize(),this.observeSize())},beforeDestroy:function(){this.vscrollParent.$off("vscroll:update",this.onVscrollUpdate),this.vscrollParent.$off("vscroll:update-size",this.onVscrollUpdateSize),this.unobserveSize()},methods:{updateSize:function(){this.finalActive?this.$_pendingSizeUpdate!==this.id&&(this.$_pendingSizeUpdate=this.id,this.$_forceNextVScrollUpdate=null,this.$_pendingVScrollUpdate=null,this.computeSize(this.id)):this.$_forceNextVScrollUpdate=this.id},updateWatchData:function(){var e=this;this.watchData?this.$_watchData=this.$watch("data",(function(){e.onDataUpdate()}),{deep:!0}):this.$_watchData&&(this.$_watchData(),this.$_watchData=null)},onVscrollUpdate:function(e){var t=e.force;!this.finalActive&&t&&(this.$_pendingVScrollUpdate=this.id),this.$_forceNextVScrollUpdate!==this.id&&!t&&this.size||this.updateSize()},onDataUpdate:function(){this.updateSize()},computeSize:function(e){var t=this;this.$nextTick((function(){if(t.id===e){var i=t.$el.offsetWidth,n=t.$el.offsetHeight;t.applySize(i,n)}t.$_pendingSizeUpdate=null}))},applySize:function(e,t){var i=Math.round("vertical"===this.vscrollParent.direction?t:e);i&&this.size!==i&&(this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=void 0),this.$set(this.vscrollData.sizes,this.id,i),this.$set(this.vscrollData.validSizes,this.id,!0),this.emitResize&&this.$emit("resize",this.id))},observeSize:function(){this.vscrollResizeObserver&&(this.vscrollResizeObserver.observe(this.$el.parentNode),this.$el.parentNode.addEventListener("resize",this.onResize))},unobserveSize:function(){this.vscrollResizeObserver&&(this.vscrollResizeObserver.unobserve(this.$el.parentNode),this.$el.parentNode.removeEventListener("resize",this.onResize))},onResize:function(e){var t=e.detail.contentRect,i=t.width,n=t.height;this.applySize(i,n)}},render:function(e){return e(this.tag,this.$slots.default)}},void 0,void 0,void 0,!1,void 0,void 0,void 0);var A={version:"1.2.1",install:function(e,t){var n=Object.assign({},{installComponents:!0,componentsPrefix:""},t);for(var r in n)void 0!==n[r]&&(i[r]=n[r]);n.installComponents&&function(e,t){e.component("".concat(t,"recycle-scroller"),D),e.component("".concat(t,"RecycleScroller"),D),e.component("".concat(t,"dynamic-scroller"),T),e.component("".concat(t,"DynamicScroller"),T),e.component("".concat(t,"dynamic-scroller-item"),P),e.component("".concat(t,"DynamicScrollerItem"),P)}(e,n.componentsPrefix)}},k=null;return"undefined"!=typeof window?k=window.Vue:"undefined"!=typeof global&&(k=global.Vue),k&&k.use(A),e.DynamicScroller=T,e.DynamicScrollerItem=P,e.IdState=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=e.idProp,n=void 0===i?function(e){return e.item.id}:i,r={},o=new t({data:function(){return{store:r}}});return{data:function(){return{idState:null}},created:function(){var e=this;this.$_id=null,this.$_getId="function"==typeof n?function(){return n.call(e,e)}:function(){return e[n]},this.$watch(this.$_getId,{handler:function(e){var t=this;this.$nextTick((function(){t.$_id=e}))},immediate:!0}),this.$_updateIdState()},beforeUpdate:function(){this.$_updateIdState()},methods:{$_idStateInit:function(e){var t=this.$options.idState;if("function"==typeof t){var i=t.call(this,this);return o.$set(r,e,i),this.$_id=e,i}throw new Error("[mixin IdState] Missing `idState` function on component definition.")},$_updateIdState:function(){var e=this.$_getId();null==e&&console.warn("No id found for IdState with idProp: '".concat(n,"'.")),e!==this.$_id&&(r[e]||this.$_idStateInit(e),this.idState=r[e])}}}},e.RecycleScroller=D,e.default=A,e}({},Vue); +var VueVirtualScroller=function(e,t){"use strict";function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=i(t),r={itemsLimit:1e3};function s(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function o(e){for(var t=1;te.length)&&(t=e.length);for(var i=0,n=new Array(t);i=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,o=!0,l=!1;return{s:function(){i=i.call(e)},n:function(){var e=i.next();return o=e.done,e},e:function(e){l=!0,s=e},f:function(){try{o||null==i.return||i.return()}finally{if(l)throw s}}}}function u(e){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function h(e,t){for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:{},o=function(o){for(var l=arguments.length,a=new Array(l>1?l-1:0),c=1;c1){var n=e.find((function(e){return e.isIntersecting}));n&&(t=n)}if(i.callback){var r=t.isIntersecting&&t.intersectionRatio>=i.threshold;if(r===i.oldResult)return;i.oldResult=r,i.callback(r,t)}}),this.options.intersection),t.context.$nextTick((function(){i.observer&&i.observer.observe(i.el)}))}}},{key:"destroyObserver",value:function(){this.observer&&(this.observer.disconnect(),this.observer=null),this.callback&&this.callback._clear&&(this.callback._clear(),this.callback=null)}},{key:"threshold",get:function(){return this.options.intersection&&this.options.intersection.threshold||0}}])&&h(t.prototype,i),n&&h(t,n),e}();function p(e,t,i){var n=t.value;if(n)if("undefined"==typeof IntersectionObserver)console.warn("[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill");else{var r=new v(e,n,i);e._vue_visibilityState=r}}function m(e){var t=e._vue_visibilityState;t&&(t.destroyObserver(),delete e._vue_visibilityState)}var y={bind:p,update:function(e,t,i){var n=t.value;if(!function e(t,i){if(t===i)return!0;if("object"===u(t)){for(var n in t)if(!e(t[n],i[n]))return!1;return!0}return!1}(n,t.oldValue)){var r=e._vue_visibilityState;n?r?r.createObserver(n,i):p(e,{value:n},i):m(e)}},unbind:m};var b={version:"0.4.6",install:function(e){e.directive("observe-visibility",y)}},g=null;"undefined"!=typeof window?g=window.Vue:"undefined"!=typeof global&&(g=global.Vue),g&&g.use(b);var _="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var S=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){var t,i;t=_,i=function(){var e=/(auto|scroll)/,t=function(e,i){return null===e.parentNode?i:t(e.parentNode,i.concat([e]))},i=function(e,t){return getComputedStyle(e,null).getPropertyValue(t)},n=function(t){return e.test(function(e){return i(e,"overflow")+i(e,"overflow-y")+i(e,"overflow-x")}(t))};return function(e){if(e instanceof HTMLElement||e instanceof SVGElement){for(var i=t(e.parentNode,[]),r=0;r0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);if(e.indexOf("Trident/")>0){var i=e.indexOf("rv:");return parseInt(e.substring(i+3,e.indexOf(".",i)),10)}var n=e.indexOf("Edge/");return n>0?parseInt(e.substring(n+5,e.indexOf(".",n)),10):-1}())}var R={render:function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"resize-observer",attrs:{tabindex:"-1"}})},staticRenderFns:[],_scopeId:"data-v-b329ee4c",name:"resize-observer",methods:{compareAndNotify:function(){this._w===this.$el.offsetWidth&&this._h===this.$el.offsetHeight||(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.$emit("notify"))},addResizeHandlers:function(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers:function(){this._resizeObject&&this._resizeObject.onload&&(!O&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),delete this._resizeObject.onload)}},mounted:function(){var e=this;I(),this.$nextTick((function(){e._w=e.$el.offsetWidth,e._h=e.$el.offsetHeight}));var t=document.createElement("object");this._resizeObject=t,t.setAttribute("aria-hidden","true"),t.setAttribute("tabindex",-1),t.onload=this.addResizeHandlers,t.type="text/html",O&&this.$el.appendChild(t),t.data="about:blank",O||this.$el.appendChild(t)},beforeDestroy:function(){this.removeResizeHandlers()}};var D={version:"0.4.5",install:function(e){e.component("resize-observer",R),e.component("ResizeObserver",R)}},V=null;"undefined"!=typeof window?V=window.Vue:"undefined"!=typeof global&&(V=global.Vue),V&&V.use(D);var T=0;function A(e,t,i,n,r,s,o,l,a,c){"boolean"!=typeof o&&(a=l,l=o,o=!1);const d="function"==typeof i?i.options:i;let u;if(e&&e.render&&(d.render=e.render,d.staticRenderFns=e.staticRenderFns,d._compiled=!0,r&&(d.functional=!0)),n&&(d._scopeId=n),s?(u=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,a(e)),e&&e._registeredComponents&&e._registeredComponents.add(s)},d._ssrRegister=u):t&&(u=o?function(e){t.call(this,c(e,this.$root.$options.shadowRoot))}:function(e){t.call(this,l(e))}),u)if(d.functional){const e=d.render;d.render=function(t,i){return u.call(i),e(t,i)}}else{const e=d.beforeCreate;d.beforeCreate=e?[].concat(e,u):[u]}return i}const P={name:"RecycleScroller",components:{ResizeObserver:R},directives:{ObserveVisibility:y},props:o(o({},$),{},{itemSize:{type:Number,default:null},minItemSize:{type:[Number,String],default:null},sizeField:{type:String,default:"size"},typeField:{type:String,default:"type"},buffer:{type:Number,default:200},pageMode:{type:Boolean,default:!1},prerender:{type:Number,default:0},emitUpdate:{type:Boolean,default:!1}}),data:function(){return{pool:[],totalSize:0,ready:!1,hoverKey:null}},computed:{sizes:function(){if(null===this.itemSize){for(var e,t={"-1":{accumulator:0}},i=this.items,n=this.sizeField,r=this.minItemSize,s=1e4,o=0,l=0,a=i.length;l1&&void 0!==arguments[1]&&arguments[1],i=this.$_unusedViews,n=e.nr.type;i.get(n)||i.set(n,[]);var r=i.get(n);r.push(e),t||(e.nr.used=!1,e.position=-9999,this.$_views.delete(e.nr.key))},handleResize:function(){this.$emit("resize"),this.ready&&this.updateVisibleItems(!1)},handleScroll:function(e){var t=this;cancelAnimationFrame(this.$_scrollAnimationRequest),this.$_scrollAnimationRequest=requestAnimationFrame((function(){t.$_scrollAnimationRequest=!1,t.updateVisibleItems(!1,!0).continuous||(clearTimeout(t.$_refreshTimout),t.$_refreshTimout=setTimeout(t.handleScroll,100))}))},handleVisibilityChange:function(e,t){var i=this;this.ready&&(e?(this.$emit("visible"),requestAnimationFrame((function(){i.updateVisibleItems(!1)}))):this.$emit("hidden"))},startEndIndex:function(e){var t=this.itemSize,i=this.items,n=i.length,r=this.sizes;if(!n)return{startIndex:0,endIndex:0,totalSize:0};if(this.$_prerender)return{startIndex:0,endIndex:this.prerender,totalSize:null};this.$_lastUpdateScrollPosition=e.originalStart;var s=this.buffer;if(e.start-=s,e.end+=s,null===t){var o,l=0,a=n-1,c=~~(n/2);do{o=c,r[c].accumulatore.start&&(a=c),c=~~((l+a)/2)}while(c!==o);c<0&&(c=0);var d,u=c,h=r[n-1].accumulator;for(d=c;dn&&(d=n);return{startIndex:u,endIndex:d,totalSize:h}}return{startIndex:Math.max(0,~~(e.start/t)),endIndex:Math.min(n,Math.ceil(e.end/t)),totalSize:n*t}},updateVisibleItems:function(e){var t,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.itemSize,s=this.$_computedMinItemSize,o=this.typeField,l=this.simpleArray?null:this.keyField,a=this.items,c=a.length,d=this.sizes,u=this.$_views,h=this.$_unusedViews,f=this.pool;if(c&&!this.$_prerender&&(t=this.getScroll(),i)){var v=Math.abs(t.originalStart-this.$_lastUpdateScrollPosition);if(null===n&&vr.itemsLimit&&this.itemsLimitError(),this.totalSize=g;var _=y<=this.$_endIndex&&b>=this.$_startIndex;if(this.$_continuous!==_){if(_){u.clear(),h.clear();for(var S=0,$=f.length;S<$;S++)p=f[S],this.unuseView(p)}this.$_continuous=_}else if(_)for(var z=0,w=f.length;z=b)&&this.unuseView(p));for(var x,O,I,R,D=_?null:new Map,V=y;V=I.length)&&(p=this.addView(f,V,x,T,O),this.unuseView(p,!0),I=h.get(O)),(p=I[R]).item=x,p.nr.used=!0,p.nr.index=V,p.nr.key=T,p.nr.type=O,D.set(O,R+1),R++),u.set(T,p)),p.position=null===n?d[V-1].accumulator:V*n):p&&this.unuseView(p)}return this.$_startIndex=y,this.$_endIndex=b,this.emitUpdate&&this.$emit("update",y,b),{continuous:_}},getListenerTarget:function(){var e=S(this.$el);return!window.document||e!==window.document.documentElement&&e!==window.document.body||(e=window),e},getScroll:function(){var e=this.$el,t="vertical"===this.direction;if(this.pageMode){var i=e.getBoundingClientRect(),n=t?i.height:i.width,r=-(t?i.top:i.left),s=r,o=t?window.innerHeight:window.innerWidth;return s<0&&(o+=s,s=0),s+o>n&&(o=n-s),{originalStart:r,start:s,end:s+o}}return t?{originalStart:e.scrollTop,start:e.scrollTop,end:e.scrollTop+e.clientHeight}:{originalStart:e.scrollLeft,start:e.scrollLeft,end:e.scrollLeft+e.clientWidth}},applyPageMode:function(){this.pageMode?this.addListeners():this.removeListeners()},addListeners:function(){this.listenerTarget=this.getListenerTarget(),this.listenerTarget.addEventListener("scroll",this.handleScroll,!!w&&{passive:!0}),this.listenerTarget.addEventListener("resize",this.handleResize)},removeListeners:function(){this.listenerTarget&&(this.listenerTarget.removeEventListener("scroll",this.handleScroll),this.listenerTarget.removeEventListener("resize",this.handleResize),this.listenerTarget=null)},scrollToItem:function(e){var t=this.scrollToPosition(e),i=t.viewport,n=t.scrollDirection,r=t.scrollDistance;i[n]=r},scrollToPosition:function(e){var t=this,i=function(e){return null===t.itemSize?e>0?t.sizes[e-1].accumulator:0:e*t.itemSize}(e),n="vertical"===this.direction?{scroll:"scrollTop",start:"top"}:{scroll:"scrollLeft",start:"left"};if(this.pageMode){var r=S(this.$el),s="HTML"===r.tagName?0:r[n.scroll],o=r.getBoundingClientRect(),l=this.$el.getBoundingClientRect()[n.start]-o[n.start];return{viewport:r,scrollDirection:n.scroll,scrollDistance:i+s+l}}return{viewport:this.$el,scrollDirection:n.scroll,scrollDistance:i}},itemsLimitError:function(){var e=this;throw setTimeout((function(){console.log("It seems the scroller element isn't scrolling, so it tries to render all the items at once.","Scroller:",e.$el),console.log("Make sure the scroller has a fixed height (or width) and 'overflow-y' (or 'overflow-x') set to 'auto' so it can scroll correctly and only render the items visible in the scroll viewport.")})),new Error("Rendered items limit reached")}}};var k=function(){var e,t,i=this,n=i.$createElement,r=i._self._c||n;return r("div",{directives:[{name:"observe-visibility",rawName:"v-observe-visibility",value:i.handleVisibilityChange,expression:"handleVisibilityChange"}],staticClass:"vue-recycle-scroller",class:(e={ready:i.ready,"page-mode":i.pageMode},e["direction-"+i.direction]=!0,e),on:{"&scroll":function(e){return i.handleScroll.apply(null,arguments)}}},[i.$slots.before?r("div",{staticClass:"vue-recycle-scroller__slot"},[i._t("before")],2):i._e(),i._v(" "),r("div",{ref:"wrapper",staticClass:"vue-recycle-scroller__item-wrapper",style:(t={},t["vertical"===i.direction?"minHeight":"minWidth"]=i.totalSize+"px",t)},i._l(i.pool,(function(e){return r("div",{key:e.nr.id,staticClass:"vue-recycle-scroller__item-view",style:i.ready?{transform:"translate"+("vertical"===i.direction?"Y":"X")+"("+e.position+"px)",zIndex:i.items.length-e.nr.index}:null,on:{mouseenter:function(e){return e.target.classList.add("hover")},mouseleave:function(e){return e.target.classList.remove("hover")}}},[i._t("default",null,{item:e.item,index:e.nr.index,active:e.nr.used})],2)})),0),i._v(" "),i.$slots.after?r("div",{staticClass:"vue-recycle-scroller__slot"},[i._t("after")],2):i._e(),i._v(" "),r("ResizeObserver",{on:{notify:i.handleResize}})],1)};k._withStripped=!0;const E=A({render:k,staticRenderFns:[]},void 0,P,void 0,!1,void 0,!1,void 0,void 0,void 0);const j={name:"DynamicScroller",components:{RecycleScroller:E},inheritAttrs:!1,provide:function(){return"undefined"!=typeof ResizeObserver&&(this.$_resizeObserver=new ResizeObserver((function(e){var t,i=d(e);try{for(i.s();!(t=i.n()).done;){var n=t.value;if(n.target){var r=new CustomEvent("resize",{detail:{contentRect:n.contentRect}});n.target.dispatchEvent(r)}}}catch(e){i.e(e)}finally{i.f()}}))),{vscrollData:this.vscrollData,vscrollParent:this,vscrollResizeObserver:this.$_resizeObserver}},props:o(o({},$),{},{minItemSize:{type:[Number,String],required:!0}}),data:function(){return{vscrollData:{active:!0,sizes:{},validSizes:{},keyField:this.keyField,simpleArray:!1}}},computed:{simpleArray:z,itemsWithSize:function(){for(var e=[],t=this.items,i=this.keyField,n=this.simpleArray,r=this.vscrollData.sizes,s=0;s0&&void 0!==arguments[0])||arguments[0];(e||this.simpleArray)&&(this.vscrollData.validSizes={}),this.$emit("vscroll:update",{force:!0})},scrollToItem:function(e){var t=this.$refs.scroller;t&&t.scrollToItem(e)},getItemSize:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=this.simpleArray?null!=t?t:this.items.indexOf(e):e[this.keyField];return this.vscrollData.sizes[i]||0},scrollToBottom:function(){var e=this;if(!this.$_scrollingToBottom){this.$_scrollingToBottom=!0;var t=this.$el;this.$nextTick((function(){t.scrollTop=t.scrollHeight+5e3;requestAnimationFrame((function i(){t.scrollTop=t.scrollHeight+5e3,requestAnimationFrame((function(){t.scrollTop=t.scrollHeight+5e3,0===e.$_undefinedSizes?e.$_scrollingToBottom=!1:requestAnimationFrame(i)}))}))}))}}}};var M=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("RecycleScroller",e._g(e._b({ref:"scroller",attrs:{items:e.itemsWithSize,"min-item-size":e.minItemSize,direction:e.direction,"key-field":"id"},on:{resize:e.onScrollerResize,visible:e.onScrollerVisible},scopedSlots:e._u([{key:"default",fn:function(t){var i=t.item,n=t.index,r=t.active;return[e._t("default",null,null,{item:i.item,index:n,active:r,itemWithSize:i})]}}],null,!0)},"RecycleScroller",e.$attrs,!1),e.listeners),[e._v(" "),i("template",{slot:"before"},[e._t("before")],2),e._v(" "),i("template",{slot:"after"},[e._t("after")],2)],2)};M._withStripped=!0;const U=A({render:M,staticRenderFns:[]},void 0,j,void 0,!1,void 0,!1,void 0,void 0,void 0);const C=A({},void 0,{name:"DynamicScrollerItem",inject:["vscrollData","vscrollParent","vscrollResizeObserver"],props:{item:{required:!0},watchData:{type:Boolean,default:!1},active:{type:Boolean,required:!0},index:{type:Number,default:void 0},sizeDependencies:{type:[Array,Object],default:null},emitResize:{type:Boolean,default:!1},tag:{type:String,default:"div"}},computed:{id:function(){return this.vscrollData.simpleArray?this.index:this.item[this.vscrollData.keyField]},size:function(){return this.vscrollData.validSizes[this.id]&&this.vscrollData.sizes[this.id]||0},finalActive:function(){return this.active&&this.vscrollData.active}},watch:{watchData:"updateWatchData",id:function(){this.size||this.onDataUpdate()},finalActive:function(e){this.size||(e?this.vscrollParent.$_undefinedMap[this.id]||(this.vscrollParent.$_undefinedSizes++,this.vscrollParent.$_undefinedMap[this.id]=!0):this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=!1)),this.vscrollResizeObserver?e?this.observeSize():this.unobserveSize():e&&this.$_pendingVScrollUpdate===this.id&&this.updateSize()}},created:function(){var e=this;if(!this.$isServer&&(this.$_forceNextVScrollUpdate=null,this.updateWatchData(),!this.vscrollResizeObserver)){var t=function(t){e.$watch((function(){return e.sizeDependencies[t]}),e.onDataUpdate)};for(var i in this.sizeDependencies)t(i);this.vscrollParent.$on("vscroll:update",this.onVscrollUpdate),this.vscrollParent.$on("vscroll:update-size",this.onVscrollUpdateSize)}},mounted:function(){this.vscrollData.active&&(this.updateSize(),this.observeSize())},beforeDestroy:function(){this.vscrollParent.$off("vscroll:update",this.onVscrollUpdate),this.vscrollParent.$off("vscroll:update-size",this.onVscrollUpdateSize),this.unobserveSize()},methods:{updateSize:function(){this.finalActive?this.$_pendingSizeUpdate!==this.id&&(this.$_pendingSizeUpdate=this.id,this.$_forceNextVScrollUpdate=null,this.$_pendingVScrollUpdate=null,this.computeSize(this.id)):this.$_forceNextVScrollUpdate=this.id},updateWatchData:function(){var e=this;this.watchData?this.$_watchData=this.$watch("data",(function(){e.onDataUpdate()}),{deep:!0}):this.$_watchData&&(this.$_watchData(),this.$_watchData=null)},onVscrollUpdate:function(e){var t=e.force;!this.finalActive&&t&&(this.$_pendingVScrollUpdate=this.id),this.$_forceNextVScrollUpdate!==this.id&&!t&&this.size||this.updateSize()},onDataUpdate:function(){this.updateSize()},computeSize:function(e){var t=this;this.$nextTick((function(){if(t.id===e){var i=t.$el.offsetWidth,n=t.$el.offsetHeight;t.applySize(i,n)}t.$_pendingSizeUpdate=null}))},applySize:function(e,t){var i=Math.round("vertical"===this.vscrollParent.direction?t:e);i&&this.size!==i&&(this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=void 0),this.$set(this.vscrollData.sizes,this.id,i),this.$set(this.vscrollData.validSizes,this.id,!0),this.emitResize&&this.$emit("resize",this.id))},observeSize:function(){this.vscrollResizeObserver&&(this.vscrollResizeObserver.observe(this.$el.parentNode),this.$el.parentNode.addEventListener("resize",this.onResize))},unobserveSize:function(){this.vscrollResizeObserver&&(this.vscrollResizeObserver.unobserve(this.$el.parentNode),this.$el.parentNode.removeEventListener("resize",this.onResize))},onResize:function(e){var t=e.detail.contentRect,i=t.width,n=t.height;this.applySize(i,n)}},render:function(e){return e(this.tag,this.$slots.default)}},void 0,void 0,void 0,!1,void 0,void 0,void 0);var L={version:"1.2.4",install:function(e,t){var i=Object.assign({},{installComponents:!0,componentsPrefix:""},t);for(var n in i)void 0!==i[n]&&(r[n]=i[n]);i.installComponents&&function(e,t){e.component("".concat(t,"recycle-scroller"),E),e.component("".concat(t,"RecycleScroller"),E),e.component("".concat(t,"dynamic-scroller"),U),e.component("".concat(t,"DynamicScroller"),U),e.component("".concat(t,"dynamic-scroller-item"),C),e.component("".concat(t,"DynamicScrollerItem"),C)}(e,i.componentsPrefix)}},N=null;return"undefined"!=typeof window?N=window.Vue:"undefined"!=typeof global&&(N=global.Vue),N&&N.use(L),e.DynamicScroller=U,e.DynamicScrollerItem=C,e.IdState=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.idProp,i=void 0===t?function(e){return e.item.id}:t,r={},s=new n.default({data:function(){return{store:r}}});return{data:function(){return{idState:null}},created:function(){var e=this;this.$_id=null,this.$_getId="function"==typeof i?function(){return i.call(e,e)}:function(){return e[i]},this.$watch(this.$_getId,{handler:function(e){var t=this;this.$nextTick((function(){t.$_id=e}))},immediate:!0}),this.$_updateIdState()},beforeUpdate:function(){this.$_updateIdState()},methods:{$_idStateInit:function(e){var t=this.$options.idState;if("function"==typeof t){var i=t.call(this,this);return s.$set(r,e,i),this.$_id=e,i}throw new Error("[mixin IdState] Missing `idState` function on component definition.")},$_updateIdState:function(){var e=this.$_getId();null==e&&console.warn("No id found for IdState with idProp: '".concat(i,"'.")),e!==this.$_id&&(r[e]||this.$_idStateInit(e),this.idState=r[e])}}}},e.RecycleScroller=E,e.default=L,Object.defineProperty(e,"__esModule",{value:!0}),e}({},Vue); //# sourceMappingURL=vue-virtual-scroller.min.js.map diff --git a/dist/vue-virtual-scroller.min.js.map b/dist/vue-virtual-scroller.min.js.map index abd4dc24..6d3f0f90 100644 --- a/dist/vue-virtual-scroller.min.js.map +++ b/dist/vue-virtual-scroller.min.js.map @@ -1 +1 @@ -{"version":3,"file":"vue-virtual-scroller.min.js","sources":["../src/config.js","../node_modules/vue-observe-visibility/dist/vue-observe-visibility.esm.js","../node_modules/scrollparent/scrollparent.js","../src/components/common.js","../src/utils.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/index.js","../src/mixins/IdState.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction processOptions(value) {\n var options;\n\n if (typeof value === 'function') {\n // Simple options (callback-only)\n options = {\n callback: value\n };\n } else {\n // Options object\n options = value;\n }\n\n return options;\n}\nfunction throttle(callback, delay) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var timeout;\n var lastState;\n var currentArgs;\n\n var throttled = function throttled(state) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n currentArgs = args;\n if (timeout && state === lastState) return;\n var leading = options.leading;\n\n if (typeof leading === 'function') {\n leading = leading(state, lastState);\n }\n\n if ((!timeout || state !== lastState) && leading) {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n }\n\n lastState = state;\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n timeout = 0;\n }, delay);\n };\n\n throttled._clear = function () {\n clearTimeout(timeout);\n timeout = null;\n };\n\n return throttled;\n}\nfunction deepEqual(val1, val2) {\n if (val1 === val2) return true;\n\n if (_typeof(val1) === 'object') {\n for (var key in val1) {\n if (!deepEqual(val1[key], val2[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\nvar VisibilityState =\n/*#__PURE__*/\nfunction () {\n function VisibilityState(el, options, vnode) {\n _classCallCheck(this, VisibilityState);\n\n this.el = el;\n this.observer = null;\n this.frozen = false;\n this.createObserver(options, vnode);\n }\n\n _createClass(VisibilityState, [{\n key: \"createObserver\",\n value: function createObserver(options, vnode) {\n var _this = this;\n\n if (this.observer) {\n this.destroyObserver();\n }\n\n if (this.frozen) return;\n this.options = processOptions(options);\n\n this.callback = function (result, entry) {\n _this.options.callback(result, entry);\n\n if (result && _this.options.once) {\n _this.frozen = true;\n\n _this.destroyObserver();\n }\n }; // Throttle\n\n\n if (this.callback && this.options.throttle) {\n var _ref = this.options.throttleOptions || {},\n _leading = _ref.leading;\n\n this.callback = throttle(this.callback, this.options.throttle, {\n leading: function leading(state) {\n return _leading === 'both' || _leading === 'visible' && state || _leading === 'hidden' && !state;\n }\n });\n }\n\n this.oldResult = undefined;\n this.observer = new IntersectionObserver(function (entries) {\n var entry = entries[0];\n\n if (entries.length > 1) {\n var intersectingEntry = entries.find(function (e) {\n return e.isIntersecting;\n });\n\n if (intersectingEntry) {\n entry = intersectingEntry;\n }\n }\n\n if (_this.callback) {\n // Use isIntersecting if possible because browsers can report isIntersecting as true, but intersectionRatio as 0, when something very slowly enters the viewport.\n var result = entry.isIntersecting && entry.intersectionRatio >= _this.threshold;\n if (result === _this.oldResult) return;\n _this.oldResult = result;\n\n _this.callback(result, entry);\n }\n }, this.options.intersection); // Wait for the element to be in document\n\n vnode.context.$nextTick(function () {\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n } // Cancel throttled call\n\n\n if (this.callback && this.callback._clear) {\n this.callback._clear();\n\n this.callback = null;\n }\n }\n }, {\n key: \"threshold\",\n get: function get() {\n return this.options.intersection && this.options.intersection.threshold || 0;\n }\n }]);\n\n return VisibilityState;\n}();\n\nfunction bind(el, _ref2, vnode) {\n var value = _ref2.value;\n if (!value) return;\n\n if (typeof IntersectionObserver === 'undefined') {\n console.warn('[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill');\n } else {\n var state = new VisibilityState(el, value, vnode);\n el._vue_visibilityState = state;\n }\n}\n\nfunction update(el, _ref3, vnode) {\n var value = _ref3.value,\n oldValue = _ref3.oldValue;\n if (deepEqual(value, oldValue)) return;\n var state = el._vue_visibilityState;\n\n if (!value) {\n unbind(el);\n return;\n }\n\n if (state) {\n state.createObserver(value, vnode);\n } else {\n bind(el, {\n value: value\n }, vnode);\n }\n}\n\nfunction unbind(el) {\n var state = el._vue_visibilityState;\n\n if (state) {\n state.destroyObserver();\n delete el._vue_visibilityState;\n }\n}\n\nvar ObserveVisibility = {\n bind: bind,\n update: update,\n unbind: unbind\n};\n\nfunction install(Vue) {\n Vue.directive('observe-visibility', ObserveVisibility);\n /* -- Add more components here -- */\n}\n/* -- Plugin definition & Auto-install -- */\n\n/* You shouldn't have to modify the code below */\n// Plugin\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"0.4.6\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { ObserveVisibility, install };\n","(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Scrollparent = factory();\n }\n}(this, function () {\n var regex = /(auto|scroll)/;\n\n var parents = function (node, ps) {\n if (node.parentNode === null) { return ps; }\n\n return parents(node.parentNode, ps.concat([node]));\n };\n\n var style = function (node, prop) {\n return getComputedStyle(node, null).getPropertyValue(prop);\n };\n\n var overflow = function (node) {\n return style(node, \"overflow\") + style(node, \"overflow-y\") + style(node, \"overflow-x\");\n };\n\n var scroll = function (node) {\n return regex.test(overflow(node));\n };\n\n var scrollParent = function (node) {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return ;\n }\n\n var ps = parents(node.parentNode, []);\n\n for (var i = 0; i < ps.length; i += 1) {\n if (scroll(ps[i])) {\n return ps[i];\n }\n }\n\n return document.scrollingElement || document.documentElement;\n };\n\n return scrollParent;\n}));\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: VERSION,\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n"],"names":["itemsLimit","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_toConsumableArray","arr","Array","isArray","arr2","_arrayWithoutHoles","iter","toString","call","from","_iterableToArray","TypeError","_nonIterableSpread","VisibilityState","el","options","vnode","instance","Constructor","_classCallCheck","this","observer","frozen","createObserver","protoProps","staticProps","value","_this","destroyObserver","callback","result","entry","once","throttle","_leading","throttleOptions","leading","delay","timeout","lastState","currentArgs","arguments","undefined","throttled","state","_len","args","_key","apply","concat","clearTimeout","setTimeout","_clear","oldResult","IntersectionObserver","entries","intersectingEntry","find","e","isIntersecting","intersectionRatio","threshold","intersection","context","$nextTick","observe","disconnect","get","bind","_ref2","console","warn","_vue_visibilityState","unbind","ObserveVisibility","update","_ref3","deepEqual","val1","val2","oldValue","plugin","version","install","Vue","directive","GlobalVue","window","global","use","root","factory","regex","parents","node","ps","parentNode","style","prop","getComputedStyle","getPropertyValue","scroll","test","overflow","HTMLElement","SVGElement","document","scrollingElement","documentElement","module","exports","Scrollparent","items","type","required","keyField","String","default","direction","validator","includes","simpleArray","supportsPassive","opts","addEventListener","normalizeComponent","template","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","render","staticRenderFns","_compiled","functional","_scopeId","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","VERSION","finalOptions","assign","installComponents","componentsPrefix","config","prefix","component","RecycleScroller","DynamicScroller","DynamicScrollerItem","registerComponents","idProp","vm","item","id","store","data","idState","created","$_id","$_getId","$watch","handler","_this2","immediate","$_updateIdState","beforeUpdate","methods","$_idStateInit","$set","Error"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"vue-virtual-scroller.min.js","sources":["../src/config.js","../node_modules/vue-observe-visibility/dist/vue-observe-visibility.esm.js","../node_modules/scrollparent/scrollparent.js","../src/components/common.js","../src/utils.js","../node_modules/vue-resize/dist/vue-resize.esm.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/index.js","../src/mixins/IdState.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction processOptions(value) {\n var options;\n\n if (typeof value === 'function') {\n // Simple options (callback-only)\n options = {\n callback: value\n };\n } else {\n // Options object\n options = value;\n }\n\n return options;\n}\nfunction throttle(callback, delay) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var timeout;\n var lastState;\n var currentArgs;\n\n var throttled = function throttled(state) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n currentArgs = args;\n if (timeout && state === lastState) return;\n var leading = options.leading;\n\n if (typeof leading === 'function') {\n leading = leading(state, lastState);\n }\n\n if ((!timeout || state !== lastState) && leading) {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n }\n\n lastState = state;\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n timeout = 0;\n }, delay);\n };\n\n throttled._clear = function () {\n clearTimeout(timeout);\n timeout = null;\n };\n\n return throttled;\n}\nfunction deepEqual(val1, val2) {\n if (val1 === val2) return true;\n\n if (_typeof(val1) === 'object') {\n for (var key in val1) {\n if (!deepEqual(val1[key], val2[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\nvar VisibilityState =\n/*#__PURE__*/\nfunction () {\n function VisibilityState(el, options, vnode) {\n _classCallCheck(this, VisibilityState);\n\n this.el = el;\n this.observer = null;\n this.frozen = false;\n this.createObserver(options, vnode);\n }\n\n _createClass(VisibilityState, [{\n key: \"createObserver\",\n value: function createObserver(options, vnode) {\n var _this = this;\n\n if (this.observer) {\n this.destroyObserver();\n }\n\n if (this.frozen) return;\n this.options = processOptions(options);\n\n this.callback = function (result, entry) {\n _this.options.callback(result, entry);\n\n if (result && _this.options.once) {\n _this.frozen = true;\n\n _this.destroyObserver();\n }\n }; // Throttle\n\n\n if (this.callback && this.options.throttle) {\n var _ref = this.options.throttleOptions || {},\n _leading = _ref.leading;\n\n this.callback = throttle(this.callback, this.options.throttle, {\n leading: function leading(state) {\n return _leading === 'both' || _leading === 'visible' && state || _leading === 'hidden' && !state;\n }\n });\n }\n\n this.oldResult = undefined;\n this.observer = new IntersectionObserver(function (entries) {\n var entry = entries[0];\n\n if (entries.length > 1) {\n var intersectingEntry = entries.find(function (e) {\n return e.isIntersecting;\n });\n\n if (intersectingEntry) {\n entry = intersectingEntry;\n }\n }\n\n if (_this.callback) {\n // Use isIntersecting if possible because browsers can report isIntersecting as true, but intersectionRatio as 0, when something very slowly enters the viewport.\n var result = entry.isIntersecting && entry.intersectionRatio >= _this.threshold;\n if (result === _this.oldResult) return;\n _this.oldResult = result;\n\n _this.callback(result, entry);\n }\n }, this.options.intersection); // Wait for the element to be in document\n\n vnode.context.$nextTick(function () {\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n } // Cancel throttled call\n\n\n if (this.callback && this.callback._clear) {\n this.callback._clear();\n\n this.callback = null;\n }\n }\n }, {\n key: \"threshold\",\n get: function get() {\n return this.options.intersection && this.options.intersection.threshold || 0;\n }\n }]);\n\n return VisibilityState;\n}();\n\nfunction bind(el, _ref2, vnode) {\n var value = _ref2.value;\n if (!value) return;\n\n if (typeof IntersectionObserver === 'undefined') {\n console.warn('[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill');\n } else {\n var state = new VisibilityState(el, value, vnode);\n el._vue_visibilityState = state;\n }\n}\n\nfunction update(el, _ref3, vnode) {\n var value = _ref3.value,\n oldValue = _ref3.oldValue;\n if (deepEqual(value, oldValue)) return;\n var state = el._vue_visibilityState;\n\n if (!value) {\n unbind(el);\n return;\n }\n\n if (state) {\n state.createObserver(value, vnode);\n } else {\n bind(el, {\n value: value\n }, vnode);\n }\n}\n\nfunction unbind(el) {\n var state = el._vue_visibilityState;\n\n if (state) {\n state.destroyObserver();\n delete el._vue_visibilityState;\n }\n}\n\nvar ObserveVisibility = {\n bind: bind,\n update: update,\n unbind: unbind\n};\n\nfunction install(Vue) {\n Vue.directive('observe-visibility', ObserveVisibility);\n /* -- Add more components here -- */\n}\n/* -- Plugin definition & Auto-install -- */\n\n/* You shouldn't have to modify the code below */\n// Plugin\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"0.4.6\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { ObserveVisibility, install };\n","(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Scrollparent = factory();\n }\n}(this, function () {\n var regex = /(auto|scroll)/;\n\n var parents = function (node, ps) {\n if (node.parentNode === null) { return ps; }\n\n return parents(node.parentNode, ps.concat([node]));\n };\n\n var style = function (node, prop) {\n return getComputedStyle(node, null).getPropertyValue(prop);\n };\n\n var overflow = function (node) {\n return style(node, \"overflow\") + style(node, \"overflow-y\") + style(node, \"overflow-x\");\n };\n\n var scroll = function (node) {\n return regex.test(overflow(node));\n };\n\n var scrollParent = function (node) {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return ;\n }\n\n var ps = parents(node.parentNode, []);\n\n for (var i = 0; i < ps.length; i += 1) {\n if (scroll(ps[i])) {\n return ps[i];\n }\n }\n\n return document.scrollingElement || document.documentElement;\n };\n\n return scrollParent;\n}));\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","function getInternetExplorerVersion() {\n\tvar ua = window.navigator.userAgent;\n\n\tvar msie = ua.indexOf('MSIE ');\n\tif (msie > 0) {\n\t\t// IE 10 or older => return version number\n\t\treturn parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n\t}\n\n\tvar trident = ua.indexOf('Trident/');\n\tif (trident > 0) {\n\t\t// IE 11 => return version number\n\t\tvar rv = ua.indexOf('rv:');\n\t\treturn parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n\t}\n\n\tvar edge = ua.indexOf('Edge/');\n\tif (edge > 0) {\n\t\t// Edge (IE 12+) => return version number\n\t\treturn parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n\t}\n\n\t// other browser\n\treturn -1;\n}\n\nvar isIE = void 0;\n\nfunction initCompat() {\n\tif (!initCompat.init) {\n\t\tinitCompat.init = true;\n\t\tisIE = getInternetExplorerVersion() !== -1;\n\t}\n}\n\nvar ResizeObserver = { render: function render() {\n\t\tvar _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: \"resize-observer\", attrs: { \"tabindex\": \"-1\" } });\n\t}, staticRenderFns: [], _scopeId: 'data-v-b329ee4c',\n\tname: 'resize-observer',\n\n\tmethods: {\n\t\tcompareAndNotify: function compareAndNotify() {\n\t\t\tif (this._w !== this.$el.offsetWidth || this._h !== this.$el.offsetHeight) {\n\t\t\t\tthis._w = this.$el.offsetWidth;\n\t\t\t\tthis._h = this.$el.offsetHeight;\n\t\t\t\tthis.$emit('notify');\n\t\t\t}\n\t\t},\n\t\taddResizeHandlers: function addResizeHandlers() {\n\t\t\tthis._resizeObject.contentDocument.defaultView.addEventListener('resize', this.compareAndNotify);\n\t\t\tthis.compareAndNotify();\n\t\t},\n\t\tremoveResizeHandlers: function removeResizeHandlers() {\n\t\t\tif (this._resizeObject && this._resizeObject.onload) {\n\t\t\t\tif (!isIE && this._resizeObject.contentDocument) {\n\t\t\t\t\tthis._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.compareAndNotify);\n\t\t\t\t}\n\t\t\t\tdelete this._resizeObject.onload;\n\t\t\t}\n\t\t}\n\t},\n\n\tmounted: function mounted() {\n\t\tvar _this = this;\n\n\t\tinitCompat();\n\t\tthis.$nextTick(function () {\n\t\t\t_this._w = _this.$el.offsetWidth;\n\t\t\t_this._h = _this.$el.offsetHeight;\n\t\t});\n\t\tvar object = document.createElement('object');\n\t\tthis._resizeObject = object;\n\t\tobject.setAttribute('aria-hidden', 'true');\n\t\tobject.setAttribute('tabindex', -1);\n\t\tobject.onload = this.addResizeHandlers;\n\t\tobject.type = 'text/html';\n\t\tif (isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t\tobject.data = 'about:blank';\n\t\tif (!isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t},\n\tbeforeDestroy: function beforeDestroy() {\n\t\tthis.removeResizeHandlers();\n\t}\n};\n\n// Install the components\nfunction install(Vue) {\n\tVue.component('resize-observer', ResizeObserver);\n\tVue.component('ResizeObserver', ResizeObserver);\n}\n\n// Plugin\nvar plugin = {\n\t// eslint-disable-next-line no-undef\n\tversion: \"0.4.5\",\n\tinstall: install\n};\n\n// Auto-install\nvar GlobalVue = null;\nif (typeof window !== 'undefined') {\n\tGlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n\tGlobalVue = global.Vue;\n}\nif (GlobalVue) {\n\tGlobalVue.use(plugin);\n}\n\nexport { install, ResizeObserver };\nexport default plugin;\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: VERSION,\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n"],"names":["itemsLimit","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_toConsumableArray","arr","Array","isArray","arr2","_arrayWithoutHoles","iter","toString","call","from","_iterableToArray","TypeError","_nonIterableSpread","VisibilityState","el","options","vnode","instance","Constructor","_classCallCheck","this","observer","frozen","createObserver","protoProps","staticProps","value","_this","destroyObserver","callback","result","entry","once","throttle","_leading","throttleOptions","leading","delay","timeout","lastState","currentArgs","arguments","undefined","throttled","state","_len","args","_key","apply","concat","clearTimeout","setTimeout","_clear","oldResult","IntersectionObserver","entries","intersectingEntry","find","e","isIntersecting","intersectionRatio","threshold","intersection","context","$nextTick","observe","disconnect","get","bind","_ref2","console","warn","_vue_visibilityState","unbind","ObserveVisibility","update","_ref3","deepEqual","val1","val2","oldValue","plugin","version","install","Vue","directive","GlobalVue","window","global","use","root","factory","regex","parents","node","ps","parentNode","style","prop","getComputedStyle","getPropertyValue","scroll","test","overflow","HTMLElement","SVGElement","document","scrollingElement","documentElement","module","exports","Scrollparent","items","type","required","keyField","String","default","direction","validator","includes","simpleArray","supportsPassive","opts","addEventListener","isIE","initCompat","init","ua","navigator","userAgent","msie","indexOf","parseInt","substring","rv","edge","getInternetExplorerVersion","ResizeObserver","render","_h","$createElement","_self","_c","staticClass","attrs","tabindex","staticRenderFns","_scopeId","name","methods","compareAndNotify","_w","$el","offsetWidth","offsetHeight","$emit","addResizeHandlers","_resizeObject","contentDocument","defaultView","removeResizeHandlers","onload","removeEventListener","mounted","object","createElement","setAttribute","appendChild","data","beforeDestroy","component","normalizeComponent","template","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","_compiled","functional","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","VERSION","finalOptions","assign","installComponents","componentsPrefix","config","prefix","RecycleScroller","DynamicScroller","DynamicScrollerItem","registerComponents","idProp","vm","item","id","store","idState","created","$_id","$_getId","$watch","handler","_this2","immediate","$_updateIdState","beforeUpdate","$_idStateInit","$set","Error"],"mappings":"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"} \ No newline at end of file diff --git a/dist/vue-virtual-scroller.umd.js b/dist/vue-virtual-scroller.umd.js index 1a72afb6..14246a49 100644 --- a/dist/vue-virtual-scroller.umd.js +++ b/dist/vue-virtual-scroller.umd.js @@ -1,54 +1,29 @@ (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vue')) : typeof define === 'function' && define.amd ? define(['exports', 'vue'], factory) : - (global = global || self, factory(global['vue-virtual-scroller'] = {}, global.Vue)); -}(this, (function (exports, Vue) { 'use strict'; + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["vue-virtual-scroller"] = {}, global.Vue)); +})(this, (function (exports, Vue) { 'use strict'; - Vue = Vue && Object.prototype.hasOwnProperty.call(Vue, 'default') ? Vue['default'] : Vue; + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + var Vue__default = /*#__PURE__*/_interopDefaultLegacy(Vue); var config = { itemsLimit: 1000 }; - function _typeof(obj) { - "@babel/helpers - typeof"; - - if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - _typeof = function (obj) { - return typeof obj; - }; - } else { - _typeof = function (obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }; - } - - return _typeof(obj); - } - - function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; - } - function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); + + if (enumerableOnly) { + symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + } + keys.push.apply(keys, symbols); } @@ -75,12 +50,43 @@ return target; } + function _typeof$1(obj) { + "@babel/helpers - typeof"; + + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof$1 = function (obj) { + return typeof obj; + }; + } else { + _typeof$1 = function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + + return _typeof$1(obj); + } + + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; + } + function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(n); + if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } @@ -92,9 +98,12 @@ return arr2; } - function _createForOfIteratorHelper(o) { - if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { - if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { + function _createForOfIteratorHelper(o, allowArrayLike) { + var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; + + if (!it) { + if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; var i = 0; var F = function () {}; @@ -120,13 +129,12 @@ throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - var it, - normalCompletion = true, + var normalCompletion = true, didErr = false, err; return { s: function () { - it = o[Symbol.iterator](); + it = it.call(o); }, n: function () { var step = it.next(); @@ -147,18 +155,18 @@ }; } - function _typeof$1(obj) { + function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - _typeof$1 = function (obj) { + _typeof = function (obj) { return typeof obj; }; } else { - _typeof$1 = function (obj) { + _typeof = function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } - return _typeof$1(obj); + return _typeof(obj); } function _classCallCheck(instance, Constructor) { @@ -259,7 +267,7 @@ function deepEqual(val1, val2) { if (val1 === val2) return true; - if (_typeof$1(val1) === 'object') { + if (_typeof(val1) === 'object') { for (var key in val1) { if (!deepEqual(val1[key], val2[key])) { return false; @@ -420,7 +428,7 @@ unbind: unbind }; - function install(Vue) { + function install$1(Vue) { Vue.directive('observe-visibility', ObserveVisibility); /* -- Add more components here -- */ } @@ -429,22 +437,22 @@ /* You shouldn't have to modify the code below */ // Plugin - var plugin = { + var plugin$2 = { // eslint-disable-next-line no-undef version: "0.4.6", - install: install + install: install$1 }; - var GlobalVue = null; + var GlobalVue$2 = null; if (typeof window !== 'undefined') { - GlobalVue = window.Vue; + GlobalVue$2 = window.Vue; } else if (typeof global !== 'undefined') { - GlobalVue = global.Vue; + GlobalVue$2 = global.Vue; } - if (GlobalVue) { - GlobalVue.use(plugin); + if (GlobalVue$2) { + GlobalVue$2.use(plugin$2); } var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; @@ -455,7 +463,7 @@ var scrollparent = createCommonjsModule(function (module) { (function (root, factory) { - if ( module.exports) { + if (module.exports) { module.exports = factory(); } else { root.Scrollparent = factory(); @@ -519,7 +527,7 @@ } }; function simpleArray() { - return this.items.length && _typeof(this.items[0]) !== 'object'; + return this.items.length && _typeof$1(this.items[0]) !== 'object'; } var supportsPassive = false; @@ -537,13 +545,129 @@ } catch (e) {} } + function getInternetExplorerVersion() { + var ua = window.navigator.userAgent; + + var msie = ua.indexOf('MSIE '); + if (msie > 0) { + // IE 10 or older => return version number + return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10); + } + + var trident = ua.indexOf('Trident/'); + if (trident > 0) { + // IE 11 => return version number + var rv = ua.indexOf('rv:'); + return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10); + } + + var edge = ua.indexOf('Edge/'); + if (edge > 0) { + // Edge (IE 12+) => return version number + return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10); + } + + // other browser + return -1; + } + + var isIE = void 0; + + function initCompat() { + if (!initCompat.init) { + initCompat.init = true; + isIE = getInternetExplorerVersion() !== -1; + } + } + + var ResizeObserver$1 = { render: function render() { + var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: "resize-observer", attrs: { "tabindex": "-1" } }); + }, staticRenderFns: [], _scopeId: 'data-v-b329ee4c', + name: 'resize-observer', + + methods: { + compareAndNotify: function compareAndNotify() { + if (this._w !== this.$el.offsetWidth || this._h !== this.$el.offsetHeight) { + this._w = this.$el.offsetWidth; + this._h = this.$el.offsetHeight; + this.$emit('notify'); + } + }, + addResizeHandlers: function addResizeHandlers() { + this._resizeObject.contentDocument.defaultView.addEventListener('resize', this.compareAndNotify); + this.compareAndNotify(); + }, + removeResizeHandlers: function removeResizeHandlers() { + if (this._resizeObject && this._resizeObject.onload) { + if (!isIE && this._resizeObject.contentDocument) { + this._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.compareAndNotify); + } + delete this._resizeObject.onload; + } + } + }, + + mounted: function mounted() { + var _this = this; + + initCompat(); + this.$nextTick(function () { + _this._w = _this.$el.offsetWidth; + _this._h = _this.$el.offsetHeight; + }); + var object = document.createElement('object'); + this._resizeObject = object; + object.setAttribute('aria-hidden', 'true'); + object.setAttribute('tabindex', -1); + object.onload = this.addResizeHandlers; + object.type = 'text/html'; + if (isIE) { + this.$el.appendChild(object); + } + object.data = 'about:blank'; + if (!isIE) { + this.$el.appendChild(object); + } + }, + beforeDestroy: function beforeDestroy() { + this.removeResizeHandlers(); + } + }; + + // Install the components + function install(Vue) { + Vue.component('resize-observer', ResizeObserver$1); + Vue.component('ResizeObserver', ResizeObserver$1); + } + + // Plugin + var plugin$1 = { + // eslint-disable-next-line no-undef + version: "0.4.5", + install: install + }; + + // Auto-install + var GlobalVue$1 = null; + if (typeof window !== 'undefined') { + GlobalVue$1 = window.Vue; + } else if (typeof global !== 'undefined') { + GlobalVue$1 = global.Vue; + } + if (GlobalVue$1) { + GlobalVue$1.use(plugin$1); + } + var uid = 0; - var script = { + var script$2 = { name: 'RecycleScroller', + components: { + ResizeObserver: ResizeObserver$1 + }, directives: { ObserveVisibility: ObserveVisibility }, - props: _objectSpread2({}, props, { + props: _objectSpread2(_objectSpread2({}, props), {}, { itemSize: { type: Number, default: null @@ -1193,9 +1317,9 @@ } /* script */ - const __vue_script__ = script; + const __vue_script__$2 = script$2; /* template */ - var __vue_render__ = function() { + var __vue_render__$1 = function () { var _obj, _obj$1; var _vm = this; var _h = _vm.$createElement; @@ -1208,22 +1332,22 @@ name: "observe-visibility", rawName: "v-observe-visibility", value: _vm.handleVisibilityChange, - expression: "handleVisibilityChange" - } + expression: "handleVisibilityChange", + }, ], staticClass: "vue-recycle-scroller", class: ((_obj = { ready: _vm.ready, - "page-mode": _vm.pageMode + "page-mode": _vm.pageMode, }), (_obj["direction-" + _vm.direction] = true), _obj), on: { - "&scroll": function($event) { - return _vm.handleScroll($event) - } - } + "&scroll": function ($event) { + return _vm.handleScroll.apply(null, arguments) + }, + }, }, [ _vm.$slots.before @@ -1244,9 +1368,9 @@ ((_obj$1 = {}), (_obj$1[_vm.direction === "vertical" ? "minHeight" : "minWidth"] = _vm.totalSize + "px"), - _obj$1) + _obj$1), }, - _vm._l(_vm.pool, function(view) { + _vm._l(_vm.pool, function (view) { return _c( "div", { @@ -1260,24 +1384,24 @@ "(" + view.position + "px)", - zIndex: _vm.pool.length - view.nr.index + zIndex: _vm.items.length - view.nr.index, } : null, on: { - mouseenter: function($event) { + mouseenter: function ($event) { return $event.target.classList.add("hover") }, - mouseleave: function($event) { + mouseleave: function ($event) { return $event.target.classList.remove("hover") - } - } + }, + }, }, [ _vm._t("default", null, { item: view.item, index: view.nr.index, - active: view.nr.used - }) + active: view.nr.used, + }), ], 2 ) @@ -1292,21 +1416,24 @@ [_vm._t("after")], 2 ) - : _vm._e() - ] + : _vm._e(), + _vm._v(" "), + _c("ResizeObserver", { on: { notify: _vm.handleResize } }), + ], + 1 ) }; - var __vue_staticRenderFns__ = []; - __vue_render__._withStripped = true; + var __vue_staticRenderFns__$1 = []; + __vue_render__$1._withStripped = true; /* style */ - const __vue_inject_styles__ = undefined; + const __vue_inject_styles__$2 = undefined; /* scoped */ - const __vue_scope_id__ = undefined; + const __vue_scope_id__$2 = undefined; /* module identifier */ - const __vue_module_identifier__ = undefined; + const __vue_module_identifier__$2 = undefined; /* functional template */ - const __vue_is_functional_template__ = false; + const __vue_is_functional_template__$2 = false; /* style inject */ /* style inject SSR */ @@ -1315,13 +1442,13 @@ - const __vue_component__ = normalizeComponent( - { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ }, - __vue_inject_styles__, - __vue_script__, - __vue_scope_id__, - __vue_is_functional_template__, - __vue_module_identifier__, + const __vue_component__$2 = /*#__PURE__*/normalizeComponent( + { render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 }, + __vue_inject_styles__$2, + __vue_script__$2, + __vue_scope_id__$2, + __vue_is_functional_template__$2, + __vue_module_identifier__$2, false, undefined, undefined, @@ -1331,7 +1458,7 @@ var script$1 = { name: 'DynamicScroller', components: { - RecycleScroller: __vue_component__ + RecycleScroller: __vue_component__$2 }, inheritAttrs: false, provide: function provide() { @@ -1367,7 +1494,7 @@ vscrollResizeObserver: this.$_resizeObserver }; }, - props: _objectSpread2({}, props, { + props: _objectSpread2(_objectSpread2({}, props), {}, { minItemSize: { type: [Number, String], required: true @@ -1517,7 +1644,7 @@ const __vue_script__$1 = script$1; /* template */ - var __vue_render__$1 = function() { + var __vue_render__ = function () { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; @@ -1531,14 +1658,14 @@ items: _vm.itemsWithSize, "min-item-size": _vm.minItemSize, direction: _vm.direction, - "key-field": "id" + "key-field": "id", }, on: { resize: _vm.onScrollerResize, visible: _vm.onScrollerVisible }, scopedSlots: _vm._u( [ { key: "default", - fn: function(ref) { + fn: function (ref) { var itemWithSize = ref.item; var index = ref.index; var active = ref.active; @@ -1547,15 +1674,15 @@ item: itemWithSize.item, index: index, active: active, - itemWithSize: itemWithSize - }) + itemWithSize: itemWithSize, + }), ] - } - } + }, + }, ], null, true - ) + ), }, "RecycleScroller", _vm.$attrs, @@ -1567,13 +1694,13 @@ _vm._v(" "), _c("template", { slot: "before" }, [_vm._t("before")], 2), _vm._v(" "), - _c("template", { slot: "after" }, [_vm._t("after")], 2) + _c("template", { slot: "after" }, [_vm._t("after")], 2), ], 2 ) }; - var __vue_staticRenderFns__$1 = []; - __vue_render__$1._withStripped = true; + var __vue_staticRenderFns__ = []; + __vue_render__._withStripped = true; /* style */ const __vue_inject_styles__$1 = undefined; @@ -1591,8 +1718,8 @@ - const __vue_component__$1 = normalizeComponent( - { render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 }, + const __vue_component__$1 = /*#__PURE__*/normalizeComponent( + { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ }, __vue_inject_styles__$1, __vue_script__$1, __vue_scope_id__$1, @@ -1604,7 +1731,7 @@ undefined ); - var script$2 = { + var script = { name: 'DynamicScrollerItem', inject: ['vscrollData', 'vscrollParent', 'vscrollResizeObserver'], props: { @@ -1811,18 +1938,18 @@ }; /* script */ - const __vue_script__$2 = script$2; + const __vue_script__ = script; /* template */ /* style */ - const __vue_inject_styles__$2 = undefined; + const __vue_inject_styles__ = undefined; /* scoped */ - const __vue_scope_id__$2 = undefined; + const __vue_scope_id__ = undefined; /* module identifier */ - const __vue_module_identifier__$2 = undefined; + const __vue_module_identifier__ = undefined; /* functional template */ - const __vue_is_functional_template__$2 = undefined; + const __vue_is_functional_template__ = undefined; /* style inject */ /* style inject SSR */ @@ -1831,13 +1958,13 @@ - const __vue_component__$2 = normalizeComponent( + const __vue_component__ = /*#__PURE__*/normalizeComponent( {}, - __vue_inject_styles__$2, - __vue_script__$2, - __vue_scope_id__$2, - __vue_is_functional_template__$2, - __vue_module_identifier__$2, + __vue_inject_styles__, + __vue_script__, + __vue_scope_id__, + __vue_is_functional_template__, + __vue_module_identifier__, false, undefined, undefined, @@ -1852,7 +1979,7 @@ } : _ref$idProp; var store = {}; - var vm = new Vue({ + var vm = new Vue__default["default"]({ data: function data() { return { store: store @@ -1937,17 +2064,17 @@ } function registerComponents(Vue, prefix) { - Vue.component("".concat(prefix, "recycle-scroller"), __vue_component__); - Vue.component("".concat(prefix, "RecycleScroller"), __vue_component__); + Vue.component("".concat(prefix, "recycle-scroller"), __vue_component__$2); + Vue.component("".concat(prefix, "RecycleScroller"), __vue_component__$2); Vue.component("".concat(prefix, "dynamic-scroller"), __vue_component__$1); Vue.component("".concat(prefix, "DynamicScroller"), __vue_component__$1); - Vue.component("".concat(prefix, "dynamic-scroller-item"), __vue_component__$2); - Vue.component("".concat(prefix, "DynamicScrollerItem"), __vue_component__$2); + Vue.component("".concat(prefix, "dynamic-scroller-item"), __vue_component__); + Vue.component("".concat(prefix, "DynamicScrollerItem"), __vue_component__); } - var plugin$1 = { + var plugin = { // eslint-disable-next-line no-undef - version: "1.2.1", + version: "1.2.4", install: function install(Vue, options) { var finalOptions = Object.assign({}, { installComponents: true, @@ -1966,25 +2093,25 @@ } }; - var GlobalVue$1 = null; + var GlobalVue = null; if (typeof window !== 'undefined') { - GlobalVue$1 = window.Vue; + GlobalVue = window.Vue; } else if (typeof global !== 'undefined') { - GlobalVue$1 = global.Vue; + GlobalVue = global.Vue; } - if (GlobalVue$1) { - GlobalVue$1.use(plugin$1); + if (GlobalVue) { + GlobalVue.use(plugin); } exports.DynamicScroller = __vue_component__$1; - exports.DynamicScrollerItem = __vue_component__$2; + exports.DynamicScrollerItem = __vue_component__; exports.IdState = IdState; - exports.RecycleScroller = __vue_component__; - exports.default = plugin$1; + exports.RecycleScroller = __vue_component__$2; + exports["default"] = plugin; Object.defineProperty(exports, '__esModule', { value: true }); -}))); +})); //# sourceMappingURL=vue-virtual-scroller.umd.js.map diff --git a/dist/vue-virtual-scroller.umd.js.map b/dist/vue-virtual-scroller.umd.js.map index 5496d264..834030c5 100644 --- a/dist/vue-virtual-scroller.umd.js.map +++ b/dist/vue-virtual-scroller.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"vue-virtual-scroller.umd.js","sources":["../src/config.js","../node_modules/vue-observe-visibility/dist/vue-observe-visibility.esm.js","../node_modules/scrollparent/scrollparent.js","../src/components/common.js","../src/utils.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/mixins/IdState.js","../src/index.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction processOptions(value) {\n var options;\n\n if (typeof value === 'function') {\n // Simple options (callback-only)\n options = {\n callback: value\n };\n } else {\n // Options object\n options = value;\n }\n\n return options;\n}\nfunction throttle(callback, delay) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var timeout;\n var lastState;\n var currentArgs;\n\n var throttled = function throttled(state) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n currentArgs = args;\n if (timeout && state === lastState) return;\n var leading = options.leading;\n\n if (typeof leading === 'function') {\n leading = leading(state, lastState);\n }\n\n if ((!timeout || state !== lastState) && leading) {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n }\n\n lastState = state;\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n timeout = 0;\n }, delay);\n };\n\n throttled._clear = function () {\n clearTimeout(timeout);\n timeout = null;\n };\n\n return throttled;\n}\nfunction deepEqual(val1, val2) {\n if (val1 === val2) return true;\n\n if (_typeof(val1) === 'object') {\n for (var key in val1) {\n if (!deepEqual(val1[key], val2[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\nvar VisibilityState =\n/*#__PURE__*/\nfunction () {\n function VisibilityState(el, options, vnode) {\n _classCallCheck(this, VisibilityState);\n\n this.el = el;\n this.observer = null;\n this.frozen = false;\n this.createObserver(options, vnode);\n }\n\n _createClass(VisibilityState, [{\n key: \"createObserver\",\n value: function createObserver(options, vnode) {\n var _this = this;\n\n if (this.observer) {\n this.destroyObserver();\n }\n\n if (this.frozen) return;\n this.options = processOptions(options);\n\n this.callback = function (result, entry) {\n _this.options.callback(result, entry);\n\n if (result && _this.options.once) {\n _this.frozen = true;\n\n _this.destroyObserver();\n }\n }; // Throttle\n\n\n if (this.callback && this.options.throttle) {\n var _ref = this.options.throttleOptions || {},\n _leading = _ref.leading;\n\n this.callback = throttle(this.callback, this.options.throttle, {\n leading: function leading(state) {\n return _leading === 'both' || _leading === 'visible' && state || _leading === 'hidden' && !state;\n }\n });\n }\n\n this.oldResult = undefined;\n this.observer = new IntersectionObserver(function (entries) {\n var entry = entries[0];\n\n if (entries.length > 1) {\n var intersectingEntry = entries.find(function (e) {\n return e.isIntersecting;\n });\n\n if (intersectingEntry) {\n entry = intersectingEntry;\n }\n }\n\n if (_this.callback) {\n // Use isIntersecting if possible because browsers can report isIntersecting as true, but intersectionRatio as 0, when something very slowly enters the viewport.\n var result = entry.isIntersecting && entry.intersectionRatio >= _this.threshold;\n if (result === _this.oldResult) return;\n _this.oldResult = result;\n\n _this.callback(result, entry);\n }\n }, this.options.intersection); // Wait for the element to be in document\n\n vnode.context.$nextTick(function () {\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n } // Cancel throttled call\n\n\n if (this.callback && this.callback._clear) {\n this.callback._clear();\n\n this.callback = null;\n }\n }\n }, {\n key: \"threshold\",\n get: function get() {\n return this.options.intersection && this.options.intersection.threshold || 0;\n }\n }]);\n\n return VisibilityState;\n}();\n\nfunction bind(el, _ref2, vnode) {\n var value = _ref2.value;\n if (!value) return;\n\n if (typeof IntersectionObserver === 'undefined') {\n console.warn('[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill');\n } else {\n var state = new VisibilityState(el, value, vnode);\n el._vue_visibilityState = state;\n }\n}\n\nfunction update(el, _ref3, vnode) {\n var value = _ref3.value,\n oldValue = _ref3.oldValue;\n if (deepEqual(value, oldValue)) return;\n var state = el._vue_visibilityState;\n\n if (!value) {\n unbind(el);\n return;\n }\n\n if (state) {\n state.createObserver(value, vnode);\n } else {\n bind(el, {\n value: value\n }, vnode);\n }\n}\n\nfunction unbind(el) {\n var state = el._vue_visibilityState;\n\n if (state) {\n state.destroyObserver();\n delete el._vue_visibilityState;\n }\n}\n\nvar ObserveVisibility = {\n bind: bind,\n update: update,\n unbind: unbind\n};\n\nfunction install(Vue) {\n Vue.directive('observe-visibility', ObserveVisibility);\n /* -- Add more components here -- */\n}\n/* -- Plugin definition & Auto-install -- */\n\n/* You shouldn't have to modify the code below */\n// Plugin\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"0.4.6\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { ObserveVisibility, install };\n","(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Scrollparent = factory();\n }\n}(this, function () {\n var regex = /(auto|scroll)/;\n\n var parents = function (node, ps) {\n if (node.parentNode === null) { return ps; }\n\n return parents(node.parentNode, ps.concat([node]));\n };\n\n var style = function (node, prop) {\n return getComputedStyle(node, null).getPropertyValue(prop);\n };\n\n var overflow = function (node) {\n return style(node, \"overflow\") + style(node, \"overflow-y\") + style(node, \"overflow-x\");\n };\n\n var scroll = function (node) {\n return regex.test(overflow(node));\n };\n\n var scrollParent = function (node) {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return ;\n }\n\n var ps = parents(node.parentNode, []);\n\n for (var i = 0; i < ps.length; i += 1) {\n if (scroll(ps[i])) {\n return ps[i];\n }\n }\n\n return document.scrollingElement || document.documentElement;\n };\n\n return scrollParent;\n}));\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: VERSION,\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n"],"names":["itemsLimit","_typeof","this","props","items","type","Array","required","keyField","String","default","direction","validator","value","includes","simpleArray","length","supportsPassive","window","opts","Object","defineProperty","get","addEventListener","e","idProp","vm","item","id","store","Vue","data","idState","created","$_id","$_getId","call","$watch","handler","$nextTick","immediate","$_updateIdState","beforeUpdate","methods","$_idStateInit","factory","$options","$set","Error","console","warn","registerComponents","prefix","component","RecycleScroller","DynamicScroller","DynamicScrollerItem","plugin","version","VERSION","install","options","finalOptions","assign","installComponents","componentsPrefix","key","config","GlobalVue","global","use"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"vue-virtual-scroller.umd.js","sources":["../src/config.js","../node_modules/vue-observe-visibility/dist/vue-observe-visibility.esm.js","../node_modules/scrollparent/scrollparent.js","../src/components/common.js","../src/utils.js","../node_modules/vue-resize/dist/vue-resize.esm.js","../src/components/RecycleScroller.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/DynamicScroller.vue","../src/components/DynamicScrollerItem.vue","../src/mixins/IdState.js","../src/index.js"],"sourcesContent":["export default {\n itemsLimit: 1000,\n}\n","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction processOptions(value) {\n var options;\n\n if (typeof value === 'function') {\n // Simple options (callback-only)\n options = {\n callback: value\n };\n } else {\n // Options object\n options = value;\n }\n\n return options;\n}\nfunction throttle(callback, delay) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var timeout;\n var lastState;\n var currentArgs;\n\n var throttled = function throttled(state) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n currentArgs = args;\n if (timeout && state === lastState) return;\n var leading = options.leading;\n\n if (typeof leading === 'function') {\n leading = leading(state, lastState);\n }\n\n if ((!timeout || state !== lastState) && leading) {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n }\n\n lastState = state;\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n callback.apply(void 0, [state].concat(_toConsumableArray(currentArgs)));\n timeout = 0;\n }, delay);\n };\n\n throttled._clear = function () {\n clearTimeout(timeout);\n timeout = null;\n };\n\n return throttled;\n}\nfunction deepEqual(val1, val2) {\n if (val1 === val2) return true;\n\n if (_typeof(val1) === 'object') {\n for (var key in val1) {\n if (!deepEqual(val1[key], val2[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\nvar VisibilityState =\n/*#__PURE__*/\nfunction () {\n function VisibilityState(el, options, vnode) {\n _classCallCheck(this, VisibilityState);\n\n this.el = el;\n this.observer = null;\n this.frozen = false;\n this.createObserver(options, vnode);\n }\n\n _createClass(VisibilityState, [{\n key: \"createObserver\",\n value: function createObserver(options, vnode) {\n var _this = this;\n\n if (this.observer) {\n this.destroyObserver();\n }\n\n if (this.frozen) return;\n this.options = processOptions(options);\n\n this.callback = function (result, entry) {\n _this.options.callback(result, entry);\n\n if (result && _this.options.once) {\n _this.frozen = true;\n\n _this.destroyObserver();\n }\n }; // Throttle\n\n\n if (this.callback && this.options.throttle) {\n var _ref = this.options.throttleOptions || {},\n _leading = _ref.leading;\n\n this.callback = throttle(this.callback, this.options.throttle, {\n leading: function leading(state) {\n return _leading === 'both' || _leading === 'visible' && state || _leading === 'hidden' && !state;\n }\n });\n }\n\n this.oldResult = undefined;\n this.observer = new IntersectionObserver(function (entries) {\n var entry = entries[0];\n\n if (entries.length > 1) {\n var intersectingEntry = entries.find(function (e) {\n return e.isIntersecting;\n });\n\n if (intersectingEntry) {\n entry = intersectingEntry;\n }\n }\n\n if (_this.callback) {\n // Use isIntersecting if possible because browsers can report isIntersecting as true, but intersectionRatio as 0, when something very slowly enters the viewport.\n var result = entry.isIntersecting && entry.intersectionRatio >= _this.threshold;\n if (result === _this.oldResult) return;\n _this.oldResult = result;\n\n _this.callback(result, entry);\n }\n }, this.options.intersection); // Wait for the element to be in document\n\n vnode.context.$nextTick(function () {\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n } // Cancel throttled call\n\n\n if (this.callback && this.callback._clear) {\n this.callback._clear();\n\n this.callback = null;\n }\n }\n }, {\n key: \"threshold\",\n get: function get() {\n return this.options.intersection && this.options.intersection.threshold || 0;\n }\n }]);\n\n return VisibilityState;\n}();\n\nfunction bind(el, _ref2, vnode) {\n var value = _ref2.value;\n if (!value) return;\n\n if (typeof IntersectionObserver === 'undefined') {\n console.warn('[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill');\n } else {\n var state = new VisibilityState(el, value, vnode);\n el._vue_visibilityState = state;\n }\n}\n\nfunction update(el, _ref3, vnode) {\n var value = _ref3.value,\n oldValue = _ref3.oldValue;\n if (deepEqual(value, oldValue)) return;\n var state = el._vue_visibilityState;\n\n if (!value) {\n unbind(el);\n return;\n }\n\n if (state) {\n state.createObserver(value, vnode);\n } else {\n bind(el, {\n value: value\n }, vnode);\n }\n}\n\nfunction unbind(el) {\n var state = el._vue_visibilityState;\n\n if (state) {\n state.destroyObserver();\n delete el._vue_visibilityState;\n }\n}\n\nvar ObserveVisibility = {\n bind: bind,\n update: update,\n unbind: unbind\n};\n\nfunction install(Vue) {\n Vue.directive('observe-visibility', ObserveVisibility);\n /* -- Add more components here -- */\n}\n/* -- Plugin definition & Auto-install -- */\n\n/* You shouldn't have to modify the code below */\n// Plugin\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"0.4.6\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { ObserveVisibility, install };\n","(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Scrollparent = factory();\n }\n}(this, function () {\n var regex = /(auto|scroll)/;\n\n var parents = function (node, ps) {\n if (node.parentNode === null) { return ps; }\n\n return parents(node.parentNode, ps.concat([node]));\n };\n\n var style = function (node, prop) {\n return getComputedStyle(node, null).getPropertyValue(prop);\n };\n\n var overflow = function (node) {\n return style(node, \"overflow\") + style(node, \"overflow-y\") + style(node, \"overflow-x\");\n };\n\n var scroll = function (node) {\n return regex.test(overflow(node));\n };\n\n var scrollParent = function (node) {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return ;\n }\n\n var ps = parents(node.parentNode, []);\n\n for (var i = 0; i < ps.length; i += 1) {\n if (scroll(ps[i])) {\n return ps[i];\n }\n }\n\n return document.scrollingElement || document.documentElement;\n };\n\n return scrollParent;\n}));\n","export const props = {\n items: {\n type: Array,\n required: true,\n },\n\n keyField: {\n type: String,\n default: 'id',\n },\n\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n}\n\nexport function simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object'\n}\n","export let supportsPassive = false\n\nif (typeof window !== 'undefined') {\n supportsPassive = false\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n supportsPassive = true\n },\n })\n window.addEventListener('test', null, opts)\n } catch (e) {}\n}\n","function getInternetExplorerVersion() {\n\tvar ua = window.navigator.userAgent;\n\n\tvar msie = ua.indexOf('MSIE ');\n\tif (msie > 0) {\n\t\t// IE 10 or older => return version number\n\t\treturn parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n\t}\n\n\tvar trident = ua.indexOf('Trident/');\n\tif (trident > 0) {\n\t\t// IE 11 => return version number\n\t\tvar rv = ua.indexOf('rv:');\n\t\treturn parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n\t}\n\n\tvar edge = ua.indexOf('Edge/');\n\tif (edge > 0) {\n\t\t// Edge (IE 12+) => return version number\n\t\treturn parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n\t}\n\n\t// other browser\n\treturn -1;\n}\n\nvar isIE = void 0;\n\nfunction initCompat() {\n\tif (!initCompat.init) {\n\t\tinitCompat.init = true;\n\t\tisIE = getInternetExplorerVersion() !== -1;\n\t}\n}\n\nvar ResizeObserver = { render: function render() {\n\t\tvar _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: \"resize-observer\", attrs: { \"tabindex\": \"-1\" } });\n\t}, staticRenderFns: [], _scopeId: 'data-v-b329ee4c',\n\tname: 'resize-observer',\n\n\tmethods: {\n\t\tcompareAndNotify: function compareAndNotify() {\n\t\t\tif (this._w !== this.$el.offsetWidth || this._h !== this.$el.offsetHeight) {\n\t\t\t\tthis._w = this.$el.offsetWidth;\n\t\t\t\tthis._h = this.$el.offsetHeight;\n\t\t\t\tthis.$emit('notify');\n\t\t\t}\n\t\t},\n\t\taddResizeHandlers: function addResizeHandlers() {\n\t\t\tthis._resizeObject.contentDocument.defaultView.addEventListener('resize', this.compareAndNotify);\n\t\t\tthis.compareAndNotify();\n\t\t},\n\t\tremoveResizeHandlers: function removeResizeHandlers() {\n\t\t\tif (this._resizeObject && this._resizeObject.onload) {\n\t\t\t\tif (!isIE && this._resizeObject.contentDocument) {\n\t\t\t\t\tthis._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.compareAndNotify);\n\t\t\t\t}\n\t\t\t\tdelete this._resizeObject.onload;\n\t\t\t}\n\t\t}\n\t},\n\n\tmounted: function mounted() {\n\t\tvar _this = this;\n\n\t\tinitCompat();\n\t\tthis.$nextTick(function () {\n\t\t\t_this._w = _this.$el.offsetWidth;\n\t\t\t_this._h = _this.$el.offsetHeight;\n\t\t});\n\t\tvar object = document.createElement('object');\n\t\tthis._resizeObject = object;\n\t\tobject.setAttribute('aria-hidden', 'true');\n\t\tobject.setAttribute('tabindex', -1);\n\t\tobject.onload = this.addResizeHandlers;\n\t\tobject.type = 'text/html';\n\t\tif (isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t\tobject.data = 'about:blank';\n\t\tif (!isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t},\n\tbeforeDestroy: function beforeDestroy() {\n\t\tthis.removeResizeHandlers();\n\t}\n};\n\n// Install the components\nfunction install(Vue) {\n\tVue.component('resize-observer', ResizeObserver);\n\tVue.component('ResizeObserver', ResizeObserver);\n}\n\n// Plugin\nvar plugin = {\n\t// eslint-disable-next-line no-undef\n\tversion: \"0.4.5\",\n\tinstall: install\n};\n\n// Auto-install\nvar GlobalVue = null;\nif (typeof window !== 'undefined') {\n\tGlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n\tGlobalVue = global.Vue;\n}\nif (GlobalVue) {\n\tGlobalVue.use(plugin);\n}\n\nexport { install, ResizeObserver };\nexport default plugin;\n","\n\n\n\n\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n","\n","import Vue from 'vue'\n\nexport default function ({\n idProp = vm => vm.item.id,\n} = {}) {\n const store = {}\n const vm = new Vue({\n data () {\n return {\n store,\n }\n },\n })\n\n // @vue/component\n return {\n data () {\n return {\n idState: null,\n }\n },\n\n created () {\n this.$_id = null\n if (typeof idProp === 'function') {\n this.$_getId = () => idProp.call(this, this)\n } else {\n this.$_getId = () => this[idProp]\n }\n this.$watch(this.$_getId, {\n handler (value) {\n this.$nextTick(() => {\n this.$_id = value\n })\n },\n immediate: true,\n })\n this.$_updateIdState()\n },\n\n beforeUpdate () {\n this.$_updateIdState()\n },\n\n methods: {\n /**\n * Initialize an idState\n * @param {number|string} id Unique id for the data\n */\n $_idStateInit (id) {\n const factory = this.$options.idState\n if (typeof factory === 'function') {\n const data = factory.call(this, this)\n vm.$set(store, id, data)\n this.$_id = id\n return data\n } else {\n throw new Error('[mixin IdState] Missing `idState` function on component definition.')\n }\n },\n\n /**\n * Ensure idState is created and up-to-date\n */\n $_updateIdState () {\n const id = this.$_getId()\n if (id == null) {\n console.warn(`No id found for IdState with idProp: '${idProp}'.`)\n }\n if (id !== this.$_id) {\n if (!store[id]) {\n this.$_idStateInit(id)\n }\n this.idState = store[id]\n }\n },\n },\n }\n}\n","import config from './config'\n\nimport RecycleScroller from './components/RecycleScroller.vue'\nimport DynamicScroller from './components/DynamicScroller.vue'\nimport DynamicScrollerItem from './components/DynamicScrollerItem.vue'\n\nexport { default as IdState } from './mixins/IdState'\n\nexport {\n RecycleScroller,\n DynamicScroller,\n DynamicScrollerItem,\n}\n\nfunction registerComponents (Vue, prefix) {\n Vue.component(`${prefix}recycle-scroller`, RecycleScroller)\n Vue.component(`${prefix}RecycleScroller`, RecycleScroller)\n Vue.component(`${prefix}dynamic-scroller`, DynamicScroller)\n Vue.component(`${prefix}DynamicScroller`, DynamicScroller)\n Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem)\n Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem)\n}\n\nconst plugin = {\n // eslint-disable-next-line no-undef\n version: VERSION,\n install (Vue, options) {\n const finalOptions = Object.assign({}, {\n installComponents: true,\n componentsPrefix: '',\n }, options)\n\n for (const key in finalOptions) {\n if (typeof finalOptions[key] !== 'undefined') {\n config[key] = finalOptions[key]\n }\n }\n\n if (finalOptions.installComponents) {\n registerComponents(Vue, finalOptions.componentsPrefix)\n }\n },\n}\n\nexport default plugin\n\n// Auto-install\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue\n}\nif (GlobalVue) {\n GlobalVue.use(plugin)\n}\n"],"names":["itemsLimit","install","plugin","GlobalVue","this","props","items","type","Array","required","keyField","String","default","direction","validator","value","includes","simpleArray","length","_typeof","supportsPassive","window","opts","Object","defineProperty","get","addEventListener","e","ResizeObserver","idProp","vm","item","id","store","Vue","data","idState","created","$_id","$_getId","call","$watch","handler","$nextTick","immediate","$_updateIdState","beforeUpdate","methods","$_idStateInit","factory","$options","$set","Error","console","warn","registerComponents","prefix","component","RecycleScroller","DynamicScroller","DynamicScrollerItem","version","VERSION","options","finalOptions","assign","installComponents","componentsPrefix","key","config","global","use"],"mappings":"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"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..99e3c455 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4768 @@ +{ + "name": "@startinfinity/vue-virtual-scroller", + "version": "1.2.4", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.16.0" + } + }, + "@babel/compat-data": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", + "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", + "dev": true + }, + "@babel/core": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", + "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helpers": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + } + }, + "@babel/generator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", + "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz", + "integrity": "sha512-ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.0.tgz", + "integrity": "sha512-9KuleLT0e77wFUku6TUkqZzCEymBdtuQQ27MhEKzf9UOOJu3cYj98kyaDAzxpC7lV6DGiZFuC8XqDsq8/Kl6aQ==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.16.0", + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", + "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.16.0", + "@babel/helper-validator-option": "^7.14.5", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.0.tgz", + "integrity": "sha512-XLwWvqEaq19zFlF5PTgOod4bUA+XbkR4WLQBct1bkzmxJGB0ZEJaoKF4c8cgH9oBtCDuYJ8BP5NB9uFiEgO5QA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-member-expression-to-functions": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/helper-replace-supers": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.0.tgz", + "integrity": "sha512-3DyG0zAFAZKcOp7aVr33ddwkxJ0Z0Jr5V99y3I690eYLpukJsJvAbzTy1ewoCqsML8SbIrjH14Jc/nSQ4TvNPA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "regexpu-core": "^4.7.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz", + "integrity": "sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.0.tgz", + "integrity": "sha512-Hk2SLxC9ZbcOhLpg/yMznzJ11W++lg5GMbxt1ev6TXUiJB0N42KPC+7w8a+eWGuqDnUYuwStJoZHM7RgmIOaGQ==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-function-name": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", + "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", + "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", + "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz", + "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", + "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-module-transforms": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz", + "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-replace-supers": "^7.16.0", + "@babel/helper-simple-access": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/helper-validator-identifier": "^7.15.7", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", + "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.4.tgz", + "integrity": "sha512-vGERmmhR+s7eH5Y/cp8PCVzj4XEjerq8jooMfxFdA5xVtAk9Sh4AQsrWgiErUEBjtGrBtOFKDUcWQFW4/dFwMA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-wrap-function": "^7.16.0", + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-replace-supers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz", + "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", + "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", + "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.0.tgz", + "integrity": "sha512-VVMGzYY3vkWgCJML+qVLvGIam902mJW0FvT7Avj1zEe0Gn7D93aWdLblYARTxEw+6DhZmtzhBM2zv0ekE5zg1g==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" + } + }, + "@babel/helpers": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz", + "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==", + "dev": true, + "requires": { + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.3", + "@babel/types": "^7.16.0" + } + }, + "@babel/highlight": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", + "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", + "dev": true + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.16.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz", + "integrity": "sha512-h37CvpLSf8gb2lIJ2CgC3t+EjFbi0t8qS7LCS1xcJIlEXE4czlofwaW7W1HA8zpgOCzI9C1nmoqNR1zWkk0pQg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0.tgz", + "integrity": "sha512-4tcFwwicpWTrpl9qjf7UsoosaArgImF85AxqCRZlgc3IQDvkUHjJpruXAL58Wmj+T6fypWTC/BakfEkwIL/pwA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.4.tgz", + "integrity": "sha512-/CUekqaAaZCQHleSK/9HajvcD/zdnJiKRiuUFq8ITE+0HsPzquf53cpFiqAwl/UfmJbR6n5uGPQSPdrmKOvHHg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.16.4", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.0.tgz", + "integrity": "sha512-mCF3HcuZSY9Fcx56Lbn+CGdT44ioBMMvjNVldpKtj8tpniETdLjnxdHI1+sDWXIM1nNt+EanJOZ3IG9lzVjs7A==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.0.tgz", + "integrity": "sha512-mAy3sdcY9sKAkf3lQbDiv3olOfiLqI51c9DR9b19uMoR2Z6r5pmGl7dfNFqEvqOyqbf1ta4lknK4gc5PJn3mfA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.0.tgz", + "integrity": "sha512-QGSA6ExWk95jFQgwz5GQ2Dr95cf7eI7TKutIXXTb7B1gCLTCz5hTjFTQGfLFBBiC5WSNi7udNwWsqbbMh1c4yQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.0.tgz", + "integrity": "sha512-CjI4nxM/D+5wCnhD11MHB1AwRSAYeDT+h8gCdcVJZ/OK7+wRzFsf7PFPWVpVpNRkHMmMkQWAHpTq+15IXQ1diA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.0.tgz", + "integrity": "sha512-kouIPuiv8mSi5JkEhzApg5Gn6hFyKPnlkO0a9YSzqRurH8wYzSlf6RJdzluAsbqecdW5pBvDJDfyDIUR/vLxvg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.0.tgz", + "integrity": "sha512-pbW0fE30sVTYXXm9lpVQQ/Vc+iTeQKiXlaNRZPPN2A2VdlWyAtsUrsQ3xydSlDW00TFMK7a8m3cDTkBF5WnV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.0.tgz", + "integrity": "sha512-3bnHA8CAFm7cG93v8loghDYyQ8r97Qydf63BeYiGgYbjKKB/XP53W15wfRC7dvKfoiJ34f6Rbyyx2btExc8XsQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.0.tgz", + "integrity": "sha512-FAhE2I6mjispy+vwwd6xWPyEx3NYFS13pikDBWUAFGZvq6POGs5eNchw8+1CYoEgBl9n11I3NkzD7ghn25PQ9Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.0.tgz", + "integrity": "sha512-LU/+jp89efe5HuWJLmMmFG0+xbz+I2rSI7iLc1AlaeSMDMOGzWlc5yJrMN1d04osXN4sSfpo4O+azkBNBes0jg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.16.0" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.0.tgz", + "integrity": "sha512-kicDo0A/5J0nrsCPbn89mTG3Bm4XgYi0CZtvex9Oyw7gGZE3HXGD0zpQNH+mo+tEfbo8wbmMvJftOwpmPy7aVw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.0.tgz", + "integrity": "sha512-Y4rFpkZODfHrVo70Uaj6cC1JJOt3Pp0MdWSwIKtb8z1/lsjl9AmnB7ErRFV+QNGIfcY1Eruc2UMx5KaRnXjMyg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.0.tgz", + "integrity": "sha512-IvHmcTHDFztQGnn6aWq4t12QaBXTKr1whF/dgp9kz84X6GUcwq9utj7z2wFCUfeOup/QKnOlt2k0zxkGFx9ubg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.0.tgz", + "integrity": "sha512-3jQUr/HBbMVZmi72LpjQwlZ55i1queL8KcDTQEkAHihttJnAPrcvG9ZNXIfsd2ugpizZo595egYV6xy+pv4Ofw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-create-class-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.0.tgz", + "integrity": "sha512-ti7IdM54NXv29cA4+bNNKEMS4jLMCbJgl+Drv+FgYy0erJLAxNAIXcNjNjrRZEcWq0xJHsNVwQezskMFpF8N9g==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.0.tgz", + "integrity": "sha512-vIFb5250Rbh7roWARvCLvIJ/PtAU5Lhv7BtZ1u24COwpI9Ypjsh+bZcKk6rlIyalK+r0jOc1XQ8I4ovNxNrWrA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.0.tgz", + "integrity": "sha512-PbIr7G9kR8tdH6g8Wouir5uVjklETk91GMVSUq+VaOgiinbCkBP6Q7NN/suM/QutZkMJMvcyAriogcYAdhg8Gw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.16.0" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.0.tgz", + "integrity": "sha512-V14As3haUOP4ZWrLJ3VVx5rCnrYhMSHN/jX7z6FAt5hjRkLsb0snPCmJwSOML5oxkKO4FNoNv7V5hw/y2bjuvg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.0.tgz", + "integrity": "sha512-27n3l67/R3UrXfizlvHGuTwsRIFyce3D/6a37GRxn28iyTPvNXaW4XvznexRh1zUNLPjbLL22Id0XQElV94ruw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.0.tgz", + "integrity": "sha512-HUxMvy6GtAdd+GKBNYDWCIA776byUQH8zjnfjxwT1P1ARv/wFu8eBDpmXQcLS/IwRtrxIReGiplOwMeyO7nsDQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-replace-supers": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.0.tgz", + "integrity": "sha512-63l1dRXday6S8V3WFY5mXJwcRAnPYxvFfTlt67bwV1rTyVTM5zrp0DBBb13Kl7+ehkCVwIZPumPpFP/4u70+Tw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.0.tgz", + "integrity": "sha512-Q7tBUwjxLTsHEoqktemHBMtb3NYwyJPTJdM+wDwb0g8PZ3kQUIzNvwD5lPaqW/p54TXBc/MXZu9Jr7tbUEUM8Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.0.tgz", + "integrity": "sha512-FXlDZfQeLILfJlC6I1qyEwcHK5UpRCFkaoVyA1nk9A1L1Yu583YO4un2KsLBsu3IJb4CUbctZks8tD9xPQubLw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.0.tgz", + "integrity": "sha512-LIe2kcHKAZOJDNxujvmp6z3mfN6V9lJxubU4fJIGoQCkKe3Ec2OcbdlYP+vW++4MpxwG0d1wSDOJtQW5kLnkZQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.0.tgz", + "integrity": "sha512-OwYEvzFI38hXklsrbNivzpO3fh87skzx8Pnqi4LoSYeav0xHlueSoCJrSgTPfnbyzopo5b3YVAJkFIcUpK2wsw==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.0.tgz", + "integrity": "sha512-5QKUw2kO+GVmKr2wMYSATCTTnHyscl6sxFRAY+rvN7h7WB0lcG0o4NoV6ZQU32OZGVsYUsfLGgPQpDFdkfjlJQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.0.tgz", + "integrity": "sha512-lBzMle9jcOXtSOXUpc7tvvTpENu/NuekNJVova5lCCWCV9/U1ho2HH2y0p6mBg8fPm/syEAbfaaemYGOHCY3mg==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.0.tgz", + "integrity": "sha512-gQDlsSF1iv9RU04clgXqRjrPyyoJMTclFt3K1cjLmTKikc0s/6vE3hlDeEVC71wLTRu72Fq7650kABrdTc2wMQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.0.tgz", + "integrity": "sha512-WRpw5HL4Jhnxw8QARzRvwojp9MIE7Tdk3ez6vRyUk1MwgjJN0aNpRoXainLR5SgxmoXx/vsXGZ6OthP6t/RbUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.0.tgz", + "integrity": "sha512-rWFhWbCJ9Wdmzln1NmSCqn7P0RAD+ogXG/bd9Kg5c7PKWkJtkiXmYsMBeXjDlzHpVTJ4I/hnjs45zX4dEv81xw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.0.tgz", + "integrity": "sha512-Dzi+NWqyEotgzk/sb7kgQPJQf7AJkQBWsVp1N6JWc1lBVo0vkElUnGdr1PzUBmfsCCN5OOFya3RtpeHk15oLKQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-simple-access": "^7.16.0", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.0.tgz", + "integrity": "sha512-yuGBaHS3lF1m/5R+6fjIke64ii5luRUg97N2wr+z1sF0V+sNSXPxXDdEEL/iYLszsN5VKxVB1IPfEqhzVpiqvg==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.16.0", + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-identifier": "^7.15.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.0.tgz", + "integrity": "sha512-nx4f6no57himWiHhxDM5pjwhae5vLpTK2zCnDH8+wNLJy0TVER/LJRHl2bkt6w9Aad2sPD5iNNoUpY3X9sTGDg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.0.tgz", + "integrity": "sha512-LogN88uO+7EhxWc8WZuQ8vxdSyVGxhkh8WTC3tzlT8LccMuQdA81e9SGV6zY7kY2LjDhhDOFdQVxdGwPyBCnvg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.0" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.0.tgz", + "integrity": "sha512-fhjrDEYv2DBsGN/P6rlqakwRwIp7rBGLPbrKxwh7oVt5NNkIhZVOY2GRV+ULLsQri1bDqwDWnU3vhlmx5B2aCw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.0.tgz", + "integrity": "sha512-fds+puedQHn4cPLshoHcR1DTMN0q1V9ou0mUjm8whx9pGcNvDrVVrgw+KJzzCaiTdaYhldtrUps8DWVMgrSEyg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-replace-supers": "^7.16.0" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.3.tgz", + "integrity": "sha512-3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.0.tgz", + "integrity": "sha512-XLldD4V8+pOqX2hwfWhgwXzGdnDOThxaNTgqagOcpBgIxbUvpgU2FMvo5E1RyHbk756WYgdbS0T8y0Cj9FKkWQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.0.tgz", + "integrity": "sha512-JAvGxgKuwS2PihiSFaDrp94XOzzTUeDeOQlcKzVAyaPap7BnZXK/lvMDiubkPTdotPKOIZq9xWXWnggUMYiExg==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.0.tgz", + "integrity": "sha512-Dgs8NNCehHSvXdhEhln8u/TtJxfVwGYCgP2OOr5Z3Ar+B+zXicEOKNTyc+eca2cuEOMtjW6m9P9ijOt8QdqWkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.0.tgz", + "integrity": "sha512-iVb1mTcD8fuhSv3k99+5tlXu5N0v8/DPm2mO3WACLG6al1CGZH7v09HJyUb1TtYl/Z+KrM6pHSIJdZxP5A+xow==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.0.tgz", + "integrity": "sha512-Ao4MSYRaLAQczZVp9/7E7QHsCuK92yHRrmVNRe/SlEJjhzivq0BSn8mEraimL8wizHZ3fuaHxKH0iwzI13GyGg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.0.tgz", + "integrity": "sha512-/ntT2NljR9foobKk4E/YyOSwcGUXtYWv5tinMK/3RkypyNBNdhHUaq6Orw5DWq9ZcNlS03BIlEALFeQgeVAo4Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.0.tgz", + "integrity": "sha512-Rd4Ic89hA/f7xUSJQk5PnC+4so50vBoBfxjdQAdvngwidM8jYIBVxBZ/sARxD4e0yMXRbJVDrYf7dyRtIIKT6Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.0.tgz", + "integrity": "sha512-++V2L8Bdf4vcaHi2raILnptTBjGEFxn5315YU+e8+EqXIucA+q349qWngCLpUYqqv233suJ6NOienIVUpS9cqg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.0.tgz", + "integrity": "sha512-VFi4dhgJM7Bpk8lRc5CMaRGlKZ29W9C3geZjt9beuzSUrlJxsNwX7ReLwaL6WEvsOf2EQkyIJEPtF8EXjB/g2A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.0.tgz", + "integrity": "sha512-jHLK4LxhHjvCeZDWyA9c+P9XH1sOxRd1RO9xMtDVRAOND/PczPqizEtVdx4TQF/wyPaewqpT+tgQFYMnN/P94A==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/preset-env": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.4.tgz", + "integrity": "sha512-v0QtNd81v/xKj4gNKeuAerQ/azeNn/G1B1qMLeXOcV8+4TWlD2j3NV1u8q29SDFBXx/NBq5kyEAO+0mpRgacjA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.16.4", + "@babel/helper-compilation-targets": "^7.16.3", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.2", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-async-generator-functions": "^7.16.4", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-class-static-block": "^7.16.0", + "@babel/plugin-proposal-dynamic-import": "^7.16.0", + "@babel/plugin-proposal-export-namespace-from": "^7.16.0", + "@babel/plugin-proposal-json-strings": "^7.16.0", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-object-rest-spread": "^7.16.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-proposal-private-property-in-object": "^7.16.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.0", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.16.0", + "@babel/plugin-transform-async-to-generator": "^7.16.0", + "@babel/plugin-transform-block-scoped-functions": "^7.16.0", + "@babel/plugin-transform-block-scoping": "^7.16.0", + "@babel/plugin-transform-classes": "^7.16.0", + "@babel/plugin-transform-computed-properties": "^7.16.0", + "@babel/plugin-transform-destructuring": "^7.16.0", + "@babel/plugin-transform-dotall-regex": "^7.16.0", + "@babel/plugin-transform-duplicate-keys": "^7.16.0", + "@babel/plugin-transform-exponentiation-operator": "^7.16.0", + "@babel/plugin-transform-for-of": "^7.16.0", + "@babel/plugin-transform-function-name": "^7.16.0", + "@babel/plugin-transform-literals": "^7.16.0", + "@babel/plugin-transform-member-expression-literals": "^7.16.0", + "@babel/plugin-transform-modules-amd": "^7.16.0", + "@babel/plugin-transform-modules-commonjs": "^7.16.0", + "@babel/plugin-transform-modules-systemjs": "^7.16.0", + "@babel/plugin-transform-modules-umd": "^7.16.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.0", + "@babel/plugin-transform-new-target": "^7.16.0", + "@babel/plugin-transform-object-super": "^7.16.0", + "@babel/plugin-transform-parameters": "^7.16.3", + "@babel/plugin-transform-property-literals": "^7.16.0", + "@babel/plugin-transform-regenerator": "^7.16.0", + "@babel/plugin-transform-reserved-words": "^7.16.0", + "@babel/plugin-transform-shorthand-properties": "^7.16.0", + "@babel/plugin-transform-spread": "^7.16.0", + "@babel/plugin-transform-sticky-regex": "^7.16.0", + "@babel/plugin-transform-template-literals": "^7.16.0", + "@babel/plugin-transform-typeof-symbol": "^7.16.0", + "@babel/plugin-transform-unicode-escapes": "^7.16.0", + "@babel/plugin-transform-unicode-regex": "^7.16.0", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.16.0", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.4.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.19.1", + "semver": "^6.3.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/runtime": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz", + "integrity": "sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", + "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/types": "^7.16.0" + } + }, + "@babel/traverse": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz", + "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-hoist-variables": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/parser": "^7.16.3", + "@babel/types": "^7.16.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + } + }, + "@rollup/plugin-commonjs": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-11.1.0.tgz", + "integrity": "sha512-Ycr12N3ZPN96Fw2STurD21jMqzKwL9QuFhms3SD7KKRK7oaXUsBU9Zt0jL/rOPHiPYisI21/rXGO3jr9BnLHUA==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.8", + "commondir": "^1.0.1", + "estree-walker": "^1.0.1", + "glob": "^7.1.2", + "is-reference": "^1.1.2", + "magic-string": "^0.25.2", + "resolve": "^1.11.0" + } + }, + "@rollup/plugin-node-resolve": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz", + "integrity": "sha512-RxtSL3XmdTAE2byxekYLnx+98kEUOrPHF/KRVjLH+DEIHy6kjIw7YINQzn+NXiH/NTrQLAwYs0GWB+csWygA9Q==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.8", + "@types/resolve": "0.0.8", + "builtin-modules": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.14.2" + } + }, + "@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + } + }, + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + } + }, + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, + "@types/node": { + "version": "16.11.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.12.tgz", + "integrity": "sha512-+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw==", + "dev": true + }, + "@types/resolve": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", + "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@vue/component-compiler": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@vue/component-compiler/-/component-compiler-4.2.4.tgz", + "integrity": "sha512-tFGw3h3+nxiqnyborwWQ+rUgKAwSFl0Sdg+BCZkWTyFfkEF5fqunTNoklEUDdtRQMmVqsajn1pOZdm0zh4Uicw==", + "dev": true, + "requires": { + "@vue/component-compiler-utils": "^3.0.0", + "clean-css": "^4.1.11", + "hash-sum": "^1.0.2", + "less": "^3.9.0", + "postcss-modules-sync": "^1.0.0", + "pug": "^3.0.1", + "sass": "^1.18.0", + "source-map": "0.6.*", + "stylus": "^0.54.5" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@vue/component-compiler-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz", + "integrity": "sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==", + "dev": true, + "requires": { + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.36", + "postcss-selector-parser": "^6.0.2", + "prettier": "^1.18.2 || ^2.0.0", + "source-map": "~0.6.1", + "vue-template-es2015-compiler": "^1.9.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + } + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "optional": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-includes": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + } + }, + "array.prototype.flat": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + } + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true, + "optional": true + }, + "assert-never": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", + "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==", + "dev": true, + "optional": true + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "optional": true + }, + "autoprefixer": { + "version": "9.8.8", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", + "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", + "dev": true, + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "picocolors": "^0.2.1", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + } + } + }, + "babel-eslint": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", + "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz", + "integrity": "sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.0", + "semver": "^6.1.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz", + "integrity": "sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.0", + "core-js-compat": "^3.18.0" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz", + "integrity": "sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.0" + } + }, + "babel-walk": { + "version": "3.0.0-canary-5", + "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", + "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", + "dev": true, + "optional": true, + "requires": { + "@babel/types": "^7.9.6" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "optional": true + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "optional": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", + "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001280", + "electron-to-chromium": "^1.3.896", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "builtin-modules": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", + "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", + "dev": true + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001285", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001285.tgz", + "integrity": "sha512-KAOkuUtcQ901MtmvxfKD+ODHH9YVDYnBt+TGYSz2KIfnq22CiArbUxXPN9067gNbgMlnNYRSwho8OPXZPALB9Q==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", + "dev": true, + "optional": true, + "requires": { + "is-regex": "^1.0.3" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "clean-css": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", + "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "consolidate": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", + "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", + "dev": true, + "requires": { + "bluebird": "^3.1.1" + } + }, + "constantinople": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", + "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", + "dev": true, + "optional": true, + "requires": { + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.1" + } + }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "copy-anything": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.3.tgz", + "integrity": "sha512-GK6QUtisv4fNS+XcI7shX0Gx9ORg7QqIznyfho79JTnX1XhLiyZHfftvGiziqzRiEi/Bjhgpi+D2o7HxJFPnDQ==", + "dev": true, + "optional": true, + "requires": { + "is-what": "^3.12.0" + } + }, + "core-js-compat": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.19.3.tgz", + "integrity": "sha512-59tYzuWgEEVU9r+SRgceIGXSSUn47JknoiXW6Oq7RW8QHjXWz3/vp8pa7dbtuVu40sewz3OP3JmQEcDdztrLhA==", + "dev": true, + "requires": { + "browserslist": "^4.18.1", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.1" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "dev": true, + "optional": true, + "requires": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } + }, + "css-parse": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", + "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", + "dev": true, + "optional": true, + "requires": { + "css": "^2.0.0" + } + }, + "css-selector-tokenizer": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", + "dev": true + }, + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true, + "optional": true + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "doctypes": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", + "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=", + "dev": true, + "optional": true + }, + "dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "dependencies": { + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + } + } + }, + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "dev": true + }, + "domhandler": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", + "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "electron-to-chromium": { + "version": "1.4.12", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.12.tgz", + "integrity": "sha512-zjfhG9Us/hIy8AlQ5OzfbR/C4aBv1Dg/ak4GX35CELYlJ4tDAtoEcQivXvyBdqdNQ+R6PhlgQqV8UNPJmhkJog==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "dev": true + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "requires": { + "prr": "~1.0.1" + } + }, + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eslint": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.3", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "eslint-config-standard": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz", + "integrity": "sha512-Z9B+VR+JIXRxz21udPTL9HpFMyoMUEeX1G251EQ6e05WD9aPVtVBn09XUmZ259wCMlCDmYDSZG62Hhm+ZTJcUg==", + "dev": true + }, + "eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-module-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz", + "integrity": "sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "find-up": "^2.1.0", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-es": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", + "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", + "dev": true, + "requires": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, + "dependencies": { + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + } + } + }, + "eslint-plugin-html": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-html/-/eslint-plugin-html-6.2.0.tgz", + "integrity": "sha512-vi3NW0E8AJombTvt8beMwkL1R/fdRWl4QSNRNMhVQKWm36/X0KF0unGNAY4mqUF06mnwVWZcIcerrCnfn9025g==", + "dev": true, + "requires": { + "htmlparser2": "^7.1.2" + } + }, + "eslint-plugin-import": { + "version": "2.25.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz", + "integrity": "sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==", + "dev": true, + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.1", + "has": "^1.0.3", + "is-core-module": "^2.8.0", + "is-glob": "^4.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.5", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.11.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-plugin-node": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", + "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", + "dev": true, + "requires": { + "eslint-plugin-es": "^3.0.0", + "eslint-utils": "^2.0.0", + "ignore": "^5.1.1", + "minimatch": "^3.0.4", + "resolve": "^1.10.1", + "semver": "^6.1.0" + }, + "dependencies": { + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "ignore": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", + "dev": true + } + } + }, + "eslint-plugin-promise": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz", + "integrity": "sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ==", + "dev": true + }, + "eslint-plugin-standard": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz", + "integrity": "sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ==", + "dev": true + }, + "eslint-plugin-vue": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-6.2.2.tgz", + "integrity": "sha512-Nhc+oVAHm0uz/PkJAWscwIT4ijTrK5fqNqz9QB1D35SbbuMG1uB6Yr5AJpvPSWg+WOw7nYNswerYh0kOk64gqQ==", + "dev": true, + "requires": { + "natural-compare": "^1.4.0", + "semver": "^5.6.0", + "vue-eslint-parser": "^7.0.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + }, + "espree": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + } + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "generic-names": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-1.0.3.tgz", + "integrity": "sha1-LXhqEhruUIh2eWk56OO/+DbCCRc=", + "dev": true, + "requires": { + "loader-utils": "^0.2.16" + } + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "htmlparser2": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", + "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.2", + "domutils": "^2.8.0", + "entities": "^3.0.1" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true + }, + "immutable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", + "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", + "dev": true, + "optional": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true + }, + "is-core-module": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-expression": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", + "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", + "dev": true, + "optional": true, + "requires": { + "acorn": "^7.1.1", + "object-assign": "^4.1.1" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true + }, + "is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true, + "optional": true + }, + "is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "requires": { + "@types/estree": "*" + } + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0" + } + }, + "is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true, + "optional": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "jest-worker": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", + "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^6.1.0" + }, + "dependencies": { + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "js-base64": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", + "dev": true + }, + "js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=", + "dev": true, + "optional": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "jstransformer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", + "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", + "dev": true, + "optional": true, + "requires": { + "is-promise": "^2.0.0", + "promise": "^7.0.1" + } + }, + "less": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/less/-/less-3.13.1.tgz", + "integrity": "sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw==", + "dev": true, + "optional": true, + "requires": { + "copy-anything": "^2.0.1", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "native-request": "^1.0.5", + "source-map": "~0.6.0", + "tslib": "^1.10.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + }, + "dependencies": { + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + } + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "optional": true + } + } + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "native-request": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/native-request/-/native-request-1.1.0.tgz", + "integrity": "sha512-uZ5rQaeRn15XmpgE0xoPL8YWqcX90VtCFglYwAgkvKM5e8fog+vePLAhHxuuv/gRkrQxIeh5U3q9sMNUrENqWw==", + "dev": true, + "optional": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-releases": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "optional": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-inspect": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.1.tgz", + "integrity": "sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "os": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/os/-/os-0.1.2.tgz", + "integrity": "sha512-ZoXJkvAnljwvc56MbvhtKVWmSkzV712k42Is2mA0+0KTSRakq5XXuXpjZjgAt9ctzl51ojhQWakQQpmOvXWfjQ==", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "path": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", + "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", + "dev": true, + "requires": { + "process": "^0.11.1", + "util": "^0.10.3" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "postcss-modules-sync": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-sync/-/postcss-modules-sync-1.0.0.tgz", + "integrity": "sha1-YZpxnPeN0WpINBNRQLMkz3czS+E=", + "dev": true, + "requires": { + "generic-names": "^1.0.2", + "icss-replace-symbols": "^1.0.2", + "postcss": "^5.2.5", + "postcss-modules-local-by-default": "^1.1.1", + "postcss-modules-scope": "^1.0.2", + "string-hash": "^1.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-selector-parser": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", + "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "prettier": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", + "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", + "dev": true, + "optional": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "optional": true, + "requires": { + "asap": "~2.0.3" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true, + "optional": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "pug": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz", + "integrity": "sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==", + "dev": true, + "optional": true, + "requires": { + "pug-code-gen": "^3.0.2", + "pug-filters": "^4.0.0", + "pug-lexer": "^5.0.1", + "pug-linker": "^4.0.0", + "pug-load": "^3.0.0", + "pug-parser": "^6.0.0", + "pug-runtime": "^3.0.1", + "pug-strip-comments": "^2.0.0" + } + }, + "pug-attrs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz", + "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==", + "dev": true, + "optional": true, + "requires": { + "constantinople": "^4.0.1", + "js-stringify": "^1.0.2", + "pug-runtime": "^3.0.0" + } + }, + "pug-code-gen": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz", + "integrity": "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==", + "dev": true, + "optional": true, + "requires": { + "constantinople": "^4.0.1", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.2", + "pug-attrs": "^3.0.0", + "pug-error": "^2.0.0", + "pug-runtime": "^3.0.0", + "void-elements": "^3.1.0", + "with": "^7.0.0" + } + }, + "pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", + "dev": true, + "optional": true + }, + "pug-filters": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz", + "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==", + "dev": true, + "optional": true, + "requires": { + "constantinople": "^4.0.1", + "jstransformer": "1.0.0", + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0", + "resolve": "^1.15.1" + } + }, + "pug-lexer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", + "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==", + "dev": true, + "optional": true, + "requires": { + "character-parser": "^2.2.0", + "is-expression": "^4.0.0", + "pug-error": "^2.0.0" + } + }, + "pug-linker": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz", + "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==", + "dev": true, + "optional": true, + "requires": { + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0" + } + }, + "pug-load": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz", + "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==", + "dev": true, + "optional": true, + "requires": { + "object-assign": "^4.1.1", + "pug-walk": "^2.0.0" + } + }, + "pug-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", + "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", + "dev": true, + "optional": true, + "requires": { + "pug-error": "^2.0.0", + "token-stream": "1.0.0" + } + }, + "pug-runtime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz", + "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==", + "dev": true, + "optional": true + }, + "pug-strip-comments": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz", + "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==", + "dev": true, + "optional": true, + "requires": { + "pug-error": "^2.0.0" + } + }, + "pug-walk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", + "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==", + "dev": true, + "optional": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "querystring": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", + "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "optional": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz", + "integrity": "sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true + }, + "regexpu-core": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz", + "integrity": "sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==", + "dev": true, + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^9.0.0", + "regjsgen": "^0.5.2", + "regjsparser": "^0.7.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "regjsparser": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz", + "integrity": "sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true, + "optional": true + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "rollup": { + "version": "2.60.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.60.2.tgz", + "integrity": "sha512-1Bgjpq61sPjgoZzuiDSGvbI1tD91giZABgjCQBKM5aYLnzjq52GoDuWVwT/cm/MCxCMPU8gqQvkj8doQ5C8Oqw==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "rollup-plugin-babel": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-4.4.0.tgz", + "integrity": "sha512-Lek/TYp1+7g7I+uMfJnnSJ7YWoD58ajo6Oarhlex7lvUce+RCKRuGRSgztDO3/MF/PuGKmUL5iTHKf208UNszw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "rollup-pluginutils": "^2.8.1" + } + }, + "rollup-plugin-css-only": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-css-only/-/rollup-plugin-css-only-2.1.0.tgz", + "integrity": "sha512-pfdcqAWEmRMFy+ABXAQPA/DKyPqLuBTOf+lWSOgtrVs1v/q7DSXzYa9QZg4myd8/1F7NHcdvPkWnfWqMxq9vrw==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.0", + "fs-extra": "^9.0.0" + } + }, + "rollup-plugin-css-porter": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-css-porter/-/rollup-plugin-css-porter-1.0.2.tgz", + "integrity": "sha512-efZ+uYsxUFDXwtbjw1sjiL6g1ymZVuLzteew62rmHxS46UWma2eDcK8k8n8c2MuyP2ulxjOM4YNX9X9Z0BYmAg==", + "dev": true, + "requires": { + "clean-css": "^4.2.1", + "fs-extra": "^7.0.1", + "os": "^0.1.1", + "path": "^0.12.7", + "rollup-pluginutils": "^2.4.1" + }, + "dependencies": { + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + } + } + }, + "rollup-plugin-eslint": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-eslint/-/rollup-plugin-eslint-7.0.0.tgz", + "integrity": "sha512-u35kXiY11ULeNQGTlRkYx7uGJ/hS/Dx3wj8f9YVC3oMLTGU9fOqQJsAKYtBFZU3gJ8Vt3gu8ppB1vnKl+7gatQ==", + "dev": true, + "requires": { + "eslint": "^6.0.0", + "rollup-pluginutils": "^2.7.1" + } + }, + "rollup-plugin-terser": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-5.3.1.tgz", + "integrity": "sha512-1pkwkervMJQGFYvM9nscrUoncPwiKR/K+bHdjv6PFgRo3cgPHoRT83y2Aa3GvINj4539S15t/tpFPb775TDs6w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "jest-worker": "^24.9.0", + "rollup-pluginutils": "^2.8.2", + "serialize-javascript": "^4.0.0", + "terser": "^4.6.2" + } + }, + "rollup-plugin-vue": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/rollup-plugin-vue/-/rollup-plugin-vue-5.1.9.tgz", + "integrity": "sha512-DXzrBUD2j68Y6nls4MmuJsFL1SrQDpdgjxvhk/oy04LzJmXJoX1x31yLEBFkkmvpbon6Q885WJLvEMiMyT+3rA==", + "dev": true, + "requires": { + "@vue/component-compiler": "^4.2.3", + "@vue/component-compiler-utils": "^3.1.2", + "debug": "^4.1.1", + "hash-sum": "^1.0.2", + "magic-string": "^0.25.7", + "querystring": "^0.2.0", + "rollup-pluginutils": "^2.8.2", + "source-map": "0.7.3", + "vue-runtime-helpers": "^1.1.2" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "requires": { + "estree-walker": "^0.6.1" + }, + "dependencies": { + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + } + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.44.0.tgz", + "integrity": "sha512-0hLREbHFXGQqls/K8X+koeP+ogFRPF4ZqetVB19b7Cst9Er8cOR0rc6RU7MaI4W1JmUShd1BPgPoeqmmgMMYFw==", + "dev": true, + "optional": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true, + "optional": true + }, + "scrollparent": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/scrollparent/-/scrollparent-2.0.1.tgz", + "integrity": "sha1-cV1bnMV3YPsivczDvvtb/gaxoxc=" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", + "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", + "dev": true + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "optional": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true, + "optional": true + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + } + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "stylus": { + "version": "0.54.8", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz", + "integrity": "sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==", + "dev": true, + "optional": true, + "requires": { + "css-parse": "~2.0.0", + "debug": "~3.1.0", + "glob": "^7.1.6", + "mkdirp": "~1.0.4", + "safer-buffer": "^2.1.2", + "sax": "~1.2.4", + "semver": "^6.3.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "optional": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true, + "optional": true + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true, + "optional": true + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "token-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", + "integrity": "sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=", + "dev": true, + "optional": true + }, + "tsconfig-paths": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", + "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "dev": true + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true, + "optional": true + }, + "util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=", + "dev": true, + "optional": true + }, + "vue": { + "version": "2.6.14", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.14.tgz", + "integrity": "sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ==", + "dev": true + }, + "vue-eslint-parser": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz", + "integrity": "sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "eslint-scope": "^5.1.1", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.2.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^6.3.0" + } + }, + "vue-observe-visibility": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vue-observe-visibility/-/vue-observe-visibility-0.4.6.tgz", + "integrity": "sha512-xo0CEVdkjSjhJoDdLSvoZoQrw/H2BlzB5jrCBKGZNXN2zdZgMuZ9BKrxXDjNP2AxlcCoKc8OahI3F3r3JGLv2Q==" + }, + "vue-resize": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/vue-resize/-/vue-resize-0.4.5.tgz", + "integrity": "sha512-bhP7MlgJQ8TIkZJXAfDf78uJO+mEI3CaLABLjv0WNzr4CcGRGPIAItyWYnP6LsPA4Oq0WE+suidNs6dgpO4RHg==" + }, + "vue-runtime-helpers": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vue-runtime-helpers/-/vue-runtime-helpers-1.1.2.tgz", + "integrity": "sha512-pZfGp+PW/IXEOyETE09xQHR1CKkR9HfHZdnMD/FVLUNI+HxYTa82evx5WrF6Kz4s82qtqHvMZ8MZpbk2zT2E1Q==", + "dev": true + }, + "vue-template-compiler": { + "version": "2.6.14", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz", + "integrity": "sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g==", + "dev": true, + "requires": { + "de-indent": "^1.0.2", + "he": "^1.1.0" + } + }, + "vue-template-es2015-compiler": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", + "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "with": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", + "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", + "dev": true, + "optional": true, + "requires": { + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "assert-never": "^1.2.1", + "babel-walk": "3.0.0-canary-5" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } +} diff --git a/package.json b/package.json index aabf3ca5..eddc2b53 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@startinfinity/vue-virtual-scroller", "description": "Smooth scrolling for any amount of data", - "version": "1.2.3", + "version": "1.2.4", "author": { "name": "Guillaume Chau", "email": "guillaume.b.chau@gmail.com"