@tanstack/vue-virtual 3.0.0-beta.65 → 3.0.0-beta.68

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -30,9 +30,9 @@ function useVirtualizerBase(options) {
30
30
  return unref(options);
31
31
  }, function (options) {
32
32
  virtualizer.setOptions(_extends({}, options, {
33
- onChange: function onChange(instance) {
33
+ onChange: function onChange(instance, sync) {
34
34
  triggerRef(state);
35
- options.onChange == null ? void 0 : options.onChange(instance);
35
+ options.onChange == null ? void 0 : options.onChange(instance, sync);
36
36
  }
37
37
  }));
38
38
  virtualizer._willUpdate();
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../src/index.ts"],"sourcesContent":["import {\n elementScroll,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n PartialKeys,\n Virtualizer,\n VirtualizerOptions,\n windowScroll,\n} from '@tanstack/virtual-core'\nimport {\n computed,\n onScopeDispose,\n Ref,\n shallowRef,\n triggerRef,\n unref,\n watch,\n} from 'vue'\nexport * from '@tanstack/virtual-core'\n\ntype MaybeRef<T> = T | Ref<T>\n\nfunction useVirtualizerBase<\n TScrollElement extends Element | Window,\n TItemElement extends Element,\n>(\n options: MaybeRef<VirtualizerOptions<TScrollElement, TItemElement>>,\n): Ref<Virtualizer<TScrollElement, TItemElement>> {\n const virtualizer = new Virtualizer(unref(options))\n const state = shallowRef(virtualizer)\n\n const cleanup = virtualizer._didMount()\n\n watch(\n () => unref(options).getScrollElement(),\n (el) => {\n if (el) {\n virtualizer._willUpdate()\n }\n },\n {\n immediate: true,\n },\n )\n\n watch(\n () => unref(options),\n (options) => {\n virtualizer.setOptions({\n ...options,\n onChange: (instance) => {\n triggerRef(state)\n options.onChange?.(instance)\n },\n })\n\n virtualizer._willUpdate()\n triggerRef(state)\n },\n {\n immediate: true,\n },\n )\n\n onScopeDispose(cleanup)\n\n return state\n}\n\nexport function useVirtualizer<\n TScrollElement extends Element,\n TItemElement extends Element,\n>(\n options: MaybeRef<\n PartialKeys<\n VirtualizerOptions<TScrollElement, TItemElement>,\n 'observeElementRect' | 'observeElementOffset' | 'scrollToFn'\n >\n >,\n): Ref<Virtualizer<TScrollElement, TItemElement>> {\n return useVirtualizerBase<TScrollElement, TItemElement>(\n computed(() => ({\n observeElementRect: observeElementRect,\n observeElementOffset: observeElementOffset,\n scrollToFn: elementScroll,\n ...unref(options),\n })),\n )\n}\n\nexport function useWindowVirtualizer<TItemElement extends Element>(\n options: MaybeRef<\n PartialKeys<\n VirtualizerOptions<Window, TItemElement>,\n | 'observeElementRect'\n | 'observeElementOffset'\n | 'scrollToFn'\n | 'getScrollElement'\n >\n >,\n): Ref<Virtualizer<Window, TItemElement>> {\n return useVirtualizerBase<Window, TItemElement>(\n computed(() => ({\n getScrollElement: () => (typeof document !== 'undefined' ? window : null),\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n initialOffset:\n typeof document !== 'undefined' ? window.scrollY : undefined,\n ...unref(options),\n })),\n )\n}\n"],"names":["useVirtualizerBase","options","virtualizer","Virtualizer","unref","state","shallowRef","cleanup","_didMount","watch","getScrollElement","el","_willUpdate","immediate","setOptions","onChange","instance","triggerRef","onScopeDispose","useVirtualizer","computed","observeElementRect","observeElementOffset","scrollToFn","elementScroll","useWindowVirtualizer","document","window","observeWindowRect","observeWindowOffset","windowScroll","initialOffset","scrollY","undefined"],"mappings":";;;;;;;;;;;;;;;AAwBA,SAASA,kBAAkB,CAIzBC,OAAmE,EACnB;EAChD,IAAMC,WAAW,GAAG,IAAIC,WAAW,CAACC,KAAK,CAACH,OAAO,CAAC,CAAC,CAAA;AACnD,EAAA,IAAMI,KAAK,GAAGC,UAAU,CAACJ,WAAW,CAAC,CAAA;AAErC,EAAA,IAAMK,OAAO,GAAGL,WAAW,CAACM,SAAS,EAAE,CAAA;AAEvCC,EAAAA,KAAK,CACH,YAAA;AAAA,IAAA,OAAML,KAAK,CAACH,OAAO,CAAC,CAACS,gBAAgB,EAAE,CAAA;GACvC,EAAA,UAACC,EAAE,EAAK;AACN,IAAA,IAAIA,EAAE,EAAE;MACNT,WAAW,CAACU,WAAW,EAAE,CAAA;AAC3B,KAAA;AACF,GAAC,EACD;AACEC,IAAAA,SAAS,EAAE,IAAA;AACb,GAAC,CACF,CAAA;AAEDJ,EAAAA,KAAK,CACH,YAAA;IAAA,OAAML,KAAK,CAACH,OAAO,CAAC,CAAA;GACpB,EAAA,UAACA,OAAO,EAAK;IACXC,WAAW,CAACY,UAAU,CAAA,QAAA,CAAA,EAAA,EACjBb,OAAO,EAAA;MACVc,QAAQ,EAAE,SAACC,QAAAA,CAAAA,QAAQ,EAAK;QACtBC,UAAU,CAACZ,KAAK,CAAC,CAAA;QACjBJ,OAAO,CAACc,QAAQ,IAAhBd,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAACc,QAAQ,CAAGC,QAAQ,CAAC,CAAA;AAC9B,OAAA;KACA,CAAA,CAAA,CAAA;IAEFd,WAAW,CAACU,WAAW,EAAE,CAAA;IACzBK,UAAU,CAACZ,KAAK,CAAC,CAAA;AACnB,GAAC,EACD;AACEQ,IAAAA,SAAS,EAAE,IAAA;AACb,GAAC,CACF,CAAA;EAEDK,cAAc,CAACX,OAAO,CAAC,CAAA;AAEvB,EAAA,OAAOF,KAAK,CAAA;AACd,CAAA;AAEO,SAASc,cAAc,CAI5BlB,OAKC,EAC+C;EAChD,OAAOD,kBAAkB,CACvBoB,QAAQ,CAAC,YAAA;AAAA,IAAA,OAAA,QAAA,CAAA;AACPC,MAAAA,kBAAkB,EAAEA,kBAAkB;AACtCC,MAAAA,oBAAoB,EAAEA,oBAAoB;AAC1CC,MAAAA,UAAU,EAAEC,aAAAA;KACTpB,EAAAA,KAAK,CAACH,OAAO,CAAC,CAAA,CAAA;AAAA,GACjB,CAAC,CACJ,CAAA;AACH,CAAA;AAEO,SAASwB,oBAAoB,CAClCxB,OAQC,EACuC;EACxC,OAAOD,kBAAkB,CACvBoB,QAAQ,CAAC,YAAA;AAAA,IAAA,OAAA,QAAA,CAAA;AACPV,MAAAA,gBAAgB,EAAE,SAAA,gBAAA,GAAA;AAAA,QAAA,OAAO,OAAOgB,QAAQ,KAAK,WAAW,GAAGC,MAAM,GAAG,IAAI,CAAA;OAAC;AACzEN,MAAAA,kBAAkB,EAAEO,iBAAiB;AACrCN,MAAAA,oBAAoB,EAAEO,mBAAmB;AACzCN,MAAAA,UAAU,EAAEO,YAAY;MACxBC,aAAa,EACX,OAAOL,QAAQ,KAAK,WAAW,GAAGC,MAAM,CAACK,OAAO,GAAGC,SAAAA;KAClD7B,EAAAA,KAAK,CAACH,OAAO,CAAC,CAAA,CAAA;AAAA,GACjB,CAAC,CACJ,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../src/index.ts"],"sourcesContent":["import {\n elementScroll,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n PartialKeys,\n Virtualizer,\n VirtualizerOptions,\n windowScroll,\n} from '@tanstack/virtual-core'\nimport {\n computed,\n onScopeDispose,\n Ref,\n shallowRef,\n triggerRef,\n unref,\n watch,\n} from 'vue'\nexport * from '@tanstack/virtual-core'\n\ntype MaybeRef<T> = T | Ref<T>\n\nfunction useVirtualizerBase<\n TScrollElement extends Element | Window,\n TItemElement extends Element,\n>(\n options: MaybeRef<VirtualizerOptions<TScrollElement, TItemElement>>,\n): Ref<Virtualizer<TScrollElement, TItemElement>> {\n const virtualizer = new Virtualizer(unref(options))\n const state = shallowRef(virtualizer)\n\n const cleanup = virtualizer._didMount()\n\n watch(\n () => unref(options).getScrollElement(),\n (el) => {\n if (el) {\n virtualizer._willUpdate()\n }\n },\n {\n immediate: true,\n },\n )\n\n watch(\n () => unref(options),\n (options) => {\n virtualizer.setOptions({\n ...options,\n onChange: (instance, sync) => {\n triggerRef(state)\n options.onChange?.(instance, sync)\n },\n })\n\n virtualizer._willUpdate()\n triggerRef(state)\n },\n {\n immediate: true,\n },\n )\n\n onScopeDispose(cleanup)\n\n return state\n}\n\nexport function useVirtualizer<\n TScrollElement extends Element,\n TItemElement extends Element,\n>(\n options: MaybeRef<\n PartialKeys<\n VirtualizerOptions<TScrollElement, TItemElement>,\n 'observeElementRect' | 'observeElementOffset' | 'scrollToFn'\n >\n >,\n): Ref<Virtualizer<TScrollElement, TItemElement>> {\n return useVirtualizerBase<TScrollElement, TItemElement>(\n computed(() => ({\n observeElementRect: observeElementRect,\n observeElementOffset: observeElementOffset,\n scrollToFn: elementScroll,\n ...unref(options),\n })),\n )\n}\n\nexport function useWindowVirtualizer<TItemElement extends Element>(\n options: MaybeRef<\n PartialKeys<\n VirtualizerOptions<Window, TItemElement>,\n | 'observeElementRect'\n | 'observeElementOffset'\n | 'scrollToFn'\n | 'getScrollElement'\n >\n >,\n): Ref<Virtualizer<Window, TItemElement>> {\n return useVirtualizerBase<Window, TItemElement>(\n computed(() => ({\n getScrollElement: () => (typeof document !== 'undefined' ? window : null),\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n initialOffset:\n typeof document !== 'undefined' ? window.scrollY : undefined,\n ...unref(options),\n })),\n )\n}\n"],"names":["useVirtualizerBase","options","virtualizer","Virtualizer","unref","state","shallowRef","cleanup","_didMount","watch","getScrollElement","el","_willUpdate","immediate","setOptions","_extends","onChange","instance","sync","triggerRef","onScopeDispose","useVirtualizer","computed","observeElementRect","observeElementOffset","scrollToFn","elementScroll","useWindowVirtualizer","document","window","observeWindowRect","observeWindowOffset","windowScroll","initialOffset","scrollY","undefined"],"mappings":";;;;;;;;;;;;;;;AAwBA,SAASA,kBAAkBA,CAIzBC,OAAmE,EACnB;EAChD,IAAMC,WAAW,GAAG,IAAIC,WAAW,CAACC,KAAK,CAACH,OAAO,CAAC,CAAC,CAAA;AACnD,EAAA,IAAMI,KAAK,GAAGC,UAAU,CAACJ,WAAW,CAAC,CAAA;AAErC,EAAA,IAAMK,OAAO,GAAGL,WAAW,CAACM,SAAS,EAAE,CAAA;AAEvCC,EAAAA,KAAK,CACH,YAAA;AAAA,IAAA,OAAML,KAAK,CAACH,OAAO,CAAC,CAACS,gBAAgB,EAAE,CAAA;GACvC,EAAA,UAACC,EAAE,EAAK;AACN,IAAA,IAAIA,EAAE,EAAE;MACNT,WAAW,CAACU,WAAW,EAAE,CAAA;AAC3B,KAAA;AACF,GAAC,EACD;AACEC,IAAAA,SAAS,EAAE,IAAA;AACb,GACF,CAAC,CAAA;AAEDJ,EAAAA,KAAK,CACH,YAAA;IAAA,OAAML,KAAK,CAACH,OAAO,CAAC,CAAA;GACpB,EAAA,UAACA,OAAO,EAAK;AACXC,IAAAA,WAAW,CAACY,UAAU,CAAAC,QAAA,KACjBd,OAAO,EAAA;AACVe,MAAAA,QAAQ,EAAE,SAAAA,QAAAA,CAACC,QAAQ,EAAEC,IAAI,EAAK;QAC5BC,UAAU,CAACd,KAAK,CAAC,CAAA;QACjBJ,OAAO,CAACe,QAAQ,IAAA,IAAA,GAAA,KAAA,CAAA,GAAhBf,OAAO,CAACe,QAAQ,CAAGC,QAAQ,EAAEC,IAAI,CAAC,CAAA;AACpC,OAAA;AAAC,KAAA,CACF,CAAC,CAAA;IAEFhB,WAAW,CAACU,WAAW,EAAE,CAAA;IACzBO,UAAU,CAACd,KAAK,CAAC,CAAA;AACnB,GAAC,EACD;AACEQ,IAAAA,SAAS,EAAE,IAAA;AACb,GACF,CAAC,CAAA;EAEDO,cAAc,CAACb,OAAO,CAAC,CAAA;AAEvB,EAAA,OAAOF,KAAK,CAAA;AACd,CAAA;AAEO,SAASgB,cAAcA,CAI5BpB,OAKC,EAC+C;EAChD,OAAOD,kBAAkB,CACvBsB,QAAQ,CAAC,YAAA;AAAA,IAAA,OAAAP,QAAA,CAAA;AACPQ,MAAAA,kBAAkB,EAAEA,kBAAkB;AACtCC,MAAAA,oBAAoB,EAAEA,oBAAoB;AAC1CC,MAAAA,UAAU,EAAEC,aAAAA;KACTtB,EAAAA,KAAK,CAACH,OAAO,CAAC,CAAA,CAAA;AAAA,GACjB,CACJ,CAAC,CAAA;AACH,CAAA;AAEO,SAAS0B,oBAAoBA,CAClC1B,OAQC,EACuC;EACxC,OAAOD,kBAAkB,CACvBsB,QAAQ,CAAC,YAAA;AAAA,IAAA,OAAAP,QAAA,CAAA;MACPL,gBAAgB,EAAE,SAAAA,gBAAA,GAAA;AAAA,QAAA,OAAO,OAAOkB,QAAQ,KAAK,WAAW,GAAGC,MAAM,GAAG,IAAI,CAAA;OAAC;AACzEN,MAAAA,kBAAkB,EAAEO,iBAAiB;AACrCN,MAAAA,oBAAoB,EAAEO,mBAAmB;AACzCN,MAAAA,UAAU,EAAEO,YAAY;MACxBC,aAAa,EACX,OAAOL,QAAQ,KAAK,WAAW,GAAGC,MAAM,CAACK,OAAO,GAAGC,SAAAA;KAClD/B,EAAAA,KAAK,CAACH,OAAO,CAAC,CAAA,CAAA;AAAA,GACjB,CACJ,CAAC,CAAA;AACH;;;;"}
@@ -33,9 +33,9 @@ function useVirtualizerBase(options) {
33
33
  return vue.unref(options);
34
34
  }, function (options) {
35
35
  virtualizer.setOptions(_rollupPluginBabelHelpers["extends"]({}, options, {
36
- onChange: function onChange(instance) {
36
+ onChange: function onChange(instance, sync) {
37
37
  vue.triggerRef(state);
38
- options.onChange == null ? void 0 : options.onChange(instance);
38
+ options.onChange == null ? void 0 : options.onChange(instance, sync);
39
39
  }
40
40
  }));
41
41
  virtualizer._willUpdate();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["import {\n elementScroll,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n PartialKeys,\n Virtualizer,\n VirtualizerOptions,\n windowScroll,\n} from '@tanstack/virtual-core'\nimport {\n computed,\n onScopeDispose,\n Ref,\n shallowRef,\n triggerRef,\n unref,\n watch,\n} from 'vue'\nexport * from '@tanstack/virtual-core'\n\ntype MaybeRef<T> = T | Ref<T>\n\nfunction useVirtualizerBase<\n TScrollElement extends Element | Window,\n TItemElement extends Element,\n>(\n options: MaybeRef<VirtualizerOptions<TScrollElement, TItemElement>>,\n): Ref<Virtualizer<TScrollElement, TItemElement>> {\n const virtualizer = new Virtualizer(unref(options))\n const state = shallowRef(virtualizer)\n\n const cleanup = virtualizer._didMount()\n\n watch(\n () => unref(options).getScrollElement(),\n (el) => {\n if (el) {\n virtualizer._willUpdate()\n }\n },\n {\n immediate: true,\n },\n )\n\n watch(\n () => unref(options),\n (options) => {\n virtualizer.setOptions({\n ...options,\n onChange: (instance) => {\n triggerRef(state)\n options.onChange?.(instance)\n },\n })\n\n virtualizer._willUpdate()\n triggerRef(state)\n },\n {\n immediate: true,\n },\n )\n\n onScopeDispose(cleanup)\n\n return state\n}\n\nexport function useVirtualizer<\n TScrollElement extends Element,\n TItemElement extends Element,\n>(\n options: MaybeRef<\n PartialKeys<\n VirtualizerOptions<TScrollElement, TItemElement>,\n 'observeElementRect' | 'observeElementOffset' | 'scrollToFn'\n >\n >,\n): Ref<Virtualizer<TScrollElement, TItemElement>> {\n return useVirtualizerBase<TScrollElement, TItemElement>(\n computed(() => ({\n observeElementRect: observeElementRect,\n observeElementOffset: observeElementOffset,\n scrollToFn: elementScroll,\n ...unref(options),\n })),\n )\n}\n\nexport function useWindowVirtualizer<TItemElement extends Element>(\n options: MaybeRef<\n PartialKeys<\n VirtualizerOptions<Window, TItemElement>,\n | 'observeElementRect'\n | 'observeElementOffset'\n | 'scrollToFn'\n | 'getScrollElement'\n >\n >,\n): Ref<Virtualizer<Window, TItemElement>> {\n return useVirtualizerBase<Window, TItemElement>(\n computed(() => ({\n getScrollElement: () => (typeof document !== 'undefined' ? window : null),\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n initialOffset:\n typeof document !== 'undefined' ? window.scrollY : undefined,\n ...unref(options),\n })),\n )\n}\n"],"names":["useVirtualizerBase","options","virtualizer","Virtualizer","unref","state","shallowRef","cleanup","_didMount","watch","getScrollElement","el","_willUpdate","immediate","setOptions","_extends","onChange","instance","triggerRef","onScopeDispose","useVirtualizer","computed","observeElementRect","observeElementOffset","scrollToFn","elementScroll","useWindowVirtualizer","document","window","observeWindowRect","observeWindowOffset","windowScroll","initialOffset","scrollY","undefined"],"mappings":";;;;;;;;;;;;;;;;;;AAwBA,SAASA,kBAAkB,CAIzBC,OAAmE,EACnB;EAChD,IAAMC,WAAW,GAAG,IAAIC,uBAAW,CAACC,SAAK,CAACH,OAAO,CAAC,CAAC,CAAA;AACnD,EAAA,IAAMI,KAAK,GAAGC,cAAU,CAACJ,WAAW,CAAC,CAAA;AAErC,EAAA,IAAMK,OAAO,GAAGL,WAAW,CAACM,SAAS,EAAE,CAAA;AAEvCC,EAAAA,SAAK,CACH,YAAA;AAAA,IAAA,OAAML,SAAK,CAACH,OAAO,CAAC,CAACS,gBAAgB,EAAE,CAAA;GACvC,EAAA,UAACC,EAAE,EAAK;AACN,IAAA,IAAIA,EAAE,EAAE;MACNT,WAAW,CAACU,WAAW,EAAE,CAAA;AAC3B,KAAA;AACF,GAAC,EACD;AACEC,IAAAA,SAAS,EAAE,IAAA;AACb,GAAC,CACF,CAAA;AAEDJ,EAAAA,SAAK,CACH,YAAA;IAAA,OAAML,SAAK,CAACH,OAAO,CAAC,CAAA;GACpB,EAAA,UAACA,OAAO,EAAK;IACXC,WAAW,CAACY,UAAU,CAAAC,oCAAA,CAAA,EAAA,EACjBd,OAAO,EAAA;MACVe,QAAQ,EAAE,SAACC,QAAAA,CAAAA,QAAQ,EAAK;QACtBC,cAAU,CAACb,KAAK,CAAC,CAAA;QACjBJ,OAAO,CAACe,QAAQ,IAAhBf,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAACe,QAAQ,CAAGC,QAAQ,CAAC,CAAA;AAC9B,OAAA;KACA,CAAA,CAAA,CAAA;IAEFf,WAAW,CAACU,WAAW,EAAE,CAAA;IACzBM,cAAU,CAACb,KAAK,CAAC,CAAA;AACnB,GAAC,EACD;AACEQ,IAAAA,SAAS,EAAE,IAAA;AACb,GAAC,CACF,CAAA;EAEDM,kBAAc,CAACZ,OAAO,CAAC,CAAA;AAEvB,EAAA,OAAOF,KAAK,CAAA;AACd,CAAA;AAEO,SAASe,cAAc,CAI5BnB,OAKC,EAC+C;EAChD,OAAOD,kBAAkB,CACvBqB,YAAQ,CAAC,YAAA;AAAA,IAAA,OAAAN,oCAAA,CAAA;AACPO,MAAAA,kBAAkB,EAAEA,8BAAkB;AACtCC,MAAAA,oBAAoB,EAAEA,gCAAoB;AAC1CC,MAAAA,UAAU,EAAEC,yBAAAA;KACTrB,EAAAA,SAAK,CAACH,OAAO,CAAC,CAAA,CAAA;AAAA,GACjB,CAAC,CACJ,CAAA;AACH,CAAA;AAEO,SAASyB,oBAAoB,CAClCzB,OAQC,EACuC;EACxC,OAAOD,kBAAkB,CACvBqB,YAAQ,CAAC,YAAA;AAAA,IAAA,OAAAN,oCAAA,CAAA;AACPL,MAAAA,gBAAgB,EAAE,SAAA,gBAAA,GAAA;AAAA,QAAA,OAAO,OAAOiB,QAAQ,KAAK,WAAW,GAAGC,MAAM,GAAG,IAAI,CAAA;OAAC;AACzEN,MAAAA,kBAAkB,EAAEO,6BAAiB;AACrCN,MAAAA,oBAAoB,EAAEO,+BAAmB;AACzCN,MAAAA,UAAU,EAAEO,wBAAY;MACxBC,aAAa,EACX,OAAOL,QAAQ,KAAK,WAAW,GAAGC,MAAM,CAACK,OAAO,GAAGC,SAAAA;KAClD9B,EAAAA,SAAK,CAACH,OAAO,CAAC,CAAA,CAAA;AAAA,GACjB,CAAC,CACJ,CAAA;AACH;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["import {\n elementScroll,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n PartialKeys,\n Virtualizer,\n VirtualizerOptions,\n windowScroll,\n} from '@tanstack/virtual-core'\nimport {\n computed,\n onScopeDispose,\n Ref,\n shallowRef,\n triggerRef,\n unref,\n watch,\n} from 'vue'\nexport * from '@tanstack/virtual-core'\n\ntype MaybeRef<T> = T | Ref<T>\n\nfunction useVirtualizerBase<\n TScrollElement extends Element | Window,\n TItemElement extends Element,\n>(\n options: MaybeRef<VirtualizerOptions<TScrollElement, TItemElement>>,\n): Ref<Virtualizer<TScrollElement, TItemElement>> {\n const virtualizer = new Virtualizer(unref(options))\n const state = shallowRef(virtualizer)\n\n const cleanup = virtualizer._didMount()\n\n watch(\n () => unref(options).getScrollElement(),\n (el) => {\n if (el) {\n virtualizer._willUpdate()\n }\n },\n {\n immediate: true,\n },\n )\n\n watch(\n () => unref(options),\n (options) => {\n virtualizer.setOptions({\n ...options,\n onChange: (instance, sync) => {\n triggerRef(state)\n options.onChange?.(instance, sync)\n },\n })\n\n virtualizer._willUpdate()\n triggerRef(state)\n },\n {\n immediate: true,\n },\n )\n\n onScopeDispose(cleanup)\n\n return state\n}\n\nexport function useVirtualizer<\n TScrollElement extends Element,\n TItemElement extends Element,\n>(\n options: MaybeRef<\n PartialKeys<\n VirtualizerOptions<TScrollElement, TItemElement>,\n 'observeElementRect' | 'observeElementOffset' | 'scrollToFn'\n >\n >,\n): Ref<Virtualizer<TScrollElement, TItemElement>> {\n return useVirtualizerBase<TScrollElement, TItemElement>(\n computed(() => ({\n observeElementRect: observeElementRect,\n observeElementOffset: observeElementOffset,\n scrollToFn: elementScroll,\n ...unref(options),\n })),\n )\n}\n\nexport function useWindowVirtualizer<TItemElement extends Element>(\n options: MaybeRef<\n PartialKeys<\n VirtualizerOptions<Window, TItemElement>,\n | 'observeElementRect'\n | 'observeElementOffset'\n | 'scrollToFn'\n | 'getScrollElement'\n >\n >,\n): Ref<Virtualizer<Window, TItemElement>> {\n return useVirtualizerBase<Window, TItemElement>(\n computed(() => ({\n getScrollElement: () => (typeof document !== 'undefined' ? window : null),\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n initialOffset:\n typeof document !== 'undefined' ? window.scrollY : undefined,\n ...unref(options),\n })),\n )\n}\n"],"names":["useVirtualizerBase","options","virtualizer","Virtualizer","unref","state","shallowRef","cleanup","_didMount","watch","getScrollElement","el","_willUpdate","immediate","setOptions","_extends","onChange","instance","sync","triggerRef","onScopeDispose","useVirtualizer","computed","observeElementRect","observeElementOffset","scrollToFn","elementScroll","useWindowVirtualizer","document","window","observeWindowRect","observeWindowOffset","windowScroll","initialOffset","scrollY","undefined"],"mappings":";;;;;;;;;;;;;;;;;;AAwBA,SAASA,kBAAkBA,CAIzBC,OAAmE,EACnB;EAChD,IAAMC,WAAW,GAAG,IAAIC,uBAAW,CAACC,SAAK,CAACH,OAAO,CAAC,CAAC,CAAA;AACnD,EAAA,IAAMI,KAAK,GAAGC,cAAU,CAACJ,WAAW,CAAC,CAAA;AAErC,EAAA,IAAMK,OAAO,GAAGL,WAAW,CAACM,SAAS,EAAE,CAAA;AAEvCC,EAAAA,SAAK,CACH,YAAA;AAAA,IAAA,OAAML,SAAK,CAACH,OAAO,CAAC,CAACS,gBAAgB,EAAE,CAAA;GACvC,EAAA,UAACC,EAAE,EAAK;AACN,IAAA,IAAIA,EAAE,EAAE;MACNT,WAAW,CAACU,WAAW,EAAE,CAAA;AAC3B,KAAA;AACF,GAAC,EACD;AACEC,IAAAA,SAAS,EAAE,IAAA;AACb,GACF,CAAC,CAAA;AAEDJ,EAAAA,SAAK,CACH,YAAA;IAAA,OAAML,SAAK,CAACH,OAAO,CAAC,CAAA;GACpB,EAAA,UAACA,OAAO,EAAK;AACXC,IAAAA,WAAW,CAACY,UAAU,CAAAC,oCAAA,KACjBd,OAAO,EAAA;AACVe,MAAAA,QAAQ,EAAE,SAAAA,QAAAA,CAACC,QAAQ,EAAEC,IAAI,EAAK;QAC5BC,cAAU,CAACd,KAAK,CAAC,CAAA;QACjBJ,OAAO,CAACe,QAAQ,IAAA,IAAA,GAAA,KAAA,CAAA,GAAhBf,OAAO,CAACe,QAAQ,CAAGC,QAAQ,EAAEC,IAAI,CAAC,CAAA;AACpC,OAAA;AAAC,KAAA,CACF,CAAC,CAAA;IAEFhB,WAAW,CAACU,WAAW,EAAE,CAAA;IACzBO,cAAU,CAACd,KAAK,CAAC,CAAA;AACnB,GAAC,EACD;AACEQ,IAAAA,SAAS,EAAE,IAAA;AACb,GACF,CAAC,CAAA;EAEDO,kBAAc,CAACb,OAAO,CAAC,CAAA;AAEvB,EAAA,OAAOF,KAAK,CAAA;AACd,CAAA;AAEO,SAASgB,cAAcA,CAI5BpB,OAKC,EAC+C;EAChD,OAAOD,kBAAkB,CACvBsB,YAAQ,CAAC,YAAA;AAAA,IAAA,OAAAP,oCAAA,CAAA;AACPQ,MAAAA,kBAAkB,EAAEA,8BAAkB;AACtCC,MAAAA,oBAAoB,EAAEA,gCAAoB;AAC1CC,MAAAA,UAAU,EAAEC,yBAAAA;KACTtB,EAAAA,SAAK,CAACH,OAAO,CAAC,CAAA,CAAA;AAAA,GACjB,CACJ,CAAC,CAAA;AACH,CAAA;AAEO,SAAS0B,oBAAoBA,CAClC1B,OAQC,EACuC;EACxC,OAAOD,kBAAkB,CACvBsB,YAAQ,CAAC,YAAA;AAAA,IAAA,OAAAP,oCAAA,CAAA;MACPL,gBAAgB,EAAE,SAAAA,gBAAA,GAAA;AAAA,QAAA,OAAO,OAAOkB,QAAQ,KAAK,WAAW,GAAGC,MAAM,GAAG,IAAI,CAAA;OAAC;AACzEN,MAAAA,kBAAkB,EAAEO,6BAAiB;AACrCN,MAAAA,oBAAoB,EAAEO,+BAAmB;AACzCN,MAAAA,UAAU,EAAEO,wBAAY;MACxBC,aAAa,EACX,OAAOL,QAAQ,KAAK,WAAW,GAAGC,MAAM,CAACK,OAAO,GAAGC,SAAAA;KAClD/B,EAAAA,SAAK,CAACH,OAAO,CAAC,CAAA,CAAA;AAAA,GACjB,CACJ,CAAC,CAAA;AACH;;;;;;;;;;;"}
@@ -30,9 +30,9 @@ function useVirtualizerBase(options) {
30
30
  return unref(options);
31
31
  }, function (options) {
32
32
  virtualizer.setOptions(_extends({}, options, {
33
- onChange: function onChange(instance) {
33
+ onChange: function onChange(instance, sync) {
34
34
  triggerRef(state);
35
- options.onChange == null ? void 0 : options.onChange(instance);
35
+ options.onChange == null ? void 0 : options.onChange(instance, sync);
36
36
  }
37
37
  }));
38
38
  virtualizer._willUpdate();
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/index.ts"],"sourcesContent":["import {\n elementScroll,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n PartialKeys,\n Virtualizer,\n VirtualizerOptions,\n windowScroll,\n} from '@tanstack/virtual-core'\nimport {\n computed,\n onScopeDispose,\n Ref,\n shallowRef,\n triggerRef,\n unref,\n watch,\n} from 'vue'\nexport * from '@tanstack/virtual-core'\n\ntype MaybeRef<T> = T | Ref<T>\n\nfunction useVirtualizerBase<\n TScrollElement extends Element | Window,\n TItemElement extends Element,\n>(\n options: MaybeRef<VirtualizerOptions<TScrollElement, TItemElement>>,\n): Ref<Virtualizer<TScrollElement, TItemElement>> {\n const virtualizer = new Virtualizer(unref(options))\n const state = shallowRef(virtualizer)\n\n const cleanup = virtualizer._didMount()\n\n watch(\n () => unref(options).getScrollElement(),\n (el) => {\n if (el) {\n virtualizer._willUpdate()\n }\n },\n {\n immediate: true,\n },\n )\n\n watch(\n () => unref(options),\n (options) => {\n virtualizer.setOptions({\n ...options,\n onChange: (instance) => {\n triggerRef(state)\n options.onChange?.(instance)\n },\n })\n\n virtualizer._willUpdate()\n triggerRef(state)\n },\n {\n immediate: true,\n },\n )\n\n onScopeDispose(cleanup)\n\n return state\n}\n\nexport function useVirtualizer<\n TScrollElement extends Element,\n TItemElement extends Element,\n>(\n options: MaybeRef<\n PartialKeys<\n VirtualizerOptions<TScrollElement, TItemElement>,\n 'observeElementRect' | 'observeElementOffset' | 'scrollToFn'\n >\n >,\n): Ref<Virtualizer<TScrollElement, TItemElement>> {\n return useVirtualizerBase<TScrollElement, TItemElement>(\n computed(() => ({\n observeElementRect: observeElementRect,\n observeElementOffset: observeElementOffset,\n scrollToFn: elementScroll,\n ...unref(options),\n })),\n )\n}\n\nexport function useWindowVirtualizer<TItemElement extends Element>(\n options: MaybeRef<\n PartialKeys<\n VirtualizerOptions<Window, TItemElement>,\n | 'observeElementRect'\n | 'observeElementOffset'\n | 'scrollToFn'\n | 'getScrollElement'\n >\n >,\n): Ref<Virtualizer<Window, TItemElement>> {\n return useVirtualizerBase<Window, TItemElement>(\n computed(() => ({\n getScrollElement: () => (typeof document !== 'undefined' ? window : null),\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n initialOffset:\n typeof document !== 'undefined' ? window.scrollY : undefined,\n ...unref(options),\n })),\n )\n}\n"],"names":["useVirtualizerBase","options","virtualizer","Virtualizer","unref","state","shallowRef","cleanup","_didMount","watch","getScrollElement","el","_willUpdate","immediate","setOptions","onChange","instance","triggerRef","onScopeDispose","useVirtualizer","computed","observeElementRect","observeElementOffset","scrollToFn","elementScroll","useWindowVirtualizer","document","window","observeWindowRect","observeWindowOffset","windowScroll","initialOffset","scrollY","undefined"],"mappings":";;;;;;;;;;;;;;;AAwBA,SAASA,kBAAkB,CAIzBC,OAAmE,EACnB;EAChD,IAAMC,WAAW,GAAG,IAAIC,WAAW,CAACC,KAAK,CAACH,OAAO,CAAC,CAAC,CAAA;AACnD,EAAA,IAAMI,KAAK,GAAGC,UAAU,CAACJ,WAAW,CAAC,CAAA;AAErC,EAAA,IAAMK,OAAO,GAAGL,WAAW,CAACM,SAAS,EAAE,CAAA;AAEvCC,EAAAA,KAAK,CACH,YAAA;AAAA,IAAA,OAAML,KAAK,CAACH,OAAO,CAAC,CAACS,gBAAgB,EAAE,CAAA;GACvC,EAAA,UAACC,EAAE,EAAK;AACN,IAAA,IAAIA,EAAE,EAAE;MACNT,WAAW,CAACU,WAAW,EAAE,CAAA;AAC3B,KAAA;AACF,GAAC,EACD;AACEC,IAAAA,SAAS,EAAE,IAAA;AACb,GAAC,CACF,CAAA;AAEDJ,EAAAA,KAAK,CACH,YAAA;IAAA,OAAML,KAAK,CAACH,OAAO,CAAC,CAAA;GACpB,EAAA,UAACA,OAAO,EAAK;IACXC,WAAW,CAACY,UAAU,CAAA,QAAA,CAAA,EAAA,EACjBb,OAAO,EAAA;MACVc,QAAQ,EAAE,SAACC,QAAAA,CAAAA,QAAQ,EAAK;QACtBC,UAAU,CAACZ,KAAK,CAAC,CAAA;QACjBJ,OAAO,CAACc,QAAQ,IAAhBd,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAACc,QAAQ,CAAGC,QAAQ,CAAC,CAAA;AAC9B,OAAA;KACA,CAAA,CAAA,CAAA;IAEFd,WAAW,CAACU,WAAW,EAAE,CAAA;IACzBK,UAAU,CAACZ,KAAK,CAAC,CAAA;AACnB,GAAC,EACD;AACEQ,IAAAA,SAAS,EAAE,IAAA;AACb,GAAC,CACF,CAAA;EAEDK,cAAc,CAACX,OAAO,CAAC,CAAA;AAEvB,EAAA,OAAOF,KAAK,CAAA;AACd,CAAA;AAEO,SAASc,cAAc,CAI5BlB,OAKC,EAC+C;EAChD,OAAOD,kBAAkB,CACvBoB,QAAQ,CAAC,YAAA;AAAA,IAAA,OAAA,QAAA,CAAA;AACPC,MAAAA,kBAAkB,EAAEA,kBAAkB;AACtCC,MAAAA,oBAAoB,EAAEA,oBAAoB;AAC1CC,MAAAA,UAAU,EAAEC,aAAAA;KACTpB,EAAAA,KAAK,CAACH,OAAO,CAAC,CAAA,CAAA;AAAA,GACjB,CAAC,CACJ,CAAA;AACH,CAAA;AAEO,SAASwB,oBAAoB,CAClCxB,OAQC,EACuC;EACxC,OAAOD,kBAAkB,CACvBoB,QAAQ,CAAC,YAAA;AAAA,IAAA,OAAA,QAAA,CAAA;AACPV,MAAAA,gBAAgB,EAAE,SAAA,gBAAA,GAAA;AAAA,QAAA,OAAO,OAAOgB,QAAQ,KAAK,WAAW,GAAGC,MAAM,GAAG,IAAI,CAAA;OAAC;AACzEN,MAAAA,kBAAkB,EAAEO,iBAAiB;AACrCN,MAAAA,oBAAoB,EAAEO,mBAAmB;AACzCN,MAAAA,UAAU,EAAEO,YAAY;MACxBC,aAAa,EACX,OAAOL,QAAQ,KAAK,WAAW,GAAGC,MAAM,CAACK,OAAO,GAAGC,SAAAA;KAClD7B,EAAAA,KAAK,CAACH,OAAO,CAAC,CAAA,CAAA;AAAA,GACjB,CAAC,CACJ,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/index.ts"],"sourcesContent":["import {\n elementScroll,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n PartialKeys,\n Virtualizer,\n VirtualizerOptions,\n windowScroll,\n} from '@tanstack/virtual-core'\nimport {\n computed,\n onScopeDispose,\n Ref,\n shallowRef,\n triggerRef,\n unref,\n watch,\n} from 'vue'\nexport * from '@tanstack/virtual-core'\n\ntype MaybeRef<T> = T | Ref<T>\n\nfunction useVirtualizerBase<\n TScrollElement extends Element | Window,\n TItemElement extends Element,\n>(\n options: MaybeRef<VirtualizerOptions<TScrollElement, TItemElement>>,\n): Ref<Virtualizer<TScrollElement, TItemElement>> {\n const virtualizer = new Virtualizer(unref(options))\n const state = shallowRef(virtualizer)\n\n const cleanup = virtualizer._didMount()\n\n watch(\n () => unref(options).getScrollElement(),\n (el) => {\n if (el) {\n virtualizer._willUpdate()\n }\n },\n {\n immediate: true,\n },\n )\n\n watch(\n () => unref(options),\n (options) => {\n virtualizer.setOptions({\n ...options,\n onChange: (instance, sync) => {\n triggerRef(state)\n options.onChange?.(instance, sync)\n },\n })\n\n virtualizer._willUpdate()\n triggerRef(state)\n },\n {\n immediate: true,\n },\n )\n\n onScopeDispose(cleanup)\n\n return state\n}\n\nexport function useVirtualizer<\n TScrollElement extends Element,\n TItemElement extends Element,\n>(\n options: MaybeRef<\n PartialKeys<\n VirtualizerOptions<TScrollElement, TItemElement>,\n 'observeElementRect' | 'observeElementOffset' | 'scrollToFn'\n >\n >,\n): Ref<Virtualizer<TScrollElement, TItemElement>> {\n return useVirtualizerBase<TScrollElement, TItemElement>(\n computed(() => ({\n observeElementRect: observeElementRect,\n observeElementOffset: observeElementOffset,\n scrollToFn: elementScroll,\n ...unref(options),\n })),\n )\n}\n\nexport function useWindowVirtualizer<TItemElement extends Element>(\n options: MaybeRef<\n PartialKeys<\n VirtualizerOptions<Window, TItemElement>,\n | 'observeElementRect'\n | 'observeElementOffset'\n | 'scrollToFn'\n | 'getScrollElement'\n >\n >,\n): Ref<Virtualizer<Window, TItemElement>> {\n return useVirtualizerBase<Window, TItemElement>(\n computed(() => ({\n getScrollElement: () => (typeof document !== 'undefined' ? window : null),\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n initialOffset:\n typeof document !== 'undefined' ? window.scrollY : undefined,\n ...unref(options),\n })),\n )\n}\n"],"names":["useVirtualizerBase","options","virtualizer","Virtualizer","unref","state","shallowRef","cleanup","_didMount","watch","getScrollElement","el","_willUpdate","immediate","setOptions","_extends","onChange","instance","sync","triggerRef","onScopeDispose","useVirtualizer","computed","observeElementRect","observeElementOffset","scrollToFn","elementScroll","useWindowVirtualizer","document","window","observeWindowRect","observeWindowOffset","windowScroll","initialOffset","scrollY","undefined"],"mappings":";;;;;;;;;;;;;;;AAwBA,SAASA,kBAAkBA,CAIzBC,OAAmE,EACnB;EAChD,IAAMC,WAAW,GAAG,IAAIC,WAAW,CAACC,KAAK,CAACH,OAAO,CAAC,CAAC,CAAA;AACnD,EAAA,IAAMI,KAAK,GAAGC,UAAU,CAACJ,WAAW,CAAC,CAAA;AAErC,EAAA,IAAMK,OAAO,GAAGL,WAAW,CAACM,SAAS,EAAE,CAAA;AAEvCC,EAAAA,KAAK,CACH,YAAA;AAAA,IAAA,OAAML,KAAK,CAACH,OAAO,CAAC,CAACS,gBAAgB,EAAE,CAAA;GACvC,EAAA,UAACC,EAAE,EAAK;AACN,IAAA,IAAIA,EAAE,EAAE;MACNT,WAAW,CAACU,WAAW,EAAE,CAAA;AAC3B,KAAA;AACF,GAAC,EACD;AACEC,IAAAA,SAAS,EAAE,IAAA;AACb,GACF,CAAC,CAAA;AAEDJ,EAAAA,KAAK,CACH,YAAA;IAAA,OAAML,KAAK,CAACH,OAAO,CAAC,CAAA;GACpB,EAAA,UAACA,OAAO,EAAK;AACXC,IAAAA,WAAW,CAACY,UAAU,CAAAC,QAAA,KACjBd,OAAO,EAAA;AACVe,MAAAA,QAAQ,EAAE,SAAAA,QAAAA,CAACC,QAAQ,EAAEC,IAAI,EAAK;QAC5BC,UAAU,CAACd,KAAK,CAAC,CAAA;QACjBJ,OAAO,CAACe,QAAQ,IAAA,IAAA,GAAA,KAAA,CAAA,GAAhBf,OAAO,CAACe,QAAQ,CAAGC,QAAQ,EAAEC,IAAI,CAAC,CAAA;AACpC,OAAA;AAAC,KAAA,CACF,CAAC,CAAA;IAEFhB,WAAW,CAACU,WAAW,EAAE,CAAA;IACzBO,UAAU,CAACd,KAAK,CAAC,CAAA;AACnB,GAAC,EACD;AACEQ,IAAAA,SAAS,EAAE,IAAA;AACb,GACF,CAAC,CAAA;EAEDO,cAAc,CAACb,OAAO,CAAC,CAAA;AAEvB,EAAA,OAAOF,KAAK,CAAA;AACd,CAAA;AAEO,SAASgB,cAAcA,CAI5BpB,OAKC,EAC+C;EAChD,OAAOD,kBAAkB,CACvBsB,QAAQ,CAAC,YAAA;AAAA,IAAA,OAAAP,QAAA,CAAA;AACPQ,MAAAA,kBAAkB,EAAEA,kBAAkB;AACtCC,MAAAA,oBAAoB,EAAEA,oBAAoB;AAC1CC,MAAAA,UAAU,EAAEC,aAAAA;KACTtB,EAAAA,KAAK,CAACH,OAAO,CAAC,CAAA,CAAA;AAAA,GACjB,CACJ,CAAC,CAAA;AACH,CAAA;AAEO,SAAS0B,oBAAoBA,CAClC1B,OAQC,EACuC;EACxC,OAAOD,kBAAkB,CACvBsB,QAAQ,CAAC,YAAA;AAAA,IAAA,OAAAP,QAAA,CAAA;MACPL,gBAAgB,EAAE,SAAAA,gBAAA,GAAA;AAAA,QAAA,OAAO,OAAOkB,QAAQ,KAAK,WAAW,GAAGC,MAAM,GAAG,IAAI,CAAA;OAAC;AACzEN,MAAAA,kBAAkB,EAAEO,iBAAiB;AACrCN,MAAAA,oBAAoB,EAAEO,mBAAmB;AACzCN,MAAAA,UAAU,EAAEO,YAAY;MACxBC,aAAa,EACX,OAAOL,QAAQ,KAAK,WAAW,GAAGC,MAAM,CAACK,OAAO,GAAGC,SAAAA;KAClD/B,EAAAA,KAAK,CAACH,OAAO,CAAC,CAAA,CAAA;AAAA,GACjB,CACJ,CAAC,CAAA;AACH;;;;"}
@@ -46,9 +46,9 @@
46
46
  return vue.unref(options);
47
47
  }, function (options) {
48
48
  virtualizer.setOptions(_extends({}, options, {
49
- onChange: function onChange(instance) {
49
+ onChange: function onChange(instance, sync) {
50
50
  vue.triggerRef(state);
51
- options.onChange == null ? void 0 : options.onChange(instance);
51
+ options.onChange == null ? void 0 : options.onChange(instance, sync);
52
52
  }
53
53
  }));
54
54
  virtualizer._willUpdate();
@@ -1 +1 @@
1
- {"version":3,"file":"index.development.js","sources":["../../src/index.ts"],"sourcesContent":["import {\n elementScroll,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n PartialKeys,\n Virtualizer,\n VirtualizerOptions,\n windowScroll,\n} from '@tanstack/virtual-core'\nimport {\n computed,\n onScopeDispose,\n Ref,\n shallowRef,\n triggerRef,\n unref,\n watch,\n} from 'vue'\nexport * from '@tanstack/virtual-core'\n\ntype MaybeRef<T> = T | Ref<T>\n\nfunction useVirtualizerBase<\n TScrollElement extends Element | Window,\n TItemElement extends Element,\n>(\n options: MaybeRef<VirtualizerOptions<TScrollElement, TItemElement>>,\n): Ref<Virtualizer<TScrollElement, TItemElement>> {\n const virtualizer = new Virtualizer(unref(options))\n const state = shallowRef(virtualizer)\n\n const cleanup = virtualizer._didMount()\n\n watch(\n () => unref(options).getScrollElement(),\n (el) => {\n if (el) {\n virtualizer._willUpdate()\n }\n },\n {\n immediate: true,\n },\n )\n\n watch(\n () => unref(options),\n (options) => {\n virtualizer.setOptions({\n ...options,\n onChange: (instance) => {\n triggerRef(state)\n options.onChange?.(instance)\n },\n })\n\n virtualizer._willUpdate()\n triggerRef(state)\n },\n {\n immediate: true,\n },\n )\n\n onScopeDispose(cleanup)\n\n return state\n}\n\nexport function useVirtualizer<\n TScrollElement extends Element,\n TItemElement extends Element,\n>(\n options: MaybeRef<\n PartialKeys<\n VirtualizerOptions<TScrollElement, TItemElement>,\n 'observeElementRect' | 'observeElementOffset' | 'scrollToFn'\n >\n >,\n): Ref<Virtualizer<TScrollElement, TItemElement>> {\n return useVirtualizerBase<TScrollElement, TItemElement>(\n computed(() => ({\n observeElementRect: observeElementRect,\n observeElementOffset: observeElementOffset,\n scrollToFn: elementScroll,\n ...unref(options),\n })),\n )\n}\n\nexport function useWindowVirtualizer<TItemElement extends Element>(\n options: MaybeRef<\n PartialKeys<\n VirtualizerOptions<Window, TItemElement>,\n | 'observeElementRect'\n | 'observeElementOffset'\n | 'scrollToFn'\n | 'getScrollElement'\n >\n >,\n): Ref<Virtualizer<Window, TItemElement>> {\n return useVirtualizerBase<Window, TItemElement>(\n computed(() => ({\n getScrollElement: () => (typeof document !== 'undefined' ? window : null),\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n initialOffset:\n typeof document !== 'undefined' ? window.scrollY : undefined,\n ...unref(options),\n })),\n )\n}\n"],"names":["useVirtualizerBase","options","virtualizer","Virtualizer","unref","state","shallowRef","cleanup","_didMount","watch","getScrollElement","el","_willUpdate","immediate","setOptions","onChange","instance","triggerRef","onScopeDispose","useVirtualizer","computed","observeElementRect","observeElementOffset","scrollToFn","elementScroll","useWindowVirtualizer","document","window","observeWindowRect","observeWindowOffset","windowScroll","initialOffset","scrollY","undefined"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwBA,SAASA,kBAAkB,CAIzBC,OAAmE,EACnB;IAChD,IAAMC,WAAW,GAAG,IAAIC,uBAAW,CAACC,SAAK,CAACH,OAAO,CAAC,CAAC,CAAA;EACnD,EAAA,IAAMI,KAAK,GAAGC,cAAU,CAACJ,WAAW,CAAC,CAAA;EAErC,EAAA,IAAMK,OAAO,GAAGL,WAAW,CAACM,SAAS,EAAE,CAAA;EAEvCC,EAAAA,SAAK,CACH,YAAA;EAAA,IAAA,OAAML,SAAK,CAACH,OAAO,CAAC,CAACS,gBAAgB,EAAE,CAAA;KACvC,EAAA,UAACC,EAAE,EAAK;EACN,IAAA,IAAIA,EAAE,EAAE;QACNT,WAAW,CAACU,WAAW,EAAE,CAAA;EAC3B,KAAA;EACF,GAAC,EACD;EACEC,IAAAA,SAAS,EAAE,IAAA;EACb,GAAC,CACF,CAAA;EAEDJ,EAAAA,SAAK,CACH,YAAA;MAAA,OAAML,SAAK,CAACH,OAAO,CAAC,CAAA;KACpB,EAAA,UAACA,OAAO,EAAK;MACXC,WAAW,CAACY,UAAU,CAAA,QAAA,CAAA,EAAA,EACjBb,OAAO,EAAA;QACVc,QAAQ,EAAE,SAACC,QAAAA,CAAAA,QAAQ,EAAK;UACtBC,cAAU,CAACZ,KAAK,CAAC,CAAA;UACjBJ,OAAO,CAACc,QAAQ,IAAhBd,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAACc,QAAQ,CAAGC,QAAQ,CAAC,CAAA;EAC9B,OAAA;OACA,CAAA,CAAA,CAAA;MAEFd,WAAW,CAACU,WAAW,EAAE,CAAA;MACzBK,cAAU,CAACZ,KAAK,CAAC,CAAA;EACnB,GAAC,EACD;EACEQ,IAAAA,SAAS,EAAE,IAAA;EACb,GAAC,CACF,CAAA;IAEDK,kBAAc,CAACX,OAAO,CAAC,CAAA;EAEvB,EAAA,OAAOF,KAAK,CAAA;EACd,CAAA;EAEO,SAASc,cAAc,CAI5BlB,OAKC,EAC+C;IAChD,OAAOD,kBAAkB,CACvBoB,YAAQ,CAAC,YAAA;EAAA,IAAA,OAAA,QAAA,CAAA;EACPC,MAAAA,kBAAkB,EAAEA,8BAAkB;EACtCC,MAAAA,oBAAoB,EAAEA,gCAAoB;EAC1CC,MAAAA,UAAU,EAAEC,yBAAAA;OACTpB,EAAAA,SAAK,CAACH,OAAO,CAAC,CAAA,CAAA;EAAA,GACjB,CAAC,CACJ,CAAA;EACH,CAAA;EAEO,SAASwB,oBAAoB,CAClCxB,OAQC,EACuC;IACxC,OAAOD,kBAAkB,CACvBoB,YAAQ,CAAC,YAAA;EAAA,IAAA,OAAA,QAAA,CAAA;EACPV,MAAAA,gBAAgB,EAAE,SAAA,gBAAA,GAAA;EAAA,QAAA,OAAO,OAAOgB,QAAQ,KAAK,WAAW,GAAGC,MAAM,GAAG,IAAI,CAAA;SAAC;EACzEN,MAAAA,kBAAkB,EAAEO,6BAAiB;EACrCN,MAAAA,oBAAoB,EAAEO,+BAAmB;EACzCN,MAAAA,UAAU,EAAEO,wBAAY;QACxBC,aAAa,EACX,OAAOL,QAAQ,KAAK,WAAW,GAAGC,MAAM,CAACK,OAAO,GAAGC,SAAAA;OAClD7B,EAAAA,SAAK,CAACH,OAAO,CAAC,CAAA,CAAA;EAAA,GACjB,CAAC,CACJ,CAAA;EACH;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.development.js","sources":["../../src/index.ts"],"sourcesContent":["import {\n elementScroll,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n PartialKeys,\n Virtualizer,\n VirtualizerOptions,\n windowScroll,\n} from '@tanstack/virtual-core'\nimport {\n computed,\n onScopeDispose,\n Ref,\n shallowRef,\n triggerRef,\n unref,\n watch,\n} from 'vue'\nexport * from '@tanstack/virtual-core'\n\ntype MaybeRef<T> = T | Ref<T>\n\nfunction useVirtualizerBase<\n TScrollElement extends Element | Window,\n TItemElement extends Element,\n>(\n options: MaybeRef<VirtualizerOptions<TScrollElement, TItemElement>>,\n): Ref<Virtualizer<TScrollElement, TItemElement>> {\n const virtualizer = new Virtualizer(unref(options))\n const state = shallowRef(virtualizer)\n\n const cleanup = virtualizer._didMount()\n\n watch(\n () => unref(options).getScrollElement(),\n (el) => {\n if (el) {\n virtualizer._willUpdate()\n }\n },\n {\n immediate: true,\n },\n )\n\n watch(\n () => unref(options),\n (options) => {\n virtualizer.setOptions({\n ...options,\n onChange: (instance, sync) => {\n triggerRef(state)\n options.onChange?.(instance, sync)\n },\n })\n\n virtualizer._willUpdate()\n triggerRef(state)\n },\n {\n immediate: true,\n },\n )\n\n onScopeDispose(cleanup)\n\n return state\n}\n\nexport function useVirtualizer<\n TScrollElement extends Element,\n TItemElement extends Element,\n>(\n options: MaybeRef<\n PartialKeys<\n VirtualizerOptions<TScrollElement, TItemElement>,\n 'observeElementRect' | 'observeElementOffset' | 'scrollToFn'\n >\n >,\n): Ref<Virtualizer<TScrollElement, TItemElement>> {\n return useVirtualizerBase<TScrollElement, TItemElement>(\n computed(() => ({\n observeElementRect: observeElementRect,\n observeElementOffset: observeElementOffset,\n scrollToFn: elementScroll,\n ...unref(options),\n })),\n )\n}\n\nexport function useWindowVirtualizer<TItemElement extends Element>(\n options: MaybeRef<\n PartialKeys<\n VirtualizerOptions<Window, TItemElement>,\n | 'observeElementRect'\n | 'observeElementOffset'\n | 'scrollToFn'\n | 'getScrollElement'\n >\n >,\n): Ref<Virtualizer<Window, TItemElement>> {\n return useVirtualizerBase<Window, TItemElement>(\n computed(() => ({\n getScrollElement: () => (typeof document !== 'undefined' ? window : null),\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n initialOffset:\n typeof document !== 'undefined' ? window.scrollY : undefined,\n ...unref(options),\n })),\n )\n}\n"],"names":["useVirtualizerBase","options","virtualizer","Virtualizer","unref","state","shallowRef","cleanup","_didMount","watch","getScrollElement","el","_willUpdate","immediate","setOptions","_extends","onChange","instance","sync","triggerRef","onScopeDispose","useVirtualizer","computed","observeElementRect","observeElementOffset","scrollToFn","elementScroll","useWindowVirtualizer","document","window","observeWindowRect","observeWindowOffset","windowScroll","initialOffset","scrollY","undefined"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwBA,SAASA,kBAAkBA,CAIzBC,OAAmE,EACnB;IAChD,IAAMC,WAAW,GAAG,IAAIC,uBAAW,CAACC,SAAK,CAACH,OAAO,CAAC,CAAC,CAAA;EACnD,EAAA,IAAMI,KAAK,GAAGC,cAAU,CAACJ,WAAW,CAAC,CAAA;EAErC,EAAA,IAAMK,OAAO,GAAGL,WAAW,CAACM,SAAS,EAAE,CAAA;EAEvCC,EAAAA,SAAK,CACH,YAAA;EAAA,IAAA,OAAML,SAAK,CAACH,OAAO,CAAC,CAACS,gBAAgB,EAAE,CAAA;KACvC,EAAA,UAACC,EAAE,EAAK;EACN,IAAA,IAAIA,EAAE,EAAE;QACNT,WAAW,CAACU,WAAW,EAAE,CAAA;EAC3B,KAAA;EACF,GAAC,EACD;EACEC,IAAAA,SAAS,EAAE,IAAA;EACb,GACF,CAAC,CAAA;EAEDJ,EAAAA,SAAK,CACH,YAAA;MAAA,OAAML,SAAK,CAACH,OAAO,CAAC,CAAA;KACpB,EAAA,UAACA,OAAO,EAAK;EACXC,IAAAA,WAAW,CAACY,UAAU,CAAAC,QAAA,KACjBd,OAAO,EAAA;EACVe,MAAAA,QAAQ,EAAE,SAAAA,QAAAA,CAACC,QAAQ,EAAEC,IAAI,EAAK;UAC5BC,cAAU,CAACd,KAAK,CAAC,CAAA;UACjBJ,OAAO,CAACe,QAAQ,IAAA,IAAA,GAAA,KAAA,CAAA,GAAhBf,OAAO,CAACe,QAAQ,CAAGC,QAAQ,EAAEC,IAAI,CAAC,CAAA;EACpC,OAAA;EAAC,KAAA,CACF,CAAC,CAAA;MAEFhB,WAAW,CAACU,WAAW,EAAE,CAAA;MACzBO,cAAU,CAACd,KAAK,CAAC,CAAA;EACnB,GAAC,EACD;EACEQ,IAAAA,SAAS,EAAE,IAAA;EACb,GACF,CAAC,CAAA;IAEDO,kBAAc,CAACb,OAAO,CAAC,CAAA;EAEvB,EAAA,OAAOF,KAAK,CAAA;EACd,CAAA;EAEO,SAASgB,cAAcA,CAI5BpB,OAKC,EAC+C;IAChD,OAAOD,kBAAkB,CACvBsB,YAAQ,CAAC,YAAA;EAAA,IAAA,OAAAP,QAAA,CAAA;EACPQ,MAAAA,kBAAkB,EAAEA,8BAAkB;EACtCC,MAAAA,oBAAoB,EAAEA,gCAAoB;EAC1CC,MAAAA,UAAU,EAAEC,yBAAAA;OACTtB,EAAAA,SAAK,CAACH,OAAO,CAAC,CAAA,CAAA;EAAA,GACjB,CACJ,CAAC,CAAA;EACH,CAAA;EAEO,SAAS0B,oBAAoBA,CAClC1B,OAQC,EACuC;IACxC,OAAOD,kBAAkB,CACvBsB,YAAQ,CAAC,YAAA;EAAA,IAAA,OAAAP,QAAA,CAAA;QACPL,gBAAgB,EAAE,SAAAA,gBAAA,GAAA;EAAA,QAAA,OAAO,OAAOkB,QAAQ,KAAK,WAAW,GAAGC,MAAM,GAAG,IAAI,CAAA;SAAC;EACzEN,MAAAA,kBAAkB,EAAEO,6BAAiB;EACrCN,MAAAA,oBAAoB,EAAEO,+BAAmB;EACzCN,MAAAA,UAAU,EAAEO,wBAAY;QACxBC,aAAa,EACX,OAAOL,QAAQ,KAAK,WAAW,GAAGC,MAAM,CAACK,OAAO,GAAGC,SAAAA;OAClD/B,EAAAA,SAAK,CAACH,OAAO,CAAC,CAAA,CAAA;EAAA,GACjB,CACJ,CAAC,CAAA;EACH;;;;;;;;;;;;;;;;;"}
@@ -8,5 +8,5 @@
8
8
  *
9
9
  * @license MIT
10
10
  */
11
- !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@tanstack/virtual-core"),require("vue")):"function"==typeof define&&define.amd?define(["exports","@tanstack/virtual-core","vue"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).VueVirtual={},e.VirtualCore,e.Vue)}(this,(function(e,n,t){"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},r.apply(this,arguments)}function o(e){var o=new n.Virtualizer(t.unref(e)),i=t.shallowRef(o),u=o._didMount();return t.watch((function(){return t.unref(e).getScrollElement()}),(function(e){e&&o._willUpdate()}),{immediate:!0}),t.watch((function(){return t.unref(e)}),(function(e){o.setOptions(r({},e,{onChange:function(n){t.triggerRef(i),null==e.onChange||e.onChange(n)}})),o._willUpdate(),t.triggerRef(i)}),{immediate:!0}),t.onScopeDispose(u),i}e.useVirtualizer=function(e){return o(t.computed((function(){return r({observeElementRect:n.observeElementRect,observeElementOffset:n.observeElementOffset,scrollToFn:n.elementScroll},t.unref(e))})))},e.useWindowVirtualizer=function(e){return o(t.computed((function(){return r({getScrollElement:function(){return"undefined"!=typeof document?window:null},observeElementRect:n.observeWindowRect,observeElementOffset:n.observeWindowOffset,scrollToFn:n.windowScroll,initialOffset:"undefined"!=typeof document?window.scrollY:void 0},t.unref(e))})))},Object.keys(n).forEach((function(t){"default"===t||e.hasOwnProperty(t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})})),Object.defineProperty(e,"__esModule",{value:!0})}));
11
+ !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@tanstack/virtual-core"),require("vue")):"function"==typeof define&&define.amd?define(["exports","@tanstack/virtual-core","vue"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).VueVirtual={},e.VirtualCore,e.Vue)}(this,(function(e,n,t){"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},r.apply(this,arguments)}function o(e){var o=new n.Virtualizer(t.unref(e)),i=t.shallowRef(o),u=o._didMount();return t.watch((function(){return t.unref(e).getScrollElement()}),(function(e){e&&o._willUpdate()}),{immediate:!0}),t.watch((function(){return t.unref(e)}),(function(e){o.setOptions(r({},e,{onChange:function(n,r){t.triggerRef(i),null==e.onChange||e.onChange(n,r)}})),o._willUpdate(),t.triggerRef(i)}),{immediate:!0}),t.onScopeDispose(u),i}e.useVirtualizer=function(e){return o(t.computed((function(){return r({observeElementRect:n.observeElementRect,observeElementOffset:n.observeElementOffset,scrollToFn:n.elementScroll},t.unref(e))})))},e.useWindowVirtualizer=function(e){return o(t.computed((function(){return r({getScrollElement:function(){return"undefined"!=typeof document?window:null},observeElementRect:n.observeWindowRect,observeElementOffset:n.observeWindowOffset,scrollToFn:n.windowScroll,initialOffset:"undefined"!=typeof document?window.scrollY:void 0},t.unref(e))})))},Object.keys(n).forEach((function(t){"default"===t||e.hasOwnProperty(t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})})),Object.defineProperty(e,"__esModule",{value:!0})}));
12
12
  //# sourceMappingURL=index.production.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.production.js","sources":["../../src/index.ts"],"sourcesContent":["import {\n elementScroll,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n PartialKeys,\n Virtualizer,\n VirtualizerOptions,\n windowScroll,\n} from '@tanstack/virtual-core'\nimport {\n computed,\n onScopeDispose,\n Ref,\n shallowRef,\n triggerRef,\n unref,\n watch,\n} from 'vue'\nexport * from '@tanstack/virtual-core'\n\ntype MaybeRef<T> = T | Ref<T>\n\nfunction useVirtualizerBase<\n TScrollElement extends Element | Window,\n TItemElement extends Element,\n>(\n options: MaybeRef<VirtualizerOptions<TScrollElement, TItemElement>>,\n): Ref<Virtualizer<TScrollElement, TItemElement>> {\n const virtualizer = new Virtualizer(unref(options))\n const state = shallowRef(virtualizer)\n\n const cleanup = virtualizer._didMount()\n\n watch(\n () => unref(options).getScrollElement(),\n (el) => {\n if (el) {\n virtualizer._willUpdate()\n }\n },\n {\n immediate: true,\n },\n )\n\n watch(\n () => unref(options),\n (options) => {\n virtualizer.setOptions({\n ...options,\n onChange: (instance) => {\n triggerRef(state)\n options.onChange?.(instance)\n },\n })\n\n virtualizer._willUpdate()\n triggerRef(state)\n },\n {\n immediate: true,\n },\n )\n\n onScopeDispose(cleanup)\n\n return state\n}\n\nexport function useVirtualizer<\n TScrollElement extends Element,\n TItemElement extends Element,\n>(\n options: MaybeRef<\n PartialKeys<\n VirtualizerOptions<TScrollElement, TItemElement>,\n 'observeElementRect' | 'observeElementOffset' | 'scrollToFn'\n >\n >,\n): Ref<Virtualizer<TScrollElement, TItemElement>> {\n return useVirtualizerBase<TScrollElement, TItemElement>(\n computed(() => ({\n observeElementRect: observeElementRect,\n observeElementOffset: observeElementOffset,\n scrollToFn: elementScroll,\n ...unref(options),\n })),\n )\n}\n\nexport function useWindowVirtualizer<TItemElement extends Element>(\n options: MaybeRef<\n PartialKeys<\n VirtualizerOptions<Window, TItemElement>,\n | 'observeElementRect'\n | 'observeElementOffset'\n | 'scrollToFn'\n | 'getScrollElement'\n >\n >,\n): Ref<Virtualizer<Window, TItemElement>> {\n return useVirtualizerBase<Window, TItemElement>(\n computed(() => ({\n getScrollElement: () => (typeof document !== 'undefined' ? window : null),\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n initialOffset:\n typeof document !== 'undefined' ? window.scrollY : undefined,\n ...unref(options),\n })),\n )\n}\n"],"names":["useVirtualizerBase","options","virtualizer","Virtualizer","unref","state","shallowRef","cleanup","_didMount","watch","getScrollElement","el","_willUpdate","immediate","setOptions","_extends","onChange","instance","triggerRef","onScopeDispose","computed","observeElementRect","observeElementOffset","scrollToFn","elementScroll","document","window","observeWindowRect","observeWindowOffset","windowScroll","initialOffset","scrollY","undefined"],"mappings":";;;;;;;;;;8jBAwBA,SAASA,EAIPC,GAEA,IAAMC,EAAc,IAAIC,EAAAA,YAAYC,EAAAA,MAAMH,IACpCI,EAAQC,aAAWJ,GAEnBK,EAAUL,EAAYM,YAmC5B,OAjCAC,EAAAA,OACE,WAAA,OAAML,QAAMH,GAASS,kBACrB,IAAA,SAACC,GACKA,GACFT,EAAYU,aAEhB,GACA,CACEC,WAAW,IAIfJ,EAAAA,OACE,WAAA,OAAML,EAAAA,MAAMH,EACZ,IAAA,SAACA,GACCC,EAAYY,WAAUC,EAAA,CAAA,EACjBd,EAAO,CACVe,SAAU,SAACC,GACTC,EAAUA,WAACb,GACXJ,MAAAA,EAAQe,UAARf,EAAQe,SAAWC,EACrB,KAGFf,EAAYU,cACZM,EAAUA,WAACb,EACb,GACA,CACEQ,WAAW,IAIfM,EAAcA,eAACZ,GAERF,CACT,kBAEO,SAILJ,GAOA,OAAOD,EACLoB,EAAAA,UAAS,WAAA,OAAAL,EAAA,CACPM,mBAAoBA,EAAkBA,mBACtCC,qBAAsBA,EAAoBA,qBAC1CC,WAAYC,EAAAA,eACTpB,EAAKA,MAACH,GACT,IAEN,yBAEO,SACLA,GAUA,OAAOD,EACLoB,EAAAA,UAAS,WAAA,OAAAL,EAAA,CACPL,iBAAkB,WAAA,MAA2B,oBAAbe,SAA2BC,OAAS,IAAK,EACzEL,mBAAoBM,EAAiBA,kBACrCL,qBAAsBM,EAAmBA,oBACzCL,WAAYM,EAAYA,aACxBC,cACsB,oBAAbL,SAA2BC,OAAOK,aAAUC,GAClD5B,EAAKA,MAACH,GACT,IAEN"}
1
+ {"version":3,"file":"index.production.js","sources":["../../src/index.ts"],"sourcesContent":["import {\n elementScroll,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n PartialKeys,\n Virtualizer,\n VirtualizerOptions,\n windowScroll,\n} from '@tanstack/virtual-core'\nimport {\n computed,\n onScopeDispose,\n Ref,\n shallowRef,\n triggerRef,\n unref,\n watch,\n} from 'vue'\nexport * from '@tanstack/virtual-core'\n\ntype MaybeRef<T> = T | Ref<T>\n\nfunction useVirtualizerBase<\n TScrollElement extends Element | Window,\n TItemElement extends Element,\n>(\n options: MaybeRef<VirtualizerOptions<TScrollElement, TItemElement>>,\n): Ref<Virtualizer<TScrollElement, TItemElement>> {\n const virtualizer = new Virtualizer(unref(options))\n const state = shallowRef(virtualizer)\n\n const cleanup = virtualizer._didMount()\n\n watch(\n () => unref(options).getScrollElement(),\n (el) => {\n if (el) {\n virtualizer._willUpdate()\n }\n },\n {\n immediate: true,\n },\n )\n\n watch(\n () => unref(options),\n (options) => {\n virtualizer.setOptions({\n ...options,\n onChange: (instance, sync) => {\n triggerRef(state)\n options.onChange?.(instance, sync)\n },\n })\n\n virtualizer._willUpdate()\n triggerRef(state)\n },\n {\n immediate: true,\n },\n )\n\n onScopeDispose(cleanup)\n\n return state\n}\n\nexport function useVirtualizer<\n TScrollElement extends Element,\n TItemElement extends Element,\n>(\n options: MaybeRef<\n PartialKeys<\n VirtualizerOptions<TScrollElement, TItemElement>,\n 'observeElementRect' | 'observeElementOffset' | 'scrollToFn'\n >\n >,\n): Ref<Virtualizer<TScrollElement, TItemElement>> {\n return useVirtualizerBase<TScrollElement, TItemElement>(\n computed(() => ({\n observeElementRect: observeElementRect,\n observeElementOffset: observeElementOffset,\n scrollToFn: elementScroll,\n ...unref(options),\n })),\n )\n}\n\nexport function useWindowVirtualizer<TItemElement extends Element>(\n options: MaybeRef<\n PartialKeys<\n VirtualizerOptions<Window, TItemElement>,\n | 'observeElementRect'\n | 'observeElementOffset'\n | 'scrollToFn'\n | 'getScrollElement'\n >\n >,\n): Ref<Virtualizer<Window, TItemElement>> {\n return useVirtualizerBase<Window, TItemElement>(\n computed(() => ({\n getScrollElement: () => (typeof document !== 'undefined' ? window : null),\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n initialOffset:\n typeof document !== 'undefined' ? window.scrollY : undefined,\n ...unref(options),\n })),\n )\n}\n"],"names":["useVirtualizerBase","options","virtualizer","Virtualizer","unref","state","shallowRef","cleanup","_didMount","watch","getScrollElement","el","_willUpdate","immediate","setOptions","_extends","onChange","instance","sync","triggerRef","onScopeDispose","computed","observeElementRect","observeElementOffset","scrollToFn","elementScroll","document","window","observeWindowRect","observeWindowOffset","windowScroll","initialOffset","scrollY","undefined"],"mappings":";;;;;;;;;;8jBAwBA,SAASA,EAIPC,GAEA,IAAMC,EAAc,IAAIC,EAAAA,YAAYC,EAAAA,MAAMH,IACpCI,EAAQC,aAAWJ,GAEnBK,EAAUL,EAAYM,YAmC5B,OAjCAC,EAAAA,OACE,WAAA,OAAML,QAAMH,GAASS,kBACrB,IAAA,SAACC,GACKA,GACFT,EAAYU,aAEhB,GACA,CACEC,WAAW,IAIfJ,EAAAA,OACE,WAAA,OAAML,EAAAA,MAAMH,EACZ,IAAA,SAACA,GACCC,EAAYY,WAAUC,KACjBd,EAAO,CACVe,SAAU,SAACC,EAAUC,GACnBC,EAAUA,WAACd,GACK,MAAhBJ,EAAQe,UAARf,EAAQe,SAAWC,EAAUC,EAC/B,KAGFhB,EAAYU,cACZO,EAAUA,WAACd,EACb,GACA,CACEQ,WAAW,IAIfO,EAAcA,eAACb,GAERF,CACT,kBAEO,SAILJ,GAOA,OAAOD,EACLqB,EAAAA,UAAS,WAAA,OAAAN,EAAA,CACPO,mBAAoBA,EAAkBA,mBACtCC,qBAAsBA,EAAoBA,qBAC1CC,WAAYC,EAAAA,eACTrB,EAAKA,MAACH,GACT,IAEN,yBAEO,SACLA,GAUA,OAAOD,EACLqB,EAAAA,UAAS,WAAA,OAAAN,EAAA,CACPL,iBAAkB,WAAA,MAA2B,oBAAbgB,SAA2BC,OAAS,IAAK,EACzEL,mBAAoBM,EAAiBA,kBACrCL,qBAAsBM,EAAmBA,oBACzCL,WAAYM,EAAYA,aACxBC,cACsB,oBAAbL,SAA2BC,OAAOK,aAAUC,GAClD7B,EAAKA,MAACH,GACT,IAEN"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tanstack/vue-virtual",
3
3
  "author": "Tanner Linsley",
4
- "version": "3.0.0-beta.65",
4
+ "version": "3.0.0-beta.68",
5
5
  "description": "Headless UI for virtualizing scrollable elements in Vue",
6
6
  "license": "MIT",
7
7
  "homepage": "https://github.com/tanstack/virtual#readme",
@@ -46,7 +46,7 @@
46
46
  "vue": "^3.2.45"
47
47
  },
48
48
  "dependencies": {
49
- "@tanstack/virtual-core": "3.0.0-beta.65"
49
+ "@tanstack/virtual-core": "3.0.0-beta.68"
50
50
  },
51
51
  "peerDependencies": {
52
52
  "vue": "^2.7.0 || ^3.0.0"
package/src/index.ts CHANGED
@@ -50,9 +50,9 @@ function useVirtualizerBase<
50
50
  (options) => {
51
51
  virtualizer.setOptions({
52
52
  ...options,
53
- onChange: (instance) => {
53
+ onChange: (instance, sync) => {
54
54
  triggerRef(state)
55
- options.onChange?.(instance)
55
+ options.onChange?.(instance, sync)
56
56
  },
57
57
  })
58
58