vft 0.0.334 → 0.0.337

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.
Files changed (48) hide show
  1. package/dist/index.css +1 -1
  2. package/es/components/carousel/use-carousel.js +1 -1
  3. package/es/components/input/input.vue2.js +4 -4
  4. package/es/components/input-tag/composables/use-input-tag.js +1 -1
  5. package/es/components/search/style/css.d.ts +1 -0
  6. package/es/components/search/style/css.js +1 -0
  7. package/es/components/search/style/index.d.ts +1 -0
  8. package/es/components/search/style/index.js +1 -0
  9. package/es/components/super-form/index.d.ts +15 -0
  10. package/es/components/super-form/super-form-item.vue2.js +1 -1
  11. package/es/components/super-form/super-form.vue.d.ts +1 -0
  12. package/es/components/super-form/super-form.vue2.js +3 -3
  13. package/es/components/super-form/types.d.ts +1 -0
  14. package/es/components/super-form/use/helper.js +53 -137
  15. package/es/components/upload/index.d.ts +72 -18
  16. package/es/components/upload/types.d.ts +17 -2
  17. package/es/components/upload/upload-content.vue.d.ts +10 -1
  18. package/es/components/upload/upload-content.vue2.js +103 -80
  19. package/es/components/upload/upload.vue.d.ts +22 -13
  20. package/es/components/upload/upload.vue2.js +201 -73
  21. package/es/components/upload/use-handlers.js +69 -61
  22. package/es/package.json.d.ts +1 -1
  23. package/es/package.json.js +1 -1
  24. package/es/utils/vue/vnode.js +1 -1
  25. package/lib/components/input/input.vue2.cjs +1 -1
  26. package/lib/components/search/style/css.cjs +1 -1
  27. package/lib/components/search/style/css.d.ts +1 -0
  28. package/lib/components/search/style/index.cjs +1 -1
  29. package/lib/components/search/style/index.d.ts +1 -0
  30. package/lib/components/super-form/index.d.ts +15 -0
  31. package/lib/components/super-form/super-form.vue.d.ts +1 -0
  32. package/lib/components/super-form/super-form.vue2.cjs +1 -1
  33. package/lib/components/super-form/types.d.ts +1 -0
  34. package/lib/components/super-form/use/helper.cjs +1 -1
  35. package/lib/components/upload/index.d.ts +72 -18
  36. package/lib/components/upload/types.d.ts +17 -2
  37. package/lib/components/upload/upload-content.vue.d.ts +10 -1
  38. package/lib/components/upload/upload-content.vue2.cjs +1 -1
  39. package/lib/components/upload/upload.vue.d.ts +22 -13
  40. package/lib/components/upload/upload.vue2.cjs +1 -1
  41. package/lib/components/upload/use-handlers.cjs +1 -1
  42. package/lib/package.json.cjs +1 -1
  43. package/lib/package.json.d.ts +1 -1
  44. package/package.json +5 -5
  45. package/theme-style/index.css +1 -1
  46. package/theme-style/src/checkbox.scss +46 -45
  47. package/theme-style/vft-checkbox.css +1 -1
  48. package/web-types.json +1 -1
@@ -1,15 +1,122 @@
1
- import { defineComponent as w, useSlots as U, shallowRef as T, computed as h, onBeforeUnmount as j, provide as N, toRef as V, createElementBlock as q, openBlock as f, normalizeClass as z, unref as t, createBlock as c, createCommentVNode as o, renderSlot as l, createSlots as g, withCtx as r, createVNode as D, mergeProps as k } from "vue";
1
+ import { defineComponent as E, useSlots as T, shallowRef as V, computed as b, onBeforeUnmount as j, provide as N, toRef as O, createElementBlock as q, openBlock as u, normalizeClass as D, unref as o, createBlock as v, createCommentVNode as t, renderSlot as r, createSlots as B, withCtx as a, createVNode as H, mergeProps as S } from "vue";
2
+ import "../alert/index.js";
3
+ import "../avatar/index.js";
4
+ import "../avatar-stack/index.js";
5
+ import "../backtop/index.js";
6
+ import "../button/index.js";
7
+ import "../card/index.js";
8
+ import "../cascader/index.js";
9
+ import "../cascader-panel/index.js";
10
+ import "../check-tag/index.js";
11
+ import "../checkbox/index.js";
12
+ import "../clamp/index.js";
13
+ import "../clamp-toggle/index.js";
14
+ import "../clamp-tooltip/index.js";
15
+ import "../col/index.js";
16
+ import "../collapse-transition/index.js";
17
+ import "../color-picker/index.js";
18
+ import "../config-provider/index.js";
19
+ import "../container/index.js";
20
+ import "@vft/utils";
21
+ import "../context-menu/context-menu.vue2.js";
22
+ import "../icon/index.js";
23
+ import "../date-picker/index.js";
24
+ import "../date-time-select/index.js";
25
+ import "../descriptions/index.js";
26
+ import "../dialog/index.js";
27
+ import "../divider/index.js";
28
+ import "../drawer/index.js";
29
+ import "../dropdown/index.js";
30
+ import "../empty/index.js";
31
+ import "../footer-layout/index.js";
2
32
  import "../form/index.js";
3
- import { ajaxUpload as H } from "./ajax.js";
4
- import { uploadContextKey as K } from "./constants.js";
5
- import R from "./upload-content.vue2.js";
6
- import b from "./upload-list.vue2.js";
7
- import { useHandlers as O } from "./use-handlers.js";
8
- import { useFormDisabled as W } from "../form/hooks/use-form-common-props.js";
9
- const A = w({
33
+ import "../full-screen/index.js";
34
+ import "../header-layout/index.js";
35
+ import "../horizontal-menu/index.js";
36
+ import "../icon-text/index.js";
37
+ import "../iframe-layout/index.js";
38
+ import "../image/index.js";
39
+ import "../image-viewer/index.js";
40
+ import "../input/index.js";
41
+ import "../input-number/index.js";
42
+ import "../link/index.js";
43
+ import "../list-cell/index.js";
44
+ import "../logo/index.js";
45
+ import "../menu/index.js";
46
+ import "../multiple-tabs/index.js";
47
+ import "../notification/index.js";
48
+ import "../overlay/index.js";
49
+ import "../page-wrapper/index.js";
50
+ import "../pagination/index.js";
51
+ import "../popconfirm/index.js";
52
+ import "../popover/index.js";
53
+ import "../popper/index.js";
54
+ import "../qrcode/index.js";
55
+ import "../radio/index.js";
56
+ import "../result/index.js";
57
+ import "../router-view-content/index.js";
58
+ import "../row/index.js";
59
+ import "../scrollbar/index.js";
60
+ import "../search/index.js";
61
+ import "../select/index.js";
62
+ import "../side-menu/index.js";
63
+ import "../skeleton/index.js";
64
+ import "../slider/index.js";
65
+ import "../space/index.js";
66
+ import "../steps/index.js";
67
+ import "../switch/index.js";
68
+ import "../table/index.js";
69
+ import "../tabs/index.js";
70
+ import "../tag/index.js";
71
+ import "../time-picker/index.js";
72
+ import "../tooltip/index.js";
73
+ import "../tree/index.js";
74
+ import "../verify-code/index.js";
75
+ import "../virtual-list/components/fixed-size-list.js";
76
+ import "../virtual-list/components/dynamic-size-list.js";
77
+ import "../virtual-list/components/fixed-size-grid.js";
78
+ import "../virtual-list/components/dynamic-size-grid.js";
79
+ import "../virtual-list/props.js";
80
+ import "../autocomplete/index.js";
81
+ import "../breadcrumb/index.js";
82
+ import "../carousel/index.js";
83
+ import "../collapse/index.js";
84
+ import "../countdown/index.js";
85
+ import "../input-tag/index.js";
86
+ import "../modal/index.js";
87
+ import "../progress/index.js";
88
+ import "../segmented/index.js";
89
+ import "../statistic/index.js";
90
+ import "../super-form/index.js";
91
+ import "../timeline/index.js";
92
+ import "../transfer/index.js";
93
+ import "./index.js";
94
+ import "../watermark/index.js";
95
+ import "../md-code-demo/index.js";
96
+ import "../md-code-tabs/index.js";
97
+ import "../md-comment/index.js";
98
+ import "../md-container/index.js";
99
+ import "../md-tabs/index.js";
100
+ import "../md-vue-playground/index.js";
101
+ import "../infinite-scroll/index.js";
102
+ import "@vueuse/core";
103
+ import "../config-provider/hooks/use-global-config.js";
104
+ import "lodash-es";
105
+ import "../../hooks/use-model-toggle/index.js";
106
+ import "@popperjs/core";
107
+ import "../../hooks/use-z-index/index.js";
108
+ import { VftMessage as I } from "../message/index.js";
109
+ import "../progress-i/index.js";
110
+ import { ajaxUpload as K } from "./ajax.js";
111
+ import { uploadContextKey as W } from "./constants.js";
112
+ import $ from "./upload-content.vue2.js";
113
+ import C from "./upload-list.vue2.js";
114
+ import { useHandlers as A } from "./use-handlers.js";
115
+ import { useFormDisabled as G } from "../form/hooks/use-form-common-props.js";
116
+ const J = E({
10
117
  name: "vft-upload"
11
- }), x = /* @__PURE__ */ w({
12
- ...A,
118
+ }), tt = /* @__PURE__ */ E({
119
+ ...J,
13
120
  props: {
14
121
  action: { default: "#" },
15
122
  headers: {},
@@ -25,9 +132,12 @@ const A = w({
25
132
  fileList: { default: [] },
26
133
  autoUpload: { type: Boolean, default: !1 },
27
134
  listType: { default: "text" },
28
- httpRequest: { type: Function, default: H },
135
+ httpRequest: { type: Function, default: K },
29
136
  disabled: { type: Boolean },
30
137
  limit: {},
138
+ replaceOnLimit: { type: Boolean, default: !1 },
139
+ maxSize: { default: void 0 },
140
+ sizeExceedMessage: { default: "文件大小超出限制" },
31
141
  beforeUpload: {},
32
142
  beforeRemove: {},
33
143
  onRemove: {},
@@ -37,60 +147,78 @@ const A = w({
37
147
  onProgress: {},
38
148
  onError: {},
39
149
  onExceed: { type: Function, default: () => {
40
- } }
150
+ } },
151
+ onSizeExceed: {}
41
152
  },
42
- setup($, { expose: B }) {
43
- const i = $, a = U(), u = W(), p = T(), {
44
- abort: C,
45
- submit: F,
46
- clearFiles: L,
47
- uploadFiles: s,
48
- handleStart: v,
153
+ setup(F, { expose: L }) {
154
+ const i = F, p = T(), c = G(), s = V(), {
155
+ abort: y,
156
+ submit: g,
157
+ clearFiles: h,
158
+ uploadFiles: m,
159
+ handleStart: w,
49
160
  handleError: P,
50
- handleRemove: d,
51
- handleSuccess: S,
52
- handleProgress: E
53
- } = O(i, p), n = h(() => i.listType === "picture-card"), y = h(() => ({
161
+ handleRemove: n,
162
+ handleSuccess: z,
163
+ handleProgress: M
164
+ } = A(i, s), d = b(() => i.listType === "picture-card"), U = {
165
+ abort: y,
166
+ submit: g,
167
+ clearFiles: h,
168
+ uploadFiles: m,
169
+ uploadRef: s
170
+ }, k = b(() => ({
54
171
  ...i,
55
- fileList: s.value,
56
- onStart: v,
57
- onProgress: E,
58
- onSuccess: S,
172
+ fileList: m.value,
173
+ onStart: w,
174
+ onProgress: M,
175
+ onSuccess: z,
59
176
  onError: P,
60
- onRemove: d
177
+ onRemove: n,
178
+ onChange: (e, l) => {
179
+ i.onChange?.(e, l, U);
180
+ },
181
+ onSizeExceed: (e, l) => {
182
+ if (i.onSizeExceed)
183
+ i.onSizeExceed?.(e, l);
184
+ else {
185
+ const R = `文件大小不能超过 ${(l / 1048576).toFixed(2)}MB`;
186
+ console.warn("默认文件大小超出提示:", R), I.warning(R);
187
+ }
188
+ }
61
189
  }));
62
190
  return j(() => {
63
- s.value.forEach(({ url: e }) => {
191
+ m.value.forEach(({ url: e }) => {
64
192
  e?.startsWith("blob:") && URL.revokeObjectURL(e);
65
193
  });
66
- }), N(K, {
67
- accept: V(i, "accept")
68
- }), B({
69
- abort: C,
70
- submit: F,
71
- clearFiles: L,
72
- handleStart: v,
73
- handleRemove: d,
74
- fileList: s
75
- }), (e, G) => (f(), q("div", {
76
- class: z(["vft-upload-wrapper", { disabled: t(u) }])
194
+ }), N(W, {
195
+ accept: O(i, "accept")
196
+ }), L({
197
+ abort: y,
198
+ submit: g,
199
+ clearFiles: h,
200
+ handleStart: w,
201
+ handleRemove: n,
202
+ fileList: m
203
+ }), (e, l) => (u(), q("div", {
204
+ class: D(["vft-upload-wrapper", { disabled: o(c) }])
77
205
  }, [
78
- n.value && e.showFileList ? (f(), c(b, {
206
+ d.value && e.showFileList ? (u(), v(C, {
79
207
  key: 0,
80
- disabled: t(u),
208
+ disabled: o(c),
81
209
  "list-type": e.listType,
82
- files: t(s),
210
+ files: o(m),
83
211
  "handle-preview": e.onPreview,
84
- onRemove: t(d)
85
- }, g({
86
- append: r(() => [
87
- D(R, k({
212
+ onRemove: o(n)
213
+ }, B({
214
+ append: a(() => [
215
+ H($, S({
88
216
  ref_key: "uploadRef",
89
- ref: p
90
- }, y.value), {
91
- default: r(() => [
92
- t(a).trigger ? l(e.$slots, "trigger", { key: 0 }) : o("", !0),
93
- !t(a).trigger && t(a).default ? l(e.$slots, "default", { key: 1 }) : o("", !0)
217
+ ref: s
218
+ }, k.value), {
219
+ default: a(() => [
220
+ o(p).trigger ? r(e.$slots, "trigger", { key: 0 }) : t("", !0),
221
+ !o(p).trigger && o(p).default ? r(e.$slots, "default", { key: 1 }) : t("", !0)
94
222
  ]),
95
223
  _: 3
96
224
  }, 16)
@@ -99,44 +227,44 @@ const A = w({
99
227
  }, [
100
228
  e.$slots.file ? {
101
229
  name: "default",
102
- fn: r(({ file: m }) => [
103
- l(e.$slots, "file", { file: m })
230
+ fn: a(({ file: f }) => [
231
+ r(e.$slots, "file", { file: f })
104
232
  ]),
105
233
  key: "0"
106
234
  } : void 0
107
- ]), 1032, ["disabled", "list-type", "files", "handle-preview", "onRemove"])) : o("", !0),
108
- !n.value || n.value && !e.showFileList ? (f(), c(R, k({
235
+ ]), 1032, ["disabled", "list-type", "files", "handle-preview", "onRemove"])) : t("", !0),
236
+ !d.value || d.value && !e.showFileList ? (u(), v($, S({
109
237
  key: 1,
110
238
  ref_key: "uploadRef",
111
- ref: p
112
- }, y.value), {
113
- default: r(() => [
114
- t(a).trigger ? l(e.$slots, "trigger", { key: 0 }) : o("", !0),
115
- !t(a).trigger && t(a).default ? l(e.$slots, "default", { key: 1 }) : o("", !0)
239
+ ref: s
240
+ }, k.value), {
241
+ default: a(() => [
242
+ o(p).trigger ? r(e.$slots, "trigger", { key: 0 }) : t("", !0),
243
+ !o(p).trigger && o(p).default ? r(e.$slots, "default", { key: 1 }) : t("", !0)
116
244
  ]),
117
245
  _: 3
118
- }, 16)) : o("", !0),
119
- e.$slots.trigger ? l(e.$slots, "default", { key: 2 }) : o("", !0),
120
- l(e.$slots, "tip"),
121
- !n.value && e.showFileList ? (f(), c(b, {
246
+ }, 16)) : t("", !0),
247
+ e.$slots.trigger ? r(e.$slots, "default", { key: 2 }) : t("", !0),
248
+ r(e.$slots, "tip"),
249
+ !d.value && e.showFileList ? (u(), v(C, {
122
250
  key: 3,
123
- disabled: t(u),
251
+ disabled: o(c),
124
252
  "list-type": e.listType,
125
- files: t(s),
253
+ files: o(m),
126
254
  "handle-preview": e.onPreview,
127
- onRemove: t(d)
128
- }, g({ _: 2 }, [
255
+ onRemove: o(n)
256
+ }, B({ _: 2 }, [
129
257
  e.$slots.file ? {
130
258
  name: "default",
131
- fn: r(({ file: m }) => [
132
- l(e.$slots, "file", { file: m })
259
+ fn: a(({ file: f }) => [
260
+ r(e.$slots, "file", { file: f })
133
261
  ]),
134
262
  key: "0"
135
263
  } : void 0
136
- ]), 1032, ["disabled", "list-type", "files", "handle-preview", "onRemove"])) : o("", !0)
264
+ ]), 1032, ["disabled", "list-type", "files", "handle-preview", "onRemove"])) : t("", !0)
137
265
  ], 2));
138
266
  }
139
267
  });
140
268
  export {
141
- x as default
269
+ tt as default
142
270
  };
@@ -1,38 +1,44 @@
1
- import { useVModel as L } from "@vueuse/core";
1
+ import { useVModel as O } from "@vueuse/core";
2
2
  import "@vft/utils";
3
- import { throwError as U, debugWarn as E } from "../../utils/error.js";
3
+ import { throwError as U, debugWarn as F } from "../../utils/error.js";
4
4
  import "../config-provider/hooks/use-global-config.js";
5
- import { watch as l } from "vue";
6
- import { isNil as F } from "lodash-es";
7
- import { genFileId as d } from "./constants.js";
8
- const v = "VftUpload", O = (o) => {
9
- o.url?.startsWith("blob:") && URL.revokeObjectURL(o.url);
10
- }, k = (o, c) => {
11
- const a = L(
12
- o,
5
+ import { watch as f } from "vue";
6
+ import { isNil as j } from "lodash-es";
7
+ import { genFileId as m } from "./constants.js";
8
+ const h = "VftUpload", b = (u) => {
9
+ u.url?.startsWith("blob:") && URL.revokeObjectURL(u.url);
10
+ }, z = (u, i) => {
11
+ const r = O(
12
+ u,
13
13
  "fileList",
14
14
  void 0,
15
15
  { passive: !0 }
16
- ), s = (e) => a.value.find((t) => t.uid === e.uid);
17
- function i(e) {
18
- c.value?.abort(e);
16
+ ), c = (e) => r.value.find((t) => t.uid === e.uid), s = {
17
+ abort: l,
18
+ submit: v,
19
+ clearFiles: d,
20
+ uploadFiles: r,
21
+ uploadRef: i
22
+ };
23
+ function l(e) {
24
+ i.value?.abort(e);
19
25
  }
20
- function f(e = ["ready", "uploading", "success", "fail"]) {
21
- a.value = a.value.filter(
26
+ function d(e = ["ready", "uploading", "success", "fail"]) {
27
+ r.value = r.value.filter(
22
28
  (t) => !e.includes(t.status)
23
29
  );
24
30
  }
25
- const m = (e, t) => {
26
- const r = s(t);
27
- r && (console.error(e), r.status = "fail", a.value.splice(a.value.indexOf(r), 1), o.onError?.(e, r, a.value), o.onChange?.(r, a.value));
28
- }, b = (e, t) => {
29
- const r = s(t);
30
- r && (o.onProgress?.(e, r, a.value), r.status = "uploading", r.percentage = Math.round(e.percent));
31
- }, h = (e, t) => {
32
- const r = s(t);
33
- r && (r.status = "success", r.response = e, o.onSuccess?.(e, r, a.value), o.onChange?.(r, a.value));
34
- }, g = (e) => {
35
- F(e.uid) && (e.uid = d());
31
+ const g = (e, t) => {
32
+ const a = c(t);
33
+ a && (console.error(e), a.status = "fail", r.value.splice(r.value.indexOf(a), 1), u.onError?.(e, a, r.value), u.onChange?.(a, r.value, s));
34
+ }, L = (e, t) => {
35
+ const a = c(t);
36
+ a && (u.onProgress?.(e, a, r.value), a.status = "uploading", a.percentage = Math.round(e.percent));
37
+ }, R = (e, t) => {
38
+ const a = c(t);
39
+ a && (a.status = "success", a.response = e, u.onSuccess?.(e, a, r.value), u.onChange?.(a, r.value, s));
40
+ }, y = (e) => {
41
+ j(e.uid) && (e.uid = m());
36
42
  const t = {
37
43
  name: e.name,
38
44
  percentage: 0,
@@ -41,61 +47,63 @@ const v = "VftUpload", O = (o) => {
41
47
  raw: e,
42
48
  uid: e.uid
43
49
  };
44
- if (o.listType === "picture-card" || o.listType === "picture")
50
+ if (u.listType === "picture-card" || u.listType === "picture")
45
51
  try {
46
52
  t.url = URL.createObjectURL(e);
47
- } catch (r) {
48
- E(v, r.message), o.onError?.(r, t, a.value);
53
+ } catch (a) {
54
+ F(h, a.message), u.onError?.(a, t, r.value);
49
55
  }
50
- a.value = [...a.value, t], o.onChange?.(t, a.value);
51
- }, R = async (e) => {
52
- const t = e instanceof File ? s(e) : e;
53
- t || U(v, "file to be removed not found");
54
- const r = (u) => {
55
- i(u);
56
- const n = a.value;
57
- n.splice(n.indexOf(u), 1), o.onRemove?.(u, n), O(u);
56
+ u.limit === 1 && u.replaceOnLimit && r.value.length > 0 && (r.value.forEach((a) => {
57
+ b(a);
58
+ }), r.value = []), r.value = [...r.value, t], u.onChange?.(t, r.value, s);
59
+ }, E = async (e) => {
60
+ const t = e instanceof File ? c(e) : e;
61
+ t || U(h, "file to be removed not found");
62
+ const a = (n) => {
63
+ l(n);
64
+ const o = r.value;
65
+ o.splice(o.indexOf(n), 1), u.onRemove?.(n, o), b(n);
58
66
  };
59
- o.beforeRemove ? await o.beforeRemove(t, a.value) !== !1 && r(t) : r(t);
67
+ u.beforeRemove ? await u.beforeRemove(t, r.value) !== !1 && a(t) : a(t);
60
68
  };
61
- function y() {
62
- a.value.filter(({ status: e }) => e === "ready").forEach(({ raw: e }) => e && c.value?.upload(e));
69
+ function v() {
70
+ r.value.filter(({ status: e }) => e === "ready").forEach(({ raw: e }) => e && i.value?.upload(e));
63
71
  }
64
- return l(
65
- () => o.listType,
72
+ return f(
73
+ () => u.listType,
66
74
  (e) => {
67
- e !== "picture-card" && e !== "picture" || (a.value = a.value.map((t) => {
68
- const { raw: r, url: u } = t;
69
- if (!u && r)
75
+ e !== "picture-card" && e !== "picture" || (r.value = r.value.map((t) => {
76
+ const { raw: a, url: n } = t;
77
+ if (!n && a)
70
78
  try {
71
- t.url = URL.createObjectURL(r);
72
- } catch (n) {
73
- o.onError?.(n, t, a.value);
79
+ t.url = URL.createObjectURL(a);
80
+ } catch (o) {
81
+ u.onError?.(o, t, r.value);
74
82
  }
75
83
  return t;
76
84
  }));
77
85
  }
78
- ), l(
79
- a,
86
+ ), f(
87
+ r,
80
88
  (e) => {
81
89
  if (e)
82
90
  for (const t of e)
83
- t.uid ||= d(), t.status ||= "success";
91
+ t.uid ||= m(), t.status ||= "success";
84
92
  },
85
93
  { immediate: !0, deep: !0 }
86
94
  ), {
87
95
  /** @description two-way binding ref from props `fileList` */
88
- uploadFiles: a,
89
- abort: i,
90
- clearFiles: f,
91
- handleError: m,
92
- handleProgress: b,
93
- handleStart: g,
94
- handleSuccess: h,
95
- handleRemove: R,
96
- submit: y
96
+ uploadFiles: r,
97
+ abort: l,
98
+ clearFiles: d,
99
+ handleError: g,
100
+ handleProgress: L,
101
+ handleStart: y,
102
+ handleSuccess: R,
103
+ handleRemove: E,
104
+ submit: v
97
105
  };
98
106
  };
99
107
  export {
100
- k as useHandlers
108
+ z as useHandlers
101
109
  };
@@ -1,6 +1,6 @@
1
1
  declare const _default: {
2
2
  "name": "vft",
3
- "version": "0.0.334",
3
+ "version": "0.0.337",
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.334";
1
+ const o = "0.0.337";
2
2
  export {
3
3
  o as version
4
4
  };
@@ -1,4 +1,4 @@
1
- import { isArray as E, hasOwn as m, camelize as N } from "@vft/utils";
1
+ import { hasOwn as m, camelize as N, isArray as E } from "@vft/utils";
2
2
  import { isVNode as o, Fragment as S, Comment as A, Text as s, createCommentVNode as L, createBlock as _, openBlock as C } from "vue";
3
3
  import { debugWarn as O } from "../error.js";
4
4
  const R = "utils/vue/vnode";
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("../form/index.cjs");const k=require("../icon/index.cjs"),Y=require("@vueuse/core"),s=require("@vft/utils"),T=require("../../utils/error.cjs");require("../config-provider/hooks/use-global-config.cjs");const Be=require("lodash-es"),Z=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const q=require("@vft/constants"),_=require("@vft/use"),ee=require("./utils.cjs"),te=require("../form/hooks/use-form-common-props.cjs"),oe=require("../form/hooks/use-form-item.cjs"),Ve=["role"],Ie=["id","type","disabled","formatter","parser","readonly","autocomplete","tabindex","aria-label","placeholder","form"],Se=["id","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form"],ze=e.defineComponent({__name:"input",props:{id:{},size:{default:""},disabled:{type:Boolean},modelValue:{},type:{default:"text"},resize:{},autosize:{type:[Object,Boolean],default:!1},autocomplete:{default:"off"},formatter:{},parser:{},placeholder:{},form:{},readonly:{type:Boolean},clearable:{type:Boolean},showPassword:{type:Boolean},showWordLimit:{type:Boolean},suffixIcon:{},prefixIcon:{},clearIcon:{},containerRole:{},label:{},tabindex:{default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:[Boolean,null,String,Object,Array]}},emits:{[q.UPDATE_MODEL_EVENT]:t=>s.isString(t),input:t=>s.isString(t),change:t=>s.isString(t),suffixClick:t=>s.isString(t),prefixClick:t=>s.isString(t),focus:t=>t instanceof FocusEvent,blur:t=>t instanceof FocusEvent,clear:()=>!0,enter:()=>!0,mouseleave:t=>t instanceof MouseEvent,mouseenter:t=>t instanceof MouseEvent,keydown:t=>t instanceof Event,compositionstart:t=>t instanceof CompositionEvent,compositionupdate:t=>t instanceof CompositionEvent,compositionend:t=>t instanceof CompositionEvent},setup(t,{expose:ne,emit:ae}){const l=ae,v=e.useAttrs(),i=e.useSlots(),M=e.computed(()=>{const o={};return t.containerRole==="combobox"&&(o["aria-haspopup"]=v["aria-haspopup"],o["aria-owns"]=v["aria-owns"],o["aria-expanded"]=v["aria-expanded"]),o}),le=e.computed(()=>[t.type==="textarea"?A.b():n.b(),n.m(ie.value),n.is("disabled",m.value),n.is("exceed",fe.value),n.is("focus",c.value),{[n.b("group")]:i.prepend||i.append,[n.bm("group","append")]:i.append,[n.bm("group","prepend")]:i.prepend,[n.m("prefix")]:i.prefix||t.prefixIcon,[n.m("suffix")]:i.suffix||t.suffixIcon||t.clearable||t.showPassword,[n.bm("suffix","password-clear")]:E.value&&z.value},v.class]),se=e.getCurrentInstance(),re=e.computed(()=>[n.e("wrapper"),n.is("focus",c.value)]),r=_.useAttrs({excludeKeys:e.computed(()=>Object.keys(M.value))}),{form:ue,formItem:C}=oe.useFormItem(),{inputId:F}=oe.useFormItemInputId(se.props,{formItemContext:C}),ie=te.useFormSize(),m=te.useFormDisabled(),n=Z.useNamespace("input"),A=Z.useNamespace("textarea"),w=e.shallowRef(),f=e.shallowRef(),c=e.ref(!1),V=e.ref(!1),y=e.ref(!1),x=e.ref(!1),D=e.ref(),I=e.shallowRef(t.inputStyle),h=e.computed(()=>w.value||f.value),S=e.computed(()=>s.singleAttrToObj(t.prefixIcon,"icon",{size:16})),O=e.computed(()=>s.singleAttrToObj(t.suffixIcon,"icon",{size:16})),ce=e.computed(()=>s.singleAttrToObj(t.clearIcon,"icon",{icon:"icon-circle-close",size:16})),R=e.computed(()=>ue?.statusIcon??!1),g=e.computed(()=>C?.validateState||""),K=e.computed(()=>g.value&&{validating:"icon-loading",success:"icon-circle-check",error:"icon-circle-close"}[g.value]),de=e.computed(()=>x.value?{icon:"icon-view",size:16}:{icon:"icon-hide",size:16}),me=e.computed(()=>[v.style,t.inputStyle]),$=e.computed(()=>[t.inputStyle,I.value,{resize:t.resize}]),u=e.computed(()=>Be.isNil(t.modelValue)?"":String(t.modelValue)),E=e.computed(()=>t.clearable&&!m.value&&!t.readonly&&!!u.value&&(c.value||V.value)),z=e.computed(()=>t.showPassword&&!m.value&&!t.readonly&&!!u.value&&(!!u.value||c.value)),p=e.computed(()=>t.showWordLimit&&!!r.value.maxlength&&(t.type==="text"||t.type==="textarea")&&!m.value&&!t.readonly&&!t.showPassword),N=e.computed(()=>Array.from(u.value).length),fe=e.computed(()=>!!p.value&&N.value>Number(r.value.maxlength)),pe=e.computed(()=>!!i.suffix||!!t.suffixIcon||E.value||t.showPassword||p.value||!!g.value&&R.value),[ve,ye]=_.useCursor(w);Y.useResizeObserver(f,o=>{if(!p.value||t.resize!=="both")return;const a=o[0],{width:d}=a.contentRect;D.value={right:`calc(100% - ${d+15+6}px)`}});const B=()=>{if(!(!Y.isClient||t.type!=="textarea"))if(t.autosize){const o=s.isObject(t.autosize)?t.autosize.minRows:void 0,a=s.isObject(t.autosize)?t.autosize.maxRows:void 0;I.value={...ee.calcTextareaHeight(f.value,o,a)}}else I.value={minHeight:ee.calcTextareaHeight(f.value).minHeight}},b=()=>{const o=h.value;!o||o.value===u.value||(o.value=u.value)},P=async o=>{ve();let{value:a}=o.target;if(r.value.maxlength&&a.length>=r.value.maxlength&&(a=a.slice(0,Number(r.value.maxlength))),t.formatter&&(a=t.parser?t.parser(a):a,a=t.formatter(a)),!y.value){if(a===u.value){b();return}l(q.UPDATE_MODEL_EVENT,a),l("input",a),await e.nextTick(),b(),ye()}},j=o=>{l("change",o.target.value)},he=()=>{l("suffixClick",t.modelValue)},ge=()=>{l("prefixClick",t.modelValue)},L=o=>{l("compositionstart",o),y.value=!0},be=o=>/([(\uAC00-\uD7AF)|\u3130-\u318F])+/.test(o),W=o=>{l("compositionupdate",o);const a=o.target?.value,d=a[a.length-1]||"";y.value=!be(d)},H=o=>{l("compositionend",o),y.value&&(y.value=!1,P(o))},ke=()=>{x.value=!x.value,U()},U=async()=>{await e.nextTick(),h.value?.focus()},Ce=()=>h.value?.blur(),G=o=>{c.value=!0,l("focus",o)},J=o=>{c.value=!1,l("blur",o),t.validateEvent&&C?.validate?.("blur").catch(a=>T.debugWarn(a))},we=o=>{V.value=!1,l("mouseleave",o)},xe=o=>{V.value=!0,l("mouseenter",o)},Q=o=>{let a=o.key;if(o.target.type==="number"&&["e","+","-0","E"].includes(a))return o.returnValue=!1,!1;l("keydown",o)},Ee=()=>{h.value?.select()},X=()=>{l(q.UPDATE_MODEL_EVENT,""),l("change",""),l("clear"),l("input","")};return e.watch(()=>t.modelValue,()=>{e.nextTick(()=>B()),t.validateEvent&&C?.validate?.("change").catch(o=>T.debugWarn(o))}),e.watch(u,()=>b()),e.watch(()=>t.type,async()=>{await e.nextTick(),b(),B()}),e.onMounted(()=>{!t.formatter&&t.parser&&T.debugWarn("VftInput","If you set the parser, you also need to set the formatter."),b(),e.nextTick(B)}),ne({input:w,textarea:f,ref:h,textareaStyle:$,autosize:t.autosize,focus:U,blur:Ce,select:Ee,clear:X,resizeTextarea:B}),(o,a)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",e.mergeProps(M.value,{class:le.value,style:me.value,role:o.containerRole,onMouseenter:xe,onMouseleave:we,onMousewheel:a[1]||(a[1]=d=>o.type==="number"&&c.value?d.preventDefault():null)}),[o.type!=="textarea"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[o.$slots.prepend?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(n).be("group","prepend"))},[e.renderSlot(o.$slots,"prepend")],2)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(re.value)},[o.$slots.prefix||S.value?.icon?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(n).e("prefix"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(n).e("prefix-inner")),onClick:ge},[e.renderSlot(o.$slots,"prefix"),S.value?.icon?(e.openBlock(),e.createBlock(e.unref(k.VftIcon),e.mergeProps({key:0,pointer:""},S.value,{class:e.unref(n).e("icon")}),null,16,["class"])):e.createCommentVNode("",!0)],2)],2)):e.createCommentVNode("",!0),e.createElementVNode("input",e.mergeProps({id:e.unref(F),ref_key:"input",ref:w,class:e.unref(n).e("inner")},e.unref(r),{type:o.showPassword?x.value?"text":"password":o.type,disabled:e.unref(m),formatter:o.formatter,parser:o.parser,readonly:o.readonly,autocomplete:o.autocomplete,tabindex:o.tabindex,"aria-label":o.label,placeholder:o.placeholder,style:o.inputStyle,form:o.form,onCompositionstart:L,onCompositionupdate:W,onCompositionend:H,onInput:P,onFocus:G,onBlur:J,onChange:j,onKeydown:Q,onKeyup:a[0]||(a[0]=e.withKeys(d=>l("enter"),["enter"]))}),null,16,Ie),pe.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(n).e("suffix"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(n).e("suffix-inner")),onClick:he},[!E.value||!z.value||!p.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.renderSlot(o.$slots,"suffix"),O.value?.icon?(e.openBlock(),e.createBlock(e.unref(k.VftIcon),e.mergeProps({key:0},O.value,{class:e.unref(n).e("icon")}),null,16,["class"])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),E.value?(e.openBlock(),e.createBlock(e.unref(k.VftIcon),e.mergeProps({key:1,pointer:"",class:[e.unref(n).e("icon"),e.unref(n).e("clear")]},ce.value,{onMousedown:e.withModifiers(e.unref(s.noop),["prevent"]),onClick:e.withModifiers(X,["stop"])}),null,16,["class","onMousedown"])):e.createCommentVNode("",!0),z.value?(e.openBlock(),e.createBlock(e.unref(k.VftIcon),e.mergeProps({key:2},de.value,{class:[e.unref(n).e("icon"),e.unref(n).e("password")],onClick:ke}),null,16,["class"])):e.createCommentVNode("",!0),p.value?(e.openBlock(),e.createElementBlock("span",{key:3,class:e.normalizeClass(e.unref(n).e("count"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(n).e("count-inner"))},e.toDisplayString(N.value)+" / "+e.toDisplayString(e.unref(r).maxlength),3)],2)):e.createCommentVNode("",!0),g.value&&K.value&&R.value?(e.openBlock(),e.createBlock(e.unref(k.VftIcon),{key:4,icon:K.value,class:e.normalizeClass([e.unref(n).e("icon"),e.unref(n).e("validateIcon"),e.unref(n).is("loading",g.value==="validating")])},null,8,["icon","class"])):e.createCommentVNode("",!0)],2)],2)):e.createCommentVNode("",!0)],2),o.$slots.append?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(n).be("group","append"))},[e.renderSlot(o.$slots,"append")],2)):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("textarea",e.mergeProps({id:e.unref(F),ref_key:"textarea",ref:f,class:e.unref(A).e("inner")},e.unref(r),{tabindex:o.tabindex,disabled:e.unref(m),readonly:o.readonly,autocomplete:o.autocomplete,style:$.value,"aria-label":o.label,placeholder:o.placeholder,form:o.form,onCompositionstart:L,onCompositionupdate:W,onCompositionend:H,onInput:P,onFocus:G,onBlur:J,onChange:j,onKeydown:Q}),null,16,Se),p.value?(e.openBlock(),e.createElementBlock("span",{key:0,style:e.normalizeStyle(D.value),class:e.normalizeClass(e.unref(n).e("count"))},e.toDisplayString(N.value)+" / "+e.toDisplayString(e.unref(r).maxlength),7)):e.createCommentVNode("",!0)],64))],16,Ve)),[[e.vShow,o.type!=="hidden"]])}});exports.default=ze;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("../form/index.cjs");const k=require("../icon/index.cjs"),Y=require("@vueuse/core"),s=require("@vft/utils"),T=require("../../utils/error.cjs");require("../config-provider/hooks/use-global-config.cjs");const Be=require("lodash-es"),Z=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const q=require("@vft/constants"),_=require("@vft/use"),ee=require("./utils.cjs"),te=require("../form/hooks/use-form-item.cjs"),oe=require("../form/hooks/use-form-common-props.cjs"),Ve=["role"],Ie=["id","type","disabled","formatter","parser","readonly","autocomplete","tabindex","aria-label","placeholder","form"],Se=["id","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form"],ze=e.defineComponent({__name:"input",props:{id:{},size:{default:""},disabled:{type:Boolean},modelValue:{},type:{default:"text"},resize:{},autosize:{type:[Object,Boolean],default:!1},autocomplete:{default:"off"},formatter:{},parser:{},placeholder:{},form:{},readonly:{type:Boolean},clearable:{type:Boolean},showPassword:{type:Boolean},showWordLimit:{type:Boolean},suffixIcon:{},prefixIcon:{},clearIcon:{},containerRole:{},label:{},tabindex:{default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:[Boolean,null,String,Object,Array]}},emits:{[q.UPDATE_MODEL_EVENT]:t=>s.isString(t),input:t=>s.isString(t),change:t=>s.isString(t),suffixClick:t=>s.isString(t),prefixClick:t=>s.isString(t),focus:t=>t instanceof FocusEvent,blur:t=>t instanceof FocusEvent,clear:()=>!0,enter:()=>!0,mouseleave:t=>t instanceof MouseEvent,mouseenter:t=>t instanceof MouseEvent,keydown:t=>t instanceof Event,compositionstart:t=>t instanceof CompositionEvent,compositionupdate:t=>t instanceof CompositionEvent,compositionend:t=>t instanceof CompositionEvent},setup(t,{expose:ne,emit:ae}){const l=ae,v=e.useAttrs(),i=e.useSlots(),M=e.computed(()=>{const o={};return t.containerRole==="combobox"&&(o["aria-haspopup"]=v["aria-haspopup"],o["aria-owns"]=v["aria-owns"],o["aria-expanded"]=v["aria-expanded"]),o}),le=e.computed(()=>[t.type==="textarea"?A.b():n.b(),n.m(ie.value),n.is("disabled",m.value),n.is("exceed",fe.value),n.is("focus",c.value),{[n.b("group")]:i.prepend||i.append,[n.bm("group","append")]:i.append,[n.bm("group","prepend")]:i.prepend,[n.m("prefix")]:i.prefix||t.prefixIcon,[n.m("suffix")]:i.suffix||t.suffixIcon||t.clearable||t.showPassword,[n.bm("suffix","password-clear")]:E.value&&z.value},v.class]),se=e.getCurrentInstance(),re=e.computed(()=>[n.e("wrapper"),n.is("focus",c.value)]),r=_.useAttrs({excludeKeys:e.computed(()=>Object.keys(M.value))}),{form:ue,formItem:C}=te.useFormItem(),{inputId:F}=te.useFormItemInputId(se.props,{formItemContext:C}),ie=oe.useFormSize(),m=oe.useFormDisabled(),n=Z.useNamespace("input"),A=Z.useNamespace("textarea"),w=e.shallowRef(),f=e.shallowRef(),c=e.ref(!1),V=e.ref(!1),y=e.ref(!1),x=e.ref(!1),D=e.ref(),I=e.shallowRef(t.inputStyle),h=e.computed(()=>w.value||f.value),S=e.computed(()=>s.singleAttrToObj(t.prefixIcon,"icon",{size:16})),O=e.computed(()=>s.singleAttrToObj(t.suffixIcon,"icon",{size:16})),ce=e.computed(()=>s.singleAttrToObj(t.clearIcon,"icon",{icon:"icon-circle-close",size:16})),R=e.computed(()=>ue?.statusIcon??!1),g=e.computed(()=>C?.validateState||""),K=e.computed(()=>g.value&&{validating:"icon-loading",success:"icon-circle-check",error:"icon-circle-close"}[g.value]),de=e.computed(()=>x.value?{icon:"icon-view",size:16}:{icon:"icon-hide",size:16}),me=e.computed(()=>[v.style,t.inputStyle]),$=e.computed(()=>[t.inputStyle,I.value,{resize:t.resize}]),u=e.computed(()=>Be.isNil(t.modelValue)?"":String(t.modelValue)),E=e.computed(()=>t.clearable&&!m.value&&!t.readonly&&!!u.value&&(c.value||V.value)),z=e.computed(()=>t.showPassword&&!m.value&&!t.readonly&&!!u.value&&(!!u.value||c.value)),p=e.computed(()=>t.showWordLimit&&!!r.value.maxlength&&(t.type==="text"||t.type==="textarea")&&!m.value&&!t.readonly&&!t.showPassword),N=e.computed(()=>Array.from(u.value).length),fe=e.computed(()=>!!p.value&&N.value>Number(r.value.maxlength)),pe=e.computed(()=>!!i.suffix||!!t.suffixIcon||E.value||t.showPassword||p.value||!!g.value&&R.value),[ve,ye]=_.useCursor(w);Y.useResizeObserver(f,o=>{if(!p.value||t.resize!=="both")return;const a=o[0],{width:d}=a.contentRect;D.value={right:`calc(100% - ${d+15+6}px)`}});const B=()=>{if(!(!Y.isClient||t.type!=="textarea"))if(t.autosize){const o=s.isObject(t.autosize)?t.autosize.minRows:void 0,a=s.isObject(t.autosize)?t.autosize.maxRows:void 0;I.value={...ee.calcTextareaHeight(f.value,o,a)}}else I.value={minHeight:ee.calcTextareaHeight(f.value).minHeight}},b=()=>{const o=h.value;!o||o.value===u.value||(o.value=u.value)},P=async o=>{ve();let{value:a}=o.target;if(r.value.maxlength&&a.length>=r.value.maxlength&&(a=a.slice(0,Number(r.value.maxlength))),t.formatter&&(a=t.parser?t.parser(a):a,a=t.formatter(a)),!y.value){if(a===u.value){b();return}l(q.UPDATE_MODEL_EVENT,a),l("input",a),await e.nextTick(),b(),ye()}},j=o=>{l("change",o.target.value)},he=()=>{l("suffixClick",t.modelValue)},ge=()=>{l("prefixClick",t.modelValue)},L=o=>{l("compositionstart",o),y.value=!0},be=o=>/([(\uAC00-\uD7AF)|\u3130-\u318F])+/.test(o),W=o=>{l("compositionupdate",o);const a=o.target?.value,d=a[a.length-1]||"";y.value=!be(d)},H=o=>{l("compositionend",o),y.value&&(y.value=!1,P(o))},ke=()=>{x.value=!x.value,U()},U=async()=>{await e.nextTick(),h.value?.focus()},Ce=()=>h.value?.blur(),G=o=>{c.value=!0,l("focus",o)},J=o=>{c.value=!1,l("blur",o),t.validateEvent&&C?.validate?.("blur").catch(a=>T.debugWarn(a))},we=o=>{V.value=!1,l("mouseleave",o)},xe=o=>{V.value=!0,l("mouseenter",o)},Q=o=>{let a=o.key;if(o.target.type==="number"&&["e","+","-0","E"].includes(a))return o.returnValue=!1,!1;l("keydown",o)},Ee=()=>{h.value?.select()},X=()=>{l(q.UPDATE_MODEL_EVENT,""),l("change",""),l("clear"),l("input","")};return e.watch(()=>t.modelValue,()=>{e.nextTick(()=>B()),t.validateEvent&&C?.validate?.("change").catch(o=>T.debugWarn(o))}),e.watch(u,()=>b()),e.watch(()=>t.type,async()=>{await e.nextTick(),b(),B()}),e.onMounted(()=>{!t.formatter&&t.parser&&T.debugWarn("VftInput","If you set the parser, you also need to set the formatter."),b(),e.nextTick(B)}),ne({input:w,textarea:f,ref:h,textareaStyle:$,autosize:t.autosize,focus:U,blur:Ce,select:Ee,clear:X,resizeTextarea:B}),(o,a)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",e.mergeProps(M.value,{class:le.value,style:me.value,role:o.containerRole,onMouseenter:xe,onMouseleave:we,onMousewheel:a[1]||(a[1]=d=>o.type==="number"&&c.value?d.preventDefault():null)}),[o.type!=="textarea"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[o.$slots.prepend?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(n).be("group","prepend"))},[e.renderSlot(o.$slots,"prepend")],2)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(re.value)},[o.$slots.prefix||S.value?.icon?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(n).e("prefix"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(n).e("prefix-inner")),onClick:ge},[e.renderSlot(o.$slots,"prefix"),S.value?.icon?(e.openBlock(),e.createBlock(e.unref(k.VftIcon),e.mergeProps({key:0,pointer:""},S.value,{class:e.unref(n).e("icon")}),null,16,["class"])):e.createCommentVNode("",!0)],2)],2)):e.createCommentVNode("",!0),e.createElementVNode("input",e.mergeProps({id:e.unref(F),ref_key:"input",ref:w,class:e.unref(n).e("inner")},e.unref(r),{type:o.showPassword?x.value?"text":"password":o.type,disabled:e.unref(m),formatter:o.formatter,parser:o.parser,readonly:o.readonly,autocomplete:o.autocomplete,tabindex:o.tabindex,"aria-label":o.label,placeholder:o.placeholder,style:o.inputStyle,form:o.form,onCompositionstart:L,onCompositionupdate:W,onCompositionend:H,onInput:P,onFocus:G,onBlur:J,onChange:j,onKeydown:Q,onKeyup:a[0]||(a[0]=e.withKeys(d=>l("enter"),["enter"]))}),null,16,Ie),pe.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(n).e("suffix"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(n).e("suffix-inner")),onClick:he},[!E.value||!z.value||!p.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.renderSlot(o.$slots,"suffix"),O.value?.icon?(e.openBlock(),e.createBlock(e.unref(k.VftIcon),e.mergeProps({key:0},O.value,{class:e.unref(n).e("icon")}),null,16,["class"])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),E.value?(e.openBlock(),e.createBlock(e.unref(k.VftIcon),e.mergeProps({key:1,pointer:"",class:[e.unref(n).e("icon"),e.unref(n).e("clear")]},ce.value,{onMousedown:e.withModifiers(e.unref(s.noop),["prevent"]),onClick:e.withModifiers(X,["stop"])}),null,16,["class","onMousedown"])):e.createCommentVNode("",!0),z.value?(e.openBlock(),e.createBlock(e.unref(k.VftIcon),e.mergeProps({key:2},de.value,{class:[e.unref(n).e("icon"),e.unref(n).e("password")],onClick:ke}),null,16,["class"])):e.createCommentVNode("",!0),p.value?(e.openBlock(),e.createElementBlock("span",{key:3,class:e.normalizeClass(e.unref(n).e("count"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(n).e("count-inner"))},e.toDisplayString(N.value)+" / "+e.toDisplayString(e.unref(r).maxlength),3)],2)):e.createCommentVNode("",!0),g.value&&K.value&&R.value?(e.openBlock(),e.createBlock(e.unref(k.VftIcon),{key:4,icon:K.value,class:e.normalizeClass([e.unref(n).e("icon"),e.unref(n).e("validateIcon"),e.unref(n).is("loading",g.value==="validating")])},null,8,["icon","class"])):e.createCommentVNode("",!0)],2)],2)):e.createCommentVNode("",!0)],2),o.$slots.append?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(n).be("group","append"))},[e.renderSlot(o.$slots,"append")],2)):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("textarea",e.mergeProps({id:e.unref(F),ref_key:"textarea",ref:f,class:e.unref(A).e("inner")},e.unref(r),{tabindex:o.tabindex,disabled:e.unref(m),readonly:o.readonly,autocomplete:o.autocomplete,style:$.value,"aria-label":o.label,placeholder:o.placeholder,form:o.form,onCompositionstart:L,onCompositionupdate:W,onCompositionend:H,onInput:P,onFocus:G,onBlur:J,onChange:j,onKeydown:Q}),null,16,Se),p.value?(e.openBlock(),e.createElementBlock("span",{key:0,style:e.normalizeStyle(D.value),class:e.normalizeClass(e.unref(n).e("count"))},e.toDisplayString(N.value)+" / "+e.toDisplayString(e.unref(r).maxlength),7)):e.createCommentVNode("",!0)],64))],16,Ve)),[[e.vShow,o.type!=="hidden"]])}});exports.default=ze;
@@ -1 +1 @@
1
- "use strict";require("vft/theme-style/base.css");require("vft/theme-style/vft-input.css");require("vft/theme-style/vft-popover.css");require("vft/theme-style/vft-popper.css");require("vft/theme-style/vft-search.css");
1
+ "use strict";require("vft/theme-style/base.css");require("vft/theme-style/vft-input.css");require("vft/theme-style/vft-popover.css");require("vft/theme-style/vft-popper.css");require("vft/theme-style/vft-icon.css");require("vft/theme-style/vft-search.css");
@@ -1,3 +1,4 @@
1
1
  import 'vft/es/components/input/style/css';
2
2
  import 'vft/es/components/popover/style/css';
3
+ import 'vft/es/components/icon/style/css';
3
4
  import 'vft/theme-style/vft-search.css';
@@ -1 +1 @@
1
- "use strict";require("vft/theme-style/src/base.scss");require("vft/theme-style/src/input.scss");require("vft/theme-style/src/popper.scss");require("vft/theme-style/src/popover.scss");require("vft/theme-style/src/search.scss");
1
+ "use strict";require("vft/theme-style/src/base.scss");require("vft/theme-style/src/input.scss");require("vft/theme-style/src/popper.scss");require("vft/theme-style/src/popover.scss");require("vft/theme-style/src/icon.scss");require("vft/theme-style/src/search.scss");
@@ -1,3 +1,4 @@
1
1
  import 'vft/es/components/input/style';
2
2
  import 'vft/es/components/popover/style';
3
+ import 'vft/es/components/icon/style';
3
4
  import 'vft/theme-style/src/search.scss';