@farris/ui-vue 1.7.7 → 1.7.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1706,8 +1706,8 @@ function St(t, e, n) {
1706
1706
  resizeable: !0,
1707
1707
  render: () => M(ce, {
1708
1708
  ref: b,
1709
- modelValue: c,
1710
- "onUpdate:modelValue": (y) => c = y,
1709
+ modelValue: c.value,
1710
+ "onUpdate:modelValue": (y) => c.value = y,
1711
1711
  designerHostService: t,
1712
1712
  idField: "id",
1713
1713
  textField: "text",
@@ -5,4 +5,4 @@
5
5
  </span>`:t.columnTemplate=`
6
6
  <span class="f-pretend-link f-cursor-pointer">
7
7
  {{rowData.${t.field}}}
8
- </span>`),e==="columnTemplateType"&&n==="default"&&(t.columnTemplate=""),e==="columnTemplateType"&&n==="custom"&&(t.columnTemplate=""))},convertFrom:(t,e,n)=>e==="columnTemplate"?t.columnTemplate:e==="columnTemplateType"?t.columnTemplateType?t.columnTemplateType||"default":t.columnTemplate&&!t.onClickLinkCommand?"custom":t.columnTemplate&&t.onClickLinkCommand?"hyperlink":"default":""};function J(t,e,n){const r=new Map([["/converter/appearance.converter",ue],["/converter/buttons.converter",fe],["/converter/property-editor.converter",me],["/converter/items-count.converter",Te],["/converter/type.converter",ge],["/converter/change-editor.converter",ve],["/converter/change-formatter.converter",be],["/converter/column-command.converter",he],["/converter/column-option.converter",ye],["/converter/summary.converter",Ce],["/converter/group.converter",xe],["/converter/form-group-label.converter",Fe],["/converter/field-selector.converter",we],["/converter/pagination.converter",Se],["/converter/row-number.converter",Ee],["/converter/grid-selection.converter",Pe],["/converter/size.converter",Me],["/converter/change-formatter-enum.converter",Ve],["/converter/grid-sort.converter",Ie],["/converter/grid-filter.converter",Ne],["/converter/row-option.converter",ke],["/converter/change-formatter-type.converter",Oe]]),o=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}],["multiLanguage",{type:"language-textbox"}]]),a=de();function i(c,f){return()=>a.parseValueSchema(c,f)}function v(c,f,d){return c.includes("visible")&&f.visible!==void 0?typeof f.visible=="boolean"?()=>!!f.visible:f.visible===void 0?!0:i(f.visible,d):()=>!0}function s(c,f,d){return c.includes("readonly")&&f.readonly!==void 0?typeof f.readonly=="boolean"?()=>!!f.readonly:i(f.readonly,d):()=>!1}function u(c,f){const d=c.$converter||f;return typeof d=="string"&&d&&r.has(d)?r.get(d)||null:d||null}function m(c,f,d,h,w,V="",N=""){return Object.keys(c).map(S=>{const E=g.ref(1),F=S,x=c[S],C=Object.keys(x),j=x.title,k=x.type,b=o.get(k)||{type:"input-group",enableClear:!1},P=x.editor?Object.assign({},b,x.editor):Object.assign({},b),$=v(C,x,f),z=s(C,x,f);P.readonly=P.readonly===void 0?z():P.readonly;const q=x.type==="cascade"?m(x.properties,f,d,h,w,V,N):[],L=!0;let R=u(x,N);const _e=g.computed({get(){if(E.value){if(["class","style"].find(Qe=>Qe===F)&&!R&&(R=r.get("/converter/appearance.converter")||null),R&&R.convertFrom)return R.convertFrom(d,S,w,V);const B=d[S];return Object.prototype.hasOwnProperty.call(x,"defaultValue")&&(B===void 0||typeof B=="string"&&B==="")?x.type==="boolean"?x.defaultValue:x.defaultValue||"":B}return null},set(B){E.value+=1,R&&R.convertTo?(R.convertTo(h,S,B,w,V),R.convertTo(d,S,B,w,V)):(h[S]=B,d[S]=B)}}),{refreshPanelAfterChanged:We,description:He,isExpand:Ge,parentPropertyID:Je}=x,oe={propertyID:F,propertyName:j,propertyType:k,propertyValue:_e,editor:P,visible:$,readonly:z,cascadeConfig:q,hideCascadeTitle:L,refreshPanelAfterChanged:We,description:He,isExpand:Ge,parentPropertyID:Je};return f[F]=oe,oe})}function l(c,f,d={}){const h={},w=t[c];return w&&w.categories?Object.keys(w.categories).map(N=>{const I=w.categories[N],S=I==null?void 0:I.title,E=m(I.properties||{},h,{},d,f);return{categoryId:N,categoryName:S,properties:E}}):[]}function p(c,f,d,h,w=""){const V=f.$ref.schema,N=f.$ref.converter,I=d[V],S=I.type,E=n(I),F={},x=t[S];if(x&&x.categories){const C=x.categories[c],j=C==null?void 0:C.title;N&&Object.keys(C.properties).forEach(P=>{C.properties[P].$converter=N});const k=(C==null?void 0:C.properties)||{},b=m(k,F,E,I,h,w);return{categoryId:c,categoryName:j,properties:b}}return{categoryId:c,categoryName:"",properties:[]}}function y(c,f,d,h,w){const V=c.type,N=n(c),I={};let S=w||t[V];if(!(S&&Object.keys(S).length>0)&&d&&d.getPropConfig&&(S=d.getPropConfig(h)),S&&S.categories){const F=[];return Object.keys(S.categories).map(x=>{const C=S.categories[x];if(C.$ref){F.push(p(x,C,c,f,h));return}const j=C==null?void 0:C.title,k=C==null?void 0:C.tabId,b=C==null?void 0:C.tabName,P=C==null?void 0:C.hide,$=C==null?void 0:C.hideTitle,z=m(C.properties||{},I,N,c,f,h,C.$converter),{setPropertyRelates:q}=C,L=C==null?void 0:C.parentPropertyID;F.push({categoryId:x,categoryName:j,tabId:k,tabName:b,hide:P,properties:z,hideTitle:$,setPropertyRelates:q,parentPropertyID:L})}),F}return[]}return{getPropertyConfigBySchema:y,getPropertyConfigByType:l,propertyConverterMap:r}}const Q={},X={};J(Q,X,ae);const Y={},Z={},{resolveSchemaWithDefaultValue:Re}=W(Y,Z),K={},ee={};J(K,ee,Re);function Be(t,e,n=new Map,r=(i,v,s,u)=>v,o={},a=i=>i){return H[e.title]=e,G[e.title]=r,Q[e.title]=o,X[e.title]=a,Y[e.title]=e,Z[e.title]=r,K[e.title]=o,ee[e.title]=a,(i={},v=!0)=>{if(!v)return ce(i,n);const s=le(i,e,n),u=Object.keys(t).reduce((m,l)=>(m[l]=t[l].default,m),{});return Object.assign(u,s)}}const je={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/collection-property-editor.schema.json",title:"collection-property-editor",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for collection-property-editor",type:"string"},type:{description:"The type string of collection-property-editor",type:"string",default:"collection-property-editor"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},modelValue:{type:"array",default:[]},idField:{type:"string",default:"id"},textField:{type:"string",default:""},defaultComponentSchema:{type:"object",default:{}},modalTitle:{type:"string",default:"编辑器"},visibleCondition:{type:"object",default:null},allowCollapse:{type:"boolean",default:!0},enableClear:{type:"boolean",default:!1}},required:["type"],ignore:["id"]},te={modelValue:{type:Array,default:[]},idField:{type:String,default:"id"},textField:{type:String,default:""},defaultComponentSchema:{type:Object,default:{}},isToolbarHidden:{type:Boolean,default:!1},useFormCommand:{type:Object,default:{}},useFormSchema:{type:Object,default:{}},visibleCondition:{type:Function,default:null},allowCollapse:{type:Boolean,default:!0},enableClear:{type:Boolean,default:!1},designerHostService:{type:Object,default:null}},ne={...te,modalTitle:{type:String,default:"编辑器"}},Ue=Be(ne,je),re=g.defineComponent({name:"CollectionPropertyContainer",props:te,emits:["valueChange","selectionChange"],setup(t,e){const n=g.ref(),r=g.ref(),{idField:o,textField:a,defaultComponentSchema:i,isToolbarHidden:v}=t,s=g.ref(t.modelValue||[]),u=g.ref(),m=g.ref("collection-property-editor");g.provide("useFormCommand",t.useFormCommand),g.provide("useFormSchema",t.useFormSchema),g.provide("designerHostService",t.designerHostService);const l=g.ref(),p=g.computed(()=>!s.value||s.value.length===0),y=[{field:a,title:"名称",width:340,resizable:!0,dataType:"string"}],c=g.computed(()=>s.value.filter(b=>t.visibleCondition?t.visibleCondition(b):!0));function f(){const b=O.cloneDeep(i),P=Math.random().toString().slice(2,6);return b[o]=b[o]+"_"+P,b[a]=b[a]+"_"+P,b}function d(b){l.value=b,e.emit("selectionChange",{selectedData:l,propertyConfig:u,propertyPanelRef:r.value}),r.value.updatePropertyConfig(u.value,l.value,!0)}function h(b){if(b>=s.value.length&&(b=s.value.length-1),s.value.length>0){const P=s.value[b];n.value.selectItemById(P[o]),d(P)}}function w(){const b=f();s.value.push(b),n.value.updateDataSource(c.value),n.value.selectItemById(b[o]),d(b)}function V(){const b=s.value&&s.value.length>0?s.value[0]:null;b&&(n.value.selectItemById(b[o]),d(b))}function N(){const b=s.value.indexOf(l.value);s.value.splice(b,1),n.value.updateDataSource(c.value),h(b)}function I(){if(!l.value)return;const b=s.value.indexOf(l.value);b!==s.value.length-1&&(s.value[b]=s.value[b+1],s.value[b+1]=l.value,n.value.updateDataSource(c.value))}function S(){_.FMessageBoxService.question("您确定要清空所有按钮吗?","",()=>{s.value=[],n.value.updateDataSource([]),e.emit("clear")},()=>{})}function E(){if(!l.value)return;const b=s.value.indexOf(l.value);b!==0&&(s.value[b]=s.value[b-1],s.value[b-1]=l.value,n.value.updateDataSource(c.value))}function F(b){d(b[0])}function x(b){const{changeObject:P,designerItem:$}=b;n.value.updateDataSource(c.value)}g.onMounted(()=>{g.nextTick(()=>{V()})});const C=g.computed(()=>!l.value||p.value),j=g.computed(()=>C.value||s.value.length<=1?!1:s.value.findIndex(P=>P.id===l.value.id)>0),k=g.computed(()=>C.value||s.value.length<=1?!1:s.value.findIndex(P=>P.id===l.value.id)<s.value.length-1);return e.expose({propertyPanelRef:r}),()=>g.createVNode("div",{class:"f-utils-fill-flex-column h-100 pt-2 pl-2 border-bottom"},[g.createVNode("div",{hidden:v,class:"border-bottom pb-2"},[g.createVNode("button",{class:"btn btn-primary mr-2",onClick:w},[g.createTextVNode("新增")]),g.createVNode("button",{class:"btn btn-secondary mr-2",onClick:N,disabled:C.value},[g.createTextVNode("删除")]),g.createVNode("button",{class:"btn btn-secondary mr-2",onClick:E,disabled:!j.value},[g.createTextVNode("上移")]),g.createVNode("button",{class:"btn btn-secondary mr-2",onClick:I,disabled:!k.value},[g.createTextVNode("下移")]),t.enableClear&&g.createVNode("button",{class:"btn btn-secondary mr-2 d-flex align-items-center",style:"float:right",onClick:S,disabled:p.value},[g.createVNode("i",{class:"f-icon f-icon-close mr-1"},null),g.createTextVNode("清空")])]),g.createVNode("div",{class:"f-utils-fill-flex-row"},[g.createVNode("div",{class:"f-utils-fill f-utils-overflow-auto"},[g.createVNode(se.FTreeView,{ref:n,columns:y,data:c.value,rowOption:{disabledField:"undefined"},fit:"true",idField:o,columnOption:{fitColumns:!0},onSelectionChange:F},null)]),g.createVNode("div",{hidden:p.value,style:"display: flex;"},[g.createVNode(ie.FPropertyPanel,{propertyConfig:u.value,ref:r,propertyName:m.value,enableSearch:!1,allowCollapse:t.allowCollapse,onPropertyChanged:x},null)])])])}}),A=g.defineComponent({name:"FCollectionPropertyEditor",props:ne,emits:["valueChange","selectionChange"],setup(t,e){const n=g.ref(),r=g.inject("useFormCommand"),o=g.inject("useFormSchema"),a=g.ref(O.cloneDeep(t.modelValue)||[]),i=g.ref();g.watch(()=>t.modelValue,d=>{a.value=O.cloneDeep(d)||[]});const v=g.computed(()=>{var d;return(d=i.value)==null?void 0:d.getModal()}),s=g.computed(()=>{let d=0;return a.value&&(t.visibleCondition?d=a.value.filter(t.visibleCondition).length:d=a.value.length),`共 ${d||0} 项`});function u(d){Object.keys(d).forEach(h=>{h.indexOf("__fv")>-1&&delete d[h]})}function m(d){d&&d.forEach(h=>{u(h)})}function l(){return m(a.value),e.emit("valueChange",a.value),!0}function p(){return!0}function y({selectedData:d,propertyConfig:h}){u(d.value),e.emit("selectionChange",{selectedData:d,propertyConfig:h,modalRef:v.value,buttonPropertyPanelInstance:n.value.propertyPanelRef})}function c(){a.value=[]}const f={title:t.modalTitle||"编辑器",width:650,height:700,minWidth:380,minHeight:400,fitContent:!1,showMaxButton:!0,resizeable:!0,draggable:!0,enableEsc:!0,buttons:[{name:"cancel",text:"取消",class:"btn btn-secondary",handle:p},{name:"accept",text:"确定",class:"btn btn-primary",handle:l}],closedCallback:(d,h)=>{if((d==null?void 0:d.target.name)==="cancel"||h==="icon"||h==="esc")return a.value=O.cloneDeep(t.modelValue),e.emit("valueChange",a.value),!0;!d&&h==="button"&&l()}};return()=>g.createVNode(U.FButtonEdit,{modelValue:s.value,"onUpdate:modelValue":d=>s.value=d,editable:!1,enableTitle:!0,inputType:"text",buttonBehavior:"Modal",modalOptions:f,ref:i},{default:()=>[g.createVNode("div",{class:"h-100 d-flex flex-column"},[g.createVNode(re,{ref:n,modelValue:a.value,"onUpdate:modelValue":d=>a.value=d,idField:t.idField,textField:t.textField,defaultComponentSchema:t.defaultComponentSchema,onSelectionChange:y,useFormCommand:r,useFormSchema:o,allowCollapse:t.allowCollapse,visibleCondition:t.visibleCondition,enableClear:t.enableClear,onClear:c},null)])]})}});function De(t){const{formSchemaUtils:e,formStateMachineUtils:n}=t;function r(s,u=""){return{path:u+s.code,field:s.id,fullPath:s.code}}function o(s,u=""){const m=e.getViewModelById(s);return m?m.states.map(l=>r(l,u)):[]}function a(s){const u=e.getRootViewModelId(),m=o(s);if(s===u)return m;const l=o(u,"root-component.");return[...m,...l]}function i(s){return s.binding&&s.binding.path||s.id||""}function v(){return n&&n.getRenderStates()||[]}return{getVariables:a,getControlName:i,getStateMachines:v}}class $e{constructor(e){M(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'"}]);M(this,"expressionNames",{compute:"计算表达式",dependency:"依赖表达式",validate:"验证表达式",dataPicking:"帮助前表达式",visible:"可见表达式",readonly:"只读表达式",required:"必填表达式"});M(this,"getExpressionConverter",(e,n)=>({convertFrom:(r,o,a,i)=>{const v=a.getExpressionRuleValue(e,n||o);return v&&v.value||""},convertTo:(r,o,a,i,v)=>{var s;if(o==="dataPicking"&&(a!=null&&a.target)){const u=`${a.target}_dataPicking`;((s=a.rules)==null?void 0:s.some(l=>l.id===u&&l.value))?r.dictPickingExpressionId=u:delete r.dictPickingExpressionId}i.updateExpression(a)}}));this.formSchemaService=e}getExpressionRule(e,n){const r=this.getExpressionData();if(!r)return"";const o=r.find(i=>i.target===e);if(!o)return"";const a=o.rules.find(i=>i.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 o=[];return r.states.filter(a=>a.category==="remote").forEach(a=>{o.push({key:a.code,name:a.name,description:a.name,category:a.category})}),o}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(o=>{var v;const a=this.createTreeNode(o,n);let i=[];(v=o.type)!=null&&v.fields&&(i=this.buildEntityFieldsTreeData(o.type.fields,[...n,o.label])),r.push({data:a,children:i,expanded:!0})}),r}buildChildEntityTreeData(e=null,n){const r=[];return e==null||e.forEach(o=>{var s,u;const a=this.createTreeNode(o,n);a.type="entity";const i=this.buildEntityFieldsTreeData((s=o.type)==null?void 0:s.fields,[...n,o.label]),v=this.buildChildEntityTreeData((u=o.type)==null?void 0:u.entities,[...n,o.label]);v!=null&&v.length&&(i==null||i.push(...v)),r.push({data:a,children:i||[],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]),o=this.buildChildEntityTreeData(n.type.entities,[n.code]);return o!=null&&o.length&&(r==null||r.push(...o)),{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 o=r==="Field"?e.binding.field:e.id,a=this.getExpressionRule(o,n),i=this.getEntitiesAndVariables(),v={message:["validate","required","dataPicking"].includes(n)&&a?a.message:"",...i};return a.messageType!=null&&(v.messageType=a.messageType),v}buildRule(e,n,r,o){const{expression:a,message:i,messageType:v}=n,s={id:`${e}_${r}`,type:r,value:a};return(r==="validate"||r==="dataPicking"||r==="required")&&(s.message=i),r==="dataPicking"&&(s.messageType=v),r==="validate"&&o&&(s.elementId=o),s}getExpressionData(){const{expressions:e}=this.formSchemaService.getFormSchema().module;return e||[]}updateExpression(e,n,r,o){const a=n==="Field"?e.binding.field:e.id,i=this.buildRule(a,r,o,e.type==="form-group"?e.id:"");let s=this.getExpressionData().find(m=>m.targetType===n&&m.target===a);const u=m=>m.value.trim()==="";if(s){const m=s.rules.find(l=>l.id===i.id);if(m)u(i)?s.rules=s.rules.filter(l=>l.id!==i.id):(Object.assign(m,i),o==="validate"&&e.type==="form-group"&&(m.elementId=e.id));else{if(u(i))return null;s.rules=s.rules||[],s.rules.push(i)}}else{if(u(i))return null;s={target:`${a}`,rules:[i],targetType:n}}return s}getExpressionEditorOptions(e,n,r,o){return r.reduce((a,i)=>{var s,u;const v=n==="Field"?(s=e==null?void 0:e.binding)==null?void 0:s.field:e.id;return a[i]={hide:n==="Field"?!!((u=e==null?void 0:e.binding)!=null&&u.field):!1,description:"",title:this.expressionNames[i],type:"string",$converter:this.getExpressionConverter(v),refreshPanelAfterChanged:!0,editor:{type:"expression-editor",singleExpand:!1,dialogTitle:`${this.expressionNames[i]}编辑器`,showMessage:i==="validate"||i==="dataPicking"||i==="required",showMessageType:i==="dataPicking",beforeOpen:()=>this.onBeforeOpenExpression(e,i,n),onSubmitModal:m=>{const l=this.updateExpression(e,n,m,i);if(o){const p=this.buildRule(v,m,i);o(p)}return l}}},a},{})}getExpressionInfo(e,n,r){const o=n==="Field"?e.binding.field:e.id,a=this.getExpressionRule(o,r),i={value:a&&a.value,targetId:o,targetType:n,expressionType:r};return a&&a.message&&(i.message=a.message),i}getExpressionConfig(e,n,r=["compute","dependency","validate"],o){return{description:"表达式",title:"表达式",hide:!e.binding,properties:{...this.getExpressionEditorOptions(e,n,r,o)}}}getExpressionOptions(e,n,r){const o=this.getExpressionInfo(e,n,r);return{dialogTitle:`${this.expressionNames[r]||"表达式"}编辑器`,singleExpand:!1,showMessage:r==="required",beforeOpen:()=>this.onBeforeOpenExpression(e,r,n),expressionInfo:o}}}class ze{constructor(e,n){M(this,"componentId");M(this,"viewModelId");M(this,"eventsEditorUtils");M(this,"formSchemaUtils");M(this,"formMetadataConverter");M(this,"designViewModelUtils");M(this,"designViewModelField");M(this,"controlCreatorUtils");M(this,"designerHostService");M(this,"designerContext");M(this,"modalService",null);M(this,"formRule",null);M(this,"schemaService",null);M(this,"metadataService",null);M(this,"propertyConfig",{type:"object",categories:{}});M(this,"expressionProperty");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,this.modalService=n.modalService,this.expressionProperty=new $e(this.formSchemaUtils)}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 o=this.designViewModelUtils.getDgViewModel(this.viewModelId);this.designViewModelField=o.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:D.DgControl[e.type]&&D.DgControl[e.type].name}]}}}}}getAppearanceConfig(e=null,n={},r){const o={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 i in n)a[i]=Object.assign(a[i]||{},n[i]);return{...o,properties:{...a},setPropertyRelates(i,v){if(i){switch(i&&i.propertyID){case"class":case"style":{D.canvasChanged.value++;break}}r&&r(i,e,v)}}}}getPropertyEditorParams(e,n=[],r="visible",o={},a={},i=""){const{getVariables:v,getControlName:s,getStateMachines:u}=De(this.designerHostService),m=this.getRealTargetType(e),l=n&&n.length>0?n:["Const","Variable","StateMachine","Expression"],p={type:"property-editor",propertyTypes:l};return l.map(y=>{switch(y){case"Const":Object.assign(p,{constType:"enum",constEnums:[{id:!0,name:"是"},{id:!1,name:"否"}]},o);break;case"Expression":p.expressionConfig=this.getExpressionOptions(e,m,i||r);break;case"StateMachine":p.stateMachines=u();break;case"Variable":Object.assign(p,{controlName:s(e),newVariablePrefix:"is",newVariableType:"Boolean",variables:v(this.viewModelId),parentComponentId:this.componentId==="root-component"?"":"root-component",onBeforeOpenVariables:c=>{c.value=v(this.viewModelId)}},a),this.designerContext.designerMode==="PC_RTC"&&(p.newVariablePrefix="ext_"+p.newVariablePrefix);break}}),p}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={},o){const a={title:"行为",description:""},i=this.getVisibleProperty(e,n);for(const s in r)i[s]=Object.assign(i[s]||{},r[s]);const v=this;return{...a,properties:{...i},setPropertyRelates(s,u){if(s){switch(s.propertyID){case"disabled":case"readonly":case"visible":v.afterMutilEditorChanged(e,s);break}o&&o(s,u)}}}}afterMutilEditorChanged(e,n){this.addNewVariableToViewModel(n,this.viewModelId),this.updateExpressionValue(n,e),this.clearExpression(n,e)}updateElementByParentContainer(e,n){const r=n&&n.parent&&n.parent.schema;if(!r)return;const o=r.contents.findIndex(i=>i.id===e),a=O.cloneDeep(r.contents[o]);r.contents.splice(o,1),r.contents.splice(o,0,a),D.refreshCanvas()}addNewVariableToViewModel(e,n){const r=e.propertyValue;if(!(r&&typeof r=="object")||!(r.type==="Variable"&&r.isNewVariable))return;const i={id:r.field,category:"locale",code:r.fullPath,name:r.fullPath,type:r.newVariableType||"String",isRtcVariable:this.designerContext.designerMode==="PC_RTC"?!0:void 0};delete r.newVariableType,delete r.isNewVariable,this.formSchemaUtils.getVariableByCode(i.code)||this.formSchemaUtils.getViewModelById("root-viewmodel").states.push(i)}getExpressions(){let e=[];return this.formRule?(this.formRule.expressions=this.formRule.expressions||[],e=this.formRule.expressions||[]):e=this.formSchemaUtils.getExpressions(),e}updateExpressionValue(e,n){const r=e.propertyValue;if(!((r&&r.type)==="Expression"&&r.expressionInfo))return;const{expressionId:i,expressionInfo:v}=r,{targetId:s,targetType:u,expressionType:m,value:l,message:p}=v,y=this.getExpressions();let c=y.find(d=>d.target===s);c||(c={target:s,rules:[],targetType:u},y.push(c));const f=c.rules.find(d=>d.type===m);if(f)f.value=l,f.message=p,(m==="minDate"||m==="maxDate"||m==="defaultTime")&&(f.elementId=n.id);else{const d={id:i,type:m,value:l,message:p,elementId:n.id};c.rules.push(d)}delete r.expressionInfo}clearExpression(e,n){const r=e.propertyValue;if(r&&r.type==="Expression")return;const a=e.propertyID,i=this.getExpressions(),v=n.binding?n.binding.field:n.id,s=i.find(u=>u.target===v);!s||!s.rules||(s.rules=s.rules.filter(u=>u.type!==a))}getExpressionOptions(e,n,r){return this.expressionProperty.getExpressionOptions(e,n,r)}getRealTargetType(e){return["response-toolbar-item","tab-toolbar-item","section-toolbar-item","drawer-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 o;((o=r.controller)==null?void 0:o.label.indexOf(this.formSchemaUtils.getModule().code))>-1&&this.eventsEditorUtils.jumpToMethod(r)}}},n}}class Ae extends ze{constructor(e,n,r=!0){super(e,n),this.isRealButton=r}getPropertyConfig(e,n=!1,r=!0,o=null){this.propertyConfig.categories.basic=this.getBasicPropConfig(e),this.propertyConfig.categories.basic.properties.text={title:"文本",type:"string",description:"",refreshPanelAfterChanged:r},this.propertyConfig.categories.basic.setPropertyRelates=i=>{if(i)switch(i&&i.propertyID){case"text":{i.needRefreshControlTree=!0;break}}},this.getAppearanceProperties(e,n);const a=this.getPropertyEditorParams(e,["Const","Variable","StateMachine","Expression","Custom"],"disabled");return this.propertyConfig.categories.behavior=this.getBehaviorConfig(e,"",{disabled:{title:"禁用",type:"boolean",description:"按钮禁用状态",refreshPanelAfterChanged:!0,editor:a}}),this.getEventPropConfig(e,o),this.propertyConfig}getAppearanceProperties(e,n=!1){this.propertyConfig.categories.appearance={title:"外观",description:"Appearance",properties:{class:{title:"class样式",type:"string",description:"",$converter:"/converter/appearance.converter",parentPropertyID:"appearance",visible:!n},icon:{title:"图标",type:"string",description:""}}}}getEventPropConfig(e,n=null){const r=[{label:"onClick",name:"点击事件"}],o=this,a=o.eventsEditorUtils.formProperties(e,o.viewModelId,r);let i={};this.isRealButton?i=o.createBaseEventProperty(a):i[this.viewModelId]={type:"events-editor",editor:{initialData:a}},this.propertyConfig.categories.eventsEditor={title:"事件",hideTitle:!0,properties:i,refreshPanelAfterChanged:!0,tabId:"commands",tabName:"交互",setPropertyRelates(v,s){const u=v.propertyValue;if(delete e[o.viewModelId],u){u.setPropertyRelates=this.setPropertyRelates;const m=()=>{o.eventsEditorUtils.saveRelatedParameters(e,o.viewModelId,u.events,u)};o.isRealButton?m():u.isAddControllerMethod?(u.controlInfo={type:e.type,name:e.text},_.FMessageBoxService.question("确定关闭当前编辑器并跳转到代码视图吗?","",()=>{n==null||n.close(),m()},()=>{})):m()}}}}}function qe(t,e,n){const{modalService:r,formSchemaUtils:o,eventsEditorUtils:a,dialogCodeView:i,useFormCommand:v}=t,{componentId:s,modalPropertyData:u,viewModelId:m,onSubmitHandle:l,onCancelHandle:p,defaultClass:y}=e,c=g.ref(e.buttons),f={id:"button",type:"button",text:"按钮",appearance:{class:y||"btn btn-secondary"},visible:!0,disabled:!1,onClick:""},d=new Ae(s,t,!1),h=g.ref(),w=O.cloneDeep(e.buttons||[]);function V(){c.value=[]}function N(){if(l)return typeof l=="function"&&l(c.value);{const E=o.getExternalComponents().find(F=>F.id===u.id);return E&&(E.buttons=c.value),!0}}function I({selectedData:E,propertyConfig:F,propertyPanelRef:x}){F.value=d.getPropertyConfig(E.value,!1,!1),F.value.categories.behavior.properties.disabled.refreshPanelAfterChanged=!1,F.value.categories.eventsEditor.setPropertyRelates=(C,j)=>{const k=C.propertyValue;if(delete E.value[m],k){const b=()=>{a.saveRelatedParameters(E.value,m,k.events,k)};k.isAddControllerMethod&&(k.controlInfo={type:E.value.type,name:E.value.text},t.dialogCodeView.closeCallback=()=>{x==null||x.reloadPropertyPanel()}),b()}},n&&n(F.value)}function S(E){const F=r==null?void 0:r.open({fitContent:!1,width:800,height:600,title:"自定义按钮",showMaxButton:!0,showButtons:!0,draggable:!0,resizeable:!0,render:()=>g.createVNode(re,{ref:h,modelValue:c,"onUpdate:modelValue":x=>c=x,designerHostService:t,idField:"id",textField:"text",defaultComponentSchema:f,onSelectionChange:I,useFormCommand:v,useFormSchema:o,allowCollapse:!1,enableClear:!0,onClear:V},null),closedCallback:(x,C)=>{i.openCodeEditor=!1,E&&E()},buttons:[{name:"cancel",text:"取消",class:"btn btn-secondary",handle:x=>(i.openCodeEditor=!1,p&&p(w),!0)},{name:"accept",text:"确定",class:"btn btn-primary",handle:x=>{N()&&(F.close(),i.openCodeEditor=!1)}}]});i.openCodeEditor=!0}return{show:S}}const Le={install(t){t.component(A.name,A)},register(t,e,n,r){t["collection-property-editor"]=A,e["collection-property-editor"]=Ue}};T.default=Le,T.useButtonItemsDesigner=qe,Object.defineProperties(T,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
8
+ </span>`),e==="columnTemplateType"&&n==="default"&&(t.columnTemplate=""),e==="columnTemplateType"&&n==="custom"&&(t.columnTemplate=""))},convertFrom:(t,e,n)=>e==="columnTemplate"?t.columnTemplate:e==="columnTemplateType"?t.columnTemplateType?t.columnTemplateType||"default":t.columnTemplate&&!t.onClickLinkCommand?"custom":t.columnTemplate&&t.onClickLinkCommand?"hyperlink":"default":""};function J(t,e,n){const r=new Map([["/converter/appearance.converter",ue],["/converter/buttons.converter",fe],["/converter/property-editor.converter",me],["/converter/items-count.converter",Te],["/converter/type.converter",ge],["/converter/change-editor.converter",ve],["/converter/change-formatter.converter",be],["/converter/column-command.converter",he],["/converter/column-option.converter",ye],["/converter/summary.converter",Ce],["/converter/group.converter",xe],["/converter/form-group-label.converter",Fe],["/converter/field-selector.converter",we],["/converter/pagination.converter",Se],["/converter/row-number.converter",Ee],["/converter/grid-selection.converter",Pe],["/converter/size.converter",Me],["/converter/change-formatter-enum.converter",Ve],["/converter/grid-sort.converter",Ie],["/converter/grid-filter.converter",Ne],["/converter/row-option.converter",ke],["/converter/change-formatter-type.converter",Oe]]),o=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}],["multiLanguage",{type:"language-textbox"}]]),a=de();function i(c,f){return()=>a.parseValueSchema(c,f)}function v(c,f,d){return c.includes("visible")&&f.visible!==void 0?typeof f.visible=="boolean"?()=>!!f.visible:f.visible===void 0?!0:i(f.visible,d):()=>!0}function s(c,f,d){return c.includes("readonly")&&f.readonly!==void 0?typeof f.readonly=="boolean"?()=>!!f.readonly:i(f.readonly,d):()=>!1}function u(c,f){const d=c.$converter||f;return typeof d=="string"&&d&&r.has(d)?r.get(d)||null:d||null}function m(c,f,d,h,w,V="",N=""){return Object.keys(c).map(S=>{const E=g.ref(1),F=S,x=c[S],C=Object.keys(x),j=x.title,k=x.type,b=o.get(k)||{type:"input-group",enableClear:!1},P=x.editor?Object.assign({},b,x.editor):Object.assign({},b),$=v(C,x,f),z=s(C,x,f);P.readonly=P.readonly===void 0?z():P.readonly;const q=x.type==="cascade"?m(x.properties,f,d,h,w,V,N):[],L=!0;let R=u(x,N);const _e=g.computed({get(){if(E.value){if(["class","style"].find(Qe=>Qe===F)&&!R&&(R=r.get("/converter/appearance.converter")||null),R&&R.convertFrom)return R.convertFrom(d,S,w,V);const B=d[S];return Object.prototype.hasOwnProperty.call(x,"defaultValue")&&(B===void 0||typeof B=="string"&&B==="")?x.type==="boolean"?x.defaultValue:x.defaultValue||"":B}return null},set(B){E.value+=1,R&&R.convertTo?(R.convertTo(h,S,B,w,V),R.convertTo(d,S,B,w,V)):(h[S]=B,d[S]=B)}}),{refreshPanelAfterChanged:We,description:He,isExpand:Ge,parentPropertyID:Je}=x,oe={propertyID:F,propertyName:j,propertyType:k,propertyValue:_e,editor:P,visible:$,readonly:z,cascadeConfig:q,hideCascadeTitle:L,refreshPanelAfterChanged:We,description:He,isExpand:Ge,parentPropertyID:Je};return f[F]=oe,oe})}function l(c,f,d={}){const h={},w=t[c];return w&&w.categories?Object.keys(w.categories).map(N=>{const I=w.categories[N],S=I==null?void 0:I.title,E=m(I.properties||{},h,{},d,f);return{categoryId:N,categoryName:S,properties:E}}):[]}function p(c,f,d,h,w=""){const V=f.$ref.schema,N=f.$ref.converter,I=d[V],S=I.type,E=n(I),F={},x=t[S];if(x&&x.categories){const C=x.categories[c],j=C==null?void 0:C.title;N&&Object.keys(C.properties).forEach(P=>{C.properties[P].$converter=N});const k=(C==null?void 0:C.properties)||{},b=m(k,F,E,I,h,w);return{categoryId:c,categoryName:j,properties:b}}return{categoryId:c,categoryName:"",properties:[]}}function y(c,f,d,h,w){const V=c.type,N=n(c),I={};let S=w||t[V];if(!(S&&Object.keys(S).length>0)&&d&&d.getPropConfig&&(S=d.getPropConfig(h)),S&&S.categories){const F=[];return Object.keys(S.categories).map(x=>{const C=S.categories[x];if(C.$ref){F.push(p(x,C,c,f,h));return}const j=C==null?void 0:C.title,k=C==null?void 0:C.tabId,b=C==null?void 0:C.tabName,P=C==null?void 0:C.hide,$=C==null?void 0:C.hideTitle,z=m(C.properties||{},I,N,c,f,h,C.$converter),{setPropertyRelates:q}=C,L=C==null?void 0:C.parentPropertyID;F.push({categoryId:x,categoryName:j,tabId:k,tabName:b,hide:P,properties:z,hideTitle:$,setPropertyRelates:q,parentPropertyID:L})}),F}return[]}return{getPropertyConfigBySchema:y,getPropertyConfigByType:l,propertyConverterMap:r}}const Q={},X={};J(Q,X,ae);const Y={},Z={},{resolveSchemaWithDefaultValue:Re}=W(Y,Z),K={},ee={};J(K,ee,Re);function Be(t,e,n=new Map,r=(i,v,s,u)=>v,o={},a=i=>i){return H[e.title]=e,G[e.title]=r,Q[e.title]=o,X[e.title]=a,Y[e.title]=e,Z[e.title]=r,K[e.title]=o,ee[e.title]=a,(i={},v=!0)=>{if(!v)return ce(i,n);const s=le(i,e,n),u=Object.keys(t).reduce((m,l)=>(m[l]=t[l].default,m),{});return Object.assign(u,s)}}const je={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/collection-property-editor.schema.json",title:"collection-property-editor",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for collection-property-editor",type:"string"},type:{description:"The type string of collection-property-editor",type:"string",default:"collection-property-editor"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},modelValue:{type:"array",default:[]},idField:{type:"string",default:"id"},textField:{type:"string",default:""},defaultComponentSchema:{type:"object",default:{}},modalTitle:{type:"string",default:"编辑器"},visibleCondition:{type:"object",default:null},allowCollapse:{type:"boolean",default:!0},enableClear:{type:"boolean",default:!1}},required:["type"],ignore:["id"]},te={modelValue:{type:Array,default:[]},idField:{type:String,default:"id"},textField:{type:String,default:""},defaultComponentSchema:{type:Object,default:{}},isToolbarHidden:{type:Boolean,default:!1},useFormCommand:{type:Object,default:{}},useFormSchema:{type:Object,default:{}},visibleCondition:{type:Function,default:null},allowCollapse:{type:Boolean,default:!0},enableClear:{type:Boolean,default:!1},designerHostService:{type:Object,default:null}},ne={...te,modalTitle:{type:String,default:"编辑器"}},Ue=Be(ne,je),re=g.defineComponent({name:"CollectionPropertyContainer",props:te,emits:["valueChange","selectionChange"],setup(t,e){const n=g.ref(),r=g.ref(),{idField:o,textField:a,defaultComponentSchema:i,isToolbarHidden:v}=t,s=g.ref(t.modelValue||[]),u=g.ref(),m=g.ref("collection-property-editor");g.provide("useFormCommand",t.useFormCommand),g.provide("useFormSchema",t.useFormSchema),g.provide("designerHostService",t.designerHostService);const l=g.ref(),p=g.computed(()=>!s.value||s.value.length===0),y=[{field:a,title:"名称",width:340,resizable:!0,dataType:"string"}],c=g.computed(()=>s.value.filter(b=>t.visibleCondition?t.visibleCondition(b):!0));function f(){const b=O.cloneDeep(i),P=Math.random().toString().slice(2,6);return b[o]=b[o]+"_"+P,b[a]=b[a]+"_"+P,b}function d(b){l.value=b,e.emit("selectionChange",{selectedData:l,propertyConfig:u,propertyPanelRef:r.value}),r.value.updatePropertyConfig(u.value,l.value,!0)}function h(b){if(b>=s.value.length&&(b=s.value.length-1),s.value.length>0){const P=s.value[b];n.value.selectItemById(P[o]),d(P)}}function w(){const b=f();s.value.push(b),n.value.updateDataSource(c.value),n.value.selectItemById(b[o]),d(b)}function V(){const b=s.value&&s.value.length>0?s.value[0]:null;b&&(n.value.selectItemById(b[o]),d(b))}function N(){const b=s.value.indexOf(l.value);s.value.splice(b,1),n.value.updateDataSource(c.value),h(b)}function I(){if(!l.value)return;const b=s.value.indexOf(l.value);b!==s.value.length-1&&(s.value[b]=s.value[b+1],s.value[b+1]=l.value,n.value.updateDataSource(c.value))}function S(){_.FMessageBoxService.question("您确定要清空所有按钮吗?","",()=>{s.value=[],n.value.updateDataSource([]),e.emit("clear")},()=>{})}function E(){if(!l.value)return;const b=s.value.indexOf(l.value);b!==0&&(s.value[b]=s.value[b-1],s.value[b-1]=l.value,n.value.updateDataSource(c.value))}function F(b){d(b[0])}function x(b){const{changeObject:P,designerItem:$}=b;n.value.updateDataSource(c.value)}g.onMounted(()=>{g.nextTick(()=>{V()})});const C=g.computed(()=>!l.value||p.value),j=g.computed(()=>C.value||s.value.length<=1?!1:s.value.findIndex(P=>P.id===l.value.id)>0),k=g.computed(()=>C.value||s.value.length<=1?!1:s.value.findIndex(P=>P.id===l.value.id)<s.value.length-1);return e.expose({propertyPanelRef:r}),()=>g.createVNode("div",{class:"f-utils-fill-flex-column h-100 pt-2 pl-2 border-bottom"},[g.createVNode("div",{hidden:v,class:"border-bottom pb-2"},[g.createVNode("button",{class:"btn btn-primary mr-2",onClick:w},[g.createTextVNode("新增")]),g.createVNode("button",{class:"btn btn-secondary mr-2",onClick:N,disabled:C.value},[g.createTextVNode("删除")]),g.createVNode("button",{class:"btn btn-secondary mr-2",onClick:E,disabled:!j.value},[g.createTextVNode("上移")]),g.createVNode("button",{class:"btn btn-secondary mr-2",onClick:I,disabled:!k.value},[g.createTextVNode("下移")]),t.enableClear&&g.createVNode("button",{class:"btn btn-secondary mr-2 d-flex align-items-center",style:"float:right",onClick:S,disabled:p.value},[g.createVNode("i",{class:"f-icon f-icon-close mr-1"},null),g.createTextVNode("清空")])]),g.createVNode("div",{class:"f-utils-fill-flex-row"},[g.createVNode("div",{class:"f-utils-fill f-utils-overflow-auto"},[g.createVNode(se.FTreeView,{ref:n,columns:y,data:c.value,rowOption:{disabledField:"undefined"},fit:"true",idField:o,columnOption:{fitColumns:!0},onSelectionChange:F},null)]),g.createVNode("div",{hidden:p.value,style:"display: flex;"},[g.createVNode(ie.FPropertyPanel,{propertyConfig:u.value,ref:r,propertyName:m.value,enableSearch:!1,allowCollapse:t.allowCollapse,onPropertyChanged:x},null)])])])}}),A=g.defineComponent({name:"FCollectionPropertyEditor",props:ne,emits:["valueChange","selectionChange"],setup(t,e){const n=g.ref(),r=g.inject("useFormCommand"),o=g.inject("useFormSchema"),a=g.ref(O.cloneDeep(t.modelValue)||[]),i=g.ref();g.watch(()=>t.modelValue,d=>{a.value=O.cloneDeep(d)||[]});const v=g.computed(()=>{var d;return(d=i.value)==null?void 0:d.getModal()}),s=g.computed(()=>{let d=0;return a.value&&(t.visibleCondition?d=a.value.filter(t.visibleCondition).length:d=a.value.length),`共 ${d||0} 项`});function u(d){Object.keys(d).forEach(h=>{h.indexOf("__fv")>-1&&delete d[h]})}function m(d){d&&d.forEach(h=>{u(h)})}function l(){return m(a.value),e.emit("valueChange",a.value),!0}function p(){return!0}function y({selectedData:d,propertyConfig:h}){u(d.value),e.emit("selectionChange",{selectedData:d,propertyConfig:h,modalRef:v.value,buttonPropertyPanelInstance:n.value.propertyPanelRef})}function c(){a.value=[]}const f={title:t.modalTitle||"编辑器",width:650,height:700,minWidth:380,minHeight:400,fitContent:!1,showMaxButton:!0,resizeable:!0,draggable:!0,enableEsc:!0,buttons:[{name:"cancel",text:"取消",class:"btn btn-secondary",handle:p},{name:"accept",text:"确定",class:"btn btn-primary",handle:l}],closedCallback:(d,h)=>{if((d==null?void 0:d.target.name)==="cancel"||h==="icon"||h==="esc")return a.value=O.cloneDeep(t.modelValue),e.emit("valueChange",a.value),!0;!d&&h==="button"&&l()}};return()=>g.createVNode(U.FButtonEdit,{modelValue:s.value,"onUpdate:modelValue":d=>s.value=d,editable:!1,enableTitle:!0,inputType:"text",buttonBehavior:"Modal",modalOptions:f,ref:i},{default:()=>[g.createVNode("div",{class:"h-100 d-flex flex-column"},[g.createVNode(re,{ref:n,modelValue:a.value,"onUpdate:modelValue":d=>a.value=d,idField:t.idField,textField:t.textField,defaultComponentSchema:t.defaultComponentSchema,onSelectionChange:y,useFormCommand:r,useFormSchema:o,allowCollapse:t.allowCollapse,visibleCondition:t.visibleCondition,enableClear:t.enableClear,onClear:c},null)])]})}});function De(t){const{formSchemaUtils:e,formStateMachineUtils:n}=t;function r(s,u=""){return{path:u+s.code,field:s.id,fullPath:s.code}}function o(s,u=""){const m=e.getViewModelById(s);return m?m.states.map(l=>r(l,u)):[]}function a(s){const u=e.getRootViewModelId(),m=o(s);if(s===u)return m;const l=o(u,"root-component.");return[...m,...l]}function i(s){return s.binding&&s.binding.path||s.id||""}function v(){return n&&n.getRenderStates()||[]}return{getVariables:a,getControlName:i,getStateMachines:v}}class $e{constructor(e){M(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'"}]);M(this,"expressionNames",{compute:"计算表达式",dependency:"依赖表达式",validate:"验证表达式",dataPicking:"帮助前表达式",visible:"可见表达式",readonly:"只读表达式",required:"必填表达式"});M(this,"getExpressionConverter",(e,n)=>({convertFrom:(r,o,a,i)=>{const v=a.getExpressionRuleValue(e,n||o);return v&&v.value||""},convertTo:(r,o,a,i,v)=>{var s;if(o==="dataPicking"&&(a!=null&&a.target)){const u=`${a.target}_dataPicking`;((s=a.rules)==null?void 0:s.some(l=>l.id===u&&l.value))?r.dictPickingExpressionId=u:delete r.dictPickingExpressionId}i.updateExpression(a)}}));this.formSchemaService=e}getExpressionRule(e,n){const r=this.getExpressionData();if(!r)return"";const o=r.find(i=>i.target===e);if(!o)return"";const a=o.rules.find(i=>i.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 o=[];return r.states.filter(a=>a.category==="remote").forEach(a=>{o.push({key:a.code,name:a.name,description:a.name,category:a.category})}),o}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(o=>{var v;const a=this.createTreeNode(o,n);let i=[];(v=o.type)!=null&&v.fields&&(i=this.buildEntityFieldsTreeData(o.type.fields,[...n,o.label])),r.push({data:a,children:i,expanded:!0})}),r}buildChildEntityTreeData(e=null,n){const r=[];return e==null||e.forEach(o=>{var s,u;const a=this.createTreeNode(o,n);a.type="entity";const i=this.buildEntityFieldsTreeData((s=o.type)==null?void 0:s.fields,[...n,o.label]),v=this.buildChildEntityTreeData((u=o.type)==null?void 0:u.entities,[...n,o.label]);v!=null&&v.length&&(i==null||i.push(...v)),r.push({data:a,children:i||[],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]),o=this.buildChildEntityTreeData(n.type.entities,[n.code]);return o!=null&&o.length&&(r==null||r.push(...o)),{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 o=r==="Field"?e.binding.field:e.id,a=this.getExpressionRule(o,n),i=this.getEntitiesAndVariables(),v={message:["validate","required","dataPicking"].includes(n)&&a?a.message:"",...i};return a.messageType!=null&&(v.messageType=a.messageType),v}buildRule(e,n,r,o){const{expression:a,message:i,messageType:v}=n,s={id:`${e}_${r}`,type:r,value:a};return(r==="validate"||r==="dataPicking"||r==="required")&&(s.message=i),r==="dataPicking"&&(s.messageType=v),r==="validate"&&o&&(s.elementId=o),s}getExpressionData(){const{expressions:e}=this.formSchemaService.getFormSchema().module;return e||[]}updateExpression(e,n,r,o){const a=n==="Field"?e.binding.field:e.id,i=this.buildRule(a,r,o,e.type==="form-group"?e.id:"");let s=this.getExpressionData().find(m=>m.targetType===n&&m.target===a);const u=m=>m.value.trim()==="";if(s){const m=s.rules.find(l=>l.id===i.id);if(m)u(i)?s.rules=s.rules.filter(l=>l.id!==i.id):(Object.assign(m,i),o==="validate"&&e.type==="form-group"&&(m.elementId=e.id));else{if(u(i))return null;s.rules=s.rules||[],s.rules.push(i)}}else{if(u(i))return null;s={target:`${a}`,rules:[i],targetType:n}}return s}getExpressionEditorOptions(e,n,r,o){return r.reduce((a,i)=>{var s,u;const v=n==="Field"?(s=e==null?void 0:e.binding)==null?void 0:s.field:e.id;return a[i]={hide:n==="Field"?!!((u=e==null?void 0:e.binding)!=null&&u.field):!1,description:"",title:this.expressionNames[i],type:"string",$converter:this.getExpressionConverter(v),refreshPanelAfterChanged:!0,editor:{type:"expression-editor",singleExpand:!1,dialogTitle:`${this.expressionNames[i]}编辑器`,showMessage:i==="validate"||i==="dataPicking"||i==="required",showMessageType:i==="dataPicking",beforeOpen:()=>this.onBeforeOpenExpression(e,i,n),onSubmitModal:m=>{const l=this.updateExpression(e,n,m,i);if(o){const p=this.buildRule(v,m,i);o(p)}return l}}},a},{})}getExpressionInfo(e,n,r){const o=n==="Field"?e.binding.field:e.id,a=this.getExpressionRule(o,r),i={value:a&&a.value,targetId:o,targetType:n,expressionType:r};return a&&a.message&&(i.message=a.message),i}getExpressionConfig(e,n,r=["compute","dependency","validate"],o){return{description:"表达式",title:"表达式",hide:!e.binding,properties:{...this.getExpressionEditorOptions(e,n,r,o)}}}getExpressionOptions(e,n,r){const o=this.getExpressionInfo(e,n,r);return{dialogTitle:`${this.expressionNames[r]||"表达式"}编辑器`,singleExpand:!1,showMessage:r==="required",beforeOpen:()=>this.onBeforeOpenExpression(e,r,n),expressionInfo:o}}}class ze{constructor(e,n){M(this,"componentId");M(this,"viewModelId");M(this,"eventsEditorUtils");M(this,"formSchemaUtils");M(this,"formMetadataConverter");M(this,"designViewModelUtils");M(this,"designViewModelField");M(this,"controlCreatorUtils");M(this,"designerHostService");M(this,"designerContext");M(this,"modalService",null);M(this,"formRule",null);M(this,"schemaService",null);M(this,"metadataService",null);M(this,"propertyConfig",{type:"object",categories:{}});M(this,"expressionProperty");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,this.modalService=n.modalService,this.expressionProperty=new $e(this.formSchemaUtils)}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 o=this.designViewModelUtils.getDgViewModel(this.viewModelId);this.designViewModelField=o.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:D.DgControl[e.type]&&D.DgControl[e.type].name}]}}}}}getAppearanceConfig(e=null,n={},r){const o={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 i in n)a[i]=Object.assign(a[i]||{},n[i]);return{...o,properties:{...a},setPropertyRelates(i,v){if(i){switch(i&&i.propertyID){case"class":case"style":{D.canvasChanged.value++;break}}r&&r(i,e,v)}}}}getPropertyEditorParams(e,n=[],r="visible",o={},a={},i=""){const{getVariables:v,getControlName:s,getStateMachines:u}=De(this.designerHostService),m=this.getRealTargetType(e),l=n&&n.length>0?n:["Const","Variable","StateMachine","Expression"],p={type:"property-editor",propertyTypes:l};return l.map(y=>{switch(y){case"Const":Object.assign(p,{constType:"enum",constEnums:[{id:!0,name:"是"},{id:!1,name:"否"}]},o);break;case"Expression":p.expressionConfig=this.getExpressionOptions(e,m,i||r);break;case"StateMachine":p.stateMachines=u();break;case"Variable":Object.assign(p,{controlName:s(e),newVariablePrefix:"is",newVariableType:"Boolean",variables:v(this.viewModelId),parentComponentId:this.componentId==="root-component"?"":"root-component",onBeforeOpenVariables:c=>{c.value=v(this.viewModelId)}},a),this.designerContext.designerMode==="PC_RTC"&&(p.newVariablePrefix="ext_"+p.newVariablePrefix);break}}),p}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={},o){const a={title:"行为",description:""},i=this.getVisibleProperty(e,n);for(const s in r)i[s]=Object.assign(i[s]||{},r[s]);const v=this;return{...a,properties:{...i},setPropertyRelates(s,u){if(s){switch(s.propertyID){case"disabled":case"readonly":case"visible":v.afterMutilEditorChanged(e,s);break}o&&o(s,u)}}}}afterMutilEditorChanged(e,n){this.addNewVariableToViewModel(n,this.viewModelId),this.updateExpressionValue(n,e),this.clearExpression(n,e)}updateElementByParentContainer(e,n){const r=n&&n.parent&&n.parent.schema;if(!r)return;const o=r.contents.findIndex(i=>i.id===e),a=O.cloneDeep(r.contents[o]);r.contents.splice(o,1),r.contents.splice(o,0,a),D.refreshCanvas()}addNewVariableToViewModel(e,n){const r=e.propertyValue;if(!(r&&typeof r=="object")||!(r.type==="Variable"&&r.isNewVariable))return;const i={id:r.field,category:"locale",code:r.fullPath,name:r.fullPath,type:r.newVariableType||"String",isRtcVariable:this.designerContext.designerMode==="PC_RTC"?!0:void 0};delete r.newVariableType,delete r.isNewVariable,this.formSchemaUtils.getVariableByCode(i.code)||this.formSchemaUtils.getViewModelById("root-viewmodel").states.push(i)}getExpressions(){let e=[];return this.formRule?(this.formRule.expressions=this.formRule.expressions||[],e=this.formRule.expressions||[]):e=this.formSchemaUtils.getExpressions(),e}updateExpressionValue(e,n){const r=e.propertyValue;if(!((r&&r.type)==="Expression"&&r.expressionInfo))return;const{expressionId:i,expressionInfo:v}=r,{targetId:s,targetType:u,expressionType:m,value:l,message:p}=v,y=this.getExpressions();let c=y.find(d=>d.target===s);c||(c={target:s,rules:[],targetType:u},y.push(c));const f=c.rules.find(d=>d.type===m);if(f)f.value=l,f.message=p,(m==="minDate"||m==="maxDate"||m==="defaultTime")&&(f.elementId=n.id);else{const d={id:i,type:m,value:l,message:p,elementId:n.id};c.rules.push(d)}delete r.expressionInfo}clearExpression(e,n){const r=e.propertyValue;if(r&&r.type==="Expression")return;const a=e.propertyID,i=this.getExpressions(),v=n.binding?n.binding.field:n.id,s=i.find(u=>u.target===v);!s||!s.rules||(s.rules=s.rules.filter(u=>u.type!==a))}getExpressionOptions(e,n,r){return this.expressionProperty.getExpressionOptions(e,n,r)}getRealTargetType(e){return["response-toolbar-item","tab-toolbar-item","section-toolbar-item","drawer-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 o;((o=r.controller)==null?void 0:o.label.indexOf(this.formSchemaUtils.getModule().code))>-1&&this.eventsEditorUtils.jumpToMethod(r)}}},n}}class Ae extends ze{constructor(e,n,r=!0){super(e,n),this.isRealButton=r}getPropertyConfig(e,n=!1,r=!0,o=null){this.propertyConfig.categories.basic=this.getBasicPropConfig(e),this.propertyConfig.categories.basic.properties.text={title:"文本",type:"string",description:"",refreshPanelAfterChanged:r},this.propertyConfig.categories.basic.setPropertyRelates=i=>{if(i)switch(i&&i.propertyID){case"text":{i.needRefreshControlTree=!0;break}}},this.getAppearanceProperties(e,n);const a=this.getPropertyEditorParams(e,["Const","Variable","StateMachine","Expression","Custom"],"disabled");return this.propertyConfig.categories.behavior=this.getBehaviorConfig(e,"",{disabled:{title:"禁用",type:"boolean",description:"按钮禁用状态",refreshPanelAfterChanged:!0,editor:a}}),this.getEventPropConfig(e,o),this.propertyConfig}getAppearanceProperties(e,n=!1){this.propertyConfig.categories.appearance={title:"外观",description:"Appearance",properties:{class:{title:"class样式",type:"string",description:"",$converter:"/converter/appearance.converter",parentPropertyID:"appearance",visible:!n},icon:{title:"图标",type:"string",description:""}}}}getEventPropConfig(e,n=null){const r=[{label:"onClick",name:"点击事件"}],o=this,a=o.eventsEditorUtils.formProperties(e,o.viewModelId,r);let i={};this.isRealButton?i=o.createBaseEventProperty(a):i[this.viewModelId]={type:"events-editor",editor:{initialData:a}},this.propertyConfig.categories.eventsEditor={title:"事件",hideTitle:!0,properties:i,refreshPanelAfterChanged:!0,tabId:"commands",tabName:"交互",setPropertyRelates(v,s){const u=v.propertyValue;if(delete e[o.viewModelId],u){u.setPropertyRelates=this.setPropertyRelates;const m=()=>{o.eventsEditorUtils.saveRelatedParameters(e,o.viewModelId,u.events,u)};o.isRealButton?m():u.isAddControllerMethod?(u.controlInfo={type:e.type,name:e.text},_.FMessageBoxService.question("确定关闭当前编辑器并跳转到代码视图吗?","",()=>{n==null||n.close(),m()},()=>{})):m()}}}}}function qe(t,e,n){const{modalService:r,formSchemaUtils:o,eventsEditorUtils:a,dialogCodeView:i,useFormCommand:v}=t,{componentId:s,modalPropertyData:u,viewModelId:m,onSubmitHandle:l,onCancelHandle:p,defaultClass:y}=e,c=g.ref(e.buttons),f={id:"button",type:"button",text:"按钮",appearance:{class:y||"btn btn-secondary"},visible:!0,disabled:!1,onClick:""},d=new Ae(s,t,!1),h=g.ref(),w=O.cloneDeep(e.buttons||[]);function V(){c.value=[]}function N(){if(l)return typeof l=="function"&&l(c.value);{const E=o.getExternalComponents().find(F=>F.id===u.id);return E&&(E.buttons=c.value),!0}}function I({selectedData:E,propertyConfig:F,propertyPanelRef:x}){F.value=d.getPropertyConfig(E.value,!1,!1),F.value.categories.behavior.properties.disabled.refreshPanelAfterChanged=!1,F.value.categories.eventsEditor.setPropertyRelates=(C,j)=>{const k=C.propertyValue;if(delete E.value[m],k){const b=()=>{a.saveRelatedParameters(E.value,m,k.events,k)};k.isAddControllerMethod&&(k.controlInfo={type:E.value.type,name:E.value.text},t.dialogCodeView.closeCallback=()=>{x==null||x.reloadPropertyPanel()}),b()}},n&&n(F.value)}function S(E){const F=r==null?void 0:r.open({fitContent:!1,width:800,height:600,title:"自定义按钮",showMaxButton:!0,showButtons:!0,draggable:!0,resizeable:!0,render:()=>g.createVNode(re,{ref:h,modelValue:c.value,"onUpdate:modelValue":x=>c.value=x,designerHostService:t,idField:"id",textField:"text",defaultComponentSchema:f,onSelectionChange:I,useFormCommand:v,useFormSchema:o,allowCollapse:!1,enableClear:!0,onClear:V},null),closedCallback:(x,C)=>{i.openCodeEditor=!1,E&&E()},buttons:[{name:"cancel",text:"取消",class:"btn btn-secondary",handle:x=>(i.openCodeEditor=!1,p&&p(w),!0)},{name:"accept",text:"确定",class:"btn btn-primary",handle:x=>{N()&&(F.close(),i.openCodeEditor=!1)}}]});i.openCodeEditor=!0}return{show:S}}const Le={install(t){t.component(A.name,A)},register(t,e,n,r){t["collection-property-editor"]=A,e["collection-property-editor"]=Ue}};T.default=Le,T.useButtonItemsDesigner=qe,Object.defineProperties(T,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
package/farris.all.esm.js CHANGED
@@ -49686,8 +49686,8 @@ function wj(e, t, n) {
49686
49686
  resizeable: !0,
49687
49687
  render: () => r(tC, {
49688
49688
  ref: b,
49689
- modelValue: v,
49690
- "onUpdate:modelValue": (P) => v = P,
49689
+ modelValue: v.value,
49690
+ "onUpdate:modelValue": (P) => v.value = P,
49691
49691
  designerHostService: e,
49692
49692
  idField: "id",
49693
49693
  textField: "text",
@@ -543,7 +543,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
543
543
  {{rowData.${o.field}}}
544
544
  </span>`,(w=r.getFormDesignerInstance())==null||w.reloadPropertyPanel()),!o.onClickLinkCommand&&o.columnTemplate&&o.columnTemplateType==="hyperlink"&&(o.columnTemplate=`<span class="f-pretend-link f-cursor-pointer">
545
545
  {{rowData.${o.field}}}
546
- </span>`,(C=r.getFormDesignerInstance())==null||C.reloadPropertyPanel()),((V=o.editor)==null?void 0:V.beforeOpen)!==o.beforeOpen&&(o.editor.beforeOpen=o.beforeOpen),((x=o.editor)==null?void 0:x.onChange)!==o.onChange&&(o.editor.onChange=o.onChange)}}}getBasicPropConfig(o){const a=this;this.propertyConfig.categories.basic={description:"Basic Information",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},title:{description:"标题",title:"标题",type:"string"},binding:{description:"绑定的表单字段",title:"绑定",editor:{type:"binding-selector",bindingType:{enable:!1},editorParams:{componentSchema:o,needSyncToViewModel:!0,viewModelId:this.viewModelId,designerHostService:this.designerHostService,disableOccupiedFields:!0},textField:"bindingField"},refreshPanelAfterChanged:!0}},setPropertyRelates(i,r,l){if(i)switch(i&&i.propertyID){case"binding":{a.afterChangeBindingType(o,l),i.needRefreshEntityTree=!0;break}}}}}getAppearanceProperties(o,a){var i;this.propertyConfig.categories.appearance={description:"",title:"外观",properties:{resizable:{description:"允许拖拽改变列宽",title:"拖拽改变列宽",type:"boolean"},filterable:{visible:o.dataType!=="enum",description:"启用过滤",title:"启用过滤",type:"boolean"},sortable:{description:"启用排序",title:"启用排序",type:"boolean",visible:a.type!=="tree-grid"},draggable:{description:"允许列拖拽",title:"启用拖拽",type:"boolean"},width:{description:"列宽",title:"列宽",type:"number"},showTips:{description:"启用鼠标悬浮提示",title:"鼠标悬浮提示",type:"boolean"},halign:{description:"标题对齐方式",title:"标题对齐方式",type:"enum",editor:{data:[{id:"left",name:"左对齐"},{id:"center",name:"居中"},{id:"right",name:"右对齐"}]}},align:{description:"数据水平对齐方式选择",title:"数据水平对齐方式",type:"enum",editor:{data:[{id:"left",name:"左对齐"},{id:"center",name:"居中"},{id:"right",name:"右对齐"}]}},valign:{description:"数据垂直对齐方式选择",title:"数据垂直对齐方式",type:"enum",editor:{data:[{id:"top",name:"顶对齐"},{id:"middle",name:"居中"},{id:"bottom",name:"底对齐"}]}},summaryType:{description:"合计类型",title:"合计类型",visible:o.dataType==="number"&&!!((i=a.summary)!=null&&i.enable),type:"enum",editor:{data:[{id:"none",name:"无"},{id:"sum",name:"求和"}]},refreshPanelAfterChanged:!0}},setPropertyRelates(r,l,s){if(r)switch(r&&r.propertyID){case"width":{l.actualWidth=r.propertyValue;break}case"summaryType":{const{groupFields:c}=a.summary;!c.includes(l.field)&&r.propertyValue==="sum"&&c.push(l.field),c.includes(l.field)&&r.propertyValue==="none"&&c.splice(c.indexOf(l.field),1);break}case"columnTemplate":{r.propertyValue;break}case"enableGroup":r.propertyValue?a.group.groupFields=[l.field]:a.group.groupFields=[]}}}}getFieldEditorProperties(o,a){a.fieldEditable&&o.editor&&this.getFieldEditorProp(o)}setFormatterEnumData(o){var a,i;(a=o.formatter)!=null&&a.data&&!o.formatterEnumData&&(o.formatterEnumData=(i=o.formatter)==null?void 0:i.data)}getTemplateProperties(o){var r,l,s,c,f,u,d,m,p;const a=Object.prototype.hasOwnProperty;return{title:"格式化",description:"",properties:{type:{description:"",title:"类型",type:"enum",$converter:"/converter/change-formatter.converter",refreshPanelAfterChanged:!0,editor:{data:{enum:[{id:"enum",name:"枚举"},{id:"none",name:"无"}],boolean:[{id:"boolean",name:"布尔"},{id:"none",name:"无"}],number:[{id:"number",name:"数字"},{id:"none",name:"无"}],date:[{id:"date",name:"日期"},{id:"none",name:"无"}],datetime:[{id:"date",name:"日期"},{id:"none",name:"无"}],string:[{id:"enum",name:"枚举"},{id:"date",name:"日期"},{id:"none",name:"无"}]}[o.dataType]}},trueText:{title:"布尔为true时文本",$converter:"/converter/change-formatter.converter",type:"string",visible:((r=o.formatter)==null?void 0:r.type)==="boolean",refreshPanelAfterChanged:!0,description:"布尔为true时文本"},falseText:{title:"布尔为false时文本",$converter:"/converter/change-formatter.converter",type:"string",visible:((l=o.formatter)==null?void 0:l.type)==="boolean",refreshPanelAfterChanged:!0,description:"布尔为false时文本"},prefix:{title:"前缀",$converter:"/converter/change-formatter.converter",type:"string",visible:((s=o.formatter)==null?void 0:s.type)==="number",refreshPanelAfterChanged:!0,description:"前缀"},suffix:{title:"后缀",$converter:"/converter/change-formatter.converter",type:"string",visible:((c=o.formatter)==null?void 0:c.type)==="number",refreshPanelAfterChanged:!0,description:"后缀"},precision:{title:"精度",$converter:"/converter/change-formatter.converter",type:"number",visible:((f=o.formatter)==null?void 0:f.type)==="number",refreshPanelAfterChanged:!0,description:"精度"},decimal:{title:"小数分隔符",$converter:"/converter/change-formatter.converter",type:"string",visible:((u=o.formatter)==null?void 0:u.type)==="number",refreshPanelAfterChanged:!0,description:"小数分隔符"},thousand:{title:"千分位",$converter:"/converter/change-formatter.converter",type:"string",visible:((d=o.formatter)==null?void 0:d.type)==="number",refreshPanelAfterChanged:!0,description:"千分位"},dateFormat:{title:"日期格式",$converter:"/converter/change-formatter.converter",visible:((m=o.formatter)==null?void 0:m.type)==="date"||((p=o.formatter)==null?void 0:p.type)==="datetime",refreshPanelAfterChanged:!0,description:"日期格式",type:"enum",editor:{data:[{id:"yyyy-MM-dd",name:"yyyy-MM-dd"},{id:"yyyy/MM/dd",name:"yyyy/MM/dd"},{id:"dd/MM/yyyy",name:"dd/MM/yyyy"},{id:"MM/dd/yyyy",name:"MM/dd/yyyy"},{id:"yyyyMMdd",name:"yyyyMMdd"},{id:"yyyy年MM月dd日",name:"yyyy年MM月dd日"},{id:"yyyy-MM",name:"yyyy-MM"},{id:"yyyy/MM",name:"yyyy/MM"},{id:"yyyyMM",name:"yyyyMM"},{id:"yyyy年MM月",name:"yyyy年MM月"},{id:"MM/dd",name:"MM/dd"},{id:"MMdd",name:"MMdd"},{id:"MM-dd",name:"MM-dd"},{id:"MM月dd日",name:"MM月dd日"},{id:"yyyy",name:"yyyy"},{id:"yyyy年",name:"yyyy年"},{id:"yyyy-MM-dd HH:mm:ss",name:"yyyy-MM-dd HH:mm:ss"},{id:"yyyy/MM/dd HH:mm:ss",name:"yyyy/MM/dd HH:mm:ss"},{id:"yyyyMMddHHmmss",name:"yyyyMMddHHmmss"},{id:"yyyy-MM-dd HH:mm",name:"yyyy-MM-dd HH:mm"},{id:"yyyy/MM/dd HH:mm",name:"yyyy/MM/dd HH:mm"},{id:"yyyyMMddHHmm",name:"yyyyMMddHHmm"},{id:"yyyy年MM月dd日 HH时mm分ss秒",name:"yyyy年MM月dd日 HH时mm分ss秒"},{id:"yyyy年MM月dd日 HH时mm分",name:"yyyy年MM月dd日 HH时mm分"}]}}},setPropertyRelates(g,h,y){var v;if(g)switch(g&&g.propertyID){case"type":{g.propertyValue!=="none"&&h.columnTemplate,g.propertyValue==="boolean"&&(a.call(h.formatter,"trueText")||(h.formatter.trueText="是"),a.call(h.formatter,"falseText")||(h.formatter.falseText="否")),g.propertyValue==="number"&&(a.call(h.formatter,"prefix")||(h.formatter.prefix=""),a.call(h.formatter,"suffix")||(h.formatter.suffix=""),a.call(h.formatter,"precision")||(h.formatter.precision=0),a.call(h.formatter,"decimal")||(h.formatter.decimal="."),a.call(h.formatter,"thousand")||(h.formatter.thousand=",")),g.propertyValue==="date"&&(a.call(h.formatter,"dateFormat")||(h.formatter.dateFormat="yyyy-MM-dd")),g.propertyValue==="enum"&&(a.call(h.formatter,"data")||(h.formatter.data=[],(v=h.formatterEnumData)!=null&&v.length&&(h.formatterEnumData=[])));break}}}}}getFieldEditorProp(o,a="gridFieldEditor",i=!1){const r=this.formMetadataConverter.getRealEditorType(o.editor.type);let l;switch(r){case"avatar":l=new fu(this.componentId,this.designerHostService);break;case"check-group":l=new Iu(this.componentId,this.designerHostService);break;case"check-box":l=new Mu(this.componentId,this.designerHostService);break;case"combo-list":l=new Du(this.componentId,this.designerHostService);break;case"date-picker":l=new nf(this.componentId,this.designerHostService);break;case"lookup":l=new _s(this.componentId,this.designerHostService);break;case"number-range":l=new Df(this.componentId,this.designerHostService);break;case"number-spinner":l=new Of(this.componentId,this.designerHostService);break;case"radio-group":l=new Bf(this.componentId,this.designerHostService);break;case"switch":l=new Af(this.componentId,this.designerHostService);break;case"textarea":l=new Ff(this.componentId,this.designerHostService);break;case"time-picker":l=new Rf(this.componentId,this.designerHostService);break;case"language-textbox":l=new Lf(this.componentId,this.designerHostService);break;default:l=new ef(this.componentId,this.designerHostService)}this.setDesignViewModelField(o);const s=this,{canChangeControlType:c,editorTypeList:f}=this.getAvailableEditorType(o);this.propertyConfig.categories[`${a}_editorType`]={description:"",title:"编辑器类型",propertyData:o.editor,tabId:"gridFieldEditor",tabName:"编辑器",properties:{type:{description:"",title:"编辑器类型",type:"enum",$converter:"/converter/change-editor.converter",parentPropertyID:"editor",refreshPanelAfterChanged:!0,editor:{type:"combo-list",textField:"value",valueField:"key",idField:"key",data:f,readonly:!c}}},setPropertyRelates(m,p){if(m)switch(m&&m.propertyID){case"type":{s.changeFieldEditorType(o,m.propertyValue);break}}}};const u=["id","type","class","style","binding","label","responseLayout","visible","fill"],d=l.getGridFieldEdtiorPropConfig(o);Object.keys(d).map(m=>{const p=d[m],g={};if(Object.keys(p.properties).map(h=>{u.findIndex(y=>y===h)===-1&&p.properties[h]!==!1&&(g[h]=p.properties[h])}),Object.keys(g).length!==0){const h=p==null?void 0:p.title,y="gridFieldEditor",v="编辑器",b=p==null?void 0:p.description,w=(p==null?void 0:p.$converter)||"";s.propertyConfig.categories[a+"_"+m]={title:h,hide:Object.prototype.hasOwnProperty.call(p,"hide")?p.hide:!1,hideTitle:Object.prototype.hasOwnProperty.call(p,"hideTitle")?p.hideTitle:!1,tabId:p.tabId||y,tabName:p.tabName||v,description:b,$converter:w,parentPropertyID:"editor",propertyData:o,properties:g,setPropertyRelates:p==null?void 0:p.setPropertyRelates}}})}changeFieldEditorType(o,a){const i=this.designViewModelUtils.getDgViewModel(this.viewModelId);i.changeField(this.designViewModelField.id,{editor:{$type:a},name:this.designViewModelField.name,require:this.designViewModelField.require,readonly:this.designViewModelField.readonly},!1);const r=this.formSchemaUtils.getComponentByViewModelId(this.viewModelId),l=this.formSchemaUtils.selectNode(r,d=>d.type===he["data-grid"].type||d.type===he["tree-grid"].type);if(!l)return;const s=i.fields.find(d=>d.id===this.designViewModelField.id),c=this.controlCreatorUtils.setGridFieldProperty(a,s,null,!0),f=Object.prototype.hasOwnProperty.call(l,"columns")?l.columns:l.fields,u=f.findIndex(d=>d.id===o.id);if(u>-1&&f[u].editor){const d={};["readonly","required","placeholder"].map(m=>{Object.prototype.hasOwnProperty.call(f[u].editor,m)&&(d[m]=f[u].editor[m])}),f[u].editor=Object.assign(c.editor,d)}Object.assign(f[u],{dataType:c.dataType},c.formatter?{formatter:c.formatter}:{}),!c.formatter&&f[u].formatter&&delete f[u].formatter}checkCanChangeControlType(o,a){return!(!o.binding||!this.designViewModelField||this.designViewModelField.$type!==wn.SimpleField)}getAvailableEditorType(o){var r;const a=this.checkCanChangeControlType(o,this.viewModelId);if(!a)return{canChangeControlType:!1,editorTypeList:[{key:o.editor.type,value:((r=he[o.editor.type])==null?void 0:r.name)||o.editor.type}]};let i=[];return this.designViewModelField&&this.designViewModelField.$type===wn.SimpleField&&(i=Lo.getEditorTypesByMDataType(this.designViewModelField.type.name,this.designViewModelField.multiLanguage,o.type)),{canChangeControlType:a,editorTypeList:i}}afterChangeBindingType(o,a){!o||!a||(o.field=a.bindingPath,o.dataType=this.controlCreatorUtils.mapControlType2GridFieldType(a),this.controlCreatorUtils.setGridFieldFormatter(o.dataType,o,a))}getFieldEditorPropForCard(o,a,i="gridCardEditor",r=null){var u;const l=this.formMetadataConverter.getRealEditorType(o.editor.type);let s;switch(l){case"avatar":s=new fu(this.componentId,this.designerHostService);break;case"check-group":s=new Iu(this.componentId,this.designerHostService);break;case"check-box":s=new Mu(this.componentId,this.designerHostService);break;case"combo-list":s=new Du(this.componentId,this.designerHostService);break;case"date-picker":s=new nf(this.componentId,this.designerHostService);break;case"lookup":s=new _s(this.componentId,this.designerHostService);break;case"number-range":s=new Df(this.componentId,this.designerHostService);break;case"number-spinner":s=new Of(this.componentId,this.designerHostService);break;case"radio-group":s=new Bf(this.componentId,this.designerHostService);break;case"switch":s=new Af(this.componentId,this.designerHostService);break;case"textarea":s=new Ff(this.componentId,this.designerHostService);break;case"time-picker":s=new Rf(this.componentId,this.designerHostService);break;case"language-textbox":s=new Lf(this.componentId,this.designerHostService);break;default:s=new ef(this.componentId,this.designerHostService)}s.checkCanChangeControlType=()=>!(!o.binding||o.binding.type==="Variable"&&(s.bindingVarible=this.formSchemaUtils.getVariableById(o.binding.field),!s.bindingVarible)),s.getAvailableEditorType=()=>{var p,g;const d=s.checkCanChangeControlType(o,this.viewModelId);if(!d||!r)return{canChangeControlType:!1,editorTypeList:[{key:o.editor.type,value:((p=he[o.editor.type])==null?void 0:p.name)||o.editor.type}]};let m=[];return s.bindingVarible?m=Lo.getEditorTypesByMDataType(s.bindingVarible.type,!!(r!=null&&r.multiLanguage)):m=Lo.getEditorTypesByMDataType((g=r==null?void 0:r.type)==null?void 0:g.name,!!(r!=null&&r.multiLanguage)),{canChangeControlType:d,editorTypeList:m}},s.formRule=a,s.expressionProperty.getExpressionData=()=>a.expressions||[],s.expressionProperty.getExpressionConverter=(d,m)=>({convertFrom:(p,g,h,y)=>{var w;const v=(w=a.expressions)==null?void 0:w.find(C=>C.target===d);if(!v)return"";const b=v.rules.find(C=>C.type===g);return b&&(b==null?void 0:b.value)||""},convertTo:(p,g,h,y,v)=>{var w;if(g==="dataPicking"&&(h!=null&&h.target)){const C=`${h.target}_dataPicking`;((w=h.rules)==null?void 0:w.some(x=>x.id===C&&x.value))?p.dictPickingExpressionId=C:delete p.dictPickingExpressionId}if(!h)return;let b=a.expressions||[];if(!h.rules||!h.rules.length)b=b.filter(C=>C.target!==h.target);else{const C=b.findIndex(V=>V.target===h.target);C===-1?b.push(h):b[C]=fe.cloneDeep(h)}a.expressions=JSON.parse(JSON.stringify(b))}}),this.setDesignViewModelField(o);const c=this,f=(u=s.getPropertyConfig(o))==null?void 0:u.categories;return Object.keys(f).map(d=>{const m=f[d];if(d==="basic"){const{editor:p}=m.properties.binding;p&&(p.readonly=!0),m.properties.position={title:"在卡片标题中显示",description:"启用后,控件将显示在卡片标题中",type:"boolean",defaultValue:!1,$converter:{convertFrom:(g,h)=>o.position==="header",convertTo:(g,h,y)=>{g.position=y?"header":"body"}}}}if(d==="expressions"&&Object.keys(m.properties).forEach(p=>{(p==="compute"||p==="dependency"||p==="dataPicking")&&(m.properties[p].visible=!1)}),Object.keys(m.properties).length!==0){const p=m==null?void 0:m.title,g="gridFieldEditor",h="编辑器",y=m==null?void 0:m.description,v=(m==null?void 0:m.$converter)||"";c.propertyConfig.categories[i+"_"+d]={title:p,hide:Object.prototype.hasOwnProperty.call(m,"hide")?m.hide:!1,hideTitle:Object.prototype.hasOwnProperty.call(m,"hideTitle")?m.hideTitle:!1,tabId:m.tabId||g,tabName:m.tabName||h,description:y,$converter:v,parentPropertyID:"editor",propertyData:o,properties:m.properties,setPropertyRelates:m==null?void 0:m.setPropertyRelates}}}),this.propertyConfig}}let Fo=function(e){return e.condition="condition",e.formatter="formatter",e.other="other",e}({});const NE=t.defineComponent({name:"FormRuleEditor",props:{rule:Object,gridPropertyData:Object,entities:Array,plainFields:Array},emits:["updateRuleName","updateIsDefault"],setup(e,n){const o=t.ref(),a=t.ref(),i=t.ref(),r=t.ref(),l=t.ref([]),{onAddFilter:s,onClear:c,onMoveBottom:f,onMoveNext:u,onMovePrev:d,onMoveTop:m,onInsert:p,onRemove:g,activeRowIndex:h,onSelectRow:y,canClear:v,canMove:b,validateCondition:w,resetActiveRow:C}=As({singleValue:!0},l),V=t.ref(Fo.condition),x=t.inject("viewModelId"),N=t.inject("componentId"),S=t.inject("designerHostService"),{controlCreatorUtils:k,eventsEditorUtils:T,messagerService:P,dialogCodeView:F,useDataFields:I}=S,E=I==null?void 0:I.getFieldsTree(),D=t.ref(),M=t.ref(),$=t.ref(),B=new yu(N,S,!1),O=t.ref(!0),R=[{label:"等于",value:0},{label:"不等于",value:1},{label:"大于",value:2},{label:"大于等于",value:3},{label:"小于",value:4},{label:"小于等于",value:5},{label:"包含",value:6},{label:"不包含",value:9},{label:"为空",value:1001},{label:"不为空",value:1002}],A=de=>({"btn mr-2":!0,"btn-primary":V.value===de,"btn-link":V.value!==de}),L=t.ref(e.rule||{});L.value.headerButtons=L.value.headerButtons||[],t.watch(()=>l.value,(de,Me)=>{de!==Me&&(L.value.condition=de)});const _=(de,Me)=>{const Te=`${Me.raw.name} [${Me.raw.bindingPath}]`;return t.createVNode("span",{title:Te},[Te])};function W(de){L.value.fields=de,I.fieldsOrder.value[L.value.id]=de}const U=()=>{var Me,Te,le;const de=(Te=(Me=L.value)==null?void 0:Me.fields)==null?void 0:Te.findIndex(ce=>ce.id===r.value.id);if(de!==-1&&((le=L.value)!=null&&le.fields)){const ce=[...L.value.fields];if(ce[de]=r.value,L.value.fields=ce,$.value){const Se=$.value.selectedFields.findIndex(Z=>Z.columnSchema.id===r.value.id);if(Se!==-1){const Z=[...$.value.selectedFields];Z[Se].columnSchema=r.value,Z[Se].name=r.value.label||r.value.name,$.value.selectedFields=Z}}}};function Y(de){var Me;V.value!==de&&(de!==Fo.formatter&&(r.value&&U(),L.value.fields=(Me=$.value)==null?void 0:Me.selectedFields.map(Te=>Te.columnSchema)),V.value=de)}const Q=()=>{var Me,Te;const de=new tC(N,S);if(a.value=r.value?de.getFieldEditorPropForCard(r.value,L.value,"gridCardEditor",D.value):null,!a.value){(Me=o.value)==null||Me.updatePropertyConfig(null,r.value,!0);return}a.value.categories.gridCardEditor_eventsEditor.setPropertyRelates=(le,ce)=>{const{propertyValue:Se}=le;if(delete r.value[x],Se){const Z=()=>{if(T.saveRelatedParameters(r.value,x,Se.events,Se),Se.boundEventsList&&Se.boundEventsList.length>0){const re=Se.boundEventsList.find(ue=>ue.boundEvents&&ue.boundEvents.label==="onClickLabel");ce.linkLabel=!!re}else ce.linkLabel=!1};Se.isAddControllerMethod&&(Se.controlInfo={type:r.value.type,name:r.value.label},F.closeCallback=()=>{o==null||o.value.reloadPropertyPanel()}),Z()}},Object.keys(a.value.categories).forEach(le=>{const{properties:ce}=a.value.categories[le];ce&&Object.keys(ce).forEach(Se=>{ce[Se].refreshPanelAfterChanged=!1,["maxDate","minDate","defaultTime"].includes(Se)&&(ce[Se].editor.propertyTypes=["Const"])})}),(Te=o.value)==null||Te.updatePropertyConfig(a.value,r.value,!0)};function z(de){const{changeObject:Me,designerItem:Te}=de,{categoryId:le,propertyID:ce,propertyValue:Se}=Me;if((le==="gridCardEditor_editorType"||le==="gridCardEditor_basic")&&ce==="type"){D.value.editor.$type=Se;const Z=k.setFormFieldProperty(D.value,Se),re=fe.cloneDeep(r.value.editor);Z.id=r.value.id,Z.field=Z.path,Z.label=r.value.label,Z.editor=Z.editor||{},Z.editor.readonly=re.readonly||!1,Z.editor.required=re.required||!1,Z.visible=r.value.visible||!0,r.value=Z}U(),le!=="gridCardEditor_eventsEditor"&&t.nextTick(()=>{O.value=!1,t.nextTick(()=>{Q(),O.value=!0})})}function j(de){var Me,Te;D.value=de,r.value=de?de.columnSchema:null,i.value=((Me=de==null?void 0:de.columnSchema)==null?void 0:Me.type)||"",Q(),I.fieldsOrder.value=I.fieldsOrder.value||{},I.fieldsOrder.value[L.value.id]=(Te=$.value)==null?void 0:Te.selectedFields.map(le=>le.columnSchema)}function H(){P.question("确定清空当前设置的所有字段吗?","",()=>{var de;L.value.fields=[],(de=$.value)==null||de.clearSelectedFields(),j(null)},()=>{})}function q(de){de.target._value=L.value.name,L.value.name=fe.trim(de.target.value),n.emit("updateRuleName",L.value,de)}function G(de){L.value.footerContent=de}function J(de){L.value.headerContent=de}function K({selectedData:de,propertyConfig:Me,modalRef:Te,buttonPropertyPanelInstance:le}){Me.value=B.getPropertyConfig(de.value,!1,!1,Te),Me.value.categories.eventsEditor.setPropertyRelates=(ce,Se)=>{const Z=ce.propertyValue;if(delete de.value[x],Z){const re=()=>{T.saveRelatedParameters(de.value,x,Z.events,Z)};Z.isAddControllerMethod&&(Z.controlInfo={type:de.value.type,name:de.value.text},F.closeCallback=()=>{le==null||le.reloadPropertyPanel()},re())}}}const ne={modalTitle:"自定义按钮",editable:!1,idField:"id",textField:"text",allowCollapse:!1,enableClear:!0,defaultComponentSchema:{id:"button",type:"button",text:"按钮",appearance:{class:"btn btn-secondary"},visible:!0,disabled:!1,onClick:""}};function oe(de){L.value.headerButtons=de}t.watch(()=>e.rule,(de,Me)=>{var Te,le;Me&&$.value&&(Me.fields=(Te=$.value)==null?void 0:Te.selectedFields.map(ce=>ce.columnSchema).map(ce=>Me.fields.find(Se=>Se.id===ce.id))),L.value=de||{name:"",fields:[]},l.value=L.value.condition||[],L.value.showHeader=L.value.showHeader==null?!0:L.value.showHeader,de||j(null),(le=$.value)==null||le.clearActiveItem()});function ie(de){L.value.isDefault=de,de&&L.value.condition&&L.value.condition.length?P.question("设为默认格式将清空格式条件,是否继续?","",()=>{c(),n.emit("updateIsDefault",L.value)},()=>{L.value.isDefault=!1}):n.emit("updateIsDefault",L.value)}const me=t.computed(()=>({"f-utils-fill d-flex flex-column":!0," no-need-filters":L.value.isDefault}));return()=>{var de,Me,Te;return t.createVNode("div",{class:"d-flex flex-column h-100 "},[t.createVNode("div",{class:"form-rule-items f-utils-fill d-flex flex-column"},[t.createVNode("div",{style:"height: 50px;",class:"d-flex align-items-center mx-3"},[t.createVNode("span",{class:"farris-label-text"},[t.createTextVNode("格式名称:")]),t.createVNode("input",{class:"form-control f-utils-fill mr-3",type:"text",maxlength:"100",onBlur:q,ref:M,value:L.value.name,title:L.value.name,placeholder:"请输入格式名称,最多可输入100个字符",style:"text-align: left;text-overflow: ellipsis;"},null),t.createVNode("div",{class:"custom-control custom-checkbox",style:"display: inline-block;"},[t.withDirectives(t.createVNode("input",{id:"isDefaultFormRule",title:"checkbox-input",type:"checkbox",class:"custom-control-input","onUpdate:modelValue":[le=>L.value.isDefault=le,ie]},null),[[t.vModelCheckbox,L.value.isDefault]]),t.createVNode("label",{style:"padding-left: 20px;",class:"custom-control-label",for:"isDefaultFormRule"},[t.createTextVNode("默认格式")])])]),t.createVNode("div",{class:"mx-3 mb-2 d-flex align-items-center"},[t.createVNode("div",{class:"f-utils-fill"},[t.createVNode("button",{class:A(Fo.condition),onClick:()=>Y(Fo.condition)},[t.createTextVNode("格式条件")]),t.createVNode("button",{class:A(Fo.formatter),onClick:()=>Y(Fo.formatter)},[t.createTextVNode("字段设置")])]),V.value===Fo.formatter&&L.value&&t.createVNode("button",{disabled:!((de=L.value.fields)!=null&&de.length),class:"btn btn-link",onClick:()=>H()},[t.createTextVNode("清空")])]),V.value===Fo.condition&&t.createVNode("div",{class:me.value},[t.createVNode(Tf,{conditions:l.value,fields:E,singleValue:!0,idField:"bindingPath",valueField:"bindingPath",formatter:_,activeIndex:h.value,onInsert:le=>p(le),enableSearch:!0,onRemove:le=>g(le),compareOperators:R,onRowClick:le=>y(le)},null),t.createVNode(xf,{canClear:v,canMove:b,onAdd:s,onClear:c,onMoveBottom:f,onMoveNext:u,onMovePrev:d,onMoveTop:m},null)]),V.value===Fo.formatter&&t.createVNode("div",{class:"f-utils-fill d-flex ml-2"},[t.createVNode("div",{class:"f-utils-fill d-flex"},[t.createVNode(dE,{gridPropertyData:e.gridPropertyData,fields:L.value.fields,ref:$,onSelectionFieldChanged:j,entities:e.entities,plainFields:e.plainFields,onUpdateFields:W},null)]),t.createVNode(td,{enableSearch:O.value,ref:o,propertyConfig:a.value,propertyName:i.value,onPropertyChanged:z},null)]),V.value===Fo.other&&t.createVNode("div",{class:"f-utils-fill d-flex flex-column ml-3",style:"overflow: auto;"},[t.createVNode("div",{class:"custom-control custom-checkbox mb-2",style:"display: inline-block;"},[t.withDirectives(t.createVNode("input",{id:"enableHeader",title:"checkbox-input",type:"checkbox",class:"custom-control-input","onUpdate:modelValue":le=>L.value.showHeader=le},null),[[t.vModelCheckbox,L.value.showHeader]]),t.createVNode("label",{style:"padding-left: 20px;",class:"custom-control-label",for:"enableHeader"},[t.createTextVNode("启用头部")])]),!!((Me=L.value)!=null&&Me.showHeader)&&t.createVNode(t.Fragment,null,[t.createVNode("div",{class:"d-flex flex-column mr-3 mb-3",style:"height: 200px;min-height: 200px;"},[t.createVNode("div",{class:"mb-2 d-flex align-items-center"},[t.createVNode("label",{class:"m-0 mr-2"},[t.createTextVNode("头部工具栏")]),t.createVNode("div",{class:"farris-input-wrap"},[t.createVNode($s,t.mergeProps(ne,{modelValue:L.value.headerButtons,onValueChange:oe,onSelectionChange:K}),null)])]),t.createVNode("label",null,[t.createTextVNode("头部模板")]),t.createVNode(wf,{modelValue:L.value.headerContent,onValueChanged:J,class:"f-utils-fill",lineNumbers:"on",theme:"vs-dark",language:"html"},null)])]),t.createVNode("div",{class:"custom-control custom-checkbox mb-2",style:"display: inline-block;"},[t.withDirectives(t.createVNode("input",{id:"enableFooter",title:"checkbox-input",type:"checkbox",class:"custom-control-input","onUpdate:modelValue":le=>L.value.showFooter=le},null),[[t.vModelCheckbox,L.value.showFooter]]),t.createVNode("label",{style:"padding-left: 20px;",class:"custom-control-label",for:"enableFooter"},[t.createTextVNode("启用页脚")])]),!!((Te=L.value)!=null&&Te.showFooter)&&t.createVNode("div",{class:"d-flex flex-column mr-3",style:"height: 200px;min-height: 200px;"},[t.createVNode("label",null,[t.createTextVNode("页脚内容")]),t.createVNode(wf,{modelValue:L.value.footerContent,onValueChanged:G,class:"f-utils-fill",lineNumbers:"on",theme:"vs-dark",language:"html"},null)])])])])}}});function TE(e,n){const{designViewModelUtils:o,formSchemaUtils:a,schemaService:i,designerContext:r,controlCreatorUtils:l}=e,s=t.ref([]),c=t.ref([]);function f(m,p,g=[]){return m&&m.forEach(h=>{g.push(h);const y=p.find(v=>{var b;return((b=v.binding)==null?void 0:b.field)===h.data.id});if(y&&!y.editor&&h.data.id===y.binding.field){const v=l.setFormFieldProperty(i.getFieldByID(h.data.id));y.editor=v.editor}h.data.columnSchema=y,h.children&&f(h.children,p,g),r.appendIdentifyForNewControl&&(!y||y[r.identifyForNewControl])&&r.appendIdentifyForNewControl(h)}),g}function u(){if(a.designerMode==="PC_RTC"&&i.rtcAddedTreeNodes.value){const m=i.getTableInfoByViewModelId(n);if(m!=null&&m.id){const p=i.rtcAddedTreeNodes.value[m.id];p!=null&&p.length&&(s.value=s.value.concat(p))}}}function d(m){s.value=o.getAllFields2TreeByVMId(n),u(),c.value=f(s.value,m)}return{entities:s,plainFields:c,initEntities:d}}const xE=t.defineComponent({name:"FormRules",props:{rules:Array,designerHostService:Object,gridPropertyData:Object,viewModelId:String,componentId:String},emits:["updateRules"],setup(e,n){var w;const o=t.ref(null),{componentSchemaService:a,formSchemaUtils:i,useDataFields:r}=e.designerHostService;t.provide("useFormSchema",i),t.provide("SchemaService",a),t.provide("designerHostService",e.designerHostService),t.provide("viewModelId",e.viewModelId),t.provide("componentId",e.componentId);const l=t.ref(e.rules),{entities:s,plainFields:c,initEntities:f}=TE(e.designerHostService,e.viewModelId||"");t.watch(()=>e.rules,C=>{l.value=C,(!C||!C.length)&&(o.value=null)});function u(C){var V;(!C||C.id!==((V=o.value)==null?void 0:V.id))&&(o.value=C)}function d(){n.emit("updateRules",l.value)}function m(C){var x;const V=C.removed;l.value=((x=l.value)==null?void 0:x.filter(N=>N.id!==V.id))||[],d()}const p=t.computed(()=>{var C;return((C=e.gridPropertyData)==null?void 0:C.type)==="data-grid"?"datagrid":"formcard"}),g=fe.cloneDeep(((w=e.gridPropertyData)==null?void 0:w.columns)||[]).map(C=>{!C.label&&C.title&&(C.label=C.title);const V=r.columnPropertyClean(C);return{id:V.id,type:V.type,field:V.field,binding:V.binding,dataType:V.dataType,editor:null,label:V.label,appearance:V.appearance}});f(g);const h=t.ref(),y=t.computed(()=>{var C,V;return{overflow:"hidden",opacity:(C=l.value)!=null&&C.length?1:.5,"pointer-events":(V=l.value)!=null&&V.length?"auto":"none"}});function v(C,V){l.value&&l.value.length&&l.value.filter(N=>N.id!==C.id).filter(N=>N.name===C.name).length&&(new _t().error({message:"格式名称已存在,请输入其他名称",position:"top-center"}),C.name=V.target._value,V.target.focus())}function b(C){l.value&&l.value.length&&l.value.forEach(V=>{V.id===C.id?V.isDefault=C.isDefault:V.isDefault=!1})}return()=>t.createVNode("div",{class:"d-flex flex-column h-100 mx-2 border"},[t.createVNode(In,null,{default:()=>[t.createVNode(yn,{position:"left",width:200,minWidth:130,maxWidth:300},{default:()=>{var C;return[t.createVNode(kI,{rules:l.value||[],onSelect:u,fields:g,onAdd:d,onRemove:m,controlId:(C=e.gridPropertyData)==null?void 0:C.id,ruleType:p.value},null)]}}),t.createVNode(yn,{position:"center","custom-class":"layout-border flex-column",style:y.value},{default:()=>[t.createVNode(NE,{ref:h,rule:o.value,gridPropertyData:e.gridPropertyData,onUpdateRuleName:v,onUpdateIsDefault:b,entities:s.value,plainFields:c.value},null)]})]})])}});function kE(e){const n=t.ref({});function o(l){const s=l.formSchemaService.getSchemaEntities();if(!(s!=null&&s.length))return[];const c=s[0];if(!(c!=null&&c.type))return[];const f=l.buildEntityFieldsTreeData(c.type.fields,[]),u=l.buildChildEntityTreeData(c.type.entities,[]);return u!=null&&u.length&&(f==null||f.push(...u)),f}function a(l,s,c="label"){return{id:l.id,name:l.name,bindingPath:[...s,l.label].join("."),parents:s,type:"field",$type:l.$type}}function i(){const l=new os(e);return l.createTreeNode=a,o(l)}function r(l){return l.type="form-group",l.appearance={class:"col-12 col-md-6 col-xl-3 col-el-2"},["title","width","align","halign","formatter","filter","showSetting","actualWidth"].forEach(c=>{delete l[c]}),l}return{getFieldsTree:i,columnPropertyClean:r,fieldsOrder:n}}function FE(e,n){const{modalService:o,formSchemaUtils:a,messagerService:i,dialogCodeView:r}=e,{componentId:l,gridPropertyData:s,viewModelId:c}=n,f=kE(a);e.useDataFields=f;const u=t.ref(n.rules),d=fe.cloneDeep(n.rules),m=t.ref();function p(C){const V=o==null?void 0:o.getCurrentModal();o&&V.close(C)}function g(C){const V=o==null?void 0:o.getCurrentModal();V&&V.maxDialog(C)}const h=t.computed(()=>{const C=o==null?void 0:o.getCurrentModal();return C==null?void 0:C.isMaximized});function y(C){const V=[],x=new Map;return C.forEach((N,S)=>{if(N.name){const k=N.name.trim();k&&(x.has(k)||x.set(k,[]),x.get(k).push(S))}}),x.forEach((N,S)=>{N.length>1&&V.push({index:N[0],message:"第 "+N.map(k=>k+1).join(",")+" 格式名称重复"})}),C.forEach((N,S)=>{if((!N.name||!N.name.trim())&&V.push({index:S,message:"请输入格式名称"}),!N.isDefault&&(!N.condition||!Array.isArray(N.condition)||N.condition.length===0))V.push({index:S,message:"请设置格式条件"});else if(N.isDefault)(!N.fields||!Array.isArray(N.fields)||N.fields.length===0)&&V.push({index:S,message:"请配置格式字段"});else{const{validateCondition:k}=As({singleValue:!0},t.ref(N.condition)),T=k();T?V.push({index:S,message:"格式条件"+T.message}):(!N.fields||!Array.isArray(N.fields)||N.fields.length===0)&&V.push({index:S,message:"请配置格式字段"})}}),{isValid:V.length===0,errors:V}}function v(C){const x=a.getFormRules().filter(S=>S.controlId!==(s==null?void 0:s.id));C.forEach(S=>{S.viewModelId=c});const N=[...x,...C];a.setFormRules(N)}function b(C){const V=y(C);if(!C.some(N=>N.isDefault===!0))return i==null||i.error("请设置默认格式!"),!1;if(!V.isValid&&V.errors.length>0){let N="<b>请检查以下问题:</b><ul>";return V.errors.forEach(S=>{if(S.index===-1)N+=`<li>${S.message}</li>`;else{const k=C[S.index].name||`第 ${S.index+1} 条`;N+=`<li>${k}: ${S.message}</li>`}}),N+="</ul>",i==null||i.error(N),!1}return Object.keys(f.fieldsOrder.value||{}).forEach(N=>{const S=f.fieldsOrder.value[N],k=C.find(T=>T.id===N);if(k){const T=S.map(P=>k.fields.find(F=>F.id===P.id));k.fields=T}}),v(C),!0}function w(C){const V=o==null?void 0:o.open({fitContent:!1,width:970,height:600,title:"配置卡片格式",showMaxButton:!0,showButtons:!0,draggable:!0,resizeable:!0,stopMoveHandle:()=>{const x=document.activeElement;x&&typeof x.blur=="function"&&x.blur()},render:()=>t.createVNode(xE,{ref:m,isMaximized:h.value,designerHostService:e,gridPropertyData:s,viewModelId:c,rules:u.value,componentId:l,onMaximize:g,onCloseModal:p,onUpdateRules:x=>{u.value=x,t.nextTick(()=>{V==null||V.disableButtons(["clear"],!x.length)})}},null),closedCallback:(x,N)=>{r.openCodeEditor=!1,C&&C()},buttons:[{name:"clear",text:"移除所有格式",disabled:!u.value.length,class:"btn btn-link px-2",styles:"position: absolute;left:20px",handle:x=>{i.question("确定要删除所有格式吗?","",()=>{u.value=[],V==null||V.disableButtons(["clear"],!0)},()=>{})}},{name:"cancel",text:"取消",class:"btn btn-secondary",handle:x=>(r.openCodeEditor=!1,v(d),!0)},{name:"accept",text:"确定",class:"btn btn-primary",handle:x=>{b(u.value)&&(V.close(),r.openCodeEditor=!1)}}]});r.openCodeEditor=!0}return{show:w}}function ME(e,n,o){const{modalService:a,formSchemaUtils:i,eventsEditorUtils:r,dialogCodeView:l,useFormCommand:s}=e,{componentId:c,modalPropertyData:f,viewModelId:u,onSubmitHandle:d,onCancelHandle:m,defaultClass:p}=n,g=t.ref(n.buttons),h={id:"button",type:"button",text:"按钮",appearance:{class:p||"btn btn-secondary"},visible:!0,disabled:!1,onClick:""},y=new yu(c,e,!1),v=t.ref(),b=fe.cloneDeep(n.buttons||[]);function w(){g.value=[]}function C(){if(d)return typeof d=="function"&&d(g.value);{const N=i.getExternalComponents().find(S=>S.id===f.id);return N&&(N.buttons=g.value),!0}}function V({selectedData:N,propertyConfig:S,propertyPanelRef:k}){S.value=y.getPropertyConfig(N.value,!1,!1),S.value.categories.behavior.properties.disabled.refreshPanelAfterChanged=!1,S.value.categories.eventsEditor.setPropertyRelates=(T,P)=>{const F=T.propertyValue;if(delete N.value[u],F){const I=()=>{r.saveRelatedParameters(N.value,u,F.events,F)};F.isAddControllerMethod&&(F.controlInfo={type:N.value.type,name:N.value.text},e.dialogCodeView.closeCallback=()=>{k==null||k.reloadPropertyPanel()}),I()}},o&&o(S.value)}function x(N){const S=a==null?void 0:a.open({fitContent:!1,width:800,height:600,title:"自定义按钮",showMaxButton:!0,showButtons:!0,draggable:!0,resizeable:!0,render:()=>t.createVNode(fv,{ref:v,modelValue:g,"onUpdate:modelValue":k=>g=k,designerHostService:e,idField:"id",textField:"text",defaultComponentSchema:h,onSelectionChange:V,useFormCommand:s,useFormSchema:i,allowCollapse:!1,enableClear:!0,onClear:w},null),closedCallback:(k,T)=>{l.openCodeEditor=!1,N&&N()},buttons:[{name:"cancel",text:"取消",class:"btn btn-secondary",handle:k=>(l.openCodeEditor=!1,m&&m(b),!0)},{name:"accept",text:"确定",class:"btn btn-primary",handle:k=>{C()&&(S.close(),l.openCodeEditor=!1)}}]});l.openCodeEditor=!0}return{show:x}}const PE={install(e){e.component($s.name,$s)},register(e,n,o,a){e["collection-property-editor"]=$s,n["collection-property-editor"]=MI}};class IE extends qt{constructor(n,o){super(n,o)}getModalButtons(n){const o=this.formSchemaUtils.getExternalComponents().find(a=>a.id===n);return o?o.buttons||[]:[]}setModalButtons(n,o){const a=this.formSchemaUtils.getExternalComponents().find(i=>i.id===n);a&&(a.buttons=o)}getPropertyConfig(n,o){var a;return this.getBasicPropConfig(n),this.getAppearanceProperties(n,o),(n.displayType==="Card"&&((a=n.columns)!=null&&a.length)||n.displayType!=="Card")&&(this.propertyConfig.categories.column=tv().getColumnOptionProperties(n)),n.displayType!=="Card"&&(this.propertyConfig.categories.command=nv(this).getCommandColumnProperties(n),this.propertyConfig.categories.rowOption=ev().getRowOptionProperties(n),this.propertyConfig.categories.summary=ov().getSummaryProperties(n)),this.propertyConfig.categories.group=NI().getGroupProperties(n,this.viewModelId),n.displayType!=="Card"&&(this.propertyConfig.categories.sort=TI().getSort(n),this.propertyConfig.categories.filter=xI().getFilter(n)),this.getEventPropConfig(n),this.propertyConfig}getBasicPropConfig(n){var l,s,c;const o=(c=(s=(l=this.formSchemaUtils.getFormSchema())==null?void 0:l.module)==null?void 0:s.entity[0])==null?void 0:c.entities[0],a=this.assembleSchemaEntityToTree(o,0),i=this,r=super.getBasicPropConfig(n);this.propertyConfig.categories.basic={description:"Basic Information",title:"基本信息",properties:{...r.properties,dataSource:{description:"绑定数据源",title:"绑定数据源",editor:{type:"combo-tree",textField:"name",valueField:"label",data:a,editable:!1},readonly:!0}},setPropertyRelates(f,u){switch(f&&f.propertyID){case"dataSource":{const d=i.formSchemaUtils.getViewModelById(i.viewModelId);if(d){const m=a.find(p=>p.label===f.propertyValue);d.bindTo=m.bindTo}i.designViewModelUtils.assembleDesignViewModel();break}}}}}assembleSchemaEntityToTree(n,o,a,i="",r=[]){const l=i?`${i}/${n.label}`:"/";return r.push({id:n.id,name:n.name,label:n.label,layer:o,parent:a&&a.id,bindTo:l.replace("//","/")}),n.type.entities&&n.type.entities.length&&n.type.entities.map(s=>this.assembleSchemaEntityToTree(s,o+1,n,l,r)),r}getAppearanceProperties(n,o){this.propertyConfig.categories.appearance=sv().getDataGrid(n,this.viewModelId),this.getGridRuleProperties(n,o),n.displayType!=="Card"&&(this.propertyConfig.categories.selection=iv().getSelection(n),this.propertyConfig.categories.rowNumber=rv().getRowNumber(n),this.propertyConfig.categories.pagination=lv().getPagination(n,this.isSubGrid()))}getEventPropConfig(n){const o=[...av().initEvent(n)],a=this,i=a.eventsEditorUtils.formProperties(n,a.viewModelId,o),r=a.createBaseEventProperty(i);this.propertyConfig.categories.eventsEditor={title:"事件",hideTitle:!0,properties:r,refreshPanelAfterChanged:!0,tabId:"commands",tabName:"交互",setPropertyRelates(l,s){const c=l.propertyValue;delete n[a.viewModelId],c&&(c.setPropertyRelates=this.setPropertyRelates,a.eventsEditorUtils.saveRelatedParameters(n,a.viewModelId,c.events,c)),n.remoteSort=!!n.columnSorted,n.command&&(n.command.onClickEditCommand=n.onClickEditCommand,n.command.onClickDeleteCommand=n.onClickDeleteCommand,n.command.onHandleAction=n.onHandleAction)}}}isSubGrid(){const n=this.formSchemaUtils.getViewModelById(this.viewModelId);return n&&n.bindTo?n.bindTo.trim()!=="/":!1}cleanDataItem(n){Object.keys(n).forEach(o=>{o.indexOf("__fv")>-1&&delete n[o]})}cleanData(n){if(n)return n.forEach(o=>{this.cleanDataItem(o)}),n}getGridRuleProperties(n,o){var u,d;const a=this,i=()=>this.formSchemaUtils.getFormRules().filter(p=>p.type==="datagrid"&&p.controlId===n.id),r=()=>{const p=this.formSchemaUtils.getFormRules().filter(g=>g.controlId!==n.id);this.formSchemaUtils.setFormRules(p)},l=()=>n.displayType==="Card"&&(!!n.showCardHeader||n.showCardHeader===void 0),s=()=>n.displayType==="Card"&&(!!n.showCardFooter||n.showCardFooter===void 0),c=()=>{const m=a.formSchemaUtils.getViewModelById(this.viewModelId);return m&&m.bindTo?m.bindTo.trim().split("/").filter(p=>p).length===1:!1},f=fe.cloneDeep(n.cardToolbar||[]);this.propertyConfig.categories.gridRules={description:"卡片格式设置",title:"卡片格式",hide:!c(),properties:{displayType:{title:"显示模式",description:"表格按照什么模式展示,默认List模式",type:"enum",refreshPanelAfterChanged:!0,editor:{data:[{id:"List",name:"表格"},{id:"Card",name:"卡片"}]}},showCardHeader:{title:"显示头部",description:"",type:"boolean",visible:n.displayType==="Card",refreshPanelAfterChanged:!0},cardMainTitle:{title:"卡片主标题",description:"卡片主标题",type:"string",visible:l(),refreshPanelAfterChanged:!0},cardTitleTemplate:{title:"头部标题模板",description:"头部标题模板设置后,会覆盖卡片主标题",type:"string",visible:l(),editor:{type:"code-editor",language:"html",enableClear:!0},refreshPanelAfterChanged:!0},cardHeaderTemplate:{title:"头部内容模板",description:"头部内容模板",type:"string",visible:l(),editor:{type:"code-editor",language:"html",enableClear:!0},refreshPanelAfterChanged:!0},cardToolbar:{visible:l(),description:"配置卡片头部区域展示的按钮",title:"头部工具栏按钮组",type:"array",defaultValue:`共 ${((u=n.cardToolbar)==null?void 0:u.length)||0} 项`,$converter:{convertFrom:()=>{var m;return`共 ${((m=n.cardToolbar)==null?void 0:m.length)||0} 项`}},editor:{type:"button-edit",editable:!1,enableClear:((d=n.cardToolbar)==null?void 0:d.length)>0,buttonContent:'<i class="f-icon f-icon-lookup"></i>',onClear:()=>{const{messagerService:m}=a.designerHostService;m.question("您确定要清空所有按钮吗?","",()=>{n.cardToolbar=[],a.getFormDesignerInstance().reloadPropertyPanel()},()=>{n.cardToolbar=f,a.getFormDesignerInstance().reloadPropertyPanel()})},onClickButton:()=>{ME(a.designerHostService,{defaultClass:"btn btn-link",buttons:n.cardToolbar||[],modalPropertyData:n,componentId:a.componentId,viewModelId:a.viewModelId,onSubmitHandle:m=>(n.cardToolbar=this.cleanData(m),!0),onCancelHandle:m=>{n.cardToolbar=this.cleanData(m)}},m=>{m.categories.behavior.properties.disabled.editor.propertyTypes=["Const","Variable","StateMachine","Expression"]}).show(()=>{a.getFormDesignerInstance().reloadPropertyPanel()})}}},showCardFooter:{title:"显示底部",description:"",type:"boolean",visible:n.displayType==="Card",refreshPanelAfterChanged:!0},cardFooterTemplate:{title:"底部内容模板",description:"",type:"string",visible:s(),refreshPanelAfterChanged:!0,editor:{type:"code-editor",language:"html",enableClear:!0}},rules:{description:"配触发条件,根据条件动态渲染卡片",title:"格式配置",defaultValue:`共 ${i().length} 项`,editor:{type:"button-edit",editable:!1,enableClear:i().length>0,buttonContent:'<i class="f-icon f-icon-lookup"></i>',onClear:()=>{const{messagerService:m}=this.designerHostService;m.question("确定要删除所有格式吗?","",()=>{r(),this.getFormDesignerInstance().reloadPropertyPanel()},()=>{this.getFormDesignerInstance().reloadPropertyPanel()})},onClickButton:()=>{FE(this.designerHostService,{rules:i(),gridPropertyData:n,componentId:this.componentId,viewModelId:this.viewModelId}).show(()=>{this.getFormDesignerInstance().reloadPropertyPanel()})}},readonly:!1,visible:!!n.displayType&&n.displayType.toLowerCase()==="card"}},setPropertyRelates(m,p){switch(m&&m.propertyID){case"displayType":{m.propertyValue.toLowerCase()==="card"?(o.appearance.class=o.appearance.class.replace(/\s+$/,""),o.appearance.class=`${o.appearance.class.trim()} h-auto data-grid-container`):o.appearance.class=o.appearance.class.replace("h-auto data-grid-container","");break}}}}}}function $E(e,n){const o=e.schema,a=t.ref(!0),i=t.ref(!0);function r(p){return p&&p.sourceType==="control"?p.componentCategory==="input":!1}function l(){return!1}function s(){return!1}function c(){return!0}function f(p){var y;const g=new IE(p,n),h=(y=e==null?void 0:e.parent)==null?void 0:y.schema;return g.getPropertyConfig(o,h)}function u(){var p,g,h,y;if(e&&n){const v=(p=e==null?void 0:e.componentInstance)==null?void 0:p.value.belongedComponentId;let b="",w="";const{formSchemaUtils:C}=n;if(v){const x=C.getRootViewModelId(),N=C.getComponentByViewModelId(x),S=C.selectNode(N,k=>k.contents&&k.contents.find(T=>T.component===v));(S==null?void 0:S.type)===((g=he["tab-page"])==null?void 0:g.type)&&((h=S==null?void 0:S.contents)!=null&&h.length)&&(b=S.title||""),(S==null?void 0:S.type)===((y=he.section)==null?void 0:y.type)&&(S==null?void 0:S.showHeader)!==!1&&(b=S.mainTitle||""),b=b?`${b} > `:"",w=b?S.id:""}const V=he["data-grid"].name;n==null||n.formSchemaUtils.getControlBasicInfoMap().set(e.schema.id,{componentTitle:V,parentPathName:`${b}${V}`,reliedComponentId:w}),o.cardToolbar&&o.cardToolbar.length&&o.cardToolbar.forEach(x=>{n==null||n.formSchemaUtils.getControlBasicInfoMap().set(x.id,{componentTitle:x.text,parentPathName:`${b}${V} > ${x.text}`,reliedComponentId:w})})}}function d(p){var g;p&&((g=p==null?void 0:p.changeObject)==null?void 0:g.propertyID)==="cardToolbar"&&u()}function m(){if(!n)return;const{formSchemaUtils:p}=n,h=p.getFormRules().filter(y=>y.type==="datagrid"&&y.controlId!==o.id);p.setFormRules(h)}return{canAccepts:r,checkCanDeleteComponent:l,checkCanMoveComponent:s,hideNestedPaddingInDesginerView:c,triggerBelongedComponentToMoveWhenMoved:a,triggerBelongedComponentToDeleteWhenDeleted:i,getPropsConfig:f,setComponentBasicInfoMap:u,onRemoveComponent:m,onPropertyChanged:d}}const La=t.defineComponent({name:"FDataGridDesign",props:VI,emits:["ClickRow","DoubleClickRow","selectionChange","enterUpInLastCell","pageIndexChanged","pageSizeChanged"],setup(e,n){var Te,le;const o=t.ref(!1),a=t.ref(((Te=e.rowOption)==null?void 0:Te.rowHeight)||28),i=t.ref(),r=t.inject("designer-host-service"),l=t.inject("design-item-context"),s=$E(l,r),c=it(i,l,s);c.value.styles="display:flex;flex:1;",t.onMounted(()=>{i.value.componentInstance=c}),t.provide("data-grid-context",{dataGridProps:e}),n.expose(c.value);const f=t.ref(e.columns),u=20,d=Jo(e),m=0,p=t.ref(),g=t.ref(),h=t.ref(e.showStripe),y=t.ref([]),v=t.ref(!1),b=t.ref(((le=e.rowOption)==null?void 0:le.wrapContent)||!1),w=Uo(e,n),C=Go(e),V=zo(e,new Map,w,C,d),x=ea(e,V,d,y,n),N=t.computed(()=>V.totalItems.value<u?V.totalItems.value:u),{containerStyleObject:S}=Ga(e,y),k=cl(e),{applyCommands:T}=k;T(f);const P=Jb(e),F=fl(),{applyColumnSorter:I,columnContext:E,updateColumnRenderContext:D}=P;I(V,F);const M=ji(e,E),$=Zo(e,n,x,d),B=Ko(e,n,d,$,y),O=Yo(e,V,a),R=Qo(e,B,O),A=Xo(e,V,B,C,d,O,R,a),L=dl(e,d,R,A),_=ul(e,d,R,A),W=Zb(e,f,V,N,m,A,L,_),{getVisualData:U}=W,Y=Qa(e,x),{sidebarWidth:Q}=Y;y.value=U(0,N.value+m-1);const z=ba(e,V,y,E,W,N,m,Q,a,o),{onWheel:j,dataGridWidth:H,viewPortHeight:q,viewPortWidth:G}=z,J=Kb(e,E,p,G,M),{calculateColumnsSize:K}=J,ne=t.computed(()=>({"fv-grid":!0,"fv-grid-bordered":!0,"fv-datagrid-strip":h.value})),oe=t.computed(()=>({"fv-grid-content":!0,"fv-grid-content-hover":v.value,"fv-grid-wrap-content":b.value})),{renderGridHeader:ie}=cv(l,e,P,z),{renderHorizontalScrollbar:me}=Ri(e,p,z);function de(){var ce,Se;q.value=((ce=g.value)==null?void 0:ce.clientHeight)||0,H.value=((Se=p.value)==null?void 0:Se.clientWidth)||0,K()}t.onMounted(()=>{p.value&&(Ji.useResizeObserver(p.value,de),K(),t.nextTick(()=>{p.value&&(H.value=p.value.clientWidth),g.value&&(G.value=g.value.clientWidth,q.value=g.value.clientHeight)}))});function Me(ce){ce&&(f.value=ce,T(f),D(f.value),I(V,F),K())}return t.watch(()=>e.columns,ce=>{Me(ce),Jt.value++}),t.watch(G,()=>{p.value&&K()}),()=>t.createVNode("div",{ref:i,class:ne.value,style:{flex:"1 1 0"},onWheel:j},[ie(),t.createVNode("div",{ref:p,class:oe.value,onMouseover:()=>{v.value=!0},onMouseleave:()=>{v.value=!1}},[me()])])}}),Hs=new Map([["appearance",rt],["column","columnOption"],["command","commandOption"]]),nC=new Map([]),EE="root-viewmodel";class DE{constructor(n,o){X(this,"formSchemaUtils");X(this,"controlCreatorUtils");X(this,"designViewModelUtils");X(this,"useFormCommand");X(this,"formStateMachineUtils");this.resolver=n,this.designerHostService=o,this.formSchemaUtils=this.designerHostService.formSchemaUtils,this.controlCreatorUtils=this.designerHostService.controlCreatorUtils,this.designViewModelUtils=this.designerHostService.designViewModelUtils,this.useFormCommand=this.designerHostService.useFormCommand,this.formStateMachineUtils=this.designerHostService.formStateMachineUtils}createComponent(n){const o=this.createComponentRefNode(n),a=this.createComponentNode(n),i=this.createViewModeNode(n),r=this.formSchemaUtils.getFormSchema();return r.module.viewmodels.push(i),r.module.components.push(a),this.designViewModelUtils.assembleDesignViewModel(),this.wrapContainerSectionForComponent(o,n,i)}wrapContainerSectionForComponent(n,o,a){var c,f,u,d,m,p,g,h,y,v,b;const i=(f=(c=o==null?void 0:o.parentComponentInstance)==null?void 0:c.schema)==null?void 0:f.type,r=(m=(d=(u=o==null?void 0:o.parentComponentInstance)==null?void 0:u.schema)==null?void 0:d.appearance)==null?void 0:m.class,l=(g=(p=this.formSchemaUtils.getFormSchema())==null?void 0:p.module)==null?void 0:g.templateId;if(i===he["splitter-pane"].type&&(r!=null&&r.includes("f-page-content-main"))&&["double-list-template","tree-list-template"].includes(l))return n;const s=[he["content-container"].type,he["response-layout-item"].type,he["splitter-pane"].type,he.drawer.type];if(i&&s.includes(i)){const w=this.resolver.getSchemaByType("section",{parentComponentInstance:o.parentComponentInstance,mainTitle:o.componentName},this.designerHostService);if(w&&w.contents&&w.contents.length){const C=w.contents[0];return C.contents=[n],this.appendAddDeleteBtnToParentContainer(C,o,a),w}}return this.appendAddDeleteBtnToParentContainer((h=o==null?void 0:o.parentComponentInstance)==null?void 0:h.schema,o,a),i===he["tab-page"].type&&(y=o.parentComponentInstance)!=null&&y.parent&&(v=o.parentComponentInstance)!=null&&v.parent.updateToolbarItems&&((b=o.parentComponentInstance)==null||b.parent.updateToolbarItems()),n}appendAddDeleteBtnToParentContainer(n,o,a){const i=n.type,r=a.id.replace(/-/g,"").replace(/_/g,"").replace("component","").replace("viewmodel","");if(o.bindTo==="/"||o.componentType!=="data-grid"&&o.componentType!=="form")return;const l=this.formStateMachineUtils&&this.formStateMachineUtils.getRenderStates(),s=he["tab-page"].type===i?"tab-toolbar-item":"section-toolbar-item",c=this.resolver.getSchemaByType(s),f=[Object.assign({},c,{id:`button-add-${o.componentId}`,type:s,text:"新增",disabled:l.find(u=>u.id==="canAddDetail")?{type:"StateMachine",status:!1,field:"canAddDetail"}:!1,onClick:`root-viewModel.${a.id}.${r}AddItem1`}),Object.assign({},c,{id:`button-remove-${o.componentId}`,type:s,text:"删除",disabled:l.find(u=>u.id==="canRemoveDetail")?{type:"StateMachine",status:!1,field:"canRemoveDetail"}:!1,onClick:`root-viewModel.${a.id}.${r}RemoveItem1`})];n.toolbar||(n.toolbar={id:`${n.id}_toolbar`,type:he["tab-page"].type===i?"tab-toolbar":"section-toolbar",buttons:[]}),n.toolbar.id||(n.toolbar.id=`${n.id}_toolbar`),n.toolbar.type||(n.toolbar.type=he["tab-page"].type===i?"tab-toolbar":"section-toolbar"),n.toolbar.buttons||(n.toolbar.buttons=[]),n.toolbar.buttons=n.toolbar.buttons.concat(f),this.appendAddAndDeleteCommands(a),this.useFormCommand&&this.useFormCommand.checkCommands()}appendAddAndDeleteCommands(n){var u;const o=n.id.replace(/-/g,"").replace(/_/g,"").replace("component","").replace("viewmodel",""),a=Dt().guid(),i=Dt().guid(),r=this.resolveCommandController(),l={id:a,code:`${o}AddItem1`,name:"增加一条子表数据",params:[],handlerName:"AddItem",cmpId:r,shortcut:{},extensions:[]},s={id:i,code:`${o}RemoveItem1`,name:"删除一条子表数据",params:[{name:"id",shownName:"待删除子表数据的标识",value:`{DATA~${n.bindTo}/id}`}],handlerName:"RemoveItem",cmpId:r,shortcut:{},extensions:[]};(u=this.designerHostService.designerContext)!=null&&u.appendIdentifyForNewCommand&&(this.designerHostService.designerContext.appendIdentifyForNewCommand(l),this.designerHostService.designerContext.appendIdentifyForNewCommand(s)),n.commands.push(l,s),this.formSchemaUtils.getFormSchema().module.webcmds.find(d=>d.id===r).refedHandlers.push({host:a,handler:"AddItem"},{host:i,handler:"RemoveItem"})}resolveCommandController(){const n=this.formSchemaUtils.getFormSchema().module.webcmds,o=["8172a979-2c80-4637-ace7-b13074d3f393","8fe977a1-2b32-4f0f-a6b3-2657c4d03574","45be24f9-c1f7-44f7-b447-fe2ada458a61"],a=n.find(r=>o.includes(r.id));if(a)return a.id;const i="45be24f9-c1f7-44f7-b447-fe2ada458a61";return n.push({id:i,path:"/projects/packages/Inspur.GS.Gsp.Web.WebCmp/webcmd",name:"AdvancedListCardController.webcmd",refedHandlers:[]}),i}createComponentRefNode(n){const o=this.resolver.getSchemaByType("component-ref");return Object.assign(o,{id:`${n.componentId}-component-ref`,component:`${n.componentId}-component`}),o}createComponentNode(n){const o=this.resolver.getSchemaByType("component"),a=this.createDateGridComponentContents(n);return Object.assign(o,{id:`${n.componentId}-component`,viewModel:`${n.componentId}-component-viewmodel`,componentType:n.componentType,appearance:{class:this.getDataGridComponentClass(n)},contents:a}),o}createViewModeNode(n){return{id:`${n.componentId}-component-viewmodel`,code:`${n.componentId}-component-viewmodel`,name:n.componentName,bindTo:n.bindTo,parent:EE,fields:this.assembleViewModelFields(n),commands:[],states:[],enableValidation:!0}}getDataGridComponentClass(n){var r,l,s,c;const{templateId:o}=this.formSchemaUtils.getFormSchema().module,a=(r=n.parentComponentInstance)==null?void 0:r.schema,i=(l=a==null?void 0:a.appearance)==null?void 0:l.class;if(o==="double-list-in-tab-template"&&(a==null?void 0:a.type)==="tab-page"){const f=((s=n.parentComponentInstance)==null?void 0:s.parent)&&((c=n.parentComponentInstance)==null?void 0:c.parent.schema);if((f==null?void 0:f.type)==="tabs"&&(f==null?void 0:f.fill)===!0)return"f-struct-wrapper f-utils-fill-flex-column"}return["double-list-template","tree-list-template"].includes(o)&&(i!=null&&i.includes("f-page-content-main"))?"f-struct-wrapper f-utils-fill-flex-column":"f-struct-is-subgrid"}createDateGridComponentContents(n){var m,p,g,h,y;const o=(m=n.parentComponentInstance)==null?void 0:m.schema,a=(g=(p=o==null?void 0:o.schema)==null?void 0:p.appearance)==null?void 0:g.class,{templateId:i}=this.formSchemaUtils.getFormSchema().module;let r,l=!1;if(i==="double-list-in-tab-template"&&(o==null?void 0:o.type)==="tab-page"){const v=((h=n.parentComponentInstance)==null?void 0:h.parent)&&((y=n.parentComponentInstance)==null?void 0:y.parent.schema);(v==null?void 0:v.type)==="tabs"&&(v==null?void 0:v.fill)===!0&&(l=!0)}if(l){const v=this.resolver.getSchemaByType("section");Object.assign(v,{id:n.componentId+"-section",appearance:{class:"f-section-grid f-section-in-main px-0 pt-0"},fill:!0,showHeader:!1}),r=v}else if((i==="double-list-template"||i==="tree-list-template")&&(a!=null&&a.includes("f-page-content-main"))){const v=this.resolver.getSchemaByType("section");Object.assign(v,{id:n.componentId+"-section",appearance:{class:"f-section-grid f-section-in-main"},fill:!0,showHeader:!1}),r=v}else{const v=this.resolver.getSchemaByType("content-container");Object.assign(v,{id:n.componentId+"-container",appearance:{class:"f-grid-is-sub f-utils-flex-column"}}),r=v}const s=this.resolver.getSchemaByType("data-grid"),c=[],f=this.formStateMachineUtils&&this.formStateMachineUtils.getRenderStates(),u=n.editable&&f.length>0&&f.findIndex(v=>v.id==="editable")>-1;Object.assign(s,{id:n.componentId+"-dataGrid",appearance:{class:"f-component-grid"},columns:c,fieldEditable:u,dataSource:n.dataSource||"",editable:u?{type:"StateMachine",status:!0,field:"editable"}:!1,pagination:{enable:!n.editable}}),r.contents=[s];const{selectedFields:d}=n;return d==null||d.forEach(v=>{if(v.$type===wn.ComplexField)return;const b=fe.cloneDeep(v),w=this.controlCreatorUtils.setGridFieldProperty("data-grid-column",b,"",u);w&&c.push(w)}),[r]}assembleViewModelFields(n){const o=[],{selectedFields:a}=n;return a==null||a.forEach(i=>{if(i.$type===wn.ComplexField)return;let r="blur";const l=i.type.name;(l===Bn.Enum||l===Bn.Boolean)&&(r="change"),o.push({type:"Form",id:i.id,fieldName:i.bindingField,groupId:null,groupName:null,updateOn:r,fieldSchema:{}})}),o}}function Ws(e,n,o,a){var r,l,s,c,f,u,d;const i=o.parentComponentInstance;if(i&&a){const m=Math.random().toString(36).slice(2,6),p={componentId:`data-grid-${m}`,componentName:((r=o.bindingSourceContext)==null?void 0:r.entityTitle)||((s=(l=o.bindingSourceContext)==null?void 0:l.bindingEntity)==null?void 0:s.name)||`表格-${m}`,componentType:"data-grid",parentContainerId:i.schema.id,parentComponentInstance:i,editable:!0,bindTo:((c=o.bindingSourceContext)==null?void 0:c.bindTo)||"",dataSource:(u=(f=o.bindingSourceContext)==null?void 0:f.bindingEntity)==null?void 0:u.label,selectedFields:(d=o.bindingSourceContext)==null?void 0:d.bindingEntityFields};return new DE(e,a).createComponent(p)}else return n}function oC(e,n,o){return n}const aC={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/grid-field-editor.schema.json",title:"grid-field-editor",description:"A Farris Data Grid Component",type:"object",properties:{id:{description:"The unique identifier for a Input Group",type:"string"},type:{description:"The type string of Input Group component",type:"string",default:"grid-field-editor"},viewModelId:{description:"",type:"string",default:""},gridData:{description:"",type:"object",default:null},usage:{description:"",type:"string",default:"column"}},required:["id","type"]},jf={modelValue:{type:String,default:""},viewModelId:{Type:String,default:""},gridData:{Type:Object,default:null},gridType:{Type:String,default:"data-grid-column"},getLatestGridData:{Type:Function},usage:{Type:String,default:Ro.Column}};je(jf,aC,Hs,Ws);const OE=Yt(jf,aC,Hs,Ws),BE=t.defineComponent({name:"FGridFieldEditor",props:jf,emits:["change"],setup(e,n){const o=t.ref(e.viewModelId),a=t.inject("designViewModelUtils"),i=t.inject("useFormSchema"),r=t.inject("schemaService"),l=t.inject("controlCreatorUtils"),s=t.inject("designerContext");let c=e.gridData.columns;const{fieldEditable:f}=e.gridData,u=t.ref(`共 ${(c||[]).length} 项`),d=t.ref([]),m=t.ref([]);let p=[];function g(){if(e.usage===Ro.Group){let M=[];if(e.gridData.group&&e.gridData.group.groupFields){const{groupFields:$}=e.gridData.group;M=$}c=p.filter($=>M.includes($.data.bindingPath)).map($=>l.setGridFieldProperty(e.gridType,$.data,null,f)),u.value=`共 ${(c||[]).length} 项`}}function h(M){return e.usage===Ro.Group?M.map($=>$.field):M}function y(M,$=!0){if(s.checkCanDeleteControl){const B=p.find(O=>{var R;return((R=O.data)==null?void 0:R.id)===M.id});return s.checkCanDeleteControl(B,$)}return!0}const v={customRowStatus:M=>{const $=M.raw;$.type&&$.type.fields&&$.type.fields.length>0&&(M.disabled=!0),y($,!1)||(M.disabled=!0)}};function b(){if(d.value=[],!c||c.length===0)return[];const M="[绑定字段不存在,待移除]";c.forEach($=>{if($.binding&&$.binding.field){const B=p.find(O=>O.data.id===$.binding.field);B?B.data.$type===wn.ComplexField?d.value.push(Object.assign({isInValidBinding:!0},B.data,{name:B.data.name+M})):d.value.push(Object.assign({},B.data)):d.value.push({id:$.binding.field,name:$.title+M,label:$.field,bindingField:null,isInValidBinding:!0})}}),u.value=`共 ${d.value.length} 项`}function w(M,$=[]){return M&&M.forEach(B=>{if($.push(B),B.children&&w(B.children,$),s.appendIdentifyForNewControl){const O=c.find(R=>{var A;return((A=R.binding)==null?void 0:A.field)===B.data.id});(!O||O[s.identifyForNewControl])&&s.appendIdentifyForNewControl(B)}}),$}function C(){if(i.designerMode==="PC_RTC"&&r.rtcAddedTreeNodes.value){const M=r.getTableInfoByViewModelId(o.value);if(M!=null&&M.id){const $=r.rtcAddedTreeNodes.value[M.id];$!=null&&$.length&&(m.value=m.value.concat($))}}}function V(){m.value=a.getAllFields2TreeByVMId(o.value),C(),p=w(m.value)}function x(M,$,B){if(i.getComponents().find(R=>{let A=i.getControlsInCmpWidthBinding(R.viewModel,M);if(A=A.filter(L=>{var W;if(L.id===B)return!1;const _=$.type==="visible"?L[$.type]:(W=L.editor)==null?void 0:W[$.type];if(_&&_.type==="Expression"&&_.expressionId===$.id)return!0}),A.length)return!0}))return!0}function N(M){M.map($=>{var O;const B=c.find(R=>{var A;return((A=R.binding)==null?void 0:A.field)===$});if(B&&i.getExpressions().length){const R=i.getExpressions(),A=R.findIndex(L=>L.target===$);A>-1&&((O=R[A].rules)==null||O.map(L=>{var _;switch(L.type){case"visible":case"readonly":case"required":{const W=L.type==="visible"?B[L.type]:(_=B.editor)==null?void 0:_[L.type];W&&W.type==="Expression"&&W.expressionId===L.id&&(x($,L,B.id)||(L.needDelete=!0));break}default:x($,L,B.id)||(L.needDelete=!0)}}),R[A].rules=R[A].rules.filter(L=>!L.needDelete))}})}function S(){const M=a.getDgViewModel(o.value),$=[],B=[],O=d.value;if(O.forEach(R=>{const A=c==null?void 0:c.find(L=>{if(L.binding&&L.binding.field)return L.binding.field===R.id});if(A)$.push(A);else{const L=l.setGridFieldProperty(e.gridType,R.data,null,f);e.usage!==Ro.Group&&M.addField(R),$.push(L)}B.push(R.id)}),e.usage!==Ro.Group){const R=M.fields.filter(A=>!B.includes(A.id));if(R&&R.length>0){const A=R.map(L=>L.id);M.removeField(A),N(A)}}O.length!==d.value.length&&(d.value=O),u.value=`共 ${$.length} 项`,n.emit("change",h($))}const k={fitContent:!1,width:900,height:600,title:"列编辑器",draggable:!0,acceptCallback:()=>{S()},rejectCallback:()=>{}};function T(){return e.getLatestGridData?c=e.getLatestGridData().columns:c=e.gridData.columns,V(),g(),b(),Promise.resolve(!0)}function P(M){e.usage===Ro.Group?d.value=[M.raw]:d.value=[...d.value,M.raw]}function F(M){const $=d.value.findIndex(B=>B.id===M.raw.id);$>-1&&(d.value=[...d.value.slice(0,$),...d.value.slice($+1)])}function I(M){const $=d.value.findIndex(B=>B.id===M.id);$>-1&&(d.value=[...d.value.slice(0,$),...d.value.slice($+1)])}function E(M){const $=M[0].__fv_index__,B=d.value.findIndex(R=>R.id===M[0].id),O=d.value.find(R=>R.id===M[0].id);d.value.splice(B,1),d.value.splice($,0,O)}const D=[{field:"name",title:"",dataType:"string",width:"100%",formatter:(M,$)=>M.data+` [${$.data.bindingField.data}]`},{field:"bindingField",visible:!1,title:"",dataType:"string"}];return t.onMounted(()=>{V(),g()}),()=>t.createVNode(pn,{"button-behavior":"Modal","modal-options":k,modelValue:u.value,"onUpdate:modelValue":M=>u.value=M,editable:!1,beforeOpen:T},{default:()=>[t.createVNode("div",{class:"f-utils-absolute-all"},[t.createVNode(ga,{selections:d.value,"data-source":m.value,rowOption:v,class:"mx-2",columns:D,displayType:"Tree",onRemoveItem:I,onSelectItem:P,onUnSelectItem:F,onActiveChange:E,checkBeforeRemoveItem:y},{text:M=>t.createVNode("div",{style:"margin: 10px 0px 10px 14px;"},[M.data.name.data,t.createTextVNode(" ["),M.data.bindingField.data,t.createTextVNode("]")])})])]})}}),AE={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/data-grid-column.schema.json",title:"data-grid-column",description:"A Farris data-grid-column Component",type:"object",properties:{id:{description:"The unique identifier for a data-grid-column",type:"string",default:""},type:{description:"The type string of data-grid-column component",type:"string",default:"data-grid-column"},binding:{description:"",type:"object",default:{}},allowGrouping:{description:"",type:"boolean",default:!0},colspan:{description:"",type:"number"},dataType:{type:"string"},editor:{description:"",type:"object",default:{}},field:{description:"",type:"string"},filterable:{description:"",type:"boolean",default:!1},fixed:{description:"",type:"string",enum:["left","right"]},align:{description:"",type:"enum",default:"left",enum:["left","center","right"]},halign:{description:"",type:"enum",default:"left",enum:["left","center","right"]},title:{description:"",type:"string"},readonly:{description:"",type:"boolean",default:!0},resizable:{description:"",type:"boolean",default:!0},rowspan:{description:"",type:"number"},showTips:{description:"",type:"boolean",default:!0},sort:{description:"",type:"string",default:"none",enum:["asc","desc","none"]},sortable:{description:"",type:"boolean",default:!1},sortOrder:{description:"",type:"number"},tipMode:{description:"",type:"string",enum:["allways","auto"]},valign:{description:"",type:"enum",default:"middle",enum:["top","middle","bottom"]},visible:{description:"",type:"boolean",default:!0},width:{description:"",type:"number",default:120},formatter:{description:"列格式化",type:"object",default:{type:"none",customFormat:"",trueText:"是",falseText:"否",dateFormat:"yyyy-MM-dd"}},columnTemplate:{description:"列模板",type:"string",default:""},summaryType:{description:"合计类型",type:"enum",default:"none"},formatterEnumData:{description:"",type:"array"},multiLanguage:{description:"是否启用多语",type:"boolean"},draggable:{description:"是否允许拖拽",type:"boolean",default:!1},enableGroup:{description:"",type:"boolean",default:!1},onClickLinkCommand:{description:"超链接事件",type:"string",default:""},columnTemplateType:{description:"列模板类型",type:"string"}},required:["id","type"],events:{onClickLinkCommand:"超链接事件"}},RE={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/data-grid-column.schema.json",title:"tree-grid-column",description:"A Farris data-grid-column Component",type:"object",properties:{id:{description:"The unique identifier for a data-grid-column",type:"string"},type:{description:"The type string of data-grid-column component",type:"string",default:"tree-grid-column"},binding:{description:"",type:"object",default:{}},allowGrouping:{description:"",type:"boolean",default:!0},colspan:{description:"",type:"number"},dataType:{type:"string"},editor:{description:"",type:"object"},field:{description:"",type:"string"},filterable:{description:"",type:"boolean",default:!1},fixed:{description:"",type:"string",enum:["left","right"]},align:{description:"",type:"enum",default:"left",enum:["left","center","right"]},halign:{description:"",type:"enum",default:"left",enum:["left","center","right"]},title:{description:"",type:"string"},readonly:{description:"",type:"boolean",default:!0},resizable:{description:"",type:"boolean",default:!0},rowspan:{description:"",type:"number"},showTips:{description:"",type:"boolean",default:!0},sort:{description:"",type:"string",enum:["asc","desc","none"]},sortable:{description:"",type:"boolean",default:!1},sortOrder:{description:"",type:"number"},tipMode:{description:"",type:"string",enum:["allways","auto"]},valign:{description:"",type:"enum",default:"middle",enum:["top","middle","bottom"]},visible:{description:"",type:"boolean",default:!0},width:{description:"",type:"number",default:120},formatter:{description:"列格式化",type:"object",default:{type:"none",customFormat:"",trueText:"是",falseText:"否",dateFormat:"yyyy-MM-dd"}},formatterType:{description:"启用列格式化",type:"string",default:""},columnTemplate:{description:"列模板",type:"string",default:""},summaryType:{description:"合计类型",type:"enum",default:"none"},formatterEnumData:{description:"",type:"array"},draggable:{description:"是否允许拖拽",type:"boolean",default:!1},onClickLinkCommand:{description:"超链接事件",type:"string",default:""},columnTemplateType:{description:"列模板类型",type:"string",default:"default"}},required:["id","type"]},_f={id:{type:String,default:""},type:{type:String,default:""},allowGrouping:{type:Boolean,default:!0},colspan:{type:Number,default:1},dataType:{type:String,default:""},parentId:{type:String,default:""},editor:{type:Object},field:{type:String,default:""},filterable:{type:Boolean,default:!0},fixed:{type:String,default:""},halign:{type:String,default:"left"},title:{type:String,default:""},readonly:{type:Boolean,default:!0},resizable:{type:Boolean,default:!0},rowspan:{type:Boolean,default:!0},showTips:{type:Boolean,default:!0},sort:{type:String,default:"none"},sortable:{type:Boolean,default:!0},sortOrder:{type:Number},tipMode:{type:String,default:"auto"},valign:{type:String,default:"middle"},visible:{type:Boolean,default:!0},width:{type:Number},actualWidth:{type:Number},align:{type:String,default:"left"},left:{type:Number},sorter:{type:Function,default:()=>{}},origianlColSpan:{type:Number},index:{type:Number},commands:{type:Array,default:[]},filter:{type:String,default:""},showSetting:{type:Boolean,default:!0},formatter:{type:Function,default:()=>{}},componentId:{type:String,default:""}},LE=je(_f,AE,nC,oC),jE=je(_f,RE,nC,oC);function _E(e,n,o){const a=e.schema,i=t.ref(!0),r=t.ref(!0);function l(m){return!1}function s(){return!1}function c(){return!1}function f(){return!0}function u(m){var h,y;const p=new tC(m,n),g=(h=e==null?void 0:e.parent)==null?void 0:h.schema;return g!=null&&g.groupFields&&g!=null&&g.groupFields.includes(a.field)&&(a.enableSummary=!0),p.getPropertyConfig(a,(y=e==null?void 0:e.parent)==null?void 0:y.schema)}function d(){var y,v;if(!n||!e)return;const{formSchemaUtils:m}=n;let p=he["data-grid"].name||"表格";const g=m.getControlBasicInfoMap(),h=g.get((v=(y=e.parent)==null?void 0:y.schema)==null?void 0:v.id);h&&h.parentPathName&&(p=h.parentPathName),g.set(a.id,{showName:a.title,parentPathName:`${p} > ${a.title}`,reliedComponentId:h.reliedComponentId})}return{canAccepts:l,checkCanDeleteComponent:s,checkCanMoveComponent:c,hideNestedPaddingInDesginerView:f,triggerBelongedComponentToMoveWhenMoved:i,triggerBelongedComponentToDeleteWhenDeleted:r,getPropsConfig:u,setComponentBasicInfoMap:d}}function iC(e,n,o){function a(){const l=o.componentId;if(!l)return!1;const s=e.formSchemaUtils.getViewModelIdByComponentId(l);if(!s)return!1;const{schema:c}=n,{designViewModelUtils:f}=e,u=f.getDgViewModel(s),d=u==null?void 0:u.fields.find(m=>m.id===c.binding.field);return!(!d||d.$type!==wn.SimpleField)}function i(){const{schema:l}=n;return!!e.formSchemaUtils.getVariableById(l.binding.field)}function r(){var c;const{schema:l}=n;let s=!0;if(!e||!((c=l.binding)!=null&&c.field))return s;switch(l.binding.type){case Zt.Form:{s=a();break}case Zt.Variable:s=i()}return s}return{checkBindingFieldValidation:r}}const rC=t.defineComponent({name:"FDataGridColumnDesign",props:_f,emits:[],setup(e,n){const o=t.ref(),a=t.inject("designer-host-service"),i=t.inject("design-item-context");t.inject("data-grid-context");const r=_E(i,a),l=it(o,i,r);t.onMounted(()=>{o.value.componentInstance=l}),n.expose(l.value);function s(d){var m;(m=i==null?void 0:i.setupContext)==null||m.emit("selectionChange",l.value.schema,i.schema,e.componentId,l.value)}const{checkBindingFieldValidation:c}=iC(a,i,e),u=!t.inject("external-container-id");return()=>{var g;const d=u?c():!0,m="绑定信息已失效,请手动移除列",p=d?"":"color:red";return t.createVNode(t.Fragment,null,[d?"":t.createVNode("span",{class:"f-icon f-icon-warning mr-1",style:"color: red; min-width: 16px;",title:m},null),t.createVNode("span",{class:"fv-column-title",style:p,ref:o,onClick:h=>s()},[((g=e.editor)==null?void 0:g.required)===!0&&t.createVNode("span",{class:"text-danger"},[t.createTextVNode("*")]),e.title])])}}}),lC={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/data-grid.schema.json",title:"data-grid",description:"A Farris Data Grid Component",type:"object",properties:{id:{description:"The unique identifier for a Input Group",type:"string"},type:{description:"The type string of Input Group component",type:"string",default:"data-grid"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},fit:{type:"boolean",default:!1},showStripe:{type:"boolean",default:!0},showBorder:{type:"boolean",default:!1},showSetting:{type:"boolean",default:!1},size:{description:"",type:"object",properties:{width:{type:"number"},height:{type:"number"}},default:null},dataSource:{description:"",type:"string",default:""},columns:{description:"",type:"array",default:[]},identifyField:{description:"",type:"string"},editable:{description:"",type:"boolean",default:!1},disabled:{description:"",type:"boolean",default:!1},visible:{description:"",type:"boolean",default:!0},fieldEditable:{description:"是否可编辑",type:"boolean",default:!1},cell:{type:"object",properties:{highlightFocusingCell:{description:"",type:"boolean",default:!1},mergeCell:{description:"",type:"boolean",default:!1},showEditableIcon:{description:"",type:"boolean",default:!1}}},column:{type:"object",properties:{fitColumns:{description:"",type:"boolean",default:!1},fitMode:{description:"",type:"string",default:"average"},groups:{description:"",type:"array",default:[]},reorderColumn:{description:"Enable to drag column to reorder",type:"boolean",default:!1},resizeColumn:{type:"boolean",default:!0},resizeColumnOnDoubleClick:{description:"",type:"boolean",default:!0}}},command:{type:"object",properties:{enableType:{type:"string",default:"unable"},enable:{description:"",type:"boolean",default:!1},commands:{type:"array",default:[]},formatter:{description:"自定义操作列模板",type:"string",default:""},commandColumnWidth:{description:"",type:"number",default:120},onClickDeleteCommand:{description:"",type:"string",default:""},onClickEditCommand:{description:"",type:"string",default:""},onHandleAction:{description:"",type:"string",default:""},count:{description:"",type:"number",default:2}}},contextMenu:{description:"",type:"object",properties:{enable:{description:"",type:"boolean",default:!1}}},customizaiton:{type:"object",properties:{enableScheme:{description:"",type:"boolean",default:!1},enableSetting:{description:"",type:"boolean",default:!1}}},edit:{type:"object",properties:{mode:{description:"",type:"string",default:"cell",enum:["cell","row","card"]},selectOnEditing:{description:"",type:"boolean",default:!1},onAppendRow:{description:"",type:"string",default:""},onBeforeEdit:{description:"",type:"string",default:""}}},filter:{type:"object",properties:{enable:{description:"",type:"boolean",default:!1},filterStyle:{description:"",type:"string",default:"filter-column",enum:["filter-column","filter-row"]},mode:{description:"",type:"string",default:"server",enum:["client","server"]},showSummary:{description:"",type:"boolean",default:!1},onFilterChange:{description:"",type:"string",default:""}}},footer:{type:"object",properties:{enable:{description:"",type:"boolean",default:!1},customFooterStyle:{description:"",type:"object"},footerDataCommand:{description:"",type:"string",default:""},footerDataFrom:{description:"",type:"string",default:"client"},footerHeight:{description:"",type:"number",default:29},footerPosition:{description:"",type:"string",default:"bottom"},footerTemplate:{description:"",type:"string",default:""}}},group:{description:"",type:"object",properties:{enable:{description:"",type:"boolean",default:!1},customGroupRow:{description:"",type:"object"},customGroupRowStyle:{description:"",type:"object"},customSummaryStyle:{description:"",type:"object"},groupColSpan:{description:"",type:"number",default:1},groupFields:{description:"",type:"array",default:[]},showGroupedColumn:{description:"",type:"boolean",default:!0},showGroupPanel:{description:"",type:"boolean",default:!1},showSummary:{description:"",type:"boolean",default:!1},summaryPosition:{description:"",type:"string",default:"separate",enum:["separate","merge-to-group"]},disableGroupOnEditing:{description:"",type:"boolean",default:!0},expandGroupRows:{description:"",type:"boolean",default:!0},customRender:{description:"自定义分组行模板",type:"string",default:""}}},header:{type:"object",properties:{wrapHeadings:{description:"",type:"boolean",default:!1}}},pagination:{type:"object",properties:{enable:{description:"",type:"boolean",default:!1},disablePagination:{description:"",type:"string",default:""},contentTemplate:{description:"",type:"string",default:""},index:{description:"",type:"number",default:1},mode:{description:"",type:"enum",default:"server",enum:["server","client"]},showGoto:{description:"",type:"boolean",default:!1},showIndex:{description:"",type:"boolean",default:!0},showLimits:{description:"",type:"boolean",default:!1},showPageInfo:{description:"",type:"boolean",default:!0},size:{description:"",type:"number",default:20},sizeLimits:{description:"",type:"array",default:[10,20,30,50,100]},onPageChange:{description:"",type:"string",default:""},onPageSizeChange:{description:"",type:"string",default:""}}},rowOption:{type:"object",properties:{customRowStyle:{description:"",type:"string",default:""},customCellStyle:{description:"",type:"string",default:""},disable:{description:"",type:"object"},height:{description:"",type:"number",default:30},showHovering:{type:"boolean",default:!0},wrapContent:{type:"boolean",default:!1}}},rowNumber:{description:"",type:"object",properties:{enable:{description:"",type:"boolean",default:!0},heading:{description:"",type:"string",default:"序号"},width:{description:"",type:"number",default:36},showEllipsis:{description:"",type:"boolean",default:!0}}},onClickRow:{description:"行点击事件",type:"string",default:""},onSelectionChange:{description:"行切换事件",type:"string",default:""},onPageIndexChanged:{description:"切换页码事件",type:"string",default:""},onPageSizeChanged:{description:"分页条数变化事件",type:"string",default:""},selection:{type:"object",properties:{enableSelectRow:{description:"允许选中行",type:"boolean",default:!0},enable:{description:"",type:"boolean",default:!0},checkOnSelect:{description:"",type:"boolean",default:!1},clearSelectionOnEmpty:{description:"",type:"boolean",default:!0},customSelectionItem:{description:"",type:"object"},focusSelection:{description:"",type:"string",default:"current",enum:["current","all"]},keepSelectingOnClick:{description:"",type:"boolean",default:!0},keepSelectingOnPaging:{description:"",type:"boolean",default:!0},multiSelect:{description:"",type:"boolean",default:!1},selectionMode:{description:"",type:"string",default:"default"},selectOnCheck:{description:"",type:"boolean",default:!1},selectOnEditing:{description:"",type:"boolean",default:!1},showCheckbox:{description:"",type:"boolean",default:!1},showSelectAll:{description:"",type:"boolean",default:!1},showSelection:{description:"",type:"boolean",default:!1},multiSelectMode:{description:"多选模式",type:"string",default:"DependOnCheck"},onBeforeSelect:{description:"",type:"string",default:""},onBeforeUnCheck:{description:"",type:"",default:""},onBeforeUnSelect:{description:"",type:"string",default:""},onCheckAll:{description:"",type:"string",default:""},onChecked:{description:"",type:"string",default:""},onSelectionChange:{description:"",type:"string",default:""},onUnCheckAll:{description:"",type:"string",default:""},onUnChecked:{description:"",type:"string",default:""},onCheckedChange:{description:"",type:"string"}}},sort:{type:"object",properties:{enable:{description:"",type:"boolean",default:!1},fields:{description:"",type:"array",default:[]},mode:{description:"",type:"enum",default:"client"},multiSort:{description:"",type:"boolean",default:!0}}},summary:{description:"",type:"object",properties:{enable:{description:"",type:"boolean",default:!1},customSummaryStyle:{description:"",type:"object"},groupFields:{description:"",type:"array",default:[]},mode:{description:"",type:"string",default:"client",enum:["client","server"]},position:{description:"",type:"boolean",default:"bottom",enum:["bottom","top","both"]},customRender:{description:"合计行模板",type:"string",default:""}}},toolbar:{description:"",type:"object",properties:{enable:{description:"",type:"boolean",default:!1}}},visualization:{autoHeight:{description:"",type:"boolean",default:!1},emptyDataHeight:{description:"",type:"number",default:36},emptyTemplate:{description:"",type:"string",default:""},maxHeight:{description:"",type:"number",default:300},scrollBarShowMode:{description:"",type:"string",default:"auto"},showBorder:{description:"",type:"boolean",default:!1},showScrollArrow:{description:"",type:"boolean",default:!1},striped:{description:"",type:"boolean",default:!0},useBlankWhenDataIsEmpty:{description:"",type:"boolean",default:!1}},emptyTemplate:{description:"",type:"string",default:""},beforeUpdate:{description:"",type:"string",default:""},beforeEditCell:{description:"",type:"string",default:""},displayType:{description:"表格按照什么模式展示,默认List模式",type:"string",default:"List"},showCardHeader:{description:"",type:"boolean",default:!0},showCardFooter:{description:"",type:"boolean",default:!0},cardHeaderTemplate:{description:"头部内容模板",type:"string",default:""},cardFooterTemplate:{description:"底部内容模板",type:"string",default:""},cardTitleTemplate:{description:"头部标题模板",type:"string",default:""},cardToolbar:{description:"自定义工具栏",type:"array",default:[]},cardMainTitle:{description:"主标题",type:"string",default:""},formId:{description:"表单id",type:"string",default:""},enableColumnSettingSolution:{description:"是否启用列配置方案",type:"boolean",default:!1}},required:["id","type","columns"],events:{onClickRow:"行点击事件",onSelectionChange:"行切换事件",onDoubleClickRow:"行双击事件",onPageIndexChanged:"切换页码事件",onPageSizeChanged:"分页条数变化事件",onClickEditCommand:"操作列编辑事件",onClickDeleteCommand:"操作列删除事件",onFilterChanged:"过滤事件",onSortChanged:"排序事件",onSelectItem:"选中行事件",onUnSelectItem:"取消选中行事件",onSelectAll:"全选事件",onUnSelectAll:"取消全选事件",onEndEditCell:"单元格结束编辑事件"}};function HE(){function e(n,o){const a={};return a.beforeEditCell=i=>o.call("beforeEditCell",n,[i,n]),a.beforeUpdate=i=>o.call("beforeUpdate",n,[i,n]),a.fieldsCallback=(...i)=>o.call("fieldsCallback",n,[i]),a.fieldsResolver=(...i)=>o.call("fieldsResolver",n,i),a}return{resolve:e}}const WE=Yt(Ns,lC,Hs,Ws),qE=je(Ns,lC,Hs,Ws),zE=md(),UE=Gm(),GE=hd(),YE=HE();La.install=e=>{e.component(La.name,La)},La.register=(e,n,o,a,i)=>{e["data-grid"]=Rr,n["data-grid"]=WE(i),e["grid-field-editor"]=BE,n["grid-field-editor"]=OE(i),a["data-grid"]={bindingResolver:zE,selectionItemResolver:UE,updateColumnsResolver:GE,callbackResolver:YE,eventHandlerResolver:kP}},La.registerDesigner=(e,n,o)=>{e["data-grid"]=La,n["data-grid"]=qE,n["data-grid-column"]=LE,e["data-grid-column"]=rC,n["tree-grid-column"]=jE,e["tree-grid-column"]=rC};const Hf=bt(La);function QE(e,n,o){return n}const XE=new Map([["appearance",rt]]),KE={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/dropdown.schema.json",title:"dropdown",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for dropdown",type:"string"},type:{description:"The type string of dropdown",type:"string",default:"dropdown"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disable:{type:"string",default:!1},editable:{description:"",type:"boolean",default:!0},placeholder:{description:"",type:"string",default:""},readonly:{description:"",type:"boolean",default:!1},require:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},visible:{description:"",type:"boolean",default:!0}},required:["id","type"]},JE={title:"dropdown",description:"A Farris Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"select",editor:{type:"waiting for modification",enum:[]}}}},behavior:{description:"Basic Infomation",title:"行为",properties:{readonly:{description:"",title:"只读",type:"string"},required:{description:"",title:"必填",type:"boolean"},visible:{description:"",title:"可见",type:"boolean"},placeholder:{description:"",title:"提示文本",type:"string"},tabindex:{description:"",title:"tab索引",type:"number"}}}}},Wf={show:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},title:{type:String,default:"下拉示例"},size:{type:String,default:""},type:{type:String,default:"primary"},iconClass:{type:String,default:""},active:{type:Boolean,default:!1},splitButton:{type:Boolean,default:!1},position:{type:String,default:"bottom"},model:{type:Array,default:[{label:"项目一",value:"XM1"},{label:"项目二",value:"XM2"},{label:"项目三",value:"XM3"}]},onSelect:{type:Function,default:()=>{}}},sC=je(Wf,KE,XE,QE,JE);function cC(e,n){let o;const a=t.ref(e.show),i=t.ref(),r=t.ref(),l=t.ref(),s=10;t.onMounted(()=>{o=r.value});const c=(b=1)=>{const w=["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"],C=Array.from(document.body.querySelectorAll(w.join(","))).filter(x=>x).map(x=>{const{display:N,zIndex:S}=window.getComputedStyle(x);return N==="none"?0:parseInt(S,10)}).filter(x=>x);let V=Math.max(...C);return V<1040&&(V=1040),V+b},f=(b,w)=>{const{height:C,left:V,top:x,width:N}=b.getBoundingClientRect(),{width:S,height:k,top:T}=w.getBoundingClientRect();if(b.className.indexOf("dropdown-submenu")>-1||b.closest(".dropdown-submenu")||b.classList.contains("dropright")){const F=window.innerWidth-V-b.offsetWidth,I=window.innerHeight-x,{position:E}=getComputedStyle(w);if(E==="fixed"){let D=V+b.offsetWidth;w.offsetWidth>F&&V>F&&(D=V-S),w.style.left=D+"px",w.style.right="auto",window.innerHeight-2*s<w.offsetHeight?(w.style.top=s+"px",w.style.bottom=s+"px",w.style.maxHeight=window.innerHeight-2*s+"px",w.style.overflowY="auto",w.className+=" dropdown-menu-maxheight"):I<w.offsetHeight?(w.style.top="auto",w.style.bottom=s+"px"):(w.style.top=x+"px",w.style.bottom="auto")}else{if(w.offsetWidth>F){const D=-S;w.style.left=D+"px"}window.innerHeight-2*s<w.offsetHeight?(w.style.top=-1*(x-s)+"px",w.style.bottom="auto",w.style.maxHeight=window.innerHeight-2*s+"px",w.style.overflowY="auto",w.className+=" dropdown-menu-maxheight"):I<w.offsetHeight&&(w.style.top=I-w.offsetHeight-s+"px",w.style.bottom="auto")}}else{const{marginTop:F,marginBottom:I}=getComputedStyle(w);let E=0;const D=Math.ceil(parseFloat(F))+Math.ceil(parseFloat(I));let M=x+C,$=V;window.innerHeight-M-D<k&&(M=x-k,M<0&&(window.innerHeight-x-C>x?(M=x+C,E=window.innerHeight-M-D-s):(M=s,E=x-M-D))),window.innerWidth-V<S&&window.innerWidth-V<V+N&&($=V-S+N),document.body.append(w),w.style.cssText=`position:fixed;bottom:unset;left:${$}px
546
+ </span>`,(C=r.getFormDesignerInstance())==null||C.reloadPropertyPanel()),((V=o.editor)==null?void 0:V.beforeOpen)!==o.beforeOpen&&(o.editor.beforeOpen=o.beforeOpen),((x=o.editor)==null?void 0:x.onChange)!==o.onChange&&(o.editor.onChange=o.onChange)}}}getBasicPropConfig(o){const a=this;this.propertyConfig.categories.basic={description:"Basic Information",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},title:{description:"标题",title:"标题",type:"string"},binding:{description:"绑定的表单字段",title:"绑定",editor:{type:"binding-selector",bindingType:{enable:!1},editorParams:{componentSchema:o,needSyncToViewModel:!0,viewModelId:this.viewModelId,designerHostService:this.designerHostService,disableOccupiedFields:!0},textField:"bindingField"},refreshPanelAfterChanged:!0}},setPropertyRelates(i,r,l){if(i)switch(i&&i.propertyID){case"binding":{a.afterChangeBindingType(o,l),i.needRefreshEntityTree=!0;break}}}}}getAppearanceProperties(o,a){var i;this.propertyConfig.categories.appearance={description:"",title:"外观",properties:{resizable:{description:"允许拖拽改变列宽",title:"拖拽改变列宽",type:"boolean"},filterable:{visible:o.dataType!=="enum",description:"启用过滤",title:"启用过滤",type:"boolean"},sortable:{description:"启用排序",title:"启用排序",type:"boolean",visible:a.type!=="tree-grid"},draggable:{description:"允许列拖拽",title:"启用拖拽",type:"boolean"},width:{description:"列宽",title:"列宽",type:"number"},showTips:{description:"启用鼠标悬浮提示",title:"鼠标悬浮提示",type:"boolean"},halign:{description:"标题对齐方式",title:"标题对齐方式",type:"enum",editor:{data:[{id:"left",name:"左对齐"},{id:"center",name:"居中"},{id:"right",name:"右对齐"}]}},align:{description:"数据水平对齐方式选择",title:"数据水平对齐方式",type:"enum",editor:{data:[{id:"left",name:"左对齐"},{id:"center",name:"居中"},{id:"right",name:"右对齐"}]}},valign:{description:"数据垂直对齐方式选择",title:"数据垂直对齐方式",type:"enum",editor:{data:[{id:"top",name:"顶对齐"},{id:"middle",name:"居中"},{id:"bottom",name:"底对齐"}]}},summaryType:{description:"合计类型",title:"合计类型",visible:o.dataType==="number"&&!!((i=a.summary)!=null&&i.enable),type:"enum",editor:{data:[{id:"none",name:"无"},{id:"sum",name:"求和"}]},refreshPanelAfterChanged:!0}},setPropertyRelates(r,l,s){if(r)switch(r&&r.propertyID){case"width":{l.actualWidth=r.propertyValue;break}case"summaryType":{const{groupFields:c}=a.summary;!c.includes(l.field)&&r.propertyValue==="sum"&&c.push(l.field),c.includes(l.field)&&r.propertyValue==="none"&&c.splice(c.indexOf(l.field),1);break}case"columnTemplate":{r.propertyValue;break}case"enableGroup":r.propertyValue?a.group.groupFields=[l.field]:a.group.groupFields=[]}}}}getFieldEditorProperties(o,a){a.fieldEditable&&o.editor&&this.getFieldEditorProp(o)}setFormatterEnumData(o){var a,i;(a=o.formatter)!=null&&a.data&&!o.formatterEnumData&&(o.formatterEnumData=(i=o.formatter)==null?void 0:i.data)}getTemplateProperties(o){var r,l,s,c,f,u,d,m,p;const a=Object.prototype.hasOwnProperty;return{title:"格式化",description:"",properties:{type:{description:"",title:"类型",type:"enum",$converter:"/converter/change-formatter.converter",refreshPanelAfterChanged:!0,editor:{data:{enum:[{id:"enum",name:"枚举"},{id:"none",name:"无"}],boolean:[{id:"boolean",name:"布尔"},{id:"none",name:"无"}],number:[{id:"number",name:"数字"},{id:"none",name:"无"}],date:[{id:"date",name:"日期"},{id:"none",name:"无"}],datetime:[{id:"date",name:"日期"},{id:"none",name:"无"}],string:[{id:"enum",name:"枚举"},{id:"date",name:"日期"},{id:"none",name:"无"}]}[o.dataType]}},trueText:{title:"布尔为true时文本",$converter:"/converter/change-formatter.converter",type:"string",visible:((r=o.formatter)==null?void 0:r.type)==="boolean",refreshPanelAfterChanged:!0,description:"布尔为true时文本"},falseText:{title:"布尔为false时文本",$converter:"/converter/change-formatter.converter",type:"string",visible:((l=o.formatter)==null?void 0:l.type)==="boolean",refreshPanelAfterChanged:!0,description:"布尔为false时文本"},prefix:{title:"前缀",$converter:"/converter/change-formatter.converter",type:"string",visible:((s=o.formatter)==null?void 0:s.type)==="number",refreshPanelAfterChanged:!0,description:"前缀"},suffix:{title:"后缀",$converter:"/converter/change-formatter.converter",type:"string",visible:((c=o.formatter)==null?void 0:c.type)==="number",refreshPanelAfterChanged:!0,description:"后缀"},precision:{title:"精度",$converter:"/converter/change-formatter.converter",type:"number",visible:((f=o.formatter)==null?void 0:f.type)==="number",refreshPanelAfterChanged:!0,description:"精度"},decimal:{title:"小数分隔符",$converter:"/converter/change-formatter.converter",type:"string",visible:((u=o.formatter)==null?void 0:u.type)==="number",refreshPanelAfterChanged:!0,description:"小数分隔符"},thousand:{title:"千分位",$converter:"/converter/change-formatter.converter",type:"string",visible:((d=o.formatter)==null?void 0:d.type)==="number",refreshPanelAfterChanged:!0,description:"千分位"},dateFormat:{title:"日期格式",$converter:"/converter/change-formatter.converter",visible:((m=o.formatter)==null?void 0:m.type)==="date"||((p=o.formatter)==null?void 0:p.type)==="datetime",refreshPanelAfterChanged:!0,description:"日期格式",type:"enum",editor:{data:[{id:"yyyy-MM-dd",name:"yyyy-MM-dd"},{id:"yyyy/MM/dd",name:"yyyy/MM/dd"},{id:"dd/MM/yyyy",name:"dd/MM/yyyy"},{id:"MM/dd/yyyy",name:"MM/dd/yyyy"},{id:"yyyyMMdd",name:"yyyyMMdd"},{id:"yyyy年MM月dd日",name:"yyyy年MM月dd日"},{id:"yyyy-MM",name:"yyyy-MM"},{id:"yyyy/MM",name:"yyyy/MM"},{id:"yyyyMM",name:"yyyyMM"},{id:"yyyy年MM月",name:"yyyy年MM月"},{id:"MM/dd",name:"MM/dd"},{id:"MMdd",name:"MMdd"},{id:"MM-dd",name:"MM-dd"},{id:"MM月dd日",name:"MM月dd日"},{id:"yyyy",name:"yyyy"},{id:"yyyy年",name:"yyyy年"},{id:"yyyy-MM-dd HH:mm:ss",name:"yyyy-MM-dd HH:mm:ss"},{id:"yyyy/MM/dd HH:mm:ss",name:"yyyy/MM/dd HH:mm:ss"},{id:"yyyyMMddHHmmss",name:"yyyyMMddHHmmss"},{id:"yyyy-MM-dd HH:mm",name:"yyyy-MM-dd HH:mm"},{id:"yyyy/MM/dd HH:mm",name:"yyyy/MM/dd HH:mm"},{id:"yyyyMMddHHmm",name:"yyyyMMddHHmm"},{id:"yyyy年MM月dd日 HH时mm分ss秒",name:"yyyy年MM月dd日 HH时mm分ss秒"},{id:"yyyy年MM月dd日 HH时mm分",name:"yyyy年MM月dd日 HH时mm分"}]}}},setPropertyRelates(g,h,y){var v;if(g)switch(g&&g.propertyID){case"type":{g.propertyValue!=="none"&&h.columnTemplate,g.propertyValue==="boolean"&&(a.call(h.formatter,"trueText")||(h.formatter.trueText="是"),a.call(h.formatter,"falseText")||(h.formatter.falseText="否")),g.propertyValue==="number"&&(a.call(h.formatter,"prefix")||(h.formatter.prefix=""),a.call(h.formatter,"suffix")||(h.formatter.suffix=""),a.call(h.formatter,"precision")||(h.formatter.precision=0),a.call(h.formatter,"decimal")||(h.formatter.decimal="."),a.call(h.formatter,"thousand")||(h.formatter.thousand=",")),g.propertyValue==="date"&&(a.call(h.formatter,"dateFormat")||(h.formatter.dateFormat="yyyy-MM-dd")),g.propertyValue==="enum"&&(a.call(h.formatter,"data")||(h.formatter.data=[],(v=h.formatterEnumData)!=null&&v.length&&(h.formatterEnumData=[])));break}}}}}getFieldEditorProp(o,a="gridFieldEditor",i=!1){const r=this.formMetadataConverter.getRealEditorType(o.editor.type);let l;switch(r){case"avatar":l=new fu(this.componentId,this.designerHostService);break;case"check-group":l=new Iu(this.componentId,this.designerHostService);break;case"check-box":l=new Mu(this.componentId,this.designerHostService);break;case"combo-list":l=new Du(this.componentId,this.designerHostService);break;case"date-picker":l=new nf(this.componentId,this.designerHostService);break;case"lookup":l=new _s(this.componentId,this.designerHostService);break;case"number-range":l=new Df(this.componentId,this.designerHostService);break;case"number-spinner":l=new Of(this.componentId,this.designerHostService);break;case"radio-group":l=new Bf(this.componentId,this.designerHostService);break;case"switch":l=new Af(this.componentId,this.designerHostService);break;case"textarea":l=new Ff(this.componentId,this.designerHostService);break;case"time-picker":l=new Rf(this.componentId,this.designerHostService);break;case"language-textbox":l=new Lf(this.componentId,this.designerHostService);break;default:l=new ef(this.componentId,this.designerHostService)}this.setDesignViewModelField(o);const s=this,{canChangeControlType:c,editorTypeList:f}=this.getAvailableEditorType(o);this.propertyConfig.categories[`${a}_editorType`]={description:"",title:"编辑器类型",propertyData:o.editor,tabId:"gridFieldEditor",tabName:"编辑器",properties:{type:{description:"",title:"编辑器类型",type:"enum",$converter:"/converter/change-editor.converter",parentPropertyID:"editor",refreshPanelAfterChanged:!0,editor:{type:"combo-list",textField:"value",valueField:"key",idField:"key",data:f,readonly:!c}}},setPropertyRelates(m,p){if(m)switch(m&&m.propertyID){case"type":{s.changeFieldEditorType(o,m.propertyValue);break}}}};const u=["id","type","class","style","binding","label","responseLayout","visible","fill"],d=l.getGridFieldEdtiorPropConfig(o);Object.keys(d).map(m=>{const p=d[m],g={};if(Object.keys(p.properties).map(h=>{u.findIndex(y=>y===h)===-1&&p.properties[h]!==!1&&(g[h]=p.properties[h])}),Object.keys(g).length!==0){const h=p==null?void 0:p.title,y="gridFieldEditor",v="编辑器",b=p==null?void 0:p.description,w=(p==null?void 0:p.$converter)||"";s.propertyConfig.categories[a+"_"+m]={title:h,hide:Object.prototype.hasOwnProperty.call(p,"hide")?p.hide:!1,hideTitle:Object.prototype.hasOwnProperty.call(p,"hideTitle")?p.hideTitle:!1,tabId:p.tabId||y,tabName:p.tabName||v,description:b,$converter:w,parentPropertyID:"editor",propertyData:o,properties:g,setPropertyRelates:p==null?void 0:p.setPropertyRelates}}})}changeFieldEditorType(o,a){const i=this.designViewModelUtils.getDgViewModel(this.viewModelId);i.changeField(this.designViewModelField.id,{editor:{$type:a},name:this.designViewModelField.name,require:this.designViewModelField.require,readonly:this.designViewModelField.readonly},!1);const r=this.formSchemaUtils.getComponentByViewModelId(this.viewModelId),l=this.formSchemaUtils.selectNode(r,d=>d.type===he["data-grid"].type||d.type===he["tree-grid"].type);if(!l)return;const s=i.fields.find(d=>d.id===this.designViewModelField.id),c=this.controlCreatorUtils.setGridFieldProperty(a,s,null,!0),f=Object.prototype.hasOwnProperty.call(l,"columns")?l.columns:l.fields,u=f.findIndex(d=>d.id===o.id);if(u>-1&&f[u].editor){const d={};["readonly","required","placeholder"].map(m=>{Object.prototype.hasOwnProperty.call(f[u].editor,m)&&(d[m]=f[u].editor[m])}),f[u].editor=Object.assign(c.editor,d)}Object.assign(f[u],{dataType:c.dataType},c.formatter?{formatter:c.formatter}:{}),!c.formatter&&f[u].formatter&&delete f[u].formatter}checkCanChangeControlType(o,a){return!(!o.binding||!this.designViewModelField||this.designViewModelField.$type!==wn.SimpleField)}getAvailableEditorType(o){var r;const a=this.checkCanChangeControlType(o,this.viewModelId);if(!a)return{canChangeControlType:!1,editorTypeList:[{key:o.editor.type,value:((r=he[o.editor.type])==null?void 0:r.name)||o.editor.type}]};let i=[];return this.designViewModelField&&this.designViewModelField.$type===wn.SimpleField&&(i=Lo.getEditorTypesByMDataType(this.designViewModelField.type.name,this.designViewModelField.multiLanguage,o.type)),{canChangeControlType:a,editorTypeList:i}}afterChangeBindingType(o,a){!o||!a||(o.field=a.bindingPath,o.dataType=this.controlCreatorUtils.mapControlType2GridFieldType(a),this.controlCreatorUtils.setGridFieldFormatter(o.dataType,o,a))}getFieldEditorPropForCard(o,a,i="gridCardEditor",r=null){var u;const l=this.formMetadataConverter.getRealEditorType(o.editor.type);let s;switch(l){case"avatar":s=new fu(this.componentId,this.designerHostService);break;case"check-group":s=new Iu(this.componentId,this.designerHostService);break;case"check-box":s=new Mu(this.componentId,this.designerHostService);break;case"combo-list":s=new Du(this.componentId,this.designerHostService);break;case"date-picker":s=new nf(this.componentId,this.designerHostService);break;case"lookup":s=new _s(this.componentId,this.designerHostService);break;case"number-range":s=new Df(this.componentId,this.designerHostService);break;case"number-spinner":s=new Of(this.componentId,this.designerHostService);break;case"radio-group":s=new Bf(this.componentId,this.designerHostService);break;case"switch":s=new Af(this.componentId,this.designerHostService);break;case"textarea":s=new Ff(this.componentId,this.designerHostService);break;case"time-picker":s=new Rf(this.componentId,this.designerHostService);break;case"language-textbox":s=new Lf(this.componentId,this.designerHostService);break;default:s=new ef(this.componentId,this.designerHostService)}s.checkCanChangeControlType=()=>!(!o.binding||o.binding.type==="Variable"&&(s.bindingVarible=this.formSchemaUtils.getVariableById(o.binding.field),!s.bindingVarible)),s.getAvailableEditorType=()=>{var p,g;const d=s.checkCanChangeControlType(o,this.viewModelId);if(!d||!r)return{canChangeControlType:!1,editorTypeList:[{key:o.editor.type,value:((p=he[o.editor.type])==null?void 0:p.name)||o.editor.type}]};let m=[];return s.bindingVarible?m=Lo.getEditorTypesByMDataType(s.bindingVarible.type,!!(r!=null&&r.multiLanguage)):m=Lo.getEditorTypesByMDataType((g=r==null?void 0:r.type)==null?void 0:g.name,!!(r!=null&&r.multiLanguage)),{canChangeControlType:d,editorTypeList:m}},s.formRule=a,s.expressionProperty.getExpressionData=()=>a.expressions||[],s.expressionProperty.getExpressionConverter=(d,m)=>({convertFrom:(p,g,h,y)=>{var w;const v=(w=a.expressions)==null?void 0:w.find(C=>C.target===d);if(!v)return"";const b=v.rules.find(C=>C.type===g);return b&&(b==null?void 0:b.value)||""},convertTo:(p,g,h,y,v)=>{var w;if(g==="dataPicking"&&(h!=null&&h.target)){const C=`${h.target}_dataPicking`;((w=h.rules)==null?void 0:w.some(x=>x.id===C&&x.value))?p.dictPickingExpressionId=C:delete p.dictPickingExpressionId}if(!h)return;let b=a.expressions||[];if(!h.rules||!h.rules.length)b=b.filter(C=>C.target!==h.target);else{const C=b.findIndex(V=>V.target===h.target);C===-1?b.push(h):b[C]=fe.cloneDeep(h)}a.expressions=JSON.parse(JSON.stringify(b))}}),this.setDesignViewModelField(o);const c=this,f=(u=s.getPropertyConfig(o))==null?void 0:u.categories;return Object.keys(f).map(d=>{const m=f[d];if(d==="basic"){const{editor:p}=m.properties.binding;p&&(p.readonly=!0),m.properties.position={title:"在卡片标题中显示",description:"启用后,控件将显示在卡片标题中",type:"boolean",defaultValue:!1,$converter:{convertFrom:(g,h)=>o.position==="header",convertTo:(g,h,y)=>{g.position=y?"header":"body"}}}}if(d==="expressions"&&Object.keys(m.properties).forEach(p=>{(p==="compute"||p==="dependency"||p==="dataPicking")&&(m.properties[p].visible=!1)}),Object.keys(m.properties).length!==0){const p=m==null?void 0:m.title,g="gridFieldEditor",h="编辑器",y=m==null?void 0:m.description,v=(m==null?void 0:m.$converter)||"";c.propertyConfig.categories[i+"_"+d]={title:p,hide:Object.prototype.hasOwnProperty.call(m,"hide")?m.hide:!1,hideTitle:Object.prototype.hasOwnProperty.call(m,"hideTitle")?m.hideTitle:!1,tabId:m.tabId||g,tabName:m.tabName||h,description:y,$converter:v,parentPropertyID:"editor",propertyData:o,properties:m.properties,setPropertyRelates:m==null?void 0:m.setPropertyRelates}}}),this.propertyConfig}}let Fo=function(e){return e.condition="condition",e.formatter="formatter",e.other="other",e}({});const NE=t.defineComponent({name:"FormRuleEditor",props:{rule:Object,gridPropertyData:Object,entities:Array,plainFields:Array},emits:["updateRuleName","updateIsDefault"],setup(e,n){const o=t.ref(),a=t.ref(),i=t.ref(),r=t.ref(),l=t.ref([]),{onAddFilter:s,onClear:c,onMoveBottom:f,onMoveNext:u,onMovePrev:d,onMoveTop:m,onInsert:p,onRemove:g,activeRowIndex:h,onSelectRow:y,canClear:v,canMove:b,validateCondition:w,resetActiveRow:C}=As({singleValue:!0},l),V=t.ref(Fo.condition),x=t.inject("viewModelId"),N=t.inject("componentId"),S=t.inject("designerHostService"),{controlCreatorUtils:k,eventsEditorUtils:T,messagerService:P,dialogCodeView:F,useDataFields:I}=S,E=I==null?void 0:I.getFieldsTree(),D=t.ref(),M=t.ref(),$=t.ref(),B=new yu(N,S,!1),O=t.ref(!0),R=[{label:"等于",value:0},{label:"不等于",value:1},{label:"大于",value:2},{label:"大于等于",value:3},{label:"小于",value:4},{label:"小于等于",value:5},{label:"包含",value:6},{label:"不包含",value:9},{label:"为空",value:1001},{label:"不为空",value:1002}],A=de=>({"btn mr-2":!0,"btn-primary":V.value===de,"btn-link":V.value!==de}),L=t.ref(e.rule||{});L.value.headerButtons=L.value.headerButtons||[],t.watch(()=>l.value,(de,Me)=>{de!==Me&&(L.value.condition=de)});const _=(de,Me)=>{const Te=`${Me.raw.name} [${Me.raw.bindingPath}]`;return t.createVNode("span",{title:Te},[Te])};function W(de){L.value.fields=de,I.fieldsOrder.value[L.value.id]=de}const U=()=>{var Me,Te,le;const de=(Te=(Me=L.value)==null?void 0:Me.fields)==null?void 0:Te.findIndex(ce=>ce.id===r.value.id);if(de!==-1&&((le=L.value)!=null&&le.fields)){const ce=[...L.value.fields];if(ce[de]=r.value,L.value.fields=ce,$.value){const Se=$.value.selectedFields.findIndex(Z=>Z.columnSchema.id===r.value.id);if(Se!==-1){const Z=[...$.value.selectedFields];Z[Se].columnSchema=r.value,Z[Se].name=r.value.label||r.value.name,$.value.selectedFields=Z}}}};function Y(de){var Me;V.value!==de&&(de!==Fo.formatter&&(r.value&&U(),L.value.fields=(Me=$.value)==null?void 0:Me.selectedFields.map(Te=>Te.columnSchema)),V.value=de)}const Q=()=>{var Me,Te;const de=new tC(N,S);if(a.value=r.value?de.getFieldEditorPropForCard(r.value,L.value,"gridCardEditor",D.value):null,!a.value){(Me=o.value)==null||Me.updatePropertyConfig(null,r.value,!0);return}a.value.categories.gridCardEditor_eventsEditor.setPropertyRelates=(le,ce)=>{const{propertyValue:Se}=le;if(delete r.value[x],Se){const Z=()=>{if(T.saveRelatedParameters(r.value,x,Se.events,Se),Se.boundEventsList&&Se.boundEventsList.length>0){const re=Se.boundEventsList.find(ue=>ue.boundEvents&&ue.boundEvents.label==="onClickLabel");ce.linkLabel=!!re}else ce.linkLabel=!1};Se.isAddControllerMethod&&(Se.controlInfo={type:r.value.type,name:r.value.label},F.closeCallback=()=>{o==null||o.value.reloadPropertyPanel()}),Z()}},Object.keys(a.value.categories).forEach(le=>{const{properties:ce}=a.value.categories[le];ce&&Object.keys(ce).forEach(Se=>{ce[Se].refreshPanelAfterChanged=!1,["maxDate","minDate","defaultTime"].includes(Se)&&(ce[Se].editor.propertyTypes=["Const"])})}),(Te=o.value)==null||Te.updatePropertyConfig(a.value,r.value,!0)};function z(de){const{changeObject:Me,designerItem:Te}=de,{categoryId:le,propertyID:ce,propertyValue:Se}=Me;if((le==="gridCardEditor_editorType"||le==="gridCardEditor_basic")&&ce==="type"){D.value.editor.$type=Se;const Z=k.setFormFieldProperty(D.value,Se),re=fe.cloneDeep(r.value.editor);Z.id=r.value.id,Z.field=Z.path,Z.label=r.value.label,Z.editor=Z.editor||{},Z.editor.readonly=re.readonly||!1,Z.editor.required=re.required||!1,Z.visible=r.value.visible||!0,r.value=Z}U(),le!=="gridCardEditor_eventsEditor"&&t.nextTick(()=>{O.value=!1,t.nextTick(()=>{Q(),O.value=!0})})}function j(de){var Me,Te;D.value=de,r.value=de?de.columnSchema:null,i.value=((Me=de==null?void 0:de.columnSchema)==null?void 0:Me.type)||"",Q(),I.fieldsOrder.value=I.fieldsOrder.value||{},I.fieldsOrder.value[L.value.id]=(Te=$.value)==null?void 0:Te.selectedFields.map(le=>le.columnSchema)}function H(){P.question("确定清空当前设置的所有字段吗?","",()=>{var de;L.value.fields=[],(de=$.value)==null||de.clearSelectedFields(),j(null)},()=>{})}function q(de){de.target._value=L.value.name,L.value.name=fe.trim(de.target.value),n.emit("updateRuleName",L.value,de)}function G(de){L.value.footerContent=de}function J(de){L.value.headerContent=de}function K({selectedData:de,propertyConfig:Me,modalRef:Te,buttonPropertyPanelInstance:le}){Me.value=B.getPropertyConfig(de.value,!1,!1,Te),Me.value.categories.eventsEditor.setPropertyRelates=(ce,Se)=>{const Z=ce.propertyValue;if(delete de.value[x],Z){const re=()=>{T.saveRelatedParameters(de.value,x,Z.events,Z)};Z.isAddControllerMethod&&(Z.controlInfo={type:de.value.type,name:de.value.text},F.closeCallback=()=>{le==null||le.reloadPropertyPanel()},re())}}}const ne={modalTitle:"自定义按钮",editable:!1,idField:"id",textField:"text",allowCollapse:!1,enableClear:!0,defaultComponentSchema:{id:"button",type:"button",text:"按钮",appearance:{class:"btn btn-secondary"},visible:!0,disabled:!1,onClick:""}};function oe(de){L.value.headerButtons=de}t.watch(()=>e.rule,(de,Me)=>{var Te,le;Me&&$.value&&(Me.fields=(Te=$.value)==null?void 0:Te.selectedFields.map(ce=>ce.columnSchema).map(ce=>Me.fields.find(Se=>Se.id===ce.id))),L.value=de||{name:"",fields:[]},l.value=L.value.condition||[],L.value.showHeader=L.value.showHeader==null?!0:L.value.showHeader,de||j(null),(le=$.value)==null||le.clearActiveItem()});function ie(de){L.value.isDefault=de,de&&L.value.condition&&L.value.condition.length?P.question("设为默认格式将清空格式条件,是否继续?","",()=>{c(),n.emit("updateIsDefault",L.value)},()=>{L.value.isDefault=!1}):n.emit("updateIsDefault",L.value)}const me=t.computed(()=>({"f-utils-fill d-flex flex-column":!0," no-need-filters":L.value.isDefault}));return()=>{var de,Me,Te;return t.createVNode("div",{class:"d-flex flex-column h-100 "},[t.createVNode("div",{class:"form-rule-items f-utils-fill d-flex flex-column"},[t.createVNode("div",{style:"height: 50px;",class:"d-flex align-items-center mx-3"},[t.createVNode("span",{class:"farris-label-text"},[t.createTextVNode("格式名称:")]),t.createVNode("input",{class:"form-control f-utils-fill mr-3",type:"text",maxlength:"100",onBlur:q,ref:M,value:L.value.name,title:L.value.name,placeholder:"请输入格式名称,最多可输入100个字符",style:"text-align: left;text-overflow: ellipsis;"},null),t.createVNode("div",{class:"custom-control custom-checkbox",style:"display: inline-block;"},[t.withDirectives(t.createVNode("input",{id:"isDefaultFormRule",title:"checkbox-input",type:"checkbox",class:"custom-control-input","onUpdate:modelValue":[le=>L.value.isDefault=le,ie]},null),[[t.vModelCheckbox,L.value.isDefault]]),t.createVNode("label",{style:"padding-left: 20px;",class:"custom-control-label",for:"isDefaultFormRule"},[t.createTextVNode("默认格式")])])]),t.createVNode("div",{class:"mx-3 mb-2 d-flex align-items-center"},[t.createVNode("div",{class:"f-utils-fill"},[t.createVNode("button",{class:A(Fo.condition),onClick:()=>Y(Fo.condition)},[t.createTextVNode("格式条件")]),t.createVNode("button",{class:A(Fo.formatter),onClick:()=>Y(Fo.formatter)},[t.createTextVNode("字段设置")])]),V.value===Fo.formatter&&L.value&&t.createVNode("button",{disabled:!((de=L.value.fields)!=null&&de.length),class:"btn btn-link",onClick:()=>H()},[t.createTextVNode("清空")])]),V.value===Fo.condition&&t.createVNode("div",{class:me.value},[t.createVNode(Tf,{conditions:l.value,fields:E,singleValue:!0,idField:"bindingPath",valueField:"bindingPath",formatter:_,activeIndex:h.value,onInsert:le=>p(le),enableSearch:!0,onRemove:le=>g(le),compareOperators:R,onRowClick:le=>y(le)},null),t.createVNode(xf,{canClear:v,canMove:b,onAdd:s,onClear:c,onMoveBottom:f,onMoveNext:u,onMovePrev:d,onMoveTop:m},null)]),V.value===Fo.formatter&&t.createVNode("div",{class:"f-utils-fill d-flex ml-2"},[t.createVNode("div",{class:"f-utils-fill d-flex"},[t.createVNode(dE,{gridPropertyData:e.gridPropertyData,fields:L.value.fields,ref:$,onSelectionFieldChanged:j,entities:e.entities,plainFields:e.plainFields,onUpdateFields:W},null)]),t.createVNode(td,{enableSearch:O.value,ref:o,propertyConfig:a.value,propertyName:i.value,onPropertyChanged:z},null)]),V.value===Fo.other&&t.createVNode("div",{class:"f-utils-fill d-flex flex-column ml-3",style:"overflow: auto;"},[t.createVNode("div",{class:"custom-control custom-checkbox mb-2",style:"display: inline-block;"},[t.withDirectives(t.createVNode("input",{id:"enableHeader",title:"checkbox-input",type:"checkbox",class:"custom-control-input","onUpdate:modelValue":le=>L.value.showHeader=le},null),[[t.vModelCheckbox,L.value.showHeader]]),t.createVNode("label",{style:"padding-left: 20px;",class:"custom-control-label",for:"enableHeader"},[t.createTextVNode("启用头部")])]),!!((Me=L.value)!=null&&Me.showHeader)&&t.createVNode(t.Fragment,null,[t.createVNode("div",{class:"d-flex flex-column mr-3 mb-3",style:"height: 200px;min-height: 200px;"},[t.createVNode("div",{class:"mb-2 d-flex align-items-center"},[t.createVNode("label",{class:"m-0 mr-2"},[t.createTextVNode("头部工具栏")]),t.createVNode("div",{class:"farris-input-wrap"},[t.createVNode($s,t.mergeProps(ne,{modelValue:L.value.headerButtons,onValueChange:oe,onSelectionChange:K}),null)])]),t.createVNode("label",null,[t.createTextVNode("头部模板")]),t.createVNode(wf,{modelValue:L.value.headerContent,onValueChanged:J,class:"f-utils-fill",lineNumbers:"on",theme:"vs-dark",language:"html"},null)])]),t.createVNode("div",{class:"custom-control custom-checkbox mb-2",style:"display: inline-block;"},[t.withDirectives(t.createVNode("input",{id:"enableFooter",title:"checkbox-input",type:"checkbox",class:"custom-control-input","onUpdate:modelValue":le=>L.value.showFooter=le},null),[[t.vModelCheckbox,L.value.showFooter]]),t.createVNode("label",{style:"padding-left: 20px;",class:"custom-control-label",for:"enableFooter"},[t.createTextVNode("启用页脚")])]),!!((Te=L.value)!=null&&Te.showFooter)&&t.createVNode("div",{class:"d-flex flex-column mr-3",style:"height: 200px;min-height: 200px;"},[t.createVNode("label",null,[t.createTextVNode("页脚内容")]),t.createVNode(wf,{modelValue:L.value.footerContent,onValueChanged:G,class:"f-utils-fill",lineNumbers:"on",theme:"vs-dark",language:"html"},null)])])])])}}});function TE(e,n){const{designViewModelUtils:o,formSchemaUtils:a,schemaService:i,designerContext:r,controlCreatorUtils:l}=e,s=t.ref([]),c=t.ref([]);function f(m,p,g=[]){return m&&m.forEach(h=>{g.push(h);const y=p.find(v=>{var b;return((b=v.binding)==null?void 0:b.field)===h.data.id});if(y&&!y.editor&&h.data.id===y.binding.field){const v=l.setFormFieldProperty(i.getFieldByID(h.data.id));y.editor=v.editor}h.data.columnSchema=y,h.children&&f(h.children,p,g),r.appendIdentifyForNewControl&&(!y||y[r.identifyForNewControl])&&r.appendIdentifyForNewControl(h)}),g}function u(){if(a.designerMode==="PC_RTC"&&i.rtcAddedTreeNodes.value){const m=i.getTableInfoByViewModelId(n);if(m!=null&&m.id){const p=i.rtcAddedTreeNodes.value[m.id];p!=null&&p.length&&(s.value=s.value.concat(p))}}}function d(m){s.value=o.getAllFields2TreeByVMId(n),u(),c.value=f(s.value,m)}return{entities:s,plainFields:c,initEntities:d}}const xE=t.defineComponent({name:"FormRules",props:{rules:Array,designerHostService:Object,gridPropertyData:Object,viewModelId:String,componentId:String},emits:["updateRules"],setup(e,n){var w;const o=t.ref(null),{componentSchemaService:a,formSchemaUtils:i,useDataFields:r}=e.designerHostService;t.provide("useFormSchema",i),t.provide("SchemaService",a),t.provide("designerHostService",e.designerHostService),t.provide("viewModelId",e.viewModelId),t.provide("componentId",e.componentId);const l=t.ref(e.rules),{entities:s,plainFields:c,initEntities:f}=TE(e.designerHostService,e.viewModelId||"");t.watch(()=>e.rules,C=>{l.value=C,(!C||!C.length)&&(o.value=null)});function u(C){var V;(!C||C.id!==((V=o.value)==null?void 0:V.id))&&(o.value=C)}function d(){n.emit("updateRules",l.value)}function m(C){var x;const V=C.removed;l.value=((x=l.value)==null?void 0:x.filter(N=>N.id!==V.id))||[],d()}const p=t.computed(()=>{var C;return((C=e.gridPropertyData)==null?void 0:C.type)==="data-grid"?"datagrid":"formcard"}),g=fe.cloneDeep(((w=e.gridPropertyData)==null?void 0:w.columns)||[]).map(C=>{!C.label&&C.title&&(C.label=C.title);const V=r.columnPropertyClean(C);return{id:V.id,type:V.type,field:V.field,binding:V.binding,dataType:V.dataType,editor:null,label:V.label,appearance:V.appearance}});f(g);const h=t.ref(),y=t.computed(()=>{var C,V;return{overflow:"hidden",opacity:(C=l.value)!=null&&C.length?1:.5,"pointer-events":(V=l.value)!=null&&V.length?"auto":"none"}});function v(C,V){l.value&&l.value.length&&l.value.filter(N=>N.id!==C.id).filter(N=>N.name===C.name).length&&(new _t().error({message:"格式名称已存在,请输入其他名称",position:"top-center"}),C.name=V.target._value,V.target.focus())}function b(C){l.value&&l.value.length&&l.value.forEach(V=>{V.id===C.id?V.isDefault=C.isDefault:V.isDefault=!1})}return()=>t.createVNode("div",{class:"d-flex flex-column h-100 mx-2 border"},[t.createVNode(In,null,{default:()=>[t.createVNode(yn,{position:"left",width:200,minWidth:130,maxWidth:300},{default:()=>{var C;return[t.createVNode(kI,{rules:l.value||[],onSelect:u,fields:g,onAdd:d,onRemove:m,controlId:(C=e.gridPropertyData)==null?void 0:C.id,ruleType:p.value},null)]}}),t.createVNode(yn,{position:"center","custom-class":"layout-border flex-column",style:y.value},{default:()=>[t.createVNode(NE,{ref:h,rule:o.value,gridPropertyData:e.gridPropertyData,onUpdateRuleName:v,onUpdateIsDefault:b,entities:s.value,plainFields:c.value},null)]})]})])}});function kE(e){const n=t.ref({});function o(l){const s=l.formSchemaService.getSchemaEntities();if(!(s!=null&&s.length))return[];const c=s[0];if(!(c!=null&&c.type))return[];const f=l.buildEntityFieldsTreeData(c.type.fields,[]),u=l.buildChildEntityTreeData(c.type.entities,[]);return u!=null&&u.length&&(f==null||f.push(...u)),f}function a(l,s,c="label"){return{id:l.id,name:l.name,bindingPath:[...s,l.label].join("."),parents:s,type:"field",$type:l.$type}}function i(){const l=new os(e);return l.createTreeNode=a,o(l)}function r(l){return l.type="form-group",l.appearance={class:"col-12 col-md-6 col-xl-3 col-el-2"},["title","width","align","halign","formatter","filter","showSetting","actualWidth"].forEach(c=>{delete l[c]}),l}return{getFieldsTree:i,columnPropertyClean:r,fieldsOrder:n}}function FE(e,n){const{modalService:o,formSchemaUtils:a,messagerService:i,dialogCodeView:r}=e,{componentId:l,gridPropertyData:s,viewModelId:c}=n,f=kE(a);e.useDataFields=f;const u=t.ref(n.rules),d=fe.cloneDeep(n.rules),m=t.ref();function p(C){const V=o==null?void 0:o.getCurrentModal();o&&V.close(C)}function g(C){const V=o==null?void 0:o.getCurrentModal();V&&V.maxDialog(C)}const h=t.computed(()=>{const C=o==null?void 0:o.getCurrentModal();return C==null?void 0:C.isMaximized});function y(C){const V=[],x=new Map;return C.forEach((N,S)=>{if(N.name){const k=N.name.trim();k&&(x.has(k)||x.set(k,[]),x.get(k).push(S))}}),x.forEach((N,S)=>{N.length>1&&V.push({index:N[0],message:"第 "+N.map(k=>k+1).join(",")+" 格式名称重复"})}),C.forEach((N,S)=>{if((!N.name||!N.name.trim())&&V.push({index:S,message:"请输入格式名称"}),!N.isDefault&&(!N.condition||!Array.isArray(N.condition)||N.condition.length===0))V.push({index:S,message:"请设置格式条件"});else if(N.isDefault)(!N.fields||!Array.isArray(N.fields)||N.fields.length===0)&&V.push({index:S,message:"请配置格式字段"});else{const{validateCondition:k}=As({singleValue:!0},t.ref(N.condition)),T=k();T?V.push({index:S,message:"格式条件"+T.message}):(!N.fields||!Array.isArray(N.fields)||N.fields.length===0)&&V.push({index:S,message:"请配置格式字段"})}}),{isValid:V.length===0,errors:V}}function v(C){const x=a.getFormRules().filter(S=>S.controlId!==(s==null?void 0:s.id));C.forEach(S=>{S.viewModelId=c});const N=[...x,...C];a.setFormRules(N)}function b(C){const V=y(C);if(!C.some(N=>N.isDefault===!0))return i==null||i.error("请设置默认格式!"),!1;if(!V.isValid&&V.errors.length>0){let N="<b>请检查以下问题:</b><ul>";return V.errors.forEach(S=>{if(S.index===-1)N+=`<li>${S.message}</li>`;else{const k=C[S.index].name||`第 ${S.index+1} 条`;N+=`<li>${k}: ${S.message}</li>`}}),N+="</ul>",i==null||i.error(N),!1}return Object.keys(f.fieldsOrder.value||{}).forEach(N=>{const S=f.fieldsOrder.value[N],k=C.find(T=>T.id===N);if(k){const T=S.map(P=>k.fields.find(F=>F.id===P.id));k.fields=T}}),v(C),!0}function w(C){const V=o==null?void 0:o.open({fitContent:!1,width:970,height:600,title:"配置卡片格式",showMaxButton:!0,showButtons:!0,draggable:!0,resizeable:!0,stopMoveHandle:()=>{const x=document.activeElement;x&&typeof x.blur=="function"&&x.blur()},render:()=>t.createVNode(xE,{ref:m,isMaximized:h.value,designerHostService:e,gridPropertyData:s,viewModelId:c,rules:u.value,componentId:l,onMaximize:g,onCloseModal:p,onUpdateRules:x=>{u.value=x,t.nextTick(()=>{V==null||V.disableButtons(["clear"],!x.length)})}},null),closedCallback:(x,N)=>{r.openCodeEditor=!1,C&&C()},buttons:[{name:"clear",text:"移除所有格式",disabled:!u.value.length,class:"btn btn-link px-2",styles:"position: absolute;left:20px",handle:x=>{i.question("确定要删除所有格式吗?","",()=>{u.value=[],V==null||V.disableButtons(["clear"],!0)},()=>{})}},{name:"cancel",text:"取消",class:"btn btn-secondary",handle:x=>(r.openCodeEditor=!1,v(d),!0)},{name:"accept",text:"确定",class:"btn btn-primary",handle:x=>{b(u.value)&&(V.close(),r.openCodeEditor=!1)}}]});r.openCodeEditor=!0}return{show:w}}function ME(e,n,o){const{modalService:a,formSchemaUtils:i,eventsEditorUtils:r,dialogCodeView:l,useFormCommand:s}=e,{componentId:c,modalPropertyData:f,viewModelId:u,onSubmitHandle:d,onCancelHandle:m,defaultClass:p}=n,g=t.ref(n.buttons),h={id:"button",type:"button",text:"按钮",appearance:{class:p||"btn btn-secondary"},visible:!0,disabled:!1,onClick:""},y=new yu(c,e,!1),v=t.ref(),b=fe.cloneDeep(n.buttons||[]);function w(){g.value=[]}function C(){if(d)return typeof d=="function"&&d(g.value);{const N=i.getExternalComponents().find(S=>S.id===f.id);return N&&(N.buttons=g.value),!0}}function V({selectedData:N,propertyConfig:S,propertyPanelRef:k}){S.value=y.getPropertyConfig(N.value,!1,!1),S.value.categories.behavior.properties.disabled.refreshPanelAfterChanged=!1,S.value.categories.eventsEditor.setPropertyRelates=(T,P)=>{const F=T.propertyValue;if(delete N.value[u],F){const I=()=>{r.saveRelatedParameters(N.value,u,F.events,F)};F.isAddControllerMethod&&(F.controlInfo={type:N.value.type,name:N.value.text},e.dialogCodeView.closeCallback=()=>{k==null||k.reloadPropertyPanel()}),I()}},o&&o(S.value)}function x(N){const S=a==null?void 0:a.open({fitContent:!1,width:800,height:600,title:"自定义按钮",showMaxButton:!0,showButtons:!0,draggable:!0,resizeable:!0,render:()=>t.createVNode(fv,{ref:v,modelValue:g.value,"onUpdate:modelValue":k=>g.value=k,designerHostService:e,idField:"id",textField:"text",defaultComponentSchema:h,onSelectionChange:V,useFormCommand:s,useFormSchema:i,allowCollapse:!1,enableClear:!0,onClear:w},null),closedCallback:(k,T)=>{l.openCodeEditor=!1,N&&N()},buttons:[{name:"cancel",text:"取消",class:"btn btn-secondary",handle:k=>(l.openCodeEditor=!1,m&&m(b),!0)},{name:"accept",text:"确定",class:"btn btn-primary",handle:k=>{C()&&(S.close(),l.openCodeEditor=!1)}}]});l.openCodeEditor=!0}return{show:x}}const PE={install(e){e.component($s.name,$s)},register(e,n,o,a){e["collection-property-editor"]=$s,n["collection-property-editor"]=MI}};class IE extends qt{constructor(n,o){super(n,o)}getModalButtons(n){const o=this.formSchemaUtils.getExternalComponents().find(a=>a.id===n);return o?o.buttons||[]:[]}setModalButtons(n,o){const a=this.formSchemaUtils.getExternalComponents().find(i=>i.id===n);a&&(a.buttons=o)}getPropertyConfig(n,o){var a;return this.getBasicPropConfig(n),this.getAppearanceProperties(n,o),(n.displayType==="Card"&&((a=n.columns)!=null&&a.length)||n.displayType!=="Card")&&(this.propertyConfig.categories.column=tv().getColumnOptionProperties(n)),n.displayType!=="Card"&&(this.propertyConfig.categories.command=nv(this).getCommandColumnProperties(n),this.propertyConfig.categories.rowOption=ev().getRowOptionProperties(n),this.propertyConfig.categories.summary=ov().getSummaryProperties(n)),this.propertyConfig.categories.group=NI().getGroupProperties(n,this.viewModelId),n.displayType!=="Card"&&(this.propertyConfig.categories.sort=TI().getSort(n),this.propertyConfig.categories.filter=xI().getFilter(n)),this.getEventPropConfig(n),this.propertyConfig}getBasicPropConfig(n){var l,s,c;const o=(c=(s=(l=this.formSchemaUtils.getFormSchema())==null?void 0:l.module)==null?void 0:s.entity[0])==null?void 0:c.entities[0],a=this.assembleSchemaEntityToTree(o,0),i=this,r=super.getBasicPropConfig(n);this.propertyConfig.categories.basic={description:"Basic Information",title:"基本信息",properties:{...r.properties,dataSource:{description:"绑定数据源",title:"绑定数据源",editor:{type:"combo-tree",textField:"name",valueField:"label",data:a,editable:!1},readonly:!0}},setPropertyRelates(f,u){switch(f&&f.propertyID){case"dataSource":{const d=i.formSchemaUtils.getViewModelById(i.viewModelId);if(d){const m=a.find(p=>p.label===f.propertyValue);d.bindTo=m.bindTo}i.designViewModelUtils.assembleDesignViewModel();break}}}}}assembleSchemaEntityToTree(n,o,a,i="",r=[]){const l=i?`${i}/${n.label}`:"/";return r.push({id:n.id,name:n.name,label:n.label,layer:o,parent:a&&a.id,bindTo:l.replace("//","/")}),n.type.entities&&n.type.entities.length&&n.type.entities.map(s=>this.assembleSchemaEntityToTree(s,o+1,n,l,r)),r}getAppearanceProperties(n,o){this.propertyConfig.categories.appearance=sv().getDataGrid(n,this.viewModelId),this.getGridRuleProperties(n,o),n.displayType!=="Card"&&(this.propertyConfig.categories.selection=iv().getSelection(n),this.propertyConfig.categories.rowNumber=rv().getRowNumber(n),this.propertyConfig.categories.pagination=lv().getPagination(n,this.isSubGrid()))}getEventPropConfig(n){const o=[...av().initEvent(n)],a=this,i=a.eventsEditorUtils.formProperties(n,a.viewModelId,o),r=a.createBaseEventProperty(i);this.propertyConfig.categories.eventsEditor={title:"事件",hideTitle:!0,properties:r,refreshPanelAfterChanged:!0,tabId:"commands",tabName:"交互",setPropertyRelates(l,s){const c=l.propertyValue;delete n[a.viewModelId],c&&(c.setPropertyRelates=this.setPropertyRelates,a.eventsEditorUtils.saveRelatedParameters(n,a.viewModelId,c.events,c)),n.remoteSort=!!n.columnSorted,n.command&&(n.command.onClickEditCommand=n.onClickEditCommand,n.command.onClickDeleteCommand=n.onClickDeleteCommand,n.command.onHandleAction=n.onHandleAction)}}}isSubGrid(){const n=this.formSchemaUtils.getViewModelById(this.viewModelId);return n&&n.bindTo?n.bindTo.trim()!=="/":!1}cleanDataItem(n){Object.keys(n).forEach(o=>{o.indexOf("__fv")>-1&&delete n[o]})}cleanData(n){if(n)return n.forEach(o=>{this.cleanDataItem(o)}),n}getGridRuleProperties(n,o){var u,d;const a=this,i=()=>this.formSchemaUtils.getFormRules().filter(p=>p.type==="datagrid"&&p.controlId===n.id),r=()=>{const p=this.formSchemaUtils.getFormRules().filter(g=>g.controlId!==n.id);this.formSchemaUtils.setFormRules(p)},l=()=>n.displayType==="Card"&&(!!n.showCardHeader||n.showCardHeader===void 0),s=()=>n.displayType==="Card"&&(!!n.showCardFooter||n.showCardFooter===void 0),c=()=>{const m=a.formSchemaUtils.getViewModelById(this.viewModelId);return m&&m.bindTo?m.bindTo.trim().split("/").filter(p=>p).length===1:!1},f=fe.cloneDeep(n.cardToolbar||[]);this.propertyConfig.categories.gridRules={description:"卡片格式设置",title:"卡片格式",hide:!c(),properties:{displayType:{title:"显示模式",description:"表格按照什么模式展示,默认List模式",type:"enum",refreshPanelAfterChanged:!0,editor:{data:[{id:"List",name:"表格"},{id:"Card",name:"卡片"}]}},showCardHeader:{title:"显示头部",description:"",type:"boolean",visible:n.displayType==="Card",refreshPanelAfterChanged:!0},cardMainTitle:{title:"卡片主标题",description:"卡片主标题",type:"string",visible:l(),refreshPanelAfterChanged:!0},cardTitleTemplate:{title:"头部标题模板",description:"头部标题模板设置后,会覆盖卡片主标题",type:"string",visible:l(),editor:{type:"code-editor",language:"html",enableClear:!0},refreshPanelAfterChanged:!0},cardHeaderTemplate:{title:"头部内容模板",description:"头部内容模板",type:"string",visible:l(),editor:{type:"code-editor",language:"html",enableClear:!0},refreshPanelAfterChanged:!0},cardToolbar:{visible:l(),description:"配置卡片头部区域展示的按钮",title:"头部工具栏按钮组",type:"array",defaultValue:`共 ${((u=n.cardToolbar)==null?void 0:u.length)||0} 项`,$converter:{convertFrom:()=>{var m;return`共 ${((m=n.cardToolbar)==null?void 0:m.length)||0} 项`}},editor:{type:"button-edit",editable:!1,enableClear:((d=n.cardToolbar)==null?void 0:d.length)>0,buttonContent:'<i class="f-icon f-icon-lookup"></i>',onClear:()=>{const{messagerService:m}=a.designerHostService;m.question("您确定要清空所有按钮吗?","",()=>{n.cardToolbar=[],a.getFormDesignerInstance().reloadPropertyPanel()},()=>{n.cardToolbar=f,a.getFormDesignerInstance().reloadPropertyPanel()})},onClickButton:()=>{ME(a.designerHostService,{defaultClass:"btn btn-link",buttons:n.cardToolbar||[],modalPropertyData:n,componentId:a.componentId,viewModelId:a.viewModelId,onSubmitHandle:m=>(n.cardToolbar=this.cleanData(m),!0),onCancelHandle:m=>{n.cardToolbar=this.cleanData(m)}},m=>{m.categories.behavior.properties.disabled.editor.propertyTypes=["Const","Variable","StateMachine","Expression"]}).show(()=>{a.getFormDesignerInstance().reloadPropertyPanel()})}}},showCardFooter:{title:"显示底部",description:"",type:"boolean",visible:n.displayType==="Card",refreshPanelAfterChanged:!0},cardFooterTemplate:{title:"底部内容模板",description:"",type:"string",visible:s(),refreshPanelAfterChanged:!0,editor:{type:"code-editor",language:"html",enableClear:!0}},rules:{description:"配触发条件,根据条件动态渲染卡片",title:"格式配置",defaultValue:`共 ${i().length} 项`,editor:{type:"button-edit",editable:!1,enableClear:i().length>0,buttonContent:'<i class="f-icon f-icon-lookup"></i>',onClear:()=>{const{messagerService:m}=this.designerHostService;m.question("确定要删除所有格式吗?","",()=>{r(),this.getFormDesignerInstance().reloadPropertyPanel()},()=>{this.getFormDesignerInstance().reloadPropertyPanel()})},onClickButton:()=>{FE(this.designerHostService,{rules:i(),gridPropertyData:n,componentId:this.componentId,viewModelId:this.viewModelId}).show(()=>{this.getFormDesignerInstance().reloadPropertyPanel()})}},readonly:!1,visible:!!n.displayType&&n.displayType.toLowerCase()==="card"}},setPropertyRelates(m,p){switch(m&&m.propertyID){case"displayType":{m.propertyValue.toLowerCase()==="card"?(o.appearance.class=o.appearance.class.replace(/\s+$/,""),o.appearance.class=`${o.appearance.class.trim()} h-auto data-grid-container`):o.appearance.class=o.appearance.class.replace("h-auto data-grid-container","");break}}}}}}function $E(e,n){const o=e.schema,a=t.ref(!0),i=t.ref(!0);function r(p){return p&&p.sourceType==="control"?p.componentCategory==="input":!1}function l(){return!1}function s(){return!1}function c(){return!0}function f(p){var y;const g=new IE(p,n),h=(y=e==null?void 0:e.parent)==null?void 0:y.schema;return g.getPropertyConfig(o,h)}function u(){var p,g,h,y;if(e&&n){const v=(p=e==null?void 0:e.componentInstance)==null?void 0:p.value.belongedComponentId;let b="",w="";const{formSchemaUtils:C}=n;if(v){const x=C.getRootViewModelId(),N=C.getComponentByViewModelId(x),S=C.selectNode(N,k=>k.contents&&k.contents.find(T=>T.component===v));(S==null?void 0:S.type)===((g=he["tab-page"])==null?void 0:g.type)&&((h=S==null?void 0:S.contents)!=null&&h.length)&&(b=S.title||""),(S==null?void 0:S.type)===((y=he.section)==null?void 0:y.type)&&(S==null?void 0:S.showHeader)!==!1&&(b=S.mainTitle||""),b=b?`${b} > `:"",w=b?S.id:""}const V=he["data-grid"].name;n==null||n.formSchemaUtils.getControlBasicInfoMap().set(e.schema.id,{componentTitle:V,parentPathName:`${b}${V}`,reliedComponentId:w}),o.cardToolbar&&o.cardToolbar.length&&o.cardToolbar.forEach(x=>{n==null||n.formSchemaUtils.getControlBasicInfoMap().set(x.id,{componentTitle:x.text,parentPathName:`${b}${V} > ${x.text}`,reliedComponentId:w})})}}function d(p){var g;p&&((g=p==null?void 0:p.changeObject)==null?void 0:g.propertyID)==="cardToolbar"&&u()}function m(){if(!n)return;const{formSchemaUtils:p}=n,h=p.getFormRules().filter(y=>y.type==="datagrid"&&y.controlId!==o.id);p.setFormRules(h)}return{canAccepts:r,checkCanDeleteComponent:l,checkCanMoveComponent:s,hideNestedPaddingInDesginerView:c,triggerBelongedComponentToMoveWhenMoved:a,triggerBelongedComponentToDeleteWhenDeleted:i,getPropsConfig:f,setComponentBasicInfoMap:u,onRemoveComponent:m,onPropertyChanged:d}}const La=t.defineComponent({name:"FDataGridDesign",props:VI,emits:["ClickRow","DoubleClickRow","selectionChange","enterUpInLastCell","pageIndexChanged","pageSizeChanged"],setup(e,n){var Te,le;const o=t.ref(!1),a=t.ref(((Te=e.rowOption)==null?void 0:Te.rowHeight)||28),i=t.ref(),r=t.inject("designer-host-service"),l=t.inject("design-item-context"),s=$E(l,r),c=it(i,l,s);c.value.styles="display:flex;flex:1;",t.onMounted(()=>{i.value.componentInstance=c}),t.provide("data-grid-context",{dataGridProps:e}),n.expose(c.value);const f=t.ref(e.columns),u=20,d=Jo(e),m=0,p=t.ref(),g=t.ref(),h=t.ref(e.showStripe),y=t.ref([]),v=t.ref(!1),b=t.ref(((le=e.rowOption)==null?void 0:le.wrapContent)||!1),w=Uo(e,n),C=Go(e),V=zo(e,new Map,w,C,d),x=ea(e,V,d,y,n),N=t.computed(()=>V.totalItems.value<u?V.totalItems.value:u),{containerStyleObject:S}=Ga(e,y),k=cl(e),{applyCommands:T}=k;T(f);const P=Jb(e),F=fl(),{applyColumnSorter:I,columnContext:E,updateColumnRenderContext:D}=P;I(V,F);const M=ji(e,E),$=Zo(e,n,x,d),B=Ko(e,n,d,$,y),O=Yo(e,V,a),R=Qo(e,B,O),A=Xo(e,V,B,C,d,O,R,a),L=dl(e,d,R,A),_=ul(e,d,R,A),W=Zb(e,f,V,N,m,A,L,_),{getVisualData:U}=W,Y=Qa(e,x),{sidebarWidth:Q}=Y;y.value=U(0,N.value+m-1);const z=ba(e,V,y,E,W,N,m,Q,a,o),{onWheel:j,dataGridWidth:H,viewPortHeight:q,viewPortWidth:G}=z,J=Kb(e,E,p,G,M),{calculateColumnsSize:K}=J,ne=t.computed(()=>({"fv-grid":!0,"fv-grid-bordered":!0,"fv-datagrid-strip":h.value})),oe=t.computed(()=>({"fv-grid-content":!0,"fv-grid-content-hover":v.value,"fv-grid-wrap-content":b.value})),{renderGridHeader:ie}=cv(l,e,P,z),{renderHorizontalScrollbar:me}=Ri(e,p,z);function de(){var ce,Se;q.value=((ce=g.value)==null?void 0:ce.clientHeight)||0,H.value=((Se=p.value)==null?void 0:Se.clientWidth)||0,K()}t.onMounted(()=>{p.value&&(Ji.useResizeObserver(p.value,de),K(),t.nextTick(()=>{p.value&&(H.value=p.value.clientWidth),g.value&&(G.value=g.value.clientWidth,q.value=g.value.clientHeight)}))});function Me(ce){ce&&(f.value=ce,T(f),D(f.value),I(V,F),K())}return t.watch(()=>e.columns,ce=>{Me(ce),Jt.value++}),t.watch(G,()=>{p.value&&K()}),()=>t.createVNode("div",{ref:i,class:ne.value,style:{flex:"1 1 0"},onWheel:j},[ie(),t.createVNode("div",{ref:p,class:oe.value,onMouseover:()=>{v.value=!0},onMouseleave:()=>{v.value=!1}},[me()])])}}),Hs=new Map([["appearance",rt],["column","columnOption"],["command","commandOption"]]),nC=new Map([]),EE="root-viewmodel";class DE{constructor(n,o){X(this,"formSchemaUtils");X(this,"controlCreatorUtils");X(this,"designViewModelUtils");X(this,"useFormCommand");X(this,"formStateMachineUtils");this.resolver=n,this.designerHostService=o,this.formSchemaUtils=this.designerHostService.formSchemaUtils,this.controlCreatorUtils=this.designerHostService.controlCreatorUtils,this.designViewModelUtils=this.designerHostService.designViewModelUtils,this.useFormCommand=this.designerHostService.useFormCommand,this.formStateMachineUtils=this.designerHostService.formStateMachineUtils}createComponent(n){const o=this.createComponentRefNode(n),a=this.createComponentNode(n),i=this.createViewModeNode(n),r=this.formSchemaUtils.getFormSchema();return r.module.viewmodels.push(i),r.module.components.push(a),this.designViewModelUtils.assembleDesignViewModel(),this.wrapContainerSectionForComponent(o,n,i)}wrapContainerSectionForComponent(n,o,a){var c,f,u,d,m,p,g,h,y,v,b;const i=(f=(c=o==null?void 0:o.parentComponentInstance)==null?void 0:c.schema)==null?void 0:f.type,r=(m=(d=(u=o==null?void 0:o.parentComponentInstance)==null?void 0:u.schema)==null?void 0:d.appearance)==null?void 0:m.class,l=(g=(p=this.formSchemaUtils.getFormSchema())==null?void 0:p.module)==null?void 0:g.templateId;if(i===he["splitter-pane"].type&&(r!=null&&r.includes("f-page-content-main"))&&["double-list-template","tree-list-template"].includes(l))return n;const s=[he["content-container"].type,he["response-layout-item"].type,he["splitter-pane"].type,he.drawer.type];if(i&&s.includes(i)){const w=this.resolver.getSchemaByType("section",{parentComponentInstance:o.parentComponentInstance,mainTitle:o.componentName},this.designerHostService);if(w&&w.contents&&w.contents.length){const C=w.contents[0];return C.contents=[n],this.appendAddDeleteBtnToParentContainer(C,o,a),w}}return this.appendAddDeleteBtnToParentContainer((h=o==null?void 0:o.parentComponentInstance)==null?void 0:h.schema,o,a),i===he["tab-page"].type&&(y=o.parentComponentInstance)!=null&&y.parent&&(v=o.parentComponentInstance)!=null&&v.parent.updateToolbarItems&&((b=o.parentComponentInstance)==null||b.parent.updateToolbarItems()),n}appendAddDeleteBtnToParentContainer(n,o,a){const i=n.type,r=a.id.replace(/-/g,"").replace(/_/g,"").replace("component","").replace("viewmodel","");if(o.bindTo==="/"||o.componentType!=="data-grid"&&o.componentType!=="form")return;const l=this.formStateMachineUtils&&this.formStateMachineUtils.getRenderStates(),s=he["tab-page"].type===i?"tab-toolbar-item":"section-toolbar-item",c=this.resolver.getSchemaByType(s),f=[Object.assign({},c,{id:`button-add-${o.componentId}`,type:s,text:"新增",disabled:l.find(u=>u.id==="canAddDetail")?{type:"StateMachine",status:!1,field:"canAddDetail"}:!1,onClick:`root-viewModel.${a.id}.${r}AddItem1`}),Object.assign({},c,{id:`button-remove-${o.componentId}`,type:s,text:"删除",disabled:l.find(u=>u.id==="canRemoveDetail")?{type:"StateMachine",status:!1,field:"canRemoveDetail"}:!1,onClick:`root-viewModel.${a.id}.${r}RemoveItem1`})];n.toolbar||(n.toolbar={id:`${n.id}_toolbar`,type:he["tab-page"].type===i?"tab-toolbar":"section-toolbar",buttons:[]}),n.toolbar.id||(n.toolbar.id=`${n.id}_toolbar`),n.toolbar.type||(n.toolbar.type=he["tab-page"].type===i?"tab-toolbar":"section-toolbar"),n.toolbar.buttons||(n.toolbar.buttons=[]),n.toolbar.buttons=n.toolbar.buttons.concat(f),this.appendAddAndDeleteCommands(a),this.useFormCommand&&this.useFormCommand.checkCommands()}appendAddAndDeleteCommands(n){var u;const o=n.id.replace(/-/g,"").replace(/_/g,"").replace("component","").replace("viewmodel",""),a=Dt().guid(),i=Dt().guid(),r=this.resolveCommandController(),l={id:a,code:`${o}AddItem1`,name:"增加一条子表数据",params:[],handlerName:"AddItem",cmpId:r,shortcut:{},extensions:[]},s={id:i,code:`${o}RemoveItem1`,name:"删除一条子表数据",params:[{name:"id",shownName:"待删除子表数据的标识",value:`{DATA~${n.bindTo}/id}`}],handlerName:"RemoveItem",cmpId:r,shortcut:{},extensions:[]};(u=this.designerHostService.designerContext)!=null&&u.appendIdentifyForNewCommand&&(this.designerHostService.designerContext.appendIdentifyForNewCommand(l),this.designerHostService.designerContext.appendIdentifyForNewCommand(s)),n.commands.push(l,s),this.formSchemaUtils.getFormSchema().module.webcmds.find(d=>d.id===r).refedHandlers.push({host:a,handler:"AddItem"},{host:i,handler:"RemoveItem"})}resolveCommandController(){const n=this.formSchemaUtils.getFormSchema().module.webcmds,o=["8172a979-2c80-4637-ace7-b13074d3f393","8fe977a1-2b32-4f0f-a6b3-2657c4d03574","45be24f9-c1f7-44f7-b447-fe2ada458a61"],a=n.find(r=>o.includes(r.id));if(a)return a.id;const i="45be24f9-c1f7-44f7-b447-fe2ada458a61";return n.push({id:i,path:"/projects/packages/Inspur.GS.Gsp.Web.WebCmp/webcmd",name:"AdvancedListCardController.webcmd",refedHandlers:[]}),i}createComponentRefNode(n){const o=this.resolver.getSchemaByType("component-ref");return Object.assign(o,{id:`${n.componentId}-component-ref`,component:`${n.componentId}-component`}),o}createComponentNode(n){const o=this.resolver.getSchemaByType("component"),a=this.createDateGridComponentContents(n);return Object.assign(o,{id:`${n.componentId}-component`,viewModel:`${n.componentId}-component-viewmodel`,componentType:n.componentType,appearance:{class:this.getDataGridComponentClass(n)},contents:a}),o}createViewModeNode(n){return{id:`${n.componentId}-component-viewmodel`,code:`${n.componentId}-component-viewmodel`,name:n.componentName,bindTo:n.bindTo,parent:EE,fields:this.assembleViewModelFields(n),commands:[],states:[],enableValidation:!0}}getDataGridComponentClass(n){var r,l,s,c;const{templateId:o}=this.formSchemaUtils.getFormSchema().module,a=(r=n.parentComponentInstance)==null?void 0:r.schema,i=(l=a==null?void 0:a.appearance)==null?void 0:l.class;if(o==="double-list-in-tab-template"&&(a==null?void 0:a.type)==="tab-page"){const f=((s=n.parentComponentInstance)==null?void 0:s.parent)&&((c=n.parentComponentInstance)==null?void 0:c.parent.schema);if((f==null?void 0:f.type)==="tabs"&&(f==null?void 0:f.fill)===!0)return"f-struct-wrapper f-utils-fill-flex-column"}return["double-list-template","tree-list-template"].includes(o)&&(i!=null&&i.includes("f-page-content-main"))?"f-struct-wrapper f-utils-fill-flex-column":"f-struct-is-subgrid"}createDateGridComponentContents(n){var m,p,g,h,y;const o=(m=n.parentComponentInstance)==null?void 0:m.schema,a=(g=(p=o==null?void 0:o.schema)==null?void 0:p.appearance)==null?void 0:g.class,{templateId:i}=this.formSchemaUtils.getFormSchema().module;let r,l=!1;if(i==="double-list-in-tab-template"&&(o==null?void 0:o.type)==="tab-page"){const v=((h=n.parentComponentInstance)==null?void 0:h.parent)&&((y=n.parentComponentInstance)==null?void 0:y.parent.schema);(v==null?void 0:v.type)==="tabs"&&(v==null?void 0:v.fill)===!0&&(l=!0)}if(l){const v=this.resolver.getSchemaByType("section");Object.assign(v,{id:n.componentId+"-section",appearance:{class:"f-section-grid f-section-in-main px-0 pt-0"},fill:!0,showHeader:!1}),r=v}else if((i==="double-list-template"||i==="tree-list-template")&&(a!=null&&a.includes("f-page-content-main"))){const v=this.resolver.getSchemaByType("section");Object.assign(v,{id:n.componentId+"-section",appearance:{class:"f-section-grid f-section-in-main"},fill:!0,showHeader:!1}),r=v}else{const v=this.resolver.getSchemaByType("content-container");Object.assign(v,{id:n.componentId+"-container",appearance:{class:"f-grid-is-sub f-utils-flex-column"}}),r=v}const s=this.resolver.getSchemaByType("data-grid"),c=[],f=this.formStateMachineUtils&&this.formStateMachineUtils.getRenderStates(),u=n.editable&&f.length>0&&f.findIndex(v=>v.id==="editable")>-1;Object.assign(s,{id:n.componentId+"-dataGrid",appearance:{class:"f-component-grid"},columns:c,fieldEditable:u,dataSource:n.dataSource||"",editable:u?{type:"StateMachine",status:!0,field:"editable"}:!1,pagination:{enable:!n.editable}}),r.contents=[s];const{selectedFields:d}=n;return d==null||d.forEach(v=>{if(v.$type===wn.ComplexField)return;const b=fe.cloneDeep(v),w=this.controlCreatorUtils.setGridFieldProperty("data-grid-column",b,"",u);w&&c.push(w)}),[r]}assembleViewModelFields(n){const o=[],{selectedFields:a}=n;return a==null||a.forEach(i=>{if(i.$type===wn.ComplexField)return;let r="blur";const l=i.type.name;(l===Bn.Enum||l===Bn.Boolean)&&(r="change"),o.push({type:"Form",id:i.id,fieldName:i.bindingField,groupId:null,groupName:null,updateOn:r,fieldSchema:{}})}),o}}function Ws(e,n,o,a){var r,l,s,c,f,u,d;const i=o.parentComponentInstance;if(i&&a){const m=Math.random().toString(36).slice(2,6),p={componentId:`data-grid-${m}`,componentName:((r=o.bindingSourceContext)==null?void 0:r.entityTitle)||((s=(l=o.bindingSourceContext)==null?void 0:l.bindingEntity)==null?void 0:s.name)||`表格-${m}`,componentType:"data-grid",parentContainerId:i.schema.id,parentComponentInstance:i,editable:!0,bindTo:((c=o.bindingSourceContext)==null?void 0:c.bindTo)||"",dataSource:(u=(f=o.bindingSourceContext)==null?void 0:f.bindingEntity)==null?void 0:u.label,selectedFields:(d=o.bindingSourceContext)==null?void 0:d.bindingEntityFields};return new DE(e,a).createComponent(p)}else return n}function oC(e,n,o){return n}const aC={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/grid-field-editor.schema.json",title:"grid-field-editor",description:"A Farris Data Grid Component",type:"object",properties:{id:{description:"The unique identifier for a Input Group",type:"string"},type:{description:"The type string of Input Group component",type:"string",default:"grid-field-editor"},viewModelId:{description:"",type:"string",default:""},gridData:{description:"",type:"object",default:null},usage:{description:"",type:"string",default:"column"}},required:["id","type"]},jf={modelValue:{type:String,default:""},viewModelId:{Type:String,default:""},gridData:{Type:Object,default:null},gridType:{Type:String,default:"data-grid-column"},getLatestGridData:{Type:Function},usage:{Type:String,default:Ro.Column}};je(jf,aC,Hs,Ws);const OE=Yt(jf,aC,Hs,Ws),BE=t.defineComponent({name:"FGridFieldEditor",props:jf,emits:["change"],setup(e,n){const o=t.ref(e.viewModelId),a=t.inject("designViewModelUtils"),i=t.inject("useFormSchema"),r=t.inject("schemaService"),l=t.inject("controlCreatorUtils"),s=t.inject("designerContext");let c=e.gridData.columns;const{fieldEditable:f}=e.gridData,u=t.ref(`共 ${(c||[]).length} 项`),d=t.ref([]),m=t.ref([]);let p=[];function g(){if(e.usage===Ro.Group){let M=[];if(e.gridData.group&&e.gridData.group.groupFields){const{groupFields:$}=e.gridData.group;M=$}c=p.filter($=>M.includes($.data.bindingPath)).map($=>l.setGridFieldProperty(e.gridType,$.data,null,f)),u.value=`共 ${(c||[]).length} 项`}}function h(M){return e.usage===Ro.Group?M.map($=>$.field):M}function y(M,$=!0){if(s.checkCanDeleteControl){const B=p.find(O=>{var R;return((R=O.data)==null?void 0:R.id)===M.id});return s.checkCanDeleteControl(B,$)}return!0}const v={customRowStatus:M=>{const $=M.raw;$.type&&$.type.fields&&$.type.fields.length>0&&(M.disabled=!0),y($,!1)||(M.disabled=!0)}};function b(){if(d.value=[],!c||c.length===0)return[];const M="[绑定字段不存在,待移除]";c.forEach($=>{if($.binding&&$.binding.field){const B=p.find(O=>O.data.id===$.binding.field);B?B.data.$type===wn.ComplexField?d.value.push(Object.assign({isInValidBinding:!0},B.data,{name:B.data.name+M})):d.value.push(Object.assign({},B.data)):d.value.push({id:$.binding.field,name:$.title+M,label:$.field,bindingField:null,isInValidBinding:!0})}}),u.value=`共 ${d.value.length} 项`}function w(M,$=[]){return M&&M.forEach(B=>{if($.push(B),B.children&&w(B.children,$),s.appendIdentifyForNewControl){const O=c.find(R=>{var A;return((A=R.binding)==null?void 0:A.field)===B.data.id});(!O||O[s.identifyForNewControl])&&s.appendIdentifyForNewControl(B)}}),$}function C(){if(i.designerMode==="PC_RTC"&&r.rtcAddedTreeNodes.value){const M=r.getTableInfoByViewModelId(o.value);if(M!=null&&M.id){const $=r.rtcAddedTreeNodes.value[M.id];$!=null&&$.length&&(m.value=m.value.concat($))}}}function V(){m.value=a.getAllFields2TreeByVMId(o.value),C(),p=w(m.value)}function x(M,$,B){if(i.getComponents().find(R=>{let A=i.getControlsInCmpWidthBinding(R.viewModel,M);if(A=A.filter(L=>{var W;if(L.id===B)return!1;const _=$.type==="visible"?L[$.type]:(W=L.editor)==null?void 0:W[$.type];if(_&&_.type==="Expression"&&_.expressionId===$.id)return!0}),A.length)return!0}))return!0}function N(M){M.map($=>{var O;const B=c.find(R=>{var A;return((A=R.binding)==null?void 0:A.field)===$});if(B&&i.getExpressions().length){const R=i.getExpressions(),A=R.findIndex(L=>L.target===$);A>-1&&((O=R[A].rules)==null||O.map(L=>{var _;switch(L.type){case"visible":case"readonly":case"required":{const W=L.type==="visible"?B[L.type]:(_=B.editor)==null?void 0:_[L.type];W&&W.type==="Expression"&&W.expressionId===L.id&&(x($,L,B.id)||(L.needDelete=!0));break}default:x($,L,B.id)||(L.needDelete=!0)}}),R[A].rules=R[A].rules.filter(L=>!L.needDelete))}})}function S(){const M=a.getDgViewModel(o.value),$=[],B=[],O=d.value;if(O.forEach(R=>{const A=c==null?void 0:c.find(L=>{if(L.binding&&L.binding.field)return L.binding.field===R.id});if(A)$.push(A);else{const L=l.setGridFieldProperty(e.gridType,R.data,null,f);e.usage!==Ro.Group&&M.addField(R),$.push(L)}B.push(R.id)}),e.usage!==Ro.Group){const R=M.fields.filter(A=>!B.includes(A.id));if(R&&R.length>0){const A=R.map(L=>L.id);M.removeField(A),N(A)}}O.length!==d.value.length&&(d.value=O),u.value=`共 ${$.length} 项`,n.emit("change",h($))}const k={fitContent:!1,width:900,height:600,title:"列编辑器",draggable:!0,acceptCallback:()=>{S()},rejectCallback:()=>{}};function T(){return e.getLatestGridData?c=e.getLatestGridData().columns:c=e.gridData.columns,V(),g(),b(),Promise.resolve(!0)}function P(M){e.usage===Ro.Group?d.value=[M.raw]:d.value=[...d.value,M.raw]}function F(M){const $=d.value.findIndex(B=>B.id===M.raw.id);$>-1&&(d.value=[...d.value.slice(0,$),...d.value.slice($+1)])}function I(M){const $=d.value.findIndex(B=>B.id===M.id);$>-1&&(d.value=[...d.value.slice(0,$),...d.value.slice($+1)])}function E(M){const $=M[0].__fv_index__,B=d.value.findIndex(R=>R.id===M[0].id),O=d.value.find(R=>R.id===M[0].id);d.value.splice(B,1),d.value.splice($,0,O)}const D=[{field:"name",title:"",dataType:"string",width:"100%",formatter:(M,$)=>M.data+` [${$.data.bindingField.data}]`},{field:"bindingField",visible:!1,title:"",dataType:"string"}];return t.onMounted(()=>{V(),g()}),()=>t.createVNode(pn,{"button-behavior":"Modal","modal-options":k,modelValue:u.value,"onUpdate:modelValue":M=>u.value=M,editable:!1,beforeOpen:T},{default:()=>[t.createVNode("div",{class:"f-utils-absolute-all"},[t.createVNode(ga,{selections:d.value,"data-source":m.value,rowOption:v,class:"mx-2",columns:D,displayType:"Tree",onRemoveItem:I,onSelectItem:P,onUnSelectItem:F,onActiveChange:E,checkBeforeRemoveItem:y},{text:M=>t.createVNode("div",{style:"margin: 10px 0px 10px 14px;"},[M.data.name.data,t.createTextVNode(" ["),M.data.bindingField.data,t.createTextVNode("]")])})])]})}}),AE={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/data-grid-column.schema.json",title:"data-grid-column",description:"A Farris data-grid-column Component",type:"object",properties:{id:{description:"The unique identifier for a data-grid-column",type:"string",default:""},type:{description:"The type string of data-grid-column component",type:"string",default:"data-grid-column"},binding:{description:"",type:"object",default:{}},allowGrouping:{description:"",type:"boolean",default:!0},colspan:{description:"",type:"number"},dataType:{type:"string"},editor:{description:"",type:"object",default:{}},field:{description:"",type:"string"},filterable:{description:"",type:"boolean",default:!1},fixed:{description:"",type:"string",enum:["left","right"]},align:{description:"",type:"enum",default:"left",enum:["left","center","right"]},halign:{description:"",type:"enum",default:"left",enum:["left","center","right"]},title:{description:"",type:"string"},readonly:{description:"",type:"boolean",default:!0},resizable:{description:"",type:"boolean",default:!0},rowspan:{description:"",type:"number"},showTips:{description:"",type:"boolean",default:!0},sort:{description:"",type:"string",default:"none",enum:["asc","desc","none"]},sortable:{description:"",type:"boolean",default:!1},sortOrder:{description:"",type:"number"},tipMode:{description:"",type:"string",enum:["allways","auto"]},valign:{description:"",type:"enum",default:"middle",enum:["top","middle","bottom"]},visible:{description:"",type:"boolean",default:!0},width:{description:"",type:"number",default:120},formatter:{description:"列格式化",type:"object",default:{type:"none",customFormat:"",trueText:"是",falseText:"否",dateFormat:"yyyy-MM-dd"}},columnTemplate:{description:"列模板",type:"string",default:""},summaryType:{description:"合计类型",type:"enum",default:"none"},formatterEnumData:{description:"",type:"array"},multiLanguage:{description:"是否启用多语",type:"boolean"},draggable:{description:"是否允许拖拽",type:"boolean",default:!1},enableGroup:{description:"",type:"boolean",default:!1},onClickLinkCommand:{description:"超链接事件",type:"string",default:""},columnTemplateType:{description:"列模板类型",type:"string"}},required:["id","type"],events:{onClickLinkCommand:"超链接事件"}},RE={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/data-grid-column.schema.json",title:"tree-grid-column",description:"A Farris data-grid-column Component",type:"object",properties:{id:{description:"The unique identifier for a data-grid-column",type:"string"},type:{description:"The type string of data-grid-column component",type:"string",default:"tree-grid-column"},binding:{description:"",type:"object",default:{}},allowGrouping:{description:"",type:"boolean",default:!0},colspan:{description:"",type:"number"},dataType:{type:"string"},editor:{description:"",type:"object"},field:{description:"",type:"string"},filterable:{description:"",type:"boolean",default:!1},fixed:{description:"",type:"string",enum:["left","right"]},align:{description:"",type:"enum",default:"left",enum:["left","center","right"]},halign:{description:"",type:"enum",default:"left",enum:["left","center","right"]},title:{description:"",type:"string"},readonly:{description:"",type:"boolean",default:!0},resizable:{description:"",type:"boolean",default:!0},rowspan:{description:"",type:"number"},showTips:{description:"",type:"boolean",default:!0},sort:{description:"",type:"string",enum:["asc","desc","none"]},sortable:{description:"",type:"boolean",default:!1},sortOrder:{description:"",type:"number"},tipMode:{description:"",type:"string",enum:["allways","auto"]},valign:{description:"",type:"enum",default:"middle",enum:["top","middle","bottom"]},visible:{description:"",type:"boolean",default:!0},width:{description:"",type:"number",default:120},formatter:{description:"列格式化",type:"object",default:{type:"none",customFormat:"",trueText:"是",falseText:"否",dateFormat:"yyyy-MM-dd"}},formatterType:{description:"启用列格式化",type:"string",default:""},columnTemplate:{description:"列模板",type:"string",default:""},summaryType:{description:"合计类型",type:"enum",default:"none"},formatterEnumData:{description:"",type:"array"},draggable:{description:"是否允许拖拽",type:"boolean",default:!1},onClickLinkCommand:{description:"超链接事件",type:"string",default:""},columnTemplateType:{description:"列模板类型",type:"string",default:"default"}},required:["id","type"]},_f={id:{type:String,default:""},type:{type:String,default:""},allowGrouping:{type:Boolean,default:!0},colspan:{type:Number,default:1},dataType:{type:String,default:""},parentId:{type:String,default:""},editor:{type:Object},field:{type:String,default:""},filterable:{type:Boolean,default:!0},fixed:{type:String,default:""},halign:{type:String,default:"left"},title:{type:String,default:""},readonly:{type:Boolean,default:!0},resizable:{type:Boolean,default:!0},rowspan:{type:Boolean,default:!0},showTips:{type:Boolean,default:!0},sort:{type:String,default:"none"},sortable:{type:Boolean,default:!0},sortOrder:{type:Number},tipMode:{type:String,default:"auto"},valign:{type:String,default:"middle"},visible:{type:Boolean,default:!0},width:{type:Number},actualWidth:{type:Number},align:{type:String,default:"left"},left:{type:Number},sorter:{type:Function,default:()=>{}},origianlColSpan:{type:Number},index:{type:Number},commands:{type:Array,default:[]},filter:{type:String,default:""},showSetting:{type:Boolean,default:!0},formatter:{type:Function,default:()=>{}},componentId:{type:String,default:""}},LE=je(_f,AE,nC,oC),jE=je(_f,RE,nC,oC);function _E(e,n,o){const a=e.schema,i=t.ref(!0),r=t.ref(!0);function l(m){return!1}function s(){return!1}function c(){return!1}function f(){return!0}function u(m){var h,y;const p=new tC(m,n),g=(h=e==null?void 0:e.parent)==null?void 0:h.schema;return g!=null&&g.groupFields&&g!=null&&g.groupFields.includes(a.field)&&(a.enableSummary=!0),p.getPropertyConfig(a,(y=e==null?void 0:e.parent)==null?void 0:y.schema)}function d(){var y,v;if(!n||!e)return;const{formSchemaUtils:m}=n;let p=he["data-grid"].name||"表格";const g=m.getControlBasicInfoMap(),h=g.get((v=(y=e.parent)==null?void 0:y.schema)==null?void 0:v.id);h&&h.parentPathName&&(p=h.parentPathName),g.set(a.id,{showName:a.title,parentPathName:`${p} > ${a.title}`,reliedComponentId:h.reliedComponentId})}return{canAccepts:l,checkCanDeleteComponent:s,checkCanMoveComponent:c,hideNestedPaddingInDesginerView:f,triggerBelongedComponentToMoveWhenMoved:i,triggerBelongedComponentToDeleteWhenDeleted:r,getPropsConfig:u,setComponentBasicInfoMap:d}}function iC(e,n,o){function a(){const l=o.componentId;if(!l)return!1;const s=e.formSchemaUtils.getViewModelIdByComponentId(l);if(!s)return!1;const{schema:c}=n,{designViewModelUtils:f}=e,u=f.getDgViewModel(s),d=u==null?void 0:u.fields.find(m=>m.id===c.binding.field);return!(!d||d.$type!==wn.SimpleField)}function i(){const{schema:l}=n;return!!e.formSchemaUtils.getVariableById(l.binding.field)}function r(){var c;const{schema:l}=n;let s=!0;if(!e||!((c=l.binding)!=null&&c.field))return s;switch(l.binding.type){case Zt.Form:{s=a();break}case Zt.Variable:s=i()}return s}return{checkBindingFieldValidation:r}}const rC=t.defineComponent({name:"FDataGridColumnDesign",props:_f,emits:[],setup(e,n){const o=t.ref(),a=t.inject("designer-host-service"),i=t.inject("design-item-context");t.inject("data-grid-context");const r=_E(i,a),l=it(o,i,r);t.onMounted(()=>{o.value.componentInstance=l}),n.expose(l.value);function s(d){var m;(m=i==null?void 0:i.setupContext)==null||m.emit("selectionChange",l.value.schema,i.schema,e.componentId,l.value)}const{checkBindingFieldValidation:c}=iC(a,i,e),u=!t.inject("external-container-id");return()=>{var g;const d=u?c():!0,m="绑定信息已失效,请手动移除列",p=d?"":"color:red";return t.createVNode(t.Fragment,null,[d?"":t.createVNode("span",{class:"f-icon f-icon-warning mr-1",style:"color: red; min-width: 16px;",title:m},null),t.createVNode("span",{class:"fv-column-title",style:p,ref:o,onClick:h=>s()},[((g=e.editor)==null?void 0:g.required)===!0&&t.createVNode("span",{class:"text-danger"},[t.createTextVNode("*")]),e.title])])}}}),lC={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/data-grid.schema.json",title:"data-grid",description:"A Farris Data Grid Component",type:"object",properties:{id:{description:"The unique identifier for a Input Group",type:"string"},type:{description:"The type string of Input Group component",type:"string",default:"data-grid"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},fit:{type:"boolean",default:!1},showStripe:{type:"boolean",default:!0},showBorder:{type:"boolean",default:!1},showSetting:{type:"boolean",default:!1},size:{description:"",type:"object",properties:{width:{type:"number"},height:{type:"number"}},default:null},dataSource:{description:"",type:"string",default:""},columns:{description:"",type:"array",default:[]},identifyField:{description:"",type:"string"},editable:{description:"",type:"boolean",default:!1},disabled:{description:"",type:"boolean",default:!1},visible:{description:"",type:"boolean",default:!0},fieldEditable:{description:"是否可编辑",type:"boolean",default:!1},cell:{type:"object",properties:{highlightFocusingCell:{description:"",type:"boolean",default:!1},mergeCell:{description:"",type:"boolean",default:!1},showEditableIcon:{description:"",type:"boolean",default:!1}}},column:{type:"object",properties:{fitColumns:{description:"",type:"boolean",default:!1},fitMode:{description:"",type:"string",default:"average"},groups:{description:"",type:"array",default:[]},reorderColumn:{description:"Enable to drag column to reorder",type:"boolean",default:!1},resizeColumn:{type:"boolean",default:!0},resizeColumnOnDoubleClick:{description:"",type:"boolean",default:!0}}},command:{type:"object",properties:{enableType:{type:"string",default:"unable"},enable:{description:"",type:"boolean",default:!1},commands:{type:"array",default:[]},formatter:{description:"自定义操作列模板",type:"string",default:""},commandColumnWidth:{description:"",type:"number",default:120},onClickDeleteCommand:{description:"",type:"string",default:""},onClickEditCommand:{description:"",type:"string",default:""},onHandleAction:{description:"",type:"string",default:""},count:{description:"",type:"number",default:2}}},contextMenu:{description:"",type:"object",properties:{enable:{description:"",type:"boolean",default:!1}}},customizaiton:{type:"object",properties:{enableScheme:{description:"",type:"boolean",default:!1},enableSetting:{description:"",type:"boolean",default:!1}}},edit:{type:"object",properties:{mode:{description:"",type:"string",default:"cell",enum:["cell","row","card"]},selectOnEditing:{description:"",type:"boolean",default:!1},onAppendRow:{description:"",type:"string",default:""},onBeforeEdit:{description:"",type:"string",default:""}}},filter:{type:"object",properties:{enable:{description:"",type:"boolean",default:!1},filterStyle:{description:"",type:"string",default:"filter-column",enum:["filter-column","filter-row"]},mode:{description:"",type:"string",default:"server",enum:["client","server"]},showSummary:{description:"",type:"boolean",default:!1},onFilterChange:{description:"",type:"string",default:""}}},footer:{type:"object",properties:{enable:{description:"",type:"boolean",default:!1},customFooterStyle:{description:"",type:"object"},footerDataCommand:{description:"",type:"string",default:""},footerDataFrom:{description:"",type:"string",default:"client"},footerHeight:{description:"",type:"number",default:29},footerPosition:{description:"",type:"string",default:"bottom"},footerTemplate:{description:"",type:"string",default:""}}},group:{description:"",type:"object",properties:{enable:{description:"",type:"boolean",default:!1},customGroupRow:{description:"",type:"object"},customGroupRowStyle:{description:"",type:"object"},customSummaryStyle:{description:"",type:"object"},groupColSpan:{description:"",type:"number",default:1},groupFields:{description:"",type:"array",default:[]},showGroupedColumn:{description:"",type:"boolean",default:!0},showGroupPanel:{description:"",type:"boolean",default:!1},showSummary:{description:"",type:"boolean",default:!1},summaryPosition:{description:"",type:"string",default:"separate",enum:["separate","merge-to-group"]},disableGroupOnEditing:{description:"",type:"boolean",default:!0},expandGroupRows:{description:"",type:"boolean",default:!0},customRender:{description:"自定义分组行模板",type:"string",default:""}}},header:{type:"object",properties:{wrapHeadings:{description:"",type:"boolean",default:!1}}},pagination:{type:"object",properties:{enable:{description:"",type:"boolean",default:!1},disablePagination:{description:"",type:"string",default:""},contentTemplate:{description:"",type:"string",default:""},index:{description:"",type:"number",default:1},mode:{description:"",type:"enum",default:"server",enum:["server","client"]},showGoto:{description:"",type:"boolean",default:!1},showIndex:{description:"",type:"boolean",default:!0},showLimits:{description:"",type:"boolean",default:!1},showPageInfo:{description:"",type:"boolean",default:!0},size:{description:"",type:"number",default:20},sizeLimits:{description:"",type:"array",default:[10,20,30,50,100]},onPageChange:{description:"",type:"string",default:""},onPageSizeChange:{description:"",type:"string",default:""}}},rowOption:{type:"object",properties:{customRowStyle:{description:"",type:"string",default:""},customCellStyle:{description:"",type:"string",default:""},disable:{description:"",type:"object"},height:{description:"",type:"number",default:30},showHovering:{type:"boolean",default:!0},wrapContent:{type:"boolean",default:!1}}},rowNumber:{description:"",type:"object",properties:{enable:{description:"",type:"boolean",default:!0},heading:{description:"",type:"string",default:"序号"},width:{description:"",type:"number",default:36},showEllipsis:{description:"",type:"boolean",default:!0}}},onClickRow:{description:"行点击事件",type:"string",default:""},onSelectionChange:{description:"行切换事件",type:"string",default:""},onPageIndexChanged:{description:"切换页码事件",type:"string",default:""},onPageSizeChanged:{description:"分页条数变化事件",type:"string",default:""},selection:{type:"object",properties:{enableSelectRow:{description:"允许选中行",type:"boolean",default:!0},enable:{description:"",type:"boolean",default:!0},checkOnSelect:{description:"",type:"boolean",default:!1},clearSelectionOnEmpty:{description:"",type:"boolean",default:!0},customSelectionItem:{description:"",type:"object"},focusSelection:{description:"",type:"string",default:"current",enum:["current","all"]},keepSelectingOnClick:{description:"",type:"boolean",default:!0},keepSelectingOnPaging:{description:"",type:"boolean",default:!0},multiSelect:{description:"",type:"boolean",default:!1},selectionMode:{description:"",type:"string",default:"default"},selectOnCheck:{description:"",type:"boolean",default:!1},selectOnEditing:{description:"",type:"boolean",default:!1},showCheckbox:{description:"",type:"boolean",default:!1},showSelectAll:{description:"",type:"boolean",default:!1},showSelection:{description:"",type:"boolean",default:!1},multiSelectMode:{description:"多选模式",type:"string",default:"DependOnCheck"},onBeforeSelect:{description:"",type:"string",default:""},onBeforeUnCheck:{description:"",type:"",default:""},onBeforeUnSelect:{description:"",type:"string",default:""},onCheckAll:{description:"",type:"string",default:""},onChecked:{description:"",type:"string",default:""},onSelectionChange:{description:"",type:"string",default:""},onUnCheckAll:{description:"",type:"string",default:""},onUnChecked:{description:"",type:"string",default:""},onCheckedChange:{description:"",type:"string"}}},sort:{type:"object",properties:{enable:{description:"",type:"boolean",default:!1},fields:{description:"",type:"array",default:[]},mode:{description:"",type:"enum",default:"client"},multiSort:{description:"",type:"boolean",default:!0}}},summary:{description:"",type:"object",properties:{enable:{description:"",type:"boolean",default:!1},customSummaryStyle:{description:"",type:"object"},groupFields:{description:"",type:"array",default:[]},mode:{description:"",type:"string",default:"client",enum:["client","server"]},position:{description:"",type:"boolean",default:"bottom",enum:["bottom","top","both"]},customRender:{description:"合计行模板",type:"string",default:""}}},toolbar:{description:"",type:"object",properties:{enable:{description:"",type:"boolean",default:!1}}},visualization:{autoHeight:{description:"",type:"boolean",default:!1},emptyDataHeight:{description:"",type:"number",default:36},emptyTemplate:{description:"",type:"string",default:""},maxHeight:{description:"",type:"number",default:300},scrollBarShowMode:{description:"",type:"string",default:"auto"},showBorder:{description:"",type:"boolean",default:!1},showScrollArrow:{description:"",type:"boolean",default:!1},striped:{description:"",type:"boolean",default:!0},useBlankWhenDataIsEmpty:{description:"",type:"boolean",default:!1}},emptyTemplate:{description:"",type:"string",default:""},beforeUpdate:{description:"",type:"string",default:""},beforeEditCell:{description:"",type:"string",default:""},displayType:{description:"表格按照什么模式展示,默认List模式",type:"string",default:"List"},showCardHeader:{description:"",type:"boolean",default:!0},showCardFooter:{description:"",type:"boolean",default:!0},cardHeaderTemplate:{description:"头部内容模板",type:"string",default:""},cardFooterTemplate:{description:"底部内容模板",type:"string",default:""},cardTitleTemplate:{description:"头部标题模板",type:"string",default:""},cardToolbar:{description:"自定义工具栏",type:"array",default:[]},cardMainTitle:{description:"主标题",type:"string",default:""},formId:{description:"表单id",type:"string",default:""},enableColumnSettingSolution:{description:"是否启用列配置方案",type:"boolean",default:!1}},required:["id","type","columns"],events:{onClickRow:"行点击事件",onSelectionChange:"行切换事件",onDoubleClickRow:"行双击事件",onPageIndexChanged:"切换页码事件",onPageSizeChanged:"分页条数变化事件",onClickEditCommand:"操作列编辑事件",onClickDeleteCommand:"操作列删除事件",onFilterChanged:"过滤事件",onSortChanged:"排序事件",onSelectItem:"选中行事件",onUnSelectItem:"取消选中行事件",onSelectAll:"全选事件",onUnSelectAll:"取消全选事件",onEndEditCell:"单元格结束编辑事件"}};function HE(){function e(n,o){const a={};return a.beforeEditCell=i=>o.call("beforeEditCell",n,[i,n]),a.beforeUpdate=i=>o.call("beforeUpdate",n,[i,n]),a.fieldsCallback=(...i)=>o.call("fieldsCallback",n,[i]),a.fieldsResolver=(...i)=>o.call("fieldsResolver",n,i),a}return{resolve:e}}const WE=Yt(Ns,lC,Hs,Ws),qE=je(Ns,lC,Hs,Ws),zE=md(),UE=Gm(),GE=hd(),YE=HE();La.install=e=>{e.component(La.name,La)},La.register=(e,n,o,a,i)=>{e["data-grid"]=Rr,n["data-grid"]=WE(i),e["grid-field-editor"]=BE,n["grid-field-editor"]=OE(i),a["data-grid"]={bindingResolver:zE,selectionItemResolver:UE,updateColumnsResolver:GE,callbackResolver:YE,eventHandlerResolver:kP}},La.registerDesigner=(e,n,o)=>{e["data-grid"]=La,n["data-grid"]=qE,n["data-grid-column"]=LE,e["data-grid-column"]=rC,n["tree-grid-column"]=jE,e["tree-grid-column"]=rC};const Hf=bt(La);function QE(e,n,o){return n}const XE=new Map([["appearance",rt]]),KE={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/dropdown.schema.json",title:"dropdown",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for dropdown",type:"string"},type:{description:"The type string of dropdown",type:"string",default:"dropdown"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disable:{type:"string",default:!1},editable:{description:"",type:"boolean",default:!0},placeholder:{description:"",type:"string",default:""},readonly:{description:"",type:"boolean",default:!1},require:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},visible:{description:"",type:"boolean",default:!0}},required:["id","type"]},JE={title:"dropdown",description:"A Farris Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"select",editor:{type:"waiting for modification",enum:[]}}}},behavior:{description:"Basic Infomation",title:"行为",properties:{readonly:{description:"",title:"只读",type:"string"},required:{description:"",title:"必填",type:"boolean"},visible:{description:"",title:"可见",type:"boolean"},placeholder:{description:"",title:"提示文本",type:"string"},tabindex:{description:"",title:"tab索引",type:"number"}}}}},Wf={show:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},title:{type:String,default:"下拉示例"},size:{type:String,default:""},type:{type:String,default:"primary"},iconClass:{type:String,default:""},active:{type:Boolean,default:!1},splitButton:{type:Boolean,default:!1},position:{type:String,default:"bottom"},model:{type:Array,default:[{label:"项目一",value:"XM1"},{label:"项目二",value:"XM2"},{label:"项目三",value:"XM3"}]},onSelect:{type:Function,default:()=>{}}},sC=je(Wf,KE,XE,QE,JE);function cC(e,n){let o;const a=t.ref(e.show),i=t.ref(),r=t.ref(),l=t.ref(),s=10;t.onMounted(()=>{o=r.value});const c=(b=1)=>{const w=["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"],C=Array.from(document.body.querySelectorAll(w.join(","))).filter(x=>x).map(x=>{const{display:N,zIndex:S}=window.getComputedStyle(x);return N==="none"?0:parseInt(S,10)}).filter(x=>x);let V=Math.max(...C);return V<1040&&(V=1040),V+b},f=(b,w)=>{const{height:C,left:V,top:x,width:N}=b.getBoundingClientRect(),{width:S,height:k,top:T}=w.getBoundingClientRect();if(b.className.indexOf("dropdown-submenu")>-1||b.closest(".dropdown-submenu")||b.classList.contains("dropright")){const F=window.innerWidth-V-b.offsetWidth,I=window.innerHeight-x,{position:E}=getComputedStyle(w);if(E==="fixed"){let D=V+b.offsetWidth;w.offsetWidth>F&&V>F&&(D=V-S),w.style.left=D+"px",w.style.right="auto",window.innerHeight-2*s<w.offsetHeight?(w.style.top=s+"px",w.style.bottom=s+"px",w.style.maxHeight=window.innerHeight-2*s+"px",w.style.overflowY="auto",w.className+=" dropdown-menu-maxheight"):I<w.offsetHeight?(w.style.top="auto",w.style.bottom=s+"px"):(w.style.top=x+"px",w.style.bottom="auto")}else{if(w.offsetWidth>F){const D=-S;w.style.left=D+"px"}window.innerHeight-2*s<w.offsetHeight?(w.style.top=-1*(x-s)+"px",w.style.bottom="auto",w.style.maxHeight=window.innerHeight-2*s+"px",w.style.overflowY="auto",w.className+=" dropdown-menu-maxheight"):I<w.offsetHeight&&(w.style.top=I-w.offsetHeight-s+"px",w.style.bottom="auto")}}else{const{marginTop:F,marginBottom:I}=getComputedStyle(w);let E=0;const D=Math.ceil(parseFloat(F))+Math.ceil(parseFloat(I));let M=x+C,$=V;window.innerHeight-M-D<k&&(M=x-k,M<0&&(window.innerHeight-x-C>x?(M=x+C,E=window.innerHeight-M-D-s):(M=s,E=x-M-D))),window.innerWidth-V<S&&window.innerWidth-V<V+N&&($=V-S+N),document.body.append(w),w.style.cssText=`position:fixed;bottom:unset;left:${$}px
547
547
  !important;top:${M}px !important;right: unset;${E?"max-height:"+E+"px;overflow-y:auto;":""}`,E&&(w.className+=" dropdown-menu-maxheight"),w.style.zIndex=c().toString()}},u=()=>{f(i.value,r.value)},d=()=>{e.hover||(a.value=!1,r.value.style=null,document.removeEventListener("click",d),o.removeEventListener("click",d),document.removeEventListener("scroll",d),o.removeEventListener("scroll",d))},m=(b=null,w=!1)=>{e.hover||e.disabled||(b==null||b.stopPropagation(),w?(setTimeout(()=>{u()}),a.value=!0):(a.value||setTimeout(()=>{u()}),a.value=!a.value),document.addEventListener("click",d),document.addEventListener("scroll",d),e.hideOnClick||(o.addEventListener("click",C=>{C.stopPropagation()}),o.addEventListener("scroll",C=>{C.stopPropagation()})))};return{show:a,dropdownRef:i,dropdownMenuRef:r,clickEventRef:l,showDropMenu:b=>{m(b,!1)},showDropMenuByForce:m,hoverDropdown:b=>{e.hover&&(a.value||setTimeout(()=>{}),a.value=!a.value)},leftButtonClick:()=>{},closeDropMenu:d,selectItem:b=>{n.emit("select",b)},resolveSize:b=>{const w=/px|em|rem|pt|%/;return w.test(b)?`${parseInt(b,10)}${b.match(w)[0]}`:`${b}px`}}}const ZE={label:{type:String,default:"XM1"},value:{type:String||Number,default:"项目一"},disabled:{type:Boolean,default:!1},active:{type:Boolean,default:!1},divide:{type:Boolean,default:!1},onSelect:{type:Function,default:()=>{}}},dC=t.defineComponent({name:"FDropdownItem",props:ZE,emits:["select"],setup(e,n){const o=t.ref(e.value),a=t.ref(e.label),i=t.ref(e.disabled),r=t.ref(e.active),l=t.ref(e.divide),s=()=>{i.value||n.emit("select",e)};return()=>t.createVNode("div",null,[t.withDirectives(t.createVNode("div",{class:"dropdown-divider"},null),[[t.vShow,l.value]]),t.createVNode("li",{class:`dropdown-item${r.value?" active":""} ${i.value?" disabled":""}`,onClick:s,title:o.value.toString()},[a.value])])}}),qf=t.defineComponent({name:"FDropdown",props:Wf,emits:["select"],setup(e,n){const o=t.ref(e.model),a=t.ref(!1),{show:i,dropdownMenuRef:r,dropdownRef:l,clickEventRef:s,showDropMenu:c,hoverDropdown:f,leftButtonClick:u,showDropMenuByForce:d,closeDropMenu:m}=cC(e,n);function p(h){m(),n.emit("select",h)}function g(){return[{"dropdown-item":e.nest},{"btn-lg":e.size==="large"},{"btn-sm":e.size==="small"},{"btn-primary":e.type==="primary"},{"btn-success":e.type==="success"},{"btn-warning":e.type==="warning"},{"btn-danger":e.type==="danger"},{"btn-info":e.type==="info"},{"btn-secondary":e.type==="secondary"},{"btn-link":e.type==="link"},{disabled:e.disabled}]}return t.onMounted(()=>{a.value=!0,i.value&&d(null,!0)}),()=>t.createVNode("div",{ref:l},[t.createVNode("div",{class:["farris-dropdown","btn-group",{dropup:e.position==="top"},{dropdown:e.position==="bottom"},{dropleft:e.position==="left"},{dropright:e.position==="right"}]},[e.splitButton&&t.createVNode("span",{class:["btn",...g()],style:"width:100%",onClick:u},[e.title]),t.createVNode("span",{ref:s,class:["dropdown-toggle",{btn:!e.nest},{"dropdown-toggle-split":e.splitButton},...g()],style:"width:100%",onClick:c,onMouseenter:f,onMouseleave:f},[e.splitButton?"":e.title,e.iconClass&&t.createVNode("span",{class:`f-icon ${e.iconClass}`},null)]),a.value&&t.createVNode(t.Teleport,{to:"body"},{default:()=>[t.createVNode("div",{ref:r,class:`dropdown-menu${i.value?" show":""}`},[o.value.map(({label:h,value:y,disabled:v,active:b,divide:w})=>t.createVNode(dC,{value:y.toString(),label:h,disabled:v,active:b,divide:w,onSelect:C=>p(C)},null))])]})])])}}),eD=t.defineComponent({name:"FDropdownDesign",props:Wf,emits:["select"],setup(e,n){const o=t.ref(e.model),{show:a,showDropMenu:i,hoverDropdown:r,leftButtonClick:l}=cC(e,n);function s(d){n.emit("select",d)}const c=t.ref(),f=t.inject("design-item-context"),u=it(c,f);return t.onMounted(()=>{c.value.componentInstance=u}),n.expose(u.value),()=>t.createVNode("div",{ref:c},[t.createVNode("div",{class:["farris-dropdown","btn-group",{dropup:e.position==="top"},{dropdown:e.position==="bottom"},{dropleft:e.position==="left"},{dropright:e.position==="right"}],style:{width:e.width}},[e.splitButton&&t.createVNode("span",{class:["btn",{"dropdown-item":e.nest},{"btn-lg":e.size==="large"},{"btn-sm":e.size==="small"},{"btn-primary":e.type==="primary"},{"btn-success":e.type==="success"},{"btn-warning":e.type==="warning"},{"btn-danger":e.type==="danger"},{"btn-info":e.type==="info"}],style:"width:100%",onClick:l},[e.title]),t.createVNode("span",{class:["dropdown-toggle",{btn:!e.nest},{"dropdown-item":e.nest},{"dropdown-toggle-split":e.splitButton},{"btn-lg":e.size==="large"},{"btn-sm":e.size==="small"},{"btn-primary":e.type==="primary"},{"btn-success":e.type==="success"},{"btn-warning":e.type==="warning"},{"btn-danger":e.type==="danger"},{"btn-info":e.type==="info"},{"btn-secondary":e.type==="secondary"},{"btn-link":e.type==="link"},{disabled:e.disabled}],style:"width:100%",onClick:i,onMouseenter:r,onMouseleave:r},[t.withDirectives(t.createVNode("span",{class:"sr-only"},null),[[t.vShow,e.splitButton]]),e.splitButton?"":e.title,t.withDirectives(t.createVNode("span",{class:`f-icon ${e.iconClass.toString()}`},null),[[t.vShow,e.iconClass]])]),t.createVNode("div",{class:`dropdown-menu${a.value?" show":""}`},[t.createVNode(t.Fragment,null,[o.value.map(({label:d,value:m,disabled:p,active:g,divide:h})=>t.createVNode(dC,{value:m.toString(),label:d,disabled:p,active:g,divide:h,onSelect:y=>s(y)},null))])])])])}}),qs={install(e){e.component(qf.name,qf)},register(e,n,o,a){e.dropdown=qf,n.dropdown=sC},registerDesigner(e,n,o){e.dropdown=eD,n.dropdown=sC}},tD={id:{type:String,default:""},dragula:{type:Object},toolboxItems:{type:Array,default:[]}},nD=t.defineComponent({name:"FDesignerToolbox",props:tD,emits:[],setup(e){const n=t.ref(e.toolboxItems),o=t.ref(e.dragula);function a(m,p){p.isHide=!p.isHide}function i(m){return{"f-icon":!0,"f-icon-arrow-60-down":!m.isHide,"f-icon-arrow-e":m.isHide}}function r(m){return t.createVNode("div",{class:"card-header",onClick:p=>a(p,m)},[t.createVNode("div",{class:"panel-item-title"},[t.createVNode("div",{class:"f-section-formgroup-legend"},[t.createVNode("div",{class:"f-header px-2 col-form-label"},[t.createVNode("div",{class:"f-toolbar mr-2"},[t.createVNode("span",{class:i(m)},null)]),t.createVNode("div",{class:"f-title f-utils-fill d-flex justify-content-between"},[t.createVNode("span",null,[m.name])])])])])])}function l(m){return{"d-none":m.dependentParent||m.hideInControlBox,controlPanel:!0,"drag-copy":!0,"no-drag":m.disable,updating:m.updating}}function s(m){const p={farrisControlIcon:!0,"fd-i-Family":!0},g=`fd_pc-${m.icon||m.type}`;return p[g]=!0,p}function c(m,p){return t.createVNode("div",{class:l(m),"data-sourceType":"control","data-controlType":m.type,"data-controlTypeName":m.name,"data-category":m.category,"data-feature":m.feature?JSON.stringify(m.feature):"","data-fieldType":m.fieldType,"data-templateId":m.id,"data-templateCategory":m.templateCategory,hidden:p.isHide},[t.createVNode("div",null,[t.createVNode("div",{class:s(m)},null),t.createVNode("div",{class:"controlName"},[m.name])])])}function f(m){return t.createVNode("div",{class:"card-body px-2 py-0 border-0 controlCategory no-drop"},[m.items.map(p=>c(p,m))])}function u(m){return!m.hideInControlBox&&t.createVNode("div",{class:"farris-panel-item card border-0"},[r(m),f(m)])}function d(m){if(!m)return;const p=document.getElementsByClassName("controlCategory");p&&(m.containers=m.containers.filter(g=>!g.className.includes("controlCategory")),Array.from(p).forEach(g=>{m.containers.push(g)}))}return t.watch(()=>e.dragula,m=>{var p,g;o.value=m,(p=o.value)!=null&&p.getDragulaInstance&&d((g=o.value)==null?void 0:g.getDragulaInstance())}),()=>t.createVNode("div",{class:"controlBox f-utils-fill-flex-column"},[t.createVNode("div",{class:"farris-panel f-utils-fill-flex-column",style:"overflow:auto;"},[n.value.map(m=>u(m))])])}}),oD={modelValue:{type:Object,default:{}}};function aD(){const a={aroundDirection:"none",left:2,right:2,top:2,bottom:2,x:0,y:0};function i(){const M=document.createElementNS("http://www.w3.org/2000/svg","path");return M.setAttribute("fill","none"),M.setAttribute("stroke","#4d53e8"),M.setAttribute("stroke-width","2"),M.setAttribute("class",""),M}function r(){const M=document.createElementNS("http://www.w3.org/2000/svg","path");return M.setAttribute("fill","none"),M.setAttribute("stroke","#4d53e8"),M.setAttribute("stroke-width","2"),M.setAttribute("stroke-linecap","round"),M}function l(){const M=document.createElementNS("http://www.w3.org/2000/svg","path");return M.setAttribute("fill","none"),M.setAttribute("stroke","#4d53e8"),M.setAttribute("stroke-width","2"),M.setAttribute("stroke-linecap","round"),M}function s(M,$,B,O){const R=A=>{A.key==="Delete"&&(M.indexOf("^"),document.removeEventListener("keydown",R),$.remove())};B.addEventListener("mouseenter",()=>{B.setAttribute("stroke","#37d0ff"),O.setAttribute("stroke","#37d0ff"),B.setAttribute("stroke-width","3"),document.addEventListener("keydown",R)}),B.addEventListener("mouseleave",()=>{B.setAttribute("stroke","#4d53e8"),B.setAttribute("stroke-width","2"),O.setAttribute("stroke","#4d53e8"),document.removeEventListener("keydown",R)})}function c(M){let $=document.getElementById(M);if($==null){const B=document.createElementNS("http://www.w3.org/2000/svg","svg"),O=i();B.appendChild(O);const R=r();B.appendChild(R);const A=l();B.appendChild(A);const L=l();B.appendChild(L),$=document.createElement("div"),$.id=M,$.style.position="absolute",$.appendChild(B),s(M,$,O,R);const _=document.getElementById("svg-container");return _&&_.appendChild($),$}return $}function f(M,$,B,O,R){const A={x:0,y:0};return M==="west"&&($==="north_west"&&(B==="north"&&(A.x=0,A.y=0-R/2),B==="west"&&(A.x=0-O/2,A.y=0)),$==="north_east"&&(B==="north"&&(A.x=-100,A.y=0-R/2),B==="east"&&(A.x=-100,A.y=0-R/2)),$==="south_east"&&(B==="south"&&(A.x=-100,A.y=0+R/2),B==="east"&&(A.x=-100,A.y=0+R/2)),$==="south_west"&&(B==="south"&&(A.x=0,A.y=0+R/2),B==="west"&&(A.x=0-O/2,A.y=0))),M==="east"&&($==="north_west"&&(B==="north"&&(A.x=-100,A.y=0-R/2),B==="west"&&(A.x=100,A.y=0-R/2)),$==="north_east"&&(B==="north"&&(A.x=0,A.y=0-R/2),B==="east"&&(A.x=0+O/2,A.y=0)),$==="south_east"&&(B==="south"&&(A.x=0,A.y=0+R/2),B==="east"&&(A.x=0+O/2,A.y=0)),$==="south_west"&&(B==="south"&&(A.x=100,A.y=0+R/2),B==="west"&&(A.x=100,A.y=0+R/2))),M==="north"&&($==="north_west"&&(B==="north"&&(A.x=0,A.y=0-R/2),B==="west"&&(A.x=0-O/2,A.y=0)),$==="north_east"&&(B==="north"&&(A.x=0,A.y=0-R/2),B==="east"&&(A.x=0+O/2,A.y=0)),$==="south_east"&&(B==="south"&&(A.x=0+O/2,A.y=-100),B==="east"&&(A.x=0+O/2,A.y=-100)),$==="south_west"&&(B==="south"&&(A.x=0-O/2,A.y=-100),B==="west"&&(A.x=0-O/2,A.y=-100))),M==="south"&&($==="north_west"&&(B==="north"&&(A.x=0-O/2,A.y=100),B==="west"&&(A.x=0-O/2,A.y=100)),$==="north_east"&&(B==="north"&&(A.x=0+O/2,A.y=100),B==="east"&&(A.x=0+O/2,A.y=100)),$==="south_east"&&(B==="south"&&(A.x=0,A.y=0+R/2),B==="east"&&(A.x=0+O/2,A.y=0)),$==="south_west"&&(B==="south"&&(A.x=0,A.y=R/2),B==="west"&&(A.x=0-O/2,A.y=0))),A}function u(M,$,B,O){const R={x:0,y:0};return M==="south"&&($==="west"&&(R.x=-100,R.y=0-O/2),$==="east"&&(R.x=100,R.y=-100),$==="south"&&(R.x=0-B/2,R.y=100),($==="north"||$==="center")&&(R.x=0,R.y=0-O/2)),M==="north"&&($==="west"&&(R.x=-100,R.y=100),$==="east"&&(R.x=100,R.y=100),$==="north"&&(R.x=0-B/2,R.y=-100),($==="south"||$==="center")&&(R.x=0,R.y=O/2)),M==="east"&&($==="north"&&(R.y=-100,R.x=-100),$==="south"&&(R.y=100,R.x=-100),$==="east"&&(R.x=100,R.y=100),($==="west"||$==="center")&&(R.x=0-B/2,R.y=0)),M==="west"&&($==="north"&&(R.y=-100,R.x=100),$==="south"&&(R.y=100,R.x=100),$==="west"&&(R.x=-100,R.y=O/2),($==="east"||$==="center")&&(R.x=B/2,R.y=0)),R}function d(M,$,B,O,R,A,L){const _=L==="south"||L==="east"?"portrait":"landscape",W=R,U=_==="landscape"?"east":"north",Y=L==="center"?_==="landscape"?"west":"south":L,Q=f(W,A,U,M,$),{x:z,y:j}=Q,H=u(U,Y,M,$),{x:q,y:G}=H;G<0&&($+=Math.abs(G));const J=new Map([["default",0+z],["portrait",0+z],["landscape",0+z]]),K=new Map([["default",$+j],["portrait",$+j],["landscape",$+j]]);z<0&&(M+=Math.abs(z)),q>0&&(M+=q);const ne=new Map([["default",M+q],["portrait",M+q],["landscape",M+q]]),oe=new Map([["default",0+G],["portrait",0+G],["landscape",0+G]]),ie=O.left>a.left,me=O.bottom>a.bottom,de=ie?0:me?M/2:J.get(_),Me=me?$+O.bottom:ie?$/2:K.get(_),Te=ne.get(_),le=oe.get(_);return[{x:de,y:Me},{x:Te,y:le},{x:q,y:G}]}function m(M,$,B,O,R,A,L){const _=L==="south"||L==="west"?"portrait":"landscape",W=R,U=_==="landscape"?"west":"north",Y=L,Q=f(W,A,U,M,$),{x:z,y:j}=Q,H=u(U,Y,M,$),{x:q,y:G}=H;G<0&&($+=Math.abs(G)),z>0&&(M+=z),q<0&&(M+=Math.abs(q));const J=new Map([["default",M+z],["portrait",M+z],["landscape",M+z]]),K=new Map([["default",$+j],["portrait",$+j],["landscape",$+j]]),ne=new Map([["default",0+q],["portrait",0+q],["landscape",0+q]]),oe=new Map([["default",0+G],["portrait",0+G],["landscape",0+G]]),ie=O.right>a.right,me=O.bottom>a.bottom,de=ie?M+O.right:me?M/2:J.get(_),Me=me?$+O.bottom:ie?$/2:K.get(_),Te=ne.get(_),le=oe.get(_);return[{x:de,y:Me},{x:Te,y:le},{x:q,y:G}]}function p(M,$,B,O,R,A,L){const _=L==="north"||L==="east"?"portrait":"landscape",W=R,U=_==="landscape"?"east":"south",Y=L,Q=f(W,A,U,M,$),{x:z,y:j}=Q,H=u(U,Y,M,$),{x:q,y:G}=H,J=new Map([["default",0+z],["portrait",0+z],["landscape",0+z]]),K=new Map([["default",0+j],["portrait",0+j],["landscape",0+j]]);z<0&&(M+=Math.abs(z)),j<0&&($+=Math.abs(j)),q>0&&(M+=q),G>0&&($+=G);const ne=new Map([["default",M+q],["portrait",M+q],["landscape",M+q]]),oe=new Map([["default",$+G],["portrait",$+G],["landscape",$+G]]),ie=O.left>a.left,me=O.top>a.top,de=ie?0:me?M/2:J.get(_),Me=me?0:ie?$/2:K.get(_),Te=ne.get(_),le=oe.get(_);return[{x:de,y:Me},{x:Te,y:le},{x:q,y:G}]}function g(M,$,B,O,R,A,L){const _=L==="north"||L==="west"?"portrait":"landscape",W=R,U=_==="landscape"?"west":"south",Y=L,Q=f(W,A,U,M,$),{x:z,y:j}=Q,H=u(U,Y,M,$),{x:q,y:G}=H;q<0&&(M+=Math.abs(q));const J=new Map([["default",M+z],["portrait",M+z],["landscape",M+z]]),K=new Map([["default",0+j],["portrait",0+j],["landscape",0+j]]);j<0&&($+=Math.abs(j)),G>0&&($+=G);const ne=new Map([["default",0+q],["portrait",0+q],["landscape",0+q]]),oe=new Map([["default",$+G],["portrait",$+G],["landscape",$+G]]),ie=O.right>a.right,me=O.top>a.top,de=ie?M+O.right:me?M/2:J.get(_),Me=me?0:ie?$/2:K.get(_),Te=ne.get(_),le=oe.get(_);return[{x:de,y:Me},{x:Te,y:le},{x:q,y:G}]}const h=new Map([["north_east",d],["north_west",m],["south_east",p],["south_west",g]]),y=new Map([["east",["north_west","south_west"]],["west",["north_east","south_east"]],["north",["south_west","south_east"]],["south",["north_west","north_east"]],["center",[]]]);function v(M,$){return M==="north_west"?{aroundDirection:"north_west",left:$.left,right:100,top:$.top,bottom:$.top}:M==="south_west"?{aroundDirection:"south_west",left:$.left,right:100,top:$.top,bottom:$.bottom}:$}function b(M,$){return M==="north_east"?{left:100,right:$.right,top:$.top,bottom:$.top}:M==="south_east"?{left:100,right:$.right,top:$.top,bottom:$.bottom}:$}function w(M,$){return M==="south_west"?{left:$.left,right:$.right,top:100,bottom:$.top}:M==="south_east"?{left:$.left,right:$.right,top:100,bottom:$.bottom}:$}function C(M,$){return M==="north_west"?{left:$.left,right:$.right,top:$.top,bottom:100}:M==="north_east"?{left:$.left,right:$.right,top:$.top,bottom:100}:$}function V(M,$){return $}const x=new Map([["east",v],["west",b],["north",w],["south",C],["center",V]]);function N(M,$,B,O){const R=$.x-M.x,A=$.y-M.y,L=R>=0?"east":"west",_=A>=0?"south":"north",W=`${_}_${L}`,Y=(y.get(B)||[]).includes(W),Q=x.get(B),z=Y?Q(W,a):a,j=Math.abs(R),H=Math.abs(A),q=h.get(`${_}_${L}`),[G,J,K]=q(j,H,Y,z,B,W,O),ne=L==="west"?K.x<0?Math.abs(K.x):0:K.x>0?K.x:0,oe=z.left+z.right+j+ne,ie=_==="north"?K.y<0?Math.abs(K.y):0:K.y>0?K.y:0,me=z.top+z.bottom+H+ie,de=L==="east"?M.x-z.left:M.x+z.right-oe,Me=_==="south"?M.y-z.top:M.y+z.bottom-me,Te=L==="east"?z.left:oe-z.right,le=_==="north"?me-z.bottom:z.top,ce=L==="west"?K.x<0?Math.abs(K.x):0:K.x<0?oe:oe-K.x,Se=_==="north"?K.y<0?Math.abs(K.y):0:K.y<0?me:me-K.y;return{width:oe,height:me,left:de,top:Me,startPoinInBoundray:{x:Te,y:le},firstControlPoint:G,secondControlPoint:J,endPoinInBoundray:{x:ce,y:Se}}}function S(M,$,B,O,R){M.style.position="absolute",M.style.alignItems="center",M.style.left=`${$}px`,M.style.top=`${B}px`,M.style.width=O+"px",M.style.height=R+"px"}function k(M,$,B,O,R,A,L){const _=M.childNodes[0];_.setAttribute("width",String($)),_.setAttribute("height",String(B)),M.appendChild(_);const W=_.childNodes[0],U=`${O.x} ${O.y}`,Y=`${R.x} ${R.y}`,Q=`${A.x} ${A.y}`,z=`${L.x} ${L.y}`,j="M ".concat(U).concat(" C ").concat(Y).concat(","+Q+",").concat(z);W.setAttribute("d",j),W.setAttribute("fill","none"),W.setAttribute("stroke","#4d53e8"),W.setAttribute("stroke-width","2"),W.setAttribute("class","")}function T(M,$,B,O,R){const{width:A,height:L,left:_,top:W,startPoinInBoundray:U,firstControlPoint:Y,secondControlPoint:Q,endPoinInBoundray:z}=N($,B,O,R);S(M,_,W,A,L),k(M,A,L,U,Y,Q,z)}function P(M,$,B,O,R){const A=c(M);T(A,$,B,O,R)}function F(M){return Number(M.replace("px",""))}function I(M){if(M!==null){const $=M.parentNode,B=F($.style.left),O=F($.style.top);return{x:B+M.offsetLeft+M.offsetWidth/2,y:O+M.offsetTop+M.offsetHeight/2}}return{x:0,y:0}}function E(M,$){const B=document.getElementById(M),O=document.getElementById($),R=I(B),A=I(O),L=R.x+2,_=R.y,W=A.x-2,U=A.y;return{startPoint:{x:L,y:_},endPoint:{x:W,y:U}}}function D(M,$,B,O){const{startPoint:R,endPoint:A}=E(M,$);P(`${M}_${$}`,R,A,B,O)}return{connect:D,drawing:P}}function iD(e){const n=t.ref(),o=t.ref(0),a=t.ref(0),i=t.ref({x:0,y:0}),r=t.ref(),{drawing:l}=e;function s(v){return Number(v.replace("px",""))}function c(v){return(v&&v.className&&v.className.split?v.className.split(" "):[]).includes("f-flow-ancher")}function f(v){switch((v?v.className.split(" "):[]).find(C=>C.startsWith("circle-"))||""){case"circle-left":return"west";case"circle-right":return"east";case"circle-top":return"north";case"circle-bottom":return"south";default:return"center"}}function u(v,b,w){const C=w.getBoundingClientRect();o.value=C.left,a.value=C.top,i.value={x:v,y:b},n.value=f(w)}function d(v){var S;const b=v.clientX-o.value,w=v.clientY-a.value,C=i.value.x+b,V=i.value.y+w,x=v.target,N=x&&typeof x.className=="string"&&c(x)?f(x):"center";l(`${(S=r.value)==null?void 0:S.id}_curve_to`,{x:i.value.x,y:i.value.y},{x:C,y:V},n.value,N)}function m(v){const b=document.getElementById(v);b&&b.remove()}function p(){document.addEventListener("mousemove",d)}function g(){document.removeEventListener("mousemove",d)}function h(v){r.value=void 0,g()}function y(v,b){r.value=document.getElementById(v);const w=r.value.offsetParent,C=r.value.getBoundingClientRect(),V=w.getBoundingClientRect(),x=s(w.style.left)+(C.left-V.left),N=s(w.style.top)+(C.top-V.top),S=x+C.width/2,k=N+C.height/2;u(S,k,r.value),p()}return{drawFrom:y,eraseDrawingLine:m,finishToDraw:h,getAncherPointPosition:f,isAncherPoint:c}}const rD={id:{type:String,default:""},type:{type:String,default:""},modelValue:{type:Object},x:{type:Number,default:0},y:{type:Number,default:0},connection:{type:Array,default:[]}},lD=t.defineComponent({name:"FFlowNodeItem",props:rD,emits:[],setup(e,n){const o=t.ref(e.id),a=t.ref(e.modelValue),i=t.ref(),r=t.inject("use-drawing-bezier-composition"),{drawFrom:l,eraseDrawingLine:s,finishToDraw:c,getAncherPointPosition:f,isAncherPoint:u}=r,d=t.inject("use-bezier-curve-composition"),{connect:m}=d,p=t.inject("use-connections-composition"),{addConnection:g,getConnectionsOfNode:h}=p;new Map(e.connection);const y=t.computed(()=>({left:`${e.x}px`,top:`${e.y}px`}));function v(V,x){if(u(V)&&u(x)){const N=f(V),S=f(x);m(V.id,x.id,N,S);const k=V.id,T=x.id,P=k.split(/(-left-point|-right-point|-top-point|-bottom-point)/,1)[0],F=T.split(/(-left-point|-right-point|-top-point|-bottom-point)/,1)[0];g(P,k,F,T)}}function b(V){var x;document.removeEventListener("mouseup",b),c(V),s(`${(x=i.value)==null?void 0:x.id}_curve_to`),v(i.value,V.target)}function w(V,x){i.value=document.getElementById(V),l(V,x),document.addEventListener("mouseup",b),x.stopPropagation()}t.watch([()=>e.x,()=>e.y],()=>{const V=h(o.value);V.length&&V.forEach(x=>{const N=document.getElementById(x.from),S=document.getElementById(x.to);N&&S&&v(N,S)})});const C=t.computed(()=>({"node-content":!0}));return()=>t.createVNode("div",{id:o.value,class:"br-node",style:y.value},[t.createVNode("div",{id:`${o.value}-left-point`,class:"f-flow-ancher circle-left",onMousedown:V=>w(`${o.value}-left-point`,V)},null),t.createVNode("div",{id:`${o.value}-top-point`,class:"f-flow-ancher circle-top",onMousedown:V=>w(`${o.value}-top-point`,V)},null),t.createVNode("div",{id:`${o.value}-content`,class:C.value,style:"min-width:200px;min-height:200px;"},[a.value&&t.createVNode(cS,{modelValue:a.value,"onUpdate:modelValue":V=>a.value=V},null)]),t.createVNode("div",{id:`${o.value}-right-point`,class:"f-flow-ancher circle-right",onMousedown:V=>w(`${o.value}-right-point`,V)},null),t.createVNode("div",{id:`${o.value}-bottom-point`,class:"f-flow-ancher circle-bottom",onMousedown:V=>w(`${o.value}-bottom-point`,V)},null)])}});function sD(e){const n=new Map,o=new Map;function a(l,s){const c=o.get(l)||[];c.filter(u=>s.from===u.from&&s.to===u.to).length>0||(c.push(s),o.set(l,c))}function i(l,s,c,f){const u=new Set(n.get(s)||[]);u.add(f),n.set(s,[...u]);const d={from:s,to:f,type:"Curve"};a(l,d),a(c,d)}function r(l){return o.get(l)||[]}return{addConnection:i,getConnectionsOfNode:r}}const cD=t.defineComponent({name:"FFlowCanvas",props:oD,emits:[],setup(e,n){const o=t.ref(),a=aD(),i=iD(a),r=sD();t.provide("use-bezier-curve-composition",a),t.provide("use-connections-composition",r),t.provide("use-drawing-bezier-composition",i);const l=t.computed(()=>({transition:"transform 0.2s","background-color":"#F2F3F5",height:"100%",width:"100%",position:"relative"}));t.onMounted(()=>{o.value=e.modelValue});const s=t.ref(),c=t.ref(),f=t.ref(),u=t.ref(),d=t.ref();function m(h){const y=h.clientX-u.value,v=h.clientY-d.value;s.value&&s.value.position&&(s.value.position.x=c.value+y,s.value.position.y=f.value+v)}function p(){document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",p),s.value=void 0,u.value=void 0,d.value=void 0}function g(h,y){s.value=h,c.value=h.position.x,f.value=h.position.y,u.value=y.clientX,d.value=y.clientY,document.addEventListener("mousemove",m),document.addEventListener("mouseup",p)}return()=>t.createVNode("div",{class:"f-flow-canvas editorDiv flex-fill h-100"},[t.createVNode("div",{id:"svg-container",class:"f-struct-wrapper flex-fill",style:l.value},[o.value&&o.value.contents.map(h=>t.createVNode(lD,{modelValue:h.content[0],"onUpdate:modelValue":y=>h.content[0]=y,id:h.id,x:h.position.x,y:h.position.y,onMousedown:y=>g(h,y)},null))])])}});function uC(e){return typeof e=="string"&&e.startsWith("{")&&e.endsWith("}")?(e=e.replace(/'/g,'"'),{mappingFields:JSON.parse(e)}):{mappingFields:e}}const fC=new Map([["appearance",rt],["mappingFields",(e,n,o)=>{if(n)return uC(n);const{mappingFields:a}=o;return uC(a)}],["uri",(e,n,o)=>{var a;return n?{uri:n}:{uri:(a=o==null?void 0:o.dataSource)==null?void 0:a.uri}}],["idField",(e,n,o)=>{var a;return n?{idField:n}:{idField:(a=o==null?void 0:o.dataSource)==null?void 0:a.idField}}]]),pC={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/lookup.schema.json",title:"lookup",description:"A Farris Input Component",type:"object",properties:{id:{description:"The unique identifier for a combo list",type:"string"},type:{description:"The type string of number combo list component",type:"string",default:"lookup"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},editable:{description:"",type:"boolean",default:!1},enableLinkLabel:{description:"",type:"boolean",default:!1},label:{description:"",type:"string",default:"帮助"},lableWidth:{description:"",type:"number"},placeholder:{description:"",type:"string",default:"请选择"},readonly:{description:"",type:"boolean",default:!1},required:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},textAlign:{description:"",type:"string",enum:["left","middle","right"],default:"left"},visible:{description:"",type:"boolean",default:!0},textField:{description:"帮助显示文本字段",type:"string",default:""},mappingFields:{description:"帮助字段映射",type:"object",default:{}},uri:{type:"string",default:""},dataSource:{type:"object",default:null},displayType:{type:"string",default:"list"},"onUpdate:dataMapping":{type:"object",default:null},onClear:{type:"object",default:null},context:{type:"object",default:null},enableToSelect:{type:"boolean",default:!0},idValue:{type:"string",default:""},multiSelect:{type:"boolean",default:!1},separator:{type:"string",default:","},fitColumns:{type:"boolean",default:!0},enableFavorite:{type:"boolean",default:!1},enableUserData:{type:"boolean",default:!1},showSelections:{type:"boolean",default:!0},treeToList:{type:"boolean",default:!1},navTreeToList:{type:"boolean",default:!1},showNavigation:{type:"boolean",default:!0},dictPicking:{type:"object",default:null},dictPicked:{type:"object",default:null},enableSearchBar:{type:"boolean",default:!0},searchAnyField:{type:"boolean",default:!0},dialog:{type:"object",default:null},idField:{type:"string",default:"id"},pagination:{type:"object",default:null},allowFreeInput:{type:"boolean",default:!1},loadTreeDataType:{type:"string",default:"default"},onlySelectLeaf:{type:"boolean",default:!1},enableFullTree:{type:"boolean",default:!0},beforeLoadData:{type:"object",default:null},beforeSelectData:{type:"object",default:null},enableCascade:{type:"boolean",default:!1},showCascadeControl:{type:"boolean",default:!0},cascadeItems:{type:"object",default:{both:!0,up:!0,down:!0,disable:!0}},cascadeValue:{type:"string",default:"both"},expandLevel:{type:"number",default:0},enableClear:{type:"boolean",default:!0},openType:{type:"string",default:"Modal"},enableTitle:{type:"boolean",default:!1},showIncludeChildNodes:{type:"boolean",default:!0},includeChildNodesValue:{type:"boolean",default:!0},enableEqualSearch:{type:"boolean",default:!1},onClearMapping:{type:"string",default:""},userDataKey:{type:"string",default:""}},required:["type"],ignore:["appearance","binding","visible"],events:{dictPicking:"帮助前事件",dictPicked:"帮助后事件",beforeSelectData:"数据选择确认前事件",beforeLoadData:"数据加载前事件",clear:"清空事件"}};function mC(e,n,o){return n}function dD(){function e(n,o,a){const i={};return i.dictPicking=r=>o.call("dictPicking",n,[r,n],a),i.beforeLoadData=r=>o.call("beforeLoadData",n,[r,n],a),i.beforeSelectData=r=>o.call("beforeSelectData",n,[r,n],a),i.dictPicked=r=>o.call("dictPicked",n,[r,n],a),i}return{resolve:e}}const zr={id:{type:String,require:!0},uri:{type:String,default:""},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},editable:{type:Boolean,default:!1},enableFavorite:{type:Boolean,default:!1},mappingFields:{type:Object,default:null},fitColumns:{type:Boolean,default:!0},columns:{type:Array,default:[]},idField:{type:String,default:"id"},textField:{type:String,defalut:"name"},data:{type:Array,default:[]},displayType:{type:String,default:An.List},dialog:{type:Object,default:{title:""}},multiSelect:{type:Boolean,default:!1},showSelections:{type:Boolean,default:!0},separator:{type:String,default:","},pagination:{type:Object,default:Yv},enableClear:{type:Boolean,default:!0},inputType:{type:String,default:"text"},idValue:{type:String,default:""},dictPicking:{type:Function,default:null},dictPicked:{type:Function,default:null},beforeSelectData:{type:Function,default:null},beforeLoadData:{type:Function,default:null},enableSearchBar:{type:Boolean,default:!0},searchFields:{type:Array,default:[]},searchAnyField:{type:Boolean,default:!0},navigation:{type:Object,default:null},textChangeType:{type:String,default:"any"},showNavigation:{type:Boolean,default:!0},showIncludeChildNodes:{type:Boolean,default:!0},includeChildNodesValue:{type:Boolean,default:!0},enableMultiFieldSearch:{type:Boolean,default:!1},treeToList:{type:Boolean,default:!1},navTreeToList:{type:Boolean,default:!1},loadTreeDataType:{type:String,default:ha.default},enableToSelect:{type:Boolean,default:!0},customData:{type:Object,default:null},modelValue:{type:String,default:""},enableUserData:{type:Boolean,default:!1},userDataKey:{type:String,default:""},onReady:{type:Function,default:null},context:{type:Object,default:{}},placeholder:{type:String,default:"请选择"},loader:{type:Function,default:null},allowFreeInput:{type:Boolean,default:!1},onlySelectLeaf:{type:Boolean,default:!1},enableFullTree:{type:Boolean,default:!0},enableCascade:{type:Boolean,default:!1},showCascadeControl:{type:Boolean,default:!0},cascadeItems:{type:Object,default:{both:!0,up:!0,down:!0,disable:!0}},cascadeValue:{type:String,default:"both"},expandLevel:{type:Number,default:0},openType:{type:String,default:"Modal"},enableTitle:{type:Boolean,default:!1},enableEqualSearch:{type:Boolean,default:!1},togglePopupOnClickInput:{type:Boolean,default:!1}};je(zr,pC,fC,mC);const uD=dD(),gC=Yt(zr,pC,fC,mC);function fD(e,n){function o(a,i){const r=e.schema;return new _s(a,n).getPropertyConfig(r,i)}return{getPropsConfig:o}}const pD=t.defineComponent({name:"FLookupDesign",props:zr,emits:[],setup(e,n){const o=t.ref(),a=t.inject("design-item-context"),i=t.inject("designer-host-service"),r=fD(a,i),l=it(o,a,r),s='<i class="f-icon f-icon-lookup"></i>',c='<i class="f-icon f-icon-arrow-chevron-down"></i>',f=t.computed(()=>e.openType==="Popup"?"Popup":"Modal"),u=t.computed(()=>f.value==="Popup"?c:s);return t.onMounted(()=>{o.value.componentInstance=l}),n.expose(l.value),()=>t.createVNode("div",{class:"f-lookup-design",ref:o},[t.createVNode(Cr,{ref:o,buttonContent:u.value,readonly:!0,editable:!1,placeholder:e.placeholder},null)])}});function ja(e,n){const{lookupOptions:o}=n;function a(h){return{...Yv,...h}}function i(){return{enableSelectRow:!0,multiSelect:o.multiSelect,showCheckbox:o.multiSelect,multiSelectMode:"OnCheckAndClick"}}function r(){return{fitColumns:e.fitColumns,fitMode:"percentage",resizeColumn:!0}}function l(){const{displayType:h}=n.lookupOptions;return typeof h=="string"&&h in An?!1:h.toLowerCase().startsWith("nav")}function s(){const{displayType:h,treeToList:y}=n.lookupOptions;return(h.toLowerCase()===An.Tree.toLowerCase()||h.toLowerCase()===An.ListTree.toLowerCase())&&!y}function c(){const{displayType:h,navTreeToList:y}=n.lookupOptions;return h.toLowerCase()===An.TreeList.toLowerCase()&&!y}function f(){const{displayType:h,navTreeToList:y}=n.lookupOptions,v=h.toLowerCase();return v===An.ListList.toLowerCase()||v===An.ListTree.toLowerCase()||y}function u(){var v;return o.dialog?{width:((v=o.dialog)==null?void 0:v.navigatorWidth)||320,minWidth:200}:{width:320,minWidth:200}}function d(h){const{loadTreeDataType:y}=o;return y===ha.all||y==="default"&&(h==null?void 0:h.loadDataType)==="all"}function m(h){return(h==null?void 0:h.layerType)==="pathcode"}function p(){return o.enableCascade&&o.multiSelect}function g(){return e.openType==="Popup"}return{checkPaination:a,checkMultiSelect:i,checkColumnOptions:r,isDoubleList:l,getNavigationSize:u,isTreeList:s,navIsTreeList:c,navIsList:f,isLoadAll:d,isPathCodeTree:m,isEnableCascadeCheck:p,isDropdownMode:g}}function hC(e,n,o){var r;const a=t.ref(e.searchFields||[]),i=t.ref(((r=e.navigation)==null?void 0:r.searchFields)||[]);return t.watch(()=>n==null?void 0:n.searchFields,l=>{a.value=l}),t.watch(()=>o==null?void 0:o.searchFields,l=>{i.value=l}),{searchFieldItems:a,navSearchFieldItems:i}}function mD(e){const n=t.reactive({}),o=t.reactive({}),a=t.reactive({}),i=t.reactive({}),r=t.reactive({}),l=t.ref([]),s=t.ref(),c=t.reactive({}),f=t.reactive({canClose:!0}),u=t.ref(!1),d=["displayType","treeToList","navTreeToList","showSelections","showNavigation","multiSelect","mappingFields","loader","idField","textField","userDataKey","dialog","expandLevel","treeInfo","navTreeInfo","onlySelectLeaf","loadTreeDataType","uri","enableFullTree","cascadeValue","showCascadeControl","enableCascade","enableFavorite"];function m(){d.forEach(p=>{c[p]=e[p]})}return m(),{pageInfoState:n,lookupState:o,navigationState:a,queryState:i,searchState:r,selectionState:l,unSelectDataId:s,lookupOptions:c,searchValueChanged:u,popupState:f}}const Ur=t.ref(),qo="F_LOOKUP_HTTP_COMPOSITION_TOKEN";function gD(e,n){const o=t.inject("FLoadingService"),a=t.inject(Qv),i=mD(e),{pageInfoState:r,lookupState:l,navigationState:s,lookupOptions:c,searchValueChanged:f}=i,{searchFieldItems:u,navSearchFieldItems:d}=hC(e,l,s),m=t.ref(e.idValue),p=t.ref(!1),g=()=>{var R;const O=(R=c.displayType)==null?void 0:R.toUpperCase();return O===An.Tree||O===An.TreeList},h=(O,R=!1)=>{if(O){const{layerType:A,dataField:L,parentField:_,pathField:W,layerField:U,isDetailField:Y,loadDataType:Q}=O,z={layerType:A,dataField:L,parentField:_,pathField:W,layerField:U,isDetailField:Y,loadDataType:Q},{onlySelectLeaf:j,loadTreeDataType:H}=c;z.onlySelectLeaf=j,z.loadDataType=H,R?c.navTreeInfo=Object.assign(c.navTreeInfo||{},z):c.treeInfo=Object.assign(c.treeInfo||{},z)}};function y(O,R,A="like"){if(R==null||!R.trim())return[];const L=Array.from(new Set(R.trim().split(" ").filter(Q=>Q.trim())));if(!O||!L.length)return[];const W=A==="equal"?Rs.Equal:Rs.Like,U=(O||[]).map((Q,z)=>{const j=L.map((H,q)=>({filterField:Q.value,value:H,lbracket:"",rbracket:"",relation:Ls.And,compare:W}));return j.length&&(j.length>1&&(j[0].lbracket="(",j[j.length-1].rbracket=")"),j[j.length-1].relation=Ls.Or),j}).filter(Q=>Q.length);let Y=[];return U&&U.length&&(Y=fe.flatten(U),Y.length>1&&(Y[0].lbracket+="(",Y[Y.length-1].rbracket+=")"),Y[Y.length-1].relation=0),Y}function v(){let{expandLevel:O}=c;return O&&!fe.isNaN(O)&&(O=O<-1?-1:O),O}function b(O,R){const A={};A.category=R;let L=null,_=null;if(O!=null&&O.search){const{field:W,value:U,isNavigation:Y,type:Q}=O.search,z=Q||"like";if(U&&(A.searchValue=U.trim()),A.searchField=W?W.trim():"*",A.searchType=z,Y&&(A.category="navsearch"),!e.enableMultiFieldSearch){Y&&(A.searchType="like");const j=A.searchType==="equal"&&A.searchValue?[{filterField:A.searchField,value:A.searchValue,lbracket:"",rbracket:"",relation:Ls.And,compare:Rs.Equal}]:[],H=Y?d.value:u.value,q=A.searchField==="*"?y(H,U,z):j;q&&q.length&&(Y?L=q:_=q),U===""&&A.category==="search"&&!_&&!L&&(A.category="all")}}return g()&&(A.layerNum=v()),{searchParam:A,navSearchConditions:L,searchConditions:_}}function w(O){var A,L;if(O==="fav")return{pageIndex:1,pageSize:500};let R="default";return O==="navsearch"&&(R="navigation"),{pageIndex:((A=r[R])==null?void 0:A.index)||1,pageSize:((L=r[R])==null?void 0:L.size)||20}}function C(O){const R={},A=(O==null?void 0:O.action)||"all",{searchParam:L,navSearchConditions:_,searchConditions:W}=b(O,A);W&&(R.searchConditions=W),_&&(R.navSearchConditions=_),R.enableFullTree=e.enableFullTree,R.searchValue=JSON.stringify(L);const{pageIndex:U,pageSize:Y}=w(A);return R.pageIndex=U,R.pageSize=Y,R.treeToList=e.treeToList,R.navTreeToList=e.navTreeToList,c.loadTreeDataType===ha.default?R.loadTreeDataType="default":R.loadTreeDataType=c.loadTreeDataType===ha.all?"loadall":"layerload",O!=null&&O.relationFilter&&(R.relationFilter=[...O.relationFilter]),O!=null&&O.navNodePathCode&&(R.navPathCode=O.navNodePathCode),O.selectedInfo&&(R.selectedInfo=O.selectedInfo),R.customData=t.toRaw(Ur.value),R.id=e.id,R}function V(O){return O==null?void 0:O.map(R=>(R.resizable=!0,R))}function x(O,R){return O.map(A=>{const L=R==null?void 0:R.find(_=>_.field.toLowerCase()===A.value.toLowerCase());return L&&(A.label=L.title),A})}function N(O){O.columns&&(O.columns=V(O.columns),O.searchFields&&(O.searchFields=x(O.searchFields,O.columns))),O.navigation&&O.navigation.columns&&(O.navigation.columns=V(O.navigation.columns),O.navigation.searchFields&&(O.navigation.searchFields=x(O.navigation.searchFields,O.navigation.columns)))}function S(){return c.loader||a&&a.getData.bind(a)}function k(O){const R=S();return R?R(c.uri,O).then(A=>(N(A),f.value=!1,A)):new Promise((A,L)=>{A({...e})})}function T(O){const R=v();return R===-1?!0:R===0?!1:O<=R}function P(O,R=!1,A="layer"){O.forEach(L=>{var _;L.collapse=R?!1:c.loadTreeDataType==="all"?!T(vt(L.data,A)):!(L.expanded??!0),L.hasChildren=!L.leaf,(_=L.children)!=null&&_.length&&P(L.children,R,A)})}async function F(O,R){var _;const A=C(O),L=o==null?void 0:o.show();try{let W=await k(A);if(c.displayType!==W.displayType&&O.action!=="navsearch"&&(c.displayType=W.displayType),g()){const{items:U,treeInfo:Y}=W.navigation||W;if(c.loadDataType===ha.default&&(c.loadTreeDataType=(Y==null?void 0:Y.loadDataType)||ha.all),U!=null&&U.length&&Y){const{dataField:Q,layerField:z}=Y;P(U,!1,`${Q}.${z}`)}}e.beforeLoadData&&(W=await e.beforeLoadData({data:W})),R(W)}finally{(_=L==null?void 0:L.value)==null||_.close()}}function I(O){p.value=O}function E(O,R){if(!R)return"";const{dataField:A,pathField:L}=R;return L?A?O[A][L]:vt(O,L):""}function D(O){const R=[];return(O.selectable||O.selectable===void 0)&&R.push(O),O.children&&O.children.length&&O.children.forEach(A=>{R.push(...D(A))}),R}function M(O,R=!1){var W;if(!(O!=null&&O.length))return O;const A=R?(W=c.navigation)==null?void 0:W.treeInfo:c.treeInfo,{dataField:L,layerField:_}=A||{};return L&&_&&P(O,!0,`${L}.${_}`),O}function $(){try{const O=m.value;return O!==""&&O!=null?O:""}catch(O){return console.error("Error in getIdValues:",O),""}}function B(){let O=$()||[];return Array.isArray(O)||(O=(""+O).split(e.separator)),{selectedIds:O,selected:!0}}return{includeChilds:p,updateIncludeChilds:I,idValues:m,getData:k,loadData:F,updateSearchFieldTitle:x,getPathCode:E,getChildNodes:D,lookupStates:i,httpService:a,lookupRequest:S,expandAllNodes:M,getIdQueryParams:B,setTreeInfo:h,getFieldValue:vt}}function yC(e,n){t.watch(()=>e.pagination,(a,i)=>{JSON.stringify(a)!==JSON.stringify(i)&&(n.default=a)}),t.watch(()=>{var a;return(a=e.navigation)==null?void 0:a.pagination},(a,i)=>{JSON.stringify(a)!==JSON.stringify(i)&&(n.navigation=a)});function o(a,i=!1){a&&(i?n.navigation={...n.navigation,...a}:n.default={...n.default,...a})}return{updatePageInfo:o}}const zs="F_LOOKUP_USER_DATA_SERVICE";function hD(e,n){const o=t.inject("FLoadingService",null),{lookupStates:a,lookupRequest:i,httpService:r}=n,{lookupOptions:l}=a,s=t.computed(()=>{const g=l.userDataKey||e.id;return g?jg(g):""}),c=t.reactive({key:s.value,data:{}});function f(){return r?r.getSettings(c.key).then(g=>(g&&g.textValue?c.data=JSON.parse(g.textValue):c.data={},e.enableUserData||(c.data.tabIndex=dn.dataList),g)):Promise.resolve()}function u({width:g,height:h}){var y;c.data.size=((y=c.data)==null?void 0:y.size)||{},c.data.size={width:g,height:h}}function d(g=!1){if((e.enableUserData||g)&&r){const{key:h,data:y}=c,v={configkey1:h,configkey2:"",configkey3:"",textvalue:JSON.stringify(y)};return r==null?void 0:r.updateSettings(h,v)}return Promise.resolve()}function m(g){const h={category:"fav",favoriteIds:g.favoriteIds};return{searchValue:JSON.stringify(h),pageIndex:1,pageSize:500,treeToList:l.treeToList}}function p(){var v;const g=m({favoriteIds:(v=c.data)==null?void 0:v.favorites}),h=o==null?void 0:o.show(),y=i();return y?y(l.uri,g).then(b=>{var w;return(w=h.value)==null||w.close(),c.favoriteItems=b&&b.items||[],b}):Promise.resolve()}return{userDataState:c,setDialogSize:u,saveUserData:d,getFavoriteData:p,getUserData:f}}const Mi=Symbol("FARRIS_LOOKUP_LOCALES");function yD(e){const{getLocaleValue:n}=ke;function o(f,u,d){return f===u?n(d):f}const a=o(e.placeholder,"请选择","lookup.placeholder"),i={datalist:n("lookup.datalist")||"数据列表",favorite:n("lookup.favorites")||"收藏夹"},r={ok:n("lookup.okText")||"确定",cancel:n("lookup.cancelText")||"取消",clear:n("lookup.selectedInfo.clear")||"取消已选",addFav:n("lookup.favoriteInfo.addFavTitle")||"收藏",removeFav:n("lookup.favoriteInfo.cancelFavTitle")||"取消收藏",selectionTotal:f=>n("lookup.selectedInfo.total",[f])},l={clearSelections:n("lookup.selectedInfo.confirm")||"您确认要取消所有选中记录吗?",addedFavSuccess:n("lookup.favoriteInfo.addFav")||"已添加到收藏夹。",cancelFavSuccess:n("lookup.favoriteInfo.cancelFav")||"已从收藏夹中移除。",mustChoosAdatarow:n("lookup.mustChoosAdatarow")||"请选择一条数据。",mustWriteSomething:n("lookup.mustWriteSomething")||"请输入关键字后查询。"},s={includechildren:n("lookup.includechildren")||"包含下级",both:n("lookup.cascade.enable")||"同步选择",up:n("lookup.cascade.up")||"包含上级",down:n("lookup.cascade.down")||"包含下级",disable:n("lookup.cascade.disable")||"仅选择自身"};return{searchColumns:{allColumns:n("lookup.allColumns")||"所有列",anyFields:n("lookup.anyFields")||"全部",exactLabel:n("lookup.exact")||"精确"},placeholder:a,tree:s,messages:l,tabs:i,buttons:r}}function zf(e,n){const o=t.inject(Pn),a=t.inject(zs),i=t.inject(Mi),{userDataState:r}=a;r.data=r.data||{};const l="_favorite_",s=t.ref(!1);function c({id:v,data:b},w="add"){var V,x;if(v==null&&v==="")return;const C=v;r.data.favorites=((V=r.data)==null?void 0:V.favorites)||[],r.favoriteItems=r.favoriteItems||[],w==="add"?(s.value=!1,r.data.favorites=Array.from(new Set([...((x=r.data)==null?void 0:x.favorites)||[],C])),r.favoriteItems=[...r.favoriteItems,b]):(s.value=!0,r.data.favorites=r.data.favorites.filter(N=>N!==C),r.favoriteItems=r.favoriteItems.filter(N=>N[n]!==C)),a==null||a.saveUserData(!0).then(N=>{const S=w==="add"?i.messages.addedFavSuccess:i.messages.cancelFavSuccess;o==null||o.success({message:S,position:"top-center"})})}function f(v){return v?v.raw[n]:""}const u=t.computed(()=>v=>{var w,C;const b=f(v);return(C=(w=r.data)==null?void 0:w.favorites)==null?void 0:C.includes(b)});function d(v,b,w){v.stopPropagation();const C=f(b);c({id:C,data:b.raw},u.value(b)?"remove":"add")}const m=v=>u.value(v)?i.buttons.removeFav:i.buttons.addFav,p=(v,b)=>t.createVNode("button",{type:"button",onClick:w=>{d(w,b)},class:["btn btn-link f-icon f-icon-star-outline p-0",{"f-icon-star":u.value(b)}],style:"color: #ffbd8c;",title:m(b)},null),g=(v,b)=>b.disabled?"":p(v,b),h={field:l,title:"",width:50,fixed:"right",align:"center",formatter:p};function y(v,b,w=!1){const C=fe.cloneDeep(b);e.enableFavorite&&(h.formatter=w?g:p,C.push(h)),v==null||v.updateColumns(C)}return{favorite:h,removeFavoriteItem:s,setColumns:y}}function Uf(e,n,o,a){const{selectionState:i,unSelectDataId:r,lookupOptions:l}=o,s=t.computed(()=>!(i.value&&i.value.length));a&&t.watch(()=>a.value,(c,f)=>{var u;if(c===dn.dataList&&c!==f&&!s.value){const d=i.value.map(m=>m[l.idField]);(u=n.value)==null||u.selectItemByIds(d)}}),t.watch(s,(c,f)=>{var u;c&&((u=n.value)==null||u.clearSelection())}),e.showSelections&&l.multiSelect&&t.watch(r,c=>{var f;c&&((f=n.value)==null||f.unSelectItemByIds(c))})}const Pi=Symbol("LOOKUP_SELECTIONS_MANAGER");function bC(e,n){const{selectionState:o,unSelectDataId:a,lookupOptions:i}=n,r=t.computed(()=>i.idField);function l(v){return v[r.value]}function s(){let v=new Map;return o.value&&o.value.length&&(v=new Map(o.value.map(b=>[b[r.value],b]))),v}function c(){o.value=[]}function f(){return o.value||[]}function u(){return o.value.map(v=>v[r.value])}function d(v){if(!v)return;if(!r.value){console.error("idField is required");return}const b=Array.isArray(v)?v:[v],w=s();b.forEach(C=>{w.delete(C)}),o.value=Array.from(w.values()),a.value=b}function m(v){return s().has(v)}function p(v,b=!0){if(!v)return;if(!r.value){console.error("idField is required");return}const w=Array.isArray(v)?v:[v];if(!w.length)return;if(!w.every(x=>r.value in x)){console.error("Some items do not have the specified idField:",r.value);return}const C=w.map(x=>x[r.value]);if(!i.multiSelect){if(C.length&&m(C[0]))return;c()}const V=s();if(b){const x=new Map(w.map(N=>[N[r.value],N]));C.forEach(N=>{V.has(N)||V.set(N,x.get(N))})}else C.forEach(x=>{V.delete(x)});o.value=Array.from(V.values())}function g(v){if(!v||!v.length)return;const b=v.map(w=>w.data);p(b)}function h(v){if(v){const b=v.raw[r.value];d(b)}}function y(v){!v||!v.length||d(v)}return{updateSelections:p,clearSelections:c,getSelectionIds:u,getSelections:f,unSelectionsByIds:d,selectTreeNodes:g,unSelectTreeNode:h,unSelectTreeNodes:y,isSelected:m,getPrimaryKey:l}}function vC(e,n){const{getSelectionIds:o}=bC(e,n),{lookupOptions:a}=n;function i(s,c){s==null||s.updateDataSource(c||[])}function r(s){const c=o();if(c&&c.length){if(a.multiSelect){s==null||s.selectItemByIds(c);return}s==null||s.activeRowById(c[0])}}function l(s,c){i(s,c),r(s)}return{loadData:i,selectItemByIds:r,loadAndSelect:l}}function CC(e,n,o){const a=t.inject(qr,t.ref(dn.dataList)),i=t.inject(qo),r=t.inject(Pi),{lookupStates:l,loadData:s,includeChilds:c,getPathCode:f,getChildNodes:u}=i,{lookupState:d,navigationState:m,pageInfoState:p,searchState:g,lookupOptions:h,queryState:y}=l,{checkPaination:v,checkMultiSelect:b,checkColumnOptions:w,navIsTreeList:C,isPathCodeTree:V}=ja(e,l),{updatePageInfo:x}=yC(e,p),{updateSelections:N,isSelected:S,getPrimaryKey:k}=r,{loadAndSelect:T}=vC(e,l),P=v(e.pagination),F=b(),I=w(),E=t.ref(),D=t.ref([]),{navSelectedItems:M,getNavigationIdField:$,getRelationFilter:B}=o;x(P);const O=t.ref(p.default),{setColumns:R}=zf(e,h.idField),A=t.ref("lookup-datagrid");t.watch(()=>p.default,oe=>{var ie;O.value=oe,(ie=E.value)==null||ie.updatePagination(oe)}),Uf(e,E,i.lookupStates,a);function L(oe,ie,me){const de={total:ie};if(me){const{pageIndex:Me,pageSize:Te,enablePager:le,pageList:ce}=me;Object.assign(de,{index:Me,size:Te,enable:le})}else de.enable=!1;x(de),T(E.value,oe||[]),A.value="lookup-datagrid"+(oe&&oe.length?"":" lookup-datagrid-empty")}const _=t.computed(()=>{var Me;if(!((Me=M.value)!=null&&Me.length))return null;const oe=M.value,ie={relationFilter:B(oe)};if(!C()||!c.value)return ie;const{treeInfo:me}=m,de={action:"navAllChildren",...ie};return V(me)?Object.assign(de,{navNodePathCode:f(oe[0].data,me)}):de}),W=t.watch([()=>d==null?void 0:d.columns,()=>d==null?void 0:d.items,()=>d==null?void 0:d.pageInfo,()=>d==null?void 0:d.total,()=>d==null?void 0:d.selectedData],([oe,ie,me,de,Me])=>{E.value&&(oe&&R(E.value,oe),Me&&Me.length&&N(Me),ie&&L(ie,de||0,me))});t.watch(()=>e.idValue,oe=>{D.value=oe.split(e.separator)});function U(oe){if(oe&&oe.length&&!h.multiSelect){const ie=k(oe[0]);if(S(ie))return}N(oe),n.emit("selectionsChanged",{items:oe})}function Y(oe,ie){!h.multiSelect&&e.openType==="Modal"&&(N([ie]),n.emit("dblClickRow",{items:[ie]}))}function Q(oe){N(oe==null?void 0:oe.raw,!1)}function z(){const oe={search:g.default,action:"list"};!g.default&&y.value&&(oe.search={field:"*",value:y.value,type:"like"}),e.openType==="Modal"&&_.value&&Object.assign(oe,_.value),s(oe,ie=>{L(ie.items,ie.total||0,ie.pageInfo)})}const j=fe.throttle(()=>{x({index:1}),z()},200),H=t.watch(()=>M==null?void 0:M.value,oe=>{if(h.uri){j();return}const ie=oe.map(me=>me[$()]);n.emit("navSelectionsChanged",{items:oe,ids:ie})}),q=t.watch(()=>g.default,oe=>{if(h.uri){j();return}n.emit("search",oe)}),G=t.watch(()=>c.value,()=>{if(h.uri&&M.value&&M.value.length){j();return}});function J(){W(),H(),q(),G()}t.watch(()=>h.displayType,oe=>{oe.toLowerCase()==="treelist"&&J()});function K({pageSize:oe,pageIndex:ie}){var Me;let me=ie;((Me=O.value)==null?void 0:Me.size)!==oe&&(me=1);const de={size:oe,index:me,isNavigation:!1};if(x(de),h.uri){z();return}n.emit("pageSizeChanged",de)}function ne(){return t.createVNode(pa,{ref:E,customClass:A.value,pagination:O.value,summary:{enable:!1},columnOption:I,idField:h.idField,rowNumber:{enable:!1},showBorder:!0,virtualized:!0,fit:!0,selection:F,selectionValues:D.value,onSelectionUpdate:U,onUnSelectItem:Q,onChanged:K,onDoubleClickRow:Y},null)}return{datagridRef:E,selectionValues:D,renderDataGrid:ne,unwatches:J}}const Gr=Symbol("LOOKUP_TREEROW_OPTIONS"),wC={cascadeOption:{autoCheckChildren:!1,autoCheckParent:!1},collapseField:"collapse",hasChildrenField:"hasChildren"};function VC(e,n=!1){function o(a){(a.raw.addtional||a.raw.selectable===!1)&&(a.disabled=!0);const i=n?e.navTreeInfo:e.treeInfo;return i!=null&&i.onlySelectLeaf&&(a.disabled=!a.raw.leaf),a}return{customRowStatus:o}}function SC(e,n){const{lookupState:o,lookupOptions:a}=e;function i(y,v,b){return y.reduce((w,C)=>{var V;if(C.parents=[],v){const x=fe.get(v.data,a.idField);C.parent=v,C.parents=[...b||[],x]}return C.id=fe.get(C,a.idField),w.push(C),(V=C.children)!=null&&V.length&&w.push(...i(C.children,C,C.parents)),w},[])}function r(y){var v;return(v=o==null?void 0:o.flattenTreeNodes)==null?void 0:v.find(b=>b.id===y)}function l(y){var v;return((v=o==null?void 0:o.flattenTreeNodes)==null?void 0:v.filter(b=>{var w;return(w=b.parents)==null?void 0:w.includes(y)}))??[]}function s(y){var b;if(!y)return[];const v=r(y);return((b=v==null?void 0:v.parents)==null?void 0:b.map(w=>r(w)))??[]}function c(y){var C;if(!y)return[];const v=r(y),b=((C=v==null?void 0:v.parents)==null?void 0:C.map(V=>r(V)))??[],w=l(y);return[...b,...w]}function f(y,v=!0){const b=s(y).filter(C=>{var V;return!((V=C.children)!=null&&V.some(x=>{var N;return(N=e.selectionState.value)==null?void 0:N.some(S=>S[a.idField]===x.id)}))}),w=v?[]:l(y);return b.concat(w)}function u(y,v,b=!0){var C;const w={down:()=>l(y),up:()=>b?s(y):f(y),both:()=>b?c(y):f(y,!1)};return((C=w[v])==null?void 0:C.call(w))??[]}function d(y,v={},b=!1){const{field:w="*",value:C=""}=v,V=!!C,{layerType:x,dataField:N,pathField:S,layerField:k}=b?a.navTreeInfo:a.treeInfo,T=x==="parentId",P={category:b?"navchildren":"children",searchField:w,searchValue:C,searchType:"like"};if(T)P.parentId=y.raw.id;else{const I=y.raw[N];P.parentPath=fe.get(I,S),P.parentLayer=fe.get(I,k)}const F={searchValue:"",customData:Ur.value,enableFullTree:a.enableFullTree,loadTreeDataType:a.loadTreeDataType==="all"?"loadall":"layerload"};return V&&(F.enableFullTree=!1,F.loadTreeDataType="layerload",T&&(P.searchValue="",P.searchField="*")),F.searchValue=JSON.stringify(P),F}function m(y,v=!1){const{isEnableCascadeCheck:b}=n,{layerType:w}=v?a.navTreeInfo:a.treeInfo,C=a.loadTreeDataType!=="all"&&w==="pathcode"&&b()&&(a.cascadeValue==="both"||a.cascadeValue==="down");return y?y.data&&!y.leaf&&C:C}function p(y){const{dataField:v,pathField:b}=a.treeInfo,w=y.data[v],C=fe.get(w,b);return{searchValue:JSON.stringify({category:"allChildren"}),parentsIds:[C],customData:Ur.value}}function g(y,v){let b=y,w=null;for(const C of v){const V=b.find(x=>x.data[a.idField]===C);if(!V)return null;w=V,b=V.children||[]}return w}function h(y,v,b){var S;if(!b)return;const w=r(v),C=[...(w==null?void 0:w.parents)??[],v],V=(y??[]).map(k=>({...k,hasChildren:!k.leaf,parents:[...C]})),x=g(o.flattenTreeNodes||[],C);x&&(x.children=[...V],(S=o.flattenTreeNodes)==null||S.push(...V));const{isDropdownMode:N}=n;t.nextTick(()=>{var P;if(b.addChildrenToNode(V,v),N())return;const k=((P=e.selectionState.value)==null?void 0:P.map(F=>F[a.idField]))??[],T=V.filter(F=>k.includes(F.id)).map(F=>F.id);T.length&&b.selectItemByIds(T)})}return{flattenTreeNodes:i,getParents:s,getChildren:l,getParentsAndChildren:c,getTreeNodeWithCascadeValue:u,buildGetChildrenQueryParams:d,needGetAllChildNodes:m,buildGetAllChildrenQueryParams:p,loadChildNodes:h}}function NC(e,n){const o=t.inject(qr,t.ref(dn.dataList)),a=t.inject(qo),{lookupStates:i}=a,{lookupState:r,searchState:l,lookupOptions:s,queryState:c}=i,f=t.inject(Gr),u=t.inject(Pi),d=ja(e,i),{checkMultiSelect:m,checkColumnOptions:p,isEnableCascadeCheck:g}=d,{setColumns:h}=zf(e,s.idField),{selectTreeNodes:y,unSelectTreeNode:v,unSelectTreeNodes:b,updateSelections:w,getSelectionIds:C}=u,V=m(),x=p(),N=t.ref(),S=t.ref([]),{loadAndSelect:k}=vC(e,i),{loadData:T,expandAllNodes:P,getData:F}=a,{flattenTreeNodes:I,getTreeNodeWithCascadeValue:E,buildGetChildrenQueryParams:D,needGetAllChildNodes:M,buildGetAllChildrenQueryParams:$,loadChildNodes:B}=SC(i,d);function O(G,J=!1){J&&(G=P(G)),r.flattenTreeNodes=I(G||[]),k(N.value,G||[])}Uf(e,N,i,o);const R=t.watch([()=>r==null?void 0:r.columns,()=>r==null?void 0:r.items,()=>r==null?void 0:r.pageInfo,()=>r==null?void 0:r.total,()=>r==null?void 0:r.selectedData],([G,J,K,ne,oe])=>{N.value&&(oe&&oe.length&&w(oe),G&&h(N.value,G,!0),O(J||[],r.action==="search"))});function A(G,J=!0){const{cascadeValue:K}=s;return g()&&K!==Uv.Disable?E(G,K,J).filter(oe=>oe.selectable||oe.selectable===void 0).map(oe=>oe.id):[]}function L(G){y(G),n.emit("selectionsChanged",{items:G})}function _(G){v(G);const J=fe.get(G.raw,s.idField),K=A(J);if(M(G.raw)){const ne=$(G.raw);F(ne).then(oe=>{const me=(oe.items||[]).filter(Me=>!Me.addtional&&(Me.selectable||Me.selectable===void 0));me&&me.length&&y(me);const de=(me||[]).map(Me=>Me.id);b([J,...K,...de])})}else b([J,...K])}function W(G){const J=fe.get(G.raw,s.idField),K=A(J);if(K.length&&N.value.selectItemByIds([J,...K]),M(G.raw)){const ne=$(G.raw);F(ne).then(oe=>{const me=(oe.items||[]).filter(de=>!de.addtional&&(de.selectable||de.selectable===void 0));me&&me.length&&y(me)})}}function U(G){const J={search:l.default,action:G};return!l.default&&c.value&&(J.search={field:"*",value:c.value,type:"like"}),J}function Y(G="list"){const J=U(G);T(J,K=>{O(K.items,G==="search")})}const Q=t.watch(()=>l.default,G=>{if(s.uri){Y("search");return}n.emit("search",G)});function z(){R(),Q()}t.watch(()=>s.displayType,G=>{G.toLowerCase()!=="treelist"&&z()});function j(G){if(N.value.hasChildren(G))return Promise.resolve();const J=G.raw.id,K=D(G,l.default||(c.value?{field:"*",value:c.value,type:"like"}:void 0));return F(K).then(ne=>{B((ne==null?void 0:ne.items)??[],J,N.value)})}function H(G){var ne;const{node:J,$event:K}=G;s.enableFavorite&&((ne=K.target)==null?void 0:ne.className.indexOf("f-icon-star"))>-1||!s.multiSelect&&e.openType==="Modal"&&(w([J]),n.emit("dblClickRow",{items:[J]}))}function q(){return t.createVNode(va,{class:"lookup-treegrid",ref:N,fit:!0,data:e.data,idField:s.idField,columns:e.columns,rowNumber:{enable:!1},columnOption:x,selection:V,showBorder:!0,virtualized:!0,displayField:"code",rowOption:f,hierarchy:wC,onSelectionUpdate:L,onUnSelectItem:_,onSelectItem:W,loadData:j,onDblclickNode:H},null)}return{treegridRef:N,selectionTreeValues:S,renderTreeGrid:q,unwatches:z}}const bD={fields:{type:Array,default:()=>[]},showAllColumns:{type:Boolean,default:!0},isNavigation:{type:Boolean,default:!1},id:{type:String,default:""},enableEqualSearch:{type:Boolean,default:!1},exactLabel:{type:String,default:"精确"}},vD=t.defineComponent({name:"FLookupSearchBar",props:bD,emits:["search"],setup(e,n){const o='<i id="'+e.id+'-icon-search" class="f-icon f-icon-search"></i>',a=t.inject(qo),{queryState:i}=a.lookupStates,r=t.ref(e.fields||[]),l=t.ref(""),s=t.ref(i.value),c=t.ref(e.isNavigation),f=t.ref(),u=t.ref(!1),d=t.computed(()=>({field:l.value,value:s.value,isNavigation:c.value,type:u.value?"equal":"like"}));function m(){if(!r.value.length)return;let v="";e.showAllColumns&&(v="*"),v=r.value[0].value;const b=r.value.find(w=>!!w.isDefault);b&&(v=b.value),l.value=v}t.watch(()=>e.fields,v=>{r.value=v,m()});function p(){n.emit("search",d.value)}const g=fe.debounce(()=>p(),300);function h(){s.value="",p()}function y(v){v.key==="Enter"&&g()}return t.onMounted(()=>{m(),c.value&&(s.value="")}),()=>t.createVNode("div",{class:"fv-lookup-search-bar d-flex flex-row"},[t.createVNode("div",{style:"width: 160px;"},[t.createVNode(Qn,{ref:f,data:r.value,textField:"label",valueField:"value",idField:"value",modelValue:l.value,"onUpdate:modelValue":v=>l.value=v,enableClear:!1},null)]),t.createVNode("div",{class:"f-utils-fill ml-2 d-flex align-items-center"},[t.createVNode(pn,{buttonContent:o,class:"f-utils-fill",maxLength:200,modelValue:s.value,"onUpdate:modelValue":v=>s.value=v,onClickButton:p,enableClear:!0,onClear:h,onKeyup:y,popupOnClick:!0,id:e.id+"-search-bar"},null),e.enableEqualSearch&&t.createVNode("div",{class:"custom-control custom-checkbox custom-control-inline pr-0 m-0 ml-2"},[t.withDirectives(t.createVNode("input",{class:"custom-control-input",id:"farris-lookup_searchtype-equal",type:"checkbox","onUpdate:modelValue":v=>u.value=v},null),[[t.vModelCheckbox,u.value]]),t.createVNode("label",{class:"custom-control-label btn-link lookup-checkbox-label",for:"farris-lookup_searchtype-equal",style:"padding-left:18px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;"},[e.exactLabel])])])])}});function Gf(e,n,o,a){const{lookupState:i,searchState:r,navigationState:l}=o,{searchFieldItems:s,navSearchFieldItems:c}=hC(e,i,l),f=t.ref([]),u=t.ref([]);function d(y,v=!1){let b=y;e.searchAnyField&&(b=[{label:a.searchColumns.allColumns||"所有列",value:"*"}].concat(y)),v?u.value=b:f.value=b}d(s.value),d(c.value,!0),t.watch(()=>s.value,y=>{d(y)}),t.watch(()=>c.value,y=>{d(y,!0)});function m(){const{displayType:y,treeToList:v}=o.lookupOptions;return(y.toLowerCase()===An.Tree.toLowerCase()||y.toLowerCase()===An.ListTree.toLowerCase())&&!v}function p(y){const v={...y};if(n){r.navigation=v;return}r.default=v}const g=t.computed(()=>n?u.value||[]:f.value||[]);function h(){if(e.enableSearchBar&&g.value.length>0)return t.createVNode("div",{class:"p-2"},[t.createVNode(vD,{fields:g.value,id:e.id,showAllColumns:e.searchAnyField,isNavigation:n,onSearch:p,enableEqualSearch:e.enableEqualSearch&&!n&&!m(),exactLabel:a.searchColumns.exactLabel||"精确"},null)])}return{renderSearchBar:h}}function CD(e,n){var Q;const o=t.inject(Gr),a=t.inject(qo),i=t.inject(Mi),{loadData:r,lookupStates:l,expandAllNodes:s,getFieldValue:c,getData:f}=a,{navigationState:u,pageInfoState:d,searchState:m,lookupOptions:p}=l,{renderSearchBar:g}=Gf(e,!0,l,i),h=ja(e,l),{checkPaination:y,navIsList:v,navIsTreeList:b}=h,{updatePageInfo:w}=yC(e,d),C=t.ref([]),V="lookup-datagrid",{buildGetChildrenQueryParams:x,loadChildNodes:N}=SC(l,h);if(v()){const z=y((Q=e.navigation)==null?void 0:Q.pagination);w(z,!0)}const S=t.ref(d.navigation),k={enableSelectRow:!0,multiSelect:!1,showCheckbox:!1,keepSelectingOnClick:!1},T={fitColumns:!0,fitMode:"percentage",resizeColumn:!0},P=t.ref(),F=t.ref(),I=t.ref("id");t.watch(()=>d.navigation,z=>{var j;S.value=z,(j=F.value)==null||j.updatePagination(z)});function E(z,j,H){var q,G,J;if(z=z||[],v()){const K={total:j};if(H){const{pageIndex:ne,pageSize:oe,enablePager:ie,pageList:me}=H;Object.assign(K,{index:ne,size:oe,enable:ie})}w(K,!0),(q=F.value)==null||q.updateDataSource(z)}else b()&&((G=m.navigation)!=null&&G.value&&(z=s(z,!0)),(J=P.value)==null||J.updateDataSource(z))}function D(z){var j,H;v()?(j=F.value)==null||j.updateColumns(z):b()&&((H=P.value)==null||H.updateColumns(z))}t.watch([()=>u==null?void 0:u.columns,()=>u==null?void 0:u.items,()=>u==null?void 0:u.pageInfo,()=>u==null?void 0:u.total],([z,j,H,q])=>{z&&D(z),E(j,q||0,H)}),t.watch(()=>u==null?void 0:u.idField,z=>{I.value=z||"id"});function M(z){var j;C.value=z,(!z||!z.length)&&((j=P.value)==null||j.activeRowById(""))}function $(z){var j;C.value=z,(!z||!z.length)&&((j=F.value)==null||j.activeRowById(""))}function B(){r({search:m.navigation,action:"navsearch"},z=>{E(z.items,z.total||0,z.pageInfo)})}t.watch(()=>m.navigation,z=>{if(p.uri){w({index:1},!0),B();return}n.emit("search",z)});function O({pageSize:z,pageIndex:j}){var G;let H=j;((G=S.value)==null?void 0:G.size)!==z&&(H=1);const q={size:z,index:H};if(w(q,!0),p.uri){B();return}n.emit("pageSizeChanged",q)}function R(z){if(P.value.hasChildren(z))return Promise.resolve();const j=z.raw.id,H=x(z,m.navigation,!0);return f(H).then(q=>{N((q==null?void 0:q.items)??[],j,P.value)})}function A(){return t.createVNode(va,{ref:P,fit:!0,idField:I.value,rowNumber:{enable:!1},columnOption:T,selection:k,virtualized:!0,showBorder:!0,rowOption:o,hierarchy:wC,onSelectionUpdate:M,loadData:R},null)}function L(){return t.createVNode(pa,{ref:F,customClass:V,pagination:S.value,summary:{enable:!1},columnOption:T,idField:I.value,rowNumber:{enable:!1},showBorder:!0,fit:!0,virtualized:!0,selection:k,onSelectionUpdate:$,onChanged:O},null)}function _(){if(b())return A();if(v())return L()}function W(){return t.createVNode("div",{class:"d-flex h-100 w-100 flex-column"},[g(),t.createVNode("div",{class:"f-utils-fill px-2",style:"position: relative;"},[_()])])}function U(){return I.value}function Y(z){return u.relations&&u.relations.length?u.relations.map(H=>{const{groupField:q,helpField:G}=H,J={fieldName:G,fieldValue:""},K=z.map(ne=>c(ne,q));return J.fieldValue=K.join(","),J}):""}return{renderNavigation:W,selectedItems:C,getNavigationIdField:U,getRelationFilter:Y}}function wD(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const VD=t.defineComponent({name:"LookupContainer",props:zr,emits:["update:modelValue","search","navSelectionsChanged","pageIndexChanged","pageSizeChanged","changeDialogOptions","clearSearch","dblClickRow"],setup(e,n){t.inject(qr,t.ref(dn.dataList));const o=t.inject(qo),a=t.inject(Mi),{lookupStates:i,getIdQueryParams:r}=o,{lookupState:l,navigationState:s,queryState:c,lookupOptions:f,searchState:u}=i,{renderSearchBar:d}=Gf(e,!1,i,a),{isDoubleList:m,getNavigationSize:p,isTreeList:g}=ja(e,i),{renderNavigation:h,selectedItems:y,getNavigationIdField:v,getRelationFilter:b}=CD(e,n),{renderTreeGrid:w,unwatches:C}=NC(e,n),{renderDataGrid:V,unwatches:x}=CC(e,n,{navSelectedItems:y,getNavigationIdField:v,getRelationFilter:b}),N=t.computed(()=>g()?w:V),S=p();function k(F){var E;const I=(E=f.dialog)==null?void 0:E.title;I&&I!==Gv&&(F=I),n.emit("changeDialogOptions",{title:F})}function T(F,I){l.action=I,g()?x():C(),F.navigation&&(Object.keys(F.navigation).forEach(E=>{var D;s[E]=(D=F.navigation)==null?void 0:D[E]}),F.navigation.treeInfo&&(o==null||o.setTreeInfo(F.navigation.treeInfo,!0)),delete F.navigation),F.treeInfo&&(o==null||o.setTreeInfo(F.treeInfo)),Object.keys(F).forEach(E=>{l[E]=F[E]})}function P(){const F={};e.enableToSelect&&(F.selectedInfo=r()),c.value!=null&&(F.search={field:"*",value:c.value,type:"like"},F.action="search"),o==null||o.loadData(F,I=>{t.nextTick(()=>{T(I,(F==null?void 0:F.action)||""),k(I.title||"")})})}return t.onMounted(()=>{P(),document.body.classList.add("lookup-modal-open")}),t.onUnmounted(()=>{document.body.classList.remove("lookup-modal-open")}),()=>{let F;return t.createVNode(In,null,{default:()=>[m()&&e.showNavigation&&!Fn()&&t.createVNode(yn,{position:"left",width:S==null?void 0:S.width,minWidth:S==null?void 0:S.minWidth},wD(F=h())?F:{default:()=>[F]}),t.createVNode(yn,{position:"center"},{default:()=>[t.createVNode("div",{class:"d-flex h-100 w-100 flex-column"},[d(),t.createVNode("div",{class:"f-utils-fill px-2",style:"position: relative;"},[N.value()])])]})]})}}}),SD={multiSelect:{type:Boolean,default:!1},idField:{type:String,default:"id"},displayType:{type:String,default:"list"},selectedIds:{type:Array,default:[]},showSelections:{type:Boolean,default:!1},treeToList:{type:Boolean,default:!1},enableFavorite:{type:Boolean,default:!0}},ND=t.defineComponent({name:"FLookupFavorite",props:SD,emits:["dblClickRow"],setup(e,n){const o=t.inject(Gr),{userDataState:a,getFavoriteData:i}=t.inject(zs),r=t.inject(qr,t.ref(dn.dataList)),l=t.inject(Pi),s=t.inject(qo),{lookupStates:c,expandAllNodes:f}=s,u=t.computed(()=>c.lookupOptions.idField||"id"),d=t.ref(e.selectedIds),{setColumns:m,removeFavoriteItem:p}=zf(e,u.value),{isTreeList:g}=ja(e,c),{updateSelections:h,unSelectTreeNode:y,selectTreeNodes:v}=l,b=t.ref(),w=t.ref(),C=t.computed(()=>g()?w.value:b.value);Uf(e,C,c);function V(){return a.data&&a.data.favorites&&a.data.favorites.length}function x($){C.value.clearSelection(),$&&$.length&&C.value.selectItemByIds($)}t.watch(()=>e.selectedIds,($,B)=>{JSON.stringify($)!==JSON.stringify(B)&&(d.value=$,d.value.length?x(d.value):C.value.clearSelection())});function N($,B){B&&B.length&&m(C.value,B,g()),$&&(g()&&($=f($)),C.value.updateDataSource($||[])),x(d.value||[])}function S(){i().then($=>{$?N($.items||[],$.columns):N([],null)})}t.watch(()=>r.value,($,B)=>{var O;$===dn.favorite&&(V()?S():N([],(O=c.lookupState)==null?void 0:O.columns))}),t.watch(()=>p.value,($,B)=>{r.value===dn.favorite&&$&&(g()?S():N(a.favoriteItems||[],null),p.value=!1)});const k={fitColumns:!0,fitMode:"percentage",resizeColumn:!0},T={enableSelectRow:!0,multiSelect:e.multiSelect,showCheckbox:e.multiSelect,multiSelectMode:"OnCheckAndClick"};function P($){g()?v($):h($)}function F($){g()?y($):h($==null?void 0:$.raw,!1)}function I($,B){e.multiSelect||(h([B]),n.emit("dblClickRow",{items:[B]}))}function E($){const{node:B}=$;e.multiSelect||(h([B]),n.emit("dblClickRow",{items:[B]}))}function D(){return t.createVNode(va,{ref:w,fit:!0,idField:u.value,rowNumber:{enable:!1},columnOption:k,selection:T,showBorder:!0,virtualized:!0,rowOption:o,onSelectionUpdate:P,onUnSelectItem:F,onDblclickNode:E},null)}function M(){return t.createVNode(pa,{ref:b,pagination:{enable:!1},summary:{enable:!1},columnOption:k,idField:u.value,rowNumber:{enable:!1},showBorder:!0,virtualized:!0,fit:!0,selection:T,onSelectionUpdate:P,onUnSelectItem:F,onDoubleClickRow:I},null)}return()=>g()?D():M()}}),TD={id:{type:String},title:{type:String},height:{type:Number,default:50},draggable:{type:Boolean,default:!0},enableFavorite:{type:Boolean,default:!1},useHttpComposition:{type:Object,default:{}},userDataService:{type:Object,default:{}},useDialog:{type:Object,default:{}},selectionsManager:{type:Object,default:{}},showSelectedList:{type:Boolean,default:!1},showIncludeChildNodes:{type:Object,default:{show:!0,value:!1}},showCascadeControl:{type:Boolean,default:!1},isMaximized:{type:Boolean,default:!1},locales:{type:Object,default:{}}},xD={idField:{type:String,default:"id"},parentRef:{type:Object,default:null},popoverOffsetX:{type:Number,default:0}},kD=t.defineComponent({props:xD,setup(e,n){const o=t.inject("FMessageBoxService"),a=t.inject(Pi),i=t.inject(qo),{lookupState:r,selectionState:l}=i.lookupStates,s=t.inject(Mi),{clearSelections:c,unSelectionsByIds:f}=a,u=t.ref(),d=t.computed(()=>u),m=t.ref(),p=t.ref(e.popoverOffsetX||-15);t.watch(()=>e.popoverOffsetX,I=>{p.value=I});const g=t.computed(()=>p.value===-15?10:100),h=t.ref(e.parentRef),y="_remove_selected_";function v(I,E,D){I.stopPropagation();const M=E.raw[e.idField];f(M)}const b={field:y,title:"",width:50,fixed:"right",align:"center",formatter:(I,E)=>t.createVNode("button",{type:"button",onClick:D=>{v(D,E)},class:"btn btn-link f-icon f-icon-x p-0",style:"color: #dd2438;"},null)},w=t.computed(()=>{const I=fe.cloneDeep((r==null?void 0:r.columns)||[]);if(I.length)return I.push(b),I});t.watch(()=>e.parentRef,I=>{h.value=I});const C={fitColumns:!0,fitMode:"percentage",resizeColumn:!0},V={enableSelectRow:!0,multiSelect:!1,showCheckbox:!1,showSelectAll:!1,multiSelectMode:"OnCheckAndClick"},x=t.ref({width:"0px",height:"0px"});let N;function S(){var $,B;const I=(($=h.value)==null?void 0:$.offsetHeight)-100,E=200,D=l.value.length*28+60,M=D>I?I:D<E?E:D;x.value={width:((B=h.value)==null?void 0:B.offsetWidth)-20+"px",height:M+"px"}}t.watch(()=>m.value,I=>{I&&(I.updateColumns(w.value),I.updateDataSource(fe.cloneDeep(l.value||[])),S())}),t.watch(()=>l.value,I=>{var E;(E=m.value)==null||E.updateDataSource(fe.cloneDeep(I||[]),{keepScrollTop:!0})}),t.watch(()=>h.value,I=>{N=new ResizeObserver(()=>{h.value&&S()}),N.observe(h.value)});const k=t.computed(()=>(l.value||[]).length>0),T=t.computed(()=>({display:"flex","align-items":"center",opacity:k.value?1:.4,cursor:k.value?"pointer":"not-allowed",pointerEvents:k.value?"auto":"none"}));function P(){const I=s==null?void 0:s.messages.clearSelections;o==null||o.question(I,"",()=>{c()})}t.onMounted(()=>{S()}),t.onUnmounted(()=>{N&&h.value&&N.unobserve(h.value)});function F(){var I;(I=d.value)==null||I.value.hide()}return n.expose({hidePopup:F}),()=>t.createVNode(t.Fragment,null,[t.createVNode("div",{class:"d-flex flex-row align-items-center",style:"line-height:24px"},[t.withDirectives(t.createVNode("div",{style:T.value,innerHTML:s.buttons.selectionTotal(l.value.length)},null),[[t.resolveDirective("popover"),d.value,"toggle"]]),k.value&&t.createVNode("button",{class:"btn btn-link btn-sm p-0 pl-2",style:"line-height:24px",onClick:P},[s.buttons.clear])]),t.createVNode(no,{id:"lookup-selected-popover",customStyles:{filter:"drop-shadow(#c5c5c5 0px 0px 6px)"},offsetX:p.value,arrowOffsetX:g.value,ref:u,placement:"top-left",keepWidthWithReference:!1,fitContent:!0},{default:()=>{var I;return[t.createVNode("div",{style:x.value},[((I=u.value)==null?void 0:I.isShow)&&t.createVNode(pa,{ref:m,pagination:{enable:!1},summary:{enable:!1},columnOption:C,idField:e.idField,rowNumber:{enable:!1},showBorder:!1,virtualized:!0,fit:!0,selection:V},null)])]}})])}}),FD=t.defineComponent({props:{modelValue:{type:Boolean,default:!1},label:{type:String,default:"包含下级"}},emits:["update:modelValue"],setup(e,n){const o=t.ref(e.modelValue);function a(i){i.stopPropagation(),o.value=!o.value,n.emit("update:modelValue",o.value)}return()=>t.createVNode("div",{class:"custom-control custom-checkbox mb-0",onClick:a},[t.withDirectives(t.createVNode("input",{id:"lookup-include-childs-input","onUpdate:modelValue":i=>o.value=i,title:"checkbox-input",type:"checkbox",class:"custom-control-input"},null),[[t.vModelCheckbox,o.value]]),t.createVNode("label",{class:"custom-control-label",style:"padding-left: 1.2rem;"},[e.label])])}}),MD=t.defineComponent({name:"FLookupCascadeSelector",props:["modelValue"],emits:["update:modelValue"],setup(e,n){const o=t.inject(Mi),a=t.ref(),i=t.ref(e.modelValue);return t.watch(()=>i.value,(r,l)=>{r!==l&&n.emit("update:modelValue",r)}),$f.forEach(r=>{r.text=o.tree[r.value]}),()=>t.createVNode("div",{style:"width: 130px",class:"ml-3"},[t.createVNode(Qn,{ref:a,data:$f,textField:"text",valueField:"value",idField:"value",modelValue:i.value,"onUpdate:modelValue":r=>i.value=r,enableClear:!1,minPanelWidth:130,placement:"top-left"},null)])}}),PD=t.defineComponent({name:"FLookupModalContainer",props:TD,emits:["closeModal","maximize"],setup(e,n){const o=t.ref(dn.dataList);t.provide(qr,o),t.provide(qo,e.useHttpComposition),t.provide(zs,e.userDataService),t.provide(Pi,e.selectionsManager),t.provide(Mi,e.locales);const{tabs:a,buttons:i,tree:r}=e.locales,l=t.reactive(e.showIncludeChildNodes),s=t.ref(l.value),{lookupOptions:c}=e.useHttpComposition.lookupStates,f=c.dialog,u=t.computed(()=>c.displayType.toUpperCase()===An.TreeList),d=VC(c,u.value);t.provide(Gr,d);const m=t.ref(e.isMaximized);t.watch(()=>e.isMaximized,(E,D)=>{m.value=E});const p=t.computed(()=>({"f-icon":!0,modal_maximize:!0,modalrevert:m.value}));t.ref();const g=t.computed(()=>l.show&&o.value===dn.dataList&&c.displayType&&u.value&&!Fn()),h=t.computed(()=>g.value?-99:-15);t.watch(()=>s.value,(E,D)=>{e.useHttpComposition.updateIncludeChilds(E)}),t.watch(()=>e.showIncludeChildNodes,(E,D)=>{l.value=E,e.useHttpComposition.updateIncludeChilds(E.value)});const{userDataState:y}=e.userDataService,{cancelDialog:v,submitDialog:b}=e.useDialog,w=t.ref(),C=t.ref();function V(E){n.emit("maximize",E)}function x(E){n.emit("closeModal",E)}async function N(E){await b()&&x(E)}async function S(E){await v()&&x(E)}function k(E){o.value=E,y.data.tabIndex=E}const T=t.computed(()=>({transform:`translate3d(${o.value===dn.favorite?84:0}px, 0px, 0px)`})),P=t.computed(()=>E=>({visibility:o.value===E?"visible":"hidden",position:"absolute",top:0,transition:"all 0.3s ease-in",opacity:o.value===E?1:0})),F=t.computed(()=>{const E=e.enableFavorite?"50%":"100%",D=e.enableFavorite?100:80,M=f.showMaxButton||f.showCloseButton?D:0;return{maxWidth:`calc(${E} - ${M}px)`}});function I(E){E.stopPropagation(),document.body.click()}return t.onMounted(()=>{var E;y.data.favorites&&y.data.favorites.length&&(o.value=((E=y.data)==null?void 0:E.tabIndex)||dn.dataList),g.value&&e.useHttpComposition.updateIncludeChilds(s.value)}),()=>t.createVNode("div",{class:"d-flex flex-column h-100 lookup-modal",ref:w},[t.createVNode("div",{class:"d-flex justify-content-between align-items-center px-3 lookup-modal-header"},[t.createVNode("div",{class:"lookup-modal-header-title",title:e.title,style:F.value},[e.title]),e.enableFavorite&&t.createVNode("div",{class:"d-flex justify-content-center w-100"},[t.createVNode("div",{class:"lookup-modal-header-tabs-container d-flex",onMousedown:I},[t.createVNode("div",{class:"active-tab",style:T.value},null),t.createVNode("div",{class:["tab-item","d-flex",{active:o.value===dn.dataList}],onClick:()=>k(dn.dataList)},[a.datalist]),t.createVNode("div",{class:["tab-item","d-flex",{active:o.value===dn.favorite}],onClick:()=>k(dn.favorite)},[a.favorite])])]),(f.showMaxButton||f.showCloseButton)&&t.createVNode("div",{class:"d-flex flex-row h-100 justify-content-end align-items-center lookup-modal-header-buttons",onMousedown:E=>E.stopPropagation()},[f.showMaxButton&&!Fn()&&t.createVNode("span",{class:p.value,onClick:V,style:"cursor: pointer"},null),f.showCloseButton&&t.createVNode("span",{class:"f-icon modal_close ml-2",onClick:x,style:"cursor: pointer;position: relative;top: 1px;"},null)])]),t.createVNode("div",{class:"f-utils-fill",style:"position: relative;"},[t.createVNode("div",{class:"h-100 d-flex flex-column f-utils-fill w-100",style:P.value(dn.dataList)},[n.slots.default&&n.slots.default()]),t.createVNode("div",{class:"h-100 d-flex flex-column px-2 f-utils-fill w-100",style:P.value(dn.favorite)},[n.slots.fav&&n.slots.fav()])]),t.createVNode("div",{class:"modal-footer"},[t.createVNode("div",{class:"f-utils-fill align-items-center d-flex flex-row"},[g.value&&t.createVNode(FD,{modelValue:s.value,"onUpdate:modelValue":E=>s.value=E,label:r.includechildren},null),e.showSelectedList&&t.createVNode(kD,{popoverOffsetX:h.value,parentRef:w.value,ref:C,idField:c.idField},null),e.showCascadeControl&&o.value===dn.dataList&&t.createVNode(MD,{modelValue:c.cascadeValue,"onUpdate:modelValue":E=>c.cascadeValue=E},null)]),t.createVNode("button",{id:e.id+"-btncancel",name:"cancel",type:"button",class:"btn btn-secondary",onClick:S},[i.cancel]),t.createVNode("button",{id:e.id+"-btnok",name:"accept",type:"button",class:"btn btn-primary",onClick:N},[i.ok])])])}});function Us(e,n){if(e.context){if(!n&&e.context.editor){for(const a in e.context.editor)delete e.context.editor[a];return}const{editor:o}=e.context;o?Object.assign(o,n):e.context.editor=n}}function ID(e,n,o,{dictPicked:a,modelValue:i,buttonEditInstance:r,userDataService:l,useHttp:s,lookupLocales:c}){const f=t.inject(Pn,null),u=t.inject("FLoadingService"),d=t.ref(),m=t.ref("accept"),p=t.ref(),{lookupStates:g}=s,{queryState:h,lookupState:y,navigationState:v,pageInfoState:b,searchState:w,selectionState:C,lookupOptions:V}=g,{isDoubleList:x}=ja(e,g),N=Object.assign({},gE,V.dialog);V.dialog=N;const S={position:"top-center"},k=()=>{const j=o.value.map(q=>vt(q,V.textField)).join(e.separator),H=o.value.map(q=>q[V.idField]).join(e.separator);i.value=j,s.idValues.value=H,n.emit("update:modelValue",j),n.emit("update:idValue",H)};function T(j){return typeof j=="object"?{shouldClose:j.closeDialog||j.canClose,message:j.message}:{shouldClose:j,message:""}}const P=async()=>{const j={items:o.value,mappingFields:V.mappingFields,options:{...V}};n.emit("update:dataMapping",j),Us(e,j);const H=await a(j);return T(H)};async function F(){return k(),await P()}function I(){return m.value="cancel",!0}const E=j=>{Object.keys(j).forEach(H=>{delete j[H]})},D=j=>{j.forEach(H=>{E(H)})};function M(){document.body.classList.remove("lookup-modal-open"),u==null||u.clearAll(),D([y,v,b,w,h]),C.value=[],p.value=null,h.value=null}async function $(){var H;if(o.value.length===0)return f==null||f.warning({message:c.messages.mustChoosAdatarow,...S}),{shouldUpdate:!1};const j=await((H=e.beforeSelectData)==null?void 0:H.call(e,{items:o.value}));return{shouldUpdate:typeof j=="boolean"?j:(j==null?void 0:j.canSelect)??!0,message:j==null?void 0:j.message}}async function B(){const{shouldUpdate:j,message:H}=await $();if(!j)return H&&(f==null||f.warning({message:H,...S})),!1;const q=await F(),{shouldClose:G,message:J}=q;return G?(m.value="accept",!0):(J&&(f==null||f.warning({message:J,...S})),!1)}function O(){const j=(N==null?void 0:N.height)||620,H=(N==null?void 0:N.width)||590,q=(N==null?void 0:N.minWidth)||300,G=(N==null?void 0:N.minHeight)||200,J={height:j,width:H,minWidth:q,minHeight:G};return x()&&(J.width=(N==null?void 0:N.width)||960),J}const{width:R,height:A,minHeight:L,minWidth:_}=O(),W=!0,U=(N==null?void 0:N.resizeable)==null?!0:N==null?void 0:N.resizeable;N.rememberSize=N.rememberSize&&U;const Y={title:N==null?void 0:N.title,fitContent:!1,showHeader:!1,dragHandle:".lookup-modal-header",height:A,width:R,minWidth:_,minHeight:L,resizeable:U,draggable:W,enableEsc:(N==null?void 0:N.enableEsc)==null?!0:N==null?void 0:N.enableEsc,closedCallback:(j,H)=>{const q={type:m.value,button:j==null?void 0:j.target};if((H==="esc"||H==="icon")&&(q.type="esc"),q.type==="accept"&&(q.items=o.value),(q.type==="cancel"||q.type==="esc")&&(e.allowFreeInput||(i.value=e.modelValue)),l&&e.enableUserData){l.saveUserData().then(()=>{M(),n.emit("dialogClosed",q)});return}M(),n.emit("dialogClosed",q)},showButtons:!1,resizeHandle:j=>{if(N.rememberSize){d.value=j;const{width:H,height:q}=j.newSize.size;!(j.isMaximized??!1)&&l.setDialogSize({width:Math.round(H),height:Math.round(q)})}},enableEnter:!0,onEnter:j=>{j.event.preventDefault(),!j.event.target.closest(".fv-lookup-search-bar")&&B().then(q=>{var G;if(q){const J=(G=r.value)==null?void 0:G.getModal();J&&J.close(j.event,"enter")}})}};async function Q(){var j;if(e.enableUserData&&e.openType==="Modal"&&(await l.getUserData(),(j=l==null?void 0:l.userDataState)!=null&&j.data&&N.rememberSize)){const{size:H}=l.userDataState.data;H&&Object.assign(Y,H)}}async function z(j){let H=!0;const q=e.dictPicking;if(q&&typeof q=="function"){const G=await q({customData:p,options:V,idValue:s.idValues});typeof G=="boolean"&&!G&&(H=!1),typeof G=="object"&&(G.canOpen?G.data&&(p.value=G.data):(H=!1,G.message&&(f==null||f.error({message:G.message,position:"top-center"}))))}return H&&await Q(),H}return{modalOptions:Y,beforeOpenDialog:z,dialogSize:d,customData:p,updateModelValue:F,cancelDialog:I,submitDialog:B,destroyed:M,setModelAndIdValue:k,runDictPickedAsync:P}}function $D(e){return{dictPicked:async({items:o,mappingFields:a})=>e.dictPicked&&typeof e.dictPicked=="function"?await e.dictPicked({items:o,mappingFields:a})??!0:!0}}function TC(e,n,o,a){if(!e.editable)return;const i={items:null,mappingFields:a.mappingFields,isFreeInput:!0,options:{...a}};n.emit("clearMapping",i),n.emit("update:modelValue",o),n.emit("update:idValue",""),Us(e,i)}function ED(e,n,o){const a=t.computed(()=>e.textChangeType==="blur"||e.textChangeType==="any"),i=t.computed(()=>e.textChangeType==="enter"||e.textChangeType==="any"),{beforeOpenDialog:r,updateModelValue:l,selectedItems:s,openDialog:c,lookupOptions:f,useHttpComposition:u,isPopuped:d,usePopupComposition:m,modelValue:p}=o,{updateSearchFieldTitle:g}=u,{lookupState:h,queryState:y,searchValueChanged:v}=u.lookupStates,b=t.ref(!1);function w(T){return fe.isEmpty(T)&&v.value&&!d.value?(b.value=!0,v.value=!1,!1):v.value}function C(T){var F;if(!T||T.length!==1)return;const[P]=T;return(F=P.children)!=null&&F.length?C(P.children):P.data}function V(T,P){var I;if(!P||P.length!==1)return!1;const[F]=P;return T?(I=F.children)!=null&&I.length?C(F.children):F.data:F}async function x(T){const P={search:{field:"*",value:T,type:e.openType==="Modal"?"equal":"like"},action:"search"};if(v.value){if(e.openType==="Modal"&&!await r()){p.value=e.modelValue,y.value=null;return}document.body.classList.add("lookup-modal-open"),u.loadData(P,async F=>{var I;if(F.searchFields&&F.columns){const E=g(F.searchFields,F.columns);h.searchFields=E}if(v.value=!1,e.openType==="Modal"){const E=V(((I=F.displayType)==null?void 0:I.toLowerCase())==="treelist",F.items);if(E){s.value=[E],l(),y.value=null,document.body.classList.remove("lookup-modal-open");return}c()}else h.action=T?"search":"list",h.items=F.items,h.total=F.total,h.selectedData=F.selectedData||[],F.pageInfo&&(h.pageInfo={...F.pageInfo})})}}function N(T,P){var I;let F=(I=T.target)==null?void 0:I.value;if(F!==""&&(F=F.trim()),w(F)){if(e.allowFreeInput)if(e.openType==="Modal"){TC(e,n,F,f);return}else{const{popupState:E}=m;E.canClose=!0,s.value=[],TC(e,n,F,f)}if(e.openType!=="Modal"&&!d.value){r().then(E=>{E?(c(),v.value=!1):(p.value=e.modelValue,y.value=null)});return}f.uri?x(F):n.emit("textChanged",{value:F,type:P?"blur":"enter"})}}function S(T){a.value&&N(T,!0)}function k(T){T.key==="Enter"&&i.value&&N(T,!1)}return{changeOnBlur:a,changeOnEnter:i,onInputBlur:S,onEnterKeyDown:k,isClear:b,queryDataBySearchKeys:x}}const DD={height:{type:Number,default:500},width:{type:Number,default:500},useHttpComposition:{type:Object,default:{}},selectionsManager:{type:Object,default:{}},showSelectedList:{type:Boolean,default:!1},enableToSelect:{type:Boolean,default:!0},uri:{type:String,default:""},hidePopup:{type:Function,default:null},fitColumns:{type:Boolean,default:!0},openType:{type:String,default:"Popup"},pagination:{type:Object,default:{enable:!1,showLimits:!0,sizeLimits:[10,20,30,50,100],size:20,index:1,total:0,mode:"server",showGoto:!1}},displayType:{type:String,default:An.List},loadTreeDataType:{type:String,default:ha.all},expandLevel:{type:Number,default:0},enableCascade:{type:Boolean,default:!1},showCascadeControl:{type:Boolean,default:!1},cascadeItems:{type:Object,default:{both:!0,up:!0,down:!0,disable:!0}},cascadeStatus:{type:String,default:"both"},enableSearchBar:{type:Boolean,default:!0},searchAnyField:{type:Boolean,default:!0},locales:{type:Object,default:{}}},OD=t.defineComponent({name:"FLookupPopupContainer",props:DD,emits:["selectItemsChanged","hiddenPopup"],setup(e,n){const o=e.locales,{lookupStates:a,getIdQueryParams:i}=e.useHttpComposition,{lookupState:r,navigationState:l,queryState:s,lookupOptions:c}=a,{isTreeList:f}=ja(e,a);Gf(e,!1,a,o);const u=t.computed(()=>({width:`${e.width}px`,height:`${e.height}px`,padding:"5px"})),{renderDataGrid:d}=CC(e,n,{}),{renderTreeGrid:m}=NC(e,n),p=t.computed(()=>f()?m:d);function g(){const h={};e.enableToSelect&&(h.selectedInfo=i(),s.value!=null&&(h.search={field:"*",value:s.value,type:"like"},h.action="search"));const y=e.useHttpComposition;y==null||y.loadData(h,v=>{t.nextTick(()=>{r.action=h.action,v.navigation&&(Object.keys(v.navigation).forEach(b=>{var w;l[b]=(w=v.navigation)==null?void 0:w[b]}),v.navigation.treeInfo&&(y==null||y.setTreeInfo(v.navigation.treeInfo,!0)),delete v.navigation),v.treeInfo&&(y==null||y.setTreeInfo(v.treeInfo)),Object.keys(v).forEach(b=>{r[b]=v[b]})})})}return t.onMounted(()=>{g()}),t.onUnmounted(()=>{n.emit("hiddenPopup")}),()=>t.createVNode("div",{style:u.value,class:"d-flex flex-column"},[p.value()])}});function BD(e,n,o,{useHttpComposition:a,selectionsManager:i,userDataService:r,updateModelValue:l,lookupLocales:s,destroyed:c,setModelAndIdValue:f,runDictPickedAsync:u,popupState:d}){t.provide(zs,r),t.provide(qo,a),t.provide(Pi,i);const{selectionState:m,queryState:p,lookupOptions:g,searchState:h}=a.lookupStates,y=VC(g,!1);t.provide(Gr,y);const v=t.inject(Pn,null),{idValues:b}=a,w=t.computed(()=>{var I;const F=(I=o.value)==null?void 0:I.popoverRef;return F?F.shown:!1});async function C(){if(!d.canClose)return!1;if(!m.value.length)return f(),!0;let F=null;g.multiSelect?F=await u():F=await l();const{shouldClose:I,message:E}=F;return I?!0:(E&&(v==null||v.warning({message:E,position:"top-center"})),d.canClose=!1,!1)}async function V(){var F;(F=o.value)==null||F.hidePopup()}e.openType==="Popup"&&t.watch(()=>m.value,F=>{w.value&&e.multiSelect&&f()});const x=()=>{const{width:F,height:I}=e.dialog;return{width:F||460,height:I||380}},N=t.computed(()=>{var F;return(F=o.value)==null?void 0:F.popoverRef});async function S(){w.value&&V(),p.value=null,c(),n.emit("popupClosed"),d.canClose=!0,document.body.classList.remove("lookup-modal-open")}function k(){var F;w.value||(F=o.value)==null||F.showPopup()}function T(){d.canClose=!0,g.multiSelect||V()}function P(){const{width:F,height:I}=x();return t.createVNode(OD,t.mergeProps({width:F,height:I,useHttpComposition:a,locales:s,selectionsManager:i,onHiddenPopup:S,onSelectionsChanged:T},e),null)}return{popoverInstance:N,isPopuped:w,renderPopup:P,showPopup:k,hidePopup:V,onBeforeClosePopup:C,popupState:d}}const ho=t.defineComponent({name:"FLookup",props:zr,emits:["update:modelValue","update:idValue","search","navSelectionsChanged","pageIndexChanged","pageSizeChanged","resize","dialogClosed","textChanged","clear","update:dataMapping","clearMapping","popupClosed"],setup(e,n){const o='<i id="'+e.id+'-icon_lookup" class="f-icon f-icon-lookup"></i>',a='<i id="'+e.id+'-icon_dropdown" class="f-icon f-icon-arrow-chevron-down"></i>',i=t.ref(),r=t.ref(e.modelValue),l=t.ref("");Ur.value=e.customData;const s=t.computed(()=>Fn()?"Modal":e.openType==="Popup"?"Popup":"Modal"),c=t.computed(()=>s.value==="Popup"?a:o),f=yD(e),u=gD(e),{lookupOptions:d,selectionState:m,searchValueChanged:p,queryState:g,popupState:h}=u.lookupStates,y=hD(e,u),v=t.computed(()=>e.showSelections&&d.multiSelect),b=t.computed(()=>e.editable&&(s.value==="Modal"||!d.multiSelect)),w=t.computed(()=>e.showIncludeChildNodes&&e.showNavigation&&!d.navTreeToList),C=bC(e,u.lookupStates),{dictPicked:V}=$D(e),{modalOptions:x,beforeOpenDialog:N,dialogSize:S,customData:k,updateModelValue:T,cancelDialog:P,submitDialog:F,destroyed:I,setModelAndIdValue:E,runDictPickedAsync:D}=ID(e,n,m,{dictPicked:V,modelValue:r,buttonEditInstance:i,userDataService:y,useHttp:u,lookupLocales:f}),M=BD(e,n,i,{useHttpComposition:u,selectionsManager:C,userDataService:y,updateModelValue:T,lookupLocales:f,destroyed:I,setModelAndIdValue:E,runDictPickedAsync:D,popupState:h}),{renderPopup:$,showPopup:B,isPopuped:O,hidePopup:R,onBeforeClosePopup:A}=M;function L(){if(s.value==="Popup"){B();return}i.value&&!i.value.getModal()&&i.value.openDialog()}const{onInputBlur:_,onEnterKeyDown:W,isClear:U,queryDataBySearchKeys:Y}=ED(e,n,{beforeOpenDialog:N,updateModelValue:T,selectedItems:m,openDialog:L,modelValue:r,useHttpComposition:u,lookupOptions:d,usePopupComposition:M,isPopuped:O}),Q=t.reactive(x),z=t.inject(Rn);t.watch(()=>k.value,ye=>{Ur.value=ye}),t.watch(()=>e.modelValue,ye=>{r.value=ye});function j(ye){u.idValues.value=ye,ye||(m.value=[]),n.emit("update:idValue",ye)}t.watch(()=>e.idValue,ye=>{j(ye)}),t.onMounted(()=>{}),t.onUnmounted(()=>{Us(e)}),t.watch(()=>S.value,ye=>{n.emit("resize",ye)}),s.value==="Popup"&&t.watch([()=>e.readonly,()=>e.disabled],([ye,_e])=>{var we;(ye||_e)&&((we=i.value)==null||we.forceClosePopup())});async function H(){n.emit("update:modelValue",""),j(""),g.value=null,s.value==="Popup"&&O.value&&(h.canClose=!0,U.value||(p.value=!0,Y("")));const ye={items:null,mappingFields:d.mappingFields,options:{...d}};n.emit("clear",ye),Us(e,ye)}t.watch(()=>U.value,ye=>{ye&&(H(),U.value=!1)});function q(ye){n.emit("search",ye)}function G(ye){n.emit("navSelectionsChanged",ye)}function J(ye){n.emit("pageIndexChanged",ye)}function K(ye){n.emit("pageSizeChanged",ye)}async function ne(ye){const _e=z==null?void 0:z.getCurrentModal();_e&&_e.updateModalOptions(ye),ye.title&&(l.value=ye.title)}function oe(ye){const _e=z==null?void 0:z.getCurrentModal();z&&_e.close(ye)}function ie(ye){const _e=z==null?void 0:z.getCurrentModal();_e&&_e.maxDialog(ye)}const me=t.computed(()=>{const ye=z==null?void 0:z.getCurrentModal();return ye==null?void 0:ye.isMaximized}),de=t.computed(()=>d.multiSelect&&d.showCascadeControl&&d.enableCascade&&An.Tree===d.displayType.toUpperCase()&&!d.treeToList),Me=t.computed(()=>m.value&&m.value.length?m.value.map(ye=>ye[d.idField]):[]);function Te(ye){for(const _e in d)ye[_e]!==void 0&&(d[_e]=ye[_e])}const le=fe.debounce(ye=>{_(ye)},200);function ce(ye){var we;let _e=(we=ye.target)==null?void 0:we.value;_e!==""&&(_e=_e.trim()),p.value=ye.target._value!==_e,e.allowFreeInput&&j(""),p.value&&(g.value=_e),s.value==="Popup"&&p.value&&le(ye)}function Se(){p.value=!1}async function Z(ye){await F()&&(z==null||z.close())}function re(ye){e.togglePopupOnClickInput&&(O.value?R():B())}function ue(){document.body.classList.add("lookup-modal-open"),e.editable&&setTimeout(()=>{var ye;(ye=i.value.getTextbox())==null||ye.focus()},100)}return n.expose({openDialog:L,updateIdValue:j,mappingFields:d.mappingFields,idField:d.idField,setProps:Te,clear:H}),()=>t.createVNode(pn,{ref:i,id:e.id,modelValue:r.value,"onUpdate:modelValue":ye=>r.value=ye,disable:e.disabled,readonly:e.readonly,editable:b.value,inputType:"text",enableClear:e.enableClear,buttonContent:c.value,buttonBehavior:s.value,modalOptions:Q,onClear:H,beforeOpen:N,onBlur:_,onKeydown:W,placeholder:f.placeholder,keepWidthWithReference:!1,popupOnClick:!e.editable&&s.value==="Popup",onInput:ce,enableTitle:e.enableTitle,placement:"auto",onBeforeClearValue:Se,customClass:"f-cmp-lookup",onClick:re,onShown:ue,beforeClosePopup:A,popupClass:"lookup-popup-panel"},{default:()=>[s.value==="Modal"&&t.createVNode(PD,{title:l.value||"",enableFavorite:e.enableFavorite,onCloseModal:oe,onMaximize:ye=>ie(ye),useHttpComposition:u,userDataService:y,useDialog:{cancelDialog:P,submitDialog:F},showSelectedList:v.value,selectionsManager:C,showIncludeChildNodes:{show:w.value,value:e.includeChildNodesValue},showCascadeControl:de.value,isMaximized:me.value,locales:f,id:e.id},{default:()=>t.createVNode(VD,t.mergeProps(e,{onSearch:q,onNavSelectionsChanged:G,onPageIndexChanged:J,onPageSizeChanged:K,onChangeDialogOptions:ne,onDblClickRow:Z}),null),fav:()=>e.enableFavorite&&t.createVNode(ND,{idField:d.idField,displayType:d.displayType,selectedIds:Me.value,multiSelect:d.multiSelect,showSelections:v.value,treeToList:d.treeToList,onDblClickRow:Z},null)}),s.value==="Popup"&&$()]})}});class AD extends qt{constructor(o,a){super(o,a);X(this,"propertyConfigFilters",{lookup:["dataSource","filterConditions","displayType","idField","multiSelect","showSelections","enableSearchBar","searchAnyField","enableFavorite","enableUserData"],pager:["showLimits","sizeLimits","size"],treeConfig:["cascadeStatus","enableCascade","enableFullTree","expandLevel","loadTreeDataType","navTreeToList","onlySelectLeaf","showCascadeControl","treeToList"],dialog:["title","width","height","showNavigation","navigatorWidth","resizeable","rememberSize","enableEsc","showMaxButton","showCloseButton"]});X(this,"events",VE)}getPropertyConfig(o){const a=new _s("root-component",this.designerHostService),i=a.getLookupConfig(o),r=a.getPageConfig(o.editor),l=a.getTreePropConfig(o.editor),s=a.getDialogPropertyConfig(o),c=this.getEventPropConfig(o),f={type:"object",categories:{lookup:i,treeConfig:l,pager:r,dialog:s}};return this.filterLookupPropertyConfig(f),f.categories.eventsEditor=c,f}filterLookupPropertyConfig(o){Object.keys(o.categories).forEach(a=>{const i=this.propertyConfigFilters[a],r=o.categories[a];Object.keys(r.properties).forEach(l=>{i.includes(l)||delete r.properties[l]})})}getEventPropConfig(o){const a=this,i=a.eventsEditorUtils.formProperties(o,a.viewModelId,this.events);return{title:"事件",hideTitle:!0,properties:a.createBaseEventProperty(i),refreshPanelAfterChanged:!0,tabId:"commands",tabName:"交互",setPropertyRelates(l,s){const c=s.editor,f=l.propertyValue;delete c[a.viewModelId],f&&a.eventsEditorUtils.saveRelatedParameters(c,a.viewModelId,f.events,f),a.events.forEach(u=>{s[u.label]=c[u.label]})}}}}ho.install=e=>{e.component(ho.name,ho)},ho.register=(e,n,o,a,i)=>{e.lookup=ho,n.lookup=gC(i),a.lookup={callbackResolver:uD}},ho.registerDesigner=(e,n,o,a)=>{e.lookup=pD,n.lookup=gC(a)};const xC={injectSymbolToken:{type:Symbol},viewOptions:{type:Array,default:[]},viewType:{type:String,default:"Tabs"},editorParams:{type:Object,default:null},showFooter:{type:Boolean,default:!1},validateFunction:{type:Function,default:null}},RD=new Map([["appearance",rt]]),LD={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/search-box.schema.json",title:"search-box",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for a search-box",type:"string"},type:{description:"The type string of search-box component",type:"string",default:"search-box"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disable:{type:"string",default:!1},editable:{description:"",type:"boolean",default:!0},placeholder:{description:"",type:"string",default:""},readonly:{description:"",type:"boolean",default:!1},require:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},visible:{description:"",type:"boolean",default:!0}},required:["id","type"]};function jD(e,n,o){return n}const _D={title:"search-box",description:"A Farris Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"select",editor:{type:"waiting for modification",enum:[]}}}}}},Yf={buttonContent:{type:String,default:'<i class="f-icon f-icon-search"></i>'},customClass:{type:String,default:""},modelValue:{type:String,default:""},popupHost:{type:Object},popupRightBoundary:{type:Object},popupOffsetX:{type:Object},data:{type:Array,default:[]},placeholder:{type:String,default:"请输入关键词"},idField:{default:"id",type:String},textField:{default:"name",type:String},maxHeight:{default:350,type:Number},loading:{default:!1,type:Boolean},disable:{default:!1,type:Boolean},showDropdown:{default:!0,type:Boolean},updateOn:{default:"change",type:String}},kC=je(Yf,LD,RD,jD,_D),HD={data:{type:Array,default:[]},onConfirmResult:{type:Function,default:()=>{}},onSearchedValue:{type:Function,default:()=>{}},idField:{default:"id",type:String},textField:{default:"name",type:String},maxHeight:{default:350,type:Number},loading:{default:!1,type:Boolean}};function Yr(){function e(){if(typeof navigator>"u"||typeof window>"u"||typeof screen>"u")return!1;const n=navigator.userAgent||navigator.vendor||window.opera,o=[/iPhone/i,/iPod/i,/Android.*Mobile/i,/webOS/i,/BlackBerry/i,/IEMobile/i,/Opera Mini/i],a=[/iPad/i,/Android(?!.*Mobile)/i,/Tablet/i,/PlayBook/i,/Kindle/i,/Silk/i];for(const c of a)if(c.test(n))return!1;for(const c of o)if(c.test(n))return!0;const i="ontouchstart"in window||navigator.maxTouchPoints>0,r=screen.width,l=screen.height,s=Math.min(r,l);return!!(i&&s<=768)}return{isMobilePhone:e}}const WD={showMessage:{type:Boolean,default:!0},message:{type:String,default:"正在加载,请稍候..."},isActive:{type:Boolean,default:!1},width:{type:Number,default:30},type:{type:Number,default:0},target:{type:Object,default:null},targetPosition:{type:String,default:""},delay:{type:Number,default:300}},{isMobilePhone:qD}=Yr(),zD={showMessage:!0,message:qD()?"正在加载...":"正在加载,请稍候...",isActive:!1,width:30,type:0,targetPosition:"",delay:300},UD=['<div class="f-loading-round"></div>',`<div class="f-loading-dot-wrapper">
548
548
  <div class="f-loading-dot">
549
549
  <div class="dot dot1"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@farris/ui-vue",
3
- "version": "1.7.7",
3
+ "version": "1.7.8",
4
4
  "license": "Apache-2.0",
5
5
  "description": "Farris Vue, a Farris Design based Vue3 component library.",
6
6
  "keywords": [