@prorobotech/openapi-k8s-toolkit 1.4.0-alpha.23 → 1.4.0-alpha.24

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.
@@ -1,4 +1,4 @@
1
- import { u as useMultiQuery, a as useTheme, b as usePartsOfUrl, p as parseAll, c as usePermissions, s as serializeLabelsWithNoEncoding, _, j as jp, d as useDirectUnknownResource, e as useK8sSmartResource, f as jsxRuntimeExports, R as ReadOnlyModal, E as EnrichedTableProvider, D as DeleteIcon, g as EditIcon, P as PaddingContainer, h as getLinkToForm, i as DeleteModal, k as DeleteModalMany } from './index-C3GT20Hj.mjs';
1
+ import { u as useMultiQuery, a as useTheme, b as usePartsOfUrl, p as parseAll, c as usePermissions, s as serializeLabelsWithNoEncoding, _, j as jp, d as useDirectUnknownResource, e as useK8sSmartResource, f as jsxRuntimeExports, R as ReadOnlyModal, E as EnrichedTableProvider, D as DeleteIcon, g as EditIcon, P as PaddingContainer, h as getLinkToForm, i as DeleteModal, k as DeleteModalMany } from './index-PHzKotN_.mjs';
2
2
  import { useState } from 'react';
3
3
  import { useLocation, useParams, useNavigate } from 'react-router-dom';
4
4
  import { theme, Flex, Spin, Button } from 'antd';
@@ -295,4 +295,4 @@ const EnrichedTableModal = ({
295
295
  };
296
296
 
297
297
  export { EnrichedTableModal };
298
- //# sourceMappingURL=index-oRwnOGcM.mjs.map
298
+ //# sourceMappingURL=index-DfXU2S4O.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-oRwnOGcM.mjs","sources":["../src/components/organisms/DynamicComponents/molecules/AggregatedCounterCard/molecules/EnrichedTableModal/styled.ts","../src/components/organisms/DynamicComponents/molecules/AggregatedCounterCard/molecules/EnrichedTableModal/EnrichedTableModal.tsx"],"sourcesContent":["import styled from 'styled-components'\n\ntype TColorContainerProps = {\n $colorText: string\n}\n\nconst ColorContainer = styled.div<TColorContainerProps>`\n color: ${({ $colorText }) => $colorText};\n\n & tr,\n td {\n color: ${({ $colorText }) => $colorText};\n }\n`\n\nexport const Styled = {\n ColorContainer,\n}\n","/* eslint-disable max-lines-per-function */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { FC, useState, CSSProperties } from 'react'\nimport jp from 'jsonpath'\nimport _ from 'lodash'\nimport { useLocation, useNavigate, useParams } from 'react-router-dom'\nimport { Flex, Spin, Button, theme as antdtheme } from 'antd'\nimport { PlusOutlined, ClearOutlined, MinusOutlined } from '@ant-design/icons'\nimport { EditIcon, DeleteIcon, PaddingContainer, DeleteModal, DeleteModalMany } from 'components/atoms'\nimport { EnrichedTableProvider } from 'components/molecules'\nimport { usePermissions } from 'hooks/usePermissions'\nimport { useK8sSmartResource } from 'hooks/useK8sSmartResource'\nimport { useDirectUnknownResource } from 'hooks/useDirectUnknownResource'\nimport { getLinkToForm } from 'utils/tableLocations'\nimport { useMultiQuery } from '../../../../../DynamicRendererWithProviders/providers/hybridDataProvider'\nimport { usePartsOfUrl } from '../../../../../DynamicRendererWithProviders/providers/partsOfUrlContext'\nimport { useTheme } from '../../../../../DynamicRendererWithProviders/providers/themeContext'\nimport { serializeLabelsWithNoEncoding } from '../../../../utils/EnrichedTable'\nimport { TEnrichedTableProps as TInnerProps } from '../../../../types/EnrichedTable'\nimport { parseAll } from '../../../utils'\nimport { ReadOnlyModal } from '../../../../atoms/modals'\nimport { Styled } from './styled'\n\ntype TEnrichedTableModalProps = {\n open: boolean\n onClose: () => void\n modalTitle?: string\n modalDescriptionText?: string\n modalDescriptionTextStyle?: CSSProperties\n editModalWidth?: number | string\n} & TInnerProps\n\nexport const EnrichedTableModal: FC<TEnrichedTableModalProps> = ({\n open,\n onClose,\n modalTitle,\n modalDescriptionText,\n modalDescriptionTextStyle,\n editModalWidth,\n fetchUrl,\n k8sResourceToFetch,\n pathToItems,\n additionalReqsDataToEachItem,\n cluster,\n labelSelector,\n labelSelectorFull,\n fieldSelector,\n namespace,\n k8sResource,\n dataForControls,\n baseprefix,\n pathToKey,\n ...props\n}) => {\n const location = useLocation()\n const params = useParams()\n const navigate = useNavigate()\n const { token } = antdtheme.useToken()\n\n const [selectedRowKeys, setSelectedRowKeys] = useState<React.Key[]>([])\n const [selectedRowsData, setSelectedRowsData] = useState<{ name: string; endpoint: string }[]>([])\n const [isDeleteModalOpen, setIsDeleteModalOpen] = useState<false | { name: string; endpoint: string }>(false)\n const [isDeleteModalManyOpen, setIsDeleteModalManyOpen] = useState<false | { name: string; endpoint: string }[]>(\n false,\n )\n\n const { data: multiQueryData, isLoading: isMultiqueryLoading } = useMultiQuery()\n\n const theme = useTheme()\n const partsOfUrl = usePartsOfUrl()\n\n const replaceValues = partsOfUrl.partsOfUrl.reduce<Record<string, string | undefined>>((acc, value, index) => {\n acc[index.toString()] = value\n return acc\n }, {})\n\n const clusterPrepared = parseAll({ text: cluster, replaceValues, multiQueryData })\n\n const namespacePrepared = namespace ? parseAll({ text: namespace, replaceValues, multiQueryData }) : undefined\n\n const k8sResourcePrePrepared = k8sResource\n ? {\n apiGroup: k8sResource.apiGroup\n ? parseAll({ text: k8sResource.apiGroup, replaceValues, multiQueryData })\n : undefined,\n apiVersion: parseAll({ text: k8sResource.apiVersion, replaceValues, multiQueryData }),\n plural: parseAll({ text: k8sResource.plural, replaceValues, multiQueryData }),\n }\n : undefined\n\n const k8sResourcePrepared =\n k8sResourcePrePrepared?.apiGroup === '-'\n ? { apiVersion: k8sResourcePrePrepared.apiVersion, plural: k8sResourcePrePrepared.plural }\n : k8sResourcePrePrepared\n\n const dataForControlsPrepared = dataForControls\n ? {\n cluster: clusterPrepared,\n syntheticProject: dataForControls.syntheticProject\n ? parseAll({ text: dataForControls.syntheticProject, replaceValues, multiQueryData })\n : undefined,\n plural: parseAll({ text: dataForControls.plural, replaceValues, multiQueryData }),\n apiGroup: dataForControls.apiGroup\n ? parseAll({ text: dataForControls.apiGroup, replaceValues, multiQueryData })\n : undefined,\n apiVersion: parseAll({ text: dataForControls.apiVersion, replaceValues, multiQueryData }),\n }\n : undefined\n\n const createPermission = usePermissions({\n apiGroup: dataForControlsPrepared?.apiGroup,\n plural: dataForControlsPrepared?.plural || '',\n namespace: namespacePrepared,\n cluster: clusterPrepared,\n verb: 'create',\n refetchInterval: false,\n enabler: Boolean(dataForControlsPrepared && clusterPrepared && !isMultiqueryLoading),\n })\n\n const fetchUrlPrepared = fetchUrl ? parseAll({ text: fetchUrl, replaceValues, multiQueryData }) : undefined\n\n const k8sResourceToFetchPrepared = k8sResourceToFetch\n ? {\n apiGroup: k8sResourceToFetch.apiGroup\n ? parseAll({ text: k8sResourceToFetch.apiGroup, replaceValues, multiQueryData })\n : undefined,\n apiVersion: parseAll({ text: k8sResourceToFetch.apiVersion, replaceValues, multiQueryData }),\n plural: parseAll({ text: k8sResourceToFetch.plural, replaceValues, multiQueryData }),\n namespace: k8sResourceToFetch.namespace\n ? parseAll({ text: k8sResourceToFetch.namespace, replaceValues, multiQueryData })\n : undefined,\n }\n : undefined\n\n const sParams = new URLSearchParams()\n\n if (labelSelector && Object.keys(labelSelector).length > 0) {\n const parsedObject: Record<string, string> = Object.fromEntries(\n Object.entries(labelSelector).map(\n ([k, v]) => [k, parseAll({ text: v, replaceValues, multiQueryData })] as [string, string],\n ),\n )\n const serializedLabels = serializeLabelsWithNoEncoding(parsedObject)\n if (serializedLabels.length > 0) sParams.set('labelSelector', serializedLabels)\n }\n\n if (labelSelectorFull) {\n const root = multiQueryData[`req${labelSelectorFull.reqIndex}`]\n const value = Array.isArray(labelSelectorFull.pathToLabels)\n ? _.get(root || {}, labelSelectorFull.pathToLabels)\n : jp.query(root || {}, `$${labelSelectorFull.pathToLabels}`)[0]\n\n const serializedLabels = serializeLabelsWithNoEncoding(value)\n if (serializedLabels.length > 0) sParams.set('labelSelector', serializedLabels)\n }\n\n if (fieldSelector) {\n const parsedObject: Record<string, string> = Object.fromEntries(\n Object.entries(fieldSelector).map(\n ([k, v]) =>\n [\n parseAll({ text: k, replaceValues, multiQueryData }),\n parseAll({ text: v, replaceValues, multiQueryData }),\n ] as [string, string],\n ),\n )\n const serializedFields = serializeLabelsWithNoEncoding(parsedObject)\n\n if (serializedFields.length > 0) sParams.set('fieldSelector', serializedFields)\n }\n\n const searchParams = sParams.toString()\n\n const {\n data: fetchedData,\n isLoading: isFetchedDataLoading,\n error: fetchedDataError,\n } = useDirectUnknownResource<unknown>({\n uri: `${fetchUrlPrepared}${searchParams ? `?${searchParams}` : ''}`,\n queryKey: [`${fetchUrlPrepared}${searchParams ? `?${searchParams}` : ''}`],\n isEnabled: Boolean(!isMultiqueryLoading && fetchUrlPrepared),\n })\n\n const {\n data: fetchedDataSocket,\n isLoading: isFetchedDataSocketLoading,\n error: fetchedDataSocketError,\n } = useK8sSmartResource<{ items?: unknown }>({\n cluster: clusterPrepared || '',\n namespace: k8sResourceToFetchPrepared?.namespace,\n apiGroup: k8sResourceToFetchPrepared?.apiGroup,\n apiVersion: k8sResourceToFetchPrepared?.apiVersion || '',\n plural: k8sResourceToFetchPrepared?.plural || '',\n fieldSelector: sParams.get('fieldSelector') || undefined,\n labelSelector: sParams.get('labelSelector') || undefined,\n isEnabled: Boolean(!isMultiqueryLoading && k8sResourceToFetchPrepared),\n })\n\n if (fetchUrlPrepared && isMultiqueryLoading) {\n return <div>Loading multiquery</div>\n }\n\n if (k8sResourceToFetchPrepared && isMultiqueryLoading) {\n return <div>Loading multiquery</div>\n }\n\n // if (!fetchedData) {\n // return <div>No data has been fetched</div>\n // }\n\n if (fetchUrlPrepared && isFetchedDataLoading) {\n return (\n <Flex justify=\"center\">\n <Spin />\n </Flex>\n )\n }\n\n if (k8sResourceToFetchPrepared && isFetchedDataSocketLoading) {\n return (\n <Flex justify=\"center\">\n <Spin />\n </Flex>\n )\n }\n\n if (fetchUrlPrepared && fetchedDataError) {\n return <div>Error: {JSON.stringify(fetchedDataError)}</div>\n }\n\n if (k8sResourceToFetchPrepared && fetchedDataSocketError) {\n return <div>Error: {JSON.stringify(fetchedDataError)}</div>\n }\n\n const dataFromOneOfHooks = fetchedData || fetchedDataSocket || {}\n\n const items = Array.isArray(pathToItems)\n ? _.get(dataFromOneOfHooks || {}, pathToItems)\n : jp.query(dataFromOneOfHooks || {}, `$${pathToItems}`)[0]\n\n const itemsAlwaysArr = Array.isArray(items) ? items : []\n\n let additionalReqsData: any[] | undefined = []\n if (additionalReqsDataToEachItem) {\n additionalReqsDataToEachItem.forEach(item => {\n additionalReqsData?.push(multiQueryData[`req${item}`])\n })\n }\n additionalReqsData = additionalReqsData.length > 0 ? additionalReqsData : undefined\n\n const itemsAlwaysArrWithAdditionalData = itemsAlwaysArr.map(el => ({\n ...el,\n ...(additionalReqsData ? { additionalReqsData } : {}),\n }))\n\n // if (!items) {\n // return <div>No data on this path {JSON.stringify(pathToItems)}</div>\n // }\n\n const clearSelected = () => {\n setSelectedRowKeys([])\n setSelectedRowsData([])\n }\n\n const onDeleteHandle = (name: string, endpoint: string) => {\n setIsDeleteModalOpen({ name, endpoint })\n }\n\n const fullPath = `${location.pathname}${location.search}`\n\n const modalTitlePrepared = modalTitle ? parseAll({ text: modalTitle, replaceValues, multiQueryData }) : 'Edit'\n const modalDescriptionTextPrepared = modalDescriptionText\n ? parseAll({ text: modalDescriptionText, replaceValues, multiQueryData })\n : undefined\n\n return (\n <>\n <ReadOnlyModal\n open={open}\n close={onClose}\n modalTitle={modalTitlePrepared}\n modalDescriptionText={modalDescriptionTextPrepared}\n modalDescriptionTextStyle={modalDescriptionTextStyle}\n editModalWidth={editModalWidth}\n >\n <Styled.ColorContainer $colorText={token.colorText}>\n <EnrichedTableProvider\n tableMappingsReplaceValues={replaceValues}\n cluster={clusterPrepared}\n namespace={namespacePrepared}\n theme={theme}\n dataItems={itemsAlwaysArrWithAdditionalData}\n tableProps={{\n borderless: true,\n paginationPosition: ['bottomRight'],\n isTotalLeft: true,\n editIcon: <EditIcon />,\n deleteIcon: <DeleteIcon />,\n disablePagination: true,\n }}\n selectData={\n dataForControlsPrepared\n ? {\n selectedRowKeys,\n onChange: (\n selectedRowKeys: React.Key[],\n selectedRowsData: { name: string; endpoint: string }[],\n ) => {\n setSelectedRowKeys(selectedRowKeys)\n setSelectedRowsData(selectedRowsData)\n },\n }\n : undefined\n }\n k8sResource={k8sResourcePrepared}\n dataForControlsInternal={{ onDeleteHandle }}\n dataForControls={dataForControlsPrepared}\n withoutControls={!dataForControlsPrepared}\n baseprefix={baseprefix}\n pathToKey={pathToKey}\n {...props}\n />\n </Styled.ColorContainer>\n </ReadOnlyModal>\n {dataForControlsPrepared && (\n <PaddingContainer $padding=\"4px\">\n <Flex justify=\"space-between\">\n <Button\n type=\"primary\"\n onClick={() => {\n const url = getLinkToForm({\n cluster: clusterPrepared,\n baseprefix,\n namespace: namespacePrepared,\n syntheticProject: params.syntheticProject,\n apiGroup: dataForControlsPrepared.apiGroup,\n apiVersion: dataForControlsPrepared.apiVersion,\n plural: dataForControlsPrepared.plural,\n fullPath,\n })\n navigate(url)\n }}\n loading={createPermission.isPending}\n disabled={!createPermission.data?.status.allowed}\n >\n <PlusOutlined />\n Add\n </Button>\n {selectedRowKeys.length > 0 && (\n <Flex gap={16}>\n <Button type=\"primary\" onClick={clearSelected}>\n <ClearOutlined />\n Clear\n </Button>\n <Button type=\"primary\" onClick={() => setIsDeleteModalManyOpen(selectedRowsData)}>\n <MinusOutlined />\n Delete\n </Button>\n </Flex>\n )}\n </Flex>\n </PaddingContainer>\n )}\n {isDeleteModalOpen && (\n <DeleteModal\n name={isDeleteModalOpen.name}\n onClose={() => {\n setIsDeleteModalOpen(false)\n clearSelected()\n }}\n endpoint={isDeleteModalOpen.endpoint}\n />\n )}\n {isDeleteModalManyOpen !== false && (\n <DeleteModalMany\n data={isDeleteModalManyOpen}\n onClose={() => {\n setIsDeleteModalManyOpen(false)\n clearSelected()\n }}\n />\n )}\n </>\n )\n}\n"],"names":["antdtheme","theme","jsx","jsxs","Fragment","selectedRowKeys","selectedRowsData"],"mappings":";;;;;;;;;AAMA,MAAM,iBAAiB,MAAO,CAAA,GAAA;AAAA,SAAA,EACnB,CAAC,EAAE,UAAW,EAAA,KAAM,UAAU,CAAA;;AAAA;AAAA;AAAA,WAAA,EAI5B,CAAC,EAAE,UAAW,EAAA,KAAM,UAAU,CAAA;AAAA;AAAA,CAAA;AAIpC,MAAM,MAAS,GAAA;AAAA,EACpB;AACF,CAAA;;ACeO,MAAM,qBAAmD,CAAC;AAAA,EAC/D,IAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,oBAAA;AAAA,EACA,yBAAA;AAAA,EACA,cAAA;AAAA,EACA,QAAA;AAAA,EACA,kBAAA;AAAA,EACA,WAAA;AAAA,EACA,4BAAA;AAAA,EACA,OAAA;AAAA,EACA,aAAA;AAAA,EACA,iBAAA;AAAA,EACA,aAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,eAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAM,KAAA;AACJ,EAAA,MAAM,WAAW,WAAY,EAAA;AAC7B,EAAA,MAAM,SAAS,SAAU,EAAA;AACzB,EAAA,MAAM,WAAW,WAAY,EAAA;AAC7B,EAAA,MAAM,EAAE,KAAA,EAAU,GAAAA,KAAA,CAAU,QAAS,EAAA;AAErC,EAAA,MAAM,CAAC,eAAiB,EAAA,kBAAkB,CAAI,GAAA,QAAA,CAAsB,EAAE,CAAA;AACtE,EAAA,MAAM,CAAC,gBAAkB,EAAA,mBAAmB,CAAI,GAAA,QAAA,CAA+C,EAAE,CAAA;AACjG,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAI,SAAqD,KAAK,CAAA;AAC5G,EAAM,MAAA,CAAC,qBAAuB,EAAA,wBAAwB,CAAI,GAAA,QAAA;AAAA,IACxD;AAAA,GACF;AAEA,EAAA,MAAM,EAAE,IAAM,EAAA,cAAA,EAAgB,SAAW,EAAA,mBAAA,KAAwB,aAAc,EAAA;AAE/E,EAAA,MAAMC,UAAQ,QAAS,EAAA;AACvB,EAAA,MAAM,aAAa,aAAc,EAAA;AAEjC,EAAA,MAAM,gBAAgB,UAAW,CAAA,UAAA,CAAW,OAA2C,CAAC,GAAA,EAAK,OAAO,KAAU,KAAA;AAC5G,IAAI,GAAA,CAAA,KAAA,CAAM,QAAS,EAAC,CAAI,GAAA,KAAA;AACxB,IAAO,OAAA,GAAA;AAAA,GACT,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,kBAAkB,QAAS,CAAA,EAAE,MAAM,OAAS,EAAA,aAAA,EAAe,gBAAgB,CAAA;AAEjF,EAAM,MAAA,iBAAA,GAAoB,YAAY,QAAS,CAAA,EAAE,MAAM,SAAW,EAAA,aAAA,EAAe,cAAe,EAAC,CAAI,GAAA,MAAA;AAErG,EAAA,MAAM,yBAAyB,WAC3B,GAAA;AAAA,IACE,QAAA,EAAU,WAAY,CAAA,QAAA,GAClB,QAAS,CAAA,EAAE,IAAM,EAAA,WAAA,CAAY,QAAU,EAAA,aAAA,EAAe,cAAe,EAAC,CACtE,GAAA,MAAA;AAAA,IACJ,UAAA,EAAY,SAAS,EAAE,IAAA,EAAM,YAAY,UAAY,EAAA,aAAA,EAAe,gBAAgB,CAAA;AAAA,IACpF,MAAA,EAAQ,SAAS,EAAE,IAAA,EAAM,YAAY,MAAQ,EAAA,aAAA,EAAe,gBAAgB;AAAA,GAE9E,GAAA,MAAA;AAEJ,EAAM,MAAA,mBAAA,GACJ,sBAAwB,EAAA,QAAA,KAAa,GACjC,GAAA,EAAE,UAAY,EAAA,sBAAA,CAAuB,UAAY,EAAA,MAAA,EAAQ,sBAAuB,CAAA,MAAA,EAChF,GAAA,sBAAA;AAEN,EAAA,MAAM,0BAA0B,eAC5B,GAAA;AAAA,IACE,OAAS,EAAA,eAAA;AAAA,IACT,gBAAA,EAAkB,eAAgB,CAAA,gBAAA,GAC9B,QAAS,CAAA,EAAE,IAAM,EAAA,eAAA,CAAgB,gBAAkB,EAAA,aAAA,EAAe,cAAe,EAAC,CAClF,GAAA,MAAA;AAAA,IACJ,MAAA,EAAQ,SAAS,EAAE,IAAA,EAAM,gBAAgB,MAAQ,EAAA,aAAA,EAAe,gBAAgB,CAAA;AAAA,IAChF,QAAA,EAAU,eAAgB,CAAA,QAAA,GACtB,QAAS,CAAA,EAAE,IAAM,EAAA,eAAA,CAAgB,QAAU,EAAA,aAAA,EAAe,cAAe,EAAC,CAC1E,GAAA,MAAA;AAAA,IACJ,UAAA,EAAY,SAAS,EAAE,IAAA,EAAM,gBAAgB,UAAY,EAAA,aAAA,EAAe,gBAAgB;AAAA,GAE1F,GAAA,MAAA;AAEJ,EAAA,MAAM,mBAAmB,cAAe,CAAA;AAAA,IACtC,UAAU,uBAAyB,EAAA,QAAA;AAAA,IACnC,MAAA,EAAQ,yBAAyB,MAAU,IAAA,EAAA;AAAA,IAC3C,SAAW,EAAA,iBAAA;AAAA,IACX,OAAS,EAAA,eAAA;AAAA,IACT,IAAM,EAAA,QAAA;AAAA,IACN,eAAiB,EAAA,KAAA;AAAA,IACjB,OAAS,EAAA,OAAA,CAAQ,uBAA2B,IAAA,eAAA,IAAmB,CAAC,mBAAmB;AAAA,GACpF,CAAA;AAED,EAAM,MAAA,gBAAA,GAAmB,WAAW,QAAS,CAAA,EAAE,MAAM,QAAU,EAAA,aAAA,EAAe,cAAe,EAAC,CAAI,GAAA,MAAA;AAElG,EAAA,MAAM,6BAA6B,kBAC/B,GAAA;AAAA,IACE,QAAA,EAAU,kBAAmB,CAAA,QAAA,GACzB,QAAS,CAAA,EAAE,IAAM,EAAA,kBAAA,CAAmB,QAAU,EAAA,aAAA,EAAe,cAAe,EAAC,CAC7E,GAAA,MAAA;AAAA,IACJ,UAAA,EAAY,SAAS,EAAE,IAAA,EAAM,mBAAmB,UAAY,EAAA,aAAA,EAAe,gBAAgB,CAAA;AAAA,IAC3F,MAAA,EAAQ,SAAS,EAAE,IAAA,EAAM,mBAAmB,MAAQ,EAAA,aAAA,EAAe,gBAAgB,CAAA;AAAA,IACnF,SAAA,EAAW,kBAAmB,CAAA,SAAA,GAC1B,QAAS,CAAA,EAAE,IAAM,EAAA,kBAAA,CAAmB,SAAW,EAAA,aAAA,EAAe,cAAe,EAAC,CAC9E,GAAA;AAAA,GAEN,GAAA,MAAA;AAEJ,EAAM,MAAA,OAAA,GAAU,IAAI,eAAgB,EAAA;AAEpC,EAAA,IAAI,iBAAiB,MAAO,CAAA,IAAA,CAAK,aAAa,CAAA,CAAE,SAAS,CAAG,EAAA;AAC1D,IAAA,MAAM,eAAuC,MAAO,CAAA,WAAA;AAAA,MAClD,MAAA,CAAO,OAAQ,CAAA,aAAa,CAAE,CAAA,GAAA;AAAA,QAC5B,CAAC,CAAC,CAAG,EAAA,CAAC,MAAM,CAAC,CAAA,EAAG,QAAS,CAAA,EAAE,IAAM,EAAA,CAAA,EAAG,aAAe,EAAA,cAAA,EAAgB,CAAC;AAAA;AACtE,KACF;AACA,IAAM,MAAA,gBAAA,GAAmB,8BAA8B,YAAY,CAAA;AACnE,IAAA,IAAI,iBAAiB,MAAS,GAAA,CAAA,EAAW,OAAA,CAAA,GAAA,CAAI,iBAAiB,gBAAgB,CAAA;AAAA;AAGhF,EAAA,IAAI,iBAAmB,EAAA;AACrB,IAAA,MAAM,IAAO,GAAA,cAAA,CAAe,CAAM,GAAA,EAAA,iBAAA,CAAkB,QAAQ,CAAE,CAAA,CAAA;AAC9D,IAAM,MAAA,KAAA,GAAQ,KAAM,CAAA,OAAA,CAAQ,iBAAkB,CAAA,YAAY,IACtD,CAAE,CAAA,GAAA,CAAI,IAAQ,IAAA,EAAI,EAAA,iBAAA,CAAkB,YAAY,CAChD,GAAA,EAAA,CAAG,KAAM,CAAA,IAAA,IAAQ,EAAC,EAAG,IAAI,iBAAkB,CAAA,YAAY,CAAE,CAAA,CAAA,CAAE,CAAC,CAAA;AAEhE,IAAM,MAAA,gBAAA,GAAmB,8BAA8B,KAAK,CAAA;AAC5D,IAAA,IAAI,iBAAiB,MAAS,GAAA,CAAA,EAAW,OAAA,CAAA,GAAA,CAAI,iBAAiB,gBAAgB,CAAA;AAAA;AAGhF,EAAA,IAAI,aAAe,EAAA;AACjB,IAAA,MAAM,eAAuC,MAAO,CAAA,WAAA;AAAA,MAClD,MAAA,CAAO,OAAQ,CAAA,aAAa,CAAE,CAAA,GAAA;AAAA,QAC5B,CAAC,CAAC,CAAG,EAAA,CAAC,CACJ,KAAA;AAAA,UACE,SAAS,EAAE,IAAA,EAAM,CAAG,EAAA,aAAA,EAAe,gBAAgB,CAAA;AAAA,UACnD,SAAS,EAAE,IAAA,EAAM,CAAG,EAAA,aAAA,EAAe,gBAAgB;AAAA;AACrD;AACJ,KACF;AACA,IAAM,MAAA,gBAAA,GAAmB,8BAA8B,YAAY,CAAA;AAEnE,IAAA,IAAI,iBAAiB,MAAS,GAAA,CAAA,EAAW,OAAA,CAAA,GAAA,CAAI,iBAAiB,gBAAgB,CAAA;AAAA;AAGhF,EAAM,MAAA,YAAA,GAAe,QAAQ,QAAS,EAAA;AAEtC,EAAM,MAAA;AAAA,IACJ,IAAM,EAAA,WAAA;AAAA,IACN,SAAW,EAAA,oBAAA;AAAA,IACX,KAAO,EAAA;AAAA,MACL,wBAAkC,CAAA;AAAA,IACpC,GAAA,EAAK,GAAG,gBAAgB,CAAA,EAAG,eAAe,CAAI,CAAA,EAAA,YAAY,KAAK,EAAE,CAAA,CAAA;AAAA,IACjE,QAAA,EAAU,CAAC,CAAA,EAAG,gBAAgB,CAAA,EAAG,eAAe,CAAI,CAAA,EAAA,YAAY,CAAK,CAAA,GAAA,EAAE,CAAE,CAAA,CAAA;AAAA,IACzE,SAAW,EAAA,OAAA,CAAQ,CAAC,mBAAA,IAAuB,gBAAgB;AAAA,GAC5D,CAAA;AAED,EAAM,MAAA;AAAA,IACJ,IAAM,EAAA,iBAAA;AAAA,IACN,SAAW,EAAA,0BAAA;AAAA,IACX,KAAO,EAAA;AAAA,MACL,mBAAyC,CAAA;AAAA,IAC3C,SAAS,eAAmB,IAAA,EAAA;AAAA,IAC5B,WAAW,0BAA4B,EAAA,SAAA;AAAA,IACvC,UAAU,0BAA4B,EAAA,QAAA;AAAA,IACtC,UAAA,EAAY,4BAA4B,UAAc,IAAA,EAAA;AAAA,IACtD,MAAA,EAAQ,4BAA4B,MAAU,IAAA,EAAA;AAAA,IAC9C,aAAe,EAAA,OAAA,CAAQ,GAAI,CAAA,eAAe,CAAK,IAAA,MAAA;AAAA,IAC/C,aAAe,EAAA,OAAA,CAAQ,GAAI,CAAA,eAAe,CAAK,IAAA,MAAA;AAAA,IAC/C,SAAW,EAAA,OAAA,CAAQ,CAAC,mBAAA,IAAuB,0BAA0B;AAAA,GACtE,CAAA;AAED,EAAA,IAAI,oBAAoB,mBAAqB,EAAA;AAC3C,IAAO,uBAAAC,qBAAA,CAAC,SAAI,QAAkB,EAAA,oBAAA,EAAA,CAAA;AAAA;AAGhC,EAAA,IAAI,8BAA8B,mBAAqB,EAAA;AACrD,IAAO,uBAAAA,qBAAA,CAAC,SAAI,QAAkB,EAAA,oBAAA,EAAA,CAAA;AAAA;AAOhC,EAAA,IAAI,oBAAoB,oBAAsB,EAAA;AAC5C,IAAA,6CACG,IAAK,EAAA,EAAA,OAAA,EAAQ,QACZ,EAAA,QAAA,kBAAAA,qBAAA,CAAC,QAAK,CACR,EAAA,CAAA;AAAA;AAIJ,EAAA,IAAI,8BAA8B,0BAA4B,EAAA;AAC5D,IAAA,6CACG,IAAK,EAAA,EAAA,OAAA,EAAQ,QACZ,EAAA,QAAA,kBAAAA,qBAAA,CAAC,QAAK,CACR,EAAA,CAAA;AAAA;AAIJ,EAAA,IAAI,oBAAoB,gBAAkB,EAAA;AACxC,IAAA,8CAAQ,KAAI,EAAA,EAAA,QAAA,EAAA;AAAA,MAAA,SAAA;AAAA,MAAQ,IAAA,CAAK,UAAU,gBAAgB;AAAA,KAAE,EAAA,CAAA;AAAA;AAGvD,EAAA,IAAI,8BAA8B,sBAAwB,EAAA;AACxD,IAAA,8CAAQ,KAAI,EAAA,EAAA,QAAA,EAAA;AAAA,MAAA,SAAA;AAAA,MAAQ,IAAA,CAAK,UAAU,gBAAgB;AAAA,KAAE,EAAA,CAAA;AAAA;AAGvD,EAAM,MAAA,kBAAA,GAAqB,WAAe,IAAA,iBAAA,IAAqB,EAAC;AAEhE,EAAM,MAAA,KAAA,GAAQ,MAAM,OAAQ,CAAA,WAAW,IACnC,CAAE,CAAA,GAAA,CAAI,sBAAsB,EAAC,EAAG,WAAW,CAC3C,GAAA,EAAA,CAAG,MAAM,kBAAsB,IAAA,IAAI,CAAI,CAAA,EAAA,WAAW,CAAE,CAAA,CAAA,CAAE,CAAC,CAAA;AAE3D,EAAA,MAAM,iBAAiB,KAAM,CAAA,OAAA,CAAQ,KAAK,CAAA,GAAI,QAAQ,EAAC;AAEvD,EAAA,IAAI,qBAAwC,EAAC;AAC7C,EAAA,IAAI,4BAA8B,EAAA;AAChC,IAAA,4BAAA,CAA6B,QAAQ,CAAQ,IAAA,KAAA;AAC3C,MAAA,kBAAA,EAAoB,IAAK,CAAA,cAAA,CAAe,CAAM,GAAA,EAAA,IAAI,EAAE,CAAC,CAAA;AAAA,KACtD,CAAA;AAAA;AAEH,EAAqB,kBAAA,GAAA,kBAAA,CAAmB,MAAS,GAAA,CAAA,GAAI,kBAAqB,GAAA,MAAA;AAE1E,EAAM,MAAA,gCAAA,GAAmC,cAAe,CAAA,GAAA,CAAI,CAAO,EAAA,MAAA;AAAA,IACjE,GAAG,EAAA;AAAA,IACH,GAAI,kBAAA,GAAqB,EAAE,kBAAA,KAAuB;AAAC,GACnD,CAAA,CAAA;AAMF,EAAA,MAAM,gBAAgB,MAAM;AAC1B,IAAA,kBAAA,CAAmB,EAAE,CAAA;AACrB,IAAA,mBAAA,CAAoB,EAAE,CAAA;AAAA,GACxB;AAEA,EAAM,MAAA,cAAA,GAAiB,CAAC,IAAA,EAAc,QAAqB,KAAA;AACzD,IAAqB,oBAAA,CAAA,EAAE,IAAM,EAAA,QAAA,EAAU,CAAA;AAAA,GACzC;AAEA,EAAA,MAAM,WAAW,CAAG,EAAA,QAAA,CAAS,QAAQ,CAAA,EAAG,SAAS,MAAM,CAAA,CAAA;AAEvD,EAAM,MAAA,kBAAA,GAAqB,aAAa,QAAS,CAAA,EAAE,MAAM,UAAY,EAAA,aAAA,EAAe,cAAe,EAAC,CAAI,GAAA,MAAA;AACxG,EAAM,MAAA,4BAAA,GAA+B,uBACjC,QAAS,CAAA,EAAE,MAAM,oBAAsB,EAAA,aAAA,EAAe,cAAe,EAAC,CACtE,GAAA,MAAA;AAEJ,EAAA,uBAEIC,sBAAA,CAAAC,0BAAA,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAAF,qBAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACC,IAAA;AAAA,QACA,KAAO,EAAA,OAAA;AAAA,QACP,UAAY,EAAA,kBAAA;AAAA,QACZ,oBAAsB,EAAA,4BAAA;AAAA,QACtB,yBAAA;AAAA,QACA,cAAA;AAAA,QAEA,gDAAC,MAAO,CAAA,cAAA,EAAP,EAAsB,UAAA,EAAY,MAAM,SACvC,EAAA,QAAA,kBAAAA,qBAAA;AAAA,UAAC,qBAAA;AAAA,UAAA;AAAA,YACC,0BAA4B,EAAA,aAAA;AAAA,YAC5B,OAAS,EAAA,eAAA;AAAA,YACT,SAAW,EAAA,iBAAA;AAAA,mBACXD,OAAA;AAAA,YACA,SAAW,EAAA,gCAAA;AAAA,YACX,UAAY,EAAA;AAAA,cACV,UAAY,EAAA,IAAA;AAAA,cACZ,kBAAA,EAAoB,CAAC,aAAa,CAAA;AAAA,cAClC,WAAa,EAAA,IAAA;AAAA,cACb,QAAA,wCAAW,QAAS,EAAA,EAAA,CAAA;AAAA,cACpB,UAAA,wCAAa,UAAW,EAAA,EAAA,CAAA;AAAA,cACxB,iBAAmB,EAAA;AAAA,aACrB;AAAA,YACA,YACE,uBACI,GAAA;AAAA,cACE,eAAA;AAAA,cACA,QAAA,EAAU,CACRI,gBAAAA,EACAC,iBACG,KAAA;AACH,gBAAA,kBAAA,CAAmBD,gBAAe,CAAA;AAClC,gBAAA,mBAAA,CAAoBC,iBAAgB,CAAA;AAAA;AACtC,aAEF,GAAA,MAAA;AAAA,YAEN,WAAa,EAAA,mBAAA;AAAA,YACb,uBAAA,EAAyB,EAAE,cAAe,EAAA;AAAA,YAC1C,eAAiB,EAAA,uBAAA;AAAA,YACjB,iBAAiB,CAAC,uBAAA;AAAA,YAClB,UAAA;AAAA,YACA,SAAA;AAAA,YACC,GAAG;AAAA;AAAA,SAER,EAAA;AAAA;AAAA,KACF;AAAA,IACC,uBAAA,0CACE,gBAAiB,EAAA,EAAA,QAAA,EAAS,OACzB,QAAC,kBAAAH,sBAAA,CAAA,IAAA,EAAA,EAAK,SAAQ,eACZ,EAAA,QAAA,EAAA;AAAA,sBAAAA,sBAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,IAAK,EAAA,SAAA;AAAA,UACL,SAAS,MAAM;AACb,YAAA,MAAM,MAAM,aAAc,CAAA;AAAA,cACxB,OAAS,EAAA,eAAA;AAAA,cACT,UAAA;AAAA,cACA,SAAW,EAAA,iBAAA;AAAA,cACX,kBAAkB,MAAO,CAAA,gBAAA;AAAA,cACzB,UAAU,uBAAwB,CAAA,QAAA;AAAA,cAClC,YAAY,uBAAwB,CAAA,UAAA;AAAA,cACpC,QAAQ,uBAAwB,CAAA,MAAA;AAAA,cAChC;AAAA,aACD,CAAA;AACD,YAAA,QAAA,CAAS,GAAG,CAAA;AAAA,WACd;AAAA,UACA,SAAS,gBAAiB,CAAA,SAAA;AAAA,UAC1B,QAAU,EAAA,CAAC,gBAAiB,CAAA,IAAA,EAAM,MAAO,CAAA,OAAA;AAAA,UAEzC,QAAA,EAAA;AAAA,4BAAAD,qBAAA,CAAC,YAAa,EAAA,EAAA,CAAA;AAAA,YAAE;AAAA;AAAA;AAAA,OAElB;AAAA,MACC,gBAAgB,MAAS,GAAA,CAAA,oBACvBC,sBAAA,CAAA,IAAA,EAAA,EAAK,KAAK,EACT,EAAA,QAAA,EAAA;AAAA,wBAAAA,sBAAA,CAAC,MAAO,EAAA,EAAA,IAAA,EAAK,SAAU,EAAA,OAAA,EAAS,aAC9B,EAAA,QAAA,EAAA;AAAA,0BAAAD,qBAAA,CAAC,aAAc,EAAA,EAAA,CAAA;AAAA,UAAE;AAAA,SAEnB,EAAA,CAAA;AAAA,wBACAC,sBAAA,CAAC,UAAO,IAAK,EAAA,SAAA,EAAU,SAAS,MAAM,wBAAA,CAAyB,gBAAgB,CAC7E,EAAA,QAAA,EAAA;AAAA,0BAAAD,qBAAA,CAAC,aAAc,EAAA,EAAA,CAAA;AAAA,UAAE;AAAA,SAEnB,EAAA;AAAA,OACF,EAAA;AAAA,KAAA,EAEJ,CACF,EAAA,CAAA;AAAA,IAED,iBACC,oBAAAA,qBAAA;AAAA,MAAC,WAAA;AAAA,MAAA;AAAA,QACC,MAAM,iBAAkB,CAAA,IAAA;AAAA,QACxB,SAAS,MAAM;AACb,UAAA,oBAAA,CAAqB,KAAK,CAAA;AAC1B,UAAc,aAAA,EAAA;AAAA,SAChB;AAAA,QACA,UAAU,iBAAkB,CAAA;AAAA;AAAA,KAC9B;AAAA,IAED,0BAA0B,KACzB,oBAAAA,qBAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACC,IAAM,EAAA,qBAAA;AAAA,QACN,SAAS,MAAM;AACb,UAAA,wBAAA,CAAyB,KAAK,CAAA;AAC9B,UAAc,aAAA,EAAA;AAAA;AAChB;AAAA;AACF,GAEJ,EAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"index-DfXU2S4O.mjs","sources":["../src/components/organisms/DynamicComponents/molecules/AggregatedCounterCard/molecules/EnrichedTableModal/styled.ts","../src/components/organisms/DynamicComponents/molecules/AggregatedCounterCard/molecules/EnrichedTableModal/EnrichedTableModal.tsx"],"sourcesContent":["import styled from 'styled-components'\n\ntype TColorContainerProps = {\n $colorText: string\n}\n\nconst ColorContainer = styled.div<TColorContainerProps>`\n color: ${({ $colorText }) => $colorText};\n\n & tr,\n td {\n color: ${({ $colorText }) => $colorText};\n }\n`\n\nexport const Styled = {\n ColorContainer,\n}\n","/* eslint-disable max-lines-per-function */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { FC, useState, CSSProperties } from 'react'\nimport jp from 'jsonpath'\nimport _ from 'lodash'\nimport { useLocation, useNavigate, useParams } from 'react-router-dom'\nimport { Flex, Spin, Button, theme as antdtheme } from 'antd'\nimport { PlusOutlined, ClearOutlined, MinusOutlined } from '@ant-design/icons'\nimport { EditIcon, DeleteIcon, PaddingContainer, DeleteModal, DeleteModalMany } from 'components/atoms'\nimport { EnrichedTableProvider } from 'components/molecules'\nimport { usePermissions } from 'hooks/usePermissions'\nimport { useK8sSmartResource } from 'hooks/useK8sSmartResource'\nimport { useDirectUnknownResource } from 'hooks/useDirectUnknownResource'\nimport { getLinkToForm } from 'utils/tableLocations'\nimport { useMultiQuery } from '../../../../../DynamicRendererWithProviders/providers/hybridDataProvider'\nimport { usePartsOfUrl } from '../../../../../DynamicRendererWithProviders/providers/partsOfUrlContext'\nimport { useTheme } from '../../../../../DynamicRendererWithProviders/providers/themeContext'\nimport { serializeLabelsWithNoEncoding } from '../../../../utils/EnrichedTable'\nimport { TEnrichedTableProps as TInnerProps } from '../../../../types/EnrichedTable'\nimport { parseAll } from '../../../utils'\nimport { ReadOnlyModal } from '../../../../atoms/modals'\nimport { Styled } from './styled'\n\ntype TEnrichedTableModalProps = {\n open: boolean\n onClose: () => void\n modalTitle?: string\n modalDescriptionText?: string\n modalDescriptionTextStyle?: CSSProperties\n editModalWidth?: number | string\n} & TInnerProps\n\nexport const EnrichedTableModal: FC<TEnrichedTableModalProps> = ({\n open,\n onClose,\n modalTitle,\n modalDescriptionText,\n modalDescriptionTextStyle,\n editModalWidth,\n fetchUrl,\n k8sResourceToFetch,\n pathToItems,\n additionalReqsDataToEachItem,\n cluster,\n labelSelector,\n labelSelectorFull,\n fieldSelector,\n namespace,\n k8sResource,\n dataForControls,\n baseprefix,\n pathToKey,\n ...props\n}) => {\n const location = useLocation()\n const params = useParams()\n const navigate = useNavigate()\n const { token } = antdtheme.useToken()\n\n const [selectedRowKeys, setSelectedRowKeys] = useState<React.Key[]>([])\n const [selectedRowsData, setSelectedRowsData] = useState<{ name: string; endpoint: string }[]>([])\n const [isDeleteModalOpen, setIsDeleteModalOpen] = useState<false | { name: string; endpoint: string }>(false)\n const [isDeleteModalManyOpen, setIsDeleteModalManyOpen] = useState<false | { name: string; endpoint: string }[]>(\n false,\n )\n\n const { data: multiQueryData, isLoading: isMultiqueryLoading } = useMultiQuery()\n\n const theme = useTheme()\n const partsOfUrl = usePartsOfUrl()\n\n const replaceValues = partsOfUrl.partsOfUrl.reduce<Record<string, string | undefined>>((acc, value, index) => {\n acc[index.toString()] = value\n return acc\n }, {})\n\n const clusterPrepared = parseAll({ text: cluster, replaceValues, multiQueryData })\n\n const namespacePrepared = namespace ? parseAll({ text: namespace, replaceValues, multiQueryData }) : undefined\n\n const k8sResourcePrePrepared = k8sResource\n ? {\n apiGroup: k8sResource.apiGroup\n ? parseAll({ text: k8sResource.apiGroup, replaceValues, multiQueryData })\n : undefined,\n apiVersion: parseAll({ text: k8sResource.apiVersion, replaceValues, multiQueryData }),\n plural: parseAll({ text: k8sResource.plural, replaceValues, multiQueryData }),\n }\n : undefined\n\n const k8sResourcePrepared =\n k8sResourcePrePrepared?.apiGroup === '-'\n ? { apiVersion: k8sResourcePrePrepared.apiVersion, plural: k8sResourcePrePrepared.plural }\n : k8sResourcePrePrepared\n\n const dataForControlsPrepared = dataForControls\n ? {\n cluster: clusterPrepared,\n syntheticProject: dataForControls.syntheticProject\n ? parseAll({ text: dataForControls.syntheticProject, replaceValues, multiQueryData })\n : undefined,\n plural: parseAll({ text: dataForControls.plural, replaceValues, multiQueryData }),\n apiGroup: dataForControls.apiGroup\n ? parseAll({ text: dataForControls.apiGroup, replaceValues, multiQueryData })\n : undefined,\n apiVersion: parseAll({ text: dataForControls.apiVersion, replaceValues, multiQueryData }),\n }\n : undefined\n\n const createPermission = usePermissions({\n apiGroup: dataForControlsPrepared?.apiGroup,\n plural: dataForControlsPrepared?.plural || '',\n namespace: namespacePrepared,\n cluster: clusterPrepared,\n verb: 'create',\n refetchInterval: false,\n enabler: Boolean(dataForControlsPrepared && clusterPrepared && !isMultiqueryLoading),\n })\n\n const fetchUrlPrepared = fetchUrl ? parseAll({ text: fetchUrl, replaceValues, multiQueryData }) : undefined\n\n const k8sResourceToFetchPrepared = k8sResourceToFetch\n ? {\n apiGroup: k8sResourceToFetch.apiGroup\n ? parseAll({ text: k8sResourceToFetch.apiGroup, replaceValues, multiQueryData })\n : undefined,\n apiVersion: parseAll({ text: k8sResourceToFetch.apiVersion, replaceValues, multiQueryData }),\n plural: parseAll({ text: k8sResourceToFetch.plural, replaceValues, multiQueryData }),\n namespace: k8sResourceToFetch.namespace\n ? parseAll({ text: k8sResourceToFetch.namespace, replaceValues, multiQueryData })\n : undefined,\n }\n : undefined\n\n const sParams = new URLSearchParams()\n\n if (labelSelector && Object.keys(labelSelector).length > 0) {\n const parsedObject: Record<string, string> = Object.fromEntries(\n Object.entries(labelSelector).map(\n ([k, v]) => [k, parseAll({ text: v, replaceValues, multiQueryData })] as [string, string],\n ),\n )\n const serializedLabels = serializeLabelsWithNoEncoding(parsedObject)\n if (serializedLabels.length > 0) sParams.set('labelSelector', serializedLabels)\n }\n\n if (labelSelectorFull) {\n const root = multiQueryData[`req${labelSelectorFull.reqIndex}`]\n const value = Array.isArray(labelSelectorFull.pathToLabels)\n ? _.get(root || {}, labelSelectorFull.pathToLabels)\n : jp.query(root || {}, `$${labelSelectorFull.pathToLabels}`)[0]\n\n const serializedLabels = serializeLabelsWithNoEncoding(value)\n if (serializedLabels.length > 0) sParams.set('labelSelector', serializedLabels)\n }\n\n if (fieldSelector) {\n const parsedObject: Record<string, string> = Object.fromEntries(\n Object.entries(fieldSelector).map(\n ([k, v]) =>\n [\n parseAll({ text: k, replaceValues, multiQueryData }),\n parseAll({ text: v, replaceValues, multiQueryData }),\n ] as [string, string],\n ),\n )\n const serializedFields = serializeLabelsWithNoEncoding(parsedObject)\n\n if (serializedFields.length > 0) sParams.set('fieldSelector', serializedFields)\n }\n\n const searchParams = sParams.toString()\n\n const {\n data: fetchedData,\n isLoading: isFetchedDataLoading,\n error: fetchedDataError,\n } = useDirectUnknownResource<unknown>({\n uri: `${fetchUrlPrepared}${searchParams ? `?${searchParams}` : ''}`,\n queryKey: [`${fetchUrlPrepared}${searchParams ? `?${searchParams}` : ''}`],\n isEnabled: Boolean(!isMultiqueryLoading && fetchUrlPrepared),\n })\n\n const {\n data: fetchedDataSocket,\n isLoading: isFetchedDataSocketLoading,\n error: fetchedDataSocketError,\n } = useK8sSmartResource<{ items?: unknown }>({\n cluster: clusterPrepared || '',\n namespace: k8sResourceToFetchPrepared?.namespace,\n apiGroup: k8sResourceToFetchPrepared?.apiGroup,\n apiVersion: k8sResourceToFetchPrepared?.apiVersion || '',\n plural: k8sResourceToFetchPrepared?.plural || '',\n fieldSelector: sParams.get('fieldSelector') || undefined,\n labelSelector: sParams.get('labelSelector') || undefined,\n isEnabled: Boolean(!isMultiqueryLoading && k8sResourceToFetchPrepared),\n })\n\n if (fetchUrlPrepared && isMultiqueryLoading) {\n return <div>Loading multiquery</div>\n }\n\n if (k8sResourceToFetchPrepared && isMultiqueryLoading) {\n return <div>Loading multiquery</div>\n }\n\n // if (!fetchedData) {\n // return <div>No data has been fetched</div>\n // }\n\n if (fetchUrlPrepared && isFetchedDataLoading) {\n return (\n <Flex justify=\"center\">\n <Spin />\n </Flex>\n )\n }\n\n if (k8sResourceToFetchPrepared && isFetchedDataSocketLoading) {\n return (\n <Flex justify=\"center\">\n <Spin />\n </Flex>\n )\n }\n\n if (fetchUrlPrepared && fetchedDataError) {\n return <div>Error: {JSON.stringify(fetchedDataError)}</div>\n }\n\n if (k8sResourceToFetchPrepared && fetchedDataSocketError) {\n return <div>Error: {JSON.stringify(fetchedDataError)}</div>\n }\n\n const dataFromOneOfHooks = fetchedData || fetchedDataSocket || {}\n\n const items = Array.isArray(pathToItems)\n ? _.get(dataFromOneOfHooks || {}, pathToItems)\n : jp.query(dataFromOneOfHooks || {}, `$${pathToItems}`)[0]\n\n const itemsAlwaysArr = Array.isArray(items) ? items : []\n\n let additionalReqsData: any[] | undefined = []\n if (additionalReqsDataToEachItem) {\n additionalReqsDataToEachItem.forEach(item => {\n additionalReqsData?.push(multiQueryData[`req${item}`])\n })\n }\n additionalReqsData = additionalReqsData.length > 0 ? additionalReqsData : undefined\n\n const itemsAlwaysArrWithAdditionalData = itemsAlwaysArr.map(el => ({\n ...el,\n ...(additionalReqsData ? { additionalReqsData } : {}),\n }))\n\n // if (!items) {\n // return <div>No data on this path {JSON.stringify(pathToItems)}</div>\n // }\n\n const clearSelected = () => {\n setSelectedRowKeys([])\n setSelectedRowsData([])\n }\n\n const onDeleteHandle = (name: string, endpoint: string) => {\n setIsDeleteModalOpen({ name, endpoint })\n }\n\n const fullPath = `${location.pathname}${location.search}`\n\n const modalTitlePrepared = modalTitle ? parseAll({ text: modalTitle, replaceValues, multiQueryData }) : 'Edit'\n const modalDescriptionTextPrepared = modalDescriptionText\n ? parseAll({ text: modalDescriptionText, replaceValues, multiQueryData })\n : undefined\n\n return (\n <>\n <ReadOnlyModal\n open={open}\n close={onClose}\n modalTitle={modalTitlePrepared}\n modalDescriptionText={modalDescriptionTextPrepared}\n modalDescriptionTextStyle={modalDescriptionTextStyle}\n editModalWidth={editModalWidth}\n >\n <Styled.ColorContainer $colorText={token.colorText}>\n <EnrichedTableProvider\n tableMappingsReplaceValues={replaceValues}\n cluster={clusterPrepared}\n namespace={namespacePrepared}\n theme={theme}\n dataItems={itemsAlwaysArrWithAdditionalData}\n tableProps={{\n borderless: true,\n paginationPosition: ['bottomRight'],\n isTotalLeft: true,\n editIcon: <EditIcon />,\n deleteIcon: <DeleteIcon />,\n disablePagination: true,\n }}\n selectData={\n dataForControlsPrepared\n ? {\n selectedRowKeys,\n onChange: (\n selectedRowKeys: React.Key[],\n selectedRowsData: { name: string; endpoint: string }[],\n ) => {\n setSelectedRowKeys(selectedRowKeys)\n setSelectedRowsData(selectedRowsData)\n },\n }\n : undefined\n }\n k8sResource={k8sResourcePrepared}\n dataForControlsInternal={{ onDeleteHandle }}\n dataForControls={dataForControlsPrepared}\n withoutControls={!dataForControlsPrepared}\n baseprefix={baseprefix}\n pathToKey={pathToKey}\n {...props}\n />\n </Styled.ColorContainer>\n </ReadOnlyModal>\n {dataForControlsPrepared && (\n <PaddingContainer $padding=\"4px\">\n <Flex justify=\"space-between\">\n <Button\n type=\"primary\"\n onClick={() => {\n const url = getLinkToForm({\n cluster: clusterPrepared,\n baseprefix,\n namespace: namespacePrepared,\n syntheticProject: params.syntheticProject,\n apiGroup: dataForControlsPrepared.apiGroup,\n apiVersion: dataForControlsPrepared.apiVersion,\n plural: dataForControlsPrepared.plural,\n fullPath,\n })\n navigate(url)\n }}\n loading={createPermission.isPending}\n disabled={!createPermission.data?.status.allowed}\n >\n <PlusOutlined />\n Add\n </Button>\n {selectedRowKeys.length > 0 && (\n <Flex gap={16}>\n <Button type=\"primary\" onClick={clearSelected}>\n <ClearOutlined />\n Clear\n </Button>\n <Button type=\"primary\" onClick={() => setIsDeleteModalManyOpen(selectedRowsData)}>\n <MinusOutlined />\n Delete\n </Button>\n </Flex>\n )}\n </Flex>\n </PaddingContainer>\n )}\n {isDeleteModalOpen && (\n <DeleteModal\n name={isDeleteModalOpen.name}\n onClose={() => {\n setIsDeleteModalOpen(false)\n clearSelected()\n }}\n endpoint={isDeleteModalOpen.endpoint}\n />\n )}\n {isDeleteModalManyOpen !== false && (\n <DeleteModalMany\n data={isDeleteModalManyOpen}\n onClose={() => {\n setIsDeleteModalManyOpen(false)\n clearSelected()\n }}\n />\n )}\n </>\n )\n}\n"],"names":["antdtheme","theme","jsx","jsxs","Fragment","selectedRowKeys","selectedRowsData"],"mappings":"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"}
@@ -34865,41 +34865,6 @@ const AntdText = ({
34865
34865
  };
34866
34866
 
34867
34867
  const MultiQueryContext = createContext(void 0);
34868
- const makeEmptyEntry = () => ({
34869
- data: void 0,
34870
- isLoading: false,
34871
- isError: false,
34872
- error: null
34873
- });
34874
- const aggReducer = (state, action) => {
34875
- switch (action.type) {
34876
- case "RESET":
34877
- return { entries: Array.from({ length: action.total }, makeEmptyEntry) };
34878
- case "SET_ENTRY": {
34879
- const entries = state.entries.slice();
34880
- entries[action.index] = action.entry;
34881
- return { entries };
34882
- }
34883
- default:
34884
- return state;
34885
- }
34886
- };
34887
- const K8sFetcher = ({ index, params, dispatch }) => {
34888
- const res = useK8sSmartResource(params);
34889
- useEffect(() => {
34890
- dispatch({
34891
- type: "SET_ENTRY",
34892
- index,
34893
- entry: {
34894
- data: res.data,
34895
- isLoading: res.isLoading,
34896
- isError: res.isError,
34897
- error: res.error ?? null
34898
- }
34899
- });
34900
- }, [index, res.data, res.isLoading, res.isError, res.error, dispatch]);
34901
- return null;
34902
- };
34903
34868
  const MultiQueryProvider = ({ items, dataToApplyToContext, children }) => {
34904
34869
  const k8sItems = useMemo(
34905
34870
  () => items.filter((x) => typeof x !== "string"),
@@ -34908,10 +34873,7 @@ const MultiQueryProvider = ({ items, dataToApplyToContext, children }) => {
34908
34873
  const urlItems = useMemo(() => items.filter((x) => typeof x === "string"), [items]);
34909
34874
  const k8sCount = k8sItems.length;
34910
34875
  const urlCount = urlItems.length;
34911
- const [state, dispatch] = useReducer(aggReducer, { entries: Array.from({ length: k8sCount }, makeEmptyEntry) });
34912
- useEffect(() => {
34913
- dispatch({ type: "RESET", total: k8sCount });
34914
- }, [k8sCount]);
34876
+ const k8sResults = useManyK8sSmartResource(k8sItems);
34915
34877
  const urlQueries = useQueries({
34916
34878
  queries: urlItems.map((url, i) => ({
34917
34879
  queryKey: ["multi-url", i, url],
@@ -34929,10 +34891,10 @@ const MultiQueryProvider = ({ items, dataToApplyToContext, children }) => {
34929
34891
  const hasExtraReq0 = typeof dataToApplyToContext !== "undefined";
34930
34892
  const baseIndex = hasExtraReq0 ? 1 : 0;
34931
34893
  for (let i = 0; i < k8sCount; i++) {
34932
- const e = state.entries[i] ?? makeEmptyEntry();
34894
+ const result = k8sResults[i];
34933
34895
  const idx = baseIndex + i;
34934
- data[`req${idx}`] = e.data;
34935
- errors[idx] = e.isError ? e.error : null;
34896
+ data[`req${idx}`] = result?.data;
34897
+ errors[idx] = result?.isError ? result.error ?? null : null;
34936
34898
  }
34937
34899
  for (let i = 0; i < urlCount; i++) {
34938
34900
  const q = urlQueries[i];
@@ -34944,17 +34906,11 @@ const MultiQueryProvider = ({ items, dataToApplyToContext, children }) => {
34944
34906
  data.req0 = dataToApplyToContext;
34945
34907
  errors[0] = null;
34946
34908
  }
34947
- const isLoading = state.entries.some((e) => e.isLoading) || urlQueries.some((q) => q.isLoading);
34948
- const isError = state.entries.some((e) => e.isError) || urlQueries.some((q) => q.isError);
34909
+ const isLoading = k8sResults.some((r) => r.isLoading) || urlQueries.some((q) => q.isLoading);
34910
+ const isError = k8sResults.some((r) => r.isError) || urlQueries.some((q) => q.isError);
34949
34911
  return { data, isLoading, isError, errors };
34950
34912
  })();
34951
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(MultiQueryContext.Provider, { value, children: [
34952
- k8sItems.map((params, i) => (
34953
- // eslint-disable-next-line react/no-array-index-key
34954
- /* @__PURE__ */ jsxRuntimeExports.jsx(K8sFetcher, { index: i, params, dispatch }, i)
34955
- )),
34956
- children
34957
- ] });
34913
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(MultiQueryContext.Provider, { value, children });
34958
34914
  };
34959
34915
  const useMultiQuery = () => {
34960
34916
  const ctx = useContext(MultiQueryContext);
@@ -35016,12 +34972,13 @@ const AntdLink = ({
35016
34972
  return acc;
35017
34973
  }, {});
35018
34974
  const textPrepared = parseAll({ text, replaceValues, multiQueryData });
34975
+ const tooltipPrepared = typeof linkProps.title === "string" ? parseAll({ text: linkProps.title, replaceValues, multiQueryData }) : void 0;
35019
34976
  const hrefPrepared = parseAll({ text: href, replaceValues, multiQueryData });
35020
34977
  const isExternal = isExternalHref(hrefPrepared);
35021
34978
  if (isMultiqueryLoading) {
35022
34979
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: "Loading multiquery" });
35023
34980
  }
35024
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
34981
+ const content = /* @__PURE__ */ jsxRuntimeExports.jsxs(
35025
34982
  Typography.Link,
35026
34983
  {
35027
34984
  href: hrefPrepared,
@@ -35039,6 +34996,10 @@ const AntdLink = ({
35039
34996
  ]
35040
34997
  }
35041
34998
  );
34999
+ if (tooltipPrepared) {
35000
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: tooltipPrepared, children: content });
35001
+ }
35002
+ return content;
35042
35003
  };
35043
35004
 
35044
35005
  const AntdCard = ({
@@ -35283,8 +35244,13 @@ const ParsedText = ({ data }) => {
35283
35244
  return acc;
35284
35245
  }, {});
35285
35246
  const parsedText = parseAll({ text: data.text, replaceValues, multiQueryData });
35247
+ const parsedTooltip = data.tooltip ? parseAll({ text: data.tooltip, replaceValues, multiQueryData }) : void 0;
35286
35248
  const formattedText = data.formatter ? formatLocalDate(parsedText) : parsedText;
35287
- return /* @__PURE__ */ jsxRuntimeExports.jsx("span", { style: data.style, children: formattedText });
35249
+ const content = /* @__PURE__ */ jsxRuntimeExports.jsx("span", { style: data.style, children: formattedText });
35250
+ if (parsedTooltip) {
35251
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: parsedTooltip, children: content });
35252
+ }
35253
+ return content;
35288
35254
  };
35289
35255
 
35290
35256
  const MappedParsedText = ({ data }) => {
@@ -78655,7 +78621,7 @@ const TolerationsModal = ({
78655
78621
  };
78656
78622
 
78657
78623
  const LazyEnrichedTableModal = lazy(
78658
- () => import('./index-oRwnOGcM.mjs').then((mod) => ({ default: mod.EnrichedTableModal }))
78624
+ () => import('./index-DfXU2S4O.mjs').then((mod) => ({ default: mod.EnrichedTableModal }))
78659
78625
  );
78660
78626
  const renderActiveType = (activeType, extraProps) => {
78661
78627
  if (!activeType) return null;
@@ -81305,12 +81271,129 @@ const ActionsDropdown = ({ data, children }) => {
81305
81271
  ] });
81306
81272
  };
81307
81273
 
81308
- const getVolumeTypeMeta = (volumeName, volumesMap) => {
81274
+ const ellipsisStyle = {
81275
+ display: "inline-block",
81276
+ overflow: "hidden",
81277
+ textOverflow: "ellipsis",
81278
+ whiteSpace: "nowrap",
81279
+ verticalAlign: "bottom"
81280
+ };
81281
+ const VOLUME_TYPE_LABELS = {
81282
+ awsElasticBlockStore: "AwsElasticBlockStore",
81283
+ azureDisk: "AzureDisk",
81284
+ azureFile: "AzureFile",
81285
+ cephfs: "Cephfs",
81286
+ cinder: "Cinder",
81287
+ configMap: "ConfigMap",
81288
+ csi: "CSI",
81289
+ downwardAPI: "DownwardAPI",
81290
+ emptyDir: "EmptyDir",
81291
+ ephemeral: "Ephemeral",
81292
+ fc: "FC",
81293
+ flexVolume: "FlexVolume",
81294
+ flocker: "Flocker",
81295
+ gcePersistentDisk: "GcePersistentDisk",
81296
+ gitRepo: "GitRepo",
81297
+ glusterfs: "Glusterfs",
81298
+ hostPath: "HostPath",
81299
+ image: "Image",
81300
+ iscsi: "ISCSI",
81301
+ nfs: "NFS",
81302
+ persistentVolumeClaim: "PersistentVolumeClaim",
81303
+ photonPersistentDisk: "PhotonPersistentDisk",
81304
+ portworxVolume: "PortworxVolume",
81305
+ projected: "Projected",
81306
+ quobyte: "Quobyte",
81307
+ rbd: "RBD",
81308
+ scaleIO: "ScaleIO",
81309
+ secret: "Secret",
81310
+ storageos: "StorageOS",
81311
+ vsphereVolume: "VsphereVolume"
81312
+ };
81313
+ const getVolumeDisplayName = (typeKey, volumeConfig, fallbackName) => {
81314
+ switch (typeKey) {
81315
+ case "configMap":
81316
+ return volumeConfig?.name || fallbackName;
81317
+ case "secret":
81318
+ return volumeConfig?.secretName || fallbackName;
81319
+ case "persistentVolumeClaim":
81320
+ return volumeConfig?.claimName || fallbackName;
81321
+ case "azureDisk":
81322
+ return volumeConfig?.diskName || fallbackName;
81323
+ case "csi":
81324
+ return volumeConfig?.driver || fallbackName;
81325
+ case "image":
81326
+ return volumeConfig?.reference || fallbackName;
81327
+ case "projected":
81328
+ return Array.isArray(volumeConfig?.sources) && volumeConfig.sources.length > 0 ? `${volumeConfig.sources.length} sources` : fallbackName;
81329
+ default:
81330
+ return volumeConfig?.volumeID || volumeConfig?.path || volumeConfig?.targetWWNs?.[0] || volumeConfig?.datasetName || volumeConfig?.repository || volumeConfig?.server || volumeConfig?.name || fallbackName;
81331
+ }
81332
+ };
81333
+ const getVolumeTypeMeta = (volumeName, vol) => {
81334
+ if (!vol) return { typeResource: "Volume", typeKey: "volume", typeName: volumeName };
81335
+ const matchedType = Object.keys(VOLUME_TYPE_LABELS).find((typeKey) => Boolean(vol[typeKey]));
81336
+ if (matchedType) {
81337
+ return {
81338
+ typeResource: VOLUME_TYPE_LABELS[matchedType],
81339
+ typeKey: matchedType,
81340
+ typeName: getVolumeDisplayName(matchedType, vol[matchedType], volumeName)
81341
+ };
81342
+ }
81343
+ return { typeResource: "Volume", typeKey: "volume", typeName: volumeName };
81344
+ };
81345
+ const getProjectedSourceMeta = (projectedSource, fallbackName) => {
81346
+ if (!projectedSource || typeof projectedSource !== "object") {
81347
+ return { typeResource: "Projected", typeKey: "projected", typeName: fallbackName };
81348
+ }
81349
+ const projectedTypeKey = Object.keys(projectedSource).find(
81350
+ (typeKey) => ["configMap", "secret", "downwardAPI", "serviceAccountToken", "clusterTrustBundle"].includes(typeKey)
81351
+ );
81352
+ if (!projectedTypeKey) {
81353
+ return { typeResource: "Projected", typeKey: "projected", typeName: fallbackName };
81354
+ }
81355
+ const sourceConfig = projectedSource[projectedTypeKey];
81356
+ if (projectedTypeKey === "configMap") {
81357
+ return {
81358
+ typeResource: "ConfigMap",
81359
+ typeKey: "configMap",
81360
+ typeName: sourceConfig?.name || fallbackName
81361
+ };
81362
+ }
81363
+ if (projectedTypeKey === "secret") {
81364
+ return {
81365
+ typeResource: "Secret",
81366
+ typeKey: "secret",
81367
+ typeName: sourceConfig?.name || fallbackName
81368
+ };
81369
+ }
81370
+ if (projectedTypeKey === "downwardAPI") {
81371
+ return {
81372
+ typeResource: "DownwardAPI",
81373
+ typeKey: "downwardAPI",
81374
+ typeName: sourceConfig?.items?.[0]?.path || fallbackName
81375
+ };
81376
+ }
81377
+ if (projectedTypeKey === "serviceAccountToken") {
81378
+ return {
81379
+ typeResource: "ServiceAccountToken",
81380
+ typeKey: "serviceAccountToken",
81381
+ typeName: sourceConfig?.path || fallbackName
81382
+ };
81383
+ }
81384
+ return {
81385
+ typeResource: "ClusterTrustBundle",
81386
+ typeKey: "clusterTrustBundle",
81387
+ typeName: sourceConfig?.path || sourceConfig?.name || fallbackName
81388
+ };
81389
+ };
81390
+ const getVolumeTypeMetas = (volumeName, volumesMap) => {
81309
81391
  const vol = volumesMap[volumeName];
81310
- if (!vol) return { typeResource: "Volume", typeName: volumeName };
81311
- if (vol.configMap) return { typeResource: "ConfigMap", typeName: vol.configMap.name };
81312
- if (vol.secret) return { typeResource: "Secret", typeName: vol.secret.secretName };
81313
- return { typeResource: "Volume", typeName: volumeName };
81392
+ if (!vol) return [getVolumeTypeMeta(volumeName, vol)];
81393
+ if (Array.isArray(vol?.projected?.sources) && vol.projected.sources.length > 0) {
81394
+ return vol.projected.sources.map((source) => getProjectedSourceMeta(source, volumeName));
81395
+ }
81396
+ return [getVolumeTypeMeta(volumeName, vol)];
81314
81397
  };
81315
81398
  const columns = [
81316
81399
  { title: "Name", dataIndex: "name", key: "name" },
@@ -81321,7 +81404,33 @@ const columns = [
81321
81404
  { title: "Utilized by", dataIndex: "containerName", key: "containerName" }
81322
81405
  // { title: 'Type', dataIndex: 'typeResource', key: 'typeResource' },
81323
81406
  ];
81407
+ const undefinedValues = [
81408
+ { key: "name", value: "-" },
81409
+ { key: "mountPath", value: "-" },
81410
+ { key: "subPath", value: "-" },
81411
+ { key: "typeName", value: "-" },
81412
+ { key: "access", value: "-" },
81413
+ { key: "containerName", value: "-" }
81414
+ ];
81415
+ const withUndefinedFallback = (value, fallback = "-") => value === void 0 || value === null || value === "" ? fallback : value;
81324
81416
  const customColumns = {
81417
+ mountPath: {
81418
+ type: "factory",
81419
+ customProps: {
81420
+ disableEventBubbling: true,
81421
+ items: [
81422
+ {
81423
+ type: "parsedText",
81424
+ data: {
81425
+ id: "mountPath-text",
81426
+ text: "{reqsJsonPath[0]['.mountPath']['-']}",
81427
+ tooltip: "{reqsJsonPath[0]['.mountPath']['-']}",
81428
+ style: ellipsisStyle
81429
+ }
81430
+ }
81431
+ ]
81432
+ }
81433
+ },
81325
81434
  typeName: {
81326
81435
  type: "factory",
81327
81436
  customProps: {
@@ -81344,11 +81453,77 @@ const customColumns = {
81344
81453
  }
81345
81454
  },
81346
81455
  {
81347
- type: "parsedText",
81456
+ type: "VisibilityContainer",
81348
81457
  data: {
81349
- id: "typeName-text",
81350
- text: `{reqsJsonPath[0]['.typeName']['-']}`
81351
- }
81458
+ id: "typeName-link-visible",
81459
+ value: "{reqsJsonPath[0]['.typeKey']['-']}",
81460
+ criteria: "equals",
81461
+ valueToCompare: ["configMap", "secret"]
81462
+ },
81463
+ children: [
81464
+ {
81465
+ type: "VisibilityContainer",
81466
+ data: {
81467
+ id: "typeName-configmap-link-visible",
81468
+ value: "{reqsJsonPath[0]['.typeKey']['-']}",
81469
+ criteria: "equals",
81470
+ valueToCompare: ["configMap"]
81471
+ },
81472
+ children: [
81473
+ {
81474
+ type: "antdLink",
81475
+ data: {
81476
+ href: "/openapi-ui/{2}/{3}/factory/configmap-details/v1/configmaps/{reqsJsonPath[0]['.typeName']['-']}",
81477
+ id: "typeName-link",
81478
+ text: "{reqsJsonPath[0]['.typeName']['-']}",
81479
+ title: "{reqsJsonPath[0]['.typeName']['-']}",
81480
+ style: ellipsisStyle
81481
+ }
81482
+ }
81483
+ ]
81484
+ },
81485
+ {
81486
+ type: "VisibilityContainer",
81487
+ data: {
81488
+ id: "typeName-secret-link-visible",
81489
+ value: "{reqsJsonPath[0]['.typeKey']['-']}",
81490
+ criteria: "equals",
81491
+ valueToCompare: ["secret"]
81492
+ },
81493
+ children: [
81494
+ {
81495
+ type: "antdLink",
81496
+ data: {
81497
+ href: "/openapi-ui/{2}/{3}/factory/secret-details/v1/secrets/{reqsJsonPath[0]['.typeName']['-']}",
81498
+ id: "typeName-secret-link",
81499
+ text: "{reqsJsonPath[0]['.typeName']['-']}",
81500
+ title: "{reqsJsonPath[0]['.typeName']['-']}",
81501
+ style: ellipsisStyle
81502
+ }
81503
+ }
81504
+ ]
81505
+ }
81506
+ ]
81507
+ },
81508
+ {
81509
+ type: "VisibilityContainer",
81510
+ data: {
81511
+ id: "typeName-text-visible",
81512
+ value: "{reqsJsonPath[0]['.typeKey']['-']}",
81513
+ criteria: "notEquals",
81514
+ valueToCompare: ["configMap", "secret"]
81515
+ },
81516
+ children: [
81517
+ {
81518
+ type: "parsedText",
81519
+ data: {
81520
+ id: "typeName-text",
81521
+ text: "{reqsJsonPath[0]['.typeName']['-']}",
81522
+ tooltip: "{reqsJsonPath[0]['.typeName']['-']}",
81523
+ style: ellipsisStyle
81524
+ }
81525
+ }
81526
+ ]
81352
81527
  }
81353
81528
  ]
81354
81529
  }
@@ -81377,10 +81552,13 @@ const customColumns = {
81377
81552
  }
81378
81553
  },
81379
81554
  {
81380
- type: "parsedText",
81555
+ type: "antdLink",
81381
81556
  data: {
81382
- id: "typeName-text",
81383
- text: `{reqsJsonPath[0]['.containerName']['-']}`
81557
+ href: "/openapi-ui/{2}/{3}/factory/container-details/v1/containers/{reqsJsonPath[0]['.podName']['-']}/{reqsJsonPath[0]['.containerName']['-']}",
81558
+ id: "container-link",
81559
+ text: "{reqsJsonPath[0]['.containerName']['-']}",
81560
+ title: "{reqsJsonPath[0]['.containerName']['-']}",
81561
+ style: ellipsisStyle
81384
81562
  }
81385
81563
  }
81386
81564
  ]
@@ -81390,7 +81568,7 @@ const customColumns = {
81390
81568
  }
81391
81569
  };
81392
81570
  const Volumes = ({ data, children }) => {
81393
- const { id, reqIndex, jsonPathToSpec, errorText, containerStyle } = data;
81571
+ const { id, reqIndex, jsonPathToSpec, jsonPathToPodName, errorText, containerStyle } = data;
81394
81572
  const theme = useTheme();
81395
81573
  const { data: multiQueryData, isLoading: isMultiQueryLoading, isError: isMultiQueryErrors, errors } = useMultiQuery();
81396
81574
  const dataSource = useMemo(() => {
@@ -81400,6 +81578,9 @@ const Volumes = ({ data, children }) => {
81400
81578
  const specResult = jp.query(jsonRoot2 || {}, `$${jsonPathToSpec}`);
81401
81579
  const spec = specResult?.[0];
81402
81580
  if (!spec) return [];
81581
+ const namespace = jsonRoot2?.metadata?.namespace || spec?.metadata?.namespace || "";
81582
+ const podNameFromPath = jsonPathToPodName ? jp.query(jsonRoot2 || {}, `$${jsonPathToPodName}`)?.[0] : void 0;
81583
+ const podName = podNameFromPath || jsonRoot2?.metadata?.name || spec?.metadata?.name || "-";
81403
81584
  const containers = Array.isArray(spec.containers) ? spec.containers : [];
81404
81585
  const volumes = Array.isArray(spec.volumes) ? spec.volumes : [];
81405
81586
  const volumesMap = Array.isArray(volumes) ? volumes.reduce((acc, v) => {
@@ -81408,15 +81589,23 @@ const Volumes = ({ data, children }) => {
81408
81589
  }, {}) : {};
81409
81590
  return containers.flatMap((container, cIdx) => {
81410
81591
  const mounts = Array.isArray(container.volumeMounts) ? container.volumeMounts : [];
81411
- return mounts.map((mount, mIdx) => ({
81412
- ...getVolumeTypeMeta(mount.name, volumesMap),
81413
- ...mount,
81414
- containerName: container.name || `container-${cIdx}`,
81415
- access: mount.readOnly ? "RO" : "RW",
81416
- key: `${cIdx}-${mIdx}`
81417
- }));
81592
+ return mounts.flatMap(
81593
+ (mount, mIdx) => getVolumeTypeMetas(mount.name, volumesMap).map((typeMeta, typeIdx) => ({
81594
+ ...typeMeta,
81595
+ ...mount,
81596
+ name: withUndefinedFallback(mount.name),
81597
+ mountPath: withUndefinedFallback(mount.mountPath),
81598
+ subPath: withUndefinedFallback(mount.subPath),
81599
+ typeName: withUndefinedFallback(typeMeta.typeName),
81600
+ containerName: withUndefinedFallback(container.name || `container-${cIdx}`),
81601
+ podName,
81602
+ namespace,
81603
+ access: withUndefinedFallback(mount.readOnly ? "RO" : "RW"),
81604
+ key: `${cIdx}-${mIdx}-${typeIdx}`
81605
+ }))
81606
+ );
81418
81607
  });
81419
- }, [multiQueryData, isMultiQueryLoading, isMultiQueryErrors, reqIndex, jsonPathToSpec]);
81608
+ }, [multiQueryData, isMultiQueryLoading, isMultiQueryErrors, reqIndex, jsonPathToSpec, jsonPathToPodName]);
81420
81609
  if (isMultiQueryLoading) {
81421
81610
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: "Loading..." });
81422
81611
  }
@@ -81437,6 +81626,7 @@ const Volumes = ({ data, children }) => {
81437
81626
  theme,
81438
81627
  columns,
81439
81628
  dataSource,
81629
+ additionalPrinterColumnsUndefinedValues: undefinedValues,
81440
81630
  additionalPrinterColumnsKeyTypeProps: customColumns,
81441
81631
  withoutControls: true,
81442
81632
  tableProps: { disablePagination: true }
@@ -85785,7 +85975,9 @@ const BlackholeForm = ({
85785
85975
  if (!matches) continue;
85786
85976
  const concretePath = buildConcretePathForNewItem(tpl, arrayPath, newIndex);
85787
85977
  const current = form.getFieldValue(concretePath);
85788
- if (typeof current === "undefined") {
85978
+ const isItemLevelWildcard = tpl.wildcardPath[tpl.wildcardPath.length - 1] === "*";
85979
+ const isEffectivelyEmpty = typeof current === "undefined" || isItemLevelWildcard && _$1.isPlainObject(current) && _$1.isEmpty(current);
85980
+ if (isEffectivelyEmpty) {
85789
85981
  const toSet = _$1.cloneDeep(tpl.value);
85790
85982
  form.setFieldValue(concretePath, toSet);
85791
85983
  }
@@ -91178,4 +91370,4 @@ const usePluginManifest = ({
91178
91370
  };
91179
91371
 
91180
91372
  export { useInfiniteSentinel as $, getBuiltinResourceTypes as A, getCrdData as B, getDirectUnknownResource as C, DeleteIcon as D, EnrichedTableProvider as E, checkPermission as F, getSwagger as G, filterIfApiInstanceNamespaceScoped as H, filterIfBuiltInInstanceNamespaceScoped as I, checkIfApiInstanceNamespaceScoped as J, checkIfBuiltInInstanceNamespaceScoped as K, getKinds as L, useClusterList as M, useApiResources as N, useApiResourceSingle as O, PaddingContainer as P, useBuiltinResources as Q, ReadOnlyModal as R, useBuiltinResourceSingle as S, useCrdResources as T, useCrdResourceSingle as U, useApisResourceTypes as V, useApiResourceTypesByGroup as W, useBuiltinResourceTypes as X, useCrdData as Y, useListWatch as Z, _$1 as _, useTheme as a, parseQuotaValueCpu as a$, useK8sVerbs as a0, useManyK8sSmartResource as a1, useSmartResourceParams as a2, useResourceScope as a3, useKinds as a4, usePluginManifest as a5, Spacer$1 as a6, TreeWithSearch as a7, ConfirmModal as a8, UpIcon as a9, EnrichedTable as aA, ClusterListTable as aB, getEnrichedColumns as aC, getEnrichedColumnsWithControls as aD, YamlEditorSingleton$1 as aE, BlackholeFormProvider as aF, BlackholeForm as aG, getObjectFormItemsDraft as aH, MarketPlace as aI, MarketplaceCard as aJ, ProjectInfoCard as aK, PodTerminal as aL, NodeTerminal as aM, PodLogs as aN, PodLogsMonaco as aO, VMVNC as aP, Search as aQ, Events as aR, DynamicRenderer as aS, DynamicComponents as aT, DynamicRendererWithProviders as aU, prepareTemplate as aV, isFlatObject as aW, filterSelectOptions as aX, getStringByName as aY, floorToDecimal as aZ, parseQuotaValue as a_, DownIcon as aa, BackToDefaultIcon as ab, SuccessIcon as ac, feedbackIcons as ad, PlusIcon as ae, MinusIcon as af, LockedIcon as ag, UnlockedIcon as ah, PauseCircleIcon as ai, ResumeCircleIcon as aj, LookingGlassIcon as ak, EarthIcon as al, ContentCard$1 as am, FlexGrow as an, UncontrolledSelect as ao, CustomSelect$4 as ap, CursorPointerTag as aq, CursorPointerTagMinContent as ar, CursorDefaultDiv as as, ResourceLink as at, ManageableBreadcrumbsProvider as au, prepareDataForManageableBreadcrumbs as av, ManageableBreadcrumbs as aw, ManageableSidebarProvider as ax, prepareDataForManageableSidebar as ay, ManageableSidebar as az, usePartsOfUrl as b, parseQuotaValueMemoryAndStorage as b0, normalizeValuesForQuotasToNumber as b1, getAllPathsFromObj as b2, getPrefixSubarrays as b3, groupsToTreeData as b4, getBuiltinTreeData as b5, getGroupsByCategory as b6, createContextFactory as b7, prepareUrlsToFetchForDynamicRenderer as b8, deepMerge as b9, getSortedKinds as ba, getSortedKindsAll as bb, hslFromString as bc, getUppercase as bd, kindByGvr as be, pluralByKind as bf, namespacedByGvr as bg, getLinkToBuiltinForm as bh, getLinkToApiForm as bi, isMultilineString as bj, isMultilineFromYaml as bk, includesArray as bl, getResourceLink as bm, getNamespaceLink as bn, convertBytes as bo, formatBytesAuto as bp, toBytes as bq, convertStorage as br, parseValueWithUnit as bs, convertCores as bt, formatCoresAuto as bu, toCores as bv, convertCompute as bw, parseCoresWithUnit as bx, formatDateAuto as by, isValidRFC3339 as bz, usePermissions as c, useDirectUnknownResource as d, useK8sSmartResource as e, jsxRuntimeExports as f, EditIcon as g, getLinkToForm as h, DeleteModal as i, jp as j, DeleteModalMany as k, getClusterList as l, createNewEntry as m, updateEntry as n, deleteEntry as o, parseAll as p, getApiResources as q, getApiResourceSingle as r, serializeLabelsWithNoEncoding$1 as s, getBuiltinResources as t, useMultiQuery as u, getBuiltinResourceSingle as v, getCrdResources as w, getCrdResourceSingle as x, getApiResourceTypes as y, getApiResourceTypesByApiGroup as z };
91181
- //# sourceMappingURL=index-C3GT20Hj.mjs.map
91373
+ //# sourceMappingURL=index-PHzKotN_.mjs.map