vft 0.0.430 → 0.0.431

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { defineComponent as Z, getCurrentInstance as le, computed as l, inject as D, ref as C, reactive as ue, watch as ae, provide as se, onMounted as re, onBeforeUnmount as ie, useSlots as ce, h as s, Fragment as pe, withDirectives as me, vShow as de } from "vue";
1
+ import { defineComponent as Z, getCurrentInstance as le, computed as l, inject as D, ref as C, reactive as ue, watch as ae, provide as se, onMounted as re, onBeforeUnmount as ie, useSlots as ce, h as u, Fragment as pe, withDirectives as me, vShow as de } from "vue";
2
2
  import { singleAttrToObj as g, renderTNode as ve, isMobile as fe } from "@vft/utils";
3
3
  import { VftTooltip as Me } from "../tooltip/index.js";
4
4
  import { VftIcon as L } from "../icon/index.js";
@@ -56,7 +56,7 @@ const Ce = Z({
56
56
  const y = G, I = w("sub-menu"), m = le(), {
57
57
  indexPath: f,
58
58
  parentMenu: k
59
- } = he(m, l(() => o.index)), i = w("menu"), u = w("sub-menu"), e = D("rootMenu");
59
+ } = he(m, l(() => o.index)), i = w("menu"), a = w("sub-menu"), e = D("rootMenu");
60
60
  e || U(I.b(), "can not inject root menu");
61
61
  const r = D(`subMenu:${k.value.uid}`);
62
62
  r || U(I.b(), "can not inject sub menu");
@@ -64,8 +64,8 @@ const Ce = Z({
64
64
  let M;
65
65
  const z = C(!1), J = C(), E = C(null), A = l(() => p.value === "horizontal" && b.value ? "bottom-start" : "right-start"), b = l(() => r.level === 0), x = l(() => o.teleported === void 0 ? b.value : o.teleported), K = l(() => e.props.collapse ? `${i.namespace.value}-zoom-in-left` : `${i.namespace.value}-zoom-in-top`), Q = l(() => p.value === "horizontal" && b.value ? ["bottom-start", "bottom-end", "top-start", "top-end", "right-start", "left-start"] : ["right-start", "left-start", "bottom-start", "bottom-end", "top-start", "top-end"]), c = l(() => e.openedMenus.includes(o.index)), d = l(() => {
66
66
  let t = !1;
67
- return Object.values(S.value).forEach((a) => {
68
- a.active && (t = !0);
67
+ return Object.values(S.value).forEach((s) => {
68
+ s.active && (t = !0);
69
69
  }), o.index === e.activeIndex && (t = !0), t;
70
70
  }), B = l(() => e.props.backgroundColor || ""), P = l(() => e.props.activeTextColor || ""), F = l(() => e.props.textColor || ""), p = l(() => e.props.mode), W = l(() => e.props.persistent), h = ue({
71
71
  index: o.index,
@@ -79,7 +79,7 @@ const Ce = Z({
79
79
  }), X = () => E.value?.popperRef?.popperInstanceRef?.destroy(), Y = (t) => {
80
80
  t || X();
81
81
  }, O = (t) => {
82
- const a = {
82
+ const s = {
83
83
  e: t,
84
84
  index: o.index,
85
85
  indexPath: f.value,
@@ -87,18 +87,18 @@ const Ce = Z({
87
87
  };
88
88
  if (e.props.menuTrigger === "hover" && e.props.mode === "horizontal" && !fe() || e.props.collapse && e.props.mode === "vertical" || o.disabled) {
89
89
  e.handleSubMenuClick({
90
- ...a,
90
+ ...s,
91
91
  isFirstLevel: !0
92
92
  });
93
93
  return;
94
94
  }
95
- e.handleSubMenuClick(a);
96
- }, v = (t, a = o.showTimeout) => {
95
+ e.handleSubMenuClick(s);
96
+ }, v = (t, s = o.showTimeout) => {
97
97
  t.type !== "focus" && (e.props.menuTrigger === "click" && e.props.mode === "horizontal" || !e.props.collapse && e.props.mode === "vertical" || o.disabled || (r.mouseInChild.value = !0, M?.(), {
98
98
  stop: M
99
99
  } = H(() => {
100
100
  e.openMenu(o.index, f.value);
101
- }, a), x.value && k.value.vnode.el?.dispatchEvent(new MouseEvent("mouseenter")), y("mouseenter", t)));
101
+ }, s), x.value && k.value.vnode.el?.dispatchEvent(new MouseEvent("mouseenter")), y("mouseenter", t)));
102
102
  }, _ = () => {
103
103
  e.inSubMenuMouseEnterTimer && clearTimeout(e.inSubMenuMouseEnterTimer), e.inSubMenuMouseleaveTimer && clearTimeout(e.inSubMenuMouseleaveTimer), e.inSubMenuMouseEnterTimer = setTimeout(() => {
104
104
  e.inSubMenu = !0;
@@ -107,23 +107,23 @@ const Ce = Z({
107
107
  e.inSubMenuMouseEnterTimer && clearTimeout(e.inSubMenuMouseEnterTimer), e.inSubMenuMouseleaveTimer && clearTimeout(e.inSubMenuMouseleaveTimer), e.inSubMenuMouseleaveTimer = setTimeout(() => {
108
108
  e.inSubMenu = !1;
109
109
  }, o.hideTimeout - 10);
110
- }, T = (t, a = !1) => {
110
+ }, T = (t, s = !1) => {
111
111
  e.props.menuTrigger === "click" && e.props.mode === "horizontal" || !e.props.collapse && e.props.mode === "vertical" || (M?.(), r.mouseInChild.value = !1, {
112
112
  stop: M
113
113
  } = H(() => {
114
114
  !z.value && e.closeMenu(o.index, f.value);
115
- }, o.hideTimeout), x.value && a && m.parent?.type.name === "vft-sub-menu" && r.handleMouseleave?.(t, !0), y("mouseleave", t));
115
+ }, o.hideTimeout), x.value && s && m.parent?.type.name === "vft-sub-menu" && r.handleMouseleave?.(t, !0), y("mouseleave", t));
116
116
  };
117
117
  ae(() => e.props.collapse, (t) => Y(!!t));
118
118
  {
119
119
  const t = (n) => {
120
120
  S.value[n.index] = n;
121
- }, a = (n) => {
121
+ }, s = (n) => {
122
122
  delete S.value[n.index];
123
123
  };
124
124
  se(`subMenu:${m.uid}`, {
125
125
  addSubMenu: t,
126
- removeSubMenu: a,
126
+ removeSubMenu: s,
127
127
  handleMouseleave: T,
128
128
  mouseInChild: z,
129
129
  level: r.level + 1
@@ -146,18 +146,18 @@ const Ce = Z({
146
146
  ...te.value
147
147
  }), R = l(() => ve(m, "title"));
148
148
  return () => {
149
- const t = [N.value?.icon ? s(L, {
149
+ const t = [N.value?.icon ? u(L, {
150
150
  ...N.value
151
- }) : null, s("span", {
152
- class: [u.e("text"), u.is("arrow", o.showArrow)],
151
+ }) : null, u("span", {
152
+ class: [a.e("text"), a.is("arrow", o.showArrow)],
153
153
  title: m.props.title
154
- }, R.value), o.showArrow ? s(L, {
155
- class: u.e("icon-arrow"),
154
+ }, R.value), o.showArrow ? u(L, {
155
+ class: a.e("icon-arrow"),
156
156
  ...ne.value,
157
157
  style: {
158
158
  transform: c.value ? "rotateZ(180deg)" : "none"
159
159
  }
160
- }) : !1], a = e.isMenuPopup ? s(Me, {
160
+ }) : !1], s = e.isMenuPopup ? u(Me, {
161
161
  ref: E,
162
162
  visible: c.value,
163
163
  effect: "light",
@@ -173,17 +173,19 @@ const Ce = Z({
173
173
  gpuAcceleration: !1,
174
174
  ...o.toolTipCfg
175
175
  }, {
176
- content: () => s("div", {
176
+ content: () => u("div", {
177
177
  class: [i.m(p.value), i.m("popup-container"), o.popperClass],
178
178
  onMouseenter: (n) => v(n, 100),
179
179
  onMouseleave: (n) => T(n, !0),
180
180
  onFocus: (n) => v(n, 100)
181
- }, [s("ul", {
181
+ }, [u("div", {
182
182
  class: [i.b(), i.m("popup"), i.m(`popup-${A.value}`)],
183
183
  style: j.value
184
- }, [V.default?.()])]),
185
- default: () => s("div", {
186
- class: u.e("title"),
184
+ }, [u("ul", {
185
+ class: i.m("popup-ul-list")
186
+ }, V.default?.())])]),
187
+ default: () => u("div", {
188
+ class: a.e("title"),
187
189
  style: [$.value, {
188
190
  backgroundColor: B.value
189
191
  }],
@@ -193,30 +195,30 @@ const Ce = Z({
193
195
  }, t)
194
196
  }) : (
195
197
  // 以下是无需 tooltip 渲染的组件,通常是侧边栏没有折叠的时候
196
- s(pe, {}, [R.value ? s("div", {
197
- class: u.e("title"),
198
+ u(pe, {}, [R.value ? u("div", {
199
+ class: a.e("title"),
198
200
  style: [$.value, {
199
201
  backgroundColor: B.value
200
202
  }],
201
203
  ref: J,
202
204
  onClick: O
203
- }, t) : null, s(be, {}, {
204
- default: () => me(s("ul", {
205
+ }, t) : null, u(be, {}, {
206
+ default: () => me(u("ul", {
205
207
  role: "menu",
206
208
  class: [i.b(), i.m("inline")],
207
209
  style: j.value
208
210
  }, [V.default?.()]), [[de, c.value]])
209
211
  })])
210
212
  );
211
- return s("li", {
212
- class: [u.b(), u.is("active", d.value), u.e(String(r.level)), u.is("in-popup", r.level !== 0), u.is("opened", c.value), u.is("arrow", !0), u.is("disabled", o.disabled)],
213
+ return u("li", {
214
+ class: [a.b(), a.is("active", d.value), a.e(String(r.level)), a.is("in-popup", r.level !== 0), a.is("opened", c.value), a.is("arrow", !0), a.is("disabled", o.disabled)],
213
215
  role: "menuitem",
214
216
  ariaHaspopup: !0,
215
217
  ariaExpanded: c.value,
216
218
  onMouseenter: [_, (n) => v(n)],
217
219
  onMouseleave: [ee, (n) => T(n, !0)],
218
220
  onFocus: v
219
- }, [a]);
221
+ }, [s]);
220
222
  };
221
223
  }
222
224
  });
@@ -1,4 +1,4 @@
1
- import Sortable from 'sortablejs';
1
+ import type { SortableEvent } from 'sortablejs';
2
2
  import type { MenuSelectEventData, SideMenuProps } from './types';
3
3
  declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<SideMenuProps>, {
4
4
  isFixedLeft: boolean;
@@ -27,7 +27,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
27
27
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
28
28
  "update:collapse": (val: boolean) => void;
29
29
  "update:width": (val: string | number) => void;
30
- dragEnd: (oldIndex: Sortable.SortableEvent, newIndex: Sortable.SortableEvent) => void;
30
+ dragEnd: (oldIndex: SortableEvent, newIndex: SortableEvent) => void;
31
31
  dragWidthEnd: () => void;
32
32
  select: (val: MenuSelectEventData) => void;
33
33
  subMenuClick: (val: any) => void;
@@ -54,7 +54,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
54
54
  onSelect?: ((val: MenuSelectEventData) => any) | undefined;
55
55
  "onUpdate:collapse"?: ((val: boolean) => any) | undefined;
56
56
  "onUpdate:width"?: ((val: string | number) => any) | undefined;
57
- onDragEnd?: ((oldIndex: Sortable.SortableEvent, newIndex: Sortable.SortableEvent) => any) | undefined;
57
+ onDragEnd?: ((oldIndex: SortableEvent, newIndex: SortableEvent) => any) | undefined;
58
58
  onDragWidthEnd?: (() => any) | undefined;
59
59
  onSubMenuClick?: ((val: any) => any) | undefined;
60
60
  onSubMenuOpenClick?: ((val: any) => any) | undefined;
@@ -1,25 +1,25 @@
1
- import { defineComponent as J, toRefs as se, useSlots as ie, getCurrentInstance as de, ref as h, computed as b, watch as re, onMounted as ce, nextTick as pe, createVNode as p, h as y, isVNode as fe } from "vue";
2
- import { listenerRouteChange as me, useRouterHelper as ve } from "@vft/router";
3
- import { useSortable as he } from "@vft/use/sortable";
4
- import { isNullOrUndefined as V, isNumber as j, isUrl as ge } from "@vft/utils";
1
+ import { defineComponent as J, toRefs as ie, useSlots as de, getCurrentInstance as re, ref as h, computed as b, watch as ce, onMounted as pe, nextTick as fe, createVNode as p, h as y, isVNode as me } from "vue";
2
+ import { listenerRouteChange as ve, useRouterHelper as he } from "@vft/router";
3
+ import { useSortable as ge } from "@vft/use/sortable";
4
+ import { isNullOrUndefined as W, isNumber as j, isUrl as be } from "@vft/utils";
5
5
  import "@vueuse/core";
6
6
  import { addUnit as q } from "../../utils/helper.js";
7
7
  import "lodash-es";
8
8
  import "../form/index.js";
9
- import { VftIcon as be } from "../icon/index.js";
10
- import { VftMenu as ye, VftSubMenu as Me, VftMenuItem as E } from "../menu/index.js";
11
- import { useNamespace as Se } from "../../hooks/use-namespace/index.js";
9
+ import { VftIcon as ye } from "../icon/index.js";
10
+ import { VftMenu as Me, VftSubMenu as Se, VftMenuItem as E } from "../menu/index.js";
11
+ import { useNamespace as Oe } 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
15
  import { useDragLine as Ce } from "./use-drag-line.js";
16
- function Oe(g) {
17
- return typeof g == "function" || Object.prototype.toString.call(g) === "[object Object]" && !fe(g);
16
+ function xe(g) {
17
+ return typeof g == "function" || Object.prototype.toString.call(g) === "[object Object]" && !me(g);
18
18
  }
19
- const xe = J({
19
+ const _e = J({
20
20
  name: "vft-side-menu"
21
- }), Je = /* @__PURE__ */ J({
22
- ...xe,
21
+ }), Le = /* @__PURE__ */ J({
22
+ ..._e,
23
23
  props: {
24
24
  isFixedLeft: {
25
25
  type: Boolean,
@@ -98,7 +98,7 @@ const xe = J({
98
98
  defaultOpeneds: $,
99
99
  openMenuCollapse: F,
100
100
  defaultOpenedsLevel: M
101
- } = se(t), u = Se("side-menu"), r = ie(), O = de(), x = h(), a = b(() => ({
101
+ } = ie(t), u = Oe("side-menu"), r = de(), C = re(), x = h(), a = b(() => ({
102
102
  path: "path",
103
103
  children: "children",
104
104
  title: "title",
@@ -114,7 +114,7 @@ const xe = J({
114
114
  };
115
115
  return n(e), l;
116
116
  };
117
- me(({
117
+ ve(({
118
118
  route: e
119
119
  }) => {
120
120
  !e || e.meta?.hideSide && !t.useRouterJump || (x.value = e.path);
@@ -148,7 +148,7 @@ const xe = J({
148
148
  const l = e[a.value.path], n = e[a.value.title], s = e?.[a.value.children], i = e?.[a.value.index], v = e?.[a.value.icon], T = !!e?.[a.value.disabled], R = t.disabledJudgeTurnOver ? !T : T, N = i || l || o + n;
149
149
  return s?.length ? y(
150
150
  // @ts-ignore
151
- Me,
151
+ Se,
152
152
  {
153
153
  ...e,
154
154
  popperAppendToBody: !0,
@@ -160,18 +160,18 @@ const xe = J({
160
160
  popperClass: u.e("popper")
161
161
  },
162
162
  {
163
- default: () => s?.map((c, ne) => {
164
- const C = c[a.value.path], I = c[a.value.index], oe = c[a.value.icon], ae = c[a.value.title], W = !!c[a.value.disabled], ue = t.disabledJudgeTurnOver ? !W : W;
165
- return c?.[a.value.children]?.length ? B(c, ne) : (
163
+ default: () => s?.map((c, oe) => {
164
+ const O = c[a.value.path], I = c[a.value.index], ae = c[a.value.icon], ue = c[a.value.title], V = !!c[a.value.disabled], se = t.disabledJudgeTurnOver ? !V : V;
165
+ return c?.[a.value.children]?.length ? B(c, oe) : (
166
166
  // @ts-ignore
167
167
  y(E, {
168
168
  ...c,
169
- key: I || C,
170
- index: I || C,
171
- route: C,
172
- icon: oe,
173
- title: ae,
174
- disabled: t.openDisabled && ue
169
+ key: I || O,
170
+ index: I || O,
171
+ route: O,
172
+ icon: ae,
173
+ title: ue,
174
+ disabled: t.openDisabled && se
175
175
  }, r.menuItem ? () => r.menuItem?.({
176
176
  item: c
177
177
  }) : "")
@@ -197,14 +197,14 @@ const xe = J({
197
197
  width: 0
198
198
  } : {},
199
199
  height: `calc(100% - ${t.menuTopBottomHeight}px)`
200
- })), w = O.appContext.config.globalProperties.$router;
200
+ })), w = C.appContext.config.globalProperties.$router;
201
201
  async function X(e) {
202
202
  if (t.useRouterJump) {
203
203
  const {
204
204
  go: o
205
- } = ve(w), l = e.route;
205
+ } = he(w), l = e.route;
206
206
  let n = e.route;
207
- e.indexPath.some((i) => ge(i)) && (n = e.indexPath.slice(-2).join("/"));
207
+ e.indexPath.some((i) => be(i)) && (n = e.indexPath.slice(-2).join("/"));
208
208
  const s = w.getRoutes().filter((i) => i.path === n)?.[0]?.meta?.linkTarget;
209
209
  o(s ? {
210
210
  url: l,
@@ -215,32 +215,34 @@ const xe = J({
215
215
  }
216
216
  d("select", e);
217
217
  }
218
- const S = h(), k = h(), A = h(), ee = b(() => ({
218
+ const S = h(), D = h(), k = h(), ee = b(() => ({
219
219
  ...t.collapseWidth === 0 && f.value ? {
220
220
  borderRight: "none"
221
221
  } : {},
222
222
  width: q(t.width),
223
223
  height: t.height
224
224
  }));
225
- re(() => f.value, (e) => {
226
- e ? d("update:width", t.collapseWidth) : d("update:width", A.value || t.width), A.value = t.width;
227
- }), t.dragWidthCfg && Ce(S, k, O);
228
- const te = b(() => ({
225
+ ce(() => f.value, (e) => {
226
+ te.value || (e ? d("update:width", t.collapseWidth) : d("update:width", k.value || t.width), k.value = t.width);
227
+ });
228
+ const {
229
+ isDraging: te
230
+ } = Ce(S, D, C), le = b(() => ({
229
231
  left: q(t.width)
230
- })), le = b(() => [u.b(), t.isFixedLeft ? u.m("fixed") : ""]), D = h([]);
231
- return ce(() => {
232
- pe(() => {
232
+ })), ne = b(() => [u.b(), t.isFixedLeft ? u.m("fixed") : ""]), A = h([]);
233
+ return pe(() => {
234
+ fe(() => {
233
235
  if (t.dragOption?.dragClassName) {
234
236
  const e = document.querySelectorAll(`.${u.e(t.dragOption?.dragClassName)}`)?.[0], {
235
237
  initSortable: o
236
- } = he(e, {
238
+ } = ge(e, {
237
239
  draggable: ".vft-menu-item",
238
240
  onEnd: (l) => {
239
241
  const {
240
242
  oldIndex: n,
241
243
  newIndex: s
242
244
  } = l;
243
- V(n) || V(s) || n === s || d("dragEnd", n, s);
245
+ W(n) || W(s) || n === s || d("dragEnd", n, s);
244
246
  },
245
247
  ...t.dragOption
246
248
  });
@@ -253,46 +255,46 @@ const xe = J({
253
255
  menuRef: m
254
256
  }), () => {
255
257
  let e;
256
- return M.value && (D.value = Z(t.menus, j(M.value) ? M.value : 1 / 0)), p("div", {
258
+ return M.value && (A.value = Z(t.menus, j(M.value) ? M.value : 1 / 0)), p("div", {
257
259
  ref: S,
258
- class: le.value,
260
+ class: ne.value,
259
261
  style: ee.value
260
262
  }, [r.top ? p("div", {
261
263
  class: u.e("top")
262
- }, [r.top()]) : null, y(p(ye, {
264
+ }, [r.top()]) : null, y(p(Me, {
263
265
  ref: m,
264
266
  onSelect: X,
265
267
  onOpen: z,
266
268
  onSubMenuClick: Y,
267
269
  defaultActive: H?.value || x.value,
268
- defaultOpeneds: $?.value || D.value,
270
+ defaultOpeneds: $?.value || A.value,
269
271
  disableSubMenuAction: t.disableSubMenuAction,
270
272
  class: [u.e("con"), t.dragOption?.dragClassName ? u.e(t.dragOption?.dragClassName) : ""],
271
273
  style: Q.value,
272
274
  collapse: F.value ? f.value : !1,
273
275
  uniqueOpened: U.value,
274
276
  collapseTransition: !1
275
- }, Oe(e = t.menus.map((o, l) => B(o, l))) ? e : {
277
+ }, xe(e = t.menus.map((o, l) => B(o, l))) ? e : {
276
278
  default: () => [e]
277
279
  })), r.bottom ? p("div", {
278
280
  class: u.e("bottom")
279
281
  }, [r.bottom()]) : t.showCollapse ? p("div", {
280
282
  onClick: () => d("update:collapse", !f.value),
281
283
  class: [u.e("bottom"), u.e("collapse")]
282
- }, [p(be, {
284
+ }, [p(ye, {
283
285
  style: {
284
286
  transform: f.value ? "rotateY(180deg)" : ""
285
287
  },
286
288
  size: 20,
287
289
  icon: "icon-sidebar-collapse"
288
290
  }, null)]) : null, r.default?.(), t.dragWidthCfg ? p("div", {
289
- ref: k,
290
- style: te.value,
291
+ ref: D,
292
+ style: le.value,
291
293
  class: u.e("drag-bar")
292
294
  }, null) : null]);
293
295
  };
294
296
  }
295
297
  });
296
298
  export {
297
- Je as default
299
+ Le as default
298
300
  };
@@ -1,2 +1,4 @@
1
1
  import { type Ref } from 'vue';
2
- export declare function useDragLine(siderRef: Ref<any>, dragBarRef: Ref<any>, instance: any): {};
2
+ export declare function useDragLine(siderRef: Ref<any>, dragBarRef: Ref<any>, instance: any): {
3
+ isDraging: Ref<boolean, boolean>;
4
+ };
@@ -1,42 +1,53 @@
1
- import { useDebounceFn as W, useThrottleFn as g } from "@vft/use";
2
- import { onMounted as x, nextTick as w, unref as u } from "vue";
3
- function M(f, d, r) {
4
- const l = r.props?.dragWidthCfg?.minWidth || 200;
5
- x(() => {
6
- w(() => {
7
- W(a, 100)();
1
+ import "@vueuse/core";
2
+ import "@vft/utils";
3
+ import "../config-provider/hooks/use-global-config.js";
4
+ import { ref as x, onMounted as v, nextTick as d, unref as r } from "vue";
5
+ import "lodash-es";
6
+ import "../form/index.js";
7
+ import { useDebounceFn as w, useThrottleFn as T } from "@vft/use";
8
+ function k(p, c, n) {
9
+ const i = x(!1), l = n.props?.dragWidthCfg?.minWidth || 200;
10
+ v(() => {
11
+ n.props?.dragWidthCfg && d(() => {
12
+ w(g, 100)();
8
13
  });
9
14
  });
10
- function c(e) {
11
- const n = u(e);
12
- return n ? Reflect.has(n, "$el") ? u(e)?.$el : u(e) : null;
15
+ function f(t) {
16
+ const o = r(t);
17
+ return o ? Reflect.has(o, "$el") ? r(t)?.$el : r(t) : null;
13
18
  }
14
- function m(e, n, i) {
15
- document.onmousemove = function(o) {
16
- let t = e.left + (o.clientX - i);
17
- o = o || window.event;
18
- const s = r.props?.dragWidthCfg?.maxWidth || 800, h = u(l);
19
- return t <= h ? void 0 : (t < 0 && (t = 0), t > s && (t = s), e.style.left = t + "px", g(() => {
20
- r.emit("update:width", t);
19
+ function a(t, o, s) {
20
+ document.onmousemove = function(u) {
21
+ let e = t.left + (u.clientX - s);
22
+ u = u || window.event;
23
+ const m = n.props?.dragWidthCfg?.maxWidth || 800, W = r(l);
24
+ return e <= W ? void 0 : (e < 0 && (e = 0), e > m && (e = m), t.style.left = e + "px", T(() => {
25
+ n.emit("update:width", e + "px");
21
26
  }, 150)(), !1);
22
27
  };
23
28
  }
24
- function p(e) {
29
+ function h(t) {
25
30
  document.onmouseup = function() {
26
- document.onmousemove = null, document.onmouseup = null, e.releaseCapture?.();
31
+ document.onmousemove = null, document.onmouseup = null, i.value = !0, d(() => {
32
+ n.emit("dragWidthEnd"), setTimeout(() => {
33
+ i.value = !1;
34
+ }, 1e3);
35
+ }), t.releaseCapture?.();
27
36
  };
28
37
  }
29
- function a() {
30
- const e = c(d);
31
- if (!e) return;
32
- const n = c(f);
33
- n && (e.onmousedown = (i) => {
34
- const o = i?.clientX;
35
- return e.left = e.offsetLeft, m(e, n, o), p(e), e.setCapture?.(), !1;
38
+ function g() {
39
+ const t = f(c);
40
+ if (!t) return;
41
+ const o = f(p);
42
+ o && (t.onmousedown = (s) => {
43
+ const u = s?.clientX;
44
+ return t.left = t.offsetLeft, a(t, o, u), h(t), t.setCapture?.(), !1;
36
45
  });
37
46
  }
38
- return {};
47
+ return {
48
+ isDraging: i
49
+ };
39
50
  }
40
51
  export {
41
- M as useDragLine
52
+ k as useDragLine
42
53
  };
@@ -1,6 +1,6 @@
1
1
  declare const _default: {
2
2
  "name": "vft",
3
- "version": "0.0.430",
3
+ "version": "0.0.431",
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.430";
1
+ const o = "0.0.431";
2
2
  export {
3
3
  o as version
4
4
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),m=require("@vft/utils"),ee=require("../tooltip/index.cjs"),V=require("../icon/index.cjs"),te=require("../collapse-transition/index.cjs"),N=require("@vueuse/core"),R=require("../../utils/error.cjs");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");require("../form/index.cjs");const x=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-menu.cjs"),ne=require("./use-menu-css-var.cjs"),ue=e.defineComponent({name:"vft-sub-menu",inheritAttrs:!1}),le=e.defineComponent({...ue,props:{index:{},showTimeout:{default:300},hideTimeout:{default:300},popperClass:{},disabled:{type:Boolean},popperOffset:{default:6},expandIcon:{},collapseIcon:{},title:{},icon:{},showArrow:{type:Boolean,default:!0},toolTipCfg:{},teleported:{type:Boolean,default:void 0}},emits:["mouseenter","mouseleave"],setup(o,{expose:D,emit:L}){const S=L,w=x.useNamespace("sub-menu"),d=e.getCurrentInstance(),{indexPath:f,parentMenu:q}=oe.default(d,e.computed(()=>o.index)),a=x.useNamespace("menu"),l=x.useNamespace("sub-menu"),t=e.inject("rootMenu");t||R.throwError(w.b(),"can not inject root menu");const r=e.inject(`subMenu:${q.value.uid}`);r||R.throwError(w.b(),"can not inject sub menu");const C=e.ref({});let M;const y=e.ref(!1),H=e.ref(),I=e.ref(null),k=e.computed(()=>c.value==="horizontal"&&b.value?"bottom-start":"right-start"),b=e.computed(()=>r.level===0),g=e.computed(()=>o.teleported===void 0?b.value:o.teleported),U=e.computed(()=>t.props.collapse?`${a.namespace.value}-zoom-in-left`:`${a.namespace.value}-zoom-in-top`),Z=e.computed(()=>c.value==="horizontal"&&b.value?["bottom-start","bottom-end","top-start","top-end","right-start","left-start"]:["right-start","left-start","bottom-start","bottom-end","top-start","top-end"]),i=e.computed(()=>t.openedMenus.includes(o.index)),p=e.computed(()=>{let n=!1;return Object.values(C.value).forEach(s=>{s.active&&(n=!0)}),o.index===t.activeIndex&&(n=!0),n}),z=e.computed(()=>t.props.backgroundColor||""),E=e.computed(()=>t.props.activeTextColor||""),A=e.computed(()=>t.props.textColor||""),c=e.computed(()=>t.props.mode),G=e.computed(()=>t.props.persistent),h=e.reactive({index:o.index,indexPath:f,active:p}),j=ne.useMenuCssVar(t.props,r.level+1),P=e.computed(()=>c.value!=="horizontal"?{color:A.value}:{borderBottomColor:p.value?t.props.activeTextColor?E.value:"":"transparent",color:p.value?E.value:A.value}),J=()=>I.value?.popperRef?.popperInstanceRef?.destroy(),K=n=>{n||J()},$=n=>{const s={e:n,index:o.index,indexPath:f.value,active:p.value};if(t.props.menuTrigger==="hover"&&t.props.mode==="horizontal"&&!m.isMobile()||t.props.collapse&&t.props.mode==="vertical"||o.disabled){t.handleSubMenuClick({...s,isFirstLevel:!0});return}t.handleSubMenuClick(s)},v=(n,s=o.showTimeout)=>{n.type!=="focus"&&(t.props.menuTrigger==="click"&&t.props.mode==="horizontal"||!t.props.collapse&&t.props.mode==="vertical"||o.disabled||(r.mouseInChild.value=!0,M?.(),{stop:M}=N.useTimeoutFn(()=>{t.openMenu(o.index,f.value)},s),g.value&&q.value.vnode.el?.dispatchEvent(new MouseEvent("mouseenter")),S("mouseenter",n)))},Q=()=>{t.inSubMenuMouseEnterTimer&&clearTimeout(t.inSubMenuMouseEnterTimer),t.inSubMenuMouseleaveTimer&&clearTimeout(t.inSubMenuMouseleaveTimer),t.inSubMenuMouseEnterTimer=setTimeout(()=>{t.inSubMenu=!0},o.showTimeout+10)},W=()=>{t.inSubMenuMouseEnterTimer&&clearTimeout(t.inSubMenuMouseEnterTimer),t.inSubMenuMouseleaveTimer&&clearTimeout(t.inSubMenuMouseleaveTimer),t.inSubMenuMouseleaveTimer=setTimeout(()=>{t.inSubMenu=!1},o.hideTimeout-10)},T=(n,s=!1)=>{t.props.menuTrigger==="click"&&t.props.mode==="horizontal"||!t.props.collapse&&t.props.mode==="vertical"||(M?.(),r.mouseInChild.value=!1,{stop:M}=N.useTimeoutFn(()=>{!y.value&&t.closeMenu(o.index,f.value)},o.hideTimeout),g.value&&s&&d.parent?.type.name==="vft-sub-menu"&&r.handleMouseleave?.(n,!0),S("mouseleave",n))};e.watch(()=>t.props.collapse,n=>K(!!n));{const n=u=>{C.value[u.index]=u},s=u=>{delete C.value[u.index]};e.provide(`subMenu:${d.uid}`,{addSubMenu:n,removeSubMenu:s,handleMouseleave:T,mouseInChild:y,level:r.level+1})}D({opened:i}),e.onMounted(()=>{t.addSubMenu(h),r.addSubMenu(h)}),e.onBeforeUnmount(()=>{r.removeSubMenu(h),t.removeSubMenu(h)});const B=e.useSlots(),F=e.computed(()=>m.singleAttrToObj(o.icon,"icon")),X=e.computed(()=>m.singleAttrToObj(o.expandIcon,"icon")),Y=e.computed(()=>m.singleAttrToObj(o.collapseIcon,"icon")),_=e.computed(()=>c.value==="horizontal"&&b.value||c.value==="vertical"&&!t.props.collapse?{icon:"icon-arrow-down",size:20,...X.value}:{icon:"icon-arrow-right",size:18,...Y.value}),O=e.computed(()=>m.renderTNode(d,"title"));return()=>{const n=[F.value?.icon?e.h(V.VftIcon,{...F.value}):null,e.h("span",{class:[l.e("text"),l.is("arrow",o.showArrow)],title:d.props.title},O.value),o.showArrow?e.h(V.VftIcon,{class:l.e("icon-arrow"),..._.value,style:{transform:i.value?"rotateZ(180deg)":"none"}}):!1],s=t.isMenuPopup?e.h(ee.VftTooltip,{ref:I,visible:i.value,effect:"light",pure:!0,offset:o.popperOffset,showArrow:!1,persistent:G.value,popperClass:o.popperClass,placement:k.value,teleported:g.value,fallbackPlacements:Z.value,transition:U.value,gpuAcceleration:!1,...o.toolTipCfg},{content:()=>e.h("div",{class:[a.m(c.value),a.m("popup-container"),o.popperClass],onMouseenter:u=>v(u,100),onMouseleave:u=>T(u,!0),onFocus:u=>v(u,100)},[e.h("ul",{class:[a.b(),a.m("popup"),a.m(`popup-${k.value}`)],style:j.value},[B.default?.()])]),default:()=>e.h("div",{class:l.e("title"),style:[P.value,{backgroundColor:z.value}],onMouseenter:u=>v(u),onMouseleave:u=>T(u,!0),onClick:u=>$(u)},n)}):e.h(e.Fragment,{},[O.value?e.h("div",{class:l.e("title"),style:[P.value,{backgroundColor:z.value}],ref:H,onClick:$},n):null,e.h(te.VftCollapseTransition,{},{default:()=>e.withDirectives(e.h("ul",{role:"menu",class:[a.b(),a.m("inline")],style:j.value},[B.default?.()]),[[e.vShow,i.value]])})]);return e.h("li",{class:[l.b(),l.is("active",p.value),l.e(String(r.level)),l.is("in-popup",r.level!==0),l.is("opened",i.value),l.is("arrow",!0),l.is("disabled",o.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:i.value,onMouseenter:[Q,u=>v(u)],onMouseleave:[W,u=>T(u,!0)],onFocus:v},[s])}}});exports.default=le;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),m=require("@vft/utils"),ee=require("../tooltip/index.cjs"),V=require("../icon/index.cjs"),te=require("../collapse-transition/index.cjs"),N=require("@vueuse/core"),R=require("../../utils/error.cjs");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");require("../form/index.cjs");const x=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-menu.cjs"),ne=require("./use-menu-css-var.cjs"),ue=e.defineComponent({name:"vft-sub-menu",inheritAttrs:!1}),le=e.defineComponent({...ue,props:{index:{},showTimeout:{default:300},hideTimeout:{default:300},popperClass:{},disabled:{type:Boolean},popperOffset:{default:6},expandIcon:{},collapseIcon:{},title:{},icon:{},showArrow:{type:Boolean,default:!0},toolTipCfg:{},teleported:{type:Boolean,default:void 0}},emits:["mouseenter","mouseleave"],setup(o,{expose:D,emit:L}){const S=L,w=x.useNamespace("sub-menu"),d=e.getCurrentInstance(),{indexPath:f,parentMenu:q}=oe.default(d,e.computed(()=>o.index)),a=x.useNamespace("menu"),l=x.useNamespace("sub-menu"),t=e.inject("rootMenu");t||R.throwError(w.b(),"can not inject root menu");const r=e.inject(`subMenu:${q.value.uid}`);r||R.throwError(w.b(),"can not inject sub menu");const C=e.ref({});let M;const y=e.ref(!1),H=e.ref(),I=e.ref(null),k=e.computed(()=>c.value==="horizontal"&&b.value?"bottom-start":"right-start"),b=e.computed(()=>r.level===0),g=e.computed(()=>o.teleported===void 0?b.value:o.teleported),U=e.computed(()=>t.props.collapse?`${a.namespace.value}-zoom-in-left`:`${a.namespace.value}-zoom-in-top`),Z=e.computed(()=>c.value==="horizontal"&&b.value?["bottom-start","bottom-end","top-start","top-end","right-start","left-start"]:["right-start","left-start","bottom-start","bottom-end","top-start","top-end"]),i=e.computed(()=>t.openedMenus.includes(o.index)),p=e.computed(()=>{let n=!1;return Object.values(C.value).forEach(s=>{s.active&&(n=!0)}),o.index===t.activeIndex&&(n=!0),n}),z=e.computed(()=>t.props.backgroundColor||""),E=e.computed(()=>t.props.activeTextColor||""),A=e.computed(()=>t.props.textColor||""),c=e.computed(()=>t.props.mode),G=e.computed(()=>t.props.persistent),h=e.reactive({index:o.index,indexPath:f,active:p}),j=ne.useMenuCssVar(t.props,r.level+1),P=e.computed(()=>c.value!=="horizontal"?{color:A.value}:{borderBottomColor:p.value?t.props.activeTextColor?E.value:"":"transparent",color:p.value?E.value:A.value}),J=()=>I.value?.popperRef?.popperInstanceRef?.destroy(),K=n=>{n||J()},$=n=>{const s={e:n,index:o.index,indexPath:f.value,active:p.value};if(t.props.menuTrigger==="hover"&&t.props.mode==="horizontal"&&!m.isMobile()||t.props.collapse&&t.props.mode==="vertical"||o.disabled){t.handleSubMenuClick({...s,isFirstLevel:!0});return}t.handleSubMenuClick(s)},v=(n,s=o.showTimeout)=>{n.type!=="focus"&&(t.props.menuTrigger==="click"&&t.props.mode==="horizontal"||!t.props.collapse&&t.props.mode==="vertical"||o.disabled||(r.mouseInChild.value=!0,M?.(),{stop:M}=N.useTimeoutFn(()=>{t.openMenu(o.index,f.value)},s),g.value&&q.value.vnode.el?.dispatchEvent(new MouseEvent("mouseenter")),S("mouseenter",n)))},Q=()=>{t.inSubMenuMouseEnterTimer&&clearTimeout(t.inSubMenuMouseEnterTimer),t.inSubMenuMouseleaveTimer&&clearTimeout(t.inSubMenuMouseleaveTimer),t.inSubMenuMouseEnterTimer=setTimeout(()=>{t.inSubMenu=!0},o.showTimeout+10)},W=()=>{t.inSubMenuMouseEnterTimer&&clearTimeout(t.inSubMenuMouseEnterTimer),t.inSubMenuMouseleaveTimer&&clearTimeout(t.inSubMenuMouseleaveTimer),t.inSubMenuMouseleaveTimer=setTimeout(()=>{t.inSubMenu=!1},o.hideTimeout-10)},T=(n,s=!1)=>{t.props.menuTrigger==="click"&&t.props.mode==="horizontal"||!t.props.collapse&&t.props.mode==="vertical"||(M?.(),r.mouseInChild.value=!1,{stop:M}=N.useTimeoutFn(()=>{!y.value&&t.closeMenu(o.index,f.value)},o.hideTimeout),g.value&&s&&d.parent?.type.name==="vft-sub-menu"&&r.handleMouseleave?.(n,!0),S("mouseleave",n))};e.watch(()=>t.props.collapse,n=>K(!!n));{const n=u=>{C.value[u.index]=u},s=u=>{delete C.value[u.index]};e.provide(`subMenu:${d.uid}`,{addSubMenu:n,removeSubMenu:s,handleMouseleave:T,mouseInChild:y,level:r.level+1})}D({opened:i}),e.onMounted(()=>{t.addSubMenu(h),r.addSubMenu(h)}),e.onBeforeUnmount(()=>{r.removeSubMenu(h),t.removeSubMenu(h)});const B=e.useSlots(),F=e.computed(()=>m.singleAttrToObj(o.icon,"icon")),X=e.computed(()=>m.singleAttrToObj(o.expandIcon,"icon")),Y=e.computed(()=>m.singleAttrToObj(o.collapseIcon,"icon")),_=e.computed(()=>c.value==="horizontal"&&b.value||c.value==="vertical"&&!t.props.collapse?{icon:"icon-arrow-down",size:20,...X.value}:{icon:"icon-arrow-right",size:18,...Y.value}),O=e.computed(()=>m.renderTNode(d,"title"));return()=>{const n=[F.value?.icon?e.h(V.VftIcon,{...F.value}):null,e.h("span",{class:[l.e("text"),l.is("arrow",o.showArrow)],title:d.props.title},O.value),o.showArrow?e.h(V.VftIcon,{class:l.e("icon-arrow"),..._.value,style:{transform:i.value?"rotateZ(180deg)":"none"}}):!1],s=t.isMenuPopup?e.h(ee.VftTooltip,{ref:I,visible:i.value,effect:"light",pure:!0,offset:o.popperOffset,showArrow:!1,persistent:G.value,popperClass:o.popperClass,placement:k.value,teleported:g.value,fallbackPlacements:Z.value,transition:U.value,gpuAcceleration:!1,...o.toolTipCfg},{content:()=>e.h("div",{class:[a.m(c.value),a.m("popup-container"),o.popperClass],onMouseenter:u=>v(u,100),onMouseleave:u=>T(u,!0),onFocus:u=>v(u,100)},[e.h("div",{class:[a.b(),a.m("popup"),a.m(`popup-${k.value}`)],style:j.value},[e.h("ul",{class:a.m("popup-ul-list")},B.default?.())])]),default:()=>e.h("div",{class:l.e("title"),style:[P.value,{backgroundColor:z.value}],onMouseenter:u=>v(u),onMouseleave:u=>T(u,!0),onClick:u=>$(u)},n)}):e.h(e.Fragment,{},[O.value?e.h("div",{class:l.e("title"),style:[P.value,{backgroundColor:z.value}],ref:H,onClick:$},n):null,e.h(te.VftCollapseTransition,{},{default:()=>e.withDirectives(e.h("ul",{role:"menu",class:[a.b(),a.m("inline")],style:j.value},[B.default?.()]),[[e.vShow,i.value]])})]);return e.h("li",{class:[l.b(),l.is("active",p.value),l.e(String(r.level)),l.is("in-popup",r.level!==0),l.is("opened",i.value),l.is("arrow",!0),l.is("disabled",o.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:i.value,onMouseenter:[Q,u=>v(u)],onMouseleave:[W,u=>T(u,!0)],onFocus:v},[s])}}});exports.default=le;
@@ -1,4 +1,4 @@
1
- import Sortable from 'sortablejs';
1
+ import type { SortableEvent } from 'sortablejs';
2
2
  import type { MenuSelectEventData, SideMenuProps } from './types';
3
3
  declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<SideMenuProps>, {
4
4
  isFixedLeft: boolean;
@@ -27,7 +27,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
27
27
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
28
28
  "update:collapse": (val: boolean) => void;
29
29
  "update:width": (val: string | number) => void;
30
- dragEnd: (oldIndex: Sortable.SortableEvent, newIndex: Sortable.SortableEvent) => void;
30
+ dragEnd: (oldIndex: SortableEvent, newIndex: SortableEvent) => void;
31
31
  dragWidthEnd: () => void;
32
32
  select: (val: MenuSelectEventData) => void;
33
33
  subMenuClick: (val: any) => void;
@@ -54,7 +54,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
54
54
  onSelect?: ((val: MenuSelectEventData) => any) | undefined;
55
55
  "onUpdate:collapse"?: ((val: boolean) => any) | undefined;
56
56
  "onUpdate:width"?: ((val: string | number) => any) | undefined;
57
- onDragEnd?: ((oldIndex: Sortable.SortableEvent, newIndex: Sortable.SortableEvent) => any) | undefined;
57
+ onDragEnd?: ((oldIndex: SortableEvent, newIndex: SortableEvent) => any) | undefined;
58
58
  onDragWidthEnd?: (() => any) | undefined;
59
59
  onSubMenuClick?: ((val: any) => any) | undefined;
60
60
  onSubMenuOpenClick?: ((val: any) => any) | undefined;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("vue"),R=require("@vft/router"),le=require("@vft/use/sortable"),g=require("@vft/utils");require("@vueuse/core");const I=require("../../utils/helper.cjs");require("lodash-es");require("../form/index.cjs");const oe=require("../icon/index.cjs"),b=require("../menu/index.cjs"),ue=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const ae=require("./use-drag-line.cjs");function se(m){return typeof m=="function"||Object.prototype.toString.call(m)==="[object Object]"&&!n.isVNode(m)}const ie=n.defineComponent({name:"vft-side-menu"}),de=n.defineComponent({...ie,props:{isFixedLeft:{type:Boolean,default:!1},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:{},defaultOpenedsLevel:{type:[Number,Boolean],default:!1},disableSubMenuAction:{type:Boolean,default:!1}},emits:["update:collapse","update:width","dragEnd","dragWidthEnd","select","subMenuClick","subMenuOpenClick","menuItemMouseenter","menuItemMouseleave"],setup(m,{expose:W,emit:j}){const t=m,r=j,{defaultActive:L,collapse:f,uniqueOpened:E,defaultOpeneds:J,openMenuCollapse:P,defaultOpenedsLevel:y}=n.toRefs(t),s=ue.useNamespace("side-menu"),c=n.useSlots(),O=n.getCurrentInstance(),C=n.ref(),a=n.computed(()=>({path:"path",children:"children",title:"title",index:"path",icon:"icon",disabled:"disabled",...t.attrMapping})),U=(e,u=1/0)=>{const l=[],o=(i,d=0)=>{d>=u||i.forEach(h=>{h[a.value.children]?.length&&(l.push(h[a.value.index]),o(h[a.value.children],d+1))})};return o(e),l};R.listenerRouteChange(({route:e})=>{!e||e.meta?.hideSide&&!t.useRouterJump||(C.value=e.path)});const $=e=>{const u=e.e;if(t.autoScrollActiveDom&&u){const l=g.isNumber(t.autoScrollActiveDom)?t.autoScrollActiveDom:0,o=u.target;x({activeDom:o,offset:l})}r("subMenuOpenClick",e)},H=e=>{r("subMenuClick",e)},x=({activeDom:e=null,offset:u=0,delay:l=300}={})=>{v.value?.menu&&setTimeout(()=>{const o=e||document.querySelector(".vft-menu-item.is-active")||document.querySelector(".vft-sub-menu.is-active");o&&(v.value.menu.scrollTop=v.value.menu.scrollTop+(o.getBoundingClientRect().top-v.value.menu.getBoundingClientRect().top)+u)},l)},F=e=>{r("menuItemMouseenter",e)},Z=e=>{r("menuItemMouseleave",e)},_=(e,u)=>{const l=e[a.value.path],o=e[a.value.title],i=e?.[a.value.children],d=e?.[a.value.index],h=e?.[a.value.icon],D=!!e?.[a.value.disabled],T=t.disabledJudgeTurnOver?!D:D,k=d||l||u+o;return i?.length?n.h(b.VftSubMenu,{...e,popperAppendToBody:!0,key:k,index:k,title:o,icon:h,disabled:t.openDisabled&&T,popperClass:s.e("popper")},{default:()=>i?.map((p,X)=>{const S=p[a.value.path],A=p[a.value.index],ee=p[a.value.icon],te=p[a.value.title],V=!!p[a.value.disabled],ne=t.disabledJudgeTurnOver?!V:V;return p?.[a.value.children]?.length?_(p,X):n.h(b.VftMenuItem,{...p,key:A||S,index:A||S,route:S,icon:ee,title:te,disabled:t.openDisabled&&ne},c.menuItem?()=>c.menuItem?.({item:p}):"")})}):n.h(b.VftMenuItem,{...e,key:d||l,index:d||l,title:o,route:l,icon:h,disabled:t.openDisabled&&T,onMouseenter:()=>F(e),onMouseleave:()=>Z(e)},c.menuItem?()=>c.menuItem?.({item:e,index:u}):"")},v=n.ref(),z=n.computed(()=>({...t.collapseWidth===0&&f.value?{width:0}:{},height:`calc(100% - ${t.menuTopBottomHeight}px)`})),q=O.appContext.config.globalProperties.$router;async function Y(e){if(t.useRouterJump){const{go:u}=R.useRouterHelper(q),l=e.route;let o=e.route;e.indexPath.some(d=>g.isUrl(d))&&(o=e.indexPath.slice(-2).join("/"));const i=q.getRoutes().filter(d=>d.path===o)?.[0]?.meta?.linkTarget;u(i?{url:l,winOpenOpt:{target:i}}:l)}r("select",e)}const M=n.ref(),N=n.ref(),B=n.ref(),G=n.computed(()=>({...t.collapseWidth===0&&f.value?{borderRight:"none"}:{},width:I.addUnit(t.width),height:t.height}));n.watch(()=>f.value,e=>{e?r("update:width",t.collapseWidth):r("update:width",B.value||t.width),B.value=t.width}),t.dragWidthCfg&&ae.useDragLine(M,N,O);const K=n.computed(()=>({left:I.addUnit(t.width)})),Q=n.computed(()=>[s.b(),t.isFixedLeft?s.m("fixed"):""]),w=n.ref([]);return n.onMounted(()=>{n.nextTick(()=>{if(t.dragOption?.dragClassName){const e=document.querySelectorAll(`.${s.e(t.dragOption?.dragClassName)}`)?.[0],{initSortable:u}=le.useSortable(e,{draggable:".vft-menu-item",onEnd:l=>{const{oldIndex:o,newIndex:i}=l;g.isNullOrUndefined(o)||g.isNullOrUndefined(i)||o===i||r("dragEnd",o,i)},...t.dragOption});u()}})}),W({sideRef:M,jumpActiveDom:x,menuRef:v}),()=>{let e;return y.value&&(w.value=U(t.menus,g.isNumber(y.value)?y.value:1/0)),n.createVNode("div",{ref:M,class:Q.value,style:G.value},[c.top?n.createVNode("div",{class:s.e("top")},[c.top()]):null,n.h(n.createVNode(b.VftMenu,{ref:v,onSelect:Y,onOpen:$,onSubMenuClick:H,defaultActive:L?.value||C.value,defaultOpeneds:J?.value||w.value,disableSubMenuAction:t.disableSubMenuAction,class:[s.e("con"),t.dragOption?.dragClassName?s.e(t.dragOption?.dragClassName):""],style:z.value,collapse:P.value?f.value:!1,uniqueOpened:E.value,collapseTransition:!1},se(e=t.menus.map((u,l)=>_(u,l)))?e:{default:()=>[e]})),c.bottom?n.createVNode("div",{class:s.e("bottom")},[c.bottom()]):t.showCollapse?n.createVNode("div",{onClick:()=>r("update:collapse",!f.value),class:[s.e("bottom"),s.e("collapse")]},[n.createVNode(oe.VftIcon,{style:{transform:f.value?"rotateY(180deg)":""},size:20,icon:"icon-sidebar-collapse"},null)]):null,c.default?.(),t.dragWidthCfg?n.createVNode("div",{ref:N,style:K.value,class:s.e("drag-bar")},null):null])}}});exports.default=de;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("vue"),R=require("@vft/router"),oe=require("@vft/use/sortable"),g=require("@vft/utils");require("@vueuse/core");const I=require("../../utils/helper.cjs");require("lodash-es");require("../form/index.cjs");const ue=require("../icon/index.cjs"),b=require("../menu/index.cjs"),ae=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const se=require("./use-drag-line.cjs");function ie(h){return typeof h=="function"||Object.prototype.toString.call(h)==="[object Object]"&&!n.isVNode(h)}const de=n.defineComponent({name:"vft-side-menu"}),re=n.defineComponent({...de,props:{isFixedLeft:{type:Boolean,default:!1},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:{},defaultOpenedsLevel:{type:[Number,Boolean],default:!1},disableSubMenuAction:{type:Boolean,default:!1}},emits:["update:collapse","update:width","dragEnd","dragWidthEnd","select","subMenuClick","subMenuOpenClick","menuItemMouseenter","menuItemMouseleave"],setup(h,{expose:W,emit:j}){const t=h,r=j,{defaultActive:L,collapse:f,uniqueOpened:E,defaultOpeneds:J,openMenuCollapse:P,defaultOpenedsLevel:y}=n.toRefs(t),s=ae.useNamespace("side-menu"),c=n.useSlots(),O=n.getCurrentInstance(),C=n.ref(),a=n.computed(()=>({path:"path",children:"children",title:"title",index:"path",icon:"icon",disabled:"disabled",...t.attrMapping})),U=(e,u=1/0)=>{const l=[],o=(i,d=0)=>{d>=u||i.forEach(m=>{m[a.value.children]?.length&&(l.push(m[a.value.index]),o(m[a.value.children],d+1))})};return o(e),l};R.listenerRouteChange(({route:e})=>{!e||e.meta?.hideSide&&!t.useRouterJump||(C.value=e.path)});const $=e=>{const u=e.e;if(t.autoScrollActiveDom&&u){const l=g.isNumber(t.autoScrollActiveDom)?t.autoScrollActiveDom:0,o=u.target;x({activeDom:o,offset:l})}r("subMenuOpenClick",e)},H=e=>{r("subMenuClick",e)},x=({activeDom:e=null,offset:u=0,delay:l=300}={})=>{v.value?.menu&&setTimeout(()=>{const o=e||document.querySelector(".vft-menu-item.is-active")||document.querySelector(".vft-sub-menu.is-active");o&&(v.value.menu.scrollTop=v.value.menu.scrollTop+(o.getBoundingClientRect().top-v.value.menu.getBoundingClientRect().top)+u)},l)},F=e=>{r("menuItemMouseenter",e)},Z=e=>{r("menuItemMouseleave",e)},_=(e,u)=>{const l=e[a.value.path],o=e[a.value.title],i=e?.[a.value.children],d=e?.[a.value.index],m=e?.[a.value.icon],D=!!e?.[a.value.disabled],T=t.disabledJudgeTurnOver?!D:D,k=d||l||u+o;return i?.length?n.h(b.VftSubMenu,{...e,popperAppendToBody:!0,key:k,index:k,title:o,icon:m,disabled:t.openDisabled&&T,popperClass:s.e("popper")},{default:()=>i?.map((p,ee)=>{const S=p[a.value.path],A=p[a.value.index],te=p[a.value.icon],ne=p[a.value.title],V=!!p[a.value.disabled],le=t.disabledJudgeTurnOver?!V:V;return p?.[a.value.children]?.length?_(p,ee):n.h(b.VftMenuItem,{...p,key:A||S,index:A||S,route:S,icon:te,title:ne,disabled:t.openDisabled&&le},c.menuItem?()=>c.menuItem?.({item:p}):"")})}):n.h(b.VftMenuItem,{...e,key:d||l,index:d||l,title:o,route:l,icon:m,disabled:t.openDisabled&&T,onMouseenter:()=>F(e),onMouseleave:()=>Z(e)},c.menuItem?()=>c.menuItem?.({item:e,index:u}):"")},v=n.ref(),z=n.computed(()=>({...t.collapseWidth===0&&f.value?{width:0}:{},height:`calc(100% - ${t.menuTopBottomHeight}px)`})),q=O.appContext.config.globalProperties.$router;async function Y(e){if(t.useRouterJump){const{go:u}=R.useRouterHelper(q),l=e.route;let o=e.route;e.indexPath.some(d=>g.isUrl(d))&&(o=e.indexPath.slice(-2).join("/"));const i=q.getRoutes().filter(d=>d.path===o)?.[0]?.meta?.linkTarget;u(i?{url:l,winOpenOpt:{target:i}}:l)}r("select",e)}const M=n.ref(),N=n.ref(),B=n.ref(),G=n.computed(()=>({...t.collapseWidth===0&&f.value?{borderRight:"none"}:{},width:I.addUnit(t.width),height:t.height}));n.watch(()=>f.value,e=>{K.value||(e?r("update:width",t.collapseWidth):r("update:width",B.value||t.width),B.value=t.width)});const{isDraging:K}=se.useDragLine(M,N,O),Q=n.computed(()=>({left:I.addUnit(t.width)})),X=n.computed(()=>[s.b(),t.isFixedLeft?s.m("fixed"):""]),w=n.ref([]);return n.onMounted(()=>{n.nextTick(()=>{if(t.dragOption?.dragClassName){const e=document.querySelectorAll(`.${s.e(t.dragOption?.dragClassName)}`)?.[0],{initSortable:u}=oe.useSortable(e,{draggable:".vft-menu-item",onEnd:l=>{const{oldIndex:o,newIndex:i}=l;g.isNullOrUndefined(o)||g.isNullOrUndefined(i)||o===i||r("dragEnd",o,i)},...t.dragOption});u()}})}),W({sideRef:M,jumpActiveDom:x,menuRef:v}),()=>{let e;return y.value&&(w.value=U(t.menus,g.isNumber(y.value)?y.value:1/0)),n.createVNode("div",{ref:M,class:X.value,style:G.value},[c.top?n.createVNode("div",{class:s.e("top")},[c.top()]):null,n.h(n.createVNode(b.VftMenu,{ref:v,onSelect:Y,onOpen:$,onSubMenuClick:H,defaultActive:L?.value||C.value,defaultOpeneds:J?.value||w.value,disableSubMenuAction:t.disableSubMenuAction,class:[s.e("con"),t.dragOption?.dragClassName?s.e(t.dragOption?.dragClassName):""],style:z.value,collapse:P.value?f.value:!1,uniqueOpened:E.value,collapseTransition:!1},ie(e=t.menus.map((u,l)=>_(u,l)))?e:{default:()=>[e]})),c.bottom?n.createVNode("div",{class:s.e("bottom")},[c.bottom()]):t.showCollapse?n.createVNode("div",{onClick:()=>r("update:collapse",!f.value),class:[s.e("bottom"),s.e("collapse")]},[n.createVNode(ue.VftIcon,{style:{transform:f.value?"rotateY(180deg)":""},size:20,icon:"icon-sidebar-collapse"},null)]):null,c.default?.(),t.dragWidthCfg?n.createVNode("div",{ref:N,style:Q.value,class:s.e("drag-bar")},null):null])}}});exports.default=re;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("@vft/use"),u=require("vue");function W(l,d,r){const a=r.props?.dragWidthCfg?.minWidth||200;u.onMounted(()=>{u.nextTick(()=>{f.useDebounceFn(h,100)()})});function s(e){const n=u.unref(e);return n?Reflect.has(n,"$el")?u.unref(e)?.$el:u.unref(e):null}function m(e,n,i){document.onmousemove=function(o){let t=e.left+(o.clientX-i);o=o||window.event;const c=r.props?.dragWidthCfg?.maxWidth||800,g=u.unref(a);return t<=g?void 0:(t<0&&(t=0),t>c&&(t=c),e.style.left=t+"px",f.useThrottleFn(()=>{r.emit("update:width",t)},150)(),!1)}}function p(e){document.onmouseup=function(){document.onmousemove=null,document.onmouseup=null,e.releaseCapture?.()}}function h(){const e=s(d);if(!e)return;const n=s(l);n&&(e.onmousedown=i=>{const o=i?.clientX;return e.left=e.offsetLeft,m(e,n,o),p(e),e.setCapture?.(),!1})}return{}}exports.useDragLine=W;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("@vueuse/core");require("@vft/utils");require("../config-provider/hooks/use-global-config.cjs");const t=require("vue");require("lodash-es");require("../form/index.cjs");const d=require("@vft/use");function v(l,a,r){const i=t.ref(!1),m=r.props?.dragWidthCfg?.minWidth||200;t.onMounted(()=>{r.props?.dragWidthCfg&&t.nextTick(()=>{d.useDebounceFn(h,100)()})});function c(e){const n=t.unref(e);return n?Reflect.has(n,"$el")?t.unref(e)?.$el:t.unref(e):null}function p(e,n,s){document.onmousemove=function(o){let u=e.left+(o.clientX-s);o=o||window.event;const f=r.props?.dragWidthCfg?.maxWidth||800,W=t.unref(m);return u<=W?void 0:(u<0&&(u=0),u>f&&(u=f),e.style.left=u+"px",d.useThrottleFn(()=>{r.emit("update:width",u+"px")},150)(),!1)}}function g(e){document.onmouseup=function(){document.onmousemove=null,document.onmouseup=null,i.value=!0,t.nextTick(()=>{r.emit("dragWidthEnd"),setTimeout(()=>{i.value=!1},1e3)}),e.releaseCapture?.()}}function h(){const e=c(a);if(!e)return;const n=c(l);n&&(e.onmousedown=s=>{const o=s?.clientX;return e.left=e.offsetLeft,p(e,n,o),g(e),e.setCapture?.(),!1})}return{isDraging:i}}exports.useDragLine=v;
@@ -1,2 +1,4 @@
1
1
  import { type Ref } from 'vue';
2
- export declare function useDragLine(siderRef: Ref<any>, dragBarRef: Ref<any>, instance: any): {};
2
+ export declare function useDragLine(siderRef: Ref<any>, dragBarRef: Ref<any>, instance: any): {
3
+ isDraging: Ref<boolean, boolean>;
4
+ };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.430";exports.version=e;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.431";exports.version=e;