@prorobotech/openapi-k8s-toolkit 0.0.1-alpha.49 → 0.0.1-alpha.50
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.
|
@@ -456,7 +456,7 @@ ${n.comment}`:n.comment}this.doc.range[2]=n.offset;break}default:this.errors.pus
|
|
|
456
456
|
padding: 4px;
|
|
457
457
|
`,Ov=He.div`
|
|
458
458
|
height: ${({$designNewLayoutHeight:e})=>e?`${e}px`:"75vh"};
|
|
459
|
-
`,eo={ResetedFormList:Tv,Container:_v,OverflowContainer:kv,ControlsRowContainer:Iv,DebugContainer:Ov},vp=({name:e,arrKey:t,arrName:n,persistName:i,required:o,forceNonRequired:a,description:u,namespaceData:l,isAdditionalProperties:f,removeField:h,persistedControls:d,onRemoveByMinus:g})=>Array.isArray(e)&&e.length===2&&e[0]==="metadata"&&e[1]==="namespace"&&l?x.jsx(bv,{name:e,namespaceData:l,isAdditionalProperties:f,removeField:h}):x.jsx(wv,{name:e,arrKey:t,arrName:n,persistName:i,required:o,forceNonRequired:a,description:u,isAdditionalProperties:f,removeField:h,persistedControls:d,onRemoveByMinus:g}),Fv=({name:e,arrKey:t,arrName:n,persistName:i,required:o,forceNonRequired:a,description:u,isAdditionalProperties:l,removeField:f,options:h,persistedControls:d,onRemoveByMinus:g})=>x.jsx(Sv,{name:e,arrKey:t,arrName:n,persistName:i,required:o,forceNonRequired:a,description:u,isAdditionalProperties:l,removeField:f,options:h,persistedControls:d,onRemoveByMinus:g}),xp=({isNumber:e,name:t,arrKey:n,arrName:i,persistName:o,required:a,forceNonRequired:u,description:l,isAdditionalProperties:f,removeField:h,persistedControls:d,onRemoveByMinus:g})=>x.jsx(Av,{isNumber:e,name:t,arrKey:n,arrName:i,persistName:o,required:a,forceNonRequired:u,description:l,isAdditionalProperties:f,removeField:h,persistedControls:d,onRemoveByMinus:g}),Ep=({name:e,arrKey:t,arrName:n,persistName:i,required:o,forceNonRequired:a,description:u,isEdit:l,persistedControls:f,customProps:h,urlParams:d,onRemoveByMinus:g})=>x.jsx(mv,{name:e,arrKey:t,arrName:n,persistName:i,required:o,forceNonRequired:a,description:u,isEdit:l,customProps:h,persistedControls:f,urlParams:d,onRemoveByMinus:g}),Sp=({name:e,arrKey:t,arrName:n,persistName:i,required:o,forceNonRequired:a,description:u,isAdditionalProperties:l,removeField:f,persistedControls:h,customProps:d,urlParams:g,onRemoveByMinus:v})=>x.jsx(pv,{name:e,arrKey:t,arrName:n,persistName:i,required:o,forceNonRequired:a,description:u,isAdditionalProperties:l,removeField:f,persistedControls:h,customProps:d,urlParams:g,onRemoveByMinus:v}),Ap=({name:e,arrKey:t,arrName:n,description:i,makeValueUndefined:o,isAdditionalProperties:a,removeField:u,onRemoveByMinus:l})=>x.jsx(Ev,{name:e,arrKey:t,arrName:n,description:i,makeValueUndefined:o,isAdditionalProperties:a,removeField:u,onRemoveByMinus:l}),Cp=({schema:e,name:t,arrKey:n,arrName:i,expandName:o,persistName:a,required:u,forceNonRequired:l,description:f,makeValueUndefined:h,addField:d,isAdditionalProperties:g,removeField:v,isEdit:C,expandedControls:S,persistedControls:E,urlParams:w,onRemoveByMinus:T})=>e.type==="array"?x.jsxs(gr,{name:t,children:[x.jsx(Cv,{name:t,persistName:a,required:u,description:f,isAdditionalProperties:g,removeField:v,persistedControls:E,onRemoveByMinus:T}),x.jsx(eo.ResetedFormList,{name:i||t,rules:!l&&u?.includes(It(t))?[{validator:async(j,R)=>{if(!R||R.length<1)return Promise.reject(new Error("Field is required"))}}]:void 0,children:(j,{add:R,remove:_},{errors:O})=>x.jsxs(x.Fragment,{children:[j.map(F=>{const B=e.items?.type,W=e.items?.description,J=e.items;return x.jsxs(hv,{children:[B!=="object"&&x.jsxs(x.Fragment,{children:[B==="string"&&vp({name:Array.isArray(t)?[...t,F.name]:[t,F.name],arrKey:F.key,arrName:[F.name],persistName:a?Array.isArray(a)?[...a,F.name]:[a,F.name]:Array.isArray(t)?[...t,F.name]:[t,F.name],description:W,removeField:v,persistedControls:E,onRemoveByMinus:()=>_(F.name)}),(B==="number"||B==="integer")&&xp({isNumber:B==="number",name:Array.isArray(t)?[...t,F.name]:[t,F.name],arrKey:F.key,arrName:[F.name],persistName:a?Array.isArray(a)?[...a,F.name]:[a,F.name]:Array.isArray(t)?[...t,F.name]:[t,F.name],description:W,removeField:v,persistedControls:E,onRemoveByMinus:()=>_(F.name)}),(B==="rangeInputCpu"||B==="rangeInputMemory")&&Ep({name:Array.isArray(t)?[...t,F.name]:[t,F.name],arrKey:F.key,arrName:[F.name],persistName:a?Array.isArray(a)?[...a,F.name]:[a,F.name]:Array.isArray(t)?[...t,F.name]:[t,F.name],description:W,isEdit:C,persistedControls:E,customProps:e.items.customProps,urlParams:w,onRemoveByMinus:()=>_(F.name)}),B==="listInput"&&Sp({name:Array.isArray(t)?[...t,F.name]:[t,F.name],arrKey:F.key,arrName:[F.name],persistName:a?Array.isArray(a)?[...a,F.name]:[a,F.name]:Array.isArray(t)?[...t,F.name]:[t,F.name],description:W,removeField:v,persistedControls:E,customProps:e.items.customProps,urlParams:w,onRemoveByMinus:()=>_(F.name)}),B==="boolean"&&Ap({name:Array.isArray(t)?[...t,F.name]:[t,F.name],arrKey:F.key,arrName:[F.name],description:W,makeValueUndefined:h,removeField:v,onRemoveByMinus:()=>_(F.name)}),B==="array"&&Cp({schema:e.items,name:Array.isArray(t)?[...t,F.name]:[t,F.name],arrKey:F.key,arrName:[F.name],expandName:o?Array.isArray(o)?[...o,F.name]:[o,F.name]:Array.isArray(t)?[...t,F.name]:[t,F.name],persistName:a?Array.isArray(a)?[...a,F.name]:[a,F.name]:Array.isArray(t)?[...t,F.name]:[t,F.name],description:W,makeValueUndefined:h,addField:d,removeField:v,isEdit:C,expandedControls:S,persistedControls:E,urlParams:w,onRemoveByMinus:()=>_(F.name)})]}),B==="object"&&J?.properties&&_p({properties:J.properties,name:Array.isArray(t)?[...t,F.name]:[t,F.name],arrKey:F.key,arrName:[F.name],expandName:o?Array.isArray(o)?[...o,F.name]:[o,F.name]:Array.isArray(t)?[...t,F.name]:[t,F.name],persistName:a?Array.isArray(a)?[...a,F.name]:[a,F.name]:Array.isArray(t)?[...t,F.name]:[t,F.name],required:J.required,forceNonRequired:l,description:W,makeValueUndefined:h,addField:d,isAdditionalProperties:g,removeField:v,isEdit:C,expandedControls:S,persistedControls:E,urlParams:w,onRemoveByMinus:()=>_(F.name)})]},F.key)}),x.jsxs(kr,{children:[x.jsx(V.Button,{type:"text",size:"small",onClick:()=>R(),children:x.jsx(Xu,{})}),x.jsx(V.Form.ErrorList,{errors:O})]})]})},n!==void 0?n:Array.isArray(t)?t.slice(-1)[0]:t)]}):null,xa=({properties:e,name:t,arrKey:n,arrName:i,expandName:o,persistName:a,required:u,forceNonRequired:l,description:f,namespaceData:h,makeValueUndefined:d,addField:g,removeField:v,isEdit:C,expandedControls:S,persistedControls:E,urlParams:w})=>x.jsx(gr,{name:t,children:Object.keys(e).map(T=>{if(e[T].type==="string"&&e[T].enum)return Fv({name:Array.isArray(t)?[...t,String(T)]:[t,String(T)],arrKey:n,arrName:Array.isArray(i)?[...i,String(T)]:void 0,persistName:a?Array.isArray(a)?[...a,String(T)]:[a,String(T)]:void 0,required:u?.includes(T)?[String(T)]:void 0,forceNonRequired:l,description:e[T].description,isAdditionalProperties:e[T].isAdditionalProperties,removeField:v,persistedControls:E,options:e[T].enum||[]});if(e[T].type==="string"&&!e[T].enum||Object.keys(e[T]).includes("x-kubernetes-int-or-string"))return vp({name:Array.isArray(t)?[...t,String(T)]:[t,String(T)],arrKey:n,arrName:Array.isArray(i)?[...i,String(T)]:void 0,persistName:a?Array.isArray(a)?[...a,String(T)]:[a,String(T)]:void 0,required:u?.includes(T)?[String(T)]:void 0,forceNonRequired:l,description:e[T].description,namespaceData:h,isAdditionalProperties:e[T].isAdditionalProperties,removeField:v,persistedControls:E});if(e[T].type==="number"||e[T].type==="integer")return xp({isNumber:e[T].type==="number",name:Array.isArray(t)?[...t,String(T)]:[t,String(T)],arrKey:n,arrName:Array.isArray(i)?[...i,String(T)]:void 0,persistName:a?Array.isArray(a)?[...a,String(T)]:[a,String(T)]:void 0,required:u?.includes(T)?[String(T)]:void 0,forceNonRequired:l,description:e[T].description,isAdditionalProperties:e[T].isAdditionalProperties,removeField:v,persistedControls:E});if(e[T].type==="rangeInputCpu"||e[T].type==="rangeInputMemory")return Ep({name:Array.isArray(t)?[...t,String(T)]:[t,String(T)],arrKey:n,arrName:Array.isArray(i)?[...i,String(T)]:void 0,persistName:a?Array.isArray(a)?[...a,String(T)]:[a,String(T)]:void 0,required:u?.includes(T)?[String(T)]:void 0,forceNonRequired:l,description:e[T].description,isEdit:C,customProps:e[T].customProps,persistedControls:E,urlParams:w});if(e[T].type==="listInput")return Sp({name:Array.isArray(t)?[...t,String(T)]:[t,String(T)],arrKey:n,arrName:Array.isArray(i)?[...i,String(T)]:void 0,persistName:a?Array.isArray(a)?[...a,String(T)]:[a,String(T)]:void 0,required:u?.includes(T)?[String(T)]:void 0,forceNonRequired:l,description:e[T].description,customProps:e[T].customProps,removeField:v,persistedControls:E,urlParams:w});if(e[T].type==="boolean")return Ap({name:Array.isArray(t)?[...t,String(T)]:[t,String(T)],arrKey:n,arrName:Array.isArray(i)?[...i,String(T)]:void 0,description:e[T].description,makeValueUndefined:d,isAdditionalProperties:e[T].isAdditionalProperties,removeField:v});if(e[T].type==="array")return Cp({schema:e[T],name:Array.isArray(t)?[...t,String(T)]:[t,String(T)],arrKey:n,arrName:Array.isArray(i)?[...i,String(T)]:void 0,expandName:o?Array.isArray(o)?[...o,String(T)]:[o,String(T)]:void 0,persistName:a?Array.isArray(a)?[...a,String(T)]:[a,String(T)]:void 0,required:u?.includes(T)?[String(T)]:void 0,forceNonRequired:l,description:e[T].description,makeValueUndefined:d,addField:g,isAdditionalProperties:e[T].isAdditionalProperties,removeField:v,isEdit:C,expandedControls:S,persistedControls:E,urlParams:w});if(e[T].additionalProperties){const j=e[T].properties?xa({properties:e[T].properties,name:Array.isArray(t)?[...t,String(T)]:[t,String(T)],arrKey:n,arrName:Array.isArray(i)?[...i,String(T)]:void 0,expandName:o?Array.isArray(o)?[...o,String(T)]:[o,String(T)]:void 0,persistName:a?Array.isArray(a)?[...a,String(T)]:[a,String(T)]:void 0,required:e[T].required,forceNonRequired:l,description:e[T].description,namespaceData:h,makeValueUndefined:d,addField:g,removeField:v,isEdit:C,expandedControls:S,persistedControls:E,urlParams:w}):void 0;return x.jsx(wp,{name:t,persistName:a,hiddenFormName:Array.isArray(t)?[...t,String(T)]:[t,String(T)],description:f,removeField:v,expandedControls:S,persistedControls:E,collapseTitle:T,collapseFormName:Array.isArray(t)?[...t,String(T)]:[t,String(T)],data:j,inputProps:{addField:g,additionalProperties:e[T]?.additionalProperties}},Array.isArray(t)?[...t,String(T)].join("-"):[t,String(T)].join("-"))}return e[T].type==="object"&&e[T].properties?_p({properties:e[T].properties,name:Array.isArray(t)?[...t,String(T)]:[t,String(T)],arrKey:n,arrName:Array.isArray(i)?[...i,String(T)]:void 0,expandName:o?Array.isArray(o)?[...o,String(T)]:[o,String(T)]:void 0,persistName:a?Array.isArray(a)?[...a,String(T)]:[a,String(T)]:void 0,selfRequired:u?.includes(T),required:e[T].required,forceNonRequired:l||!u?.includes(T),description:e[T].description,namespaceData:h,makeValueUndefined:d,addField:g,isAdditionalProperties:e[T].isAdditionalProperties,removeField:v,isEdit:C,expandedControls:S,persistedControls:E,urlParams:w}):e[T].type==="object"&&e[T]["x-kubernetes-preserve-unknown-fields"]?x.jsx(V.Alert,{message:"x-kubernetes-preserve-unknown-fields",banner:!0},String(T)):null})}),_p=({properties:e,name:t,arrKey:n,arrName:i,expandName:o,persistName:a,selfRequired:u,required:l,forceNonRequired:f,description:h,namespaceData:d,makeValueUndefined:g,addField:v,isAdditionalProperties:C,removeField:S,isEdit:E,expandedControls:w,persistedControls:T,urlParams:j,onRemoveByMinus:R})=>{const _=xa({properties:e,name:t,arrKey:n,arrName:i,expandName:o,persistName:a,required:l,forceNonRequired:f,description:h,namespaceData:d,makeValueUndefined:g,addField:v,removeField:S,isEdit:E,expandedControls:w,persistedControls:T,urlParams:j});return x.jsx(wp,{name:t,persistName:a,selfRequired:u,description:h,isAdditionalProperties:C,removeField:S,expandedControls:w,persistedControls:T,collapseTitle:t,collapseFormName:o||t,data:_,onRemoveByMinus:R})},kp=({error:e,expandedKeys:t})=>{const i=(e.response?.data.message.split("is invalid: ")[1]).split(":")[0].trim().split("."),o=Array.from({length:i.length},(f,h)=>i.slice(0,h+1)),a=[...t,...o],u=new Set;return a.filter(f=>{const h=Array.isArray(f)?JSON.stringify(f):f;return u.has(h)?!1:(u.add(h),!0)})},Bv=({error:e,expandedKeys:t})=>{const n=e.errorFields.reduce((h,d)=>[...h,d.name],[]),o=n.filter(h=>Array.isArray(h)).flatMap(h=>Array.from({length:h.length},(d,g)=>h.slice(0,g+1))),a=n.filter(h=>!Array.isArray(h)),u=[...t,...a,...o],l=new Set;return u.filter(h=>{const d=Array.isArray(h)?JSON.stringify(h):h;return l.has(d)?!1:(l.add(d),!0)})},Dv=Q.lazy(()=>Promise.resolve().then(()=>Lb)),Tp=({cluster:e,theme:t,urlParams:n,urlParamsForPermissions:i,formsPrefills:o,staticProperties:a,required:u,hiddenPaths:l,expandedPaths:f,persistedPaths:h,prefillValuesSchema:d,prefillValueNamespaceOnly:g,isNameSpaced:v,isCreate:C,type:S,apiGroupApiVersion:E,kindName:w,typeName:T,backlink:j,designNewLayout:R,designNewLayoutHeight:_})=>{const{token:O}=V.theme.useToken(),F=vr.useNavigate(),[B]=V.Form.useForm(),W=V.Form.useWatch(["metadata","namespace"],B),[J,fe]=Q.useState(a),[le,de]=Q.useState(),be=k2(de,500),[Se,pe]=Q.useState(!1),[De,Re]=Q.useState(),[Te,Xe]=Q.useState(!1),[ve,ge]=Q.useState(f||[]),[Ke,Y]=Q.useState(h||[]),X=Q.useRef(null),re=Wr({apiGroup:S==="builtin"?"":i.apiGroup?i.apiGroup:"",typeName:i.typeName||"",namespace:v?W:"",clusterName:e,verb:"create",refetchInterval:!1,enabler:C===!0}),_e=Wr({apiGroup:S==="builtin"?"":i.apiGroup?i.apiGroup:"",typeName:i.typeName||"",namespace:v?W:"",clusterName:e,verb:"update",refetchInterval:!1,enabler:C!==!0}),ze=()=>{if(X.current){const{scrollHeight:Ae,clientHeight:Ue}=X.current;X.current.scrollTo({top:Ae-Ue,behavior:"smooth"})}B.validateFields().then(()=>{pe(!0),Re(void 0);const Ae=B.getFieldValue(["metadata","name"]),Ue=B.getFieldValue(["metadata","namespace"]),we={values:B.getFieldsValue(),persistedKeys:Ke,properties:J};$e.post("/openapi-bff/forms/formSync/getYamlValuesByFromValues",we).then(({data:pt})=>{const Wt=pt,Et=`/api/clusters/${e}/k8s/${S==="builtin"?"":"apis/"}${E}${v?`/namespaces/${Ue}`:""}/${T}/${C?"":Ae}`;C?Jo({endpoint:Et,body:Wt}).then(ht=>{console.log(ht),j&&F(j)}).catch(ht=>{if(console.log("Form submit error",ht),pe(!1),X.current){const{scrollHeight:Ce,clientHeight:Oe}=X.current;X.current.scrollTo({top:Ce-Oe,behavior:"smooth"})}if(Go(ht)&&ht.response?.data.message.includes("Required value")){const Ce=kp({error:ht,expandedKeys:ve});ge([...Ce])}Re(ht)}):Yo({endpoint:Et,body:Wt}).then(ht=>{console.log(ht),j&&F(j)}).catch(ht=>{if(console.log("Form submit error",ht),pe(!1),X.current){const{scrollHeight:Ce,clientHeight:Oe}=X.current;X.current.scrollTo({top:Ce-Oe,behavior:"smooth"})}if(Go(ht)&&ht.response?.data.message.includes("Required value")){const Ce=kp({error:ht,expandedKeys:ve});ge([...Ce])}Re(ht)})}).catch(pt=>{if(console.log("BFF Transform Error",pt),pe(!1),X.current){const{scrollHeight:Wt,clientHeight:Et}=X.current;X.current.scrollTo({top:Wt-Et,behavior:"smooth"})}Re(pt)})}).catch(Ae=>{console.log("Validating error",Ae);const Ue=Bv({error:Ae,expandedKeys:ve});ge([...Ue])})},xe=Q.useCallback(Ae=>{const Qe={values:Ae||B.getFieldsValue(),persistedKeys:Ke,properties:J};$e.post("/openapi-bff/forms/formSync/getYamlValuesByFromValues",Qe).then(({data:we})=>be(we))},[B,be,J,Ke]),Fe=Q.useCallback(Ae=>{const Ue={values:Ae,properties:J};$e.post("/openapi-bff/forms/formSync/getFormValuesByYaml",Ue).then(({data:Qe})=>{Qe&&B.setFieldsValue(Qe)})},[B,J]),Be=Q.useMemo(()=>{const Ae={};if(C&&(Mt.set(Ae,["apiVersion"],E==="api/v1"?"v1":E),Mt.set(Ae,["kind"],w)),o&&o.spec.values.forEach(({path:Qe,value:we})=>{Mt.set(Ae,Qe,we)}),g&&Mt.set(Ae,["metadata","namespace"],g),d){const Qe=Xh(d,J);Object.entries(Qe).forEach(([we,pt])=>{Mt.set(Ae,we.split("."),pt)})}return Object.fromEntries(Object.entries(Ae).sort(([Qe],[we])=>Qe.localeCompare(we)))},[o,g,C,E,w,d,J]);if(Q.useEffect(()=>{Be&&xe(Be)},[xe,Be]),Q.useEffect(()=>{let Ae=[];o&&(Ae=o.spec.values.flatMap(({path:pt})=>Qh(pt))),d&&typeof d=="object"&&d!==null&&(Ae=[...Ae,...sc(d)]);const Ue=[...ve,...Ae],Qe=new Set,we=Ue.filter(pt=>{const Wt=Array.isArray(pt)?JSON.stringify(pt):pt;return Qe.has(Wt)?!1:(Qe.add(Wt),!0)});ge([...we])},[E,o,d,S,T]),!J)return null;const Le=v?{filterSelectOptions:tc,selectValues:v.map(Ae=>({label:Ae,value:Ae})),disabled:!!g}:void 0,_t=Ae=>{B.setFieldValue(Ae,void 0),xe()},rn=({path:Ae,name:Ue,type:Qe,items:we,nestedProperties:pt,required:Wt})=>{const ht=(Array.isArray(Ae)?Ae:[Ae]).reduceRight((Kt,I)=>({[I]:{properties:Kt}}),{[Ue]:{type:Qe,items:we,properties:pt,required:Wt,isAdditionalProperties:!0}}),Ce=Mt.cloneDeep(J),Oe=Mt.merge(Ce,ht);console.log("newObject",ht),console.log("newProperties",Oe),fe(Oe)},Pt=({path:Ae})=>{const Qe=(Array.isArray(Ae)?Ae:[Ae]).flatMap(pt=>[pt,"properties"]).slice(0,-1),we=Mt.cloneDeep(J);Mt.unset(we,Qe),fe(we)},Rt=Ae=>{ge([...ve,Ae])},Lt=Ae=>{ge([...ve.filter(Ue=>JSON.stringify(Ue)!==JSON.stringify(Ae))])},wt=(Ae,Ue)=>{Ue&&B.getFieldValue(Ae)===void 0&&(Ue==="str"&&B.setFieldValue(Ae,""),Ue==="number"&&B.setFieldValue(Ae,0),Ue==="arr"&&B.setFieldValue(Ae,[]),Ue==="obj"&&B.setFieldValue(Ae,{})),Y([...Ke,Ae])},kn=Ae=>{console.log(Ae),Y([...Ke.filter(Ue=>JSON.stringify(Ue)!==JSON.stringify(Ae))])};return x.jsxs(x.Fragment,{children:[x.jsxs(eo.Container,{$designNewLayout:R,$designNewLayoutHeight:_,children:[x.jsx(eo.OverflowContainer,{ref:X,children:x.jsxs(V.Form,{form:B,initialValues:Be,onValuesChange:(Ae,Ue)=>xe(Ue),children:[x.jsx(Qw,{value:R,children:x.jsx(tv,{value:xe,children:x.jsx(rv,{value:{},children:x.jsx(Zw,{value:l,children:xa({properties:J,name:[],required:u,namespaceData:Le,makeValueUndefined:_t,addField:rn,removeField:Pt,isEdit:!C,expandedControls:{onExpandOpen:Rt,onExpandClose:Lt,expandedKeys:ve},persistedControls:{onPersistMark:wt,onPersistUnmark:kn,persistedKeys:Ke},urlParams:n})})})})}),!R&&x.jsxs(x.Fragment,{children:[x.jsx(Ar,{$space:10,$samespace:!0}),x.jsx(V.Alert,{type:"warning",message:"Only the data from the form will be sent. Empty fields will be removed recursively."})]}),C&&re.data?.status.allowed===!1&&x.jsxs(x.Fragment,{children:[x.jsx(Ar,{$space:10,$samespace:!0}),x.jsx(V.Alert,{type:"warning",message:"Insufficient rights to create"})]}),!C&&_e.data?.status.allowed===!1&&x.jsxs(x.Fragment,{children:[x.jsx(Ar,{$space:10,$samespace:!0}),x.jsx(V.Alert,{type:"warning",message:"Insufficient rights to edit"})]}),De&&x.jsxs(x.Fragment,{children:[x.jsx(Ar,{$space:10,$samespace:!0}),x.jsx(V.Alert,{message:`An error has occurred: ${De?.response?.data?.message} `,type:"error"})]})]})}),x.jsx("div",{children:x.jsx(Gw,{theme:t,currentValues:le||{},onChange:Fe})})]}),x.jsx(eo.ControlsRowContainer,{$bgColor:O.colorPrimaryBg,$designNewLayout:R,children:x.jsxs(V.Flex,{gap:R?10:16,align:"center",children:[x.jsx(V.Button,{type:"primary",onClick:ze,loading:Se,children:"Submit"}),j&&x.jsx(V.Button,{onClick:()=>F(j),children:"Cancel"}),x.jsx(V.Button,{onClick:()=>Xe(!0),icon:x.jsx(wn.BugOutlined,{})}),R&&x.jsx("div",{children:x.jsx(V.Typography.Text,{children:"Only the data from the form will be sent. Empty fields will be removed recursively."})})]})}),Te&&x.jsx(V.Modal,{open:Te,onOk:()=>Xe(!1),onCancel:()=>Xe(!1),onClose:()=>Xe(!1),title:"Debug for properties",width:"90vw",children:x.jsx(eo.DebugContainer,{$designNewLayoutHeight:_,children:x.jsx(Q.Suspense,{fallback:x.jsx("div",{children:"Loading..."}),children:x.jsx(Dv,{defaultLanguage:"json",width:"100%",height:_||"75vh",theme:"vs-dark",value:JSON.stringify(J,null,2),options:{theme:"vs-dark",minimap:{enabled:!1}}})})})})]})},Pv=({theme:e,cluster:t,urlParams:n,urlParamsForPermissions:i,data:o,customizationId:a,isCreate:u,backlink:l,modeData:f,designNewLayout:h,designNewLayoutHeight:d})=>{const[g,v]=Q.useState(),[C,S]=Q.useState(!1),[E,w]=Q.useState(!1),[T,j]=Q.useState(!1),R=Q.useCallback(()=>{f&&(f.onChange("Manual"),f.onDisabled())},[f]);return Q.useEffect(()=>{S(!0);const _={data:o,clusterName:t,customizationId:a};$e.post("/openapi-bff/forms/formPrepare/prepareFormProps",_).then(({data:O})=>{O.isNamespaced&&w(!0),O.result==="error"?(j(O.error),console.log(O.error),R()):v({properties:O.properties,required:O.required||[],hiddenPaths:O.hiddenPaths,expandedPaths:O.expandedPaths||[],persistedPaths:O.persistedPaths||[],kindName:O.kindName||"",formPrefills:O.formPrefills,namespacesData:O.namespacesData})}).catch(O=>{j(O.message)}).finally(()=>{S(!1)})},[t,o,a,R]),C?x.jsx(V.Spin,{}):f?.current==="Manual"?x.jsx(Xw,{theme:e,cluster:t,prefillValuesSchema:o.prefillValuesSchema,isCreate:u,type:o.type,isNameSpaced:E,apiGroupApiVersion:o.type==="builtin"?"api/v1":`${o.apiGroup}/${o.apiVersion}`,typeName:o.typeName,backlink:l,designNewLayout:h,designNewLayoutHeight:d}):!g?.properties&&!T||!g?.properties?null:T?x.jsx(V.Alert,{message:T,type:"error"}):x.jsx(Tp,{cluster:t,theme:e,urlParams:n,urlParamsForPermissions:i,formsPrefills:g.formPrefills,staticProperties:g.properties,required:g.required,hiddenPaths:g.hiddenPaths,expandedPaths:g.expandedPaths,persistedPaths:g.persistedPaths,prefillValuesSchema:o.prefillValuesSchema,prefillValueNamespaceOnly:o.prefillValueNamespaceOnly,isCreate:u,type:o.type,isNameSpaced:E?g.namespacesData:!1,apiGroupApiVersion:o.type==="builtin"?"api/v1":`${o.apiGroup}/${o.apiVersion}`,kindName:g.kindName,typeName:o.typeName,backlink:l,designNewLayout:h,designNewLayoutHeight:d},JSON.stringify(g.properties)+JSON.stringify(g.required)+JSON.stringify(g.hiddenPaths)+JSON.stringify(o))},Rv={CustomCard:He(V.Card)`
|
|
459
|
+
`,eo={ResetedFormList:Tv,Container:_v,OverflowContainer:kv,ControlsRowContainer:Iv,DebugContainer:Ov},vp=({name:e,arrKey:t,arrName:n,persistName:i,required:o,forceNonRequired:a,description:u,namespaceData:l,isAdditionalProperties:f,removeField:h,persistedControls:d,onRemoveByMinus:g})=>Array.isArray(e)&&e.length===2&&e[0]==="metadata"&&e[1]==="namespace"&&l?x.jsx(bv,{name:e,namespaceData:l,isAdditionalProperties:f,removeField:h}):x.jsx(wv,{name:e,arrKey:t,arrName:n,persistName:i,required:o,forceNonRequired:a,description:u,isAdditionalProperties:f,removeField:h,persistedControls:d,onRemoveByMinus:g}),Fv=({name:e,arrKey:t,arrName:n,persistName:i,required:o,forceNonRequired:a,description:u,isAdditionalProperties:l,removeField:f,options:h,persistedControls:d,onRemoveByMinus:g})=>x.jsx(Sv,{name:e,arrKey:t,arrName:n,persistName:i,required:o,forceNonRequired:a,description:u,isAdditionalProperties:l,removeField:f,options:h,persistedControls:d,onRemoveByMinus:g}),xp=({isNumber:e,name:t,arrKey:n,arrName:i,persistName:o,required:a,forceNonRequired:u,description:l,isAdditionalProperties:f,removeField:h,persistedControls:d,onRemoveByMinus:g})=>x.jsx(Av,{isNumber:e,name:t,arrKey:n,arrName:i,persistName:o,required:a,forceNonRequired:u,description:l,isAdditionalProperties:f,removeField:h,persistedControls:d,onRemoveByMinus:g}),Ep=({name:e,arrKey:t,arrName:n,persistName:i,required:o,forceNonRequired:a,description:u,isEdit:l,persistedControls:f,customProps:h,urlParams:d,onRemoveByMinus:g})=>x.jsx(mv,{name:e,arrKey:t,arrName:n,persistName:i,required:o,forceNonRequired:a,description:u,isEdit:l,customProps:h,persistedControls:f,urlParams:d,onRemoveByMinus:g}),Sp=({name:e,arrKey:t,arrName:n,persistName:i,required:o,forceNonRequired:a,description:u,isAdditionalProperties:l,removeField:f,persistedControls:h,customProps:d,urlParams:g,onRemoveByMinus:v})=>x.jsx(pv,{name:e,arrKey:t,arrName:n,persistName:i,required:o,forceNonRequired:a,description:u,isAdditionalProperties:l,removeField:f,persistedControls:h,customProps:d,urlParams:g,onRemoveByMinus:v}),Ap=({name:e,arrKey:t,arrName:n,description:i,makeValueUndefined:o,isAdditionalProperties:a,removeField:u,onRemoveByMinus:l})=>x.jsx(Ev,{name:e,arrKey:t,arrName:n,description:i,makeValueUndefined:o,isAdditionalProperties:a,removeField:u,onRemoveByMinus:l}),Cp=({schema:e,name:t,arrKey:n,arrName:i,expandName:o,persistName:a,required:u,forceNonRequired:l,description:f,makeValueUndefined:h,addField:d,isAdditionalProperties:g,removeField:v,isEdit:C,expandedControls:S,persistedControls:E,urlParams:w,onRemoveByMinus:T})=>e.type==="array"?x.jsxs(gr,{name:t,children:[x.jsx(Cv,{name:t,persistName:a,required:u,description:f,isAdditionalProperties:g,removeField:v,persistedControls:E,onRemoveByMinus:T}),x.jsx(eo.ResetedFormList,{name:i||t,rules:!l&&u?.includes(It(t))?[{validator:async(j,R)=>{if(!R||R.length<1)return Promise.reject(new Error("Field is required"))}}]:void 0,children:(j,{add:R,remove:_},{errors:O})=>x.jsxs(x.Fragment,{children:[j.map(F=>{const B=e.items?.type,W=e.items?.description,J=e.items;return x.jsxs(hv,{children:[B!=="object"&&x.jsxs(x.Fragment,{children:[B==="string"&&vp({name:Array.isArray(t)?[...t,F.name]:[t,F.name],arrKey:F.key,arrName:[F.name],persistName:a?Array.isArray(a)?[...a,F.name]:[a,F.name]:Array.isArray(t)?[...t,F.name]:[t,F.name],description:W,removeField:v,persistedControls:E,onRemoveByMinus:()=>_(F.name)}),(B==="number"||B==="integer")&&xp({isNumber:B==="number",name:Array.isArray(t)?[...t,F.name]:[t,F.name],arrKey:F.key,arrName:[F.name],persistName:a?Array.isArray(a)?[...a,F.name]:[a,F.name]:Array.isArray(t)?[...t,F.name]:[t,F.name],description:W,removeField:v,persistedControls:E,onRemoveByMinus:()=>_(F.name)}),(B==="rangeInputCpu"||B==="rangeInputMemory")&&Ep({name:Array.isArray(t)?[...t,F.name]:[t,F.name],arrKey:F.key,arrName:[F.name],persistName:a?Array.isArray(a)?[...a,F.name]:[a,F.name]:Array.isArray(t)?[...t,F.name]:[t,F.name],description:W,isEdit:C,persistedControls:E,customProps:e.items.customProps,urlParams:w,onRemoveByMinus:()=>_(F.name)}),B==="listInput"&&Sp({name:Array.isArray(t)?[...t,F.name]:[t,F.name],arrKey:F.key,arrName:[F.name],persistName:a?Array.isArray(a)?[...a,F.name]:[a,F.name]:Array.isArray(t)?[...t,F.name]:[t,F.name],description:W,removeField:v,persistedControls:E,customProps:e.items.customProps,urlParams:w,onRemoveByMinus:()=>_(F.name)}),B==="boolean"&&Ap({name:Array.isArray(t)?[...t,F.name]:[t,F.name],arrKey:F.key,arrName:[F.name],description:W,makeValueUndefined:h,removeField:v,onRemoveByMinus:()=>_(F.name)}),B==="array"&&Cp({schema:e.items,name:Array.isArray(t)?[...t,F.name]:[t,F.name],arrKey:F.key,arrName:[F.name],expandName:o?Array.isArray(o)?[...o,F.name]:[o,F.name]:Array.isArray(t)?[...t,F.name]:[t,F.name],persistName:a?Array.isArray(a)?[...a,F.name]:[a,F.name]:Array.isArray(t)?[...t,F.name]:[t,F.name],description:W,makeValueUndefined:h,addField:d,removeField:v,isEdit:C,expandedControls:S,persistedControls:E,urlParams:w,onRemoveByMinus:()=>_(F.name)})]}),B==="object"&&J?.properties&&_p({properties:J.properties,name:Array.isArray(t)?[...t,F.name]:[t,F.name],arrKey:F.key,arrName:[F.name],expandName:o?Array.isArray(o)?[...o,F.name]:[o,F.name]:Array.isArray(t)?[...t,F.name]:[t,F.name],persistName:a?Array.isArray(a)?[...a,F.name]:[a,F.name]:Array.isArray(t)?[...t,F.name]:[t,F.name],required:J.required,forceNonRequired:l,description:W,makeValueUndefined:h,addField:d,isAdditionalProperties:g,removeField:v,isEdit:C,expandedControls:S,persistedControls:E,urlParams:w,onRemoveByMinus:()=>_(F.name)})]},F.key)}),x.jsxs(kr,{children:[x.jsx(V.Button,{type:"text",size:"small",onClick:()=>R(),children:x.jsx(Xu,{})}),x.jsx(V.Form.ErrorList,{errors:O})]})]})},n!==void 0?n:Array.isArray(t)?t.slice(-1)[0]:t)]}):null,xa=({properties:e,name:t,arrKey:n,arrName:i,expandName:o,persistName:a,required:u,forceNonRequired:l,description:f,namespaceData:h,makeValueUndefined:d,addField:g,removeField:v,isEdit:C,expandedControls:S,persistedControls:E,urlParams:w})=>x.jsx(gr,{name:t,children:Object.keys(e).map(T=>{if(e[T].type==="string"&&e[T].enum)return Fv({name:Array.isArray(t)?[...t,String(T)]:[t,String(T)],arrKey:n,arrName:Array.isArray(i)?[...i,String(T)]:void 0,persistName:a?Array.isArray(a)?[...a,String(T)]:[a,String(T)]:void 0,required:u?.includes(T)?[String(T)]:void 0,forceNonRequired:l,description:e[T].description,isAdditionalProperties:e[T].isAdditionalProperties,removeField:v,persistedControls:E,options:e[T].enum||[]});if(e[T].type==="string"&&!e[T].enum||Object.keys(e[T]).includes("x-kubernetes-int-or-string"))return vp({name:Array.isArray(t)?[...t,String(T)]:[t,String(T)],arrKey:n,arrName:Array.isArray(i)?[...i,String(T)]:void 0,persistName:a?Array.isArray(a)?[...a,String(T)]:[a,String(T)]:void 0,required:u?.includes(T)?[String(T)]:void 0,forceNonRequired:l,description:e[T].description,namespaceData:h,isAdditionalProperties:e[T].isAdditionalProperties,removeField:v,persistedControls:E});if(e[T].type==="number"||e[T].type==="integer")return xp({isNumber:e[T].type==="number",name:Array.isArray(t)?[...t,String(T)]:[t,String(T)],arrKey:n,arrName:Array.isArray(i)?[...i,String(T)]:void 0,persistName:a?Array.isArray(a)?[...a,String(T)]:[a,String(T)]:void 0,required:u?.includes(T)?[String(T)]:void 0,forceNonRequired:l,description:e[T].description,isAdditionalProperties:e[T].isAdditionalProperties,removeField:v,persistedControls:E});if(e[T].type==="rangeInputCpu"||e[T].type==="rangeInputMemory")return Ep({name:Array.isArray(t)?[...t,String(T)]:[t,String(T)],arrKey:n,arrName:Array.isArray(i)?[...i,String(T)]:void 0,persistName:a?Array.isArray(a)?[...a,String(T)]:[a,String(T)]:void 0,required:u?.includes(T)?[String(T)]:void 0,forceNonRequired:l,description:e[T].description,isEdit:C,customProps:e[T].customProps,persistedControls:E,urlParams:w});if(e[T].type==="listInput")return Sp({name:Array.isArray(t)?[...t,String(T)]:[t,String(T)],arrKey:n,arrName:Array.isArray(i)?[...i,String(T)]:void 0,persistName:a?Array.isArray(a)?[...a,String(T)]:[a,String(T)]:void 0,required:u?.includes(T)?[String(T)]:void 0,forceNonRequired:l,description:e[T].description,customProps:e[T].customProps,removeField:v,persistedControls:E,urlParams:w});if(e[T].type==="boolean")return Ap({name:Array.isArray(t)?[...t,String(T)]:[t,String(T)],arrKey:n,arrName:Array.isArray(i)?[...i,String(T)]:void 0,description:e[T].description,makeValueUndefined:d,isAdditionalProperties:e[T].isAdditionalProperties,removeField:v});if(e[T].type==="array")return Cp({schema:e[T],name:Array.isArray(t)?[...t,String(T)]:[t,String(T)],arrKey:n,arrName:Array.isArray(i)?[...i,String(T)]:void 0,expandName:o?Array.isArray(o)?[...o,String(T)]:[o,String(T)]:void 0,persistName:a?Array.isArray(a)?[...a,String(T)]:[a,String(T)]:void 0,required:u?.includes(T)?[String(T)]:void 0,forceNonRequired:l,description:e[T].description,makeValueUndefined:d,addField:g,isAdditionalProperties:e[T].isAdditionalProperties,removeField:v,isEdit:C,expandedControls:S,persistedControls:E,urlParams:w});if(e[T].additionalProperties){const j=e[T].properties?xa({properties:e[T].properties,name:Array.isArray(t)?[...t,String(T)]:[t,String(T)],arrKey:n,arrName:Array.isArray(i)?[...i,String(T)]:void 0,expandName:o?Array.isArray(o)?[...o,String(T)]:[o,String(T)]:void 0,persistName:a?Array.isArray(a)?[...a,String(T)]:[a,String(T)]:void 0,required:e[T].required,forceNonRequired:l,description:e[T].description,namespaceData:h,makeValueUndefined:d,addField:g,removeField:v,isEdit:C,expandedControls:S,persistedControls:E,urlParams:w}):void 0;return x.jsx(wp,{name:t,persistName:a,hiddenFormName:Array.isArray(t)?[...t,String(T)]:[t,String(T)],description:f,removeField:v,expandedControls:S,persistedControls:E,collapseTitle:T,collapseFormName:Array.isArray(t)?[...t,String(T)]:[t,String(T)],data:j,inputProps:{addField:g,additionalProperties:e[T]?.additionalProperties}},Array.isArray(t)?[...t,String(T)].join("-"):[t,String(T)].join("-"))}return e[T].type==="object"&&e[T].properties?_p({properties:e[T].properties,name:Array.isArray(t)?[...t,String(T)]:[t,String(T)],arrKey:n,arrName:Array.isArray(i)?[...i,String(T)]:void 0,expandName:o?Array.isArray(o)?[...o,String(T)]:[o,String(T)]:void 0,persistName:a?Array.isArray(a)?[...a,String(T)]:[a,String(T)]:void 0,selfRequired:u?.includes(T),required:e[T].required,forceNonRequired:l||!u?.includes(T),description:e[T].description,namespaceData:h,makeValueUndefined:d,addField:g,isAdditionalProperties:e[T].isAdditionalProperties,removeField:v,isEdit:C,expandedControls:S,persistedControls:E,urlParams:w}):e[T].type==="object"&&e[T]["x-kubernetes-preserve-unknown-fields"]?x.jsx(V.Alert,{message:"x-kubernetes-preserve-unknown-fields",banner:!0},String(T)):null})}),_p=({properties:e,name:t,arrKey:n,arrName:i,expandName:o,persistName:a,selfRequired:u,required:l,forceNonRequired:f,description:h,namespaceData:d,makeValueUndefined:g,addField:v,isAdditionalProperties:C,removeField:S,isEdit:E,expandedControls:w,persistedControls:T,urlParams:j,onRemoveByMinus:R})=>{const _=xa({properties:e,name:t,arrKey:n,arrName:i,expandName:o,persistName:a,required:l,forceNonRequired:f,description:h,namespaceData:d,makeValueUndefined:g,addField:v,removeField:S,isEdit:E,expandedControls:w,persistedControls:T,urlParams:j});return x.jsx(wp,{name:t,persistName:a,selfRequired:u,description:h,isAdditionalProperties:C,removeField:S,expandedControls:w,persistedControls:T,collapseTitle:t,collapseFormName:o||t,data:_,onRemoveByMinus:R})},kp=({error:e,expandedKeys:t})=>{const i=(e.response?.data.message.split("is invalid: ")[1]).split(":")[0].trim().split("."),o=Array.from({length:i.length},(f,h)=>i.slice(0,h+1)),a=[...t,...o],u=new Set;return a.filter(f=>{const h=Array.isArray(f)?JSON.stringify(f):f;return u.has(h)?!1:(u.add(h),!0)})},Bv=({error:e,expandedKeys:t})=>{const n=e.errorFields.reduce((h,d)=>[...h,d.name],[]),o=n.filter(h=>Array.isArray(h)).flatMap(h=>Array.from({length:h.length},(d,g)=>h.slice(0,g+1))),a=n.filter(h=>!Array.isArray(h)),u=[...t,...a,...o],l=new Set;return u.filter(h=>{const d=Array.isArray(h)?JSON.stringify(h):h;return l.has(d)?!1:(l.add(d),!0)})},Dv=Q.lazy(()=>Promise.resolve().then(()=>Lb)),Tp=({cluster:e,theme:t,urlParams:n,urlParamsForPermissions:i,formsPrefills:o,staticProperties:a,required:u,hiddenPaths:l,expandedPaths:f,persistedPaths:h,prefillValuesSchema:d,prefillValueNamespaceOnly:g,isNameSpaced:v,isCreate:C,type:S,apiGroupApiVersion:E,kindName:w,typeName:T,backlink:j,designNewLayout:R,designNewLayoutHeight:_})=>{const{token:O}=V.theme.useToken(),F=vr.useNavigate(),[B]=V.Form.useForm(),W=V.Form.useWatch(["metadata","namespace"],B),[J,fe]=Q.useState(a),[le,de]=Q.useState(),be=k2(de,500),[Se,pe]=Q.useState(!1),[De,Re]=Q.useState(),[Te,Xe]=Q.useState(!1),[ve,ge]=Q.useState(f||[]),[Ke,Y]=Q.useState(h||[]),X=Q.useRef(null),re=Wr({apiGroup:S==="builtin"?"":i.apiGroup?i.apiGroup:"",typeName:i.typeName||"",namespace:v?W:"",clusterName:e,verb:"create",refetchInterval:!1,enabler:C===!0}),_e=Wr({apiGroup:S==="builtin"?"":i.apiGroup?i.apiGroup:"",typeName:i.typeName||"",namespace:v?W:"",clusterName:e,verb:"update",refetchInterval:!1,enabler:C!==!0}),ze=()=>{if(X.current){const{scrollHeight:Ae,clientHeight:Ue}=X.current;X.current.scrollTo({top:Ae-Ue,behavior:"smooth"})}B.validateFields().then(()=>{pe(!0),Re(void 0);const Ae=B.getFieldValue(["metadata","name"]),Ue=B.getFieldValue(["metadata","namespace"]),we={values:B.getFieldsValue(),persistedKeys:Ke,properties:J};$e.post(`/api/clusters/${e}/openapi-bff/forms/formSync/getYamlValuesByFromValues`,we).then(({data:pt})=>{const Wt=pt,Et=`/api/clusters/${e}/k8s/${S==="builtin"?"":"apis/"}${E}${v?`/namespaces/${Ue}`:""}/${T}/${C?"":Ae}`;C?Jo({endpoint:Et,body:Wt}).then(ht=>{console.log(ht),j&&F(j)}).catch(ht=>{if(console.log("Form submit error",ht),pe(!1),X.current){const{scrollHeight:Ce,clientHeight:Oe}=X.current;X.current.scrollTo({top:Ce-Oe,behavior:"smooth"})}if(Go(ht)&&ht.response?.data.message.includes("Required value")){const Ce=kp({error:ht,expandedKeys:ve});ge([...Ce])}Re(ht)}):Yo({endpoint:Et,body:Wt}).then(ht=>{console.log(ht),j&&F(j)}).catch(ht=>{if(console.log("Form submit error",ht),pe(!1),X.current){const{scrollHeight:Ce,clientHeight:Oe}=X.current;X.current.scrollTo({top:Ce-Oe,behavior:"smooth"})}if(Go(ht)&&ht.response?.data.message.includes("Required value")){const Ce=kp({error:ht,expandedKeys:ve});ge([...Ce])}Re(ht)})}).catch(pt=>{if(console.log("BFF Transform Error",pt),pe(!1),X.current){const{scrollHeight:Wt,clientHeight:Et}=X.current;X.current.scrollTo({top:Wt-Et,behavior:"smooth"})}Re(pt)})}).catch(Ae=>{console.log("Validating error",Ae);const Ue=Bv({error:Ae,expandedKeys:ve});ge([...Ue])})},xe=Q.useCallback(Ae=>{const Qe={values:Ae||B.getFieldsValue(),persistedKeys:Ke,properties:J};$e.post(`/api/clusters/${e}/openapi-bff/forms/formSync/getYamlValuesByFromValues`,Qe).then(({data:we})=>be(we))},[B,be,J,Ke,e]),Fe=Q.useCallback(Ae=>{const Ue={values:Ae,properties:J};$e.post(`/api/clusters/${e}/openapi-bff/forms/formSync/getFormValuesByYaml`,Ue).then(({data:Qe})=>{Qe&&B.setFieldsValue(Qe)})},[B,J,e]),Be=Q.useMemo(()=>{const Ae={};if(C&&(Mt.set(Ae,["apiVersion"],E==="api/v1"?"v1":E),Mt.set(Ae,["kind"],w)),o&&o.spec.values.forEach(({path:Qe,value:we})=>{Mt.set(Ae,Qe,we)}),g&&Mt.set(Ae,["metadata","namespace"],g),d){const Qe=Xh(d,J);Object.entries(Qe).forEach(([we,pt])=>{Mt.set(Ae,we.split("."),pt)})}return Object.fromEntries(Object.entries(Ae).sort(([Qe],[we])=>Qe.localeCompare(we)))},[o,g,C,E,w,d,J]);if(Q.useEffect(()=>{Be&&xe(Be)},[xe,Be]),Q.useEffect(()=>{let Ae=[];o&&(Ae=o.spec.values.flatMap(({path:pt})=>Qh(pt))),d&&typeof d=="object"&&d!==null&&(Ae=[...Ae,...sc(d)]);const Ue=[...ve,...Ae],Qe=new Set,we=Ue.filter(pt=>{const Wt=Array.isArray(pt)?JSON.stringify(pt):pt;return Qe.has(Wt)?!1:(Qe.add(Wt),!0)});ge([...we])},[E,o,d,S,T]),!J)return null;const Le=v?{filterSelectOptions:tc,selectValues:v.map(Ae=>({label:Ae,value:Ae})),disabled:!!g}:void 0,_t=Ae=>{B.setFieldValue(Ae,void 0),xe()},rn=({path:Ae,name:Ue,type:Qe,items:we,nestedProperties:pt,required:Wt})=>{const ht=(Array.isArray(Ae)?Ae:[Ae]).reduceRight((Kt,I)=>({[I]:{properties:Kt}}),{[Ue]:{type:Qe,items:we,properties:pt,required:Wt,isAdditionalProperties:!0}}),Ce=Mt.cloneDeep(J),Oe=Mt.merge(Ce,ht);console.log("newObject",ht),console.log("newProperties",Oe),fe(Oe)},Pt=({path:Ae})=>{const Qe=(Array.isArray(Ae)?Ae:[Ae]).flatMap(pt=>[pt,"properties"]).slice(0,-1),we=Mt.cloneDeep(J);Mt.unset(we,Qe),fe(we)},Rt=Ae=>{ge([...ve,Ae])},Lt=Ae=>{ge([...ve.filter(Ue=>JSON.stringify(Ue)!==JSON.stringify(Ae))])},wt=(Ae,Ue)=>{Ue&&B.getFieldValue(Ae)===void 0&&(Ue==="str"&&B.setFieldValue(Ae,""),Ue==="number"&&B.setFieldValue(Ae,0),Ue==="arr"&&B.setFieldValue(Ae,[]),Ue==="obj"&&B.setFieldValue(Ae,{})),Y([...Ke,Ae])},kn=Ae=>{console.log(Ae),Y([...Ke.filter(Ue=>JSON.stringify(Ue)!==JSON.stringify(Ae))])};return x.jsxs(x.Fragment,{children:[x.jsxs(eo.Container,{$designNewLayout:R,$designNewLayoutHeight:_,children:[x.jsx(eo.OverflowContainer,{ref:X,children:x.jsxs(V.Form,{form:B,initialValues:Be,onValuesChange:(Ae,Ue)=>xe(Ue),children:[x.jsx(Qw,{value:R,children:x.jsx(tv,{value:xe,children:x.jsx(rv,{value:{},children:x.jsx(Zw,{value:l,children:xa({properties:J,name:[],required:u,namespaceData:Le,makeValueUndefined:_t,addField:rn,removeField:Pt,isEdit:!C,expandedControls:{onExpandOpen:Rt,onExpandClose:Lt,expandedKeys:ve},persistedControls:{onPersistMark:wt,onPersistUnmark:kn,persistedKeys:Ke},urlParams:n})})})})}),!R&&x.jsxs(x.Fragment,{children:[x.jsx(Ar,{$space:10,$samespace:!0}),x.jsx(V.Alert,{type:"warning",message:"Only the data from the form will be sent. Empty fields will be removed recursively."})]}),C&&re.data?.status.allowed===!1&&x.jsxs(x.Fragment,{children:[x.jsx(Ar,{$space:10,$samespace:!0}),x.jsx(V.Alert,{type:"warning",message:"Insufficient rights to create"})]}),!C&&_e.data?.status.allowed===!1&&x.jsxs(x.Fragment,{children:[x.jsx(Ar,{$space:10,$samespace:!0}),x.jsx(V.Alert,{type:"warning",message:"Insufficient rights to edit"})]}),De&&x.jsxs(x.Fragment,{children:[x.jsx(Ar,{$space:10,$samespace:!0}),x.jsx(V.Alert,{message:`An error has occurred: ${De?.response?.data?.message} `,type:"error"})]})]})}),x.jsx("div",{children:x.jsx(Gw,{theme:t,currentValues:le||{},onChange:Fe})})]}),x.jsx(eo.ControlsRowContainer,{$bgColor:O.colorPrimaryBg,$designNewLayout:R,children:x.jsxs(V.Flex,{gap:R?10:16,align:"center",children:[x.jsx(V.Button,{type:"primary",onClick:ze,loading:Se,children:"Submit"}),j&&x.jsx(V.Button,{onClick:()=>F(j),children:"Cancel"}),x.jsx(V.Button,{onClick:()=>Xe(!0),icon:x.jsx(wn.BugOutlined,{})}),R&&x.jsx("div",{children:x.jsx(V.Typography.Text,{children:"Only the data from the form will be sent. Empty fields will be removed recursively."})})]})}),Te&&x.jsx(V.Modal,{open:Te,onOk:()=>Xe(!1),onCancel:()=>Xe(!1),onClose:()=>Xe(!1),title:"Debug for properties",width:"90vw",children:x.jsx(eo.DebugContainer,{$designNewLayoutHeight:_,children:x.jsx(Q.Suspense,{fallback:x.jsx("div",{children:"Loading..."}),children:x.jsx(Dv,{defaultLanguage:"json",width:"100%",height:_||"75vh",theme:"vs-dark",value:JSON.stringify(J,null,2),options:{theme:"vs-dark",minimap:{enabled:!1}}})})})})]})},Pv=({theme:e,cluster:t,urlParams:n,urlParamsForPermissions:i,data:o,customizationId:a,isCreate:u,backlink:l,modeData:f,designNewLayout:h,designNewLayoutHeight:d})=>{const[g,v]=Q.useState(),[C,S]=Q.useState(!1),[E,w]=Q.useState(!1),[T,j]=Q.useState(!1),R=Q.useCallback(()=>{f&&(f.onChange("Manual"),f.onDisabled())},[f]);return Q.useEffect(()=>{S(!0);const _={data:o,clusterName:t,customizationId:a};$e.post(`/api/clusters/${t}/openapi-bff/forms/formPrepare/prepareFormProps`,_).then(({data:O})=>{O.isNamespaced&&w(!0),O.result==="error"?(j(O.error),console.log(O.error),R()):v({properties:O.properties,required:O.required||[],hiddenPaths:O.hiddenPaths,expandedPaths:O.expandedPaths||[],persistedPaths:O.persistedPaths||[],kindName:O.kindName||"",formPrefills:O.formPrefills,namespacesData:O.namespacesData})}).catch(O=>{j(O.message)}).finally(()=>{S(!1)})},[t,o,a,R]),C?x.jsx(V.Spin,{}):f?.current==="Manual"?x.jsx(Xw,{theme:e,cluster:t,prefillValuesSchema:o.prefillValuesSchema,isCreate:u,type:o.type,isNameSpaced:E,apiGroupApiVersion:o.type==="builtin"?"api/v1":`${o.apiGroup}/${o.apiVersion}`,typeName:o.typeName,backlink:l,designNewLayout:h,designNewLayoutHeight:d}):!g?.properties&&!T||!g?.properties?null:T?x.jsx(V.Alert,{message:T,type:"error"}):x.jsx(Tp,{cluster:t,theme:e,urlParams:n,urlParamsForPermissions:i,formsPrefills:g.formPrefills,staticProperties:g.properties,required:g.required,hiddenPaths:g.hiddenPaths,expandedPaths:g.expandedPaths,persistedPaths:g.persistedPaths,prefillValuesSchema:o.prefillValuesSchema,prefillValueNamespaceOnly:o.prefillValueNamespaceOnly,isCreate:u,type:o.type,isNameSpaced:E?g.namespacesData:!1,apiGroupApiVersion:o.type==="builtin"?"api/v1":`${o.apiGroup}/${o.apiVersion}`,kindName:g.kindName,typeName:o.typeName,backlink:l,designNewLayout:h,designNewLayoutHeight:d},JSON.stringify(g.properties)+JSON.stringify(g.required)+JSON.stringify(g.hiddenPaths)+JSON.stringify(o))},Rv={CustomCard:He(V.Card)`
|
|
460
460
|
display: flex;
|
|
461
461
|
justify-content: center;
|
|
462
462
|
align-items: center;
|
|
@@ -567,5 +567,5 @@ ${n.comment}`:n.comment}this.doc.range[2]=n.offset;break}default:this.errors.pus
|
|
|
567
567
|
-webkit-box-orient: vertical;
|
|
568
568
|
line-clamp: 1;
|
|
569
569
|
word-break: break-all;
|
|
570
|
-
`;const ix={ActionMenuPlaceholder:rx},Fp=({clusterName:e,namespace:t,baseApiGroup:n,baseApiVersion:i,baseProjectApiGroup:o,baseProjectVersion:a,mpResourceName:u,projectResourceName:l,baseprefix:f,accessGroups:h,children:d})=>{const g=vr.useNavigate(),{data:v,isLoading:C}=nn({uri:`/api/clusters/${e}/k8s/apis/${n}/${i}/${u}/`,refetchInterval:5e3,queryKey:["marketplacePanels",e||"no-cluster"],isEnabled:e!==void 0}),{data:S,isLoading:E,error:w}=nn({uri:`/api/clusters/${e}/k8s/apis/${o}/${a}/${l}/${t}`,refetchInterval:5e3,queryKey:["projects",e||"no-cluster"],isEnabled:e!==void 0}),[T,j]=Q.useState(!1),R=Wr({apiGroup:o,typeName:l,namespace:"",clusterName:e||"",verb:"update",refetchInterval:!1}),_=Wr({apiGroup:o,typeName:l,namespace:"",clusterName:e||"",verb:"delete",refetchInterval:!1}),O=Q.useCallback(()=>{g(`/${f}/${e}/forms/apis/${o}/${a}/${l}/${t}?backlink=${f}/clusters/${e}`)},[f,e,t,o,a,l,g]);if(E)return x.jsx(V.Spin,{});if(!S||w)return null;const F=S.status.conditions.find(({type:B})=>B==="Ready");return x.jsxs(x.Fragment,{children:[x.jsxs(V.Flex,{justify:"space-between",children:[x.jsx("div",{children:d}),x.jsx("div",{children:x.jsxs(V.Flex,{gap:24,vertical:!0,children:[x.jsx(V.Flex,{justify:"flex-end",children:F?.status==="True"&&(R.data?.status.allowed||_.data?.status.allowed)?x.jsx(tx,{onDelete:_.data?.status.allowed?()=>{j(!0)}:void 0,onUpdate:R.data?.status.allowed?O:void 0}):x.jsx(ix.ActionMenuPlaceholder,{})}),x.jsx(nx,{accessGroups:h})]})})]}),x.jsx(Ar,{$space:24,$samespace:!0}),x.jsx(V.Typography.Text,{type:"secondary",children:"Added Products"}),x.jsx(Ar,{$space:12,$samespace:!0}),x.jsxs(V.Flex,{gap:22,wrap:!0,children:[C&&x.jsx(V.Spin,{}),e&&t&&v?.items.map(({spec:B})=>B).sort().map(({name:B,description:W,icon:J,type:fe,pathToNav:le,typeName:de,apiGroup:be,apiVersion:Se,tags:pe,disabled:De})=>x.jsx(Mc,{baseprefix:f,description:W,disabled:De,icon:J,isEditMode:!1,name:B,clusterName:e,namespace:t,type:fe,pathToNav:le,typeName:de,apiGroup:be,apiVersion:Se,tags:pe,addedMode:!0},B))]}),T&&x.jsx(Yu,{name:S.metadata.name,onClose:()=>{j(!1),g(`${f}/clusters/${e}`)},endpoint:`/api/clusters/${e}/k8s/apis/${o}/${a}/${l}/${S.metadata.name}`})]})},Uc=({items:e,components:t})=>x.jsx(x.Fragment,{children:e.map((n,i)=>{const o=t[n.type];if(!o)return x.jsxs("div",{children:["❌ No component registered for type: ",String(n.type)]},i);let a=n.data;if(typeof n.data=="object"&&n.data!==null&&"items"in n.data&&Array.isArray(n.data.items)){const{items:l,...f}=n.data;a={...f,items:l.map(h=>({...h,children:Array.isArray(h.children)?x.jsx(Uc,{items:h.children,components:t}):h.children}))}}const u=n.children?x.jsx(Uc,{items:n.children,components:t}):null;return x.jsx(Q.Fragment,{children:x.jsx(o,{data:a,children:u})},i)})}),Bp=e=>x.jsx(Uc,{...e}),sx=({data:e,children:t})=>{const{id:n,text:i,...o}=e;return x.jsxs(V.Typography.Text,{...o,children:[i,t]})},ox=({data:e,children:t})=>{const{id:n,...i}=e;return x.jsx(V.Card,{...i,children:t})},ax=({data:e,children:t})=>{const{id:n,...i}=e;return x.jsx(V.Flex,{...i,children:t})},ux=({data:e,children:t})=>{const{id:n,...i}=e;return x.jsx(V.Row,{...i,children:t})},cx=({data:e,children:t})=>{const{id:n,...i}=e;return x.jsx(V.Col,{...i,children:t})},lx=({data:e,children:t})=>{const{id:n,...i}=e;return x.jsx(V.Tabs,{...i,children:t})},fx=({data:e,children:t})=>{const{id:n,text:i,...o}=e;return x.jsxs(V.Button,{...o,children:[e.text,t]})},Dp=()=>{const e=Q.createContext(null);return{Provider:({children:i,value:o})=>{const a=Q.useMemo(()=>o,Object.values(o));return x.jsx(e.Provider,{value:a,children:i})},useTypedContext:()=>{const i=Q.useContext(e);if(!i)throw new Error("useTypedContext must be used within a Provider");return i}}},Pp=Dp(),hx=Pp.Provider,to=Pp.useTypedContext,dx=({data:e})=>{const n=to().partsOfUrl.reduce((o,a,u)=>(o[u.toString()]=a,o),{}),i=At({template:e.text,replaceValues:n});return x.jsx("span",{children:i})},Rp=Q.createContext(void 0),px=({urls:e,children:t})=>{const n=vn.useQueries({queries:e.map((f,h)=>({queryKey:["multi",h,f],queryFn:async()=>(await $e.get(f)).data}))}),i={},o=[];n.forEach((f,h)=>{i[`req${h}`]=f.data,o[h]=f.error??null});const a=n.some(f=>f.isLoading),u=n.some(f=>f.isError),l=Q.useMemo(()=>({data:i,isLoading:a,isError:u,errors:o}),[JSON.stringify(i),a,u,JSON.stringify(o)]);return x.jsx(Rp.Provider,{value:l,children:t})},Ea=()=>{const e=Q.useContext(Rp);if(!e)throw new Error("useMultiQuery must be used within a MultiQueryProvider");return e},gx={DefaultDiv:({data:e,children:t})=>{const{id:n,...i}=e;return x.jsx("div",{...i,children:t})},antdText:sx,antdCard:ox,antdFlex:ax,antdRow:ux,antdCol:cx,antdTabs:lx,antdButton:fx,partsOfUrl:dx,multiQuery:({data:e})=>{const{data:t,isLoading:n,isError:i,errors:o}=Ea(),a=Q.useMemo(()=>e?.text?e.text.replace(/\{reqs\[(\d+)\]\[((?:\s*['"][^'"]+['"]\s*,?)+)\]\}/g,(u,l,f)=>{try{const h=parseInt(l,10),d=Array.from(f.matchAll(/['"]([^'"]+)['"]/g)).map(v=>v[1]),g=qr.get(t[`req${h}`],d);return g!=null?String(g):""}catch{return u}}):"",[e?.text,t]);return n?x.jsx("div",{children:"Loading..."}):i?x.jsxs("div",{children:[x.jsx("h4",{children:"Errors:"}),x.jsx("ul",{children:o.map((u,l)=>u&&x.jsx("li",{children:u.message},l))})]}):x.jsx("span",{children:a})},parsedText:({data:e})=>{const{data:t,isLoading:n,isError:i,errors:o}=Ea(),a=to(),u=Q.useMemo(()=>e?.text?e.text.replace(/\{reqs\[(\d+)\]\[((?:\s*['"][^'"]+['"]\s*,?)+)\]\}/g,(h,d,g)=>{try{const v=parseInt(d,10),C=Array.from(g.matchAll(/['"]([^'"]+)['"]/g)).map(E=>E[1]),S=qr.get(t[`req${v}`],C);return S!=null?String(S):""}catch{return h}}):"",[e?.text,t]);if(n)return x.jsx("div",{children:"Loading..."});if(i)return x.jsxs("div",{children:[x.jsx("h4",{children:"Errors:"}),x.jsx("ul",{children:o.map((h,d)=>h&&x.jsx("li",{children:h.message},d))})]});const l=a.partsOfUrl.reduce((h,d,g)=>(h[g.toString()]=d,h),{}),f=At({template:u,replaceValues:l});return x.jsx("span",{children:f})},ProjectInfoCard:({data:e,children:t})=>{const{id:n,clusterNamePartOfUrl:i,namespacePartOfUrl:o,accessGroups:a,...u}=e,{data:l,isError:f,errors:h}=Ea(),g=to().partsOfUrl.reduce((E,w,T)=>(E[T.toString()]=w,E),{}),v=At({template:i,replaceValues:g}),C=At({template:o,replaceValues:g}),S=a.map(E=>{const w=E.replace(/\{reqs\[(\d+)\]\[((?:\s*['"][^'"]+['"]\s*,?)+)\]\}/g,(j,R,_)=>{try{const O=parseInt(R,10),F=Array.from(_.matchAll(/['"]([^'"]+)['"]/g)).map(W=>W[1]),B=qr.get(l[`req${O}`],F);return B!=null?String(B):""}catch{return j}});return At({template:w,replaceValues:g})});return f?x.jsxs("div",{children:[x.jsx("h4",{children:"Errors:"}),x.jsx("ul",{children:h.map((E,w)=>E&&x.jsx("li",{children:E.message},w))})]}):x.jsx(Fp,{clusterName:v,namespace:C,accessGroups:S,...u,children:t})},MarketplaceCard:({data:e,children:t})=>{const{id:n,clusterNamePartOfUrl:i,namespacePartOfUrl:o,...a}=e,l=to().partsOfUrl.reduce((d,g,v)=>(d[v.toString()]=g,d),{}),f=At({template:i,replaceValues:l}),h=At({template:o,replaceValues:l});return x.jsx(Op,{clusterName:f,namespace:h,...a})},ContentCard:({data:e,children:t})=>{const{id:n,...i}=e;return x.jsx(Ih,{...i,children:t})},Spacer:({data:e,children:t})=>{const{id:n,...i}=e;return x.jsx(Ar,{...i})},StatusText:({data:e,children:t})=>{const{id:n,requestIndex:i,jsonPath:o,criteria:a,valueToCompare:u,successText:l,errorText:f,...h}=e,{data:d,isLoading:g,isError:v,errors:C}=Ea();let S;try{[S]=Kh.query(d[`req${i}`],`$${o}`)}catch(w){return x.jsxs("div",{children:[x.jsx("h4",{children:"Errors:"}),x.jsx("ul",{children:JSON.stringify(w)})]})}const E=a==="equals"?u===S:u!==S;return g?x.jsx("div",{children:"Loading..."}):v?x.jsxs("div",{children:[x.jsx("h4",{children:"Errors:"}),x.jsx("ul",{children:C.map((w,T)=>w&&x.jsx("li",{children:w.message},T))})]}):x.jsxs(V.Typography.Text,{type:E?"success":"danger",...h,children:[E?l:f,t]})},SidebarProvider:({data:e,children:t})=>{const{id:n,...i}=e,a=to().partsOfUrl.reduce((u,l,f)=>(u[f.toString()]=l,u),{});return x.jsx(Lh,{replaceValues:a,...i})}},Lp=({urls:e,locationPathname:t})=>{const n=t.split("/").reduce((i,o,a)=>(i[a.toString()]=o,i),{});return e.map(i=>At({template:i,replaceValues:n}))},yx=e=>{const t=vr.useLocation(),{urlsToFetch:n}=e,i=Lp({urls:n,locationPathname:t.pathname});return x.jsx(hx,{value:{partsOfUrl:t.pathname.split("/")},children:x.jsx(px,{urls:i,children:x.jsx(Bp,{...e})})})},mx=e=>typeof e=="object"&&"value"in e&&"highlight"in e,bx=e=>{const t={};e.forEach(({apis:i,highlightString:o})=>{i.forEach(a=>{const[u,l]=a.split("/"),f=u.split(".");if(f.length<2)return;const h=f.slice(-2).join("."),d=f.slice(0,-2).reverse();let g=t[h]=t[h]||{};for(const v of d)g[v]=g[v]||{},g=g[v];g[l]={value:a,highlight:a===o}})});const n=(i,o="")=>Object.entries(i).map(([a,u])=>{const l=o?`${o}.${a}`:a;if(mx(u))return{title:u.highlight?`${u.value} (pref)`:u.value,key:u.value,isLeaf:!0};const f=n(u,l);return{title:a,key:l,children:f,isLeaf:f.length===0}});return Object.entries(t).map(([i,o])=>({title:i,key:i,children:n(o,i),isLeaf:!1}))},wx=e=>e.map(t=>({title:`${t} (pref)`,key:t,isLeaf:!0})),vx=async({namespace:e,data:t,apiGroup:n,apiVersion:i,clusterName:o})=>{const a={namespace:e,data:t,apiGroup:n,apiVersion:i,clusterName:o};return(await $e.post("/openapi-bff/scopes/filterScopes/filterIfApiNamespaceScoped",a)).data},jp=async({namespace:e,data:t,clusterName:n})=>{const i={namespace:e,data:t,clusterName:n};return(await $e.post("/openapi-bff/scopes/filterScopes/filterIfBuiltInNamespaceScoped",i)).data},xx=async({clusterName:e,apiGroupListData:t,builtinResourceTypesData:n,namespace:i,noncrds:o=["apps","autoscaling","batch","policy"]})=>{const a=t?.groups?.find(({name:h})=>h==="apiextensions.k8s.io")?.preferredVersion.version,u=t?.groups.filter(({name:h})=>!o.includes(h)&&!h.includes(".k8s.io")).sort((h,d)=>h.name.localeCompare(d.name)),l=t?.groups.sort((h,d)=>h.name.localeCompare(d.name)),f=await jp({namespace:i,data:n,clusterName:e});return{crdGroups:u,nonCrdGroups:l,builtinGroups:f,apiExtensionVersion:a}},Ex=({data:e,clusterName:t,projectName:n,instanceName:i,namespace:o,syntheticProject:a,entryType:u,apiGroup:l,apiVersion:f,typeName:h,entryName:d,apiExtensionVersion:g,crdName:v,pathname:C})=>e.map(({pathToMatch:E,pathToNavigate:w,keysToParse:T})=>({pathToMatch:E?At({template:E,replaceValues:{clusterName:t,projectName:n,instanceName:i,namespace:o,syntheticProject:a,entryType:u,apiGroup:l,apiVersion:f,typeName:h,entryName:d,apiExtensionVersion:g,crdName:v}}):void 0,pathToNavigate:w?At({template:w,replaceValues:{clusterName:t,projectName:n,instanceName:i,namespace:o,syntheticProject:a,entryType:u,apiGroup:l,apiVersion:f,typeName:h,entryName:d,apiExtensionVersion:g,crdName:v}}):void 0,keysToParse:T})).find(({pathToMatch:E})=>E?vr.matchPath(E,C):!1),Np=e=>!!(typeof e=="object"&&!Array.isArray(e)&&e!==null&&e.spec&&typeof e.spec=="object"&&!Array.isArray(e.spec)&&e.spec!==null&&Array.isArray(e.spec.additionalPrinterColumns)&&e.spec.additionalPrinterColumns.every(t=>Object.keys(t).includes("name")&&Object.keys(t).includes("jsonPath"))),$p=e=>!!(typeof e=="object"&&!Array.isArray(e)&&e!==null&&e.spec&&typeof e.spec=="object"&&!Array.isArray(e.spec)&&e.spec!==null&&Array.isArray(e.spec.additionalPrinterColumnsUndefinedValues)&&e.spec.additionalPrinterColumnsUndefinedValues.every(t=>Object.keys(t).includes("key")&&Object.keys(t).includes("value"))),Mp=e=>!!(typeof e=="object"&&!Array.isArray(e)&&e!==null&&e.spec&&typeof e.spec=="object"&&!Array.isArray(e.spec)&&e.spec!==null&&Array.isArray(e.spec.additionalPrinterColumnsTrimLengths)&&e.spec.additionalPrinterColumnsTrimLengths.every(t=>Object.keys(t).includes("key")&&Object.keys(t).includes("value"))),Up=e=>!!(typeof e=="object"&&!Array.isArray(e)&&e!==null&&e.spec&&typeof e.spec=="object"&&!Array.isArray(e.spec)&&e.spec!==null&&Array.isArray(e.spec.additionalPrinterColumnsColWidths)&&e.spec.additionalPrinterColumnsColWidths.every(t=>Object.keys(t).includes("key")&&Object.keys(t).includes("value"))),Sx=({columnsOverridesData:e,overrideType:t})=>{const n=e?.items.find(l=>typeof l=="object"&&!Array.isArray(l)&&l!==null&&l.spec&&typeof l.spec=="object"&&!Array.isArray(l.spec)&&l.spec!==null&&typeof l.spec.overrideType=="string"&&l.spec.overrideType===t),i=Np(n)?n.spec.additionalPrinterColumns:void 0,o=$p(n)?n.spec.additionalPrinterColumnsUndefinedValues:void 0,a=Mp(n)?n.spec.additionalPrinterColumnsTrimLengths:void 0,u=Up(n)?n.spec.additionalPrinterColumnsColWidths:void 0;return{ensuredCustomOverrides:i,ensuredCustomOverridesUndefinedValues:o,ensuredCustomOverridesTrimLengths:a,ensuredCustomOverridesColWidths:u}},Vp=async()=>$e.get("/clusterlist"),qp=async({clusterName:e,namespace:t,apiGroup:n,apiVersion:i,typeName:o,limit:a})=>{const u=a!==null?`?limit=${a}`:"";return $e.get(`/api/clusters/${e}/k8s/apis/${n}/${i}${t?`/namespaces/${t}`:""}/${o}${u}`)},Wp=async({clusterName:e,namespace:t,apiGroup:n,apiVersion:i,typeName:o,entryName:a})=>$e.get(`/api/clusters/${e}/k8s/apis/${n}/${i}${t?`/namespaces/${t}`:""}/${o}/${a}`),Kp=async({clusterName:e,namespace:t,typeName:n,limit:i})=>{const o=i!==null?`?limit=${i}`:"";return $e.get(`/api/clusters/${e}/k8s/api/v1${t?`/namespaces/${t}`:""}/${n}${o}`)},Hp=async({clusterName:e,namespace:t,typeName:n,entryName:i})=>$e.get(`/api/clusters/${e}/k8s/api/v1${t?`/namespaces/${t}`:""}/${n}/${i}`),zp=async({clusterName:e,namespace:t,apiGroup:n,apiVersion:i,crdName:o})=>$e.get(`/api/clusters/${e}/k8s/apis/${n}/${i}${t?`/namespaces/${t}`:""}/${o}`),Gp=async({clusterName:e,namespace:t,apiGroup:n,apiVersion:i,crdName:o,entryName:a})=>$e.get(`/api/clusters/${e}/k8s/apis/${n}/${i}${t?`/namespaces/${t}`:""}/${o}/${a}`),Jp=async({clusterName:e})=>$e.get(`/api/clusters/${e}/k8s/apis/`),Yp=async({clusterName:e,apiGroup:t,apiVersion:n})=>$e.get(`/api/clusters/${e}/k8s/apis/${t}/${n}/`),Xp=async({clusterName:e})=>$e.get(`/api/clusters/${e}/k8s/api/v1`),Qp=async({clusterName:e,apiExtensionVersion:t,crdName:n})=>$e.get(`/api/clusters/${e}/k8s/apis/apiextensions.k8s.io/${t}/customresourcedefinitions/${n}`),Ax=async({clusterName:e})=>$e.get(`/openapi-bff/swagger/swagger/${e}`),Cx=async({typeName:e,apiGroup:t,apiVersion:n,clusterName:i})=>{const o={typeName:e,apiGroup:t,apiVersion:n,clusterName:i},{data:a}=await $e.post("/openapi-bff/scopes/checkScopes/checkIfApiNamespaceScoped",o);return a},_x=async({typeName:e,clusterName:t})=>{const n={typeName:e,clusterName:t},{data:i}=await $e.post("/openapi-bff/scopes/checkScopes/checkIfBuiltInNamespaceScoped",n);return i},kx=({refetchInterval:e})=>vn.useQuery({queryKey:["useClusterList"],queryFn:async()=>(await Vp()).data,refetchInterval:e!==void 0?e:5e3}),Tx=({clusterName:e,namespace:t,apiGroup:n,apiVersion:i,typeName:o,limit:a,refetchInterval:u})=>vn.useQuery({queryKey:["useApiResources",e,t,n,i,o,a],queryFn:async()=>{const l=await qp({clusterName:e,namespace:t,apiGroup:n,apiVersion:i,typeName:o,limit:a}),f=JSON.parse(JSON.stringify(l.data));return f.metadata?.resourceVersion&&delete f.metadata.resourceVersion,f},refetchInterval:u!==void 0?u:5e3}),Ix=({clusterName:e,namespace:t,apiGroup:n,apiVersion:i,typeName:o,entryName:a,refetchInterval:u})=>vn.useQuery({queryKey:["useApiResourceSingle",e,t,n,i,o,a],queryFn:async()=>(await Wp({clusterName:e,namespace:t,apiGroup:n,apiVersion:i,typeName:o,entryName:a})).data,refetchInterval:u!==void 0?u:5e3}),Ox=({clusterName:e,namespace:t,typeName:n,limit:i,refetchInterval:o})=>vn.useQuery({queryKey:["useBuiltinResourceType",e,t,n,i],queryFn:async()=>{const a=await Kp({clusterName:e,namespace:t,typeName:n,limit:i}),u=JSON.parse(JSON.stringify(a.data));return u.metadata?.resourceVersion&&delete u.metadata.resourceVersion,u},refetchInterval:o!==void 0?o:5e3}),Fx=({clusterName:e,namespace:t,typeName:n,entryName:i,refetchInterval:o})=>vn.useQuery({queryKey:["useBuiltinResourceSingle",e,t,n,i],queryFn:async()=>(await Hp({clusterName:e,namespace:t,typeName:n,entryName:i})).data,refetchInterval:o!==void 0?o:5e3}),Bx=({clusterName:e,namespace:t,apiGroup:n,apiVersion:i,crdName:o,refetchInterval:a})=>vn.useQuery({queryKey:["useCrdResources",e,t,n,i,o],queryFn:async()=>{const u=await zp({clusterName:e,namespace:t,apiGroup:n,apiVersion:i,crdName:o}),l=JSON.parse(JSON.stringify(u.data));return l.metadata?.resourceVersion&&delete l.metadata.resourceVersion,l},refetchInterval:a!==void 0?a:5e3}),Dx=({clusterName:e,namespace:t,apiGroup:n,apiVersion:i,crdName:o,entryName:a,refetchInterval:u})=>vn.useQuery({queryKey:["useCrdResourceSingle",e,t,n,i,o,a],queryFn:async()=>(await Gp({clusterName:e,namespace:t,apiGroup:n,apiVersion:i,crdName:o,entryName:a})).data,refetchInterval:u!==void 0?u:5e3}),Px=({clusterName:e})=>vn.useQuery({queryKey:["useApisResourceTypes",e],queryFn:async()=>{const t=await Jp({clusterName:e}),n=JSON.parse(JSON.stringify(t.data));return n.metadata?.resourceVersion&&delete n.metadata.resourceVersion,n},refetchInterval:5e3}),Rx=({clusterName:e,apiGroup:t,apiVersion:n})=>vn.useQuery({queryKey:["useApiResourceTypesByGroup",e,t,n],queryFn:async()=>{const i=await Yp({clusterName:e,apiGroup:t,apiVersion:n}),o=JSON.parse(JSON.stringify(i.data));return o.metadata?.resourceVersion&&delete o.metadata.resourceVersion,o},refetchInterval:5e3}),Lx=({clusterName:e})=>vn.useQuery({queryKey:["useBuiltinResourceTypes",e],queryFn:async()=>{const t=await Xp({clusterName:e}),n=JSON.parse(JSON.stringify(t.data));return n.metadata?.resourceVersion&&delete n.metadata.resourceVersion,n},refetchInterval:5e3}),jx=({clusterName:e,apiExtensionVersion:t,crdName:n})=>vn.useQuery({queryKey:["useCrdData",e,t,n],queryFn:async()=>{const i=await Qp({clusterName:e,apiExtensionVersion:t,crdName:n}),o=JSON.parse(JSON.stringify(i.data));return o.metadata?.resourceVersion&&delete o.metadata.resourceVersion,o},refetchInterval:5e3});ue.BackToDefaultIcon=Ch,ue.BlackholeForm=Tp,ue.BlackholeFormDataProvider=Pv,ue.ContentCard=Ih,ue.DeleteIcon=xh,ue.DeleteModal=Yu,ue.DeleteModalMany=Gm,ue.DownIcon=Ah,ue.DynamicComponents=gx,ue.DynamicRenderer=Bp,ue.DynamicRendererWithProviders=yx,ue.EditIcon=Eh,ue.EnrichedTable=qh,ue.EnrichedTableProvider=a2,ue.LockedIcon=kh,ue.ManageableBreadcrumbs=Bh,ue.ManageableBreadcrumbsWithDataProvider=Qm,ue.ManageableSidebar=Rh,ue.ManageableSidebarWithDataProvider=Lh,ue.MarketPlace=Op,ue.MarketplaceCard=Mc,ue.MinusIcon=on,ue.PlusIcon=Xu,ue.ProjectInfoCard=Fp,ue.Spacer=Ar,ue.SuccessIcon=_h,ue.TreeWithSearch=_y,ue.UnlockedIcon=Th,ue.UpIcon=Sh,ue.checkIfApiInstanceNamespaceScoped=Cx,ue.checkIfBuiltInInstanceNamespaceScoped=_x,ue.checkPermission=Yh,ue.createContextFactory=Dp,ue.createNewEntry=Jo,ue.deleteEntry=Ju,ue.feedbackIcons=Vr,ue.filterIfApiInstanceNamespaceScoped=vx,ue.filterIfBuiltInInstanceNamespaceScoped=jp,ue.filterSelectOptions=tc,ue.floorToDecimal=Rs,ue.getAllPathsFromObj=sc,ue.getApiResourceSingle=Wp,ue.getApiResourceTypes=Jp,ue.getApiResourceTypesByApiGroup=Yp,ue.getApiResources=qp,ue.getBuiltinResourceSingle=Hp,ue.getBuiltinResourceTypes=Xp,ue.getBuiltinResources=Kp,ue.getBuiltinTreeData=wx,ue.getClusterList=Vp,ue.getCrdData=Qp,ue.getCrdResourceSingle=Gp,ue.getCrdResources=zp,ue.getDirectUnknownResource=Oh,ue.getEnrichedColumns=Uh,ue.getEnrichedColumnsWithControls=Vh,ue.getGroupsByCategory=xx,ue.getObjectFormItemsDraft=xa,ue.getPrefixSubarrays=Qh,ue.getStringByName=It,ue.getSwagger=Ax,ue.groupsToTreeData=bx,ue.isFlatObject=Mh,ue.isWithAdditionalPrinterColumns=Np,ue.isWithAdditionalPrinterColumnsColWidths=Up,ue.isWithAdditionalPrinterColumnsTrimLengths=Mp,ue.isWithAdditionalPrinterColumnsUndefinedValues=$p,ue.normalizeValuesForQuotasToNumber=Xh,ue.parseCustomOverrides=Sx,ue.parseQuotaValue=T2,ue.parseQuotaValueCpu=nc,ue.parseQuotaValueMemoryAndStorage=rc,ue.prepareDataForEnrichedColumns=Hh,ue.prepareDataForManageableBreadcrumbs=Fh,ue.prepareDataForManageableSidebar=Ph,ue.prepareTableMappings=Ex,ue.prepareTemplate=At,ue.prepareUrlsToFetchForDynamicRenderer=Lp,ue.updateEntry=Yo,ue.useApiResourceSingle=Ix,ue.useApiResourceTypesByGroup=Rx,ue.useApiResources=Tx,ue.useApisResourceTypes=Px,ue.useBuiltinResourceSingle=Fx,ue.useBuiltinResourceTypes=Lx,ue.useBuiltinResources=Ox,ue.useClusterList=kx,ue.useCrdData=jx,ue.useCrdResourceSingle=Dx,ue.useCrdResources=Bx,ue.useDirectUnknownResource=nn,ue.usePermissions=Wr,Object.defineProperty(ue,Symbol.toStringTag,{value:"Module"})});
|
|
570
|
+
`;const ix={ActionMenuPlaceholder:rx},Fp=({clusterName:e,namespace:t,baseApiGroup:n,baseApiVersion:i,baseProjectApiGroup:o,baseProjectVersion:a,mpResourceName:u,projectResourceName:l,baseprefix:f,accessGroups:h,children:d})=>{const g=vr.useNavigate(),{data:v,isLoading:C}=nn({uri:`/api/clusters/${e}/k8s/apis/${n}/${i}/${u}/`,refetchInterval:5e3,queryKey:["marketplacePanels",e||"no-cluster"],isEnabled:e!==void 0}),{data:S,isLoading:E,error:w}=nn({uri:`/api/clusters/${e}/k8s/apis/${o}/${a}/${l}/${t}`,refetchInterval:5e3,queryKey:["projects",e||"no-cluster"],isEnabled:e!==void 0}),[T,j]=Q.useState(!1),R=Wr({apiGroup:o,typeName:l,namespace:"",clusterName:e||"",verb:"update",refetchInterval:!1}),_=Wr({apiGroup:o,typeName:l,namespace:"",clusterName:e||"",verb:"delete",refetchInterval:!1}),O=Q.useCallback(()=>{g(`/${f}/${e}/forms/apis/${o}/${a}/${l}/${t}?backlink=${f}/clusters/${e}`)},[f,e,t,o,a,l,g]);if(E)return x.jsx(V.Spin,{});if(!S||w)return null;const F=S.status.conditions.find(({type:B})=>B==="Ready");return x.jsxs(x.Fragment,{children:[x.jsxs(V.Flex,{justify:"space-between",children:[x.jsx("div",{children:d}),x.jsx("div",{children:x.jsxs(V.Flex,{gap:24,vertical:!0,children:[x.jsx(V.Flex,{justify:"flex-end",children:F?.status==="True"&&(R.data?.status.allowed||_.data?.status.allowed)?x.jsx(tx,{onDelete:_.data?.status.allowed?()=>{j(!0)}:void 0,onUpdate:R.data?.status.allowed?O:void 0}):x.jsx(ix.ActionMenuPlaceholder,{})}),x.jsx(nx,{accessGroups:h})]})})]}),x.jsx(Ar,{$space:24,$samespace:!0}),x.jsx(V.Typography.Text,{type:"secondary",children:"Added Products"}),x.jsx(Ar,{$space:12,$samespace:!0}),x.jsxs(V.Flex,{gap:22,wrap:!0,children:[C&&x.jsx(V.Spin,{}),e&&t&&v?.items.map(({spec:B})=>B).sort().map(({name:B,description:W,icon:J,type:fe,pathToNav:le,typeName:de,apiGroup:be,apiVersion:Se,tags:pe,disabled:De})=>x.jsx(Mc,{baseprefix:f,description:W,disabled:De,icon:J,isEditMode:!1,name:B,clusterName:e,namespace:t,type:fe,pathToNav:le,typeName:de,apiGroup:be,apiVersion:Se,tags:pe,addedMode:!0},B))]}),T&&x.jsx(Yu,{name:S.metadata.name,onClose:()=>{j(!1),g(`${f}/clusters/${e}`)},endpoint:`/api/clusters/${e}/k8s/apis/${o}/${a}/${l}/${S.metadata.name}`})]})},Uc=({items:e,components:t})=>x.jsx(x.Fragment,{children:e.map((n,i)=>{const o=t[n.type];if(!o)return x.jsxs("div",{children:["❌ No component registered for type: ",String(n.type)]},i);let a=n.data;if(typeof n.data=="object"&&n.data!==null&&"items"in n.data&&Array.isArray(n.data.items)){const{items:l,...f}=n.data;a={...f,items:l.map(h=>({...h,children:Array.isArray(h.children)?x.jsx(Uc,{items:h.children,components:t}):h.children}))}}const u=n.children?x.jsx(Uc,{items:n.children,components:t}):null;return x.jsx(Q.Fragment,{children:x.jsx(o,{data:a,children:u})},i)})}),Bp=e=>x.jsx(Uc,{...e}),sx=({data:e,children:t})=>{const{id:n,text:i,...o}=e;return x.jsxs(V.Typography.Text,{...o,children:[i,t]})},ox=({data:e,children:t})=>{const{id:n,...i}=e;return x.jsx(V.Card,{...i,children:t})},ax=({data:e,children:t})=>{const{id:n,...i}=e;return x.jsx(V.Flex,{...i,children:t})},ux=({data:e,children:t})=>{const{id:n,...i}=e;return x.jsx(V.Row,{...i,children:t})},cx=({data:e,children:t})=>{const{id:n,...i}=e;return x.jsx(V.Col,{...i,children:t})},lx=({data:e,children:t})=>{const{id:n,...i}=e;return x.jsx(V.Tabs,{...i,children:t})},fx=({data:e,children:t})=>{const{id:n,text:i,...o}=e;return x.jsxs(V.Button,{...o,children:[e.text,t]})},Dp=()=>{const e=Q.createContext(null);return{Provider:({children:i,value:o})=>{const a=Q.useMemo(()=>o,Object.values(o));return x.jsx(e.Provider,{value:a,children:i})},useTypedContext:()=>{const i=Q.useContext(e);if(!i)throw new Error("useTypedContext must be used within a Provider");return i}}},Pp=Dp(),hx=Pp.Provider,to=Pp.useTypedContext,dx=({data:e})=>{const n=to().partsOfUrl.reduce((o,a,u)=>(o[u.toString()]=a,o),{}),i=At({template:e.text,replaceValues:n});return x.jsx("span",{children:i})},Rp=Q.createContext(void 0),px=({urls:e,children:t})=>{const n=vn.useQueries({queries:e.map((f,h)=>({queryKey:["multi",h,f],queryFn:async()=>(await $e.get(f)).data}))}),i={},o=[];n.forEach((f,h)=>{i[`req${h}`]=f.data,o[h]=f.error??null});const a=n.some(f=>f.isLoading),u=n.some(f=>f.isError),l=Q.useMemo(()=>({data:i,isLoading:a,isError:u,errors:o}),[JSON.stringify(i),a,u,JSON.stringify(o)]);return x.jsx(Rp.Provider,{value:l,children:t})},Ea=()=>{const e=Q.useContext(Rp);if(!e)throw new Error("useMultiQuery must be used within a MultiQueryProvider");return e},gx={DefaultDiv:({data:e,children:t})=>{const{id:n,...i}=e;return x.jsx("div",{...i,children:t})},antdText:sx,antdCard:ox,antdFlex:ax,antdRow:ux,antdCol:cx,antdTabs:lx,antdButton:fx,partsOfUrl:dx,multiQuery:({data:e})=>{const{data:t,isLoading:n,isError:i,errors:o}=Ea(),a=Q.useMemo(()=>e?.text?e.text.replace(/\{reqs\[(\d+)\]\[((?:\s*['"][^'"]+['"]\s*,?)+)\]\}/g,(u,l,f)=>{try{const h=parseInt(l,10),d=Array.from(f.matchAll(/['"]([^'"]+)['"]/g)).map(v=>v[1]),g=qr.get(t[`req${h}`],d);return g!=null?String(g):""}catch{return u}}):"",[e?.text,t]);return n?x.jsx("div",{children:"Loading..."}):i?x.jsxs("div",{children:[x.jsx("h4",{children:"Errors:"}),x.jsx("ul",{children:o.map((u,l)=>u&&x.jsx("li",{children:u.message},l))})]}):x.jsx("span",{children:a})},parsedText:({data:e})=>{const{data:t,isLoading:n,isError:i,errors:o}=Ea(),a=to(),u=Q.useMemo(()=>e?.text?e.text.replace(/\{reqs\[(\d+)\]\[((?:\s*['"][^'"]+['"]\s*,?)+)\]\}/g,(h,d,g)=>{try{const v=parseInt(d,10),C=Array.from(g.matchAll(/['"]([^'"]+)['"]/g)).map(E=>E[1]),S=qr.get(t[`req${v}`],C);return S!=null?String(S):""}catch{return h}}):"",[e?.text,t]);if(n)return x.jsx("div",{children:"Loading..."});if(i)return x.jsxs("div",{children:[x.jsx("h4",{children:"Errors:"}),x.jsx("ul",{children:o.map((h,d)=>h&&x.jsx("li",{children:h.message},d))})]});const l=a.partsOfUrl.reduce((h,d,g)=>(h[g.toString()]=d,h),{}),f=At({template:u,replaceValues:l});return x.jsx("span",{children:f})},ProjectInfoCard:({data:e,children:t})=>{const{id:n,clusterNamePartOfUrl:i,namespacePartOfUrl:o,accessGroups:a,...u}=e,{data:l,isError:f,errors:h}=Ea(),g=to().partsOfUrl.reduce((E,w,T)=>(E[T.toString()]=w,E),{}),v=At({template:i,replaceValues:g}),C=At({template:o,replaceValues:g}),S=a.map(E=>{const w=E.replace(/\{reqs\[(\d+)\]\[((?:\s*['"][^'"]+['"]\s*,?)+)\]\}/g,(j,R,_)=>{try{const O=parseInt(R,10),F=Array.from(_.matchAll(/['"]([^'"]+)['"]/g)).map(W=>W[1]),B=qr.get(l[`req${O}`],F);return B!=null?String(B):""}catch{return j}});return At({template:w,replaceValues:g})});return f?x.jsxs("div",{children:[x.jsx("h4",{children:"Errors:"}),x.jsx("ul",{children:h.map((E,w)=>E&&x.jsx("li",{children:E.message},w))})]}):x.jsx(Fp,{clusterName:v,namespace:C,accessGroups:S,...u,children:t})},MarketplaceCard:({data:e,children:t})=>{const{id:n,clusterNamePartOfUrl:i,namespacePartOfUrl:o,...a}=e,l=to().partsOfUrl.reduce((d,g,v)=>(d[v.toString()]=g,d),{}),f=At({template:i,replaceValues:l}),h=At({template:o,replaceValues:l});return x.jsx(Op,{clusterName:f,namespace:h,...a})},ContentCard:({data:e,children:t})=>{const{id:n,...i}=e;return x.jsx(Ih,{...i,children:t})},Spacer:({data:e,children:t})=>{const{id:n,...i}=e;return x.jsx(Ar,{...i})},StatusText:({data:e,children:t})=>{const{id:n,requestIndex:i,jsonPath:o,criteria:a,valueToCompare:u,successText:l,errorText:f,...h}=e,{data:d,isLoading:g,isError:v,errors:C}=Ea();let S;try{[S]=Kh.query(d[`req${i}`],`$${o}`)}catch(w){return x.jsxs("div",{children:[x.jsx("h4",{children:"Errors:"}),x.jsx("ul",{children:JSON.stringify(w)})]})}const E=a==="equals"?u===S:u!==S;return g?x.jsx("div",{children:"Loading..."}):v?x.jsxs("div",{children:[x.jsx("h4",{children:"Errors:"}),x.jsx("ul",{children:C.map((w,T)=>w&&x.jsx("li",{children:w.message},T))})]}):x.jsxs(V.Typography.Text,{type:E?"success":"danger",...h,children:[E?l:f,t]})},SidebarProvider:({data:e,children:t})=>{const{id:n,...i}=e,a=to().partsOfUrl.reduce((u,l,f)=>(u[f.toString()]=l,u),{});return x.jsx(Lh,{replaceValues:a,...i})}},Lp=({urls:e,locationPathname:t})=>{const n=t.split("/").reduce((i,o,a)=>(i[a.toString()]=o,i),{});return e.map(i=>At({template:i,replaceValues:n}))},yx=e=>{const t=vr.useLocation(),{urlsToFetch:n}=e,i=Lp({urls:n,locationPathname:t.pathname});return x.jsx(hx,{value:{partsOfUrl:t.pathname.split("/")},children:x.jsx(px,{urls:i,children:x.jsx(Bp,{...e})})})},mx=e=>typeof e=="object"&&"value"in e&&"highlight"in e,bx=e=>{const t={};e.forEach(({apis:i,highlightString:o})=>{i.forEach(a=>{const[u,l]=a.split("/"),f=u.split(".");if(f.length<2)return;const h=f.slice(-2).join("."),d=f.slice(0,-2).reverse();let g=t[h]=t[h]||{};for(const v of d)g[v]=g[v]||{},g=g[v];g[l]={value:a,highlight:a===o}})});const n=(i,o="")=>Object.entries(i).map(([a,u])=>{const l=o?`${o}.${a}`:a;if(mx(u))return{title:u.highlight?`${u.value} (pref)`:u.value,key:u.value,isLeaf:!0};const f=n(u,l);return{title:a,key:l,children:f,isLeaf:f.length===0}});return Object.entries(t).map(([i,o])=>({title:i,key:i,children:n(o,i),isLeaf:!1}))},wx=e=>e.map(t=>({title:`${t} (pref)`,key:t,isLeaf:!0})),vx=async({namespace:e,data:t,apiGroup:n,apiVersion:i,clusterName:o})=>{const a={namespace:e,data:t,apiGroup:n,apiVersion:i,clusterName:o};return(await $e.post(`/api/clusters/${o}/openapi-bff/scopes/filterScopes/filterIfApiNamespaceScoped`,a)).data},jp=async({namespace:e,data:t,clusterName:n})=>{const i={namespace:e,data:t,clusterName:n};return(await $e.post(`/api/clusters/${n}/openapi-bff/scopes/filterScopes/filterIfBuiltInNamespaceScoped`,i)).data},xx=async({clusterName:e,apiGroupListData:t,builtinResourceTypesData:n,namespace:i,noncrds:o=["apps","autoscaling","batch","policy"]})=>{const a=t?.groups?.find(({name:h})=>h==="apiextensions.k8s.io")?.preferredVersion.version,u=t?.groups.filter(({name:h})=>!o.includes(h)&&!h.includes(".k8s.io")).sort((h,d)=>h.name.localeCompare(d.name)),l=t?.groups.sort((h,d)=>h.name.localeCompare(d.name)),f=await jp({namespace:i,data:n,clusterName:e});return{crdGroups:u,nonCrdGroups:l,builtinGroups:f,apiExtensionVersion:a}},Ex=({data:e,clusterName:t,projectName:n,instanceName:i,namespace:o,syntheticProject:a,entryType:u,apiGroup:l,apiVersion:f,typeName:h,entryName:d,apiExtensionVersion:g,crdName:v,pathname:C})=>e.map(({pathToMatch:E,pathToNavigate:w,keysToParse:T})=>({pathToMatch:E?At({template:E,replaceValues:{clusterName:t,projectName:n,instanceName:i,namespace:o,syntheticProject:a,entryType:u,apiGroup:l,apiVersion:f,typeName:h,entryName:d,apiExtensionVersion:g,crdName:v}}):void 0,pathToNavigate:w?At({template:w,replaceValues:{clusterName:t,projectName:n,instanceName:i,namespace:o,syntheticProject:a,entryType:u,apiGroup:l,apiVersion:f,typeName:h,entryName:d,apiExtensionVersion:g,crdName:v}}):void 0,keysToParse:T})).find(({pathToMatch:E})=>E?vr.matchPath(E,C):!1),Np=e=>!!(typeof e=="object"&&!Array.isArray(e)&&e!==null&&e.spec&&typeof e.spec=="object"&&!Array.isArray(e.spec)&&e.spec!==null&&Array.isArray(e.spec.additionalPrinterColumns)&&e.spec.additionalPrinterColumns.every(t=>Object.keys(t).includes("name")&&Object.keys(t).includes("jsonPath"))),$p=e=>!!(typeof e=="object"&&!Array.isArray(e)&&e!==null&&e.spec&&typeof e.spec=="object"&&!Array.isArray(e.spec)&&e.spec!==null&&Array.isArray(e.spec.additionalPrinterColumnsUndefinedValues)&&e.spec.additionalPrinterColumnsUndefinedValues.every(t=>Object.keys(t).includes("key")&&Object.keys(t).includes("value"))),Mp=e=>!!(typeof e=="object"&&!Array.isArray(e)&&e!==null&&e.spec&&typeof e.spec=="object"&&!Array.isArray(e.spec)&&e.spec!==null&&Array.isArray(e.spec.additionalPrinterColumnsTrimLengths)&&e.spec.additionalPrinterColumnsTrimLengths.every(t=>Object.keys(t).includes("key")&&Object.keys(t).includes("value"))),Up=e=>!!(typeof e=="object"&&!Array.isArray(e)&&e!==null&&e.spec&&typeof e.spec=="object"&&!Array.isArray(e.spec)&&e.spec!==null&&Array.isArray(e.spec.additionalPrinterColumnsColWidths)&&e.spec.additionalPrinterColumnsColWidths.every(t=>Object.keys(t).includes("key")&&Object.keys(t).includes("value"))),Sx=({columnsOverridesData:e,overrideType:t})=>{const n=e?.items.find(l=>typeof l=="object"&&!Array.isArray(l)&&l!==null&&l.spec&&typeof l.spec=="object"&&!Array.isArray(l.spec)&&l.spec!==null&&typeof l.spec.overrideType=="string"&&l.spec.overrideType===t),i=Np(n)?n.spec.additionalPrinterColumns:void 0,o=$p(n)?n.spec.additionalPrinterColumnsUndefinedValues:void 0,a=Mp(n)?n.spec.additionalPrinterColumnsTrimLengths:void 0,u=Up(n)?n.spec.additionalPrinterColumnsColWidths:void 0;return{ensuredCustomOverrides:i,ensuredCustomOverridesUndefinedValues:o,ensuredCustomOverridesTrimLengths:a,ensuredCustomOverridesColWidths:u}},Vp=async()=>$e.get("/clusterlist"),qp=async({clusterName:e,namespace:t,apiGroup:n,apiVersion:i,typeName:o,limit:a})=>{const u=a!==null?`?limit=${a}`:"";return $e.get(`/api/clusters/${e}/k8s/apis/${n}/${i}${t?`/namespaces/${t}`:""}/${o}${u}`)},Wp=async({clusterName:e,namespace:t,apiGroup:n,apiVersion:i,typeName:o,entryName:a})=>$e.get(`/api/clusters/${e}/k8s/apis/${n}/${i}${t?`/namespaces/${t}`:""}/${o}/${a}`),Kp=async({clusterName:e,namespace:t,typeName:n,limit:i})=>{const o=i!==null?`?limit=${i}`:"";return $e.get(`/api/clusters/${e}/k8s/api/v1${t?`/namespaces/${t}`:""}/${n}${o}`)},Hp=async({clusterName:e,namespace:t,typeName:n,entryName:i})=>$e.get(`/api/clusters/${e}/k8s/api/v1${t?`/namespaces/${t}`:""}/${n}/${i}`),zp=async({clusterName:e,namespace:t,apiGroup:n,apiVersion:i,crdName:o})=>$e.get(`/api/clusters/${e}/k8s/apis/${n}/${i}${t?`/namespaces/${t}`:""}/${o}`),Gp=async({clusterName:e,namespace:t,apiGroup:n,apiVersion:i,crdName:o,entryName:a})=>$e.get(`/api/clusters/${e}/k8s/apis/${n}/${i}${t?`/namespaces/${t}`:""}/${o}/${a}`),Jp=async({clusterName:e})=>$e.get(`/api/clusters/${e}/k8s/apis/`),Yp=async({clusterName:e,apiGroup:t,apiVersion:n})=>$e.get(`/api/clusters/${e}/k8s/apis/${t}/${n}/`),Xp=async({clusterName:e})=>$e.get(`/api/clusters/${e}/k8s/api/v1`),Qp=async({clusterName:e,apiExtensionVersion:t,crdName:n})=>$e.get(`/api/clusters/${e}/k8s/apis/apiextensions.k8s.io/${t}/customresourcedefinitions/${n}`),Ax=async({clusterName:e})=>$e.get(`/api/clusters/${e}/openapi-bff/swagger/swagger/${e}`),Cx=async({typeName:e,apiGroup:t,apiVersion:n,clusterName:i})=>{const o={typeName:e,apiGroup:t,apiVersion:n,clusterName:i},{data:a}=await $e.post(`/api/clusters/${i}/openapi-bff/scopes/checkScopes/checkIfApiNamespaceScoped`,o);return a},_x=async({typeName:e,clusterName:t})=>{const n={typeName:e,clusterName:t},{data:i}=await $e.post(`/api/clusters/${t}/openapi-bff/scopes/checkScopes/checkIfBuiltInNamespaceScoped`,n);return i},kx=({refetchInterval:e})=>vn.useQuery({queryKey:["useClusterList"],queryFn:async()=>(await Vp()).data,refetchInterval:e!==void 0?e:5e3}),Tx=({clusterName:e,namespace:t,apiGroup:n,apiVersion:i,typeName:o,limit:a,refetchInterval:u})=>vn.useQuery({queryKey:["useApiResources",e,t,n,i,o,a],queryFn:async()=>{const l=await qp({clusterName:e,namespace:t,apiGroup:n,apiVersion:i,typeName:o,limit:a}),f=JSON.parse(JSON.stringify(l.data));return f.metadata?.resourceVersion&&delete f.metadata.resourceVersion,f},refetchInterval:u!==void 0?u:5e3}),Ix=({clusterName:e,namespace:t,apiGroup:n,apiVersion:i,typeName:o,entryName:a,refetchInterval:u})=>vn.useQuery({queryKey:["useApiResourceSingle",e,t,n,i,o,a],queryFn:async()=>(await Wp({clusterName:e,namespace:t,apiGroup:n,apiVersion:i,typeName:o,entryName:a})).data,refetchInterval:u!==void 0?u:5e3}),Ox=({clusterName:e,namespace:t,typeName:n,limit:i,refetchInterval:o})=>vn.useQuery({queryKey:["useBuiltinResourceType",e,t,n,i],queryFn:async()=>{const a=await Kp({clusterName:e,namespace:t,typeName:n,limit:i}),u=JSON.parse(JSON.stringify(a.data));return u.metadata?.resourceVersion&&delete u.metadata.resourceVersion,u},refetchInterval:o!==void 0?o:5e3}),Fx=({clusterName:e,namespace:t,typeName:n,entryName:i,refetchInterval:o})=>vn.useQuery({queryKey:["useBuiltinResourceSingle",e,t,n,i],queryFn:async()=>(await Hp({clusterName:e,namespace:t,typeName:n,entryName:i})).data,refetchInterval:o!==void 0?o:5e3}),Bx=({clusterName:e,namespace:t,apiGroup:n,apiVersion:i,crdName:o,refetchInterval:a})=>vn.useQuery({queryKey:["useCrdResources",e,t,n,i,o],queryFn:async()=>{const u=await zp({clusterName:e,namespace:t,apiGroup:n,apiVersion:i,crdName:o}),l=JSON.parse(JSON.stringify(u.data));return l.metadata?.resourceVersion&&delete l.metadata.resourceVersion,l},refetchInterval:a!==void 0?a:5e3}),Dx=({clusterName:e,namespace:t,apiGroup:n,apiVersion:i,crdName:o,entryName:a,refetchInterval:u})=>vn.useQuery({queryKey:["useCrdResourceSingle",e,t,n,i,o,a],queryFn:async()=>(await Gp({clusterName:e,namespace:t,apiGroup:n,apiVersion:i,crdName:o,entryName:a})).data,refetchInterval:u!==void 0?u:5e3}),Px=({clusterName:e})=>vn.useQuery({queryKey:["useApisResourceTypes",e],queryFn:async()=>{const t=await Jp({clusterName:e}),n=JSON.parse(JSON.stringify(t.data));return n.metadata?.resourceVersion&&delete n.metadata.resourceVersion,n},refetchInterval:5e3}),Rx=({clusterName:e,apiGroup:t,apiVersion:n})=>vn.useQuery({queryKey:["useApiResourceTypesByGroup",e,t,n],queryFn:async()=>{const i=await Yp({clusterName:e,apiGroup:t,apiVersion:n}),o=JSON.parse(JSON.stringify(i.data));return o.metadata?.resourceVersion&&delete o.metadata.resourceVersion,o},refetchInterval:5e3}),Lx=({clusterName:e})=>vn.useQuery({queryKey:["useBuiltinResourceTypes",e],queryFn:async()=>{const t=await Xp({clusterName:e}),n=JSON.parse(JSON.stringify(t.data));return n.metadata?.resourceVersion&&delete n.metadata.resourceVersion,n},refetchInterval:5e3}),jx=({clusterName:e,apiExtensionVersion:t,crdName:n})=>vn.useQuery({queryKey:["useCrdData",e,t,n],queryFn:async()=>{const i=await Qp({clusterName:e,apiExtensionVersion:t,crdName:n}),o=JSON.parse(JSON.stringify(i.data));return o.metadata?.resourceVersion&&delete o.metadata.resourceVersion,o},refetchInterval:5e3});ue.BackToDefaultIcon=Ch,ue.BlackholeForm=Tp,ue.BlackholeFormDataProvider=Pv,ue.ContentCard=Ih,ue.DeleteIcon=xh,ue.DeleteModal=Yu,ue.DeleteModalMany=Gm,ue.DownIcon=Ah,ue.DynamicComponents=gx,ue.DynamicRenderer=Bp,ue.DynamicRendererWithProviders=yx,ue.EditIcon=Eh,ue.EnrichedTable=qh,ue.EnrichedTableProvider=a2,ue.LockedIcon=kh,ue.ManageableBreadcrumbs=Bh,ue.ManageableBreadcrumbsWithDataProvider=Qm,ue.ManageableSidebar=Rh,ue.ManageableSidebarWithDataProvider=Lh,ue.MarketPlace=Op,ue.MarketplaceCard=Mc,ue.MinusIcon=on,ue.PlusIcon=Xu,ue.ProjectInfoCard=Fp,ue.Spacer=Ar,ue.SuccessIcon=_h,ue.TreeWithSearch=_y,ue.UnlockedIcon=Th,ue.UpIcon=Sh,ue.checkIfApiInstanceNamespaceScoped=Cx,ue.checkIfBuiltInInstanceNamespaceScoped=_x,ue.checkPermission=Yh,ue.createContextFactory=Dp,ue.createNewEntry=Jo,ue.deleteEntry=Ju,ue.feedbackIcons=Vr,ue.filterIfApiInstanceNamespaceScoped=vx,ue.filterIfBuiltInInstanceNamespaceScoped=jp,ue.filterSelectOptions=tc,ue.floorToDecimal=Rs,ue.getAllPathsFromObj=sc,ue.getApiResourceSingle=Wp,ue.getApiResourceTypes=Jp,ue.getApiResourceTypesByApiGroup=Yp,ue.getApiResources=qp,ue.getBuiltinResourceSingle=Hp,ue.getBuiltinResourceTypes=Xp,ue.getBuiltinResources=Kp,ue.getBuiltinTreeData=wx,ue.getClusterList=Vp,ue.getCrdData=Qp,ue.getCrdResourceSingle=Gp,ue.getCrdResources=zp,ue.getDirectUnknownResource=Oh,ue.getEnrichedColumns=Uh,ue.getEnrichedColumnsWithControls=Vh,ue.getGroupsByCategory=xx,ue.getObjectFormItemsDraft=xa,ue.getPrefixSubarrays=Qh,ue.getStringByName=It,ue.getSwagger=Ax,ue.groupsToTreeData=bx,ue.isFlatObject=Mh,ue.isWithAdditionalPrinterColumns=Np,ue.isWithAdditionalPrinterColumnsColWidths=Up,ue.isWithAdditionalPrinterColumnsTrimLengths=Mp,ue.isWithAdditionalPrinterColumnsUndefinedValues=$p,ue.normalizeValuesForQuotasToNumber=Xh,ue.parseCustomOverrides=Sx,ue.parseQuotaValue=T2,ue.parseQuotaValueCpu=nc,ue.parseQuotaValueMemoryAndStorage=rc,ue.prepareDataForEnrichedColumns=Hh,ue.prepareDataForManageableBreadcrumbs=Fh,ue.prepareDataForManageableSidebar=Ph,ue.prepareTableMappings=Ex,ue.prepareTemplate=At,ue.prepareUrlsToFetchForDynamicRenderer=Lp,ue.updateEntry=Yo,ue.useApiResourceSingle=Ix,ue.useApiResourceTypesByGroup=Rx,ue.useApiResources=Tx,ue.useApisResourceTypes=Px,ue.useBuiltinResourceSingle=Fx,ue.useBuiltinResourceTypes=Lx,ue.useBuiltinResources=Ox,ue.useClusterList=kx,ue.useCrdData=jx,ue.useCrdResourceSingle=Dx,ue.useCrdResources=Bx,ue.useDirectUnknownResource=nn,ue.usePermissions=Wr,Object.defineProperty(ue,Symbol.toStringTag,{value:"Module"})});
|
|
571
571
|
//# sourceMappingURL=openapi-k8s-toolkit.umd.js.map
|