vft 0.0.465 → 0.0.466

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.
@@ -581,6 +581,7 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
581
581
  $slots: {
582
582
  file?(_: {
583
583
  file: import("./types").UploadFile;
584
+ index: number;
584
585
  }): any;
585
586
  trigger?(_: {}): any;
586
587
  default?(_: {}): any;
@@ -8,6 +8,7 @@ export interface UploadListProps {
8
8
  declare function __VLS_template(): {
9
9
  default?(_: {
10
10
  file: UploadFile;
11
+ index: number;
11
12
  }): any;
12
13
  append?(_: {}): any;
13
14
  };
@@ -1,22 +1,22 @@
1
- import { defineComponent as C, ref as x, createBlock as p, openBlock as n, TransitionGroup as B, unref as e, normalizeClass as t, withCtx as F, createElementBlock as m, renderSlot as h, Fragment as N, renderList as z, withKeys as I, createCommentVNode as a, createElementVNode as b, withModifiers as P, createVNode as f, toDisplayString as K, normalizeStyle as L, nextTick as S } from "vue";
1
+ import { defineComponent as C, ref as B, createBlock as p, openBlock as n, TransitionGroup as F, unref as e, normalizeClass as t, withCtx as N, createElementBlock as m, renderSlot as h, Fragment as z, renderList as I, withKeys as P, createCommentVNode as a, createElementVNode as b, withModifiers as K, createVNode as f, toDisplayString as L, normalizeStyle as S, nextTick as D } from "vue";
2
2
  import "../form/index.js";
3
3
  import { VftIcon as u } from "../icon/index.js";
4
- import { VftProgress as D } from "../progress/index.js";
4
+ import { VftProgress as E } from "../progress/index.js";
5
5
  import "@vueuse/core";
6
6
  import "@vft/utils";
7
- import { debugWarn as E } from "../../utils/error.js";
7
+ import { debugWarn as U } from "../../utils/error.js";
8
8
  import "../config-provider/hooks/use-global-config.js";
9
9
  import "lodash-es";
10
10
  import { useNamespace as g } from "../../hooks/use-namespace/index.js";
11
11
  import "../../hooks/use-model-toggle/index.js";
12
12
  import "@popperjs/core";
13
13
  import "../../hooks/use-z-index/index.js";
14
- import { useFormDisabled as U } from "../form/hooks/use-form-common-props.js";
15
- import { useFormItem as G } from "../form/hooks/use-form-item.js";
16
- const M = ["onKeydown"], R = ["src"], W = ["onClick"], j = ["onClick"], q = ["onClick"], A = C({
14
+ import { useFormDisabled as G } from "../form/hooks/use-form-common-props.js";
15
+ import { useFormItem as M } from "../form/hooks/use-form-item.js";
16
+ const R = ["onKeydown"], W = ["src"], j = ["onClick"], q = ["onClick"], A = ["onClick"], H = C({
17
17
  name: "VftUploadList"
18
- }), oe = /* @__PURE__ */ C({
19
- ...A,
18
+ }), ae = /* @__PURE__ */ C({
19
+ ...H,
20
20
  props: {
21
21
  files: { default: [] },
22
22
  disabled: { type: Boolean, default: !1 },
@@ -26,12 +26,12 @@ const M = ["onKeydown"], R = ["src"], W = ["onClick"], j = ["onClick"], q = ["on
26
26
  },
27
27
  emits: ["remove"],
28
28
  setup(l, { emit: T }) {
29
- const w = T, i = g("upload"), c = g("icon"), $ = g("list"), d = U(), { formItem: V } = G(), y = x(!1), v = (k) => {
30
- w("remove", k), S(() => {
31
- V?.validate("change").catch((o) => E(o));
29
+ const w = T, i = g("upload"), c = g("icon"), $ = g("list"), d = G(), { formItem: V } = M(), y = B(!1), v = (k) => {
30
+ w("remove", k), D(() => {
31
+ V?.validate("change").catch((o) => U(o));
32
32
  });
33
33
  };
34
- return (k, o) => (n(), p(B, {
34
+ return (k, o) => (n(), p(F, {
35
35
  tag: "ul",
36
36
  class: t([
37
37
  e(i).b("list"),
@@ -40,8 +40,8 @@ const M = ["onKeydown"], R = ["src"], W = ["onClick"], j = ["onClick"], q = ["on
40
40
  ]),
41
41
  name: e($).b()
42
42
  }, {
43
- default: F(() => [
44
- (n(!0), m(N, null, z(l.files, (s) => (n(), m("li", {
43
+ default: N(() => [
44
+ (n(!0), m(z, null, I(l.files, (s, x) => (n(), m("li", {
45
45
  key: s.uid || s.name,
46
46
  class: t([
47
47
  e(i).be("list", "item"),
@@ -49,25 +49,28 @@ const M = ["onKeydown"], R = ["src"], W = ["onClick"], j = ["onClick"], q = ["on
49
49
  { focusing: y.value }
50
50
  ]),
51
51
  tabindex: "0",
52
- onKeydown: I((r) => !e(d) && v(s), ["delete"]),
52
+ onKeydown: P((r) => !e(d) && v(s), ["delete"]),
53
53
  onFocus: o[0] || (o[0] = (r) => y.value = !0),
54
54
  onBlur: o[1] || (o[1] = (r) => y.value = !1),
55
55
  onClick: o[2] || (o[2] = (r) => y.value = !1)
56
56
  }, [
57
- h(k.$slots, "default", { file: s }, () => [
57
+ h(k.$slots, "default", {
58
+ file: s,
59
+ index: x
60
+ }, () => [
58
61
  l.listType === "picture" || s.status !== "uploading" && l.listType === "picture-card" ? (n(), m("img", {
59
62
  key: 0,
60
63
  class: t(e(i).be("list", "item-thumbnail")),
61
64
  src: s.url,
62
65
  alt: ""
63
- }, null, 10, R)) : a("", !0),
66
+ }, null, 10, W)) : a("", !0),
64
67
  s.status === "uploading" || l.listType !== "picture-card" ? (n(), m("div", {
65
68
  key: 1,
66
69
  class: t(e(i).be("list", "item-info"))
67
70
  }, [
68
71
  b("a", {
69
72
  class: t(e(i).be("list", "item-name")),
70
- onClick: P((r) => l.handlePreview(s), ["prevent"])
73
+ onClick: K((r) => l.handlePreview(s), ["prevent"])
71
74
  }, [
72
75
  f(e(u), {
73
76
  class: t(e(c).m("document")),
@@ -75,14 +78,14 @@ const M = ["onKeydown"], R = ["src"], W = ["onClick"], j = ["onClick"], q = ["on
75
78
  }, null, 8, ["class"]),
76
79
  b("span", {
77
80
  class: t(e(i).be("list", "item-file-name"))
78
- }, K(s.name), 3)
79
- ], 10, W),
80
- s.status === "uploading" ? (n(), p(e(D), {
81
+ }, L(s.name), 3)
82
+ ], 10, j),
83
+ s.status === "uploading" ? (n(), p(e(E), {
81
84
  key: 0,
82
85
  type: l.listType === "picture-card" ? "circle" : "line",
83
86
  "stroke-width": l.listType === "picture-card" ? 6 : 2,
84
87
  percentage: Number(s.percentage),
85
- style: L(l.listType === "picture-card" ? "" : "margin-top: 0.5rem")
88
+ style: S(l.listType === "picture-card" ? "" : "margin-top: 0.5rem")
86
89
  }, null, 8, ["type", "stroke-width", "percentage", "style"])) : a("", !0)
87
90
  ], 2)) : a("", !0),
88
91
  b("label", {
@@ -120,7 +123,7 @@ const M = ["onKeydown"], R = ["src"], W = ["onClick"], j = ["onClick"], q = ["on
120
123
  icon: "icon-zoom-in",
121
124
  class: t(e(c).m("zoom-in"))
122
125
  }, null, 8, ["class"])
123
- ], 10, j),
126
+ ], 10, q),
124
127
  e(d) ? a("", !0) : (n(), m("span", {
125
128
  key: 0,
126
129
  class: t(e(i).be("list", "item-delete")),
@@ -130,10 +133,10 @@ const M = ["onKeydown"], R = ["src"], W = ["onClick"], j = ["onClick"], q = ["on
130
133
  icon: "icon-delete",
131
134
  class: t(e(c).m("delete"))
132
135
  }, null, 8, ["class"])
133
- ], 10, q))
136
+ ], 10, A))
134
137
  ], 2)) : a("", !0)
135
138
  ])
136
- ], 42, M))), 128)),
139
+ ], 42, R))), 128)),
137
140
  h(k.$slots, "append")
138
141
  ]),
139
142
  _: 3
@@ -141,5 +144,5 @@ const M = ["onKeydown"], R = ["src"], W = ["onClick"], j = ["onClick"], q = ["on
141
144
  }
142
145
  });
143
146
  export {
144
- oe as default
147
+ ae as default
145
148
  };
@@ -2,6 +2,7 @@ import type { UploadProps } from './types';
2
2
  declare function __VLS_template(): {
3
3
  file?(_: {
4
4
  file: import("./types").UploadFile;
5
+ index: number;
5
6
  }): any;
6
7
  trigger?(_: {}): any;
7
8
  default?(_: {}): any;
@@ -1,4 +1,4 @@
1
- import { defineComponent as I, useSlots as V, shallowRef as j, computed as B, onBeforeUnmount as N, provide as O, toRef as q, createElementBlock as D, openBlock as v, normalizeClass as H, unref as o, createBlock as g, createCommentVNode as n, renderSlot as i, createSlots as C, withCtx as u, createVNode as K, mergeProps as E } from "vue";
1
+ import { defineComponent as I, useSlots as V, shallowRef as j, computed as B, onBeforeUnmount as N, provide as O, toRef as q, createElementBlock as D, openBlock as v, normalizeClass as H, unref as o, createBlock as g, createCommentVNode as i, renderSlot as r, createSlots as C, withCtx as u, createVNode as K, mergeProps as E } from "vue";
2
2
  import "../form/index.js";
3
3
  import { VftMessage as h } from "../message/index.js";
4
4
  import { ajaxUpload as W } from "./ajax.js";
@@ -48,12 +48,12 @@ const Q = I({
48
48
  } },
49
49
  onSizeExceed: {}
50
50
  },
51
- setup(s, { expose: P }) {
52
- const t = s, r = V(), y = J(), p = j(), {
51
+ setup(n, { expose: P }) {
52
+ const t = n, d = V(), y = J(), p = j(), {
53
53
  abort: w,
54
54
  submit: $,
55
55
  clearFiles: S,
56
- uploadFiles: d,
56
+ uploadFiles: f,
57
57
  handleStart: k,
58
58
  handleError: M,
59
59
  handleRemove: m,
@@ -63,11 +63,11 @@ const Q = I({
63
63
  abort: w,
64
64
  submit: $,
65
65
  clearFiles: S,
66
- uploadFiles: d,
66
+ uploadFiles: f,
67
67
  uploadRef: p
68
68
  }, R = B(() => ({
69
69
  ...t,
70
- fileList: d.value,
70
+ fileList: f.value,
71
71
  onStart: k,
72
72
  onProgress: U,
73
73
  onSuccess: T,
@@ -80,15 +80,15 @@ const Q = I({
80
80
  if (t.onSizeExceed)
81
81
  t.onSizeExceed?.(e, l);
82
82
  else {
83
- const f = `文件大小不能超过 ${(l / 1048576).toFixed(2)}MB`;
84
- console.warn("默认文件大小超出提示:", f), h.warning(f);
83
+ const s = `文件大小不能超过 ${(l / 1048576).toFixed(2)}MB`;
84
+ console.warn("默认文件大小超出提示:", s), h.warning(s);
85
85
  }
86
86
  },
87
- onSizeInvalid: (e, l, a, f, b) => {
87
+ onSizeInvalid: (e, l, a, s, b) => {
88
88
  if (t.onSizeInvalid)
89
- t.onSizeInvalid(e, l, a, f, b);
89
+ t.onSizeInvalid(e, l, a, s, b);
90
90
  else {
91
- const z = `文件尺寸不符合要求,当前尺寸:${l}x${a},期望尺寸:${f}x${b}`;
91
+ const z = `文件尺寸不符合要求,当前尺寸:${l}x${a},期望尺寸:${s}x${b}`;
92
92
  console.warn("默认尺寸校验提示:", z), h.warning(z);
93
93
  }
94
94
  },
@@ -102,7 +102,7 @@ const Q = I({
102
102
  }
103
103
  }));
104
104
  return N(() => {
105
- d.value.forEach(({ url: e }) => {
105
+ f.value.forEach(({ url: e }) => {
106
106
  e?.startsWith("blob:") && URL.revokeObjectURL(e);
107
107
  });
108
108
  }), O(A, {
@@ -113,16 +113,16 @@ const Q = I({
113
113
  clearFiles: S,
114
114
  handleStart: k,
115
115
  handleRemove: m,
116
- fileList: d
116
+ fileList: f
117
117
  }), (e, l) => (v(), D("div", {
118
118
  class: H(["vft-upload-wrapper", [{ disabled: o(y) }]])
119
119
  }, [
120
- c.value && s.showFileList ? (v(), g(L, {
120
+ c.value && n.showFileList ? (v(), g(L, {
121
121
  key: 0,
122
122
  disabled: o(y),
123
- "list-type": s.listType,
124
- files: o(d),
125
- "handle-preview": s.onPreview,
123
+ "list-type": n.listType,
124
+ files: o(f),
125
+ "handle-preview": n.onPreview,
126
126
  onRemove: o(m)
127
127
  }, C({
128
128
  append: u(() => [
@@ -131,8 +131,8 @@ const Q = I({
131
131
  ref: p
132
132
  }, R.value), {
133
133
  default: u(() => [
134
- o(r).trigger ? i(e.$slots, "trigger", { key: 0 }) : n("", !0),
135
- !o(r).trigger && o(r).default ? i(e.$slots, "default", { key: 1 }) : n("", !0)
134
+ o(d).trigger ? r(e.$slots, "trigger", { key: 0 }) : i("", !0),
135
+ !o(d).trigger && o(d).default ? r(e.$slots, "default", { key: 1 }) : i("", !0)
136
136
  ]),
137
137
  _: 3
138
138
  }, 16)
@@ -141,41 +141,47 @@ const Q = I({
141
141
  }, [
142
142
  e.$slots.file ? {
143
143
  name: "default",
144
- fn: u(({ file: a }) => [
145
- i(e.$slots, "file", { file: a })
144
+ fn: u(({ file: a, index: s }) => [
145
+ r(e.$slots, "file", {
146
+ file: a,
147
+ index: s
148
+ })
146
149
  ]),
147
150
  key: "0"
148
151
  } : void 0
149
- ]), 1032, ["disabled", "list-type", "files", "handle-preview", "onRemove"])) : n("", !0),
150
- !c.value || c.value && !s.showFileList ? (v(), g(F, E({
152
+ ]), 1032, ["disabled", "list-type", "files", "handle-preview", "onRemove"])) : i("", !0),
153
+ !c.value || c.value && !n.showFileList ? (v(), g(F, E({
151
154
  key: 1,
152
155
  ref_key: "uploadRef",
153
156
  ref: p
154
157
  }, R.value), {
155
158
  default: u(() => [
156
- o(r).trigger ? i(e.$slots, "trigger", { key: 0 }) : n("", !0),
157
- !o(r).trigger && o(r).default ? i(e.$slots, "default", { key: 1 }) : n("", !0)
159
+ o(d).trigger ? r(e.$slots, "trigger", { key: 0 }) : i("", !0),
160
+ !o(d).trigger && o(d).default ? r(e.$slots, "default", { key: 1 }) : i("", !0)
158
161
  ]),
159
162
  _: 3
160
- }, 16)) : n("", !0),
161
- e.$slots.trigger ? i(e.$slots, "default", { key: 2 }) : n("", !0),
162
- i(e.$slots, "tip"),
163
- !c.value && s.showFileList ? (v(), g(L, {
163
+ }, 16)) : i("", !0),
164
+ e.$slots.trigger ? r(e.$slots, "default", { key: 2 }) : i("", !0),
165
+ r(e.$slots, "tip"),
166
+ !c.value && n.showFileList ? (v(), g(L, {
164
167
  key: 3,
165
168
  disabled: o(y),
166
- "list-type": s.listType,
167
- files: o(d),
168
- "handle-preview": s.onPreview,
169
+ "list-type": n.listType,
170
+ files: o(f),
171
+ "handle-preview": n.onPreview,
169
172
  onRemove: o(m)
170
173
  }, C({ _: 2 }, [
171
174
  e.$slots.file ? {
172
175
  name: "default",
173
- fn: u(({ file: a }) => [
174
- i(e.$slots, "file", { file: a })
176
+ fn: u(({ file: a, index: s }) => [
177
+ r(e.$slots, "file", {
178
+ file: a,
179
+ index: s
180
+ })
175
181
  ]),
176
182
  key: "0"
177
183
  } : void 0
178
- ]), 1032, ["disabled", "list-type", "files", "handle-preview", "onRemove"])) : n("", !0)
184
+ ]), 1032, ["disabled", "list-type", "files", "handle-preview", "onRemove"])) : i("", !0)
179
185
  ], 2));
180
186
  }
181
187
  });
@@ -1,6 +1,6 @@
1
1
  declare const _default: {
2
2
  "name": "vft",
3
- "version": "0.0.465",
3
+ "version": "0.0.466",
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.465";
1
+ const o = "0.0.466";
2
2
  export {
3
3
  o as version
4
4
  };
@@ -581,6 +581,7 @@ export declare const VftUpload: import("vft/es/utils").SFCWithInstall<{
581
581
  $slots: {
582
582
  file?(_: {
583
583
  file: import("./types").UploadFile;
584
+ index: number;
584
585
  }): any;
585
586
  trigger?(_: {}): any;
586
587
  default?(_: {}): any;
@@ -8,6 +8,7 @@ export interface UploadListProps {
8
8
  declare function __VLS_template(): {
9
9
  default?(_: {
10
10
  file: UploadFile;
11
+ index: number;
11
12
  }): any;
12
13
  append?(_: {}): any;
13
14
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("../form/index.cjs");const c=require("../icon/index.cjs"),y=require("../progress/index.cjs");require("@vueuse/core");require("@vft/utils");const B=require("../../utils/error.cjs");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");const d=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const v=require("../form/hooks/use-form-common-props.cjs"),b=require("../form/hooks/use-form-item.cjs"),V=["onKeydown"],z=["src"],N=["onClick"],g=["onClick"],h=["onClick"],q=e.defineComponent({name:"VftUploadList"}),T=e.defineComponent({...q,props:{files:{default:[]},disabled:{type:Boolean,default:!1},handlePreview:{type:Function,default:()=>{}},listType:{default:"text"}},emits:["remove"],setup(n,{emit:f}){const k=f,l=d.useNamespace("upload"),s=d.useNamespace("icon"),p=d.useNamespace("list"),a=v.useFormDisabled(),{formItem:C}=b.useFormItem(),i=e.ref(!1),m=u=>{k("remove",u),e.nextTick(()=>{C?.validate("change").catch(o=>B.debugWarn(o))})};return(u,o)=>(e.openBlock(),e.createBlock(e.TransitionGroup,{tag:"ul",class:e.normalizeClass([e.unref(l).b("list"),e.unref(l).bm("list",n.listType),e.unref(l).is("disabled",e.unref(a))]),name:e.unref(p).b()},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.files,t=>(e.openBlock(),e.createElementBlock("li",{key:t.uid||t.name,class:e.normalizeClass([e.unref(l).be("list","item"),e.unref(l).is(t.status),{focusing:i.value}]),tabindex:"0",onKeydown:e.withKeys(r=>!e.unref(a)&&m(t),["delete"]),onFocus:o[0]||(o[0]=r=>i.value=!0),onBlur:o[1]||(o[1]=r=>i.value=!1),onClick:o[2]||(o[2]=r=>i.value=!1)},[e.renderSlot(u.$slots,"default",{file:t},()=>[n.listType==="picture"||t.status!=="uploading"&&n.listType==="picture-card"?(e.openBlock(),e.createElementBlock("img",{key:0,class:e.normalizeClass(e.unref(l).be("list","item-thumbnail")),src:t.url,alt:""},null,10,z)):e.createCommentVNode("",!0),t.status==="uploading"||n.listType!=="picture-card"?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(l).be("list","item-info"))},[e.createElementVNode("a",{class:e.normalizeClass(e.unref(l).be("list","item-name")),onClick:e.withModifiers(r=>n.handlePreview(t),["prevent"])},[e.createVNode(e.unref(c.VftIcon),{class:e.normalizeClass(e.unref(s).m("document")),icon:"icon-document"},null,8,["class"]),e.createElementVNode("span",{class:e.normalizeClass(e.unref(l).be("list","item-file-name"))},e.toDisplayString(t.name),3)],10,N),t.status==="uploading"?(e.openBlock(),e.createBlock(e.unref(y.VftProgress),{key:0,type:n.listType==="picture-card"?"circle":"line","stroke-width":n.listType==="picture-card"?6:2,percentage:Number(t.percentage),style:e.normalizeStyle(n.listType==="picture-card"?"":"margin-top: 0.5rem")},null,8,["type","stroke-width","percentage","style"])):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0),e.createElementVNode("label",{class:e.normalizeClass(e.unref(l).be("list","item-status-label"))},[n.listType==="text"?(e.openBlock(),e.createBlock(e.unref(c.VftIcon),{key:0,icon:"icon-circle-check",class:e.normalizeClass([e.unref(s).m("upload-success"),e.unref(s).m("circle-check")])},null,8,["class"])):["picture-card","picture"].includes(n.listType)?(e.openBlock(),e.createBlock(e.unref(c.VftIcon),{key:1,icon:"icon-check",class:e.normalizeClass([e.unref(s).m("upload-success"),e.unref(s).m("check")])},null,8,["class"])):e.createCommentVNode("",!0)],2),e.unref(a)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(c.VftIcon),{key:2,icon:"icon-close",class:e.normalizeClass(e.unref(s).m("close")),onClick:r=>m(t)},null,8,["class","onClick"])),e.unref(a)?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("i",{key:3,class:e.normalizeClass(e.unref(s).m("close-tip"))}," 按 delete 键可删除 ",2)),n.listType==="picture-card"?(e.openBlock(),e.createElementBlock("span",{key:4,class:e.normalizeClass(e.unref(l).be("list","item-actions"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(l).be("list","item-preview")),onClick:r=>n.handlePreview(t)},[e.createVNode(e.unref(c.VftIcon),{icon:"icon-zoom-in",class:e.normalizeClass(e.unref(s).m("zoom-in"))},null,8,["class"])],10,g),e.unref(a)?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(l).be("list","item-delete")),onClick:r=>m(t)},[e.createVNode(e.unref(c.VftIcon),{icon:"icon-delete",class:e.normalizeClass(e.unref(s).m("delete"))},null,8,["class"])],10,h))],2)):e.createCommentVNode("",!0)])],42,V))),128)),e.renderSlot(u.$slots,"append")]),_:3},8,["class","name"]))}});exports.default=T;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("../form/index.cjs");const c=require("../icon/index.cjs"),B=require("../progress/index.cjs");require("@vueuse/core");require("@vft/utils");const v=require("../../utils/error.cjs");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");const d=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const b=require("../form/hooks/use-form-common-props.cjs"),V=require("../form/hooks/use-form-item.cjs"),z=["onKeydown"],N=["src"],g=["onClick"],h=["onClick"],q=["onClick"],T=e.defineComponent({name:"VftUploadList"}),$=e.defineComponent({...T,props:{files:{default:[]},disabled:{type:Boolean,default:!1},handlePreview:{type:Function,default:()=>{}},listType:{default:"text"}},emits:["remove"],setup(n,{emit:f}){const k=f,l=d.useNamespace("upload"),s=d.useNamespace("icon"),p=d.useNamespace("list"),a=b.useFormDisabled(),{formItem:C}=V.useFormItem(),i=e.ref(!1),m=u=>{k("remove",u),e.nextTick(()=>{C?.validate("change").catch(o=>v.debugWarn(o))})};return(u,o)=>(e.openBlock(),e.createBlock(e.TransitionGroup,{tag:"ul",class:e.normalizeClass([e.unref(l).b("list"),e.unref(l).bm("list",n.listType),e.unref(l).is("disabled",e.unref(a))]),name:e.unref(p).b()},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.files,(t,y)=>(e.openBlock(),e.createElementBlock("li",{key:t.uid||t.name,class:e.normalizeClass([e.unref(l).be("list","item"),e.unref(l).is(t.status),{focusing:i.value}]),tabindex:"0",onKeydown:e.withKeys(r=>!e.unref(a)&&m(t),["delete"]),onFocus:o[0]||(o[0]=r=>i.value=!0),onBlur:o[1]||(o[1]=r=>i.value=!1),onClick:o[2]||(o[2]=r=>i.value=!1)},[e.renderSlot(u.$slots,"default",{file:t,index:y},()=>[n.listType==="picture"||t.status!=="uploading"&&n.listType==="picture-card"?(e.openBlock(),e.createElementBlock("img",{key:0,class:e.normalizeClass(e.unref(l).be("list","item-thumbnail")),src:t.url,alt:""},null,10,N)):e.createCommentVNode("",!0),t.status==="uploading"||n.listType!=="picture-card"?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(l).be("list","item-info"))},[e.createElementVNode("a",{class:e.normalizeClass(e.unref(l).be("list","item-name")),onClick:e.withModifiers(r=>n.handlePreview(t),["prevent"])},[e.createVNode(e.unref(c.VftIcon),{class:e.normalizeClass(e.unref(s).m("document")),icon:"icon-document"},null,8,["class"]),e.createElementVNode("span",{class:e.normalizeClass(e.unref(l).be("list","item-file-name"))},e.toDisplayString(t.name),3)],10,g),t.status==="uploading"?(e.openBlock(),e.createBlock(e.unref(B.VftProgress),{key:0,type:n.listType==="picture-card"?"circle":"line","stroke-width":n.listType==="picture-card"?6:2,percentage:Number(t.percentage),style:e.normalizeStyle(n.listType==="picture-card"?"":"margin-top: 0.5rem")},null,8,["type","stroke-width","percentage","style"])):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0),e.createElementVNode("label",{class:e.normalizeClass(e.unref(l).be("list","item-status-label"))},[n.listType==="text"?(e.openBlock(),e.createBlock(e.unref(c.VftIcon),{key:0,icon:"icon-circle-check",class:e.normalizeClass([e.unref(s).m("upload-success"),e.unref(s).m("circle-check")])},null,8,["class"])):["picture-card","picture"].includes(n.listType)?(e.openBlock(),e.createBlock(e.unref(c.VftIcon),{key:1,icon:"icon-check",class:e.normalizeClass([e.unref(s).m("upload-success"),e.unref(s).m("check")])},null,8,["class"])):e.createCommentVNode("",!0)],2),e.unref(a)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(c.VftIcon),{key:2,icon:"icon-close",class:e.normalizeClass(e.unref(s).m("close")),onClick:r=>m(t)},null,8,["class","onClick"])),e.unref(a)?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("i",{key:3,class:e.normalizeClass(e.unref(s).m("close-tip"))}," 按 delete 键可删除 ",2)),n.listType==="picture-card"?(e.openBlock(),e.createElementBlock("span",{key:4,class:e.normalizeClass(e.unref(l).be("list","item-actions"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(l).be("list","item-preview")),onClick:r=>n.handlePreview(t)},[e.createVNode(e.unref(c.VftIcon),{icon:"icon-zoom-in",class:e.normalizeClass(e.unref(s).m("zoom-in"))},null,8,["class"])],10,h),e.unref(a)?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(l).be("list","item-delete")),onClick:r=>m(t)},[e.createVNode(e.unref(c.VftIcon),{icon:"icon-delete",class:e.normalizeClass(e.unref(s).m("delete"))},null,8,["class"])],10,q))],2)):e.createCommentVNode("",!0)])],42,z))),128)),e.renderSlot(u.$slots,"append")]),_:3},8,["class","name"]))}});exports.default=$;
@@ -2,6 +2,7 @@ import type { UploadProps } from './types';
2
2
  declare function __VLS_template(): {
3
3
  file?(_: {
4
4
  file: import("./types").UploadFile;
5
+ index: number;
5
6
  }): any;
6
7
  trigger?(_: {}): any;
7
8
  default?(_: {}): any;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("../form/index.cjs");const p=require("../message/index.cjs"),M=require("./ajax.cjs"),P=require("./constants.cjs"),w=require("./upload-content.vue2.cjs"),k=require("./upload-list.vue2.cjs"),V=require("./use-handlers.cjs"),E=require("../form/hooks/use-form-common-props.cjs"),F=e.defineComponent({name:"vft-upload"}),L=e.defineComponent({...F,props:{action:{default:"#"},headers:{},method:{default:"post"},data:{},multiple:{type:Boolean,default:!1},name:{default:"file"},drag:{type:Boolean,default:!1},withCredentials:{type:Boolean},showFileList:{type:Boolean,default:!0},accept:{default:""},type:{default:"select"},fileList:{default:[]},autoUpload:{type:Boolean,default:!1},listType:{default:"text"},httpRequest:{type:Function,default:M.ajaxUpload},disabled:{type:Boolean},limit:{},replaceOnLimit:{type:Boolean,default:!1},maxSize:{default:void 0},sizeExceedMessage:{default:"文件大小超出限制"},sizeWidth:{default:void 0},sizeHeight:{default:void 0},onSizeInvalid:{},onTypeInvalid:{},beforeUpload:{},beforeRemove:{},onRemove:{},onChange:{},onPreview:{},onSuccess:{},onProgress:{},onError:{},onExceed:{type:Function,default:()=>{}},onSizeExceed:{}},setup(a,{expose:B}){const o=a,r=e.useSlots(),c=E.useFormDisabled(),d=e.shallowRef(),{abort:m,submit:v,clearFiles:y,uploadFiles:s,handleStart:g,handleError:$,handleRemove:u,handleSuccess:b,handleProgress:R}=V.useHandlers(o,d),f=e.computed(()=>o.listType==="picture-card"),z={abort:m,submit:v,clearFiles:y,uploadFiles:s,uploadRef:d},S=e.computed(()=>({...o,fileList:s.value,onStart:g,onProgress:R,onSuccess:b,onError:$,onRemove:u,onChange:(t,l)=>{o.onChange?.(t,l,z)},onSizeExceed:(t,l)=>{if(o.onSizeExceed)o.onSizeExceed?.(t,l);else{const i=`文件大小不能超过 ${(l/1048576).toFixed(2)}MB`;console.warn("默认文件大小超出提示:",i),p.VftMessage.warning(i)}},onSizeInvalid:(t,l,n,i,h)=>{if(o.onSizeInvalid)o.onSizeInvalid(t,l,n,i,h);else{const C=`文件尺寸不符合要求,当前尺寸:${l}x${n},期望尺寸:${i}x${h}`;console.warn("默认尺寸校验提示:",C),p.VftMessage.warning(C)}},onTypeInvalid:(t,l)=>{if(o.onTypeInvalid)o.onTypeInvalid(t,l);else{const n=`文件类型不符合要求,当前文件:${t.name},支持的类型:${l}`;console.warn("默认文件类型校验提示:",n),p.VftMessage.warning(n)}}}));return e.onBeforeUnmount(()=>{s.value.forEach(({url:t})=>{t?.startsWith("blob:")&&URL.revokeObjectURL(t)})}),e.provide(P.uploadContextKey,{accept:e.toRef(o,"accept")}),B({abort:m,submit:v,clearFiles:y,handleStart:g,handleRemove:u,fileList:s}),(t,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vft-upload-wrapper",[{disabled:e.unref(c)}]])},[f.value&&a.showFileList?(e.openBlock(),e.createBlock(k.default,{key:0,disabled:e.unref(c),"list-type":a.listType,files:e.unref(s),"handle-preview":a.onPreview,onRemove:e.unref(u)},e.createSlots({append:e.withCtx(()=>[e.createVNode(w.default,e.mergeProps({ref_key:"uploadRef",ref:d},S.value),{default:e.withCtx(()=>[e.unref(r).trigger?e.renderSlot(t.$slots,"trigger",{key:0}):e.createCommentVNode("",!0),!e.unref(r).trigger&&e.unref(r).default?e.renderSlot(t.$slots,"default",{key:1}):e.createCommentVNode("",!0)]),_:3},16)]),_:2},[t.$slots.file?{name:"default",fn:e.withCtx(({file:n})=>[e.renderSlot(t.$slots,"file",{file:n})]),key:"0"}:void 0]),1032,["disabled","list-type","files","handle-preview","onRemove"])):e.createCommentVNode("",!0),!f.value||f.value&&!a.showFileList?(e.openBlock(),e.createBlock(w.default,e.mergeProps({key:1,ref_key:"uploadRef",ref:d},S.value),{default:e.withCtx(()=>[e.unref(r).trigger?e.renderSlot(t.$slots,"trigger",{key:0}):e.createCommentVNode("",!0),!e.unref(r).trigger&&e.unref(r).default?e.renderSlot(t.$slots,"default",{key:1}):e.createCommentVNode("",!0)]),_:3},16)):e.createCommentVNode("",!0),t.$slots.trigger?e.renderSlot(t.$slots,"default",{key:2}):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"tip"),!f.value&&a.showFileList?(e.openBlock(),e.createBlock(k.default,{key:3,disabled:e.unref(c),"list-type":a.listType,files:e.unref(s),"handle-preview":a.onPreview,onRemove:e.unref(u)},e.createSlots({_:2},[t.$slots.file?{name:"default",fn:e.withCtx(({file:n})=>[e.renderSlot(t.$slots,"file",{file:n})]),key:"0"}:void 0]),1032,["disabled","list-type","files","handle-preview","onRemove"])):e.createCommentVNode("",!0)],2))}});exports.default=L;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("../form/index.cjs");const p=require("../message/index.cjs"),M=require("./ajax.cjs"),P=require("./constants.cjs"),w=require("./upload-content.vue2.cjs"),k=require("./upload-list.vue2.cjs"),V=require("./use-handlers.cjs"),E=require("../form/hooks/use-form-common-props.cjs"),F=e.defineComponent({name:"vft-upload"}),L=e.defineComponent({...F,props:{action:{default:"#"},headers:{},method:{default:"post"},data:{},multiple:{type:Boolean,default:!1},name:{default:"file"},drag:{type:Boolean,default:!1},withCredentials:{type:Boolean},showFileList:{type:Boolean,default:!0},accept:{default:""},type:{default:"select"},fileList:{default:[]},autoUpload:{type:Boolean,default:!1},listType:{default:"text"},httpRequest:{type:Function,default:M.ajaxUpload},disabled:{type:Boolean},limit:{},replaceOnLimit:{type:Boolean,default:!1},maxSize:{default:void 0},sizeExceedMessage:{default:"文件大小超出限制"},sizeWidth:{default:void 0},sizeHeight:{default:void 0},onSizeInvalid:{},onTypeInvalid:{},beforeUpload:{},beforeRemove:{},onRemove:{},onChange:{},onPreview:{},onSuccess:{},onProgress:{},onError:{},onExceed:{type:Function,default:()=>{}},onSizeExceed:{}},setup(r,{expose:B}){const o=r,s=e.useSlots(),c=E.useFormDisabled(),d=e.shallowRef(),{abort:m,submit:v,clearFiles:y,uploadFiles:i,handleStart:g,handleError:$,handleRemove:u,handleSuccess:b,handleProgress:R}=V.useHandlers(o,d),f=e.computed(()=>o.listType==="picture-card"),z={abort:m,submit:v,clearFiles:y,uploadFiles:i,uploadRef:d},S=e.computed(()=>({...o,fileList:i.value,onStart:g,onProgress:R,onSuccess:b,onError:$,onRemove:u,onChange:(t,l)=>{o.onChange?.(t,l,z)},onSizeExceed:(t,l)=>{if(o.onSizeExceed)o.onSizeExceed?.(t,l);else{const a=`文件大小不能超过 ${(l/1048576).toFixed(2)}MB`;console.warn("默认文件大小超出提示:",a),p.VftMessage.warning(a)}},onSizeInvalid:(t,l,n,a,h)=>{if(o.onSizeInvalid)o.onSizeInvalid(t,l,n,a,h);else{const C=`文件尺寸不符合要求,当前尺寸:${l}x${n},期望尺寸:${a}x${h}`;console.warn("默认尺寸校验提示:",C),p.VftMessage.warning(C)}},onTypeInvalid:(t,l)=>{if(o.onTypeInvalid)o.onTypeInvalid(t,l);else{const n=`文件类型不符合要求,当前文件:${t.name},支持的类型:${l}`;console.warn("默认文件类型校验提示:",n),p.VftMessage.warning(n)}}}));return e.onBeforeUnmount(()=>{i.value.forEach(({url:t})=>{t?.startsWith("blob:")&&URL.revokeObjectURL(t)})}),e.provide(P.uploadContextKey,{accept:e.toRef(o,"accept")}),B({abort:m,submit:v,clearFiles:y,handleStart:g,handleRemove:u,fileList:i}),(t,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vft-upload-wrapper",[{disabled:e.unref(c)}]])},[f.value&&r.showFileList?(e.openBlock(),e.createBlock(k.default,{key:0,disabled:e.unref(c),"list-type":r.listType,files:e.unref(i),"handle-preview":r.onPreview,onRemove:e.unref(u)},e.createSlots({append:e.withCtx(()=>[e.createVNode(w.default,e.mergeProps({ref_key:"uploadRef",ref:d},S.value),{default:e.withCtx(()=>[e.unref(s).trigger?e.renderSlot(t.$slots,"trigger",{key:0}):e.createCommentVNode("",!0),!e.unref(s).trigger&&e.unref(s).default?e.renderSlot(t.$slots,"default",{key:1}):e.createCommentVNode("",!0)]),_:3},16)]),_:2},[t.$slots.file?{name:"default",fn:e.withCtx(({file:n,index:a})=>[e.renderSlot(t.$slots,"file",{file:n,index:a})]),key:"0"}:void 0]),1032,["disabled","list-type","files","handle-preview","onRemove"])):e.createCommentVNode("",!0),!f.value||f.value&&!r.showFileList?(e.openBlock(),e.createBlock(w.default,e.mergeProps({key:1,ref_key:"uploadRef",ref:d},S.value),{default:e.withCtx(()=>[e.unref(s).trigger?e.renderSlot(t.$slots,"trigger",{key:0}):e.createCommentVNode("",!0),!e.unref(s).trigger&&e.unref(s).default?e.renderSlot(t.$slots,"default",{key:1}):e.createCommentVNode("",!0)]),_:3},16)):e.createCommentVNode("",!0),t.$slots.trigger?e.renderSlot(t.$slots,"default",{key:2}):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"tip"),!f.value&&r.showFileList?(e.openBlock(),e.createBlock(k.default,{key:3,disabled:e.unref(c),"list-type":r.listType,files:e.unref(i),"handle-preview":r.onPreview,onRemove:e.unref(u)},e.createSlots({_:2},[t.$slots.file?{name:"default",fn:e.withCtx(({file:n,index:a})=>[e.renderSlot(t.$slots,"file",{file:n,index:a})]),key:"0"}:void 0]),1032,["disabled","list-type","files","handle-preview","onRemove"])):e.createCommentVNode("",!0)],2))}});exports.default=L;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.465";exports.version=e;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.466";exports.version=e;
@@ -1,6 +1,6 @@
1
1
  declare const _default: {
2
2
  "name": "vft",
3
- "version": "0.0.465",
3
+ "version": "0.0.466",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "es/index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vft",
3
- "version": "0.0.465",
3
+ "version": "0.0.466",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "es/index.js",
@@ -56,11 +56,11 @@
56
56
  "resize-detector": "0.3.0",
57
57
  "sortablejs": "1.15.0",
58
58
  "photoswipe": "5.4.4",
59
- "@vft/constants": "0.0.75",
60
59
  "@vft/router": "0.0.69",
61
60
  "@vft/use": "0.0.91",
62
- "@vft/utils": "0.0.146",
61
+ "@vft/constants": "0.0.75",
63
62
  "@vft/store": "0.0.58",
63
+ "@vft/utils": "0.0.146",
64
64
  "@vft/directives": "0.0.36"
65
65
  },
66
66
  "vetur": {