@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
1 lines • 154 kB
JavaScript
(function(J,ie){typeof exports=="object"&&typeof module<"u"?ie(exports,require("../common/index.umd.js"),require("vue"),require("lodash-es"),require("bignumber.js"),require("vue-i18n"),require("../dynamic-resolver/index.umd.js"),require("../designer-canvas/index.umd.js"),require("../locale/index.umd.js"),require("@vueuse/core"),require("../data-view/index.umd.js"),require("../property-panel/index.umd.js"),require("../accordion/index.umd.js"),require("../avatar/index.umd.js"),require("../../designer/button-edit/index.umd.js"),require("../button-group/index.umd.js"),require("../calendar/index.umd.js"),require("../capsule/index.umd.js"),require("../../designer/checkbox/index.umd.js"),require("../../designer/checkbox-group/index.umd.js"),require("../combo-list/index.umd.js"),require("../combo-tree/index.umd.js"),require("../component/index.umd.js"),require("../color-picker/index.umd.js"),require("../content-container/index.umd.js"),require("../date-picker/index.umd.js"),require("../../designer/data-grid/index.umd.js"),require("../dropdown/index.umd.js"),require("../dynamic-form/index.umd.js"),require("../events-editor/index.umd.js"),require("../filter-bar/index.umd.js"),require("../field-selector/index.umd.js"),require("../binding-selector/index.umd.js"),require("../image-cropper/index.umd.js"),require("../../designer/input-group/index.umd.js"),require("../layout/index.umd.js"),require("../list-nav/index.umd.js"),require("../../designer/list-view/index.umd.js"),require("../lookup/index.umd.js"),require("../mapping-editor/index.umd.js"),require("../nav/index.umd.js"),require("../number-range/index.umd.js"),require("../number-spinner/index.umd.js"),require("../order/index.umd.js"),require("../page-header/index.umd.js"),require("../page-footer/index.umd.js"),require("../pagination/index.umd.js"),require("../progress/index.umd.js"),require("../query-solution/index.umd.js"),require("../../designer/radio-group/index.umd.js"),require("../rate/index.umd.js"),require("../response-toolbar/index.umd.js"),require("../response-layout/index.umd.js"),require("../response-layout-editor/index.umd.js"),require("../search-box/index.umd.js"),require("../section/index.umd.js"),require("../smoke-detector/index.umd.js"),require("../splitter/index.umd.js"),require("../step/index.umd.js"),require("../switch/index.umd.js"),require("../tabs/index.umd.js"),require("../tags/index.umd.js"),require("../text/index.umd.js"),require("../time-picker/index.umd.js"),require("../transfer/index.umd.js"),require("../tree-view/index.umd.js"),require("../uploader/index.umd.js"),require("../verify-detail/index.umd.js"),require("../video/index.umd.js"),require("../textarea/index.umd.js"),require("../schema-selector/index.umd.js"),require("../../designer/tree-grid/index.umd.js"),require("../event-parameter/index.umd.js"),require("../filter-condition-editor/index.umd.js"),require("../fieldset/index.umd.js"),require("../sort-condition-editor/index.umd.js"),require("../menu-lookup/index.umd.js"),require("../../designer/drawer/index.umd.js"),require("../json-editor/index.umd.js"),require("../property-editor/index.umd.js"),require("../expression-editor/index.umd.js"),require("../code-editor/index.umd.js"),require("../html-template/index.umd.js"),require("../collection-property-editor/index.umd.js"),require("../modal/index.umd.js"),require("../external-container/index.umd.js"),require("../language-textbox/index.umd.js"),require("../notify/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","../common/index.umd.js","vue","lodash-es","bignumber.js","vue-i18n","../dynamic-resolver/index.umd.js","../designer-canvas/index.umd.js","../locale/index.umd.js","@vueuse/core","../data-view/index.umd.js","../property-panel/index.umd.js","../accordion/index.umd.js","../avatar/index.umd.js","../../designer/button-edit/index.umd.js","../button-group/index.umd.js","../calendar/index.umd.js","../capsule/index.umd.js","../../designer/checkbox/index.umd.js","../../designer/checkbox-group/index.umd.js","../combo-list/index.umd.js","../combo-tree/index.umd.js","../component/index.umd.js","../color-picker/index.umd.js","../content-container/index.umd.js","../date-picker/index.umd.js","../../designer/data-grid/index.umd.js","../dropdown/index.umd.js","../dynamic-form/index.umd.js","../events-editor/index.umd.js","../filter-bar/index.umd.js","../field-selector/index.umd.js","../binding-selector/index.umd.js","../image-cropper/index.umd.js","../../designer/input-group/index.umd.js","../layout/index.umd.js","../list-nav/index.umd.js","../../designer/list-view/index.umd.js","../lookup/index.umd.js","../mapping-editor/index.umd.js","../nav/index.umd.js","../number-range/index.umd.js","../number-spinner/index.umd.js","../order/index.umd.js","../page-header/index.umd.js","../page-footer/index.umd.js","../pagination/index.umd.js","../progress/index.umd.js","../query-solution/index.umd.js","../../designer/radio-group/index.umd.js","../rate/index.umd.js","../response-toolbar/index.umd.js","../response-layout/index.umd.js","../response-layout-editor/index.umd.js","../search-box/index.umd.js","../section/index.umd.js","../smoke-detector/index.umd.js","../splitter/index.umd.js","../step/index.umd.js","../switch/index.umd.js","../tabs/index.umd.js","../tags/index.umd.js","../text/index.umd.js","../time-picker/index.umd.js","../transfer/index.umd.js","../tree-view/index.umd.js","../uploader/index.umd.js","../verify-detail/index.umd.js","../video/index.umd.js","../textarea/index.umd.js","../schema-selector/index.umd.js","../../designer/tree-grid/index.umd.js","../event-parameter/index.umd.js","../filter-condition-editor/index.umd.js","../fieldset/index.umd.js","../sort-condition-editor/index.umd.js","../menu-lookup/index.umd.js","../../designer/drawer/index.umd.js","../json-editor/index.umd.js","../property-editor/index.umd.js","../expression-editor/index.umd.js","../code-editor/index.umd.js","../html-template/index.umd.js","../collection-property-editor/index.umd.js","../modal/index.umd.js","../external-container/index.umd.js","../language-textbox/index.umd.js","../notify/index.umd.js"],ie):(J=typeof globalThis<"u"?globalThis:J||self,ie(J["number-spinner"]={},J.common,J.Vue,J.LodashES,J.BigNumber,J.vueI18n,J.dynamicResolver,J.designerCanvas,J.locale,J.VueUseCore,J.dataView))})(this,function(J,ie,i,ve,we,at,st,Rt,lt,mn,Y){"use strict";var ri=Object.defineProperty;var ai=(J,ie,i)=>ie in J?ri(J,ie,{enumerable:!0,configurable:!0,writable:!0,value:i}):J[ie]=i;var W=(J,ie,i)=>ai(J,typeof ie!="symbol"?ie+"":ie,i);function Dt(n,e){let t;function o(l){const{properties:p,title:f,ignore:g}=l,h=g&&Array.isArray(g),v=Object.keys(p).reduce((F,j)=>((!h||!g.find(R=>R===j))&&(F[j]=p[j].type==="object"&&p[j].properties?o(p[j]):ve.cloneDeep(p[j].default)),F),{});if(f&&(!h||!g.find(F=>F==="id"))){const F=f.toLowerCase().replace(/-/g,"_");v.id=`${F}_${Math.random().toString().slice(2,6)}`}return v}function r(l){const{properties:p,title:f,required:g}=l;if(g&&Array.isArray(g)){const h=g.reduce((v,F)=>(v[F]=p[F].type==="object"&&p[F].properties?o(p[F]):ve.cloneDeep(p[F].default),v),{});if(f&&g.find(v=>v==="id")){const v=f.toLowerCase().replace(/-/g,"_");h.id=`${v}_${Math.random().toString().slice(2,6)}`}return h}return{type:f}}function s(l,p={},f){const g=n[l];if(g){let h=r(g);const v=e[l];return h=v?v({getSchemaByType:s},h,p,f):h,t!=null&&t.appendIdentifyForNewControl&&t.appendIdentifyForNewControl(h),h}return null}function a(l,p){const f=o(p);return Object.keys(f).reduce((g,h)=>(Object.prototype.hasOwnProperty.call(l,h)&&(g[h]&&ve.isPlainObject(g[h])&&ve.isPlainObject(l[h]||!l[h])?Object.assign(g[h],l[h]||{}):g[h]=l[h]),g),f),f}function d(l,p){return Object.keys(l).filter(g=>l[g]!=null).reduce((g,h)=>{if(p.has(h)){const v=p.get(h);if(typeof v=="string")g[v]=l[h];else{const F=v(h,l[h],l);Object.assign(g,F)}}else g[h]=l[h];return g},{})}function u(l,p,f=new Map){const g=a(l,p);return d(g,f)}function c(l){var f;const p=l.type;if(p){const g=n[p];if(!g)return l;const h=a(l,g),v=((f=l.editor)==null?void 0:f.type)||"";if(v){const F=n[v],j=a(l.editor,F);h.editor=j}return h}return l}function m(l){t=l}return{getSchemaByType:s,resolveSchemaWithDefaultValue:c,resolveSchemaToProps:u,mappingSchemaToProps:d,setDesignerContext:m}}const Ht={},At={},{getSchemaByType:si,resolveSchemaWithDefaultValue:gn,resolveSchemaToProps:hn,mappingSchemaToProps:yn,setDesignerContext:li}=Dt(Ht,At);function vn(n={}){function e(c,m,l,p){if(typeof l=="number")return p[c].length===l;if(typeof l=="object"){const f=Object.keys(l)[0],g=l[f];if(f==="not")return Number(p[c].length)!==Number(g);if(f==="moreThan")return Number(p[c].length)>=Number(g);if(f==="lessThan")return Number(p[c].length)<=Number(g)}return!1}function t(c,m,l,p){return p[c]&&p[c].propertyValue&&String(p[c].propertyValue.value)===String(l)}const o=new Map([["length",e],["getProperty",t]]);Object.keys(n).reduce((c,m)=>(c.set(m,n[m]),c),o);function r(c,m){const l=c;return typeof m=="number"?[{target:l,operator:"length",param:null,value:Number(m)}]:typeof m=="boolean"?[{target:l,operator:"getProperty",param:c,value:!!m}]:typeof m=="object"?Object.keys(m).map(p=>{if(p==="length")return{target:l,operator:"length",param:null,value:m[p]};const f=p,g=m[p];return{target:l,operator:"getProperty",param:f,value:g}}):[]}function s(c){return Object.keys(c).reduce((l,p)=>{const f=r(p,c[p]);return l.push(...f),l},[])}function a(c,m){if(o.has(c.operator)){const l=o.get(c.operator);return l&&l(c.target,c.param,c.value,m)||!1}return!1}function d(c,m){return s(c).reduce((f,g)=>f&&a(g,m),!0)}function u(c,m){const l=Object.keys(c),p=l.includes("allOf"),f=l.includes("anyOf"),g=p||f,F=(g?c[g?p?"allOf":"anyOf":"allOf"]:[c]).map(R=>d(R,m));return p?!F.includes(!1):F.includes(!0)}return{parseValueSchema:u}}const bn={convertTo:(n,e,t,o)=>{n.appearance||(n.appearance={}),n.appearance[e]=t},convertFrom:(n,e,t)=>n.appearance?n.appearance[e]:n[e]},wn={convertFrom:(n,e,t)=>n.buttons&&n.buttons.length?`共 ${n.buttons.length} 项`:"无"},Cn={convertTo:(n,e,t,o)=>{n.editor&&(n.editor[e]=t)},convertFrom:(n,e,t)=>n.editor&&Object.prototype.hasOwnProperty.call(n.editor,e)?n.editor[e]:n[e]},P={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:"多语输入框"}},xn={convertFrom:(n,e,t)=>{var r;const o=n.editor&&n.editor[e]?n.editor[e]:n[e];return((r=P[o])==null?void 0:r.name)||o}},Sn={convertTo:(n,e,t,o)=>{n[e]=n[e]},convertFrom:(n,e,t)=>n.editor?t.getRealEditorType(n.editor.type):""},Tn={convertTo:(n,e,t,o)=>{(n.type==="data-grid-column"||n.type==="tree-grid-column")&&(n.formatter?n.formatter[e]=t:n.formatter={[e]:t})},convertFrom:(n,e,t)=>{if(n.formatter){if(e==="trueText")return n.formatter.trueText;if(e==="falseText")return n.formatter.falseText;if(e==="prefix")return n.formatter.prefix;if(e==="suffix")return n.formatter.suffix;if(e==="precision")return n.formatter.precision;if(e==="decimal")return n.formatter.decimal;if(e==="thousand")return n.formatter.thousand;if(e==="tempDateFormat")return n.formatter.dateFormat==="yyyy年MM月dd日"?"yearMonthDay":n.formatter.dateFormat==="yyyy-MM-dd HH:mm:ss"?"yyyy-MM-ddTHH:mm:ss":n.formatter.dateFormat==="yyyy/MM/dd HH:mm:ss"?"yyyy/MM/ddTHH:mm:ss":n.formatter.dateFormat==="yyyy年MM月dd日 HH时mm分ss秒"?"yearMonthDayHourMinuteSecond":n.formatter.tempDateFormat||n.formatter.dateFormat||"yyyy-MM-dd";if(e==="customFormat")return n.formatter.customFormat;if(e==="type")return n.formatter.type||"none"}return"none"}},Mn={convertTo:(n,e,t,o)=>{n.command?n.command[e]=t:n.command={[e]:t},e==="enable"&&t&&(n.command.commands||(n.command.commands=[{text:"编辑",type:"primary",command:"edit"},{text:"删除",type:"danger",command:"remove"}]))},convertFrom:(n,e,t)=>n.command&&e==="enable"?n.command.enable:""},Fn={convertTo:(n,e,t,o)=>{n.column?n.column[e]=t:n.column={[e]:t},e==="fitColumns"&&t&&(n.column.fitMode||(n.column.fitMode="average"))},convertFrom:(n,e,t)=>{if(n.column){if(e==="fitColumns")return n.column.fitColumns;if(e==="fitMode")return n.column.fitMode}return""}},Nn={convertTo:(n,e,t,o)=>{n.summary?n.summary[e]=t:n.summary={[e]:t},e==="enable"&&t&&(n.summary?n.summary.groupFields||(n.summary.groupFields=[]):n.summary={enable:t,groupFields:[]})},convertFrom:(n,e,t)=>n.summary&&e==="enable"?n.summary.enable:n.type==="data-grid-column"?n.enableSummary===void 0?!1:n.enableSummary:""},En={convertTo:(n,e,t,o)=>{n.group?n.group[e]=t:n.group={[e]:t},e==="enable"&&t&&(n.group?n.group.groupFields||(n.group.groupFields=[]):n.group={enable:t,groupFields:[],showSummary:!1})},convertFrom:(n,e,t)=>{if(n.group){if(e==="enable")return n.group.enable;if(e==="showSummary")return n.group.showSummary}}},jn={convertFrom:(n,e)=>n.binding?n.binding.path:"",convertTo:(n,e,t)=>{if(t&&t.length>0){const o=t[0];n.binding||(n.binding={}),n.binding.type="Form",n.binding.path=o.bindingField,n.binding.field=o.id,n.binding.fullPath=o.path,n.path=o.bindingPath}}},kn={convertTo:(n,e,t,o)=>{n.pagination||(n.pagination={}),n.pagination[e]=t},convertFrom:(n,e,t)=>n.pagination?n.pagination[e]:n[e]},Vn={convertTo:(n,e,t,o)=>{n.rowNumber||(n.rowNumber={}),n.rowNumber[e]=t},convertFrom:(n,e,t)=>n.rowNumber?n.rowNumber[e]:n[e]},Bn={convertTo:(n,e,t,o)=>{n.selection||(n.selection={}),n.selection[e]=t},convertFrom:(n,e,t)=>n.selection?n.selection[e]:n[e]},In={convertFrom:(n,e,t)=>n[e]&&n[e].length?`共 ${n[e].length} 项`:""},On={convertFrom:(n,e)=>n[e]||"",convertTo:(n,e,t)=>{n[e]=t}},Pn={convertTo:(n,e,t,o)=>{n.size||(n.size={}),n.size[e]=t},convertFrom:(n,e,t)=>n.size?n.size[e]:n[e]},$n={convertFrom:(n,e,t)=>{var o,r;return(o=n.formatter)!=null&&o.data&&e==="formatterEnumData"&&!n.formatterEnumData?(r=n.formatter)==null?void 0:r.data:n.formatterEnumData}},qn={convertTo:(n,e,t,o)=>{n.sort||(n.sort={}),n.sort[e]=t},convertFrom:(n,e,t)=>{var o,r;if(e==="mode")return((o=n.sort)==null?void 0:o.mode)||"client";if(e==="multiSort")return!!((r=n.sort)!=null&&r.multiSort)}},Ln={convertTo:(n,e,t,o)=>{n.filter||(n.filter={}),n.filter[e]=t},convertFrom:(n,e,t)=>{var o;if(e==="mode")return((o=n.filter)==null?void 0:o.mode)||"client"}},Rn={convertTo:(n,e,t,o)=>{n.rowOption?n.rowOption[e]=t:n.rowOption={[e]:t}},convertFrom:(n,e,t)=>{if(n.rowOption){if(e==="customRowStyle")return n.rowOption.customRowStyle;if(e==="customCellStyle")return n.rowOption.customCellStyle}return""}};function zt(n,e,t){const o=new Map([["/converter/appearance.converter",bn],["/converter/buttons.converter",wn],["/converter/property-editor.converter",Cn],["/converter/items-count.converter",In],["/converter/type.converter",xn],["/converter/change-editor.converter",Sn],["/converter/change-formatter.converter",Tn],["/converter/column-command.converter",Mn],["/converter/column-option.converter",Fn],["/converter/summary.converter",Nn],["/converter/group.converter",En],["/converter/form-group-label.converter",On],["/converter/field-selector.converter",jn],["/converter/pagination.converter",kn],["/converter/row-number.converter",Vn],["/converter/grid-selection.converter",Bn],["/converter/size.converter",Pn],["/converter/change-formatter-enum.converter",$n],["/converter/grid-sort.converter",qn],["/converter/grid-filter.converter",Ln],["/converter/row-option.converter",Rn]]),r=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}]]),s=vn();function a(g,h){return()=>s.parseValueSchema(g,h)}function d(g,h,v){return g.includes("visible")&&h.visible!==void 0?typeof h.visible=="boolean"?()=>!!h.visible:h.visible===void 0?!0:a(h.visible,v):()=>!0}function u(g,h,v){return g.includes("readonly")&&h.readonly!==void 0?typeof h.readonly=="boolean"?()=>!!h.readonly:a(h.readonly,v):()=>!1}function c(g,h){const v=g.$converter||h;return typeof v=="string"&&v&&o.has(v)?o.get(v)||null:v||null}function m(g,h,v,F,j,R="",M=""){return Object.keys(g).map(b=>{const C=i.ref(1),x=b,w=g[b],E=Object.keys(w),S=w.title,N=w.type,V=r.get(N)||{type:"input-group",enableClear:!1},B=w.editor?Object.assign({},V,w.editor):Object.assign({},V),q=d(E,w,h),z=u(E,w,h);B.readonly=B.readonly===void 0?z():B.readonly;const Q=w.type==="cascade"?m(w.properties,h,v,F,j,R,M):[],O=!0;let I=c(w,M);const _=i.computed({get(){if(C.value){if(["class","style"].find(ue=>ue===x)&&!I&&(I=o.get("/converter/appearance.converter")||null),I&&I.convertFrom)return I.convertFrom(v,b,j,R);const re=v[b];return Object.prototype.hasOwnProperty.call(w,"defaultValue")&&(re===void 0||typeof re=="string"&&re==="")?w.type==="boolean"?w.defaultValue:w.defaultValue||"":re}return null},set(re){C.value+=1,I&&I.convertTo?(I.convertTo(F,b,re,j,R),I.convertTo(v,b,re,j,R)):(F[b]=re,v[b]=re)}}),{refreshPanelAfterChanged:D,description:ee,isExpand:ge,parentPropertyID:se}=w,G={propertyID:x,propertyName:S,propertyType:N,propertyValue:_,editor:B,visible:q,readonly:z,cascadeConfig:Q,hideCascadeTitle:O,refreshPanelAfterChanged:D,description:ee,isExpand:ge,parentPropertyID:se};return h[x]=G,G})}function l(g,h,v={}){const F={},j=n[g];return j&&j.categories?Object.keys(j.categories).map(M=>{const y=j.categories[M],b=y==null?void 0:y.title,C=m(y.properties||{},F,{},v,h);return{categoryId:M,categoryName:b,properties:C}}):[]}function p(g,h,v,F,j=""){const R=h.$ref.schema,M=h.$ref.converter,y=v[R],b=y.type,C=t(y),x={},w=n[b];if(w&&w.categories){const E=w.categories[g],S=E==null?void 0:E.title;M&&Object.keys(E.properties).forEach(B=>{E.properties[B].$converter=M});const N=(E==null?void 0:E.properties)||{},V=m(N,x,C,y,F,j);return{categoryId:g,categoryName:S,properties:V}}return{categoryId:g,categoryName:"",properties:[]}}function f(g,h,v,F,j){const R=g.type,M=t(g),y={};let b=j||n[R];if(b&&Object.keys(b).length===0&&v&&v.getPropConfig&&(b=v.getPropConfig(F)),b&&b.categories){const C=[];return Object.keys(b.categories).map(x=>{const w=b.categories[x];if(w.$ref){C.push(p(x,w,g,h,F));return}const E=w==null?void 0:w.title,S=w==null?void 0:w.tabId,N=w==null?void 0:w.tabName,V=w==null?void 0:w.hide,B=w==null?void 0:w.hideTitle,q=m(w.properties||{},y,M,g,h,F,w.$converter),{setPropertyRelates:z}=w,Q=w==null?void 0:w.parentPropertyID;C.push({categoryId:x,categoryName:E,tabId:S,tabName:N,hide:V,properties:q,hideTitle:B,setPropertyRelates:z,parentPropertyID:Q})}),C}return[]}return{getPropertyConfigBySchema:f,getPropertyConfigByType:l,propertyConverterMap:o}}const Ut={},_t={};zt(Ut,_t,gn);const Wt={},Gt={},{getSchemaByType:ci,resolveSchemaWithDefaultValue:Dn,resolveSchemaToProps:ui,mappingSchemaToProps:di,setDesignerContext:fi}=Dt(Wt,Gt),Xt={},Yt={};zt(Xt,Yt,Dn);function Je(n,e,t=new Map,o=(a,d,u,c)=>d,r={},s=a=>a){return Ht[e.title]=e,At[e.title]=o,Ut[e.title]=r,_t[e.title]=s,Wt[e.title]=e,Gt[e.title]=o,Xt[e.title]=r,Yt[e.title]=s,(a={},d=!0)=>{if(!d)return yn(a,t);const u=hn(a,e,t),c=Object.keys(n).reduce((m,l)=>(m[l]=n[l].default,m),{});return Object.assign(c,u)}}function bt(n,e){return{customClass:e.class,customStyle:e.style}}const Hn=new Map([["appearance",bt]]),An={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/number-spinner.schema.json",title:"number-spinner",description:"A Farris Input Component",type:"object",properties:{id:{description:"The unique identifier for a number spinner",type:"string"},type:{description:"The type string of number spinner component",type:"string",default:"number-spinner"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},editable:{description:"",type:"boolean",default:!0},placeholder:{description:"",type:"string",default:"请输入数字"},readonly:{description:"",type:"boolean",default:!1},disabled:{description:"",type:"boolean",default:!1},required:{description:"",type:"boolean",default:!1},precision:{description:"",type:"number",default:0},min:{description:"",type:"number"},step:{description:"",type:"number",default:1},tabindex:{description:"",type:"number",default:-1},textAlign:{description:"",type:"string",enum:["left","middle","right"],default:"left"},nullable:{description:"",type:"boolean",default:!1},max:{description:"",type:"number"},onBlur:{description:"",type:"string",default:""},onClickLinkLabel:{description:"",type:"sting",default:""},showZero:{description:"",type:"boolean",default:!0},useThousands:{description:"",type:"boolean",default:!0},keyboard:{description:"",type:"boolean",default:!0},bigNumber:{description:"",type:"boolean",default:!1},updateOn:{description:"",type:"string",default:"blur"},showButton:{description:"",type:"boolean",default:!0}},required:["type"],ignore:["id","appearance","binding","visible"]};function zn(n,e,t){return e}const ct={id:String,disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},editable:{type:Boolean,default:!0},formatter:{type:Function},parser:{type:Function},placeholder:{type:String,default:"请输入数字"},step:{type:Number,default:1},max:{type:[Number,String]},min:{type:[Number,String]},showButton:{type:Boolean,default:!0},useThousands:{type:Boolean,default:!0},textAlign:{type:String,default:"left"},autoDecimal:{type:Boolean,default:!0},nullable:{type:Boolean,default:!1},precision:{type:Number,default:0},prefix:{type:String,default:""},suffix:{type:String,default:""},decimalSeparator:{type:String,default:"."},forcePlaceholder:{Type:Boolean,default:!1},groupSeparator:{type:String,default:","},groupSize:{type:Number,default:3},value:{type:[Number,String],default:""},showZero:{type:Boolean,default:!0},modelValue:{type:[Number,String],default:""},focusOnCreated:{type:Boolean,default:!1},selectOnCreated:{type:Boolean,default:!1},keyboard:{type:Boolean,default:!0},bigNumber:{type:Boolean,default:!1},updateOn:{type:String,default:"change"}},Zt=Object.assign({},ct,{readonly:{}}),wt=Je(ct,An,Hn,zn);function Jt(n,e,t,o){const{format:r}=t,{displayValue:s,getRealValue:a,modelValue:d,onNumberValueChanged:u}=o;function c(){const v=new we(d.value||0);return!((n.max||n.max===0)&&!new we(n.max).isNaN()&&v.gte(new we(n.max))&&(d.value||d.value===0))}function m(){const v=new we(d.value||0);return!((n.min||n.min===0)&&!new we(n.min).isNaN()&&v.lte(new we(n.min))&&(d.value||d.value===0))}function l(v){if(n.readonly||n.disabled)return;const F=v==="up"?c:m,j=v==="up"?"plus":"minus";if(F()){const M=new we(d.value||0)[j](Number(n.step)),y=M.toFixed();s.value=r(y),u(a(M))}}function p(){l("up")}function f(){l("down")}function g(v){p(),v.stopPropagation()}function h(v){f(),v.stopPropagation()}return{canDownward:m,canUpward:c,downward:f,onClickDownButton:h,onClickUpButton:g,upward:p}}function Ct(n,e,t){const o=i.computed(()=>({prefix:n.prefix,suffix:n.suffix,decimalSeparator:n.decimalSeparator,groupSeparator:n.useThousands?n.groupSeparator:"",groupSize:n.groupSize})),{getValidNumberObject:r,precision:s}=t;function a(c){return c=c==null||c===""?"":String(c),c=c.replace(new RegExp(n.prefix,"g"),"").replace(new RegExp(n.suffix,"g"),"").replace(/,/g,""),n.groupSeparator&&n.groupSeparator!==","&&(c=c.replace(new RegExp(`\\${n.groupSeparator}`,"g"),"")),n.decimalSeparator&&n.decimalSeparator!=="."&&(c=c.replace(new RegExp(`\\${n.decimalSeparator}`,"g"),".")),c}function d(c,m){return n.precision!==null&&n.precision!==void 0?c.toFormat(s.value,m):c.toFormat(m)}function u(c,m=!0){const l=a(c),p=new we(l,10);let f=p;return m&&(f=r(p)),f.valueOf()==="0"&&!n.showZero||f.isNaN()?"":n.formatter?n.formatter(f.toNumber()):d(f,o.value)}return{cleanFormat:a,format:u}}function xt(n,e){const t=i.ref(""),o=i.ref(n.modelValue),r=i.computed(()=>Number(n.precision)||0),s=i.ref(n.bigNumber);s.value=!1;function a(l){return l.toFixed(r.value)}function d(l){return isNaN(l)||l===null||l===void 0||l===""}function u(l){const p=d(n.max)?null:new we(String(n.max),10),f=d(n.min)?null:new we(String(n.min),10);return p&&l.gt(p)?p:f&&l.lt(f)?f:l}function c(l,p=!0){if(n.parser)return isNaN(Number(l))?n.parser(l):l;let f=new we(l,10);if(p&&(f=u(f)),f.isNaN()){if(n.nullable||!p)return null;const h=new we(""+n.min,10),v=new we(""+n.max,10);if(!h.isNaN())f=h;else if(!v.isNaN())f=v;else return 0}return a(f)}function m(l){let p=s.value?l:Number(l);n.nullable&&l===null&&(p=null),p!==n.modelValue&&(e.emit("update:modelValue",p),e.emit("valueChange",p),e.emit("change",p))}return{displayValue:t,getRealValue:c,modelValue:o,isEmpty:d,onNumberValueChanged:m,precision:r,getValidNumberObject:u}}function Qt(n,e,t,o,r){const{cleanFormat:s,format:a}=t,{displayValue:d,getRealValue:u,modelValue:c,isEmpty:m,onNumberValueChanged:l}=o,{downward:p,upward:f}=r,g=i.ref(!1),h=i.computed(()=>d.value);function v(C){var E;if(C.stopPropagation(),g.value=!1,n.readonly||n.disabled)return;let x=(E=C.target)==null?void 0:E.value;n.nullable||(x=x||0);const w=s(x);d.value=a(u(w)),n.updateOn==="blur"&&l(u(w)),e.emit("blur",{event:C,formatted:d.value,value:c.value})}function F(C){C.stopPropagation(),g.value=!0,!(n.readonly||n.disabled)&&(d.value=m(c.value)||!n.showZero&&""+c.value=="0"?"":String(c.value),e.emit("focus",{event:C,formatted:d.value,value:c.value}))}function j(C){var E;C.stopPropagation();let x=(E=C.target)==null?void 0:E.value;n.nullable||(x=x||0);const w=s(x);n.updateOn==="change"&&(d.value=w,l(u(w))),e.emit("input",u(w))}function R(C){const x=C;return x.value.substring((x==null?void 0:x.selectionStart)||0,(x==null?void 0:x.selectionEnd)||0)}function M(C){const{key:x,keyCode:w,target:E,ctrlKey:S,metaKey:N,shiftKey:V}=C;if(!E)return;const B=E,q=B.value,z=Number(n.precision),Q=new Set([".","-","%"]),O=R(E);if(Q.has(x)&&q.includes(x)&&!O.includes(x)||n.precision===0&&[110,190].includes(w)){C.preventDefault();return}const _=new Set([46,8,9,27,13,110,190,173]),D=new Set([65,67,86,88]),ee=new Set([...Array.from({length:5},(se,G)=>35+G),189,109]);if(_.has(w)||D.has(w)&&(S||N)||ee.has(w))return;if(!(!V&&(w>=48&&w<=57||w>=96&&w<=105))){C.preventDefault();return}if((V||w<48||w>57)&&(w<96||w>105)&&C.preventDefault(),q.includes(".")&&n.precision){const se=q.indexOf("."),G=q.length-se-1;if((B.selectionStart||0)>se&&G>=z)return C.preventDefault(),!1}}const y=C=>{var E;let x=(E=C.target)==null?void 0:E.value;n.nullable||(x=x||0);const w=s(x);c.value=u(w)};function b(C){return n.keyboard&&C.key==="ArrowDown"&&(C.preventDefault(),y(C),p(),C.stopPropagation()),n.keyboard&&C.key==="ArrowUp"&&(C.preventDefault(),y(C),f(),C.stopPropagation()),M(C)}return{textBoxValue:h,onBlurTextBox:v,onFocusTextBox:F,onInput:j,onKeyDown:b,isFocus:g}}function Kt(n,e,t){const{canDownward:o,canUpward:r,onClickDownButton:s,onClickUpButton:a}=t,d=i.computed(()=>({"input-group-append":!0,"btn-group":!0,"btn-group-number":!0})),u=i.computed(()=>({btn:!0,"btn-secondary":!0,"btn-number-flag":!0})),c=i.computed(()=>({cursor:r()?"pointer":"not-allowed","margin-left":0})),m=i.computed(()=>({cursor:o()?"pointer":"not-allowed","margin-left":0}));return()=>i.createVNode("div",{class:d.value},[i.createVNode("button",{class:u.value,style:c.value,onClick:a,disabled:!r()},[i.createVNode("span",{class:"f-icon f-icon-arrow-chevron-up number-arrow-chevron",style:"cursor: inherit"},null)]),i.createVNode("button",{class:u.value,style:m.value,onClick:s,disabled:!o()},[i.createVNode("span",{class:"f-icon f-icon-arrow-chevron-down number-arrow-chevron",style:"cursor: inherit"},null)])])}function en(n){const{t:e}=at.useI18n();function t(s,a,d){return a===d?e(s):a||""}const o=t("numberSpinner.placeholder",n.placeholder,"请输入数字"),r={begin:t("numberSpinner.range.begin",n.beginPlaceHolder,"开始数字"),end:t("numberSpinner.range.end",n.endPlaceHolder,"结束数字")};return{placeholder:o,range:r}}function tn(n,e,t){const o=en(n),r=i.ref(),{onBlurTextBox:s,onFocusTextBox:a,onInput:d,onKeyDown:u,textBoxValue:c}=t,m=i.computed(()=>(n.disabled||n.readonly||!n.editable)&&!n.forcePlaceholder?"":o.placeholder),l=i.computed(()=>({"form-control":!0,"f-utils-fill":!0})),p=i.computed(()=>({"text-align":n.textAlign}));function f(v){v.stopPropagation()}function g(){var v,F;n.selectOnCreated&&((v=r.value)==null||v.select()),n.focusOnCreated&&((F=r.value)==null||F.focus({preventScroll:!0}))}async function h(v){a(v),await i.nextTick,g()}return i.onMounted(async()=>{await i.nextTick,g()}),()=>i.createVNode("input",{ref:r,class:l.value,style:p.value,type:"text",value:c.value,disabled:n.disabled,readonly:n.readonly||!n.editable,placeholder:m.value,onBlur:s,onChange:f,onFocus:h,onInput:d,onKeydown:u},null)}const Qe=i.defineComponent({name:"FNumberSpinner",props:ct,emits:["update:modelValue","valueChange","change","blur","focus","click","input"],setup(n,e){const t=xt(n,e),o=Ct(n,e,t),r=Jt(n,e,o,t),s=Qt(n,e,o,t,r),a=Kt(n,e,r),{displayValue:d,modelValue:u,getRealValue:c}=t,m=tn(n,e,s),{format:l}=o,{isFocus:p}=s,f=i.computed(()=>!n.disabled&&!n.readonly&&n.showButton),g=i.computed(()=>({"input-group":!0,"flex-row":!0,"f-cmp-number-spinner":!0,"f-state-disabled":n.disable,"f-state-readonly":n.readonly&&!n.disable,"f-state-focus":p.value,"spinner-hidden":!f.value}));return i.onMounted(()=>{const h=c(n.modelValue,!1);d.value=l(h,!1)}),i.watch(()=>[n.value],([h])=>{const v=c(h,!1);u.value=v,d.value=l(v,!1)}),i.watch(()=>[n.modelValue],([h])=>{h!==u.value&&(u.value=h,!p.value&&(d.value=l(c(h,!1),!1)))}),i.watch(()=>[n.precision,n.useThousands,n.prefix,n.suffix,n.showZero],()=>{d.value=l(u.value,!1)}),()=>i.createVNode("div",{class:g.value},[m(),f.value&&a()])}});function Un(){const n=i.computed(()=>({"input-group-append":!0,"btn-group":!0,"btn-group-number":!0})),e=i.computed(()=>({btn:!0,"btn-secondary":!0,"btn-number-flag":!0})),t=i.computed(()=>({cursor:"pointer","margin-left":0})),o=i.computed(()=>({cursor:"pointer","margin-left":0}));return()=>i.createVNode("div",{class:n.value},[i.createVNode("button",{class:e.value,style:t.value},[i.createVNode("span",{class:"f-icon f-icon-arrow-chevron-up number-arrow-chevron"},null)]),i.createVNode("button",{class:e.value,style:o.value},[i.createVNode("span",{class:"f-icon f-icon-arrow-chevron-down number-arrow-chevron"},null)])])}function nn(n,e,t){var S;const o=t&&t.getStyles&&t.getStyles()||"",r=t&&t.getDesignerClass&&t.getDesignerClass()||"",s=i.ref();let a;function d(){return(e==null?void 0:e.schema.componentType)==="frame"?!1:t&&t.checkCanMoveComponent?t.checkCanMoveComponent():!0}function u(){return!1}function c(){return(e==null?void 0:e.schema.componentType)==="frame"?!1:t&&t.checkCanDeleteComponent?t.checkCanDeleteComponent():!0}function m(){return(e==null?void 0:e.schema.componentType)==="frame"?!0:t&&t.hideNestedPaddingInDesginerView?t.hideNestedPaddingInDesginerView():!1}function l(N){if(!N||!N.value)return null;if(N.value.schema&&N.value.schema.type==="component")return N.value;const V=i.ref(N==null?void 0:N.value.parent),B=l(V);return B||null}function p(N=e){var z;if(t!=null&&t.getDraggableDesignItemElement)return t.getDraggableDesignItemElement(N);const{componentInstance:V,designerItemElementRef:B}=N;if(!V||!V.value)return null;const{getCustomButtons:q}=V.value;return V.value.canMove||q&&((z=q())!=null&&z.length)?B:p(N.parent)}function f(N){return!!t&&t.canAccepts(N)}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 h(){}function v(N,V){var B;!N||!V||(t!=null&&t.onAcceptMovedChildElement&&t.onAcceptMovedChildElement(N,V),(B=e==null?void 0:e.setupContext)==null||B.emit("dragEnd"))}function F(N,V){const{componentType:B}=N;let q=st.getSchemaByTypeForDesigner(B,N,V);t&&t.onResolveNewComponentSchema&&(q=t.onResolveNewComponentSchema(N,q));const z=B.toLowerCase().replace(/-/g,"_");return q&&!q.id&&q.type===B&&(q.id=`${z}_${Math.random().toString().slice(2,6)}`),q}function j(N){N&&t!=null&&t.onChildElementMovedOut&&t.onChildElementMovedOut(N)}function R(...N){if(t&&t.getPropsConfig)return t.getPropsConfig(...N)}function M(N){if(!N)return;const V=e==null?void 0:e.schema,{formSchemaUtils:B}=N;if(V&&B.getExpressions().length){const q=B.getExpressions().findIndex(z=>z.target===V.id);q>-1&&B.getExpressions().splice(q,1)}}function y(N){if(!N||!(e!=null&&e.schema))return;const V=e.schema,{formSchemaUtils:B}=N;B.removeCommunicationInComponent(V)}function b(N){t&&t.onRemoveComponent&&t.onRemoveComponent(),M(N),y(N),e!=null&&e.schema.contents&&e.schema.contents.map(V=>{let B=V.id;V.type==="component-ref"&&(B=V.component);const q=n.value.querySelectorAll(`#${B}-design-item`);q!=null&&q.length&&Array.from(q).map(z=>{var Q;(Q=z==null?void 0:z.componentInstance)!=null&&Q.value.onRemoveComponent&&z.componentInstance.value.onRemoveComponent(N)})})}function C(){if(t&&t.getCustomButtons)return t.getCustomButtons()}function x(N){var B,q;if(!((B=e==null?void 0:e.schema)!=null&&B.id))return;if(!a&&N&&(a=N.formSchemaUtils),t!=null&&t.setComponentBasicInfoMap){t.setComponentBasicInfoMap();return}let V="";if(t!=null&&t.getComponentTitle)V=t.getComponentTitle();else{const{text:z,title:Q,label:O,mainTitle:I,name:_,type:D}=e.schema;V=z||Q||O||I||_||((q=P[D])==null?void 0:q.name)}V&&a.getControlBasicInfoMap().set(e.schema.id,{componentTitle:V,parentPathName:V})}function w(N){var z;const{changeObject:V}=N,{propertyID:B,propertyValue:q}=V;if(["text","title","label","name","mainTitle"].includes((z=N==null?void 0:N.changeObject)==null?void 0:z.propertyID)&&B&&q&&(x(),a)){const Q=a.getControlBasicInfoMap(),O=Q.keys().toArray().filter(I=>{var _,D;return((_=Q.get(I))==null?void 0:_.reliedComponentId)===((D=e==null?void 0:e.schema)==null?void 0:D.id)});O!=null&&O.length&&O.forEach(I=>{const _=Q.get(I).parentPathName.split(" > ");_[0]=q,Q.get(I).parentPathName=_.join(" > ")})}}function E(N){if(w(N),t&&t.onPropertyChanged)return t.onPropertyChanged(N)}return s.value={canMove:d(),canSelectParent:u(),canDelete:c(),canNested:!m(),contents:e==null?void 0:e.schema.contents,elementRef:n,parent:(S=e==null?void 0:e.parent)==null?void 0:S.componentInstance,schema:e==null?void 0:e.schema,styles:o,designerClass:r,canAccepts:f,getBelongedComponentInstance:l,getDraggableDesignItemElement:p,getDraggingDisplayText:g,getPropConfig:R,getDragScopeElement:h,onAcceptMovedChildElement:v,onChildElementMovedOut:j,addNewChildComponentSchema:F,triggerBelongedComponentToMoveWhenMoved:!!t&&t.triggerBelongedComponentToMoveWhenMoved||i.ref(!1),triggerBelongedComponentToDeleteWhenDeleted:!!t&&t.triggerBelongedComponentToDeleteWhenDeleted||i.ref(!1),onRemoveComponent:b,getCustomButtons:C,onPropertyChanged:E,setComponentBasicInfoMap:x,updateContextSchema:e==null?void 0:e.updateContextSchema},s}const _n=i.ref(0);function Wn(){_n.value++}const ut=i.ref(0);function Gn(n){const{formSchemaUtils:e,formStateMachineUtils:t}=n;function o(u,c=""){return{path:c+u.code,field:u.id,fullPath:u.code}}function r(u,c=""){return e.getViewModelById(u).states.map(l=>o(l,c))}function s(u){const c=e.getRootViewModelId(),m=r(u);if(u===c)return m;const l=r(c,"root-component.");return[...m,...l]}function a(u){return u.binding&&u.binding.path||u.id||""}function d(){return t&&t.getRenderStates()||[]}return{getVariables:s,getControlName:a,getStateMachines:d}}class on{constructor(e){W(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'"}]);W(this,"expressionNames",{compute:"计算表达式",dependency:"依赖表达式",validate:"验证表达式",dataPicking:"帮助前表达式",visible:"可见表达式",readonly:"只读表达式",required:"必填表达式"});W(this,"getExpressionConverter",(e,t)=>({convertFrom:(o,r,s,a)=>{const d=s.getExpressionRuleValue(e,t||r);return d&&d.value||""},convertTo:(o,r,s,a,d)=>{var u;if(r==="dataPicking"&&(s!=null&&s.target)){const c=`${s.target}_dataPicking`;((u=s.rules)==null?void 0:u.some(l=>l.id===c&&l.value))?o.dictPickingExpressionId=c:delete o.dictPickingExpressionId}a.updateExpression(s)}}));this.formSchemaService=e}getExpressionRule(e,t){const o=this.formSchemaService.getExpressions();if(!o)return"";const r=o.find(a=>a.target===e);if(!r)return"";const s=r.rules.find(a=>a.type===t);return s||""}getContextFormVariables(){const{module:e}=this.formSchemaService.getFormSchema();if(!e.viewmodels||e.viewmodels.length===0)return[];const t=this.formSchemaService.getRootViewModelId(),o=this.formSchemaService.getViewModelById(t);if(!o||!o.states||o.states.length===0)return[];const r=[];return o.states.forEach(s=>{r.push({key:s.code,name:s.name,description:s.name,category:s.category})}),r}createTreeNode(e,t,o="label"){return{id:e.id,name:e.name,bindingPath:e[o],parents:t,type:"field"}}buildEntityFieldsTreeData(e=null,t){const o=[];return e==null||e.forEach(r=>{var d;const s=this.createTreeNode(r,t);let a=[];(d=r.type)!=null&&d.fields&&(a=this.buildEntityFieldsTreeData(r.type.fields,[...t,r.label])),o.push({data:s,children:a,expanded:!0})}),o}buildChildEntityTreeData(e=null,t){const o=[];return e==null||e.forEach(r=>{var u,c;const s=this.createTreeNode(r,t);s.type="entity";const a=this.buildEntityFieldsTreeData((u=r.type)==null?void 0:u.fields,[...t,r.label]),d=this.buildChildEntityTreeData((c=r.type)==null?void 0:c.entities,[...t,r.label]);d!=null&&d.length&&(a==null||a.push(...d)),o.push({data:s,children:a||[],expanded:!0})}),o}getEntitiesTreeData(){const e=this.formSchemaService.getSchemaEntities();if(!(e!=null&&e.length))return[];const t=e[0];if(!(t!=null&&t.type))return[];const o=this.buildEntityFieldsTreeData(t.type.fields,[t.code]),r=this.buildChildEntityTreeData(t.type.entities,[t.code]);return r!=null&&r.length&&(o==null||o.push(...r)),{entityCode:t.code,fields:[{data:this.createTreeNode(t,[],"code"),children:o||[]}]}}getEntitiesAndVariables(){return{entities:this.getEntitiesTreeData(),variables:{session:{name:"系统变量",items:this.sessionVariables,visible:!1},forms:{name:"表单变量",items:this.getContextFormVariables(),visible:!0}}}}onBeforeOpenExpression(e,t,o){const r=o==="Field"?e.binding.field:e.id,s=this.getExpressionRule(r,t),a=this.getEntitiesAndVariables(),d={message:["validate","required","dataPicking"].includes(t)&&s?s.message:"",...a};return s.messageType!=null&&(d.messageType=s.messageType),d}buildRule(e,t,o,r){const{expression:s,message:a,messageType:d}=t,u={id:`${e}_${o}`,type:o,value:s};return(o==="validate"||o==="dataPicking"||o==="required")&&(u.message=a),o==="dataPicking"&&(u.messageType=d),o==="validate"&&r&&(u.elementId=r),u}getExpressionData(){const{expressions:e}=this.formSchemaService.getFormSchema().module;return e||[]}updateExpression(e,t,o,r){const s=t==="Field"?e.binding.field:e.id,a=this.buildRule(s,o,r,e.type==="form-group"?e.id:"");let u=this.getExpressionData().find(m=>m.targetType===t&&m.target===s);const c=m=>m.value.trim()==="";if(u){const m=u.rules.find(l=>l.id===a.id);if(m)c(a)?u.rules=u.rules.filter(l=>l.id!==a.id):(Object.assign(m,a),r==="validate"&&e.type==="form-group"&&(m.elementId=e.id));else{if(c(a))return null;u.rules=u.rules||[],u.rules.push(a)}}else{if(c(a))return null;u={target:`${s}`,rules:[a],targetType:t}}return u}getExpressionEditorOptions(e,t,o,r){return o.reduce((s,a)=>{var u,c;const d=t==="Field"?(u=e==null?void 0:e.binding)==null?void 0:u.field:e.id;return s[a]={hide:t==="Field"?!!((c=e==null?void 0:e.binding)!=null&&c.field):!1,description:"",title:this.expressionNames[a],type:"string",$converter:this.getExpressionConverter(d),refreshPanelAfterChanged:!0,editor:{type:"expression-editor",singleExpand:!1,dialogTitle:`${this.expressionNames[a]}编辑器`,showMessage:a==="validate"||a==="dataPicking"||a==="required",showMessageType:a==="dataPicking",beforeOpen:()=>this.onBeforeOpenExpression(e,a,t),onSubmitModal:m=>{const l=this.updateExpression(e,t,m,a);if(r){const p=this.buildRule(d,m,a);r(p)}return l}}},s},{})}getExpressionInfo(e,t,o){const r=t==="Field"?e.binding.field:e.id,s=this.getExpressionRule(r,o),a={value:s&&s.value,targetId:r,targetType:t,expressionType:o};return s&&s.message&&(a.message=s.message),a}getExpressionConfig(e,t,o=["compute","dependency","validate"],r){return{description:"表达式",title:"表达式",hide:!e.binding,properties:{...this.getExpressionEditorOptions(e,t,o,r)}}}getExpressionOptions(e,t,o){const r=this.getExpressionInfo(e,t,o);return{dialogTitle:`${this.expressionNames[o]}编辑器`,singleExpand:!1,showMessage:o==="required",beforeOpen:()=>this.onBeforeOpenExpression(e,o,t),expressionInfo:r}}}class Xn{constructor(e,t){W(this,"componentId");W(this,"viewModelId");W(this,"eventsEditorUtils");W(this,"formSchemaUtils");W(this,"formMetadataConverter");W(this,"designViewModelUtils");W(this,"designViewModelField");W(this,"controlCreatorUtils");W(this,"designerHostService");W(this,"designerContext");W(this,"schemaService",null);W(this,"metadataService",null);W(this,"propertyConfig",{type:"object",categories:{}});var o;this.componentId=e,this.designerHostService=t,this.eventsEditorUtils=t.eventsEditorUtils,this.formSchemaUtils=t.formSchemaUtils,this.formMetadataConverter=t.formMetadataConverter,this.viewModelId=((o=this.formSchemaUtils)==null?void 0:o.getViewModelIdByComponentId(e))||"",this.designViewModelUtils=t.designViewModelUtils,this.controlCreatorUtils=t.controlCreatorUtils,this.metadataService=t.metadataService,this.schemaService=t.schemaService,this.designerContext=t.designerContext}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 o;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(s=>s.id===t)}e.updateOn=(o=this.designViewModelField)==null?void 0:o.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[e.type]&&P[e.type].name}]}}}}}getAppearanceConfig(e=null,t={},o){const r={title:"外观",description:"Appearance"},s={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 a in t)s[a]=Object.assign(s[a]||{},t[a]);return{...r,properties:{...s},setPropertyRelates(a,d){if(a){switch(a&&a.propertyID){case"class":case"style":{ut.value++;break}}o&&o(a,e,d)}}}}getPropertyEditorParams(e,t=[],o="visible",r={},s={}){const{getVariables:a,getControlName:d,getStateMachines:u}=Gn(this.designerHostService),c=this.getRealTargetType(e),m=t&&t.length>0?t:["Const","Variable","StateMachine","Expression"],l={type:"property-editor",propertyTypes:m};return m.map(p=>{switch(p){case"Const":Object.assign(l,{constType:"enum",constEnums:[{id:!0,name:"是"},{id:!1,name:"否"}]},r);break;case"Expression":l.expressionConfig=this.getExpressionOptions(e,c,o);break;case"StateMachine":l.stateMachines=u();break;case"Variable":Object.assign(l,{controlName:d(e),newVariablePrefix:"is",newVariableType:"Boolean",variables:a(this.viewModelId),onBeforeOpenVariables:f=>{f.value=a(this.viewModelId)}},s);break}}),l}getVisibleProperty(e,t=""){var s;let o=["Const","Variable","StateMachine","Expression"];return t==="gridFieldEditor"?o=["Const","Expression"]:t==="form-group"&&!((s=e.binding)!=null&&s.field)&&(o=["Const","Variable","StateMachine"]),{visible:{title:"是否可见",type:"boolean",description:"运行时组件是否可见",editor:this.getPropertyEditorParams(e,o,"visible")}}}getBehaviorConfig(e,t="",o={},r){const s={title:"行为",description:""},a=this.getVisibleProperty(e,t);for(const u in o)a[u]=Object.assign(a[u]||{},o[u]);const d=this;return{...s,properties:{...a},setPropertyRelates(u,c){if(u){switch(u.propertyID){case"disabled":case"readonly":case"visible":d.afterMutilEditorChanged(e,u);break}r&&r(u,c)}}}}afterMutilEditorChanged(e,t){this.addNewVariableToViewModel(t,this.viewModelId),this.updateExpressionValue(t),this.clearExpression(t,e)}updateElementByParentContainer(e,t){const o=t&&t.parent&&t.parent.schema;if(!o)return;const r=o.contents.findIndex(a=>a.id===e),s=ve.cloneDeep(o.contents[r]);o.contents.splice(r,1),o.contents.splice(r,0,s),Wn()}addNewVariableToViewModel(e,t){const o=e.propertyValue;if(!(o&&typeof o=="object")||!(o.type==="Variable"&&o.isNewVariable))return;const a={id:o.field,category:"locale",code:o.fullPath,name:o.fullPath,type:o.newVariableType||"String"};delete o.newVariableType,delete o.isNewVariable,this.formSchemaUtils.getVariableByCode(a.code)||this.formSchemaUtils.getViewModelById(t).states.push(a)}updateExpressionValue(e){const t=e.propertyValue;if(!((t&&t.type)==="Expression"&&t.expressionInfo))return;const{expressionId:s,expressionInfo:a}=t,{targetId:d,targetType:u,expressionType:c,value:m,message:l}=a,p=this.formSchemaUtils.getModule();p.expressions=p.expressions||[];const{expressions:f}=p;let g=f.find(v=>v.target===d);g||(g={target:d,rules:[],targetType:u},f.push(g));const h=g.rules.find(v=>v.type===c);if(h)h.value=m,h.message=l;else{const v={id:s,type:c,value:m,message:l};g.rules.push(v)}delete t.expressionInfo}clearExpression(e,t){const o=e.propertyValue;if(o&&o.type==="Expression")return;const s=e.propertyID,a=this.formSchemaUtils.getExpressions(),d=t.binding?t.binding.field:t.id,u=a.find(c=>c.target===d);!u||!u.rules||(u.rules=u.rules.filter(c=>c.type!==s))}getExpressionOptions(e,t,o){return new on(this.formSchemaUtils).getExpressionOptions(e,t,o)}getRealTargetType(e){return["response-toolbar-item","tab-toolbar-item","section-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:o=>{var r;((r=o.controller)==null?void 0:r.label.indexOf(this.formSchemaUtils.getModule().code))>-1&&this.eventsEditorUtils.jumpToMethod(o)}}},t}}const Xe=class Xe{static getEditorTypesByMDataType(e,t=!1,o=""){if(t)return[{key:P["language-textbox"].type,value:P["language-textbox"].name}];let r=Xe.fieldControlTypeMapping[e];if(o==="data-grid-column"&&(r!=null&&r.length)){const s=[P["check-group"].type,P["radio-group"].type];r=r.filter(a=>!s.includes(a.key))}return r}static getAllInputTypes(){const e=[];for(const t in Xe.fieldControlTypeMapping)Xe.fieldControlTypeMapping[t].forEach(o=>{e.find(r=>r.key===o.key&&r.value===o.value)||e.push({key:o.key,value:o.value})});return e}static mappingDomPropAndSchemaProp(e,t){var s;const o=(s=e.editor)==null?void 0:s.type,r=[];return(e.type===P["data-grid-column"].type||e.type===P["tree-grid-column"].type)&&t&&t.categoryId&&t.categoryId.indexOf("gridFieldEditor")<0&&r.push({domField:"title",schemaField:"name"}),r.push({domField:"label",schemaField:"name"}),r.push({domField:"editor.required",schemaField:"require"}),r.push({domField:"editor.readonly",schemaField:"readonly"}),(o===P["input-group"].type||o===P.textarea.type||o===P["number-spinner"].type)&&r.push({domField:"editor.maxLength",schemaField:"type.length"}),o===P["number-spinner"].type&&r.push({domField:"editor.precision",schemaField:"type.precision"}),(e.type===P["data-grid-column"].type||e.type===P["tree-grid-column"].type)&&r.push({domField:"formatter.precision",schemaField:"type.precision"}),