vxe-pc-ui 4.15.12 → 4.15.13
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 +5 -5
- 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 +3 -3
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/index.umd.js +5 -5
- package/lib/index.umd.min.js +1 -1
- package/lib/list/src/list.js +3 -3
- package/lib/list/src/list.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/ui/index.js +1 -1
- 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/package.json +1 -1
- package/packages/list/src/list.ts +3 -3
- package/types/components/list.d.ts +24 -24
- /package/es/icon/{iconfont.1782655724330.ttf → iconfont.1782658269305.ttf} +0 -0
- /package/es/icon/{iconfont.1782655724330.woff → iconfont.1782658269305.woff} +0 -0
- /package/es/icon/{iconfont.1782655724330.woff2 → iconfont.1782658269305.woff2} +0 -0
- /package/es/{iconfont.1782655724330.ttf → iconfont.1782658269305.ttf} +0 -0
- /package/es/{iconfont.1782655724330.woff → iconfont.1782658269305.woff} +0 -0
- /package/es/{iconfont.1782655724330.woff2 → iconfont.1782658269305.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1782655724330.ttf → iconfont.1782658269305.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1782655724330.woff → iconfont.1782658269305.woff} +0 -0
- /package/lib/icon/style/{iconfont.1782655724330.woff2 → iconfont.1782658269305.woff2} +0 -0
- /package/lib/{iconfont.1782655724330.ttf → iconfont.1782658269305.ttf} +0 -0
- /package/lib/{iconfont.1782655724330.woff → iconfont.1782658269305.woff} +0 -0
- /package/lib/{iconfont.1782655724330.woff2 → iconfont.1782658269305.woff2} +0 -0
package/lib/list/src/list.js
CHANGED
|
@@ -1599,7 +1599,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1599
1599
|
}, _xeUtils.default.eqNull(headerTitle) ? (0, _ui.getI18n)('vxe.list.allChecked') : (0, _utils.getText)(headerTitle))])]) : (0, _ui.renderEmptyElement)($xeList), headerSlot ? (0, _vue.h)('div', {
|
|
1600
1600
|
class: 'vxe-list--header-content'
|
|
1601
1601
|
}, headerSlot({
|
|
1602
|
-
|
|
1602
|
+
items: rowList,
|
|
1603
1603
|
$list: $xeList
|
|
1604
1604
|
})) : (0, _ui.renderEmptyElement)($xeList)]) : (0, _ui.renderEmptyElement)($xeList), (0, _vue.h)('div', {
|
|
1605
1605
|
ref: refVirtualWrapper,
|
|
@@ -1624,13 +1624,13 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1624
1624
|
marginTop: topSpaceHeight ? `${topSpaceHeight}px` : ''
|
|
1625
1625
|
}
|
|
1626
1626
|
}, defaultSlot ? defaultSlot({
|
|
1627
|
-
|
|
1627
|
+
items: rowList,
|
|
1628
1628
|
$list: $xeList
|
|
1629
1629
|
}) : rowList.map((row, i) => renderRow(row, i)))]), footerSlot ? (0, _vue.h)('div', {
|
|
1630
1630
|
ref: refFooterElem,
|
|
1631
1631
|
class: 'vxe-list--footer-wrapper'
|
|
1632
1632
|
}, footerSlot({
|
|
1633
|
-
|
|
1633
|
+
items: rowList,
|
|
1634
1634
|
$list: $xeList
|
|
1635
1635
|
})) : (0, _ui.renderEmptyElement)($xeList),
|
|
1636
1636
|
/**
|
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"),_loading=_interopRequireDefault(require("../../loading/src/loading"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let errLog=(0,_log.createComponentLog)("tree").errLog;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,dragRow:null,dragTipText:""}}function createInternalData(){return{resizeObserver:void 0,fullData:[],fullKeyMaps:{},lastScrollLeft:0,lastScrollTop:0,scrollYStore:{startIndex:0,endIndex:0,visibleSize:0,offsetSize:0,rowHeight:0},currentRow:null,selectCheckboxMaps:{}}}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],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,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"],setup(I,g){let{slots:M,emit:l}=g;var e=_xeUtils.default.uniqueId();let h=_xeUtils.default.browse(),Y=(0,_ui.useSize)(I).computeSize,T=(0,_vue.reactive)(createReactData()),D=createInternalData(),w=(0,_store.getCrossListDragRowInfo)(),k=(0,_vue.ref)(),N=(0,_vue.ref)(),$=(0,_vue.ref)(),b=(0,_vue.ref)(),j=(0,_vue.ref)(),m=(0,_vue.ref)(),C=(0,_vue.ref)(),f={refElem:k},S={xID:e,props:I,context:g,reactData:T,internalData:D,getRefMaps:()=>f},E=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().list.rowConfig,I.rowConfig)),H=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().list.dragConfig,I.dragConfig)),i=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().list.virtualYConfig||(0,_ui.getConfig)().list.scrollY,I.virtualYConfig||I.scrollY)),K=(0,_vue.computed)(()=>{var e=E.value.keyField;return e||""}),B=(0,_vue.computed)(()=>{var e=I.dragConfig,t=H.value;return e&&(0,_utils.isEnableConf)(t)}),x=(0,_vue.computed)(()=>{var e=E.value.height;return e}),F=(0,_vue.computed)(()=>Object.assign({showIcon:!0},(0,_ui.getConfig)().list.radioConfig,I.radioConfig)),L=(0,_vue.computed)(()=>Object.assign({showIcon:!0},(0,_ui.getConfig)().list.checkboxConfig,I.checkboxConfig)),P=(0,_vue.computed)(()=>{var e=x.value,t={};return e&&(t["--vxe-ui-list-row-height"]=(0,_dom.toCssUnit)(e)),t}),V=(0,_vue.computed)(()=>{var{height:e,maxHeight:t}=I,{customHeight:r,customMaxHeight:l,headHeight:o,footHeight:a}=T,i={};return e?i.height=(0,_dom.toCssUnit)(Math.max(20,r-o-a)):t&&(i.height="auto",i.maxHeight=(0,_dom.toCssUnit)(Math.max(20,l-o-a))),i}),p=(e,t,r)=>{l(e,(0,_ui.createEvent)(r,{$list:S},t))},s=e=>{l("update:checkRowKeys",e)},u=e=>{l("update:checkRowKey",e)},R=e=>getRowIdByField(e,K.value),_=e=>{var t=T.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},X=()=>{var e=N.value,t=$.value;T.headHeight=e?Math.floor(e.offsetHeight):0,T.footHeight=t?Math.floor(t.offsetHeight):0,T.customHeight=_("height"),T.customMaxHeight=_("maxHeight")},y=()=>{var e=T.scrollYLoad,{scrollYStore:t,fullData:r}=D;T.bodyHeight=e?r.length*t.rowHeight:0,T.topSpaceHeight=e?Math.max(t.startIndex*t.rowHeight,0):0},A=()=>{var e=T.scrollYLoad,{fullData:t,scrollYStore:r}=D;return T.rowList=e?t.slice(r.startIndex,r.endIndex):t.slice(0),(0,_vue.nextTick)()},G=()=>{A(),y()},W=()=>(0,_vue.nextTick)().then(()=>{var e=T.scrollYLoad,t=D.scrollYStore,r=j.value,l=i.value;let o=0,a;(a=r?(a=l.sItem?r.querySelector(l.sItem):a)||r.children[0]:a)&&(o=a.offsetHeight),o=Math.max(12,o),t.rowHeight=o,(e?(r=b.value,e=Math.max(8,Math.ceil(r.clientHeight/o)),r=l.oSize?_xeUtils.default.toNumber(l.oSize):h.edge?10:0,t.offsetSize=r,t.visibleSize=e,t.endIndex=Math.max(t.startIndex+e+r,t.endIndex),G):y)()}),r=()=>{var e=b.value;return e&&(e.scrollTop=0),(0,_vue.nextTick)()},J=(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),T.scrollYLoad?new Promise(e=>{setTimeout(()=>{(0,_vue.nextTick)(()=>{e()})},50)}):(0,_vue.nextTick)()},o=()=>{let{lastScrollLeft:e,lastScrollTop:t}=D;return r().then(()=>{if(e||t)return D.lastScrollLeft=0,D.lastScrollTop=0,J(e,t)})},U=()=>{var e=k.value;if(e){var t=e.parentElement;if(T.parentHeight=t?t.clientHeight:0,X(),e.clientWidth&&e.clientHeight)return W()}return(0,_vue.nextTick)()},Q=e=>{var t=D.scrollYStore,{startIndex:r,endIndex:l,visibleSize:o,offsetSize:a,rowHeight:i}=t,e=e.target.scrollTop,e=Math.floor(e/i),i=Math.max(0,e-1-a),a=e+o+a;!(e<=r||l-o-1<=e)||r===i&&l===a||(t.startIndex=i,t.endIndex=a,G())},Z=e=>{var t=e.target,r=t.scrollTop,t=t.scrollLeft,l=t!==D.lastScrollLeft,o=r!==D.lastScrollTop;D.lastScrollTop=r,D.lastScrollLeft=t,T.scrollYLoad&&Q(e),p("scroll",{scrollLeft:t,scrollTop:r,isX:l,isY:o},e)},ee=()=>{var e=I.checkRowKey,t=D.fullKeyMaps;e?(t=t[e],T.selectRadioRow=t||null):T.selectRadioRow=null},te=()=>{var e=I.checkRowKeys,t=D.fullKeyMaps,r=K.value,l={};if(e&&e.length)for(var o of e){o=t[o];o&&(l[getRowIdByField(o,r)]=o)}D.selectCheckboxMaps=l,d()},t=e=>{var t=D.scrollYStore,r=i.value,e=e||[];return Object.assign(t,{startIndex:0,endIndex:1,visibleSize:0}),D.fullData=e,T.scrollYLoad=!!r.enabled&&-1<r.gt&&(0===r.gt||r.gt<=e.length),(()=>{var e=D.fullData;let r=K.value,l={};e.forEach(e=>{var t=getRowKeyByField(e,r);l[t]=e}),D.fullKeyMaps=l})(),A(),ee(),te(),W().then(()=>{o()})},n=()=>{var e=k.value;if(e){let t="row--drag-origin";_xeUtils.default.arrayEach(e.querySelectorAll("."+t),e=>{(e.draggable=!1,_dom.removeClass)(e,t)})}},re=e=>{var t=i.value.sItem,r=k.value;if(r){e=R(e);_xeUtils.default.arrayEach(r.querySelectorAll(`.vxe-list--row[rowid="${e}"]`+(t?t+`[rowid="${e}"]`:"")),e=>{(0,_dom.addClass)(e,"row--drag-origin")})}},le=e=>{var t=T.dragRow,r=H.value.tooltipMethod;let l="";l=r?""+(r({$list:S,row:t})||""):(0,_ui.getI18n)("vxe.list.dragTip",[e.textContent||""]),T.dragTipText=l},oe=()=>{var e=C.value,t=m.value;e&&(e.style.display=""),t&&(t.style.display="")},ae=()=>{w.row=null},ie=()=>{var e=T.dragRow;e&&(oe(),n(),ae(),T.dragRow=null)},se=(e,t)=>{e.stopPropagation();var r=t.row,{trigger:l,dragStartMethod:o}=H.value,a=e.currentTarget,l="row"===l?a:a.parentElement.parentElement;n(),o&&!o(t)?(l.draggable=!1,T.dragRow=null,oe()):(a={row:r},T.dragRow=r,l.draggable=!0,re(r),le(l),p("row-dragstart",a,e))},ue=()=>{ie()},ne=(e,t,r,l)=>{var o=k.value;if(o){var a=o.getBoundingClientRect(),i=o.clientHeight;if(t){var s=m.value;if(s)if(r){var u=t.getBoundingClientRect();let e=t.clientHeight;t=Math.max(1,u.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",l)}else s.style.display=""}u=C.value;u&&(u.style.display="block",u.style.top=Math.min(o.clientHeight-o.scrollTop-u.clientHeight,e.clientY-a.y)+"px",u.style.left=Math.min(o.clientWidth-o.scrollLeft-u.clientWidth-1,e.clientX-a.x)+"px",u.setAttribute("drag-status",r?"normal":"disabled"))}},ce=()=>{var e=k.value;oe(),n(),(0,_anime.clearRowAnimate)(e,[".vxe-list--row"]),T.dragRow=null},de=(o,a,i,s)=>{let u=D.fullData;var e=H.value;let{animation:v,dragEndMethod:t}=e;e=t||(e?e.dragEndMethod:null);let g="bottom"===s?1:0,h=k.value,w={status:!1};if(h&&i&&a){if(i!==a){var f={oldRow:a,newRow:i,dragRow:a,dragPos:s,offsetIndex:g};let n=R(a),c=z(u,n);var x,_=O(i);let d=0,t=-1,r=void(v&&(_=h.querySelector(`.vxe-list--row[rowid="${_}"]`),x=h.querySelector(`.vxe-list--row[rowid="${n}"]`),(_=_||x)&&(d=_.offsetHeight),x)&&(t=x.offsetTop)),l;return Promise.resolve(!e||e(f)).then(e=>{if(!e)return w;r=q(u,a),u.splice(r,1);var e=q(u,i);return l=e+g,u.splice(l,0,a),A(),T.scrollYLoad&&y(),o&&(e={oldRow:a,newRow:i,dragRow:a,dragPos:s,offsetIndex:g,_index:{newIndex:l,oldIndex:r}},p("row-dragend",e,o)),(0,_vue.nextTick)().then(()=>{if(v){var l=T.rowList,o=D.fullData,a=z(o,n),i=o[0],i=q(o,i),s=h;if(-1<i){var u=i+o.length;let e=-1,t=-1,r=1;c<i?(e=0,t=a-i):c>u?(u=z(l,n),e=u+1,t=o.length,r=-1):a>c?(e=c-i,t=e+a-c):(e=a-i,t=e+c-a+1,r=-1);l=o.slice(e,t);if(l.length){let t=[];l.forEach(e=>{e=R(e);t.push(`.vxe-list--row[rowid="${e}"]`)});u=s.querySelectorAll(t.join(","));(0,_anime.moveRowAnimateToTb)(u,r*d)}}i=[`.vxe-list--row[rowid="${n}"]`],a=s.querySelectorAll(i.join(",")),o=a[0];-1<t&&o&&(0,_anime.moveRowAnimateToTb)(a,t-o.offsetTop)}U()}).then(()=>({status:!0}))}).catch(()=>w).then(e=>(ce(),ae(),e))}ce(),ae()}return Promise.resolve(w)},ve=e=>{e.dataTransfer&&e.dataTransfer.setDragImage((0,_dom.getTpImg)(),0,0)},ge=e=>{var t=T.dragRow,{prevDragRow:r,prevDragPos:l}=D;de(e,t,r,l)},he=e=>{var t,r=T.dragRow,l=D.fullData,o=(r||e.preventDefault(),e.currentTarget),a=o.getAttribute("rowid")||"",l=c(l,a);l&&(e.preventDefault(),t=e.clientY-o.getBoundingClientRect().y<o.clientHeight/2?"top":"bottom",D.prevDragRow=l,D.prevDragPos=t,r&&R(r)===a?ne(e,o,!1,t):(a={oldRow:r,targetRow:l,dragPos:t,dragRow:r,offsetIndex:"bottom"==t?1:0},ne(e,o,!0,t),p("row-dragover",a,e)))},we=(e,t)=>{var{trigger:r,disabledMethod:l}=H.value;let o=!1;B.value&&(o="row"===r);r={row:t,$list:S};!o||l&&l(r)||se(e,r)},fe=(e,t)=>{var r=D.currentRow,l=E.value.isCurrent;let o=!1;l?(o=!0,Me(e,t)):r&&(D.currentRow=null,T.currRowFlag++),p("row-click",{row:t,triggerCurrent:o},e)},xe=(e,t)=>{p("row-dblclick",{row:t},e)},O=e=>getRowKeyByField(e,K.value),a=(e,t)=>""+e==""+t,_e=(e,t)=>!(!e||!t)&&(e===t||a(R(e),R(t))),pe=(e,t)=>e&&a(O(e),t);let c=(e,t)=>{let r=K.value;return _xeUtils.default.find(e,e=>a(getRowIdByField(e,r),t))},q=(e,t)=>t?_xeUtils.default.findIndexOf(e,e=>_e(e,t)):-1,z=(e,t)=>{let r=K.value;return _xeUtils.default.findIndexOf(e,e=>a(getRowIdByField(e,r),t))},Re=e=>{var t=T.selectRadioRow;return O(t)===e};let ye=e=>{var t=T.updateCheckboxFlag,r=D.selectCheckboxMaps;return!(!t||!r[e])};let ke=()=>{var e=T.updateCheckboxFlag,t=D.selectCheckboxMaps;let r=K.value,l=[];return e&&_xeUtils.default.each(t,e=>{e&&(e=getRowKeyByField(e,r),l.push(e))}),l},be=()=>{D.selectCheckboxMaps={},T.updateCheckboxFlag++,T.isAllChecked=!1,T.isAllIndeterminate=!1;return s([]),(0,_vue.nextTick)()},me=e=>{var{fullData:t,selectCheckboxMaps:r}=D,l=K.value;if(e){var o,a=[];for(o of t){var i=getRowKeyByField(o,l);r[getRowIdByField(o,l)]=o,a.push(i)}return s(a),d()}return be()},d=()=>{var{selectCheckboxMaps:e,fullData:t}=D,r=K.value,l=L.value.checkMethod;let o=!1,a=!1;if(l){for(var i of t)if(l({row:i,$list:S}))if(e[getRowIdByField(i,r)])o=!0;else if(a=!0,o)break}else for(var s of t)if(e[getRowIdByField(s,r)])o=!0;else if(a=!0,o)break;return T.isAllChecked=o&&!a,T.isAllIndeterminate=o&&a,T.updateCheckboxFlag++,(0,_vue.nextTick)()},Ce=e=>{var t=T.isAllChecked,t=!t;t?me(!0):be(),p("checkbox-all",{checked:t},e)},Ie=(t,r)=>{t.preventDefault(),t.stopPropagation();var l=D.selectCheckboxMaps,o=L.value.checkMethod,a=R(r),o=!!o&&!o({$list:S,row:r});if(!o){let e=!1;l[a]?delete l[a]:(e=!0,l[a]=r),T.updateCheckboxFlag++,d();o=_xeUtils.default.keys(l).map(_utils.deModelValue);s(o),p("checkbox-change",{row:r,value:o,checked:e},t)}},Me=(e,t)=>{e.preventDefault();var r=E.value.currentMethod;let l=!1;(l=r?!r({row:t}):l)||(D.currentRow=t,T.currRowFlag++,p("current-change",{row:t,checked:!0},e))},Te=(t,r)=>{t.preventDefault(),t.stopPropagation();var l=T.selectRadioRow,{strict:o,checkMethod:a}=F.value,i=O(r),a=!!a&&!a({$list:S,row:r});if(!a){a=i;let e=!0;o&&l&&i===O(l)?(e=!1,T.selectRadioRow=null):T.selectRadioRow=r,u(a),p("radio-change",{row:r,value:a,checked:e},t)}};e={dispatchEvent:p,loadData:t,reloadData(e){return r(),t(e)},getFullData(){var e=D.fullData;return e},recalculate:U,scrollTo:J,refreshScroll:o,clearScroll:r,getRowKey:O,eqRowKey:a,eqRow:_e,eqRowByKey:pe,findRow:(e,t)=>t?_xeUtils.default.find(e,e=>_e(e,t)):null,findRowByKey:c,findRowIndexOf:q,findRowIndexOfByKey:z,isCheckedByRadioRowKey:Re,isCheckedByRadioRow:e=>Re(O(e)),isCheckedByCheckboxRowKey:ye,isCheckedByCheckboxRow:e=>ye(O(e)),setCurrentRow:e=>(D.currentRow=e,T.currRowFlag++,(0,_vue.nextTick)()),setCurrentRowByKey:e=>{var t=D.fullData;return D.currentRow=c(t,e),T.currRowFlag++,(0,_vue.nextTick)()},getCurrentRow:()=>{var e=D.currentRow;return e},getCurrentRowKey:()=>{var e=D.currentRow;return e?O(e):null},clearCurrentRow:()=>(D.currentRow=null,T.currRowFlag++,(0,_vue.nextTick)()),setRadioRow:e=>{T.selectRadioRow=e;e=O(e);return u(e),(0,_vue.nextTick)()},setRadioRowByKey:e=>{var t=D.fullData,t=(T.selectRadioRow=c(t,e),e);return u(t),(0,_vue.nextTick)()},getRadioRow:()=>{var e=T.selectRadioRow;return e},getRadioRowKey:()=>{var e=T.selectRadioRow;return e?O(e):null},clearRadioRow:()=>(T.selectRadioRow=null,u(null),(0,_vue.nextTick)()),setCheckboxRow:(e,t)=>{let r=D.selectCheckboxMaps,l=K.value;(e?_xeUtils.default.isArray(e)?e:[e]:[]).forEach(t?e=>{var t=getRowIdByField(e,l);r[t]||(r[t]=e)}:e=>{e=getRowIdByField(e,l);r[e]&&delete r[e]});e=ke();return s(e),d()},setCheckboxRowByKey:(e,t)=>{let{selectCheckboxMaps:r,fullKeyMaps:l}=D,o=K.value;(e?_xeUtils.default.isArray(e)?e:[e]:[]).forEach(t?e=>{var t,e=l[e||""];e&&(t=getRowIdByField(e,o),e)&&!r[t]&&(r[t]=e)}:e=>{var e=l[e||""];e&&(e=getRowIdByField(e,o),r[e])&&delete r[e]});e=ke();return s(e),d()},getCheckboxRows:()=>{var e=T.updateCheckboxFlag,t=D.selectCheckboxMaps;let r=[];return e&&_xeUtils.default.each(t,e=>{e&&r.push(e)}),r},getCheckboxRowKeys:ke,clearCheckboxRow:be,setAllCheckboxRow:me};Object.assign(S,e,{});let De=(r,e,l)=>{var t=I.showRadio,{showIcon:o,checkMethod:a,visibleMethod:i}=F.value,i=!i||i({$list:S,row:r});if(t&&o&&i){let t=!!a&&!a({$list:S,row:r});return(0,_vue.h)("div",{key:"ct2",class:["vxe-list--radio-option",{"is--checked":l,"is--disabled":t}],onClick(e){t||Te(e,r)}},[(0,_vue.h)("span",{class:["vxe-radio--icon",l?(0,_ui.getIcon)().RADIO_CHECKED:(0,_ui.getIcon)().RADIO_UNCHECKED]})])}return(0,_ui.renderEmptyElement)(S)},Se=(r,e,l)=>{var t=I.showCheckbox,{showIcon:o,checkMethod:a,visibleMethod:i}=L.value,i=!i||i({$list:S,row:r});if(t&&o&&i){let t=!!a&&!a({$list:S,row:r});return(0,_vue.h)("div",{key:"ct3",class:["vxe-list--checkbox-option",{"is--checked":l,"is--disabled":t}],onClick(e){t||Ie(e,r)}},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",l?(0,_ui.getIcon)().CHECKBOX_CHECKED:(0,_ui.getIcon)().CHECKBOX_UNCHECKED]})])}return(0,_ui.renderEmptyElement)(S)};let Ee=(0,_vue.ref)(0),v=((0,_vue.watch)(()=>I.data?I.data.length:-1,()=>{Ee.value++}),(0,_vue.watch)(()=>I.data,()=>{Ee.value++}),(0,_vue.watch)(Ee,()=>{t(I.data||[])}),(0,_vue.ref)(0)),He=((0,_vue.watch)(()=>I.height,()=>{v.value++}),(0,_vue.watch)(()=>I.maxHeight,()=>{v.value++}),(0,_vue.watch)(()=>I.syncResize,()=>{v.value++}),(0,_vue.watch)(x,()=>{v.value++}),(0,_vue.watch)(v,()=>{(0,_vue.nextTick)(()=>{U()})}),(0,_vue.watch)(()=>I.checkRowKey,()=>{ee()}),(0,_vue.ref)(0));return(0,_vue.watch)(()=>I.checkRowKeys?I.checkRowKeys.length:-1,()=>{He.value++}),(0,_vue.watch)(()=>I.checkRowKeys,()=>{He.value++}),(0,_vue.watch)(He,()=>{te()}),(0,_vue.onActivated)(()=>{U().then(()=>o())}),(0,_vue.nextTick)(()=>{t(I.data||[])}),(0,_vue.onMounted)(()=>{var{showRadio:e,showCheckbox:t}=I,r=E.value.useKey,l=B.value,o=K.value;o||(e&&errLog("vxe.error.reqSupportProp",["show-radio","row-config.keyField"]),t&&errLog("vxe.error.reqSupportProp",["show-checkbox","row-config.keyField"]),l&&errLog("vxe.error.reqSupportProp",["drag-config","row-config.keyField"])),r&&!o&&errLog("vxe.error.reqSupportProp",["row-config.useKey","row-config.keyField"]),I.autoResize&&(e=k.value,(t=_ui.globalResize.create(()=>U())).observe(e),e&&t.observe(e.parentElement),D.resizeObserver=t),U(),_ui.globalEvents.on(S,"resize",U)}),(0,_vue.onBeforeUnmount)(()=>{var e=D.resizeObserver;e&&e.disconnect(),_ui.globalEvents.off(S,"resize"),_xeUtils.default.assign(T,createReactData()),_xeUtils.default.assign(D,createInternalData())}),S.renderVN=()=>{var{showCheckbox:e,className:t,loading:r}=I,{bodyHeight:l,topSpaceHeight:o,rowList:a,isAllChecked:i,isAllIndeterminate:s}=T,u=M.default,n=M.header,c=M.footer,d=Y.value,v=P.value,g=V.value,h=F.value,w=L.value,{showHeader:f,headerTitle:x}=w,_=H.value.trigger,{isHover:p,padding:R}=E.value,y=B.value,e=e&&!1!==f;return(0,_vue.h)("div",{ref:k,class:["vxe-list",t?_xeUtils.default.isFunction(t)?t({$list:S}):t:"",{["size--"+d]:d,"is--drag":y,"is--loading":r}],style:v},[n||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:Ce},[(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),n?(0,_vue.h)("div",{class:"vxe-list--header-content"},n({rows: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:Z},[(0,_vue.h)("div",{class:"vxe-list--y-space",style:{height:l?l+"px":""}}),(0,_vue.h)("div",{ref:j,class:["vxe-list--body",{"trigger--row":"row"===_,"checkbox--highlight":w.highlight,"radio--highlight":h.highlight,"row--hover":p,"is--padding":R}],style:{marginTop:o?o+"px":""}},u?u({rows:a,$list:S}):a.map((e,t)=>((t,e)=>{var{showRadio:r,showCheckbox:l}=I,{selectRadioRow:o,currRowFlag:a,updateCheckboxFlag:i}=T,{selectCheckboxMaps:s,currentRow:u}=D,n=M.content,{trigger:c,icon:d,disabledMethod:v,visibleMethod:g}=H.value,{useKey:h,contentField:w,className:f,isCurrent:x}=E.value,_=B.value,p=K.value,R=f&&_xeUtils.default.isFunction(f),h=p||h||_||x||r||l,x=h&&p?getRowIdByField(t,p):"",y=(0,_utils.enModelValue)(x);let k={row:t,$list:S},b=!1,m=(r&&(b=o&&(t===o||pe(o,x))),!1);l&&(m=!(!i||!s[y]));o=[];let C=!1;_&&p&&(!g||g(k))&&(i={},"row"!==c&&(C=!(!v||!v(k)),i.onMousedown=e=>{C||se(e,k)},i.onMouseup=ue),o.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:d||(0,_ui.getIcon)().LIST_DRAG})])]))),r&&o.push(De(t,y,b)),l&&o.push(Se(t,y,m)),o.push((0,_vue.h)("div",{key:"ct5",class:"vxe-list--row-content"},n?n(k):w?(0,_utils.getText)(t[w]):""));s={onMousedown(e){we(e,t)},onMouseup:ue,onClick(e){fe(e,t)},onDblclick(e){xe(e,t)}};return _&&(s.onDragstart=ve,s.onDragend=ge,s.onDragover=he),(0,_vue.h)("div",Object.assign({key:h&&p?y:e,class:["vxe-list--row",R?f(k):f||"",{"is--drag-disabled":C,"is--current":a&&u&&pe(u,x),"is-radio--checked":b,"is-checkbox--checked":m}],rowid:h&&p?y:void 0},s),o)})(e,t)))]),c?(0,_vue.h)("div",{ref:$,class:"vxe-list--footer-wrapper"},c({rows:a,$list:S})):(0,_ui.renderEmptyElement)(S),(()=>{var{dragRow:e,dragTipText:t}=T,r=H.value;return B.value?(0,_vue.h)("div",{class:"vxe-list--drag-wrapper"},[(0,_vue.h)("div",{ref:m,class:["vxe-list--drag-row-line",{"is--guides":r.showGuidesStatus}]}),e&&r.showDragTip?(0,_vue.h)("div",{ref:C,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"),_loading=_interopRequireDefault(require("../../loading/src/loading"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let errLog=(0,_log.createComponentLog)("tree").errLog;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,dragRow:null,dragTipText:""}}function createInternalData(){return{resizeObserver:void 0,fullData:[],fullKeyMaps:{},lastScrollLeft:0,lastScrollTop:0,scrollYStore:{startIndex:0,endIndex:0,visibleSize:0,offsetSize:0,rowHeight:0},currentRow:null,selectCheckboxMaps:{}}}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],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,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"],setup(I,g){let{slots:M,emit:l}=g;var e=_xeUtils.default.uniqueId();let h=_xeUtils.default.browse(),Y=(0,_ui.useSize)(I).computeSize,T=(0,_vue.reactive)(createReactData()),D=createInternalData(),w=(0,_store.getCrossListDragRowInfo)(),k=(0,_vue.ref)(),N=(0,_vue.ref)(),$=(0,_vue.ref)(),b=(0,_vue.ref)(),j=(0,_vue.ref)(),m=(0,_vue.ref)(),C=(0,_vue.ref)(),f={refElem:k},S={xID:e,props:I,context:g,reactData:T,internalData:D,getRefMaps:()=>f},E=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().list.rowConfig,I.rowConfig)),H=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().list.dragConfig,I.dragConfig)),i=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().list.virtualYConfig||(0,_ui.getConfig)().list.scrollY,I.virtualYConfig||I.scrollY)),K=(0,_vue.computed)(()=>{var e=E.value.keyField;return e||""}),B=(0,_vue.computed)(()=>{var e=I.dragConfig,t=H.value;return e&&(0,_utils.isEnableConf)(t)}),x=(0,_vue.computed)(()=>{var e=E.value.height;return e}),F=(0,_vue.computed)(()=>Object.assign({showIcon:!0},(0,_ui.getConfig)().list.radioConfig,I.radioConfig)),L=(0,_vue.computed)(()=>Object.assign({showIcon:!0},(0,_ui.getConfig)().list.checkboxConfig,I.checkboxConfig)),P=(0,_vue.computed)(()=>{var e=x.value,t={};return e&&(t["--vxe-ui-list-row-height"]=(0,_dom.toCssUnit)(e)),t}),V=(0,_vue.computed)(()=>{var{height:e,maxHeight:t}=I,{customHeight:r,customMaxHeight:l,headHeight:o,footHeight:a}=T,i={};return e?i.height=(0,_dom.toCssUnit)(Math.max(20,r-o-a)):t&&(i.height="auto",i.maxHeight=(0,_dom.toCssUnit)(Math.max(20,l-o-a))),i}),p=(e,t,r)=>{l(e,(0,_ui.createEvent)(r,{$list:S},t))},s=e=>{l("update:checkRowKeys",e)},u=e=>{l("update:checkRowKey",e)},R=e=>getRowIdByField(e,K.value),_=e=>{var t=T.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},X=()=>{var e=N.value,t=$.value;T.headHeight=e?Math.floor(e.offsetHeight):0,T.footHeight=t?Math.floor(t.offsetHeight):0,T.customHeight=_("height"),T.customMaxHeight=_("maxHeight")},y=()=>{var e=T.scrollYLoad,{scrollYStore:t,fullData:r}=D;T.bodyHeight=e?r.length*t.rowHeight:0,T.topSpaceHeight=e?Math.max(t.startIndex*t.rowHeight,0):0},A=()=>{var e=T.scrollYLoad,{fullData:t,scrollYStore:r}=D;return T.rowList=e?t.slice(r.startIndex,r.endIndex):t.slice(0),(0,_vue.nextTick)()},G=()=>{A(),y()},W=()=>(0,_vue.nextTick)().then(()=>{var e=T.scrollYLoad,t=D.scrollYStore,r=j.value,l=i.value;let o=0,a;(a=r?(a=l.sItem?r.querySelector(l.sItem):a)||r.children[0]:a)&&(o=a.offsetHeight),o=Math.max(12,o),t.rowHeight=o,(e?(r=b.value,e=Math.max(8,Math.ceil(r.clientHeight/o)),r=l.oSize?_xeUtils.default.toNumber(l.oSize):h.edge?10:0,t.offsetSize=r,t.visibleSize=e,t.endIndex=Math.max(t.startIndex+e+r,t.endIndex),G):y)()}),r=()=>{var e=b.value;return e&&(e.scrollTop=0),(0,_vue.nextTick)()},J=(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),T.scrollYLoad?new Promise(e=>{setTimeout(()=>{(0,_vue.nextTick)(()=>{e()})},50)}):(0,_vue.nextTick)()},o=()=>{let{lastScrollLeft:e,lastScrollTop:t}=D;return r().then(()=>{if(e||t)return D.lastScrollLeft=0,D.lastScrollTop=0,J(e,t)})},U=()=>{var e=k.value;if(e){var t=e.parentElement;if(T.parentHeight=t?t.clientHeight:0,X(),e.clientWidth&&e.clientHeight)return W()}return(0,_vue.nextTick)()},Q=e=>{var t=D.scrollYStore,{startIndex:r,endIndex:l,visibleSize:o,offsetSize:a,rowHeight:i}=t,e=e.target.scrollTop,e=Math.floor(e/i),i=Math.max(0,e-1-a),a=e+o+a;!(e<=r||l-o-1<=e)||r===i&&l===a||(t.startIndex=i,t.endIndex=a,G())},Z=e=>{var t=e.target,r=t.scrollTop,t=t.scrollLeft,l=t!==D.lastScrollLeft,o=r!==D.lastScrollTop;D.lastScrollTop=r,D.lastScrollLeft=t,T.scrollYLoad&&Q(e),p("scroll",{scrollLeft:t,scrollTop:r,isX:l,isY:o},e)},ee=()=>{var e=I.checkRowKey,t=D.fullKeyMaps;e?(t=t[e],T.selectRadioRow=t||null):T.selectRadioRow=null},te=()=>{var e=I.checkRowKeys,t=D.fullKeyMaps,r=K.value,l={};if(e&&e.length)for(var o of e){o=t[o];o&&(l[getRowIdByField(o,r)]=o)}D.selectCheckboxMaps=l,d()},t=e=>{var t=D.scrollYStore,r=i.value,e=e||[];return Object.assign(t,{startIndex:0,endIndex:1,visibleSize:0}),D.fullData=e,T.scrollYLoad=!!r.enabled&&-1<r.gt&&(0===r.gt||r.gt<=e.length),(()=>{var e=D.fullData;let r=K.value,l={};e.forEach(e=>{var t=getRowKeyByField(e,r);l[t]=e}),D.fullKeyMaps=l})(),A(),ee(),te(),W().then(()=>{o()})},n=()=>{var e=k.value;if(e){let t="row--drag-origin";_xeUtils.default.arrayEach(e.querySelectorAll("."+t),e=>{(e.draggable=!1,_dom.removeClass)(e,t)})}},re=e=>{var t=i.value.sItem,r=k.value;if(r){e=R(e);_xeUtils.default.arrayEach(r.querySelectorAll(`.vxe-list--row[rowid="${e}"]`+(t?t+`[rowid="${e}"]`:"")),e=>{(0,_dom.addClass)(e,"row--drag-origin")})}},le=e=>{var t=T.dragRow,r=H.value.tooltipMethod;let l="";l=r?""+(r({$list:S,row:t})||""):(0,_ui.getI18n)("vxe.list.dragTip",[e.textContent||""]),T.dragTipText=l},oe=()=>{var e=C.value,t=m.value;e&&(e.style.display=""),t&&(t.style.display="")},ae=()=>{w.row=null},ie=()=>{var e=T.dragRow;e&&(oe(),n(),ae(),T.dragRow=null)},se=(e,t)=>{e.stopPropagation();var r=t.row,{trigger:l,dragStartMethod:o}=H.value,a=e.currentTarget,l="row"===l?a:a.parentElement.parentElement;n(),o&&!o(t)?(l.draggable=!1,T.dragRow=null,oe()):(a={row:r},T.dragRow=r,l.draggable=!0,re(r),le(l),p("row-dragstart",a,e))},ue=()=>{ie()},ne=(e,t,r,l)=>{var o=k.value;if(o){var a=o.getBoundingClientRect(),i=o.clientHeight;if(t){var s=m.value;if(s)if(r){var u=t.getBoundingClientRect();let e=t.clientHeight;t=Math.max(1,u.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",l)}else s.style.display=""}u=C.value;u&&(u.style.display="block",u.style.top=Math.min(o.clientHeight-o.scrollTop-u.clientHeight,e.clientY-a.y)+"px",u.style.left=Math.min(o.clientWidth-o.scrollLeft-u.clientWidth-1,e.clientX-a.x)+"px",u.setAttribute("drag-status",r?"normal":"disabled"))}},ce=()=>{var e=k.value;oe(),n(),(0,_anime.clearRowAnimate)(e,[".vxe-list--row"]),T.dragRow=null},de=(o,a,i,s)=>{let u=D.fullData;var e=H.value;let{animation:v,dragEndMethod:t}=e;e=t||(e?e.dragEndMethod:null);let g="bottom"===s?1:0,h=k.value,w={status:!1};if(h&&i&&a){if(i!==a){var f={oldRow:a,newRow:i,dragRow:a,dragPos:s,offsetIndex:g};let n=R(a),c=z(u,n);var x,_=O(i);let d=0,t=-1,r=void(v&&(_=h.querySelector(`.vxe-list--row[rowid="${_}"]`),x=h.querySelector(`.vxe-list--row[rowid="${n}"]`),(_=_||x)&&(d=_.offsetHeight),x)&&(t=x.offsetTop)),l;return Promise.resolve(!e||e(f)).then(e=>{if(!e)return w;r=q(u,a),u.splice(r,1);var e=q(u,i);return l=e+g,u.splice(l,0,a),A(),T.scrollYLoad&&y(),o&&(e={oldRow:a,newRow:i,dragRow:a,dragPos:s,offsetIndex:g,_index:{newIndex:l,oldIndex:r}},p("row-dragend",e,o)),(0,_vue.nextTick)().then(()=>{if(v){var l=T.rowList,o=D.fullData,a=z(o,n),i=o[0],i=q(o,i),s=h;if(-1<i){var u=i+o.length;let e=-1,t=-1,r=1;c<i?(e=0,t=a-i):c>u?(u=z(l,n),e=u+1,t=o.length,r=-1):a>c?(e=c-i,t=e+a-c):(e=a-i,t=e+c-a+1,r=-1);l=o.slice(e,t);if(l.length){let t=[];l.forEach(e=>{e=R(e);t.push(`.vxe-list--row[rowid="${e}"]`)});u=s.querySelectorAll(t.join(","));(0,_anime.moveRowAnimateToTb)(u,r*d)}}i=[`.vxe-list--row[rowid="${n}"]`],a=s.querySelectorAll(i.join(",")),o=a[0];-1<t&&o&&(0,_anime.moveRowAnimateToTb)(a,t-o.offsetTop)}U()}).then(()=>({status:!0}))}).catch(()=>w).then(e=>(ce(),ae(),e))}ce(),ae()}return Promise.resolve(w)},ve=e=>{e.dataTransfer&&e.dataTransfer.setDragImage((0,_dom.getTpImg)(),0,0)},ge=e=>{var t=T.dragRow,{prevDragRow:r,prevDragPos:l}=D;de(e,t,r,l)},he=e=>{var t,r=T.dragRow,l=D.fullData,o=(r||e.preventDefault(),e.currentTarget),a=o.getAttribute("rowid")||"",l=c(l,a);l&&(e.preventDefault(),t=e.clientY-o.getBoundingClientRect().y<o.clientHeight/2?"top":"bottom",D.prevDragRow=l,D.prevDragPos=t,r&&R(r)===a?ne(e,o,!1,t):(a={oldRow:r,targetRow:l,dragPos:t,dragRow:r,offsetIndex:"bottom"==t?1:0},ne(e,o,!0,t),p("row-dragover",a,e)))},we=(e,t)=>{var{trigger:r,disabledMethod:l}=H.value;let o=!1;B.value&&(o="row"===r);r={row:t,$list:S};!o||l&&l(r)||se(e,r)},fe=(e,t)=>{var r=D.currentRow,l=E.value.isCurrent;let o=!1;l?(o=!0,Me(e,t)):r&&(D.currentRow=null,T.currRowFlag++),p("row-click",{row:t,triggerCurrent:o},e)},xe=(e,t)=>{p("row-dblclick",{row:t},e)},O=e=>getRowKeyByField(e,K.value),a=(e,t)=>""+e==""+t,_e=(e,t)=>!(!e||!t)&&(e===t||a(R(e),R(t))),pe=(e,t)=>e&&a(O(e),t);let c=(e,t)=>{let r=K.value;return _xeUtils.default.find(e,e=>a(getRowIdByField(e,r),t))},q=(e,t)=>t?_xeUtils.default.findIndexOf(e,e=>_e(e,t)):-1,z=(e,t)=>{let r=K.value;return _xeUtils.default.findIndexOf(e,e=>a(getRowIdByField(e,r),t))},Re=e=>{var t=T.selectRadioRow;return O(t)===e};let ye=e=>{var t=T.updateCheckboxFlag,r=D.selectCheckboxMaps;return!(!t||!r[e])};let ke=()=>{var e=T.updateCheckboxFlag,t=D.selectCheckboxMaps;let r=K.value,l=[];return e&&_xeUtils.default.each(t,e=>{e&&(e=getRowKeyByField(e,r),l.push(e))}),l},be=()=>{D.selectCheckboxMaps={},T.updateCheckboxFlag++,T.isAllChecked=!1,T.isAllIndeterminate=!1;return s([]),(0,_vue.nextTick)()},me=e=>{var{fullData:t,selectCheckboxMaps:r}=D,l=K.value;if(e){var o,a=[];for(o of t){var i=getRowKeyByField(o,l);r[getRowIdByField(o,l)]=o,a.push(i)}return s(a),d()}return be()},d=()=>{var{selectCheckboxMaps:e,fullData:t}=D,r=K.value,l=L.value.checkMethod;let o=!1,a=!1;if(l){for(var i of t)if(l({row:i,$list:S}))if(e[getRowIdByField(i,r)])o=!0;else if(a=!0,o)break}else for(var s of t)if(e[getRowIdByField(s,r)])o=!0;else if(a=!0,o)break;return T.isAllChecked=o&&!a,T.isAllIndeterminate=o&&a,T.updateCheckboxFlag++,(0,_vue.nextTick)()},Ce=e=>{var t=T.isAllChecked,t=!t;t?me(!0):be(),p("checkbox-all",{checked:t},e)},Ie=(t,r)=>{t.preventDefault(),t.stopPropagation();var l=D.selectCheckboxMaps,o=L.value.checkMethod,a=R(r),o=!!o&&!o({$list:S,row:r});if(!o){let e=!1;l[a]?delete l[a]:(e=!0,l[a]=r),T.updateCheckboxFlag++,d();o=_xeUtils.default.keys(l).map(_utils.deModelValue);s(o),p("checkbox-change",{row:r,value:o,checked:e},t)}},Me=(e,t)=>{e.preventDefault();var r=E.value.currentMethod;let l=!1;(l=r?!r({row:t}):l)||(D.currentRow=t,T.currRowFlag++,p("current-change",{row:t,checked:!0},e))},Te=(t,r)=>{t.preventDefault(),t.stopPropagation();var l=T.selectRadioRow,{strict:o,checkMethod:a}=F.value,i=O(r),a=!!a&&!a({$list:S,row:r});if(!a){a=i;let e=!0;o&&l&&i===O(l)?(e=!1,T.selectRadioRow=null):T.selectRadioRow=r,u(a),p("radio-change",{row:r,value:a,checked:e},t)}};e={dispatchEvent:p,loadData:t,reloadData(e){return r(),t(e)},getFullData(){var e=D.fullData;return e},recalculate:U,scrollTo:J,refreshScroll:o,clearScroll:r,getRowKey:O,eqRowKey:a,eqRow:_e,eqRowByKey:pe,findRow:(e,t)=>t?_xeUtils.default.find(e,e=>_e(e,t)):null,findRowByKey:c,findRowIndexOf:q,findRowIndexOfByKey:z,isCheckedByRadioRowKey:Re,isCheckedByRadioRow:e=>Re(O(e)),isCheckedByCheckboxRowKey:ye,isCheckedByCheckboxRow:e=>ye(O(e)),setCurrentRow:e=>(D.currentRow=e,T.currRowFlag++,(0,_vue.nextTick)()),setCurrentRowByKey:e=>{var t=D.fullData;return D.currentRow=c(t,e),T.currRowFlag++,(0,_vue.nextTick)()},getCurrentRow:()=>{var e=D.currentRow;return e},getCurrentRowKey:()=>{var e=D.currentRow;return e?O(e):null},clearCurrentRow:()=>(D.currentRow=null,T.currRowFlag++,(0,_vue.nextTick)()),setRadioRow:e=>{T.selectRadioRow=e;e=O(e);return u(e),(0,_vue.nextTick)()},setRadioRowByKey:e=>{var t=D.fullData,t=(T.selectRadioRow=c(t,e),e);return u(t),(0,_vue.nextTick)()},getRadioRow:()=>{var e=T.selectRadioRow;return e},getRadioRowKey:()=>{var e=T.selectRadioRow;return e?O(e):null},clearRadioRow:()=>(T.selectRadioRow=null,u(null),(0,_vue.nextTick)()),setCheckboxRow:(e,t)=>{let r=D.selectCheckboxMaps,l=K.value;(e?_xeUtils.default.isArray(e)?e:[e]:[]).forEach(t?e=>{var t=getRowIdByField(e,l);r[t]||(r[t]=e)}:e=>{e=getRowIdByField(e,l);r[e]&&delete r[e]});e=ke();return s(e),d()},setCheckboxRowByKey:(e,t)=>{let{selectCheckboxMaps:r,fullKeyMaps:l}=D,o=K.value;(e?_xeUtils.default.isArray(e)?e:[e]:[]).forEach(t?e=>{var t,e=l[e||""];e&&(t=getRowIdByField(e,o),e)&&!r[t]&&(r[t]=e)}:e=>{var e=l[e||""];e&&(e=getRowIdByField(e,o),r[e])&&delete r[e]});e=ke();return s(e),d()},getCheckboxRows:()=>{var e=T.updateCheckboxFlag,t=D.selectCheckboxMaps;let r=[];return e&&_xeUtils.default.each(t,e=>{e&&r.push(e)}),r},getCheckboxRowKeys:ke,clearCheckboxRow:be,setAllCheckboxRow:me};Object.assign(S,e,{});let De=(r,e,l)=>{var t=I.showRadio,{showIcon:o,checkMethod:a,visibleMethod:i}=F.value,i=!i||i({$list:S,row:r});if(t&&o&&i){let t=!!a&&!a({$list:S,row:r});return(0,_vue.h)("div",{key:"ct2",class:["vxe-list--radio-option",{"is--checked":l,"is--disabled":t}],onClick(e){t||Te(e,r)}},[(0,_vue.h)("span",{class:["vxe-radio--icon",l?(0,_ui.getIcon)().RADIO_CHECKED:(0,_ui.getIcon)().RADIO_UNCHECKED]})])}return(0,_ui.renderEmptyElement)(S)},Se=(r,e,l)=>{var t=I.showCheckbox,{showIcon:o,checkMethod:a,visibleMethod:i}=L.value,i=!i||i({$list:S,row:r});if(t&&o&&i){let t=!!a&&!a({$list:S,row:r});return(0,_vue.h)("div",{key:"ct3",class:["vxe-list--checkbox-option",{"is--checked":l,"is--disabled":t}],onClick(e){t||Ie(e,r)}},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",l?(0,_ui.getIcon)().CHECKBOX_CHECKED:(0,_ui.getIcon)().CHECKBOX_UNCHECKED]})])}return(0,_ui.renderEmptyElement)(S)};let Ee=(0,_vue.ref)(0),v=((0,_vue.watch)(()=>I.data?I.data.length:-1,()=>{Ee.value++}),(0,_vue.watch)(()=>I.data,()=>{Ee.value++}),(0,_vue.watch)(Ee,()=>{t(I.data||[])}),(0,_vue.ref)(0)),He=((0,_vue.watch)(()=>I.height,()=>{v.value++}),(0,_vue.watch)(()=>I.maxHeight,()=>{v.value++}),(0,_vue.watch)(()=>I.syncResize,()=>{v.value++}),(0,_vue.watch)(x,()=>{v.value++}),(0,_vue.watch)(v,()=>{(0,_vue.nextTick)(()=>{U()})}),(0,_vue.watch)(()=>I.checkRowKey,()=>{ee()}),(0,_vue.ref)(0));return(0,_vue.watch)(()=>I.checkRowKeys?I.checkRowKeys.length:-1,()=>{He.value++}),(0,_vue.watch)(()=>I.checkRowKeys,()=>{He.value++}),(0,_vue.watch)(He,()=>{te()}),(0,_vue.onActivated)(()=>{U().then(()=>o())}),(0,_vue.nextTick)(()=>{t(I.data||[])}),(0,_vue.onMounted)(()=>{var{showRadio:e,showCheckbox:t}=I,r=E.value.useKey,l=B.value,o=K.value;o||(e&&errLog("vxe.error.reqSupportProp",["show-radio","row-config.keyField"]),t&&errLog("vxe.error.reqSupportProp",["show-checkbox","row-config.keyField"]),l&&errLog("vxe.error.reqSupportProp",["drag-config","row-config.keyField"])),r&&!o&&errLog("vxe.error.reqSupportProp",["row-config.useKey","row-config.keyField"]),I.autoResize&&(e=k.value,(t=_ui.globalResize.create(()=>U())).observe(e),e&&t.observe(e.parentElement),D.resizeObserver=t),U(),_ui.globalEvents.on(S,"resize",U)}),(0,_vue.onBeforeUnmount)(()=>{var e=D.resizeObserver;e&&e.disconnect(),_ui.globalEvents.off(S,"resize"),_xeUtils.default.assign(T,createReactData()),_xeUtils.default.assign(D,createInternalData())}),S.renderVN=()=>{var{showCheckbox:e,className:t,loading:r}=I,{bodyHeight:l,topSpaceHeight:o,rowList:a,isAllChecked:i,isAllIndeterminate:s}=T,u=M.default,n=M.header,c=M.footer,d=Y.value,v=P.value,g=V.value,h=F.value,w=L.value,{showHeader:f,headerTitle:x}=w,_=H.value.trigger,{isHover:p,padding:R}=E.value,y=B.value,e=e&&!1!==f;return(0,_vue.h)("div",{ref:k,class:["vxe-list",t?_xeUtils.default.isFunction(t)?t({$list:S}):t:"",{["size--"+d]:d,"is--drag":y,"is--loading":r}],style:v},[n||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:Ce},[(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),n?(0,_vue.h)("div",{class:"vxe-list--header-content"},n({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:Z},[(0,_vue.h)("div",{class:"vxe-list--y-space",style:{height:l?l+"px":""}}),(0,_vue.h)("div",{ref:j,class:["vxe-list--body",{"trigger--row":"row"===_,"checkbox--highlight":w.highlight,"radio--highlight":h.highlight,"row--hover":p,"is--padding":R}],style:{marginTop:o?o+"px":""}},u?u({items:a,$list:S}):a.map((e,t)=>((t,e)=>{var{showRadio:r,showCheckbox:l}=I,{selectRadioRow:o,currRowFlag:a,updateCheckboxFlag:i}=T,{selectCheckboxMaps:s,currentRow:u}=D,n=M.content,{trigger:c,icon:d,disabledMethod:v,visibleMethod:g}=H.value,{useKey:h,contentField:w,className:f,isCurrent:x}=E.value,_=B.value,p=K.value,R=f&&_xeUtils.default.isFunction(f),h=p||h||_||x||r||l,x=h&&p?getRowIdByField(t,p):"",y=(0,_utils.enModelValue)(x);let k={row:t,$list:S},b=!1,m=(r&&(b=o&&(t===o||pe(o,x))),!1);l&&(m=!(!i||!s[y]));o=[];let C=!1;_&&p&&(!g||g(k))&&(i={},"row"!==c&&(C=!(!v||!v(k)),i.onMousedown=e=>{C||se(e,k)},i.onMouseup=ue),o.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:d||(0,_ui.getIcon)().LIST_DRAG})])]))),r&&o.push(De(t,y,b)),l&&o.push(Se(t,y,m)),o.push((0,_vue.h)("div",{key:"ct5",class:"vxe-list--row-content"},n?n(k):w?(0,_utils.getText)(t[w]):""));s={onMousedown(e){we(e,t)},onMouseup:ue,onClick(e){fe(e,t)},onDblclick(e){xe(e,t)}};return _&&(s.onDragstart=ve,s.onDragend=ge,s.onDragover=he),(0,_vue.h)("div",Object.assign({key:h&&p?y:e,class:["vxe-list--row",R?f(k):f||"",{"is--drag-disabled":C,"is--current":a&&u&&pe(u,x),"is-radio--checked":b,"is-checkbox--checked":m}],rowid:h&&p?y:void 0},s),o)})(e,t)))]),c?(0,_vue.h)("div",{ref:$,class:"vxe-list--footer-wrapper"},c({items:a,$list:S})):(0,_ui.renderEmptyElement)(S),(()=>{var{dragRow:e,dragTipText:t}=T,r=H.value;return B.value?(0,_vue.h)("div",{class:"vxe-list--drag-wrapper"},[(0,_vue.h)("div",{ref:m,class:["vxe-list--drag-row-line",{"is--guides":r.showGuidesStatus}]}),e&&r.showDragTip?(0,_vue.h)("div",{ref:C,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()}});
|