@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
19 lines (18 loc) • 27.9 kB
JavaScript
(function(L,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("../tree-view/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","../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):(L=typeof globalThis<"u"?globalThis:L||self,e(L.transfer={},L.Vue,L.FTreeView,L.locale,L.dynamicResolver,L.common,L.dataView,L.checkbox,L.LodashES,L.designerCanvas))})(this,function(L,e,ae,K,Z,G,H,X,ee,se){"use strict";const ie=new Map([["appearance",Z.resolveAppearance]]);function ce(t,o,u){return o}const re={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:[]}}}}}},ue={$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"]},U={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"}},J=Z.createPropsResolver(U,ue,ie,ce,re),de={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 fe(t,o){function u(m){const r=[];let s=m.nextNode();for(;s;)r.push(s),s=m.nextNode();return r}function T(m,r){const s=document.createTreeWalker(m,NodeFilter.SHOW_TEXT);return u(s).map(g=>({textNode:g,text:(g.textContent||"").toLocaleLowerCase()})).map(({textNode:g,text:y})=>{const b=[];let h=0;for(;h<y.length;){const I=y.indexOf(r,h);if(I===-1)break;b.push(I),h=I+r.length}return b.map(I=>{const F=new Range;return F.setStart(g,I),F.setEnd(g,I+r.length),F})}).flat()}function w(m){if(!CSS.highlights||(CSS.highlights.clear(),!m||!o))return;const r=T(o.value,m.toLocaleLowerCase()),s=new Highlight(...r);CSS.highlights.set("search-result",s)}return{search:w}}function te(t,o,u,T,w,m,r,s,p,x){const V=e.ref(t.size),g=e.ref(t.textField),y=e.ref(t.titleField),b=e.ref(t.disableField),h=e.computed(()=>{var i,f;return((i=t.selection)==null?void 0:i.multiSelect)&&((f=t.selection)==null?void 0:f.showCheckbox)}),{onMouseenterItem:I,onMouseoverItem:F,onMouseoutItem:v}=m,{getKey:S,listViewItemClass:j,listViewItemStyle:M,onCheckItem:A,onClickItem:B}=r,O=e.computed(()=>{const i={"text-overflow":"ellipsis",overflow:"hidden","white-space":"nowrap"};return t.itemClass?i:{margin:V.value==="small"?"0.25rem 0":"8px 0",...i}});function k(i,f,C){return i.checked=s.findIndexInSelectedItems(i)>-1,e.createVNode("li",{class:j(i,f),id:S(i,f),key:S(i,f),style:M(i,f),onClick:N=>B(i,f,N),onMouseenter:N=>I(N,i,f),onMouseover:N=>F(N,i,f),onMouseout:N=>v(N,i,f)},[h.value&&e.createVNode("div",{class:"f-list-select",onClick:N=>N.stopPropagation()},[e.createVNode(X.FCheckbox,{id:"list-"+S(i,f),customClass:"listview-checkbox float-left",disabled:i[b.value],checked:i.checked,"onUpdate:checked":N=>i.checked=N,onChange:N=>{A(i,f,!N.checked)}},null)]),e.createVNode("div",{class:"f-list-content"},[e.createVNode("div",{class:t.itemContentClass,style:O.value,title:i.raw[y.value]||i.raw[g.value]},[i.raw[g.value]])])])}return{renderItem:k}}function me(t,o,u,T,w,m,r,s,p,x){const V=e.ref(t.multiSelect),g=e.ref(t.disableField),y=e.ref(t.textField),{onMouseenterItem:b,onMouseoverItem:h,onMouseoutItem:I}=m,{getKey:F,listViewItemClass:v,listViewItemStyle:S,onCheckItem:j,onClickItem:M,updateSelectedItems:A}=r;function B(k,i,f){return t.contentTemplate?e.createVNode(e.Fragment,null,[t.contentTemplate({item:k.raw,index:i,selectedItem:f})]):o.slots.content?e.createVNode(e.Fragment,null,[o.slots.content&&o.slots.content({item:k.raw,index:i,selectedItem:f})]):e.createVNode("div",{style:"margin: 10px 0;"},[k.raw[y.value||"name"]])}function O(k,i,f){return e.createVNode("li",{class:v(k,i),id:F(k,i),key:F(k,i),style:S(k,i),onClick:C=>M(k,i,C),onMouseenter:C=>b(C,k,i),onMouseover:C=>h(C,k,i),onMouseout:C=>I(C,k,i)},[V.value&&e.createVNode("div",{class:"f-list-select",onClick:C=>C.stopPropagation()},[e.createVNode(X.FCheckbox,{id:"list-"+F(k,i),customClass:"listview-checkbox",disabled:k[g.value],checked:k.checked,"onUpdate:checked":C=>k.checked=C,onChange:C=>{j(k,i,!C.checked),A()}},null)]),e.createVNode("div",{class:"f-list-content"},[B(k,i,f)])])}return{renderItem:O}}function ge(t,o,u,T,w,m,r,s,p,x){const V=e.ref(t.multiSelect),g=e.ref(t.disableField),y=e.ref(t.textField),{onMouseenterItem:b,onMouseoverItem:h,onMouseoutItem:I}=m,{getKey:F,listViewItemClass:v,onCheckItem:S,onClickItem:j}=r,{dragstart:M,dragenter:A,dragover:B,dragend:O}=T,{removeItem:k}=p,i=e.computed(()=>({margin:V.value?"10px 0":"10px 0px 10px 14px"}));function f(n,l=""){const d=n.target;d.title=d.scrollWidth>d.clientWidth?l:""}function C(n){return e.createVNode("div",{style:i.value,onMouseenter:l=>f(l,n.raw[y.value||"name"])},[n.raw[y.value||"name"]])}function N(){return o.slots.itemContent?o.slots.itemContent:C}const R=N();function a(n,l,d){return e.createVNode("li",{class:v(n,l),id:F(n,l),key:F(n,l),onClick:c=>j(n,l,c),onMouseenter:c=>b(c,n,l),onMouseover:c=>h(c,n,l),onMouseout:c=>I(c,n,l),draggable:"true",onDragstart:c=>M(c,n,l),onDragenter:c=>A(c,l),onDragend:c=>O(c,n),onDragover:c=>B(c)},[V.value&&e.createVNode("div",{class:"f-list-select",onClick:c=>c.stopPropagation()},[e.createVNode(X.FCheckbox,{id:"list-"+F(n,l),customClass:"listview-checkbox",disabled:n[g.value],checked:n.checked,"onUpdate:checked":c=>n.checked=c,onChange:c=>S(n,l,!c.checked)},null)]),e.createVNode("div",{class:"f-list-content"},[R(n)]),t.allowDelete&&e.createVNode("div",{class:"f-list-remove",onClick:c=>{c.stopPropagation(),k(l)}},[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:a}}function pe(t,o,u,T,w,m,r,s,p,x){var F;const V=e.ref(((F=t.group)==null?void 0:F.groupFields)||[]),{collpaseGroupIconClass:g}=w,{toggleGroupRow:y}=x;function b(v,S){v.stopPropagation(),S.collapse=!S.collapse,u.value=y(S.collapse?"collapse":"expand",S,u.value)}function h(v,S,j){return o.slots.group?e.createVNode(e.Fragment,null,[o.slots.content&&o.slots.group({item:v.raw,index:S,selectedItem:j})]):e.createVNode("div",{class:"f-navlookup-recentHeader",onClick:M=>b(M,v)},[e.createVNode("div",{class:"fv-grid-group-row-icon"},[e.createVNode("span",{class:g(v)},null)]),e.createVNode("div",{class:"f-navlookup-recommandLabel"},[v.raw[V.value[v.layer]]])])}function I(v,S,j){return v.layer>-1&&h(v,S,j)}return{renderItem:I}}function he(t,o,u,T){const{dataView:w}=u,{updateSelectedItems:m}=T;function r(s){if(s>-1&&s<w.value.length){if(t!=null&&t.checkBeforeRemoveItem&&!t.checkBeforeRemoveItem(w.value[s]))return;const p=w.value.splice(s,1);m(),o.emit("removeItem",p[0])}}return{removeItem:r}}function ve(t,o,u,T,w,m,r,s,p,x){const V=e.ref(t.view),g=e.ref(t.view==="CardView"),y=e.ref({}),b=he(t,o,T,p),h=e.computed(()=>({"f-list-view-group":!0,"f-list-view-group-multiselect":t.multiSelect,"d-flex":g.value,"flex-wrap":g.value})),I=e.computed(()=>!!u.value&&u.value.length>0),F=e.computed(()=>u.value.length===0);e.computed(()=>F.value&&!o.slots.empty);function v(){return V.value==="SingleView"?te:V.value==="DraggableView"?ge:(V.value==="ContentView"||V.value==="CardView")&&(t.contentTemplate||o.slots.content)?me:te}const S=v(),{renderItem:j}=S(t,o,u,x,w,m,p,r,b,s),{renderItem:M}=pe(t,o,u,x,w,m,p,r,b,s),A=[j,M];function B(){return u.value.filter(i=>i.visible!==!1).map((i,f)=>A[i.type](i,f,y))}function O(){return e.createVNode("div",{class:"f-list-view-emptydata",style:"margin: 0 auto;"},[e.createVNode("p",{class:"f-empty-title"},[t.emptyTemplate?t.emptyTemplate():o.slots.empty?o.slots.empty():K.LocaleService.getLocaleValue("listView.emptyMessage")])])}function k(){return e.createVNode("ul",{class:h.value,style:"list-style: none;"},[I.value&&B(),F.value&&O()])}return{renderListArea:k}}function ye(t,o,u){function T(){return o.slots.header&&e.createVNode("div",{class:"f-list-view-header"},[o.slots.header()])}return{renderHeader:T}}function ne(t,o,u){const T=e.ref(t.headerClass),w=e.ref(t.placeholder),m=e.ref(""),r=e.computed(()=>!m.value),s=e.computed(()=>!!m.value);function p(y){m.value=""}e.watch(m,y=>{t.enableHighlightSearch&&u.search(y),o.emit("afterSearch",y)});const x=e.computed(()=>{const y={"form-group":!0,"farris-form-group":!0};return T.value&&T.value.split(" ").reduce((h,I)=>(h[I]=!0,h),y),y});function V(y){}function g(){return e.createVNode("div",{class:"f-list-view-header",onClick:e.withModifiers(()=>V,["prevent","stop"])},[e.createVNode("div",{class:x.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":y=>m.value=y,name:"input-group-value",type:"text",placeholder:w.value,autocomplete:"off"},null),[[e.vModelText,m.value]]),e.createVNode("div",{class:"input-group-append"},[s.value&&e.createVNode("span",{class:"input-group-text input-group-clear",onClick:y=>p()},[e.createVNode("i",{class:"f-icon f-icon-close-circle"},null)]),r.value&&e.createVNode("span",{class:"input-group-text"},[e.createVNode("span",{class:"f-icon f-icon-search"},null)])])])])])])])}return{renderHeader:g}}function Ce(){const t=e.ref(""),o=e.ref(-1),u=e.ref(""),T=e.ref(-1),w=e.ref(!1);function m(g,y,b){T.value=b}function r(g,y,b){w.value||(T.value=b)}function s(g,y,b){T.value=-1}function p(){w.value=!0}function x(){w.value=!1}function V(){o.value=-1,t.value=""}return{activeIndex:o,focusedItemId:u,hoverIndex:T,clearActiveItem:V,onMouseenterItem:m,onMouseoverItem:r,onMouseoutItem:s,resumeHover:x,suspendHover:p}}function Se(t,o,u,T,w){const m=e.ref(t.idField),{dataView:r}=u,s=e.ref(-1),p=e.ref(!1),{activeIndex:x,focusedItemId:V,hoverIndex:g,resumeHover:y,suspendHover:b}=T;let h,I=0,F=0,v=null,S=null;const j=10,M=50;function A(n){if(!n)return null;const{overflowY:l}=getComputedStyle(n);return l==="auto"||l==="scroll"?n:A(n.parentElement)}function B(n,l){S&&clearInterval(S),S=window.setInterval(()=>{l==="up"?n.scrollTop-=j:n.scrollTop+=j},16)}function O(){S&&(clearInterval(S),S=null)}function k(n){const l=n.target;if(v||(v=A(l)),!v){O();return}const d=v.getBoundingClientRect(),c=n.clientY,_=c-d.top,P=d.bottom-c;_<M&&v.scrollTop>0?B(v,"up"):P<M&&v.scrollTop<v.scrollHeight-v.clientHeight?B(v,"down"):O()}function i(n,l){const d=n-I,c=l-F;h.style.left=parseInt(h.style.left)+d+"px",h.style.top=parseInt(h.style.top)+c+"px",I=n,F=l}function f(n){const{left:l,top:d}=n.getBoundingClientRect(),c=n.cloneNode(!0);return c.className=c.className+" f-listview-drag-moving",c.style.cssText=`
position:absolute;
left:${l}px;
top:${document.documentElement.scrollTop?d+document.documentElement.scrollTop:d}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(n).width};
height:${getComputedStyle(n).height};
`,c.children[0].style.cssText="padding: 0 0 0 14px",c.children[0].children[0].style.cssText=`
margin: 10px 0px 10px 14px;
overflow: hidden;text-overflow: ellipsis;white-space: nowrap;
`,c.children[1].style.cssText="flex:1 1 auto; width:100%",c.children[2].style.cssText="padding: 0 14px 0 0",c.children[2].children[0].style.cssText="display: initial",document.body.appendChild(c),c}function C(n,l,d){if(n.stopPropagation(),b(),l){if(h=f(n.target),n.dataTransfer){const c=new Image;c.src="",n.dataTransfer.setDragImage(c,0,0)}I=n.pageX,F=n.pageY,setTimeout(()=>{s.value=d,p.value=!0,l.moving=!0})}}function N(n,l){if(n.preventDefault(),s.value!==l&&s.value!==-1){const d=r.value[s.value],c=w.value[s.value];d&&c&&(r.value.splice(s.value,1),r.value.splice(l,0,d),w.value.splice(s.value,1),w.value.splice(l,0,c),w.value.forEach((_,P)=>{_.index=P,_.raw.__fv_index__=P}),s.value=l,i(n.pageX,n.pageY))}}function R(n){n.preventDefault(),n.dataTransfer&&(n.dataTransfer.dropEffect="move"),i(n.pageX,n.pageY),k(n)}function a(n,l){var c,_;O(),v=null,l&&(l.moving=!1,h&&(document.body.removeChild(h),h=null)),r.value.forEach((P,q)=>{P.__fv_index__=q}),w.value.forEach((P,q)=>{P.index=q,P.raw&&(P.raw.__fv_index__=q)}),p.value=!1,y();const d=((c=l.raw)==null?void 0:c.__fv_index__)??0;g.value=d,x.value=d,V.value=(_=l.raw)==null?void 0:_[m.value],o.emit("change",r.value),o.emit("activeChange",[l.raw])}return{dragstart:C,dragenter:N,dragover:R,dragend:a,isDragging:p}}function we(t,o,u,T,w,m){const r=e.ref(t.idField),s=e.ref(t.disableField),p=e.ref(t.draggable);e.ref(t.itemClass);const x=e.ref(t.selection.multiSelect??!1),V=e.ref(t.selection.multiSelectMode),{isDragging:g}=T,{activeIndex:y,focusedItemId:b,hoverIndex:h}=w,{clearSelection:I,getSelectedItems:F,toggleSelectItem:v,currentSelectedDataId:S,multiSelectOnlyOnCheck:j}=m,M=e.ref(F()),A=a=>M.value.length===0?!1:M.value.some(n=>{let l="";return n.data?l=n.data[r.value]:l=n[r.value],l===a});function B(){M.value=F()}function O(a,n){return a.raw[r.value]!=null?a.raw[r.value]+"_"+n:""}function k(a,n){const l={"f-list-view-group-item":!0,"f-list-view-draggable-item":p.value,"f-un-click":!a.checked,"f-un-select":!!a.raw[s.value],"f-listview-active":x.value&&A(O(a,n))&&t.showActiveWhenMultiSelect||!x.value&&a.raw[r.value]===S.value||x.value&&!t.showActiveWhenMultiSelect&&a.raw[r.value]===S.value,"f-listview-hover":!g.value&&n===h.value,moving:!!a.moving};if(typeof t.itemClass=="string")return G.getCustomClass(l,t.itemClass);if(typeof t.itemClass=="function"){const d=t.itemClass(a);return G.getCustomClass(l,d)}return l}function i(a,n){const l={};if(typeof t.itemStyle=="string")return G.getCustomStyle(l,t.itemStyle);if(typeof t.itemStyle=="function"){const d=t.itemStyle(a);return G.getCustomStyle(l,d)}return l}const f=e.computed(()=>!x.value);function C(a,n,l){a.checked=l,!a.raw[s.value]&&(f.value&&(b.value=a.raw[r.value]),v(a))}const N=e.computed(()=>!x.value||x.value&&V.value==="OnCheckAndClick");function R(a,n,l){if(a.raw[s.value]){l==null||l.preventDefault(),l==null||l.stopPropagation();return}S.value=a.raw[r.value],b.value=a.raw[r.value],y.value=n,N.value&&(v(a),B()),o.emit("clickItem",{data:M.value,index:n,dataItem:a.raw}),o.emit("activeChange",M.value)}return{getKey:O,selectedItems:M,listViewItemClass:k,listViewItemStyle:i,updateSelectedItems:B,onCheckItem:C,onClickItem:R}}const W=e.defineComponent({name:"FListView",props:de,emits:["afterSearch","checkValuesChange","clickItem","selectItem","unSelectItem","selectionChange","removeItem","change","activeChange","pageIndexChanged","pageSizeChanged","changed","selectionUpdate"],setup(t,o){var oe;const u=e.ref(!1),T=e.ref(),w=e.ref(!0),m=e.ref(((oe=t.rowOption)==null?void 0:oe.rowHeight)||28),r=e.ref(!1),s=e.ref([]),p=0,x=e.ref(t.columns),V=H.useFilter(t,o),g=H.useIdentify(t),y=H.useHierarchy(t),b=H.useGroupData(t,g),h=H.useDataView(t,new Map,V,y,g),I=H.useSelection(t,h,g,s,o),F=fe(t,T),v=H.usePagination(t,h),S=e.computed(()=>h.dataView.value.length),j=H.useRow(t,o,I,g),M=H.useEdit(t,o,g,j,s),A=H.useVisualDataBound(t,h,m),B=H.useVisualDataCell(t,{},A),O=H.useVisualDataRow(t,h,M,y,g,A,B,m),k=H.useVisualGroupRow(t,g,B,O),i=H.useVisualSummaryRow(t,g,B,O),f=H.useVisualData(t,x,h,S,p,O,k,i),{getVisualData:C}=f;s.value=C(0,S.value+p-1);const N=e.computed(()=>{const D={"f-list-view":!0,"f-list-view-multiple":t.multiSelect};return t.size!=="default"&&(D[`${t.size}-item`]=!0),G.getCustomClass(D,t.customClass)}),R=e.computed(()=>!!o.slots.footer||w.value);function a(){return t.header==="SearchBar"?ne:t.header==="ContentHeader"?ye:ne}const n=a(),{renderHeader:l}=n(t,o,F),d=Ce(),c=Se(t,o,h,d,s),_=we(t,o,s,c,d,I),{renderListArea:P}=ve(t,o,s,h,b,d,I,f,_,c);function q(D){F.search(D)}function be(D){D&&(h.load(D),s.value=C(0,S.value+p-1))}function ke(){I.clearSelection(),d.clearActiveItem()}function Ne(){return _.selectedItems.value}function Fe(){return _.selectedItems.value.map(D=>D[g.idField.value])}function le(D){I.selectedValues.value=D,_.updateSelectedItems()}function Te(){return I.currentSelectedDataId.value}function xe(D){j.activeRowById(D)}function Re(D){const E=g.idField.value,$=s.value.find(Q=>Q.raw[E]===D),Y=s.value.findIndex(Q=>Q.raw[E]===D);$&&Y>-1&&_.onClickItem($,Y)}function Me(D){const E=g.idField.value,$=s.value.find(Y=>Y.raw[E]===D);$&&j.changeRow($)}function De(D){v.updatePagination(D)}function Oe(D){return s.value.filter(E=>D.includes(E.raw[t.idField]))}o.expose({search:q,updateDataSource:be,clearSelection:ke,getSelections:Ne,updateSelectionByIds:le,getSelectionIds:Fe,activeRowById:xe,getCurrentRowId:Te,clickRowItemById:Re,updatePagination:De,getVisibleDataByIds:Oe,selectRowById:Me}),e.watch(()=>t.selectionValues,(D,E)=>{D!==E&&le(D)});const je=H.useSidebar(t,I),{sidebarWidth:Be,showSidebarCheckBox:Ke}=je,Ae=H.useColumn(t,o),{applyColumnSorter:Xe,columnContext:Le,updateColumnRenderContext:Je}=Ae;return H.useVirtualScroll(t,h,s,Le,f,S,p,Be,m,u,M),()=>e.createVNode("div",{class:N.value},[l(),e.createVNode("div",{ref:T,class:"f-list-view-content",onMouseover:()=>{r.value||(r.value=!0)},onMouseleave:()=>{r.value&&(r.value=!1)}},[P()]),R.value&&e.createVNode("div",{class:"f-list-view-footer"},[t.footerTemplate?t.footerTemplate():o.slots.footer&&o.slots.footer()])])}}),z=e.defineComponent({name:"FTransfer",props:U,emits:["change","activeChange","selectItem","unSelecteItem","removeItem"],setup(t,o){const u=e.ref(t.identifyField),T=e.ref(t.displayType),w=e.ref(!1),m=e.ref(t.dataSource),r=e.ref(t.textField),s=e.ref(t.selections||[]),p=e.computed(()=>s.value.map(a=>a[u.value])),x=new Map,V=e.ref(),g=e.ref(),y=e.ref();let b;function h(){const a=new Map,n=t.selectionValues||[];n.length&&n.reduce((d,c)=>(d.set(c,!0),d),a);const l=t.selections||[];l.length&&(a.clear(),l.reduce((d,c)=>(d.set(c[u.value],!0),d),a)),s.value.length||(s.value=m.value.filter(d=>a.has(d[u.value])).map(d=>Object.assign({},d))),m.value.forEach(d=>{const c=d[u.value],_=a.has(c);d.checked=_,_&&x.set(c,d)})}h(),e.watch(()=>t.selections,a=>{s.value=a,h()}),e.watch(()=>t.dataSource,a=>{var n;m.value=a,h(),(n=y.value)==null||n.updateDataSource(a)});const I=e.computed(()=>T.value==="List"),F=e.computed(()=>T.value==="Tree");function v(a){const n=ee.cloneDeep(s.value);s.value=a.map(l=>Object.assign({},l)),o.emit("change",s.value,n)}function S(a){o.emit("selectItem",a)}function j(a){o.emit("unSelectItem",a)}function M(){return e.createVNode(W,{class:"f-utils-fill",data:m.value,multiSelect:!0,itemClass:"f-transfer-list-item",textField:r.value,selection:{enableSelectRow:!0,multiSelect:!0,multiSelectMode:"OnCheckAndClick",showCheckbox:!0,showSelectAll:!1,showSelection:!0},draggable:!1,header:"Search",headerClass:"transfer-search-box",selectionValues:p.value,onSelectionUpdate:v},null)}function A(){return e.createVNode(ae,{ref:y,data:m.value,columns:t.columns,virtualized:t.virtualized,rowOption:t.rowOption,textField:r.value,selection:{enableSelectRow:!0,multiSelect:!0,multiSelectMode:"OnCheckAndClick",showCheckbox:!0,showSelectAll:!1,showSelection:!0},selectionValues:p.value,onSelectionUpdate:v,onSelectItem:S,onUnSelectItem:j},null)}function B(){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"},[I.value&&M(),F.value&&A()])])])}function O(a){const n=a[u.value];if(n!==null||n!==void 0){s.value=s.value.filter(d=>d[u.value]!==n);const l=x.get(n);l&&(l.checked=!1,x.delete(n)),o.emit("change",s.value),o.emit("removeItem",a)}}e.watch(s,a=>{V.value.updateDataSource(ee.cloneDeep(a));const n=b==null?void 0:b[u.value],l=a.find(d=>n===d[u.value]);l?V.value.activeRowById(l[u.value]):(b=null,V.value.activeRowById(""))});function k(a){const n=new Map;s.value.reduce((l,d)=>(l.set(d[u.value],d),l),n),s.value=a.map(l=>n.get(l[u.value])),o.emit("change",s.value)}function i(a){b=a[0],o.emit("activeChange",a)}function f(){var a;return e.createVNode(W,{ref:V,columns:t.columns,style:"flex:1",data:s.value,draggable:!0,view:"DraggableView","keep-order":!0,textField:r.value,itemClass:t.selectedItemClass,onChange:k,onRemoveItem:O,onActiveChange:i,checkBeforeRemoveItem:t.checkBeforeRemoveItem},{itemContent:(a=o.slots)!=null&&a.text?n=>{var l;return((l=o.slots)==null?void 0:l.text)&&o.slots.text(n)}:null})}function C(){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"},[K.LocaleService.getLocaleValue("transfer.selectedStart")]),e.createVNode("span",{class:"selection-count"},[s.value&&s.value.length]),e.createVNode("span",{class:"selection-item-title"},[K.LocaleService.getLocaleValue("transfer.selectedEnd")])]),e.createVNode("div",{class:"container columns-box f-utils-fill d-flex"},[f()])])])}const N=e.computed(()=>({"f-transfer":!0,row:!0,"f-utils-fill":w.value})),R=e.computed(()=>({height:w.value?"100%":"480px"}));return e.onMounted(()=>{g.value&&g.value.parentElement&&getComputedStyle(g.value.parentElement).display==="flex"&&(w.value=!0)}),o.expose({selectRowById:a=>{var n;(n=V.value)==null||n.clickRowItemById(a)}}),()=>e.createVNode("div",{ref:g,class:N.value,style:R.value},[o.slots.children?o.slots.children({selections:s.value}):B(),C()])}}),Ie=e.defineComponent({name:"FTransferDesign",props:U,emits:["change"],setup(t,o){const u=e.ref(t.identifyField),T=e.ref("已选:"),w=e.ref("项数据"),m=e.ref(t.displayType),r=e.ref(!1),s=e.ref(t.dataSource),p=e.ref(t.selections||[]),x=e.computed(()=>p.value.map(f=>f[u.value])),V=new Map;function g(){const f=new Map,C=t.selectionValues||[];C.length&&C.reduce((R,a)=>(R.set(a,!0),R),f);const N=t.selections||[];N.length&&(f.clear(),N.reduce((R,a)=>(R.set(a[u.value],!0),R),f)),p.value.length||(p.value=s.value.filter(R=>f.has(R[u.value])).map(R=>Object.assign({},R))),s.value.forEach(R=>{const a=R[u.value],n=f.has(a);R.checked=n,n&&V.set(a,R)})}g();const y=e.computed(()=>m.value==="List"),b=e.computed(()=>m.value==="Tree");function h(f){p.value=f.map(C=>Object.assign({},C)),o.emit("change",p.value)}function I(){return e.createVNode(W,{class:"f-utils-fill",data:s.value,"multi-select":!0,draggable:!1,header:"Search",headerClass:"transfer-search-box","selection-values":x.value,onSelectionChange:h},{default:()=>[e.createTextVNode(" ")]})}function F(){return e.createVNode(e.Fragment,null,null)}function v(){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"},[y.value&&I(),b.value&&F()])])])}function S(f){const C=f[u.value];if(C!==null||C!==void 0){p.value=p.value.filter(R=>R[u.value]!==C);const N=V.get(C);N&&(N.checked=!1,V.delete(C)),o.emit("change",p.value)}}function j(f){const C=new Map;p.value.reduce((N,R)=>(N.set(R[u.value],R),N),C),p.value=f.map(N=>C.get(N[u.value])),o.emit("change",p.value)}function M(){return e.createVNode(W,{style:"flex:1",data:p.value,draggable:!0,view:"DraggableView","keep-order":!0,onChange:j,onRemoveItem:S},{default:()=>[e.createTextVNode(" ")]})}function A(){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"},[T.value]),e.createVNode("span",{class:"selection-count"},[p.value&&p.value.length]),e.createVNode("span",{class:"selection-item-title"},[w.value])]),e.createVNode("div",{class:"container columns-box f-utils-fill d-flex"},[M()])])])}const B=e.computed(()=>({transfer:!0,row:!0,"f-utils-fill":r.value})),O=e.ref(),k=e.inject("design-item-context"),i=se.useDesignerComponent(O,k);return e.onMounted(()=>{O.value.componentInstance=i}),o.expose(i.value),()=>e.createVNode("div",{ref:O,class:B.value,style:"height:480px"},[v(),A()])}});z.register=(t,o,u)=>{t.transfer=z,o.transfer=J},z.registerDesigner=(t,o,u)=>{t.transfer=Ie,o.transfer=J};const Ve=G.withInstall(z);L.FTransfer=z,L.default=Ve,L.propsResolver=J,L.transferProps=U,Object.defineProperties(L,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});