@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
19 lines (18 loc) • 34.6 kB
JavaScript
(function(P,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("../tree-view/index.umd.js"),require("../data-grid/index.umd.js"),require("../locale/index.umd.js"),require("../dynamic-resolver/index.umd.js"),require("../common/index.umd.js"),require("../data-view/index.umd.js"),require("../checkbox/index.umd.js"),require("lodash-es"),require("../designer-canvas/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","../tree-view/index.umd.js","../data-grid/index.umd.js","../locale/index.umd.js","../dynamic-resolver/index.umd.js","../common/index.umd.js","../data-view/index.umd.js","../checkbox/index.umd.js","lodash-es","../designer-canvas/index.umd.js"],e):(P=typeof globalThis<"u"?globalThis:P||self,e(P.transfer={},P.Vue,P.FTreeView,P.FDataGrid,P.locale,P.dynamicResolver,P.common,P.dataView,P.FCheckbox,P.LodashES,P.designerCanvas))})(this,function(P,e,ge,pe,Y,he,K,U,J,ve,we){"use strict";const Ve=new Map([["appearance",he.resolveAppearance]]);function Ie(t,l,i){return l}const be={title:"transfer",description:"A Farris Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"select",editor:{type:"waiting for modification",enum:[]}}}}}},Ne={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/transfer.schema.json",title:"transfer",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for transfer",type:"string"},type:{description:"The type string of transfer",type:"string",default:"transfer"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disable:{type:"string",default:!1},editable:{description:"",type:"boolean",default:!0},placeholder:{description:"",type:"string",default:""},readonly:{description:"",type:"boolean",default:!1},require:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},visible:{description:"",type:"boolean",default:!0}},required:["id","type"]},ee={preset:{type:String,default:"classic"},dataSource:{type:Array,default:[]},displayType:{type:String,default:"List"},enableSearch:{type:Boolean,default:!0},identifyField:{type:String,default:"id"},textField:{type:String,default:"name"},placeholder:{type:String,default:""},selections:{type:Array,default:[]},selectionValues:{type:Array,default:[]},virtualized:{type:Boolean,default:!1},rowOption:{type:Object},columns:{type:Array,default:[{field:"name",title:"",dataType:"string",width:"100%"}]},checkBeforeRemoveItem:{type:Function,default:null},selectedItemClass:{Type:[String,Function],default:"draggable-item--text-truncate",validator:t=>typeof t=="string"||typeof t=="function"}},se=he.createPropsResolver(ee,Ne,Ve,Ie,be),ke={columns:{type:Array,default:[{field:"name",title:"",dataType:"string"}]},customClass:{type:String,default:""},data:{type:Array,default:[]},draggable:{type:Boolean,default:!1},multiSelect:{type:Boolean,default:!1},idField:{type:String,default:"id"},valueField:{type:String,default:"id"},textField:{type:String,default:"name"},titleField:{type:String,default:"name"},view:{type:String,default:"ContentView"},size:{type:String,default:"default"},placeholder:{type:String,default:""},header:{type:String,default:"ContentHeader"},headerClass:{type:String,default:""},itemClass:{type:[String,Function],default:"",validator:t=>typeof t=="string"||typeof t=="function"},itemStyle:{type:[String,Function],default:"",validator:t=>typeof t=="string"||typeof t=="function"},itemContentClass:{type:String,default:""},selectionValues:{type:Array,default:[]},group:{type:Object},selection:{type:Object,default:{enableSelectRow:!0,multiSelect:!1,multiSelectMode:"DependOnCheck",showCheckbox:!1,showSelectAll:!1,showSelection:!0}},keepOrder:{type:Boolean,default:!1},disableField:{type:String,default:"disabled"},enableHighlightSearch:{type:Boolean,default:!0},virtualized:{type:Boolean,default:!0},checkBeforeRemoveItem:{type:Function,default:null},headerTemplate:{type:Object},contentTemplate:{type:Object},footerTemplate:{type:Object},emptyTemplate:{type:Object},pagination:{type:Object,default:{enable:!1,size:20}},showActiveWhenMultiSelect:{type:Boolean,default:!0},allowDelete:{type:Boolean,default:!0}};function Te(t,l){function i(d){const c=[];let n=d.nextNode();for(;n;)c.push(n),n=d.nextNode();return c}function R(d,c){const n=document.createTreeWalker(d,NodeFilter.SHOW_TEXT);return i(n).map(g=>({textNode:g,text:(g.textContent||"").toLocaleLowerCase()})).map(({textNode:g,text:F})=>{const w=[];let u=0;for(;u<F.length;){const b=F.indexOf(c,u);if(b===-1)break;w.push(b),u=b+c.length}return w.map(b=>{const x=new Range;return x.setStart(g,b),x.setEnd(g,b+c.length),x})}).flat()}function y(d){if(!CSS.highlights||(CSS.highlights.clear(),!d||!l))return;const c=R(l.value,d.toLocaleLowerCase()),n=new Highlight(...c);CSS.highlights.set("search-result",n)}return{search:y}}function Se(t,l,i,R,y,d,c,n,h,A){const I=e.ref(t.size),g=e.ref(t.textField),F=e.ref(t.titleField),w=e.ref(t.disableField),u=e.computed(()=>{var r,m;return((r=t.selection)==null?void 0:r.multiSelect)&&((m=t.selection)==null?void 0:m.showCheckbox)}),{onMouseenterItem:b,onMouseoverItem:x,onMouseoutItem:S}=d,{getKey:v,listViewItemClass:j,listViewItemStyle:D,onCheckItem:f,onClickItem:M}=c,C=e.computed(()=>{const r={"text-overflow":"ellipsis",overflow:"hidden","white-space":"nowrap"};return t.itemClass?r:{margin:I.value==="small"?"0.25rem 0":"8px 0",...r}});function N(r,m,k){return r.checked=n.findIndexInSelectedItems(r)>-1,e.createVNode("li",{class:j(r,m),id:v(r,m),key:v(r,m),style:D(r,m),onClick:O=>M(r,m,O),onMouseenter:O=>b(O,r,m),onMouseover:O=>x(O,r,m),onMouseout:O=>S(O,r,m)},[u.value&&e.createVNode("div",{class:"f-list-select",onClick:O=>O.stopPropagation()},[e.createVNode(J.FCheckbox,{id:"list-"+v(r,m),customClass:"listview-checkbox float-left",disabled:r[w.value],checked:r.checked,"onUpdate:checked":O=>r.checked=O,onChange:O=>{f(r,m,!O.checked)}},null)]),e.createVNode("div",{class:"f-list-content"},[e.createVNode("div",{class:t.itemContentClass,style:C.value,title:r.raw[F.value]||r.raw[g.value]},[r.raw[g.value]])])])}return{renderItem:N}}function xe(t,l,i,R,y,d,c,n,h,A){const I=e.ref(t.multiSelect),g=e.ref(t.disableField),F=e.ref(t.textField),{onMouseenterItem:w,onMouseoverItem:u,onMouseoutItem:b}=d,{getKey:x,listViewItemClass:S,listViewItemStyle:v,onCheckItem:j,onClickItem:D,updateSelectedItems:f}=c;function M(N,r,m){return t.contentTemplate?e.createVNode(e.Fragment,null,[t.contentTemplate({item:N.raw,index:r,selectedItem:m})]):l.slots.content?e.createVNode(e.Fragment,null,[l.slots.content&&l.slots.content({item:N.raw,index:r,selectedItem:m})]):e.createVNode("div",{style:"margin: 10px 0;"},[N.raw[F.value||"name"]])}function C(N,r,m){return e.createVNode("li",{class:S(N,r),id:x(N,r),key:x(N,r),style:v(N,r),onClick:k=>D(N,r,k),onMouseenter:k=>w(k,N,r),onMouseover:k=>u(k,N,r),onMouseout:k=>b(k,N,r)},[I.value&&e.createVNode("div",{class:"f-list-select",onClick:k=>k.stopPropagation()},[e.createVNode(J.FCheckbox,{id:"list-"+x(N,r),customClass:"listview-checkbox",disabled:N[g.value],checked:N.checked,"onUpdate:checked":k=>N.checked=k,onChange:k=>{j(N,r,!k.checked),f()}},null)]),e.createVNode("div",{class:"f-list-content"},[M(N,r,m)])])}return{renderItem:C}}function Fe(t,l,i,R,y,d,c,n,h,A){const I=e.ref(t.multiSelect),g=e.ref(t.disableField),F=e.ref(t.textField),{onMouseenterItem:w,onMouseoverItem:u,onMouseoutItem:b}=d,{getKey:x,listViewItemClass:S,onCheckItem:v,onClickItem:j}=c,{dragstart:D,dragenter:f,dragover:M,dragend:C}=R,{removeItem:N}=h,r=e.computed(()=>({margin:I.value?"10px 0":"10px 0px 10px 14px"}));function m(s,o=""){const V=s.target;V.title=V.scrollWidth>V.clientWidth?o:""}function k(s){return e.createVNode("div",{style:r.value,onMouseenter:o=>m(o,s.raw[F.value||"name"])},[s.raw[F.value||"name"]])}function O(){return l.slots.itemContent?l.slots.itemContent:k}const L=O();function E(s,o,V){return e.createVNode("li",{class:S(s,o),id:x(s,o),key:x(s,o),onClick:a=>j(s,o,a),onMouseenter:a=>w(a,s,o),onMouseover:a=>u(a,s,o),onMouseout:a=>b(a,s,o),draggable:"true",onDragstart:a=>D(a,s,o),onDragenter:a=>f(a,o),onDragend:a=>C(a,s),onDragover:a=>M(a)},[I.value&&e.createVNode("div",{class:"f-list-select",onClick:a=>a.stopPropagation()},[e.createVNode(J.FCheckbox,{id:"list-"+x(s,o),customClass:"listview-checkbox",disabled:s[g.value],checked:s.checked,"onUpdate:checked":a=>s.checked=a,onChange:a=>v(s,o,!a.checked)},null)]),e.createVNode("div",{class:"f-list-content"},[L(s)]),t.allowDelete&&e.createVNode("div",{class:"f-list-remove",onClick:a=>{a.stopPropagation(),N(o)}},[e.createVNode("div",{class:"f-list-remove-icon"},[e.createVNode("i",{class:"f-icon f-icon-remove_face"},null)])]),e.createVNode("div",{class:"f-list-handle"},[e.createVNode("div",null,[e.createVNode("i",{class:"f-icon f-icon-drag-vertical"},null)])])])}return{renderItem:E}}function Me(t,l,i,R,y,d,c,n,h,A){var x;const I=e.ref(((x=t.group)==null?void 0:x.groupFields)||[]),{collpaseGroupIconClass:g}=y,{toggleGroupRow:F}=A;function w(S,v){S.stopPropagation(),v.collapse=!v.collapse,i.value=F(v.collapse?"collapse":"expand",v,i.value)}function u(S,v,j){return l.slots.group?e.createVNode(e.Fragment,null,[l.slots.content&&l.slots.group({item:S.raw,index:v,selectedItem:j})]):e.createVNode("div",{class:"f-navlookup-recentHeader",onClick:D=>w(D,S)},[e.createVNode("div",{class:"fv-grid-group-row-icon"},[e.createVNode("span",{class:g(S)},null)]),e.createVNode("div",{class:"f-navlookup-recommandLabel"},[S.raw[I.value[S.layer]]])])}function b(S,v,j){return S.layer>-1&&u(S,v,j)}return{renderItem:b}}function Ae(t,l,i,R){const{dataView:y}=i,{updateSelectedItems:d}=R;function c(n){if(n>-1&&n<y.value.length){if(t!=null&&t.checkBeforeRemoveItem&&!t.checkBeforeRemoveItem(y.value[n]))return;const h=y.value.splice(n,1);d(),l.emit("removeItem",h[0])}}return{removeItem:c}}function Re(t,l,i,R,y,d,c,n,h,A){const I=e.ref(t.view),g=e.ref(t.view==="CardView"),F=e.ref({}),w=Ae(t,l,R,h),u=e.computed(()=>({"f-list-view-group":!0,"f-list-view-group-multiselect":t.multiSelect,"d-flex":g.value,"flex-wrap":g.value})),b=e.computed(()=>!!i.value&&i.value.length>0),x=e.computed(()=>i.value.length===0);e.computed(()=>x.value&&!l.slots.empty);function S(){return I.value==="SingleView"?Se:I.value==="DraggableView"?Fe:(I.value==="ContentView"||I.value==="CardView")&&(t.contentTemplate||l.slots.content)?xe:Se}const v=S(),{renderItem:j}=v(t,l,i,A,y,d,h,c,w,n),{renderItem:D}=Me(t,l,i,A,y,d,h,c,w,n),f=[j,D];function M(){return i.value.filter(r=>r.visible!==!1).map((r,m)=>f[r.type](r,m,F))}function C(){return e.createVNode("div",{class:"f-list-view-emptydata",style:"margin: 0 auto;"},[e.createVNode("p",{class:"f-empty-title"},[t.emptyTemplate?t.emptyTemplate():l.slots.empty?l.slots.empty():Y.LocaleService.getLocaleValue("listView.emptyMessage")])])}function N(){return e.createVNode("ul",{class:u.value,style:"list-style: none;"},[b.value&&M(),x.value&&C()])}return{renderListArea:N}}function Oe(t,l,i,R,y){const{showSelectAll:d,selectAll:c,unSelectAll:n,selectAllStatus:h,indeterminateStatus:A}=R;function I(w){w?c():n()}const g=e.computed(()=>"f-list-view-group-item f-combo-list-item f-un-select");function F(){return e.createVNode("div",{class:"f-list-view-header"},[d.value&&y.dataView.value.length>0&&e.createVNode("ul",{class:"f-list-view-group f-list-view-group-multiselect",style:"list-style: none;"},[e.createVNode("li",{class:g.value},[e.createVNode("div",{class:"f-list-select"},[e.createVNode(J,{customClass:"listview-checkbox float-left",modelValue:h.value,indeterminate:A.value,"onUpdate:modelValue":w=>I(w)},null)])])]),l.slots.header&&l.slots.header()])}return{renderHeader:F}}function ye(t,l,i,R,y){const d=e.ref(t.headerClass),c=e.ref(t.placeholder),n=e.ref(""),h=e.computed(()=>!n.value),A=e.computed(()=>!!n.value),{showSelectAll:I,selectAll:g,unSelectAll:F,selectAllStatus:w,indeterminateStatus:u}=R,b=e.computed(()=>"f-list-view-group-item f-combo-list-item f-un-select");function x(f){n.value=""}function S(f){f?g():F()}e.watch(n,f=>{t.enableHighlightSearch&&i.search(f),l.emit("afterSearch",f)});const v=e.computed(()=>{const f={"form-group":!0,"farris-form-group":!0};return d.value&&d.value.split(" ").reduce((C,N)=>(C[N]=!0,C),f),f});function j(f){}function D(){return e.createVNode("div",{class:"f-list-view-header",onClick:e.withModifiers(()=>j,["prevent","stop"])},[I.value&&y.dataView.value.length>0&&e.createVNode("ul",{class:"f-list-view-group f-list-view-group-multiselect",style:"list-style: none;"},[e.createVNode("li",{class:b.value},[e.createVNode("div",{class:"f-list-select"},[e.createVNode(J,{customClass:"listview-checkbox float-left",modelValue:w.value,indeterminate:u.value,"onUpdate:modelValue":f=>S(f)},null)])])]),e.createVNode("div",{class:v.value},[e.createVNode("div",{class:"farris-input-wrap"},[e.createVNode("div",{class:"f-cmp-inputgroup"},[e.createVNode("div",{class:"input-group f-state-editable"},[e.withDirectives(e.createVNode("input",{class:"form-control f-utils-fill text-left","onUpdate:modelValue":f=>n.value=f,name:"input-group-value",type:"text",placeholder:c.value,autocomplete:"off"},null),[[e.vModelText,n.value]]),e.createVNode("div",{class:"input-group-append"},[A.value&&e.createVNode("span",{class:"input-group-text input-group-clear",onClick:f=>x()},[e.createVNode("i",{class:"f-icon f-icon-close-circle"},null)]),h.value&&e.createVNode("span",{class:"input-group-text"},[e.createVNode("span",{class:"f-icon f-icon-search"},null)])])])])])])])}return{renderHeader:D}}function De(){const t=e.ref(""),l=e.ref(-1),i=e.ref(""),R=e.ref(-1),y=e.ref(!1);function d(g,F,w){R.value=w}function c(g,F,w){y.value||(R.value=w)}function n(g,F,w){R.value=-1}function h(){y.value=!0}function A(){y.value=!1}function I(){l.value=-1,t.value=""}return{activeIndex:l,focusedItemId:i,hoverIndex:R,clearActiveItem:I,onMouseenterItem:d,onMouseoverItem:c,onMouseoutItem:n,resumeHover:A,suspendHover:h}}function je(t,l,i,R,y){const d=e.ref(t.idField),{dataView:c}=i,n=e.ref(-1),h=e.ref(!1),{activeIndex:A,focusedItemId:I,hoverIndex:g,resumeHover:F,suspendHover:w}=R;let u,b=0,x=0,S=null,v=null;const j=10,D=50;function f(s){if(!s)return null;const{overflowY:o}=getComputedStyle(s);return o==="auto"||o==="scroll"?s:f(s.parentElement)}function M(s,o){v&&clearInterval(v),v=window.setInterval(()=>{o==="up"?s.scrollTop-=j:s.scrollTop+=j},16)}function C(){v&&(clearInterval(v),v=null)}function N(s){const o=s.target;if(S||(S=f(o)),!S){C();return}const V=S.getBoundingClientRect(),a=s.clientY,z=a-V.top,q=V.bottom-a;z<D&&S.scrollTop>0?M(S,"up"):q<D&&S.scrollTop<S.scrollHeight-S.clientHeight?M(S,"down"):C()}function r(s,o){const V=s-b,a=o-x;u.style.left=parseInt(u.style.left)+V+"px",u.style.top=parseInt(u.style.top)+a+"px",b=s,x=o}function m(s){const{left:o,top:V}=s.getBoundingClientRect(),a=s.cloneNode(!0);return a.className=a.className+" f-listview-drag-moving",a.style.cssText=`
position:absolute;
left:${o}px;
top:${document.documentElement.scrollTop?V+document.documentElement.scrollTop:V}px;
z-index: 999999;
pointer-events: none;
border-radius: 10px;
margin: 4px 2px;
display: flex;
align-items: center;
float: none;
text-align: initial;
width:${getComputedStyle(s).width};
height:${getComputedStyle(s).height};
`,a.children[0].style.cssText="padding: 0 0 0 14px",a.children[0].children[0].style.cssText=`
margin: 10px 0px 10px 14px;
overflow: hidden;text-overflow: ellipsis;white-space: nowrap;
`,a.children[1].style.cssText="flex:1 1 auto; width:100%",a.children[2].style.cssText="padding: 0 14px 0 0",a.children[2].children[0].style.cssText="display: initial",document.body.appendChild(a),a}function k(s,o,V){if(s.stopPropagation(),w(),o){if(u=m(s.target),s.dataTransfer){const a=new Image;a.src="",s.dataTransfer.setDragImage(a,0,0)}b=s.pageX,x=s.pageY,setTimeout(()=>{n.value=V,h.value=!0,o.moving=!0})}}function O(s,o){if(s.preventDefault(),n.value!==o&&n.value!==-1){const V=c.value[n.value],a=y.value[n.value];V&&a&&(c.value.splice(n.value,1),c.value.splice(o,0,V),y.value.splice(n.value,1),y.value.splice(o,0,a),y.value.forEach((z,q)=>{z.index=q,z.raw.__fv_index__=q}),n.value=o,r(s.pageX,s.pageY))}}function L(s){s.preventDefault(),s.dataTransfer&&(s.dataTransfer.dropEffect="move"),r(s.pageX,s.pageY),N(s)}function E(s,o){var a,z;C(),S=null,o&&(o.moving=!1,u&&(document.body.removeChild(u),u=null)),c.value.forEach((q,$)=>{q.__fv_index__=$}),y.value.forEach((q,$)=>{q.index=$,q.raw&&(q.raw.__fv_index__=$)}),h.value=!1,F();const V=((a=o.raw)==null?void 0:a.__fv_index__)??0;g.value=V,A.value=V,I.value=(z=o.raw)==null?void 0:z[d.value],l.emit("change",c.value),l.emit("activeChange",[o.raw])}return{dragstart:k,dragenter:O,dragover:L,dragend:E,isDragging:h}}function Le(t,l,i,R,y,d){var E,s;const c=e.ref(t.idField),n=e.ref(t.disableField),h=e.ref(t.draggable);e.ref(t.itemClass);const A=e.ref(((E=t.selection)==null?void 0:E.multiSelect)??!1),I=e.ref(((s=t.selection)==null?void 0:s.multiSelectMode)||"DependOnCheck"),{isDragging:g}=R,{activeIndex:F,focusedItemId:w,hoverIndex:u}=y,{clearSelection:b,getSelectedItems:x,toggleSelectItem:S,currentSelectedDataId:v,multiSelectOnlyOnCheck:j}=d,D=e.ref(x()),f=o=>D.value.length===0?!1:D.value.some(V=>{let a="";return V.data?a=V.data[c.value]:a=V[c.value],a===o});function M(){D.value=x()}function C(o,V){return o.raw[c.value]!=null?o.raw[c.value]+"_"+V:""}function N(o,V){const a={"f-list-view-group-item":!0,"f-list-view-draggable-item":h.value,"f-un-click":!o.checked,"f-un-select":!!o.raw[n.value],"f-listview-active":A.value&&f(C(o,V))&&t.showActiveWhenMultiSelect||!A.value&&o.raw[c.value]===v.value||A.value&&!t.showActiveWhenMultiSelect&&o.raw[c.value]===v.value,"f-listview-hover":!g.value&&V===u.value,moving:!!o.moving};if(typeof t.itemClass=="string")return K.getCustomClass(a,t.itemClass);if(typeof t.itemClass=="function"){const z=t.itemClass(o);return K.getCustomClass(a,z)}return a}function r(o,V){const a={};if(typeof t.itemStyle=="string")return K.getCustomStyle(a,t.itemStyle);if(typeof t.itemStyle=="function"){const z=t.itemStyle(o);return K.getCustomStyle(a,z)}return a}const m=e.computed(()=>!A.value);function k(o,V,a){o.checked=a,!o.raw[n.value]&&(m.value&&(w.value=o.raw[c.value]),S(o))}const O=e.computed(()=>!A.value||A.value&&I.value==="OnCheckAndClick");function L(o,V,a){if(o.raw[n.value]){a==null||a.preventDefault(),a==null||a.stopPropagation();return}v.value=o.raw[c.value],w.value=o.raw[c.value],F.value=V,O.value&&(S(o),M()),l.emit("clickItem",{data:D.value,index:V,dataItem:o.raw}),l.emit("activeChange",D.value)}return{getKey:C,selectedItems:D,listViewItemClass:N,listViewItemStyle:r,updateSelectedItems:M,onCheckItem:k,onClickItem:L}}const te=e.defineComponent({name:"FListView",props:ke,emits:["afterSearch","checkValuesChange","clickItem","selectItem","unSelectItem","selectionChange","removeItem","change","activeChange","pageIndexChanged","pageSizeChanged","changed","selectionUpdate"],setup(t,l){var Ce;const i=e.ref(!1),R=e.ref(),y=e.ref(!0),d=e.ref(((Ce=t.rowOption)==null?void 0:Ce.rowHeight)||28),c=e.ref(!1),n=e.ref([]),h=0,A=e.ref(t.columns),I=U.useFilter(t,l),g=U.useIdentify(t),F=U.useHierarchy(t),w=U.useGroupData(t,g),u=U.useDataView(t,new Map,I,F,g),b=U.useSelection(t,u,g,n,l),x=Te(t,R),S=U.usePagination(t,u),v=e.computed(()=>u.dataView.value.length),j=U.useRow(t,l,b,g),D=U.useEdit(t,l,g,j,n),f=U.useVisualDataBound(t,u,d),M=U.useVisualDataCell(t,D,f),C=U.useVisualDataRow(t,u,D,F,g,f,M,d),N=U.useVisualGroupRow(t,g,M,C),r=U.useVisualSummaryRow(t,g,M,C),m=U.useVisualData(t,A,u,v,h,C,N,r),{getVisualData:k}=m;n.value=k(0,v.value+h-1);const O=e.computed(()=>{const H={"f-list-view":!0,"f-list-view-multiple":t.multiSelect};return t.size!=="default"&&(H[`${t.size}-item`]=!0),K.getCustomClass(H,t.customClass)}),L=e.computed(()=>!!l.slots.footer||y.value);function E(){return t.header==="SearchBar"?ye:t.header==="ContentHeader"?Oe:ye}const s=E(),{renderHeader:o}=s(t,l,x,b,u),V=De(),a=je(t,l,u,V,n),z=Le(t,l,n,a,V,b),{renderListArea:q}=Re(t,l,n,u,w,V,b,m,z,a);function $(H){x.search(H)}function ce(H){H&&(u.load(H),n.value=k(0,v.value+h-1))}function ie(){b.clearSelection(),V.clearActiveItem()}function re(){return z.selectedItems.value}function ue(){return z.selectedItems.value.map(H=>H[g.idField.value])}function le(H){b.selectedValues.value=H,z.updateSelectedItems()}function ne(){return b.currentSelectedDataId.value}function ae(H){j.activeRowById(H)}function de(H){const W=g.idField.value,Z=n.value.find(me=>me.raw[W]===H),oe=n.value.findIndex(me=>me.raw[W]===H);Z&&oe>-1&&z.onClickItem(Z,oe)}function p(H){const W=g.idField.value,Z=n.value.find(oe=>oe.raw[W]===H);Z&&j.changeRow(Z)}function T(H){S.updatePagination(H)}function B(H){return n.value.filter(W=>H.includes(W.raw[t.idField]))}l.expose({search:$,updateDataSource:ce,clearSelection:ie,getSelections:re,updateSelectionByIds:le,getSelectionIds:ue,activeRowById:ae,getCurrentRowId:ne,clickRowItemById:de,updatePagination:T,getVisibleDataByIds:B,selectRowById:p}),e.watch(()=>t.selectionValues,(H,W)=>{H!==W&&le(H)});const _=U.useSidebar(t,b),{sidebarWidth:G,showSidebarCheckBox:X}=_,fe=U.useColumn(t,l),{applyColumnSorter:Qe,columnContext:Pe,updateColumnRenderContext:Ze}=fe;return U.useVirtualScroll(t,u,n,Pe,m,v,h,G,d,i,D),()=>e.createVNode("div",{class:O.value},[o(),e.createVNode("div",{ref:R,class:"f-list-view-content",onMouseover:()=>{c.value||(c.value=!0)},onMouseleave:()=>{c.value&&(c.value=!1)}},[q()]),L.value&&e.createVNode("div",{class:"f-list-view-footer"},[t.footerTemplate?t.footerTemplate():l.slots.footer&&l.slots.footer()])])}});function Be(t,l,i,R,y){const d=e.ref([]),c=e.ref([...l]),n=e.ref(""),h=e.ref(""),A=e.computed(()=>{const f=new Set(c.value.map(M=>M[i]));return t.filter(M=>!f.has(M[i]))}),I=e.computed(()=>c.value);function g(f,M,C){if(!M||!M.trim())return f;const N=M.toLowerCase().trim();return f.filter(r=>{const m=r[C];return typeof m=="string"&&m.toLowerCase().includes(N)})}const F=e.computed(()=>g(A.value,n.value,"name")),w=e.computed(()=>g(I.value,h.value,"name"));function u(){R.emit("update:selections",[...c.value])}function b(){const f=new Set(d.value);if(f.size===0)return;const M=A.value.filter(C=>f.has(C[i]));if(M.length===0){d.value=[];return}c.value=[...c.value,...M.map(C=>({...C}))],d.value=[],u()}function x(){c.value=t.map(f=>({...f})),d.value=[],u()}function S(){const f=new Set(d.value);if(f.size===0)return;const M=c.value.filter(C=>f.has(C[i]));if(y){for(const C of M)if(!y(C))return}c.value=c.value.filter(C=>!f.has(C[i])),d.value=[],u()}function v(){if(y){for(const f of c.value)if(!y(f))return}c.value=[],d.value=[],u()}function j(){d.value=F.value.map(f=>f[i])}function D(){d.value=[]}return{selectedIds:d,selections:c,sourceList:A,targetList:I,filteredSource:F,filteredTarget:w,sourceSearchText:n,targetSearchText:h,moveSelected:b,moveAll:x,removeSelected:S,removeAll:v,selectAllVisible:j,deselectAll:D,filterByKeyword:g}}const Q=e.defineComponent({name:"FTransfer",props:ee,emits:["change","activeChange","selectItem","unSelectItem","removeItem","update:selections"],setup(t,l){const i=e.ref(t.identifyField),R=e.ref(t.displayType),y=e.ref(!1),d=e.ref(t.dataSource),c=e.ref(t.textField),n=e.ref(t.selections||[]),h=e.computed(()=>n.value.map(p=>p[i.value])),A=new Map,I=e.ref(),g=e.ref(),F=e.ref();let w;const{selectedIds:u,filteredSource:b,filteredTarget:x,sourceList:S,targetList:v,sourceSearchText:j,targetSearchText:D,moveSelected:f,moveAll:M,removeSelected:C,removeAll:N,selectAllVisible:r}=Be(d.value,n.value,i.value,l,t.checkBeforeRemoveItem||void 0);function m(){const p=new Map,T=t.selectionValues||[];T.length&&T.reduce((_,G)=>(_.set(G,!0),_),p);const B=t.selections||[];B.length&&(p.clear(),B.reduce((_,G)=>(_.set(G[i.value],!0),_),p)),n.value.length||(n.value=d.value.filter(_=>p.has(_[i.value])).map(_=>Object.assign({},_))),d.value.forEach(_=>{const G=_[i.value],X=p.has(G);_.checked=X,X&&A.set(G,_)})}e.watch(()=>t.selections,p=>{t.preset!=="modern"&&(n.value=p||[],m())}),m(),e.watch(()=>t.dataSource,p=>{var T;d.value=p,t.preset==="classic"&&(m(),(T=F.value)==null||T.updateDataSource(p))});const k=e.computed(()=>R.value==="List"),O=e.computed(()=>R.value==="Tree");function L(p){const T=ve.cloneDeep(n.value);n.value=p.map(B=>Object.assign({},B)),l.emit("change",n.value,T)}function E(p){l.emit("selectItem",p)}function s(p){l.emit("unSelectItem",p)}function o(){return e.createVNode(te,{class:"f-utils-fill",data:d.value,multiSelect:!0,itemClass:"f-transfer-list-item",textField:c.value,selection:{enableSelectRow:!0,multiSelect:!0,multiSelectMode:"OnCheckAndClick",showCheckbox:!0,showSelectAll:!1,showSelection:!0},draggable:!1,header:"Search",headerClass:"transfer-search-box",selectionValues:h.value,onSelectionUpdate:L},null)}function V(){return e.createVNode(ge,{ref:F,data:d.value,columns:t.columns,virtualized:t.virtualized,rowOption:t.rowOption,textField:c.value,selection:{enableSelectRow:!0,multiSelect:!0,multiSelectMode:"OnCheckAndClick",showCheckbox:!0,showSelectAll:!1,showSelection:!0},selectionValues:h.value,onSelectionUpdate:L,onSelectItem:E,onUnSelectItem:s},null)}function a(){return e.createVNode("div",{class:"f-utils-fill option-pane d-flex flex-column"},[e.createVNode("div",{class:"f-utils-flex-column option-pane-content f-utils-fill"},[e.createVNode("div",{class:"container columns-box d-flex f-utils-fill"},[k.value&&o(),O.value&&V()])])])}function z(p){const T=p[i.value];if(T!==null||T!==void 0){n.value=n.value.filter(_=>_[i.value]!==T);const B=A.get(T);B&&(B.checked=!1,A.delete(T)),l.emit("change",n.value),l.emit("removeItem",p)}}e.watch(n,p=>{var _,G,X;if(t.preset==="modern")return;(_=I.value)==null||_.updateDataSource(ve.cloneDeep(p));const T=w==null?void 0:w[i.value],B=p.find(fe=>T===fe[i.value]);B?(G=I.value)==null||G.activeRowById(B[i.value]):(w=null,(X=I.value)==null||X.activeRowById(""))});function q(p){const T=new Map;n.value.reduce((B,_)=>(B.set(_[i.value],_),B),T),n.value=p.map(B=>T.get(B[i.value])),l.emit("change",n.value)}function $(p){w=p[0],l.emit("activeChange",p)}function ce(){var p;return e.createVNode(te,{ref:I,columns:t.columns,style:"flex:1",data:n.value,draggable:!0,view:"DraggableView","keep-order":!0,textField:c.value,itemClass:t.selectedItemClass,onChange:q,onRemoveItem:z,onActiveChange:$,checkBeforeRemoveItem:t.checkBeforeRemoveItem},{itemContent:(p=l.slots)!=null&&p.text?T=>{var B;return((B=l.slots)==null?void 0:B.text)&&l.slots.text(T)}:null})}function ie(){return e.createVNode("div",{class:"f-utils-fill selection-pane d-flex flex-column"},[e.createVNode("div",{class:"f-utils-flex-column selection-pane-content f-utils-fill"},[e.createVNode("div",{class:"selection-pane-title d-flex align-items-center p-0 pl-2",style:"height: 36px;"},[e.createVNode("span",{class:"selection-title"},[Y.LocaleService.getLocaleValue("transfer.selectedStart")]),e.createVNode("span",{class:"selection-count"},[n.value&&n.value.length]),e.createVNode("span",{class:"selection-item-title"},[Y.LocaleService.getLocaleValue("transfer.selectedEnd")])]),e.createVNode("div",{class:"container columns-box f-utils-fill d-flex"},[ce()])])])}function re(){if(l.slots.source)return l.slots.source({data:S.value,columns:t.columns,searchText:j.value,selectedIds:u.value,onSelect:T=>{u.value=T},onSelectAll:r});const p=R.value==="Tree";return e.createVNode("div",{class:"f-utils-fill option-pane d-flex flex-column"},[t.enableSearch&&e.createVNode("div",{class:"transfer-search-box p-2"},[e.createVNode("input",{type:"text",class:"form-control",placeholder:Y.LocaleService.getLocaleValue("common.search")||"搜索...",value:j.value,onInput:T=>j.value=T.target.value},null)]),e.createVNode("div",{class:"f-utils-flex-column f-utils-fill"},[p?e.createVNode(ge,{ref:F,data:b.value,columns:t.columns,virtualized:t.virtualized,rowOption:t.rowOption,textField:c.value,selection:{enableSelectRow:!0,multiSelect:!0,multiSelectMode:"OnCheckAndClick",showCheckbox:!0,showSelectAll:!1,showSelection:!0},selectionValues:u.value,onSelectionUpdate:T=>u.value=T.map(B=>B[i.value]),onSelectItem:E,onUnSelectItem:s},null):e.createVNode(pe,{dataSource:b.value,columns:t.columns,showSelection:!0,multiSelect:!0,selectionValues:u.value,onSelectionUpdate:T=>u.value=T.map(B=>B[i.value]),onSelectItem:E,onUnSelectItem:s},null)])])}function ue(){return l.slots.target?l.slots.target({data:v.value,columns:t.columns,searchText:D.value,selectedIds:u.value,onRemove:p=>{u.value=[p],C()}}):e.createVNode("div",{class:"f-utils-fill selection-pane d-flex flex-column"},[t.enableSearch&&e.createVNode("div",{class:"transfer-search-box p-2"},[e.createVNode("input",{type:"text",class:"form-control",placeholder:Y.LocaleService.getLocaleValue("common.search")||"搜索...",value:D.value,onInput:p=>D.value=p.target.value},null)]),e.createVNode("div",{class:"selection-pane-title d-flex align-items-center p-0 pl-2",style:"height: 36px;"},[e.createVNode("span",{class:"selection-title"},[Y.LocaleService.getLocaleValue("transfer.selectedStart")]),e.createVNode("span",{class:"selection-count"},[v.value&&v.value.length]),e.createVNode("span",{class:"selection-item-title"},[Y.LocaleService.getLocaleValue("transfer.selectedEnd")])]),e.createVNode("div",{class:"f-utils-flex-column f-utils-fill"},[e.createVNode(pe,{dataSource:x.value,columns:t.columns,selectionValues:u.value,multiSelect:!0,onSelectionUpdate:p=>u.value=p.map(T=>T[i.value]),commandColumn:[{type:"remove",title:"",width:40,onClick:p=>{u.value=[p[i.value]],C()}}]},null)])])}function le(){if(l.slots.operations)return l.slots.operations({sourceCount:S.value.length,targetCount:v.value.length,selectedCount:u.value.length,onMoveSelected:f,onMoveAll:M,onRemoveSelected:C,onRemoveAll:N});const p=S.value.length===0,T=v.value.length===0,B=u.value.length===0;return e.createVNode("div",{class:"f-multi-select-list-btns"},[e.createVNode("button",{title:"移动所有到右侧",class:"btn btn-secondary f-btn-icon",type:"button",disabled:p,onClick:M},[e.createVNode("span",{class:"f-icon f-icon-arrow-seek-right"},null)]),e.createVNode("button",{title:"移动到右侧",class:"btn btn-secondary f-btn-icon right-all",type:"button",disabled:p||B,onClick:f},[e.createVNode("span",{class:"f-icon f-icon-arrow-chevron-right"},null)]),e.createVNode("button",{title:"移动到左侧",class:"btn btn-secondary f-btn-icon",type:"button",disabled:T||B,onClick:C},[e.createVNode("span",{class:"f-icon f-icon-arrow-chevron-left"},null)]),e.createVNode("button",{title:"移动所有到左侧",class:"btn btn-secondary f-btn-icon",type:"button",disabled:T,onClick:N},[e.createVNode("span",{class:"f-icon f-icon-arrow-seek-left"},null)])])}const ne=e.computed(()=>({"f-transfer":!0,row:!0,"f-utils-fill":y.value})),ae=e.computed(()=>({height:y.value?"100%":"480px"}));function de(){return e.createVNode("div",{ref:g,class:ne.value,style:ae.value},[re(),le(),ue()])}return e.onMounted(()=>{g.value&&g.value.parentElement&&getComputedStyle(g.value.parentElement).display==="flex"&&(y.value=!0)}),l.expose({selectRowById:p=>{var T;(T=I.value)==null||T.clickRowItemById(p)}}),()=>t.preset==="modern"?de():e.createVNode("div",{ref:g,class:ne.value,style:ae.value},[l.slots.children?l.slots.children({selections:n.value}):a(),ie()])}}),He=e.defineComponent({name:"FTransferDesign",props:ee,emits:["change"],setup(t,l){const i=e.ref(t.identifyField),R=e.ref("已选:"),y=e.ref("项数据"),d=e.ref(t.displayType),c=e.ref(!1),n=e.ref(t.dataSource),h=e.ref(t.selections||[]),A=e.computed(()=>h.value.map(m=>m[i.value])),I=new Map;function g(){const m=new Map,k=t.selectionValues||[];k.length&&k.reduce((L,E)=>(L.set(E,!0),L),m);const O=t.selections||[];O.length&&(m.clear(),O.reduce((L,E)=>(L.set(E[i.value],!0),L),m)),h.value.length||(h.value=n.value.filter(L=>m.has(L[i.value])).map(L=>Object.assign({},L))),n.value.forEach(L=>{const E=L[i.value],s=m.has(E);L.checked=s,s&&I.set(E,L)})}g();const F=e.computed(()=>d.value==="List"),w=e.computed(()=>d.value==="Tree");function u(m){h.value=m.map(k=>Object.assign({},k)),l.emit("change",h.value)}function b(){return e.createVNode(te,{class:"f-utils-fill",data:n.value,"multi-select":!0,draggable:!1,header:"Search",headerClass:"transfer-search-box","selection-values":A.value,onSelectionChange:u},{default:()=>[e.createTextVNode(" ")]})}function x(){return e.createVNode(e.Fragment,null,null)}function S(){return e.createVNode("div",{class:"f-utils-fill option-pane d-flex flex-column"},[e.createVNode("div",{class:"f-utils-flex-column option-pane-content f-utils-fill"},[e.createVNode("div",{class:"container columns-box d-flex f-utils-fill"},[F.value&&b(),w.value&&x()])])])}function v(m){const k=m[i.value];if(k!==null||k!==void 0){h.value=h.value.filter(L=>L[i.value]!==k);const O=I.get(k);O&&(O.checked=!1,I.delete(k)),l.emit("change",h.value)}}function j(m){const k=new Map;h.value.reduce((O,L)=>(O.set(L[i.value],L),O),k),h.value=m.map(O=>k.get(O[i.value])),l.emit("change",h.value)}function D(){return e.createVNode(te,{style:"flex:1",data:h.value,draggable:!0,view:"DraggableView","keep-order":!0,onChange:j,onRemoveItem:v},{default:()=>[e.createTextVNode(" ")]})}function f(){return e.createVNode("div",{class:"f-utils-fill selection-pane d-flex flex-column"},[e.createVNode("div",{class:"f-utils-flex-column selection-pane-content f-utils-fill"},[e.createVNode("div",{class:"selection-pane-title"},[e.createVNode("span",{class:"selection-title"},[R.value]),e.createVNode("span",{class:"selection-count"},[h.value&&h.value.length]),e.createVNode("span",{class:"selection-item-title"},[y.value])]),e.createVNode("div",{class:"container columns-box f-utils-fill d-flex"},[D()])])])}const M=e.computed(()=>({transfer:!0,row:!0,"f-utils-fill":c.value})),C=e.ref(),N=e.inject("design-item-context"),r=we.useDesignerComponent(C,N);return e.onMounted(()=>{C.value.componentInstance=r}),l.expose(r.value),()=>e.createVNode("div",{ref:C,class:M.value,style:"height:480px"},[S(),f()])}});Q.register=(t,l,i)=>{t.transfer=Q,l.transfer=se},Q.registerDesigner=(t,l,i)=>{t.transfer=He,l.transfer=se};const _e=K.withInstall(Q);P.FTransfer=Q,P.default=_e,P.propsResolver=se,P.transferProps=ee,Object.defineProperties(P,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});