PageSourceSearch

https://www.bodylogicglobal.com/spa-assets/RuleEngineAdminPage-CIJk57pJ.js

js bodylogicglobal.com collected 2026-10-02 11:30:40 UTC 171,304 bytes, 2 lines download raw bytes

1import{a as o,j as e,R as Me}from"./vendor-react-CuuqKQpN.js";import{u as le,M as Ze}from"./vendor-intl-DflcVhi5.js";import{u as os,C as Oe,b as st,F as tt}from"./vendor-form-CRvR2TwE.js";import{d as Ce,u as me,c as qe}from"./vendor-query-DJ11Sd2y.js";import{S as Re}from"./vendor-ui-CP508Bka.js";import{C as at}from"./ConfirmationPopUp-BCPx4J2V.js";import{a as Ke,u as Ye}from"./ContractAcceptanceModal-0VihSvPA.js";import{u as nt}from"./useScreenContext-Jg1QQ7e_.js";import{A as ke,v as rt}from"./main-BFwzyxdJ.js";import{C as it}from"./PrivateRoutes-Cya9nr9y.js";import{B as js,S as lt}from"./StandardTable-Byc5jose.js";import{G as cs}from"./GroupSelectReact-D4_CJ-Z1.js";import{i as V,S as Ae}from"./i18nProvider-CcUjZRgB.js";import{R as fs}from"./RuleEngineCatalogBffService-CZkgu_c4.js";import{T as ot}from"./TenantSettingsService-Du9ZDnFb.js";import{J as gs}from"./JsonEditor-CnMI3Fxc.js";import"./vendor-cjs-BosuxZz1.js";import"./AssistantDrawer-DhOqiwD3.js";import"./vendor-markdown-BXjZCFI9.js";import"./EmptyState-B32jMPfr.js";import"./vendor-monitoring-CnHeFoWS.js";import"./GroupInput-Bs1drV1C.js";import"./vendor-charts-aGF7SBQA.js";import"./vendor-proptypes-BAEEEn7P.js";import"./index-DWRQ7JjA.js";import"./vendor-xlsx-Dq9E-x5l.js";import"./richTextUtils-CuogT7Qm.js";import"./purify.es-Dqc4LzU4.js";import"./DropdownButton-C2ZIQWAz.js";import"./TableMobileActionsSheet-Bkwcke3s.js";const D="/v1/setup/rule-engine",q={listRules:s=>V.get(D,{params:s}).then(t=>{var a;return((a=t.data)==null?void 0:a.data)??[]}),listVersions:()=>V.get(`${D}/catalogs/versions`).then(s=>{var t;return((t=s.data)==null?void 0:t.data)??[]}),getRule:s=>V.get(`${D}/${s}`).then(t=>{var a;return(a=t.data)==null?void 0:a.data}),createRule:s=>V.post(D,s).then(t=>{var a;return(a=t.data)==null?void 0:a.data}),updateRule:(s,t)=>V.put(`${D}/${s}`,t).then(a=>a.data),deleteRule:s=>V.delete(`${D}/${s}`).then(t=>t.data),changeStatus:(s,t)=>V.put(`${D}/${s}/status`,{status:t}).then(a=>a.data),duplicateRule:s=>V.post(`${D}/${s}/duplicate`).then(t=>{var a;return(a=t.data)==null?void 0:a.data}),listProcesses:()=>V.get(`${D}/catalogs/processes`).then(s=>{var t;return((t=s.data)==null?void 0:t.data)??[]}),getOperators:()=>V.get(`${D}/catalogs/operators`).then(s=>{var t;return((t=s.data)==null?void 0:t.data)??[]}),getRuleTree:s=>V.get(`${D}/${s}/tree`).then(t=>{var a;return((a=t.data)==null?void 0:a.data)??{nodes:[],parentFunctionId:0}}),autocompleteConditions:(s,t)=>V.get(`${D}/${s}/tree/conditions`,{params:{q:t}}).then(a=>{var n;return((n=a.data)==null?void 0:n.data)??[]}),autocompleteConclusions:(s,t)=>V.get(`${D}/${s}/tree/conclusions`,{params:{q:t}}).then(a=>{var n;return((n=a.data)==null?void 0:n.data)??[]}),getFunctionParams:(s,t,a)=>V.get(`${D}/${s}/tree/functions/${t}/params`,{params:{count:a}}).then(n=>{var i;return((i=n.data)==null?void 0:i.data)??{params:[]}}),addNode:(s,t)=>V.post(`${D}/${s}/tree/nodes`,t).then(a=>{var n;return(n=a.data)==null?void 0:n.data}),updateNode:(s,t,a)=>V.put(`${D}/${s}/tree/nodes/${t}`,a).then(n=>n.data),deleteNode:(s,t,a,n)=>V.delete(`${D}/${s}/tree/nodes/${t}`,{params:{position:a,functionId:n}}).then(i=>i.data),reorderBranchNodes:(s,t,a,n)=>V.put(`${D}/${s}/tree/nodes/order`,{fatherId:t,isElse:a,nodeOrder:n}).then(i=>{var l;return(l=i.data)==null?void 0:l.data}),searchConditions:(s,t)=>V.get(`${D}/${s}/tree/conditions`,{params:{q:t}}).then(a=>{var n;return((n=a.data)==null?void 0:n.data)??[]}),searchConclusions:(s,t)=>V.get(`${D}/${s}/tree/conclusions`,{params:{q:t}}).then(a=>{var n;return((n=a.data)==null?void 0:n.data)??[]}),addFunctionToTree:(s,t)=>V.post(`${D}/${s}/tree/nodes`,{functionId:t.functionId,count:t.position,logicalOperator:t.logicalOperator,isElse:t.isElse?"T":null,fatherId:t.parentId,fatherCount:t.fatherCount}).then(a=>{var n;return(n=a.data)==null?void 0:n.data}),listOperators:()=>V.get(`${D}/catalogs/operators`).then(s=>{var t;return((t=s.data)==null?void 0:t.data)??[]}),saveFunctionParams:(s,t,a)=>V.put(`${D}/${s}/tree/nodes/${t}`,{functionId:a.functionId,count:a.count,operator:a.operator,value:a.value,logicalOperator:a.logicalOperator,paramValues:a.params.map(n=>({parameterId:n.parameterId,value:n.value})),...a.publishAs!==void 0?{publishAs:a.publishAs}:{},...a.publishScope!==void 0?{publishScope:a.publishScope}:{}}).then(n=>n.data),getRuleJson:s=>V.get(`${D}/${s}`).then(t=>{var a,n;return{ruleJson:((n=(a=t.data)==null?void 0:a.data)==null?void 0:n.ruleJson)??null}}),compileRule:s=>V.post(`${D}/${s}/compile`).then(t=>t.data.data),saveRuleJson:(s,t)=>V.put(`${D}/${s}/json`,{ruleJson:t}).then(a=>a.data.data),compileAllRules:(s,t)=>V.post(`${D}/compile-all`,void 0,{params:{...s!=null&&{processId:s},...t!=null&&t!==""&&{status:t}}}).then(a=>a.data.data).catch(a=>{var i,l,r;const n=(l=(i=a.response)==null?void 0:i.data)==null?void 0:l.data;if(((r=a.response)==null?void 0:r.status)===400&&(n==null?void 0:n.error)==="volume_limit_exceeded")return{success:!1,error:n.error,total:n.total??0,compiled:0,message:n.message};throw a}),searchPersons:s=>V.get(`${D}/persons/search`,{params:{q:s}}).then(t=>{var a;return((a=t.data)==null?void 0:a.data)??[]}),resolvePersons:s=>V.get(`${D}/persons/resolve`,{params:{ids:s}}).then(t=>{var a;return((a=t.data)==null?void 0:a.data)??[]}),searchProducts:s=>V.get(`${D}/products/search`,{params:{q:s}}).then(t=>{var a;return((a=t.data)==null?void 0:a.data)??[]}),resolveProducts:s=>V.get(`${D}/products/resolve`,{params:{ids:s}}).then(t=>{var a;return((a=t.data)==null?void 0:a.data)??[]}),searchOffers:s=>V.get(`${D}/offers/search`,{params:{q:s}}).then(t=>{var a;return((a=t.data)==null?void 0:a.data)??[]}),resolveOffers:s=>V.get(`${D}/offers/resolve`,{params:{ids:s}}).then(t=>{var a;return((a=t.data)==null?void 0:a.data)??[]}),searchGoals:s=>V.get(`${D}/goals/search`,{params:{q:s}}).then(t=>{var a;return((a=t.data)==null?void 0:a.data)??[]}),resolveGoals:s=>V.get(`${D}/goals/resolve`,{params:{ids:s}}).then(t=>{var a;return((a=t.data)==null?void 0:a.data)??[]}),previewConclusion:(s,t,a)=>V.get(`${D}/${s}/tree/conclusions/${t}/preview`,{params:a?{orderRef:a}:void 0}).then(n=>n.data.data),resolveTestRunEntity:(s,t)=>V.get(`${D}/${s}/testRun/entity`,{params:{orderRef:t}}).then(a=>a.data.data),getTestRunParams:(s,t)=>V.get(`${D}/${s}/testRun/params`,{params:{mode:t}}).then(a=>{var n;return((n=a.data)==null?void 0:n.data)??[]}),testRun:(s,t)=>V.post(`${D}/${s}/testRun`,t).then(a=>a.data.data),listActuators:s=>V.get(`${D}/actuators`,{params:s}).then(t=>{var a;return((a=t.data)==null?void 0:a.data)??{}}),getActuator:s=>V.get(`${D}/actuators/${encodeURIComponent(s)}`).then(t=>{var a;return((a=t.data)==null?void 0:a.data)??null}).catch(t=>{var a;if(((a=t.response)==null?void 0:a.status)===404)return null;throw t}),listActuatorServices:()=>V.get(`${D}/actuator-services`).then(s=>{var t;return((t=s.data)==null?void 0:t.data)??[]}),getCtxPublishFunctionIds:()=>V.get(`${D}/actuators/consume-rest-api-function-id`).then(s=>{var t,a;return((a=(t=s.data)==null?void 0:t.data)==null?void 0:a.ctxPublishFunctionIds)??[]}).catch(()=>[]),getConsumeRestApiFunctionIds:()=>V.get(`${D}/actuators/consume-rest-api-function-id`).then(s=>{var a,n;const t=(a=s.data)==null?void 0:a.data;return(n=t==null?void 0:t.functionIds)!=null&&n.length?t.functionIds:(t==null?void 0:t.functionId)!=null?[t.functionId]:[]}).catch(()=>[]),validateActuator:(s,t="_new")=>V.post(`${D}/actuators/${encodeURIComponent(t)}/validate`,s).then(a=>{var n;return((n=a.data)==null?void 0:n.data)??{valid:!1,errors:["No response from server"]}}),declareActuator:s=>V.post(`${D}/actuators`,s).then(t=>t.data.data),updateActuator:(s,t)=>V.patch(`${D}/actuators/${encodeURIComponent(s)}`,t).then(a=>a.data.data),getActuatorUsage:s=>V.get(`${D}/actuators/${encodeURIComponent(s)}/usage`).then(t=>t.data.data),retireActuator:s=>V.delete(`${D}/actuators/${encodeURIComponent(s)}`).then(t=>{var a;return((a=t.data)==null?void 0:a.data)??{success:!1}}),getDatasetFields:s=>V.get(`${D}/datasets/${s}/fields`).then(t=>{var a;return((a=t.data)==null?void 0:a.data)??[]}).catch(t=>{var a;if(((a=t==null?void 0:t.response)==null?void 0:a.status)===404)return[];throw t})},ct="_bottomSheet_guq8j_2",Ds={bottomSheet:ct},dt=s=>[{value:"T",label:s({id:"message.active"})},{value:"F",label:s({id:"message.label.inactive"})}],Ss=[{value:0,label:"0"},{value:1,label:"1"},{value:2,label:"2"},{value:3,label:"3"}],ut=({wizardData:s,processes:t,onChange:a,onSave:n,onCancel:i,isEdit:l})=>{const{formatMessage:r}=le(),u=dt(r),{register:d,handleSubmit:c,control:m,reset:p,formState:{errors:h,isSubmitting:T}}=os({defaultValues:{ruleName:s.ruleName,ruleDescription:s.ruleDescription,processId:s.processId,status:s.status||"T",sortOrder:s.sortOrder,isExcluded:s.isExcluded==="T",cronExpression:s.cronExpression,version:l?s.version:s.version||2}});o.useEffect(()=>{p({ruleName:s.ruleName,ruleDescription:s.ruleDescription,processId:s.processId,status:s.status||"T",sortOrder:s.sortOrder,isExcluded:s.isExcluded==="T",cronExpression:s.cronExpression,version:l?s.version:s.version||2})},[s.ruleId,s.isExcluded]);const R=Ce({mutationFn:g=>q.createRule({ruleName:g.ruleName,ruleDescription:g.ruleDescription,processId:g.processId??0,status:g.status,sortOrder:g.sortOrder,isExcluded:g.isExcluded?"T":"F",cronExpression:g.cronExpression||void 0,version:g.version??void 0})}),k=Ce({mutationFn:g=>q.updateRule(s.ruleId,{ruleName:g.ruleName,ruleDescription:g.ruleDescription,processId:g.processId??0,status:g.status,sortOrder:g.sortOrder,isExcluded:g.isExcluded?"T":"F",cronExpression:g.cronExpression||void 0,version:g.version??void 0})}),y=R.isPending||k.isPending,S=t.map(g=>({value:g.processId,label:g.name})),N=()=>ke({icon:"error",title:r({id:"message.error.save"}),confirmText:r({id:"message.control.accept"})}),O=g=>{a({ruleName:g.ruleName,ruleDescription:g.ruleDescription,processId:g.processId,status:g.status,sortOrder:g.sortOrder,isExcluded:g.isExcluded?"T":"F",cronExpression:g.cronExpression,version:g.version}),l||s.ruleId!==null?k.mutate(g,{onSuccess:()=>{ke({icon:"success",title:r({id:"message.generalSuccess.successfullySaved"}),confirmText:r({id:"message.control.accept"})}),n(s.ruleId)},onError:N}):R.mutate(g,{onSuccess:b=>{b!=null&&b.ruleId?n(b.ruleId):N()},onError:N})};return e.jsxs("form",{id:"step1-info-form",onSubmit:c(O),noValidate:!0,children:[e.jsxs("div",{className:"row g-5",children:[e.jsxs("div",{className:"col-12 col-md-6",children:[e.jsx("label",{className:"form-label fw-semibold",htmlFor:"s1-ruleName",children:r({id:"message.label.nameRul"})}),e.jsx("input",{id:"s1-ruleName",type:"text",className:`form-control form-control-sm${h.ruleName?" is-invalid":""}`,"aria-label":r({id:"message.label.nameRul"}),...d("ruleName",{required:r({id:"message.required"})})}),h.ruleName&&e.jsx("div",{className:"invalid-feedback",role:"alert",children:h.ruleName.message}),e.jsxs("div",{className:"form-text text-gray-700 fs-8 mt-1",children:[e.jsx("i",{className:"ki-outline ki-information-2 fs-8 me-1","aria-hidden":"true"}),r({id:"setup.ruleEngine.ruleNameHint"})]})]}),e.jsxs("div",{className:"col-12 col-md-6",children:[e.jsx("label",{className:"form-label fw-semibold",htmlFor:"s1-sortOrder",children:r({id:"messages.label.executionOrder"})}),e.jsx("input",{id:"s1-sortOrder",type:"number",className:`form-control form-control-sm${h.sortOrder?" is-invalid":""}`,"aria-label":r({id:"messages.label.executionOrder"}),...d("sortOrder",{required:r({id:"message.required"}),valueAsNumber:!0})}),h.sortOrder&&e.jsx("div",{className:"invalid-feedback",role:"alert",children:h.sortOrder.message}),e.jsxs("div",{className:"form-text text-gray-700 fs-8 mt-1",children:[e.jsx("i",{className:"ki-outline ki-information-2 fs-8 me-1","aria-hidden":"true"}),r({id:"setup.ruleEngine.sortOrderHint"})]})]}),e.jsxs("div",{className:"col-12",children:[e.jsx("label",{className:"form-label fw-semibold",htmlFor:"s1-ruleDescription",children:r({id:"message.prodName"})}),e.jsx("textarea",{id:"s1-ruleDescription",className:"form-control form-control-sm",rows:3,style:{resize:"vertical"},"aria-label":r({id:"message.prodName"}),...d("ruleDescription")})]}),e.jsxs("div",{className:"col-12 col-md-6",children:[e.jsx("label",{className:"form-label fw-semibold",children:r({id:"message.label.processName"})}),e.jsx(Oe,{name:"processId",control:m,rules:{required:r({id:"message.required"}),validate:g=>g!==null&&g!==0||r({id:"message.required"})},render:({field:g})=>e.jsx("div",{className:"react-select-sm react-select-styled",children:e.jsx(Ae,{classNamePrefix:"react-select",options:S,value:S.find(b=>b.value===g.value)??null,onChange:b=>g.onChange(b?b.value:null),isSearchable:!0,isClearable:!1,placeholder:r({id:"message.select"}),"aria-label":r({id:"message.label.processName"})})})}),h.processId&&e.jsx("div",{className:"text-danger fs-7 mt-1",role:"alert",children:h.processId.message})]}),e.jsxs("div",{className:"col-12 col-md-6",children:[e.jsx("label",{className:"form-label fw-semibold",children:r({id:"message.label.status"})}),e.jsx(Oe,{name:"status",control:m,render:({field:g})=>e.jsx("div",{className:"react-select-sm react-select-styled",children:e.jsx(Ae,{classNamePrefix:"react-select",options:u,value:u.find(b=>b.value===g.value)??null,onChange:b=>g.onChange(b?b.value:"T"),isSearchable:!1,isClearable:!1,"aria-label":r({id:"message.label.status"})})})})]}),e.jsxs("div",{className:"col-12 col-md-6",children:[e.jsx("label",{className:"form-label fw-semibold",children:r({id:"setup.ruleEngine.colVersion"})}),e.jsx(Oe,{name:"version",control:m,render:({field:g})=>e.jsx("div",{className:"react-select-sm react-select-styled",children:e.jsx(Ae,{classNamePrefix:"react-select",options:Ss,value:Ss.find(b=>b.value===g.value)??null,onChange:b=>g.onChange(b?b.value:null),isSearchable:!1,isClearable:!1,"aria-label":r({id:"setup.ruleEngine.colVersion"})})})})]}),e.jsxs("div",{className:"col-12 col-md-6",children:[e.jsx("div",{className:"d-flex align-items-center",style:{minHeight:44},children:e.jsx(Oe,{name:"isExcluded",control:m,render:({field:g})=>e.jsxs("div",{className:"form-check form-check-custom form-check-solid",children:[e.jsx("input",{id:"s1-isExcluded",type:"checkbox",className:"form-check-input",checked:g.value,onChange:b=>g.onChange(b.target.checked),"aria-label":r({id:"messages.label.isExcludedRule"})}),e.jsx("label",{className:"form-check-label fw-semibold ms-2",htmlFor:"s1-isExcluded",children:r({id:"messages.label.isExcludedRule"})})]})})}),e.jsxs("div",{className:"form-text text-gray-700 fs-8 mt-1",children:[e.jsx("i",{className:"ki-outline ki-information-2 fs-8 me-1","aria-hidden":"true"}),r({id:"setup.ruleEngine.isExcludedHint"})]})]}),e.jsxs("div",{className:"col-12 col-md-6",children:[e.jsxs("label",{className:"form-label fw-semibold",htmlFor:"s1-cronExpression",children:[r({id:"setup.ruleEngine.fieldCron"}),e.jsx("span",{className:"text-gray-700 fw-normal ms-2 fs-7",children:r({id:"setup.ruleEngine.fieldCronOptional"})})]}),e.jsx("input",{id:"s1-cronExpression",type:"text",className:"form-control form-control-sm",placeholder:"0 0 * * *","aria-label":r({id:"setup.ruleEngine.fieldCron"}),...d("cronExpression")}),e.jsxs("div",{className:"form-text text-gray-700 fs-8 mt-1",children:[e.jsx("i",{className:"ki-outline ki-information-2 fs-8 me-1","aria-hidden":"true"}),r({id:"setup.ruleEngine.cronHint"}),e.jsx("a",{href:"https://crontab.guru",target:"_blank",rel:"noopener noreferrer",className:"text-primary",children:"crontab.guru"})]})]})]}),(R.isError||k.isError)&&e.jsx("div",{className:"alert alert-danger py-2 mb-0 mt-4 fs-7",role:"alert",children:r({id:"message.error.save"})}),e.jsxs("div",{className:"d-flex justify-content-between align-items-center border-top pt-4 mt-6 flex-wrap gap-3",children:[e.jsx("button",{type:"button",className:"btn btn-sm btn-primary",onClick:i,disabled:y||T,"aria-label":r({id:"message.cancel"}),children:r({id:"message.cancel"})}),e.jsx("button",{type:"submit",className:"btn btn-sm btn-primary fw-bold",disabled:y||T,"aria-label":r({id:l?"message.save":"setup.ruleEngine.createAndContinue"}),children:y||T?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"spinner-border spinner-border-sm me-2","aria-hidden":"true"}),r({id:"message.wait"})]}):e.jsxs(e.Fragment,{children:[r(l?{id:"message.save"}:{id:"setup.ruleEngine.createAndContinue"}),e.jsx("i",{className:"ki-outline ki-arrow-right fs-5 ms-2","ari
1a-hidden":"true"})]})})]})]})},$e=({ruleId:s,type:t,position:a,parentId:n,fatherCount:i,isElse:l=!1,logicalOperator:r,containerFunctionId:u,containerIsElse:d,containerParentId:c,onAdded:m,onCancel:p})=>{const{formatMessage:h}=le(),[T,R]=o.useState(""),[k,y]=o.useState([]),[S,N]=o.useState(!1),[O,g]=o.useState(!1),[b,W]=o.useState(!1),Y=o.useRef(null),K=o.useCallback(v=>t==="condition"?q.searchConditions(s,v):q.searchConclusions(s,v),[s,t]),z=v=>{const j=v.target.value;if(R(j),Y.current&&clearTimeout(Y.current),j.trim().length<2){y([]),N(!1);return}Y.current=setTimeout(async()=>{g(!0);try{const w=await K(j.trim());y(w),N(w.length>0)}finally{g(!1)}},300)},M=async v=>{W(!0),N(!1),R(""),y([]);try{let j=n;if(u!==void 0){const w=await q.addFunctionToTree(s,{functionId:u,type:d?"else":"then",parentId:c,fatherCount:void 0,position:a,isElse:d});j=w==null?void 0:w.fxrId}await q.addFunctionToTree(s,{functionId:v.functionId,type:t==="condition"?"if":l?"else":"then",parentId:j,fatherCount:i,position:a,logicalOperator:r,isElse:l}),m()}catch{Re.fire({icon:"error",title:h({id:"message.error.save"}),confirmButtonText:h({id:"message.accept"}),customClass:{confirmButton:"btn btn-primary"}})}finally{W(!1)}},_=()=>{R(""),y([]),N(!1),p==null||p()},G=h({id:"message.tooltip.typeTheFunction"});return e.jsxs("div",{className:"position-relative d-flex gap-2 align-items-start w-100",style:{minWidth:240},children:[e.jsxs("div",{className:"position-relative flex-grow-1",children:[e.jsxs("div",{className:"input-group input-group-sm",children:[e.jsx("span",{className:"input-group-text","aria-hidden":"true",children:O||b?e.jsx("span",{className:"spinner-border spinner-border-sm text-primary"}):e.jsx("i",{className:"ki-outline ki-magnifier fs-6"})}),e.jsx("input",{type:"text",className:"form-control form-control-sm",style:{fontSize:16,minWidth:160},placeholder:G,"aria-label":G,value:T,onChange:z,onFocus:()=>k.length>0&&N(!0),onBlur:()=>setTimeout(()=>N(!1),200),disabled:b,autoComplete:"off",autoFocus:!0})]}),S&&e.jsxs("div",{className:"position-absolute bg-white border rounded shadow-sm py-1 w-100",style:{to
1p:"100%",left:0,zIndex:1050,maxHeight:240,overflowY:"auto"},role:"listbox","aria-label":h({id:"message.results"}),children:[k.map(v=>e.jsx("button",{type:"button",className:"dropdown-item py-2 px-4 fs-7 text-gray-700 text-hover-primary",style:{minHeight:44,textAlign:"left"},role:"option",onMouseDown:()=>M(v),children:v.name},v.functionId)),k.length===0&&!O&&e.jsx("div",{className:"px-4 py-2 text-gray-700 fs-7",children:h({id:"message.noDataFound"})})]})]}),p&&e.jsx("button",{type:"button",className:"btn btn-sm btn-icon btn-active-light-danger",style:{width:32,height:32,flexShrink:0},onClick:_,"aria-label":h({id:"message.cancel"}),children:e.jsx("i",{className:"ki-outline ki-cross fs-5"})})]})};function ts(s,t,a){if(!t)return a;try{const n=s({id:t});return n&&n!==t?n:a}catch{return a}}const mt=({onInsertField:s})=>{const{formatMessage:t}=le(),[a,n]=o.useState(""),[i,l]=o.useState(null),{data:r=[],isLoading:u,isError:d,refetch:c}=me({queryKey:["rule-engine-datasets-catalog-for-panel"],queryFn:()=>fs.listDataSets(),staleTime:6e4}),m=a.trim().toLowerCase(),p=[...r].filter(h=>!m||(h.entity??"").toLowerCase().includes(m)||(h.name??"").toLowerCase().includes(m)).sort((h,T)=>(h.entity??"").localeCompare(T.entity??""));return e.jsxs("div",{className:"dataset-fields-panel border rounded p-3",children:[e.jsx("h6",{className:"fw-bold mb-3 text-gray-800",children:t({id:"setup.ruleEngine.datasetFields.panelTitle"})}),e.jsxs("div",{className:"position-relative mb-3",children:[e.jsx("i",{className:"ki-solid ki-magnifier fs-4 position-absolute ms-5 top-50 translate-middle-y text-gray-500","aria-hidden":"true"}),e.jsx("input",{type:"text",className:"form-control form-control-sm bg-white ps-12 border",placeholder:t({id:"setup.ruleEngine.datasetFields.searchPlaceholder"}),value:a,onChange:h=>n(h.target.value),"aria-label":t({id:"setup.ruleEngine.datasetFields.searchPlaceholder"})})]}),u&&e.jsx("div",{className:"placeholder-glow","aria-busy":"true","aria-label":t({id:"message.loading"}),children:[1,2,3].map(h=>e.jsx("div",{className:"placeholder col-12 mb-2 rounded",style:{height:32}},h))}),!u&&d&&e.jsxs("div",{className:"d-flex flex-column align-items-center py-4 text-center",children:[e.jsx("i",{className:"ki-outline ki-cross-circle fs-2 text-danger mb-2","aria-hidden":"true"}),e.jsx("span",{className:"text-gray-700 fs-7 mb-2",children:t({id:"setup.ruleEngine.datasetFields.errorTitle"})}),e.jsx("button",{type:"button",className:"btn btn-sm btn-light-primary",onClick:()=>c(),children:t({id:"setup.ruleEngine.datasetFields.errorRetry"})})]}),!u&&!d&&p.length===0&&e.jsxs("div",{className:"d-flex flex-column align-items-center py-4 text-center",children:[e.jsx("span",{className:"text-gray-700 fs-7 mb-1",children:t({id:"setup.ruleEngine.datasetFields.searchNoResultsTitle"})}),e.jsx("span",{className:"text-gray-500 fs-8 mb-2",children:t({id:"setup.ruleEngine.datasetFields.searchNoResultsMessage"})}),m&&e.jsx("button",{type:"button",className:"btn btn-sm btn-light",onClick:()=>n(""),children:t({id:"setup.ruleEngine.datasetFields.searchClearFilters"})})]}),!u&&!d&&p.length>0&&e.jsx("div",{role:"group","aria-label":t({id:"setup.ruleEngine.datasetFields.panelTitle"}),style:{maxHeight:320,overflowY:"auto"},children:p.map(h=>e.jsx(pt,{dataset:h,isExpanded:i===h.datasetId,onToggle:()=>l(T=>T===h.datasetId?null:h.datasetId),onInsertField:s},h.datasetId))})]})},pt=({dataset:s,isExpanded:t,onToggle:a,onInsertField:n})=>{const i=Ke(),{formatMessage:l}=le(),{data:r,isLoading:u,isError:d,refetch:c}
1=me({queryKey:["rule-engine-dataset-fields",s.datasetId],queryFn:()=>q.getDatasetFields(s.datasetId),enabled:t,staleTime:6e4}),m=r??[];return e.jsxs("div",{className:"border-bottom","data-dataset-group":s.entity,children:[e.jsxs("button",{type:"button",className:`btn btn-sm w-100 d-flex justify-content-between align-items-center text-start px-2 py-2${i?" min-h-45px":""}`,onClick:a,"aria-expanded":t,children:[e.jsx("span",{className:"fw-semibold fs-7 text-gray-800",children:s.entity}),e.jsx("i",{className:`ki-outline ${t?"ki-up":"ki-down"} fs-5 text-gray-600`,"aria-hidden":"true"})]}),t&&e.jsxs("div",{className:"ps-3 pb-2",children:[u&&e.jsx("div",{className:"placeholder-glow","aria-busy":"true",children:[1,2].map(p=>e.jsx("div",{className:"placeholder col-8 mb-2 rounded",style:{height:20}},p))}),!u&&d&&e.jsxs("div",{className:"d-flex align-items-center gap-2 py-1",children:[e.jsx("span",{className:"text-danger fs-8",children:l({id:"setup.ruleEngine.datasetFields.errorTitle"})}),e.jsx("button",{type:"button",className:"btn btn-sm btn-link p-0",onClick:()=>c(),children:l({id:"setup.ruleEngine.datasetFields.errorRetry"})})]}),!u&&!d&&(r??[]).length===0&&e.jsx("span",{className:"text-gray-500 fs-8",children:l({id:"setup.ruleEngine.datasetFields.emptyDataset"})}),!u&&!d&&(r??[]).length>0&&m.length===0&&e.jsx("div",{className:"d-flex align-items-center gap-2 py-1",children:e.jsx("span",{className:"text-gray-500 fs-8",children:l({id:"setup.ruleEngine.datasetFields.searchNoResultsTitle"})})}),!u&&!d&&m.map(p=>p.compound?e.jsx(ht,{dataset:s,field:p},p.field):e.jsxs("button",{type:"button",className:`btn btn-sm btn-light-primary d-block w-100 text-start mb-1${i?" min-h-45px":""}`,onClick:()=>n(`{{${s.entity}.${p.field}}}`),title:ts(l,p.info,""),children:[e.jsx("span",{children:ts(l,p.message,p.field)}),e.jsx("span",{className:"text-muted fs-8 ms-2",children:p.field})]},p.field))]})]})},ht=({dataset:s,field:t})=>{const a=Ke(),{formatMessage:n}=le(),[i,l]=o.useState(!1),r=`{{${s.entity}.${t.field}.<SKU>.<campo>}}`,u=async()=>{try{await navigator.clipboard.writeText(r),l(!0),window.setTimeout(()=>l(!1),2e3)}catch{}};return e.jsxs("div",{className:"border rounded p-2 mb-1 bg-white",title:ts(n,t.info,""),children:[e.jsxs("div",{className:"d-flex justify-content-between align-items-center gap-2",children:[e.jsxs("div",{children:[e.jsx("span",{children:ts(n,t.message,t.field)}),e.jsx("span",{className:"text-muted fs-8 ms-2",children:t.field})]}),e.jsx("button",{type:"button",className:`btn btn-sm btn-light-primary flex-shrink-0${a?" min-h-45px":""}`,onClick:u,"aria-label":n({id:"setup.ruleEngine.datasetFields.copyButton"}),children:n(i?{id:"setup.ruleEngine.datasetFields.copiedFeedback"}:{id:"setup.ruleEngine.datasetFields.copyButton"})})]}),e.jsx("code",{className:"d-block fs-8 text-gray-700 mt-1 user-select-all",children:r}),e.jsx("div",{className:"form-text fs-9 text-gray-600 mt-1",children:n({id:"setup.ruleEngine.datasetFields.nestedFieldTemplate"})})]})},Cs=/\{\{([^{}]+)\}\}/g,Hs=new Set(["dynamicParameters"]);function zs(s){if(!s)return[];const t=[];Cs.lastIndex=0;let a;for(;(a=Cs.exec(s))!==null;){const n=a[1].trim().split(".").filter(Boolean);if(n.length<2)continue;const[i,l,...r]=n;t.push({raw:a[0],entity:i,field:l,extra:r})}return t}function ft(s,t,a){if(Hs.has(s.entity))return{reference:s,status:"ok"};const n=t.get(s.entity);if(!n)return{reference:s,status:"unvalidated",reason:"unknown-entity"};const i=a.get(n.datasetId);if(!i||i.length===0)return{reference:s,status:"unvalidated",reason:"uncurated"};const l=i.find(r=>r.field===s.field);return l?l.compound?{reference:s,status:"ok"}:s.extra.length===0?{reference:s,status:"ok"}:{reference:s,status:"rejected",rejectedReason:"scalar-with-extra"}:{reference:s,status:"rejected",rejectedReason:"unknown-field"}}function Ts(s,t,a){const n=new Map(t.map(l=>[l.entity,l])),i=[];for(const l of s)for(const r of zs(l))i.push(ft(r,n,a));return{blocked:i.filter(l=>l.status==="rejected"),warnings:i.filter(l=>l.status==="unvalidated")}}function Rs(s){const t=new Set;for(const a of s)for(const n of zs(a))Hs.has(n.entity)||t.add(n.entity);return[...t]}const As="RULE_ENGINE_CONFIG";function gt(){const{data:s,isLoading:t}=me({queryKey:["tenant-setting",As],queryFn:()=>ot.getAll(),staleTime:3e5}),a=((s==null?void 0:s.data)??[]).find(i=>i.key===As);let n=!1;if(a)try{const i=a.effectiveValue??a.value??"{}";n=JSON.parse(i).actuatorCatalogEnabled===!0}catch{n=!1}return{enabled:n,isLoading:t}}const Js=["GET","POST","PATCH","PUT","DELETE"],Is=["NONE","M2M_API_KEY","TENANT_CUSTOM"],Ps="TENANT_CUSTOM",xt="EXTERNAL",$s=Js.map(s=>({value:s,label:s})),bt=["ACTUATOR_NOT_FOUND","ACTUATOR_INVALID_PARAMS","ACTUATOR_UNRESOLVED_HOST","CTX_VALIDATION","EMPTY_TREE","COMPILE_ERROR"],yt=s=>`setup.ruleEngine.actuator.recompile.error.${bt.includes(s)?s:"COMPILE_ERROR"}`,as=s=>{const t=(s??"").trim();return t===""?null:t},xs=(s,t)=>{if(s===t)return!0;
1if(typeof s!="object"||typeof t!="object"||s===null||t===null||Array.isArray(s)!==Array.isArray(t))return!1;if(Array.isArray(s)&&Array.isArray(t))return s.length===t.length&&s.every((l,r)=>xs(l,t[r]));const a=s,n=t,i=Object.keys(a);return i.length===Object.keys(n).length&&i.every(l=>Object.prototype.hasOwnProperty.call(n,l)&&xs(a[l],n[l]))},Nt=(s,t)=>{const a=as(s),n=as(t);if(a===null||n===null)return a===n;try{return xs(JSON.parse(a),JSON.parse(n))}catch{return a===n}},jt=(s,t)=>s.serviceKey!==t.serviceKey||as(s.baseUrl)!==as(t.baseUrl)||s.relativePath!==t.relativePath.trim()||s.httpMethod!==t.httpMethod||s.authProfile!==t.authProfile||!Nt(s.inputSchema,t.inputSchema),bs=({mode:s,actuatorCode:t,initialDetail:a,initialHeadersJson:n,onCancel:i,onSaved:l})=>{const{formatMessage:r}=le(),u=qe(),[d,c]=o.useState((a==null?void 0:a.inputSchema)??""),[m,p]=o.useState(""),[h,T]=o.useState(n??""),[R,k]=o.useState(""),[y,S]=o.useState([]),[N,O]=o.useState(null),g=s==="edit"&&!!t,{data:b,isLoading:W,isError:Y}=me({queryKey:["rule-engine-actuator-usage",t],queryFn:()=>q.getActuatorUsage(t),enabled:g,staleTime:0}),{data:K=[],isLoading:z}=me({queryKey:["rule-engine-actuator-services"],queryFn:()=>q.listActuatorServices(),staleTime:5*6e4}),{register:M,control:_,handleSubmit:G,watch:v,reset:j,formState:{errors:w}}=os({defaultValues:{displayName:(a==null?void 0:a.displayName)??"",description:(a==null?void 0:a.description)??"",httpMethod:(a==null?void 0:a.httpMethod)??"POST",relativePath:(a==null?void 0:a.relativePath)??"",serviceKey:(a==null?void 0:a.serviceKey)??"",baseUrl:(a==null?void 0:a.baseUrl)??"",authProfile:(a==null?void 0:a.authProfile)??"NONE"}});o.useEffect(()=>{s==="edit"&&a&&(j({displayName:a.displayName,description:a.description??"",httpMethod:a.httpMethod,relativePath:a.relativePath,serviceKey:a.serviceKey,baseUrl:a.baseUrl??"",authProfile:a.authProfile}),c(a.inputSchema??""))},[s,a,j]),o.useEffect(()=>{n&&T(n)},[n]);const J=o.useMemo(()=>K.map(x=>({value:x.serviceKey,label:r({id:x.labelKey})})),[K,r]),I=o.useMemo(()=>Is.map(x=>({value:x,label:r({id:`setup.ruleEngine.actuator.auth.${x}`})})),[r]),C=v("serviceKey"),U=v("authProfile"),Z=o.useMemo(()=>K.find(x=>x.serviceKey===C),[K,C]),te=!!C&&!!Z&&!Z.baseUrl,F=C===xt&&U==="M2M_API_KEY",oe=U===Ps,B=x=>({displayName:x.displayName.trim(),description:x.description.trim()||null,httpMethod:x.httpMethod,relativePath:x.relativePath.trim(),serviceKey:x.serviceKey,baseUrl:te&&x.baseUrl.trim()||null,authProfile:x.authProfile,inputSchema:d.trim()||null}),ve=Ce({mutationFn:async x=>{const A=B(x),ee=await q.validateActuator(A,t??"_new");if(!ee.valid)throw{validationErrors:ee.errors};if(g){const de=await q.updateActuator(t,A);return{detail:de.actuator,recompile:de.recompile??null}}return{detail:await q.declareActuator(A),recompile:null}},onSuccess:({detail:x,recompile:A})=>{S([]),u.invalidateQueries({queryKey:["rule-engine-actuators"]}),t&&(u.invalidateQueries({queryKey:["rule-engine-actuator-detail",t]}
1),u.invalidateQueries({queryKey:["rule-engine-actuator-usage",t]}));const ee=x.authProfile===Ps&&h.trim()||void 0;if(A){O({detail:x,recompile:A,headers:ee});return}l(x,ee)},onError:x=>{var ne,re,pe,ye,xe;const A=x;if(A!=null&&A.validationErrors){S(A.validationErrors);return}const de=(xe=(ye=(pe=(re=(ne=x.response)==null?void 0:ne.data)==null?void 0:re.meta)==null?void 0:pe.warnings)==null?void 0:ye[0])==null?void 0:xe.message;S([de??r({id:"message.label.errorSaving"})])}}),se=((b==null?void 0:b.rules)??[]).map(x=>x.ruleName).join(", "),H=async()=>(await Re.fire({title:r({id:"setup.ruleEngine.actuator.usage.confirmTitle"}),text:Y?r({id:"setup.ruleEngine.actuator.usage.confirmTextUnknown"}):r({id:"setup.ruleEngine.actuator.usage.confirmText"},{count:(b==null?void 0:b.ruleCount)??0,names:se}),icon:"warning",showCancelButton:!0,confirmButtonText:r({id:"message.save"}),cancelButtonText:r({id:"message.cancel"}),customClass:{confirmButton:"btn btn-primary",cancelButton:"btn btn-light"}})).isConfirmed,fe=async x=>{S([]);const A=Y||((b==null?void 0:b.ruleCount)??0)>0;g&&a&&A&&jt(B(x),a)&&!await H()||ve.mutate(x)};if(N){const{recompile:x}=N;return e.jsxs("div",{children:[e.jsx("h6",{className:"fw-bold mb-4 text-gray-700",children:r({id:"setup.ruleEngine.actuator.recompile.title"})}),e.jsx("div",{className:`alert ${x.failed.length>0?"alert-warning":"alert-success"} mb-4`,role:"status",children:r({id:"setup.ruleEngine.actuator.recompile.summary"},{compiled:x.compiled,total:x.total})}),x.failed.length>0&&e.jsx("ul",{className:"list-unstyled mb-4",children:x.failed.map(A=>e.jsxs("li",{className:"mb-3",children:[e.jsx("span",{className:"fw-semibold d-block",children:A.ruleName}),e.jsx("span",{className:"text-danger fs-7 d-block",children:r({id:yt(A.errorCode)})}),e.jsx("span",{className:"text-muted fs-8 d-block",children:r({id:"setup.ruleEngine.actuator.recompile.failedKeepsPrevious"})})]},A.ruleId))}),e.jsx("div",{className:"d-flex justify-content-end",children:e.jsx("button",{type:"button",className:"btn btn-sm btn-primary",onClick:()=>l(N.detail,N.headers),children:r({id:"setup.ruleEngine.actuator.recompile.continue"})})})]})}return e.jsxs("form",{onSubmit:G(fe),children:[e.jsxs("div",{className:"d-flex align-items-center justify-content-between mb-4",children:[e.jsx("h6",{className:"fw-bold mb-0 text-gray-700",children:r({id:s==="edit"?"setup.ruleEngine.actuator.editTitle":"setup.ruleEngine.actuator.declareNew"})}),e.jsx("button",{type:"button",className:"btn btn-sm btn-light",onClick:i,disabled:ve.isPending,children:r({id:"message.cancel"})})]}),g&&!W&&(Y?e.jsx("div",{className:"alert alert-danger mb-4",role:"alert",children:r({id:"setup.ruleEngine.actuator.usage.loadError"})}):((b==null?void 0:b.ruleCount)??0)>0?e.jsx("div",{className:"alert alert-warning mb-4",role:"alert",children:r({id:"setup.ruleEngine.actuator.usage.notice"},{count:(b==null?void 0:b.ruleCount)??0,names:se})}):e.jsx("div",{className:"alert alert-light mb-4",role:"status",children:r({id:"setup.ruleEngine.actuator.usage.none"})})),y.length>0&&e.jsx("div",{className:"alert alert-danger mb-4",role:"alert",children:e.jsx("ul",{className:"mb-0 ps-3",children:y.map((x,A)=>e.jsx("li",{children:x},A))})}),e.jsxs("div",{className:"row g-4",children:[e.jsxs("div",{className:"col-12",children:[e.jsxs("label",{className:"form-label fw-semibold",htmlFor:"declare-displayName",children:[r({id:"setup.ruleEngine.actuator.fieldName"}),e.jsx("span",{className:"text-danger ms-1","aria-hidden":"true",children:"*"})]}),e.jsx("input",{id:"declare-displayName",className:"form-control form-control-sm",style:{fontSize:16},...M("displayName",{required:!0}),"aria-invalid":!!w.displayName,"aria-required":!0})]}),e.jsxs("div",{className:"col-12 col-md-6",children:[e.jsxs("label",{className:"form-label fw-semibold",htmlFor:"declare-serviceKey",children:[r({id:"setup.ruleEngine.actuator.fieldService"}),e.jsx("span",{className:"text-danger ms-1","aria-hidden":"true",children:"*"})]}),e.jsx("div",{className:"react-select-sm react-select-styled",children:e.jsx(Oe,{name:"serviceKey",control:_,rules:{required:!0},render:({field:x})=>e.jsx(Ae,{inputId:"declare-serviceKey",classNamePrefix:"react-select",options:J,value:J.find(A=>A.value===x.value)??null,onChange:A=>x.onChange(A?A.value:""),onBlur:x.onBlur,isDisabled:z,isClearable:!0,isSearchable:!0,placeholder:r({id:"message.control.select"}),noOptionsMessage:()=>r({id:"message.noDataFound"}),"aria-invalid":!!w.serviceKey,"aria-required":!0})})})]}),e.jsxs("div",{className:"col-12 col-md-6",children:[e.jsxs("label",{className:"form-label fw-semibold",htmlFor:"declare-httpMethod",children:[r({id:"setup.ruleEngine.actuator.fieldMethod"}),e.jsx("span",{className:"text-danger ms-1","aria-hidden":"true",children:"*"})]}),e.jsx("div",{className:"react-select-sm react-select-styled",children:e.jsx(Oe,{name:"httpMethod",control:_,rules:{required:!0},render:({field:x})=>e.jsx(Ae,{inputId:"declare-httpMethod",classNamePrefix:"react-select",options:$s,value:$s.find(A=>A.value===x.value)??null,onChange:A=>
1x.onChange(A?A.value:Js[1]),onBlur:x.onBlur,isClearable:!1,isSearchable:!1,"aria-invalid":!!w.httpMethod,"aria-required":!0})})})]}),e.jsxs("div",{className:"col-12",children:[e.jsxs("label",{className:"form-label fw-semibold",htmlFor:"declare-relativePath",children:[r({id:"setup.ruleEngine.actuator.fieldPath"}),e.jsx("span",{className:"text-danger ms-1","aria-hidden":"true",children:"*"})]}),e.jsx("input",{id:"declare-relativePath",className:"form-control form-control-sm font-monospace",style:{fontSize:14},placeholder:"/webhook/facturacion",...M("relativePath",{required:!0}),"aria-label":r({id:"setup.ruleEngine.actuator.fieldPath"}),"aria-required":!0})]}),te&&e.jsxs("div",{className:"col-12",children:[e.jsxs("label",{className:"form-label fw-semibold",htmlFor:"declare-baseUrl",children:[r({id:"setup.ruleEngine.actuator.fieldBaseUrl"}),e.jsx("span",{className:"text-danger ms-1","aria-hidden":"true",children:"*"})]}),e.jsx("input",{id:"declare-baseUrl",className:"form-control form-control-sm font-monospace",style:{fontSize:14},placeholder:"https://n8n.miempresa.com",...M("baseUrl",{required:te}),"aria-label":r({id:"setup.ruleEngine.actuator.fieldBaseUrl"}),"aria-required":te}),e.jsx("div",{className:"form-text fs-9",children:r({id:"setup.ruleEngine.actuator.fieldBaseUrlHelp"})})]}),e.jsxs("div",{className:"col-12 col-md-6",children:[e.jsxs("label",{className:"form-label fw-semibold",htmlFor:"declare-authProfile",children:[r({id:"setup.ruleEngine.actuator.fieldAuth"}),e.jsx("span",{className:"text-danger ms-1","aria-hidden":"true",children:"*"})]}),e.jsx("div",{className:"react-select-sm react-select-styled",children:e.jsx(Oe,{name:"authProfile",control:_,rules:{required:!0},render:({field:x})=>e.jsx(Ae,{inputId:"declare-authProfile",classNamePrefix:"react-select",options:I,value:I.find(A=>A.value===x.value)??null,onChange:A=>x.onChange(A?A.value:Is[0]),onBlur:x.onBlur,isClearable:!1,isSearchable:!1,"aria-invalid":!!w.authProfile,"aria-required":!0})})}),F&&e.jsx("div",{className:"alert alert-danger mt-2 mb-0 py-2 fs-8",role:"alert",children:r({id:"setup.ruleEngine.actuator.externalM2mApiKeyBlocked"})})]}),oe&&e.jsxs("div",{className:"col-12",children:[e.jsx("label",{className:"form-label fw-semibold",htmlFor:"declare-headers",children:r({id:"setup.ruleEngine.actuator.headersLabel"})}),e.jsx(gs,{value:h,onChange:T,onError:k,placeholder:'{"X-Api-Key": "..."}',inputClassName:"form-control-solid fs-8 text-gray-700 font-monospace",badgeClassName:"badge badge-primary",badgeStyle:{fontSize:10}}),e.jsx("div",{className:"form-text fs-9",children:r({id:"setup.ruleEngine.actuator.headersHelp"})})]}),e.jsxs("div",{className:"col-12",children:[e.jsx("label",{className:"form-label fw-semibold",htmlFor:"declare-description",children:r({id:"setup.ruleEngine.actuator.fieldDescription"})}),e.jsx(Oe,{name:"description",control:_,render:({field:x})=>e.jsx("textarea",{id:"declare-description",className:"form-control form-control-sm",style:{fontSize:14,minHeight:60},...x,"aria-label":r({id:"setup.ruleEngine.actuator.fieldDescription"})})})]}),e.jsxs("div",{className:"col-12",children:[e.jsxs("label",{className:"form-label fw-semibold",children:[r({id:"setup.ruleEngine.actuator.fieldSchema"}),e.jsxs("span",{className:"text-muted fs-9 ms-1",children:["(",r({id:"message.optional"}),")"]})]}),e.jsx(gs,{value:d,onChange:c,onError:p,placeholder:'{"body": {"properties": {...}}}',inputClassName:"form-control-solid fs-8 text-gray-700 font-monospace",badgeClassName:"badge badge-primary",badgeStyle:{fontSize:10}}),e.jsx("div",{className:"form-text fs-9",children:r({id:"setup.ruleEngine.actuator.fieldSchemaHelp"})})]})]}),e.jsx("div",{className:"d-flex justify-content-end gap-2 mt-4",children:e.jsxs("button",{type:"submit",className:"btn btn-sm btn-primary",disabled:ve.isPending||g&&W||!!m||oe&&!!R||F,children:[ve.isPending&&e.jsx("span",{className:"spinner-border spinner-border-sm me-2","aria-hidden":"true"}),r({id:s==="edit"?"message.save":"setup.ruleEngine.actuator.declareSubmit"})]})})]})};function Je(s,t,a){return t?s({id:t}):a}const vt={GET:"text-info",POST:"text-success",PATCH:"text-warning",PUT:"text-warning",DELET
1E:"text-danger"},Et=({value:s,onSelect:t,currentHeadersJson:a,onDeclaredHeaders:n,onPanelChange:i})=>{const{formatMessage:l}=le(),[r,u]=o.useState(""),[d,c]=o.useState(""),[m,p]=o.useState({kind:"browse"});o.useEffect(()=>{i==null||i(m.kind)},[m.kind,i]);const h=Me.useRef(i);o.useEffect(()=>{h.current=i},[i]),o.useEffect(()=>()=>{var I;(I=h.current)==null||I.call(h,"browse")},[]);const[T,R]=o.useState(null),k=Me.useRef(null),{isEnabled:y}=Ye("RULE_ENGINE_ADMIN"),S=y("BTN_DECLARE_ACTUATOR"),N=I=>{u(I),k.current&&clearTimeout(k.current),k.current=setTimeout(()=>c(I.trim()),300)},{data:O={},isLoading:g,isFetching:b,isError:W,refetch:Y}=me({queryKey:["rule-engine-actuators",d,"ACTIVE"],queryFn:()=>q.listActuators(d?{status:"ACTIVE",q:d}:{status:"ACTIVE"}),staleTime:6e4}),K=o.useMemo(()=>Object.values(O).some(I=>I.some(C=>C.actuatorCode===s)),[O,s]),z=!!s&&!K&&!d&&!g&&!W,{data:M}=me({queryKey:["rule-engine-actuator-detail",s],queryFn:()=>q.getActuator(s),enabled:z,staleTime:6e4}),_=m.kind==="edit"?m.actuatorCode:null,{data:G}=me({queryKey:["rule-engine-actuator-detail",_],queryFn:()=>q.getActuator(_),enabled:!!_}),v=o.useMemo(()=>{const I=Object.entries(O).map(([Z,te])=>({domain:Z,items:[...te].sort((F,oe)=>F.displayName.localeCompare(oe.displayName))}));if(!z||!M)return I;const C={actuatorCode:M.actuatorCode,domain:M.domain,displayName:M.displayName,description:M.description,httpMethod:M.httpMethod,serviceKey:M.serviceKey,authProfile:M.authProfile,origin:M.origin,status:M.status,hasSchema:M.inputSchema!=null},U=I.find(Z=>Z.domain===C.domain);return U?(U.items=[...U.items,C],I):[...I,{domain:C.domain,items:[C]}]},[O,z,M]),j=v.reduce((I,C)=>I+C.items.length,0),w=(I,C)=>{p({kind:"browse"}),Y(),C&&(n==null||n(C)),m.kind==="declare"&&t({actuatorCode:I.actuatorCode,domain:I.domain,displayName:I.displayName,description:I.description,httpMethod:I.httpMethod,serviceKey:I.serviceKey,authProfile:I.authProfile,origin:I.origin,status:I.status,hasSchema:I.inputSchema!=null},C)},J=I=>{Re.fire({title:l({id:"setup.ruleEngine.actuator.confirmRetire"},{code:I}),icon:"warning",showCancelButton:!0,confirmButtonText:l({id:"setup.ruleEngine.actuator.retire"}),cancelButtonText:l({id:"message.cancel"}),customClass:{confirmButton:"btn btn-primary",cancelButton:"btn btn-primary"}}).then(async C=>{if(C.isConfirmed){R(I);try{await q.retireActuator(I),Y()}finally{R(null)}}})};return m.kind==="declare"?e.jsx(bs,{mode:"declare",initialHeadersJson:a,onCancel:()=>p({kind:"browse"}),onSaved:w}):m.kind==="edit"?e.jsx(bs,{mode:"edit",actuatorCode:m.actuatorCode,initialDetail:G??void 0,initialHeadersJson:a,onCancel:()=>p({kind:"browse"}),onSaved:w}):g?e.jsx("div",{"aria-busy":"true","aria-label":l({id:"message.loading"}),children:[0,1].map(I=>e.jsxs("div",{className:"mb-3",children:[e.jsx("div",{className:"placeholder-glow mb
1-2",children:e.jsx("span",{className:"placeholder rounded",style:{width:90,height:12}})}),[0,1,2].map(C=>e.jsx("div",{className:"placeholder-glow mb-1",children:e.jsx("span",{className:"placeholder rounded d-block",style:{height:32}})},C))]},I))}):W?e.jsxs("div",{className:"text-center py-6",children:[e.jsx("i",{className:"ki-outline ki-cross-circle fs-2x text-danger mb-2 d-block","aria-hidden":"true"}),e.jsx("p",{className:"fs-7 fw-semibold text-danger mb-2",children:l({id:"setup.ruleEngine.actuator.loadError"})}),e.jsxs("button",{type:"button",className:"btn btn-sm btn-primary",onClick:()=>Y(),children:[e.jsx("i",{className:"ki-outline ki-arrows-circle fs-7 me-1","aria-hidden":"true"}),l({id:"message.retry"})]})]}):e.jsxs("div",{children:[e.jsxs("div",{className:"input-group input-group-sm mb-3",children:[e.jsx("span",{className:"input-group-text","aria-hidden":"true",children:b?e.jsx("span",{className:"spinner-border spinner-border-sm text-primary"}):e.jsx("i",{className:"ki-outline ki-magnifier fs-6"})}),e.jsx("input",{type:"text",className:"form-control form-control-sm",style:{fontSize:16},value:r,onChange:I=>N(I.target.value),placeholder:l({id:"setup.ruleEngine.actuator.searchPlaceholder"}),"aria-label":l({id:"setup.ruleEngine.actuator.searchPlaceholder"}),autoComplete:"off"})]}),S&&e.jsxs("button",{type:"button",className:"btn btn-sm btn-light-primary w-100 mb-3",onClick:()=>p({kind:"declare"}),children:[e.jsx("i",{className:"ki-outline ki-plus fs-6 me-1","aria-hidden":"true"}),l({id:"setup.ruleEngine.actuator.declareNew"})]}),e.jsxs("div",{style:{maxHeight:320,overflowY:"auto"},role:"listbox","aria-label":l({id:"setup.ruleEngine.actuator.selectorTitle"}),children:[j===0&&e.jsxs("div",{className:"text-center py-6 text-muted",children:[e.jsx("i",{className:"ki-outline ki-search-list fs-2x mb-2 d-block","aria-hidden":"true"}),e.jsx("p",{className:"fs-7 mb-0",children:l({id:r.trim()?"setup.ruleEngine.actuator.noSearchResults":"setup.ruleEngine.actuator.emptyCatalog"})})]}),v.map(({domain:I,items:C})=>e.jsxs("div",{className:"mb-3",children:[e.jsx("div",{className:"text-uppercase fw-bold text-gray-600 fs-9 mb-1",style:{letterSpacing:"0.06em"},children:Je(l,I,"")}),C.map(U=>{const Z=U.actuatorCode===s,te=U.origin==="DECLARED",F=U.status==="DEPRECATED";return e.jsxs("div",{className:"d-flex align-items-center gap-1 mb-1",children:[e.jsxs("button",{type:"button",role:"option","aria-selected":Z,"aria-disabled":F,disabled:F,className:`d-flex align-items-center flex-grow-1 text-start gap-2 px-2 py-2 rounded border-0 ${Z?"bg-light-primary":"bg-hover-light"}`,style:{background:Z?void 0:"transparent",minWidth:0,opacity:F?.65:void 0},onClick:()=>t(U),children:[e.jsx("span",{className:"fw-semibold fs-7 text-dark flex-grow-1 text-truncate",children:Je(l,U.displayName,U.actuatorCode)}),U.status==="DEPRECATED"&&e.jsx("span",{className:"badge badge-light-danger fs-9 flex-shrink-0",children:l({id:"setup.ruleEngine.actuator.deprecated"})}),te&&e.jsx("span",{className:"badge badge-light-info fs-9 flex-shrink-0",children:l({id:"setup.ruleEngine.actuator.custom"})}),e.jsx("span",{className:`fs-9 fw-bold flex-shrink-0 ${vt[U.httpMethod]??"text-muted"}`,children:U.httpMethod}),Z&&e.jsx("i",{className:"ki-outline ki-check fs-6 text-primary flex-shrink-0","aria-hidden":"true"})]}),te&&e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",className:"btn btn-icon btn-sm btn-light flex-shrink-0",title:l({id:"message.edit"}),"aria-label":l({id:"setup.ruleEngine.actuator.editAria"},{name:U.actuatorCode}),onClick:()=>p({kind:"edit",actuatorCode:U.actuatorCode}),children:e.jsx("i",{className:"ki-outline ki-pencil fs-6","aria-hidden":"true"})}),e.jsx("button",{type:"button",className:"btn btn-icon btn-sm btn-light flex-shrink-0",title:l({id:"setup.ruleEngine.actuator.retire"}),"aria-label":l({id:"setup.ruleEngine.actuator.retireAria"},{name:U.actuatorCode}),disabled:T===U.actuatorCode||U.status==="DEPRECATED",onClick:()=>J(U.actuatorCode),children:T===U.actuatorCode?e.jsx("span",{className:"spinner-border spinner-border-sm","aria-hidden":"true"}):e.jsx("i",{className:"ki-outline ki-archive fs-6","aria-hidden":"true"})})]})]},U.actuatorCode)})]},I))]})]})};function wt(s){if(!s||typeof s!="object"||Array.isArray(s))return!1;const t=s,a=Array.isArray(t.pathParams)&&t.pathParams.some(r=>!!r&&typeof r=="object"&&typeof r.name=="string"&&r.name.trim()!==""),n=t.body,i=n&&typeof n=="object"&&!Array.isArray(n)?n.properties:void 0,l=!!i&&typeof i=="object"&&!Array.isArray(i)&&Object.keys(i).length>0;return a||l}function kt(s){if(!s)return null;try{const t=JSON.parse(s);if(!wt(t))return null;const a=Array.isArray(t.pathParams)?t.pathParams.filter(u=>!!u&&typeof u=="object"&&typeof u.name=="string"&&u.name.trim()!=="").map(u=>({name:String(u.name),type:typeof u.type=="string"?u.type:"string",required:u.required===!0})):[],n=t.body&&typeof t.body=="object"&&!Array.isArray(t.body)?t.body:{},i=n.properties,l=i&&typeof i=="object"&&!Array.isArray(i)?i:{},r=Array.isArray(n.required)?n.required:[];return{pathParams:a,bodyProperties:l,bodyRequired:r}}catch{return null}}function St(s){if(!s)return"text";if(Array.isArray(s.enum)&&s.enum.length>0)return"select";switch(s.type){case"boolean":return"boolean";case"integer":case"number":return"number";case"string":return"text";default:return"json"}}const Ct=/([:,[]\s*)(\{\{[^{}]*\}\})/g,vs="__S4DS_RAWREF_";function Qe(s,t=new Map){return{masked:s.replace(Ct,(n,i,l)=>{const r=`${vs}${t.size}__`;return t.set(r,l),`${i}"${r}"`}),refs:t}}function Es(s,t){if(t.size===0||!s.includes(vs))return s;let a=s;return t.forEach((n,i)=>{a=a.split(i).join(n)}),a}function ns(s,t){if(t.size===0)return s;if(typeof s=="string")return Es(s,t);if(Array.isArray(s))return s.map(a=>ns(a,t));if(s&&typeof s=="object"){const a={};
1return Object.entries(s).forEach(([n,i])=>{a[n]=ns(i,t)}),a}return s}function Os(s,t){let a={},n=new Map;if(t.trim()){const{masked:r,refs:u}=Qe(t);n=u;try{const d=JSON.parse(r);d&&typeof d=="object"&&!Array.isArray(d)&&(a=d)}catch{}}const i={},l={};return Object.entries(a).forEach(([r,u])=>{r in s||(l[r]=ns(u,n))}),Object.keys(s).forEach(r=>{const u=a[r];i[r]=u==null?"":Es(String(u),n)}),{values:i,extraFields:l}}const Tt=/\{\{[^}]+\}\}/;function Ws(s){return s==="integer"||s==="number"||s==="boolean"}function Gs(s){return Tt.test(s)}function Ys(s,t){let a=JSON.stringify(s);return t.forEach((n,i)=>{a=a.replace(`"${i}"`,n)}),a}function Rt(s,t,a){const n={...a},i=new Map;return Object.entries(s).forEach(([l,r])=>{const u=t[l];if(!(u===void 0||u==="")){if(Gs(u)&&Ws(r==null?void 0:r.type)){const d=`__S4DS_REF_${i.size}__`;i.set(d,u),n[l]=d;return}switch(r.type){case"boolean":n[l]=u==="true";break;case"integer":case"number":{const d=Number(u);n[l]=Number.isFinite(d)?d:u;break}default:n[l]=u}}}),Ys(n,i)}function At(s,t){const a={},n=new Map;return s.forEach(i=>{const l=t[i.name];if(!(l===void 0||l==="")){if(Gs(l)&&Ws(i.type)){const r=`__S4DS_REF_${n.size}__`;n.set(r,l),a[i.name]=r;return}if(i.type==="integer"||i.type==="number"){const r=Number(l);a[i.name]=Number.isFinite(r)?r:l}else a[i.name]=l}}),Ys(a,n)}function It(s,t){let a={};if(t.trim())try{const i=JSON.parse(t);i&&typeof i=="object"&&!Array.isArray(i)&&(a=i)}catch{}const n={};return s.forEach(i=>{const l=a[i.name];n[i.name]=l==null?"":String(l)}),n}function Pt(s,t,a){return t.reduce((n,i)=>{const l=a[i.name];return l===void 0||l===""?n:n.split(`{${i.name}}`).join(l)},s)}function He(s){if(!s.trim())return!0;try{return JSON.parse(s),!0}catch{return!1}}function We(s){let t=s.replace(/\s+/g,"");return t.startsWith("{{")&&t.endsWith("}}")&&(t=t.slice(2,-2)),t.replace(/\s+/g,"")}function ys(s){const t=We(s);return t!==""&&!t.includes(",")}function $t(s){const t=(s??"").trim();if(!t)return{segments:[],incompatibleRaw:null};if(t.startsWith("{")&&!t.startsWith("{{")||t.startsWith("[")){try{const n=JSON.parse(t);if(n&&typeof n=="object"&&!Array.isArray(n)&&Object.keys(n).length===0)return{segments:[],incompatibleRaw:null}}catch{}return{segments:[],incompatibleRaw:s}}return{segments:t.split(",").map(We).filter(n=>n!==""),incompatibleRaw:null}}function Ot(s){return s.map(We).filter(t=>t!=="").join(",")}let Qs=1;function De(s){return s.map(t=>({...t,uid:Qs++}))}function _t(){return{key:"",value:"",kind:"text",uid:Qs++}}const ws=/^\s*\{\{[^{}]*\}\}\s*$/;function Xs(s,t){let a=s;return t.forEach((n,i)=>{a=a.split(`"${i}"`).join(n)}),a}function Zs(s,t,a){return typeof t=="string"?a.has(t)?{key:s,value:a.get(t),kind:"json"}:{key:s,value:Es(t,a),kind:"text"}:{key:s,value:Xs(JSON.stringify(t),a),kind:"json"}}function _s(s){const t=(s??"").trim();if(!t)return[];const a=[()=>{const{masked:n,refs:i}=Qe(t);return{parsed:JSON.parse(n),refs:i}},()=>({parsed:JSON.parse(t),refs:new Map})];for(const n of a)try{const{parsed:i,refs:l}=n();return!i||typeof i!="object"||Array.isArray(i)?null:Object.entries(i).map(([r,u])=>Zs(r,u,l))}catch{}return null}function ds(s){return Object.entries(s).map(([t,a])=>Zs(t,a,new Map))}function ks(s){return s.key.trim()===""&&s.value.trim()===""}function rs(s,t=[]){const a=new Set(t);return s.map(n=>{if(ks(n))return null;const i=n.key.trim();if(!i)return"emptyKey";if(a.has(i))return"duplicateKey";if(a.add(i),n.kind==="json"&&!ws.test(n.value)){const{masked:l}=Qe(n.value);if(!He(l)||!l.trim())return"invalidJson"}return null})}function Mt(s){const t={},a=new Map,n=rs(s);return s.forEach((i,l)=>{if(n[l]||ks(i))return;const r=i.key.trim();if(i.kind==="text"){t[r]=i.value;return}if(ws.test(i.value)){const d=`${vs}${a.size}__`;a.set(d,i.value.trim()),t[r]=d;return}const{masked:u}=Qe(i.value,a);t[r]=JSON.parse(u)}),Xs(JSON.stringify(t),a)}function Bt(s,t=[]){const a={},n=rs(s,t);return s.forEach((i,l)=>{if(n[l]||ks(i))return;const r=i.key.trim();if(i.kind==="text"||ws.test(i.value)){a[r]=i.kind==="text"?i.value:i.value.trim();return}const{masked:u,refs:d}=Qe(i.value);a[r]=ns(JSON.parse(u),d)}),a}const Ft={emptyKey:"setup.ruleEngine.actuator.bodyRowEmptyKey",duplicateKey:"setup.ruleEngine.actuator.bodyRowDuplicateKey",invali
1dJson:"setup.ruleEngine.actuator.bodyRowInvalidJson"},Ms=({idPrefix:s,rows:t,errors:a,onChange:n,onFieldFocus:i})=>{const{formatMessage:l}=le(),r=(c,m)=>{n(t.map((p,h)=>h===c?{...p,...m}:p))},u=c=>n(t.filter((m,p)=>p!==c)),d=()=>n([...t,_t()]);return e.jsxs("div",{children:[t.length===0&&e.jsx("div",{className:"form-text fs-8 mb-2",children:l({id:"setup.ruleEngine.actuator.bodyRowsEmpty"})}),t.map((c,m)=>{const p=a[m]??null,h=`${s}-error-${m}`,T={id:`${s}-value-${m}`,className:`form-control form-control-sm ${c.kind==="json"?"font-monospace":""} ${p==="invalidJson"?"border-danger":""}`,style:{fontSize:c.kind==="json"?13:16},value:c.value,"aria-label":l({id:"setup.ruleEngine.actuator.bodyRowValue"}),"aria-invalid":p==="invalidJson","aria-describedby":p?h:void 0};return e.jsxs("div",{className:"mb-3",children:[e.jsxs("div",{className:"d-flex gap-2 align-items-start",children:[e.jsx("input",{id:`${s}-key-${m}`,type:"text",className:`form-control form-control-sm ${p==="emptyKey"||p==="duplicateKey"?"border-danger":""}`,style:{fontSize:16,maxWidth:220},value:c.key,placeholder:l({id:"setup.ruleEngine.actuator.bodyRowKey"}),"aria-label":l({id:"setup.ruleEngine.actuator.bodyRowKey"}),"aria-invalid":p==="emptyKey"||p==="duplicateKey","aria-describedby":p?h:void 0,onChange:R=>r(m,{key:R.target.value})}),e.jsxs("select",{id:`${s}-kind-${m}`,className:"form-select form-select-sm",style:{fontSize:16,maxWidth:110},value:c.kind,"aria-label":l({id:"setup.ruleEngine.actuator.bodyRowKind"}),onChange:R=>r(m,{kind:R.target.value}),children:[e.jsx("option",{value:"text",children:l({id:"setup.ruleEngine.actuator.bodyRowKindText"})}),e.jsx("option",{value:"json",children:l({id:"setup.ruleEngine.actuator.bodyRowKindJson"})})]}),c.kind==="json"?e.jsx("textarea",{...T,rows:2,onChange:R=>r(m,{value:R.target.value}),onFocus:R=>i==null?void 0:i(R.currentTarget,k=>r(m,{value:k}))}):e.jsx("input",{...T,type:"text",onChange:R=>r(m,{value:R.target.value}),onFocus:R=>i==null?void 0:i(R.currentTarget,k=>r(m,{value:k}))}),e.jsx("button",{type:"button",className:"btn btn-sm btn-icon btn-light-danger flex-shrink-0","aria-label":l({id:"setup.ruleEngine.actuator.removeParameter"},{name:c.key}),title:l({id:"setup.ruleEngine.actuator.removeParameter"},{name:c.key}),onClick:()=>u(m),children:e.jsx("i",{className:"ki-outline ki-trash fs-5","aria-hidden":"true"})})]}),p&&e.jsx("div",{id:h,role:"alert",className:"form-text text-danger fs-8",children:l({id:Ft[p]})})]},c.uid)}),e.jsxs("button",{type:"button",className:"btn btn-sm btn-light-primary",onClick:d,children:[e.jsx("i",{className:"ki-outline ki-plus fs-7 me-1","aria-hidden":"true"}),l({id:"setup.ruleEngine.actuator.addParameter"})]})]})},Lt=({segments:s,incompatibleRaw:t,baseUrl:a,onChange:n,onReplace:i,onFieldFocus:l})=>{const{formatMessage:r}=le(),[u,d]=o.useState(""),[c,m]=o.useState(!1),p=(S,N)=>n(s.map((O,g)=>g===S?N:O)),h=S=>n(s.filter((N,O)=>O!==S)),T=(S,N)=>{const O=S+N;if(O<0||O>=s.length)return;const g=[...s];[g[S],g[O]]=[g[O],g[S]],n(g)},R=()=>{if(!ys(u)){m(!0);return}n([...s,We(u)]),d(""),m(!1)},k=s.map(We).filter(S=>S!==""),y=!!a&&k.length>0&&!a.endsWith("/");return e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"form-label fw-semibold",htmlFor:"actuator-endpointParams-new",children:r({id:"setup.ruleEngine.actuator.endpointSegmentsLabel"})}),e.jsx("div",{className:"form-text fs-8 mt-0 mb-2",children:r({id:"setup.ruleEngine.actuator.endpointSegmentsHelp"})}),t!==null?e.jsxs("div",{className:"alert alert-warning d-flex align-items-start justify-content-between gap-2 mb-0",role:"alert",children:[e.jsx("span",{className:"fs-7 text-break",children:r({id:"setup.ruleEngine.actuator.endpointParamsIncompatible"},{value:t})}),e.jsx("button",{type:"button",className:"btn btn-sm btn-light-warning flex-shrink-0",onClick:i,children:r({id:"setup.ruleEngine.actuator.replaceEndpointParams"})})]}):e.jsxs(e.Fragment,{children:[s.length===0&&e.jsx("div",{className:"form-text fs-8 mb-2",children:r({id:"setup.ruleEngine.actuator.segmentsEmpty"})}),s.map((S,N)=>{const O=!ys(S);return e.jsxs("div",{className:"mb-2",children:[e.jsxs("div",{className:"d-flex gap-2 align-items-center",children:[e.jsxs("span",{className:"text-gray-600 fs-8 flex-shrink-0","aria-hidden":"true",children:[N+1,"."]}),e.jsx("input",{id:`actuator-endpointParams-${N}`,type:"text",className:`form-control form-control-sm font-monospace ${O?"border-danger":""}`,style:{fontSize:16},value:S,"aria-label":r({id:"setup.ruleEngine.actuator.endpointSegmentAria"},{index:N+1}),"aria-invalid":O,onChange:g=>p(N,g.target.value),onFocus:g=>l==null?void 0:l(g.currentTarget,b=>p(N,b))}),e.jsx("button",{type:"button",className:"btn btn-sm btn-icon btn-light flex-shrink-0","aria-label":r({id:"setup.ruleEngine.actuator.moveSegmentUp"},{segment:S}),title:r({id:"setup.ruleEngine.actuator.moveSegmentUp"},{segment:S}),disabled:N===0,onClick:()=>T(N,-1),children:e.jsx("i",{className:"ki-outline ki-arrow-up fs-6","aria-hidden":"true"})}),e.jsx("button",{type:"button",className:"btn btn-sm btn-icon btn-light flex-shrink-0","aria-label":r({id:"setup.ruleEngine.actuator.moveSegmentDown"},{segment:S}),title:r({id:"setup.ruleEngine.actuator.moveSegmentDown"},{segment:S}),disabled:N===s.length-1,onClick:()=>T(N,1),children:e.jsx("i",{className:"ki-outline ki-arrow-down fs-6","aria-hidden":"true"})}),e.jsx("button",{type:"button",className:"btn btn-sm btn-icon btn-light-danger flex-shrink-0","aria-label":r({id:"setup.ruleEngine.actuator.removeSegment"},{segment:S}),title:r({id:"setup.ruleEngine.actuator.removeSegment"},{segment:S}),onClick:()=>h(N),children:e.jsx("i",{className:"ki-outline ki-trash fs-6","aria-hidden":"true"})})]}),O&&e.jsx("div",{role:"alert",className:"form-text text-danger fs-8",children:r({id:"setup.ruleEngine.actuator.segmentInvalid"})})]},N)}),e.jsxs("div",{className:"d-flex gap-2 align-items-center mt-2",children:[e.jsx("input",{id:"actuator-endpointParams-new",type:"text",className:`form-control form-control-sm font-monospace ${c?"border-danger":""}`,style:{fontSize:16},value:u,placeholder:r({id:"setup.ruleEngine.actuator.endpointSegmentNew"}),"aria-invalid":c,"aria-describedby":c?"actuator-endpointParams-new-error":void 0,onChange:S=>{d(S.target.value),m(!1)},onKeyDown:S=>{S.key==="Enter"&&(S.preventDefault(),R())},onFocus:S=>
1l==null?void 0:l(S.currentTarget,N=>d(N))}),e.jsxs("button",{type:"button",className:"btn btn-sm btn-light-primary flex-shrink-0",onClick:R,children:[e.jsx("i",{className:"ki-outline ki-plus fs-7 me-1","aria-hidden":"true"}),r({id:"setup.ruleEngine.actuator.addSegment"})]})]}),c&&e.jsx("div",{id:"actuator-endpointParams-new-error",role:"alert",className:"form-text text-danger fs-8",children:r({id:"setup.ruleEngine.actuator.segmentInvalid"})}),a&&e.jsxs("div",{className:"mt-3",children:[e.jsx("span",{className:"text-gray-600 fs-8 d-block",children:r({id:"setup.ruleEngine.actuator.endpointUrlPreview"})}),e.jsx("span",{id:"actuator-endpointParams-url",className:"fw-semibold fs-7 font-monospace text-break",children:a+k.join("/")}),y&&e.jsx("div",{className:"form-text text-warning fs-8",children:r({id:"setup.ruleEngine.actuator.endpointUrlNoSlash"})})]})]})]})},qt={string:"setup.ruleEngine.actuator.fieldTypeText",integer:"setup.ruleEngine.actuator.fieldTypeNumber",number:"setup.ruleEngine.actuator.fieldTypeNumber"},Kt=({actuatorCode:s,initialBodyJson:t,initialQueryJson:a,initialHeadersJson:n,onChangeActuator:i,onChange:l,onHeadersChange:r,onFieldFocus:u,onEditActuator:d})=>{const{formatMessage:c}=le(),[m,p]=o.useState(!1),[h,T]=o.useState(!1),[R,k]=o.useState(""),[y,S]=o.useState(t||"{}"),[N,O]=o.useState(n||"{}"),[g,b]=o.useState(""),[W,Y]=o.useState(""),[K]=o.useState(()=>_s(t)),[z,M]=o.useState(K===null?"json":"rows"),[_,G]=o.useState(()=>De(K??[])),[v,j]=o.useState(!1),[w,J]=o.useState(!1),[I]=o.useState(()=>$t(a)),[C,U]=o.useState(I.segments),[Z,te]=o.useState(I.incompatibleRaw),[F,oe]=o.useState(!1),{data:B,isLoading:ve,isError:se}=me({queryKey:["rule-engine-actuator-detail",s],queryFn:()=>q.getActuator(s),enabled:!!s,staleTime:6e4}),H=o.useMemo(()=>kt((B==null?void 0:B.inputSchema)??null),[B==null?void 0:B.inputSchema]),fe=H!==null,x=o.useMemo(()=>H?Os(H.bodyProperties,t):{values:{},extraFields:{}},[H]),A=o.useMemo(()=>H?It(H.pathParams,a):{},[H]),[ee,de]=o.useState(()=>De(ds(x.extraFields))),ne=o.useMemo(()=>H?Object.keys(H.bodyProperties):[],[H]),re=o.useMemo(()=>rs(ee,ne),[ee,ne]),pe=o.useMemo(()=>Bt(ee,ne),[ee,ne]),{register:ye,control:xe,reset:be,setValue:je}=os({defaultValues:{body:x.values,path:A}}),ce=st({control:xe}),E=o.useRef(!1);o.useEffect(()=>{E.current||!H||(E.current=!0,de(De(ds(x.extraFields))),be({body:x.values,path:A}))},[H]);const ie=o.useMemo(()=>rs(_),[_]),Ne=z==="rows"&&v?Mt(_):y,ge=o.useMemo(()=>H?Rt(H.bodyProperties,ce.body??{},pe):Ne,[H,ce.body,pe,Ne]),Ee=!H||H.pathParams.length===0,Be=Z!==null?Z:F?Ot(C):a,Pe=o.useMemo(()=>Ee?Be:At(H.pathParams,ce.path??{}),[Ee,Be,H,ce.path]),Ue=!Ee||Z!==null||C.every(ys),_e=o.useMemo(()=>H?Pt((B==null?void 0:B.resolvedUrl)??"",H.pathParams,ce.path??{}):(B==null?void 0:B.resolvedUrl)??"",[H,B==null?void 0:B.resolvedUrl,ce.path]),Fe=o.useMemo(()=>H?H.pathParams.filter($=>$.required&&!((ce.path??{})[$.name]??"").trim()):[],[H,ce.path]),P=o.useMemo(()=>H?H.bodyRequired.filter($=>!((ce.body??{})[$]??"").trim()):[],[H,ce.body]),ae=Ue&&(fe?Fe.length===0&&P.length===0&&re.every($=>!$):(z==="json"?!W:ie.every($=>!$))&&!g);Me.useEffect(()=>{l(ge,Pe,ae)},[ge,Pe,ae]);const Ve=(B==null?void 0:B.authProfile)==="TENANT_CUSTOM";o.useEffect(()=>{n&&n!==N&&(O(n),b(He(n)?"":c({id:"message.label.invalidJSON"})))},[n]);const Le=$=>{S($),Y(He($)?"":c({id:"message.label.invalidJSON"}))},Xe=$=>{G($),j(!0)},f=()=>{Le(Ne),J(!1),M("json")},L=()=>{const $=_s(y);if($===null){J(!0);return}G(De($)),j(!1),J(!1),M("rows")},X=$=>{U($),oe(!0)},he=()=>{te(null),U([]),oe(!0)},Se=$=>{O($);const we=He($);b(we?"":c({id:"message.label.invalidJSON"})),r==null||r($,we)},Te=$=>{if(k($),!H){Le($);return}if(!He($))return;const we=Os(H.bodyProperties,$);de(De(ds(we.extraFields))),be({body:we.values,path:ce.path})},Ie=()=>{h||k(ge),T($=>!$)},ue=!ve&&(se||!B);return ve?e.jsxs("div",{"aria-busy":"true","aria-label":c({id:"message.loading"}),className:"py-4",children:[e.jsx("span",{className:"placeholder-glow d-block mb-2",children:e.jsx("span",{className:"placeholder rounded",style:{width:"60%",height:14}})}),e.jsx("span",{className:"placeholder-glow d-block",children:e.jsx("span",{className:"placeholder rounded",style:{width:"100%",height:80}})})]}):e.jsxs("div",{children:[ue?e.jsxs("div",{className:"alert alert-danger d-flex align-items-center justify-content-between mb-4",role:"alert",children:[e.jsxs("span",{children:[e.jsx("i",{className:"ki-outline ki-cross-circle fs-4 me-2","aria-hidden":"true"}),c({id:"setup.ruleEngine.actuator.notFound"},{code:s})]}),e.jsx("button",{type:"button",className:"btn btn-sm btn-light",onClick:i,children:c({id:"setup.ruleEngine.actuator.changeAction"})})]}):B&&e.jsxs("div",{className:"d-flex align-items-center gap-2 mb-4 p-2 bg-light rounded",children:[e.jsx("i",{className:"ki-outline ki-flash fs-3 text-primary flex-shrink-0","aria-hidden":"true"}),e.jsxs("div",{className:"flex-grow-1",children:[e.jsx("span",{className:"fw-bold fs-7 text-dark",children:Je(c,B.displayName,s)}),e.jsxs("span",{className:"text-muted fs-8 ms-2",children:[Je(c,B.domain,"")," · ",B.httpMethod]}),B.status==="DEPRECATED"&&e.jsx("span",{className:"badge badge-light-danger fs-9 ms-2",children:c({id:"setup.ruleEngine.actuator.deprecated"})})]}),e.jsx("button",{type:"button",className:"btn btn-sm btn-light-primary flex-shrink-0",onClick:i,children:c({id:"setup.ruleEngine.actuator.changeAction"})})]}),!ue&&B&&e.jsxs("div",{className:"mb-4 p-3 border border-dashed rounded",children:[e.jsxs("div",{className:"d-flex align-items-center justify-content-between gap-2 mb-2",children:[e.jsx("span",{className:"text-gray-600 fs-8",children:c({id:"setup.ruleEngine.actuator.definedInAction"})}),B.origin==="DECLARED"&&d&&e.jsxs("button",{type:"button",className:"btn btn-sm btn-light-primary flex-shrink-0",onClick:()=>d(B),"aria-label":c({id:"setup.ruleEngine.actuator.editEndpointMethodAria"},{name:Je(c,B.displayName,s)}),children:[e.jsx("i",{className:"ki-outline ki-pencil fs-8 me-1","aria-hidden":"true"}),c({id:"setup.ruleEngine.actuator.editEndpointMethod"})]})]}),e.jsxs("div",{className:"row g-3",children:[e.jsxs("div",{className:"col-12 col-md-3",children:[e.jsx("span",{className:"text-gray-600 fs-8 d-block",children:c({id:"setup.ruleEngine.actuator.fieldMethod"})}),e.jsx("span",{id:"actuator-method",className:"fw-semibold fs-7",children:B.httpMethod})]}),e.jsxs("div",{className:"col-12 col-md-9",children:[e.jsx("span",{className:"text-gray-600 fs-8 d-block",children:c({id:"setup.ruleEngine.actuator.resolvedUrl"})}),e.jsx("span",{id:"actuator-endpoint",className:"fw-semibold fs-7 font-monospace text-break",children:_e}),B.hostResolved===!1&&e.jsxs("span",{className:"badge badge-light-warning fs-9 mt-1 d-inline-block",children:[e.jsx("i",{className:"ki-outline ki-information-5 fs-8 me-1","aria-hidden":"true"}),c({id:"setup.ruleEngine.actuator.hostUnresolved"})]})]})]}),B.origin==="GENERATED"&&e.jsx("div",{className:"form-text fs-8 mt-2",children:c({id:"setup.ruleEngine.actuator.generatedReadOnly"})})]}),!fe&&!ue&&e.jsxs("div",{className:"alert alert-warning d-flex align-items-start mb-4",role:"alert",children:[e.jsx("i",{className:"ki-outline ki-information-5 fs-3 me-2 flex-shrink-0","aria-hidden":"true"}),e.jsx("span",{className:"fs-7",children:c({id:"setup.ruleEngine.actuator.noSchemaWarning"})})]}),fe&&H&&e.jsxs("div",{className:"row g-4 mb-4",children:[H.pathParams.map($=>e.jsxs("div",{className:"col-12 col-md-6",children:[e.jsxs("label",{className:"form-label fw-semibold",htmlFor:`actuator-path-${$.name}`,children:[$.name,$.required&&e.jsx("span",{className:"text-danger ms-1","aria-hidden":"true",children:"*"})]}),e.jsx("input",{id:`actuator-path-${$.name}`,type:"text",className:"form-control form-control-sm",style:{fontSize:16},...ye(`path.${$.name}`),onFocus:we=>u==null?void 0:u(we.currentTarget,et=>je(`path.${$.name}`,et)),"aria-required":$.required})]},`path-${$.name}`)),Object.entries(H.bodyProperties).map(([$,we])=>e.jsx(Ut,{name:$,prop:we,required:H.bodyRequired.includes($),register:ye,setValue:je,onFieldFocus:u,value:(ce.body??{})[$]??""},`body-${$}`)),e.jsxs("div",{className:"col-12",children:[e.jsx("span",{className:"form-label fw-semibold d-block",children:c({id:"setup.ruleEngine.actuator.extraFieldsLabel"})}),e.jsx(Ms,{idPrefix:"actuator-extra",rows:ee,errors:re,onChange:de,onFieldFocus:u})]})]}),Ve&&e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"form-label fw-semibold",htmlFor:"actuator-headers",children:c({id:"setup.ruleEngine.actuator.headersLabel"})}),e.jsx("textarea",{id:"actuator-headers",className:`form-control form-control-sm font-monospace ${g?"border-danger":""}`,style:{fontSize:14,minHeight:90},value:N,onChange:$=>Se($.target.value),onFocus:$=>u==null?void 0:u($.currentTarget,Se),"aria-invalid":!!g,"aria-describedby":"actuator-headers-help"}),e.jsx("div",{id:"actuator-headers-help",role:g?"alert":void 0,className:`form-text fs-8 ${g?"text-danger":"text-success"}`,children:g||c({id:"message.label.validJSON"})}),e.jsx("div",{className:"form-text fs-8",children:c({id:"setup.ruleEngine.actuator.headersHelp"})})]}),!fe&&e.jsxs("div",{className:"mb-4",children:[e.jsxs("div",{className:"d-flex align-items-center justify-content-between mb-2",children:[e.jsx("span",{className:"form-label fw-semibold mb-0",children:c({id:"setup.ruleEngine.actuator.bodyLabel"})}),e.jsx("button",{type:"button",className:"btn btn-sm btn-light-primary",onClick:z==="rows"?f:L,children:c({id:z==="rows"?"setup.ruleEngine.actuator.bodyViewJson":"setup.ruleEngine.actuator.bodyViewRows"})})]}),z==="rows"?e.jsx(Ms,{idPrefix:"actuator-bodyRow",rows:_,errors:ie,onChange:Xe,onFieldFocus:u}):e.jsxs(e.Fragment,{children:[e.jsx("textarea",{id:"actuator-body-json",className:`form-control form-control-sm font-monospace ${W?"border-danger":""}`,style:{fontSize:14,minHeight:140},value:y,"aria-label":c({id:"setup.ruleEngine.actuator.bodyLabel"}),onChange:$=>Le($.target.value),onFocus:$=>u==null?void 0:u($.currentTarget,Le)}
1),W?e.jsx("div",{className:"form-text text-danger fs-8",children:W}):e.jsx("div",{className:"form-text text-success fs-8",children:c({id:"message.label.validJSON"})}),w&&e.jsx("div",{role:"alert",className:"form-text text-danger fs-8",children:c({id:"setup.ruleEngine.actuator.bodyRowsNotObject"})})]})]}),Ee&&e.jsx(Lt,{segments:C,incompatibleRaw:Z,baseUrl:ue?"":_e,onChange:X,onReplace:he,onFieldFocus:u}),e.jsxs("div",{className:"border-top pt-3",children:[e.jsxs("button",{type:"button",className:"btn btn-sm btn-link px-0",onClick:()=>p($=>!$),"aria-expanded":m,children:[e.jsx("i",{className:`ki-outline ${m?"ki-arrow-down":"ki-arrow-right"} fs-7 me-1`,"aria-hidden":"true"}),c({id:"setup.ruleEngine.actuator.advancedOptions"})]}),m&&e.jsxs("div",{className:"row g-3 mt-2",children:[!ue&&B&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"col-12 col-md-6",children:[e.jsxs("span",{className:"text-gray-600 fs-8 d-block",children:[c({id:"setup.ruleEngine.actuator.route"})," (",c({id:"setup.ruleEngine.actuator.fromCatalog"}),")"]}),e.jsx("span",{className:"fw-semibold fs-7 font-monospace",children:B.relativePath})]}),e.jsxs("div",{className:"col-12",children:[e.jsx("span",{className:"text-gray-600 fs-8 d-block",children:c({id:"setup.ruleEngine.actuator.authProfile"})}),e.jsx("span",{className:"badge badge-light-dark",children:B.authProfile})]})]}),e.jsxs("div",{className:"col-12",children:[e.jsxs("div",{className:"d-flex align-items-center justify-content-between mb-1",children:[e.jsx("label",{className:"form-label fw-semibold mb-0",children:c({id:"setup.ruleEngine.actuator.bodyLabel"})}),fe&&e.jsxs("button",{type:"button",className:"btn btn-sm btn-light-primary",onClick:Ie,children:[e.jsx("i",{className:"ki-outline ki-pencil fs-8 me-1","aria-hidden":"true"}),c({id:"setup.ruleEngine.actuator.editJson"})]})]}),h&&fe?e.jsx(gs,{value:R,onChange:Te,inputClassName:"form-control-solid fs-8 text-gray-700 font-monospace",badgeClassName:"badge badge-primary",badgeStyle:{fontSize:10}}):e.jsx("pre",{className:"bg-light rounded p-2 fs-8 mb-0",style:{whiteSpace:"pre-wrap",wordBreak:"break-word"},children:ge})]}),fe&&H&&H.pathParams.length>0&&e.jsxs("div",{className:"col-12",children:[e.jsx("span",{className:"text-gray-600 fs-8 d-block mb-1",children:c({id:"setup.ruleEngine.actuator.queryLabel"})}),e.jsx("pre",{className:"bg-light rounded p-2 fs-8 mb-0",children:Pe})]})]})]})]})},Ut=({name:s,prop:t,required:a,value:n,register:i,setValue:l,onFieldFocus:r})=>{const{formatMessage:u}=le(),d=St(t),c=`actuator-body-${s}`,m=e.jsxs("label",{className:"form-label fw-semibold",htmlFor:c,children:[s,a&&e.jsx("span",{className:"text-danger ms-1","aria-hidden":"true",children:"*"})]});return d==="boolean"?e.jsxs("div",{className:"col-12 col-md-6",children:[m,e.jsx("div",{className:"form-check form-switch pt-1",children:e.jsx("input",{id:c,className:"form-check-input",type:"checkbox",checked:n==="true",onChange:p=>l(`body.${s}`,p.target.checked?"true":"false")})})]}):d==="select"&&Array.isArray(t.enum)?e.jsxs("div",{className:"col-12 col-md-6",children:[m,e.jsxs("select",{id:c,className:"form-select form-select-sm",style:{fontSize:16},...i(`body.${s}`,{required:a}),children:[e.jsx("option",{value:"",children:u({id:"message.control.select"})}),t.enum.map(p=>e.jsx("option",{value:p,children:p},p))]})]}):d==="json"?e.jsxs("div",{className:"col-12",children:[m,e.jsx("textarea",{id:c,className:"form-control form-control-sm font-monospace",style:{fontSize:13,minHeight:60},...i(`body.${s}`,{required:a}),onFocus:p=>r==null?void 0:r(p.currentTarget,h=>l(`body.${s}`,h))}),e.jsx("div",{className:"form-text fs-9",children:u({id:"setup.ruleEngine.actuator.unrecognizedTypeHint"},{type:t.type??"?"})})]}):e.jsxs("div",{className:"col-12 col-md-6",children:[m,e.jsx("input",{id:c,type:"text",className:"form-control form-control-sm",style:{fontSize:16},...i(`body.${s}`,{required:a}),onFocus:p=>r==null?void 0:r(p.currentTarget,h=>l(`body.${s}`,h)),"aria-describedby":`${c}-type`}),e.jsx("span",{id:`${c}-type`,className:"visually-hidden",children:u({id:qt[t.type??"string"]??"setup.ruleEngine.actuator.fieldTypeText"})})]})},us="Acción",Vt="jsonParams",Dt="endpointParams",Ht="headers",zt=s=>{if(!s)return!1;const t=s.trim();return!(t===""||t==="{}"||t==="[]")},es=({id:s,value:t,onChange:a,alias:n,searchFn:i,resolveFn:l,minChars:r=2,formatLabel:u})=>{const{formatMessage:d}=le(),c=u??(v=>
1v.name),[m,p]=o.useState(""),[h,T]=o.useState([]),[R,k]=o.useState([]),[y,S]=o.useState(!1),[N,O]=o.useState(!1),[g,b]=o.useState(!1),W=o.useRef(null),Y=o.useRef(null),K=o.useRef("");o.useEffect(()=>{if(!t||t===K.current)return;K.current=t;const v=t.split(",").filter(Boolean);R.filter(w=>v.includes(w.id)).length!==v.length&&(b(!0),l(v.join(",")).then(w=>{const J=v.map(I=>{const C=w.find(U=>U.id===I);return{id:I,label:C?c(C):I}});k(J)}).catch(()=>k(v.map(w=>({id:w,label:w})))).finally(()=>b(!1)))},[t]),o.useEffect(()=>()=>{W.current&&clearTimeout(W.current)},[]),o.useEffect(()=>{const v=j=>{Y.current&&!Y.current.contains(j.target)&&O(!1)};return document.addEventListener("mousedown",v),()=>document.removeEventListener("mousedown",v)},[]);const z=t?t.split(",").filter(Boolean):[],M=o.useCallback(v=>{if(p(v),W.current&&clearTimeout(W.current),v.trim().length<r){T([]),O(!1),S(!1);return}S(!0),W.current=setTimeout(async()=>{try{const j=await i(v.trim());T(Array.isArray(j)?j:[]),O(!0)}catch{T([])}finally{S(!1)}},300)},[i,r]),_=v=>{if(z.includes(v.id))return;const j=[...z,v.id],w={id:v.id,label:c(v)};k(J=>[...J.filter(I=>j.includes(I.id)),w]),K.current=j.join(","),a(j.join(",")),p(""),T([]),O(!1)},G=v=>{const j=z.filter(w=>w!==v);k(w=>w.filter(J=>J.id!==v)),K.current=j.join(","),a(j.join(","))};return e.jsxs("div",{ref:Y,style:{position:"relative"},children:[e.jsx("input",{id:s,type:"text",className:"form-control form-control-sm",value:m,onChange:v=>M(v.target.value),onFocus:()=>{h.length>0&&O(!0)},placeholder:d({id:"message.search",defaultMessage:"Search..."}),"aria-label":n,autoComplete:"off"}),y&&e.jsxs("div",{className:"text-gray-600 fs-8 mt-1",children:[e.jsx("span",{className:"spinner-border spinner-border-sm me-2"}),d({id:"message.loading",defaultMessage:"Loading..."})]}),N&&!y&&h.length===0&&m.trim().length>=r&&e.jsx("div",{className:"text-gray-600 fs-8 mt-1",children:d({id:"message.noDataFound"})}),N&&h.length>0&&e.jsx("div",{className:"position-absolute w-100 bg-body border rounded shadow-sm mt-1",style:{zIndex:1050,maxHeight:240,overflowY:"auto"},children:h.filter(v=>!z.includes(v.id)).map(v=>e.jsx("div",{className:"px-3 py-2 bg-hover-light-primary",style:{cursor:"pointer"},onClick:()=>_(v),children:e.jsx("span",{className:"text-gray-800",children:c(v)})},v.id))}),R.length>0&&e.jsx("div",{className:"d-flex flex-column gap-1 mt-2",children:R.map(v=>e.jsxs("div",{className:"d-flex align-items-center justify-content-between border rounded px-3 py-2 bg-light",children:[e.jsx("span",{className:"fs-7 text-gray-800",children:g?v.id:v.label}),e.jsx("i",{className:"ki-outline ki-cross fs-7 text-gray-500 text-hover-danger ms-2",role:"button",style:{cursor:"pointer"},onClick:()=>G(v.id)})]},v.id))})]})},Jt=({param:s,value:t,onChange:a,onFocusField:n})=>{const{formatMessage:i}=le(),l=`param-${s.parameterId}`,r=(s.predefinedValueType??"INPUT").toUpperCase(),u=()=>{if(!s.predefinedValue)return[];try{const d=JSON.parse(s.predefinedValue);return Object.entries(d).filter(([c])=>c!=="").map(([c,m])=>({value:c,label:i({id:m,defaultMessage:m})}))}catch{return[]}};if(r==="TEXTAREA"||r==="CODE")return e.jsx("textarea",{id:l,className:"form-control form-control-sm",style:{fontSize:16,minHeight:80,fontFamily:r==="CODE"?"monospace":void 0},value:t,onChange:d=>a(d.target.value),onFocus:d=>n==null?void 0:n(d.currentTarget),"aria-label":s.alias,rows:3});if(r==="DATES")return e.jsx("input",{id:l,type:"date",className:"form-control form-control-sm",style:{fontSize:16},value:t,onChange:d=>a(d.target.value),"aria-label":s.alias});if(r==="PERSONS")return e.jsx(es,{id:l,value:t,onChange:a,alias:s.alias,searchFn:q.searchPersons,resolveFn:q.resolvePersons,minChars:3,formatLabel:d=>`${d.documentId??""} ${d.name}`.trim()});if(r==="PRODUCTS")return e.jsx(es,{id:l,value:t,onChange:a,alias:s.alias,searchFn:q.searchProducts,resolveFn:q.resolveProducts,minChars:2,formatLabel:d=>`${d.id} — ${d.name}`});if(r==="OFFERS")return e.jsx(es,{id:l,value:t,onChange:a,alias:s.alias,searchFn:q.searchOffers,resolveFn:q.resolveOffers,minChars:1});if(r==="GOALS")return e.jsx(es,{id:l,value:t,onChange:a,alias:s.alias,searchFn:q.searchGoals,resolveFn:q.resolveGoals,minChars:1});if(["SELECT","COUNTRY","CURRENCY","CATALOG","EVENT_TYPE"].includes(r)){const d=u();return e.jsx("div",{className:"react-select-sm react-select-styled",children:e.jsx(Ae,{classNamePrefix:"react-select",inputId:l,options:d,value:d.find(c=>c.value===t)??null,onChange:c=>a(c?c.value:""),isClearable:!0,isSearchable:!0,"aria-label":s.alias,noOptionsMessage:()=>i({id:"message.noDataFound"})})})}
1if(r==="CHECKBOX"){const d=u(),c=t?t.split(",").filter(Boolean):[];return e.jsxs("div",{className:"d-flex flex-wrap gap-3 pt-1",children:[d.map(m=>e.jsxs("div",{className:"form-check form-check-inline",children:[e.jsx("input",{type:"checkbox",className:"form-check-input",id:`${l}-${m.value}`,checked:c.includes(m.value),onChange:p=>{const h=p.target.checked?[...c,m.value]:c.filter(T=>T!==m.value);a(h.join(","))}}),e.jsx("label",{className:"form-check-label fs-7",htmlFor:`${l}-${m.value}`,children:m.label})]},m.value)),d.length===0&&e.jsx("span",{className:"text-gray-700 fs-7",children:i({id:"message.noDataFound"})})]})}return e.jsx("input",{id:l,type:"text",className:"form-control form-control-sm",style:{fontSize:16},value:t,onChange:d=>a(d.target.value),onFocus:d=>n==null?void 0:n(d.currentTarget),"aria-label":s.alias})},Wt=({isOpen:s,ruleId:t,processId:a=null,node:n,onClose:i,onSaved:l})=>{var Xe;const{formatMessage:r}=le(),u=qe(),d=Ke(),[c,m]=o.useState(0),[p,h]=o.useState(""),[T,R]=o.useState(7),[k,y]=o.useState({}),[S,N]=o.useState(""),[O,g]=o.useState("RULE"),[b,W]=o.useState([]),[Y,K]=o.useState(!0),[z,M]=o.useState(!1),[_,G]=o.useState(null),[v,j]=o.useState(null),{enabled:w}=gt(),[J,I]=o.useState(!1),[C,U]=o.useState([]),{data:Z=[]}=me({queryKey:["rule-engine-ctx-publish-function-ids"],queryFn:()=>q.getCtxPublishFunctionIds(),staleTime:10*6e4}),{data:te}=me({queryKey:["rule-tree",t],queryFn:()=>q.getRuleTree(t),staleTime:3e4,enabled:s}),{data:F=[]}=me({queryKey:["rule-engine-consume-rest-api-function-ids"],queryFn:()=>q.getConsumeRestApiFunctionIds(),staleTime:10*6e4}),oe=o.useRef(null),B=o.useRef(null),{data:ve=[]}=me({queryKey:["rule-engine-operators"],queryFn:()=>q.listOperators(),staleTime:10*6e4}),{data:se,isLoading:H}=me({queryKey:["rule-engine-func-params",t,n==null?void 0:n.functionId,n==null?void 0:n.count],queryFn:()=>q.getFunctionParams(t,n.functionId,n.count),enabled:s&&n!==null,staleTime:3e4});o.useEffect(()=>{M(!1),G(null)},[n==null?void 0:n.fxrId]),o.useEffect(()=>{if(!se||!n)return;m(n.operator??0),h(n.value??"true"),N(n.publishAs??""),g(n.publishScope??"RULE"),W([]),R(n.logicalOperator??7);const f={};se.params.forEach(X=>{f[X.parameterId]=X.currentValue??X.value??""}),y(f);const L=se.params.some(X=>X.alias===us&&!!(X.currentValue??X.value));K(!L)},[se,n]),o.useEffect(()=>{if(U([]),!se||!n)return;const f=[n.value??"true",...se.params.map(he=>he.currentValue??he.value??"")],L=Rs(f);if(L.length===0)return;let X=!1;return(async()=>{const he=await u.ensureQueryData({queryKey:["rule-engine-datasets-catalog-for-panel"],queryFn:()=>fs.listDataSets(),staleTime:6e4}),Se=new Map(he.map(ue=>[ue.entity,ue])),Te=new Map;if(await Promise.all(L.map(async ue=>{const $=Se.get(ue);if(!$)return;const we=await u.ensureQueryData({queryKey:["rule-engine-dataset-fields",$.datasetId],queryFn:()=>q.getDatasetFields($.datasetId),staleTime:6e4});Te.set($.datasetId,we)})),X)return;const{blocked:Ie}=Ts(f,he,Te);U(Ie)})(),()=>{X=!0}},[se,n,u]);const[fe,x]=o.useState("browse"),A=Z.length>0&&(n==null?void 0:n.functionId)!=null&&Z.includes(n.functionId),ee=((te==null?void 0:te.nodes)??[]).filter(f=>!!f.publishAs&&f.fxrId!==(n==null?void 0:n.fxrId)&&((n==null?void 0:n.count)==null||f.count<n.count)).map(f=>({name:f.publishAs,step:f.count,from:f.functionName})),de=f=>{const L=oe.current,X=B.current;if(!L||!X)return;if(!L.isConnected){oe.current=null,B.current=null;return}const he=L.selectionStart??L.value.length,Se=L.selectionEnd??L.value.length,Te=L.value,Ie=Te.slice(0,he)+f+Te.slice(Se);X(Ie),requestAnimationFrame(()=>{L.focus();const ue=he+f.length;L.setSelectionRange(ue,ue)})},ne=async()=>{const f=[p,...Object.values(k)],L=Rs(f);if(L.length===0)return!0;I(!0);try{const X=await u.ensureQueryData({queryKey:["rule-engine-datasets-catalog-for-panel"],queryFn:()=>fs.listDataSets(),staleTime:6e4}),he=new Map(X.map(ue=>[ue.entity,ue])),Se=new Map;await Promise.all(L.map(async ue=>{const $=he.get(ue);if(!$)return;const we=await u.ensureQueryData({queryKey:["rule-engine-dataset-fields",$.datasetId],queryFn:()=>q.getDatasetFields($.datasetId),staleTime:6e4});Se.set($.datasetId,we)}));const{blocked:Te,warnings:Ie}=Ts(f,X,Se);if(Te.length>0){const ue=Te[0].reference,$=Te[0].rejectedReason==="scalar-with-extra";return await ke({icon:"error",title:r({id:"setup.ruleEngine.datasetFields.validationRejectedTitle"}),text:r({id:$?"setup.ruleEngine.datasetFields.validationRejectedScalarMessage":"setup.ruleEngine.datasetFields.validationRejectedMessage"},{reference:ue.raw,field:ue.field,entity:ue.entity}),confirmText:r({id:"message.control.accept"})}),!1}if(Ie.length>0){const ue=Ie[0].reference,$=Ie[0].reason==="unknown-entity";await ke({icon:"warning",title:r({id:"setup.ruleEngine.datasetFields.validationUnvalidatedTitle"}),text:r({id:$?"setup.ruleEngine.datasetFields.validationUnknownEntityWarning":"setup.ruleEngine.datasetFields.validationUnvalidatedWarning"},{reference:ue.raw,entity:ue.entity}),confirmText:r({id:"message.control.accept"})})}return!0}finally{I(!1)}},re=Ce({mutationFn:f=>q.saveFunctionParams(t,f.fxrId,{functionId:f.functionId,count:f.count,operator:c||null,value:p,logicalOperator:T,params:Object.entries(k).map(([L,X])=>({parameterId:Number(L),value:X})),...f.canPublish?{publishAs:S.trim(),publishScope:S.trim()?O:""}:{}}),onSuccess:f=>{if((f==null?void 0:f.success)===!1){console.error("[RuleEngine] saveFunctionParams devolvio success=false",{ruleId:t,result:f}),ke({icon:"error",title:r({id:"message.error.save"}),confirmText:r({id:"message.control.accept"})});return}u.invalidateQueries({queryKey:["rule-engine-func-params",t,n==null?void 0:n.functionId,n==null?void 0:n.count]}
1),u.invalidateQueries({queryKey:["rule-tree",t]});const L=Array.isArray(f==null?void 0:f.warnings)?f.warnings:[];W(L),l(),L.length===0&&i(),ke({icon:"success",title:r({id:"message.generalSuccess.successfullySaved"}),confirmText:r({id:"message.control.accept"})})},onError:(f,L)=>{var he,Se;const X=f;console.error(`[RuleEngine] saveFunctionParams fallo — ruleId=${t} fxrId=${L==null?void 0:L.fxrId} functionId=${L==null?void 0:L.functionId} count=${L==null?void 0:L.count} status=${((he=X==null?void 0:X.response)==null?void 0:he.status)??"sin-respuesta"} message=${(X==null?void 0:X.message)??String(f)} data=${JSON.stringify(((Se=X==null?void 0:X.response)==null?void 0:Se.data)??null)}`,f),ke({icon:"error",title:r({id:"message.error.save"}),confirmText:r({id:"message.control.accept"})})}}),pe=ve.map(f=>({value:f.operatorId,label:f.value})),ye=[{value:7,label:"AND"},{value:8,label:"OR"}],xe=((Xe=se==null?void 0:se.params)==null?void 0:Xe.filter(f=>f.editable==="T"))??[],be=xe.find(f=>f.alias===us),je=xe.find(f=>f.alias===Vt),ce=xe.find(f=>f.alias===Dt),E=xe.find(f=>f.alias===Ht),ie=w&&F.length>0&&(n==null?void 0:n.functionId)!=null&&F.includes(n.functionId)&&!!be&&!!je&&!!ce,Ne=be?k[be.parameterId]??"":"",ge=f=>{be&&(y(L=>({...L,[be.parameterId]:f.actuatorCode})),K(!1),j(null),M(!1))},Ee=()=>{v&&be&&(y(f=>({...f,[be.parameterId]:v})),j(null),K(!0)),M(!1)},Be=()=>{be&&(j(Ne||null),y(f=>({...f,[be.parameterId]:""})),K(!0),M(!0))},Pe=xe.filter(f=>f.alias!==us),Ue=Pe.some(f=>zt(k[f.parameterId])),_e=ie&&!Ne&&Ue&&!z,Fe=(f,L)=>e.jsxs("div",{className:"col-12 col-md-6",children:[e.jsxs("label",{className:"form-label fw-semibold",htmlFor:`param-${f.parameterId}`,children:[f.alias,f.isRequired==="T"&&e.jsx("span",{className:"text-danger ms-1","aria-hidden":"true",children:"*"})]}),e.jsx(Jt,{param:f,value:k[f.parameterId]??"",onChange:X=>y(he=>({...he,[f.parameterId]:X})),onFocusField:L}),f.info&&e.jsx("div",{className:"form-text text-gray-700 fs-8 mt-1",children:r({id:f.info})})]},f.parameterId),P=f=>{E&&y(L=>({...L,[E.parameterId]:f}))},ae=(f,L)=>{E&&(y(X=>({...X,[E.parameterId]:f})),K(L))},Ve=(f,L,X)=>{!je||!ce||(y(he=>({...he,[je.parameterId]:f,[ce.parameterId]:L})),K(X))},Le=!ie||_e||!!Ne&&Y;return e.jsx(js,{isOpen:s,onClose:i,customHeader:e.jsxs("div",{className:"d-flex align-items-center",children:[e.jsx("i",{className:"ki-outline ki-setting-3 fs-2 me-3 text-primary","aria-hidden":"true"}),e.jsxs("div",{children:[e.jsx("h5",{className:"modal-title mb-0",children:r({id:"setup.ruleEngine.paramsTitle"})}),n&&e.jsx("span",{className:"text-gray-700 fs-7",children:n.functionName})]})]}),size:d?`modal-dialog ${Ds.bottomSheet}`:"modal-dialog modal-dialog-centered modal-lg",showFooter:!1,trapFocus:!0,children:H?e.jsx("div",{className:"d-flex justify-content-center py-8","aria-busy":"true","aria-label":r({id:"message.loading"}),children:e.jsx("div",{className:"spinner-border text-primary",role:"status",children:e.jsx("span",{className:"visually-hidden",children:r({id:"message.loading"})})})}):e.jsxs("div",{className:"row g-5",children:[C.length>0&&e.jsx("div",{className:"col-12",children:e.jsxs("div",{role:"alert","aria-live":"polite",className:"alert alert-warning d-flex flex-column gap-1 mb-0 py-2",children:[e.jsx("span",{className:"fw-semibold fs-7",children:r({id:"setup.ruleEngine.datasetFields.existingReferencesBrokenTitle"})}),C.map(f=>e.jsx("span",{className:"fs-8",children:r({id:"setup.ruleEngine.datasetFields.existingReferencesBrokenItem"},{reference:f.reference.raw,entity:f.reference.entity,field:f.reference.field})},f.reference.raw))]})}),(n==null?void 0:n.functionType)==="if"&&(se==null?void 0:se.requiresOperator)&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"col-12 col-md-6",children:[e.jsx("label",{className:"form-label fw-semibold",children:r({id:"message.operator"})}),e.jsx("div",{className:"react-select-sm react-select-styled",children:e.jsx(Ae,{classNamePrefix:"react-select",options:pe,value:pe.find(f=>f.value===c)??null,onChange:f=>m(f?f.value:0),isClearable:!1,isSearchable:!1,"aria-label":r({id:"message.operator"})})})]}),e.jsxs("div",{className:"col-12 col-md-6",children:[e.jsx("label",{className:"form-label fw-semibold",htmlFor:"expectedValue",children:r({id:"message.rule.expectedValue"})}),e.jsx("input",{id:"expectedValue",type:"text",className:"form-control form-control-sm",style:{fontSize:16},value:p,onChange:f=>h(f.target.value),onFocus:f=>{oe.current=f.currentTarget,B.current=h},"aria-label":r({id:"message.rule.expectedValue"})})]})]}),(n==null?void 0:n.functionType)==="if"&&e.jsxs("div",{className:"col-12 col-md-6",children:[e.jsx("label",{className:"form-label fw-semibold",children:r({id:"setup.ruleEngine.paramLogical"})}),e.jsx("div",{className:"react-select-sm react-select-styled",children:e.jsx(Ae,{classNamePrefix:"react-select",options:ye,value:ye.find(f=>f.value===T)??null,onChange:f=>R(f?f.value:7),isClearable:!1,isSearchable:!1,"aria-label":r({id:"setup.ruleEngine.paramLogical"})})})]}),A&&e.jsxs("div",{className:"col-12",children:[e.jsx("div",{className:"separator my-2"}),e.jsx("h6",{className:"fw-bold mb-3 text-gray-700",children:r({id:"setup.ruleEngine.ctx.sectionTitle",defaultMessage:"Compartir el resultado con los pasos siguientes"})}),e.jsxs("div",{className:"row g-4",children:[e.jsxs("div",{className:"col-12 col-md-6",children:[e.jsx("label",{className:"form-label fw-semibold",htmlFor:"publishAs",children:r({id:"setup.ruleEngine.ctx.publishAs",defaultMessage:"Publicar como"})}),e.jsx("input",{id:"publishAs",type:"text",className:"form-control form-control-sm",style:{fontSize:16},value:S,onChange:f=>N(f.target.value),placeholder:r({id:"setup.ruleEngine.ctx.publishAsPlaceholder",defaultMessage:"premio"}),"aria-label":r({id:"setup.ruleEngine.ctx.publishAs",defaultMessage:"Publicar como"})}),e.jsx("div",{className:"form-text fs-8",children:r({id:"setup.ruleEngine.ctx.publishAsHelp",defaultMessage:"Vacío = este paso no comparte su resultado. Con un nombre, los pasos siguientes lo usan como {{ctx.nombre.campo}}."})})]}),e.jsxs("div",{className:"col-12 col-md-6",children:[e.jsx("label",{className:"form-label fw-semibold",htmlFor:"publishScope",children:r({id:"setup.ruleEngine.ctx.publishScope",defaultMessage:"Who can use it"})}),e.jsxs("select",{id:"publishScope",className:"form-select form-select-sm",style:{fontSize:16},value:O,disabled:!S.trim(),onChange:f=>g(f.target.value),children:[e.jsx("option",{value:"RULE",children:r({id:"setup.ruleEngine.ctx.scopeRule",defaultMessage:"Solo los pasos de esta regla"})}),e.jsx("option",{value:"PROCESS",children:r({id:"setup.ruleEngine.ctx.scopeProcess",defaultMessage:"Las reglas siguientes del proceso"})})]})]}),ee.length>0&&e.jsxs("div",{className:"col-12",children:[e.jsx("label",{className:"form-label fw-semibold",children:r({id:"setup.ruleEngine.ctx.availableFrom",defaultMessage:"Results from previous steps"})}),e.jsx("div",{className:"d-flex flex-wrap gap-2",children:ee.map(f=>e.jsx("button",{type:"button",className:"btn btn-sm btn-light-primary py-1 px-3 fs-8",onClick:()=>de(`{{ctx.${f.name}.}}`),title:`${r({id:"setup.ruleEngine.ctx.publishedAtStep",defaultMessage:"Published at step"})} #${f.step} — ${f.from}`,children:e.jsx("code",{className:"text-primary",children:`{{ctx.${f.name}.…}}`})},f.name))}),e.jsx("div",{className:"form-text fs-8",children:r({id:"setup.ruleEngine.ctx.availableFromHelp",defaultMessage:"Poné el cursor en un campo y hacé clic para insertar la referencia; después completá el nombre del dato."})})]})]})]}),b.length>0&&e.jsx("div",{className:"col-12",children:e.jsxs("div",{className:"alert alert-warning d-flex flex-column gap-2 mb-0",children:[e.jsx("span",{className:"fw-semibold",children:r({id:"setup.ruleEngine.ctx.warningsTitle",defaultMessage:"Saved, but the rule does not compile yet:"})}),b.map((f,L)=>e.jsx("span",{className:"fs-8",style:{whiteSpace:"pre-line"},children:f},L))]})}),ie&&be&&je&&ce&&e.jsxs("div",{className:"col-12",children:[e.jsx("div",{className:"separator my-2"}),e.jsx("h6",{className:"fw-bold mb-4 text-gray-700",children:r({id:"setup.ruleEngine.actuator.selectorTitle"})}),Ne?e.jsxs(e.Fragment,{children:[_&&e.jsx(bs,{mode:"edit",actuatorCode:_.actuatorCode,initialDetail
1:_,initialHeadersJson:E?k[E.parameterId]??"":"",onCancel:()=>G(null),onSaved:(f,L)=>{L&&P(L),G(null)}}),e.jsx("div",{hidden:!!_,children:e.jsx(Kt,{actuatorCode:Ne,initialBodyJson:k[je.parameterId]??"",initialQueryJson:k[ce.parameterId]??"",initialHeadersJson:E?k[E.parameterId]??"":"",onChangeActuator:Be,onChange:Ve,onHeadersChange:ae,onFieldFocus:(f,L)=>{oe.current=f,B.current=L},onEditActuator:G},Ne)})]}):_e?e.jsxs("div",{children:[e.jsx("div",{className:"row g-4",children:Pe.map(f=>Fe(f,L=>{oe.current=L,B.current=X=>y(he=>({...he,[f.parameterId]:X}))}))}),e.jsx("div",{className:"pt-3",children:e.jsx("button",{type:"button",className:"btn btn-sm btn-light-primary",onClick:()=>M(!0),children:r({id:"setup.ruleEngine.actuator.adoptCatalog"})})})]}):e.jsxs(e.Fragment,{children:[z&&e.jsx("div",{className:"d-flex justify-content-end mb-2",children:e.jsx("button",{type:"button",className:"btn btn-sm btn-light",onClick:Ee,children:r({id:"message.back"})})}),e.jsx(Et,{value:Ne||v||"",onSelect:ge,currentHeadersJson:E?k[E.parameterId]??"":"",onDeclaredHeaders:P,onPanelChange:x})]})]}),!ie&&xe.length>0&&e.jsxs("div",{className:"col-12",children:[e.jsx("div",{className:"separator my-2"}),e.jsx("h6",{className:"fw-bold mb-4 text-gray-700",children:r({id:"setup.ruleEngine.paramsSection"})}),e.jsx("div",{className:"row g-4",children:xe.map(f=>Fe(f,L=>{oe.current=L,B.current=X=>y(he=>({...he,[f.parameterId]:X}))}))})]}),fe==="browse"&&!_&&e.jsxs("div",{className:"col-12",children:[e.jsx("div",{className:"separator my-2"}),e.jsx(mt,{processId:a,onInsertField:de})]}),e.jsx("div",{className:"col-12",hidden:!!_,children:e.jsxs("div",{className:"d-flex justify-content-end gap-2 pt-2",children:[e.jsx("button",{type:"button",className:"btn btn-sm btn-light",onClick:i,disabled:re.isPending,children:r({id:"message.cancel"})}),e.jsx("button",{type:"button",className:"btn btn-sm btn-primary fw-bold",onClick:async()=>{if(se!=null&&se.requiresOperator&&!c){ke({icon:"warning",title:r({id:"message.operator"}),text:r({id:"message.label.fieldRequired"}),confirmText:r({id:"message.control.accept"})});return}if(!n)return;const f={fxrId:n.fxrId,functionId:n.functionId,count:n.count,canPublish:A};await ne()&&re.mutate(f)},disabled:re.isPending||J||!Le,"aria-label":r({id:"message.save"}),children:re.isPending||J?r({id:"message.wait"}):r({id:"message.save"})})]})})]})})},Gt="_nodeGroup_k9579_4",Yt="_nodeGroupRoot_k9579_18",Qt="_sectionRow_k9579_26",Xt="_sectionRowActions_k9579_52",Zt="_fnNode_k9579_64",ea="_fnNodeActions_k9579_93",sa="_logicConnector_k9579_105",ta="_logicLine_k9579_121",aa="_logicLineAnd_k9579_127",na="_logicLineOr_k9579_128",ra="_btn_k9579_131",ia="_badge_k9579_141",la="_addRow_k9579_162",oa="_addRowThen_k9579_186",ca="_addRowElse_k9579_188",da="_fnNodeDragOver_k9579_192",Q={nodeGroup:Gt,nodeGroupRoot:Yt,sectionRow:Qt,sectionRowActions:Xt,fnNode:Zt,fnNodeActions:ea,logicConnector:sa,logicLine:ta,logicLineAnd:aa,logicLineOr:na,btn:ra,badge:ia,addRow:la,addRowThen:oa,addRowElse:ca,fnNodeDragOver:da};function Ge(s,t){return`${s??"root"}-${t}`}function ua(s){const t=new Map;s.forEach(n=>t.set(n.fxrId,{...n,children:[]}));const a=[];return s.forEach(n=>{const i=t.get(n.fxrId);if(n.fatherId==null)a.push(i);else{const l=t.get(n.fatherId);l?l.children.push(i):a.push(i)}}),a}const ma={if:"badge-primary",then:"badge-success",else:"badge-warning"},is=({type:s,count:t,collapsed:a,onToggle:n,onAdd:i,onAddCondition:l,labelThen:r,labelElse:u,labelAddThen:d,labelAddElse:c})=>{const{formatMessage:m}=le(),p=s==="then",h=p?"text-success":"text-warning",T=p?"badge-light-success":"badge-light-warning",R=p?"btn-light-success":"btn-light-warning",k=p?r:u,y=p?d:c;return e.jsxs("div",{className:Q.sectionRow,onClick:n,role:n?"button":void 0,"aria-expanded":n?!a:void 0,style:n?{cursor:"pointer"}:void 0,children:[e.jsx("i",{className:`ki-outline ${a?"ki-arrow-right":"ki-arrow-down"} fs-9 flex-shrink-0 ${h}`,"aria-hidden":"true"}),e.jsx("span",{className:`${h} fw-bold text-uppercase`,style:{fontSize:11,letterSpacing:"0.07em"},children:k}),e.jsx("span",{className:`badge ${T}`,style:{fontSize:10},children:t}),e.jsxs("div",{className:Q.sectionRowActions,children:[i&&t===0&&e.jsxs("button",{type:"button",className:`btn btn-xs ${R} py-0 px-2`,style:{fontSize:11,lineHeight:"20px"},onClick:S=>{S.stopPropagation(),i()},children:[e.jsx("i",{className:"ki-outline ki-plus fs-8 me-1","aria-hidden":"true"}),y]}),l&&t===0&&e.jsxs("button",{type:"button",className:"btn btn-xs btn-primary py-0 px-2",style:{fontSize:11,lineHeight:"20px"},onClick:S=>{S.stopPropagation(),l()},children:[e.jsx("i",{className:"ki-outline ki-plus fs-8 me-1","aria-hidden":"true"}),m({id:"message.tooltip.condi"})]})]})]})},pa=({node:s,onEdit:t,onDelete:a,canDelete:n=!0})=>{const{formatMessage:i}=le();return e.jsxs("div",{className:Q.fnNode,children:[e.jsx("span",{className:"badge badge-primary flex-shrink-0",style:{fontSize:10},children:i({id:"message.label.conditions"})}),e.jsx("span",{className:"fw-semibold text-dark fs-7 flex-grow-1 text-truncate",children:s.functionName}),s.value&&e.jsxs("span",{className:"text-gray-700 fs-8 flex-shrink-0 d-none d-md-inline",children:["= ",s.value.length>16?s.value.slice(0,16)+"…":s.value]}),e.jsxs("div",{className:Q.fnNodeActions,children:[e.jsx("button",{type:"button",className:"btn btn-sm btn-icon btn-active-light-primary p-0 flex-shrink-0",onClick:()=>t(s),"aria-label":i({id:"setup.ruleEngine.actionEditNode"}),children:e.jsx("i",{className:"ki-outline ki-pencil fs-8","aria-hidden":"true"})}),n&&e.jsx("button",{type:"button",className:"btn btn-sm btn-icon btn-active-light-danger p-0 flex-shrink-0",onClick:()=>a(s),"data-element-code":"BTN_DELETE_NODE","data-label-key":"message.delete","aria-label":i({id:"message.delete"}),children:e.jsx("i",{className:"ki-outline ki-trash fs-8","aria-hidden":"true"})})]})]})},ha=({op:s})=>e.jsxs("div",{className:Q.logicConnector,children:[e.jsx("div",{className:`${Q.logicLine} ${s==="y"?Q.logicLineAnd:Q.logicLineOr}`}),e.jsx("span",{className:`badge ${s==="y"?"badge-primary":"badge-info"}`,style:{fontSize:9,letterSpacing:"0.04em"},children:s==="y"?"Y":"O"})]}),ls=({node:s,ruleId:t,allFlat:a,defaultCollapsed:n=!1,onEdit:i,onDelete:l,onRefresh:r,isInsideElse:u=!1,canDelete:d=!0,reorderMode:c=!1,dragOverFxrId:m,branchKey:p,onDragStart:h,onDragOver:T,onDrop:R,onDragEnd:k})=>{const{formatMessage:y}=le(),[S,N]=o.useState(n),[O,g]=o.useState(n),[b,W]=o.useState(n),[Y,K]=o.useState(!1),[z,M]=o.use
1State(!1);o.useEffect(()=>{N(n)},[n]),o.useEffect(()=>{g(n)},[n]),o.useEffect(()=>{W(n)},[n]);const _=Math.max(0,...a.map(C=>C.count))+1,G=s.functionType==="if",v=s.children.filter(C=>!C.isElse),j=s.children.filter(C=>C.isElse),w=C=>()=>{C(),r()};if(G)return e.jsxs("div",{className:Q.nodeGroup,children:[e.jsxs("div",{className:Q.sectionRow,onClick:()=>N(C=>!C),role:"button","aria-expanded":!S,style:{cursor:"pointer"},children:[e.jsx("i",{className:`ki-outline ${S?"ki-arrow-right":"ki-arrow-down"} fs-9 text-primary flex-shrink-0`,"aria-hidden":"true"}),e.jsx("span",{className:"badge badge-primary flex-shrink-0",style:{fontSize:10},children:y({id:"message.label.conditions"})}),e.jsx("span",{className:"fw-semibold text-dark fs-7 flex-grow-1 text-truncate",children:s.functionName}),s.logicalOperatorName&&e.jsx("span",{className:`badge flex-shrink-0 ${s.logicalOperatorName==="y"?"badge-primary":"badge-info"}`,style:{fontSize:9},children:s.logicalOperatorName==="y"?"Y":"O"}),s.value&&e.jsxs("span",{className:"text-gray-700 fs-8 flex-shrink-0 d-none d-md-inline",children:["= ",s.value.length>20?s.value.slice(0,20)+"…":s.value]}),e.jsxs("div",{className:Q.sectionRowActions,children:[e.jsx("button",{type:"button",className:"btn btn-sm btn-icon btn-active-light-primary p-0 flex-shrink-0",onClick:C=>{C.stopPropagation(),i(s)},"aria-label":y({id:"setup.ruleEngine.actionEditNode"}),children:e.jsx("i",{className:"ki-outline ki-pencil fs-8","aria-hidden":"true"})}),d&&e.jsx("button",{type:"button",className:"btn btn-sm btn-icon btn-active-light-danger p-0 flex-shrink-0",onClick:C=>{C.stopPropagation(),l(s)},"data-element-code":"BTN_DELETE_NODE","data-label-key":"message.delete","aria-label":y({id:"message.delete"}),children:e.jsx("i",{className:"ki-outline ki-trash fs-8","aria-hidden":"true"})})]})]}),!S&&e.jsxs("div",{children:[e.jsxs("div",{className:"mb-1",children:[e.jsx(is,{type:"then",count:v.length,collapsed:O,onToggle:()=>g(C=>!C),onAdd:()=>{g(!1),K(!0)},labelThen:y({id:"message.label.conclutions"}),labelElse:y({id:"message.label.else"}),labelAddThen:y({id:"message.label.add"}),labelAddElse:y({id:"message.label.add"})}),!O&&e.jsxs("div",{className:Q.nodeGroup,children:[v.map(C=>e.jsx(ls,{node:C,ruleId:t,allFlat:a,defaultCollapsed:n,onEdit:i,onDelete:l,onRefresh:r,canDelete:d,reorderMode:c,dragOverFxrId:m,branchKey:Ge(s.fxrId,!1),onDragStart:h,onDragOver:T,onDrop:R,onDragEnd:k},C.fxrId)),(v.length>0||Y)&&e.jsx("div",{children:Y?e.jsx($e,{ruleId:t,type:"conclusion",position:_,parentId:void 0,fatherCount:void 0,isElse:!1,onAdded:w(()=>K(!1)),onCancel:()=>K(!1)}):e.jsxs("div",{className:`${Q.addRow} ${Q.addRowThen}`,onClick:()=>K(!0),role:"button",tabIndex:0,onKeyDown:C=>C.key==="Enter"&&K(!0),children:[e.jsx("i",{className:"ki-outline ki-plus fs-8","aria-hidden":"true"}),y({id:"message.label.conclutions"})]})})]})]}),!u&&e.jsxs("div",{children:[e.jsx(is,{type:"else",count:j.length,collapsed:b,onToggle:()=>W(C=>!C),onAdd:()=>{W(!1),M(!0)},labelThen:y({id:"message.label.conclutions"}),labelElse:y({id:"message.label.else"}),labelAddThen:y({id:"message.label.add"}),labelAddElse:y({id:"message.label.add"})}),!b&&e.jsxs("div",{className:Q.nodeGroup,children:[j.map(C=>e.jsx(ls,{node:C,ruleId:t,allFlat:a,defaultCollapsed:n,onEdit:i,onDelete:l,onRefresh:r,isInsideElse:!0,canDelete:d,reorderMode:c,dragOverFxrId:m,branchKey:Ge(s.fxrId,!0),onDragStart:h,onDragOver:T,onDrop:R,onDragEnd:k},C.fxrId)),(j.length>0||z)&&e.jsx("div",{children:z?e.jsx($e,{ruleId:t,type:"conclusion",position:_,parentId:void 0,fatherCount:void 0,isElse:!0,onAdded:w(()=>M(!1)),onCancel:()=>M(!1)}):e.jsxs("div",{className:`${Q.addRow} ${Q.addRowElse}`,onClick:()=>M(!0),role:"button",tabIndex:0,onKeyDown:C=>C.key==="Enter"&&M(!0),children:[e.jsx("i",{className:"ki-outline ki-plus fs-8","aria-hidden":"true"}),y({id:"message.label.else"})]})})]})]})]})]});const J=s.functionType,I=c&&m===s.fxrId;return e.jsxs("div",{className:`${Q.fnNode}${I?` ${Q.fnNodeDragOver}`:""}`,draggable:c&&!!p,style:c?{cursor:"grab"}:void 0,onDragStart:c&&p?()=>h==null?void 0:h(s.fxrId,p):void 0,onDragOver:c&&p?C=>T==null?void 0:T(C,s.fxrId,p):void 0,onDrop:c&&p?()=>R==null?void 0:R(s.fxrId,p):void 0,onDragEnd:c?k:void 0,children:[c&&e.jsx("i",{className:"ki-outline ki-row-vertical fs-8 text-gray-500 flex-shrink-0","aria-hidden":"true"}),e.jsx("span",{className:`badge ${ma[J]} flex-shrink-0`,style:{fontSize:10},children:y(J==="then"?{id:"message.label.conclutions"}:{id:"message.label.else"})}),e.jsx("span",{className:"fw-semibold text-dark fs-7 flex-grow-1 text-truncate",children:s.functionName}),s.value&&e.jsxs("span",{className:"text-gray-700 fs-8 flex-shrink-0 d-none d-md-inline",children:["= ",s.value.length>16?s.value.slice(0,16)+"…":s.value]}),!c&&e.jsxs("div",{className:Q.fnNodeActions,children:[e.jsx("button",{type:"button",className:"btn btn-sm btn-icon btn-active-light-primary p-0 flex-shrink-0",onClick:()=>i(s),"aria-label":y({id:"message.edit"}),children:e.jsx("i",{className:"ki-outline ki-pencil fs-8","aria-hidden":"true"})}),d&&e.jsx("button",{type:"button",className:"btn btn-sm btn-icon btn-active-light-danger p-0 flex-shrink-0",onClick:()=>l(s),"data-element-code":"BTN_DELETE_NODE","data-label-key":"message.delete","aria-label":y({id:"message.delete"}),children:e.jsx("i",{className:"ki-outline ki-trash fs-8","aria-hidden":"true"})})]})]})},ze=({nodes:s,ruleId:t,allFlat:a,defaultCollapsed:n=!1,onEdit:i,onDelete:l,onRefresh:r,isInsideElse:u=!1,canDelete:d=!0,containerFxrId:c,parentFunctionId:m,reorderMode:p=!1,branchOrders:h,dragOverFxrId:T,onReorderDragStart:R,onReorderDragOver:k,onReorderDrop:y,onReorderDragEnd:S})=>{const{formatMessage:N}=le(),[O,g]=o.useState(n),[b,W]=o.useState(n),[Y,K]=o.useState(n),[z,M]=o.use
1State(null),[_,G]=o.useState(!1),[v,j]=o.useState(!1),[w,J]=o.useState(!1),[I,C]=o.useState(!1);o.useEffect(()=>{g(n)},[n]),o.useEffect(()=>{W(n)},[n]),o.useEffect(()=>{K(n)},[n]);const U=Math.max(0,...a.map(E=>E.count))+1,Z=s.filter(E=>E.functionType==="if"),te=s.filter(E=>E.functionType==="then"),F=s.filter(E=>E.functionType==="else"),oe=E=>E.children.some(ie=>ie.functionType==="if"||ie.functionType==="then"||ie.functionType==="else"),B=te.filter(oe),ve=te.filter(E=>!oe(E)),se=F.filter(oe),H=F.filter(E=>!oe(E)),fe=te.length>0||F.length>0,x=fe?ve:Z.flatMap(E=>E.children.filter(ie=>!ie.isElse)),A=fe?H:Z.flatMap(E=>E.children.filter(ie=>ie.isElse)),ee=B.length+x.length,de=se.length+A.length,ne=x.length>0&&!x.some(E=>E.functionType==="if"),re=B.length>0||x.some(E=>E.functionType==="if"),pe=A.length>0&&!A.some(E=>E.functionType==="if"),ye=se.length>0||A.some(E=>E.functionType==="if"),xe=c,be=c,je=E=>{M(E)},ce=E=>()=>{E(),r()};return e.jsxs("div",{className:`${Q.nodeGroup} ${Q.nodeGroupRoot}`,children:[e.jsxs("div",{className:Q.sectionRow,onClick:()=>g(E=>!E),role:"button","aria-expanded":!O,style:{cursor:"pointer"},children:[e.jsx("i",{className:`ki-outline ${O?"ki-arrow-right":"ki-arrow-down"} fs-9 text-primary flex-shrink-0`,"aria-hidden":"true"}),e.jsx("span",{className:"badge badge-primary flex-shrink-0",style:{fontSize:10},children:N({id:"message.label.conditions"})}),e.jsxs("span",{className:"text-gray-700 fs-8 flex-grow-1",children:[Z.length>0?Z[0].functionName:"",Z.length>1&&e.jsxs("span",{className:"ms-1 badge badge-light-primary",style:{fontSize:9},children:["+",Z.length-1]})]}),e.jsxs("div",{className:Q.sectionRowActions,children:[e.jsx("button",{type:"button",className:"btn btn-xs btn-primary px-2 py-0",style:{fontSize:11},onClick:E=>{E.stopPropagation(),je(7)},title:N({id:"setup.ruleEngine.addConditionAnd"}),children:"+ Y"}),e.jsx("button",{type:"button",className:"btn btn-xs btn-primary px-2 py-0",style:{fontSize:11},onClick:E=>{E.stopPropagation(),je(8)},title:N({id:"setup.ruleEngine.addConditionOr"}),children:"+ O"})]})]}),!O&&e.jsxs("div",{className:Q.nodeGroup,children:[Z.map((E,ie)=>{const Ne=ie<Z.length-1?Z[ie+1].logicalOperatorName:null;return e.jsxs(Me.Fragment,{children:[e.jsx(pa,{node:E,onEdit:i,onDelete:l,canDelete:d}),Ne&&ie<Z.length-1&&e.jsx(ha,{op:Ne})]},E.fxrId)}),z!==null&&e.jsxs("div",{className:"mb-2",children:[e.jsxs("div",{className:"d-flex align-items-center gap-2 mb-1",children:[e.jsx("span",{className:`badge ${z===7?"badge-primary":"badge-info"}`,style:{fontSize:11},children:z===7?"Y":"O"}),e.jsx("span",{className:"text-gray-700 fs-8",children:N({id:"setup.ruleEngine.addSiblingCondition"})})]}),e.jsx($e,{ruleId:t,type:"condition",position:U,parentId:c,fatherCount:void 0,isElse:!1,logicalOperator:z??void 0,onAdded:ce(()=>M(null)),onCancel:()=>M(null)})]})]}),e.jsxs("div",{className:"mt-1",children:[e.jsx(is,{type:"then",count:ee,collapsed:b,onToggle:()=>W(E=>!E),onAdd:re?void 0:()=>{W(!1),J(!1),G(!0)},onAddCondition:!ne&&!re?()=>{W(!1),G(!1),J(!0)}:void 0,labelThen:N({id:"message.label.conclutions"}),labelElse:N({id:"message.label.else"}),labelAddThen:N({id:"message.label.add"}),labelAddElse:N({id:"message.label.add"})}),!b&&e.jsxs("div",{className:Q.nodeGroup,children:[B.map(E=>e.jsx(ze,{nodes:E.children,ruleId:t,allFlat:a,defaultCollapsed:n,onEdit:i,onDelete:l,onRefresh:r,canDelete:d,containerFxrId:E.fxrId,parentFunctionId:m,reorderMode:p,branchOrders:h,dragOverFxrId:T,onReorderDragStart:R,onReorderDragOver:k,onReorderDrop:y,onReorderDragEnd:S},E.fxrId)),x.some(E=>E.functionType==="if")&&e.jsx(ze,{nodes:x.filter(E=>E.functionType==="if"),ruleId:t,allFlat:a,defaultCollapsed:n,onEdit:i,onDelete:l,onRefresh:r,canDelete:d,parentFunctionId:m,reorderMode:p,branchOrders:h,dragOverFxrId:T,onReorderDragStart:R,onReorderDragOver:k,onReorderDrop:y,onReorderDragEnd:S}),(()=>{const E=x.filter(ge=>ge.functionType!=="if"),ie=Ge(c??null,!1);return(p&&(h!=null&&h.has(ie))?h.get(ie).map(ge=>E.find(Ee=>Ee.fxrId===ge)).filter(Boolean):E).map(ge=>e.jsx(ls,{node:ge,ruleId:t,allFlat:a,defaultCollapsed:n,onEdit:i,onDelete:l,onRefresh:r,canDelete:d,reorderMode:p,dragOverFxrId:T,branchKey:ie,onDragStart:R,onDragOver:k,onDrop:y,onDragEnd:S},ge.fxrId))})(),w&&e.jsx($e,{ruleId:t,type:"condition",position:U,parentId:void 0,fatherCount:void 0,isElse:!1,containerFunctionId:m,containerIsElse:!1,containerParentId:c,onAdded:ce(()=>J(!1)),onCancel:()=>J(!1)}),!re&&(ee>0||_)&&e.jsx("div",{children:_?e.jsx($e,{ruleId:t,type:"conclusion",position:U,parentId:xe,fatherCount:void 0,isElse:!1,onAdded:ce(()=>G(!1)),onCancel:()=>G(!1)}):e.jsxs("div",{className:`${Q.addRow} ${Q.addRowThen}`,onClick:()=>{J(!1),G(!0)},role:"button",tabIndex:0,onKeyDown:E=>
1E.key==="Enter"&&G(!0),children:[e.jsx("i",{className:"ki-outline ki-plus fs-8","aria-hidden":"true"}),N({id:"message.label.conclutions"})]})})]})]}),!u&&e.jsxs("div",{className:"mt-1",children:[e.jsx(is,{type:"else",count:de,collapsed:Y,onToggle:()=>K(E=>!E),onAdd:ye?void 0:()=>{K(!1),C(!1),j(!0)},onAddCondition:!pe&&!ye?()=>{K(!1),j(!1),C(!0)}:void 0,labelThen:N({id:"message.label.conclutions"}),labelElse:N({id:"message.label.else"}),labelAddThen:N({id:"message.label.add"}),labelAddElse:N({id:"message.label.add"})}),!Y&&e.jsxs("div",{className:Q.nodeGroup,children:[se.map(E=>e.jsx(ze,{nodes:E.children,ruleId:t,allFlat:a,defaultCollapsed:n,onEdit:i,onDelete:l,onRefresh:r,canDelete:d,containerFxrId:E.fxrId,parentFunctionId:m,reorderMode:p,branchOrders:h,dragOverFxrId:T,onReorderDragStart:R,onReorderDragOver:k,onReorderDrop:y,onReorderDragEnd:S},E.fxrId)),A.some(E=>E.functionType==="if")&&e.jsx(ze,{nodes:A.filter(E=>E.functionType==="if"),ruleId:t,allFlat:a,defaultCollapsed:n,onEdit:i,onDelete:l,onRefresh:r,canDelete:d,parentFunctionId:m,reorderMode:p,branchOrders:h,dragOverFxrId:T,onReorderDragStart:R,onReorderDragOver:k,onReorderDrop:y,onReorderDragEnd:S}),(()=>{const E=A.filter(ge=>ge.functionType!=="if"),ie=Ge(c??null,!0);return(p&&(h!=null&&h.has(ie))?h.get(ie).map(ge=>E.find(Ee=>Ee.fxrId===ge)).filter(Boolean):E).map(ge=>e.jsx(ls,{node:ge,ruleId:t,allFlat:a,defaultCollapsed:n,onEdit:i,onDelete:l,onRefresh:r,isInsideElse:!0,canDelete:d,reorderMode:p,dragOverFxrId:T,branchKey:ie,onDragStart:R,onDragOver:k,onDrop:y,onDragEnd:S},ge.fxrId))})(),I&&e.jsx($e,{ruleId:t,type:"condition",position:U,parentId:void 0,fatherCount:void 0,isElse:!0,containerFunctionId:m,containerIsElse:!0,containerParentId:c,onAdded:ce(()=>C(!1)),onCancel:()=>C(!1)}),!ye&&(de>0||v)&&e.jsx("div",{children:v?e.jsx($e,{ruleId:t,type:"conclusion",position:U,parentId:be,fatherCount:void 0,isElse:!0,onAdded:ce(()=>j(!1)),onCancel:()=>j(!1)}):e.jsxs("div",{className:`${Q.addRow} ${Q.addRowElse}`,onClick:()=>{C(!1),j(!0)},role:"button",tabIndex:0,onKeyDown:E=>E.key==="Enter"&&j(!0),children:[e.jsx("i",{className:"ki-outline ki-plus fs-8","aria-hidden":"true"}),N({id:"message.label.else"})]})})]})]})]})},fa=({ruleId:s,processId:t=null})=>{const{formatMessage:a}=le(),n=qe(),i=["rule-tree",s],{isEnabled:l}=Ye("RULE_ENGINE_ADMIN"),r=l("BTN_DELETE_NODE"),u=l("BTN_REORDER_NODES"),[d,c]=o.useState(null),[m,p]=o.useState(!1),[h,T]=o.useState(!1),[R,k]=o.useState(!0),[y,S]=o.useState(!1),N=o.useRef(null),[O,g]=o.useState(!1),[b,W]=o.useState(!1),[Y,K]=o.useState(new Map),[z,M]=o.useState(null),_=o.useRef(null);o.useEffect(()=>{if(!y)return;const x=A=>{N.current&&!N.current.contains(A.target)&&S(!1)};return document.addEventListener("mousedown",x),()=>document.removeEventListener("mousedown",x)},[y]);const G=o.useCallback(x=>{const A=new Map;for(const ee of x){const de=Ge(ee.fatherId,ee.isElse),ne=A.get(de)??[];ne.push(ee.fxrId),A.set(de,ne)}return A},[]),v=o.useCallback((x,A)=>{_.current={fxrId:x,branchKey:A}},[]),j=o.useCallback((x,A,ee)=>{x.preventDefault(),!(!_.current||_.current.branchKey!==ee)&&_.current.fxrId!==A&&M(A)},[]),w=o.useCallback((x,A)=>{const ee=_.current;if(!ee||ee.branchKey!==A||ee.fxrId===x){M(null);return}K(de=>{const ne=new Map(de),re=[...ne.get(A)??[]],pe=re.indexOf(ee.fxrId),ye=re.indexOf(x);return pe===-1||ye===-1?de:(re.splice(pe,1),re.splice(ye,0,ee.fxrId),ne.set(A,re),ne)}),_.current=null,M(null)},[]),J=o.useCallback(()=>{_.current=null,M(null)},[]),I=o.useCallback(async x=>{var de;const A=G(x),ee=[];for(const[ne,re]of Y){const pe=A.get(ne);if(!pe||!re.some((E,ie)=>pe[ie]!==E))continue;const xe=ne.split("-"),be=xe.pop()==="true",je=xe.join("-"),ce=je==="root"?null:Number(je);ee.push({key:ne,fatherId:ce,isElse:be,nodeOrder:re})}if(ee.length===0){g(!1),K(new Map);return}W(!0);try{const ne=[];for(const re of ee){const pe=await q.reorderBranchNodes(s,re.fatherId,re.isElse,re.nodeOrder);(de=pe==null?void 0:pe.warnings)!=null&&de.length&&ne.push(...pe.warnings)}ne.length&&Re.fire({icon:"warning",title:a({id:"message.warning"}),html:ne.map(re=>`<p>${re}</p>`).join(""),confirmButtonText:a({id:"message.accept"}),customClass:{confirmButton:"btn btn-primary"}})}catch{Re.fire({icon:"error",title:a({id:"message.error.save"}),confirmButtonText:a({id:"message.accept"}),customClass:{confirmButton:"btn btn-primary"}})}finally{n.invalidateQueries({queryKey:i}),K(new Map),g(!1),W(!1)}},[Y,G,s,n,i,a]),{data:C={nodes:[],parentFunctionId:0},isLoading:U,isError:Z}=me({queryKey:i,queryFn:()=>q.getRuleTree(s),staleTime:3e4,retry:1}),te=C.nodes,F=C.parentFunctionId,oe=Ce({mutationFn:({fxrId:x,functionId:A,position:ee})=>q.deleteNode(s,x,ee,A),onSuccess:()=>n.invalidateQueries({queryKey:i}),onError:()=>Re.fire({icon:"error",title:a({id:"message.error.save"}),confirmButtonText:a({id:"message.accept"}),customClass:{confirmButton:"btn btn-primary"}})}),B=x=>{Re.fire({title:a({id:"message.label.validationDeleteRegistry"}),text:x.functionName,icon:"warning",showCancelButton:!0,confirmButtonText:a({id:"message.label.delete"}),cancelButtonText:a({id:"message.cancel"}),customClass:{confirmButton:"btn btn-primary",cancelButton:"btn btn-primary"}}).then(A=>{A.isConfirmed&&oe.mutate({fxrId:x.fxrId,functionId:x.functionId,position:x.c
1ount})})},ve=x=>{c(x),p(!0)},se=()=>n.invalidateQueries({queryKey:i}),H=te.length>0?Math.max(...te.map(x=>x.count))+1:1,fe=ua(te);return U?e.jsxs("div",{"aria-busy":"true","aria-label":a({id:"message.loading"}),children:[e.jsxs("div",{className:`${Q.sectionRow} placeholder-glow mb-1`,children:[e.jsx("span",{className:"placeholder rounded",style:{width:32,height:18}}),e.jsx("span",{className:"placeholder rounded ms-2",style:{width:80,height:14}})]}),e.jsxs("div",{className:Q.nodeGroup,children:[e.jsxs("div",{className:`${Q.fnNode} placeholder-glow`,children:[e.jsx("span",{className:"placeholder rounded",style:{width:16,height:16}}),e.jsx("span",{className:"placeholder rounded ms-2",style:{width:"55%",height:14}})]}),e.jsxs("div",{className:`${Q.fnNode} placeholder-glow`,children:[e.jsx("span",{className:"placeholder rounded",style:{width:16,height:16}}),e.jsx("span",{className:"placeholder rounded ms-2",style:{width:"40%",height:14}})]})]}),e.jsxs("div",{className:`${Q.sectionRow} placeholder-glow mb-1 mt-2`,children:[e.jsx("span",{className:"placeholder rounded",style:{width:32,height:18}}),e.jsx("span",{className:"placeholder rounded ms-2",style:{width:60,height:14}})]}),e.jsx("div",{className:Q.nodeGroup,children:e.jsxs("div",{className:`${Q.fnNode} placeholder-glow`,children:[e.jsx("span",{className:"placeholder rounded",style:{width:16,height:16}}),e.jsx("span",{className:"placeholder rounded ms-2",style:{width:"65%",height:14}})]})}),e.jsxs("div",{className:`${Q.sectionRow}
1 placeholder-glow mb-1 mt-2`,children:[e.jsx("span",{className:"placeholder rounded",style:{width:32,height:18}}),e.jsx("span",{className:"placeholder rounded ms-2",style:{width:100,height:14}})]}),e.jsx("div",{className:Q.nodeGroup,children:e.jsxs("div",{className:`${Q.fnNode} placeholder-glow`,children:[e.jsx("span",{className:"placeholder rounded",style:{width:16,height:16}}),e.jsx("span",{className:"placeholder rounded ms-2",style:{width:"45%",height:14}})]})})]}):Z?e.jsxs("div",{className:"text-center py-10",children:[e.jsx("i",{className:"ki-outline ki-cross-circle fs-2x text-danger mb-3 d-block","aria-hidden":"true"}),e.jsx("p",{className:"fs-6 fw-semibold text-danger mb-1",children:a({id:"setup.ruleEngine.treeLoadError"})}),e.jsxs("button",{type:"button",className:"btn btn-sm btn-primary mt-2",onClick:se,children:[e.jsx("i",{className:"ki-outline ki-arrows-circle fs-7 me-1","aria-hidden":"true"}),a({id:"message.retry"})]})]}):e.jsxs(e.Fragment,{children:[te.length>0&&e.jsxs("div",{className:"d-flex align-items-center gap-3 mb-3 flex-wrap",children:[e.jsxs("div",{className:"d-flex gap-2",children:[e.jsxs("span",{className:"badge badge-light-primary",children:[te.filter(x=>x.functionType==="if").length," ",a({id:"message.tooltip.condi"})]}),e.jsxs("span",{className:"badge badge-light-success",children:[te.filter(x=>x.functionType==="then").length," ",a({id:"setup.ruleEngine.tree.conclusions"})]}),e.jsxs("span",{className:"badge badge-light-warning",children:[te.filter(x=>x.functionType==="else").length," ",a({id:"setup.ruleEngine.tree.alternatives"})]})]}),e.jsxs("div",{className:"position-relative ms-auto",ref:N,children:[e.jsxs("button",{type:"button",className:"btn btn-xs btn-light",style:{fontSize:11},onClick:()=>S(x=>!x),"aria-label":a({id:"setup.ruleEngine.keyboardShortcuts"}),"aria-expanded":y,children:[e.jsx("i",{className:"ki-outline ki-keyboard fs-8 me-1","aria-hidden":"true"}),a({id:"setup.ruleEngine.shortcutsBtn"})]}),y&&e.jsxs("div",{className:"card shadow-sm p-3 position-absolute end-0",style:{to
1p:"110%",zIndex:200,minWidth:260,whiteSpace:"nowrap"},role:"tooltip",children:[e.jsx("p",{className:"fw-bold fs-8 mb-2 text-dark",children:a({id:"setup.ruleEngine.shortcutsTitle"})}),e.jsxs("ul",{className:"list-unstyled mb-0 fs-8 text-gray-700",children:[e.jsxs("li",{className:"mb-1",children:[e.jsx("kbd",{children:"Tab"})," / ",e.jsx("kbd",{children:"Shift+Tab"})," ",e.jsx(Ze,{id:"message.setup.shortcut.navigateNodes"})]}),e.jsxs("li",{className:"mb-1",children:[e.jsx("kbd",{children:"Delete"})," / ",e.jsx("kbd",{children:"Backspace"})," ",e.jsx(Ze,{id:"message.setup.shortcut.deleteNode"})]}),e.jsxs("li",{className:"mb-1",children:[e.jsx("kbd",{children:"Enter"})," ",e.jsx(Ze,{id:"message.setup.shortcut.toggleNode"})]}),e.jsxs("li",{children:[e.jsx("kbd",{children:"Esc"})," ",e.jsx(Ze,{id:"message.setup.shortcut.closePanel"})]})]})]})]}),u&&e.jsxs("button",{type:"button",className:`btn btn-xs ${O?"btn-primary":"btn-light"}`,style:{fontSize:11},disabled:b,"data-element-code":"BTN_REORDER_NODES",onClick:()=>{if(!O){K(G(te)),g(!0);return}I(te)},children:[b?e.jsx("span",{className:"spinner-border spinner-border-sm me-1"}):e.jsx("i",{className:`ki-outline ${O?"ki-check":"ki-row-vertical"} fs-8 me-1`,"aria-hidden":"true"}),a(O?{id:"ruleEngine.tree.reorder.save"}:{id:"ruleEngine.tree.reorder.start"})]}),O&&e.jsxs("button",{type:"button",className:"btn btn-xs btn-light",style:{fontSize:11},disabled:b,onClick:()=>{g(!1),K(new Map),M(null)},children:[e.jsx("i",{className:"ki-outline ki-cross fs-8 me-1","aria-hidden":"true"}),a({id:"message.cancel"})]}),e.jsxs("button",{type:"button",className:"btn btn-xs btn-primary",style:{fontSize:11},onClick:()=>k(x=>!x),"aria-label":a(R?{id:"messages.tree.collapse"}:{id:"messages.tree.expand"}),children:[e.jsx("i",{className:`ki-outline ${R?"ki-minus-square":"ki-plus-square"} fs-8 me-1`,"aria-hidden":"true"}),a(R?{id:"messages.tree.collapse"}:{id:"messages.tree.expand"})]})]}),fe.length===0&&!h&&e.jsxs("div",{className:"text-center py-10 text-muted",children:[e.jsx("i",{className:"ki-outline ki-abstract-28 fs-2x text-primary mb-3 d-block","aria-hidden":"true"}),e.jsx("p",{className:"fs-6 fw-semibold mb-1",children:a({id:"setup.ruleEngine.emptyTreeTitle"})}),e.jsx("p",{className:"fs-7",children:a({id:"setup.ruleEngine.emptyTreeDesc"})})]}),e.jsx("div",{children:fe.length>0&&e.jsx(ze,{nodes:fe,ruleId:s,allFlat:te,defaultCollapsed:!R,onEdit:ve,onDelete:B,onRefresh:se,canDelete:r,parentFunctionId:F,reorderMode:O,branchOrders:Y,dragOverFxrId:z,onReorderDragStart:v,onReorderDragOver:j,onReorderDrop:w,onReorderDragEnd:J})},String(R)),fe.length===0&&e.jsx("div",{className:"mt-3",children:h?e.jsx($e,{ruleId:s,type:"condition",position:H,parentId:void 0,fatherCount:void 0,isElse:!1,onAdded:()=>{T(!1),se()},onCancel:()=>T(!1)}):e.jsxs("button",{type:"button",className:"btn btn-sm btn-primary",onClick:()=>T(!0),children:[e.jsx("i",{className:"ki-outline ki-plus fs-6 me-2","aria-hidden":"true"}),a({id:"setup.ruleEngine.addRootCondition"})]})}),e.jsx(Wt,{isOpen:m,ruleId:s,processId:t,node:d,onClose:()=>{p(!1),c(null)},onSaved:()=>n.invalidateQueries({queryKey:i})})]})},ga=({ruleId:s})=>{const{formatMessage:t}=le(),[a,n]=o.useState(""),[i,l]=o.useState([]),[r,u]=o.useState([]),[d,c]=o.useState(!1),m=o.useRef(null),p=async k=>{c(!0);try{const[y,S]=await Promise.all([q.searchConditions(s,k),q.searchConclusions(s,k)]);l(y),u(S)}finally{c(!1)}};o.useEffect(()=>{p("")},[s]);const h=k=>{const y=k.target.value;n(y),m.current&&clearTimeout(m.current),m.current=setTimeout(()=>p(y),350)},T=()=>{n(""),p("")},R=i.length+r.length;return e.jsxs("div",{className:"d-flex flex-column h-100",children:[e.jsxs("div",{className:"px-4 pt-4 pb-3 border-bottom flex-shrink-0",children:[e.jsxs("h6",{className:"fw-bold mb-3 text-gray-700 d-flex align-items-center gap-2",children:[e.jsx("i",{className:"ki-outline ki-category fs-5 text-primary","aria-hidden":"true"}),t({id:"setup.ruleEngine.paletteTitle"}),!d&&R>0&&e.jsx("span",{className:"badge badge-light-primary ms-auto",style:{fontSize:11},children:R})]}),e.jsxs("div",{className:"input-group input-group-sm",children:[e.jsx("span",{className:"input-group-text bg-transparent border-end-0",style:{borderColor:"var(--bs-border-color)"},children:d?e.jsx("span",{className:"spinner-border spinner-border-sm text-primary","aria-hidden":"true"}):e.jsx("i",{className:"ki-outline ki-magnifier fs-6 text-muted","aria-hidden":"true"})}),e.jsx("input",{type:"text",className:"form-control form-control-sm border-start-0 ps-0",style:{fontSize:16,borderColor:"var(--bs-border-color)"},placeholder:t({id:"messages.label.inboxSearchMessage"}),value:a,onChange:h,"aria-label":t({id:"setup.ruleEngine.palettePlaceholder"})}),a&&e.jsx("button",{type:"button",className:"btn btn-sm btn-icon bg-transparent",style:{border:"1px solid #d9d9d9",borderLeft:"none"},onClick:T,"aria-label":t({id:"message.cancel"}),children:e.jsx("i",{className:"ki-outline ki-cross fs-7 text-muted","aria-hidden":"true"})})]})]}),e.jsxs("div",{className:"flex-grow-1 overflow-auto px-3 py-3",children:[i.length>0&&e.jsxs("div",{className:"mb-4",children:[e.jsxs("div",{className:"d-flex align-items-center gap-2 mb-2 px-1",children:[e.jsx("span",{className:"badge badge-primary",style:{fontSize:10},children:t({id:"message.label.conditions"})}),e.jsx("span",{className:"fw-semibold text-muted fs-8 text-uppercase",style:{letterSpacing:"0.07em"},children:t({id:"setup.ruleEngine.paletteConditions"})}),e.jsx("span",{className:"badge badge-light-primary ms-auto",style:{fontSize:10},children:i.length})]}),e.jsx("div",{className:"d-flex flex-column gap-1",children:i.map(k=>e.jsxs("div",{className:"d-flex align-items-center px-3 py-2 rounded border border-primary border-opacity-10 bg-light-primary",title:k.name,style:{minHeight:44},children:[e.jsx("i",{className:"ki-outline ki-technology-2 fs-8 text-primary me-2 flex-shrink-0","aria-hidden":"true"}),e.jsx("span",{className:"fs-7 text-gray-700 text-truncate",children:k.name})]},k.functionId))})]}),r.length>0&&e.jsxs("div",{children:[e.jsxs("div",{className:"d-flex align-items-center gap-2 mb-2 px-1",children:[e.jsx("span",{className:"badge badge-success",style:{fontSize:10},children:t({id:"message.label.conclutions"})}),e.jsx("span",{className:"fw-semibold text-muted fs-8 text-uppercase",style:{letterSpacing:"0.07em"},children:t({id:"setup.ruleEngine.paletteConclusions"})}),e.jsx("span",{className:"badge badge-light-success ms-auto",style:{fontSize:10},children:r.length})]}),e.jsx("div",{className:"d-flex flex-column gap-1",children:r.map(k=>e.jsxs("div",{className:"d-flex align-items-center px-3 py-2 rounded border border-success border-opacity-10 bg-light-success",title:k.name,style:{minHeight:44},children:[e.jsx("i",{className:"ki-outline ki-check-circle fs-8 text-success me-2 flex-shrink-0","aria-hidden":"true"}),e.jsx("span",{className:"fs-7 text-gray-700 text-truncate",children:k.name})]},k.functionId))})]}),!d&&i.length===0&&r.length===0&&e.jsxs("div",{className:"text-center py-8",children:[e.jsx("i",{className:"ki-outline ki-abstract-28 fs-2x text-muted mb-3 d-block","aria-hidden":"true"}),e.jsx("p",{className:"fs-7 text-gray-700 mb-0",children:t(a?{id:"message.noDataFound"}:{id:"setup.ruleEngine.paletteEmpty"})})]})]})]})},xa=({ruleId:s,processId:t,onBack:a,onNext:n})=>{const{formatMessage:i}=le(),l=qe(),[r,u]=o.useState(!1),d=()=>
1{l.invalidateQueries({queryKey:["rule-tree",s]})},c=r?"d-flex":"d-none d-lg-flex";return e.jsxs("div",{children:[e.jsxs("div",{className:"d-flex align-items-center justify-content-between mb-4 flex-wrap gap-3",children:[e.jsx("div",{children:e.jsx("h5",{className:"fw-bold mb-1",children:i({id:"messages.label.netWorkVisualization"})})}),e.jsxs("div",{className:"d-flex gap-2 align-items-center flex-wrap",children:[e.jsxs("button",{type:"button",className:"btn btn-sm btn-light d-lg-none",onClick:()=>u(m=>!m),"aria-label":i({id:"setup.ruleEngine.togglePalette"}),"aria-expanded":r,children:[e.jsx("i",{className:"ki-outline ki-category fs-5 me-2","aria-hidden":"true"}),i(r?{id:"setup.ruleEngine.hidePalette"}:{id:"setup.ruleEngine.paletteTitle"})]}),e.jsxs("button",{type:"button",className:"btn btn-sm btn-primary d-flex align-items-center",onClick:d,"aria-label":i({id:"message.label.refresh"}),children:[e.jsx("i",{className:"ki-outline ki-arrows-circle fs-5 me-2","aria-hidden":"true"}),i({id:"message.label.refresh"})]})]})]}),e.jsxs("div",{className:"row g-0 rounded border overflow-hidden",style:{minHeight:"clamp(300px, 60vh, 520px)"},children:[e.jsx("div",{className:`col-12 col-lg-3 border-end bg-white flex-column ${c}`,style:{maxHeight:"calc(100vh - 300px)",minHeight:"clamp(300px, 60vh, 520px)",overflowY:"auto"},children:e.jsx(ga,{ruleId:s})}),e.jsx("div",{className:"col-12 col-lg-9 p-4",style:{maxHeight:"calc(100vh - 300px)",minHeight:"clamp(300px, 60vh, 520px)",overflowY:"auto",background:"#f9f9f9"},children:e.jsx(fa,{ruleId:s,processId:t})})]}),e.jsxs("div",{className:"d-flex justify-content-between align-items-center border-top pt-4 mt-4 flex-wrap gap-3",children:[e.jsxs("button",{type:"button",className:"btn btn-sm btn-primary",onClick:a,"aria-label":i({id:"message.pagination.prev"}),children:[e.jsx("i",{className:"ki-outline ki-arrow-left fs-5 me-1","aria-hidden":"true"}),i({id:"message.pagination.prev"})]}),e.jsxs("button",{type:"button",className:"btn btn-sm btn-primary",onClick:n,"aria-label":i({id:"message.next1"}),children:[i({id:"message.next1"}),e.jsx("i",{className:"ki-outline ki-arrow-right fs-5 ms-1","aria-hidden":"true"})]})]})]})};function ba(s){try{let t=0,a=0;const n=[];let i="";for(const l of s)l==="("?(a++,i+=l):l===")"?(a=Math.max(0,a-1),i+=l):l==="{"?a===0?(i+=l,n.push("  ".repeat(t)+i.trim()),t++,i=""):i+=l:l==="}"?a===0?(i.trim()&&(n.push("  ".repeat(t)+i.trim()),i=""),t=Math.max(0,t-1),n.push("  ".repeat(t)+l)):i+=l:l===";"&&a===0?(i+=l,n.push("  ".repeat(t)+i.trim()),i=""):i+=l;return i.trim()&&n.push(i.trim()),n.filter(l=>l.trim()).join(`
2`)}catch{return s}}function ms(s){try{return JSON.stringify(JSON.parse(s),null,2)}catch{return s}}const ya=({ruleId:s,onBack:t,onNext:a,isLastStep:n=!1})=>{var v;const{formatMessage:i}=le(),l=Ke(),r=qe(),u=["rule-json",s],[d,c]=o.useState(""),[m,p]=o.useState("json"),[h,T]=o.useState(""),[R,k]=o.useState(""),[y,S]=o.useState(null),{data:N,isLoading:O,isFetching:g}=me({queryKey:u,queryFn:()=>q.getRuleJson(s),staleTime:3e4,refetchOnWindowFocus:!1});o.useEffect(()=>{if(N!=null&&N.ruleJson){const j=ms(N.ruleJson);T(N.ruleJson),c(j),p("json")}},[N]);function b(){m==="js"&&k(d),c(ms(h||d)),p("json")}function W(){const j=d;m==="json"&&T(j);let w=R;if(!w)try{const J=JSON.parse(j);w=(J==null?void 0:J.ruleSet)??""}catch{w=""}c(ba(w)),p("js")}const Y=Ce({mutationFn:()=>q.compileRule(s),onSuccess:j=>{if(S(j),j!=null&&j.ruleJson){const w=ms(j.ruleJson);T(j.ruleJson),k(""),c(w),p("json"),r.invalidateQueries({queryKey:u})}}});async function K(){(await Re.fire({icon:"warning",title:i({id:"message.compensations.breakaway.looseTempCh
2anges"}),text:i({id:"setup.ruleEngine.resetWarning"}),showCancelButton:!0,confirmButtonText:i({id:"message.control.accept"}),cancelButtonText:i({id:"message.control.cancel"}),customClass:{confirmButton:"btn btn-primary",cancelButton:"btn btn-light"}})).isConfirmed&&Y.mutate()}const z=Me.useRef(!1);o.useEffect(()=>{var j;z.current||N===void 0||g||(z.current=!0,(j=N.ruleJson)!=null&&j.trim()||Y.mutate())},[N,g]);const M=Ce({mutationFn:j=>q.saveRuleJson(s,j),onSuccess:()=>{r.invalidateQueries({queryKey:u}),ke({icon:"success",title:i({id:"message.generalSuccess.successfullySaved"}),confirmText:i({id:"message.control.accept"})})},onError:j=>{var I,C,U;const w=j==null?void 0:j.response,J=((C=(I=w==null?void 0:w.data)==null?void 0:I.data)==null?void 0:C.error)??((U=w==null?void 0:w.data)==null?void 0:U.error);ke({icon:"error",title:i({id:"message.generalError.unexpectedError"}),...J?{text:J}:{},confirmText:i({id:"message.control.accept"})})}});async function _(){let j;if(m==="js"){const w=h||(N==null?void 0:N.ruleJson)||"";if(!w){ke({icon:"error",title:i({id:"message.validation.invalidFormat"}),text:i({id:"message.error.save"}),confirmText:i({id:"message.control.accept"})});return}try{const J=JSON.parse(w);J.ruleSet=d,j=JSON.stringify(J)}catch{ke({icon:"error",title:i({id:"message.validation.invalidFormat"}),text:i({id:"message.error.save"}),confirmText:i({id:"message.control.accept"})});return}}else try{j=JSON.stringify(JSON.parse(d))}catch{ke({icon:"error",title:i({id:"message.validation.invalidFormat"}),text:i({id:"message.error.save"}),confirmText:i({id:"message.control.accept"})});return}j.trim()&&await M.mutateAsync(j)}const G=O||g||Y.isPending||M.isPending;return e.jsxs("div",{children:[e.jsxs("div",{className:"d-flex align-items-center justify-content-between mb-5 flex-wrap gap-3",children:[e.jsx("div",{children:e.jsx("h5",{className:"fw-bold mb-1",children:i({id:"import.field.ruleJson"})})}),e.jsxs("div",{className:"d-flex gap-2 flex-wrap",children:[e.jsxs("button",{type:"button",className:"btn btn-sm btn-primary d-flex align-items-center",onClick:K,disabled:G,children:[Y.isPending?e.jsx("span",{className:"spinner-border spinner-border-sm me-2","aria-hidden":"true"}):e.jsx("i",{className:"ki-outline ki-arrows-circle fs-5 me-2","aria-hidden":"true"}),i({id:"messages.label.resetRule"})]}),e.jsxs("div",{className:"dropdown",children:[e.jsx("button",{type:"button",className:"btn btn-sm btn-primary dropdown-toggle d-flex align-items-center","data-bs-toggle":"dropdown","aria-expanded":"false",children:i({id:"message.label.format"})}),e.jsxs("ul",{className:"dropdown-menu",children:[e.jsx("li",{children:e.jsx("button",{className:`dropdown-item${m==="json"?" active":""}`,onClick:b,type:"button",children:"JSON"})}),e.jsx("li",{children:e.jsx("button",{className:`dropdown-item${m==="js"?" active":""}`,onClick:W,type:"button",children:"JS"})})]})]})]})]}),y&&!y.success&&e.jsxs("div",{className:"alert alert-danger py-3 mb-4 fs-7",role:"alert",children:[e.jsxs("div",{className:"d-flex align-items-center mb-2",children:[e.jsx("i",{className:"ki-outline ki-cross-circle fs-4 me-2","aria-hidden":"true"}),e.jsx("span",{className:"fw-bold",children:i({id:"setup.ruleEngine.compileErrors"})})]}),e.jsx("ul",{className:"mb-0 ps-4",children:y.errors.map((j,w)=>e.jsx("li",{children:j},w))})]}),(y==null?void 0:y.success)&&(((v=y.warnings)==null?void 0:v.length)??0)>0&&e.jsxs("div",{className:"alert alert-warning py-3 mb-4 fs-7",role:"alert",children:[e.jsxs("div",{className:"d-flex align-items-center mb-2",children:[e.jsx("i",{className:"ki-outline ki-information-5 fs-4 me-2","aria-hidden":"true"}),e.jsx("span",{className:"fw-bold",children:i({id:"setup.ruleEngine.compileWarnings"})})]}),e.jsx("ul",{className:"mb-0 ps-4",children:y.warnings.map((j,w)=>e.jsx("li",{children:j},w))})]}),e.jsxs("div",{className:"position-relative",children:[G&&e.jsx("div",{className:"position-absolute top-0 start-0 w-100 h-100 d-flex align-items-center justify-content-center bg-white bg-opacity-75",children:e.jsx("div",{className:"spinner-border text-primary",role:"status",children:e.jsx("span",{className:"visually-hidden",children:i({id:"message.loading"})})})}),N!==void 0||O?e.jsx("textarea",{value:d,onChange:j=>c(j.target.value),className:"form-control form-control-solid fs-8 text-gray-700 font-monospace",style:{minHeight:360,whiteSpace:"pre",resize:l?"none":"vertical"},spellCheck:!1,"aria-label":i({id:"setup.ruleEngine.jsonContent"})}):e.jsxs("div",{className:"d-flex flex-column align-items-center justify-content-center py-10 text-center text-muted",children:[e.jsx("i",{className:"ki-outline ki-code fs-3x mb-4","aria-hidden":"true"}),e.jsx("p",{className:"fs-6",children:i({id:"setup.ruleEngine.jsonEmpty"})})]})]}),e.jsxs("div",{className:"d-flex justify-content-between align-items-center border-top pt-4 mt-4 flex-wrap gap-3",children:[e.jsxs("button",{type:"button",className:"btn btn-sm btn-primary",onClick:t,children:[e.jsx("i",{className:"ki-outline ki-arrow-left fs-5 me-1","aria-hidden":"true"}),i({id:"message.pagination.prev"})]}),e.jsxs("button",{type:"button",className:"btn btn-sm btn-primary",disabled:M.isPending,onClick:async()=>{try{await _()}catch{return}a()},children:[M.isPending?e.jsx("span",{className:"spinner-border spinner-border-sm me-2","aria-hidden":"true"}):null,i({id:n?"message.finish":"message.label.continue"}),n?e.jsx("i",{className:"ki-outline ki-check fs-5 ms-1","aria-hidden":"true"}):e.jsx("i",{className:"ki-outline ki-arrow-right fs-5 ms-1","aria-hidden":"true"})]})]})]})},Na={danger:"text-danger bg-light-danger",warning:"text-warning bg-light-warning",muted:"text-gray-700 bg-light"},ja={ENDPOINT_PARAMS_IGNORED:"danger",CREDENTIAL_LEAK_RISK:"danger",PRIVATE_DESTINATION:"danger",UNRESOLVED_HOST:"warning",URL_HAS_RUNTIME_TOKENS:"warning",PARTIALLY_RESOLVED:"warning",LEGACY_MODE:"muted",ACTUATOR_NOT_FOUND:"muted",NO_BODY:"muted"},Bs={danger:0,warning:1,muted:2};function Ns(s){const t=ja[s]??"muted";return{severity:t,className:Na[t]}}function va(s){return`setup.ruleEngine.testRun.note.${s}`}function Ea(s){return[...s].sort((t,a)=>Bs[Ns(t).severity]-Bs[Ns(a).severity])}const wa={GET:"badge-light-success",POST:"badge-light-primary",PUT:"badge-light-warning",PATCH:"badge-light-warning",DELET
2E:"badge-light-danger"};function ka(s){const t=[];if(!s)return t;const a=/\{\{[^}]*\}\}/g;let n=0,i;for(;(i=a.exec(s))!==null;)i.index>n&&t.push([s.slice(n,i.index),!1]),t.push([i[0],!0]),n=i.index+i[0].length;return n<s.length&&t.push([s.slice(n),!1]),t}const ss=({text:s})=>e.jsx(e.Fragment,{children:ka(s).map(([t,a],n)=>a?e.jsx("span",{className:"bg-light-warning text-warning rounded px-1",children:t},n):e.jsx(Me.Fragment,{children:t},n))});function Sa(s,t){if(!t)return null;try{const a=s({id:t});return a&&a!==t?a:t.includes(".")?null:t}catch{return null}}const Ca=({preview:s})=>{var i;const{formatMessage:t}=le(),a=wa[((i=s.method)==null?void 0:i.toUpperCase())??""]??"badge-light",n=Sa(t,s.displayName);return e.jsxs("div",{className:"border rounded overflow-hidden bg-white",children:[n&&e.jsxs("div",{className:"px-4 pt-4 d-flex align-items-baseline gap-2 flex-wrap",children:[e.jsx("span",{className:"fw-semibold fs-7",children:n}),s.actuatorCode&&e.jsx("span",{className:"font-monospace fs-8 text-gray-500",children:s.actuatorCode})]}),s.resolvedUrl?e.jsxs("div",{className:"p-4 border-bottom",children:[e.jsxs("div",{className:"d-flex align-items-start gap-3",children:[e.jsx("span",{className:`badge ${a} fw-bold flex-shrink-0`,children:s.method}),e.jsx("div",{className:"font-monospace fs-8 text-gray-800 text-break",children:e.jsx(ss,{text:s.resolvedUrl})})]}),!s.hostResolved&&e.jsxs("div",{className:"d-flex align-items-start gap-2 mt-3",role:"status",children:[e.jsx("i",{className:"ki-outline ki-information-5 fs-5 text-warning mt-1","aria-hidden":"true"}),e.jsx("span",{className:"fs-8 text-gray-700",children:t({id:"setup.ruleEngine.testRun.unresolvedHostExplain"})})]})]}):e.jsxs("div",{className:"p-4 border-bottom d-flex align-items-start gap-2",children:[e.jsx("i",{className:"ki-outline ki-information-5 fs-5 text-gray-500 mt-1","aria-hidden":"true"}),e.jsx("span",{className:"fs-8 text-gray-700",children:t({id:"setup.ruleEngine.testRun.noHttpCall"})})]}),s.headers.length>0&&e.jsx("div",{className:"p-4 border-bottom d-flex flex-column gap-2",children:s.headers.map(l=>e.jsxs("div",{className:"d-flex align-items-center gap-3",children:[e.jsx("span",{className:"font-monospace fs-8 text-gray-600 flex-shrink-0",style:{width:110},children:l.name}),e.jsx("span",{className:"font-monospace fs-8 text-gray-800 text-break",children:e.jsx(ss,{text:l.value})}),l.secret&&e.jsx("i",{className:"ki-outline ki-lock-2 fs-7 text-gray-500 flex-shrink-0","aria-label":t({id:"setup.ruleEngine.testRun.secretHeader"}),title:t({id:"setup.ruleEngine.testRun.secretHeader"})})]},l.name))}),s.body&&e.jsxs("div",{className:"p-4 border-bottom",children:[e.jsx("div",{className:"fs-8 text-gray-500 mb-2",children:t({id:"setup.ruleEngine.testRun.bodyLabel"})}),e.jsx("pre",{className:"bg-light border rounded p-3 fs-8 text-gray-800 mb-0",style:{maxHeight:220,overflow:"auto",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:e.jsx(ss,{text:s.body})})]}),s.query&&e.jsxs("div",{className:"p-4 border-bottom",children:[e.jsx("div",{className:"fs-8 text-gray-500 mb-2",children:t({id:"setup.ruleEngine.testRun.queryLabel"})}),e.jsx("div",{className:"font-monospace fs-8 text-gray-800 text-break",children:e.jsx(ss,{text:s.query})})]}),s.notes.length>0&&e.jsx("div",{className:"p-4 d-flex flex-wrap gap-2",children:Ea(s.notes).map(l=>e.jsx("span",{className:`badge fw-semibold ${Ns(l).className}`,children:t({id:va(l)})},l))})]})},Ta=3,Ra=({trace:s,index:t,sinTraza:a=!1})=>{const{formatMessage:n}=le(),i=a||s.status==="UNKNOWN",l=i?e.jsx("span",{className:"d-flex align-items-center justify-content-center rounded-circle flex-shrink-0 border border-2 border-gray-300 border-dashed text-gray-500 fs-9 fw-semibold",style:{width:22,height:22},children:s.order??t+1}):s.status==="PASSED"?e.jsx("span",{className:"d-flex align-items-center justify-content-center rounded-circle bg-light-success flex-shrink-0",style:{width:22,height:22},children:e.jsx("i",{className:"ki-outline ki-check fs-8 text-success","aria-hidden":"true"})}):s.status==="FAILED"?e.jsx("span",{className:"d-flex align-items-center justify-content-center rounded-circle bg-light-danger flex-shrink-0",style:{width:22,height:22},children:e.jsx("i",{className:"ki-outline ki-cross fs-8 text-danger","aria-hidden":"true"})}):e.jsx("span",{className:"d-flex align-items-center justify-content-center rounded-circle flex-shrink-0 border border-2 border-gray-300 border-dashed text-gray-500 fs-9 fw-semibold",style:{width:22,height:22},children:s.order??t+1}),r=n({id:`setup.ruleEngine.testRun.condition.${s.status}`});return e.jsxs("div",{className:"d-flex align-items-center gap-3 px-4 py-3 border-bottom",children:[l,e.jsx("span",{className:`flex-grow-1 fs-7 text-truncate ${s.status==="NOT_EVALUATED"?"text-gray-600":"text-gray-800"}`,title:s.name,children:s.name}),!i&&e.jsx("span",{className:"badge badge-light fs-8 flex-shrink-0",children:r})]})},Aa=({conclusion:s})=>{const{formatMessage:t}=le();return e.jsxs("div",{className:`d-flex align-items-center gap-3 px-4 py-3 border-bottom ${s.apiUrlUnresolved?"bg-light-danger":""}`,children:[e.jsx("span",{className:"badge badge-light fs-8 fw-bold flex-shrink-0",children:s.branch}),e.jsx("span",{className:"flex-grow-1 fs-7 text-gray-700 text-truncate",title:s.functionName,children:s.functionName}),s.apiUrlUnresolved&&e.jsx("span",{className:"fs-8 fw-semibold text-danger flex-shrink-0",children:t({id:"setup.ruleEngine.testRun.apiUrlUnresolved"})})]})},Ia=({result:s})=>{const{formatMessage:t}=le(),[a,n]=o.useState(!1),i=s.success===!1&&!!s.errorCode,l=s.omittedConclusions??[],r=a?l:l.slice(0,Ta),u=l.length-r.length;return e.jsxs("div",{className:"d-flex flex-column gap-5",children:[s.noTrace&&e.jsxs("div",{className:"alert alert-warning d-flex align-items-start gap-3 py-3 mb-0",role:"status",children:[e.jsx("i",{className:"ki-outline ki-information-5 fs-4 text-warning mt-1","aria-hidden":"true"}),e.jsxs("div",{children:[e.jsx("div",{className:"fw-semibold fs-7 mb-1",children:t({id:"setup.ruleEngine.testRun.noTraceTitle"})}),e.jsx("div",{className:"fs-8 text-gray-700",children:t({id:"setup.ruleEngine.testRun.noTraceExplain"})})]})]}),s.aborted&&e.jsxs("div",{className:"alert alert-warning d-flex align-items-start gap-3 py-3 mb-0",role:"status",children:[e.jsx("i",{className:"ki-outline ki-information-5 fs-4 text-warning mt-1","aria-hidden":"true"}),e.jsxs("div",{children:[e.jsx("div",{className:"fw-semibold fs-7 mb-1",children:t({id:"setup.ruleEngine.testRun.abortedTitle"})}),e.jsx("div",{className:"fs-8 text-gray-700",children:t({id:"setup.ruleEngine.testRun.abortedHint"})})]})]}),!i&&e.jsxs("div",{children:[e.jsxs("div",{className:"d-flex align-items-baseline justify-content-between mb-3",children:[e.jsx("span",{className:"fw-semibold fs-7",children:t({id:"setup.ruleEngine.testRun.conditionsTitle"})}),e.jsx("span",{className:"fs-8 text-gray-500",children:t({id:"setup.ruleEngine.testRun.conditionsCount"},{count:s.conditions.length})})]}),s.conditions.length===0?e.jsx("div",{className:"border rounded bg-white px-4 py-3 fs-8 text-gray-600",children:t({id:"setup.ruleEngine.testRun.noConditions"})}):e.jsx("div",{className:"border rounded overflow-hidden bg-white",children:s.conditions.map((d,c
2)=>e.jsx(Ra,{trace:d,index:c,sinTraza:s.noTrace},`${d.name}-${d.order??c}`))})]}),l.length>0&&e.jsxs("div",{children:[e.jsxs("div",{className:"d-flex align-items-baseline justify-content-between mb-3",children:[e.jsx("span",{className:"fw-semibold fs-7",children:t({id:"setup.ruleEngine.testRun.omittedTitle"})}),e.jsx("span",{className:"fs-8 text-gray-500",children:l.length})]}),e.jsxs("div",{className:"border rounded overflow-hidden bg-white",children:[r.map((d,c)=>e.jsx(Aa,{conclusion:d},`${d.functionId}-${d.branch}-${c}`)),u>0&&e.jsx("button",{type:"button",className:"btn btn-link btn-sm w-100 py-3 fs-8 text-decoration-none",onClick:()=>n(!0),children:t({id:"setup.ruleEngine.testRun.showRemaining"},{count:u})})]})]})]})},Pa=350;function Fs(s,t,a){if(!t)return a;try{const n=s({id:t});return n&&n!==t?n:a}catch{return a}}const $a=({inputId:s,value:t,onChange:a})=>{const{formatMessage:n}=le(),[i,l]=o.useState(""),[r,u]=o.useState([]),[d,c]=o.useState(!1);return o.useEffect(()=>{const m=i.trim();if(m.length<3){u([]);return}let p=!0;const h=window.setTimeout(()=>{c(!0),q.searchPersons(m).then(T=>{p&&u(T)}).catch(()=>{p&&u([])}).finally(()=>{p&&c(!1)})},Pa);return()=>{p=!1,window.clearTimeout(h)}},[i]),t?e.jsxs("div",{className:"d-flex align-items-center gap-2",children:[e.jsx("span",{className:"badge badge-light-primary fs-8",children:t}),e.jsx("button",{type:"button",className:"btn btn-link btn-sm p-0 fs-8 text-decoration-none",onClick:()=>{a(""),l("")},children:n({id:"setup.ruleEngine.testRun.changeSelection"})})]}):e.jsxs("div",{children:[e.jsx("input",{id:s,type:"text",className:"form-control form-control-sm",value:i,onChange:m=>l(m.target.value),placeholder:n({id:"setup.ruleEngine.testRun.personSearchPlaceholder"}),autoComplete:"off"}),d&&e.jsxs("div",{className:"form-text fs-8",children:[e.jsx("span",{className:"spinner-border spinner-border-sm me-2","aria-hidden":"true"}),n({id:"message.wait"})]}),r.length>0&&e.jsx("div",{className:"border rounded mt-1 bg-white",style:{maxHeight:180,overflowY:"auto"},children:r.map(m=>e.jsxs("button",{type:"button",className:"btn btn-link btn-sm w-100 text-start px-3 py-2 fs-8 text-decoration-none border-bottom",onClick:()=>{a(m.id),u([])},children:[e.jsx("span",{className:"text-gray-800",children:m.name}),e.jsx("span",{className:"text-gray-500 ms-2",children:m.documentId})]},m.id))})]})},Oa=({fields:s,values:t,onChange:a,keyOf:n})=>{const{formatMessage:i}=le(),l=o.useMemo(()=>{const r=new Map;for(const u of s){const d=r.get(u.dataSet)??[];d.push(u),r.set(u.dataSet,d)}return[...r.entries()]},[s]);return s.length===0?e.jsx("div",{className:"fs-8 text-gray-600",children:i({id:"setup.ruleEngine.testRun.noParams"})}):e.jsx("div",{className:"d-flex flex-column gap-4",children:l.map(([r,u])=>e.jsxs("div",{children:[e.jsx("div",{className:"font-monospace fs-8 text-gray-500 mb-2",children:r}),e.jsx("div",{className:"row g-3",children:u.map(d=>{var p;const c=n(d),m=`s4-param-${c.replace(/[^\w-]/g,"-")}`;return e.jsxs("div",{className:"col-12 col-md-6",children:[e.jsx("label",{className:"form-label fw-semibold fs-8",htmlFor:m,children:Fs(i,d.label,d.field)}),((p=d.type)==null?void 0:p.toUpperCase())==="PERSONS"?e.jsx($a,{inputId:m,value:t[c]??"",onChange:h=>a(c,h)}):e.jsx("input",{id:m,type:"text",className:"form-control form-control-sm",value:t[c]??"",onChange:h=>a(c,h.target.value),autoComplete:"off"}),d.info&&e.jsx("div",{className:"form-text fs-8",children:Fs(i,d.info,"")}),!d.declared&&e.jsx("div",{className:"form-text fs-8 text-warning",children:i({id:"setup.ruleEngine.testRun.undeclaredField"})})]},c)})})]},r))})},_a="RULE_ENGINE_ADMIN",Ma="BTN_TEST_RUN",Ba=s=>s.functionType==="then"||s.functionType==="else",Fa=400,La=s=>`${s.dataSet}.${s.field}`,Ls=s=>s.entityRef,qa=({ruleId:s,onBack:t,onClose:a})=>{const{formatMessage:n}=le(),[i,l]=o.useState(null),[r,u]=o.useState("DYNAMIC"),[d,c]=o.useState({}),[m,p]=o.useState(""),[h,T]=o.useState(""),[R,k]=o.useState(null),[y,S]=o.useState(null),{isEnabled:N}=Ye(_a,void 0,"VISIBLE"),O=N(Ma);o.useEffect(()=>{const F=window.setTimeout(()=>T(m.trim()),Fa);return()=>window.clearTimeout(F)},[m]);const{data:g}=me({queryKey:["rule-engine-tree-for-testrun",s],queryFn:()=>q.getRuleTree(s),staleTime:3e4}
2),b=o.useMemo(()=>((g==null?void 0:g.nodes)??[]).filter(Ba),[g]),W=o.useMemo(()=>((g==null?void 0:g.nodes)??[]).filter(F=>F.functionType==="if").length,[g]),Y=o.useMemo(()=>b.map(F=>({value:F.fxrId,label:`${F.functionType.toUpperCase()} · ${F.functionName}`})),[b]);o.useEffect(()=>{i===null&&b.length>0&&l(b[0].fxrId)},[b,i]);const{data:K,isFetching:z,isError:M}=me({queryKey:["rule-engine-conclusion-preview",s,i,h],queryFn:()=>q.previewConclusion(s,i,h||void 0),enabled:i!==null,staleTime:3e4}),{data:_=[],isFetching:G}=me({queryKey:["rule-engine-testrun-params",s,r],queryFn:()=>q.getTestRunParams(s,r),staleTime:3e4}),v=o.useMemo(()=>_.find(Ls)??null,[_]),j=o.useMemo(()=>_.filter(F=>!(r==="DYNAMIC"&&Ls(F))),[_,r]);o.useEffect(()=>{c({}),p("")},[r]);const{data:w,isFetching:J}=me({queryKey:["rule-engine-testrun-entity",s,h],queryFn:()=>q.resolveTestRunEntity(s,h),enabled:h.length>0,staleTime:3e4}),I=h.length>0&&(w==null?void 0:w.resolved)===!0,C=h.length>0&&!J&&(w==null?void 0:w.resolved)===!1,U=Ce({mutationFn:()=>q.testRun(s,{mode:r,orderRef:r==="DYNAMIC"&&v?h:void 0,params:Object.fromEntries(Object.entries(d).map(([F,oe])=>[r==="DYNAMIC"?F.split(".").pop()??F:F,oe]))}),onSuccess:F=>{S(null),k(F)},onError:F=>{var oe,B;k(null),S(((B=(oe=F==null?void 0:F.response)==null?void 0:oe.data)==null?void 0:B.message)??n({id:"setup.ruleEngine.testRun.runFailed"}))}}),Z=r==="MANUAL"||!v||I,te=O&&Z&&!U.isPending;return R!==null?e.jsxs("div",{children:[e.jsxs("div",{className:"mb-5",children:[e.jsx("h5",{className:"fw-bold mb-1",children:n({id:"setup.ruleEngine.testRun.resultTitle"})}),e.jsxs("div",{className:"fs-8 text-gray-600",children:[R.ruleName??`#${R.ruleId}`,w!=null&&w.label?` · ${w.label}`:""]})]}),!R.success&&e.jsx("div",{className:"alert alert-danger py-3 fs-7",role:"alert",children:R.message}),e.jsx(Ia,{result:R}),e.jsxs("div",{className:"d-flex justify-content-between align-items-center border-top pt-4 mt-5 flex-wrap gap-3",children:[e.jsxs("button",{type:"button",className:"btn btn-sm btn-light",onClick:()=>k(null),children:[e.jsx("i",{className:"ki-outline ki-arrows-circle fs-5 me-2","aria-hidden":"true"}),n({id:"setup.ruleEngine.testRun.runAgain"})]}),e.jsxs("button",{type:"button",className:"btn btn-sm btn-success fw-bold",onClick:a,children:[e.jsx("i",{className:"ki-outline ki-check-circle fs-5 me-2","aria-hidden":"true"}),n({id:"message.finish"})]})]})]}):e.jsxs("div",{children:[e.jsxs("div",{className:"mb-5",children:[e.jsx("h5",{className:"fw-bold mb-1",children:n({id:"setup.ruleEngine.testRun.title"})}),e.jsx("div",{className:"fs-8 text-gray-600",children:n({id:"setup.ruleEngine.testRun.subtitle"})})]}),e.jsxs("div",{className:"mb-6",children:[e.jsxs("div",{className:"d-flex align-items-baseline justify-content-between mb-3",children:[e.jsx("span",{className:"fw-semibold fs-7",children:n({id:"setup.ruleEngine.testRun.whatWillBeCalled"})}),e.jsx("span",{className:"fs-8 text-gray-500",children:n({id:"setup.ruleEngine.testRun.nothingIsSent"})})]}),b.length===0?e.jsx("div",{className:"border rounded bg-white px-4 py-3 fs-8 text-gray-600",children:n({id:"setup.ruleEngine.testRun.noConclusions"})}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-3",children:[e.jsx("label",{className:"form-label fw-semibold fs-8",htmlFor:"s4-conclusion",children:n({id:"setup.ruleEngine.testRun.conclusionSelector"},{count:b.length})}),e.jsx("div",{className:"react-select-sm react-select-styled",children:e.jsx(Ae,{inputId:"s4-conclusion",classNamePrefix:"react-select",options:Y,value:Y.find(F=>F.value===i)??null,onChange:F=>l(F?F.value:null),isSearchable:!0,isClearable:!1,placeholder:n({id:"message.select"}),"aria-label":n({id:"setup.ruleEngine.testRun.conclusionSelector"},{count:b.length})})})]}),z&&e.jsxs("div",{className:"border rounded bg-white px-4 py-3 fs-8 text-gray-600",children:[e.jsx("span",{className:"spinner-border spinner-border-sm me-2","aria-hidden":"true"}),n({id:"message.wait"})]}),!z&&M&&e.jsx("div",{className:"alert alert-warning py-3 fs-8 mb-0",role:"alert",children:n({id:"setup.ruleEngine.testRun.previewFailed"})}),!z&&!M&&K&&e.jsx(Ca,{preview:K})]})]}),O&&e.jsxs("div",{className:"mb-6",children:[e.jsx("div",{className:"fw-semibold fs-7 mb-1",children:n({id:"setup.ruleEngine.testRun.testWith"})}),e.jsx("div",{className:"fs-8 text-gray-600 mb-3",children:n({id:"setup.ruleEngine.testRun.testWithScope"},{conditions:W,conclusions:b.length})}),e.jsxs("div",{className:"border rounded bg-white p-4",children:[e.jsx("div",{className:"d-flex gap-3 flex-wrap mb-4",children:["DYNAMIC","MANUAL"].map(F=>e.jsxs("label",{className:`d-flex align-items-start gap-3 px-4 py-3 rounded border cursor-pointer flex-grow-1 ${r===F?"border-primary bg-light-primary":""}`,style:{minWidth:240,flexBasis:0},children:[e.jsx("input",{type:"radio",name:"s4-test-mode",className:"form-check-input mt-1",checked:r===F,onChange:()=>u(F)}),e.jsxs("span",{children:[e.jsx("span",{className:"d-block fw-semibold fs-8",children:n({id:`setup.ruleEngine.testRun.mode.${F}`})}),e.jsx("span",{className:"d-block fs-8 text-gray-600",children:n({id:`setup.ruleEngine.testRun.mode.${F}.help`})})]})]},F))}),G&&e.jsxs("div",{className:"fs-8 text-gray-600 mb-3",children:[e.jsx("span",{className:"spinner-border spinner-border-sm me-2","aria-hidden":"true"}),n({id:"message.wait"})]}),r==="DYNAMIC"&&v&&e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"form-label fw-semibold fs-8",htmlFor:"s4-orderRef",children:n({id:"setup.ruleEngine.testRun.orderRefLabel"})}),e.jsx("input",{id:"s4-orderRef",type:"text",className:"form-control form-control-sm",value:m,onChange:F=>p(F.target.value),placeholder:n({id:"setup.ruleEngine.testRun.orderRefPlaceholder"}),autoComplete:"off"}),e.jsx("div",{className:"form-text fs-8",children:n({id:"setup.ruleEngine.testRun.orderRefHelp"})}),e.jsxs("div",{className:"mt-3","aria-live":"polite",children:[J&&e.jsxs("span",{className:"fs-8 text-gray-600",children:[e.jsx("span",{className:"spinner-border spinner-border-sm me-2","aria-hidden":"true"}),n({id:"message.wait"})]}),!J&&I&&e.jsxs("span",{className:"d-flex align-items-center gap-2 fs-8 text-gray-700",children:[e.jsx("i",{className:"ki-outline ki-check fs-6 text-success","aria-hidden":"true"}),w==null?void 0:w.label,(w==null?void 0:w.orderId)!=null&&e.jsx("span",{className:"text-gray-500",children:` · id ${w.orderId}`})]}),C&&e.jsxs("span",{className:"d-flex align-items-center gap-2 fs-8 text-danger",children:[e.jsx("i",{className:"ki-outline ki-cross-circle fs-6","aria-hidden":"true"}),n({id:"setup.ruleEngine.testRun.orderNotFound"})]})]})]}),!G&&(j.length>0||!v)&&e.jsx(Oa,{fields:j,values:d,onChange:(F,oe)=>c(B=>({...B,[F]:oe})),keyOf:La}),e.jsx("div",{className:"mb-4"}),e.jsxs("div",{className:"d-flex align-items-start gap-3 bg-light-success rounded p-3 mt-4",children:[e.jsx("i",{className:"ki-outline ki-shield-tick fs-4 text-success mt-1","aria-hidden":"true"}),e.jsxs("div",{children:[e.jsx("div",{className:"fw-semibold fs-8 text-success mb-1",children:n({id:"setup.ruleEngine.testRun.safeModeTitle"})}),e.jsx("div",{className:"fs-8 text-gray-700",children:n({id:"setup.ruleEngine.testRun.safeModeExplain"})})]})]})]})]}),y&&e.jsx("div",{className:"alert alert-danger py-3 fs-7",role:"alert",children:y}),e.jsxs("div",{className:"d-flex justify-content-between align-items-center border-top pt-4 mt-4 flex-wrap gap-3",children:[e.jsxs("button",{type:"button",className:"btn btn-sm btn-light",onClick:t,children:[e.jsx("i",{className:"ki-outline ki-arrow-left fs-5 me-1","aria-hidden":"true"}),n({id:"message.pagination.prev"})]}),e.jsxs("div",{className:"d-flex gap-3",children:[e.jsx("button",{type:"button",className:"btn btn-sm btn-light",onClick:a,children:n({id:"message.finish"})}),O&&e.jsx("button",{type:"button",className:"btn btn-sm btn-primary fw-bold",onClick:()=>U.mutate(),disabled:!te,title:Z?void 0:n({id:"setup.ruleEngine.testRun.needsOrder"}),children:U.isPending?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"spinner-border spinner-border-sm me-2","aria-hidden":"true"}),n({id:"message.wait"})]}):e.jsxs(e.Fragment,{children:[e.jsx("i",{className:"ki-outline ki-right-square fs-5 me-2","aria-hidden":"true"}),n({id:"setup.ruleEngine.testRun.execute"})]})})]})]})]})}
2,qs={ruleId:null,ruleName:"",ruleDescription:"",processId:null,status:"T",sortOrder:0,isExcluded:"F",cronExpression:"",version:2},Ks={1:"messages.label.ruleInformation",2:"messages.label.addFunctions",3:"messages.label.advancedMode",4:"messages.label.ExecuteRulesTitle"},Ka="RULE_ENGINE_ADMIN",Ua="STEP_TEST_MODE",ps=4,Us=[1,2,3],Va=({isOpen:s,editRule:t,processes:a,operators:n,onClose:i,onSuccess:l})=>{const{formatMessage:r}=le(),u=Ke(),{isEnabled:d}=Ye(Ka,void 0,"HIDDEN"),c=d(Ua),m=c?[...Us,ps]:Us,p=m[m.length-1],[h,T]=o.useState(1),[R,k]=o.useState(qs),[y,S]=o.useState(null),[N,O]=o.useState(!1);o.useEffect(()=>{s&&(T(1),O(!1),t?(S(t.ruleId),k({ruleId:t.ruleId,ruleName:t.ruleName,ruleDescription:t.ruleDescription,processId:t.processId,status:t.status,sortOrder:t.sortOrder,isExcluded:t.isExcluded,cronExpression:"",version:t.version})):(S(null),k(qs)))},[s,t]);const g=_=>{k(G=>({...G,..._})),O(!0)},b=()=>{T(1),O(!1),S(null)},W=()=>{b(),i()},Y=()=>{b(),l()},K=()=>{if(!N){W();return}Re.fire({title:r({id:"message.label.unsavedChanges"}),text:r({id:"message.label.unsavedChangesDesc"}),icon:"warning",showCancelButton:!0,confirmButtonText:r({id:"message.label.exit"}),cancelButtonText:r({id:"message.cancel"}),customClass:{confirmButton:"btn btn-primary",cancelButton:"btn btn-primary"}}).then(_=>{_.isConfirmed&&W()})};o.useEffect(()=>{h>p&&T(p)},[h,p]);const z=_=>{S(_),k(G=>({...G,ruleId:_})),T(2)},M=(h-1)/(m.length-1)*100;return e.jsxs(js,{isOpen:s,onClose:K,customHeader:e.jsxs("div",{className:"d-flex align-items-center flex-grow-1 me-3",children:[e.jsx("i",{className:"ki-outline ki-setting-2 fs-2 me-3 text-primary","aria-hidden":"true"}),e.jsx("h5",{className:"modal-title mb-0",children:y!==null?`${r({id:"message.label.rule"})} #${y}`:r({id:"setup.ruleEngine.wizardTitleNew"})})]}),size:u?`modal-dialog ${Ds.bottomSheet}`:"modal-dialog modal-dialog-centered modal-xl",showFooter:!1,children:[e.jsx("div",{className:"d-flex justify-content-center mb-5","data-testid":"rule-wizard-steps",children:m.map((_,G)=>{const v=h>_,j=h===_;return e.jsxs("div",{className:"d-flex flex-column align-items-center flex-fill position-relative",style:{minWidth:0},children:[G>0&&e.jsx("div",{className:"position-absolute",style:{top:20,left:"-50%",right:"50%",height:2,backgroundColor:v?"var(--bs-primary)":"var(--bs-gray-300)",zIndex:0},"aria-hidden":"true"}),e.jsx("div",{className:`d-flex align-items-center justify-content-center rounded-circle fw-bold fs-7 position-relative ${v||j?"bg-primary text-white":"bg-light text-gray-600"} ${j?"border border-2 border-primary":""}`,style:{width:40,height:40,zIndex:1,cursor:v?"pointer":"default",minHeight:40},onClick:()=>{v&&T(_)},role:v?"button":void 0,title:r({id:Ks[_]}),"aria-label":v?r({id:"setup.ruleEngine.goToStep"},{n:_}):void 0,children:v?e.jsx("i",{className:"ki-outline ki-check fs-8","aria-hidden":"true"}):_}),e.jsx("div",{className:"step-label",children:e.jsx("span",{className:`mt-2 fs-8 fw-semibold text-center d-block ${v||j?"text-primary":"text-gray-700"}`,style:{lineHeight:1.2},children:r({id:Ks[_]})})})]},_)})}),e.jsx("div",{className:"progress mb-6",style:{height:4},role:"progressbar","aria-valuenow":M,"aria-valuemin":0,"aria-valuemax":100,"aria-label":r({id:"setup.ruleEngine.wizardProgress"}),children:e.jsx("div",{className:"progress-bar bg-primary",style:{width:`${M}%`,transition:"width 0.3s"}})}),e.jsxs("div",{style:{minHeight:400},children:[h===1&&e.jsx(ut,{wizardData:R,processes:a,onChange:g,onSave:z,onCancel:K,isEdit:t!==null}),h===2&&y!==null&&e.jsx(xa,{ruleId:y,processId:R.processId,operators:n,onBack:()=>T(1),onNext:()=>T(3)}),h===3&&y!==null&&e.jsx(ya,{ruleId:y,onBack:()=>T(2),onNext:c?()=>T(ps):Y,isLastStep:!c}),h===ps&&c&&y!==null&&e.jsx(qa,{ruleId:y,onBack:()=>T(3),onClose:Y}),h>1&&y===null&&e.jsx("div",{className:"alert alert-warning py-3 fs-7",role:"alert",children:r({id:"setup.ruleEngine.wizardNoRuleId"})})]})]})},hs=20,Vs={status:"",processId:"",version:""},jn=()=>{nt("setup.rule-engine");const{formatMessage:s}=le(),{setAdminTitle:t,setPageId:a}=rt(),n=qe(),i=Ke(),{isEnabled:l,isVisible:r}
2=Ye("RULE_ENGINE_ADMIN"),[u,d]=o.useState(null),c=o.useRef(null),m=(P,ae)=>{d({type:P,msg:ae}),c.current&&clearTimeout(c.current),c.current=setTimeout(()=>d(null),4e3)},p=l("BTN_NEW"),h=l("BTN_COMPILE_ALL");o.useEffect(()=>{t(s({id:"setup.ruleEngine.pageTitle"})),a("setup.rule-engine")},[t,a,s]),o.useEffect(()=>()=>{clearTimeout(c.current??void 0),clearTimeout(g.current??void 0)},[]);const[T,R]=o.useState(""),[k,y]=o.useState(""),[S,N]=o.useState(!1),O=o.useRef(null),g=o.useRef(null),[b,W]=o.useState({}),[Y,K]=o.useState(!1),z=os({defaultValues:Vs}),M=Object.values(b).filter(P=>P!=null&&P!=="").length,_=()=>{z.reset({status:b.status??"",processId:b.processId!=null?String(b.processId):"",version:b.version!=null?String(b.version):""}),K(!0)},G=()=>{const P=z.getValues();W({status:P.status!==""?P.status:void 0,processId:P.processId!==""?Number(P.processId):void 0,version:P.version!==""?Number(P.version):void 0}),w(1),K(!1)},v=()=>{z.reset(Vs),W({}),w(1),K(!1)},[j,w]=o.useState(1),[J,I]=o.useState(!1),[C,U]=o.useState(null),{data:Z=[],isLoading:te}=me({queryKey:["rule-engine-processes"],queryFn:()=>q.listProcesses(),staleTime:5*6e4}),{data:F=[]}=me({queryKey:["rule-engine-operators"],queryFn:()=>q.getOperators(),staleTime:10*6e4}),{data:oe=[]}=me({queryKey:["rule-engine-versions"],queryFn:()=>q.listVersions(),staleTime:6e4}),B=k.match(/^#(\d+)$/),ve=B?void 0:k||void 0,se=["rule-engine-rules",ve,b.status,b.processId,b.version],{data:H=[],isLoading:fe}=me({queryKey:se,queryFn:()=>q.listRules({status:b.status,processId:b.processId,search:ve,version:b.version}),staleTime:3e4}),x=B?H.filter(P=>String(P.ruleId).includes(B[1])):H;Me.useEffect(()=>{w(1)},[k,b]);const A=Ce({mutationFn:P=>q.deleteRule(P),onSuccess:()=>{n.invalidateQueries({queryKey:se}),m("success",s({id:"message.generalSuccess.successfullySaved"}))},onError:()=>{m("danger",s({id:"setup.ruleEngine.deleteErrorTitle"}))}}),ee=Ce({mutationFn:({ruleId:P,status:ae})=>q.changeStatus(P,ae),onSuccess:()=>{n.invalidateQueries({queryKey:se}),m("success",s({id:"message.generalSuccess.successfullySaved"}))},onError:()=>{m("danger",s({id:"message.error.save"}))}}),de=Ce({mutationFn:P=>q.duplicateRule(P),onSuccess:()=>{n.invalidateQueries({queryKey:se}),m("success",s({id:"setup.ruleEngine.duplicateSuccess"}))},onError:()=>{m("danger",s({id:"setup.ruleEngine.duplicateError"}))}}),ne=Ce({mutationFn:()=>q.compileAllRules(b.processId,b.status),onSuccess:P=>{if(P.error==="volume_limit_exceeded"){m("danger",s({id:"setup.ruleEngine.compileAllVolumeLimitText"},{total:P.total}));return}n.invalidateQueries({queryKey:["rule-json"]}),m(P.success?"success":"danger",s({id:"setup.ruleEngine.compileAllSuccess"},{compiled:P.compiled}))},onError:()=>{m("danger",s({id:"setup.ruleEngine.compileAllError"}))}}),re=()=>{U(null),I(!0)},pe=P=>{U(P),I(!0)},ye=P=>{Re.fire({title:s({id:"message.label.validationDeleteRegistry"}),text:`"${P.ruleName}" (ID: ${P.ruleId})`,icon:"warning",showCancelButton:!0,confirmButtonText:s({id:"message.label.delete"}),cancelButtonText:s({id:"message.control.cancel"}),customClass:{confirmButton:"btn btn-primary",cancelButton:"btn btn-primary"}}).then(ae=>{if(!ae.isConfirmed)return;const Ve=()=>{g.current&&(clearTimeout(g.current),g.current=null),d(null)};d({type:"warning",msg:`"${P.ruleName}" será eliminada`,onUndo:()=>{Ve()}}),g.current=setTimeout(()=>{g.current=null,d(null),A.mutate(P.ruleId)},5e3)})},xe=P=>{const ae=P.status==="T"?"F":"T";ee.mutate({ruleId:P.ruleId,status:ae})},be=P=>{Re.fire({title:s({id:"setup.ruleEngine.duplicateConfirmTitle"}),text:`"${P.ruleName}"`,icon:"question",showCancelButton:!0,confirmButtonText:s({id:"message.clone"}),cancelButtonText:s({id:"message.control.cancel"}),customClass:{confirmButton:"btn btn-primary",cancelButton:"btn btn-primary"}}).then(ae=>{ae.isConfirmed&&de.mutate(P.ruleId)})},je=()=>{b.processId==null?at({onConfirm:()=>ne.mutate()}):ne.mutate()},ce=()=>{y(T.trim()),w(1)},E=P=>{P.key==="Enter"&&(ce(),i&&N(!1)),P.key==="Escape"&&N(!1)},ie=P=>{const ae=P.target.value;R(ae),ae.trim()||(y(""),w(1))},Ne=[{key:"ruleId",title:s({id:"messages.label.numberOf"}),mobileVisible:!1,render:(P,ae)=>e.jsxs("span",{className:"text-gray-700 fw-semibold fs-7",children:["#",ae.ruleId]})},{key:"ruleName",title:s({id:"message.name"}),mobileVisible:!0,mobileWidth:"min-w-150px",render:(P,ae)=>e.jsxs("div",{children:[e.jsx("span",{className:"fw-bold text-dark d-block",children:ae.ruleName}),e.jsx("span",{className:"text-gray-700 fs-8",children:ae.ruleDescription})]})},{key:"processName",title:s({id:"message.process"}),mobileVisible:!1,desktopWidth:"min-w-130px",render:(P,ae)=>e.jsx("span",{className:"text-gray-700 fs-7",children:ae.processName})},{key:"status",title:s({id:"message.label.status"}),mobileVisible:!0,mobileWidth:"min-w-100px",render:(P,ae)=>e.jsx("span",{className:`badge ${ae.status==="T"?"badge-light-success":"badge-light-danger"}`,children:ae.status==="T"?s({id:"message.active"}):s({id:"message.label.inactive"})})},{key:"sortOrder",title:s({id:"message.ordering"}),mobileVisible:!1,desktopWidth:"min-w-80px",render:(P,ae)=>e.jsx("span",{className:"text-gray-700 fs-7",children:ae.sortOrder})},{key:"version",title:s({id:"setup.ruleEngine.colVersion"}),mobileVisible:!1,desktopWidth:"min-w-60px",render:(P,ae)=>e.jsx("span",{className:"badge badge-light-primary",children:ae.version})}],ge=[{label:s({id:"message.label.edit"}),onClick:pe,elementCode:"BTN_EDIT",labelKey:"message.label.edit"},{label:s({id:"message.label.changeStatus"}),onClick:xe,elementCode:"BTN_CHANGE_STATUS",labelKey:"message.label.changeStatus"},{label:s({id:"message.label.delete"}),className:"text-danger",onClick:ye,elementCode:"BTN_DELETE",labelKey:"message.label.delete"},{label:s({id:"message.clone"}),onClick:be,elementCode:"BTN_DUPLICATE",labelKey:"message.clone"}],Ee=o.useMemo(()=>[...x].sort((P,ae)=>P.status!==ae.status?P.status==="T"?-1:1:P.ruleId-ae.ruleId),[x]),Be=o.useMemo(()=>Ee.slice((j-1)*hs,j*hs),[Ee,j]),Pe=[{value:"T",label:s({id:"message.active"})},{value:"F",label:s({id:"message.label.inactive"})}],Ue=Z.map(P=>({value:P.processId,label:P.name})),_e=oe.map(P=>({value:P,label:String(P)})),Fe=()=>e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",className:`btn${i?"":" bt
2n-sm"} btn-primary`,onClick:G,children:s({id:"message.traceability.applyFilters"})}),e.jsx("button",{type:"button",className:`btn${i?"":" btn-sm"} btn-primary`,onClick:v,children:s({id:"message.label.clearAll"})})]});return e.jsxs(it,{children:[e.jsx("a",{href:"#rule-engine-main",className:"visually-hidden-focusable position-absolute top-0 start-0 p-2 bg-white border rounded shadow-sm fs-7 fw-semibold text-primary",style:{zIndex:9999},children:s({id:"accessibility.skipToContent"})}),u&&e.jsxs("div",{"aria-live":"polite","aria-atomic":"true",className:`alert alert-${u.type} alert-dismissible d-flex align-items-center gap-3 shadow-sm`,style:{position:"fixed",top:20,right:20,zIndex:9999,minWidth:280,maxWidth:400},role:"alert",children:[e.jsx("i",{className:`ki-outline ${u.type==="success"?"ki-check-circle":"ki-cross-circle"} fs-4 flex-shrink-0`,"aria-hidden":"true"}),e.jsx("span",{className:"fs-7",children:u.msg}),u.onUndo&&e.jsx("button",{type:"button",className:"btn btn-sm btn-light ms-auto",onClick:u.onUndo,children:s({id:"message.control.undo"})}),e.jsx("button",{type:"button",className:"btn-close",onClick:()=>d(null),"aria-label":"Close"})]}),i&&!J&&p&&e.jsx("button",{type:"button",className:"btn btn-primary rounded-circle d-flex align-items-center justify-content-center shadow",style:{position:"fixed",bottom:"calc(88px + env(safe-area-inset-bottom, 0px))",right:20,width:56,height:56,zIndex:100},onClick:re,"data-element-code":"BTN_NEW","data-label-key":"message.label.new","aria-label":s({id:"setup.ruleEngine.newRule"}),children:e.jsx("i",{className:"ki-outline ki-plus fs-2","aria-hidden":"true"})}),e.jsxs("div",{id:"rule-engine-main",children:[e.jsxs("div",{className:"align-items-center d-flex flex-column flex-xl-row my-5",children:[e.jsxs("div",{className:"col-12 col-xl-6 order-1 order-xl-2 d-none d-xl-flex justify-content-xl-end align-items-center gap-2 mb-3 mb-xl-0",children:[h&&e.jsxs("button",{className:"btn btn-sm btn-outline d-flex align-items-center",onClick:je,disabled:ne.isPending,"data-element-code":"BTN_COMPILE_ALL","data-label-key":"message.label.compileRules",title:b.processId==null?s({id:"setup.ruleEngine.compileAllHint"}):void 0,children:[ne.isPending?e.jsx("span",{className:"spinner-border spinner-border-sm me-2",role:"status","aria-hidden":"true"}):e.jsx("i",{className:"ki-outline ki-arrows-circle fs-5 text-primary me-2","aria-hidden":"true"}),s({id:"message.label.compileRules"})]}),p&&e.jsxs("button",{type:"button",className:"btn btn-sm btn-primary d-flex align-items-center",onClick:re,"data-element-code":"BTN_NEW","data-label-key":"message.label.new",children:[e.jsx("i",{className:"ki-solid ki-plus fs-4 me-2","aria-hidden":"true"}),s({id:"message.label.new"})]})]}),e.jsx("div",{className:"col-xl-6 order-2 order-xl-1 d-none d-xl-flex",children:e.jsxs("div",{className:"d-flex align-items-center w-100",children:[e.jsxs("div",{className:"position-relative flex-grow-1 me-3",children:[e.jsx("i",{className:"ki-solid ki-magnifier fs-4 position-absolute ms-5 top-50 translate-middle-y text-gray-500"}),e.jsx("input",{type:"text",className:"form-control form-control-sm bg-white ps-12 border",placeholder:s({id:"message.search"}),value:T,onChange:ie,onKeyDown:E})]}),e.jsx("button",{className:"btn btn-sm btn-outline",onClick:ce,disabled:fe,children:s({id:"message.search"})})]})}),!S&&e.jsxs("div",{className:"col-12 order-1 d-flex d-xl-none align-items-center gap-2 mb-3",children:[p&&e.jsxs("button",{type:"button",className:"btn btn-primary d-flex align-items-center flex-fill",onClick:re,"data-element-code":"BTN_NEW","data-label-key":"message.label.new",children:[e.jsx("i",{className:"ki-solid ki-plus fs-4 me-2"}),s({id:"message.label.new"})]}),h&&e.jsx("button",{className:"btn btn-outline d-flex align-items-center justify-content-center",style:{minWidth:44,minHeight:44},onClick:je,disabled:ne.isPending,"data-element-code":"BTN_COMPILE_ALL","data-label-key":"message.label.compileRules",children:ne.isPending?e.jsx("span",{className:"spinner-border spinner-border-sm",role:"status","aria-hidden":"true"}):e.jsx("i",{className:"ki-outline ki-arrows-circle fs-4 text-primary","aria-hidden":"true"})}),e.jsx("button",{className:"btn btn-outline d-flex align-items-center justify-content-center",style:{minWidth:44,minHeight:44},onClick:()=>{N(!0),setTimeout(()=>{var P;return(P=O.current)==null?void 0:P.focus()},50)},children:e.jsx("i",{className:"ki-solid ki-magnifier fs-4"})})]}),S&&e.jsxs("div",{className:"col-12 order-1 d-flex d-xl-none align-items-center gap-2 mb-3",children:[e.jsx("button",{className:"btn btn-outline d-flex align-items-center justify-content-center",style:{minWidth:44,minHeight:44},onClick:()=>N(!1),children:e.jsx("i",{className:"ki-solid ki-cross fs-4"})}),e.jsxs("div",{className:"position-relative flex-grow-1",children:[e.jsx("i",{className:"ki-solid ki-magnifier fs-4 position-absolute ms-3 top-50 translate-middle-y text-gray-500"}),e.jsx("input",{ref:O,className:"form-control bg-white ps-10 border",value:T,onChange:ie,onKeyDown:E,placeholder:s({id:"message.search"})})]})]})]}),e.jsxs("div",{className:"d-flex flex-wrap align-items-center my-5 gap-3",children:[e.jsxs("button",{className:`btn${i?"":" bt
2n-sm"} btn-outline`,onClick:_,children:[e.jsx("i",{className:"ki-outline ki-filter-search fs-4 text-primary me-2"}),e.jsx("span",{children:s({id:"message.filters"})}),M>0&&e.jsx("span",{className:"badge badge-circle badge-light-primary ms-2 fs-9",children:M})]}),M>0&&e.jsx("button",{className:`btn${i?"":" btn-sm"} bg-transparent border-0 text-dark`,onClick:v,children:s({id:"message.label.clearAll"})})]}),e.jsx(lt,{columns:Ne,data:Be,actions:ge,isElementVisible:r,loading:fe,getRowKey:P=>P.ruleId,emptyState:{icon:"ki-outline ki-setting-2",titleMessageId:s({id:"setup.ruleEngine.emptyTitle"}),descriptionMessageId:s({id:"setup.ruleEngine.emptyDesc"})},enablePagination:!0,totalRecords:Ee.length,currentPage:j,pageSize:hs,onPageChange:w})]}),e.jsx(js,{title:"message.filters",showFooter:!0,actionFooter:Fe,isOpen:Y,onClose:()=>K(!1),size:"modal-dialog modal-dialog-centered",children:e.jsx(tt,{...z,children:e.jsxs("div",{className:"row",children:[e.jsx(cs,{name:"status",label:"message.label.status",options:Pe,className:"col-12 col-md-6 mt-3"}),e.jsx(cs,{name:"processId",label:"message.label.processName",options:Ue,className:"col-12 col-md-6 mt-3",isDisabled:te,searchable:!0}),e.jsx(cs,{name:"version",label:s({id:"setup.ruleEngine.colVersion"}),options:_e,className:"col-12 col-md-6 mt-3"})]})})}),e.jsx(Va,{isOpen:J,editRule:C,processes:Z,operators:F,onClose:()=>I(!1),onSuccess:()=>{I(!1),n.invalidateQueries({queryKey:se})}})]})};export{jn as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.