UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

1 lines 74.5 kB
(function(R,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("../button-edit/index.umd.js"),require("../common/index.umd.js"),require("../locale/index.umd.js"),require("../dynamic-resolver/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"),require("../number-spinner/index.umd.js"),require("../common/index.umd.js/text-box/use-input-expand"),require("../switch/index.umd.js"),require("../components/index.umd.js"),require("../radio-group/index.umd.js"),require("../checkbox-group/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","../button-edit/index.umd.js","../common/index.umd.js","../locale/index.umd.js","../dynamic-resolver/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","../number-spinner/index.umd.js","../common/index.umd.js/text-box/use-input-expand","../switch/index.umd.js","../components/index.umd.js","../radio-group/index.umd.js","../checkbox-group/index.umd.js"],t):(R=typeof globalThis<"u"?globalThis:R||self,t(R["field-search-box"]={},R.Vue,R.FButtonEdit,R.common,R.locale,R.dynamicResolver,R.FListView,R.LodashES,R.BigNumber,R.FButtonEditDesign,R.propertyPanel,R.designerCanvas,R.numberSpinner,R.useInputExpand,R._switch,R.components,R.radioGroup,R.checkboxGroup))})(this,function(R,t,oe,W,X,te,Ve,re,Vt,Fe,we,Te,z,Ee,Ne,ue,Be,ke){"use strict";const de={fields:{type:Array,default:[]},defaultValue:{type:Object,default:null}};var k=(e=>(e[e.Equal=0]="Equal",e[e.NotEqual=1]="NotEqual",e[e.Greater=2]="Greater",e[e.GreaterEqual=3]="GreaterEqual",e[e.Less=4]="Less",e[e.LessEqual=5]="LessEqual",e[e.Contains=6]="Contains",e[e.NotContains=9]="NotContains",e[e.IsEmpty=12]="IsEmpty",e[e.IsNotEmpty=13]="IsNotEmpty",e))(k||{}),q=(e=>(e[e.Empty=0]="Empty",e[e.And=1]="And",e[e.Or=2]="Or",e))(q||{});const ne=[{label:"包含",value:6},{label:"不包含",value:9},{label:"等于",value:0},{label:"不等于",value:1}],Ie=t.defineComponent({name:"SearchFieldsPanel",props:{fields:Array,searchValue:{type:String,default:""},maxWidth:{type:Number,default:300},activeIndex:{type:Number,default:-1},locales:Object},emits:["fieldSelected"],setup(e,n){const l=t.ref(e.fields||[]),a=t.ref(null);t.watch(()=>e.fields,p=>{l.value=p||[]}),t.watch(()=>e.activeIndex,p=>{p>=0&&a.value&&t.nextTick(()=>{var S;const c=(S=a.value)==null?void 0:S.querySelectorAll(".search-fields-list-item");c&&c[p]&&c[p].scrollIntoView({block:"nearest"})})});function i(p,c){c.dataType==="boolean"?c.value={value:null,isEmpty:null}:e.searchValue?c.value={compare:k.Contains,value:e.searchValue}:c.value={value:null,isEmpty:null,compare:void 0},n.emit("fieldSelected",c)}function m(){return e.searchValue.trim().split(" ").join('<span class="text-muted" style="margin: 0 5px;"> 或 </span>')}const r=p=>{var y,h,V,T;const c=" "+(((h=(y=e.locales)==null?void 0:y.operators)==null?void 0:h.contains)||"包含")+" ",S=" "+((T=(V=e.locales)==null?void 0:V.relation)==null?void 0:T.or)||"或 ";return p.title+(e.searchValue?c+e.searchValue.trim().split(" ").join(S):"")};return()=>{var p;return t.createVNode("div",{class:"search-fields-list p-2",style:{maxWidth:e.maxWidth+"px"}},[t.createVNode("span",{style:"font-weight: bold;"},[((p=e.locales)==null?void 0:p.chooseField)||"选择搜索字段",t.createTextVNode(":")]),t.createVNode("div",{class:"search-fields-list-content mt-2"},[t.createVNode("ul",{ref:a},[l.value.map((c,S)=>{var T,w;const y=r(c),V=S===e.activeIndex?" active":"";return e.searchValue?t.createVNode("li",{class:"search-fields-list-item d-flex flex-row"+V,attr_field:c.field,title:y,onClick:B=>i(B,c)},[t.createVNode("span",{class:"search-field-title",title:c.title},[c.title]),t.createVNode("span",{class:"mx-2 text-muted"},[((w=(T=e.locales)==null?void 0:T.operators)==null?void 0:w.contains)||"包含"]),t.createVNode("div",{class:"f-utils-fill text-primary search-box-keyword",style:"text-overflow: ellipsis;",innerHTML:m()},null)]):t.createVNode("li",{class:"search-fields-list-item"+V,attr_field:c.field,title:y,onClick:B=>i(B,c)},[c.title])})])])])}}}),Pe=t.defineComponent({name:"SearchInput",props:{placeholder:String,fields:Array,popoverOffsetWidth:Number,beforeOpenFieldsPanel:Function,locales:Object},emits:["fieldSelected","inputKeydown","valueChange"],setup(e,n){const l=t.ref(),a=t.ref(),i=t.ref(""),m=t.ref(e.popoverOffsetWidth||20),r=t.ref(),p=t.computed(()=>{var o;const v=(o=l.value)==null?void 0:o.popoverRef;return v?v.shown:!1}),c=t.ref(-1);t.watch(i,()=>{c.value=-1}),t.watch(()=>e.fields,()=>{c.value=-1}),t.watch(p,v=>{v||(c.value=-1)});function S(v){var f,g;const o=!!i.value;(f=l.value)==null||f.clear(),(g=l.value)==null||g.hidePopup(),c.value=-1,n.emit("fieldSelected",v,o)}function y(){var v,o;(v=l.value)==null||v.getTextbox().focus(),(o=l.value)==null||o.showPopup()}const h=v=>{var f,g,d,u,s,x,C,A,I;const o=((f=e.fields)==null?void 0:f.length)||0;if(v.keyCode===38||v.keyCode===40){if(v.preventDefault(),!p.value){(g=l.value)==null||g.showPopup(),c.value=v.keyCode===40?0:Math.max(o-1,0);return}v.keyCode===40?c.value=c.value+1>=o?0:c.value+1:c.value=c.value-1<0?o-1:c.value-1;return}if(v.keyCode===13&&p.value){v.preventDefault(),v.stopPropagation();const O=c.value>=0?c.value:0,G=(d=a.value)==null?void 0:d.$el;if(G){const K=G.querySelectorAll(".search-fields-list-item");K&&K[O]&&(K[O].click(),(s=(u=l.value)==null?void 0:u.getTextbox())==null||s.blur(),i.value&&t.nextTick(()=>{var F;(F=l.value)==null||F.clear()}))}return}if(v.keyCode===27){p.value&&(v.stopPropagation(),v.preventDefault(),(x=l.value)==null||x.hidePopup());return}if(v.keyCode===8&&!i.value)(C=l.value)==null||C.hidePopup(),n.emit("inputKeydown",{key:v.keyCode===8?"backspace":"enter",event:v});else if(!((A=e.fields)!=null&&A.length)){(I=l.value)==null||I.clear(),v.preventDefault();return}},V=v=>{i.value=v.trim().replace(/\s+/g," "),n.emit("valueChange",i.value),p.value||y()},T=t.ref(300);let w=null;function B(v){T.value=window.innerWidth-v.getBoundingClientRect().left-m.value}return t.onMounted(()=>{var o,f;const v=(o=l.value)==null?void 0:o.getTextbox();v?(B(v),w=W.useResizeObserver(v,()=>{B(v)})):(f=r.value)==null||f.focus()}),t.onUnmounted(()=>{w&&w()}),n.expose({showPopover:p,focus:()=>{var v;return(v=l.value)==null?void 0:v.getTextbox().focus()},focusAndShow:y}),()=>{var v;return(v=e.fields)!=null&&v.length?t.createVNode(oe.FButtonEdit,{ref:l,readonly:!1,editable:!0,placeholder:e.placeholder,enableClear:!1,maxLength:100,inputType:"text",popupOnClick:!0,placement:"auto",popupMinWidth:180,showAppendButton:!1,keepWidthWithReference:!1,popupClass:"search-fields-panel",beforeOpen:e.beforeOpenFieldsPanel,onKeydown:h,onChange:V,popupOffsetY:-4},{default:()=>[p.value&&t.createVNode(Ie,{maxWidth:T.value,ref:a,locales:e.locales,fields:e.fields,searchValue:i.value,activeIndex:c.value,onFieldSelected:o=>S(o)},null)]}):t.createVNode("input",{type:"text",class:"form-control",onKeydown:h,ref:r,onInput:o=>{o.target.value="",o.preventDefault()},placeholder:""},null)}}}),se=new Map([["appearance",te.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 fe(e,n,l){return n}function Ae(){function e(n,l,a){const i={};return i.beforeOpen=m=>l.call("beforeOpen",n,[m,n],a),i}return{resolve:e}}const Z={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}},Le=Object.assign({},Z,{readonly:{}});te.createPropsResolver(Z,ce,se,fe);const me=te.getPropsResolverGenerator(Z,ce,se,fe),Me=Ae(),Oe={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}},qe=t.defineComponent({name:"FComboListContainer",props:Oe,emits:["selectionChange"],setup(e,n){const l=t.ref(),a=t.ref(e.dataSource),i=t.ref(e.dataSource),m=t.ref([]),r=t.ref(e.separator),p=t.ref(e.width),c=t.ref(e.maxHeight),S=t.computed(()=>e.multiSelect),y=t.ref(e.multiSelect?String(e.selectedValues).split(r.value):[e.selectedValues]),h=t.computed(()=>({enableSelectRow:!0,multiSelect:e.multiSelect,multiSelectMode:"OnCheckAndClick",showCheckbox:S.value,showSelectAll:e.showSelectAll,showSelection:!0}));t.watch(e.dataSource,()=>{a.value=e.dataSource,i.value=e.dataSource}),t.computed(()=>e.enableSearch?"SearchBar":"ContentHeader");const V=t.computed(()=>{const o={};return p.value!==void 0&&(o.width=`${p.value}px`),c.value!==void 0&&c.value>0&&(o.maxHeight=`${c.value}px`),o});function T(o){l.value.search(o)}function w(o){m.value=o.map(f=>Object.assign({},f)),y.value=o.map(f=>f[e.idField]),n.emit("selectionChange",m.value)}function B(o){if(e.enableHighlightSearch)return;let f=[];const{searchOption:g}=e;typeof g=="function"?f=a.value.filter(d=>g(o,d)):f=a.value.filter(d=>d[e.valueField].indexOf(o)>-1||d[e.textField].indexOf(o)>-1),l.value.updateDataSource(f)}t.watch([()=>e.selectedValues],([o])=>{e.multiSelect?o===null?y.value=[]:y.value=o.split(r.value):o===null?y.value=[]:y.value=[o]});function v(o){l.value.activeRowById(o)}return t.onMounted(()=>{var o,f;if(!e.multiSelect){const g=(o=y.value)==null?void 0:o[0];let d=g;const u=a.value.map(s=>s[e.valueField||e.idField]);if(!re.isUndefined(g)&&u.includes(g)){const s=typeof g,x=typeof((f=a.value[0])==null?void 0:f[e.valueField||e.idField]);x==="number"&&s!==x&&(d=Number(g)),x==="boolean"&&s!==x&&(d=g==="true"?!0:g==="false"?!1:g),v(d)}}}),n.expose({search:T,activeRowById:v}),()=>t.createVNode("div",{class:"f-combo-list-container",style:V.value},[t.createVNode(Ve,{ref:l,size:"small",itemClass:"f-combo-list-item",itemContentClass:"text-truncate",header:"ContentHeader",headerClass:"f-combo-list-search-box",data:a.value,idField:e.idField,textField:e.textField,titleField:e.titleField,multiSelect:e.multiSelect,selection:h.value,enableHighlightSearch:e.enableHighlightSearch,selectionValues:y.value,onSelectionUpdate:w,onAfterSearch:B},null)])}}),he={property:"all",duration:.3,timingFunction:"cubic-bezier(0.17, 0.89, 0.45, 1)",delay:0},He=(e,n)=>{const l=e.lineHeight/2,a=W.useTouchMomentum({maxOverflowY:44}),i=t.reactive({...he}),m=d=>{n.emit("change",d)},r=t.reactive({value:0,max:0,min:0,start:0,index:0,currentItem:void 0,active:!1}),p=()=>{r.max=e.visiableOptionCount/2*e.lineHeight;const d=e.column.length*e.lineHeight;r.min=r.max-d+e.lineHeight},c=(d=0)=>{p(),r.index=d,r.value=r.max-d*e.lineHeight,r.currentItem=e.column[d]},S=d=>{const u=e.column.length-1,s=Math.min(r.index,u),x=e.column.findIndex(C=>C[e.valueField]===d);return x>=0?x:s},y=d=>{const u=e.column.length-1;return r.index>u?e.column[u]:e.column[d]},h=d=>{d&&(r.currentItem=d,i.duration=0);const u=r.currentItem[e.valueField],s=S(u),x=y(r.index)[e.valueField];c(s),u!==x&&setTimeout(()=>{m(r.currentItem)},i.duration*1e3)},V=()=>{const d=Array.isArray(e.value)?e.value[0]:e.value;c(S(d))};V(),t.watch(()=>e.value,()=>{e.multiSelect||V()}),t.watch(()=>e.column,()=>h());const T=(d,u=r.max,s=r.min)=>{const x=r.start+d;r.value=x>l?Math.min(x,u):Math.max(x,s),r.index=Math.round((r.max-r.value)/e.lineHeight),r.currentItem=y(r.index)},w=W.useTouch(),B=d=>{w.start(d),r.active=!0,r.start=r.value,a.start(r.start),i.duration=0},v=d=>{d.preventDefault(),w.move(d),T(w.deltaY.value,r.max+e.lineHeight,r.min-e.lineHeight),a.move(w.deltaY.value),i.duration=he.duration},o=d=>{const u=d<0,s=d%e.lineHeight>l?1:0,x=Math.floor(d/e.lineHeight);return(u?x-s:x+s)*e.lineHeight+l};return{translateY:r,transition:i,onTouchStart:B,onTouchMove:v,onTouchEnd:()=>{r.start=0;const d=a.end();let u=0;if(d){const{destination:s,duration:x}=a.get(r.value,r.min,r.max);u=s,i.duration=x/1e3}else u=r.value;T(o(u)),m(r.currentItem)},onTransitionend:()=>{r.active=!1},updateTranslate:h}},Re={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}},je=t.defineComponent({props:Re,emits:["change","click"],setup(e,n){const{addUnit:l}=W.useCommonUtils(),{bem:a}=W.useBem("FComboTouchList"),{translateY:i,transition:m,onTouchStart:r,onTouchMove:p,onTouchEnd:c,onTransitionend:S}=He(e,n),y=T=>{n.emit("click",T)},h=t.computed(()=>({transform:`translateY(${l(i.value)})`,transition:`all ${i.active?m.duration:0}s ${m.timingFunction} 0s`})),V=T=>e.showIcon?Array.isArray(e.value)&&e.value.includes(T[e.valueField]):!1;return()=>t.createVNode("div",{class:a("column"),style:h.value,onTouchstart:r,onTouchmove:p,onTouchend:c,onTransitionend:S},[e.column.map(T=>t.createVNode("div",{class:a("column-item"),onClick:()=>y(T)},[t.createVNode("span",null,[T[e.textField]]),V(T)&&t.createVNode("span",{class:`f-icon f-icon-check ${a("column-item-icon")}`},null)]))])}}),$e={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:","}},We=(e,n)=>{const{finalValue:l,initValue:a,setSelectedByIndex:i,getSelectedValueByIndex:m}=n,{isArray:r,isFunction:p,isObject:c}=W.useCommonUtils(),S=u=>u&&u[0],y=t.computed(()=>{var u;return((u=e.columns)==null?void 0:u.length)>0&&r(e.columns[0])}),h=u=>{if((u==null?void 0:u.length)===0)return!1;const s=S(u);return s&&r(s[e.childrenField])},V=(u,s)=>{const x=S(u),C=m(s);let A=u.find(O=>O[e.valueField]===C);A=A||x;const I=A[e.childrenField]||[];if(h(I)){const O=V(I,s+1);return[I,...O]}return[I]},T=()=>{const u=e.columns,s=V(u,0);return[u,...s]},w=(u,s)=>{const x=u[e.textField];return p(e.optionFormatter)?e.optionFormatter(s,u):x},B=(u,s)=>u.map(x=>{const C=c(x)?x:{[e.valueField]:x,[e.textField]:x};return C[e.textField]=w(C,s),C}),v=t.computed(()=>{let u=[];return y.value?u=e.columns:h(e.columns)?u=T():u=[e.columns],u.map(B)}),o=()=>v.value.map((u,s)=>{const x=l.value[s];return u.find(A=>A[e.valueField]===x)}).filter(u=>u),f=()=>o().map(u=>u[e.valueField]),g=()=>o().map(u=>u[e.textField]).join("-"),d=()=>{v.value.forEach((u,s)=>{if(e.multiSelect)l.value[s].forEach(C=>{const A=u.find(I=>I[e.valueField]===C);A&&i(s,A)});else{const x=l.value[s],C=u.find(A=>A[e.valueField]===x);C?i(s,C):i(s,S(u))}})};return t.watch(()=>e.modelValue,()=>{a(e.modelValue),d()},{immediate:!0}),{columns:v,getPickeds:o,getValue:f,getTextValue:g}},Ge=e=>{const{isArray:n,isMultiArray:l,isString:a,isDef:i}=W.useCommonUtils(),m=o=>{let f=[];return n(o)?f=o:a(o)?f=o.split(e.separator):i(o)&&(f=[o]),e.multiSelect?l(f)?f:[f]:f},r=t.ref([]),p=o=>{r.value=m(o)},c=t.reactive([]),S=t.computed(()=>c.map(o=>o[e.valueField])),y=t.reactive([]),h=t.computed(()=>y.map(o=>o.map(f=>f[e.valueField])));return{finalValue:r,initValue:p,getSelected:()=>e.multiSelect?y:c,getSelectedValue:()=>e.multiSelect?h.value:S.value,setSelectedByIndex:(o,f)=>{if(e.multiSelect){const g=y[o]||[];g.includes(f)?y[o]=g.filter(d=>d!==f):y[o]=[...g,f]}else c[o]=f},getSelectedByIndex:o=>e.multiSelect?y[o]:c[o],getSelectedValueByIndex:o=>e.multiSelect?h.value[o]:S.value[o]}},Ue=t.defineComponent({props:$e,emits:["change","confirm","cancel","update:modelValue"],setup(e,n){const{emit:l}=n,{addUnit:a}=W.useCommonUtils(),i=Ge(e),{finalValue:m,getSelectedValue:r,getSelectedValueByIndex:p,getSelected:c,setSelectedByIndex:S}=i,{columns:y}=We(e,i),h=(g,d=!0)=>{const{value:u,index:s}=g;(d&&!e.multiSelect||!d&&e.multiSelect)&&(l("change",g),S(s,u))},V=()=>{m.value=r(),l("confirm",c()),l("update:modelValue",m.value)},T=()=>{l("cancel")},{bem:w}=W.useBem("FComboTouchList"),B=()=>t.createVNode("div",{class:w("toolbar")},[t.createVNode("div",{class:w("toolbar-left"),onClick:T},[t.createVNode("span",null,[e.cancelText])]),t.createVNode("div",{class:w("toolbar-title")},[t.createVNode("span",null,[e.title])]),t.createVNode("div",{class:w("toolbar-right"),onClick:V},[t.createVNode("span",null,[e.confirmText])])]),v=t.computed(()=>{const g=(e.visiableOptionCount+1)*e.lineHeight;return{height:a(g)}}),o=t.computed(()=>{const g=e.visiableOptionCount*e.lineHeight/2;return{backgroundSize:`100% ${a(g)}`}}),f=()=>t.createVNode("div",{class:w("content")},[t.createVNode("div",{class:w("columns"),style:v.value},[y.value.map((g,d)=>t.createVNode(je,{column:g,value:p(d),showIcon:e.multiSelect,textField:e.textField,multiSelect:e.multiSelect,valueField:e.valueField,lineHeight:e.lineHeight,visiableOptionCount:e.visiableOptionCount,onChange:u=>h({value:u,index:d}),onClick:u=>h({value:u,index:d},!1)},null)),!e.multiSelect&&t.createVNode("div",{class:w("mask"),style:o.value},null),t.createVNode("div",{class:w("frame")},null)])]);return()=>t.createVNode("div",{class:w("")},[e.showToolbar&&B(),f()])}});function Ke(e,n){const l=t.ref(""),a=t.ref(e.modelValue),i=t.ref(e.data||[]),m=t.ref(e.editable),r=t.computed(()=>e.hideDisabledItems?i.value.filter(o=>!o.disabled):i.value);function p(o){const f=e.multiSelect?String(o).split(e.separator):[String(o)],g=f.map(s=>[s,!0]),d=new Map(g);return i.value.filter(s=>d.has(String(s[e.valueField]))).sort((s,x)=>{const C=f.indexOf(s[e.valueField]),A=f.indexOf(x[e.valueField]);return C-A})}function c(o){const f=p(o).map(g=>g[e.textField]).join(e.separator);l.value=m.value?f||o:f}function S(o){if(e.multiSelect){const f=o.split(e.separator).map(d=>[d,!0]),g=new Map(f);return i.value.filter(d=>g.has(d[e.textField]))}return i.value.filter(f=>""+f[e.textField]===o)}function y(o){const f={};return f[e.idField]=o,f[e.textField]=o,[f]}function h(o){let f=S(o);const g=f&&f.length>0;return m.value&&!g&&(f=y(o)),f}function V(){const{url:o,method:f="GET",headers:g={"Content-Type":"application/json;charset=utf-8;"},body:d=null}=e.remote;if(!o)return;const{basePath:u}=W.useFarrisConfig().value,s=f.toLowerCase()==="get"?{method:f,headers:g}:{method:f,headers:g,body:d};let x=!1;fetch(new Request(u+o,s)).then(C=>{var I,O;if(C.status===200)return x=!!((O=(I=C.headers)==null?void 0:I.get("content-type"))!=null&&O.includes("application/json")),x?C.text():C.json();throw C.status===405?new Error(X.LocaleService.getLocaleValue("comboList.remoteError")):new Error(C.statusText)}).then(C=>{C.length&&(i.value=x?JSON.parse(C):C,a.value&&c(a.value))}).catch(C=>{console.warn(C)})}e.remote&&(e.load?e.load().then(o=>{i.value=o}).catch(o=>{console.log(o)}):V()),t.watch(()=>e.data,()=>{i.value=e.data}),t.watch([i],([o],[f])=>{if(e.modelValue!=null&&!e.multiSelect){const g=o.find(d=>d[e.valueField]===a.value);g?g[e.valueField]!==a.value?(a.value=g[e.valueField],l.value=g[e.textField],n.emit("update:modelValue",g[e.valueField]),n.emit("change",[g],g[e.valueField])):l.value!==g[e.textField]&&(l.value=g[e.textField]):a.value!==""&&(a.value="",l.value="",n.emit("update:modelValue",""),n.emit("change",[],""))}}),t.watch(()=>e.modelValue,(o,f)=>{f!==o&&(a.value=o,c(o))});function T(o){i.value=o,n.emit("dataChanged",o)}function w(){return i.value}function B(){return l.value}async function v(){const o=typeof e.beforeOpen=="function";return!e.beforeOpen||!o?Promise.resolve(!0):Promise.resolve().then(()=>e.beforeOpen({instance:{updateDataSource:T,getData:w,getDisplayText:B}})).then(f=>typeof(f==null?void 0:f.canOpen)=="boolean"?f==null?void 0:f.canOpen:!0)}return c(e.modelValue),{dataSource:i,filteredDataSource:r,displayText:l,editable:m,modelValue:a,beforeOpenList:v,getItemsByDisplayText:S,getItemsByValue:p,getSelectedItemsByDisplayText:h}}const ze=["moz","ms","webkit"];function _e(){let e=0;return n=>{const l=new Date().getTime(),a=Math.max(0,16-(l-e)),i=setTimeout(()=>{n(l+a)},a);return e=l+a,i}}function De(){if(typeof window>"u")return()=>0;if(window.requestAnimationFrame)return window.requestAnimationFrame.bind(window);const e=ze.filter(n=>`${n}RequestAnimationFrame`in window)[0];return e?window[`${e}RequestAnimationFrame`]:_e()}De(),t.ref("");function le(){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],l=[/iPad/i,/Android(?!.*Mobile)/i,/Tablet/i,/PlayBook/i,/Kindle/i,/Silk/i];for(const c of l)if(c.test(e))return!1;for(const c of n)if(c.test(e))return!0;if(typeof screen>"u")return!1;const a="ontouchstart"in window||navigator.maxTouchPoints>0,i=screen.width,m=screen.height,r=Math.min(i,m);return!!(a&&r<=768)}function Ye(){const e=le();return e&&document.body.classList.add("f-mobile"),e}typeof document<"u"&&Ye();const Y=t.defineComponent({name:"FComboList",props:Z,emits:["clear","update:modelValue","change","input","dataChanged","expandClick","hidden","shown"],setup(e,n){const l=t.ref(),a=t.ref(),i=t.ref(e.disabled||e.readonly),m=t.ref(e.enableClear),r=t.ref(e.enableSearch),p=t.ref(e.readonly),{dataSource:c,displayText:S,editable:y,modelValue:h,filteredDataSource:V,getItemsByDisplayText:T,getItemsByValue:w,beforeOpenList:B}=Ke(e,n),v=t.ref(e.dropDownIcon);v.value==='<span class="f-icon f-icon-arrow-chevron-down"></span>'&&(v.value='<span id="'+e.id+'-icon-dropdown" class="f-icon f-icon-arrow-chevron-down"></span>');const o=t.computed(()=>e.multiSelect),f=t.computed(()=>a.value?a.value.elementRef.getBoundingClientRect().width:0);function g(){!o.value&&a.value&&a.value.hidePopup()}function d(N){S.value=N.map($=>$[e.textField]).join(e.separator)||h.value;let P="";N.length===1?P=N[0][e.valueField]:P=N.map($=>$[e.valueField]).join(e.separator),h.value!==P&&(h.value=P,n.emit("update:modelValue",h.value),n.emit("change",N,h.value))}function u(){const N=w(h.value);d(N)}function s(){p.value||S.value}function x(N){var P;h.value="",(P=l.value)==null||P.activeRowById(""),n.emit("clear")}function C(N){var P,$;e.enableSearch&&e.enableHighlightSearch&&((P=l.value)==null||P.search(N)),($=l.value)==null||$.activeRowById(N),n.emit("change",[h.value],h.value)}function A(N){if(e.multiSelect){const P=T(N);e.viewType;const U=P.map(_=>_[e.idField||e.valueField]).join(e.separator);h.value!==U&&(h.value=U,n.emit("update:modelValue",h.value),n.emit("change",P,h.value))}else N!==h.value&&(h.value=N,n.emit("update:modelValue",h.value),n.emit("change",[],N))}function I(){return S.value}function O(N){const{value:P}=N.target;C(P),n.emit("input",P)}function G(){a.value.hidePopup()}function K(N){c.value=N}function F(){return c.value}const L={getDisplayText:I,hidePopup:G,updateDataSource:K,getData:F};n.expose(L),t.watch([()=>e.disabled,()=>e.editable,()=>e.enableClear,()=>e.enableSearch,()=>e.readonly],([N,P,$,U,_])=>{i.value=N,y.value=P,m.value=$,r.value=U,p.value=_});const H=()=>{n.emit("expandClick")};return()=>t.createVNode(oe,{ref:a,id:e.id,disable:i.value,readonly:p.value,forcePlaceholder:e.forcePlaceholder,editable:y.value,buttonContent:v.value,placeholder:e.placeholder==="请选择"?X.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:S.value,"onUpdate:modelValue":N=>S.value=N,focusOnCreated:e.focusOnCreated,selectOnCreated:e.selectOnCreated,onClear:x,onClick:s,onChange:A,onBlur:u,onInput:O,beforeOpen:B,placement:le()?"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:H,onHidden:()=>n.emit("hidden"),onShown:()=>n.emit("shown")},{default:()=>[le()?t.createVNode(Ue,{modelValue:h.value,valueField:e.valueField,textField:e.textField,columns:c.value,multiSelect:e.multiSelect,separator:e.separator,onConfirm:N=>{const P=e.multiSelect?N[0]||[]:N;d(P),a==null||a.value.hidePopup()},onCancel:()=>{a==null||a.value.hidePopup()}},null):t.createVNode(qe,{class:e.popupClass,ref:l,idField:e.idField,valueField:e.valueField,textField:e.textField,titleField:e.titleField,dataSource:V.value,selectedValues:h.value,separator:e.separator,multiSelect:e.multiSelect,showSelectAll:e.showSelectAll,enableSearch:r.value,maxHeight:e.maxHeight,enableHighlightSearch:e.enableHighlightSearch,width:e.fitEditor?f.value:void 0,onSelectionChange:N=>{d(N),g()}},null)]})}}),pe={convertFrom:(e,n)=>(e.editor.remote||{})[n],convertTo:(e,n,l)=>{e.editor.remote=e.editor.remote||{},e.editor.remote[n]=l}};class Je extends we.InputBaseProperty{constructor(n,l){super(n,l)}getCommonEditorProperties(n){var l,a,i,m;return{showSelectAll:{visible:!!((l=n.editor)!=null&&l.multiSelect),description:"多选模式下是否显示全选复选框",title:"启用全选",type:"boolean",default:!1,refreshPanelAfterChanged:!0},viewType:{visible:!!((a=n.editor)!=null&&a.multiSelect),description:"数据展示类型,有标签和文本两种方式",title:"数据展示类型",type:"enum",editor:{data:[{id:"tag",name:"标签"},{id:"text",name:"文本"}]},refreshPanelAfterChanged:!0},separator:{visible:!!((i=n.editor)!=null&&i.multiSelect)&&((m=n.editor)==null?void 0:m.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 c,S,y,h,V,T,w,B,v,o,f,g,d;const l=this;let a="";if(((c=n==null?void 0:n.binding)==null?void 0:c.type)==="Form"){const u=this.schemaService.getFieldByIDAndVMID(n.binding.field,this.viewModelId);(S=u==null?void 0:u.schemaField)!=null&&S.type&&(a=u.schemaField.type.$type)}const i=this.getPropertyEditorParams(n,["Variable"]),m=!n.editor.dataSourceType||n.editor.dataSourceType==="static",r=(((h=(y=this.designViewModelField)==null?void 0:y.type)==null?void 0:h.$type)===W.FormSchemaEntityFieldType$Type.StringType||!!this.formRule&&((V=this.designerHostService.schemaService.getFieldByID(n.binding.field))==null?void 0:V.type.$type)===W.FormSchemaEntityFieldType$Type.StringType)&&((T=n.editor)==null?void 0:T.type)==="combo-list"&&((w=n.editor)==null?void 0:w.dataSourceType)==="dynamic"&&!((v=(B=n.editor)==null?void 0:B.remote)!=null&&v.url)&&!((o=n.editor)!=null&&o.multiSelect);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:r,title:"数据",editor:{...i,controlName:"",enableClear:!0},refreshPanelAfterChanged:!0},data:{description:"",title:"数据",type:"array",visible:m,...l.getItemCollectionEditor(n,n.editor.valueField,n.editor.textField),refreshPanelAfterChanged:!0},url:{visible:n.editor.dataSourceType==="dynamic"&&!((f=n.editor)!=null&&f.dataSource),$converter:pe,description:"",title:"服务端API",type:"string",refreshPanelAfterChanged:!0},body:{visible:!1,$converter:pe,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:!a||a==="StringType",readonly:((g=n.editor)==null?void 0:g.dataSourceType)==="dynamic"&&!!((d=n.editor)!=null&&d.dataSource),type:"boolean",refreshPanelAfterChanged:!0},maxLength:{description:"",title:"最大输入长度",type:"number",editor:{nullable:!0,min:0,useThousands:!1,needValid:!0}},...this.getCommonEditorProperties(n)},(u,s)=>{if(!u||!s.editor)return;const x=this;switch(u.propertyID){case"dataSourceType":{u.propertyValue==="static"?(s.editor.valueField="value",s.editor.textField="name",s.editor.remote=null):u.propertyValue==="dynamic"&&(s.editor.remote={method:"GET"},s.editor.valueField="value",s.editor.textField="name");break}case"data":{!x.checkEnumDataReadonly(s)&&s.formatter&&(s.formatter.data=[...u.propertyValue]);break}case"viewType":{u.propertyValue==="tag"&&(s.editor.editable=!1);break}case"dataSource":x.afterMutilEditorChanged(s,u);break}})}getGridFieldEdtiorProperties(n,l){var c,S,y,h,V,T,w,B,v,o,f,g,d;const a=this;let i="";if(((c=n==null?void 0:n.binding)==null?void 0:c.type)==="Form"){const u=this.schemaService.getFieldByIDAndVMID(n.binding.field,this.viewModelId);(S=u==null?void 0:u.schemaField)!=null&&S.type&&(i=u.schemaField.type.$type)}const m=((h=(y=this.designViewModelField)==null?void 0:y.type)==null?void 0:h.$type)===W.FormSchemaEntityFieldType$Type.StringType&&((V=n.editor)==null?void 0:V.type)==="combo-list"&&((T=n.editor)==null?void 0:T.dataSourceType)==="dynamic"&&!((w=n.editor)!=null&&w.multiSelect),r=this.getPropertyEditorParams(n,["Variable"]);return a.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:{...r,controlName:"",enableClear:!0},refreshPanelAfterChanged:!0},data:{description:"",title:"数据",type:"array",visible:!((B=n.editor)!=null&&B.dataSourceType)||((v=n.editor)==null?void 0:v.dataSourceType)==="static",...a.getItemCollectionEditor(n,(o=n.editor)==null?void 0:o.valueField,(f=n.editor)==null?void 0:f.textField),refreshPanelAfterChanged:!0},textField:{description:"",title:"数据源显示字段",type:"string",readonly:!0},valueField:{description:"",title:"数据源值字段",type:"string",readonly:!0},multiSelect:{description:"",title:"启用多选",visible:i==="StringType",readonly:((g=n.editor)==null?void 0:g.dataSourceType)==="dynamic"&&!!((d=n.editor)!=null&&d.dataSource),type:"boolean",refreshPanelAfterChanged:!0},maxLength:{description:"",title:"最大输入长度",type:"number",editor:{nullable:!0,min:0,useThousands:!1,needValid:!0}},...this.getCommonEditorProperties(n)},(u,s)=>{if(!u||!s.editor)return;const x=this;switch(u.propertyID){case"dataSourceType":{u.propertyValue==="static"?(s.editor.valueField="value",s.editor.textField="name",s.editor.remote=null):u.propertyValue==="dynamic"&&(s.editor.remote={method:"GET"},s.editor.valueField="value",s.editor.textField="name");break}case"data":{!x.checkEnumDataReadonly(s)&&s.formatter&&(s.formatter.data=[...u.propertyValue]);break}case"dataSource":x.afterMutilEditorChanged(s,u)}})}setEditorPropertyRelates(n,l,a){if(!n||!l.editor)return;const i=this;switch(n.propertyID){case"dataSourceType":{n.propertyValue==="static"&&(l.editor.valueField="value",l.editor.textField="name",l.editor.remote={});break}case"data":{!i.checkEnumDataReadonly(l)&&l.formatter&&(l.formatter.data=[...n.propertyValue]);break}}}changeBindingField(n,l,a){var m;super.changeBindingField(n,l);const i=a;n.editor&&((m=i==null?void 0:i.type)==null?void 0:m.$type)===W.FormSchemaEntityFieldType$Type.EnumType&&(n.editor.data=i.type.enumValues||[])}getEventPropertyConfig(n,l="card",a,i){const m=this;let r=[{label:"onChange",name:"值变化事件"},{label:"beforeOpen",name:"打开面板前事件"},{label:"beforeHide",name:"关闭面板前事件"},{label:"onShown",name:"面板打开事件"},{label:"onHidden",name:"面板关闭事件"}];r=[...r,...this.getInputCommonEvents(n)],a&&(r=r.concat(a)),this.formRule&&(r=r.filter(y=>y.label!=="onChange")),this.appendFieldValueChangeEvents(n,r);const p=m.eventsEditorUtils.formProperties(n,m.viewModelId,r);return{title:"事件",hideTitle:!0,properties:m.createBaseEventProperty(p),tabId:W.EVENT_PROPERTY_TAB_IDS,tabName:"交互",setPropertyRelates(y,h){const V=y.propertyValue;delete n[m.viewModelId],V&&(V.setPropertyRelates=this.setPropertyRelates,m.eventsEditorUtils.saveRelatedParameters(n,m.viewModelId,V.events,V),m.updateLinkedLabel(V,h)),i&&i(y,h,V);const T=m.designViewModelUtils.getDgViewModel(m.viewModelId);T&&m.designViewModelField&&T.changeField(m.designViewModelField.id,{valueChanging:n.fieldValueChanging||"",valueChanged:n.fieldValueChanged||""}),n.editor.onShown=n.onShown,n.editor.onHidden=n.onHidden,n.editor.beforeHide=n.beforeHide,n.editor.beforeOpen=n.beforeOpen,n.editor.onChange=n.onChange,n.editor.onClear=n.onClear}}}}function Xe(e,n){const l=e.schema;function a(i,m){return new Je(i,n).getPropertyConfig(l,m)}return{getPropsConfig:a}}const Ze=t.defineComponent({name:"FComboListDesign",props:Le,emits:["clear","update:modelValue","change"],setup(e,n){const l=t.ref(),a=t.inject("designer-host-service"),i=t.inject("design-item-context"),m=Xe(i,a),r=Te.useDesignerComponent(l,i,m);return t.onMounted(()=>{l.value.componentInstance=r}),n.expose(r.value),()=>t.createVNode(Fe,{ref:l,buttonContent:e.dropDownIcon,readonly:!0,editable:!1,forcePlaceholder:!0,placeholder:e.placeholder,expandable:e.expandable,expandMode:e.expandMode,expandContent:e.expandContent,expandDisabled:e.expandDisabled},null)}});Y.register=(e,n,l,a,i)=>{e["combo-list"]=Y,n["combo-list"]=me(i),a["combo-list"]={callbackResolver:Me}},Y.registerDesigner=(e,n,l,a)=>{e["combo-list"]=Ze,n["combo-list"]=me(a)},W.withInstall(Y);const Qe={id:{Type:String,default:""},autocomplete:{Type:String,default:"off"},customClass:{Type:String,default:""},disabled:{Type:Boolean,default:!1},editable:{Type:Boolean,default:!0},enableClear:{Type:Boolean,default:!0},enableTitle:{Type:Boolean,default:!0},enableViewPassword:{Type:Boolean,default:!0},forcePlaceholder:{Type:Boolean,default:!1},groupText:{Type:String,default:""},showType:{Type:String,default:"text"},type:{Type:String,default:"text"},max:{type:[Number,String]},min:{type:[Number,String]},maxLength:{Type:Number||void 0,default:void 0},minLength:{Type:Number||void 0,default:void 0},modelValue:{Type:String||Boolean,default:""},showBorder:{Type:Boolean,default:!0},step:{Type:Number,default:1},placeholder:{Type:String,default:""},precision:{Type:Number,default:0},readonly:{Type:Boolean,default:!1},showButtonWhenDisabled:{Type:Boolean,default:!1},tabIndex:{Type:Number,default:0},textAlign:{Type:String,default:"left"},useExtendInfo:{Type:Boolean,default:!1},extendInfo:{Type:String,default:""},value:{Type:String,default:""},autoHeight:{type:Boolean,default:!1},autofocus:{type:Boolean,default:!1},rows:{type:Number,default:2},showCount:{type:Boolean,default:!1},showZero:{type:Boolean,default:!1},focusOnCreated:{type:Boolean,default:!1},selectOnCreated:{type:Boolean,default:!1},updateOn:{type:String,default:"blur"},formatValidation:{type:Object,default:{}},keyboard:{type:Boolean,default:!0},expandable:{type:Boolean,default:!1},expandMode:{type:String,default:"text"},expandContent:{type:String,default:""},expandDisabled:{type:Boolean,default:!1}};function et(e,n){const l=t.ref(e.groupText),a=t.computed(()=>e.showButtonWhenDisabled&&(e.readonly||e.disabled)),i=t.computed(()=>e.type==="password"||e.showType==="password"||e.enableClear||!!e.groupText||a.value);return{appendedButtonClass:t.computed(()=>({"input-group-append":!0,"append-force-show":a.value})),appendedContent:l,shouldShowAppendedButton:i}}function tt(e,n,l,a){const{appendedContent:i}=a,m=t.ref(e.enableViewPassword),r=t.computed(()=>e.type==="password"||e.showType==="password"),p='<span class="f-icon f-icon-eye" style="color: rgb(56, 143, 255);"></span>',c='<span class="f-icon f-icon-eye"></span>',S=t.ref(!1);t.watch(()=>[e.readonly,e.disabled],([V,T])=>{r.value&&(l.value=V||T?"password":l.value,i.value=e.readonly||e.disabled?"":m.value?c:"")});function y(){return S.value=!S.value,l.value=S.value?"text":"password",i.value=S.value?p:c,!1}function h(){l.value=r.value?"password":l.value,r.value&&(i.value=e.readonly||e.disabled?"":m.value?c:"")}return h(),{isPassword:r,onClickAppendedButton:y}}function nt(e,n){const l=z.useNumber(e,n),a=z.useFormat(e,n,l),i=z.useSpinner(e,n,a,l),m=z.useTextBox(e,n,a,l,i),r=z.getSpinnerRender(e,n,i),{displayValue:p,modelValue:c,getRealValue:S}=l,y=z.getNumberTextBoxRender(e,n,m),{format:h}=a,{isFocus:V}=m,T=t.computed(()=>!e.disabled&&!e.readonly);return t.onMounted(()=>{const w=S(e.modelValue);p.value=h(w)}),t.watch(()=>[e.value],([w])=>{const B=S(w);c.value=B,p.value=h(B)}),t.watch(()=>[e.modelValue],([w])=>{w!==c.value&&(c.value=w,!V.value&&(p.value=h(S(w))))}),t.watch(()=>[e.precision,e.useThousands,e.prefix,e.suffix,e.showZero],()=>{p.value=h(c.value)}),()=>t.createVNode("div",{class:"input-group flex-row f-cmp-number-spinner",style:"border:none;"},[y(),T.value&&r()])}function lt(e){return e?X.LocaleService.getRealPropertyValue(e,"请输入","input-group.placeholder"):""}function at(e,n,l,a){const i=t.ref(),{inputGroupClass:m,onBlur:r,onFocus:p}=a,{clearButtonClass:c,clearButtonStyle:S}=l,y=t.computed(()=>e.maxLength?e.maxLength:e.modelValue?e.modelValue.length:0),h=s=>{var x,C;s.stopPropagation(),n.emit("update:modelValue",(x=s.target)==null?void 0:x.value),n.emit("valueChange",(C=s.target)==null?void 0:C.value)},V=t.computed(()=>({"form-control":!0,"h-100":e.autoHeight})),T=t.computed(()=>e.enableClear&&!e.readonly&&!e.disabled),w=lt(e.placeholder),B=t.computed(()=>e.disabled||e.readonly?"":w),v=t.computed(()=>({...S.value,position:"absolute",right:"5px",top:"50%",transform:"translateY(-50%)","background-color":"rgb(199, 207, 221)","border-radius":"100%",width:"16px",height:"16px"})),o=t.computed(()=>{const s={resize:"none","padding-right":"15px"};return e.rows>2?{height:"auto",...s}:s}),f=s=>{s.stopPropagation(),i.value.value="",n.emit("update:modelValue",""),n.emit("valueChange","")};function g(){return t.withDirectives(t.createVNode("textarea",{class:V.value,id:e.id,"onUpdate:modelValue":s=>e.modelValue=s,ref:i,minlength:e.minLength,maxlength:e.maxLength?e.maxLength:null,tabindex:e.tabIndex,disabled:e.disabled,readonly:e.readonly,autocomplete:e.autocomplete,placeholder:B.value,autofocus:e.autofocus,rows:e.rows,onInput:h,onFocus:p,onBlur:r,style:o.value},null),[[t.vModelText,e.modelValue]])}function d(){return e.showCount&&t.createVNode("span",{style:"position: absolute;bottom: 0;right: 5px;z-index:999;font-size:12px"},[`${e.modelValue?e.modelValue.length:0}/${y.value}`])}function u(){return T.value&&t.createVNode("span",{id:"clearIcon",class:c.value,style:v.value,onClick:s=>f(s)},[t.createVNode("i",{class:"f-icon modal_close",style:"font-size:8px;color:#fff"},null)])}return{renderTextarea:g,renderCount:d,renderClear:u}}function it(e,n,l,a){const i=t.ref(),m=t.ref(e.autocomplete),r=t.ref(e.enableTitle),{isPassword:p}=l,c=t.ref(e.minLength),S=t.ref(e.maxLength),y=t.ref(e.tabIndex),{disabled:h,displayText:V,inputType:T,onBlur:w,onFocus:B,onInput:v,onClick:o,onKeydown:f,onKeyup:g,onMousedown:d,onMouseup:u,onTextBoxValueChange:s,readonly:x,placeholder:C,textBoxClass:A,textBoxTitle:I}=a;return t.onMounted(()=>{var O,G;e.selectOnCreated&&((O=i.value)==null||O.select()),e.focusOnCreated&&((G=i.value)==null||G.focus({preventScroll:!0}))}),()=>t.createVNode("input",{id:e.id+"_textbox",ref:i,name:"input-group-value",autocomplete:m.value,class:A.value,disabled:h==null?void 0:h.value,maxlength:S.value,minlength:c.value,placeholder:C.value,readonly:x==null?void 0:x.value,tabindex:y.value,title:r.value&&!p.value?I.value:"",type:T.value,value:V==null?void 0:V.value,onBlur:w,onClick:o,onChange:s,onFocus:B,onInput:v,onKeydown:f,onKeyup:g,onMousedown:d,onMouseup:u},null)}function ot(e,n){const l=t.ref(e.extendInfo),a=t.computed(()=>e.useExtendInfo&&!!e.extendInfo),i=t.computed(()=>({content:l.value}));t.watch(()=>e.extendInfo,r=>{l.value=r});function m(){n.emit("updateExtendInfo")}return()=>a.value&&t.withDirectives(t.createVNode("span",{class:"input-group-before-tips",onMouseenter:m},[t.createVNode("i",{class:"f-icon f-icon-info-circle"},null),t.createVNode("b",{class:"tips-arrow"},null)]),[[t.resolveDirective("tooltip"),i.value]])}function rt(e,n,l,a,i){const{appendedButtonClass:m,appendedContent:r}=l,p=t.computed(()=>!e.readonly&&!e.disabled),c=t.computed(()=>r.value&&!n.slots.groupTextTemplate),S=t.computed(()=>!!n.slots.groupTextTemplate),{clearButtonClass:y,clearButtonStyle:h,onClearValue:V,shouldShowClearButton:T}=a,w=t.ref(0);t.watch(r,C=>{w.value++});function B(){return t.createVNode("span",{id:"clearIcon",class:y.value,style:h.value,onClick:C=>V(C)},[t.createVNode("i",{class:"f-icon modal_close"},null)])}function v(C){n.emit("iconMouseEnter",C)}function o(C){n.emit("iconMouseLeave",C)}function f(C){p.value&&n.emit("clickHandle",{originalEvent:C}),C.stopPropagation()}const g=e.type==="password"||e.showType==="password"?i.onClickAppendedButton:f;function d(){const C=r.value;if(!C||!(e.showButtonWhenDisabled||!e.disabled&&!e.readonly))return null;const I={class:"input-group-text",onMouseenter:v,onMouseleave:o,onClick:g};if(typeof C=="string")return t.createVNode("span",t.mergeProps(I,{innerHTML:C}),null);if(typeof C=="function"){const O=C();return t.createVNode("span",I,[typeof O=="string"?t.createVNode("span",{innerHTML:O},null):O])}else return t.createVNode("span",I,[C])}function u(){return n.slots.groupTextTemplate&&n.slots.groupTextTemplate()}function s(){return c.value?d():S.value?u():""}t.watch(()=>e.expandDisabled,(C,A)=>{w.value++});const{renderExpandContent:x}=Ee.useInputExpand({...e,skipReadonlyCheck:!0},n);return()=>t.createVNode(t.Fragment,null,[t.createVNode("div",{class:m.value,key:"append-button-"+w.value},[T.value&&B(),s()]),x()])}const ye=t.defineComponent({name:"FInputGroup",props:Qe,emits:["clear","change","blur","click","clickHandle","focus","input","keydown","keyup","iconMouseEnter","iconMouseLeave","update:modelValue","update:value","updateExtendInfo","valueChange","mousedownEvent","mouseupEvent","expandClick"],setup(e,n){const l=t.ref(),a=t.ref(e.modelValue),i=t.ref(e.modelValue),m=W.useTextBox(e,n,a,i,l),{inputGroupClass:r,inputType:p,inputGroupStyle:c,changeTextBoxValue:S}=m,y=et(e),{shouldShowAppendedButton:h}=y,V=W.useClear(e,n,m),{onMouseEnter:T,onMouseLeave:w}=V,B=tt(e,n,p,y),v=nt(e,n),{renderTextarea:o,renderCount:f,renderClear:g}=at(e,n,V,m),d=it(e,n,B,m),u=rt(e,n,y,V,B),s=ot(e,n),x=t.computed(()=>p.value==="number"),C=t.computed(()=>p.value==="textarea");t.watch(()=>[e.value],([I])=>{a.value=I,i.value=I}),t.watch(()=>[e.modelValue],([I])=>{a.value=I,i.value=I}),t.onMounted(()=>{e.value&&(a.value=e.value,i.value=e.value)}),n.expose({clear:()=>{S("",!1),i.value=""},setText:I=>{S(I,!1),i.value=I}});const A=()=>t.createVNode("div",{ref:l,id:e.id,class:r.value,style:c.value,onMouseenter:T,onMouseleave:w},[x.value?v():C.value?o():t.createVNode(t.Fragment,null,[s(),d()]),!C.value&&!x.value&&h.value&&u(),C.value&&g(),C.value&&f()]);return()=>A()}});W.withInstall(ye);function ut(e){const n=(h,V)=>h??V,l={string:{compare:k.Contains,value:"",isEmpty:null,relation:q.And},number:{begin:null,end:null,interval:!1,value:null,isEmpty:null},date:{interval:!1,value:"",rangeValue:"",isEmpty:null},datetime:{interval:!1,value:"",rangeValue:"",isEmpty:null},enum:{value:"",isEmpty:null},boolean:{value:!1,isEmpty:null}},a=(h="string")=>l[h]||l.string,i=h=>({compare:n(h.compare,k.Contains),value:n(h.value,""),isEmpty:n(h.isEmpty,null),relation:n(h.relation,q.And)}),m=h=>({begin:n(h.begin,null),end:n(h.end,null),interval:n(h.interval,!1),value:n(h.value,null),isEmpty:n(h.isEmpty,null)}),r=h=>({interval:n(h.interval,!1),value:n(h.value,""),rangeValue:n(h.rangeValue,""),isEmpty:n(h.isEmpty,null)}),p=h=>({value:n(h.value,""),isEmpty:n(h.isEmpty,null)}),c=h=>({value:n(h.value,null),isEmpty:n(h.isEmpty,null)}),S=h=>i(h);function y(){var B,v,o;const h=((B=e.value)==null?void 0:B.value)!==void 0&&((v=e.value)==null?void 0:v.value)!==null?e.value.value:void 0,V=(o=e.value)==null?void 0:o.dataType;return h==null?a(V):({string:i,number:m,date:r,datetime:r,enum:p,boolean:c}[V]||S)(h)}return{buildFieldValue:y}}const dt=t.defineComponent({name:"SearchForm",props:{field:Object,modelValue:Object,locales:Object},emits:["searchEmpty"],setup(e,n){var s,x,C,A,I,O,G,K;const l=[],a=t.reactive({}),i=t.ref(null),m=t.ref(e.modelValue),r=t.computed(()=>{var F;return((F=m.value)==null?void 0:F.options)||{}}),{buildFieldValue:p}=ut(m),c={[k.Contains]:((x=(s=e.locales)==null?void 0:s.operators)==null?void 0:x.contains)||"包含",[k.NotContains]:((A=(C=e.locales)==null?void 0:C.operators)==null?void 0:A.notContains)||"不包含",[k.Equal]:((O=(I=e.locales)==null?void 0:I.operators)==null?void 0:O.equal)||"等于",[k.NotEqual]:((K=(G=e.locales)==null?void 0:G.operators)==null?void 0:K.notEqual)||"不等于"};ne.forEach(F=>{const L