UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

2 lines (1 loc) 26.4 kB
(function(y,l){typeof exports=="object"&&typeof module<"u"?l(exports,require("vue"),require("../common/index.umd.js"),require("../dynamic-resolver/index.umd.js"),require("../designer-canvas/index.umd.js"),require("lodash-es")):typeof define=="function"&&define.amd?define(["exports","vue","../common/index.umd.js","../dynamic-resolver/index.umd.js","../designer-canvas/index.umd.js","lodash-es"],l):(y=typeof globalThis<"u"?globalThis:y||self,l(y.step={},y.Vue,y.common,y.dynamicResolver,y.designerCanvas,y.LodashES))})(this,function(y,l,T,U,k,q){"use strict";var Z=Object.defineProperty;var D=(y,l,T)=>l in y?Z(y,l,{enumerable:!0,configurable:!0,writable:!0,value:T}):y[l]=T;var E=(y,l,T)=>D(y,typeof l!="symbol"?l+"":l,T);const A=new Map([["appearance",U.resolveAppearance]]);function z(a,e){const{formSchemaUtils:s,designViewModelUtils:t}=e;function i(c,o){var d,u,h,b;return(u=(d=o==null?void 0:o.parentComponentInstance)==null?void 0:d.schema)==null||u.type,(b=(h=s.getFormSchema())==null?void 0:h.module)==null||b.templateId,c}function r(c){const o=a.getSchemaByType("component");return Object.assign(o,{id:`${c.componentId}-component`,contents:[],type:"step",appearance:{},steps:[],fill:!1,direction:"vertical",activeIndex:0}),o}function n(c){const o=r(c);return i(o,c)}return{createComponent:n}}function _(a,e,s,t){var r,n,c,o,d,u;const i=s.parentComponentInstance;if(i&&t){const h=Math.random().toString(36).slice(2,6),b={componentId:`step-${h}`,componentName:((r=s.bindingSourceContext)==null?void 0:r.entityTitle)||((c=(n=s.bindingSourceContext)==null?void 0:n.bindingEntity)==null?void 0:c.name)||`列表-${h}`,componentType:"step",parentContainerId:i.schema.id,parentComponentInstance:i,bindTo:((o=s.bindingSourceContext)==null?void 0:o.bindTo)||"",dataSource:(u=(d=s.bindingSourceContext)==null?void 0:d.bindingEntity)==null?void 0:u.label},{createComponent:M}=z(a,t);return M(b)}else return e}const L={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/step.schema.json",title:"step",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for step",type:"string"},type:{description:"The type string of step",type:"string",default:"step"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disable:{type:"string",default:!1},visible:{description:"",type:"boolean",default:!0},direction:{description:"排列方式",type:"enum",default:"horizontal"},steps:{description:"步骤条",type:"array"},activeIndex:{description:"当前索引",type:"number",default:0},clickable:{description:"是否允许点击",type:"boolean",default:!0},fill:{description:"是否填充",type:"boolean",default:!0},stepsMessage:{description:"步骤条",type:"array"},stepDataSourceType:{description:"数据源类型",type:"enum",default:"static"},beforeClickStep:{description:"步骤条点击前事件",type:"string"},stepTemplate:{description:"步骤条模板",type:"string"}},required:["id","type"]},F={direction:{type:String,default:"horizontal"},fill:{type:Boolean,default:!1},height:{type:Number,default:0},clickable:{type:Boolean,default:!0},steps:{type:Array,default:[{id:"1",title:"审批中(示例)",description:"正在审批"},{id:"2",title:"复核中(示例)",description:"等待复核"}]},activeIndex:{type:Number,default:0},visible:{type:Boolean,default:!0},beforeClickStep:{type:Object,default:()=>()=>!0},onClick:{type:Function,default:()=>{}},customClass:{type:String,default:""},stepTemplate:{type:Object}},j=U.createPropsResolver(F,L,A,_),P=l.defineComponent({name:"FStep",props:F,emits:["click"],setup(a,e){const s=l.ref(0),t=l.ref(a.activeIndex),i=l.computed(()=>({"f-progress-step-list":a.direction==="horizontal","f-progress-step-list-block":a.direction==="vertical","f-progress-step-horizontal-fill":a.direction==="horizontal"&&a.fill,"f-progress-step-vertical-fill":a.direction==="vertical"&&a.fill})),r=l.computed(()=>({overflow:"auto"}));function n(m,p){const v={step:!0,active:p===t.value,clickable:!m.disabled,current:p===t.value};return p<t.value&&(v.finish=!0),v}function c(m,p){const v={steps:a.steps,step:m,index:p,activeIndex:t.value,direction:a.direction};Promise.resolve().then(()=>a.beforeClickStep?a.beforeClickStep(v):!0).then(C=>{if(C&&!m.disabled){const N={step:m,stepIndex:p};t.value=p,e.emit("click",N)}})}function o(m,p){const v={"f-progressstep-row":!0,"step-active":p===t.value,"step-current":p===t.value};return p<t.value&&(v["step-finish"]=!0),v}function d(m,p){return{"step-icon":!0,"step-success":p,"f-icon":p,"f-icon-check":p}}function u(m,p){const v=[];return p>=t.value||p===s.value?v.push(l.createVNode("span",{class:"step-icon"},[p+1])):v.push(l.createVNode("span",{class:d(m,!0)},null)),v}function h(m,p){return{"step-name":!0,"step-name-success":p<t.value}}function b(m,p){return l.createVNode("div",{class:"f-progress-step-title"},[l.createVNode("p",{class:h(m,p)},[m.title])])}function M(m,p){return{"f-progress-step-line":!0,"f-progress-step-line-success":p===t.value}}function x(m,p){return p!==a.steps.length-1}const w=l.computed(()=>({triangle:!0}));function S(){return a.steps.map((m,p)=>l.createVNode("li",{class:n(m,p),onClick:v=>c(m,p)},[a.stepTemplate?a.stepTemplate({step:m,index:p,length:a.steps.length,activeIndex:t.value,direction:a.direction}):e.slots.stepTemplate?e.slots.stepTemplate({step:m,index:p,length:a.steps.length,activeIndex:t.value,direction:a.direction}):l.createVNode("div",{class:o(m,p)},[l.createVNode("div",{class:"f-progress-step-content"},[u(m,p),b(m,p)]),x(m,p)&&l.createVNode("div",{class:M(m,p)},[l.createVNode("span",{class:w.value},null)])])]))}l.watch(()=>a.activeIndex,m=>{a.activeIndex>-1&&a.activeIndex<=a.steps.length&&(t.value=m)});const I=l.computed(()=>{const m={"f-progress-step":!0};return T.getCustomClass(m,a.customClass)});return()=>l.createVNode("div",{class:I.value},[l.createVNode("ul",{class:i.value,style:r.value},[S()])])}}),O={"tab-page":{type:"tab-page"},section:{type:"section"},"list-view":{name:"列表"}};function G(a){const{formSchemaUtils:e,formStateMachineUtils:s}=a;function t(o,d=""){return{path:d+o.code,field:o.id,fullPath:o.code}}function i(o,d=""){const u=e.getViewModelById(o);return u?u.states.map(h=>t(h,d)):[]}function r(o){const d=e.getRootViewModelId(),u=i(o);if(o===d)return u;const h=i(d,"root-component.");return[...u,...h]}function n(o){return o.binding&&o.binding.path||o.id||""}function c(){return s&&s.getRenderStates()||[]}return{getVariables:r,getControlName:n,getStateMachines:c}}class Y{constructor(e){E(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'"}]);E(this,"expressionNames",{compute:"计算表达式",dependency:"依赖表达式",validate:"验证表达式",dataPicking:"帮助前表达式",visible:"可见表达式",readonly:"只读表达式",required:"必填表达式"});E(this,"getExpressionConverter",(e,s)=>({convertFrom:(t,i,r,n)=>{const c=r.getExpressionRuleValue(e,s||i);return c&&c.value||""},convertTo:(t,i,r,n,c)=>{var o;if(i==="dataPicking"&&(r!=null&&r.target)){const d=`${r.target}_dataPicking`;((o=r.rules)==null?void 0:o.some(h=>h.id===d&&h.value))?t.dictPickingExpressionId=d:delete t.dictPickingExpressionId}n.updateExpression(r)}}));this.formSchemaService=e}getExpressionRule(e,s){const t=this.getExpressionData();if(!t)return"";const i=t.find(n=>n.target===e);if(!i)return"";const r=i.rules.find(n=>n.type===s);return r||""}getContextFormVariables(){const{module:e}=this.formSchemaService.getFormSchema();if(!e.viewmodels||e.viewmodels.length===0)return[];const s=this.formSchemaService.getRootViewModelId(),t=this.formSchemaService.getViewModelById(s);if(!t||!t.states||t.states.length===0)return[];const i=[];return t.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,s,t="label"){return{id:e.id,name:e.name,bindingPath:e[t],parents:s,type:"field"}}buildEntityFieldsTreeData(e=null,s){const t=[];return e==null||e.forEach(i=>{var c;const r=this.createTreeNode(i,s);let n=[];(c=i.type)!=null&&c.fields&&(n=this.buildEntityFieldsTreeData(i.type.fields,[...s,i.label])),t.push({data:r,children:n,expanded:!0})}),t}buildChildEntityTreeData(e=null,s){const t=[];return e==null||e.forEach(i=>{var o,d;const r=this.createTreeNode(i,s);r.type="entity";const n=this.buildEntityFieldsTreeData((o=i.type)==null?void 0:o.fields,[...s,i.label]),c=this.buildChildEntityTreeData((d=i.type)==null?void 0:d.entities,[...s,i.label]);c!=null&&c.length&&(n==null||n.push(...c)),t.push({data:r,children:n||[],expanded:!0})}),t}getEntitiesTreeData(){const e=this.formSchemaService.getSchemaEntities();if(!(e!=null&&e.length))return[];const s=e[0];if(!(s!=null&&s.type))return[];const t=this.buildEntityFieldsTreeData(s.type.fields,[s.code]),i=this.buildChildEntityTreeData(s.type.entities,[s.code]);return i!=null&&i.length&&(t==null||t.push(...i)),{entityCode:s.code,fields:[{data:this.createTreeNode(s,[],"code"),children:t||[]}]}}getEntitiesAndVariables(){return{entities:this.getEntitiesTreeData(),variables:{session:{name:"系统变量",items:this.sessionVariables,visible:!1},forms:{name:"表单变量",items:this.getContextFormVariables(),visible:!0}}}}onBeforeOpenExpression(e,s,t){const i=t==="Field"?e.binding.field:e.id,r=this.getExpressionRule(i,s),n=this.getEntitiesAndVariables(),c={message:["validate","required","dataPicking"].includes(s)&&r?r.message:"",...n};return r.messageType!=null&&(c.messageType=r.messageType),c}buildRule(e,s,t,i){const{expression:r,message:n,messageType:c}=s,o={id:`${e}_${t}`,type:t,value:r};return(t==="validate"||t==="dataPicking"||t==="required")&&(o.message=n),t==="dataPicking"&&(o.messageType=c),t==="validate"&&i&&(o.elementId=i),o}getExpressionData(){const{expressions:e}=this.formSchemaService.getFormSchema().module;return e||[]}updateExpression(e,s,t,i){const r=s==="Field"?e.binding.field:e.id,n=this.buildRule(r,t,i,e.type==="form-group"?e.id:"");let o=this.getExpressionData().find(u=>u.targetType===s&&u.target===r);const d=u=>u.value.trim()==="";if(o){const u=o.rules.find(h=>h.id===n.id);if(u)d(n)?o.rules=o.rules.filter(h=>h.id!==n.id):(Object.assign(u,n),i==="validate"&&e.type==="form-group"&&(u.elementId=e.id));else{if(d(n))return null;o.rules=o.rules||[],o.rules.push(n)}}else{if(d(n))return null;o={target:`${r}`,rules:[n],targetType:s}}return o}getExpressionEditorOptions(e,s,t,i){return t.reduce((r,n)=>{var o,d;const c=s==="Field"?(o=e==null?void 0:e.binding)==null?void 0:o.field:e.id;return r[n]={hide:s==="Field"?!!((d=e==null?void 0:e.binding)!=null&&d.field):!1,description:"",title:this.expressionNames[n],type:"string",$converter:this.getExpressionConverter(c),refreshPanelAfterChanged:!0,editor:{type:"expression-editor",singleExpand:!1,dialogTitle:`${this.expressionNames[n]}编辑器`,showMessage:n==="validate"||n==="dataPicking"||n==="required",showMessageType:n==="dataPicking",beforeOpen:()=>this.onBeforeOpenExpression(e,n,s),onSubmitModal:u=>{const h=this.updateExpression(e,s,u,n);if(i){const b=this.buildRule(c,u,n);i(b)}return h}}},r},{})}getExpressionInfo(e,s,t){const i=s==="Field"?e.binding.field:e.id,r=this.getExpressionRule(i,t),n={value:r&&r.value,targetId:i,targetType:s,expressionType:t};return r&&r.message&&(n.message=r.message),n}getExpressionConfig(e,s,t=["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,s,t,i)}}}getExpressionOptions(e,s,t){const i=this.getExpressionInfo(e,s,t);return{dialogTitle:`${this.expressionNames[t]||"表达式"}编辑器`,singleExpand:!1,showMessage:t==="required",beforeOpen:()=>this.onBeforeOpenExpression(e,t,s),expressionInfo:i}}}class J{constructor(e,s){E(this,"componentId");E(this,"viewModelId");E(this,"eventsEditorUtils");E(this,"formSchemaUtils");E(this,"formMetadataConverter");E(this,"designViewModelUtils");E(this,"designViewModelField");E(this,"controlCreatorUtils");E(this,"designerHostService");E(this,"designerContext");E(this,"modalService",null);E(this,"formRule",null);E(this,"schemaService",null);E(this,"metadataService",null);E(this,"propertyConfig",{type:"object",categories:{}});E(this,"expressionProperty");var t;this.componentId=e,this.designerHostService=s,this.eventsEditorUtils=s.eventsEditorUtils,this.formSchemaUtils=s.formSchemaUtils,this.formMetadataConverter=s.formMetadataConverter,this.viewModelId=((t=this.formSchemaUtils)==null?void 0:t.getViewModelIdByComponentId(e))||"",this.designViewModelUtils=s.designViewModelUtils,this.controlCreatorUtils=s.controlCreatorUtils,this.metadataService=s.metadataService,this.schemaService=s.schemaService,this.designerContext=s.designerContext,this.modalService=s.modalService,this.expressionProperty=new Y(this.formSchemaUtils)}inResponsiveForm(){var e;return!!((e=this.designerContext)!=null&&e.responsiveForm)}getFormDesignerInstance(){var e,s;return(s=(e=this.designerContext)==null?void 0:e.instances)==null?void 0:s.formDesigner.value}getTableInfo(){var e;return(e=this.schemaService)==null?void 0:e.getTableInfoByViewModelId(this.viewModelId)}setDesignViewModelField(e){var t;const s=e.binding&&e.binding.type==="Form"&&e.binding.field;if(s){if(!this.designViewModelField){const i=this.designViewModelUtils.getDgViewModel(this.viewModelId);this.designViewModelField=i.fields.find(r=>r.id===s)}e.updateOn=(t=this.designViewModelField)==null?void 0:t.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:k.DgControl[e.type]&&k.DgControl[e.type].name}]}}}}}getAppearanceConfig(e=null,s={},t){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 n in s)r[n]=Object.assign(r[n]||{},s[n]);return{...i,properties:{...r},setPropertyRelates(n,c){if(n){switch(n&&n.propertyID){case"class":case"style":{k.canvasChanged.value++;break}}t&&t(n,e,c)}}}}getPropertyEditorParams(e,s=[],t="visible",i={},r={},n=""){const{getVariables:c,getControlName:o,getStateMachines:d}=G(this.designerHostService),u=this.getRealTargetType(e),h=s&&s.length>0?s:["Const","Variable","StateMachine","Expression"],b={type:"property-editor",propertyTypes:h};return h.map(M=>{switch(M){case"Const":Object.assign(b,{constType:"enum",constEnums:[{id:!0,name:"是"},{id:!1,name:"否"}]},i);break;case"Expression":b.expressionConfig=this.getExpressionOptions(e,u,n||t);break;case"StateMachine":b.stateMachines=d();break;case"Variable":Object.assign(b,{controlName:o(e),newVariablePrefix:"is",newVariableType:"Boolean",variables:c(this.viewModelId),parentComponentId:this.componentId==="root-component"?"":"root-component",onBeforeOpenVariables:x=>{x.value=c(this.viewModelId)}},r),this.designerContext.designerMode==="PC_RTC"&&(b.newVariablePrefix="ext_"+b.newVariablePrefix);break}}),b}getVisibleProperty(e,s=""){var r;let t=["Const","Variable","StateMachine","Expression"];return s==="gridFieldEditor"?t=["Const","Expression"]:s==="form-group"&&!((r=e.binding)!=null&&r.field)?t=["Const","Variable","StateMachine","Custom"]:s==="dataGrid"||s==="treeGrid"||s==="wizard"?t=["Const","Variable","Expression"]:(e.type.indexOf("toolbar-item")>-1||s==="form-group")&&(t=["Const","Variable","StateMachine","Custom","Expression"]),{visible:{title:"是否可见",type:"boolean",description:"运行时组件是否可见",editor:this.getPropertyEditorParams(e,t,"visible")}}}getBehaviorConfig(e,s="",t={},i){const r={title:"行为",description:""},n=this.getVisibleProperty(e,s);for(const o in t)n[o]=Object.assign(n[o]||{},t[o]);const c=this;return{...r,properties:{...n},setPropertyRelates(o,d){if(o){switch(o.propertyID){case"disabled":case"readonly":case"visible":c.afterMutilEditorChanged(e,o);break}i&&i(o,d)}}}}afterMutilEditorChanged(e,s){this.addNewVariableToViewModel(s,this.viewModelId),this.updateExpressionValue(s,e),this.clearExpression(s,e)}updateElementByParentContainer(e,s){const t=s&&s.parent&&s.parent.schema;if(!t)return;const i=t.contents.findIndex(n=>n.id===e),r=q.cloneDeep(t.contents[i]);t.contents.splice(i,1),t.contents.splice(i,0,r),k.refreshCanvas()}addNewVariableToViewModel(e,s){const t=e.propertyValue;if(!(t&&typeof t=="object")||!(t.type==="Variable"&&t.isNewVariable))return;const n={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(n.code)||this.formSchemaUtils.getViewModelById("root-viewmodel").states.push(n)}getExpressions(){let e=[];return this.formRule?(this.formRule.expressions=this.formRule.expressions||[],e=this.formRule.expressions||[]):e=this.formSchemaUtils.getExpressions(),e}updateExpressionValue(e,s){const t=e.propertyValue;if(!((t&&t.type)==="Expression"&&t.expressionInfo))return;const{expressionId:n,expressionInfo:c}=t,{targetId:o,targetType:d,expressionType:u,value:h,message:b}=c,M=this.getExpressions();let x=M.find(S=>S.target===o);x||(x={target:o,rules:[],targetType:d},M.push(x));const w=x.rules.find(S=>S.type===u);if(w)w.id=n,w.value=h,w.message=b,(u==="minDate"||u==="maxDate"||u==="defaultTime")&&(w.elementId=s.id);else{const S={id:n,type:u,value:h,message:b,elementId:s.id};x.rules.push(S)}delete t.expressionInfo}clearExpression(e,s){const t=e.propertyValue;if(t&&t.type==="Expression")return;const r=e.propertyID,n=this.getExpressions(),c=s.binding?s.binding.field:s.id,o=n.find(d=>d.target===c);!o||!o.rules||(o.rules=o.rules.filter(d=>d.type!==r))}getExpressionOptions(e,s,t){return this.expressionProperty.getExpressionOptions(e,s,t)}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 s={};return s[this.viewModelId]={type:"events-editor",editor:{initialData:e,viewSourceHandle:t=>{var i;((i=t.controller)==null?void 0:i.label.indexOf(this.formSchemaUtils.getModule().code))>-1&&this.eventsEditorUtils.jumpToMethod(t)}}},s}}class K extends J{constructor(e,s){super(e,s)}getPropertyConfig(e){const s=this;this.getBasicPropConfig(e),this.getAppearanceProperties(e);const t=this.getPropertyEditorParams(e,["Variable"]);return this.propertyConfig.categories.behavior=this.getBehaviorConfig(e,"step",{activeIndex:{title:"当前步骤变量",type:"array",description:"当前步骤变量",editor:t},stepTemplate:{description:"步骤条模板",title:"步骤条模板",type:"string",editor:{type:"code-editor",language:"html"}},stepDataSourceType:{title:"数据源类型",type:"enum",description:"数据源类型",editor:{data:[{id:"static",name:"静态"},{id:"dynamic",name:"动态"}]},refreshPanelAfterChanged:!0},steps:{title:"步骤条",type:"array",description:"步骤条信息",visible:!e.stepDataSourceType||e.stepDataSourceType==="static",editor:{columns:[{field:"id",title:"值",dataType:"string"},{field:"title",title:"名称",dataType:"string"}],type:"item-collection-editor",valueField:"id",nameField:"title",requiredFields:["id","title"],uniqueFields:["id","title"]},refreshPanelAfterChanged:!0},stepsMessage:{title:"数据源",type:"array",description:"数据源",visible:e.stepDataSourceType==="dynamic",editor:t}},(i,r)=>{switch(i.propertyValue,i.propertyID){case"stepsMessage":case"activeIndex":{s.afterMutilEditorChanged(e,i);break}}}),this.getEventPropConfig(e),this.propertyConfig}getBasicPropConfig(e){const s=super.getBasicPropConfig(e);this.propertyConfig.categories.basic={description:"Basic Information",title:"基本信息",properties:{...s.properties}}}assembleSchemaEntityToTree(e,s,t,i="",r=[]){const n=i?`${i}/${e.label}`:"/";return r.push({id:e.id,name:e.name,label:e.label,layer:s,parent:t&&t.id,bindTo:n.replace("//","/")}),e.type.entities&&e.type.entities.length&&e.type.entities.map(c=>this.assembleSchemaEntityToTree(c,s+1,e,n,r)),r}getAppearanceProperties(e){this.propertyConfig.categories.appearance={title:"外观",properties:{class:{title:"class样式",type:"string",description:"组件的class样式"},fill:{title:"是否填充",type:"boolean",description:"是否填充"},direction:{title:"排列方式",type:"enum",description:"排列方式",editor:{data:[{id:"vertical",name:"垂直"},{id:"horizontal",name:"水平"}]}}}}}getEventPropConfig(e){var n;const s=[{label:"onClick",name:"点击事件"},{label:"beforeClickStep",name:"步骤点击前事件"}];(n=e.pagination)==null||n.enable;const t=this,i=t.eventsEditorUtils.formProperties(e,t.viewModelId,s),r=t.createBaseEventProperty(i);this.propertyConfig.categories.eventsEditor={title:"事件",hideTitle:!0,properties:r,refreshPanelAfterChanged:!0,tabId:T.EVENT_PROPERTY_TAB_IDS,tabName:"交互",setPropertyRelates(c,o){const d=c.propertyValue;delete e[t.viewModelId],d&&(d.setPropertyRelates=this.setPropertyRelates,t.eventsEditorUtils.saveRelatedParameters(e,t.viewModelId,d.events,d))}}}}function Q(a,e){const s=a.schema;function t(){return""}function i(u){return!1}function r(){return!0}function n(){return!0}function c(){return!0}function o(u){return new K(u,e).getPropertyConfig(s)}function d(){var u,h,b,M;if(a&&e){const x=(u=a==null?void 0:a.componentInstance)==null?void 0:u.value.belongedComponentId;let w="",S="";const{formSchemaUtils:I}=e;if(x){const p=I.getRootViewModelId(),v=I.getComponentByViewModelId(p),C=I.selectNode(v,N=>N.contents&&N.contents.find(f=>f.component===x));(C==null?void 0:C.type)===((h=O["tab-page"])==null?void 0:h.type)&&((b=C==null?void 0:C.contents)!=null&&b.length)&&(w=C.title||""),(C==null?void 0:C.type)===((M=O.section)==null?void 0:M.type)&&(C==null?void 0:C.showHeader)!==!1&&(w=C.mainTitle||""),w=w?`${w} > `:"",S=w?C.id:""}const m=O["list-view"].name;e==null||e.formSchemaUtils.getControlBasicInfoMap().set(a.schema.id,{componentTitle:m,parentPathName:`${w}${m}`,reliedComponentId:S})}}return{canAccepts:i,checkCanDeleteComponent:r,checkCanMoveComponent:n,hideNestedPaddingInDesginerView:c,getPropsConfig:o,setComponentBasicInfoMap:d,getDesignerClass:t}}const W=l.defineComponent({name:"FStepDesign",props:F,emits:[],setup(a,e){const s=l.ref(0),t=l.ref(0),i=l.ref(),r=l.inject("designer-host-service"),n=l.inject("design-item-context"),c=Q(n,r),o=k.useDesignerComponent(i,n,c),d=[{id:"firstStep",title:"步骤一",description:"步骤一"},{id:"secondStep",title:"步骤二",description:"步骤二"}];l.onMounted(()=>{i.value.componentInstance=o}),e.expose(o.value);const u=l.computed(()=>({"f-progress-step-list":a.direction==="horizontal","f-progress-step-list-block":a.direction==="vertical","f-progress-step-horizontal-fill":a.direction==="horizontal"&&a.fill,"f-progress-step-vertical-fill":a.direction==="vertical"&&a.fill})),h=l.computed(()=>({overflow:"auto"}));function b(f,g){const V={step:!0,active:g===s.value,clickable:a.clickable,"click-disable":f.disabled,current:g===s.value};return g<s.value&&(V.finish=!0),f.status&&(V[f.status]=!0),f.hasOwnProperty("class")&&f.class.split(" ").reduce((R,B)=>(R[B]=!0,R),V),V}function M(f,g){}function x(f,g){const V={"f-progressstep-row":!0,"step-active":g===s.value,"step-current":g===s.value};return g<s.value&&(V["step-finish"]=!0),f.status&&(V["step-"+f.status]=!0),V}function w(f,g){const V={"step-icon":!0,"step-success":g,"k-icon":g,"k-i-check":g};return f.hasOwnProperty("icon")&&f.class.split(" ").reduce((R,B)=>(R[B]=!0,R),V),V}function S(f,g){const V=[];return f.icon?V.push(l.createVNode("span",{class:w(f,!1)},null)):g>=s.value||g===t.value?V.push(l.createVNode("span",{class:"step-icon"},[g+1])):V.push(l.createVNode("span",{class:w(f,!0)},null)),V}function I(f,g){return{"step-name":!0,"step-name-success":g<s.value}}function m(f,g){return l.createVNode("div",{class:"f-progress-step-title"},[l.createVNode("p",{class:I(f,g)},[f.title])])}function p(f,g){return{"f-progress-step-line":!0,"f-progress-step-line-success":g===s.value}}function v(f,g){return g!==a.steps.length-1}const C=l.computed(()=>({triangle:!0}));function N(){return a.steps&&a.steps.length>0?a.steps.map((f,g)=>l.createVNode("li",{class:b(f,g),onClick:V=>void 0},[l.createVNode("div",{class:x(f,g)},[l.createVNode("div",{class:"f-progress-step-content"},[S(f,g),m(f,g)]),v(f,g)&&l.createVNode("div",{class:p(f,g)},[l.createVNode("span",{class:C.value},null)])])])):d.map((f,g)=>l.createVNode("li",{class:b(f,g),onClick:V=>void 0},[l.createVNode("div",{class:x(f,g)},[l.createVNode("div",{class:"f-progress-step-content"},[S(f,g),m(f,g)]),v(f,g)&&g!==d.length-1&&l.createVNode("div",{class:p(f,g)},[l.createVNode("span",{class:C.value},null)])])]))}return()=>l.createVNode("div",{ref:i,class:"f-progress-step"},[l.createVNode("ul",{class:u.value,style:h.value},[N()])])}});function X(){function a(e,s){const t={};return t.beforeClickStep=i=>s.call("beforeClickStep",e,[i,e]),t}return{resolve:a}}const $=X();P.install=a=>{a.component(P.name,P)},P.register=(a,e,s,t)=>{a.step=P,e.step=j,t.step={callbackResolver:$}},P.registerDesigner=(a,e,s)=>{a.step=W,e.step=j},y.FStep=P,y.callbackResolver=$,y.default=P,y.propsResolver=j,y.stepProps=F,Object.defineProperties(y,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});