UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

1 lines 169 kB
(function(I,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("vue"),require("lodash-es"),require("../dynamic-resolver/index.umd.js"),require("vue-i18n"),require("../locale/index.umd.js"),require("../common/index.umd.js"),require("@vueuse/core"),require("../data-view/index.umd.js"),require("../designer-canvas/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"),require("../tree-grid/index.umd.js"),require("bignumber.js")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es","../dynamic-resolver/index.umd.js","vue-i18n","../locale/index.umd.js","../common/index.umd.js","@vueuse/core","../data-view/index.umd.js","../designer-canvas/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","../tree-grid/index.umd.js","bignumber.js"],o):(I=typeof globalThis<"u"?globalThis:I||self,o(I.component={},I.Vue,I.LodashES,I.dynamicResolver,I.vueI18n,I.locale,I.common,I.VueUseCore,I.dataView,I.designerCanvas,I.propertyPanel,I.FAccordion,I.FAvatar,I.FButtonEdit,I.FButtonGroup,I.FCalendar,I.FCapsule,I.FCheckbox,I.FCheckboxGroup,I.FComboList,I.FComboTree,I.FComponent,I.FColorPicker,I.FContentContainer,I.FDatePicker,I.FDataGrid,I.FDropdown,I.FDynamicForm,I.FEventsEditor,I.FFilterBar,I.FFieldSelector,I.FBindingSelector,I.FImageCropper,I.FInputGroup,I.FLayout,I.FListNav,I.FListView,I.FLookup,I.FMappingEditor,I.FNav,I.FNumberRange,I.FNumberSpinner,I.FOrder,I.FPageHeader,I.FPageFooter,I.FPagination,I.FProgress,I.FQuerySolution,I.FRadioGroup,I.FRate,I.FResponseToolbar,I.FResponseLayout,I.FResponseLayoutEditorSetting,I.FSearchBox,I.FSection,I.FSmokeDetector,I.FSplitter,I.FStep,I.FSwitch,I.FTabs,I.FTags,I.FText,I.FTimePicker,I.FTransfer,I.FTreeview,I.FUploader,I.FVerifyDetail,I.FVideo,I.FTextArea,I.FSchemaSelector,I.FTreeGrid$1,I.FEventParameter,I.FFilterConditionEditor,I.FFieldset,I.FSortConditionEditor,I.FMenuLookup,I.FDrawer,I.FJsonEditor,I.FPropertyEditor,I.FExpressionEditor,I.FCodeEditor,I.FHtmlTemplate,I.FCollectionPropertyEditor,I.FModal$1,I.FExternalContainer,I.FLanguageTextbox,I.notify,I.FTreeGrid$2))})(this,function(I,o,ce,dt,Ct,ft,je,Sn,te,Qe,Tn,Fn,Vn,Nn,Mn,En,Bn,Ht,Gt,kn,jn,In,On,Pn,Dn,$n,Rn,qn,Ln,An,Un,zn,Hn,Gn,_n,Wn,Yn,Xn,Jn,Qn,Zn,Kn,eo,to,no,oo,ro,io,ao,so,lo,co,uo,fo,po,mo,ho,go,yo,vo,bo,Co,wo,xo,So,To,Fo,Vo,No,Mo,Eo,Bo,ko,jo,Io,Oo,Po,Do,$o,Ro,qo,Lo,Ao,Uo,zo,Ho,Go,_o){"use strict";var Wi=Object.defineProperty;var Yi=(I,o,ce)=>o in I?Wi(I,o,{enumerable:!0,configurable:!0,writable:!0,value:ce}):I[o]=ce;var oe=(I,o,ce)=>Yi(I,typeof o!="symbol"?o+"":o,ce);function _t(n,e){let t;function r(f){const{properties:y,title:g,ignore:p}=f,m=p&&Array.isArray(p),T=Object.keys(y).reduce((N,B)=>((!m||!p.find(O=>O===B))&&(N[B]=y[B].type==="object"&&y[B].properties?r(y[B]):ce.cloneDeep(y[B].default)),N),{});if(g&&(!m||!p.find(N=>N==="id"))){const N=g.toLowerCase().replace(/-/g,"_");T.id=`${N}_${Math.random().toString().slice(2,6)}`}return T}function i(f){const{properties:y,title:g,required:p}=f;if(p&&Array.isArray(p)){const m=p.reduce((T,N)=>(T[N]=y[N].type==="object"&&y[N].properties?r(y[N]):ce.cloneDeep(y[N].default),T),{});if(g&&p.find(T=>T==="id")){const T=g.toLowerCase().replace(/-/g,"_");m.id=`${T}_${Math.random().toString().slice(2,6)}`}return m}return{type:g}}function s(f,y={},g){const p=n[f];if(p){let m=i(p);const T=e[f];return m=T?T({getSchemaByType:s},m,y,g):m,t!=null&&t.appendIdentifyForNewControl&&t.appendIdentifyForNewControl(m),m}return null}function a(f,y){const g=r(y);return Object.keys(g).reduce((p,m)=>(Object.prototype.hasOwnProperty.call(f,m)&&(p[m]&&ce.isPlainObject(p[m])&&ce.isPlainObject(f[m]||!f[m])?Object.assign(p[m],f[m]||{}):p[m]=f[m]),p),g),g}function u(f,y){return Object.keys(f).filter(p=>f[p]!=null).reduce((p,m)=>{if(y.has(m)){const T=y.get(m);if(typeof T=="string")p[T]=f[m];else{const N=T(m,f[m],f);Object.assign(p,N)}}else p[m]=f[m];return p},{})}function l(f,y,g=new Map){const p=a(f,y);return u(p,g)}function c(f){var g;const y=f.type;if(y){const p=n[y];if(!p)return f;const m=a(f,p),T=((g=f.editor)==null?void 0:g.type)||"";if(T){const N=n[T],B=a(f.editor,N);m.editor=B}return m}return f}function d(f){t=f}return{getSchemaByType:s,resolveSchemaWithDefaultValue:c,resolveSchemaToProps:l,mappingSchemaToProps:u,setDesignerContext:d}}const wt={},Wt={},{getSchemaByType:xt,resolveSchemaWithDefaultValue:Wo,resolveSchemaToProps:Yo,mappingSchemaToProps:Xo,setDesignerContext:Xi}=_t(wt,Wt);function Jo(n={}){function e(c,d,f,y){if(typeof f=="number")return y[c].length===f;if(typeof f=="object"){const g=Object.keys(f)[0],p=f[g];if(g==="not")return Number(y[c].length)!==Number(p);if(g==="moreThan")return Number(y[c].length)>=Number(p);if(g==="lessThan")return Number(y[c].length)<=Number(p)}return!1}function t(c,d,f,y){return y[c]&&y[c].propertyValue&&String(y[c].propertyValue.value)===String(f)}const r=new Map([["length",e],["getProperty",t]]);Object.keys(n).reduce((c,d)=>(c.set(d,n[d]),c),r);function i(c,d){const f=c;return typeof d=="number"?[{target:f,operator:"length",param:null,value:Number(d)}]:typeof d=="boolean"?[{target:f,operator:"getProperty",param:c,value:!!d}]:typeof d=="object"?Object.keys(d).map(y=>{if(y==="length")return{target:f,operator:"length",param:null,value:d[y]};const g=y,p=d[y];return{target:f,operator:"getProperty",param:g,value:p}}):[]}function s(c){return Object.keys(c).reduce((f,y)=>{const g=i(y,c[y]);return f.push(...g),f},[])}function a(c,d){if(r.has(c.operator)){const f=r.get(c.operator);return f&&f(c.target,c.param,c.value,d)||!1}return!1}function u(c,d){return s(c).reduce((g,p)=>g&&a(p,d),!0)}function l(c,d){const f=Object.keys(c),y=f.includes("allOf"),g=f.includes("anyOf"),p=y||g,N=(p?c[p?y?"allOf":"anyOf":"allOf"]:[c]).map(O=>u(O,d));return y?!N.includes(!1):N.includes(!0)}return{parseValueSchema:l}}const Qo={convertTo:(n,e,t,r)=>{n.appearance||(n.appearance={}),n.appearance[e]=t},convertFrom:(n,e,t)=>n.appearance?n.appearance[e]:n[e]},Zo={convertFrom:(n,e,t)=>n.buttons&&n.buttons.length?`共 ${n.buttons.length} 项`:"无"},Ko={convertTo:(n,e,t,r)=>{n.editor&&(n.editor[e]=t)},convertFrom:(n,e,t)=>n.editor&&Object.prototype.hasOwnProperty.call(n.editor,e)?n.editor[e]:n[e]},R={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:"多语输入框"}},er={convertFrom:(n,e,t)=>{var i;const r=n.editor&&n.editor[e]?n.editor[e]:n[e];return((i=R[r])==null?void 0:i.name)||r}},tr={convertTo:(n,e,t,r)=>{n[e]=n[e]},convertFrom:(n,e,t)=>n.editor?t.getRealEditorType(n.editor.type):""},nr={convertTo:(n,e,t,r)=>{(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"}},or={convertTo:(n,e,t,r)=>{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:""},rr={convertTo:(n,e,t,r)=>{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""}},ir={convertTo:(n,e,t,r)=>{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:""},ar={convertTo:(n,e,t,r)=>{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}}},sr={convertFrom:(n,e)=>n.binding?n.binding.path:"",convertTo:(n,e,t)=>{if(t&&t.length>0){const r=t[0];n.binding||(n.binding={}),n.binding.type="Form",n.binding.path=r.bindingField,n.binding.field=r.id,n.binding.fullPath=r.path,n.path=r.bindingPath}}},lr={convertTo:(n,e,t,r)=>{n.pagination||(n.pagination={}),n.pagination[e]=t},convertFrom:(n,e,t)=>n.pagination?n.pagination[e]:n[e]},cr={convertTo:(n,e,t,r)=>{n.rowNumber||(n.rowNumber={}),n.rowNumber[e]=t},convertFrom:(n,e,t)=>n.rowNumber?n.rowNumber[e]:n[e]},ur={convertTo:(n,e,t,r)=>{n.selection||(n.selection={}),n.selection[e]=t},convertFrom:(n,e,t)=>n.selection?n.selection[e]:n[e]},dr={convertFrom:(n,e,t)=>n[e]&&n[e].length?`共 ${n[e].length} 项`:""},fr={convertFrom:(n,e)=>n[e]||"",convertTo:(n,e,t)=>{n[e]=t}},pr={convertTo:(n,e,t,r)=>{n.size||(n.size={}),n.size[e]=t},convertFrom:(n,e,t)=>n.size?n.size[e]:n[e]},mr={convertFrom:(n,e,t)=>{var r,i;return(r=n.formatter)!=null&&r.data&&e==="formatterEnumData"&&!n.formatterEnumData?(i=n.formatter)==null?void 0:i.data:n.formatterEnumData}},hr={convertTo:(n,e,t,r)=>{n.sort||(n.sort={}),n.sort[e]=t},convertFrom:(n,e,t)=>{var r,i;if(e==="mode")return((r=n.sort)==null?void 0:r.mode)||"client";if(e==="multiSort")return!!((i=n.sort)!=null&&i.multiSort)}},gr={convertTo:(n,e,t,r)=>{n.filter||(n.filter={}),n.filter[e]=t},convertFrom:(n,e,t)=>{var r;if(e==="mode")return((r=n.filter)==null?void 0:r.mode)||"client"}},yr={convertTo:(n,e,t,r)=>{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 Yt(n,e,t){const r=new Map([["/converter/appearance.converter",Qo],["/converter/buttons.converter",Zo],["/converter/property-editor.converter",Ko],["/converter/items-count.converter",dr],["/converter/type.converter",er],["/converter/change-editor.converter",tr],["/converter/change-formatter.converter",nr],["/converter/column-command.converter",or],["/converter/column-option.converter",rr],["/converter/summary.converter",ir],["/converter/group.converter",ar],["/converter/form-group-label.converter",fr],["/converter/field-selector.converter",sr],["/converter/pagination.converter",lr],["/converter/row-number.converter",cr],["/converter/grid-selection.converter",ur],["/converter/size.converter",pr],["/converter/change-formatter-enum.converter",mr],["/converter/grid-sort.converter",hr],["/converter/grid-filter.converter",gr],["/converter/row-option.converter",yr]]),i=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=Jo();function a(p,m){return()=>s.parseValueSchema(p,m)}function u(p,m,T){return p.includes("visible")&&m.visible!==void 0?typeof m.visible=="boolean"?()=>!!m.visible:m.visible===void 0?!0:a(m.visible,T):()=>!0}function l(p,m,T){return p.includes("readonly")&&m.readonly!==void 0?typeof m.readonly=="boolean"?()=>!!m.readonly:a(m.readonly,T):()=>!1}function c(p,m){const T=p.$converter||m;return typeof T=="string"&&T&&r.has(T)?r.get(T)||null:T||null}function d(p,m,T,N,B,O="",F=""){return Object.keys(p).map(x=>{const k=o.ref(1),h=x,v=p[x],w=Object.keys(v),b=v.title,S=v.type,E=i.get(S)||{type:"input-group",enableClear:!1},V=v.editor?Object.assign({},E,v.editor):Object.assign({},E),j=u(w,v,m),G=l(w,v,m);V.readonly=V.readonly===void 0?G():V.readonly;const J=v.type==="cascade"?d(v.properties,m,T,N,B,O,F):[],$=!0;let P=c(v,F);const Y=o.computed({get(){if(k.value){if(["class","style"].find(he=>he===h)&&!P&&(P=r.get("/converter/appearance.converter")||null),P&&P.convertFrom)return P.convertFrom(T,x,B,O);const ue=T[x];return Object.prototype.hasOwnProperty.call(v,"defaultValue")&&(ue===void 0||typeof ue=="string"&&ue==="")?v.type==="boolean"?v.defaultValue:v.defaultValue||"":ue}return null},set(ue){k.value+=1,P&&P.convertTo?(P.convertTo(N,x,ue,B,O),P.convertTo(T,x,ue,B,O)):(N[x]=ue,T[x]=ue)}}),{refreshPanelAfterChanged:H,description:Z,isExpand:le,parentPropertyID:de}=v,K={propertyID:h,propertyName:b,propertyType:S,propertyValue:Y,editor:V,visible:j,readonly:G,cascadeConfig:J,hideCascadeTitle:$,refreshPanelAfterChanged:H,description:Z,isExpand:le,parentPropertyID:de};return m[h]=K,K})}function f(p,m,T={}){const N={},B=n[p];return B&&B.categories?Object.keys(B.categories).map(F=>{const C=B.categories[F],x=C==null?void 0:C.title,k=d(C.properties||{},N,{},T,m);return{categoryId:F,categoryName:x,properties:k}}):[]}function y(p,m,T,N,B=""){const O=m.$ref.schema,F=m.$ref.converter,C=T[O],x=C.type,k=t(C),h={},v=n[x];if(v&&v.categories){const w=v.categories[p],b=w==null?void 0:w.title;F&&Object.keys(w.properties).forEach(V=>{w.properties[V].$converter=F});const S=(w==null?void 0:w.properties)||{},E=d(S,h,k,C,N,B);return{categoryId:p,categoryName:b,properties:E}}return{categoryId:p,categoryName:"",properties:[]}}function g(p,m,T,N,B){const O=p.type,F=t(p),C={};let x=B||n[O];if(x&&Object.keys(x).length===0&&T&&T.getPropConfig&&(x=T.getPropConfig(N)),x&&x.categories){const k=[];return Object.keys(x.categories).map(h=>{const v=x.categories[h];if(v.$ref){k.push(y(h,v,p,m,N));return}const w=v==null?void 0:v.title,b=v==null?void 0:v.tabId,S=v==null?void 0:v.tabName,E=v==null?void 0:v.hide,V=v==null?void 0:v.hideTitle,j=d(v.properties||{},C,F,p,m,N,v.$converter),{setPropertyRelates:G}=v,J=v==null?void 0:v.parentPropertyID;k.push({categoryId:h,categoryName:w,tabId:b,tabName:S,hide:E,properties:j,hideTitle:V,setPropertyRelates:G,parentPropertyID:J})}),k}return[]}return{getPropertyConfigBySchema:g,getPropertyConfigByType:f,propertyConverterMap:r}}const Xt={},Jt={};Yt(Xt,Jt,Wo);const Qt={},Zt={},{getSchemaByType:Ji,resolveSchemaWithDefaultValue:vr,resolveSchemaToProps:Qi,mappingSchemaToProps:Zi,setDesignerContext:Ki}=_t(Qt,Zt),Kt={},en={};Yt(Kt,en,vr);function Ze(n,e,t=new Map,r=(a,u,l,c)=>u,i={},s=a=>a){return wt[e.title]=e,Wt[e.title]=r,Xt[e.title]=i,Jt[e.title]=s,Qt[e.title]=e,Zt[e.title]=r,Kt[e.title]=i,en[e.title]=s,(a={},u=!0)=>{if(!u)return Xo(a,t);const l=Yo(a,e,t),c=Object.keys(n).reduce((d,f)=>(d[f]=n[f].default,d),{});return Object.assign(c,l)}}function St(n,e){return{customClass:e.class,customStyle:e.style}}const tn=new Map([["appearance",St]]),br={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/component.schema.json",title:"component",description:"A Farris Visual Component",type:"object",properties:{id:{description:"The unique identifier for a component",type:"string"},type:{description:"The type string of component",type:"string",default:"component"},componentType:{description:"The type string of component",type:"string"},viewModel:{description:"The viewModel string of component",type:"string"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},contents:{description:"",type:"array",default:[]},visible:{description:"",type:"boolean",default:!0},onInit:{description:"初始化事件",type:"string",default:""},onAfterViewInit:{description:"视图初始化后事件",type:"string",default:""}},required:["id","type","contents"],events:{onInit:"初始化事件",onAfterViewInit:"视图初始化后事件"}};function nn(n,e,t){return e}const nt={id:{type:String},customClass:{type:String,default:""},customStyle:{type:String,default:""},componentType:{type:String,default:""},formColumns:{type:Number,default:4},code:{type:String,default:""}},Tt=Ze(nt,br,tn,nn),Cr=Object.assign({},nt,{componentId:{type:String,default:""}}),pt=o.defineComponent({name:"FComponent",props:nt,emits:["init","afterViewInit"],setup(n,e){const t=o.ref();return o.onBeforeMount(()=>{e.emit("init",n.id)}),o.onMounted(()=>{t.value&&n.code&&t.value.setAttribute("scope-"+n.code.toLowerCase(),""),e.emit("afterViewInit",n.id)}),()=>o.createVNode("div",{ref:t,class:n.id+" "+n.customClass,style:n.customStyle},[e.slots.default&&e.slots.default()])}});function on(n,e,t){var b;const r=t&&t.getStyles&&t.getStyles()||"",i=t&&t.getDesignerClass&&t.getDesignerClass()||"",s=o.ref();let a;function u(){return(e==null?void 0:e.schema.componentType)==="frame"?!1:t&&t.checkCanMoveComponent?t.checkCanMoveComponent():!0}function l(){return!1}function c(){return(e==null?void 0:e.schema.componentType)==="frame"?!1:t&&t.checkCanDeleteComponent?t.checkCanDeleteComponent():!0}function d(){return(e==null?void 0:e.schema.componentType)==="frame"?!0:t&&t.hideNestedPaddingInDesginerView?t.hideNestedPaddingInDesginerView():!1}function f(S){if(!S||!S.value)return null;if(S.value.schema&&S.value.schema.type==="component")return S.value;const E=o.ref(S==null?void 0:S.value.parent),V=f(E);return V||null}function y(S=e){var G;if(t!=null&&t.getDraggableDesignItemElement)return t.getDraggableDesignItemElement(S);const{componentInstance:E,designerItemElementRef:V}=S;if(!E||!E.value)return null;const{getCustomButtons:j}=E.value;return E.value.canMove||j&&((G=j())!=null&&G.length)?V:y(S.parent)}function g(S){return!!t&&t.canAccepts(S)}function p(){return(e==null?void 0:e.schema.label)||(e==null?void 0:e.schema.title)||(e==null?void 0:e.schema.name)}function m(){}function T(S,E){var V;!S||!E||(t!=null&&t.onAcceptMovedChildElement&&t.onAcceptMovedChildElement(S,E),(V=e==null?void 0:e.setupContext)==null||V.emit("dragEnd"))}function N(S,E){const{componentType:V}=S;let j=dt.getSchemaByTypeForDesigner(V,S,E);t&&t.onResolveNewComponentSchema&&(j=t.onResolveNewComponentSchema(S,j));const G=V.toLowerCase().replace(/-/g,"_");return j&&!j.id&&j.type===V&&(j.id=`${G}_${Math.random().toString().slice(2,6)}`),j}function B(S){S&&t!=null&&t.onChildElementMovedOut&&t.onChildElementMovedOut(S)}function O(...S){if(t&&t.getPropsConfig)return t.getPropsConfig(...S)}function F(S){if(!S)return;const E=e==null?void 0:e.schema,{formSchemaUtils:V}=S;if(E&&V.getExpressions().length){const j=V.getExpressions().findIndex(G=>G.target===E.id);j>-1&&V.getExpressions().splice(j,1)}}function C(S){if(!S||!(e!=null&&e.schema))return;const E=e.schema,{formSchemaUtils:V}=S;V.removeCommunicationInComponent(E)}function x(S){t&&t.onRemoveComponent&&t.onRemoveComponent(),F(S),C(S),e!=null&&e.schema.contents&&e.schema.contents.map(E=>{let V=E.id;E.type==="component-ref"&&(V=E.component);const j=n.value.querySelectorAll(`#${V}-design-item`);j!=null&&j.length&&Array.from(j).map(G=>{var J;(J=G==null?void 0:G.componentInstance)!=null&&J.value.onRemoveComponent&&G.componentInstance.value.onRemoveComponent(S)})})}function k(){if(t&&t.getCustomButtons)return t.getCustomButtons()}function h(S){var V,j;if(!((V=e==null?void 0:e.schema)!=null&&V.id))return;if(!a&&S&&(a=S.formSchemaUtils),t!=null&&t.setComponentBasicInfoMap){t.setComponentBasicInfoMap();return}let E="";if(t!=null&&t.getComponentTitle)E=t.getComponentTitle();else{const{text:G,title:J,label:$,mainTitle:P,name:Y,type:H}=e.schema;E=G||J||$||P||Y||((j=R[H])==null?void 0:j.name)}E&&a.getControlBasicInfoMap().set(e.schema.id,{componentTitle:E,parentPathName:E})}function v(S){var G;const{changeObject:E}=S,{propertyID:V,propertyValue:j}=E;if(["text","title","label","name","mainTitle"].includes((G=S==null?void 0:S.changeObject)==null?void 0:G.propertyID)&&V&&j&&(h(),a)){const J=a.getControlBasicInfoMap(),$=J.keys().toArray().filter(P=>{var Y,H;return((Y=J.get(P))==null?void 0:Y.reliedComponentId)===((H=e==null?void 0:e.schema)==null?void 0:H.id)});$!=null&&$.length&&$.forEach(P=>{const Y=J.get(P).parentPathName.split(" > ");Y[0]=j,J.get(P).parentPathName=Y.join(" > ")})}}function w(S){if(v(S),t&&t.onPropertyChanged)return t.onPropertyChanged(S)}return s.value={canMove:u(),canSelectParent:l(),canDelete:c(),canNested:!d(),contents:e==null?void 0:e.schema.contents,elementRef:n,parent:(b=e==null?void 0:e.parent)==null?void 0:b.componentInstance,schema:e==null?void 0:e.schema,styles:r,designerClass:i,canAccepts:g,getBelongedComponentInstance:f,getDraggableDesignItemElement:y,getDraggingDisplayText:p,getPropConfig:O,getDragScopeElement:m,onAcceptMovedChildElement:T,onChildElementMovedOut:B,addNewChildComponentSchema:N,triggerBelongedComponentToMoveWhenMoved:!!t&&t.triggerBelongedComponentToMoveWhenMoved||o.ref(!1),triggerBelongedComponentToDeleteWhenDeleted:!!t&&t.triggerBelongedComponentToDeleteWhenDeleted||o.ref(!1),onRemoveComponent:x,getCustomButtons:k,onPropertyChanged:w,setComponentBasicInfoMap:h,updateContextSchema:e==null?void 0:e.updateContextSchema},s}class wr{getTemplateRule(e,t){const r=t==null?void 0:t.formSchemaUtils,i=r==null?void 0:r.getFormTemplateRule(),s={canAccept:!0,canDelete:!0,canMove:!0};if(!i)return s;const a=this.getComponentContext(e),{componentClassList:u}=a;return u.forEach(l=>{if(!l||!i[l])return;const{canMove:c,canDelete:d,canAccept:f}=i[l];s.canMove=s.canMove&&this.resolveRuleValue(c,a),s.canDelete=s.canDelete&&this.resolveRuleValue(d,a),s.canAccept=s.canAccept&&this.resolveRuleValue(f,a)}),s}resolveRuleValue(e,t){return typeof e=="boolean"?e:this.parseRuleValueSchema(e,t)}parseRuleValueSchema(e,t){const r=e.invalidContext||[];let i=!0;for(const s of r){const{firstLevelChild:a,secondLevelChild:u,parent:l,...c}=s;if(c&&t.component){let d=!0;for(const f of Object.keys(c))if(c[f]!==t.component[f]){d=!1;break}if(!d){i=!1;continue}}if(s.firstLevelChild){if(s.firstLevelChild.class){const{firstLevelChildClassList:d}=t;if(d&&!d.includes(s.firstLevelChild.class)){i=!1;continue}}if(s.firstLevelChild.type){const{firstLevelChildSchema:d}=t;if(!d||d.type!==s.firstLevelChild.type){i=!1;continue}}}if(s.secondLevelChild){if(s.secondLevelChild.class){const{secondLevelChildClassList:d}=t;if(d&&!d.includes(s.secondLevelChild.class)){i=!1;continue}}if(s.secondLevelChild.type){const{secondLevelChildSchema:d}=t;if(!d||d.type!==s.secondLevelChild.type){i=!1;continue}}}if(s.parent){if(s.parent.class){const{parentClassList:d}=t;if(d&&!d.includes(s.parent.class)){i=!1;continue}}if(s.parent.type){const{parentSchema:d}=t;if(d&&d.type!==s.parent.type){i=!1;continue}}}i=!0;break}return!i}getComponentContext(e){var m,T,N,B;const t=e.schema,r=t.appearance&&t.appearance.class||"",i=r.split(" ")||[],s=t.contents||[],a=s.length?s[0]:null,u=a&&a.appearance?a.appearance.class:"",l=u?u.split(" "):[],c=(m=a==null?void 0:a.contents)!=null&&m.length?a==null?void 0:a.contents[0]:null,d=c&&c.appearance?c.appearance.class:"",f=d?d.split(" "):[],y=t.type==="component"?(N=(T=e.parent)==null?void 0:T.parent)==null?void 0:N.schema:(B=e.parent)==null?void 0:B.schema,g=y&&y.appearance&&y.appearance.class||"",p=g?g.split(" "):[];return{componentClass:r,componentClassList:i,childContents:s,firstLevelChildSchema:a,firstLevelChildClass:u,firstLevelChildClassList:l,secondLevelChildSchema:c,secondLevelChildClass:d,secondLevelChildClassList:f,parentSchema:y,parentClass:g,parentClassList:p,component:t}}}const xr=o.ref(0);function rn(){xr.value++}const an=o.ref(0);function Sr(n){const{formSchemaUtils:e,formStateMachineUtils:t}=n;function r(l,c=""){return{path:c+l.code,field:l.id,fullPath:l.code}}function i(l,c=""){return e.getViewModelById(l).states.map(f=>r(f,c))}function s(l){const c=e.getRootViewModelId(),d=i(l);if(l===c)return d;const f=i(c,"root-component.");return[...d,...f]}function a(l){return l.binding&&l.binding.path||l.id||""}function u(){return t&&t.getRenderStates()||[]}return{getVariables:s,getControlName:a,getStateMachines:u}}class Tr{constructor(e){oe(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'"}]);oe(this,"expressionNames",{compute:"计算表达式",dependency:"依赖表达式",validate:"验证表达式",dataPicking:"帮助前表达式",visible:"可见表达式",readonly:"只读表达式",required:"必填表达式"});oe(this,"getExpressionConverter",(e,t)=>({convertFrom:(r,i,s,a)=>{const u=s.getExpressionRuleValue(e,t||i);return u&&u.value||""},convertTo:(r,i,s,a,u)=>{var l;if(i==="dataPicking"&&(s!=null&&s.target)){const c=`${s.target}_dataPicking`;((l=s.rules)==null?void 0:l.some(f=>f.id===c&&f.value))?r.dictPickingExpressionId=c:delete r.dictPickingExpressionId}a.updateExpression(s)}}));this.formSchemaService=e}getExpressionRule(e,t){const r=this.formSchemaService.getExpressions();if(!r)return"";const i=r.find(a=>a.target===e);if(!i)return"";const s=i.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(),r=this.formSchemaService.getViewModelById(t);if(!r||!r.states||r.states.length===0)return[];const i=[];return r.states.forEach(s=>{i.push({key:s.code,name:s.name,description:s.name,category:s.category})}),i}createTreeNode(e,t,r="label"){return{id:e.id,name:e.name,bindingPath:e[r],parents:t,type:"field"}}buildEntityFieldsTreeData(e=null,t){const r=[];return e==null||e.forEach(i=>{var u;const s=this.createTreeNode(i,t);let a=[];(u=i.type)!=null&&u.fields&&(a=this.buildEntityFieldsTreeData(i.type.fields,[...t,i.label])),r.push({data:s,children:a,expanded:!0})}),r}buildChildEntityTreeData(e=null,t){const r=[];return e==null||e.forEach(i=>{var l,c;const s=this.createTreeNode(i,t);s.type="entity";const a=this.buildEntityFieldsTreeData((l=i.type)==null?void 0:l.fields,[...t,i.label]),u=this.buildChildEntityTreeData((c=i.type)==null?void 0:c.entities,[...t,i.label]);u!=null&&u.length&&(a==null||a.push(...u)),r.push({data:s,children:a||[],expanded:!0})}),r}getEntitiesTreeData(){const e=this.formSchemaService.getSchemaEntities();if(!(e!=null&&e.length))return[];const t=e[0];if(!(t!=null&&t.type))return[];const r=this.buildEntityFieldsTreeData(t.type.fields,[t.code]),i=this.buildChildEntityTreeData(t.type.entities,[t.code]);return i!=null&&i.length&&(r==null||r.push(...i)),{entityCode:t.code,fields:[{data:this.createTreeNode(t,[],"code"),children:r||[]}]}}getEntitiesAndVariables(){return{entities:this.getEntitiesTreeData(),variables:{session:{name:"系统变量",items:this.sessionVariables,visible:!1},forms:{name:"表单变量",items:this.getContextFormVariables(),visible:!0}}}}onBeforeOpenExpression(e,t,r){const i=r==="Field"?e.binding.field:e.id,s=this.getExpressionRule(i,t),a=this.getEntitiesAndVariables(),u={message:["validate","required","dataPicking"].includes(t)&&s?s.message:"",...a};return s.messageType!=null&&(u.messageType=s.messageType),u}buildRule(e,t,r,i){const{expression:s,message:a,messageType:u}=t,l={id:`${e}_${r}`,type:r,value:s};return(r==="validate"||r==="dataPicking"||r==="required")&&(l.message=a),r==="dataPicking"&&(l.messageType=u),r==="validate"&&i&&(l.elementId=i),l}getExpressionData(){const{expressions:e}=this.formSchemaService.getFormSchema().module;return e||[]}updateExpression(e,t,r,i){const s=t==="Field"?e.binding.field:e.id,a=this.buildRule(s,r,i,e.type==="form-group"?e.id:"");let l=this.getExpressionData().find(d=>d.targetType===t&&d.target===s);const c=d=>d.value.trim()==="";if(l){const d=l.rules.find(f=>f.id===a.id);if(d)c(a)?l.rules=l.rules.filter(f=>f.id!==a.id):(Object.assign(d,a),i==="validate"&&e.type==="form-group"&&(d.elementId=e.id));else{if(c(a))return null;l.rules=l.rules||[],l.rules.push(a)}}else{if(c(a))return null;l={target:`${s}`,rules:[a],targetType:t}}return l}getExpressionEditorOptions(e,t,r,i){return r.reduce((s,a)=>{var l,c;const u=t==="Field"?(l=e==null?void 0:e.binding)==null?void 0:l.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(u),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:d=>{const f=this.updateExpression(e,t,d,a);if(i){const y=this.buildRule(u,d,a);i(y)}return f}}},s},{})}getExpressionInfo(e,t,r){const i=t==="Field"?e.binding.field:e.id,s=this.getExpressionRule(i,r),a={value:s&&s.value,targetId:i,targetType:t,expressionType:r};return s&&s.message&&(a.message=s.message),a}getExpressionConfig(e,t,r=["compute","dependency","validate"],i){return{description:"表达式",title:"表达式",hide:!e.binding,properties:{...this.getExpressionEditorOptions(e,t,r,i)}}}getExpressionOptions(e,t,r){const i=this.getExpressionInfo(e,t,r);return{dialogTitle:`${this.expressionNames[r]}编辑器`,singleExpand:!1,showMessage:r==="required",beforeOpen:()=>this.onBeforeOpenExpression(e,r,t),expressionInfo:i}}}class Fr{constructor(e,t){oe(this,"componentId");oe(this,"viewModelId");oe(this,"eventsEditorUtils");oe(this,"formSchemaUtils");oe(this,"formMetadataConverter");oe(this,"designViewModelUtils");oe(this,"designViewModelField");oe(this,"controlCreatorUtils");oe(this,"designerHostService");oe(this,"designerContext");oe(this,"schemaService",null);oe(this,"metadataService",null);oe(this,"propertyConfig",{type:"object",categories:{}});var r;this.componentId=e,this.designerHostService=t,this.eventsEditorUtils=t.eventsEditorUtils,this.formSchemaUtils=t.formSchemaUtils,this.formMetadataConverter=t.formMetadataConverter,this.viewModelId=((r=this.formSchemaUtils)==null?void 0:r.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 r;const t=e.binding&&e.binding.type==="Form"&&e.binding.field;if(t){if(!this.designViewModelField){const i=this.designViewModelUtils.getDgViewModel(this.viewModelId);this.designViewModelField=i.fields.find(s=>s.id===t)}e.updateOn=(r=this.designViewModelField)==null?void 0:r.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:R[e.type]&&R[e.type].name}]}}}}}getAppearanceConfig(e=null,t={},r){const i={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{...i,properties:{...s},setPropertyRelates(a,u){if(a){switch(a&&a.propertyID){case"class":case"style":{an.value++;break}}r&&r(a,e,u)}}}}getPropertyEditorParams(e,t=[],r="visible",i={},s={}){const{getVariables:a,getControlName:u,getStateMachines:l}=Sr(this.designerHostService),c=this.getRealTargetType(e),d=t&&t.length>0?t:["Const","Variable","StateMachine","Expression"],f={type:"property-editor",propertyTypes:d};return d.map(y=>{switch(y){case"Const":Object.assign(f,{constType:"enum",constEnums:[{id:!0,name:"是"},{id:!1,name:"否"}]},i);break;case"Expression":f.expressionConfig=this.getExpressionOptions(e,c,r);break;case"StateMachine":f.stateMachines=l();break;case"Variable":Object.assign(f,{controlName:u(e),newVariablePrefix:"is",newVariableType:"Boolean",variables:a(this.viewModelId),onBeforeOpenVariables:g=>{g.value=a(this.viewModelId)}},s);break}}),f}getVisibleProperty(e,t=""){var s;let r=["Const","Variable","StateMachine","Expression"];return t==="gridFieldEditor"?r=["Const","Expression"]:t==="form-group"&&!((s=e.binding)!=null&&s.field)&&(r=["Const","Variable","StateMachine"]),{visible:{title:"是否可见",type:"boolean",description:"运行时组件是否可见",editor:this.getPropertyEditorParams(e,r,"visible")}}}getBehaviorConfig(e,t="",r={},i){const s={title:"行为",description:""},a=this.getVisibleProperty(e,t);for(const l in r)a[l]=Object.assign(a[l]||{},r[l]);const u=this;return{...s,properties:{...a},setPropertyRelates(l,c){if(l){switch(l.propertyID){case"disabled":case"readonly":case"visible":u.afterMutilEditorChanged(e,l);break}i&&i(l,c)}}}}afterMutilEditorChanged(e,t){this.addNewVariableToViewModel(t,this.viewModelId),this.updateExpressionValue(t),this.clearExpression(t,e)}updateElementByParentContainer(e,t){const r=t&&t.parent&&t.parent.schema;if(!r)return;const i=r.contents.findIndex(a=>a.id===e),s=ce.cloneDeep(r.contents[i]);r.contents.splice(i,1),r.contents.splice(i,0,s),rn()}addNewVariableToViewModel(e,t){const r=e.propertyValue;if(!(r&&typeof r=="object")||!(r.type==="Variable"&&r.isNewVariable))return;const a={id:r.field,category:"locale",code:r.fullPath,name:r.fullPath,type:r.newVariableType||"String"};delete r.newVariableType,delete r.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:u,targetType:l,expressionType:c,value:d,message:f}=a,y=this.formSchemaUtils.getModule();y.expressions=y.expressions||[];const{expressions:g}=y;let p=g.find(T=>T.target===u);p||(p={target:u,rules:[],targetType:l},g.push(p));const m=p.rules.find(T=>T.type===c);if(m)m.value=d,m.message=f;else{const T={id:s,type:c,value:d,message:f};p.rules.push(T)}delete t.expressionInfo}clearExpression(e,t){const r=e.propertyValue;if(r&&r.type==="Expression")return;const s=e.propertyID,a=this.formSchemaUtils.getExpressions(),u=t.binding?t.binding.field:t.id,l=a.find(c=>c.target===u);!l||!l.rules||(l.rules=l.rules.filter(c=>c.type!==s))}getExpressionOptions(e,t,r){return new Tr(this.formSchemaUtils).getExpressionOptions(e,t,r)}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:r=>{var i;((i=r.controller)==null?void 0:i.label.indexOf(this.formSchemaUtils.getModule().code))>-1&&this.eventsEditorUtils.jumpToMethod(r)}}},t}}class Vr extends Fr{constructor(e,t){super(e,t)}getPropertyConfig(e){return this.propertyConfig.categories.basic=this.getBasicPropConfig(e),this.propertyConfig.categories.appearance=this.getAppearancePropConfig(e),this.getBehaviorConfig(e),this.getEventPropConfig(e),this.propertyConfig}getAppearancePropConfig(e){const t=this.formSchemaUtils.getViewModelById(this.viewModelId);e.name=t?t.name:null;const r=this;return this.getAppearanceConfig(e,{name:{title:"组件名称",type:"string",description:"组件名称",defaultValue:e.name}},(s,a,u)=>{switch(s.propertyID){case"name":r.syncChangesToViewModel({name:s.propertyValue}),delete a.name;break}})}getEventPropConfig(e){const t=[{label:"onInit",name:"初始化事件"},{label:"onAfterViewInit",name:"视图初始化后事件"}],r=this,i=r.eventsEditorUtils.formProperties(e,r.viewModelId,t),s=r.createBaseEventProperty(i);this.propertyConfig.categories.eventsEditor={title:"事件",hideTitle:!0,properties:s,refreshPanelAfterChanged:!0,tabId:"commands",tabName:"交互",setPropertyRelates(a,u){const l=a.propertyValue;delete e[r.viewModelId],l&&(l.setPropertyRelates=this.setPropertyRelates,r.eventsEditorUtils.saveRelatedParameters(e,r.viewModelId,l.events,l))}}}getBehaviorConfig(e){const t=this.formSchemaUtils.getViewModelById(this.viewModelId),r=t?t.enableValidation:null,i=this;this.propertyConfig.categories.behavior={title:"行为",description:"",properties:{enableValidation:{title:"启用校验",type:"boolean",description:"运行时组件是否启用校验",defaultValue:r}},setPropertyRelates:s=>{if(s)switch(s.propertyID){case"enableValidation":{i.syncChangesToViewModel({enableValidation:s.propertyValue}),delete e.enableValidation;break}}}}}syncChangesToViewModel(e){const t=this.formSchemaUtils.getViewModelById(this.viewModelId);t&&Object.assign(t,e)}}const Nr={showCloseButton:{type:Boolean,default:!0},position:{type:String,default:"top-center"},timeout:{type:Number,default:3e3},theme:{type:String,default:"bootstrap"},left:{type:Number},right:{type:Number},top:{type:Number},bottom:{type:Number},id:{type:String},animate:{type:String,default:"fadeIn"},options:{type:Object},safeHtml:{type:Boolean,default:!0}},Mr={showCloseButton:{type:Boolean,default:!0},animate:{type:String,default:"fadeIn"},options:{type:Object}},Ft=o.defineComponent({name:"Toast",props:Mr,emits:["close","click"],setup:(n,e)=>{const{locale:t,t:r}=Ct.useI18n(),i=o.ref(n.animate),s="fadeOut",a=o.computed(()=>n.options),u=o.ref(!1),l=o.computed(()=>a.value.title&&a.value.message),c=o.computed(()=>!a.value.title&&a.value.message),d=o.computed(()=>{const F={animated:u.value,toast:!0,"toast--only-content":c.value};return F[n.animate]=!1,F[s]=u.value,F["toasty-type-"+a.value.type]=!0,a.value.theme&&(F[a.value.theme]=!0),F}),f=o.computed(()=>{const x=`f-icon-${a.value&&a.value.type?a.value.type.replace("toasty-type-",""):"default"}`,k={"f-icon":!0};return k[x]=!0,k}),y=o.computed(()=>a.value.title||a.value.message),g=o.computed(()=>n.showCloseButton),p=o.computed(()=>!!a.value.buttons||!!e.slots.default),m=o.computed(()=>t.value==="en"?{wordBreak:"keep-all",overflowWrap:"break-word"}:{});function T(F){F.stopPropagation(),F.preventDefault(),u.value=!1,setTimeout(()=>{e.emit("close",a.value)},200)}function N(F,C){}function B(F){return`f-preten-link ${F.customClass?F.customClass:""}`}o.watch(i,()=>{i.value});const O=()=>{var F;return o.createVNode(o.Fragment,null,[o.createVNode("div",{class:"after-toast-msg text-right"},[!e.slots.default&&((F=a.value.buttons)==null?void 0:F.map(C=>o.createVNode("span",{class:B(C),onClick:x=>void 0},[C.text]))),e.slots.default&&e.slots.default()])])};return()=>o.createVNode("div",{class:d.value,style:"min-height:44px"},[g.value&&o.createVNode("button",{title:r("messageBox.close"),class:"toast-close f-btn-icon f-bare",onClick:T},[o.createVNode("span",{class:"f-icon modal_close"},null)]),y.value&&o.createVNode("section",{class:"modal-tips"},[o.createVNode("div",{class:"float-left modal-tips-iconwrap"},[o.createVNode("span",{class:f.value},null)]),o.createVNode("div",{class:"modal-tips-content"},[l.value&&o.createVNode(o.Fragment,null,[o.createVNode("h5",{class:"toast-title modal-tips-title",innerHTML:a.value.title},null),o.createVNode("p",{class:"toast-msg",innerHTML:a.value.message,style:m.value},null),p.value&&O()]),c.value&&(a.value.buttons?o.createVNode("div",{class:"toast-title-btns-wrapper d-flex"},[o.createVNode("h5",{class:"toast-title modal-tips-title only-toast-msg",style:m.value,innerHTML:a.value.message},null),o.createVNode("div",{class:"after-toast-title text-right ml-auto"},[O()])]):o.createVNode("h5",{class:"toast-title modal-tips-title only-toast-msg",style:m.value,innerHTML:a.value.message},null))])])])}}),mt=o.defineComponent({name:"Notify",props:Nr,emits:["close","empty"],setup(n,e){const t=o.computed(()=>({"farris-notify":!0})),r={left:12,right:12,top:20,bottom:12},i=o.ref(),s=o.ref(n.options),a=o.ref(n.showCloseButton),u=o.computed(()=>n.position||"bottom-right"),l=o.computed(()=>n.timeout!=null?n.timeout:3e3),c=o.computed(()=>{const y=n.bottom?n.bottom:r.bottom,g=n.top?n.top:r.top,p={transition:"all 0.2s ease",left:u.value.indexOf("left")>-1?`${n.left?n.left:r.left}px`:"",right:u.value.indexOf("right")>-1?`${n.right?n.right:r.right}px`:"",top:u.value.indexOf("top")>-1?`${g}px`:"",bottom:u.value.indexOf("bottom")>-1?`${y}px`:""};return u.value.indexOf("center")>-1&&(p.left="50%",p.marginLeft="calc(-24rem / 2)",u.value==="center-center"&&(p.top="50%",p.transform="translate(-50%, -50%)")),p});function d(y){e.emit("close")}l.value&&setTimeout(()=>{d()},l.value),e.expose({closeToast:d,container:i,notifyPosition:u});function f(y,g){d()}return()=>o.createVNode("div",{class:t.value,style:c.value,ref:i},[o.createVNode(Ft,{options:s.value,showCloseButton:a.value,animate:n.animate,onClose:y=>f(y,s.value)},null)])}});class Vt{constructor(){oe(this,"notifyRefs",[]);oe(this,"globalConfig",o.reactive({}))}escapeAllHtml(e){if(typeof e!="string"||!e)return"";const t=document.createElement("div");return t.textContent=e||"",t.innerHTML.replace(/\\n/g,"<br>").replace(/\\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;").replace(/\\r/g,"")}createNotifyInstance(e){const t=this,i=Object.assign({timeout:3e3,position:"bottom-right",showCloseButton:!0,safeHtml:!0},this.globalConfig,{...e}),s=document.createElement("div");s.style.display="contents";const a=o.createApp({setup(){var c;const u=o.ref();function l(){u.value.container.style.transform="scale(0)",setTimeout(()=>{t.updateNotifyPositionForClose(i,u),a.unmount()},220)}if(i.position.indexOf("top")>-1){const d=t.getNotifyInstances(i.position),f=d[d.length-1];if(f){const y=f.value.container.getBoundingClientRect();i.top=y.bottom}}return i.safeHtml&&((c=i.options)!=null&&c.message)&&(i.options.message=t.escapeAllHtml(i.options.message)),o.onUnmounted(()=>{document.body.removeChild(s)}),o.onMounted(()=>{t.updateNotifyPositionForCreate(i,u)}),()=>o.createVNode(o.Transition,{mode:"out-in",name:"fade",appear:!0},{default:()=>[o.crea