vxe-pc-ui 4.18.23 → 4.19.1
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/all.esm.js +1076 -989
- package/dist/style.css +1 -1
- package/dist/style.min.css +1 -1
- package/es/calendar/src/calendar.js +1 -1
- package/es/card/src/card.js +1 -1
- package/es/carousel/src/carousel.js +1 -1
- package/es/countdown/src/countdown.js +1 -1
- package/es/date-picker/src/date-picker.js +3 -3
- package/es/icon/style.css +1 -1
- package/es/icon-picker/src/icon-picker.js +1 -1
- package/es/layout-aside/src/layout-aside.js +31 -6
- package/es/layout-aside/style.css +5 -0
- package/es/layout-aside/style.min.css +1 -1
- package/es/layout-body/src/layout-body.js +29 -6
- package/es/layout-body/style.css +5 -1
- package/es/layout-body/style.min.css +1 -1
- package/es/list/src/list.js +1 -1
- package/es/menu/src/menu.js +20 -5
- package/es/menu/style.css +14 -2
- package/es/menu/style.min.css +1 -1
- package/es/scrollbar/src/scrollbar.js +38 -17
- package/es/scrollbar/style.css +16 -13
- package/es/scrollbar/style.min.css +1 -1
- package/es/select/src/select.js +2 -2
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/tabs/src/tabs.js +1 -1
- package/es/text-ellipsis/style.css +29 -10
- package/es/text-ellipsis/style.min.css +1 -1
- package/es/ui/index.js +8 -2
- package/es/ui/src/log.js +1 -1
- package/es/upload/src/upload.js +1 -1
- package/es/vxe-layout-aside/style.css +5 -0
- package/es/vxe-layout-aside/style.min.css +1 -1
- package/es/vxe-layout-body/style.css +5 -1
- package/es/vxe-layout-body/style.min.css +1 -1
- package/es/vxe-menu/style.css +14 -2
- package/es/vxe-menu/style.min.css +1 -1
- package/es/vxe-scrollbar/style.css +16 -13
- package/es/vxe-scrollbar/style.min.css +1 -1
- package/es/vxe-text-ellipsis/style.css +29 -10
- package/es/vxe-text-ellipsis/style.min.css +1 -1
- package/lib/calendar/src/calendar.js +1 -1
- package/lib/calendar/src/calendar.min.js +1 -1
- package/lib/card/src/card.js +1 -1
- package/lib/card/src/card.min.js +1 -1
- package/lib/carousel/src/carousel.js +1 -1
- package/lib/carousel/src/carousel.min.js +1 -1
- package/lib/countdown/src/countdown.js +1 -1
- package/lib/countdown/src/countdown.min.js +1 -1
- package/lib/date-picker/src/date-picker.js +3 -3
- package/lib/date-picker/src/date-picker.min.js +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/icon-picker/src/icon-picker.js +1 -1
- package/lib/icon-picker/src/icon-picker.min.js +1 -1
- package/lib/index.umd.js +1456 -1333
- package/lib/index.umd.min.js +1 -1
- package/lib/layout-aside/src/layout-aside.js +35 -4
- package/lib/layout-aside/src/layout-aside.min.js +1 -1
- package/lib/layout-aside/style/style.css +5 -0
- package/lib/layout-aside/style/style.min.css +1 -1
- package/lib/layout-body/src/layout-body.js +35 -3
- package/lib/layout-body/src/layout-body.min.js +1 -1
- package/lib/layout-body/style/style.css +5 -1
- package/lib/layout-body/style/style.min.css +1 -1
- package/lib/list/src/list.js +1 -1
- package/lib/list/src/list.min.js +1 -1
- package/lib/menu/src/menu.js +25 -3
- package/lib/menu/src/menu.min.js +1 -1
- package/lib/menu/style/style.css +14 -2
- package/lib/menu/style/style.min.css +1 -1
- package/lib/scrollbar/src/scrollbar.js +38 -8
- package/lib/scrollbar/src/scrollbar.min.js +1 -1
- package/lib/scrollbar/style/style.css +16 -13
- package/lib/scrollbar/style/style.min.css +1 -1
- package/lib/select/src/select.js +2 -2
- package/lib/select/src/select.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/tabs/src/tabs.js +1 -1
- package/lib/tabs/src/tabs.min.js +1 -1
- package/lib/text-ellipsis/style/style.css +29 -10
- package/lib/text-ellipsis/style/style.min.css +1 -1
- package/lib/ui/index.js +8 -2
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/upload/src/upload.js +1 -1
- package/lib/upload/src/upload.min.js +1 -1
- package/lib/vxe-layout-aside/style/style.css +5 -0
- package/lib/vxe-layout-aside/style/style.min.css +1 -1
- package/lib/vxe-layout-body/style/style.css +5 -1
- package/lib/vxe-layout-body/style/style.min.css +1 -1
- package/lib/vxe-menu/style/style.css +14 -2
- package/lib/vxe-menu/style/style.min.css +1 -1
- package/lib/vxe-scrollbar/style/style.css +16 -13
- package/lib/vxe-scrollbar/style/style.min.css +1 -1
- package/lib/vxe-text-ellipsis/style/style.css +29 -10
- package/lib/vxe-text-ellipsis/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/calendar/src/calendar.ts +1 -1
- package/packages/card/src/card.ts +1 -1
- package/packages/carousel/src/carousel.ts +1 -1
- package/packages/countdown/src/countdown.ts +1 -1
- package/packages/date-picker/src/date-picker.ts +3 -3
- package/packages/icon-picker/src/icon-picker.ts +1 -1
- package/packages/layout-aside/src/layout-aside.ts +32 -6
- package/packages/layout-body/src/layout-body.ts +33 -6
- package/packages/list/src/list.ts +1 -1
- package/packages/menu/src/menu.ts +26 -5
- package/packages/scrollbar/src/scrollbar.ts +41 -14
- package/packages/select/src/select.ts +2 -2
- package/packages/tabs/src/tabs.ts +1 -1
- package/packages/ui/index.ts +8 -3
- package/packages/upload/src/upload.ts +1 -1
- package/styles/components/layout-aside.scss +5 -0
- package/styles/components/layout-body.scss +4 -1
- package/styles/components/menu.scss +15 -2
- package/styles/components/scrollbar.scss +24 -17
- package/styles/components/text-ellipsis.scss +23 -64
- package/styles/theme/base.scss +2 -0
- package/types/components/layout-aside.d.ts +5 -0
- package/types/components/layout-body.d.ts +5 -1
- package/types/components/menu.d.ts +5 -0
- package/types/components/scrollbar.d.ts +15 -0
- /package/es/icon/{iconfont.1791517860186.ttf → iconfont.1791542939851.ttf} +0 -0
- /package/es/icon/{iconfont.1791517860186.woff → iconfont.1791542939851.woff} +0 -0
- /package/es/icon/{iconfont.1791517860186.woff2 → iconfont.1791542939851.woff2} +0 -0
- /package/es/{iconfont.1791517860186.ttf → iconfont.1791542939851.ttf} +0 -0
- /package/es/{iconfont.1791517860186.woff → iconfont.1791542939851.woff} +0 -0
- /package/es/{iconfont.1791517860186.woff2 → iconfont.1791542939851.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1791517860186.ttf → iconfont.1791542939851.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1791517860186.woff → iconfont.1791542939851.woff} +0 -0
- /package/lib/icon/style/{iconfont.1791517860186.woff2 → iconfont.1791542939851.woff2} +0 -0
- /package/lib/{iconfont.1791517860186.ttf → iconfont.1791542939851.ttf} +0 -0
- /package/lib/{iconfont.1791517860186.woff → iconfont.1791542939851.woff} +0 -0
- /package/lib/{iconfont.1791517860186.woff2 → iconfont.1791542939851.woff2} +0 -0
|
@@ -8,8 +8,9 @@ var _vue = require("vue");
|
|
|
8
8
|
var _comp = require("../../ui/src/comp");
|
|
9
9
|
var _dom = require("../../ui/src/dom");
|
|
10
10
|
var _ui = require("../../ui");
|
|
11
|
-
var _loading = _interopRequireDefault(require("../../loading"));
|
|
12
11
|
var _xeUtils = _interopRequireDefault(require("xe-utils"));
|
|
12
|
+
var _loading = _interopRequireDefault(require("../../loading"));
|
|
13
|
+
var _scrollbar = _interopRequireDefault(require("../../scrollbar"));
|
|
13
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
15
|
var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
15
16
|
name: 'VxeLayoutAside',
|
|
@@ -20,6 +21,11 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
20
21
|
loading: Boolean,
|
|
21
22
|
padding: Boolean,
|
|
22
23
|
collapseConfig: Object,
|
|
24
|
+
useScrollbar: {
|
|
25
|
+
type: Boolean,
|
|
26
|
+
default: () => (0, _ui.getConfig)().layoutAside.useScrollbar
|
|
27
|
+
},
|
|
28
|
+
scrollbarConfig: Object,
|
|
23
29
|
size: {
|
|
24
30
|
type: String,
|
|
25
31
|
default: () => (0, _ui.getConfig)().layoutAside.size || (0, _ui.getConfig)().size
|
|
@@ -43,6 +49,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
43
49
|
const computeCollapseOpts = (0, _vue.computed)(() => {
|
|
44
50
|
return Object.assign({}, (0, _ui.getConfig)().layoutAside.collapseConfig, props.collapseConfig);
|
|
45
51
|
});
|
|
52
|
+
const computeScrollbarOpts = (0, _vue.computed)(() => {
|
|
53
|
+
return Object.assign({}, (0, _ui.getConfig)().layoutAside.scrollbarConfig, props.scrollbarConfig);
|
|
54
|
+
});
|
|
46
55
|
const computeVarStyle = (0, _vue.computed)(() => {
|
|
47
56
|
const {
|
|
48
57
|
width,
|
|
@@ -83,11 +92,21 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
83
92
|
const {
|
|
84
93
|
collapsed,
|
|
85
94
|
loading,
|
|
86
|
-
padding
|
|
95
|
+
padding,
|
|
96
|
+
useScrollbar
|
|
87
97
|
} = props;
|
|
88
98
|
const varStyle = computeVarStyle.value;
|
|
89
99
|
const vSize = computeSize.value;
|
|
90
100
|
const collapseOpts = computeCollapseOpts.value;
|
|
101
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
102
|
+
const {
|
|
103
|
+
native,
|
|
104
|
+
yConfig,
|
|
105
|
+
className,
|
|
106
|
+
viewAttrs,
|
|
107
|
+
viewClassName,
|
|
108
|
+
viewInnerClassName
|
|
109
|
+
} = scrollbarOpts;
|
|
91
110
|
const defaultSlot = slots.default;
|
|
92
111
|
return (0, _vue.h)('aside', {
|
|
93
112
|
ref: refElem,
|
|
@@ -99,14 +118,26 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
99
118
|
'is--loading': loading
|
|
100
119
|
}],
|
|
101
120
|
style: varStyle
|
|
102
|
-
}, [(0, _vue.h)(
|
|
121
|
+
}, [useScrollbar ? (0, _vue.h)(_scrollbar.default, {
|
|
122
|
+
native,
|
|
123
|
+
xConfig: {
|
|
124
|
+
visible: 'hidden'
|
|
125
|
+
},
|
|
126
|
+
yConfig,
|
|
127
|
+
className: 'vxe-layout-aside--scrollbar' + (className ? ' ' + className : ''),
|
|
128
|
+
viewAttrs,
|
|
129
|
+
viewClassName: 'vxe-layout-aside--scrollbar-view' + (viewClassName ? ' ' + viewClassName : ''),
|
|
130
|
+
viewInnerClassName: 'vxe-layout-aside--scrollbar-inner' + (viewInnerClassName ? ' ' + viewInnerClassName : '')
|
|
131
|
+
}, {
|
|
132
|
+
default: () => defaultSlot ? defaultSlot({}) : []
|
|
133
|
+
}) : (0, _vue.h)('div', {
|
|
103
134
|
class: 'vxe-layout-aside--inner'
|
|
104
135
|
}, defaultSlot ? defaultSlot({}) : []),
|
|
105
136
|
/**
|
|
106
137
|
* 加载中
|
|
107
138
|
*/
|
|
108
139
|
(0, _vue.h)(_loading.default, {
|
|
109
|
-
class: 'vxe-
|
|
140
|
+
class: 'vxe-layout-aside--loading',
|
|
110
141
|
modelValue: loading
|
|
111
142
|
})]);
|
|
112
143
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_dom=require("../../ui/src/dom"),_ui=require("../../ui"),_loading=_interopRequireDefault(require("../../loading")),
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_dom=require("../../ui/src/dom"),_ui=require("../../ui"),_xeUtils=_interopRequireDefault(require("xe-utils")),_loading=_interopRequireDefault(require("../../loading")),_scrollbar=_interopRequireDefault(require("../../scrollbar"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeLayoutAside",props:{width:[String,Number],collapsed:Boolean,collapseWidth:[String,Number],loading:Boolean,padding:Boolean,collapseConfig:Object,useScrollbar:{type:Boolean,default:()=>(0,_ui.getConfig)().layoutAside.useScrollbar},scrollbarConfig:Object,size:{type:String,default:()=>(0,_ui.getConfig)().layoutAside.size||(0,_ui.getConfig)().size}},emits:[],setup(_,e){let{slots:f,emit:l}=e;var i=_xeUtils.default.uniqueId();let g=(0,_vue.ref)(),m=(0,_ui.useSize)(_).computeSize;var a=(0,_vue.reactive)({});let t={refElem:g},y=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().layoutAside.collapseConfig,_.collapseConfig)),C=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().layoutAside.scrollbarConfig,_.scrollbarConfig)),b=(0,_vue.computed)(()=>{var{width:e,collapseWidth:i}=_,a={};return i&&(a["--vxe-ui-layout-aside-collapse-width"]=(0,_dom.toCssUnit)(i)),e&&(a["--vxe-ui-layout-aside-default-width"]=(0,_dom.toCssUnit)(e)),a}),o={computeSize:m,computeVarStyle:b},s={xID:i,props:_,context:e,reactData:a,getRefMaps:()=>t,getComputeMaps:()=>o};Object.assign(s,{dispatchEvent:(e,i,a)=>{l(e,(0,_ui.createEvent)(a,{$layoutAside:s},i))}},{});return(0,_vue.provide)("$xeLayoutAside",s),s.renderVN=()=>{var{collapsed:e,loading:i,padding:a,useScrollbar:l}=_,t=b.value,o=m.value,s=y.value,{native:u,yConfig:r,className:n,viewAttrs:d,viewClassName:c,viewInnerClassName:v}=C.value;let p=f.default;return(0,_vue.h)("aside",{ref:g,class:["vxe-layout-aside",{["size--"+o]:o,"is--animat":!1!==s.animation,"is--padding":a,"is--collapse":e,"is--loading":i}],style:t},[l?(0,_vue.h)(_scrollbar.default,{native:u,xConfig:{visible:"hidden"},yConfig:r,className:"vxe-layout-aside--scrollbar"+(n?" "+n:""),viewAttrs:d,viewClassName:"vxe-layout-aside--scrollbar-view"+(c?" "+c:""),viewInnerClassName:"vxe-layout-aside--scrollbar-inner"+(v?" "+v:"")},{default:()=>p?p({}):[]}):(0,_vue.h)("div",{class:"vxe-layout-aside--inner"},p?p({}):[]),(0,_vue.h)(_loading.default,{class:"vxe-layout-aside--loading",modelValue:i})])},s},render(){return this.renderVN()}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vxe-layout-aside{position:relative;display:flex;flex-direction:column;flex-shrink:0;width:var(--vxe-ui-layout-aside-default-width);overflow:hidden}.vxe-layout-aside.is--animat{transition:width .3s}.vxe-layout-aside.is--collapse{width:var(--vxe-ui-layout-aside-collapse-width)}.vxe-layout-aside.is--padding{padding:var(--vxe-ui-layout-padding-default)}.vxe-layout-aside--inner{flex-grow:1;overflow-y:auto;overflow-x:hidden;outline:0}
|
|
1
|
+
.vxe-layout-aside{position:relative;display:flex;flex-direction:column;flex-shrink:0;width:var(--vxe-ui-layout-aside-default-width);overflow:hidden}.vxe-layout-aside.is--animat{transition:width .3s}.vxe-layout-aside.is--collapse{width:var(--vxe-ui-layout-aside-collapse-width)}.vxe-layout-aside.is--padding{padding:var(--vxe-ui-layout-padding-default)}.vxe-layout-aside--inner{flex-grow:1;overflow-y:auto;overflow-x:hidden;outline:0}.vxe-layout-aside--scrollbar{flex-grow:1;overflow:hidden}
|
|
@@ -7,9 +7,10 @@ exports.default = void 0;
|
|
|
7
7
|
var _vue = require("vue");
|
|
8
8
|
var _comp = require("../../ui/src/comp");
|
|
9
9
|
var _ui = require("../../ui");
|
|
10
|
+
var _xeUtils = _interopRequireDefault(require("xe-utils"));
|
|
10
11
|
var _loading = _interopRequireDefault(require("../../loading"));
|
|
12
|
+
var _scrollbar = _interopRequireDefault(require("../../scrollbar"));
|
|
11
13
|
var _backtop = _interopRequireDefault(require("../../backtop"));
|
|
12
|
-
var _xeUtils = _interopRequireDefault(require("xe-utils"));
|
|
13
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
15
|
function createInternalData() {
|
|
15
16
|
return {};
|
|
@@ -27,6 +28,11 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
27
28
|
default: () => (0, _ui.getConfig)().layoutBody.showBacktop
|
|
28
29
|
},
|
|
29
30
|
backtopConfig: Object,
|
|
31
|
+
useScrollbar: {
|
|
32
|
+
type: Boolean,
|
|
33
|
+
default: () => (0, _ui.getConfig)().layoutBody.useScrollbar
|
|
34
|
+
},
|
|
35
|
+
scrollbarConfig: Object,
|
|
30
36
|
size: {
|
|
31
37
|
type: String,
|
|
32
38
|
default: () => (0, _ui.getConfig)().layoutBody.size || (0, _ui.getConfig)().size
|
|
@@ -54,6 +60,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
54
60
|
target: '#' + backtopId
|
|
55
61
|
});
|
|
56
62
|
});
|
|
63
|
+
const computeScrollbarOpts = (0, _vue.computed)(() => {
|
|
64
|
+
return Object.assign({}, (0, _ui.getConfig)().layoutBody.scrollbarConfig, props.scrollbarConfig);
|
|
65
|
+
});
|
|
57
66
|
const computeMaps = {
|
|
58
67
|
computeSize
|
|
59
68
|
};
|
|
@@ -80,9 +89,20 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
80
89
|
const {
|
|
81
90
|
loading,
|
|
82
91
|
padding,
|
|
83
|
-
showBacktop
|
|
92
|
+
showBacktop,
|
|
93
|
+
useScrollbar
|
|
84
94
|
} = props;
|
|
85
95
|
const backtopOpts = computeBacktopOpts.value;
|
|
96
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
97
|
+
const {
|
|
98
|
+
native,
|
|
99
|
+
xConfig,
|
|
100
|
+
yConfig,
|
|
101
|
+
className,
|
|
102
|
+
viewAttrs,
|
|
103
|
+
viewClassName,
|
|
104
|
+
viewInnerClassName
|
|
105
|
+
} = scrollbarOpts;
|
|
86
106
|
const vSize = computeSize.value;
|
|
87
107
|
const defaultSlot = slots.default;
|
|
88
108
|
const backtopSlot = slots.backtop;
|
|
@@ -105,7 +125,19 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
105
125
|
'is--loading': loading,
|
|
106
126
|
'is--padding': padding
|
|
107
127
|
}]
|
|
108
|
-
}, [(0, _vue.h)(
|
|
128
|
+
}, [useScrollbar ? (0, _vue.h)(_scrollbar.default, {
|
|
129
|
+
native,
|
|
130
|
+
xConfig,
|
|
131
|
+
yConfig,
|
|
132
|
+
className: 'vxe-layout-body--scrollbar' + (className ? ' ' + className : ''),
|
|
133
|
+
viewAttrs: Object.assign(Object.assign({}, viewAttrs), {
|
|
134
|
+
id: showBacktop ? backtopId || null : null
|
|
135
|
+
}),
|
|
136
|
+
viewClassName: 'vxe-layout-body--scrollbar-view' + (viewClassName ? ' ' + viewClassName : ''),
|
|
137
|
+
viewInnerClassName: 'vxe-layout-body--scrollbar-inner' + (viewInnerClassName ? ' ' + viewInnerClassName : '')
|
|
138
|
+
}, {
|
|
139
|
+
default: () => defaultSlot ? defaultSlot({}) : []
|
|
140
|
+
}) : (0, _vue.h)('div', {
|
|
109
141
|
id: showBacktop ? backtopId : '',
|
|
110
142
|
class: 'vxe-layout-body--inner'
|
|
111
143
|
}, defaultSlot ? defaultSlot({}) : []),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_ui=require("../../ui"),_loading=_interopRequireDefault(require("../../loading")),
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_ui=require("../../ui"),_xeUtils=_interopRequireDefault(require("xe-utils")),_loading=_interopRequireDefault(require("../../loading")),_scrollbar=_interopRequireDefault(require("../../scrollbar")),_backtop=_interopRequireDefault(require("../../backtop"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function createInternalData(){return{}}function createReactData(){return{}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeLayoutBody",props:{loading:Boolean,padding:Boolean,showBacktop:{type:Boolean,default:()=>(0,_ui.getConfig)().layoutBody.showBacktop},backtopConfig:Object,useScrollbar:{type:Boolean,default:()=>(0,_ui.getConfig)().layoutBody.useScrollbar},scrollbarConfig:Object,size:{type:String,default:()=>(0,_ui.getConfig)().layoutBody.size||(0,_ui.getConfig)().size}},emits:[],setup(y,e){let{slots:m,emit:o}=e;var t=_xeUtils.default.uniqueId();let C="vxe_layout_body_backtop_"+t,x=(0,_vue.ref)(),k=(0,_ui.useSize)(y).computeSize;var a=createInternalData(),i=(0,_vue.reactive)(createReactData());let r={refElem:x},B=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().layoutBody.backtopConfig,y.backtopConfig,{target:"#"+C})),q=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().layoutBody.scrollbarConfig,y.scrollbarConfig)),l={computeSize:k},D={xID:t,props:y,context:e,internalData:a,reactData:i,getRefMaps:()=>r,getComputeMaps:()=>l};Object.assign(D,{dispatchEvent:(e,t,a)=>{o(e,(0,_ui.createEvent)(a,{$layoutBody:D},t))}},{});return D.renderVN=()=>{var{loading:e,padding:t,showBacktop:a,useScrollbar:o}=y,i=B.value,{native:r,xConfig:l,yConfig:u,className:n,viewAttrs:s,viewClassName:c,viewInnerClassName:d}=q.value,p=k.value;let f=m.default;var v=m.backtop,_=m.backtopTop||m["backtop-top"],g=m.backtopBottom||m["backtop-bottom"],b={};return v&&(b.default=v),_&&(b.top=_),g&&(b.bottom=g),(0,_vue.h)("div",{ref:x,class:["vxe-layout-body",{["size--"+p]:p,"is--loading":e,"is--padding":t}]},[o?(0,_vue.h)(_scrollbar.default,{native:r,xConfig:l,yConfig:u,className:"vxe-layout-body--scrollbar"+(n?" "+n:""),viewAttrs:Object.assign(Object.assign({},s),{id:a&&C||null}),viewClassName:"vxe-layout-body--scrollbar-view"+(c?" "+c:""),viewInnerClassName:"vxe-layout-body--scrollbar-inner"+(d?" "+d:"")},{default:()=>f?f({}):[]}):(0,_vue.h)("div",{id:a?C:"",class:"vxe-layout-body--inner"},f?f({}):[]),(0,_vue.h)(_loading.default,{class:"vxe-list-view--loading",modelValue:e}),a?(0,_vue.h)(_backtop.default,i,b):(0,_ui.renderEmptyElement)(D)])},D},render(){return this.renderVN()}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vxe-layout-body{position:relative;display:flex;flex-direction:column;flex-grow:1;overflow:hidden}.vxe-layout-body.is--padding{padding:var(--vxe-ui-layout-padding-double)}.vxe-layout-body--inner{flex-grow:1;overflow:auto;
|
|
1
|
+
.vxe-layout-body{position:relative;display:flex;flex-direction:column;flex-grow:1;overflow:hidden}.vxe-layout-body.is--padding{padding:var(--vxe-ui-layout-padding-double)}.vxe-layout-body--inner{flex-grow:1;overflow:auto}.vxe-layout-body--scrollbar{flex-grow:1;overflow:hidden}
|
package/lib/list/src/list.js
CHANGED
|
@@ -14,7 +14,7 @@ var _utils = require("../../ui/src/utils");
|
|
|
14
14
|
var _log = require("../../ui/src/log");
|
|
15
15
|
var _anime = require("../../ui/src/anime");
|
|
16
16
|
var _util = require("./util");
|
|
17
|
-
var _loading = _interopRequireDefault(require("../../loading
|
|
17
|
+
var _loading = _interopRequireDefault(require("../../loading"));
|
|
18
18
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
19
|
const {
|
|
20
20
|
warnLog,
|
package/lib/list/src/list.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
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"),_store=require("./store"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_log=require("../../ui/src/log"),_anime=require("../../ui/src/anime"),_util=require("./util"),_loading=_interopRequireDefault(require("../../loading/src/loading"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{warnLog,errLog}=(0,_log.createComponentLog)("tree");function getRowKeyByField(e,t){return e?""+(e[t]||""):""}function getRowIdByField(e,t){return e?(e=getRowKeyByField(e,t),(0,_utils.enModelValue)(e)):""}function createReactData(){return{scrollYLoad:!1,bodyHeight:0,headHeight:0,footHeight:0,customHeight:0,customMaxHeight:0,parentHeight:0,topSpaceHeight:0,rowList:[],selectRadioRow:null,currRowFlag:1,updateCheckboxFlag:1,isAllChecked:!1,isAllIndeterminate:!1,insertRowFlag:1,removeRowFlag:1,dragRow:null,dragTipText:"",isCrossDragRow:!1}}function createInternalData(){return{resizeObserver:void 0,fullData:[],afterList:[],fullKeyMaps:{},rowMaps:{},lastScrollLeft:0,lastScrollTop:0,scrollYStore:{startIndex:0,endIndex:0,visibleSize:0,offsetSize:0,rowHeight:0},currentRow:null,selectCheckboxMaps:{},insertRowMaps:{},removeRowMaps:{}}}let crossListDragRowObj=null;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeList",props:{data:Array,height:[Number,String],maxHeight:[Number,String],loading:Boolean,className:[String,Function],size:{type:String,default:()=>(0,_ui.getConfig)().list.size||(0,_ui.getConfig)().size},autoResize:{type:Boolean,default:()=>(0,_ui.getConfig)().list.autoResize},syncResize:[Boolean,String,Number],showSeq:{type:Boolean,default:()=>(0,_ui.getConfig)().list.showSeq},showRadio:{type:Boolean,default:()=>(0,_ui.getConfig)().list.showRadio},checkRowKey:[String,Number],radioConfig:Object,showCheckbox:{type:Boolean,default:()=>(0,_ui.getConfig)().list.showCheckbox},checkRowKeys:Array,checkboxConfig:Object,rowConfig:Object,dragConfig:Object,menuConfig:Object,virtualYConfig:Object,scrollY:Object},emits:["update:checkRowKey","update:checkRowKeys","row-click","row-dblclick","current-change","radio-change","checkbox-change","checkbox-all","scroll","row-dragstart","row-dragover","row-dragend","row-remove-dragend","row-insert-dragend","row-menu","menu-click"],setup(S,e){let{slots:T,emit:o}=e;var t=_xeUtils.default.uniqueId();let i=_xeUtils.default.browse(),j=(0,_ui.useSize)(S).computeSize,F=(0,_vue.reactive)(createReactData()),H=createInternalData(),v=(0,_store.getCrossListDragRowInfo)(),b=(0,_vue.ref)(),N=(0,_vue.ref)(),P=(0,_vue.ref)(),y=(0,_vue.ref)(),z=(0,_vue.ref)(),Y=(0,_vue.ref)(),V=(0,_vue.ref)(),h={refElem:b},B={xID:t,props:S,context:e,reactData:F,internalData:H,getRefMaps:()=>h},O=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().list.rowConfig,S.rowConfig)),K=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().list.dragConfig,S.dragConfig)),w=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().list.virtualYConfig||(0,_ui.getConfig)().list.scrollY,S.virtualYConfig||S.scrollY)),A=(0,_vue.computed)(()=>{var e=O.value.keyField;return e||""}),U=(0,_vue.computed)(()=>{var e=S.dragConfig,t=K.value;return e&&(0,_utils.isEnableConf)(t)}),f=(0,_vue.computed)(()=>{var e=O.value.height;return e}),$=(0,_vue.computed)(()=>Object.assign({showIcon:!0},(0,_ui.getConfig)().list.radioConfig,S.radioConfig)),q=(0,_vue.computed)(()=>Object.assign({showIcon:!0},(0,_ui.getConfig)().list.checkboxConfig,S.checkboxConfig)),x=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().list.menuConfig,S.menuConfig)),X=(0,_vue.computed)(()=>{var e=f.value,t={};return e&&(t["--vxe-ui-list-row-height"]=(0,_dom.toCssUnit)(e)),t}),G=(0,_vue.computed)(()=>{var{height:e,maxHeight:t}=S,{customHeight:r,customMaxHeight:o,headHeight:l,footHeight:a}=F,i={};return e?i.height=(0,_dom.toCssUnit)(Math.max(20,r-l-a)):t&&(i.height="auto",i.maxHeight=(0,_dom.toCssUnit)(Math.max(20,o-l-a))),i}),R=(e,t,r)=>{o(e,(0,_ui.createEvent)(r,{$list:B},t))},s=e=>{o("update:checkRowKeys",e)},n=e=>{o("update:checkRowKey",e)},_=e=>getRowIdByField(e,A.value),p=e=>{var t=F.parentHeight,e=S[e];let r=0;return r=e?"100%"===e||"auto"===e?t:(r=(0,_dom.isScale)(e)?Math.floor((_xeUtils.default.toInteger(e)||1)/100*t):_xeUtils.default.toNumber(e),Math.max(40,r)):r},W=()=>{var e=N.value,t=P.value;F.headHeight=e?Math.floor(e.offsetHeight):0,F.footHeight=t?Math.floor(t.offsetHeight):0,F.customHeight=p("height"),F.customMaxHeight=p("maxHeight")},m=()=>{var e=F.scrollYLoad,{scrollYStore:t,fullData:r}=H;F.bodyHeight=e?r.length*t.rowHeight:0,F.topSpaceHeight=e?Math.max(t.startIndex*t.rowHeight,0):0},J=()=>{var e=H.fullData;H.afterList=e.slice(0),se()},C=e=>{var t=F.scrollYLoad;let{fullData:r,scrollYStore:o,rowMaps:l}=H,a=A.value;e&&J();e=t?r.slice(o.startIndex,o.endIndex):r.slice(0);return a&&e.forEach((e,t)=>{e=getRowIdByField(e,a),e=l[e];e&&(e.$index=t)}),F.rowList=e,(0,_vue.nextTick)()},Q=()=>{C(),m()},Z=()=>(0,_vue.nextTick)().then(()=>{var e=F.scrollYLoad,t=H.scrollYStore,r=z.value,o=w.value;let l=0,a;(a=r?(a=o.sItem?r.querySelector(o.sItem):a)||r.children[0]:a)&&(l=a.offsetHeight),l=Math.max(12,l),t.rowHeight=l,(e?(r=y.value,e=Math.max(8,Math.ceil(r.clientHeight/l)),r=o.oSize?_xeUtils.default.toNumber(o.oSize):i.edge?10:0,t.offsetSize=r,t.visibleSize=e,t.endIndex=Math.max(t.startIndex+e+r,t.endIndex),Q):m)()}),ee=()=>{var e=y.value;return e&&(e.scrollTop=0),(0,_vue.nextTick)()},te=(e,t)=>{var r=y.value;return e&&!_xeUtils.default.isNumber(e)&&(t=e.top,e=e.left),_xeUtils.default.isNumber(e)&&(r.scrollLeft=e),_xeUtils.default.isNumber(t)&&(r.scrollTop=t),F.scrollYLoad?new Promise(e=>{setTimeout(()=>{(0,_vue.nextTick)(()=>{e()})},50)}):(0,_vue.nextTick)()},re=()=>{let{lastScrollLeft:e,lastScrollTop:t}=H;return ee().then(()=>{if(e||t)return H.lastScrollLeft=0,H.lastScrollTop=0,te(e,t)})},k=()=>{var t=b.value;if(t){var r,o=t.parentElement;let e=0;if(o&&(r=getComputedStyle(o),e=o.clientHeight-Math.ceil(_xeUtils.default.toNumber(r.paddingLeft)+_xeUtils.default.toNumber(r.paddingRight))),F.parentHeight=e,W(),t.clientWidth&&t.clientHeight)return Z()}return(0,_vue.nextTick)()},oe=e=>{var t=H.scrollYStore,{startIndex:r,endIndex:o,visibleSize:l,offsetSize:a,rowHeight:i}=t,e=e.target.scrollTop,e=Math.floor(e/i),i=Math.max(0,e-1-a),a=e+l+a;!(e<=r||o-l-1<=e)||r===i&&o===a||(t.startIndex=i,t.endIndex=a,Q())},le=e=>{var t=e.target,r=t.scrollTop,t=t.scrollLeft,o=t!==H.lastScrollLeft,l=r!==H.lastScrollTop;H.lastScrollTop=r,H.lastScrollLeft=t,F.scrollYLoad&&oe(e),R("scroll",{scrollLeft:t,scrollTop:r,isX:o,isY:l},e)},ae=()=>{var e=S.checkRowKey,t=H.fullKeyMaps;e?(t=t[e],F.selectRadioRow=t||null):F.selectRadioRow=null},ie=()=>{var e=S.checkRowKeys,t=H.fullKeyMaps,r=A.value,o={};if(e&&e.length)for(var l of e){l=t[l];l&&(o[getRowIdByField(l,r)]=l)}H.selectCheckboxMaps=o,g()},se=()=>{let{afterList:e,rowMaps:l}=H,a=A.value,i=0;e.forEach((e,t)=>{var r=getRowIdByField(e,a),o=l[r];o?o._index=i:(o={item:e,index:t,$index:-1,_index:i},l[r]=o),i++})},ne=()=>{var e=H.fullData;let l=A.value,a={},i={};l&&e.forEach((e,t)=>{var r=getRowIdByField(e,l),o=getRowKeyByField(e,l);a[o]=e,i[r]={item:e,index:t,$index:-1,_index:-1}}),H.fullKeyMaps=a,H.rowMaps=i},r=e=>{var t=H.scrollYStore,r=w.value,e=e?e.slice(0):[];return Object.assign(t,{startIndex:0,endIndex:1,visibleSize:0}),H.fullData=e,H.insertRowMaps={},F.insertRowFlag++,H.removeRowMaps={},F.removeRowFlag++,F.scrollYLoad=!!r.enabled&&-1<r.gt&&(0===r.gt||r.gt<=e.length),ne(),C(!0),ae(),ie(),Z().then(()=>{re()})},ue=()=>{I(),D(),k()},ce=()=>{var e=b.value;if(e){let t="row--drag-origin";_xeUtils.default.arrayEach(e.querySelectorAll("."+t),e=>{(e.draggable=!1,_dom.removeClass)(e,t)})}},de=e=>{var t=w.value.sItem,r=b.value;if(r){e=_(e);_xeUtils.default.arrayEach(r.querySelectorAll(`.vxe-list--row[rowid="${e}"]`+(t?t+`[rowid="${e}"]`:"")),e=>{(0,_dom.addClass)(e,"row--drag-origin")})}},ge=e=>{var t=F.dragRow,r=K.value.tooltipMethod;let o="";o=r?""+(r({$list:B,row:t})||""):(0,_ui.getI18n)("vxe.list.dragTip",[e.textContent||""]),F.dragTipText=o},u=()=>{var e=V.value,t=Y.value;e&&(e.style.display=""),t&&(t.style.display="")},D=()=>{crossListDragRowObj=null,v.row=null},ve=()=>{var e=F.dragRow;e&&(u(),ce(),D(),F.dragRow=null)},he=(e,t)=>{e.stopPropagation();var r=t.row,{isCrossListDrag:o,trigger:l,dragStartMethod:a}=K.value,i=e.currentTarget,l="row"===l?i:i.parentElement.parentElement;ce(),a&&!a(t)?(l.draggable=!1,F.dragRow=null,u()):(o&&(v.row=r,crossListDragRowObj={$oldList:B,$newList:null}),i={row:r},F.dragRow=r,F.isCrossDragRow=!1,l.draggable=!0,de(r),ge(l),R("row-dragstart",i,e))},we=()=>{ve()},c=(e,t,r,o)=>{var l=b.value;if(l){var a=l.getBoundingClientRect(),i=l.clientHeight;if(t){var s=Y.value;if(s)if(r){var n=t.getBoundingClientRect();let e=t.clientHeight;t=Math.max(1,n.y-a.y);t+e>i&&(e=i-t),s.style.display="block",s.style.top=t+"px",s.style.height=e+"px",s.setAttribute("drag-pos",o)}else s.style.display=""}n=V.value;n&&(n.style.display="block",n.style.top=Math.min(l.clientHeight-l.scrollTop-n.clientHeight,e.clientY-a.y)+"px",n.style.left=Math.min(l.clientWidth-l.scrollLeft-n.clientWidth-1,e.clientX-a.x)+"px",n.setAttribute("drag-status",r?"normal":"disabled"))}},I=()=>{var e=b.value;u(),ce(),(0,_anime.clearRowAnimate)(e,[".vxe-list--row"]),F.dragRow=null},fe=(l,a,i,s)=>{let n=H.fullData;var e=K.value;let{animation:g,dragEndMethod:t}=e;e=t||(e?e.dragEndMethod:null);let v="bottom"===s?1:0,h=b.value,w={status:!1};if(h&&i&&a){if(i!==a){var f={oldRow:a,newRow:i,dragRow:a,dragPos:s,offsetIndex:v};let u=_(a),c=E(n,u);var x,p=L(i);let d=0,t=-1,r=void(g&&(p=h.querySelector(`.vxe-list--row[rowid="${p}"]`),x=h.querySelector(`.vxe-list--row[rowid="${u}"]`),(p=p||x)&&(d=p.offsetHeight),x)&&(t=x.offsetTop)),o;return Promise.resolve(!e||e(f)).then(e=>{if(!e)return w;r=M(n,a),n.splice(r,1);var e=M(n,i);return o=e+v,n.splice(o,0,a),C(),F.scrollYLoad&&m(),l&&(e={oldRow:a,newRow:i,dragRow:a,dragPos:s,offsetIndex:v,_index:{newIndex:o,oldIndex:r}},R("row-dragend",e,l)),(0,_vue.nextTick)().then(()=>{if(g){var o=F.rowList,l=H.fullData,a=E(l,u),i=l[0],i=M(l,i),s=h;if(-1<i){var n=i+l.length;let e=-1,t=-1,r=1;c<i?(e=0,t=a-i):c>n?(n=E(o,u),e=n+1,t=l.length,r=-1):a>c?(e=c-i,t=e+a-c):(e=a-i,t=e+c-a+1,r=-1);o=l.slice(e,t);if(o.length){let t=[];o.forEach(e=>{e=_(e);t.push(`.vxe-list--row[rowid="${e}"]`)});n=s.querySelectorAll(t.join(","));(0,_anime.moveRowAnimateToTb)(n,r*d)}}i=[`.vxe-list--row[rowid="${u}"]`],a=s.querySelectorAll(i.join(",")),l=a[0];-1<t&&l&&(0,_anime.moveRowAnimateToTb)(a,t-l.offsetTop)}k()}).then(()=>({status:!0}))}).catch(()=>w).then(e=>(I(),D(),e))}I(),D()}return Promise.resolve(w)},xe=e=>{e.dataTransfer&&e.dataTransfer.setDragImage((0,_dom.getTpImg)(),0,0)},pe=e=>{var t=F.dragRow,{prevDragRow:r,prevDragPos:o}=H,l=K.value.isCrossListDrag;if(l&&crossListDragRowObj){l=crossListDragRowObj.$newList;if(l&&l.xID!==B.xID)return void l.handleCrossListRowDragInsertEvent(e)}fe(e,t,r,o)},Re=e=>{var t=F.dragRow,r=H.fullData,o=K.value.isCrossListDrag,l=(t||e.preventDefault(),e.currentTarget),a=l.getAttribute("rowid")||"",r=d(r,a);if(r){e.preventDefault();var i=e.clientY-l.getBoundingClientRect().y<l.clientHeight/2?"top":"bottom";if(H.prevDragRow=r,H.prevDragPos=i,o&&crossListDragRowObj){var{$oldList:o,$newList:s}=crossListDragRowObj;if(o){var n=o.reactData;if(o.xID!==B.xID)return s&&s.xID!==B.xID&&s.hideCrossListRowDropClearStatus(),o.hideCrossListRowDropClearStatus(),n.isCrossDragRow=!0,F.dragTipText=n.dragTipText,crossListDragRowObj.$newList=B,void c(e,l,!0,i);s&&s.hideCrossListRowDropClearStatus(),F.isCrossDragRow=!1,n.isCrossDragRow=!1,crossListDragRowObj.$newList=null}}t&&_(t)===a?c(e,l,!1,i):(o={oldRow:t,targetRow:r,dragPos:i,dragRow:t,offsetIndex:"bottom"==i?1:0},c(e,l,!0,i),R("row-dragover",o,e))}},_e=(e,t)=>{var{trigger:r,disabledMethod:o}=K.value;let l=!1;U.value&&(l="row"===r);r={row:t,$list:B};!l||o&&o(r)||he(e,r)},me=(e,t)=>{var{showRadio:r,showCheckbox:o}=S,l=H.currentRow,a=$.value,i=q.value,s=O.value.isCurrent;let n=!1,u=!1,c=!1;s?(n=!0,Te(e,t)):l&&(H.currentRow=null,F.currRowFlag++),r&&"row"===a.trigger&&(u=!0,Fe(e,t)),o&&"row"===i.trigger&&(c=!0,Se(e,t)),R("row-click",{row:t,triggerCurrent:n,triggerRadio:u,triggerCheckbox:c},e)},Ce=(e,t)=>{R("row-dblclick",{row:t},e)},L=e=>getRowKeyByField(e,A.value),l=(e,t)=>""+e==""+t,be=(e,t)=>!(!e||!t)&&(e===t||l(_(e),_(t))),ye=(e,t)=>e&&l(L(e),t);let d=(e,t)=>{let r=A.value;return _xeUtils.default.find(e,e=>l(getRowIdByField(e,r),t))},M=(e,t)=>t?_xeUtils.default.findIndexOf(e,e=>be(e,t)):-1,E=(e,t)=>{let r=A.value;return _xeUtils.default.findIndexOf(e,e=>l(getRowIdByField(e,r),t))},ke=e=>{var t=F.selectRadioRow;return L(t)===e};let De=e=>{var t=F.updateCheckboxFlag,r=H.selectCheckboxMaps;return!(!t||!r[e])};t=()=>{var e=F.updateCheckboxFlag,t=H.selectCheckboxMaps;let r=[];return e&&_xeUtils.default.each(t,e=>{e&&r.push(e)}),r};let Ie=()=>{var e=F.updateCheckboxFlag,t=H.selectCheckboxMaps;let r=A.value,o=[];return e&&_xeUtils.default.each(t,e=>{e&&(e=getRowKeyByField(e,r),o.push(e))}),o},Le=()=>{H.selectCheckboxMaps={},F.updateCheckboxFlag++,F.isAllChecked=!1,F.isAllIndeterminate=!1;return s([]),(0,_vue.nextTick)()},Me=e=>{var{fullData:t,selectCheckboxMaps:r}=H,o=A.value;if(e){var l,a=[];for(l of t){var i=getRowKeyByField(l,o);r[getRowIdByField(l,o)]=l,a.push(i)}return s(a),g()}return Le()},g=()=>{var{selectCheckboxMaps:e,fullData:t}=H,r=A.value,o=q.value.checkMethod;let l=!1,a=!1;if(o){for(var i of t)if(o({row:i,$list:B}))if(e[getRowIdByField(i,r)])l=!0;else if(a=!0,l)break}else for(var s of t)if(e[getRowIdByField(s,r)])l=!0;else if(a=!0,l)break;return F.isAllChecked=l&&!a,F.isAllIndeterminate=l&&a,F.updateCheckboxFlag++,(0,_vue.nextTick)()},Ee=e=>{var t=F.isAllChecked,t=!t;t?Me(!0):Le(),R("checkbox-all",{checked:t},e)},Se=(t,r)=>{t.preventDefault(),t.stopPropagation();var o=H.selectCheckboxMaps,l=q.value.checkMethod,a=_(r),l=!!l&&!l({$list:B,row:r});if(!l){let e=!1;o[a]?delete o[a]:(e=!0,o[a]=r),F.updateCheckboxFlag++,g();l=_xeUtils.default.keys(o).map(_utils.deModelValue);s(l),R("checkbox-change",{row:r,value:l,checked:e},t)}},Te=(e,t)=>{e.preventDefault();var r=O.value.currentMethod;let o=!1;(o=r?!r({row:t}):o)||(H.currentRow=t,F.currRowFlag++,R("current-change",{row:t,checked:!0},e))},Fe=(t,r)=>{t.preventDefault(),t.stopPropagation();var o=F.selectRadioRow,{strict:l,checkMethod:a}=$.value,i=L(r),a=!!a&&!a({$list:B,row:r});if(!a){a=i;let e=!0;l&&o&&i===L(o)?(e=!1,F.selectRadioRow=null):F.selectRadioRow=r,n(a),R("radio-change",{row:r,value:a,checked:e},t)}},He=(e,t)=>{let{fullData:o,rowMaps:l}=H,a=A.value,i=t?"push":"unshift";e.forEach(e=>{var t=getRowIdByField(e,a),r=(0,_util.getItemCacheObj)(e);o[i](e),l[t]=r})},Be=(e,t,r)=>{let{fullData:o,rowMaps:l,removeRowMaps:a,insertRowMaps:i}=H,s=A.value;if(!s)return errLog("vxe.error.reqSupportProp",["insert() | insertAt() | insertNextAt()","row-config.keyField"]),Promise.resolve({row:null,rows:[]});_xeUtils.default.isArray(e)||(e=[e]);let n=t;if((_xeUtils.default.isString(t)||_xeUtils.default.isNumber(t))&&(t=l[t])&&(n=t.item),!e.length)return Promise.resolve({row:null,rows:[]});let u=e.map(e=>_xeUtils.default.assign({},e));if(_xeUtils.default.eqNull(n))He(u,!1);else if(-1===n)He(u,!0);else{t=o.findIndex(e=>n[s]===e[s]);if(-1<t){u.forEach(e=>{var t=getRowIdByField(e,s),e=(0,_util.getItemCacheObj)(e);l[t]=e});let e=t;r&&(e+=1),o.splice(e,0,...u)}else warnLog("vxe.error.unableInsert"),He(u,!0)}return u.forEach(e=>{var t=getRowIdByField(e,s);a[t]?(delete a[t],i[t]&&delete i[t]):i[t]=e}),F.removeRowFlag++,F.insertRowFlag++,ne(),C(!0),se(),g(),F.scrollYLoad&&m(),(0,_vue.nextTick)().then(()=>({row:u.length?u[u.length-1]:null,rows:u}))},Oe=(o,l)=>{var e=S.menuConfig,t=x.value,r=O.value.isCurrent;(e?(0,_utils.isEnableConf)(t):t.enabled)&&({options:e,visibleMethod:t}=t,t&&!t({$list:B,options:e,row:l})||(r?Te(o,l):H.currentRow&&(H.currentRow=null,F.currRowFlag++),_ui.VxeUI.contextMenu&&_ui.VxeUI.contextMenu.openByEvent(o,{options:e,events:{optionClick(e){var t=e.option,r=_ui.menus.get(t.code),r=r?r.listMenuMethod:null,t={menu:t,row:l,$event:o,$list:B};r&&r(t,o),R("menu-click",t,e.$event)}}}))),R("row-menu",{row:l},o)};e={dispatchEvent:R,loadData:r,reloadData(e){return ee(),r(e)},getFullData(){var e=H.fullData;return e},recalculate:k,scrollTo:te,refreshScroll:re,clearScroll:ee,getRowKey:L,eqRowKey:l,eqRow:be,eqRowByKey:ye,findRow:(e,t)=>t?_xeUtils.default.find(e,e=>be(e,t)):null,findRowByKey:d,findRowIndexOf:M,findRowIndexOfByKey:E,isCheckedByRadioRowKey:ke,isCheckedByRadioRow:e=>ke(L(e)),isCheckedByCheckboxRowKey:De,isCheckedByCheckboxRow:e=>De(L(e)),setCurrentRow:e=>(H.currentRow=e,F.currRowFlag++,(0,_vue.nextTick)()),setCurrentRowByKey:e=>{var t=H.fullData;return H.currentRow=d(t,e),F.currRowFlag++,(0,_vue.nextTick)()},getCurrentRow:()=>{var e=H.currentRow;return e},getCurrentRowKey:()=>{var e=H.currentRow;return e?L(e):null},clearCurrentRow:()=>(H.currentRow=null,F.currRowFlag++,(0,_vue.nextTick)()),setRadioRow:e=>{F.selectRadioRow=e;e=L(e);return n(e),(0,_vue.nextTick)()},setRadioRowByKey:e=>{var t=H.fullData,t=(F.selectRadioRow=d(t,e),e);return n(t),(0,_vue.nextTick)()},getRadioRow:()=>{var e=F.selectRadioRow;return e},getRadioRowKey:()=>{var e=F.selectRadioRow;return e?L(e):null},clearRadioRow:()=>(F.selectRadioRow=null,n(null),(0,_vue.nextTick)()),setCheckboxRow:(e,t)=>{let r=H.selectCheckboxMaps,o=A.value;(e?_xeUtils.default.isArray(e)?e:[e]:[]).forEach(t?e=>{var t=getRowIdByField(e,o);r[t]||(r[t]=e)}:e=>{e=getRowIdByField(e,o);r[e]&&delete r[e]});e=Ie();return s(e),g()},setCheckboxRowByKey:(e,t)=>{let{selectCheckboxMaps:r,fullKeyMaps:o}=H,l=A.value;(e?_xeUtils.default.isArray(e)?e:[e]:[]).forEach(t?e=>{var t,e=o[e||""];e&&(t=getRowIdByField(e,l),e)&&!r[t]&&(r[t]=e)}:e=>{var e=o[e||""];e&&(e=getRowIdByField(e,l),r[e])&&delete r[e]});e=Ie();return s(e),g()},getCheckboxRecords:t,getCheckboxRows:t,getCheckboxRowKeys:Ie,clearCheckboxRow:Le,setAllCheckboxRow:Me,insert(e){return Be(e,null)},insertAt(e,t){return Be(e,t)},insertNextAt(e,t){return Be(e,t,!0)},getInsertRecords(){var e=H.insertRowMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},isInsertByRow(e){e=_(e);return!!F.insertRowFlag&&!!H.insertRowMaps[e]},remove(e){let{fullData:r,insertRowMaps:t,removeRowMaps:o}=H;if(!A.value)return errLog("vxe.error.reqSupportProp",["insert() | insertAt() | insertNextAt()","row-config.keyField"]),Promise.resolve({row:null,rows:[]});let l=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=r,e.length?(e.forEach(e=>{var t;B.isInsertByRow(e)||(t=_(e),o[t]=e)}),r===e?(e=l=r.slice(0),H.fullData=[]):e.forEach(e=>{let t=_(e);var e=_xeUtils.default.findIndexOf(r,e=>t===_(e));-1<e&&(e=r.splice(e,1),l.push(e[0]))}),e.forEach(e=>{e=_(e);t[e]&&delete t[e]}),F.removeRowFlag++,F.insertRowFlag++,ne(),C(!0),se(),g(),F.scrollYLoad&&m(),(0,_vue.nextTick)().then(()=>k()).then(()=>({row:l.length?l[l.length-1]:null,rows:l}))):Promise.resolve({row:null,rows:[]})},getRemoveRecords(){var e=H.removeRowMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},isRemoveByRow(e){e=_(e);return!!F.removeRowFlag&&!!H.removeRowMaps[e]},getRecordset(){return{insertRecords:B.getInsertRecords(),removeRecords:B.getRemoveRecords()}}};Object.assign(B,e,{handleCrossListRowDragCancelEvent(){I(),D()},handleCrossListRowDragFinishEvent(t){var l=F.rowList,a=H.rowMaps;let{animation:i,isCrossListDrag:e}=K.value,s=b.value;if(s&&e&&crossListDragRowObj&&v){var n=v.row;if(n){var u=_(n),a=a[u];let r=0,e=-1,o=(a&&(i&&(u=s.querySelector(`.vxe-list--row[rowid="${u}"]`))&&(r=u.offsetHeight),e=a.$index),-1<e&&e<l.length-1?l.slice(e+1):[]);u=[n];B.remove(u).then(()=>{if(i&&r&&o.length){var e=s;let t=[];o.forEach(e=>{e=_(e);t.push(`.vxe-list--row[rowid="${e}"]`)});e=e.querySelectorAll(t.join(","));(0,_anime.moveRowAnimateToTb)(e,r)}}),R("row-remove-dragend",{row:n},t),ue()}}},handleCrossListRowDragoverEmptyEvent(e){var t,r=F.rowList,o=K.value.isCrossListDrag;o&&crossListDragRowObj&&!r.length&&({$oldList:o,$newList:r}=crossListDragRowObj,o)&&(t=o).xID!==B.xID&&(r&&r.xID!==B.xID&&r.hideCrossListRowDropClearStatus(),e.preventDefault(),o.hideCrossListRowDropClearStatus(),crossListDragRowObj.$newList=B,H.prevDragRow=null,F.dragTipText=t.dragTipText,c(e,e.currentTarget,!0,""))},handleCrossListRowDragInsertEvent(n){let{prevDragRow:u,prevDragPos:c}=H;let{animation:d,isCrossListDrag:e,dragEndMethod:t}=K.value;if(e&&crossListDragRowObj&&v){let l=v.row,i=crossListDragRowObj.$oldList,s=b.value;if(s&&(i&&l)){let a=l,r=-1;u&&(r="bottom"===c?1:0);var g={oldRow:a,newRow:u,dragRow:a,dragPos:c,offsetIndex:r};let o={status:!1};Promise.resolve(!t||t(g)).then(e=>{if(!e)return i&&i.xID!==B.xID&&i.handleCrossListRowDragCancelEvent(n),ue(),o;let t=Promise.resolve();e=[a];i.handleCrossListRowDragFinishEvent(n),t=u?"bottom"===c?B.insertNextAt(e,u):B.insertAt(e,u):B.insert(e),B.dispatchEvent("row-insert-dragend",{oldRow:l,newRow:u,dragRow:a,dragPos:c,offsetIndex:r},n),I(),t.then(()=>{var e=F.rowList,r=H.rowMaps,o=_(a),r=r[o];let l=0,t=-1;r&&(d&&(o=s.querySelector(`.vxe-list--row[rowid="${o}"]`))&&(l=o.offsetHeight),t=r.$index);o=-1<t?e.slice(t):[];if(d&&l&&o.length){r=s;let t=[];o.forEach(e=>{e=_(e);t.push(`.vxe-list--row[rowid="${e}"]`)});e=r.querySelectorAll(t.join(","));(0,_anime.moveRowAnimateToTb)(e,-l)}})})}}},hideCrossListRowDropClearStatus(){u()}});let Ke=(t,e,r,o)=>{var l=S.showRadio,{showIcon:a,visibleMethod:i}=$.value,i=!i||i({$list:B,row:t});return l&&a&&i?(0,_vue.h)("div",{key:"ct2",class:["vxe-list--radio-option",{"is--checked":o,"is--disabled":r}],onClick(e){r||Fe(e,t)}},[(0,_vue.h)("span",{class:["vxe-radio--icon",o?(0,_ui.getIcon)().RADIO_CHECKED:r?(0,_ui.getIcon)().RADIO_DISABLED_UNCHECKED:(0,_ui.getIcon)().RADIO_UNCHECKED]})]):(0,_ui.renderEmptyElement)(B)},Ae=(t,e,r,o)=>{var l=S.showCheckbox,{showIcon:a,visibleMethod:i}=q.value,i=!i||i({$list:B,row:t});return l&&a&&i?(0,_vue.h)("div",{key:"ct3",class:["vxe-list--checkbox-option",{"is--checked":o,"is--disabled":r}],onClick(e){r||Se(e,t)}},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",o?(0,_ui.getIcon)().CHECKBOX_CHECKED:r?(0,_ui.getIcon)().CHECKBOX_DISABLED_UNCHECKED:(0,_ui.getIcon)().CHECKBOX_UNCHECKED]})]):(0,_ui.renderEmptyElement)(B)};let Ue=(0,_vue.ref)(0),a=((0,_vue.watch)(()=>S.data?S.data.length:-1,()=>{Ue.value++}),(0,_vue.watch)(()=>S.data,()=>{Ue.value++}),(0,_vue.watch)(Ue,()=>{r(S.data||[])}),(0,_vue.ref)(0)),$e=((0,_vue.watch)(()=>S.height,()=>{a.value++}),(0,_vue.watch)(()=>S.maxHeight,()=>{a.value++}),(0,_vue.watch)(()=>S.syncResize,()=>{a.value++}),(0,_vue.watch)(f,()=>{a.value++}),(0,_vue.watch)(a,()=>{(0,_vue.nextTick)(()=>{k()})}),(0,_vue.watch)(()=>S.checkRowKey,()=>{ae()}),(0,_vue.ref)(0));return(0,_vue.watch)(()=>S.checkRowKeys?S.checkRowKeys.length:-1,()=>{$e.value++}),(0,_vue.watch)(()=>S.checkRowKeys,()=>{$e.value++}),(0,_vue.watch)($e,()=>{ie()}),(0,_vue.onActivated)(()=>{k().then(()=>re())}),(0,_vue.nextTick)(()=>{r(S.data||[])}),(0,_vue.onMounted)(()=>{var{showSeq:e,showRadio:t,showCheckbox:r}=S,o=O.value.useKey,l=U.value,a=A.value;a||(e&&errLog("vxe.error.reqSupportProp",["show-seq","row-config.keyField"]),t&&errLog("vxe.error.reqSupportProp",["show-radio","row-config.keyField"]),r&&errLog("vxe.error.reqSupportProp",["show-checkbox","row-config.keyField"]),l&&errLog("vxe.error.reqSupportProp",["drag-config","row-config.keyField"])),o&&!a&&errLog("vxe.error.reqSupportProp",["row-config.useKey","row-config.keyField"]),S.autoResize&&(e=b.value,(t=_ui.globalResize.create(()=>k())).observe(e),e&&t.observe(e.parentElement),H.resizeObserver=t),k(),_ui.globalEvents.on(B,"resize",k)}),(0,_vue.onBeforeUnmount)(()=>{var e=H.resizeObserver;e&&e.disconnect(),_ui.globalEvents.off(B,"resize"),_xeUtils.default.assign(F,createReactData()),_xeUtils.default.assign(H,createInternalData())}),B.renderVN=()=>{var{showCheckbox:e,className:t,loading:r}=S,{bodyHeight:o,topSpaceHeight:l,rowList:a,isAllChecked:i,isAllIndeterminate:s}=F,n=T.default,u=T.header,c=T.footer,d=j.value,g=X.value,v=G.value,h=$.value,w=q.value,{showHeader:f,headerTitle:x}=w,{trigger:p,isCrossListDrag:R}=K.value,{isHover:_,padding:m}=O.value,C=U.value,e=e&&!1!==f,f={};return R&&!a.length&&(f.onDragover=B.handleCrossListRowDragoverEmptyEvent),(0,_vue.h)("div",Object.assign({ref:b,class:["vxe-list",t?_xeUtils.default.isFunction(t)?t({$list:B}):t:"",{["size--"+d]:d,"is--drag":C,"is--loading":r}],style:g},f),[u||e?(0,_vue.h)("div",{ref:N,class:"vxe-list--header-wrapper"},[e?(0,_vue.h)("div",{class:"vxe-list--header-left"},[(0,_vue.h)("div",{class:["vxe-list--checkbox-header",{"is--checked":i,"is--indeterminate":s}],onClick:Ee},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",i?(0,_ui.getIcon)().CHECKBOX_CHECKED:s?(0,_ui.getIcon)().CHECKBOX_INDETERMINATE:(0,_ui.getIcon)().CHECKBOX_UNCHECKED]}),(0,_vue.h)("span",{class:"vxe-checkbox--label"},_xeUtils.default.eqNull(x)?(0,_ui.getI18n)("vxe.list.allChecked"):(0,_utils.getText)(x))])]):(0,_ui.renderEmptyElement)(B),u?(0,_vue.h)("div",{class:"vxe-list--header-content"},u({items:a,$list:B})):(0,_ui.renderEmptyElement)(B)]):(0,_ui.renderEmptyElement)(B),(0,_vue.h)("div",{ref:y,class:"vxe-list--virtual-wrapper",style:v,onScroll:le},[(0,_vue.h)("div",{class:"vxe-list--y-space",style:{height:o?o+"px":""}}),(0,_vue.h)("div",{ref:z,class:["vxe-list--body",{"trigger--row":"row"===p,"checkbox--highlight":w.highlight,"radio--highlight":h.highlight,"row--hover":_,"is--padding":m}],style:{marginTop:l?l+"px":""}},n?n({items:a,$list:B}):a.map((e,t)=>((t,e)=>{var{showRadio:r,showCheckbox:o}=S,{selectRadioRow:l,currRowFlag:a,updateCheckboxFlag:i}=F,{selectCheckboxMaps:s,currentRow:n}=H,u=T.content,c=T.extra,{trigger:d,icon:g,disabledMethod:v,visibleMethod:h}=K.value,w=$.value,f=q.value,{useKey:x,contentField:p,className:R,isCurrent:_}=O.value,m=U.value,C=A.value,b=R&&_xeUtils.default.isFunction(R),x=C||x||m||_||r||o,_=x&&C?getRowIdByField(t,C):"",y=(0,_utils.enModelValue)(_);let k={row:t,$list:B},D=!1,I=!1,L=(r&&(D=l&&(t===l||ye(l,_)),I=!!w.checkMethod&&!w.checkMethod({$list:B,row:t})),!1),M=!1;o&&(L=!(!i||!s[y]),M=!!f.checkMethod&&!f.checkMethod({$list:B,row:t}));l=[];r&&l.push(Ke(t,y,I,D)),o&&l.push(Ae(t,y,M,L));let E=!1;m&&C&&(!h||h(k))&&(w={},"row"!==d&&(E=!(!v||!v(k)),w.onMousedown=e=>{E||he(e,k)},w.onMouseup=we),l.push((0,_vue.h)("div",{key:"ct1",class:"vxe-list--row-drag"},[(0,_vue.h)("span",Object.assign({class:"vxe-list--drag-handle"},w),[(0,_vue.h)("i",{class:g||(0,_ui.getIcon)().LIST_DRAG})])]))),l.push((0,_vue.h)("div",{key:"ct5",class:"vxe-list--row-content"},u?u(k):p?(0,_utils.getText)(t[p]):"")),c&&l.push((0,_vue.h)("div",{key:"ct7",class:"vxe-list--row-extra"},c(k)));i={onMousedown(e){_e(e,t)},onMouseup:we,onClick(e){me(e,t)},onDblclick(e){Ce(e,t)},onContextmenu(e){Oe(e,t)}};return m&&(i.onDragstart=xe,i.onDragend=pe,i.onDragover=Re),(0,_vue.h)("div",Object.assign({key:x&&C?y:e,class:["vxe-list--row",b?R(k):R||"",{"is--drag-disabled":E,"is--current":a&&n&&ye(n,_),"is-radio--disabled":I,"is-radio--checked":D,"is-checkbox--disabled":M,"is-checkbox--checked":L}],rowid:x&&C?y:void 0},i),l)})(e,t)))]),c?(0,_vue.h)("div",{ref:P,class:"vxe-list--footer-wrapper"},c({items:a,$list:B})):(0,_ui.renderEmptyElement)(B),(()=>{var{dragRow:e,dragTipText:t}=F,r=K.value;return U.value?(0,_vue.h)("div",{class:"vxe-list--drag-wrapper"},[(0,_vue.h)("div",{ref:Y,class:["vxe-list--drag-row-line",{"is--guides":r.showGuidesStatus}]}),e&&r.showDragTip?(0,_vue.h)("div",{ref:V,class:"vxe-list--drag-sort-tip"},[(0,_vue.h)("div",{class:"vxe-list--drag-sort-tip-wrapper"},[(0,_vue.h)("div",{class:"vxe-list--drag-sort-tip-status"},[(0,_vue.h)("span",{class:["vxe-list--drag-sort-tip-normal-status",(0,_ui.getIcon)().LIST_DRAG_STATUS_NODE]}),(0,_vue.h)("span",{class:["vxe-list--drag-sort-tip-disabled-status",(0,_ui.getIcon)().LIST_DRAG_DISABLED]})]),(0,_vue.h)("div",{class:"vxe-list--drag-sort-tip-content"},t)])]):(0,_ui.renderEmptyElement)(B)]):(0,_ui.renderEmptyElement)(B)})(),(0,_vue.h)(_loading.default,{class:"vxe-list--loading",modelValue:r})])},B},render(){return this.renderVN()}});
|
|
1
|
+
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"),_store=require("./store"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_log=require("../../ui/src/log"),_anime=require("../../ui/src/anime"),_util=require("./util"),_loading=_interopRequireDefault(require("../../loading"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{warnLog,errLog}=(0,_log.createComponentLog)("tree");function getRowKeyByField(e,t){return e?""+(e[t]||""):""}function getRowIdByField(e,t){return e?(e=getRowKeyByField(e,t),(0,_utils.enModelValue)(e)):""}function createReactData(){return{scrollYLoad:!1,bodyHeight:0,headHeight:0,footHeight:0,customHeight:0,customMaxHeight:0,parentHeight:0,topSpaceHeight:0,rowList:[],selectRadioRow:null,currRowFlag:1,updateCheckboxFlag:1,isAllChecked:!1,isAllIndeterminate:!1,insertRowFlag:1,removeRowFlag:1,dragRow:null,dragTipText:"",isCrossDragRow:!1}}function createInternalData(){return{resizeObserver:void 0,fullData:[],afterList:[],fullKeyMaps:{},rowMaps:{},lastScrollLeft:0,lastScrollTop:0,scrollYStore:{startIndex:0,endIndex:0,visibleSize:0,offsetSize:0,rowHeight:0},currentRow:null,selectCheckboxMaps:{},insertRowMaps:{},removeRowMaps:{}}}let crossListDragRowObj=null;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeList",props:{data:Array,height:[Number,String],maxHeight:[Number,String],loading:Boolean,className:[String,Function],size:{type:String,default:()=>(0,_ui.getConfig)().list.size||(0,_ui.getConfig)().size},autoResize:{type:Boolean,default:()=>(0,_ui.getConfig)().list.autoResize},syncResize:[Boolean,String,Number],showSeq:{type:Boolean,default:()=>(0,_ui.getConfig)().list.showSeq},showRadio:{type:Boolean,default:()=>(0,_ui.getConfig)().list.showRadio},checkRowKey:[String,Number],radioConfig:Object,showCheckbox:{type:Boolean,default:()=>(0,_ui.getConfig)().list.showCheckbox},checkRowKeys:Array,checkboxConfig:Object,rowConfig:Object,dragConfig:Object,menuConfig:Object,virtualYConfig:Object,scrollY:Object},emits:["update:checkRowKey","update:checkRowKeys","row-click","row-dblclick","current-change","radio-change","checkbox-change","checkbox-all","scroll","row-dragstart","row-dragover","row-dragend","row-remove-dragend","row-insert-dragend","row-menu","menu-click"],setup(S,e){let{slots:T,emit:o}=e;var t=_xeUtils.default.uniqueId();let i=_xeUtils.default.browse(),j=(0,_ui.useSize)(S).computeSize,F=(0,_vue.reactive)(createReactData()),H=createInternalData(),v=(0,_store.getCrossListDragRowInfo)(),b=(0,_vue.ref)(),N=(0,_vue.ref)(),P=(0,_vue.ref)(),y=(0,_vue.ref)(),z=(0,_vue.ref)(),Y=(0,_vue.ref)(),V=(0,_vue.ref)(),h={refElem:b},B={xID:t,props:S,context:e,reactData:F,internalData:H,getRefMaps:()=>h},O=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().list.rowConfig,S.rowConfig)),K=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().list.dragConfig,S.dragConfig)),w=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().list.virtualYConfig||(0,_ui.getConfig)().list.scrollY,S.virtualYConfig||S.scrollY)),A=(0,_vue.computed)(()=>{var e=O.value.keyField;return e||""}),U=(0,_vue.computed)(()=>{var e=S.dragConfig,t=K.value;return e&&(0,_utils.isEnableConf)(t)}),f=(0,_vue.computed)(()=>{var e=O.value.height;return e}),$=(0,_vue.computed)(()=>Object.assign({showIcon:!0},(0,_ui.getConfig)().list.radioConfig,S.radioConfig)),q=(0,_vue.computed)(()=>Object.assign({showIcon:!0},(0,_ui.getConfig)().list.checkboxConfig,S.checkboxConfig)),x=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().list.menuConfig,S.menuConfig)),X=(0,_vue.computed)(()=>{var e=f.value,t={};return e&&(t["--vxe-ui-list-row-height"]=(0,_dom.toCssUnit)(e)),t}),G=(0,_vue.computed)(()=>{var{height:e,maxHeight:t}=S,{customHeight:r,customMaxHeight:o,headHeight:l,footHeight:a}=F,i={};return e?i.height=(0,_dom.toCssUnit)(Math.max(20,r-l-a)):t&&(i.height="auto",i.maxHeight=(0,_dom.toCssUnit)(Math.max(20,o-l-a))),i}),R=(e,t,r)=>{o(e,(0,_ui.createEvent)(r,{$list:B},t))},s=e=>{o("update:checkRowKeys",e)},n=e=>{o("update:checkRowKey",e)},_=e=>getRowIdByField(e,A.value),p=e=>{var t=F.parentHeight,e=S[e];let r=0;return r=e?"100%"===e||"auto"===e?t:(r=(0,_dom.isScale)(e)?Math.floor((_xeUtils.default.toInteger(e)||1)/100*t):_xeUtils.default.toNumber(e),Math.max(40,r)):r},W=()=>{var e=N.value,t=P.value;F.headHeight=e?Math.floor(e.offsetHeight):0,F.footHeight=t?Math.floor(t.offsetHeight):0,F.customHeight=p("height"),F.customMaxHeight=p("maxHeight")},m=()=>{var e=F.scrollYLoad,{scrollYStore:t,fullData:r}=H;F.bodyHeight=e?r.length*t.rowHeight:0,F.topSpaceHeight=e?Math.max(t.startIndex*t.rowHeight,0):0},J=()=>{var e=H.fullData;H.afterList=e.slice(0),se()},C=e=>{var t=F.scrollYLoad;let{fullData:r,scrollYStore:o,rowMaps:l}=H,a=A.value;e&&J();e=t?r.slice(o.startIndex,o.endIndex):r.slice(0);return a&&e.forEach((e,t)=>{e=getRowIdByField(e,a),e=l[e];e&&(e.$index=t)}),F.rowList=e,(0,_vue.nextTick)()},Q=()=>{C(),m()},Z=()=>(0,_vue.nextTick)().then(()=>{var e=F.scrollYLoad,t=H.scrollYStore,r=z.value,o=w.value;let l=0,a;(a=r?(a=o.sItem?r.querySelector(o.sItem):a)||r.children[0]:a)&&(l=a.offsetHeight),l=Math.max(12,l),t.rowHeight=l,(e?(r=y.value,e=Math.max(8,Math.ceil(r.clientHeight/l)),r=o.oSize?_xeUtils.default.toNumber(o.oSize):i.edge?10:0,t.offsetSize=r,t.visibleSize=e,t.endIndex=Math.max(t.startIndex+e+r,t.endIndex),Q):m)()}),ee=()=>{var e=y.value;return e&&(e.scrollTop=0),(0,_vue.nextTick)()},te=(e,t)=>{var r=y.value;return e&&!_xeUtils.default.isNumber(e)&&(t=e.top,e=e.left),_xeUtils.default.isNumber(e)&&(r.scrollLeft=e),_xeUtils.default.isNumber(t)&&(r.scrollTop=t),F.scrollYLoad?new Promise(e=>{setTimeout(()=>{(0,_vue.nextTick)(()=>{e()})},50)}):(0,_vue.nextTick)()},re=()=>{let{lastScrollLeft:e,lastScrollTop:t}=H;return ee().then(()=>{if(e||t)return H.lastScrollLeft=0,H.lastScrollTop=0,te(e,t)})},k=()=>{var t=b.value;if(t){var r,o=t.parentElement;let e=0;if(o&&(r=getComputedStyle(o),e=o.clientHeight-Math.ceil(_xeUtils.default.toNumber(r.paddingLeft)+_xeUtils.default.toNumber(r.paddingRight))),F.parentHeight=e,W(),t.clientWidth&&t.clientHeight)return Z()}return(0,_vue.nextTick)()},oe=e=>{var t=H.scrollYStore,{startIndex:r,endIndex:o,visibleSize:l,offsetSize:a,rowHeight:i}=t,e=e.target.scrollTop,e=Math.floor(e/i),i=Math.max(0,e-1-a),a=e+l+a;!(e<=r||o-l-1<=e)||r===i&&o===a||(t.startIndex=i,t.endIndex=a,Q())},le=e=>{var t=e.target,r=t.scrollTop,t=t.scrollLeft,o=t!==H.lastScrollLeft,l=r!==H.lastScrollTop;H.lastScrollTop=r,H.lastScrollLeft=t,F.scrollYLoad&&oe(e),R("scroll",{scrollLeft:t,scrollTop:r,isX:o,isY:l},e)},ae=()=>{var e=S.checkRowKey,t=H.fullKeyMaps;e?(t=t[e],F.selectRadioRow=t||null):F.selectRadioRow=null},ie=()=>{var e=S.checkRowKeys,t=H.fullKeyMaps,r=A.value,o={};if(e&&e.length)for(var l of e){l=t[l];l&&(o[getRowIdByField(l,r)]=l)}H.selectCheckboxMaps=o,g()},se=()=>{let{afterList:e,rowMaps:l}=H,a=A.value,i=0;e.forEach((e,t)=>{var r=getRowIdByField(e,a),o=l[r];o?o._index=i:(o={item:e,index:t,$index:-1,_index:i},l[r]=o),i++})},ne=()=>{var e=H.fullData;let l=A.value,a={},i={};l&&e.forEach((e,t)=>{var r=getRowIdByField(e,l),o=getRowKeyByField(e,l);a[o]=e,i[r]={item:e,index:t,$index:-1,_index:-1}}),H.fullKeyMaps=a,H.rowMaps=i},r=e=>{var t=H.scrollYStore,r=w.value,e=e?e.slice(0):[];return Object.assign(t,{startIndex:0,endIndex:1,visibleSize:0}),H.fullData=e,H.insertRowMaps={},F.insertRowFlag++,H.removeRowMaps={},F.removeRowFlag++,F.scrollYLoad=!!r.enabled&&-1<r.gt&&(0===r.gt||r.gt<=e.length),ne(),C(!0),ae(),ie(),Z().then(()=>{re()})},ue=()=>{I(),D(),k()},ce=()=>{var e=b.value;if(e){let t="row--drag-origin";_xeUtils.default.arrayEach(e.querySelectorAll("."+t),e=>{(e.draggable=!1,_dom.removeClass)(e,t)})}},de=e=>{var t=w.value.sItem,r=b.value;if(r){e=_(e);_xeUtils.default.arrayEach(r.querySelectorAll(`.vxe-list--row[rowid="${e}"]`+(t?t+`[rowid="${e}"]`:"")),e=>{(0,_dom.addClass)(e,"row--drag-origin")})}},ge=e=>{var t=F.dragRow,r=K.value.tooltipMethod;let o="";o=r?""+(r({$list:B,row:t})||""):(0,_ui.getI18n)("vxe.list.dragTip",[e.textContent||""]),F.dragTipText=o},u=()=>{var e=V.value,t=Y.value;e&&(e.style.display=""),t&&(t.style.display="")},D=()=>{crossListDragRowObj=null,v.row=null},ve=()=>{var e=F.dragRow;e&&(u(),ce(),D(),F.dragRow=null)},he=(e,t)=>{e.stopPropagation();var r=t.row,{isCrossListDrag:o,trigger:l,dragStartMethod:a}=K.value,i=e.currentTarget,l="row"===l?i:i.parentElement.parentElement;ce(),a&&!a(t)?(l.draggable=!1,F.dragRow=null,u()):(o&&(v.row=r,crossListDragRowObj={$oldList:B,$newList:null}),i={row:r},F.dragRow=r,F.isCrossDragRow=!1,l.draggable=!0,de(r),ge(l),R("row-dragstart",i,e))},we=()=>{ve()},c=(e,t,r,o)=>{var l=b.value;if(l){var a=l.getBoundingClientRect(),i=l.clientHeight;if(t){var s=Y.value;if(s)if(r){var n=t.getBoundingClientRect();let e=t.clientHeight;t=Math.max(1,n.y-a.y);t+e>i&&(e=i-t),s.style.display="block",s.style.top=t+"px",s.style.height=e+"px",s.setAttribute("drag-pos",o)}else s.style.display=""}n=V.value;n&&(n.style.display="block",n.style.top=Math.min(l.clientHeight-l.scrollTop-n.clientHeight,e.clientY-a.y)+"px",n.style.left=Math.min(l.clientWidth-l.scrollLeft-n.clientWidth-1,e.clientX-a.x)+"px",n.setAttribute("drag-status",r?"normal":"disabled"))}},I=()=>{var e=b.value;u(),ce(),(0,_anime.clearRowAnimate)(e,[".vxe-list--row"]),F.dragRow=null},fe=(l,a,i,s)=>{let n=H.fullData;var e=K.value;let{animation:g,dragEndMethod:t}=e;e=t||(e?e.dragEndMethod:null);let v="bottom"===s?1:0,h=b.value,w={status:!1};if(h&&i&&a){if(i!==a){var f={oldRow:a,newRow:i,dragRow:a,dragPos:s,offsetIndex:v};let u=_(a),c=E(n,u);var x,p=L(i);let d=0,t=-1,r=void(g&&(p=h.querySelector(`.vxe-list--row[rowid="${p}"]`),x=h.querySelector(`.vxe-list--row[rowid="${u}"]`),(p=p||x)&&(d=p.offsetHeight),x)&&(t=x.offsetTop)),o;return Promise.resolve(!e||e(f)).then(e=>{if(!e)return w;r=M(n,a),n.splice(r,1);var e=M(n,i);return o=e+v,n.splice(o,0,a),C(),F.scrollYLoad&&m(),l&&(e={oldRow:a,newRow:i,dragRow:a,dragPos:s,offsetIndex:v,_index:{newIndex:o,oldIndex:r}},R("row-dragend",e,l)),(0,_vue.nextTick)().then(()=>{if(g){var o=F.rowList,l=H.fullData,a=E(l,u),i=l[0],i=M(l,i),s=h;if(-1<i){var n=i+l.length;let e=-1,t=-1,r=1;c<i?(e=0,t=a-i):c>n?(n=E(o,u),e=n+1,t=l.length,r=-1):a>c?(e=c-i,t=e+a-c):(e=a-i,t=e+c-a+1,r=-1);o=l.slice(e,t);if(o.length){let t=[];o.forEach(e=>{e=_(e);t.push(`.vxe-list--row[rowid="${e}"]`)});n=s.querySelectorAll(t.join(","));(0,_anime.moveRowAnimateToTb)(n,r*d)}}i=[`.vxe-list--row[rowid="${u}"]`],a=s.querySelectorAll(i.join(",")),l=a[0];-1<t&&l&&(0,_anime.moveRowAnimateToTb)(a,t-l.offsetTop)}k()}).then(()=>({status:!0}))}).catch(()=>w).then(e=>(I(),D(),e))}I(),D()}return Promise.resolve(w)},xe=e=>{e.dataTransfer&&e.dataTransfer.setDragImage((0,_dom.getTpImg)(),0,0)},pe=e=>{var t=F.dragRow,{prevDragRow:r,prevDragPos:o}=H,l=K.value.isCrossListDrag;if(l&&crossListDragRowObj){l=crossListDragRowObj.$newList;if(l&&l.xID!==B.xID)return void l.handleCrossListRowDragInsertEvent(e)}fe(e,t,r,o)},Re=e=>{var t=F.dragRow,r=H.fullData,o=K.value.isCrossListDrag,l=(t||e.preventDefault(),e.currentTarget),a=l.getAttribute("rowid")||"",r=d(r,a);if(r){e.preventDefault();var i=e.clientY-l.getBoundingClientRect().y<l.clientHeight/2?"top":"bottom";if(H.prevDragRow=r,H.prevDragPos=i,o&&crossListDragRowObj){var{$oldList:o,$newList:s}=crossListDragRowObj;if(o){var n=o.reactData;if(o.xID!==B.xID)return s&&s.xID!==B.xID&&s.hideCrossListRowDropClearStatus(),o.hideCrossListRowDropClearStatus(),n.isCrossDragRow=!0,F.dragTipText=n.dragTipText,crossListDragRowObj.$newList=B,void c(e,l,!0,i);s&&s.hideCrossListRowDropClearStatus(),F.isCrossDragRow=!1,n.isCrossDragRow=!1,crossListDragRowObj.$newList=null}}t&&_(t)===a?c(e,l,!1,i):(o={oldRow:t,targetRow:r,dragPos:i,dragRow:t,offsetIndex:"bottom"==i?1:0},c(e,l,!0,i),R("row-dragover",o,e))}},_e=(e,t)=>{var{trigger:r,disabledMethod:o}=K.value;let l=!1;U.value&&(l="row"===r);r={row:t,$list:B};!l||o&&o(r)||he(e,r)},me=(e,t)=>{var{showRadio:r,showCheckbox:o}=S,l=H.currentRow,a=$.value,i=q.value,s=O.value.isCurrent;let n=!1,u=!1,c=!1;s?(n=!0,Te(e,t)):l&&(H.currentRow=null,F.currRowFlag++),r&&"row"===a.trigger&&(u=!0,Fe(e,t)),o&&"row"===i.trigger&&(c=!0,Se(e,t)),R("row-click",{row:t,triggerCurrent:n,triggerRadio:u,triggerCheckbox:c},e)},Ce=(e,t)=>{R("row-dblclick",{row:t},e)},L=e=>getRowKeyByField(e,A.value),l=(e,t)=>""+e==""+t,be=(e,t)=>!(!e||!t)&&(e===t||l(_(e),_(t))),ye=(e,t)=>e&&l(L(e),t);let d=(e,t)=>{let r=A.value;return _xeUtils.default.find(e,e=>l(getRowIdByField(e,r),t))},M=(e,t)=>t?_xeUtils.default.findIndexOf(e,e=>be(e,t)):-1,E=(e,t)=>{let r=A.value;return _xeUtils.default.findIndexOf(e,e=>l(getRowIdByField(e,r),t))},ke=e=>{var t=F.selectRadioRow;return L(t)===e};let De=e=>{var t=F.updateCheckboxFlag,r=H.selectCheckboxMaps;return!(!t||!r[e])};t=()=>{var e=F.updateCheckboxFlag,t=H.selectCheckboxMaps;let r=[];return e&&_xeUtils.default.each(t,e=>{e&&r.push(e)}),r};let Ie=()=>{var e=F.updateCheckboxFlag,t=H.selectCheckboxMaps;let r=A.value,o=[];return e&&_xeUtils.default.each(t,e=>{e&&(e=getRowKeyByField(e,r),o.push(e))}),o},Le=()=>{H.selectCheckboxMaps={},F.updateCheckboxFlag++,F.isAllChecked=!1,F.isAllIndeterminate=!1;return s([]),(0,_vue.nextTick)()},Me=e=>{var{fullData:t,selectCheckboxMaps:r}=H,o=A.value;if(e){var l,a=[];for(l of t){var i=getRowKeyByField(l,o);r[getRowIdByField(l,o)]=l,a.push(i)}return s(a),g()}return Le()},g=()=>{var{selectCheckboxMaps:e,fullData:t}=H,r=A.value,o=q.value.checkMethod;let l=!1,a=!1;if(o){for(var i of t)if(o({row:i,$list:B}))if(e[getRowIdByField(i,r)])l=!0;else if(a=!0,l)break}else for(var s of t)if(e[getRowIdByField(s,r)])l=!0;else if(a=!0,l)break;return F.isAllChecked=l&&!a,F.isAllIndeterminate=l&&a,F.updateCheckboxFlag++,(0,_vue.nextTick)()},Ee=e=>{var t=F.isAllChecked,t=!t;t?Me(!0):Le(),R("checkbox-all",{checked:t},e)},Se=(t,r)=>{t.preventDefault(),t.stopPropagation();var o=H.selectCheckboxMaps,l=q.value.checkMethod,a=_(r),l=!!l&&!l({$list:B,row:r});if(!l){let e=!1;o[a]?delete o[a]:(e=!0,o[a]=r),F.updateCheckboxFlag++,g();l=_xeUtils.default.keys(o).map(_utils.deModelValue);s(l),R("checkbox-change",{row:r,value:l,checked:e},t)}},Te=(e,t)=>{e.preventDefault();var r=O.value.currentMethod;let o=!1;(o=r?!r({row:t}):o)||(H.currentRow=t,F.currRowFlag++,R("current-change",{row:t,checked:!0},e))},Fe=(t,r)=>{t.preventDefault(),t.stopPropagation();var o=F.selectRadioRow,{strict:l,checkMethod:a}=$.value,i=L(r),a=!!a&&!a({$list:B,row:r});if(!a){a=i;let e=!0;l&&o&&i===L(o)?(e=!1,F.selectRadioRow=null):F.selectRadioRow=r,n(a),R("radio-change",{row:r,value:a,checked:e},t)}},He=(e,t)=>{let{fullData:o,rowMaps:l}=H,a=A.value,i=t?"push":"unshift";e.forEach(e=>{var t=getRowIdByField(e,a),r=(0,_util.getItemCacheObj)(e);o[i](e),l[t]=r})},Be=(e,t,r)=>{let{fullData:o,rowMaps:l,removeRowMaps:a,insertRowMaps:i}=H,s=A.value;if(!s)return errLog("vxe.error.reqSupportProp",["insert() | insertAt() | insertNextAt()","row-config.keyField"]),Promise.resolve({row:null,rows:[]});_xeUtils.default.isArray(e)||(e=[e]);let n=t;if((_xeUtils.default.isString(t)||_xeUtils.default.isNumber(t))&&(t=l[t])&&(n=t.item),!e.length)return Promise.resolve({row:null,rows:[]});let u=e.map(e=>_xeUtils.default.assign({},e));if(_xeUtils.default.eqNull(n))He(u,!1);else if(-1===n)He(u,!0);else{t=o.findIndex(e=>n[s]===e[s]);if(-1<t){u.forEach(e=>{var t=getRowIdByField(e,s),e=(0,_util.getItemCacheObj)(e);l[t]=e});let e=t;r&&(e+=1),o.splice(e,0,...u)}else warnLog("vxe.error.unableInsert"),He(u,!0)}return u.forEach(e=>{var t=getRowIdByField(e,s);a[t]?(delete a[t],i[t]&&delete i[t]):i[t]=e}),F.removeRowFlag++,F.insertRowFlag++,ne(),C(!0),se(),g(),F.scrollYLoad&&m(),(0,_vue.nextTick)().then(()=>({row:u.length?u[u.length-1]:null,rows:u}))},Oe=(o,l)=>{var e=S.menuConfig,t=x.value,r=O.value.isCurrent;(e?(0,_utils.isEnableConf)(t):t.enabled)&&({options:e,visibleMethod:t}=t,t&&!t({$list:B,options:e,row:l})||(r?Te(o,l):H.currentRow&&(H.currentRow=null,F.currRowFlag++),_ui.VxeUI.contextMenu&&_ui.VxeUI.contextMenu.openByEvent(o,{options:e,events:{optionClick(e){var t=e.option,r=_ui.menus.get(t.code),r=r?r.listMenuMethod:null,t={menu:t,row:l,$event:o,$list:B};r&&r(t,o),R("menu-click",t,e.$event)}}}))),R("row-menu",{row:l},o)};e={dispatchEvent:R,loadData:r,reloadData(e){return ee(),r(e)},getFullData(){var e=H.fullData;return e},recalculate:k,scrollTo:te,refreshScroll:re,clearScroll:ee,getRowKey:L,eqRowKey:l,eqRow:be,eqRowByKey:ye,findRow:(e,t)=>t?_xeUtils.default.find(e,e=>be(e,t)):null,findRowByKey:d,findRowIndexOf:M,findRowIndexOfByKey:E,isCheckedByRadioRowKey:ke,isCheckedByRadioRow:e=>ke(L(e)),isCheckedByCheckboxRowKey:De,isCheckedByCheckboxRow:e=>De(L(e)),setCurrentRow:e=>(H.currentRow=e,F.currRowFlag++,(0,_vue.nextTick)()),setCurrentRowByKey:e=>{var t=H.fullData;return H.currentRow=d(t,e),F.currRowFlag++,(0,_vue.nextTick)()},getCurrentRow:()=>{var e=H.currentRow;return e},getCurrentRowKey:()=>{var e=H.currentRow;return e?L(e):null},clearCurrentRow:()=>(H.currentRow=null,F.currRowFlag++,(0,_vue.nextTick)()),setRadioRow:e=>{F.selectRadioRow=e;e=L(e);return n(e),(0,_vue.nextTick)()},setRadioRowByKey:e=>{var t=H.fullData,t=(F.selectRadioRow=d(t,e),e);return n(t),(0,_vue.nextTick)()},getRadioRow:()=>{var e=F.selectRadioRow;return e},getRadioRowKey:()=>{var e=F.selectRadioRow;return e?L(e):null},clearRadioRow:()=>(F.selectRadioRow=null,n(null),(0,_vue.nextTick)()),setCheckboxRow:(e,t)=>{let r=H.selectCheckboxMaps,o=A.value;(e?_xeUtils.default.isArray(e)?e:[e]:[]).forEach(t?e=>{var t=getRowIdByField(e,o);r[t]||(r[t]=e)}:e=>{e=getRowIdByField(e,o);r[e]&&delete r[e]});e=Ie();return s(e),g()},setCheckboxRowByKey:(e,t)=>{let{selectCheckboxMaps:r,fullKeyMaps:o}=H,l=A.value;(e?_xeUtils.default.isArray(e)?e:[e]:[]).forEach(t?e=>{var t,e=o[e||""];e&&(t=getRowIdByField(e,l),e)&&!r[t]&&(r[t]=e)}:e=>{var e=o[e||""];e&&(e=getRowIdByField(e,l),r[e])&&delete r[e]});e=Ie();return s(e),g()},getCheckboxRecords:t,getCheckboxRows:t,getCheckboxRowKeys:Ie,clearCheckboxRow:Le,setAllCheckboxRow:Me,insert(e){return Be(e,null)},insertAt(e,t){return Be(e,t)},insertNextAt(e,t){return Be(e,t,!0)},getInsertRecords(){var e=H.insertRowMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},isInsertByRow(e){e=_(e);return!!F.insertRowFlag&&!!H.insertRowMaps[e]},remove(e){let{fullData:r,insertRowMaps:t,removeRowMaps:o}=H;if(!A.value)return errLog("vxe.error.reqSupportProp",["insert() | insertAt() | insertNextAt()","row-config.keyField"]),Promise.resolve({row:null,rows:[]});let l=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=r,e.length?(e.forEach(e=>{var t;B.isInsertByRow(e)||(t=_(e),o[t]=e)}),r===e?(e=l=r.slice(0),H.fullData=[]):e.forEach(e=>{let t=_(e);var e=_xeUtils.default.findIndexOf(r,e=>t===_(e));-1<e&&(e=r.splice(e,1),l.push(e[0]))}),e.forEach(e=>{e=_(e);t[e]&&delete t[e]}),F.removeRowFlag++,F.insertRowFlag++,ne(),C(!0),se(),g(),F.scrollYLoad&&m(),(0,_vue.nextTick)().then(()=>k()).then(()=>({row:l.length?l[l.length-1]:null,rows:l}))):Promise.resolve({row:null,rows:[]})},getRemoveRecords(){var e=H.removeRowMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},isRemoveByRow(e){e=_(e);return!!F.removeRowFlag&&!!H.removeRowMaps[e]},getRecordset(){return{insertRecords:B.getInsertRecords(),removeRecords:B.getRemoveRecords()}}};Object.assign(B,e,{handleCrossListRowDragCancelEvent(){I(),D()},handleCrossListRowDragFinishEvent(t){var l=F.rowList,a=H.rowMaps;let{animation:i,isCrossListDrag:e}=K.value,s=b.value;if(s&&e&&crossListDragRowObj&&v){var n=v.row;if(n){var u=_(n),a=a[u];let r=0,e=-1,o=(a&&(i&&(u=s.querySelector(`.vxe-list--row[rowid="${u}"]`))&&(r=u.offsetHeight),e=a.$index),-1<e&&e<l.length-1?l.slice(e+1):[]);u=[n];B.remove(u).then(()=>{if(i&&r&&o.length){var e=s;let t=[];o.forEach(e=>{e=_(e);t.push(`.vxe-list--row[rowid="${e}"]`)});e=e.querySelectorAll(t.join(","));(0,_anime.moveRowAnimateToTb)(e,r)}}),R("row-remove-dragend",{row:n},t),ue()}}},handleCrossListRowDragoverEmptyEvent(e){var t,r=F.rowList,o=K.value.isCrossListDrag;o&&crossListDragRowObj&&!r.length&&({$oldList:o,$newList:r}=crossListDragRowObj,o)&&(t=o).xID!==B.xID&&(r&&r.xID!==B.xID&&r.hideCrossListRowDropClearStatus(),e.preventDefault(),o.hideCrossListRowDropClearStatus(),crossListDragRowObj.$newList=B,H.prevDragRow=null,F.dragTipText=t.dragTipText,c(e,e.currentTarget,!0,""))},handleCrossListRowDragInsertEvent(n){let{prevDragRow:u,prevDragPos:c}=H;let{animation:d,isCrossListDrag:e,dragEndMethod:t}=K.value;if(e&&crossListDragRowObj&&v){let l=v.row,i=crossListDragRowObj.$oldList,s=b.value;if(s&&(i&&l)){let a=l,r=-1;u&&(r="bottom"===c?1:0);var g={oldRow:a,newRow:u,dragRow:a,dragPos:c,offsetIndex:r};let o={status:!1};Promise.resolve(!t||t(g)).then(e=>{if(!e)return i&&i.xID!==B.xID&&i.handleCrossListRowDragCancelEvent(n),ue(),o;let t=Promise.resolve();e=[a];i.handleCrossListRowDragFinishEvent(n),t=u?"bottom"===c?B.insertNextAt(e,u):B.insertAt(e,u):B.insert(e),B.dispatchEvent("row-insert-dragend",{oldRow:l,newRow:u,dragRow:a,dragPos:c,offsetIndex:r},n),I(),t.then(()=>{var e=F.rowList,r=H.rowMaps,o=_(a),r=r[o];let l=0,t=-1;r&&(d&&(o=s.querySelector(`.vxe-list--row[rowid="${o}"]`))&&(l=o.offsetHeight),t=r.$index);o=-1<t?e.slice(t):[];if(d&&l&&o.length){r=s;let t=[];o.forEach(e=>{e=_(e);t.push(`.vxe-list--row[rowid="${e}"]`)});e=r.querySelectorAll(t.join(","));(0,_anime.moveRowAnimateToTb)(e,-l)}})})}}},hideCrossListRowDropClearStatus(){u()}});let Ke=(t,e,r,o)=>{var l=S.showRadio,{showIcon:a,visibleMethod:i}=$.value,i=!i||i({$list:B,row:t});return l&&a&&i?(0,_vue.h)("div",{key:"ct2",class:["vxe-list--radio-option",{"is--checked":o,"is--disabled":r}],onClick(e){r||Fe(e,t)}},[(0,_vue.h)("span",{class:["vxe-radio--icon",o?(0,_ui.getIcon)().RADIO_CHECKED:r?(0,_ui.getIcon)().RADIO_DISABLED_UNCHECKED:(0,_ui.getIcon)().RADIO_UNCHECKED]})]):(0,_ui.renderEmptyElement)(B)},Ae=(t,e,r,o)=>{var l=S.showCheckbox,{showIcon:a,visibleMethod:i}=q.value,i=!i||i({$list:B,row:t});return l&&a&&i?(0,_vue.h)("div",{key:"ct3",class:["vxe-list--checkbox-option",{"is--checked":o,"is--disabled":r}],onClick(e){r||Se(e,t)}},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",o?(0,_ui.getIcon)().CHECKBOX_CHECKED:r?(0,_ui.getIcon)().CHECKBOX_DISABLED_UNCHECKED:(0,_ui.getIcon)().CHECKBOX_UNCHECKED]})]):(0,_ui.renderEmptyElement)(B)};let Ue=(0,_vue.ref)(0),a=((0,_vue.watch)(()=>S.data?S.data.length:-1,()=>{Ue.value++}),(0,_vue.watch)(()=>S.data,()=>{Ue.value++}),(0,_vue.watch)(Ue,()=>{r(S.data||[])}),(0,_vue.ref)(0)),$e=((0,_vue.watch)(()=>S.height,()=>{a.value++}),(0,_vue.watch)(()=>S.maxHeight,()=>{a.value++}),(0,_vue.watch)(()=>S.syncResize,()=>{a.value++}),(0,_vue.watch)(f,()=>{a.value++}),(0,_vue.watch)(a,()=>{(0,_vue.nextTick)(()=>{k()})}),(0,_vue.watch)(()=>S.checkRowKey,()=>{ae()}),(0,_vue.ref)(0));return(0,_vue.watch)(()=>S.checkRowKeys?S.checkRowKeys.length:-1,()=>{$e.value++}),(0,_vue.watch)(()=>S.checkRowKeys,()=>{$e.value++}),(0,_vue.watch)($e,()=>{ie()}),(0,_vue.onActivated)(()=>{k().then(()=>re())}),(0,_vue.nextTick)(()=>{r(S.data||[])}),(0,_vue.onMounted)(()=>{var{showSeq:e,showRadio:t,showCheckbox:r}=S,o=O.value.useKey,l=U.value,a=A.value;a||(e&&errLog("vxe.error.reqSupportProp",["show-seq","row-config.keyField"]),t&&errLog("vxe.error.reqSupportProp",["show-radio","row-config.keyField"]),r&&errLog("vxe.error.reqSupportProp",["show-checkbox","row-config.keyField"]),l&&errLog("vxe.error.reqSupportProp",["drag-config","row-config.keyField"])),o&&!a&&errLog("vxe.error.reqSupportProp",["row-config.useKey","row-config.keyField"]),S.autoResize&&(e=b.value,(t=_ui.globalResize.create(()=>k())).observe(e),e&&t.observe(e.parentElement),H.resizeObserver=t),k(),_ui.globalEvents.on(B,"resize",k)}),(0,_vue.onBeforeUnmount)(()=>{var e=H.resizeObserver;e&&e.disconnect(),_ui.globalEvents.off(B,"resize"),_xeUtils.default.assign(F,createReactData()),_xeUtils.default.assign(H,createInternalData())}),B.renderVN=()=>{var{showCheckbox:e,className:t,loading:r}=S,{bodyHeight:o,topSpaceHeight:l,rowList:a,isAllChecked:i,isAllIndeterminate:s}=F,n=T.default,u=T.header,c=T.footer,d=j.value,g=X.value,v=G.value,h=$.value,w=q.value,{showHeader:f,headerTitle:x}=w,{trigger:p,isCrossListDrag:R}=K.value,{isHover:_,padding:m}=O.value,C=U.value,e=e&&!1!==f,f={};return R&&!a.length&&(f.onDragover=B.handleCrossListRowDragoverEmptyEvent),(0,_vue.h)("div",Object.assign({ref:b,class:["vxe-list",t?_xeUtils.default.isFunction(t)?t({$list:B}):t:"",{["size--"+d]:d,"is--drag":C,"is--loading":r}],style:g},f),[u||e?(0,_vue.h)("div",{ref:N,class:"vxe-list--header-wrapper"},[e?(0,_vue.h)("div",{class:"vxe-list--header-left"},[(0,_vue.h)("div",{class:["vxe-list--checkbox-header",{"is--checked":i,"is--indeterminate":s}],onClick:Ee},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",i?(0,_ui.getIcon)().CHECKBOX_CHECKED:s?(0,_ui.getIcon)().CHECKBOX_INDETERMINATE:(0,_ui.getIcon)().CHECKBOX_UNCHECKED]}),(0,_vue.h)("span",{class:"vxe-checkbox--label"},_xeUtils.default.eqNull(x)?(0,_ui.getI18n)("vxe.list.allChecked"):(0,_utils.getText)(x))])]):(0,_ui.renderEmptyElement)(B),u?(0,_vue.h)("div",{class:"vxe-list--header-content"},u({items:a,$list:B})):(0,_ui.renderEmptyElement)(B)]):(0,_ui.renderEmptyElement)(B),(0,_vue.h)("div",{ref:y,class:"vxe-list--virtual-wrapper",style:v,onScroll:le},[(0,_vue.h)("div",{class:"vxe-list--y-space",style:{height:o?o+"px":""}}),(0,_vue.h)("div",{ref:z,class:["vxe-list--body",{"trigger--row":"row"===p,"checkbox--highlight":w.highlight,"radio--highlight":h.highlight,"row--hover":_,"is--padding":m}],style:{marginTop:l?l+"px":""}},n?n({items:a,$list:B}):a.map((e,t)=>((t,e)=>{var{showRadio:r,showCheckbox:o}=S,{selectRadioRow:l,currRowFlag:a,updateCheckboxFlag:i}=F,{selectCheckboxMaps:s,currentRow:n}=H,u=T.content,c=T.extra,{trigger:d,icon:g,disabledMethod:v,visibleMethod:h}=K.value,w=$.value,f=q.value,{useKey:x,contentField:p,className:R,isCurrent:_}=O.value,m=U.value,C=A.value,b=R&&_xeUtils.default.isFunction(R),x=C||x||m||_||r||o,_=x&&C?getRowIdByField(t,C):"",y=(0,_utils.enModelValue)(_);let k={row:t,$list:B},D=!1,I=!1,L=(r&&(D=l&&(t===l||ye(l,_)),I=!!w.checkMethod&&!w.checkMethod({$list:B,row:t})),!1),M=!1;o&&(L=!(!i||!s[y]),M=!!f.checkMethod&&!f.checkMethod({$list:B,row:t}));l=[];r&&l.push(Ke(t,y,I,D)),o&&l.push(Ae(t,y,M,L));let E=!1;m&&C&&(!h||h(k))&&(w={},"row"!==d&&(E=!(!v||!v(k)),w.onMousedown=e=>{E||he(e,k)},w.onMouseup=we),l.push((0,_vue.h)("div",{key:"ct1",class:"vxe-list--row-drag"},[(0,_vue.h)("span",Object.assign({class:"vxe-list--drag-handle"},w),[(0,_vue.h)("i",{class:g||(0,_ui.getIcon)().LIST_DRAG})])]))),l.push((0,_vue.h)("div",{key:"ct5",class:"vxe-list--row-content"},u?u(k):p?(0,_utils.getText)(t[p]):"")),c&&l.push((0,_vue.h)("div",{key:"ct7",class:"vxe-list--row-extra"},c(k)));i={onMousedown(e){_e(e,t)},onMouseup:we,onClick(e){me(e,t)},onDblclick(e){Ce(e,t)},onContextmenu(e){Oe(e,t)}};return m&&(i.onDragstart=xe,i.onDragend=pe,i.onDragover=Re),(0,_vue.h)("div",Object.assign({key:x&&C?y:e,class:["vxe-list--row",b?R(k):R||"",{"is--drag-disabled":E,"is--current":a&&n&&ye(n,_),"is-radio--disabled":I,"is-radio--checked":D,"is-checkbox--disabled":M,"is-checkbox--checked":L}],rowid:x&&C?y:void 0},i),l)})(e,t)))]),c?(0,_vue.h)("div",{ref:P,class:"vxe-list--footer-wrapper"},c({items:a,$list:B})):(0,_ui.renderEmptyElement)(B),(()=>{var{dragRow:e,dragTipText:t}=F,r=K.value;return U.value?(0,_vue.h)("div",{class:"vxe-list--drag-wrapper"},[(0,_vue.h)("div",{ref:Y,class:["vxe-list--drag-row-line",{"is--guides":r.showGuidesStatus}]}),e&&r.showDragTip?(0,_vue.h)("div",{ref:V,class:"vxe-list--drag-sort-tip"},[(0,_vue.h)("div",{class:"vxe-list--drag-sort-tip-wrapper"},[(0,_vue.h)("div",{class:"vxe-list--drag-sort-tip-status"},[(0,_vue.h)("span",{class:["vxe-list--drag-sort-tip-normal-status",(0,_ui.getIcon)().LIST_DRAG_STATUS_NODE]}),(0,_vue.h)("span",{class:["vxe-list--drag-sort-tip-disabled-status",(0,_ui.getIcon)().LIST_DRAG_DISABLED]})]),(0,_vue.h)("div",{class:"vxe-list--drag-sort-tip-content"},t)])]):(0,_ui.renderEmptyElement)(B)]):(0,_ui.renderEmptyElement)(B)})(),(0,_vue.h)(_loading.default,{class:"vxe-list--loading",modelValue:r})])},B},render(){return this.renderVN()}});
|
package/lib/menu/src/menu.js
CHANGED
|
@@ -13,6 +13,7 @@ var _utils = require("../../ui/src/utils");
|
|
|
13
13
|
var _vn = require("../../ui/src/vn");
|
|
14
14
|
var _log = require("../../ui/src/log");
|
|
15
15
|
var _loading = _interopRequireDefault(require("../../loading"));
|
|
16
|
+
var _scrollbar = _interopRequireDefault(require("../../scrollbar"));
|
|
16
17
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
18
|
const {
|
|
18
19
|
errLog
|
|
@@ -76,6 +77,11 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
76
77
|
default: () => getConfig().menu.size || getConfig().size
|
|
77
78
|
},
|
|
78
79
|
menuConfig: Object,
|
|
80
|
+
useScrollbar: {
|
|
81
|
+
type: Boolean,
|
|
82
|
+
default: () => getConfig().menu.useScrollbar
|
|
83
|
+
},
|
|
84
|
+
scrollbarConfig: Object,
|
|
79
85
|
appendTo: {
|
|
80
86
|
type: [String, Function],
|
|
81
87
|
default: () => getConfig().menu.appendTo
|
|
@@ -125,6 +131,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
125
131
|
const propsOpts = computePropsOpts.value;
|
|
126
132
|
return propsOpts.routerLink || 'routerLink';
|
|
127
133
|
});
|
|
134
|
+
const computeScrollbarOpts = (0, _vue.computed)(() => {
|
|
135
|
+
return Object.assign({}, getConfig().menu.scrollbarConfig, props.scrollbarConfig);
|
|
136
|
+
});
|
|
128
137
|
const computeCurrBorder = (0, _vue.computed)(() => {
|
|
129
138
|
const {
|
|
130
139
|
border
|
|
@@ -700,7 +709,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
700
709
|
const {
|
|
701
710
|
loading,
|
|
702
711
|
collapseFixed,
|
|
703
|
-
appendTo
|
|
712
|
+
appendTo,
|
|
713
|
+
useScrollbar
|
|
704
714
|
} = props;
|
|
705
715
|
const {
|
|
706
716
|
initialized,
|
|
@@ -712,6 +722,11 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
712
722
|
const isCollapsed = computeIsCollapsed.value;
|
|
713
723
|
const currBorder = computeCurrBorder.value;
|
|
714
724
|
const varStyle = computeVarStyle.value;
|
|
725
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
726
|
+
const {
|
|
727
|
+
viewClassName,
|
|
728
|
+
viewInnerClassName
|
|
729
|
+
} = scrollbarOpts;
|
|
715
730
|
const headerSlot = slots.header;
|
|
716
731
|
const footerSlot = slots.footer;
|
|
717
732
|
let ons = {};
|
|
@@ -752,7 +767,14 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
752
767
|
style: Object.assign({}, varStyle, collapseStyle)
|
|
753
768
|
}, ons), isCollapsed ? [headerSlot ? (0, _vue.h)('div', {
|
|
754
769
|
class: 'vxe-menu--header'
|
|
755
|
-
}, headerSlot(stParams)) : (0, _ui.renderEmptyElement)($xeMenu), (0, _vue.h)(
|
|
770
|
+
}, headerSlot(stParams)) : (0, _ui.renderEmptyElement)($xeMenu), useScrollbar ? (0, _vue.h)(_scrollbar.default, Object.assign(Object.assign({
|
|
771
|
+
class: 'vxe-menu--scrollbar-body'
|
|
772
|
+
}, scrollbarOpts), {
|
|
773
|
+
viewClassName: 'vxe-menu--body-view' + (viewClassName ? ' ' + viewClassName : ''),
|
|
774
|
+
viewInnerClassName: 'vxe-menu--body-inner' + (viewClassName ? ' ' + viewInnerClassName : '')
|
|
775
|
+
}), {
|
|
776
|
+
default: () => menuList.map(child => renderDefaultChildren(child, menuList))
|
|
777
|
+
}) : (0, _vue.h)('div', {
|
|
756
778
|
class: 'vxe-menu--body'
|
|
757
779
|
}, menuList.map(child => renderDefaultChildren(child, menuList))), footerSlot ? (0, _vue.h)('div', {
|
|
758
780
|
class: 'vxe-menu--footer'
|
|
@@ -761,7 +783,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
761
783
|
* 加载中
|
|
762
784
|
*/
|
|
763
785
|
(0, _vue.h)(_loading.default, {
|
|
764
|
-
class: 'vxe-
|
|
786
|
+
class: 'vxe-menu-view--loading',
|
|
765
787
|
modelValue: loading
|
|
766
788
|
})]);
|
|
767
789
|
};
|
package/lib/menu/src/menu.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
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"),_log=require("../../ui/src/log"),_loading=_interopRequireDefault(require("../../loading"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let errLog=(0,_log.createComponentLog)("menu").errLog,{menus,getConfig,getIcon}=_ui.VxeUI;function createInternalData(){return{lastActiveTime:0,menuInitMaps:{},menuCacheMaps:{},menuKeyMaps:{},menuEffectMaps:{}}}function createReactData(){return{initialized:!1,isEnterCollapse:!1,collapseStyle:{},collapseZindex:0,activeName:"",menuList:[],itemHeight:1}}let nemuUniqueKey=1e8;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeMenu",props:{modelValue:[String,Number],expandAll:Boolean,expandKeys:Array,accordion:{type:Boolean,default:()=>getConfig().menu.accordion},border:{type:[Boolean,String],default:()=>getConfig().menu.border},optionProps:{type:Object,default:()=>getConfig().menu.optionProps},collapsed:{type:Boolean,default:null},collapseFixed:Boolean,loading:Boolean,options:{type:Array,default:()=>[]},size:{type:String,default:()=>getConfig().menu.size||getConfig().size},menuConfig:Object,appendTo:{type:[String,Function],default:()=>getConfig().menu.appendTo}},emits:["update:modelValue","click","option-menu","menu-click"],setup(C,e){let{emit:n,slots:p}=e;var t=_xeUtils.default.uniqueId();let i=(0,_vue.inject)("$xeLayoutAside",null),_=(0,_vue.ref)(),x=(0,_vue.ref)(),h=(0,_ui.useSize)(C).computeSize,E=(0,_vue.reactive)(createReactData()),y=createInternalData(),l={refElem:_},a=(0,_vue.computed)(()=>Object.assign({},getConfig().menu.menuConfig,C.menuConfig)),u=(0,_vue.computed)(()=>Object.assign({},getConfig().menu.optionProps,C.optionProps)),o=(0,_vue.computed)(()=>u.value.title||"title"),r=(0,_vue.computed)(()=>u.value.name||"name"),s=(0,_vue.computed)(()=>u.value.children||"children"),k=(0,_vue.computed)(()=>u.value.linkUrl||"linkUrl"),M=(0,_vue.computed)(()=>u.value.routerLink||"routerLink"),g=(0,_vue.computed)(()=>{var e=C.border;return e?!0===e?"first-group":e:""}),f=(0,_vue.computed)(()=>{var e=C.collapsed;return _xeUtils.default.isBoolean(e)?e:!!i&&!!i.props.collapsed}),T=(0,_vue.computed)(()=>{var e;return i?(e=i.getComputeMaps().computeVarStyle,e.value):{}}),c={computeSize:h},b={xID:t,props:C,context:e,reactData:E,internalData:y,getRefMaps:()=>l,getComputeMaps:()=>c},j=e=>""+(e.title||e.name),m=u=>{let o=E.activeName,r=y.menuInitMaps;_xeUtils.default.eachTree(E.menuList,(e,t,i,n,l,a)=>{e.itemKey===o?(a.forEach(e=>{e.isActive=!0,u&&(e.isExpand=!0,r[e.itemId]=!0)}),e.isExactActive=!0):(e.isExactActive=!1,e.isActive=!1)},{children:"childList"})},v=()=>{let{options:e,expandAll:c,expandKeys:t}=C,m={},v=o.value,d=r.value,p=s.value,_=k.value,x=M.value,h={},g=(t&&t.forEach(e=>{h[e]=!0}),{}),f={};E.menuList=_xeUtils.default.mapTree(e,(e,t,i,n,l)=>{var a=++nemuUniqueKey,u=e[d]||n.join(","),o=e[p],r=o&&0<o.length,s=!!r&&(_xeUtils.default.isBoolean(e.expanded)?e.expanded:h[u]||!!c),o=(s&&(m[a]=!0),{itemConf:e,title:e[v],name:e[d],icon:e.icon,linkUrl:e[_],linkTarget:e.linkTarget,routerLink:e[x],permissionCode:e.permissionCode,children:o,slots:e.slots,parentKey:l?l.name||n.slice(0,n.length-1).join(","):"",level:n.length,itemId:a,itemKey:u,isExactActive:!1,isActive:!1,isExpand:s,hasChild:r,childList:[]});return f[u]&&errLog("vxe.error.repeatKey",[d,e[d]]),g[a]=o,f[u]=o},{children:"children",mapChildren:"childList"}),y.menuInitMaps=m,y.menuCacheMaps=g,y.menuKeyMaps=f},d=()=>{var e=C.collapseFixed;e&&(0,_vue.nextTick)(()=>{var e,t=f.value,i=_.value;i&&(e=i.getBoundingClientRect(),i=i.parentNode,E.collapseStyle=t?{top:(0,_dom.toCssUnit)(e.top),left:(0,_dom.toCssUnit)(e.left),height:(0,_dom.toCssUnit)(i.clientHeight),zIndex:E.collapseZindex}:{})})},D=()=>{var e=C.collapseFixed;e&&(e=E.initialized,f.value&&!e&&(E.initialized=!0),E.isEnterCollapse=!1,E.collapseZindex<(0,_utils.getLastZIndex)()&&(E.collapseZindex=(0,_utils.nextZIndex)()),d())},I=(t,i,e)=>{var n=C.accordion;let{menuEffectMaps:l,menuInitMaps:a}=y,{itemId:u,hasChild:o,isExpand:r}=i;var s=f.value,c=!r;if(o){t.stopPropagation(),t.preventDefault(),l[u]&&clearTimeout(l[u]),n&&e.forEach(e=>{e!==i&&(e.isExpand=!1)}),i.isExpand=c,a[u]=!0;t=(s?x:_).value;if(t){n=t.querySelector(`.vxe-menu--item-wrapper[data-menu-id="${u}"]`);let e=n?n.querySelector(".vxe-menu--item-group"):null;e&&(c?(e.style.height="0",e.setAttribute("data-effect","y"),requestAnimationFrame(()=>{e.style.height=e.scrollHeight+"px"})):(e.style.height=e.scrollHeight+"px",e.setAttribute("data-effect","y"),requestAnimationFrame(()=>{e.style.height="0"})),l[u]=setTimeout(()=>{delete l[u],e.removeAttribute("data-effect"),e.style.height=""},350))}}},S=e=>{E.activeName=e,n("update:modelValue",e)},A=(n,l)=>{var e=C.menuConfig,t=a.value;(e?(0,_utils.isEnableConf)(t):t.enabled)&&({options:e,visibleMethod:t}=t,t&&!t({$menu:b,options:e,currentMenu:l,currentOption:l.itemConf})||_ui.VxeUI.contextMenu&&_ui.VxeUI.contextMenu.openByEvent(n,{options:e,events:{optionClick(e){var t=e.option,i=menus.get(t.code),i=i?i.menuMenuMethod:null,t={menu:t,currentMenu:l,currentOption:l.itemConf,$event:n,$menu:b};i&&i(t,n),q("menu-click",t,e.$event)}}})),q("option-menu",{currentMenu:l},n)},U=(e,t,i)=>{var{itemKey:n,linkUrl:l,routerLink:a,hasChild:u}=t,l=(!l&&!a&&u?I(e,t,i):(S(n),E.isEnterCollapse=!1,y.lastActiveTime=Date.now()),{currentMenu:t,currentOption:t.itemConf,option:t.itemConf,menu:t});q("click",l,e)},z=()=>{var e=y.lastActiveTime;e<Date.now()-500&&(E.isEnterCollapse=!0)},w=()=>{E.isEnterCollapse=!1},L=(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=p[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],q=(e,t,i)=>{n(e,(0,_ui.createEvent)(i,{$menu:b},t))},O=e=>{var t=_.value,t=t?t.querySelector(`.vxe-menu--item-wrapper[data-menu-id="${e}"]`):null;return!!t&&((0,_dom.scrollToView)(t),!0)};t={dispatchEvent:q,setExpandByMenuKey(e,t){let{menuKeyMaps:i,menuInitMaps:n}=y;return e&&(e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=i[e];e&&(t&&(n[e.itemId]=!0),e.isExpand=!!t)}),(0,_vue.nextTick)()},clearAllExpandMenu(){var e=E.menuList;return _xeUtils.default.eachTree(e,e=>{e.isExpand=!1},{children:"childList"}),y.menuInitMaps={},(0,_vue.nextTick)()},scrollToMenuKey(e){var t=y.menuKeyMaps,t=t[e];if(!t)return(0,_vue.nextTick)();let i=t.itemId;return O(i)?(0,_vue.nextTick)():(0,_vue.nextTick)().then(()=>{O(i)})},scrollToActiveMenu(){var e=E.activeName;return e?b.scrollToMenuKey(e):(0,_vue.nextTick)().then(()=>{var e=E.activeName;if(e)return b.scrollToMenuKey(e)})}};Object.assign(b,t,{});let V=(t,i)=>{var{icon:e,isExpand:n,hasChild:l}=t,a=t.slots||{},u=a.default||p.option,o=a.title||p.optionTitle||p["option-title"],a=a.icon||p.optionIcon||p["option-icon"],r=j(t),s=f.value,s={currentMenu:t,currentOption:t.itemConf,option:t.itemConf,collapsed:s};return[u?(0,_ui.renderEmptyElement)(b):(0,_vue.h)("div",{class:"vxe-menu--item-link-icon"},a?L(a,s):e?[(0,_vue.h)("i",{class:e})]:[]),u?(0,_vue.h)("div",{class:"vxe-menu--item-custom-title"},L(u,s)):(0,_vue.h)("div",{class:"vxe-menu--item-link-title",title:r},o?L(o,s):r),l?(0,_vue.h)("div",{class:"vxe-menu--item-link-collapse",onClick(e){I(e,t,i)}},[(0,_vue.h)("i",{class:n?getIcon().MENU_ITEM_EXPAND_OPEN:getIcon().MENU_ITEM_EXPAND_CLOSE})]):(0,_ui.renderEmptyElement)(b)]},K=(t,i)=>{let{itemId:e,itemKey:n,level:l,hasChild:a,isActive:u,isExactActive:o,isExpand:r,linkUrl:s,routerLink:c,linkTarget:m,childList:v}=t;var d,p=E.isEnterCollapse,_=y.menuInitMaps,x=f.value;return t.permissionCode&&!_ui.permission.checkVisible(t.permissionCode)?(0,_ui.renderEmptyElement)(b):(d={onContextmenu(e){A(e,t)},onClick(e){U(e,t,i)}},(0,_vue.h)("div",{key:n,class:["vxe-menu--item-wrapper","vxe-menu--item-level"+l,{"has--child":a,"is--exact-active":o,"is--active":u,"is--expand":x=(!x||p)&&r}],"data-menu-id":e},[s?(0,_vue.h)("a",Object.assign({class:"vxe-menu--item-link is--link",href:s,target:m},d),V(t,i)):c?(0,_vue.h)((0,_vue.resolveComponent)("router-link"),Object.assign({class:"vxe-menu--item-link is--router",to:c,target:m},d),{default:()=>V(t,i)}):(0,_vue.h)("div",Object.assign({class:"vxe-menu--item-link is--default"},d),V(t,i)),a?(0,_vue.h)("div",{class:"vxe-menu--item-group"},x||_[e]?v.map(e=>K(e,v)):[]):(0,_ui.renderEmptyElement)(b)]))};let N=(0,_vue.ref)(0);return(0,_vue.watch)(()=>C.options?C.options.length:-1,()=>{N.value++}),(0,_vue.watch)(()=>C.options,()=>{N.value++}),(0,_vue.watch)(N,()=>{v(),m(!0),(0,_vue.nextTick)(()=>{b.scrollToActiveMenu()})}),(0,_vue.watch)(()=>C.modelValue,e=>{E.activeName=e}),(0,_vue.watch)(()=>E.activeName,()=>{m(!0)}),(0,_vue.watch)(f,()=>{D()}),(0,_vue.onMounted)(()=>{var e=C.menuConfig,t=_ui.VxeUI.getComponent("VxeContextMenu");e&&!t&&errLog("vxe.error.reqComp",["vxe-context-menu"]),_ui.globalEvents.on(b,"resize",d),d(),(0,_vue.nextTick)(()=>{b.scrollToActiveMenu()})}),(0,_vue.onBeforeUnmount)(()=>{_ui.globalEvents.off(b,"resize"),_xeUtils.default.assign(E,createReactData()),_xeUtils.default.assign(y,createInternalData())}),E.initialized=!!C.collapsed,E.activeName=C.modelValue,v(),m(!0),b.renderVN=()=>{var{loading:e,collapseFixed:t,appendTo:i}=C;let{initialized:n,menuList:l,collapseStyle:a,isEnterCollapse:u}=E;var o=h.value;let r=f.value;var s=g.value,c=T.value,m=p.header,v=p.footer;let d={};t&&(d={onMouseenter:z,onMouseleave:w});t={collapsed:r};return(0,_vue.h)("div",{ref:_,class:["vxe-menu",{["border--"+s]:s,["size--"+o]:o,"is--collapsed":r,"is--loading":e}]},[m?(0,_vue.h)("div",{class:"vxe-menu--header"},m(t)):(0,_ui.renderEmptyElement)(b),(0,_vue.h)("div",{class:"vxe-menu--body"},l.map(e=>(r?(t,i)=>{let{itemId:e,itemKey:n,level:l,hasChild:a,isActive:u,isExactActive:o,routerLink:r,linkUrl:s,linkTarget:c,childList:m}=t;var v;return t.permissionCode&&!_ui.permission.checkVisible(t.permissionCode)?(0,_ui.renderEmptyElement)(b):(v={onContextmenu(e){A(e,t)},onClick(e){U(e,t,i)}},(0,_vue.h)("div",{key:n,class:["vxe-menu--item-wrapper","vxe-menu--item-level"+l,{"has--child":a,"is--exact-active":o,"is--active":u}],"data-menu-id":e},[s?(0,_vue.h)("a",Object.assign({class:"vxe-menu--item-link is--link",href:s,target:c},v),V(t,i)):r?(0,_vue.h)((0,_vue.resolveComponent)("router-link"),Object.assign({class:"vxe-menu--item-link is--router",to:r,target:c},v),{default:()=>V(t,i)}):(0,_vue.h)("div",Object.assign({class:"vxe-menu--item-link is--default"},v),V(t,i)),a?(0,_vue.h)("div",{class:"vxe-menu--item-group"},m.map(e=>K(e,m))):(0,_ui.renderEmptyElement)(b)]))}:K)(e,l))),v?(0,_vue.h)("div",{class:"vxe-menu--footer"},v(t)):(0,_ui.renderEmptyElement)(b),(0,_vue.h)(_vue.Teleport,{to:(0,_dom.getPopupContainer)(i),disabled:!n},[(0,_vue.h)("div",Object.assign({ref:x,class:["vxe-menu--collapse-wrapper",{["size--"+o]:o,"is--collapsed":r,"is--enter":u,"is--loading":e}],style:Object.assign({},c,a)},d),r?[m?(0,_vue.h)("div",{class:"vxe-menu--header"},m(t)):(0,_ui.renderEmptyElement)(b),(0,_vue.h)("div",{class:"vxe-menu--body"},l.map(e=>K(e,l))),v?(0,_vue.h)("div",{class:"vxe-menu--footer"},v(t)):(0,_ui.renderEmptyElement)(b)]:[])]),(0,_vue.h)(_loading.default,{class:"vxe-list-view--loading",modelValue:e})])},b},render(){return this.renderVN()}});
|
|
1
|
+
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"),_log=require("../../ui/src/log"),_loading=_interopRequireDefault(require("../../loading")),_scrollbar=_interopRequireDefault(require("../../scrollbar"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let errLog=(0,_log.createComponentLog)("menu").errLog,{menus,getConfig,getIcon}=_ui.VxeUI;function createInternalData(){return{lastActiveTime:0,menuInitMaps:{},menuCacheMaps:{},menuKeyMaps:{},menuEffectMaps:{}}}function createReactData(){return{initialized:!1,isEnterCollapse:!1,collapseStyle:{},collapseZindex:0,activeName:"",menuList:[],itemHeight:1}}let nemuUniqueKey=1e8;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeMenu",props:{modelValue:[String,Number],expandAll:Boolean,expandKeys:Array,accordion:{type:Boolean,default:()=>getConfig().menu.accordion},border:{type:[Boolean,String],default:()=>getConfig().menu.border},optionProps:{type:Object,default:()=>getConfig().menu.optionProps},collapsed:{type:Boolean,default:null},collapseFixed:Boolean,loading:Boolean,options:{type:Array,default:()=>[]},size:{type:String,default:()=>getConfig().menu.size||getConfig().size},menuConfig:Object,useScrollbar:{type:Boolean,default:()=>getConfig().menu.useScrollbar},scrollbarConfig:Object,appendTo:{type:[String,Function],default:()=>getConfig().menu.appendTo}},emits:["update:modelValue","click","option-menu","menu-click"],setup(C,e){let{emit:n,slots:f}=e;var t=_xeUtils.default.uniqueId();let i=(0,_vue.inject)("$xeLayoutAside",null),h=(0,_vue.ref)(),y=(0,_vue.ref)(),E=(0,_ui.useSize)(C).computeSize,k=(0,_vue.reactive)(createReactData()),b=createInternalData(),l={refElem:h},a=(0,_vue.computed)(()=>Object.assign({},getConfig().menu.menuConfig,C.menuConfig)),u=(0,_vue.computed)(()=>Object.assign({},getConfig().menu.optionProps,C.optionProps)),o=(0,_vue.computed)(()=>u.value.title||"title"),r=(0,_vue.computed)(()=>u.value.name||"name"),s=(0,_vue.computed)(()=>u.value.children||"children"),M=(0,_vue.computed)(()=>u.value.linkUrl||"linkUrl"),T=(0,_vue.computed)(()=>u.value.routerLink||"routerLink"),I=(0,_vue.computed)(()=>Object.assign({},getConfig().menu.scrollbarConfig,C.scrollbarConfig)),A=(0,_vue.computed)(()=>{var e=C.border;return e?!0===e?"first-group":e:""}),U=(0,_vue.computed)(()=>{var e=C.collapsed;return _xeUtils.default.isBoolean(e)?e:!!i&&!!i.props.collapsed}),L=(0,_vue.computed)(()=>{var e;return i?(e=i.getComputeMaps().computeVarStyle,e.value):{}}),S={computeSize:E},O={xID:t,props:C,context:e,reactData:k,internalData:b,getRefMaps:()=>l,getComputeMaps:()=>S},V=e=>""+(e.title||e.name),c=u=>{let o=k.activeName,r=b.menuInitMaps;_xeUtils.default.eachTree(k.menuList,(e,t,i,n,l,a)=>{e.itemKey===o?(a.forEach(e=>{e.isActive=!0,u&&(e.isExpand=!0,r[e.itemId]=!0)}),e.isExactActive=!0):(e.isExactActive=!1,e.isActive=!1)},{children:"childList"})},m=()=>{let{options:e,expandAll:c,expandKeys:t}=C,m={},v=o.value,d=r.value,p=s.value,_=M.value,x=T.value,g={},f=(t&&t.forEach(e=>{g[e]=!0}),{}),h={};k.menuList=_xeUtils.default.mapTree(e,(e,t,i,n,l)=>{var a=++nemuUniqueKey,u=e[d]||n.join(","),o=e[p],r=o&&0<o.length,s=!!r&&(_xeUtils.default.isBoolean(e.expanded)?e.expanded:g[u]||!!c),o=(s&&(m[a]=!0),{itemConf:e,title:e[v],name:e[d],icon:e.icon,linkUrl:e[_],linkTarget:e.linkTarget,routerLink:e[x],permissionCode:e.permissionCode,children:o,slots:e.slots,parentKey:l?l.name||n.slice(0,n.length-1).join(","):"",level:n.length,itemId:a,itemKey:u,isExactActive:!1,isActive:!1,isExpand:s,hasChild:r,childList:[]});return h[u]&&errLog("vxe.error.repeatKey",[d,e[d]]),f[a]=o,h[u]=o},{children:"children",mapChildren:"childList"}),b.menuInitMaps=m,b.menuCacheMaps=f,b.menuKeyMaps=h},v=()=>{var e=C.collapseFixed;e&&(0,_vue.nextTick)(()=>{var e,t=U.value,i=h.value;i&&(e=i.getBoundingClientRect(),i=i.parentNode,k.collapseStyle=t?{top:(0,_dom.toCssUnit)(e.top),left:(0,_dom.toCssUnit)(e.left),height:(0,_dom.toCssUnit)(i.clientHeight),zIndex:k.collapseZindex}:{})})},K=()=>{var e=C.collapseFixed;e&&(e=k.initialized,U.value&&!e&&(k.initialized=!0),k.isEnterCollapse=!1,k.collapseZindex<(0,_utils.getLastZIndex)()&&(k.collapseZindex=(0,_utils.nextZIndex)()),v())},d=(t,i,e)=>{var n=C.accordion;let{menuEffectMaps:l,menuInitMaps:a}=b,{itemId:u,hasChild:o,isExpand:r}=i;var s=U.value,c=!r;if(o){t.stopPropagation(),t.preventDefault(),l[u]&&clearTimeout(l[u]),n&&e.forEach(e=>{e!==i&&(e.isExpand=!1)}),i.isExpand=c,a[u]=!0;t=(s?y:h).value;if(t){n=t.querySelector(`.vxe-menu--item-wrapper[data-menu-id="${u}"]`);let e=n?n.querySelector(".vxe-menu--item-group"):null;e&&(c?(e.style.height="0",e.setAttribute("data-effect","y"),requestAnimationFrame(()=>{e.style.height=e.scrollHeight+"px"})):(e.style.height=e.scrollHeight+"px",e.setAttribute("data-effect","y"),requestAnimationFrame(()=>{e.style.height="0"})),l[u]=setTimeout(()=>{delete l[u],e.removeAttribute("data-effect"),e.style.height=""},350))}}},D=e=>{k.activeName=e,n("update:modelValue",e)},q=(n,l)=>{var e=C.menuConfig,t=a.value;(e?(0,_utils.isEnableConf)(t):t.enabled)&&({options:e,visibleMethod:t}=t,t&&!t({$menu:O,options:e,currentMenu:l,currentOption:l.itemConf})||_ui.VxeUI.contextMenu&&_ui.VxeUI.contextMenu.openByEvent(n,{options:e,events:{optionClick(e){var t=e.option,i=menus.get(t.code),i=i?i.menuMenuMethod:null,t={menu:t,currentMenu:l,currentOption:l.itemConf,$event:n,$menu:O};i&&i(t,n),_("menu-click",t,e.$event)}}})),_("option-menu",{currentMenu:l},n)},N=(e,t,i)=>{var{itemKey:n,linkUrl:l,routerLink:a,hasChild:u}=t,l=(!l&&!a&&u?d(e,t,i):(D(n),k.isEnterCollapse=!1,b.lastActiveTime=Date.now()),{currentMenu:t,currentOption:t.itemConf,option:t.itemConf,menu:t});_("click",l,e)},z=()=>{var e=b.lastActiveTime;e<Date.now()-500&&(k.isEnterCollapse=!0)},B=()=>{k.isEnterCollapse=!1},p=(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=f[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],_=(e,t,i)=>{n(e,(0,_ui.createEvent)(i,{$menu:O},t))},x=e=>{var t=h.value,t=t?t.querySelector(`.vxe-menu--item-wrapper[data-menu-id="${e}"]`):null;return!!t&&((0,_dom.scrollToView)(t),!0)};t={dispatchEvent:_,setExpandByMenuKey(e,t){let{menuKeyMaps:i,menuInitMaps:n}=b;return e&&(e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=i[e];e&&(t&&(n[e.itemId]=!0),e.isExpand=!!t)}),(0,_vue.nextTick)()},clearAllExpandMenu(){var e=k.menuList;return _xeUtils.default.eachTree(e,e=>{e.isExpand=!1},{children:"childList"}),b.menuInitMaps={},(0,_vue.nextTick)()},scrollToMenuKey(e){var t=b.menuKeyMaps,t=t[e];if(!t)return(0,_vue.nextTick)();let i=t.itemId;return x(i)?(0,_vue.nextTick)():(0,_vue.nextTick)().then(()=>{x(i)})},scrollToActiveMenu(){var e=k.activeName;return e?O.scrollToMenuKey(e):(0,_vue.nextTick)().then(()=>{var e=k.activeName;if(e)return O.scrollToMenuKey(e)})}};Object.assign(O,t,{});let j=(t,i)=>{var{icon:e,isExpand:n,hasChild:l}=t,a=t.slots||{},u=a.default||f.option,o=a.title||f.optionTitle||f["option-title"],a=a.icon||f.optionIcon||f["option-icon"],r=V(t),s=U.value,s={currentMenu:t,currentOption:t.itemConf,option:t.itemConf,collapsed:s};return[u?(0,_ui.renderEmptyElement)(O):(0,_vue.h)("div",{class:"vxe-menu--item-link-icon"},a?p(a,s):e?[(0,_vue.h)("i",{class:e})]:[]),u?(0,_vue.h)("div",{class:"vxe-menu--item-custom-title"},p(u,s)):(0,_vue.h)("div",{class:"vxe-menu--item-link-title",title:r},o?p(o,s):r),l?(0,_vue.h)("div",{class:"vxe-menu--item-link-collapse",onClick(e){d(e,t,i)}},[(0,_vue.h)("i",{class:n?getIcon().MENU_ITEM_EXPAND_OPEN:getIcon().MENU_ITEM_EXPAND_CLOSE})]):(0,_ui.renderEmptyElement)(O)]},w=(t,i)=>{let{itemId:e,itemKey:n,level:l,hasChild:a,isActive:u,isExactActive:o,isExpand:r,linkUrl:s,routerLink:c,linkTarget:m,childList:v}=t;var d,p=k.isEnterCollapse,_=b.menuInitMaps,x=U.value;return t.permissionCode&&!_ui.permission.checkVisible(t.permissionCode)?(0,_ui.renderEmptyElement)(O):(d={onContextmenu(e){q(e,t)},onClick(e){N(e,t,i)}},(0,_vue.h)("div",{key:n,class:["vxe-menu--item-wrapper","vxe-menu--item-level"+l,{"has--child":a,"is--exact-active":o,"is--active":u,"is--expand":x=(!x||p)&&r}],"data-menu-id":e},[s?(0,_vue.h)("a",Object.assign({class:"vxe-menu--item-link is--link",href:s,target:m},d),j(t,i)):c?(0,_vue.h)((0,_vue.resolveComponent)("router-link"),Object.assign({class:"vxe-menu--item-link is--router",to:c,target:m},d),{default:()=>j(t,i)}):(0,_vue.h)("div",Object.assign({class:"vxe-menu--item-link is--default"},d),j(t,i)),a?(0,_vue.h)("div",{class:"vxe-menu--item-group"},x||_[e]?v.map(e=>w(e,v)):[]):(0,_ui.renderEmptyElement)(O)]))};let g=(0,_vue.ref)(0);return(0,_vue.watch)(()=>C.options?C.options.length:-1,()=>{g.value++}),(0,_vue.watch)(()=>C.options,()=>{g.value++}),(0,_vue.watch)(g,()=>{m(),c(!0),(0,_vue.nextTick)(()=>{O.scrollToActiveMenu()})}),(0,_vue.watch)(()=>C.modelValue,e=>{k.activeName=e}),(0,_vue.watch)(()=>k.activeName,()=>{c(!0)}),(0,_vue.watch)(U,()=>{K()}),(0,_vue.onMounted)(()=>{var e=C.menuConfig,t=_ui.VxeUI.getComponent("VxeContextMenu");e&&!t&&errLog("vxe.error.reqComp",["vxe-context-menu"]),_ui.globalEvents.on(O,"resize",v),v(),(0,_vue.nextTick)(()=>{O.scrollToActiveMenu()})}),(0,_vue.onBeforeUnmount)(()=>{_ui.globalEvents.off(O,"resize"),_xeUtils.default.assign(k,createReactData()),_xeUtils.default.assign(b,createInternalData())}),k.initialized=!!C.collapsed,k.activeName=C.modelValue,m(),c(!0),O.renderVN=()=>{var{loading:e,collapseFixed:t,appendTo:i,useScrollbar:n}=C;let{initialized:l,menuList:a,collapseStyle:u,isEnterCollapse:o}=k;var r=E.value;let s=U.value;var c=A.value,m=L.value,v=I.value,{viewClassName:d,viewInnerClassName:p}=v,_=f.header,x=f.footer;let g={};t&&(g={onMouseenter:z,onMouseleave:B});t={collapsed:s};return(0,_vue.h)("div",{ref:h,class:["vxe-menu",{["border--"+c]:c,["size--"+r]:r,"is--collapsed":s,"is--loading":e}]},[_?(0,_vue.h)("div",{class:"vxe-menu--header"},_(t)):(0,_ui.renderEmptyElement)(O),(0,_vue.h)("div",{class:"vxe-menu--body"},a.map(e=>(s?(t,i)=>{let{itemId:e,itemKey:n,level:l,hasChild:a,isActive:u,isExactActive:o,routerLink:r,linkUrl:s,linkTarget:c,childList:m}=t;var v;return t.permissionCode&&!_ui.permission.checkVisible(t.permissionCode)?(0,_ui.renderEmptyElement)(O):(v={onContextmenu(e){q(e,t)},onClick(e){N(e,t,i)}},(0,_vue.h)("div",{key:n,class:["vxe-menu--item-wrapper","vxe-menu--item-level"+l,{"has--child":a,"is--exact-active":o,"is--active":u}],"data-menu-id":e},[s?(0,_vue.h)("a",Object.assign({class:"vxe-menu--item-link is--link",href:s,target:c},v),j(t,i)):r?(0,_vue.h)((0,_vue.resolveComponent)("router-link"),Object.assign({class:"vxe-menu--item-link is--router",to:r,target:c},v),{default:()=>j(t,i)}):(0,_vue.h)("div",Object.assign({class:"vxe-menu--item-link is--default"},v),j(t,i)),a?(0,_vue.h)("div",{class:"vxe-menu--item-group"},m.map(e=>w(e,m))):(0,_ui.renderEmptyElement)(O)]))}:w)(e,a))),x?(0,_vue.h)("div",{class:"vxe-menu--footer"},x(t)):(0,_ui.renderEmptyElement)(O),(0,_vue.h)(_vue.Teleport,{to:(0,_dom.getPopupContainer)(i),disabled:!l},[(0,_vue.h)("div",Object.assign({ref:y,class:["vxe-menu--collapse-wrapper",{["size--"+r]:r,"is--collapsed":s,"is--enter":o,"is--loading":e}],style:Object.assign({},m,u)},g),s?[_?(0,_vue.h)("div",{class:"vxe-menu--header"},_(t)):(0,_ui.renderEmptyElement)(O),n?(0,_vue.h)(_scrollbar.default,Object.assign(Object.assign({class:"vxe-menu--scrollbar-body"},v),{viewClassName:"vxe-menu--body-view"+(d?" "+d:""),viewInnerClassName:"vxe-menu--body-inner"+(d?" "+p:"")}),{default:()=>a.map(e=>w(e,a))}):(0,_vue.h)("div",{class:"vxe-menu--body"},a.map(e=>w(e,a))),x?(0,_vue.h)("div",{class:"vxe-menu--footer"},x(t)):(0,_ui.renderEmptyElement)(O)]:[])]),(0,_vue.h)(_loading.default,{class:"vxe-menu-view--loading",modelValue:e})])},O},render(){return this.renderVN()}});
|
package/lib/menu/style/style.css
CHANGED
|
@@ -80,12 +80,13 @@
|
|
|
80
80
|
|
|
81
81
|
.vxe-menu--collapse-wrapper {
|
|
82
82
|
display: none;
|
|
83
|
+
flex-direction: column;
|
|
83
84
|
position: absolute;
|
|
84
|
-
overflow:
|
|
85
|
+
overflow: hidden;
|
|
85
86
|
background-color: var(--vxe-ui-layout-background-color);
|
|
86
87
|
}
|
|
87
88
|
.vxe-menu--collapse-wrapper.is--collapsed {
|
|
88
|
-
display:
|
|
89
|
+
display: flex;
|
|
89
90
|
transition: all 0.25s ease-in-out;
|
|
90
91
|
}
|
|
91
92
|
.vxe-menu--collapse-wrapper:not(.is--enter) {
|
|
@@ -100,6 +101,17 @@
|
|
|
100
101
|
width: var(--vxe-ui-layout-aside-default-width);
|
|
101
102
|
box-shadow: var(--vxe-ui-menu-collapse-wrapper-box-shadow);
|
|
102
103
|
}
|
|
104
|
+
.vxe-menu--collapse-wrapper > .vxe-menu--header, .vxe-menu--collapse-wrapper > .vxe-menu--footer {
|
|
105
|
+
flex-shrink: 0;
|
|
106
|
+
}
|
|
107
|
+
.vxe-menu--collapse-wrapper > .vxe-menu--scrollbar-body {
|
|
108
|
+
flex-grow: 1;
|
|
109
|
+
overflow: hidden;
|
|
110
|
+
}
|
|
111
|
+
.vxe-menu--collapse-wrapper > .vxe-menu--body {
|
|
112
|
+
flex-grow: 1;
|
|
113
|
+
overflow: auto;
|
|
114
|
+
}
|
|
103
115
|
|
|
104
116
|
.vxe-menu--item-link {
|
|
105
117
|
display: flex;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vxe-menu,.vxe-menu--collapse-wrapper{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-default);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-default);--vxe-ui-menu-current-item-padding:var(--vxe-ui-layout-padding-default);--vxe-ui-menu-current-margin:4px}.vxe-menu--collapse-wrapper.size--xlarge,.vxe-menu.size--xlarge{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-xlarge);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-xlarge);--vxe-ui-menu-current-item-padding:var(--vxe-ui-layout-padding-xlarge)}.vxe-menu--collapse-wrapper.size--large,.vxe-menu.size--large{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-large);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-large);--vxe-ui-menu-current-item-padding:var(--vxe-ui-layout-padding-large)}.vxe-menu--collapse-wrapper.size--medium,.vxe-menu.size--medium{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-medium);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-medium);--vxe-ui-menu-current-item-padding:var(--vxe-ui-layout-padding-medium)}.vxe-menu--collapse-wrapper.size--small,.vxe-menu.size--small{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-small);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-small);--vxe-ui-menu-current-item-padding:var(--vxe-ui-layout-padding-small)}.vxe-menu--collapse-wrapper.size--mini,.vxe-menu.size--mini{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-mini);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-mini);--vxe-ui-menu-current-item-padding:var(--vxe-ui-layout-padding-mini)}.vxe-menu--collapse-wrapper.size--large,.vxe-menu--collapse-wrapper.size--xlarge,.vxe-menu.size--large,.vxe-menu.size--xlarge{--vxe-ui-menu-current-margin:6px}.vxe-menu--collapse-wrapper.size--mini,.vxe-menu--collapse-wrapper.size--small,.vxe-menu.size--mini,.vxe-menu.size--small{--vxe-ui-menu-current-margin:2px}.vxe-menu{position:relative}.vxe-menu.is--collapsed .vxe-menu--item-custom-title,.vxe-menu.is--collapsed .vxe-menu--item-link-collapse,.vxe-menu.is--collapsed .vxe-menu--item-link-title{display:none}.vxe-menu.is--loading{min-height:4em}.vxe-menu.border--first .vxe-menu--item-level1>.vxe-menu--item-link{border-bottom:1px solid var(--vxe-ui-menu-border-color)}.vxe-menu.border--first-group .vxe-menu--item-level1.has--child>.vxe-menu--item-link{border-bottom:1px solid var(--vxe-ui-menu-border-color)}.vxe-menu.border--group .vxe-menu--item-wrapper.has--child>.vxe-menu--item-link{border-bottom:1px solid var(--vxe-ui-menu-border-color)}.vxe-menu.border--all .vxe-menu--item-wrapper>.vxe-menu--item-link{border-bottom:1px solid var(--vxe-ui-menu-border-color)}.vxe-menu,.vxe-menu--collapse-wrapper{font-size:var(--vxe-ui-menu-current-font-size);color:var(--vxe-ui-font-color);font-family:var(--vxe-ui-font-family);background-color:var(--vxe-ui-layout-background-color)}.vxe-menu--collapse-wrapper{display:none;position:absolute;overflow:
|
|
1
|
+
.vxe-menu,.vxe-menu--collapse-wrapper{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-default);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-default);--vxe-ui-menu-current-item-padding:var(--vxe-ui-layout-padding-default);--vxe-ui-menu-current-margin:4px}.vxe-menu--collapse-wrapper.size--xlarge,.vxe-menu.size--xlarge{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-xlarge);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-xlarge);--vxe-ui-menu-current-item-padding:var(--vxe-ui-layout-padding-xlarge)}.vxe-menu--collapse-wrapper.size--large,.vxe-menu.size--large{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-large);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-large);--vxe-ui-menu-current-item-padding:var(--vxe-ui-layout-padding-large)}.vxe-menu--collapse-wrapper.size--medium,.vxe-menu.size--medium{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-medium);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-medium);--vxe-ui-menu-current-item-padding:var(--vxe-ui-layout-padding-medium)}.vxe-menu--collapse-wrapper.size--small,.vxe-menu.size--small{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-small);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-small);--vxe-ui-menu-current-item-padding:var(--vxe-ui-layout-padding-small)}.vxe-menu--collapse-wrapper.size--mini,.vxe-menu.size--mini{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-mini);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-mini);--vxe-ui-menu-current-item-padding:var(--vxe-ui-layout-padding-mini)}.vxe-menu--collapse-wrapper.size--large,.vxe-menu--collapse-wrapper.size--xlarge,.vxe-menu.size--large,.vxe-menu.size--xlarge{--vxe-ui-menu-current-margin:6px}.vxe-menu--collapse-wrapper.size--mini,.vxe-menu--collapse-wrapper.size--small,.vxe-menu.size--mini,.vxe-menu.size--small{--vxe-ui-menu-current-margin:2px}.vxe-menu{position:relative}.vxe-menu.is--collapsed .vxe-menu--item-custom-title,.vxe-menu.is--collapsed .vxe-menu--item-link-collapse,.vxe-menu.is--collapsed .vxe-menu--item-link-title{display:none}.vxe-menu.is--loading{min-height:4em}.vxe-menu.border--first .vxe-menu--item-level1>.vxe-menu--item-link{border-bottom:1px solid var(--vxe-ui-menu-border-color)}.vxe-menu.border--first-group .vxe-menu--item-level1.has--child>.vxe-menu--item-link{border-bottom:1px solid var(--vxe-ui-menu-border-color)}.vxe-menu.border--group .vxe-menu--item-wrapper.has--child>.vxe-menu--item-link{border-bottom:1px solid var(--vxe-ui-menu-border-color)}.vxe-menu.border--all .vxe-menu--item-wrapper>.vxe-menu--item-link{border-bottom:1px solid var(--vxe-ui-menu-border-color)}.vxe-menu,.vxe-menu--collapse-wrapper{font-size:var(--vxe-ui-menu-current-font-size);color:var(--vxe-ui-font-color);font-family:var(--vxe-ui-font-family);background-color:var(--vxe-ui-layout-background-color)}.vxe-menu--collapse-wrapper{display:none;flex-direction:column;position:absolute;overflow:hidden;background-color:var(--vxe-ui-layout-background-color)}.vxe-menu--collapse-wrapper.is--collapsed{display:flex;transition:all .25s ease-in-out}.vxe-menu--collapse-wrapper:not(.is--enter){width:var(--vxe-ui-layout-aside-collapse-width)}.vxe-menu--collapse-wrapper:not(.is--enter) .vxe-menu--item-custom-title,.vxe-menu--collapse-wrapper:not(.is--enter) .vxe-menu--item-link-collapse,.vxe-menu--collapse-wrapper:not(.is--enter) .vxe-menu--item-link-title{display:none}.vxe-menu--collapse-wrapper.is--enter{width:var(--vxe-ui-layout-aside-default-width);box-shadow:var(--vxe-ui-menu-collapse-wrapper-box-shadow)}.vxe-menu--collapse-wrapper>.vxe-menu--footer,.vxe-menu--collapse-wrapper>.vxe-menu--header{flex-shrink:0}.vxe-menu--collapse-wrapper>.vxe-menu--scrollbar-body{flex-grow:1;overflow:hidden}.vxe-menu--collapse-wrapper>.vxe-menu--body{flex-grow:1;overflow:auto}.vxe-menu--item-link{display:flex;flex-direction:row;align-items:center;margin:0 var(--vxe-ui-menu-current-item-padding);height:var(--vxe-ui-menu-current-item-height);color:var(--vxe-ui-font-color);border-radius:var(--vxe-ui-base-border-radius);text-decoration:none;cursor:pointer}.vxe-menu--item-link:hover{background-color:var(--vxe-ui-base-hover-background-color)}.vxe-menu--item-custom-title,.vxe-menu--item-link,.vxe-menu--item-link-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-menu--item-link-icon{flex-shrink:0;width:var(--vxe-ui-menu-icon-width);text-align:center}.vxe-menu--item-custom-title,.vxe-menu--item-link-title{flex-grow:1;padding-left:.2em}.vxe-menu--item-link-collapse{flex-shrink:0;padding:.5em;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-menu--item-link-collapse i{display:inline-block;font-size:.8em;transition:transform .25s ease-in-out}.vxe-menu--item-wrapper{margin:var(--vxe-ui-menu-current-margin) 0}.vxe-menu--item-wrapper:first-child{margin-top:0}.vxe-menu--item-wrapper:last-child{margin-bottom:0}.vxe-menu--item-wrapper.vxe-menu--item-level1>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double)}.vxe-menu--item-wrapper.vxe-menu--item-level1>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 1)}.vxe-menu--item-wrapper.vxe-menu--item-level2>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 2)}.vxe-menu--item-wrapper.vxe-menu--item-level3>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 3)}.vxe-menu--item-wrapper.vxe-menu--item-level4>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 4)}.vxe-menu--item-wrapper.vxe-menu--item-level5>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 5)}.vxe-menu--item-wrapper.vxe-menu--item-level6>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 6)}.vxe-menu--item-wrapper.vxe-menu--item-level7>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 7)}.vxe-menu--item-group{height:0;overflow:hidden}.vxe-menu--item-group[data-effect]{transition:height .3s ease-in-out}.vxe-menu--item-wrapper.is--active>.vxe-menu--item-link{font-weight:700}.vxe-menu--item-wrapper.is--exact-active>.vxe-menu--item-link{color:var(--vxe-ui-font-primary-color);background-color:var(--vxe-ui-base-active-background-color)}.vxe-menu--item-wrapper.is--expand>.vxe-menu--item-group{height:auto}
|