vft 0.0.518 → 0.0.520

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,20 +1,19 @@
1
- import { defineComponent as T, useAttrs as W, ref as o, computed as d, watch as G, onMounted as J, openBlock as s, createElementBlock as f, normalizeStyle as Q, normalizeClass as y, unref as l, mergeProps as U, createCommentVNode as u, renderSlot as k, createElementVNode as A, Fragment as X, createBlock as Z, withCtx as _, nextTick as ee } from "vue";
2
- import { useAttrs as te } from "@vft/use";
3
- import { isInContainer as le, isElement as ae, isString as ne, getScrollContainer as ie } from "@vft/utils";
4
- import { VftImageViewer as re } from "../image-viewer/index.js";
5
- import { isClient as v, useThrottleFn as oe, useEventListener as V } from "@vueuse/core";
1
+ import { defineComponent as T, defineAsyncComponent as G, useAttrs as J, ref as o, computed as d, watch as Q, onMounted as U, openBlock as s, createElementBlock as f, normalizeStyle as X, normalizeClass as y, unref as l, mergeProps as Z, createCommentVNode as u, renderSlot as C, createElementVNode as A, Fragment as _, createBlock as ee, withCtx as te, nextTick as le } from "vue";
2
+ import { useAttrs as ne } from "@vft/use";
3
+ import { isInContainer as ae, isElement as ie, isString as re, getScrollContainer as oe } from "@vft/utils";
4
+ import { isClient as v, useThrottleFn as se, useEventListener as B } from "@vueuse/core";
6
5
  import "../config-provider/hooks/use-global-config.js";
7
6
  import "lodash-es";
8
7
  import "../form/index.js";
9
- import { useNamespace as se } from "../../hooks/use-namespace/index.js";
8
+ import { useNamespace as ue } from "../../hooks/use-namespace/index.js";
10
9
  import "../../hooks/use-model-toggle/index.js";
11
10
  import "@popperjs/core";
12
11
  import "../../hooks/use-z-index/index.js";
13
- const ue = ["src", "loading"], ce = { key: 0 }, de = T({
12
+ const ce = ["src", "loading"], de = { key: 0 }, fe = T({
14
13
  name: "vft-image",
15
14
  inheritAttrs: !1
16
- }), xe = /* @__PURE__ */ T({
17
- ...de,
15
+ }), Ie = /* @__PURE__ */ T({
16
+ ...fe,
18
17
  props: {
19
18
  hideOnClickModal: { type: Boolean, default: !1 },
20
19
  src: { default: "" },
@@ -32,37 +31,39 @@ const ue = ["src", "loading"], ce = { key: 0 }, de = T({
32
31
  },
33
32
  emits: ["load", "error", "switch", "close", "show"],
34
33
  setup(e, { expose: $, emit: b }) {
35
- const c = b, i = se("image");
36
- let C = "";
37
- const M = W(), O = te(), w = o(), r = o(!1), a = o(!0), h = o(!1), m = o(), n = o(), H = v && "loading" in HTMLImageElement.prototype;
34
+ const c = b, M = G(
35
+ () => import("../image-viewer/index.js").then((t) => t.VftImageViewer)
36
+ ), i = ue("image");
37
+ let k = "";
38
+ const O = J(), H = ne(), w = o(), r = o(!1), n = o(!0), h = o(!1), m = o(), a = o(), F = v && "loading" in HTMLImageElement.prototype;
38
39
  let z, S;
39
- const F = d(() => M.style), N = d(() => v && e.fit ? { objectFit: e.fit } : {}), g = d(() => Array.isArray(e.previewSrcList) && e.previewSrcList.length > 0), P = d(() => {
40
+ const N = d(() => O.style), P = d(() => v && e.fit ? { objectFit: e.fit } : {}), g = d(() => Array.isArray(e.previewSrcList) && e.previewSrcList.length > 0), D = d(() => {
40
41
  let t = e.initialIndex;
41
42
  return e.initialIndex > e.previewSrcList.length - 1 && (t = 0), t;
42
- }), p = d(() => e.loading === "eager" ? !1 : !H && e.loading === "lazy" || e.lazy), L = () => {
43
- v && (a.value = !0, r.value = !1, w.value = e.src);
43
+ }), p = d(() => e.loading === "eager" ? !1 : !F && e.loading === "lazy" || e.lazy), L = () => {
44
+ v && (n.value = !0, r.value = !1, w.value = e.src);
44
45
  };
45
- function D(t) {
46
- a.value = !1, r.value = !1, c("load", t);
47
- }
48
46
  function R(t) {
49
- a.value = !1, r.value = !0, c("error", t);
47
+ n.value = !1, r.value = !1, c("load", t);
48
+ }
49
+ function Y(t) {
50
+ n.value = !1, r.value = !0, c("error", t);
50
51
  }
51
- function x() {
52
- le(m.value, n.value) && (L(), B());
52
+ function I() {
53
+ ae(m.value, a.value) && (L(), V());
53
54
  }
54
- const I = oe(x, 200);
55
+ const x = se(I, 200);
55
56
  async function E() {
56
- v && (await ee(), ae(e.scrollContainer) ? n.value = e.scrollContainer : ne(e.scrollContainer) && e.scrollContainer !== "" ? n.value = document.querySelector(e.scrollContainer) ?? void 0 : m.value && (n.value = ie(m.value)), n.value && (z = V(
57
- n,
57
+ v && (await le(), ie(e.scrollContainer) ? a.value = e.scrollContainer : re(e.scrollContainer) && e.scrollContainer !== "" ? a.value = document.querySelector(e.scrollContainer) ?? void 0 : m.value && (a.value = oe(m.value)), a.value && (z = B(
58
+ a,
58
59
  "scroll",
59
- I
60
- ), setTimeout(() => x(), 100)));
60
+ x
61
+ ), setTimeout(() => I(), 100)));
61
62
  }
62
- function B() {
63
- !v || !n.value || !I || (z?.(), n.value = void 0);
63
+ function V() {
64
+ !v || !a.value || !x || (z?.(), a.value = void 0);
64
65
  }
65
- function Y(t) {
66
+ function j(t) {
66
67
  if (t.ctrlKey) {
67
68
  if (t.deltaY < 0)
68
69
  return t.preventDefault(), !1;
@@ -70,77 +71,77 @@ const ue = ["src", "loading"], ce = { key: 0 }, de = T({
70
71
  return t.preventDefault(), !1;
71
72
  }
72
73
  }
73
- function j() {
74
- g.value && (S = V("wheel", Y, {
74
+ function q() {
75
+ g.value && (S = B("wheel", j, {
75
76
  passive: !1
76
- }), C = document.body.style.overflow, document.body.style.overflow = "hidden", h.value = !0, c("show"));
77
+ }), k = document.body.style.overflow, document.body.style.overflow = "hidden", h.value = !0, c("show"));
77
78
  }
78
- function q() {
79
- S?.(), document.body.style.overflow = C, h.value = !1, c("close");
79
+ function K() {
80
+ S?.(), document.body.style.overflow = k, h.value = !1, c("close");
80
81
  }
81
- function K(t) {
82
+ function W(t) {
82
83
  c("switch", t);
83
84
  }
84
- return G(
85
+ return Q(
85
86
  () => e.src,
86
87
  () => {
87
- p.value ? (a.value = !0, r.value = !1, B(), E()) : L();
88
+ p.value ? (n.value = !0, r.value = !1, V(), E()) : L();
88
89
  }
89
- ), J(() => {
90
+ ), U(() => {
90
91
  p.value ? E() : L();
91
92
  }), $({
92
- isLoading: a
93
- }), (t, fe) => (s(), f("div", {
93
+ isLoading: n
94
+ }), (t, ve) => (s(), f("div", {
94
95
  ref_key: "container",
95
96
  ref: m,
96
97
  class: y([l(i).b(), t.$attrs.class]),
97
- style: Q(F.value)
98
+ style: X(N.value)
98
99
  }, [
99
- w.value !== void 0 && !r.value ? (s(), f("img", U({ key: 0 }, l(O), {
100
+ w.value !== void 0 && !r.value ? (s(), f("img", Z({ key: 0 }, l(H), {
100
101
  src: w.value,
101
102
  loading: e.loading,
102
- style: N.value,
103
+ style: P.value,
103
104
  class: [
104
105
  l(i).e("inner"),
105
106
  g.value && l(i).e("preview"),
106
- a.value && l(i).is("loading")
107
+ n.value && l(i).is("loading")
107
108
  ],
108
- onClick: j,
109
- onLoad: D,
110
- onError: R,
109
+ onClick: q,
110
+ onLoad: R,
111
+ onError: Y,
111
112
  alt: ""
112
- }), null, 16, ue)) : u("", !0),
113
- a.value || r.value ? (s(), f("div", {
113
+ }), null, 16, ce)) : u("", !0),
114
+ n.value || r.value ? (s(), f("div", {
114
115
  key: 1,
115
116
  class: y(l(i).e("wrapper"))
116
117
  }, [
117
- a.value ? k(t.$slots, "placeholder", { key: 0 }, () => [
118
+ n.value ? C(t.$slots, "placeholder", { key: 0 }, () => [
118
119
  A("div", {
119
120
  class: y(l(i).e("placeholder"))
120
121
  }, null, 2)
121
- ]) : r.value ? k(t.$slots, "error", { key: 1 }, () => [
122
+ ]) : r.value ? C(t.$slots, "error", { key: 1 }, () => [
122
123
  A("div", {
123
124
  class: y(l(i).e("error"))
124
125
  }, "加载失败", 2)
125
126
  ]) : u("", !0)
126
127
  ], 2)) : u("", !0),
127
- g.value ? (s(), f(X, { key: 2 }, [
128
- h.value ? (s(), Z(l(re), {
128
+ g.value ? (s(), f(_, { key: 2 }, [
129
+ h.value ? (s(), ee(l(M), {
129
130
  key: 0,
130
131
  "z-index": e.zIndex,
131
- "initial-index": P.value,
132
+ "initial-index": D.value,
132
133
  infinite: e.infinite,
133
134
  "zoom-rate": e.zoomRate,
134
135
  "url-list": e.previewSrcList,
135
136
  "hide-on-click-modal": e.hideOnClickModal,
136
137
  teleported: e.previewTeleported,
137
138
  "close-on-press-escape": e.closeOnPressEscape,
138
- onClose: q,
139
- onSwitch: K
139
+ onClose: K,
140
+ onSwitch: W
140
141
  }, {
141
- default: _(() => [
142
- t.$slots.viewer ? (s(), f("div", ce, [
143
- k(t.$slots, "viewer")
142
+ default: te(() => [
143
+ t.$slots.viewer ? (s(), f("div", de, [
144
+ C(t.$slots, "viewer")
144
145
  ])) : u("", !0)
145
146
  ]),
146
147
  _: 3
@@ -150,5 +151,5 @@ const ue = ["src", "loading"], ce = { key: 0 }, de = T({
150
151
  }
151
152
  });
152
153
  export {
153
- xe as default
154
+ Ie as default
154
155
  };
@@ -2,14 +2,14 @@ import "@vueuse/core";
2
2
  import { isNumber as m, isClient as p } from "@vft/utils";
3
3
  import { debugWarn as l } from "../../utils/error.js";
4
4
  import "../../components/config-provider/hooks/use-global-config.js";
5
- import { ref as v, getCurrentInstance as i, inject as e, computed as c, unref as Z } from "vue";
5
+ import { getCurrentInstance as i, inject as e, computed as c, unref as v, ref as Z } from "vue";
6
6
  import "lodash-es";
7
7
  import "../../components/form/index.js";
8
8
  const s = {
9
9
  current: 0
10
- }, u = v(0), f = 2e3, d = Symbol("vftZIndexContextKey"), y = Symbol("zIndexContextKey"), K = (I) => {
10
+ }, u = Z(0), f = 2e3, d = Symbol("vftZIndexContextKey"), y = Symbol("zIndexContextKey"), K = (I) => {
11
11
  const n = i() ? e(d, s) : s, x = I || (i() ? e(y, void 0) : void 0), t = c(() => {
12
- const r = Z(x);
12
+ const r = v(x);
13
13
  return m(r) ? r : f;
14
14
  }), o = c(() => t.value + u.value), a = () => (n.current++, u.value = n.current, o.value);
15
15
  return !p && !e(d) && l(
@@ -1,6 +1,6 @@
1
1
  declare const _default: {
2
2
  "name": "vft",
3
- "version": "0.0.518",
3
+ "version": "0.0.520",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "es/index.js",
@@ -1,4 +1,4 @@
1
- const o = "0.0.518";
1
+ const o = "0.0.520";
2
2
  export {
3
3
  o as version
4
4
  };
@@ -1,30 +1,34 @@
1
- import { generateCssVars as f, cssVarValue as c, isObject as i, setStyle as r, getRgbCount as u, hexToRGB as m, mixColor as n } from "@vft/utils";
2
- import { isClient as l } from "@vueuse/core";
1
+ import { generateCssVars as a, cssVarValue as c, isObject as i, setStyle as l, getRgbCount as u, hexToRGB as m, mixColor as n } from "@vft/utils";
2
+ import { isClient as r } from "@vueuse/core";
3
3
  import { ref as g } from "vue";
4
- const V = (e, t = document.documentElement, s = !0) => {
5
- if (l)
6
- return c(e, t, "vft", s);
7
- }, b = () => l ? V("primary-color") : g("");
8
- function d(e, t) {
9
- return f(e, t, "vft");
4
+ const V = (e, s = document.documentElement, t = !0) => {
5
+ if (r)
6
+ return c(e, s, "vft", t);
7
+ }, b = () => r ? V("primary-color") : g("");
8
+ function d(e, s) {
9
+ return a(e, s, "vft");
10
10
  }
11
- function x(e, t, s = "", o = document.documentElement) {
12
- let a;
13
- i(e) ? a = e : a = {
14
- [e]: t
15
- }, r(d(a, s), "", o, !1);
11
+ function x(e, s, t = "", o) {
12
+ if (!r)
13
+ return;
14
+ let f;
15
+ i(e) ? f = e : f = {
16
+ [e]: s
17
+ }, l(d(f, t), "", o || document.documentElement, !1);
16
18
  }
17
- function E(e, t = !1) {
18
- const s = t ? "#000" : "#fff";
19
- r(
20
- f(
19
+ function E(e, s = !1) {
20
+ if (!r)
21
+ return;
22
+ const t = s ? "#000" : "#fff";
23
+ l(
24
+ a(
21
25
  {
22
- "light-3": n(e, s, 0.7, !1),
23
- "light-5": n(e, s, 0.5, !1),
24
- "light-7": n(e, s, 0.3, !1),
25
- "light-8": n(e, s, 0.2, !1),
26
- "light-9": n(e, s, 0.1, !1),
27
- "dark-2": n(e, s, 0.8, !1),
26
+ "light-3": n(e, t, 0.7, !1),
27
+ "light-5": n(e, t, 0.5, !1),
28
+ "light-7": n(e, t, 0.3, !1),
29
+ "light-8": n(e, t, 0.2, !1),
30
+ "light-9": n(e, t, 0.1, !1),
31
+ "dark-2": n(e, t, 0.8, !1),
28
32
  rgb: u(m(e)).join(",")
29
33
  },
30
34
  "primary-color",
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),$=require("@vft/use"),c=require("@vft/utils"),H=require("../image-viewer/index.cjs"),o=require("@vueuse/core");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");require("../form/index.cjs");const P=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const F=["src","loading"],j={key:0},D=e.defineComponent({name:"vft-image",inheritAttrs:!1}),R=e.defineComponent({...D,props:{hideOnClickModal:{type:Boolean,default:!1},src:{default:""},fit:{default:""},loading:{},lazy:{type:Boolean},scrollContainer:{},previewSrcList:{default:()=>[]},previewTeleported:{type:Boolean,default:!1},zIndex:{},initialIndex:{default:0},infinite:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},zoomRate:{default:1.2}},emits:["load","error","switch","close","show"],setup(t,{expose:S,emit:B}){const s=B,a=P.useNamespace("image");let y="";const E=e.useAttrs(),q=$.useAttrs(),d=e.ref(),i=e.ref(!1),n=e.ref(!0),f=e.ref(!1),u=e.ref(),r=e.ref(),V=o.isClient&&"loading"in HTMLImageElement.prototype;let w,C;const x=e.computed(()=>E.style),p=e.computed(()=>o.isClient&&t.fit?{objectFit:t.fit}:{}),v=e.computed(()=>Array.isArray(t.previewSrcList)&&t.previewSrcList.length>0),I=e.computed(()=>{let l=t.initialIndex;return t.initialIndex>t.previewSrcList.length-1&&(l=0),l}),h=e.computed(()=>t.loading==="eager"?!1:!V&&t.loading==="lazy"||t.lazy),m=()=>{o.isClient&&(n.value=!0,i.value=!1,d.value=t.src)};function N(l){n.value=!1,i.value=!1,s("load",l)}function b(l){n.value=!1,i.value=!0,s("error",l)}function g(){c.isInContainer(u.value,r.value)&&(m(),z())}const k=o.useThrottleFn(g,200);async function L(){o.isClient&&(await e.nextTick(),c.isElement(t.scrollContainer)?r.value=t.scrollContainer:c.isString(t.scrollContainer)&&t.scrollContainer!==""?r.value=document.querySelector(t.scrollContainer)??void 0:u.value&&(r.value=c.getScrollContainer(u.value)),r.value&&(w=o.useEventListener(r,"scroll",k),setTimeout(()=>g(),100)))}function z(){!o.isClient||!r.value||!k||(w?.(),r.value=void 0)}function M(l){if(l.ctrlKey){if(l.deltaY<0)return l.preventDefault(),!1;if(l.deltaY>0)return l.preventDefault(),!1}}function T(){v.value&&(C=o.useEventListener("wheel",M,{passive:!1}),y=document.body.style.overflow,document.body.style.overflow="hidden",f.value=!0,s("show"))}function A(){C?.(),document.body.style.overflow=y,f.value=!1,s("close")}function O(l){s("switch",l)}return e.watch(()=>t.src,()=>{h.value?(n.value=!0,i.value=!1,z(),L()):m()}),e.onMounted(()=>{h.value?L():m()}),S({isLoading:n}),(l,Y)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"container",ref:u,class:e.normalizeClass([e.unref(a).b(),l.$attrs.class]),style:e.normalizeStyle(x.value)},[d.value!==void 0&&!i.value?(e.openBlock(),e.createElementBlock("img",e.mergeProps({key:0},e.unref(q),{src:d.value,loading:t.loading,style:p.value,class:[e.unref(a).e("inner"),v.value&&e.unref(a).e("preview"),n.value&&e.unref(a).is("loading")],onClick:T,onLoad:N,onError:b,alt:""}),null,16,F)):e.createCommentVNode("",!0),n.value||i.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(a).e("wrapper"))},[n.value?e.renderSlot(l.$slots,"placeholder",{key:0},()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(a).e("placeholder"))},null,2)]):i.value?e.renderSlot(l.$slots,"error",{key:1},()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(a).e("error"))},"加载失败",2)]):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0),v.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[f.value?(e.openBlock(),e.createBlock(e.unref(H.VftImageViewer),{key:0,"z-index":t.zIndex,"initial-index":I.value,infinite:t.infinite,"zoom-rate":t.zoomRate,"url-list":t.previewSrcList,"hide-on-click-modal":t.hideOnClickModal,teleported:t.previewTeleported,"close-on-press-escape":t.closeOnPressEscape,onClose:A,onSwitch:O},{default:e.withCtx(()=>[l.$slots.viewer?(e.openBlock(),e.createElementBlock("div",j,[e.renderSlot(l.$slots,"viewer")])):e.createCommentVNode("",!0)]),_:3},8,["z-index","initial-index","infinite","zoom-rate","url-list","hide-on-click-modal","teleported","close-on-press-escape"])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],6))}});exports.default=R;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),$=require("@vft/use"),c=require("@vft/utils"),o=require("@vueuse/core");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");require("../form/index.cjs");const H=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const F=["src","loading"],j={key:0},D=e.defineComponent({name:"vft-image",inheritAttrs:!1}),R=e.defineComponent({...D,props:{hideOnClickModal:{type:Boolean,default:!1},src:{default:""},fit:{default:""},loading:{},lazy:{type:Boolean},scrollContainer:{},previewSrcList:{default:()=>[]},previewTeleported:{type:Boolean,default:!1},zIndex:{},initialIndex:{default:0},infinite:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},zoomRate:{default:1.2}},emits:["load","error","switch","close","show"],setup(t,{expose:S,emit:B}){const s=B,E=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("../image-viewer/index.cjs")).then(l=>l.VftImageViewer)),a=H.useNamespace("image");let y="";const V=e.useAttrs(),q=$.useAttrs(),d=e.ref(),i=e.ref(!1),n=e.ref(!0),f=e.ref(!1),u=e.ref(),r=e.ref(),p=o.isClient&&"loading"in HTMLImageElement.prototype;let w,h;const I=e.computed(()=>V.style),x=e.computed(()=>o.isClient&&t.fit?{objectFit:t.fit}:{}),v=e.computed(()=>Array.isArray(t.previewSrcList)&&t.previewSrcList.length>0),N=e.computed(()=>{let l=t.initialIndex;return t.initialIndex>t.previewSrcList.length-1&&(l=0),l}),C=e.computed(()=>t.loading==="eager"?!1:!p&&t.loading==="lazy"||t.lazy),m=()=>{o.isClient&&(n.value=!0,i.value=!1,d.value=t.src)};function b(l){n.value=!1,i.value=!1,s("load",l)}function A(l){n.value=!1,i.value=!0,s("error",l)}function g(){c.isInContainer(u.value,r.value)&&(m(),z())}const k=o.useThrottleFn(g,200);async function L(){o.isClient&&(await e.nextTick(),c.isElement(t.scrollContainer)?r.value=t.scrollContainer:c.isString(t.scrollContainer)&&t.scrollContainer!==""?r.value=document.querySelector(t.scrollContainer)??void 0:u.value&&(r.value=c.getScrollContainer(u.value)),r.value&&(w=o.useEventListener(r,"scroll",k),setTimeout(()=>g(),100)))}function z(){!o.isClient||!r.value||!k||(w?.(),r.value=void 0)}function M(l){if(l.ctrlKey){if(l.deltaY<0)return l.preventDefault(),!1;if(l.deltaY>0)return l.preventDefault(),!1}}function T(){v.value&&(h=o.useEventListener("wheel",M,{passive:!1}),y=document.body.style.overflow,document.body.style.overflow="hidden",f.value=!0,s("show"))}function O(){h?.(),document.body.style.overflow=y,f.value=!1,s("close")}function P(l){s("switch",l)}return e.watch(()=>t.src,()=>{C.value?(n.value=!0,i.value=!1,z(),L()):m()}),e.onMounted(()=>{C.value?L():m()}),S({isLoading:n}),(l,Y)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"container",ref:u,class:e.normalizeClass([e.unref(a).b(),l.$attrs.class]),style:e.normalizeStyle(I.value)},[d.value!==void 0&&!i.value?(e.openBlock(),e.createElementBlock("img",e.mergeProps({key:0},e.unref(q),{src:d.value,loading:t.loading,style:x.value,class:[e.unref(a).e("inner"),v.value&&e.unref(a).e("preview"),n.value&&e.unref(a).is("loading")],onClick:T,onLoad:b,onError:A,alt:""}),null,16,F)):e.createCommentVNode("",!0),n.value||i.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(a).e("wrapper"))},[n.value?e.renderSlot(l.$slots,"placeholder",{key:0},()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(a).e("placeholder"))},null,2)]):i.value?e.renderSlot(l.$slots,"error",{key:1},()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(a).e("error"))},"加载失败",2)]):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0),v.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[f.value?(e.openBlock(),e.createBlock(e.unref(E),{key:0,"z-index":t.zIndex,"initial-index":N.value,infinite:t.infinite,"zoom-rate":t.zoomRate,"url-list":t.previewSrcList,"hide-on-click-modal":t.hideOnClickModal,teleported:t.previewTeleported,"close-on-press-escape":t.closeOnPressEscape,onClose:O,onSwitch:P},{default:e.withCtx(()=>[l.$slots.viewer?(e.openBlock(),e.createElementBlock("div",j,[e.renderSlot(l.$slots,"viewer")])):e.createCommentVNode("",!0)]),_:3},8,["z-index","initial-index","infinite","zoom-rate","url-list","hide-on-click-modal","teleported","close-on-press-escape"])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],6))}});exports.default=R;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.518";exports.version=e;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.520";exports.version=e;
@@ -1,6 +1,6 @@
1
1
  declare const _default: {
2
2
  "name": "vft",
3
- "version": "0.0.518",
3
+ "version": "0.0.520",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "es/index.js",
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@vft/utils"),l=require("@vueuse/core"),c=require("vue"),n=(e,r=document.documentElement,t=!0)=>{if(l.isClient)return s.cssVarValue(e,r,"vft",t)},u=()=>l.isClient?n("primary-color"):c.ref("");function a(e,r){return s.generateCssVars(e,r,"vft")}function f(e,r,t="",i=document.documentElement){let o;s.isObject(e)?o=e:o={[e]:r},s.setStyle(a(o,t),"",i,!1)}function C(e,r=!1){const t=r?"#000":"#fff";s.setStyle(s.generateCssVars({"light-3":s.mixColor(e,t,.7,!1),"light-5":s.mixColor(e,t,.5,!1),"light-7":s.mixColor(e,t,.3,!1),"light-8":s.mixColor(e,t,.2,!1),"light-9":s.mixColor(e,t,.1,!1),"dark-2":s.mixColor(e,t,.8,!1),rgb:s.getRgbCount(s.hexToRGB(e)).join(",")},"primary-color","vft"),"",document.documentElement,!1)}exports.cssVarValue=n;exports.generateCssVars=a;exports.primaryColor=u;exports.setCssVar=f;exports.setPrimaryColorCssvars=C;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@vft/utils"),l=require("@vueuse/core"),u=require("vue"),o=(e,r=document.documentElement,t=!0)=>{if(l.isClient)return s.cssVarValue(e,r,"vft",t)},c=()=>l.isClient?o("primary-color"):u.ref("");function i(e,r){return s.generateCssVars(e,r,"vft")}function f(e,r,t="",a){if(!l.isClient)return;let n;s.isObject(e)?n=e:n={[e]:r},s.setStyle(i(n,t),"",a||document.documentElement,!1)}function C(e,r=!1){if(!l.isClient)return;const t=r?"#000":"#fff";s.setStyle(s.generateCssVars({"light-3":s.mixColor(e,t,.7,!1),"light-5":s.mixColor(e,t,.5,!1),"light-7":s.mixColor(e,t,.3,!1),"light-8":s.mixColor(e,t,.2,!1),"light-9":s.mixColor(e,t,.1,!1),"dark-2":s.mixColor(e,t,.8,!1),rgb:s.getRgbCount(s.hexToRGB(e)).join(",")},"primary-color","vft"),"",document.documentElement,!1)}exports.cssVarValue=o;exports.generateCssVars=i;exports.primaryColor=c;exports.setCssVar=f;exports.setPrimaryColorCssvars=C;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vft",
3
- "version": "0.0.518",
3
+ "version": "0.0.520",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "es/index.js",
@@ -56,12 +56,12 @@
56
56
  "resize-detector": "0.3.0",
57
57
  "sortablejs": "1.15.0",
58
58
  "photoswipe": "5.4.4",
59
+ "@vft/use": "0.0.96",
59
60
  "@vft/constants": "0.0.83",
60
61
  "@vft/router": "0.0.73",
61
62
  "@vft/store": "0.0.78",
62
- "@vft/use": "0.0.96",
63
- "@vft/utils": "0.0.161",
64
- "@vft/directives": "0.0.36"
63
+ "@vft/directives": "0.0.36",
64
+ "@vft/utils": "0.0.161"
65
65
  },
66
66
  "vetur": {
67
67
  "tags": "tags.json",
package/tags.json CHANGED
@@ -1 +1 @@
1
- {"vft-alert":{"attributes":["title","type","description","closable","center","close-text","show-icon","effect"],"description":"提示 用于页面中展示重要的提示信息。\n\n[Docs](https://wflynn.cn/pages/alert#alert)"},"vft-auto-complete":{"attributes":["model-value / v-model","placeholder","clearable","disabled","value-key","debounce","placement","fetch-suggestions","trigger-on-focus","select-when-unmatched","name","label","hide-loading","popper-class","popper-append-to-body ^(deprecated)","teleported","highlight-first-item","fit-input-width","select","change"],"description":"自动补全输入框 根据输入内容提供对应的输入建议。\n\n[Docs](https://wflynn.cn/pages/autocomplete#autocomplete)"},"vft-avatar":{"attributes":["icon","size","shape","src","src-set","alt","fit"],"description":"Avatar 组件可以用来代表人物或对象, 支持使用图片、图标或者文字作为 Avatar。\n\n[Docs](https://wflynn.cn/pages/avatar#avatar)"},"vft-backtop":{"attributes":["target","visibility-height","right","bottom"],"description":"返回页面顶部的操作按钮。\n\n[Docs](https://wflynn.cn/pages/backtop#backtop)"},"vft-button":{"attributes":["size","type","plain","text","bg","link<VersionTag version=\"2.2.1\" />","round","circle","loading","loading-icon","disabled","icon","autofocus","native-type","auto-insert-space","color","dark"],"description":"常用的操作按钮。\n\n[Docs](https://wflynn.cn/pages/button#button)"},"vft-button-group":{"description":"[Docs](https://wflynn.cn/pages/button#buttongroup)"},"vft-card":{"attributes":["header","body-style","shadow"],"description":"将信息聚合在卡片容器中展示。\n\n[Docs](https://wflynn.cn/pages/card#card)"},"vft-carousel":{"attributes":["height","initial-index","trigger","autoplay","interval","indicator-position","arrow","type","loop","direction","pause-on-hover","change"],"description":"在有限空间内,循环播放同一类型的图片、文字等内容\n\n[Docs](https://wflynn.cn/pages/carousel#carousel)"},"vft-carousel-item":{"attributes":["name","label"],"description":"[Docs](https://wflynn.cn/pages/carousel#carousel-item)"},"vft-checkbox":{"attributes":["model-value / v-model","label","true-label","false-label","disabled","border","size","name","checked","indeterminate","validate-event","tabindex","id","controls ^(a11y)","change"],"description":"在一组备选项中进行多选。\n\n[Docs](https://wflynn.cn/pages/checkbox#checkbox)"},"vft-checkbox-group":{"attributes":["model-value / v-model","size","disabled","min","max","label","text-color","fill","tag","validate-event","change"],"description":"[Docs](https://wflynn.cn/pages/checkbox#checkboxgroup)"},"vft-checkbox-button":{"attributes":["label","true-label","false-label","disabled","name","checked"],"description":"[Docs](https://wflynn.cn/pages/checkbox#checkboxbutton)"},"vft-clamp":{"attributes":["text","maxHeight","maxLines","expanded","ellipsis","autoResize","location"],"description":"文字...省略\n\n[Docs](https://wflynn.cn/pages/clamp#clamp)"},"vft-color-picker":{"attributes":["model-value / v-model","disabled","size","show-alpha","color-format","popper-class","predefine","validate-event","tabindex","label<A11yTag/>","id","change","active-change"],"description":"用于颜色选择,支持多种格式。\n\n[Docs](https://wflynn.cn/pages/color-picker#colorpicker)"},"vft-config-provider":{"attributes":["locale","size","zIndex","namespace","button","message","experimental-features"],"description":"Config Provider 被用来提供全局的配置选项,让你的配置能够在全局都能够被访问到。\n\n[Docs](https://wflynn.cn/pages/config-provider#config-provider)"},"vft-container":{"attributes":["direction"],"description":"[Docs](https://wflynn.cn/pages/container#container)"},"vft-header":{"attributes":["height"],"description":"[Docs](https://wflynn.cn/pages/container#header)"},"vft-aside":{"attributes":["width"],"description":"[Docs](https://wflynn.cn/pages/container#aside)"},"vft-main":{"description":"[Docs](https://wflynn.cn/pages/container#main)"},"vft-footer":{"attributes":["height"],"description":"[Docs](https://wflynn.cn/pages/container#footer)"},"vft-date-picker":{"attributes":["model-value / v-model","readonly","disabled","size","editable","clearable","placeholder","start-placeholder","end-placeholder","type","format","popper-class","popper-options","range-separator","default-value","default-time","value-format","id","name","unlink-panels","prefix-icon","clear-icon","validate-event","disabled-date","shortcuts","cell-class-name","teleported","change","blur","focus","calendar-change","panel-change","visible-change"],"description":"用于选择或输入日期\n\n[Docs](https://wflynn.cn/pages/date-picker#datepicker)"},"vft-date-time-picker":{"attributes":["model-value / v-model","readonly","disabled","editable","clearable","size","placeholder","start-placeholder","end-placeholder","time-arrow-control","type","format","popper-class","range-separator","default-value","default-time","value-format","id","name","unlink-panels","prefix-icon","clear-icon","shortcuts","disabled-date","cell-class-name","teleported","change","blur","focus","calendar-change","visible-change"],"description":"在同一个选择器里选择日期和时间\n\n[Docs](https://wflynn.cn/pages/datetime-picker#datetimepicker)"},"vft-descriptions":{"attributes":["border","column","direction","size","title","extra"],"description":"列表形式展示多个字段。\n\n[Docs](https://wflynn.cn/pages/descriptions#descriptions)"},"vft-descriptions-item":{"attributes":["label","span","width","min-width","align","label-align","class-name","label-class-name"],"description":"[Docs](https://wflynn.cn/pages/descriptions#descriptions-item)"},"vft-dialog":{"attributes":["model-value / v-model","title","width","fullscreen","top","modal","modal-penetrable","modal-class","header-class","body-class","footer-class","append-to-body","append-to","lock-scroll","open-delay","close-delay","close-on-click-modal","close-on-press-escape","show-close","before-close","draggable","overflow","center","align-center","destroy-on-close","close-icon","z-index","header-aria-level","transition","custom-class","open","opened","close","closed","open-auto-focus","close-auto-focus"],"description":"在保留当前页面状态的情况下,告知用户并承载相关操作。\n\n[Docs](https://wflynn.cn/pages/dialog#dialog)"},"vft-divider":{"attributes":["direction","border-style","content-position"],"description":"区隔内容的分割线。\n\n[Docs](https://wflynn.cn/pages/divider#divider)"},"vft-drawer":{"attributes":["model-value / v-model","append-to-body","lock-scroll","before-close","close-on-click-modal","close-on-press-escape","open-delay","close-delay","custom-class ^(deprecated)","destroy-on-close","modal","direction","show-close","size","title","with-header","modal-class","z-index","open","opened","close","closed"],"description":"有些时候, `Dialog` 组件并不满足我们的需求, 比如你的表单很长, 亦或是你需要临时展示一些文档, `Drawer`\n\n[Docs](https://wflynn.cn/pages/drawer#drawer)"},"vft-dropdown":{"attributes":["type","size","max-height","split-button","disabled","placement","trigger","hide-on-click","show-timeout","hide-timeout","role","tabindex","popper-class","popper-options","teleported","click","command","visible-change"],"description":"将动作或菜单折叠到下拉菜单中。\n\n[Docs](https://wflynn.cn/pages/dropdown#dropdown)"},"vft-dropdown-menu":{"description":"[Docs](https://wflynn.cn/pages/dropdown#dropdown-menu)"},"vft-dropdown-item":{"attributes":["command","disabled","divided","icon"],"description":"[Docs](https://wflynn.cn/pages/dropdown#dropdown-item)"},"vft-empty":{"attributes":["image","image-size","description"],"description":"空状态时的占位提示。\n\n[Docs](https://wflynn.cn/pages/empty#empty)"},"vft-form":{"attributes":["model","rules","inline","label-position","label-width","label-suffix","hide-required-asterisk","require-asterisk-position","show-message","inline-message","status-icon","validate-on-rule-change","size","disabled","scroll-to-error","scroll-into-view-options","validate"],"description":"表单包含 `输入框`, `单选框`, `下拉选择`, `多选框` 等用户输入的组件。 使用表单,您可以收集、验证和提交数据。\n\n[Docs](https://wflynn.cn/pages/form#form)"},"vft-form-item":{"attributes":["prop","label","label-width","required","rules","error","show-message","inline-message","size","for","validate-status"],"description":"[Docs](https://wflynn.cn/pages/form#formitem)"},"vft-icon":{"attributes":["icon","size","color","hoverColor","rotate","rotateSpeed","pointer"],"description":"图标 [图标资源地址]\n\n[Docs](https://wflynn.cn/pages/icon#icon)"},"vft-image":{"attributes":["src","fit","hide-on-click-modal","`loading` ^(2.2.3)","lazy","scroll-container","alt","referrerpolicy","preview-src-list","z-index","initial-index","close-on-press-escape","preview-teleported","load","error","switch","close"],"description":"图片容器,在保留所有原生 img 的特性下,支持懒加载,自定义占位、加载失败等\n\n[Docs](https://wflynn.cn/pages/image#image)"},"vft-image-viewer":{"attributes":["url-list","z-index","initial-index","infinite","hide-on-click-modal","teleported","zoom-rate","close","switch"],"description":"[Docs](https://wflynn.cn/pages/image#image-viewer)"},"vft-input-number":{"attributes":["model-value / v-model","min","max","step","step-strictly","precision","size","readonly","disabled","controls","controls-position","name","label","placeholder","id","value-on-clear ^(2.2.0)","validate-event","change","blur","focus"],"description":"仅允许输入标准的数字值,可定义范围\n\n[Docs](https://wflynn.cn/pages/input-number#input-number)"},"vft-input":{"attributes":["type","model-value / v-model","maxlength","minlength","show-word-limit","placeholder","clearable","formatter","parser","show-password","disabled","size","prefix-icon","suffix-icon","rows","autosize","autocomplete","name","readonly","max","min","step","resize","autofocus","form","label ^(a11y)","tabindex","validate-event","input-style","blur","focus","change","input","clear"],"description":"通过鼠标或键盘输入字符\n\n[Docs](https://wflynn.cn/pages/input#input)"},"vft-row":{"attributes":["gutter","justify","align","tag"],"description":"[Docs](https://wflynn.cn/pages/layout#row)"},"vft-col":{"attributes":["span","offset","push","pull","xs","sm","md","lg","xl","tag"],"description":"[Docs](https://wflynn.cn/pages/layout#col)"},"vft-link":{"attributes":["type","underline","disabled","href","icon"],"description":"文字超链接\n\n[Docs](https://wflynn.cn/pages/link#link)"},"vft-list-cell":{"attributes":["list","cellHeight","leftTextDistance","activeIndex","item-click"],"description":"菜单列表\n\n[Docs](https://wflynn.cn/pages/list-cell#listcell)"},"vft-logo":{"attributes":["title","logo","jump-path","click"],"description":"用于展示品牌 `logo` 和标题的组件,支持点击跳转功能。\n\n[Docs](https://wflynn.cn/pages/logo#logo)"},"vft-menu":{"attributes":["mode","collapse","ellipsis","default-active","default-openeds","unique-opened","menu-trigger","router","collapse-transition","popper-effect","select","open","close"],"description":"为网站提供导航功能的菜单。\n\n[Docs](https://wflynn.cn/pages/menu#menu)"},"vft-sub-menu":{"attributes":["index","popper-class","show-timeout","hide-timeout","disabled","popper-append-to-body(已废弃)","teleported","popper-offset","expand-close-icon","expand-open-icon","collapse-close-icon","collapse-open-icon"],"description":"[Docs](https://wflynn.cn/pages/menu#submenu)"},"vft-menu-item":{"attributes":["index","route","disabled","click"],"description":"[Docs](https://wflynn.cn/pages/menu#menu-item)"},"vft-menu-item-group":{"attributes":["title"],"description":"[Docs](https://wflynn.cn/pages/menu#menu-item-group)"},"vft-message-消息提示":{"attributes":["message","type","icon","showIcon","closeIcon","dangerouslyUseHTMLString","customClass","duration","showClose","center","onClose","offset","zIndex","grouping","repeatNum","appendTo"],"description":"常用于主动操作后的反馈提示。与 `Notification` 的区别是后者更多用于系统级通知的被动提醒。\n\n[Docs](https://wflynn.cn/pages/message#message-消息提示)"},"vft-modal-模态框":{"attributes":["modelValue / v-model","title","width","fullscreen","top","modal","modalClass","appendTo","appendToBody","lockScroll","customClass","openDelay","closeDelay","closeOnClickModal","closeOnPressEscape","showClose","beforeClose","draggable","center","alignCenter","destroyOnClose","closeFunc","showActionButtonGroup","showSubmitButton","showCancelButton","submitButtonOptions","cancelButtonOptions","actionRowOptions","scrollTop","confirmLoading","loading","open","opened","close","closed","open-auto-focus","close-auto-focus","visible-change","submit","ok","register"],"description":"在保留当前页面状态的情况下,告知用户并承载相关操作。基于 `Dialog` 组件封装,提供了更便捷的操作按钮组和加载状态管理。\n\n[Docs](https://wflynn.cn/pages/modal#modal-模态框)"},"vft-page-wrapper":{"attributes":["title"],"description":"页面 demo 容器\n\n[Docs](https://wflynn.cn/pages/page-wrapper#pagewrapper)"},"vft-pagination":{"attributes":["small","background","page-size / v-model:page-size","default-page-size","total","page-count","pager-count","current-page / v-model:current-page","default-current-page","layout","page-sizes","popper-class","prev-text","prev-icon","next-text","next-icon","disabled","hide-on-single-page","size-change","current-change","prev-click","next-click"],"description":"当数据量过多时,使用分页分解数据。\n\n[Docs](https://wflynn.cn/pages/pagination#pagination)"},"vft-popconfirm":{"attributes":["title","confirm-button-text","cancel-button-text","confirm-button-type","cancel-button-type","icon","icon-color","hide-icon","hide-after","teleported","persistent","width"],"description":"点击某个元素弹出一个简单的气泡确认框\n\n[Docs](https://wflynn.cn/pages/popconfirm#popconfirm)"},"vft-popover":{"attributes":["trigger","trigger-keys","title","effect","content","width","placement","disabled","visible / v-model:visible","offset","transition","show-arrow","popper-options","popper-class","popper-style","show-after","hide-after","auto-close","tabindex","teleported","append-to","persistent","virtual-triggering","virtual-ref","show","before-enter","after-enter","hide","before-leave","after-leave"],"description":"<!-- more -->\n\n[Docs](https://wflynn.cn/pages/popover#popover)"},"vft-progress":{"attributes":["percentage","type","stroke-width","text-inside","status","indeterminate","duration","color","width","show-text","stroke-linecap","format","striped","striped-flow"],"description":"用于展示操作进度,告知用户当前状态和预期。\n\n[Docs](https://wflynn.cn/pages/progress#progress)"},"vft-radio":{"attributes":["model-value / v-model","label","disabled","border","size","name","change"],"description":"在一组备选项中进行单选\n\n[Docs](https://wflynn.cn/pages/radio#radio)"},"vft-radio-group":{"attributes":["model-value / v-model","size","disabled","text-color","fill","validate-event","label ^(a11y)","name","id","change"],"description":"[Docs](https://wflynn.cn/pages/radio#radiogroup)"},"vft-radio-button":{"attributes":["label","disabled","name"],"description":"[Docs](https://wflynn.cn/pages/radio#radiobutton)"},"vft-result":{"attributes":["title","sub-title","icon"],"description":"用于对用户的操作结果或者异常状态做反馈。\n\n[Docs](https://wflynn.cn/pages/result#result)"},"vft-scrollbar":{"attributes":["height","max-height","native","wrap-style","wrap-class","view-style","view-class","noresize","tag","always","min-size","scroll"],"description":"用于替换浏览器原生滚动条。\n\n[Docs](https://wflynn.cn/pages/scrollbar#scrollbar)"},"vft-select":{"attributes":["model-value / v-model","options","multiple","disabled","value-key","size","clearable","clear-icon","collapse-tags","multiple-limit","name","effect","autocomplete","placeholder","filterable","allow-create","reserve-keyword","no-data-text","popper-class","popper-append-to-body ^(deprecated)","teleported","persistent","popper-options","automatic-dropdown","height","scrollbar-always-on","remote","remote-method","validate-event","placement","collapse-tags-tooltip","change","visible-change","remove-tag","clear","blur","focus"],"description":"在某些使用情况下,单个选择器可能最终加载数万行数据。 将这么多的数据渲染至 DOM 中可能会给浏览器带来负担,从而造成性能问题。\n\n[Docs](https://wflynn.cn/pages/select#select)"},"vft-side-menu-侧边菜单":{"attributes":["menus","width","height","collapse","collapse-width","is-fixed-left","show-collapse","default-active","default-openeds","default-openeds-level","unique-opened","attr-mapping","menu-top-bottom-height","drag-option","drag-width-cfg","use-router-jump","open-disabled","disabled-judge-turn-over","auto-scroll-active-dom","open-menu-collapse","disable-sub-menu-action","select","update:collapse","update:width","drag-end","drag-width-end","sub-menu-click","sub-menu-open-click","menu-item-mouseenter","menu-item-mouseleave"],"description":"侧边导航菜单组件,提供丰富的功能配置,支持折叠、拖拽宽度、自定义属性映射等特性。\n\n[Docs](https://wflynn.cn/pages/side-menu#sidemenu-侧边菜单)"},"vft-skeleton-item":{"attributes":["variant"],"description":"[Docs](https://wflynn.cn/pages/skeleton#skeletonitem)"},"vft-space":{"attributes":["alignment","class","direction","prefix-cls","style","spacer","size","wrap","fill","fill-ratio"],"description":"虽然我们拥有 [Divider 组件]\n\n[Docs](https://wflynn.cn/pages/space#space)"},"vft-switch":{"attributes":["model-value / v-model","disabled","loading","size","width","inline-prompt","active-icon","inactive-icon","active-text","inactive-text","active-value","inactive-value","active-color","inactive-color","border-color","name","validate-event","before-change","id","tabindex","change"],"description":"表示两种相互对立的状态间的切换,多用于触发「开/关」。\n\n[Docs](https://wflynn.cn/pages/switch#switch)"},"vft-table-表格":{"attributes":["api","columns","data","loading","stripe","border","align","headerAlign","showHeader","showOverflow","height","maxHeight","minHeight","fit","rowkey","pageSize","total","immediate","showPager","sticky","fetchSetting","watchApiFetch","beforeFetch","afterFetch","delEmptyParams","transformParams","extraParams","extraSysHeight","pageHeight","pagination","formOptions","emptyCfg","columnConfig","rowConfig","toolbarConfig","change","page-change","current-row-change","cell-click","cell-dblclick","sort-change","filter-change","fetch-success"],"description":"用于展示多条结构类似的数据,可对数据进行排序、筛选、对比或其他自定义操作。基于 `VXE Table` 进行封装,提供了更便捷的数据获取和分页功能。\n\n[Docs](https://wflynn.cn/pages/table#table-表格)"},"vft-tabs":{"attributes":["model-value / v-model","type","closable","addable","editable","tab-position","stretch","before-leave","tab-click","tab-change","tab-remove","tab-add","edit"],"description":"分隔内容上有关联但属于不同类别的数据集合。\n\n[Docs](https://wflynn.cn/pages/tabs#tabs)"},"vft-tab-pane":{"attributes":["label","disabled","name","closable","lazy"],"description":"[Docs](https://wflynn.cn/pages/tabs#tab-pane)"},"vft-check-tag":{"attributes":["checked","change"],"description":"[Docs](https://wflynn.cn/pages/tag#checktag)"},"vft-tag":{"attributes":["type","closable","disable-transitions","hit","color","size","effect","round","click","close"],"description":"用于标记和选择。\n\n[Docs](https://wflynn.cn/pages/tag#tag)"},"vft-time-picker":{"attributes":["model-value / v-model","readonly","disabled","editable","clearable","size","placeholder","start-placeholder","end-placeholder","is-range","arrow-control","popper-class","range-separator","format","default-value","id","name","label ^(a11y)","prefix-icon","clear-icon","disabled-hours","disabled-minutes","disabled-seconds","teleported","tabindex","change","blur","focus","visible-change"],"description":"用于选择或输入日期\n\n[Docs](https://wflynn.cn/pages/time-picker#timepicker)"},"vft-tooltip":{"attributes":["role","show-arrow","arrow-offset","virtual-ref","virtual-triggering","id","open","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","strategy","style","className","effect","visible / v-model:visible","enterable","pure","focus-on-show","trapping","popper-class","popper-style","reference-el","trigger-target-el","stop-popper-mouse-event","aria-label ^(a11y)","before-show","before-hide","show","hide","open","close"],"description":"常用于展示鼠标 hover 时的提示信息。\n\n[Docs](https://wflynn.cn/pages/tooltip#tooltip)"},"vft-tree":{"attributes":["data","empty-text","node-key","props","render-after-expand","load","render-content","highlight-current","default-expand-all","expand-on-click-node","check-on-click-node","auto-expand-parent","default-expanded-keys","show-checkbox","check-strictly","default-checked-keys","current-node-key","filter-node-method","accordion","indent","icon","lazy","draggable","allow-drag","allow-drop","node-click","node-contextmenu","check-change","check","current-change","node-expand","node-collapse","node-drag-start","node-drag-enter","node-drag-leave","node-drag-over","node-drag-end","node-drop"],"description":"用清晰的层级结构展示信息,可展开或折叠。\n\n[Docs](https://wflynn.cn/pages/tree#tree)"},"vft-upload":{"attributes":["action","headers","method","multiple","data","name","with-credentials","show-file-list","drag","accept","on-preview","on-remove","on-success","on-error","on-progress","on-change","on-exceed","before-upload","before-remove","file-list` / `v-model:file-list","list-type","auto-upload","http-request","disabled","limit"],"description":"通过点击或者拖拽上传文件。\n\n[Docs](https://wflynn.cn/pages/upload#upload)"},"vft-date-time-select":{"attributes":["dateList","defaultFormat","placement","change"],"description":"自定义时间选择器\n\n[Docs](https://wflynn.cn/pages/date-time-select#datetimeselect)"},"vft-horizontal-menu":{"attributes":["menus","defaultActive","defaultOpeneds","attrMapping","useRouterJump","openDisabled","disabledJudgeTurnOver","subMenuCfg","maxRowLength","open","close"],"description":"自定义时间选择器\n\n[Docs](https://wflynn.cn/pages/horizontal-menu#horizontalmenu)"},"vft-icon-text":{"attributes":["text","icon","color","hoverColor","distance","reverse","size","direction","pointer"],"description":"文字与图标组合\n\n[Docs](https://wflynn.cn/pages/icon-text#icontext)"},"vft-search":{"attributes":["modelValue","placeholder","prefixIcon","suffixIcon","clearable","clearIcon","width","activeWidth","usePopover","popoverCfg","update:modelValue","blur","focus","clear","enter","prefixClick","suffixClick","mouseenter","mouseleave","keydown","change"],"description":"搜索,以及搜索框\n\n[Docs](https://wflynn.cn/pages/search#search)"},"vft-side-menu":{"attributes":["menus","uniqueOpened","isFixedLeft","autoScrollActiveDom","collapse","defaultActive","defaultOpeneds","width","collapseWidth","height","attrMapping","extraHeight","menuTopBottomHeight","showCollapse","dragOption","dragWidthCfg","useRouterJump","openDisabled","update:collapse","update:width","dragEnd","dragWidthEnd","select","menuItemMouseenter","menuItemMouseleave"],"description":"自定义时间选择器\n\n[Docs](https://wflynn.cn/pages/side-menu#sidemenu)"},"vft-super-form":{"attributes":["register","submit"],"description":"自定义时间选择器\n\n[Docs](https://wflynn.cn/pages/super-form#superform)"}}
1
+ {}