@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
9 lines (8 loc) • 42.6 kB
JavaScript
(function(T,g){typeof exports=="object"&&typeof module<"u"?g(exports,require("vue"),require("../button-edit/index.umd.js"),require("lodash-es"),require("../property-panel/index.umd.js"),require("../tree-view/index.umd.js"),require("../message-box/index.umd.js"),require("../designer-canvas/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","../button-edit/index.umd.js","lodash-es","../property-panel/index.umd.js","../tree-view/index.umd.js","../message-box/index.umd.js","../designer-canvas/index.umd.js"],g):(T=typeof globalThis<"u"?globalThis:T||self,g(T["collection-property-editor"]={},T.Vue,T.buttonEdit,T.LodashES,T.propertyPanel,T.treeView,T.messageBox,T.designerCanvas))})(this,function(T,g,U,O,ie,se,_,D){"use strict";var Xe=Object.defineProperty;var Ye=(T,g,U)=>g in T?Xe(T,g,{enumerable:!0,configurable:!0,writable:!0,value:U}):T[g]=U;var M=(T,g,U)=>Ye(T,typeof g!="symbol"?g+"":g,U);function W(t,e){let n;function r(l){const{properties:p,title:y,ignore:c}=l,f=c&&Array.isArray(c),d=Object.keys(p).reduce((h,w)=>((!f||!c.find(V=>V===w))&&(h[w]=p[w].type==="object"&&p[w].properties?r(p[w]):O.cloneDeep(p[w].default)),h),{});if(y&&(!f||!c.find(h=>h==="id"))){const h=y.toLowerCase().replace(/-/g,"_");d.id=`${h}_${Math.random().toString().slice(2,6)}`}return d}function o(l){const{properties:p,title:y,required:c}=l;if(c&&Array.isArray(c)){const f=c.reduce((d,h)=>(d[h]=p[h].type==="object"&&p[h].properties?r(p[h]):O.cloneDeep(p[h].default),d),{});if(y&&c.find(d=>d==="id")){const d=y.toLowerCase().replace(/-/g,"_");f.id=`${d}_${Math.random().toString().slice(2,6)}`}return f}return{type:y}}function a(l,p={},y){const c=t[l];if(c){let f=o(c);const d=e[l];return f=d?d({getSchemaByType:a},f,p,y):f,n!=null&&n.appendIdentifyForNewControl&&n.appendIdentifyForNewControl(f),f}return null}function i(l,p){const y=r(p);return Object.keys(y).reduce((c,f)=>(Object.prototype.hasOwnProperty.call(l,f)&&(c[f]&&O.isPlainObject(c[f])&&O.isPlainObject(l[f]||!l[f])?Object.assign(c[f],l[f]||{}):c[f]=l[f]),c),y),y}function v(l,p){return Object.keys(l).filter(c=>l[c]!=null).reduce((c,f)=>{if(p.has(f)){const d=p.get(f);if(typeof d=="string")c[d]=l[f];else{const h=d(f,l[f],l);Object.assign(c,h)}}else c[f]=l[f];return c},{})}function s(l,p,y=new Map){const c=i(l,p);return v(c,y)}function u(l){var y;const p=l.type;if(p){const c=t[p];if(!c)return l;const f=i(l,c),d=((y=l.editor)==null?void 0:y.type)||"";if(d){const h=t[d],w=i(l.editor,h);f.editor=w}return f}return l}function m(l){n=l}return{getSchemaByType:a,resolveSchemaWithDefaultValue:u,resolveSchemaToProps:s,mappingSchemaToProps:v,setDesignerContext:m}}const H={},G={},{resolveSchemaWithDefaultValue:ae,resolveSchemaToProps:le,mappingSchemaToProps:ce}=W(H,G);function de(t={}){function e(u,m,l,p){if(typeof l=="number")return p[u].length===l;if(typeof l=="object"){const y=Object.keys(l)[0],c=l[y];if(y==="not")return Number(p[u].length)!==Number(c);if(y==="moreThan")return Number(p[u].length)>=Number(c);if(y==="lessThan")return Number(p[u].length)<=Number(c)}return!1}function n(u,m,l,p){return p[u]&&p[u].propertyValue&&String(p[u].propertyValue.value)===String(l)}const r=new Map([["length",e],["getProperty",n]]);Object.keys(t).reduce((u,m)=>(u.set(m,t[m]),u),r);function o(u,m){const l=u;return typeof m=="number"?[{target:l,operator:"length",param:null,value:Number(m)}]:typeof m=="boolean"?[{target:l,operator:"getProperty",param:u,value:!!m}]:typeof m=="object"?Object.keys(m).map(p=>{if(p==="length")return{target:l,operator:"length",param:null,value:m[p]};const y=p,c=m[p];return{target:l,operator:"getProperty",param:y,value:c}}):[]}function a(u){return Object.keys(u).reduce((l,p)=>{const y=o(p,u[p]);return l.push(...y),l},[])}function i(u,m){if(r.has(u.operator)){const l=r.get(u.operator);return l&&l(u.target,u.param,u.value,m)||!1}return!1}function v(u,m){return a(u).reduce((y,c)=>y&&i(c,m),!0)}function s(u,m){const l=Object.keys(u),p=l.includes("allOf"),y=l.includes("anyOf"),c=p||y,h=(c?u[c?p?"allOf":"anyOf":"allOf"]:[u]).map(V=>v(V,m));return p?!h.includes(!1):h.includes(!0)}return{parseValueSchema:s}}const ue={convertTo:(t,e,n,r)=>{t.appearance||(t.appearance={}),t.appearance[e]=n},convertFrom:(t,e,n)=>t.appearance?t.appearance[e]:t[e]},fe={convertFrom:(t,e,n)=>t.buttons&&t.buttons.length?`共 ${t.buttons.length} 项`:"无"},me={convertTo:(t,e,n,r)=>{t.editor&&(t.editor[e]=n)},convertFrom:(t,e,n)=>t.editor&&Object.prototype.hasOwnProperty.call(t.editor,e)?t.editor[e]:t[e]},pe={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:"标签页工具栏按钮"},"drawer-toolbar-item":{type:"drawer-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:"标签页工具栏"},"drawer-toolbar":{type:"drawer-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:"多语输入框"},image:{type:"image",name:"图像"},"discussion-editor":{type:"discussion-editor",name:"评论编辑区"},"discussion-list":{type:"discussion-list",name:"评论列表"},comment:{type:"comment",name:"评论区"},"rich-text-editor":{type:"rich-text-editor",name:"富文本",icon:"rich-text-box"},calendar:{type:"calendar",name:"日历",icon:"date-picker"},wizard:{type:"wizard",name:"向导",icon:"wizard"},"wizard-page":{type:"wizard-page",name:"向导页",icon:"wizard"},"wizard-page-detail":{type:"wizard-page-detail",name:"向导详情",icon:"wizard"},step:{type:"step",name:"步骤条",icon:"step"},"dynamic-form":{type:"dynamic-form",name:"动态表单"}},ge={convertFrom:(t,e,n)=>{var o;const r=t.editor&&t.editor[e]?t.editor[e]:t[e];return((o=pe[r])==null?void 0:o.name)||r}},ve={convertTo:(t,e,n,r)=>{t[e]=t[e]},convertFrom:(t,e,n)=>t.editor?n.getRealEditorType(t.editor.type):""},be={convertTo:(t,e,n,r)=>{(t.type==="data-grid-column"||t.type==="tree-grid-column")&&(t.formatter?t.formatter[e]=n:t.formatter={[e]:n})},convertFrom:(t,e,n)=>{if(t.formatter){if(e==="trueText")return t.formatter.trueText;if(e==="falseText")return t.formatter.falseText;if(e==="prefix")return t.formatter.prefix;if(e==="suffix")return t.formatter.suffix;if(e==="precision")return t.formatter.precision;if(e==="decimal")return t.formatter.decimal;if(e==="thousand")return t.formatter.thousand;if(e==="dateFormat")return t.formatter.dateFormat||"yyyy-MM-dd";if(e==="customFormat")return t.formatter.customFormat;if(e==="type")return t.formatter.type||"none";if(e==="customFormat")return t.formmater.customFormat}return"none"}},he={convertTo:(t,e,n,r)=>{t.command?t.command[e]=n:t.command={[e]:n},e==="enableType"&&n==="default"&&(t.command.enable=!0,t.command.commands=[{text:"编辑",type:"primary",command:"edit"},{text:"删除",type:"danger",command:"remove"}]),e==="enableType"&&n==="custom"&&(t.command.enable=!0,t.command.commands=[{value:"add",text:"增加",type:"link"},{value:"edit",text:"编辑",type:"danger"},{value:"remove",text:"删除",type:"remove"}]),e==="enableType"&&n==="unable"&&(t.command.enable=!1)},convertFrom:(t,e,n)=>{var r,o;if(t.command){if(e==="enableType"){const a=(o=(r=t.command)==null?void 0:r.commands)==null?void 0:o.find(i=>i.command==="edit"&&i.type==="primary");return t.command.enable?a?"default":"custom":"unable"}if(e==="commands")return t.command.enableType==="custom"?t.command.commands:[];if(e==="formatter")return t.command.formatter;if(e==="count")return t.command.count;if(e==="columnWidth")return t.command.columnWidth||200}return""}},ye={convertTo:(t,e,n,r)=>{t.column?t.column[e]=n:t.column={[e]:n},e==="fitColumns"&&n&&(t.column.fitMode||(t.column.fitMode="average"))},convertFrom:(t,e,n)=>{if(t.column){if(e==="fitColumns")return t.column.fitColumns;if(e==="fitMode")return t.column.fitMode}return""}},Ce={convertTo:(t,e,n,r)=>{t.summary?t.summary[e]=n:t.summary={[e]:n},e==="enable"&&n&&(t.summary?t.summary.groupFields||(t.summary.groupFields=[]):t.summary={enable:n,groupFields:[]})},convertFrom:(t,e,n)=>{var r,o;return e==="customSummaryStyle"?t.summary.customSummaryStyle:e==="position"?((r=t.summary)==null?void 0:r[e])||"bottom":e==="customRender"?((o=t.summary)==null?void 0:o[e])||"":t.summary&&e==="enable"?t.summary.enable:t.type==="data-grid-column"?t.enableSummary===void 0?!1:t.enableSummary:""}},xe={convertTo:(t,e,n,r)=>{t.group?t.group[e]=n:t.group={[e]:n},e==="enable"&&n&&(t.group?t.group.groupFields||(t.group.groupFields=[]):t.group={enable:n,groupFields:[],showSummary:!1,customRender:""})},convertFrom:(t,e,n)=>{if(t.group){if(e==="enable")return t.group.enable;if(e==="showSummary")return t.group.showSummary;if(e==="customRender")return t.group.customRender;if(e==="groupFields")return t.group.groupFields}}},we={convertFrom:(t,e)=>t.binding?t.binding.path:"",convertTo:(t,e,n)=>{if(n&&n.length>0){const r=n[0];t.binding||(t.binding={}),t.binding.type="Form",t.binding.path=r.bindingField,t.binding.field=r.id,t.binding.fullPath=r.path,t.path=r.bindingPath}}},Se={convertTo:(t,e,n,r)=>{t.pagination||(t.pagination={}),e==="sizeLimits"?t.pagination.sizeLimits=n.split(","):t.pagination[e]=n},convertFrom:(t,e,n)=>t.pagination?e==="sizeLimits"?t.pagination.sizeLimits.join(","):t.pagination[e]:t[e]},Ee={convertTo:(t,e,n,r)=>{t.rowNumber||(t.rowNumber={}),t.rowNumber[e]=n},convertFrom:(t,e,n)=>t.rowNumber?t.rowNumber[e]:t[e]},Pe={convertTo:(t,e,n,r)=>{t.selection||(t.selection={}),t.selection[e]=n},convertFrom:(t,e,n)=>{var r,o;return e==="showCheckbox"?(r=t.selection)!=null&&r.multiSelect?!0:(o=t.selection)==null?void 0:o.showCheckbox:t.selection?t.selection[e]:t[e]}},Te={convertFrom:(t,e,n)=>t[e]&&t[e].length?`共 ${t[e].length} 项`:""},Fe={convertFrom:(t,e)=>t[e]||"",convertTo:(t,e,n)=>{t[e]=n}},Me={convertTo:(t,e,n,r)=>{t.size||(t.size={}),t.size[e]=n},convertFrom:(t,e,n)=>t.size?t.size[e]:t[e]},Ve={convertFrom:(t,e,n)=>{var r,o;return(r=t.formatter)!=null&&r.data&&e==="formatterEnumData"&&!t.formatterEnumData?(o=t.formatter)==null?void 0:o.data:t.formatterEnumData}},Ie={convertTo:(t,e,n,r)=>{t.sort||(t.sort={}),t.sort[e]=n},convertFrom:(t,e,n)=>{var r,o;if(e==="mode")return((r=t.sort)==null?void 0:r.mode)||"client";if(e==="multiSort")return!!((o=t.sort)!=null&&o.multiSort)}},Ne={convertTo:(t,e,n,r)=>{t.filter||(t.filter={}),t.filter[e]=n},convertFrom:(t,e,n)=>{var r;if(e==="mode")return((r=t.filter)==null?void 0:r.mode)||"client"}},ke={convertTo:(t,e,n,r)=>{t.rowOption?t.rowOption[e]=n:t.rowOption={[e]:n}},convertFrom:(t,e,n)=>{if(t.rowOption){if(e==="customRowStyle")return t.rowOption.customRowStyle;if(e==="customCellStyle")return t.rowOption.customCellStyle;if(e==="height")return t.rowOption.height}return""}},Oe={convertTo:(t,e,n,r)=>{(t.type==="data-grid-column"||t.type==="tree-grid-column")&&(t[e]=n,e==="columnTemplateType"&&n==="hyperlink"&&(t.onClickLinkCommand?t.columnTemplate=`
<span class="f-pretend-link f-cursor-pointer"
="(ctx)=>viewModel.current.${t.onClickLinkCommand||""}({id: rowData.id,context: ctx})">
{{rowData.${t.field}}}
</span>`:t.columnTemplate=`
<span class="f-pretend-link f-cursor-pointer">
{{rowData.${t.field}}}
</span>`),e==="columnTemplateType"&&n==="default"&&(t.columnTemplate=""),e==="columnTemplateType"&&n==="custom"&&(t.columnTemplate=""))},convertFrom:(t,e,n)=>e==="columnTemplate"?t.columnTemplate:e==="columnTemplateType"?t.columnTemplateType?t.columnTemplateType||"default":t.columnTemplate&&!t.onClickLinkCommand?"custom":t.columnTemplate&&t.onClickLinkCommand?"hyperlink":"default":""};function J(t,e,n){const r=new Map([["/converter/appearance.converter",ue],["/converter/buttons.converter",fe],["/converter/property-editor.converter",me],["/converter/items-count.converter",Te],["/converter/type.converter",ge],["/converter/change-editor.converter",ve],["/converter/change-formatter.converter",be],["/converter/column-command.converter",he],["/converter/column-option.converter",ye],["/converter/summary.converter",Ce],["/converter/group.converter",xe],["/converter/form-group-label.converter",Fe],["/converter/field-selector.converter",we],["/converter/pagination.converter",Se],["/converter/row-number.converter",Ee],["/converter/grid-selection.converter",Pe],["/converter/size.converter",Me],["/converter/change-formatter-enum.converter",Ve],["/converter/grid-sort.converter",Ie],["/converter/grid-filter.converter",Ne],["/converter/row-option.converter",ke],["/converter/change-formatter-type.converter",Oe]]),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}],["multiLanguage",{type:"language-textbox"}]]),a=de();function i(c,f){return()=>a.parseValueSchema(c,f)}function v(c,f,d){return c.includes("visible")&&f.visible!==void 0?typeof f.visible=="boolean"?()=>!!f.visible:f.visible===void 0?!0:i(f.visible,d):()=>!0}function s(c,f,d){return c.includes("readonly")&&f.readonly!==void 0?typeof f.readonly=="boolean"?()=>!!f.readonly:i(f.readonly,d):()=>!1}function u(c,f){const d=c.$converter||f;return typeof d=="string"&&d&&r.has(d)?r.get(d)||null:d||null}function m(c,f,d,h,w,V="",N=""){return Object.keys(c).map(S=>{const E=g.ref(1),F=S,x=c[S],C=Object.keys(x),j=x.title,k=x.type,b=o.get(k)||{type:"input-group",enableClear:!1},P=x.editor?Object.assign({},b,x.editor):Object.assign({},b),$=v(C,x,f),z=s(C,x,f);P.readonly=P.readonly===void 0?z():P.readonly;const q=x.type==="cascade"?m(x.properties,f,d,h,w,V,N):[],L=!0;let R=u(x,N);const _e=g.computed({get(){if(E.value){if(["class","style"].find(Qe=>Qe===F)&&!R&&(R=r.get("/converter/appearance.converter")||null),R&&R.convertFrom)return R.convertFrom(d,S,w,V);const B=d[S];return Object.prototype.hasOwnProperty.call(x,"defaultValue")&&(B===void 0||typeof B=="string"&&B==="")?x.type==="boolean"?x.defaultValue:x.defaultValue||"":B}return null},set(B){E.value+=1,R&&R.convertTo?(R.convertTo(h,S,B,w,V),R.convertTo(d,S,B,w,V)):(h[S]=B,d[S]=B)}}),{refreshPanelAfterChanged:We,description:He,isExpand:Ge,parentPropertyID:Je}=x,oe={propertyID:F,propertyName:j,propertyType:k,propertyValue:_e,editor:P,visible:$,readonly:z,cascadeConfig:q,hideCascadeTitle:L,refreshPanelAfterChanged:We,description:He,isExpand:Ge,parentPropertyID:Je};return f[F]=oe,oe})}function l(c,f,d={}){const h={},w=t[c];return w&&w.categories?Object.keys(w.categories).map(N=>{const I=w.categories[N],S=I==null?void 0:I.title,E=m(I.properties||{},h,{},d,f);return{categoryId:N,categoryName:S,properties:E}}):[]}function p(c,f,d,h,w=""){const V=f.$ref.schema,N=f.$ref.converter,I=d[V],S=I.type,E=n(I),F={},x=t[S];if(x&&x.categories){const C=x.categories[c],j=C==null?void 0:C.title;N&&Object.keys(C.properties).forEach(P=>{C.properties[P].$converter=N});const k=(C==null?void 0:C.properties)||{},b=m(k,F,E,I,h,w);return{categoryId:c,categoryName:j,properties:b}}return{categoryId:c,categoryName:"",properties:[]}}function y(c,f,d,h,w){const V=c.type,N=n(c),I={};let S=w||t[V];if(!(S&&Object.keys(S).length>0)&&d&&d.getPropConfig&&(S=d.getPropConfig(h)),S&&S.categories){const F=[];return Object.keys(S.categories).map(x=>{const C=S.categories[x];if(C.$ref){F.push(p(x,C,c,f,h));return}const j=C==null?void 0:C.title,k=C==null?void 0:C.tabId,b=C==null?void 0:C.tabName,P=C==null?void 0:C.hide,$=C==null?void 0:C.hideTitle,z=m(C.properties||{},I,N,c,f,h,C.$converter),{setPropertyRelates:q}=C,L=C==null?void 0:C.parentPropertyID;F.push({categoryId:x,categoryName:j,tabId:k,tabName:b,hide:P,properties:z,hideTitle:$,setPropertyRelates:q,parentPropertyID:L})}),F}return[]}return{getPropertyConfigBySchema:y,getPropertyConfigByType:l,propertyConverterMap:r}}const Q={},X={};J(Q,X,ae);const Y={},Z={},{resolveSchemaWithDefaultValue:Re}=W(Y,Z),K={},ee={};J(K,ee,Re);function Be(t,e,n=new Map,r=(i,v,s,u)=>v,o={},a=i=>i){return H[e.title]=e,G[e.title]=r,Q[e.title]=o,X[e.title]=a,Y[e.title]=e,Z[e.title]=r,K[e.title]=o,ee[e.title]=a,(i={},v=!0)=>{if(!v)return ce(i,n);const s=le(i,e,n),u=Object.keys(t).reduce((m,l)=>(m[l]=t[l].default,m),{});return Object.assign(u,s)}}const je={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/collection-property-editor.schema.json",title:"collection-property-editor",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for collection-property-editor",type:"string"},type:{description:"The type string of collection-property-editor",type:"string",default:"collection-property-editor"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},modelValue:{type:"array",default:[]},idField:{type:"string",default:"id"},textField:{type:"string",default:""},defaultComponentSchema:{type:"object",default:{}},modalTitle:{type:"string",default:"编辑器"},visibleCondition:{type:"object",default:null},allowCollapse:{type:"boolean",default:!0},enableClear:{type:"boolean",default:!1}},required:["type"],ignore:["id"]},te={modelValue:{type:Array,default:[]},idField:{type:String,default:"id"},textField:{type:String,default:""},defaultComponentSchema:{type:Object,default:{}},isToolbarHidden:{type:Boolean,default:!1},useFormCommand:{type:Object,default:{}},useFormSchema:{type:Object,default:{}},visibleCondition:{type:Function,default:null},allowCollapse:{type:Boolean,default:!0},enableClear:{type:Boolean,default:!1},designerHostService:{type:Object,default:null}},ne={...te,modalTitle:{type:String,default:"编辑器"}},Ue=Be(ne,je),re=g.defineComponent({name:"CollectionPropertyContainer",props:te,emits:["valueChange","selectionChange"],setup(t,e){const n=g.ref(),r=g.ref(),{idField:o,textField:a,defaultComponentSchema:i,isToolbarHidden:v}=t,s=g.ref(t.modelValue||[]),u=g.ref(),m=g.ref("collection-property-editor");g.provide("useFormCommand",t.useFormCommand),g.provide("useFormSchema",t.useFormSchema),g.provide("designerHostService",t.designerHostService);const l=g.ref(),p=g.computed(()=>!s.value||s.value.length===0),y=[{field:a,title:"名称",width:340,resizable:!0,dataType:"string"}],c=g.computed(()=>s.value.filter(b=>t.visibleCondition?t.visibleCondition(b):!0));function f(){const b=O.cloneDeep(i),P=Math.random().toString().slice(2,6);return b[o]=b[o]+"_"+P,b[a]=b[a]+"_"+P,b}function d(b){l.value=b,e.emit("selectionChange",{selectedData:l,propertyConfig:u,propertyPanelRef:r.value}),r.value.updatePropertyConfig(u.value,l.value,!0)}function h(b){if(b>=s.value.length&&(b=s.value.length-1),s.value.length>0){const P=s.value[b];n.value.selectItemById(P[o]),d(P)}}function w(){const b=f();s.value.push(b),n.value.updateDataSource(c.value),n.value.selectItemById(b[o]),d(b)}function V(){const b=s.value&&s.value.length>0?s.value[0]:null;b&&(n.value.selectItemById(b[o]),d(b))}function N(){const b=s.value.indexOf(l.value);s.value.splice(b,1),n.value.updateDataSource(c.value),h(b)}function I(){if(!l.value)return;const b=s.value.indexOf(l.value);b!==s.value.length-1&&(s.value[b]=s.value[b+1],s.value[b+1]=l.value,n.value.updateDataSource(c.value))}function S(){_.FMessageBoxService.question("您确定要清空所有按钮吗?","",()=>{s.value=[],n.value.updateDataSource([]),e.emit("clear")},()=>{})}function E(){if(!l.value)return;const b=s.value.indexOf(l.value);b!==0&&(s.value[b]=s.value[b-1],s.value[b-1]=l.value,n.value.updateDataSource(c.value))}function F(b){d(b[0])}function x(b){const{changeObject:P,designerItem:$}=b;n.value.updateDataSource(c.value)}g.onMounted(()=>{g.nextTick(()=>{V()})});const C=g.computed(()=>!l.value||p.value),j=g.computed(()=>C.value||s.value.length<=1?!1:s.value.findIndex(P=>P.id===l.value.id)>0),k=g.computed(()=>C.value||s.value.length<=1?!1:s.value.findIndex(P=>P.id===l.value.id)<s.value.length-1);return e.expose({propertyPanelRef:r}),()=>g.createVNode("div",{class:"f-utils-fill-flex-column h-100 pt-2 pl-2 border-bottom"},[g.createVNode("div",{hidden:v,class:"border-bottom pb-2"},[g.createVNode("button",{class:"btn btn-primary mr-2",onClick:w},[g.createTextVNode("新增")]),g.createVNode("button",{class:"btn btn-secondary mr-2",onClick:N,disabled:C.value},[g.createTextVNode("删除")]),g.createVNode("button",{class:"btn btn-secondary mr-2",onClick:E,disabled:!j.value},[g.createTextVNode("上移")]),g.createVNode("button",{class:"btn btn-secondary mr-2",onClick:I,disabled:!k.value},[g.createTextVNode("下移")]),t.enableClear&&g.createVNode("button",{class:"btn btn-secondary mr-2 d-flex align-items-center",style:"float:right",onClick:S,disabled:p.value},[g.createVNode("i",{class:"f-icon f-icon-close mr-1"},null),g.createTextVNode("清空")])]),g.createVNode("div",{class:"f-utils-fill-flex-row"},[g.createVNode("div",{class:"f-utils-fill f-utils-overflow-auto"},[g.createVNode(se.FTreeView,{ref:n,columns:y,data:c.value,rowOption:{disabledField:"undefined"},fit:"true",idField:o,columnOption:{fitColumns:!0},onSelectionChange:F},null)]),g.createVNode("div",{hidden:p.value,style:"display: flex;"},[g.createVNode(ie.FPropertyPanel,{propertyConfig:u.value,ref:r,propertyName:m.value,enableSearch:!1,allowCollapse:t.allowCollapse,onPropertyChanged:x},null)])])])}}),A=g.defineComponent({name:"FCollectionPropertyEditor",props:ne,emits:["valueChange","selectionChange"],setup(t,e){const n=g.ref(),r=g.inject("useFormCommand"),o=g.inject("useFormSchema"),a=g.ref(O.cloneDeep(t.modelValue)||[]),i=g.ref();g.watch(()=>t.modelValue,d=>{a.value=O.cloneDeep(d)||[]});const v=g.computed(()=>{var d;return(d=i.value)==null?void 0:d.getModal()}),s=g.computed(()=>{let d=0;return a.value&&(t.visibleCondition?d=a.value.filter(t.visibleCondition).length:d=a.value.length),`共 ${d||0} 项`});function u(d){Object.keys(d).forEach(h=>{h.indexOf("__fv")>-1&&delete d[h]})}function m(d){d&&d.forEach(h=>{u(h)})}function l(){return m(a.value),e.emit("valueChange",a.value),!0}function p(){return!0}function y({selectedData:d,propertyConfig:h}){u(d.value),e.emit("selectionChange",{selectedData:d,propertyConfig:h,modalRef:v.value,buttonPropertyPanelInstance:n.value.propertyPanelRef})}function c(){a.value=[]}const f={title:t.modalTitle||"编辑器",width:650,height:700,minWidth:380,minHeight:400,fitContent:!1,showMaxButton:!0,resizeable:!0,draggable:!0,enableEsc:!0,buttons:[{name:"cancel",text:"取消",class:"btn btn-secondary",handle:p},{name:"accept",text:"确定",class:"btn btn-primary",handle:l}],closedCallback:(d,h)=>{if((d==null?void 0:d.target.name)==="cancel"||h==="icon"||h==="esc")return a.value=O.cloneDeep(t.modelValue),e.emit("valueChange",a.value),!0;!d&&h==="button"&&l()}};return()=>g.createVNode(U.FButtonEdit,{modelValue:s.value,"onUpdate:modelValue":d=>s.value=d,editable:!1,enableTitle:!0,inputType:"text",buttonBehavior:"Modal",modalOptions:f,ref:i},{default:()=>[g.createVNode("div",{class:"h-100 d-flex flex-column"},[g.createVNode(re,{ref:n,modelValue:a.value,"onUpdate:modelValue":d=>a.value=d,idField:t.idField,textField:t.textField,defaultComponentSchema:t.defaultComponentSchema,onSelectionChange:y,useFormCommand:r,useFormSchema:o,allowCollapse:t.allowCollapse,visibleCondition:t.visibleCondition,enableClear:t.enableClear,onClear:c},null)])]})}});function De(t){const{formSchemaUtils:e,formStateMachineUtils:n}=t;function r(s,u=""){return{path:u+s.code,field:s.id,fullPath:s.code}}function o(s,u=""){const m=e.getViewModelById(s);return m?m.states.map(l=>r(l,u)):[]}function a(s){const u=e.getRootViewModelId(),m=o(s);if(s===u)return m;const l=o(u,"root-component.");return[...m,...l]}function i(s){return s.binding&&s.binding.path||s.id||""}function v(){return n&&n.getRenderStates()||[]}return{getVariables:a,getControlName:i,getStateMachines:v}}class $e{constructor(e){M(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'"}]);M(this,"expressionNames",{compute:"计算表达式",dependency:"依赖表达式",validate:"验证表达式",dataPicking:"帮助前表达式",visible:"可见表达式",readonly:"只读表达式",required:"必填表达式"});M(this,"getExpressionConverter",(e,n)=>({convertFrom:(r,o,a,i)=>{const v=a.getExpressionRuleValue(e,n||o);return v&&v.value||""},convertTo:(r,o,a,i,v)=>{var s;if(o==="dataPicking"&&(a!=null&&a.target)){const u=`${a.target}_dataPicking`;((s=a.rules)==null?void 0:s.some(l=>l.id===u&&l.value))?r.dictPickingExpressionId=u:delete r.dictPickingExpressionId}i.updateExpression(a)}}));this.formSchemaService=e}getExpressionRule(e,n){const r=this.getExpressionData();if(!r)return"";const o=r.find(i=>i.target===e);if(!o)return"";const a=o.rules.find(i=>i.type===n);return a||""}getContextFormVariables(){const{module:e}=this.formSchemaService.getFormSchema();if(!e.viewmodels||e.viewmodels.length===0)return[];const n=this.formSchemaService.getRootViewModelId(),r=this.formSchemaService.getViewModelById(n);if(!r||!r.states||r.states.length===0)return[];const o=[];return r.states.filter(a=>a.category==="remote").forEach(a=>{o.push({key:a.code,name:a.name,description:a.name,category:a.category})}),o}createTreeNode(e,n,r="label"){return{id:e.id,name:e.name,bindingPath:e[r],parents:n,type:"field"}}buildEntityFieldsTreeData(e=null,n){const r=[];return e==null||e.forEach(o=>{var v;const a=this.createTreeNode(o,n);let i=[];(v=o.type)!=null&&v.fields&&(i=this.buildEntityFieldsTreeData(o.type.fields,[...n,o.label])),r.push({data:a,children:i,expanded:!0})}),r}buildChildEntityTreeData(e=null,n){const r=[];return e==null||e.forEach(o=>{var s,u;const a=this.createTreeNode(o,n);a.type="entity";const i=this.buildEntityFieldsTreeData((s=o.type)==null?void 0:s.fields,[...n,o.label]),v=this.buildChildEntityTreeData((u=o.type)==null?void 0:u.entities,[...n,o.label]);v!=null&&v.length&&(i==null||i.push(...v)),r.push({data:a,children:i||[],expanded:!0})}),r}getEntitiesTreeData(){const e=this.formSchemaService.getSchemaEntities();if(!(e!=null&&e.length))return[];const n=e[0];if(!(n!=null&&n.type))return[];const r=this.buildEntityFieldsTreeData(n.type.fields,[n.code]),o=this.buildChildEntityTreeData(n.type.entities,[n.code]);return o!=null&&o.length&&(r==null||r.push(...o)),{entityCode:n.code,fields:[{data:this.createTreeNode(n,[],"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,n,r){const o=r==="Field"?e.binding.field:e.id,a=this.getExpressionRule(o,n),i=this.getEntitiesAndVariables(),v={message:["validate","required","dataPicking"].includes(n)&&a?a.message:"",...i};return a.messageType!=null&&(v.messageType=a.messageType),v}buildRule(e,n,r,o){const{expression:a,message:i,messageType:v}=n,s={id:`${e}_${r}`,type:r,value:a};return(r==="validate"||r==="dataPicking"||r==="required")&&(s.message=i),r==="dataPicking"&&(s.messageType=v),r==="validate"&&o&&(s.elementId=o),s}getExpressionData(){const{expressions:e}=this.formSchemaService.getFormSchema().module;return e||[]}updateExpression(e,n,r,o){const a=n==="Field"?e.binding.field:e.id,i=this.buildRule(a,r,o,e.type==="form-group"?e.id:"");let s=this.getExpressionData().find(m=>m.targetType===n&&m.target===a);const u=m=>m.value.trim()==="";if(s){const m=s.rules.find(l=>l.id===i.id);if(m)u(i)?s.rules=s.rules.filter(l=>l.id!==i.id):(Object.assign(m,i),o==="validate"&&e.type==="form-group"&&(m.elementId=e.id));else{if(u(i))return null;s.rules=s.rules||[],s.rules.push(i)}}else{if(u(i))return null;s={target:`${a}`,rules:[i],targetType:n}}return s}getExpressionEditorOptions(e,n,r,o){return r.reduce((a,i)=>{var s,u;const v=n==="Field"?(s=e==null?void 0:e.binding)==null?void 0:s.field:e.id;return a[i]={hide:n==="Field"?!!((u=e==null?void 0:e.binding)!=null&&u.field):!1,description:"",title:this.expressionNames[i],type:"string",$converter:this.getExpressionConverter(v),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,n),onSubmitModal:m=>{const l=this.updateExpression(e,n,m,i);if(o){const p=this.buildRule(v,m,i);o(p)}return l}}},a},{})}getExpressionInfo(e,n,r){const o=n==="Field"?e.binding.field:e.id,a=this.getExpressionRule(o,r),i={value:a&&a.value,targetId:o,targetType:n,expressionType:r};return a&&a.message&&(i.message=a.message),i}getExpressionConfig(e,n,r=["compute","dependency","validate"],o){return{description:"表达式",title:"表达式",hide:!e.binding,properties:{...this.getExpressionEditorOptions(e,n,r,o)}}}getExpressionOptions(e,n,r){const o=this.getExpressionInfo(e,n,r);return{dialogTitle:`${this.expressionNames[r]||"表达式"}编辑器`,singleExpand:!1,showMessage:r==="required",beforeOpen:()=>this.onBeforeOpenExpression(e,r,n),expressionInfo:o}}}class ze{constructor(e,n){M(this,"componentId");M(this,"viewModelId");M(this,"eventsEditorUtils");M(this,"formSchemaUtils");M(this,"formMetadataConverter");M(this,"designViewModelUtils");M(this,"designViewModelField");M(this,"controlCreatorUtils");M(this,"designerHostService");M(this,"designerContext");M(this,"modalService",null);M(this,"formRule",null);M(this,"schemaService",null);M(this,"metadataService",null);M(this,"propertyConfig",{type:"object",categories:{}});M(this,"expressionProperty");var r;this.componentId=e,this.designerHostService=n,this.eventsEditorUtils=n.eventsEditorUtils,this.formSchemaUtils=n.formSchemaUtils,this.formMetadataConverter=n.formMetadataConverter,this.viewModelId=((r=this.formSchemaUtils)==null?void 0:r.getViewModelIdByComponentId(e))||"",this.designViewModelUtils=n.designViewModelUtils,this.controlCreatorUtils=n.controlCreatorUtils,this.metadataService=n.metadataService,this.schemaService=n.schemaService,this.designerContext=n.designerContext,this.modalService=n.modalService,this.expressionProperty=new $e(this.formSchemaUtils)}getFormDesignerInstance(){var e,n;return(n=(e=this.designerContext)==null?void 0:e.instances)==null?void 0:n.formDesigner.value}getTableInfo(){var e;return(e=this.schemaService)==null?void 0:e.getTableInfoByViewModelId(this.viewModelId)}setDesignViewModelField(e){var r;const n=e.binding&&e.binding.type==="Form"&&e.binding.field;if(n){if(!this.designViewModelField){const o=this.designViewModelUtils.getDgViewModel(this.viewModelId);this.designViewModelField=o.fields.find(a=>a.id===n)}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:D.DgControl[e.type]&&D.DgControl[e.type].name}]}}}}}getAppearanceConfig(e=null,n={},r){const o={title:"外观",description:"Appearance"},a={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 n)a[i]=Object.assign(a[i]||{},n[i]);return{...o,properties:{...a},setPropertyRelates(i,v){if(i){switch(i&&i.propertyID){case"class":case"style":{D.canvasChanged.value++;break}}r&&r(i,e,v)}}}}getPropertyEditorParams(e,n=[],r="visible",o={},a={},i=""){const{getVariables:v,getControlName:s,getStateMachines:u}=De(this.designerHostService),m=this.getRealTargetType(e),l=n&&n.length>0?n:["Const","Variable","StateMachine","Expression"],p={type:"property-editor",propertyTypes:l};return l.map(y=>{switch(y){case"Const":Object.assign(p,{constType:"enum",constEnums:[{id:!0,name:"是"},{id:!1,name:"否"}]},o);break;case"Expression":p.expressionConfig=this.getExpressionOptions(e,m,i||r);break;case"StateMachine":p.stateMachines=u();break;case"Variable":Object.assign(p,{controlName:s(e),newVariablePrefix:"is",newVariableType:"Boolean",variables:v(this.viewModelId),parentComponentId:this.componentId==="root-component"?"":"root-component",onBeforeOpenVariables:c=>{c.value=v(this.viewModelId)}},a),this.designerContext.designerMode==="PC_RTC"&&(p.newVariablePrefix="ext_"+p.newVariablePrefix);break}}),p}getVisibleProperty(e,n=""){var a;let r=["Const","Variable","StateMachine","Expression"];return n==="gridFieldEditor"?r=["Const","Expression"]:n==="form-group"&&!((a=e.binding)!=null&&a.field)&&(r=["Const","Variable","StateMachine"]),{visible:{title:"是否可见",type:"boolean",description:"运行时组件是否可见",editor:this.getPropertyEditorParams(e,r,"visible")}}}getBehaviorConfig(e,n="",r={},o){const a={title:"行为",description:""},i=this.getVisibleProperty(e,n);for(const s in r)i[s]=Object.assign(i[s]||{},r[s]);const v=this;return{...a,properties:{...i},setPropertyRelates(s,u){if(s){switch(s.propertyID){case"disabled":case"readonly":case"visible":v.afterMutilEditorChanged(e,s);break}o&&o(s,u)}}}}afterMutilEditorChanged(e,n){this.addNewVariableToViewModel(n,this.viewModelId),this.updateExpressionValue(n,e),this.clearExpression(n,e)}updateElementByParentContainer(e,n){const r=n&&n.parent&&n.parent.schema;if(!r)return;const o=r.contents.findIndex(i=>i.id===e),a=O.cloneDeep(r.contents[o]);r.contents.splice(o,1),r.contents.splice(o,0,a),D.refreshCanvas()}addNewVariableToViewModel(e,n){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",isRtcVariable:this.designerContext.designerMode==="PC_RTC"?!0:void 0};delete r.newVariableType,delete r.isNewVariable,this.formSchemaUtils.getVariableByCode(i.code)||this.formSchemaUtils.getViewModelById("root-viewmodel").states.push(i)}getExpressions(){let e=[];return this.formRule?(this.formRule.expressions=this.formRule.expressions||[],e=this.formRule.expressions||[]):e=this.formSchemaUtils.getExpressions(),e}updateExpressionValue(e,n){const r=e.propertyValue;if(!((r&&r.type)==="Expression"&&r.expressionInfo))return;const{expressionId:i,expressionInfo:v}=r,{targetId:s,targetType:u,expressionType:m,value:l,message:p}=v,y=this.getExpressions();let c=y.find(d=>d.target===s);c||(c={target:s,rules:[],targetType:u},y.push(c));const f=c.rules.find(d=>d.type===m);if(f)f.value=l,f.message=p,(m==="minDate"||m==="maxDate"||m==="defaultTime")&&(f.elementId=n.id);else{const d={id:i,type:m,value:l,message:p,elementId:n.id};c.rules.push(d)}delete r.expressionInfo}clearExpression(e,n){const r=e.propertyValue;if(r&&r.type==="Expression")return;const a=e.propertyID,i=this.getExpressions(),v=n.binding?n.binding.field:n.id,s=i.find(u=>u.target===v);!s||!s.rules||(s.rules=s.rules.filter(u=>u.type!==a))}getExpressionOptions(e,n,r){return this.expressionProperty.getExpressionOptions(e,n,r)}getRealTargetType(e){return["response-toolbar-item","tab-toolbar-item","section-toolbar-item","drawer-toolbar-item"].indexOf(e.type)>-1?"Button":e.binding&&e.binding.field?"Field":"Container"}createBaseEventProperty(e){const n={};return n[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)}}},n}}class Ae extends ze{constructor(e,n,r=!0){super(e,n),this.isRealButton=r}getPropertyConfig(e,n=!1,r=!0,o=null){this.propertyConfig.categories.basic=this.getBasicPropConfig(e),this.propertyConfig.categories.basic.properties.text={title:"文本",type:"string",description:"",refreshPanelAfterChanged:r},this.propertyConfig.categories.basic.setPropertyRelates=i=>{if(i)switch(i&&i.propertyID){case"text":{i.needRefreshControlTree=!0;break}}},this.getAppearanceProperties(e,n);const a=this.getPropertyEditorParams(e,["Const","Variable","StateMachine","Expression","Custom"],"disabled");return this.propertyConfig.categories.behavior=this.getBehaviorConfig(e,"",{disabled:{title:"禁用",type:"boolean",description:"按钮禁用状态",refreshPanelAfterChanged:!0,editor:a}}),this.getEventPropConfig(e,o),this.propertyConfig}getAppearanceProperties(e,n=!1){this.propertyConfig.categories.appearance={title:"外观",description:"Appearance",properties:{class:{title:"class样式",type:"string",description:"",$converter:"/converter/appearance.converter",parentPropertyID:"appearance",visible:!n},icon:{title:"图标",type:"string",description:""}}}}getEventPropConfig(e,n=null){const r=[{label:"onClick",name:"点击事件"}],o=this,a=o.eventsEditorUtils.formProperties(e,o.viewModelId,r);let i={};this.isRealButton?i=o.createBaseEventProperty(a):i[this.viewModelId]={type:"events-editor",editor:{initialData:a}},this.propertyConfig.categories.eventsEditor={title:"事件",hideTitle:!0,properties:i,refreshPanelAfterChanged:!0,tabId:"commands",tabName:"交互",setPropertyRelates(v,s){const u=v.propertyValue;if(delete e[o.viewModelId],u){u.setPropertyRelates=this.setPropertyRelates;const m=()=>{o.eventsEditorUtils.saveRelatedParameters(e,o.viewModelId,u.events,u)};o.isRealButton?m():u.isAddControllerMethod?(u.controlInfo={type:e.type,name:e.text},_.FMessageBoxService.question("确定关闭当前编辑器并跳转到代码视图吗?","",()=>{n==null||n.close(),m()},()=>{})):m()}}}}}function qe(t,e,n){const{modalService:r,formSchemaUtils:o,eventsEditorUtils:a,dialogCodeView:i,useFormCommand:v}=t,{componentId:s,modalPropertyData:u,viewModelId:m,onSubmitHandle:l,onCancelHandle:p,defaultClass:y}=e,c=g.ref(e.buttons),f={id:"button",type:"button",text:"按钮",appearance:{class:y||"btn btn-secondary"},visible:!0,disabled:!1,onClick:""},d=new Ae(s,t,!1),h=g.ref(),w=O.cloneDeep(e.buttons||[]);function V(){c.value=[]}function N(){if(l)return typeof l=="function"&&l(c.value);{const E=o.getExternalComponents().find(F=>F.id===u.id);return E&&(E.buttons=c.value),!0}}function I({selectedData:E,propertyConfig:F,propertyPanelRef:x}){F.value=d.getPropertyConfig(E.value,!1,!1),F.value.categories.behavior.properties.disabled.refreshPanelAfterChanged=!1,F.value.categories.eventsEditor.setPropertyRelates=(C,j)=>{const k=C.propertyValue;if(delete E.value[m],k){const b=()=>{a.saveRelatedParameters(E.value,m,k.events,k)};k.isAddControllerMethod&&(k.controlInfo={type:E.value.type,name:E.value.text},t.dialogCodeView.closeCallback=()=>{x==null||x.reloadPropertyPanel()}),b()}},n&&n(F.value)}function S(E){const F=r==null?void 0:r.open({fitContent:!1,width:800,height:600,title:"自定义按钮",showMaxButton:!0,showButtons:!0,draggable:!0,resizeable:!0,render:()=>g.createVNode(re,{ref:h,modelValue:c.value,"onUpdate:modelValue":x=>c.value=x,designerHostService:t,idField:"id",textField:"text",defaultComponentSchema:f,onSelectionChange:I,useFormCommand:v,useFormSchema:o,allowCollapse:!1,enableClear:!0,onClear:V},null),closedCallback:(x,C)=>{i.openCodeEditor=!1,E&&E()},buttons:[{name:"cancel",text:"取消",class:"btn btn-secondary",handle:x=>(i.openCodeEditor=!1,p&&p(w),!0)},{name:"accept",text:"确定",class:"btn btn-primary",handle:x=>{N()&&(F.close(),i.openCodeEditor=!1)}}]});i.openCodeEditor=!0}return{show:S}}const Le={install(t){t.component(A.name,A)},register(t,e,n,r){t["collection-property-editor"]=A,e["collection-property-editor"]=Ue}};T.default=Le,T.useButtonItemsDesigner=qe,Object.defineProperties(T,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});