UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

19 lines (18 loc) 28 kB
(function(H,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):(H=typeof globalThis<"u"?globalThis:H||self,e(H.transfer={},H.Vue,H.FTreeView,H.locale,H.dynamicResolver,H.common,H.dataView,H.checkbox,H.LodashES,H.designerCanvas))})(this,function(H,e,ae,K,Z,G,_,X,ee,se){"use strict";const ie=new Map([["appearance",Z.resolveAppearance]]);function ce(t,a,d){return a}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,a){function d(m){const u=[];let s=m.nextNode();for(;s;)u.push(s),s=m.nextNode();return u}function T(m,u){const s=document.createTreeWalker(m,NodeFilter.SHOW_TEXT);return d(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(u,h);if(I===-1)break;b.push(I),h=I+u.length}return b.map(I=>{const F=new Range;return F.setStart(g,I),F.setEnd(g,I+u.length),F})}).flat()}function w(m){if(!CSS.highlights||(CSS.highlights.clear(),!m||!a))return;const u=T(a.value,m.toLocaleLowerCase()),s=new Highlight(...u);CSS.highlights.set("search-result",s)}return{search:w}}function te(t,a,d,T,w,m,u,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 c,f;return((c=t.selection)==null?void 0:c.multiSelect)&&((f=t.selection)==null?void 0:f.showCheckbox)}),{onMouseenterItem:I,onMouseoverItem:F,onMouseoutItem:v}=m,{getKey:S,listViewItemClass:j,listViewItemStyle:M,onCheckItem:L,onClickItem:B}=u,O=e.computed(()=>{const c={"text-overflow":"ellipsis",overflow:"hidden","white-space":"nowrap"};return t.itemClass?c:{margin:V.value==="small"?"0.25rem 0":"8px 0",...c}});function k(c,f,C){return c.checked=s.findIndexInSelectedItems(c)>-1,e.createVNode("li",{class:j(c,f),id:S(c,f),key:S(c,f),style:M(c,f),onClick:N=>B(c,f,N),onMouseenter:N=>I(N,c,f),onMouseover:N=>F(N,c,f),onMouseout:N=>v(N,c,f)},[h.value&&e.createVNode("div",{class:"f-list-select",onClick:N=>N.stopPropagation()},[e.createVNode(X.FCheckbox,{id:"list-"+S(c,f),customClass:"listview-checkbox float-left",disabled:c[b.value],checked:c.checked,"onUpdate:checked":N=>c.checked=N,onChange:N=>{L(c,f,!N.checked)}},null)]),e.createVNode("div",{class:"f-list-content"},[e.createVNode("div",{class:t.itemContentClass,style:O.value,title:c.raw[y.value]||c.raw[g.value]},[c.raw[g.value]])])])}return{renderItem:k}}function me(t,a,d,T,w,m,u,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:L}=u;function B(k,c,f){return t.contentTemplate?e.createVNode(e.Fragment,null,[t.contentTemplate({item:k.raw,index:c,selectedItem:f})]):a.slots.content?e.createVNode(e.Fragment,null,[a.slots.content&&a.slots.content({item:k.raw,index:c,selectedItem:f})]):e.createVNode("div",{style:"margin: 10px 0;"},[k.raw[y.value||"name"]])}function O(k,c,f){return e.createVNode("li",{class:v(k,c),id:F(k,c),key:F(k,c),style:S(k,c),onClick:C=>M(k,c,C),onMouseenter:C=>b(C,k,c),onMouseover:C=>h(C,k,c),onMouseout:C=>I(C,k,c)},[V.value&&e.createVNode("div",{class:"f-list-select",onClick:C=>C.stopPropagation()},[e.createVNode(X.FCheckbox,{id:"list-"+F(k,c),customClass:"listview-checkbox",disabled:k[g.value],checked:k.checked,"onUpdate:checked":C=>k.checked=C,onChange:C=>{j(k,c,!C.checked),L()}},null)]),e.createVNode("div",{class:"f-list-content"},[B(k,c,f)])])}return{renderItem:O}}function ge(t,a,d,T,w,m,u,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}=u,{dragstart:M,dragenter:L,dragover:B,dragend:O}=T,{removeItem:k}=p,c=e.computed(()=>({margin:V.value?"10px 0":"10px 0px 10px 14px"}));function f(n,l=""){const i=n.target;i.title=i.scrollWidth>i.clientWidth?l:""}function C(n){return e.createVNode("div",{style:c.value,onMouseenter:l=>f(l,n.raw[y.value||"name"])},[n.raw[y.value||"name"]])}function N(){return a.slots.itemContent?a.slots.itemContent:C}const R=N();function r(n,l,i){return e.createVNode("li",{class:v(n,l),id:F(n,l),key:F(n,l),onClick:o=>j(n,l,o),onMouseenter:o=>b(o,n,l),onMouseover:o=>h(o,n,l),onMouseout:o=>I(o,n,l),draggable:"true",onDragstart:o=>M(o,n,l),onDragenter:o=>L(o,l),onDragend:o=>O(o,n),onDragover:o=>B(o)},[V.value&&e.createVNode("div",{class:"f-list-select",onClick:o=>o.stopPropagation()},[e.createVNode(X.FCheckbox,{id:"list-"+F(n,l),customClass:"listview-checkbox",disabled:n[g.value],checked:n.checked,"onUpdate:checked":o=>n.checked=o,onChange:o=>S(n,l,!o.checked)},null)]),e.createVNode("div",{class:"f-list-content"},[R(n)]),t.allowDelete&&e.createVNode("div",{class:"f-list-remove",onClick:o=>{o.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:r}}function pe(t,a,d,T,w,m,u,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,d.value=y(S.collapse?"collapse":"expand",S,d.value)}function h(v,S,j){return a.slots.group?e.createVNode(e.Fragment,null,[a.slots.content&&a.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,a,d,T){const{dataView:w}=d,{updateSelectedItems:m}=T;function u(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(),a.emit("removeItem",p[0])}}return{removeItem:u}}function ve(t,a,d,T,w,m,u,s,p,x){const V=e.ref(t.view),g=e.ref(t.view==="CardView"),y=e.ref({}),b=he(t,a,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(()=>!!d.value&&d.value.length>0),F=e.computed(()=>d.value.length===0);e.computed(()=>F.value&&!a.slots.empty);function v(){return V.value==="SingleView"?te:V.value==="DraggableView"?ge:(V.value==="ContentView"||V.value==="CardView")&&(t.contentTemplate||a.slots.content)?me:te}const S=v(),{renderItem:j}=S(t,a,d,x,w,m,p,u,b,s),{renderItem:M}=pe(t,a,d,x,w,m,p,u,b,s),L=[j,M];function B(){return d.value.filter(c=>c.visible!==!1).map((c,f)=>L[c.type](c,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():a.slots.empty?a.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,a,d){function T(){return a.slots.header&&e.createVNode("div",{class:"f-list-view-header"},[a.slots.header()])}return{renderHeader:T}}function ne(t,a,d){const T=e.ref(t.headerClass),w=e.ref(t.placeholder),m=e.ref(""),u=e.computed(()=>!m.value),s=e.computed(()=>!!m.value);function p(y){m.value=""}e.watch(m,y=>{t.enableHighlightSearch&&d.search(y),a.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)]),u.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(""),a=e.ref(-1),d=e.ref(""),T=e.ref(-1),w=e.ref(!1);function m(g,y,b){T.value=b}function u(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(){a.value=-1,t.value=""}return{activeIndex:a,focusedItemId:d,hoverIndex:T,clearActiveItem:V,onMouseenterItem:m,onMouseoverItem:u,onMouseoutItem:s,resumeHover:x,suspendHover:p}}function Se(t,a,d,T,w){const m=e.ref(t.idField),{dataView:u}=d,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 L(n){if(!n)return null;const{overflowY:l}=getComputedStyle(n);return l==="auto"||l==="scroll"?n:L(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=L(l)),!v){O();return}const i=v.getBoundingClientRect(),o=n.clientY,A=o-i.top,P=i.bottom-o;A<M&&v.scrollTop>0?B(v,"up"):P<M&&v.scrollTop<v.scrollHeight-v.clientHeight?B(v,"down"):O()}function c(n,l){const i=n-I,o=l-F;h.style.left=parseInt(h.style.left)+i+"px",h.style.top=parseInt(h.style.top)+o+"px",I=n,F=l}function f(n){const{left:l,top:i}=n.getBoundingClientRect(),o=n.cloneNode(!0);return o.className=o.className+" f-listview-drag-moving",o.style.cssText=` position:absolute; left:${l}px; top:${document.documentElement.scrollTop?i+document.documentElement.scrollTop:i}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}; `,o.children[0].style.cssText="padding: 0 0 0 14px",o.children[0].children[0].style.cssText=` margin: 10px 0px 10px 14px; overflow: hidden;text-overflow: ellipsis;white-space: nowrap; `,o.children[1].style.cssText="flex:1 1 auto; width:100%",o.children[2].style.cssText="padding: 0 14px 0 0",o.children[2].children[0].style.cssText="display: initial",document.body.appendChild(o),o}function C(n,l,i){if(n.stopPropagation(),b(),l){if(h=f(n.target),n.dataTransfer){const o=new Image;o.src="",n.dataTransfer.setDragImage(o,0,0)}I=n.pageX,F=n.pageY,setTimeout(()=>{s.value=i,p.value=!0,l.moving=!0})}}function N(n,l){if(n.preventDefault(),s.value!==l&&s.value!==-1){const i=u.value[s.value],o=w.value[s.value];i&&o&&(u.value.splice(s.value,1),u.value.splice(l,0,i),w.value.splice(s.value,1),w.value.splice(l,0,o),w.value.forEach((A,P)=>{A.index=P,A.raw.__fv_index__=P}),s.value=l,c(n.pageX,n.pageY))}}function R(n){n.preventDefault(),n.dataTransfer&&(n.dataTransfer.dropEffect="move"),c(n.pageX,n.pageY),k(n)}function r(n,l){var o,A;O(),v=null,l&&(l.moving=!1,h&&(document.body.removeChild(h),h=null)),u.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 i=((o=l.raw)==null?void 0:o.__fv_index__)??0;g.value=i,x.value=i,V.value=(A=l.raw)==null?void 0:A[m.value],a.emit("change",u.value),a.emit("activeChange",[l.raw])}return{dragstart:C,dragenter:N,dragover:R,dragend:r,isDragging:p}}function we(t,a,d,T,w,m){var r,n;const u=e.ref(t.idField),s=e.ref(t.disableField),p=e.ref(t.draggable);e.ref(t.itemClass);const x=e.ref(((r=t.selection)==null?void 0:r.multiSelect)??!1),V=e.ref(((n=t.selection)==null?void 0:n.multiSelectMode)||"DependOnCheck"),{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()),L=l=>M.value.length===0?!1:M.value.some(i=>{let o="";return i.data?o=i.data[u.value]:o=i[u.value],o===l});function B(){M.value=F()}function O(l,i){return l.raw[u.value]!=null?l.raw[u.value]+"_"+i:""}function k(l,i){const o={"f-list-view-group-item":!0,"f-list-view-draggable-item":p.value,"f-un-click":!l.checked,"f-un-select":!!l.raw[s.value],"f-listview-active":x.value&&L(O(l,i))&&t.showActiveWhenMultiSelect||!x.value&&l.raw[u.value]===S.value||x.value&&!t.showActiveWhenMultiSelect&&l.raw[u.value]===S.value,"f-listview-hover":!g.value&&i===h.value,moving:!!l.moving};if(typeof t.itemClass=="string")return G.getCustomClass(o,t.itemClass);if(typeof t.itemClass=="function"){const A=t.itemClass(l);return G.getCustomClass(o,A)}return o}function c(l,i){const o={};if(typeof t.itemStyle=="string")return G.getCustomStyle(o,t.itemStyle);if(typeof t.itemStyle=="function"){const A=t.itemStyle(l);return G.getCustomStyle(o,A)}return o}const f=e.computed(()=>!x.value);function C(l,i,o){l.checked=o,!l.raw[s.value]&&(f.value&&(b.value=l.raw[u.value]),v(l))}const N=e.computed(()=>!x.value||x.value&&V.value==="OnCheckAndClick");function R(l,i,o){if(l.raw[s.value]){o==null||o.preventDefault(),o==null||o.stopPropagation();return}S.value=l.raw[u.value],b.value=l.raw[u.value],y.value=i,N.value&&(v(l),B()),a.emit("clickItem",{data:M.value,index:i,dataItem:l.raw}),a.emit("activeChange",M.value)}return{getKey:O,selectedItems:M,listViewItemClass:k,listViewItemStyle:c,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,a){var oe;const d=e.ref(!1),T=e.ref(),w=e.ref(!0),m=e.ref(((oe=t.rowOption)==null?void 0:oe.rowHeight)||28),u=e.ref(!1),s=e.ref([]),p=0,x=e.ref(t.columns),V=_.useFilter(t,a),g=_.useIdentify(t),y=_.useHierarchy(t),b=_.useGroupData(t,g),h=_.useDataView(t,new Map,V,y,g),I=_.useSelection(t,h,g,s,a),F=fe(t,T),v=_.usePagination(t,h),S=e.computed(()=>h.dataView.value.length),j=_.useRow(t,a,I,g),M=_.useEdit(t,a,g,j,s),L=_.useVisualDataBound(t,h,m),B=_.useVisualDataCell(t,{},L),O=_.useVisualDataRow(t,h,M,y,g,L,B,m),k=_.useVisualGroupRow(t,g,B,O),c=_.useVisualSummaryRow(t,g,B,O),f=_.useVisualData(t,x,h,S,p,O,k,c),{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(()=>!!a.slots.footer||w.value);function r(){return t.header==="SearchBar"?ne:t.header==="ContentHeader"?ye:ne}const n=r(),{renderHeader:l}=n(t,a,F),i=Ce(),o=Se(t,a,h,i,s),A=we(t,a,s,o,i,I),{renderListArea:P}=ve(t,a,s,h,b,i,I,f,A,o);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(),i.clearActiveItem()}function Ne(){return A.selectedItems.value}function Fe(){return A.selectedItems.value.map(D=>D[g.idField.value])}function le(D){I.selectedValues.value=D,A.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&&A.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]))}a.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=_.useSidebar(t,I),{sidebarWidth:Be,showSidebarCheckBox:Ke}=je,Ae=_.useColumn(t,a),{applyColumnSorter:Xe,columnContext:Le,updateColumnRenderContext:Je}=Ae;return _.useVirtualScroll(t,h,s,Le,f,S,p,Be,m,d,M),()=>e.createVNode("div",{class:N.value},[l(),e.createVNode("div",{ref:T,class:"f-list-view-content",onMouseover:()=>{u.value||(u.value=!0)},onMouseleave:()=>{u.value&&(u.value=!1)}},[P()]),R.value&&e.createVNode("div",{class:"f-list-view-footer"},[t.footerTemplate?t.footerTemplate():a.slots.footer&&a.slots.footer()])])}}),z=e.defineComponent({name:"FTransfer",props:U,emits:["change","activeChange","selectItem","unSelecteItem","removeItem"],setup(t,a){const d=e.ref(t.identifyField),T=e.ref(t.displayType),w=e.ref(!1),m=e.ref(t.dataSource),u=e.ref(t.textField),s=e.ref(t.selections||[]),p=e.computed(()=>s.value.map(r=>r[d.value])),x=new Map,V=e.ref(),g=e.ref(),y=e.ref();let b;function h(){const r=new Map,n=t.selectionValues||[];n.length&&n.reduce((i,o)=>(i.set(o,!0),i),r);const l=t.selections||[];l.length&&(r.clear(),l.reduce((i,o)=>(i.set(o[d.value],!0),i),r)),s.value.length||(s.value=m.value.filter(i=>r.has(i[d.value])).map(i=>Object.assign({},i))),m.value.forEach(i=>{const o=i[d.value],A=r.has(o);i.checked=A,A&&x.set(o,i)})}h(),e.watch(()=>t.selections,r=>{s.value=r,h()}),e.watch(()=>t.dataSource,r=>{var n;m.value=r,h(),(n=y.value)==null||n.updateDataSource(r)});const I=e.computed(()=>T.value==="List"),F=e.computed(()=>T.value==="Tree");function v(r){const n=ee.cloneDeep(s.value);s.value=r.map(l=>Object.assign({},l)),a.emit("change",s.value,n)}function S(r){a.emit("selectItem",r)}function j(r){a.emit("unSelectItem",r)}function M(){return e.createVNode(W,{class:"f-utils-fill",data:m.value,multiSelect:!0,itemClass:"f-transfer-list-item",textField:u.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 L(){return e.createVNode(ae,{ref:y,data:m.value,columns:t.columns,virtualized:t.virtualized,rowOption:t.rowOption,textField:u.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&&L()])])])}function O(r){const n=r[d.value];if(n!==null||n!==void 0){s.value=s.value.filter(i=>i[d.value]!==n);const l=x.get(n);l&&(l.checked=!1,x.delete(n)),a.emit("change",s.value),a.emit("removeItem",r)}}e.watch(s,r=>{V.value.updateDataSource(ee.cloneDeep(r));const n=b==null?void 0:b[d.value],l=r.find(i=>n===i[d.value]);l?V.value.activeRowById(l[d.value]):(b=null,V.value.activeRowById(""))});function k(r){const n=new Map;s.value.reduce((l,i)=>(l.set(i[d.value],i),l),n),s.value=r.map(l=>n.get(l[d.value])),a.emit("change",s.value)}function c(r){b=r[0],a.emit("activeChange",r)}function f(){var r;return e.createVNode(W,{ref:V,columns:t.columns,style:"flex:1",data:s.value,draggable:!0,view:"DraggableView","keep-order":!0,textField:u.value,itemClass:t.selectedItemClass,onChange:k,onRemoveItem:O,onActiveChange:c,checkBeforeRemoveItem:t.checkBeforeRemoveItem},{itemContent:(r=a.slots)!=null&&r.text?n=>{var l;return((l=a.slots)==null?void 0:l.text)&&a.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)}),a.expose({selectRowById:r=>{var n;(n=V.value)==null||n.clickRowItemById(r)}}),()=>e.createVNode("div",{ref:g,class:N.value,style:R.value},[a.slots.children?a.slots.children({selections:s.value}):B(),C()])}}),Ie=e.defineComponent({name:"FTransferDesign",props:U,emits:["change"],setup(t,a){const d=e.ref(t.identifyField),T=e.ref("已选:"),w=e.ref("项数据"),m=e.ref(t.displayType),u=e.ref(!1),s=e.ref(t.dataSource),p=e.ref(t.selections||[]),x=e.computed(()=>p.value.map(f=>f[d.value])),V=new Map;function g(){const f=new Map,C=t.selectionValues||[];C.length&&C.reduce((R,r)=>(R.set(r,!0),R),f);const N=t.selections||[];N.length&&(f.clear(),N.reduce((R,r)=>(R.set(r[d.value],!0),R),f)),p.value.length||(p.value=s.value.filter(R=>f.has(R[d.value])).map(R=>Object.assign({},R))),s.value.forEach(R=>{const r=R[d.value],n=f.has(r);R.checked=n,n&&V.set(r,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)),a.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[d.value];if(C!==null||C!==void 0){p.value=p.value.filter(R=>R[d.value]!==C);const N=V.get(C);N&&(N.checked=!1,V.delete(C)),a.emit("change",p.value)}}function j(f){const C=new Map;p.value.reduce((N,R)=>(N.set(R[d.value],R),N),C),p.value=f.map(N=>C.get(N[d.value])),a.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 L(){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":u.value})),O=e.ref(),k=e.inject("design-item-context"),c=se.useDesignerComponent(O,k);return e.onMounted(()=>{O.value.componentInstance=c}),a.expose(c.value),()=>e.createVNode("div",{ref:O,class:B.value,style:"height:480px"},[v(),L()])}});z.register=(t,a,d)=>{t.transfer=z,a.transfer=J},z.registerDesigner=(t,a,d)=>{t.transfer=Ie,a.transfer=J};const Ve=G.withInstall(z);H.FTransfer=z,H.default=Ve,H.propsResolver=J,H.transferProps=U,Object.defineProperties(H,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});