@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
1 lines • 244 kB
JavaScript
(function(Q,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("vue"),require("lodash-es"),require("../common/index.umd.js"),require("../dynamic-resolver/index.umd.js"),require("vue-i18n"),require("../button-edit/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"),require("../tree-view/index.umd.js"),require("../locale/index.umd.js"),require("../accordion/index.umd.js"),require("../avatar/index.umd.js"),require("../button-group/index.umd.js"),require("../calendar/index.umd.js"),require("../capsule/index.umd.js"),require("../../designer/checkbox/index.umd.js"),require("../../designer/checkbox-group/index.umd.js"),require("../combo-list/index.umd.js"),require("../combo-tree/index.umd.js"),require("../component/index.umd.js"),require("../color-picker/index.umd.js"),require("../content-container/index.umd.js"),require("../date-picker/index.umd.js"),require("../../designer/data-grid/index.umd.js"),require("../dropdown/index.umd.js"),require("../dynamic-form/index.umd.js"),require("../events-editor/index.umd.js"),require("../filter-bar/index.umd.js"),require("../field-selector/index.umd.js"),require("../binding-selector/index.umd.js"),require("../image-cropper/index.umd.js"),require("../../designer/input-group/index.umd.js"),require("../layout/index.umd.js"),require("../list-nav/index.umd.js"),require("../../designer/list-view/index.umd.js"),require("../lookup/index.umd.js"),require("../mapping-editor/index.umd.js"),require("../nav/index.umd.js"),require("../number-range/index.umd.js"),require("../number-spinner/index.umd.js"),require("../order/index.umd.js"),require("../page-header/index.umd.js"),require("../page-footer/index.umd.js"),require("../pagination/index.umd.js"),require("../progress/index.umd.js"),require("../query-solution/index.umd.js"),require("../../designer/radio-group/index.umd.js"),require("../rate/index.umd.js"),require("../response-toolbar/index.umd.js"),require("../response-layout/index.umd.js"),require("../response-layout-editor/index.umd.js"),require("../search-box/index.umd.js"),require("../section/index.umd.js"),require("../smoke-detector/index.umd.js"),require("../splitter/index.umd.js"),require("../step/index.umd.js"),require("../switch/index.umd.js"),require("../tabs/index.umd.js"),require("../tags/index.umd.js"),require("../text/index.umd.js"),require("../time-picker/index.umd.js"),require("../transfer/index.umd.js"),require("../uploader/index.umd.js"),require("../verify-detail/index.umd.js"),require("../video/index.umd.js"),require("../textarea/index.umd.js"),require("../schema-selector/index.umd.js"),require("../../designer/tree-grid/index.umd.js"),require("../event-parameter/index.umd.js"),require("../filter-condition-editor/index.umd.js"),require("../fieldset/index.umd.js"),require("../sort-condition-editor/index.umd.js"),require("../menu-lookup/index.umd.js"),require("../../designer/drawer/index.umd.js"),require("../json-editor/index.umd.js"),require("../property-editor/index.umd.js"),require("../expression-editor/index.umd.js"),require("../code-editor/index.umd.js"),require("../html-template/index.umd.js"),require("../collection-property-editor/index.umd.js"),require("../modal/index.umd.js"),require("../external-container/index.umd.js"),require("../language-textbox/index.umd.js"),require("@vueuse/core"),require("../data-view/index.umd.js"),require("../notify/index.umd.js"),require("../popover/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es","../common/index.umd.js","../dynamic-resolver/index.umd.js","vue-i18n","../button-edit/index.umd.js","../list-view/index.umd.js","../../designer/button-edit/index.umd.js","../designer-canvas/index.umd.js","../property-panel/index.umd.js","../tree-view/index.umd.js","../locale/index.umd.js","../accordion/index.umd.js","../avatar/index.umd.js","../button-group/index.umd.js","../calendar/index.umd.js","../capsule/index.umd.js","../../designer/checkbox/index.umd.js","../../designer/checkbox-group/index.umd.js","../combo-list/index.umd.js","../combo-tree/index.umd.js","../component/index.umd.js","../color-picker/index.umd.js","../content-container/index.umd.js","../date-picker/index.umd.js","../../designer/data-grid/index.umd.js","../dropdown/index.umd.js","../dynamic-form/index.umd.js","../events-editor/index.umd.js","../filter-bar/index.umd.js","../field-selector/index.umd.js","../binding-selector/index.umd.js","../image-cropper/index.umd.js","../../designer/input-group/index.umd.js","../layout/index.umd.js","../list-nav/index.umd.js","../../designer/list-view/index.umd.js","../lookup/index.umd.js","../mapping-editor/index.umd.js","../nav/index.umd.js","../number-range/index.umd.js","../number-spinner/index.umd.js","../order/index.umd.js","../page-header/index.umd.js","../page-footer/index.umd.js","../pagination/index.umd.js","../progress/index.umd.js","../query-solution/index.umd.js","../../designer/radio-group/index.umd.js","../rate/index.umd.js","../response-toolbar/index.umd.js","../response-layout/index.umd.js","../response-layout-editor/index.umd.js","../search-box/index.umd.js","../section/index.umd.js","../smoke-detector/index.umd.js","../splitter/index.umd.js","../step/index.umd.js","../switch/index.umd.js","../tabs/index.umd.js","../tags/index.umd.js","../text/index.umd.js","../time-picker/index.umd.js","../transfer/index.umd.js","../uploader/index.umd.js","../verify-detail/index.umd.js","../video/index.umd.js","../textarea/index.umd.js","../schema-selector/index.umd.js","../../designer/tree-grid/index.umd.js","../event-parameter/index.umd.js","../filter-condition-editor/index.umd.js","../fieldset/index.umd.js","../sort-condition-editor/index.umd.js","../menu-lookup/index.umd.js","../../designer/drawer/index.umd.js","../json-editor/index.umd.js","../property-editor/index.umd.js","../expression-editor/index.umd.js","../code-editor/index.umd.js","../html-template/index.umd.js","../collection-property-editor/index.umd.js","../modal/index.umd.js","../external-container/index.umd.js","../language-textbox/index.umd.js","@vueuse/core","../data-view/index.umd.js","../notify/index.umd.js","../popover/index.umd.js"],n):(Q=typeof globalThis<"u"?globalThis:Q||self,n(Q["expression-editor"]={},Q.Vue,Q.LodashES,Q.common,Q.dynamicResolver,Q.vueI18n,Q.FButtonEdit$1,Q.FListView,Q.FButtonEdit$2,Q.designerCanvas,Q.propertyPanel,Q.FTreeview,Q.locale,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,Q.FTags,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,Q.VueUseCore,Q.dataView,null,Q.FPopover))})(this,function(Q,n,oe,be,Qe,nt,St,Hn,An,qn,Wn,Gn,mt,ai,ri,ii,li,si,ci,ui,di,fi,pi,mi,yi,gi,hi,vi,bi,Ci,xi,wi,ki,Fi,Si,Ti,Ni,ji,Mi,Oi,Bi,Di,Ei,Vi,Pi,$i,Ii,Ri,Li,zi,Hi,Ai,qi,Wi,Gi,Ui,_i,Yi,Xi,Ji,Qi,Un,Zi,Ki,el,tl,nl,ol,al,rl,il,ll,sl,cl,ul,dl,fl,pl,ml,yl,gl,hl,vl,bl,Cl,xl,_n,Y,wl,Yn){"use strict";var ni=Object.defineProperty;var oi=(Q,n,oe)=>n in Q?ni(Q,n,{enumerable:!0,configurable:!0,writable:!0,value:oe}):Q[n]=oe;var ve=(Q,n,oe)=>oi(Q,typeof n!="symbol"?n+"":n,oe);const Jt={modelValue:{type:String,default:""},singleExpand:{type:Boolean,default:!0},entities:{type:Array,default:[]},variables:{type:Array,default:[]},disabledFunctions:{type:Object,default:null},esprimaPath:{type:String,default:"assets/esprima-config.json"},showMessage:{type:Boolean,default:!1},validateMessage:{type:String,default:""},messageType:{type:String,default:"info"},showMessageType:{type:Boolean,default:!1},showDataPanel:{type:Boolean,default:!0},isServerSide:{type:Boolean,default:!1}};function Qt(e,t){let o;function a(f){const{properties:d,title:y,ignore:h}=f,b=h&&Array.isArray(h),v=Object.keys(d).reduce((x,w)=>((!b||!h.find(O=>O===w))&&(x[w]=d[w].type==="object"&&d[w].properties?a(d[w]):oe.cloneDeep(d[w].default)),x),{});if(y&&(!b||!h.find(x=>x==="id"))){const x=y.toLowerCase().replace(/-/g,"_");v.id=`${x}_${Math.random().toString().slice(2,6)}`}return v}function r(f){const{properties:d,title:y,required:h}=f;if(h&&Array.isArray(h)){const b=h.reduce((v,x)=>(v[x]=d[x].type==="object"&&d[x].properties?a(d[x]):oe.cloneDeep(d[x].default),v),{});if(y&&h.find(v=>v==="id")){const v=y.toLowerCase().replace(/-/g,"_");b.id=`${v}_${Math.random().toString().slice(2,6)}`}return b}return{type:y}}function i(f,d={},y){const h=e[f];if(h){let b=r(h);const v=t[f];return b=v?v({getSchemaByType:i},b,d,y):b,o!=null&&o.appendIdentifyForNewControl&&o.appendIdentifyForNewControl(b),b}return null}function l(f,d){const y=a(d);return Object.keys(y).reduce((h,b)=>(Object.prototype.hasOwnProperty.call(f,b)&&(h[b]&&oe.isPlainObject(h[b])&&oe.isPlainObject(f[b]||!f[b])?Object.assign(h[b],f[b]||{}):h[b]=f[b]),h),y),y}function s(f,d){return Object.keys(f).filter(h=>f[h]!=null).reduce((h,b)=>{if(d.has(b)){const v=d.get(b);if(typeof v=="string")h[v]=f[b];else{const x=v(b,f[b],f);Object.assign(h,x)}}else h[b]=f[b];return h},{})}function u(f,d,y=new Map){const h=l(f,d);return s(h,y)}function c(f){var y;const d=f.type;if(d){const h=e[d];if(!h)return f;const b=l(f,h),v=((y=f.editor)==null?void 0:y.type)||"";if(v){const x=e[v],w=l(f.editor,x);b.editor=w}return b}return f}function g(f){o=f}return{getSchemaByType:i,resolveSchemaWithDefaultValue:c,resolveSchemaToProps:u,mappingSchemaToProps:s,setDesignerContext:g}}const Zt={},Kt={},{getSchemaByType:kl,resolveSchemaWithDefaultValue:Xn,resolveSchemaToProps:Jn,mappingSchemaToProps:Qn,setDesignerContext:Fl}=Qt(Zt,Kt);function Zn(e={}){function t(c,g,f,d){if(typeof f=="number")return d[c].length===f;if(typeof f=="object"){const y=Object.keys(f)[0],h=f[y];if(y==="not")return Number(d[c].length)!==Number(h);if(y==="moreThan")return Number(d[c].length)>=Number(h);if(y==="lessThan")return Number(d[c].length)<=Number(h)}return!1}function o(c,g,f,d){return d[c]&&d[c].propertyValue&&String(d[c].propertyValue.value)===String(f)}const a=new Map([["length",t],["getProperty",o]]);Object.keys(e).reduce((c,g)=>(c.set(g,e[g]),c),a);function r(c,g){const f=c;return typeof g=="number"?[{target:f,operator:"length",param:null,value:Number(g)}]:typeof g=="boolean"?[{target:f,operator:"getProperty",param:c,value:!!g}]:typeof g=="object"?Object.keys(g).map(d=>{if(d==="length")return{target:f,operator:"length",param:null,value:g[d]};const y=d,h=g[d];return{target:f,operator:"getProperty",param:y,value:h}}):[]}function i(c){return Object.keys(c).reduce((f,d)=>{const y=r(d,c[d]);return f.push(...y),f},[])}function l(c,g){if(a.has(c.operator)){const f=a.get(c.operator);return f&&f(c.target,c.param,c.value,g)||!1}return!1}function s(c,g){return i(c).reduce((y,h)=>y&&l(h,g),!0)}function u(c,g){const f=Object.keys(c),d=f.includes("allOf"),y=f.includes("anyOf"),h=d||y,x=(h?c[h?d?"allOf":"anyOf":"allOf"]:[c]).map(O=>s(O,g));return d?!x.includes(!1):x.includes(!0)}return{parseValueSchema:u}}const Kn={convertTo:(e,t,o,a)=>{e.appearance||(e.appearance={}),e.appearance[t]=o},convertFrom:(e,t,o)=>e.appearance?e.appearance[t]:e[t]},eo={convertFrom:(e,t,o)=>e.buttons&&e.buttons.length?`共 ${e.buttons.length} 项`:"无"},to={convertTo:(e,t,o,a)=>{e.editor&&(e.editor[t]=o)},convertFrom:(e,t,o)=>e.editor&&Object.prototype.hasOwnProperty.call(e.editor,t)?e.editor[t]:e[t]},P={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:"多语输入框"}},no={convertFrom:(e,t,o)=>{var r;const a=e.editor&&e.editor[t]?e.editor[t]:e[t];return((r=P[a])==null?void 0:r.name)||a}},oo={convertTo:(e,t,o,a)=>{e[t]=e[t]},convertFrom:(e,t,o)=>e.editor?o.getRealEditorType(e.editor.type):""},ao={convertTo:(e,t,o,a)=>{(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"}},ro={convertTo:(e,t,o,a)=>{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:""},io={convertTo:(e,t,o,a)=>{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""}},lo={convertTo:(e,t,o,a)=>{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:""},so={convertTo:(e,t,o,a)=>{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}}},co={convertFrom:(e,t)=>e.binding?e.binding.path:"",convertTo:(e,t,o)=>{if(o&&o.length>0){const a=o[0];e.binding||(e.binding={}),e.binding.type="Form",e.binding.path=a.bindingField,e.binding.field=a.id,e.binding.fullPath=a.path,e.path=a.bindingPath}}},uo={convertTo:(e,t,o,a)=>{e.pagination||(e.pagination={}),e.pagination[t]=o},convertFrom:(e,t,o)=>e.pagination?e.pagination[t]:e[t]},fo={convertTo:(e,t,o,a)=>{e.rowNumber||(e.rowNumber={}),e.rowNumber[t]=o},convertFrom:(e,t,o)=>e.rowNumber?e.rowNumber[t]:e[t]},po={convertTo:(e,t,o,a)=>{e.selection||(e.selection={}),e.selection[t]=o},convertFrom:(e,t,o)=>e.selection?e.selection[t]:e[t]},mo={convertFrom:(e,t,o)=>e[t]&&e[t].length?`共 ${e[t].length} 项`:""},yo={convertFrom:(e,t)=>e[t]||"",convertTo:(e,t,o)=>{e[t]=o}},go={convertTo:(e,t,o,a)=>{e.size||(e.size={}),e.size[t]=o},convertFrom:(e,t,o)=>e.size?e.size[t]:e[t]},ho={convertFrom:(e,t,o)=>{var a,r;return(a=e.formatter)!=null&&a.data&&t==="formatterEnumData"&&!e.formatterEnumData?(r=e.formatter)==null?void 0:r.data:e.formatterEnumData}},vo={convertTo:(e,t,o,a)=>{e.sort||(e.sort={}),e.sort[t]=o},convertFrom:(e,t,o)=>{var a,r;if(t==="mode")return((a=e.sort)==null?void 0:a.mode)||"client";if(t==="multiSort")return!!((r=e.sort)!=null&&r.multiSort)}},bo={convertTo:(e,t,o,a)=>{e.filter||(e.filter={}),e.filter[t]=o},convertFrom:(e,t,o)=>{var a;if(t==="mode")return((a=e.filter)==null?void 0:a.mode)||"client"}},Co={convertTo:(e,t,o,a)=>{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 en(e,t,o){const a=new Map([["/converter/appearance.converter",Kn],["/converter/buttons.converter",eo],["/converter/property-editor.converter",to],["/converter/items-count.converter",mo],["/converter/type.converter",no],["/converter/change-editor.converter",oo],["/converter/change-formatter.converter",ao],["/converter/column-command.converter",ro],["/converter/column-option.converter",io],["/converter/summary.converter",lo],["/converter/group.converter",so],["/converter/form-group-label.converter",yo],["/converter/field-selector.converter",co],["/converter/pagination.converter",uo],["/converter/row-number.converter",fo],["/converter/grid-selection.converter",po],["/converter/size.converter",go],["/converter/change-formatter-enum.converter",ho],["/converter/grid-sort.converter",vo],["/converter/grid-filter.converter",bo],["/converter/row-option.converter",Co]]),r=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}]]),i=Zn();function l(h,b){return()=>i.parseValueSchema(h,b)}function s(h,b,v){return h.includes("visible")&&b.visible!==void 0?typeof b.visible=="boolean"?()=>!!b.visible:b.visible===void 0?!0:l(b.visible,v):()=>!0}function u(h,b,v){return h.includes("readonly")&&b.readonly!==void 0?typeof b.readonly=="boolean"?()=>!!b.readonly:l(b.readonly,v):()=>!1}function c(h,b){const v=h.$converter||b;return typeof v=="string"&&v&&a.has(v)?a.get(v)||null:v||null}function g(h,b,v,x,w,O="",k=""){return Object.keys(h).map(m=>{const N=n.ref(1),j=m,M=h[m],D=Object.keys(M),F=M.title,S=M.type,C=r.get(S)||{type:"input-group",enableClear:!1},T=M.editor?Object.assign({},C,M.editor):Object.assign({},C),E=s(D,M,b),z=u(D,M,b);T.readonly=T.readonly===void 0?z():T.readonly;const J=M.type==="cascade"?g(M.properties,b,v,x,w,O,k):[],I=!0;let $=c(M,k);const G=n.computed({get(){if(N.value){if(["class","style"].find(se=>se===j)&&!$&&($=a.get("/converter/appearance.converter")||null),$&&$.convertFrom)return $.convertFrom(v,m,w,O);const ae=v[m];return Object.prototype.hasOwnProperty.call(M,"defaultValue")&&(ae===void 0||typeof ae=="string"&&ae==="")?M.type==="boolean"?M.defaultValue:M.defaultValue||"":ae}return null},set(ae){N.value+=1,$&&$.convertTo?($.convertTo(x,m,ae,w,O),$.convertTo(v,m,ae,w,O)):(x[m]=ae,v[m]=ae)}}),{refreshPanelAfterChanged:H,description:ee,isExpand:ye,parentPropertyID:ge}=M,_={propertyID:j,propertyName:F,propertyType:S,propertyValue:G,editor:T,visible:E,readonly:z,cascadeConfig:J,hideCascadeTitle:I,refreshPanelAfterChanged:H,description:ee,isExpand:ye,parentPropertyID:ge};return b[j]=_,_})}function f(h,b,v={}){const x={},w=e[h];return w&&w.categories?Object.keys(w.categories).map(k=>{const p=w.categories[k],m=p==null?void 0:p.title,N=g(p.properties||{},x,{},v,b);return{categoryId:k,categoryName:m,properties:N}}):[]}function d(h,b,v,x,w=""){const O=b.$ref.schema,k=b.$ref.converter,p=v[O],m=p.type,N=o(p),j={},M=e[m];if(M&&M.categories){const D=M.categories[h],F=D==null?void 0:D.title;k&&Object.keys(D.properties).forEach(T=>{D.properties[T].$converter=k});const S=(D==null?void 0:D.properties)||{},C=g(S,j,N,p,x,w);return{categoryId:h,categoryName:F,properties:C}}return{categoryId:h,categoryName:"",properties:[]}}function y(h,b,v,x,w){const O=h.type,k=o(h),p={};let m=w||e[O];if(m&&Object.keys(m).length===0&&v&&v.getPropConfig&&(m=v.getPropConfig(x)),m&&m.categories){const N=[];return Object.keys(m.categories).map(j=>{const M=m.categories[j];if(M.$ref){N.push(d(j,M,h,b,x));return}const D=M==null?void 0:M.title,F=M==null?void 0:M.tabId,S=M==null?void 0:M.tabName,C=M==null?void 0:M.hide,T=M==null?void 0:M.hideTitle,E=g(M.properties||{},p,k,h,b,x,M.$converter),{setPropertyRelates:z}=M,J=M==null?void 0:M.parentPropertyID;N.push({categoryId:j,categoryName:D,tabId:F,tabName:S,hide:C,properties:E,hideTitle:T,setPropertyRelates:z,parentPropertyID:J})}),N}return[]}return{getPropertyConfigBySchema:y,getPropertyConfigByType:f,propertyConverterMap:a}}const tn={},nn={};en(tn,nn,Xn);const on={},an={},{getSchemaByType:Sl,resolveSchemaWithDefaultValue:xo,resolveSchemaToProps:Tl,mappingSchemaToProps:Nl,setDesignerContext:jl}=Qt(on,an),rn={},ln={};en(rn,ln,xo);function ze(e,t,o=new Map,a=(l,s,u,c)=>s,r={},i=l=>l){return Zt[t.title]=t,Kt[t.title]=a,tn[t.title]=r,nn[t.title]=i,on[t.title]=t,an[t.title]=a,rn[t.title]=r,ln[t.title]=i,(l={},s=!0)=>{if(!s)return Qn(l,o);const u=Jn(l,t,o),c=Object.keys(e).reduce((g,f)=>(g[f]=e[f].default,g),{});return Object.assign(c,u)}}function Tt(e,t){return{customClass:t.class,customStyle:t.style}}const sn=new Map([["appearance",Tt]]);function cn(e,t,o){return t}const wo={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/layout.schema.json",title:"layout",description:"A Farris Container Component",type:"object",properties:{id:{description:"The unique identifier for layout component",type:"string"},type:{description:"The type string of layout component",type:"string",default:"layout"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},contents:{description:"",type:"array",default:[]},collapsable:{description:"",type:"boolean",default:!1},resizable:{description:"",type:"boolean",default:!0},visible:{description:"",type:"boolean",default:!0}},required:["id","type","contents"]},ko={title:"layout",description:"A Farris Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"类型",title:"类型",type:"string",readonly:!0}}},behavior:{description:"Basic Infomation",title:"行为",properties:{collapsable:{description:"",title:"可收折",type:"boolean"},resizable:{description:"",title:"可调整尺寸",type:"boolean"}}}}},Nt={customStyle:{type:String,defaut:""},customClass:{type:String,defaut:""}},un=ze(Nt,wo,sn,cn,ko);function dn(e){const t=n.ref(-1),o=n.ref(-1),a=n.ref(0),r=n.ref(0),i=n.ref(!1),l=n.ref(!1),s=n.computed(()=>({display:i.value?"block":"none",left:`${a.value}px`,cursor:"e-resize"})),u=n.computed(()=>({display:l.value?"block":"none",top:`${r.value}px`,cursor:"n-resize"})),c=n.computed(()=>{const v={display:l.value||i.value?"block":"none"};return r.value>0&&(v.cursor="n-resize"),v});function g(v,x,w,O){const k=e.value;if(k){const{left:p,right:m,width:N}=k.getBoundingClientRect();let j=v.clientX-p;O==="right"&&(j=m-v.clientX),j>x&&(j=x),j<w&&(j=w),O==="right"&&(j=N-j),a.value=j}}function f(v,x,w,O){const k=e.value;if(k){const{top:p,bottom:m,height:N}=k.getBoundingClientRect();let j=v.clientY-p;O==="bottom"&&(j=m-v.clientY),j>x&&(j=x),j<w&&(j=w),O==="bottom"&&(j=N-j),r.value=j}}function d(){const v=e.value;if(v){const{width:x,height:w}=v.getBoundingClientRect();return{width:x,height:w}}return null}function y(){const v=e.value;return v?Array.from(v.querySelectorAll("[data-position]")).reduce((x,w)=>{const O=w.getAttribute("data-position");return x=Object.assign(x,{[O]:w}),x},{}):null}function h(v,x){const w=d(),O=y();if(w&&O){const k=O==null?void 0:O.right,p=O==null?void 0:O.left;if(v==="left"&&p)return k?w.width-k.clientWidth-x:w.width-x;if(v==="right"&&k)return p?w.width-p.clientWidth-x:w.width-x}}function b(v,x){const w=d(),O=y();if(w&&O){const k=O==null?void 0:O.bottom,p=O==null?void 0:O.top;if(v==="top"&&p)return k?w.height-k.clientHeight-x:w.height-x;if(v==="bottom"&&k)return p?w.height-p.clientHeight-x:w.height-x}}return{horizontalResizeHandleStyle:s,verticalResizeHandleStyle:u,resizeOverlayStyle:c,showHorizontalResizeHandle:i,showVerticalResizeHandle:l,horizontalResizeBarPosition:t,verticalResizeBarPosition:o,verticalResizeHandleOffset:r,horizontalResizeHandleOffset:a,draggingHorizontalResizeHandle:g,draggingVerticalResizeHandle:f,getPanelMaxHeight:b,getPanelMaxWidth:h}}const Be=n.defineComponent({name:"FLayout",props:Nt,emits:[],setup(e,t){const o=n.ref(),a=dn(o),{horizontalResizeHandleStyle:r,verticalResizeHandleStyle:i,resizeOverlayStyle:l}=a;n.provide("layout",{useResizeHandleComposition:a});const s=n.computed(()=>{const c={"f-layout":!0};return be.getCustomClass(c,e==null?void 0:e.customClass)}),u=n.computed(()=>{const c={};return be.getCustomStyle(c,e==null?void 0:e.customStyle)});return()=>n.createVNode("div",{class:s.value,style:u.value,ref:o},[t.slots.default&&t.slots.default(),n.createVNode("div",{class:"f-layout-resize-overlay",style:l.value},null),n.createVNode("div",{class:"f-layout-horizontal-resize-proxy",style:r.value},null),n.createVNode("div",{class:"f-layout-vertical-resize-proxy",style:i.value},null)])}}),Fo={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/layout-pane.schema.json",title:"layout-pane",description:"A Farris Container Component",type:"object",properties:{id:{description:"The unique identifier for a layout pane",type:"string"},type:{description:"The type string of layout paney",type:"string",default:"layout-pane"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},collapsable:{description:"",type:"boolean",default:!1},contents:{description:"",type:"array",default:[]},height:{description:"",type:"number"},position:{description:"",type:"string",default:"left",enum:["left","center","right","top","bottom"]},resizeable:{description:"",type:"boolean",default:!0},width:{description:"",type:"number"},visible:{description:"",type:"number",default:!0}},required:["id","type","contents"]},So={title:"layout-pane",description:"A Farris Container Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"enum"},width:{description:"",type:"number",title:"宽度"},height:{description:"",type:"number",title:"高度"}}},appearance:{title:"样式",description:"Appearance",properties:{class:{title:"class样式",type:"string",description:""},style:{title:"style",type:"string",description:""}}},behavior:{description:"",title:"行为",properties:{collapsable:{description:"",type:"boolean",title:"允许收折"},position:{description:"",type:"enum",title:"位置",editor:{type:"combo-list",data:[{id:"left",name:"左侧"},{id:"center",name:"居中"},{id:"right",name:"右侧"},{id:"top",name:"顶部"},{id:"bottom",name:"底部"}]}},resizeable:{description:"",type:"boolean",title:"允许调整尺寸"},visible:{description:"运行时组件是否可见",type:"boolean",title:"是否可见"}}}}},jt={customClass:{type:String,defaut:""},customStyle:{type:String,defaut:""},width:{type:Number,default:-1},height:{type:Number,default:-1},position:{type:String,default:"left"},visible:{type:Boolean,default:!0},resizable:{type:Boolean,default:!0},collapsable:{type:Boolean,default:!1},minWidth:{type:Number,default:100},minHeight:{type:Number,default:100}},fn=ze(jt,Fo,sn,cn,So);function pn(e,t,o,a,r){const{horizontalResizeBarPosition:i,horizontalResizeHandleOffset:l,showHorizontalResizeHandle:s,showVerticalResizeHandle:u,verticalResizeBarPosition:c,verticalResizeHandleOffset:g,draggingHorizontalResizeHandle:f,draggingVerticalResizeHandle:d,getPanelMaxHeight:y,getPanelMaxWidth:h}=r;let b="",v,x,w;function O(m){if((b==="left"||b==="right")&&x){const{left:N}=x.getBoundingClientRect(),{width:j}=v.getBoundingClientRect(),M=m.clientX-N;let D=b==="left"?(j||0)+(M-i.value):(j||0)-(M-i.value);D=o.value>0?Math.max(o.value,D):D;const F=h(b,o.value);F!=null&&(D=F>D?D:F),e.value=D}if((b==="top"||b==="bottom")&&x){const{top:N}=x.getBoundingClientRect(),{height:j}=v.getBoundingClientRect(),M=m.clientY-N;let D=b==="top"?(j||0)+(M-c.value):(j||0)-(M-c.value);D=a.value>0?Math.max(a.value,D):D;const F=y(b,a.value);F!=null&&(D=F>D?D:F),t.value=D}l.value=0,g.value=0,i.value=-1,c.value=-1,s.value=!1,u.value=!1,document.removeEventListener("mousemove",w),document.removeEventListener("mouseup",O),document.body.style.userSelect="",b="",v=null,x=null}function k(m,N,j){if(b=N,v=j,s.value=!0,x=m.composedPath().find(D=>(D.className||"").split(" ")[0]==="f-layout"),x){const{left:D}=x.getBoundingClientRect(),F=m.clientX-D;l.value=F,i.value=F;const S=h(b,o.value)||0;w=C=>f(C,S,o.value,b),document.addEventListener("mousemove",w),document.addEventListener("mouseup",O),document.body.style.userSelect="none"}}function p(m,N,j){if(b=N,v=j,u.value=!0,x=m.composedPath().find(D=>(D.className||"").split(" ")[0]==="f-layout"),x){const{top:D}=x.getBoundingClientRect();g.value=m.clientY-D,c.value=m.clientY-D;const F=y(b,a.value)||0;w=S=>d(S,F,a.value,b),document.addEventListener("mousemove",w),document.addEventListener("mouseup",O),document.body.style.userSelect="none"}}return{onClickHorizontalResizeBar:k,onClickVerticalResizeBar:p}}const Me=n.defineComponent({name:"FLayoutPane",props:jt,emits:[],setup(e,t){const o=n.ref(e.minHeight<=0?100:e.minHeight),a=n.ref(e.minWidth<=0?100:e.minWidth),r=n.ref(e.width<=0?100:e.width),i=n.ref(e.height<=0?100:e.height),l=n.ref(Math.max(o.value,i.value)),s=n.ref(Math.max(a.value,r.value)),u=n.ref(),c=n.ref(e.position),g=n.ref(e.resizable);n.watch(()=>e.resizable,p=>{g.value=p});const f=n.inject("layout"),{useResizeHandleComposition:d}=f,y=pn(s,l,a,o,d),{onClickHorizontalResizeBar:h,onClickVerticalResizeBar:b}=y,v=n.computed(()=>({"f-layout-resize-bar":!0,"f-layout-resize-bar-e":c.value==="left","f-layout-resize-bar-n":c.value==="bottom","f-layout-resize-bar-s":c.value==="top","f-layout-resize-bar-w":c.value==="right"})),x=n.computed(()=>c.value!=="center"&&g.value);function w(p,m){(m==="left"||m==="right")&&h(p,m,u.value),(m==="top"||m==="bottom")&&b(p,m,u.value)}const O=n.computed(()=>{const p={"f-layout-pane":!0,"f-page-content-nav":c.value==="left"||c.value==="right","f-page-content-main":c.value==="center"};return e.customClass&&String(e.customClass).split(" ").reduce((m,N)=>(m[N]=!0,m),p),p}),k=n.computed(()=>{const p={};return(s.value&&c.value==="left"||c.value==="right")&&(p.width=`${s.value}px`),(l.value&&c.value==="bottom"||c.value==="top")&&(p.height=`${l.value}px`),e.visible||(p.display="none"),p});return()=>n.createVNode("div",{ref:u,class:O.value,style:k.value,"data-position":c.value},[t.slots.default&&t.slots.default(),x.value&&n.createVNode("span",{class:v.value,onMousedown:p=>w(p,c.value)},null)])}});function To(e,t){function o(){return!1}return{canAccepts:o}}function Mt(e,t,o){var F;const a=o&&o.getStyles&&o.getStyles()||"",r=o&&o.getDesignerClass&&o.getDesignerClass()||"",i=n.ref();let l;function s(){return(t==null?void 0:t.schema.componentType)==="frame"?!1:o&&o.checkCanMoveComponent?o.checkCanMoveComponent():!0}function u(){return!1}function c(){return(t==null?void 0:t.schema.componentType)==="frame"?!1:o&&o.checkCanDeleteComponent?o.checkCanDeleteComponent():!0}function g(){return(t==null?void 0:t.schema.componentType)==="frame"?!0:o&&o.hideNestedPaddingInDesginerView?o.hideNestedPaddingInDesginerView():!1}function f(S){if(!S||!S.value)return null;if(S.value.schema&&S.value.schema.type==="component")return S.value;const C=n.ref(S==null?void 0:S.value.parent),T=f(C);return T||null}function d(S=t){var z;if(o!=null&&o.getDraggableDesignItemElement)return o.getDraggableDesignItemElement(S);const{componentInstance:C,designerItemElementRef:T}=S;if(!C||!C.value)return null;const{getCustomButtons:E}=C.value;return C.value.canMove||E&&((z=E())!=null&&z.length)?T:d(S.parent)}function y(S){return!!o&&o.canAccepts(S)}function h(){return(t==null?void 0:t.schema.label)||(t==null?void 0:t.schema.title)||(t==null?void 0:t.schema.name)}function b(){}function v(S,C){var T;!S||!C||(o!=null&&o.onAcceptMovedChildElement&&o.onAcceptMovedChildElement(S,C),(T=t==null?void 0:t.setupContext)==null||T.emit("dragEnd"))}function x(S,C){const{componentType:T}=S;let E=Qe.getSchemaByTypeForDesigner(T,S,C);o&&o.onResolveNewComponentSchema&&(E=o.onResolveNewComponentSchema(S,E));const z=T.toLowerCase().replace(/-/g,"_");return E&&!E.id&&E.type===T&&(E.id=`${z}_${Math.random().toString().slice(2,6)}`),E}function w(S){S&&o!=null&&o.onChildElementMovedOut&&o.onChildElementMovedOut(S)}function O(...S){if(o&&o.getPropsConfig)return o.getPropsConfig(...S)}function k(S){if(!S)return;const C=t==null?void 0:t.schema,{formSchemaUtils:T}=S;if(C&&T.getExpressions().length){const E=T.getExpressions().findIndex(z=>z.target===C.id);E>-1&&T.getExpressions().splice(E,1)}}function p(S){if(!S||!(t!=null&&t.schema))return;const C=t.schema,{formSchemaUtils:T}=S;T.removeCommunicationInComponent(C)}function m(S){o&&o.onRemoveComponent&&o.onRemoveComponent(),k(S),p(S),t!=null&&t.schema.contents&&t.schema.contents.map(C=>{let T=C.id;C.type==="component-ref"&&(T=C.component);const E=e.value.querySelectorAll(`#${T}-design-item`);E!=null&&E.length&&Array.from(E).map(z=>{var J;(J=z==null?void 0:z.componentInstance)!=null&&J.value.onRemoveComponent&&z.componentInstance.value.onRemoveComponent(S)})})}function N(){if(o&&o.getCustomButtons)return o.getCustomButtons()}function j(S){var T,E;if(!((T=t==null?void 0:t.schema)!=null&&T.id))return;if(!l&&S&&(l=S.formSchemaUtils),o!=null&&o.setComponentBasicInfoMap){o.setComponentBasicInfoMap();return}let C="";if(o!=null&&o.getComponentTitle)C=o.getComponentTitle();else{const{text:z,title:J,label:I,mainTitle:$,name:G,type:H}=t.schema;C=z||J||I||$||G||((E=P[H])==null?void 0:E.name)}C&&l.getControlBasicInfoMap().set(t.schema.id,{componentTitle:C,parentPathName:C})}function M(S){var z;const{changeObject:C}=S,{propertyID:T,propertyValue:E}=C;if(["text","title","label","name","mainTitle"].includes((z=S==null?void 0:S.changeObject)==null?void 0:z.propertyID)&&T&&E&&(j(),l)){const J=l.getControlBasicInfoMap(),I=J.keys().toArray().filter($=>{var G,H;return((G=J.get($))==null?void 0:G.reliedComponentId)===((H=t==null?void 0:t.schema)==null?void 0:H.id)});I!=null&&I.length&&I.forEach($=>{const G=J.get($).parentPathName.split(" > ");G[0]=E,J.get($).parentPathName=G.join(" > ")})}}function D(S){if(M(S),o&&o.onPropertyChanged)return o.onPropertyChanged(S)}return i.value={canMove:s(),canSelectParent:u(),canDelete:c(),canNested:!g(),contents:t==null?void 0:t.schema.contents,elementRef:e,parent:(F=t==null?void 0:t.parent)==null?void 0:F.componentInstance,schema:t==null?void 0:t.schema,styles:a,designerClass:r,canAccepts:y,getBelongedComponentInstance:f,getDraggableDesignItemElement:d,getDraggingDisplayText:h,getPropConfig:O,getDragScopeElement:b,onAcceptMovedChildElement:v,onChildElementMovedOut:w,addNewChildComponentSchema:x,triggerBelongedComponentToMoveWhenMoved:!!o&&o.triggerBelongedComponentToMoveWhenMoved||n.ref(!1),triggerBelongedComponentToDeleteWhenDeleted:!!o&&o.triggerBelongedComponentToDeleteWhenDeleted||n.ref(!1),onRemoveComponent:m,getCustomButtons:N,onPropertyChanged:D,setComponentBasicInfoMap:j,updateContextSchema:t==null?void 0:t.updateContextSchema},i}const No=n.defineComponent({name:"FLayoutDesign",props:Nt,emits:[],setup(e,t){var g;const o=n.ref(),a=n.inject("design-item-context"),r=To(a.schema,(g=a.parent)==null?void 0:g.schema),i=Mt(o,a,r);i.value.canNested=!1;const l=dn(o),{horizontalResizeHandleStyle:s,verticalResizeHandleStyle:u,resizeOverlayStyle:c}=l;return n.provide("layout",{useResizeHandleComposition:l}),n.onMounted(()=>{o.value.componentInstance=i}),t.expose(i.value),()=>n.createVNode("div",{class:"f-layout f-page-content",ref:o},[t.slots.default&&t.slots.default(),n.createVNode("div",{class:"f-layout-resize-overlay",style:c.value},null),n.createVNode("div",{class:"f-layout-horizontal-resize-proxy",style:s.value},null),n.createVNode("div",{class:"f-layout-vertical-resize-proxy",style:u.value},null)])}});function jo(){function e(t,o){var l;if(!t)return!1;const a=((l=t.targetContainer)==null?void 0:l.componentInstance)&&t.targetContainer.componentInstance.value;if(!a)return!1;const r=a.schema.type,i=o==null?void 0:o.formSchemaUtils.getComponentById(a.belongedComponentId);return!((t.componentCategory==="input"||t.componentType==="form-group")&&![P["response-layout-item"].type,P["response-form"].type,P.fieldset.type].includes(r)||(t.componentType===P.tabs.type||t.componentType===P.section.type)&&((i==null?void 0:i.componentType)!=="frame"||![P["content-container"].type,P["splitter-pane"].type,P["response-layout-item"].type].includes(r))||[P["query-solution"].type,P["filter-bar"].type].includes(t.componentType)||t.componentType===P.fieldset.type&&r!==P["response-form"].type)}return{basalDragulaRuleForContainer:e}}function Mo(e,t){const o=e.schema;function a(i){return!!jo().basalDragulaRuleForContainer(i)}function r(){const i=["f-layout-pane"];return(o.position==="left"||o.position==="right")&&i.push("f-page-content-nav"),o.position==="center"&&i.push("f-page-content-main"),i.join(" ")}return{canAccepts:a,getDesignerClass:r}}const Oo=n.defineComponent({name:"FLayoutPaneDesign",props:jt,emits:[],setup(e,t){const o=n.ref(),a=n.ref();n.inject("designer-host-service");const r=n.inject("design-item-context"),i=Mo(r),l=Mt(a,r,i);l.value.canNested=!1,l.value.canMove=!1,l.value.canDelete=!1,n.onMounted(()=>{a.value.componentInstance=l}),t.expose(l.value);const s=n.ref(Math.max(e.minHeight,e.height)),u=n.ref(Math.max(e.minWidth,e.width)),c=n.ref(e.minHeight),g=n.ref(e.minWidth),f=n.ref(e.position),d=n.inject("layout"),{useResizeHandleComposition:y}=d,h=pn(u,s,g,c,y),{onClickHorizontalResizeBar:b,onClickVerticalResizeBar:v}=h,x=n.computed(()=>({"f-layout-resize-bar":!0,"f-layout-resize-bar-e":f.value==="left","f-layout-resize-bar-n":f.value==="bottom","f-layout-resize-bar-s":f.value==="top","f-layout-resize-bar-w":f.value==="right"}));function w(p,m){(m==="left"||m==="right")&&b(p,m,o.value),(m==="top"||m==="bottom")&&v(p,m,o.value)}const O=n.computed(()=>{const p={"f-layout-pane":!0,"f-page-content-nav":f.value==="left"||f.value==="right","f-page-content-main":f.value==="center"};return e.customClass&&String(e.customClass).split(" ").reduce((m,N)=>(m[N]=!0,m),p),p}),k=n.computed(()=>{const p={flex:"1"};return(u.value&&f.value==="left"||f.value==="right")&&(p.width=`${u.value}px`),(s.value&&f.value==="bottom"||f.value==="top")&&(p.height=`${s.value}px`),p});return()=>n.createVNode("div",{ref:o,class:O.value,style:k.value},[n.createVNode("div",{ref:a,class:"drag-container","data-dragref":`${r.schema.id}-container`},[t.slots.default&&t.slots.default()]),n.createVNode("span",{class:x.value,onMousedown:p=>w(p,f.value)},null)])}});Be.install=e=>{e.component(Be.name,Be),e.component(Me.name,Me)},Be.register=(e,t,o,a)=>{e.layout=Be,t.layout=un,e["layout-pane"]=Me,t["layout-pane"]=fn},Be.registerDesigner=(e,t,o)=>{e.layout=No,t.layout=un,e["layout-pane"]=Oo,t["layout-pane"]=fn};const Bo=new Map([["appearance",Qe.resolveAppearance]]),Do={$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 Eo(e,t,o){return t}const Ot={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}},Vo=Object.assign({},Ot,{readonly:{}}),mn=Qe.createPropsResolver(Ot,Do,Bo,Eo),Po={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}},$o=n.defineComponent({name:"FComboListContainer",props:Po,emits:["selectionChange"],setup(e,t){const o=n.ref(),a=n.ref(e.dataSource),r=n.ref([]),i=n.ref(e.separator),l=n.ref(e.width),s=n.ref(e.maxHeight),u=n.ref(String(e.selectedValues).split(i.value)),c=n.computed(()=>e.multiSelect),g=n.computed(()=>({enableSelectRow:!0,multiSelect:e.multiSelect,multiSelectMode:"OnCheckAndClick",showCheckbox:c.value,showSelectAll:!1,showSelection:!0}));n.watch(e.dataSource,()=>{a.value=e.dataSource}),n.computed(()=>e.enableSearch?"SearchBar":"ContentHeader");const f=n.computed(()=>{const v={};return l.value!==void 0&&(v.width=`${l.value}px`),s.value!==void 0&&s.value>0&&(v.maxHeight=`${s.value}px`),v});function d(v){o.value.search(v)}function y(v){r.value=v.map(x=>Object.assign({},x)),u.value=v.map(x=>x[e.idField]),t.emit("selectionChange",r.value)}function h(v){if(e.enableHighlightSearch)return;let x=[];const{searchOption:w}=e;typeof w=="function"?x=a.value.filter(O=>w(v,O)):x=a.value.filter(O=>O[e.valueField].indexOf(v)>-1||O[e.textField].indexOf(v)>-1),o.value.updateDataSource(x)}n.watch([()=>e.selectedValues],([v])=>{e.multiSelect?u.value=v.split(i.value):u.value=[v]});function b(v){o.value.activeRowById(v)}return n.onMounted(()=>{var v,x;if(!e.multiSelect){const w=(v=u.value)==null?void 0:v[0];let O=w;if(!oe.isUndefined(w)){const k=typeof w,p=typeof((x=a.value[0])==null?void 0:x[e.valueField||e.idField]);p==="number"&&k!==p&&(O=Number(w)),p==="boolean"&&k!==p&&(O=w==="true"?!0:w==="false"?!1:w),b(O)}}}),t.expose({search:d,activeRowById:b}),()=>n.createVNode("div",{class:"f-combo-list-container",style:f.value},[n.createVNode(Hn,{ref:o,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:g.value,enableHighlightSearch:e.enableHighlightSearch,selectionValues:u.value,onSelectionChange:y,onAfterSearch:h},null)])}});function Io(e){const{t}=nt.useI18n(),o=n.ref(""),a=n.ref(e.modelValue),r=n.ref(e.data||[]),i=n.ref(e.editable);function l(d){const y=e.multiSelect?String(d).split(e.separator):[String(d)],h=y.map(x=>[x,!0]),b=new Map(h);return r.value.filter(x=>b.has(String(x[e.valueField]))).sort((x,w)=>{const O=y.indexOf(x[e.valueField]),k=y.indexOf(w[e.valueField]);return O-k})}function s(d){const y=l(d).map(h=>h[e.textField]).join(e.separator);o.value=i.value?y||d:y}function u(d){if(e.multiSelect){const y=d.split(e.separator).map(b=>[b,!0]),h=new Map(y);return r.value.filter(b=>h.has(b[e.textField]))}return r.value.filter(y=>""+y[e.textField]===d)}function c(d){const y={};return y[e.idField]=d,y[e.textField]=d,[y]}function g(d){let y=u(d);const h=y&&y.length>0;return i.value&&!h&&(y=c(d)),y}function f(){const{url:d,method:y="GET",headers:h={"Content-Type":"application/json;charset=utf-8;"},body:b=null}=e.remote,v=y.toLowerCase()==="get"?{method:y,headers:h}:{method:y,headers:h,body:b};let x=!1;fetch(new Request(d,v)).then(w=>{var k,p;if(w.status===200)return x=!!((p=(k=w.headers)==null?void 0:k.get("content-type"))!=null&&p.includes("application/json")),x?w.text():w.json();throw w.status===405?new Error(t("comboList.remoteError")):new Error(w.statusText)}).then(w=>{w.length&&(r.value=x?JSON.parse(w):w)}).catch(w=>{console.warn(w)})}return e.remote&&f(),n.watch(()=>e.data,()=>{r.value=e.data}),n.watch([r],([d])=>{if(e.modelValue!=null){const y=d.find(h=>h[e.valueField]===e.modelValue);y&&(o.value=y[e.textField])}}),n.watch(()=>e.modelValue,d=>{a.value=d,s(d)}),s(e.modelValue),{dataSource:r,displayText:o,editable:i,modelValue:a,getItemsByDisplayText:u,getItemsByValue:l,getSelectedItemsByDisplayText:g}}const ot=n.defineComponent({name:"FComboList",props:Ot,emits:["clear","update:modelValue","change","input"],setup(e,t){const{t:o}=nt.useI18n(),a=n.ref(),r=n.ref(),i=n.ref(e.disabled||e.readonly),l=n.ref(e.enableClear),s=n.ref(e.enableSearch),u=n.ref(e.readonly),{dataSource:c,displayText:g,editable:f,modelValue:d,getSelectedItemsByDisplayText:y,getItemsByDisplayText:h}=Io(e),b=n.ref(e.dropDownIcon);b.value==='<span class="f-icon f-icon-arrow-chevron-down"></span>'&&(b.value='<span id="'+e.id+'-icon-dropdown" class="f-icon f-icon-arrow-chevron-down"></span>');const v=n.computed(()=>e.multiSelect),x=n.computed(()=>r.value?r.value.elementRef.getBoundingClientRect().width:0);function w(){!v.value&&r.value&&r.value.hidePopup()}function O(S){g.value=S.map(T=>T[e.textField]).join(e.separator);let C="";S.length===1?C=S[0][e.valueField]:C=S.map(T=>T[e.valueField]).join(e.separator),d.value!==C&&(d.value=C,t.emit("update:modelValue",d.value),t.emit("change",S,d.value))}function k(){const S=y(g.value);O(S)}function p(){u.value||g.value}function m(S){var C;d.value="",(C=a.value)==null||C.activeRowById(""),t.emit("update:modelValue",""),t.emit("change",[],""),t.emit("clear")}function N(S){var C,T;e.enableSearch?((C=a.value)==null||C.