vft 0.0.427 → 0.0.429
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.
- package/dist/index.css +1 -1
- package/es/components/carousel/use-carousel.js +1 -1
- package/es/components/dialog/use-dialog.js +21 -21
- package/es/components/horizontal-menu/index.d.ts +2 -10
- package/es/components/input/input.vue2.js +4 -4
- package/es/components/input-tag/composables/use-input-tag.js +1 -1
- package/es/components/md-container/md-container.vue2.js +106 -75
- package/es/components/md-container/use/index.d.ts +0 -1
- package/es/components/md-container/use/index.js +2 -4
- package/es/components/menu/index.d.ts +8 -0
- package/es/components/menu/menu-item.vue.d.ts +2 -2
- package/es/components/menu/menu-item.vue2.js +9 -10
- package/es/components/menu/menu.vue.d.ts +5 -1
- package/es/components/menu/menu.vue2.js +89 -82
- package/es/components/menu/sub-menu.vue.d.ts +3 -3
- package/es/components/menu/sub-menu.vue2.js +20 -24
- package/es/components/side-menu/index.d.ts +21 -0
- package/es/components/side-menu/index.js +3 -4
- package/es/components/side-menu/side-menu.vue.d.ts +12 -0
- package/es/components/side-menu/side-menu.vue2.js +157 -136
- package/es/components/side-menu/types.d.ts +3 -3
- package/es/components/side-menu/types.js +1 -1
- package/es/components/super-form/super-form-item.vue2.js +1 -1
- package/es/package.json.d.ts +1 -1
- package/es/package.json.js +1 -1
- package/es/utils/vue/vnode.js +1 -1
- package/lib/components/dialog/use-dialog.cjs +1 -1
- package/lib/components/horizontal-menu/index.d.ts +2 -10
- package/lib/components/input/input.vue2.cjs +1 -1
- package/lib/components/md-container/md-container.vue2.cjs +1 -1
- package/lib/components/md-container/use/index.cjs +1 -1
- package/lib/components/md-container/use/index.d.ts +0 -1
- package/lib/components/menu/index.d.ts +8 -0
- package/lib/components/menu/menu-item.vue.d.ts +2 -2
- package/lib/components/menu/menu-item.vue2.cjs +1 -1
- package/lib/components/menu/menu.vue.d.ts +5 -1
- package/lib/components/menu/menu.vue2.cjs +1 -1
- package/lib/components/menu/sub-menu.vue.d.ts +3 -3
- package/lib/components/menu/sub-menu.vue2.cjs +1 -1
- package/lib/components/side-menu/index.cjs +1 -1
- package/lib/components/side-menu/index.d.ts +21 -0
- package/lib/components/side-menu/side-menu.vue.d.ts +12 -0
- package/lib/components/side-menu/side-menu.vue2.cjs +1 -1
- package/lib/components/side-menu/types.cjs +1 -1
- package/lib/components/side-menu/types.d.ts +3 -3
- package/lib/package.json.cjs +1 -1
- package/lib/package.json.d.ts +1 -1
- package/package.json +4 -4
- package/theme-style/index.css +1 -1
- package/theme-style/src/md-container.scss +30 -3
- package/theme-style/vft-md-container.css +1 -1
- package/web-types.json +1 -1
- package/es/components/md-container/use/useActiveHeaderLinks.d.ts +0 -7
- package/es/components/md-container/use/useActiveHeaderLinks.js +0 -52
- package/lib/components/md-container/use/useActiveHeaderLinks.cjs +0 -1
- package/lib/components/md-container/use/useActiveHeaderLinks.d.ts +0 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),d=require("@vft/utils"),p=require("../icon/index.cjs"),b=require("../divider/index.cjs"),A=require("../tooltip/index.cjs");require("@vueuse/core");const M=require("../../utils/error.cjs");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");require("../form/index.cjs");const m=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),d=require("@vft/utils"),p=require("../icon/index.cjs"),b=require("../divider/index.cjs"),A=require("../tooltip/index.cjs");require("@vueuse/core");const M=require("../../utils/error.cjs");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");require("../form/index.cjs");const m=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("./use-menu.cjs"),U=["title"],h=e.defineComponent({name:"vft-menu-item",inheritAttrs:!1}),E=e.defineComponent({...h,props:{index:{},route:{},disabled:{type:Boolean},icon:{},title:{},isAloneUse:{type:Boolean},divider:{type:Boolean},className:{},reverse:{type:Boolean}},emits:["click","mouseenter","mouseleave"],setup(n,{emit:y}){const s=y,u=m.useNamespace("menu-item"),f=e.getCurrentInstance(),q=e.useAttrs(),C=m.useNamespace("menu"),a=m.useNamespace("menu-item"),o=n.isAloneUse?null:e.inject("rootMenu");!o&&!n.isAloneUse&&M.throwError(u.b(),"can not inject root menu");const{parentMenu:v,indexPath:k}=$.default(f,e.computed(()=>n.index)),c=n.isAloneUse?null:e.inject(`subMenu:${v.value.uid}`);!c&&!n.isAloneUse&&M.throwError(u.b(),"can not inject sub menu");const B=e.computed(()=>n.index===o?.activeIndex),r=e.reactive({index:n.index,indexPath:k,active:B}),N=()=>{n.disabled||(o?.handleMenuItemClick({...q,index:n.index,indexPath:k.value,route:n.route}),s("click",r))},i=e.computed(()=>d.singleAttrToObj(n.icon,"icon")),g=e.computed(()=>d.renderTNode(f,"title"));return e.onMounted(()=>{n.isAloneUse||(c?.addSubMenu(r),o?.addMenuItem(r))}),e.onBeforeUnmount(()=>{n.isAloneUse||(c?.removeSubMenu(r),o?.removeMenuItem(r))}),(t,l)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[t.reverse&&t.divider?(e.openBlock(),e.createBlock(e.unref(b.VftDivider),{key:0,"margin-y":"0"})):e.createCommentVNode("",!0),e.createElementVNode("li",{class:e.normalizeClass([t.className,e.unref(a).b(),e.unref(a).is("active",t.isAloneUse?!1:B.value),e.unref(a).is("disabled",t.disabled)]),onMouseenter:l[0]||(l[0]=V=>s("mouseenter")),onMouseleave:l[1]||(l[1]=V=>s("mouseleave")),role:"menuitem",tabindex:"-1",onClick:N},[e.unref(v)?.type?.name==="vft-menu"&&e.unref(o)?.props.collapse&&t.$slots.title?(e.openBlock(),e.createBlock(e.unref(A.VftTooltip),{key:0,placement:"right","fallback-placements":["left"],persistent:e.unref(o).props.persistent},{content:e.withCtx(()=>[e.renderSlot(t.$slots,"title")]),default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(C).be("tooltip","trigger"))},[i.value?.icon?(e.openBlock(),e.createBlock(e.unref(p.VftIcon),e.normalizeProps(e.mergeProps({key:0},i.value)),null,16)):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"default")],2)]),_:3},8,["persistent"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[t.$slots?.default?e.renderSlot(t.$slots,"default",{key:0}):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[i.value?.icon?(e.openBlock(),e.createBlock(e.unref(p.VftIcon),e.normalizeProps(e.mergeProps({key:0},i.value)),null,16)):e.createCommentVNode("",!0),e.createElementVNode("span",{class:e.normalizeClass(e.unref(u).e("text")),title:t.title},[e.createVNode(e.unref(d.VNode),{content:g.value},null,8,["content"])],10,U)],64))],64))],34),!t.reverse&&t.divider?(e.openBlock(),e.createBlock(e.unref(b.VftDivider),{key:1,"margin-y":"0"})):e.createCommentVNode("",!0)],64))}});exports.default=E;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { NavigationFailure } from 'vue-router';
|
|
2
|
-
import {
|
|
2
|
+
import type { SubMenuProps } from './sub-menu.vue';
|
|
3
3
|
import type { MenuItemClicked } from './types';
|
|
4
4
|
export interface MenuProps {
|
|
5
5
|
/** 菜单展示模式 */
|
|
@@ -22,6 +22,8 @@ export interface MenuProps {
|
|
|
22
22
|
ellipsis?: boolean;
|
|
23
23
|
horizontalMenuProps?: Partial<SubMenuProps>;
|
|
24
24
|
persistent?: boolean;
|
|
25
|
+
/** 禁用子菜单的展开收缩行为 */
|
|
26
|
+
disableSubMenuAction?: boolean;
|
|
25
27
|
}
|
|
26
28
|
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<MenuProps>>, {
|
|
27
29
|
open: (index: string) => void;
|
|
@@ -29,6 +31,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
29
31
|
handleResize: () => void;
|
|
30
32
|
menu: import("vue").Ref<HTMLUListElement | undefined, HTMLUListElement | undefined>;
|
|
31
33
|
inSubMenu: import("vue").Ref<boolean, boolean>;
|
|
34
|
+
updateActiveIndex: (val: string) => void;
|
|
35
|
+
activeIndex: import("vue").Ref<string | undefined, string | undefined>;
|
|
32
36
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
33
37
|
"update:collapse": (val: boolean) => void;
|
|
34
38
|
"sub-menu-click": (val: any) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("vue"),q=require("@vft/utils"),H=require("../icon/index.cjs"),J=require("@vueuse/core");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");const K=require("../../utils/vue/vnode.cjs");require("../form/index.cjs");const P=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const Q=require("./menu-collapse-transition.vue.cjs"),X=require("./sub-menu.vue2.cjs"),Y=require("./use-menu-css-var.cjs"),Z=require("./utils/menu-bar.cjs"),_=u.defineComponent({name:"vft-menu"}),ee=u.defineComponent({..._,props:{mode:{default:"vertical"},defaultActive:{default:""},defaultOpeneds:{default:()=>[]},uniqueOpened:{type:Boolean},router:{type:Boolean},menuTrigger:{default:"hover"},collapse:{type:Boolean},collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},horizontalMenuProps:{},persistent:{type:Boolean,default:!0},disableSubMenuAction:{type:Boolean,default:!1}},emits:["update:collapse","sub-menu-click","select","close","open"],setup(n,{expose:k,emit:w}){const m=w,b=P.useNamespace("menu"),A=u.useSlots(),h=u.getCurrentInstance(),y=h.appContext.config.globalProperties.$router,i=u.ref(),x=P.useNamespace("sub-menu"),f=u.ref(-1),a=u.ref(n.defaultOpeneds&&!n.collapse?n.defaultOpeneds.slice(0):[]),s=u.ref(n.defaultActive),r=u.ref({}),M=u.ref({}),R=u.computed(()=>n.mode==="horizontal"||n.mode==="vertical"&&n.collapse),E=()=>{const e=s.value&&r.value[s.value];if(!e||n.mode==="horizontal"||n.collapse)return;e.indexPath.forEach(l=>{const o=M.value[l];o&&p(l,o.indexPath)})},p=(e,t,l)=>{a.value.includes(e)||(n.uniqueOpened&&(a.value=a.value.filter(o=>t.includes(o))),a.value.push(e),m("open",{index:e,indexPath:t,e:l}))},g=(e,t,l)=>{const o=a.value.indexOf(e);o!==-1&&a.value.splice(o,1),m("close",{index:e,indexPath:t,event:l})},W=({e,index:t,indexPath:l,isFirstLevel:o=!1})=>{if(!o){const c=a.value.includes(t);s.value=t,n.disableSubMenuAction||(c?g(t,l,e):p(t,l,e))}m("sub-menu-click",{e,index:t,indexPath:l})},V=e=>{(n.mode==="horizontal"||n.collapse)&&(a.value=[]);const{index:t,indexPath:l}=e;if(!(q.isNullOrUndefined(t)||q.isNullOrUndefined(l))){if(n.router&&y){const o=e.route||t,c=y.push(o).then(d=>(d||(s.value=t),d));m("select",e,c)}else s.value=t,m("select",e);q.isMobile()&&setTimeout(()=>{a.value=[]},100)}},C=e=>{const t=r.value,l=t[e]||s.value&&t[s.value]||t[n.defaultActive];l?s.value=l.index:s.value=e},$=()=>{if(!i.value)return-1;const e=Array.from(i.value?.childNodes??[]).filter(S=>S.nodeName!=="#text"||S.nodeValue),t=64,l=Number.parseInt(getComputedStyle(i.value).paddingLeft,10),o=Number.parseInt(getComputedStyle(i.value).paddingRight,10),c=i.value.clientWidth-l-o;let d=0,v=0;return e.forEach((S,G)=>{d+=S.offsetWidth||0,d<=c-t&&(v=G+1)}),v===e.length?-1:v},D=(e,t=33.34)=>{let l;return()=>{l&&clearTimeout(l),l=setTimeout(()=>{e()},t)}};let I=!0;const T=()=>{const e=()=>{f.value=-1,u.nextTick(()=>{f.value=$()})};I?e():D(e)(),I=!1};u.watch(()=>n.defaultActive,e=>{r.value[e]||(s.value=""),C(e)}),u.watch(()=>n.collapse,e=>{e&&(a.value=[])}),u.watch(r.value,E);let z;u.watchEffect(()=>{n.mode==="horizontal"&&n.ellipsis?z=J.useResizeObserver(i,T).stop:z?.()});const O=e=>{M.value[e.index]=e},B=e=>{delete M.value[e.index]},L=e=>{r.value[e.index]=e},U=e=>{delete r.value[e.index]},N=u.ref(!1),j=u.ref(),F=u.ref();return u.provide("rootMenu",u.reactive({props:h.props,openedMenus:a,items:r,subMenus:M,activeIndex:s,isMenuPopup:R,inSubMenu:N,inSubMenuMouseEnterTimer:j,inSubMenuMouseleaveTimer:F,addMenuItem:L,removeMenuItem:U,addSubMenu:O,removeSubMenu:B,openMenu:p,closeMenu:g,handleMenuItemClick:V,handleSubMenuClick:W})),u.provide(`subMenu:${h.uid}`,{addSubMenu:O,removeSubMenu:B,mouseInChild:u.ref(!1),level:0}),u.onMounted(()=>{n.mode==="horizontal"&&new Z.default(h.vnode.el,b.namespace.value)}),k({open:e=>{const{indexPath:t}=M.value[e];t.forEach(l=>p(l,t))},close:g,handleResize:T,menu:i,inSubMenu:N,updateActiveIndex:C,activeIndex:s}),()=>{let e=A.default?.()??[];const t=[];if(n.mode==="horizontal"&&i.value){const c=K.flattedChildren(e),d=f.value===-1?c:c.slice(0,f.value),v=f.value===-1?[]:c.slice(f.value);v?.length&&n.ellipsis&&(e=d,t.push(u.h(X.default,{index:"sub-menu-more",class:x.e("hide-arrow"),...n.horizontalMenuProps},{title:()=>u.h(H.VftIcon,{icon:"icon-menu-line",class:x.e("icon-more")}),default:()=>v})))}const l=Y.useMenuCssVar(h.props,0),o=u.h("ul",{key:String(n.collapse),role:"menubar",ref:i,style:l.value,class:{[b.b()]:!0,[b.m(n.mode)]:!0,[b.m("collapse")]:n.collapse}},[...e,...t]);return n.collapseTransition&&n.mode==="vertical"?u.h(Q.default,()=>o):o}}});exports.default=ee;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import type { ToolTipProps } from 'vft/es/components/tooltip';
|
|
2
|
+
import type { IconProps } from 'vft/es/components/icon';
|
|
3
|
+
import type { ClassType } from '../types';
|
|
4
4
|
export interface SubMenuProps {
|
|
5
5
|
index: string;
|
|
6
6
|
showTimeout?: number;
|
|
@@ -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:{
|
|
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 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("@vueuse/core");require("@vft/utils");require("../config-provider/hooks/use-global-config.cjs");require("vue");const r=require("../../utils/vue/install.cjs");require("lodash-es");require("../form/index.cjs");const u=require("./side-menu.vue2.cjs")
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("@vueuse/core");require("@vft/utils");require("../config-provider/hooks/use-global-config.cjs");require("vue");const r=require("../../utils/vue/install.cjs");require("lodash-es");require("../form/index.cjs");const u=require("./side-menu.vue2.cjs"),e=r.withInstall(u.default);exports.VftSideMenu=e;exports.default=e;
|
|
@@ -25,6 +25,10 @@ export declare const VftSideMenu: import("vft/es/utils").SFCWithInstall<import("
|
|
|
25
25
|
type: import("vue").PropType<boolean>;
|
|
26
26
|
default: boolean;
|
|
27
27
|
};
|
|
28
|
+
disableSubMenuAction: {
|
|
29
|
+
type: import("vue").PropType<boolean>;
|
|
30
|
+
default: boolean;
|
|
31
|
+
};
|
|
28
32
|
isFixedLeft: {
|
|
29
33
|
type: import("vue").PropType<boolean>;
|
|
30
34
|
default: boolean;
|
|
@@ -75,6 +79,10 @@ export declare const VftSideMenu: import("vft/es/utils").SFCWithInstall<import("
|
|
|
75
79
|
type: import("vue").PropType<boolean>;
|
|
76
80
|
default: boolean;
|
|
77
81
|
};
|
|
82
|
+
defaultOpenedsLevel: {
|
|
83
|
+
type: import("vue").PropType<number | boolean>;
|
|
84
|
+
default: boolean;
|
|
85
|
+
};
|
|
78
86
|
}>, {
|
|
79
87
|
sideRef: import("vue").Ref<any, any>;
|
|
80
88
|
jumpActiveDom: ({ activeDom, offset, delay }?: {
|
|
@@ -82,6 +90,7 @@ export declare const VftSideMenu: import("vft/es/utils").SFCWithInstall<import("
|
|
|
82
90
|
offset?: number | undefined;
|
|
83
91
|
delay?: number | undefined;
|
|
84
92
|
}) => void;
|
|
93
|
+
menuRef: import("vue").Ref<any, any>;
|
|
85
94
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
86
95
|
"update:collapse": (val: boolean) => void;
|
|
87
96
|
"update:width": (val: string | number) => void;
|
|
@@ -92,6 +101,7 @@ export declare const VftSideMenu: import("vft/es/utils").SFCWithInstall<import("
|
|
|
92
101
|
indexPath: string[];
|
|
93
102
|
}) => void;
|
|
94
103
|
subMenuClick: (val: any) => void;
|
|
104
|
+
subMenuOpenClick: (val: any) => void;
|
|
95
105
|
menuItemMouseenter: (val: any) => void;
|
|
96
106
|
menuItemMouseleave: (val: any) => void;
|
|
97
107
|
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
@@ -121,6 +131,10 @@ export declare const VftSideMenu: import("vft/es/utils").SFCWithInstall<import("
|
|
|
121
131
|
type: import("vue").PropType<boolean>;
|
|
122
132
|
default: boolean;
|
|
123
133
|
};
|
|
134
|
+
disableSubMenuAction: {
|
|
135
|
+
type: import("vue").PropType<boolean>;
|
|
136
|
+
default: boolean;
|
|
137
|
+
};
|
|
124
138
|
isFixedLeft: {
|
|
125
139
|
type: import("vue").PropType<boolean>;
|
|
126
140
|
default: boolean;
|
|
@@ -171,6 +185,10 @@ export declare const VftSideMenu: import("vft/es/utils").SFCWithInstall<import("
|
|
|
171
185
|
type: import("vue").PropType<boolean>;
|
|
172
186
|
default: boolean;
|
|
173
187
|
};
|
|
188
|
+
defaultOpenedsLevel: {
|
|
189
|
+
type: import("vue").PropType<number | boolean>;
|
|
190
|
+
default: boolean;
|
|
191
|
+
};
|
|
174
192
|
}>> & Readonly<{
|
|
175
193
|
onSelect?: ((val: {
|
|
176
194
|
route: string;
|
|
@@ -181,6 +199,7 @@ export declare const VftSideMenu: import("vft/es/utils").SFCWithInstall<import("
|
|
|
181
199
|
onDragEnd?: ((oldIndex: import("sortablejs").SortableEvent, newIndex: import("sortablejs").SortableEvent) => any) | undefined;
|
|
182
200
|
onDragWidthEnd?: (() => any) | undefined;
|
|
183
201
|
onSubMenuClick?: ((val: any) => any) | undefined;
|
|
202
|
+
onSubMenuOpenClick?: ((val: any) => any) | undefined;
|
|
184
203
|
onMenuItemMouseenter?: ((val: any) => any) | undefined;
|
|
185
204
|
onMenuItemMouseleave?: ((val: any) => any) | undefined;
|
|
186
205
|
}>, {
|
|
@@ -188,6 +207,7 @@ export declare const VftSideMenu: import("vft/es/utils").SFCWithInstall<import("
|
|
|
188
207
|
width: string | number;
|
|
189
208
|
collapse: boolean;
|
|
190
209
|
uniqueOpened: boolean;
|
|
210
|
+
disableSubMenuAction: boolean;
|
|
191
211
|
isFixedLeft: boolean;
|
|
192
212
|
collapseWidth: string | number;
|
|
193
213
|
menuTopBottomHeight: number;
|
|
@@ -200,6 +220,7 @@ export declare const VftSideMenu: import("vft/es/utils").SFCWithInstall<import("
|
|
|
200
220
|
autoScrollActiveDom: boolean | number;
|
|
201
221
|
openMenuCollapse: boolean;
|
|
202
222
|
disabledJudgeTurnOver: boolean;
|
|
223
|
+
defaultOpenedsLevel: number | boolean;
|
|
203
224
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>> & Record<string, any>;
|
|
204
225
|
export default VftSideMenu;
|
|
205
226
|
export * from './types';
|
|
@@ -44,6 +44,9 @@ export interface MenuConProps {
|
|
|
44
44
|
defaultActive?: string;
|
|
45
45
|
/** 默认展开 */
|
|
46
46
|
defaultOpeneds?: Array<string | number>;
|
|
47
|
+
defaultOpenedsLevel?: number | boolean;
|
|
48
|
+
/** 禁用子菜单的展开收缩行为 */
|
|
49
|
+
disableSubMenuAction?: boolean;
|
|
47
50
|
}
|
|
48
51
|
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<MenuConProps>, {
|
|
49
52
|
isFixedLeft: boolean;
|
|
@@ -59,6 +62,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
59
62
|
height: string;
|
|
60
63
|
menuTopBottomHeight: number;
|
|
61
64
|
useRouterJump: boolean;
|
|
65
|
+
disableSubMenuAction: boolean;
|
|
66
|
+
defaultOpenedsLevel: boolean;
|
|
62
67
|
}>>, {
|
|
63
68
|
sideRef: import("vue").Ref<any, any>;
|
|
64
69
|
jumpActiveDom: ({ activeDom, offset, delay }?: {
|
|
@@ -66,6 +71,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
66
71
|
offset?: number | undefined;
|
|
67
72
|
delay?: number | undefined;
|
|
68
73
|
}) => void;
|
|
74
|
+
menuRef: import("vue").Ref<any, any>;
|
|
69
75
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
70
76
|
"update:collapse": (val: boolean) => void;
|
|
71
77
|
"update:width": (val: string | number) => void;
|
|
@@ -76,6 +82,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
76
82
|
indexPath: string[];
|
|
77
83
|
}) => void;
|
|
78
84
|
subMenuClick: (val: any) => void;
|
|
85
|
+
subMenuOpenClick: (val: any) => void;
|
|
79
86
|
menuItemMouseenter: (val: any) => void;
|
|
80
87
|
menuItemMouseleave: (val: any) => void;
|
|
81
88
|
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<MenuConProps>, {
|
|
@@ -92,6 +99,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
92
99
|
height: string;
|
|
93
100
|
menuTopBottomHeight: number;
|
|
94
101
|
useRouterJump: boolean;
|
|
102
|
+
disableSubMenuAction: boolean;
|
|
103
|
+
defaultOpenedsLevel: boolean;
|
|
95
104
|
}>>> & Readonly<{
|
|
96
105
|
onSelect?: ((val: {
|
|
97
106
|
route: string;
|
|
@@ -102,6 +111,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
102
111
|
onDragEnd?: ((oldIndex: Sortable.SortableEvent, newIndex: Sortable.SortableEvent) => any) | undefined;
|
|
103
112
|
onDragWidthEnd?: (() => any) | undefined;
|
|
104
113
|
onSubMenuClick?: ((val: any) => any) | undefined;
|
|
114
|
+
onSubMenuOpenClick?: ((val: any) => any) | undefined;
|
|
105
115
|
onMenuItemMouseenter?: ((val: any) => any) | undefined;
|
|
106
116
|
onMenuItemMouseleave?: ((val: any) => any) | undefined;
|
|
107
117
|
}>, {
|
|
@@ -109,6 +119,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
109
119
|
width: string | number;
|
|
110
120
|
collapse: boolean;
|
|
111
121
|
uniqueOpened: boolean;
|
|
122
|
+
disableSubMenuAction: boolean;
|
|
112
123
|
isFixedLeft: boolean;
|
|
113
124
|
collapseWidth: string | number;
|
|
114
125
|
menuTopBottomHeight: number;
|
|
@@ -121,6 +132,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
121
132
|
autoScrollActiveDom: boolean | number;
|
|
122
133
|
openMenuCollapse: boolean;
|
|
123
134
|
disabledJudgeTurnOver: boolean;
|
|
135
|
+
defaultOpenedsLevel: number | boolean;
|
|
124
136
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
125
137
|
export default _default;
|
|
126
138
|
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("vue"),R=require("@vft/router"),
|
|
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 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
export type MenuType = Pick<RouteLocationNormalized, 'path' | 'meta'> & {
|
|
1
|
+
export type MenuType = {
|
|
3
2
|
children?: MenuType[];
|
|
4
3
|
title: string;
|
|
5
4
|
icon?: string;
|
|
6
|
-
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
};
|
|
7
7
|
export type MenuAttrMapping = {
|
|
8
8
|
path?: string;
|
|
9
9
|
children?: string;
|
package/lib/package.json.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.429";exports.version=e;
|
package/lib/package.json.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vft",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.429",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "lib/index.cjs",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -55,12 +55,12 @@
|
|
|
55
55
|
"resize-detector": "0.3.0",
|
|
56
56
|
"sortablejs": "1.15.0",
|
|
57
57
|
"photoswipe": "5.4.4",
|
|
58
|
-
"@vft/
|
|
59
|
-
"@vft/use": "0.0.87",
|
|
58
|
+
"@vft/utils": "0.0.144",
|
|
60
59
|
"@vft/router": "0.0.67",
|
|
60
|
+
"@vft/use": "0.0.89",
|
|
61
61
|
"@vft/store": "0.0.54",
|
|
62
62
|
"@vft/directives": "0.0.36",
|
|
63
|
-
"@vft/
|
|
63
|
+
"@vft/constants": "0.0.75"
|
|
64
64
|
},
|
|
65
65
|
"vetur": {
|
|
66
66
|
"tags": "tags.json",
|