UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

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