@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
2 lines (1 loc) • 27.1 kB
JavaScript
(function(S,c){typeof exports=="object"&&typeof module<"u"?c(exports,require("vue"),require("lodash-es"),require("../combo-list/index.umd.js"),require("../number-spinner/index.umd.js"),require("../common/index.umd.js"),require("../expression-editor/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es","../combo-list/index.umd.js","../number-spinner/index.umd.js","../common/index.umd.js","../expression-editor/index.umd.js"],c):(S=typeof globalThis<"u"?globalThis:S||self,c(S["property-editor"]={},S.Vue,S.LodashES,S.comboList,S.numberSpinner,S.common,S.expressionEditor))})(this,function(S,c,j,k,te,I,re){"use strict";function U(e,t){let n;function s(a){const{properties:u,title:m,ignore:o}=a,r=o&&Array.isArray(o),l=Object.keys(u).reduce((y,C)=>((!r||!o.find(P=>P===C))&&(y[C]=u[C].type==="object"&&u[C].properties?s(u[C]):j.cloneDeep(u[C].default)),y),{});if(m&&(!r||!o.find(y=>y==="id"))){const y=m.toLowerCase().replace(/-/g,"_");l.id=`${y}_${Math.random().toString().slice(2,6)}`}return l}function v(a){const{properties:u,title:m,required:o}=a;if(o&&Array.isArray(o)){const r=o.reduce((l,y)=>(l[y]=u[y].type==="object"&&u[y].properties?s(u[y]):j.cloneDeep(u[y].default),l),{});if(m&&o.find(l=>l==="id")){const l=m.toLowerCase().replace(/-/g,"_");r.id=`${l}_${Math.random().toString().slice(2,6)}`}return r}return{type:m}}function h(a,u={},m){const o=e[a];if(o){let r=v(o);const l=t[a];return r=l?l({getSchemaByType:h},r,u,m):r,n!=null&&n.appendIdentifyForNewControl&&n.appendIdentifyForNewControl(r),r}return null}function d(a,u){const m=s(u);return Object.keys(m).reduce((o,r)=>(Object.prototype.hasOwnProperty.call(a,r)&&(o[r]&&j.isPlainObject(o[r])&&j.isPlainObject(a[r]||!a[r])?Object.assign(o[r],a[r]||{}):o[r]=a[r]),o),m),m}function f(a,u){return Object.keys(a).filter(o=>a[o]!=null).reduce((o,r)=>{if(u.has(r)){const l=u.get(r);if(typeof l=="string")o[l]=a[r];else{const y=l(r,a[r],a);Object.assign(o,y)}}else o[r]=a[r];return o},{})}function p(a,u,m=new Map){const o=d(a,u);return f(o,m)}function i(a){var m;const u=a.type;if(u){const o=e[u];if(!o)return a;const r=d(a,o),l=((m=a.editor)==null?void 0:m.type)||"";if(l){const y=e[l],C=d(a.editor,y);r.editor=C}return r}return a}function g(a){n=a}return{getSchemaByType:h,resolveSchemaWithDefaultValue:i,resolveSchemaToProps:p,mappingSchemaToProps:f,setDesignerContext:g}}const _={},z={},{getSchemaByType:tt,resolveSchemaWithDefaultValue:ne,resolveSchemaToProps:oe,mappingSchemaToProps:ie,setDesignerContext:rt}=U(_,z);function ae(e={}){function t(i,g,a,u){if(typeof a=="number")return u[i].length===a;if(typeof a=="object"){const m=Object.keys(a)[0],o=a[m];if(m==="not")return Number(u[i].length)!==Number(o);if(m==="moreThan")return Number(u[i].length)>=Number(o);if(m==="lessThan")return Number(u[i].length)<=Number(o)}return!1}function n(i,g,a,u){return u[i]&&u[i].propertyValue&&String(u[i].propertyValue.value)===String(a)}const s=new Map([["length",t],["getProperty",n]]);Object.keys(e).reduce((i,g)=>(i.set(g,e[g]),i),s);function v(i,g){const a=i;return typeof g=="number"?[{target:a,operator:"length",param:null,value:Number(g)}]:typeof g=="boolean"?[{target:a,operator:"getProperty",param:i,value:!!g}]:typeof g=="object"?Object.keys(g).map(u=>{if(u==="length")return{target:a,operator:"length",param:null,value:g[u]};const m=u,o=g[u];return{target:a,operator:"getProperty",param:m,value:o}}):[]}function h(i){return Object.keys(i).reduce((a,u)=>{const m=v(u,i[u]);return a.push(...m),a},[])}function d(i,g){if(s.has(i.operator)){const a=s.get(i.operator);return a&&a(i.target,i.param,i.value,g)||!1}return!1}function f(i,g){return h(i).reduce((m,o)=>m&&d(o,g),!0)}function p(i,g){const a=Object.keys(i),u=a.includes("allOf"),m=a.includes("anyOf"),o=u||m,y=(o?i[o?u?"allOf":"anyOf":"allOf"]:[i]).map(P=>f(P,g));return u?!y.includes(!1):y.includes(!0)}return{parseValueSchema:p}}const se={convertTo:(e,t,n,s)=>{e.appearance||(e.appearance={}),e.appearance[t]=n},convertFrom:(e,t,n)=>e.appearance?e.appearance[t]:e[t]},le={convertFrom:(e,t,n)=>e.buttons&&e.buttons.length?`共 ${e.buttons.length} 项`:"无"},ce={convertTo:(e,t,n,s)=>{e.editor&&(e.editor[t]=n)},convertFrom:(e,t,n)=>e.editor&&Object.prototype.hasOwnProperty.call(e.editor,t)?e.editor[t]:e[t]},ue={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:"列表导航"},"list-view":{type:"list-view",name:"列表"},"filter-bar":{type:"filter-bar",name:"筛选条"},"language-textbox":{type:"language-textbox",name:"多语输入框"}},de={convertFrom:(e,t,n)=>{var v;const s=e.editor&&e.editor[t]?e.editor[t]:e[t];return((v=ue[s])==null?void 0:v.name)||s}},pe={convertTo:(e,t,n,s)=>{e[t]=e[t]},convertFrom:(e,t,n)=>e.editor?n.getRealEditorType(e.editor.type):""},fe={convertTo:(e,t,n,s)=>{(e.type==="data-grid-column"||e.type==="tree-grid-column")&&(e.formatter?e.formatter[t]=n:e.formatter={[t]:n})},convertFrom:(e,t,n)=>{if(e.formatter){if(t==="trueText")return e.formatter.trueText;if(t==="falseText")return e.formatter.falseText;if(t==="prefix")return e.formatter.prefix;if(t==="suffix")return e.formatter.suffix;if(t==="precision")return e.formatter.precision;if(t==="decimal")return e.formatter.decimal;if(t==="thousand")return e.formatter.thousand;if(t==="tempDateFormat")return e.formatter.dateFormat==="yyyy年MM月dd日"?"yearMonthDay":e.formatter.dateFormat==="yyyy-MM-dd HH:mm:ss"?"yyyy-MM-ddTHH:mm:ss":e.formatter.dateFormat==="yyyy/MM/dd HH:mm:ss"?"yyyy/MM/ddTHH:mm:ss":e.formatter.dateFormat==="yyyy年MM月dd日 HH时mm分ss秒"?"yearMonthDayHourMinuteSecond":e.formatter.tempDateFormat||e.formatter.dateFormat||"yyyy-MM-dd";if(t==="customFormat")return e.formatter.customFormat;if(t==="type")return e.formatter.type||"none"}return"none"}},me={convertTo:(e,t,n,s)=>{e.command?e.command[t]=n:e.command={[t]:n},t==="enable"&&n&&(e.command.commands||(e.command.commands=[{text:"编辑",type:"primary",command:"edit"},{text:"删除",type:"danger",command:"remove"}]))},convertFrom:(e,t,n)=>e.command&&t==="enable"?e.command.enable:""},ye={convertTo:(e,t,n,s)=>{e.column?e.column[t]=n:e.column={[t]:n},t==="fitColumns"&&n&&(e.column.fitMode||(e.column.fitMode="average"))},convertFrom:(e,t,n)=>{if(e.column){if(t==="fitColumns")return e.column.fitColumns;if(t==="fitMode")return e.column.fitMode}return""}},ge={convertTo:(e,t,n,s)=>{e.summary?e.summary[t]=n:e.summary={[t]:n},t==="enable"&&n&&(e.summary?e.summary.groupFields||(e.summary.groupFields=[]):e.summary={enable:n,groupFields:[]})},convertFrom:(e,t,n)=>e.summary&&t==="enable"?e.summary.enable:e.type==="data-grid-column"?e.enableSummary===void 0?!1:e.enableSummary:""},ve={convertTo:(e,t,n,s)=>{e.group?e.group[t]=n:e.group={[t]:n},t==="enable"&&n&&(e.group?e.group.groupFields||(e.group.groupFields=[]):e.group={enable:n,groupFields:[],showSummary:!1})},convertFrom:(e,t,n)=>{if(e.group){if(t==="enable")return e.group.enable;if(t==="showSummary")return e.group.showSummary}}},be={convertFrom:(e,t)=>e.binding?e.binding.path:"",convertTo:(e,t,n)=>{if(n&&n.length>0){const s=n[0];e.binding||(e.binding={}),e.binding.type="Form",e.binding.path=s.bindingField,e.binding.field=s.id,e.binding.fullPath=s.path,e.path=s.bindingPath}}},Ce={convertTo:(e,t,n,s)=>{e.pagination||(e.pagination={}),e.pagination[t]=n},convertFrom:(e,t,n)=>e.pagination?e.pagination[t]:e[t]},he={convertTo:(e,t,n,s)=>{e.rowNumber||(e.rowNumber={}),e.rowNumber[t]=n},convertFrom:(e,t,n)=>e.rowNumber?e.rowNumber[t]:e[t]},Ve={convertTo:(e,t,n,s)=>{e.selection||(e.selection={}),e.selection[t]=n},convertFrom:(e,t,n)=>e.selection?e.selection[t]:e[t]},Te={convertFrom:(e,t,n)=>e[t]&&e[t].length?`共 ${e[t].length} 项`:""},Pe={convertFrom:(e,t)=>e[t]||"",convertTo:(e,t,n)=>{e[t]=n}},xe={convertTo:(e,t,n,s)=>{e.size||(e.size={}),e.size[t]=n},convertFrom:(e,t,n)=>e.size?e.size[t]:e[t]},Se={convertFrom:(e,t,n)=>{var s,v;return(s=e.formatter)!=null&&s.data&&t==="formatterEnumData"&&!e.formatterEnumData?(v=e.formatter)==null?void 0:v.data:e.formatterEnumData}},we={convertTo:(e,t,n,s)=>{e.sort||(e.sort={}),e.sort[t]=n},convertFrom:(e,t,n)=>{var s,v;if(t==="mode")return((s=e.sort)==null?void 0:s.mode)||"client";if(t==="multiSort")return!!((v=e.sort)!=null&&v.multiSort)}},Me={convertTo:(e,t,n,s)=>{e.filter||(e.filter={}),e.filter[t]=n},convertFrom:(e,t,n)=>{var s;if(t==="mode")return((s=e.filter)==null?void 0:s.mode)||"client"}},Fe={convertTo:(e,t,n,s)=>{e.rowOption?e.rowOption[t]=n:e.rowOption={[t]:n}},convertFrom:(e,t,n)=>{if(e.rowOption){if(t==="customRowStyle")return e.rowOption.customRowStyle;if(t==="customCellStyle")return e.rowOption.customCellStyle}return""}};function G(e,t,n){const s=new Map([["/converter/appearance.converter",se],["/converter/buttons.converter",le],["/converter/property-editor.converter",ce],["/converter/items-count.converter",Te],["/converter/type.converter",de],["/converter/change-editor.converter",pe],["/converter/change-formatter.converter",fe],["/converter/column-command.converter",me],["/converter/column-option.converter",ye],["/converter/summary.converter",ge],["/converter/group.converter",ve],["/converter/form-group-label.converter",Pe],["/converter/field-selector.converter",be],["/converter/pagination.converter",Ce],["/converter/row-number.converter",he],["/converter/grid-selection.converter",Ve],["/converter/size.converter",xe],["/converter/change-formatter-enum.converter",Se],["/converter/grid-sort.converter",we],["/converter/grid-filter.converter",Me],["/converter/row-option.converter",Fe]]),v=new Map([["string",{type:"input-group",enableClear:!1}],["boolean",{type:"combo-list",textField:"name",valueField:"value",idField:"value",enableClear:!1,editable:!1,data:[{value:!0,name:"是"},{value:!1,name:"否"}]}],["enum",{type:"combo-list",maxHeight:128,enableClear:!1,editable:!1}],["array",{type:"button-edit"}],["number",{type:"number-spinner",placeholder:""}],["events-editor",{type:"events-editor",hide:!0}]]),h=ae();function d(o,r){return()=>h.parseValueSchema(o,r)}function f(o,r,l){return o.includes("visible")&&r.visible!==void 0?typeof r.visible=="boolean"?()=>!!r.visible:r.visible===void 0?!0:d(r.visible,l):()=>!0}function p(o,r,l){return o.includes("readonly")&&r.readonly!==void 0?typeof r.readonly=="boolean"?()=>!!r.readonly:d(r.readonly,l):()=>!1}function i(o,r){const l=o.$converter||r;return typeof l=="string"&&l&&s.has(l)?s.get(l)||null:l||null}function g(o,r,l,y,C,P="",V=""){return Object.keys(o).map(T=>{const M=c.ref(1),F=T,b=o[T],w=Object.keys(b),D=b.title,$=b.type,R=v.get($)||{type:"input-group",enableClear:!1},E=b.editor?Object.assign({},R,b.editor):Object.assign({},R),q=f(w,b,r),A=p(w,b,r);E.readonly=E.readonly===void 0?A():E.readonly;const H=b.type==="cascade"?g(b.properties,r,l,y,C,P,V):[],Ye=!0;let N=i(b,V);const Je=c.computed({get(){if(M.value){if(["class","style"].find(et=>et===F)&&!N&&(N=s.get("/converter/appearance.converter")||null),N&&N.convertFrom)return N.convertFrom(l,T,C,P);const O=l[T];return Object.prototype.hasOwnProperty.call(b,"defaultValue")&&(O===void 0||typeof O=="string"&&O==="")?b.type==="boolean"?b.defaultValue:b.defaultValue||"":O}return null},set(O){M.value+=1,N&&N.convertTo?(N.convertTo(y,T,O,C,P),N.convertTo(l,T,O,C,P)):(y[T]=O,l[T]=O)}}),{refreshPanelAfterChanged:Qe,description:Xe,isExpand:Ze,parentPropertyID:Ke}=b,ee={propertyID:F,propertyName:D,propertyType:$,propertyValue:Je,editor:E,visible:q,readonly:A,cascadeConfig:H,hideCascadeTitle:Ye,refreshPanelAfterChanged:Qe,description:Xe,isExpand:Ze,parentPropertyID:Ke};return r[F]=ee,ee})}function a(o,r,l={}){const y={},C=e[o];return C&&C.categories?Object.keys(C.categories).map(V=>{const x=C.categories[V],T=x==null?void 0:x.title,M=g(x.properties||{},y,{},l,r);return{categoryId:V,categoryName:T,properties:M}}):[]}function u(o,r,l,y,C=""){const P=r.$ref.schema,V=r.$ref.converter,x=l[P],T=x.type,M=n(x),F={},b=e[T];if(b&&b.categories){const w=b.categories[o],D=w==null?void 0:w.title;V&&Object.keys(w.properties).forEach(E=>{w.properties[E].$converter=V});const $=(w==null?void 0:w.properties)||{},R=g($,F,M,x,y,C);return{categoryId:o,categoryName:D,properties:R}}return{categoryId:o,categoryName:"",properties:[]}}function m(o,r,l,y,C){const P=o.type,V=n(o),x={};let T=C||e[P];if(T&&Object.keys(T).length===0&&l&&l.getPropConfig&&(T=l.getPropConfig(y)),T&&T.categories){const M=[];return Object.keys(T.categories).map(F=>{const b=T.categories[F];if(b.$ref){M.push(u(F,b,o,r,y));return}const w=b==null?void 0:b.title,D=b==null?void 0:b.tabId,$=b==null?void 0:b.tabName,R=b==null?void 0:b.hide,E=b==null?void 0:b.hideTitle,q=g(b.properties||{},x,V,o,r,y,b.$converter),{setPropertyRelates:A}=b,H=b==null?void 0:b.parentPropertyID;M.push({categoryId:F,categoryName:w,tabId:D,tabName:$,hide:R,properties:q,hideTitle:E,setPropertyRelates:A,parentPropertyID:H})}),M}return[]}return{getPropertyConfigBySchema:m,getPropertyConfigByType:a,propertyConverterMap:s}}const W={},Y={};G(W,Y,ne);const J={},Q={},{getSchemaByType:nt,resolveSchemaWithDefaultValue:Ne,resolveSchemaToProps:ot,mappingSchemaToProps:it,setDesignerContext:at}=U(J,Q),X={},Z={};G(X,Z,Ne);function Oe(e,t,n=new Map,s=(d,f,p,i)=>f,v={},h=d=>d){return _[t.title]=t,z[t.title]=s,W[t.title]=v,Y[t.title]=h,J[t.title]=t,Q[t.title]=s,X[t.title]=v,Z[t.title]=h,(d={},f=!0)=>{if(!f)return ie(d,n);const p=oe(d,t,n),i=Object.keys(e).reduce((g,a)=>(g[a]=e[a].default,g),{});return Object.assign(i,p)}}function Ee(e,t){return{customClass:t.class,customStyle:t.style}}const je=new Map([["appearance",Ee]]);function $e(e,t,n){return t}const Re={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/property-editor.schema.json",title:"property-editor",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for property-editor",type:"string"},type:{description:"The type string of property-editor",type:"string",default:"property-editor"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disable:{type:"string",default:!1},editable:{description:"",type:"boolean",default:!0},placeholder:{description:"",type:"string",default:""},readonly:{description:"",type:"boolean",default:!1},require:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},visible:{description:"",type:"boolean",default:!0},propertyTypes:{description:"",type:"Array",default:[]},constEnums:{description:"",type:"Array",default:[]},constType:{description:"",type:"String",default:""},variables:{description:"",type:"Array",default:[]},controlName:{description:"",type:"string",default:""},newVariablePrefix:{description:"",type:"string",default:""},newVariableType:{description:"",type:"string",default:""},stateMachines:{description:"",type:"Array",default:[]},expressionConfig:{description:"",type:"Object",default:{}}},required:["type"],ignore:["id"]},De={title:"property-editor",description:"A Farris Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"select",editor:{type:"waiting for modification",enum:[]}}}}}},L={...{constType:{type:String,default:""},constEnums:{type:Array,default:[]}},...{variables:{type:Array,default:[]},controlName:{type:String,default:""},newVariablePrefix:{type:String,default:""},newVariableType:{type:String,default:""}},...{},...{stateMachines:{type:Array,default:[]}},...{expressionConfig:{type:Object,default:{}}},id:{Type:String,default:""},modelValue:{type:[Number,String,Boolean,Object]},propertyTypes:{type:Array,default:[]}},K=Oe(L,Re,je,$e,De);function ke(e,t,n){const s=c.ref(!1),v=c.ref(e.constType),h=c.ref(e.constEnums),{getPropertyValue:d,triggerValueChange:f}=n,p=d("Const"),i=c.computed(()=>r=>r===v.value);function g(r){f(r)}function a(r){g(r)}function u(r){if(!r||r.length<1)return;const l=r[0].id;g(l)}function m(){return c.createVNode(te.FNumberSpinner,{nullable:!0,readonly:s.value,modelValue:p.value,"onUpdate:modelValue":r=>p.value=r,onChange:a},null)}function o(){return c.createVNode(k.FComboList,{key:"const-combo-list",modelValue:p.value,"onUpdate:modelValue":r=>p.value=r,placeholder:"",viewType:"text",enableClear:!1,valueField:"id",textField:"name",data:h.value,editable:!1,readonly:s.value,onChange:u},null)}return()=>c.createVNode("div",{class:"f-property-editor-const-container"},[i.value("number")&&m(),i.value("enum")&&o()])}function Be(e,t,n){const s=c.ref(e.newVariablePrefix),v=c.ref(e.newVariableType),h=c.ref(e.id),d=c.ref(e.controlName),f=c.ref(e.variables),{getPropertyValue:p}=n;function i(r){return r[0].toUpperCase()+r.slice(1)}function g(r){return r[0].toLowerCase()+r.slice(1)}function a(r){return r.replace(/[-_](.)/g,(l,y)=>y.toUpperCase())}function u(){const r=s.value?i(d.value):g(d.value),l=i(h.value);let y=`${s.value}${r}${l}`;y=a(y);const{guid:C}=I.useGuid();return{type:"Variable",path:y,field:C(),fullPath:y,isNewVariable:!0,newVariableType:v.value}}function m(r){return f.value.find(y=>y.path===r)}function o(){const r=p("Variable");return r.value||(r.value={type:"Variable",field:"",path:"",fullPath:""}),r}return{generateVariable:u,getVariableByPath:m,getVariableValue:o}}function Ae(e,t,n){const s=c.ref(!1),v=c.ref(e.variables),h=c.ref(e.controlName),d=c.ref(!!h.value),{generateVariable:f,getVariableByPath:p,getVariableValue:i}=Be(e,t,n),{triggerValueChange:g}=n,a=i(),u=c.ref(a.value.field),m=c.computed(()=>[{"form-control-select-show":d.value},{"form-control-select-hide":!d.value}]);function o(V){Object.assign(a.value,{field:V.field,path:V.path,fullPath:V.fullPath,isNewVariable:V.isNewVariable,newVariableType:V.isNewVariable&&V.newVariableType}),u.value=a.value.field,g(a.value)}function r(){const V=f(),x=p(V.path);x?o(x):(v.value.push(V),o(V))}const l=()=>(t.emit("beforeOpenVariables",v),Promise.resolve(!0));function y(V){if(!V||V.length<1)return;const x=V[0],T={path:x.path,fullPath:x.fullPath,field:x.field,type:"Variable"};o(T)}function C(){return c.createVNode(k.FComboList,{key:"variable-combo-list",class:m.value,modelValue:u.value,"onUpdate:modelValue":V=>u.value=V,placeholder:"",viewType:"text",enableClear:!1,valueField:"field",idField:"field",textField:"fullPath",data:v.value,beforeOpen:l,readonly:s.value,editable:!1,onChange:y},null)}function P(){return c.createVNode("div",{class:"f-property-editor-variable-add-button"},[c.createVNode("button",{title:"新增变量",class:"f-variable-button",onClick:r},[c.createVNode("span",{class:"f-icon f-icon-add",style:"margin:unset;"},null)])])}return()=>c.createVNode("div",{class:"f-property-editor-variable-container"},[C(),d.value&&P()])}function Le(e,t,n){const s=/^(?:(!)?)viewModel\.stateMachine\['([^']+)'\]$/,{getPropertyValue:v}=n;function h(f){if(!(typeof f.value=="string"))return;const i=f.value.match(s);if(!i||i.length<3)return;const a={type:"StateMachine",status:i[1]!=="!",field:i[2]};f.value=a,n.triggerValueChange(a)}function d(){const f=v("StateMachine");return f.value?(h(f),f):(f.value={type:"StateMachine",field:"",status:!1},f)}return{getStateMachineValue:d}}function qe(e,t,n){const s=c.ref(!1),v=c.ref(e.stateMachines),{getStateMachineValue:h}=Le(e,t,n),{triggerValueChange:d}=n,f=h(),p=c.ref(f.value.field),i=c.ref(f.value.status);function g(){i.value=!i.value,f.value.status=i.value,d(f.value)}function a(o){if(!o||o.length<1)return;const r=o[0];f.value.field=r.id,d(f.value)}function u(){return c.createVNode("div",{class:"f-stateMachine-status",onClick:g},[i.value?"是":"非"])}function m(){return c.createVNode("div",{class:"f-stateMachine-combo-list"},[c.createVNode(k.FComboList,{key:"state-machine-combo-list",modelValue:p.value,"onUpdate:modelValue":o=>p.value=o,placeholder:"",viewType:"text",enableClear:!1,valueField:"id",textField:"name",data:v.value,editable:!1,readonly:s.value,onChange:a},null)])}return()=>c.createVNode("div",{class:"f-property-editor-stateMachine-container"},[u(),m()])}function He(e,t,n){const s=c.ref(!1),{getPropertyValue:v,triggerValueChange:h}=n,d=v("Custom");function f(p){const i=p.target.value;h(i)}return()=>c.createVNode("div",{class:"f-property-editor-customize-container"},[c.withDirectives(c.createVNode("input",{class:"form-control",placeholder:"输入自定义内容","onUpdate:modelValue":p=>d.value=p,onChange:f,disabled:s.value},null),[[c.vModelText,d.value]])])}function Ie(e,t,n){const{getPropertyValue:s}=n,v=e.id;function h(p){return p+"_"+v}function d(p){return{type:"Expression",expressionId:h((p==null?void 0:p.targetId)||""),expressionInfo:p}}function f(){const{expressionInfo:p={value:"",targetId:"",targetType:"",expressionType:""}}=e.expressionConfig,i=s("Expression");return i.value?(i.value.expressionInfo=p,i.value.expressionId=h(p==null?void 0:p.targetId),i):(i.value=d(p),i)}return{getExpressionValue:f}}function Ue(e,t,n){const s=c.ref(!1),{triggerValueChange:v}=n,{getExpressionValue:h}=Ie(e,t,n);let d=h();const{expressionInfo:f}=d.value,p=c.ref(f.value),i=c.ref(f.message),g=c.ref(e.expressionConfig);c.watch(()=>[e.expressionConfig],()=>{g.value=e.expressionConfig,d=h(),p.value=d.value.expressionInfo.value});function a({expression:m,message:o}){m&&(d.value.expressionInfo.value=m,o?d.value.expressionInfo.message=o:delete d.value.expressionInfo.message,v(d.value))}function u({expressionValue:m,notifyService:o}){return m?!0:(o.warning({message:"请先配置表达式",position:"top-center"}),!1)}return()=>c.createVNode("div",{class:"f-property-editor-expression-container"},[c.createVNode(re.FExpressionTextbox,c.mergeProps(g.value,{modelValue:p.value,"onUpdate:modelValue":m=>p.value=m,validateMessage:i.value,enableClear:!1,readonly:s.value,beforeSubmit:u,onSubmitModal:a}),null)])}function _e(e,t,n){const s=c.ref(e.modelValue),v=new Map;v.set(n,c.ref(j.cloneDeep(s.value)));function h(p){t.emit("valueChange",j.cloneDeep(p))}function d(p){const i=v.get(p);if(i)return i;const g=c.ref();return v.set(p,g),g}function f(p,i){switch(p){case"Const":return i!==void 0;case"Variable":return i&&i.field;case"Custom":return!0;case"Expression":return i&&i.expressionInfo&&i.expressionInfo.value;case"StateMachine":return i&&i.field}}return{triggerValueChange:h,getPropertyValue:d,isPropertyValueValid:f}}const ze=[{id:"Const",name:"常量"},{id:"Variable",name:"变量"},{id:"Custom",name:"自定义"},{id:"StateMachine",name:"状态机"},{id:"Expression",name:"表达式"}];function Ge(e,t){const n=c.ref(e.constType),s=c.ref(e.constEnums),v=c.ref(e.propertyTypes),h=c.ref([]),d=c.ref();function f(){const r=v.value;return h.value=ze.filter(l=>r.includes(l.id)),h}c.watch(()=>[e.propertyTypes],()=>{v.value=e.propertyTypes,f()});function p(r){return typeof r!="string"?!1:/^(?:(!)?)viewModel\.stateMachine\['([^']+)'\]$/.test(r)}function i(r){const l=v.value,y=l.includes("Const")&&n.value==="enum"&&s.value.findIndex(P=>P.id===r)>-1,C=l.includes("Const")&&n.value==="number"&&typeof r=="number";return y||C}function g(r){return v.value.includes("Custom")&&typeof r=="string"}function a(r){if(r&&typeof r=="object")return r.type}function u(r){const l=new Map([["Const",i],["StateMachine",p],["Custom",g]]);for(const[y,C]of l.entries())if(C(r))return y}function m(){const r=e.modelValue,l=v.value[0],y=a(r),C=u(r);return y||C||l}function o(){return d.value||(d.value=m()),d}return{getAllowedPropertyTypeItems:f,getCurrentPropertyType:o}}const B=c.defineComponent({name:"FPropertyEditor",props:L,emits:["valueChange","beforeOpenVariables"],setup(e,t){const n=c.ref(!1),{getAllowedPropertyTypeItems:s,getCurrentPropertyType:v}=Ge(e),h=s(),d=v(),f=_e(e,t,d.value),{getPropertyValue:p,triggerValueChange:i,isPropertyValueValid:g}=f,a=ke(e,t,f),u=Ae(e,t,f),m=He(e,t,f),o=qe(e,t,f),r=Ue(e,t,f),l=c.computed(()=>V=>V===d.value);t.expose({currentPropertyType:d});function y(){const V=p(d.value);g(d.value,V.value)&&i(V.value)}function C(){return c.createVNode("div",{class:"f-property-editor-left"},[c.createVNode(k.FComboList,{modelValue:d.value,"onUpdate:modelValue":V=>d.value=V,placeholder:"",enableClear:!1,valueField:"id",textField:"name",data:h.value,editable:!1,readonly:n.value,onChange:y},null)])}function P(){return c.createVNode("div",{class:"f-property-editor-right"},[l.value("Const")&&a(),l.value("Variable")&&u(),l.value("Custom")&&m(),l.value("StateMachine")&&o(),l.value("Expression")&&r()])}return()=>c.createVNode("div",{class:"f-property-editor-container clearfix"},[C(),P()])}});B.register=(e,t,n,s)=>{e["property-editor"]=B,t["property-editor"]=K};const We=I.withInstall(B);S.FPropertyEditor=B,S.default=We,S.propertyEditorProps=L,S.propsResolver=K,Object.defineProperties(S,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});