UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

1 lines 71.9 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,le,G,Z,ee,Ce,ae,St,Se,Ve,Fe,K,Te,we,ie,Ee,Ne){"use strict";const oe={fields:{type:Array,default:[]},defaultValue:{type:Object,default:null}};var B=(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))(B||{}),M=(e=>(e[e.Empty=0]="Empty",e[e.And=1]="And",e[e.Or=2]="Or",e))(M||{});const te=[{label:"包含",value:6},{label:"不包含",value:9},{label:"等于",value:0},{label:"不等于",value:1}],Be=t.defineComponent({name:"SearchFieldsPanel",props:{fields:Array,searchValue:{type:String,default:""},maxWidth:{type:Number,default:300},locales:Object},emits:["fieldSelected"],setup(e,n){const l=t.ref(e.fields||[]);t.watch(()=>e.fields,o=>{l.value=o||[]});function a(o,p){p.dataType==="boolean"?p.value={value:null,isEmpty:null}:e.searchValue?p.value={compare:B.Contains,value:e.searchValue}:p.value={value:null,isEmpty:null,compare:void 0},n.emit("fieldSelected",p)}function i(){return e.searchValue.trim().split(" ").join('<span class="text-muted" style="margin: 0 5px;"> 或 </span>')}const f=o=>{var S,y,c,h;const p=" "+(((y=(S=e.locales)==null?void 0:S.operators)==null?void 0:y.contains)||"包含")+" ",v=" "+((h=(c=e.locales)==null?void 0:c.relation)==null?void 0:h.or)||"或 ";return o.title+(e.searchValue?p+e.searchValue.trim().split(" ").join(v):"")};return()=>{var o;return t.createVNode("div",{class:"search-fields-list p-2",style:{maxWidth:e.maxWidth+"px"}},[t.createVNode("span",{style:"font-weight: bold;"},[((o=e.locales)==null?void 0:o.chooseField)||"选择搜索字段",t.createTextVNode(":")]),t.createVNode("div",{class:"search-fields-list-content mt-2"},[t.createVNode("ul",null,[l.value.map(p=>{var S,y;const v=f(p);return e.searchValue?t.createVNode("li",{class:"search-fields-list-item d-flex flex-row",attr_field:p.field,title:v,onClick:c=>a(c,p)},[t.createVNode("span",{class:"search-field-title",title:p.title},[p.title]),t.createVNode("span",{class:"mx-2 text-muted"},[((y=(S=e.locales)==null?void 0:S.operators)==null?void 0:y.contains)||"包含"]),t.createVNode("div",{class:"f-utils-fill text-primary search-box-keyword",style:"text-overflow: ellipsis;",innerHTML:i()},null)]):t.createVNode("li",{class:"search-fields-list-item",attr_field:p.field,title:v,onClick:c=>a(c,p)},[p.title])})])])])}}}),ke=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(""),f=t.ref(e.popoverOffsetWidth||20),o=t.computed(()=>{var g;const h=(g=l.value)==null?void 0:g.popoverRef;return h?h.shown:!1}),p=h=>{var g,T,E;if((h.keyCode===8||h.keyCode===13)&&!i.value)(g=l.value)==null||g.hidePopup(),n.emit("inputKeydown",{key:h.keyCode===8?"backspace":"enter",event:h});else if(!((T=e.fields)!=null&&T.length)){(E=l.value)==null||E.clear(),h.preventDefault();return}},v=h=>{var g;i.value=h.trim().replace(/\s+/g," "),n.emit("valueChange",i.value),o.value||(g=l.value)==null||g.showPopup()};function S(h){var T,E;const g=!!i.value;(T=l.value)==null||T.clear(),(E=l.value)==null||E.hidePopup(),n.emit("fieldSelected",h,g)}const y=t.ref(0);let c=null;return t.onMounted(()=>{var g;const h=(g=l.value)==null?void 0:g.getTextbox();h&&(c=G.useResizeObserver(h,()=>{y.value=window.innerWidth-h.getBoundingClientRect().left-f.value}))}),t.onUnmounted(()=>{c&&c()}),n.expose({showPopover:o,focus:()=>{var h;return(h=l.value)==null?void 0:h.getTextbox().focus()},focusAndShow:()=>{var h,g;(h=l.value)==null||h.getTextbox().focus(),(g=l.value)==null||g.showPopup()}}),()=>{var h;return(h=e.fields)!=null&&h.length?t.createVNode(le.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:p,onChange:v,popupOffsetY:-4},{default:()=>[o.value&&t.createVNode(Be,{maxWidth:y.value,ref:a,locales:e.locales,fields:e.fields,searchValue:i.value,onFieldSelected:g=>S(g)},null)]}):t.createVNode("input",{type:"text",class:"form-control",onKeydown:p,onInput:g=>{g.target.value="",g.preventDefault()},placeholder:""},null)}}}),re=new Map([["appearance",ee.resolveAppearance]]),de={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/combo-list.schema.json",title:"combo-list",description:"A Farris Input Component",type:"object",properties:{id:{description:"The unique identifier for a combo list",type:"string"},type:{description:"The type string of number combo list component",type:"string",default:"combo-list"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disabled:{description:"",type:"boolean",default:!1},enableClear:{description:"",type:"boolean",default:!1},editable:{description:"",type:"boolean",default:!1},enableLinkLabel:{description:"",type:"boolean",default:!1},label:{description:"",type:"string",default:""},lableWidth:{description:"",type:"number"},placeholder:{description:"",type:"string",default:"请选择"},idField:{description:"",type:"string",default:"id"},valueField:{description:"",type:"string",default:"id"},titleField:{description:"",type:"string",default:"name"},textField:{description:"",type:"string",default:"name"},dataSourceType:{description:"",type:"string",default:"static"},data:{description:"",type:"array"},dataSource:{description:"",type:"string"},remote:{description:"",type:"string"},readonly:{description:"",type:"boolean",default:!1},required:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},textAlign:{description:"",type:"string",enum:["left","middle","right"],default:"left"},multiSelect:{description:"",type:"boolean",default:!1},maxLength:{description:"",type:"number",default:null},visible:{description:"",type:"boolean",default:!0},onBlur:{description:"",type:"string",default:""},onClickLinkLabel:{description:"",type:"string",default:""},maxHeight:{description:"",type:"number",default:350},minPanelWidth:{description:"",type:"number",default:160},popupOnClick:{description:"",type:"boolean",default:!0},separator:{description:"",type:"string",default:","},viewType:{description:"",type:"string",default:"tag"},enableSearch:{description:"启用搜索",type:"boolean",default:!0},enableHighlightSearch:{description:"启用高亮搜索",type:"boolean",default:!1},beforeOpen:{description:"打开下拉面板前回调",type:"string"},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:""}},required:["type"],ignore:["id","appearance","binding","visible"],events:{onClear:"清空事件",onShown:"面板打开事件",onHidden:"面板关闭事件",onChange:"值变化事件",beforeOpen:"打开面板前事件",beforeHide:"关闭面板前事件"}};function ue(e,n,l){return n}function Ie(){function e(n,l,a){const i={};return i.beforeOpen=f=>l.call("beforeOpen",n,[f,n],a),i}return{resolve:e}}const Q={id:{type:String},data:{type:Array,default:[]},disabled:{default:!1,type:Boolean},dropDownIcon:{type:String,default:'<span class="f-icon f-icon-arrow-chevron-down"></span>'},editable:{default:!1,type:Boolean},enableClear:{default:!0,type:Boolean},enableSearch:{type:Boolean,default:!1},enableTitle:{default:!0,type:Boolean},fitEditor:{default:!1,type:Boolean},forcePlaceholder:{default:!1,type:Boolean},hidePanelOnClear:{default:!0,type:Boolean},idField:{default:"id",type:String},mapFields:{type:Object},maxHeight:{default:350,type:Number},maxLength:{type:Number},multiSelect:{type:Boolean,default:!1},modelValue:{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}},Pe=Object.assign({},Q,{readonly:{}});ee.createPropsResolver(Q,de,re,ue);const se=ee.getPropsResolverGenerator(Q,de,re,ue),Ae=Ie(),Le={dataSource:{type:Array,default:[]},enableSearch:{type:Boolean,default:!1},idField:{type:String,default:"id"},multiSelect:{type:Boolean,default:!1},selectedValues:{type:String,default:""},separator:{type:String,default:","},textField:{type:String,default:"name"},titleField:{type:String,default:"name"},width:{type:Number},maxHeight:{type:Number},valueField:{type:String,default:"id"},onSelectionChange:{type:Function,default:()=>{}},searchOption:{type:[Boolean,Function],default:!1},enableHighlightSearch:{type:Boolean,default:!0}},Me=t.defineComponent({name:"FComboListContainer",props:Le,emits:["selectionChange"],setup(e,n){const l=t.ref(),a=t.ref(e.dataSource),i=t.ref(e.dataSource),f=t.ref([]),o=t.ref(e.separator),p=t.ref(e.width),v=t.ref(e.maxHeight),S=t.computed(()=>e.multiSelect),y=t.ref(e.multiSelect?String(e.selectedValues).split(o.value):[e.selectedValues]),c=t.computed(()=>({enableSelectRow:!0,multiSelect:e.multiSelect,multiSelectMode:"OnCheckAndClick",showCheckbox:S.value,showSelectAll:!1,showSelection:!0}));t.watch(e.dataSource,()=>{a.value=e.dataSource,i.value=e.dataSource}),t.computed(()=>e.enableSearch?"SearchBar":"ContentHeader");const h=t.computed(()=>{const r={};return p.value!==void 0&&(r.width=`${p.value}px`),v.value!==void 0&&v.value>0&&(r.maxHeight=`${v.value}px`),r});function g(r){l.value.search(r)}function T(r){f.value=r.map(m=>Object.assign({},m)),y.value=r.map(m=>m[e.idField]),n.emit("selectionChange",f.value)}function E(r){if(e.enableHighlightSearch)return;let m=[];const{searchOption:V}=e;typeof V=="function"?m=a.value.filter(s=>V(r,s)):m=a.value.filter(s=>s[e.valueField].indexOf(r)>-1||s[e.textField].indexOf(r)>-1),l.value.updateDataSource(m)}t.watch([()=>e.selectedValues],([r])=>{e.multiSelect?y.value=r.split(o.value):y.value=[r]});function k(r){l.value.activeRowById(r)}return t.onMounted(()=>{var r,m;if(!e.multiSelect){const V=(r=y.value)==null?void 0:r[0];let s=V;const d=a.value.map(u=>u[e.valueField||e.idField]);if(!ae.isUndefined(V)&&d.includes(V)){const u=typeof V,b=typeof((m=a.value[0])==null?void 0:m[e.valueField||e.idField]);b==="number"&&u!==b&&(s=Number(V)),b==="boolean"&&u!==b&&(s=V==="true"?!0:V==="false"?!1:V),k(s)}}}),n.expose({search:g,activeRowById:k}),()=>t.createVNode("div",{class:"f-combo-list-container",style:h.value},[t.createVNode(Ce,{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:c.value,enableHighlightSearch:e.enableHighlightSearch,selectionValues:y.value,onSelectionUpdate:T,onAfterSearch:E},null)])}}),ce={property:"all",duration:.3,timingFunction:"cubic-bezier(0.17, 0.89, 0.45, 1)",delay:0},Oe=(e,n)=>{const l=e.lineHeight/2,a=G.useTouchMomentum({maxOverflowY:44}),i=t.reactive({...ce}),f=s=>{n.emit("change",s)},o=t.reactive({value:0,max:0,min:0,start:0,index:0,currentItem:void 0,active:!1}),p=()=>{o.max=e.visiableOptionCount/2*e.lineHeight;const s=e.column.length*e.lineHeight;o.min=o.max-s+e.lineHeight},v=(s=0)=>{p(),o.index=s,o.value=o.max-s*e.lineHeight,o.currentItem=e.column[s]},S=s=>{const d=e.column.length-1,u=Math.min(o.index,d),b=e.column.findIndex(C=>C[e.valueField]===s);return b>=0?b:u},y=s=>{const d=e.column.length-1;return o.index>d?e.column[d]:e.column[s]},c=s=>{s&&(o.currentItem=s,i.duration=0);const d=o.currentItem[e.valueField],u=S(d),b=y(o.index)[e.valueField];v(u),d!==b&&setTimeout(()=>{f(o.currentItem)},i.duration*1e3)},h=()=>{const s=Array.isArray(e.value)?e.value[0]:e.value;v(S(s))};h(),t.watch(()=>e.value,()=>{e.multiSelect||h()}),t.watch(()=>e.column,()=>c());const g=(s,d=o.max,u=o.min)=>{const b=o.start+s;o.value=b>l?Math.min(b,d):Math.max(b,u),o.index=Math.round((o.max-o.value)/e.lineHeight),o.currentItem=y(o.index)},T=G.useTouch(),E=s=>{T.start(s),o.active=!0,o.start=o.value,a.start(o.start),i.duration=0},k=s=>{s.preventDefault(),T.move(s),g(T.deltaY.value,o.max+e.lineHeight,o.min-e.lineHeight),a.move(T.deltaY.value),i.duration=ce.duration},r=s=>{const d=s<0,u=s%e.lineHeight>l?1:0,b=Math.floor(s/e.lineHeight);return(d?b-u:b+u)*e.lineHeight+l};return{translateY:o,transition:i,onTouchStart:E,onTouchMove:k,onTouchEnd:()=>{o.start=0;const s=a.end();let d=0;if(s){const{destination:u,duration:b}=a.get(o.value,o.min,o.max);d=u,i.duration=b/1e3}else d=o.value;g(r(d)),f(o.currentItem)},onTransitionend:()=>{o.active=!1},updateTranslate:c}},qe={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}},He=t.defineComponent({props:qe,emits:["change","click"],setup(e,n){const{addUnit:l}=G.useCommonUtils(),{bem:a}=G.useBem("FComboTouchList"),{translateY:i,transition:f,onTouchStart:o,onTouchMove:p,onTouchEnd:v,onTransitionend:S}=Oe(e,n),y=g=>{n.emit("click",g)},c=t.computed(()=>({transform:`translateY(${l(i.value)})`,transition:`all ${i.active?f.duration:0}s ${f.timingFunction} 0s`})),h=g=>e.showIcon?Array.isArray(e.value)&&e.value.includes(g[e.valueField]):!1;return()=>t.createVNode("div",{class:a("column"),style:c.value,onTouchstart:o,onTouchmove:p,onTouchend:v,onTransitionend:S},[e.column.map(g=>t.createVNode("div",{class:a("column-item"),onClick:()=>y(g)},[t.createVNode("span",null,[g[e.textField]]),h(g)&&t.createVNode("span",{class:`f-icon f-icon-check ${a("column-item-icon")}`},null)]))])}}),Re={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:l,initValue:a,setSelectedByIndex:i,getSelectedValueByIndex:f}=n,{isArray:o,isFunction:p,isObject:v}=G.useCommonUtils(),S=d=>d&&d[0],y=t.computed(()=>{var d;return((d=e.columns)==null?void 0:d.length)>0&&o(e.columns[0])}),c=d=>{if((d==null?void 0:d.length)===0)return!1;const u=S(d);return u&&o(u[e.childrenField])},h=(d,u)=>{const b=S(d),C=f(u);let L=d.find(q=>q[e.valueField]===C);L=L||b;const P=L[e.childrenField]||[];if(c(P)){const q=h(P,u+1);return[P,...q]}return[P]},g=()=>{const d=e.columns,u=h(d,0);return[d,...u]},T=(d,u)=>{const b=d[e.textField];return p(e.optionFormatter)?e.optionFormatter(u,d):b},E=(d,u)=>d.map(b=>{const C=v(b)?b:{[e.valueField]:b,[e.textField]:b};return C[e.textField]=T(C,u),C}),k=t.computed(()=>{let d=[];return y.value?d=e.columns:c(e.columns)?d=g():d=[e.columns],d.map(E)}),r=()=>k.value.map((d,u)=>{const b=l.value[u];return d.find(L=>L[e.valueField]===b)}).filter(d=>d),m=()=>r().map(d=>d[e.valueField]),V=()=>r().map(d=>d[e.textField]).join("-"),s=()=>{k.value.forEach((d,u)=>{if(e.multiSelect)l.value[u].forEach(C=>{const L=d.find(P=>P[e.valueField]===C);L&&i(u,L)});else{const b=l.value[u],C=d.find(L=>L[e.valueField]===b);C?i(u,C):i(u,S(d))}})};return t.watch(()=>e.modelValue,()=>{a(e.modelValue),s()},{immediate:!0}),{columns:k,getPickeds:r,getValue:m,getTextValue:V}},$e=e=>{const{isArray:n,isMultiArray:l,isString:a,isDef:i}=G.useCommonUtils(),f=r=>{let m=[];return n(r)?m=r:a(r)?m=r.split(e.separator):i(r)&&(m=[r]),e.multiSelect?l(m)?m:[m]:m},o=t.ref([]),p=r=>{o.value=f(r)},v=t.reactive([]),S=t.computed(()=>v.map(r=>r[e.valueField])),y=t.reactive([]),c=t.computed(()=>y.map(r=>r.map(m=>m[e.valueField])));return{finalValue:o,initValue:p,getSelected:()=>e.multiSelect?y:v,getSelectedValue:()=>e.multiSelect?c.value:S.value,setSelectedByIndex:(r,m)=>{if(e.multiSelect){const V=y[r]||[];V.includes(m)?y[r]=V.filter(s=>s!==m):y[r]=[...V,m]}else v[r]=m},getSelectedByIndex:r=>e.multiSelect?y[r]:v[r],getSelectedValueByIndex:r=>e.multiSelect?c.value[r]:S.value[r]}},Ge=t.defineComponent({props:Re,emits:["change","confirm","cancel","update:modelValue"],setup(e,n){const{emit:l}=n,{addUnit:a}=G.useCommonUtils(),i=$e(e),{finalValue:f,getSelectedValue:o,getSelectedValueByIndex:p,getSelected:v,setSelectedByIndex:S}=i,{columns:y}=je(e,i),c=(V,s=!0)=>{const{value:d,index:u}=V;(s&&!e.multiSelect||!s&&e.multiSelect)&&(l("change",V),S(u,d))},h=()=>{f.value=o(),l("confirm",v()),l("update:modelValue",f.value)},g=()=>{l("cancel")},{bem:T}=G.useBem("FComboTouchList"),E=()=>t.createVNode("div",{class:T("toolbar")},[t.createVNode("div",{class:T("toolbar-left"),onClick:g},[t.createVNode("span",null,[e.cancelText])]),t.createVNode("div",{class:T("toolbar-title")},[t.createVNode("span",null,[e.title])]),t.createVNode("div",{class:T("toolbar-right"),onClick:h},[t.createVNode("span",null,[e.confirmText])])]),k=t.computed(()=>{const V=(e.visiableOptionCount+1)*e.lineHeight;return{height:a(V)}}),r=t.computed(()=>{const V=e.visiableOptionCount*e.lineHeight/2;return{backgroundSize:`100% ${a(V)}`}}),m=()=>t.createVNode("div",{class:T("content")},[t.createVNode("div",{class:T("columns"),style:k.value},[y.value.map((V,s)=>t.createVNode(He,{column:V,value:p(s),showIcon:e.multiSelect,textField:e.textField,multiSelect:e.multiSelect,valueField:e.valueField,lineHeight:e.lineHeight,visiableOptionCount:e.visiableOptionCount,onChange:d=>c({value:d,index:s}),onClick:d=>c({value:d,index:s},!1)},null)),!e.multiSelect&&t.createVNode("div",{class:T("mask"),style:r.value},null),t.createVNode("div",{class:T("frame")},null)])]);return()=>t.createVNode("div",{class:T("")},[e.showToolbar&&E(),m()])}});function Ue(e,n){const l=t.ref(""),a=t.ref(e.modelValue),i=t.ref(e.data||[]),f=t.ref(e.editable),o=t.computed(()=>e.hideDisabledItems?i.value.filter(r=>!r.disabled):i.value);function p(r){const m=e.multiSelect?String(r).split(e.separator):[String(r)],V=m.map(u=>[u,!0]),s=new Map(V);return i.value.filter(u=>s.has(String(u[e.valueField]))).sort((u,b)=>{const C=m.indexOf(u[e.valueField]),L=m.indexOf(b[e.valueField]);return C-L})}function v(r){const m=p(r).map(V=>V[e.textField]).join(e.separator);l.value=f.value?m||r:m}function S(r){if(e.multiSelect){const m=r.split(e.separator).map(s=>[s,!0]),V=new Map(m);return i.value.filter(s=>V.has(s[e.textField]))}return i.value.filter(m=>""+m[e.textField]===r)}function y(r){const m={};return m[e.idField]=r,m[e.textField]=r,[m]}function c(r){let m=S(r);const V=m&&m.length>0;return f.value&&!V&&(m=y(r)),m}function h(){const{url:r,method:m="GET",headers:V={"Content-Type":"application/json;charset=utf-8;"},body:s=null}=e.remote;if(!r)return;const{basePath:d}=G.useFarrisConfig().value,u=m.toLowerCase()==="get"?{method:m,headers:V}:{method:m,headers:V,body:s};let b=!1;fetch(new Request(d+r,u)).then(C=>{var P,q;if(C.status===200)return b=!!((q=(P=C.headers)==null?void 0:P.get("content-type"))!=null&&q.includes("application/json")),b?C.text():C.json();throw C.status===405?new Error(Z.LocaleService.getLocaleValue("comboList.remoteError")):new Error(C.statusText)}).then(C=>{C.length&&(i.value=b?JSON.parse(C):C,a.value&&v(a.value))}).catch(C=>{console.warn(C)})}e.remote&&(e.load?e.load().then(r=>{i.value=r}).catch(r=>{console.log(r)}):h()),t.watch(()=>e.data,()=>{i.value=e.data}),t.watch([i],([r],[m])=>{if(e.modelValue!=null&&!e.multiSelect){const V=r.find(s=>s[e.valueField]===a.value);V?V[e.valueField]!==a.value?(a.value=V[e.valueField],l.value=V[e.textField],n.emit("update:modelValue",V[e.valueField]),n.emit("change",[V],V[e.valueField])):l.value!==V[e.textField]&&(l.value=V[e.textField]):a.value!==""&&(a.value="",l.value="",n.emit("update:modelValue",""),n.emit("change",[],""))}}),t.watch(()=>e.modelValue,(r,m)=>{m!==r&&(a.value=r,v(r))});function g(r){i.value=r,n.emit("dataChanged",r)}function T(){return i.value}function E(){return l.value}async function k(){const r=typeof e.beforeOpen=="function";return!e.beforeOpen||!r?Promise.resolve(!0):Promise.resolve().then(()=>e.beforeOpen({instance:{updateDataSource:g,getData:T,getDisplayText:E}})).then(m=>typeof(m==null?void 0:m.canOpen)=="boolean"?m==null?void 0:m.canOpen:!0)}return v(e.modelValue),{dataSource:i,filteredDataSource:o,displayText:l,editable:f,modelValue:a,beforeOpenList:k,getItemsByDisplayText:S,getItemsByValue:p,getSelectedItemsByDisplayText:c}}const We=["moz","ms","webkit"];function ze(){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 Ke(){if(typeof window>"u")return()=>0;if(window.requestAnimationFrame)return window.requestAnimationFrame.bind(window);const e=We.filter(n=>`${n}RequestAnimationFrame`in window)[0];return e?window[`${e}RequestAnimationFrame`]:ze()}Ke(),t.ref("");function fe(){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 p of l)if(p.test(e))return!1;for(const p of n)if(p.test(e))return!0;const a="ontouchstart"in window||navigator.maxTouchPoints>0,i=screen.width,f=screen.height,o=Math.min(i,f);return!!(a&&o<=768)}const J=t.defineComponent({name:"FComboList",props:Q,emits:["clear","update:modelValue","change","input","dataChanged","expandClick"],setup(e,n){const l=t.ref(),a=t.ref(),i=t.ref(e.disabled||e.readonly),f=t.ref(e.enableClear),o=t.ref(e.enableSearch),p=t.ref(e.readonly),{dataSource:v,displayText:S,editable:y,modelValue:c,filteredDataSource:h,getItemsByDisplayText:g,getItemsByValue:T,beforeOpenList:E}=Ue(e,n),k=t.ref(e.dropDownIcon);k.value==='<span class="f-icon f-icon-arrow-chevron-down"></span>'&&(k.value='<span id="'+e.id+'-icon-dropdown" class="f-icon f-icon-arrow-chevron-down"></span>');const r=t.computed(()=>e.multiSelect),m=t.computed(()=>a.value?a.value.elementRef.getBoundingClientRect().width:0);function V(){!r.value&&a.value&&a.value.hidePopup()}function s(N){S.value=N.map(U=>U[e.textField]).join(e.separator)||c.value;let O="";N.length===1?O=N[0][e.valueField]:O=N.map(U=>U[e.valueField]).join(e.separator),c.value!==O&&(c.value=O,n.emit("update:modelValue",c.value),n.emit("change",N,c.value))}function d(){const N=T(c.value);s(N)}function u(){p.value||S.value}function b(N){var O;c.value="",(O=l.value)==null||O.activeRowById(""),n.emit("clear")}function C(N){var O,U;e.enableSearch&&e.enableHighlightSearch&&((O=l.value)==null||O.search(N)),(U=l.value)==null||U.activeRowById(N),n.emit("change",[c.value],c.value)}function L(N){if(e.multiSelect){const O=g(N);e.viewType;const z=O.map(_=>_[e.idField||e.valueField]).join(e.separator);c.value!==z&&(c.value=z,n.emit("update:modelValue",c.value),n.emit("change",O,c.value))}else N!==c.value&&(c.value=N,n.emit("update:modelValue",c.value),n.emit("change",[],N))}function P(){return S.value}function q(N){const{value:O}=N.target;C(O),n.emit("input",O)}function W(){a.value.hidePopup()}function F(N){v.value=N}function I(){return v.value}const j={getDisplayText:P,hidePopup:W,updateDataSource:F,getData:I};n.expose(j),t.watch([()=>e.disabled,()=>e.editable,()=>e.enableClear,()=>e.enableSearch,()=>e.readonly],([N,O,U,z,_])=>{i.value=N,y.value=O,f.value=U,o.value=z,p.value=_});const H=()=>{n.emit("expandClick")};return()=>t.createVNode(le,{ref:a,id:e.id,disable:i.value,readonly:p.value,forcePlaceholder:e.forcePlaceholder,editable:y.value,buttonContent:k.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:S.value,"onUpdate:modelValue":N=>S.value=N,focusOnCreated:e.focusOnCreated,selectOnCreated:e.selectOnCreated,onClear:b,onClick:u,onChange:L,onBlur:d,onInput:q,beforeOpen:E,placement:fe()?"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},{default:()=>[fe()?t.createVNode(Ge,{modelValue:c.value,valueField:e.valueField,textField:e.textField,columns:v.value,multiSelect:e.multiSelect,separator:e.separator,onConfirm:N=>{const O=e.multiSelect?N[0]||[]:N;s(O),a==null||a.value.hidePopup()},onCancel:()=>{a==null||a.value.hidePopup()}},null):t.createVNode(Me,{class:e.popupClass,ref:l,idField:e.idField,valueField:e.valueField,textField:e.textField,titleField:e.titleField,dataSource:h.value,selectedValues:c.value,separator:e.separator,multiSelect:e.multiSelect,enableSearch:o.value,maxHeight:e.maxHeight,enableHighlightSearch:e.enableHighlightSearch,width:e.fitEditor?m.value:void 0,onSelectionChange:N=>{s(N),V()}},null)]})}}),me={convertFrom:(e,n)=>(e.editor.remote||{})[n],convertTo:(e,n,l)=>{e.editor.remote=e.editor.remote||{},e.editor.remote[n]=l}};class _e extends Ve.InputBaseProperty{constructor(n,l){super(n,l)}getCommonEditorProperties(n){var l,a,i;return{viewType:{visible:!!((l=n.editor)!=null&&l.multiSelect),description:"数据展示类型,有标签和文本两种方式",title:"数据展示类型",type:"enum",editor:{data:[{id:"tag",name:"标签"},{id:"text",name:"文本"}]},refreshPanelAfterChanged:!0},separator:{visible:!!((a=n.editor)!=null&&a.multiSelect)&&((i=n.editor)==null?void 0:i.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 v,S,y,c,h,g,T,E,k,r,m,V,s;const l=this;let a="";if(((v=n==null?void 0:n.binding)==null?void 0:v.type)==="Form"){const d=this.schemaService.getFieldByIDAndVMID(n.binding.field,this.viewModelId);(S=d==null?void 0:d.schemaField)!=null&&S.type&&(a=d.schemaField.type.$type)}const i=this.getPropertyEditorParams(n,["Variable"]),f=!n.editor.dataSourceType||n.editor.dataSourceType==="static",o=(((c=(y=this.designViewModelField)==null?void 0:y.type)==null?void 0:c.$type)===G.FormSchemaEntityFieldType$Type.StringType||!!this.formRule&&((h=this.designerHostService.schemaService.getFieldByID(n.binding.field))==null?void 0:h.type.$type)===G.FormSchemaEntityFieldType$Type.StringType)&&((g=n.editor)==null?void 0:g.type)==="combo-list"&&((T=n.editor)==null?void 0:T.dataSourceType)==="dynamic"&&!((k=(E=n.editor)==null?void 0:E.remote)!=null&&k.url)&&!((r=n.editor)!=null&&r.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:o,title:"数据",editor:{...i,controlName:"",enableClear:!0},refreshPanelAfterChanged:!0},data:{description:"",title:"数据",type:"array",visible:f,...l.getItemCollectionEditor(n,n.editor.valueField,n.editor.textField),refreshPanelAfterChanged:!0},url:{visible:n.editor.dataSourceType==="dynamic"&&!((m=n.editor)!=null&&m.dataSource),$converter:me,description:"",title:"服务端API",type:"string",refreshPanelAfterChanged:!0},body:{visible:!1,$converter:me,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:((V=n.editor)==null?void 0:V.dataSourceType)==="dynamic"&&!!((s=n.editor)!=null&&s.dataSource),type:"boolean",refreshPanelAfterChanged:!0},maxLength:{description:"",title:"最大输入长度",type:"number",editor:{nullable:!0,min:0,useThousands:!1,needValid:!0}},...this.getCommonEditorProperties(n)},(d,u)=>{if(!d||!u.editor)return;const b=this;switch(d.propertyID){case"dataSourceType":{d.propertyValue==="static"?(u.editor.valueField="value",u.editor.textField="name",u.editor.remote=null):d.propertyValue==="dynamic"&&(u.editor.remote={method:"GET"},u.editor.valueField="value",u.editor.textField="name");break}case"data":{!b.checkEnumDataReadonly(u)&&u.formatter&&(u.formatter.data=[...d.propertyValue]);break}case"viewType":{d.propertyValue==="tag"&&(u.editor.editable=!1);break}case"dataSource":b.afterMutilEditorChanged(u,d);break}})}getGridFieldEdtiorProperties(n,l){var v,S,y,c,h,g,T,E,k,r,m,V,s;const a=this;let i="";if(((v=n==null?void 0:n.binding)==null?void 0:v.type)==="Form"){const d=this.schemaService.getFieldByIDAndVMID(n.binding.field,this.viewModelId);(S=d==null?void 0:d.schemaField)!=null&&S.type&&(i=d.schemaField.type.$type)}const f=((c=(y=this.designViewModelField)==null?void 0:y.type)==null?void 0:c.$type)===G.FormSchemaEntityFieldType$Type.StringType&&((h=n.editor)==null?void 0:h.type)==="combo-list"&&((g=n.editor)==null?void 0:g.dataSourceType)==="dynamic"&&!((T=n.editor)!=null&&T.multiSelect),o=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:f,title:"数据",editor:{...o,controlName:"",enableClear:!0},refreshPanelAfterChanged:!0},data:{description:"",title:"数据",type:"array",visible:!((E=n.editor)!=null&&E.dataSourceType)||((k=n.editor)==null?void 0:k.dataSourceType)==="static",...a.getItemCollectionEditor(n,(r=n.editor)==null?void 0:r.valueField,(m=n.editor)==null?void 0:m.textField),refreshPanelAfterChanged:!0},textField:{description:"",title:"数据源显示字段",type:"string",readonly:!0},valueField:{description:"",title:"数据源值字段",type:"string",readonly:!0},multiSelect:{description:"",title:"启用多选",visible:i==="StringType",readonly:((V=n.editor)==null?void 0:V.dataSourceType)==="dynamic"&&!!((s=n.editor)!=null&&s.dataSource),type:"boolean",refreshPanelAfterChanged:!0},maxLength:{description:"",title:"最大输入长度",type:"number",editor:{nullable:!0,min:0,useThousands:!1,needValid:!0}},...this.getCommonEditorProperties(n)},(d,u)=>{if(!d||!u.editor)return;const b=this;switch(d.propertyID){case"dataSourceType":{d.propertyValue==="static"?(u.editor.valueField="value",u.editor.textField="name",u.editor.remote=null):d.propertyValue==="dynamic"&&(u.editor.remote={method:"GET"},u.editor.valueField="value",u.editor.textField="name");break}case"data":{!b.checkEnumDataReadonly(u)&&u.formatter&&(u.formatter.data=[...d.propertyValue]);break}case"dataSource":b.afterMutilEditorChanged(u,d)}})}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 f;super.changeBindingField(n,l);const i=a;n.editor&&((f=i==null?void 0:i.type)==null?void 0:f.$type)===G.FormSchemaEntityFieldType$Type.EnumType&&(n.editor.data=i.type.enumValues||[])}getEventPropertyConfig(n,l="card",a,i){const f=this;let o=[{label:"onChange",name:"值变化事件"},{label:"beforeOpen",name:"打开面板前事件"},{label:"beforeHide",name:"关闭面板前事件"},{label:"onShown",name:"面板打开事件"},{label:"onHidden",name:"面板关闭事件"}];o=[...o,...this.getInputCommonEvents(n)],a&&(o=o.concat(a)),this.formRule&&(o=o.filter(y=>y.label!=="onChange")),this.appendFieldValueChangeEvents(n,o);const p=f.eventsEditorUtils.formProperties(n,f.viewModelId,o);return{title:"事件",hideTitle:!0,properties:f.createBaseEventProperty(p),tabId:G.EVENT_PROPERTY_TAB_IDS,tabName:"交互",setPropertyRelates(y,c){const h=y.propertyValue;delete n[f.viewModelId],h&&(h.setPropertyRelates=this.setPropertyRelates,f.eventsEditorUtils.saveRelatedParameters(n,f.viewModelId,h.events,h),f.updateLinkedLabel(h,c)),i&&i(y,c,h);const g=f.designViewModelUtils.getDgViewModel(f.viewModelId);g&&f.designViewModelField&&g.changeField(f.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 Ye(e,n){const l=e.schema;function a(i,f){return new _e(i,n).getPropertyConfig(l,f)}return{getPropsConfig:a}}const Je=t.defineComponent({name:"FComboListDesign",props:Pe,emits:["clear","update:modelValue","change"],setup(e,n){const l=t.ref(),a=t.inject("designer-host-service"),i=t.inject("design-item-context"),f=Ye(i,a),o=Fe.useDesignerComponent(l,i,f);return t.onMounted(()=>{l.value.componentInstance=o}),n.expose(o.value),()=>t.createVNode(Se,{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)}});J.register=(e,n,l,a,i)=>{e["combo-list"]=J,n["combo-list"]=se(i),a["combo-list"]={callbackResolver:Ae}},J.registerDesigner=(e,n,l,a)=>{e["combo-list"]=Je,n["combo-list"]=se(a)},G.withInstall(J);const De={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 Ze(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 Qe(e,n,l,a){const{appendedContent:i}=a,f=t.ref(e.enableViewPassword),o=t.computed(()=>e.type==="password"||e.showType==="password"),p='<span class="f-icon f-icon-eye" style="color: rgb(56, 143, 255);"></span>',v='<span class="f-icon f-icon-eye"></span>',S=t.ref(!1);t.watch(()=>[e.readonly,e.disabled],([h,g])=>{o.value&&(l.value=h||g?"password":l.value,i.value=e.readonly||e.disabled?"":f.value?v:"")});function y(){return S.value=!S.value,l.value=S.value?"text":"password",i.value=S.value?p:v,!1}function c(){l.value=o.value?"password":l.value,o.value&&(i.value=e.readonly||e.disabled?"":f.value?v:"")}return c(),{isPassword:o,onClickAppendedButton:y}}function Xe(e,n){const l=K.useNumber(e,n),a=K.useFormat(e,n,l),i=K.useSpinner(e,n,a,l),f=K.useTextBox(e,n,a,l,i),o=K.getSpinnerRender(e,n,i),{displayValue:p,modelValue:v,getRealValue:S}=l,y=K.getNumberTextBoxRender(e,n,f),{format:c}=a,{isFocus:h}=f,g=t.computed(()=>!e.disabled&&!e.readonly);return t.onMounted(()=>{const T=S(e.modelValue);p.value=c(T)}),t.watch(()=>[e.value],([T])=>{const E=S(T);v.value=E,p.value=c(E)}),t.watch(()=>[e.modelValue],([T])=>{T!==v.value&&(v.value=T,!h.value&&(p.value=c(S(T))))}),t.watch(()=>[e.precision,e.useThousands,e.prefix,e.suffix,e.showZero],()=>{p.value=c(v.value)}),()=>t.createVNode("div",{class:"input-group flex-row f-cmp-number-spinner",style:"border:none;"},[y(),g.value&&o()])}function et(e){return e?Z.LocaleService.getRealPropertyValue(e,"请输入","input-group.placeholder"):""}function tt(e,n,l,a){const i=t.ref(),{inputGroupClass:f,onBlur:o,onFocus:p}=a,{clearButtonClass:v,clearButtonStyle:S}=l,y=t.computed(()=>e.maxLength?e.maxLength:e.modelValue?e.modelValue.length:0),c=u=>{var b,C;u.stopPropagation(),n.emit("update:modelValue",(b=u.target)==null?void 0:b.value),n.emit("valueChange",(C=u.target)==null?void 0:C.value)},h=t.computed(()=>({"form-control":!0,"h-100":e.autoHeight})),g=t.computed(()=>e.enableClear&&!e.readonly&&!e.disabled),T=et(e.placeholder),E=t.computed(()=>e.disabled||e.readonly?"":T),k=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"})),r=t.computed(()=>{const u={resize:"none","padding-right":"15px"};return e.rows>2?{height:"auto",...u}:u}),m=u=>{u.stopPropagation(),i.value.value="",n.emit("update:modelValue",""),n.emit("valueChange","")};function V(){return t.withDirectives(t.createVNode("textarea",{class:h.value,id:e.id,"onUpdate:modelValue":u=>e.modelValue=u,ref:i,minlength:e.minLength,maxlength:e.maxLength?e.maxLength:null,tabindex:e.tabIndex,disabled:e.disabled,readonly:e.readonly,autocomplete:e.autocomplete,placeholder:E.value,autofocus:e.autofocus,rows:e.rows,onInput:c,onFocus:p,onBlur:o,style:r.value},null),[[t.vModelText,e.modelValue]])}function s(){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 d(){return g.value&&t.createVNode("span",{id:"clearIcon",class:v.value,style:k.value,onClick:u=>m(u)},[t.createVNode("i",{class:"f-icon modal_close",style:"font-size:8px;color:#fff"},null)])}return{renderTextarea:V,renderCount:s,renderClear:d}}function nt(e,n,l,a){const i=t.ref(),f=t.ref(e.autocomplete),o=t.ref(e.enableTitle),{isPassword:p}=l,v=t.ref(e.minLength),S=t.ref(e.maxLength),y=t.ref(e.tabIndex),{disabled:c,displayText:h,inputType:g,onBlur:T,onFocus:E,onInput:k,onClick:r,onKeydown:m,onKeyup:V,onMousedown:s,onMouseup:d,onTextBoxValueChange:u,readonly:b,placeholder:C,textBoxClass:L,textBoxTitle:P}=a;return t.onMounted(()=>{var q,W;e.selectOnCreated&&((q=i.value)==null||q.select()),e.focusOnCreated&&((W=i.value)==null||W.focus({preventScroll:!0}))}),()=>t.createVNode("input",{id:e.id+"_textbox",ref:i,name:"input-group-value",autocomplete:f.value,class:L.value,disabled:c==null?void 0:c.value,maxlength:S.value,minlength:v.value,placeholder:C.value,readonly:b==null?void 0:b.value,tabindex:y.value,title:o.value&&!p.value?P.value:"",type:g.value,value:h==null?void 0:h.value,onBlur:T,onClick:r,onChange:u,onFocus:E,onInput:k,onKeydown:m,onKeyup:V,onMousedown:s,onMouseup:d},null)}function lt(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,o=>{l.value=o});function f(){n.emit("updateExtendInfo")}return()=>a.value&&t.withDirectives(t.createVNode("span",{class:"input-group-before-tips",onMouseenter:f},[t.createVNode("i",{class:"f-icon f-icon-info-circle"},null),t.createVNode("b",{class:"tips-arrow"},null)]),[[t.resolveDirective("tooltip"),i.value]])}function at(e,n,l,a,i){const{appendedButtonClass:f,appendedContent:o}=l,p=t.computed(()=>!e.readonly&&!e.disabled),v=t.computed(()=>o.value&&!n.slots.groupTextTemplate),S=t.computed(()=>!!n.slots.groupTextTemplate),{clearButtonClass:y,clearButtonStyle:c,onClearValue:h,shouldShowClearButton:g}=a,T=t.ref(0);t.watch(o,C=>{T.value++});function E(){return t.createVNode("span",{id:"clearIcon",class:y.value,style:c.value,onClick:C=>h(C)},[t.createVNode("i",{class:"f-icon modal_close"},null)])}function k(C){n.emit("iconMouseEnter",C)}function r(C){n.emit("iconMouseLeave",C)}function m(C){p.value&&n.emit("clickHandle",{originalEvent:C}),C.stopPropagation()}const V=e.type==="password"||e.showType==="password"?i.onClickAppendedButton:m;function s(){const C=o.value;if(!C||!(e.showButtonWhenDisabled||!e.disabled&&!e.readonly))return null;const P={class:"input-group-text",onMouseenter:k,onMouseleave:r,onClick:V};if(typeof C=="string")return t.createVNode("span",t.mergeProps(P,{innerHTML:C}),null);if(typeof C=="function"){const q=C();return t.createVNode("span",P,[typeof q=="string"?t.createVNode("span",{innerHTML:q},null):q])}else return t.createVNode("span",P,[C])}function d(){return n.slots.groupTextTemplate&&n.slots.groupTextTemplate()}function u(){return v.value?s():S.value?d():""}t.watch(()=>e.expandDisabled,(C,L)=>{T.value++});const{renderExpandContent:b}=Te.useInputExpand({...e,skipReadonlyCheck:!0},n);return()=>t.createVNode(t.Fragment,null,[t.createVNode("div",{class:f.value,key:"append-button-"+T.value},[g.value&&E(),u()]),b()])}const he=t.defineComponent({name:"FInputGroup",props:De,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),f=G.useTextBox(e,n,a,i,l),{inputGroupClass:o,inputType:p,inputGroupStyle:v,changeTextBoxValue:S}=f,y=Ze(e),{shouldShowAppendedButton:c}=y,h=G.useClear(e,n,f),{onMouseEnter:g,onMouseLeave:T}=h,E=Qe(e,n,p,y),k=Xe(e,n),{renderTextarea:r,renderCount:m,renderClear:V}=tt(e,n,h,f),s=nt(e,n,E,f),d=at(e,n,y,h,E),u=lt(e,n),b=t.computed(()=>p.value==="number"),C=t.computed(()=>p.value==="textarea");t.watch(()=>[e.value],([P])=>{a.value=P,i.value=P}),t.watch(()=>[e.modelValue],([P])=>{a.value=P,i.value=P}),t.onMounted(()=>{e.value&&(a.value=e.value,i.value=e.value)}),n.expose({clear:()=>{S("",!1),i.value=""},setText:P=>{S(P,!1),i.value=P}});const L=()=>t.createVNode("div",{ref:l,id:e.id,class:o.value,style:v.value,onMouseenter:g,onMouseleave:T},[b.value?k():C.value?r():t.createVNode(t.Fragment,null,[u(),s()]),!C.value&&!b.value&&c.value&&d(),C.value&&V(),C.value&&m()]);return()=>L()}});G.withInstall(he);function it(e){const n=(c,h)=>c??h,l={string:{compare:B.Contains,value:"",isEmpty:null,relation:M.And},number:{begin:null,end:null,interval:!1,value:null,isEmpty:null},datetime:{interval:!1,value:"",isEmpty:null},enum:{value:"",isEmpty:null},boolean:{value:!1,isEmpty:null}},a=(c="string")=>l[c]||l.string,i=c=>({compare:n(c.compare,B.Contains),value:n(c.value,""),isEmpty:n(c.isEmpty,null),relation:n(c.relation,M.And)}),f=c=>({begin:n(c.begin,null),end:n(c.end,null),interval:n(c.interval,!1),value:n(c.value,null),isEmpty:n(c.isEmpty,null)}),o=c=>({interval:n(c.interval,!1),value:n(c.value,""),rangeValue:n(c.rangeValue,""),isEmpty:n(c.isEmpty,null)}),p=c=>({value:n(c.value,""),isEmpty:n(c.isEmpty,null)}),v=c=>({value:n(c.value,null),isEmpty:n(c.isEmpty,null)}),S=c=>i(c);function y(){var E,k,r;const c=((E=e.value)==null?void 0:E.value)!==void 0&&((k=e.value)==null?void 0:k.value)!==null?e.value.value:void 0,h=(r=e.value)==null?void 0:r.dataType;return c==null?a(h):({string:i,number:f,datetime:o,enum:p,boolean:v}[h]||S)(c)}return{buildFieldValue:y}}const ot=t.defineComponent({name:"SearchForm",props:{field:Object,modelValue:Object,locales:Object},emits:["searchEmpty"],setup(e,n){var d,u,b,C,L,P,q,W;const l=[],a=t.reactive({}),i=t.ref(e.modelValue),f=t.computed(()=>{var F;return((F=i.value)==null?void 0:F.options)||{}}),{buildFieldValue:o}=it(i),p={[B.Contains]:((u=(d=e.locales)==null?void 0:d.operators)==null?void 0:u.contains)||"包含",[B.NotContains]:((C=(b=e.locales)==null?void 0:b.operators)==null?void 0:C.notContains)||"不包含",[B.Equal]:((P=(L=e.locales)==null?void 0:L.operators)==null?void 0:P.equal)||"等于",[B.NotEqual]:((W=(q=e.locales)==null?void 0:q.operators)==null?void 0:W.notEqual)||"不等于"};te.forEach(F=>{const I=p[F.value];I!==void 0&&(F.label=I)});const v=F=>{i.value.dataType==="number"?Object.assign(a,{begin:null,end:null,interval:!1,value:null,isEmpty:F?1001:1002}):Object.assign(a,{compare:B.Contains,value:null,isEmpty:F?1001:1002}),n.emit("searchEmpty",{...a})},S=F=>{a.isEmpty=null},y=F=>t.computed(()=>{const I={"panel-date-tag mt-2":!0};return a.isEmpty!=null?{...I,active:a.isEmpty===F}:I}),c=y(1001),h=y(1002);function g(F=!1){var I,j,H,N,O,U,z;return t.createVNode("div",{class:"f-filter-panel-date-tags",style:"padding-top: 5px; flex-wrap: wrap;"},[t.createVNode("div",{class:"d-flex f-utils-fill flex-columns"},[t.createVNode("div",{class:c.value,onClick:()=>v(!0)},[t.createTextVNode(" "),((j=(I=e.locales)==null?void 0:I.operators)==null?void 0:j.empty)||"为空",t.createTextVNode(" ")]),t.createVNode("div",{class:h.value,onClick:()=>v(!1)},[t.createTextVNode(" "),((N=(H=e.locales)==null?void 0:H.operators)==null?void 0:N.notEmpty)||"不为空",t.createTextVNode(" ")])]),F&&t.createVNode("div",{class:"mt-2 d-flex align-items-center"},[((O=e.locales)==null?void 0:O.relation.label)||"条件关系",t.createTextVNode(" "),t.withDirectives(t.createVNode("select",{name:"relation","onUpdate:modelValue":_=>a.relation=_,class:"form-control ml-1",style:"width: 50px;"},[t.createVNode("option",{value:M.And},[((U=e.locales)==null?void 0:U.relation.and)||"与"]),t.createVNode("option",{value:M.Or},[((z=e.locales)==null?void 0:z.relation.or)||"或"])]),[[t.vModelSelect,a.relation]])])])}function T(F){var I;return t.createVNode("div",{class:"d-flex align-items-center mb-2"},[((I=e.locales)==null?void 0:I.intervalFilter)||"按区间筛选",t.createVNode(we.FSwitch,{size:"small",class:"ml-2",modelValue:F.interval,"onUpdate:modelValue":j=>F.interval=j,style:"width: 33px"},null)])}function E(F){var I;return t.createVNode("div",{class:"d-flex flex-column"},[t.createVNode("div",{class:"d-flex"},[t.createVNode(J,{style:"width: 130px",data:te,modelValue:F.compare,"onUpd