UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

2 lines (1 loc) 24.3 kB
(function(h,p){typeof exports=="object"&&typeof module<"u"?p(exports,require("vue"),require("lodash-es"),require("../designer-canvas/index.umd.js"),require("../property-panel/index.umd.js"),require("../dynamic-form/index.umd.js"),require("../dynamic-resolver/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es","../designer-canvas/index.umd.js","../property-panel/index.umd.js","../dynamic-form/index.umd.js","../dynamic-resolver/index.umd.js"],p):(h=typeof globalThis<"u"?globalThis:h||self,p(h.fieldset={},h.Vue,h.LodashES,h.designerCanvas,h.propertyPanel,h.dynamicForm,h.dynamicResolver))})(this,function(h,p,P,N,R,U,L){"use strict";var ge=Object.defineProperty;var he=(h,p,P)=>p in h?ge(h,p,{enumerable:!0,configurable:!0,writable:!0,value:P}):h[p]=P;var V=(h,p,P)=>he(h,typeof p!="symbol"?p+"":p,P);const z={},J={};function O(u){const{properties:e,title:t,ignore:n}=u,s=n&&Array.isArray(n),o=Object.keys(e).reduce((i,l)=>((!s||!n.find(r=>r===l))&&(i[l]=e[l].type==="object"&&e[l].properties?O(e[l]):P.cloneDeep(e[l].default)),i),{});if(t&&(!s||!n.find(i=>i==="id"))){const i=t.toLowerCase().replace(/-/g,"_");o.id=`${i}_${Math.random().toString().slice(2,6)}`}return o}function Q(u,e){const t=O(e);return Object.keys(t).reduce((n,s)=>(Object.prototype.hasOwnProperty.call(u,s)&&(n[s]&&P.isPlainObject(n[s])&&P.isPlainObject(u[s]||!u[s])?Object.assign(n[s],u[s]||{}):n[s]=u[s]),n),t),t}function j(u,e){return Object.keys(u).filter(n=>u[n]!=null).reduce((n,s)=>{if(e.has(s)){const o=e.get(s);if(typeof o=="string")n[o]=u[s];else{const i=o(s,u[s],u);Object.assign(n,i)}}else n[s]=u[s];return n},{})}function W(u,e,t=new Map){const n=Q(u,e);return j(n,t)}function X(u={}){function e(a,c,d,m){if(typeof d=="number")return m[a].length===d;if(typeof d=="object"){const y=Object.keys(d)[0],g=d[y];if(y==="not")return Number(m[a].length)!==Number(g);if(y==="moreThan")return Number(m[a].length)>=Number(g);if(y==="lessThan")return Number(m[a].length)<=Number(g)}return!1}function t(a,c,d,m){return m[a]&&m[a].propertyValue&&String(m[a].propertyValue.value)===String(d)}const n=new Map([["length",e],["getProperty",t]]);Object.keys(u).reduce((a,c)=>(a.set(c,u[c]),a),n);function s(a,c){const d=a;return typeof c=="number"?[{target:d,operator:"length",param:null,value:Number(c)}]:typeof c=="boolean"?[{target:d,operator:"getProperty",param:a,value:!!c}]:typeof c=="object"?Object.keys(c).map(m=>{if(m==="length")return{target:d,operator:"length",param:null,value:c[m]};const y=m,g=c[m];return{target:d,operator:"getProperty",param:y,value:g}}):[]}function o(a){return Object.keys(a).reduce((d,m)=>{const y=s(m,a[m]);return d.push(...y),d},[])}function i(a,c){if(n.has(a.operator)){const d=n.get(a.operator);return d&&d(a.target,a.param,a.value,c)||!1}return!1}function l(a,c){return o(a).reduce((y,g)=>y&&i(g,c),!0)}function r(a,c){const d=Object.keys(a),m=d.includes("allOf"),y=d.includes("anyOf"),g=m||y,f=(g?a[g?m?"allOf":"anyOf":"allOf"]:[a]).map(I=>l(I,c));return m?!f.includes(!1):f.includes(!0)}return{parseValueSchema:r}}const Y={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:"列表导航"},"filter-bar":{type:"filter-bar",name:"筛选条"}},Z={},H={};X();function K(u,e,t=new Map,n=(i,l,r,a)=>l,s={},o=i=>i){return z[e.title]=e,J[e.title]=n,Z[e.title]=s,H[e.title]=o,(i={},l=!0)=>{if(!l)return j(i,t);const r=W(i,e,t),a=Object.keys(u).reduce((c,d)=>(c[d]=u[d].default,c),{});return Object.assign(a,r)}}function ee(u,e){return{customClass:e.class,customStyle:e.style}}const te=new Map([["appearance",ee]]),ne={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/fieldset.schema.json",title:"fieldset",description:"A Farris Container Component",type:"object",properties:{id:{description:"The unique identifier for a fieldset",type:"string"},type:{description:"The type string of fieldset component",type:"string",default:"fieldset"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},title:{description:"The title for a fieldset",type:"string"},contents:{description:"",type:"array",default:[]}},required:["id","type","contents"]};function se(u,e,t){return Object.assign(e,{appearance:{class:"col-12"},title:"分组标题"}),e}const F={customClass:{type:String,default:""},customStyle:{type:String,default:""},title:{type:String,default:""}},A=Object.assign({},F,{componentId:{type:String,default:""}}),T=K(F,ne,te,se),S=p.defineComponent({name:"FFieldset",props:F,emits:[],setup(u,e){const t=p.ref(!0);function n(l,r){l&&r&&r.split(" ").reduce((c,d)=>(c[d]=!0,c),l)}const s=p.computed(()=>{const l={"f-section-formgroup":!0,"f-state-collapse":!t.value};return n(l,u.customClass),l}),o=p.computed(()=>({btn:!0,"f-btn-mx":!0,"f-btn-collapse-expand":!0,"f-state-expand":t.value}));function i(){t.value=!t.value}return()=>p.createVNode("fieldset",{class:s.value,style:u.customStyle},[p.createVNode("legend",{class:"f-section-formgroup-legend"},[p.createVNode("div",{class:"f-header"},[p.createVNode("div",{class:"f-title",onClick:i},[u.title]),p.createVNode("div",{class:"f-toolbar",onClick:i},[p.createVNode("button",{class:o.value},null)])])]),p.createVNode("div",{class:"f-section-formgroup-inputs"},[e.slots.default&&e.slots.default()])])}}),ie=p.ref(0);function oe(){ie.value++}const re=p.ref(0);function ae(u){const{formSchemaUtils:e,formStateMachineUtils:t}=u;function n(r,a=""){return{path:a+r.code,field:r.id,fullPath:r.code}}function s(r,a=""){return e.getViewModelById(r).states.map(d=>n(d,a))}function o(r){const a=e.getRootViewModelId(),c=s(r);if(r===a)return c;const d=s(a,"root-component.");return[...c,...d]}function i(r){return r.binding&&r.binding.path||r.id||""}function l(){return t&&t.getRenderStates()||[]}return{getVariables:o,getControlName:i,getStateMachines:l}}class le{constructor(e){V(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'"}]);V(this,"expressionNames",{compute:"计算表达式",dependency:"依赖表达式",validate:"验证表达式",dataPicking:"帮助前表达式",visible:"可见表达式",readonly:"只读表达式",required:"必填表达式"});V(this,"getExpressionConverter",(e,t)=>({convertFrom:(n,s,o,i)=>{const l=o.getExpressionRuleValue(e,t||s);return l&&l.value||""},convertTo:(n,s,o,i,l)=>{var r;if(s==="dataPicking"&&(o!=null&&o.target)){const a=`${o.target}_dataPicking`;((r=o.rules)==null?void 0:r.some(d=>d.id===a&&d.value))?n.dictPickingExpressionId=a:delete n.dictPickingExpressionId}i.updateExpression(o)}}));this.formSchemaService=e}getExpressionRule(e,t){const n=this.formSchemaService.getExpressions();if(!n)return"";const s=n.find(i=>i.target===e);if(!s)return"";const o=s.rules.find(i=>i.type===t);return o||""}getContextFormVariables(){const{module:e}=this.formSchemaService.getFormSchema();if(!e.viewmodels||e.viewmodels.length===0)return[];const t=this.formSchemaService.getRootViewModelId(),n=this.formSchemaService.getViewModelById(t);if(!n||!n.states||n.states.length===0)return[];const s=[];return n.states.forEach(o=>{s.push({key:o.code,name:o.name,description:o.name,category:o.category})}),s}createTreeNode(e,t,n="label"){return{id:e.id,name:e.name,bindingPath:e[n],parents:t}}buildEntityFieldsTreeData(e=null,t){const n=[];return e==null||e.forEach(s=>{var l;const o=this.createTreeNode(s,t);let i=[];(l=s.type)!=null&&l.fields&&(i=this.buildEntityFieldsTreeData(s.type.fields,[...t,s.label])),n.push({data:o,children:i,expanded:!0})}),n}buildChildEntityTreeData(e=null,t){const n=[];return e==null||e.forEach(s=>{var r,a;const o=this.createTreeNode(s,t),i=this.buildEntityFieldsTreeData((r=s.type)==null?void 0:r.fields,[...t,s.label]),l=this.buildChildEntityTreeData((a=s.type)==null?void 0:a.entities,[...t,s.label]);l!=null&&l.length&&(i==null||i.push(...l)),n.push({data:o,children:i||[],expanded:!0})}),n}getEntitiesTreeData(){const e=this.formSchemaService.getSchemaEntities();if(!(e!=null&&e.length))return[];const t=e[0];if(!(t!=null&&t.type))return[];const n=this.buildEntityFieldsTreeData(t.type.fields,[t.code]),s=this.buildChildEntityTreeData(t.type.entities,[t.code]);return s!=null&&s.length&&(n==null||n.push(...s)),{entityCode:t.code,fields:[{data:this.createTreeNode(t,[],"code"),children:n||[]}]}}getEntitiesAndVariables(){return{entities:this.getEntitiesTreeData(),variables:{session:{name:"系统变量",items:this.sessionVariables,visible:!1},forms:{name:"表单变量",items:this.getContextFormVariables(),visible:!0}}}}onBeforeOpenExpression(e,t,n){const s=n==="Field"?e.binding.field:e.id,o=this.getExpressionRule(s,t),i=this.getEntitiesAndVariables(),l={message:["validate","required","dataPicking"].includes(t)&&o?o.message:"",...i};return o.messageType!=null&&(l.messageType=o.messageType),l}buildRule(e,t,n,s){const{expression:o,message:i,messageType:l}=t,r={id:`${e}_${n}`,type:n,value:o};return(n==="validate"||n==="dataPicking"||n==="required")&&(r.message=i),n==="dataPicking"&&(r.messageType=l),n==="validate"&&s&&(r.elementId=s),r}getExpressionData(){const{expressions:e}=this.formSchemaService.getFormSchema().module;return e||[]}updateExpression(e,t,n,s){const o=t==="Field"?e.binding.field:e.id,i=this.buildRule(o,n,s,e.type==="form-group"?e.id:"");let r=this.getExpressionData().find(c=>c.targetType===t&&c.target===o);const a=c=>c.value.trim()==="";if(r){const c=r.rules.find(d=>d.id===i.id);if(c)a(i)?r.rules=r.rules.filter(d=>d.id!==i.id):(Object.assign(c,i),s==="validate"&&e.type==="form-group"&&(c.elementId=e.id));else{if(a(i))return null;r.rules=r.rules||[],r.rules.push(i)}}else{if(a(i))return null;r={target:`${o}`,rules:[i],targetType:t}}return r}getExpressionEditorOptions(e,t,n,s){return n.reduce((o,i)=>{var r,a;const l=t==="Field"?(r=e==null?void 0:e.binding)==null?void 0:r.field:e.id;return o[i]={hide:t==="Field"?!!((a=e==null?void 0:e.binding)!=null&&a.field):!1,description:"",title:this.expressionNames[i],type:"string",$converter:this.getExpressionConverter(l),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:c=>{const d=this.updateExpression(e,t,c,i);if(s){const m=this.buildRule(l,c,i);s(m)}return d}}},o},{})}getExpressionInfo(e,t,n){const s=t==="Field"?e.binding.field:e.id,o=this.getExpressionRule(s,n),i={value:o&&o.value,targetId:s,targetType:t,expressionType:n};return o&&o.message&&(i.message=o.message),i}getExpressionConfig(e,t,n=["compute","dependency","validate"],s){return{description:"表达式",title:"表达式",properties:{...this.getExpressionEditorOptions(e,t,n,s)}}}getExpressionOptions(e,t,n){const s=this.getExpressionInfo(e,t,n);return{dialogTitle:`${this.expressionNames[n]}编辑器`,singleExpand:!1,showMessage:n==="required",beforeOpen:()=>this.onBeforeOpenExpression(e,n,t),expressionInfo:s}}}class ce{constructor(e,t){V(this,"componentId");V(this,"viewModelId");V(this,"eventsEditorUtils");V(this,"formSchemaUtils");V(this,"formMetadataConverter");V(this,"designViewModelUtils");V(this,"designViewModelField");V(this,"controlCreatorUtils");V(this,"designerHostService");V(this,"schemaService",null);V(this,"metadataService",null);V(this,"propertyConfig",{type:"object",categories:{}});var n;this.componentId=e,this.designerHostService=t,this.eventsEditorUtils=t.eventsEditorUtils,this.formSchemaUtils=t.formSchemaUtils,this.formMetadataConverter=t.formMetadataConverter,this.viewModelId=((n=this.formSchemaUtils)==null?void 0:n.getViewModelIdByComponentId(e))||"",this.designViewModelUtils=t.designViewModelUtils,this.controlCreatorUtils=t.controlCreatorUtils,this.metadataService=t.metadataService,this.schemaService=t.schemaService}getTableInfo(){var e;return(e=this.schemaService)==null?void 0:e.getTableInfoByViewModelId(this.viewModelId)}setDesignViewModelField(e){var n;const t=e.binding&&e.binding.type==="Form"&&e.binding.field;if(t){if(!this.designViewModelField){const s=this.designViewModelUtils.getDgViewModel(this.viewModelId);this.designViewModelField=s.fields.find(o=>o.id===t)}e.updateOn=(n=this.designViewModelField)==null?void 0:n.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:Y[e.type].name}]}}}}}getAppearanceConfig(e=null,t={},n){const s={title:"外观",description:"Appearance"},o={class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter"},style:{title:"style样式",type:"string",description:"组件的样式",$converter:"/converter/appearance.converter"}};for(const i in t)o[i]=Object.assign(o[i]||{},t[i]);return{...s,properties:{...o},setPropertyRelates(i,l){if(i){switch(i&&i.propertyID){case"class":case"style":{re.value++;break}}n&&n(i,e,l)}}}}getPropertyEditorParams(e,t=[],n="visible",s={},o={}){const{getVariables:i,getControlName:l,getStateMachines:r}=ae(this.designerHostService),a=this.getRealTargetType(e),c=t&&t.length>0?t:["Const","Variable","StateMachine","Expression"],d={type:"property-editor",propertyTypes:c};return c.map(m=>{switch(m){case"Const":Object.assign(d,{constType:"enum",constEnums:[{id:!0,name:"是"},{id:!1,name:"否"}]},s);break;case"Expression":d.expressionConfig=this.getExpressionOptions(e,a,n);break;case"StateMachine":d.stateMachines=r();break;case"Variable":Object.assign(d,{controlName:l(e),newVariablePrefix:"is",newVariableType:"Boolean",variables:i(this.viewModelId),onBeforeOpenVariables:y=>{y.value=i(this.viewModelId)}},o);break}}),d}getVisibleProperty(e,t=""){return{visible:{title:"是否可见",type:"boolean",description:"运行时组件是否可见",editor:this.getPropertyEditorParams(e,t==="gridFieldEditor"?["Const","Expression"]:["Const","Variable","StateMachine","Expression"],"visible")}}}getBehaviorConfig(e,t="",n={},s){const o={title:"行为",description:""},i=this.getVisibleProperty(e,t);for(const r in n)i[r]=Object.assign(i[r]||{},n[r]);const l=this;return{...o,properties:{...i},setPropertyRelates(r,a){if(r){switch(r.propertyID){case"disabled":case"readonly":case"visible":l.afterMutilEditorChanged(e,r);break}s&&s(r,a)}}}}afterMutilEditorChanged(e,t){this.addNewVariableToViewModel(t,this.viewModelId),this.updateExpressionValue(t),this.clearExpression(t,e)}updateElementByParentContainer(e,t){const n=t&&t.parent&&t.parent.schema;if(!n)return;const s=n.contents.findIndex(i=>i.id===e),o=P.cloneDeep(n.contents[s]);n.contents.splice(s,1),n.contents.splice(s,0,o),oe()}addNewVariableToViewModel(e,t){const n=e.propertyValue;if(!(n&&typeof n=="object")||!(n.type==="Variable"&&n.isNewVariable))return;const i={id:n.field,category:"locale",code:n.fullPath,name:n.fullPath,type:n.newVariableType||"String"};delete n.newVariableType,delete n.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:o,expressionInfo:i}=t,{targetId:l,targetType:r,expressionType:a,value:c,message:d}=i,m=this.formSchemaUtils.getModule();m.expressions??(m.expressions=[]);const{expressions:y}=m;let g=y.find(k=>k.target===l);g||(g={target:l,rules:[],targetType:r},y.push(g));const v=g.rules.find(k=>k.type===a);if(v)v.value=c,v.message=d;else{const k={id:o,type:a,value:c,message:d};g.rules.push(k)}delete t.expressionInfo}clearExpression(e,t){const n=e.propertyValue;if(n&&n.type==="Expression")return;const o=e.propertyID,i=this.formSchemaUtils.getExpressions(),l=t.binding?t.binding.field:t.id,r=i.find(a=>a.target===l);!r||!r.rules||(r.rules=r.rules.filter(a=>a.type!==o))}getExpressionOptions(e,t,n){return new le(this.formSchemaUtils).getExpressionOptions(e,t,n)}getRealTargetType(e){return["response-toolbar-item","tab-toolbar-item","section-toolbar-item"].indexOf(e.type)>-1?"Button":e.binding&&e.binding.field?"Field":"Container"}}class de extends ce{constructor(e,t){super(e,t)}getPropertyConfig(e){return this.propertyConfig.categories.basic=this.getBasicPropConfig(e),this.propertyConfig.categories.appearance=this.getAppearanceProperties(e),this.propertyConfig}getAppearanceProperties(e){const t=this;return this.getAppearanceConfig(e,{title:{title:"标题",type:"string",description:"标题"}},(s,o,i)=>{switch(s&&s.propertyID){case"title":{s.needRefreshControlTree=!0,t.changeGroupNameInViewModel(o.id,s.propertyValue);break}}})}changeGroupNameInViewModel(e,t){var o;const n=this.designViewModelUtils.getDgViewModel(this.viewModelId);n&&n.changeGroupName(e,t);const s=this.formSchemaUtils.getViewModelById(this.viewModelId);(o=s==null?void 0:s.fields)!=null&&o.length&&s.fields.forEach(i=>{i.groupId===e&&(i.groupName=t)})}}function ue(u,e){const t=new N.UseTemplateDragAndDropRules,{canAccept:n}=t.getTemplateRule(u,e),s=u.schema;function o(){return"f-section-formgroup"}function i(){return!0}function l(){return!0}function r(){return!1}function a(f){const{sourceElement:b}=f,{componentInstance:I}=b,C=e==null?void 0:e.formSchemaUtils;if(!C)return!0;const M=C.getComponentById(I.value.belongedComponentId),w=C.getViewModelById(M.viewModel),x=C.getComponentById(u.componentInstance.value.belongedComponentId),E=C.getViewModelById(x.viewModel);return w!=null&&w.id&&(E!=null&&E.id)&&w.id!==E.id?w.bindTo===E.bindTo:!0}function c(f){const{bindingTargetId:b}=f;if(!e)return;const{formSchemaUtils:I,schemaService:C}=e,M=I.getComponentById(u.componentInstance.value.belongedComponentId),w=C.getFieldByIDAndVMID(b,M.viewModel);return!!(w!=null&&w.schemaField)}function d(f){return f.sourceType==="control"&&f.componentCategory==="input"?!0:f.sourceType==="move"&&f.componentType==="form-group"?a(f):f.sourceType==="field"&&f.componentCategory==="input"?c(f):!1}function m(f){return!(!N.useDragulaCommonRule().basalDragulaRuleForContainer(f,e)||!n||!d(f))}function y(f){return new de(f,e).getPropertyConfig(s)}function g(f){var E,B,$,q,D;if(!e)return;const{formSchemaUtils:b,designViewModelUtils:I}=e,C=f.componentInstance,M=C.value.parent,w=b.getComponentById(C.value.belongedComponentId),x=I.getDgViewModel(w.viewModel);switch(M&&((E=M.schema)==null?void 0:E.type)){case N.DgControl.fieldset.type:case N.DgControl["response-form"].type:case N.DgControl["response-layout-item"].type:{const G={groupId:s.id,groupName:s.title},me=($=(B=C.value.schema)==null?void 0:B.binding)==null?void 0:$.type,_=(D=(q=C.value.schema)==null?void 0:q.binding)==null?void 0:D.field;switch(me){case R.FormBindingType.Form:{x.changeField(_,G);break}case R.FormBindingType.Variable:{b.modifyViewModelFieldById(w.viewModel,_,G,!0);break}}break}}}function v(f){if(!f||!f.componentInstance||!e)return;const b=f.componentInstance,I=b.value.schema;if(!I.binding||!I.binding.field)return;g(f);const{formSchemaUtils:C}=e,M=C.getViewModelIdByComponentId(b.value.belongedComponentId),w=C.getViewModelIdByComponentId(u.componentInstance.value.belongedComponentId);M!==w&&U.useDesignerRules(u,e).moveInputBetweenComponent(f)}function k(f,b){var I,C,M;if(f.componentCategory==="input"){const{label:w}=f;let x;(I=f.bindingSourceContext)!=null&&I.entityFieldNode?x=(e==null?void 0:e.controlCreatorUtils).setFormFieldProperty((C=f.bindingSourceContext)==null?void 0:C.entityFieldNode,b==null?void 0:b.type):(x=L.getSchemaByType("form-group"),x.editor=b,x.label=w);const E=U.useDesignerRules(u,e);return E.resolveFormGroupAppearance(x),E.syncFieldToViewModel(f,(M=x.editor)==null?void 0:M.type,s.id,s.title),x}return b}return{canAccepts:m,hideNestedPaddingInDesginerView:r,getPropsConfig:y,checkCanDeleteComponent:i,checkCanMoveComponent:l,onAcceptMovedChildElement:v,onResolveNewComponentSchema:k,getDesignerClass:o}}const pe=p.defineComponent({name:"FFieldsetDesign",props:A,emits:[],setup(u,e){const t=p.ref(),n=p.ref(),s=p.inject("design-item-context"),o=p.inject("designer-host-service"),i=ue(s,o),l=N.useDesignerComponent(n,s,i);e.expose(l.value),p.onMounted(()=>{n.value.componentInstance=l});const r=p.ref(!0);function a(g,v){g&&v&&v.split(" ").reduce((f,b)=>(f[b]=!0,f),g)}const c=p.computed(()=>{const g={"f-section-formgroup":!0,"f-state-collapse":!r.value};return a(g,u.customClass),g}),d=p.computed(()=>({display:r.value?"flex":"none","flex-wrap":"wrap"})),m=p.computed(()=>({btn:!0,"f-btn-mx":!0,"f-btn-collapse-expand":!0,"f-state-expand":r.value}));function y(){r.value=!r.value}return()=>p.createVNode("fieldset",{class:c.value,ref:t},[p.createVNode("legend",{class:"f-section-formgroup-legend"},[p.createVNode("div",{class:"f-header"},[p.createVNode("div",{class:"f-title",onClick:y},[u.title]),p.createVNode("div",{class:"f-toolbar",onClick:y},[p.createVNode("button",{class:m.value},null)])])]),p.createVNode("div",{"data-dragref":`${s.schema.id}-container`,ref:n,class:"f-section-formgroup-inputs drag-container",style:d.value},[e.slots.default&&e.slots.default()])])}}),fe={install(u){u.component(S.name,S)},register(u,e,t,n){u.fieldset=S,e.fieldset=T},registerDesigner(u,e,t){u.fieldset=pe,e.fieldset=T}};h.Fieldset=S,h.default=fe,h.fieldsetDesignerProps=A,h.fieldsetProps=F,h.propsResolver=T,Object.defineProperties(h,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});