aviator-expression-builder 0.1.0
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.
- package/AviatorExpressionBuilderLegacyModal.vue_vue_type_script_setup_true_lang-CRZlHClr.cjs +9 -0
- package/AviatorExpressionBuilderLegacyModal.vue_vue_type_script_setup_true_lang-CjWgNhEl.js +7608 -0
- package/LICENSE +202 -0
- package/PUBLIC_API.md +50 -0
- package/README.md +368 -0
- package/headless.cjs +2 -0
- package/headless.d.ts +167 -0
- package/headless.js +2317 -0
- package/index.cjs +2 -0
- package/index.d.ts +44 -0
- package/index.js +26 -0
- package/legacy.cjs +2 -0
- package/legacy.d.ts +7 -0
- package/legacy.js +5 -0
- package/package.json +69 -0
- package/plugin-DErT8PJK.cjs +2 -0
- package/plugin-DJOcRfv1.js +38 -0
- package/style.css +182 -0
- package/vue.cjs +2 -0
- package/vue.d.ts +39 -0
- package/vue.js +11 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";const e=require("vue"),_=require("./headless.cjs"),T=require("@arco-design/web-vue"),ve={class:"toolbar"},ye=e.defineComponent({__name:"BuilderToolbar",emits:["add-group","expand-all","collapse-all"],setup(n,{emit:t}){const a=t;return(o,r)=>{const l=e.resolveComponent("icon-folder-add"),i=e.resolveComponent("a-button"),s=e.resolveComponent("icon-expand"),u=e.resolveComponent("icon-shrink"),d=e.resolveComponent("a-space");return e.openBlock(),e.createElementBlock("div",ve,[e.createVNode(d,null,{default:e.withCtx(()=>[e.createVNode(i,{type:"primary",onClick:r[0]||(r[0]=p=>a("add-group"))},{default:e.withCtx(()=>[e.createVNode(l),r[3]||(r[3]=e.createTextVNode("添加分组 "))]),_:1}),e.createVNode(i,{type:"text",onClick:r[1]||(r[1]=p=>a("expand-all"))},{default:e.withCtx(()=>[e.createVNode(s),r[4]||(r[4]=e.createTextVNode("全部展开 "))]),_:1}),e.createVNode(i,{type:"text",onClick:r[2]||(r[2]=p=>a("collapse-all"))},{default:e.withCtx(()=>[e.createVNode(u),r[5]||(r[5]=e.createTextVNode("全部收起 "))]),_:1})]),_:1})])}}}),v=(n,t)=>{const a=n.__vccOpts||n;for(const[o,r]of t)a[o]=r;return a},ge=v(ye,[["__scopeId","data-v-81fe6149"]]),Ve={class:"data-preview"},_e={key:0},Te=e.defineComponent({__name:"DataPreviewPanel",props:{extractedFieldCount:{},hasDataPreview:{type:Boolean},dataSourceInfo:{}},setup(n){return(t,a)=>{const o=e.resolveComponent("a-alert");return e.openBlock(),e.createElementBlock("div",Ve,[t.extractedFieldCount>0?(e.openBlock(),e.createBlock(o,{key:0,type:"success","show-icon":"",closable:""},{title:e.withCtx(()=>a[0]||(a[0]=[e.createTextVNode(" 字段识别成功 ")])),default:e.withCtx(()=>[e.createTextVNode(" 已识别 "+e.toDisplayString(t.extractedFieldCount)+" 个字段 ",1),t.dataSourceInfo?(e.openBlock(),e.createElementBlock("span",_e,",类型分布: "+e.toDisplayString(t.dataSourceInfo),1)):e.createCommentVNode("",!0)]),_:1})):t.hasDataPreview?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(o,{key:1,type:"warning","show-icon":"",closable:""},{title:e.withCtx(()=>a[1]||(a[1]=[e.createTextVNode(" 未提供数据预览 ")])),default:e.withCtx(()=>[a[2]||(a[2]=e.createTextVNode(" 建议传入数据预览,自动推断字段类型。 "))]),_:1}))])}}}),he=v(Te,[["__scopeId","data-v-cc9ceb9b"]]),Ce={class:"expression-preview"},Ne={class:"preview-actions"},Pe=e.defineComponent({__name:"ExpressionPreviewPanel",props:{generatedExpression:{},validating:{type:Boolean},validationResult:{default:null}},emits:["clear","validate","copy","format"],setup(n,{emit:t}){const a=t;return(o,r)=>{const l=e.resolveComponent("a-divider"),i=e.resolveComponent("a-textarea"),s=e.resolveComponent("icon-delete"),u=e.resolveComponent("a-button"),d=e.resolveComponent("icon-check-circle"),p=e.resolveComponent("icon-copy"),c=e.resolveComponent("icon-code"),m=e.resolveComponent("a-space"),g=e.resolveComponent("a-tag");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(l,null,{default:e.withCtx(()=>r[4]||(r[4]=[e.createTextVNode("表达式预览")])),_:1}),e.createElementVNode("div",Ce,[e.createVNode(i,{"model-value":o.generatedExpression,"auto-size":{minRows:3,maxRows:10},readonly:"",placeholder:"生成的 Aviator 表达式会显示在这里"},null,8,["model-value"]),e.createElementVNode("div",Ne,[e.createVNode(m,null,{default:e.withCtx(()=>[e.createVNode(u,{type:"outline",onClick:r[0]||(r[0]=y=>a("clear"))},{default:e.withCtx(()=>[e.createVNode(s),r[5]||(r[5]=e.createTextVNode("清空 "))]),_:1}),e.createVNode(u,{type:"outline",loading:o.validating,onClick:r[1]||(r[1]=y=>a("validate"))},{default:e.withCtx(()=>[e.createVNode(d),r[6]||(r[6]=e.createTextVNode("验证 "))]),_:1},8,["loading"]),e.createVNode(u,{type:"outline",onClick:r[2]||(r[2]=y=>a("copy"))},{default:e.withCtx(()=>[e.createVNode(p),r[7]||(r[7]=e.createTextVNode("复制 "))]),_:1}),e.createVNode(u,{type:"outline",onClick:r[3]||(r[3]=y=>a("format"))},{default:e.withCtx(()=>[e.createVNode(c),r[8]||(r[8]=e.createTextVNode("格式化 "))]),_:1})]),_:1}),o.validationResult?(e.openBlock(),e.createBlock(g,{key:0,color:o.validationResult.success?"green":"red"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.validationResult.success?"表达式可用":o.validationResult.message),1)]),_:1},8,["color"])):e.createCommentVNode("",!0)])])],64)}}}),Fe=v(Pe,[["__scopeId","data-v-a5b5c20b"]]);function be(n){const{emit:t}=n;return{onUpdateNode:(c,m)=>{t("update-node",c,m)},onAddChild:(c,m)=>{t("add-child",c,m)},onRemoveNode:c=>{t("remove-node",c)},onMoveUp:c=>{t("move-up",c)},onMoveDown:c=>{t("move-down",c)},onCopyNode:c=>{t("copy-node",c)},onUpdateParameterType:(c,m)=>{t("update-parameter-type",c,m)},onUpdateParameterValueDataType:(c,m,g)=>{t("update-parameter-value-data-type",c,m,g)},onDragNode:(c,m,g)=>{t("drag-node",c,m,g)}}}function Be(n){const{bindings:t}=n;return{childNodeListeners:{"update-node":t.onUpdateNode,"add-child":t.onAddChild,"remove-node":t.onRemoveNode,"move-up":t.onMoveUp,"move-down":t.onMoveDown,"copy-node":t.onCopyNode,"update-parameter-type":t.onUpdateParameterType,"update-parameter-value-data-type":t.onUpdateParameterValueDataType,"drag-node":t.onDragNode}}}function Ee(n){const t=be(n);return{childNodeListeners:Be({bindings:t}).childNodeListeners}}const xe={key:0,class:"child-nodes"},we=e.defineComponent({__name:"TreeNodeChildren",props:{node:{},availableFields:{},level:{},expectedReturnType:{},getParameterDataType:{type:Function},validationErrors:{}},emits:["update-node","add-child","remove-node","move-up","move-down","copy-node","update-parameter-type","update-parameter-value-data-type","drag-node"],setup(n,{emit:t}){const a=t,{childNodeListeners:o}=Ee({emit:a});return(r,l)=>r.node.type==="group"&&r.node.expanded&&r.node.children&&r.node.children.length>0?(e.openBlock(),e.createElementBlock("div",xe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.node.children,i=>(e.openBlock(),e.createBlock(w,e.mergeProps({key:i.id,node:i,"available-fields":r.availableFields,level:r.level+1,"expected-return-type":r.expectedReturnType,"get-parameter-data-type":r.getParameterDataType,"validation-errors":r.validationErrors},e.toHandlers(e.unref(o))),null,16,["node","available-fields","level","expected-return-type","get-parameter-data-type","validation-errors"]))),128))])):e.createCommentVNode("",!0)}}),De=v(we,[["__scopeId","data-v-36c48cf6"]]),ke=e.defineComponent({__name:"NodeActionCommonButtons",props:{nodeId:{}},emits:["move-up","move-down","copy-node","remove-node"],setup(n,{emit:t}){const a=t;return(o,r)=>{const l=e.resolveComponent("icon-up"),i=e.resolveComponent("a-button"),s=e.resolveComponent("a-tooltip"),u=e.resolveComponent("icon-down"),d=e.resolveComponent("icon-copy"),p=e.resolveComponent("icon-delete");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(s,{content:"上移节点"},{default:e.withCtx(()=>[e.createVNode(i,{type:"text",size:"mini",onClick:r[0]||(r[0]=c=>a("move-up",o.nodeId))},{default:e.withCtx(()=>[e.createVNode(l)]),_:1})]),_:1}),e.createVNode(s,{content:"下移节点"},{default:e.withCtx(()=>[e.createVNode(i,{type:"text",size:"mini",onClick:r[1]||(r[1]=c=>a("move-down",o.nodeId))},{default:e.withCtx(()=>[e.createVNode(u)]),_:1})]),_:1}),e.createVNode(s,{content:"复制节点"},{default:e.withCtx(()=>[e.createVNode(i,{type:"text",size:"mini",onClick:r[2]||(r[2]=c=>a("copy-node",o.nodeId))},{default:e.withCtx(()=>[e.createVNode(d)]),_:1})]),_:1}),e.createVNode(s,{content:"删除节点"},{default:e.withCtx(()=>[e.createVNode(i,{type:"text",size:"mini",status:"danger",onClick:r[3]||(r[3]=c=>a("remove-node",o.nodeId))},{default:e.withCtx(()=>[e.createVNode(p)]),_:1})]),_:1})],64)}}}),Le=e.defineComponent({__name:"NodeActionErrorIndicator",props:{visible:{type:Boolean}},setup(n){return(t,a)=>{const o=e.resolveComponent("icon-exclamation-circle-fill"),r=e.resolveComponent("a-tooltip");return t.visible?(e.openBlock(),e.createBlock(r,{key:0,content:"此节点有验证错误"},{default:e.withCtx(()=>[e.createVNode(o,{style:{color:"#f53f3f",fontSize:"16px",marginLeft:"8px"}})]),_:1})):e.createCommentVNode("",!0)}}}),Se=e.defineComponent({__name:"NodeActionGroupAdd",props:{nodeId:{},nodeType:{}},emits:["add-child"],setup(n,{emit:t}){const a=t;return(o,r)=>{const l=e.resolveComponent("icon-filter"),i=e.resolveComponent("a-button"),s=e.resolveComponent("a-tooltip"),u=e.resolveComponent("icon-folder");return o.nodeType==="group"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createVNode(s,{content:"添加条件"},{default:e.withCtx(()=>[e.createVNode(i,{type:"text",size:"mini",onClick:r[0]||(r[0]=d=>a("add-child",o.nodeId,"condition"))},{default:e.withCtx(()=>[e.createVNode(l)]),_:1})]),_:1}),e.createVNode(s,{content:"添加分组"},{default:e.withCtx(()=>[e.createVNode(i,{type:"text",size:"mini",onClick:r[1]||(r[1]=d=>a("add-child",o.nodeId,"group"))},{default:e.withCtx(()=>[e.createVNode(u)]),_:1})]),_:1})],64)):e.createCommentVNode("",!0)}}});function Ie(n){const{setupResult:t}=n;return{groupAddListeners:t.listeners.groupAddListeners,commonButtonListeners:t.listeners.commonButtonListeners}}function Ue(n){const{emit:t}=n;return{groupAddListeners:{"add-child":(r,l)=>{l!=="function"&&t("add-child",r,l)}},commonButtonListeners:{"move-up":r=>t("move-up",r),"move-down":r=>t("move-down",r),"copy-node":r=>t("copy-node",r),"remove-node":r=>t("remove-node",r)}}}function Ae(n){return{listeners:Ue(n)}}function Me(n){const t=Ae(n);return Ie({setupResult:t})}const Re={key:0,class:"node-actions"},$e=e.defineComponent({__name:"NodeActions",props:{node:{},hideActions:{type:Boolean},hasError:{type:Boolean}},emits:["add-child","move-up","move-down","copy-node","remove-node"],setup(n,{emit:t}){const a=t,{groupAddListeners:o,commonButtonListeners:r}=Me({emit:a});return(l,i)=>l.hideActions?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Re,[e.createVNode(Se,e.mergeProps({"node-id":l.node.id,"node-type":l.node.type},e.toHandlers(e.unref(o))),null,16,["node-id","node-type"]),e.createVNode(ke,e.mergeProps({"node-id":l.node.id},e.toHandlers(e.unref(r))),null,16,["node-id"]),e.createVNode(Le,{visible:!!l.hasError},null,8,["visible"])]))}}),Oe=v($e,[["__scopeId","data-v-b652d1c7"]]),He={key:1,class:"drag-handle"},ze={class:"node-indicator"},Ge=e.defineComponent({__name:"TreeNodeAffordances",props:{node:{},hideActions:{type:Boolean}},emits:["toggle-expanded"],setup(n,{emit:t}){const a=t;return(o,r)=>{const l=e.resolveComponent("icon-down"),i=e.resolveComponent("icon-right"),s=e.resolveComponent("a-button"),u=e.resolveComponent("icon-drag-arrow"),d=e.resolveComponent("icon-filter"),p=e.resolveComponent("icon-thunderbolt"),c=e.resolveComponent("icon-folder");return e.openBlock(),e.createElementBlock(e.Fragment,null,[o.node.type==="group"?(e.openBlock(),e.createBlock(s,{key:0,type:"text",size:"mini",class:"expand-button",onClick:r[0]||(r[0]=m=>a("toggle-expanded"))},{default:e.withCtx(()=>[o.node.expanded?(e.openBlock(),e.createBlock(l,{key:0})):(e.openBlock(),e.createBlock(i,{key:1}))]),_:1})):e.createCommentVNode("",!0),o.hideActions?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",He,[e.createVNode(u)])),e.createElementVNode("div",ze,[o.node.type==="condition"&&!o.node.functionName?(e.openBlock(),e.createBlock(d,{key:0})):o.node.type==="condition"&&o.node.functionName?(e.openBlock(),e.createBlock(p,{key:1})):o.node.type==="group"?(e.openBlock(),e.createBlock(c,{key:2})):e.createCommentVNode("",!0)])],64)}}}),je=v(Ge,[["__scopeId","data-v-2456d071"]]),We={class:"type-option"},qe=e.defineComponent({__name:"InputTypeSelector",props:{modelValue:{},options:{},placeholder:{default:"选择类型"}},emits:["update:model-value"],setup(n,{emit:t}){const a=t;return(o,r)=>{const l=e.resolveComponent("a-option"),i=e.resolveComponent("a-select");return e.openBlock(),e.createBlock(i,{"model-value":o.modelValue,placeholder:o.placeholder,size:"small",style:{width:"80px","flex-shrink":"0"},"onUpdate:modelValue":r[0]||(r[0]=s=>a("update:model-value",s))},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.options,s=>(e.openBlock(),e.createBlock(l,{key:s.value,value:s.value,label:s.label},{default:e.withCtx(()=>[e.createElementVNode("div",We,[e.createElementVNode("span",null,e.toDisplayString(s.label),1)])]),_:2},1032,["value","label"]))),128))]),_:1},8,["model-value","placeholder"])}}}),z=v(qe,[["__scopeId","data-v-b20c3c25"]]),Ye=e.defineComponent({__name:"FieldArrayIndexInput",props:{modelValue:{}},emits:["update:modelValue"],setup(n,{emit:t}){const a=t;return(o,r)=>{const l=e.resolveComponent("a-input-number");return e.openBlock(),e.createBlock(l,{"model-value":o.modelValue,placeholder:"索引",min:0,precision:0,class:"array-index-input","onUpdate:modelValue":r[0]||(r[0]=i=>a("update:modelValue",i))},{prefix:e.withCtx(()=>r[1]||(r[1]=[e.createElementVNode("span",{style:{color:"#86909c"}},"[",-1)])),suffix:e.withCtx(()=>r[2]||(r[2]=[e.createElementVNode("span",{style:{color:"#86909c"}},"]",-1)])),_:1},8,["model-value"])}}}),Xe=v(Ye,[["__scopeId","data-v-e6d54880"]]),Ke={class:"field-option"},Je={key:0,class:"array-hint"},Qe=e.defineComponent({__name:"FieldRefSelector",props:{modelValue:{default:""},availableFields:{},placeholder:{default:"选择字段"},showArrayHint:{type:Boolean,default:!0},resolveFieldTooltip:{},resolveTypeColor:{}},emits:["update:modelValue"],setup(n,{emit:t}){const a=t;return(o,r)=>{const l=e.resolveComponent("icon-link"),i=e.resolveComponent("a-tag"),s=e.resolveComponent("a-tooltip"),u=e.resolveComponent("a-option"),d=e.resolveComponent("a-select");return e.openBlock(),e.createBlock(d,{"model-value":o.modelValue,placeholder:o.placeholder,"allow-search":"","allow-create":"",style:{flex:"1","min-width":"100px","max-width":"240px"},"onUpdate:modelValue":r[0]||(r[0]=p=>a("update:modelValue",p))},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.availableFields,p=>(e.openBlock(),e.createBlock(u,{key:p.value,value:p.value,label:p.label},{default:e.withCtx(()=>[e.createVNode(s,{content:o.resolveFieldTooltip(p),position:"left"},{default:e.withCtx(()=>[e.createElementVNode("div",Ke,[e.createVNode(l),e.createElementVNode("span",null,e.toDisplayString(p.label),1),o.showArrayHint&&p.type==="array"?(e.openBlock(),e.createElementBlock("span",Je,"[i]")):e.createCommentVNode("",!0),p.type?(e.openBlock(),e.createBlock(i,{key:1,size:"mini",color:o.resolveTypeColor(p.type)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(p.type),1)]),_:2},1032,["color"])):e.createCommentVNode("",!0)])]),_:2},1032,["content"])]),_:2},1032,["value","label"]))),128))]),_:1},8,["model-value","placeholder"])}}}),Ze=v(Qe,[["__scopeId","data-v-a5a1c4e7"]]);function et(n){const{state:t,resolvers:a,forwarders:o}=n.setupResult;return{currentFieldValue:t.currentFieldValue,isArrayField:t.isArrayField,resolveFieldTooltip:a.resolveFieldTooltip,resolveTypeColor:a.resolveTypeColor,onUpdateField:o.onUpdateField}}function tt(n){const{emitUpdateField:t}=n;return{onUpdateField:o=>{t(o)}}}function nt(n){return{resolveFieldTooltip:o=>{if(n.getFieldTooltip)return n.getFieldTooltip(o);const r=[o.label];return o.type&&r.push(`类型: ${o.type}`),o.example&&r.push(`示例: ${o.example}`),r.join(`
|
|
2
|
+
`)},resolveTypeColor:o=>n.getTypeColor?n.getTypeColor(o):{string:"blue",number:"green",boolean:"orange",datetime:"magenta",array:"purple",object:"cyan",ip:"gold",email:"lime",url:"arcoblue"}[o]||"default"}}function at(n){const t=e.computed(()=>{if(!n.value)return"";const r=n.value.match(/^(.+)\[(\d+)\]$/);return r?r[1]:n.value}),a=e.computed(()=>n.showArrayIndex?t.value:n.value||""),o=e.computed(()=>{const r=n.availableFields.find(l=>l.value===t.value);return(r==null?void 0:r.type)==="array"});return{baseFieldName:t,currentFieldValue:a,isArrayField:o}}function ot(n){const{props:t,emitUpdateField:a}=n,o=at(t),r=nt(t),l=tt({emitUpdateField:a});return{state:o,resolvers:r,forwarders:l}}function rt(n){const t=ot({props:n.props,emitUpdateField:a=>n.emit("update:field",a)});return et({setupResult:t})}const lt={class:"field-ref-editor"},it={class:"field-selector-row"},st=e.defineComponent({__name:"FieldRefEditor",props:{value:{},availableFields:{},placeholder:{default:"选择字段"},showArrayIndex:{type:Boolean,default:!1},arrayIndex:{},showArrayHint:{type:Boolean,default:!0},getFieldTooltip:{},getTypeColor:{}},emits:["update:field","update:array-index"],setup(n,{emit:t}){const a=n,o=t,{currentFieldValue:r,isArrayField:l,onUpdateField:i,resolveFieldTooltip:s,resolveTypeColor:u}=rt({props:a,emit:o});return(d,p)=>(e.openBlock(),e.createElementBlock("div",lt,[e.createElementVNode("div",it,[e.createVNode(Ze,{"model-value":e.unref(r),"available-fields":d.availableFields,placeholder:d.placeholder,"show-array-hint":d.showArrayHint,"resolve-field-tooltip":e.unref(s),"resolve-type-color":e.unref(u),"onUpdate:modelValue":e.unref(i)},null,8,["model-value","available-fields","placeholder","show-array-hint","resolve-field-tooltip","resolve-type-color","onUpdate:modelValue"]),d.showArrayIndex&&e.unref(l)?(e.openBlock(),e.createBlock(Xe,{key:0,"model-value":d.arrayIndex,"onUpdate:modelValue":p[0]||(p[0]=c=>o("update:array-index",c))},null,8,["model-value"])):e.createCommentVNode("",!0)])]))}}),B=v(st,[["__scopeId","data-v-9124cb3e"]]),dt={},ut={class:"function-hint"};function pt(n,t){const a=e.resolveComponent("icon-info-circle");return e.openBlock(),e.createElementBlock("div",ut,[e.createVNode(a,{style:{color:"#165dff","margin-right":"4px"}}),t[0]||(t[0]=e.createElementVNode("span",{class:"hint-text"},"选择函数计算比较值",-1))])}const ct=v(dt,[["render",pt],["__scopeId","data-v-20a86dc3"]]);function mt(n){const{state:t,listeners:a}=n.setupResult;return{updateValueListeners:a.updateValueListeners,displayDescription:t.displayDescription,fieldPlaceholder:t.fieldPlaceholder,textPlaceholder:t.textPlaceholder,isFieldType:t.isFieldType,isValueType:t.isValueType}}function ft(n){return{updateValueListeners:{"update:model-value":a=>n("update:value",a)}}}function vt(n){const t=e.computed(()=>n.param.description||n.param.name),a=e.computed(()=>`选择${t.value}`),o=e.computed(()=>`输入${t.value}`),r=e.computed(()=>n.param.type==="field"),l=e.computed(()=>n.param.type==="value");return{displayDescription:t,fieldPlaceholder:a,textPlaceholder:o,isFieldType:r,isValueType:l}}function yt(n){const t=vt(n.props),a=ft(n.emit);return{state:t,listeners:a}}function gt(n){const t=yt(n);return mt({setupResult:t})}const Vt=e.defineComponent({__name:"FunctionRefParameterInputBody",props:{param:{},availableFields:{}},emits:["update:value"],setup(n,{emit:t}){const a=n,o=t,{updateValueListeners:r,fieldPlaceholder:l,textPlaceholder:i,isFieldType:s,isValueType:u}=gt({props:a,emit:o});return(d,p)=>{const c=e.resolveComponent("a-textarea"),m=e.resolveComponent("a-option"),g=e.resolveComponent("a-select");return e.unref(u)?(e.openBlock(),e.createBlock(c,e.mergeProps({key:0,"model-value":d.param.value,placeholder:e.unref(i),"auto-size":{minRows:1,maxRows:3},class:"param-input-control"},e.toHandlers(e.unref(r))),null,16,["model-value","placeholder"])):e.unref(s)?(e.openBlock(),e.createBlock(g,e.mergeProps({key:1,"model-value":d.param.value,placeholder:e.unref(l),"allow-search":"",class:"param-input-control"},e.toHandlers(e.unref(r))),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.availableFields,y=>(e.openBlock(),e.createBlock(m,{key:y.value,value:y.value,label:y.label},{default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(y.label),1)]),_:2},1032,["value","label"]))),128))]),_:1},16,["model-value","placeholder"])):(e.openBlock(),e.createBlock(c,e.mergeProps({key:2,"model-value":d.param.value,placeholder:e.unref(i),"auto-size":{minRows:1,maxRows:3},class:"param-input-control"},e.toHandlers(e.unref(r))),null,16,["model-value","placeholder"]))}}}),_t=v(Vt,[["__scopeId","data-v-0ff7deb4"]]),Tt={class:"param-label"},ht={key:0,class:"required"},Ct=e.defineComponent({__name:"FunctionRefParameterLabel",props:{description:{},required:{type:Boolean,default:!1}},setup(n){return(t,a)=>(e.openBlock(),e.createElementBlock("label",Tt,[e.createTextVNode(e.toDisplayString(t.description)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",ht,"*")):e.createCommentVNode("",!0)]))}}),Nt=v(Ct,[["__scopeId","data-v-ae3b942b"]]);function Pt(n){const{panelProps:t,listeners:a}=n.setupResult;return{labelProps:t.labelProps,inputBodyProps:t.inputBodyProps,inputBodyListeners:a.inputBodyListeners}}function Ft(n){return{onUpdateValue:a=>{n("update:parameter",a)}}}function bt(n){const{props:t,forwarders:a}=n;return{inputBodyListeners:{"update:value":r=>{a.onUpdateValue({index:t.index,value:r})}}}}function Bt(n){const t=e.computed(()=>({description:n.param.description||n.param.name,required:n.param.required})),a=e.computed(()=>({param:n.param,availableFields:n.availableFields}));return{labelProps:t,inputBodyProps:a}}function Et(n){const t=Ft(n.emit),a=bt({props:n.props,forwarders:t}),o=Bt(n.props);return{listeners:a,panelProps:o}}function xt(n){const t=Et(n);return Pt({setupResult:t})}const wt={class:"param-input"},Dt=e.defineComponent({__name:"FunctionRefParameterInput",props:{index:{},param:{},availableFields:{}},emits:["update:parameter"],setup(n,{emit:t}){const a=n,o=t,{labelProps:r,inputBodyProps:l,inputBodyListeners:i}=xt({props:a,emit:o});return(s,u)=>(e.openBlock(),e.createElementBlock("div",wt,[e.createVNode(Nt,e.normalizeProps(e.guardReactiveProps(e.unref(r))),null,16),e.createVNode(_t,e.mergeProps(e.unref(l),e.toHandlers(e.unref(i))),null,16)]))}}),kt=v(Dt,[["__scopeId","data-v-67310cfb"]]);function Lt(n){return{onUpdateParameterPayload:n.setupResult.onUpdateParameterPayload}}function St(n){return{onUpdateParameterPayload:a=>{n.emit("update:parameter",a)}}}function It(n){const t=St(n);return Lt({setupResult:t})}const Ut={class:"function-params"},At=e.defineComponent({__name:"FunctionRefParameters",props:{parameters:{default:()=>[]},availableFields:{}},emits:["update:parameter"],setup(n,{emit:t}){const a=t,{onUpdateParameterPayload:o}=It({emit:a});return(r,l)=>(e.openBlock(),e.createElementBlock("div",Ut,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.parameters,(i,s)=>(e.openBlock(),e.createBlock(kt,{key:i.name,index:s,param:i,"available-fields":r.availableFields,"onUpdate:parameter":e.unref(o)},null,8,["index","param","available-fields","onUpdate:parameter"]))),128))]))}}),Mt=v(At,[["__scopeId","data-v-3c7cdd81"]]),Rt={class:"function-preview"},$t={class:"preview-code"},Ot=e.defineComponent({__name:"FunctionRefPreview",props:{expression:{}},setup(n){return(t,a)=>(e.openBlock(),e.createElementBlock("div",Rt,[a[0]||(a[0]=e.createElementVNode("span",{class:"preview-label"},"表达式预览:",-1)),e.createElementVNode("code",$t,e.toDisplayString(t.expression),1)]))}}),Ht=v(Ot,[["__scopeId","data-v-8ea35045"]]),zt={class:"function-option"},Gt={class:"function-name"},jt={class:"function-desc"},Wt=e.defineComponent({__name:"FunctionRefSelector",props:{modelValue:{default:""},categories:{}},emits:["update:modelValue"],setup(n,{emit:t}){const a=t;return(o,r)=>{const l=e.resolveComponent("a-option"),i=e.resolveComponent("a-optgroup"),s=e.resolveComponent("a-select");return e.openBlock(),e.createBlock(s,{"model-value":o.modelValue,placeholder:"选择函数","allow-search":"",style:{flex:"1","min-width":"100px","max-width":"220px"},"onUpdate:modelValue":r[0]||(r[0]=u=>a("update:modelValue",u))},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.categories,u=>(e.openBlock(),e.createBlock(i,{key:u.name,label:u.label},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.functions,d=>(e.openBlock(),e.createBlock(l,{key:d.name,value:d.name,label:d.displayName},{default:e.withCtx(()=>[e.createElementVNode("div",zt,[e.createElementVNode("div",Gt,e.toDisplayString(d.displayName),1),e.createElementVNode("div",jt,e.toDisplayString(d.description),1)])]),_:2},1032,["value","label"]))),128))]),_:2},1032,["label"]))),128))]),_:1},8,["model-value"])}}}),qt=v(Wt,[["__scopeId","data-v-b35c51c7"]]);function Yt(n){const{listeners:t,viewModel:a}=n.setupResult;return{hasSelectedFunction:a.hasSelectedFunction,showParameters:a.showParameters,selectorProps:a.selectorProps,parameterProps:a.parameterProps,previewProps:a.previewProps,selectorListeners:t.selectorListeners,parameterListeners:t.parameterListeners}}function Xt(n){return{onUpdateFunction:o=>n("update:function",o),onUpdateParameter:o=>n("update:parameter",o)}}function Kt(n){const{forwarders:t}=n,a={"update:model-value":t.onUpdateFunction},o={"update:parameter":t.onUpdateParameter};return{selectorListeners:a,parameterListeners:o}}function Jt(n){const t=e.computed(()=>!!n.selectedFunction),a=e.computed(()=>t.value&&n.functionParameters.length>0);return{hasSelectedFunction:t,showParameters:a}}function Qt(n,t){const a=e.computed(()=>({modelValue:n.selectedFunctionName,categories:n.functionCategories})),o=e.computed(()=>({parameters:n.functionParameters,availableFields:n.availableFields})),r=e.computed(()=>({expression:n.functionExpression}));return{hasSelectedFunction:t.hasSelectedFunction,showParameters:t.showParameters,selectorProps:a,parameterProps:o,previewProps:r}}function Zt(n){const{props:t,emit:a}=n,o=Jt(t),r=Xt(a),l=Kt({forwarders:r}),i=Qt(t,o);return{listeners:l,viewModel:i}}function en(n){const t=Zt(n);return Yt({setupResult:t})}const tn={class:"function-ref-editor"},nn={class:"function-selector"},an=e.defineComponent({__name:"FunctionRefEditor",props:{selectedFunctionName:{default:""},functionCategories:{},selectedFunction:{default:null},functionParameters:{},functionExpression:{},availableFields:{}},emits:["update:function","update:parameter"],setup(n,{emit:t}){const a=n,o=t,{hasSelectedFunction:r,showParameters:l,selectorProps:i,parameterProps:s,previewProps:u,selectorListeners:d,parameterListeners:p}=en({props:a,emit:o});return(c,m)=>(e.openBlock(),e.createElementBlock("div",tn,[e.createVNode(ct),e.createElementVNode("div",nn,[e.createVNode(qt,e.mergeProps(e.unref(i),e.toHandlers(e.unref(d))),null,16),e.unref(l)?(e.openBlock(),e.createBlock(Mt,e.mergeProps({key:0},e.unref(s),e.toHandlers(e.unref(p))),null,16)):e.createCommentVNode("",!0),e.unref(r)?(e.openBlock(),e.createBlock(Ht,e.normalizeProps(e.mergeProps({key:1},e.unref(u))),null,16)):e.createCommentVNode("",!0)])]))}}),on=v(an,[["__scopeId","data-v-ff9d9822"]]),G=e.defineComponent({__name:"ConditionDataTypeSwitch",props:{modelValue:{}},emits:["update:modelValue"],setup(n,{emit:t}){const a=t;return(o,r)=>{const l=e.resolveComponent("a-radio"),i=e.resolveComponent("a-radio-group");return e.openBlock(),e.createBlock(i,{"model-value":o.modelValue,size:"small",type:"button",class:"data-type-radio",style:{"flex-shrink":"0","margin-left":"8px"},"onUpdate:modelValue":r[0]||(r[0]=s=>a("update:modelValue",s))},{default:e.withCtx(()=>[e.createVNode(l,{value:"string"},{default:e.withCtx(()=>r[1]||(r[1]=[e.createTextVNode("STR")])),_:1}),e.createVNode(l,{value:"number"},{default:e.withCtx(()=>r[2]||(r[2]=[e.createTextVNode("NUM")])),_:1}),e.createVNode(l,{value:"boolean"},{default:e.withCtx(()=>r[3]||(r[3]=[e.createTextVNode("BOOL")])),_:1})]),_:1},8,["model-value"])}}}),rn={class:"bool-option"},ln={class:"bool-option"},sn=e.defineComponent({__name:"ConditionBooleanSelect",props:{modelValue:{type:[String,Number,Boolean,Array,Object,null]},compact:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(n,{emit:t}){const a=n,o=t,r=l=>l===!0||l===!1||l==="true"||l==="false",i=e.computed(()=>a.modelValue===!1||a.modelValue==="false"?"false":"true"),s=e.computed(()=>a.compact?{flex:1,minWidth:"80px",maxWidth:"150px"}:{flex:1,minWidth:"120px",maxWidth:"150px"});return e.watch(()=>a.modelValue,l=>{r(l)||o("update:modelValue",i.value)},{immediate:!0}),(l,u)=>{const d=e.resolveComponent("icon-check-circle"),p=e.resolveComponent("a-option"),c=e.resolveComponent("icon-close-circle"),m=e.resolveComponent("a-select");return e.openBlock(),e.createBlock(m,{"model-value":i.value,placeholder:"选择布尔值",style:e.normalizeStyle(s.value),"onUpdate:modelValue":u[0]||(u[0]=f=>o("update:modelValue",f))},{default:e.withCtx(()=>[e.createVNode(p,{value:"true",label:"真 (true)"},{default:e.withCtx(()=>[e.createElementVNode("div",rn,[e.createVNode(d,{style:{color:"#00b42a"}}),u[1]||(u[1]=e.createElementVNode("span",null,"真 (true)",-1))])]),_:1}),e.createVNode(p,{value:"false",label:"假 (false)"},{default:e.withCtx(()=>[e.createElementVNode("div",ln,[e.createVNode(c,{style:{color:"#f53f3f"}}),u[2]||(u[2]=e.createElementVNode("span",null,"假 (false)",-1))])]),_:1})]),_:1},8,["model-value","style"])}}}),E=v(sn,[["__scopeId","data-v-9562feb4"]]),dn=e.defineComponent({__name:"ConditionDateTimeInput",props:{modelValue:{}},emits:["update:modelValue"],setup(n,{emit:t}){const a=t;return(o,r)=>{const l=e.resolveComponent("a-date-picker");return e.openBlock(),e.createBlock(l,{"model-value":o.modelValue,"show-time":"",format:"YYYY-MM-DD HH:mm:ss",placeholder:"选择日期时间",style:{width:"200px"},"onUpdate:modelValue":r[0]||(r[0]=i=>a("update:modelValue",i))},null,8,["model-value"])}}}),un={class:"multi-value-input"},pn=e.defineComponent({__name:"ConditionMultiValueInput",props:{modelValue:{default:()=>[]},placeholder:{default:"输入多个值,回车分隔"},tooltip:{default:"多个值用回车分隔"}},emits:["update:modelValue"],setup(n,{emit:t}){const a=t;return(o,r)=>{const l=e.resolveComponent("a-input-tag"),i=e.resolveComponent("icon-info-circle"),s=e.resolveComponent("a-tooltip");return e.openBlock(),e.createElementBlock("div",un,[e.createVNode(l,{"model-value":o.modelValue,placeholder:o.placeholder,"allow-clear":"",style:{width:"250px"},"onUpdate:modelValue":r[0]||(r[0]=u=>a("update:modelValue",u))},null,8,["model-value","placeholder"]),e.createVNode(s,{content:o.tooltip},{default:e.withCtx(()=>[e.createVNode(i,{style:{color:"#86909c","margin-left":"4px"}})]),_:1},8,["content"])])}}}),cn=v(pn,[["__scopeId","data-v-393f4899"]]),S=e.defineComponent({__name:"ConditionTextValueInput",props:{modelValue:{type:[String,Number,Boolean,Array,Object,null]},placeholder:{default:"输入值"},compact:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(n,{emit:t}){const a=n,o=t,r=e.computed(()=>a.compact?{flex:1,minWidth:"80px",maxWidth:"180px"}:{flex:1,minWidth:"100px",maxWidth:"200px"});return(l,i)=>{const s=e.resolveComponent("a-textarea");return e.openBlock(),e.createBlock(s,{"model-value":String(l.modelValue??""),placeholder:l.placeholder,"auto-size":{minRows:1,maxRows:4},style:e.normalizeStyle(r.value),"onUpdate:modelValue":i[0]||(i[0]=u=>o("update:modelValue",u))},null,8,["model-value","placeholder","style"])}}}),mn=e.defineComponent({__name:"ConditionValueFallbackInput",props:{value:{type:[String,Number,Boolean,Array,Object,null]},fieldType:{},valueDataType:{},placeholder:{}},emits:["update:value"],setup(n,{emit:t}){const a=t,o={"update:model-value":r=>a("update:value",r)};return(r,l)=>r.valueDataType==="boolean"?(e.openBlock(),e.createBlock(E,e.mergeProps({key:0,"model-value":r.value},e.toHandlers(o)),null,16,["model-value"])):r.fieldType==="number"?(e.openBlock(),e.createBlock(S,e.mergeProps({key:1,"model-value":r.value,placeholder:r.placeholder,compact:""},e.toHandlers(o)),null,16,["model-value","placeholder"])):(e.openBlock(),e.createBlock(S,e.mergeProps({key:2,"model-value":r.value,placeholder:r.placeholder},e.toHandlers(o)),null,16,["model-value","placeholder"]))}}),fn={class:"null-option"},vn=e.defineComponent({__name:"ConditionNullSelect",props:{modelValue:{type:[String,Number,Boolean,Array,Object,null]}},emits:["update:modelValue"],setup(n,{emit:t}){const a=t;return(o,r)=>{const l=e.resolveComponent("icon-minus-circle"),i=e.resolveComponent("a-option"),s=e.resolveComponent("a-select");return e.openBlock(),e.createBlock(s,{"model-value":o.modelValue||"nil",style:{width:"120px"},"onUpdate:modelValue":r[0]||(r[0]=u=>a("update:modelValue",u))},{default:e.withCtx(()=>[e.createVNode(i,{value:"nil",label:"null"},{default:e.withCtx(()=>[e.createElementVNode("div",fn,[e.createVNode(l,{style:{color:"#86909c"}}),r[1]||(r[1]=e.createElementVNode("span",null,"null",-1))])]),_:1})]),_:1},8,["model-value"])}}}),yn=v(vn,[["__scopeId","data-v-5a53b7bf"]]),gn={class:"url-input"},Vn={key:0,class:"error-message"},_n=e.defineComponent({__name:"ConditionUrlInput",props:{modelValue:{type:[String,Number,Boolean,Array,Object,null]},error:{default:""}},emits:["update:modelValue","blur"],setup(n,{emit:t}){const a=t;return(o,r)=>{const l=e.resolveComponent("a-textarea"),i=e.resolveComponent("icon-exclamation-circle");return e.openBlock(),e.createElementBlock("div",gn,[e.createVNode(l,{"model-value":o.modelValue,placeholder:"请输入URL,如:https://example.com",status:o.error?"error":"normal","auto-size":{minRows:1,maxRows:3},style:{width:"220px"},"onUpdate:modelValue":r[0]||(r[0]=s=>a("update:modelValue",s)),onBlur:r[1]||(r[1]=s=>a("blur"))},null,8,["model-value","status"]),o.error?(e.openBlock(),e.createElementBlock("div",Vn,[e.createVNode(i,{class:"error-icon"}),e.createElementVNode("span",null,e.toDisplayString(o.error),1)])):e.createCommentVNode("",!0)])}}}),Tn=v(_n,[["__scopeId","data-v-7d5a695e"]]);function hn(n){const{panelProps:t,listeners:a}=n.setupResult;return{booleanSelectProps:t.booleanSelectProps,nullSelectProps:t.nullSelectProps,multiValueInputProps:t.multiValueInputProps,urlInputProps:t.urlInputProps,dateTimeInputProps:t.dateTimeInputProps,fallbackInputProps:t.fallbackInputProps,valueListeners:a.valueListeners,multiValueListeners:a.multiValueListeners,dateValueListeners:a.dateValueListeners,urlListeners:a.urlListeners,fallbackListeners:a.fallbackListeners}}function Cn(n){return{valueListeners:{"update:model-value":i=>n("update:value",i)},multiValueListeners:{"update:model-value":i=>n("update:multi-values",i)},dateValueListeners:{"update:model-value":i=>n("update:date-value",i)},urlListeners:{"update:model-value":i=>n("update:value",i),blur:()=>n("blur:url")},fallbackListeners:{"update:value":i=>n("update:value",i)}}}function Nn(n){const t=e.computed(()=>({modelValue:n.value,compact:!0})),a=e.computed(()=>({modelValue:n.value})),o=e.computed(()=>({modelValue:n.multiValues,placeholder:n.multiValuePlaceholder,tooltip:n.multiValueTooltip})),r=e.computed(()=>({modelValue:n.value,error:n.urlError})),l=e.computed(()=>({modelValue:n.dateValue})),i=e.computed(()=>({value:n.value,fieldType:n.fieldType,valueDataType:n.valueDataType,placeholder:n.placeholder}));return{booleanSelectProps:t,nullSelectProps:a,multiValueInputProps:o,urlInputProps:r,dateTimeInputProps:l,fallbackInputProps:i}}function Pn(n){const{props:t,emit:a}=n,o=Nn(t),r=Cn(a);return{panelProps:o,listeners:r}}function Fn(n){const t=Pn(n);return hn({setupResult:t})}const bn=e.defineComponent({__name:"ConditionValueInputSwitch",props:{value:{type:[String,Number,Boolean,Array,Object,null]},fieldType:{},valueDataType:{},isNullComparison:{type:Boolean},isMultiValue:{type:Boolean},multiValues:{},multiValuePlaceholder:{},multiValueTooltip:{},placeholder:{},urlError:{},dateValue:{}},emits:["update:value","update:multi-values","update:date-value","blur:url"],setup(n,{emit:t}){const a=n,o=t,{booleanSelectProps:r,nullSelectProps:l,multiValueInputProps:i,urlInputProps:s,dateTimeInputProps:u,fallbackInputProps:d,valueListeners:p,multiValueListeners:c,dateValueListeners:m,urlListeners:g,fallbackListeners:y}=Fn({props:a,emit:o});return(V,f)=>a.fieldType==="boolean"?(e.openBlock(),e.createBlock(E,e.mergeProps({key:0},e.unref(r),e.toHandlers(e.unref(p))),null,16)):a.isNullComparison?(e.openBlock(),e.createBlock(yn,e.mergeProps({key:1},e.unref(l),e.toHandlers(e.unref(p))),null,16)):a.isMultiValue?(e.openBlock(),e.createBlock(cn,e.mergeProps({key:2},e.unref(i),e.toHandlers(e.unref(c))),null,16)):a.fieldType==="url"?(e.openBlock(),e.createBlock(Tn,e.mergeProps({key:3},e.unref(s),e.toHandlers(e.unref(g))),null,16)):a.fieldType==="datetime"?(e.openBlock(),e.createBlock(dn,e.mergeProps({key:4},e.unref(u),e.toHandlers(e.unref(m))),null,16)):(e.openBlock(),e.createBlock(mn,e.mergeProps({key:5},e.unref(d),e.toHandlers(e.unref(y))),null,16))}});function Bn(n){const{state:t,listeners:a,panelProps:o}=n.setupResult;return{showValueDataTypeSwitch:t.showValueDataTypeSwitch,valueInputSwitchProps:o.valueInputSwitchProps,dataTypeSwitchProps:o.dataTypeSwitchProps,valueInputSwitchListeners:a.valueInputSwitchListeners,dataTypeSwitchListeners:a.dataTypeSwitchListeners}}function En(n){return{onUpdateValue:i=>{n("update:value",i)},onUpdateMultiValues:i=>{n("update:multi-values",i)},onUpdateDateValue:i=>{n("update:date-value",i)},onBlurUrl:()=>{n("blur:url")},onUpdateValueDataType:i=>{n("update:value-data-type",i)}}}function xn(n){const{forwarders:t}=n,a={"update:value":t.onUpdateValue,"update:multi-values":t.onUpdateMultiValues,"update:date-value":t.onUpdateDateValue,"blur:url":t.onBlurUrl},o={"update:modelValue":t.onUpdateValueDataType};return{valueInputSwitchListeners:a,dataTypeSwitchListeners:o}}function wn(n,t){const a=e.computed(()=>({value:n.value,fieldType:n.fieldType,valueDataType:n.valueDataType,isNullComparison:t.isNullComparison.value,isMultiValue:t.isMultiValue.value,multiValues:n.multiValues,multiValuePlaceholder:t.multiValuePlaceholder.value,multiValueTooltip:t.multiValueTooltip.value,placeholder:n.placeholder,urlError:n.urlError,dateValue:n.dateValue})),o=e.computed(()=>({modelValue:n.valueDataType}));return{valueInputSwitchProps:a,dataTypeSwitchProps:o}}function Dn(n){const t=e.computed(()=>n.comparison==="== nil"||n.comparison==="!= nil"),a=e.computed(()=>n.comparison==="in"||n.comparison==="!in"||n.comparison==="belong"||n.comparison==="isIpInNetmaskList"),o=e.computed(()=>n.comparison==="belong"?"输入数组元素,回车分隔":n.comparison==="isIpInNetmaskList"?"输入网段,如 10.128.16.0/20":"输入多个值,回车分隔"),r=e.computed(()=>n.comparison==="belong"?"输入数组元素,回车分隔。将判断字段数组是否包含这些元素中的任意一个":n.comparison==="isIpInNetmaskList"?"输入多个网段(CIDR格式),回车分隔。如:10.128.16.0/20、192.168.1.0/24":"多个值用回车分隔,支持字符串和数字"),l=e.computed(()=>n.showDataTypeSwitch&&n.comparison!=="isIpInNetmaskList");return{isNullComparison:t,isMultiValue:a,multiValuePlaceholder:o,multiValueTooltip:r,showValueDataTypeSwitch:l}}function kn(n){const{props:t,emit:a}=n,o=Dn(t),r=En(a),l=xn({forwarders:r}),i=wn(t,o);return{state:o,listeners:l,panelProps:i}}function Ln(n){const t=kn(n);return Bn({setupResult:t})}const Sn={class:"condition-value-editor"},In=e.defineComponent({__name:"ConditionValueEditor",props:{value:{type:[String,Number,Boolean,Array,Object,null]},fieldType:{},comparison:{},valueDataType:{},placeholder:{default:"输入值"},multiValues:{default:()=>[]},dateValue:{},urlError:{},showDataTypeSwitch:{type:Boolean,default:!0}},emits:["update:value","update:multi-values","update:date-value","blur:url","update:value-data-type"],setup(n,{emit:t}){const a=n,o=t,{showValueDataTypeSwitch:r,valueInputSwitchProps:l,dataTypeSwitchProps:i,valueInputSwitchListeners:s,dataTypeSwitchListeners:u}=Ln({props:a,emit:o});return(d,p)=>(e.openBlock(),e.createElementBlock("div",Sn,[e.createVNode(bn,e.mergeProps(e.unref(l),e.toHandlers(e.unref(s))),null,16),e.unref(r)?(e.openBlock(),e.createBlock(G,e.mergeProps({key:0},e.unref(i),e.toHandlers(e.unref(u))),null,16)):e.createCommentVNode("",!0)]))}}),Un=v(In,[["__scopeId","data-v-22d2f06b"]]),An=e.defineComponent({__name:"ParameterFormatSelect",props:{modelValue:{type:[String,Number,Boolean,Array,Object,null]}},emits:["update:modelValue"],setup(n,{emit:t}){const a=t;return(o,r)=>{const l=e.resolveComponent("a-option"),i=e.resolveComponent("a-optgroup"),s=e.resolveComponent("a-select");return e.openBlock(),e.createBlock(s,{"model-value":o.modelValue,placeholder:"选择日期格式","allow-create":"",style:{flex:"1","min-width":"220px"},"onUpdate:modelValue":r[0]||(r[0]=u=>a("update:modelValue",u))},{default:e.withCtx(()=>[e.createVNode(i,{label:"常用格式"},{default:e.withCtx(()=>[e.createVNode(l,{value:"yyyy-MM-dd HH:mm:ss",label:"年-月-日 时:分:秒"},{default:e.withCtx(()=>r[1]||(r[1]=[e.createElementVNode("div",{class:"format-option"},[e.createElementVNode("span",null,"yyyy-MM-dd HH:mm:ss"),e.createElementVNode("span",{class:"example"},"2024-01-15 14:30:00")],-1)])),_:1}),e.createVNode(l,{value:"yyyy-MM-dd'T'HH:mm:ss.SSSX",label:"ISO格式"},{default:e.withCtx(()=>r[2]||(r[2]=[e.createElementVNode("div",{class:"format-option"},[e.createElementVNode("span",null,"yyyy-MM-dd'T'HH:mm:ss.SSSX"),e.createElementVNode("span",{class:"example"},"2024-01-15T14:30:00.000Z")],-1)])),_:1}),e.createVNode(l,{value:"yyyy-MM-dd'T'HH:mm:ssXXX",label:"时区格式"},{default:e.withCtx(()=>r[3]||(r[3]=[e.createElementVNode("div",{class:"format-option"},[e.createElementVNode("span",null,"yyyy-MM-dd'T'HH:mm:ssXXX"),e.createElementVNode("span",{class:"example"},"2024-01-15T14:30:00+08:00")],-1)])),_:1})]),_:1})]),_:1},8,["model-value"])}}}),Mn=v(An,[["__scopeId","data-v-53988543"]]),Rn=e.defineComponent({__name:"ParameterMultiValueInput",props:{modelValue:{default:()=>[]},placeholder:{default:"输入参数值,回车分隔"}},emits:["update:modelValue"],setup(n,{emit:t}){const a=t;return(o,r)=>{const l=e.resolveComponent("a-input-tag");return e.openBlock(),e.createBlock(l,{"model-value":o.modelValue,placeholder:o.placeholder,"allow-clear":"",style:{flex:"1","min-width":"200px"},"onUpdate:modelValue":r[0]||(r[0]=i=>a("update:modelValue",i))},null,8,["model-value","placeholder"])}}}),$n=e.defineComponent({__name:"ParameterTimezoneSelect",props:{modelValue:{type:[String,Number,Boolean,Array,Object,null]}},emits:["update:modelValue"],setup(n,{emit:t}){const a=t;return(o,r)=>{const l=e.resolveComponent("a-option"),i=e.resolveComponent("a-select");return e.openBlock(),e.createBlock(i,{"model-value":o.modelValue,placeholder:"选择时区","allow-search":"",style:{flex:"1","min-width":"150px"},"onUpdate:modelValue":r[0]||(r[0]=s=>a("update:modelValue",s))},{default:e.withCtx(()=>[e.createVNode(l,{value:"Asia/Shanghai",label:"Asia/Shanghai"},{default:e.withCtx(()=>r[1]||(r[1]=[e.createElementVNode("div",{class:"timezone-option"},[e.createElementVNode("span",null,"Asia/Shanghai"),e.createElementVNode("span",{class:"desc"},"(中国标准时间)")],-1)])),_:1}),e.createVNode(l,{value:"UTC",label:"UTC"},{default:e.withCtx(()=>r[2]||(r[2]=[e.createElementVNode("div",{class:"timezone-option"},[e.createElementVNode("span",null,"UTC"),e.createElementVNode("span",{class:"desc"},"(协调世界时)")],-1)])),_:1}),e.createVNode(l,{value:"America/New_York",label:"America/New_York"},{default:e.withCtx(()=>r[3]||(r[3]=[e.createElementVNode("div",{class:"timezone-option"},[e.createElementVNode("span",null,"America/New_York"),e.createElementVNode("span",{class:"desc"},"(美国东部时间)")],-1)])),_:1})]),_:1},8,["model-value"])}}}),On=v($n,[["__scopeId","data-v-af57a41e"]]),Hn=e.defineComponent({__name:"ParameterTextValueInput",props:{modelValue:{type:[String,Number,Boolean,Array,Object,null]}},emits:["update:modelValue"],setup(n,{emit:t}){const a=t;return(o,r)=>{const l=e.resolveComponent("a-textarea");return e.openBlock(),e.createBlock(l,{"model-value":o.modelValue,"auto-size":{minRows:1,maxRows:4},style:{flex:"1","min-width":"200px"},"onUpdate:modelValue":r[0]||(r[0]=i=>a("update:modelValue",i))},null,8,["model-value"])}}}),zn=e.defineComponent({__name:"ParameterValueFallbackInput",props:{resolvedDisplayValue:{type:[String,Number,Boolean,Array,Object,null]},valueDataType:{}},emits:["update:value"],setup(n,{emit:t}){const a=t,o={"update:model-value":r=>a("update:value",r)};return(r,l)=>r.valueDataType==="boolean"?(e.openBlock(),e.createBlock(E,e.mergeProps({key:0,"model-value":r.resolvedDisplayValue},e.toHandlers(o)),null,16,["model-value"])):(e.openBlock(),e.createBlock(Hn,e.mergeProps({key:1,"model-value":r.resolvedDisplayValue},e.toHandlers(o)),null,16,["model-value"]))}});function Gn(n){const{panelProps:t,listeners:a}=n.setupResult;return{formatSelectProps:t.formatSelectProps,timezoneSelectProps:t.timezoneSelectProps,multiValueInputProps:t.multiValueInputProps,fallbackInputProps:t.fallbackInputProps,valueListeners:a.valueListeners,multiValueListeners:a.multiValueListeners,fallbackListeners:a.fallbackListeners}}function jn(n){return{valueListeners:{"update:model-value":r=>n("update:value",r)},multiValueListeners:{"update:model-value":r=>n("update:multi-values",r)},fallbackListeners:{"update:value":r=>n("update:value",r)}}}function Wn(n){const t=e.computed(()=>({modelValue:n.resolvedDisplayValue})),a=e.computed(()=>({modelValue:n.resolvedDisplayValue})),o=e.computed(()=>({modelValue:n.multiValues,placeholder:n.multiValuePlaceholder})),r=e.computed(()=>({resolvedDisplayValue:n.resolvedDisplayValue,valueDataType:n.valueDataType}));return{formatSelectProps:t,timezoneSelectProps:a,multiValueInputProps:o,fallbackInputProps:r}}function qn(n){const{props:t,emit:a}=n,o=Wn(t),r=jn(a);return{panelProps:o,listeners:r}}function Yn(n){const t=qn(n);return Gn({setupResult:t})}const Xn=e.defineComponent({__name:"ParameterValueInputSwitch",props:{resolvedDisplayValue:{type:[String,Number,Boolean,Array,Object,null]},valueDataType:{},isFormatParameter:{type:Boolean},isTimezoneParameter:{type:Boolean},isMultiValue:{type:Boolean},multiValues:{},multiValuePlaceholder:{}},emits:["update:value","update:multi-values"],setup(n,{emit:t}){const a=n,o=t,{formatSelectProps:r,timezoneSelectProps:l,multiValueInputProps:i,fallbackInputProps:s,valueListeners:u,multiValueListeners:d,fallbackListeners:p}=Yn({props:a,emit:o});return(c,m)=>a.isFormatParameter?(e.openBlock(),e.createBlock(Mn,e.mergeProps({key:0},e.unref(r),e.toHandlers(e.unref(u))),null,16)):a.isTimezoneParameter?(e.openBlock(),e.createBlock(On,e.mergeProps({key:1},e.unref(l),e.toHandlers(e.unref(u))),null,16)):a.isMultiValue?(e.openBlock(),e.createBlock(Rn,e.mergeProps({key:2},e.unref(i),e.toHandlers(e.unref(d))),null,16)):(e.openBlock(),e.createBlock(zn,e.mergeProps({key:3},e.unref(s),e.toHandlers(e.unref(p))),null,16))}});function Kn(n){const{state:t,listeners:a,panelProps:o}=n.setupResult;return{showValueDataTypeSwitch:t.showValueDataTypeSwitch,valueInputSwitchProps:o.valueInputSwitchProps,dataTypeSwitchProps:o.dataTypeSwitchProps,valueInputSwitchListeners:a.valueInputSwitchListeners,dataTypeSwitchListeners:a.dataTypeSwitchListeners}}function Jn(n){return{onUpdateValue:r=>n("update:value",r),onUpdateMultiValues:r=>n("update:multi-values",r),onUpdateValueDataType:r=>n("update:value-data-type",r)}}function Qn(n){const{forwarders:t}=n,a={"update:value":t.onUpdateValue,"update:multi-values":t.onUpdateMultiValues},o={"update:modelValue":t.onUpdateValueDataType};return{valueInputSwitchListeners:a,dataTypeSwitchListeners:o}}function Zn(n,t){const a=e.computed(()=>({resolvedDisplayValue:t.resolvedDisplayValue.value,valueDataType:n.valueDataType,isFormatParameter:t.isFormatParameter.value,isTimezoneParameter:t.isTimezoneParameter.value,isMultiValue:t.isMultiValue.value,multiValues:n.multiValues,multiValuePlaceholder:t.multiValuePlaceholder.value})),o=e.computed(()=>({modelValue:n.valueDataType}));return{valueInputSwitchProps:a,dataTypeSwitchProps:o}}function ea(n){const t=e.computed(()=>n.displayValue!==void 0?n.displayValue:n.value),a=e.computed(()=>n.parameterName==="format"),o=e.computed(()=>n.parameterName==="timezone"),r=e.computed(()=>n.parameterName==="items"||(n.parameterDescription||"").includes("多个")||(n.parameterDescription||"").includes("列表")),l=e.computed(()=>`输入${n.parameterDescription},回车分隔`),i=e.computed(()=>n.showDataTypeSwitch&&n.parameterType!=="field");return{resolvedDisplayValue:t,isFormatParameter:a,isTimezoneParameter:o,isMultiValue:r,multiValuePlaceholder:l,showValueDataTypeSwitch:i}}function ta(n){const{props:t,emit:a}=n,o=ea(t),r=Jn(a),l=Qn({forwarders:r}),i=Zn(t,o);return{state:o,listeners:l,panelProps:i}}function na(n){const t=ta(n);return Kn({setupResult:t})}const aa={class:"parameter-value-editor"},oa=e.defineComponent({__name:"ParameterValueEditor",props:{value:{type:[String,Number,Boolean,Array,Object,null]},displayValue:{type:[String,Number,Boolean,Array,Object,null]},valueDataType:{},multiValues:{default:()=>[]},parameterName:{},parameterDescription:{default:"参数值"},parameterType:{},showDataTypeSwitch:{type:Boolean,default:!0}},emits:["update:value","update:multi-values","update:value-data-type"],setup(n,{emit:t}){const a=n,o=t,{showValueDataTypeSwitch:r,valueInputSwitchProps:l,dataTypeSwitchProps:i,valueInputSwitchListeners:s,dataTypeSwitchListeners:u}=na({props:a,emit:o});return(d,p)=>(e.openBlock(),e.createElementBlock("div",aa,[e.createVNode(Xn,e.mergeProps(e.unref(l),e.toHandlers(e.unref(s))),null,16),e.unref(r)?(e.openBlock(),e.createBlock(G,e.mergeProps({key:0},e.unref(i),e.toHandlers(e.unref(u))),null,16)):e.createCommentVNode("",!0)]))}}),ra=v(oa,[["__scopeId","data-v-ff6f11ca"]]);function la(n){const{state:t,panelProps:a,listeners:o}=n.setupResult;return{isConditionMode:t.isConditionMode,conditionEditorProps:a.conditionEditorProps,parameterEditorProps:a.parameterEditorProps,conditionEditorListeners:o.conditionEditorListeners,parameterEditorListeners:o.parameterEditorListeners}}function ia(n){const t=u=>n("update:value",u),a=u=>n("update:multi-values",u),o=u=>n("update:date-value",u),r=()=>n("blur:url"),l=u=>n("update:value-data-type",u);return{conditionEditorListeners:{"update:value":t,"update:multi-values":a,"update:date-value":o,"blur:url":r,"update:value-data-type":l},parameterEditorListeners:{"update:value":t,"update:multi-values":a,"update:value-data-type":l}}}function sa(n){const t=e.computed(()=>({value:n.value,fieldType:n.fieldType,comparison:n.comparison,valueDataType:n.valueDataType,placeholder:n.placeholder,multiValues:n.multiValues,dateValue:n.dateValue,urlError:n.urlError,showDataTypeSwitch:n.showDataTypeSwitch})),a=e.computed(()=>({value:n.value,displayValue:n.displayValue,valueDataType:n.valueDataType,multiValues:n.multiValues,parameterName:n.parameterName,parameterDescription:n.parameterDescription,parameterType:n.parameterType,showDataTypeSwitch:n.showDataTypeSwitch}));return{conditionEditorProps:t,parameterEditorProps:a}}function da(n){return{isConditionMode:e.computed(()=>n.mode==="condition")}}function ua(n){const{props:t,emit:a}=n,o=da(t),r=sa(t),l=ia(a);return{state:o,panelProps:r,listeners:l}}function pa(n){const t=ua(n);return la({setupResult:t})}const j=e.defineComponent({__name:"ValueEditor",props:{mode:{default:"condition"},value:{type:[String,Number,Boolean,Array,Object,null]},displayValue:{type:[String,Number,Boolean,Array,Object,null]},fieldType:{},comparison:{},valueDataType:{},placeholder:{default:"输入值"},multiValues:{default:()=>[]},dateValue:{},urlError:{},parameterName:{},parameterDescription:{default:"参数值"},parameterType:{},showDataTypeSwitch:{type:Boolean,default:!0}},emits:["update:value","update:multi-values","update:date-value","blur:url","update:value-data-type"],setup(n,{emit:t}){const a=n,o=t,{isConditionMode:r,conditionEditorProps:l,parameterEditorProps:i,conditionEditorListeners:s,parameterEditorListeners:u}=pa({props:a,emit:o});return(d,p)=>e.unref(r)?(e.openBlock(),e.createBlock(Un,e.mergeProps({key:0},e.unref(l),e.toHandlers(e.unref(s))),null,16)):(e.openBlock(),e.createBlock(ra,e.mergeProps({key:1},e.unref(i),e.toHandlers(e.unref(u))),null,16))}});function ca(n){const{state:t,panelProps:a,listeners:o}=n.setupResult;return{isValueMode:t.isValueMode,isFieldMode:t.isFieldMode,isFunctionMode:t.isFunctionMode,valueEditorProps:a.valueEditorProps,fieldRefEditorProps:a.fieldRefEditorProps,functionRefEditorProps:a.functionRefEditorProps,valueEditorListeners:o.valueEditorListeners,fieldRefListeners:o.fieldRefListeners,functionRefListeners:o.functionRefListeners}}function ma(n){return{onUpdateField:o=>n("update:field",o),onUpdateArrayIndex:o=>n("update:array-index",o)}}function fa(n){return{onUpdateFunction:o=>n("update:function",o),onUpdateParameter:o=>n("update:parameter",o)}}function va(n){return{onUpdateType:a=>n("update:type",a)}}function ya(n){return{onUpdateValue:i=>n("update:value",i),onUpdateMultiValues:i=>n("update:multi-values",i),onUpdateDateValue:i=>n("update:date-value",i),onBlurUrl:()=>n("blur:url"),onUpdateValueDataType:i=>n("update:value-data-type",i)}}function ga(n){const{typeForwarders:t,valueForwarders:a,fieldForwarders:o,functionForwarders:r}=n;return{onUpdateType:t.onUpdateType,onUpdateValue:a.onUpdateValue,onUpdateMultiValues:a.onUpdateMultiValues,onUpdateDateValue:a.onUpdateDateValue,onBlurUrl:a.onBlurUrl,onUpdateValueDataType:a.onUpdateValueDataType,onUpdateField:o.onUpdateField,onUpdateArrayIndex:o.onUpdateArrayIndex,onUpdateFunction:r.onUpdateFunction,onUpdateParameter:r.onUpdateParameter}}function W(n){const t=va(n),a=ya(n),o=ma(n),r=fa(n);return ga({typeForwarders:t,valueForwarders:a,fieldForwarders:o,functionForwarders:r})}function q(n){return{"update:value":n.onUpdateValue,"update:multi-values":n.onUpdateMultiValues,"update:date-value":n.onUpdateDateValue,"blur:url":n.onBlurUrl,"update:value-data-type":n.onUpdateValueDataType,"update:field":n.onUpdateField,"update:array-index":n.onUpdateArrayIndex,"update:function":n.onUpdateFunction,"update:parameter":n.onUpdateParameter}}function Va(n){return{"update:value":n["update:value"],"update:multi-values":n["update:multi-values"],"update:date-value":n["update:date-value"],"blur:url":n["blur:url"],"update:value-data-type":n["update:value-data-type"]}}function _a(n){return{"update:field":n["update:field"],"update:array-index":n["update:array-index"]}}function Ta(n){return{"update:function":n["update:function"],"update:parameter":n["update:parameter"]}}function ha(n){return _a(n)}function Ca(n){return Ta(n)}function Na(n){return Va(n)}function Pa(n){const t=q(n),a=Na(t),o=ha(t),r=Ca(t);return{valueEditorListeners:a,fieldRefListeners:o,functionRefListeners:r}}function Fa(n){return e.computed(()=>({value:String(n.value||""),availableFields:n.availableFields||[],showArrayIndex:!0,arrayIndex:n.valueArrayIndex,showArrayHint:!0,getFieldTooltip:n.getFieldTooltip,getTypeColor:n.getFieldTypeColor}))}function ba(n){return e.computed(()=>({selectedFunctionName:n.selectedFunctionName,functionCategories:n.functionCategories,selectedFunction:n.selectedFunction,functionParameters:n.functionParameters,availableFields:n.availableFields||[],functionExpression:n.functionExpression}))}function Ba(n){return e.computed(()=>({mode:"condition",value:n.value,fieldType:n.fieldType,comparison:n.comparison,valueDataType:n.valueDataType,placeholder:n.placeholder,multiValues:n.multiValues,dateValue:n.dateValue,urlError:n.urlError,showDataTypeSwitch:!0}))}function Ea(n){const t=Ba(n),a=Fa(n),o=ba(n);return{valueEditorProps:t,fieldRefEditorProps:a,functionRefEditorProps:o}}function xa(n){const t=e.computed(()=>n.currentInputType==="value"),a=e.computed(()=>n.currentInputType==="field"),o=e.computed(()=>n.currentInputType==="function");return{isValueMode:t,isFieldMode:a,isFunctionMode:o}}function wa(n){const t=xa(n.props),a=W(n.emit),o=Pa(a),r=Ea(n.props);return{state:t,listeners:o,panelProps:r}}function Da(n){const t=wa(n);return ca({setupResult:t})}const ka=e.defineComponent({__name:"ValueInputPanelBody",props:{currentInputType:{},valueTypeOptions:{},value:{type:[String,Number,Boolean,Array,Object,null]},fieldType:{},comparison:{},availableFields:{},valueDataType:{},placeholder:{},multiValues:{},dateValue:{},urlError:{},valueArrayIndex:{},getFieldTypeColor:{type:Function},getFieldTooltip:{type:Function},selectedFunctionName:{},functionCategories:{},selectedFunction:{},functionParameters:{},functionExpression:{}},emits:["update:type","update:value","update:multi-values","update:date-value","blur:url","update:value-data-type","update:field","update:array-index","update:function","update:parameter"],setup(n,{emit:t}){const a=n,o=t,{isValueMode:r,isFieldMode:l,isFunctionMode:i,valueEditorProps:s,fieldRefEditorProps:u,functionRefEditorProps:d,valueEditorListeners:p,fieldRefListeners:c,functionRefListeners:m}=Da({props:a,emit:o});return(g,y)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.unref(r)?(e.openBlock(),e.createBlock(j,e.mergeProps({key:0},e.unref(s),e.toHandlers(e.unref(p))),null,16)):e.createCommentVNode("",!0),e.unref(l)?(e.openBlock(),e.createBlock(B,e.mergeProps({key:1},e.unref(u),e.toHandlers(e.unref(c))),null,16)):e.createCommentVNode("",!0),e.unref(i)?(e.openBlock(),e.createBlock(on,e.mergeProps({key:2},e.unref(d),e.toHandlers(e.unref(m))),null,16)):e.createCommentVNode("",!0)],64))}});function La(n){return{selectorProps:n.setupResult.panelProps.selectorProps,panelBodyProps:n.setupResult.panelProps.panelBodyProps,typeSelectorListeners:n.setupResult.listeners.typeSelectorListeners,panelBodyListeners:n.setupResult.listeners.panelBodyListeners}}function Sa(n){return q(n)}function Ia(n){return{"update:model-value":n.onUpdateType}}function Ua(n){const t=Ia(n),a=Sa(n);return{typeSelectorListeners:t,panelBodyListeners:a}}function Aa(n){return e.computed(()=>n)}function Ma(n){return e.computed(()=>({modelValue:n.currentInputType,options:n.valueTypeOptions,placeholder:"值类型"}))}function Ra(n){const{props:t}=n,a=Ma(t),o=Aa(t);return{selectorProps:a,panelBodyProps:o}}function $a(n){const t=W(n.emit),a=Ua(t);return{panelProps:Ra({props:n.props}),listeners:a}}function Oa(n){const t=$a(n);return La({setupResult:t})}const Ha={class:"value-input-wrapper"},za=e.defineComponent({__name:"ValueInputSwitchPanel",props:{currentInputType:{},valueTypeOptions:{},value:{type:[String,Number,Boolean,Array,Object,null]},fieldType:{},comparison:{},availableFields:{},valueDataType:{},placeholder:{},multiValues:{},dateValue:{},urlError:{},valueArrayIndex:{},getFieldTypeColor:{type:Function},getFieldTooltip:{type:Function},selectedFunctionName:{},functionCategories:{},selectedFunction:{},functionParameters:{},functionExpression:{}},emits:["update:type","update:value","update:multi-values","update:date-value","blur:url","update:value-data-type","update:field","update:array-index","update:function","update:parameter"],setup(n,{emit:t}){const a=n,o=t,{selectorProps:r,panelBodyProps:l,typeSelectorListeners:i,panelBodyListeners:s}=Oa({props:a,emit:o});return(u,d)=>(e.openBlock(),e.createElementBlock("div",Ha,[e.createVNode(z,e.mergeProps(e.unref(r),e.toHandlers(e.unref(i))),null,16),e.createVNode(ka,e.mergeProps(e.unref(l),e.toHandlers(e.unref(s))),null,16)]))}}),Ga=v(za,[["__scopeId","data-v-f22270ea"]]),ja={class:"compound-operator-info"},Wa={class:"compound-text"},qa=e.defineComponent({__name:"CompoundOperatorInfo",props:{comparison:{}},setup(n){return(t,a)=>(e.openBlock(),e.createElementBlock("div",ja,[e.createElementVNode("span",Wa,e.toDisplayString(t.comparison),1)]))}}),Ya=v(qa,[["__scopeId","data-v-94adf787"]]);function Xa(n){const{isCompoundOperator:t,listeners:a,switchPanelProps:o}=n.setupResult;return{isCompoundOperator:t,switchPanelProps:o,switchPanelListeners:a.switchPanelListeners}}function Ka(n){const{valueActions:t,typeActions:a,fieldActions:o,functionActions:r}=n;return{updateValue:t.updateValue,updateMultiValues:t.updateMultiValues,updateDateValue:t.updateDateValue,validateURL:t.validateURL,changeValueDataType:t.changeValueDataType,changeValueType:a.changeValueType,updateBaseField:o.updateBaseField,updateValueArrayIndex:o.updateValueArrayIndex,updateFunction:r.updateFunction,updateParameter:r.updateParameter,generateFunctionExpression:r.generateFunctionExpression}}function Ja(n,t){const{props:a,emitUpdateValue:o}=t;return{updateBaseField:i=>{if(!a.availableFields)return;const s=a.availableFields.find(d=>d.value===i);let u=i;(s==null?void 0:s.type)==="array"&&!/\[\d+\]$/.test(i)&&(u=`${i}[0]`),o(u)},updateValueArrayIndex:i=>{const s=n.getBaseFieldName();if(!s)return;const u=i!==void 0?`${s}[${i}]`:s;o(u)}}}function Qa(n,t){const{emitUpdateValue:a}=t;return{updateFunction:i=>{const s=n.functionRefController.selectFunction(i);s&&a(s)},updateParameter:(i,s)=>{const u=n.functionRefController.setParameter(i,s);a(u)},generateFunctionExpression:()=>n.functionRefController.buildExpression()}}function Za(n,t){const a=n.getValueInputType(),{value:o}=t.props;o&&(a==="value"&&(n.savedStringValue.value=String(o)),a==="field"&&(n.savedFieldValue.value=String(o)),a==="function"&&(n.savedFunctionValue.value=String(o)))}function eo(n){let t=n.savedStringValue.value||"";const a=n.getValueDataType();if(a==="number")return t&&!Number.isNaN(Number(t))&&String(t).trim()!==""&&(t=Number(t)),t;if(a==="string")return String(t);const o=String(t);return o&&!Number.isNaN(Number(o))&&o.trim()!==""?Number(o):o==="true"||o==="false"?o==="true":t}function to(n,t){const{availableFields:a}=t.props;let o=n.savedFieldValue.value;return(!o||!(a!=null&&a.some(r=>r.value===o)))&&(o=a!=null&&a.length?a[0].value:""),o}function no(n,t){let a=n.savedFunctionValue.value||t.props.value;return n.functionRefController.initializeFromExpression(a)||(a="string.length(field_name)",n.functionRefController.initializeFromExpression(a)),a}function ao(n,t,a){return n==="value"?eo(t):n==="field"?to(t,a):no(t,a)}function oo(n,t){const{emitUpdateValue:a,emitUpdateType:o}=t;return{changeValueType:l=>{Za(n,t),n.userSelectedType.value=l,o(l),a(ao(l,n,t))}}}const ro=[{value:"value",label:"值"},{value:"field",label:"字段"},{value:"function",label:"函数"}],lo=new Set(["== nil","!= nil","== ''","!= ''"]),io={string:"blue",number:"green",boolean:"orange",datetime:"purple",ip:"cyan",email:"magenta",url:"lime",array:"gold",object:"gray"};function so(n){return n&&io[n]||"default"}function uo(n){switch(n){case"string":return"输入文本";case"email":return"输入邮箱地址";case"url":return"输入URL地址";case"uuid":return"输入UUID";default:return"输入值"}}function Y(n){if(typeof n!="string"||!n)return"";const t=n.match(/^([a-z_][\w.]*)(\[[^\]]+\])?$/i);return t?t[1]:n}function po(n){if(typeof n!="string"||!n)return;const t=n.match(/\[(\d+)\]$/);return t?Number.parseInt(t[1],10):void 0}function co(n){return n.type==="array"?`${n.label} (数组) - 可输入索引访问元素,例如: ${n.value}[0]`:`字段: ${n.label} (${n.type})`}function mo(n){const t={system:{name:"system",label:"系统函数",functions:[]},string:{name:"string",label:"字符串函数",functions:[]},math:{name:"math",label:"数学函数",functions:[]},sequence:{name:"sequence",label:"集合函数",functions:[]},datetime:{name:"datetime",label:"日期时间函数",functions:[]},custom:{name:"custom",label:"安全检查函数",functions:[]}};return n.forEach(a=>{t[a.category]&&t[a.category].functions.push(a)}),Object.values(t).filter(a=>a.functions.length>0)}const fo=/^-?\d+(\.\d+)?$/;function vo(n){if(typeof n!="string"||!n)return"";const t=n.match(/^([a-z_][\w.]*)\s*\(/i);return t?t[1]:""}function x(n,t){return n&&t.find(a=>a.name===n)||null}function yo(n,t){return t==="field"?n:typeof n=="string"&&!fo.test(n)?`"${n}"`:n}function go(n){return n?lo.has(n):!1}function Vo(n){const{explicitType:t,value:a,valueIsLiteral:o,availableFields:r,functions:l}=n;if(_o(t))return t;if(o===!0)return"value";const i=typeof a=="string"?a:"";if(i&&(r!=null&&r.some(s=>s.value===i)))return"field";if(i&&/^[a-z_][\w.]*\[[^\]]+\]/i.test(i)){const s=Y(i);if(s&&(r!=null&&r.some(u=>u.value===s)))return"field"}if(i){const s=i.match(/^([a-z_][\w.]*)\s*\(/i);if(s){const u=s[1];if(l.some(d=>d.name===u))return"function"}}return"value"}function _o(n){return n==="value"||n==="field"||n==="function"}const I="URL格式不正确,请输入有效的URL地址",To=new Set(["http:","https:","ftp:"]);function ho(n){if(typeof n!="string"||!n)return"";try{const t=new URL(n);return To.has(t.protocol)?"":"URL协议必须是 http、https 或 ftp"}catch{if(!n.includes("://"))try{return new URL(`http://${n}`),""}catch{return I}return I}}const Co="string",No="condition_value";function Po(n){return n||Co}function Fo(n){return n||No}function bo(n){if(!n||typeof n!="string"&&typeof n!="number"&&!(n instanceof Date))return;const t=new Date(n);if(!Number.isNaN(t.getTime()))return t}function Bo(n){return Array.isArray(n)?n.map(t=>String(t)).filter(t=>t!==""):typeof n=="string"?n.split(",").map(t=>t.trim()).filter(t=>t):[]}function Eo(n,t){const{props:a,emitUpdateValue:o}=t;return{updateValue:d=>{o(d)},updateMultiValues:d=>{o(d)},updateDateValue:d=>{o(d?d.toISOString():"")},validateURL:()=>{n.urlError.value=ho(a.value)},changeValueDataType:d=>{n.userSelectedValueDataType.value=d,a.value!==void 0&&a.value!==null&&a.value!==""&&o(a.value)}}}function xo(n,t){const a=Eo(n,t),o=oo(n,t),r=Ja(n,t),l=Qa(n,t);return Ka({valueActions:a,typeActions:o,fieldActions:r,functionActions:l})}function wo(n,t){return{selectedFunctionName:n.functionRefController.selectedFunctionName,functionParameters:n.functionRefController.functionParameters,functionCategories:n.functionRefController.functionCategories,selectedFunction:n.functionRefController.selectedFunction,dateValue:n.dateValue,multiValues:n.multiValues,urlError:n.urlError,getPlaceholder:n.getPlaceholder,isCompoundOperator:n.isCompoundOperator,getFieldTypeColor:n.getFieldTypeColor,getValueInputType:n.getValueInputType,getAvailableValueTypes:n.getAvailableValueTypes,getValueDataType:n.getValueDataType,getValueArrayIndex:n.getValueArrayIndex,getFieldTooltipForValue:n.getFieldTooltipForValue,updateValue:t.updateValue,updateMultiValues:t.updateMultiValues,updateDateValue:t.updateDateValue,validateURL:t.validateURL,changeValueDataType:t.changeValueDataType,changeValueType:t.changeValueType,updateBaseField:t.updateBaseField,updateValueArrayIndex:t.updateValueArrayIndex,updateFunction:t.updateFunction,updateParameter:t.updateParameter,generateFunctionExpression:t.generateFunctionExpression}}function U(n){return n.parameters.map(t=>({...t,value:void 0,type:"value"}))}function Do(n,t){const a=vo(n);return x(a,t)}function ko(n){const{functions:t,selectedFunctionName:a,functionParameters:o,selectedFunction:r}=n,l=d=>{const p=Do(d,t);return p?(a.value=p.name,o.value=U(p),!0):!1},i=()=>{if(!r.value)return"";const d=o.value.filter(p=>p.value!==void 0&&p.value!=="").map(p=>yo(p.value,p.type)).join(", ");return`${r.value.name}(${d})`};return{initializeFromExpression:l,buildExpression:i,selectFunction:d=>{const p=x(d,t);return p?(a.value=d,o.value=U(p),i()):""},setParameter:(d,p)=>(o.value[d]&&(o.value[d]={...o.value[d],value:p}),i())}}function Lo(n){const{selectedFunctionName:t,functionParameters:a,functionCategories:o,selectedFunction:r,actions:l}=n;return{selectedFunctionName:t,functionParameters:a,functionCategories:o,selectedFunction:r,initializeFromExpression:l.initializeFromExpression,buildExpression:l.buildExpression,selectFunction:l.selectFunction,setParameter:l.setParameter}}function So(n){const{functions:t}=n,a=e.ref(""),o=e.ref([]),r=e.computed(()=>mo(t)),l=e.computed(()=>a.value?x(a.value,t):null),i=ko({functions:t,selectedFunctionName:a,functionParameters:o,selectedFunction:l});return Lo({selectedFunctionName:a,functionParameters:o,functionCategories:r,selectedFunction:l,actions:i})}function Io(n){const{props:t,emitUpdateValueDataType:a}=n,o=e.ref(Po(t.currentDataType));e.watch(()=>t.currentDataType,i=>{o.value=Po(i)},{immediate:!0});const r=e.computed({get:()=>o.value,set:i=>{o.value=i,a(Fo(t.fieldName),i)}}),l=e.computed(()=>bo(t.value)),i=e.computed(()=>Bo(t.value));return{userSelectedValueDataType:r,dateValue:l,multiValues:i}}function Uo(n){const{refsState:t,computedState:a,functionRefController:o,queries:r}=n;return{userSelectedType:t.userSelectedType,savedStringValue:t.savedStringValue,savedFieldValue:t.savedFieldValue,savedFunctionValue:t.savedFunctionValue,urlError:t.urlError,userSelectedValueDataType:a.userSelectedValueDataType,dateValue:a.dateValue,multiValues:a.multiValues,functionRefController:o,getPlaceholder:r.getPlaceholder,isCompoundOperator:r.isCompoundOperator,getFieldTypeColor:r.getFieldTypeColor,getValueInputType:r.getValueInputType,getAvailableValueTypes:r.getAvailableValueTypes,getValueDataType:r.getValueDataType,getBaseFieldName:r.getBaseFieldName,getValueArrayIndex:r.getValueArrayIndex,getFieldTooltipForValue:r.getFieldTooltipForValue,syncFunctionStateFromValue:r.syncFunctionStateFromValue}}function Ao(n){const{props:t,functions:a,userSelectedType:o,userSelectedValueDataType:r,functionRefController:l}=n,i=()=>uo(t.fieldType),s=()=>go(t.comparison),u=f=>so(f),d=()=>Vo({explicitType:o.value,value:t.value,valueIsLiteral:t.valueIsLiteral,availableFields:t.availableFields,functions:a});return{getPlaceholder:i,isCompoundOperator:s,getFieldTypeColor:u,getValueInputType:d,getAvailableValueTypes:()=>ro,getValueDataType:()=>r.value,getBaseFieldName:()=>Y(t.value),getValueArrayIndex:()=>po(t.value),getFieldTooltipForValue:f=>co(f),syncFunctionStateFromValue:()=>{d()==="function"&&l.initializeFromExpression(t.value)}}}function Mo(){const n=e.ref(null),t=e.ref(""),a=e.ref(""),o=e.ref(""),r=e.ref("");return{userSelectedType:n,savedStringValue:t,savedFieldValue:a,savedFunctionValue:o,urlError:r}}function Ro(n){const{props:t,emitUpdateValueDataType:a}=n,o=Mo(),r=Io({props:t,emitUpdateValueDataType:a}),l=So({functions:_.AVIATOR_FUNCTIONS}),i=Ao({props:t,functions:_.AVIATOR_FUNCTIONS,userSelectedType:o.userSelectedType,userSelectedValueDataType:r.userSelectedValueDataType,functionRefController:l});return Uo({refsState:o,computedState:r,functionRefController:l,queries:i})}function $o(n){const{props:t,state:a}=n;e.watch(()=>t.value,()=>{a.syncFunctionStateFromValue()},{immediate:!0})}function Oo(n){const t=Ro({props:n.props,emitUpdateValueDataType:n.emitUpdateValueDataType}),a=xo(t,{props:n.props,emitUpdateValue:n.emitUpdateValue,emitUpdateType:n.emitUpdateType});return $o({props:n.props,state:t}),wo(t,a)}function Ho(n){return{switchPanelListeners:{"update:type":n.changeValueType,"update:value":n.updateValue,"update:multi-values":n.updateMultiValues,"update:date-value":n.updateDateValue,"blur:url":n.validateURL,"update:value-data-type":n.changeValueDataType,"update:field":n.updateBaseField,"update:array-index":n.updateValueArrayIndex,"update:function":n.updateFunction,"update:parameter":n.onUpdateParameter}}}function zo(n){const{props:t,controller:a,state:o}=n;return{currentInputType:o.currentInputType.value,valueTypeOptions:o.valueTypeOptions.value,value:t.value,fieldType:t.fieldType,comparison:t.comparison,availableFields:t.availableFields,valueDataType:a.getValueDataType(),placeholder:a.getPlaceholder(),multiValues:e.unref(a.multiValues),dateValue:e.unref(a.dateValue),urlError:e.unref(a.urlError),valueArrayIndex:a.getValueArrayIndex(),getFieldTypeColor:a.getFieldTypeColor,getFieldTooltip:a.getFieldTooltipForValue}}function Go(n){const{baseProps:t,functionProps:a}=n;return{currentInputType:t.currentInputType,valueTypeOptions:t.valueTypeOptions,value:t.value,fieldType:t.fieldType,comparison:t.comparison,availableFields:t.availableFields,valueDataType:t.valueDataType,placeholder:t.placeholder,multiValues:t.multiValues,dateValue:t.dateValue,urlError:t.urlError,valueArrayIndex:t.valueArrayIndex,getFieldTypeColor:t.getFieldTypeColor,getFieldTooltip:t.getFieldTooltip,selectedFunctionName:a.selectedFunctionName,functionCategories:a.functionCategories,selectedFunction:a.selectedFunction,functionParameters:a.functionParameters,functionExpression:a.functionExpression}}function jo(n){const{controller:t,state:a}=n;return{selectedFunctionName:e.unref(t.selectedFunctionName),functionCategories:e.unref(t.functionCategories),selectedFunction:e.unref(t.selectedFunction),functionParameters:e.unref(t.functionParameters),functionExpression:a.functionExpression.value}}function Wo(n){return e.computed(()=>{const t=zo(n),a=jo(n);return Go({baseProps:t,functionProps:a})})}function qo(n){const{controller:t}=n,a=e.computed(()=>t.getValueInputType()),o=e.computed(()=>t.getAvailableValueTypes()),r=e.computed(()=>t.generateFunctionExpression());return{currentInputType:a,valueTypeOptions:o,functionExpression:r,onUpdateParameter:({index:i,value:s})=>{t.updateParameter(i,s)}}}function Yo(n){const t=Oo({props:n.props,emitUpdateValue:n.emitUpdateValue,emitUpdateType:n.emitUpdateType,emitUpdateValueDataType:n.emitUpdateValueDataType}),a=qo({controller:t}),o=Ho({changeValueType:t.changeValueType,updateValue:t.updateValue,updateMultiValues:t.updateMultiValues,updateDateValue:t.updateDateValue,validateURL:t.validateURL,changeValueDataType:t.changeValueDataType,updateBaseField:t.updateBaseField,updateValueArrayIndex:t.updateValueArrayIndex,updateFunction:t.updateFunction,onUpdateParameter:a.onUpdateParameter}),r=Wo({props:n.props,controller:t,state:a});return{isCompoundOperator:t.isCompoundOperator,listeners:o,switchPanelProps:r}}function Xo(n){const t=Yo(n);return Xa({setupResult:t})}const Ko={class:"value-input"},Jo=e.defineComponent({__name:"ValueInput",props:{value:{type:[String,Number,Boolean,Array,Object,null]},fieldType:{},fieldName:{},comparison:{},availableFields:{},currentDataType:{},valueIsLiteral:{type:Boolean}},emits:["update:value","update:type","update:value-data-type"],setup(n,{emit:t}){const a=n,o=t,{isCompoundOperator:r,switchPanelProps:l,switchPanelListeners:i}=Xo({props:a,emitUpdateValue:s=>o("update:value",s),emitUpdateType:s=>o("update:type",s),emitUpdateValueDataType:(s,u)=>o("update:value-data-type",s,u)});return(s,u)=>(e.openBlock(),e.createElementBlock("div",Ko,[e.unref(r)()?(e.openBlock(),e.createBlock(Ya,{key:0,comparison:a.comparison},null,8,["comparison"])):(e.openBlock(),e.createBlock(Ga,e.mergeProps({key:1},e.unref(l),e.toHandlers(e.unref(i))),null,16))]))}}),X=v(Jo,[["__scopeId","data-v-7f424686"]]),Qo=e.defineComponent({__name:"FieldModeArrayIndexInput",props:{arrayIndex:{}},emits:["update:array-index"],setup(n,{emit:t}){const a=t;return(o,r)=>{const l=e.resolveComponent("a-input-number"),i=e.resolveComponent("a-tooltip");return e.openBlock(),e.createBlock(i,{content:"输入索引访问数组元素,留空则对整个数组操作(如 belong)"},{default:e.withCtx(()=>[e.createVNode(l,{"model-value":o.arrayIndex,placeholder:"索引",min:0,precision:0,class:"array-index-input","allow-clear":"","onUpdate:modelValue":r[0]||(r[0]=s=>a("update:array-index",s))},{prefix:e.withCtx(()=>r[1]||(r[1]=[e.createElementVNode("span",{style:{color:"#86909c"}},"[",-1)])),suffix:e.withCtx(()=>r[2]||(r[2]=[e.createElementVNode("span",{style:{color:"#86909c"}},"]",-1)])),_:1},8,["model-value"])]),_:1})}}}),Zo=v(Qo,[["__scopeId","data-v-9e63890d"]]),er={class:"operator-option"},tr={class:"operator-symbol"},nr=e.defineComponent({__name:"FieldModeComparisonSelect",props:{comparison:{},availableOperators:{}},emits:["update:comparison"],setup(n,{emit:t}){const a=t;return(o,r)=>{const l=e.resolveComponent("a-option"),i=e.resolveComponent("a-select");return e.openBlock(),e.createBlock(i,{"model-value":o.comparison,placeholder:"操作符",class:"comparison-operator-select","onUpdate:modelValue":r[0]||(r[0]=s=>a("update:comparison",s))},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.availableOperators,s=>(e.openBlock(),e.createBlock(l,{key:s.value,value:s.value,label:s.label},{default:e.withCtx(()=>[e.createElementVNode("div",er,[e.createElementVNode("span",tr,e.toDisplayString(s.label),1)])]),_:2},1032,["value","label"]))),128))]),_:1},8,["model-value"])}}}),ar={class:"field-option"},or={class:"field-name"},rr={key:0,class:"array-hint"},lr={class:"field-meta"},ir={key:1,class:"field-example"},sr=e.defineComponent({__name:"FieldModeFieldOption",props:{field:{},getFieldTooltip:{type:Function},getTypeColor:{type:Function}},setup(n){return(t,a)=>{const o=e.resolveComponent("a-tag"),r=e.resolveComponent("a-tooltip");return e.openBlock(),e.createBlock(r,{content:t.getFieldTooltip(t.field),position:"left"},{default:e.withCtx(()=>[e.createElementVNode("div",ar,[e.createElementVNode("div",or,[e.createTextVNode(e.toDisplayString(t.field.label)+" ",1),t.field.type==="array"?(e.openBlock(),e.createElementBlock("span",rr,"[i]")):e.createCommentVNode("",!0)]),e.createElementVNode("div",lr,[t.field.type?(e.openBlock(),e.createBlock(o,{key:0,color:t.getTypeColor(t.field.type),size:"small"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.field.type),1)]),_:1},8,["color"])):e.createCommentVNode("",!0),t.field.example?(e.openBlock(),e.createElementBlock("span",ir,e.toDisplayString(t.field.example),1)):e.createCommentVNode("",!0)])])]),_:1},8,["content"])}}}),dr=v(sr,[["__scopeId","data-v-d3692deb"]]);function ur(n){const{setupResult:t}=n;return{selectListeners:t.selectListeners}}function pr(n){const{emit:t}=n;return{selectListeners:{"update:model-value":o=>t("update:field",o)}}}function cr(n){const t=pr(n);return ur({setupResult:t})}const mr=e.defineComponent({__name:"FieldModeFieldSelect",props:{baseFieldName:{},availableFields:{},getFieldTooltip:{type:Function},getTypeColor:{type:Function}},emits:["update:field"],setup(n,{emit:t}){const a=t,{selectListeners:o}=cr({emit:a});return(r,l)=>{const i=e.resolveComponent("a-option"),s=e.resolveComponent("a-select");return e.openBlock(),e.createBlock(s,e.mergeProps({"model-value":r.baseFieldName,placeholder:"选择字段","allow-search":"","allow-create":"",class:"field-select-compact"},e.toHandlers(e.unref(o))),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.availableFields,u=>(e.openBlock(),e.createBlock(i,{key:u.value,value:u.value,label:u.label},{default:e.withCtx(()=>[e.createVNode(dr,{field:u,"get-field-tooltip":r.getFieldTooltip,"get-type-color":r.getTypeColor},null,8,["field","get-field-tooltip","get-type-color"])]),_:2},1032,["value","label"]))),128))]),_:1},16,["model-value"])}}}),fr=v(mr,[["__scopeId","data-v-55c0b802"]]);function vr(n){const{setupResult:t}=n;return{fieldSelectListeners:t.listeners.fieldSelectListeners,arrayIndexListeners:t.listeners.arrayIndexListeners,comparisonSelectListeners:t.listeners.comparisonSelectListeners}}function yr(n){const{emit:t}=n;return{fieldSelectListeners:{"update:field":l=>t("update:field",l)},arrayIndexListeners:{"update:array-index":l=>t("update:array-index",l)},comparisonSelectListeners:{"update:comparison":l=>t("update:comparison",l)}}}function gr(n){return{listeners:yr(n)}}function Vr(n){const t=gr(n);return vr({setupResult:t})}const _r={class:"field-mode-controls"},Tr=e.defineComponent({__name:"FieldModeControls",props:{baseFieldName:{},availableFields:{},isArrayField:{type:Boolean},arrayIndex:{},comparison:{},availableOperators:{},getFieldTooltip:{type:Function},getTypeColor:{type:Function}},emits:["update:field","update:array-index","update:comparison"],setup(n,{emit:t}){const a=t,{fieldSelectListeners:o,arrayIndexListeners:r,comparisonSelectListeners:l}=Vr({emit:a});return(i,s)=>(e.openBlock(),e.createElementBlock("div",_r,[e.createVNode(fr,e.mergeProps({"base-field-name":i.baseFieldName,"available-fields":i.availableFields,"get-field-tooltip":i.getFieldTooltip,"get-type-color":i.getTypeColor},e.toHandlers(e.unref(o))),null,16,["base-field-name","available-fields","get-field-tooltip","get-type-color"]),i.isArrayField?(e.openBlock(),e.createBlock(Zo,e.mergeProps({key:0,"array-index":i.arrayIndex},e.toHandlers(e.unref(r))),null,16,["array-index"])):e.createCommentVNode("",!0),e.createVNode(nr,e.mergeProps({comparison:i.comparison,"available-operators":i.availableOperators},e.toHandlers(e.unref(l))),null,16,["comparison","available-operators"])]))}}),hr=v(Tr,[["__scopeId","data-v-c226e933"]]);function Cr(n){const{controller:t,currentDataType:a,listeners:o}=n.setupResult;return{baseFieldName:t.baseFieldName,arrayIndex:t.arrayIndex,isArrayField:t.isArrayField,fieldType:t.fieldType,needsValue:t.needsValue,getFieldTooltip:t.getFieldTooltip,getTypeColor:t.getTypeColor,currentDataType:a,controlsListeners:o.controlsListeners,valueInputListeners:o.valueInputListeners}}const Nr=[{label:"client_ip",value:"client_ip",type:"ip"},{label:"is_whitelist",value:"is_whitelist",type:"boolean"},{label:"ip_user",value:"ip_user",type:"ip"},{label:"token_user",value:"token_user",type:"string"},{label:"employee_id",value:"employee_id",type:"string"},{label:"sys_name",value:"sys_name",type:"string"},{label:"start_time",value:"start_time",type:"string"},{label:"action_name",value:"action_name",type:"string"},{label:"staff_dept_1_nm",value:"staff_dept_1_nm",type:"string"},{label:"request.method",value:"request.method",type:"string"},{label:"request.uri",value:"request.uri",type:"string"},{label:"response.status",value:"response.status",type:"number"}];function Pr(n,t,a){return n.length>0?n:t&&t.length>0?t:a}function Fr(n){if(!n.length)return"";const t=n.reduce((a,o)=>{const r=o.type||"unknown";return a[r]=(a[r]||0)+1,a},{});return Object.entries(t).map(([a,o])=>`${a}(${o})`).join(", ")}function br(n){let t=n;return t=t.replace(/&&/g," && "),t=t.replace(/\|\|/g," || "),t=t.replace(/\(\s*/g,`(
|
|
3
|
+
`),t=t.replace(/\s*\)/g,`
|
|
4
|
+
)`),t=t.replace(/ && /g,` &&
|
|
5
|
+
`),t=t.replace(/ \|\| /g,` ||
|
|
6
|
+
`),t=t.replace(/\n\s*\n/g,`
|
|
7
|
+
`),t.trim()}function Br(n){try{let t=0;for(const r of n)if(r==="("&&t++,r===")"&&t--,t<0)return!1;if(t!==0)return!1;const a=/[><=!&|~]/.test(n),o=/[a-z_]\w*/i.test(n);return a&&o}catch{return!1}}function h(n){return n==="boolean"?"boolean":n==="number"?"number":"string"}function K(n,t,a){for(const o of n){if(o.id===t)return Object.assign(o,a),!0;if(o.children&&K(o.children,t,a))return!0}return!1}function J(n,t){return n.filter(a=>a.id===t?!1:(a.children&&(a.children=J(a.children,t)),!0))}function A(n,t){const a=o=>{var r;o.type==="group"&&(o.expanded=t,(r=o.children)==null||r.forEach(a))};n.forEach(a)}function Q(n,t,a,o){for(const r of n){if(r.id===t&&r.type==="group"){const l=r.level+1;if(r.children=r.children||[],a==="group")return r.children.push(_.createGroupNode(t,l)),{updated:!0};const i=_.createConditionNode(t,l);if(a==="function")return i.functionName="",i.parameters=[],delete i.field,r.children.push(i),{updated:!0};if(o.length>0){const s=o[0];i.field=s.value,i.fieldType=s.type||"string"}return r.children.push(i),{updated:!0,addedConditionNodeId:i.id,addedConditionDataType:h(i.fieldType)}}if(r.children){const l=Q(r.children,t,a,o);if(l.updated)return l}}return{updated:!1}}function Er(n,t){const{props:a,emitUpdateField:o,emitUpdateValueDataType:r}=t;return{handleFieldChange:i=>{const s=a.availableFields.find(d=>d.value===i),u=(s==null?void 0:s.type)||"string";o(i),r({fieldName:"condition_value",dataType:h(u)})}}}function xr(n){const{state:t,actions:a}=n;return{baseFieldName:t.baseFieldName,arrayIndex:t.arrayIndex,isArrayField:t.isArrayField,fieldType:t.fieldType,needsValue:t.needsValue,getFieldTooltip:t.getFieldTooltip,getTypeColor:t.getTypeColor,handleFieldChange:a.handleFieldChange}}function wr(n){const{props:t}=n,a=e.computed(()=>{if(!t.node.field)return"";const d=t.node.field.match(/^(.+)\[(\d+)\]$/);return d?d[1]:t.node.field}),o=e.computed(()=>{if(!t.node.field)return;const d=t.node.field.match(/\[(\d+)\]$/);return d?Number.parseInt(d[1],10):void 0}),r=e.computed(()=>{const d=a.value,p=t.availableFields.find(c=>c.value===d);return(p==null?void 0:p.type)==="array"}),l=e.computed(()=>{if(!t.node.field)return"string";const d=t.availableFields.find(p=>p.value===t.node.field);return(d==null?void 0:d.type)||"string"}),i=e.computed(()=>{const d=t.node.comparison;return d==="belong"||d==="isIpInNetmaskList"?!0:d!=="== nil"&&d!=="!= nil"&&d!=="== ''"&&d!=="!= ''"});return{baseFieldName:a,arrayIndex:o,isArrayField:r,fieldType:l,needsValue:i,getFieldTooltip:d=>{const p=[d.label];return d.type&&p.push(`类型: ${d.type}`),d.example&&p.push(`示例: ${d.example}`),p.join(`
|
|
8
|
+
`)},getTypeColor:d=>({string:"blue",number:"green",boolean:"orange",array:"purple",object:"cyan",datetime:"magenta",ip:"gold",email:"lime",url:"arcoblue"})[d]||"gray"}}function Dr(n){const t=wr({props:n.props}),a=Er(t,n);return xr({state:t,actions:a})}function kr(n){const{emit:t,handleFieldChange:a}=n;return{controlsListeners:{"update:field":l=>a(l),"update:array-index":l=>t("update:array-index",l),"update:comparison":l=>t("update:comparison",l)},valueInputListeners:{"update:value":l=>t("update:value",l),"update:value-data-type":(l,i)=>{i===void 0?t("update:value-data-type",{fieldName:"condition_value",dataType:l}):t("update:value-data-type",{fieldName:l,dataType:i})}}}}function Lr(n){const{props:t,emit:a}=n,o=Dr({props:t,emitUpdateField:i=>a("update:field",i),emitUpdateValueDataType:i=>a("update:value-data-type",i)}),r=e.computed(()=>t.getParameterDataType?t.getParameterDataType(t.node.id,"condition_value"):"string"),l=kr({emit:a,handleFieldChange:o.handleFieldChange});return{controller:o,currentDataType:r,listeners:l}}function Sr(n){const t=Lr(n);return Cr({setupResult:t})}const Ir={class:"field-mode-editor"},Ur=e.defineComponent({__name:"FieldModeEditor",props:{node:{},availableFields:{},availableOperators:{},getParameterDataType:{type:Function}},emits:["update:field","update:array-index","update:comparison","update:value","update:extra-comparison","update:value-data-type"],setup(n,{emit:t}){const a=n,o=t,{baseFieldName:r,arrayIndex:l,isArrayField:i,fieldType:s,needsValue:u,getFieldTooltip:d,getTypeColor:p,currentDataType:c,controlsListeners:m,valueInputListeners:g}=Sr({props:a,emit:o});return(y,V)=>(e.openBlock(),e.createElementBlock("div",Ir,[e.createVNode(hr,e.mergeProps({"base-field-name":e.unref(r),"available-fields":y.availableFields,"is-array-field":e.unref(i),"array-index":e.unref(l),comparison:y.node.comparison,"available-operators":y.availableOperators,"get-field-tooltip":e.unref(d),"get-type-color":e.unref(p)},e.toHandlers(e.unref(m))),null,16,["base-field-name","available-fields","is-array-field","array-index","comparison","available-operators","get-field-tooltip","get-type-color"]),e.unref(u)?(e.openBlock(),e.createBlock(X,e.mergeProps({key:0,value:y.node.value,"field-type":e.unref(s),"field-name":y.node.field,comparison:y.node.comparison,"available-fields":y.availableFields,"current-data-type":e.unref(c),"value-is-literal":y.node.valueIsLiteral},e.toHandlers(e.unref(g))),null,16,["value","field-type","field-name","comparison","available-fields","current-data-type","value-is-literal"])):e.createCommentVNode("",!0)]))}}),Ar=v(Ur,[["__scopeId","data-v-fc14c85b"]]),Mr={},Rr={class:"condition-hint"};function $r(n,t){const a=e.resolveComponent("icon-info-circle");return e.openBlock(),e.createElementBlock("div",Rr,[e.createVNode(a,{class:"hint-icon"}),t[0]||(t[0]=e.createElementVNode("span",{class:"hint-text"}," 条件表达式返回true/false,适用于boolean类型参数 ",-1))])}const Or=v(Mr,[["render",$r],["__scopeId","data-v-0c9ed03d"]]);function Hr(n){return{conditionTreeListeners:n.setupResult.listeners.conditionTreeListeners}}function Z(n){return{onUpdateNode:(p,c)=>{n("update-node",p,c)},onAddChild:(p,c)=>{n("add-child",p,c)},onRemoveNode:p=>{n("remove-node",p)},onMoveUp:p=>{n("move-up",p)},onMoveDown:p=>{n("move-down",p)},onCopyNode:p=>{n("copy-node",p)},onUpdateParameterType:(p,c)=>{n("update-parameter-type",p,c)},onUpdateParameterValueDataType:(p,c,m)=>{n("update-parameter-value-data-type",p,c,m)},onDragNode:(p,c,m)=>{n("drag-node",p,c,m)}}}function ee(n){const{forwarders:t}=n;return{treeNodeListeners:{"update-node":t.onUpdateNode,"add-child":t.onAddChild,"remove-node":t.onRemoveNode,"move-up":t.onMoveUp,"move-down":t.onMoveDown,"copy-node":t.onCopyNode,"update-parameter-type":t.onUpdateParameterType,"update-parameter-value-data-type":t.onUpdateParameterValueDataType,"drag-node":t.onDragNode}}}const te=Z;function ne(n){const{treeNodeListeners:t}=ee(n);return{conditionTreeListeners:t}}function zr(n){const t=te(n.emit);return{listeners:ne({forwarders:t})}}function Gr(n){const t=zr(n);return Hr({setupResult:t})}const jr={class:"condition-tree-editor"},Wr=e.defineComponent({__name:"ConditionTreeEditor",props:{node:{},availableFields:{},expectedReturnType:{},getParameterDataType:{type:Function}},emits:["update-node","add-child","remove-node","move-up","move-down","copy-node","update-parameter-type","update-parameter-value-data-type","drag-node"],setup(n,{emit:t}){const a=t,{conditionTreeListeners:o}=Gr({emit:a});return(r,l)=>(e.openBlock(),e.createElementBlock("div",jr,[e.createVNode(Or),e.createVNode(w,e.mergeProps({node:r.node,"available-fields":r.availableFields,level:1,"hide-actions":!0,"expected-return-type":r.expectedReturnType,"get-parameter-data-type":r.getParameterDataType},e.toHandlers(e.unref(o))),null,16,["node","available-fields","expected-return-type","get-parameter-data-type"])]))}}),qr=v(Wr,[["__scopeId","data-v-151b7a2d"]]);function Yr(n){const{setupResult:t}=n;return{conditionTreeListeners:t.listeners.conditionTreeListeners}}function Xr(n){const{emit:t}=n,a=te(t);return{listeners:ne({forwarders:a})}}function Kr(n){const t=Xr(n);return Yr({setupResult:t})}const Jr=e.defineComponent({__name:"ParameterModeCondition",props:{node:{},availableFields:{},expectedReturnType:{},getParameterDataType:{type:Function}},emits:["update-node","add-child","remove-node","move-up","move-down","copy-node","update-parameter-type","update-parameter-value-data-type","drag-node"],setup(n,{emit:t}){const a=t,{conditionTreeListeners:o}=Kr({emit:a});return(r,l)=>(e.openBlock(),e.createBlock(qr,e.mergeProps({node:r.node,"available-fields":r.availableFields,"expected-return-type":r.expectedReturnType,"get-parameter-data-type":r.getParameterDataType},e.toHandlers(e.unref(o))),null,16,["node","available-fields","expected-return-type","get-parameter-data-type"]))}}),Qr={class:"field-parameter"},Zr=e.defineComponent({__name:"ParameterModeField",props:{displayValue:{type:[String,Number,Boolean,Array,Object,null]},availableFields:{},getFieldTooltipText:{type:Function},getTypeColor:{type:Function}},emits:["update:value"],setup(n,{emit:t}){const a=t;return(o,r)=>(e.openBlock(),e.createElementBlock("div",Qr,[e.createVNode(B,{value:typeof o.displayValue=="string"?o.displayValue:"","available-fields":o.availableFields,placeholder:"选择字段 (数组可输入索引,如: field[0])","show-array-index":!1,"show-array-hint":!0,"get-field-tooltip":o.getFieldTooltipText,"get-type-color":o.getTypeColor,"onUpdate:field":r[0]||(r[0]=l=>a("update:value",l))},null,8,["value","available-fields","get-field-tooltip","get-type-color"])]))}}),el=v(Zr,[["__scopeId","data-v-e84045ef"]]),tl={class:"lambda-editor"},nl={class:"lambda-hint"},al={style:{"font-size":"12px",color:"#4e5969"}},ol=e.defineComponent({__name:"LambdaEditor",props:{value:{},placeholder:{default:"例:lambda(x) -> x.local_port == 22 end"},hintText:{default:"匿名函数(Lambda表达式),格式:lambda(参数) -> 表达式 end"}},emits:["update:value"],setup(n,{emit:t}){const a=t;return(o,r)=>{const l=e.resolveComponent("icon-info-circle"),i=e.resolveComponent("a-textarea");return e.openBlock(),e.createElementBlock("div",tl,[e.createElementVNode("div",nl,[e.createVNode(l,{style:{color:"#722ed1","margin-right":"4px"}}),e.createElementVNode("span",al,e.toDisplayString(o.hintText),1)]),e.createVNode(i,{"model-value":o.value,placeholder:o.placeholder,"auto-size":{minRows:1,maxRows:4},style:{width:"100%"},"onUpdate:modelValue":r[0]||(r[0]=s=>a("update:value",s))},null,8,["model-value","placeholder"])])}}}),rl=v(ol,[["__scopeId","data-v-edbf87c1"]]),ll=e.defineComponent({__name:"ParameterModeLambda",props:{value:{type:[String,Number,Boolean,Array,Object,null]}},emits:["update:value"],setup(n,{emit:t}){const a=t;return(o,r)=>(e.openBlock(),e.createBlock(rl,{value:typeof o.value=="string"?o.value:"","onUpdate:value":r[0]||(r[0]=l=>a("update:value",l))},null,8,["value"]))}}),il=e.defineComponent({__name:"ParameterModeValue",props:{parameter:{},value:{type:[String,Number,Boolean,Array,Object,null]},displayValue:{type:[String,Number,Boolean,Array,Object,null]},availableFields:{},valueDataType:{},multiValues:{},getTypeColor:{type:Function}},emits:["update:value","update:multi-values","update:value-data-type"],setup(n,{emit:t}){const a=t;return(o,r)=>o.parameter.type==="field"?(e.openBlock(),e.createBlock(B,{key:0,value:typeof o.displayValue=="string"?o.displayValue:"","available-fields":o.availableFields,placeholder:`选择${o.parameter.description}`,"show-array-index":!1,"show-array-hint":!1,"get-type-color":o.getTypeColor,"onUpdate:field":r[0]||(r[0]=l=>a("update:value",l))},null,8,["value","available-fields","placeholder","get-type-color"])):(e.openBlock(),e.createBlock(j,{key:1,mode:"parameter",value:o.value,"display-value":o.displayValue,"value-data-type":o.valueDataType,"parameter-name":o.parameter.name,"parameter-description":o.parameter.description,"parameter-type":o.parameter.type,"multi-values":o.multiValues,"show-data-type-switch":!0,"onUpdate:value":r[1]||(r[1]=l=>a("update:value",l)),"onUpdate:multiValues":r[2]||(r[2]=l=>a("update:multi-values",l)),"onUpdate:valueDataType":r[3]||(r[3]=l=>a("update:value-data-type",l))},null,8,["value","display-value","value-data-type","parameter-name","parameter-description","parameter-type","multi-values"]))}});function sl(n){const{listeners:t,viewModel:a}=n.setupResult;return{selectorKey:a.selectorKey,selectorProps:a.selectorProps,isValueMode:a.isValueMode,isFieldMode:a.isFieldMode,isConditionMode:a.isConditionMode,isLambdaMode:a.isLambdaMode,valueModeProps:a.valueModeProps,fieldModeProps:a.fieldModeProps,conditionModeProps:a.conditionModeProps,lambdaModeProps:a.lambdaModeProps,typeSelectorListeners:t.typeSelectorListeners,valueModeListeners:t.valueModeListeners,fieldModeListeners:t.fieldModeListeners,conditionModeListeners:t.conditionModeListeners,lambdaModeListeners:t.lambdaModeListeners}}function dl(n){const{valueActions:t,nestedActions:a}=n;return{initializeLambdaParameter:t.initializeLambdaParameter,updateValue:t.updateValue,updateMultiValue:t.updateMultiValue,updateFormatValue:t.updateFormatValue,updateTimezoneValue:t.updateTimezoneValue,changeValueDataType:t.changeValueDataType,changeParameterType:t.changeParameterType,updateNestedNode:a.updateNestedNode,updateNestedParameterType:a.updateNestedParameterType}}function M(n,t){const a=n.nestedNode??t;return!a||typeof a!="object"||!("id"in a)||!("type"in a)?null:a}function ul(n){const{props:t,emitUpdateValue:a}=n;return{updateNestedNode:(l,i)=>{const s=M(t.parameter,t.value);!s||s.id!==l||a({...s,...i})},updateNestedParameterType:(l,i)=>{const s=M(t.parameter,t.value);if(!s||!s.parameters)return;const u=s.parameters.map(p=>({...p})),d=u.findIndex(p=>p.name===l);d<0||(u[d]={...u[d],type:i},a({...s,parameters:u}))}}}function pl(n){const{emitUpdateValue:t}=n;return{updateValue:i=>{t(i)},updateMultiValue:i=>{t(i)},updateFormatValue:i=>{t(i)},updateTimezoneValue:i=>{t(i)}}}const ae="lambda(x) -> x.field == value end";function cl(n){return n==null||n===""}function ml(n){const{savedStringValue:t,currentValue:a}=n,o=t;if(cl(o))return typeof a=="string"&&a.includes("lambda(")?`"${a}"`:a||"";if(typeof o=="string"&&o.trim()!==""){if(o==="true"||o==="false")return o==="true";if(!Number.isNaN(Number(o)))return Number(o)}return o}function fl(n,t){return typeof n=="string"&&t.some(a=>a.value===n)?n:t.length>0?t[0].value:""}function vl(n){let t=n;return typeof n=="string"&&(n.startsWith('"')&&n.endsWith('"')||n.startsWith("'")&&n.endsWith("'"))&&(t=n.slice(1,-1)),typeof t!="string"||!t.includes("lambda(")?ae:t}function yl(){return ae}function gl(n,t){const{props:a,emitUpdateType:o,emitUpdateValue:r}=t;return l=>{if(n.userSelectedType.value=l,o(a.parameter.name,l),l==="value"){r(ml({savedStringValue:n.savedStringValue.value,currentValue:a.value}));return}if(l==="field"){r(fl(a.value,a.availableFields));return}if(l==="condition"){r(_.createConditionNode(void 0,1));return}r(vl(a.value))}}function Vl(n,t){const{props:a,emitUpdateValue:o,emitUpdateValueDataType:r}=t;return l=>{n.userHasSelectedDataType.value=!0,n.userSelectedValueDataType.value=l,r(a.parameter.name,l),a.value!==void 0&&a.value!==null&&a.value!==""&&o(a.value)}}function _l(n,t){const{props:a,emitUpdateValue:o}=t;return()=>{n.isCurrentLambdaParameter()&&(!a.value||a.value===""||a.value===null||a.value===void 0)&&(n.userSelectedType.value="lambda",setTimeout(()=>{o(yl())},0))}}function Tl(n,t){const a=pl({emitUpdateValue:t.emitUpdateValue}),o=_l(n,t),r=Vl(n,t),l=gl(n,t);return{initializeLambdaParameter:o,updateValue:a.updateValue,updateMultiValue:a.updateMultiValue,updateFormatValue:a.updateFormatValue,updateTimezoneValue:a.updateTimezoneValue,changeValueDataType:r,changeParameterType:l}}function hl(n,t){const a=Tl(n,t),o=ul(t);return dl({valueActions:a,nestedActions:o})}function Cl(n,t){return{getParameterInputType:n.getParameterInputType,getAvailableParameterTypes:n.getAvailableParameterTypes,displayValue:n.displayValue,updateValue:t.updateValue,updateMultiValue:t.updateMultiValue,updateFormatValue:t.updateFormatValue,updateTimezoneValue:t.updateTimezoneValue,getMultiValue:n.getMultiValue,getTypeColor:n.getTypeColor,getFieldTooltipText:n.getFieldTooltipText,getValueDataType:n.getValueDataType,changeValueDataType:t.changeValueDataType,changeParameterType:t.changeParameterType,updateNestedNode:t.updateNestedNode,updateNestedParameterType:t.updateNestedParameterType}}function Nl(n){return e.computed(()=>n.value&&typeof n.value=="object"&&n.value.id&&n.value.type?"":n.value)}function Pl(n){const{refs:t,displayValue:a,queries:o}=n;return{savedStringValue:t.savedStringValue,userSelectedType:t.userSelectedType,userHasSelectedDataType:t.userHasSelectedDataType,userSelectedValueDataType:t.userSelectedValueDataType,displayValue:a,isCurrentLambdaParameter:o.isCurrentLambdaParameter,getParameterInputType:o.getParameterInputType,getAvailableParameterTypes:o.getAvailableParameterTypes,getMultiValue:o.getMultiValue,getTypeColor:o.getTypeColor,getFieldTooltipText:o.getFieldTooltipText,getValueDataType:o.getValueDataType}}const Fl={string:"blue",number:"green",boolean:"orange",datetime:"purple",ip:"cyan",email:"magenta",url:"lime",array:"gold"},bl=[{value:"lambda",label:"匿名函数"}],Bl=[{value:"value",label:"值"},{value:"field",label:"字段"},{value:"condition",label:"条件"}];function El(n){return Fl[n]||"default"}function xl(n){return n.type==="array"?`${n.label} (数组) - 可输入索引访问元素,例如: ${n.value}[0]`:`字段: ${n.label} (${n.type})`}function wl(n){return n==="value"||n==="field"||n==="condition"||n==="lambda"}function Dl(n){const t=n;return typeof t.type=="string"?t.type:void 0}function kl(n){if(!n||typeof n!="object")return!1;const t=n;return typeof t.id=="string"&&(t.type==="condition"||t.type==="group")}function Ll(n){return typeof n=="string"&&n.includes("lambda(")}function Sl(n,t){return typeof n=="string"&&!!n&&t.some(a=>a.value===n)}function Il(n){const{explicitType:t,parameter:a,value:o,availableFields:r,isLambdaParameter:l}=n;return t&&wl(t)?t:kl(o)?"condition":a.type&&["field","value","expression","condition","lambda"].includes(a.type)?a.type==="expression"?"condition":a.type:Dl(a)==="function"?"condition":l&&(!o||Ll(o))?"lambda":Sl(o,r)?"field":"value"}function Ul(n){return n?bl:Bl}function Al(n){return Array.isArray(n)?n:typeof n=="string"?n.split(",").map(t=>t.trim()).filter(Boolean):[]}function Ml(n){const{props:t,refs:a,displayValue:o}=n,r=()=>{const c=t.functionName||"";return _.shouldBeLambdaParameter(c,t.parameter.name,t.parameter.description)};return{isCurrentLambdaParameter:r,getParameterInputType:()=>Il({explicitType:a.userSelectedType.value,parameter:t.parameter,value:t.value,availableFields:t.availableFields,isLambdaParameter:r()}),getAvailableParameterTypes:()=>Ul(r()),getMultiValue:()=>Al(o.value),getTypeColor:c=>El(c),getFieldTooltipText:c=>xl(c),getValueDataType:()=>a.userHasSelectedDataType.value&&a.userSelectedValueDataType.value?a.userSelectedValueDataType.value:t.currentDataType?t.currentDataType:t.parameter.valueType?t.parameter.valueType:"string"}}function Rl(){return{savedStringValue:e.ref(""),userSelectedType:e.ref(null),userHasSelectedDataType:e.ref(!1),userSelectedValueDataType:e.ref(null)}}function $l(n){const{props:t}=n,a=Rl(),o=Nl(t),r=Ml({props:t,refs:a,displayValue:o});return Pl({refs:a,displayValue:o,queries:r})}function Ol(n){const{props:t,state:a,actions:o}=n;e.watch(()=>t.value,(r,l)=>{if(l!=null&&l!==r&&(typeof l=="string"||typeof l=="number"||typeof l=="boolean")){const i=typeof l=="string"&&t.availableFields.some(u=>u.value===l),s=typeof l=="string"&&l.includes("lambda(");!i&&!s&&(a.savedStringValue.value=String(l))}r!=null&&(typeof r=="string"||typeof r=="number"||typeof r=="boolean")&&a.savedStringValue.value===""&&(a.savedStringValue.value=String(r)),(!r||r===""||r===null||r===void 0)&&o.initializeLambdaParameter()},{deep:!0,immediate:!0}),e.watch(()=>t.functionName,()=>{o.initializeLambdaParameter()},{immediate:!0}),e.watch(()=>[t.parameter.name,t.parameter.description],()=>{o.initializeLambdaParameter()},{immediate:!0})}function Hl(n){const t=$l({props:n.props}),a=hl(t,{props:n.props,emitUpdateValue:n.emitUpdateValue,emitUpdateType:n.emitUpdateType,emitUpdateValueDataType:n.emitUpdateValueDataType});return Ol({props:n.props,state:t,actions:a}),Cl(t,a)}function zl(n){const t={"update:model-value":n.changeParameterType},a={"update:value":n.updateValue,"update:multi-values":n.updateMultiValue,"update:value-data-type":n.changeValueDataType},o={"update:value":n.updateValue},r={"update:value":n.updateValue};return{typeSelectorListeners:t,valueModeListeners:a,fieldModeListeners:o,lambdaModeListeners:r}}function Gl(n){const{emit:t,updateNestedNode:a,updateNestedParameterType:o}=n;return{conditionModeListeners:{"update-node":a,"add-child":(l,i)=>t("add-child",l,i),"remove-node":l=>t("remove-node",l),"move-up":l=>t("move-up",l),"move-down":l=>t("move-down",l),"copy-node":l=>t("copy-node",l),"update-parameter-type":o,"update-parameter-value-data-type":(l,i,s)=>{t("update-parameter-value-data-type",l,i,s)},"drag-node":(l,i,s)=>{t("drag-node",l,i,s)}}}}function jl(n){const{baseListeners:t,conditionListeners:a}=n;return{typeSelectorListeners:t.typeSelectorListeners,valueModeListeners:t.valueModeListeners,fieldModeListeners:t.fieldModeListeners,lambdaModeListeners:t.lambdaModeListeners,conditionModeListeners:a.conditionModeListeners}}function Wl(n){const t=zl({changeParameterType:n.changeParameterType,updateValue:n.updateValue,updateMultiValue:n.updateMultiValue,changeValueDataType:n.changeValueDataType}),a=Gl({emit:n.emit,updateNestedNode:n.updateNestedNode,updateNestedParameterType:n.updateNestedParameterType});return jl({baseListeners:t,conditionListeners:a})}const ql=_.createConditionNode(void 0,1);function Yl(n,t,a){const o=e.computed(()=>{const i=n.parameter.nestedNode??n.value;return i&&typeof i=="object"&&"id"in i&&"type"in i?i:ql}),r=e.computed(()=>t()),l=e.computed(()=>a());return{conditionNode:o,currentParameterInputType:r,parameterTypeOptions:l}}function Xl(n){const{props:t,controller:a,state:o}=n,r=e.computed(()=>({parameter:t.parameter,value:t.value,displayValue:e.unref(a.displayValue),availableFields:t.availableFields,valueDataType:a.getValueDataType(),multiValues:a.getMultiValue(),getTypeColor:a.getTypeColor})),l=e.computed(()=>({displayValue:e.unref(a.displayValue),availableFields:t.availableFields,getFieldTooltipText:a.getFieldTooltipText,getTypeColor:a.getTypeColor})),i=e.computed(()=>({node:o.conditionNode.value,availableFields:t.availableFields,expectedReturnType:t.currentDataType||t.parameter.valueType,getParameterDataType:t.getParameterDataType})),s=e.computed(()=>({value:e.unref(a.displayValue)}));return{valueModeProps:r,fieldModeProps:l,conditionModeProps:i,lambdaModeProps:s}}function Kl(n){const{state:t}=n,a=e.computed(()=>t.currentParameterInputType.value==="value"),o=e.computed(()=>t.currentParameterInputType.value==="field"),r=e.computed(()=>t.currentParameterInputType.value==="condition"),l=e.computed(()=>t.currentParameterInputType.value==="lambda");return{isValueMode:a,isFieldMode:o,isConditionMode:r,isLambdaMode:l}}function Jl(n){const{selectorViewModel:t,modeFlags:a,modeProps:o}=n;return{selectorKey:t.selectorKey,selectorProps:t.selectorProps,isValueMode:a.isValueMode,isFieldMode:a.isFieldMode,isConditionMode:a.isConditionMode,isLambdaMode:a.isLambdaMode,valueModeProps:o.valueModeProps,fieldModeProps:o.fieldModeProps,conditionModeProps:o.conditionModeProps,lambdaModeProps:o.lambdaModeProps}}function Ql(n){const{props:t,state:a}=n,o=e.computed(()=>`type-selector-${t.parameter.name}-${a.currentParameterInputType.value}`),r=e.computed(()=>({modelValue:a.currentParameterInputType.value,options:a.parameterTypeOptions.value,placeholder:"参数类型"}));return{selectorKey:o,selectorProps:r}}function Zl(n){const{props:t,controller:a,state:o}=n,r=Ql({props:t,state:o}),l=Kl({state:o}),i=Xl({props:t,controller:a,state:o});return Jl({selectorViewModel:r,modeFlags:l,modeProps:i})}function ei(n){const{props:t,emit:a}=n,o=Hl({props:t,emitUpdateValue:s=>a("update:value",s),emitUpdateType:(s,u)=>a("update:type",s,u),emitUpdateValueDataType:(s,u)=>a("update:value-data-type",s,u)}),r=Yl(t,o.getParameterInputType,o.getAvailableParameterTypes),l=Wl({emit:a,changeParameterType:o.changeParameterType,updateValue:o.updateValue,updateMultiValue:o.updateMultiValue,changeValueDataType:o.changeValueDataType,updateNestedNode:o.updateNestedNode,updateNestedParameterType:o.updateNestedParameterType}),i=Zl({props:t,controller:o,state:r});return{state:r,listeners:l,viewModel:i}}function ti(n){const t=ei(n);return sl({setupResult:t})}const ni={class:"parameter-input"},ai=e.defineComponent({__name:"ParameterInput",props:{parameter:{},value:{type:[String,Number,Boolean,Array,Object,null]},availableFields:{},functionName:{},currentDataType:{},getParameterDataType:{type:Function}},emits:["update:value","update:type","update:value-data-type","add-child","remove-node","move-up","move-down","copy-node","update-parameter-value-data-type","drag-node"],setup(n,{emit:t}){const a=n,o=t,{selectorKey:r,selectorProps:l,isValueMode:i,isFieldMode:s,isConditionMode:u,isLambdaMode:d,valueModeProps:p,fieldModeProps:c,conditionModeProps:m,lambdaModeProps:g,typeSelectorListeners:y,valueModeListeners:V,fieldModeListeners:f,conditionModeListeners:b,lambdaModeListeners:k}=ti({props:a,emit:o});return(fe,L)=>(e.openBlock(),e.createElementBlock("div",ni,[(e.openBlock(),e.createBlock(z,e.mergeProps({key:e.unref(r)},e.unref(l),e.toHandlers(e.unref(y))),null,16)),e.unref(i)?(e.openBlock(),e.createBlock(il,e.mergeProps({key:0},e.unref(p),e.toHandlers(e.unref(V))),null,16)):e.createCommentVNode("",!0),e.unref(s)?(e.openBlock(),e.createBlock(el,e.mergeProps({key:1},e.unref(c),e.toHandlers(e.unref(f))),null,16)):e.createCommentVNode("",!0),e.unref(u)?(e.openBlock(),e.createBlock(Jr,e.mergeProps({key:2},e.unref(m),e.toHandlers(e.unref(b))),null,16)):e.createCommentVNode("",!0),e.unref(d)?(e.openBlock(),e.createBlock(ll,e.mergeProps({key:3},e.unref(g),e.toHandlers(e.unref(k))),null,16)):e.createCommentVNode("",!0)]))}}),oi=v(ai,[["__scopeId","data-v-77a59e92"]]);function ri(n){const{setupResult:t}=n;return{parameterInputListeners:t.listeners.parameterInputListeners}}function li(n){const{props:t,emit:a}=n;return{parameterInputListeners:{"update:value":r=>a("update:parameter",{paramName:t.paramName,value:r}),"update:type":(r,l)=>a("update:parameter-type",{paramName:r,type:l}),"update:value-data-type":(r,l)=>{a("update:parameter-value-type",{paramName:r,dataType:l})}}}}function ii(n){return{listeners:li(n)}}function si(n){const t=ii(n);return ri({setupResult:t})}const di=e.defineComponent({__name:"FunctionParameterItem",props:{parameter:{},paramName:{},value:{type:[String,Number,Boolean,Array,Object,null]},availableFields:{},functionName:{default:""},currentDataType:{default:void 0},getParameterDataType:{type:Function,default:void 0}},emits:["update:parameter","update:parameter-type","update:parameter-value-type"],setup(n,{emit:t}){const a=n,o=t,{parameterInputListeners:r}=si({props:a,emit:o});return(l,i)=>(e.openBlock(),e.createBlock(oi,e.mergeProps({parameter:l.parameter,value:l.value,"available-fields":l.availableFields,"function-name":l.functionName,"current-data-type":l.currentDataType,"get-parameter-data-type":l.getParameterDataType},e.toHandlers(e.unref(r))),null,16,["parameter","value","available-fields","function-name","current-data-type","get-parameter-data-type"]))}});function ui(n){const{setupResult:t}=n;return{getCurrentDataType:t.getCurrentDataType,parameterItemListeners:t.listeners.parameterItemListeners}}function pi(n){const{emit:t}=n;return{parameterItemListeners:{"update:parameter":o=>t("update:parameter",o),"update:parameter-type":o=>t("update:parameter-type",o),"update:parameter-value-type":o=>t("update:parameter-value-type",o)}}}function ci(n){const{props:t,emit:a}=n,o=l=>{if(t.getParameterDataType)return t.getParameterDataType(t.node.id,l)},r=pi({emit:a});return{getCurrentDataType:o,listeners:r}}function mi(n){const t=ci(n);return ui({setupResult:t})}const fi={key:0,class:"inline-function-params"},vi=e.defineComponent({__name:"FunctionParameterList",props:{node:{},selectedFunction:{},getParameterDataType:{type:Function},getParameterActualValue:{type:Function},getParameterWithValue:{type:Function},availableFields:{}},emits:["update:parameter","update:parameter-type","update:parameter-value-type"],setup(n,{emit:t}){const a=n,o=t,{getCurrentDataType:r,parameterItemListeners:l}=mi({props:a,emit:o});return(i,s)=>i.selectedFunction&&i.selectedFunction.parameters.length>0?(e.openBlock(),e.createElementBlock("div",fi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.selectedFunction.parameters,u=>(e.openBlock(),e.createBlock(di,e.mergeProps({key:`${i.node.id}-${u.name}`,"param-name":u.name,parameter:i.getParameterWithValue(u),value:i.getParameterActualValue(u.name),"available-fields":i.availableFields,"function-name":i.node.functionName,"current-data-type":e.unref(r)(u.name),"get-parameter-data-type":i.getParameterDataType},e.toHandlers(e.unref(l))),null,16,["param-name","parameter","value","available-fields","function-name","current-data-type","get-parameter-data-type"]))),128))])):e.createCommentVNode("",!0)}}),yi=v(vi,[["__scopeId","data-v-a902e12a"]]),gi={class:"operator-option"},Vi={class:"operator-symbol"},_i={class:"operator-label"},Ti=e.defineComponent({__name:"FunctionComparisonOperatorSelect",props:{comparison:{},returnTypeOperators:{}},emits:["update:modelValue"],setup(n,{emit:t}){const a=t;return(o,r)=>{const l=e.resolveComponent("a-option"),i=e.resolveComponent("a-select");return e.openBlock(),e.createBlock(i,{"model-value":o.comparison,placeholder:"操作符",class:"comparison-operator-select","onUpdate:modelValue":r[0]||(r[0]=s=>a("update:modelValue",s))},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.returnTypeOperators,s=>(e.openBlock(),e.createBlock(l,{key:s.value,value:s.value,label:s.label},{default:e.withCtx(()=>[e.createElementVNode("div",gi,[e.createElementVNode("span",Vi,e.toDisplayString(s.value),1),e.createElementVNode("span",_i,e.toDisplayString(s.label),1)])]),_:2},1032,["value","label"]))),128))]),_:1},8,["model-value"])}}});function hi(n){const{setupResult:t}=n;return{valueInputListeners:t.listeners.valueInputListeners}}function Ci(n){const{emit:t}=n;return{valueInputListeners:{"update:value":o=>t("update:value",o),"update:value-data-type":(o,r)=>{r===void 0?t("update:value-data-type",{fieldName:"condition_value",dataType:o}):t("update:value-data-type",{fieldName:o,dataType:r})}}}}function Ni(n){return{listeners:Ci(n)}}function Pi(n){const t=Ni(n);return hi({setupResult:t})}const Fi=e.defineComponent({__name:"FunctionComparisonValueInput",props:{node:{},selectedFunction:{},availableFields:{},currentDataType:{}},emits:["update:value","update:value-data-type"],setup(n,{emit:t}){const a=t,{valueInputListeners:o}=Pi({emit:a});return(r,l)=>(e.openBlock(),e.createBlock(X,e.mergeProps({key:`${r.node.id}-value`,value:r.node.value,"field-type":r.selectedFunction.returnType,"field-name":r.selectedFunction.name,comparison:r.node.comparison,"available-fields":r.availableFields,"current-data-type":r.currentDataType},e.toHandlers(e.unref(o))),null,16,["value","field-type","field-name","comparison","available-fields","current-data-type"]))}});function bi(n){const{setupResult:t}=n;return{currentDataType:t.currentDataType,comparisonOperatorListeners:t.listeners.comparisonOperatorListeners,comparisonValueInputListeners:t.listeners.comparisonValueInputListeners}}function Bi(n){const{emit:t}=n;return{comparisonOperatorListeners:{"update:model-value":a=>t("update:comparison",a)},comparisonValueInputListeners:{"update:value":a=>t("update:value",a),"update:value-data-type":a=>t("update:value-data-type",a)}}}function Ei(n){const{props:t,emit:a}=n,o=e.computed(()=>t.getParameterDataType&&t.getParameterDataType(t.node.id,t.selectedFunction.name)||"string"),r=Bi({emit:a});return{currentDataType:o,listeners:r}}function xi(n){const t=Ei(n);return bi({setupResult:t})}const wi={class:"function-comparison-area"},Di=e.defineComponent({__name:"FunctionComparisonPanel",props:{node:{},selectedFunction:{},availableFields:{},returnTypeOperators:{},getParameterDataType:{type:Function}},emits:["update:comparison","update:value","update:value-data-type"],setup(n,{emit:t}){const a=n,o=t,{currentDataType:r,comparisonOperatorListeners:l,comparisonValueInputListeners:i}=xi({props:a,emit:o});return(s,u)=>(e.openBlock(),e.createElementBlock("div",wi,[e.createVNode(Ti,e.mergeProps({comparison:s.node.comparison,"return-type-operators":s.returnTypeOperators},e.toHandlers(e.unref(l))),null,16,["comparison","return-type-operators"]),e.createVNode(Fi,e.mergeProps({node:s.node,"selected-function":s.selectedFunction,"available-fields":s.availableFields,"current-data-type":e.unref(r)},e.toHandlers(e.unref(i))),null,16,["node","selected-function","available-fields","current-data-type"])]))}}),ki=v(Di,[["__scopeId","data-v-4afeba56"]]),Li={class:"function-option"},Si={class:"function-name"},Ii={class:"function-desc"},Ui=e.defineComponent({__name:"FunctionCatalogOption",props:{displayName:{},description:{}},setup(n){return(t,a)=>(e.openBlock(),e.createElementBlock("div",Li,[e.createElementVNode("div",Si,e.toDisplayString(t.displayName),1),e.createElementVNode("div",Ii,e.toDisplayString(t.description),1)]))}}),Ai=v(Ui,[["__scopeId","data-v-b3f3cfb5"]]);function Mi(n){const{setupResult:t}=n;return{selectListeners:t.selectListeners}}function Ri(n){const{emit:t}=n;return{selectListeners:{"update:model-value":o=>t("update:modelValue",o)}}}function $i(n){const t=Ri(n);return Mi({setupResult:t})}const Oi=e.defineComponent({__name:"FunctionCatalogSelect",props:{modelValue:{default:""},functionCategories:{},filterFunctionOption:{}},emits:["update:modelValue"],setup(n,{emit:t}){const a=t,{selectListeners:o}=$i({emit:a});return(r,l)=>{const i=e.resolveComponent("a-option"),s=e.resolveComponent("a-optgroup"),u=e.resolveComponent("a-select");return e.openBlock(),e.createBlock(u,e.mergeProps({"model-value":r.modelValue,placeholder:"选择函数","allow-search":"","filter-option":r.filterFunctionOption,class:"function-select-compact"},e.toHandlers(e.unref(o))),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.functionCategories,d=>(e.openBlock(),e.createBlock(s,{key:d.name,label:d.label},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.functions,p=>(e.openBlock(),e.createBlock(i,{key:p.name,value:p.name,label:p.displayName},{default:e.withCtx(()=>[e.createVNode(Ai,{"display-name":p.displayName,description:p.description},null,8,["display-name","description"])]),_:2},1032,["value","label"]))),128))]),_:2},1032,["label"]))),128))]),_:1},16,["model-value","filter-option"])}}}),Hi=v(Oi,[["__scopeId","data-v-1be93c7a"]]),zi=e.defineComponent({__name:"FunctionUsageButton",props:{visible:{type:Boolean}},emits:["click"],setup(n,{emit:t}){const a=t;return(o,r)=>{const l=e.resolveComponent("icon-question-circle"),i=e.resolveComponent("a-button"),s=e.resolveComponent("a-tooltip");return o.visible?(e.openBlock(),e.createBlock(s,{key:0,content:"查看函数用法和示例"},{default:e.withCtx(()=>[e.createVNode(i,{type:"text",size:"small",class:"function-help-btn",onClick:r[0]||(r[0]=u=>a("click"))},{default:e.withCtx(()=>[e.createVNode(l,{style:{fontSize:"16px",color:"#165dff"}})]),_:1})]),_:1})):e.createCommentVNode("",!0)}}}),Gi=v(zi,[["__scopeId","data-v-79d8a40b"]]);function ji(n){const{setupResult:t}=n;return{onUpdateFunction:t.onUpdateFunction,onShowUsage:t.onShowUsage}}function Wi(n){return{onUpdateFunction:o=>n.emit("update:function",o),onShowUsage:()=>n.emit("show-usage")}}function qi(n){const t=Wi(n);return ji({setupResult:t})}const Yi={class:"function-select-group"},Xi=e.defineComponent({__name:"FunctionSelectPanel",props:{modelValue:{default:""},functionCategories:{},selectedFunction:{default:null},filterFunctionOption:{}},emits:["update:function","show-usage"],setup(n,{emit:t}){const a=t,{onUpdateFunction:o,onShowUsage:r}=qi({emit:a});return(l,i)=>(e.openBlock(),e.createElementBlock("div",Yi,[e.createVNode(Hi,{"model-value":l.modelValue,"function-categories":l.functionCategories,"filter-function-option":l.filterFunctionOption,"onUpdate:modelValue":e.unref(o)},null,8,["model-value","function-categories","filter-function-option","onUpdate:modelValue"]),e.createVNode(Gi,{visible:!!l.selectedFunction,onClick:e.unref(r)},null,8,["visible","onClick"])]))}}),Ki=v(Xi,[["__scopeId","data-v-158edb66"]]);function Ji(n){const{controller:t,listeners:a,shouldRenderComparison:o,comparisonSelectedFunction:r}=n.setupResult;return{selectedFunction:t.selectedFunction,comparisonSelectedFunction:r,functionCategories:t.functionCategories,filterFunctionOption:t.filterFunctionOption,returnTypeOperators:t.returnTypeOperators,getParameterActualValue:t.getParameterActualValue,getParameterWithValue:t.getParameterWithValue,shouldRenderComparison:o,functionSelectListeners:a.functionSelectListeners,parameterListListeners:a.parameterListListeners,comparisonPanelListeners:a.comparisonPanelListeners}}function Qi(n){const{filterActions:t,usageActions:a}=n;return{filterFunctionOption:t.filterFunctionOption,showFunctionUsage:a.showFunctionUsage}}const Zi=n=>{if(!n||typeof n!="object")return"";const t=n,a=t.value||t.key;return typeof a=="string"?a:""};function es(){return{filterFunctionOption:(t,a)=>{if(!t)return!0;const o=t.toLowerCase(),r=Zi(a),l=_.AVIATOR_FUNCTIONS.find(i=>i.name===r);return l?l.name.toLowerCase().includes(o)||l.displayName.toLowerCase().includes(o)||l.description.toLowerCase().includes(o):!1}}}function ts(n){return n.parameters.length===0?[e.h("span",{style:{color:"#86909c",fontStyle:"italic",fontSize:"12px"}},"无参数")]:n.parameters.map(t=>e.h("div",{class:"usage-param-item",style:{marginBottom:"8px"}},[e.h("span",{style:{fontFamily:"Consolas, Monaco, monospace",color:"#165dff",fontWeight:500}},t.name),e.h("span",{style:{color:"#86909c",fontSize:"11px",marginLeft:"4px"}},`(${t.type})`),t.required?e.h("span",{style:{color:"#f53f3f",fontSize:"11px",marginLeft:"4px"}},"*必填"):null,e.h("span",{style:{color:"#4e5969",marginLeft:"6px"}},`- ${t.description}`)]))}function ns(n){return{string:"blue",number:"green",boolean:"orange",array:"purple",list:"purple",set:"purple",map:"cyan",object:"cyan",date:"magenta"}[n]||"gray"}function as(n){return{display:"inline-block",padding:"2px 8px",borderRadius:"4px",fontSize:"12px",backgroundColor:n==="blue"?"#e8f3ff":n==="green"?"#e8f8f2":n==="orange"?"#fff3e8":"#f2f3f5",color:n==="blue"?"#165dff":n==="green"?"#00b42a":n==="orange"?"#ff7d00":"#4e5969"}}function os(n,t){const a=ns(n.returnType),o=ts(n);return e.h("div",{style:{fontSize:"13px"}},[e.h("div",{style:{marginBottom:"12px"}},[e.h("div",{style:{fontWeight:500,color:"#1d2129",marginBottom:"4px"}},"函数说明:"),e.h("div",{style:{color:"#4e5969"}},n.description)]),e.h("div",{style:{marginBottom:"12px"}},[e.h("div",{style:{fontWeight:500,color:"#1d2129",marginBottom:"4px"}},"参数列表:"),...o]),e.h("div",{style:{marginBottom:"12px"}},[e.h("div",{style:{fontWeight:500,color:"#1d2129",marginBottom:"4px"}},"返回类型:"),e.h("span",{style:as(a)},n.returnType)]),e.h("div",[e.h("div",{style:{fontWeight:500,color:"#1d2129",marginBottom:"4px"}},"使用示例:"),e.h("div",{style:{display:"flex",alignItems:"center",gap:"8px",backgroundColor:"#f8f9fa",border:"1px solid #e5e6eb",borderRadius:"4px",padding:"8px 12px"}},[e.h("code",{style:{flex:1,fontFamily:"Consolas, Monaco, monospace",fontSize:"13px",color:"#1d2129"}},n.example),e.h("a",{style:{color:"#165dff",cursor:"pointer",fontSize:"12px",textDecoration:"none",flexShrink:0},onClick:t.onCopyExample},"复制")])])])}function rs(n){const t=async o=>{try{await navigator.clipboard.writeText(o),T.Message.success("示例已复制")}catch{T.Message.error("复制失败")}};return{showFunctionUsage:()=>{if(!n.selectedFunction.value)return;const o=n.selectedFunction.value,r=os(o,{onCopyExample:()=>t(o.example)});T.Notification.info({title:`📖 ${o.displayName||o.name}`,content:r,duration:3e4,closable:!0,position:"topRight"})}}}function ls(n){const t=es(),a=rs(n);return Qi({filterActions:t,usageActions:a})}function is(n){const{state:t,actions:a}=n;return{selectedFunction:t.selectedFunction,functionCategories:t.functionCategories,shouldShowComparison:t.shouldShowComparison,returnTypeOperators:t.returnTypeOperators,getParameterActualValue:t.getParameterActualValue,getParameterWithValue:t.getParameterWithValue,filterFunctionOption:a.filterFunctionOption,showFunctionUsage:a.showFunctionUsage}}const ss=[{name:"system",label:"🔧 系统函数"},{name:"string",label:"📝 字符串函数"},{name:"math",label:"🔢 数学函数"},{name:"sequence",label:"📊 集合函数"},{name:"datetime",label:"📅 日期时间函数"},{name:"custom",label:"⚡ 自定义函数"}],R=_.COMPARISON_OPERATORS;function ds(){const n=ss.map(t=>({name:t.name,label:t.label,functions:[]}));return _.AVIATOR_FUNCTIONS.forEach(t=>{const a=n.find(o=>o.name===t.category);a&&a.functions.push(t)}),n.filter(t=>t.functions.length>0)}const $=n=>n?String(n).toLowerCase():"",O=n=>["list","array","set"].includes(n),us=(n,t)=>!n||!t?!1:n===t?!0:O(n)&&O(t);function ps(n,t){var o;const a=(o=n.parameters)==null?void 0:o.find(r=>r.name===t);if(a)return a.isNested&&a.nestedNode?a.nestedNode:a.value}function cs(n,t){var r;const a=(r=n.parameters)==null?void 0:r.find(l=>l.name===t.name);if(!a)return t;const o={name:a.name||t.name,description:t.description,type:a.type||t.type,required:t.required,valueType:a.valueType||t.valueType};return"value"in a?o.value=a.value:"value"in t&&(o.value=t.value),"nestedNode"in a?o.nestedNode=a.nestedNode:"nestedNode"in t&&(o.nestedNode=t.nestedNode),"isNested"in a?o.isNested=a.isNested:"isNested"in t&&(o.isNested=t.isNested),o}function ms(n){const{props:t}=n,a=e.computed(()=>t.node.functionName&&_.AVIATOR_FUNCTIONS.find(u=>u.name===t.node.functionName)||null),o=e.computed(()=>ds()),r=e.computed(()=>{if(!a.value)return!1;const u=$(t.expectedReturnType),d=$(a.value.returnType);return us(d,u)?!1:a.value.returnType!=="boolean"||t.node.comparison}),l=e.computed(()=>{if(!a.value)return[];const u=a.value.returnType;return R[u]||R.string||[]});return{selectedFunction:a,functionCategories:o,shouldShowComparison:r,returnTypeOperators:l,getParameterActualValue:u=>ps(t.node,u),getParameterWithValue:u=>cs(t.node,u)}}function fs(n){const t=ms({props:n.props}),a=ls(t);return is({state:t,actions:a})}function vs(n){const{emit:t,showFunctionUsage:a}=n;return{functionSelectListeners:{"update:function":i=>t("update:function",i),"show-usage":()=>a()},parameterListListeners:{"update:parameter":i=>t("update:parameter",i),"update:parameter-type":i=>t("update:parameter-type",i),"update:parameter-value-type":i=>t("update:parameter-value-type",i)},comparisonPanelListeners:{"update:comparison":i=>t("update:comparison",i),"update:value":i=>t("update:value",i),"update:value-data-type":i=>t("update:value-data-type",i)}}}function ys(n){const{props:t,emit:a}=n,o=fs({props:t}),r=vs({emit:a,showFunctionUsage:o.showFunctionUsage}),l=e.computed(()=>!!o.selectedFunction.value&&t.node.comparison!==void 0&&o.shouldShowComparison.value),i=e.computed(()=>o.selectedFunction.value);return{controller:o,listeners:r,shouldRenderComparison:l,comparisonSelectedFunction:i}}function gs(n){const t=ys(n);return Ji({setupResult:t})}const Vs={class:"function-mode-editor"},_s=e.defineComponent({__name:"FunctionModeEditor",props:{node:{},availableFields:{},expectedReturnType:{},getParameterDataType:{type:Function}},emits:["update:function","update:parameter","update:parameter-type","update:parameter-value-type","update:comparison","update:value","update:value-data-type"],setup(n,{emit:t}){const a=n,o=t,{selectedFunction:r,comparisonSelectedFunction:l,functionCategories:i,filterFunctionOption:s,returnTypeOperators:u,getParameterActualValue:d,getParameterWithValue:p,shouldRenderComparison:c,functionSelectListeners:m,parameterListListeners:g,comparisonPanelListeners:y}=gs({props:a,emit:o});return(V,f)=>(e.openBlock(),e.createElementBlock("div",Vs,[e.createVNode(Ki,e.mergeProps({"model-value":V.node.functionName,"function-categories":e.unref(i),"selected-function":e.unref(r),"filter-function-option":e.unref(s)},e.toHandlers(e.unref(m))),null,16,["model-value","function-categories","selected-function","filter-function-option"]),e.createVNode(yi,e.mergeProps({node:V.node,"selected-function":e.unref(r),"available-fields":V.availableFields,"get-parameter-data-type":a.getParameterDataType,"get-parameter-actual-value":e.unref(d),"get-parameter-with-value":e.unref(p)},e.toHandlers(e.unref(g))),null,16,["node","selected-function","available-fields","get-parameter-data-type","get-parameter-actual-value","get-parameter-with-value"]),e.unref(c)?(e.openBlock(),e.createBlock(ki,e.mergeProps({key:0,node:V.node,"selected-function":e.unref(l),"available-fields":V.availableFields,"return-type-operators":e.unref(u),"get-parameter-data-type":a.getParameterDataType},e.toHandlers(e.unref(y))),null,16,["node","selected-function","available-fields","return-type-operators","get-parameter-data-type"])):e.createCommentVNode("",!0)]))}}),Ts=v(_s,[["__scopeId","data-v-45fb2471"]]);function hs(n){const{setupResult:t}=n;return{radioGroupListeners:t.radioGroupListeners}}function Cs(n){const{emit:t}=n;return{radioGroupListeners:{"update:model-value":o=>t("update:modelValue",o)}}}function Ns(n){const t=Cs(n);return hs({setupResult:t})}const Ps=e.defineComponent({__name:"ConditionModeRadio",props:{mode:{}},emits:["update:modelValue"],setup(n,{emit:t}){const a=t,{radioGroupListeners:o}=Ns({emit:a});return(r,l)=>{const i=e.resolveComponent("icon-filter"),s=e.resolveComponent("a-radio"),u=e.resolveComponent("icon-thunderbolt"),d=e.resolveComponent("a-radio-group");return e.openBlock(),e.createBlock(d,e.mergeProps({"model-value":r.mode,type:"button",size:"small",class:"node-type-radio"},e.toHandlers(e.unref(o))),{default:e.withCtx(()=>[e.createVNode(s,{value:"condition"},{default:e.withCtx(()=>[e.createVNode(i),l[0]||(l[0]=e.createTextVNode(" 字段 "))]),_:1}),e.createVNode(s,{value:"function"},{default:e.withCtx(()=>[e.createVNode(u),l[1]||(l[1]=e.createTextVNode(" 函数 "))]),_:1})]),_:1},16,["model-value"])}}}),Fs=v(Ps,[["__scopeId","data-v-e0ef62c3"]]),bs=e.defineComponent({__name:"ConditionNegationToggle",props:{isNegated:{type:Boolean}},emits:["update:modelValue"],setup(n,{emit:t}){const a=t;return(o,r)=>{const l=e.resolveComponent("icon-exclamation-circle"),i=e.resolveComponent("a-checkbox"),s=e.resolveComponent("a-tooltip");return e.openBlock(),e.createBlock(s,{content:"取反"},{default:e.withCtx(()=>[e.createVNode(i,{"model-value":o.isNegated,class:"condition-negation-checkbox","onUpdate:modelValue":r[0]||(r[0]=u=>a("update:modelValue",u))},{checkbox:e.withCtx(({checked:u})=>[e.createVNode(l,{style:e.normalizeStyle({fontSize:"30px",color:u?"#f53f3f":"#c9cdd4",transition:"color 0.2s"})},null,8,["style"])]),_:1},8,["model-value"])]),_:1})}}}),Bs=v(bs,[["__scopeId","data-v-c31c6f0e"]]);function Es(n){const{setupResult:t}=n;return{negationToggleListeners:t.negationToggleListeners,modeRadioListeners:t.modeRadioListeners}}function xs(n){const{emit:t}=n;return{negationToggleListeners:{"update:model-value":r=>t("update:negation",r)},modeRadioListeners:{"update:model-value":r=>t("switch:mode",r)}}}function ws(n){const t=xs(n);return Es({setupResult:t})}const Ds={class:"condition-mode-switch"},ks=e.defineComponent({__name:"ConditionModeSwitch",props:{isNegated:{type:Boolean},mode:{}},emits:["update:negation","switch:mode"],setup(n,{emit:t}){const a=t,{negationToggleListeners:o,modeRadioListeners:r}=ws({emit:a});return(l,i)=>(e.openBlock(),e.createElementBlock("div",Ds,[e.createVNode(Bs,e.mergeProps({"is-negated":l.isNegated},e.toHandlers(e.unref(o))),null,16,["is-negated"]),e.createVNode(Fs,e.mergeProps({mode:l.mode},e.toHandlers(e.unref(r))),null,16,["mode"])]))}}),Ls=v(ks,[["__scopeId","data-v-a95bbc0b"]]);function Ss(n){const{conditionNodeMode:t,listeners:a}=n.setupResult;return{conditionNodeMode:t,modeSwitchListeners:a.modeSwitchListeners,fieldModeListeners:a.fieldModeListeners,functionModeListeners:a.functionModeListeners}}function Is(n){return{modeSwitchListeners:{"update:negation":r=>n("update:negation",r),"switch:mode":r=>n("switch:mode",r)},fieldModeListeners:{"update:field":r=>n("update:field",r),"update:array-index":r=>n("update:array-index",r),"update:comparison":r=>n("update:comparison",r),"update:value":r=>n("update:value",r),"update:extra-comparison":r=>n("update:extra-comparison",r),"update:value-data-type":r=>n("update:value-data-type",r)},functionModeListeners:{"update:function":r=>n("update:function",r),"update:parameter":r=>n("update:parameter",r),"update:parameter-type":r=>n("update:parameter-type",r),"update:parameter-value-type":r=>n("update:parameter-value-type",r),"update:comparison":r=>n("update:comparison",r),"update:value":r=>n("update:value",r),"update:value-data-type":r=>n("update:function-value-data-type",r)}}}function Us(n){return e.computed(()=>n.node.field?"condition":n.node.functionName?"function":"condition")}function As(n){const{props:t,emit:a}=n,o=Us(t),r=Is(a);return{conditionNodeMode:o,listeners:r}}function Ms(n){const t=As(n);return Ss({setupResult:t})}const Rs={class:"condition-node-editor"},$s=e.defineComponent({__name:"ConditionNode",props:{node:{},availableFields:{},availableOperators:{},expectedReturnType:{},getParameterDataType:{type:Function}},emits:["update:negation","switch:mode","update:field","update:array-index","update:comparison","update:value","update:extra-comparison","update:value-data-type","update:function","update:parameter","update:parameter-type","update:parameter-value-type","update:function-value-data-type"],setup(n,{emit:t}){const a=n,o=t,{conditionNodeMode:r,modeSwitchListeners:l,fieldModeListeners:i,functionModeListeners:s}=Ms({props:a,emit:o});return(u,d)=>(e.openBlock(),e.createElementBlock("div",Rs,[e.createVNode(Ls,e.mergeProps({"is-negated":u.node.isNegated||!1,mode:e.unref(r)},e.toHandlers(e.unref(l))),null,16,["is-negated","mode"]),e.unref(r)==="condition"?(e.openBlock(),e.createBlock(Ar,e.mergeProps({key:0,node:u.node,"available-fields":u.availableFields,"available-operators":u.availableOperators,"get-parameter-data-type":u.getParameterDataType},e.toHandlers(e.unref(i))),null,16,["node","available-fields","available-operators","get-parameter-data-type"])):e.createCommentVNode("",!0),e.unref(r)==="function"?(e.openBlock(),e.createBlock(Ts,e.mergeProps({key:1,node:u.node,"available-fields":u.availableFields,"expected-return-type":a.expectedReturnType,"get-parameter-data-type":u.getParameterDataType},e.toHandlers(e.unref(s))),null,16,["node","available-fields","expected-return-type","get-parameter-data-type"])):e.createCommentVNode("",!0)]))}}),Os=v($s,[["__scopeId","data-v-ccae3bea"]]),Hs={class:"group-info"},zs=e.defineComponent({__name:"GroupChildrenInfo",props:{childCount:{}},setup(n){return(t,a)=>(e.openBlock(),e.createElementBlock("span",Hs,"("+e.toDisplayString(t.childCount)+" 个条件)",1))}}),Gs=v(zs,[["__scopeId","data-v-ddcb0ec4"]]),js={class:"group-negation"},Ws={class:"negation-label"},qs=e.defineComponent({__name:"GroupNegationToggle",props:{isNegated:{type:Boolean}},emits:["update:modelValue"],setup(n,{emit:t}){const a=t;return(o,r)=>{const l=e.resolveComponent("icon-close-circle"),i=e.resolveComponent("a-checkbox"),s=e.resolveComponent("icon-info-circle"),u=e.resolveComponent("a-tooltip");return e.openBlock(),e.createElementBlock("div",js,[e.createVNode(i,{"model-value":o.isNegated,"onUpdate:modelValue":r[0]||(r[0]=d=>a("update:modelValue",d))},{default:e.withCtx(()=>[e.createElementVNode("span",Ws,[e.createVNode(l,{style:{color:"#f53f3f","margin-right":"4px"}}),r[1]||(r[1]=e.createTextVNode(" 取反 !(...) "))])]),_:1},8,["model-value"]),e.createVNode(u,{content:"勾选后将对整个分组表达式进行取反操作,如 !(condition1 && condition2)"},{default:e.withCtx(()=>[e.createVNode(s,{style:{color:"#86909c","margin-left":"4px",cursor:"help"}})]),_:1})])}}}),Ys=v(qs,[["__scopeId","data-v-d333b60d"]]),Xs=e.defineComponent({__name:"GroupOperatorSelect",props:{operator:{}},emits:["update:modelValue"],setup(n,{emit:t}){const a=t;return(o,r)=>{const l=e.resolveComponent("a-option"),i=e.resolveComponent("a-select");return e.openBlock(),e.createBlock(i,{"model-value":o.operator,style:{width:"100px"},"onUpdate:modelValue":r[0]||(r[0]=s=>a("update:modelValue",s))},{default:e.withCtx(()=>[e.createVNode(l,{value:"AND",label:"AND"},{default:e.withCtx(()=>r[1]||(r[1]=[e.createElementVNode("div",{class:"operator-option"},[e.createElementVNode("span",{class:"operator-symbol"},"&&"),e.createElementVNode("span",{class:"operator-label"},"且")],-1)])),_:1}),e.createVNode(l,{value:"OR",label:"OR"},{default:e.withCtx(()=>r[2]||(r[2]=[e.createElementVNode("div",{class:"operator-option"},[e.createElementVNode("span",{class:"operator-symbol"},"||"),e.createElementVNode("span",{class:"operator-label"},"或")],-1)])),_:1})]),_:1},8,["model-value"])}}}),Ks=v(Xs,[["__scopeId","data-v-7ed74da2"]]),Js={class:"group-editor"},Qs=e.defineComponent({__name:"GroupNode",props:{node:{}},emits:["update:operator","update:negation"],setup(n,{emit:t}){const a=t;return(o,r)=>{var l;return e.openBlock(),e.createElementBlock("div",Js,[e.createVNode(Ks,{operator:o.node.operator,"onUpdate:modelValue":r[0]||(r[0]=i=>a("update:operator",i))},null,8,["operator"]),e.createVNode(Ys,{"is-negated":o.node.isNegated||!1,"onUpdate:modelValue":r[1]||(r[1]=i=>a("update:negation",i))},null,8,["is-negated"]),e.createVNode(Gs,{"child-count":((l=o.node.children)==null?void 0:l.length)||0},null,8,["child-count"])])}}}),Zs=v(Qs,[["__scopeId","data-v-77aab341"]]);function ed(n){return{onConditionNegation:f=>n("update:condition-negation",f),onSwitchMode:f=>n("switch:mode",f),onUpdateField:f=>n("update:field",f),onUpdateArrayIndex:f=>n("update:array-index",f),onUpdateComparison:f=>n("update:comparison",f),onUpdateValue:f=>n("update:value",f),onUpdateExtraComparison:f=>n("update:extra-comparison",f),onUpdateValueDataType:f=>n("update:value-data-type",f),onUpdateFunction:f=>n("update:function",f),onUpdateParameter:f=>n("update:parameter",f),onUpdateParameterType:f=>n("update:parameter-type",f),onUpdateParameterValueType:f=>n("update:parameter-value-type",f),onUpdateFunctionValueDataType:f=>n("update:function-value-data-type",f),onUpdateGroupOperator:f=>n("update:group-operator",f),onUpdateGroupNegation:f=>n("update:group-negation",f)}}function td(n){const{bindings:t}=n,a={"update:negation":t.onConditionNegation,"switch:mode":t.onSwitchMode,"update:field":t.onUpdateField,"update:array-index":t.onUpdateArrayIndex,"update:comparison":t.onUpdateComparison,"update:value":t.onUpdateValue,"update:extra-comparison":t.onUpdateExtraComparison,"update:value-data-type":t.onUpdateValueDataType,"update:function":t.onUpdateFunction,"update:parameter":t.onUpdateParameter,"update:parameter-type":t.onUpdateParameterType,"update:parameter-value-type":t.onUpdateParameterValueType,"update:function-value-data-type":t.onUpdateFunctionValueDataType},o={"update:operator":t.onUpdateGroupOperator,"update:negation":t.onUpdateGroupNegation};return{conditionListeners:a,groupListeners:o}}function nd(n){const t=ed(n.emit),a=td({bindings:t});return{conditionListeners:a.conditionListeners,groupListeners:a.groupListeners}}const ad=e.defineComponent({__name:"TreeNodeEditorPanel",props:{node:{},availableFields:{},availableOperators:{},expectedReturnType:{},getParameterDataType:{type:Function}},emits:["switch:mode","update:condition-negation","update:field","update:array-index","update:comparison","update:value","update:extra-comparison","update:value-data-type","update:function","update:parameter","update:parameter-type","update:parameter-value-type","update:function-value-data-type","update:group-operator","update:group-negation"],setup(n,{emit:t}){const a=t,{conditionListeners:o,groupListeners:r}=nd({emit:a});return(l,i)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[l.node.type==="condition"?(e.openBlock(),e.createBlock(Os,e.mergeProps({key:0,node:l.node,"available-fields":l.availableFields,"available-operators":l.availableOperators,"expected-return-type":l.expectedReturnType,"get-parameter-data-type":l.getParameterDataType},e.toHandlers(e.unref(o))),null,16,["node","available-fields","available-operators","expected-return-type","get-parameter-data-type"])):e.createCommentVNode("",!0),l.node.type==="group"?(e.openBlock(),e.createBlock(Zs,e.mergeProps({key:1,node:l.node},e.toHandlers(e.unref(r))),null,16,["node"])):e.createCommentVNode("",!0)],64))}});function od(n){const{dragBindings:t,listeners:a}=n.setupResult;return{onDragStart:t.onDragStart,onDragEnd:t.onDragEnd,affordanceListeners:a.affordanceListeners,editorListeners:a.editorListeners,actionListeners:a.actionListeners}}function rd(n){return{onAddChild:(i,s)=>n("add-child",i,s),onMoveUp:i=>n("move-up",i),onMoveDown:i=>n("move-down",i),onCopyNode:()=>n("copy-node"),onRemoveNode:i=>n("remove-node",i)}}function ld(n){return{onDragStart:r=>n("drag-start",r),onDragEnd:r=>n("drag-end",r),onToggleExpanded:()=>n("toggle-expanded")}}function id(n){return{onConditionNegation:f=>n("update:condition-negation",f),onSwitchMode:f=>n("switch:mode",f),onUpdateField:f=>n("update:field",f),onUpdateArrayIndex:f=>n("update:array-index",f),onUpdateComparison:f=>n("update:comparison",f),onUpdateValue:f=>n("update:value",f),onUpdateExtraComparison:f=>n("update:extra-comparison",f),onUpdateValueDataType:f=>n("update:value-data-type",f),onUpdateFunction:f=>n("update:function",f),onUpdateParameter:f=>n("update:parameter",f),onUpdateParameterType:f=>n("update:parameter-type",f),onUpdateParameterValueType:f=>n("update:parameter-value-type",f),onUpdateFunctionValueDataType:f=>n("update:function-value-data-type",f),onUpdateGroupOperator:f=>n("update:group-operator",f),onUpdateGroupNegation:f=>n("update:group-negation",f)}}function sd(n){const{dragBindings:t,editorBindings:a,actionBindings:o}=n,r={"toggle-expanded":t.onToggleExpanded},l={"update:condition-negation":a.onConditionNegation,"switch:mode":a.onSwitchMode,"update:field":a.onUpdateField,"update:array-index":a.onUpdateArrayIndex,"update:comparison":a.onUpdateComparison,"update:value":a.onUpdateValue,"update:extra-comparison":a.onUpdateExtraComparison,"update:value-data-type":a.onUpdateValueDataType,"update:function":a.onUpdateFunction,"update:parameter":a.onUpdateParameter,"update:parameter-type":a.onUpdateParameterType,"update:parameter-value-type":a.onUpdateParameterValueType,"update:function-value-data-type":a.onUpdateFunctionValueDataType,"update:group-operator":a.onUpdateGroupOperator,"update:group-negation":a.onUpdateGroupNegation},i={"add-child":o.onAddChild,"move-up":o.onMoveUp,"move-down":o.onMoveDown,"copy-node":o.onCopyNode,"remove-node":o.onRemoveNode};return{affordanceListeners:r,editorListeners:l,actionListeners:i}}function dd(n){const t=ld(n.emit),a=id(n.emit),o=rd(n.emit),r=sd({dragBindings:t,editorBindings:a,actionBindings:o});return{dragBindings:t,listeners:r}}function ud(n){const t=dd(n);return od({setupResult:t})}const pd=["draggable"],cd=e.defineComponent({__name:"TreeNodeContent",props:{node:{},availableFields:{},availableOperators:{},hideActions:{type:Boolean},hasError:{type:Boolean},expectedReturnType:{},getParameterDataType:{type:Function}},emits:["toggle-expanded","drag-start","drag-end","switch:mode","update:condition-negation","update:field","update:array-index","update:comparison","update:value","update:extra-comparison","update:value-data-type","update:function","update:parameter","update:parameter-type","update:parameter-value-type","update:function-value-data-type","update:group-operator","update:group-negation","add-child","move-up","move-down","copy-node","remove-node"],setup(n,{emit:t}){const a=t,{onDragStart:o,onDragEnd:r,affordanceListeners:l,editorListeners:i,actionListeners:s}=ud({emit:a});return(u,d)=>(e.openBlock(),e.createElementBlock("div",{class:"node-content",draggable:!u.hideActions,onDragstart:d[0]||(d[0]=(...p)=>e.unref(o)&&e.unref(o)(...p)),onDragend:d[1]||(d[1]=(...p)=>e.unref(r)&&e.unref(r)(...p))},[e.createVNode(je,e.mergeProps({node:u.node,"hide-actions":u.hideActions},e.toHandlers(e.unref(l))),null,16,["node","hide-actions"]),e.createVNode(ad,e.mergeProps({node:u.node,"available-fields":u.availableFields,"available-operators":u.availableOperators,"expected-return-type":u.expectedReturnType,"get-parameter-data-type":u.getParameterDataType},e.toHandlers(e.unref(i))),null,16,["node","available-fields","available-operators","expected-return-type","get-parameter-data-type"]),e.createVNode(Oe,e.mergeProps({node:u.node,"hide-actions":u.hideActions,"has-error":u.hasError},e.toHandlers(e.unref(s))),null,16,["node","hide-actions","has-error"])],40,pd))}}),md=v(cd,[["__scopeId","data-v-bfb3eb44"]]),fd={key:0,class:"connection-line"},vd=e.defineComponent({__name:"TreeNodeShell",props:{nodeClasses:{},indentSize:{},level:{}},emits:["node-dragover","node-dragleave","node-drop"],setup(n,{emit:t}){const a=t;return(o,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["tree-node",o.nodeClasses]),style:e.normalizeStyle({paddingLeft:`${o.indentSize}px`}),onDragover:r[0]||(r[0]=l=>a("node-dragover",l)),onDragleave:r[1]||(r[1]=l=>a("node-dragleave",l)),onDrop:r[2]||(r[2]=l=>a("node-drop",l))},[e.renderSlot(o.$slots,"default",{},void 0,!0),o.level>0?(e.openBlock(),e.createElementBlock("div",fd)):e.createCommentVNode("",!0)],38))}}),yd=v(vd,[["__scopeId","data-v-72b8977f"]]);function gd(n){const{setupResult:t}=n;return{hasError:t.exposedBindings.hasError,indentSize:t.exposedBindings.indentSize,nodeClasses:t.exposedBindings.nodeClasses,getAvailableOperators:t.exposedBindings.getAvailableOperators,shellListeners:t.listeners.shellListeners,contentListeners:t.listeners.contentListeners,childrenListeners:t.listeners.childrenListeners}}function Vd(n){return{forwardUpdateNode:(p,c)=>{n("update-node",p,c)},forwardAddChild:(p,c)=>{n("add-child",p,c)},forwardRemoveNode:p=>{n("remove-node",p)},forwardMoveUp:p=>{n("move-up",p)},forwardMoveDown:p=>{n("move-down",p)},forwardCopyNode:p=>{n("copy-node",p)},forwardUpdateParameterType:(p,c)=>{n("update-parameter-type",p,c)},forwardUpdateParameterValueDataType:(p,c,m)=>{n("update-parameter-value-data-type",p,c,m)},forwardDragNode:(p,c,m)=>{n("drag-node",p,c,m)}}}function _d(n){const{updateConditionValueDataType:t,updateFunctionValueDataType:a,updateParameter:o,updateParameterType:r,updateParameterValueDataType:l}=n;return{onConditionValueDataType:({fieldName:c,dataType:m})=>{t(c,m)},onFunctionValueDataType:({fieldName:c,dataType:m})=>{a(c,m)},onParameterUpdate:({paramName:c,value:m})=>{o(c,m)},onParameterTypeUpdate:({paramName:c,type:m})=>{r(c,m)},onParameterValueTypeUpdate:({paramName:c,dataType:m})=>{l(c,m)}}}function Td(n){const{drag:t,mutation:a}=n;return{isDragOver:t.isDragOver,dragPosition:t.dragPosition,handleDragStart:t.handleDragStart,handleDragEnd:t.handleDragEnd,handleDragOver:t.handleDragOver,handleDragLeave:t.handleDragLeave,handleDrop:t.handleDrop,hasError:a.hasError,indentSize:a.indentSize,toggleExpanded:a.toggleExpanded,updateOperator:a.updateOperator,updateConditionNegation:a.updateConditionNegation,updateGroupNegation:a.updateGroupNegation,copyNode:a.copyNode,updateBaseField:a.updateBaseField,updateArrayIndex:a.updateArrayIndex,getAvailableOperators:a.getAvailableOperators,switchConditionMode:a.switchConditionMode,updateComparison:a.updateComparison,updateValue:a.updateValue,updateExtraComparison:a.updateExtraComparison,updateFunction:a.updateFunction,updateParameter:a.updateParameter,updateParameterType:a.updateParameterType,updateParameterValueDataType:a.updateParameterValueDataType,updateConditionValueDataType:a.updateConditionValueDataType,updateFunctionValueDataType:a.updateFunctionValueDataType}}function hd(n){const{startEndHandlers:t,overDropHandlers:a,leaveHandler:o}=n;return{handleDragStart:t.handleDragStart,handleDragEnd:t.handleDragEnd,handleDragOver:a.handleDragOver,handleDrop:a.handleDrop,handleDragLeave:o.handleDragLeave}}function Cd(n){const{clearDragState:t}=n;return{handleDragLeave:o=>{const r=o.relatedTarget,l=o.currentTarget;(!l||!r||!l.contains(r))&&t()}}}function Nd(n,t,a){return n==="group"?t<a*.25?"before":t>a*.75?"after":"inside":t<a*.5?"before":"after"}function H(n,t){const a=n.currentTarget;a&&(a.style.opacity=t)}function Pd(n){const t=n.currentTarget;return(t==null?void 0:t.getBoundingClientRect())??null}function Fd(n){const{nodeId:t,nodeType:a,isDragOver:o,dragPosition:r,emitDragNode:l,clearAllDragStates:i}=n;return{handleDragOver:d=>{if(d.preventDefault(),d.stopPropagation(),!d.dataTransfer)return;if(d.dataTransfer.getData("text/plain")===t){d.dataTransfer.dropEffect="none";return}d.dataTransfer.dropEffect="move",o.value=!0;const c=Pd(d);if(!c)return;const m=d.clientY-c.top;r.value=Nd(a,m,c.height)},handleDrop:d=>{if(d.preventDefault(),d.stopPropagation(),!d.dataTransfer)return;const p=d.dataTransfer.getData("text/plain");if(p===t){i();return}r.value&&l(p,t,r.value),i()}}}function bd(n){const{nodeId:t,clearAllDragStates:a}=n;return{handleDragStart:l=>{l.dataTransfer&&(l.dataTransfer.setData("text/plain",t),l.dataTransfer.effectAllowed="move",H(l,"0.5"),a())},handleDragEnd:l=>{H(l,"1"),a()}}}function Bd(n){const t=bd({nodeId:n.nodeId,clearAllDragStates:n.clearAllDragStates}),a=Fd(n),o=Cd({clearDragState:n.clearDragState});return hd({startEndHandlers:t,overDropHandlers:a,leaveHandler:o})}let C=0,N=!1;const oe=()=>{if(typeof document>"u")return;document.querySelectorAll(".tree-node").forEach(t=>{const a=t;a.classList.remove("drag-over","drag-before","drag-after","drag-inside");const o=a.querySelector(".node-content");o&&(o.style.border="",o.style.background="",o.style.boxShadow="")})},P=()=>{oe()},Ed=()=>{typeof document>"u"||(N||(document.addEventListener("dragend",P),document.addEventListener("drop",P),N=!0),C+=1)},xd=()=>{typeof document>"u"||(C=Math.max(0,C-1),C===0&&N&&(document.removeEventListener("dragend",P),document.removeEventListener("drop",P),N=!1))};function wd(n){const{props:t,emitDragNode:a}=n,o=e.ref(!1),r=e.ref(null),l=()=>{o.value=!1,r.value=null},i=()=>{oe(),l()};e.onMounted(()=>{Ed()}),e.onUnmounted(()=>{xd()});const{handleDragStart:s,handleDragEnd:u,handleDragOver:d,handleDragLeave:p,handleDrop:c}=Bd({nodeId:t.node.id,nodeType:t.node.type,isDragOver:o,dragPosition:r,emitDragNode:a,clearDragState:l,clearAllDragStates:i});return{isDragOver:o,dragPosition:r,handleDragStart:s,handleDragEnd:u,handleDragOver:d,handleDragLeave:p,handleDrop:c}}function Dd(n){const{props:t,emitUpdateNode:a,emitUpdateParameterValueDataType:o}=n,r=d=>{const p=t.availableFields.find(c=>c.value===d);return(p==null?void 0:p.type)||"string"},l=()=>{if(!t.node.field)return"";const d=t.node.field.match(/^([a-z_][\w.]*)(\[[^\]]+\])?$/i);return d?d[1]:t.node.field};return{getFieldType:r,updateBaseField:d=>{const p=r(d);a(t.node.id,{field:d,fieldType:p}),o(t.node.id,"condition_value",h(p==="array"?"string":p))},updateArrayIndex:d=>{const p=l();if(!p)return;const c=d!==void 0?`${p}[${d}]`:p,m=r(p);a(t.node.id,{field:c,fieldType:m})},getAvailableOperators:()=>{const d=l(),p=r(d||"");return t.node.field&&p==="array"&&!/\[\d+\]$/.test(t.node.field)?_.COMPARISON_OPERATORS.array:_.COMPARISON_OPERATORS[p]||_.COMPARISON_OPERATORS.string}}}const kd=new Set(["== nil","!= nil","== ''","!= ''"]);function Ld(n,t){if(!!kd.has(t))return{comparison:t,value:void 0};const o={comparison:t};return t==="match"&&!n.extraComparison?o.extraComparison="== nil":t!=="match"&&n.extraComparison&&(o.extraComparison=void 0),o}function Sd(n){return{value:n}}function Id(n){return{extraComparison:n}}function Ud(n,t,a){const o=n.field||(t.length>0?t[0].value:""),r=a(o);return{updates:{functionName:void 0,functionCategory:void 0,parameters:void 0,field:o,comparison:n.comparison||"=="},valueDataType:h(r)}}function Ad(){const n=_.AVIATOR_FUNCTIONS[0],t=n.parameters.map(a=>({...a,value:void 0}));return{field:void 0,comparison:void 0,value:void 0,valueDataType:void 0,functionName:n.name,functionCategory:n.category,parameters:t}}function Md(n){const t=_.AVIATOR_FUNCTIONS.find(o=>o.name===n);if(!t)return null;const a=t.parameters.map(o=>({...o,value:void 0}));return{functionName:n,functionCategory:t.category,parameters:a,comparison:t.returnType==="boolean"?void 0:"==",value:t.returnType==="boolean"?void 0:"",isNegated:!1}}function Rd(n){const{props:t,emitUpdateNode:a,emitUpdateParameterValueDataType:o,getFieldType:r}=n;return{switchConditionMode:p=>{if(p==="condition"){const c=Ud(t.node,t.availableFields,r);a(t.node.id,c.updates),o(t.node.id,"condition_value",c.valueDataType);return}a(t.node.id,Ad())},updateComparison:p=>{a(t.node.id,Ld(t.node,p))},updateValue:p=>{a(t.node.id,Sd(p))},updateExtraComparison:p=>{a(t.node.id,Id(p))},updateFunction:p=>{const c=Md(p);c&&a(t.node.id,c)}}}function $d(n){const{uiMutation:t,fieldMutation:a,conditionMutation:o,parameterMutation:r}=n;return{hasError:t.hasError,indentSize:t.indentSize,toggleExpanded:t.toggleExpanded,updateOperator:t.updateOperator,updateConditionNegation:t.updateConditionNegation,updateGroupNegation:t.updateGroupNegation,copyNode:t.copyNode,updateBaseField:a.updateBaseField,updateArrayIndex:a.updateArrayIndex,getAvailableOperators:a.getAvailableOperators,switchConditionMode:o.switchConditionMode,updateComparison:o.updateComparison,updateValue:o.updateValue,updateExtraComparison:o.updateExtraComparison,updateFunction:o.updateFunction,updateParameter:r.updateParameter,updateParameterType:r.updateParameterType,updateParameterValueDataType:r.updateParameterValueDataType,updateConditionValueDataType:r.updateConditionValueDataType,updateFunctionValueDataType:r.updateFunctionValueDataType}}function Od(n){const{props:t,emitUpdateNode:a,emitCopyNode:o}=n,r=e.computed(()=>{var c;return(c=t.validationErrors)!=null&&c.length?t.validationErrors.some(m=>m.nodeId===t.node.id):!1}),l=e.computed(()=>{const c=t.level;return c===0?0:c===1?20:c===2?36:c===3?48:Math.min(48+(c-3)*8,80)});return{hasError:r,indentSize:l,toggleExpanded:()=>{a(t.node.id,{expanded:!t.node.expanded})},updateOperator:c=>{a(t.node.id,{operator:c})},updateConditionNegation:c=>{a(t.node.id,{isNegated:c})},updateGroupNegation:c=>{a(t.node.id,{isNegated:c})},copyNode:()=>{o(t.node.id)}}}const Hd=n=>typeof n=="object"&&n!==null&&"id"in n;function zd(n){const{props:t,emitUpdateNode:a,emitUpdateParameterType:o,emitUpdateParameterValueDataType:r}=n;return{updateParameter:(p,c)=>{const m=(t.node.parameters||[]).map(y=>({...y})),g=m.findIndex(y=>y.name===p);g<0||(Hd(c)?m[g]={...m[g],nestedNode:c,isNested:!0,value:void 0}:m[g]={...m[g],value:c,isNested:!1,nestedNode:void 0},a(t.node.id,{parameters:m}))},updateParameterType:(p,c)=>{const m=(t.node.parameters||[]).map(y=>({...y})),g=m.findIndex(y=>y.name===p);g<0||(m[g]={...m[g],type:c},a(t.node.id,{parameters:m}),o(p,c))},updateParameterValueDataType:(p,c)=>{r(t.node.id,p,c)},updateConditionValueDataType:(p,c)=>{r(t.node.id,"condition_value",c)},updateFunctionValueDataType:(p,c)=>{r(t.node.id,p,c)}}}function Gd(n){const{props:t,emitUpdateNode:a,emitCopyNode:o,emitUpdateParameterType:r,emitUpdateParameterValueDataType:l}=n,i=Dd({props:t,emitUpdateNode:a,emitUpdateParameterValueDataType:l}),s=zd({props:t,emitUpdateNode:a,emitUpdateParameterType:r,emitUpdateParameterValueDataType:l}),u=Od({props:t,emitUpdateNode:a,emitCopyNode:o}),d=Rd({props:t,emitUpdateNode:a,emitUpdateParameterValueDataType:l,getFieldType:i.getFieldType});return $d({uiMutation:u,fieldMutation:i,conditionMutation:d,parameterMutation:s})}function jd(n){const t=Gd(n),a=wd(n);return Td({drag:a,mutation:t})}function Wd(n,t){return jd({props:n,emitUpdateNode:(a,o)=>t("update-node",a,o),emitCopyNode:a=>t("copy-node",a),emitUpdateParameterType:(a,o)=>t("update-parameter-type",a,o),emitUpdateParameterValueDataType:(a,o,r)=>t("update-parameter-value-data-type",a,o,r),emitDragNode:(a,o,r)=>t("drag-node",a,o,r)})}function qd(n){const{controller:t,handlers:a,forwarders:o,nodeClasses:r}=n;return{hasError:t.hasError,indentSize:t.indentSize,nodeClasses:r,toggleExpanded:t.toggleExpanded,updateBaseField:t.updateBaseField,updateArrayIndex:t.updateArrayIndex,switchConditionMode:t.switchConditionMode,updateComparison:t.updateComparison,updateValue:t.updateValue,updateExtraComparison:t.updateExtraComparison,updateOperator:t.updateOperator,updateFunction:t.updateFunction,updateConditionNegation:t.updateConditionNegation,updateGroupNegation:t.updateGroupNegation,copyNode:t.copyNode,getAvailableOperators:t.getAvailableOperators,handleDragStart:t.handleDragStart,handleDragEnd:t.handleDragEnd,handleDragOver:t.handleDragOver,handleDragLeave:t.handleDragLeave,handleDrop:t.handleDrop,onConditionValueDataType:a.onConditionValueDataType,onFunctionValueDataType:a.onFunctionValueDataType,onParameterUpdate:a.onParameterUpdate,onParameterTypeUpdate:a.onParameterTypeUpdate,onParameterValueTypeUpdate:a.onParameterValueTypeUpdate,forwardUpdateNode:o.forwardUpdateNode,forwardAddChild:o.forwardAddChild,forwardRemoveNode:o.forwardRemoveNode,forwardMoveUp:o.forwardMoveUp,forwardMoveDown:o.forwardMoveDown,forwardCopyNode:o.forwardCopyNode,forwardUpdateParameterType:o.forwardUpdateParameterType,forwardUpdateParameterValueDataType:o.forwardUpdateParameterValueDataType,forwardDragNode:o.forwardDragNode}}function Yd(n){return{"update-node":n.forwardUpdateNode,"add-child":n.forwardAddChild,"remove-node":n.forwardRemoveNode,"move-up":n.forwardMoveUp,"move-down":n.forwardMoveDown,"copy-node":n.forwardCopyNode,"update-parameter-type":n.forwardUpdateParameterType,"update-parameter-value-data-type":n.forwardUpdateParameterValueDataType,"drag-node":n.forwardDragNode}}function Xd(n){const{controller:t,handlers:a,forwarders:o}=n;return{"toggle-expanded":t.toggleExpanded,"drag-start":t.handleDragStart,"drag-end":t.handleDragEnd,"update:condition-negation":t.updateConditionNegation,"switch:mode":t.switchConditionMode,"update:field":t.updateBaseField,"update:array-index":t.updateArrayIndex,"update:comparison":t.updateComparison,"update:value":t.updateValue,"update:extra-comparison":t.updateExtraComparison,"update:value-data-type":a.onConditionValueDataType,"update:function":t.updateFunction,"update:parameter":a.onParameterUpdate,"update:parameter-type":a.onParameterTypeUpdate,"update:parameter-value-type":a.onParameterValueTypeUpdate,"update:function-value-data-type":a.onFunctionValueDataType,"update:group-operator":t.updateOperator,"update:group-negation":t.updateGroupNegation,"add-child":o.forwardAddChild,"move-up":o.forwardMoveUp,"move-down":o.forwardMoveDown,"copy-node":t.copyNode,"remove-node":o.forwardRemoveNode}}function Kd(n){return{"node-dragover":n.handleDragOver,"node-dragleave":n.handleDragLeave,"node-drop":n.handleDrop}}function Jd(n){const{controller:t,handlers:a,forwarders:o}=n,r=Kd(t),l=Xd({controller:t,handlers:a,forwarders:o}),i=Yd(o);return{shellListeners:r,contentListeners:l,childrenListeners:i}}function Qd(n){const{props:t,isDragOver:a,dragPosition:o,hasError:r}=n;return e.computed(()=>({"node-condition":t.node.type==="condition"&&!t.node.functionName,"node-function":t.node.type==="condition"&&!!t.node.functionName,"node-group":t.node.type==="group","node-expanded":t.node.type==="group"&&t.node.expanded,"node-collapsed":t.node.type==="group"&&!t.node.expanded,"drag-over":a.value,"drag-before":o.value==="before","drag-after":o.value==="after","drag-inside":o.value==="inside","has-error":r.value}))}function Zd(n){const{props:t,emit:a}=n,o=Wd(t,a),r=_d({updateConditionValueDataType:o.updateConditionValueDataType,updateFunctionValueDataType:o.updateFunctionValueDataType,updateParameter:o.updateParameter,updateParameterType:o.updateParameterType,updateParameterValueDataType:o.updateParameterValueDataType}),l=Vd(a),i=Qd({props:t,isDragOver:o.isDragOver,dragPosition:o.dragPosition,hasError:o.hasError}),s=Jd({controller:o,handlers:r,forwarders:l});return{exposedBindings:qd({controller:o,handlers:r,forwarders:l,nodeClasses:i}),listeners:s}}function eu(n){const t=Zd(n);return gd({setupResult:t})}const w=e.defineComponent({__name:"TreeNodeComponent",props:{node:{},availableFields:{},level:{},allowedFunctions:{},hideActions:{type:Boolean},expectedReturnType:{},getParameterDataType:{type:Function},validationErrors:{}},emits:["update-node","add-child","remove-node","move-up","move-down","copy-node","update-parameter-type","update-parameter-value-data-type","drag-node"],setup(n,{emit:t}){const a=n,o=t,{hasError:r,indentSize:l,nodeClasses:i,getAvailableOperators:s,shellListeners:u,contentListeners:d,childrenListeners:p}=eu({props:a,emit:o});return(c,m)=>(e.openBlock(),e.createBlock(yd,e.mergeProps({"node-classes":e.unref(i),"indent-size":e.unref(l),level:c.level},e.toHandlers(e.unref(u))),{default:e.withCtx(()=>[e.createVNode(md,e.mergeProps({node:c.node,"available-fields":c.availableFields,"available-operators":e.unref(s)(),"hide-actions":c.hideActions,"has-error":e.unref(r),"expected-return-type":c.expectedReturnType,"get-parameter-data-type":c.getParameterDataType},e.toHandlers(e.unref(d))),null,16,["node","available-fields","available-operators","hide-actions","has-error","expected-return-type","get-parameter-data-type"]),e.createVNode(De,e.mergeProps({node:c.node,"available-fields":c.availableFields,level:c.level,"expected-return-type":c.expectedReturnType,"get-parameter-data-type":c.getParameterDataType,"validation-errors":c.validationErrors},e.toHandlers(e.unref(p))),null,16,["node","available-fields","level","expected-return-type","get-parameter-data-type","validation-errors"])]),_:1},16,["node-classes","indent-size","level"]))}});function tu(n){const{listeners:t}=n.setupResult;return{nodeListeners:t.nodeListeners,emptyStateButtonListeners:t.emptyStateButtonListeners}}function nu(n){return{onAddGroup:()=>{n("add-group")}}}function au(n){const{nodeForwarders:t,groupForwarders:a}=n,{treeNodeListeners:o}=ee({forwarders:t}),r={click:a.onAddGroup};return{nodeListeners:o,emptyStateButtonListeners:r}}function ou(n){return Z(n)}function ru(n){const t=ou(n.emit),a=nu(n.emit);return{listeners:au({nodeForwarders:t,groupForwarders:a})}}function lu(n){const t=ru(n);return tu({setupResult:t})}const iu={class:"expression-tree"},su={key:0,class:"empty-state"},du=e.defineComponent({__name:"TreeCanvas",props:{rootNodes:{},availableFields:{},validationErrors:{},getParameterDataType:{type:Function}},emits:["update-node","add-child","remove-node","move-up","move-down","copy-node","update-parameter-type","update-parameter-value-data-type","drag-node","add-group"],setup(n,{emit:t}){const a=t,{nodeListeners:o,emptyStateButtonListeners:r}=lu({emit:a});return(l,i)=>{const s=e.resolveComponent("a-button"),u=e.resolveComponent("a-empty");return e.openBlock(),e.createElementBlock("div",iu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.rootNodes,d=>(e.openBlock(),e.createBlock(w,e.mergeProps({key:d.id,node:d,"available-fields":l.availableFields,level:0,"get-parameter-data-type":l.getParameterDataType,"validation-errors":l.validationErrors},e.toHandlers(e.unref(o))),null,16,["node","available-fields","get-parameter-data-type","validation-errors"]))),128)),l.rootNodes.length===0?(e.openBlock(),e.createElementBlock("div",su,[e.createVNode(u,{description:"还没有任何节点"},{default:e.withCtx(()=>[e.createVNode(s,e.mergeProps({type:"primary"},e.toHandlers(e.unref(r))),{default:e.withCtx(()=>i[0]||(i[0]=[e.createTextVNode("添加第一个分组")])),_:1},16)]),_:1})])):e.createCommentVNode("",!0)])}}}),uu=v(du,[["__scopeId","data-v-16fbdb15"]]),pu={class:"validation-status"},cu={class:"error-list"},mu={class:"error-number"},fu={class:"error-message"},vu=e.defineComponent({__name:"ValidationStatusPanel",props:{allErrors:{}},setup(n){return(t,a)=>{const o=e.resolveComponent("a-alert");return e.openBlock(),e.createElementBlock("div",pu,[t.allErrors.length>0?(e.openBlock(),e.createBlock(o,{key:0,type:"error","show-icon":"",closable:""},{title:e.withCtx(()=>[e.createTextVNode(" 发现 "+e.toDisplayString(t.allErrors.length)+" 个问题 ",1)]),default:e.withCtx(()=>[e.createElementVNode("div",cu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.allErrors,(r,l)=>(e.openBlock(),e.createElementBlock("div",{key:`${r.nodeId}-${l}`,class:"error-item"},[e.createElementVNode("span",mu,e.toDisplayString(l+1)+".",1),e.createElementVNode("span",fu,e.toDisplayString(r.message),1)]))),128))])]),_:1})):e.createCommentVNode("",!0)])}}}),yu=v(vu,[["__scopeId","data-v-55746b55"]]);function gu(n){const{controller:t,listeners:a,hasDataPreview:o}=n.setupResult;return{extractedFields:t.extractedFields,dataSourceInfo:t.dataSourceInfo,rootNodes:t.rootNodes,availableFields:t.availableFields,validationErrors:t.validationErrors,allErrors:t.allErrors,generatedExpression:t.generatedExpression,validating:t.validating,validationResult:t.validationResult,addGroup:t.addGroup,expandAll:t.expandAll,collapseAll:t.collapseAll,updateNode:t.updateNode,addChildNode:t.addChildNode,removeNode:t.removeNode,moveNodeUpAction:t.moveNodeUpAction,moveNodeDownAction:t.moveNodeDownAction,copyNodeAction:t.copyNodeAction,handleParameterTypeUpdate:t.handleParameterTypeUpdate,handleParameterValueDataTypeUpdate:t.handleParameterValueDataTypeUpdate,handleDragNode:t.handleDragNode,clearExpression:t.clearExpression,validateExpressionManually:t.validateExpressionManually,copyExpression:t.copyExpression,formatExpression:t.formatExpression,getParameterDataType:t.getParameterDataType,hasDataPreview:o,toolbarListeners:a.toolbarListeners,treeCanvasListeners:a.treeCanvasListeners,expressionPreviewListeners:a.expressionPreviewListeners}}function Vu(n){const{nodeActions:t,expressionActions:a}=n;return{addGroup:t.addGroup,expandAll:t.expandAll,collapseAll:t.collapseAll,updateNode:t.updateNode,addChildNode:t.addChildNode,removeNode:t.removeNode,moveNodeUpAction:t.moveNodeUpAction,moveNodeDownAction:t.moveNodeDownAction,copyNodeAction:t.copyNodeAction,handleParameterTypeUpdate:t.handleParameterTypeUpdate,handleParameterValueDataTypeUpdate:t.handleParameterValueDataTypeUpdate,handleDragNode:t.handleDragNode,getParameterDataType:t.getParameterDataType,clearExpression:a.clearExpression,validateExpressionManually:a.validateExpressionManually,copyExpression:a.copyExpression,formatExpression:a.formatExpression}}function _u(n,t){return{copyExpression:async()=>{if(!n.generatedExpression.value){t.warning("当前没有可复制的表达式");return}try{await navigator.clipboard.writeText(n.generatedExpression.value),t.success("表达式已复制")}catch{t.error("复制失败")}}}}function Tu(n){const{lifecycleActions:t,clipboardActions:a,validationActions:o}=n;return{clearExpression:t.clearExpression,formatExpression:t.formatExpression,copyExpression:a.copyExpression,validateExpressionManually:o.validateExpressionManually}}function hu(n,t){return{clearExpression:()=>{n.rootNodes.value=[],n.service.clearParameterDataTypes(),n.parseError.value=null,n.validationErrors.value=[],n.validationResult.value=null,n.emitExpression(""),t.success("表达式已清空")},formatExpression:()=>{if(!n.generatedExpression.value)return;const r=br(n.generatedExpression.value);n.emitExpression(r)}}}function Cu(n,t){return{validateExpressionManually:async()=>{var o;if(!n.generatedExpression.value){t.warning("请先构建表达式");return}n.validating.value=!0;try{const r=Br(n.generatedExpression.value)&&n.allErrors.value.length===0;n.validationResult.value=r?{success:!0}:{success:!1,message:((o=n.allErrors.value[0])==null?void 0:o.message)||"表达式校验失败"},r?t.success("表达式验证通过"):t.error(n.validationResult.value.message||"表达式验证失败")}finally{n.validating.value=!1}}}}function Nu(n,t){const a=hu(n,t),o=_u(n,t),r=Cu(n,t);return Tu({lifecycleActions:a,clipboardActions:o,validationActions:r})}function F(n,t,a=null){for(let o=0;o<n.length;o++){const r=n[o];if(r.id===t)return{node:r,parent:a,index:o};if(r.children){const l=F(r.children,t,r);if(l.node)return l}}return{node:null,parent:null,index:-1}}function Pu(n,t,a){const o=l=>{for(const i of l)if(i.id===a||i.children&&o(i.children))return!0;return!1},r=F(n,t).node;return r!=null&&r.children?o(r.children):!1}function re(n,t,a){n.parentId=t,n.level=a,n.children&&n.children.forEach(o=>re(o,n.id,a+1))}function le(n,t,a){const o=r=>{const l=r.findIndex(s=>s.id===t),i=l+a;if(l>=0&&i>=0&&i<r.length){const s=r[l];return r[l]=r[i],r[i]=s,!0}for(const s of r)if(s.children&&o(s.children))return!0;return!1};return o(n)}function Fu(n,t){return le(n,t,-1)}function bu(n,t){return le(n,t,1)}function ie(n){return`${n}_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}function Bu(n){return JSON.parse(JSON.stringify(n))}function se(n,t,a){const o=n.get(t);o&&n.set(a,new Map(o))}function de(n){const{targetNode:t,parameterDataTypes:a,parentId:o}=n;o&&(t.parentId=o),t.children&&t.children.forEach(r=>{const l=r.id;r.id=ie(r.type),r.parentId=t.id,se(a,l,r.id),de({targetNode:r,parameterDataTypes:a,parentId:t.id})})}function ue(n){const{nodes:t,nodeId:a,parameterDataTypes:o}=n;for(const r of t){if(r.id===a){const l=Bu(r);return l.id=ie(r.type),de({targetNode:l,parameterDataTypes:o,parentId:r.parentId}),se(o,r.id,l.id),l}if(r.children){const l=ue({nodes:r.children,nodeId:a,parameterDataTypes:o});if(l)return l}}return null}function pe(n){const{nodes:t,targetId:a,copiedNode:o}=n,r=t.findIndex(l=>l.id===a);if(r>=0)return t.splice(r+1,0,o),!0;for(const l of t)if(l.children&&pe({nodes:l.children,targetId:a,copiedNode:o}))return!0;return!1}function Eu(n,t,a){const o=ue({nodes:n,nodeId:t,parameterDataTypes:a});return o?pe({nodes:n,targetId:t,copiedNode:o})?{success:!0}:{success:!1,reason:"node_not_found"}:{success:!1,reason:"node_not_found"}}function xu(n){const{nodes:t,sourceNode:a,sourceResult:o}=n;if(o.parent){o.parent.children||(o.parent.children=[]),o.parent.children.splice(o.index,0,a);return}t.splice(o.index,0,a)}function wu(n){var l;const{nodes:t,sourceNodeId:a,sourceResult:o}=n;if(o.parent){o.parent.children=((l=o.parent.children)==null?void 0:l.filter(i=>i.id!==a))||[];return}const r=t.findIndex(i=>i.id===a);r>=0&&t.splice(r,1)}function Du(n){const{sourceNode:t,targetNode:a}=n;a.children||(a.children=[]),a.children.push(t)}function ku(n){const{nodes:t,sourceNode:a,targetNodeId:o,targetResult:r,position:l}=n,i=r.parent,s=r.index,u=l==="before"?s:s+1;if(i){i.children||(i.children=[]),i.children.splice(u,0,a);return}const d=t.findIndex(c=>c.id===o),p=l==="before"?d:d+1;t.splice(p,0,a)}function Lu(n,t,a,o){var p;const r=F(n,t),l=F(n,a),i=r.node,s=l.node;if(!i||!s)return console.error("无法找到源节点或目标节点"),{success:!1,reason:"node_not_found"};if(Pu(n,t,a))return{success:!1,reason:"descendant_target"};wu({nodes:n,sourceNodeId:t,sourceResult:r});let u,d;if(o==="inside"){if(s.type!=="group")return xu({nodes:n,sourceNode:i,sourceResult:r}),{success:!1,reason:"invalid_target"};u=s.id,d=s.level+1,Du({sourceNode:i,targetNode:s})}else u=(p=l.parent)==null?void 0:p.id,d=s.level,ku({nodes:n,sourceNode:i,targetNodeId:a,targetResult:l,position:o});return re(i,u,d),{success:!0}}function Su(n){const{state:t,commitNodeMutation:a,notifyDragFailure:o,notifier:r}=n;return{moveNodeUpAction:d=>{Fu(t.rootNodes.value,d)&&a()},moveNodeDownAction:d=>{bu(t.rootNodes.value,d)&&a()},copyNodeAction:d=>{Eu(t.rootNodes.value,d,t.parameterDataTypes).success&&(a({validate:!0}),r.success("节点已复制"))},handleDragNode:(d,p,c)=>{const m=Lu(t.rootNodes.value,d,p,c);if(!m.success){o(m.reason);return}a(),r.success("节点移动成功")}}}function Iu(n){const{structureActions:t,reorderActions:a}=n;return{addGroup:t.addGroup,expandAll:t.expandAll,collapseAll:t.collapseAll,updateNode:t.updateNode,addChildNode:t.addChildNode,removeNode:t.removeNode,handleParameterTypeUpdate:t.handleParameterTypeUpdate,handleParameterValueDataTypeUpdate:t.handleParameterValueDataTypeUpdate,getParameterDataType:t.getParameterDataType,moveNodeUpAction:a.moveNodeUpAction,moveNodeDownAction:a.moveNodeDownAction,copyNodeAction:a.copyNodeAction,handleDragNode:a.handleDragNode}}function Uu(n,t){return{commitNodeMutation:r=>{n.parseError.value=null,n.regenerateExpression(),r!=null&&r.validate&&n.runValidation()},notifyDragFailure:r=>{if(r==="descendant_target"){t.warning("不能将节点拖拽到自己的子节点中");return}r==="invalid_target"&&t.warning("只能拖拽到分组内部")}}}function Au(n){const{state:t,commitNodeMutation:a}=n;return{addGroup:()=>{t.rootNodes.value.push(_.createGroupNode(void 0,0)),a({validate:!0})},expandAll:()=>{A(t.rootNodes.value,!0)},collapseAll:()=>{A(t.rootNodes.value,!1)},updateNode:(m,g)=>{K(t.rootNodes.value,m,g);const y="expanded"in g&&Object.keys(g).length===1;a({validate:!y})},addChildNode:(m,g)=>{const y=Q(t.rootNodes.value,m,g,t.availableFields.value);y.updated&&(y.addedConditionNodeId&&t.service.setParameterDataType(y.addedConditionNodeId,"condition_value",y.addedConditionDataType||h()),a({validate:!0}))},removeNode:m=>{t.rootNodes.value=J(t.rootNodes.value,m),a({validate:!0})},handleParameterTypeUpdate:(m,g)=>{t.regenerateExpression()},handleParameterValueDataTypeUpdate:(m,g,y)=>{t.service.setParameterDataType(m,g,y),t.regenerateExpression()},getParameterDataType:(m,g)=>{var y;return(y=t.parameterDataTypes.get(m))==null?void 0:y.get(g)}}}function Mu(n,t){const a=Uu(n,t),o=Au({state:n,commitNodeMutation:a.commitNodeMutation}),r=Su({state:n,commitNodeMutation:a.commitNodeMutation,notifyDragFailure:a.notifyDragFailure,notifier:t});return Iu({structureActions:o,reorderActions:r})}const Ru={success:()=>{},warning:()=>{},error:()=>{}},D={success:n=>{T.Message.success(n)},warning:n=>{T.Message.warning(n)},error:n=>{T.Message.error(n)}};function $u(n,t){const a=t||D,o=Mu(n,a),r=Nu(n,a);return Vu({nodeActions:o,expressionActions:r})}function Ou(n){const{state:t,actions:a}=n;return{extractedFields:t.extractedFields,dataSourceInfo:t.dataSourceInfo,rootNodes:t.rootNodes,availableFields:t.availableFields,validationErrors:t.validationErrors,allErrors:t.allErrors,generatedExpression:t.generatedExpression,validating:t.validating,validationResult:t.validationResult,addGroup:a.addGroup,expandAll:a.expandAll,collapseAll:a.collapseAll,updateNode:a.updateNode,addChildNode:a.addChildNode,removeNode:a.removeNode,moveNodeUpAction:a.moveNodeUpAction,moveNodeDownAction:a.moveNodeDownAction,copyNodeAction:a.copyNodeAction,handleParameterTypeUpdate:a.handleParameterTypeUpdate,handleParameterValueDataTypeUpdate:a.handleParameterValueDataTypeUpdate,handleDragNode:a.handleDragNode,clearExpression:a.clearExpression,validateExpressionManually:a.validateExpressionManually,copyExpression:a.copyExpression,formatExpression:a.formatExpression,getParameterDataType:a.getParameterDataType}}function Hu(n){const{props:t,generatedExpression:a,loadExpression:o,syncServiceFields:r,runValidation:l}=n;e.watch(()=>t.modelValue,i=>{i!==a.value&&o(i)},{immediate:!0}),e.watch(()=>[t.fieldOptions,t.dataPreview],()=>{r(),a.value&&l()})}function zu(n){const{service:t,parameterDataTypes:a,rootNodes:o,fieldState:r,validationState:l,expressionState:i}=n.setupResult;return{service:t,parameterDataTypes:a,rootNodes:o,generatedExpression:i.generatedExpression,validationErrors:l.validationErrors,parseError:l.parseError,validating:l.validating,validationResult:l.validationResult,extractedFields:r.extractedFields,availableFields:r.availableFields,dataSourceInfo:r.dataSourceInfo,allErrors:l.allErrors,syncServiceFields:r.syncServiceFields,emitExpression:i.emitExpression,regenerateExpression:i.regenerateExpression,runValidation:l.runValidation,loadExpression:i.loadExpression}}function Gu(n){const{service:t,rootNodes:a,emitUpdateModelValue:o,syncServiceFields:r,runValidation:l,validationRefs:i}=n,{parseError:s,validationErrors:u,validationResult:d}=i,p=e.ref(""),c=V=>{p.value=V,o(V)},m=()=>{r();const V=t.generate(a.value);c(V)},g=()=>{a.value=[],p.value="",s.value=null,u.value=[],d.value=null};return{generatedExpression:p,emitExpression:c,regenerateExpression:m,loadExpression:V=>{if(r(),t.clearParameterDataTypes(),!V||!V.trim()){g();return}const f=t.parseDetailed(V);if(p.value=V,f.success){a.value=f.nodes,s.value=null,l();return}a.value=[],u.value=[],s.value=f.error||"表达式解析失败"}}}function ju(n){const{props:t,service:a}=n,o=e.markRaw([...Nr]),r=e.ref(null),l=e.computed(()=>{var d;if(!t.dataPreview)return[];if(((d=r.value)==null?void 0:d.preview)===t.dataPreview)return r.value.fields;try{const p=_.extractFieldsFromJson(t.dataPreview);return r.value={preview:t.dataPreview,fields:p},p}catch{return[]}}),i=e.computed(()=>Pr(l.value,t.fieldOptions,o)),s=e.computed(()=>Fr(l.value));return{extractedFields:l,availableFields:i,dataSourceInfo:s,syncServiceFields:()=>{a.setAvailableFields(i.value)}}}function Wu(n){const{service:t,rootNodes:a}=n,o=e.ref(null),r=e.ref([]),l=e.ref(!1),i=e.ref(null),s=e.computed(()=>{const p=[];return o.value&&p.push({nodeId:"root",message:o.value}),p.push(...r.value),p}),u=()=>{r.value=t.validate(a.value)},d={parseError:o,validationErrors:r,validating:l,validationResult:i};return{parseError:d.parseError,validationErrors:d.validationErrors,validating:d.validating,validationResult:d.validationResult,allErrors:s,runValidation:u}}function qu(n){const{props:t,emitUpdateModelValue:a}=n,o=_.createAviatorExpressionService({availableFields:[]}),r=o.getParameterDataTypes(),l=e.ref([]),i=ju({props:t,service:o,rootNodes:l}),s=Wu({props:t,service:o,rootNodes:l}),u=Gu({props:t,service:o,rootNodes:l,emitUpdateModelValue:a,syncServiceFields:i.syncServiceFields,runValidation:s.runValidation,validationRefs:{parseError:s.parseError,validationErrors:s.validationErrors,validating:s.validating,validationResult:s.validationResult}});return{service:o,parameterDataTypes:r,rootNodes:l,fieldState:i,validationState:s,expressionState:u}}function Yu(n){const t=qu(n);return zu({setupResult:t})}function Xu(n){const t=Yu(n),a=$u(t,n.props.notifier);return Hu({props:n.props,generatedExpression:t.generatedExpression,loadExpression:t.loadExpression,syncServiceFields:t.syncServiceFields,runValidation:t.runValidation}),Ou({state:t,actions:a})}function Ku(n){return{clear:n.clearExpression,validate:n.validateExpressionManually,copy:n.copyExpression,format:n.formatExpression}}function Ju(n){return{"add-group":n.addGroup,"expand-all":n.expandAll,"collapse-all":n.collapseAll}}function Qu(n){return{"update-node":n.updateNode,"add-child":n.addChildNode,"remove-node":n.removeNode,"move-up":n.moveNodeUpAction,"move-down":n.moveNodeDownAction,"copy-node":n.copyNodeAction,"update-parameter-type":n.handleParameterTypeUpdate,"update-parameter-value-data-type":n.handleParameterValueDataTypeUpdate,"drag-node":n.handleDragNode,"add-group":n.addGroup}}function Zu(n){const{controller:t}=n,a=Ju(t),o=Qu(t),r=Ku(t);return{toolbarListeners:a,treeCanvasListeners:o,expressionPreviewListeners:r}}function ep(n){const{props:t,emit:a}=n,o=Xu({props:t,emitUpdateModelValue:i=>a("update:modelValue",i)}),r=Zu({controller:o}),l=e.computed(()=>!!t.dataPreview);return{controller:o,listeners:r,hasDataPreview:l}}function tp(n){const t=ep(n);return gu({setupResult:t})}const np={class:"tree-expression-builder"},ap=e.defineComponent({__name:"TreeExpressionBuilder",props:{modelValue:{},fieldOptions:{},dataPreview:{},notifier:{}},emits:["update:modelValue"],setup(n,{emit:t}){const a=n,o=t,{extractedFields:r,dataSourceInfo:l,hasDataPreview:i,rootNodes:s,availableFields:u,getParameterDataType:d,validationErrors:p,allErrors:c,generatedExpression:m,validating:g,validationResult:y,toolbarListeners:V,treeCanvasListeners:f,expressionPreviewListeners:b}=tp({props:a,emit:o});return(k,fe)=>{const L=e.resolveComponent("a-card");return e.openBlock(),e.createElementBlock("div",np,[e.createVNode(L,{bordered:!1},{default:e.withCtx(()=>[e.createVNode(he,{"extracted-field-count":e.unref(r).length,"has-data-preview":e.unref(i),"data-source-info":e.unref(l)},null,8,["extracted-field-count","has-data-preview","data-source-info"]),e.createVNode(ge,e.toHandlers(e.unref(V)),null,16),e.createVNode(uu,e.mergeProps({"root-nodes":e.unref(s),"available-fields":e.unref(u),"validation-errors":e.unref(p),"get-parameter-data-type":e.unref(d)},e.toHandlers(e.unref(f))),null,16,["root-nodes","available-fields","validation-errors","get-parameter-data-type"]),e.createVNode(yu,{"all-errors":e.unref(c)},null,8,["all-errors"]),e.createVNode(Fe,e.mergeProps({"generated-expression":e.unref(m),validating:e.unref(g),"validation-result":e.unref(y)},e.toHandlers(e.unref(b))),null,16,["generated-expression","validating","validation-result"])]),_:1})])}}}),op=v(ap,[["__scopeId","data-v-ea71b296"]]);function rp(n){const{setupResult:t}=n;return{onUpdateModelValue:t.onUpdateModelValue}}function lp(n){return{onUpdateModelValue:a=>{n.emit("update:modelValue",a)}}}function ip(n){const t=lp(n);return rp({setupResult:t})}const ce=e.defineComponent({__name:"AviatorExpressionBuilder",props:{modelValue:{},fields:{default:()=>[]},dataPreview:{default:""},notifier:{}},emits:["update:modelValue"],setup(n,{emit:t}){const a=t,{onUpdateModelValue:o}=ip({emit:a});return(r,l)=>(e.openBlock(),e.createBlock(op,{"model-value":r.modelValue,"field-options":r.fields,"data-preview":r.dataPreview,notifier:r.notifier,"onUpdate:modelValue":e.unref(o)},null,8,["model-value","field-options","data-preview","notifier","onUpdate:modelValue"]))}});function sp(n){const{handleSave:t,handleCancel:a}=n;return{modalListeners:{ok:()=>t(),cancel:()=>a()},footerListeners:{save:()=>t(),cancel:()=>a()}}}function dp(n){const{localExpression:t,handleSave:a,handleCancel:o}=n.setupResult,r=sp({handleSave:a,handleCancel:o});return{localExpression:t,modalListeners:r.modalListeners,footerListeners:r.footerListeners}}function up(n){const{props:t,emit:a}=n,o=e.ref(t.modelValue||"");return e.watch(()=>t.visible,i=>{i&&(o.value=t.modelValue||"")}),e.watch(()=>t.modelValue,i=>{i!==o.value&&(o.value=i||"")}),e.watch(o,i=>{a("update:modelValue",i)}),{localExpression:o,handleSave:()=>{a("save",o.value),a("update:visible",!1)},handleCancel:()=>{o.value=t.modelValue||"",a("cancel"),a("update:visible",!1)}}}function pp(n){const t=up(n);return dp({setupResult:t})}const me=e.defineComponent({__name:"AviatorExpressionBuilderModal",props:{visible:{type:Boolean},modelValue:{},title:{default:"Aviator 表达式构建器"},width:{default:1200},fields:{default:()=>[]},dataPreview:{default:""},notifier:{}},emits:["update:visible","update:modelValue","save","cancel"],setup(n,{emit:t}){const a=n,o=t,{localExpression:r,modalListeners:l,footerListeners:i}=pp({props:a,emit:o});return(s,u)=>{const d=e.resolveComponent("a-button"),p=e.resolveComponent("a-space"),c=e.resolveComponent("a-modal");return e.openBlock(),e.createBlock(c,{visible:s.visible,title:s.title,width:s.width,"mask-closable":!1,"esc-to-close":!1,onOk:e.unref(l).ok,onCancel:e.unref(l).cancel},{footer:e.withCtx(()=>[e.createVNode(p,null,{default:e.withCtx(()=>[e.createVNode(d,{onClick:e.unref(i).cancel},{default:e.withCtx(()=>u[1]||(u[1]=[e.createTextVNode("取消")])),_:1},8,["onClick"]),e.createVNode(d,{type:"primary",disabled:!e.unref(r),onClick:e.unref(i).save},{default:e.withCtx(()=>u[2]||(u[2]=[e.createTextVNode("保存")])),_:1},8,["disabled","onClick"])]),_:1})]),default:e.withCtx(()=>[e.createVNode(ce,{modelValue:e.unref(r),"onUpdate:modelValue":u[0]||(u[0]=m=>e.isRef(r)?r.value=m:null),fields:s.fields,"data-preview":s.dataPreview,notifier:s.notifier},null,8,["modelValue","fields","data-preview","notifier"])]),_:1},8,["visible","title","width","onOk","onCancel"])}}});function cp(n){const{visible:t,currentExpression:a,dataPreview:o,fieldOptions:r,handleOk:l,handleCancel:i,open:s,updateFieldOptions:u}=n.setupResult;return{visible:t,currentExpression:a,dataPreview:o,fieldOptions:r,handleOk:l,handleCancel:i,exposedApi:{open:s,updateFieldOptions:u}}}function mp(n){const{emit:t,notifier:a}=n,o=e.ref(!1),r=e.ref(""),l=e.ref(""),i=e.ref([]),s=()=>{r.value=""};return{visible:o,currentExpression:r,dataPreview:l,fieldOptions:i,handleOk:m=>{const g=m??r.value;if(!g){a.warning("请构建表达式");return}r.value=g,t("save",g),o.value=!1,s()},handleCancel:()=>{o.value=!1,s()},open:(m,g,y)=>{r.value=m||"",l.value=y||"",g&&g.length>0?i.value=g:i.value=[],o.value=!0},updateFieldOptions:m=>{i.value=m}}}function fp(n){const t=mp(n);return cp({setupResult:t})}const vp=e.defineComponent({__name:"AviatorExpressionBuilderLegacyModal",props:{notifier:{}},emits:["save"],setup(n,{expose:t,emit:a}){const o=n,r=a,l=o.notifier||D,{visible:i,currentExpression:s,dataPreview:u,fieldOptions:d,handleOk:p,handleCancel:c,exposedApi:m}=fp({emit:r,notifier:l});return t({open:m.open,updateFieldOptions:m.updateFieldOptions}),(g,y)=>(e.openBlock(),e.createBlock(me,{visible:e.unref(i),"onUpdate:visible":y[0]||(y[0]=V=>e.isRef(i)?i.value=V:null),modelValue:e.unref(s),"onUpdate:modelValue":y[1]||(y[1]=V=>e.isRef(s)?s.value=V:null),title:"高级表达式构建器",width:1200,fields:e.unref(d),"data-preview":e.unref(u),notifier:e.unref(l),onSave:e.unref(p),onCancel:e.unref(c)},null,8,["visible","modelValue","fields","data-preview","notifier","onSave","onCancel"]))}});exports._sfc_main=vp;exports._sfc_main$1=ce;exports._sfc_main$2=me;exports.defaultTreeExpressionBuilderNotifier=D;exports.noopTreeExpressionBuilderNotifier=Ru;
|
|
9
|
+
//# sourceMappingURL=AviatorExpressionBuilderLegacyModal.vue_vue_type_script_setup_true_lang-CRZlHClr.cjs.map
|