@ceriousdevtech/vue-cerious-scroll 1.0.6 → 1.0.7
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.
- package/CHANGELOG.md +8 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +131 -142
- package/dist/use-cerious-scroll.d.ts +2 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,14 @@ All notable changes to vue-cerious-scroll will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.0.7] - 2026-06-24
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- **`provide()` values from the component using `<CeriousScroll>` now reach `inject()` inside rows** ([#1](https://github.com/ceriousdevtech/vue-cerious-scroll/issues/1)). Rows (and the table header) are rendered as detached vnode trees via Vue's `render()`, so injection resolved only against the app context's `provides` — app-level/plugin provides worked, but local `provide()` on the owning component did not. The wrapper now renders rows with the owning component instance's `provides` (which prototype-chains to the app provides), so component-level, plugin, and app-level provide/inject all work inside virtualized rows. When the owner provides nothing, behavior is unchanged.
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
- Updated the core engine dependency to `@ceriousdevtech/cerious-scroll@^1.0.8` (native-scrollbar drag rendering is now coalesced to one render per frame, with no per-row layout thrash on fast drags).
|
|
15
|
+
|
|
8
16
|
## [1.0.6] - 2026-06-11
|
|
9
17
|
|
|
10
18
|
### Changed
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("vue"),j=require("@ceriousdevtech/cerious-scroll"),A="data-cerious-scroll-content",_="data-cerious-scroll-row";function q(e){const l=e.querySelector(`[${A}]`);if(l)return l;const c=document.createElement("div");return c.setAttribute(A,""),c.style.position="relative",c.style.width="100%",c.style.height="100%",c.style.overflowY="clip",c.style.overflowX="auto",e.appendChild(c),c}function L(e,l){const c=m=>{const o=m.detail;o&&l({percentage:o.percentage,currentElement:o.currentElement,scrollOffset:o.scrollOffset,result:{element:o.result.element,offset:o.result.offset}})},y=m=>{const o=m.detail;o&&l({percentage:o.percentage,currentElement:o.element,scrollOffset:o.scrollOffset,result:{element:o.element,offset:o.scrollOffset}})};return e.addEventListener("cerious-viewport-change",c),e.addEventListener("viewport-change",y),()=>{e.removeEventListener("cerious-viewport-change",c),e.removeEventListener("viewport-change",y)}}function O(e,l){const c=typeof e=="number"?e:typeof l=="number"?l:void 0;if(c===void 0||Number.isNaN(c))throw new Error("useCeriousScroll: provide `totalElements` or `items`.");return Math.max(1,Math.floor(c))}function P(e){var I;const l=n.getCurrentInstance(),c=l==null?void 0:l.provides,y=l?{...l.appContext,provides:c??l.appContext.provides}:void 0,m=n.ref(null),o=n.shallowRef(null);let t=null;const v=new Map,S=((I=e.options)==null?void 0:I.layout)==="table";let g=null;const M=r=>{if(!e.renderHeader)return;g==null||g();const u=y??null,s=n.effectScope(!0);s.run(()=>n.watchEffect(()=>{const i=e.renderHeader(),a=Array.isArray(i)?i:[i];for(const d of a)n.isVNode(d)&&(d.appContext=u);const f=n.h(n.Fragment,a);f.appContext=u,n.render(f,r)},{flush:"sync"})),g=()=>s.stop()},R=()=>n.toValue(e.autoRender)??!0,N=r=>{if(e.getItem)return e.getItem(r);const u=n.toValue(e.items);return u?u[r]:void 0},x=(r,u)=>{const s=y??null,i=n.effectScope(!0);return i.run(()=>n.watchEffect(()=>{const a=e.renderItem(N(r),r),f=Array.isArray(a)?a:[a];for(const C of f)n.isVNode(C)&&(C.appContext=s);const d=n.h(n.Fragment,f);d.appContext=s,n.render(d,u)},{flush:"sync"})),()=>i.stop()},V=r=>{r.stop(),n.render(null,r.mount),r.mount.remove()},h=()=>{var C;if(!t)return null;const{scroller:r,contentEl:u,container:s}=t,i=s.clientHeight||s.offsetHeight||0,a=(p,E)=>{const w=document.createElement("div");S&&(w.style.display="contents"),w.setAttribute(_,String(p)),E.appendChild(w);const b=x(p,w);v.set(p,{el:E,mount:w,stop:b})},f=r.renderViewport(i,u,a),d=new Set(r.getRenderedIndices());return v.forEach((p,E)=>{d.has(E)||(V(p),v.delete(E))}),(C=e.onMeasuredViewport)==null||C.call(e,f),f},H=r=>{if(!t)return;const u=t;t=null,u.unsubscribe(),v.forEach(s=>V(s)),v.clear(),g==null||g(),g=null,u.contentEl.textContent="",u.scroller.detachScrollbar(u.container),u.scroller.dispose(),o.value=null},F=r=>{var p,E,w;const u=q(r),s=e.options??{},i=s.onScroll,a={...s,onScroll:()=>{i==null||i(),R()&&h()}};if(S&&e.renderHeader){const b=(p=s.table)==null?void 0:p.header;a.table={...s.table,header:T=>{b==null||b(T),M(T)}}}const f=O(n.toValue(e.totalElements),((E=n.toValue(e.items))==null?void 0:E.length)??null),d=new j.CeriousScroll(r,f,a),C=L(r,b=>{var T;(T=e.onViewportChange)==null||T.call(e,b)});t={scroller:d,contentEl:u,container:r,unsubscribe:C},o.value=d,(w=e.onReady)==null||w.call(e,d),R()&&requestAnimationFrame(()=>h())};return n.onMounted(()=>{const r=m.value;r&&F(r)}),n.onBeforeUnmount(()=>{H()}),n.watch(()=>[n.toValue(e.totalElements),n.toValue(e.items)],()=>{var u;if(!t)return;const r=O(n.toValue(e.totalElements),((u=n.toValue(e.items))==null?void 0:u.length)??null);t.scroller.totalElements!==r&&(t.scroller.updateTotalElements(r),t.scroller.currentElement>r-1&&t.scroller.jumpToElement(r-1),R()&&h(),t.scroller.syncScrollbar())}),{containerRef:m,scroller:o,render:h,jumpToElement:r=>t?(t.scroller.jumpToElement(r),h()):null,scrollToPercentage:r=>t?(t.scroller.handleScrollPercentage(r),h()):null,reset:()=>t?(t.scroller.reset(),h()):null,recalculate:()=>t?(t.scroller.clearAllCaches(),h()):null}}const B=n.defineComponent({name:"CeriousScroll",props:{totalElements:{type:Number,default:null},items:{type:Array,default:null},getItem:{type:Function,default:void 0},renderItem:{type:Function,default:void 0},options:{type:Object,default:void 0},autoRender:{type:Boolean,default:!0}},emits:{"viewport-change":e=>!0,"measured-viewport":e=>!0,ready:e=>!0},setup(e,{slots:l,emit:c,expose:y}){const m=(t,v)=>{var S;return e.renderItem?e.renderItem(t,v):(S=l.item)==null?void 0:S.call(l,{item:t,index:v})},o=P({totalElements:()=>e.totalElements,items:()=>e.items,getItem:e.getItem?t=>e.getItem(t):void 0,renderItem:m,renderHeader:l.header?()=>l.header():void 0,options:e.options,autoRender:()=>e.autoRender,onViewportChange:t=>c("viewport-change",t),onMeasuredViewport:t=>c("measured-viewport",t),onReady:t=>c("ready",t)});return y({scroller:o.scroller,render:o.render,jumpToElement:o.jumpToElement,scrollToPercentage:o.scrollToPercentage,reset:o.reset,recalculate:o.recalculate}),()=>{var t;return n.h("div",{ref:o.containerRef,style:{position:"relative",overflow:"hidden"}},(t=l.default)==null?void 0:t.call(l))}}});Object.defineProperty(exports,"CeriousScrollEngine",{enumerable:!0,get:()=>j.CeriousScroll});exports.CeriousScroll=B;exports.useCeriousScroll=P;
|
package/dist/index.js
CHANGED
|
@@ -1,156 +1,145 @@
|
|
|
1
|
-
import { getCurrentInstance as
|
|
2
|
-
import { CeriousScroll as
|
|
3
|
-
import { CeriousScroll as
|
|
4
|
-
const
|
|
5
|
-
function
|
|
6
|
-
const
|
|
7
|
-
if (
|
|
8
|
-
const
|
|
9
|
-
return
|
|
1
|
+
import { getCurrentInstance as B, ref as U, shallowRef as W, onMounted as X, onBeforeUnmount as Y, watch as z, toValue as w, effectScope as V, watchEffect as j, isVNode as M, h as A, Fragment as N, render as S, defineComponent as D } from "vue";
|
|
2
|
+
import { CeriousScroll as G } from "@ceriousdevtech/cerious-scroll";
|
|
3
|
+
import { CeriousScroll as ue } from "@ceriousdevtech/cerious-scroll";
|
|
4
|
+
const P = "data-cerious-scroll-content", J = "data-cerious-scroll-row";
|
|
5
|
+
function K(e) {
|
|
6
|
+
const o = e.querySelector(`[${P}]`);
|
|
7
|
+
if (o) return o;
|
|
8
|
+
const l = document.createElement("div");
|
|
9
|
+
return l.setAttribute(P, ""), l.style.position = "relative", l.style.width = "100%", l.style.height = "100%", l.style.overflowY = "clip", l.style.overflowX = "auto", e.appendChild(l), l;
|
|
10
10
|
}
|
|
11
|
-
function
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
percentage:
|
|
16
|
-
currentElement:
|
|
17
|
-
scrollOffset:
|
|
18
|
-
result: { element:
|
|
11
|
+
function Q(e, o) {
|
|
12
|
+
const l = (m) => {
|
|
13
|
+
const n = m.detail;
|
|
14
|
+
n && o({
|
|
15
|
+
percentage: n.percentage,
|
|
16
|
+
currentElement: n.currentElement,
|
|
17
|
+
scrollOffset: n.scrollOffset,
|
|
18
|
+
result: { element: n.result.element, offset: n.result.offset }
|
|
19
19
|
});
|
|
20
|
-
},
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
percentage:
|
|
24
|
-
currentElement:
|
|
25
|
-
scrollOffset:
|
|
26
|
-
result: { element:
|
|
20
|
+
}, y = (m) => {
|
|
21
|
+
const n = m.detail;
|
|
22
|
+
n && o({
|
|
23
|
+
percentage: n.percentage,
|
|
24
|
+
currentElement: n.element,
|
|
25
|
+
scrollOffset: n.scrollOffset,
|
|
26
|
+
result: { element: n.element, offset: n.scrollOffset }
|
|
27
27
|
});
|
|
28
28
|
};
|
|
29
|
-
return e.addEventListener("cerious-viewport-change",
|
|
30
|
-
e.removeEventListener("cerious-viewport-change",
|
|
29
|
+
return e.addEventListener("cerious-viewport-change", l), e.addEventListener("viewport-change", y), () => {
|
|
30
|
+
e.removeEventListener("cerious-viewport-change", l), e.removeEventListener("viewport-change", y);
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
|
-
function
|
|
34
|
-
const
|
|
35
|
-
if (
|
|
33
|
+
function H(e, o) {
|
|
34
|
+
const l = typeof e == "number" ? e : typeof o == "number" ? o : void 0;
|
|
35
|
+
if (l === void 0 || Number.isNaN(l))
|
|
36
36
|
throw new Error("useCeriousScroll: provide `totalElements` or `items`.");
|
|
37
|
-
return Math.max(1, Math.floor(
|
|
37
|
+
return Math.max(1, Math.floor(l));
|
|
38
38
|
}
|
|
39
|
-
function
|
|
40
|
-
var
|
|
41
|
-
const
|
|
42
|
-
let
|
|
43
|
-
const
|
|
44
|
-
let
|
|
45
|
-
const
|
|
46
|
-
let f = null;
|
|
47
|
-
const L = (t) => {
|
|
39
|
+
function Z(e) {
|
|
40
|
+
var x;
|
|
41
|
+
const o = B(), l = o == null ? void 0 : o.provides, y = o ? { ...o.appContext, provides: l ?? o.appContext.provides } : void 0, m = U(null), n = W(null);
|
|
42
|
+
let t = null;
|
|
43
|
+
const f = /* @__PURE__ */ new Map(), T = ((x = e.options) == null ? void 0 : x.layout) === "table";
|
|
44
|
+
let v = null;
|
|
45
|
+
const _ = (r) => {
|
|
48
46
|
if (!e.renderHeader) return;
|
|
49
|
-
|
|
50
|
-
const
|
|
51
|
-
|
|
47
|
+
v == null || v();
|
|
48
|
+
const c = y ?? null, s = V(!0);
|
|
49
|
+
s.run(
|
|
52
50
|
() => j(
|
|
53
51
|
() => {
|
|
54
|
-
const
|
|
55
|
-
for (const
|
|
56
|
-
const
|
|
57
|
-
|
|
52
|
+
const u = e.renderHeader(), i = Array.isArray(u) ? u : [u];
|
|
53
|
+
for (const a of i) M(a) && (a.appContext = c);
|
|
54
|
+
const d = A(N, i);
|
|
55
|
+
d.appContext = c, S(d, r);
|
|
58
56
|
},
|
|
59
57
|
{ flush: "sync" }
|
|
60
58
|
)
|
|
61
|
-
),
|
|
62
|
-
},
|
|
63
|
-
if (e.getItem) return e.getItem(
|
|
64
|
-
const
|
|
65
|
-
return
|
|
66
|
-
},
|
|
67
|
-
const
|
|
68
|
-
return
|
|
59
|
+
), v = () => s.stop();
|
|
60
|
+
}, I = () => w(e.autoRender) ?? !0, F = (r) => {
|
|
61
|
+
if (e.getItem) return e.getItem(r);
|
|
62
|
+
const c = w(e.items);
|
|
63
|
+
return c ? c[r] : void 0;
|
|
64
|
+
}, L = (r, c) => {
|
|
65
|
+
const s = y ?? null, u = V(!0);
|
|
66
|
+
return u.run(
|
|
69
67
|
() => j(
|
|
70
68
|
() => {
|
|
71
|
-
const
|
|
72
|
-
for (const
|
|
73
|
-
|
|
74
|
-
const
|
|
75
|
-
|
|
69
|
+
const i = e.renderItem(F(r), r), d = Array.isArray(i) ? i : [i];
|
|
70
|
+
for (const C of d)
|
|
71
|
+
M(C) && (C.appContext = s);
|
|
72
|
+
const a = A(N, d);
|
|
73
|
+
a.appContext = s, S(a, c);
|
|
76
74
|
},
|
|
77
75
|
{ flush: "sync" }
|
|
78
76
|
)
|
|
79
|
-
), () =>
|
|
80
|
-
},
|
|
81
|
-
|
|
82
|
-
},
|
|
83
|
-
var
|
|
84
|
-
if (!
|
|
85
|
-
const { scroller:
|
|
77
|
+
), () => u.stop();
|
|
78
|
+
}, O = (r) => {
|
|
79
|
+
r.stop(), S(null, r.mount), r.mount.remove();
|
|
80
|
+
}, h = () => {
|
|
81
|
+
var C;
|
|
82
|
+
if (!t) return null;
|
|
83
|
+
const { scroller: r, contentEl: c, container: s } = t, u = s.clientHeight || s.offsetHeight || 0, i = (g, p) => {
|
|
86
84
|
const E = document.createElement("div");
|
|
87
|
-
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
},
|
|
91
|
-
return
|
|
92
|
-
|
|
93
|
-
}), (
|
|
94
|
-
},
|
|
95
|
-
if (!
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
var v, g, E;
|
|
103
|
-
const l = Q(t), u = e.options ?? {}, a = u.onScroll, d = {
|
|
104
|
-
...u,
|
|
85
|
+
T && (E.style.display = "contents"), E.setAttribute(J, String(g)), p.appendChild(E);
|
|
86
|
+
const b = L(g, E);
|
|
87
|
+
f.set(g, { el: p, mount: E, stop: b });
|
|
88
|
+
}, d = r.renderViewport(u, c, i), a = new Set(r.getRenderedIndices());
|
|
89
|
+
return f.forEach((g, p) => {
|
|
90
|
+
a.has(p) || (O(g), f.delete(p));
|
|
91
|
+
}), (C = e.onMeasuredViewport) == null || C.call(e, d), d;
|
|
92
|
+
}, $ = (r) => {
|
|
93
|
+
if (!t) return;
|
|
94
|
+
const c = t;
|
|
95
|
+
t = null, c.unsubscribe(), f.forEach((s) => O(s)), f.clear(), v == null || v(), v = null, c.contentEl.textContent = "", c.scroller.detachScrollbar(c.container), c.scroller.dispose(), n.value = null;
|
|
96
|
+
}, q = (r) => {
|
|
97
|
+
var g, p, E;
|
|
98
|
+
const c = K(r), s = e.options ?? {}, u = s.onScroll, i = {
|
|
99
|
+
...s,
|
|
105
100
|
onScroll: () => {
|
|
106
|
-
|
|
101
|
+
u == null || u(), I() && h();
|
|
107
102
|
}
|
|
108
103
|
};
|
|
109
|
-
if (
|
|
110
|
-
const
|
|
111
|
-
|
|
112
|
-
...
|
|
104
|
+
if (T && e.renderHeader) {
|
|
105
|
+
const b = (g = s.table) == null ? void 0 : g.header;
|
|
106
|
+
i.table = {
|
|
107
|
+
...s.table,
|
|
113
108
|
header: (R) => {
|
|
114
|
-
|
|
109
|
+
b == null || b(R), _(R);
|
|
115
110
|
}
|
|
116
111
|
};
|
|
117
112
|
}
|
|
118
|
-
const
|
|
119
|
-
s && (i.currentElement = Math.min(s.currentElement, m - 1), i.scrollOffset = s.scrollOffset, s = null);
|
|
120
|
-
const y = Z(t, (C) => {
|
|
113
|
+
const d = H(w(e.totalElements), ((p = w(e.items)) == null ? void 0 : p.length) ?? null), a = new G(r, d, i), C = Q(r, (b) => {
|
|
121
114
|
var R;
|
|
122
|
-
(R = e.onViewportChange) == null || R.call(e,
|
|
115
|
+
(R = e.onViewportChange) == null || R.call(e, b);
|
|
123
116
|
});
|
|
124
|
-
|
|
125
|
-
}, B = () => {
|
|
126
|
-
A(!0);
|
|
127
|
-
const t = n.value;
|
|
128
|
-
t && M(t);
|
|
117
|
+
t = { scroller: a, contentEl: c, container: r, unsubscribe: C }, n.value = a, (E = e.onReady) == null || E.call(e, a), I() && requestAnimationFrame(() => h());
|
|
129
118
|
};
|
|
130
|
-
return
|
|
131
|
-
const
|
|
132
|
-
|
|
133
|
-
}),
|
|
134
|
-
|
|
135
|
-
}),
|
|
119
|
+
return X(() => {
|
|
120
|
+
const r = m.value;
|
|
121
|
+
r && q(r);
|
|
122
|
+
}), Y(() => {
|
|
123
|
+
$();
|
|
124
|
+
}), z(
|
|
136
125
|
() => [w(e.totalElements), w(e.items)],
|
|
137
126
|
() => {
|
|
138
|
-
var
|
|
139
|
-
if (!
|
|
140
|
-
const
|
|
141
|
-
|
|
127
|
+
var c;
|
|
128
|
+
if (!t) return;
|
|
129
|
+
const r = H(w(e.totalElements), ((c = w(e.items)) == null ? void 0 : c.length) ?? null);
|
|
130
|
+
t.scroller.totalElements !== r && (t.scroller.updateTotalElements(r), t.scroller.currentElement > r - 1 && t.scroller.jumpToElement(r - 1), I() && h(), t.scroller.syncScrollbar());
|
|
142
131
|
}
|
|
143
132
|
), {
|
|
144
|
-
containerRef:
|
|
145
|
-
scroller:
|
|
146
|
-
render:
|
|
147
|
-
jumpToElement: (
|
|
148
|
-
scrollToPercentage: (
|
|
149
|
-
reset: () =>
|
|
150
|
-
recalculate: () =>
|
|
133
|
+
containerRef: m,
|
|
134
|
+
scroller: n,
|
|
135
|
+
render: h,
|
|
136
|
+
jumpToElement: (r) => t ? (t.scroller.jumpToElement(r), h()) : null,
|
|
137
|
+
scrollToPercentage: (r) => t ? (t.scroller.handleScrollPercentage(r), h()) : null,
|
|
138
|
+
reset: () => t ? (t.scroller.reset(), h()) : null,
|
|
139
|
+
recalculate: () => t ? (t.scroller.clearAllCaches(), h()) : null
|
|
151
140
|
};
|
|
152
141
|
}
|
|
153
|
-
const
|
|
142
|
+
const le = D({
|
|
154
143
|
name: "CeriousScroll",
|
|
155
144
|
props: {
|
|
156
145
|
/** Total item count. Falls back to `items.length` when omitted. */
|
|
@@ -177,50 +166,50 @@ const ce = G({
|
|
|
177
166
|
/** Emitted once the underlying engine instance is ready (and after recreation). */
|
|
178
167
|
ready: (e) => !0
|
|
179
168
|
},
|
|
180
|
-
setup(e, { slots:
|
|
181
|
-
const
|
|
182
|
-
var
|
|
183
|
-
return e.renderItem ? e.renderItem(
|
|
184
|
-
},
|
|
169
|
+
setup(e, { slots: o, emit: l, expose: y }) {
|
|
170
|
+
const m = (t, f) => {
|
|
171
|
+
var T;
|
|
172
|
+
return e.renderItem ? e.renderItem(t, f) : (T = o.item) == null ? void 0 : T.call(o, { item: t, index: f });
|
|
173
|
+
}, n = Z({
|
|
185
174
|
totalElements: () => e.totalElements,
|
|
186
175
|
items: () => e.items,
|
|
187
|
-
getItem: e.getItem ? (
|
|
188
|
-
renderItem:
|
|
176
|
+
getItem: e.getItem ? (t) => e.getItem(t) : void 0,
|
|
177
|
+
renderItem: m,
|
|
189
178
|
// Table mode: declarative header. Render the `#header` slot (a <tr> of
|
|
190
179
|
// <th>s) into the engine's <thead>. `undefined` when no slot is provided.
|
|
191
|
-
renderHeader:
|
|
180
|
+
renderHeader: o.header ? () => o.header() : void 0,
|
|
192
181
|
// Engine options are consumed at creation; reading the prop once matches
|
|
193
182
|
// that contract (remount via `:key` to apply new engine options).
|
|
194
183
|
options: e.options,
|
|
195
184
|
autoRender: () => e.autoRender,
|
|
196
|
-
onViewportChange: (
|
|
197
|
-
onMeasuredViewport: (
|
|
198
|
-
onReady: (
|
|
185
|
+
onViewportChange: (t) => l("viewport-change", t),
|
|
186
|
+
onMeasuredViewport: (t) => l("measured-viewport", t),
|
|
187
|
+
onReady: (t) => l("ready", t)
|
|
199
188
|
});
|
|
200
|
-
return
|
|
189
|
+
return y({
|
|
201
190
|
/** The underlying engine instance (`null` before mount). */
|
|
202
|
-
scroller:
|
|
203
|
-
render:
|
|
204
|
-
jumpToElement:
|
|
205
|
-
scrollToPercentage:
|
|
206
|
-
reset:
|
|
207
|
-
recalculate:
|
|
191
|
+
scroller: n.scroller,
|
|
192
|
+
render: n.render,
|
|
193
|
+
jumpToElement: n.jumpToElement,
|
|
194
|
+
scrollToPercentage: n.scrollToPercentage,
|
|
195
|
+
reset: n.reset,
|
|
196
|
+
recalculate: n.recalculate
|
|
208
197
|
}), () => {
|
|
209
|
-
var
|
|
210
|
-
return
|
|
198
|
+
var t;
|
|
199
|
+
return A(
|
|
211
200
|
"div",
|
|
212
201
|
{
|
|
213
|
-
ref:
|
|
202
|
+
ref: n.containerRef,
|
|
214
203
|
// User-supplied class/style/attrs fall through and merge onto this root.
|
|
215
204
|
style: { position: "relative", overflow: "hidden" }
|
|
216
205
|
},
|
|
217
|
-
(
|
|
206
|
+
(t = o.default) == null ? void 0 : t.call(o)
|
|
218
207
|
);
|
|
219
208
|
};
|
|
220
209
|
}
|
|
221
210
|
});
|
|
222
211
|
export {
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
212
|
+
le as CeriousScroll,
|
|
213
|
+
ue as CeriousScrollEngine,
|
|
214
|
+
Z as useCeriousScroll
|
|
226
215
|
};
|
|
@@ -61,6 +61,7 @@ export interface UseCeriousScrollResult {
|
|
|
61
61
|
*
|
|
62
62
|
* Rows are rendered with the host component's `appContext`, so globally
|
|
63
63
|
* registered components, directives, and installed plugins are available inside
|
|
64
|
-
* each row
|
|
64
|
+
* each row — and with the owning component instance's `provides`, so local
|
|
65
|
+
* `provide()` values reach `inject()` inside rows too (see below).
|
|
65
66
|
*/
|
|
66
67
|
export declare function useCeriousScroll<TItem = unknown>(opts: UseCeriousScrollOptions<TItem>): UseCeriousScrollResult;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ceriousdevtech/vue-cerious-scroll",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.7",
|
|
4
4
|
"description": "Vue 3 bindings for CeriousScroll — high-performance virtual scrolling with O(1) memory and no height estimation",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"demo:build": "vite build --config demo/vite.config.ts"
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
|
-
"@ceriousdevtech/cerious-scroll": "^1.0.
|
|
60
|
+
"@ceriousdevtech/cerious-scroll": "^1.0.8"
|
|
61
61
|
},
|
|
62
62
|
"peerDependencies": {
|
|
63
63
|
"vue": "^3.3.0"
|