UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

1 lines 303 kB
(function(Z,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("vue"),require("lodash-es"),require("../common/index.umd.js"),require("../dynamic-resolver/index.umd.js"),require("../designer-canvas/index.umd.js"),require("../property-panel/index.umd.js"),require("../accordion/index.umd.js"),require("../avatar/index.umd.js"),require("../../designer/button-edit/index.umd.js"),require("../button-group/index.umd.js"),require("../calendar/index.umd.js"),require("../capsule/index.umd.js"),require("../../designer/checkbox/index.umd.js"),require("../../designer/checkbox-group/index.umd.js"),require("../combo-list/index.umd.js"),require("../combo-tree/index.umd.js"),require("../component/index.umd.js"),require("../color-picker/index.umd.js"),require("../content-container/index.umd.js"),require("../date-picker/index.umd.js"),require("../../designer/data-grid/index.umd.js"),require("../dropdown/index.umd.js"),require("../dynamic-form/index.umd.js"),require("../events-editor/index.umd.js"),require("../filter-bar/index.umd.js"),require("../field-selector/index.umd.js"),require("../binding-selector/index.umd.js"),require("../image-cropper/index.umd.js"),require("../../designer/input-group/index.umd.js"),require("../layout/index.umd.js"),require("../list-nav/index.umd.js"),require("../list-view/index.umd.js"),require("../lookup/index.umd.js"),require("../mapping-editor/index.umd.js"),require("../nav/index.umd.js"),require("../number-range/index.umd.js"),require("../number-spinner/index.umd.js"),require("../order/index.umd.js"),require("../page-header/index.umd.js"),require("../page-footer/index.umd.js"),require("../pagination/index.umd.js"),require("../progress/index.umd.js"),require("../query-solution/index.umd.js"),require("../../designer/radio-group/index.umd.js"),require("../rate/index.umd.js"),require("../response-toolbar/index.umd.js"),require("../response-layout/index.umd.js"),require("../response-layout-editor/index.umd.js"),require("../search-box/index.umd.js"),require("../section/index.umd.js"),require("../smoke-detector/index.umd.js"),require("../splitter/index.umd.js"),require("../step/index.umd.js"),require("../switch/index.umd.js"),require("../tabs/index.umd.js"),require("../tags/index.umd.js"),require("../text/index.umd.js"),require("../time-picker/index.umd.js"),require("../transfer/index.umd.js"),require("../tree-view/index.umd.js"),require("../uploader/index.umd.js"),require("../verify-detail/index.umd.js"),require("../video/index.umd.js"),require("../textarea/index.umd.js"),require("../schema-selector/index.umd.js"),require("../tree-grid/index.umd.js"),require("../event-parameter/index.umd.js"),require("../filter-condition-editor/index.umd.js"),require("../fieldset/index.umd.js"),require("../sort-condition-editor/index.umd.js"),require("../menu-lookup/index.umd.js"),require("../drawer/index.umd.js"),require("../json-editor/index.umd.js"),require("../property-editor/index.umd.js"),require("../expression-editor/index.umd.js"),require("../code-editor/index.umd.js"),require("../html-template/index.umd.js"),require("../external-container/index.umd.js"),require("@vueuse/core"),require("../data-view/index.umd.js"),require("../modal/index.umd.js"),require("../condition/index.umd.js"),require("../checkbox/index.umd.js"),require("../tooltip/index.umd.js"),require("../button/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","../designer-canvas/index.umd.js","../property-panel/index.umd.js","../accordion/index.umd.js","../avatar/index.umd.js","../../designer/button-edit/index.umd.js","../button-group/index.umd.js","../calendar/index.umd.js","../capsule/index.umd.js","../../designer/checkbox/index.umd.js","../../designer/checkbox-group/index.umd.js","../combo-list/index.umd.js","../combo-tree/index.umd.js","../component/index.umd.js","../color-picker/index.umd.js","../content-container/index.umd.js","../date-picker/index.umd.js","../../designer/data-grid/index.umd.js","../dropdown/index.umd.js","../dynamic-form/index.umd.js","../events-editor/index.umd.js","../filter-bar/index.umd.js","../field-selector/index.umd.js","../binding-selector/index.umd.js","../image-cropper/index.umd.js","../../designer/input-group/index.umd.js","../layout/index.umd.js","../list-nav/index.umd.js","../list-view/index.umd.js","../lookup/index.umd.js","../mapping-editor/index.umd.js","../nav/index.umd.js","../number-range/index.umd.js","../number-spinner/index.umd.js","../order/index.umd.js","../page-header/index.umd.js","../page-footer/index.umd.js","../pagination/index.umd.js","../progress/index.umd.js","../query-solution/index.umd.js","../../designer/radio-group/index.umd.js","../rate/index.umd.js","../response-toolbar/index.umd.js","../response-layout/index.umd.js","../response-layout-editor/index.umd.js","../search-box/index.umd.js","../section/index.umd.js","../smoke-detector/index.umd.js","../splitter/index.umd.js","../step/index.umd.js","../switch/index.umd.js","../tabs/index.umd.js","../tags/index.umd.js","../text/index.umd.js","../time-picker/index.umd.js","../transfer/index.umd.js","../tree-view/index.umd.js","../uploader/index.umd.js","../verify-detail/index.umd.js","../video/index.umd.js","../textarea/index.umd.js","../schema-selector/index.umd.js","../tree-grid/index.umd.js","../event-parameter/index.umd.js","../filter-condition-editor/index.umd.js","../fieldset/index.umd.js","../sort-condition-editor/index.umd.js","../menu-lookup/index.umd.js","../drawer/index.umd.js","../json-editor/index.umd.js","../property-editor/index.umd.js","../expression-editor/index.umd.js","../code-editor/index.umd.js","../html-template/index.umd.js","../external-container/index.umd.js","@vueuse/core","../data-view/index.umd.js","../modal/index.umd.js","../condition/index.umd.js","../checkbox/index.umd.js","../tooltip/index.umd.js","../button/index.umd.js","../notify/index.umd.js"],a):(Z=typeof globalThis<"u"?globalThis:Z||self,a(Z["dynamic-form"]={},Z.Vue,Z.LodashES,Z.common,Z.dynamicResolver,Z.designerCanvas,Z.propertyPanel,Z.FAccordion,Z.FAvatar,Z.FButtonEdit,Z.FButtonGroup,Z.FCalendar,Z.FCapsule,Z.FCheckbox,Z.FCheckboxGroup,Z.FComboList,Z.FComboTree,Z.FComponent,Z.FColorPicker,Z.FContentContainer,Z.FDatePicker,Z.FDataGrid,Z.FDropdown,Z.FDynamicForm,Z.FEventsEditor,Z.FFilterBar,Z.FFieldSelector,Z.FBindingSelector,Z.FImageCropper,Z.FInputGroup,Z.FLayout,Z.FListNav,Z.FListView,Z.FLookup,Z.FMappingEditor,Z.FNav,Z.FNumberRange,Z.FNumberSpinner,Z.FOrder,Z.FPageHeader,Z.FPageFooter,Z.FPagination,Z.FProgress,Z.FQuerySolution,Z.FRadioGroup,Z.FRate,Z.FResponseToolbar,Z.FResponseLayout,Z.FResponseLayoutEditorSetting,Z.FSearchBox,Z.FSection,Z.FSmokeDetector,Z.FSplitter,Z.FStep,Z.FSwitch,Z.FTabs,Z.FTags,Z.FText,Z.FTimePicker,Z.FTransfer,Z.FTreeview,Z.FUploader,Z.FVerifyDetail,Z.FVideo,Z.FTextArea,Z.FSchemaSelector,Z.FTreeGrid$1,Z.FEventParameter,Z.FFilterConditionEditor,Z.FFieldset,Z.FSortConditionEditor,Z.FMenuLookup,Z.FDrawer,Z.FJsonEditor,Z.FPropertyEditor,Z.FExpressionEditor,Z.FCodeEditor,Z.FHtmlTemplate,null,Z.VueUseCore,Z.dataView,null,null,Z.checkbox,Z.FTooltip,Z.FButton))})(this,function(Z,a,Ee,ke,tn,Tt,yt,qo,Ao,Ho,Go,zo,Yo,_n,Tn,Ft,Uo,Xo,Qo,Zo,Ko,Jo,er,nn,tr,nr,or,rr,ar,ir,sr,lr,cr,ur,dr,fr,pr,mr,hr,gr,yr,vr,br,wr,Cr,xr,_r,Tr,Fr,Sr,kr,Vr,Mr,Nr,Ir,Er,Or,Dr,Pr,Br,jr,Rr,Lr,$r,Wr,qr,Ar,Hr,Gr,zr,Yr,Ur,Xr,Qr,Zr,Kr,Jr,ea,Ac,Fn,Fe,Hc,Gc,ta,Sn,na){"use strict";var Wc=Object.defineProperty;var qc=(Z,a,Ee)=>a in Z?Wc(Z,a,{enumerable:!0,configurable:!0,writable:!0,value:Ee}):Z[a]=Ee;var j=(Z,a,Ee)=>qc(Z,typeof a!="symbol"?a+"":a,Ee);const kn={},Vn={};function on(n){const{properties:t,title:e,ignore:o}=n,r=o&&Array.isArray(o),i=Object.keys(t).reduce((s,l)=>((!r||!o.find(c=>c===l))&&(s[l]=t[l].type==="object"&&t[l].properties?on(t[l]):Ee.cloneDeep(t[l].default)),s),{});if(e&&(!r||!o.find(s=>s==="id"))){const s=e.toLowerCase().replace(/-/g,"_");i.id=`${s}_${Math.random().toString().slice(2,6)}`}return i}function oa(n){const{properties:t,title:e,required:o}=n;if(o&&Array.isArray(o)){const r=o.reduce((i,s)=>(i[s]=t[s].type==="object"&&t[s].properties?on(t[s]):Ee.cloneDeep(t[s].default),i),{});if(e&&o.find(i=>i==="id")){const i=e.toLowerCase().replace(/-/g,"_");r.id=`${i}_${Math.random().toString().slice(2,6)}`}return r}return{type:e}}function Mn(n,t={},e){const o=kn[n];if(o){let r=oa(o);const i=Vn[n];return r=i?i({getSchemaByType:Mn},r,t,e):r,r}return null}function ra(n,t){const e=on(t);return Object.keys(e).reduce((o,r)=>(Object.prototype.hasOwnProperty.call(n,r)&&(o[r]&&Ee.isPlainObject(o[r])&&Ee.isPlainObject(n[r]||!n[r])?Object.assign(o[r],n[r]||{}):o[r]=n[r]),o),e),e}function Nn(n,t){return Object.keys(n).filter(o=>n[o]!=null).reduce((o,r)=>{if(t.has(r)){const i=t.get(r);if(typeof i=="string")o[i]=n[r];else{const s=i(r,n[r],n);Object.assign(o,s)}}else o[r]=n[r];return o},{})}function aa(n,t,e=new Map){const o=ra(n,t);return Nn(o,e)}function ia(n={}){function t(f,d,u,p){if(typeof u=="number")return p[f].length===u;if(typeof u=="object"){const h=Object.keys(u)[0],m=u[h];if(h==="not")return Number(p[f].length)!==Number(m);if(h==="moreThan")return Number(p[f].length)>=Number(m);if(h==="lessThan")return Number(p[f].length)<=Number(m)}return!1}function e(f,d,u,p){return p[f]&&p[f].propertyValue&&String(p[f].propertyValue.value)===String(u)}const o=new Map([["length",t],["getProperty",e]]);Object.keys(n).reduce((f,d)=>(f.set(d,n[d]),f),o);function r(f,d){const u=f;return typeof d=="number"?[{target:u,operator:"length",param:null,value:Number(d)}]:typeof d=="boolean"?[{target:u,operator:"getProperty",param:f,value:!!d}]:typeof d=="object"?Object.keys(d).map(p=>{if(p==="length")return{target:u,operator:"length",param:null,value:d[p]};const h=p,m=d[p];return{target:u,operator:"getProperty",param:h,value:m}}):[]}function i(f){return Object.keys(f).reduce((u,p)=>{const h=r(p,f[p]);return u.push(...h),u},[])}function s(f,d){if(o.has(f.operator)){const u=o.get(f.operator);return u&&u(f.target,f.param,f.value,d)||!1}return!1}function l(f,d){return i(f).reduce((h,m)=>h&&s(m,d),!0)}function c(f,d){const u=Object.keys(f),p=u.includes("allOf"),h=u.includes("anyOf"),m=p||h,y=(m?f[m?p?"allOf":"anyOf":"allOf"]:[f]).map(b=>l(b,d));return p?!y.includes(!1):y.includes(!0)}return{parseValueSchema:c}}const ae={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:"筛选条"}},In={},sa={};ia();function Ot(n,t,e=new Map,o=(s,l,c,f)=>l,r={},i=s=>s){return kn[t.title]=t,Vn[t.title]=o,In[t.title]=r,sa[t.title]=i,(s={},l=!0)=>{if(!l)return Nn(s,e);const c=aa(s,t,e),f=Object.keys(n).reduce((d,u)=>(d[u]=n[u].default,d),{});return Object.assign(f,c)}}function rn(n,t){return{customClass:t.class,customStyle:t.style}}function la(){function n(t,e){const{dataSource:o}=t||{};return o===void 0?{}:{}}return{resolve:n}}function ca(){function n(t,e){return t.selectItemById(e)}return{selectItemById:n}}function ua(){function n(t){return t.editor}return{resolve:n}}function da(){function n(t,e){const{columns:o}=e;return t.updateColumns(o)}return{updateColumns:n}}const an=new Map([["appearance",rn]]),fa=new Map([]),pa="root-viewmodel";class ma{constructor(t,e){j(this,"formSchemaUtils");j(this,"controlCreatorUtils");j(this,"designViewModelUtils");this.resolver=t,this.designerHostService=e,this.formSchemaUtils=this.designerHostService.formSchemaUtils,this.controlCreatorUtils=this.designerHostService.controlCreatorUtils,this.designViewModelUtils=this.designerHostService.designViewModelUtils}createComponent(t){const e=this.createComponentRefNode(t),o=this.createComponentNode(t),r=this.createViewModeNode(t),i=this.formSchemaUtils.getFormSchema();return i.module.viewmodels.push(r),i.module.components.push(o),this.designViewModelUtils.assembleDesignViewModel(),e}createComponentRefNode(t){const e=this.resolver.getSchemaByType("component-ref");return Object.assign(e,{id:`${t.componentId}-component-ref`,component:`${t.componentId}-component`}),e}createComponentNode(t){const e=this.resolver.getSchemaByType("component"),o=this.createFormComponentContents(t);return Object.assign(e,{id:`${t.componentId}-component`,viewModel:`${t.componentId}-component-viewmodel`,componentType:t.componentType,appearance:{class:this.getFormComponentClass()},formColumns:t.formColumns,contents:o}),e}getFormComponentClass(){const{templateId:t}=this.formSchemaUtils.getFormSchema().module;return t==="double-list-in-tab-template"?"f-struct-wrapper f-utils-fill-flex-column":"f-struct-wrapper"}createFormComponentContents(t){const e=this.resolver.getSchemaByType("section");Object.assign(e,{id:t.componentId+"-form-section",appearance:{class:"f-section-form f-section-in-mainsubcard"},mainTitle:t.componentName});const o=this.resolver.getSchemaByType("response-form"),r=[];Object.assign(o,{id:t.componentId+"-form",appearance:{class:"f-form-layout farris-form farris-form-controls-inline"},contents:r}),e.contents=[o];const{selectedFields:i}=t;i==null||i.forEach(l=>{const c=Ee.cloneDeep(l),f=this.resolveControlClassByFormColumns(t),d=this.controlCreatorUtils.setFormFieldProperty(c,"",f);d&&r.push(d)});const{templateId:s}=this.formSchemaUtils.getFormSchema().module;return s==="double-list-in-tab-template"&&(e.appearance.class="f-section-grid f-section-in-main px-0 pt-0",e.fill=!0),[e]}resolveControlClassByFormColumns(t){let e="";switch(t.formColumns){case 1:{e="col-12";break}case 2:{e="col-12 col-md-6 col-xl-6 col-el-6";break}case 3:{e="col-12 col-md-6 col-xl-4 col-el-4";break}case 4:{e="col-12 col-md-6 col-xl-3 col-el-2";break}}return e}createViewModeNode(t){return{id:`${t.componentId}-component-viewmodel`,code:`${t.componentId}-component-viewmodel`,name:t.componentName,bindTo:t.bindTo,parent:pa,fields:this.assembleViewModelFields(t),commands:[],states:[],enableValidation:!0}}assembleViewModelFields(t){const e=[],{selectedFields:o}=t;return o==null||o.forEach(r=>{let i="blur";const s=r.type.name;(s===ke.FormSchemaEntityFieldTypeName.Enum||s===ke.FormSchemaEntityFieldTypeName.Boolean)&&(i="change"),e.push({type:"Form",id:r.id,fieldName:r.bindingField,groupId:null,groupName:null,updateOn:i,fieldSchema:{}})}),e}}function ha(n,t,e,o){var i,s,l,c,f,d;const r=e.parentComponentInstance;if(r&&o){const u=(i=r.schema)==null?void 0:i.type,h={componentId:`form-${Math.random().toString(36).slice(2,6)}`,componentName:((s=e.bindingSourceContext)==null?void 0:s.entityTitle)||((c=(l=e.bindingSourceContext)==null?void 0:l.bindingEntity)==null?void 0:c.name)||"标题",componentType:"form",formColumns:u==="splitter-pane"?1:4,parentContainerId:r.schema.id,bindTo:((f=e.bindingSourceContext)==null?void 0:f.bindTo)||"/",selectedFields:(d=e.bindingSourceContext)==null?void 0:d.bindingEntityFields};return new ma(n,o).createComponent(h)}else return t}function ga(n,t,e){return t}const ya={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/response-form.schema.json",title:"response-form",description:"A Farris Data Collection Component",type:"object",properties:{id:{description:"The unique identifier for a form group",type:"string"},type:{description:"The type string of form group component",type:"string",default:"response-form"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},contents:{description:"",type:"array",default:[]},visible:{description:"",type:"boolean",default:!0},labelAutoOverflow:{description:"",type:"boolean",default:!1}},required:["id","type","contents"]},sn={customClass:{type:String,default:""},customStyle:{type:String,defaut:""},visible:{type:Boolean,default:!0}},ln=Ot(sn,ya,an,ha),Gt=a.defineComponent({name:"FResponseForm",props:sn,emits:[],setup(n,t){const e=a.ref(),o=a.computed(()=>{const r=n.customClass.split(" "),i={"drag-container":!0};return r.reduce((s,l)=>(s[l]=!0,s),i),i});return()=>n.visible&&a.withDirectives(a.createVNode("div",{ref:e,class:o.value,style:n.customStyle},[t.slots.default&&t.slots.default()]),[[a.resolveDirective("area-response")]])}}),En={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/form-group.schema.json",title:"form-group",description:"A Farris Input Component",type:"object",properties:{id:{description:"The unique identifier for a form group",type:"string"},type:{description:"The type string of form group component",type:"string",default:"form-group"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},enableLinkLabel:{description:"",type:"boolean",default:!1},editor:{description:"",type:"obejct",default:null},label:{description:"",type:"string",default:""},lableWidth:{description:"",type:"number"},binding:{description:"",type:"object",default:{}},visible:{description:"",type:"boolean",default:!0},required:{description:"",type:"boolean",default:!1},errors:{description:"",type:"object",default:null}},required:["id","type","editor"]},Dt={id:{type:String,default:""},customClass:{type:String,default:""},customStyle:{type:String,default:""},editor:{type:Object,default:{}},label:{type:String,default:""},modelValue:{type:[String,Boolean,Array,Number]},visible:{type:Boolean,default:!0},required:{type:Boolean,default:!1},showLabel:{type:Boolean,default:!0},type:{type:String,default:"input-group"},componentId:{type:String,default:""},errors:{type:Object,default:null}},cn=Ot(Dt,En,an,void 0),On=ua();function un(n,t,e){var g;const o=e&&e.getStyles&&e.getStyles()||"",r=e&&e.getDesignerClass&&e.getDesignerClass()||"",i=a.ref();function s(){return(t==null?void 0:t.schema.componentType)==="frame"?!1:e&&e.checkCanMoveComponent?e.checkCanMoveComponent():!0}function l(){return!1}function c(){return(t==null?void 0:t.schema.componentType)==="frame"?!1:e&&e.checkCanDeleteComponent?e.checkCanDeleteComponent():!0}function f(){return(t==null?void 0:t.schema.componentType)==="frame"?!0:e&&e.hideNestedPaddingInDesginerView?e.hideNestedPaddingInDesginerView():!1}function d(V){if(!V||!V.value)return null;if(V.value.schema&&V.value.schema.type==="component")return V.value;const F=a.ref(V==null?void 0:V.value.parent),N=d(F);return N||null}function u(V=t){var R;if(e!=null&&e.getDraggableDesignItemElement)return e.getDraggableDesignItemElement(V);const{componentInstance:F,designerItemElementRef:N}=V;if(!F||!F.value)return null;const{getCustomButtons:w}=F.value;return F.value.canMove||w&&((R=w())!=null&&R.length)?N:u(V.parent)}function p(V){return!!e&&e.canAccepts(V)}function h(){return(t==null?void 0:t.schema.label)||(t==null?void 0:t.schema.title)||(t==null?void 0:t.schema.name)}function m(){}function M(V,F){var N;!V||!F||(e!=null&&e.onAcceptMovedChildElement&&e.onAcceptMovedChildElement(V,F),(N=t==null?void 0:t.setupContext)==null||N.emit("dragEnd"))}function x(V,F){const{componentType:N}=V;let w=Mn(N,V,F);e&&e.onResolveNewComponentSchema&&(w=e.onResolveNewComponentSchema(V,w));const R=N.toLowerCase().replace(/-/g,"_");return w&&!w.id&&w.type===N&&(w.id=`${R}_${Math.random().toString().slice(2,6)}`),w}function y(V){V&&e!=null&&e.onChildElementMovedOut&&e.onChildElementMovedOut(V)}function v(...V){if(e&&e.getPropsConfig)return e.getPropsConfig(...V)}function b(V){if(!V)return;const F=t==null?void 0:t.schema,{formSchemaUtils:N}=V;if(F&&N.getExpressions().length){const w=N.getExpressions().findIndex(R=>R.target===F.id);w>-1&&N.getExpressions().splice(w,1)}}function _(V){e&&e.onRemoveComponent&&e.onRemoveComponent(),b(V),t!=null&&t.schema.contents&&t.schema.contents.map(F=>{let N=F.id;F.type==="component-ref"&&(N=F.component);const w=n.value.querySelectorAll(`#${N}-design-item`);w!=null&&w.length&&Array.from(w).map(R=>{var L;(L=R==null?void 0:R.componentInstance)!=null&&L.value.onRemoveComponent&&R.componentInstance.value.onRemoveComponent(V)})})}function S(){if(e&&e.getCustomButtons)return e.getCustomButtons()}function T(V){if(e&&e.onPropertyChanged)return e.onPropertyChanged(V)}return i.value={canMove:s(),canSelectParent:l(),canDelete:c(),canNested:!f(),contents:t==null?void 0:t.schema.contents,elementRef:n,parent:(g=t==null?void 0:t.parent)==null?void 0:g.componentInstance,schema:t==null?void 0:t.schema,styles:o,designerClass:r,canAccepts:p,getBelongedComponentInstance:d,getDraggableDesignItemElement:u,getDraggingDisplayText:h,getPropConfig:v,getDragScopeElement:m,onAcceptMovedChildElement:M,onChildElementMovedOut:y,addNewChildComponentSchema:x,triggerBelongedComponentToMoveWhenMoved:!!e&&e.triggerBelongedComponentToMoveWhenMoved||a.ref(!1),triggerBelongedComponentToDeleteWhenDeleted:!!e&&e.triggerBelongedComponentToDeleteWhenDeleted||a.ref(!1),onRemoveComponent:_,getCustomButtons:S,onPropertyChanged:T},i}function va(){function n(t,e){var s;if(!t)return!1;const o=((s=t.targetContainer)==null?void 0:s.componentInstance)&&t.targetContainer.componentInstance.value;if(!o)return!1;const r=o.schema.type,i=e==null?void 0:e.formSchemaUtils.getComponentById(o.belongedComponentId);return!((t.componentCategory==="input"||t.componentType==="form-group")&&![ae["response-layout-item"].type,ae["response-form"].type,ae.fieldset.type].includes(r)||(t.componentType===ae.tabs.type||t.componentType===ae.section.type)&&((i==null?void 0:i.componentType)!=="frame"||![ae["content-container"].type,ae["splitter-pane"].type,ae["response-layout-item"].type].includes(r))||t.componentType===ae["query-solution"].type||t.componentType===ae.fieldset.type&&r!==ae["response-form"].type)}return{basalDragulaRuleForContainer:n}}class ba{getTemplateRule(t,e){const o=e==null?void 0:e.formSchemaUtils,r=o==null?void 0:o.getFormTemplateRule(),i={canAccept:!0,canDelete:!0,canMove:!0};if(!r)return i;const s=this.getComponentContext(t),{componentClassList:l}=s;return l.forEach(c=>{if(!c||!r[c])return;const{canMove:f,canDelete:d,canAccept:u}=r[c];i.canMove=i.canMove&&this.resolveRuleValue(f,s),i.canDelete=i.canDelete&&this.resolveRuleValue(d,s),i.canAccept=i.canAccept&&this.resolveRuleValue(u,s)}),i}resolveRuleValue(t,e){return typeof t=="boolean"?t:this.parseRuleValueSchema(t,e)}parseRuleValueSchema(t,e){const o=t.invalidContext||[];let r=!0;for(const i of o){if(i.firstLevelChild){if(i.firstLevelChild.class){const{firstLevelChildClassList:s}=e;if(s&&!s.includes(i.firstLevelChild.class)){r=!1;continue}}if(i.firstLevelChild.type){const{firstLevelChildSchema:s}=e;if(!s||s.type!==i.firstLevelChild.type){r=!1;continue}}}if(i.secondLevelChild){if(i.secondLevelChild.class){const{secondLevelChildClassList:s}=e;if(s&&!s.includes(i.secondLevelChild.class)){r=!1;continue}}if(i.secondLevelChild.type){const{secondLevelChildSchema:s}=e;if(!s||s.type!==i.secondLevelChild.type){r=!1;continue}}}if(i.parent){if(i.parent.class){const{parentClassList:s}=e;if(s&&!s.includes(i.parent.class)){r=!1;continue}}if(i.parent.type){const{parentSchema:s}=e;if(s&&s.type!==i.parent.type){r=!1;continue}}}r=!0;break}return!r}getComponentContext(t){var M,x,y,v;const e=t.schema,o=e.appearance&&e.appearance.class||"",r=o.split(" ")||[],i=e.contents||[],s=i.length?i[0]:null,l=s&&s.appearance?s.appearance.class:"",c=l?l.split(" "):[],f=(M=s==null?void 0:s.contents)!=null&&M.length?s==null?void 0:s.contents[0]:null,d=f&&f.appearance?f.appearance.class:"",u=d?d.split(" "):[],p=e.type==="component"?(y=(x=t.parent)==null?void 0:x.parent)==null?void 0:y.schema:(v=t.parent)==null?void 0:v.schema,h=p&&p.appearance&&p.appearance.class||"",m=h?h.split(" "):[];return{componentClass:o,componentClassList:r,childContents:i,firstLevelChildSchema:s,firstLevelChildClass:l,firstLevelChildClassList:c,secondLevelChildSchema:f,secondLevelChildClass:d,secondLevelChildClassList:u,parentSchema:p,parentClass:h,parentClassList:m}}}const wa=a.ref(0);function Dn(){wa.value++}const zt=a.ref(0);function Ca(n,t){const e=t.getBoundingClientRect(),o=n.getBoundingClientRect(),r=o.top>=e.top,i=o.top<=e.bottom;return r&&i}function xa(n){const t=n.querySelector(".component-btn-group");if(!t)return;t.style.display="";const e=t.getBoundingClientRect();if(!(e.top===0&&e.left===0)){const o=t.querySelector("div");if(o){const r=o.getBoundingClientRect();o.style.top=e.top+"px";let i=e.left-r.width;const s=document.querySelector(".editorDiv");if(s){const l=s.getBoundingClientRect();i<l.left&&({left:i}=n.getBoundingClientRect())}o.style.left=i+"px"}}}function _a(n){if(!window.scrollContainerList)return;const t=Array.from(window.scrollContainerList);if(t.length&&t.length===1){const e=t[0],o=document.querySelector(`[id=${e}]`);if(o&&o.contains(n))return o}}function Pn(n){if(!n)return;const t=n.getBoundingClientRect();if(t.width===0&&t.height===0)return;const e=n.querySelector(".component-btn-group");if(e){let o=!0;const r=_a(n);if(r&&(o=Ca(n,r)),!o){e.style.display="none";return}xa(n)}}function Ta(n){if(!n)return;let t;n.className.includes("dgComponentSelected")?t=n:t=n.querySelector(".dgComponentSelected"),t&&Pn(t)}function Fa(n){const{formSchemaUtils:t,formStateMachineUtils:e}=n;function o(c,f=""){return{path:f+c.code,field:c.id,fullPath:c.code}}function r(c,f=""){return t.getViewModelById(c).states.map(u=>o(u,f))}function i(c){const f=t.getRootViewModelId(),d=r(c);if(c===f)return d;const u=r(f,"root-component.");return[...d,...u]}function s(c){return c.binding&&c.binding.path||c.id||""}function l(){return e&&e.getRenderStates()||[]}return{getVariables:i,getControlName:s,getStateMachines:l}}class Sa{constructor(t){j(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'"}]);j(this,"expressionNames",{compute:"计算表达式",dependency:"依赖表达式",validate:"验证表达式",dataPicking:"帮助前表达式",visible:"可见表达式",readonly:"只读表达式",required:"必填表达式"});j(this,"getExpressionConverter",(t,e)=>({convertFrom:(o,r,i,s)=>{const l=i.getExpressionRuleValue(t,e||r);return l&&l.value||""},convertTo:(o,r,i,s,l)=>{var c;if(r==="dataPicking"&&(i!=null&&i.target)){const f=`${i.target}_dataPicking`;((c=i.rules)==null?void 0:c.some(u=>u.id===f&&u.value))?o.dictPickingExpressionId=f:delete o.dictPickingExpressionId}s.updateExpression(i)}}));this.formSchemaService=t}getExpressionRule(t,e){const o=this.formSchemaService.getExpressions();if(!o)return"";const r=o.find(s=>s.target===t);if(!r)return"";const i=r.rules.find(s=>s.type===e);return i||""}getContextFormVariables(){const{module:t}=this.formSchemaService.getFormSchema();if(!t.viewmodels||t.viewmodels.length===0)return[];const e=this.formSchemaService.getRootViewModelId(),o=this.formSchemaService.getViewModelById(e);if(!o||!o.states||o.states.length===0)return[];const r=[];return o.states.forEach(i=>{r.push({key:i.code,name:i.name,description:i.name,category:i.category})}),r}createTreeNode(t,e,o="label"){return{id:t.id,name:t.name,bindingPath:t[o],parents:e}}buildEntityFieldsTreeData(t=null,e){const o=[];return t==null||t.forEach(r=>{var l;const i=this.createTreeNode(r,e);let s=[];(l=r.type)!=null&&l.fields&&(s=this.buildEntityFieldsTreeData(r.type.fields,[...e,r.label])),o.push({data:i,children:s,expanded:!0})}),o}buildChildEntityTreeData(t=null,e){const o=[];return t==null||t.forEach(r=>{var c,f;const i=this.createTreeNode(r,e),s=this.buildEntityFieldsTreeData((c=r.type)==null?void 0:c.fields,[...e,r.label]),l=this.buildChildEntityTreeData((f=r.type)==null?void 0:f.entities,[...e,r.label]);l!=null&&l.length&&(s==null||s.push(...l)),o.push({data:i,children:s||[],expanded:!0})}),o}getEntitiesTreeData(){const t=this.formSchemaService.getSchemaEntities();if(!(t!=null&&t.length))return[];const e=t[0];if(!(e!=null&&e.type))return[];const o=this.buildEntityFieldsTreeData(e.type.fields,[e.code]),r=this.buildChildEntityTreeData(e.type.entities,[e.code]);return r!=null&&r.length&&(o==null||o.push(...r)),{entityCode:e.code,fields:[{data:this.createTreeNode(e,[],"code"),children:o||[]}]}}getEntitiesAndVariables(){return{entities:this.getEntitiesTreeData(),variables:{session:{name:"系统变量",items:this.sessionVariables,visible:!1},forms:{name:"表单变量",items:this.getContextFormVariables(),visible:!0}}}}onBeforeOpenExpression(t,e,o){const r=o==="Field"?t.binding.field:t.id,i=this.getExpressionRule(r,e),s=this.getEntitiesAndVariables(),l={message:["validate","required","dataPicking"].includes(e)&&i?i.message:"",...s};return i.messageType!=null&&(l.messageType=i.messageType),l}buildRule(t,e,o,r){const{expression:i,message:s,messageType:l}=e,c={id:`${t}_${o}`,type:o,value:i};return(o==="validate"||o==="dataPicking"||o==="required")&&(c.message=s),o==="dataPicking"&&(c.messageType=l),o==="validate"&&r&&(c.elementId=r),c}getExpressionData(){const{expressions:t}=this.formSchemaService.getFormSchema().module;return t||[]}updateExpression(t,e,o,r){const i=e==="Field"?t.binding.field:t.id,s=this.buildRule(i,o,r,t.type==="form-group"?t.id:"");let c=this.getExpressionData().find(d=>d.targetType===e&&d.target===i);const f=d=>d.value.trim()==="";if(c){const d=c.rules.find(u=>u.id===s.id);if(d)f(s)?c.rules=c.rules.filter(u=>u.id!==s.id):(Object.assign(d,s),r==="validate"&&t.type==="form-group"&&(d.elementId=t.id));else{if(f(s))return null;c.rules=c.rules||[],c.rules.push(s)}}else{if(f(s))return null;c={target:`${i}`,rules:[s],targetType:e}}return c}getExpressionEditorOptions(t,e,o,r){return o.reduce((i,s)=>{var c,f;const l=e==="Field"?(c=t==null?void 0:t.binding)==null?void 0:c.field:t.id;return i[s]={hide:e==="Field"?!!((f=t==null?void 0:t.binding)!=null&&f.field):!1,description:"",title:this.expressionNames[s],type:"string",$converter:this.getExpressionConverter(l),editor:{type:"expression-editor",singleExpand:!1,dialogTitle:`${this.expressionNames[s]}编辑器`,showMessage:s==="validate"||s==="dataPicking"||s==="required",showMessageType:s==="dataPicking",beforeOpen:()=>this.onBeforeOpenExpression(t,s,e),onSubmitModal:d=>{const u=this.updateExpression(t,e,d,s);if(r){const p=this.buildRule(l,d,s);r(p)}return u}}},i},{})}getExpressionInfo(t,e,o){const r=e==="Field"?t.binding.field:t.id,i=this.getExpressionRule(r,o),s={value:i&&i.value,targetId:r,targetType:e,expressionType:o};return i&&i.message&&(s.message=i.message),s}getExpressionConfig(t,e,o=["compute","dependency","validate"],r){return{description:"表达式",title:"表达式",properties:{...this.getExpressionEditorOptions(t,e,o,r)}}}getExpressionOptions(t,e,o){const r=this.getExpressionInfo(t,e,o);return{dialogTitle:`${this.expressionNames[o]}编辑器`,singleExpand:!1,showMessage:o==="required",beforeOpen:()=>this.onBeforeOpenExpression(t,o,e),expressionInfo:r}}}class Bn{constructor(t,e){j(this,"componentId");j(this,"viewModelId");j(this,"eventsEditorUtils");j(this,"formSchemaUtils");j(this,"formMetadataConverter");j(this,"designViewModelUtils");j(this,"designViewModelField");j(this,"controlCreatorUtils");j(this,"designerHostService");j(this,"schemaService",null);j(this,"metadataService",null);j(this,"propertyConfig",{type:"object",categories:{}});var o;this.componentId=t,this.designerHostService=e,this.eventsEditorUtils=e.eventsEditorUtils,this.formSchemaUtils=e.formSchemaUtils,this.formMetadataConverter=e.formMetadataConverter,this.viewModelId=((o=this.formSchemaUtils)==null?void 0:o.getViewModelIdByComponentId(t))||"",this.designViewModelUtils=e.designViewModelUtils,this.controlCreatorUtils=e.controlCreatorUtils,this.metadataService=e.metadataService,this.schemaService=e.schemaService}getTableInfo(){var t;return(t=this.schemaService)==null?void 0:t.getTableInfoByViewModelId(this.viewModelId)}setDesignViewModelField(t){var o;const e=t.binding&&t.binding.type==="Form"&&t.binding.field;if(e){if(!this.designViewModelField){const r=this.designViewModelUtils.getDgViewModel(this.viewModelId);this.designViewModelField=r.fields.find(i=>i.id===e)}t.updateOn=(o=this.designViewModelField)==null?void 0:o.updateOn}}getBasicPropConfig(t){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:t.type,name:ae[t.type].name}]}}}}}getAppearanceConfig(t=null,e={},o){const r={title:"外观",description:"Appearance"},i={class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter"},style:{title:"style样式",type:"string",description:"组件的样式",$converter:"/converter/appearance.converter"}};for(const s in e)i[s]=Object.assign(i[s]||{},e[s]);return{...r,properties:{...i},setPropertyRelates(s,l){if(s){switch(s&&s.propertyID){case"class":case"style":{zt.value++;break}}o&&o(s,t,l)}}}}getPropertyEditorParams(t,e=[],o="visible",r={},i={}){const{getVariables:s,getControlName:l,getStateMachines:c}=Fa(this.designerHostService),f=this.getRealTargetType(t),d=e&&e.length>0?e:["Const","Variable","StateMachine","Expression"],u={type:"property-editor",propertyTypes:d};return d.map(p=>{switch(p){case"Const":Object.assign(u,{constType:"enum",constEnums:[{id:!0,name:"是"},{id:!1,name:"否"}]},r);break;case"Expression":u.expressionConfig=this.getExpressionOptions(t,f,o);break;case"StateMachine":u.stateMachines=c();break;case"Variable":Object.assign(u,{controlName:l(t),newVariablePrefix:"is",newVariableType:"Boolean",variables:s(this.viewModelId),onBeforeOpenVariables:h=>{h.value=s(this.viewModelId)}},i);break}}),u}getVisibleProperty(t,e=""){return{visible:{title:"是否可见",type:"boolean",description:"运行时组件是否可见",editor:this.getPropertyEditorParams(t,e==="gridFieldEditor"?["Const","Expression"]:["Const","Variable","StateMachine","Expression"],"visible")}}}getBehaviorConfig(t,e="",o={},r){const i={title:"行为",description:""},s=this.getVisibleProperty(t,e);for(const c in o)s[c]=Object.assign(s[c]||{},o[c]);const l=this;return{...i,properties:{...s},setPropertyRelates(c,f){if(c){switch(c.propertyID){case"disabled":case"readonly":case"visible":l.afterMutilEditorChanged(t,c);break}r&&r(c,f)}}}}afterMutilEditorChanged(t,e){this.addNewVariableToViewModel(e,this.viewModelId),this.updateExpressionValue(e),this.clearExpression(e,t)}updateElementByParentContainer(t,e){const o=e&&e.parent&&e.parent.schema;if(!o)return;const r=o.contents.findIndex(s=>s.id===t),i=Ee.cloneDeep(o.contents[r]);o.contents.splice(r,1),o.contents.splice(r,0,i),Dn()}addNewVariableToViewModel(t,e){const o=t.propertyValue;if(!(o&&typeof o=="object")||!(o.type==="Variable"&&o.isNewVariable))return;const s={id:o.field,category:"locale",code:o.fullPath,name:o.fullPath,type:o.newVariableType||"String"};delete o.newVariableType,delete o.isNewVariable,this.formSchemaUtils.getVariableByCode(s.code)||this.formSchemaUtils.getViewModelById(e).states.push(s)}updateExpressionValue(t){const e=t.propertyValue;if(!((e&&e.type)==="Expression"&&e.expressionInfo))return;const{expressionId:i,expressionInfo:s}=e,{targetId:l,targetType:c,expressionType:f,value:d,message:u}=s,p=this.formSchemaUtils.getModule();p.expressions??(p.expressions=[]);const{expressions:h}=p;let m=h.find(x=>x.target===l);m||(m={target:l,rules:[],targetType:c},h.push(m));const M=m.rules.find(x=>x.type===f);if(M)M.value=d,M.message=u;else{const x={id:i,type:f,value:d,message:u};m.rules.push(x)}delete e.expressionInfo}clearExpression(t,e){const o=t.propertyValue;if(o&&o.type==="Expression")return;const i=t.propertyID,s=this.formSchemaUtils.getExpressions(),l=e.binding?e.binding.field:e.id,c=s.find(f=>f.target===l);!c||!c.rules||(c.rules=c.rules.filter(f=>f.type!==i))}getExpressionOptions(t,e,o){return new Sa(this.formSchemaUtils).getExpressionOptions(t,e,o)}getRealTargetType(t){return["response-toolbar-item","tab-toolbar-item","section-toolbar-item"].indexOf(t.type)>-1?"Button":t.binding&&t.binding.field?"Field":"Container"}}class ka{constructor(){j(this,"label","");j(this,"id","");j(this,"columnInSM",12);j(this,"columnInMD",6);j(this,"columnInLG",3);j(this,"columnInEL",2);j(this,"displayWidthInSM",1);j(this,"displayWidthInMD",1);j(this,"displayWidthInLG",1);j(this,"displayWidthInEL",1);j(this,"displayColumnCountAtBreakPoint","md");j(this,"tagRow",0);j(this,"showTopBorder",0);j(this,"group",1);j(this,"isSupportedClass",!0);j(this,"fieldSetId","")}}function Va(n){let t,e;const o=new Map;let r=[];function i(d,u){const h=d.split(" ").filter(v=>v.startsWith("col-"));if(h.length===0){u.isSupportedClass=!1;return}let m=h.find(v=>/^col-([1-9]|10|11|12)$/.test(v)),M=h.find(v=>/^col-md-([1-9]|10|11|12)$/.test(v)),x=h.find(v=>/^col-xl-([1-9]|10|11|12)$/.test(v)),y=h.find(v=>/^col-el-([1-9]|10|11|12)$/.test(v));m=m||"col-12",u.columnInSM=parseInt(m.replace("col-",""),10),u.displayWidthInSM=u.columnInSM/12,u.displayWidthInSM!==1&&(u.isSupportedClass=!1),M=M||"col-md-"+u.columnInSM,u.columnInMD=parseInt(M.replace("col-md-",""),10),u.displayWidthInMD=u.columnInMD/6,[1,2].includes(u.displayWidthInMD)||(u.isSupportedClass=!1),x=x||"col-xl-"+u.columnInMD,u.columnInLG=parseInt(x.replace("col-xl-",""),10),u.displayWidthInLG=u.columnInLG/3,[1,2,3,4].includes(u.displayWidthInLG)||(u.isSupportedClass=!1),y=y||"col-el-"+u.columnInLG,u.columnInEL=parseInt(y.replace("col-el-",""),10),u.displayWidthInEL=u.columnInEL/2,[1,2,3,4,5,6].includes(u.displayWidthInEL)||(u.isSupportedClass=!1)}function s(d,u,p,h=!1){let m=!1;d.contents.forEach(M=>{if(M.type==="fieldset"){p+=1,s(M,u,p,!0),m=!0;return}m&&(p+=1,m=!1);const x=M.appearance&&M.appearance.class,y=new ka;x?i(x,y):y.isSupportedClass=!1,y.label=M.label||M.id,y.id=M.id,y.group=p,h&&(y.fieldSetId=d.id),e===M.id&&(t=p),o.set(M.id,M),u.push(y)})}function l(d){const u=n.getComponentById(d);if(!u||!u.componentType||!u.componentType.startsWith("form"))return{result:!1,message:"只可以在响应式表单组件中调整响应式布局配置"};const p=n.selectNode(u,h=>h.type===Tt.DgControl["response-form"].type);return!p||!p.contents||p.contents.length===0?{result:!1,message:"Form区域内没有控件,请先添加控件"}:{result:!0,message:"",formNode:p}}function c(d,u){u=u||d.id;const{result:p,message:h,formNode:m}=l(u);if(!p)return{result:p,message:h};e=d.id,r=[],o.clear();const M=m.contents[0].type===Tt.DgControl.fieldset.type?0:1;s(m,r,M);const x=r.find(v=>!v.isSupportedClass);return{defaultState:{defaultGroupNumber:t||1,model:x?"customize":"standard"},importData:r}}function f(d,u){u=u;const{result:p,formNode:h}=l(u);if(!p)return"";const m=[];return d.forEach(M=>{var v;const x=o.get(M.id),y=x.appearance&&x.appearance.class;if(y){const _=y.split(" ").filter(N=>!N.startsWith("col-")),S="col-"+M.columnInSM,T="col-md-"+M.columnInMD,g="col-xl-"+M.columnInLG,V="col-el-"+M.columnInEL,F=[S,T,g,V].concat(_);x.appearance.class=F.join(" ")}if(M.fieldSetId){const b=h.contents.find(S=>S.id===M.fieldSetId),_=m.find(S=>S.id===M.fieldSetId);_?(v=_.contents)==null||v.push(x):(m.push(b),b.contents=[x])}else m.push(x)}),h.contents=m,h.id}return{checkCanFindFormNode:l,checkCanOpenLayoutEditor:c,changeFormControlsByResponseLayoutConfig:f,getResonseFormLayoutConfig:s}}function Ma(n,t){function e(c,f=null){if(f)return f;const d=n.getComponentById(t);return n.selectNode(d,u=>u.id===c)}function o(c){const f=n.getComponentById(c);return!(!f||!f.componentType||!f.componentType.startsWith("form"))}function r(c){const f=new Set(c);return Array.from(f).length===1}function i(c){const f=e(c.id),d=Va(n),u=[];d.getResonseFormLayoutConfig(f,u,1);const p=u.map(_=>_.columnInSM),h=u.map(_=>_.columnInMD),m=u.map(_=>_.columnInLG),M=u.map(_=>_.columnInEL),x=r(p)?p[0]:0,y=r(h)?h[0]:0,v=r(m)?m[0]:0,b=r(M)?M[0]:0;return{uniqueColClassInSM:x,uniqueColClassInMD:y,uniqueColClassInLG:v,uniqueColClassInEL:b}}function s(c,f){let d,u,p,h,m=[];if(c){const _=c.split(" "),S=_.filter(T=>T.startsWith("col-"));d=S.find(T=>/^col-([1-9]|10|11|12)$/.test(T)),u=S.find(T=>/^col-md-([1-9]|10|11|12)$/.test(T)),p=S.find(T=>/^col-xl-([1-9]|10|11|12)$/.test(T)),h=S.find(T=>/^col-el-([1-9]|10|11|12)$/.test(T)),m=_.filter(T=>!T.startsWith("col-"))}const M=f.uniqueColClassInSM?"col-"+f.uniqueColClassInSM:d,x=f.uniqueColClassInMD?"col-md-"+f.uniqueColClassInMD:u,y=f.uniqueColClassInLG?"col-xl-"+f.uniqueColClassInLG:p,v=f.uniqueColClassInEL?"col-el-"+f.uniqueColClassInEL:h;return[M,x,y,v].concat(m).join(" ")}function l(c,f,d){c=e(d,c),c.contents.forEach(u=>{if(u.type===Tt.DgControl.fieldset.type){l(u,f,u.id);return}u.appearance||(u.appearance={});const p=u.appearance.class;u.appearance.class=s(p,f)})}return{checkIsInFormComponent:o,assembleUnifiedLayoutContext:i,changeFormControlsByUnifiedLayoutConfig:l}}class Na extends Bn{constructor(t,e){super(t,e)}getPropertyConfig(t,e){const o=this;this.propertyConfig.categories.basic=this.getBasicPropConfig(t);const{checkIsInFormComponent:r,assembleUnifiedLayoutContext:i,changeFormControlsByUnifiedLayoutConfig:s}=Ma(this.formSchemaUtils,this.componentId),l=this.getAppearanceConfig(t),c=r(this.componentId);return l.properties.labelAutoOverflow={title:"控件标签换行",description:"控件标签字数超长时,换行显示。控件标签与输入框在一行展示时,此属性有效。",visible:c,type:"boolean"},l.properties.unifiedLayout={title:"统一布局配置",description:"统一配置卡片区域内所有控件的宽度,只支持标准模式",visible:c,refreshPanelAfterChanged:!0,editor:{type:"response-form-layout-setting",initialState:i(t)}},l.setPropertyRelates=function(f,d){if(f)switch(f&&f.propertyID){case"unifiedLayout":{s(null,f.propertyValue,t.id),o.updateElementByParentContainer(t.id,e);break}case"labelAutoOverflow":{o.setLabelAutoOverflow(t,f.propertyValue);break}}},this.propertyConfig.categories.appearance=l,this.propertyConfig.categories.behavior=this.getBehaviorConfig(t),this.propertyConfig}setLabelAutoOverflow(t,e){const o=this.formSchemaUtils.getComponentById(this.componentId),r=this.formSchemaUtils.selectNode(o,i=>i.id===t.id);r&&r.contents&&r.contents.length&&(r.contents.forEach(i=>{i.appearance||(i.appearance={class:""}),i.appearance.class||(i.appearance.class=""),e?i.appearance.class.includes("farris-group-multi-label")||(i.appearance.class=i.appearance.class+" farris-group-multi-label"):i.appearance.class=i.appearance.class.replace("farris-group-multi-label","").trim()}),Dn())}}function jn(n,t){const e=n.schema,o=new ba,{canMove:r,canAccept:i,canDelete:s}=o.getTemplateRule(n,t);function l(C,k){const{sourceElement:D}=C,{componentInstance:B}=D,O=t==null?void 0:t.formSchemaUtils;if(!O)return!0;const P=O.getComponentById(B.value.belongedComponentId),A=O.getViewModelById(P.viewModel),E=O.getComponentById(n.componentInstance.value.belongedComponentId),I=O.getViewModelById(E.viewModel);return k?A!=null&&A.id&&(I!=null&&I.id)&&A.id!==I.id?A.bindTo===I.bindTo:!0:(A==null?void 0:A.id)===(I==null?void 0:I.id)}function c(C){const{bindingTargetId:k}=C;if(!t)return;const{formSchemaUtils:D,schemaService:B}=t,O=D.getComponentById(n.componentInstance.value.belongedComponentId),P=B.getFieldByIDAndVMID(k,O.viewModel);return!!(P!=null&&P.schemaField)}function f(C){const k=o.getComponentContext(n);if(k&&k.componentClassList&&k.componentClassList.includes("f-form-layout")&&k.componentClassList.includes("farris-form")){if(C.sourceType==="control"&&(C.componentCategory==="input"||C.componentType==="fieldset"))return!0;if(C.sourceType==="move"){if(C.componentType==="form-group")return l(C,!0);if(C.componentType==="fieldset")return l(C,!1)}return C.sourceType==="field"&&C.componentCategory==="input"?c(C):!1}return!0}function d(C){return!(!va().basalDragulaRuleForContainer(C,t)||!i||!f(C))}function u(C){var I;const k=C.componentInstance,D=k.value.schema,B=t==null?void 0:t.formSchemaUtils,O=t==null?void 0:t.designViewModelUtils,P=B.getViewModelIdByComponentId(k.value.belongedComponentId),A=O.getDgViewModel(P),E=k.value.parent;if(E&&Tt.DgControl.fieldset&&((I=E.schema)==null?void 0:I.type)===Tt.DgControl.fieldset.type&&A){const H={groupId:null,groupName:null};switch(D.binding.type){case yt.FormBindingType.Form:{A.changeField(D.binding.field,H);break}case yt.FormBindingType.Variable:{B.modifyViewModelFieldById(P,D.binding.field,H,!0);break}}}}function p(C,k,D){const B=k.fields.find(I=>I.id===C),O=t==null?void 0:t.designViewModelUtils,P=O.getDgViewModel(k.id),A=P.fields.find(I=>I.id===C);P.removeField([C]);const E=O.getDgViewModel(D);E.addField(A),B.fieldSchema&&E.changeField(A.id,B.fieldSchema)}function h(C,k,D,B=[]){const O=k.id,P=C.binding.field,A=k.fields.findIndex(I=>I.id===P);if(A>-1&&(D.fields.push(k.fields[A]),k.fields.splice(A,1)),O==="root-viewmodel"&&D.id!=="root-viewmodel"){C.binding.path&&!C.binding.path.includes("root-component.")&&(C.binding.path="root-component."+C.binding.path);return}if(D.id==="root-viewmodel"&&O!=="root-viewmodel"&&C.binding.path&&C.binding.path.includes("root-component.")){C.binding.path=C.binding.path.replace("root-component.","");return}const E=k.states.find(I=>I.id===P);E&&(D.states=D.states?D.states:[],D.states.findIndex(I=>I.id===E.id)<0&&(D.states.push(E),B.push(E.id)))}function m(C,k,D,B=[]){var A;if(!C)return;const O=k.id==="root-viewmodel"&&D.id!=="root-viewmodel",P=D.id==="root-viewmodel"&&k.id!=="root-viewmodel";Object.keys(C).forEach(E=>{if(E==="binding")return;const I=C[E];if(I&&typeof I=="object"&&I.type===yt.FormBindingType.Variable&&I.field){if(O){I.path&&!I.path.includes("root-component.")&&(I.path="root-component."+I.path);return}if(P&&I.path&&I.path.includes("root-component.")){I.path=I.path.replace("root-component.","");return}const H=k.states.find($=>$.id===I.field);if(H){B.push(H.id),D.states=D.states?D.states:[];const $=D.states.find(W=>W.code===H.code);if($)I.field=$.id;else{const W=Object.assign({},{newId:ke.useGuid().guid()},H);D.states.push(W),I.field=W.newId}}}}),(A=D.states)!=null&&A.length&&D.states.map(E=>{E.newId&&(E.id=E.newId,delete E.newId)})}function M(C,k,D){if(C&&(k(C,D),C.contents))for(const B of C.contents)M(B,k,D)}function x(C=[],k){if(!C.length)return;const D=t==null?void 0:t.formSchemaUtils,B=D.getComponentByViewModelId(k),O=[],P=(E,I)=>{E&&(Object.keys(E).forEach(H=>{const $=E[H];$&&typeof $=="object"&&$.type===yt.FormBindingType.Variable&&C.includes($.field)&&!I.includes($.field)&&I.push($.field)}),E.editor&&P(E.editor,I))};M(B,P,O);const A=D.getViewModelById(k);C.forEach(E=>{O.includes(E)||(A.states=A.states.filter(I=>I.id!==E))})}function y(C){const k=ke.useGuid().guid(),D=Object.assign({},C,{id:k,code:C.code+k.slice(0,4),name:C.name+k.slice(0,4)}),P=(t==null?void 0:t.formSchemaUtils).getCommands().find(A=>A.id===C.cmpId);return P&&P.refedHandlers.push({host:k,handler:C.handlerName}),D}function v(C,k,D){var H,$,W;const B={},O=C.type==="form-group"&&C.editor?C.editor.type:C.type,P=(H=tn.schemaMap[O])==null?void 0:H.events;if(!P)return;Object.keys(C).forEach(z=>{const X=Object.keys(P).find(K=>K===z);if(X&&C[X]){const K=k.commands.find(Q=>Q.code===C[X]);if(K){let Q=B[K.code];Q||(Q=y(K),B[K.code]=Q,D.commands.push(Q)),C[X]=Q.code}}});const E=(t==null?void 0:t.designViewModelUtils).getDgViewModel(D.id),I=["valueChanging","valueChanged"];if((($=C.binding)==null?void 0:$.type)===yt.FormBindingType.Form){const z=(W=D.fields)==null?void 0:W.find(X=>X.id===C.binding.field);z&&I.forEach(X=>{if(z[X]){const K=k.commands.find(Q=>Q.code===z[X]);if(!K)return;if(B[K.code])E.changeField(z.id,{[X]:B[K.code].code});else{const Q=y(K);B[K.code]=Q,D.commands.push(Q),E.changeField(z.id,{[X]:Q.code})}}})}}function b(C){const k=t==null?void 0:t.formSchemaUtils,D=C.componentInstance,B=D.value.schema,O=k.getViewModelIdByComponentId(D.value.belongedComponentId),P=k.getViewModelById(O),A=k.getComponentById(n.componentInstance.value.belongedComponentId),E=k.getViewModelById(A.viewModel);if(O!==E.id){const I=B.binding.type,H=B.binding.field,$=[];switch(I){case yt.FormBindingType.Form:{p(H,P,E.id);break}case yt.FormBindingType.Variable:{h(B,P,E,$);break}}m(B,P,E,$),m(B.editor,P,E,$),v(B,P,E),O!=="root-viewmodel"&&x($,O)}}function _(C){if(!C||!C.componentInstance)return;const D=C.componentInstance.value.schema;!D.binding||!D.binding.field||(u(C),b(C))}function S(){return