@prorobotech/openapi-k8s-toolkit 1.5.0-alpha.6 → 1.5.0-alpha.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{index-sWQFraqw.mjs → index-Cd_VfUiH.mjs} +2 -2
- package/dist/{index-sWQFraqw.mjs.map → index-Cd_VfUiH.mjs.map} +1 -1
- package/dist/{index-C5cixTVm.mjs → index-cNF5QCwf.mjs} +307 -89
- package/dist/index-cNF5QCwf.mjs.map +1 -0
- package/dist/openapi-k8s-toolkit.es.js +1 -1
- package/dist/openapi-k8s-toolkit.umd.js +305 -87
- package/dist/openapi-k8s-toolkit.umd.js.map +1 -1
- package/dist/types/components/molecules/EnrichedTable/organisms/ClusterListTable/ClusterListTable.d.ts +1 -0
- package/dist/types/components/molecules/EnrichedTable/organisms/EnrichedTable/EnrichedTable.d.ts +1 -0
- package/dist/types/components/molecules/EnrichedTable/organisms/EnrichedTable/atoms/SyncedHorizontalScrollbar/SyncedHorizontalScrollbar.d.ts +7 -0
- package/dist/types/components/molecules/EnrichedTable/organisms/EnrichedTable/atoms/SyncedHorizontalScrollbar/SyncedHorizontalScrollbar.test.d.ts +1 -0
- package/dist/types/components/molecules/EnrichedTable/organisms/EnrichedTable/atoms/SyncedHorizontalScrollbar/index.d.ts +1 -0
- package/dist/types/components/molecules/EnrichedTable/organisms/EnrichedTableProvider/EnrichedTableProvider.d.ts +2 -1
- package/package.json +1 -1
- package/dist/index-C5cixTVm.mjs.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { u as useMultiQuery, a as useTheme, b as usePartsOfUrl, c as useAutoPerRequestError, m as mergePerRequestErrors, p as parseAll, d as usePermissions, s as serializeLabelsWithNoEncoding, _, j as jp, e as useDirectUnknownResource, f as useK8sSmartResource, g as jsxRuntimeExports, P as PerRequestError, R as ReadOnlyModal, E as EnrichedTableProvider, D as DeleteIcon, h as EditIcon, i as PaddingContainer, k as getLinkToForm, l as DeleteModal, n as DeleteModalMany } from './index-
|
|
1
|
+
import { u as useMultiQuery, a as useTheme, b as usePartsOfUrl, c as useAutoPerRequestError, m as mergePerRequestErrors, p as parseAll, d as usePermissions, s as serializeLabelsWithNoEncoding, _, j as jp, e as useDirectUnknownResource, f as useK8sSmartResource, g as jsxRuntimeExports, P as PerRequestError, R as ReadOnlyModal, E as EnrichedTableProvider, D as DeleteIcon, h as EditIcon, i as PaddingContainer, k as getLinkToForm, l as DeleteModal, n as DeleteModalMany } from './index-cNF5QCwf.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';
|
|
@@ -321,4 +321,4 @@ const EnrichedTableModal = ({
|
|
|
321
321
|
};
|
|
322
322
|
|
|
323
323
|
export { EnrichedTableModal };
|
|
324
|
-
//# sourceMappingURL=index-
|
|
324
|
+
//# sourceMappingURL=index-Cd_VfUiH.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-sWQFraqw.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 { useAutoPerRequestError } from '../../../hooks/useAutoPerRequestError'\nimport { mergePerRequestErrors } from '../../../hooks/mergePerRequestErrors'\nimport { PerRequestError } from '../../../PerRequestError'\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, hasErrorForReq } = useMultiQuery()\n\n const theme = useTheme()\n const partsOfUrl = usePartsOfUrl()\n const allProps = {\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 modalTitle,\n modalDescriptionText,\n ...props,\n }\n const autoErrorResult = useAutoPerRequestError(allProps)\n const { shouldShowError, errorToShow } = mergePerRequestErrors(autoErrorResult, hasErrorForReq, [\n labelSelectorFull?.reqIndex,\n ...(additionalReqsDataToEachItem ?? []),\n ])\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 (shouldShowError) {\n return <PerRequestError error={errorToShow} />\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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"}
|
|
1
|
+
{"version":3,"file":"index-Cd_VfUiH.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 { useAutoPerRequestError } from '../../../hooks/useAutoPerRequestError'\nimport { mergePerRequestErrors } from '../../../hooks/mergePerRequestErrors'\nimport { PerRequestError } from '../../../PerRequestError'\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, hasErrorForReq } = useMultiQuery()\n\n const theme = useTheme()\n const partsOfUrl = usePartsOfUrl()\n const allProps = {\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 modalTitle,\n modalDescriptionText,\n ...props,\n }\n const autoErrorResult = useAutoPerRequestError(allProps)\n const { shouldShowError, errorToShow } = mergePerRequestErrors(autoErrorResult, hasErrorForReq, [\n labelSelectorFull?.reqIndex,\n ...(additionalReqsDataToEachItem ?? []),\n ])\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 (shouldShowError) {\n return <PerRequestError error={errorToShow} />\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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"}
|
|
@@ -34572,6 +34572,18 @@ const TableContainer = styled.div`
|
|
|
34572
34572
|
&& .ant-table-expanded-row-fixed {
|
|
34573
34573
|
width: auto !important;
|
|
34574
34574
|
}
|
|
34575
|
+
|
|
34576
|
+
/* Virtual tables keep rc-virtual-list's own scrollbar; the custom synced scrollbar is disabled for them. */
|
|
34577
|
+
&& .ant-table:not(.ant-table-virtual) .ant-table-content,
|
|
34578
|
+
&& .ant-table:not(.ant-table-virtual) .ant-table-body {
|
|
34579
|
+
scrollbar-width: none;
|
|
34580
|
+
}
|
|
34581
|
+
|
|
34582
|
+
&& .ant-table:not(.ant-table-virtual) .ant-table-content::-webkit-scrollbar,
|
|
34583
|
+
&& .ant-table:not(.ant-table-virtual) .ant-table-body::-webkit-scrollbar {
|
|
34584
|
+
height: 0;
|
|
34585
|
+
width: 0;
|
|
34586
|
+
}
|
|
34575
34587
|
`;
|
|
34576
34588
|
const HideableControls = styled.div`
|
|
34577
34589
|
&& .ant-table-row .hideable {
|
|
@@ -34641,6 +34653,196 @@ const TrimmedTags = ({ tags, trimLength }) => {
|
|
|
34641
34653
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(Flex, { wrap: "nowrap", gap: "4px", children: renderTableTags(tags) });
|
|
34642
34654
|
};
|
|
34643
34655
|
|
|
34656
|
+
const SCROLLABLE_TABLE_SELECTOR = ".ant-table-body, .ant-table-content";
|
|
34657
|
+
const EMPTY_SCROLLBAR_METRICS = {
|
|
34658
|
+
clientWidth: 0,
|
|
34659
|
+
scrollWidth: 0,
|
|
34660
|
+
visible: false
|
|
34661
|
+
};
|
|
34662
|
+
const HorizontalScrollbar = styled.div`
|
|
34663
|
+
position: sticky;
|
|
34664
|
+
bottom: var(--enriched-table-scrollbar-bottom-offset, 0px);
|
|
34665
|
+
z-index: 1056;
|
|
34666
|
+
height: 14px;
|
|
34667
|
+
overflow-x: auto;
|
|
34668
|
+
overflow-y: hidden;
|
|
34669
|
+
background: transparent;
|
|
34670
|
+
scrollbar-width: thin;
|
|
34671
|
+
scrollbar-color: rgba(0, 0, 0, 0.35) transparent;
|
|
34672
|
+
|
|
34673
|
+
&::-webkit-scrollbar {
|
|
34674
|
+
height: 12px;
|
|
34675
|
+
}
|
|
34676
|
+
|
|
34677
|
+
&::-webkit-scrollbar-track {
|
|
34678
|
+
background: transparent;
|
|
34679
|
+
}
|
|
34680
|
+
|
|
34681
|
+
&::-webkit-scrollbar-thumb {
|
|
34682
|
+
background-color: rgba(0, 0, 0, 0.35);
|
|
34683
|
+
background-clip: content-box;
|
|
34684
|
+
border: 3px solid transparent;
|
|
34685
|
+
border-radius: 999px;
|
|
34686
|
+
}
|
|
34687
|
+
`;
|
|
34688
|
+
const HorizontalScrollbarInner = styled.div`
|
|
34689
|
+
height: 1px;
|
|
34690
|
+
`;
|
|
34691
|
+
const SyncedHorizontalScrollbar = ({
|
|
34692
|
+
tableContainerRef,
|
|
34693
|
+
disabled = false
|
|
34694
|
+
}) => {
|
|
34695
|
+
const scrollbarRef = React__default.useRef(null);
|
|
34696
|
+
const tableScrollerRef = React__default.useRef(null);
|
|
34697
|
+
const isSyncingRef = React__default.useRef(false);
|
|
34698
|
+
const refreshRafRef = React__default.useRef(null);
|
|
34699
|
+
const [metrics, setMetrics] = React__default.useState(EMPTY_SCROLLBAR_METRICS);
|
|
34700
|
+
const [scrollerBinding, setScrollerBinding] = React__default.useState({
|
|
34701
|
+
scroller: null,
|
|
34702
|
+
content: null
|
|
34703
|
+
});
|
|
34704
|
+
const releaseSyncLock = React__default.useCallback(() => {
|
|
34705
|
+
if (typeof window.requestAnimationFrame !== "function") {
|
|
34706
|
+
isSyncingRef.current = false;
|
|
34707
|
+
return;
|
|
34708
|
+
}
|
|
34709
|
+
window.requestAnimationFrame(() => {
|
|
34710
|
+
isSyncingRef.current = false;
|
|
34711
|
+
});
|
|
34712
|
+
}, []);
|
|
34713
|
+
const bindTableScroller = React__default.useCallback((tableScroller) => {
|
|
34714
|
+
const tableScrollerContent = tableScroller?.firstElementChild || null;
|
|
34715
|
+
tableScrollerRef.current = tableScroller;
|
|
34716
|
+
setScrollerBinding(
|
|
34717
|
+
(currentBinding) => currentBinding.scroller === tableScroller && currentBinding.content === tableScrollerContent ? currentBinding : {
|
|
34718
|
+
scroller: tableScroller,
|
|
34719
|
+
content: tableScrollerContent
|
|
34720
|
+
}
|
|
34721
|
+
);
|
|
34722
|
+
}, []);
|
|
34723
|
+
const findTableScroller = React__default.useCallback(
|
|
34724
|
+
() => disabled ? null : tableContainerRef.current?.querySelector(SCROLLABLE_TABLE_SELECTOR) || null,
|
|
34725
|
+
[disabled, tableContainerRef]
|
|
34726
|
+
);
|
|
34727
|
+
const updateMetrics = React__default.useCallback((tableScroller) => {
|
|
34728
|
+
tableScrollerRef.current = tableScroller;
|
|
34729
|
+
if (!tableScroller) {
|
|
34730
|
+
setMetrics((currentMetrics) => currentMetrics.visible ? EMPTY_SCROLLBAR_METRICS : currentMetrics);
|
|
34731
|
+
return;
|
|
34732
|
+
}
|
|
34733
|
+
const nextMetrics = {
|
|
34734
|
+
clientWidth: tableScroller.clientWidth,
|
|
34735
|
+
scrollWidth: tableScroller.scrollWidth,
|
|
34736
|
+
visible: tableScroller.scrollWidth > tableScroller.clientWidth + 1
|
|
34737
|
+
};
|
|
34738
|
+
setMetrics(
|
|
34739
|
+
(currentMetrics) => currentMetrics.clientWidth === nextMetrics.clientWidth && currentMetrics.scrollWidth === nextMetrics.scrollWidth && currentMetrics.visible === nextMetrics.visible ? currentMetrics : nextMetrics
|
|
34740
|
+
);
|
|
34741
|
+
if (scrollbarRef.current && scrollbarRef.current.scrollLeft !== tableScroller.scrollLeft) {
|
|
34742
|
+
scrollbarRef.current.scrollLeft = tableScroller.scrollLeft;
|
|
34743
|
+
}
|
|
34744
|
+
}, []);
|
|
34745
|
+
const refreshTableScroller = React__default.useCallback(() => {
|
|
34746
|
+
const tableScroller = findTableScroller();
|
|
34747
|
+
bindTableScroller(tableScroller);
|
|
34748
|
+
updateMetrics(tableScroller);
|
|
34749
|
+
}, [bindTableScroller, findTableScroller, updateMetrics]);
|
|
34750
|
+
const cancelScheduledRefresh = React__default.useCallback(() => {
|
|
34751
|
+
if (refreshRafRef.current === null || typeof window.cancelAnimationFrame !== "function") {
|
|
34752
|
+
return;
|
|
34753
|
+
}
|
|
34754
|
+
window.cancelAnimationFrame(refreshRafRef.current);
|
|
34755
|
+
refreshRafRef.current = null;
|
|
34756
|
+
}, []);
|
|
34757
|
+
const scheduleRefreshTableScroller = React__default.useCallback(() => {
|
|
34758
|
+
if (typeof window.requestAnimationFrame !== "function") {
|
|
34759
|
+
refreshTableScroller();
|
|
34760
|
+
return;
|
|
34761
|
+
}
|
|
34762
|
+
if (refreshRafRef.current !== null) {
|
|
34763
|
+
return;
|
|
34764
|
+
}
|
|
34765
|
+
refreshRafRef.current = window.requestAnimationFrame(() => {
|
|
34766
|
+
refreshRafRef.current = null;
|
|
34767
|
+
refreshTableScroller();
|
|
34768
|
+
});
|
|
34769
|
+
}, [refreshTableScroller]);
|
|
34770
|
+
React__default.useLayoutEffect(() => {
|
|
34771
|
+
refreshTableScroller();
|
|
34772
|
+
}, [refreshTableScroller]);
|
|
34773
|
+
React__default.useEffect(() => {
|
|
34774
|
+
refreshTableScroller();
|
|
34775
|
+
}, [refreshTableScroller]);
|
|
34776
|
+
React__default.useEffect(() => {
|
|
34777
|
+
if (disabled || !tableContainerRef.current || typeof MutationObserver !== "function") {
|
|
34778
|
+
return void 0;
|
|
34779
|
+
}
|
|
34780
|
+
const mutationObserver = new MutationObserver(scheduleRefreshTableScroller);
|
|
34781
|
+
mutationObserver.observe(tableContainerRef.current, {
|
|
34782
|
+
childList: true,
|
|
34783
|
+
subtree: true
|
|
34784
|
+
});
|
|
34785
|
+
return () => {
|
|
34786
|
+
cancelScheduledRefresh();
|
|
34787
|
+
mutationObserver.disconnect();
|
|
34788
|
+
};
|
|
34789
|
+
}, [cancelScheduledRefresh, disabled, scheduleRefreshTableScroller, tableContainerRef]);
|
|
34790
|
+
React__default.useEffect(() => cancelScheduledRefresh, [cancelScheduledRefresh]);
|
|
34791
|
+
React__default.useEffect(() => {
|
|
34792
|
+
const { scroller: tableScroller, content: tableScrollerContent } = scrollerBinding;
|
|
34793
|
+
if (disabled) {
|
|
34794
|
+
updateMetrics(null);
|
|
34795
|
+
return void 0;
|
|
34796
|
+
}
|
|
34797
|
+
if (!tableScroller) {
|
|
34798
|
+
return void 0;
|
|
34799
|
+
}
|
|
34800
|
+
const syncFromTable = () => {
|
|
34801
|
+
if (isSyncingRef.current || !scrollbarRef.current) {
|
|
34802
|
+
return;
|
|
34803
|
+
}
|
|
34804
|
+
isSyncingRef.current = true;
|
|
34805
|
+
scrollbarRef.current.scrollLeft = tableScroller.scrollLeft;
|
|
34806
|
+
releaseSyncLock();
|
|
34807
|
+
};
|
|
34808
|
+
tableScroller.addEventListener("scroll", syncFromTable, { passive: true });
|
|
34809
|
+
window.addEventListener("resize", scheduleRefreshTableScroller);
|
|
34810
|
+
const resizeObserver = typeof ResizeObserver === "function" ? new ResizeObserver(() => updateMetrics(tableScroller)) : void 0;
|
|
34811
|
+
resizeObserver?.observe(tableScroller);
|
|
34812
|
+
if (tableScrollerContent) {
|
|
34813
|
+
resizeObserver?.observe(tableScrollerContent);
|
|
34814
|
+
}
|
|
34815
|
+
updateMetrics(tableScroller);
|
|
34816
|
+
return () => {
|
|
34817
|
+
tableScroller.removeEventListener("scroll", syncFromTable);
|
|
34818
|
+
window.removeEventListener("resize", scheduleRefreshTableScroller);
|
|
34819
|
+
resizeObserver?.disconnect();
|
|
34820
|
+
};
|
|
34821
|
+
}, [disabled, releaseSyncLock, scheduleRefreshTableScroller, scrollerBinding, updateMetrics]);
|
|
34822
|
+
const syncFromScrollbar = React__default.useCallback(() => {
|
|
34823
|
+
const tableScroller = tableScrollerRef.current;
|
|
34824
|
+
if (isSyncingRef.current || !tableScroller || !scrollbarRef.current) {
|
|
34825
|
+
return;
|
|
34826
|
+
}
|
|
34827
|
+
isSyncingRef.current = true;
|
|
34828
|
+
tableScroller.scrollLeft = scrollbarRef.current.scrollLeft;
|
|
34829
|
+
releaseSyncLock();
|
|
34830
|
+
}, [releaseSyncLock]);
|
|
34831
|
+
if (!metrics.visible) {
|
|
34832
|
+
return null;
|
|
34833
|
+
}
|
|
34834
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
34835
|
+
HorizontalScrollbar,
|
|
34836
|
+
{
|
|
34837
|
+
ref: scrollbarRef,
|
|
34838
|
+
"aria-hidden": "true",
|
|
34839
|
+
"data-testid": "enriched-table-horizontal-scrollbar",
|
|
34840
|
+
onScroll: syncFromScrollbar,
|
|
34841
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(HorizontalScrollbarInner, { style: { width: metrics.scrollWidth } })
|
|
34842
|
+
}
|
|
34843
|
+
);
|
|
34844
|
+
};
|
|
34845
|
+
|
|
34644
34846
|
const isFlatObject = (obj) => {
|
|
34645
34847
|
return Object.entries(obj).every(([, value]) => {
|
|
34646
34848
|
return value === null || typeof value !== "object";
|
|
@@ -78892,7 +79094,7 @@ const TolerationsModal = ({
|
|
|
78892
79094
|
};
|
|
78893
79095
|
|
|
78894
79096
|
const LazyEnrichedTableModal = lazy(
|
|
78895
|
-
() => import('./index-
|
|
79097
|
+
() => import('./index-Cd_VfUiH.mjs').then((mod) => ({ default: mod.EnrichedTableModal }))
|
|
78896
79098
|
);
|
|
78897
79099
|
const renderActiveType = (activeType, extraProps) => {
|
|
78898
79100
|
if (!activeType) return null;
|
|
@@ -82310,13 +82512,16 @@ const getFixedColumnSide = ({
|
|
|
82310
82512
|
shouldFixActionsColumn,
|
|
82311
82513
|
currentFixed
|
|
82312
82514
|
}) => {
|
|
82515
|
+
if (currentFixed !== void 0) {
|
|
82516
|
+
return currentFixed;
|
|
82517
|
+
}
|
|
82313
82518
|
if (shouldFixNameColumn) {
|
|
82314
82519
|
return "left";
|
|
82315
82520
|
}
|
|
82316
82521
|
if (shouldFixActionsColumn) {
|
|
82317
82522
|
return "right";
|
|
82318
82523
|
}
|
|
82319
|
-
return
|
|
82524
|
+
return void 0;
|
|
82320
82525
|
};
|
|
82321
82526
|
const getFixedColumnWidth = ({
|
|
82322
82527
|
possibleColWidth,
|
|
@@ -82451,9 +82656,11 @@ const getEnrichedColumns = ({
|
|
|
82451
82656
|
const possibleTooltip = additionalPrinterColumnsTooltips?.find(({ key }) => key === el.key)?.value;
|
|
82452
82657
|
const possibleCustomTypeWithProps = additionalPrinterColumnsKeyTypeProps && el.key ? additionalPrinterColumnsKeyTypeProps[el.key.toString()] : void 0;
|
|
82453
82658
|
const originalRender = el.render;
|
|
82454
|
-
const
|
|
82455
|
-
const
|
|
82456
|
-
|
|
82659
|
+
const columnIsNameColumn = isNameColumn(el);
|
|
82660
|
+
const canAutoFixColumn = el.fixed === void 0;
|
|
82661
|
+
const shouldFixNameColumn = canAutoFixColumn && !hasFixedNameColumn && columnIsNameColumn;
|
|
82662
|
+
const shouldFixActionsColumn = canAutoFixColumn && possibleCustomTypeWithProps?.type === "factory" && hasFactoryItemOfType(possibleCustomTypeWithProps.customProps, "ActionsDropdown");
|
|
82663
|
+
if (columnIsNameColumn && !hasFixedNameColumn) {
|
|
82457
82664
|
hasFixedNameColumn = true;
|
|
82458
82665
|
}
|
|
82459
82666
|
const useFactorySearch = possibleCustomTypeWithProps?.type === "factory";
|
|
@@ -82779,6 +82986,7 @@ const EnrichedTable = ({
|
|
|
82779
82986
|
tableProps
|
|
82780
82987
|
}) => {
|
|
82781
82988
|
const navigate = useNavigate();
|
|
82989
|
+
const tableContainerRef = React__default.useRef(null);
|
|
82782
82990
|
if (!columns) {
|
|
82783
82991
|
return null;
|
|
82784
82992
|
}
|
|
@@ -82834,57 +83042,62 @@ const EnrichedTable = ({
|
|
|
82834
83042
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
82835
83043
|
TableComponents.TableContainer,
|
|
82836
83044
|
{
|
|
83045
|
+
ref: tableContainerRef,
|
|
82837
83046
|
$isDark: theme === "dark",
|
|
82838
83047
|
$isCursorPointer: Boolean(pathToNavigate || rowClickable),
|
|
82839
83048
|
$borderless: tableProps?.borderless,
|
|
82840
83049
|
$isTotalLeft: tableProps?.isTotalLeft,
|
|
82841
|
-
children: /* @__PURE__ */ jsxRuntimeExports.
|
|
82842
|
-
|
|
82843
|
-
|
|
82844
|
-
|
|
82845
|
-
|
|
82846
|
-
|
|
82847
|
-
|
|
82848
|
-
|
|
82849
|
-
|
|
82850
|
-
|
|
82851
|
-
|
|
82852
|
-
|
|
82853
|
-
|
|
82854
|
-
|
|
82855
|
-
|
|
82856
|
-
|
|
82857
|
-
|
|
82858
|
-
|
|
82859
|
-
|
|
82860
|
-
|
|
82861
|
-
|
|
82862
|
-
|
|
82863
|
-
|
|
82864
|
-
|
|
82865
|
-
|
|
82866
|
-
|
|
82867
|
-
|
|
82868
|
-
|
|
82869
|
-
|
|
82870
|
-
|
|
82871
|
-
|
|
82872
|
-
|
|
82873
|
-
onRow: (record) => {
|
|
82874
|
-
const consumerRowProps = onRow?.(record, void 0);
|
|
82875
|
-
const navigationClickHandler = buildNavigationClickHandler(record);
|
|
82876
|
-
return {
|
|
82877
|
-
...consumerRowProps,
|
|
82878
|
-
onClick: (event) => {
|
|
82879
|
-
consumerRowProps?.onClick?.(event);
|
|
82880
|
-
if (!event.defaultPrevented) {
|
|
82881
|
-
navigationClickHandler();
|
|
82882
|
-
}
|
|
83050
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsxs(TableComponents.HideableControls, { children: [
|
|
83051
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
83052
|
+
Table,
|
|
83053
|
+
{
|
|
83054
|
+
rowKey,
|
|
83055
|
+
dataSource,
|
|
83056
|
+
columns: columnsWithControls,
|
|
83057
|
+
pagination: tableProps?.disablePagination ? false : {
|
|
83058
|
+
position: tableProps?.paginationPosition || ["bottomLeft"],
|
|
83059
|
+
showSizeChanger: true,
|
|
83060
|
+
defaultPageSize: 10,
|
|
83061
|
+
hideOnSinglePage: false,
|
|
83062
|
+
showTotal
|
|
83063
|
+
},
|
|
83064
|
+
scroll: tableProps?.scroll || { x: "max-content", y: tableProps?.maxHeight },
|
|
83065
|
+
virtual: tableProps?.virtual,
|
|
83066
|
+
rowClassName,
|
|
83067
|
+
rowSelection: selectData ? {
|
|
83068
|
+
type: "checkbox",
|
|
83069
|
+
// Keep selection controls aligned with the fixed Name column.
|
|
83070
|
+
fixed: "left",
|
|
83071
|
+
columnWidth: 48,
|
|
83072
|
+
selectedRowKeys: selectData.selectedRowKeys,
|
|
83073
|
+
onChange: (selectedRowKeys, selectedRows) => {
|
|
83074
|
+
const rows = selectedRows;
|
|
83075
|
+
selectData.onChange(
|
|
83076
|
+
selectedRowKeys,
|
|
83077
|
+
rows.map(({ internalDataForControls }) => ({
|
|
83078
|
+
name: internalDataForControls.name,
|
|
83079
|
+
endpoint: `${internalDataForControls.deletePathPrefix}/${internalDataForControls.apiGroupAndVersion}${internalDataForControls.namespace ? `/namespaces/${internalDataForControls.namespace}` : ""}/${internalDataForControls.plural}/${internalDataForControls.name}`
|
|
83080
|
+
}))
|
|
83081
|
+
);
|
|
82883
83082
|
}
|
|
82884
|
-
}
|
|
83083
|
+
} : void 0,
|
|
83084
|
+
onRow: (record) => {
|
|
83085
|
+
const consumerRowProps = onRow?.(record, void 0);
|
|
83086
|
+
const navigationClickHandler = buildNavigationClickHandler(record);
|
|
83087
|
+
return {
|
|
83088
|
+
...consumerRowProps,
|
|
83089
|
+
onClick: (event) => {
|
|
83090
|
+
consumerRowProps?.onClick?.(event);
|
|
83091
|
+
if (!event.defaultPrevented) {
|
|
83092
|
+
navigationClickHandler();
|
|
83093
|
+
}
|
|
83094
|
+
}
|
|
83095
|
+
};
|
|
83096
|
+
}
|
|
82885
83097
|
}
|
|
82886
|
-
|
|
82887
|
-
|
|
83098
|
+
),
|
|
83099
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(SyncedHorizontalScrollbar, { disabled: tableProps?.virtual, tableContainerRef })
|
|
83100
|
+
] })
|
|
82888
83101
|
}
|
|
82889
83102
|
);
|
|
82890
83103
|
};
|
|
@@ -82902,6 +83115,7 @@ const ClusterListTable = ({
|
|
|
82902
83115
|
tableProps
|
|
82903
83116
|
}) => {
|
|
82904
83117
|
const navigate = useNavigate();
|
|
83118
|
+
const tableContainerRef = React__default.useRef(null);
|
|
82905
83119
|
if (!columns) {
|
|
82906
83120
|
return null;
|
|
82907
83121
|
}
|
|
@@ -82942,54 +83156,58 @@ const ClusterListTable = ({
|
|
|
82942
83156
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
82943
83157
|
TableComponents.TableContainer,
|
|
82944
83158
|
{
|
|
83159
|
+
ref: tableContainerRef,
|
|
82945
83160
|
$isDark: theme === "dark",
|
|
82946
83161
|
$isCursorPointer: Boolean(
|
|
82947
83162
|
recordKeysForNavigation && (!!pathToNavigate || !!navigationSettings) || rowClickable
|
|
82948
83163
|
),
|
|
82949
83164
|
$borderless: tableProps?.borderless,
|
|
82950
83165
|
$isTotalLeft: tableProps?.isTotalLeft,
|
|
82951
|
-
children: /* @__PURE__ */ jsxRuntimeExports.
|
|
82952
|
-
|
|
82953
|
-
|
|
82954
|
-
|
|
82955
|
-
|
|
82956
|
-
|
|
82957
|
-
|
|
82958
|
-
|
|
82959
|
-
|
|
82960
|
-
|
|
82961
|
-
|
|
82962
|
-
|
|
82963
|
-
|
|
82964
|
-
|
|
82965
|
-
|
|
82966
|
-
|
|
82967
|
-
|
|
82968
|
-
|
|
82969
|
-
|
|
82970
|
-
|
|
82971
|
-
|
|
82972
|
-
|
|
82973
|
-
|
|
82974
|
-
|
|
82975
|
-
}
|
|
82976
|
-
if (recordKeysForNavigation) {
|
|
82977
|
-
const recordValueRaw = Array.isArray(recordKeysForNavigation) ? lodashExports.get(record, recordKeysForNavigation) : jp.query(record || {}, `$${recordKeysForNavigation}`)[0];
|
|
82978
|
-
const clusterName = typeof recordValueRaw === "string" ? recordValueRaw : void 0;
|
|
82979
|
-
const recordValue = typeof recordValueRaw === "string" ? recordValueRaw : JSON.stringify(recordValueRaw);
|
|
82980
|
-
const fetchedPathToNavigate = await tryGetPathFromNavigationResource(clusterName);
|
|
82981
|
-
const finalPathToNavigate = fetchedPathToNavigate || pathToNavigate;
|
|
82982
|
-
if (!finalPathToNavigate) {
|
|
83166
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsxs(TableComponents.HideableControls, { children: [
|
|
83167
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
83168
|
+
Table,
|
|
83169
|
+
{
|
|
83170
|
+
rowKey,
|
|
83171
|
+
dataSource,
|
|
83172
|
+
columns: enrichedColumns,
|
|
83173
|
+
pagination: tableProps?.disablePagination ? false : {
|
|
83174
|
+
position: tableProps?.paginationPosition || ["bottomLeft"],
|
|
83175
|
+
showSizeChanger: true,
|
|
83176
|
+
defaultPageSize: 10,
|
|
83177
|
+
hideOnSinglePage: false,
|
|
83178
|
+
showTotal
|
|
83179
|
+
},
|
|
83180
|
+
scroll: tableProps?.scroll || { x: "max-content", y: tableProps?.maxHeight },
|
|
83181
|
+
virtual: tableProps?.virtual,
|
|
83182
|
+
rowClassName,
|
|
83183
|
+
onRow: (record) => {
|
|
83184
|
+
const consumerRowProps = onRow?.(record, void 0);
|
|
83185
|
+
return {
|
|
83186
|
+
...consumerRowProps,
|
|
83187
|
+
onClick: async (event) => {
|
|
83188
|
+
consumerRowProps?.onClick?.(event);
|
|
83189
|
+
if (event.defaultPrevented) {
|
|
82983
83190
|
return;
|
|
82984
83191
|
}
|
|
82985
|
-
|
|
82986
|
-
|
|
83192
|
+
if (recordKeysForNavigation) {
|
|
83193
|
+
const recordValueRaw = Array.isArray(recordKeysForNavigation) ? lodashExports.get(record, recordKeysForNavigation) : jp.query(record || {}, `$${recordKeysForNavigation}`)[0];
|
|
83194
|
+
const clusterName = typeof recordValueRaw === "string" ? recordValueRaw : void 0;
|
|
83195
|
+
const recordValue = typeof recordValueRaw === "string" ? recordValueRaw : JSON.stringify(recordValueRaw);
|
|
83196
|
+
const fetchedPathToNavigate = await tryGetPathFromNavigationResource(clusterName);
|
|
83197
|
+
const finalPathToNavigate = fetchedPathToNavigate || pathToNavigate;
|
|
83198
|
+
if (!finalPathToNavigate) {
|
|
83199
|
+
return;
|
|
83200
|
+
}
|
|
83201
|
+
const newPath = finalPathToNavigate.replaceAll("~recordValue~", recordValue);
|
|
83202
|
+
navigate(newPath);
|
|
83203
|
+
}
|
|
82987
83204
|
}
|
|
82988
|
-
}
|
|
82989
|
-
}
|
|
83205
|
+
};
|
|
83206
|
+
}
|
|
82990
83207
|
}
|
|
82991
|
-
|
|
82992
|
-
|
|
83208
|
+
),
|
|
83209
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(SyncedHorizontalScrollbar, { disabled: tableProps?.virtual, tableContainerRef })
|
|
83210
|
+
] })
|
|
82993
83211
|
}
|
|
82994
83212
|
);
|
|
82995
83213
|
};
|
|
@@ -94596,4 +94814,4 @@ const usePluginManifest = ({
|
|
|
94596
94814
|
};
|
|
94597
94815
|
|
|
94598
94816
|
export { useCrdResourceSingle as $, getBuiltinResources as A, getBuiltinResourceSingle as B, getCrdResources as C, DeleteIcon as D, EnrichedTableProvider as E, getCrdResourceSingle as F, getApiResourceTypes as G, getApiResourceTypesByApiGroup as H, getBuiltinResourceTypes as I, getCrdData as J, getDirectUnknownResource as K, checkPermission as L, getSwagger as M, filterIfApiInstanceNamespaceScoped as N, filterIfBuiltInInstanceNamespaceScoped as O, PerRequestError as P, checkIfApiInstanceNamespaceScoped as Q, ReadOnlyModal as R, checkIfBuiltInInstanceNamespaceScoped as S, getKinds as T, useClusterList as U, useApiResources as V, useApiResourceSingle as W, useBuiltinResources as X, useBuiltinResourceSingle as Y, useCrdResources as Z, _$1 as _, useTheme as a, DynamicRenderer as a$, useApisResourceTypes as a0, useApiResourceTypesByGroup as a1, useBuiltinResourceTypes as a2, useCrdData as a3, useListWatch as a4, useInfiniteSentinel as a5, useK8sVerbs as a6, useManyK8sSmartResource as a7, useSmartResourceParams as a8, useResourceScope as a9, ResourceLink as aA, ErrorBoundary as aB, ErrorBoundaryWithDataReset as aC, ManageableBreadcrumbsProvider as aD, prepareDataForManageableBreadcrumbs as aE, ManageableBreadcrumbs as aF, ManageableSidebarProvider as aG, prepareDataForManageableSidebar as aH, ManageableSidebar as aI, EnrichedTable as aJ, ClusterListTable as aK, getEnrichedColumns as aL, getEnrichedColumnsWithControls as aM, YamlEditorSingleton$1 as aN, BlackholeFormProvider as aO, BlackholeForm as aP, getObjectFormItemsDraft as aQ, MarketPlace as aR, MarketplaceCard as aS, ProjectInfoCard as aT, PodTerminal as aU, NodeTerminal as aV, PodLogs as aW, PodLogsMonaco as aX, VMVNC as aY, Search as aZ, Events as a_, useKinds as aa, useKindsRaw as ab, usePluginManifest as ac, Spacer$1 as ad, TreeWithSearch as ae, ConfirmModal as af, UpIcon as ag, DownIcon as ah, BackToDefaultIcon as ai, SuccessIcon as aj, feedbackIcons as ak, PlusIcon as al, MinusIcon as am, LockedIcon as an, UnlockedIcon as ao, PauseCircleIcon as ap, ResumeCircleIcon as aq, LookingGlassIcon as ar, EarthIcon as as, ContentCard$1 as at, FlexGrow as au, UncontrolledSelect as av, CustomSelect$4 as aw, CursorPointerTag as ax, CursorPointerTagMinContent as ay, CursorDefaultDiv as az, usePartsOfUrl as b, DynamicComponents as b0, DynamicRendererWithProviders as b1, prepareTemplate as b2, isFlatObject as b3, filterSelectOptions as b4, getStringByName as b5, floorToDecimal as b6, parseQuotaValue as b7, parseQuotaValueCpu as b8, parseQuotaValueMemoryAndStorage as b9, convertStorage as bA, parseValueWithUnit as bB, convertCores as bC, formatCoresAuto as bD, toCores as bE, convertCompute as bF, parseCoresWithUnit as bG, formatDateAuto as bH, isValidRFC3339 as bI, normalizeValuesForQuotasToNumber as ba, getAllPathsFromObj as bb, getPrefixSubarrays as bc, groupsToTreeData as bd, getBuiltinTreeData as be, getGroupsByCategory as bf, createContextFactory as bg, prepareUrlsToFetchForDynamicRenderer as bh, deepMerge as bi, getSortedKinds as bj, getSortedKindsAll as bk, hslFromString as bl, getUppercase as bm, kindByGvr as bn, pluralByKind as bo, namespacedByGvr as bp, getLinkToBuiltinForm as bq, getLinkToApiForm as br, isMultilineString as bs, isMultilineFromYaml as bt, includesArray as bu, getResourceLink as bv, getNamespaceLink as bw, convertBytes as bx, formatBytesAuto as by, toBytes as bz, useAutoPerRequestError as c, usePermissions as d, useDirectUnknownResource as e, useK8sSmartResource as f, jsxRuntimeExports as g, EditIcon as h, PaddingContainer as i, jp as j, getLinkToForm as k, DeleteModal as l, mergePerRequestErrors as m, DeleteModalMany as n, getClusterList as o, parseAll as p, createNewEntry as q, updateEntry as r, serializeLabelsWithNoEncoding$1 as s, deleteEntry as t, useMultiQuery as u, patchEntryWithReplaceOp as v, patchEntryWithMergePatch as w, patchEntryWithDeleteOp as x, getApiResources as y, getApiResourceSingle as z };
|
|
94599
|
-
//# sourceMappingURL=index-
|
|
94817
|
+
//# sourceMappingURL=index-cNF5QCwf.mjs.map
|