@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
1 lines • 78.4 kB
JavaScript
(function(N,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("vue"),require("../dynamic-resolver/index.umd.js"),require("../designer-canvas/index.umd.js"),require("../common/index.umd.js"),require("../condition/index.umd.js"),require("../query-solution/index.umd.js"),require("../notify/index.umd.js"),require("../locale/index.umd.js"),require("lodash-es"),require("../dynamic-form/index.umd.js"),require("../radio-group/index.umd.js"),require("../combo-list/index.umd.js"),require("../designer-canvas/index.umd.js/")):typeof define=="function"&&define.amd?define(["exports","vue","../dynamic-resolver/index.umd.js","../designer-canvas/index.umd.js","../common/index.umd.js","../condition/index.umd.js","../query-solution/index.umd.js","../notify/index.umd.js","../locale/index.umd.js","lodash-es","../dynamic-form/index.umd.js","../radio-group/index.umd.js","../combo-list/index.umd.js","../designer-canvas/index.umd.js/"],s):(N=typeof globalThis<"u"?globalThis:N||self,s(N["filter-bar"]={},N.Vue,N.dynamicResolver,N.designerCanvas,N.common,N.condition,N.querySolution,N.notify,N.locale,N.LodashES,N.dynamicForm,N.radioGroup,N.comboList,N._))})(this,function(N,s,q,b,A,Q,K,we,te,z,ee,Ie,ie,xe){"use strict";var Vt=Object.defineProperty;var Tt=(N,s,q)=>s in N?Vt(N,s,{enumerable:!0,configurable:!0,writable:!0,value:q}):N[s]=q;var I=(N,s,q)=>Tt(N,typeof s!="symbol"?s+"":s,q);const ne=new Map([["appearance",q.resolveAppearance]]);function Ve(i,t){const e=t==null?void 0:t.formSchemaUtils,n=t==null?void 0:t.messagerService,r=i.parentComponentInstance,l="54bddc89-5f7e-4b91-9c45-80dd6606cfe9";function a(){const o=q.getSchemaByType(b.DgControl["content-container"].type),u=q.getSchemaByType(b.DgControl["filter-bar"].type);if(!o||!u)return;const h=Math.random().toString(36).substr(2,4);Object.assign(o,{id:"filter-container-"+h,appearance:{class:"f-filter-container"},contents:[u]}),Object.assign(u,{id:"filter-"+h,fields:[]});const d=r.belongedComponentId,f=e.getViewModelIdByComponentId(d),g=e.getViewModelById(f);return g!=null&&g.states&&(g.states.find(C=>C.code==="originalFilterConditionList")||g.states.push({id:A.useGuid().guid(),category:"locale",code:"originalFilterConditionList",name:"筛选条过滤条件",type:"String"})),{filterBar:u,filterBarContainer:o}}function y(o){const u=e.getViewModelIdByComponentId(r.belongedComponentId),h=e.getViewModelById(u);let d;if(h&&h.commands){if(d=h.commands.find(g=>g.handlerName==="Filter"&&g.cmpId===l),!d)d={id:A.useGuid().guid(),code:`${h.id.replace(/-/g,"").replace("component","").replace("viewmodel","")}Filter1`,name:"过滤并加载数据1",params:[{name:"filter",shownName:"过滤条件",value:`{UISTATE~/#{${r.belongedComponentId}}/originalFilterConditionList}`,defaultValue:null},{name:"sort",shownName:"排序条件",value:"",defaultValue:null}],handlerName:"Filter",cmpId:l},h.commands.push(d);else if(d.params&&d.params.length){const g=d.params.find(C=>C.name==="filter");g&&(g.value=`{UISTATE~/#{${r.belongedComponentId}}/originalFilterConditionList}`)}}const f=e.getCommands();if(f){let g=f.find(C=>C.id===l);g||(g={id:l,path:"igix/Web/WebCmp/bo-webcmp/metadata/webcmd/data-commands",name:"LoadCommands.webcmd",refedHandlers:[]},e.getCommands().push(g)),d&&!g.refedHandlers.find(C=>C.host===d.id)&&g.refedHandlers.push({host:d.id,handler:"Filter"})}o&&d&&(o.onQuery=d.code)}function c(o,u){const h=e.getViewModelById(u.viewModel),d="8fe977a1-2b32-4f0f-a6b3-2657c4d03574",f=[];let g=h.commands.find(v=>v.handlerName==="loadFullTree"&&v.cmpId===d);if(g)g.params&&g.params.length&&g.params.map(v=>{v.name==="fullTreeType"&&(v.value="0"),v.name==="loadType"&&(v.value="1"),v.name==="filters"&&(v.value=`{UISTATE~/#{${r.belongedComponentId}}/originalFilterConditionList}`)});else{const v=A.useGuid().guid();g={id:v,code:"treegridLoadFullTree1",name:"以完整树形结构加载数据1",params:[{name:"fullTreeType",shownName:"是否是完整树加载",value:"0"},{name:"loadType",shownName:"是否分级加载",value:"1"},{name:"filters",shownName:"过滤条件",value:`{UISTATE~/#{${r.belongedComponentId}}/originalFilterConditionList}`,defaultValue:null}],handlerName:"loadFullTree",cmpId:d},h.commands.push(g),f.push({host:v,handler:"loadFullTree"})}if(!h.commands.find(v=>v.handlerName==="LoadFullTreeChildren"&&v.cmpId===d)){const v=A.useGuid().guid();h.commands.push({id:v,code:"treegridLoadFullTreeChildren1",name:"以完整树形结构加载下级数据1",params:[{name:"commandName",shownName:"数据加载的命令编号",value:g.code},{name:"frameId",shownName:"目标组件",value:u?`#{${u.id}}`:""}],handlerName:"LoadFullTreeChildren",cmpId:d}),f.push({host:v,handler:"LoadFullTreeChildren"})}if(!h.commands.find(v=>v.handlerName==="LoadFullTreeInit"&&v.cmpId===d)){const v=A.useGuid().guid();h.commands.push({id:v,code:"treegridLoadFullTreeInit1",name:"加载完整树初始化1",params:[{name:"fullTreeType",shownName:"完整树类型",value:"0",defaultValue:null},{name:"loadType",shownName:"分级加载方式",value:"1",defaultValue:null}],handlerName:"LoadFullTreeInit",cmpId:d}),f.push({host:v,handler:"LoadFullTreeInit"})}o.onQuery=g.code;const C=e.getFormSchema().module.webcmds;if(C){let v=C.find(E=>E.id===d);v||(v={id:d,path:"/projects/packages/Inspur.GS.Gsp.Web.WebCmp/webcmd",name:"TreeCardController.webcmd",refedHandlers:[]},e.getFormSchema().module.webcmds.push(v)),f.map(E=>{v.refedHandlers.find(P=>P.host===E.host)||v.refedHandlers.push(E)})}}function p(o){const u=r.belongedComponentId,h=e.getComponentById(u);if(!h)return;const d=e.selectNode(h,g=>g.type==="data-grid"),f=e.selectNode(h,g=>g.type==="tree-grid");if(d)return y(o),{gridType:"data-grid"};if(f)return c(o,h),{gridType:"tree-grid"}}function m(){const{filterBar:o,filterBarContainer:u}=a(),h=p(o),d=t==null?void 0:t.useFormCommand;if(d&&d.checkCommands(),(h==null?void 0:h.gridType)==="tree-grid"&&n){let f="启用成功!请参考XXX配置筛选条查询方法以及视图模型动作。";f=f.replace("XXX",'<a href="https://open.inspures.com/doc/#/doc/md/iGIX%2FiGIX_2506%2Freference-guide%2Ffarris-next%2Fformdev%2Ftreegrid-filter.md" target="_blank">在线文档</a>'),n.success(f)}return u}return{createFilterBar:m}}function re(i,t,e,n){if(e.parentComponentInstance&&n){const a=Ve(e,n).createFilterBar();if(a)return a}return t}const oe={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/filter-bar.schema.json",title:"filter-bar",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for filter-bar",type:"string"},type:{description:"The type string of filter-bar",type:"string",default:"filter-bar"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},defaultValues:{description:"",type:"array"},disabled:{type:"boolean",default:!1},visible:{description:"",type:"boolean",default:!0},fields:{description:"",type:"array"},resetText:{description:"",type:"string"}},required:["id","type"],events:{onQuery:"查询事件"}},Z={defaultValues:{type:Array,default:[]},fields:{type:Array,default:[]},mode:{type:String,default:"editable"},visible:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},resetText:{type:String,default:"清空筛选"},customClass:{type:String,default:""},customStyle:{type:String,default:""}},le=q.createPropsResolver(Z,oe,ne,re);function J(){const{getLocaleValue:i}=te.LocaleService;return{confirm:i("filterBar.confirm"),cancel:i("filterBar.cancel"),advancedFilter:i("filterBar.advancedFilter"),clearAll:i("filterBar.clearAll"),expand:i("filterBar.expand"),fold:i("filterBar.fold"),require:i("filterBar.require")}}function Te(i){return te.LocaleService.getRealPropertyValue(i,"清空筛选","filterBar.reset")}function Ee(i,t,e,n){const r=s.ref([]),l=s.ref([]),a=s.ref([]),y=s.ref("");s.ref(i.mode);const c=new Map,{createConditionValue:p}=Q.useConditionValue(),{convertToControls:m}=Q.useConditionUtils("filter-bar"),o=K.useCondition(i,t),{getFilterConditions:u}=o,{fieldToCondition:h,judgeLoadNewValue:d}=K.useSolutionUtils(),f=new we.FNotifyService,g=J();let C="[]";function v(w){return!i.disabled&&!w.value.isEmpty()}function E(w){l.value=m(w),l.value.reduce((M,O)=>(M.set(O.labelCode,O),M),c)}function P(w){const M=Array.isArray(w)?w:[];a.value=l.value.map(O=>{const V=M.find(x=>x.id===O.id);if(V){const x=h(O,V.value);return d(x,O)&&x.value.clear(),x}return h(O)})}function T(w){a.value=a.value.filter(M=>M.id!==w.id),r.value=r.value.filter(M=>M.fieldCode!==w.fieldCode),l.value=l.value.filter(M=>M.id!==w.id),t.emit("remove",w.fieldCode)}function k(){var w;i.disabled?e.value=!1:e.value=((w=a.value)==null?void 0:w.findIndex(M=>{var O;return M.value&&!((O=M.value)!=null&&O.isEmpty())}))>-1}function j(w,M=[]){const O=JSON.stringify(w||[]);O!==C&&(t.emit("conditionChange",w),C=O,M.length===0&&t.emit("query",w))}function L(){var V;k();const w=[];(a.value||[]).map(x=>{x.required&&(!x.value||x.value.isEmpty())&&w.push(x.fieldName||"")});const M=(V=a.value)==null?void 0:V.filter(x=>{var R;return x.value&&!((R=x.value)!=null&&R.isEmpty())});if(w.length>0){f.warning({message:g.require.replace("[fields]",w.join(",")),position:"top-center"});return}const O=u(M,l.value);j(O,w)}function S(w,M,O=!0){E(w),P(M),O&&L()}function F(w){w.value.clear(),r.value=r.value.filter(M=>M.fieldCode!==w.fieldCode),t.emit("clear",w.fieldCode),L()}function U(){a.value.forEach(w=>w.value.clear())}function D(){a.value.forEach(w=>{w.value.clear()}),t.emit("reset"),L(),n.resizeFilerBar()}return{clearAll:U,clearFilterItem:F,currentFilterId:y,filterFields:l,filterItems:a,fieldMap:c,loadFilterItems:S,removeFilterItem:T,reset:D,shouldShowClearButtonInFilterItem:v,handleQuery:L}}function Se(i,t,e,n){const r=s.ref([]),l=J(),a=s.ref(l.advancedFilter),y=s.ref(Te(i.resetText)),c=s.ref(!1),{clearAll:p,reset:m,filterItems:o}=e;function u(){r.value=o.value.filter(g=>g.isExtend)}u();const h=s.computed(()=>r.value&&r.value.length>0);function d(g){c.value=!0}function f(g){i.mode==="display-only"?p():m()}return()=>s.createVNode("div",{class:"f-filter-toolbars"},[h.value&&s.createVNode("button",{class:"btn btn-link",onClick:g=>d()},[a.value]),n.value&&s.createVNode("button",{class:"btn btn-link",onClick:g=>f()},[y.value])])}const Me={filterItem:{type:Object,default:null},position:{type:Object,default:null},reference:{type:Object}},Pe=Object.assign({},Ie.radioGroupProps),ke=s.defineComponent({name:"FFilterRadioGroup",props:Pe,emits:["update:modelValue","change"],setup(i,t){const e=s.ref(),{dataSource:n,displayText:r,modelValue:l}=ie.useDataSource(i,t);function a(y){r.value=y.map(p=>p[i.textField]).join(i.separator);let c="";y.length===1?c=y[0][i.valueField]:c=y.map(p=>p[i.valueField]).join(i.separator),l.value!==c&&(l.value=c,t.emit("update:modelValue",l.value),t.emit("change",l.value))}return()=>s.createVNode(ie.FComboListContainer,{style:"margin: -2px -15px;padding: 0;",ref:e,idField:i.valueField,valueField:i.valueField,textField:i.textField,titleField:i.titleField,dataSource:n.value,selectedValues:l.value,multiSelect:!1,enableSearch:!1,onSelectionChange:y=>{a(y)}},null)}}),Ne=s.defineComponent({name:"FFilterBarItemCondition",props:Me,emits:["cancel","confirm","clearFilter"],setup(i,t){const e=s.ref(z.cloneDeep(i.filterItem)),n=s.ref(),r=J(),l=s.ref("0px"),a=s.ref("0px"),y=s.ref("0px"),c=s.ref("auto"),p=s.computed(()=>({left:c.value==="auto"?"26px":"auto",right:c.value})),m=s.computed(()=>({left:l.value,top:a.value})),o=s.computed(()=>({width:y.value==="0px"?null:y.value,maxWidth:y.value==="0px"?null:y.value})),u=s.ref(),{useFilterItemsComposition:h,resolveEditorProps:d}=s.inject("useFilterItemsComposition"),{fieldMap:f}=h,{renderFieldConditionEditor:g,conditionChangeHandler:C}=Q.useConditionUtils("filter-bar"),v=s.ref("");let E=!1,P={};const T=s.ref(!0);function k(){var $,H;if(!i.reference||!u.value)return;const V=($=i.reference)==null?void 0:$.getBoundingClientRect();let x=(H=u.value)==null?void 0:H.getBoundingClientRect().width;const R=document.body.clientWidth-V.x-30,B=document.body.clientWidth-V.y-30;x>R&&x>B&&(x=Math.max(R,B)),V.left>document.body.clientWidth-x-20?(l.value=V.left+V.width-x+"px",a.value=V.top+V.height+"px",c.value="26px"):(l.value=V.left+"px",a.value=V.top+V.height+"px",c.value="auto"),y.value=x+"px"}function j(V,x,R,B){E=!0,P={value:x,editor:R,option:B}}function L(){if(!n.value)return!1;const V=n.value.parentElement,x=Array.from(V.children);return x?!!x.find(B=>!B||!B.classList?!1:B.classList.contains("popover")&&B.style.visibility==="visible"):!1}function S(V,x,R,B){C(V,x,R,B),t.emit("confirm",e.value)}function F(){const{id:V,editor:x,needEmitChange:R}=g(f,e.value,j);if(v.value="filter-panel--"+x.type,x.type==="radio-group"){const B=d(x.type,x);return T.value=!1,s.createVNode(ke,s.mergeProps(B,{modelValue:e.value.value.value,"onUpdate:modelValue":$=>e.value.value.value=$,onChange:$=>{S(e.value,$,x)}}),{default:()=>[s.createTextVNode(" ")]})}return s.createVNode(ee.FDynamicFormGroup,{showLabelType:"force-none",id:V,key:V,editor:x,modelValue:e.value.value.value,"onUpdate:modelValue":B=>e.value.value.value=B,onChange:(B,$)=>{R&&j(e.value,B,x,$)}},null)}s.onMounted(()=>{k()});function U(V){const x=v.value.replace("filter-panel--","");["input","radio-group","switch"].findIndex(R=>R===x)>-1?t.emit("cancel"):L()||t.emit("cancel")}function D(V){V.stopPropagation(),E&&C(e.value,P.value,P.editor,P.option),t.emit("confirm",e.value)}function w(V){e.value.value.clear(),V.stopPropagation(),t.emit("confirm",e.value)}function M(){const V=A.getMaxZIndex();return{zIndex:Math.max(V,1050)}}const O=M();return()=>s.createVNode("div",{class:"f-filter-panel-wrapper can-close",ref:n,onClick:U,style:{zIndex:O}},[s.createVNode("div",{class:"f-filter-panel "+v.value,ref:u,style:m.value},[s.createVNode("div",{class:"f-filter-panel-inner",style:o.value,onClick:V=>V.stopPropagation()},[s.createVNode("div",{class:"f-filter-panel-arrow",style:p.value},null),F(),T.value&&s.createVNode("div",{class:"f-filter-panel-footer"},[s.createVNode("div",{class:"filter-panel-clear"},[s.createVNode("button",{class:"btn btn-link",onClick:w,style:"padding-left:0;"},[r.clearAll])]),s.createVNode("div",{class:"filter-panel-btns"},[s.createVNode("button",{class:"btn btn-secondary can-close",onClick:U},[r.cancel]),s.createVNode("button",{class:"filter-panel-submit btn btn-primary",onClick:D},[r.confirm])])])])])])}}),se={filterItem:{type:Object,default:null},disabled:{type:Boolean,default:!1}},Be=s.defineComponent({name:"FFilterBarItem",props:se,emits:["confirm"],setup(i,t){const e=s.ref(i.filterItem),{useFilterItemsComposition:n}=s.inject("useFilterItemsComposition"),{clearFilterItem:r,currentFilterId:l,removeFilterItem:a,shouldShowClearButtonInFilterItem:y}=n,c=s.ref(!1),p=s.ref(!1),m=s.ref(),o=s.ref(""),u=s.ref(),h=function(){return{"f-filter-item":!0,"f-state-disabled":i.disabled,"f-filter-item-actived":!e.value.value.isEmpty(),"f-filter-item-edit":e.value.id===l.value||c.value}};s.computed(()=>!i.disabled&&i.mode==="editable");function d(T){i.disabled||(i.mode==="display-only"?a(e.value):r(e.value))}function f(T){i.disabled||(c.value=!0)}function g(){c.value=!1}function C(){u.value&&u.value.scrollWidth>u.value.clientWidth?o.value=u.value.innerHTML:o.value=""}function v(T){c.value=!1,e.value.value=T.value,t.emit("confirm",T),s.nextTick(()=>{C()})}function E(){p.value=i.disabled?!1:y(e.value)}function P(){p.value=!1}return s.onMounted(()=>{C()}),()=>s.createVNode("div",{key:e.value.id,id:e.value.id,class:h(),onMouseenter:()=>E(),onMouseleave:()=>P()},[s.createVNode("div",{class:"f-filter-item-inner",ref:m,onClick:T=>f()},[e.value.required&&s.createVNode("span",{class:"f-filter-item-required text-danger"},[s.createTextVNode("*")]),s.createVNode("span",{class:"f-filter-item-text"},[e.value.fieldName]),!e.value.value.isEmpty()&&s.createVNode(s.Fragment,null,[s.createVNode("span",{class:"f-filter-item-tip"},[s.createTextVNode(":")]),s.createVNode("span",{class:"f-filter-item-content",ref:u,title:o.value},[e.value.value.getDisplayText()])]),!i.disabled&&s.createVNode("span",{class:"f-filter-item-arrow f-icon f-icon-arrow-chevron-down"},null)]),p.value&&s.createVNode("span",{class:"mr-3 f-filter-item-clear",onClick:T=>d()},[s.createVNode("span",{class:"f-icon f-icon-close-circle"},null)]),c.value&&s.createVNode(s.Teleport,{to:"body"},{default:()=>[s.createVNode(Ne,{filterItem:e.value,reference:m.value,onConfirm:v,onCancel:g},null)]})])}});function ae(i,t){const e=s.ref(null),n=15;let r=0;function l(c=-1,p=-1){var d;if(!i.value)return;const m=(d=i.value)==null?void 0:d.querySelector(".f-filter-list");if(!m)return;const o=m.children;if(!o||o.length===0||(c<0&&(c=i.value.clientWidth),r=p<0?r:p,Math.abs(c-r)<n))return;Array.from(o).forEach(f=>{f.style.display="flex"}),t.value=m.clientWidth<m.scrollWidth;let u=!1,h=0;for(let f=0;f<o.length;f++){const g=o[f],C=Math.ceil(g.offsetWidth+(parseFloat(getComputedStyle(g).marginRight)||0)+parseFloat(getComputedStyle(g).marginLeft));!u&&h+C<=c?h+=C:(g.style.display="none",u=!0)}r=c}function a(){var p,m;if(!i.value)return;(p=e.value)==null||p.unobserve(i.value);const c=((m=i.value.querySelector(".f-filter-list"))==null?void 0:m.children)||[];Array.from(c).forEach(o=>{o.style.display="flex"}),r=0}function y(){if(!i.value)return;const c=new ResizeObserver(p=>{const m=p[0].contentRect.width;l(m)});return c.observe(i.value),e.value=c,c}return{setupWidthObserver:y,cancelWidthObserver:a,handleVisibleChildren:l}}const G=s.defineComponent({name:"FFilterBar",props:Z,emits:["clear","remove","reset","conditionChange","change","query"],setup(i,t){const e=s.ref(!1),n=s.ref(!1),r=s.ref(null),l=s.ref(!1),a=s.ref(0),y=ae(r,n),{cancelWidthObserver:c,setupWidthObserver:p,handleVisibleChildren:m}=y,o={resizeFilerBar:()=>{e.value||s.nextTick(()=>{m(-1,0)})}},u=Ee(i,t,l,o),{filterFields:h,filterItems:d,loadFilterItems:f,handleQuery:g}=u,{resolveEditorProps:C}=ee.useTypeResolver();s.provide("useFilterItemsComposition",{useFilterItemsComposition:u,resolveEditorProps:C});const v=J(),E=s.computed(()=>{const D={display:h.value&&h.value.length?"":"none"};return A.getCustomStyle(D,i==null?void 0:i.customStyle)});f(i.fields,i.defaultValues,!!(i.defaultValues&&i.defaultValues.length>0)),s.watch([()=>i.defaultValues,()=>i.fields],([D,w])=>{f(w,D),a.value++,o.resizeFilerBar()}),s.onMounted(()=>{p()}),s.onUnmounted(()=>{c()});const P=s.computed(()=>({"f-filter-list":!0,"f-filter-list-extend":e.value})),T=s.computed(()=>({"extend-btn-arrow":!0,"f-icon":!0,"f-icon-arrow-chevron-up":e.value,"f-icon-arrow-chevron-down":!e.value})),k=s.computed(()=>!e.value&&n.value);function j(){e.value=!e.value,e.value?c():p()}const L=Se(i,t,u,l);function S(D){t.emit("change",D),g(),o.resizeFilerBar()}function F(){return s.createVNode("div",{class:P.value,key:i.id+"-main-"+a.value},[d.value.map((D,w)=>!D.isExtend&&s.createVNode(Be,{filterItem:D,onConfirm:S,disabled:i.disabled||D.disabled},null)),e.value&&L()])}function U(){return k.value&&s.createVNode("div",{class:"f-filter-list-ellipsis",onClick:D=>j()},[s.createTextVNode("...")])}return()=>s.createVNode("div",{class:"f-filter-wrapper "+i.customClass,style:E.value},[s.createVNode("div",{class:"f-filter-wrapper-inner f-utils-fill"},[s.createVNode("div",{class:"f-filter-main f-utils-fill"},[s.createVNode("div",{class:"f-filter-list-wrapper flex-fill",ref:r},[F()]),U(),!e.value&&L()]),n.value&&s.createVNode("div",{class:"f-filter-extend-btn"},[s.createVNode("button",{class:"btn btn-link",onClick:j},[s.createVNode("span",{class:"extend-btn-text"},[e.value?v.fold:v.expand]),s.createVNode("span",{class:T.value},null)])])])])}});function Le(i,t){s.ref([]);const e=s.ref([]),n=s.ref([]),r=s.ref("");s.ref(!1),s.ref(i.mode);const l=new Map,{convertToControls:a}=Q.useConditionUtils("filter-bar"),{fieldToCondition:y}=K.useSolutionUtils();function c(u){return!u.value.isEmpty()}function p(u){e.value=z.cloneDeep(u),e.value.reduce((h,d)=>(h.set(d.labelCode,d),h),l)}function m(u){n.value=e.value.map(h=>y(h))}function o(u,h){p(u),m()}return o(i.fields),{currentFilterId:r,filterFields:e,filterItems:n,fieldMap:l,loadFilterItems:o,shouldShowClearButtonInFilterItem:c}}function De(i,t,e){const n=s.ref([]),r=s.ref("更多筛选"),{filterItems:l}=e;function a(){n.value=l.value.filter(c=>c.isExtend)}a();const y=s.computed(()=>n.value&&n.value.length>0);return()=>s.createVNode("div",{class:"f-filter-toolbars"},[y.value&&s.createVNode("button",{class:"btn btn-link"},[r.value])])}const Oe=s.defineComponent({name:"FFilterBarItemDesign",props:se,emits:["confirm"],setup(i,t){const e=s.ref(i.filterItem),{useFilterItemsComposition:n}=s.inject("useFilterItemsComposition"),{currentFilterId:r,shouldShowClearButtonInFilterItem:l}=n,a=s.ref(i.disabled),y=function(){return{"f-filter-item":!0,"f-filter-item-actived":!e.value.value.isEmpty(),"f-filter-item-edit":e.value.id===r.value}};return()=>s.createVNode("div",{key:e.value.id,id:e.value.id,class:y()},[s.createVNode("div",{class:"f-filter-item-inner"},[e.value.required&&s.createVNode("span",{class:"f-filter-item-required text-danger"},[s.createTextVNode("*")]),s.createVNode("span",{class:"f-filter-item-text"},[e.value.fieldName]),e.value.value.getDisplayText()&&s.createVNode(s.Fragment,null,[s.createVNode("span",{class:"f-filter-item-tip"},[s.createTextVNode(":")]),s.createVNode("span",{class:"f-filter-item-content"},[e.value.value.getDisplayText()])]),!a.value&&s.createVNode("span",{class:"f-filter-item-arrow f-icon f-icon-arrow-chevron-down"},null)]),l(e.value)&&s.createVNode("span",{class:"mr-3 f-filter-item-clear"},[s.createVNode("span",{class:"f-icon f-icon-close-circle"},null)])])}});function je(i){const{formSchemaUtils:t,formStateMachineUtils:e}=i;function n(c,p=""){return{path:p+c.code,field:c.id,fullPath:c.code}}function r(c,p=""){const m=t.getViewModelById(c);return m?m.states.map(o=>n(o,p)):[]}function l(c){const p=t.getRootViewModelId(),m=r(c);if(c===p)return m;const o=r(p,"root-component.");return[...m,...o]}function a(c){return c.binding&&c.binding.path||c.id||""}function y(){return e&&e.getRenderStates()||[]}return{getVariables:l,getControlName:a,getStateMachines:y}}class Re{constructor(t){I(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'"}]);I(this,"expressionNames",{compute:"计算表达式",dependency:"依赖表达式",validate:"验证表达式",dataPicking:"帮助前表达式",visible:"可见表达式",readonly:"只读表达式",required:"必填表达式"});I(this,"getExpressionConverter",(t,e)=>({convertFrom:(n,r,l,a)=>{const y=l.getExpressionRuleValue(t,e||r);return y&&y.value||""},convertTo:(n,r,l,a,y)=>{var c;if(r==="dataPicking"&&(l!=null&&l.target)){const p=`${l.target}_dataPicking`;((c=l.rules)==null?void 0:c.some(o=>o.id===p&&o.value))?n.dictPickingExpressionId=p:delete n.dictPickingExpressionId}a.updateExpression(l)}}));this.formSchemaService=t}getExpressionRule(t,e){const n=this.getExpressionData();if(!n)return"";const r=n.find(a=>a.target===t);if(!r)return"";const l=r.rules.find(a=>a.type===e);return l||""}getContextFormVariables(){const{module:t}=this.formSchemaService.getFormSchema();if(!t.viewmodels||t.viewmodels.length===0)return[];const e=this.formSchemaService.getRootViewModelId(),n=this.formSchemaService.getViewModelById(e);if(!n||!n.states||n.states.length===0)return[];const r=[];return n.states.filter(l=>l.category==="remote").forEach(l=>{r.push({key:l.code,name:l.name,description:l.name,category:l.category})}),r}createTreeNode(t,e,n="label"){return{id:t.id,name:t.name,bindingPath:t[n],parents:e,type:"field"}}buildEntityFieldsTreeData(t=null,e){const n=[];return t==null||t.forEach(r=>{var y;const l=this.createTreeNode(r,e);let a=[];(y=r.type)!=null&&y.fields&&(a=this.buildEntityFieldsTreeData(r.type.fields,[...e,r.label])),n.push({data:l,children:a,expanded:!0})}),n}buildChildEntityTreeData(t=null,e){const n=[];return t==null||t.forEach(r=>{var c,p;const l=this.createTreeNode(r,e);l.type="entity";const a=this.buildEntityFieldsTreeData((c=r.type)==null?void 0:c.fields,[...e,r.label]),y=this.buildChildEntityTreeData((p=r.type)==null?void 0:p.entities,[...e,r.label]);y!=null&&y.length&&(a==null||a.push(...y)),n.push({data:l,children:a||[],expanded:!0})}),n}getEntitiesTreeData(){const t=this.formSchemaService.getSchemaEntities();if(!(t!=null&&t.length))return[];const e=t[0];if(!(e!=null&&e.type))return[];const n=this.buildEntityFieldsTreeData(e.type.fields,[e.code]),r=this.buildChildEntityTreeData(e.type.entities,[e.code]);return r!=null&&r.length&&(n==null||n.push(...r)),{entityCode:e.code,fields:[{data:this.createTreeNode(e,[],"code"),children:n||[]}]}}getEntitiesAndVariables(){return{entities:this.getEntitiesTreeData(),variables:{session:{name:"系统变量",items:this.sessionVariables,visible:!1},forms:{name:"表单变量",items:this.getContextFormVariables(),visible:!0}}}}onBeforeOpenExpression(t,e,n){const r=n==="Field"?t.binding.field:t.id,l=this.getExpressionRule(r,e),a=this.getEntitiesAndVariables(),y={message:["validate","required","dataPicking"].includes(e)&&l?l.message:"",...a};return l.messageType!=null&&(y.messageType=l.messageType),y}buildRule(t,e,n,r){const{expression:l,message:a,messageType:y}=e,c={id:`${t}_${n}`,type:n,value:l};return(n==="validate"||n==="dataPicking"||n==="required")&&(c.message=a),n==="dataPicking"&&(c.messageType=y),n==="validate"&&r&&(c.elementId=r),c}getExpressionData(){const{expressions:t}=this.formSchemaService.getFormSchema().module;return t||[]}updateExpression(t,e,n,r){const l=e==="Field"?t.binding.field:t.id,a=this.buildRule(l,n,r,t.type==="form-group"?t.id:"");let c=this.getExpressionData().find(m=>m.targetType===e&&m.target===l);const p=m=>m.value.trim()==="";if(c){const m=c.rules.find(o=>o.id===a.id);if(m)p(a)?c.rules=c.rules.filter(o=>o.id!==a.id):(Object.assign(m,a),r==="validate"&&t.type==="form-group"&&(m.elementId=t.id));else{if(p(a))return null;c.rules=c.rules||[],c.rules.push(a)}}else{if(p(a))return null;c={target:`${l}`,rules:[a],targetType:e}}return c}getExpressionEditorOptions(t,e,n,r){return n.reduce((l,a)=>{var c,p;const y=e==="Field"?(c=t==null?void 0:t.binding)==null?void 0:c.field:t.id;return l[a]={hide:e==="Field"?!!((p=t==null?void 0:t.binding)!=null&&p.field):!1,description:"",title:this.expressionNames[a],type:"string",$converter:this.getExpressionConverter(y),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(t,a,e),onSubmitModal:m=>{const o=this.updateExpression(t,e,m,a);if(r){const u=this.buildRule(y,m,a);r(u)}return o}}},l},{})}getExpressionInfo(t,e,n){const r=e==="Field"?t.binding.field:t.id,l=this.getExpressionRule(r,n),a={value:l&&l.value,targetId:r,targetType:e,expressionType:n};return l&&l.message&&(a.message=l.message),a}getExpressionConfig(t,e,n=["compute","dependency","validate"],r){return{description:"表达式",title:"表达式",hide:!t.binding,properties:{...this.getExpressionEditorOptions(t,e,n,r)}}}getExpressionOptions(t,e,n){const r=this.getExpressionInfo(t,e,n);return{dialogTitle:`${this.expressionNames[n]||"表达式"}编辑器`,singleExpand:!1,showMessage:n==="required",beforeOpen:()=>this.onBeforeOpenExpression(t,n,e),expressionInfo:r}}}class Ue{constructor(t,e){I(this,"componentId");I(this,"viewModelId");I(this,"eventsEditorUtils");I(this,"formSchemaUtils");I(this,"formMetadataConverter");I(this,"designViewModelUtils");I(this,"designViewModelField");I(this,"controlCreatorUtils");I(this,"designerHostService");I(this,"designerContext");I(this,"modalService",null);I(this,"formRule",null);I(this,"schemaService",null);I(this,"metadataService",null);I(this,"propertyConfig",{type:"object",categories:{}});I(this,"expressionProperty");var n;this.componentId=t,this.designerHostService=e,this.eventsEditorUtils=e.eventsEditorUtils,this.formSchemaUtils=e.formSchemaUtils,this.formMetadataConverter=e.formMetadataConverter,this.viewModelId=((n=this.formSchemaUtils)==null?void 0:n.getViewModelIdByComponentId(t))||"",this.designViewModelUtils=e.designViewModelUtils,this.controlCreatorUtils=e.controlCreatorUtils,this.metadataService=e.metadataService,this.schemaService=e.schemaService,this.designerContext=e.designerContext,this.modalService=e.modalService,this.expressionProperty=new Re(this.formSchemaUtils)}getFormDesignerInstance(){var t,e;return(e=(t=this.designerContext)==null?void 0:t.instances)==null?void 0:e.formDesigner.value}getTableInfo(){var t;return(t=this.schemaService)==null?void 0:t.getTableInfoByViewModelId(this.viewModelId)}setDesignViewModelField(t){var n;const e=t.binding&&t.binding.type==="Form"&&t.binding.field;if(e){if(!this.designViewModelField){const r=this.designViewModelUtils.getDgViewModel(this.viewModelId);this.designViewModelField=r.fields.find(l=>l.id===e)}t.updateOn=(n=this.designViewModelField)==null?void 0:n.updateOn}}getBasicPropConfig(t){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:t.type,name:b.DgControl[t.type]&&b.DgControl[t.type].name}]}}}}}getAppearanceConfig(t=null,e={},n){const r={title:"外观",description:"Appearance"},l={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 e)l[a]=Object.assign(l[a]||{},e[a]);return{...r,properties:{...l},setPropertyRelates(a,y){if(a){switch(a&&a.propertyID){case"class":case"style":{b.canvasChanged.value++;break}}n&&n(a,t,y)}}}}getPropertyEditorParams(t,e=[],n="visible",r={},l={},a=""){const{getVariables:y,getControlName:c,getStateMachines:p}=je(this.designerHostService),m=this.getRealTargetType(t),o=e&&e.length>0?e:["Const","Variable","StateMachine","Expression"],u={type:"property-editor",propertyTypes:o};return o.map(h=>{switch(h){case"Const":Object.assign(u,{constType:"enum",constEnums:[{id:!0,name:"是"},{id:!1,name:"否"}]},r);break;case"Expression":u.expressionConfig=this.getExpressionOptions(t,m,a||n);break;case"StateMachine":u.stateMachines=p();break;case"Variable":Object.assign(u,{controlName:c(t),newVariablePrefix:"is",newVariableType:"Boolean",variables:y(this.viewModelId),parentComponentId:this.componentId==="root-component"?"":"root-component",onBeforeOpenVariables:d=>{d.value=y(this.viewModelId)}},l),this.designerContext.designerMode==="PC_RTC"&&(u.newVariablePrefix="ext_"+u.newVariablePrefix);break}}),u}getVisibleProperty(t,e=""){var l;let n=["Const","Variable","StateMachine","Expression"];return e==="gridFieldEditor"?n=["Const","Expression"]:e==="form-group"&&!((l=t.binding)!=null&&l.field)&&(n=["Const","Variable","StateMachine"]),{visible:{title:"是否可见",type:"boolean",description:"运行时组件是否可见",editor:this.getPropertyEditorParams(t,n,"visible")}}}getBehaviorConfig(t,e="",n={},r){const l={title:"行为",description:""},a=this.getVisibleProperty(t,e);for(const c in n)a[c]=Object.assign(a[c]||{},n[c]);const y=this;return{...l,properties:{...a},setPropertyRelates(c,p){if(c){switch(c.propertyID){case"disabled":case"readonly":case"visible":y.afterMutilEditorChanged(t,c);break}r&&r(c,p)}}}}afterMutilEditorChanged(t,e){this.addNewVariableToViewModel(e,this.viewModelId),this.updateExpressionValue(e,t),this.clearExpression(e,t)}updateElementByParentContainer(t,e){const n=e&&e.parent&&e.parent.schema;if(!n)return;const r=n.contents.findIndex(a=>a.id===t),l=z.cloneDeep(n.contents[r]);n.contents.splice(r,1),n.contents.splice(r,0,l),b.refreshCanvas()}addNewVariableToViewModel(t,e){const n=t.propertyValue;if(!(n&&typeof n=="object")||!(n.type==="Variable"&&n.isNewVariable))return;const a={id:n.field,category:"locale",code:n.fullPath,name:n.fullPath,type:n.newVariableType||"String",isRtcVariable:this.designerContext.designerMode==="PC_RTC"?!0:void 0};delete n.newVariableType,delete n.isNewVariable,this.formSchemaUtils.getVariableByCode(a.code)||this.formSchemaUtils.getViewModelById("root-viewmodel").states.push(a)}getExpressions(){let t=[];return this.formRule?(this.formRule.expressions=this.formRule.expressions||[],t=this.formRule.expressions||[]):t=this.formSchemaUtils.getExpressions(),t}updateExpressionValue(t,e){const n=t.propertyValue;if(!((n&&n.type)==="Expression"&&n.expressionInfo))return;const{expressionId:a,expressionInfo:y}=n,{targetId:c,targetType:p,expressionType:m,value:o,message:u}=y,h=this.getExpressions();let d=h.find(g=>g.target===c);d||(d={target:c,rules:[],targetType:p},h.push(d));const f=d.rules.find(g=>g.type===m);if(f)f.value=o,f.message=u,(m==="minDate"||m==="maxDate"||m==="defaultTime")&&(f.elementId=e.id);else{const g={id:a,type:m,value:o,message:u,elementId:e.id};d.rules.push(g)}delete n.expressionInfo}clearExpression(t,e){const n=t.propertyValue;if(n&&n.type==="Expression")return;const l=t.propertyID,a=this.getExpressions(),y=e.binding?e.binding.field:e.id,c=a.find(p=>p.target===y);!c||!c.rules||(c.rules=c.rules.filter(p=>p.type!==l))}getExpressionOptions(t,e,n){return this.expressionProperty.getExpressionOptions(t,e,n)}getRealTargetType(t){return["response-toolbar-item","tab-toolbar-item","section-toolbar-item","drawer-toolbar-item"].indexOf(t.type)>-1?"Button":t.binding&&t.binding.field?"Field":"Container"}createBaseEventProperty(t){const e={};return e[this.viewModelId]={type:"events-editor",editor:{initialData:t,viewSourceHandle:n=>{var r;((r=n.controller)==null?void 0:r.label.indexOf(this.formSchemaUtils.getModule().code))>-1&&this.eventsEditorUtils.jumpToMethod(n)}}},e}}const X=class X{static getEditorTypesByMDataType(t,e=!1,n=""){if(e)return[{key:b.DgControl["language-textbox"].type,value:b.DgControl["language-textbox"].name}];let r=X.fieldControlTypeMapping[t];if(n==="data-grid-column"&&(r!=null&&r.length)){const l=[b.DgControl["check-group"].type,b.DgControl["radio-group"].type,b.DgControl.image.type,b.DgControl["rich-text-editor"].type];r=r.filter(a=>!l.includes(a.key))}return r}static getAllInputTypes(){const t=[];for(const e in X.fieldControlTypeMapping)X.fieldControlTypeMapping[e].forEach(n=>{t.find(r=>r.key===n.key&&r.value===n.value)||t.push({key:n.key,value:n.value})});return t}static mappingDomPropAndSchemaProp(t,e){var l;const n=(l=t.editor)==null?void 0:l.type,r=[];return(t.type===b.DgControl["data-grid-column"].type||t.type===b.DgControl["tree-grid-column"].type)&&e&&e.categoryId&&e.categoryId.indexOf("gridFieldEditor")<0&&r.push({domField:"title",schemaField:"name"}),r.push({domField:"label",schemaField:"name"}),r.push({domField:"editor.required",schemaField:"require"}),r.push({domField:"editor.readonly",schemaField:"readonly"}),(n===b.DgControl["input-group"].type||n===b.DgControl.textarea.type||n===b.DgControl["number-spinner"].type)&&r.push({domField:"editor.maxLength",schemaField:"type.length"}),n===b.DgControl["number-spinner"].type&&r.push({domField:"editor.precision",schemaField:"type.precision"}),(t.type===b.DgControl["data-grid-column"].type||t.type===b.DgControl["tree-grid-column"].type)&&r.push({domField:"formatter.precision",schemaField:"type.precision"}),(n===b.DgControl["combo-list"].type||n===b.DgControl["radio-group"].type)&&r.push({domField:"editor.data",schemaField:"type.enumValues"}),(t.type===b.DgControl["data-grid-column"].type||t.type===b.DgControl["tree-grid-column"].type)&&r.push({domField:"formatter.data",schemaField:"type.enumValues"}),n===b.DgControl["date-picker"].type&&(r.push({domField:"editor.displayFormat",schemaField:"editor.format"}),r.push({domField:"editor.fieldType",schemaField:"type.name"})),n===b.DgControl["number-spinner"].type&&(r.push({domField:"editor.max",schemaField:"editor.maxValue"}),r.push({domField:"editor.min",schemaField:"editor.minValue"})),n===b.DgControl.lookup.type&&(r.push({domField:"editor.dataSource",schemaField:"editor.dataSource"}),r.push({domField:"editor.valueField",schemaField:"editor.valueField"}),r.push({domField:"editor.textField",schemaField:"editor.textField"}),r.push({domField:"editor.displayType",schemaField:"editor.displayType"}),r.push({domField:"editor.mapFields",schemaField:"editor.mapFields"}),r.push({domField:"editor.helpId",schemaField:"editor.helpId"})),r.push({domField:"path",schemaField:"bindingPath"}),r.push({domField:"binding.path",schemaField:"bindingField"}),r.push({domField:"binding.fullPath",schemaField:"path"}),(t.type===b.DgControl["data-grid-column"].type||t.type===b.DgControl["tree-grid-column"].type)&&r.push({domField:"field",schemaField:"bindingPath"}),r}};I(X,"fieldControlTypeMapping",{String:[{key:b.DgControl["input-group"].type,value:b.DgControl["input-group"].name},{key:b.DgControl.lookup.type,value:b.DgControl.lookup.name},{key:b.DgControl.image.type,value:b.DgControl.image.name},{key:b.DgControl["date-picker"].type,value:b.DgControl["date-picker"].name},{key:b.DgControl.switch.type,value:b.DgControl.switch.name},{key:b.DgControl["check-box"].type,value:b.DgControl["check-box"].name},{key:b.DgControl["check-group"].type,value:b.DgControl["check-group"].name},{key:b.DgControl["radio-group"].type,value:b.DgControl["radio-group"].name},{key:b.DgControl["combo-list"].type,value:b.DgControl["combo-list"].name},{key:b.DgControl.textarea.type,value:b.DgControl.textarea.name},{key:b.DgControl["time-picker"].type,value:b.DgControl["time-picker"].name}],Text:[{key:b.DgControl.textarea.type,value:b.DgControl.textarea.name},{key:b.DgControl.lookup.type,value:b.DgControl.lookup.name},{key:b.DgControl.image.type,value:b.DgControl.image.name},{key:b.DgControl["rich-text-editor"].type,value:b.DgControl["rich-text-editor"].name}],Decimal:[{key:b.DgControl["number-spinner"].type,value:b.DgControl["number-spinner"].name}],Integer:[{key:b.DgControl["number-spinner"].type,value:b.DgControl["number-spinner"].name}],Number:[{key:b.DgControl["number-spinner"].type,value:b.DgControl["number-spinner"].name},{key:b.DgControl.switch.type,value:b.DgControl.switch.name},{key:b.DgControl["check-box"].type,value:b.DgControl["check-box"].name}],BigNumber:[{key:b.DgControl["number-spinner"].type,value:b.DgControl["number-spinner"].name}],Date:[{key:b.DgControl["date-picker"].type,value:b.DgControl["date-picker"].name}],DateTime:[{key:b.DgControl["date-picker"].type,value:b.DgControl["date-picker"].name}],Boolean:[{key:b.DgControl.switch.type,value:b.DgControl.switch.name},{key:b.DgControl["check-box"].type,value:b.DgControl["check-box"].name}],Enum:[{key:b.DgControl["combo-list"].type,value:b.DgControl["combo-list"].name},{key:b.DgControl["radio-group"].type,value:b.DgControl["radio-group"].name}],Object:[{key:b.DgControl.lookup.type,value:b.DgControl.lookup.name},{key:b.DgControl["combo-list"].type,value:b.DgControl["combo-list"].name},{key:b.DgControl["radio-group"].type,value:b.DgControl["radio-group"].name}]});let Y=X;var _=(i=>(i.Form="Form",i.Variable="Variable",i))(_||{});class de{constructor(){I(this,"label","");I(this,"id","");I(this,"columnInSM",12);I(this,"columnInMD",6);I(this,"columnInLG",3);I(this,"columnInEL",2);I(this,"displayWidthInSM",1);I(this,"displayWidthInMD",1);I(this,"displayWidthInLG",1);I(this,"displayWidthInEL",1);I(this,"displayColumnCountAtBreakPoint","md");I(this,"tagRow",0);I(this,"showTopBorder",0);I(this,"group",1);I(this,"isSupportedClass",!0);I(this,"fieldSetId","")}}function Ae(i){let t,e;const n=new Map;let r=[];function l(m,o){const h=((m==null?void 0:m.split(" "))||[]).filter(v=>v.startsWith("col-"));if(h.length===0){o.isSupportedClass=!1;return}let d=h.find(v=>/^col-([1-9]|10|11|12)$/.test(v)),f=h.find(v=>/^col-md-([1-9]|10|11|12)$/.test(v)),g=h.find(v=>/^col-xl-([1-9]|10|11|12)$/.test(v)),C=h.find(v=>/^col-el-([1-9]|10|11|12)$/.test(v));d=d||"col-12",o.columnInSM=parseInt(d.replace("col-",""),10),o.displayWidthInSM=o.columnInSM/12,o.displayWidthInSM!==1&&(o.isSupportedClass=!1),f=f||"col-md-"+o.columnInSM,o.columnInMD=parseInt(f.replace("col-md-",""),10),o.displayWidthInMD=o.columnInMD/6,[1,2].includes(o.displayWidthInMD)||(o.isSupportedClass=!1),g=g||"col-xl-"+o.columnInMD,o.columnInLG=parseInt(g.replace("col-xl-",""),10),o.displayWidthInLG=o.columnInLG/3,[1,2,3,4].includes(o.displayWidthInLG)||(o.isSupportedClass=!1),C=C||"col-el-"+o.columnInLG,o.columnInEL=parseInt(C.replace("col-el-",""),10),o.displayWidthInEL=o.columnInEL/2,[1,2,3,4,5,6].includes(o.displayWidthInEL)||(o.isSupportedClass=!1)}function a(m,o,u,h=!1){let d=!1;if(!m.contents||m.contents.length===0){const f=new de;l(m.layout,f),o.push(f);return}m.contents.forEach(f=>{if(f.type==="fieldset"){u+=1,a(f,o,u,!0),d=!0;return}if(f.type==="dynamic-form")return;d&&(u+=1,d=!1);const g=f.appearance&&f.appearance.class,C=new de;g?l(g,C):C.isSupportedClass=!1,C.label=f.label||f.id,C.id=f.id,C.group=u,h&&(C.fieldSetId=m.id),e===f.id&&(t=u),n.set(f.id,f),o.push(C)})}function y(m){const o=i.getComponentById(m);if(!o||!o.componentType||!o.componentType.startsWith("form"))return{result:!1,message:"只可以在响应式表单组件中调整响应式布局配置"};const u=i.selectNode(o,h=>h.type===b.DgControl["response-form"].type);return!u||!u.contents||u.contents.length===0?{result:!1,message:"Form区域内没有控件,请先添加控件"}:{result:!0,message:"",formNode:u}}function c(m,o){o=o||m.id;const{result:u,message:h,formNode:d}=y(o);if(!u)return{result:u,message:h};e=m.id,r=[],n.clear();const f=d.contents[0].type===b.DgControl.fieldset.type?0:1;a(d,r,f);const g=r.find(v=>!v.isSupportedClass);return{defaultState:{defaultGroupNumber:t||1,model:g?"customize":"standard"},importData:r}}function p(m,o){o=o;const{result:u,formNode:h}=y(o);if(!u)return"";const d=[];return m.forEach(f=>{var v;const g=n.get(f.id),C=g.appearance&&g.appearance.class;if(C){const P=C.split(" ").filter(F=>!F.startsWith("col-")),T="col-"+f.columnInSM,k="col-md-"+f.columnInMD,j="col-xl-"+f.columnInLG,L="col-el-"+f.columnInEL,S=[T,k,j,L].concat(P);g.appearance.class=S.join(" ")}if(f.fieldSetId){const E=h.contents.find(T=>T.id===f.fieldSetId),P=d.find(T=>T.id===f.fieldSetId);P?(v=P.contents)==null||v.push(g):(d.push(E),E.contents=[g])}else d.push(g)}),h.contents=d,h.id}return{checkCanFindFormNode:y,checkCanOpenLayoutEditor:c,changeFormControlsByResponseLayoutConfig:p,getResonseFormLayoutConfig:a}}class $e extends Ue{constructor(e,n){super(e,n);I(this,"responseLayoutEditorFunction");I(this,"bindingVarible");I(this,"formGroupEvents",[{label:"onClickLabel",name:"标签点击事件"}]);I(this,"numberEditorOptions",{type:"number-spinner",useThousands:!1,keyboard:!1,showButton:!1});I(this,"showCustomValue",e=>{var r;const n=this.designViewModelField!=null&&((r=this.designViewModelField)==null?void 0:r.type.name)!=="Boolean";return this.formRule?e.dataType!=="boolean":n});this.responseLayoutEditorFunction=Ae(this.formSchemaUtils)}getCommonPropertyConfig(e,n,r="Card"){this.propertyConfig.categories.basic=this.getBasicProperties(e,n,r),this.propertyConfig.categories.appearance=this.getAppearanceProperties(e,n),this.propertyConfig.categories.behavior=this.getBehaviorConfig(e,"form-group")}getPropertyConfig(e,n){return this.getCommonPropertyConfig(e,n,"Card"),this.propertyConfig.categories.editor=this.getEditorProperties(e),this.propertyConfig.categories.expressions=this.getExpressionConfig(e,"Field"),this.propertyConfig.categories.eventsEditor=this.getEventPropertyConfig(e),this.propertyConfig}getGridFieldEdtiorPropConfig(e,n){return this.propertyConfig.categories={},this.getCommonPropertyConfig(e,n,"Grid"),this.getGridFieldEdtiorProperties?this.propertyConfig.categories.editor=this.getGridFieldEdtiorProperties(e):this.propertyConfig.categories.editor=this.getEditorProperties(e),this.propertyConfig.categories.expressons=this.getExpressionConfig(e,"Field"),this.propertyConfig.categories}getBasicProperties(e,n,r="Card"){var m;const l=this;this.setDesignViewModelField(e);const{canChangeControlType:a,editorTypeList:y}=this.getAvailableEditorType(e);let c=y;this.formRule&&(c=y.filter(o=>o.key!=="image"&&o.key!=="rich-text-editor"));const p={description:"Basic Information",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"编辑器类型",title:"编辑器类型",type:"string",$converter:"/converter/change-editor.converter",parentPropertyID:"editor",editor:{type:"combo-list",textField:"value",valueField:"key",idField:"key",editable:!1,data:c,readonly:!a}},label:{title:"标签",type:"string",$converter:"/converter/form-group-label.converter"},showLabelType:{description:"标签显示方式:1、显示:显示标签 2、占位:保留标签空间,但不显示文本 3、不显示:不显示标签",title:"标签显示",type:"enum",editor:{data:[{id:"visible",name:"显示"},{id:"reserve-space",name:"占位"},{id:"none",name:"不显示"}]},defaultValue:((m=e.editor)==null?void 0:m.type)==="image"?"none":"visible"},binding:{description:"绑定的表单字段",title:"绑定",editor:{type:"binding-selector",bindingType:{enable:!1},editorParams:{componentSchema:e,needSyncToViewModel:!0,viewModelId:this.viewModelId,designerHostService:this.designerHostService,disableOccupiedFields:!0},textField:"bindingField"},refreshPanelAfterChanged:!0,readonly:this.formSchemaUtils.designerMode==="PC_RTC"&&!e.isRtcControl}},setPropertyRelates(o,u,h){if(o)switch(o&&o.propertyID){case"type":{l.changeControlType(e,o,n);break}case"label":{o.needRefreshControlTree=!0;break}case"binding":{l.changeBindingField(e,o,h);break}}}};return r.toLocaleLowerCase()!=="card"&&delete p.properties.showLabelType,p}checkCanChangeControlType(e,n){if(!e.binding)return!1;if(e.binding.type==="Variable"){if(this.bindingVarible=this.formSchemaUtils.getVariableById(e.binding.field),!this.bindingVarible)return!1}else if(!this.designViewModelField||this.designViewModelField.$type!==A.FormSchemaEntityField$Type.SimpleField)return!1;return!0}getAvailableEditorType(e){var l,a;const n=this.checkCanChangeControlType(e,this.viewModelId);if(!n)return{canChangeControlType:!1,editorTypeList:[{key:e.editor.type,value:((l=b.DgControl[e.editor.type])==null?void 0:l.name)||e.editor.type}]};let r=[];return this.designViewModelField&&this.designViewModelField.$type===A.FormSchemaEntityField$Type.SimpleField?r=Y.getEditorTypesByMDataType(this.designViewModelField.type.name,this.designViewModelField.multiLanguage):this.bindingVarible&&(r=Y.getEditorTypesByMDataType(this.bindingVarible.type,!!((a=this.designViewModelField)!=null&&a.multiLanguage))),{canChangeControlType:n,editorTypeList:r}}changeBindingField(e,n,r){n.needRefreshEntityTree=!0}getAppearanceProperties(e,n){const r=this;return{title:"外观",description:"Appearance",properties:{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"},fill:{title:"填充宽度",description:"启用后,控件占满父容器宽度",type:"boolean",parentPropertyID:"appearance",defaultValue:!1},responseLayout:{description:"响应式列宽",title:"响应式列宽",type:"boolean",visible:!r.formRule,refreshPanelAfterChanged:!0,editor:{type:"response-layout-editor-setting",beforeOpen:()=>r.responseLayoutEditorFunction.checkCanOpenLayoutEditor(e,r.componentId)}}},setPropertyRelates(l,a){if(l)switch(l&&l.propertyID){case"responseLayout":r.responseLayoutEditorFunction.changeFormControlsByResponseLayoutConfig(l.propertyValue,r.componentId||e.id),r.updateUnifiedLayoutAfterResponseLayoutChanged(r.componentId),r.updateElementByParentContainer(e.id,n),delete e.responseLayout;break;case"class":r.updateUnifiedLayoutAfterControlChanged(l.propertyValue,e.id,this.componentId),b.canvasChanged.value++;break;case"style":{b.canvasChanged.value++;break}}}}}getEditorProperties(e){return this.getComponentConfig(e)}changeControlType(e,n,r){const l=n.propertyValue,a=r&&r.parent&&r.parent.schema;if(!a)return;const y=a.contents.findIndex(m=>m.id===e.id);if(y===-1)return;const c=a.contents[y];let p;if(this.designViewModelField){const u=this.formSchemaUtils.getViewModelById(this.viewModelId).fields.find(d=>d.id===this.designViewModelField.id).fieldSchema||{};u.editor||(u.editor={}),u.editor.$type=l,this.designViewModelUtils.getDgViewModel(this.viewModelId).changeField(this.designViewModelField.id,u,!1),p=this.controlCreatorUtils.setFormFieldProperty(this.designViewModelField,l)}p||(p=this.controlCreatorUtils.createFormGroupWithoutField(l)),Object.assign(p,{id:c.id,appearance:c.appearance,size:c.size,label:c.label,binding:c.binding}),Object.prototype.hasOwnProperty.call(c,"visible")&&Object.assign(p,{visible:c.visible}),c.editor&&["readonly","required","placeholder"].map(m=>{Object.prototype.hasOwnProperty.call(c.editor,m)&&(p.editor[m]=c.editor[m])}),r!=null&&r.updateContextSchema?r.updateContextSchema(p):(r.schema=Object.assign(c,p),Object.assign(e,p)),Array.from(document.getElementsByClassName("dgComponentSelected")).forEach(m=>m.classList.remove("dgComponentSelected")),Array.from(document.getElementsByClassName("dgComponentFocused")).forEach(m=>m.classList.remove("dgComponentFocused")),b.canvasChanged.value++,s.nextTick(()=>{this.getFormDesignerInstance().reloadPropertyPanel()})}getComponentConfig(e,n={},r={},l){var u,h;const a=Object.assign({description:"编辑器",title:"编辑器",type:"input-group",$converter:"/converter/property-editor.converter",parentPropertyID:"editor"},n),y=(u=e.binding)!=null&&u.field?[]:["Const","Variable","StateMachine"],c=this.getPropertyEditorParams(e,y,"readonly"),p=this.getPropertyEditorParams(e,y,"required"),m={readonly:{description:"",title:"只读",editor:c},required:{description:"",title:"必填",type:"boolean",editor:p,visible:!!((h=e.binding)!=null&&h.field)},placeholder:{description:"当控件没有值时在输入框中显示的文本",title:"提示文本",type:"string"}};for(const d in r)m[d]=Object.assign(m[d]||{},r[d]);const o=this;return{...a,properties:{...m},setPropertyRelates(d,f){if(d){switch(d.propertyID){case"readonly":case"required":o.afterMutilEditorChanged(e,d);break}l&&l.b