@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
2 lines (1 loc) • 23.1 kB
JavaScript
(function(h,f){typeof exports=="object"&&typeof module<"u"?f(exports,require("vue"),require("lodash-es"),require("../common/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es","../common/index.umd.js"],f):(h=typeof globalThis<"u"?globalThis:h||self,f(h["html-template"]={},h.Vue,h.LodashES,h.common))})(this,function(h,f,P,z){"use strict";var me=Object.defineProperty;var fe=(h,f,P)=>f in h?me(h,f,{enumerable:!0,configurable:!0,writable:!0,value:P}):h[f]=P;var M=(h,f,P)=>fe(h,typeof f!="symbol"?f+"":f,P);const O={},B={};function k(p){const{properties:e,title:t,ignore:n}=p,r=n&&Array.isArray(n),o=Object.keys(e).reduce((i,c)=>((!r||!n.find(s=>s===c))&&(i[c]=e[c].type==="object"&&e[c].properties?k(e[c]):P.cloneDeep(e[c].default)),i),{});if(t&&(!r||!n.find(i=>i==="id"))){const i=t.toLowerCase().replace(/-/g,"_");o.id=`${i}_${Math.random().toString().slice(2,6)}`}return o}function G(p){const{properties:e,title:t,required:n}=p;if(n&&Array.isArray(n)){const r=n.reduce((o,i)=>(o[i]=e[i].type==="object"&&e[i].properties?k(e[i]):P.cloneDeep(e[i].default),o),{});if(t&&n.find(o=>o==="id")){const o=t.toLowerCase().replace(/-/g,"_");r.id=`${o}_${Math.random().toString().slice(2,6)}`}return r}return{type:t}}function U(p,e={},t){const n=O[p];if(n){let r=G(n);const o=B[p];return r=o?o({getSchemaByType:U},r,e,t):r,r}return null}function J(p,e){const t=k(e);return Object.keys(t).reduce((n,r)=>(Object.prototype.hasOwnProperty.call(p,r)&&(n[r]&&P.isPlainObject(n[r])&&P.isPlainObject(p[r]||!p[r])?Object.assign(n[r],p[r]||{}):n[r]=p[r]),n),t),t}function D(p,e){return Object.keys(p).filter(n=>p[n]!=null).reduce((n,r)=>{if(e.has(r)){const o=e.get(r);if(typeof o=="string")n[o]=p[r];else{const i=o(r,p[r],p);Object.assign(n,i)}}else n[r]=p[r];return n},{})}function Q(p,e,t=new Map){const n=J(p,e);return D(n,t)}function X(p={}){function e(a,u,l,m){if(typeof l=="number")return m[a].length===l;if(typeof l=="object"){const g=Object.keys(l)[0],y=l[g];if(g==="not")return Number(m[a].length)!==Number(y);if(g==="moreThan")return Number(m[a].length)>=Number(y);if(g==="lessThan")return Number(m[a].length)<=Number(y)}return!1}function t(a,u,l,m){return m[a]&&m[a].propertyValue&&String(m[a].propertyValue.value)===String(l)}const n=new Map([["length",e],["getProperty",t]]);Object.keys(p).reduce((a,u)=>(a.set(u,p[u]),a),n);function r(a,u){const l=a;return typeof u=="number"?[{target:l,operator:"length",param:null,value:Number(u)}]:typeof u=="boolean"?[{target:l,operator:"getProperty",param:a,value:!!u}]:typeof u=="object"?Object.keys(u).map(m=>{if(m==="length")return{target:l,operator:"length",param:null,value:u[m]};const g=m,y=u[m];return{target:l,operator:"getProperty",param:g,value:y}}):[]}function o(a){return Object.keys(a).reduce((l,m)=>{const g=r(m,a[m]);return l.push(...g),l},[])}function i(a,u){if(n.has(a.operator)){const l=n.get(a.operator);return l&&l(a.target,a.param,a.value,u)||!1}return!1}function c(a,u){return o(a).reduce((g,y)=>g&&i(y,u),!0)}function s(a,u){const l=Object.keys(a),m=l.includes("allOf"),g=l.includes("anyOf"),y=m||g,C=(y?a[y?m?"allOf":"anyOf":"allOf"]:[a]).map(F=>c(F,u));return m?!C.includes(!1):C.includes(!0)}return{parseValueSchema:s}}const Y={button:{type:"button",name:"按钮"},"response-toolbar":{type:"response-toolbar",name:"工具栏"},"response-toolbar-item":{type:"response-toolbar-item",name:"按钮"},"content-container":{type:"content-container",name:"容器"},"input-group":{type:"input-group",name:"文本"},textarea:{type:"textarea",name:"多行文本"},lookup:{type:"lookup",name:"帮助"},"number-spinner":{type:"number-spinner",name:"数值"},"date-picker":{type:"date-picker",name:"日期"},switch:{type:"switch",name:"开关"},"radio-group":{type:"radio-group",name:"单选组"},"check-box":{type:"check-box",name:"复选框"},"check-group":{type:"check-group",name:"复选框组"},"combo-list":{type:"combo-list",name:"下拉列表"},"response-form":{type:"response-form",name:"卡片面板"},"response-layout":{type:"response-layout",name:"布局容器",icon:"response-layout-3"},"response-layout-item":{type:"response-layout-item",name:"布局",icon:"response-layout-1"},"tree-grid":{type:"tree-grid",name:"树表格"},"tree-grid-column":{type:"tree-grid-column",name:"树表格列"},"data-grid":{type:"data-grid",name:"表格"},"data-grid-column":{type:"data-grid-column",name:"表格列"},module:{type:"Module",name:"模块"},component:{type:"component",name:"组件"},tabs:{type:"tabs",name:"标签页"},"tab-page":{type:"tab-page",name:"标签页项",dependentParentControl:"Tab"},"tab-toolbar-item":{type:"tab-toolbar-item",name:"标签页工具栏按钮"},"html-template":{type:"html-template",name:"模板容器"},"time-picker":{type:"time-picker",name:"时间选择"},section:{type:"section",name:"分组面板"},"section-toolbar":{type:"section-toolbar",name:"分组面板工具栏"},"section-toolbar-item":{type:"section-toolbar-item",name:"分组面板按钮"},splitter:{type:"splitter",name:"分栏面板"},"splitter-pane":{type:"splitter-pane",name:"分栏面板项",dependentParentControl:"Splitter"},"component-ref":{type:"component-ref",name:"组件引用节点"},uploader:{type:"uploader",name:"附件上传"},"page-header":{type:"page-header",name:"页头"},"page-footer":{type:"page-footer",name:"页脚"},"tab-toolbar":{type:"tab-toolbar",name:"标签页工具栏"},fieldset:{type:"fieldset",name:"分组"},"query-solution":{type:"query-solution",name:"筛选方案"},drawer:{type:"drawer",name:"抽屉"},"external-container":{type:"external-container",name:"外部容器",icon:"content-container"},"list-nav":{type:"list-nav",name:"列表导航"},"filter-bar":{type:"filter-bar",name:"筛选条"}},Z={},R={};X();function $(p,e,t=new Map,n=(i,c,s,a)=>c,r={},o=i=>i){return O[e.title]=e,B[e.title]=n,Z[e.title]=r,R[e.title]=o,(i={},c=!0)=>{if(!c)return D(i,t);const s=Q(i,e,t),a=Object.keys(p).reduce((u,l)=>(u[l]=p[l].default,u),{});return Object.assign(a,s)}}const j={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/html-template.schema.json",title:"html-template",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for a html-template",type:"string"},type:{description:"The type string of html-template",type:"string",default:"html-template"},html:{description:"",type:"string",default:""},renderFunction:{description:"",type:"function",default:null}},required:["id","type"],ignore:[]},A=new Map([]);function q(p,e,t){return e}const x={renderFunction:{type:Function}},I=$(x,j,A,q),N={html:{type:String,default:""}},L=$(N,j,A,q),T=f.defineComponent({name:"FHtmlTemplate",props:x,emits:[],setup(p){return()=>{var e;return(e=p.renderFunction)==null?void 0:e.call(p)}}});function K(p,e,t){var H;const n=t&&t.getStyles&&t.getStyles()||"",r=t&&t.getDesignerClass&&t.getDesignerClass()||"",o=f.ref();function i(){return(e==null?void 0:e.schema.componentType)==="frame"?!1:t&&t.checkCanMoveComponent?t.checkCanMoveComponent():!0}function c(){return!1}function s(){return(e==null?void 0:e.schema.componentType)==="frame"?!1:t&&t.checkCanDeleteComponent?t.checkCanDeleteComponent():!0}function a(){return(e==null?void 0:e.schema.componentType)==="frame"?!0:t&&t.hideNestedPaddingInDesginerView?t.hideNestedPaddingInDesginerView():!1}function u(d){if(!d||!d.value)return null;if(d.value.schema&&d.value.schema.type==="component")return d.value;const b=f.ref(d==null?void 0:d.value.parent),v=u(b);return v||null}function l(d=e){var w;if(t!=null&&t.getDraggableDesignItemElement)return t.getDraggableDesignItemElement(d);const{componentInstance:b,designerItemElementRef:v}=d;if(!b||!b.value)return null;const{getCustomButtons:E}=b.value;return b.value.canMove||E&&((w=E())!=null&&w.length)?v:l(d.parent)}function m(d){return!!t&&t.canAccepts(d)}function g(){return(e==null?void 0:e.schema.label)||(e==null?void 0:e.schema.title)||(e==null?void 0:e.schema.name)}function y(){}function S(d,b){var v;!d||!b||(t!=null&&t.onAcceptMovedChildElement&&t.onAcceptMovedChildElement(d,b),(v=e==null?void 0:e.setupContext)==null||v.emit("dragEnd"))}function V(d,b){const{componentType:v}=d;let E=U(v,d,b);t&&t.onResolveNewComponentSchema&&(E=t.onResolveNewComponentSchema(d,E));const w=v.toLowerCase().replace(/-/g,"_");return E&&!E.id&&E.type===v&&(E.id=`${w}_${Math.random().toString().slice(2,6)}`),E}function C(d){d&&t!=null&&t.onChildElementMovedOut&&t.onChildElementMovedOut(d)}function _(...d){if(t&&t.getPropsConfig)return t.getPropsConfig(...d)}function F(d){if(!d)return;const b=e==null?void 0:e.schema,{formSchemaUtils:v}=d;if(b&&v.getExpressions().length){const E=v.getExpressions().findIndex(w=>w.target===b.id);E>-1&&v.getExpressions().splice(E,1)}}function pe(d){t&&t.onRemoveComponent&&t.onRemoveComponent(),F(d),e!=null&&e.schema.contents&&e.schema.contents.map(b=>{let v=b.id;b.type==="component-ref"&&(v=b.component);const E=p.value.querySelectorAll(`#${v}-design-item`);E!=null&&E.length&&Array.from(E).map(w=>{var W;(W=w==null?void 0:w.componentInstance)!=null&&W.value.onRemoveComponent&&w.componentInstance.value.onRemoveComponent(d)})})}function ue(){if(t&&t.getCustomButtons)return t.getCustomButtons()}function de(d){if(t&&t.onPropertyChanged)return t.onPropertyChanged(d)}return o.value={canMove:i(),canSelectParent:c(),canDelete:s(),canNested:!a(),contents:e==null?void 0:e.schema.contents,elementRef:p,parent:(H=e==null?void 0:e.parent)==null?void 0:H.componentInstance,schema:e==null?void 0:e.schema,styles:n,designerClass:r,canAccepts:m,getBelongedComponentInstance:u,getDraggableDesignItemElement:l,getDraggingDisplayText:g,getPropConfig:_,getDragScopeElement:y,onAcceptMovedChildElement:S,onChildElementMovedOut:C,addNewChildComponentSchema:V,triggerBelongedComponentToMoveWhenMoved:!!t&&t.triggerBelongedComponentToMoveWhenMoved||f.ref(!1),triggerBelongedComponentToDeleteWhenDeleted:!!t&&t.triggerBelongedComponentToDeleteWhenDeleted||f.ref(!1),onRemoveComponent:pe,getCustomButtons:ue,onPropertyChanged:de},o}const ee=f.ref(0);function te(){ee.value++}const ne=f.ref(0);function re(p){const{formSchemaUtils:e,formStateMachineUtils:t}=p;function n(s,a=""){return{path:a+s.code,field:s.id,fullPath:s.code}}function r(s,a=""){return e.getViewModelById(s).states.map(l=>n(l,a))}function o(s){const a=e.getRootViewModelId(),u=r(s);if(s===a)return u;const l=r(a,"root-component.");return[...u,...l]}function i(s){return s.binding&&s.binding.path||s.id||""}function c(){return t&&t.getRenderStates()||[]}return{getVariables:o,getControlName:i,getStateMachines:c}}class ie{constructor(e){M(this,"sessionVariables",[{key:"CurrentSysOrgName",name:"当前组织Name",description:"当前组织Name"},{key:"CurrentSysOrgId",name:"当前组织Id",description:"当前组织Id"},{key:"CurrentUserName",name:"当前用户Name",description:"当前用户Name"},{key:"CurrentUserCode",name:"当前用户Code",description:"当前用户Code"},{key:"CurrentUserId",name:"当前用户Id",description:"当前用户Id"},{key:"CurrentLanguage",name:"当前语言编号",description:"当前登录的语言编号,例如简体中文返回'zh-CHS',英文返回'en',繁体中文'zh-CHT'"}]);M(this,"expressionNames",{compute:"计算表达式",dependency:"依赖表达式",validate:"验证表达式",dataPicking:"帮助前表达式",visible:"可见表达式",readonly:"只读表达式",required:"必填表达式"});M(this,"getExpressionConverter",(e,t)=>({convertFrom:(n,r,o,i)=>{const c=o.getExpressionRuleValue(e,t||r);return c&&c.value||""},convertTo:(n,r,o,i,c)=>{var s;if(r==="dataPicking"&&(o!=null&&o.target)){const a=`${o.target}_dataPicking`;((s=o.rules)==null?void 0:s.some(l=>l.id===a&&l.value))?n.dictPickingExpressionId=a:delete n.dictPickingExpressionId}i.updateExpression(o)}}));this.formSchemaService=e}getExpressionRule(e,t){const n=this.formSchemaService.getExpressions();if(!n)return"";const r=n.find(i=>i.target===e);if(!r)return"";const o=r.rules.find(i=>i.type===t);return o||""}getContextFormVariables(){const{module:e}=this.formSchemaService.getFormSchema();if(!e.viewmodels||e.viewmodels.length===0)return[];const t=this.formSchemaService.getRootViewModelId(),n=this.formSchemaService.getViewModelById(t);if(!n||!n.states||n.states.length===0)return[];const r=[];return n.states.forEach(o=>{r.push({key:o.code,name:o.name,description:o.name,category:o.category})}),r}createTreeNode(e,t,n="label"){return{id:e.id,name:e.name,bindingPath:e[n],parents:t}}buildEntityFieldsTreeData(e=null,t){const n=[];return e==null||e.forEach(r=>{var c;const o=this.createTreeNode(r,t);let i=[];(c=r.type)!=null&&c.fields&&(i=this.buildEntityFieldsTreeData(r.type.fields,[...t,r.label])),n.push({data:o,children:i,expanded:!0})}),n}buildChildEntityTreeData(e=null,t){const n=[];return e==null||e.forEach(r=>{var s,a;const o=this.createTreeNode(r,t),i=this.buildEntityFieldsTreeData((s=r.type)==null?void 0:s.fields,[...t,r.label]),c=this.buildChildEntityTreeData((a=r.type)==null?void 0:a.entities,[...t,r.label]);c!=null&&c.length&&(i==null||i.push(...c)),n.push({data:o,children:i||[],expanded:!0})}),n}getEntitiesTreeData(){const e=this.formSchemaService.getSchemaEntities();if(!(e!=null&&e.length))return[];const t=e[0];if(!(t!=null&&t.type))return[];const n=this.buildEntityFieldsTreeData(t.type.fields,[t.code]),r=this.buildChildEntityTreeData(t.type.entities,[t.code]);return r!=null&&r.length&&(n==null||n.push(...r)),{entityCode:t.code,fields:[{data:this.createTreeNode(t,[],"code"),children:n||[]}]}}getEntitiesAndVariables(){return{entities:this.getEntitiesTreeData(),variables:{session:{name:"系统变量",items:this.sessionVariables,visible:!1},forms:{name:"表单变量",items:this.getContextFormVariables(),visible:!0}}}}onBeforeOpenExpression(e,t,n){const r=n==="Field"?e.binding.field:e.id,o=this.getExpressionRule(r,t),i=this.getEntitiesAndVariables(),c={message:["validate","required","dataPicking"].includes(t)&&o?o.message:"",...i};return o.messageType!=null&&(c.messageType=o.messageType),c}buildRule(e,t,n,r){const{expression:o,message:i,messageType:c}=t,s={id:`${e}_${n}`,type:n,value:o};return(n==="validate"||n==="dataPicking"||n==="required")&&(s.message=i),n==="dataPicking"&&(s.messageType=c),n==="validate"&&r&&(s.elementId=r),s}getExpressionData(){const{expressions:e}=this.formSchemaService.getFormSchema().module;return e||[]}updateExpression(e,t,n,r){const o=t==="Field"?e.binding.field:e.id,i=this.buildRule(o,n,r,e.type==="form-group"?e.id:"");let s=this.getExpressionData().find(u=>u.targetType===t&&u.target===o);const a=u=>u.value.trim()==="";if(s){const u=s.rules.find(l=>l.id===i.id);if(u)a(i)?s.rules=s.rules.filter(l=>l.id!==i.id):(Object.assign(u,i),r==="validate"&&e.type==="form-group"&&(u.elementId=e.id));else{if(a(i))return null;s.rules=s.rules||[],s.rules.push(i)}}else{if(a(i))return null;s={target:`${o}`,rules:[i],targetType:t}}return s}getExpressionEditorOptions(e,t,n,r){return n.reduce((o,i)=>{var s,a;const c=t==="Field"?(s=e==null?void 0:e.binding)==null?void 0:s.field:e.id;return o[i]={hide:t==="Field"?!!((a=e==null?void 0:e.binding)!=null&&a.field):!1,description:"",title:this.expressionNames[i],type:"string",$converter:this.getExpressionConverter(c),editor:{type:"expression-editor",singleExpand:!1,dialogTitle:`${this.expressionNames[i]}编辑器`,showMessage:i==="validate"||i==="dataPicking"||i==="required",showMessageType:i==="dataPicking",beforeOpen:()=>this.onBeforeOpenExpression(e,i,t),onSubmitModal:u=>{const l=this.updateExpression(e,t,u,i);if(r){const m=this.buildRule(c,u,i);r(m)}return l}}},o},{})}getExpressionInfo(e,t,n){const r=t==="Field"?e.binding.field:e.id,o=this.getExpressionRule(r,n),i={value:o&&o.value,targetId:r,targetType:t,expressionType:n};return o&&o.message&&(i.message=o.message),i}getExpressionConfig(e,t,n=["compute","dependency","validate"],r){return{description:"表达式",title:"表达式",properties:{...this.getExpressionEditorOptions(e,t,n,r)}}}getExpressionOptions(e,t,n){const r=this.getExpressionInfo(e,t,n);return{dialogTitle:`${this.expressionNames[n]}编辑器`,singleExpand:!1,showMessage:n==="required",beforeOpen:()=>this.onBeforeOpenExpression(e,n,t),expressionInfo:r}}}class oe{constructor(e,t){M(this,"componentId");M(this,"viewModelId");M(this,"eventsEditorUtils");M(this,"formSchemaUtils");M(this,"formMetadataConverter");M(this,"designViewModelUtils");M(this,"designViewModelField");M(this,"controlCreatorUtils");M(this,"designerHostService");M(this,"schemaService",null);M(this,"metadataService",null);M(this,"propertyConfig",{type:"object",categories:{}});var n;this.componentId=e,this.designerHostService=t,this.eventsEditorUtils=t.eventsEditorUtils,this.formSchemaUtils=t.formSchemaUtils,this.formMetadataConverter=t.formMetadataConverter,this.viewModelId=((n=this.formSchemaUtils)==null?void 0:n.getViewModelIdByComponentId(e))||"",this.designViewModelUtils=t.designViewModelUtils,this.controlCreatorUtils=t.controlCreatorUtils,this.metadataService=t.metadataService,this.schemaService=t.schemaService}getTableInfo(){var e;return(e=this.schemaService)==null?void 0:e.getTableInfoByViewModelId(this.viewModelId)}setDesignViewModelField(e){var n;const t=e.binding&&e.binding.type==="Form"&&e.binding.field;if(t){if(!this.designViewModelField){const r=this.designViewModelUtils.getDgViewModel(this.viewModelId);this.designViewModelField=r.fields.find(o=>o.id===t)}e.updateOn=(n=this.designViewModelField)==null?void 0:n.updateOn}}getBasicPropConfig(e){return{description:"Basic Information",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"select",editor:{type:"combo-list",textField:"name",valueField:"value",idField:"value",editable:!1,data:[{value:e.type,name:Y[e.type].name}]}}}}}getAppearanceConfig(e=null,t={},n){const r={title:"外观",description:"Appearance"},o={class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter"},style:{title:"style样式",type:"string",description:"组件的样式",$converter:"/converter/appearance.converter"}};for(const i in t)o[i]=Object.assign(o[i]||{},t[i]);return{...r,properties:{...o},setPropertyRelates(i,c){if(i){switch(i&&i.propertyID){case"class":case"style":{ne.value++;break}}n&&n(i,e,c)}}}}getPropertyEditorParams(e,t=[],n="visible",r={},o={}){const{getVariables:i,getControlName:c,getStateMachines:s}=re(this.designerHostService),a=this.getRealTargetType(e),u=t&&t.length>0?t:["Const","Variable","StateMachine","Expression"],l={type:"property-editor",propertyTypes:u};return u.map(m=>{switch(m){case"Const":Object.assign(l,{constType:"enum",constEnums:[{id:!0,name:"是"},{id:!1,name:"否"}]},r);break;case"Expression":l.expressionConfig=this.getExpressionOptions(e,a,n);break;case"StateMachine":l.stateMachines=s();break;case"Variable":Object.assign(l,{controlName:c(e),newVariablePrefix:"is",newVariableType:"Boolean",variables:i(this.viewModelId),onBeforeOpenVariables:g=>{g.value=i(this.viewModelId)}},o);break}}),l}getVisibleProperty(e,t=""){return{visible:{title:"是否可见",type:"boolean",description:"运行时组件是否可见",editor:this.getPropertyEditorParams(e,t==="gridFieldEditor"?["Const","Expression"]:["Const","Variable","StateMachine","Expression"],"visible")}}}getBehaviorConfig(e,t="",n={},r){const o={title:"行为",description:""},i=this.getVisibleProperty(e,t);for(const s in n)i[s]=Object.assign(i[s]||{},n[s]);const c=this;return{...o,properties:{...i},setPropertyRelates(s,a){if(s){switch(s.propertyID){case"disabled":case"readonly":case"visible":c.afterMutilEditorChanged(e,s);break}r&&r(s,a)}}}}afterMutilEditorChanged(e,t){this.addNewVariableToViewModel(t,this.viewModelId),this.updateExpressionValue(t),this.clearExpression(t,e)}updateElementByParentContainer(e,t){const n=t&&t.parent&&t.parent.schema;if(!n)return;const r=n.contents.findIndex(i=>i.id===e),o=P.cloneDeep(n.contents[r]);n.contents.splice(r,1),n.contents.splice(r,0,o),te()}addNewVariableToViewModel(e,t){const n=e.propertyValue;if(!(n&&typeof n=="object")||!(n.type==="Variable"&&n.isNewVariable))return;const i={id:n.field,category:"locale",code:n.fullPath,name:n.fullPath,type:n.newVariableType||"String"};delete n.newVariableType,delete n.isNewVariable,this.formSchemaUtils.getVariableByCode(i.code)||this.formSchemaUtils.getViewModelById(t).states.push(i)}updateExpressionValue(e){const t=e.propertyValue;if(!((t&&t.type)==="Expression"&&t.expressionInfo))return;const{expressionId:o,expressionInfo:i}=t,{targetId:c,targetType:s,expressionType:a,value:u,message:l}=i,m=this.formSchemaUtils.getModule();m.expressions??(m.expressions=[]);const{expressions:g}=m;let y=g.find(V=>V.target===c);y||(y={target:c,rules:[],targetType:s},g.push(y));const S=y.rules.find(V=>V.type===a);if(S)S.value=u,S.message=l;else{const V={id:o,type:a,value:u,message:l};y.rules.push(V)}delete t.expressionInfo}clearExpression(e,t){const n=e.propertyValue;if(n&&n.type==="Expression")return;const o=e.propertyID,i=this.formSchemaUtils.getExpressions(),c=t.binding?t.binding.field:t.id,s=i.find(a=>a.target===c);!s||!s.rules||(s.rules=s.rules.filter(a=>a.type!==o))}getExpressionOptions(e,t,n){return new ie(this.formSchemaUtils).getExpressionOptions(e,t,n)}getRealTargetType(e){return["response-toolbar-item","tab-toolbar-item","section-toolbar-item"].indexOf(e.type)>-1?"Button":e.binding&&e.binding.field?"Field":"Container"}}class se extends oe{constructor(e,t){super(e,t)}getPropertyConfig(e){return this.propertyConfig.categories.basic=this.getBasicPropConfig(e),this.propertyConfig.categories.template=this.getTemplateProperties(e),this.propertyConfig}getTemplateProperties(e){return{title:"模板",description:"",properties:{html:{title:"html",type:"string",description:"HTML模板",refreshPanelAfterChanged:!0,editor:{type:"code-editor",language:"html"}}}}}}function ae(p,e){function t(){return!1}function n(){return!0}function r(){return!0}function o(){return!0}function i(c){return new se(c,e).getPropertyConfig(p)}return{canAccepts:t,hideNestedPaddingInDesginerView:o,getPropsConfig:i,checkCanDeleteComponent:n,checkCanMoveComponent:r}}const ce=f.defineComponent({name:"FHtmlTemplateDesign",props:N,emits:[],setup(p,e){const t=f.ref(),n=f.inject("designer-host-service"),r=f.inject("design-item-context"),o=ae(r.schema,n),i=K(t,r,o);f.onMounted(()=>{t.value.componentInstance=i}),e.expose(i.value);const s='<div class="fv-html-template-design-placeholder">请在属性面板中配置模板</div>',a=f.computed(()=>p.html?p.html:s);return()=>f.createVNode("div",{ref:t,class:"fv-html-template-design",innerHTML:a.value},null)}});T.register=(p,e,t,n)=>{p["html-template"]=T,e["html-template"]=I},T.registerDesigner=(p,e,t)=>{p["html-template"]=ce,e["html-template"]=L};const le=z.withInstall(T);h.FHtmlTemplate=T,h.default=le,h.designPropsResolver=L,h.htmlTemplateDesignProps=N,h.htmlTemplateProps=x,h.propsResolver=I,Object.defineProperties(h,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});