@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
1 lines • 51.4 kB
JavaScript
(function(r,i){typeof exports=="object"&&typeof module<"u"?i(exports,require("vue"),require("../dynamic-resolver/index.umd.js"),require("../common/index.umd.js"),require("lodash-es"),require("../locale/index.umd.js"),require("../dynamic-view/index.umd.js"),require("../section/index.umd.js"),require("../accordion/index.umd.js"),require("../../designer/avatar/index.umd.js"),require("../../designer/approval-logs/index.umd.js"),require("../../designer/button-edit/index.umd.js"),require("../button-group/index.umd.js"),require("../button/index.umd.js"),require("../calendar/index.umd.js"),require("../../designer/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("../table/index.umd.js"),require("../../designer/date-picker/index.umd.js"),require("../../designer/data-grid/index.umd.js"),require("../dropdown/index.umd.js"),require("../../designer/dynamic-form/index.umd.js"),require("../events-editor/index.umd.js"),require("../filter-bar/index.umd.js"),require("../field-selector/index.umd.js"),require("../binding-selector/index.umd.js"),require("../image-cropper/index.umd.js"),require("../../designer/input-group/index.umd.js"),require("../layout/index.umd.js"),require("../list-nav/index.umd.js"),require("../../designer/list-view/index.umd.js"),require("../lookup/index.umd.js"),require("../mapping-editor/index.umd.js"),require("../../designer/nav/index.umd.js"),require("../number-range/index.umd.js"),require("../../designer/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("../../designer/rate/index.umd.js"),require("../../designer/response-toolbar/index.umd.js"),require("../response-layout/index.umd.js"),require("../../designer/response-layout-editor/index.umd.js"),require("../search-box/index.umd.js"),require("../../designer/section/index.umd.js"),require("../smoke-detector/index.umd.js"),require("../splitter/index.umd.js"),require("../step/index.umd.js"),require("../../designer/switch/index.umd.js"),require("../../designer/tabs/index.umd.js"),require("../../designer/tags/index.umd.js"),require("../text/index.umd.js"),require("../../designer/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("../../designer/textarea/index.umd.js"),require("../schema-selector/index.umd.js"),require("../../designer/tree-grid/index.umd.js"),require("../event-parameter/index.umd.js"),require("../filter-condition-editor/index.umd.js"),require("../fieldset/index.umd.js"),require("../sort-condition-editor/index.umd.js"),require("../menu-lookup/index.umd.js"),require("../../designer/drawer/index.umd.js"),require("../json-editor/index.umd.js"),require("../property-editor/index.umd.js"),require("../expression-editor/index.umd.js"),require("../code-editor/index.umd.js"),require("../html-template/index.umd.js"),require("../collection-property-editor/index.umd.js"),require("../../designer/modal/index.umd.js"),require("../external-container/index.umd.js"),require("../language-textbox/index.umd.js"),require("../image/index.umd.js"),require("../comment/index.umd.js"),require("../../designer/wizard/index.umd.js"),require("../tooltip/index.umd.js"),require("../designer-canvas/index.umd.js"),require("../property-panel/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","../dynamic-resolver/index.umd.js","../common/index.umd.js","lodash-es","../locale/index.umd.js","../dynamic-view/index.umd.js","../section/index.umd.js","../accordion/index.umd.js","../../designer/avatar/index.umd.js","../../designer/approval-logs/index.umd.js","../../designer/button-edit/index.umd.js","../button-group/index.umd.js","../button/index.umd.js","../calendar/index.umd.js","../../designer/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","../table/index.umd.js","../../designer/date-picker/index.umd.js","../../designer/data-grid/index.umd.js","../dropdown/index.umd.js","../../designer/dynamic-form/index.umd.js","../events-editor/index.umd.js","../filter-bar/index.umd.js","../field-selector/index.umd.js","../binding-selector/index.umd.js","../image-cropper/index.umd.js","../../designer/input-group/index.umd.js","../layout/index.umd.js","../list-nav/index.umd.js","../../designer/list-view/index.umd.js","../lookup/index.umd.js","../mapping-editor/index.umd.js","../../designer/nav/index.umd.js","../number-range/index.umd.js","../../designer/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","../../designer/rate/index.umd.js","../../designer/response-toolbar/index.umd.js","../response-layout/index.umd.js","../../designer/response-layout-editor/index.umd.js","../search-box/index.umd.js","../../designer/section/index.umd.js","../smoke-detector/index.umd.js","../splitter/index.umd.js","../step/index.umd.js","../../designer/switch/index.umd.js","../../designer/tabs/index.umd.js","../../designer/tags/index.umd.js","../text/index.umd.js","../../designer/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","../../designer/textarea/index.umd.js","../schema-selector/index.umd.js","../../designer/tree-grid/index.umd.js","../event-parameter/index.umd.js","../filter-condition-editor/index.umd.js","../fieldset/index.umd.js","../sort-condition-editor/index.umd.js","../menu-lookup/index.umd.js","../../designer/drawer/index.umd.js","../json-editor/index.umd.js","../property-editor/index.umd.js","../expression-editor/index.umd.js","../code-editor/index.umd.js","../html-template/index.umd.js","../collection-property-editor/index.umd.js","../../designer/modal/index.umd.js","../external-container/index.umd.js","../language-textbox/index.umd.js","../image/index.umd.js","../comment/index.umd.js","../../designer/wizard/index.umd.js","../tooltip/index.umd.js","../designer-canvas/index.umd.js","../property-panel/index.umd.js"],i):(r=typeof globalThis<"u"?globalThis:r||self,i(r["dynamic-form"]={},r.Vue,r.dynamicResolver,r.common,r.LodashES,r.locale,r.dynamicView,r.FSection,r.FAccordion,r.FAvatar,r.FApprovalLogs,r.FButtonEdit,r.FButtonGroup,r.FButton,r.FCalendar,r.FCapsule,r.FCheckbox,r.FCheckboxGroup,r.FComboList,r.FComboTree,r.FComponent,r.FColorPicker,r.FContentContainer,r.FTable,r.FDatePicker,r.FDataGrid,r.FDropdown,r.FDynamicForm$1,r.FEventsEditor,r.FFilterBar,r.FFieldSelector,r.FBindingSelector,r.FImageCropper,r.FInputGroup,r.FLayout,r.FListNav,r.FListView,r.FLookup,r.FMappingEditor,r.FNav,r.FNumberRange,r.FNumberSpinner,r.FOrder,r.FPageHeader,r.FPageFooter,r.FPagination,r.FProgress,r.FQuerySolution,r.FRadioGroup,r.FRate,r.FResponseToolbar,r.FResponseLayout,r.FResponseLayoutEditorSetting,r.FSearchBox,r.FSection$1,r.FSmokeDetector,r.FSplitter,r.FStep,r.FSwitch,r.FTabs,r.FTags,r.FText,r.FTimePicker,r.FTransfer,r.FTreeview,r.FUploader,r.FVerifyDetail,r.FVideo,r.FTextArea,r.FSchemaSelector,r.FTreeGrid,r.FEventParameter,r.FFilterConditionEditor,r.FFieldset,r.FSortConditionEditor,r.FMenuLookup,r.FDrawer,r.FJsonEditor,r.FPropertyEditor,r.FExpressionEditor,r.FCodeEditor,r.FHtmlTemplate,r.FCollectionPropertyEditor,r.FModal,r.FExternalContainer,r.FLanguageTextbox,r.FImage,r.FComment,r.FWizard,r.FTooltip,r.designerCanvas,r.propertyPanel))})(this,function(r,i,X,te,xe,Te,re,De,Ue,Re,Oe,Ae,$e,Ge,We,Ke,ke,we,_e,ze,Qe,Xe,Je,Ye,Ze,Se,He,et,tt,nt,ot,rt,it,st,at,dt,lt,ct,ut,mt,pt,ft,yt,gt,ht,Ct,Ft,jt,xt,bt,Vt,qt,Me,vt,Tt,kt,wt,Mt,Bt,It,Pt,Nt,Lt,Et,Dt,Ut,Rt,Ot,At,$t,Gt,Wt,Kt,_t,zt,Qt,Xt,Jt,Yt,Zt,St,Ht,en,tn,nn,on,rn,sn,an,dn,ie,de){"use strict";var vn=Object.defineProperty;var Tn=(r,i,X)=>i in r?vn(r,i,{enumerable:!0,configurable:!0,writable:!0,value:X}):r[i]=X;var je=(r,i,X)=>Tn(r,typeof i!="symbol"?i+"":i,X);const ln="root-viewmodel";class cn{constructor(t,s){je(this,"formSchemaUtils");je(this,"controlCreatorUtils");je(this,"designViewModelUtils");this.resolver=t,this.designerHostService=s,this.formSchemaUtils=this.designerHostService.formSchemaUtils,this.controlCreatorUtils=this.designerHostService.controlCreatorUtils,this.designViewModelUtils=this.designerHostService.designViewModelUtils}createComponent(t){const s=this.createComponentRefNode(t),f=this.createComponentNode(t),a=this.createViewModeNode(t),h=this.formSchemaUtils.getFormSchema();return h.module.viewmodels.push(a),h.module.components.push(f),this.designViewModelUtils.assembleDesignViewModel(),s}createComponentRefNode(t){const s=this.resolver.getSchemaByType("component-ref");return Object.assign(s,{id:`${t.componentId}-component-ref`,component:`${t.componentId}-component`}),s}createComponentNode(t){const s=this.resolver.getSchemaByType("component"),f=this.createFormComponentContents(t);return Object.assign(s,{id:`${t.componentId}-component`,viewModel:`${t.componentId}-component-viewmodel`,componentType:t.componentType,appearance:{class:this.getFormComponentClass(t)},formColumns:t.formColumns,contents:f}),s}getFormComponentClass(t){var f,a;const{templateId:s}=this.formSchemaUtils.getFormSchema().module;if(s==="double-list-in-tab-template"&&((a=(f=t.parentComponentInstance)==null?void 0:f.schema)==null?void 0:a.type)==="tab-page"){const h=t.parentComponentInstance.parent&&t.parentComponentInstance.parent.schema;if((h==null?void 0:h.type)==="tabs"&&(h==null?void 0:h.fill)===!0)return"f-struct-wrapper f-utils-fill-flex-column"}return"f-struct-wrapper"}createFormComponentContents(t){var q,V;const s=this.resolver.getSchemaByType("section");Object.assign(s,{id:t.componentId+"-form-section",appearance:{class:"f-section-form f-section-in-mainsubcard"},mainTitle:t.componentName});const f=this.resolver.getSchemaByType("response-form"),a=[];Object.assign(f,{id:t.componentId+"-form",appearance:{class:"f-form-layout farris-form farris-form-controls-inline"},contents:a,controlsInline:!0}),s.contents=[f];const{selectedFields:h}=t;h==null||h.forEach(y=>{if(y.$type===te.FormSchemaEntityField$Type.SimpleField){const N=xe.cloneDeep(y),w=this.resolveControlClassByFormColumns(t),T=this.controlCreatorUtils.setFormFieldProperty(N,"",w);T&&a.push(T)}});const{templateId:g}=this.formSchemaUtils.getFormSchema().module;if(g==="double-list-in-tab-template"&&((V=(q=t.parentComponentInstance)==null?void 0:q.schema)==null?void 0:V.type)==="tab-page"){const y=t.parentComponentInstance.parent&&t.parentComponentInstance.parent.schema;(y==null?void 0:y.type)==="tabs"&&(y==null?void 0:y.fill)===!0&&(s.appearance.class="f-section-grid f-section-in-main px-0 pt-0",s.fill=!0)}return[s]}resolveControlClassByFormColumns(t){let s="";switch(t.formColumns){case 1:{s="col-12 col-md-12 col-xl-12 col-el-12";break}case 2:{s="col-12 col-md-6 col-xl-6 col-el-6";break}case 3:{s="col-12 col-md-6 col-xl-4 col-el-4";break}case 4:{s="col-12 col-md-6 col-xl-3 col-el-2";break}}return s}createViewModeNode(t){return{id:`${t.componentId}-component-viewmodel`,code:`${t.componentId}-component-viewmodel`,name:t.componentName,bindTo:t.bindTo,parent:ln,fields:this.assembleViewModelFields(t),commands:[],states:[],enableValidation:!0}}assembleViewModelFields(t){const s=[],{selectedFields:f}=t;return f==null||f.forEach(a=>{if(a.$type===te.FormSchemaEntityField$Type.SimpleField){let h="blur";const g=a.type.name;(g===te.FormSchemaEntityFieldTypeName.Enum||g===te.FormSchemaEntityFieldTypeName.Boolean)&&(h="change"),s.push({type:"Form",id:a.id,fieldName:a.bindingField,groupId:null,groupName:null,updateOn:h,fieldSchema:{}})}}),s}}function Be(e,t,s,f){var h,g,q,V,y,N;const a=s.parentComponentInstance;if(a&&f){const w=(h=a.schema)==null?void 0:h.type,E={componentId:`form-${Math.random().toString(36).slice(2,6)}`,componentName:((g=s.bindingSourceContext)==null?void 0:g.entityTitle)||((V=(q=s.bindingSourceContext)==null?void 0:q.bindingEntity)==null?void 0:V.name)||"标题",componentType:"form",formColumns:w==="splitter-pane"?1:4,parentContainerId:a.schema.id,parentComponentInstance:a,bindTo:((y=s.bindingSourceContext)==null?void 0:y.bindTo)||"/",selectedFields:(N=s.bindingSourceContext)==null?void 0:N.bindingEntityFields};return new cn(e,f).createComponent(E)}else return t}const un={$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},adaptForLanguage:{description:"",type:"boolean",default:!0},layout:{description:"",type:"string",default:"col-12 col-md-6 col-xl-3 col-el-2"},fields:{description:"",type:"array"},formData:{description:"",type:"object"}},required:["id","type","contents"]},Ie=new Map([["appearance",X.resolveAppearance]]),mn={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/dynamic-form.schema.json",title:"dynamic-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:"dynamic-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},adaptForLanguage:{description:"",type:"boolean",default:!0},layout:{description:"",type:"string",default:"col-12 col-md-6 col-xl-3 col-el-2"},fields:{description:"",type:"array"},formData:{description:"",type:"object"},headerTitleRenderFunction:{description:"",type:"function",default:null},headerContentRenderFunction:{description:"",type:"function",default:null},footerRenderFunction:{description:"",type:"function",default:null},mode:{description:"",type:"string",default:"quick"},footerStyle:{description:"",type:"string",default:""},headerStyle:{description:"",type:"string",default:""},toolbar:{description:"",type:"array",default:[]},moreButtonClass:{description:"",type:"string",default:"btn-link"},onClick:{description:"",type:"string",default:""},onChange:{description:"",type:"string"},callback:{description:"",type:"string"}},required:["id","type","contents"],events:{onClick:"点击事件",onChange:"ֵ值变化事件",event:"内部控件事件",callback:"内部控件属性回调事件"}};var ge=(e=>(e.Header="header",e.Footer="footer",e))(ge||{}),Ce=(e=>(e.QUICK="quick",e.FULL="full",e))(Ce||{});const Fe={customClass:{type:String,default:""},customStyle:{type:String,defaut:""},visible:{type:Boolean,default:!0},adaptForLanguage:{type:Boolean,default:!0},fields:{type:Array,default:[]},formData:{type:Object,default:null},layout:{type:String,default:"col-12 col-md-6 col-xl-3 col-el-2"}},Pe=Object.assign({},Fe,{canRenderForm:{type:Boolean,default:!0},callback:{type:Function},mainTitle:{type:String,default:""},showHeader:{type:Boolean,default:!1},headerTitleRenderFunction:{type:Function},headerContentRenderFunction:{type:Function},footerRenderFunction:{type:Function},showFooter:{type:Boolean,default:!1},expandLabel:{type:String,default:"展开"},collapseLabel:{type:String,default:"收起"},enableAccordion:{type:Boolean,default:!0},mode:{type:String,default:Ce.QUICK},toolbar:{type:[Array,Function],default:[]},headerStyle:{type:[String,Function],default:""},footerStyle:{type:[String,Function],default:""},moreButtonClass:{type:String,default:"btn-link"}}),pn=X.createPropsResolver(Fe,un,Ie,Be),fn=X.createPropsResolver(Fe,mn,Ie,Be);function yn(e,t){function s(g){return e.value&&e.value[g]}const f=[];function a(g){f.push(g)}function h(g,q,V){const y=e.value?e.value[g]:void 0;e.value&&(e.value[g]=V),q&&(t&&(t.emit("update:modelValue",{elementId:g,field:q,value:V,modelValue:e.value}),t.emit("change",{elementId:g,field:q,value:V,modelValue:e.value})),f.forEach(N=>{N({elementId:g,field:q,value:V,oldValue:y,modelValue:e.value})}))}return{getValue:s,setValue:h,onValueChange:a}}const he=i.defineComponent({name:"FDynamicForm",props:Pe,emits:["update:modelValue","change","event","click"],setup(e,t){const s=i.ref(e.fields),f=new Map,a=i.ref(e.callback);re.loadRegister();const h=re.useComponentManager(),g=i.ref(e.formData||{}),q=yn(g,t);re.useEntityState(s.value).setup();const y=new Map,N=i.ref(e.canRenderForm);let w=[],T=[],E=[];const I=e.mode===Ce.FULL?"contents":"fields",{mergeArray:J,resolveCallbacks:S,resolveEvents:Z}=re.useDynamicViewUtils(),R=i.computed(()=>{const n=Te.LocaleService.getLocale(),x=e.fields&&e.fields.length>0;let b={"f-form-layout":x,"farris-form":x,"f-dynamic-form":!(e.showHeader||e.showFooter)};return b=te.getCustomClass(b,e.customClass),e.adaptForLanguage&&n&&(b["farris-form-controls-inline"]=n!=="en"),b});function P(){function n(x,b){const{id:M}=x||{},{field:A}=x.binding||{};return{modelValue:b.getValue(M),"onUpdate:modelValue":ne=>{b.setValue(M,A||M,ne)}}}return{resolve:n}}function D(n){const x=P();return q.getValue(n.id)===void 0&&Object.hasOwnProperty.call(n,"modelValue")&&q.setValue(n.id,void 0,n.modelValue),x.resolve(n,q)}function _(n){const x={};return n&&Object.entries(n).forEach(([b,M])=>{x[b]=()=>Array.isArray(M)?M.map(A=>se(A)):se(M)}),x}function O(n){return n.type?n.type:n[I]?"fieldset":"form-group"}function le(n){const x=O(n),b=n.customClass||"";return b||(x==="fieldset"?"col-12 px-0":w.length===0&&T.length===0||n.id&&E.find(M=>M[I]?M[I].find(A=>A.id===n.id):M.id===n.id)?e.layout:"unset-item")}function ce(n){const x=O(n);let b={},M="",A={},ne={};if(e.mode===Ce.FULL){A={...Z(n,t,x)},ne={...S(n,a,x)};const K=re.componentPropsConverter[x];b=K?K(n):{},M=le(b)}else{M=le(n);const{fields:K,customClass:ee,...ae}=n;b=ae}return{props:{...{...b,customClass:M,...D(n)},key:n.id,ref:K=>{if(K&&n.id&&!h.has(n.id)){h.register(n.id,K);const ee={token:n.id,name:"component:ready",type:O(n),payloads:[i.ref(K)],schema:n};t.emit("event",ee)}},onVnodeUnmounted:K=>{if(n.id&&h.has(n.id)){h.remove(n.id);const ee={token:n.id,name:"component:unmounted",type:O(n),payloads:[K],schema:n};t.emit("event",ee)}}},eventProps:A,callbackProps:ne}}function H(n,x){return Array.isArray(n)?n.map(b=>x(b)):x(n)}function se(n,x){var me;const b=O(n),M=re.componentMap[b];if(n.id&&f.set(n.id,n),!M)return null;const A=()=>n[I]?n[I].map(K=>se(K)):null,ne=(K,ee,ae)=>{let ye;return ae&&ae.length>0?ye=i.createVNode(K,{...ee},ae):ye=i.createVNode(K,{...ee},null),ye},fe=((me=y.get(n.id))==null?void 0:me.props)||{};return n[I]&&n[I].length>0?ne(M,fe,[A()]):n.slots?ne(M,fe,[...Object.values(_(n.slots))]):ne(M,fe)}function ue(n){const x=O(n);if(!re.componentMap[x])return;const{props:M,eventProps:A,callbackProps:ne}=ce(n),fe=re.resolverMap[x],me=fe?fe.editorResolver:null,{componentEventProps:K,editorEventProps:ee}=A,{componentCallbackProps:ae,editorCallbackProps:ye}=ne;if(K&&Object.keys(K).length>0&&Object.assign(M,K),ae&&Object.keys(ae).length>0&&Object.assign(M,ae),me&&ee&&Object.keys(ee).length>0){const oe=me.resolve(n);Object.assign(oe,ee)}if(me&&ye&&Object.keys(ye).length>0){const oe=me.resolve(n);Object.assign(oe,ye)}if(M&&Object.keys(M).length>0){const oe=y.get(n.id);oe?xe.merge(oe==null?void 0:oe.props,M):y.set(n.id,i.reactive({props:M}))}!n[I]||!Array.isArray(n[I])||n[I].forEach(oe=>ue(oe))}function pe(n){const x=O(n);re.componentMap[x]&&(L(n),!(!n[I]||!Array.isArray(n[I]))&&n[I].forEach(M=>pe(M)))}function L(n){const x=D(n);if(x&&Object.keys(x).length>0){const b=y.get(n.id);if(!b)y.set(n.id,i.reactive({props:x}));else{const M={...b==null?void 0:b.props};Object.keys(x).forEach(A=>{M[A]=x[A]}),Object.assign(b==null?void 0:b.props,M)}}}i.onMounted(()=>{}),i.watch(()=>e.formData,n=>{g.value=n}),i.watch(()=>g.value,n=>{H(s.value,pe)},{deep:!0});function G(n,x=""){return x?n.filter(b=>b.position===x):n.filter(b=>!b.position||[ge.Header,ge.Footer].indexOf(b.position)<0)}function o(n){n&&(w=G(n,ge.Header),w.length&&H(w,ue),T=G(n,ge.Footer),T.length&&H(T,ue),E=G(n),E.length&&H(E,ue))}i.watch(()=>e.fields,n=>{f.clear(),h.clear(),g.value=e.formData||{},y.clear(),s.value=n,o(n)}),o(e.fields);function d(n){n.$forceUpdate&&n.$forceUpdate()}function p(n){return q.getValue(n)}function F(){return g.value}function v(n,x){q.setValue(n,void 0,x);const b=f.get(n);b&&L(b)}function k(n){var x;return(x=y.get(n))==null?void 0:x.props}function B(n,x){const b=y.get(n);xe.mergeWith(b==null?void 0:b.props,x,J)}t.expose({componentManager:h,rerender:d,getProps:k,setProps:B,getControlValue:p,setControlValue:v,getValues:F});function j(n=[]){return n.length>0&&H(n,se)}function C(n){return i.withDirectives(i.createVNode("div",{class:R.value,style:e.customStyle},[t.slots.default&&t.slots.default(),n.length>0&&H(n,se)]),[[i.resolveDirective("area-response")]])}function U(){const n={};let x="f-dynamic-form-section--header-content",b="f-dynamic-form-section--footer";return e.showHeader&&(t.slots.headerTitle&&(n.headerTitle=()=>{var M,A;return(A=(M=t.slots).headerTitle)==null?void 0:A.call(M)}),x+=e.headerContentRenderFunction||t.slots.headerContent?" f-dynamic-form-section--header-cotnent-tmpl":"",t.slots.headerContent?n.headerContent=()=>{var M,A;return(A=(M=t.slots).headerContent)==null?void 0:A.call(M)}:!e.headerContentRenderFunction&&w.length>0&&(n.headerContent=()=>i.withDirectives(i.createVNode("div",{class:"f-form-layout farris-form farris-form-controls-inline f-dynamic-form-section--fields"},[j(w)]),[[i.resolveDirective("area-response")]]))),e.showFooter&&(b+=e.footerRenderFunction||t.slots.footer?" f-dynamic-form-section--footer-tmpl":0,t.slots.footer?n.footer=()=>{var M,A;return(A=(M=t.slots).footer)==null?void 0:A.call(M)}:!e.footerRenderFunction&&T.length>0&&(b+=T.length>0?" f-form-layout farris-form farris-form-controls-inline f-dynamic-form-section--fields":"",n.footer=()=>j(T))),{slots:n,footerClass:b,headerContentClass:x}}const $=i.computed(()=>typeof e.toolbar=="function"?e.toolbar():e.toolbar),z=i.computed(()=>e.headerStyle?typeof e.headerStyle=="function"?e.headerStyle():e.headerStyle:""),W=i.computed(()=>e.footerStyle?typeof e.footerStyle=="function"?e.footerStyle():e.footerStyle:"");function Y(n,x){t.emit("click",n,x)}function Q(){const{slots:n,footerClass:x,headerContentClass:b}=U();return i.createVNode(De,{customClass:"f-dynamic-form-section",showHeader:e.showHeader,mainTitle:e.mainTitle,enableAccordion:e.enableAccordion?"default":"",headerContentClass:b,footerClass:x,buttons:$.value,headerStyle:z.value,footerStyle:W.value,headerTitleRenderFunction:e.showHeader&&e.headerTitleRenderFunction?()=>e.headerTitleRenderFunction():null,headerContentRenderFunction:e.showHeader&&e.headerContentRenderFunction?()=>e.headerContentRenderFunction():null,footerRenderFunction:e.showFooter&&e.footerRenderFunction?()=>e.footerRenderFunction():null,buttonsClass:"col-auto",onClick:Y,moreButtonClass:e.moreButtonClass},{default:()=>C(E),...n})}return()=>e.visible?e.showHeader||e.showFooter?Q():N.value&&C(s.value)||!N.value&&j(s.value):null}}),be=i.defineComponent({name:"FResponseForm",props:Fe,emits:[],setup(e,t){var w;const s=i.ref(),f=i.ref(),a=i.computed(()=>{const T=Te.LocaleService.getLocale(),E=e.fields&&e.fields.length>0;let I={"drag-container":!0,"f-form-layout":E,"farris-form":E};return I=te.getCustomClass(I,e.customClass),e.adaptForLanguage&&T&&(I["farris-form-controls-inline"]=T!=="en"),I}),h=(w=f.value)==null?void 0:w.componentManager;function g(T){f.value.render(T)}function q(T){return f.value.getControlValue(T)}function V(T,E){f.value.setControlValue(T,E)}function y(T){return f.value.getProps(T)}function N(T,E){f.value.setProps(T,E)}return t.expose({componentManager:h,rerender:g,getProps:y,setProps:N,getControlValue:q,setControlValue:V}),()=>e.visible&&i.withDirectives(i.createVNode("div",{ref:s,class:a.value,style:e.customStyle},[t.slots.default&&t.slots.default(),e.fields&&e.fields.length>0&&i.createVNode(he,{ref:f,fields:e.fields,canRenderForm:!1,formData:e.formData,layout:e.layout},null)]),[[i.resolveDirective("area-response")]])}}),Ne={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],default:null},visible:{type:Boolean,default:!0},required:{type:Boolean,default:!1},showLabel:{type:Boolean,default:!0},showLabelType:{type:String,default:"visible"},type:{type:String,default:"input-group"},componentId:{type:String,default:""},errors:{type:Object,default:null},fill:{type:Boolean,default:!1},enableTips:{type:Boolean,default:!1},tipsContent:{type:[Object,String],default:""},linkLabel:{type:String,default:!1}},gn={id:{type:String},required:{type:Boolean,default:!1},text:{type:String,default:""},title:{type:String},valid:{type:Boolean,default:!0},inValidTip:{type:String,default:""},showType:{type:String,default:"visible"},isLink:{type:Boolean,default:!1}},Le=i.defineComponent({name:"FDynamicFormLabel",props:gn,emits:["clickLabel"],setup(e,t){i.ref(e.title||e.text);const s=i.ref(e.required),f=i.ref(e.text),a=i.ref(e.valid),h=i.ref(e.inValidTip);i.watch(()=>e.text,()=>{f.value=e.text}),i.watch(()=>e.required,(T,E)=>{T!==E&&(s.value=T)}),i.watch([()=>e.valid,()=>e.inValidTip],([T,E])=>{a.value=T,h.value=E});const g=i.computed(()=>a.value?f.value:h.value),q=i.computed(()=>a.value?"":"color:red"),V=i.computed(()=>({"col-form-label":!0,"f-width-auto":s.value&&(e.showType==="none"||!f.value)})),y=i.computed(()=>e.showType==="force-none"?!1:e.showType==="reserve-space"||s.value||e.showType!=="none"),N=()=>{e.showType!=="reserve-space"&&t.emit("clickLabel")},w=i.computed(()=>({"farris-label-text":!0,"f-pretend-link":!!e.isLink&&e.showType!=="reserve-space"}));return()=>y.value&&i.createVNode("label",{class:V.value,title:g.value,style:q.value},[!a.value&&i.createVNode("span",{class:"f-icon f-icon-warning mr-1",style:"color: red; min-width: 16px;",title:h.value},null),i.createVNode("span",{class:w.value,onClick:N},[s.value&&i.createVNode("span",{class:"farris-label-info text-danger"},[i.createTextVNode("*")]),e.showType==="visible"&&f.value])])}}),{globalStorageKey:hn}=te.useThirdComponent(),l={},c={},u={},m={};async function Cn(){{const e={schemaMap:X.schemaMap,propertyConfigSchemaMap:X.propertyConfigSchemaMap,propertyEffectMap:X.propertyEffectMap,schemaResolverMap:X.schemaResolverMap};Re.register(l,c,u,m),Ue.register(l,c,u,m),Oe.register(l,c,u,m,e),Ae.register(l,c,u,m),$e.register(l,c,u,m),Ge.register(l,c,u,m),We.register(l,c,u,m,e),Ke.register(l,c,u,m),ke.register(l,c,u,m,e),we.register(l,c,u,m,e),ke.register(l,c,u,m,e),we.register(l,c,u,m,e),_e.register(l,c,u,m,e),ze.register(l,c,u,m,e),Qe.register(l,c,u,m),Je.register(l,c,u,m,e),Ye.register(l,c,u,m,e),Xe.register(l,c,u,m,e),Ze.register(l,c,u,m,e),Se.register(l,c,u,m,e),He.register(l,c,u,m),et.register(l,c,u,m,e),tt.register(l,c,u,m),Zt.register(l,c,u,m),nt.register(l,c,u,m,e),ot.register(l,c,u,m),Kt.register(l,c,u,m),it.register(l,c,u,m,e),st.register(l,c,u,m,e),at.register(l,c,u,m,e),lt.register(l,c,u,m,e),dt.register(l,c,u,m),ct.register(l,c,u,m,e),ut.register(l,c,u,m),mt.register(l,c,u,m,e),pt.register(l,c,u,m,e),ft.register(l,c,u,m,e),yt.register(l,c,u,m),gt.register(l,c,u,m,e),ht.register(l,c,u,m),Ct.register(l,c,u,m,e),Ft.register(l,c,u,m,e),jt.register(l,c,u,m,e),xt.register(l,c,u,m,e),bt.register(l,c,u,m,e),qt.register(l,c,u,m,e),Me.register(l,c,u,m),Vt.register(l,c,u,m,e),$t.register(l,c,u),vt.register(l,c,u,m,e),Tt.register(l,c,u,m,e),kt.register(l,c,u,m),wt.register(l,c,u,m,e),Mt.register(l,c,u,m,e),Bt.register(l,c,u,m,e),zt.register(l,c,u,m),It.register(l,c,u,m,e),Pt.register(l,c,u,m,e),Nt.register(l,c,u,m),Lt.register(l,c,u,m,e),Et.register(l,c,u,m,e),Dt.register(l,c,u,m,e),Rt.register(l,c,u,m),Ut.register(l,c,u,m,e),Ot.register(l,c,u,m),At.register(l,c,u,m,e),Gt.register(l,c,u,m,e),rt.register(l,c,u,m,e),Wt.register(l,c,u,m,e),_t.register(l,c,u,m,e),Qt.register(l,c,u,m,e),Xt.register(l,c,u,m,e),Jt.register(l,c,u,m,e),Yt.register(l,c,u,m,e),St.register(l,c,u,m),Ht.register(l,c,u,m,e),en.register(l,c,u,m),tn.register(l,c,u,m),nn.register(l,c,u,m),on.register(l,c,u,m,e),rn.register(l,c,u,m,e),sn.register(l,c,u,m,e),an.register(l,c,u,m,e);const t=window[hn];if(t)for(const s in t)t[s].createPropsResolver=X.createPropsResolver,t[s].register(l,c,u)}}function Ve(){Cn();function e(g){const q=l[g];if(!q)throw new Error(`Could not find the editor of type '${g}'`);return q}function t(g,q){const V=c[g];return V?V(q):{}}function s(g){switch(g){case"check-box":return"onChangeValue";case"switch":return"onModelValueChanged";case"check-group":return"onChangeValue";case"combo-list":case"combo-tree":return"onChange";case"combo-lookup":return"";case"year-range":case"year-picker":case"month-range":case"month-picker":case"date-range":case"datetime-range":case"datetime-picker":return"onDatePicked";case"date-picker":return"onUpdate:modelValue";case"time-picker":return"onValueChange";case"input-group":return"onChange";case"lookup":case"sort-condition-editor":case"filter-condition-editor":case"code-editor":case"language-textbox":case"rich-text-editor":return"onUpdate:modelValue";case"number-range":return"onValueChange";case"number-spinner":return"onValueChange";case"radio-group":return"onChangeValue";case"text":return"";case"events-editor":return"onSavedCommandListChanged";case"grid-field-editor":case"item-collection-editor":case"response-form-layout-setting":case"response-layout-editor-setting":case"response-layout-splitter":case"menu-lookup":case"json-editor":return"onChange";case"field-selector":case"binding-selector":return"onFieldSelected";case"schema-selector":return"onSchemaSelected";case"mapping-editor":return"onMappingFieldsChanged";case"textarea":return"onChange";case"query-solution-config":case"solution-preset":case"filter-bar-config":return"onFieldsChanged";case"property-editor":return"onValueChange";case"expression-editor":return"onExpressionChanged";case"collection-property-editor":return"onValueChange";default:return"onUpdate:modelValue"}}function f(g){switch(g){case"combo-list":case"input-group":case"textarea":return"onClear"}}function a(g){switch(g){case"input-group":case"textarea":return"onMousedownEvent"}}function h(g){switch(g){case"input-group":case"textarea":return"onMouseupEvent"}}return{resolveEditorProps:t,resolveEditorType:e,getChangeFunctionName:s,getClearFunctionName:f,getMousedownFunctionName:a,getMouseupFunctionName:h}}const Fn={errors:{type:Object,default:null}},jn=i.defineComponent({name:"FValidationMessage",props:Fn,emits:[],setup(e,t){const s=i.ref(e.errors);i.watch(()=>e.errors,h=>{s.value=h});const f=i.ref(!0),a=i.computed(()=>{if(s.value){const h=Object.keys(s.value).map(g=>{var q;return(q=s.value[g])==null?void 0:q.name});return h.length?h.join(" "):""}return""});return()=>a.value&&i.createVNode("div",{class:"farris-feedback f-state-invalid",onClick:()=>f.value=!f.value},[!f.value&&i.createVNode("span",{class:"f-icon f-icon-message_warning f-feedback-icon"},null),f.value&&i.createVNode("span",{class:"f-feedback-message"},[a.value])])}}),qe=i.defineComponent({name:"FDynamicFormGroup",props:Ne,emits:["change","update:modelValue","clickLabel"],setup(e,t){var pe;const s=i.ref(e.id),f=i.ref(e.customClass),a=i.ref(e.editor),h=i.ref(e.label),g=i.ref(e.modelValue),q=i.ref(e.readonly),V=i.ref(((pe=e.editor)==null?void 0:pe.required)||e.required),y=i.ref(e.showLabel),N=i.ref(e.visible);i.ref(e.type);const w=i.ref(),T=i.ref(e.errors),E=te.isMobilePhone(),I=i.ref(e.editor.type||"input-group"),J=i.computed(()=>y.value?e.showLabelType:"none"),{resolveEditorProps:S,resolveEditorType:Z,getChangeFunctionName:R,getClearFunctionName:P}=Ve(),D=i.computed(()=>{const L={"form-group":!0,"farris-form-group":!0,"common-group":!0,"q-state-readonly":q.value,"align-items-start":a.value.type==="textarea"||a.value.type==="rich-text-editor","form-group--in-mobile":E};return L["form-group--has-"+I.value]=!0,L}),_=i.computed(()=>{if(e.fill)return{maxWidth:"none"}});function O(L,G,o){g.value=G!==void 0?G:L,t.emit("update:modelValue",g.value),t.emit("change",g.value,{newValue:L,newModelValue:G,parameters:o})}function le(L){return(...G)=>{typeof L=="function"&&L(...G)}}function ce(L){return(G,o,d)=>{O(G,o,d),typeof L=="function"&&L(G,o,d)}}const H=i.computed(()=>{const L=a.value.type||"input-group",G=Z(L),o=S(L,a.value),d=R(L),p=P(a.value.type);return p&&(o[p]=le(o[p])),d&&(o[d]=ce(o[d])),(o.id==null||o.id==="")&&(o.id=s.value),L==="number-range"&&a.value.onBeginValueChange&&typeof a.value.onBeginValueChange=="function"?(a.value.onBeginValueChange&&typeof a.value.onBeginValueChange=="function"&&(o.onBeginValueChange=a.value.onBeginValueChange),a.value.onEndValueChange&&typeof a.value.onEndValueChange=="function"&&(o.onEndValueChange=a.value.onEndValueChange)):L==="lookup"&&a.value["onUpdate:idValue"]&&typeof a.value["onUpdate:idValue"]=="function"?(o["onUpdate:idValue"]=a.value["onUpdate:idValue"],o.id=s.value):L==="collection-property-editor"&&a.value.onSelectionChange&&typeof a.value.onSelectionChange=="function"?o.onSelectionChange=a.value.onSelectionChange:L==="property-editor"&&(o.onBeforeOpenVariables=a.value.onBeforeOpenVariables),(L==="lookup"||L==="combo-list"||L==="date-picker")&&(o.title=h.value),()=>i.createVNode(G,i.mergeProps({ref:w},o,{modelValue:g.value,"onUpdate:modelValue":F=>g.value=F}),t.slots)});function se(){return i.createVNode(jn,{id:`${s.value}-validation-message`,errors:T.value},null)}i.watch([()=>e.id,()=>e.customClass,()=>e.editor,()=>e.label,()=>e.modelValue,()=>e.readonly,()=>e.required,()=>e.showLabel,()=>e.visible,()=>e.errors],([L,G,o,d,p,F,v,k,B,j])=>{var C;s.value=L,f.value=G,a.value=o,h.value=d,g.value=p,q.value=F,V.value=((C=a.value)==null?void 0:C.required)||v,y.value=k,N.value=B,T.value=j});function ue(L){t.emit("clickLabel",L)}return t.expose({editorRef:w}),()=>N.value&&i.createVNode("div",{id:`${s.value}-form-group`,class:f.value,style:e.customStyle},[i.createVNode("div",{class:"farris-group-wrap",style:_.value},[i.createVNode("div",{class:D.value},[t.slots.label?t.slots.label():i.createVNode(Le,{id:`${s.value}-lable`,showType:J.value,required:V.value,text:h.value,title:h.value,isLink:!!e.linkLabel,onClickLabel:ue},null),i.createVNode("div",{class:"farris-input-wrap"},[t.slots.content?t.slots.content():H.value(),se()]),!!e.enableTips&&i.createVNode(dn,null,{default:()=>[i.createVNode("span",{class:"farris-label-tips ml-1"},[i.createVNode("i",{class:"f-icon f-icon-description-tips"},null)])],contentTemplate:e.tipsContent})])])])}}),Ee={id:{type:String,default:""},editor:{type:Object,default:{}},modelValue:{type:[String,Boolean,Array,Number]},focusOnCreated:{type:Boolean,default:!1},selectOnCreated:{type:Boolean,default:!1}},ve=i.defineComponent({name:"FDynamicFormInput",props:Ee,emits:["change","update:modelValue","mousedown","mouseup"],setup(e,t){const s=i.ref(e.id),f=i.ref(e.editor),a=i.ref(e.modelValue),{resolveEditorProps:h,resolveEditorType:g,getChangeFunctionName:q,getMousedownFunctionName:V,getMouseupFunctionName:y,getClearFunctionName:N}=Ve();function w(R,P,D){a.value=P!==void 0?P:R,t.emit("update:modelValue",a.value),t.emit("change",a.value,{newValue:R,newModelValue:P,parameters:D})}function T(R){t.emit("mousedown",R)}function E(R){t.emit("mouseup",R)}function I(){t.emit("update:modelValue","")}function J(R){return(...P)=>{I(),typeof R=="function"&&R(...P)}}function S(R){return(P,D,_)=>{w(P,D,_),typeof R=="function"&&R(P,D,_)}}const Z=i.computed(()=>{const R=g(f.value.type),P=h(f.value.type,f.value);P.focusOnCreated=e.focusOnCreated,P.selectOnCreated=e.selectOnCreated;const D=q(f.value.type),_=N(f.value.type);_&&(P[_]=J(P[_])),D&&(P[D]=S(P[D]));const O=V(f.value.type);P[O]=T;const le=y(f.value.type);return P[le]=E,P.id=s.value,()=>i.createVNode(R,i.mergeProps(P,{modelValue:a.value,"onUpdate:modelValue":ce=>a.value=ce}),null)});return i.watch([()=>e.id,()=>e.editor,()=>e.modelValue],([R,P,D])=>{s.value=R,f.value=P,a.value=D}),()=>Z.value()}});function xn(e,t){function s(V,y=null){if(y)return y;const N=e.getComponentById(t);return e.selectNode(N,w=>w.id===V)}function f(V){const y=e.getComponentById(V);return!(!y||!y.componentType||!y.componentType.startsWith("form"))}function a(V){const y=new Set(V);return Array.from(y).length===1}function h(V){const y=s(V.id),N=Me.useResponseLayoutEditorSetting(e),w=[];N.getResonseFormLayoutConfig(y,w,1);const T=w.map(D=>D.columnInSM),E=w.map(D=>D.columnInMD),I=w.map(D=>D.columnInLG),J=w.map(D=>D.columnInEL),S=a(T)?T[0]:0,Z=a(E)?E[0]:0,R=a(I)?I[0]:0,P=a(J)?J[0]:0;return{uniqueColClassInSM:S,uniqueColClassInMD:Z,uniqueColClassInLG:R,uniqueColClassInEL:P}}function g(V,y){let N,w,T,E,I=[];if(V){const D=V.split(" "),_=D.filter(O=>O.startsWith("col-"));N=_.find(O=>/^col-([1-9]|10|11|12)$/.test(O)),w=_.find(O=>/^col-md-([1-9]|10|11|12)$/.test(O)),T=_.find(O=>/^col-xl-([1-9]|10|11|12)$/.test(O)),E=_.find(O=>/^col-el-([1-9]|10|11|12)$/.test(O)),I=D.filter(O=>!O.startsWith("col-"))}const J=y.uniqueColClassInSM?"col-"+y.uniqueColClassInSM:N,S=y.uniqueColClassInMD?"col-md-"+y.uniqueColClassInMD:w,Z=y.uniqueColClassInLG?"col-xl-"+y.uniqueColClassInLG:T,R=y.uniqueColClassInEL?"col-el-"+y.uniqueColClassInEL:E;return[J,S,Z,R].concat(I).join(" ")}function q(V,y,N){V=s(N,V),V.contents.forEach(w=>{if(w.type===ie.DgControl["dynamic-form"].type)return;if(w.type===ie.DgControl.fieldset.type){q(w,y,w.id);return}w.appearance||(w.appearance={});const T=w.appearance.class;w.appearance.class=g(T,y)})}return{checkIsInFormComponent:f,assembleUnifiedLayoutContext:h,changeFormControlsByUnifiedLayoutConfig:q,changeControlClassInByColumn:g}}class bn extends de.BaseControlProperty{constructor(t,s){super(t,s)}getBaseFormAppearanceConfig(t,s,f){const a=this,{assembleUnifiedLayoutContext:h,changeFormControlsByUnifiedLayoutConfig:g,changeControlClassInByColumn:q}=xn(this.formSchemaUtils,this.componentId),V=this.getAppearanceConfig(s);return V.properties.adaptForLanguage={title:"控件布局响应国际化",description:"启用国际化后:简体中文、繁体中文环境下控件标签与输入框在一行展示,其他语言环境下控件标签与输入框上下排列。",type:"boolean"},V.properties.labelAutoOverflow={title:"控件标签换行",description:"控件标签字数超长时,换行显示。控件标签与输入框在一行展示时,此属性有效。",type:"boolean"},V.properties.unifiedLayout={title:"统一布局配置",description:"统一配置卡片区域内所有控件的宽度,只支持标准模式",refreshPanelAfterChanged:!0,editor:{type:"response-form-layout-setting",initialState:h(s)}},V.setPropertyRelates=function(y,N){if(y)switch(y&&y.propertyID){case"unifiedLayout":{s.layout=q("",y.propertyValue),t==="dynamic"?s.layout=q("",y.propertyValue):(g(null,y.propertyValue,s.id),a.updateElementByParentContainer(s.id,f));break}case"labelAutoOverflow":{a.setLabelAutoOverflow(s,y.propertyValue),ie.refreshCanvas();break}}},V}getBaseFormBehaviorConfig(t,s){const f=this,a=this.getPropertyEditorParams(s,["Variable","Custom"],"fields",{},{newVariablePrefix:"",newVariableType:"Array"}),h=this.getPropertyEditorParams(s,["Variable","Custom"],"formData",{},{newVariablePrefix:"",newVariableType:"Object"});let g={};return t==="dynamic"&&(g={fields:{title:"动态控件列表",type:"string",description:"动态控件列表",editor:a},formData:{title:"动态控件列表初始值",type:"string",description:"动态控件列表初始值",editor:h},mode:{description:"两种方式,快速模式下,控件属性写法支持组件的属性,可以直接写回调和事件,比如onClick: () => {}。完整模式下,控件属性写法与设计时schema一致。",title:"渲染模式",type:"enum",editor:{default:"quick",readonly:!0,data:[{id:"quick",name:"快速模式"},{id:"full",name:"完整模式"}]}}}),this.getBehaviorConfig(s,"",g,(q,V)=>{switch(q.propertyID){case"fields":case"formData":f.afterMutilEditorChanged(s,q);break}})}setLabelAutoOverflow(t,s,f){if(!f){const a=this.formSchemaUtils.getComponentById(this.componentId);f=this.formSchemaUtils.selectNode(a,h=>h.id===t.id)}f&&f.contents&&f.contents.length&&f.contents.forEach(a=>{if(a.type===ie.DgControl.fieldset.type){this.setLabelAutoOverflow(null,s,a);return}a.appearance||(a.appearance={class:""}),a.appearance.class||(a.appearance.class=""),s?a.appearance.class.includes("farris-group-multi-label")||(a.appearance.class=a.appearance.class+" farris-group-multi-label"):a.appearance.class=a.appearance.class.replace("farris-group-multi-label","").trim()})}}class Vn extends bn{constructor(t,s){super(t,s)}getPropertyConfig(t,s){return this.propertyConfig.categories.basic=this.getBasicPropConfig(t),this.propertyConfig.categories.appearance=this.getBaseFormAppearanceConfig("default",t,s),this.propertyConfig.categories.behavior=this.getBaseFormBehaviorConfig("default",t),this.propertyConfig}}function qn(e,t){const s=e.schema,f=new ie.UseTemplateDragAndDropRules,{canMove:a,canAccept:h,canDelete:g}=f.getTemplateRule(e,t);function q(o,d){const{sourceElement:p}=o,{componentInstance:F}=p,v=t==null?void 0:t.formSchemaUtils;if(!v)return!0;const k=v.getComponentById(F.value.belongedComponentId),B=v.getViewModelById(k.viewModel),j=v.getComponentById(e.componentInstance.value.belongedComponentId),C=v.getViewModelById(j.viewModel);return d?B!=null&&B.id&&(C!=null&&C.id)&&B.id!==C.id?B.bindTo===C.bindTo:!0:(B==null?void 0:B.id)===(C==null?void 0:C.id)}function V(o){const{bindingTargetId:d}=o;if(!t)return;const{formSchemaUtils:p,schemaService:F}=t,v=p.getComponentById(e.componentInstance.value.belongedComponentId),k=F.getFieldByIDAndVMID(d,v.viewModel);return!!(k!=null&&k.schemaField)}function y(o){const d=f.getComponentContext(e);if(d&&d.componentClassList&&d.componentClassList.includes("f-form-layout")&&d.componentClassList.includes("farris-form")){if(o.sourceType==="control"&&(o.componentCategory==="input"||o.componentType&&["fieldset","dynamic-form"].indexOf(o.componentType)>-1))return!0;if(o.sourceType==="move"){if(o.componentType==="form-group")return q(o,!0);if(o.componentType==="fieldset")return q(o,!1);if(o.componentType==="dynamic-form")return!0}return o.sourceType==="field"&&o.componentCategory==="input"?V(o):!1}return!0}function N(o){return!(!ie.useDragulaCommonRule().basalDragulaRuleForContainer(o,t)||!h||!y(o))}function w(o){var C;const d=o.componentInstance,p=d.value.schema,F=t==null?void 0:t.formSchemaUtils,v=t==null?void 0:t.designViewModelUtils,k=F.getViewModelIdByComponentId(d.value.belongedComponentId),B=v.getDgViewModel(k),j=d.value.parent;if(j&&ie.DgControl.fieldset&&((C=j.schema)==null?void 0:C.type)===ie.DgControl.fieldset.type&&B){const U={groupId:null,groupName:null};switch(p.binding.type){case de.FormBindingType.Form:{B.changeField(p.binding.field,U);break}case de.FormBindingType.Variable:{F.modifyViewModelFieldById(k,p.binding.field,U,!0);break}}}}function T(o,d,p){const F=d.fields.find(C=>C.id===o),v=t==null?void 0:t.designViewModelUtils,k=v.getDgViewModel(d.id),B=k.fields.find(C=>C.id===o);k.removeField([o]);const j=v.getDgViewModel(p);j.addField(B),F.fieldSchema&&j.changeField(B.id,F.fieldSchema)}function E(o,d,p,F=[]){const v=d.id,k=o.binding.field,B=d.fields.findIndex(C=>C.id===k);if(B>-1&&(p.fields.push(d.fields[B]),d.fields.splice(B,1)),v==="root-viewmodel"&&p.id!=="root-viewmodel"){o.binding.path&&!o.binding.path.includes("root-component.")&&(o.binding.path="root-component."+o.binding.path);return}if(p.id==="root-viewmodel"&&v!=="root-viewmodel"&&o.binding.path&&o.binding.path.includes("root-component.")){o.binding.path=o.binding.path.replace("root-component.","");return}const j=d.states.find(C=>C.id===k);j&&(p.states=p.states?p.states:[],p.states.findIndex(C=>C.id===j.id)<0&&(p.states.push(j),F.push(j.id)))}function I(o,d,p,F=[]){var B;if(!o)return;const v=d.id==="root-viewmodel"&&p.id!=="root-viewmodel",k=p.id==="root-viewmodel"&&d.id!=="root-viewmodel";Object.keys(o).forEach(j=>{if(j==="binding")return;const C=o[j];if(C&&typeof C=="object"&&C.type===de.FormBindingType.Variable&&C.field){if(v){C.path&&!C.path.includes("root-component.")&&(C.path="root-component."+C.path);return}if(k&&C.path&&C.path.includes("root-component.")){C.path=C.path.replace("root-component.","");return}const U=d.states.find($=>$.id===C.field);if(U){F.push(U.id),p.states=p.states?p.states:[];const $=p.states.find(z=>z.code===U.code);if($)C.field=$.id;else{const z=Object.assign({},{newId:te.useGuid().guid()},U);p.states.push(z),C.field=z.newId}}}}),(B=p.states)!=null&&B.length&&p.states.map(j=>{j.newId&&(j.id=j.newId,delete j.newId)})}function J(o,d,p){if(o&&(d(o,p),o.contents))for(const F of o.contents)J(F,d,p)}function S(o=[],d){if(!o.length)return;const p=t==null?void 0:t.formSchemaUtils,F=p.getComponentByViewModelId(d),v=[],k=(j,C)=>{j&&(Object.keys(j).forEach(U=>{const $=j[U];$&&typeof $=="object"&&$.type===de.FormBindingType.Variable&&o.includes($.field)&&!C.includes($.field)&&C.push($.field)}),j.editor&&k(j.editor,C))};J(F,k,v);const B=p.getViewModelById(d);o.forEach(j=>{v.includes(j)||(B.states=B.states.filter(C=>C.id!==j))})}function Z(o){const d=te.useGuid().guid(),p=Object.assign({},o,{id:d,code:o.code+d.slice(0,4),name:o.name+d.slice(0,4)}),k=(t==null?void 0:t.formSchemaUtils).getCommands().find(B=>B.id===o.cmpId);return k&&k.refedHandlers.push({host:d,handler:o.handlerName}),p}function R(o,d,p){var U,$;const F={},k=(t==null?void 0:t.formSchemaUtils).resolveComponentEvents(X.schemaMap,o);if(!k)return;Object.keys(o).forEach(z=>{const W=Object.keys(k).find(Y=>Y===z);if(W&&o[W]){const Y=d.commands.find(Q=>Q.code===o[W]);if(Y){let Q=F[Y.code];Q||(Q=Z(Y),F[Y.code]=Q,p.commands.push(Q)),o[W]=Q.code}}});const j=(t==null?void 0:t.designViewModelUtils).getDgViewModel(p.id),C=["valueChanging","valueChanged"];if(((U=o.binding)==null?void 0:U.type)===de.FormBindingType.Form){const z=($=p.fields)==null?void 0:$.find(W=>W.id===o.binding.field);z&&C.forEach(W=>{if(z[W]){const Y=d.commands.find(Q=>Q.code===z[W]);if(!Y)return;if(F[Y.code])j.changeField(z.id,{[W]:F[Y.code].code});else{const Q=Z(Y);F[Y.code]=Q,p.commands.push(Q),j.changeField(z.id,{[W]:Q.code})}}})}}function P(o){var C,U;const d=t==null?void 0:t.formSchemaUtils,p=o.componentInstance,F=p.value.schema,v=d.getViewModelIdByComponentId(p.value.belongedComponentId),k=d.getViewModelById(v),B=d.getComponentById(e.componentInstance.value.belongedComponentId),j=d.getViewModelById(B.viewModel);if(v!==j.id){const $=(C=F.binding)==null?void 0:C.type,z=(U=F.binding)==null?void 0:U.field,W=[];switch($){case de.FormBindingType.Form:{T(z,k,j.id);break}case de.FormBindingType.Variable:{E(F,k,j,W);break}}I(F,k,j,W),I(F.editor,k,j,W),R(F,k,j),v!=="root-viewmodel"&&S(W,v)}}function D(o){var F;if(!o||!o.componentInstance)return;const p=o.componentInstance.value.schema;if(p.type==="dynamic-form"){const v=((F=p==null?void 0:p.appearance)==null?void 0:F.class)||"";v.indexOf("col-12")<0&&(p.appearance={...p.appearance,class:v+" col-12 px-0"}),P(o);return}!p.binding||!p.binding.field||(w(o),P(o))}function _(){return s.componentType?"display:inherit;flex-direction:inherit;margin-bottom:10px":""}function O(o){let d="";switch(o){case 1:{d="col-12 col-md-12 col-xl-12 col-el-12";break}case 2:{d="col-12 col-md-6 col-xl-6 col-el-6";break}case 3:{d="col-12 col-md-6 col-xl-4 col-el-4";break}case 4:{d="col-12 col-md-6 col-xl-3 col-el-2";break}}return d}function le(o,d){let p=!1;if(e.schema&&Object.prototype.hasOwnProperty.call(e.schema,"labelAutoOverflow"))p=e.schema.labelAutoOverflow;else{const F=t==null?void 0:t.formSchemaUtils,v=F==null?void 0:F.selectNode(d,k=>k.type===ie.DgControl["response-form"].type);v&&(p=v.labelAutoOverflow)}return p&&(o+=" farris-group-multi-label"),o}function ce(o){const d=e.componentInstance.value.getBelongedComponentInstance(e.componentInstance);if(d&&d.schema&&d.schema.componentType){const{formColumns:p}=d.schema;let F=O(p);F=t==null?void 0:t.formSchemaUtils.getControlClassByFormUnifiedLayout(F,d.schema.id,e.schema),F=le(F,d.schema),o.appearance||(o.appearance={}),o.appearance.class=F}}function H(o,d,p,F){const{bindingSourceContext:v,parentComponentInstance:k}=o;if(v!=null&&v.entityFieldNode&&k){const B=t==null?void 0:t.designViewModelUtils,C=(t==null?void 0:t.formSchemaUtils).getViewModelIdByComponentId(k.belongedComponentId),U=B.getDgViewModel(C);U.removeField([v.entityFieldNode.id]),U.addField(v.designViewModelField),d&&U.changeField(v.entityFieldNode.id,{editor:{$type:d},groupId:p,groupName:F})}}function se(o,d){var k,B,j;const p=s;if((p.appearance&&p.appearance.class||"").split(" ").includes("f-form-layout")&&o.componentCategory==="input"){const{label:C}=o;let U;const $=t==null?void 0:t.controlCreatorUtils;return(k=o.bindingSourceContext)!=null&&k.entityFieldNode?U=$.setFormFieldProperty((B=o.bindingSourceContext)==null?void 0:B.entityFieldNode,d==null?void 0:d.type):(U=$.createFormGroupWithoutField(d==null?void 0:d.type),U.label=C),ce(U),H(o,(j=U.editor)==null?void 0:j.type),U}return o.componentType==="dynamic-form"&&(d.appearance={class:"col-12",...d.appearance}),d}function ue(){return a}function pe(){return g}function L(){var o,d;return!!((d=(o=s.appearance)==null?void 0:o.class)!=null&&d.includes("f-form-is-table"))}function G(o){return new Vn(o,t).getPropertyConfig(s,e.componentInstance.value)