vxe-pc-ui 4.7.13 → 4.7.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/es/icon/style.css +1 -1
  2. package/es/link/src/link.js +10 -4
  3. package/es/link/style.css +4 -0
  4. package/es/link/style.min.css +1 -1
  5. package/es/menu/src/menu.js +17 -9
  6. package/es/style.css +1 -1
  7. package/es/style.min.css +1 -1
  8. package/es/tabs/src/tabs.js +1 -1
  9. package/es/ui/index.js +1 -1
  10. package/es/ui/src/log.js +1 -1
  11. package/es/vxe-link/style.css +4 -0
  12. package/es/vxe-link/style.min.css +1 -1
  13. package/lib/icon/style/style.css +1 -1
  14. package/lib/icon/style/style.min.css +1 -1
  15. package/lib/index.umd.js +36 -11
  16. package/lib/index.umd.min.js +1 -1
  17. package/lib/link/src/link.js +12 -3
  18. package/lib/link/src/link.min.js +1 -1
  19. package/lib/link/style/style.css +4 -0
  20. package/lib/link/style/style.min.css +1 -1
  21. package/lib/menu/src/menu.js +21 -6
  22. package/lib/menu/src/menu.min.js +1 -1
  23. package/lib/style.css +1 -1
  24. package/lib/style.min.css +1 -1
  25. package/lib/tabs/src/tabs.js +1 -1
  26. package/lib/tabs/src/tabs.min.js +1 -1
  27. package/lib/ui/index.js +1 -1
  28. package/lib/ui/index.min.js +1 -1
  29. package/lib/ui/src/log.js +1 -1
  30. package/lib/ui/src/log.min.js +1 -1
  31. package/lib/vxe-link/style/style.css +4 -0
  32. package/lib/vxe-link/style/style.min.css +1 -1
  33. package/package.json +2 -2
  34. package/packages/link/src/link.ts +10 -4
  35. package/packages/menu/src/menu.ts +17 -3
  36. package/packages/tabs/src/tabs.ts +1 -1
  37. package/styles/components/link.scss +4 -0
  38. package/types/components/link.d.ts +2 -0
  39. /package/es/icon/{iconfont.1752718936571.ttf → iconfont.1752756638770.ttf} +0 -0
  40. /package/es/icon/{iconfont.1752718936571.woff → iconfont.1752756638770.woff} +0 -0
  41. /package/es/icon/{iconfont.1752718936571.woff2 → iconfont.1752756638770.woff2} +0 -0
  42. /package/es/{iconfont.1752718936571.ttf → iconfont.1752756638770.ttf} +0 -0
  43. /package/es/{iconfont.1752718936571.woff → iconfont.1752756638770.woff} +0 -0
  44. /package/es/{iconfont.1752718936571.woff2 → iconfont.1752756638770.woff2} +0 -0
  45. /package/lib/icon/style/{iconfont.1752718936571.ttf → iconfont.1752756638770.ttf} +0 -0
  46. /package/lib/icon/style/{iconfont.1752718936571.woff → iconfont.1752756638770.woff} +0 -0
  47. /package/lib/icon/style/{iconfont.1752718936571.woff2 → iconfont.1752756638770.woff2} +0 -0
  48. /package/lib/{iconfont.1752718936571.ttf → iconfont.1752756638770.ttf} +0 -0
  49. /package/lib/{iconfont.1752718936571.woff → iconfont.1752756638770.woff} +0 -0
  50. /package/lib/{iconfont.1752718936571.woff2 → iconfont.1752756638770.woff2} +0 -0
@@ -17,6 +17,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
17
17
  target: String,
18
18
  status: String,
19
19
  title: [String, Number],
20
+ disabled: Boolean,
20
21
  icon: String,
21
22
  routerLink: Object,
22
23
  underline: {
@@ -70,7 +71,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
70
71
  };
71
72
  const linkPrivateMethods = {};
72
73
  const clickEvent = evnt => {
73
- dispatchEvent('click', {}, evnt);
74
+ const {
75
+ disabled
76
+ } = props;
77
+ if (!disabled) {
78
+ dispatchEvent('click', {}, evnt);
79
+ }
74
80
  };
75
81
  Object.assign($xeLink, linkMethods, linkPrivateMethods);
76
82
  const renderContent = () => {
@@ -96,6 +102,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
96
102
  href,
97
103
  title,
98
104
  underline,
105
+ disabled,
99
106
  routerLink
100
107
  } = props;
101
108
  const permissionInfo = computePermissionInfo.value;
@@ -108,11 +115,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
108
115
  class: ['vxe-link', {
109
116
  [`size--${vSize}`]: vSize,
110
117
  [`theme--${status}`]: status,
118
+ 'is--disabled': disabled,
111
119
  'is--underline': underline
112
120
  }],
113
121
  title,
114
122
  target,
115
- to: routerLink,
123
+ to: disabled ? null : routerLink,
116
124
  onClick: clickEvent
117
125
  }, {
118
126
  default() {
@@ -125,9 +133,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
125
133
  class: ['vxe-link', {
126
134
  [`size--${vSize}`]: vSize,
127
135
  [`theme--${status}`]: status,
136
+ 'is--disabled': disabled,
128
137
  'is--underline': underline
129
138
  }],
130
- href,
139
+ href: disabled ? null : href,
131
140
  target,
132
141
  title,
133
142
  onClick: clickEvent
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeLink",props:{href:String,target:String,status:String,title:[String,Number],icon:String,routerLink:Object,underline:{type:Boolean,default:()=>(0,_ui.getConfig)().link.underline},permissionCode:[String,Number],content:[String,Number],size:{type:String,default:()=>(0,_ui.getConfig)().link.size||(0,_ui.getConfig)().size}},emits:["click"],setup(o,e){const{slots:n,emit:r}=e;var t=_xeUtils.default.uniqueId();const a=(0,_ui.useSize)(o)["computeSize"],c=(0,_ui.usePermission)(o)["computePermissionInfo"],_=(0,_vue.ref)();var i=(0,_vue.reactive)({});const u={refElem:_},s={},v={xID:t,props:o,context:e,reactData:i,getRefMaps:()=>u,getComputeMaps:()=>s},l=(e,t,i)=>{r(e,(0,_ui.createEvent)(i,{$link:v},t))};t={dispatchEvent:l};const p=e=>{l("click",{},e)},d=(Object.assign(v,t,{}),()=>{var{icon:e,content:t}=o,i=n.default,r=n.icon,t=_xeUtils.default.toValueString(t);return[r||e?(0,_vue.h)("span",{class:"vxe-link--icon"},r?(0,_vn.getSlotVNs)(r({})):[(0,_vue.h)("i",{class:e})]):(0,_ui.renderEmptyElement)(v),i||t?(0,_vue.h)("span",{class:"vxe-link--content"},i?i({}):t):(0,_ui.renderEmptyElement)(v)]});return v.renderVN=()=>{var{status:e,target:t,href:i,title:r,underline:n,routerLink:u}=o,s=c.value,l=a.value;return s.visible?u?(0,_vue.h)((0,_vue.resolveComponent)("router-link"),{class:["vxe-link",{["size--"+l]:l,["theme--"+e]:e,"is--underline":n}],title:r,target:t,to:u,onClick:p},{default(){return d()}}):(0,_vue.h)("a",{ref:_,class:["vxe-link",{["size--"+l]:l,["theme--"+e]:e,"is--underline":n}],href:i,target:t,title:r,onClick:p},d()):(0,_ui.renderEmptyElement)(v)},v},render(){return this.renderVN()}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeLink",props:{href:String,target:String,status:String,title:[String,Number],disabled:Boolean,icon:String,routerLink:Object,underline:{type:Boolean,default:()=>(0,_ui.getConfig)().link.underline},permissionCode:[String,Number],content:[String,Number],size:{type:String,default:()=>(0,_ui.getConfig)().link.size||(0,_ui.getConfig)().size}},emits:["click"],setup(a,e){const{slots:n,emit:r}=e;var t=_xeUtils.default.uniqueId();const c=(0,_ui.useSize)(a)["computeSize"],d=(0,_ui.usePermission)(a)["computePermissionInfo"],v=(0,_vue.ref)();var i=(0,_vue.reactive)({});const u={refElem:v},s={},_={xID:t,props:a,context:e,reactData:i,getRefMaps:()=>u,getComputeMaps:()=>s},l=(e,t,i)=>{r(e,(0,_ui.createEvent)(i,{$link:_},t))};t={dispatchEvent:l};const p=e=>{var t=a["disabled"];t||l("click",{},e)},f=(Object.assign(_,t,{}),()=>{var{icon:e,content:t}=a,i=n.default,r=n.icon,t=_xeUtils.default.toValueString(t);return[r||e?(0,_vue.h)("span",{class:"vxe-link--icon"},r?(0,_vn.getSlotVNs)(r({})):[(0,_vue.h)("i",{class:e})]):(0,_ui.renderEmptyElement)(_),i||t?(0,_vue.h)("span",{class:"vxe-link--content"},i?i({}):t):(0,_ui.renderEmptyElement)(_)]});return _.renderVN=()=>{var{status:e,target:t,href:i,title:r,underline:n,disabled:u,routerLink:s}=a,l=d.value,o=c.value;return l.visible?s?(0,_vue.h)((0,_vue.resolveComponent)("router-link"),{class:["vxe-link",{["size--"+o]:o,["theme--"+e]:e,"is--disabled":u,"is--underline":n}],title:r,target:t,to:u?null:s,onClick:p},{default(){return f()}}):(0,_vue.h)("a",{ref:v,class:["vxe-link",{["size--"+o]:o,["theme--"+e]:e,"is--disabled":u,"is--underline":n}],href:u?null:i,target:t,title:r,onClick:p},f()):(0,_ui.renderEmptyElement)(_)},_},render(){return this.renderVN()}});
@@ -11,6 +11,10 @@
11
11
  .vxe-link.is--underline:not(.is--disabled):hover .vxe-link--content {
12
12
  text-decoration: underline;
13
13
  }
14
+ .vxe-link.is--disabled {
15
+ color: var(--vxe-ui-font-disabled-color);
16
+ cursor: no-drop;
17
+ }
14
18
  .vxe-link.theme--primary {
15
19
  color: var(--vxe-ui-font-primary-color);
16
20
  }
@@ -1 +1 @@
1
- .vxe-link{text-decoration:none;color:inherit}.vxe-link:not(.is--disabled){cursor:pointer}.vxe-link:not(.is--disabled):hover{color:var(--vxe-ui-font-primary-color)}.vxe-link.is--underline:not(.is--disabled):hover .vxe-link--content{text-decoration:underline}.vxe-link.theme--primary{color:var(--vxe-ui-font-primary-color)}.vxe-link.theme--primary:not(.is--disabled):focus{color:var(--vxe-ui-font-primary-darken-color)}.vxe-link.theme--primary:not(.is--disabled):hover{color:var(--vxe-ui-font-primary-lighten-color)}.vxe-link.theme--primary.is--disabled{color:var(--vxe-ui-font-primary-disabled-color)}.vxe-link.theme--success{color:var(--vxe-ui-status-success-color)}.vxe-link.theme--success:not(.is--disabled):focus{color:var(--vxe-ui-status-success-darken-color)}.vxe-link.theme--success:not(.is--disabled):hover{color:var(--vxe-ui-status-success-lighten-color)}.vxe-link.theme--success.is--disabled{color:var(--vxe-ui-status-success-disabled-color)}.vxe-link.theme--info{color:var(--vxe-ui-status-info-color)}.vxe-link.theme--info:not(.is--disabled):focus{color:var(--vxe-ui-status-info-darken-color)}.vxe-link.theme--info:not(.is--disabled):hover{color:var(--vxe-ui-status-info-lighten-color)}.vxe-link.theme--info.is--disabled{color:var(--vxe-ui-status-info-disabled-color)}.vxe-link.theme--warning{color:var(--vxe-ui-status-warning-color)}.vxe-link.theme--warning:not(.is--disabled):focus{color:var(--vxe-ui-status-warning-darken-color)}.vxe-link.theme--warning:not(.is--disabled):hover{color:var(--vxe-ui-status-warning-lighten-color)}.vxe-link.theme--warning.is--disabled{color:var(--vxe-ui-status-warning-disabled-color)}.vxe-link.theme--danger{color:var(--vxe-ui-status-danger-color)}.vxe-link.theme--danger:not(.is--disabled):focus{color:var(--vxe-ui-status-danger-darken-color)}.vxe-link.theme--danger:not(.is--disabled):hover{color:var(--vxe-ui-status-danger-lighten-color)}.vxe-link.theme--danger.is--disabled{color:var(--vxe-ui-status-danger-disabled-color)}.vxe-link.theme--error{color:var(--vxe-ui-status-error-color)}.vxe-link.theme--error:not(.is--disabled):focus{color:var(--vxe-ui-status-error-darken-color)}.vxe-link.theme--error:not(.is--disabled):hover{color:var(--vxe-ui-status-error-lighten-color)}.vxe-link.theme--error.is--disabled{color:var(--vxe-ui-status-error-disabled-color)}.vxe-link--icon{padding:0 .1em}.vxe-link--content{padding:0 .1em}.vxe-link.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-link.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-link.size--mini{font-size:var(--vxe-ui-font-size-mini)}
1
+ .vxe-link{text-decoration:none;color:inherit}.vxe-link:not(.is--disabled){cursor:pointer}.vxe-link:not(.is--disabled):hover{color:var(--vxe-ui-font-primary-color)}.vxe-link.is--underline:not(.is--disabled):hover .vxe-link--content{text-decoration:underline}.vxe-link.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:no-drop}.vxe-link.theme--primary{color:var(--vxe-ui-font-primary-color)}.vxe-link.theme--primary:not(.is--disabled):focus{color:var(--vxe-ui-font-primary-darken-color)}.vxe-link.theme--primary:not(.is--disabled):hover{color:var(--vxe-ui-font-primary-lighten-color)}.vxe-link.theme--primary.is--disabled{color:var(--vxe-ui-font-primary-disabled-color)}.vxe-link.theme--success{color:var(--vxe-ui-status-success-color)}.vxe-link.theme--success:not(.is--disabled):focus{color:var(--vxe-ui-status-success-darken-color)}.vxe-link.theme--success:not(.is--disabled):hover{color:var(--vxe-ui-status-success-lighten-color)}.vxe-link.theme--success.is--disabled{color:var(--vxe-ui-status-success-disabled-color)}.vxe-link.theme--info{color:var(--vxe-ui-status-info-color)}.vxe-link.theme--info:not(.is--disabled):focus{color:var(--vxe-ui-status-info-darken-color)}.vxe-link.theme--info:not(.is--disabled):hover{color:var(--vxe-ui-status-info-lighten-color)}.vxe-link.theme--info.is--disabled{color:var(--vxe-ui-status-info-disabled-color)}.vxe-link.theme--warning{color:var(--vxe-ui-status-warning-color)}.vxe-link.theme--warning:not(.is--disabled):focus{color:var(--vxe-ui-status-warning-darken-color)}.vxe-link.theme--warning:not(.is--disabled):hover{color:var(--vxe-ui-status-warning-lighten-color)}.vxe-link.theme--warning.is--disabled{color:var(--vxe-ui-status-warning-disabled-color)}.vxe-link.theme--danger{color:var(--vxe-ui-status-danger-color)}.vxe-link.theme--danger:not(.is--disabled):focus{color:var(--vxe-ui-status-danger-darken-color)}.vxe-link.theme--danger:not(.is--disabled):hover{color:var(--vxe-ui-status-danger-lighten-color)}.vxe-link.theme--danger.is--disabled{color:var(--vxe-ui-status-danger-disabled-color)}.vxe-link.theme--error{color:var(--vxe-ui-status-error-color)}.vxe-link.theme--error:not(.is--disabled):focus{color:var(--vxe-ui-status-error-darken-color)}.vxe-link.theme--error:not(.is--disabled):hover{color:var(--vxe-ui-status-error-lighten-color)}.vxe-link.theme--error.is--disabled{color:var(--vxe-ui-status-error-disabled-color)}.vxe-link--icon{padding:0 .1em}.vxe-link--content{padding:0 .1em}.vxe-link.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-link.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-link.size--mini{font-size:var(--vxe-ui-font-size-mini)}
@@ -257,6 +257,14 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
257
257
  });
258
258
  reactData.isEnterCollapse = true;
259
259
  };
260
+ const handleMenuMouseover = () => {
261
+ const {
262
+ isEnterCollapse
263
+ } = reactData;
264
+ if (!isEnterCollapse) {
265
+ handleMenuMouseenter();
266
+ }
267
+ };
260
268
  const handleMenuMouseleave = () => {
261
269
  const {
262
270
  collapseStyle
@@ -403,7 +411,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
403
411
  };
404
412
  const renderVN = () => {
405
413
  const {
406
- loading
414
+ loading,
415
+ collapseFixed
407
416
  } = props;
408
417
  const {
409
418
  initialized,
@@ -413,6 +422,14 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
413
422
  } = reactData;
414
423
  const vSize = computeSize.value;
415
424
  const isCollapsed = computeIsCollapsed.value;
425
+ let ons = {};
426
+ if (collapseFixed) {
427
+ ons = {
428
+ onMouseenter: handleMenuMouseenter,
429
+ onMouseover: handleMenuMouseover,
430
+ onMouseleave: handleMenuMouseleave
431
+ };
432
+ }
416
433
  return (0, _vue.h)('div', {
417
434
  ref: refElem,
418
435
  class: ['vxe-menu', {
@@ -422,7 +439,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
422
439
  }]
423
440
  }, [(0, _vue.h)('div', {
424
441
  class: 'vxe-menu--item-list'
425
- }, menuList.map(child => isCollapsed ? renderCollapseChildren(child, menuList) : renderDefaultChildren(child, menuList))), initialized ? (0, _vue.h)('div', {
442
+ }, menuList.map(child => isCollapsed ? renderCollapseChildren(child, menuList) : renderDefaultChildren(child, menuList))), initialized ? (0, _vue.h)('div', Object.assign({
426
443
  ref: refCollapseElem,
427
444
  class: ['vxe-menu--collapse-wrapper', {
428
445
  [`size--${vSize}`]: vSize,
@@ -430,10 +447,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
430
447
  'is--enter': isEnterCollapse,
431
448
  'is--loading': loading
432
449
  }],
433
- style: collapseStyle,
434
- onMouseenter: handleMenuMouseenter,
435
- onMouseleave: handleMenuMouseleave
436
- }, [isCollapsed ? (0, _vue.h)('div', {
450
+ style: collapseStyle
451
+ }, ons), [isCollapsed ? (0, _vue.h)('div', {
437
452
  class: 'vxe-menu--item-list'
438
453
  }, menuList.map(child => renderDefaultChildren(child, menuList))) : (0, _ui.renderEmptyElement)($xeMenu)]) : (0, _ui.renderEmptyElement)($xeMenu),
439
454
  /**
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn"),_loading=_interopRequireDefault(require("../../loading/src/loading"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeMenu",props:{modelValue:[String,Number],expandAll:Boolean,accordion:{type:Boolean,default:()=>(0,_ui.getConfig)().menu.accordion},collapsed:{type:Boolean,default:null},collapseFixed:Boolean,loading:Boolean,options:{type:Array,default:()=>[]},size:{type:String,default:()=>(0,_ui.getConfig)().menu.size||(0,_ui.getConfig)().size}},emits:["update:modelValue","click"],setup(o,e){const{emit:l,slots:u}=e;var i=_xeUtils.default.uniqueId();const t=(0,_vue.inject)("$xeLayoutAside",null),r=(0,_vue.ref)(),c=(0,_vue.ref)(),d=(0,_ui.useSize)(o)["computeSize"],v=(0,_vue.reactive)({initialized:!!o.collapsed,isEnterCollapse:!1,collapseStyle:{},collapseZindex:0,activeName:o.modelValue,menuList:[],itemHeight:1}),s={refElem:r},p=(0,_vue.computed)(()=>{var e=o["collapsed"];return _xeUtils.default.isBoolean(e)?e:!!t&&!!t.props.collapsed}),a=(0,_vue.computed)(()=>{let e="";return e=t?t.props.collapseWidth||"":e}),m=(0,_vue.computed)(()=>{let e="";return e=t?t.props.width||"":e}),n={computeSize:d},_={xID:i,props:o,context:e,reactData:v,getRefMaps:()=>s,getComputeMaps:()=>n},h=a=>{const o=v["activeName"];_xeUtils.default.eachTree(v.menuList,(e,i,t,l,s,n)=>{e.itemKey===o?(n.forEach(e=>{e.isActive=!0,a&&(e.isExpand=!0)}),e.isExactActive=!0):(e.isExactActive=!1,e.isActive=!1)},{children:"childList"})},x=()=>{const{options:e,expandAll:n}=o;v.menuList=_xeUtils.default.mapTree(e,(e,i,t,l,s)=>{return Object.assign(Object.assign({},e),{parentKey:s?s.name||l.slice(0,l.length-1).join(","):"",level:l.length,itemKey:e.name||l.join(","),isExactActive:!1,isActive:!1,isExpand:_xeUtils.default.isBoolean(e.expanded)?e.expanded:!!n,hasChild:e.children&&0<e.children.length})},{children:"children",mapChildren:"childList"})},E=()=>{var e=o["collapseFixed"];e&&(0,_vue.nextTick)(()=>{var e,i=v["isEnterCollapse"],t=p.value,l=m.value,s=a.value,n=r.value;n&&(e=n.getBoundingClientRect(),n=n.parentNode,v.collapseStyle=t?{top:(0,_dom.toCssUnit)(e.top),left:(0,_dom.toCssUnit)(e.left),height:(0,_dom.toCssUnit)(n.clientHeight),width:i?l?(0,_dom.toCssUnit)(l):"":s?(0,_dom.toCssUnit)(s):"",zIndex:v.collapseZindex}:{})})},f=()=>{var e=o["collapseFixed"];e&&(e=v["initialized"],p.value&&!e&&(v.initialized=!0,(0,_vue.nextTick)(()=>{var e=c.value;e&&document.body.appendChild(e)})),v.isEnterCollapse=!1,v.collapseZindex<(0,_utils.getLastZIndex)()&&(v.collapseZindex=(0,_utils.nextZIndex)()),E())},g=(e,i,t)=>{var l=o["accordion"],{hasChild:s,isExpand:n}=i;s&&(e.stopPropagation(),e.preventDefault(),l&&t.forEach(e=>{e!==i&&(e.isExpand=!1)}),i.isExpand=!n)},C=e=>{v.activeName=e,l("update:modelValue",e)},y=(e,i,t)=>{var{itemKey:l,routerLink:s,hasChild:n}=i;!s&&n?g(e,i,t):(C(l),U()),A("click",{menu:i},e)},k=()=>{var e=v["collapseStyle"],i=m.value;v.collapseStyle=Object.assign({},e,{width:i?(0,_dom.toCssUnit)(i):""}),v.isEnterCollapse=!0},U=()=>{var e=v["collapseStyle"],i=r.value;v.collapseStyle=Object.assign({},e,{width:i?(0,_dom.toCssUnit)(i.offsetWidth):""}),v.isEnterCollapse=!1},A=(e,i,t)=>{l(e,(0,_ui.createEvent)(t,{$menu:_},i))};i={dispatchEvent:A};Object.assign(_,i,{});const N=(i,t)=>{var{icon:e,isExpand:l,hasChild:s,slots:n}=i,n=n?n.default:u.option,a=""+((a=i).title||a.name),o=p.value;return[(0,_vue.h)("div",{class:"vxe-menu--item-link-icon"},e?[(0,_vue.h)("i",{class:e})]:[]),n?(0,_vue.h)("div",{class:"vxe-menu--item-custom-title"},(e={option:i,collapsed:o},(o=n)&&(_xeUtils.default.isString(o)&&(o=u[o]||null),_xeUtils.default.isFunction(o))?(0,_vn.getSlotVNs)(o(e)):[])):(0,_vue.h)("div",{class:"vxe-menu--item-link-title",title:a},a),s?(0,_vue.h)("div",{class:"vxe-menu--item-link-collapse",onClick(e){g(e,i,t)}},[(0,_vue.h)("i",{class:l?(0,_ui.getIcon)().MENU_ITEM_EXPAND_OPEN:(0,_ui.getIcon)().MENU_ITEM_EXPAND_CLOSE})]):(0,_ui.renderEmptyElement)(_)]},z=(i,t)=>{const{itemKey:e,level:l,hasChild:s,isActive:n,isExactActive:a,isExpand:o,routerLink:u,childList:r}=i;var c=v["isEnterCollapse"],d=p.value;return i.permissionCode&&!_ui.permission.checkVisible(i.permissionCode)?(0,_ui.renderEmptyElement)(_):(0,_vue.h)("div",{key:e,class:["vxe-menu--item-wrapper","vxe-menu--item-level"+l,{"is--exact-active":a,"is--active":n,"is--expand":(!d||c)&&o}]},[u?(0,_vue.h)((0,_vue.resolveComponent)("router-link"),{class:"vxe-menu--item-link",to:u,onClick(e){y(e,i,t)}},{default:()=>N(i,t)}):(0,_vue.h)("div",{class:"vxe-menu--item-link",onClick(e){y(e,i,t)}},N(i,t)),s?(0,_vue.h)("div",{class:"vxe-menu--item-group"},r.map(e=>z(e,r))):(0,_ui.renderEmptyElement)(_)])};const S=(0,_vue.ref)(0);return(0,_vue.watch)(()=>o.options?o.options.length:-1,()=>{S.value++}),(0,_vue.watch)(()=>o.options,()=>{S.value++}),(0,_vue.watch)(S,()=>{x(),h(!0)}),(0,_vue.watch)(()=>o.modelValue,e=>{v.activeName=e}),(0,_vue.watch)(()=>v.activeName,()=>{h(!0)}),(0,_vue.watch)(p,()=>{f()}),(0,_vue.onMounted)(()=>{_ui.globalEvents.on(_,"resize",E),E()}),(0,_vue.onBeforeUnmount)(()=>{_ui.globalEvents.off(_,"resize");var e,i=c.value;i&&(e=i.parentNode)&&e.removeChild(i)}),x(),h(!0),_.renderVN=()=>{var e=o["loading"];const{initialized:i,menuList:t,collapseStyle:l,isEnterCollapse:s}=v;var n=d.value;const a=p.value;return(0,_vue.h)("div",{ref:r,class:["vxe-menu",{["size--"+n]:n,"is--collapsed":a,"is--loading":e}]},[(0,_vue.h)("div",{class:"vxe-menu--item-list"},t.map(e=>(a?(i,t)=>{const{itemKey:e,level:l,hasChild:s,isActive:n,isExactActive:a,routerLink:o,childList:u}=i;return i.permissionCode&&!_ui.permission.checkVisible(i.permissionCode)?(0,_ui.renderEmptyElement)(_):(0,_vue.h)("div",{key:e,class:["vxe-menu--item-wrapper","vxe-menu--item-level"+l,{"is--exact-active":a,"is--active":n}]},[o?(0,_vue.h)((0,_vue.resolveComponent)("router-link"),{class:"vxe-menu--item-link",to:o,onClick(e){y(e,i,t)}},{default:()=>N(i,t)}):(0,_vue.h)("div",{class:"vxe-menu--item-link",onClick(e){y(e,i,t)}},N(i,t)),s?(0,_vue.h)("div",{class:"vxe-menu--item-group"},u.map(e=>z(e,u))):(0,_ui.renderEmptyElement)(_)])}:z)(e,t))),i?(0,_vue.h)("div",{ref:c,class:["vxe-menu--collapse-wrapper",{["size--"+n]:n,"is--collapsed":a,"is--enter":s,"is--loading":e}],style:l,onMouseenter:k,onMouseleave:U},[a?(0,_vue.h)("div",{class:"vxe-menu--item-list"},t.map(e=>z(e,t))):(0,_ui.renderEmptyElement)(_)]):(0,_ui.renderEmptyElement)(_),(0,_vue.h)(_loading.default,{class:"vxe-list-view--loading",modelValue:e})])},_},render(){return this.renderVN()}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn"),_loading=_interopRequireDefault(require("../../loading/src/loading"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeMenu",props:{modelValue:[String,Number],expandAll:Boolean,accordion:{type:Boolean,default:()=>(0,_ui.getConfig)().menu.accordion},collapsed:{type:Boolean,default:null},collapseFixed:Boolean,loading:Boolean,options:{type:Array,default:()=>[]},size:{type:String,default:()=>(0,_ui.getConfig)().menu.size||(0,_ui.getConfig)().size}},emits:["update:modelValue","click"],setup(r,e){const{emit:l,slots:u}=e;var i=_xeUtils.default.uniqueId();const t=(0,_vue.inject)("$xeLayoutAside",null),c=(0,_vue.ref)(),d=(0,_vue.ref)(),v=(0,_ui.useSize)(r)["computeSize"],p=(0,_vue.reactive)({initialized:!!r.collapsed,isEnterCollapse:!1,collapseStyle:{},collapseZindex:0,activeName:r.modelValue,menuList:[],itemHeight:1}),s={refElem:c},m=(0,_vue.computed)(()=>{var e=r["collapsed"];return _xeUtils.default.isBoolean(e)?e:!!t&&!!t.props.collapsed}),a=(0,_vue.computed)(()=>{let e="";return e=t?t.props.collapseWidth||"":e}),o=(0,_vue.computed)(()=>{let e="";return e=t?t.props.width||"":e}),n={computeSize:v},_={xID:i,props:r,context:e,reactData:p,getRefMaps:()=>s,getComputeMaps:()=>n},h=a=>{const o=p["activeName"];_xeUtils.default.eachTree(p.menuList,(e,i,t,l,s,n)=>{e.itemKey===o?(n.forEach(e=>{e.isActive=!0,a&&(e.isExpand=!0)}),e.isExactActive=!0):(e.isExactActive=!1,e.isActive=!1)},{children:"childList"})},x=()=>{const{options:e,expandAll:n}=r;p.menuList=_xeUtils.default.mapTree(e,(e,i,t,l,s)=>{return Object.assign(Object.assign({},e),{parentKey:s?s.name||l.slice(0,l.length-1).join(","):"",level:l.length,itemKey:e.name||l.join(","),isExactActive:!1,isActive:!1,isExpand:_xeUtils.default.isBoolean(e.expanded)?e.expanded:!!n,hasChild:e.children&&0<e.children.length})},{children:"children",mapChildren:"childList"})},E=()=>{var e=r["collapseFixed"];e&&(0,_vue.nextTick)(()=>{var e,i=p["isEnterCollapse"],t=m.value,l=o.value,s=a.value,n=c.value;n&&(e=n.getBoundingClientRect(),n=n.parentNode,p.collapseStyle=t?{top:(0,_dom.toCssUnit)(e.top),left:(0,_dom.toCssUnit)(e.left),height:(0,_dom.toCssUnit)(n.clientHeight),width:i?l?(0,_dom.toCssUnit)(l):"":s?(0,_dom.toCssUnit)(s):"",zIndex:p.collapseZindex}:{})})},f=()=>{var e=r["collapseFixed"];e&&(e=p["initialized"],m.value&&!e&&(p.initialized=!0,(0,_vue.nextTick)(()=>{var e=d.value;e&&document.body.appendChild(e)})),p.isEnterCollapse=!1,p.collapseZindex<(0,_utils.getLastZIndex)()&&(p.collapseZindex=(0,_utils.nextZIndex)()),E())},g=(e,i,t)=>{var l=r["accordion"],{hasChild:s,isExpand:n}=i;s&&(e.stopPropagation(),e.preventDefault(),l&&t.forEach(e=>{e!==i&&(e.isExpand=!1)}),i.isExpand=!n)},C=e=>{p.activeName=e,l("update:modelValue",e)},y=(e,i,t)=>{var{itemKey:l,routerLink:s,hasChild:n}=i;!s&&n?g(e,i,t):(C(l),A()),N("click",{menu:i},e)},k=()=>{var e=p["collapseStyle"],i=o.value;p.collapseStyle=Object.assign({},e,{width:i?(0,_dom.toCssUnit)(i):""}),p.isEnterCollapse=!0},U=()=>{var e=p["isEnterCollapse"];e||k()},A=()=>{var e=p["collapseStyle"],i=c.value;p.collapseStyle=Object.assign({},e,{width:i?(0,_dom.toCssUnit)(i.offsetWidth):""}),p.isEnterCollapse=!1},N=(e,i,t)=>{l(e,(0,_ui.createEvent)(t,{$menu:_},i))};i={dispatchEvent:N};Object.assign(_,i,{});const z=(i,t)=>{var{icon:e,isExpand:l,hasChild:s,slots:n}=i,n=n?n.default:u.option,a=""+((a=i).title||a.name),o=m.value;return[(0,_vue.h)("div",{class:"vxe-menu--item-link-icon"},e?[(0,_vue.h)("i",{class:e})]:[]),n?(0,_vue.h)("div",{class:"vxe-menu--item-custom-title"},(e={option:i,collapsed:o},(o=n)&&(_xeUtils.default.isString(o)&&(o=u[o]||null),_xeUtils.default.isFunction(o))?(0,_vn.getSlotVNs)(o(e)):[])):(0,_vue.h)("div",{class:"vxe-menu--item-link-title",title:a},a),s?(0,_vue.h)("div",{class:"vxe-menu--item-link-collapse",onClick(e){g(e,i,t)}},[(0,_vue.h)("i",{class:l?(0,_ui.getIcon)().MENU_ITEM_EXPAND_OPEN:(0,_ui.getIcon)().MENU_ITEM_EXPAND_CLOSE})]):(0,_ui.renderEmptyElement)(_)]},S=(i,t)=>{const{itemKey:e,level:l,hasChild:s,isActive:n,isExactActive:a,isExpand:o,routerLink:u,childList:r}=i;var c=p["isEnterCollapse"],d=m.value;return i.permissionCode&&!_ui.permission.checkVisible(i.permissionCode)?(0,_ui.renderEmptyElement)(_):(0,_vue.h)("div",{key:e,class:["vxe-menu--item-wrapper","vxe-menu--item-level"+l,{"is--exact-active":a,"is--active":n,"is--expand":(!d||c)&&o}]},[u?(0,_vue.h)((0,_vue.resolveComponent)("router-link"),{class:"vxe-menu--item-link",to:u,onClick(e){y(e,i,t)}},{default:()=>z(i,t)}):(0,_vue.h)("div",{class:"vxe-menu--item-link",onClick(e){y(e,i,t)}},z(i,t)),s?(0,_vue.h)("div",{class:"vxe-menu--item-group"},r.map(e=>S(e,r))):(0,_ui.renderEmptyElement)(_)])};const w=(0,_vue.ref)(0);return(0,_vue.watch)(()=>r.options?r.options.length:-1,()=>{w.value++}),(0,_vue.watch)(()=>r.options,()=>{w.value++}),(0,_vue.watch)(w,()=>{x(),h(!0)}),(0,_vue.watch)(()=>r.modelValue,e=>{p.activeName=e}),(0,_vue.watch)(()=>p.activeName,()=>{h(!0)}),(0,_vue.watch)(m,()=>{f()}),(0,_vue.onMounted)(()=>{_ui.globalEvents.on(_,"resize",E),E()}),(0,_vue.onBeforeUnmount)(()=>{_ui.globalEvents.off(_,"resize");var e,i=d.value;i&&(e=i.parentNode)&&e.removeChild(i)}),x(),h(!0),_.renderVN=()=>{var{loading:e,collapseFixed:i}=r;const{initialized:t,menuList:l,collapseStyle:s,isEnterCollapse:n}=p;var a=v.value;const o=m.value;let u={};return i&&(u={onMouseenter:k,onMouseover:U,onMouseleave:A}),(0,_vue.h)("div",{ref:c,class:["vxe-menu",{["size--"+a]:a,"is--collapsed":o,"is--loading":e}]},[(0,_vue.h)("div",{class:"vxe-menu--item-list"},l.map(e=>(o?(i,t)=>{const{itemKey:e,level:l,hasChild:s,isActive:n,isExactActive:a,routerLink:o,childList:u}=i;return i.permissionCode&&!_ui.permission.checkVisible(i.permissionCode)?(0,_ui.renderEmptyElement)(_):(0,_vue.h)("div",{key:e,class:["vxe-menu--item-wrapper","vxe-menu--item-level"+l,{"is--exact-active":a,"is--active":n}]},[o?(0,_vue.h)((0,_vue.resolveComponent)("router-link"),{class:"vxe-menu--item-link",to:o,onClick(e){y(e,i,t)}},{default:()=>z(i,t)}):(0,_vue.h)("div",{class:"vxe-menu--item-link",onClick(e){y(e,i,t)}},z(i,t)),s?(0,_vue.h)("div",{class:"vxe-menu--item-group"},u.map(e=>S(e,u))):(0,_ui.renderEmptyElement)(_)])}:S)(e,l))),t?(0,_vue.h)("div",Object.assign({ref:d,class:["vxe-menu--collapse-wrapper",{["size--"+a]:a,"is--collapsed":o,"is--enter":n,"is--loading":e}],style:s},u),[o?(0,_vue.h)("div",{class:"vxe-menu--item-list"},l.map(e=>S(e,l))):(0,_ui.renderEmptyElement)(_)]):(0,_ui.renderEmptyElement)(_),(0,_vue.h)(_loading.default,{class:"vxe-list-view--loading",modelValue:e})])},_},render(){return this.renderVN()}});