@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
19 lines (18 loc) • 49.9 kB
JavaScript
(function(L,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("../dynamic-resolver/index.umd.js"),require("../common/index.umd.js"),require("../data-view/index.umd.js"),require("../locale/index.umd.js"),require("../checkbox/index.umd.js"),require("../button-edit/index.umd.js"),require("lodash-es"),require("../list-view/index.umd.js"),require("../../designer/button-edit/index.umd.js"),require("../designer-canvas/index.umd.js"),require("../property-panel/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","../dynamic-resolver/index.umd.js","../common/index.umd.js","../data-view/index.umd.js","../locale/index.umd.js","../checkbox/index.umd.js","../button-edit/index.umd.js","lodash-es","../list-view/index.umd.js","../../designer/button-edit/index.umd.js","../designer-canvas/index.umd.js","../property-panel/index.umd.js"],t):(L=typeof globalThis<"u"?globalThis:L||self,t(L.order={},L.Vue,L.dynamicResolver,L.common,L.dataView,L.locale,L.checkbox,L.FButtonEdit,L.LodashES,L.FListView$1,L.FButtonEditDesign,L.designerCanvas,L.propertyPanel))})(this,function(L,t,G,H,j,Q,Z,he,pe,ye,ve,ne,Ce){"use strict";const be=new Map([["appearance",G.resolveAppearance]]),Se={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/order.schema.json",title:"order",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for a order",type:"string"},type:{description:"The type string of order component",type:"string",default:"order"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},editable:{description:"",type:"boolean",default:!0},enableLinkLabel:{description:"",type:"boolean",default:!1},label:{description:"",type:"string",default:""},lableWidth:{description:"",type:"number"},placeholder:{description:"",type:"string",default:""},readonly:{description:"",type:"boolean",default:!1},required:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},textAlign:{description:"",type:"string",enum:["left","middle","right"],default:"left"},visible:{description:"",type:"boolean",default:!0},onBlur:{description:"",type:"string",default:""},onClickLinkLabel:{description:"",type:"string",default:""}},required:["id","type"]};function we(e,n,i){return n}const Fe={title:"order",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:[]}}}},behavior:{description:"Basic Infomation",title:"行为",properties:{editable:{description:"",title:"允许编辑",type:"boolean"},readonly:{description:"",title:"只读",type:"string"},required:{description:"",title:"必填",type:"boolean"},visible:{description:"",title:"可见",type:"boolean"},placeholder:{description:"",title:"提示文本",type:"string"},tabindex:{description:"",title:"tab索引",type:"number"},textAlign:{description:"",title:"对齐方式",type:"enum",editor:{type:"combo-list",textField:"name",valueField:"value",data:[{value:"left",name:"左对齐"},{value:"center",name:"居中"},{value:"right",name:"右对齐"}]}}}}}},W={dataSource:{type:Array,default:[]},items:{type:Array,default:[]}},ee=G.createPropsResolver(W,Se,be,we,Fe),Ve={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:e=>typeof e=="string"||typeof e=="function"},itemStyle:{type:[String,Function],default:"",validator:e=>typeof e=="string"||typeof e=="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 Ie(e,n){function i(m){const c=[];let h=m.nextNode();for(;h;)c.push(h),h=m.nextNode();return c}function l(m,c){const h=document.createTreeWalker(m,NodeFilter.SHOW_TEXT);return i(h).map(g=>({textNode:g,text:(g.textContent||"").toLocaleLowerCase()})).map(({textNode:g,text:C})=>{const k=[];let S=0;for(;S<C.length;){const F=C.indexOf(c,S);if(F===-1)break;k.push(F),S=F+c.length}return k.map(F=>{const r=new Range;return r.setStart(g,F),r.setEnd(g,F+c.length),r})}).flat()}function d(m){if(!CSS.highlights||(CSS.highlights.clear(),!m||!n))return;const c=l(n.value,m.toLocaleLowerCase()),h=new Highlight(...c);CSS.highlights.set("search-result",h)}return{search:d}}function ie(e,n,i,l,d,m,c,h,V,T){const I=t.ref(e.size),g=t.ref(e.textField),C=t.ref(e.titleField),k=t.ref(e.disableField),S=t.computed(()=>{var v,M;return((v=e.selection)==null?void 0:v.multiSelect)&&((M=e.selection)==null?void 0:M.showCheckbox)}),{onMouseenterItem:F,onMouseoverItem:r,onMouseoutItem:s}=m,{getKey:o,listViewItemClass:u,listViewItemStyle:w,onCheckItem:p,onClickItem:y}=c,O=t.computed(()=>{const v={"text-overflow":"ellipsis",overflow:"hidden","white-space":"nowrap"};return e.itemClass?v:{margin:I.value==="small"?"0.25rem 0":"8px 0",...v}});function N(v,M,P){return v.checked=h.findIndexInSelectedItems(v)>-1,t.createVNode("li",{class:u(v,M),id:o(v,M),key:o(v,M),style:w(v,M),onClick:$=>y(v,M,$),onMouseenter:$=>F($,v,M),onMouseover:$=>r($,v,M),onMouseout:$=>s($,v,M)},[S.value&&t.createVNode("div",{class:"f-list-select",onClick:$=>$.stopPropagation()},[t.createVNode(Z.FCheckbox,{id:"list-"+o(v,M),customClass:"listview-checkbox float-left",disabled:v[k.value],checked:v.checked,"onUpdate:checked":$=>v.checked=$,onChange:$=>{p(v,M,!$.checked)}},null)]),t.createVNode("div",{class:"f-list-content"},[t.createVNode("div",{class:e.itemContentClass,style:O.value,title:v.raw[C.value]||v.raw[g.value]},[v.raw[g.value]])])])}return{renderItem:N}}function Te(e,n,i,l,d,m,c,h,V,T){const I=t.ref(e.multiSelect),g=t.ref(e.disableField),C=t.ref(e.textField),{onMouseenterItem:k,onMouseoverItem:S,onMouseoutItem:F}=m,{getKey:r,listViewItemClass:s,listViewItemStyle:o,onCheckItem:u,onClickItem:w,updateSelectedItems:p}=c;function y(N,v,M){return e.contentTemplate?t.createVNode(t.Fragment,null,[e.contentTemplate({item:N.raw,index:v,selectedItem:M})]):n.slots.content?t.createVNode(t.Fragment,null,[n.slots.content&&n.slots.content({item:N.raw,index:v,selectedItem:M})]):t.createVNode("div",{style:"margin: 10px 0;"},[N.raw[C.value||"name"]])}function O(N,v,M){return t.createVNode("li",{class:s(N,v),id:r(N,v),key:r(N,v),style:o(N,v),onClick:P=>w(N,v,P),onMouseenter:P=>k(P,N,v),onMouseover:P=>S(P,N,v),onMouseout:P=>F(P,N,v)},[I.value&&t.createVNode("div",{class:"f-list-select",onClick:P=>P.stopPropagation()},[t.createVNode(Z.FCheckbox,{id:"list-"+r(N,v),customClass:"listview-checkbox",disabled:N[g.value],checked:N.checked,"onUpdate:checked":P=>N.checked=P,onChange:P=>{u(N,v,!P.checked),p()}},null)]),t.createVNode("div",{class:"f-list-content"},[y(N,v,M)])])}return{renderItem:O}}function ke(e,n,i,l,d,m,c,h,V,T){const I=t.ref(e.multiSelect),g=t.ref(e.disableField),C=t.ref(e.textField),{onMouseenterItem:k,onMouseoverItem:S,onMouseoutItem:F}=m,{getKey:r,listViewItemClass:s,onCheckItem:o,onClickItem:u}=c,{dragstart:w,dragenter:p,dragover:y,dragend:O}=l,{removeItem:N}=V,v=t.computed(()=>({margin:I.value?"10px 0":"10px 0px 10px 14px"}));function M(a,f=""){const x=a.target;x.title=x.scrollWidth>x.clientWidth?f:""}function P(a){return t.createVNode("div",{style:v.value,onMouseenter:f=>M(f,a.raw[C.value||"name"])},[a.raw[C.value||"name"]])}function $(){return n.slots.itemContent?n.slots.itemContent:P}const q=$();function B(a,f,x){return t.createVNode("li",{class:s(a,f),id:r(a,f),key:r(a,f),onClick:b=>u(a,f,b),onMouseenter:b=>k(b,a,f),onMouseover:b=>S(b,a,f),onMouseout:b=>F(b,a,f),draggable:"true",onDragstart:b=>w(b,a,f),onDragenter:b=>p(b,f),onDragend:b=>O(b,a),onDragover:b=>y(b)},[I.value&&t.createVNode("div",{class:"f-list-select",onClick:b=>b.stopPropagation()},[t.createVNode(Z.FCheckbox,{id:"list-"+r(a,f),customClass:"listview-checkbox",disabled:a[g.value],checked:a.checked,"onUpdate:checked":b=>a.checked=b,onChange:b=>o(a,f,!b.checked)},null)]),t.createVNode("div",{class:"f-list-content"},[q(a)]),e.allowDelete&&t.createVNode("div",{class:"f-list-remove",onClick:b=>{b.stopPropagation(),N(f)}},[t.createVNode("div",{class:"f-list-remove-icon"},[t.createVNode("i",{class:"f-icon f-icon-remove_face"},null)])]),t.createVNode("div",{class:"f-list-handle"},[t.createVNode("div",null,[t.createVNode("i",{class:"f-icon f-icon-drag-vertical"},null)])])])}return{renderItem:B}}function xe(e,n,i,l,d,m,c,h,V,T){var r;const I=t.ref(((r=e.group)==null?void 0:r.groupFields)||[]),{collpaseGroupIconClass:g}=d,{toggleGroupRow:C}=T;function k(s,o){s.stopPropagation(),o.collapse=!o.collapse,i.value=C(o.collapse?"collapse":"expand",o,i.value)}function S(s,o,u){return n.slots.group?t.createVNode(t.Fragment,null,[n.slots.content&&n.slots.group({item:s.raw,index:o,selectedItem:u})]):t.createVNode("div",{class:"f-navlookup-recentHeader",onClick:w=>k(w,s)},[t.createVNode("div",{class:"fv-grid-group-row-icon"},[t.createVNode("span",{class:g(s)},null)]),t.createVNode("div",{class:"f-navlookup-recommandLabel"},[s.raw[I.value[s.layer]]])])}function F(s,o,u){return s.layer>-1&&S(s,o,u)}return{renderItem:F}}function Ne(e,n,i,l){const{dataView:d}=i,{updateSelectedItems:m}=l;function c(h){if(h>-1&&h<d.value.length){if(e!=null&&e.checkBeforeRemoveItem&&!e.checkBeforeRemoveItem(d.value[h]))return;const V=d.value.splice(h,1);m(),n.emit("removeItem",V[0])}}return{removeItem:c}}function Me(e,n,i,l,d,m,c,h,V,T){const I=t.ref(e.view),g=t.ref(e.view==="CardView"),C=t.ref({}),k=Ne(e,n,l,V),S=t.computed(()=>({"f-list-view-group":!0,"f-list-view-group-multiselect":e.multiSelect,"d-flex":g.value,"flex-wrap":g.value})),F=t.computed(()=>!!i.value&&i.value.length>0),r=t.computed(()=>i.value.length===0);t.computed(()=>r.value&&!n.slots.empty);function s(){return I.value==="SingleView"?ie:I.value==="DraggableView"?ke:(I.value==="ContentView"||I.value==="CardView")&&(e.contentTemplate||n.slots.content)?Te:ie}const o=s(),{renderItem:u}=o(e,n,i,T,d,m,V,c,k,h),{renderItem:w}=xe(e,n,i,T,d,m,V,c,k,h),p=[u,w];function y(){return i.value.filter(v=>v.visible!==!1).map((v,M)=>p[v.type](v,M,C))}function O(){return t.createVNode("div",{class:"f-list-view-emptydata",style:"margin: 0 auto;"},[t.createVNode("p",{class:"f-empty-title"},[e.emptyTemplate?e.emptyTemplate():n.slots.empty?n.slots.empty():Q.LocaleService.getLocaleValue("listView.emptyMessage")])])}function N(){return t.createVNode("ul",{class:S.value,style:"list-style: none;"},[F.value&&y(),r.value&&O()])}return{renderListArea:N}}function Be(e,n,i){function l(){return n.slots.header&&t.createVNode("div",{class:"f-list-view-header"},[n.slots.header()])}return{renderHeader:l}}function le(e,n,i){const l=t.ref(e.headerClass),d=t.ref(e.placeholder),m=t.ref(""),c=t.computed(()=>!m.value),h=t.computed(()=>!!m.value);function V(C){m.value=""}t.watch(m,C=>{e.enableHighlightSearch&&i.search(C),n.emit("afterSearch",C)});const T=t.computed(()=>{const C={"form-group":!0,"farris-form-group":!0};return l.value&&l.value.split(" ").reduce((S,F)=>(S[F]=!0,S),C),C});function I(C){}function g(){return t.createVNode("div",{class:"f-list-view-header",onClick:t.withModifiers(()=>I,["prevent","stop"])},[t.createVNode("div",{class:T.value},[t.createVNode("div",{class:"farris-input-wrap"},[t.createVNode("div",{class:"f-cmp-inputgroup"},[t.createVNode("div",{class:"input-group f-state-editable"},[t.withDirectives(t.createVNode("input",{class:"form-control f-utils-fill text-left","onUpdate:modelValue":C=>m.value=C,name:"input-group-value",type:"text",placeholder:d.value,autocomplete:"off"},null),[[t.vModelText,m.value]]),t.createVNode("div",{class:"input-group-append"},[h.value&&t.createVNode("span",{class:"input-group-text input-group-clear",onClick:C=>V()},[t.createVNode("i",{class:"f-icon f-icon-close-circle"},null)]),c.value&&t.createVNode("span",{class:"input-group-text"},[t.createVNode("span",{class:"f-icon f-icon-search"},null)])])])])])])])}return{renderHeader:g}}function Oe(){const e=t.ref(""),n=t.ref(-1),i=t.ref(""),l=t.ref(-1),d=t.ref(!1);function m(g,C,k){l.value=k}function c(g,C,k){d.value||(l.value=k)}function h(g,C,k){l.value=-1}function V(){d.value=!0}function T(){d.value=!1}function I(){n.value=-1,e.value=""}return{activeIndex:n,focusedItemId:i,hoverIndex:l,clearActiveItem:I,onMouseenterItem:m,onMouseoverItem:c,onMouseoutItem:h,resumeHover:T,suspendHover:V}}function Pe(e,n,i,l,d){const m=t.ref(e.idField),{dataView:c}=i,h=t.ref(-1),V=t.ref(!1),{activeIndex:T,focusedItemId:I,hoverIndex:g,resumeHover:C,suspendHover:k}=l;let S,F=0,r=0,s=null,o=null;const u=10,w=50;function p(a){if(!a)return null;const{overflowY:f}=getComputedStyle(a);return f==="auto"||f==="scroll"?a:p(a.parentElement)}function y(a,f){o&&clearInterval(o),o=window.setInterval(()=>{f==="up"?a.scrollTop-=u:a.scrollTop+=u},16)}function O(){o&&(clearInterval(o),o=null)}function N(a){const f=a.target;if(s||(s=p(f)),!s){O();return}const x=s.getBoundingClientRect(),b=a.clientY,A=b-x.top,E=x.bottom-b;A<w&&s.scrollTop>0?y(s,"up"):E<w&&s.scrollTop<s.scrollHeight-s.clientHeight?y(s,"down"):O()}function v(a,f){const x=a-F,b=f-r;S.style.left=parseInt(S.style.left)+x+"px",S.style.top=parseInt(S.style.top)+b+"px",F=a,r=f}function M(a){const{left:f,top:x}=a.getBoundingClientRect(),b=a.cloneNode(!0);return b.className=b.className+" f-listview-drag-moving",b.style.cssText=`
position:absolute;
left:${f}px;
top:${document.documentElement.scrollTop?x+document.documentElement.scrollTop:x}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(a).width};
height:${getComputedStyle(a).height};
`,b.children[0].style.cssText="padding: 0 0 0 14px",b.children[0].children[0].style.cssText=`
margin: 10px 0px 10px 14px;
overflow: hidden;text-overflow: ellipsis;white-space: nowrap;
`,b.children[1].style.cssText="flex:1 1 auto; width:100%",b.children[2].style.cssText="padding: 0 14px 0 0",b.children[2].children[0].style.cssText="display: initial",document.body.appendChild(b),b}function P(a,f,x){if(a.stopPropagation(),k(),f){if(S=M(a.target),a.dataTransfer){const b=new Image;b.src="",a.dataTransfer.setDragImage(b,0,0)}F=a.pageX,r=a.pageY,setTimeout(()=>{h.value=x,V.value=!0,f.moving=!0})}}function $(a,f){if(a.preventDefault(),h.value!==f&&h.value!==-1){const x=c.value[h.value],b=d.value[h.value];x&&b&&(c.value.splice(h.value,1),c.value.splice(f,0,x),d.value.splice(h.value,1),d.value.splice(f,0,b),d.value.forEach((A,E)=>{A.index=E,A.raw.__fv_index__=E}),h.value=f,v(a.pageX,a.pageY))}}function q(a){a.preventDefault(),a.dataTransfer&&(a.dataTransfer.dropEffect="move"),v(a.pageX,a.pageY),N(a)}function B(a,f){var b,A;O(),s=null,f&&(f.moving=!1,S&&(document.body.removeChild(S),S=null)),c.value.forEach((E,z)=>{E.__fv_index__=z}),d.value.forEach((E,z)=>{E.index=z,E.raw&&(E.raw.__fv_index__=z)}),V.value=!1,C();const x=((b=f.raw)==null?void 0:b.__fv_index__)??0;g.value=x,T.value=x,I.value=(A=f.raw)==null?void 0:A[m.value],n.emit("change",c.value),n.emit("activeChange",[f.raw])}return{dragstart:P,dragenter:$,dragover:q,dragend:B,isDragging:V}}function Re(e,n,i,l,d,m){const c=t.ref(e.idField),h=t.ref(e.disableField),V=t.ref(e.draggable);t.ref(e.itemClass);const T=t.ref(e.selection.multiSelect??!1),I=t.ref(e.selection.multiSelectMode),{isDragging:g}=l,{activeIndex:C,focusedItemId:k,hoverIndex:S}=d,{clearSelection:F,getSelectedItems:r,toggleSelectItem:s,currentSelectedDataId:o,multiSelectOnlyOnCheck:u}=m,w=t.ref(r()),p=B=>w.value.length===0?!1:w.value.some(a=>{let f="";return a.data?f=a.data[c.value]:f=a[c.value],f===B});function y(){w.value=r()}function O(B,a){return B.raw[c.value]!=null?B.raw[c.value]+"_"+a:""}function N(B,a){const f={"f-list-view-group-item":!0,"f-list-view-draggable-item":V.value,"f-un-click":!B.checked,"f-un-select":!!B.raw[h.value],"f-listview-active":T.value&&p(O(B,a))&&e.showActiveWhenMultiSelect||!T.value&&B.raw[c.value]===o.value||T.value&&!e.showActiveWhenMultiSelect&&B.raw[c.value]===o.value,"f-listview-hover":!g.value&&a===S.value,moving:!!B.moving};if(typeof e.itemClass=="string")return H.getCustomClass(f,e.itemClass);if(typeof e.itemClass=="function"){const x=e.itemClass(B);return H.getCustomClass(f,x)}return f}function v(B,a){const f={};if(typeof e.itemStyle=="string")return H.getCustomStyle(f,e.itemStyle);if(typeof e.itemStyle=="function"){const x=e.itemStyle(B);return H.getCustomStyle(f,x)}return f}const M=t.computed(()=>!T.value);function P(B,a,f){B.checked=f,!B.raw[h.value]&&(M.value&&(k.value=B.raw[c.value]),s(B))}const $=t.computed(()=>!T.value||T.value&&I.value==="OnCheckAndClick");function q(B,a,f){if(B.raw[h.value]){f==null||f.preventDefault(),f==null||f.stopPropagation();return}o.value=B.raw[c.value],k.value=B.raw[c.value],C.value=a,$.value&&(s(B),y()),n.emit("clickItem",{data:w.value,index:a,dataItem:B.raw}),n.emit("activeChange",w.value)}return{getKey:O,selectedItems:w,listViewItemClass:N,listViewItemStyle:v,updateSelectedItems:y,onCheckItem:P,onClickItem:q}}const ae=t.defineComponent({name:"FListView",props:Ve,emits:["afterSearch","checkValuesChange","clickItem","selectItem","unSelectItem","selectionChange","removeItem","change","activeChange","pageIndexChanged","pageSizeChanged","changed","selectionUpdate"],setup(e,n){var ge;const i=t.ref(!1),l=t.ref(),d=t.ref(!0),m=t.ref(((ge=e.rowOption)==null?void 0:ge.rowHeight)||28),c=t.ref(!1),h=t.ref([]),V=0,T=t.ref(e.columns),I=j.useFilter(e,n),g=j.useIdentify(e),C=j.useHierarchy(e),k=j.useGroupData(e,g),S=j.useDataView(e,new Map,I,C,g),F=j.useSelection(e,S,g,h,n),r=Ie(e,l),s=j.usePagination(e,S),o=t.computed(()=>S.dataView.value.length),u=j.useRow(e,n,F,g),w=j.useEdit(e,n,g,u,h),p=j.useVisualDataBound(e,S,m),y=j.useVisualDataCell(e,{},p),O=j.useVisualDataRow(e,S,w,C,g,p,y,m),N=j.useVisualGroupRow(e,g,y,O),v=j.useVisualSummaryRow(e,g,y,O),M=j.useVisualData(e,T,S,o,V,O,N,v),{getVisualData:P}=M;h.value=P(0,o.value+V-1);const $=t.computed(()=>{const R={"f-list-view":!0,"f-list-view-multiple":e.multiSelect};return e.size!=="default"&&(R[`${e.size}-item`]=!0),H.getCustomClass(R,e.customClass)}),q=t.computed(()=>!!n.slots.footer||d.value);function B(){return e.header==="SearchBar"?le:e.header==="ContentHeader"?Be:le}const a=B(),{renderHeader:f}=a(e,n,r),x=Oe(),b=Pe(e,n,S,x,h),A=Re(e,n,h,b,x,F),{renderListArea:E}=Me(e,n,h,S,k,x,F,M,A,b);function z(R){r.search(R)}function De(R){R&&(S.load(R),h.value=P(0,o.value+V-1))}function Qe(){F.clearSelection(),x.clearActiveItem()}function Ze(){return A.selectedItems.value}function et(){return A.selectedItems.value.map(R=>R[g.idField.value])}function me(R){F.selectedValues.value=R,A.updateSelectedItems()}function tt(){return F.currentSelectedDataId.value}function nt(R){u.activeRowById(R)}function it(R){const _=g.idField.value,U=h.value.find(te=>te.raw[_]===R),D=h.value.findIndex(te=>te.raw[_]===R);U&&D>-1&&A.onClickItem(U,D)}function lt(R){const _=g.idField.value,U=h.value.find(D=>D.raw[_]===R);U&&u.changeRow(U)}function at(R){s.updatePagination(R)}function ot(R){return h.value.filter(_=>R.includes(_.raw[e.idField]))}n.expose({search:z,updateDataSource:De,clearSelection:Qe,getSelections:Ze,updateSelectionByIds:me,getSelectionIds:et,activeRowById:nt,getCurrentRowId:tt,clickRowItemById:it,updatePagination:at,getVisibleDataByIds:ot,selectRowById:lt}),t.watch(()=>e.selectionValues,(R,_)=>{R!==_&&me(R)});const rt=j.useSidebar(e,F),{sidebarWidth:st,showSidebarCheckBox:Et}=rt,dt=j.useColumn(e,n),{applyColumnSorter:Ht,columnContext:ct,updateColumnRenderContext:qt}=dt;return j.useVirtualScroll(e,S,h,ct,M,o,V,st,m,i,w),()=>t.createVNode("div",{class:$.value},[f(),t.createVNode("div",{ref:l,class:"f-list-view-content",onMouseover:()=>{c.value||(c.value=!0)},onMouseleave:()=>{c.value&&(c.value=!1)}},[E()]),q.value&&t.createVNode("div",{class:"f-list-view-footer"},[e.footerTemplate?e.footerTemplate():n.slots.footer&&n.slots.footer()])])}}),$e={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/component.schema.json",title:"button",description:"A Farris Visual Button",type:"object",properties:{id:{description:"The unique identifier for a component",type:"string"},type:{description:"The type string of component",type:"string",default:"button"},text:{description:"The text string of component",type:"string"},disabled:{description:"",type:"boolean",default:!1},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},visible:{description:"",type:"boolean",default:!0},size:{description:"大小",type:"string",default:"middle"},icon:{description:"图标",type:"string",default:""},onClick:{description:"点击事件",type:"string",default:""}},required:["id","type","text"],events:{onClick:"点击事件"}},Le=new Map([["appearance",G.resolveAppearance]]);function je(e,n,i){return Object.assign(n,{text:"按钮",appearance:{class:"btn btn-secondary"}}),n}const oe={id:String,type:{type:String,default:"primary"},disabled:{type:Boolean,default:!1},size:{type:String,default:"middle"},icon:{type:String,default:""},text:{type:String,default:""},customClass:{type:String,default:""},customStyle:{type:String,default:""},visible:{type:Boolean,default:!0}};G.createPropsResolver(oe,$e,Le,je);function Ae(e,n){function i(l){l.stopPropagation(),e.disabled||n.emit("click",l)}return{onClickButton:i}}function Ee(e){const n=t.computed(()=>{const l={"f-icon":!0};if(e.icon){const d=e.icon.trim().split(" ");d&&d.length&&d.reduce((m,c)=>(m[c]=!0,m),l)}return l}),i=t.computed(()=>!!(e.icon&&e.icon.trim()));return{iconClass:n,shouldShowIcon:i}}const re=t.defineComponent({name:"FButton",props:oe,emits:["click"],setup(e,n){const{onClickButton:i}=Ae(e,n),{iconClass:l,shouldShowIcon:d}=Ee(e),m=t.computed(()=>{const c={btn:!0,"btn-lg":e.size==="large","btn-md":e.size!=="large"&&e.size!=="small","btn-sm":e.size==="small","btn-icontext":d.value};return c[`btn-${e.type}`]=!0,e.customClass&&(typeof e.customClass=="string"?H.getCustomClass(c,e.customClass):Object.keys(e.customClass).reduce((h,V)=>(h[V]=e.customClass[V],h),c)),c});return()=>e.visible?t.createVNode("button",{class:m.value,disabled:e.disabled,style:e.customStyle,onClick:c=>i(c)},[d.value&&t.createVNode("i",{class:l.value},null),e.text?e.text:"",n.slots.default&&n.slots.default()]):null}}),se=new Map([["appearance",G.resolveAppearance]]),de={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/combo-list.schema.json",title:"combo-list",description:"A Farris Input Component",type:"object",properties:{id:{description:"The unique identifier for a combo list",type:"string"},type:{description:"The type string of number combo list component",type:"string",default:"combo-list"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disabled:{description:"",type:"boolean",default:!1},enableClear:{description:"",type:"boolean",default:!1},editable:{description:"",type:"boolean",default:!1},enableLinkLabel:{description:"",type:"boolean",default:!1},label:{description:"",type:"string",default:""},lableWidth:{description:"",type:"number"},placeholder:{description:"",type:"string",default:"请选择"},idField:{description:"",type:"string",default:"id"},valueField:{description:"",type:"string",default:"id"},titleField:{description:"",type:"string",default:"name"},textField:{description:"",type:"string",default:"name"},dataSourceType:{description:"",type:"string",default:"static"},data:{description:"",type:"array"},dataSource:{description:"",type:"string"},remote:{description:"",type:"string"},readonly:{description:"",type:"boolean",default:!1},required:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},textAlign:{description:"",type:"string",enum:["left","middle","right"],default:"left"},multiSelect:{description:"",type:"boolean",default:!1},maxLength:{description:"",type:"number",default:null},visible:{description:"",type:"boolean",default:!0},onBlur:{description:"",type:"string",default:""},onClickLinkLabel:{description:"",type:"string",default:""},maxHeight:{description:"",type:"number",default:350},minPanelWidth:{description:"",type:"number",default:160},popupOnClick:{description:"",type:"boolean",default:!0},separator:{description:"",type:"string",default:","},viewType:{description:"",type:"string",default:"tag"},enableSearch:{description:"启用搜索",type:"boolean",default:!0},enableHighlightSearch:{description:"启用高亮搜索",type:"boolean",default:!1},beforeOpen:{description:"打卡面板前回调",type:"string"},onChange:{description:"值变化事件",type:"string",default:""},onInput:{description:"输入事件",type:"string",default:""},onClear:{description:"清空事件",type:"string",default:""},onDataChanged:{description:"清空事件",type:"string",default:""}},required:["type"],ignore:["id","appearance","binding","visible"],events:{onClear:"清空事件",onChange:"值变化事件",beforeOpen:"打开下拉面板前事件"}};function ce(e,n,i){return n}function He(){function e(n,i,l){const d={};return d.beforeOpen=m=>i.call("beforeOpen",n,[m,n],l),d}return{resolve:e}}const Y={id:{type:String},data:{type:Array,default:[]},disabled:{default:!1,type:Boolean},dropDownIcon:{type:String,default:'<span class="f-icon f-icon-arrow-chevron-down"></span>'},editable:{default:!1,type:Boolean},enableClear:{default:!0,type:Boolean},enableSearch:{type:Boolean,default:!1},enableTitle:{default:!0,type:Boolean},fitEditor:{default:!1,type:Boolean},forcePlaceholder:{default:!1,type:Boolean},hidePanelOnClear:{default:!0,type:Boolean},idField:{default:"id",type:String},mapFields:{type:Object},maxHeight:{default:350,type:Number},maxLength:{type:Number},multiSelect:{type:Boolean,default:!1},modelValue:{},placeholder:{type:String,default:"请选择"},placement:{type:String,default:"auto"},readonly:{default:!1,type:Boolean},remote:{default:null,type:Object},remoteSearch:{default:!1,type:Boolean},separator:{default:",",type:String},tabIndex:{type:Number,default:-1},textField:{default:"name",type:String},titleField:{default:"name",type:String},valueField:{default:"id",type:String},viewType:{default:"tag",type:String},change:{type:Function,default:()=>{}},focusOnCreated:{type:Boolean,default:!1},selectOnCreated:{type:Boolean,default:!1},autoHeight:{type:Boolean,default:!0},beforeOpen:{type:Function,default:null},load:{type:Function},searchOption:{type:[Boolean,Function],default:!1},enableHighlightSearch:{type:Boolean,default:!0},minPanelWidth:{type:Number,default:160},popupOnClick:{type:Boolean,default:!0}},qe=Object.assign({},Y,{readonly:{}});G.createPropsResolver(Y,de,se,ce);const ue=G.getPropsResolverGenerator(Y,de,se,ce),_e=He(),Ge={dataSource:{type:Array,default:[]},enableSearch:{type:Boolean,default:!1},idField:{type:String,default:"id"},multiSelect:{type:Boolean,default:!1},selectedValues:{type:String,default:""},separator:{type:String,default:","},textField:{type:String,default:"name"},titleField:{type:String,default:"name"},width:{type:Number},maxHeight:{type:Number},valueField:{type:String,default:"id"},onSelectionChange:{type:Function,default:()=>{}},searchOption:{type:[Boolean,Function],default:!1},enableHighlightSearch:{type:Boolean,default:!0}},ze=t.defineComponent({name:"FComboListContainer",props:Ge,emits:["selectionChange"],setup(e,n){const i=t.ref(),l=t.ref(e.dataSource),d=t.ref([]),m=t.ref(e.separator),c=t.ref(e.width),h=t.ref(e.maxHeight),V=t.computed(()=>e.multiSelect),T=t.ref(e.multiSelect?String(e.selectedValues).split(m.value):[e.selectedValues]),I=t.computed(()=>({enableSelectRow:!0,multiSelect:e.multiSelect,multiSelectMode:"OnCheckAndClick",showCheckbox:V.value,showSelectAll:!1,showSelection:!0}));t.watch(e.dataSource,()=>{l.value=e.dataSource}),t.computed(()=>e.enableSearch?"SearchBar":"ContentHeader");const g=t.computed(()=>{const r={};return c.value!==void 0&&(r.width=`${c.value}px`),h.value!==void 0&&h.value>0&&(r.maxHeight=`${h.value}px`),r});function C(r){i.value.search(r)}function k(r){d.value=r.map(s=>Object.assign({},s)),T.value=r.map(s=>s[e.idField]),n.emit("selectionChange",d.value)}function S(r){if(e.enableHighlightSearch)return;let s=[];const{searchOption:o}=e;typeof o=="function"?s=l.value.filter(u=>o(r,u)):s=l.value.filter(u=>u[e.valueField].indexOf(r)>-1||u[e.textField].indexOf(r)>-1),i.value.updateDataSource(s)}t.watch([()=>e.selectedValues],([r])=>{e.multiSelect?T.value=r.split(m.value):T.value=[r]});function F(r){i.value.activeRowById(r)}return t.onMounted(()=>{var r,s;if(!e.multiSelect){const o=(r=T.value)==null?void 0:r[0];let u=o;const w=l.value.map(p=>p[e.valueField||e.idField]);if(!pe.isUndefined(o)&&w.includes(o)){const p=typeof o,y=typeof((s=l.value[0])==null?void 0:s[e.valueField||e.idField]);y==="number"&&p!==y&&(u=Number(o)),y==="boolean"&&p!==y&&(u=o==="true"?!0:o==="false"?!1:o),F(u)}}}),n.expose({search:C,activeRowById:F}),()=>t.createVNode("div",{class:"f-combo-list-container",style:g.value},[t.createVNode(ye,{ref:i,size:"small",itemClass:"f-combo-list-item",itemContentClass:"text-truncate",header:"ContentHeader",headerClass:"f-combo-list-search-box",data:l.value,idField:e.idField,textField:e.textField,titleField:e.titleField,multiSelect:e.multiSelect,selection:I.value,enableHighlightSearch:e.enableHighlightSearch,selectionValues:T.value,onSelectionUpdate:k,onAfterSearch:S},null)])}});function Ue(e,n){const i=t.ref(""),l=t.ref(e.modelValue),d=t.ref(e.data||[]),m=t.ref(e.editable);function c(r){const s=e.multiSelect?String(r).split(e.separator):[String(r)],o=s.map(p=>[p,!0]),u=new Map(o);return d.value.filter(p=>u.has(String(p[e.valueField]))).sort((p,y)=>{const O=s.indexOf(p[e.valueField]),N=s.indexOf(y[e.valueField]);return O-N})}function h(r){const s=c(r).map(o=>o[e.textField]).join(e.separator);i.value=m.value?s||r:s}function V(r){if(e.multiSelect){const s=r.split(e.separator).map(u=>[u,!0]),o=new Map(s);return d.value.filter(u=>o.has(u[e.textField]))}return d.value.filter(s=>""+s[e.textField]===r)}function T(r){const s={};return s[e.idField]=r,s[e.textField]=r,[s]}function I(r){let s=V(r);const o=s&&s.length>0;return m.value&&!o&&(s=T(r)),s}function g(){const{url:r,method:s="GET",headers:o={"Content-Type":"application/json;charset=utf-8;"},body:u=null}=e.remote;if(!r)return;const w=s.toLowerCase()==="get"?{method:s,headers:o}:{method:s,headers:o,body:u};let p=!1;fetch(new Request(r,w)).then(y=>{var N,v;if(y.status===200)return p=!!((v=(N=y.headers)==null?void 0:N.get("content-type"))!=null&&v.includes("application/json")),p?y.text():y.json();throw y.status===405?new Error(Q.LocaleService.getLocaleValue("comboList.remoteError")):new Error(y.statusText)}).then(y=>{y.length&&(d.value=p?JSON.parse(y):y,l.value&&h(l.value))}).catch(y=>{console.warn(y)})}e.remote&&(e.load?e.load().then(r=>{d.value=r}).catch(r=>{console.log(r)}):g()),t.watch(()=>e.data,()=>{d.value=e.data}),t.watch([d],([r],[s])=>{if(e.modelValue!=null&&!e.multiSelect){const o=r.find(u=>u[e.valueField]===l.value);o?o[e.valueField]!==l.value?(l.value=o[e.valueField],i.value=o[e.textField],n.emit("update:modelValue",o[e.valueField]),n.emit("change",[o],o[e.valueField])):i.value!==o[e.textField]&&(i.value=o[e.textField]):l.value!==""&&(l.value="",i.value="",n.emit("update:modelValue",""),n.emit("change",[],""))}}),t.watch(()=>e.modelValue,(r,s)=>{s!==r&&(l.value=r,h(r))});function C(r){d.value=r,n.emit("dataChanged",r)}function k(){return d.value}function S(){return i.value}function F(){const r=typeof e.beforeOpen=="function";return!e.beforeOpen||!r?Promise.resolve(!0):Promise.resolve().then(()=>e.beforeOpen({instance:{updateDataSource:C,getData:k,getDisplayText:S}})).then(s=>typeof(s==null?void 0:s.canOpen)=="boolean"?s==null?void 0:s.canOpen:!0)}return h(e.modelValue),{dataSource:d,displayText:i,editable:m,modelValue:l,beforeOpenList:F,getItemsByDisplayText:V,getItemsByValue:c,getSelectedItemsByDisplayText:I}}const K=t.defineComponent({name:"FComboList",props:Y,emits:["clear","update:modelValue","change","input","dataChanged"],setup(e,n){const i=t.ref(),l=t.ref(),d=t.ref(e.disabled||e.readonly),m=t.ref(e.enableClear),c=t.ref(e.enableSearch),h=t.ref(e.readonly),{dataSource:V,displayText:T,editable:I,modelValue:g,getItemsByDisplayText:C,getItemsByValue:k,beforeOpenList:S}=Ue(e,n),F=t.ref(e.dropDownIcon);F.value==='<span class="f-icon f-icon-arrow-chevron-down"></span>'&&(F.value='<span id="'+e.id+'-icon-dropdown" class="f-icon f-icon-arrow-chevron-down"></span>');const r=t.computed(()=>e.multiSelect),s=t.computed(()=>l.value?l.value.elementRef.getBoundingClientRect().width:0);function o(){!r.value&&l.value&&l.value.hidePopup()}function u(a){T.value=a.map(x=>x[e.textField]).join(e.separator)||g.value;let f="";a.length===1?f=a[0][e.valueField]:f=a.map(x=>x[e.valueField]).join(e.separator),g.value!==f&&(g.value=f,n.emit("update:modelValue",g.value),n.emit("change",a,g.value))}function w(){const a=k(g.value);u(a)}function p(){h.value||T.value}function y(a){var f;g.value="",(f=i.value)==null||f.activeRowById(""),n.emit("clear")}function O(a){var f,x;e.enableSearch&&e.enableHighlightSearch&&((f=i.value)==null||f.search(a)),(x=i.value)==null||x.activeRowById(a),n.emit("change",[g.value],g.value)}function N(a){if(e.multiSelect){const f=C(a);e.viewType;const b=f.map(A=>A[e.idField||e.valueField]).join(e.separator);g.value!==b&&(g.value=b,n.emit("update:modelValue",g.value),n.emit("change",f,g.value))}else a!==g.value&&(g.value=a,n.emit("update:modelValue",g.value),n.emit("change",[],a))}function v(){return T.value}function M(a){const{value:f}=a.target;O(f),n.emit("input",f)}function P(){l.value.hidePopup()}function $(a){V.value=a}function q(){return V.value}const B={getDisplayText:v,hidePopup:P,updateDataSource:$,getData:q};return n.expose(B),t.watch([()=>e.disabled,()=>e.editable,()=>e.enableClear,()=>e.enableSearch,()=>e.readonly],([a,f,x,b,A])=>{d.value=a,I.value=f,m.value=x,c.value=b,h.value=A}),()=>t.createVNode(he,{ref:l,id:e.id,disable:d.value,readonly:h.value,forcePlaceholder:e.forcePlaceholder,editable:I.value,buttonContent:F.value,placeholder:e.placeholder==="请选择"?Q.LocaleService.getLocaleValue("comboList.placeholder"):e.placeholder,enableClear:m.value,maxLength:e.maxLength,tabIndex:e.tabIndex,enableTitle:e.enableTitle,multiSelect:e.multiSelect,inputType:e.multiSelect?e.viewType:"text",modelValue:T.value,"onUpdate:modelValue":a=>T.value=a,focusOnCreated:e.focusOnCreated,selectOnCreated:e.selectOnCreated,onClear:y,onClick:p,onChange:N,onBlur:w,onInput:M,beforeOpen:S,placement:e.placement,popupMinWidth:e.minPanelWidth,popupClass:"f-combo-list-wrapper",popupOnClick:e.popupOnClick,limitContentBySpace:!0},{default:()=>[t.createVNode(ze,{ref:i,idField:e.idField,valueField:e.valueField,textField:e.textField,titleField:e.titleField,dataSource:V.value,selectedValues:g.value,separator:e.separator,multiSelect:e.multiSelect,enableSearch:c.value,maxHeight:e.maxHeight,enableHighlightSearch:e.enableHighlightSearch,width:e.fitEditor?s.value:void 0,onSelectionChange:a=>{u(a),o()}},null)]})}}),fe={convertFrom:(e,n)=>(e.editor.remote||{})[n],convertTo:(e,n,i)=>{e.editor.remote=e.editor.remote||{},e.editor.remote[n]=i}};class We extends Ce.InputBaseProperty{constructor(n,i){super(n,i)}getCommonEditorProperties(n){var i,l,d;return{viewType:{visible:!!((i=n.editor)!=null&&i.multiSelect),description:"数据展示类型,有标签和文本两种方式",title:"数据展示类型",type:"enum",editor:{data:[{id:"tag",name:"标签"},{id:"text",name:"文本"}]},refreshPanelAfterChanged:!0},separator:{visible:!!((l=n.editor)!=null&&l.multiSelect)&&((d=n.editor)==null?void 0:d.viewType)==="text",description:"下拉列表启用多选且数据展示类型为文本时的分隔符",title:"分隔符",type:"enum",editor:{data:[{id:",",name:"逗号(,)"},{id:"#",name:"井号(#)"},{id:".",name:"句号(.)"},{id:"|",name:"竖线(|)"}]}},editable:{description:"",title:"允许编辑",type:"boolean",refreshPanelAfterChanged:!0,readonly:!0}}}getEditorProperties(n){var V,T,I,g,C,k,S,F,r,s,o,u,w;const i=this;let l="";if(((V=n==null?void 0:n.binding)==null?void 0:V.type)==="Form"){const p=this.schemaService.getFieldByIDAndVMID(n.binding.field,this.viewModelId);(T=p==null?void 0:p.schemaField)!=null&&T.type&&(l=p.schemaField.type.$type)}const d=this.getPropertyEditorParams(n,["Variable"]),m=!n.editor.dataSourceType||n.editor.dataSourceType==="static",c=(((g=(I=this.designViewModelField)==null?void 0:I.type)==null?void 0:g.$type)===H.FormSchemaEntityFieldType$Type.StringType||!!this.formRule&&((C=this.designerHostService.schemaService.getFieldByID(n.binding.field))==null?void 0:C.type.$type)===H.FormSchemaEntityFieldType$Type.StringType)&&((k=n.editor)==null?void 0:k.type)==="combo-list"&&((S=n.editor)==null?void 0:S.dataSourceType)==="dynamic"&&!((r=(F=n.editor)==null?void 0:F.remote)!=null&&r.url)&&!((s=n.editor)!=null&&s.multiSelect);return i.getComponentConfig(n,{type:"combo-list"},{enableClear:{description:"",title:"启用清空",type:"boolean"},dataSourceType:{description:"",title:"数据源类型",type:"enum",editor:{default:"static",data:[{id:"static",name:"静态"},{id:"dynamic",name:"动态"}]},refreshPanelAfterChanged:!0},dataSource:{description:"动态数据源绑定变量",visible:c,title:"数据",editor:{...d,controlName:"",enableClear:!0},refreshPanelAfterChanged:!0},data:{description:"",title:"数据",type:"array",visible:m,...i.getItemCollectionEditor(n,n.editor.valueField,n.editor.textField),refreshPanelAfterChanged:!0},url:{visible:n.editor.dataSourceType==="dynamic"&&!((o=n.editor)!=null&&o.dataSource),$converter:fe,description:"",title:"服务端API",type:"string",refreshPanelAfterChanged:!0},body:{visible:!1,$converter:fe,description:"",title:"服务端API参数",type:"string"},textField:{description:"",title:"数据源显示字段",type:"string",readonly:n.editor.dataSourceType!=="dynamic"},valueField:{description:"",title:"数据源值字段",type:"string",readonly:n.editor.dataSourceType!=="dynamic"},multiSelect:{description:"",title:"启用多选",visible:!l||l==="StringType",readonly:((u=n.editor)==null?void 0:u.dataSourceType)==="dynamic"&&!!((w=n.editor)!=null&&w.dataSource),type:"boolean",refreshPanelAfterChanged:!0},maxLength:{description:"",title:"最大输入长度",type:"number",editor:{nullable:!0,min:0,useThousands:!1,needValid:!0}},...this.getCommonEditorProperties(n)},(p,y)=>{if(!p||!y.editor)return;const O=this;switch(p.propertyID){case"dataSourceType":{p.propertyValue==="static"?(y.editor.valueField="value",y.editor.textField="name",y.editor.remote=null):p.propertyValue==="dynamic"&&(y.editor.remote={method:"GET"},y.editor.valueField="value",y.editor.textField="name");break}case"data":{!O.checkEnumDataReadonly(y)&&y.formatter&&(y.formatter.data=[...p.propertyValue]);break}case"viewType":{p.propertyValue==="tag"&&(y.editor.editable=!1);break}case"dataSource":O.afterMutilEditorChanged(y,p)}})}getGridFieldEdtiorProperties(n,i){var V,T,I,g,C,k,S,F,r,s,o,u,w;const l=this;let d="";if(((V=n==null?void 0:n.binding)==null?void 0:V.type)==="Form"){const p=this.schemaService.getFieldByIDAndVMID(n.binding.field,this.viewModelId);(T=p==null?void 0:p.schemaField)!=null&&T.type&&(d=p.schemaField.type.$type)}const m=((g=(I=this.designViewModelField)==null?void 0:I.type)==null?void 0:g.$type)===H.FormSchemaEntityFieldType$Type.StringType&&((C=n.editor)==null?void 0:C.type)==="combo-list"&&((k=n.editor)==null?void 0:k.dataSourceType)==="dynamic"&&!((S=n.editor)!=null&&S.multiSelect),c=this.getPropertyEditorParams(n,["Variable"]);return l.getComponentConfig(n,{type:"combo-list"},{enableClear:{description:"",title:"启用清空",type:"boolean"},dataSourceType:{description:"",title:"数据源类型",type:"enum",editor:{default:"static",data:[{id:"static",name:"静态"},{id:"dynamic",name:"动态"}]},refreshPanelAfterChanged:!0},dataSource:{description:"动态数据源绑定变量",visible:m,title:"数据",editor:{...c,controlName:"",enableClear:!0},refreshPanelAfterChanged:!0},data:{description:"",title:"数据",type:"array",visible:!((F=n.editor)!=null&&F.dataSourceType)||((r=n.editor)==null?void 0:r.dataSourceType)==="static",...l.getItemCollectionEditor(n,(s=n.editor)==null?void 0:s.valueField,(o=n.editor)==null?void 0:o.textField),refreshPanelAfterChanged:!0},textField:{description:"",title:"数据源显示字段",type:"string",readonly:!0},valueField:{description:"",title:"数据源值字段",type:"string",readonly:!0},multiSelect:{description:"",title:"启用多选",visible:d==="StringType",readonly:((u=n.editor)==null?void 0:u.dataSourceType)==="dynamic"&&!!((w=n.editor)!=null&&w.dataSource),type:"boolean",refreshPanelAfterChanged:!0},maxLength:{description:"",title:"最大输入长度",type:"number",editor:{nullable:!0,min:0,useThousands:!1,needValid:!0}},...this.getCommonEditorProperties(n)},(p,y)=>{if(!p||!y.editor)return;const O=this;switch(p.propertyID){case"dataSourceType":{p.propertyValue==="static"?(y.editor.valueField="value",y.editor.textField="name",y.editor.remote=null):p.propertyValue==="dynamic"&&(y.editor.remote={method:"GET"},y.editor.valueField="value",y.editor.textField="name");break}case"data":{!O.checkEnumDataReadonly(y)&&y.formatter&&(y.formatter.data=[...p.propertyValue]);break}case"dataSource":O.afterMutilEditorChanged(y,p)}})}setEditorPropertyRelates(n,i,l){if(!n||!i.editor)return;const d=this;switch(n.propertyID){case"dataSourceType":{n.propertyValue==="static"&&(i.editor.valueField="value",i.editor.textField="name",i.editor.remote={});break}case"data":{!d.checkEnumDataReadonly(i)&&i.formatter&&(i.formatter.data=[...n.propertyValue]);break}}}changeBindingField(n,i,l){var m;super.changeBindingField(n,i);const d=l;n.editor&&((m=d==null?void 0:d.type)==null?void 0:m.$type)===H.FormSchemaEntityFieldType$Type.EnumType&&(n.editor.data=d.type.enumValues||[])}getEventPropertyConfig(n,i="card",l,d){const m=this;let c=[{label:"onChange",name:"值变化事件"},{label:"beforeOpen",name:"下拉面板前事件"}];c=[...c,...this.getInputCommonEvents(n)],l&&(c=c.concat(l)),this.formRule&&(c=c.filter(I=>I.label!=="onChange")),this.appendFieldValueChangeEvents(n,c);const h=m.eventsEditorUtils.formProperties(n,m.viewModelId,c);return{title:"事件",hideTitle:!0,properties:m.createBaseEventProperty(h),tabId:"commands",tabName:"交互",setPropertyRelates(I,g){const C=I.propertyValue;delete n[m.viewModelId],C&&(C.setPropertyRelates=this.setPropertyRelates,m.eventsEditorUtils.saveRelatedParameters(n,m.viewModelId,C.events,C),m.updateLinkedLabel(C,g)),d&&d(I,g,C);const k=m.designViewModelUtils.getDgViewModel(m.viewModelId);k&&m.designViewModelField&&k.changeField(m.designViewModelField.id,{valueChanging:n.fieldValueChanging,valueChanged:n.fieldValueChanged}),n.editor.beforeOpen!==n.beforeOpen&&(n.editor.beforeOpen=n.beforeOpen),n.editor.onChange!==n.onChange&&(n.editor.onChange=n.onChange),n.editor.onClear!==n.onClear&&(n.editor.onClear=n.onClear)}}}}function Ye(e,n){const i=e.schema;function l(d,m){return new We(d,n).getPropertyConfig(i,m)}return{getPropsConfig:l}}const Ke=t.defineComponent({name:"FComboListDesign",props:qe,emits:["clear","update:modelValue","change"],setup(e,n){const i=t.ref(),l=t.inject("designer-host-service"),d=t.inject("design-item-context"),m=Ye(d,l),c=ne.useDesignerComponent(i,d,m);return t.onMounted(()=>{i.value.componentInstance=c}),n.expose(c.value),()=>t.createVNode(ve,{ref:i,buttonContent:e.dropDownIcon,readonly:!0,editable:!1,forcePlaceholder:!0,placeholder:e.placeholder,enableClear:!0},null)}});K.register=(e,n,i,l,d)=>{e["combo-list"]=K,n["combo-list"]=ue(d),l["combo-list"]={callbackResolver:_e}},K.registerDesigner=(e,n,i,l)=>{e["combo-list"]=Ke,n["combo-list"]=ue(l)};const X=H.withInstall(K),J=t.defineComponent({name:"FOrder",props:W,emits:["change"],setup(e,n){const i=t.ref(),l=t.ref(e.items);function d(){var u;const o=Array.isArray(e.items)?e.items:[];l.value=[...o],(u=i.value)==null||u.updateDataSource(l.value)}t.watch(()=>e.items,d);const m=t.ref("排序列"),c=t.ref("排序方式"),h=t.ref("添加排序列"),V=[{id:"asc",name:"升序"},{id:"desc",name:"降序"}],T=t.ref(new Map);function I(){const o=l.value.map(u=>[u.id,!0]);T.value=new Map(o)}I();const g=t.computed(()=>e.dataSource.map(o=>(o.disabled=T.value.has(o.id),o))),C=t.computed(()=>({"f-order":!0}));function k(o){l.value=l.value.filter(u=>u.id!==o.id),I(),n.emit("change",l.value)}function S(){l.value=[...l.value,{id:Date.now().toString(),name:"",order:"asc"}],I(),n.emit("change",l.value)}function F(o){if(o&&o.length===1){const u=o[0],w=l.value.find(p=>p.id===u.id);w&&(w.name=u.name)}I(),n.emit("change",l.value)}function r(o){if(o&&o.length){const u=new Map;o.reduce((w,p)=>(w.set(p.id,p),w),u),l.value=o.map(w=>u.get(w.id)),n.emit("change",l.value)}}function s(){return t.createVNode(ae,{ref:i,style:"flex:1",data:l.value,draggable:!0,view:"DraggableView","keep-order":!0,itemClass:"f-order-item",onRemoveItem:k,onChange:r},{header:()=>t.createVNode("div",{class:"f-order-header"},[t.createVNode("span",{class:"f-order-header-order-field"},[m.value]),t.createVNode("span",{class:"f-order-header-order-type"},[c.value])]),itemContent:o=>t.createVNode("div",{class:"f-order-item-content"},[t.createVNode(X,{class:"f-order-item-content-order-field",data:g.value,valueField:"id",textField:"name",idField:"id",modelValue:o.raw.id,"onUpdate:modelValue":u=>o.raw.id=u,onChange:F,onClear:F},null),t.createVNode(X,{class:"f-order-item-content-order-type",data:V,valueField:"id",textField:"name",idField:"id",modelValue:o.raw.order,"onUpdate:modelValue":u=>o.raw.order=u,onChange:F},null)]),footer:()=>t.createVNode("div",{class:"f-order-footer"},[t.createVNode(re,{type:"link",class:"f-order-add-button",onClick:S},{default:()=>t.createVNode(t.Fragment,null,[t.createVNode("span",{class:"f-order-add-icon"},[t.createVNode("i",{class:"f-icon f-icon-add"},null)]),h.value])})])})}return()=>t.createVNode("div",{class:C.value},[s()])}}),Xe=t.defineComponent({name:"FOrderDesign",props:W,emits:["change"],setup(e,n){const i=t.ref(e.items),l=t.ref("排序列"),d=t.ref("排序方式"),m=t.ref("添加排序列"),c=[{id:"asc",name:"升序"},{id:"desc",name:"降序"}],h=t.ref(new Map),V=t.ref(),T=t.inject("design-item-context"),I=ne.useDesignerComponent(V,T);t.onMounted(()=>{V.value.componentInstance=I}),n.expose(I.value);function g(){const u=i.value.map(w=>[w.id,!0]);h.value=new Map(u)}g();const C=t.computed(()=>e.dataSource.map(u=>(u.disabled=h.value.has(u.id),u))),k=t.computed(()=>({"f-order":!0}));function S(u){i.value=i.value.filter(w=>w.id!==u.id),g(),n.emit("change",i.value)}function F(){i.value=[...i.value,{id:Date.now().toString(),name:"",order:"asc"}],g(),n.emit("change",i.value)}function r(u){g(),n.emit("change",i.value)}function s(u){if(u&&u.length){const w=new Map;u.reduce((p,y)=>(p.set(y.id,y),p),w),i.value=u.map(p=>w.get(p.id)),n.emit("change",i.value)}}function o(){return t.createVNode(ae,{style:"flex:1",data:i.value,draggable:!0,view:"DraggableView","keep-order":!0,itemClass:"f-order-item",onRemoveItem:S,onChange:s},{header:()=>t.createVNode("div",{class:"f-order-header"},[t.createVNode("span",{class:"f-order-header-order-field"},[l.value]),t.createVNode("span",{class:"f-order-header-order-type"},[d.value])]),itemContent:u=>t.createVNode("div",{class:"f-order-item-content"},[t.createVNode(X,{class:"f-order-item-content-order-field",data:C.value,valueField:"id",textField:"name",idField:"id",modelValue:u.id,"onUpdate:modelValue":w=>u.id=w,onChange:r,onClear:r},null),t.createVNode(X,{class:"f-order-item-content-order-type",data:c,valueField:"id",textField:"name",idField:"id",modelValue:u.order,"onUpdate:modelValue":w=>u.order=w,onChange:r},null)]),footer:()=>t.createVNode("div",{class:"f-order-footer"},[t.createVNode(re,{type:"link",class:"f-order-add-button",onClick:F},{default:()=>t.createVNode(t.Fragment,null,[t.createVNode("span",{class:"f-order-add-icon"},[t.createVNode("i",{class:"f-icon f-icon-add"},null)]),m.value])})])})}return()=>t.createVNode("div",{ref:V,class:k.value},[o()])}}),Je={install(e){e.component(J.name,J)},register(e,n,i,l){e.order=J,n.order=ee},registerDesigner(e,n,i){e.order=Xe,n.order=ee}};L.FOrder=J,L.default=Je,L.orderProps=W,L.propsResolver=ee,Object.defineProperties(L,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});