vft 0.0.395 → 0.0.396

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.
@@ -11,7 +11,7 @@ import "../../hooks/use-model-toggle/index.js";
11
11
  import { useOrderedChildren as ge } from "../../hooks/use-ordered-children/index.js";
12
12
  import "@popperjs/core";
13
13
  import "../../hooks/use-z-index/index.js";
14
- import { CAROUSEL_ITEM_NAME as H, carouselContextKey as Se } from "./constants.js";
14
+ import { carouselContextKey as Se, CAROUSEL_ITEM_NAME as H } from "./constants.js";
15
15
  const L = 300, ze = (t, O, M) => {
16
16
  const {
17
17
  children: o,
@@ -1,7 +1,7 @@
1
1
  import { keysOf as f } from "@vft/utils";
2
2
  import "@vueuse/core";
3
3
  import { debugWarn as v } from "../../../utils/error.js";
4
- import { ref as g, getCurrentInstance as l, computed as i, unref as p, provide as C, inject as x } from "vue";
4
+ import { getCurrentInstance as l, computed as i, unref as p, provide as g, ref as C, inject as x } from "vue";
5
5
  import "lodash-es";
6
6
  import "../../form/index.js";
7
7
  import { namespaceContextKey as I, useNamespace as b, defaultNamespace as y } from "../../../hooks/use-namespace/index.js";
@@ -9,7 +9,7 @@ import "../../../hooks/use-model-toggle/index.js";
9
9
  import "@popperjs/core";
10
10
  import { zIndexContextKey as G, useZIndex as z, defaultInitialZIndex as K } from "../../../hooks/use-z-index/index.js";
11
11
  import { configProviderContextKey as m } from "../constants.js";
12
- const a = g();
12
+ const a = C();
13
13
  function d(o, e = void 0) {
14
14
  const n = l() ? x(m, a) : a;
15
15
  return o ? i(() => n?.value?.[o] ?? e) : n;
@@ -27,7 +27,7 @@ function B(o) {
27
27
  };
28
28
  }
29
29
  const S = (o, e, n = !1) => {
30
- const t = !!l(), r = t ? d() : void 0, u = e?.provide ?? (t ? C : void 0);
30
+ const t = !!l(), r = t ? d() : void 0, u = e?.provide ?? (t ? g : void 0);
31
31
  if (!u) {
32
32
  v(
33
33
  "provideGlobalConfig",
@@ -13,8 +13,8 @@ import "../../hooks/use-z-index/index.js";
13
13
  import { UPDATE_MODEL_EVENT as Q } from "@vft/constants";
14
14
  import { useAttrs as Ze, useCursor as _e } from "@vft/use";
15
15
  import { calcTextareaHeight as ye } from "./utils.js";
16
- import { useFormSize as et, useFormDisabled as tt } from "../form/hooks/use-form-common-props.js";
17
- import { useFormItem as at, useFormItemInputId as ot } from "../form/hooks/use-form-item.js";
16
+ import { useFormItem as et, useFormItemInputId as tt } from "../form/hooks/use-form-item.js";
17
+ import { useFormSize as at, useFormDisabled as ot } from "../form/hooks/use-form-common-props.js";
18
18
  const nt = ["role"], lt = ["id", "type", "disabled", "formatter", "parser", "readonly", "autocomplete", "tabindex", "aria-label", "placeholder", "form"], st = ["id", "tabindex", "disabled", "readonly", "autocomplete", "aria-label", "placeholder", "form"], It = /* @__PURE__ */ Oe({
19
19
  __name: "input",
20
20
  props: {
@@ -85,9 +85,9 @@ const nt = ["role"], lt = ["id", "type", "disabled", "formatter", "parser", "rea
85
85
  o.is("focus", v.value)
86
86
  ]), d = Ze({
87
87
  excludeKeys: l(() => Object.keys(X.value))
88
- }), { form: Ce, formItem: F } = at(), { inputId: Y } = ot(xe.props, {
88
+ }), { form: Ce, formItem: F } = et(), { inputId: Y } = tt(xe.props, {
89
89
  formItemContext: F
90
- }), ke = et(), h = tt(), o = pe("input"), Z = pe("textarea"), M = H(), b = H(), v = S(!1), N = S(!1), C = S(!1), K = S(!1), _ = S(), O = H(e.inputStyle), k = l(() => M.value || b.value), T = l(() => G(e.prefixIcon, "icon", { size: 16 })), ee = l(() => G(e.suffixIcon, "icon", { size: 16 })), Ie = l(() => G(e.clearIcon, "icon", {
90
+ }), ke = at(), h = ot(), o = pe("input"), Z = pe("textarea"), M = H(), b = H(), v = S(!1), N = S(!1), C = S(!1), K = S(!1), _ = S(), O = H(e.inputStyle), k = l(() => M.value || b.value), T = l(() => G(e.prefixIcon, "icon", { size: 16 })), ee = l(() => G(e.suffixIcon, "icon", { size: 16 })), Ie = l(() => G(e.clearIcon, "icon", {
91
91
  icon: "icon-circle-close",
92
92
  size: 16
93
93
  })), te = l(() => Ce?.statusIcon ?? !1), I = l(() => F?.validateState || ""), ae = l(
@@ -1,6 +1,6 @@
1
1
  import { shallowRef as B, ref as L, computed as c, watch as G } from "vue";
2
2
  import { EVENT_CODE as g } from "../../../constants/aria.js";
3
- import { CHANGE_EVENT as i, INPUT_EVENT as H, UPDATE_MODEL_EVENT as d } from "../../../constants/event.js";
3
+ import { CHANGE_EVENT as i, UPDATE_MODEL_EVENT as d, INPUT_EVENT as H } from "../../../constants/event.js";
4
4
  import "@vueuse/core";
5
5
  import { isUndefined as K } from "@vft/utils";
6
6
  import { debugWarn as C } from "../../../utils/error.js";
@@ -77,6 +77,11 @@ export declare const VftSideMenu: import("vft/es/utils").SFCWithInstall<import("
77
77
  };
78
78
  }>, {
79
79
  sideRef: import("vue").Ref<any, any>;
80
+ jumpActiveDom: ({ activeDom, offset, delay }?: {
81
+ activeDom?: null | undefined;
82
+ offset?: number | undefined;
83
+ delay?: number | undefined;
84
+ }) => void;
80
85
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
81
86
  "update:collapse": (val: boolean) => void;
82
87
  "update:width": (val: string | number) => void;
@@ -61,6 +61,11 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
61
61
  useRouterJump: boolean;
62
62
  }>>, {
63
63
  sideRef: import("vue").Ref<any, any>;
64
+ jumpActiveDom: ({ activeDom, offset, delay }?: {
65
+ activeDom?: null | undefined;
66
+ offset?: number | undefined;
67
+ delay?: number | undefined;
68
+ }) => void;
64
69
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
65
70
  "update:collapse": (val: boolean) => void;
66
71
  "update:width": (val: string | number) => void;
@@ -1,25 +1,25 @@
1
- import { defineComponent as V, toRefs as oe, useSlots as le, getCurrentInstance as ne, ref as g, computed as m, h as b, createVNode as p, onMounted as ae, nextTick as ue, watch as se, isVNode as ie } from "vue";
2
- import { listenerRouteChange as de, useRouterHelper as re } from "@vft/router";
3
- import { useSortable as ce } from "@vft/use/sortable";
4
- import { isUrl as pe, isNullOrUndefined as A, isNumber as fe } from "@vft/utils";
1
+ import { defineComponent as j, toRefs as le, useSlots as ne, getCurrentInstance as ae, ref as g, computed as m, h as b, createVNode as p, onMounted as ue, nextTick as se, watch as ie, isVNode as de } from "vue";
2
+ import { listenerRouteChange as re, useRouterHelper as ce } from "@vft/router";
3
+ import { useSortable as pe } from "@vft/use/sortable";
4
+ import { isUrl as fe, isNullOrUndefined as W, isNumber as me } from "@vft/utils";
5
5
  import "@vueuse/core";
6
- import { addUnit as W } from "../../utils/helper.js";
6
+ import { addUnit as I } from "../../utils/helper.js";
7
7
  import "lodash-es";
8
8
  import "../form/index.js";
9
- import { VftIcon as me } from "../icon/index.js";
10
- import { VftMenu as he, VftSubMenu as ve, VftMenuItem as I } from "../menu/index.js";
11
- import { useNamespace as ge } from "../../hooks/use-namespace/index.js";
9
+ import { VftIcon as ve } from "../icon/index.js";
10
+ import { VftMenu as he, VftSubMenu as ge, VftMenuItem as V } from "../menu/index.js";
11
+ import { useNamespace as be } from "../../hooks/use-namespace/index.js";
12
12
  import "../../hooks/use-model-toggle/index.js";
13
13
  import "@popperjs/core";
14
14
  import "../../hooks/use-z-index/index.js";
15
- import { useDragLine as be } from "./use-drag-line.js";
16
- function ye(h) {
17
- return typeof h == "function" || Object.prototype.toString.call(h) === "[object Object]" && !ie(h);
15
+ import { useDragLine as ye } from "./use-drag-line.js";
16
+ function Ce(v) {
17
+ return typeof v == "function" || Object.prototype.toString.call(v) === "[object Object]" && !de(v);
18
18
  }
19
- const Ce = V({
19
+ const Me = j({
20
20
  name: "vft-side-menu"
21
- }), Ve = /* @__PURE__ */ V({
22
- ...Ce,
21
+ }), je = /* @__PURE__ */ j({
22
+ ...Me,
23
23
  props: {
24
24
  isFixedLeft: {
25
25
  type: Boolean,
@@ -79,17 +79,17 @@ const Ce = V({
79
79
  defaultOpeneds: {}
80
80
  },
81
81
  emits: ["update:collapse", "update:width", "dragEnd", "dragWidthEnd", "select", "subMenuClick", "menuItemMouseenter", "menuItemMouseleave"],
82
- setup(h, {
82
+ setup(v, {
83
83
  expose: J,
84
- emit: j
84
+ emit: q
85
85
  }) {
86
- const t = h, {
86
+ const t = v, {
87
87
  defaultActive: E,
88
88
  collapse: f,
89
- uniqueOpened: q,
90
- defaultOpeneds: L,
91
- openMenuCollapse: P
92
- } = oe(t), r = j, u = ge("side-menu"), s = le(), M = ne(), O = g(), n = m(() => ({
89
+ uniqueOpened: L,
90
+ defaultOpeneds: P,
91
+ openMenuCollapse: H
92
+ } = le(t), r = q, u = be("side-menu"), s = ne(), M = ae(), S = g(), a = m(() => ({
93
93
  path: "path",
94
94
  children: "children",
95
95
  title: "title",
@@ -98,103 +98,113 @@ const Ce = V({
98
98
  disabled: "disabled",
99
99
  ...t.attrMapping
100
100
  }));
101
- de(({
101
+ re(({
102
102
  route: e
103
103
  }) => {
104
- !e || e.meta?.hideSide && !t.useRouterJump || (O.value = e.path);
104
+ !e || e.meta?.hideSide && !t.useRouterJump || (S.value = e.path);
105
105
  });
106
- const H = (e) => {
107
- const a = e.e;
108
- if (t.autoScrollActiveDom && a) {
109
- const o = fe(t.autoScrollActiveDom) ? t.autoScrollActiveDom : 0, l = a.target;
110
- v.value?.menu && l && setTimeout(() => {
111
- v.value.menu.scrollTop = v.value.menu.scrollTop + (l.getBoundingClientRect().top - v.value.menu.getBoundingClientRect().top) + o;
112
- }, 300);
106
+ const U = (e) => {
107
+ const n = e.e;
108
+ if (t.autoScrollActiveDom && n) {
109
+ const o = me(t.autoScrollActiveDom) ? t.autoScrollActiveDom : 0, l = n.target;
110
+ O({
111
+ activeDom: l,
112
+ offset: o
113
+ });
113
114
  }
114
115
  r("subMenuClick", e);
115
- }, U = (e) => {
116
- r("menuItemMouseenter", e);
116
+ }, O = ({
117
+ activeDom: e = null,
118
+ offset: n = 0,
119
+ delay: o = 300
120
+ } = {}) => {
121
+ const l = e || document.querySelector(".vft-menu-item.is-active");
122
+ h.value?.menu && l && setTimeout(() => {
123
+ h.value.menu.scrollTop = h.value.menu.scrollTop + (l.getBoundingClientRect().top - h.value.menu.getBoundingClientRect().top) + n;
124
+ }, o);
117
125
  }, F = (e) => {
126
+ r("menuItemMouseenter", e);
127
+ }, Z = (e) => {
118
128
  r("menuItemMouseleave", e);
119
- }, S = (e, a) => {
120
- const o = e[n.value.path], l = e[n.value.title], i = e?.[n.value.children], c = e?.[n.value.index], B = e?.[n.value.icon], T = !!e?.[n.value.disabled], D = t.disabledJudgeTurnOver ? !T : T, R = c || o || a + l;
129
+ }, _ = (e, n) => {
130
+ const o = e[a.value.path], l = e[a.value.title], i = e?.[a.value.children], c = e?.[a.value.index], D = e?.[a.value.icon], T = !!e?.[a.value.disabled], R = t.disabledJudgeTurnOver ? !T : T, k = c || o || n + l;
121
131
  return i?.length ? b(
122
132
  // @ts-ignore
123
- ve,
133
+ ge,
124
134
  {
125
135
  ...e,
126
136
  popperAppendToBody: !0,
127
- key: R,
128
- index: R,
137
+ key: k,
138
+ index: k,
129
139
  title: l,
130
- icon: B,
131
- disabled: t.openDisabled && D,
140
+ icon: D,
141
+ disabled: t.openDisabled && R,
132
142
  popperClass: u.e("popper")
133
143
  },
134
144
  {
135
- default: () => i?.map((d, Q) => {
136
- const C = d[n.value.path], k = d[n.value.index], X = d[n.value.icon], ee = d[n.value.title], N = !!d[n.value.disabled], te = t.disabledJudgeTurnOver ? !N : N;
137
- return d?.[n.value.children]?.length ? S(d, Q) : (
145
+ default: () => i?.map((d, X) => {
146
+ const C = d[a.value.path], A = d[a.value.index], ee = d[a.value.icon], te = d[a.value.title], N = !!d[a.value.disabled], oe = t.disabledJudgeTurnOver ? !N : N;
147
+ return d?.[a.value.children]?.length ? _(d, X) : (
138
148
  // @ts-ignore
139
- b(I, {
149
+ b(V, {
140
150
  ...d,
141
- key: k || C,
142
- index: k || C,
151
+ key: A || C,
152
+ index: A || C,
143
153
  route: C,
144
- icon: X,
145
- title: ee,
146
- disabled: t.openDisabled && te
154
+ icon: ee,
155
+ title: te,
156
+ disabled: t.openDisabled && oe
147
157
  }, s.menuItem ? () => s.menuItem?.({
148
158
  item: d
149
159
  }) : "")
150
160
  );
151
161
  })
152
162
  }
153
- ) : b(I, {
163
+ ) : b(V, {
154
164
  ...e,
155
165
  key: c || o,
156
166
  index: c || o,
157
167
  title: l,
158
168
  route: o,
159
- icon: B,
160
- disabled: t.openDisabled && D,
161
- onMouseenter: () => U(e),
162
- onMouseleave: () => F(e)
169
+ icon: D,
170
+ disabled: t.openDisabled && R,
171
+ onMouseenter: () => F(e),
172
+ onMouseleave: () => Z(e)
163
173
  }, s.menuItem ? () => s.menuItem?.({
164
174
  item: e,
165
- index: a
175
+ index: n
166
176
  }) : "");
167
- }, v = g(), Z = m(() => ({
177
+ }, h = g(), $ = m(() => ({
168
178
  ...t.collapseWidth === 0 && f.value ? {
169
179
  width: 0
170
180
  } : {},
171
181
  height: `calc(100% - ${t.menuTopBottomHeight}px)`
172
- })), $ = m(() => {
182
+ })), z = m(() => {
173
183
  let e;
174
184
  return b(p(he, {
175
- ref: v.value,
176
- onSelect: z,
177
- onOpen: H,
178
- defaultActive: E?.value || O.value,
179
- defaultOpeneds: L?.value,
185
+ ref: h,
186
+ onSelect: Y,
187
+ onOpen: U,
188
+ defaultActive: E?.value || S.value,
189
+ defaultOpeneds: P?.value,
180
190
  class: [u.e("con"), t.dragOption?.dragClassName ? u.e(t.dragOption?.dragClassName) : ""],
181
- style: Z.value,
182
- collapse: P.value ? f.value : !1,
183
- uniqueOpened: q.value,
191
+ style: $.value,
192
+ collapse: H.value ? f.value : !1,
193
+ uniqueOpened: L.value,
184
194
  collapseTransition: !1
185
- }, ye(e = t.menus.map((a, o) => S(a, o))) ? e : {
195
+ }, Ce(e = t.menus.map((n, o) => _(n, o))) ? e : {
186
196
  default: () => [e]
187
197
  }));
188
198
  }), x = M.appContext.config.globalProperties.$router;
189
- async function z(e) {
199
+ async function Y(e) {
190
200
  if (t.useRouterJump) {
191
201
  const {
192
- go: a
193
- } = re(x), o = e.route;
202
+ go: n
203
+ } = ce(x), o = e.route;
194
204
  let l = e.route;
195
- e.indexPath.some((c) => pe(c)) && (l = e.indexPath.slice(-2).join("/"));
205
+ e.indexPath.some((c) => fe(c)) && (l = e.indexPath.slice(-2).join("/"));
196
206
  const i = x.getRoutes().filter((c) => c.path === l)?.[0]?.meta?.linkTarget;
197
- a(i ? {
207
+ n(i ? {
198
208
  url: o,
199
209
  winOpenOpt: {
200
210
  target: i
@@ -203,65 +213,66 @@ const Ce = V({
203
213
  }
204
214
  r("select", e);
205
215
  }
206
- ae(() => {
207
- ue(() => {
216
+ ue(() => {
217
+ se(() => {
208
218
  if (t.dragOption?.dragClassName) {
209
219
  const e = document.querySelectorAll("." + u.e(t.dragOption?.dragClassName))?.[0], {
210
- initSortable: a
211
- } = ce(e, {
220
+ initSortable: n
221
+ } = pe(e, {
212
222
  draggable: ".vft-menu-item",
213
223
  onEnd: (o) => {
214
224
  const {
215
225
  oldIndex: l,
216
226
  newIndex: i
217
227
  } = o;
218
- A(l) || A(i) || l === i || r("dragEnd", l, i);
228
+ W(l) || W(i) || l === i || r("dragEnd", l, i);
219
229
  },
220
230
  ...t.dragOption
221
231
  });
222
- a();
232
+ n();
223
233
  }
224
234
  });
225
235
  });
226
- const y = g(), _ = g(), w = g(), Y = m(() => ({
236
+ const y = g(), w = g(), B = g(), G = m(() => ({
227
237
  ...t.collapseWidth === 0 && f.value ? {
228
238
  borderRight: "none"
229
239
  } : {},
230
- width: W(t.width),
240
+ width: I(t.width),
231
241
  height: t.height
232
242
  }));
233
- se(() => f.value, (e) => {
234
- e ? r("update:width", t.collapseWidth) : r("update:width", w.value || t.width), w.value = t.width;
235
- }), t.dragWidthCfg && be(y, _, M);
236
- const G = m(() => ({
237
- left: W(t.width)
238
- })), K = m(() => [u.b(), t.isFixedLeft ? u.m("fixed") : ""]);
243
+ ie(() => f.value, (e) => {
244
+ e ? r("update:width", t.collapseWidth) : r("update:width", B.value || t.width), B.value = t.width;
245
+ }), t.dragWidthCfg && ye(y, w, M);
246
+ const K = m(() => ({
247
+ left: I(t.width)
248
+ })), Q = m(() => [u.b(), t.isFixedLeft ? u.m("fixed") : ""]);
239
249
  return J({
240
- sideRef: y
250
+ sideRef: y,
251
+ jumpActiveDom: O
241
252
  }), () => p("div", {
242
253
  ref: y,
243
- class: K.value,
244
- style: Y.value
254
+ class: Q.value,
255
+ style: G.value
245
256
  }, [s.top ? p("div", {
246
257
  class: u.e("top")
247
- }, [s.top()]) : null, $.value, s.bottom ? p("div", {
258
+ }, [s.top()]) : null, z.value, s.bottom ? p("div", {
248
259
  class: u.e("bottom")
249
260
  }, [s.bottom()]) : t.showCollapse ? p("div", {
250
261
  onClick: () => r("update:collapse", !f.value),
251
262
  class: [u.e("bottom"), u.e("collapse")]
252
- }, [p(me, {
263
+ }, [p(ve, {
253
264
  style: {
254
265
  transform: f.value ? "rotateY(180deg)" : ""
255
266
  },
256
267
  size: 20,
257
268
  icon: "icon-sidebar-collapse"
258
269
  }, null)]) : null, s.default?.(), t.dragWidthCfg ? p("div", {
259
- ref: _,
260
- style: G.value,
270
+ ref: w,
271
+ style: K.value,
261
272
  class: u.e("drag-bar")
262
273
  }, null) : null]);
263
274
  }
264
275
  });
265
276
  export {
266
- Ve as default
277
+ je as default
267
278
  };
@@ -1,4 +1,4 @@
1
- import { defineComponent as Q, computed as v, ref as re, unref as c, useSlots as oe, createVNode as s, mergeProps as L, withDirectives as ie, vShow as ne, isVNode as le, createTextVNode as G, resolveComponent as V } from "vue";
1
+ import { defineComponent as Q, computed as v, ref as re, unref as c, useSlots as oe, createVNode as s, mergeProps as L, withDirectives as ie, vShow as ne, createTextVNode as G, isVNode as le, resolveComponent as V } from "vue";
2
2
  import "../alert/index.js";
3
3
  import "../avatar/index.js";
4
4
  import "../avatar-stack/index.js";
@@ -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.395",
3
+ "version": "0.0.396",
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.395";
1
+ const o = "0.0.396";
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;
@@ -77,6 +77,11 @@ export declare const VftSideMenu: import("vft/es/utils").SFCWithInstall<import("
77
77
  };
78
78
  }>, {
79
79
  sideRef: import("vue").Ref<any, any>;
80
+ jumpActiveDom: ({ activeDom, offset, delay }?: {
81
+ activeDom?: null | undefined;
82
+ offset?: number | undefined;
83
+ delay?: number | undefined;
84
+ }) => void;
80
85
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
81
86
  "update:collapse": (val: boolean) => void;
82
87
  "update:width": (val: string | number) => void;
@@ -61,6 +61,11 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
61
61
  useRouterJump: boolean;
62
62
  }>>, {
63
63
  sideRef: import("vue").Ref<any, any>;
64
+ jumpActiveDom: ({ activeDom, offset, delay }?: {
65
+ activeDom?: null | undefined;
66
+ offset?: number | undefined;
67
+ delay?: number | undefined;
68
+ }) => void;
64
69
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
65
70
  "update:collapse": (val: boolean) => void;
66
71
  "update:width": (val: string | number) => void;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("vue"),D=require("@vft/router"),X=require("@vft/use/sortable"),m=require("@vft/utils");require("@vueuse/core");const R=require("../../utils/helper.cjs");require("lodash-es");require("../form/index.cjs");const ee=require("../icon/index.cjs"),g=require("../menu/index.cjs"),te=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const ne=require("./use-drag-line.cjs");function oe(h){return typeof h=="function"||Object.prototype.toString.call(h)==="[object Object]"&&!n.isVNode(h)}const le=n.defineComponent({name:"vft-side-menu"}),ae=n.defineComponent({...le,props:{isFixedLeft:{type:Boolean,default:!0},menus:{},width:{default:200},height:{default:"100%"},collapseWidth:{default:50},attrMapping:{},menuTopBottomHeight:{default:0},showCollapse:{type:Boolean,default:!1},dragOption:{},dragWidthCfg:{type:[Boolean,Object],default:!1},useRouterJump:{type:Boolean,default:!1},openDisabled:{type:Boolean},autoScrollActiveDom:{type:[Boolean,Number],default:!0},openMenuCollapse:{type:Boolean,default:!0},collapse:{type:Boolean,default:!1},uniqueOpened:{type:Boolean,default:!0},disabledJudgeTurnOver:{type:Boolean,default:!1},defaultActive:{},defaultOpeneds:{}},emits:["update:collapse","update:width","dragEnd","dragWidthEnd","select","subMenuClick","menuItemMouseenter","menuItemMouseleave"],setup(h,{expose:k,emit:A}){const t=h,{defaultActive:I,collapse:f,uniqueOpened:W,defaultOpeneds:j,openMenuCollapse:J}=n.toRefs(t),c=A,s=te.useNamespace("side-menu"),i=n.useSlots(),M=n.getCurrentInstance(),C=n.ref(),a=n.computed(()=>({path:"path",children:"children",title:"title",index:"path",icon:"icon",disabled:"disabled",...t.attrMapping}));D.listenerRouteChange(({route:e})=>{!e||e.meta?.hideSide&&!t.useRouterJump||(C.value=e.path)});const E=e=>{const u=e.e;if(t.autoScrollActiveDom&&u){const o=m.isNumber(t.autoScrollActiveDom)?t.autoScrollActiveDom:0,l=u.target;v.value?.menu&&l&&setTimeout(()=>{v.value.menu.scrollTop=v.value.menu.scrollTop+(l.getBoundingClientRect().top-v.value.menu.getBoundingClientRect().top)+o},300)}c("subMenuClick",e)},L=e=>{c("menuItemMouseenter",e)},P=e=>{c("menuItemMouseleave",e)},O=(e,u)=>{const o=e[a.value.path],l=e[a.value.title],r=e?.[a.value.children],p=e?.[a.value.index],q=e?.[a.value.icon],N=!!e?.[a.value.disabled],w=t.disabledJudgeTurnOver?!N:N,B=p||o||u+l;return r?.length?n.h(g.VftSubMenu,{...e,popperAppendToBody:!0,key:B,index:B,title:l,icon:q,disabled:t.openDisabled&&w,popperClass:s.e("popper")},{default:()=>r?.map((d,Y)=>{const y=d[a.value.path],T=d[a.value.index],G=d[a.value.icon],K=d[a.value.title],V=!!d[a.value.disabled],Q=t.disabledJudgeTurnOver?!V:V;return d?.[a.value.children]?.length?O(d,Y):n.h(g.VftMenuItem,{...d,key:T||y,index:T||y,route:y,icon:G,title:K,disabled:t.openDisabled&&Q},i.menuItem?()=>i.menuItem?.({item:d}):"")})}):n.h(g.VftMenuItem,{...e,key:p||o,index:p||o,title:l,route:o,icon:q,disabled:t.openDisabled&&w,onMouseenter:()=>L(e),onMouseleave:()=>P(e)},i.menuItem?()=>i.menuItem?.({item:e,index:u}):"")},v=n.ref(),U=n.computed(()=>({...t.collapseWidth===0&&f.value?{width:0}:{},height:`calc(100% - ${t.menuTopBottomHeight}px)`})),$=n.computed(()=>{let e;return n.h(n.createVNode(g.VftMenu,{ref:v.value,onSelect:H,onOpen:E,defaultActive:I?.value||C.value,defaultOpeneds:j?.value,class:[s.e("con"),t.dragOption?.dragClassName?s.e(t.dragOption?.dragClassName):""],style:U.value,collapse:J.value?f.value:!1,uniqueOpened:W.value,collapseTransition:!1},oe(e=t.menus.map((u,o)=>O(u,o)))?e:{default:()=>[e]}))}),S=M.appContext.config.globalProperties.$router;async function H(e){if(t.useRouterJump){const{go:u}=D.useRouterHelper(S),o=e.route;let l=e.route;e.indexPath.some(p=>m.isUrl(p))&&(l=e.indexPath.slice(-2).join("/"));const r=S.getRoutes().filter(p=>p.path===l)?.[0]?.meta?.linkTarget;u(r?{url:o,winOpenOpt:{target:r}}:o)}c("select",e)}n.onMounted(()=>{n.nextTick(()=>{if(t.dragOption?.dragClassName){const e=document.querySelectorAll("."+s.e(t.dragOption?.dragClassName))?.[0],{initSortable:u}=X.useSortable(e,{draggable:".vft-menu-item",onEnd:o=>{const{oldIndex:l,newIndex:r}=o;m.isNullOrUndefined(l)||m.isNullOrUndefined(r)||l===r||c("dragEnd",l,r)},...t.dragOption});u()}})});const b=n.ref(),x=n.ref(),_=n.ref(),F=n.computed(()=>({...t.collapseWidth===0&&f.value?{borderRight:"none"}:{},width:R.addUnit(t.width),height:t.height}));n.watch(()=>f.value,e=>{e?c("update:width",t.collapseWidth):c("update:width",_.value||t.width),_.value=t.width}),t.dragWidthCfg&&ne.useDragLine(b,x,M);const Z=n.computed(()=>({left:R.addUnit(t.width)})),z=n.computed(()=>[s.b(),t.isFixedLeft?s.m("fixed"):""]);return k({sideRef:b}),()=>n.createVNode("div",{ref:b,class:z.value,style:F.value},[i.top?n.createVNode("div",{class:s.e("top")},[i.top()]):null,$.value,i.bottom?n.createVNode("div",{class:s.e("bottom")},[i.bottom()]):t.showCollapse?n.createVNode("div",{onClick:()=>c("update:collapse",!f.value),class:[s.e("bottom"),s.e("collapse")]},[n.createVNode(ee.VftIcon,{style:{transform:f.value?"rotateY(180deg)":""},size:20,icon:"icon-sidebar-collapse"},null)]):null,i.default?.(),t.dragWidthCfg?n.createVNode("div",{ref:x,style:Z.value,class:s.e("drag-bar")},null):null])}});exports.default=ae;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("vue"),R=require("@vft/router"),ee=require("@vft/use/sortable"),h=require("@vft/utils");require("@vueuse/core");const k=require("../../utils/helper.cjs");require("lodash-es");require("../form/index.cjs");const te=require("../icon/index.cjs"),g=require("../menu/index.cjs"),ne=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const oe=require("./use-drag-line.cjs");function le(m){return typeof m=="function"||Object.prototype.toString.call(m)==="[object Object]"&&!n.isVNode(m)}const ae=n.defineComponent({name:"vft-side-menu"}),ue=n.defineComponent({...ae,props:{isFixedLeft:{type:Boolean,default:!0},menus:{},width:{default:200},height:{default:"100%"},collapseWidth:{default:50},attrMapping:{},menuTopBottomHeight:{default:0},showCollapse:{type:Boolean,default:!1},dragOption:{},dragWidthCfg:{type:[Boolean,Object],default:!1},useRouterJump:{type:Boolean,default:!1},openDisabled:{type:Boolean},autoScrollActiveDom:{type:[Boolean,Number],default:!0},openMenuCollapse:{type:Boolean,default:!0},collapse:{type:Boolean,default:!1},uniqueOpened:{type:Boolean,default:!0},disabledJudgeTurnOver:{type:Boolean,default:!1},defaultActive:{},defaultOpeneds:{}},emits:["update:collapse","update:width","dragEnd","dragWidthEnd","select","subMenuClick","menuItemMouseenter","menuItemMouseleave"],setup(m,{expose:A,emit:I}){const t=m,{defaultActive:W,collapse:f,uniqueOpened:j,defaultOpeneds:J,openMenuCollapse:E}=n.toRefs(t),c=I,s=ne.useNamespace("side-menu"),i=n.useSlots(),M=n.getCurrentInstance(),C=n.ref(),u=n.computed(()=>({path:"path",children:"children",title:"title",index:"path",icon:"icon",disabled:"disabled",...t.attrMapping}));R.listenerRouteChange(({route:e})=>{!e||e.meta?.hideSide&&!t.useRouterJump||(C.value=e.path)});const L=e=>{const a=e.e;if(t.autoScrollActiveDom&&a){const o=h.isNumber(t.autoScrollActiveDom)?t.autoScrollActiveDom:0,l=a.target;S({activeDom:l,offset:o})}c("subMenuClick",e)},S=({activeDom:e=null,offset:a=0,delay:o=300}={})=>{const l=e||document.querySelector(".vft-menu-item.is-active");v.value?.menu&&l&&setTimeout(()=>{v.value.menu.scrollTop=v.value.menu.scrollTop+(l.getBoundingClientRect().top-v.value.menu.getBoundingClientRect().top)+a},o)},P=e=>{c("menuItemMouseenter",e)},U=e=>{c("menuItemMouseleave",e)},O=(e,a)=>{const o=e[u.value.path],l=e[u.value.title],r=e?.[u.value.children],p=e?.[u.value.index],N=e?.[u.value.icon],w=!!e?.[u.value.disabled],B=t.disabledJudgeTurnOver?!w:w,D=p||o||a+l;return r?.length?n.h(g.VftSubMenu,{...e,popperAppendToBody:!0,key:D,index:D,title:l,icon:N,disabled:t.openDisabled&&B,popperClass:s.e("popper")},{default:()=>r?.map((d,G)=>{const y=d[u.value.path],T=d[u.value.index],K=d[u.value.icon],Q=d[u.value.title],V=!!d[u.value.disabled],X=t.disabledJudgeTurnOver?!V:V;return d?.[u.value.children]?.length?O(d,G):n.h(g.VftMenuItem,{...d,key:T||y,index:T||y,route:y,icon:K,title:Q,disabled:t.openDisabled&&X},i.menuItem?()=>i.menuItem?.({item:d}):"")})}):n.h(g.VftMenuItem,{...e,key:p||o,index:p||o,title:l,route:o,icon:N,disabled:t.openDisabled&&B,onMouseenter:()=>P(e),onMouseleave:()=>U(e)},i.menuItem?()=>i.menuItem?.({item:e,index:a}):"")},v=n.ref(),$=n.computed(()=>({...t.collapseWidth===0&&f.value?{width:0}:{},height:`calc(100% - ${t.menuTopBottomHeight}px)`})),H=n.computed(()=>{let e;return n.h(n.createVNode(g.VftMenu,{ref:v,onSelect:F,onOpen:L,defaultActive:W?.value||C.value,defaultOpeneds:J?.value,class:[s.e("con"),t.dragOption?.dragClassName?s.e(t.dragOption?.dragClassName):""],style:$.value,collapse:E.value?f.value:!1,uniqueOpened:j.value,collapseTransition:!1},le(e=t.menus.map((a,o)=>O(a,o)))?e:{default:()=>[e]}))}),_=M.appContext.config.globalProperties.$router;async function F(e){if(t.useRouterJump){const{go:a}=R.useRouterHelper(_),o=e.route;let l=e.route;e.indexPath.some(p=>h.isUrl(p))&&(l=e.indexPath.slice(-2).join("/"));const r=_.getRoutes().filter(p=>p.path===l)?.[0]?.meta?.linkTarget;a(r?{url:o,winOpenOpt:{target:r}}:o)}c("select",e)}n.onMounted(()=>{n.nextTick(()=>{if(t.dragOption?.dragClassName){const e=document.querySelectorAll("."+s.e(t.dragOption?.dragClassName))?.[0],{initSortable:a}=ee.useSortable(e,{draggable:".vft-menu-item",onEnd:o=>{const{oldIndex:l,newIndex:r}=o;h.isNullOrUndefined(l)||h.isNullOrUndefined(r)||l===r||c("dragEnd",l,r)},...t.dragOption});a()}})});const b=n.ref(),x=n.ref(),q=n.ref(),Z=n.computed(()=>({...t.collapseWidth===0&&f.value?{borderRight:"none"}:{},width:k.addUnit(t.width),height:t.height}));n.watch(()=>f.value,e=>{e?c("update:width",t.collapseWidth):c("update:width",q.value||t.width),q.value=t.width}),t.dragWidthCfg&&oe.useDragLine(b,x,M);const z=n.computed(()=>({left:k.addUnit(t.width)})),Y=n.computed(()=>[s.b(),t.isFixedLeft?s.m("fixed"):""]);return A({sideRef:b,jumpActiveDom:S}),()=>n.createVNode("div",{ref:b,class:Y.value,style:Z.value},[i.top?n.createVNode("div",{class:s.e("top")},[i.top()]):null,H.value,i.bottom?n.createVNode("div",{class:s.e("bottom")},[i.bottom()]):t.showCollapse?n.createVNode("div",{onClick:()=>c("update:collapse",!f.value),class:[s.e("bottom"),s.e("collapse")]},[n.createVNode(te.VftIcon,{style:{transform:f.value?"rotateY(180deg)":""},size:20,icon:"icon-sidebar-collapse"},null)]):null,i.default?.(),t.dragWidthCfg?n.createVNode("div",{ref:x,style:z.value,class:s.e("drag-bar")},null):null])}});exports.default=ue;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.395";exports.version=e;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.396";exports.version=e;
@@ -1,6 +1,6 @@
1
1
  declare const _default: {
2
2
  "name": "vft",
3
- "version": "0.0.395",
3
+ "version": "0.0.396",
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.395",
3
+ "version": "0.0.396",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "es/index.js",
@@ -55,12 +55,12 @@
55
55
  "resize-detector": "0.3.0",
56
56
  "sortablejs": "1.15.0",
57
57
  "photoswipe": "5.4.4",
58
- "@vft/router": "0.0.67",
59
- "@vft/constants": "0.0.72",
60
58
  "@vft/store": "0.0.54",
61
59
  "@vft/utils": "0.0.140",
62
- "@vft/directives": "0.0.36",
63
- "@vft/use": "0.0.82"
60
+ "@vft/use": "0.0.82",
61
+ "@vft/constants": "0.0.72",
62
+ "@vft/router": "0.0.67",
63
+ "@vft/directives": "0.0.36"
64
64
  },
65
65
  "vetur": {
66
66
  "tags": "tags.json",
package/web-types.json CHANGED
@@ -1 +1 @@
1
- {"$schema":"http://json.schemastore.org/web-types","framework":"vue","name":"vft","version":"0.0.395","js-types-syntax":"typescript","description-markup":"markdown","contributions":{"html":{}}}
1
+ {"$schema":"http://json.schemastore.org/web-types","framework":"vue","name":"vft","version":"0.0.396","js-types-syntax":"typescript","description-markup":"markdown","contributions":{"html":{}}}