vxe-pc-ui 4.16.5 → 4.16.7
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 +177 -108
- package/dist/style.css +1 -1
- package/dist/style.min.css +1 -1
- package/es/icon/style.css +1 -1
- package/es/list/src/list.js +21 -9
- package/es/menu/src/menu.js +64 -17
- package/es/menu/style.css +16 -7
- package/es/menu/style.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/tree/src/tree.js +12 -2
- package/es/ui/index.js +3 -3
- package/es/ui/src/log.js +1 -1
- package/es/vxe-menu/style.css +16 -7
- package/es/vxe-menu/style.min.css +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/index.umd.js +102 -28
- package/lib/index.umd.min.js +1 -1
- package/lib/list/src/list.js +21 -9
- package/lib/list/src/list.min.js +1 -1
- package/lib/menu/src/menu.js +65 -13
- package/lib/menu/src/menu.min.js +1 -1
- package/lib/menu/style/style.css +16 -7
- package/lib/menu/style/style.min.css +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/tree/src/tree.js +12 -2
- package/lib/tree/src/tree.min.js +1 -1
- package/lib/ui/index.js +3 -3
- 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/vxe-menu/style/style.css +16 -7
- package/lib/vxe-menu/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/list/src/list.ts +25 -13
- package/packages/menu/src/menu.ts +70 -17
- package/packages/tree/src/tree.ts +12 -2
- package/packages/ui/index.ts +2 -2
- package/styles/components/menu.scss +10 -4
- package/types/components/list.d.ts +12 -0
- package/types/components/menu.d.ts +6 -0
- package/types/components/tree.d.ts +12 -0
- /package/es/icon/{iconfont.1783670404729.ttf → iconfont.1783873713408.ttf} +0 -0
- /package/es/icon/{iconfont.1783670404729.woff → iconfont.1783873713408.woff} +0 -0
- /package/es/icon/{iconfont.1783670404729.woff2 → iconfont.1783873713408.woff2} +0 -0
- /package/es/{iconfont.1783670404729.ttf → iconfont.1783873713408.ttf} +0 -0
- /package/es/{iconfont.1783670404729.woff → iconfont.1783873713408.woff} +0 -0
- /package/es/{iconfont.1783670404729.woff2 → iconfont.1783873713408.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1783670404729.ttf → iconfont.1783873713408.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1783670404729.woff → iconfont.1783873713408.woff} +0 -0
- /package/lib/icon/style/{iconfont.1783670404729.woff2 → iconfont.1783873713408.woff2} +0 -0
- /package/lib/{iconfont.1783670404729.ttf → iconfont.1783873713408.ttf} +0 -0
- /package/lib/{iconfont.1783670404729.woff → iconfont.1783873713408.woff} +0 -0
- /package/lib/{iconfont.1783670404729.woff2 → iconfont.1783873713408.woff2} +0 -0
package/lib/list/src/list.js
CHANGED
|
@@ -412,7 +412,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
412
412
|
const el = refElem.value;
|
|
413
413
|
if (el) {
|
|
414
414
|
const parentEl = el.parentElement;
|
|
415
|
-
|
|
415
|
+
let parentHeight = 0;
|
|
416
|
+
if (parentEl) {
|
|
417
|
+
const parentStyle = getComputedStyle(parentEl);
|
|
418
|
+
parentHeight = parentEl.clientHeight - Math.ceil(_xeUtils.default.toNumber(parentStyle.paddingLeft) + _xeUtils.default.toNumber(parentStyle.paddingRight));
|
|
419
|
+
}
|
|
420
|
+
reactData.parentHeight = parentHeight;
|
|
416
421
|
updateHeight();
|
|
417
422
|
if (el.clientWidth && el.clientHeight) {
|
|
418
423
|
return computeScrollLoad();
|
|
@@ -1206,7 +1211,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1206
1211
|
emitCheckboxMode(value);
|
|
1207
1212
|
return updateCheckboxStatus();
|
|
1208
1213
|
};
|
|
1209
|
-
const
|
|
1214
|
+
const getCheckboxRecords = () => {
|
|
1210
1215
|
const {
|
|
1211
1216
|
updateCheckboxFlag
|
|
1212
1217
|
} = reactData;
|
|
@@ -1626,7 +1631,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1626
1631
|
clearRadioRow,
|
|
1627
1632
|
setCheckboxRow,
|
|
1628
1633
|
setCheckboxRowByKey,
|
|
1629
|
-
|
|
1634
|
+
getCheckboxRecords,
|
|
1635
|
+
getCheckboxRows: getCheckboxRecords,
|
|
1630
1636
|
getCheckboxRowKeys,
|
|
1631
1637
|
clearCheckboxRow,
|
|
1632
1638
|
setAllCheckboxRow,
|
|
@@ -1738,6 +1744,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1738
1744
|
isRemoveByRow(row) {
|
|
1739
1745
|
const rowid = getRowId(row);
|
|
1740
1746
|
return !!reactData.removeRowFlag && !!internalData.removeRowMaps[rowid];
|
|
1747
|
+
},
|
|
1748
|
+
getRecordset() {
|
|
1749
|
+
return {
|
|
1750
|
+
insertRecords: $xeList.getInsertRecords(),
|
|
1751
|
+
removeRecords: $xeList.getRemoveRecords()
|
|
1752
|
+
};
|
|
1741
1753
|
}
|
|
1742
1754
|
};
|
|
1743
1755
|
const listPrivateMethods = {
|
|
@@ -2104,6 +2116,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
2104
2116
|
isCheckboxChecked = !!(updateCheckboxFlag && selectCheckboxMaps[rowid]);
|
|
2105
2117
|
}
|
|
2106
2118
|
const ctVNs = [];
|
|
2119
|
+
if (showRadio) {
|
|
2120
|
+
ctVNs.push(renderRadio(row, rowid, isRadioChecked));
|
|
2121
|
+
}
|
|
2122
|
+
if (showCheckbox) {
|
|
2123
|
+
ctVNs.push(renderCheckbox(row, rowid, isCheckboxChecked));
|
|
2124
|
+
}
|
|
2107
2125
|
let isDragDisabled = false;
|
|
2108
2126
|
if (isDrag && keyField && (!visibleMethod || visibleMethod(rowParams))) {
|
|
2109
2127
|
const handleOns = {};
|
|
@@ -2125,12 +2143,6 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
2125
2143
|
class: icon || (0, _ui.getIcon)().LIST_DRAG
|
|
2126
2144
|
})])]));
|
|
2127
2145
|
}
|
|
2128
|
-
if (showRadio) {
|
|
2129
|
-
ctVNs.push(renderRadio(row, rowid, isRadioChecked));
|
|
2130
|
-
}
|
|
2131
|
-
if (showCheckbox) {
|
|
2132
|
-
ctVNs.push(renderCheckbox(row, rowid, isCheckboxChecked));
|
|
2133
|
-
}
|
|
2134
2146
|
ctVNs.push((0, _vue.h)('div', {
|
|
2135
2147
|
key: 'ct5',
|
|
2136
2148
|
class: 'vxe-list--row-content'
|
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(I,a){let{slots:L,emit:o}=a;var e=_xeUtils.default.uniqueId();let i=_xeUtils.default.browse(),P=(0,_ui.useSize)(I).computeSize,M=(0,_vue.reactive)(createReactData()),E=createInternalData(),g=(0,_store.getCrossListDragRowInfo)(),y=(0,_vue.ref)(),N=(0,_vue.ref)(),z=(0,_vue.ref)(),b=(0,_vue.ref)(),Y=(0,_vue.ref)(),k=(0,_vue.ref)(),V=(0,_vue.ref)(),h={refElem:y},S={xID:e,props:I,context:a,reactData:M,internalData:E,getRefMaps:()=>h},T=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().list.rowConfig,I.rowConfig)),F=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().list.dragConfig,I.dragConfig)),w=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().list.virtualYConfig||(0,_ui.getConfig)().list.scrollY,I.virtualYConfig||I.scrollY)),H=(0,_vue.computed)(()=>{var e=T.value.keyField;return e||""}),B=(0,_vue.computed)(()=>{var e=I.dragConfig,t=F.value;return e&&(0,_utils.isEnableConf)(t)}),f=(0,_vue.computed)(()=>{var e=T.value.height;return e}),D=(0,_vue.computed)(()=>Object.assign({showIcon:!0},(0,_ui.getConfig)().list.radioConfig,I.radioConfig)),O=(0,_vue.computed)(()=>Object.assign({showIcon:!0},(0,_ui.getConfig)().list.checkboxConfig,I.checkboxConfig)),x=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().list.menuConfig,I.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}=I,{customHeight:r,customMaxHeight:o,headHeight:l,footHeight:a}=M,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:S},t))},s=e=>{o("update:checkRowKeys",e)},n=e=>{o("update:checkRowKey",e)},_=e=>getRowIdByField(e,H.value),p=e=>{var t=M.parentHeight,e=I[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=z.value;M.headHeight=e?Math.floor(e.offsetHeight):0,M.footHeight=t?Math.floor(t.offsetHeight):0,M.customHeight=p("height"),M.customMaxHeight=p("maxHeight")},m=()=>{var e=M.scrollYLoad,{scrollYStore:t,fullData:r}=E;M.bodyHeight=e?r.length*t.rowHeight:0,M.topSpaceHeight=e?Math.max(t.startIndex*t.rowHeight,0):0},J=()=>{var e=E.fullData;E.afterList=e.slice(0),se()},C=e=>{var t=M.scrollYLoad;let{fullData:r,scrollYStore:o,rowMaps:l}=E,a=H.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)}),M.rowList=e,(0,_vue.nextTick)()},Q=()=>{C(),m()},Z=()=>(0,_vue.nextTick)().then(()=>{var e=M.scrollYLoad,t=E.scrollYStore,r=Y.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=b.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=b.value;return e&&(e.scrollTop=0),(0,_vue.nextTick)()},te=(e,t)=>{var r=b.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),M.scrollYLoad?new Promise(e=>{setTimeout(()=>{(0,_vue.nextTick)(()=>{e()})},50)}):(0,_vue.nextTick)()},re=()=>{let{lastScrollLeft:e,lastScrollTop:t}=E;return ee().then(()=>{if(e||t)return E.lastScrollLeft=0,E.lastScrollTop=0,te(e,t)})},K=()=>{var e=y.value;if(e){var t=e.parentElement;if(M.parentHeight=t?t.clientHeight:0,W(),e.clientWidth&&e.clientHeight)return Z()}return(0,_vue.nextTick)()},oe=e=>{var t=E.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!==E.lastScrollLeft,l=r!==E.lastScrollTop;E.lastScrollTop=r,E.lastScrollLeft=t,M.scrollYLoad&&oe(e),R("scroll",{scrollLeft:t,scrollTop:r,isX:o,isY:l},e)},ae=()=>{var e=I.checkRowKey,t=E.fullKeyMaps;e?(t=t[e],M.selectRadioRow=t||null):M.selectRadioRow=null},ie=()=>{var e=I.checkRowKeys,t=E.fullKeyMaps,r=H.value,o={};if(e&&e.length)for(var l of e){l=t[l];l&&(o[getRowIdByField(l,r)]=l)}E.selectCheckboxMaps=o,v()},se=()=>{let{afterList:e,rowMaps:l}=E,a=H.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=E.fullData;let l=H.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}}),E.fullKeyMaps=a,E.rowMaps=i},t=e=>{var t=E.scrollYStore,r=w.value,e=e?e.slice(0):[];return Object.assign(t,{startIndex:0,endIndex:1,visibleSize:0}),E.fullData=e,E.insertRowMaps={},M.insertRowFlag++,E.removeRowMaps={},M.removeRowFlag++,M.scrollYLoad=!!r.enabled&&-1<r.gt&&(0===r.gt||r.gt<=e.length),ne(),C(!0),ae(),ie(),Z().then(()=>{re()})},ue=()=>{$(),A(),K()},ce=()=>{var e=y.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=y.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")})}},ve=e=>{var t=M.dragRow,r=F.value.tooltipMethod;let o="";o=r?""+(r({$list:S,row:t})||""):(0,_ui.getI18n)("vxe.list.dragTip",[e.textContent||""]),M.dragTipText=o},u=()=>{var e=V.value,t=k.value;e&&(e.style.display=""),t&&(t.style.display="")},A=()=>{crossListDragRowObj=null,g.row=null},ge=()=>{var e=M.dragRow;e&&(u(),ce(),A(),M.dragRow=null)},he=(e,t)=>{e.stopPropagation();var r=t.row,{isCrossListDrag:o,trigger:l,dragStartMethod:a}=F.value,i=e.currentTarget,l="row"===l?i:i.parentElement.parentElement;ce(),a&&!a(t)?(l.draggable=!1,M.dragRow=null,u()):(o&&(g.row=r,crossListDragRowObj={$oldList:S,$newList:null}),i={row:r},M.dragRow=r,M.isCrossDragRow=!1,l.draggable=!0,de(r),ve(l),R("row-dragstart",i,e))},we=()=>{ge()},c=(e,t,r,o)=>{var l=y.value;if(l){var a=l.getBoundingClientRect(),i=l.clientHeight;if(t){var s=k.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"))}},$=()=>{var e=y.value;u(),ce(),(0,_anime.clearRowAnimate)(e,[".vxe-list--row"]),M.dragRow=null},fe=(l,a,i,s)=>{let n=E.fullData;var e=F.value;let{animation:v,dragEndMethod:t}=e;e=t||(e?e.dragEndMethod:null);let g="bottom"===s?1:0,h=y.value,w={status:!1};if(h&&i&&a){if(i!==a){var f={oldRow:a,newRow:i,dragRow:a,dragPos:s,offsetIndex:g};let u=_(a),c=j(n,u);var x,p=U(i);let d=0,t=-1,r=void(v&&(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=q(n,a),n.splice(r,1);var e=q(n,i);return o=e+g,n.splice(o,0,a),C(),M.scrollYLoad&&m(),l&&(e={oldRow:a,newRow:i,dragRow:a,dragPos:s,offsetIndex:g,_index:{newIndex:o,oldIndex:r}},R("row-dragend",e,l)),(0,_vue.nextTick)().then(()=>{if(v){var o=M.rowList,l=E.fullData,a=j(l,u),i=l[0],i=q(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=j(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=>($(),A(),e))}$(),A()}return Promise.resolve(w)},xe=e=>{e.dataTransfer&&e.dataTransfer.setDragImage((0,_dom.getTpImg)(),0,0)},pe=e=>{var t=M.dragRow,{prevDragRow:r,prevDragPos:o}=E,l=F.value.isCrossListDrag;if(l&&crossListDragRowObj){l=crossListDragRowObj.$newList;if(l&&l.xID!==S.xID)return void l.handleCrossListRowDragInsertEvent(e)}fe(e,t,r,o)},Re=e=>{var t=M.dragRow,r=E.fullData,o=F.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(E.prevDragRow=r,E.prevDragPos=i,o&&crossListDragRowObj){var{$oldList:o,$newList:s}=crossListDragRowObj;if(o){var n=o.reactData;if(o.xID!==S.xID)return s&&s.xID!==S.xID&&s.hideCrossListRowDropClearStatus(),o.hideCrossListRowDropClearStatus(),n.isCrossDragRow=!0,M.dragTipText=n.dragTipText,crossListDragRowObj.$newList=S,void c(e,l,!0,i);s&&s.hideCrossListRowDropClearStatus(),M.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}=F.value;let l=!1;B.value&&(l="row"===r);r={row:t,$list:S};!l||o&&o(r)||he(e,r)},me=(e,t)=>{var{showRadio:r,showCheckbox:o}=I,l=E.currentRow,a=D.value,i=O.value,s=T.value.isCurrent;let n=!1,u=!1,c=!1;s?(n=!0,Te(e,t)):l&&(E.currentRow=null,M.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)},U=e=>getRowKeyByField(e,H.value),l=(e,t)=>""+e==""+t,ye=(e,t)=>!(!e||!t)&&(e===t||l(_(e),_(t))),be=(e,t)=>e&&l(U(e),t);let d=(e,t)=>{let r=H.value;return _xeUtils.default.find(e,e=>l(getRowIdByField(e,r),t))},q=(e,t)=>t?_xeUtils.default.findIndexOf(e,e=>ye(e,t)):-1,j=(e,t)=>{let r=H.value;return _xeUtils.default.findIndexOf(e,e=>l(getRowIdByField(e,r),t))},ke=e=>{var t=M.selectRadioRow;return U(t)===e};let De=e=>{var t=M.updateCheckboxFlag,r=E.selectCheckboxMaps;return!(!t||!r[e])};let Ie=()=>{var e=M.updateCheckboxFlag,t=E.selectCheckboxMaps;let r=H.value,o=[];return e&&_xeUtils.default.each(t,e=>{e&&(e=getRowKeyByField(e,r),o.push(e))}),o},Le=()=>{E.selectCheckboxMaps={},M.updateCheckboxFlag++,M.isAllChecked=!1,M.isAllIndeterminate=!1;return s([]),(0,_vue.nextTick)()},Me=e=>{var{fullData:t,selectCheckboxMaps:r}=E,o=H.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),v()}return Le()},v=()=>{var{selectCheckboxMaps:e,fullData:t}=E,r=H.value,o=O.value.checkMethod;let l=!1,a=!1;if(o){for(var i of t)if(o({row:i,$list:S}))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 M.isAllChecked=l&&!a,M.isAllIndeterminate=l&&a,M.updateCheckboxFlag++,(0,_vue.nextTick)()},Ee=e=>{var t=M.isAllChecked,t=!t;t?Me(!0):Le(),R("checkbox-all",{checked:t},e)},Se=(t,r)=>{t.preventDefault(),t.stopPropagation();var o=E.selectCheckboxMaps,l=O.value.checkMethod,a=_(r),l=!!l&&!l({$list:S,row:r});if(!l){let e=!1;o[a]?delete o[a]:(e=!0,o[a]=r),M.updateCheckboxFlag++,v();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=T.value.currentMethod;let o=!1;(o=r?!r({row:t}):o)||(E.currentRow=t,M.currRowFlag++,R("current-change",{row:t,checked:!0},e))},Fe=(t,r)=>{t.preventDefault(),t.stopPropagation();var o=M.selectRadioRow,{strict:l,checkMethod:a}=D.value,i=U(r),a=!!a&&!a({$list:S,row:r});if(!a){a=i;let e=!0;l&&o&&i===U(o)?(e=!1,M.selectRadioRow=null):M.selectRadioRow=r,n(a),R("radio-change",{row:r,value:a,checked:e},t)}},He=(e,t)=>{let{fullData:o,rowMaps:l}=E,a=H.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}=E,s=H.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}),M.removeRowFlag++,M.insertRowFlag++,ne(),C(!0),se(),v(),M.scrollYLoad&&m(),(0,_vue.nextTick)().then(()=>({row:u.length?u[u.length-1]:null,rows:u}))},Oe=(o,l)=>{var e=I.menuConfig,t=x.value,r=T.value.isCurrent;(e?(0,_utils.isEnableConf)(t):t.enabled)&&({options:e,visibleMethod:t}=t,t&&!t({$list:S,options:e,row:l})||(r?Te(o,l):E.currentRow&&(E.currentRow=null,M.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:S};r&&r(t,o),R("menu-click",t,e.$event)}}}))),R("row-menu",{row:l},o)};e={dispatchEvent:R,loadData:t,reloadData(e){return ee(),t(e)},getFullData(){var e=E.fullData;return e},recalculate:K,scrollTo:te,refreshScroll:re,clearScroll:ee,getRowKey:U,eqRowKey:l,eqRow:ye,eqRowByKey:be,findRow:(e,t)=>t?_xeUtils.default.find(e,e=>ye(e,t)):null,findRowByKey:d,findRowIndexOf:q,findRowIndexOfByKey:j,isCheckedByRadioRowKey:ke,isCheckedByRadioRow:e=>ke(U(e)),isCheckedByCheckboxRowKey:De,isCheckedByCheckboxRow:e=>De(U(e)),setCurrentRow:e=>(E.currentRow=e,M.currRowFlag++,(0,_vue.nextTick)()),setCurrentRowByKey:e=>{var t=E.fullData;return E.currentRow=d(t,e),M.currRowFlag++,(0,_vue.nextTick)()},getCurrentRow:()=>{var e=E.currentRow;return e},getCurrentRowKey:()=>{var e=E.currentRow;return e?U(e):null},clearCurrentRow:()=>(E.currentRow=null,M.currRowFlag++,(0,_vue.nextTick)()),setRadioRow:e=>{M.selectRadioRow=e;e=U(e);return n(e),(0,_vue.nextTick)()},setRadioRowByKey:e=>{var t=E.fullData,t=(M.selectRadioRow=d(t,e),e);return n(t),(0,_vue.nextTick)()},getRadioRow:()=>{var e=M.selectRadioRow;return e},getRadioRowKey:()=>{var e=M.selectRadioRow;return e?U(e):null},clearRadioRow:()=>(M.selectRadioRow=null,n(null),(0,_vue.nextTick)()),setCheckboxRow:(e,t)=>{let r=E.selectCheckboxMaps,o=H.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),v()},setCheckboxRowByKey:(e,t)=>{let{selectCheckboxMaps:r,fullKeyMaps:o}=E,l=H.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),v()},getCheckboxRows:()=>{var e=M.updateCheckboxFlag,t=E.selectCheckboxMaps;let r=[];return e&&_xeUtils.default.each(t,e=>{e&&r.push(e)}),r},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=E.insertRowMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},isInsertByRow(e){e=_(e);return!!M.insertRowFlag&&!!E.insertRowMaps[e]},remove(e){let{fullData:r,insertRowMaps:t,removeRowMaps:o}=E;if(!H.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;S.isInsertByRow(e)||(t=_(e),o[t]=e)}),r===e?(e=l=r.slice(0),E.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]}),M.removeRowFlag++,M.insertRowFlag++,ne(),C(!0),se(),v(),M.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=E.removeRowMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},isRemoveByRow(e){e=_(e);return!!M.removeRowFlag&&!!E.removeRowMaps[e]}};Object.assign(S,e,{handleCrossListRowDragCancelEvent(){$(),A()},handleCrossListRowDragFinishEvent(t){var l=M.rowList,a=E.rowMaps;let{animation:i,isCrossListDrag:e}=F.value,s=y.value;if(s&&e&&crossListDragRowObj&&g){var n=g.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];S.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=M.rowList,o=F.value.isCrossListDrag;o&&crossListDragRowObj&&!r.length&&({$oldList:o,$newList:r}=crossListDragRowObj,o)&&(t=o).xID!==S.xID&&(r&&r.xID!==S.xID&&r.hideCrossListRowDropClearStatus(),e.preventDefault(),o.hideCrossListRowDropClearStatus(),crossListDragRowObj.$newList=S,E.prevDragRow=null,M.dragTipText=t.dragTipText,c(e,e.currentTarget,!0,""))},handleCrossListRowDragInsertEvent(n){let{prevDragRow:u,prevDragPos:c}=E;let{animation:d,isCrossListDrag:e,dragEndMethod:t}=F.value;if(e&&crossListDragRowObj&&g){let l=g.row,i=crossListDragRowObj.$oldList,s=y.value;if(s&&(i&&l)){let a=l,r=-1;u&&(r="bottom"===c?1:0);var v={oldRow:a,newRow:u,dragRow:a,dragPos:c,offsetIndex:r};let o={status:!1};Promise.resolve(!t||t(v)).then(e=>{if(!e)return i&&i.xID!==S.xID&&i.handleCrossListRowDragCancelEvent(n),ue(),o;let t=Promise.resolve();e=[a];i.handleCrossListRowDragFinishEvent(n),t=u?"bottom"===c?S.insertNextAt(e,u):S.insertAt(e,u):S.insert(e),S.dispatchEvent("row-insert-dragend",{oldRow:l,newRow:u,dragRow:a,dragPos:c,offsetIndex:r},n),$(),t.then(()=>{var e=M.rowList,r=E.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=(r,e,o)=>{var t=I.showRadio,{showIcon:l,checkMethod:a,visibleMethod:i}=D.value,i=!i||i({$list:S,row:r});if(t&&l&&i){let t=!!a&&!a({$list:S,row:r});return(0,_vue.h)("div",{key:"ct2",class:["vxe-list--radio-option",{"is--checked":o,"is--disabled":t}],onClick(e){t||Fe(e,r)}},[(0,_vue.h)("span",{class:["vxe-radio--icon",o?(0,_ui.getIcon)().RADIO_CHECKED:(0,_ui.getIcon)().RADIO_UNCHECKED]})])}return(0,_ui.renderEmptyElement)(S)},Ae=(r,e,o)=>{var t=I.showCheckbox,{showIcon:l,checkMethod:a,visibleMethod:i}=O.value,i=!i||i({$list:S,row:r});if(t&&l&&i){let t=!!a&&!a({$list:S,row:r});return(0,_vue.h)("div",{key:"ct3",class:["vxe-list--checkbox-option",{"is--checked":o,"is--disabled":t}],onClick(e){t||Se(e,r)}},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",o?(0,_ui.getIcon)().CHECKBOX_CHECKED:(0,_ui.getIcon)().CHECKBOX_UNCHECKED]})])}return(0,_ui.renderEmptyElement)(S)};let $e=(0,_vue.ref)(0),r=((0,_vue.watch)(()=>I.data?I.data.length:-1,()=>{$e.value++}),(0,_vue.watch)(()=>I.data,()=>{$e.value++}),(0,_vue.watch)($e,()=>{t(I.data||[])}),(0,_vue.ref)(0)),Ue=((0,_vue.watch)(()=>I.height,()=>{r.value++}),(0,_vue.watch)(()=>I.maxHeight,()=>{r.value++}),(0,_vue.watch)(()=>I.syncResize,()=>{r.value++}),(0,_vue.watch)(f,()=>{r.value++}),(0,_vue.watch)(r,()=>{(0,_vue.nextTick)(()=>{K()})}),(0,_vue.watch)(()=>I.checkRowKey,()=>{ae()}),(0,_vue.ref)(0));return(0,_vue.watch)(()=>I.checkRowKeys?I.checkRowKeys.length:-1,()=>{Ue.value++}),(0,_vue.watch)(()=>I.checkRowKeys,()=>{Ue.value++}),(0,_vue.watch)(Ue,()=>{ie()}),(0,_vue.onActivated)(()=>{K().then(()=>re())}),(0,_vue.nextTick)(()=>{t(I.data||[])}),(0,_vue.onMounted)(()=>{var{showSeq:e,showRadio:t,showCheckbox:r}=I,o=T.value.useKey,l=B.value,a=H.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"]),I.autoResize&&(e=y.value,(t=_ui.globalResize.create(()=>K())).observe(e),e&&t.observe(e.parentElement),E.resizeObserver=t),K(),_ui.globalEvents.on(S,"resize",K)}),(0,_vue.onBeforeUnmount)(()=>{var e=E.resizeObserver;e&&e.disconnect(),_ui.globalEvents.off(S,"resize"),_xeUtils.default.assign(M,createReactData()),_xeUtils.default.assign(E,createInternalData())}),S.renderVN=()=>{var{showCheckbox:e,className:t,loading:r}=I,{bodyHeight:o,topSpaceHeight:l,rowList:a,isAllChecked:i,isAllIndeterminate:s}=M,n=L.default,u=L.header,c=L.footer,d=P.value,v=X.value,g=G.value,h=D.value,w=O.value,{showHeader:f,headerTitle:x}=w,{trigger:p,isCrossListDrag:R}=F.value,{isHover:_,padding:m}=T.value,C=B.value,e=e&&!1!==f,f={};return R&&!a.length&&(f.onDragover=S.handleCrossListRowDragoverEmptyEvent),(0,_vue.h)("div",Object.assign({ref:y,class:["vxe-list",t?_xeUtils.default.isFunction(t)?t({$list:S}):t:"",{["size--"+d]:d,"is--drag":C,"is--loading":r}],style:v},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)(S),u?(0,_vue.h)("div",{class:"vxe-list--header-content"},u({items:a,$list:S})):(0,_ui.renderEmptyElement)(S)]):(0,_ui.renderEmptyElement)(S),(0,_vue.h)("div",{ref:b,class:"vxe-list--virtual-wrapper",style:g,onScroll:le},[(0,_vue.h)("div",{class:"vxe-list--y-space",style:{height:o?o+"px":""}}),(0,_vue.h)("div",{ref:Y,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:S}):a.map((e,t)=>((t,e)=>{var{showRadio:r,showCheckbox:o}=I,{selectRadioRow:l,currRowFlag:a,updateCheckboxFlag:i}=M,{selectCheckboxMaps:s,currentRow:n}=E,u=L.content,c=L.extra,{trigger:d,icon:v,disabledMethod:g,visibleMethod:h}=F.value,{useKey:w,contentField:f,className:x,isCurrent:p}=T.value,R=B.value,_=H.value,m=x&&_xeUtils.default.isFunction(x),w=_||w||R||p||r||o,p=w&&_?getRowIdByField(t,_):"",C=(0,_utils.enModelValue)(p);let y={row:t,$list:S},b=!1,k=(r&&(b=l&&(t===l||be(l,p))),!1);o&&(k=!(!i||!s[C]));l=[];let D=!1;R&&_&&(!h||h(y))&&(i={},"row"!==d&&(D=!(!g||!g(y)),i.onMousedown=e=>{D||he(e,y)},i.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"},i),[(0,_vue.h)("i",{class:v||(0,_ui.getIcon)().LIST_DRAG})])]))),r&&l.push(Ke(t,C,b)),o&&l.push(Ae(t,C,k)),l.push((0,_vue.h)("div",{key:"ct5",class:"vxe-list--row-content"},u?u(y):f?(0,_utils.getText)(t[f]):"")),c&&l.push((0,_vue.h)("div",{key:"ct7",class:"vxe-list--row-extra"},c(y)));s={onMousedown(e){_e(e,t)},onMouseup:we,onClick(e){me(e,t)},onDblclick(e){Ce(e,t)},onContextmenu(e){Oe(e,t)}};return R&&(s.onDragstart=xe,s.onDragend=pe,s.onDragover=Re),(0,_vue.h)("div",Object.assign({key:w&&_?C:e,class:["vxe-list--row",m?x(y):x||"",{"is--drag-disabled":D,"is--current":a&&n&&be(n,p),"is-radio--checked":b,"is-checkbox--checked":k}],rowid:w&&_?C:void 0},s),l)})(e,t)))]),c?(0,_vue.h)("div",{ref:z,class:"vxe-list--footer-wrapper"},c({items:a,$list:S})):(0,_ui.renderEmptyElement)(S),(()=>{var{dragRow:e,dragTipText:t}=M,r=F.value;return B.value?(0,_vue.h)("div",{class:"vxe-list--drag-wrapper"},[(0,_vue.h)("div",{ref:k,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)(S)]):(0,_ui.renderEmptyElement)(S)})(),(0,_vue.h)(_loading.default,{class:"vxe-list--loading",modelValue:r})])},S},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/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(I,e){let{slots:L,emit:o}=e;var t=_xeUtils.default.uniqueId();let i=_xeUtils.default.browse(),j=(0,_ui.useSize)(I).computeSize,M=(0,_vue.reactive)(createReactData()),E=createInternalData(),v=(0,_store.getCrossListDragRowInfo)(),y=(0,_vue.ref)(),N=(0,_vue.ref)(),P=(0,_vue.ref)(),b=(0,_vue.ref)(),z=(0,_vue.ref)(),Y=(0,_vue.ref)(),V=(0,_vue.ref)(),h={refElem:y},S={xID:t,props:I,context:e,reactData:M,internalData:E,getRefMaps:()=>h},T=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().list.rowConfig,I.rowConfig)),F=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().list.dragConfig,I.dragConfig)),w=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().list.virtualYConfig||(0,_ui.getConfig)().list.scrollY,I.virtualYConfig||I.scrollY)),H=(0,_vue.computed)(()=>{var e=T.value.keyField;return e||""}),B=(0,_vue.computed)(()=>{var e=I.dragConfig,t=F.value;return e&&(0,_utils.isEnableConf)(t)}),f=(0,_vue.computed)(()=>{var e=T.value.height;return e}),k=(0,_vue.computed)(()=>Object.assign({showIcon:!0},(0,_ui.getConfig)().list.radioConfig,I.radioConfig)),D=(0,_vue.computed)(()=>Object.assign({showIcon:!0},(0,_ui.getConfig)().list.checkboxConfig,I.checkboxConfig)),x=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().list.menuConfig,I.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}=I,{customHeight:r,customMaxHeight:o,headHeight:l,footHeight:a}=M,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:S},t))},s=e=>{o("update:checkRowKeys",e)},n=e=>{o("update:checkRowKey",e)},_=e=>getRowIdByField(e,H.value),p=e=>{var t=M.parentHeight,e=I[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;M.headHeight=e?Math.floor(e.offsetHeight):0,M.footHeight=t?Math.floor(t.offsetHeight):0,M.customHeight=p("height"),M.customMaxHeight=p("maxHeight")},m=()=>{var e=M.scrollYLoad,{scrollYStore:t,fullData:r}=E;M.bodyHeight=e?r.length*t.rowHeight:0,M.topSpaceHeight=e?Math.max(t.startIndex*t.rowHeight,0):0},J=()=>{var e=E.fullData;E.afterList=e.slice(0),se()},C=e=>{var t=M.scrollYLoad;let{fullData:r,scrollYStore:o,rowMaps:l}=E,a=H.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)}),M.rowList=e,(0,_vue.nextTick)()},Q=()=>{C(),m()},Z=()=>(0,_vue.nextTick)().then(()=>{var e=M.scrollYLoad,t=E.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=b.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=b.value;return e&&(e.scrollTop=0),(0,_vue.nextTick)()},te=(e,t)=>{var r=b.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),M.scrollYLoad?new Promise(e=>{setTimeout(()=>{(0,_vue.nextTick)(()=>{e()})},50)}):(0,_vue.nextTick)()},re=()=>{let{lastScrollLeft:e,lastScrollTop:t}=E;return ee().then(()=>{if(e||t)return E.lastScrollLeft=0,E.lastScrollTop=0,te(e,t)})},O=()=>{var t=y.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))),M.parentHeight=e,W(),t.clientWidth&&t.clientHeight)return Z()}return(0,_vue.nextTick)()},oe=e=>{var t=E.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!==E.lastScrollLeft,l=r!==E.lastScrollTop;E.lastScrollTop=r,E.lastScrollLeft=t,M.scrollYLoad&&oe(e),R("scroll",{scrollLeft:t,scrollTop:r,isX:o,isY:l},e)},ae=()=>{var e=I.checkRowKey,t=E.fullKeyMaps;e?(t=t[e],M.selectRadioRow=t||null):M.selectRadioRow=null},ie=()=>{var e=I.checkRowKeys,t=E.fullKeyMaps,r=H.value,o={};if(e&&e.length)for(var l of e){l=t[l];l&&(o[getRowIdByField(l,r)]=l)}E.selectCheckboxMaps=o,g()},se=()=>{let{afterList:e,rowMaps:l}=E,a=H.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=E.fullData;let l=H.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}}),E.fullKeyMaps=a,E.rowMaps=i},r=e=>{var t=E.scrollYStore,r=w.value,e=e?e.slice(0):[];return Object.assign(t,{startIndex:0,endIndex:1,visibleSize:0}),E.fullData=e,E.insertRowMaps={},M.insertRowFlag++,E.removeRowMaps={},M.removeRowFlag++,M.scrollYLoad=!!r.enabled&&-1<r.gt&&(0===r.gt||r.gt<=e.length),ne(),C(!0),ae(),ie(),Z().then(()=>{re()})},ue=()=>{A(),K(),O()},ce=()=>{var e=y.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=y.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=M.dragRow,r=F.value.tooltipMethod;let o="";o=r?""+(r({$list:S,row:t})||""):(0,_ui.getI18n)("vxe.list.dragTip",[e.textContent||""]),M.dragTipText=o},u=()=>{var e=V.value,t=Y.value;e&&(e.style.display=""),t&&(t.style.display="")},K=()=>{crossListDragRowObj=null,v.row=null},ve=()=>{var e=M.dragRow;e&&(u(),ce(),K(),M.dragRow=null)},he=(e,t)=>{e.stopPropagation();var r=t.row,{isCrossListDrag:o,trigger:l,dragStartMethod:a}=F.value,i=e.currentTarget,l="row"===l?i:i.parentElement.parentElement;ce(),a&&!a(t)?(l.draggable=!1,M.dragRow=null,u()):(o&&(v.row=r,crossListDragRowObj={$oldList:S,$newList:null}),i={row:r},M.dragRow=r,M.isCrossDragRow=!1,l.draggable=!0,de(r),ge(l),R("row-dragstart",i,e))},we=()=>{ve()},c=(e,t,r,o)=>{var l=y.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"))}},A=()=>{var e=y.value;u(),ce(),(0,_anime.clearRowAnimate)(e,[".vxe-list--row"]),M.dragRow=null},fe=(l,a,i,s)=>{let n=E.fullData;var e=F.value;let{animation:g,dragEndMethod:t}=e;e=t||(e?e.dragEndMethod:null);let v="bottom"===s?1:0,h=y.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=q(n,u);var x,p=U(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=$(n,a),n.splice(r,1);var e=$(n,i);return o=e+v,n.splice(o,0,a),C(),M.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=M.rowList,l=E.fullData,a=q(l,u),i=l[0],i=$(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=q(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)}O()}).then(()=>({status:!0}))}).catch(()=>w).then(e=>(A(),K(),e))}A(),K()}return Promise.resolve(w)},xe=e=>{e.dataTransfer&&e.dataTransfer.setDragImage((0,_dom.getTpImg)(),0,0)},pe=e=>{var t=M.dragRow,{prevDragRow:r,prevDragPos:o}=E,l=F.value.isCrossListDrag;if(l&&crossListDragRowObj){l=crossListDragRowObj.$newList;if(l&&l.xID!==S.xID)return void l.handleCrossListRowDragInsertEvent(e)}fe(e,t,r,o)},Re=e=>{var t=M.dragRow,r=E.fullData,o=F.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(E.prevDragRow=r,E.prevDragPos=i,o&&crossListDragRowObj){var{$oldList:o,$newList:s}=crossListDragRowObj;if(o){var n=o.reactData;if(o.xID!==S.xID)return s&&s.xID!==S.xID&&s.hideCrossListRowDropClearStatus(),o.hideCrossListRowDropClearStatus(),n.isCrossDragRow=!0,M.dragTipText=n.dragTipText,crossListDragRowObj.$newList=S,void c(e,l,!0,i);s&&s.hideCrossListRowDropClearStatus(),M.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}=F.value;let l=!1;B.value&&(l="row"===r);r={row:t,$list:S};!l||o&&o(r)||he(e,r)},me=(e,t)=>{var{showRadio:r,showCheckbox:o}=I,l=E.currentRow,a=k.value,i=D.value,s=T.value.isCurrent;let n=!1,u=!1,c=!1;s?(n=!0,Te(e,t)):l&&(E.currentRow=null,M.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)},U=e=>getRowKeyByField(e,H.value),l=(e,t)=>""+e==""+t,ye=(e,t)=>!(!e||!t)&&(e===t||l(_(e),_(t))),be=(e,t)=>e&&l(U(e),t);let d=(e,t)=>{let r=H.value;return _xeUtils.default.find(e,e=>l(getRowIdByField(e,r),t))},$=(e,t)=>t?_xeUtils.default.findIndexOf(e,e=>ye(e,t)):-1,q=(e,t)=>{let r=H.value;return _xeUtils.default.findIndexOf(e,e=>l(getRowIdByField(e,r),t))},ke=e=>{var t=M.selectRadioRow;return U(t)===e};let De=e=>{var t=M.updateCheckboxFlag,r=E.selectCheckboxMaps;return!(!t||!r[e])};t=()=>{var e=M.updateCheckboxFlag,t=E.selectCheckboxMaps;let r=[];return e&&_xeUtils.default.each(t,e=>{e&&r.push(e)}),r};let Ie=()=>{var e=M.updateCheckboxFlag,t=E.selectCheckboxMaps;let r=H.value,o=[];return e&&_xeUtils.default.each(t,e=>{e&&(e=getRowKeyByField(e,r),o.push(e))}),o},Le=()=>{E.selectCheckboxMaps={},M.updateCheckboxFlag++,M.isAllChecked=!1,M.isAllIndeterminate=!1;return s([]),(0,_vue.nextTick)()},Me=e=>{var{fullData:t,selectCheckboxMaps:r}=E,o=H.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}=E,r=H.value,o=D.value.checkMethod;let l=!1,a=!1;if(o){for(var i of t)if(o({row:i,$list:S}))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 M.isAllChecked=l&&!a,M.isAllIndeterminate=l&&a,M.updateCheckboxFlag++,(0,_vue.nextTick)()},Ee=e=>{var t=M.isAllChecked,t=!t;t?Me(!0):Le(),R("checkbox-all",{checked:t},e)},Se=(t,r)=>{t.preventDefault(),t.stopPropagation();var o=E.selectCheckboxMaps,l=D.value.checkMethod,a=_(r),l=!!l&&!l({$list:S,row:r});if(!l){let e=!1;o[a]?delete o[a]:(e=!0,o[a]=r),M.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=T.value.currentMethod;let o=!1;(o=r?!r({row:t}):o)||(E.currentRow=t,M.currRowFlag++,R("current-change",{row:t,checked:!0},e))},Fe=(t,r)=>{t.preventDefault(),t.stopPropagation();var o=M.selectRadioRow,{strict:l,checkMethod:a}=k.value,i=U(r),a=!!a&&!a({$list:S,row:r});if(!a){a=i;let e=!0;l&&o&&i===U(o)?(e=!1,M.selectRadioRow=null):M.selectRadioRow=r,n(a),R("radio-change",{row:r,value:a,checked:e},t)}},He=(e,t)=>{let{fullData:o,rowMaps:l}=E,a=H.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}=E,s=H.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}),M.removeRowFlag++,M.insertRowFlag++,ne(),C(!0),se(),g(),M.scrollYLoad&&m(),(0,_vue.nextTick)().then(()=>({row:u.length?u[u.length-1]:null,rows:u}))},Oe=(o,l)=>{var e=I.menuConfig,t=x.value,r=T.value.isCurrent;(e?(0,_utils.isEnableConf)(t):t.enabled)&&({options:e,visibleMethod:t}=t,t&&!t({$list:S,options:e,row:l})||(r?Te(o,l):E.currentRow&&(E.currentRow=null,M.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:S};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=E.fullData;return e},recalculate:O,scrollTo:te,refreshScroll:re,clearScroll:ee,getRowKey:U,eqRowKey:l,eqRow:ye,eqRowByKey:be,findRow:(e,t)=>t?_xeUtils.default.find(e,e=>ye(e,t)):null,findRowByKey:d,findRowIndexOf:$,findRowIndexOfByKey:q,isCheckedByRadioRowKey:ke,isCheckedByRadioRow:e=>ke(U(e)),isCheckedByCheckboxRowKey:De,isCheckedByCheckboxRow:e=>De(U(e)),setCurrentRow:e=>(E.currentRow=e,M.currRowFlag++,(0,_vue.nextTick)()),setCurrentRowByKey:e=>{var t=E.fullData;return E.currentRow=d(t,e),M.currRowFlag++,(0,_vue.nextTick)()},getCurrentRow:()=>{var e=E.currentRow;return e},getCurrentRowKey:()=>{var e=E.currentRow;return e?U(e):null},clearCurrentRow:()=>(E.currentRow=null,M.currRowFlag++,(0,_vue.nextTick)()),setRadioRow:e=>{M.selectRadioRow=e;e=U(e);return n(e),(0,_vue.nextTick)()},setRadioRowByKey:e=>{var t=E.fullData,t=(M.selectRadioRow=d(t,e),e);return n(t),(0,_vue.nextTick)()},getRadioRow:()=>{var e=M.selectRadioRow;return e},getRadioRowKey:()=>{var e=M.selectRadioRow;return e?U(e):null},clearRadioRow:()=>(M.selectRadioRow=null,n(null),(0,_vue.nextTick)()),setCheckboxRow:(e,t)=>{let r=E.selectCheckboxMaps,o=H.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}=E,l=H.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=E.insertRowMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},isInsertByRow(e){e=_(e);return!!M.insertRowFlag&&!!E.insertRowMaps[e]},remove(e){let{fullData:r,insertRowMaps:t,removeRowMaps:o}=E;if(!H.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;S.isInsertByRow(e)||(t=_(e),o[t]=e)}),r===e?(e=l=r.slice(0),E.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]}),M.removeRowFlag++,M.insertRowFlag++,ne(),C(!0),se(),g(),M.scrollYLoad&&m(),(0,_vue.nextTick)().then(()=>O()).then(()=>({row:l.length?l[l.length-1]:null,rows:l}))):Promise.resolve({row:null,rows:[]})},getRemoveRecords(){var e=E.removeRowMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},isRemoveByRow(e){e=_(e);return!!M.removeRowFlag&&!!E.removeRowMaps[e]},getRecordset(){return{insertRecords:S.getInsertRecords(),removeRecords:S.getRemoveRecords()}}};Object.assign(S,e,{handleCrossListRowDragCancelEvent(){A(),K()},handleCrossListRowDragFinishEvent(t){var l=M.rowList,a=E.rowMaps;let{animation:i,isCrossListDrag:e}=F.value,s=y.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];S.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=M.rowList,o=F.value.isCrossListDrag;o&&crossListDragRowObj&&!r.length&&({$oldList:o,$newList:r}=crossListDragRowObj,o)&&(t=o).xID!==S.xID&&(r&&r.xID!==S.xID&&r.hideCrossListRowDropClearStatus(),e.preventDefault(),o.hideCrossListRowDropClearStatus(),crossListDragRowObj.$newList=S,E.prevDragRow=null,M.dragTipText=t.dragTipText,c(e,e.currentTarget,!0,""))},handleCrossListRowDragInsertEvent(n){let{prevDragRow:u,prevDragPos:c}=E;let{animation:d,isCrossListDrag:e,dragEndMethod:t}=F.value;if(e&&crossListDragRowObj&&v){let l=v.row,i=crossListDragRowObj.$oldList,s=y.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!==S.xID&&i.handleCrossListRowDragCancelEvent(n),ue(),o;let t=Promise.resolve();e=[a];i.handleCrossListRowDragFinishEvent(n),t=u?"bottom"===c?S.insertNextAt(e,u):S.insertAt(e,u):S.insert(e),S.dispatchEvent("row-insert-dragend",{oldRow:l,newRow:u,dragRow:a,dragPos:c,offsetIndex:r},n),A(),t.then(()=>{var e=M.rowList,r=E.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=(r,e,o)=>{var t=I.showRadio,{showIcon:l,checkMethod:a,visibleMethod:i}=k.value,i=!i||i({$list:S,row:r});if(t&&l&&i){let t=!!a&&!a({$list:S,row:r});return(0,_vue.h)("div",{key:"ct2",class:["vxe-list--radio-option",{"is--checked":o,"is--disabled":t}],onClick(e){t||Fe(e,r)}},[(0,_vue.h)("span",{class:["vxe-radio--icon",o?(0,_ui.getIcon)().RADIO_CHECKED:(0,_ui.getIcon)().RADIO_UNCHECKED]})])}return(0,_ui.renderEmptyElement)(S)},Ae=(r,e,o)=>{var t=I.showCheckbox,{showIcon:l,checkMethod:a,visibleMethod:i}=D.value,i=!i||i({$list:S,row:r});if(t&&l&&i){let t=!!a&&!a({$list:S,row:r});return(0,_vue.h)("div",{key:"ct3",class:["vxe-list--checkbox-option",{"is--checked":o,"is--disabled":t}],onClick(e){t||Se(e,r)}},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",o?(0,_ui.getIcon)().CHECKBOX_CHECKED:(0,_ui.getIcon)().CHECKBOX_UNCHECKED]})])}return(0,_ui.renderEmptyElement)(S)};let Ue=(0,_vue.ref)(0),a=((0,_vue.watch)(()=>I.data?I.data.length:-1,()=>{Ue.value++}),(0,_vue.watch)(()=>I.data,()=>{Ue.value++}),(0,_vue.watch)(Ue,()=>{r(I.data||[])}),(0,_vue.ref)(0)),$e=((0,_vue.watch)(()=>I.height,()=>{a.value++}),(0,_vue.watch)(()=>I.maxHeight,()=>{a.value++}),(0,_vue.watch)(()=>I.syncResize,()=>{a.value++}),(0,_vue.watch)(f,()=>{a.value++}),(0,_vue.watch)(a,()=>{(0,_vue.nextTick)(()=>{O()})}),(0,_vue.watch)(()=>I.checkRowKey,()=>{ae()}),(0,_vue.ref)(0));return(0,_vue.watch)(()=>I.checkRowKeys?I.checkRowKeys.length:-1,()=>{$e.value++}),(0,_vue.watch)(()=>I.checkRowKeys,()=>{$e.value++}),(0,_vue.watch)($e,()=>{ie()}),(0,_vue.onActivated)(()=>{O().then(()=>re())}),(0,_vue.nextTick)(()=>{r(I.data||[])}),(0,_vue.onMounted)(()=>{var{showSeq:e,showRadio:t,showCheckbox:r}=I,o=T.value.useKey,l=B.value,a=H.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"]),I.autoResize&&(e=y.value,(t=_ui.globalResize.create(()=>O())).observe(e),e&&t.observe(e.parentElement),E.resizeObserver=t),O(),_ui.globalEvents.on(S,"resize",O)}),(0,_vue.onBeforeUnmount)(()=>{var e=E.resizeObserver;e&&e.disconnect(),_ui.globalEvents.off(S,"resize"),_xeUtils.default.assign(M,createReactData()),_xeUtils.default.assign(E,createInternalData())}),S.renderVN=()=>{var{showCheckbox:e,className:t,loading:r}=I,{bodyHeight:o,topSpaceHeight:l,rowList:a,isAllChecked:i,isAllIndeterminate:s}=M,n=L.default,u=L.header,c=L.footer,d=j.value,g=X.value,v=G.value,h=k.value,w=D.value,{showHeader:f,headerTitle:x}=w,{trigger:p,isCrossListDrag:R}=F.value,{isHover:_,padding:m}=T.value,C=B.value,e=e&&!1!==f,f={};return R&&!a.length&&(f.onDragover=S.handleCrossListRowDragoverEmptyEvent),(0,_vue.h)("div",Object.assign({ref:y,class:["vxe-list",t?_xeUtils.default.isFunction(t)?t({$list:S}):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)(S),u?(0,_vue.h)("div",{class:"vxe-list--header-content"},u({items:a,$list:S})):(0,_ui.renderEmptyElement)(S)]):(0,_ui.renderEmptyElement)(S),(0,_vue.h)("div",{ref:b,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:S}):a.map((e,t)=>((t,e)=>{var{showRadio:r,showCheckbox:o}=I,{selectRadioRow:l,currRowFlag:a,updateCheckboxFlag:i}=M,{selectCheckboxMaps:s,currentRow:n}=E,u=L.content,c=L.extra,{trigger:d,icon:g,disabledMethod:v,visibleMethod:h}=F.value,{useKey:w,contentField:f,className:x,isCurrent:p}=T.value,R=B.value,_=H.value,m=x&&_xeUtils.default.isFunction(x),w=_||w||R||p||r||o,p=w&&_?getRowIdByField(t,_):"",C=(0,_utils.enModelValue)(p);let y={row:t,$list:S},b=!1,k=(r&&(b=l&&(t===l||be(l,p))),!1);o&&(k=!(!i||!s[C]));l=[];r&&l.push(Ke(t,C,b)),o&&l.push(Ae(t,C,k));let D=!1;R&&_&&(!h||h(y))&&(i={},"row"!==d&&(D=!(!v||!v(y)),i.onMousedown=e=>{D||he(e,y)},i.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"},i),[(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(y):f?(0,_utils.getText)(t[f]):"")),c&&l.push((0,_vue.h)("div",{key:"ct7",class:"vxe-list--row-extra"},c(y)));s={onMousedown(e){_e(e,t)},onMouseup:we,onClick(e){me(e,t)},onDblclick(e){Ce(e,t)},onContextmenu(e){Oe(e,t)}};return R&&(s.onDragstart=xe,s.onDragend=pe,s.onDragover=Re),(0,_vue.h)("div",Object.assign({key:w&&_?C:e,class:["vxe-list--row",m?x(y):x||"",{"is--drag-disabled":D,"is--current":a&&n&&be(n,p),"is-radio--checked":b,"is-checkbox--checked":k}],rowid:w&&_?C:void 0},s),l)})(e,t)))]),c?(0,_vue.h)("div",{ref:P,class:"vxe-list--footer-wrapper"},c({items:a,$list:S})):(0,_ui.renderEmptyElement)(S),(()=>{var{dragRow:e,dragTipText:t}=M,r=F.value;return B.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)(S)]):(0,_ui.renderEmptyElement)(S)})(),(0,_vue.h)(_loading.default,{class:"vxe-list--loading",modelValue:r})])},S},render(){return this.renderVN()}});
|
package/lib/menu/src/menu.js
CHANGED
|
@@ -22,6 +22,23 @@ const {
|
|
|
22
22
|
getConfig,
|
|
23
23
|
getIcon
|
|
24
24
|
} = _ui.VxeUI;
|
|
25
|
+
function createInternalData() {
|
|
26
|
+
return {
|
|
27
|
+
menuEffectMaps: {}
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function createReactData() {
|
|
31
|
+
return {
|
|
32
|
+
initialized: false,
|
|
33
|
+
isEnterCollapse: false,
|
|
34
|
+
collapseStyle: {},
|
|
35
|
+
collapseZindex: 0,
|
|
36
|
+
activeName: '',
|
|
37
|
+
menuList: [],
|
|
38
|
+
itemHeight: 1
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
let nemuUniqueKey = 100000000;
|
|
25
42
|
var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
26
43
|
name: 'VxeMenu',
|
|
27
44
|
props: {
|
|
@@ -60,15 +77,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
60
77
|
const {
|
|
61
78
|
computeSize
|
|
62
79
|
} = (0, _ui.useSize)(props);
|
|
63
|
-
const reactData = (0, _vue.reactive)(
|
|
64
|
-
|
|
65
|
-
isEnterCollapse: false,
|
|
66
|
-
collapseStyle: {},
|
|
67
|
-
collapseZindex: 0,
|
|
68
|
-
activeName: props.modelValue,
|
|
69
|
-
menuList: [],
|
|
70
|
-
itemHeight: 1
|
|
71
|
-
});
|
|
80
|
+
const reactData = (0, _vue.reactive)(createReactData());
|
|
81
|
+
const internalData = createInternalData();
|
|
72
82
|
const refMaps = {
|
|
73
83
|
refElem
|
|
74
84
|
};
|
|
@@ -150,6 +160,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
150
160
|
const objItem = Object.assign(Object.assign({}, item), {
|
|
151
161
|
parentKey: parent ? parent.name || path.slice(0, path.length - 1).join(',') : '',
|
|
152
162
|
level: path.length,
|
|
163
|
+
itemId: ++nemuUniqueKey,
|
|
153
164
|
itemKey: item.name || path.join(','),
|
|
154
165
|
isExactActive: false,
|
|
155
166
|
isActive: false,
|
|
@@ -219,12 +230,20 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
219
230
|
accordion
|
|
220
231
|
} = props;
|
|
221
232
|
const {
|
|
233
|
+
menuEffectMaps
|
|
234
|
+
} = internalData;
|
|
235
|
+
const {
|
|
236
|
+
itemId,
|
|
222
237
|
hasChild,
|
|
223
238
|
isExpand
|
|
224
239
|
} = item;
|
|
240
|
+
const expanded = !isExpand;
|
|
225
241
|
if (hasChild) {
|
|
226
242
|
evnt.stopPropagation();
|
|
227
243
|
evnt.preventDefault();
|
|
244
|
+
if (menuEffectMaps[itemId]) {
|
|
245
|
+
clearTimeout(menuEffectMaps[itemId]);
|
|
246
|
+
}
|
|
228
247
|
if (accordion) {
|
|
229
248
|
itemList.forEach(obj => {
|
|
230
249
|
if (obj !== item) {
|
|
@@ -232,7 +251,32 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
232
251
|
}
|
|
233
252
|
});
|
|
234
253
|
}
|
|
235
|
-
item.isExpand =
|
|
254
|
+
item.isExpand = expanded;
|
|
255
|
+
const el = refElem.value;
|
|
256
|
+
if (el) {
|
|
257
|
+
const nemuEl = el.querySelector(`.vxe-menu--item-wrapper[data-menu-id="${itemId}"]`);
|
|
258
|
+
const groupEl = nemuEl ? nemuEl.querySelector('.vxe-menu--item-group') : null;
|
|
259
|
+
if (groupEl) {
|
|
260
|
+
if (expanded) {
|
|
261
|
+
groupEl.style.height = '0';
|
|
262
|
+
groupEl.setAttribute('data-effect', 'y');
|
|
263
|
+
requestAnimationFrame(() => {
|
|
264
|
+
groupEl.style.height = `${groupEl.scrollHeight}px`;
|
|
265
|
+
});
|
|
266
|
+
} else {
|
|
267
|
+
groupEl.style.height = `${groupEl.scrollHeight}px`;
|
|
268
|
+
groupEl.setAttribute('data-effect', 'y');
|
|
269
|
+
requestAnimationFrame(() => {
|
|
270
|
+
groupEl.style.height = '0';
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
menuEffectMaps[itemId] = setTimeout(() => {
|
|
274
|
+
delete menuEffectMaps[itemId];
|
|
275
|
+
groupEl.removeAttribute('data-effect');
|
|
276
|
+
groupEl.style.height = '';
|
|
277
|
+
}, 350);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
236
280
|
}
|
|
237
281
|
};
|
|
238
282
|
const emitModel = value => {
|
|
@@ -395,6 +439,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
395
439
|
};
|
|
396
440
|
const renderDefaultChildren = (item, itemList) => {
|
|
397
441
|
const {
|
|
442
|
+
itemId,
|
|
398
443
|
itemKey,
|
|
399
444
|
level,
|
|
400
445
|
hasChild,
|
|
@@ -419,7 +464,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
419
464
|
'is--exact-active': isExactActive,
|
|
420
465
|
'is--active': isActive,
|
|
421
466
|
'is--expand': (!isCollapsed || isEnterCollapse) && isExpand
|
|
422
|
-
}]
|
|
467
|
+
}],
|
|
468
|
+
'data-menu-id': itemId
|
|
423
469
|
}, [routerLink ? (0, _vue.h)((0, _vue.resolveComponent)('router-link'), {
|
|
424
470
|
class: 'vxe-menu--item-link',
|
|
425
471
|
to: routerLink,
|
|
@@ -445,6 +491,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
445
491
|
};
|
|
446
492
|
const renderCollapseChildren = (item, itemList) => {
|
|
447
493
|
const {
|
|
494
|
+
itemId,
|
|
448
495
|
itemKey,
|
|
449
496
|
level,
|
|
450
497
|
hasChild,
|
|
@@ -463,7 +510,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
463
510
|
class: ['vxe-menu--item-wrapper', `vxe-menu--item-level${level}`, {
|
|
464
511
|
'is--exact-active': isExactActive,
|
|
465
512
|
'is--active': isActive
|
|
466
|
-
}]
|
|
513
|
+
}],
|
|
514
|
+
'data-menu-id': itemId
|
|
467
515
|
}, [routerLink ? (0, _vue.h)((0, _vue.resolveComponent)('router-link'), {
|
|
468
516
|
class: 'vxe-menu--item-link',
|
|
469
517
|
to: routerLink,
|
|
@@ -569,7 +617,6 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
569
617
|
updateCollapseStyle();
|
|
570
618
|
});
|
|
571
619
|
(0, _vue.onBeforeUnmount)(() => {
|
|
572
|
-
_ui.globalEvents.off($xeMenu, 'resize');
|
|
573
620
|
const collapseEl = refCollapseElem.value;
|
|
574
621
|
if (collapseEl) {
|
|
575
622
|
const parentNode = collapseEl.parentNode;
|
|
@@ -577,7 +624,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
577
624
|
parentNode.removeChild(collapseEl);
|
|
578
625
|
}
|
|
579
626
|
}
|
|
627
|
+
_ui.globalEvents.off($xeMenu, 'resize');
|
|
628
|
+
_xeUtils.default.assign(reactData, createReactData());
|
|
629
|
+
_xeUtils.default.assign(internalData, createInternalData());
|
|
580
630
|
});
|
|
631
|
+
reactData.initialized = !!props.collapsed;
|
|
632
|
+
reactData.activeName = props.modelValue;
|
|
581
633
|
updateMenuConfig();
|
|
582
634
|
updateActiveMenu(true);
|
|
583
635
|
$xeMenu.renderVN = renderVN;
|
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;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeMenu",props:{modelValue:[String,Number],expandAll:Boolean,accordion:{type:Boolean,default:()=>getConfig().menu.accordion},collapsed:{type:Boolean,default:null},collapseFixed:Boolean,loading:Boolean,options:{type:Array,default:()=>[]},size:{type:String,default:()=>getConfig().menu.size||getConfig().size},menuConfig:Object},emits:["update:modelValue","click","option-menu","menu-click"],setup(r,e){let{emit:n,slots:c}=e;var
|
|
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{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,accordion:{type:Boolean,default:()=>getConfig().menu.accordion},collapsed:{type:Boolean,default:null},collapseFixed:Boolean,loading:Boolean,options:{type:Array,default:()=>[]},size:{type:String,default:()=>getConfig().menu.size||getConfig().size},menuConfig:Object},emits:["update:modelValue","click","option-menu","menu-click"],setup(r,e){let{emit:n,slots:c}=e;var t=_xeUtils.default.uniqueId();let i=(0,_vue.inject)("$xeLayoutAside",null),d=(0,_vue.ref)(),m=(0,_vue.ref)(),v=(0,_ui.useSize)(r).computeSize,p=(0,_vue.reactive)(createReactData()),_=createInternalData(),l={refElem:d},a=(0,_vue.computed)(()=>Object.assign({},getConfig().menu.menuConfig,r.menuConfig)),x=(0,_vue.computed)(()=>{var e=r.collapsed;return _xeUtils.default.isBoolean(e)?e:!!i&&!!i.props.collapsed}),o=(0,_vue.computed)(()=>{let e="";return e=i?i.props.collapseWidth||"":e}),u=(0,_vue.computed)(()=>{let e="";return e=i?i.props.width||"":e}),s={computeSize:v},h={xID:t,props:r,context:e,reactData:p,getRefMaps:()=>l,getComputeMaps:()=>s},g=e=>""+(e.title||e.name),f=o=>{let u=p.activeName;_xeUtils.default.eachTree(p.menuList,(e,t,i,n,l,a)=>{e.itemKey===u?(a.forEach(e=>{e.isActive=!0,o&&(e.isExpand=!0)}),e.isExactActive=!0):(e.isExactActive=!1,e.isActive=!1)},{children:"childList"})},C=()=>{let{options:e,expandAll:a}=r;p.menuList=_xeUtils.default.mapTree(e,(e,t,i,n,l)=>Object.assign(Object.assign({},e),{parentKey:l?l.name||n.slice(0,n.length-1).join(","):"",level:n.length,itemId:++nemuUniqueKey,itemKey:e.name||n.join(","),isExactActive:!1,isActive:!1,isExpand:_xeUtils.default.isBoolean(e.expanded)?e.expanded:!!a,hasChild:e.children&&0<e.children.length}),{children:"children",mapChildren:"childList"})},E=()=>{var e=r.collapseFixed;e&&(0,_vue.nextTick)(()=>{var e,t=p.isEnterCollapse,i=x.value,n=u.value,l=o.value,a=d.value;a&&(e=a.getBoundingClientRect(),a=a.parentNode,p.collapseStyle=i?{top:(0,_dom.toCssUnit)(e.top),left:(0,_dom.toCssUnit)(e.left),height:(0,_dom.toCssUnit)(a.clientHeight),width:t?n?(0,_dom.toCssUnit)(n):"":l?(0,_dom.toCssUnit)(l):"",zIndex:p.collapseZindex}:{})})},y=()=>{var e=r.collapseFixed;e&&(e=p.initialized,x.value&&!e&&(p.initialized=!0,(0,_vue.nextTick)(()=>{var e=m.value;e&&document.body.appendChild(e)})),p.isEnterCollapse=!1,p.collapseZindex<(0,_utils.getLastZIndex)()&&(p.collapseZindex=(0,_utils.nextZIndex)()),E())},k=(t,i,e)=>{var n=r.accordion;let l=_.menuEffectMaps,{itemId:a,hasChild:o,isExpand:u}=i;var s=!u;if(o){t.stopPropagation(),t.preventDefault(),l[a]&&clearTimeout(l[a]),n&&e.forEach(e=>{e!==i&&(e.isExpand=!1)}),i.isExpand=s;t=d.value;if(t){n=t.querySelector(`.vxe-menu--item-wrapper[data-menu-id="${a}"]`);let e=n?n.querySelector(".vxe-menu--item-group"):null;e&&(s?(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[a]=setTimeout(()=>{delete l[a],e.removeAttribute("data-effect"),e.style.height=""},350))}}},M=e=>{p.activeName=e,n("update:modelValue",e)},U=(n,l)=>{var e=r.menuConfig,t=a.value;(e?(0,_utils.isEnableConf)(t):t.enabled)&&({options:e,visibleMethod:t}=t,t&&!t({$menu:h,options:e,currentMenu:l})||_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,$event:n,$menu:h};i&&i(t,n),V("menu-click",t,e.$event)}}})),V("option-menu",{currentMenu:l},n)},I=(e,t,i)=>{var{itemKey:n,routerLink:l,hasChild:a}=t,l=(!l&&a?k(e,t,i):(M(n),q()),{currentMenu:t,menu:t});V("click",l,e)},b=()=>{var e=p.collapseStyle,t=u.value;p.collapseStyle=Object.assign({},e,{width:t?(0,_dom.toCssUnit)(t):""}),p.isEnterCollapse=!0},A=()=>{var e=p.isEnterCollapse;e||b()},q=()=>{var e=p.collapseStyle,t=d.value;p.collapseStyle=Object.assign({},e,{width:t?(0,_dom.toCssUnit)(t.offsetWidth):""}),p.isEnterCollapse=!1},L=(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=c[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],V=(e,t,i)=>{n(e,(0,_ui.createEvent)(i,{$menu:h},t))};t={dispatchEvent:V};Object.assign(h,t,{});let N=(t,i)=>{var{icon:e,isExpand:n,hasChild:l}=t,a=t.slots||{},o=a.default||c.option,u=a.title||c.optionTitle||c["option-title"],a=a.icon||c.optionIcon||c["option-icon"],s=g(t),r=x.value,r={currentMenu:t,collapsed:r,option:t};return[o?(0,_ui.renderEmptyElement)(h):(0,_vue.h)("div",{class:"vxe-menu--item-link-icon"},a?L(a,r):e?[(0,_vue.h)("i",{class:e})]:[]),o?(0,_vue.h)("div",{class:"vxe-menu--item-custom-title"},L(o,r)):(0,_vue.h)("div",{class:"vxe-menu--item-link-title",title:s},u?L(u,r):s),l?(0,_vue.h)("div",{class:"vxe-menu--item-link-collapse",onClick(e){k(e,t,i)}},[(0,_vue.h)("i",{class:n?getIcon().MENU_ITEM_EXPAND_OPEN:getIcon().MENU_ITEM_EXPAND_CLOSE})]):(0,_ui.renderEmptyElement)(h)]},S=(t,i)=>{let{itemId:e,itemKey:n,level:l,hasChild:a,isActive:o,isExactActive:u,isExpand:s,routerLink:r,childList:c}=t;var d=p.isEnterCollapse,m=x.value;return t.permissionCode&&!_ui.permission.checkVisible(t.permissionCode)?(0,_ui.renderEmptyElement)(h):(0,_vue.h)("div",{key:n,class:["vxe-menu--item-wrapper","vxe-menu--item-level"+l,{"is--exact-active":u,"is--active":o,"is--expand":(!m||d)&&s}],"data-menu-id":e},[r?(0,_vue.h)((0,_vue.resolveComponent)("router-link"),{class:"vxe-menu--item-link",to:r,onContextmenu(e){U(e,t)},onClick(e){I(e,t,i)}},{default:()=>N(t,i)}):(0,_vue.h)("div",{class:"vxe-menu--item-link",onContextmenu(e){U(e,t)},onClick(e){I(e,t,i)}},N(t,i)),a?(0,_vue.h)("div",{class:"vxe-menu--item-group"},c.map(e=>S(e,c))):(0,_ui.renderEmptyElement)(h)])};let z=(0,_vue.ref)(0);return(0,_vue.watch)(()=>r.options?r.options.length:-1,()=>{z.value++}),(0,_vue.watch)(()=>r.options,()=>{z.value++}),(0,_vue.watch)(z,()=>{C(),f(!0)}),(0,_vue.watch)(()=>r.modelValue,e=>{p.activeName=e}),(0,_vue.watch)(()=>p.activeName,()=>{f(!0)}),(0,_vue.watch)(x,()=>{y()}),(0,_vue.onMounted)(()=>{var e=r.menuConfig,t=_ui.VxeUI.getComponent("VxeContextMenu");e&&!t&&errLog("vxe.error.reqComp",["vxe-context-menu"]),_ui.globalEvents.on(h,"resize",E),E()}),(0,_vue.onBeforeUnmount)(()=>{var e,t=m.value;t&&(e=t.parentNode)&&e.removeChild(t),_ui.globalEvents.off(h,"resize"),_xeUtils.default.assign(p,createReactData()),_xeUtils.default.assign(_,createInternalData())}),p.initialized=!!r.collapsed,p.activeName=r.modelValue,C(),f(!0),h.renderVN=()=>{var{loading:e,collapseFixed:t}=r;let{initialized:i,menuList:n,collapseStyle:l,isEnterCollapse:a}=p;var o=v.value;let u=x.value,s={};return t&&(s={onMouseenter:b,onMouseover:A,onMouseleave:q}),(0,_vue.h)("div",{ref:d,class:["vxe-menu",{["size--"+o]:o,"is--collapsed":u,"is--loading":e}]},[(0,_vue.h)("div",{class:"vxe-menu--item-list"},n.map(e=>(u?(t,i)=>{let{itemId:e,itemKey:n,level:l,hasChild:a,isActive:o,isExactActive:u,routerLink:s,childList:r}=t;return t.permissionCode&&!_ui.permission.checkVisible(t.permissionCode)?(0,_ui.renderEmptyElement)(h):(0,_vue.h)("div",{key:n,class:["vxe-menu--item-wrapper","vxe-menu--item-level"+l,{"is--exact-active":u,"is--active":o}],"data-menu-id":e},[s?(0,_vue.h)((0,_vue.resolveComponent)("router-link"),{class:"vxe-menu--item-link",to:s,onContextmenu(e){U(e,t)},onClick(e){I(e,t,i)}},{default:()=>N(t,i)}):(0,_vue.h)("div",{class:"vxe-menu--item-link",onContextmenu(e){U(e,t)},onClick(e){I(e,t,i)}},N(t,i)),a?(0,_vue.h)("div",{class:"vxe-menu--item-group"},r.map(e=>S(e,r))):(0,_ui.renderEmptyElement)(h)])}:S)(e,n))),i?(0,_vue.h)("div",Object.assign({ref:m,class:["vxe-menu--collapse-wrapper",{["size--"+o]:o,"is--collapsed":u,"is--enter":a,"is--loading":e}],style:l},s),[u?(0,_vue.h)("div",{class:"vxe-menu--item-list"},n.map(e=>S(e,n))):(0,_ui.renderEmptyElement)(h)]):(0,_ui.renderEmptyElement)(h),(0,_vue.h)(_loading.default,{class:"vxe-list-view--loading",modelValue:e})])},h},render(){return this.renderVN()}});
|
package/lib/menu/style/style.css
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
|
-
.vxe-menu
|
|
1
|
+
.vxe-menu,
|
|
2
|
+
.vxe-menu--collapse-wrapper {
|
|
2
3
|
--vxe-ui-menu-current-font-size: var(--vxe-ui-font-size-default);
|
|
3
4
|
--vxe-ui-menu-current-item-height: var(--vxe-ui-menu-item-height-default);
|
|
4
5
|
}
|
|
5
|
-
.vxe-menu.size--medium
|
|
6
|
+
.vxe-menu.size--medium,
|
|
7
|
+
.vxe-menu--collapse-wrapper.size--medium {
|
|
6
8
|
--vxe-ui-menu-current-font-size: var(--vxe-ui-font-size-medium);
|
|
7
9
|
--vxe-ui-menu-current-item-height: var(--vxe-ui-menu-item-height-medium);
|
|
8
10
|
}
|
|
9
|
-
.vxe-menu.size--small
|
|
11
|
+
.vxe-menu.size--small,
|
|
12
|
+
.vxe-menu--collapse-wrapper.size--small {
|
|
10
13
|
--vxe-ui-menu-current-font-size: var(--vxe-ui-font-size-small);
|
|
11
14
|
--vxe-ui-menu-current-item-height: var(--vxe-ui-menu-item-height-small);
|
|
12
15
|
}
|
|
13
|
-
.vxe-menu.size--mini
|
|
16
|
+
.vxe-menu.size--mini,
|
|
17
|
+
.vxe-menu--collapse-wrapper.size--mini {
|
|
14
18
|
--vxe-ui-menu-current-font-size: var(--vxe-ui-font-size-mini);
|
|
15
19
|
--vxe-ui-menu-current-item-height: var(--vxe-ui-menu-item-height-mini);
|
|
16
20
|
}
|
|
@@ -27,7 +31,8 @@
|
|
|
27
31
|
min-height: 4em;
|
|
28
32
|
}
|
|
29
33
|
|
|
30
|
-
.vxe-menu
|
|
34
|
+
.vxe-menu,
|
|
35
|
+
.vxe-menu--collapse-wrapper {
|
|
31
36
|
font-size: var(--vxe-ui-menu-current-font-size);
|
|
32
37
|
color: var(--vxe-ui-font-color);
|
|
33
38
|
font-family: var(--vxe-ui-font-family);
|
|
@@ -124,7 +129,11 @@
|
|
|
124
129
|
}
|
|
125
130
|
|
|
126
131
|
.vxe-menu--item-group {
|
|
127
|
-
|
|
132
|
+
height: 0;
|
|
133
|
+
overflow: hidden;
|
|
134
|
+
}
|
|
135
|
+
.vxe-menu--item-group[data-effect] {
|
|
136
|
+
transition: height 0.3s ease-in-out;
|
|
128
137
|
}
|
|
129
138
|
|
|
130
139
|
.vxe-menu--item-wrapper.is--active > .vxe-menu--item-link {
|
|
@@ -135,5 +144,5 @@
|
|
|
135
144
|
background-color: var(--vxe-ui-base-active-background-color);
|
|
136
145
|
}
|
|
137
146
|
.vxe-menu--item-wrapper.is--expand > .vxe-menu--item-group {
|
|
138
|
-
|
|
147
|
+
height: auto;
|
|
139
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vxe-menu{--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-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-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-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-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{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:auto;background-color:var(--vxe-ui-layout-background-color)}.vxe-menu--collapse-wrapper.is--collapsed{display:block;transition:all .25s ease-in-out}.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{box-shadow:var(--vxe-ui-menu-collapse-wrapper-box-shadow)}.vxe-menu--item-link{display:flex;flex-direction:row;align-items:center;height:var(--vxe-ui-menu-current-item-height);color:var(--vxe-ui-font-color);text-decoration:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.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}.vxe-menu--item-link-collapse i{display:inline-block;font-size:.8em;transition:transform .25s ease-in-out}.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{
|
|
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-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-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-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-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,.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:auto;background-color:var(--vxe-ui-layout-background-color)}.vxe-menu--collapse-wrapper.is--collapsed{display:block;transition:all .25s ease-in-out}.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{box-shadow:var(--vxe-ui-menu-collapse-wrapper-box-shadow)}.vxe-menu--item-link{display:flex;flex-direction:row;align-items:center;height:var(--vxe-ui-menu-current-item-height);color:var(--vxe-ui-font-color);text-decoration:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.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}.vxe-menu--item-link-collapse i{display:inline-block;font-size:.8em;transition:transform .25s ease-in-out}.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}
|