UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

2 lines (1 loc) 26.8 kB
(function(p,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("vue"),require("../dynamic-resolver/index.umd.js"),require("../response-toolbar/index.umd.js"),require("../common/index.umd.js"),require("../../designer/response-toolbar/index.umd.js"),require("../designer-canvas/index.umd.js"),require("lodash-es")):typeof define=="function"&&define.amd?define(["exports","vue","../dynamic-resolver/index.umd.js","../response-toolbar/index.umd.js","../common/index.umd.js","../../designer/response-toolbar/index.umd.js","../designer-canvas/index.umd.js","lodash-es"],a):(p=typeof globalThis<"u"?globalThis:p||self,a(p["page-header"]={},p.Vue,p.dynamicResolver,p.FResponseToolbar,p.common,p.FResponseToolbarDesignComponent,p.designerCanvas,p.LodashES))})(this,function(p,a,C,$,x,k,P,D){"use strict";var Z=Object.defineProperty;var ee=(p,a,C)=>a in p?Z(p,a,{enumerable:!0,configurable:!0,writable:!0,value:C}):p[a]=C;var h=(p,a,C)=>ee(p,typeof a!="symbol"?a+"":a,C);const S=new Map([["appearance",C.resolveAppearance],["toolbar",C.resolveToolbar]]),M={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/page-header.schema.json",title:"page-header",description:"A Farris Container Component",type:"object",properties:{id:{description:"The unique identifier for a Page Header",type:"string"},type:{description:"The type string of Page Header component",type:"string",default:"page-header"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},showIcon:{description:"",type:"boolean",default:!0},icon:{description:"",type:"string",default:"f-icon-page-title-record"},iconClass:{description:"",type:"string",default:"f-text-orna-bill"},title:{description:"",type:"string",default:""},subTitle:{description:"",type:"string",default:""},toolbar:{description:"",type:"object",properties:{appearance:{description:"",type:"object",properties:{class:{type:"string",default:"col-6"}}},id:{description:"",type:"string"},type:{description:"",type:"string",default:"response-toolbar"},alignment:{description:"The alignment of Response Toolbar Button.",type:"string",default:"right"},buttons:{description:"The items of Response Toolbar.",type:"array",default:[]},visible:{description:"",type:"boolean",default:!0}}},titleContentClass:{description:"",type:"string",default:""},contentClass:{description:"",type:"string",default:""},downContentClass:{description:"",type:"string",default:""},showPagination:{description:"",type:"boolean",default:!1},prePaginationDisabled:{description:"",type:"boolean",default:!0},nextPaginationDisabled:{description:"",type:"boolean",default:!1},visible:{description:"",type:"boolean",default:!0},titleContentHtml:{description:"",type:"string",default:""},titleRenderFunction:{description:"",type:"function",default:null},contentHtml:{description:"",type:"string",default:""},contentRenderFunction:{description:"",type:"function",default:null},downContentHtml:{description:"",type:"string",default:""},downContentRenderFunction:{description:"",type:"function",default:null}},required:["id","type"],events:{onLeftClick:"点击左侧按钮事件"}};function R(l,e,t){return e.title="标题",e.appearance={class:"f-page-header"},e.toolbar={id:`${e.id}-toolbar`,type:"response-toolbar",buttons:[]},e.iconClass="f-title-icon f-text-orna-bill",e}const E={customClass:{type:String,default:""},showIcon:{type:Boolean,default:!0},icon:{type:String,default:"f-icon-page-title-record"},iconClass:{type:String,default:"f-text-orna-bill"},title:{type:String,default:""},subTitle:{type:String,default:""},buttonClass:{type:String,default:"col-6"},toolbarId:{type:String,default:""},buttons:{type:Array,default:[]},buttonSize:{type:String,default:""},titleContentClass:{type:String,default:""},contentClass:{type:String,default:""},downContentClass:{type:String,default:""},showPagination:{type:Boolean,default:!1},prePaginationDisabled:{type:Boolean,default:!0},nextPaginationDisabled:{type:Boolean,default:!1},visible:{type:Boolean,default:!0},buttonsVisible:{type:Boolean,default:!0},titleRenderFunction:{type:Function},contentRenderFunction:{type:Function},downContentRenderFunction:{type:Function}},T=Object.assign({},E,{componentId:{type:String,default:""},titleContentHtml:{type:String,default:""},contentHtml:{type:String,default:""},downContentHtml:{type:String,default:""}}),G=C.createPropsResolver(E,M,S,R),L=C.createPropsResolver(T,M,S,R),j=C.createPageHeaderEventHandlerResolver(),A=C.getPropsResolverGenerator(E,M,S,R),O=C.getPropsResolverGenerator(T,M,S,R),I=a.defineComponent({name:"FPageHeader",props:E,emits:["click","prePaginationClick","nextPaginationClick"],setup(l,e){const t=a.ref(l.buttons),n=x.isMobilePhone(),i=(m,g)=>{e.emit("click",m,g)},r=a.computed(()=>{const m={"f-page-header":!0,"d-none":!l.visible,"is-mobile":n};return x.getCustomClass(m,l.customClass)}),s=a.computed(()=>{const m={"f-title-icon":!0};return x.getCustomClass(m,l.iconClass)}),d=a.computed(()=>{const m={"f-icon":!0};return x.getCustomClass(m,l.icon)}),o=a.computed(()=>{const m={"f-title":!0};return x.getCustomClass(m,l.titleContentClass)}),c=a.computed(()=>{const m={"f-content":!0};return x.getCustomClass(m,l.contentClass)}),u=a.computed(()=>{const m={"f-page-header-extend":!0};return x.getCustomClass(m,l.downContentClass)}),f=a.computed(()=>({"f-icon f-icon-arrow-w":!0,"f-state-disabled":l.prePaginationDisabled})),b=a.computed(()=>({"f-icon f-icon-arrow-e":!0,"f-state-disabled":l.nextPaginationDisabled}));function V(m){l.prePaginationDisabled||e.emit("prePaginationClick",m)}function y(m){l.nextPaginationDisabled||e.emit("nextPaginationClick",m)}function v(){return e.slots.titleContent?a.createVNode("div",{class:o.value},[a.createTextVNode(" "),e.slots.titleContent()]):l.titleRenderFunction?a.createVNode("div",{class:o.value},[l.titleRenderFunction()]):a.createVNode("div",{class:"f-title"},[!n&&l.showIcon&&l.icon?a.createVNode("span",{class:s.value},[a.createVNode("i",{class:d.value},null)]):"",a.createVNode("h4",{class:"f-title-text"},[l.title]),l.subTitle?a.createVNode("h5",{class:"f-title-subtitle"},[l.subTitle]):"",l.showPagination?a.createVNode("div",{class:"f-title-pagination"},[a.createVNode("span",{class:f.value,onClick:V},null),a.createVNode("span",{class:b.value,onClick:y},null)]):""])}function w(){return e.slots.content?a.createVNode("div",{class:c.value},[a.createTextVNode(" "),e.slots.content()]):l.contentRenderFunction?a.createVNode("div",{class:c.value},[l.contentRenderFunction()]):null}function H(){if(l.buttons&&l.buttons.length>0)return a.createVNode($,{id:l.toolbarId,customClass:l.buttonClass+" f-response-toolbar--in-header",visible:l.buttonsVisible,items:t.value,onClick:i,buttonSize:l.buttonSize},null)}function B(){return e.slots.downContent?a.createVNode("div",{class:u.value},[a.createTextVNode(" "),e.slots.downContent()]):l.downContentRenderFunction?a.createVNode("div",{class:u.value},[l.downContentRenderFunction()]):null}function U(){return n?a.createVNode("div",{class:"f-page-header--left"},[a.createVNode("div",{class:"f-btn-icon border-0"},[a.createVNode("span",{class:"f-icon f-icon-arrow-chevron-left"},null)])]):null}return a.watch(()=>l.buttons,m=>{t.value=m},{deep:!0}),()=>l.visible?a.createVNode("div",{class:r.value},[a.createVNode("nav",{class:"f-page-header-base"},[U(),v(),w(),H()]),B()]):null}});function z(l){const{formSchemaUtils:e,formStateMachineUtils:t}=l;function n(o,c=""){return{path:c+o.code,field:o.id,fullPath:o.code}}function i(o,c=""){const u=e.getViewModelById(o);return u?u.states.map(f=>n(f,c)):[]}function r(o){const c=e.getRootViewModelId(),u=i(o);if(o===c)return u;const f=i(c,"root-component.");return[...u,...f]}function s(o){return o.binding&&o.binding.path||o.id||""}function d(){return t&&t.getRenderStates()||[]}return{getVariables:r,getControlName:s,getStateMachines:d}}class _{constructor(e){h(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'"}]);h(this,"expressionNames",{compute:"计算表达式",dependency:"依赖表达式",validate:"验证表达式",dataPicking:"帮助前表达式",visible:"可见表达式",readonly:"只读表达式",required:"必填表达式"});h(this,"getExpressionConverter",(e,t)=>({convertFrom:(n,i,r,s)=>{const d=r.getExpressionRuleValue(e,t||i);return d&&d.value||""},convertTo:(n,i,r,s,d)=>{var o;if(i==="dataPicking"&&(r!=null&&r.target)){const c=`${r.target}_dataPicking`;((o=r.rules)==null?void 0:o.some(f=>f.id===c&&f.value))?n.dictPickingExpressionId=c:delete n.dictPickingExpressionId}s.updateExpression(r)}}));this.formSchemaService=e}getExpressionRule(e,t){const n=this.getExpressionData();if(!n)return"";const i=n.find(s=>s.target===e);if(!i)return"";const r=i.rules.find(s=>s.type===t);return r||""}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 i=[];return n.states.filter(r=>r.category==="remote").forEach(r=>{i.push({key:r.code,name:r.name,description:r.name,category:r.category})}),i}createTreeNode(e,t,n="label"){return{id:e.id,name:e.name,bindingPath:e[n],parents:t,type:"field"}}buildEntityFieldsTreeData(e=null,t){const n=[];return e==null||e.forEach(i=>{var d;const r=this.createTreeNode(i,t);let s=[];(d=i.type)!=null&&d.fields&&(s=this.buildEntityFieldsTreeData(i.type.fields,[...t,i.label])),n.push({data:r,children:s,expanded:!0})}),n}buildChildEntityTreeData(e=null,t){const n=[];return e==null||e.forEach(i=>{var o,c;const r=this.createTreeNode(i,t);r.type="entity";const s=this.buildEntityFieldsTreeData((o=i.type)==null?void 0:o.fields,[...t,i.label]),d=this.buildChildEntityTreeData((c=i.type)==null?void 0:c.entities,[...t,i.label]);d!=null&&d.length&&(s==null||s.push(...d)),n.push({data:r,children:s||[],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]),i=this.buildChildEntityTreeData(t.type.entities,[t.code]);return i!=null&&i.length&&(n==null||n.push(...i)),{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 i=n==="Field"?e.binding.field:e.id,r=this.getExpressionRule(i,t),s=this.getEntitiesAndVariables(),d={message:["validate","required","dataPicking"].includes(t)&&r?r.message:"",...s};return r.messageType!=null&&(d.messageType=r.messageType),d}buildRule(e,t,n,i){const{expression:r,message:s,messageType:d}=t,o={id:`${e}_${n}`,type:n,value:r};return(n==="validate"||n==="dataPicking"||n==="required")&&(o.message=s),n==="dataPicking"&&(o.messageType=d),n==="validate"&&i&&(o.elementId=i),o}getExpressionData(){const{expressions:e}=this.formSchemaService.getFormSchema().module;return e||[]}updateExpression(e,t,n,i){const r=t==="Field"?e.binding.field:e.id,s=this.buildRule(r,n,i,e.type==="form-group"?e.id:"");let o=this.getExpressionData().find(u=>u.targetType===t&&u.target===r);const c=u=>u.value.trim()==="";if(o){const u=o.rules.find(f=>f.id===s.id);if(u)c(s)?o.rules=o.rules.filter(f=>f.id!==s.id):(Object.assign(u,s),i==="validate"&&e.type==="form-group"&&(u.elementId=e.id));else{if(c(s))return null;o.rules=o.rules||[],o.rules.push(s)}}else{if(c(s))return null;o={target:`${r}`,rules:[s],targetType:t}}return o}getExpressionEditorOptions(e,t,n,i){return n.reduce((r,s)=>{var o,c;const d=t==="Field"?(o=e==null?void 0:e.binding)==null?void 0:o.field:e.id;return r[s]={hide:t==="Field"?!!((c=e==null?void 0:e.binding)!=null&&c.field):!1,description:"",title:this.expressionNames[s],type:"string",$converter:this.getExpressionConverter(d),refreshPanelAfterChanged:!0,editor:{type:"expression-editor",singleExpand:!1,dialogTitle:`${this.expressionNames[s]}编辑器`,showMessage:s==="validate"||s==="dataPicking"||s==="required",showMessageType:s==="dataPicking",beforeOpen:()=>this.onBeforeOpenExpression(e,s,t),onSubmitModal:u=>{const f=this.updateExpression(e,t,u,s);if(i){const b=this.buildRule(d,u,s);i(b)}return f}}},r},{})}getExpressionInfo(e,t,n){const i=t==="Field"?e.binding.field:e.id,r=this.getExpressionRule(i,n),s={value:r&&r.value,targetId:i,targetType:t,expressionType:n};return r&&r.message&&(s.message=r.message),s}getExpressionConfig(e,t,n=["compute","dependency","validate"],i){var r;return{description:"表达式",title:"表达式",hide:!(e.binding&&((r=e.binding)==null?void 0:r.type)==="Form"),properties:{...this.getExpressionEditorOptions(e,t,n,i)}}}getExpressionOptions(e,t,n){const i=this.getExpressionInfo(e,t,n);return{dialogTitle:`${this.expressionNames[n]||"表达式"}编辑器`,singleExpand:!1,showMessage:n==="required",beforeOpen:()=>this.onBeforeOpenExpression(e,n,t),expressionInfo:i}}}class K{constructor(e,t){h(this,"componentId");h(this,"viewModelId");h(this,"eventsEditorUtils");h(this,"formSchemaUtils");h(this,"formMetadataConverter");h(this,"designViewModelUtils");h(this,"designViewModelField");h(this,"controlCreatorUtils");h(this,"designerHostService");h(this,"designerContext");h(this,"modalService",null);h(this,"formRule",null);h(this,"schemaService",null);h(this,"metadataService",null);h(this,"propertyConfig",{type:"object",categories:{}});h(this,"expressionProperty");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,this.designerContext=t.designerContext,this.modalService=t.modalService,this.expressionProperty=new _(this.formSchemaUtils)}inResponsiveForm(){var e;return!!((e=this.designerContext)!=null&&e.responsiveForm)}getFormDesignerInstance(){var e,t;return(t=(e=this.designerContext)==null?void 0:e.instances)==null?void 0:t.formDesigner.value}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 i=this.designViewModelUtils.getDgViewModel(this.viewModelId);this.designViewModelField=i.fields.find(r=>r.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:P.DgControl[e.type]&&P.DgControl[e.type].name}]}}}}}getAppearanceConfig(e=null,t={},n){const i={title:"外观",description:"Appearance"},r={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 s in t)r[s]=Object.assign(r[s]||{},t[s]);return{...i,properties:{...r},setPropertyRelates(s,d){if(s){switch(s&&s.propertyID){case"class":case"style":{P.canvasChanged.value++;break}}n&&n(s,e,d)}}}}getPropertyEditorParams(e,t=[],n="visible",i={},r={},s=""){const{getVariables:d,getControlName:o,getStateMachines:c}=z(this.designerHostService),u=this.getRealTargetType(e),f=t&&t.length>0?t:["Const","Variable","StateMachine","Expression"],b={type:"property-editor",propertyTypes:f};return f.map(V=>{switch(V){case"Const":Object.assign(b,{constType:"enum",constEnums:[{id:!0,name:"是"},{id:!1,name:"否"}]},i);break;case"Expression":b.expressionConfig=this.getExpressionOptions(e,u,s||n);break;case"StateMachine":b.stateMachines=c();break;case"Variable":Object.assign(b,{controlName:o(e),newVariablePrefix:"is",newVariableType:"Boolean",variables:d(this.viewModelId),parentComponentId:this.componentId==="root-component"?"":"root-component",onBeforeOpenVariables:y=>{y.value=d(this.viewModelId)}},r),this.designerContext.designerMode==="PC_RTC"&&(b.newVariablePrefix="ext_"+b.newVariablePrefix);break}}),b}getVisibleProperty(e,t=""){var r;let n=["Const","Variable","StateMachine","Expression"];return t==="gridFieldEditor"?n=["Const","Expression"]:t==="form-group"&&!((r=e.binding)!=null&&r.field)?n=["Const","Variable","StateMachine","Custom"]:t==="dataGrid"||t==="treeGrid"||t==="wizard"?n=["Const","Variable","Expression"]:(e.type.indexOf("toolbar-item")>-1||t==="form-group")&&(n=["Const","Variable","StateMachine","Custom","Expression"]),{visible:{title:"是否可见",type:"boolean",description:"运行时组件是否可见",editor:this.getPropertyEditorParams(e,n,"visible")}}}getBehaviorConfig(e,t="",n={},i){const r={title:"行为",description:""},s=this.getVisibleProperty(e,t);for(const o in n)s[o]=Object.assign(s[o]||{},n[o]);const d=this;return{...r,properties:{...s},setPropertyRelates(o,c){if(o){switch(o.propertyID){case"disabled":case"readonly":case"visible":d.afterMutilEditorChanged(e,o);break}i&&i(o,c)}}}}afterMutilEditorChanged(e,t){this.addNewVariableToViewModel(t,this.viewModelId),this.updateExpressionValue(t,e),this.clearExpression(t,e)}updateElementByParentContainer(e,t){const n=t&&t.parent&&t.parent.schema;if(!n)return;const i=n.contents.findIndex(s=>s.id===e),r=D.cloneDeep(n.contents[i]);n.contents.splice(i,1),n.contents.splice(i,0,r),P.refreshCanvas()}addNewVariableToViewModel(e,t){const n=e.propertyValue;if(!(n&&typeof n=="object")||!(n.type==="Variable"&&n.isNewVariable))return;const s={id:n.field,category:"locale",code:n.fullPath,name:n.fullPath,type:n.newVariableType||"String",isRtcVariable:this.designerContext.designerMode==="PC_RTC"?!0:void 0};delete n.newVariableType,delete n.isNewVariable,this.formSchemaUtils.getVariableByCode(s.code)||this.formSchemaUtils.getViewModelById("root-viewmodel").states.push(s)}getExpressions(){let e=[];return this.formRule?(this.formRule.expressions=this.formRule.expressions||[],e=this.formRule.expressions||[]):e=this.formSchemaUtils.getExpressions(),e}updateExpressionValue(e,t){const n=e.propertyValue;if(!((n&&n.type)==="Expression"&&n.expressionInfo))return;const{expressionId:s,expressionInfo:d}=n,{targetId:o,targetType:c,expressionType:u,value:f,message:b}=d,V=this.getExpressions();let y=V.find(w=>w.target===o);y||(y={target:o,rules:[],targetType:c},V.push(y));const v=y.rules.find(w=>w.type===u);if(v)v.id=s,v.value=f,v.message=b,(u==="minDate"||u==="maxDate"||u==="defaultTime")&&(v.elementId=t.id);else{const w={id:s,type:u,value:f,message:b,elementId:t.id};y.rules.push(w)}delete n.expressionInfo}clearExpression(e,t){const n=e.propertyValue;if(n&&n.type==="Expression")return;const r=e.propertyID,s=this.getExpressions(),d=t.binding?t.binding.field:t.id,o=s.find(c=>c.target===d);!o||!o.rules||(o.rules=o.rules.filter(c=>c.type!==r))}getExpressionOptions(e,t,n){return this.expressionProperty.getExpressionOptions(e,t,n)}getRealTargetType(e){return["response-toolbar-item","tab-toolbar-item","section-toolbar-item","drawer-toolbar-item"].indexOf(e.type)>-1?"Button":e.binding&&e.binding.field?"Field":"Container"}createBaseEventProperty(e){const t={};return t[this.viewModelId]={type:"events-editor",editor:{initialData:e,viewSourceHandle:n=>{var i;((i=n.controller)==null?void 0:i.label.indexOf(this.formSchemaUtils.getModule().code))>-1&&this.eventsEditorUtils.jumpToMethod(n)}}},t}}class J extends K{constructor(e,t){super(e,t)}getPropertyConfig(e){return this.propertyConfig.categories.basic=this.getBasicPropConfig(e),this.propertyConfig.categories.appearance=this.getAppearanceProperties(e),this.propertyConfig.categories.template=this.getTemplateConfig(e),this.propertyConfig.categories.behavior=this.getBehaviorConfig(e),this.inResponsiveForm()&&(this.propertyConfig.categories.eventsEditor=this.getEventPropConfig(e)),this.propertyConfig}getAppearanceProperties(e){return{title:"外观",description:"",properties:{class:{title:"class样式",type:"string",description:"组件的CSS样式"},title:{title:"主标题",type:"string",description:"标题"},subTitle:{title:"副标题",type:"string",description:"副标题"},showIcon:{title:"是否显示图标",type:"boolean",description:"是否显示图标",refreshPanelAfterChanged:!0},icon:{title:"图标",type:"string",description:"图标",visible:e.showIcon},iconClass:{title:"图标所属单据类别",type:"string",description:"定义图标的样式,例如颜色、背景等",editor:{type:"combo-list",textField:"value",valueField:"key",idField:"key",editable:!1,data:[{key:"f-title-icon f-text-orna-bill",value:"单据类"},{key:"f-title-icon f-text-orna-dict",value:"字典类"},{key:"f-title-icon f-text-orna-manage",value:"管理类"},{key:"f-title-icon f-text-orna-query",value:"查询报表类"},{key:"f-title-icon f-text-orna-param",value:"系统参数类"}]},visible:e.showIcon}},setPropertyRelates(t,n){if(t)switch(t&&t.propertyID){case"title":{t.needRefreshControlTree=!0;break}}}}}getTemplateConfig(e){return{title:"模板配置",description:"",properties:{titleContentClass:{title:"标题模板class",type:"string",description:"标题模板外层容器的自定义样式"},titleContentHtml:{title:"标题模板",type:"string",description:"设置标题HTML模板,替代图标和标题文字区域",refreshPanelAfterChanged:!0,editor:{type:"code-editor",language:"html"}},contentClass:{title:"内容模板class",type:"string",description:"内容模板外层容器的自定义样式"},contentHtml:{title:"内容模板",type:"string",description:"设置页头中间区域的模板",refreshPanelAfterChanged:!0,editor:{type:"code-editor",language:"html"}},downContentClass:{title:"扩展模板class",type:"string",description:"扩展模板外层容器的自定义样式"},downContentHtml:{title:"扩展模板",type:"string",description:"设置页头下方区域的模板",refreshPanelAfterChanged:!0,editor:{type:"code-editor",language:"html"}}}}}getEventPropConfig(e){const t=[{label:"onLeftClick",name:"点击左侧按钮事件"}],n=this,i=n.eventsEditorUtils.formProperties(e,n.viewModelId,t);return{title:"事件",hideTitle:!0,properties:n.createBaseEventProperty(i),refreshPanelAfterChanged:!0,tabId:"commands",tabName:"交互",setPropertyRelates(s,d){const o=s.propertyValue;delete e[n.viewModelId],o&&(o.setPropertyRelates=this.setPropertyRelates,n.eventsEditorUtils.saveRelatedParameters(e,n.viewModelId,o.events,o))}}}}function Q(l,e){const t=new P.UseTemplateDragAndDropRules;function n(o){return!1}function i(){const{canMove:o}=t.getTemplateRule(l,e);return o}function r(){const{canDelete:o}=t.getTemplateRule(l,e);return o}function s(){return!0}function d(o){const c=new J(o,e),{schema:u}=l;return c.getPropertyConfig(u)}return{canAccepts:n,hideNestedPaddingInDesginerView:s,getPropsConfig:d,checkCanDeleteComponent:r,checkCanMoveComponent:i}}const W=a.defineComponent({name:"FPageHeaderDesign",props:T,emits:["click"],setup(l,e){const t=a.ref(),n=a.inject("designer-host-service"),i=a.inject("design-item-context"),r=Q(i,n),s=P.useDesignerComponent(t,i,r),d=a.ref(i.schema.toolbar||{type:"response-toolbar",buttons:[]}),o=a.ref(k.responseToolbarResolver(d.value));a.onMounted(()=>{t.value.componentInstance=s}),a.watch(()=>i.schema.toolbar,()=>{d.value=i.schema.toolbar||{type:"response-toolbar",buttons:[]},o.value=k.responseToolbarResolver(d.value)},{deep:!0});const c=a.computed(()=>[...o.value.items]);function u(g,N,q,F){i&&i.setupContext&&i.setupContext.emit("selectionChange",g,N,q,F)}e.expose(s.value);function f(g,N){g&&N&&N.split(" ").reduce((F,Y)=>(F[Y]=!0,F),g)}const b=a.computed(()=>{const g={"f-title-icon":!0};return f(g,l.iconClass),g}),V=a.computed(()=>{const g={"f-icon":!0};return f(g,l.icon),g}),y=a.computed(()=>{const g={"text-right":!0,"col-6":!0};return f(g,l.buttonClass||""),g}),v=a.computed(()=>{const g={"f-title":!0};return x.getCustomClass(g,l.titleContentClass)}),w=a.computed(()=>{const g={"f-content":!0};return x.getCustomClass(g,l.contentClass)}),H=a.computed(()=>{const g={"f-page-header-extend":!0};return x.getCustomClass(g,l.downContentClass)});function B(){return l.titleContentHtml?a.createVNode("div",{class:v.value,innerHTML:l.titleContentHtml},null):a.createVNode("div",{class:"f-title"},[l.showIcon&&l.icon?a.createVNode("span",{class:b.value},[a.createVNode("i",{class:V.value},null)]):"",a.createVNode("h4",{class:"f-title-text"},[l.title]),l.subTitle?a.createVNode("h5",{class:"f-title-subtitle"},[l.subTitle]):""])}function U(){return l.contentHtml?a.createVNode("div",{class:w.value,innerHTML:l.contentHtml},null):null}function m(){return l.downContentHtml?a.createVNode("div",{class:H.value,innerHTML:l.downContentHtml},null):null}return()=>a.createVNode("div",{ref:t},[a.createVNode("nav",{class:"f-page-header-base"},[B(),U(),a.createVNode(P.FDesignerInnerItem,{class:y.value,modelValue:d.value,"onUpdate:modelValue":g=>d.value=g,canAdd:!1,childType:"response-toolbar-item",childLabel:"按钮",contentKey:"buttons",id:d.value.id,componentId:l.componentId,onSelectionChange:u},{default:()=>[a.createVNode(k,{id:d.value.id,customClass:"w-100",items:c.value,componentId:l.componentId,buttonSize:l.buttonSize},null)]})]),m()])}}),X={install(l){l.component(I.name,I)},register(l,e,t,n,i){l["page-header"]=I,e["page-header"]=A(i),n["page-header"]={eventHandlerResolver:j}},registerDesigner(l,e,t,n){l["page-header"]=W,e["page-header"]=O(n)}};p.FPageHeader=I,p.PageHeader=I,p.default=X,p.eventHandlerResolver=j,p.pageHeaderDesignerProps=T,p.pageHeaderProps=E,p.propsDesignResolver=L,p.propsDesignResolverGenerator=O,p.propsResolver=G,p.propsResolverGenerator=A,Object.defineProperties(p,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});