@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
18 lines • 61.8 kB
JavaScript
(function($,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("../list-view/index.umd.js"),require("lodash-es"),require("bignumber.js"),require("../../designer/button-edit/index.umd.js"),require("../property-panel/index.umd.js"),require("../designer-canvas/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","../list-view/index.umd.js","lodash-es","bignumber.js","../../designer/button-edit/index.umd.js","../property-panel/index.umd.js","../designer-canvas/index.umd.js"],t):($=typeof globalThis<"u"?globalThis:$||self,t($.order={},$.Vue,$.dynamicResolver,$.common,$.dataView,$.locale,$.FCheckbox,$.FButtonEdit,$.FListView$1,$.LodashES,$.BigNumber,$.FButtonEditDesign,$.propertyPanel,$.designerCanvas))})(this,function($,t,G,R,L,Z,U,pe,ve,be,Ft,Ce,Se,le){"use strict";const we=new Map([["appearance",G.resolveAppearance]]),Ve={$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 Fe(e,n,s){return n}const Ie={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,Ve,we,Fe,Ie),xe={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 Te(e,n){function s(f){const a=[];let y=f.nextNode();for(;y;)a.push(y),y=f.nextNode();return a}function r(f,a){const y=document.createTreeWalker(f,NodeFilter.SHOW_TEXT);return s(y).map(g=>({textNode:g,text:(g.textContent||"").toLocaleLowerCase()})).map(({textNode:g,text:k})=>{const F=[];let b=0;for(;b<k.length;){const M=k.indexOf(a,b);if(M===-1)break;F.push(M),b=M+a.length}return F.map(M=>{const N=new Range;return N.setStart(g,M),N.setEnd(g,M+a.length),N})}).flat()}function u(f){if(!CSS.highlights||(CSS.highlights.clear(),!f||!n))return;const a=r(n.value,f.toLocaleLowerCase()),y=new Highlight(...a);CSS.highlights.set("search-result",y)}return{search:u}}function ie(e,n,s,r,u,f,a,y,p,x){const v=t.ref(e.size),g=t.ref(e.textField),k=t.ref(e.titleField),F=t.ref(e.disableField),b=t.computed(()=>{var S,B;return((S=e.selection)==null?void 0:S.multiSelect)&&((B=e.selection)==null?void 0:B.showCheckbox)}),{onMouseenterItem:M,onMouseoverItem:N,onMouseoutItem:l}=f,{getKey:i,listViewItemClass:d,listViewItemStyle:c,onCheckItem:o,onClickItem:m}=a,V=t.computed(()=>{const S={"text-overflow":"ellipsis",overflow:"hidden","white-space":"nowrap"};return e.itemClass?S:{margin:v.value==="small"?"0.25rem 0":"8px 0",...S}});function T(S,B,P){return S.checked=y.findIndexInSelectedItems(S)>-1,t.createVNode("li",{class:d(S,B),id:i(S,B),key:i(S,B),style:c(S,B),onClick:H=>m(S,B,H),onMouseenter:H=>M(H,S,B),onMouseover:H=>N(H,S,B),onMouseout:H=>l(H,S,B)},[b.value&&t.createVNode("div",{class:"f-list-select",onClick:H=>H.stopPropagation()},[t.createVNode(U.FCheckbox,{id:"list-"+i(S,B),customClass:"listview-checkbox float-left",disabled:S[F.value],checked:S.checked,"onUpdate:checked":H=>S.checked=H,onChange:H=>{o(S,B,!H.checked)}},null)]),t.createVNode("div",{class:"f-list-content"},[t.createVNode("div",{class:e.itemContentClass,style:V.value,title:S.raw[k.value]||S.raw[g.value]},[S.raw[g.value]])])])}return{renderItem:T}}function ke(e,n,s,r,u,f,a,y,p,x){const v=t.ref(e.multiSelect),g=t.ref(e.disableField),k=t.ref(e.textField),{onMouseenterItem:F,onMouseoverItem:b,onMouseoutItem:M}=f,{getKey:N,listViewItemClass:l,listViewItemStyle:i,onCheckItem:d,onClickItem:c,updateSelectedItems:o}=a;function m(T,S,B){return e.contentTemplate?t.createVNode(t.Fragment,null,[e.contentTemplate({item:T.raw,index:S,selectedItem:B})]):n.slots.content?t.createVNode(t.Fragment,null,[n.slots.content&&n.slots.content({item:T.raw,index:S,selectedItem:B})]):t.createVNode("div",{style:"margin: 10px 0;"},[T.raw[k.value||"name"]])}function V(T,S,B){return t.createVNode("li",{class:l(T,S),id:N(T,S),key:N(T,S),style:i(T,S),onClick:P=>c(T,S,P),onMouseenter:P=>F(P,T,S),onMouseover:P=>b(P,T,S),onMouseout:P=>M(P,T,S)},[v.value&&t.createVNode("div",{class:"f-list-select",onClick:P=>P.stopPropagation()},[t.createVNode(U.FCheckbox,{id:"list-"+N(T,S),customClass:"listview-checkbox",disabled:T[g.value],checked:T.checked,"onUpdate:checked":P=>T.checked=P,onChange:P=>{d(T,S,!P.checked),o()}},null)]),t.createVNode("div",{class:"f-list-content"},[m(T,S,B)])])}return{renderItem:V}}function Ne(e,n,s,r,u,f,a,y,p,x){const v=t.ref(e.multiSelect),g=t.ref(e.disableField),k=t.ref(e.textField),{onMouseenterItem:F,onMouseoverItem:b,onMouseoutItem:M}=f,{getKey:N,listViewItemClass:l,onCheckItem:i,onClickItem:d}=a,{dragstart:c,dragenter:o,dragover:m,dragend:V}=r,{removeItem:T}=p,S=t.computed(()=>({margin:v.value?"10px 0":"10px 0px 10px 14px"}));function B(I,C=""){const w=I.target;w.title=w.scrollWidth>w.clientWidth?C:""}function P(I){return t.createVNode("div",{style:S.value,onMouseenter:C=>B(C,I.raw[k.value||"name"])},[I.raw[k.value||"name"]])}function H(){return n.slots.itemContent?n.slots.itemContent:P}const _=H();function E(I,C,w){return t.createVNode("li",{class:l(I,C),id:N(I,C),key:N(I,C),onClick:h=>d(I,C,h),onMouseenter:h=>F(h,I,C),onMouseover:h=>b(h,I,C),onMouseout:h=>M(h,I,C),draggable:"true",onDragstart:h=>c(h,I,C),onDragenter:h=>o(h,C),onDragend:h=>V(h,I),onDragover:h=>m(h)},[v.value&&t.createVNode("div",{class:"f-list-select",onClick:h=>h.stopPropagation()},[t.createVNode(U.FCheckbox,{id:"list-"+N(I,C),customClass:"listview-checkbox",disabled:I[g.value],checked:I.checked,"onUpdate:checked":h=>I.checked=h,onChange:h=>i(I,C,!h.checked)},null)]),t.createVNode("div",{class:"f-list-content"},[_(I)]),e.allowDelete&&t.createVNode("div",{class:"f-list-remove",onClick:h=>{h.stopPropagation(),T(C)}},[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:E}}function Me(e,n,s,r,u,f,a,y,p,x){var N;const v=t.ref(((N=e.group)==null?void 0:N.groupFields)||[]),{collpaseGroupIconClass:g}=u,{toggleGroupRow:k}=x;function F(l,i){l.stopPropagation(),i.collapse=!i.collapse,s.value=k(i.collapse?"collapse":"expand",i,s.value)}function b(l,i,d){return n.slots.group?t.createVNode(t.Fragment,null,[n.slots.content&&n.slots.group({item:l.raw,index:i,selectedItem:d})]):t.createVNode("div",{class:"f-navlookup-recentHeader",onClick:c=>F(c,l)},[t.createVNode("div",{class:"fv-grid-group-row-icon"},[t.createVNode("span",{class:g(l)},null)]),t.createVNode("div",{class:"f-navlookup-recommandLabel"},[l.raw[v.value[l.layer]]])])}function M(l,i,d){return l.layer>-1&&b(l,i,d)}return{renderItem:M}}function Be(e,n,s,r){const{dataView:u}=s,{updateSelectedItems:f}=r;function a(y){if(y>-1&&y<u.value.length){if(e!=null&&e.checkBeforeRemoveItem&&!e.checkBeforeRemoveItem(u.value[y]))return;const p=u.value.splice(y,1);f(),n.emit("removeItem",p[0])}}return{removeItem:a}}function Pe(e,n,s,r,u,f,a,y,p,x){const v=t.ref(e.view),g=t.ref(e.view==="CardView"),k=t.ref({}),F=Be(e,n,r,p),b=t.computed(()=>({"f-list-view-group":!0,"f-list-view-group-multiselect":e.multiSelect,"d-flex":g.value,"flex-wrap":g.value})),M=t.computed(()=>!!s.value&&s.value.length>0),N=t.computed(()=>s.value.length===0);t.computed(()=>N.value&&!n.slots.empty);function l(){return v.value==="SingleView"?ie:v.value==="DraggableView"?Ne:(v.value==="ContentView"||v.value==="CardView")&&(e.contentTemplate||n.slots.content)?ke:ie}const i=l(),{renderItem:d}=i(e,n,s,x,u,f,p,a,F,y),{renderItem:c}=Me(e,n,s,x,u,f,p,a,F,y),o=[d,c];function m(){return s.value.filter(S=>S.visible!==!1).map((S,B)=>o[S.type](S,B,k))}function V(){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():Z.LocaleService.getLocaleValue("listView.emptyMessage")])])}function T(){return t.createVNode("ul",{class:b.value,style:"list-style: none;"},[M.value&&m(),N.value&&V()])}return{renderListArea:T}}function Ae(e,n,s,r,u){const{showSelectAll:f,selectAll:a,unSelectAll:y,selectAllStatus:p,indeterminateStatus:x}=r;function v(F){F?a():y()}const g=t.computed(()=>"f-list-view-group-item f-combo-list-item f-un-select");function k(){return t.createVNode("div",{class:"f-list-view-header"},[f.value&&u.dataView.value.length>0&&t.createVNode("ul",{class:"f-list-view-group f-list-view-group-multiselect",style:"list-style: none;"},[t.createVNode("li",{class:g.value},[t.createVNode("div",{class:"f-list-select"},[t.createVNode(U,{customClass:"listview-checkbox float-left",modelValue:p.value,indeterminate:x.value,"onUpdate:modelValue":F=>v(F)},null)])])]),n.slots.header&&n.slots.header()])}return{renderHeader:k}}function ae(e,n,s,r,u){const f=t.ref(e.headerClass),a=t.ref(e.placeholder),y=t.ref(""),p=t.computed(()=>!y.value),x=t.computed(()=>!!y.value),{showSelectAll:v,selectAll:g,unSelectAll:k,selectAllStatus:F,indeterminateStatus:b}=r,M=t.computed(()=>"f-list-view-group-item f-combo-list-item f-un-select");function N(o){y.value=""}function l(o){o?g():k()}t.watch(y,o=>{e.enableHighlightSearch&&s.search(o),n.emit("afterSearch",o)});const i=t.computed(()=>{const o={"form-group":!0,"farris-form-group":!0};return f.value&&f.value.split(" ").reduce((V,T)=>(V[T]=!0,V),o),o});function d(o){}function c(){return t.createVNode("div",{class:"f-list-view-header",onClick:t.withModifiers(()=>d,["prevent","stop"])},[v.value&&u.dataView.value.length>0&&t.createVNode("ul",{class:"f-list-view-group f-list-view-group-multiselect",style:"list-style: none;"},[t.createVNode("li",{class:M.value},[t.createVNode("div",{class:"f-list-select"},[t.createVNode(U,{customClass:"listview-checkbox float-left",modelValue:F.value,indeterminate:b.value,"onUpdate:modelValue":o=>l(o)},null)])])]),t.createVNode("div",{class:i.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":o=>y.value=o,name:"input-group-value",type:"text",placeholder:a.value,autocomplete:"off"},null),[[t.vModelText,y.value]]),t.createVNode("div",{class:"input-group-append"},[x.value&&t.createVNode("span",{class:"input-group-text input-group-clear",onClick:o=>N()},[t.createVNode("i",{class:"f-icon f-icon-close-circle"},null)]),p.value&&t.createVNode("span",{class:"input-group-text"},[t.createVNode("span",{class:"f-icon f-icon-search"},null)])])])])])])])}return{renderHeader:c}}function Oe(){const e=t.ref(""),n=t.ref(-1),s=t.ref(""),r=t.ref(-1),u=t.ref(!1);function f(g,k,F){r.value=F}function a(g,k,F){u.value||(r.value=F)}function y(g,k,F){r.value=-1}function p(){u.value=!0}function x(){u.value=!1}function v(){n.value=-1,e.value=""}return{activeIndex:n,focusedItemId:s,hoverIndex:r,clearActiveItem:v,onMouseenterItem:f,onMouseoverItem:a,onMouseoutItem:y,resumeHover:x,suspendHover:p}}function He(e,n,s,r,u){const f=t.ref(e.idField),{dataView:a}=s,y=t.ref(-1),p=t.ref(!1),{activeIndex:x,focusedItemId:v,hoverIndex:g,resumeHover:k,suspendHover:F}=r;let b,M=0,N=0,l=null,i=null;const d=10,c=50;function o(I){if(!I)return null;const{overflowY:C}=getComputedStyle(I);return C==="auto"||C==="scroll"?I:o(I.parentElement)}function m(I,C){i&&clearInterval(i),i=window.setInterval(()=>{C==="up"?I.scrollTop-=d:I.scrollTop+=d},16)}function V(){i&&(clearInterval(i),i=null)}function T(I){const C=I.target;if(l||(l=o(C)),!l){V();return}const w=l.getBoundingClientRect(),h=I.clientY,A=h-w.top,j=w.bottom-h;A<c&&l.scrollTop>0?m(l,"up"):j<c&&l.scrollTop<l.scrollHeight-l.clientHeight?m(l,"down"):V()}function S(I,C){const w=I-M,h=C-N;b.style.left=parseInt(b.style.left)+w+"px",b.style.top=parseInt(b.style.top)+h+"px",M=I,N=C}function B(I){const{left:C,top:w}=I.getBoundingClientRect(),h=I.cloneNode(!0);return h.className=h.className+" f-listview-drag-moving",h.style.cssText=`
position:absolute;
left:${C}px;
top:${document.documentElement.scrollTop?w+document.documentElement.scrollTop:w}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(I).width};
height:${getComputedStyle(I).height};
`,h.children[0].style.cssText="padding: 0 0 0 14px",h.children[0].children[0].style.cssText=`
margin: 10px 0px 10px 14px;
overflow: hidden;text-overflow: ellipsis;white-space: nowrap;
`,h.children[1].style.cssText="flex:1 1 auto; width:100%",h.children[2].style.cssText="padding: 0 14px 0 0",h.children[2].children[0].style.cssText="display: initial",document.body.appendChild(h),h}function P(I,C,w){if(I.stopPropagation(),F(),C){if(b=B(I.target),I.dataTransfer){const h=new Image;h.src="",I.dataTransfer.setDragImage(h,0,0)}M=I.pageX,N=I.pageY,setTimeout(()=>{y.value=w,p.value=!0,C.moving=!0})}}function H(I,C){if(I.preventDefault(),y.value!==C&&y.value!==-1){const w=a.value[y.value],h=u.value[y.value];w&&h&&(a.value.splice(y.value,1),a.value.splice(C,0,w),u.value.splice(y.value,1),u.value.splice(C,0,h),u.value.forEach((A,j)=>{A.index=j,A.raw.__fv_index__=j}),y.value=C,S(I.pageX,I.pageY))}}function _(I){I.preventDefault(),I.dataTransfer&&(I.dataTransfer.dropEffect="move"),S(I.pageX,I.pageY),T(I)}function E(I,C){var h,A;V(),l=null,C&&(C.moving=!1,b&&(document.body.removeChild(b),b=null)),a.value.forEach((j,q)=>{j.__fv_index__=q}),u.value.forEach((j,q)=>{j.index=q,j.raw&&(j.raw.__fv_index__=q)}),p.value=!1,k();const w=((h=C.raw)==null?void 0:h.__fv_index__)??0;g.value=w,x.value=w,v.value=(A=C.raw)==null?void 0:A[f.value],n.emit("change",a.value),n.emit("activeChange",[C.raw])}return{dragstart:P,dragenter:H,dragover:_,dragend:E,isDragging:p}}function $e(e,n,s,r,u,f){var E,I;const a=t.ref(e.idField),y=t.ref(e.disableField),p=t.ref(e.draggable);t.ref(e.itemClass);const x=t.ref(((E=e.selection)==null?void 0:E.multiSelect)??!1),v=t.ref(((I=e.selection)==null?void 0:I.multiSelectMode)||"DependOnCheck"),{isDragging:g}=r,{activeIndex:k,focusedItemId:F,hoverIndex:b}=u,{clearSelection:M,getSelectedItems:N,toggleSelectItem:l,currentSelectedDataId:i,multiSelectOnlyOnCheck:d}=f,c=t.ref(N()),o=C=>c.value.length===0?!1:c.value.some(w=>{let h="";return w.data?h=w.data[a.value]:h=w[a.value],h===C});function m(){c.value=N()}function V(C,w){return C.raw[a.value]!=null?C.raw[a.value]+"_"+w:""}function T(C,w){const h={"f-list-view-group-item":!0,"f-list-view-draggable-item":p.value,"f-un-click":!C.checked,"f-un-select":!!C.raw[y.value],"f-listview-active":x.value&&o(V(C,w))&&e.showActiveWhenMultiSelect||!x.value&&C.raw[a.value]===i.value||x.value&&!e.showActiveWhenMultiSelect&&C.raw[a.value]===i.value,"f-listview-hover":!g.value&&w===b.value,moving:!!C.moving};if(typeof e.itemClass=="string")return R.getCustomClass(h,e.itemClass);if(typeof e.itemClass=="function"){const A=e.itemClass(C);return R.getCustomClass(h,A)}return h}function S(C,w){const h={};if(typeof e.itemStyle=="string")return R.getCustomStyle(h,e.itemStyle);if(typeof e.itemStyle=="function"){const A=e.itemStyle(C);return R.getCustomStyle(h,A)}return h}const B=t.computed(()=>!x.value);function P(C,w,h){C.checked=h,!C.raw[y.value]&&(B.value&&(F.value=C.raw[a.value]),l(C))}const H=t.computed(()=>!x.value||x.value&&v.value==="OnCheckAndClick");function _(C,w,h){if(C.raw[y.value]){h==null||h.preventDefault(),h==null||h.stopPropagation();return}i.value=C.raw[a.value],F.value=C.raw[a.value],k.value=w,H.value&&(l(C),m()),n.emit("clickItem",{data:c.value,index:w,dataItem:C.raw}),n.emit("activeChange",c.value)}return{getKey:V,selectedItems:c,listViewItemClass:T,listViewItemStyle:S,updateSelectedItems:m,onCheckItem:P,onClickItem:_}}const oe=t.defineComponent({name:"FListView",props:xe,emits:["afterSearch","checkValuesChange","clickItem","selectItem","unSelectItem","selectionChange","removeItem","change","activeChange","pageIndexChanged","pageSizeChanged","changed","selectionUpdate"],setup(e,n){var ye;const s=t.ref(!1),r=t.ref(),u=t.ref(!0),f=t.ref(((ye=e.rowOption)==null?void 0:ye.rowHeight)||28),a=t.ref(!1),y=t.ref([]),p=0,x=t.ref(e.columns),v=L.useFilter(e,n),g=L.useIdentify(e),k=L.useHierarchy(e),F=L.useGroupData(e,g),b=L.useDataView(e,new Map,v,k,g),M=L.useSelection(e,b,g,y,n),N=Te(e,r),l=L.usePagination(e,b),i=t.computed(()=>b.dataView.value.length),d=L.useRow(e,n,M,g),c=L.useEdit(e,n,g,d,y),o=L.useVisualDataBound(e,b,f),m=L.useVisualDataCell(e,c,o),V=L.useVisualDataRow(e,b,c,k,g,o,m,f),T=L.useVisualGroupRow(e,g,m,V),S=L.useVisualSummaryRow(e,g,m,V),B=L.useVisualData(e,x,b,i,p,V,T,S),{getVisualData:P}=B;y.value=P(0,i.value+p-1);const H=t.computed(()=>{const O={"f-list-view":!0,"f-list-view-multiple":e.multiSelect};return e.size!=="default"&&(O[`${e.size}-item`]=!0),R.getCustomClass(O,e.customClass)}),_=t.computed(()=>!!n.slots.footer||u.value);function E(){return e.header==="SearchBar"?ae:e.header==="ContentHeader"?Ae:ae}const I=E(),{renderHeader:C}=I(e,n,N,M,b),w=Oe(),h=He(e,n,b,w,y),A=$e(e,n,y,h,w,M),{renderListArea:j}=Pe(e,n,y,b,F,w,M,B,A,h);function q(O){N.search(O)}function ct(O){O&&(b.load(O),y.value=P(0,i.value+p-1))}function ut(){M.clearSelection(),w.clearActiveItem()}function ft(){return A.selectedItems.value}function mt(){return A.selectedItems.value.map(O=>O[g.idField.value])}function he(O){M.selectedValues.value=O,A.updateSelectedItems()}function gt(){return M.currentSelectedDataId.value}function ht(O){d.activeRowById(O)}function yt(O){const D=g.idField.value,z=y.value.find(ne=>ne.raw[D]===O),Q=y.value.findIndex(ne=>ne.raw[D]===O);z&&Q>-1&&A.onClickItem(z,Q)}function pt(O){const D=g.idField.value,z=y.value.find(Q=>Q.raw[D]===O);z&&d.changeRow(z)}function vt(O){l.updatePagination(O)}function bt(O){return y.value.filter(D=>O.includes(D.raw[e.idField]))}n.expose({search:q,updateDataSource:ct,clearSelection:ut,getSelections:ft,updateSelectionByIds:he,getSelectionIds:mt,activeRowById:ht,getCurrentRowId:gt,clickRowItemById:yt,updatePagination:vt,getVisibleDataByIds:bt,selectRowById:pt}),t.watch(()=>e.selectionValues,(O,D)=>{O!==D&&he(O)});const Ct=L.useSidebar(e,M),{sidebarWidth:St,showSidebarCheckBox:Zt}=Ct,wt=L.useColumn(e,n),{applyColumnSorter:en,columnContext:Vt,updateColumnRenderContext:tn}=wt;return L.useVirtualScroll(e,b,y,Vt,B,i,p,St,f,s,c),()=>t.createVNode("div",{class:H.value},[C(),t.createVNode("div",{ref:r,class:"f-list-view-content",onMouseover:()=>{a.value||(a.value=!0)},onMouseleave:()=>{a.value&&(a.value=!1)}},[j()]),_.value&&t.createVNode("div",{class:"f-list-view-footer"},[e.footerTemplate?e.footerTemplate():n.slots.footer&&n.slots.footer()])])}}),Re={$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,s){return Object.assign(n,{text:"按钮",appearance:{class:"btn btn-secondary"}}),n}const re={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(re,Re,Le,je);function Ee(e,n){function s(r){r.stopPropagation(),e.disabled||n.emit("click",r)}return{onClickButton:s}}function qe(e){const n=t.computed(()=>{const r={"f-icon":!0};if(e.icon){const u=e.icon.trim().split(" ");u&&u.length&&u.reduce((f,a)=>(f[a]=!0,f),r)}return r}),s=t.computed(()=>!!(e.icon&&e.icon.trim()));return{iconClass:n,shouldShowIcon:s}}const se=t.defineComponent({name:"FButton",props:re,emits:["click"],setup(e,n){const{onClickButton:s}=Ee(e,n),{iconClass:r,shouldShowIcon:u}=qe(e),f=t.computed(()=>{const a={btn:!0,"btn-lg":e.size==="large","btn-md":e.size!=="large"&&e.size!=="small","btn-sm":e.size==="small","btn-icontext":u.value};return a[`btn-${e.type}`]=!0,e.customClass&&(typeof e.customClass=="string"?R.getCustomClass(a,e.customClass):Object.keys(e.customClass).reduce((y,p)=>(y[p]=e.customClass[p],y),a)),a});return()=>e.visible?t.createVNode("button",{class:f.value,disabled:e.disabled,style:e.customStyle,onClick:a=>s(a)},[u.value&&t.createVNode("i",{class:r.value},null),e.text?e.text:"",n.slots.default&&n.slots.default()]):null}}),de=new Map([["appearance",G.resolveAppearance]]),ce={$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"},beforeHide:{description:"关闭下拉面板前回调",type:"string"},onShown:{description:"面板打开事件",type:"string"},onHidden:{description:"面板关闭事件",type:"string"},onChange:{description:"值变化事件",type:"string",default:""},onInput:{description:"输入事件",type:"string",default:""},onClear:{description:"清空事件",type:"string",default:""},onDataChanged:{description:"清空事件",type:"string",default:""},hideDisabledItems:{description:"隐藏禁用项",type:"boolean",default:!1},expandable:{description:"",type:"boolean",default:!1},expandMode:{description:"",type:"string",default:"text"},expandContent:{description:"",type:"string",default:""},expandDisabled:{description:"",type:"boolean",default:!1},onExpandClick:{description:"",type:"string",default:""},showSelectAll:{description:"",type:"boolean",default:!1}},required:["type"],ignore:["id","appearance","binding","visible"],events:{onClear:"清空事件",onShown:"面板打开事件",onHidden:"面板关闭事件",onChange:"值变化事件",beforeOpen:"打开面板前事件",beforeHide:"关闭面板前事件"}};function ue(e,n,s){return n}function _e(){function e(n,s,r){const u={};return u.beforeOpen=f=>s.call("beforeOpen",n,[f,n],r),u}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},showSelectAll:{type:Boolean,default:!1},modelValue:{type:String,default:""},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},expandable:{type:Boolean,default:!1},expandMode:{type:String,default:"text"},expandContent:{type:String,default:""},expandDisabled:{type:Boolean,default:!1},popupClass:{type:String,default:""},hideDisabledItems:{type:Boolean,default:!1}},De=Object.assign({},Y,{readonly:{}});G.createPropsResolver(Y,ce,de,ue);const fe=G.getPropsResolverGenerator(Y,ce,de,ue),Ge=_e(),Ue={dataSource:{type:Array,default:[]},enableSearch:{type:Boolean,default:!1},idField:{type:String,default:"id"},multiSelect:{type:Boolean,default:!1},showSelectAll:{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:Ue,emits:["selectionChange"],setup(e,n){const s=t.ref(),r=t.ref(e.dataSource),u=t.ref(e.dataSource),f=t.ref([]),a=t.ref(e.separator),y=t.ref(e.width),p=t.ref(e.maxHeight),x=t.computed(()=>e.multiSelect),v=t.ref(e.multiSelect?String(e.selectedValues).split(a.value):[e.selectedValues]),g=t.computed(()=>({enableSelectRow:!0,multiSelect:e.multiSelect,multiSelectMode:"OnCheckAndClick",showCheckbox:x.value,showSelectAll:e.showSelectAll,showSelection:!0}));t.watch(e.dataSource,()=>{r.value=e.dataSource,u.value=e.dataSource}),t.computed(()=>e.enableSearch?"SearchBar":"ContentHeader");const k=t.computed(()=>{const l={};return y.value!==void 0&&(l.width=`${y.value}px`),p.value!==void 0&&p.value>0&&(l.maxHeight=`${p.value}px`),l});function F(l){s.value.search(l)}function b(l){f.value=l.map(i=>Object.assign({},i)),v.value=l.map(i=>i[e.idField]),n.emit("selectionChange",f.value)}function M(l){if(e.enableHighlightSearch)return;let i=[];const{searchOption:d}=e;typeof d=="function"?i=r.value.filter(c=>d(l,c)):i=r.value.filter(c=>c[e.valueField].indexOf(l)>-1||c[e.textField].indexOf(l)>-1),s.value.updateDataSource(i)}t.watch([()=>e.selectedValues],([l])=>{e.multiSelect?l===null?v.value=[]:v.value=l.split(a.value):l===null?v.value=[]:v.value=[l]});function N(l){s.value.activeRowById(l)}return t.onMounted(()=>{var l,i;if(!e.multiSelect){const d=(l=v.value)==null?void 0:l[0];let c=d;const o=r.value.map(m=>m[e.valueField||e.idField]);if(!be.isUndefined(d)&&o.includes(d)){const m=typeof d,V=typeof((i=r.value[0])==null?void 0:i[e.valueField||e.idField]);V==="number"&&m!==V&&(c=Number(d)),V==="boolean"&&m!==V&&(c=d==="true"?!0:d==="false"?!1:d),N(c)}}}),n.expose({search:F,activeRowById:N}),()=>t.createVNode("div",{class:"f-combo-list-container",style:k.value},[t.createVNode(ve,{ref:s,size:"small",itemClass:"f-combo-list-item",itemContentClass:"text-truncate",header:"ContentHeader",headerClass:"f-combo-list-search-box",data:r.value,idField:e.idField,textField:e.textField,titleField:e.titleField,multiSelect:e.multiSelect,selection:g.value,enableHighlightSearch:e.enableHighlightSearch,selectionValues:v.value,onSelectionUpdate:b,onAfterSearch:M},null)])}}),me={property:"all",duration:.3,timingFunction:"cubic-bezier(0.17, 0.89, 0.45, 1)",delay:0},We=(e,n)=>{const s=e.lineHeight/2,r=R.useTouchMomentum({maxOverflowY:44}),u=t.reactive({...me}),f=c=>{n.emit("change",c)},a=t.reactive({value:0,max:0,min:0,start:0,index:0,currentItem:void 0,active:!1}),y=()=>{a.max=e.visiableOptionCount/2*e.lineHeight;const c=e.column.length*e.lineHeight;a.min=a.max-c+e.lineHeight},p=(c=0)=>{y(),a.index=c,a.value=a.max-c*e.lineHeight,a.currentItem=e.column[c]},x=c=>{const o=e.column.length-1,m=Math.min(a.index,o),V=e.column.findIndex(T=>T[e.valueField]===c);return V>=0?V:m},v=c=>{const o=e.column.length-1;return a.index>o?e.column[o]:e.column[c]},g=c=>{c&&(a.currentItem=c,u.duration=0);const o=a.currentItem[e.valueField],m=x(o),V=v(a.index)[e.valueField];p(m),o!==V&&setTimeout(()=>{f(a.currentItem)},u.duration*1e3)},k=()=>{const c=Array.isArray(e.value)?e.value[0]:e.value;p(x(c))};k(),t.watch(()=>e.value,()=>{e.multiSelect||k()}),t.watch(()=>e.column,()=>g());const F=(c,o=a.max,m=a.min)=>{const V=a.start+c;a.value=V>s?Math.min(V,o):Math.max(V,m),a.index=Math.round((a.max-a.value)/e.lineHeight),a.currentItem=v(a.index)},b=R.useTouch(),M=c=>{b.start(c),a.active=!0,a.start=a.value,r.start(a.start),u.duration=0},N=c=>{c.preventDefault(),b.move(c),F(b.deltaY.value,a.max+e.lineHeight,a.min-e.lineHeight),r.move(b.deltaY.value),u.duration=me.duration},l=c=>{const o=c<0,m=c%e.lineHeight>s?1:0,V=Math.floor(c/e.lineHeight);return(o?V-m:V+m)*e.lineHeight+s};return{translateY:a,transition:u,onTouchStart:M,onTouchMove:N,onTouchEnd:()=>{a.start=0;const c=r.end();let o=0;if(c){const{destination:m,duration:V}=r.get(a.value,a.min,a.max);o=m,u.duration=V/1e3}else o=a.value;F(l(o)),f(a.currentItem)},onTransitionend:()=>{a.active=!1},updateTranslate:g}},Ye={column:{type:Array,default:()=>[]},valueField:{type:String,default:"value"},textField:{type:String,default:"text"},value:{type:[Array,String,Number],default:()=>[]},multiSelect:{type:Boolean,default:!1},showIcon:{type:Boolean,default:!1},lineHeight:{type:Number,default:0},visiableOptionCount:{type:Number,default:5}},Xe=t.defineComponent({props:Ye,emits:["change","click"],setup(e,n){const{addUnit:s}=R.useCommonUtils(),{bem:r}=R.useBem("FComboTouchList"),{translateY:u,transition:f,onTouchStart:a,onTouchMove:y,onTouchEnd:p,onTransitionend:x}=We(e,n),v=F=>{n.emit("click",F)},g=t.computed(()=>({transform:`translateY(${s(u.value)})`,transition:`all ${u.active?f.duration:0}s ${f.timingFunction} 0s`})),k=F=>e.showIcon?Array.isArray(e.value)&&e.value.includes(F[e.valueField]):!1;return()=>t.createVNode("div",{class:r("column"),style:g.value,onTouchstart:a,onTouchmove:y,onTouchend:p,onTransitionend:x},[e.column.map(F=>t.createVNode("div",{class:r("column-item"),onClick:()=>v(F)},[t.createVNode("span",null,[F[e.textField]]),k(F)&&t.createVNode("span",{class:`f-icon f-icon-check ${r("column-item-icon")}`},null)]))])}}),Ke={modelValue:{type:[String,Array],default:""},columns:{type:Array,default:()=>[]},title:{type:String,default:""},valueField:{type:String,default:"value"},textField:{type:String,default:"text"},childrenField:{type:String,default:"children"},multiSelect:{type:Boolean,default:!1},lineHeight:{type:Number,default:44},cancelText:{type:String,default:"取消"},confirmText:{type:String,default:"确定"},optionFormatter:{type:Function,default:void 0},visiableOptionCount:{type:Number,default:5},showToolbar:{type:Boolean,default:!0},separator:{type:String,default:","}},Je=(e,n)=>{const{finalValue:s,initValue:r,setSelectedByIndex:u,getSelectedValueByIndex:f}=n,{isArray:a,isFunction:y,isObject:p}=R.useCommonUtils(),x=o=>o&&o[0],v=t.computed(()=>{var o;return((o=e.columns)==null?void 0:o.length)>0&&a(e.columns[0])}),g=o=>{if((o==null?void 0:o.length)===0)return!1;const m=x(o);return m&&a(m[e.childrenField])},k=(o,m)=>{const V=x(o),T=f(m);let S=o.find(P=>P[e.valueField]===T);S=S||V;const B=S[e.childrenField]||[];if(g(B)){const P=k(B,m+1);return[B,...P]}return[B]},F=()=>{const o=e.columns,m=k(o,0);return[o,...m]},b=(o,m)=>{const V=o[e.textField];return y(e.optionFormatter)?e.optionFormatter(m,o):V},M=(o,m)=>o.map(V=>{const T=p(V)?V:{[e.valueField]:V,[e.textField]:V};return T[e.textField]=b(T,m),T}),N=t.computed(()=>{let o=[];return v.value?o=e.columns:g(e.columns)?o=F():o=[e.columns],o.map(M)}),l=()=>N.value.map((o,m)=>{const V=s.value[m];return o.find(S=>S[e.valueField]===V)}).filter(o=>o),i=()=>l().map(o=>o[e.valueField]),d=()=>l().map(o=>o[e.textField]).join("-"),c=()=>{N.value.forEach((o,m)=>{if(e.multiSelect)s.value[m].forEach(T=>{const S=o.find(B=>B[e.valueField]===T);S&&u(m,S)});else{const V=s.value[m],T=o.find(S=>S[e.valueField]===V);T?u(m,T):u(m,x(o))}})};return t.watch(()=>e.modelValue,()=>{r(e.modelValue),c()},{immediate:!0}),{columns:N,getPickeds:l,getValue:i,getTextValue:d}},Qe=e=>{const{isArray:n,isMultiArray:s,isString:r,isDef:u}=R.useCommonUtils(),f=l=>{let i=[];return n(l)?i=l:r(l)?i=l.split(e.separator):u(l)&&(i=[l]),e.multiSelect?s(i)?i:[i]:i},a=t.ref([]),y=l=>{a.value=f(l)},p=t.reactive([]),x=t.computed(()=>p.map(l=>l[e.valueField])),v=t.reactive([]),g=t.computed(()=>v.map(l=>l.map(i=>i[e.valueField])));return{finalValue:a,initValue:y,getSelected:()=>e.multiSelect?v:p,getSelectedValue:()=>e.multiSelect?g.value:x.value,setSelectedByIndex:(l,i)=>{if(e.multiSelect){const d=v[l]||[];d.includes(i)?v[l]=d.filter(c=>c!==i):v[l]=[...d,i]}else p[l]=i},getSelectedByIndex:l=>e.multiSelect?v[l]:p[l],getSelectedValueByIndex:l=>e.multiSelect?g.value[l]:x.value[l]}},Ze=t.defineComponent({props:Ke,emits:["change","confirm","cancel","update:modelValue"],setup(e,n){const{emit:s}=n,{addUnit:r}=R.useCommonUtils(),u=Qe(e),{finalValue:f,getSelectedValue:a,getSelectedValueByIndex:y,getSelected:p,setSelectedByIndex:x}=u,{columns:v}=Je(e,u),g=(d,c=!0)=>{const{value:o,index:m}=d;(c&&!e.multiSelect||!c&&e.multiSelect)&&(s("change",d),x(m,o))},k=()=>{f.value=a(),s("confirm",p()),s("update:modelValue",f.value)},F=()=>{s("cancel")},{bem:b}=R.useBem("FComboTouchList"),M=()=>t.createVNode("div",{class:b("toolbar")},[t.createVNode("div",{class:b("toolbar-left"),onClick:F},[t.createVNode("span",null,[e.cancelText])]),t.createVNode("div",{class:b("toolbar-title")},[t.createVNode("span",null,[e.title])]),t.createVNode("div",{class:b("toolbar-right"),onClick:k},[t.createVNode("span",null,[e.confirmText])])]),N=t.computed(()=>{const d=(e.visiableOptionCount+1)*e.lineHeight;return{height:r(d)}}),l=t.computed(()=>{const d=e.visiableOptionCount*e.lineHeight/2;return{backgroundSize:`100% ${r(d)}`}}),i=()=>t.createVNode("div",{class:b("content")},[t.createVNode("div",{class:b("columns"),style:N.value},[v.value.map((d,c)=>t.createVNode(Xe,{column:d,value:y(c),showIcon:e.multiSelect,textField:e.textField,multiSelect:e.multiSelect,valueField:e.valueField,lineHeight:e.lineHeight,visiableOptionCount:e.visiableOptionCount,onChange:o=>g({value:o,index:c}),onClick:o=>g({value:o,index:c},!1)},null)),!e.multiSelect&&t.createVNode("div",{class:b("mask"),style:l.value},null),t.createVNode("div",{class:b("frame")},null)])]);return()=>t.createVNode("div",{class:b("")},[e.showToolbar&&M(),i()])}});function et(e,n){const s=t.ref(""),r=t.ref(e.modelValue),u=t.ref(e.data||[]),f=t.ref(e.editable),a=t.computed(()=>e.hideDisabledItems?u.value.filter(l=>!l.disabled):u.value);function y(l){const i=e.multiSelect?String(l).split(e.separator):[String(l)],d=i.map(m=>[m,!0]),c=new Map(d);return u.value.filter(m=>c.has(String(m[e.valueField]))).sort((m,V)=>{const T=i.indexOf(m[e.valueField]),S=i.indexOf(V[e.valueField]);return T-S})}function p(l){const i=y(l).map(d=>d[e.textField]).join(e.separator);s.value=f.value?i||l:i}function x(l){if(e.multiSelect){const i=l.split(e.separator).map(c=>[c,!0]),d=new Map(i);return u.value.filter(c=>d.has(c[e.textField]))}return u.value.filter(i=>""+i[e.textField]===l)}function v(l){const i={};return i[e.idField]=l,i[e.textField]=l,[i]}function g(l){let i=x(l);const d=i&&i.length>0;return f.value&&!d&&(i=v(l)),i}function k(){const{url:l,method:i="GET",headers:d={"Content-Type":"application/json;charset=utf-8;"},body:c=null}=e.remote;if(!l)return;const{basePath:o}=R.useFarrisConfig().value,m=i.toLowerCase()==="get"?{method:i,headers:d}:{method:i,headers:d,body:c};let V=!1;fetch(new Request(o+l,m)).then(T=>{var B,P;if(T.status===200)return V=!!((P=(B=T.headers)==null?void 0:B.get("content-type"))!=null&&P.includes("application/json")),V?T.text():T.json();throw T.status===405?new Error(Z.LocaleService.getLocaleValue("comboList.remoteError")):new Error(T.statusText)}).then(T=>{T.length&&(u.value=V?JSON.parse(T):T,r.value&&p(r.value))}).catch(T=>{console.warn(T)})}e.remote&&(e.load?e.load().then(l=>{u.value=l}).catch(l=>{console.log(l)}):k()),t.watch(()=>e.data,()=>{u.value=e.data}),t.watch([u],([l],[i])=>{if(e.modelValue!=null&&!e.multiSelect){const d=l.find(c=>c[e.valueField]===r.value);d?d[e.valueField]!==r.value?(r.value=d[e.valueField],s.value=d[e.textField],n.emit("update:modelValue",d[e.valueField]),n.emit("change",[d],d[e.valueField])):s.value!==d[e.textField]&&(s.value=d[e.textField]):r.value!==""&&(r.value="",s.value="",n.emit("update:modelValue",""),n.emit("change",[],""))}}),t.watch(()=>e.modelValue,(l,i)=>{i!==l&&(r.value=l,p(l))});function F(l){u.value=l,n.emit("dataChanged",l)}function b(){return u.value}function M(){return s.value}async function N(){const l=typeof e.beforeOpen=="function";return!e.beforeOpen||!l?Promise.resolve(!0):Promise.resolve().then(()=>e.beforeOpen({instance:{updateDataSource:F,getData:b,getDisplayText:M}})).then(i=>typeof(i==null?void 0:i.canOpen)=="boolean"?i==null?void 0:i.canOpen:!0)}return p(e.modelValue),{dataSource:u,filteredDataSource:a,displayText:s,editable:f,modelValue:r,beforeOpenList:N,getItemsByDisplayText:x,getItemsByValue:y,getSelectedItemsByDisplayText:g}}const tt=["moz","ms","webkit"];function nt(){let e=0;return n=>{const s=new Date().getTime(),r=Math.max(0,16-(s-e)),u=setTimeout(()=>{n(s+r)},r);return e=s+r,u}}function lt(){if(typeof window>"u")return()=>0;if(window.requestAnimationFrame)return window.requestAnimationFrame.bind(window);const e=tt.filter(n=>`${n}RequestAnimationFrame`in window)[0];return e?window[`${e}RequestAnimationFrame`]:nt()}lt(),t.ref("");function te(){if(typeof window>"u"||typeof navigator>"u")return!1;const e=navigator.userAgent||navigator.vendor||window.opera,n=[/iPhone/i,/iPod/i,/Android.*Mobile/i,/webOS/i,/BlackBerry/i,/IEMobile/i,/Opera Mini/i,/Harmony/i],s=[/iPad/i,/Android(?!.*Mobile)/i,/Tablet/i,/PlayBook/i,/Kindle/i,/Silk/i];for(const p of s)if(p.test(e))return!1;for(const p of n)if(p.test(e))return!0;if(typeof screen>"u")return!1;const r="ontouchstart"in window||navigator.maxTouchPoints>0,u=screen.width,f=screen.height,a=Math.min(u,f);return!!(r&&a<=768)}function it(){const e=te();return e&&document.body.classList.add("f-mobile"),e}typeof document<"u"&&it();const X=t.defineComponent({name:"FComboList",props:Y,emits:["clear","update:modelValue","change","input","dataChanged","expandClick","hidden","shown"],setup(e,n){const s=t.ref(),r=t.ref(),u=t.ref(e.disabled||e.readonly),f=t.ref(e.enableClear),a=t.ref(e.enableSearch),y=t.ref(e.readonly),{dataSource:p,displayText:x,editable:v,modelValue:g,filteredDataSource:k,getItemsByDisplayText:F,getItemsByValue:b,beforeOpenList:M}=et(e,n),N=t.ref(e.dropDownIcon);N.value==='<span class="f-icon f-icon-arrow-chevron-down"></span>'&&(N.value='<span id="'+e.id+'-icon-dropdown" class="f-icon f-icon-arrow-chevron-down"></span>');const l=t.computed(()=>e.multiSelect),i=t.computed(()=>r.value?r.value.elementRef.getBoundingClientRect().width:0);function d(){!l.value&&r.value&&r.value.hidePopup()}function c(w){x.value=w.map(A=>A[e.textField]).join(e.separator)||g.value;let h="";w.length===1?h=w[0][e.valueField]:h=w.map(A=>A[e.valueField]).join(e.separator),g.value!==h&&(g.value=h,n.emit("update:modelValue",g.value),n.emit("change",w,g.value))}function o(){const w=b(g.value);c(w)}function m(){y.value||x.value}function V(w){var h;g.value="",(h=s.value)==null||h.activeRowById(""),n.emit("clear")}function T(w){var h,A;e.enableSearch&&e.enableHighlightSearch&&((h=s.value)==null||h.search(w)),(A=s.value)==null||A.activeRowById(w),n.emit("change",[g.value],g.value)}function S(w){if(e.multiSelect){const h=F(w);e.viewType;const j=h.map(q=>q[e.idField||e.valueField]).join(e.separator);g.value!==j&&(g.value=j,n.emit("update:modelValue",g.value),n.emit("change",h,g.value))}else w!==g.value&&(g.value=w,n.emit("update:modelValue",g.value),n.emit("change",[],w))}function B(){return x.value}function P(w){const{value:h}=w.target;T(h),n.emit("input",h)}function H(){r.value.hidePopup()}function _(w){p.value=w}function E(){return p.value}const I={getDisplayText:B,hidePopup:H,updateDataSource:_,getData:E};n.expose(I),t.watch([()=>e.disabled,()=>e.editable,()=>e.enableClear,()=>e.enableSearch,()=>e.readonly],([w,h,A,j,q])=>{u.value=w,v.value=h,f.value=A,a.value=j,y.value=q});const C=()=>{n.emit("expandClick")};return()=>t.createVNode(pe,{ref:r,id:e.id,disable:u.value,readonly:y.value,forcePlaceholder:e.forcePlaceholder,editable:v.value,buttonContent:N.value,placeholder:e.placeholder==="请选择"?Z.LocaleService.getLocaleValue("comboList.placeholder"):e.placeholder,enableClear:f.value,maxLength:e.maxLength,tabIndex:e.tabIndex,enableTitle:e.enableTitle,multiSelect:e.multiSelect,inputType:e.multiSelect?e.viewType:"text",modelValue:x.value,"onUpdate:modelValue":w=>x.value=w,focusOnCreated:e.focusOnCreated,selectOnCreated:e.selectOnCreated,onClear:V,onClick:m,onChange:S,onBlur:o,onInput:P,beforeOpen:M,placement:te()?"bottom":e.placement,popupMinWidth:e.minPanelWidth,popupClass:"f-combo-list-wrapper",popupOnClick:e.popupOnClick,limitContentBySpace:!0,expandable:e.expandable,expandMode:e.expandMode,expandContent:e.expandContent,expandDisabled:e.expandDisabled,onExpandClick:C,onHidden:()=>n.emit("hidden"),onShown:()=>n.emit("shown")},{default:()=>[te()?t.createVNode(Ze,{modelValue:g.value,valueField:e.valueField,textField:e.textField,columns:p.value,multiSelect:e.multiSelect,separator:e.separator,onConfirm:w=>{const h=e.multiSelect?w[0]||[]:w;c(h),r==null||r.value.hidePopup()},onCancel:()=>{r==null||r.value.hidePopup()}},null):t.createVNode(ze,{class:e.popupClass,ref:s,idField:e.idField,valueField:e.valueField,textField:e.textField,titleField:e.titleField,dataSource:k.value,selectedValues:g.value,separator:e.separator,multiSelect:e.multiSelect,showSelectAll:e.showSelectAll,enableSearch:a.value,maxHeight:e.maxHeight,enableHighlightSearch:e.enableHighlightSearch,width:e.fitEditor?i.value:void 0,onSelectionChange:w=>{c(w),d()}},null)]})}}),ge={convertFrom:(e,n)=>(e.editor.remote||{})[n],convertTo:(e,n,s)=>{e.editor.remote=e.editor.remote||{},e.editor.remote[n]=s}};class at extends Se.InputBaseProperty{constructor(n,s){super(n,s)}getCommonEditorProperties(n){var s,r,u,f;return{showSelectAll:{visible:!!((s=n.editor)!=null&&s.multiSelect),description:"多选模式下是否显示全选复选框",title:"启用全选",type:"boolean",default:!1,refreshPanelAfterChanged:!0},viewType:{visible:!!((r=n.editor)!=null&&r.multiSelect),description:"数据展示类型,有标签和文本两种方式",title:"数据展示类型",type:"enum",editor:{data:[{id:"tag",name:"标签"},{id:"text",name:"文本"}]},refreshPanelAfterChanged:!0},separator:{visible:!!((u=n.editor)!=null&&u.multiSelect)&&((f=n.editor)==null?void 0:f.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},hideDisabledItems:{description:"当数据项禁用时,隐藏数据项",title:"隐藏禁用项",type:"boolean",refreshPanelAfterChanged:!0}}}getEditorProperties(n){var p,x,v,g,k,F,b,M,N,l,i,d,c;const s=this;let r="";if(((p=n==null?void 0:n.binding)==null?void 0:p.type)==="Form"){const o=this.schemaService.getFieldByIDAndVMID(n.binding.field,this.viewModelId);(x=o==null?void 0:o.schemaField)!=null&&x.type&&(r=o.schemaField.type.$type)}const u=this.getPropertyEditorParams(n,["Variable"]),f=!n.editor.dataSourceType||n.editor.dataSourceType==="static",a=(((g=(v=this.designViewModelField)==null?void 0:v.type)==null?void 0:g.$type)===R.FormSchemaEntityFieldType$Type.StringType||!!this.formRule&&((k=this.designerHostService.schemaService.getFieldByID(n.binding.field))==null?void 0:k.type.$type)===R.FormSchemaEntityFieldType$Type.StringType)&&((F=n.editor)==null?void 0:F.type)==="combo-list"&&((b=n.editor)==null?void 0:b.dataSourceType)==="dynamic"&&!((N=(M=n.editor)==null?void 0:M.remote)!=null&&N.url)&&!((l=n.editor)!=null&&l.multiSelect);return s.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:a,title:"数据",editor:{...u,controlName:"",enableClear:!0},refreshPanelAfterChanged:!0},data:{description:"",title:"