@farris/ui-vue 1.7.0-beta.3 → 1.7.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/avatar/index.esm.js +10 -1
- package/components/avatar/index.umd.cjs +1 -1
- package/components/calendar/index.esm.js +178 -176
- package/components/calendar/index.umd.cjs +2 -2
- package/components/collection-property-editor/index.esm.js +48 -46
- package/components/collection-property-editor/index.umd.cjs +2 -2
- package/components/combo-list/index.esm.js +319 -300
- package/components/combo-list/index.umd.cjs +1 -1
- package/components/comment/index.esm.js +2287 -1161
- package/components/comment/index.umd.cjs +7 -7
- package/components/component/index.esm.js +3 -1
- package/components/component/index.umd.cjs +2 -2
- package/components/condition/index.esm.js +926 -901
- package/components/condition/index.umd.cjs +2 -2
- package/components/data-view/index.esm.js +898 -899
- package/components/data-view/index.umd.cjs +1 -1
- package/components/drawer/index.esm.js +3 -1
- package/components/drawer/index.umd.cjs +2 -2
- package/components/dynamic-form/index.esm.js +239 -221
- package/components/dynamic-form/index.umd.cjs +1 -1
- package/components/dynamic-resolver/index.esm.js +11 -9
- package/components/dynamic-resolver/index.umd.cjs +2 -2
- package/components/expression-editor/index.esm.js +1299 -1279
- package/components/expression-editor/index.umd.cjs +4 -4
- package/components/filter-bar/index.esm.js +731 -678
- package/components/filter-bar/index.umd.cjs +2 -2
- package/components/filter-condition-editor/index.esm.js +1792 -1772
- package/components/filter-condition-editor/index.umd.cjs +4 -4
- package/components/image/index.esm.js +246 -240
- package/components/image/index.umd.cjs +2 -2
- package/components/language-textbox/index.esm.js +9 -7
- package/components/language-textbox/index.umd.cjs +2 -2
- package/components/list-view/index.esm.js +1 -1
- package/components/list-view/index.umd.cjs +1 -1
- package/components/locale/index.esm.js +2009 -886
- package/components/locale/index.umd.cjs +6 -6
- package/components/number-range/index.esm.js +190 -181
- package/components/number-range/index.umd.cjs +1 -1
- package/components/order/index.esm.js +734 -714
- package/components/order/index.umd.cjs +5 -5
- package/components/property-panel/index.esm.js +60 -49
- package/components/property-panel/index.umd.cjs +3 -3
- package/components/query-solution/index.esm.js +2461 -2500
- package/components/query-solution/index.umd.cjs +6 -6
- package/components/radio-group/index.esm.js +30 -30
- package/components/radio-group/index.umd.cjs +1 -1
- package/components/schema-selector/index.esm.js +238 -238
- package/components/schema-selector/index.umd.cjs +4 -4
- package/components/section/index.esm.js +217 -302
- package/components/section/index.umd.cjs +2 -2
- package/components/sort-condition-editor/index.esm.js +1793 -1773
- package/components/sort-condition-editor/index.umd.cjs +4 -4
- package/components/transfer/index.esm.js +155 -155
- package/components/transfer/index.umd.cjs +3 -3
- package/designer/data-grid/index.esm.js +895 -867
- package/designer/data-grid/index.umd.cjs +5 -5
- package/designer/data-view/index.esm.js +145 -144
- package/designer/data-view/index.umd.cjs +2 -2
- package/designer/drawer/index.esm.js +73 -71
- package/designer/drawer/index.umd.cjs +2 -2
- package/designer/dynamic-form/index.esm.js +87 -65
- package/designer/dynamic-form/index.umd.cjs +2 -2
- package/designer/farris-designer.all.esm.js +14 -3
- package/designer/farris-designer.all.umd.cjs +3 -3
- package/designer/input-group/index.esm.js +34 -14
- package/designer/input-group/index.umd.cjs +1 -1
- package/designer/list-view/index.esm.js +1 -1
- package/designer/list-view/index.umd.cjs +1 -1
- package/designer/radio-group/index.esm.js +15 -2
- package/designer/radio-group/index.umd.cjs +1 -1
- package/designer/section/index.esm.js +129 -119
- package/designer/section/index.umd.cjs +1 -1
- package/designer/time-picker/index.esm.js +140 -131
- package/designer/time-picker/index.umd.cjs +1 -1
- package/farris.all.esm.js +13578 -12394
- package/farris.all.umd.cjs +26 -26
- package/index.css +1 -1
- package/locales/data-grid/ui/en.json +2 -1
- package/locales/data-grid/ui/zh-CHS.json +2 -1
- package/locales/data-grid/ui/zh-CHT.json +2 -1
- package/locales/designer/en.json +12 -10
- package/locales/designer/zh-CHS.json +19 -17
- package/locales/designer/zh-CHT.json +19 -17
- package/locales/ui/en.json +4 -2
- package/locales/ui/zh-CHS.json +11 -9
- package/locales/ui/zh-CHT.json +11 -9
- package/package.json +1 -1
- package/package.zip +0 -0
- package/types/combo-list/src/composition/types.d.ts +1 -0
- package/types/condition/src/composition/condition-value/number-spinner-value.d.ts +1 -1
- package/types/condition/src/composition/use-field-config.d.ts +1 -1
- package/types/condition/src/condition.props.d.ts +1 -1
- package/types/data-view/designer/property-config/use-command-option.d.ts +12 -0
- package/types/image/src/property-config/image.property-config.d.ts +5 -5
- package/types/locale/src/lib/locale.service.d.ts +2 -2
- package/types/property-panel/src/composition/entity/input-base-property.d.ts +7 -0
- package/types/query-solution/src/designer/query-solution-config/composition/use-util.d.ts +0 -20
- package/types/section/src/designer/section.design.props.d.ts +17 -0
- package/types/section/src/section.props.d.ts +0 -25
|
@@ -1374,7 +1374,16 @@ class he extends ge {
|
|
|
1374
1374
|
getEventPropertyConfig(e, t = "card", i, s) {
|
|
1375
1375
|
const r = this;
|
|
1376
1376
|
let d = [];
|
|
1377
|
-
i && (d = d.concat(i)),
|
|
1377
|
+
if (i && (d = d.concat(i)), d.length === 0)
|
|
1378
|
+
return {
|
|
1379
|
+
title: "事件",
|
|
1380
|
+
hideTitle: !0,
|
|
1381
|
+
properties: {},
|
|
1382
|
+
tabId: "commands",
|
|
1383
|
+
tabName: "交互",
|
|
1384
|
+
hide: !0
|
|
1385
|
+
};
|
|
1386
|
+
this.appendFieldValueChangeEvents(e, d);
|
|
1378
1387
|
const o = r.eventsEditorUtils.formProperties(e, r.viewModelId, d);
|
|
1379
1388
|
return {
|
|
1380
1389
|
title: "事件",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(b,h){typeof exports=="object"&&typeof module<"u"?h(exports,require("vue"),require("../dynamic-resolver/index.umd.js"),require("../locale/index.umd.js"),require("../designer-canvas/index.umd.js"),require("lodash-es"),require("../common/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","../dynamic-resolver/index.umd.js","../locale/index.umd.js","../designer-canvas/index.umd.js","lodash-es","../common/index.umd.js"],h):(b=typeof globalThis<"u"?globalThis:b||self,h(b.avatar={},b.Vue,b.dynamicResolver,null,b.designerCanvas,b.LodashES,b.common))})(this,function(b,h,E,ie,s,U,x){"use strict";var ee=Object.defineProperty;var te=(b,h,E)=>h in b?ee(b,h,{enumerable:!0,configurable:!0,writable:!0,value:E}):b[h]=E;var A=(b,h,E)=>te(b,typeof h!="symbol"?h+"":h,E);function R(f,o,e){return o}const q=new Map([["appearance",E.resolveAppearance]]),L={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/avatar.schema.json",title:"avatar",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for avatar",type:"string"},type:{description:"The type string of avatar",type:"string",default:"avatar"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disabled:{type:"boolean",default:!1},avatarWidth:{description:"",type:"number",default:100},avatarHeight:{description:"",type:"number",default:100},readonly:{description:"",type:"boolean",default:!1},cover:{description:"",type:"string",default:""},tabindex:{description:"",type:"number",default:-1},visible:{description:"",type:"boolean",default:!0}},required:["id","type"],ignore:["id","appearance","binding","visible"]},M={avatarWidth:{type:Number,default:100},avatarHeight:{type:Number,default:100},cover:{type:String},readonly:{type:Boolean,default:!1},shape:{type:String,default:"circle"},maxSize:{type:Number,default:1},modelValue:{type:String,default:""},title:{type:String,default:""},imageType:{type:Array,default:["jpeg"]}},k=E.createPropsResolver(M,L,q,R);function D(f,o,e,t){const i="data:image/jpeg;base64,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",n=h.ref(f.readonly);function r(g){return g.match(/\.(jpeg|jpg|gif|png|svg|bmp|webp)$/)!=null}function d(g){return g.indexOf("data:image/")>-1}function l(g){return"data:image/jpeg;base64,"+g}const u=h.computed(()=>{var p;if(!f.imageType||!f.imageType.length)return"";const g=(p=f.imageType)==null?void 0:p.map(y=>(y==="jpg"&&(y="jpeg"),`image/${y}`));return!g||!g.length?"image/*":g.join(",")}),c=h.computed(()=>{const g=t.value||f.cover||i;return r(g)||d(g)?g:l(g)}),a=h.computed(()=>n.value?"":f.title);function m(){n.value||e&&e.value&&e.value.click()}return{acceptTypes:u,imageSource:c,imageTitle:a,onClickImage:m}}const V=h.defineComponent({name:"FAvatar",props:M,emits:["change","update:modelValue"],setup(f,o){const e=h.computed(()=>({"f-avatar":!0,"f-avatar-readonly":f.readonly,"f-avatar-circle":f.shape==="circle","f-avatar-square":f.shape==="square"})),t=h.ref(f.modelValue),i=h.computed(()=>({width:f.avatarWidth+"px",height:f.avatarHeight+"px"})),n=!1;function r(){return""}function d(){}const l=h.ref(null),{acceptTypes:u,imageSource:c,onClickImage:a}=D(f,o,l,t);return()=>h.createVNode("div",{class:e.value,style:i.value,onClick:a},[n,h.createVNode("img",{title:f.title,class:"f-avatar-image",src:c.value,onError:r},null),!f.readonly&&h.createVNode("div",{class:"f-avatar-icon"},[h.createVNode("span",{class:"f-icon f-icon-camera"},null)]),h.createVNode("input",{ref:"file",name:"file-input",type:"file",class:"f-avatar-upload",accept:u.value,onChange:d,style:"display: none;"},null)])}});function H(f){const{formSchemaUtils:o,formStateMachineUtils:e}=f;function t(l,u=""){return{path:u+l.code,field:l.id,fullPath:l.code}}function i(l,u=""){return o.getViewModelById(l).states.map(a=>t(a,u))}function n(l){const u=o.getRootViewModelId(),c=i(l);if(l===u)return c;const a=i(u,"root-component.");return[...c,...a]}function r(l){return l.binding&&l.binding.path||l.id||""}function d(){return e&&e.getRenderStates()||[]}return{getVariables:n,getControlName:r,getStateMachines:d}}class N{constructor(o){A(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'"}]);A(this,"expressionNames",{compute:"计算表达式",dependency:"依赖表达式",validate:"验证表达式",dataPicking:"帮助前表达式",visible:"可见表达式",readonly:"只读表达式",required:"必填表达式"});A(this,"getExpressionConverter",(o,e)=>({convertFrom:(t,i,n,r)=>{const d=n.getExpressionRuleValue(o,e||i);return d&&d.value||""},convertTo:(t,i,n,r,d)=>{var l;if(i==="dataPicking"&&(n!=null&&n.target)){const u=`${n.target}_dataPicking`;((l=n.rules)==null?void 0:l.some(a=>a.id===u&&a.value))?t.dictPickingExpressionId=u:delete t.dictPickingExpressionId}r.updateExpression(n)}}));this.formSchemaService=o}getExpressionRule(o,e){const t=this.formSchemaService.getExpressions();if(!t)return"";const i=t.find(r=>r.target===o);if(!i)return"";const n=i.rules.find(r=>r.type===e);return n||""}getContextFormVariables(){const{module:o}=this.formSchemaService.getFormSchema();if(!o.viewmodels||o.viewmodels.length===0)return[];const e=this.formSchemaService.getRootViewModelId(),t=this.formSchemaService.getViewModelById(e);if(!t||!t.states||t.states.length===0)return[];const i=[];return t.states.filter(n=>n.category==="remote").forEach(n=>{i.push({key:n.code,name:n.name,description:n.name,category:n.category})}),i}createTreeNode(o,e,t="label"){return{id:o.id,name:o.name,bindingPath:o[t],parents:e,type:"field"}}buildEntityFieldsTreeData(o=null,e){const t=[];return o==null||o.forEach(i=>{var d;const n=this.createTreeNode(i,e);let r=[];(d=i.type)!=null&&d.fields&&(r=this.buildEntityFieldsTreeData(i.type.fields,[...e,i.label])),t.push({data:n,children:r,expanded:!0})}),t}buildChildEntityTreeData(o=null,e){const t=[];return o==null||o.forEach(i=>{var l,u;const n=this.createTreeNode(i,e);n.type="entity";const r=this.buildEntityFieldsTreeData((l=i.type)==null?void 0:l.fields,[...e,i.label]),d=this.buildChildEntityTreeData((u=i.type)==null?void 0:u.entities,[...e,i.label]);d!=null&&d.length&&(r==null||r.push(...d)),t.push({data:n,children:r||[],expanded:!0})}),t}getEntitiesTreeData(){const o=this.formSchemaService.getSchemaEntities();if(!(o!=null&&o.length))return[];const e=o[0];if(!(e!=null&&e.type))return[];const t=this.buildEntityFieldsTreeData(e.type.fields,[e.code]),i=this.buildChildEntityTreeData(e.type.entities,[e.code]);return i!=null&&i.length&&(t==null||t.push(...i)),{entityCode:e.code,fields:[{data:this.createTreeNode(e,[],"code"),children:t||[]}]}}getEntitiesAndVariables(){return{entities:this.getEntitiesTreeData(),variables:{session:{name:"系统变量",items:this.sessionVariables,visible:!1},forms:{name:"表单变量",items:this.getContextFormVariables(),visible:!0}}}}onBeforeOpenExpression(o,e,t){const i=t==="Field"?o.binding.field:o.id,n=this.getExpressionRule(i,e),r=this.getEntitiesAndVariables(),d={message:["validate","required","dataPicking"].includes(e)&&n?n.message:"",...r};return n.messageType!=null&&(d.messageType=n.messageType),d}buildRule(o,e,t,i){const{expression:n,message:r,messageType:d}=e,l={id:`${o}_${t}`,type:t,value:n};return(t==="validate"||t==="dataPicking"||t==="required")&&(l.message=r),t==="dataPicking"&&(l.messageType=d),t==="validate"&&i&&(l.elementId=i),l}getExpressionData(){const{expressions:o}=this.formSchemaService.getFormSchema().module;return o||[]}updateExpression(o,e,t,i){const n=e==="Field"?o.binding.field:o.id,r=this.buildRule(n,t,i,o.type==="form-group"?o.id:"");let l=this.getExpressionData().find(c=>c.targetType===e&&c.target===n);const u=c=>c.value.trim()==="";if(l){const c=l.rules.find(a=>a.id===r.id);if(c)u(r)?l.rules=l.rules.filter(a=>a.id!==r.id):(Object.assign(c,r),i==="validate"&&o.type==="form-group"&&(c.elementId=o.id));else{if(u(r))return null;l.rules=l.rules||[],l.rules.push(r)}}else{if(u(r))return null;l={target:`${n}`,rules:[r],targetType:e}}return l}getExpressionEditorOptions(o,e,t,i){return t.reduce((n,r)=>{var l,u;const d=e==="Field"?(l=o==null?void 0:o.binding)==null?void 0:l.field:o.id;return n[r]={hide:e==="Field"?!!((u=o==null?void 0:o.binding)!=null&&u.field):!1,description:"",title:this.expressionNames[r],type:"string",$converter:this.getExpressionConverter(d),refreshPanelAfterChanged:!0,editor:{type:"expression-editor",singleExpand:!1,dialogTitle:`${this.expressionNames[r]}编辑器`,showMessage:r==="validate"||r==="dataPicking"||r==="required",showMessageType:r==="dataPicking",beforeOpen:()=>this.onBeforeOpenExpression(o,r,e),onSubmitModal:c=>{const a=this.updateExpression(o,e,c,r);if(i){const m=this.buildRule(d,c,r);i(m)}return a}}},n},{})}getExpressionInfo(o,e,t){const i=e==="Field"?o.binding.field:o.id,n=this.getExpressionRule(i,t),r={value:n&&n.value,targetId:i,targetType:e,expressionType:t};return n&&n.message&&(r.message=n.message),r}getExpressionConfig(o,e,t=["compute","dependency","validate"],i){return{description:"表达式",title:"表达式",hide:!o.binding,properties:{...this.getExpressionEditorOptions(o,e,t,i)}}}getExpressionOptions(o,e,t){const i=this.getExpressionInfo(o,e,t);return{dialogTitle:`${this.expressionNames[t]}编辑器`,singleExpand:!1,showMessage:t==="required",beforeOpen:()=>this.onBeforeOpenExpression(o,t,e),expressionInfo:i}}}class W{constructor(o,e){A(this,"componentId");A(this,"viewModelId");A(this,"eventsEditorUtils");A(this,"formSchemaUtils");A(this,"formMetadataConverter");A(this,"designViewModelUtils");A(this,"designViewModelField");A(this,"controlCreatorUtils");A(this,"designerHostService");A(this,"designerContext");A(this,"schemaService",null);A(this,"metadataService",null);A(this,"propertyConfig",{type:"object",categories:{}});var t;this.componentId=o,this.designerHostService=e,this.eventsEditorUtils=e.eventsEditorUtils,this.formSchemaUtils=e.formSchemaUtils,this.formMetadataConverter=e.formMetadataConverter,this.viewModelId=((t=this.formSchemaUtils)==null?void 0:t.getViewModelIdByComponentId(o))||"",this.designViewModelUtils=e.designViewModelUtils,this.controlCreatorUtils=e.controlCreatorUtils,this.metadataService=e.metadataService,this.schemaService=e.schemaService,this.designerContext=e.designerContext}getFormDesignerInstance(){var o,e;return(e=(o=this.designerContext)==null?void 0:o.instances)==null?void 0:e.formDesigner.value}getTableInfo(){var o;return(o=this.schemaService)==null?void 0:o.getTableInfoByViewModelId(this.viewModelId)}setDesignViewModelField(o){var t;const e=o.binding&&o.binding.type==="Form"&&o.binding.field;if(e){if(!this.designViewModelField){const i=this.designViewModelUtils.getDgViewModel(this.viewModelId);this.designViewModelField=i.fields.find(n=>n.id===e)}o.updateOn=(t=this.designViewModelField)==null?void 0:t.updateOn}}getBasicPropConfig(o){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:o.type,name:s.DgControl[o.type]&&s.DgControl[o.type].name}]}}}}}getAppearanceConfig(o=null,e={},t){const i={title:"外观",description:"Appearance"},n={class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"},style:{title:"style样式",type:"string",description:"组件的样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"}};for(const r in e)n[r]=Object.assign(n[r]||{},e[r]);return{...i,properties:{...n},setPropertyRelates(r,d){if(r){switch(r&&r.propertyID){case"class":case"style":{s.canvasChanged.value++;break}}t&&t(r,o,d)}}}}getPropertyEditorParams(o,e=[],t="visible",i={},n={},r=""){const{getVariables:d,getControlName:l,getStateMachines:u}=H(this.designerHostService),c=this.getRealTargetType(o),a=e&&e.length>0?e:["Const","Variable","StateMachine","Expression"],m={type:"property-editor",propertyTypes:a};return a.map(g=>{switch(g){case"Const":Object.assign(m,{constType:"enum",constEnums:[{id:!0,name:"是"},{id:!1,name:"否"}]},i);break;case"Expression":m.expressionConfig=this.getExpressionOptions(o,c,r||t);break;case"StateMachine":m.stateMachines=u();break;case"Variable":Object.assign(m,{controlName:l(o),newVariablePrefix:"is",newVariableType:"Boolean",variables:d(this.viewModelId),parentComponentId:this.componentId==="root-component"?"":"root-component",onBeforeOpenVariables:p=>{p.value=d(this.viewModelId)}},n),this.designerContext.designerMode==="PC_RTC"&&(m.newVariablePrefix="ext_"+m.newVariablePrefix);break}}),m}getVisibleProperty(o,e=""){var n;let t=["Const","Variable","StateMachine","Expression"];return e==="gridFieldEditor"?t=["Const","Expression"]:e==="form-group"&&!((n=o.binding)!=null&&n.field)&&(t=["Const","Variable","StateMachine"]),{visible:{title:"是否可见",type:"boolean",description:"运行时组件是否可见",editor:this.getPropertyEditorParams(o,t,"visible")}}}getBehaviorConfig(o,e="",t={},i){const n={title:"行为",description:""},r=this.getVisibleProperty(o,e);for(const l in t)r[l]=Object.assign(r[l]||{},t[l]);const d=this;return{...n,properties:{...r},setPropertyRelates(l,u){if(l){switch(l.propertyID){case"disabled":case"readonly":case"visible":d.afterMutilEditorChanged(o,l);break}i&&i(l,u)}}}}afterMutilEditorChanged(o,e){this.addNewVariableToViewModel(e,this.viewModelId),this.updateExpressionValue(e),this.clearExpression(e,o)}updateElementByParentContainer(o,e){const t=e&&e.parent&&e.parent.schema;if(!t)return;const i=t.contents.findIndex(r=>r.id===o),n=U.cloneDeep(t.contents[i]);t.contents.splice(i,1),t.contents.splice(i,0,n),s.refreshCanvas()}addNewVariableToViewModel(o,e){const t=o.propertyValue;if(!(t&&typeof t=="object")||!(t.type==="Variable"&&t.isNewVariable))return;const r={id:t.field,category:"locale",code:t.fullPath,name:t.fullPath,type:t.newVariableType||"String",isRtcVariable:this.designerContext.designerMode==="PC_RTC"?!0:void 0};delete t.newVariableType,delete t.isNewVariable,this.formSchemaUtils.getVariableByCode(r.code)||this.formSchemaUtils.getViewModelById("root-viewmodel").states.push(r)}updateExpressionValue(o){const e=o.propertyValue;if(!((e&&e.type)==="Expression"&&e.expressionInfo))return;const{expressionId:n,expressionInfo:r}=e,{targetId:d,targetType:l,expressionType:u,value:c,message:a}=r,m=this.formSchemaUtils.getModule();m.expressions=m.expressions||[];const{expressions:g}=m;let p=g.find(C=>C.target===d);p||(p={target:d,rules:[],targetType:l},g.push(p));const y=p.rules.find(C=>C.type===u);if(y)y.value=c,y.message=a;else{const C={id:n,type:u,value:c,message:a};p.rules.push(C)}delete e.expressionInfo}clearExpression(o,e){const t=o.propertyValue;if(t&&t.type==="Expression")return;const n=o.propertyID,r=this.formSchemaUtils.getExpressions(),d=e.binding?e.binding.field:e.id,l=r.find(u=>u.target===d);!l||!l.rules||(l.rules=l.rules.filter(u=>u.type!==n))}getExpressionOptions(o,e,t){return new N(this.formSchemaUtils).getExpressionOptions(o,e,t)}getRealTargetType(o){return["response-toolbar-item","tab-toolbar-item","section-toolbar-item"].indexOf(o.type)>-1?"Button":o.binding&&o.binding.field?"Field":"Container"}createBaseEventProperty(o){const e={};return e[this.viewModelId]={type:"events-editor",editor:{initialData:o,viewSourceHandle:t=>{var i;((i=t.controller)==null?void 0:i.label.indexOf(this.formSchemaUtils.getModule().code))>-1&&this.eventsEditorUtils.jumpToMethod(t)}}},e}}const v=class v{static getEditorTypesByMDataType(o,e=!1,t=""){if(e)return[{key:s.DgControl["language-textbox"].type,value:s.DgControl["language-textbox"].name}];let i=v.fieldControlTypeMapping[o];if(t==="data-grid-column"&&(i!=null&&i.length)){const n=[s.DgControl["check-group"].type,s.DgControl["radio-group"].type,s.DgControl.image.type];i=i.filter(r=>!n.includes(r.key))}return i}static getAllInputTypes(){const o=[];for(const e in v.fieldControlTypeMapping)v.fieldControlTypeMapping[e].forEach(t=>{o.find(i=>i.key===t.key&&i.value===t.value)||o.push({key:t.key,value:t.value})});return o}static mappingDomPropAndSchemaProp(o,e){var n;const t=(n=o.editor)==null?void 0:n.type,i=[];return(o.type===s.DgControl["data-grid-column"].type||o.type===s.DgControl["tree-grid-column"].type)&&e&&e.categoryId&&e.categoryId.indexOf("gridFieldEditor")<0&&i.push({domField:"title",schemaField:"name"}),i.push({domField:"label",schemaField:"name"}),i.push({domField:"editor.required",schemaField:"require"}),i.push({domField:"editor.readonly",schemaField:"readonly"}),(t===s.DgControl["input-group"].type||t===s.DgControl.textarea.type||t===s.DgControl["number-spinner"].type)&&i.push({domField:"editor.maxLength",schemaField:"type.length"}),t===s.DgControl["number-spinner"].type&&i.push({domField:"editor.precision",schemaField:"type.precision"}),(o.type===s.DgControl["data-grid-column"].type||o.type===s.DgControl["tree-grid-column"].type)&&i.push({domField:"formatter.precision",schemaField:"type.precision"}),(t===s.DgControl["combo-list"].type||t===s.DgControl["radio-group"].type)&&i.push({domField:"editor.data",schemaField:"type.enumValues"}),(o.type===s.DgControl["data-grid-column"].type||o.type===s.DgControl["tree-grid-column"].type)&&i.push({domField:"formatter.data",schemaField:"type.enumValues"}),t===s.DgControl["date-picker"].type&&(i.push({domField:"editor.displayFormat",schemaField:"editor.format"}),i.push({domField:"editor.fieldType",schemaField:"type.name"})),t===s.DgControl["number-spinner"].type&&(i.push({domField:"editor.max",schemaField:"editor.maxValue"}),i.push({domField:"editor.min",schemaField:"editor.minValue"})),t===s.DgControl.lookup.type&&(i.push({domField:"editor.dataSource",schemaField:"editor.dataSource"}),i.push({domField:"editor.valueField",schemaField:"editor.valueField"}),i.push({domField:"editor.textField",schemaField:"editor.textField"}),i.push({domField:"editor.displayType",schemaField:"editor.displayType"}),i.push({domField:"editor.mapFields",schemaField:"editor.mapFields"}),i.push({domField:"editor.helpId",schemaField:"editor.helpId"})),i.push({domField:"path",schemaField:"bindingPath"}),i.push({domField:"binding.path",schemaField:"bindingField"}),i.push({domField:"binding.fullPath",schemaField:"path"}),(o.type===s.DgControl["data-grid-column"].type||o.type===s.DgControl["tree-grid-column"].type)&&i.push({domField:"field",schemaField:"bindingPath"}),i}};A(v,"fieldControlTypeMapping",{String:[{key:s.DgControl["input-group"].type,value:s.DgControl["input-group"].name},{key:s.DgControl.lookup.type,value:s.DgControl.lookup.name},{key:s.DgControl.image.type,value:s.DgControl.image.name},{key:s.DgControl["date-picker"].type,value:s.DgControl["date-picker"].name},{key:s.DgControl.switch.type,value:s.DgControl.switch.name},{key:s.DgControl["check-box"].type,value:s.DgControl["check-box"].name},{key:s.DgControl["check-group"].type,value:s.DgControl["check-group"].name},{key:s.DgControl["radio-group"].type,value:s.DgControl["radio-group"].name},{key:s.DgControl["combo-list"].type,value:s.DgControl["combo-list"].name},{key:s.DgControl.textarea.type,value:s.DgControl.textarea.name},{key:s.DgControl["time-picker"].type,value:s.DgControl["time-picker"].name}],Text:[{key:s.DgControl.textarea.type,value:s.DgControl.textarea.name},{key:s.DgControl.lookup.type,value:s.DgControl.lookup.name},{key:s.DgControl.image.type,value:s.DgControl.image.name},{key:s.DgControl["rich-text-editor"].type,value:s.DgControl["rich-text-editor"].name}],Decimal:[{key:s.DgControl["number-spinner"].type,value:s.DgControl["number-spinner"].name}],Integer:[{key:s.DgControl["number-spinner"].type,value:s.DgControl["number-spinner"].name}],Number:[{key:s.DgControl["number-spinner"].type,value:s.DgControl["number-spinner"].name},{key:s.DgControl.switch.type,value:s.DgControl.switch.name},{key:s.DgControl["check-box"].type,value:s.DgControl["check-box"].name}],BigNumber:[{key:s.DgControl["number-spinner"].type,value:s.DgControl["number-spinner"].name}],Date:[{key:s.DgControl["date-picker"].type,value:s.DgControl["date-picker"].name}],DateTime:[{key:s.DgControl["date-picker"].type,value:s.DgControl["date-picker"].name}],Boolean:[{key:s.DgControl.switch.type,value:s.DgControl.switch.name},{key:s.DgControl["check-box"].type,value:s.DgControl["check-box"].name}],Enum:[{key:s.DgControl["combo-list"].type,value:s.DgControl["combo-list"].name},{key:s.DgControl["radio-group"].type,value:s.DgControl["radio-group"].name}],Object:[{key:s.DgControl.lookup.type,value:s.DgControl.lookup.name},{key:s.DgControl["combo-list"].type,value:s.DgControl["combo-list"].name},{key:s.DgControl["radio-group"].type,value:s.DgControl["radio-group"].name}]});let S=v;var P=(f=>(f.Form="Form",f.Variable="Variable",f))(P||{});class Q{constructor(){A(this,"label","");A(this,"id","");A(this,"columnInSM",12);A(this,"columnInMD",6);A(this,"columnInLG",3);A(this,"columnInEL",2);A(this,"displayWidthInSM",1);A(this,"displayWidthInMD",1);A(this,"displayWidthInLG",1);A(this,"displayWidthInEL",1);A(this,"displayColumnCountAtBreakPoint","md");A(this,"tagRow",0);A(this,"showTopBorder",0);A(this,"group",1);A(this,"isSupportedClass",!0);A(this,"fieldSetId","")}}function G(f){let o,e;const t=new Map;let i=[];function n(c,a){const g=c.split(" ").filter(I=>I.startsWith("col-"));if(g.length===0){a.isSupportedClass=!1;return}let p=g.find(I=>/^col-([1-9]|10|11|12)$/.test(I)),y=g.find(I=>/^col-md-([1-9]|10|11|12)$/.test(I)),C=g.find(I=>/^col-xl-([1-9]|10|11|12)$/.test(I)),F=g.find(I=>/^col-el-([1-9]|10|11|12)$/.test(I));p=p||"col-12",a.columnInSM=parseInt(p.replace("col-",""),10),a.displayWidthInSM=a.columnInSM/12,a.displayWidthInSM!==1&&(a.isSupportedClass=!1),y=y||"col-md-"+a.columnInSM,a.columnInMD=parseInt(y.replace("col-md-",""),10),a.displayWidthInMD=a.columnInMD/6,[1,2].includes(a.displayWidthInMD)||(a.isSupportedClass=!1),C=C||"col-xl-"+a.columnInMD,a.columnInLG=parseInt(C.replace("col-xl-",""),10),a.displayWidthInLG=a.columnInLG/3,[1,2,3,4].includes(a.displayWidthInLG)||(a.isSupportedClass=!1),F=F||"col-el-"+a.columnInLG,a.columnInEL=parseInt(F.replace("col-el-",""),10),a.displayWidthInEL=a.columnInEL/2,[1,2,3,4,5,6].includes(a.displayWidthInEL)||(a.isSupportedClass=!1)}function r(c,a,m,g=!1){let p=!1;c.contents.forEach(y=>{if(y.type==="fieldset"){m+=1,r(y,a,m,!0),p=!0;return}p&&(m+=1,p=!1);const C=y.appearance&&y.appearance.class,F=new Q;C?n(C,F):F.isSupportedClass=!1,F.label=y.label||y.id,F.id=y.id,F.group=m,g&&(F.fieldSetId=c.id),e===y.id&&(o=m),t.set(y.id,y),a.push(F)})}function d(c){const a=f.getComponentById(c);if(!a||!a.componentType||!a.componentType.startsWith("form"))return{result:!1,message:"只可以在响应式表单组件中调整响应式布局配置"};const m=f.selectNode(a,g=>g.type===s.DgControl["response-form"].type);return!m||!m.contents||m.contents.length===0?{result:!1,message:"Form区域内没有控件,请先添加控件"}:{result:!0,message:"",formNode:m}}function l(c,a){a=a||c.id;const{result:m,message:g,formNode:p}=d(a);if(!m)return{result:m,message:g};e=c.id,i=[],t.clear();const y=p.contents[0].type===s.DgControl.fieldset.type?0:1;r(p,i,y);const C=i.find(I=>!I.isSupportedClass);return{defaultState:{defaultGroupNumber:o||1,model:C?"customize":"standard"},importData:i}}function u(c,a){a=a;const{result:m,formNode:g}=d(a);if(!m)return"";const p=[];return c.forEach(y=>{var I;const C=t.get(y.id),F=C.appearance&&C.appearance.class;if(F){const T=F.split(" ").filter(_=>!_.startsWith("col-")),w="col-"+y.columnInSM,$="col-md-"+y.columnInMD,J="col-xl-"+y.columnInLG,X="col-el-"+y.columnInEL,Y=[w,$,J,X].concat(T);C.appearance.class=Y.join(" ")}if(y.fieldSetId){const B=g.contents.find(w=>w.id===y.fieldSetId),T=p.find(w=>w.id===y.fieldSetId);T?(I=T.contents)==null||I.push(C):(p.push(B),B.contents=[C])}else p.push(C)}),g.contents=p,g.id}return{checkCanFindFormNode:d,checkCanOpenLayoutEditor:l,changeFormControlsByResponseLayoutConfig:u,getResonseFormLayoutConfig:r}}class O extends W{constructor(e,t){super(e,t);A(this,"responseLayoutEditorFunction");A(this,"bindingVarible");A(this,"numberEditorOptions",{type:"number-spinner",useThousands:!1,keyboard:!1,showButton:!1});this.responseLayoutEditorFunction=G(this.formSchemaUtils)}getCommonPropertyConfig(e,t,i="Card"){this.propertyConfig.categories.basic=this.getBasicProperties(e,t,i),this.propertyConfig.categories.appearance=this.getAppearanceProperties(e,t),this.propertyConfig.categories.behavior=this.getBehaviorConfig(e,"form-group")}getPropertyConfig(e,t){return this.getCommonPropertyConfig(e,t,"Card"),this.propertyConfig.categories.editor=this.getEditorProperties(e),this.propertyConfig.categories.expressions=this.getExpressionConfig(e,"Field"),this.propertyConfig.categories.eventsEditor=this.getEventPropertyConfig(e),this.propertyConfig}getGridFieldEdtiorPropConfig(e,t){return this.propertyConfig.categories={},this.getCommonPropertyConfig(e,t,"Grid"),this.getGridFieldEdtiorProperties?this.propertyConfig.categories.editor=this.getGridFieldEdtiorProperties(e):this.propertyConfig.categories.editor=this.getEditorProperties(e),this.propertyConfig.categories.expressons=this.getExpressionConfig(e,"Field"),this.propertyConfig.categories}getBasicProperties(e,t,i="Card"){var u;const n=this;this.setDesignViewModelField(e);const{canChangeControlType:r,editorTypeList:d}=this.getAvailableEditorType(e),l={description:"Basic Information",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"编辑器类型",title:"编辑器类型",type:"string",$converter:"/converter/change-editor.converter",parentPropertyID:"editor",editor:{type:"combo-list",textField:"value",valueField:"key",idField:"key",editable:!1,data:d,readonly:!r}},label:{title:"标签",type:"string",$converter:"/converter/form-group-label.converter"},showLabelType:{description:"标签显示方式:1、显示:显示标签 2、占位:保留标签空间,但不显示文本 3、不显示:不显示标签",title:"标签显示",type:"enum",editor:{data:[{id:"visible",name:"显示"},{id:"reserve-space",name:"占位"},{id:"none",name:"不显示"}]},defaultValue:((u=e.editor)==null?void 0:u.type)==="image"?"none":"visible"},binding:{description:"绑定的表单字段",title:"绑定",editor:{type:"binding-selector",bindingType:{enable:!1},editorParams:{componentSchema:e,needSyncToViewModel:!0,viewModelId:this.viewModelId,designerHostService:this.designerHostService,disableOccupiedFields:!0},textField:"bindingField"},refreshPanelAfterChanged:!0,readonly:this.formSchemaUtils.designerMode==="PC_RTC"&&!e.isRtcControl}},setPropertyRelates(c,a,m){if(c)switch(c&&c.propertyID){case"type":{n.changeControlType(e,c,t);break}case"label":{c.needRefreshControlTree=!0;break}case"binding":{n.changeBindingField(e,c,m);break}}}};return i.toLocaleLowerCase()!=="card"&&delete l.properties.showLabelType,l}checkCanChangeControlType(e,t){if(!e.binding)return!1;if(e.binding.type==="Variable"){if(this.bindingVarible=this.formSchemaUtils.getVariableById(e.binding.field),!this.bindingVarible)return!1}else if(!this.designViewModelField||this.designViewModelField.$type!==x.FormSchemaEntityField$Type.SimpleField)return!1;return!0}getAvailableEditorType(e){var n;const t=this.checkCanChangeControlType(e,this.viewModelId);if(!t)return{canChangeControlType:!1,editorTypeList:[{key:e.editor.type,value:((n=s.DgControl[e.editor.type])==null?void 0:n.name)||e.editor.type}]};let i=[];return this.designViewModelField&&this.designViewModelField.$type===x.FormSchemaEntityField$Type.SimpleField?i=S.getEditorTypesByMDataType(this.designViewModelField.type.name,this.designViewModelField.multiLanguage):this.bindingVarible&&(i=S.getEditorTypesByMDataType(this.bindingVarible.type,this.designViewModelField.multiLanguage)),{canChangeControlType:t,editorTypeList:i}}changeBindingField(e,t,i){t.needRefreshEntityTree=!0}getAppearanceProperties(e,t){const i=this;return{title:"外观",description:"Appearance",properties:{class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"},style:{title:"style样式",type:"string",description:"组件的内联样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"},fill:{title:"填充宽度",description:"启用后,控件占满父容器宽度",type:"boolean",parentPropertyID:"appearance"},responseLayout:{description:"响应式列宽",title:"响应式列宽",type:"boolean",visible:!0,refreshPanelAfterChanged:!0,editor:{type:"response-layout-editor-setting",beforeOpen:()=>i.responseLayoutEditorFunction.checkCanOpenLayoutEditor(e,i.componentId)}}},setPropertyRelates(n,r){if(n)switch(n&&n.propertyID){case"responseLayout":i.responseLayoutEditorFunction.changeFormControlsByResponseLayoutConfig(n.propertyValue,i.componentId||e.id),i.updateUnifiedLayoutAfterResponseLayoutChanged(i.componentId),i.updateElementByParentContainer(e.id,t),delete e.responseLayout;break;case"class":i.updateUnifiedLayoutAfterControlChanged(n.propertyValue,e.id,this.componentId),s.canvasChanged.value++;break;case"style":{s.canvasChanged.value++;break}}}}}getEditorProperties(e){return this.getComponentConfig(e)}changeControlType(e,t,i){const n=t.propertyValue,r=i&&i.parent&&i.parent.schema;if(!r)return;const d=r.contents.findIndex(c=>c.id===e.id);if(d===-1)return;const l=r.contents[d];let u;if(this.designViewModelField){const m=this.formSchemaUtils.getViewModelById(this.viewModelId).fields.find(p=>p.id===this.designViewModelField.id).fieldSchema||{};m.editor||(m.editor={}),m.editor.$type=n,this.designViewModelUtils.getDgViewModel(this.viewModelId).changeField(this.designViewModelField.id,m,!1),u=this.controlCreatorUtils.setFormFieldProperty(this.designViewModelField,n)}u||(u=this.controlCreatorUtils.createFormGroupWithoutField(n)),Object.assign(u,{id:l.id,appearance:l.appearance,size:l.size,label:l.label,binding:l.binding}),Object.prototype.hasOwnProperty.call(l,"visible")&&Object.assign(u,{visible:l.visible}),l.editor&&["readonly","required","placeholder"].map(c=>{Object.prototype.hasOwnProperty.call(l.editor,c)&&(u.editor[c]=l.editor[c])}),i!=null&&i.updateContextSchema?i.updateContextSchema(u):(i.schema=Object.assign(l,u),Object.assign(e,u)),Array.from(document.getElementsByClassName("dgComponentSelected")).forEach(c=>c.classList.remove("dgComponentSelected")),Array.from(document.getElementsByClassName("dgComponentFocused")).forEach(c=>c.classList.remove("dgComponentFocused")),s.canvasChanged.value++,h.nextTick(()=>{this.getFormDesignerInstance().reloadPropertyPanel()})}getComponentConfig(e,t={},i={},n){var m,g;const r=Object.assign({description:"编辑器",title:"编辑器",type:"input-group",$converter:"/converter/property-editor.converter",parentPropertyID:"editor"},t),d=(m=e.binding)!=null&&m.field?[]:["Const","Variable","StateMachine"],l=this.getPropertyEditorParams(e,d,"readonly"),u=this.getPropertyEditorParams(e,d,"required"),c={readonly:{description:"",title:"只读",editor:l},required:{description:"",title:"必填",type:"boolean",editor:u,visible:!!((g=e.binding)!=null&&g.field)},placeholder:{description:"当控件没有值时在输入框中显示的文本",title:"提示文本",type:"string"}};for(const p in i)c[p]=Object.assign(c[p]||{},i[p]);const a=this;return{...r,properties:{...c},setPropertyRelates(p,y){if(p){switch(p.propertyID){case"readonly":case"required":a.afterMutilEditorChanged(e,p);break}n&&n.bind(a)(p,e,y)}}}}updateUnifiedLayoutAfterControlChanged(e,t,i){const n=e.split(" ");let r=n.find(a=>/^col-([1-9]|10|11|12)$/.test(a)),d=n.find(a=>/^col-md-([1-9]|10|11|12)$/.test(a)),l=n.find(a=>/^col-xl-([1-9]|10|11|12)$/.test(a)),u=n.find(a=>/^col-el-([1-9]|10|11|12)$/.test(a));r=r||"col-12",d=d||"col-md-"+r.replace("col-",""),l=l||"col-xl-"+d.replace("col-md-",""),u=u||"col-el-"+l.replace("col-xl-","");const c={id:t,columnInSM:parseInt(r.replace("col-",""),10),columnInMD:parseInt(d.replace("col-md-",""),10),columnInLG:parseInt(l.replace("col-xl-",""),10),columnInEL:parseInt(u.replace("col-el-",""),10)};this.updateUnifiedLayoutAfterResponseLayoutChanged(i,c)}updateUnifiedLayoutAfterResponseLayoutChanged(e,t){const{formNode:i}=this.responseLayoutEditorFunction.checkCanFindFormNode(e);if(!i||!i.unifiedLayout)return;const n=[];if(this.responseLayoutEditorFunction.getResonseFormLayoutConfig(i,n,1),t){const p=n.find(y=>y.id===t.id);Object.assign(p||{},t)}const r=n.map(p=>p.columnInSM),d=n.map(p=>p.columnInMD),l=n.map(p=>p.columnInLG),u=n.map(p=>p.columnInEL),c=this.checkIsUniqueColumn(r)?r[0]:null,a=this.checkIsUniqueColumn(d)?d[0]:null,m=this.checkIsUniqueColumn(l)?l[0]:null,g=this.checkIsUniqueColumn(u)?u[0]:null;Object.assign(i.unifiedLayout,{uniqueColClassInSM:c,uniqueColClassInMD:a,uniqueColClassInLG:m,uniqueColClassInEL:g})}checkIsUniqueColumn(e){const t=new Set(e);return Array.from(t).length===1}getItemCollectionEditor(e,t,i){return t=t||"value",i=i||"name",{editor:{columns:[{field:t,title:"值",dataType:"string"},{field:i,title:"名称",dataType:"string"}],type:"item-collection-editor",valueField:t,nameField:i,requiredFields:[t,i],uniqueFields:[t,i],readonly:this.checkEnumDataReadonly(e)}}}checkEnumDataReadonly(e){return!e.binding||e.binding.type!=="Form"?!1:!!(this.designViewModelField&&this.designViewModelField.type&&this.designViewModelField.type.$type===x.FormSchemaEntityFieldType$Type.EnumType)}appendFieldValueChangeEvents(e,t){e.binding&&e.binding.type===P.Form&&e.binding.field?(t.find(i=>i.label==="fieldValueChanging"),t.find(i=>i.label==="fieldValueChanged"),this.designViewModelField&&(e.fieldValueChanging=this.designViewModelField.valueChanging,e.fieldValueChanged=this.designViewModelField.valueChanged)):t=t.filter(i=>i.label!=="fieldValueChanging"&&i.label!=="fieldValueChanged")}getControlMethodType(e){if(!e.binding)return e.type;switch(e.binding.type){case P.Form:return e.binding.path||e.type;case P.Variable:return e.binding.fullPath||e.type}return e.type}getEventPropertyConfig(e,t="card",i,n){const r=this;let d=[];i&&(d=d.concat(i)),this.appendFieldValueChangeEvents(e,d);const l=r.eventsEditorUtils.formProperties(e,r.viewModelId,d);return{title:"事件",hideTitle:!0,properties:r.createBaseEventProperty(l),tabId:"commands",tabName:"交互",setPropertyRelates(a,m){const g=a.propertyValue;delete e[r.viewModelId],g&&(g.setPropertyRelates=this.setPropertyRelates,g.controlInfo={type:r.getControlMethodType(e),name:e.title},r.eventsEditorUtils.saveRelatedParameters(e,r.viewModelId,g.events,g)),n&&n(a,m,g);const p=r.designViewModelUtils.getDgViewModel(r.viewModelId);p&&r.designViewModelField&&p.changeField(r.designViewModelField.id,{valueChanging:e.fieldValueChanging,valueChanged:e.fieldValueChanged})}}}getExpressionConfig(e,t,i=["compute","dependency","validate"],n){return new N(this.formSchemaUtils).getExpressionConfig(e,t,i,n)}getBindingDataType(){return this.designViewModelField?this.designViewModelField.type.name==="Number"?"number":this.designViewModelField.type.name==="String"?"string":"boolean":"boolean"}getEditor(){return this.getBindingDataType()==="number"?this.numberEditorOptions:{}}updatePropertyValue(e,t,i){var n;e.editor[t]!==i?e.editor[t]=i:(n=this.getFormDesignerInstance())==null||n.reloadPropertyPanel()}setBooleanValue(e,t,i){let n=i;this.getBindingDataType()==="string"&&(n=(n||"").trim()||(t==="trueValue"?"true":"false"));const d=t==="trueValue"?"falseValue":"trueValue";e.editor[d]===n&&(n=n+1),this.updatePropertyValue(e,t,n)}getBooleanValueConverter(){return{convertFrom:(e,t)=>e.editor[t],convertTo:(e,t,i)=>{this.setBooleanValue(e,t,i)}}}}class j extends O{constructor(o,e){super(o,e)}getEditorProperties(o){return{description:"编辑器",title:"编辑器",type:"avatar",$converter:"/converter/property-editor.converter",parentPropertyID:"editor",properties:{readonly:{description:"",title:"只读",type:"boolean"},avatarWidth:{description:"",title:"头像宽度",type:"number"},avatarHeight:{description:"",title:"头像高度",type:"number"},cover:{description:"",title:"封面",type:"string"}}}}}function K(f,o){const e=f.schema;function t(i,n){return new j(i,o).getPropertyConfig(e,n)}return{getPropsConfig:t}}const Z=h.defineComponent({name:"FAvatarDesign",props:M,emits:["change","update:modelValue"],setup(f,o){const e=h.ref(),t=h.inject("designer-host-service"),i=h.inject("design-item-context"),n=K(i,t),r=s.useDesignerComponent(e,i,n);h.onMounted(()=>{e.value.componentInstance=r}),o.expose(r.value);const d=h.computed(()=>({"f-avatar":!0,"f-avatar-readonly":f.readonly,"f-avatar-circle":f.shape==="circle","f-avatar-square":f.shape==="square"})),l=h.ref(f.modelValue),u=h.computed(()=>({width:f.avatarWidth+"px",height:f.avatarHeight+"px"})),c=!1;function a(){return""}function m(){}const g=h.ref(null),{acceptTypes:p,imageSource:y,onClickImage:C}=D(f,o,g,l);return()=>h.createVNode("div",{ref:e,class:d.value,style:u.value,onClick:C},[c,h.createVNode("img",{title:f.title,class:"f-avatar-image",src:y.value,onError:a},null),!f.readonly&&h.createVNode("div",{class:"f-avatar-icon"},[h.createVNode("span",{class:"f-icon f-icon-camera"},null)]),h.createVNode("input",{ref:"file",name:"file-input",type:"file",class:"f-avatar-upload",accept:p.value,onChange:m,style:"display: none;"},null)])}});V.register=(f,o,e,t)=>{f.avatar=V,o.avatar=k},V.registerDesigner=(f,o,e)=>{f.avatar=Z,o.avatar=k};const z=x.withInstall(V);b.FAvatar=V,b.avatarProps=M,b.default=z,b.propsResolver=k,Object.defineProperties(b,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
1
|
+
(function(b,h){typeof exports=="object"&&typeof module<"u"?h(exports,require("vue"),require("../dynamic-resolver/index.umd.js"),require("../locale/index.umd.js"),require("../designer-canvas/index.umd.js"),require("lodash-es"),require("../common/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","../dynamic-resolver/index.umd.js","../locale/index.umd.js","../designer-canvas/index.umd.js","lodash-es","../common/index.umd.js"],h):(b=typeof globalThis<"u"?globalThis:b||self,h(b.avatar={},b.Vue,b.dynamicResolver,null,b.designerCanvas,b.LodashES,b.common))})(this,function(b,h,E,ie,s,U,x){"use strict";var ee=Object.defineProperty;var te=(b,h,E)=>h in b?ee(b,h,{enumerable:!0,configurable:!0,writable:!0,value:E}):b[h]=E;var A=(b,h,E)=>te(b,typeof h!="symbol"?h+"":h,E);function R(f,o,e){return o}const q=new Map([["appearance",E.resolveAppearance]]),L={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/avatar.schema.json",title:"avatar",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for avatar",type:"string"},type:{description:"The type string of avatar",type:"string",default:"avatar"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disabled:{type:"boolean",default:!1},avatarWidth:{description:"",type:"number",default:100},avatarHeight:{description:"",type:"number",default:100},readonly:{description:"",type:"boolean",default:!1},cover:{description:"",type:"string",default:""},tabindex:{description:"",type:"number",default:-1},visible:{description:"",type:"boolean",default:!0}},required:["id","type"],ignore:["id","appearance","binding","visible"]},M={avatarWidth:{type:Number,default:100},avatarHeight:{type:Number,default:100},cover:{type:String},readonly:{type:Boolean,default:!1},shape:{type:String,default:"circle"},maxSize:{type:Number,default:1},modelValue:{type:String,default:""},title:{type:String,default:""},imageType:{type:Array,default:["jpeg"]}},k=E.createPropsResolver(M,L,q,R);function D(f,o,e,t){const i="data:image/jpeg;base64,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",n=h.ref(f.readonly);function r(g){return g.match(/\.(jpeg|jpg|gif|png|svg|bmp|webp)$/)!=null}function d(g){return g.indexOf("data:image/")>-1}function l(g){return"data:image/jpeg;base64,"+g}const u=h.computed(()=>{var p;if(!f.imageType||!f.imageType.length)return"";const g=(p=f.imageType)==null?void 0:p.map(y=>(y==="jpg"&&(y="jpeg"),`image/${y}`));return!g||!g.length?"image/*":g.join(",")}),c=h.computed(()=>{const g=t.value||f.cover||i;return r(g)||d(g)?g:l(g)}),a=h.computed(()=>n.value?"":f.title);function m(){n.value||e&&e.value&&e.value.click()}return{acceptTypes:u,imageSource:c,imageTitle:a,onClickImage:m}}const V=h.defineComponent({name:"FAvatar",props:M,emits:["change","update:modelValue"],setup(f,o){const e=h.computed(()=>({"f-avatar":!0,"f-avatar-readonly":f.readonly,"f-avatar-circle":f.shape==="circle","f-avatar-square":f.shape==="square"})),t=h.ref(f.modelValue),i=h.computed(()=>({width:f.avatarWidth+"px",height:f.avatarHeight+"px"})),n=!1;function r(){return""}function d(){}const l=h.ref(null),{acceptTypes:u,imageSource:c,onClickImage:a}=D(f,o,l,t);return()=>h.createVNode("div",{class:e.value,style:i.value,onClick:a},[n,h.createVNode("img",{title:f.title,class:"f-avatar-image",src:c.value,onError:r},null),!f.readonly&&h.createVNode("div",{class:"f-avatar-icon"},[h.createVNode("span",{class:"f-icon f-icon-camera"},null)]),h.createVNode("input",{ref:"file",name:"file-input",type:"file",class:"f-avatar-upload",accept:u.value,onChange:d,style:"display: none;"},null)])}});function H(f){const{formSchemaUtils:o,formStateMachineUtils:e}=f;function t(l,u=""){return{path:u+l.code,field:l.id,fullPath:l.code}}function i(l,u=""){return o.getViewModelById(l).states.map(a=>t(a,u))}function n(l){const u=o.getRootViewModelId(),c=i(l);if(l===u)return c;const a=i(u,"root-component.");return[...c,...a]}function r(l){return l.binding&&l.binding.path||l.id||""}function d(){return e&&e.getRenderStates()||[]}return{getVariables:n,getControlName:r,getStateMachines:d}}class N{constructor(o){A(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'"}]);A(this,"expressionNames",{compute:"计算表达式",dependency:"依赖表达式",validate:"验证表达式",dataPicking:"帮助前表达式",visible:"可见表达式",readonly:"只读表达式",required:"必填表达式"});A(this,"getExpressionConverter",(o,e)=>({convertFrom:(t,i,n,r)=>{const d=n.getExpressionRuleValue(o,e||i);return d&&d.value||""},convertTo:(t,i,n,r,d)=>{var l;if(i==="dataPicking"&&(n!=null&&n.target)){const u=`${n.target}_dataPicking`;((l=n.rules)==null?void 0:l.some(a=>a.id===u&&a.value))?t.dictPickingExpressionId=u:delete t.dictPickingExpressionId}r.updateExpression(n)}}));this.formSchemaService=o}getExpressionRule(o,e){const t=this.formSchemaService.getExpressions();if(!t)return"";const i=t.find(r=>r.target===o);if(!i)return"";const n=i.rules.find(r=>r.type===e);return n||""}getContextFormVariables(){const{module:o}=this.formSchemaService.getFormSchema();if(!o.viewmodels||o.viewmodels.length===0)return[];const e=this.formSchemaService.getRootViewModelId(),t=this.formSchemaService.getViewModelById(e);if(!t||!t.states||t.states.length===0)return[];const i=[];return t.states.filter(n=>n.category==="remote").forEach(n=>{i.push({key:n.code,name:n.name,description:n.name,category:n.category})}),i}createTreeNode(o,e,t="label"){return{id:o.id,name:o.name,bindingPath:o[t],parents:e,type:"field"}}buildEntityFieldsTreeData(o=null,e){const t=[];return o==null||o.forEach(i=>{var d;const n=this.createTreeNode(i,e);let r=[];(d=i.type)!=null&&d.fields&&(r=this.buildEntityFieldsTreeData(i.type.fields,[...e,i.label])),t.push({data:n,children:r,expanded:!0})}),t}buildChildEntityTreeData(o=null,e){const t=[];return o==null||o.forEach(i=>{var l,u;const n=this.createTreeNode(i,e);n.type="entity";const r=this.buildEntityFieldsTreeData((l=i.type)==null?void 0:l.fields,[...e,i.label]),d=this.buildChildEntityTreeData((u=i.type)==null?void 0:u.entities,[...e,i.label]);d!=null&&d.length&&(r==null||r.push(...d)),t.push({data:n,children:r||[],expanded:!0})}),t}getEntitiesTreeData(){const o=this.formSchemaService.getSchemaEntities();if(!(o!=null&&o.length))return[];const e=o[0];if(!(e!=null&&e.type))return[];const t=this.buildEntityFieldsTreeData(e.type.fields,[e.code]),i=this.buildChildEntityTreeData(e.type.entities,[e.code]);return i!=null&&i.length&&(t==null||t.push(...i)),{entityCode:e.code,fields:[{data:this.createTreeNode(e,[],"code"),children:t||[]}]}}getEntitiesAndVariables(){return{entities:this.getEntitiesTreeData(),variables:{session:{name:"系统变量",items:this.sessionVariables,visible:!1},forms:{name:"表单变量",items:this.getContextFormVariables(),visible:!0}}}}onBeforeOpenExpression(o,e,t){const i=t==="Field"?o.binding.field:o.id,n=this.getExpressionRule(i,e),r=this.getEntitiesAndVariables(),d={message:["validate","required","dataPicking"].includes(e)&&n?n.message:"",...r};return n.messageType!=null&&(d.messageType=n.messageType),d}buildRule(o,e,t,i){const{expression:n,message:r,messageType:d}=e,l={id:`${o}_${t}`,type:t,value:n};return(t==="validate"||t==="dataPicking"||t==="required")&&(l.message=r),t==="dataPicking"&&(l.messageType=d),t==="validate"&&i&&(l.elementId=i),l}getExpressionData(){const{expressions:o}=this.formSchemaService.getFormSchema().module;return o||[]}updateExpression(o,e,t,i){const n=e==="Field"?o.binding.field:o.id,r=this.buildRule(n,t,i,o.type==="form-group"?o.id:"");let l=this.getExpressionData().find(c=>c.targetType===e&&c.target===n);const u=c=>c.value.trim()==="";if(l){const c=l.rules.find(a=>a.id===r.id);if(c)u(r)?l.rules=l.rules.filter(a=>a.id!==r.id):(Object.assign(c,r),i==="validate"&&o.type==="form-group"&&(c.elementId=o.id));else{if(u(r))return null;l.rules=l.rules||[],l.rules.push(r)}}else{if(u(r))return null;l={target:`${n}`,rules:[r],targetType:e}}return l}getExpressionEditorOptions(o,e,t,i){return t.reduce((n,r)=>{var l,u;const d=e==="Field"?(l=o==null?void 0:o.binding)==null?void 0:l.field:o.id;return n[r]={hide:e==="Field"?!!((u=o==null?void 0:o.binding)!=null&&u.field):!1,description:"",title:this.expressionNames[r],type:"string",$converter:this.getExpressionConverter(d),refreshPanelAfterChanged:!0,editor:{type:"expression-editor",singleExpand:!1,dialogTitle:`${this.expressionNames[r]}编辑器`,showMessage:r==="validate"||r==="dataPicking"||r==="required",showMessageType:r==="dataPicking",beforeOpen:()=>this.onBeforeOpenExpression(o,r,e),onSubmitModal:c=>{const a=this.updateExpression(o,e,c,r);if(i){const m=this.buildRule(d,c,r);i(m)}return a}}},n},{})}getExpressionInfo(o,e,t){const i=e==="Field"?o.binding.field:o.id,n=this.getExpressionRule(i,t),r={value:n&&n.value,targetId:i,targetType:e,expressionType:t};return n&&n.message&&(r.message=n.message),r}getExpressionConfig(o,e,t=["compute","dependency","validate"],i){return{description:"表达式",title:"表达式",hide:!o.binding,properties:{...this.getExpressionEditorOptions(o,e,t,i)}}}getExpressionOptions(o,e,t){const i=this.getExpressionInfo(o,e,t);return{dialogTitle:`${this.expressionNames[t]}编辑器`,singleExpand:!1,showMessage:t==="required",beforeOpen:()=>this.onBeforeOpenExpression(o,t,e),expressionInfo:i}}}class W{constructor(o,e){A(this,"componentId");A(this,"viewModelId");A(this,"eventsEditorUtils");A(this,"formSchemaUtils");A(this,"formMetadataConverter");A(this,"designViewModelUtils");A(this,"designViewModelField");A(this,"controlCreatorUtils");A(this,"designerHostService");A(this,"designerContext");A(this,"schemaService",null);A(this,"metadataService",null);A(this,"propertyConfig",{type:"object",categories:{}});var t;this.componentId=o,this.designerHostService=e,this.eventsEditorUtils=e.eventsEditorUtils,this.formSchemaUtils=e.formSchemaUtils,this.formMetadataConverter=e.formMetadataConverter,this.viewModelId=((t=this.formSchemaUtils)==null?void 0:t.getViewModelIdByComponentId(o))||"",this.designViewModelUtils=e.designViewModelUtils,this.controlCreatorUtils=e.controlCreatorUtils,this.metadataService=e.metadataService,this.schemaService=e.schemaService,this.designerContext=e.designerContext}getFormDesignerInstance(){var o,e;return(e=(o=this.designerContext)==null?void 0:o.instances)==null?void 0:e.formDesigner.value}getTableInfo(){var o;return(o=this.schemaService)==null?void 0:o.getTableInfoByViewModelId(this.viewModelId)}setDesignViewModelField(o){var t;const e=o.binding&&o.binding.type==="Form"&&o.binding.field;if(e){if(!this.designViewModelField){const i=this.designViewModelUtils.getDgViewModel(this.viewModelId);this.designViewModelField=i.fields.find(n=>n.id===e)}o.updateOn=(t=this.designViewModelField)==null?void 0:t.updateOn}}getBasicPropConfig(o){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:o.type,name:s.DgControl[o.type]&&s.DgControl[o.type].name}]}}}}}getAppearanceConfig(o=null,e={},t){const i={title:"外观",description:"Appearance"},n={class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"},style:{title:"style样式",type:"string",description:"组件的样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"}};for(const r in e)n[r]=Object.assign(n[r]||{},e[r]);return{...i,properties:{...n},setPropertyRelates(r,d){if(r){switch(r&&r.propertyID){case"class":case"style":{s.canvasChanged.value++;break}}t&&t(r,o,d)}}}}getPropertyEditorParams(o,e=[],t="visible",i={},n={},r=""){const{getVariables:d,getControlName:l,getStateMachines:u}=H(this.designerHostService),c=this.getRealTargetType(o),a=e&&e.length>0?e:["Const","Variable","StateMachine","Expression"],m={type:"property-editor",propertyTypes:a};return a.map(g=>{switch(g){case"Const":Object.assign(m,{constType:"enum",constEnums:[{id:!0,name:"是"},{id:!1,name:"否"}]},i);break;case"Expression":m.expressionConfig=this.getExpressionOptions(o,c,r||t);break;case"StateMachine":m.stateMachines=u();break;case"Variable":Object.assign(m,{controlName:l(o),newVariablePrefix:"is",newVariableType:"Boolean",variables:d(this.viewModelId),parentComponentId:this.componentId==="root-component"?"":"root-component",onBeforeOpenVariables:p=>{p.value=d(this.viewModelId)}},n),this.designerContext.designerMode==="PC_RTC"&&(m.newVariablePrefix="ext_"+m.newVariablePrefix);break}}),m}getVisibleProperty(o,e=""){var n;let t=["Const","Variable","StateMachine","Expression"];return e==="gridFieldEditor"?t=["Const","Expression"]:e==="form-group"&&!((n=o.binding)!=null&&n.field)&&(t=["Const","Variable","StateMachine"]),{visible:{title:"是否可见",type:"boolean",description:"运行时组件是否可见",editor:this.getPropertyEditorParams(o,t,"visible")}}}getBehaviorConfig(o,e="",t={},i){const n={title:"行为",description:""},r=this.getVisibleProperty(o,e);for(const l in t)r[l]=Object.assign(r[l]||{},t[l]);const d=this;return{...n,properties:{...r},setPropertyRelates(l,u){if(l){switch(l.propertyID){case"disabled":case"readonly":case"visible":d.afterMutilEditorChanged(o,l);break}i&&i(l,u)}}}}afterMutilEditorChanged(o,e){this.addNewVariableToViewModel(e,this.viewModelId),this.updateExpressionValue(e),this.clearExpression(e,o)}updateElementByParentContainer(o,e){const t=e&&e.parent&&e.parent.schema;if(!t)return;const i=t.contents.findIndex(r=>r.id===o),n=U.cloneDeep(t.contents[i]);t.contents.splice(i,1),t.contents.splice(i,0,n),s.refreshCanvas()}addNewVariableToViewModel(o,e){const t=o.propertyValue;if(!(t&&typeof t=="object")||!(t.type==="Variable"&&t.isNewVariable))return;const r={id:t.field,category:"locale",code:t.fullPath,name:t.fullPath,type:t.newVariableType||"String",isRtcVariable:this.designerContext.designerMode==="PC_RTC"?!0:void 0};delete t.newVariableType,delete t.isNewVariable,this.formSchemaUtils.getVariableByCode(r.code)||this.formSchemaUtils.getViewModelById("root-viewmodel").states.push(r)}updateExpressionValue(o){const e=o.propertyValue;if(!((e&&e.type)==="Expression"&&e.expressionInfo))return;const{expressionId:n,expressionInfo:r}=e,{targetId:d,targetType:l,expressionType:u,value:c,message:a}=r,m=this.formSchemaUtils.getModule();m.expressions=m.expressions||[];const{expressions:g}=m;let p=g.find(C=>C.target===d);p||(p={target:d,rules:[],targetType:l},g.push(p));const y=p.rules.find(C=>C.type===u);if(y)y.value=c,y.message=a;else{const C={id:n,type:u,value:c,message:a};p.rules.push(C)}delete e.expressionInfo}clearExpression(o,e){const t=o.propertyValue;if(t&&t.type==="Expression")return;const n=o.propertyID,r=this.formSchemaUtils.getExpressions(),d=e.binding?e.binding.field:e.id,l=r.find(u=>u.target===d);!l||!l.rules||(l.rules=l.rules.filter(u=>u.type!==n))}getExpressionOptions(o,e,t){return new N(this.formSchemaUtils).getExpressionOptions(o,e,t)}getRealTargetType(o){return["response-toolbar-item","tab-toolbar-item","section-toolbar-item"].indexOf(o.type)>-1?"Button":o.binding&&o.binding.field?"Field":"Container"}createBaseEventProperty(o){const e={};return e[this.viewModelId]={type:"events-editor",editor:{initialData:o,viewSourceHandle:t=>{var i;((i=t.controller)==null?void 0:i.label.indexOf(this.formSchemaUtils.getModule().code))>-1&&this.eventsEditorUtils.jumpToMethod(t)}}},e}}const v=class v{static getEditorTypesByMDataType(o,e=!1,t=""){if(e)return[{key:s.DgControl["language-textbox"].type,value:s.DgControl["language-textbox"].name}];let i=v.fieldControlTypeMapping[o];if(t==="data-grid-column"&&(i!=null&&i.length)){const n=[s.DgControl["check-group"].type,s.DgControl["radio-group"].type,s.DgControl.image.type];i=i.filter(r=>!n.includes(r.key))}return i}static getAllInputTypes(){const o=[];for(const e in v.fieldControlTypeMapping)v.fieldControlTypeMapping[e].forEach(t=>{o.find(i=>i.key===t.key&&i.value===t.value)||o.push({key:t.key,value:t.value})});return o}static mappingDomPropAndSchemaProp(o,e){var n;const t=(n=o.editor)==null?void 0:n.type,i=[];return(o.type===s.DgControl["data-grid-column"].type||o.type===s.DgControl["tree-grid-column"].type)&&e&&e.categoryId&&e.categoryId.indexOf("gridFieldEditor")<0&&i.push({domField:"title",schemaField:"name"}),i.push({domField:"label",schemaField:"name"}),i.push({domField:"editor.required",schemaField:"require"}),i.push({domField:"editor.readonly",schemaField:"readonly"}),(t===s.DgControl["input-group"].type||t===s.DgControl.textarea.type||t===s.DgControl["number-spinner"].type)&&i.push({domField:"editor.maxLength",schemaField:"type.length"}),t===s.DgControl["number-spinner"].type&&i.push({domField:"editor.precision",schemaField:"type.precision"}),(o.type===s.DgControl["data-grid-column"].type||o.type===s.DgControl["tree-grid-column"].type)&&i.push({domField:"formatter.precision",schemaField:"type.precision"}),(t===s.DgControl["combo-list"].type||t===s.DgControl["radio-group"].type)&&i.push({domField:"editor.data",schemaField:"type.enumValues"}),(o.type===s.DgControl["data-grid-column"].type||o.type===s.DgControl["tree-grid-column"].type)&&i.push({domField:"formatter.data",schemaField:"type.enumValues"}),t===s.DgControl["date-picker"].type&&(i.push({domField:"editor.displayFormat",schemaField:"editor.format"}),i.push({domField:"editor.fieldType",schemaField:"type.name"})),t===s.DgControl["number-spinner"].type&&(i.push({domField:"editor.max",schemaField:"editor.maxValue"}),i.push({domField:"editor.min",schemaField:"editor.minValue"})),t===s.DgControl.lookup.type&&(i.push({domField:"editor.dataSource",schemaField:"editor.dataSource"}),i.push({domField:"editor.valueField",schemaField:"editor.valueField"}),i.push({domField:"editor.textField",schemaField:"editor.textField"}),i.push({domField:"editor.displayType",schemaField:"editor.displayType"}),i.push({domField:"editor.mapFields",schemaField:"editor.mapFields"}),i.push({domField:"editor.helpId",schemaField:"editor.helpId"})),i.push({domField:"path",schemaField:"bindingPath"}),i.push({domField:"binding.path",schemaField:"bindingField"}),i.push({domField:"binding.fullPath",schemaField:"path"}),(o.type===s.DgControl["data-grid-column"].type||o.type===s.DgControl["tree-grid-column"].type)&&i.push({domField:"field",schemaField:"bindingPath"}),i}};A(v,"fieldControlTypeMapping",{String:[{key:s.DgControl["input-group"].type,value:s.DgControl["input-group"].name},{key:s.DgControl.lookup.type,value:s.DgControl.lookup.name},{key:s.DgControl.image.type,value:s.DgControl.image.name},{key:s.DgControl["date-picker"].type,value:s.DgControl["date-picker"].name},{key:s.DgControl.switch.type,value:s.DgControl.switch.name},{key:s.DgControl["check-box"].type,value:s.DgControl["check-box"].name},{key:s.DgControl["check-group"].type,value:s.DgControl["check-group"].name},{key:s.DgControl["radio-group"].type,value:s.DgControl["radio-group"].name},{key:s.DgControl["combo-list"].type,value:s.DgControl["combo-list"].name},{key:s.DgControl.textarea.type,value:s.DgControl.textarea.name},{key:s.DgControl["time-picker"].type,value:s.DgControl["time-picker"].name}],Text:[{key:s.DgControl.textarea.type,value:s.DgControl.textarea.name},{key:s.DgControl.lookup.type,value:s.DgControl.lookup.name},{key:s.DgControl.image.type,value:s.DgControl.image.name},{key:s.DgControl["rich-text-editor"].type,value:s.DgControl["rich-text-editor"].name}],Decimal:[{key:s.DgControl["number-spinner"].type,value:s.DgControl["number-spinner"].name}],Integer:[{key:s.DgControl["number-spinner"].type,value:s.DgControl["number-spinner"].name}],Number:[{key:s.DgControl["number-spinner"].type,value:s.DgControl["number-spinner"].name},{key:s.DgControl.switch.type,value:s.DgControl.switch.name},{key:s.DgControl["check-box"].type,value:s.DgControl["check-box"].name}],BigNumber:[{key:s.DgControl["number-spinner"].type,value:s.DgControl["number-spinner"].name}],Date:[{key:s.DgControl["date-picker"].type,value:s.DgControl["date-picker"].name}],DateTime:[{key:s.DgControl["date-picker"].type,value:s.DgControl["date-picker"].name}],Boolean:[{key:s.DgControl.switch.type,value:s.DgControl.switch.name},{key:s.DgControl["check-box"].type,value:s.DgControl["check-box"].name}],Enum:[{key:s.DgControl["combo-list"].type,value:s.DgControl["combo-list"].name},{key:s.DgControl["radio-group"].type,value:s.DgControl["radio-group"].name}],Object:[{key:s.DgControl.lookup.type,value:s.DgControl.lookup.name},{key:s.DgControl["combo-list"].type,value:s.DgControl["combo-list"].name},{key:s.DgControl["radio-group"].type,value:s.DgControl["radio-group"].name}]});let S=v;var P=(f=>(f.Form="Form",f.Variable="Variable",f))(P||{});class Q{constructor(){A(this,"label","");A(this,"id","");A(this,"columnInSM",12);A(this,"columnInMD",6);A(this,"columnInLG",3);A(this,"columnInEL",2);A(this,"displayWidthInSM",1);A(this,"displayWidthInMD",1);A(this,"displayWidthInLG",1);A(this,"displayWidthInEL",1);A(this,"displayColumnCountAtBreakPoint","md");A(this,"tagRow",0);A(this,"showTopBorder",0);A(this,"group",1);A(this,"isSupportedClass",!0);A(this,"fieldSetId","")}}function G(f){let o,e;const t=new Map;let i=[];function n(c,a){const g=c.split(" ").filter(F=>F.startsWith("col-"));if(g.length===0){a.isSupportedClass=!1;return}let p=g.find(F=>/^col-([1-9]|10|11|12)$/.test(F)),y=g.find(F=>/^col-md-([1-9]|10|11|12)$/.test(F)),C=g.find(F=>/^col-xl-([1-9]|10|11|12)$/.test(F)),I=g.find(F=>/^col-el-([1-9]|10|11|12)$/.test(F));p=p||"col-12",a.columnInSM=parseInt(p.replace("col-",""),10),a.displayWidthInSM=a.columnInSM/12,a.displayWidthInSM!==1&&(a.isSupportedClass=!1),y=y||"col-md-"+a.columnInSM,a.columnInMD=parseInt(y.replace("col-md-",""),10),a.displayWidthInMD=a.columnInMD/6,[1,2].includes(a.displayWidthInMD)||(a.isSupportedClass=!1),C=C||"col-xl-"+a.columnInMD,a.columnInLG=parseInt(C.replace("col-xl-",""),10),a.displayWidthInLG=a.columnInLG/3,[1,2,3,4].includes(a.displayWidthInLG)||(a.isSupportedClass=!1),I=I||"col-el-"+a.columnInLG,a.columnInEL=parseInt(I.replace("col-el-",""),10),a.displayWidthInEL=a.columnInEL/2,[1,2,3,4,5,6].includes(a.displayWidthInEL)||(a.isSupportedClass=!1)}function r(c,a,m,g=!1){let p=!1;c.contents.forEach(y=>{if(y.type==="fieldset"){m+=1,r(y,a,m,!0),p=!0;return}p&&(m+=1,p=!1);const C=y.appearance&&y.appearance.class,I=new Q;C?n(C,I):I.isSupportedClass=!1,I.label=y.label||y.id,I.id=y.id,I.group=m,g&&(I.fieldSetId=c.id),e===y.id&&(o=m),t.set(y.id,y),a.push(I)})}function d(c){const a=f.getComponentById(c);if(!a||!a.componentType||!a.componentType.startsWith("form"))return{result:!1,message:"只可以在响应式表单组件中调整响应式布局配置"};const m=f.selectNode(a,g=>g.type===s.DgControl["response-form"].type);return!m||!m.contents||m.contents.length===0?{result:!1,message:"Form区域内没有控件,请先添加控件"}:{result:!0,message:"",formNode:m}}function l(c,a){a=a||c.id;const{result:m,message:g,formNode:p}=d(a);if(!m)return{result:m,message:g};e=c.id,i=[],t.clear();const y=p.contents[0].type===s.DgControl.fieldset.type?0:1;r(p,i,y);const C=i.find(F=>!F.isSupportedClass);return{defaultState:{defaultGroupNumber:o||1,model:C?"customize":"standard"},importData:i}}function u(c,a){a=a;const{result:m,formNode:g}=d(a);if(!m)return"";const p=[];return c.forEach(y=>{var F;const C=t.get(y.id),I=C.appearance&&C.appearance.class;if(I){const T=I.split(" ").filter(_=>!_.startsWith("col-")),w="col-"+y.columnInSM,$="col-md-"+y.columnInMD,J="col-xl-"+y.columnInLG,X="col-el-"+y.columnInEL,Y=[w,$,J,X].concat(T);C.appearance.class=Y.join(" ")}if(y.fieldSetId){const B=g.contents.find(w=>w.id===y.fieldSetId),T=p.find(w=>w.id===y.fieldSetId);T?(F=T.contents)==null||F.push(C):(p.push(B),B.contents=[C])}else p.push(C)}),g.contents=p,g.id}return{checkCanFindFormNode:d,checkCanOpenLayoutEditor:l,changeFormControlsByResponseLayoutConfig:u,getResonseFormLayoutConfig:r}}class O extends W{constructor(e,t){super(e,t);A(this,"responseLayoutEditorFunction");A(this,"bindingVarible");A(this,"numberEditorOptions",{type:"number-spinner",useThousands:!1,keyboard:!1,showButton:!1});this.responseLayoutEditorFunction=G(this.formSchemaUtils)}getCommonPropertyConfig(e,t,i="Card"){this.propertyConfig.categories.basic=this.getBasicProperties(e,t,i),this.propertyConfig.categories.appearance=this.getAppearanceProperties(e,t),this.propertyConfig.categories.behavior=this.getBehaviorConfig(e,"form-group")}getPropertyConfig(e,t){return this.getCommonPropertyConfig(e,t,"Card"),this.propertyConfig.categories.editor=this.getEditorProperties(e),this.propertyConfig.categories.expressions=this.getExpressionConfig(e,"Field"),this.propertyConfig.categories.eventsEditor=this.getEventPropertyConfig(e),this.propertyConfig}getGridFieldEdtiorPropConfig(e,t){return this.propertyConfig.categories={},this.getCommonPropertyConfig(e,t,"Grid"),this.getGridFieldEdtiorProperties?this.propertyConfig.categories.editor=this.getGridFieldEdtiorProperties(e):this.propertyConfig.categories.editor=this.getEditorProperties(e),this.propertyConfig.categories.expressons=this.getExpressionConfig(e,"Field"),this.propertyConfig.categories}getBasicProperties(e,t,i="Card"){var u;const n=this;this.setDesignViewModelField(e);const{canChangeControlType:r,editorTypeList:d}=this.getAvailableEditorType(e),l={description:"Basic Information",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"编辑器类型",title:"编辑器类型",type:"string",$converter:"/converter/change-editor.converter",parentPropertyID:"editor",editor:{type:"combo-list",textField:"value",valueField:"key",idField:"key",editable:!1,data:d,readonly:!r}},label:{title:"标签",type:"string",$converter:"/converter/form-group-label.converter"},showLabelType:{description:"标签显示方式:1、显示:显示标签 2、占位:保留标签空间,但不显示文本 3、不显示:不显示标签",title:"标签显示",type:"enum",editor:{data:[{id:"visible",name:"显示"},{id:"reserve-space",name:"占位"},{id:"none",name:"不显示"}]},defaultValue:((u=e.editor)==null?void 0:u.type)==="image"?"none":"visible"},binding:{description:"绑定的表单字段",title:"绑定",editor:{type:"binding-selector",bindingType:{enable:!1},editorParams:{componentSchema:e,needSyncToViewModel:!0,viewModelId:this.viewModelId,designerHostService:this.designerHostService,disableOccupiedFields:!0},textField:"bindingField"},refreshPanelAfterChanged:!0,readonly:this.formSchemaUtils.designerMode==="PC_RTC"&&!e.isRtcControl}},setPropertyRelates(c,a,m){if(c)switch(c&&c.propertyID){case"type":{n.changeControlType(e,c,t);break}case"label":{c.needRefreshControlTree=!0;break}case"binding":{n.changeBindingField(e,c,m);break}}}};return i.toLocaleLowerCase()!=="card"&&delete l.properties.showLabelType,l}checkCanChangeControlType(e,t){if(!e.binding)return!1;if(e.binding.type==="Variable"){if(this.bindingVarible=this.formSchemaUtils.getVariableById(e.binding.field),!this.bindingVarible)return!1}else if(!this.designViewModelField||this.designViewModelField.$type!==x.FormSchemaEntityField$Type.SimpleField)return!1;return!0}getAvailableEditorType(e){var n;const t=this.checkCanChangeControlType(e,this.viewModelId);if(!t)return{canChangeControlType:!1,editorTypeList:[{key:e.editor.type,value:((n=s.DgControl[e.editor.type])==null?void 0:n.name)||e.editor.type}]};let i=[];return this.designViewModelField&&this.designViewModelField.$type===x.FormSchemaEntityField$Type.SimpleField?i=S.getEditorTypesByMDataType(this.designViewModelField.type.name,this.designViewModelField.multiLanguage):this.bindingVarible&&(i=S.getEditorTypesByMDataType(this.bindingVarible.type,this.designViewModelField.multiLanguage)),{canChangeControlType:t,editorTypeList:i}}changeBindingField(e,t,i){t.needRefreshEntityTree=!0}getAppearanceProperties(e,t){const i=this;return{title:"外观",description:"Appearance",properties:{class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"},style:{title:"style样式",type:"string",description:"组件的内联样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"},fill:{title:"填充宽度",description:"启用后,控件占满父容器宽度",type:"boolean",parentPropertyID:"appearance"},responseLayout:{description:"响应式列宽",title:"响应式列宽",type:"boolean",visible:!0,refreshPanelAfterChanged:!0,editor:{type:"response-layout-editor-setting",beforeOpen:()=>i.responseLayoutEditorFunction.checkCanOpenLayoutEditor(e,i.componentId)}}},setPropertyRelates(n,r){if(n)switch(n&&n.propertyID){case"responseLayout":i.responseLayoutEditorFunction.changeFormControlsByResponseLayoutConfig(n.propertyValue,i.componentId||e.id),i.updateUnifiedLayoutAfterResponseLayoutChanged(i.componentId),i.updateElementByParentContainer(e.id,t),delete e.responseLayout;break;case"class":i.updateUnifiedLayoutAfterControlChanged(n.propertyValue,e.id,this.componentId),s.canvasChanged.value++;break;case"style":{s.canvasChanged.value++;break}}}}}getEditorProperties(e){return this.getComponentConfig(e)}changeControlType(e,t,i){const n=t.propertyValue,r=i&&i.parent&&i.parent.schema;if(!r)return;const d=r.contents.findIndex(c=>c.id===e.id);if(d===-1)return;const l=r.contents[d];let u;if(this.designViewModelField){const m=this.formSchemaUtils.getViewModelById(this.viewModelId).fields.find(p=>p.id===this.designViewModelField.id).fieldSchema||{};m.editor||(m.editor={}),m.editor.$type=n,this.designViewModelUtils.getDgViewModel(this.viewModelId).changeField(this.designViewModelField.id,m,!1),u=this.controlCreatorUtils.setFormFieldProperty(this.designViewModelField,n)}u||(u=this.controlCreatorUtils.createFormGroupWithoutField(n)),Object.assign(u,{id:l.id,appearance:l.appearance,size:l.size,label:l.label,binding:l.binding}),Object.prototype.hasOwnProperty.call(l,"visible")&&Object.assign(u,{visible:l.visible}),l.editor&&["readonly","required","placeholder"].map(c=>{Object.prototype.hasOwnProperty.call(l.editor,c)&&(u.editor[c]=l.editor[c])}),i!=null&&i.updateContextSchema?i.updateContextSchema(u):(i.schema=Object.assign(l,u),Object.assign(e,u)),Array.from(document.getElementsByClassName("dgComponentSelected")).forEach(c=>c.classList.remove("dgComponentSelected")),Array.from(document.getElementsByClassName("dgComponentFocused")).forEach(c=>c.classList.remove("dgComponentFocused")),s.canvasChanged.value++,h.nextTick(()=>{this.getFormDesignerInstance().reloadPropertyPanel()})}getComponentConfig(e,t={},i={},n){var m,g;const r=Object.assign({description:"编辑器",title:"编辑器",type:"input-group",$converter:"/converter/property-editor.converter",parentPropertyID:"editor"},t),d=(m=e.binding)!=null&&m.field?[]:["Const","Variable","StateMachine"],l=this.getPropertyEditorParams(e,d,"readonly"),u=this.getPropertyEditorParams(e,d,"required"),c={readonly:{description:"",title:"只读",editor:l},required:{description:"",title:"必填",type:"boolean",editor:u,visible:!!((g=e.binding)!=null&&g.field)},placeholder:{description:"当控件没有值时在输入框中显示的文本",title:"提示文本",type:"string"}};for(const p in i)c[p]=Object.assign(c[p]||{},i[p]);const a=this;return{...r,properties:{...c},setPropertyRelates(p,y){if(p){switch(p.propertyID){case"readonly":case"required":a.afterMutilEditorChanged(e,p);break}n&&n.bind(a)(p,e,y)}}}}updateUnifiedLayoutAfterControlChanged(e,t,i){const n=e.split(" ");let r=n.find(a=>/^col-([1-9]|10|11|12)$/.test(a)),d=n.find(a=>/^col-md-([1-9]|10|11|12)$/.test(a)),l=n.find(a=>/^col-xl-([1-9]|10|11|12)$/.test(a)),u=n.find(a=>/^col-el-([1-9]|10|11|12)$/.test(a));r=r||"col-12",d=d||"col-md-"+r.replace("col-",""),l=l||"col-xl-"+d.replace("col-md-",""),u=u||"col-el-"+l.replace("col-xl-","");const c={id:t,columnInSM:parseInt(r.replace("col-",""),10),columnInMD:parseInt(d.replace("col-md-",""),10),columnInLG:parseInt(l.replace("col-xl-",""),10),columnInEL:parseInt(u.replace("col-el-",""),10)};this.updateUnifiedLayoutAfterResponseLayoutChanged(i,c)}updateUnifiedLayoutAfterResponseLayoutChanged(e,t){const{formNode:i}=this.responseLayoutEditorFunction.checkCanFindFormNode(e);if(!i||!i.unifiedLayout)return;const n=[];if(this.responseLayoutEditorFunction.getResonseFormLayoutConfig(i,n,1),t){const p=n.find(y=>y.id===t.id);Object.assign(p||{},t)}const r=n.map(p=>p.columnInSM),d=n.map(p=>p.columnInMD),l=n.map(p=>p.columnInLG),u=n.map(p=>p.columnInEL),c=this.checkIsUniqueColumn(r)?r[0]:null,a=this.checkIsUniqueColumn(d)?d[0]:null,m=this.checkIsUniqueColumn(l)?l[0]:null,g=this.checkIsUniqueColumn(u)?u[0]:null;Object.assign(i.unifiedLayout,{uniqueColClassInSM:c,uniqueColClassInMD:a,uniqueColClassInLG:m,uniqueColClassInEL:g})}checkIsUniqueColumn(e){const t=new Set(e);return Array.from(t).length===1}getItemCollectionEditor(e,t,i){return t=t||"value",i=i||"name",{editor:{columns:[{field:t,title:"值",dataType:"string"},{field:i,title:"名称",dataType:"string"}],type:"item-collection-editor",valueField:t,nameField:i,requiredFields:[t,i],uniqueFields:[t,i],readonly:this.checkEnumDataReadonly(e)}}}checkEnumDataReadonly(e){return!e.binding||e.binding.type!=="Form"?!1:!!(this.designViewModelField&&this.designViewModelField.type&&this.designViewModelField.type.$type===x.FormSchemaEntityFieldType$Type.EnumType)}appendFieldValueChangeEvents(e,t){e.binding&&e.binding.type===P.Form&&e.binding.field?(t.find(i=>i.label==="fieldValueChanging"),t.find(i=>i.label==="fieldValueChanged"),this.designViewModelField&&(e.fieldValueChanging=this.designViewModelField.valueChanging,e.fieldValueChanged=this.designViewModelField.valueChanged)):t=t.filter(i=>i.label!=="fieldValueChanging"&&i.label!=="fieldValueChanged")}getControlMethodType(e){if(!e.binding)return e.type;switch(e.binding.type){case P.Form:return e.binding.path||e.type;case P.Variable:return e.binding.fullPath||e.type}return e.type}getEventPropertyConfig(e,t="card",i,n){const r=this;let d=[];if(i&&(d=d.concat(i)),d.length===0)return{title:"事件",hideTitle:!0,properties:{},tabId:"commands",tabName:"交互",hide:!0};this.appendFieldValueChangeEvents(e,d);const l=r.eventsEditorUtils.formProperties(e,r.viewModelId,d);return{title:"事件",hideTitle:!0,properties:r.createBaseEventProperty(l),tabId:"commands",tabName:"交互",setPropertyRelates(a,m){const g=a.propertyValue;delete e[r.viewModelId],g&&(g.setPropertyRelates=this.setPropertyRelates,g.controlInfo={type:r.getControlMethodType(e),name:e.title},r.eventsEditorUtils.saveRelatedParameters(e,r.viewModelId,g.events,g)),n&&n(a,m,g);const p=r.designViewModelUtils.getDgViewModel(r.viewModelId);p&&r.designViewModelField&&p.changeField(r.designViewModelField.id,{valueChanging:e.fieldValueChanging,valueChanged:e.fieldValueChanged})}}}getExpressionConfig(e,t,i=["compute","dependency","validate"],n){return new N(this.formSchemaUtils).getExpressionConfig(e,t,i,n)}getBindingDataType(){return this.designViewModelField?this.designViewModelField.type.name==="Number"?"number":this.designViewModelField.type.name==="String"?"string":"boolean":"boolean"}getEditor(){return this.getBindingDataType()==="number"?this.numberEditorOptions:{}}updatePropertyValue(e,t,i){var n;e.editor[t]!==i?e.editor[t]=i:(n=this.getFormDesignerInstance())==null||n.reloadPropertyPanel()}setBooleanValue(e,t,i){let n=i;this.getBindingDataType()==="string"&&(n=(n||"").trim()||(t==="trueValue"?"true":"false"));const d=t==="trueValue"?"falseValue":"trueValue";e.editor[d]===n&&(n=n+1),this.updatePropertyValue(e,t,n)}getBooleanValueConverter(){return{convertFrom:(e,t)=>e.editor[t],convertTo:(e,t,i)=>{this.setBooleanValue(e,t,i)}}}}class j extends O{constructor(o,e){super(o,e)}getEditorProperties(o){return{description:"编辑器",title:"编辑器",type:"avatar",$converter:"/converter/property-editor.converter",parentPropertyID:"editor",properties:{readonly:{description:"",title:"只读",type:"boolean"},avatarWidth:{description:"",title:"头像宽度",type:"number"},avatarHeight:{description:"",title:"头像高度",type:"number"},cover:{description:"",title:"封面",type:"string"}}}}}function K(f,o){const e=f.schema;function t(i,n){return new j(i,o).getPropertyConfig(e,n)}return{getPropsConfig:t}}const Z=h.defineComponent({name:"FAvatarDesign",props:M,emits:["change","update:modelValue"],setup(f,o){const e=h.ref(),t=h.inject("designer-host-service"),i=h.inject("design-item-context"),n=K(i,t),r=s.useDesignerComponent(e,i,n);h.onMounted(()=>{e.value.componentInstance=r}),o.expose(r.value);const d=h.computed(()=>({"f-avatar":!0,"f-avatar-readonly":f.readonly,"f-avatar-circle":f.shape==="circle","f-avatar-square":f.shape==="square"})),l=h.ref(f.modelValue),u=h.computed(()=>({width:f.avatarWidth+"px",height:f.avatarHeight+"px"})),c=!1;function a(){return""}function m(){}const g=h.ref(null),{acceptTypes:p,imageSource:y,onClickImage:C}=D(f,o,g,l);return()=>h.createVNode("div",{ref:e,class:d.value,style:u.value,onClick:C},[c,h.createVNode("img",{title:f.title,class:"f-avatar-image",src:y.value,onError:a},null),!f.readonly&&h.createVNode("div",{class:"f-avatar-icon"},[h.createVNode("span",{class:"f-icon f-icon-camera"},null)]),h.createVNode("input",{ref:"file",name:"file-input",type:"file",class:"f-avatar-upload",accept:p.value,onChange:m,style:"display: none;"},null)])}});V.register=(f,o,e,t)=>{f.avatar=V,o.avatar=k},V.registerDesigner=(f,o,e)=>{f.avatar=Z,o.avatar=k};const z=x.withInstall(V);b.FAvatar=V,b.avatarProps=M,b.default=z,b.propsResolver=k,Object.defineProperties(b,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|