geekin-devtoys 0.3.1 → 0.3.3

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.
@@ -1 +1 @@
1
- @charset "UTF-8";.g-input-tree-tag[data-v-274fd860]{width:100%}.g-input-tree-tag__wrap[data-v-274fd860]{display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:100%}.g-input-tree-tag__tags[data-v-274fd860]{display:flex;flex-wrap:wrap;gap:8px;width:100%}.g-input-tree-tag__tag[data-v-274fd860]{margin:0}.g-input-tree-tag.is-disabled[data-v-274fd860]{cursor:not-allowed}.g-input-tree-tag__popover{box-sizing:border-box;background:var(--el-bg-color-overlay, #fff);border:1px solid var(--el-border-color-light);border-radius:4px;box-shadow:var(--el-box-shadow-light);padding:8px 0}.g-input-tree-tag__popover .g-input-tree-tag__tree-wrap{overflow:auto}.g-input-tree-tag__popover .g-input-tree-tag__node{display:inline-flex;align-items:center;gap:4px;font-size:13px}.g-input-tree-tag__popover .g-input-tree-tag__node.is-selectable{cursor:pointer;color:var(--el-text-color-primary)}.g-input-tree-tag__popover .g-input-tree-tag__node.is-selected{color:var(--el-color-primary)}
1
+ @charset "UTF-8";.g-input-tree-tag[data-v-b74dd5d2]{width:100%}.g-input-tree-tag__wrap[data-v-b74dd5d2]{display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:100%}.g-input-tree-tag__tags[data-v-b74dd5d2]{display:flex;flex-wrap:wrap;gap:8px;width:100%}.g-input-tree-tag__tag-motion[data-v-b74dd5d2]{display:inline-flex}.g-input-tree-tag__tag[data-v-b74dd5d2]{margin:0}.g-input-tree-tag.is-disabled[data-v-b74dd5d2]{cursor:not-allowed}.g-input-tree-tag__popover{box-sizing:border-box;background:var(--el-bg-color-overlay, #fff);border:1px solid var(--el-border-color-light);border-radius:4px;box-shadow:var(--el-box-shadow-light);padding:8px 0}.g-input-tree-tag__popover .g-input-tree-tag__tree-wrap{overflow:auto}.g-input-tree-tag__popover .g-input-tree-tag__node{display:inline-flex;align-items:center;gap:4px;font-size:13px}.g-input-tree-tag__popover .g-input-tree-tag__node.is-selectable{cursor:pointer;color:var(--el-text-color-primary)}.g-input-tree-tag__popover .g-input-tree-tag__node.is-selected{color:var(--el-color-primary)}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),x=require("@vueuse/core"),Y=require("../index-xqOURU1q.js"),ee=require("../_plugin-vue_export-helper-BHFhmbuH.js");function le(p,M){const f=e.ref(!1);return e.watchEffect(t=>{const h=e.unref(M)||{},{once:S}=h,k=x.unrefElement(p);if(!k||S&&f.value)return;const B=()=>(f.value=!0,S?void 0:()=>{f.value=!1}),d=Y.inView(k,B,{...h,root:e.unref(h.root)});t(()=>{d()})},{flush:"post"}),f}const te=["onMouseenter","onClick"],se={class:"g-scroller__item-text"},ae={class:"g-scroller__item-text"},P=80,ne=10,oe=e.defineComponent({__name:"index",props:{items:{default:()=>[]},showGradients:{type:Boolean,default:!0},className:{default:""},itemClassName:{default:""},displayScrollbar:{type:Boolean,default:!0},initialSelectedIndex:{default:-1},height:{},stagger:{default:.05},loading:{type:Boolean,default:!1},skeletonCount:{default:5},seamless:{type:Boolean,default:!1},seamlessSpeed:{default:40},seamlessDirection:{default:"up"},seamlessPauseOnHover:{type:Boolean,default:!0}},emits:["itemSelected"],setup(p,{emit:M}){const f=e.defineComponent({name:"AnimatedItem",props:{index:{type:Number,required:!0},stagger:{type:Number,default:.05},instant:{type:Boolean,default:!1}},emits:["mouseenter","click"],setup(l,{slots:n,emit:s}){const a=e.ref(null),i=le(a,{amount:.5,once:!1});return()=>e.h(Y.motion.div,{ref:a,"data-index":l.index,style:{marginBottom:"1rem",cursor:"pointer"},initial:{x:-24,opacity:0},animate:i.value?{x:0,opacity:1}:{x:-24,opacity:0},transition:l.instant?{duration:0}:{duration:.3,delay:Math.min(l.index*l.stagger,.3),ease:"easeOut"},onMouseenter:m=>s("mouseenter",m),onClick:m=>s("click",m)},n.default?.())}}),t=p,h=M,S=e.useSlots(),k=e.computed(()=>!!S.default),B=e.ref(null),d=e.ref(t.initialSelectedIndex),O=e.ref(0),$=e.ref(1),F=e.ref(0),_=e.ref(0),E=e.ref(!1);let c=null;const T=e.ref(!1);let z=0,N=0,u=null;const L=e.ref(null),D=e.ref(null),W=e.computed(()=>t.seamless&&t.items.length>0?[...t.items,...t.items]:t.items),o=e.ref(0),C=e.ref(!1),r=e.ref(0),V=e.ref(!1);let v=null,g=0;const U=e.computed(()=>{const l={};return t.height!=null&&t.height!==""&&(l.height=typeof t.height=="number"?`${t.height}px`:String(t.height)),l}),j=e.computed(()=>({transform:`translateY(${o.value}px)`}));function K(l,n,s){return Math.min(Math.max(l,n),s)}const R=l=>{d.value=l},q=(l,n)=>{d.value=n,h("itemSelected",l,n)},X=l=>{const n=l.target,{scrollTop:s,scrollHeight:a,clientHeight:i}=n,m=performance.now();N>0&&Math.abs(s-z)/(m-N)>ne&&(T.value=!0),z=s,N=m,u&&clearTimeout(u),u=setTimeout(()=>{T.value=!1},150),O.value=Math.min(s/50,1);const I=a-(s+i);$.value=a<=i?0:Math.min(I/50,1)};function J(l){const n=B.value;if(!n)return;const{scrollTop:s,scrollHeight:a,clientHeight:i}=n;if(a<=i)return;const m=s<=0,I=s+i>=a-1;if(m&&l.deltaY<0||I&&l.deltaY>0){const G=K(_.value-l.deltaY*.3,-P,P);_.value=G,E.value=!0,c&&clearTimeout(c),c=setTimeout(()=>{_.value=0,E.value=!1},150)}}function w(){const l=D.value;if(!l||t.items.length===0){r.value=0,V.value=!1;return}const n=t.items.length,s=l.children[n];r.value=s?s.offsetTop:l.scrollHeight/2;const a=L.value;V.value=a?r.value>a.clientHeight:!0}function A(l){g===0&&(g=l);const n=l-g;if(g=l,!C.value&&r.value>0&&t.items.length>0){const s=t.seamlessSpeed*n/1e3;t.seamlessDirection==="down"?(o.value+=s,o.value>=0&&(o.value-=r.value)):(o.value-=s,o.value<=-r.value&&(o.value+=r.value))}v=requestAnimationFrame(A)}function b(){v==null&&(g=0,v=requestAnimationFrame(A))}function H(){v!=null&&(cancelAnimationFrame(v),v=null),g=0}function Q(){t.seamlessPauseOnHover&&(C.value=!0)}function Z(){t.seamlessPauseOnHover&&(C.value=!1)}return e.onMounted(()=>{t.seamless&&!t.loading&&(w(),o.value=t.seamlessDirection==="down"?-r.value:0,b())}),e.onUnmounted(()=>{H(),c&&(clearTimeout(c),c=null),u&&(clearTimeout(u),u=null)}),e.watch(()=>t.items,()=>{t.seamless&&e.nextTick(()=>{w(),o.value=t.seamlessDirection==="down"?-r.value:0}),F.value++,d.value=-1}),e.watch(()=>t.seamless,l=>{l&&!t.loading?e.nextTick(()=>{w(),o.value=t.seamlessDirection==="down"?-r.value:0,b()}):(H(),o.value=0,C.value=!1)}),e.watch(()=>t.loading,l=>{l?(_.value=0,E.value=!1,T.value=!1,H(),c&&(clearTimeout(c),c=null),u&&(clearTimeout(u),u=null)):t.seamless&&e.nextTick(()=>{w(),o.value=t.seamlessDirection==="down"?-r.value:0,b()})}),(l,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["g-scroller",l.className]),style:e.normalizeStyle(U.value)},[l.seamless&&!l.loading?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"seamlessWrapRef",ref:L,class:"g-scroller__seamless",onMouseenter:Q,onMouseleave:Z},[e.createElementVNode("div",{ref_key:"seamlessTrackRef",ref:D,class:"g-scroller__seamless-track",style:e.normalizeStyle(j.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(W.value,(s,a)=>(e.openBlock(),e.createElementBlock("div",{key:`seamless-${a}`,class:e.normalizeClass(["g-scroller__item","g-scroller__item--seamless",!k.value&&"g-scroller__item--default",d.value===a%l.items.length&&"g-scroller__item--active",l.itemClassName]),onMouseenter:i=>R(a%l.items.length),onClick:i=>q(s,a%l.items.length)},[e.renderSlot(l.$slots,"default",{item:s,index:a%l.items.length},()=>[e.createElementVNode("p",se,e.toDisplayString(s),1)],!0)],42,te))),128))],4),l.showGradients&&V.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[n[0]||(n[0]=e.createElementVNode("div",{class:"g-scroller__gradient g-scroller__gradient--top"},null,-1)),n[1]||(n[1]=e.createElementVNode("div",{class:"g-scroller__gradient g-scroller__gradient--bottom"},null,-1))],64)):e.createCommentVNode("",!0)],544)):l.loading?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["g-scroller__list",!l.displayScrollbar&&"g-scroller__list--hidden-scrollbar"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.skeletonCount,s=>(e.openBlock(),e.createElementBlock("div",{key:`skeleton-${s}`,class:"g-scroller__skeleton"},n[2]||(n[2]=[e.createElementVNode("div",{class:"g-scroller__skeleton-line"},null,-1)])))),128))],2)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("div",{ref_key:"listRef",ref:B,class:e.normalizeClass(["g-scroller__list",!l.displayScrollbar&&"g-scroller__list--hidden-scrollbar"]),onScroll:X,onWheel:J},[e.createElementVNode("div",{class:e.normalizeClass(["g-scroller__content",{"g-scroller__content--pulling":E.value}]),style:e.normalizeStyle({transform:`translateY(${_.value}px)`})},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.items,(s,a)=>(e.openBlock(),e.createBlock(e.unref(f),{key:`${F.value}-${a}`,index:a,stagger:l.stagger,instant:T.value,onMouseenter:i=>R(a),onClick:i=>q(s,a)},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["g-scroller__item",!k.value&&"g-scroller__item--default",d.value===a&&"g-scroller__item--active",l.itemClassName])},[e.renderSlot(l.$slots,"default",{item:s,index:a},()=>[e.createElementVNode("p",ae,e.toDisplayString(s),1)],!0)],2)]),_:2},1032,["index","stagger","instant","onMouseenter","onClick"]))),128))],6)],34),l.showGradients?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",{class:"g-scroller__gradient g-scroller__gradient--top",style:e.normalizeStyle({opacity:O.value})},null,4),e.createElementVNode("div",{class:"g-scroller__gradient g-scroller__gradient--bottom",style:e.normalizeStyle({opacity:$.value})},null,4)],64)):e.createCommentVNode("",!0)],64))],6))}}),y=ee._export_sfc(oe,[["__scopeId","data-v-972060e6"]]);y.install=p=>{p.component(y.name,y)};exports.GScroller=y;exports.default=y;
@@ -0,0 +1,283 @@
1
+ import { ref as n, watchEffect as de, unref as W, defineComponent as ee, h as ve, useSlots as ge, computed as B, onMounted as pe, onUnmounted as he, watch as G, nextTick as P, createElementBlock as c, openBlock as r, normalizeStyle as C, normalizeClass as y, createElementVNode as m, createCommentVNode as le, Fragment as k, renderList as V, renderSlot as te, toDisplayString as se, createBlock as _e, withCtx as ye } from "vue";
2
+ import { unrefElement as ke } from "@vueuse/core";
3
+ import { i as Se, b as Te } from "../index-Bi7JS7ve.mjs";
4
+ import { _ as we } from "../_plugin-vue_export-helper-CHgC5LLL.mjs";
5
+ function Me(S, E) {
6
+ const p = n(!1);
7
+ return de((l) => {
8
+ const T = W(E) || {}, { once: b } = T, w = ke(S);
9
+ if (!w || b && p.value) return;
10
+ const g = Se(w, () => (p.value = !0, b ? void 0 : () => {
11
+ p.value = !1;
12
+ }), {
13
+ ...T,
14
+ root: W(T.root)
15
+ });
16
+ l(() => {
17
+ g();
18
+ });
19
+ }, { flush: "post" }), p;
20
+ }
21
+ const Ce = ["onMouseenter", "onClick"], be = { class: "g-scroller__item-text" }, He = { class: "g-scroller__item-text" }, ae = 80, Ie = 10, $e = /* @__PURE__ */ ee({
22
+ __name: "index",
23
+ props: {
24
+ items: { default: () => [] },
25
+ showGradients: { type: Boolean, default: !0 },
26
+ className: { default: "" },
27
+ itemClassName: { default: "" },
28
+ displayScrollbar: { type: Boolean, default: !0 },
29
+ initialSelectedIndex: { default: -1 },
30
+ height: {},
31
+ stagger: { default: 0.05 },
32
+ loading: { type: Boolean, default: !1 },
33
+ skeletonCount: { default: 5 },
34
+ seamless: { type: Boolean, default: !1 },
35
+ seamlessSpeed: { default: 40 },
36
+ seamlessDirection: { default: "up" },
37
+ seamlessPauseOnHover: { type: Boolean, default: !0 }
38
+ },
39
+ emits: ["itemSelected"],
40
+ setup(S, { emit: E }) {
41
+ const p = ee({
42
+ name: "AnimatedItem",
43
+ props: {
44
+ index: { type: Number, required: !0 },
45
+ stagger: { type: Number, default: 0.05 },
46
+ // 快速滚动时由父级置 true,跳过进场过渡即时显示,避免动效跟不上滚动速度导致空白
47
+ instant: { type: Boolean, default: !1 }
48
+ },
49
+ emits: ["mouseenter", "click"],
50
+ setup(e, { slots: a, emit: t }) {
51
+ const s = n(null), u = Me(s, { amount: 0.5, once: !1 });
52
+ return () => ve(
53
+ Te.div,
54
+ {
55
+ ref: s,
56
+ "data-index": e.index,
57
+ style: { marginBottom: "1rem", cursor: "pointer" },
58
+ initial: { x: -24, opacity: 0 },
59
+ animate: u.value ? { x: 0, opacity: 1 } : { x: -24, opacity: 0 },
60
+ transition: e.instant ? { duration: 0 } : {
61
+ duration: 0.3,
62
+ delay: Math.min(e.index * e.stagger, 0.3),
63
+ ease: "easeOut"
64
+ },
65
+ onMouseenter: (v) => t("mouseenter", v),
66
+ onClick: (v) => t("click", v)
67
+ },
68
+ a.default?.()
69
+ );
70
+ }
71
+ }), l = S, T = E, b = ge(), w = B(() => !!b.default), R = n(null), g = n(l.initialSelectedIndex), q = n(0), z = n(1), U = n(0), M = n(0), H = n(!1);
72
+ let f = null;
73
+ const I = n(!1);
74
+ let K = 0, D = 0, d = null;
75
+ const X = n(null), j = n(null), ne = B(
76
+ () => l.seamless && l.items.length > 0 ? [...l.items, ...l.items] : l.items
77
+ ), o = n(0), $ = n(!1), i = n(0), L = n(!1);
78
+ let h = null, _ = 0;
79
+ const oe = B(() => {
80
+ const e = {};
81
+ return l.height != null && l.height !== "" && (e.height = typeof l.height == "number" ? `${l.height}px` : String(l.height)), e;
82
+ }), re = B(() => ({
83
+ transform: `translateY(${o.value}px)`
84
+ }));
85
+ function ie(e, a, t) {
86
+ return Math.min(Math.max(e, a), t);
87
+ }
88
+ const J = (e) => {
89
+ g.value = e;
90
+ }, Q = (e, a) => {
91
+ g.value = a, T("itemSelected", e, a);
92
+ }, ue = (e) => {
93
+ const a = e.target, { scrollTop: t, scrollHeight: s, clientHeight: u } = a, v = performance.now();
94
+ D > 0 && Math.abs(t - K) / (v - D) > Ie && (I.value = !0), K = t, D = v, d && clearTimeout(d), d = setTimeout(() => {
95
+ I.value = !1;
96
+ }, 150), q.value = Math.min(t / 50, 1);
97
+ const F = s - (t + u);
98
+ z.value = s <= u ? 0 : Math.min(F / 50, 1);
99
+ };
100
+ function ce(e) {
101
+ const a = R.value;
102
+ if (!a) return;
103
+ const { scrollTop: t, scrollHeight: s, clientHeight: u } = a;
104
+ if (s <= u) return;
105
+ const v = t <= 0, F = t + u >= s - 1;
106
+ if (v && e.deltaY < 0 || F && e.deltaY > 0) {
107
+ const x = ie(M.value - e.deltaY * 0.3, -ae, ae);
108
+ M.value = x, H.value = !0, f && clearTimeout(f), f = setTimeout(() => {
109
+ M.value = 0, H.value = !1;
110
+ }, 150);
111
+ }
112
+ }
113
+ function O() {
114
+ const e = j.value;
115
+ if (!e || l.items.length === 0) {
116
+ i.value = 0, L.value = !1;
117
+ return;
118
+ }
119
+ const a = l.items.length, t = e.children[a];
120
+ i.value = t ? t.offsetTop : e.scrollHeight / 2;
121
+ const s = X.value;
122
+ L.value = s ? i.value > s.clientHeight : !0;
123
+ }
124
+ function Z(e) {
125
+ _ === 0 && (_ = e);
126
+ const a = e - _;
127
+ if (_ = e, !$.value && i.value > 0 && l.items.length > 0) {
128
+ const t = l.seamlessSpeed * a / 1e3;
129
+ l.seamlessDirection === "down" ? (o.value += t, o.value >= 0 && (o.value -= i.value)) : (o.value -= t, o.value <= -i.value && (o.value += i.value));
130
+ }
131
+ h = requestAnimationFrame(Z);
132
+ }
133
+ function N() {
134
+ h == null && (_ = 0, h = requestAnimationFrame(Z));
135
+ }
136
+ function A() {
137
+ h != null && (cancelAnimationFrame(h), h = null), _ = 0;
138
+ }
139
+ function me() {
140
+ l.seamlessPauseOnHover && ($.value = !0);
141
+ }
142
+ function fe() {
143
+ l.seamlessPauseOnHover && ($.value = !1);
144
+ }
145
+ return pe(() => {
146
+ l.seamless && !l.loading && (O(), o.value = l.seamlessDirection === "down" ? -i.value : 0, N());
147
+ }), he(() => {
148
+ A(), f && (clearTimeout(f), f = null), d && (clearTimeout(d), d = null);
149
+ }), G(
150
+ () => l.items,
151
+ () => {
152
+ l.seamless && P(() => {
153
+ O(), o.value = l.seamlessDirection === "down" ? -i.value : 0;
154
+ }), U.value++, g.value = -1;
155
+ }
156
+ ), G(
157
+ () => l.seamless,
158
+ (e) => {
159
+ e && !l.loading ? P(() => {
160
+ O(), o.value = l.seamlessDirection === "down" ? -i.value : 0, N();
161
+ }) : (A(), o.value = 0, $.value = !1);
162
+ }
163
+ ), G(
164
+ () => l.loading,
165
+ (e) => {
166
+ e ? (M.value = 0, H.value = !1, I.value = !1, A(), f && (clearTimeout(f), f = null), d && (clearTimeout(d), d = null)) : l.seamless && P(() => {
167
+ O(), o.value = l.seamlessDirection === "down" ? -i.value : 0, N();
168
+ });
169
+ }
170
+ ), (e, a) => (r(), c("div", {
171
+ class: y(["g-scroller", e.className]),
172
+ style: C(oe.value)
173
+ }, [
174
+ e.seamless && !e.loading ? (r(), c("div", {
175
+ key: 0,
176
+ ref_key: "seamlessWrapRef",
177
+ ref: X,
178
+ class: "g-scroller__seamless",
179
+ onMouseenter: me,
180
+ onMouseleave: fe
181
+ }, [
182
+ m("div", {
183
+ ref_key: "seamlessTrackRef",
184
+ ref: j,
185
+ class: "g-scroller__seamless-track",
186
+ style: C(re.value)
187
+ }, [
188
+ (r(!0), c(k, null, V(ne.value, (t, s) => (r(), c("div", {
189
+ key: `seamless-${s}`,
190
+ class: y([
191
+ "g-scroller__item",
192
+ "g-scroller__item--seamless",
193
+ !w.value && "g-scroller__item--default",
194
+ g.value === s % e.items.length && "g-scroller__item--active",
195
+ e.itemClassName
196
+ ]),
197
+ onMouseenter: (u) => J(s % e.items.length),
198
+ onClick: (u) => Q(t, s % e.items.length)
199
+ }, [
200
+ te(e.$slots, "default", {
201
+ item: t,
202
+ index: s % e.items.length
203
+ }, () => [
204
+ m("p", be, se(t), 1)
205
+ ], !0)
206
+ ], 42, Ce))), 128))
207
+ ], 4),
208
+ e.showGradients && L.value ? (r(), c(k, { key: 0 }, [
209
+ a[0] || (a[0] = m("div", { class: "g-scroller__gradient g-scroller__gradient--top" }, null, -1)),
210
+ a[1] || (a[1] = m("div", { class: "g-scroller__gradient g-scroller__gradient--bottom" }, null, -1))
211
+ ], 64)) : le("", !0)
212
+ ], 544)) : e.loading ? (r(), c("div", {
213
+ key: 1,
214
+ class: y(["g-scroller__list", !e.displayScrollbar && "g-scroller__list--hidden-scrollbar"])
215
+ }, [
216
+ (r(!0), c(k, null, V(e.skeletonCount, (t) => (r(), c("div", {
217
+ key: `skeleton-${t}`,
218
+ class: "g-scroller__skeleton"
219
+ }, a[2] || (a[2] = [
220
+ m("div", { class: "g-scroller__skeleton-line" }, null, -1)
221
+ ])))), 128))
222
+ ], 2)) : (r(), c(k, { key: 2 }, [
223
+ m("div", {
224
+ ref_key: "listRef",
225
+ ref: R,
226
+ class: y(["g-scroller__list", !e.displayScrollbar && "g-scroller__list--hidden-scrollbar"]),
227
+ onScroll: ue,
228
+ onWheel: ce
229
+ }, [
230
+ m("div", {
231
+ class: y(["g-scroller__content", { "g-scroller__content--pulling": H.value }]),
232
+ style: C({ transform: `translateY(${M.value}px)` })
233
+ }, [
234
+ (r(!0), c(k, null, V(e.items, (t, s) => (r(), _e(W(p), {
235
+ key: `${U.value}-${s}`,
236
+ index: s,
237
+ stagger: e.stagger,
238
+ instant: I.value,
239
+ onMouseenter: (u) => J(s),
240
+ onClick: (u) => Q(t, s)
241
+ }, {
242
+ default: ye(() => [
243
+ m("div", {
244
+ class: y([
245
+ "g-scroller__item",
246
+ !w.value && "g-scroller__item--default",
247
+ g.value === s && "g-scroller__item--active",
248
+ e.itemClassName
249
+ ])
250
+ }, [
251
+ te(e.$slots, "default", {
252
+ item: t,
253
+ index: s
254
+ }, () => [
255
+ m("p", He, se(t), 1)
256
+ ], !0)
257
+ ], 2)
258
+ ]),
259
+ _: 2
260
+ }, 1032, ["index", "stagger", "instant", "onMouseenter", "onClick"]))), 128))
261
+ ], 6)
262
+ ], 34),
263
+ e.showGradients ? (r(), c(k, { key: 0 }, [
264
+ m("div", {
265
+ class: "g-scroller__gradient g-scroller__gradient--top",
266
+ style: C({ opacity: q.value })
267
+ }, null, 4),
268
+ m("div", {
269
+ class: "g-scroller__gradient g-scroller__gradient--bottom",
270
+ style: C({ opacity: z.value })
271
+ }, null, 4)
272
+ ], 64)) : le("", !0)
273
+ ], 64))
274
+ ], 6));
275
+ }
276
+ }), Y = /* @__PURE__ */ we($e, [["__scopeId", "data-v-972060e6"]]);
277
+ Y.install = (S) => {
278
+ S.component(Y.name, Y);
279
+ };
280
+ export {
281
+ Y as GScroller,
282
+ Y as default
283
+ };
@@ -0,0 +1 @@
1
+ .g-scroller[data-v-972060e6]{position:relative;width:100%;height:100%;--g-scroller-line-height: 1.2em}.g-scroller[data-v-972060e6],.g-scroller[data-v-972060e6] *,.g-scroller[data-v-972060e6] *:before,.g-scroller[data-v-972060e6] *:after{box-sizing:border-box}.g-scroller__list[data-v-972060e6]{height:100%;overflow-y:auto;padding:1rem;scrollbar-width:thin;overscroll-behavior-y:contain}.g-scroller__list[data-v-972060e6]::-webkit-scrollbar{width:8px}.g-scroller__list[data-v-972060e6]::-webkit-scrollbar-track{background:#111}.g-scroller__list[data-v-972060e6]::-webkit-scrollbar-thumb{background:#222;border-radius:4px}.g-scroller__list--hidden-scrollbar[data-v-972060e6]{scrollbar-width:none}.g-scroller__list--hidden-scrollbar[data-v-972060e6]::-webkit-scrollbar{display:none}.g-scroller__content[data-v-972060e6]{transition:transform .45s cubic-bezier(.34,1.56,.64,1)}.g-scroller__content--pulling[data-v-972060e6]{transition:none}.g-scroller__seamless[data-v-972060e6]{position:relative;height:100%;width:100%;overflow:hidden}.g-scroller__seamless-track[data-v-972060e6]{will-change:transform}.g-scroller__item[data-v-972060e6]{border-radius:.5rem}.g-scroller__item--default[data-v-972060e6]{padding:1rem;background:#222;transition:background .2s ease}.g-scroller__item--default.g-scroller__item--active[data-v-972060e6]{background:#2d2d3a}.g-scroller__item--seamless[data-v-972060e6]{margin-bottom:1rem;cursor:pointer}.g-scroller__item-text[data-v-972060e6]{margin:0;color:#fff;line-height:var(--g-scroller-line-height)}.g-scroller__skeleton[data-v-972060e6]{padding:1rem;background:#1a1a22;border-radius:.5rem;margin-bottom:1rem}.g-scroller__skeleton-line[data-v-972060e6]{height:var(--g-scroller-line-height);background:linear-gradient(90deg,#2a2a35 25%,#3a3a48 37%,#2a2a35 63%);background-size:400% 100%;border-radius:6px;animation:g-scroller-shimmer-972060e6 1.4s ease infinite}.g-scroller__gradient[data-v-972060e6]{position:absolute;left:0;right:0;pointer-events:none;transition:opacity .3s ease}.g-scroller__gradient--top[data-v-972060e6]{top:0;height:50px;background:linear-gradient(to bottom,#120f17,transparent)}.g-scroller__gradient--bottom[data-v-972060e6]{bottom:0;height:100px;background:linear-gradient(to top,#120f17,transparent)}@keyframes g-scroller-shimmer-972060e6{0%{background-position:100% 0}to{background-position:0 0}}
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,45 @@
1
+ interface BorderGlowProps {
2
+ className?: string;
3
+ edgeSensitivity?: number;
4
+ glowColor?: string;
5
+ backgroundColor?: string;
6
+ borderRadius?: number;
7
+ glowRadius?: number;
8
+ glowIntensity?: number;
9
+ coneSpread?: number;
10
+ animated?: boolean;
11
+ colors?: string[];
12
+ fillOpacity?: number;
13
+ }
14
+ declare function __VLS_template(): {
15
+ attrs: Partial<{}>;
16
+ slots: {
17
+ default?(_: {}): any;
18
+ };
19
+ refs: {
20
+ cardRef: HTMLDivElement;
21
+ };
22
+ rootEl: HTMLDivElement;
23
+ };
24
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
25
+ declare const __VLS_component: import('vue').DefineComponent<BorderGlowProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<BorderGlowProps> & Readonly<{}>, {
26
+ className: string;
27
+ borderRadius: number;
28
+ fillOpacity: number;
29
+ edgeSensitivity: number;
30
+ glowColor: string;
31
+ glowRadius: number;
32
+ glowIntensity: number;
33
+ coneSpread: number;
34
+ animated: boolean;
35
+ colors: string[];
36
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
37
+ cardRef: HTMLDivElement;
38
+ }, HTMLDivElement>;
39
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
40
+ export default _default;
41
+ type __VLS_WithTemplateSlots<T, S> = T & {
42
+ new (): {
43
+ $slots: S;
44
+ };
45
+ };
@@ -0,0 +1,17 @@
1
+ /**
2
+ * GCard 预置配色方案
3
+ * 每个方案包含 mesh 渐变色、外发光色与卡片底色,深浅背景均有覆盖
4
+ */
5
+ export interface CardPreset {
6
+ /** 方案名 */
7
+ name: string;
8
+ /** mesh 渐变颜色数组,建议 3 个 */
9
+ colors: string[];
10
+ /** 外发光 HSL 颜色,格式 "h s l"(百分号可省略) */
11
+ glowColor: string;
12
+ /** 卡片底色 */
13
+ backgroundColor: string;
14
+ /** 是否深色背景,用于决定叠加的文字色等 */
15
+ dark: boolean;
16
+ }
17
+ export declare const cardPresets: CardPreset[];
@@ -0,0 +1,61 @@
1
+ interface FuzzyTextProps {
2
+ /** 字号;number 按 px 处理,string 支持任意 CSS 字号(如 clamp / vw / rem) */
3
+ fontSize?: number | string;
4
+ /** 字重 */
5
+ fontWeight?: string | number;
6
+ /** 字体;'inherit' 时取宿主 canvas 的 computed font-family */
7
+ fontFamily?: string;
8
+ /** 文字颜色,未配置 gradient 时生效 */
9
+ color?: string;
10
+ /** 是否启用鼠标 / 触摸悬停切换到 hoverIntensity */
11
+ enableHover?: boolean;
12
+ /** 静止状态下的模糊强度(0~1),作为随机偏移系数 */
13
+ baseIntensity?: number;
14
+ /** 悬停状态下的模糊强度 */
15
+ hoverIntensity?: number;
16
+ /** 每行随机偏移的最大像素值,最终偏移量 ≈ intensity × fuzzRange */
17
+ fuzzRange?: number;
18
+ /** 动画帧率上限,用于在 requestAnimationFrame 中做节流 */
19
+ fps?: number;
20
+ /** 抖动方向;vertical / both 时纵向幅度为横向的 0.5 倍 */
21
+ direction?: 'horizontal' | 'vertical' | 'both';
22
+ /** 强度切换的过渡时长(ms),0 表示无过渡瞬切 */
23
+ transitionDuration?: number;
24
+ /** 点击时触发 150ms 的最大强度(intensity=1) */
25
+ clickEffect?: boolean;
26
+ /** 开启周期性 "故障" 闪烁 */
27
+ glitchMode?: boolean;
28
+ /** glitch 触发间隔(ms) */
29
+ glitchInterval?: number;
30
+ /** 单次 glitch 持续时间(ms) */
31
+ glitchDuration?: number;
32
+ /** 横向线性渐变色数组,长度 ≥ 2 时覆盖 color */
33
+ gradient?: string[] | null;
34
+ /** 字符间距(px),非 0 时切换为逐字符绘制路径 */
35
+ letterSpacing?: number;
36
+ /** 透传到 canvas 的自定义类名 */
37
+ className?: string;
38
+ }
39
+ declare const _default: import('vue').DefineComponent<FuzzyTextProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<FuzzyTextProps> & Readonly<{}>, {
40
+ className: string;
41
+ color: string;
42
+ gradient: string[] | null;
43
+ direction: "horizontal" | "vertical" | "both";
44
+ fontFamily: string;
45
+ fontSize: number | string;
46
+ fontWeight: string | number;
47
+ letterSpacing: number;
48
+ transitionDuration: number;
49
+ enableHover: boolean;
50
+ baseIntensity: number;
51
+ hoverIntensity: number;
52
+ fuzzRange: number;
53
+ fps: number;
54
+ clickEffect: boolean;
55
+ glitchMode: boolean;
56
+ glitchInterval: number;
57
+ glitchDuration: number;
58
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
59
+ canvasRef: HTMLCanvasElement;
60
+ }, HTMLCanvasElement>;
61
+ export default _default;
@@ -1,10 +1,13 @@
1
- interface TreeFieldProps {
2
- label?: string;
3
- children?: string;
4
- value?: string;
5
- isLeaf?: string;
1
+ import { default as GInputTreeTag } from './index';
2
+ export default GInputTreeTag;
3
+ export { GInputTreeTag };
4
+ g;
6
5
  disabled?: string;
7
6
  }
7
+ interface EchoFieldProps {
8
+ value?: string;
9
+ label?: string;
10
+ }
8
11
  interface SelectedItem {
9
12
  value: any;
10
13
  label: string;
@@ -17,6 +20,8 @@ interface Props {
17
20
  data?: any[];
18
21
  /** 字段映射,对应 el-tree 的 props,外加 value/isLeaf 用于本组件 */
19
22
  props?: TreeFieldProps;
23
+ /** 回显对象字段映射,用于 valueFormat='object' 时从接口数据中读取值和标签 */
24
+ echoProps?: EchoFieldProps;
20
25
  /** el-tree 的 node-key */
21
26
  nodeKey?: string;
22
27
  /** 输入框占位文案 */
@@ -82,7 +87,6 @@ declare function __VLS_template(): {
82
87
  refs: {
83
88
  wrapRef: HTMLDivElement;
84
89
  inputBoxRef: HTMLDivElement;
85
- popperRef: HTMLDivElement;
86
90
  treeRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('vue').ExtractPropTypes<{
87
91
  readonly data: import('element-plus/es/utils/index.mjs').EpPropFinalized<(new (...args: any[]) => import('element-plus').TreeData) | (() => import('element-plus').TreeData) | ((new (...args: any[]) => import('element-plus').TreeData) | (() => import('element-plus').TreeData))[], unknown, unknown, () => never[], boolean>;
88
92
  readonly emptyText: {
@@ -511,7 +515,7 @@ declare function __VLS_template(): {
511
515
  readonly disabled: boolean;
512
516
  readonly nextSibling: any | null;
513
517
  readonly previousSibling: any | null;
514
- contains: (target: import('element-plus/es/components/tree/src/model/node.mjs').default, deep?: boolean) => boolean;
518
+ contains: (target: import('element-plus/es/components/tree/src/model/node.mjs').default, deep? /** 下拉面板最大高度 */: boolean) => boolean;
515
519
  remove: () => void;
516
520
  insertChild: (child?: import('element-plus').FakeNode | import('element-plus/es/components/tree/src/model/node.mjs').default, index?: number, batch?: boolean) => void;
517
521
  insertBefore: (child: import('element-plus').FakeNode | import('element-plus/es/components/tree/src/model/node.mjs').default, ref: import('element-plus/es/components/tree/src/model/node.mjs').default) => void;
@@ -523,7 +527,7 @@ declare function __VLS_template(): {
523
527
  collapse: () => void;
524
528
  shouldLoadData: () => boolean;
525
529
  updateLeafState: () => void;
526
- setChecked: (value?: boolean | string, deep?: boolean, recursion?: boolean, passValue?: boolean) => void;
530
+ setChecked: (value?: boolean | string, deep?: boolean, recursion?: boolean, passValue? /** 回车未匹配时的提示文案,传空串则不弹提示 */: boolean) => void;
527
531
  getChildren: (forceInit?: boolean) => import('element-plus').TreeNodeData | import('element-plus').TreeNodeData[] | null;
528
532
  updateChildren: () => void;
529
533
  loadData: (callback: (data?: import('element-plus').TreeNodeData[]) => void, defaultProps?: import('element-plus').TreeNodeLoadedDefaultProps) => void;
@@ -1024,7 +1028,7 @@ declare function __VLS_template(): {
1024
1028
  readonly disabled: boolean;
1025
1029
  readonly nextSibling: any | null;
1026
1030
  readonly previousSibling: any | null;
1027
- contains: (target: import('element-plus/es/components/tree/src/model/node.mjs').default, deep?: boolean) => boolean;
1031
+ contains: (target: import('element-plus/es/components/tree/src/model/node.mjs').default, deep? /** 下拉面板最大高度 */: boolean) => boolean;
1028
1032
  remove: () => void;
1029
1033
  insertChild: (child?: import('element-plus').FakeNode | import('element-plus/es/components/tree/src/model/node.mjs').default, index?: number, batch?: boolean) => void;
1030
1034
  insertBefore: (child: import('element-plus').FakeNode | import('element-plus/es/components/tree/src/model/node.mjs').default, ref: import('element-plus/es/components/tree/src/model/node.mjs').default) => void;
@@ -1036,7 +1040,7 @@ declare function __VLS_template(): {
1036
1040
  collapse: () => void;
1037
1041
  shouldLoadData: () => boolean;
1038
1042
  updateLeafState: () => void;
1039
- setChecked: (value?: boolean | string, deep?: boolean, recursion?: boolean, passValue?: boolean) => void;
1043
+ setChecked: (value?: boolean | string, deep?: boolean, recursion?: boolean, passValue? /** 回车未匹配时的提示文案,传空串则不弹提示 */: boolean) => void;
1040
1044
  getChildren: (forceInit?: boolean) => import('element-plus').TreeNodeData | import('element-plus').TreeNodeData[] | null;
1041
1045
  updateChildren: () => void;
1042
1046
  loadData: (callback: (data?: import('element-plus').TreeNodeData[]) => void, defaultProps?: import('element-plus').TreeNodeLoadedDefaultProps) => void;
@@ -1102,6 +1106,12 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {
1102
1106
  clear: () => void;
1103
1107
  /** 根据 value 直接添加 */
1104
1108
  addByValue: (value: any) => void;
1109
+ /** 根据索引移除,触发与关闭 tag 一致的事件 */
1110
+ removeByIndex: (index: number) => void;
1111
+ /** 根据 value 移除,触发与关闭 tag 一致的事件 */
1112
+ removeByValue: (value: any) => void;
1113
+ /** 获取当前归一化后的已选项 */
1114
+ getSelectedItems: () => SelectedItem[];
1105
1115
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
1106
1116
  "update:modelValue": (value: any[]) => any;
1107
1117
  add: (item: SelectedItem) => any;
@@ -1142,7 +1152,6 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {
1142
1152
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
1143
1153
  wrapRef: HTMLDivElement;
1144
1154
  inputBoxRef: HTMLDivElement;
1145
- popperRef: HTMLDivElement;
1146
1155
  treeRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('vue').ExtractPropTypes<{
1147
1156
  readonly data: import('element-plus/es/utils/index.mjs').EpPropFinalized<(new (...args: any[]) => import('element-plus').TreeData) | (() => import('element-plus').TreeData) | ((new (...args: any[]) => import('element-plus').TreeData) | (() => import('element-plus').TreeData))[], unknown, unknown, () => never[], boolean>;
1148
1157
  readonly emptyText: {
@@ -1571,7 +1580,7 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {
1571
1580
  readonly disabled: boolean;
1572
1581
  readonly nextSibling: any | null;
1573
1582
  readonly previousSibling: any | null;
1574
- contains: (target: import('element-plus/es/components/tree/src/model/node.mjs').default, deep?: boolean) => boolean;
1583
+ contains: (target: import('element-plus/es/components/tree/src/model/node.mjs').default, deep? /** 下拉面板最大高度 */: boolean) => boolean;
1575
1584
  remove: () => void;
1576
1585
  insertChild: (child?: import('element-plus').FakeNode | import('element-plus/es/components/tree/src/model/node.mjs').default, index?: number, batch?: boolean) => void;
1577
1586
  insertBefore: (child: import('element-plus').FakeNode | import('element-plus/es/components/tree/src/model/node.mjs').default, ref: import('element-plus/es/components/tree/src/model/node.mjs').default) => void;
@@ -1583,7 +1592,7 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {
1583
1592
  collapse: () => void;
1584
1593
  shouldLoadData: () => boolean;
1585
1594
  updateLeafState: () => void;
1586
- setChecked: (value?: boolean | string, deep?: boolean, recursion?: boolean, passValue?: boolean) => void;
1595
+ setChecked: (value?: boolean | string, deep?: boolean, recursion?: boolean, passValue? /** 回车未匹配时的提示文案,传空串则不弹提示 */: boolean) => void;
1587
1596
  getChildren: (forceInit?: boolean) => import('element-plus').TreeNodeData | import('element-plus').TreeNodeData[] | null;
1588
1597
  updateChildren: () => void;
1589
1598
  loadData: (callback: (data?: import('element-plus').TreeNodeData[]) => void, defaultProps?: import('element-plus').TreeNodeLoadedDefaultProps) => void;
@@ -2084,7 +2093,7 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {
2084
2093
  readonly disabled: boolean;
2085
2094
  readonly nextSibling: any | null;
2086
2095
  readonly previousSibling: any | null;
2087
- contains: (target: import('element-plus/es/components/tree/src/model/node.mjs').default, deep?: boolean) => boolean;
2096
+ contains: (target: import('element-plus/es/components/tree/src/model/node.mjs').default, deep? /** 下拉面板最大高度 */: boolean) => boolean;
2088
2097
  remove: () => void;
2089
2098
  insertChild: (child?: import('element-plus').FakeNode | import('element-plus/es/components/tree/src/model/node.mjs').default, index?: number, batch?: boolean) => void;
2090
2099
  insertBefore: (child: import('element-plus').FakeNode | import('element-plus/es/components/tree/src/model/node.mjs').default, ref: import('element-plus/es/components/tree/src/model/node.mjs').default) => void;
@@ -2096,7 +2105,7 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {
2096
2105
  collapse: () => void;
2097
2106
  shouldLoadData: () => boolean;
2098
2107
  updateLeafState: () => void;
2099
- setChecked: (value?: boolean | string, deep?: boolean, recursion?: boolean, passValue?: boolean) => void;
2108
+ setChecked: (value?: boolean | string, deep?: boolean, recursion?: boolean, passValue? /** 回车未匹配时的提示文案,传空串则不弹提示 */: boolean) => void;
2100
2109
  getChildren: (forceInit?: boolean) => import('element-plus').TreeNodeData | import('element-plus').TreeNodeData[] | null;
2101
2110
  updateChildren: () => void;
2102
2111
  loadData: (callback: (data?: import('element-plus').TreeNodeData[]) => void, defaultProps?: import('element-plus').TreeNodeLoadedDefaultProps) => void;
@@ -0,0 +1,70 @@
1
+ interface AnimatedListProps {
2
+ items?: any[];
3
+ showGradients?: boolean;
4
+ className?: string;
5
+ itemClassName?: string;
6
+ displayScrollbar?: boolean;
7
+ initialSelectedIndex?: number;
8
+ height?: string | number;
9
+ stagger?: number;
10
+ loading?: boolean;
11
+ skeletonCount?: number;
12
+ /** 是否开启无缝循环滚动 */
13
+ seamless?: boolean;
14
+ /** 无缝滚动速度(px / 秒) */
15
+ seamlessSpeed?: number;
16
+ /** 无缝滚动方向:up 内容上移 / down 内容下移 */
17
+ seamlessDirection?: 'up' | 'down';
18
+ /** 鼠标悬停是否暂停无缝滚动 */
19
+ seamlessPauseOnHover?: boolean;
20
+ }
21
+ declare function __VLS_template(): {
22
+ attrs: Partial<{}>;
23
+ slots: {
24
+ default?(_: {
25
+ item: any;
26
+ index: number;
27
+ }): any;
28
+ default?(_: {
29
+ item: any;
30
+ index: number;
31
+ }): any;
32
+ };
33
+ refs: {
34
+ seamlessWrapRef: HTMLDivElement;
35
+ seamlessTrackRef: HTMLDivElement;
36
+ listRef: HTMLDivElement;
37
+ };
38
+ rootEl: HTMLDivElement;
39
+ };
40
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
41
+ declare const __VLS_component: import('vue').DefineComponent<AnimatedListProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
42
+ itemSelected: (item: any, index: number) => any;
43
+ }, string, import('vue').PublicProps, Readonly<AnimatedListProps> & Readonly<{
44
+ onItemSelected?: ((item: any, index: number) => any) | undefined;
45
+ }>, {
46
+ className: string;
47
+ loading: boolean;
48
+ stagger: number;
49
+ items: any[];
50
+ showGradients: boolean;
51
+ itemClassName: string;
52
+ displayScrollbar: boolean;
53
+ initialSelectedIndex: number;
54
+ skeletonCount: number;
55
+ seamless: boolean;
56
+ seamlessSpeed: number;
57
+ seamlessDirection: "up" | "down";
58
+ seamlessPauseOnHover: boolean;
59
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
60
+ seamlessWrapRef: HTMLDivElement;
61
+ seamlessTrackRef: HTMLDivElement;
62
+ listRef: HTMLDivElement;
63
+ }, HTMLDivElement>;
64
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
65
+ export default _default;
66
+ type __VLS_WithTemplateSlots<T, S> = T & {
67
+ new (): {
68
+ $slots: S;
69
+ };
70
+ };
@@ -103,6 +103,7 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {},
103
103
  "onSorted:data"?: ((value: any[]) => any) | undefined;
104
104
  }>, {
105
105
  data: Record<string, any>[];
106
+ layout: string;
106
107
  size: "large" | "default" | "small";
107
108
  pagination: boolean;
108
109
  operationLabel: string;
@@ -113,7 +114,6 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {},
113
114
  pageSize: number;
114
115
  total: number;
115
116
  pageSizes: number[];
116
- layout: string;
117
117
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
118
118
  tableRef: unknown;
119
119
  }, any>;