vft 0.0.430 → 0.0.433

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,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,48 @@
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 { useDebounceFn as x, useThrottleFn as v } from "@vft/use";
2
+ import { ref as w, onMounted as T, nextTick as c, unref as r } from "vue";
3
+ function X(l, m, o) {
4
+ const i = w(!1), a = o.props?.dragWidthCfg?.minWidth || 200;
5
+ T(() => {
6
+ o.props?.dragWidthCfg && c(() => {
7
+ x(g, 100)();
8
8
  });
9
9
  });
10
- function c(e) {
11
- const n = u(e);
12
- return n ? Reflect.has(n, "$el") ? u(e)?.$el : u(e) : null;
10
+ function f(e) {
11
+ const n = r(e);
12
+ return n ? Reflect.has(n, "$el") ? r(e)?.$el : r(e) : null;
13
13
  }
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);
14
+ function p(e, n, s) {
15
+ document.onmousemove = function(u) {
16
+ let t = e.left + (u.clientX - s);
17
+ u = u || window.event;
18
+ const d = o.props?.dragWidthCfg?.maxWidth || 800, W = r(a);
19
+ return t <= W ? void 0 : (t < 0 && (t = 0), t > d && (t = d), e.style.left = t + "px", v(() => {
20
+ o.emit("update:width", t + "px");
21
21
  }, 150)(), !1);
22
22
  };
23
23
  }
24
- function p(e) {
24
+ function h(e) {
25
25
  document.onmouseup = function() {
26
- document.onmousemove = null, document.onmouseup = null, e.releaseCapture?.();
26
+ document.onmousemove = null, document.onmouseup = null, i.value = !0, c(() => {
27
+ o.emit("dragWidthEnd"), setTimeout(() => {
28
+ i.value = !1;
29
+ }, 100);
30
+ }), e.releaseCapture?.();
27
31
  };
28
32
  }
29
- function a() {
30
- const e = c(d);
33
+ function g() {
34
+ const e = f(m);
31
35
  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;
36
+ const n = f(l);
37
+ n && (e.onmousedown = (s) => {
38
+ const u = s?.clientX;
39
+ return e.left = e.offsetLeft, p(e, n, u), h(e), e.setCapture?.(), !1;
36
40
  });
37
41
  }
38
- return {};
42
+ return {
43
+ isDraging: i
44
+ };
39
45
  }
40
46
  export {
41
- M as useDragLine
47
+ X as useDragLine
42
48
  };
@@ -1,6 +1,6 @@
1
1
  declare const _default: {
2
2
  "name": "vft",
3
- "version": "0.0.430",
3
+ "version": "0.0.433",
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.433";
2
2
  export {
3
3
  o as version
4
4
  };
@@ -3,6 +3,9 @@ export declare const VftMdContainer: import("vft/es/utils").SFCWithInstall<{
3
3
  tocList: {
4
4
  type: import("vue").PropType<string>;
5
5
  };
6
+ scrollDom: {
7
+ type: import("vue").PropType<string>;
8
+ };
6
9
  }>> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {}, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
7
10
  P: {};
8
11
  B: {};
@@ -14,6 +17,9 @@ export declare const VftMdContainer: import("vft/es/utils").SFCWithInstall<{
14
17
  tocList: {
15
18
  type: import("vue").PropType<string>;
16
19
  };
20
+ scrollDom: {
21
+ type: import("vue").PropType<string>;
22
+ };
17
23
  }>> & Readonly<{}>, {}, {}, {}, {}, {}>;
18
24
  __isFragment?: never;
19
25
  __isTeleport?: never;
@@ -22,6 +28,9 @@ export declare const VftMdContainer: import("vft/es/utils").SFCWithInstall<{
22
28
  tocList: {
23
29
  type: import("vue").PropType<string>;
24
30
  };
31
+ scrollDom: {
32
+ type: import("vue").PropType<string>;
33
+ };
25
34
  }>> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
26
35
  $slots: {
27
36
  default?(_: {}): any;
@@ -1,6 +1,8 @@
1
1
  interface Props {
2
2
  /** 标题目录列表 */
3
3
  tocList?: string;
4
+ /** 滚动 dom 元素 */
5
+ scrollDom?: string;
4
6
  }
5
7
  declare function __VLS_template(): {
6
8
  default?(_: {}): any;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),m=require("../icon/index.cjs"),V=require("../icon-text/index.cjs"),_=require("../md-comment/index.cjs"),E=require("../side-menu/index.cjs"),N=require("../tag/index.cjs");require("@vueuse/core");const l=require("@vft/utils");require("../config-provider/hooks/use-global-config.cjs");const b=require("../../utils/ns-cover.cjs"),S=require("lodash-es");require("../form/index.cjs");const T=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const $=require("@vft/router"),B=require("@vft/use"),D=require("@vft/use/photoswipe"),f=require("@vft/utils/date"),w=require("./use/useCopyCode.cjs"),M=require("./utils.cjs"),z={class:"info-container"},L={key:0,class:"left"},I={class:"infos"},P={class:"reading",title:"阅读量"},R=["data-path"],A=e.defineComponent({name:"vft-md-container"}),j=e.defineComponent({...A,props:{tocList:{}},setup(s){const i=T.useNamespace("md-container"),p=e.getCurrentInstance(),c=e.ref(),a=e.computed(()=>s.tocList&&s.tocList!=="undefined"?JSON.parse(s.tocList):""),{initPhotoSwipe:g}=D.usePhotoSwipe(`.${i.e("content")} img`);g(),w.useCopyCode();const u=p.appContext.config.globalProperties.$router,r=u.currentRoute.value,h=b.primaryColor(),y=l.isClient?location.pathname:"",{go:v}=$.useRouterHelper(u);function C(n){v(`/?classify=${n}`)}const q=e.computed(()=>r.meta.category?.includes("api")),x=S.debounce(()=>l.handleScrollPosition({scrollDom:".layout-content",contentDom:".header-anchor",selectAttrName:"href",offset:100,callback:n=>{c.value.menuRef.updateActiveIndex(n.slice(1))}}),100);e.onMounted(()=>{e.nextTick(()=>{setTimeout(()=>{l.jumpElement(encodeURI(r.hash))}),setTimeout(()=>{const t=document.querySelector(".layout-content");t&&t.addEventListener("scroll",x)},1500);const n=document.querySelectorAll(".item.expand"),o=document.querySelectorAll("div.language-vue");for(let t=0;t<n.length;t++)B.useEventListener(n[t],"click",()=>{o[t].offsetHeight===0?(o[t].style.height="auto",o[t].style.visibility="visible"):(o[t].style.height="0px",o[t].style.visibility="hidden")})})});const d=n=>{l.jumpElement(`#${n.index}`)};return(n,o)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(i).b(),e.unref(i).is("api",q.value)])},[a.value?.length?(e.openBlock(),e.createBlock(e.unref(E.VftSideMenu),{key:0,ref_key:"sideMenuRef",ref:c,"default-active":a.value[0].slug,class:"toc-side-menu",menus:a.value,"is-fixed-left":!1,"default-openeds-level":"","unique-opened":!1,"disable-sub-menu-action":"","attr-mapping":{index:"slug",originIndex:"slug",originChildren:"children"},onSelect:d,onSubMenuClick:d},null,8,["default-active","menus"])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(i).e("header"))},[e.createElementVNode("h1",{class:e.normalizeClass(e.unref(i).e("title"))},e.toDisplayString(e.unref(r).meta?.title),3),e.createElementVNode("div",z,[e.unref(r).meta?.category?.length?(e.openBlock(),e.createElementBlock("div",L,[e.createVNode(e.unref(m.VftIcon),{size:14,color:e.unref(h),icon:"icon-category"},null,8,["color"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(r).meta?.category,(t,k)=>(e.openBlock(),e.createBlock(e.unref(N.VftTag),{size:"small",class:"tag",type:e.unref(l.getRandomElementForArr)(e.unref(M.COMP_TYPE),1)[0],key:k,onClick:O=>C(t)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t),1)]),_:2},1032,["type","onClick"]))),128))])):e.createCommentVNode("",!0),e.createElementVNode("div",I,[e.createVNode(e.unref(V.VftIconText),{title:"发布时间",icon:"icon-date",size:12,class:"mr-10px",distance:5,text:e.unref(f.formatToDateTime)((e.unref(r).meta?.date?new Date(e.unref(r).meta.date).getTime():new Date().getTime())-e.unref(f.getDayTimestamp)())},null,8,["text"]),e.createElementVNode("div",P,[e.createVNode(e.unref(m.VftIcon),{icon:"icon-reading",size:14,class:"mr-5px"}),e.createElementVNode("div",{class:"waline-pageview-count lh-1","data-path":e.unref(y)},"0",8,R)])])])],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(i).e("content"))},[e.renderSlot(n.$slots,"default")],2),e.createVNode(e.unref(_.VftMdComment)),o[0]||(o[0]=e.createElementVNode("ins",{class:"adsbygoogle",style:{display:"block","text-align":"center"},"data-ad-layout":"in-article","data-ad-format":"fluid","data-ad-client":"ca-pub-4046301015031382","data-ad-slot":"6525439078"},null,-1))],2))}});exports.default=j;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),p=require("../icon/index.cjs"),E=require("../icon-text/index.cjs"),N=require("../md-comment/index.cjs"),_=require("../side-menu/index.cjs"),S=require("../tag/index.cjs");require("@vueuse/core");const i=require("@vft/utils");require("../config-provider/hooks/use-global-config.cjs");const b=require("../../utils/ns-cover.cjs"),T=require("lodash-es");require("../form/index.cjs");const D=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const $=require("@vft/router"),B=require("@vft/use"),L=require("@vft/use/photoswipe"),g=require("@vft/utils/date"),M=require("./use/useCopyCode.cjs"),w=require("./utils.cjs"),z={class:"info-container"},P={key:0,class:"left"},R={class:"infos"},A={class:"reading",title:"阅读量"},I=["data-path"],j=e.defineComponent({name:"vft-md-container"}),O=e.defineComponent({...j,props:{tocList:{},scrollDom:{default:".layout-content"}},setup(s){const l=D.useNamespace("md-container"),v=e.getCurrentInstance(),c=e.ref(),a=e.computed(()=>s.tocList&&s.tocList!=="undefined"?JSON.parse(s.tocList):""),{initPhotoSwipe:y}=L.usePhotoSwipe(`.${l.e("content")} img`);y(),M.useCopyCode();const u=v.appContext.config.globalProperties.$router,r=u.currentRoute.value,h=b.primaryColor(),C=i.isClient?location.pathname:"",{go:q}=$.useRouterHelper(u);function k(n){q(`/?classify=${n}`)}const x=e.computed(()=>r.meta.category?.includes("api")),d=T.debounce(()=>i.handleScrollPosition({scrollDom:".layout-content",contentDom:".header-anchor",selectAttrName:"href",offset:100,callback:n=>{c.value.menuRef.updateActiveIndex(n.slice(1))}}),100),m=n=>{i.jumpElement(`#${n.index}`)},f=()=>{const n=document.querySelector(s.scrollDom);n&&n.removeEventListener("scroll",d)};return e.onMounted(()=>{e.nextTick(()=>{setTimeout(()=>{i.jumpElement(encodeURI(r.hash))}),setTimeout(()=>{const t=document.querySelector(".layout-content");t&&t.addEventListener("scroll",d)},1500);const n=document.querySelectorAll(".item.expand"),o=document.querySelectorAll("div.language-vue");for(let t=0;t<n.length;t++)B.useEventListener(n[t],"click",()=>{o[t].offsetHeight===0?(o[t].style.height="auto",o[t].style.visibility="visible"):(o[t].style.height="0px",o[t].style.visibility="hidden")})})}),e.onDeactivated(()=>{f()}),e.onBeforeMount(()=>{f()}),(n,o)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(l).b(),e.unref(l).is("api",x.value)])},[a.value?.length?(e.openBlock(),e.createBlock(e.unref(_.VftSideMenu),{key:0,ref_key:"sideMenuRef",ref:c,"default-active":a.value[0].slug,class:"toc-side-menu",menus:a.value,"is-fixed-left":!1,"default-openeds-level":"","unique-opened":!1,"disable-sub-menu-action":"","attr-mapping":{index:"slug"},onSelect:m,onSubMenuClick:m},null,8,["default-active","menus"])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("header"))},[e.createElementVNode("h1",{class:e.normalizeClass(e.unref(l).e("title"))},e.toDisplayString(e.unref(r).meta?.title),3),e.createElementVNode("div",z,[e.unref(r).meta?.category?.length?(e.openBlock(),e.createElementBlock("div",P,[e.createVNode(e.unref(p.VftIcon),{size:14,color:e.unref(h),icon:"icon-category"},null,8,["color"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(r).meta?.category,(t,V)=>(e.openBlock(),e.createBlock(e.unref(S.VftTag),{size:"small",class:"tag",type:e.unref(i.getRandomElementForArr)(e.unref(w.COMP_TYPE),1)[0],key:V,onClick:F=>k(t)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t),1)]),_:2},1032,["type","onClick"]))),128))])):e.createCommentVNode("",!0),e.createElementVNode("div",R,[e.createVNode(e.unref(E.VftIconText),{title:"发布时间",icon:"icon-date",size:12,class:"mr-10px",distance:5,text:e.unref(g.formatToDateTime)((e.unref(r).meta?.date?new Date(e.unref(r).meta.date).getTime():new Date().getTime())-e.unref(g.getDayTimestamp)())},null,8,["text"]),e.createElementVNode("div",A,[e.createVNode(e.unref(p.VftIcon),{icon:"icon-reading",size:14,class:"mr-5px"}),e.createElementVNode("div",{class:"waline-pageview-count lh-1","data-path":e.unref(C)},"0",8,I)])])])],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("content"))},[e.renderSlot(n.$slots,"default")],2),e.createVNode(e.unref(N.VftMdComment)),o[0]||(o[0]=e.createElementVNode("ins",{class:"adsbygoogle",style:{display:"block","text-align":"center"},"data-ad-layout":"in-article","data-ad-format":"fluid","data-ad-client":"ca-pub-4046301015031382","data-ad-slot":"6525439078"},null,-1))],2))}});exports.default=O;
@@ -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"});const d=require("@vft/use"),t=require("vue");function v(l,a,o){const i=t.ref(!1),m=o.props?.dragWidthCfg?.minWidth||200;t.onMounted(()=>{o.props?.dragWidthCfg&&t.nextTick(()=>{d.useDebounceFn(h,100)()})});function c(e){const u=t.unref(e);return u?Reflect.has(u,"$el")?t.unref(e)?.$el:t.unref(e):null}function p(e,u,s){document.onmousemove=function(r){let n=e.left+(r.clientX-s);r=r||window.event;const f=o.props?.dragWidthCfg?.maxWidth||800,W=t.unref(m);return n<=W?void 0:(n<0&&(n=0),n>f&&(n=f),e.style.left=n+"px",d.useThrottleFn(()=>{o.emit("update:width",n+"px")},150)(),!1)}}function g(e){document.onmouseup=function(){document.onmousemove=null,document.onmouseup=null,i.value=!0,t.nextTick(()=>{o.emit("dragWidthEnd"),setTimeout(()=>{i.value=!1},100)}),e.releaseCapture?.()}}function h(){const e=c(a);if(!e)return;const u=c(l);u&&(e.onmousedown=s=>{const r=s?.clientX;return e.left=e.offsetLeft,p(e,u,r),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.433";exports.version=e;
@@ -1,6 +1,6 @@
1
1
  declare const _default: {
2
2
  "name": "vft",
3
- "version": "0.0.430",
3
+ "version": "0.0.433",
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.430",
3
+ "version": "0.0.433",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "es/index.js",
@@ -56,11 +56,11 @@
56
56
  "sortablejs": "1.15.0",
57
57
  "photoswipe": "5.4.4",
58
58
  "@vft/router": "0.0.67",
59
- "@vft/store": "0.0.54",
59
+ "@vft/store": "0.0.57",
60
60
  "@vft/constants": "0.0.75",
61
+ "@vft/directives": "0.0.36",
61
62
  "@vft/utils": "0.0.144",
62
- "@vft/use": "0.0.89",
63
- "@vft/directives": "0.0.36"
63
+ "@vft/use": "0.0.89"
64
64
  },
65
65
  "vetur": {
66
66
  "tags": "tags.json",