UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

2 lines (1 loc) 50.8 kB
(function(F,v){typeof exports=="object"&&typeof module<"u"?v(exports,require("vue"),require("lodash-es"),require("../common/index.umd.js"),require("../dynamic-resolver/index.umd.js"),require("../notify/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es","../common/index.umd.js","../dynamic-resolver/index.umd.js","../notify/index.umd.js"],v):(F=typeof globalThis<"u"?globalThis:F||self,v(F.splitter={},F.Vue,F.LodashES,F.common,F.dynamicResolver,F.notify))})(this,function(F,v,x,A,ve,he){"use strict";var dt=Object.defineProperty;var mt=(F,v,x)=>v in F?dt(F,v,{enumerable:!0,configurable:!0,writable:!0,value:x}):F[v]=x;var B=(F,v,x)=>mt(F,typeof v!="symbol"?v+"":v,x);function J(n,e){let t;function r(l){const{properties:p,title:h,ignore:f}=l,d=f&&Array.isArray(f),g=Object.keys(p).reduce((w,S)=>((!d||!f.find(y=>y===S))&&(w[S]=p[S].type==="object"&&p[S].properties?r(p[S]):x.cloneDeep(p[S].default)),w),{});if(h&&(!d||!f.find(w=>w==="id"))){const w=h.toLowerCase().replace(/-/g,"_");g.id=`${w}_${Math.random().toString().slice(2,6)}`}return g}function o(l){const{properties:p,title:h,required:f}=l;if(f&&Array.isArray(f)){const d=f.reduce((g,w)=>(g[w]=p[w].type==="object"&&p[w].properties?r(p[w]):x.cloneDeep(p[w].default),g),{});if(h&&f.find(g=>g==="id")){const g=h.toLowerCase().replace(/-/g,"_");d.id=`${g}_${Math.random().toString().slice(2,6)}`}return d}return{type:h}}function s(l,p={},h){const f=n[l];if(f){let d=o(f);const g=e[l];return d=g?g({getSchemaByType:s},d,p,h):d,t!=null&&t.appendIdentifyForNewControl&&t.appendIdentifyForNewControl(d),d}return null}function i(l,p){const h=r(p);return Object.keys(h).reduce((f,d)=>(Object.prototype.hasOwnProperty.call(l,d)&&(f[d]&&x.isPlainObject(f[d])&&x.isPlainObject(l[d]||!l[d])?Object.assign(f[d],l[d]||{}):f[d]=l[d]),f),h),h}function m(l,p){return Object.keys(l).filter(f=>l[f]!=null).reduce((f,d)=>{if(p.has(d)){const g=p.get(d);if(typeof g=="string")f[g]=l[d];else{const w=g(d,l[d],l);Object.assign(f,w)}}else f[d]=l[d];return f},{})}function c(l,p,h=new Map){const f=i(l,p);return m(f,h)}function u(l){var h;const p=l.type;if(p){const f=n[p];if(!f)return l;const d=i(l,f),g=((h=l.editor)==null?void 0:h.type)||"";if(g){const w=n[g],S=i(l.editor,w);d.editor=S}return d}return l}function a(l){t=l}return{getSchemaByType:s,resolveSchemaWithDefaultValue:u,resolveSchemaToProps:c,mappingSchemaToProps:m,setDesignerContext:a}}const Q={},Z={},{getSchemaByType:vt,resolveSchemaWithDefaultValue:ge,resolveSchemaToProps:ye,mappingSchemaToProps:be,setDesignerContext:ht}=J(Q,Z);function Se(n={}){function e(u,a,l,p){if(typeof l=="number")return p[u].length===l;if(typeof l=="object"){const h=Object.keys(l)[0],f=l[h];if(h==="not")return Number(p[u].length)!==Number(f);if(h==="moreThan")return Number(p[u].length)>=Number(f);if(h==="lessThan")return Number(p[u].length)<=Number(f)}return!1}function t(u,a,l,p){return p[u]&&p[u].propertyValue&&String(p[u].propertyValue.value)===String(l)}const r=new Map([["length",e],["getProperty",t]]);Object.keys(n).reduce((u,a)=>(u.set(a,n[a]),u),r);function o(u,a){const l=u;return typeof a=="number"?[{target:l,operator:"length",param:null,value:Number(a)}]:typeof a=="boolean"?[{target:l,operator:"getProperty",param:u,value:!!a}]:typeof a=="object"?Object.keys(a).map(p=>{if(p==="length")return{target:l,operator:"length",param:null,value:a[p]};const h=p,f=a[p];return{target:l,operator:"getProperty",param:h,value:f}}):[]}function s(u){return Object.keys(u).reduce((l,p)=>{const h=o(p,u[p]);return l.push(...h),l},[])}function i(u,a){if(r.has(u.operator)){const l=r.get(u.operator);return l&&l(u.target,u.param,u.value,a)||!1}return!1}function m(u,a){return s(u).reduce((h,f)=>h&&i(f,a),!0)}function c(u,a){const l=Object.keys(u),p=l.includes("allOf"),h=l.includes("anyOf"),f=p||h,w=(f?u[f?p?"allOf":"anyOf":"allOf"]:[u]).map(y=>m(y,a));return p?!w.includes(!1):w.includes(!0)}return{parseValueSchema:c}}const Ce={convertTo:(n,e,t,r)=>{n.appearance||(n.appearance={}),n.appearance[e]=t},convertFrom:(n,e,t)=>n.appearance?n.appearance[e]:n[e]},we={convertFrom:(n,e,t)=>n.buttons&&n.buttons.length?`共 ${n.buttons.length} 项`:"无"},Pe={convertTo:(n,e,t,r)=>{n.editor&&(n.editor[e]=t)},convertFrom:(n,e,t)=>n.editor&&Object.prototype.hasOwnProperty.call(n.editor,e)?n.editor[e]:n[e]},N={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:"多语输入框"}},Me={convertFrom:(n,e,t)=>{var o;const r=n.editor&&n.editor[e]?n.editor[e]:n[e];return((o=N[r])==null?void 0:o.name)||r}},Ee={convertTo:(n,e,t,r)=>{n[e]=n[e]},convertFrom:(n,e,t)=>n.editor?t.getRealEditorType(n.editor.type):""},Te={convertTo:(n,e,t,r)=>{(n.type==="data-grid-column"||n.type==="tree-grid-column")&&(n.formatter?n.formatter[e]=t:n.formatter={[e]:t})},convertFrom:(n,e,t)=>{if(n.formatter){if(e==="trueText")return n.formatter.trueText;if(e==="falseText")return n.formatter.falseText;if(e==="prefix")return n.formatter.prefix;if(e==="suffix")return n.formatter.suffix;if(e==="precision")return n.formatter.precision;if(e==="decimal")return n.formatter.decimal;if(e==="thousand")return n.formatter.thousand;if(e==="tempDateFormat")return n.formatter.dateFormat==="yyyy年MM月dd日"?"yearMonthDay":n.formatter.dateFormat==="yyyy-MM-dd HH:mm:ss"?"yyyy-MM-ddTHH:mm:ss":n.formatter.dateFormat==="yyyy/MM/dd HH:mm:ss"?"yyyy/MM/ddTHH:mm:ss":n.formatter.dateFormat==="yyyy年MM月dd日 HH时mm分ss秒"?"yearMonthDayHourMinuteSecond":n.formatter.tempDateFormat||n.formatter.dateFormat||"yyyy-MM-dd";if(e==="customFormat")return n.formatter.customFormat;if(e==="type")return n.formatter.type||"none"}return"none"}},ze={convertTo:(n,e,t,r)=>{n.command?n.command[e]=t:n.command={[e]:t},e==="enable"&&t&&(n.command.commands||(n.command.commands=[{text:"编辑",type:"primary",command:"edit"},{text:"删除",type:"danger",command:"remove"}]))},convertFrom:(n,e,t)=>n.command&&e==="enable"?n.command.enable:""},Ve={convertTo:(n,e,t,r)=>{n.column?n.column[e]=t:n.column={[e]:t},e==="fitColumns"&&t&&(n.column.fitMode||(n.column.fitMode="average"))},convertFrom:(n,e,t)=>{if(n.column){if(e==="fitColumns")return n.column.fitColumns;if(e==="fitMode")return n.column.fitMode}return""}},Fe={convertTo:(n,e,t,r)=>{n.summary?n.summary[e]=t:n.summary={[e]:t},e==="enable"&&t&&(n.summary?n.summary.groupFields||(n.summary.groupFields=[]):n.summary={enable:t,groupFields:[]})},convertFrom:(n,e,t)=>n.summary&&e==="enable"?n.summary.enable:n.type==="data-grid-column"?n.enableSummary===void 0?!1:n.enableSummary:""},Oe={convertTo:(n,e,t,r)=>{n.group?n.group[e]=t:n.group={[e]:t},e==="enable"&&t&&(n.group?n.group.groupFields||(n.group.groupFields=[]):n.group={enable:t,groupFields:[],showSummary:!1})},convertFrom:(n,e,t)=>{if(n.group){if(e==="enable")return n.group.enable;if(e==="showSummary")return n.group.showSummary}}},Be={convertFrom:(n,e)=>n.binding?n.binding.path:"",convertTo:(n,e,t)=>{if(t&&t.length>0){const r=t[0];n.binding||(n.binding={}),n.binding.type="Form",n.binding.path=r.bindingField,n.binding.field=r.id,n.binding.fullPath=r.path,n.path=r.bindingPath}}},Ne={convertTo:(n,e,t,r)=>{n.pagination||(n.pagination={}),n.pagination[e]=t},convertFrom:(n,e,t)=>n.pagination?n.pagination[e]:n[e]},ke={convertTo:(n,e,t,r)=>{n.rowNumber||(n.rowNumber={}),n.rowNumber[e]=t},convertFrom:(n,e,t)=>n.rowNumber?n.rowNumber[e]:n[e]},Re={convertTo:(n,e,t,r)=>{n.selection||(n.selection={}),n.selection[e]=t},convertFrom:(n,e,t)=>n.selection?n.selection[e]:n[e]},De={convertFrom:(n,e,t)=>n[e]&&n[e].length?`共 ${n[e].length} 项`:""},je={convertFrom:(n,e)=>n[e]||"",convertTo:(n,e,t)=>{n[e]=t}},$e={convertTo:(n,e,t,r)=>{n.size||(n.size={}),n.size[e]=t},convertFrom:(n,e,t)=>n.size?n.size[e]:n[e]},xe={convertFrom:(n,e,t)=>{var r,o;return(r=n.formatter)!=null&&r.data&&e==="formatterEnumData"&&!n.formatterEnumData?(o=n.formatter)==null?void 0:o.data:n.formatterEnumData}},He={convertTo:(n,e,t,r)=>{n.sort||(n.sort={}),n.sort[e]=t},convertFrom:(n,e,t)=>{var r,o;if(e==="mode")return((r=n.sort)==null?void 0:r.mode)||"client";if(e==="multiSort")return!!((o=n.sort)!=null&&o.multiSort)}},Le={convertTo:(n,e,t,r)=>{n.filter||(n.filter={}),n.filter[e]=t},convertFrom:(n,e,t)=>{var r;if(e==="mode")return((r=n.filter)==null?void 0:r.mode)||"client"}},Ae={convertTo:(n,e,t,r)=>{n.rowOption?n.rowOption[e]=t:n.rowOption={[e]:t}},convertFrom:(n,e,t)=>{if(n.rowOption){if(e==="customRowStyle")return n.rowOption.customRowStyle;if(e==="customCellStyle")return n.rowOption.customCellStyle}return""}};function K(n,e,t){const r=new Map([["/converter/appearance.converter",Ce],["/converter/buttons.converter",we],["/converter/property-editor.converter",Pe],["/converter/items-count.converter",De],["/converter/type.converter",Me],["/converter/change-editor.converter",Ee],["/converter/change-formatter.converter",Te],["/converter/column-command.converter",ze],["/converter/column-option.converter",Ve],["/converter/summary.converter",Fe],["/converter/group.converter",Oe],["/converter/form-group-label.converter",je],["/converter/field-selector.converter",Be],["/converter/pagination.converter",Ne],["/converter/row-number.converter",ke],["/converter/grid-selection.converter",Re],["/converter/size.converter",$e],["/converter/change-formatter-enum.converter",xe],["/converter/grid-sort.converter",He],["/converter/grid-filter.converter",Le],["/converter/row-option.converter",Ae]]),o=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}]]),s=Se();function i(f,d){return()=>s.parseValueSchema(f,d)}function m(f,d,g){return f.includes("visible")&&d.visible!==void 0?typeof d.visible=="boolean"?()=>!!d.visible:d.visible===void 0?!0:i(d.visible,g):()=>!0}function c(f,d,g){return f.includes("readonly")&&d.readonly!==void 0?typeof d.readonly=="boolean"?()=>!!d.readonly:i(d.readonly,g):()=>!1}function u(f,d){const g=f.$converter||d;return typeof g=="string"&&g&&r.has(g)?r.get(g)||null:g||null}function a(f,d,g,w,S,y="",P=""){return Object.keys(f).map(M=>{const j=v.ref(1),$=M,C=f[M],R=Object.keys(C),q=C.title,b=C.type,E=o.get(b)||{type:"input-group",enableClear:!1},T=C.editor?Object.assign({},E,C.editor):Object.assign({},E),z=m(R,C,d),O=c(R,C,d);T.readonly=T.readonly===void 0?O():T.readonly;const D=C.type==="cascade"?a(C.properties,d,g,w,S,y,P):[],W=!0;let k=u(C,P);const H=v.computed({get(){if(j.value){if(["class","style"].find(ft=>ft===$)&&!k&&(k=r.get("/converter/appearance.converter")||null),k&&k.convertFrom)return k.convertFrom(g,M,S,y);const L=g[M];return Object.prototype.hasOwnProperty.call(C,"defaultValue")&&(L===void 0||typeof L=="string"&&L==="")?C.type==="boolean"?C.defaultValue:C.defaultValue||"":L}return null},set(L){j.value+=1,k&&k.convertTo?(k.convertTo(w,M,L,S,y),k.convertTo(g,M,L,S,y)):(w[M]=L,g[M]=L)}}),{refreshPanelAfterChanged:_,description:ct,isExpand:ut,parentPropertyID:pt}=C,me={propertyID:$,propertyName:q,propertyType:b,propertyValue:H,editor:T,visible:z,readonly:O,cascadeConfig:D,hideCascadeTitle:W,refreshPanelAfterChanged:_,description:ct,isExpand:ut,parentPropertyID:pt};return d[$]=me,me})}function l(f,d,g={}){const w={},S=n[f];return S&&S.categories?Object.keys(S.categories).map(P=>{const V=S.categories[P],M=V==null?void 0:V.title,j=a(V.properties||{},w,{},g,d);return{categoryId:P,categoryName:M,properties:j}}):[]}function p(f,d,g,w,S=""){const y=d.$ref.schema,P=d.$ref.converter,V=g[y],M=V.type,j=t(V),$={},C=n[M];if(C&&C.categories){const R=C.categories[f],q=R==null?void 0:R.title;P&&Object.keys(R.properties).forEach(T=>{R.properties[T].$converter=P});const b=(R==null?void 0:R.properties)||{},E=a(b,$,j,V,w,S);return{categoryId:f,categoryName:q,properties:E}}return{categoryId:f,categoryName:"",properties:[]}}function h(f,d,g,w,S){const y=f.type,P=t(f),V={};let M=S||n[y];if(M&&Object.keys(M).length===0&&g&&g.getPropConfig&&(M=g.getPropConfig(w)),M&&M.categories){const j=[];return Object.keys(M.categories).map($=>{const C=M.categories[$];if(C.$ref){j.push(p($,C,f,d,w));return}const R=C==null?void 0:C.title,q=C==null?void 0:C.tabId,b=C==null?void 0:C.tabName,E=C==null?void 0:C.hide,T=C==null?void 0:C.hideTitle,z=a(C.properties||{},V,P,f,d,w,C.$converter),{setPropertyRelates:O}=C,D=C==null?void 0:C.parentPropertyID;j.push({categoryId:$,categoryName:R,tabId:q,tabName:b,hide:E,properties:z,hideTitle:T,setPropertyRelates:O,parentPropertyID:D})}),j}return[]}return{getPropertyConfigBySchema:h,getPropertyConfigByType:l,propertyConverterMap:r}}const ee={},te={};K(ee,te,ge);const ne={},re={},{getSchemaByType:gt,resolveSchemaWithDefaultValue:Ue,resolveSchemaToProps:yt,mappingSchemaToProps:bt,setDesignerContext:St}=J(ne,re),ie={},oe={};K(ie,oe,Ue);function se(n,e,t=new Map,r=(i,m,c,u)=>m,o={},s=i=>i){return Q[e.title]=e,Z[e.title]=r,ee[e.title]=o,te[e.title]=s,ne[e.title]=e,re[e.title]=r,ie[e.title]=o,oe[e.title]=s,(i={},m=!0)=>{if(!m)return be(i,t);const c=ye(i,e,t),u=Object.keys(n).reduce((a,l)=>(a[l]=n[l].default,a),{});return Object.assign(u,c)}}function ae(n,e){return{customClass:e.class,customStyle:e.style}}const qe=new Map([["appearance",ae]]);function We(n,e,t){const r=n.getSchemaByType("splitter-pane");return r.appearance={class:"f-col-w6 f-page-content-nav"},r.position="left",e.contents.unshift(r),e}function _e(n,e,t){const r=n.getSchemaByType("splitter-pane");return r.appearance={class:"f-page-content-main"},r.position="main",e.contents.push(r),e}function Ie(n,e,t){const r=t.parentComponentInstance;return String(r.schema.appearance.class||"").split(" ").includes("f-page-main")&&(e.appearance={class:"f-page-content"}),We(n,e),_e(n,e),e}function Xe(n,e,t){return e}const Ye={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/splitter.schema.json",title:"splitter",description:"A Farris Container Component",type:"object",properties:{id:{description:"The unique identifier for a splitter",type:"string"},type:{description:"The type string of splitter component",type:"string",default:"splitter"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},contents:{description:"",type:"array",default:[]},direction:{description:"",type:"string",default:"row",enum:["column","row"]}},required:["id","type","contents"]},I={customStyle:{type:String,default:""},customClass:{type:String,default:""},direction:{Type:String,default:"row"}},Y=se(I,Ye,qe,Ie);function le(n){const e=v.ref(-1),t=v.ref(-1),r=v.ref(0),o=v.ref(0),s=v.ref(!1),i=v.ref(!1),m=v.computed(()=>({display:s.value?"block":"none",left:`${r.value}px`})),c=v.computed(()=>({display:i.value?"block":"none",top:`${o.value}px`})),u=v.computed(()=>({display:i.value||s.value?"block":"none"}));function a(p){const h=n.value;if(h){const{left:f}=h.getBoundingClientRect();r.value=p.clientX-f}}function l(p){const h=n.value;if(h){const{top:f}=h.getBoundingClientRect();o.value=p.clientY-f}}return{horizontalResizeHandleStyle:m,verticalResizeHandleStyle:c,resizeOverlayStyle:u,showHorizontalResizeHandle:s,showVerticalResizeHandle:i,horizontalResizeBarPosition:e,verticalResizeBarPosition:t,verticalResizeHandleOffset:o,horizontalResizeHandleOffset:r,draggingHorizontalResizeHandle:a,draggingVerticalResizeHandle:l}}const U=v.defineComponent({name:"FSplitter",props:I,emits:[],setup(n,e){const t=v.ref(),r=le(t),{horizontalResizeHandleStyle:o,verticalResizeHandleStyle:s,resizeOverlayStyle:i}=r;v.provide("splitter",{useResizeHandleComposition:r});const m=v.computed(()=>{const u={"f-splitter":!0};return A.getCustomClass(u,n==null?void 0:n.customClass)}),c=v.computed(()=>{const u={"flex-direction":n.direction==="row"?"row":"column"};return A.getCustomStyle(u,n==null?void 0:n.customStyle)});return()=>v.createVNode("div",{class:m.value,ref:t,style:c.value},[e.slots.default&&e.slots.default(),v.createVNode("div",{class:"f-splitter-resize-overlay",style:i.value},null),v.createVNode("div",{class:"f-splitter-horizontal-resize-proxy",style:o.value},null),v.createVNode("div",{class:"f-splitter-vertical-resize-proxy",style:s.value},null)])}}),Ge=new Map([["appearance",ae]]),Je={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/splitter-pane.schema.json",title:"splitter-pane",description:"A Farris Container Component",type:"object",properties:{id:{description:"The unique identifier for a splitter",type:"string"},type:{description:"The type string of splitter component",type:"string",default:"splitter-pane"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},size:{description:"",type:"object",properties:{width:{type:"number"},height:{type:"strnumbering"}},default:{}},collapsable:{description:"",type:"boolean",default:!1},contents:{description:"",type:"array",default:[]},minHeight:{description:"",type:"number"},minWidth:{description:"",type:"number"},position:{description:"",type:"string",default:"left",enum:["left","center","right","top","bottom"]},resizable:{description:"",type:"boolean",default:!1},resizeHandle:{description:"",type:"string",default:""},visible:{description:"",type:"number",default:!0}},required:["id","type","contents"]},G={customClass:{type:String,defaut:""},customStyle:{type:String,default:""},width:{type:Number},height:{type:Number},position:{type:String,default:"left"},visible:{type:Boolean,default:!0},resizable:{type:Boolean,default:!1},resizeHandle:{type:String,default:""},collapsable:{type:Boolean,default:!1},minWidth:{type:Number,default:0},minHeight:{type:Number,default:0}},ce=se(G,Je,Ge,Xe);function ue(n,e){const t=v.ref(n.width),r=v.ref(n.height),{horizontalResizeBarPosition:o,horizontalResizeHandleOffset:s,showHorizontalResizeHandle:i,showVerticalResizeHandle:m,verticalResizeBarPosition:c,verticalResizeHandleOffset:u,draggingHorizontalResizeHandle:a,draggingVerticalResizeHandle:l}=e;let p="",h,f;function d(S){if((p==="left"||p==="right")&&f){const{left:y}=f.getBoundingClientRect(),{width:P}=h.getBoundingClientRect(),V=S.clientX-y,M=p==="left"?(P||0)+(V-o.value):(P||0)-(V-o.value);t.value=n.minWidth>0?Math.max(n.minWidth,M):M}if((p==="top"||p==="bottom")&&f){const{top:y}=f.getBoundingClientRect(),{height:P}=h.getBoundingClientRect(),V=S.clientY-y,M=p==="top"?(P||0)+(V-c.value):(P||0)-(V-c.value);r.value=n.minHeight>0?Math.max(n.minHeight,M):M}s.value=0,u.value=0,o.value=-1,c.value=-1,i.value=!1,m.value=!1,document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",d),document.body.style.userSelect="",p="",h=null,f=null}function g(S,y,P){if(p=y,h=P,i.value=!0,f=S.composedPath().find(M=>M.className.split(" ")[0]==="f-splitter"),f){const{left:M}=f.getBoundingClientRect();s.value=S.clientX-M,o.value=S.clientX-M,document.addEventListener("mousemove",a),document.addEventListener("mouseup",d),document.body.style.userSelect="none"}}function w(S,y,P){if(p=y,h=P,m.value=!0,f=S.composedPath().find(M=>M.className.split(" ")[0]==="f-splitter"),f){const{top:M}=f.getBoundingClientRect();u.value=S.clientY-M,c.value=S.clientY-M,document.addEventListener("mousemove",l),document.addEventListener("mouseup",d),document.body.style.userSelect="none"}}return{actualWidth:t,actualHeight:r,onClickSplitterHorizontalResizeBar:g,onClickSplitterVerticalResizeBar:w}}const X=v.defineComponent({name:"FSplitterPane",props:G,emits:[],setup(n,e){const t=v.ref(),r=v.inject("splitter"),{useResizeHandleComposition:o}=r,s=ue(n,o),{actualHeight:i,actualWidth:m,onClickSplitterHorizontalResizeBar:c,onClickSplitterVerticalResizeBar:u}=s,a=v.ref(n.position),l=v.computed(()=>{const y={"f-splitter-pane":!0,"f-splitter-pane-main":a.value==="center","has-resize-bar":n.resizable};return y["f-splitter-pane-"+a.value]=!0,A.getCustomClass(y,n==null?void 0:n.customClass)}),p=v.computed(()=>n.resizeHandle?n.resizeHandle.split(",").filter(y=>["e","n","s","w"].find(P=>P===y)):[]),h=v.computed(()=>{const y={};return(m.value||m.value===0)&&(a.value==="left"||a.value==="right"||p.value.find(P=>P==="e")||p.value.find(P=>P==="w"))&&(y.width=`${m.value}px`),(i.value||i.value===0)&&(a.value==="bottom"||a.value==="top"||p.value.find(P=>P==="s")||p.value.find(P=>P==="n"))&&(y.height=`${i.value}px`),A.getCustomStyle(y,n==null?void 0:n.customStyle)}),f=v.computed(()=>({"f-splitter-resize-bar":!0,"f-splitter-resize-bar-e":a.value==="left","f-splitter-resize-bar-n":a.value==="bottom","f-splitter-resize-bar-s":a.value==="top","f-splitter-resize-bar-w":a.value==="right"}));function d(y){return{e:"left",w:"right",s:"top",n:"bottom"}[y]||y}function g(y,P){P=d(P),["left","right"].find(V=>V===P)&&c(y,P,t.value),["top","bottom"].find(V=>V===P)&&u(y,P,t.value)}function w(){return p.value.length>0?p.value.map(y=>v.createVNode("span",{class:"f-splitter-resize-bar f-splitter-resize-bar-"+y,onMousedown:P=>g(P,y)},null)):v.createVNode("span",{class:f.value,onMousedown:y=>g(y,a.value)},null)}function S(){m.value=n.width,i.value=n.height,h.value}return e.expose({reset:S}),()=>v.createVNode("div",{ref:t,class:l.value,style:h.value},[e.slots.default&&e.slots.default(),n.resizable&&w()])}});function pe(n,e,t){var q;const r=t&&t.getStyles&&t.getStyles()||"",o=t&&t.getDesignerClass&&t.getDesignerClass()||"",s=v.ref();let i;function m(){return(e==null?void 0:e.schema.componentType)==="frame"?!1:t&&t.checkCanMoveComponent?t.checkCanMoveComponent():!0}function c(){return!1}function u(){return(e==null?void 0:e.schema.componentType)==="frame"?!1:t&&t.checkCanDeleteComponent?t.checkCanDeleteComponent():!0}function a(){return(e==null?void 0:e.schema.componentType)==="frame"?!0:t&&t.hideNestedPaddingInDesginerView?t.hideNestedPaddingInDesginerView():!1}function l(b){if(!b||!b.value)return null;if(b.value.schema&&b.value.schema.type==="component")return b.value;const E=v.ref(b==null?void 0:b.value.parent),T=l(E);return T||null}function p(b=e){var O;if(t!=null&&t.getDraggableDesignItemElement)return t.getDraggableDesignItemElement(b);const{componentInstance:E,designerItemElementRef:T}=b;if(!E||!E.value)return null;const{getCustomButtons:z}=E.value;return E.value.canMove||z&&((O=z())!=null&&O.length)?T:p(b.parent)}function h(b){return!!t&&t.canAccepts(b)}function f(){return(e==null?void 0:e.schema.label)||(e==null?void 0:e.schema.title)||(e==null?void 0:e.schema.name)}function d(){}function g(b,E){var T;!b||!E||(t!=null&&t.onAcceptMovedChildElement&&t.onAcceptMovedChildElement(b,E),(T=e==null?void 0:e.setupContext)==null||T.emit("dragEnd"))}function w(b,E){const{componentType:T}=b;let z=ve.getSchemaByTypeForDesigner(T,b,E);t&&t.onResolveNewComponentSchema&&(z=t.onResolveNewComponentSchema(b,z));const O=T.toLowerCase().replace(/-/g,"_");return z&&!z.id&&z.type===T&&(z.id=`${O}_${Math.random().toString().slice(2,6)}`),z}function S(b){b&&t!=null&&t.onChildElementMovedOut&&t.onChildElementMovedOut(b)}function y(...b){if(t&&t.getPropsConfig)return t.getPropsConfig(...b)}function P(b){if(!b)return;const E=e==null?void 0:e.schema,{formSchemaUtils:T}=b;if(E&&T.getExpressions().length){const z=T.getExpressions().findIndex(O=>O.target===E.id);z>-1&&T.getExpressions().splice(z,1)}}function V(b){if(!b||!(e!=null&&e.schema))return;const E=e.schema,{formSchemaUtils:T}=b;T.removeCommunicationInComponent(E)}function M(b){t&&t.onRemoveComponent&&t.onRemoveComponent(),P(b),V(b),e!=null&&e.schema.contents&&e.schema.contents.map(E=>{let T=E.id;E.type==="component-ref"&&(T=E.component);const z=n.value.querySelectorAll(`#${T}-design-item`);z!=null&&z.length&&Array.from(z).map(O=>{var D;(D=O==null?void 0:O.componentInstance)!=null&&D.value.onRemoveComponent&&O.componentInstance.value.onRemoveComponent(b)})})}function j(){if(t&&t.getCustomButtons)return t.getCustomButtons()}function $(b){var T,z;if(!((T=e==null?void 0:e.schema)!=null&&T.id))return;if(!i&&b&&(i=b.formSchemaUtils),t!=null&&t.setComponentBasicInfoMap){t.setComponentBasicInfoMap();return}let E="";if(t!=null&&t.getComponentTitle)E=t.getComponentTitle();else{const{text:O,title:D,label:W,mainTitle:k,name:H,type:_}=e.schema;E=O||D||W||k||H||((z=N[_])==null?void 0:z.name)}E&&i.getControlBasicInfoMap().set(e.schema.id,{componentTitle:E,parentPathName:E})}function C(b){var O;const{changeObject:E}=b,{propertyID:T,propertyValue:z}=E;if(["text","title","label","name","mainTitle"].includes((O=b==null?void 0:b.changeObject)==null?void 0:O.propertyID)&&T&&z&&($(),i)){const D=i.getControlBasicInfoMap(),W=D.keys().toArray().filter(k=>{var H,_;return((H=D.get(k))==null?void 0:H.reliedComponentId)===((_=e==null?void 0:e.schema)==null?void 0:_.id)});W!=null&&W.length&&W.forEach(k=>{const H=D.get(k).parentPathName.split(" > ");H[0]=z,D.get(k).parentPathName=H.join(" > ")})}}function R(b){if(C(b),t&&t.onPropertyChanged)return t.onPropertyChanged(b)}return s.value={canMove:m(),canSelectParent:c(),canDelete:u(),canNested:!a(),contents:e==null?void 0:e.schema.contents,elementRef:n,parent:(q=e==null?void 0:e.parent)==null?void 0:q.componentInstance,schema:e==null?void 0:e.schema,styles:r,designerClass:o,canAccepts:h,getBelongedComponentInstance:l,getDraggableDesignItemElement:p,getDraggingDisplayText:f,getPropConfig:y,getDragScopeElement:d,onAcceptMovedChildElement:g,onChildElementMovedOut:S,addNewChildComponentSchema:w,triggerBelongedComponentToMoveWhenMoved:!!t&&t.triggerBelongedComponentToMoveWhenMoved||v.ref(!1),triggerBelongedComponentToDeleteWhenDeleted:!!t&&t.triggerBelongedComponentToDeleteWhenDeleted||v.ref(!1),onRemoveComponent:M,getCustomButtons:j,onPropertyChanged:R,setComponentBasicInfoMap:$,updateContextSchema:e==null?void 0:e.updateContextSchema},s}class fe{getTemplateRule(e,t){const r=t==null?void 0:t.formSchemaUtils,o=r==null?void 0:r.getFormTemplateRule(),s={canAccept:!0,canDelete:!0,canMove:!0};if(!o)return s;const i=this.getComponentContext(e),{componentClassList:m}=i;return m.forEach(c=>{if(!c||!o[c])return;const{canMove:u,canDelete:a,canAccept:l}=o[c];s.canMove=s.canMove&&this.resolveRuleValue(u,i),s.canDelete=s.canDelete&&this.resolveRuleValue(a,i),s.canAccept=s.canAccept&&this.resolveRuleValue(l,i)}),s}resolveRuleValue(e,t){return typeof e=="boolean"?e:this.parseRuleValueSchema(e,t)}parseRuleValueSchema(e,t){const r=e.invalidContext||[];let o=!0;for(const s of r){const{firstLevelChild:i,secondLevelChild:m,parent:c,...u}=s;if(u&&t.component){let a=!0;for(const l of Object.keys(u))if(u[l]!==t.component[l]){a=!1;break}if(!a){o=!1;continue}}if(s.firstLevelChild){if(s.firstLevelChild.class){const{firstLevelChildClassList:a}=t;if(a&&!a.includes(s.firstLevelChild.class)){o=!1;continue}}if(s.firstLevelChild.type){const{firstLevelChildSchema:a}=t;if(!a||a.type!==s.firstLevelChild.type){o=!1;continue}}}if(s.secondLevelChild){if(s.secondLevelChild.class){const{secondLevelChildClassList:a}=t;if(a&&!a.includes(s.secondLevelChild.class)){o=!1;continue}}if(s.secondLevelChild.type){const{secondLevelChildSchema:a}=t;if(!a||a.type!==s.secondLevelChild.type){o=!1;continue}}}if(s.parent){if(s.parent.class){const{parentClassList:a}=t;if(a&&!a.includes(s.parent.class)){o=!1;continue}}if(s.parent.type){const{parentSchema:a}=t;if(a&&a.type!==s.parent.type){o=!1;continue}}}o=!0;break}return!o}getComponentContext(e){var d,g,w,S;const t=e.schema,r=t.appearance&&t.appearance.class||"",o=r.split(" ")||[],s=t.contents||[],i=s.length?s[0]:null,m=i&&i.appearance?i.appearance.class:"",c=m?m.split(" "):[],u=(d=i==null?void 0:i.contents)!=null&&d.length?i==null?void 0:i.contents[0]:null,a=u&&u.appearance?u.appearance.class:"",l=a?a.split(" "):[],p=t.type==="component"?(w=(g=e.parent)==null?void 0:g.parent)==null?void 0:w.schema:(S=e.parent)==null?void 0:S.schema,h=p&&p.appearance&&p.appearance.class||"",f=h?h.split(" "):[];return{componentClass:r,componentClassList:o,childContents:s,firstLevelChildSchema:i,firstLevelChildClass:m,firstLevelChildClassList:c,secondLevelChildSchema:u,secondLevelChildClass:a,secondLevelChildClassList:l,parentSchema:p,parentClass:h,parentClassList:f,component:t}}}const Qe=v.ref(0);function Ze(){Qe.value++}const Ke=v.ref(0);function et(n){const{formSchemaUtils:e,formStateMachineUtils:t}=n;function r(c,u=""){return{path:u+c.code,field:c.id,fullPath:c.code}}function o(c,u=""){return e.getViewModelById(c).states.map(l=>r(l,u))}function s(c){const u=e.getRootViewModelId(),a=o(c);if(c===u)return a;const l=o(u,"root-component.");return[...a,...l]}function i(c){return c.binding&&c.binding.path||c.id||""}function m(){return t&&t.getRenderStates()||[]}return{getVariables:s,getControlName:i,getStateMachines:m}}class tt{constructor(e){B(this,"sessionVariables",[{key:"CurrentSysOrgName",name:"当前组织Name",description:"当前组织Name"},{key:"CurrentSysOrgId",name:"当前组织Id",description:"当前组织Id"},{key:"CurrentUserName",name:"当前用户Name",description:"当前用户Name"},{key:"CurrentUserCode",name:"当前用户Code",description:"当前用户Code"},{key:"CurrentUserId",name:"当前用户Id",description:"当前用户Id"},{key:"CurrentLanguage",name:"当前语言编号",description:"当前登录的语言编号,例如简体中文返回'zh-CHS',英文返回'en',繁体中文'zh-CHT'"}]);B(this,"expressionNames",{compute:"计算表达式",dependency:"依赖表达式",validate:"验证表达式",dataPicking:"帮助前表达式",visible:"可见表达式",readonly:"只读表达式",required:"必填表达式"});B(this,"getExpressionConverter",(e,t)=>({convertFrom:(r,o,s,i)=>{const m=s.getExpressionRuleValue(e,t||o);return m&&m.value||""},convertTo:(r,o,s,i,m)=>{var c;if(o==="dataPicking"&&(s!=null&&s.target)){const u=`${s.target}_dataPicking`;((c=s.rules)==null?void 0:c.some(l=>l.id===u&&l.value))?r.dictPickingExpressionId=u:delete r.dictPickingExpressionId}i.updateExpression(s)}}));this.formSchemaService=e}getExpressionRule(e,t){const r=this.formSchemaService.getExpressions();if(!r)return"";const o=r.find(i=>i.target===e);if(!o)return"";const s=o.rules.find(i=>i.type===t);return s||""}getContextFormVariables(){const{module:e}=this.formSchemaService.getFormSchema();if(!e.viewmodels||e.viewmodels.length===0)return[];const t=this.formSchemaService.getRootViewModelId(),r=this.formSchemaService.getViewModelById(t);if(!r||!r.states||r.states.length===0)return[];const o=[];return r.states.forEach(s=>{o.push({key:s.code,name:s.name,description:s.name,category:s.category})}),o}createTreeNode(e,t,r="label"){return{id:e.id,name:e.name,bindingPath:e[r],parents:t,type:"field"}}buildEntityFieldsTreeData(e=null,t){const r=[];return e==null||e.forEach(o=>{var m;const s=this.createTreeNode(o,t);let i=[];(m=o.type)!=null&&m.fields&&(i=this.buildEntityFieldsTreeData(o.type.fields,[...t,o.label])),r.push({data:s,children:i,expanded:!0})}),r}buildChildEntityTreeData(e=null,t){const r=[];return e==null||e.forEach(o=>{var c,u;const s=this.createTreeNode(o,t);s.type="entity";const i=this.buildEntityFieldsTreeData((c=o.type)==null?void 0:c.fields,[...t,o.label]),m=this.buildChildEntityTreeData((u=o.type)==null?void 0:u.entities,[...t,o.label]);m!=null&&m.length&&(i==null||i.push(...m)),r.push({data:s,children:i||[],expanded:!0})}),r}getEntitiesTreeData(){const e=this.formSchemaService.getSchemaEntities();if(!(e!=null&&e.length))return[];const t=e[0];if(!(t!=null&&t.type))return[];const r=this.buildEntityFieldsTreeData(t.type.fields,[t.code]),o=this.buildChildEntityTreeData(t.type.entities,[t.code]);return o!=null&&o.length&&(r==null||r.push(...o)),{entityCode:t.code,fields:[{data:this.createTreeNode(t,[],"code"),children:r||[]}]}}getEntitiesAndVariables(){return{entities:this.getEntitiesTreeData(),variables:{session:{name:"系统变量",items:this.sessionVariables,visible:!1},forms:{name:"表单变量",items:this.getContextFormVariables(),visible:!0}}}}onBeforeOpenExpression(e,t,r){const o=r==="Field"?e.binding.field:e.id,s=this.getExpressionRule(o,t),i=this.getEntitiesAndVariables(),m={message:["validate","required","dataPicking"].includes(t)&&s?s.message:"",...i};return s.messageType!=null&&(m.messageType=s.messageType),m}buildRule(e,t,r,o){const{expression:s,message:i,messageType:m}=t,c={id:`${e}_${r}`,type:r,value:s};return(r==="validate"||r==="dataPicking"||r==="required")&&(c.message=i),r==="dataPicking"&&(c.messageType=m),r==="validate"&&o&&(c.elementId=o),c}getExpressionData(){const{expressions:e}=this.formSchemaService.getFormSchema().module;return e||[]}updateExpression(e,t,r,o){const s=t==="Field"?e.binding.field:e.id,i=this.buildRule(s,r,o,e.type==="form-group"?e.id:"");let c=this.getExpressionData().find(a=>a.targetType===t&&a.target===s);const u=a=>a.value.trim()==="";if(c){const a=c.rules.find(l=>l.id===i.id);if(a)u(i)?c.rules=c.rules.filter(l=>l.id!==i.id):(Object.assign(a,i),o==="validate"&&e.type==="form-group"&&(a.elementId=e.id));else{if(u(i))return null;c.rules=c.rules||[],c.rules.push(i)}}else{if(u(i))return null;c={target:`${s}`,rules:[i],targetType:t}}return c}getExpressionEditorOptions(e,t,r,o){return r.reduce((s,i)=>{var c,u;const m=t==="Field"?(c=e==null?void 0:e.binding)==null?void 0:c.field:e.id;return s[i]={hide:t==="Field"?!!((u=e==null?void 0:e.binding)!=null&&u.field):!1,description:"",title:this.expressionNames[i],type:"string",$converter:this.getExpressionConverter(m),refreshPanelAfterChanged:!0,editor:{type:"expression-editor",singleExpand:!1,dialogTitle:`${this.expressionNames[i]}编辑器`,showMessage:i==="validate"||i==="dataPicking"||i==="required",showMessageType:i==="dataPicking",beforeOpen:()=>this.onBeforeOpenExpression(e,i,t),onSubmitModal:a=>{const l=this.updateExpression(e,t,a,i);if(o){const p=this.buildRule(m,a,i);o(p)}return l}}},s},{})}getExpressionInfo(e,t,r){const o=t==="Field"?e.binding.field:e.id,s=this.getExpressionRule(o,r),i={value:s&&s.value,targetId:o,targetType:t,expressionType:r};return s&&s.message&&(i.message=s.message),i}getExpressionConfig(e,t,r=["compute","dependency","validate"],o){return{description:"表达式",title:"表达式",hide:!e.binding,properties:{...this.getExpressionEditorOptions(e,t,r,o)}}}getExpressionOptions(e,t,r){const o=this.getExpressionInfo(e,t,r);return{dialogTitle:`${this.expressionNames[r]}编辑器`,singleExpand:!1,showMessage:r==="required",beforeOpen:()=>this.onBeforeOpenExpression(e,r,t),expressionInfo:o}}}class de{constructor(e,t){B(this,"componentId");B(this,"viewModelId");B(this,"eventsEditorUtils");B(this,"formSchemaUtils");B(this,"formMetadataConverter");B(this,"designViewModelUtils");B(this,"designViewModelField");B(this,"controlCreatorUtils");B(this,"designerHostService");B(this,"designerContext");B(this,"schemaService",null);B(this,"metadataService",null);B(this,"propertyConfig",{type:"object",categories:{}});var r;this.componentId=e,this.designerHostService=t,this.eventsEditorUtils=t.eventsEditorUtils,this.formSchemaUtils=t.formSchemaUtils,this.formMetadataConverter=t.formMetadataConverter,this.viewModelId=((r=this.formSchemaUtils)==null?void 0:r.getViewModelIdByComponentId(e))||"",this.designViewModelUtils=t.designViewModelUtils,this.controlCreatorUtils=t.controlCreatorUtils,this.metadataService=t.metadataService,this.schemaService=t.schemaService,this.designerContext=t.designerContext}getFormDesignerInstance(){var e,t;return(t=(e=this.designerContext)==null?void 0:e.instances)==null?void 0:t.formDesigner.value}getTableInfo(){var e;return(e=this.schemaService)==null?void 0:e.getTableInfoByViewModelId(this.viewModelId)}setDesignViewModelField(e){var r;const t=e.binding&&e.binding.type==="Form"&&e.binding.field;if(t){if(!this.designViewModelField){const o=this.designViewModelUtils.getDgViewModel(this.viewModelId);this.designViewModelField=o.fields.find(s=>s.id===t)}e.updateOn=(r=this.designViewModelField)==null?void 0:r.updateOn}}getBasicPropConfig(e){return{description:"Basic Information",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"select",editor:{type:"combo-list",textField:"name",valueField:"value",idField:"value",editable:!1,data:[{value:e.type,name:N[e.type]&&N[e.type].name}]}}}}}getAppearanceConfig(e=null,t={},r){const o={title:"外观",description:"Appearance"},s={class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"},style:{title:"style样式",type:"string",description:"组件的样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"}};for(const i in t)s[i]=Object.assign(s[i]||{},t[i]);return{...o,properties:{...s},setPropertyRelates(i,m){if(i){switch(i&&i.propertyID){case"class":case"style":{Ke.value++;break}}r&&r(i,e,m)}}}}getPropertyEditorParams(e,t=[],r="visible",o={},s={}){const{getVariables:i,getControlName:m,getStateMachines:c}=et(this.designerHostService),u=this.getRealTargetType(e),a=t&&t.length>0?t:["Const","Variable","StateMachine","Expression"],l={type:"property-editor",propertyTypes:a};return a.map(p=>{switch(p){case"Const":Object.assign(l,{constType:"enum",constEnums:[{id:!0,name:"是"},{id:!1,name:"否"}]},o);break;case"Expression":l.expressionConfig=this.getExpressionOptions(e,u,r);break;case"StateMachine":l.stateMachines=c();break;case"Variable":Object.assign(l,{controlName:m(e),newVariablePrefix:"is",newVariableType:"Boolean",variables:i(this.viewModelId),onBeforeOpenVariables:h=>{h.value=i(this.viewModelId)}},s);break}}),l}getVisibleProperty(e,t=""){var s;let r=["Const","Variable","StateMachine","Expression"];return t==="gridFieldEditor"?r=["Const","Expression"]:t==="form-group"&&!((s=e.binding)!=null&&s.field)&&(r=["Const","Variable","StateMachine"]),{visible:{title:"是否可见",type:"boolean",description:"运行时组件是否可见",editor:this.getPropertyEditorParams(e,r,"visible")}}}getBehaviorConfig(e,t="",r={},o){const s={title:"行为",description:""},i=this.getVisibleProperty(e,t);for(const c in r)i[c]=Object.assign(i[c]||{},r[c]);const m=this;return{...s,properties:{...i},setPropertyRelates(c,u){if(c){switch(c.propertyID){case"disabled":case"readonly":case"visible":m.afterMutilEditorChanged(e,c);break}o&&o(c,u)}}}}afterMutilEditorChanged(e,t){this.addNewVariableToViewModel(t,this.viewModelId),this.updateExpressionValue(t),this.clearExpression(t,e)}updateElementByParentContainer(e,t){const r=t&&t.parent&&t.parent.schema;if(!r)return;const o=r.contents.findIndex(i=>i.id===e),s=x.cloneDeep(r.contents[o]);r.contents.splice(o,1),r.contents.splice(o,0,s),Ze()}addNewVariableToViewModel(e,t){const r=e.propertyValue;if(!(r&&typeof r=="object")||!(r.type==="Variable"&&r.isNewVariable))return;const i={id:r.field,category:"locale",code:r.fullPath,name:r.fullPath,type:r.newVariableType||"String"};delete r.newVariableType,delete r.isNewVariable,this.formSchemaUtils.getVariableByCode(i.code)||this.formSchemaUtils.getViewModelById(t).states.push(i)}updateExpressionValue(e){const t=e.propertyValue;if(!((t&&t.type)==="Expression"&&t.expressionInfo))return;const{expressionId:s,expressionInfo:i}=t,{targetId:m,targetType:c,expressionType:u,value:a,message:l}=i,p=this.formSchemaUtils.getModule();p.expressions=p.expressions||[];const{expressions:h}=p;let f=h.find(g=>g.target===m);f||(f={target:m,rules:[],targetType:c},h.push(f));const d=f.rules.find(g=>g.type===u);if(d)d.value=a,d.message=l;else{const g={id:s,type:u,value:a,message:l};f.rules.push(g)}delete t.expressionInfo}clearExpression(e,t){const r=e.propertyValue;if(r&&r.type==="Expression")return;const s=e.propertyID,i=this.formSchemaUtils.getExpressions(),m=t.binding?t.binding.field:t.id,c=i.find(u=>u.target===m);!c||!c.rules||(c.rules=c.rules.filter(u=>u.type!==s))}getExpressionOptions(e,t,r){return new tt(this.formSchemaUtils).getExpressionOptions(e,t,r)}getRealTargetType(e){return["response-toolbar-item","tab-toolbar-item","section-toolbar-item"].indexOf(e.type)>-1?"Button":e.binding&&e.binding.field?"Field":"Container"}createBaseEventProperty(e){const t={};return t[this.viewModelId]={type:"events-editor",editor:{initialData:e,viewSourceHandle:r=>{var o;((o=r.controller)==null?void 0:o.label.indexOf(this.formSchemaUtils.getModule().code))>-1&&this.eventsEditorUtils.jumpToMethod(r)}}},t}}class nt extends de{constructor(e,t){super(e,t)}getPropertyConfig(e){return this.propertyConfig.categories.basic=this.getBasicPropConfig(e),this.propertyConfig.categories.appearance=this.getAppearanceConfig(e),this.propertyConfig}getBehaviorProperties(e){return{description:"",title:"行为",properties:{direction:{title:"布局方向",description:"指定内部分栏面板的布局方向",type:"string",editor:{type:"combo-list",data:[{id:"row",name:"横向排列"},{id:"column",name:"上下排列"}]}}},setPropertyRelates(t,r){if(t&&t.propertyID==="direction"){const o=t.propertyValue!=="column",s=o?"f-col-h":"f-col-w",i=o?"f-col-w":"f-col-h",m=o?["s","n"]:["e","w"];e==null||e.contents.forEach((c,u)=>{var a;(a=c.appearance)!=null&&a.class&&(c.appearance.class=c.appearance.class.replaceAll(s,i)),c.resizable===!0&&c.resizeHandle&&m.findIndex(l=>l===c.resizeHandle)>-1&&u===0&&(c.resizeHandle=o?"e":"s"),o&&c.minHeight&&(c.minHeight=null),!o&&c.minWidth&&(c.minWidth=null)})}}}}}function rt(n,e){const t=new fe,{canMove:r,canDelete:o}=t.getTemplateRule(n,e),s=n.schema;function i(){return!1}function m(){return o}function c(){return r}function u(){return!0}function a(l){return new nt(l,e).getPropertyConfig(s)}return{canAccepts:i,checkCanDeleteComponent:m,checkCanMoveComponent:c,hideNestedPaddingInDesginerView:u,getPropsConfig:a}}const it=v.defineComponent({name:"FSplitterDesign",props:I,emits:[],setup(n,e){const t=v.ref(),r=v.inject("designer-host-service"),o=v.inject("design-item-context"),s=rt(o,r),i=pe(t,o,s);i.value.canNested=!1;const m=le(t),{horizontalResizeHandleStyle:c,verticalResizeHandleStyle:u,resizeOverlayStyle:a}=m;v.provide("splitter",{useResizeHandleComposition:m});const l=v.computed(()=>{const h={"f-splitter":!0};return A.getCustomClass(h,n==null?void 0:n.customClass)}),p=v.computed(()=>{const h={"flex-direction":n.direction==="row"?"row":"column"};return A.getCustomStyle(h,n==null?void 0:n.customStyle)});return v.onMounted(()=>{t.value.componentInstance=i}),e.expose(i.value),()=>v.createVNode("div",{class:l.value,ref:t,style:p.value},[e.slots.default&&e.slots.default(),v.createVNode("div",{class:"f-splitter-resize-overlay",style:a.value},null),v.createVNode("div",{class:"f-splitter-horizontal-resize-proxy",style:c.value},null),v.createVNode("div",{class:"f-splitter-vertical-resize-proxy",style:u.value},null)])}});function ot(){function n(e,t){var i;if(!e)return!1;const r=((i=e.targetContainer)==null?void 0:i.componentInstance)&&e.targetContainer.componentInstance.value;if(!r)return!1;const o=r.schema.type,s=t==null?void 0:t.formSchemaUtils.getComponentById(r.belongedComponentId);return!((e.componentCategory==="input"||e.componentType==="form-group")&&![N["response-layout-item"].type,N["response-form"].type,N.fieldset.type].includes(o)||(e.componentType===N.tabs.type||e.componentType===N.section.type)&&((s==null?void 0:s.componentType)!=="frame"||![N["content-container"].type,N["splitter-pane"].type,N["response-layout-item"].type].includes(o))||[N["query-solution"].type,N["filter-bar"].type].includes(e.componentType)||e.componentType===N.fieldset.type&&o!==N["response-form"].type)}return{basalDragulaRuleForContainer:n}}class st extends de{constructor(t,r){super(t,r);B(this,"parentSplitterDirectionIsRow",!0);B(this,"positionIndex",-1);B(this,"notifyService");B(this,"designItemContext",null);this.notifyService=new he.FNotifyService}getPropertyConfig(t,r,o=!0,s=0){return this.parentSplitterDirectionIsRow=o,this.designItemContext=r,this.positionIndex=s,this.propertyConfig.categories.basic=this.getBasicPropConfig(t),this.propertyConfig.categories.appearance=this.getAppearanceProperties(t),this.propertyConfig}getAppearanceProperties(t){const r=this,o=r.parentSplitterDirectionIsRow&&t.resizable===!0,s=!r.parentSplitterDirectionIsRow&&t.resizable===!0;return{description:"",title:"外观",properties:{class:{description:"组件的CSS样式",title:"class样式"},style:{description:"组件的内容样式",title:"style样式"},minWidth:{description:"面板最小宽度",title:"最小宽度(px)",type:"number",editor:{nullable:!0},visible:o},minHeight:{description:"面板最小高度",title:"最小高度(px)",type:"number",editor:{nullable:!0},visible:s}}}}getBehaviorProperties(t){const r=[{id:"e",name:"左侧"},{id:"w",name:"右侧"}],o=[{id:"n",name:"上方"},{id:"s",name:"下方"}],s=this;return{description:"",title:"行为",properties:{resizable:{description:"规则:两列布局只有一个元素启用拖拽,多列布局可以有多个元素启用拖拽。",title:"允许拖拽",type:"boolean",refreshPanelAfterChanged:!0},resizeHandle:{description:"指定拖拽条的位置",title:"指定拖拽条的位置",type:"string",visible:t.resizable===!0,defaultValue:t.resizeHandle||"",editor:{type:"combo-list",data:this.parentSplitterDirectionIsRow?r:o}}},setPropertyRelates(i,m){var c,u,a;if(i)switch(i&&i.propertyID){case"resizable":{i.propertyValue&&(((a=(u=(c=s.designItemContext)==null?void 0:c.parent)==null?void 0:u.schema)==null?void 0:a.contents)||[]).find(p=>p.id!==t.id&&t.resizable)&&s.notifyService.warning({message:"相邻元素已启用拖拽功能",position:"top-center"});break}}}}}}function at(n,e){const t=new fe,r=n.schema,{canAccept:o}=t.getTemplateRule(n,e);function s(u){return ot().basalDragulaRuleForContainer(u,e)?o:!1}function i(u){var h,f;const a=new st(u,e),l=(((h=n==null?void 0:n.parent)==null?void 0:h.schema.direction)||"row")==="row",p=(((f=n==null?void 0:n.parent)==null?void 0:f.schema.contents)||[]).findIndex(d=>r.id===(d==null?void 0:d.id));return p===0&&!r.resizeHandle&&r.resizable&&(r.resizeHandle=l?"e":"s"),a.getPropertyConfig(r,n,l,p)}function m(){return!1}function c(){return!1}return{canAccepts:s,getPropsConfig:i,checkCanMoveComponent:m,checkCanDeleteComponent:c}}const lt=v.defineComponent({name:"FSplitterPaneDesign",props:G,emits:[],setup(n,e){const t=v.ref(),r=v.inject("designer-host-service"),o=v.inject("design-item-context"),s=at(o,r),i=pe(t,o,s);i.value.styles="padding:0;box-shadow:none;",i.value.canNested=!1,i.value.canMove=!1,i.value.canDelete=!1,v.onMounted(()=>{t.value.componentInstance=i}),e.expose(i.value);const m=v.inject("splitter"),{useResizeHandleComposition:c}=m,u=ue(n,c),{actualHeight:a,actualWidth:l}=u,p=v.ref(n.position),h=v.computed(()=>{const S={"f-splitter-pane":!0,"f-splitter-pane-main":p.value==="center","has-resize-bar":n.resizable,"f-component-splitter-pane":!0,"drag-container":!0};return S["f-splitter-pane-"+p.value]=!0,A.getCustomClass(S,n==null?void 0:n.customClass)}),f=v.computed(()=>n.resizeHandle?n.resizeHandle.split(",").filter(S=>["e","n","s","w"].find(y=>y===S)):[]),d=v.computed(()=>{const S={};return(l.value&&p.value==="left"||p.value==="right"||f.value.find(y=>y==="e")||f.value.find(y=>y==="w"))&&(S.width=`${l.value}px`),(a.value&&p.value==="bottom"||p.value==="top"||f.value.find(y=>y==="s")||f.value.find(y=>y==="n"))&&(S.height=`${a.value}px`),A.getCustomStyle(S,n==null?void 0:n.customStyle)}),g=v.computed(()=>({"no-drag":!0,"f-splitter-resize-bar":!0,"f-splitter-resize-bar-e":p.value==="left","f-splitter-resize-bar-n":p.value==="bottom","f-splitter-resize-bar-s":p.value==="top","f-splitter-resize-bar-w":p.value==="right"}));function w(){return f.value.length>0?f.value.map(S=>v.createVNode("span",{class:"f-splitter-resize-bar f-splitter-resize-bar-"+S},null)):v.createVNode("span",{class:g.value},null)}return()=>v.createVNode("div",{ref:t,"data-dragref":`${o.schema.id}-container`,class:h.value,style:d.value},[e.slots.default&&e.slots.default(),n.resizable&&w()])}});U.install=n=>{n.component(U.name,U),n.component(X.name,X)},U.register=(n,e,t,r)=>{n.splitter=U,e.splitter=Y,n["splitter-pane"]=X,e["splitter-pane"]=ce},U.registerDesigner=(n,e,t)=>{n.splitter=it,e.splitter=Y,n["splitter-pane"]=lt,e["splitter-pane"]=ce},F.FSplitter=U,F.FSplitterPane=X,F.default=U,F.splitterProps=I,F.splitterPropsResolver=Y,Object.defineProperties(F,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});