UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

1 lines 189 kB
(function(oe,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("vue"),require("lodash-es"),require("../response-toolbar/index.umd.js"),require("../locale/index.umd.js"),require("../common/index.umd.js"),require("vue-i18n"),require("@vueuse/core"),require("../data-view/index.umd.js"),require("../dynamic-resolver/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-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","vue","lodash-es","../response-toolbar/index.umd.js","../locale/index.umd.js","../common/index.umd.js","vue-i18n","@vueuse/core","../data-view/index.umd.js","../dynamic-resolver/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-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"],o):(oe=typeof globalThis<"u"?globalThis:oe||self,o(oe.section={},oe.Vue,oe.LodashES,oe.FResponseToolbar,oe.locale,oe.common,oe.vueI18n,oe.VueUseCore,oe.dataView,oe.dynamicResolver,oe.designerCanvas))})(this,function(oe,o,se,Bn,Ye,ae,yt,En,J,Ke,zt){"use strict";var Gr=Object.defineProperty;var Yr=(oe,o,se)=>o in oe?Gr(oe,o,{enumerable:!0,configurable:!0,writable:!0,value:se}):oe[o]=se;var K=(oe,o,se)=>Yr(oe,typeof o!="symbol"?o+"":o,se);function Ht(t,e){let n;function r(d){const{properties:h,title:f,ignore:p}=d,b=p&&Array.isArray(p),C=Object.keys(h).reduce((N,T)=>((!b||!p.find(k=>k===T))&&(N[T]=h[T].type==="object"&&h[T].properties?r(h[T]):se.cloneDeep(h[T].default)),N),{});if(f&&(!b||!p.find(N=>N==="id"))){const N=f.toLowerCase().replace(/-/g,"_");C.id=`${N}_${Math.random().toString().slice(2,6)}`}return C}function i(d){const{properties:h,title:f,required:p}=d;if(p&&Array.isArray(p)){const b=p.reduce((C,N)=>(C[N]=h[N].type==="object"&&h[N].properties?r(h[N]):se.cloneDeep(h[N].default),C),{});if(f&&p.find(C=>C==="id")){const C=f.toLowerCase().replace(/-/g,"_");b.id=`${C}_${Math.random().toString().slice(2,6)}`}return b}return{type:f}}function a(d,h={},f){const p=t[d];if(p){let b=i(p);const C=e[d];return b=C?C({getSchemaByType:a},b,h,f):b,n!=null&&n.appendIdentifyForNewControl&&n.appendIdentifyForNewControl(b),b}return null}function s(d,h){const f=r(h);return Object.keys(f).reduce((p,b)=>(Object.prototype.hasOwnProperty.call(d,b)&&(p[b]&&se.isPlainObject(p[b])&&se.isPlainObject(d[b]||!d[b])?Object.assign(p[b],d[b]||{}):p[b]=d[b]),p),f),f}function u(d,h){return Object.keys(d).filter(p=>d[p]!=null).reduce((p,b)=>{if(h.has(b)){const C=h.get(b);if(typeof C=="string")p[C]=d[b];else{const N=C(b,d[b],d);Object.assign(p,N)}}else p[b]=d[b];return p},{})}function l(d,h,f=new Map){const p=s(d,h);return u(p,f)}function c(d){var f;const h=d.type;if(h){const p=t[h];if(!p)return d;const b=s(d,p),C=((f=d.editor)==null?void 0:f.type)||"";if(C){const N=t[C],T=s(d.editor,N);b.editor=T}return b}return d}function m(d){n=d}return{getSchemaByType:a,resolveSchemaWithDefaultValue:c,resolveSchemaToProps:l,mappingSchemaToProps:u,setDesignerContext:m}}const _t={},Ut={},{getSchemaByType:vt,resolveSchemaWithDefaultValue:In,resolveSchemaToProps:Fn,mappingSchemaToProps:Pn,setDesignerContext:Xr}=Ht(_t,Ut);function Vn(t={}){function e(c,m,d,h){if(typeof d=="number")return h[c].length===d;if(typeof d=="object"){const f=Object.keys(d)[0],p=d[f];if(f==="not")return Number(h[c].length)!==Number(p);if(f==="moreThan")return Number(h[c].length)>=Number(p);if(f==="lessThan")return Number(h[c].length)<=Number(p)}return!1}function n(c,m,d,h){return h[c]&&h[c].propertyValue&&String(h[c].propertyValue.value)===String(d)}const r=new Map([["length",e],["getProperty",n]]);Object.keys(t).reduce((c,m)=>(c.set(m,t[m]),c),r);function i(c,m){const d=c;return typeof m=="number"?[{target:d,operator:"length",param:null,value:Number(m)}]:typeof m=="boolean"?[{target:d,operator:"getProperty",param:c,value:!!m}]:typeof m=="object"?Object.keys(m).map(h=>{if(h==="length")return{target:d,operator:"length",param:null,value:m[h]};const f=h,p=m[h];return{target:d,operator:"getProperty",param:f,value:p}}):[]}function a(c){return Object.keys(c).reduce((d,h)=>{const f=i(h,c[h]);return d.push(...f),d},[])}function s(c,m){if(r.has(c.operator)){const d=r.get(c.operator);return d&&d(c.target,c.param,c.value,m)||!1}return!1}function u(c,m){return a(c).reduce((f,p)=>f&&s(p,m),!0)}function l(c,m){const d=Object.keys(c),h=d.includes("allOf"),f=d.includes("anyOf"),p=h||f,N=(p?c[p?h?"allOf":"anyOf":"allOf"]:[c]).map(k=>u(k,m));return h?!N.includes(!1):N.includes(!0)}return{parseValueSchema:l}}const $n={convertTo:(t,e,n,r)=>{t.appearance||(t.appearance={}),t.appearance[e]=n},convertFrom:(t,e,n)=>t.appearance?t.appearance[e]:t[e]},Dn={convertFrom:(t,e,n)=>t.buttons&&t.buttons.length?`共 ${t.buttons.length} 项`:"无"},On={convertTo:(t,e,n,r)=>{t.editor&&(t.editor[e]=n)},convertFrom:(t,e,n)=>t.editor&&Object.prototype.hasOwnProperty.call(t.editor,e)?t.editor[e]:t[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:"多语输入框"}},Rn={convertFrom:(t,e,n)=>{var i;const r=t.editor&&t.editor[e]?t.editor[e]:t[e];return((i=R[r])==null?void 0:i.name)||r}},An={convertTo:(t,e,n,r)=>{t[e]=t[e]},convertFrom:(t,e,n)=>t.editor?n.getRealEditorType(t.editor.type):""},Ln={convertTo:(t,e,n,r)=>{(t.type==="data-grid-column"||t.type==="tree-grid-column")&&(t.formatter?t.formatter[e]=n:t.formatter={[e]:n})},convertFrom:(t,e,n)=>{if(t.formatter){if(e==="trueText")return t.formatter.trueText;if(e==="falseText")return t.formatter.falseText;if(e==="prefix")return t.formatter.prefix;if(e==="suffix")return t.formatter.suffix;if(e==="precision")return t.formatter.precision;if(e==="decimal")return t.formatter.decimal;if(e==="thousand")return t.formatter.thousand;if(e==="tempDateFormat")return t.formatter.dateFormat==="yyyy年MM月dd日"?"yearMonthDay":t.formatter.dateFormat==="yyyy-MM-dd HH:mm:ss"?"yyyy-MM-ddTHH:mm:ss":t.formatter.dateFormat==="yyyy/MM/dd HH:mm:ss"?"yyyy/MM/ddTHH:mm:ss":t.formatter.dateFormat==="yyyy年MM月dd日 HH时mm分ss秒"?"yearMonthDayHourMinuteSecond":t.formatter.tempDateFormat||t.formatter.dateFormat||"yyyy-MM-dd";if(e==="customFormat")return t.formatter.customFormat;if(e==="type")return t.formatter.type||"none"}return"none"}},qn={convertTo:(t,e,n,r)=>{t.command?t.command[e]=n:t.command={[e]:n},e==="enable"&&n&&(t.command.commands||(t.command.commands=[{text:"编辑",type:"primary",command:"edit"},{text:"删除",type:"danger",command:"remove"}]))},convertFrom:(t,e,n)=>t.command&&e==="enable"?t.command.enable:""},zn={convertTo:(t,e,n,r)=>{t.column?t.column[e]=n:t.column={[e]:n},e==="fitColumns"&&n&&(t.column.fitMode||(t.column.fitMode="average"))},convertFrom:(t,e,n)=>{if(t.column){if(e==="fitColumns")return t.column.fitColumns;if(e==="fitMode")return t.column.fitMode}return""}},Hn={convertTo:(t,e,n,r)=>{t.summary?t.summary[e]=n:t.summary={[e]:n},e==="enable"&&n&&(t.summary?t.summary.groupFields||(t.summary.groupFields=[]):t.summary={enable:n,groupFields:[]})},convertFrom:(t,e,n)=>t.summary&&e==="enable"?t.summary.enable:t.type==="data-grid-column"?t.enableSummary===void 0?!1:t.enableSummary:""},_n={convertTo:(t,e,n,r)=>{t.group?t.group[e]=n:t.group={[e]:n},e==="enable"&&n&&(t.group?t.group.groupFields||(t.group.groupFields=[]):t.group={enable:n,groupFields:[],showSummary:!1})},convertFrom:(t,e,n)=>{if(t.group){if(e==="enable")return t.group.enable;if(e==="showSummary")return t.group.showSummary}}},Un={convertFrom:(t,e)=>t.binding?t.binding.path:"",convertTo:(t,e,n)=>{if(n&&n.length>0){const r=n[0];t.binding||(t.binding={}),t.binding.type="Form",t.binding.path=r.bindingField,t.binding.field=r.id,t.binding.fullPath=r.path,t.path=r.bindingPath}}},Wn={convertTo:(t,e,n,r)=>{t.pagination||(t.pagination={}),t.pagination[e]=n},convertFrom:(t,e,n)=>t.pagination?t.pagination[e]:t[e]},Gn={convertTo:(t,e,n,r)=>{t.rowNumber||(t.rowNumber={}),t.rowNumber[e]=n},convertFrom:(t,e,n)=>t.rowNumber?t.rowNumber[e]:t[e]},Yn={convertTo:(t,e,n,r)=>{t.selection||(t.selection={}),t.selection[e]=n},convertFrom:(t,e,n)=>t.selection?t.selection[e]:t[e]},Xn={convertFrom:(t,e,n)=>t[e]&&t[e].length?`共 ${t[e].length} 项`:""},Jn={convertFrom:(t,e)=>t[e]||"",convertTo:(t,e,n)=>{t[e]=n}},Qn={convertTo:(t,e,n,r)=>{t.size||(t.size={}),t.size[e]=n},convertFrom:(t,e,n)=>t.size?t.size[e]:t[e]},Zn={convertFrom:(t,e,n)=>{var r,i;return(r=t.formatter)!=null&&r.data&&e==="formatterEnumData"&&!t.formatterEnumData?(i=t.formatter)==null?void 0:i.data:t.formatterEnumData}},Kn={convertTo:(t,e,n,r)=>{t.sort||(t.sort={}),t.sort[e]=n},convertFrom:(t,e,n)=>{var r,i;if(e==="mode")return((r=t.sort)==null?void 0:r.mode)||"client";if(e==="multiSort")return!!((i=t.sort)!=null&&i.multiSort)}},eo={convertTo:(t,e,n,r)=>{t.filter||(t.filter={}),t.filter[e]=n},convertFrom:(t,e,n)=>{var r;if(e==="mode")return((r=t.filter)==null?void 0:r.mode)||"client"}},to={convertTo:(t,e,n,r)=>{t.rowOption?t.rowOption[e]=n:t.rowOption={[e]:n}},convertFrom:(t,e,n)=>{if(t.rowOption){if(e==="customRowStyle")return t.rowOption.customRowStyle;if(e==="customCellStyle")return t.rowOption.customCellStyle}return""}};function Wt(t,e,n){const r=new Map([["/converter/appearance.converter",$n],["/converter/buttons.converter",Dn],["/converter/property-editor.converter",On],["/converter/items-count.converter",Xn],["/converter/type.converter",Rn],["/converter/change-editor.converter",An],["/converter/change-formatter.converter",Ln],["/converter/column-command.converter",qn],["/converter/column-option.converter",zn],["/converter/summary.converter",Hn],["/converter/group.converter",_n],["/converter/form-group-label.converter",Jn],["/converter/field-selector.converter",Un],["/converter/pagination.converter",Wn],["/converter/row-number.converter",Gn],["/converter/grid-selection.converter",Yn],["/converter/size.converter",Qn],["/converter/change-formatter-enum.converter",Zn],["/converter/grid-sort.converter",Kn],["/converter/grid-filter.converter",eo],["/converter/row-option.converter",to]]),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}]]),a=Vn();function s(p,b){return()=>a.parseValueSchema(p,b)}function u(p,b,C){return p.includes("visible")&&b.visible!==void 0?typeof b.visible=="boolean"?()=>!!b.visible:b.visible===void 0?!0:s(b.visible,C):()=>!0}function l(p,b,C){return p.includes("readonly")&&b.readonly!==void 0?typeof b.readonly=="boolean"?()=>!!b.readonly:s(b.readonly,C):()=>!1}function c(p,b){const C=p.$converter||b;return typeof C=="string"&&C&&r.has(C)?r.get(C)||null:C||null}function m(p,b,C,N,T,k="",y=""){return Object.keys(p).map(w=>{const P=o.ref(1),$=w,j=p[w],B=Object.keys(j),S=j.title,x=j.type,v=i.get(x)||{type:"input-group",enableClear:!1},M=j.editor?Object.assign({},v,j.editor):Object.assign({},v),F=u(B,j,b),I=l(B,j,b);M.readonly=M.readonly===void 0?I():M.readonly;const O=j.type==="cascade"?m(j.properties,b,C,N,T,k,y):[],E=!0;let D=c(j,y);const L=o.computed({get(){if(P.value){if(["class","style"].find(fe=>fe===$)&&!D&&(D=r.get("/converter/appearance.converter")||null),D&&D.convertFrom)return D.convertFrom(C,w,T,k);const le=C[w];return Object.prototype.hasOwnProperty.call(j,"defaultValue")&&(le===void 0||typeof le=="string"&&le==="")?j.type==="boolean"?j.defaultValue:j.defaultValue||"":le}return null},set(le){P.value+=1,D&&D.convertTo?(D.convertTo(N,w,le,T,k),D.convertTo(C,w,le,T,k)):(N[w]=le,C[w]=le)}}),{refreshPanelAfterChanged:A,description:Y,isExpand:Z,parentPropertyID:ee}=j,W={propertyID:$,propertyName:S,propertyType:x,propertyValue:L,editor:M,visible:F,readonly:I,cascadeConfig:O,hideCascadeTitle:E,refreshPanelAfterChanged:A,description:Y,isExpand:Z,parentPropertyID:ee};return b[$]=W,W})}function d(p,b,C={}){const N={},T=t[p];return T&&T.categories?Object.keys(T.categories).map(y=>{const g=T.categories[y],w=g==null?void 0:g.title,P=m(g.properties||{},N,{},C,b);return{categoryId:y,categoryName:w,properties:P}}):[]}function h(p,b,C,N,T=""){const k=b.$ref.schema,y=b.$ref.converter,g=C[k],w=g.type,P=n(g),$={},j=t[w];if(j&&j.categories){const B=j.categories[p],S=B==null?void 0:B.title;y&&Object.keys(B.properties).forEach(M=>{B.properties[M].$converter=y});const x=(B==null?void 0:B.properties)||{},v=m(x,$,P,g,N,T);return{categoryId:p,categoryName:S,properties:v}}return{categoryId:p,categoryName:"",properties:[]}}function f(p,b,C,N,T){const k=p.type,y=n(p),g={};let w=T||t[k];if(w&&Object.keys(w).length===0&&C&&C.getPropConfig&&(w=C.getPropConfig(N)),w&&w.categories){const P=[];return Object.keys(w.categories).map($=>{const j=w.categories[$];if(j.$ref){P.push(h($,j,p,b,N));return}const B=j==null?void 0:j.title,S=j==null?void 0:j.tabId,x=j==null?void 0:j.tabName,v=j==null?void 0:j.hide,M=j==null?void 0:j.hideTitle,F=m(j.properties||{},g,y,p,b,N,j.$converter),{setPropertyRelates:I}=j,O=j==null?void 0:j.parentPropertyID;P.push({categoryId:$,categoryName:B,tabId:S,tabName:x,hide:v,properties:F,hideTitle:M,setPropertyRelates:I,parentPropertyID:O})}),P}return[]}return{getPropertyConfigBySchema:f,getPropertyConfigByType:d,propertyConverterMap:r}}const Gt={},Yt={};Wt(Gt,Yt,In);const Xt={},Jt={},{getSchemaByType:no,resolveSchemaWithDefaultValue:oo,resolveSchemaToProps:Jr,mappingSchemaToProps:Qr,setDesignerContext:Zr}=Ht(Xt,Jt),Qt={},Zt={};Wt(Qt,Zt,oo);function Te(t,e,n=new Map,r=(s,u,l,c)=>u,i={},a=s=>s){return _t[e.title]=e,Ut[e.title]=r,Gt[e.title]=i,Yt[e.title]=a,Xt[e.title]=e,Jt[e.title]=r,Qt[e.title]=i,Zt[e.title]=a,(s={},u=!0)=>{if(!u)return Pn(s,n);const l=Fn(s,e,n),c=Object.keys(t).reduce((m,d)=>(m[d]=t[d].default,m),{});return Object.assign(c,l)}}function lt(t,e){return{customClass:e.class,customStyle:e.style}}function ro(t,e){if(!t||t.length<1)return null;for(const n of t){if(n.id===e)return n;if(n.children){const r=n.children.find(i=>i.id===e);if(r)return r}}return null}function io(){function t(e,n){var u;const r=(u=e.toolbar)==null?void 0:u.buttons;if(!r||r.length<1)return null;const[i,a]=n.payloads,s=ro(r,a);return s?s.onClick||s.click:null}return{resolve:t}}function ao(t,e,n){return e?{enableAccordion:n.accordionMode}:{enableAccordion:""}}function so(t,e){var n;return{buttons:e.buttons,buttonPosition:e.position,buttonsClass:(n=e.appearance)==null?void 0:n.class,buttonsVisible:e.visible}}const bt=new Map([["appearance",lt],["expanded","expandStatus"],["enableAccordion",ao],["toolbar",so]]);function lo(t,e){const n=Math.random().toString().slice(2,6),r=e.parentComponentInstance,i=t.getSchemaByType("section");Object.assign(i,{id:`section-${n}`,appearance:{class:"f-section-in-mainsubcard"},mainTitle:e.mainTitle||i.mainTitle||"标题"});const a=t.getSchemaByType("content-container");Object.assign(a,{id:`container-${n}`,appearance:{class:"f-struct-wrapper"},contents:[i]});const s=r.schema;switch(s&&s.type){case R["splitter-pane"].type:{i.appearance.class="f-section-in-main";break}}const u=r.elementRef,l=window.getComputedStyle(u);return l&&l.display==="flex"&&(a.appearance.class+=" d-block"),a}function Kt(t,e,n){return n.parentComponentInstance?lo(t,n):e}const en={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/section.schema.json",title:"section",description:"A Farris Container Component",type:"object",properties:{id:{description:"The unique identifier for a Section",type:"string"},type:{description:"The type string of Section component",type:"string",default:"section"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},contentClass:{description:"",type:"string",default:""},contents:{description:"",type:"array",default:[]},enableAccordion:{description:"",type:"string",default:""},accordionMode:{description:"",type:"string",default:"default"},enableMaximize:{description:"",type:"boolean",default:!1},expanded:{description:"",type:"boolean",default:!0},fill:{description:"",type:"boolean",default:!1},headerClass:{description:"",type:"string",default:""},size:{description:"",type:"object",properties:{width:{type:"number"},height:{type:"number"}},default:null},showHeader:{description:"",type:"string",default:!0},mainTitle:{description:"",type:"string",default:""},subTitle:{description:"",type:"string",default:""},headerContentClass:{description:"",type:"string",default:""},extendClass:{description:"",type:"string",default:""},visible:{description:"",type:"boolean",default:!0},expandStatus:{description:"",type:"boolean",default:!0},toolbar:{description:"",type:"object",properties:{type:{type:"string",default:"section-toolbar"},position:{type:"string",default:"inHead"},buttons:{type:"array",default:[]},appearance:{description:"",type:"object",properties:{class:{type:"string",default:""}}}},default:null},headerTitleHtml:{description:"",type:"string",default:""},headerTitleRenderFunction:{description:"",type:"function",default:null},headerHtml:{description:"",type:"string",default:""},headerRenderFunction:{description:"",type:"function",default:null},headerContentHtml:{description:"",type:"string",default:""},headerContentRenderFunction:{description:"",type:"function",default:null},toolbarHtml:{description:"",type:"string",default:""},toolbarRenderFunction:{description:"",type:"function",default:null}},required:["id","type","contents"]},co={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/section-toolbar.schema.json",title:"section-toolbar",description:"A Farris Toolbar Component",type:"object",properties:{id:{description:"The unique identifier for a Section Toolbar",type:"string"},type:{description:"The type string of Section Toolbar",type:"string",default:"section-toolbar"},appearance:{description:"",type:"object",properties:{class:{type:"string",default:""}}},alignment:{description:"The alignment of Section Toolbar Button.",type:"string",default:"right"},buttons:{description:"The items of Section Toolbar.",type:"array",default:[]},buttonSize:{type:"string",default:""},visible:{description:"",type:"boolean",default:!0}},required:["id","type","buttons"],events:{onClick:"点击事件"}},uo=new Map([["buttons","items"],["appearance",lt]]);function Ct(t,e,n){return e}const fo={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/response-toolbar.schema.json",title:"response-toolbar",description:"A Farris Toolbar Component",type:"object",properties:{id:{description:"The unique identifier for a Response Toolbar",type:"string"},type:{description:"The type string of Response Toolbar",type:"string",default:"response-toolbar"},appearance:{description:"",type:"object",properties:{class:{type:"string",default:""}}},alignment:{description:"The alignment of Response Toolbar Button.",type:"string",default:"right"},buttons:{description:"The items of Response Toolbar.",type:"array",default:[]},buttonSize:{type:"string",default:""},visible:{description:"",type:"boolean",default:!0}},required:["id","type","buttons"],events:{onClick:"点击事件"}},po={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/response-toolbar-item.schema.json",title:"response-toolbar-item",description:"A Farris Toolbar Item Component",type:"object",properties:{id:{description:"The unique identifier for a Response Toolbar",type:"string"},type:{description:"The type string of Response Toolbar",type:"string",default:"response-toolbar-item"},appearance:{description:"",type:"object",properties:{class:{type:"string",default:""}}},alignment:{description:"对齐",type:"string",default:"right"},text:{description:"文本",type:"string",default:"按钮"},icon:{description:"图标",type:"string",default:""},disabled:{description:"禁用",type:"boolean",default:!1},visible:{description:"是否可见",type:"boolean",default:!0},onClick:{description:"点击事件",type:"string",default:""},tipsEnable:{description:"",type:"boolean",default:!1},tipsText:{description:"",type:"string",default:""},dropdownClass:{description:"处于下拉菜单时的样式",type:"string",default:""},split:{description:"",type:"boolean",default:!1}},required:["id","type","text"],events:{onClick:"点击事件"}},xt={id:{type:String,default:""},customClass:{type:String,default:""},alignment:{Type:String,default:"right"},items:{Type:Array,default:[]},visible:{type:Boolean,default:!0}},mo=Object.assign({},xt,{componentId:{type:String,default:""}});Te(xt,fo,uo,Ct);const tn={id:{type:String,default:""},item:{type:Object,default:{}},items:{type:Object,default:{}},class:{type:String,default:"btn-secondary"},text:{type:String,default:""},disabled:{type:Boolean,default:!1},icon:{type:String,default:""},componentId:{type:String,default:""},expanded:{type:Boolean,default:!1},alignment:{Type:String,default:"right"},split:{type:Boolean,default:!1},isDP:{type:Boolean,default:!1},isDPItem:{type:Boolean,default:!1}};Te(tn,po,void 0,Ct);const ct={contentClass:{type:String,default:""},customClass:{type:String,default:""},customStyle:{type:String,default:""},enableAccordion:{type:String,default:""},expandStatus:{type:Boolean,default:!0},mainTitle:{type:String,default:""},showHeader:{type:Boolean,default:!0},subTitle:{type:String,default:""},expandLabel:{type:String,default:"展开"},collapseLabel:{type:String,default:"收起"},headerClass:{type:String,default:""},enableMaximize:{type:Boolean,default:!1},headerContentClass:{type:String,default:""},extendClass:{type:String,default:""},buttons:{type:Array,default:[]},buttonPosition:{type:String,default:"inHead"},buttonsClass:{type:String,default:""},buttonsVisible:{type:Boolean,default:!0},fill:{type:Boolean,default:!1},visible:{type:Boolean,default:!0},headerTitleRenderFunction:{type:Function},headerRenderFunction:{type:Function},headerContentRenderFunction:{type:Function},toolbarRenderFunction:{type:Function}},nn=Te(ct,en,bt,Kt),on=io(),wt=Object.assign({},ct,{componentId:{type:String,default:""},headerTitleHtml:{type:String,default:""},headerHtml:{type:String,default:""},headerContentHtml:{type:String,default:""},toolbarHtml:{type:String,default:""}}),rn=Te(xt,co,bt,Ct),an=Te(wt,en,bt,Kt);function sn(t,e,n){let r;function i(l=1){const c=["body>.f-datagrid-settings-simple-host","body>div","body>farris-dialog>.farris-modal.show","body>.farris-modal.show","body>farris-filter-panel>.f-filter-panel-wrapper","body .f-sidebar-show>.f-sidebar-main","body>.popover.show","body>filter-row-panel>.f-datagrid-filter-panel","body>.f-section-maximize"],m=Array.from(document.body.querySelectorAll(c.join(","))).filter(h=>h).map(h=>{const{display:f,zIndex:p}=window.getComputedStyle(h);return f==="none"?0:parseInt(p,10)}).filter(h=>h);let d=Math.max(...m);return d<1040&&(d=1040),d+l}function a(){r=t.value.nextElementSibling;const l=document&&document.querySelector("body");l&&(l.appendChild(t.value),t.value.style.zIndex=i())}function s(){r?e.value.insertBefore(t.value,r):e.value.appendChild(t.value),t.value.style.zIndex=null}function u(){!t||!e.value||(n.value=!n.value,n.value?a():s())}return{onClickMaxMinIcon:u}}function ln(t,e){const n=o.ref(t.buttons),r=o.computed(()=>t.buttonPosition==="inHead"?"right":"left"),i=o.computed(()=>"f-section-toolbar col-6"+(t.buttonPosition==="inHead"?" f-toolbar f-section-header--toolbar":" f-section-content--toolbar")+(t.buttonsClass?" "+t.buttonsClass:"")),a=o.computed(()=>t.buttons&&t.buttons.length>0&&t.buttonPosition==="inHead");function s(c,m){e.emit("click",c,m)}function u(){return a.value&&o.createVNode(Bn,{customClass:i.value,items:n.value,onClick:s,alignment:r.value,visible:t.buttonsVisible},null)}function l(){return o.createVNode("div",{class:i.value},[o.createVNode("div",{class:"w-100",style:"flex:1"},[t.toolbarRenderFunction()])])}return()=>t.toolbarRenderFunction?l():u()}function ho(t,e,n,r,i,a){const s={collapseLabel:Ye.LocaleService.getRealPropertyValue(t.collapseLabel,"收起","section.collapseLabel"),expandLabel:Ye.LocaleService.getRealPropertyValue(t.expandLabel,"展开","section.expandLabel")},u=o.computed(()=>t.buttonPosition),l=ln(t,e),{onClickMaxMinIcon:c}=sn(r,i,a),m=o.computed(()=>t.enableMaximize),d=o.computed(()=>t.enableAccordion!==""),h=o.computed(()=>{const y={"f-section-header":!0};return e.slots.header&&t.headerClass.split(" ").reduce((w,P)=>(w[P]=!0,w),y),y});function f(y){y.stopPropagation(),t.enableAccordion!==""&&(n.value=!n.value)}function p(){const y=o.computed(()=>({btn:!0,"f-btn-collapse-expand":!0,"f-btn-mx":!0,"f-state-expand":n.value})),g=o.computed(()=>({"f-icon":!0,"f-icon-maximize":!a.value,"f-icon-minimize":a.value}));return o.createVNode("div",{class:"f-max-accordion"},[m.value?o.createVNode("span",{class:g.value,onClick:c},null):"",d.value?o.createVNode("button",{class:y.value,onClick:f},[o.createVNode("span",null,[n.value?s.collapseLabel:s.expandLabel])]):""])}function b(){return o.createVNode("div",{class:"f-title"},[o.createVNode("h4",{class:"f-title-text"},[t.mainTitle]),t.subTitle&&o.createVNode("span",null,[t.subTitle])])}function C(){const y=o.computed(()=>{const g={"f-content":!0};return t.headerContentClass&&t.headerContentClass.split(" ").reduce((P,$)=>(P[$]=!0,P),g),g});return e.slots.headerContent?o.createVNode("div",{class:y.value},[e.slots.headerContent()]):t.headerContentRenderFunction?o.createVNode("div",{class:y.value},[t.headerContentRenderFunction()]):null}function N(){return e.slots.headerTitle?e.slots.headerTitle():t.headerTitleRenderFunction?t.headerTitleRenderFunction():b()}function T(){return o.createVNode("div",{class:h.value},[N(),C(),u.value==="inHead"&&l(),(m.value||d.value)&&p()])}function k(){return e.slots.header?o.createVNode("div",{class:h.value},[e.slots.header()]):t.headerRenderFunction?o.createVNode("div",{class:h.value},[t.headerRenderFunction()]):T()}return()=>t.showHeader&&k()}const et=o.defineComponent({name:"FSection",props:ct,emits:["click"],setup(t,e){const n=o.ref(),r=o.ref(),i=o.ref(t.customClass),a=o.computed(()=>t.enableAccordion),s=o.ref(t.expandStatus),u=o.computed(()=>t.buttonPosition),l=o.ref(!1),c=ho(t,e,s,n,r,l),m=ln(t,e),d=o.computed(()=>{const C={"f-section":!0,"f-section-accordion":a.value==="default","f-state-collapse":(a.value==="default"||a.value==="custom")&&!s.value,"f-section-custom-accordion":a.value==="custom","f-section-fill":t.fill,"f-section-maximize":l.value};return ae.getCustomClass(C,i.value)}),h=o.computed(()=>{const C={"f-section-content":!0};return ae.getCustomClass(C,t.contentClass)}),f=o.computed(()=>{const C={"f-section-extend":!0};return ae.getCustomClass(C,t.extendClass)});function p(){return e.slots.extend&&o.createVNode("div",{class:f.value},[e.slots.extend()])}function b(){return o.createVNode("div",{class:h.value},[u.value==="inContent"&&m(),e.slots.default&&e.slots.default()])}return o.watch(()=>t.expandStatus,(C,N)=>{C!==N&&(s.value=C)}),o.onMounted(()=>{n.value&&n.value&&(r.value=n.value.parentElement)}),()=>t.visible?o.createVNode("div",{class:d.value,ref:n,style:t.customStyle},[c(),p(),b()]):null}});function go(){function t(e,n){var s;if(!e)return!1;const r=((s=e.targetContainer)==null?void 0:s.componentInstance)&&e.targetContainer.componentInstance.value;if(!r)return!1;const i=r.schema.type,a=n==null?void 0:n.formSchemaUtils.getComponentById(r.belongedComponentId);return!((e.componentCategory==="input"||e.componentType==="form-group")&&![R["response-layout-item"].type,R["response-form"].type,R.fieldset.type].includes(i)||(e.componentType===R.tabs.type||e.componentType===R.section.type)&&((a==null?void 0:a.componentType)!=="frame"||![R["content-container"].type,R["splitter-pane"].type,R["response-layout-item"].type].includes(i))||[R["query-solution"].type,R["filter-bar"].type].includes(e.componentType)||e.componentType===R.fieldset.type&&i!==R["response-form"].type)}return{basalDragulaRuleForContainer:t}}const Re=o.ref(0);function yo(t,e){const n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=r.top>=n.top,a=r.top<=n.bottom;return i&&a}function St(t){const e=t.querySelector(".component-btn-group");if(!e)return;e.style.display="";const n=e.getBoundingClientRect();if(!(n.top===0&&n.left===0)){const r=e.querySelector("div");if(r){const i=r.getBoundingClientRect();r.style.top=n.top+"px";let a=n.left-i.width;const s=document.querySelector(".editorDiv");if(s){const u=s.getBoundingClientRect();a<u.left&&({left:a}=t.getBoundingClientRect())}r.style.left=a+"px"}}}function vo(t){if(!window.scrollContainerList)return;const e=Array.from(window.scrollContainerList);if(e.length&&e.length===1){const n=e[0],r=document.querySelector(`[id=${n}]`);if(r&&r.contains(t))return r}}function cn(t){if(!t)return;const e=t.getBoundingClientRect();if(e.width===0&&e.height===0)return;const n=t.querySelector(".component-btn-group");if(n){let r=!0;const i=vo(t);if(i&&(r=yo(t,i)),!r){n.style.display="none";return}St(t)}}function bo(t){if(!t)return;let e;t.className.includes("dgComponentSelected")?e=t:e=t.querySelector(".dgComponentSelected"),e&&cn(e)}function Co(t){const e=document.querySelector(".dgComponentSelected");if(!e)return;const n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=e.querySelector(".component-btn-group");if(i){const a=i.getBoundingClientRect(),s=r.top<n.top;a.top!==0&&s&&St(e)}}const xo=o.ref(0);function wo(){xo.value++}function So(t){const{formSchemaUtils:e,formStateMachineUtils:n}=t;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(d=>r(d,c))}function a(l){const c=e.getRootViewModelId(),m=i(l);if(l===c)return m;const d=i(c,"root-component.");return[...m,...d]}function s(l){return l.binding&&l.binding.path||l.id||""}function u(){return n&&n.getRenderStates()||[]}return{getVariables:a,getControlName:s,getStateMachines:u}}class To{constructor(e){K(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'"}]);K(this,"expressionNames",{compute:"计算表达式",dependency:"依赖表达式",validate:"验证表达式",dataPicking:"帮助前表达式",visible:"可见表达式",readonly:"只读表达式",required:"必填表达式"});K(this,"getExpressionConverter",(e,n)=>({convertFrom:(r,i,a,s)=>{const u=a.getExpressionRuleValue(e,n||i);return u&&u.value||""},convertTo:(r,i,a,s,u)=>{var l;if(i==="dataPicking"&&(a!=null&&a.target)){const c=`${a.target}_dataPicking`;((l=a.rules)==null?void 0:l.some(d=>d.id===c&&d.value))?r.dictPickingExpressionId=c:delete r.dictPickingExpressionId}s.updateExpression(a)}}));this.formSchemaService=e}getExpressionRule(e,n){const r=this.formSchemaService.getExpressions();if(!r)return"";const i=r.find(s=>s.target===e);if(!i)return"";const a=i.rules.find(s=>s.type===n);return a||""}getContextFormVariables(){const{module:e}=this.formSchemaService.getFormSchema();if(!e.viewmodels||e.viewmodels.length===0)return[];const n=this.formSchemaService.getRootViewModelId(),r=this.formSchemaService.getViewModelById(n);if(!r||!r.states||r.states.length===0)return[];const i=[];return r.states.forEach(a=>{i.push({key:a.code,name:a.name,description:a.name,category:a.category})}),i}createTreeNode(e,n,r="label"){return{id:e.id,name:e.name,bindingPath:e[r],parents:n,type:"field"}}buildEntityFieldsTreeData(e=null,n){const r=[];return e==null||e.forEach(i=>{var u;const a=this.createTreeNode(i,n);let s=[];(u=i.type)!=null&&u.fields&&(s=this.buildEntityFieldsTreeData(i.type.fields,[...n,i.label])),r.push({data:a,children:s,expanded:!0})}),r}buildChildEntityTreeData(e=null,n){const r=[];return e==null||e.forEach(i=>{var l,c;const a=this.createTreeNode(i,n);a.type="entity";const s=this.buildEntityFieldsTreeData((l=i.type)==null?void 0:l.fields,[...n,i.label]),u=this.buildChildEntityTreeData((c=i.type)==null?void 0:c.entities,[...n,i.label]);u!=null&&u.length&&(s==null||s.push(...u)),r.push({data:a,children:s||[],expanded:!0})}),r}getEntitiesTreeData(){const e=this.formSchemaService.getSchemaEntities();if(!(e!=null&&e.length))return[];const n=e[0];if(!(n!=null&&n.type))return[];const r=this.buildEntityFieldsTreeData(n.type.fields,[n.code]),i=this.buildChildEntityTreeData(n.type.entities,[n.code]);return i!=null&&i.length&&(r==null||r.push(...i)),{entityCode:n.code,fields:[{data:this.createTreeNode(n,[],"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,n,r){const i=r==="Field"?e.binding.field:e.id,a=this.getExpressionRule(i,n),s=this.getEntitiesAndVariables(),u={message:["validate","required","dataPicking"].includes(n)&&a?a.message:"",...s};return a.messageType!=null&&(u.messageType=a.messageType),u}buildRule(e,n,r,i){const{expression:a,message:s,messageType:u}=n,l={id:`${e}_${r}`,type:r,value:a};return(r==="validate"||r==="dataPicking"||r==="required")&&(l.message=s),r==="dataPicking"&&(l.messageType=u),r==="validate"&&i&&(l.elementId=i),l}getExpressionData(){const{expressions:e}=this.formSchemaService.getFormSchema().module;return e||[]}updateExpression(e,n,r,i){const a=n==="Field"?e.binding.field:e.id,s=this.buildRule(a,r,i,e.type==="form-group"?e.id:"");let l=this.getExpressionData().find(m=>m.targetType===n&&m.target===a);const c=m=>m.value.trim()==="";if(l){const m=l.rules.find(d=>d.id===s.id);if(m)c(s)?l.rules=l.rules.filter(d=>d.id!==s.id):(Object.assign(m,s),i==="validate"&&e.type==="form-group"&&(m.elementId=e.id));else{if(c(s))return null;l.rules=l.rules||[],l.rules.push(s)}}else{if(c(s))return null;l={target:`${a}`,rules:[s],targetType:n}}return l}getExpressionEditorOptions(e,n,r,i){return r.reduce((a,s)=>{var l,c;const u=n==="Field"?(l=e==null?void 0:e.binding)==null?void 0:l.field:e.id;return a[s]={hide:n==="Field"?!!((c=e==null?void 0:e.binding)!=null&&c.field):!1,description:"",title:this.expressionNames[s],type:"string",$converter:this.getExpressionConverter(u),refreshPanelAfterChanged:!0,editor:{type:"expression-editor",singleExpand:!1,dialogTitle:`${this.expressionNames[s]}编辑器`,showMessage:s==="validate"||s==="dataPicking"||s==="required",showMessageType:s==="dataPicking",beforeOpen:()=>this.onBeforeOpenExpression(e,s,n),onSubmitModal:m=>{const d=this.updateExpression(e,n,m,s);if(i){const h=this.buildRule(u,m,s);i(h)}return d}}},a},{})}getExpressionInfo(e,n,r){const i=n==="Field"?e.binding.field:e.id,a=this.getExpressionRule(i,r),s={value:a&&a.value,targetId:i,targetType:n,expressionType:r};return a&&a.message&&(s.message=a.message),s}getExpressionConfig(e,n,r=["compute","dependency","validate"],i){return{description:"表达式",title:"表达式",hide:!e.binding,properties:{...this.getExpressionEditorOptions(e,n,r,i)}}}getExpressionOptions(e,n,r){const i=this.getExpressionInfo(e,n,r);return{dialogTitle:`${this.expressionNames[r]}编辑器`,singleExpand:!1,showMessage:r==="required",beforeOpen:()=>this.onBeforeOpenExpression(e,r,n),expressionInfo:i}}}class ut{constructor(e,n){K(this,"componentId");K(this,"viewModelId");K(this,"eventsEditorUtils");K(this,"formSchemaUtils");K(this,"formMetadataConverter");K(this,"designViewModelUtils");K(this,"designViewModelField");K(this,"controlCreatorUtils");K(this,"designerHostService");K(this,"designerContext");K(this,"schemaService",null);K(this,"metadataService",null);K(this,"propertyConfig",{type:"object",categories:{}});var r;this.componentId=e,this.designerHostService=n,this.eventsEditorUtils=n.eventsEditorUtils,this.formSchemaUtils=n.formSchemaUtils,this.formMetadataConverter=n.formMetadataConverter,this.viewModelId=((r=this.formSchemaUtils)==null?void 0:r.getViewModelIdByComponentId(e))||"",this.designViewModelUtils=n.designViewModelUtils,this.controlCreatorUtils=n.controlCreatorUtils,this.metadataService=n.metadataService,this.schemaService=n.schemaService,this.designerContext=n.designerContext}getFormDesignerInstance(){var e,n;return(n=(e=this.designerContext)==null?void 0:e.instances)==null?void 0:n.formDesigner.value}getTableInfo(){var e;return(e=this.schemaService)==null?void 0:e.getTableInfoByViewModelId(this.viewModelId)}setDesignViewModelField(e){var r;const n=e.binding&&e.binding.type==="Form"&&e.binding.field;if(n){if(!this.designViewModelField){const i=this.designViewModelUtils.getDgViewModel(this.viewModelId);this.designViewModelField=i.fields.find(a=>a.id===n)}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,n={},r){const i={title:"外观",description:"Appearance"},a={class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"},style:{title:"style样式",type:"string",description:"组件的样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"}};for(const s in n)a[s]=Object.assign(a[s]||{},n[s]);return{...i,properties:{...a},setPropertyRelates(s,u){if(s){switch(s&&s.propertyID){case"class":case"style":{Re.value++;break}}r&&r(s,e,u)}}}}getPropertyEditorParams(e,n=[],r="visible",i={},a={}){const{getVariables:s,getControlName:u,getStateMachines:l}=So(this.designerHostService),c=this.getRealTargetType(e),m=n&&n.length>0?n:["Const","Variable","StateMachine","Expression"],d={type:"property-editor",propertyTypes:m};return m.map(h=>{switch(h){case"Const":Object.assign(d,{constType:"enum",constEnums:[{id:!0,name:"是"},{id:!1,name:"否"}]},i);break;case"Expression":d.expressionConfig=this.getExpressionOptions(e,c,r);break;case"StateMachine":d.stateMachines=l();break;case"Variable":Object.assign(d,{controlName:u(e),newVariablePrefix:"is",newVariableType:"Boolean",variables:s(this.viewModelId),onBeforeOpenVariables:f=>{f.value=s(this.viewModelId)}},a);break}}),d}getVisibleProperty(e,n=""){var a;let r=["Const","Variable","StateMachine","Expression"];return n==="gridFieldEditor"?r=["Const","Expression"]:n==="form-group"&&!((a=e.binding)!=null&&a.field)&&(r=["Const","Variable","StateMachine"]),{visible:{title:"是否可见",type:"boolean",description:"运行时组件是否可见",editor:this.getPropertyEditorParams(e,r,"visible")}}}getBehaviorConfig(e,n="",r={},i){const a={title:"行为",description:""},s=this.getVisibleProperty(e,n);for(const l in r)s[l]=Object.assign(s[l]||{},r[l]);const u=this;return{...a,properties:{...s},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,n){this.addNewVariableToViewModel(n,this.viewModelId),this.updateExpressionValue(n),this.clearExpression(n,e)}updateElementByParentContainer(e,n){const r=n&&n.parent&&n.parent.schema;if(!r)return;const i=r.contents.findIndex(s=>s.id===e),a=se.cloneDeep(r.contents[i]);r.contents.splice(i,1),r.contents.splice(i,0,a),wo()}addNewVariableToViewModel(e,n){const r=e.propertyValue;if(!(r&&typeof r=="object")||!(r.type==="Variable"&&r.isNewVariable))return;const s={id:r.field,category:"locale",code:r.fullPath,name:r.fullPath,type:r.newVariableType||"String"};delete r.newVariableType,delete r.isNewVariable,this.formSchemaUtils.getVariableByCode(s.code)||this.formSchemaUtils.getViewModelById(n).states.push(s)}updateExpressionValue(e){const n=e.propertyValue;if(!((n&&n.type)==="Expression"&&n.expressionInfo))return;const{expressionId:a,expressionInfo:s}=n,{targetId:u,targetType:l,expressionType:c,value:m,message:d}=s,h=this.formSchemaUtils.getModule();h.expressions=h.expressions||[];const{expressions:f}=h;let p=f.find(C=>C.target===u);p||(p={target:u,rules:[],targetType:l},f.push(p));const b=p.rules.find(C=>C.type===c);if(b)b.value=m,b.message=d;else{const C={id:a,type:c,value:m,message:d};p.rules.push(C)}delete n.expressionInfo}clearExpression(e,n){const r=e.propertyValue;if(r&&r.type==="Expression")return;const a=e.propertyID,s=this.formSchemaUtils.getExpressions(),u=n.binding?n.binding.field:n.id,l=s.find(c=>c.target===u);!l||!l.rules||(l.rules=l.rules.filter(c=>c.type!==a))}getExpressionOptions(e,n,r){return new To(this.formSchemaUtils).getExpressionOptions(e,n,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 n={};return n[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)}}},n}}class Mo extends ut{constructor(e,n){super(e,n)}getPropertyConfig(e){const n=this.getBasicPropConfig(e),r=this.getAppearanceProperties(e),i=this.getBehaviorConfig(e,""),a=this.getExtendConfig(e),s=this.getHeaderTemplateConfig(e);return this.propertyConfig.categories={basic:n,appearance:r,behavior:i,headerTemplate:s,extend:a},this.propertyConfig}getAppearanceProperties(e){return{title:"外观",description:"Appearance",properties:{class:{description:"组件的CSS样式",title:"class样式"},style:{description:"组件的内容样式",title:"style样式"},fill:{title:"填充内容区域",type:"boolean",description:""},showHeader:{title:"显示标题栏区域",type:"boolean",description:"",refreshPanelAfterChanged:!0},mainTitle:{title:"主标题",type:"string",description:"",visible:{showHeader:!0}},subTitle:{title:"副标题",type:"string",description:"",visible:{showHeader:!0}},enableAccordion:{title:"面板收折",type:"enum",description:"是否启用分组面板的收折特性",editor:{type:"combo-list",textField:"value",valueField:"key",idField:"key",editable:!1,data:[{key:"",value:"不启用"},{key:"default",value:"启用默认收折"}]},refreshPanelAfterChanged:!0},expandStatus:{title:"默认状态",type:"boolean",description:"默认面板是展开还是收起",editor:{type:"combo-list",textField:"name",valueField:"value",data:[{name:"展开",value:!0},{name:"收起",value:!1}],enableClear:!1},visible:e.enableAccordion==="default"}},setPropertyRelates(n,r){if(n)switch(n&&n.propertyID){case"mainTitle":{n.needRefreshControlTree=!0;break}case"showHeader":{const i=document.getElementsByClassName("dgComponentFocused");Array.from(i).f