@odigos/ui-kit 0.0.242 → 0.0.244
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/lib/chunks/{helpers-flEStb5l.js → helpers-aJJ1GhqS.js} +1 -1
- package/lib/chunks/index-BnOPIhIp.js +149 -0
- package/lib/chunks/source-instrument-form-context-5GXsAhJd.js +1 -0
- package/lib/chunks/ui-components-Dnqp-MQm.js +1592 -0
- package/lib/components/_v2/note/index.d.ts +6 -0
- package/lib/components/v2.js +1 -1
- package/lib/components.js +1 -1
- package/lib/constants/actions/index.d.ts +0 -2
- package/lib/constants.js +1 -1
- package/lib/containers/_v2/_drawers/edit-source-drawer/index.d.ts +2 -1
- package/lib/containers/_v2/_drawers/edit-source-drawer/jump-to-target-context.d.ts +57 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/overview/pods-card/pods-list/container-row.d.ts +0 -2
- package/lib/containers/_v2/_drawers/edit-source-drawer/overview/pods-card/pods-list/index.d.ts +0 -6
- package/lib/containers/_v2/_drawers/edit-source-drawer/overview/pods-card/pods-list/pod-row.d.ts +0 -2
- package/lib/containers/_v2/_drawers/edit-source-drawer/overview/pods-card/pods-list/process-row.d.ts +0 -2
- package/lib/containers/_v2/_drawers/edit-source-drawer/overview/pods-card/pods-list/types.d.ts +1 -6
- package/lib/containers/_v2/_drawers/edit-source-drawer/pods/containers-card/index.d.ts +3 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/pods/containers-card/process-card.d.ts +1 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/pods/pod-card.d.ts +4 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/tabs.d.ts +7 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/yaml-files/index.d.ts +2 -1
- package/lib/containers/_v2/overview/drawers/index.d.ts +2 -1
- package/lib/containers/index.d.ts +0 -1
- package/lib/containers/v2.js +118 -123
- package/lib/containers.js +7 -62
- package/lib/contexts.js +1 -1
- package/lib/functions/get-action-icon/index.d.ts +2 -2
- package/lib/functions.js +1 -1
- package/lib/hooks/index.d.ts +1 -0
- package/lib/hooks/useScrollIntoViewWhen.d.ts +15 -0
- package/lib/hooks.js +1 -1
- package/lib/snippets/v2.js +1 -1
- package/lib/snippets.js +6 -6
- package/lib/store.js +1 -1
- package/lib/theme.js +1 -1
- package/lib/types/actions/index.d.ts +0 -19
- package/lib/types/enum/index.d.ts +2 -1
- package/lib/types/index.d.ts +1 -0
- package/lib/types/k8s-manifest/index.d.ts +2 -0
- package/lib/types/workload/index.d.ts +0 -2
- package/lib/types.js +1 -1
- package/lib/visuals.js +1 -1
- package/package.json +1 -1
- package/lib/chunks/index-9imbvR3P.js +0 -149
- package/lib/chunks/source-instrument-form-context-4oj79EpI.js +0 -1
- package/lib/chunks/ui-components-DofONrt0.js +0 -1570
- package/lib/containers/_v2/_forms/add-action-form/custom-fields/error-sampler/index.d.ts +0 -5
- package/lib/containers/_v2/_forms/add-action-form/custom-fields/latency-sampler/index.d.ts +0 -5
- package/lib/containers/_v2/_forms/add-action-form/custom-fields/probabilistic-sampler/index.d.ts +0 -5
- package/lib/containers/_v2/_forms/add-action-form/custom-fields/service-name-sampler/index.d.ts +0 -5
- package/lib/containers/_v2/_forms/add-action-form/custom-fields/span-attribute-sampler/index.d.ts +0 -5
- package/lib/containers/notification-manager/index.d.ts +0 -4
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import{useState as t,useCallback as a,useMemo as n,useContext as r,createContext as s,useRef as o,useEffect as i}from"react";import{v as l,w as d,A as c,x as m,y as u,z as p,B as h,G as f,H as g,J as v,q as b,K as y,L as S,M as D,O as E,Q as k,R as F,U as C,V as I,W as N,X as A,Y as w,Z as R,_ as P,T,E as x}from"./ui-components-DofONrt0.js";import{b as O,a as L,d as U,v as M,g as _,u as j}from"./helpers-flEStb5l.js";const V={type:"",disabled:!1,name:"",notes:"",signals:[],fields:{}},K=s(null),G="All row fields are required",H="At least one row is required",q=h.LATENCY_HTTP_ROUTE,z=e=>"string"==typeof e?!e.trim():f(e),Q=(e,t)=>!!e&&t.every(t=>{const a=e[t];return Array.isArray(a)?a.length>0:!z(a)}),W=({children:r})=>{const[s,o]=t(null),i=l(V),g=a(e=>{i.resetFormData(),i.handleErrorChange(void 0,void 0,{}),e?.type&&i.handleFormChange("type",e.type),o(e)},[]),v=a(e=>{var t;i.resetFormData((({type:e,name:t,notes:a,disabled:n,signals:r,fields:s})=>({type:e,name:t||"",notes:a||"",disabled:!!n,signals:r??[],fields:s??{}}))(e)),i.handleErrorChange(void 0,void 0,{}),o((t=e.type,c.find(e=>e.type===t)??m.find(e=>e.type===t)??null))},[]),b=a(()=>{if(!s)return{errorMessage:"No action type selected",preparedFormData:d(V)};const e=(e=>{const t=d(e),a=t.fields||{},n=a[u.UrlTemplatizationRulesGroups];n?.length&&(a[u.UrlTemplatizationRulesGroups]=n.map(e=>({...e,templatizationRules:(e.templatizationRules||[]).filter(e=>!!e.template?.trim())})));const r=a[u.AttributeNamesToDelete];r?.length&&(a[u.AttributeNamesToDelete]=r.filter(e=>!!e?.trim()));const s=a[u.Renames];return s&&(a[u.Renames]=Object.fromEntries(Object.entries(s).filter(([e,t])=>!!e?.trim()&&!!t?.trim()))),t.fields=a,t})(i.formData),t={};f(e.signals)&&(t.signals=h.FIELD_IS_REQUIRED),s.type&&Object.assign(t,((e,t,a)=>{const n={},r=t.fields||{},s=a.fields||{};switch(e){case p.K8sAttributes:{const e=!(r[u.CollectContainerAttributes]||r[u.CollectReplicaSetAttributes]||r[u.CollectWorkloadId]||r[u.CollectClusterId]),t=!r[u.LabelsAttributes]?.length,a=!r[u.AnnotationsAttributes]?.length;e&&t&&a&&(n[u.CollectContainerAttributes]="Enable at least one option or add a label/annotation row");const s=r[u.LabelsAttributes];s?.some(e=>!Q(e,["labelKey","attributeKey","fromSources"]))&&(n[u.LabelsAttributes]=G);const o=r[u.AnnotationsAttributes];o?.some(e=>!Q(e,["annotationKey","attributeKey","fromSources"]))&&(n[u.AnnotationsAttributes]=G);break}case p.AddClusterInfo:{const e=r[u.ClusterAttributes];e?.length?e.some(e=>!Q(e,["attributeName","attributeStringValue"]))&&(n[u.ClusterAttributes]=G):n[u.ClusterAttributes]=H;break}case p.DeleteAttributes:{const e=s[u.AttributeNamesToDelete]||[],t=r[u.AttributeNamesToDelete]||[];t.length?e.length>t.length&&(n[u.AttributeNamesToDelete]=G):n[u.AttributeNamesToDelete]=e.length?G:H;break}case p.RenameAttributes:{const e=Object.entries(s[u.Renames]||{}),t=Object.entries(r[u.Renames]||{}),a=e.some(([e,t])=>!e?.trim()||!t?.trim());t.length?a&&(n[u.Renames]=G):n[u.Renames]=e.length?G:H;break}case p.PiiMasking:{const e=r[u.PiiCategories];e?.length||(n[u.PiiCategories]="Select at least one attribute to mask");break}case p.ErrorSampler:z(r[u.FallbackSamplingRatio])&&(n[u.FallbackSamplingRatio]=h.FIELD_IS_REQUIRED);break;case p.ProbabilisticSampler:z(r[u.SamplingPercentage])&&(n[u.SamplingPercentage]=h.FIELD_IS_REQUIRED);break;case p.LatencySampler:{const e=r[u.EndpointsFilters];e?.length?e.some(e=>!Q(e,["serviceName","httpRoute","minimumLatencyThreshold","fallbackSamplingRatio"]))?n[u.EndpointsFilters]=G:e.some(e=>!!e.httpRoute&&!e.httpRoute.startsWith("/"))&&(n[u.EndpointsFilters]=q):n[u.EndpointsFilters]=H;break}case p.ServiceNameSampler:{const e=r[u.ServicesNameFilters];e?.length?e.some(e=>!Q(e,["serviceName","samplingRatio","fallbackSamplingRatio"]))&&(n[u.ServicesNameFilters]=G):n[u.ServicesNameFilters]=H;break}case p.SpanAttributeSampler:{const e=r[u.AttributeFilters],t=["stringCondition","numberCondition","booleanCondition","jsonCondition"],a=new Set(["exists","is_valid_json","is_invalid_json","jsonpath_exists"]);e?.length?e.some(e=>{if(!Q(e,["serviceName","attributeKey","fallbackSamplingRatio"]))return!0;const n=e.condition||{},r=t.find(e=>!!n[e]);if(!r)return!0;const s=n[r]||{},o=s.operation;return!o||!(a.has(o)||!z(s.expectedValue))})&&(n[u.AttributeFilters]=G):n[u.AttributeFilters]=H;break}case p.URLTemplatization:{const e=r[u.UrlTemplatizationRulesGroups];(!e?.length||e.some(e=>!e.templatizationRules?.length))&&(n[u.UrlTemplatizationRulesGroups]="Each rule group needs at least one non-blank template");break}}return n})(s.type,e,i.formData)),i.handleErrorChange(void 0,void 0,t);return{errorMessage:Object.keys(t).length>0?"Invalid form values":void 0,preparedFormData:e}},[i,s]),y=n(()=>({selectedOption:s,onSelectOption:g,loadAction:v,genericForm:i,validateFormData:b}),[s,g,v,i,b]);return e(K.Provider,{value:y,children:r})},J=()=>{const e=r(K);if(!e)throw new Error("useActionFormContext must be used within an ActionFormContextProvider");return e},$={name:""},B=s(null),X=({children:r,defaultExcludeName:s=""})=>{const{dataStreams:i}=g(),[c,m]=t(void 0),[u,p]=t(s),[f,b]=t(void 0),[y,S]=t(null),D=o(null),E=l($),k=a(e=>{E.resetFormData({name:e}),E.handleErrorChange(void 0,void 0,{}),m(void 0),p(e),b(e),S(null),D.current=null},[]),F=a(()=>{const e=d(E.formData),t=(e=>{const t={};return e.name?v(e.name)||(t.name=h.ILLEGAL_K8S_LABEL):t.name=h.FIELD_IS_REQUIRED,t})(e);E.handleErrorChange(void 0,void 0,t);const a=Object.keys(t).length>0?h.REQUIRED_FIELDS:void 0;return m(a),{errorMessage:a,preparedFormData:e}},[E]),C=a(async e=>{const{errorMessage:t,preparedFormData:a}=F();if(t)return;const n=i.find(e=>e.name===a.name&&e.name!==u);if(n)return D.current=e,void S({preparedFormData:a,existingName:n.name,editingName:f});await e(a)},[F,i,u,f]),I=a(async()=>{const e=D.current,t=y?.preparedFormData;D.current=null,S(null),e&&t&&await e(t)},[y]),N=a(()=>{D.current=null,S(null)},[]),A=n(()=>({genericForm:E,loadDataStream:k,editingName:f,validateFormData:F,requestSubmit:C,pendingMerge:y,confirmMerge:I,cancelMerge:N,errorMessage:c,excludeName:u,setExcludeName:p}),[E,k,f,F,C,y,I,N,c,u]);return e(B.Provider,{value:A,children:r})},Y=()=>{const e=r(B);if(!e)throw new Error("useDataStreamFormContext must be used within a DataStreamFormContextProvider");return e},Z={type:"",name:"",currentStreamName:"",disabled:!1,exportedSignals:{logs:!1,metrics:!1,traces:!1,profiles:!1},fields:[]},ee={activeForm:null,onChangeActiveForm:()=>{},loadDestination:()=>{},genericForm:void 0,validateFormData:()=>({isOk:!1,preparedFormData:d(Z)}),unsavedDestinations:[],thisUnsavedDestination:void 0,setUnsavedDestinations:()=>{},addUnsavedDestination:()=>{},updateUnsavedDestination:()=>{},deleteUnsavedDestination:()=>{}},te=s(ee),ae=e=>e.filter(e=>!!e).map(e=>{const{name:t,componentType:a,componentProperties:n,displayName:r,initialValue:s,renderCondition:o}=e,i=a===F.Dropdown,l=E(n,{});return{componentType:a,renderCondition:o,name:t,title:r,value:s,placeholder:l.placeholder||(i?"Select an option":void 0),options:i&&Array.isArray(l.values)?l.values.map(e=>({id:e,label:e})):void 0,...l}}),ne=({children:r})=>{const{selectedStreamName:s}=g(),o=b(e=>e.destinations),[c,m]=t(null),[u,p]=t(ee.unsavedDestinations),v=n(()=>"number"==typeof c?.unsavedIdx?u[c.unsavedIdx]:void 0,[c,u]),F=a((e,t)=>{c&&(p(t=>[...t,{...e,option:c.option}]),m(t?e=>e?{...e,listType:y.UNSAVED,unsavedIdx:u.length}:null:null))},[c,u.length]),C=a((e,t,a)=>{c&&(p(a=>a.map((a,n)=>n===e?{...a,...t,option:c.option}:a)),m(a?e=>e?{...e,listType:y.UNSAVED}:null:null))},[c]),I=a(e=>{p(t=>t.filter((t,a)=>a!==e)),m(null)},[]),N=l({...Z,currentStreamName:s});i(()=>{if(!c)return;if(v)return void N.resetFormData({...v.formData});if(c.listType===y.EXISTS&&c.option.id){const e=o.find(e=>e.id===c.option.id);if(e)return void N.resetFormData({type:e.destinationType.type,name:e.name||e.destinationType.displayName,currentStreamName:s,disabled:!!e.disabled,exportedSignals:{logs:!!e.exportedSignals?.logs,metrics:!!e.exportedSignals?.metrics,traces:!!e.exportedSignals?.traces,profiles:!!e.exportedSignals?.profiles},fields:c.dynamicFields.map(e=>({key:e.name,value:e.value}))})}const e=S(c.option.supportedSignals);N.resetFormData({type:c.option.type,name:c.option.displayName,currentStreamName:s,disabled:!1,exportedSignals:{logs:e.includes(D.Logs),metrics:e.includes(D.Metrics),traces:e.includes(D.Traces),profiles:e.includes(D.Profiles)},fields:c.dynamicFields.map(e=>({key:e.name,value:e.value}))})},[c,v]);const A=a(e=>{N.resetFormData(),N.handleErrorChange(void 0,void 0,{}),m(e?{...e,dynamicFields:e.option?.fields?ae(e.option.fields):[]}:null)},[]),w=a((e,t)=>{let a;for(const n of t){const t=n.items.find(t=>t.type===e.destinationType.type);if(t){a=t;break}}const n=E(e.fields,{}),r={id:e.id,type:e.destinationType.type,displayName:e.name||e.destinationType.displayName,selected:!0,testConnectionSupported:a?.testConnectionSupported??!1,supportedSignals:e.destinationType.supportedSignals,fields:a?a.fields.map(e=>({...e,initialValue:n[e.name]??e.initialValue})):[]},s=ae(r.fields);m({listType:y.EXISTS,option:r,dynamicFields:s})},[]),R=a(()=>{const e=d(N.formData),t={};c?.dynamicFields.forEach(({name:a,required:n})=>{if(n){const n=e.fields.find(e=>e.key===a)?.value;f(n)&&(t[a]=h.FIELD_IS_REQUIRED)}});return k(e.exportedSignals).length||(t.exportedSignals=h.FIELD_IS_REQUIRED),N.handleErrorChange(void 0,void 0,t),{errorMessage:0===Object.keys(t).length?void 0:"Invalid form values",preparedFormData:e}},[N,c]);return e(te.Provider,{value:{activeForm:c,onChangeActiveForm:A,loadDestination:w,genericForm:N,validateFormData:R,unsavedDestinations:u,thisUnsavedDestination:v,setUnsavedDestinations:p,addUnsavedDestination:F,updateUnsavedDestination:C,deleteUnsavedDestination:I},children:r})},re=()=>r(te),se={disabled:!1,ruleName:"",notes:"",workloads:null,instrumentationLibraries:null,payloadCollection:null,codeAttributes:null,headersCollection:null,customInstrumentations:null},oe=s(null),ie=({children:r})=>{const[s,o]=t(null),i=l(se),c=a(e=>{i.resetFormData(),i.handleErrorChange(void 0,void 0,{}),o(e)},[]),m=a(e=>{var t;i.resetFormData((({ruleName:e,notes:t,disabled:a,workloads:n,instrumentationLibraries:r,payloadCollection:s,codeAttributes:o,headersCollection:i,customInstrumentations:l})=>({ruleName:e||"",notes:t||"",disabled:!!a,workloads:n??null,instrumentationLibraries:r??null,payloadCollection:s??null,codeAttributes:o??null,headersCollection:i??null,customInstrumentations:l??null}))(e)),i.handleErrorChange(void 0,void 0,{}),o((t=e.type,C.find(e=>e.type===t)??null))},[]),u=a(()=>{if(!s)return{errorMessage:"No rule type selected",preparedFormData:d(se)};const e=(e=>{const t=d(e);return t.headersCollection?.[I.HeaderKeys]?.length&&(t.headersCollection[I.HeaderKeys]=t.headersCollection[I.HeaderKeys].map(e=>e.trim()).filter(e=>e)),t.customInstrumentations?.[N.Golang]?.length&&(t.customInstrumentations[N.Golang]=t.customInstrumentations[N.Golang].map(e=>new A(e.packageName,e.functionName,e.receiverName,e.receiverMethodName)).filter(e=>{return t=e,!!(t.packageName?.trim()||t.functionName?.trim()||t.receiverName?.trim()||t.receiverMethodName?.trim());var t})),t.customInstrumentations?.[N.Java]?.length&&(t.customInstrumentations[N.Java]=t.customInstrumentations[N.Java].map(e=>new w(e.className,e.methodName)).filter(e=>{return t=e,!(!t.className?.trim()&&!t.methodName?.trim());var t})),t})(i.formData),t=((e,t)=>{const a={};switch(e){case R.CodeAttributes:Object.values(t.codeAttributes||{}).some(e=>null!=e)||(a.codeAttributes="Code attributes are required");break;case R.PayloadCollection:Object.values(t.payloadCollection||{}).some(e=>null!=e)||(a.payloadCollection="Payload collection are required");break;case R.HeadersCollection:t.headersCollection?.[I.HeaderKeys]?.length||(a.headersCollection="Header keys are required");break;case R.CustomInstrumentation:{const e=t.customInstrumentations?.[N.Golang]||[],n=t.customInstrumentations?.[N.Java]||[];if(!e.length&&!n.length){a.customInstrumentations="Custom instrumentation are required";break}const r=e.findIndex(e=>!new A(e.packageName,e.functionName,e.receiverName,e.receiverMethodName).Verify());if(-1!==r){a.customInstrumentations=`Golang probe #${r+1} is invalid: provide a package name plus either a function name OR both a receiver name and receiver method name`;break}const s=n.findIndex(e=>!new w(e.className,e.methodName).Verify());if(-1!==s){a.customInstrumentations=`Java probe #${s+1} is invalid: both class name and method name are required`;break}break}}return a})(s.type,e);return i.handleErrorChange(void 0,void 0,t),{errorMessage:Object.keys(t).length>0?"Invalid form values":void 0,preparedFormData:e}},[i,s]),p=n(()=>({selectedOption:s,onSelectOption:c,loadRule:m,genericForm:i,validateFormData:u}),[s,c,m,i,u]);return e(oe.Provider,{value:p,children:r})},le=()=>{const e=r(oe);if(!e)throw new Error("useRuleFormContext must be used within a RuleFormContextProvider");return e};var de;!function(e){e.Create="create",e.View="view",e.EditAutoNoisy="edit-auto-noisy",e.EditAutoCostReduction="edit-auto-cost-reduction",e.EditAutoHighlyRelevant="edit-auto-highly-relevant"}(de||(de={}));const ce=s(null),me=["50","25","10","1"];function ue(e){const t=String(e);return me.includes(t)?t:"custom"}const pe=({category:r,sourceOptions:s=[],namespaceOptions:o=[],children:d})=>{const{formData:c,handleFormChange:m,resetFormData:u}=l(_(r)),[p,h]=t(null);i(()=>{u(_(r)),h(null)},[r]);const f=a(e=>{h(null),m(void 0,void 0,{...c,...e})},[c,m]),g=a(()=>{u(_(r)),h(null)},[r,u]),v=n(()=>({formType:de.Create,category:r,formData:c,handleChange:f,resetForm:g,duplicateWarning:p,setDuplicateWarning:h,sourceOptions:s,namespaceOptions:o}),[r,c,f,g,p,s,o]);return e(ce.Provider,{value:v,children:d})},he=({data:r,defaultEditMode:s,sourceOptions:d=[],namespaceOptions:c=[],children:m})=>{const[u,p]=t(!1),{formData:h,handleFormChange:f,resetFormData:g}=l(void 0),v=o(null),[b,y]=t(null);i(()=>{r!==v.current&&(v.current=r,r&&s?(g(M(r)),y(null),p(!0)):(p(!1),y(null)))},[r,s]);const S=a(e=>{y(null),f(void 0,void 0,{...h,...e})},[h,f]),D=a(()=>{r&&(g(M(r)),y(null),p(!0))},[r,g]),E=a(()=>{p(!1),y(null)},[]),k=n(()=>({formType:de.View,data:r,isEditing:u,formData:h,handleChange:S,handleEdit:D,handleCancelEdit:E,duplicateWarning:b,setDuplicateWarning:y,sourceOptions:d,namespaceOptions:c}),[r,u,h,S,D,E,b,d,c]);return e(ce.Provider,{value:k,children:m})};function fe(e){const[a,r]=t(()=>0===e?"all":"sample"),[s,o]=t(()=>ue(e)),[l,d]=t(()=>"custom"===ue(e)?String(e):"");i(()=>{r(0===e?"all":"sample");const t=ue(e);o(t),d("custom"===t?String(e):"")},[e]);const c=n(()=>"all"===a?0:"custom"===s?Number(l)||0:Number(s),[a,s,l]);return{percentageMode:a,setPercentageMode:r,percentagePreset:s,setPercentagePreset:o,customPercentage:l,setCustomPercentage:d,resolvedPercentage:c}}const ge=({enabled:a,keepPercentage:r,children:s})=>{const[o,l]=t(a),d=fe(r);i(()=>{l(a)},[a]);const c=n(()=>U({enabled:o,keepPercentage:d.resolvedPercentage}),[o,d.resolvedPercentage]),m=n(()=>({formType:de.EditAutoNoisy,localEnabled:o,setLocalEnabled:l,...d,summary:c}),[o,d,c]);return e(ce.Provider,{value:m,children:s})},ve=({enabled:a,dropPercentage:r,children:s})=>{const[o,l]=t(a),d=fe(r);i(()=>{l(a)},[a]);const c=n(()=>L(o?{disabled:!1,percentageAtMost:d.resolvedPercentage}:null),[o,d.resolvedPercentage]),m=n(()=>({formType:de.EditAutoCostReduction,localEnabled:o,setLocalEnabled:l,...d,summary:c}),[o,d,c]);return e(ce.Provider,{value:m,children:s})},be=({enabled:a,children:r})=>{const[s,o]=t(a);i(()=>{o(a)},[a]);const l=n(()=>O(s?{disabled:!1}:null),[s]),d=n(()=>({formType:de.EditAutoHighlyRelevant,localEnabled:s,setLocalEnabled:o,summary:l}),[s,l]);return e(ce.Provider,{value:d,children:r})},ye=t=>{switch(t.formType){case de.Create:return e(pe,{...t});case de.View:return e(he,{...t});case de.EditAutoNoisy:return e(ge,{...t});case de.EditAutoCostReduction:return e(ve,{...t});case de.EditAutoHighlyRelevant:return e(be,{...t})}};function Se(e){const t=r(ce);if(!t)throw new Error("useSamplingRulesFormContext must be used within a SamplingRulesFormProvider");if(e&&t.formType!==e)throw new Error(`Expected formType "${e}" but found "${t.formType}"`);return t}const De={otelServiceName:"",currentStreamName:""},Ee=s(null),ke=({children:r})=>{const[s,o]=t(void 0),i=l(De),c=a(e=>{i.resetFormData((({serviceName:e,id:t})=>({otelServiceName:e||t.name||"",currentStreamName:""}))(e)),i.handleErrorChange(void 0,void 0,{}),o(void 0)},[]),m=a(()=>{const e=d(i.formData);return i.handleErrorChange(void 0,void 0,{}),o(void 0),{errorMessage:void 0,preparedFormData:e}},[i]),u=n(()=>({loadSource:c,genericForm:i,validateFormData:m,errorMessage:s}),[c,i,m,s]);return e(Ee.Provider,{value:u,children:r})},Fe=()=>{const e=r(Ee);if(!e)throw new Error("useSourceEditFormContext must be used within a SourceEditFormContextProvider");return e},Ce=new Set([P.StaticPod]),Ie=e=>{const t=e.workloads.filter(({selected:e})=>e).length,a=e.workloads.length;return{selectedCount:t,isAllSourced:t>0&&t===a,isSomeSourced:t>0&&t<a,isFutureApps:e.selected||!1}},Ne=(e,t,a)=>{if(t&&!e.name.toLowerCase().includes(t.toLowerCase()))return!1;if(a.showOnlySelected){const{isAllSourced:t,isSomeSourced:a,isFutureApps:n}=Ie(e);return t||a||n}return!0},Ae=(e,t,a)=>!(t&&!e.name.toLowerCase().includes(t.toLowerCase()))&&(!a.showOnlySelected||e.selected),we=s({snapshots:null,setSnapshots:()=>{},isFetching:!1,setIsFetching:()=>{},formData:[],handleSourceChange:()=>{},handleSelectAll:()=>{},formDiff:{},isFormDirty:!1}),Re=({children:r,selectedConnectionIds:s,initialInputs:o})=>{const{tier:l}=j(),c=l===T.Onprem,{selectedStreamName:m}=g(),[u,p]=t(!1),[h,f]=t(null),[v,b]=t([]);i(()=>{h&&b(e=>{const t=((e,t)=>d(((e,t)=>e.clusters.filter(({clusterId:e})=>!t||t.includes(e)))(e,t)))(h,s);return t.map(t=>{const a=e?.find(e=>e.clusterId===t.clusterId),n=a??t;if(o?.[t.clusterId]){const e=o[t.clusterId],a=d(n);return e.forEach(e=>{const t=a.namespaces.find(t=>t.name===e.namespace);if(t)if(e.name&&e.kind){const a=t.workloads.find(t=>t.name===e.name&&t.kind===e.kind);a&&(a.selected=e.selected)}else t.selected=e.selected,e.selected&&t.workloads.forEach(e=>{Ce.has(e.kind)&&!c||(e.selected=!0)})}),a}return n})})},[h,s,o]);const{formDiff:y,isFormDirty:S}=n(()=>{const e=((e,t,a)=>{const n={};return e.forEach(e=>{e.namespaces.forEach(r=>{const s=t.find(t=>t.clusterId===e.clusterId)?.namespaces.find(e=>e.name===r.name),o=r.selected||!1;if(o!==s?.selected)n[e.clusterId]||(n[e.clusterId]=[]),n[e.clusterId].push({namespace:r.name,selected:o,currentStreamName:a}),o?n[e.clusterId]=n[e.clusterId].filter(e=>e.namespace!==r.name||e.namespace===r.name&&(!e.name||!e.kind)):r.workloads.forEach(t=>{t.selected&&n[e.clusterId].push({namespace:r.name,name:t.name,kind:t.kind,selected:!0,currentStreamName:a})});else{const t=((e,t,a)=>{const n=[];return t.workloads.forEach(r=>{const s=e?.workloads.find(e=>e.name===r.name&&e.kind===r.kind);r.selected!==s?.selected&&n.push({namespace:t.name,name:r.name,kind:r.kind,selected:r.selected||!1,currentStreamName:a})}),n})(s,r,a);t.length>0&&(n[e.clusterId]||(n[e.clusterId]=[]),n[e.clusterId].push(...t))}})}),n})(v,h?.clusters||[],m);return{formDiff:e,isFormDirty:Object.keys(e).length>0}},[v,h,m]),D=a(e=>!c&&Ce.has(e),[c]),E=a(({clusterId:e,workloadId:t,selected:a,auto:n})=>{b(r=>{const s=d(r),o=s.findIndex(t=>t.clusterId===e);if(-1===o)return s;const i=s[o].namespaces.findIndex(e=>e.name===t.namespace);if(-1===i)return s;if(t.kind&&t.name){const e=s[o].namespaces[i].workloads.findIndex(e=>e.name===t.name&&e.kind===t.kind);if(-1===e)return s;const n="boolean"==typeof a?a:!s[o].namespaces[i].workloads[e].selected;if(s[o].namespaces[i].workloads[e].selected=n,n){s[o].namespaces[i].workloads.filter(e=>!D(e.kind)).every(e=>e.selected)&&(s[o].namespaces[i].selected=!0)}else s[o].namespaces[i].selected=!1}else{const e="boolean"==typeof n?n:!s[o].namespaces[i].selected;s[o].namespaces[i].selected=e,e?s[o].namespaces[i].workloads.forEach(e=>{D(e.kind)||(e.selected=!0)}):"boolean"!=typeof a||a||s[o].namespaces[i].workloads.forEach(e=>{e.selected=!1})}return s})},[D]),k=a(({clusterId:e,namespaceName:t,boolean:a,searchText:n="",searchBy:r="",filters:s})=>{b(o=>{const i=d(o),l=r===x.Namespace?n:"",c=r===x.Source?n:"",m=!!l||!!c||!!s?.showOnlySelected;return i.forEach((n,r)=>{e&&n.clusterId!==e||n.namespaces.forEach(({name:e,workloads:n},o)=>{if(!t||e===t)if(m)if(t){n.forEach((e,t)=>{a&&D(e.kind)||Ae(e,c,s||{showOnlySelected:!1})&&(i[r].namespaces[o].workloads[t].selected=a)});const e=i[r].namespaces[o].workloads.filter(e=>!D(e.kind)).every(e=>e.selected);i[r].namespaces[o].selected=e}else{if(!Ne(i[r].namespaces[o],l,s||{showOnlySelected:!1}))return;i[r].namespaces[o].selected=a,n.forEach((e,t)=>{a&&D(e.kind)||(i[r].namespaces[o].workloads[t].selected=a)})}else i[r].namespaces[o].selected=a,n.forEach((e,t)=>{a&&D(e.kind)||(i[r].namespaces[o].workloads[t].selected=a)})})}),i})},[D]);return e(we.Provider,{value:{snapshots:h,setSnapshots:f,isFetching:u,setIsFetching:p,formData:v,handleSourceChange:E,handleSelectAll:k,formDiff:y,isFormDirty:S},children:r})},Pe=()=>r(we);export{W as A,X as D,Ce as E,ie as R,de as S,ne as a,ye as b,ke as c,Re as d,Y as e,re as f,le as g,Se as h,Fe as i,Pe as j,Ae as k,Ne as l,Ie as m,J as u};
|