@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
18 lines (17 loc) • 29.3 kB
JavaScript
(function(A,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("../tree-view/index.umd.js"),require("lodash-es"),require("../data-view/index.umd.js"),require("../checkbox/index.umd.js"),require("../common/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","../tree-view/index.umd.js","lodash-es","../data-view/index.umd.js","../checkbox/index.umd.js","../common/index.umd.js"],e):(A=typeof globalThis<"u"?globalThis:A||self,e(A.transfer={},A.Vue,A.FTreeView,A.LodashES,A.dataView,A.checkbox,A.common))})(this,function(A,e,ne,H,L,G,oe){"use strict";const U={},X={};function x(n){const{properties:t,title:l,ignore:u}=n,d=u&&Array.isArray(u),s=Object.keys(t).reduce((i,y)=>((!d||!u.find(w=>w===y))&&(i[y]=t[y].type==="object"&&t[y].properties?x(t[y]):H.cloneDeep(t[y].default)),i),{});if(l&&(!d||!u.find(i=>i==="id"))){const i=l.toLowerCase().replace(/-/g,"_");s.id=`${i}_${Math.random().toString().slice(2,6)}`}return s}function le(n){const{properties:t,title:l,required:u}=n;if(u&&Array.isArray(u)){const d=u.reduce((s,i)=>(s[i]=t[i].type==="object"&&t[i].properties?x(t[i]):H.cloneDeep(t[i].default),s),{});if(l&&u.find(s=>s==="id")){const s=l.toLowerCase().replace(/-/g,"_");d.id=`${s}_${Math.random().toString().slice(2,6)}`}return d}return{type:l}}function Y(n,t={},l){const u=U[n];if(u){let d=le(u);const s=X[n];return d=s?s({getSchemaByType:Y},d,t,l):d,d}return null}function ae(n,t){const l=x(t);return Object.keys(l).reduce((u,d)=>(Object.prototype.hasOwnProperty.call(n,d)&&(u[d]&&H.isPlainObject(u[d])&&H.isPlainObject(n[d]||!n[d])?Object.assign(u[d],n[d]||{}):u[d]=n[d]),u),l),l}function J(n,t){return Object.keys(n).filter(u=>n[u]!=null).reduce((u,d)=>{if(t.has(d)){const s=t.get(d);if(typeof s=="string")u[s]=n[d];else{const i=s(d,n[d],n);Object.assign(u,i)}}else u[d]=n[d];return u},{})}function re(n,t,l=new Map){const u=ae(n,t);return J(u,l)}function se(n={}){function t(o,h,f,c){if(typeof f=="number")return c[o].length===f;if(typeof f=="object"){const v=Object.keys(f)[0],C=f[v];if(v==="not")return Number(c[o].length)!==Number(C);if(v==="moreThan")return Number(c[o].length)>=Number(C);if(v==="lessThan")return Number(c[o].length)<=Number(C)}return!1}function l(o,h,f,c){return c[o]&&c[o].propertyValue&&String(c[o].propertyValue.value)===String(f)}const u=new Map([["length",t],["getProperty",l]]);Object.keys(n).reduce((o,h)=>(o.set(h,n[h]),o),u);function d(o,h){const f=o;return typeof h=="number"?[{target:f,operator:"length",param:null,value:Number(h)}]:typeof h=="boolean"?[{target:f,operator:"getProperty",param:o,value:!!h}]:typeof h=="object"?Object.keys(h).map(c=>{if(c==="length")return{target:f,operator:"length",param:null,value:h[c]};const v=c,C=h[c];return{target:f,operator:"getProperty",param:v,value:C}}):[]}function s(o){return Object.keys(o).reduce((f,c)=>{const v=d(c,o[c]);return f.push(...v),f},[])}function i(o,h){if(u.has(o.operator)){const f=u.get(o.operator);return f&&f(o.target,o.param,o.value,h)||!1}return!1}function y(o,h){return s(o).reduce((v,C)=>v&&i(C,h),!0)}function w(o,h){const f=Object.keys(o),c=f.includes("allOf"),v=f.includes("anyOf"),C=c||v,D=(C?o[C?c?"allOf":"anyOf":"allOf"]:[o]).map(j=>y(j,h));return c?!D.includes(!1):D.includes(!0)}return{parseValueSchema:w}}const ie={},ce={};se();function Q(n,t,l=new Map,u=(i,y,w,o)=>y,d={},s=i=>i){return U[t.title]=t,X[t.title]=u,ie[t.title]=d,ce[t.title]=s,(i={},y=!0)=>{if(!y)return J(i,l);const w=re(i,t,l),o=Object.keys(n).reduce((h,f)=>(h[f]=n[f].default,h),{});return Object.assign(o,w)}}function Z(n,t){return{customClass:t.class,customStyle:t.style}}const ue=new Map([["appearance",Z]]);function de(n,t,l){return t}const fe={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:[]}}}}}},pe={$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"]},q={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:[]},rowOption:{type:Object}},z=Q(q,pe,ue,de,fe),he=new Map([["appearance",Z]]);function me(n,t,l){return t}const ge={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/list-view.schema.json",title:"list-view",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for list-view",type:"string"},type:{description:"The type string of list-view",type:"string",default:"list-view"},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"]},ve={title:"list-view",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:[]}}}}}},K={columns:{type:Array,default:[{field:"name",title:"",dataType:"string"}]},data:{type:Array,default:[]},draggable:{type:Boolean,default:!1},multiSelect:{Type:Boolean,default:!1},multiSelectMode:{Type:String,default:"OnCheck"},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,default:""},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}};Q(K,ge,he,me,ve);function ye(n,t){function l(s){const i=[];let y=s.nextNode();for(;y;)i.push(y),y=s.nextNode();return i}function u(s,i){const y=document.createTreeWalker(s,NodeFilter.SHOW_TEXT);return l(y).map(f=>({textNode:f,text:(f.textContent||"").toLocaleLowerCase()})).map(({textNode:f,text:c})=>{const v=[];let C=0;for(;C<c.length;){const N=c.indexOf(i,C);if(N===-1)break;v.push(N),C=N+i.length}return v.map(N=>{const T=new Range;return T.setStart(f,N),T.setEnd(f,N+i.length),T})}).flat()}function d(s){if(!CSS.highlights||(CSS.highlights.clear(),!s||!t))return;const i=u(t.value,s.toLocaleLowerCase()),y=new Highlight(...i);CSS.highlights.set("search-result",y)}return{search:d}}function ee(n,t,l,u,d,s,i,y,w,o){const h=e.ref(n.size),f=e.ref(n.textField),c=e.ref(n.titleField),v=e.ref(n.disableField),C=e.computed(()=>{var m,r;return((m=n.selection)==null?void 0:m.multiSelect)&&((r=n.selection)==null?void 0:r.showCheckbox)}),{onMouseenterItem:N,onMouseoverItem:T,onMouseoutItem:D}=s,{getKey:$,listViewItemClass:j,onCheckItem:O,onClickItem:R}=i,g=e.computed(()=>n.itemClass?{}:{margin:h.value==="small"?"0.25rem 0":"8px 0"});function a(m,r,V){return m.checked=y.findIndexInSelectedItems(m)>-1,e.createVNode("li",{class:j(m,r),id:$(m,r),key:$(m,r),onClick:p=>R(p,m,r),onMouseenter:p=>N(p,m,r),onMouseover:p=>T(p,m,r),onMouseout:p=>D(p,m,r)},[C.value&&e.createVNode("div",{class:"f-list-select",onClick:p=>p.stopPropagation()},[e.createVNode(G.FCheckbox,{id:"list-"+$(m,r),customClass:"listview-checkbox",disabled:m[v.value],checked:m.checked,"onUpdate:checked":p=>m.checked=p,onChange:p=>{O(m,r,!p.checked)}},null)]),e.createVNode("div",{class:"f-list-content"},[e.createVNode("div",{class:n.itemContentClass,style:g.value,title:m.raw[c.value]||m.raw[f.value]},[m.raw[f.value]])])])}return{renderItem:a}}function Se(n,t,l,u,d,s,i,y,w,o){const h=e.ref(n.multiSelect),f=e.ref(n.disableField),c=e.ref(n.textField),{onMouseenterItem:v,onMouseoverItem:C,onMouseoutItem:N}=s,{getKey:T,listViewItemClass:D,onCheckItem:$,onClickItem:j}=i;function O(g,a,m){return t.slots.content?e.createVNode(e.Fragment,null,[t.slots.content&&t.slots.content({item:g.raw,index:a,selectedItem:m})]):e.createVNode("div",{style:"margin: 10px 0;"},[g.raw[c.value||"name"]])}function R(g,a,m){return e.createVNode("li",{class:D(g,a),id:T(g,a),key:T(g,a),onClick:r=>j(r,g,a),onMouseenter:r=>v(r,g,a),onMouseover:r=>C(r,g,a),onMouseout:r=>N(r,g,a)},[h.value&&e.createVNode("div",{class:"f-list-select",onClick:r=>r.stopPropagation()},[e.createVNode(G.FCheckbox,{id:"list-"+T(g,a),customClass:"listview-checkbox",disabled:g[f.value]||!g.checked,checked:g.checked,"onUpdate:checked":r=>g.checked=r,onChange:r=>$(g,a,!r.checked)},null)]),e.createVNode("div",{class:"f-list-content"},[O(g,a,m)])])}return{renderItem:R}}function we(n,t,l,u,d,s,i,y,w,o){const h=e.ref(n.multiSelect),f=e.ref(n.disableField),c=e.ref(n.textField),{onMouseenterItem:v,onMouseoverItem:C,onMouseoutItem:N}=s,{getKey:T,listViewItemClass:D,onCheckItem:$,onClickItem:j}=i,{dragstart:O,dragenter:R,dragover:g,dragend:a}=u,{removeItem:m}=w,r=e.computed(()=>({margin:h.value?"10px 0":"10px 0px 10px 14px"}));function V(b,M=""){const B=b.target;B.title=B.scrollWidth>B.clientWidth?M:""}function p(b){return e.createVNode("div",{style:r.value,onMouseenter:M=>V(M,b.raw[c.value||"name"])},[b.raw[c.value||"name"]])}function F(){return t.slots.itemContent?t.slots.itemContent:p}const k=F();function S(b,M,B){return e.createVNode("li",{class:D(b,M),id:T(b,M),key:T(b,M),onClick:I=>j(I,b,M),onMouseenter:I=>v(I,b,M),onMouseover:I=>C(I,b,M),onMouseout:I=>N(I,b,M),draggable:"true",onDragstart:I=>O(I,b,M),onDragenter:I=>R(I,M),onDragend:I=>a(I,b),onDragover:I=>g(I)},[h.value&&e.createVNode("div",{class:"f-list-select",onClick:I=>I.stopPropagation()},[e.createVNode(G.FCheckbox,{id:"list-"+T(b,M),customClass:"listview-checkbox",disabled:b[f.value]||!b.checked,checked:b.checked,"onUpdate:checked":I=>b.checked=I,onChange:I=>$(b,M,!I.checked)},null)]),e.createVNode("div",{class:"f-list-content"},[k(b)]),e.createVNode("div",{class:"f-list-remove",onClick:I=>m(M)},[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:S}}function be(n,t,l,u,d,s,i,y,w,o){var N;const h=e.ref(((N=n.group)==null?void 0:N.groupFields)||[]),{collpaseGroupIconClass:f}=d,{toggleGroupRow:c}=o;function v(T,D){D.collapse=!D.collapse,l.value=c(D.collapse?"collapse":"expand",D,l.value)}function C(T,D,$){return T.layer>-1&&e.createVNode("div",{class:"f-navlookup-recentHeader",onClick:j=>v(j,T)},[e.createVNode("div",{class:"fv-grid-group-row-icon"},[e.createVNode("span",{class:f(T)},null)]),e.createVNode("div",{class:"f-navlookup-recommandLabel"},[T.raw[h.value[T.layer]]])])}return{renderItem:C}}function Ce(n,t,l,u){const{dataView:d}=l,{updateSelectedItems:s}=u;function i(y){if(y>-1&&y<d.value.length){const w=d.value.splice(y,1);s(),t.emit("removeItem",w[0])}}return{removeItem:i}}function Ve(n,t,l,u,d,s,i,y,w,o){const h=e.ref(n.view),f=e.ref(n.view==="CardView"),c=e.ref({}),v=e.ref("暂无数据"),C=Ce(n,t,u,w),N=e.computed(()=>({"f-list-view-group":!0,"f-list-view-group-multiselect":n.multiSelect,"d-flex":f.value,"flex-wrap":f.value})),T=e.computed(()=>!!l.value&&l.value.length>0),D=e.computed(()=>l.value.length===0);e.computed(()=>D.value&&!t.slots.empty);function $(){return h.value==="SingleView"?ee:h.value==="DraggableView"?we:(h.value==="ContentView"||h.value==="CardView")&&t.slots.content?Se:ee}const j=$(),{renderItem:O}=j(n,t,l,o,d,s,w,i,C,y),{renderItem:R}=be(n,t,l,o,d,s,w,i,C,y),g=[O,R];function a(){return l.value.filter(V=>V.visible!==!1).map((V,p)=>g[V.type](V,p,c))}function m(){return e.createVNode("div",{class:"f-list-view-emptydata"},[e.createVNode("p",{class:"f-empty-title"},[t.slots.empty?t.slots.empty():v.value])])}function r(){return e.createVNode("ul",{class:N.value,style:"list-style: none;"},[T.value&&a(),D.value&&m()])}return{renderListArea:r}}function ke(n,t,l){function u(){return t.slots.header&&e.createVNode("div",{class:"f-list-view-header"},[t.slots.header()])}return{renderHeader:u}}function te(n,t,l){const u=e.ref(n.headerClass),d=e.ref(n.placeholder),s=e.ref(""),i=e.computed(()=>!s.value),y=e.computed(()=>!!s.value);function w(c){s.value=""}e.watch(s,c=>{n.enableHighlightSearch&&l.search(c),t.emit("afterSearch",c)});const o=e.computed(()=>{const c={"form-group":!0,"farris-form-group":!0};return u.value&&u.value.split(" ").reduce((C,N)=>(C[N]=!0,C),c),c});function h(c){}function f(){return e.createVNode("div",{class:"f-list-view-header",onClick:e.withModifiers(()=>h,["prevent","stop"])},[e.createVNode("div",{class:o.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":c=>s.value=c,name:"input-group-value",type:"text",placeholder:d.value,autocomplete:"off"},null),[[e.vModelText,s.value]]),e.createVNode("div",{class:"input-group-append"},[y.value&&e.createVNode("span",{class:"input-group-text input-group-clear",onClick:c=>w()},[e.createVNode("i",{class:"f-icon f-icon-close-circle"},null)]),i.value&&e.createVNode("span",{class:"input-group-text"},[e.createVNode("span",{class:"f-icon f-icon-search"},null)])])])])])])])}return{renderHeader:f}}function Ne(){const n=e.ref(""),t=e.ref(-1),l=e.ref(""),u=e.ref(-1),d=e.ref(!1);function s(f,c,v){u.value=v}function i(f,c,v){d.value||(u.value=v)}function y(f,c,v){u.value=-1}function w(){d.value=!0}function o(){d.value=!1}function h(){t.value=-1,n.value=""}return{activeIndex:t,focusedItemId:l,hoverIndex:u,clearActiveItem:h,onMouseenterItem:s,onMouseoverItem:i,onMouseoutItem:y,resumeHover:o,suspendHover:w}}function Te(n,t,l,u){const d=e.ref(n.idField),{dataView:s}=l,i=e.ref(-1),y=e.ref(!1),{activeIndex:w,focusedItemId:o,hoverIndex:h,resumeHover:f,suspendHover:c}=u;let v,C=0,N=0;function T(g,a){const m=g-C,r=a-N;v.style.left=parseInt(v.style.left)+m+"px",v.style.top=parseInt(v.style.top)+r+"px",C=g,N=a}function D(g){const{left:a,top:m}=g.getBoundingClientRect(),r=g.cloneNode(!0);return r.style.cssText=`
position:absolute;
left:${a}px;
top:${m}px;
z-index: 999999;
border: 1px solid #e2e3e5;
pointer-events: none;
background-color: #edf5ff;
border-radius: 10px;
margin: 4px 2px;
display: flex;
align-items: center;
float: none;
text-align: initial;
width:${getComputedStyle(g).width};
height:${getComputedStyle(g).height};
`,r.children[0].style.cssText="flex: 1 1 auto;width: 100%;",r.children[1].style.cssText="width: 30px;color: #f4625f;padding: 0 14px 0 0",r.children[2].style.cssText="padding: 0 14px 0 0;",document.body.appendChild(r),r}function $(g,a,m){if(g.stopPropagation(),c(),a){if(v=D(g.target),g.dataTransfer){const r=new Image;r.src="",g.dataTransfer.setDragImage(r,0,0)}C=g.pageX,N=g.pageY,setTimeout(()=>{i.value=m,y.value=!0,a.moving=!0})}}function j(g,a){if(g.preventDefault(),i.value!==a){const m=s.value[i.value],r=s.value;r.splice(i.value,1),r.splice(a,0,m),i.value=a,T(g.pageX,g.pageY)}}function O(g){g.preventDefault(),g.dataTransfer&&(g.dataTransfer.dropEffect="move"),T(g.pageX,g.pageY)}function R(g,a){a&&(a.moving=!1,v&&(document.body.removeChild(v),v=null)),s.value.forEach((m,r)=>{m.__fv_index__=r}),y.value=!1,f(),h.value=a.raw.__fv_index__,w.value=a.raw.__fv_index__,o.value=a.raw[d.value],t.emit("change",s.value),t.emit("activeChange",[a.raw])}return{dragstart:$,dragenter:j,dragover:O,dragend:R,isDragging:y}}function Me(n,t,l,u,d,s){const i=e.ref(n.idField),y=e.ref(n.disableField),w=e.ref(n.draggable),o=e.ref(n.itemClass),h=e.ref(n.selection.multiSelect??!1),f=e.ref(n.selection.multiSelectMode),{isDragging:c}=u,{activeIndex:v,focusedItemId:C,hoverIndex:N}=d,{clearSelection:T,getSelectedItems:D,toggleSelectItem:$,currentSelectedDataId:j}=s,O=e.ref(D()),R=S=>O.value.length===0?!1:O.value.some(b=>{let M="";return b.data?M=b.data[i.value]:M=b[i.value],M===S});function g(){O.value=D()}function a(S,b){return S.raw[i.value]!=null?S.raw[i.value]:""}function m(S,b){const M={"f-list-view-group-item":!0,"f-list-view-draggable-item":w.value,"f-un-click":!S.checked,"f-un-select":!!S.raw[y.value],"f-listview-active":h.value&&R(a(S))||S.raw[i.value]===j.value,"f-listview-hover":!c.value&&b===N.value,moving:!!S.moving};return o.value.split(" ").reduce((I,W)=>(I[W]=!0,I),M),M}const r=e.computed(()=>!h.value);function V(S,b,M){S.checked=M,!S.raw[y.value]&&(r.value&&(C.value=S.raw[i.value]),$(S))}const p=e.computed(()=>h.value&&f.value==="OnCheckClearByClick"),F=e.computed(()=>!h.value||h.value&&(f.value==="OnCheckAndClick"||f.value==="OnClick"));function k(S,b,M){if(b.raw[y.value]){S.preventDefault(),S.stopPropagation();return}C.value=b.raw[i.value],v.value=M,p.value&&T(),F.value&&($(b),g()),t.emit("clickItem",{data:O.value,index:M}),t.emit("activeChange",O.value)}return{getKey:a,selectedItems:O,listViewItemClass:m,updateSelectedItems:g,onCheckItem:V,onClickItem:k}}const E=e.defineComponent({name:"FListView",props:K,emits:["afterSearch","checkValuesChange","clickItem","selectionChange","removeItem","change","activeChange"],setup(n,t){const l=e.ref(),u=e.ref(!0),d=e.ref(!1),s=e.ref([]),i=0,y=e.ref(n.columns),w=L.useFilter(),o=L.useIdentify(n),h=L.useHierarchy(n),f=L.useGroupData(n,o),c=L.useDataView(n,new Map,w,h,o),v=L.useSelection(n,c,o,s,t),C=ye(n,l),N=e.computed(()=>c.dataView.value.length),T=L.useRow(n,t,v,o),D=L.useEdit(n,t,o,T),$=L.useVisualDataBound(n),j=L.useVisualDataCell(n,{},$),O=L.useVisualDataRow(n,c,D,h,o,$,j),R=L.useVisualGroupRow(n,o,j,O),g=L.useVisualSummaryRow(n,o,j,O),a=L.useVisualData(n,y,c,N,i,O,R,g),{getVisualData:m}=a;s.value=m(0,N.value+i-1);const r=e.computed(()=>{const P={"f-list-view":!0,"f-list-view-multiple":n.multiSelect};return n.size!=="default"&&(P[`${n.size}-item`]=!0),P}),V=e.computed(()=>!!t.slots.footer||u.value);function p(){return n.header==="SearchBar"?te:n.header==="ContentHeader"?ke:te}const F=p(),{renderHeader:k}=F(n,t,C),S=Ne(),b=Te(n,t,c,S),M=Me(n,t,s,b,S,v),{renderListArea:B}=Ve(n,t,s,c,f,S,v,a,M,b);function I(P){C.search(P)}function W(P){P&&(c.load(P),s.value=m(0,N.value+i-1))}function Oe(){v.clearSelection(),S.clearActiveItem()}function $e(){return M.selectedItems.value}function je(){return M.selectedItems.value.map(P=>P[o.idField.value])}function Re(P){v.selectedValues.value=P,M.updateSelectedItems()}function Pe(){return v.currentSelectedDataId.value}function Ae(P){T.activeRowById(P)}t.expose({search:I,updateDataSource:W,clearSelection:Oe,getSelections:$e,updateSelectionByIds:Re,getSelectionIds:je,activeRowById:Ae,getCurrentRowId:Pe});function Le(P){n.multiSelect&&(P.preventDefault(),P.stopPropagation())}return()=>e.createVNode("div",{class:r.value,onClick:Le},[k(),e.createVNode("div",{ref:l,class:"f-list-view-content",onMouseover:()=>{d.value=!0},onMouseleave:()=>{d.value=!1}},[B()]),V.value&&e.createVNode("div",{class:"f-list-view-footer"},[t.slots.footer&&t.slots.footer()])])}}),_=e.defineComponent({name:"FTransfer",props:q,emits:["change","activeChange"],setup(n,t){const l=e.ref(n.identifyField),u=e.ref("已选:"),d=e.ref("项数据"),s=e.ref(n.displayType),i=e.ref(!1),y=e.ref(n.dataSource),w=e.ref(n.textField),o=e.ref(n.selections||[]),h=e.computed(()=>o.value.map(p=>p[l.value])),f=new Map,c=e.ref();let v;function C(){const p=new Map,F=n.selectionValues||[];F.length&&F.reduce((S,b)=>(S.set(b,!0),S),p);const k=n.selections||[];k.length&&(p.clear(),k.reduce((S,b)=>(S.set(b[l.value],!0),S),p)),o.value.length||(o.value=y.value.filter(S=>p.has(S[l.value])).map(S=>Object.assign({},S))),y.value.forEach(S=>{const b=S[l.value],M=p.has(b);S.checked=M,M&&f.set(b,S)})}C();const N=e.computed(()=>s.value==="List"),T=e.computed(()=>s.value==="Tree");function D(p){o.value=p.map(F=>Object.assign({},F)),t.emit("change",o.value)}function $(){return e.createVNode(E,{class:"f-utils-fill",data:y.value,multiSelect:!0,itemClass:"f-transfer-list-item",textField:w.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,onSelectionChange:D},{default:()=>[e.createTextVNode(" ")]})}function j(){return e.createVNode(ne,{data:y.value,rowOption:n.rowOption,textField:w.value,selection:{enableSelectRow:!0,multiSelect:!0,multiSelectMode:"OnCheckAndClick",showCheckbox:!0,showSelectAll:!1,showSelection:!0},selectionValues:h.value,onSelectionChange:D},null)}function O(){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"},[N.value&&$(),T.value&&j()])])])}function R(p){const F=p[l.value];if(F!==null||F!==void 0){o.value=o.value.filter(S=>S[l.value]!==F);const k=f.get(F);k&&(k.checked=!1,f.delete(F)),t.emit("change",o.value)}}e.watch(o,p=>{c.value.updateDataSource(p);const F=v==null?void 0:v[l.value],k=p.find(S=>F===S[l.value]);k?c.value.activeRowById(k[l.value]):(v=null,c.value.activeRowById(""))});function g(p){const F=new Map;o.value.reduce((k,S)=>(k.set(S[l.value],S),k),F),o.value=p.map(k=>F.get(k[l.value])),t.emit("change",o.value)}function a(p){v=p[0],t.emit("activeChange",p)}function m(){return e.createVNode(E,{ref:c,style:"flex:1",data:o.value,draggable:!0,view:"DraggableView","keep-order":!0,textField:w.value,itemClass:"draggable-item--text-truncate",onChange:g,onRemoveItem:R,onActiveChange:a},null)}function r(){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"},[u.value]),e.createVNode("span",{class:"selection-count"},[o.value&&o.value.length]),e.createVNode("span",{class:"selection-item-title"},[d.value])]),e.createVNode("div",{class:"container columns-box f-utils-fill d-flex"},[m()])])])}const V=e.computed(()=>({"f-transfer":!0,row:!0,"f-utils-fill":i.value}));return()=>e.createVNode("div",{class:V.value,style:"height:480px"},[O(),r()])}});function Fe(n,t,l){var g;const u="",d="",s=e.ref();function i(){return(t==null?void 0:t.schema.componentType)!=="frame"}function y(){return!1}function w(){return(t==null?void 0:t.schema.componentType)!=="frame"}function o(){return(t==null?void 0:t.schema.componentType)==="frame"}function h(a){if(!a||!a.value)return null;if(a.value.schema&&a.value.schema.type==="component")return a.value;const m=e.ref(a==null?void 0:a.value.parent),r=h(m);return r||null}function f(a=t){var p;const{componentInstance:m,designerItemElementRef:r}=a;if(!m||!m.value)return null;const{getCustomButtons:V}=m.value;return m.value.canMove||V&&((p=V())!=null&&p.length)?r:f(a.parent)}function c(a){return!!l}function v(){return(t==null?void 0:t.schema.label)||(t==null?void 0:t.schema.title)||(t==null?void 0:t.schema.name)}function C(){}function N(a,m){var r;!a||!m||(r=t==null?void 0:t.setupContext)==null||r.emit("dragEnd")}function T(a,m){const{componentType:r}=a;let V=Y(r,a,m);const p=r.toLowerCase().replace(/-/g,"_");return V&&!V.id&&V.type===r&&(V.id=`${p}_${Math.random().toString().slice(2,6)}`),V}function D(a){}function $(...a){}function j(){t!=null&&t.schema.contents&&t.schema.contents.map(a=>{let m=a.id;a.type==="component-ref"&&(m=a.component);const r=n.value.querySelectorAll(`#${m}-design-item`);r!=null&&r.length&&Array.from(r).map(V=>{var p;(p=V==null?void 0:V.componentInstance)!=null&&p.value.onRemoveComponent&&V.componentInstance.value.onRemoveComponent()})})}function O(){}function R(a){}return s.value={canMove:i(),canSelectParent:y(),canDelete:w(),canNested:!o(),contents:t==null?void 0:t.schema.contents,elementRef:n,parent:(g=t==null?void 0:t.parent)==null?void 0:g.componentInstance,schema:t==null?void 0:t.schema,styles:u,designerClass:d,canAccepts:c,getBelongedComponentInstance:h,getDraggableDesignItemElement:f,getDraggingDisplayText:v,getPropConfig:$,getDragScopeElement:C,onAcceptMovedChildElement:N,onChildElementMovedOut:D,addNewChildComponentSchema:T,triggerBelongedComponentToMoveWhenMoved:e.ref(!1),triggerBelongedComponentToDeleteWhenDeleted:e.ref(!1),onRemoveComponent:j,getCustomButtons:O,onPropertyChanged:R},s}const De=e.defineComponent({name:"FTransferDesign",props:q,emits:["change"],setup(n,t){const l=e.ref(n.identifyField),u=e.ref("已选:"),d=e.ref("项数据"),s=e.ref(n.displayType),i=e.ref(!1),y=e.ref(n.dataSource),w=e.ref(n.selections||[]),o=e.computed(()=>w.value.map(V=>V[l.value])),h=new Map;function f(){const V=new Map,p=n.selectionValues||[];p.length&&p.reduce((k,S)=>(k.set(S,!0),k),V);const F=n.selections||[];F.length&&(V.clear(),F.reduce((k,S)=>(k.set(S[l.value],!0),k),V)),w.value.length||(w.value=y.value.filter(k=>V.has(k[l.value])).map(k=>Object.assign({},k))),y.value.forEach(k=>{const S=k[l.value],b=V.has(S);k.checked=b,b&&h.set(S,k)})}f();const c=e.computed(()=>s.value==="List"),v=e.computed(()=>s.value==="Tree");function C(V){w.value=V.map(p=>Object.assign({},p)),t.emit("change",w.value)}function N(){return e.createVNode(E,{class:"f-utils-fill",data:y.value,"multi-select":!0,draggable:!1,header:"Search",headerClass:"transfer-search-box","selection-values":o.value,onSelectionChange:C},{default:()=>[e.createTextVNode(" ")]})}function T(){return e.createVNode(e.Fragment,null,null)}function D(){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"},[c.value&&N(),v.value&&T()])])])}function $(V){const p=V[l.value];if(p!==null||p!==void 0){w.value=w.value.filter(k=>k[l.value]!==p);const F=h.get(p);F&&(F.checked=!1,h.delete(p)),t.emit("change",w.value)}}function j(V){const p=new Map;w.value.reduce((F,k)=>(F.set(k[l.value],k),F),p),w.value=V.map(F=>p.get(F[l.value])),t.emit("change",w.value)}function O(){return e.createVNode(E,{style:"flex:1",data:w.value,draggable:!0,view:"DraggableView","keep-order":!0,onChange:j,onRemoveItem:$},{default:()=>[e.createTextVNode(" ")]})}function R(){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"},[u.value]),e.createVNode("span",{class:"selection-count"},[w.value&&w.value.length]),e.createVNode("span",{class:"selection-item-title"},[d.value])]),e.createVNode("div",{class:"container columns-box f-utils-fill d-flex"},[O()])])])}const g=e.computed(()=>({transfer:!0,row:!0,"f-utils-fill":i.value})),a=e.ref(),m=e.inject("design-item-context"),r=Fe(a,m);return e.onMounted(()=>{a.value.componentInstance=r}),t.expose(r.value),()=>e.createVNode("div",{ref:a,class:g.value,style:"height:480px"},[D(),R()])}});_.register=(n,t,l)=>{n.transfer=_,t.transfer=z},_.registerDesigner=(n,t,l)=>{n.transfer=De,t.transfer=z};const Ie=oe.withInstall(_);A.FTransfer=_,A.default=Ie,A.propsResolver=z,A.transferProps=q,Object.defineProperties(A,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});