UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

20 lines 61.3 kB
(function(D,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("vue"),require("lodash-es"),require("../common/index.umd.js"),require("../data-view/index.umd.js"),require("vue-i18n"),require("../checkbox/index.umd.js"),require("../button-edit/index.umd.js"),require("../dynamic-resolver/index.umd.js"),require("../list-view/index.umd.js"),require("../../designer/button-edit/index.umd.js"),require("../designer-canvas/index.umd.js"),require("../property-panel/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es","../common/index.umd.js","../data-view/index.umd.js","vue-i18n","../checkbox/index.umd.js","../button-edit/index.umd.js","../dynamic-resolver/index.umd.js","../list-view/index.umd.js","../../designer/button-edit/index.umd.js","../designer-canvas/index.umd.js","../property-panel/index.umd.js"],n):(D=typeof globalThis<"u"?globalThis:D||self,n(D.order={},D.Vue,D.LodashES,D.common,D.dataView,D.vueI18n,D.checkbox,D.FButtonEdit,D.dynamicResolver,D.FListView$1,D.FButtonEditDesign,D.designerCanvas,D.propertyPanel))})(this,function(D,n,z,_,E,Z,K,ke,ee,Ne,Me,Oe,Pe){"use strict";function le(e,t){let o;function i(a){const{properties:r,title:s,ignore:c}=a,l=c&&Array.isArray(c),u=Object.keys(r).reduce((b,d)=>((!l||!c.find(y=>y===d))&&(b[d]=r[d].type==="object"&&r[d].properties?i(r[d]):z.cloneDeep(r[d].default)),b),{});if(s&&(!l||!c.find(b=>b==="id"))){const b=s.toLowerCase().replace(/-/g,"_");u.id=`${b}_${Math.random().toString().slice(2,6)}`}return u}function m(a){const{properties:r,title:s,required:c}=a;if(c&&Array.isArray(c)){const l=c.reduce((u,b)=>(u[b]=r[b].type==="object"&&r[b].properties?i(r[b]):z.cloneDeep(r[b].default),u),{});if(s&&c.find(u=>u==="id")){const u=s.toLowerCase().replace(/-/g,"_");l.id=`${u}_${Math.random().toString().slice(2,6)}`}return l}return{type:s}}function g(a,r={},s){const c=e[a];if(c){let l=m(c);const u=t[a];return l=u?u({getSchemaByType:g},l,r,s):l,o!=null&&o.appendIdentifyForNewControl&&o.appendIdentifyForNewControl(l),l}return null}function f(a,r){const s=i(r);return Object.keys(s).reduce((c,l)=>(Object.prototype.hasOwnProperty.call(a,l)&&(c[l]&&z.isPlainObject(c[l])&&z.isPlainObject(a[l]||!a[l])?Object.assign(c[l],a[l]||{}):c[l]=a[l]),c),s),s}function C(a,r){return Object.keys(a).filter(c=>a[c]!=null).reduce((c,l)=>{if(r.has(l)){const u=r.get(l);if(typeof u=="string")c[u]=a[l];else{const b=u(l,a[l],a);Object.assign(c,b)}}else c[l]=a[l];return c},{})}function T(a,r,s=new Map){const c=f(a,r);return C(c,s)}function h(a){var s;const r=a.type;if(r){const c=e[r];if(!c)return a;const l=f(a,c),u=((s=a.editor)==null?void 0:s.type)||"";if(u){const b=e[u],d=f(a.editor,b);l.editor=d}return l}return a}function v(a){o=a}return{getSchemaByType:g,resolveSchemaWithDefaultValue:h,resolveSchemaToProps:T,mappingSchemaToProps:C,setDesignerContext:v}}const ce={},se={},{getSchemaByType:Gt,resolveSchemaWithDefaultValue:Be,resolveSchemaToProps:Ie,mappingSchemaToProps:Re,setDesignerContext:zt}=le(ce,se);function je(e={}){function t(h,v,a,r){if(typeof a=="number")return r[h].length===a;if(typeof a=="object"){const s=Object.keys(a)[0],c=a[s];if(s==="not")return Number(r[h].length)!==Number(c);if(s==="moreThan")return Number(r[h].length)>=Number(c);if(s==="lessThan")return Number(r[h].length)<=Number(c)}return!1}function o(h,v,a,r){return r[h]&&r[h].propertyValue&&String(r[h].propertyValue.value)===String(a)}const i=new Map([["length",t],["getProperty",o]]);Object.keys(e).reduce((h,v)=>(h.set(v,e[v]),h),i);function m(h,v){const a=h;return typeof v=="number"?[{target:a,operator:"length",param:null,value:Number(v)}]:typeof v=="boolean"?[{target:a,operator:"getProperty",param:h,value:!!v}]:typeof v=="object"?Object.keys(v).map(r=>{if(r==="length")return{target:a,operator:"length",param:null,value:v[r]};const s=r,c=v[r];return{target:a,operator:"getProperty",param:s,value:c}}):[]}function g(h){return Object.keys(h).reduce((a,r)=>{const s=m(r,h[r]);return a.push(...s),a},[])}function f(h,v){if(i.has(h.operator)){const a=i.get(h.operator);return a&&a(h.target,h.param,h.value,v)||!1}return!1}function C(h,v){return g(h).reduce((s,c)=>s&&f(c,v),!0)}function T(h,v){const a=Object.keys(h),r=a.includes("allOf"),s=a.includes("anyOf"),c=r||s,b=(c?h[c?r?"allOf":"anyOf":"allOf"]:[h]).map(y=>C(y,v));return r?!b.includes(!1):b.includes(!0)}return{parseValueSchema:T}}const xe={convertTo:(e,t,o,i)=>{e.appearance||(e.appearance={}),e.appearance[t]=o},convertFrom:(e,t,o)=>e.appearance?e.appearance[t]:e[t]},$e={convertFrom:(e,t,o)=>e.buttons&&e.buttons.length?`共 ${e.buttons.length} 项`:"无"},De={convertTo:(e,t,o,i)=>{e.editor&&(e.editor[t]=o)},convertFrom:(e,t,o)=>e.editor&&Object.prototype.hasOwnProperty.call(e.editor,t)?e.editor[t]:e[t]},ue={button:{type:"button",name:"按钮"},"response-toolbar":{type:"response-toolbar",name:"工具栏"},"response-toolbar-item":{type:"response-toolbar-item",name:"按钮"},"content-container":{type:"content-container",name:"容器"},"input-group":{type:"input-group",name:"文本"},textarea:{type:"textarea",name:"多行文本"},lookup:{type:"lookup",name:"帮助"},"number-spinner":{type:"number-spinner",name:"数值"},"date-picker":{type:"date-picker",name:"日期"},switch:{type:"switch",name:"开关"},"radio-group":{type:"radio-group",name:"单选组"},"check-box":{type:"check-box",name:"复选框"},"check-group":{type:"check-group",name:"复选框组"},"combo-list":{type:"combo-list",name:"下拉列表"},"response-form":{type:"response-form",name:"卡片面板"},"response-layout":{type:"response-layout",name:"布局容器",icon:"response-layout-3"},"response-layout-item":{type:"response-layout-item",name:"布局",icon:"response-layout-1"},"tree-grid":{type:"tree-grid",name:"树表格"},"tree-grid-column":{type:"tree-grid-column",name:"树表格列"},"data-grid":{type:"data-grid",name:"表格"},"data-grid-column":{type:"data-grid-column",name:"表格列"},module:{type:"Module",name:"模块"},component:{type:"component",name:"组件"},tabs:{type:"tabs",name:"标签页"},"tab-page":{type:"tab-page",name:"标签页项",dependentParentControl:"Tab"},"tab-toolbar-item":{type:"tab-toolbar-item",name:"标签页工具栏按钮"},"html-template":{type:"html-template",name:"模板容器"},"time-picker":{type:"time-picker",name:"时间选择"},section:{type:"section",name:"分组面板"},"section-toolbar":{type:"section-toolbar",name:"分组面板工具栏"},"section-toolbar-item":{type:"section-toolbar-item",name:"分组面板按钮"},splitter:{type:"splitter",name:"分栏面板"},"splitter-pane":{type:"splitter-pane",name:"分栏面板项",dependentParentControl:"Splitter"},"component-ref":{type:"component-ref",name:"组件引用节点"},uploader:{type:"uploader",name:"附件上传"},"page-header":{type:"page-header",name:"页头"},"page-footer":{type:"page-footer",name:"页脚"},"tab-toolbar":{type:"tab-toolbar",name:"标签页工具栏"},fieldset:{type:"fieldset",name:"分组"},"query-solution":{type:"query-solution",name:"筛选方案"},drawer:{type:"drawer",name:"抽屉"},"external-container":{type:"external-container",name:"外部容器",icon:"content-container"},"list-nav":{type:"list-nav",name:"列表导航"},"list-view":{type:"list-view",name:"列表"},"filter-bar":{type:"filter-bar",name:"筛选条"},"language-textbox":{type:"language-textbox",name:"多语输入框"}},Ee={convertFrom:(e,t,o)=>{var m;const i=e.editor&&e.editor[t]?e.editor[t]:e[t];return((m=ue[i])==null?void 0:m.name)||i}},Le={convertTo:(e,t,o,i)=>{e[t]=e[t]},convertFrom:(e,t,o)=>e.editor?o.getRealEditorType(e.editor.type):""},Ae={convertTo:(e,t,o,i)=>{(e.type==="data-grid-column"||e.type==="tree-grid-column")&&(e.formatter?e.formatter[t]=o:e.formatter={[t]:o})},convertFrom:(e,t,o)=>{if(e.formatter){if(t==="trueText")return e.formatter.trueText;if(t==="falseText")return e.formatter.falseText;if(t==="prefix")return e.formatter.prefix;if(t==="suffix")return e.formatter.suffix;if(t==="precision")return e.formatter.precision;if(t==="decimal")return e.formatter.decimal;if(t==="thousand")return e.formatter.thousand;if(t==="tempDateFormat")return e.formatter.dateFormat==="yyyy年MM月dd日"?"yearMonthDay":e.formatter.dateFormat==="yyyy-MM-dd HH:mm:ss"?"yyyy-MM-ddTHH:mm:ss":e.formatter.dateFormat==="yyyy/MM/dd HH:mm:ss"?"yyyy/MM/ddTHH:mm:ss":e.formatter.dateFormat==="yyyy年MM月dd日 HH时mm分ss秒"?"yearMonthDayHourMinuteSecond":e.formatter.tempDateFormat||e.formatter.dateFormat||"yyyy-MM-dd";if(t==="customFormat")return e.formatter.customFormat;if(t==="type")return e.formatter.type||"none"}return"none"}},He={convertTo:(e,t,o,i)=>{e.command?e.command[t]=o:e.command={[t]:o},t==="enable"&&o&&(e.command.commands||(e.command.commands=[{text:"编辑",type:"primary",command:"edit"},{text:"删除",type:"danger",command:"remove"}]))},convertFrom:(e,t,o)=>e.command&&t==="enable"?e.command.enable:""},qe={convertTo:(e,t,o,i)=>{e.column?e.column[t]=o:e.column={[t]:o},t==="fitColumns"&&o&&(e.column.fitMode||(e.column.fitMode="average"))},convertFrom:(e,t,o)=>{if(e.column){if(t==="fitColumns")return e.column.fitColumns;if(t==="fitMode")return e.column.fitMode}return""}},_e={convertTo:(e,t,o,i)=>{e.summary?e.summary[t]=o:e.summary={[t]:o},t==="enable"&&o&&(e.summary?e.summary.groupFields||(e.summary.groupFields=[]):e.summary={enable:o,groupFields:[]})},convertFrom:(e,t,o)=>e.summary&&t==="enable"?e.summary.enable:e.type==="data-grid-column"?e.enableSummary===void 0?!1:e.enableSummary:""},Ge={convertTo:(e,t,o,i)=>{e.group?e.group[t]=o:e.group={[t]:o},t==="enable"&&o&&(e.group?e.group.groupFields||(e.group.groupFields=[]):e.group={enable:o,groupFields:[],showSummary:!1})},convertFrom:(e,t,o)=>{if(e.group){if(t==="enable")return e.group.enable;if(t==="showSummary")return e.group.showSummary}}},ze={convertFrom:(e,t)=>e.binding?e.binding.path:"",convertTo:(e,t,o)=>{if(o&&o.length>0){const i=o[0];e.binding||(e.binding={}),e.binding.type="Form",e.binding.path=i.bindingField,e.binding.field=i.id,e.binding.fullPath=i.path,e.path=i.bindingPath}}},We={convertTo:(e,t,o,i)=>{e.pagination||(e.pagination={}),e.pagination[t]=o},convertFrom:(e,t,o)=>e.pagination?e.pagination[t]:e[t]},Ue={convertTo:(e,t,o,i)=>{e.rowNumber||(e.rowNumber={}),e.rowNumber[t]=o},convertFrom:(e,t,o)=>e.rowNumber?e.rowNumber[t]:e[t]},Xe={convertTo:(e,t,o,i)=>{e.selection||(e.selection={}),e.selection[t]=o},convertFrom:(e,t,o)=>e.selection?e.selection[t]:e[t]},Ye={convertFrom:(e,t,o)=>e[t]&&e[t].length?`共 ${e[t].length} 项`:""},Je={convertFrom:(e,t)=>e[t]||"",convertTo:(e,t,o)=>{e[t]=o}},Qe={convertTo:(e,t,o,i)=>{e.size||(e.size={}),e.size[t]=o},convertFrom:(e,t,o)=>e.size?e.size[t]:e[t]},Ze={convertFrom:(e,t,o)=>{var i,m;return(i=e.formatter)!=null&&i.data&&t==="formatterEnumData"&&!e.formatterEnumData?(m=e.formatter)==null?void 0:m.data:e.formatterEnumData}},Ke={convertTo:(e,t,o,i)=>{e.sort||(e.sort={}),e.sort[t]=o},convertFrom:(e,t,o)=>{var i,m;if(t==="mode")return((i=e.sort)==null?void 0:i.mode)||"client";if(t==="multiSort")return!!((m=e.sort)!=null&&m.multiSort)}},et={convertTo:(e,t,o,i)=>{e.filter||(e.filter={}),e.filter[t]=o},convertFrom:(e,t,o)=>{var i;if(t==="mode")return((i=e.filter)==null?void 0:i.mode)||"client"}},tt={convertTo:(e,t,o,i)=>{e.rowOption?e.rowOption[t]=o:e.rowOption={[t]:o}},convertFrom:(e,t,o)=>{if(e.rowOption){if(t==="customRowStyle")return e.rowOption.customRowStyle;if(t==="customCellStyle")return e.rowOption.customCellStyle}return""}};function de(e,t,o){const i=new Map([["/converter/appearance.converter",xe],["/converter/buttons.converter",$e],["/converter/property-editor.converter",De],["/converter/items-count.converter",Ye],["/converter/type.converter",Ee],["/converter/change-editor.converter",Le],["/converter/change-formatter.converter",Ae],["/converter/column-command.converter",He],["/converter/column-option.converter",qe],["/converter/summary.converter",_e],["/converter/group.converter",Ge],["/converter/form-group-label.converter",Je],["/converter/field-selector.converter",ze],["/converter/pagination.converter",We],["/converter/row-number.converter",Ue],["/converter/grid-selection.converter",Xe],["/converter/size.converter",Qe],["/converter/change-formatter-enum.converter",Ze],["/converter/grid-sort.converter",Ke],["/converter/grid-filter.converter",et],["/converter/row-option.converter",tt]]),m=new Map([["string",{type:"input-group",enableClear:!1}],["boolean",{type:"combo-list",textField:"name",valueField:"value",idField:"value",enableClear:!1,editable:!1,data:[{value:!0,name:"是"},{value:!1,name:"否"}]}],["enum",{type:"combo-list",maxHeight:128,enableClear:!1,editable:!1}],["array",{type:"button-edit"}],["number",{type:"number-spinner",placeholder:""}],["events-editor",{type:"events-editor",hide:!0}]]),g=je();function f(c,l){return()=>g.parseValueSchema(c,l)}function C(c,l,u){return c.includes("visible")&&l.visible!==void 0?typeof l.visible=="boolean"?()=>!!l.visible:l.visible===void 0?!0:f(l.visible,u):()=>!0}function T(c,l,u){return c.includes("readonly")&&l.readonly!==void 0?typeof l.readonly=="boolean"?()=>!!l.readonly:f(l.readonly,u):()=>!1}function h(c,l){const u=c.$converter||l;return typeof u=="string"&&u&&i.has(u)?i.get(u)||null:u||null}function v(c,l,u,b,d,y="",O=""){return Object.keys(c).map(k=>{const M=n.ref(1),F=k,p=c[k],I=Object.keys(p),R=p.title,S=p.type,P=m.get(S)||{type:"input-group",enableClear:!1},w=p.editor?Object.assign({},P,p.editor):Object.assign({},P),V=C(I,p,l),N=T(I,p,l);w.readonly=w.readonly===void 0?N():w.readonly;const x=p.type==="cascade"?v(p.properties,l,u,b,d,y,O):[],j=!0;let L=h(p,O);const A=n.computed({get(){if(M.value){if(["class","style"].find(ie=>ie===F)&&!L&&(L=i.get("/converter/appearance.converter")||null),L&&L.convertFrom)return L.convertFrom(u,k,d,y);const H=u[k];return Object.prototype.hasOwnProperty.call(p,"defaultValue")&&(H===void 0||typeof H=="string"&&H==="")?p.type==="boolean"?p.defaultValue:p.defaultValue||"":H}return null},set(H){M.value+=1,L&&L.convertTo?(L.convertTo(b,k,H,d,y),L.convertTo(u,k,H,d,y)):(b[k]=H,u[k]=H)}}),{refreshPanelAfterChanged:q,description:oe,isExpand:re,parentPropertyID:J}=p,Q={propertyID:F,propertyName:R,propertyType:S,propertyValue:A,editor:w,visible:V,readonly:N,cascadeConfig:x,hideCascadeTitle:j,refreshPanelAfterChanged:q,description:oe,isExpand:re,parentPropertyID:J};return l[F]=Q,Q})}function a(c,l,u={}){const b={},d=e[c];return d&&d.categories?Object.keys(d.categories).map(O=>{const B=d.categories[O],k=B==null?void 0:B.title,M=v(B.properties||{},b,{},u,l);return{categoryId:O,categoryName:k,properties:M}}):[]}function r(c,l,u,b,d=""){const y=l.$ref.schema,O=l.$ref.converter,B=u[y],k=B.type,M=o(B),F={},p=e[k];if(p&&p.categories){const I=p.categories[c],R=I==null?void 0:I.title;O&&Object.keys(I.properties).forEach(w=>{I.properties[w].$converter=O});const S=(I==null?void 0:I.properties)||{},P=v(S,F,M,B,b,d);return{categoryId:c,categoryName:R,properties:P}}return{categoryId:c,categoryName:"",properties:[]}}function s(c,l,u,b,d){const y=c.type,O=o(c),B={};let k=d||e[y];if(k&&Object.keys(k).length===0&&u&&u.getPropConfig&&(k=u.getPropConfig(b)),k&&k.categories){const M=[];return Object.keys(k.categories).map(F=>{const p=k.categories[F];if(p.$ref){M.push(r(F,p,c,l,b));return}const I=p==null?void 0:p.title,R=p==null?void 0:p.tabId,S=p==null?void 0:p.tabName,P=p==null?void 0:p.hide,w=p==null?void 0:p.hideTitle,V=v(p.properties||{},B,O,c,l,b,p.$converter),{setPropertyRelates:N}=p,x=p==null?void 0:p.parentPropertyID;M.push({categoryId:F,categoryName:I,tabId:R,tabName:S,hide:P,properties:V,hideTitle:w,setPropertyRelates:N,parentPropertyID:x})}),M}return[]}return{getPropertyConfigBySchema:s,getPropertyConfigByType:a,propertyConverterMap:i}}const fe={},me={};de(fe,me,Be);const pe={},ge={},{getSchemaByType:Wt,resolveSchemaWithDefaultValue:nt,resolveSchemaToProps:Ut,mappingSchemaToProps:Xt,setDesignerContext:Yt}=le(pe,ge),ye={},he={};de(ye,he,nt);function ot(e,t,o=new Map,i=(f,C,T,h)=>C,m={},g=f=>f){return ce[t.title]=t,se[t.title]=i,fe[t.title]=m,me[t.title]=g,pe[t.title]=t,ge[t.title]=i,ye[t.title]=m,he[t.title]=g,(f={},C=!0)=>{if(!C)return Re(f,o);const T=Ie(f,t,o),h=Object.keys(e).reduce((v,a)=>(v[a]=e[a].default,v),{});return Object.assign(h,T)}}function rt(e,t){return{customClass:t.class,customStyle:t.style}}const it=new Map([["appearance",rt]]),at={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/order.schema.json",title:"order",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for a order",type:"string"},type:{description:"The type string of order component",type:"string",default:"order"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},editable:{description:"",type:"boolean",default:!0},enableLinkLabel:{description:"",type:"boolean",default:!1},label:{description:"",type:"string",default:""},lableWidth:{description:"",type:"number"},placeholder:{description:"",type:"string",default:""},readonly:{description:"",type:"boolean",default:!1},required:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},textAlign:{description:"",type:"string",enum:["left","middle","right"],default:"left"},visible:{description:"",type:"boolean",default:!0},onBlur:{description:"",type:"string",default:""},onClickLinkLabel:{description:"",type:"sting",default:""}},required:["id","type"]};function lt(e,t,o){return t}const ct={title:"order",description:"A Farris Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"select",editor:{type:"waiting for modification",enum:[]}}}},behavior:{description:"Basic Infomation",title:"行为",properties:{editable:{description:"",title:"允许编辑",type:"boolean"},readonly:{description:"",title:"只读",type:"string"},required:{description:"",title:"必填",type:"boolean"},visible:{description:"",title:"可见",type:"boolean"},placeholder:{description:"",title:"提示文本",type:"string"},tabindex:{description:"",title:"tab索引",type:"number"},textAlign:{description:"",title:"对齐方式",type:"enum",editor:{type:"combo-list",textField:"name",valueField:"value",data:[{value:"left",name:"左对齐"},{value:"center",name:"居中"},{value:"right",name:"右对齐"}]}}}}}},W={dataSource:{type:Array,default:[]},items:{type:Array,default:[]}},te=ot(W,at,it,lt,ct),st={columns:{type:Array,default:[{field:"name",title:"",dataType:"string"}]},customClass:{type:String,default:""},data:{type:Array,default:[]},draggable:{type:Boolean,default:!1},multiSelect:{type:Boolean,default:!1},multiSelectMode:{type:String,default:"OnCheck"},idField:{type:String,default:"id"},valueField:{type:String,default:"id"},textField:{type:String,default:"name"},titleField:{type:String,default:"name"},view:{type:String,default:"ContentView"},size:{type:String,default:"default"},placeholder:{type:String,default:""},header:{type:String,default:"ContentHeader"},headerClass:{type:String,default:""},itemClass:{type:[String,Function],default:"",validator:e=>typeof e=="string"||typeof e=="function"},itemStyle:{type:[String,Function],default:"",validator:e=>typeof e=="string"||typeof e=="function"},itemContentClass:{type:String,default:""},selectionValues:{type:Array,default:[]},group:{type:Object},selection:{type:Object,default:{enableSelectRow:!0,multiSelect:!1,multiSelectMode:"DependOnCheck",showCheckbox:!1,showSelectAll:!1,showSelection:!0}},keepOrder:{type:Boolean,default:!1},disableField:{type:String,default:"disabled"},enableHighlightSearch:{type:Boolean,default:!0},virtualized:{type:Boolean,default:!0},checkBeforeRemoveItem:{type:Function,default:null},headerTemplate:{type:Object},contentTemplate:{type:Object},footerTemplate:{type:Object},emptyTemplate:{type:Object},pagination:{type:Object,default:{enable:!1,size:20}}};function ut(e,t){function o(g){const f=[];let C=g.nextNode();for(;C;)f.push(C),C=g.nextNode();return f}function i(g,f){const C=document.createTreeWalker(g,NodeFilter.SHOW_TEXT);return o(C).map(a=>({textNode:a,text:(a.textContent||"").toLocaleLowerCase()})).map(({textNode:a,text:r})=>{const s=[];let c=0;for(;c<r.length;){const l=r.indexOf(f,c);if(l===-1)break;s.push(l),c=l+f.length}return s.map(l=>{const u=new Range;return u.setStart(a,l),u.setEnd(a,l+f.length),u})}).flat()}function m(g){if(!CSS.highlights||(CSS.highlights.clear(),!g||!t))return;const f=i(t.value,g.toLocaleLowerCase()),C=new Highlight(...f);CSS.highlights.set("search-result",C)}return{search:m}}function ve(e,t,o,i,m,g,f,C,T,h){const v=n.ref(e.size),a=n.ref(e.textField),r=n.ref(e.titleField),s=n.ref(e.disableField),c=n.computed(()=>{var F,p;return((F=e.selection)==null?void 0:F.multiSelect)&&((p=e.selection)==null?void 0:p.showCheckbox)}),{onMouseenterItem:l,onMouseoverItem:u,onMouseoutItem:b}=g,{getKey:d,listViewItemClass:y,onCheckItem:O,onClickItem:B}=f,k=n.computed(()=>{const F={"text-overflow":"ellipsis",overflow:"hidden","white-space":"nowrap"};return e.itemClass?F:{margin:v.value==="small"?"0.25rem 0":"8px 0",...F}});function M(F,p,I){return F.checked=C.findIndexInSelectedItems(F)>-1,n.createVNode("li",{class:y(F,p),id:d(F,p),key:d(F,p),onClick:R=>B(F,p,R),onMouseenter:R=>l(R,F,p),onMouseover:R=>u(R,F,p),onMouseout:R=>b(R,F,p)},[c.value&&n.createVNode("div",{class:"f-list-select",onClick:R=>R.stopPropagation()},[n.createVNode(K.FCheckbox,{id:"list-"+d(F,p),customClass:"listview-checkbox float-left",disabled:F[s.value],checked:F.checked,"onUpdate:checked":R=>F.checked=R,onChange:R=>{O(F,p,!R.checked)}},null)]),n.createVNode("div",{class:"f-list-content"},[n.createVNode("div",{class:e.itemContentClass,style:k.value,title:F.raw[r.value]||F.raw[a.value]},[F.raw[a.value]])])])}return{renderItem:M}}function dt(e,t,o,i,m,g,f,C,T,h){const v=n.ref(e.multiSelect),a=n.ref(e.disableField),r=n.ref(e.textField),{onMouseenterItem:s,onMouseoverItem:c,onMouseoutItem:l}=g,{getKey:u,listViewItemClass:b,listViewItemStyle:d,onCheckItem:y,onClickItem:O}=f;function B(M,F,p){return e.contentTemplate?n.createVNode(n.Fragment,null,[e.contentTemplate({item:M.raw,index:F,selectedItem:p})]):t.slots.content?n.createVNode(n.Fragment,null,[t.slots.content&&t.slots.content({item:M.raw,index:F,selectedItem:p})]):n.createVNode("div",{style:"margin: 10px 0;"},[M.raw[r.value||"name"]])}function k(M,F,p){return n.createVNode("li",{class:b(M,F),id:u(M,F),key:u(M,F),style:d(M,F),onClick:I=>O(M,F,I),onMouseenter:I=>s(I,M,F),onMouseover:I=>c(I,M,F),onMouseout:I=>l(I,M,F)},[v.value&&n.createVNode("div",{class:"f-list-select",onClick:I=>I.stopPropagation()},[n.createVNode(K.FCheckbox,{id:"list-"+u(M,F),customClass:"listview-checkbox",disabled:M[a.value]||!M.checked,checked:M.checked,"onUpdate:checked":I=>M.checked=I,onChange:I=>y(M,F,!I.checked)},null)]),n.createVNode("div",{class:"f-list-content"},[B(M,F,p)])])}return{renderItem:k}}function ft(e,t,o,i,m,g,f,C,T,h){const v=n.ref(e.multiSelect),a=n.ref(e.disableField),r=n.ref(e.textField),{onMouseenterItem:s,onMouseoverItem:c,onMouseoutItem:l}=g,{getKey:u,listViewItemClass:b,onCheckItem:d,onClickItem:y}=f,{dragstart:O,dragenter:B,dragover:k,dragend:M}=i,{removeItem:F}=T,p=n.computed(()=>({margin:v.value?"10px 0":"10px 0px 10px 14px"}));function I(V,N=""){const x=V.target;x.title=x.scrollWidth>x.clientWidth?N:""}function R(V){return n.createVNode("div",{style:p.value,onMouseenter:N=>I(N,V.raw[r.value||"name"])},[V.raw[r.value||"name"]])}function S(){return t.slots.itemContent?t.slots.itemContent:R}const P=S();function w(V,N,x){return n.createVNode("li",{class:b(V,N),id:u(V,N),key:u(V,N),onClick:j=>y(V,N,j),onMouseenter:j=>s(j,V,N),onMouseover:j=>c(j,V,N),onMouseout:j=>l(j,V,N),draggable:"true",onDragstart:j=>O(j,V,N),onDragenter:j=>B(j,N),onDragend:j=>M(j,V),onDragover:j=>k(j)},[v.value&&n.createVNode("div",{class:"f-list-select",onClick:j=>j.stopPropagation()},[n.createVNode(K.FCheckbox,{id:"list-"+u(V,N),customClass:"listview-checkbox",disabled:V[a.value]||!V.checked,checked:V.checked,"onUpdate:checked":j=>V.checked=j,onChange:j=>d(V,N,!j.checked)},null)]),n.createVNode("div",{class:"f-list-content"},[P(V)]),n.createVNode("div",{class:"f-list-remove",onClick:j=>F(N)},[n.createVNode("div",{class:"f-list-remove-icon"},[n.createVNode("i",{class:"f-icon f-icon-remove_face"},null)])]),n.createVNode("div",{class:"f-list-handle"},[n.createVNode("div",null,[n.createVNode("i",{class:"f-icon f-icon-drag-vertical"},null)])])])}return{renderItem:w}}function mt(e,t,o,i,m,g,f,C,T,h){var u;const v=n.ref(((u=e.group)==null?void 0:u.groupFields)||[]),{collpaseGroupIconClass:a}=m,{toggleGroupRow:r}=h;function s(b,d){d.collapse=!d.collapse,o.value=r(d.collapse?"collapse":"expand",d,o.value)}function c(b,d,y){return t.slots.group?n.createVNode(n.Fragment,null,[t.slots.content&&t.slots.group({item:b.raw,index:d,selectedItem:y})]):n.createVNode("div",{class:"f-navlookup-recentHeader",onClick:O=>s(O,b)},[n.createVNode("div",{class:"fv-grid-group-row-icon"},[n.createVNode("span",{class:a(b)},null)]),n.createVNode("div",{class:"f-navlookup-recommandLabel"},[b.raw[v.value[b.layer]]])])}function l(b,d,y){return b.layer>-1&&c(b,d,y)}return{renderItem:l}}function pt(e,t,o,i){const{dataView:m}=o,{updateSelectedItems:g}=i;function f(C){if(C>-1&&C<m.value.length){if(e!=null&&e.checkBeforeRemoveItem&&!e.checkBeforeRemoveItem(m.value[C]))return;const T=m.value.splice(C,1);g(),t.emit("removeItem",T[0])}}return{removeItem:f}}function gt(e,t,o,i,m,g,f,C,T,h){const{t:v}=Z.useI18n(),a=n.ref(e.view),r=n.ref(e.view==="CardView"),s=n.ref({}),c=n.ref(v("listView.emptyMessage")),l=pt(e,t,i,T),u=n.computed(()=>({"f-list-view-group":!0,"f-list-view-group-multiselect":e.multiSelect,"d-flex":r.value,"flex-wrap":r.value})),b=n.computed(()=>!!o.value&&o.value.length>0),d=n.computed(()=>o.value.length===0);n.computed(()=>d.value&&!t.slots.empty);function y(){return a.value==="SingleView"?ve:a.value==="DraggableView"?ft:(a.value==="ContentView"||a.value==="CardView")&&(e.contentTemplate||t.slots.content)?dt:ve}const O=y(),{renderItem:B}=O(e,t,o,h,m,g,T,f,l,C),{renderItem:k}=mt(e,t,o,h,m,g,T,f,l,C),M=[B,k];function F(){return o.value.filter(R=>R.visible!==!1).map((R,S)=>M[R.type](R,S,s))}function p(){return n.createVNode("div",{class:"f-list-view-emptydata",style:"margin: 0 auto;"},[n.createVNode("p",{class:"f-empty-title"},[e.emptyTemplate?e.emptyTemplate():t.slots.empty?t.slots.empty():c.value])])}function I(){return n.createVNode("ul",{class:u.value,style:"list-style: none;"},[b.value&&F(),d.value&&p()])}return{renderListArea:I}}function yt(e,t,o){function i(){return t.slots.header&&n.createVNode("div",{class:"f-list-view-header"},[t.slots.header()])}return{renderHeader:i}}function be(e,t,o){const i=n.ref(e.headerClass),m=n.ref(e.placeholder),g=n.ref(""),f=n.computed(()=>!g.value),C=n.computed(()=>!!g.value);function T(r){g.value=""}n.watch(g,r=>{e.enableHighlightSearch&&o.search(r),t.emit("afterSearch",r)});const h=n.computed(()=>{const r={"form-group":!0,"farris-form-group":!0};return i.value&&i.value.split(" ").reduce((c,l)=>(c[l]=!0,c),r),r});function v(r){}function a(){return n.createVNode("div",{class:"f-list-view-header",onClick:n.withModifiers(()=>v,["prevent","stop"])},[n.createVNode("div",{class:h.value},[n.createVNode("div",{class:"farris-input-wrap"},[n.createVNode("div",{class:"f-cmp-inputgroup"},[n.createVNode("div",{class:"input-group f-state-editable"},[n.withDirectives(n.createVNode("input",{class:"form-control f-utils-fill text-left","onUpdate:modelValue":r=>g.value=r,name:"input-group-value",type:"text",placeholder:m.value,autocomplete:"off"},null),[[n.vModelText,g.value]]),n.createVNode("div",{class:"input-group-append"},[C.value&&n.createVNode("span",{class:"input-group-text input-group-clear",onClick:r=>T()},[n.createVNode("i",{class:"f-icon f-icon-close-circle"},null)]),f.value&&n.createVNode("span",{class:"input-group-text"},[n.createVNode("span",{class:"f-icon f-icon-search"},null)])])])])])])])}return{renderHeader:a}}function ht(){const e=n.ref(""),t=n.ref(-1),o=n.ref(""),i=n.ref(-1),m=n.ref(!1);function g(a,r,s){i.value=s}function f(a,r,s){m.value||(i.value=s)}function C(a,r,s){i.value=-1}function T(){m.value=!0}function h(){m.value=!1}function v(){t.value=-1,e.value=""}return{activeIndex:t,focusedItemId:o,hoverIndex:i,clearActiveItem:v,onMouseenterItem:g,onMouseoverItem:f,onMouseoutItem:C,resumeHover:h,suspendHover:T}}function vt(e,t,o,i){const m=n.ref(e.idField),{dataView:g}=o,f=n.ref(-1),C=n.ref(!1),{activeIndex:T,focusedItemId:h,hoverIndex:v,resumeHover:a,suspendHover:r}=i;let s,c=0,l=0;function u(k,M){const F=k-c,p=M-l;s.style.left=parseInt(s.style.left)+F+"px",s.style.top=parseInt(s.style.top)+p+"px",c=k,l=M}function b(k){const{left:M,top:F}=k.getBoundingClientRect(),p=k.cloneNode(!0);return p.style.cssText=` position:absolute; left:${M}px; top:${document.documentElement.scrollTop?F+document.documentElement.scrollTop:F}px; z-index: 999999; border: 1px solid #e2e3e5; pointer-events: none; background-color: #edf5ff; border-radius: 10px; margin: 4px 2px; display: flex; align-items: center; float: none; text-align: initial; width:${getComputedStyle(k).width}; height:${getComputedStyle(k).height}; `,p.children[0].style.cssText="overflow: hidden;flex: 1 1 auto;width: 100%;",p.children[0].children[0].style.cssText=` margin: 10px 0px 10px 14px; overflow: hidden;text-overflow: ellipsis;white-space: nowrap; `,p.children[1].style.cssText="width: 30px;color: #f4625f;padding: 0 14px 0 0",p.children[2].style.cssText="padding: 0 14px 0 0;",document.body.appendChild(p),p}function d(k,M,F){if(k.stopPropagation(),r(),M){if(s=b(k.target),k.dataTransfer){const p=new Image;p.src="",k.dataTransfer.setDragImage(p,0,0)}c=k.pageX,l=k.pageY,setTimeout(()=>{f.value=F,C.value=!0,M.moving=!0})}}function y(k,M){if(k.preventDefault(),f.value!==M){const F=g.value[f.value],p=g.value;p.splice(f.value,1),p.splice(M,0,F),f.value=M,u(k.pageX,k.pageY)}}function O(k){k.preventDefault(),k.dataTransfer&&(k.dataTransfer.dropEffect="move"),u(k.pageX,k.pageY)}function B(k,M){M&&(M.moving=!1,s&&(document.body.removeChild(s),s=null)),g.value.forEach((F,p)=>{F.__fv_index__=p}),C.value=!1,a(),v.value=M.raw.__fv_index__,T.value=M.raw.__fv_index__,h.value=M.raw[m.value],t.emit("change",g.value),t.emit("activeChange",[M.raw])}return{dragstart:d,dragenter:y,dragover:O,dragend:B,isDragging:C}}function bt(e,t,o,i,m,g){const f=n.ref(e.idField),C=n.ref(e.disableField),T=n.ref(e.draggable);n.ref(e.itemClass);const h=n.ref(e.selection.multiSelect??!1),v=n.ref(e.selection.multiSelectMode),{isDragging:a}=i,{activeIndex:r,focusedItemId:s,hoverIndex:c}=m,{clearSelection:l,getSelectedItems:u,toggleSelectItem:b,currentSelectedDataId:d}=g,y=n.ref(u()),O=w=>y.value.length===0?!1:y.value.some(V=>{let N="";return V.data?N=V.data[f.value]:N=V[f.value],N===w});function B(){y.value=u()}function k(w,V){return w.raw[f.value]!=null?w.raw[f.value]:""}function M(w,V){const N={"f-list-view-group-item":!0,"f-list-view-draggable-item":T.value,"f-un-click":!w.checked,"f-un-select":!!w.raw[C.value],"f-listview-active":h.value&&O(k(w))||!h.value&&w.raw[f.value]===d.value,"f-listview-hover":!a.value&&V===c.value,moving:!!w.moving};if(typeof e.itemClass=="string")return _.getCustomClass(N,e.itemClass);if(typeof e.itemClass=="function"){const x=e.itemClass(w);return _.getCustomClass(N,x)}return N}function F(w,V){const N=h.value&&O(k(w))||!h.value&&w.raw[f.value]===d.value,x={};if(N&&(x.backgroundColor="#dae9ff"),typeof e.itemStyle=="string")return _.getCustomStyle(x,e.itemStyle);if(typeof e.itemStyle=="function"){const j=e.itemStyle(w);return _.getCustomStyle(x,j)}return x}const p=n.computed(()=>!h.value);function I(w,V,N){w.checked=N,!w.raw[C.value]&&(p.value&&(s.value=w.raw[f.value]),b(w))}const R=n.computed(()=>h.value&&v.value==="OnCheckClearByClick"),S=n.computed(()=>!h.value||h.value&&(v.value==="OnCheckAndClick"||v.value==="OnClick"));function P(w,V,N){if(w.raw[C.value]){N==null||N.preventDefault(),N==null||N.stopPropagation();return}s.value=w.raw[f.value],r.value=V,R.value&&l(),S.value&&(b(w),B()),t.emit("clickItem",{data:y.value,index:V,dataItem:w.raw}),t.emit("activeChange",y.value)}return{getKey:k,selectedItems:y,listViewItemClass:M,listViewItemStyle:F,updateSelectedItems:B,onCheckItem:I,onClickItem:P}}const Se=n.defineComponent({name:"FListView",props:st,emits:["afterSearch","checkValuesChange","clickItem","selectItem","unSelectItem","selectionChange","removeItem","change","activeChange","pageIndexChanged","pageSizeChanged","changed"],setup(e,t){const o=n.ref(),i=n.ref(!0),m=n.ref(!1),g=n.ref([]),f=0,C=n.ref(e.columns),T=E.useFilter(e,t),h=E.useIdentify(e),v=E.useHierarchy(e),a=E.useGroupData(e,h),r=E.useDataView(e,new Map,T,v,h),s=E.useSelection(e,r,h,g,t),c=ut(e,o),l=E.usePagination(e,r),u=n.computed(()=>r.dataView.value.length),b=E.useRow(e,t,s,h),d=E.useEdit(e,t,h,b,g),y=E.useVisualDataBound(e),O=E.useVisualDataCell(e,{},y),B=E.useVisualDataRow(e,r,d,v,h,y,O),k=E.useVisualGroupRow(e,h,O,B),M=E.useVisualSummaryRow(e,h,O,B),F=E.useVisualData(e,C,r,u,f,B,k,M),{getVisualData:p}=F;g.value=p(0,u.value+f-1);const I=n.computed(()=>{const $={"f-list-view":!0,"f-list-view-multiple":e.multiSelect};return e.size!=="default"&&($[`${e.size}-item`]=!0),_.getCustomClass($,e.customClass)}),R=n.computed(()=>!!t.slots.footer||i.value);function S(){return e.header==="SearchBar"?be:e.header==="ContentHeader"?yt:be}const P=S(),{renderHeader:w}=P(e,t,c),V=ht(),N=vt(e,t,r,V),x=bt(e,t,g,N,V,s),{renderListArea:j}=gt(e,t,g,r,a,V,s,F,x,N);function L($){c.search($)}function A($){$&&(r.load($),g.value=p(0,u.value+f-1))}function q(){s.clearSelection(),V.clearActiveItem()}function oe(){return x.selectedItems.value}function re(){return x.selectedItems.value.map($=>$[h.idField.value])}function J($){s.selectedValues.value=$,x.updateSelectedItems()}function Q(){return s.currentSelectedDataId.value}function H($){b.activeRowById($)}function ie($){const G=h.idField.value,Ve=g.value.find(ae=>ae.raw[G]===$),Te=g.value.findIndex(ae=>ae.raw[G]===$);Ve&&Te>-1&&x.onClickItem(Ve,Te)}function $t($){l.updatePagination($)}function Dt($){return g.value.filter(G=>$.includes(G.raw[e.idField]))}t.expose({search:L,updateDataSource:A,clearSelection:q,getSelections:oe,updateSelectionByIds:J,getSelectionIds:re,activeRowById:H,getCurrentRowId:Q,clickRowItemById:ie,updatePagination:$t,getVisibleDataByIds:Dt});function Et($){e.multiSelect&&($.preventDefault(),$.stopPropagation())}n.watch(()=>e.selectionValues,($,G)=>{$!==G&&J($)});const Lt=E.useSidebar(e,s),{sidebarWidth:At,showSidebarCheckBox:yn}=Lt,Ht=E.useColumn(e,t),{applyColumnSorter:hn,columnContext:qt,updateColumnRenderContext:vn}=Ht,_t=E.useVirtualScroll(e,r,g,qt,F,u,f,At,d);return E.getPagination(e,t,r,_t,l,s),()=>n.createVNode("div",{class:I.value,onClick:Et},[w(),n.createVNode("div",{ref:o,class:"f-list-view-content",onMouseover:()=>{m.value=!0},onMouseleave:()=>{m.value=!1}},[j()]),R.value&&n.createVNode("div",{class:"f-list-view-footer"},[e.footerTemplate?e.footerTemplate():t.slots.footer&&t.slots.footer()])])}}),St={id:String,type:{type:String,default:"primary"},disabled:{type:Boolean,default:!1},size:{type:String,default:"middle"},icon:{type:String},customClass:{type:Object,default:{}}};function Ct(e,t){function o(i){i.stopPropagation(),e.disabled||t.emit("click",i)}return{onClickButton:o}}function Ft(e){const t=n.computed(()=>{const i={"f-icon":!0};if(e.icon){const m=e.icon.trim().split(" ");m&&m.length&&m.reduce((g,f)=>(g[f]=!0,g),i)}return i}),o=n.computed(()=>!!(e.icon&&e.icon.trim()));return{iconClass:t,shouldShowIcon:o}}const Ce=n.defineComponent({name:"FButton",props:St,emits:["click"],setup(e,t){const{onClickButton:o}=Ct(e,t),{iconClass:i,shouldShowIcon:m}=Ft(e),g=n.computed(()=>{const f={btn:!0,"btn-lg":e.size==="large","btn-md":e.size!=="large"&&e.size!=="small","btn-sm":e.size==="small","btn-icontext":m.value};return f[`btn-${e.type}`]=!0,e.customClass&&Object.keys(e.customClass).reduce((C,T)=>(C[T]=e.customClass[T],C),f),f});return()=>n.createVNode("button",{class:g.value,disabled:e.disabled,onClick:f=>o(f)},[m.value&&n.createVNode("i",{class:i.value},null),t.slots.default&&t.slots.default()])}}),wt=new Map([["appearance",ee.resolveAppearance]]),Vt={$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"},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:"sting",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}},required:["type"],ignore:["id","appearance","binding","visible"]};function Tt(e,t,o){return t}const ne={id:{type:String},data:{type:Array,default:[]},disabled:{default:!1,type:Boolean},dropDownIcon:{type:String,default:'<span class="f-icon f-icon-arrow-chevron-down"></span>'},editable:{default:!1,type:Boolean},enableClear:{default:!0,type:Boolean},enableSearch:{type:Boolean,default:!1},enableTitle:{default:!0,type:Boolean},fitEditor:{default:!1,type:Boolean},forcePlaceholder:{default:!1,type:Boolean},hidePanelOnClear:{default:!0,type:Boolean},idField:{default:"id",type:String},mapFields:{type:Object},maxHeight:{default:350,type:Number},maxLength:{type:Number},multiSelect:{type:Boolean,default:!1},modelValue:{},placeholder:{type:String,default:"请选择"},placement:{type:String,default:"auto"},readonly:{default:!1,type:Boolean},remote:{default:null,type:Object},remoteSearch:{default:!1,type:Boolean},separator:{default:",",type:String},tabIndex:{type:Number,default:-1},textField:{default:"name",type:String},titleField:{default:"name",type:String},valueField:{default:"id",type:String},viewType:{default:"tag",type:String},change:{type:Function,default:()=>{}},focusOnCreated:{type:Boolean,default:!1},selectOnCreated:{type:Boolean,default:!1},autoHeight:{type:Boolean,default:!0},beforeOpen:{type:Function,default:null},searchOption:{type:[Boolean,Function],default:!1},enableHighlightSearch:{type:Boolean,default:!0},minPanelWidth:{type:Number,default:160},popupOnClick:{type:Boolean,default:!0}},kt=Object.assign({},ne,{readonly:{}}),Fe=ee.createPropsResolver(ne,Vt,wt,Tt),Nt={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}},Mt=n.defineComponent({name:"FComboListContainer",props:Nt,emits:["selectionChange"],setup(e,t){const o=n.ref(),i=n.ref(e.dataSource),m=n.ref([]),g=n.ref(e.separator),f=n.ref(e.width),C=n.ref(e.maxHeight),T=n.ref(String(e.selectedValues).split(g.value)),h=n.computed(()=>e.multiSelect),v=n.computed(()=>({enableSelectRow:!0,multiSelect:e.multiSelect,multiSelectMode:"OnCheckAndClick",showCheckbox:h.value,showSelectAll:!1,showSelection:!0}));n.watch(e.dataSource,()=>{i.value=e.dataSource}),n.computed(()=>e.enableSearch?"SearchBar":"ContentHeader");const a=n.computed(()=>{const u={};return f.value!==void 0&&(u.width=`${f.value}px`),C.value!==void 0&&C.value>0&&(u.maxHeight=`${C.value}px`),u});function r(u){o.value.search(u)}function s(u){m.value=u.map(b=>Object.assign({},b)),T.value=u.map(b=>b[e.idField]),t.emit("selectionChange",m.value)}function c(u){if(e.enableHighlightSearch)return;let b=[];const{searchOption:d}=e;typeof d=="function"?b=i.value.filter(y=>d(u,y)):b=i.value.filter(y=>y[e.valueField].indexOf(u)>-1||y[e.textField].indexOf(u)>-1),o.value.updateDataSource(b)}n.watch([()=>e.selectedValues],([u])=>{e.multiSelect?T.value=u.split(g.value):T.value=[u]});function l(u){o.value.activeRowById(u)}return n.onMounted(()=>{var u,b;if(!e.multiSelect){const d=(u=T.value)==null?void 0:u[0];let y=d;if(!z.isUndefined(d)){const O=typeof d,B=typeof((b=i.value[0])==null?void 0:b[e.valueField||e.idField]);B==="number"&&O!==B&&(y=Number(d)),B==="boolean"&&O!==B&&(y=d==="true"?!0:d==="false"?!1:d),l(y)}}}),t.expose({search:r,activeRowById:l}),()=>n.createVNode("div",{class:"f-combo-list-container",style:a.value},[n.createVNode(Ne,{ref:o,size:"small",itemClass:"f-combo-list-item",itemContentClass:"text-truncate",header:"ContentHeader",headerClass:"f-combo-list-search-box",data:i.value,idField:e.idField,textField:e.textField,titleField:e.titleField,multiSelect:e.multiSelect,selection:v.value,enableHighlightSearch:e.enableHighlightSearch,selectionValues:T.value,onSelectionChange:s,onAfterSearch:c},null)])}});function Ot(e){const{t}=Z.useI18n(),o=n.ref(""),i=n.ref(e.modelValue),m=n.ref(e.data||[]),g=n.ref(e.editable);function f(r){const s=e.multiSelect?String(r).split(e.separator):[String(r)],c=s.map(b=>[b,!0]),l=new Map(c);return m.value.filter(b=>l.has(String(b[e.valueField]))).sort((b,d)=>{const y=s.indexOf(b[e.valueField]),O=s.indexOf(d[e.valueField]);return y-O})}function C(r){const s=f(r).map(c=>c[e.textField]).join(e.separator);o.value=g.value?s||r:s}function T(r){if(e.multiSelect){const s=r.split(e.separator).map(l=>[l,!0]),c=new Map(s);return m.value.filter(l=>c.has(l[e.textField]))}return m.value.filter(s=>""+s[e.textField]===r)}function h(r){const s={};return s[e.idField]=r,s[e.textField]=r,[s]}function v(r){let s=T(r);const c=s&&s.length>0;return g.value&&!c&&(s=h(r)),s}function a(){const{url:r,method:s="GET",headers:c={"Content-Type":"application/json;charset=utf-8;"},body:l=null}=e.remote,u=s.toLowerCase()==="get"?{method:s,headers:c}:{method:s,headers:c,body:l};let b=!1;fetch(new Request(r,u)).then(d=>{var O,B;if(d.status===200)return b=!!((B=(O=d.headers)==null?void 0:O.get("content-type"))!=null&&B.includes("application/json")),b?d.text():d.json();throw d.status===405?new Error(t("comboList.remoteError")):new Error(d.statusText)}).then(d=>{d.length&&(m.value=b?JSON.parse(d):d)}).catch(d=>{console.warn(d)})}return e.remote&&a(),n.watch(()=>e.data,()=>{m.value=e.data}),n.watch([m],([r])=>{if(e.modelValue!=null){const s=r.find(c=>c[e.valueField]===e.modelValue);s&&(o.value=s[e.textField])}}),n.watch(()=>e.modelValue,r=>{i.value=r,C(r)}),C(e.modelValue),{dataSource:m,displayText:o,editable:g,modelValue:i,getItemsByDisplayText:T,getItemsByValue:f,getSelectedItemsByDisplayText:v}}const U=n.defineComponent({name:"FComboList",props:ne,emits:["clear","update:modelValue","change","input"],setup(e,t){const{t:o}=Z.useI18n(),i=n.ref(),m=n.ref(),g=n.ref(e.disabled||e.readonly),f=n.ref(e.enableClear),C=n.ref(e.enableSearch),T=n.ref(e.readonly),{dataSource:h,displayText:v,editable:a,modelValue:r,getSelectedItemsByDisplayText:s,getItemsByDisplayText:c}=Ot(e),l=n.ref(e.dropDownIcon);l.value==='<span class="f-icon f-icon-arrow-chevron-down"></span>'&&(l.value='<span id="'+e.id+'-icon-dropdown" class="f-icon f-icon-arrow-chevron-down"></span>');const u=n.computed(()=>e.multiSelect),b=n.computed(()=>m.value?m.value.elementRef.getBoundingClientRect().width:0);function d(){!u.value&&m.value&&m.value.hidePopup()}function y(S){v.value=S.map(w=>w[e.textField]).join(e.separator);let P="";S.length===1?P=S[0][e.valueField]:P=S.map(w=>w[e.valueField]).join(e.separator),r.value!==P&&(r.value=P,t.emit("update:modelValue",r.value),t.emit("change",S,r.value))}function O(){const S=s(v.value);y(S)}function B(){T.value||v.value}function k(S){var P;r.value="",(P=i.value)==null||P.activeRowById(""),t.emit("update:modelValue",""),t.emit("change",[],""),t.emit("clear")}function M(S){var P,w;e.enableSearch?((P=i.value)==null||P.search(S),(w=i.value)==null||w.activeRowById(S)):(r.value=S,v.value=S,t.emit("update:modelValue",r.value),t.emit("change",[S],S))}function F(S){if(e.multiSelect){const P=c(S),V=P.map(N=>N[e.idField||e.valueField]).join(e.separator);r.value!==V&&(r.value=V,t.emit("update:modelValue",r.value),t.emit("change",P,r.value))}}function p(){return v.value}function I(S){const{value:P}=S.target;M(P),t.emit("input",P)}function R(){m.value.hidePopup()}return t.expose({getDisplayText:p,hidePopup:R}),n.watch([()=>e.disabled,()=>e.editable,()=>e.enableClear,()=>e.enableSearch,()=>e.readonly],([S,P,w,V,N])=>{g.value=S,a.value=P,f.value=w,C.value=V,T.value=N}),()=>n.createVNode(ke,{ref:m,id:e.id,disable:g.value,readonly:T.value,forcePlaceholder:e.forcePlaceholder,editable:a.value,buttonContent:l.value,placeholder:e.placeholder==="请选择"?o("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:v.value,"onUpdate:modelValue":S=>v.value=S,focusOnCreated:e.focusOnCreated,selectOnCreated:e.selectOnCreated,onClear:k,onClick:B,onChange:F,onBlur:O,onInput:I,beforeOpen:e.beforeOpen,placement:e.placement,popupMinWidth:e.minPanelWidth,popupClass:"f-combo-list-wrapper",popupOnClick:e.popupOnClick,limitContentBySpace:!0},{default:()=>[n.createVNode(Mt,{ref:i,idField:e.idField,valueField:e.valueField,textField:e.textField,titleField:e.titleField,dataSource:h.value,selectedValues:r.value,separator:e.separator,multiSelect:e.multiSelect,enableSearch:C.value,maxHeight:e.maxHeight,enableHighlightSearch:e.enableHighlightSearch,width:e.fitEditor?b.value:void 0,onSelectionChange:S=>{y(S),d()}},null)]})}}),we={convertFrom:(e,t)=>(e.editor.remote||{})[t],convertTo:(e,t,o)=>{e.editor.remote=e.editor.remote||{},e.editor.remote[t]=o}};class Pt extends Pe.InputBaseProperty{constructor(t,o){super(t,o)}getCommonEditorProperties(t){var o,i,m,g;return{separator:{visible:!!((o=t.editor)!=null&&o.multiSelect)&&((i=t.editor)==null?void 0:i.viewType)==="text",description:"下拉列表启用多选且数据展示类型为文本时的分隔符",title:"分隔符",type:"string"},viewType:{visible:!!((m=t.editor)!=null&&m.multiSelect),description:"数据展示类型,有标签和文本两种方式",title:"数据展示类型",type:"enum",editor:{data:[{id:"tag",name:"标签"},{id:"text",name:"文本"}]},refreshPanelAfterChanged:!0},editable:{description:"",title:"允许编辑",type:"boolean",refreshPanelAfterChanged:!0},enableHighlightSearch:{visible:!!((g=t.editor)!=null&&g.editable),description:"编辑状态下启用高亮搜索",title:"启用高亮搜索",type:"boolean"}}}getEditorProperties(t){var g,f;const o=this;let i="";if(((g=t==null?void 0:t.binding)==null?void 0:g.type)==="Form"){const C=this.schemaService.getFieldByIDAndVMID(t.binding.field,this.viewModelId);(f=C==null?void 0:C.schemaField)!=null&&f.type&&(i=C.schemaField.type.$type)}return o.getComponentConfig(t,{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},data:{description:"",title:"数据",type:"array",visible:!t.editor.dataSourceType||t.editor.dataSourceType==="static",...o.getItemCollectionEditor(t,t.editor.valueField,t.editor.textField),refreshPanelAfterChanged:!0},url:{visible:t.editor.dataSourceType==="dynamic",$converter:we,description:"",title:"服务端API",type:"string"},body:{visible:t.editor.dataSourceType==="dynamic",$converter:we,description:"",title:"服务端API参数",type:"string"},textField:{description:"",title:"数据源显示字段",type:"string",readonly:t.editor.dataSourceType!=="dynamic"},valueField:{description:"",title:"数据源值字段",type:"string",readonly:t.editor.dataSourceType!=="dynamic"},multiSelect:{description:"",title:"启用多选",visible:!i||i==="StringType",type:"boolean",refreshPanelAfterChanged:!0},maxLength:{description:"",title:"最大输入长度",type:"number",editor:{nullable:!0,min:0,useThousands:!1}},...this.getCommonEditorProperties(t)},(C,T)=>{if(!C||!T.editor)return;const h=this;switch(C.propertyID){case"dataSourceType":{C.propertyValue==="static"?(T.editor.valueField="value",T.editor.textField="name",T.editor.remote=null):C.propertyValue==="dynamic"&&(T.editor.remote={method:"GET"},T.editor.valueField="value",T.editor.textField="name");break}case"data":{!h.checkEnumDataReadonly(T)&&T.formatter&&(T.formatter.data=[...C.propertyValue]);break}}})}getGridFieldEdtiorProperties(t,o){var f,C,T,h;const i=this;let m="";if(((f=t==null?void 0:t.binding)==null?void 0:f.type)==="Form"){const v=this.sche