@prorobotech/openapi-k8s-toolkit 1.1.0-alpha.8 → 1.1.0-alpha.9

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.
Files changed (195) hide show
  1. package/dist/openapi-k8s-toolkit.es.js +746 -326
  2. package/dist/openapi-k8s-toolkit.es.js.map +1 -1
  3. package/dist/openapi-k8s-toolkit.umd.js +753 -330
  4. package/dist/openapi-k8s-toolkit.umd.js.map +1 -1
  5. package/dist/types/components/atoms/CursorDefaultDiv/CursorDefaultDiv.d.ts +2 -2
  6. package/dist/types/components/atoms/CursorDefaultDiv/index.d.ts +1 -1
  7. package/dist/types/components/atoms/CursorPointerTag/index.d.ts +1 -1
  8. package/dist/types/components/atoms/CursorPointerTagMinContent/index.d.ts +1 -1
  9. package/dist/types/components/atoms/CustomSelect/index.d.ts +1 -1
  10. package/dist/types/components/atoms/FlexGrow/index.d.ts +1 -1
  11. package/dist/types/components/atoms/PaddingContainer/index.d.ts +1 -1
  12. package/dist/types/components/atoms/ResourceLink/ResourceLink.d.ts +19 -0
  13. package/dist/types/components/atoms/ResourceLink/index.d.ts +1 -0
  14. package/dist/types/components/atoms/ResourceLink/styled.d.ts +8 -0
  15. package/dist/types/components/atoms/UncontrolledSelect/index.d.ts +1 -1
  16. package/dist/types/components/atoms/index.d.ts +19 -13
  17. package/dist/types/components/molecules/BlackholeForm/atoms/ArrayInsideContainer/ArrayInsideContainer.d.ts +2 -2
  18. package/dist/types/components/molecules/BlackholeForm/atoms/ArrayInsideContainer/index.d.ts +1 -1
  19. package/dist/types/components/molecules/BlackholeForm/atoms/CustomCollapse/index.d.ts +1 -1
  20. package/dist/types/components/molecules/BlackholeForm/atoms/CustomSizeTitle/index.d.ts +1 -1
  21. package/dist/types/components/molecules/BlackholeForm/atoms/DebugNameViewer/index.d.ts +1 -1
  22. package/dist/types/components/molecules/BlackholeForm/atoms/HeightContainer/index.d.ts +1 -1
  23. package/dist/types/components/molecules/BlackholeForm/atoms/HiddenContainer/HiddenContainer.d.ts +4 -2
  24. package/dist/types/components/molecules/BlackholeForm/atoms/HiddenContainer/index.d.ts +1 -1
  25. package/dist/types/components/molecules/BlackholeForm/atoms/PersistedCheckbox/index.d.ts +1 -1
  26. package/dist/types/components/molecules/BlackholeForm/atoms/PossibleHiddenContainer/index.d.ts +1 -1
  27. package/dist/types/components/molecules/BlackholeForm/atoms/ResetedFormItem/index.d.ts +1 -1
  28. package/dist/types/components/molecules/BlackholeForm/atoms/index.d.ts +9 -9
  29. package/dist/types/components/molecules/BlackholeForm/index.d.ts +2 -1
  30. package/dist/types/components/molecules/BlackholeForm/molecules/FormArrayHeader/index.d.ts +1 -1
  31. package/dist/types/components/molecules/BlackholeForm/molecules/FormBooleanInput/index.d.ts +1 -1
  32. package/dist/types/components/molecules/BlackholeForm/molecules/FormEnumStringInput/index.d.ts +1 -1
  33. package/dist/types/components/molecules/BlackholeForm/molecules/FormInlineYamlEditor/FormInlineYamlEditor.d.ts +4 -2
  34. package/dist/types/components/molecules/BlackholeForm/molecules/FormInlineYamlEditor/index.d.ts +1 -1
  35. package/dist/types/components/molecules/BlackholeForm/molecules/FormListInput/index.d.ts +1 -1
  36. package/dist/types/components/molecules/BlackholeForm/molecules/FormNamespaceInput/index.d.ts +1 -1
  37. package/dist/types/components/molecules/BlackholeForm/molecules/FormNumberInput/index.d.ts +1 -1
  38. package/dist/types/components/molecules/BlackholeForm/molecules/FormObjectFromSwagger/index.d.ts +1 -1
  39. package/dist/types/components/molecules/BlackholeForm/molecules/FormRangeInput/index.d.ts +1 -1
  40. package/dist/types/components/molecules/BlackholeForm/molecules/FormRangeInput/molecules/RangeInput/index.d.ts +1 -1
  41. package/dist/types/components/molecules/BlackholeForm/molecules/FormRangeInput/molecules/index.d.ts +1 -1
  42. package/dist/types/components/molecules/BlackholeForm/molecules/FormStringInput/index.d.ts +1 -1
  43. package/dist/types/components/molecules/BlackholeForm/molecules/FormStringMultilineInput/index.d.ts +1 -1
  44. package/dist/types/components/molecules/BlackholeForm/molecules/YamlEditor/index.d.ts +1 -1
  45. package/dist/types/components/molecules/BlackholeForm/molecules/YamlEditorSingleton/index.d.ts +1 -1
  46. package/dist/types/components/molecules/BlackholeForm/molecules/index.d.ts +13 -13
  47. package/dist/types/components/molecules/BlackholeForm/organisms/BlackholeForm/BlackholeForm.d.ts +2 -3
  48. package/dist/types/components/molecules/BlackholeForm/organisms/BlackholeForm/index.d.ts +1 -0
  49. package/dist/types/components/molecules/BlackholeForm/organisms/{BlackholeFormDataProvider/BlackholeFormDataProvider.d.ts → BlackholeFormProvider/BlackholeFormProvider.d.ts} +2 -2
  50. package/dist/types/components/molecules/BlackholeForm/organisms/BlackholeFormProvider/index.d.ts +2 -0
  51. package/dist/types/components/molecules/BlackholeForm/organisms/index.d.ts +4 -2
  52. package/dist/types/components/molecules/EnrichedTable/index.d.ts +2 -1
  53. package/dist/types/components/molecules/EnrichedTable/molecules/index.d.ts +1 -1
  54. package/dist/types/components/molecules/EnrichedTable/organisms/EnrichedTable/atoms/FilterDropdown/index.d.ts +1 -1
  55. package/dist/types/components/molecules/EnrichedTable/organisms/EnrichedTable/atoms/ShortenedTextWithTooltip/index.d.ts +1 -1
  56. package/dist/types/components/molecules/EnrichedTable/organisms/EnrichedTable/atoms/TableComponents/index.d.ts +1 -1
  57. package/dist/types/components/molecules/EnrichedTable/organisms/EnrichedTable/atoms/TextAlignContainer/index.d.ts +1 -1
  58. package/dist/types/components/molecules/EnrichedTable/organisms/EnrichedTable/atoms/TinyButton/index.d.ts +1 -1
  59. package/dist/types/components/molecules/EnrichedTable/organisms/EnrichedTable/atoms/TrimmedTags/index.d.ts +1 -1
  60. package/dist/types/components/molecules/EnrichedTable/organisms/EnrichedTable/atoms/index.d.ts +6 -6
  61. package/dist/types/components/molecules/EnrichedTable/organisms/index.d.ts +4 -2
  62. package/dist/types/components/molecules/Events/Events.d.ts +3 -2
  63. package/dist/types/components/molecules/Events/index.d.ts +1 -0
  64. package/dist/types/components/molecules/Events/molecules/EventRow/EventRow.d.ts +1 -0
  65. package/dist/types/components/molecules/Events/molecules/EventRow/utils.d.ts +0 -20
  66. package/dist/types/components/molecules/ManageableBreadcrumbs/index.d.ts +2 -3
  67. package/dist/types/components/molecules/ManageableBreadcrumbs/molecules/CollapsibleBreadcrumb/index.d.ts +1 -1
  68. package/dist/types/components/molecules/ManageableBreadcrumbs/molecules/index.d.ts +1 -1
  69. package/dist/types/components/molecules/ManageableBreadcrumbs/organisms/ManageableBreadcrumbs/ManageableBreadcrumbs.d.ts +8 -0
  70. package/dist/types/components/molecules/ManageableBreadcrumbs/organisms/ManageableBreadcrumbs/index.d.ts +2 -0
  71. package/dist/types/components/molecules/ManageableBreadcrumbs/organisms/ManageableBreadcrumbsProvider/ManageableBreadcrumbsProvider.d.ts +12 -0
  72. package/dist/types/components/molecules/ManageableBreadcrumbs/organisms/ManageableBreadcrumbsProvider/index.d.ts +3 -0
  73. package/dist/types/components/molecules/ManageableBreadcrumbs/organisms/ManageableBreadcrumbsProvider/styled.d.ts +276 -0
  74. package/dist/types/components/molecules/ManageableBreadcrumbs/organisms/index.d.ts +4 -0
  75. package/dist/types/components/molecules/ManageableSidebar/index.d.ts +2 -3
  76. package/dist/types/components/molecules/ManageableSidebar/organisms/ManageableSidebar/ManageableSidebar.d.ts +10 -0
  77. package/dist/types/components/molecules/ManageableSidebar/organisms/ManageableSidebar/index.d.ts +2 -0
  78. package/dist/types/components/molecules/ManageableSidebar/organisms/ManageableSidebarProvider/ManageableSidebarProvider.d.ts +15 -0
  79. package/dist/types/components/molecules/ManageableSidebar/organisms/ManageableSidebarProvider/index.d.ts +3 -0
  80. package/dist/types/components/molecules/ManageableSidebar/organisms/index.d.ts +4 -0
  81. package/dist/types/components/molecules/MarketPlace/atoms/AddCard/index.d.ts +1 -1
  82. package/dist/types/components/molecules/MarketPlace/atoms/index.d.ts +1 -1
  83. package/dist/types/components/molecules/MarketPlace/molecules/AddEditFormModal/index.d.ts +1 -1
  84. package/dist/types/components/molecules/MarketPlace/molecules/MarketplaceCard/index.d.ts +2 -1
  85. package/dist/types/components/molecules/MarketPlace/molecules/SearchTextInput/index.d.ts +1 -1
  86. package/dist/types/components/molecules/MarketPlace/molecules/index.d.ts +4 -3
  87. package/dist/types/components/molecules/ProjectInfoCard/molecules/DropdownAccessGroups/index.d.ts +1 -1
  88. package/dist/types/components/molecules/ProjectInfoCard/molecules/DropdownActions/index.d.ts +1 -1
  89. package/dist/types/components/molecules/ProjectInfoCard/molecules/index.d.ts +2 -2
  90. package/dist/types/components/molecules/Search/Search.d.ts +1 -2
  91. package/dist/types/components/molecules/Search/index.d.ts +1 -0
  92. package/dist/types/components/molecules/Terminals/NodeTerminal/molecules/XTerminal/index.d.ts +1 -1
  93. package/dist/types/components/molecules/Terminals/NodeTerminal/molecules/index.d.ts +1 -1
  94. package/dist/types/components/molecules/Terminals/PodLogs/molecules/XTerminal/index.d.ts +1 -1
  95. package/dist/types/components/molecules/Terminals/PodLogs/molecules/index.d.ts +1 -1
  96. package/dist/types/components/molecules/Terminals/PodLogsMonaco/molecules/MonacoEditor/index.d.ts +1 -1
  97. package/dist/types/components/molecules/Terminals/PodLogsMonaco/molecules/index.d.ts +1 -1
  98. package/dist/types/components/molecules/Terminals/PodTerminal/molecules/XTerminal/index.d.ts +1 -1
  99. package/dist/types/components/molecules/Terminals/PodTerminal/molecules/index.d.ts +1 -1
  100. package/dist/types/components/molecules/Terminals/index.d.ts +8 -4
  101. package/dist/types/components/molecules/index.d.ts +18 -9
  102. package/dist/types/components/organisms/DynamicComponents/molecules/Annotations/index.d.ts +1 -1
  103. package/dist/types/components/organisms/DynamicComponents/molecules/Annotations/molecules/EditModal/index.d.ts +1 -1
  104. package/dist/types/components/organisms/DynamicComponents/molecules/Annotations/molecules/index.d.ts +1 -1
  105. package/dist/types/components/organisms/DynamicComponents/molecules/AntdButton/index.d.ts +1 -1
  106. package/dist/types/components/organisms/DynamicComponents/molecules/AntdCard/index.d.ts +1 -1
  107. package/dist/types/components/organisms/DynamicComponents/molecules/AntdCol/index.d.ts +1 -1
  108. package/dist/types/components/organisms/DynamicComponents/molecules/AntdFlex/index.d.ts +1 -1
  109. package/dist/types/components/organisms/DynamicComponents/molecules/AntdLink/index.d.ts +1 -1
  110. package/dist/types/components/organisms/DynamicComponents/molecules/AntdRow/index.d.ts +1 -1
  111. package/dist/types/components/organisms/DynamicComponents/molecules/AntdTabs/index.d.ts +1 -1
  112. package/dist/types/components/organisms/DynamicComponents/molecules/AntdText/index.d.ts +1 -1
  113. package/dist/types/components/organisms/DynamicComponents/molecules/ArrayOfObjectsToKeyValues/index.d.ts +1 -1
  114. package/dist/types/components/organisms/DynamicComponents/molecules/ContentCard/index.d.ts +1 -1
  115. package/dist/types/components/organisms/DynamicComponents/molecules/ConverterBytes/index.d.ts +1 -1
  116. package/dist/types/components/organisms/DynamicComponents/molecules/DefaultDiv/index.d.ts +1 -1
  117. package/dist/types/components/organisms/DynamicComponents/molecules/EnrichedTable/index.d.ts +1 -1
  118. package/dist/types/components/organisms/DynamicComponents/molecules/Events/index.d.ts +1 -1
  119. package/dist/types/components/organisms/DynamicComponents/molecules/ItemCounter/index.d.ts +1 -1
  120. package/dist/types/components/organisms/DynamicComponents/molecules/KeyCounter/index.d.ts +1 -1
  121. package/dist/types/components/organisms/DynamicComponents/molecules/Labels/index.d.ts +1 -1
  122. package/dist/types/components/organisms/DynamicComponents/molecules/Labels/molecules/EditModal/index.d.ts +1 -1
  123. package/dist/types/components/organisms/DynamicComponents/molecules/Labels/molecules/index.d.ts +1 -1
  124. package/dist/types/components/organisms/DynamicComponents/molecules/LabelsToSearchParams/index.d.ts +1 -1
  125. package/dist/types/components/organisms/DynamicComponents/molecules/MarketplaceCard/index.d.ts +1 -1
  126. package/dist/types/components/organisms/DynamicComponents/molecules/MultiQuery/index.d.ts +1 -1
  127. package/dist/types/components/organisms/DynamicComponents/molecules/NodeTerminal/index.d.ts +1 -1
  128. package/dist/types/components/organisms/DynamicComponents/molecules/OwnerRefs/OwnerRefs.d.ts +6 -0
  129. package/dist/types/components/organisms/DynamicComponents/molecules/OwnerRefs/guard.d.ts +2 -0
  130. package/dist/types/components/organisms/DynamicComponents/molecules/OwnerRefs/index.d.ts +1 -0
  131. package/dist/types/components/organisms/DynamicComponents/molecules/OwnerRefs/organsisms/RefsList/RefsList.d.ts +21 -0
  132. package/dist/types/components/organisms/DynamicComponents/molecules/OwnerRefs/organsisms/RefsList/index.d.ts +1 -0
  133. package/dist/types/components/organisms/DynamicComponents/molecules/OwnerRefs/organsisms/RefsList/molecules/RefElement/RefElement.d.ts +20 -0
  134. package/dist/types/components/organisms/DynamicComponents/molecules/OwnerRefs/organsisms/RefsList/molecules/RefElement/index.d.ts +1 -0
  135. package/dist/types/components/organisms/DynamicComponents/molecules/OwnerRefs/organsisms/RefsList/molecules/RefElement/utils.d.ts +5 -0
  136. package/dist/types/components/organisms/DynamicComponents/molecules/OwnerRefs/organsisms/RefsList/molecules/index.d.ts +1 -0
  137. package/dist/types/components/organisms/DynamicComponents/molecules/OwnerRefs/types.d.ts +6 -0
  138. package/dist/types/components/organisms/DynamicComponents/molecules/ParsedText/index.d.ts +1 -1
  139. package/dist/types/components/organisms/DynamicComponents/molecules/PartsOfUrl/index.d.ts +1 -1
  140. package/dist/types/components/organisms/DynamicComponents/molecules/PodLogs/index.d.ts +1 -1
  141. package/dist/types/components/organisms/DynamicComponents/molecules/PodTerminal/index.d.ts +1 -1
  142. package/dist/types/components/organisms/DynamicComponents/molecules/ProjectInfoCard/index.d.ts +1 -1
  143. package/dist/types/components/organisms/DynamicComponents/molecules/ResourceBadge/index.d.ts +1 -1
  144. package/dist/types/components/organisms/DynamicComponents/molecules/SecretBase64Plain/index.d.ts +1 -1
  145. package/dist/types/components/organisms/DynamicComponents/molecules/SidebarProvider/index.d.ts +1 -1
  146. package/dist/types/components/organisms/DynamicComponents/molecules/Spacer/index.d.ts +1 -1
  147. package/dist/types/components/organisms/DynamicComponents/molecules/StatusText/index.d.ts +1 -1
  148. package/dist/types/components/organisms/DynamicComponents/molecules/Taints/index.d.ts +1 -1
  149. package/dist/types/components/organisms/DynamicComponents/molecules/Taints/molecules/EditModal/index.d.ts +1 -1
  150. package/dist/types/components/organisms/DynamicComponents/molecules/Taints/molecules/index.d.ts +1 -1
  151. package/dist/types/components/organisms/DynamicComponents/molecules/Tolerations/index.d.ts +1 -1
  152. package/dist/types/components/organisms/DynamicComponents/molecules/Tolerations/molecules/EditModal/index.d.ts +1 -1
  153. package/dist/types/components/organisms/DynamicComponents/molecules/Tolerations/molecules/index.d.ts +1 -1
  154. package/dist/types/components/organisms/DynamicComponents/molecules/VisibilityContainer/index.d.ts +1 -1
  155. package/dist/types/components/organisms/DynamicComponents/molecules/YamlEditorSingleton/index.d.ts +1 -1
  156. package/dist/types/components/organisms/DynamicComponents/molecules/index.d.ts +37 -36
  157. package/dist/types/components/organisms/DynamicComponents/types.d.ts +27 -4
  158. package/dist/types/components/organisms/index.d.ts +5 -3
  159. package/dist/types/index.d.ts +1 -0
  160. package/dist/types/localTypes/navigations.d.ts +24 -0
  161. package/dist/types/utils/createContextFactory/index.d.ts +1 -1
  162. package/dist/types/utils/deepMerge/index.d.ts +1 -1
  163. package/dist/types/utils/filterSelectOptions/index.d.ts +1 -1
  164. package/dist/types/utils/getAllPathsFromObj/index.d.ts +1 -1
  165. package/dist/types/utils/getGroupsByCategory/index.d.ts +1 -1
  166. package/dist/types/utils/getPrefixSubArrays/index.d.ts +1 -1
  167. package/dist/types/utils/getResourceLink/getResourceLink.d.ts +27 -0
  168. package/dist/types/utils/getResourceLink/index.d.ts +1 -0
  169. package/dist/types/utils/getSortedKinds/index.d.ts +1 -1
  170. package/dist/types/utils/getSortedKindsAll/index.d.ts +1 -1
  171. package/dist/types/utils/getStringByName/index.d.ts +1 -1
  172. package/dist/types/utils/getUppercase/index.d.ts +1 -1
  173. package/dist/types/utils/groupsToTreeData/index.d.ts +2 -1
  174. package/dist/types/utils/hslFromString/index.d.ts +1 -1
  175. package/dist/types/utils/index.d.ts +25 -22
  176. package/dist/types/utils/isFlatObject/index.d.ts +1 -1
  177. package/dist/types/utils/kindByGvr/index.d.ts +1 -1
  178. package/dist/types/utils/namespacedByGvr/index.d.ts +1 -1
  179. package/dist/types/utils/nestedStringsArrayInclude/index.d.ts +1 -1
  180. package/dist/types/utils/normalizeValuesForQuotas/index.d.ts +1 -1
  181. package/dist/types/utils/parseForQuotaValues/index.d.ts +1 -1
  182. package/dist/types/utils/pluralByKind/index.d.ts +1 -1
  183. package/dist/types/utils/prepareTemplate/index.d.ts +1 -1
  184. package/dist/types/utils/prepareUrlsToFetchForDynamicRenderer/index.d.ts +1 -1
  185. package/dist/types/utils/tableLocations/index.d.ts +1 -1
  186. package/package.json +1 -1
  187. package/dist/types/components/molecules/BlackholeForm/organisms/BlackholeFormDataProvider/index.d.ts +0 -2
  188. package/dist/types/components/molecules/ManageableBreadcrumbs/ManageableBreadcrumbs.d.ts +0 -19
  189. package/dist/types/components/molecules/ManageableSidebar/ManageableSidebar.d.ts +0 -24
  190. /package/dist/types/components/molecules/ManageableBreadcrumbs/{styled.d.ts → organisms/ManageableBreadcrumbs/styled.d.ts} +0 -0
  191. /package/dist/types/components/molecules/ManageableBreadcrumbs/{types.d.ts → organisms/ManageableBreadcrumbsProvider/types.d.ts} +0 -0
  192. /package/dist/types/components/molecules/ManageableBreadcrumbs/{utils.d.ts → organisms/ManageableBreadcrumbsProvider/utils.d.ts} +0 -0
  193. /package/dist/types/components/molecules/ManageableSidebar/{styled.d.ts → organisms/ManageableSidebar/styled.d.ts} +0 -0
  194. /package/dist/types/components/molecules/ManageableSidebar/{types.d.ts → organisms/ManageableSidebarProvider/types.d.ts} +0 -0
  195. /package/dist/types/components/molecules/ManageableSidebar/{utils.d.ts → organisms/ManageableSidebarProvider/utils.d.ts} +0 -0
@@ -1,9 +1,9 @@
1
1
  import styled, { createGlobalStyle } from 'styled-components';
2
- import K, { useState, useRef, useReducer, useEffect, useCallback, useMemo, useLayoutEffect, Fragment, createContext, useContext, createElement, isValidElement, cloneElement, useInsertionEffect, useSyncExternalStore, memo, Suspense } from 'react';
3
- import { Input, Tree, Modal, Alert, theme, Select, Tag, Breadcrumb, Spin, Menu, Tooltip, Space, Button, Flex, Typography, Card as Card$1, Row, Col, Tabs, Form, Popover, notification, Dropdown, Table, Slider, InputNumber, Switch, Result, Progress, Checkbox, Empty } from 'antd';
2
+ import K, { useState, useRef, useLayoutEffect, useReducer, useEffect, useCallback, useMemo, Fragment, createContext, useContext, createElement, isValidElement, cloneElement, useInsertionEffect, useSyncExternalStore, memo, Suspense } from 'react';
3
+ import { Input, Tree, Modal, Alert, theme, Select, Tag, Flex, Typography, Breadcrumb, Spin, Menu, Tooltip, Space, Button, Card as Card$1, Row, Col, Tabs, Form, Popover, notification, Dropdown, Table, Slider, InputNumber, Switch, Result, Progress, Checkbox, Empty } from 'antd';
4
4
  import { LoadingOutlined, ExclamationCircleFilled, CloseCircleFilled, CheckCircleFilled, PlusOutlined, ClearOutlined, MinusOutlined, CaretDownOutlined, CaretRightOutlined, InfoCircleOutlined, EyeOutlined, EyeInvisibleOutlined, SearchOutlined, MoreOutlined, CheckOutlined, CloseOutlined, BugOutlined, EllipsisOutlined } from '@ant-design/icons';
5
+ import { useNavigate, Link, useLocation, useParams, useSearchParams } from 'react-router-dom';
5
6
  import { useQuery, useQueries, useQueryClient } from '@tanstack/react-query';
6
- import { Link, useNavigate, useLocation, useParams, useSearchParams } from 'react-router-dom';
7
7
 
8
8
  const Spacer$1 = styled.div`
9
9
  height: ${({ $space, $spaceMob, $samespace }) => {
@@ -1574,7 +1574,7 @@ const CustomTreeProvider = styled.div`
1574
1574
  justify-content: center;
1575
1575
  }
1576
1576
  `;
1577
- const Styled$A = {
1577
+ const Styled$C = {
1578
1578
  CustomTreeProvider
1579
1579
  };
1580
1580
 
@@ -1639,7 +1639,7 @@ const TreeWithSearch = ({ treeData, onSelect }) => {
1639
1639
  });
1640
1640
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
1641
1641
  /* @__PURE__ */ jsxRuntimeExports.jsx(Search$1, { style: { marginBottom: 8 }, placeholder: "Search", onChange }),
1642
- /* @__PURE__ */ jsxRuntimeExports.jsx(Styled$A.CustomTreeProvider, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
1642
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Styled$C.CustomTreeProvider, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
1643
1643
  Tree,
1644
1644
  {
1645
1645
  treeData: loop(treeData),
@@ -8168,14 +8168,14 @@ const ContentContainer = styled.div`
8168
8168
  display: ${({ $displayFlex }) => $displayFlex ? "flex" : "block"};
8169
8169
  flex-flow: ${({ $flexFlow }) => $flexFlow};
8170
8170
  `;
8171
- const Styled$z = {
8171
+ const Styled$B = {
8172
8172
  ContentContainer
8173
8173
  };
8174
8174
 
8175
8175
  const ContentCard$1 = ({ children, flexGrow, displayFlex, flexFlow, maxHeight }) => {
8176
8176
  const { token } = theme.useToken();
8177
8177
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
8178
- Styled$z.ContentContainer,
8178
+ Styled$B.ContentContainer,
8179
8179
  {
8180
8180
  $flexGrow: flexGrow,
8181
8181
  $bgColor: token.colorBgContainer,
@@ -8236,13 +8236,13 @@ const UncontrolledSelect$1 = styled(Select)`
8236
8236
  padding-inline: 8px;
8237
8237
  }
8238
8238
  `;
8239
- const Styled$y = {
8239
+ const Styled$A = {
8240
8240
  UncontrolledSelect: UncontrolledSelect$1
8241
8241
  };
8242
8242
 
8243
8243
  const UncontrolledSelect = (props) => {
8244
8244
  const { isCursorPointer } = props;
8245
- return /* @__PURE__ */ jsxRuntimeExports.jsx(Styled$y.UncontrolledSelect, { ...props, $isCursorPointer: isCursorPointer });
8245
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Styled$A.UncontrolledSelect, { ...props, $isCursorPointer: isCursorPointer });
8246
8246
  };
8247
8247
 
8248
8248
  const CustomSelect$5 = styled(Select)`
@@ -8290,13 +8290,13 @@ const CustomSelect$5 = styled(Select)`
8290
8290
  margin-block: 0 !important;
8291
8291
  }
8292
8292
  `;
8293
- const Styled$x = {
8293
+ const Styled$z = {
8294
8294
  CustomSelect: CustomSelect$5
8295
8295
  };
8296
8296
 
8297
8297
  const CustomSelect$4 = (props) => {
8298
8298
  const { paddingContainerEnd, ...rest } = props;
8299
- return /* @__PURE__ */ jsxRuntimeExports.jsx(Styled$x.CustomSelect, { $paddingContainerEnd: paddingContainerEnd, ...rest });
8299
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Styled$z.CustomSelect, { $paddingContainerEnd: paddingContainerEnd, ...rest });
8300
8300
  };
8301
8301
 
8302
8302
  const CursorPointerTag = styled(Tag)`
@@ -8316,6 +8316,273 @@ const PaddingContainer = styled.div`
8316
8316
  padding: ${({ $padding }) => $padding};
8317
8317
  `;
8318
8318
 
8319
+ const getUppercase = (s) => {
8320
+ const uppercases = [...s].filter((c) => c >= "A" && c <= "Z").join("");
8321
+ return uppercases.length > 0 ? uppercases : s[0].toUpperCase();
8322
+ };
8323
+
8324
+ const fnv1a32 = (str) => {
8325
+ let h = 2166136261;
8326
+ for (const ch of str) {
8327
+ h ^= ch.codePointAt(0);
8328
+ h = (h >>> 0) * 16777619;
8329
+ }
8330
+ return h >>> 0;
8331
+ };
8332
+ const pickInRange = (u32, min, max) => min + u32 % (max - min + 1);
8333
+ const hslFromString = (value, theme) => {
8334
+ const hash = fnv1a32(value);
8335
+ const hue = hash % 345;
8336
+ const [sMin, sMax] = theme === "light" ? [90, 100] : [78, 80];
8337
+ const [lMin, lMax] = theme === "light" ? [78, 80] : [25, 35];
8338
+ const s = pickInRange(hash >>> 8, sMin, sMax);
8339
+ const l = pickInRange(hash >>> 16, lMin, lMax);
8340
+ return `hsl(${hue}, ${s}%, ${l}%)`;
8341
+ };
8342
+
8343
+ const parseApiVersion$1 = (apiVersion) => {
8344
+ const parts = apiVersion.split("/");
8345
+ if (parts.length === 1) {
8346
+ return {
8347
+ apiGroup: void 0,
8348
+ apiVersion: parts[0]
8349
+ };
8350
+ }
8351
+ return {
8352
+ apiGroup: parts[0],
8353
+ apiVersion: parts[1]
8354
+ };
8355
+ };
8356
+ const getFactoryKey = ({
8357
+ apiGroup,
8358
+ apiVersion,
8359
+ resource,
8360
+ namespace,
8361
+ baseFactoriesMapping,
8362
+ baseFactoryNamespacedAPIKey,
8363
+ baseFactoryClusterSceopedAPIKey,
8364
+ baseFactoryNamespacedBuiltinKey,
8365
+ baseFactoryClusterSceopedBuiltinKey
8366
+ }) => {
8367
+ if (namespace) {
8368
+ if (apiGroup) {
8369
+ const forcedMapping3 = baseFactoriesMapping?.[`${baseFactoryNamespacedAPIKey}-${apiGroup}-${apiVersion}-${resource}`];
8370
+ return forcedMapping3 || baseFactoryNamespacedAPIKey || "";
8371
+ }
8372
+ const forcedMapping2 = baseFactoriesMapping?.[`${baseFactoryNamespacedBuiltinKey}-${apiVersion}-${resource}`];
8373
+ return forcedMapping2 || baseFactoryNamespacedBuiltinKey || "";
8374
+ }
8375
+ if (apiGroup) {
8376
+ const forcedMapping2 = baseFactoriesMapping?.[`${baseFactoryClusterSceopedAPIKey}-${apiGroup}-${apiVersion}-${resource}`];
8377
+ return forcedMapping2 || baseFactoryClusterSceopedAPIKey || "";
8378
+ }
8379
+ const forcedMapping = baseFactoriesMapping?.[`${baseFactoryClusterSceopedBuiltinKey}-${apiVersion}-${resource}`];
8380
+ return forcedMapping || baseFactoryClusterSceopedBuiltinKey || "";
8381
+ };
8382
+ const getResourceLink = ({
8383
+ baseprefix,
8384
+ cluster,
8385
+ namespace,
8386
+ apiGroupVersion,
8387
+ pluralName,
8388
+ name,
8389
+ baseFactoryNamespacedAPIKey,
8390
+ baseFactoryClusterSceopedAPIKey,
8391
+ baseFactoryNamespacedBuiltinKey,
8392
+ baseFactoryClusterSceopedBuiltinKey,
8393
+ baseFactoriesMapping
8394
+ }) => {
8395
+ if (!pluralName || !name) {
8396
+ return void 0;
8397
+ }
8398
+ const { apiGroup, apiVersion } = parseApiVersion$1(apiGroupVersion);
8399
+ if (apiGroupVersion === "v1") {
8400
+ return `${baseprefix}/${cluster}${namespace ? `/${namespace}` : ""}/factory/${getFactoryKey({
8401
+ apiGroup,
8402
+ apiVersion,
8403
+ resource: pluralName,
8404
+ namespace,
8405
+ baseFactoriesMapping,
8406
+ baseFactoryNamespacedAPIKey,
8407
+ baseFactoryClusterSceopedAPIKey,
8408
+ baseFactoryNamespacedBuiltinKey,
8409
+ baseFactoryClusterSceopedBuiltinKey
8410
+ })}/${apiGroupVersion}/${pluralName}/${name}`;
8411
+ }
8412
+ return `${baseprefix}/${cluster}${namespace ? `/${namespace}` : ""}/factory/${getFactoryKey({
8413
+ apiGroup,
8414
+ apiVersion,
8415
+ resource: pluralName,
8416
+ namespace,
8417
+ baseFactoriesMapping,
8418
+ baseFactoryNamespacedAPIKey,
8419
+ baseFactoryClusterSceopedAPIKey,
8420
+ baseFactoryNamespacedBuiltinKey,
8421
+ baseFactoryClusterSceopedBuiltinKey
8422
+ })}/${apiGroupVersion}/${pluralName}/${name}`;
8423
+ };
8424
+ const getNamespaceLink = ({
8425
+ baseprefix,
8426
+ cluster,
8427
+ apiGroupVersion,
8428
+ pluralName,
8429
+ namespace,
8430
+ baseNamespaceFactoryKey
8431
+ }) => {
8432
+ if (!namespace) {
8433
+ return void 0;
8434
+ }
8435
+ return `${baseprefix}/${cluster}/factory/${baseNamespaceFactoryKey}/${apiGroupVersion}/${pluralName}/${namespace}`;
8436
+ };
8437
+
8438
+ const Abbr$2 = styled.span`
8439
+ background-color: ${({ $bgColor }) => $bgColor};
8440
+ border-radius: 13px;
8441
+ padding: 1px 5px;
8442
+ font-size: 13px;
8443
+ height: min-content;
8444
+ margin-right: 4px;
8445
+ `;
8446
+ const Styled$y = {
8447
+ Abbr: Abbr$2
8448
+ };
8449
+
8450
+ const ResourceLink = ({
8451
+ kind,
8452
+ apiVersion,
8453
+ namespace,
8454
+ name,
8455
+ forcedName,
8456
+ theme,
8457
+ baseprefix,
8458
+ cluster,
8459
+ getPlural,
8460
+ baseFactoryNamespacedAPIKey,
8461
+ baseFactoryClusterSceopedAPIKey,
8462
+ baseFactoryNamespacedBuiltinKey,
8463
+ baseFactoryClusterSceopedBuiltinKey,
8464
+ baseFactoriesMapping
8465
+ }) => {
8466
+ const navigate = useNavigate();
8467
+ const abbr = kind ? getUppercase(kind) : void 0;
8468
+ const bgColor = kind && abbr ? hslFromString(kind, theme) : "initial";
8469
+ const parsedKind = kind;
8470
+ const parsedApiVersion = apiVersion;
8471
+ const pluralName = parsedKind && parsedApiVersion ? getPlural?.(parsedKind, parsedApiVersion) : void 0;
8472
+ const resourceLink = getResourceLink({
8473
+ baseprefix,
8474
+ cluster,
8475
+ namespace,
8476
+ apiGroupVersion: parsedApiVersion,
8477
+ pluralName,
8478
+ name,
8479
+ baseFactoryNamespacedAPIKey,
8480
+ baseFactoryClusterSceopedAPIKey,
8481
+ baseFactoryNamespacedBuiltinKey,
8482
+ baseFactoryClusterSceopedBuiltinKey,
8483
+ baseFactoriesMapping
8484
+ });
8485
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(Flex, { align: "center", gap: 8, children: [
8486
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Styled$y.Abbr, { $bgColor: bgColor, children: abbr }),
8487
+ resourceLink ? /* @__PURE__ */ jsxRuntimeExports.jsx(
8488
+ Typography.Link,
8489
+ {
8490
+ onClick: (e) => {
8491
+ e.preventDefault();
8492
+ navigate(resourceLink);
8493
+ },
8494
+ children: forcedName || name
8495
+ }
8496
+ ) : /* @__PURE__ */ jsxRuntimeExports.jsx(Typography.Text, { children: forcedName || name })
8497
+ ] });
8498
+ };
8499
+
8500
+ const PositionRelativeContainer = styled.div`
8501
+ position: relative;
8502
+ `;
8503
+ const FullWidthContainer = styled.div`
8504
+ width: 100%;
8505
+
8506
+ .ant-dropdown-trigger svg {
8507
+ display: none;
8508
+ }
8509
+ `;
8510
+ const NoWrapContainer = styled.div`
8511
+ position: absolute;
8512
+ visibility: hidden;
8513
+ pointer-events: none;
8514
+
8515
+ /* stylelint-disable declaration-no-important */
8516
+
8517
+ * {
8518
+ white-space: nowrap !important;
8519
+ }
8520
+
8521
+ ol {
8522
+ flex-wrap: nowrap !important;
8523
+ }
8524
+ `;
8525
+ const Styled$x = {
8526
+ PositionRelativeContainer,
8527
+ FullWidthContainer,
8528
+ NoWrapContainer
8529
+ };
8530
+
8531
+ const CollapsibleBreadcrumb = ({ items }) => {
8532
+ const [isCollapsed, setIsCollapsed] = useState(false);
8533
+ const containerRef = useRef(null);
8534
+ const breadcrumbRef = useRef(null);
8535
+ useLayoutEffect(() => {
8536
+ const checkWidth = () => {
8537
+ if (containerRef.current && breadcrumbRef.current) {
8538
+ const containerWidth = containerRef.current.clientWidth;
8539
+ const breadcrumbWidth = breadcrumbRef.current.scrollWidth;
8540
+ setIsCollapsed(breadcrumbWidth > containerWidth);
8541
+ }
8542
+ };
8543
+ checkWidth();
8544
+ window.addEventListener("resize", checkWidth);
8545
+ return () => window.removeEventListener("resize", checkWidth);
8546
+ }, [items]);
8547
+ const renderItems = () => {
8548
+ if (!isCollapsed) {
8549
+ return items;
8550
+ }
8551
+ if (items.length <= 2) {
8552
+ return items;
8553
+ }
8554
+ const firstItem = items[0];
8555
+ const lastItem = items[items.length - 1];
8556
+ const hiddenItems = items.slice(1, -1);
8557
+ const menuItems = hiddenItems.map((item, index) => ({
8558
+ key: String(index),
8559
+ label: item.href ? /* @__PURE__ */ jsxRuntimeExports.jsx("a", { href: item.href, children: item.title }) : item.title
8560
+ }));
8561
+ const ellipsisItem = {
8562
+ title: "...",
8563
+ menu: { items: menuItems },
8564
+ dropdownProps: { arrow: false }
8565
+ };
8566
+ return [firstItem, ellipsisItem, lastItem];
8567
+ };
8568
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(Styled$x.PositionRelativeContainer, { children: [
8569
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Styled$x.FullWidthContainer, { ref: containerRef, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Breadcrumb, { separator: ">", items: renderItems() }) }),
8570
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Styled$x.NoWrapContainer, { ref: breadcrumbRef, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Breadcrumb, { separator: ">", items, style: { display: "flex", flexWrap: "nowrap" } }) })
8571
+ ] });
8572
+ };
8573
+
8574
+ const HeightDiv$1 = styled.div`
8575
+ min-height: 22px;
8576
+ width: 100%;
8577
+ `;
8578
+ const Styled$w = {
8579
+ HeightDiv: HeightDiv$1
8580
+ };
8581
+
8582
+ const ManageableBreadcrumbs = ({ data }) => {
8583
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Styled$w.HeightDiv, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(CollapsibleBreadcrumb, { items: data.breadcrumbItems }) });
8584
+ };
8585
+
8319
8586
  const getDirectUnknownResource = async ({ uri }) => {
8320
8587
  return axios.get(uri);
8321
8588
  };
@@ -9054,80 +9321,6 @@ const prepareDataForManageableBreadcrumbs = ({
9054
9321
  return result;
9055
9322
  };
9056
9323
 
9057
- const PositionRelativeContainer = styled.div`
9058
- position: relative;
9059
- `;
9060
- const FullWidthContainer = styled.div`
9061
- width: 100%;
9062
-
9063
- .ant-dropdown-trigger svg {
9064
- display: none;
9065
- }
9066
- `;
9067
- const NoWrapContainer = styled.div`
9068
- position: absolute;
9069
- visibility: hidden;
9070
- pointer-events: none;
9071
-
9072
- /* stylelint-disable declaration-no-important */
9073
-
9074
- * {
9075
- white-space: nowrap !important;
9076
- }
9077
-
9078
- ol {
9079
- flex-wrap: nowrap !important;
9080
- }
9081
- `;
9082
- const Styled$w = {
9083
- PositionRelativeContainer,
9084
- FullWidthContainer,
9085
- NoWrapContainer
9086
- };
9087
-
9088
- const CollapsibleBreadcrumb = ({ items }) => {
9089
- const [isCollapsed, setIsCollapsed] = useState(false);
9090
- const containerRef = useRef(null);
9091
- const breadcrumbRef = useRef(null);
9092
- useLayoutEffect(() => {
9093
- const checkWidth = () => {
9094
- if (containerRef.current && breadcrumbRef.current) {
9095
- const containerWidth = containerRef.current.clientWidth;
9096
- const breadcrumbWidth = breadcrumbRef.current.scrollWidth;
9097
- setIsCollapsed(breadcrumbWidth > containerWidth);
9098
- }
9099
- };
9100
- checkWidth();
9101
- window.addEventListener("resize", checkWidth);
9102
- return () => window.removeEventListener("resize", checkWidth);
9103
- }, [items]);
9104
- const renderItems = () => {
9105
- if (!isCollapsed) {
9106
- return items;
9107
- }
9108
- if (items.length <= 2) {
9109
- return items;
9110
- }
9111
- const firstItem = items[0];
9112
- const lastItem = items[items.length - 1];
9113
- const hiddenItems = items.slice(1, -1);
9114
- const menuItems = hiddenItems.map((item, index) => ({
9115
- key: String(index),
9116
- label: item.href ? /* @__PURE__ */ jsxRuntimeExports.jsx("a", { href: item.href, children: item.title }) : item.title
9117
- }));
9118
- const ellipsisItem = {
9119
- title: "...",
9120
- menu: { items: menuItems },
9121
- dropdownProps: { arrow: false }
9122
- };
9123
- return [firstItem, ellipsisItem, lastItem];
9124
- };
9125
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(Styled$w.PositionRelativeContainer, { children: [
9126
- /* @__PURE__ */ jsxRuntimeExports.jsx(Styled$w.FullWidthContainer, { ref: containerRef, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Breadcrumb, { separator: ">", items: renderItems() }) }),
9127
- /* @__PURE__ */ jsxRuntimeExports.jsx(Styled$w.NoWrapContainer, { ref: breadcrumbRef, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Breadcrumb, { separator: ">", items, style: { display: "flex", flexWrap: "nowrap" } }) })
9128
- ] });
9129
- };
9130
-
9131
9324
  const HeightDiv = styled.div`
9132
9325
  min-height: 22px;
9133
9326
  width: 100%;
@@ -9136,10 +9329,7 @@ const Styled$v = {
9136
9329
  HeightDiv
9137
9330
  };
9138
9331
 
9139
- const ManageableBreadcrumbs = ({ data }) => {
9140
- return /* @__PURE__ */ jsxRuntimeExports.jsx(Styled$v.HeightDiv, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(CollapsibleBreadcrumb, { items: data.breadcrumbItems }) });
9141
- };
9142
- const ManageableBreadcrumbsWithDataProvider = ({
9332
+ const ManageableBreadcrumbsProvider = ({
9143
9333
  cluster,
9144
9334
  apiGroup,
9145
9335
  apiVersion,
@@ -9184,6 +9374,73 @@ const ManageableBreadcrumbsWithDataProvider = ({
9184
9374
  return /* @__PURE__ */ jsxRuntimeExports.jsx(ManageableBreadcrumbs, { data: result });
9185
9375
  };
9186
9376
 
9377
+ const CustomMenu = styled(Menu)`
9378
+ margin-top: ${({ $noMarginTop }) => $noMarginTop ? "0" : "16px"};
9379
+ font-size: 14px;
9380
+ line-height: 24px;
9381
+ border: 0;
9382
+ /* stylelint-disable declaration-no-important */
9383
+ border-inline-end: 0 !important;
9384
+ /* stylelint-enable declaration-no-important */
9385
+
9386
+ .ant-menu-submenu-expand-icon {
9387
+ width: 16px;
9388
+ }
9389
+
9390
+ && .ant-menu-item-only-child {
9391
+ /* stylelint-disable declaration-no-important */
9392
+
9393
+ /* padding-left: 24px !important; */
9394
+ }
9395
+
9396
+ && .ant-menu-sub .ant-menu-item {
9397
+ margin: 0 !important;
9398
+ }
9399
+ `;
9400
+ const Styled$u = {
9401
+ CustomMenu
9402
+ };
9403
+
9404
+ const ManageableSidebar = ({ data, noMarginTop }) => {
9405
+ const [selectedKeys, setSelectedKeys] = useState([]);
9406
+ const [openKeys, setOpenKeys] = useState(() => {
9407
+ try {
9408
+ const saved = localStorage.getItem("menuOpenKeys");
9409
+ return saved ? JSON.parse(saved) : [];
9410
+ } catch (error) {
9411
+ console.error("Failed to parse stored menu keys", error);
9412
+ return [];
9413
+ }
9414
+ });
9415
+ const handleOpenChange = (keys) => {
9416
+ setOpenKeys(keys);
9417
+ try {
9418
+ localStorage.setItem("menuOpenKeys", JSON.stringify(keys));
9419
+ } catch (error) {
9420
+ console.error("Failed to save menu keys to localStorage", error);
9421
+ }
9422
+ };
9423
+ useEffect(() => {
9424
+ setSelectedKeys(data.selectedKeys);
9425
+ }, [data.selectedKeys]);
9426
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
9427
+ Styled$u.CustomMenu,
9428
+ {
9429
+ selectedKeys,
9430
+ onSelect: () => {
9431
+ },
9432
+ onDeselect: () => {
9433
+ },
9434
+ defaultOpenKeys: data.selectedKeys,
9435
+ openKeys,
9436
+ onOpenChange: handleOpenChange,
9437
+ mode: "inline",
9438
+ items: data.menuItems,
9439
+ $noMarginTop: noMarginTop
9440
+ }
9441
+ );
9442
+ };
9443
+
9187
9444
  const getLabel = ({
9188
9445
  preparedLink,
9189
9446
  label,
@@ -9278,73 +9535,7 @@ const prepareDataForManageableSidebar = ({
9278
9535
  return { ...result, selectedKeys: stringedOpenedKeys };
9279
9536
  };
9280
9537
 
9281
- const CustomMenu = styled(Menu)`
9282
- margin-top: ${({ $noMarginTop }) => $noMarginTop ? "0" : "16px"};
9283
- font-size: 14px;
9284
- line-height: 24px;
9285
- border: 0;
9286
- /* stylelint-disable declaration-no-important */
9287
- border-inline-end: 0 !important;
9288
- /* stylelint-enable declaration-no-important */
9289
-
9290
- .ant-menu-submenu-expand-icon {
9291
- width: 16px;
9292
- }
9293
-
9294
- && .ant-menu-item-only-child {
9295
- /* stylelint-disable declaration-no-important */
9296
-
9297
- /* padding-left: 24px !important; */
9298
- }
9299
-
9300
- && .ant-menu-sub .ant-menu-item {
9301
- margin: 0 !important;
9302
- }
9303
- `;
9304
- const Styled$u = {
9305
- CustomMenu
9306
- };
9307
-
9308
- const ManageableSidebar = ({ data, noMarginTop }) => {
9309
- const [selectedKeys, setSelectedKeys] = useState([]);
9310
- const [openKeys, setOpenKeys] = useState(() => {
9311
- try {
9312
- const saved = localStorage.getItem("menuOpenKeys");
9313
- return saved ? JSON.parse(saved) : [];
9314
- } catch (error) {
9315
- console.error("Failed to parse stored menu keys", error);
9316
- return [];
9317
- }
9318
- });
9319
- const handleOpenChange = (keys) => {
9320
- setOpenKeys(keys);
9321
- try {
9322
- localStorage.setItem("menuOpenKeys", JSON.stringify(keys));
9323
- } catch (error) {
9324
- console.error("Failed to save menu keys to localStorage", error);
9325
- }
9326
- };
9327
- useEffect(() => {
9328
- setSelectedKeys(data.selectedKeys);
9329
- }, [data.selectedKeys]);
9330
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
9331
- Styled$u.CustomMenu,
9332
- {
9333
- selectedKeys,
9334
- onSelect: () => {
9335
- },
9336
- onDeselect: () => {
9337
- },
9338
- defaultOpenKeys: data.selectedKeys,
9339
- openKeys,
9340
- onOpenChange: handleOpenChange,
9341
- mode: "inline",
9342
- items: data.menuItems,
9343
- $noMarginTop: noMarginTop
9344
- }
9345
- );
9346
- };
9347
- const ManageableSidebarWithDataProvider = ({
9538
+ const ManageableSidebarProvider = ({
9348
9539
  cluster,
9349
9540
  apiGroup,
9350
9541
  apiVersion,
@@ -34158,7 +34349,7 @@ const SidebarProvider = ({
34158
34349
  acc[index.toString()] = value;
34159
34350
  return acc;
34160
34351
  }, {});
34161
- return /* @__PURE__ */ jsxRuntimeExports.jsx(ManageableSidebarWithDataProvider, { replaceValues, ...props });
34352
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(ManageableSidebarProvider, { replaceValues, ...props });
34162
34353
  };
34163
34354
 
34164
34355
  const checkPermission = async ({
@@ -35208,11 +35399,7 @@ const toArray = (p) => (
35208
35399
  p === void 0 ? void 0 : Array.isArray(p) ? p : [p]
35209
35400
  );
35210
35401
 
35211
- const HiddenContainer = ({
35212
- name,
35213
- secondName,
35214
- children
35215
- }) => {
35402
+ const HiddenContainer = ({ name, secondName, children }) => {
35216
35403
  const hiddenPaths = useHiddenPathsLayout();
35217
35404
  const nameArr = toArray(name);
35218
35405
  const secondArr = toArray(secondName);
@@ -37727,30 +37914,6 @@ const SecretBase64Plain = ({ data }) => {
37727
37914
  ] });
37728
37915
  };
37729
37916
 
37730
- const fnv1a32 = (str) => {
37731
- let h = 2166136261;
37732
- for (const ch of str) {
37733
- h ^= ch.codePointAt(0);
37734
- h = (h >>> 0) * 16777619;
37735
- }
37736
- return h >>> 0;
37737
- };
37738
- const pickInRange = (u32, min, max) => min + u32 % (max - min + 1);
37739
- const hslFromString = (value, theme) => {
37740
- const hash = fnv1a32(value);
37741
- const hue = hash % 345;
37742
- const [sMin, sMax] = theme === "light" ? [90, 100] : [78, 80];
37743
- const [lMin, lMax] = theme === "light" ? [78, 80] : [25, 35];
37744
- const s = pickInRange(hash >>> 8, sMin, sMax);
37745
- const l = pickInRange(hash >>> 16, lMin, lMax);
37746
- return `hsl(${hue}, ${s}%, ${l}%)`;
37747
- };
37748
-
37749
- const getUppercase = (s) => {
37750
- const uppercases = [...s].filter((c) => c >= "A" && c <= "Z").join("");
37751
- return uppercases.length > 0 ? uppercases : s[0].toUpperCase();
37752
- };
37753
-
37754
37917
  const RoundSpan = styled.span`
37755
37918
  background-color: ${({ $bgColor }) => $bgColor || "none"};
37756
37919
  border-radius: 13px;
@@ -37840,6 +38003,8 @@ const Events$1 = ({
37840
38003
  baseFactoryNamespacedBuiltinKey,
37841
38004
  baseFactoryClusterSceopedBuiltinKey,
37842
38005
  baseNamespaceFactoryKey,
38006
+ baseNavigationPluralName,
38007
+ baseNavigationSpecificName,
37843
38008
  ...props
37844
38009
  } = data;
37845
38010
  const theme = useTheme();
@@ -37904,6 +38069,336 @@ const Events$1 = ({
37904
38069
  baseFactoryNamespacedBuiltinKey,
37905
38070
  baseFactoryClusterSceopedBuiltinKey,
37906
38071
  baseNamespaceFactoryKey,
38072
+ baseNavigationPluralName,
38073
+ baseNavigationSpecificName,
38074
+ ...props
38075
+ }
38076
+ ),
38077
+ children
38078
+ ] });
38079
+ };
38080
+
38081
+ const getKinds = async ({ clusterName }) => {
38082
+ const result = await axios.get(`/api/clusters/${clusterName}/openapi-bff/search/kinds/getKinds`);
38083
+ return result.data;
38084
+ };
38085
+
38086
+ const parseK8sVersion$1 = (raw) => {
38087
+ const m = /^v(?<major>\d+)(?:(?<stage>alpha|beta)(?<stageNum>\d+)?)?$/i.exec(raw ?? "");
38088
+ if (!m?.groups) return { rank: 0, major: -1, stageNum: -1 };
38089
+ const stage = (m.groups.stage ?? "").toLowerCase();
38090
+ const major = Number(m.groups.major);
38091
+ const stageNum = m.groups.stageNum ? Number(m.groups.stageNum) : 0;
38092
+ const rank = stage === "" ? 3 : stage === "beta" ? 2 : 1;
38093
+ return { rank, major, stageNum };
38094
+ };
38095
+ const versionToken$1 = (e) => e.version || (e.groupVersion?.split("/").pop() ?? "");
38096
+ const compareK8sVersionDesc$1 = (a, b) => {
38097
+ const pa = parseK8sVersion$1(versionToken$1(a));
38098
+ const pb = parseK8sVersion$1(versionToken$1(b));
38099
+ return pb.rank - pa.rank || pb.major - pa.major || pb.stageNum - pa.stageNum;
38100
+ };
38101
+ const orderVersions = (versions) => {
38102
+ const preferredIdx = versions.findIndex((v) => v.preferred === true);
38103
+ if (preferredIdx >= 0) {
38104
+ const preferred = versions[preferredIdx];
38105
+ const rest = versions.filter((_, i) => i !== preferredIdx).slice().sort(compareK8sVersionDesc$1);
38106
+ return [preferred, ...rest];
38107
+ }
38108
+ return versions.slice().sort(compareK8sVersionDesc$1);
38109
+ };
38110
+ const getSortedKindsAll = (index) => {
38111
+ const counts = index.items.reduce(
38112
+ (acc, item) => ({ ...acc, [item.kind]: (acc[item.kind] ?? 0) + 1 }),
38113
+ {}
38114
+ );
38115
+ const rows = index.items.flatMap((item) => {
38116
+ const ordered = orderVersions(item.versions);
38117
+ return ordered.map((v) => ({
38118
+ group: item.group,
38119
+ kind: item.kind,
38120
+ // clone to drop Readonly<> without changing fields (incl. preferred)
38121
+ version: { ...v },
38122
+ ...counts[item.kind] > 1 ? { notUnique: true } : {}
38123
+ }));
38124
+ });
38125
+ return rows.sort(
38126
+ (a, b) => a.kind.localeCompare(b.kind, void 0, { sensitivity: "base" }) || a.group.localeCompare(b.group, void 0, { sensitivity: "base" })
38127
+ );
38128
+ };
38129
+
38130
+ const parseApiVersion = (apiVersion) => {
38131
+ const parts = apiVersion.trim().split("/");
38132
+ return parts.length === 1 ? { group: "", version: parts[0] } : { group: parts[0], version: parts[1] };
38133
+ };
38134
+ const pluralByKind = (entries) => (kind, apiVersion) => {
38135
+ const norm = (s) => s.trim();
38136
+ const kindNorm = norm(kind);
38137
+ const gv = apiVersion ? parseApiVersion(apiVersion) : void 0;
38138
+ const candidates = entries.filter((e) => norm(e.kind) === kindNorm);
38139
+ if (candidates.length === 0) return void 0;
38140
+ const filtered = gv ? candidates.filter((e) => norm(e.group) === norm(gv.group) && e.version.version === gv.version) : candidates;
38141
+ if (filtered.length === 0) return void 0;
38142
+ const preferredFirst = gv ? filtered : [...filtered.filter((e) => e.version.preferred), ...filtered.filter((e) => !e.version.preferred)];
38143
+ const resources = preferredFirst.map((e) => e.version.resource).filter(Boolean);
38144
+ const uniq = Array.from(new Set(resources));
38145
+ if (!gv && uniq.length > 1) {
38146
+ const first = preferredFirst[0]?.version.resource;
38147
+ return first ?? void 0;
38148
+ }
38149
+ return uniq.length === 1 ? uniq[0] : void 0;
38150
+ };
38151
+
38152
+ const findOwnerReferencePath = (rawObject, jsonPathToArrayOfRefs, reference) => {
38153
+ if (!rawObject || !jsonPathToArrayOfRefs) return void 0;
38154
+ let arrayJsonPath = jsonPathToArrayOfRefs.trim();
38155
+ if (arrayJsonPath.startsWith(".")) {
38156
+ arrayJsonPath = `$${arrayJsonPath}`;
38157
+ }
38158
+ if (!arrayJsonPath.startsWith("$")) {
38159
+ arrayJsonPath = `$${arrayJsonPath}`;
38160
+ }
38161
+ arrayJsonPath = arrayJsonPath.replace(/\[\*\]$/, "");
38162
+ const nodes = jp.nodes(rawObject, arrayJsonPath);
38163
+ if (!nodes.length) return void 0;
38164
+ const arrayNode = nodes[0];
38165
+ const arr = arrayNode.value;
38166
+ if (!Array.isArray(arr)) return void 0;
38167
+ const index = arr.findIndex((item) => {
38168
+ if (!item) return false;
38169
+ return item.name === reference.name && item.kind === reference.kind && item.apiVersion === reference.apiVersion;
38170
+ });
38171
+ if (index === -1) return void 0;
38172
+ const basePathSegs = arrayNode.path.slice(1);
38173
+ return [...basePathSegs, index];
38174
+ };
38175
+ const parseDotPath$1 = (dotPath) => dotPath.split(".").filter(Boolean).map((seg) => seg.match(/^\d+$/) ? Number(seg) : seg);
38176
+ const resolveFormPath$1 = (pathInput, basePathForRelative) => {
38177
+ if (!pathInput) return [];
38178
+ if (Array.isArray(pathInput)) return pathInput;
38179
+ const pathStr = String(pathInput);
38180
+ const isRelative = pathStr.startsWith("./") || pathStr.startsWith("../");
38181
+ if (!isRelative) {
38182
+ return parseDotPath$1(pathStr);
38183
+ }
38184
+ let resolved = [...basePathForRelative];
38185
+ const parts = pathStr.split("/").filter(Boolean);
38186
+ for (const part of parts) {
38187
+ if (part === ".") {
38188
+ continue;
38189
+ }
38190
+ if (part === "..") {
38191
+ resolved = resolved.slice(0, -1);
38192
+ continue;
38193
+ }
38194
+ resolved.push(...parseDotPath$1(part));
38195
+ }
38196
+ return resolved;
38197
+ };
38198
+
38199
+ const RefElement = ({
38200
+ reference,
38201
+ keysToForcedLabel,
38202
+ forcedRelatedValuePath,
38203
+ rawObjectToFindLabel,
38204
+ jsonPathToArrayOfRefs,
38205
+ theme,
38206
+ baseprefix,
38207
+ cluster,
38208
+ getPlural,
38209
+ baseFactoryNamespacedAPIKey,
38210
+ baseFactoryClusterSceopedAPIKey,
38211
+ baseFactoryNamespacedBuiltinKey,
38212
+ baseFactoryClusterSceopedBuiltinKey,
38213
+ baseFactoriesMapping
38214
+ }) => {
38215
+ let forcedName;
38216
+ if (keysToForcedLabel && rawObjectToFindLabel) {
38217
+ forcedName = Array.isArray(keysToForcedLabel) ? _$1.get(rawObjectToFindLabel, keysToForcedLabel) : jp.query(rawObjectToFindLabel, `$${keysToForcedLabel}`)[0];
38218
+ }
38219
+ if (forcedRelatedValuePath && rawObjectToFindLabel) {
38220
+ try {
38221
+ const ownerRefPathSegs = findOwnerReferencePath(
38222
+ rawObjectToFindLabel,
38223
+ jsonPathToArrayOfRefs,
38224
+ // ".spec.customRef"
38225
+ reference
38226
+ );
38227
+ const relatedPath = forcedRelatedValuePath && ownerRefPathSegs ? resolveFormPath$1(forcedRelatedValuePath, ownerRefPathSegs) : void 0;
38228
+ if (relatedPath) {
38229
+ forcedName = _$1.get(rawObjectToFindLabel, relatedPath);
38230
+ }
38231
+ } catch {
38232
+ }
38233
+ }
38234
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
38235
+ ResourceLink,
38236
+ {
38237
+ kind: reference.kind,
38238
+ apiVersion: reference.apiVersion,
38239
+ namespace: reference.namespace,
38240
+ forcedName,
38241
+ name: reference.name,
38242
+ theme,
38243
+ baseprefix,
38244
+ cluster,
38245
+ getPlural,
38246
+ baseFactoryNamespacedAPIKey,
38247
+ baseFactoryClusterSceopedAPIKey,
38248
+ baseFactoryNamespacedBuiltinKey,
38249
+ baseFactoryClusterSceopedBuiltinKey,
38250
+ baseFactoriesMapping
38251
+ }
38252
+ );
38253
+ };
38254
+
38255
+ const RefsList = ({
38256
+ theme,
38257
+ baseprefix,
38258
+ cluster,
38259
+ refsArr,
38260
+ keysToForcedLabel,
38261
+ forcedRelatedValuePath,
38262
+ rawObjectToFindLabel,
38263
+ jsonPathToArrayOfRefs,
38264
+ baseFactoryNamespacedAPIKey,
38265
+ baseFactoryClusterSceopedAPIKey,
38266
+ baseFactoryNamespacedBuiltinKey,
38267
+ baseFactoryClusterSceopedBuiltinKey,
38268
+ baseNavigationPluralName,
38269
+ baseNavigationSpecificName,
38270
+ listFlexProps
38271
+ }) => {
38272
+ const [kindIndex, setKindIndex] = useState();
38273
+ const [kindsWithVersion, setKindWithVersion] = useState();
38274
+ useEffect(() => {
38275
+ getKinds({ clusterName: cluster }).then((data) => {
38276
+ setKindIndex(data);
38277
+ setKindWithVersion(getSortedKindsAll(data));
38278
+ }).catch((error) => {
38279
+ console.error(error);
38280
+ });
38281
+ }, [cluster]);
38282
+ const { data: navigationDataArr } = useK8sSmartResource({
38283
+ cluster,
38284
+ group: "front.in-cloud.io",
38285
+ version: "v1alpha1",
38286
+ plural: baseNavigationPluralName,
38287
+ fieldSelector: `metadata.name=${baseNavigationSpecificName}`
38288
+ });
38289
+ const getPlural = kindsWithVersion ? pluralByKind(kindsWithVersion) : void 0;
38290
+ const baseFactoriesMapping = navigationDataArr && navigationDataArr.items && navigationDataArr.items.length > 0 ? navigationDataArr.items[0].spec?.baseFactoriesMapping : void 0;
38291
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Flex, { vertical: true, gap: 8, ...listFlexProps, children: refsArr.map((ref) => /* @__PURE__ */ jsxRuntimeExports.jsx(
38292
+ RefElement,
38293
+ {
38294
+ reference: ref,
38295
+ keysToForcedLabel,
38296
+ forcedRelatedValuePath,
38297
+ rawObjectToFindLabel,
38298
+ jsonPathToArrayOfRefs,
38299
+ theme,
38300
+ baseprefix,
38301
+ cluster,
38302
+ getPlural,
38303
+ baseFactoryNamespacedAPIKey,
38304
+ baseFactoryClusterSceopedAPIKey,
38305
+ baseFactoryNamespacedBuiltinKey,
38306
+ baseFactoryClusterSceopedBuiltinKey,
38307
+ baseFactoriesMapping
38308
+ },
38309
+ JSON.stringify(ref)
38310
+ )) });
38311
+ };
38312
+
38313
+ const isOwnerReference = (value) => {
38314
+ if (!value || typeof value !== "object") {
38315
+ return false;
38316
+ }
38317
+ if (value === null) {
38318
+ return false;
38319
+ }
38320
+ if (!("apiVersion" in value) || typeof value.apiVersion !== "string" || !("kind" in value) || typeof value.kind !== "string" || !("name" in value) || typeof value.name !== "string") {
38321
+ return false;
38322
+ }
38323
+ return true;
38324
+ };
38325
+
38326
+ const OwnerRefs = ({
38327
+ data,
38328
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
38329
+ children
38330
+ }) => {
38331
+ const { data: multiQueryData, isLoading: isMultiqueryLoading } = useMultiQuery();
38332
+ const {
38333
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
38334
+ id,
38335
+ baseprefix,
38336
+ clusterNamePartOfUrl,
38337
+ reqIndex,
38338
+ errorText,
38339
+ notArrayErrorText,
38340
+ emptyArrayErrorText,
38341
+ isNotRefsArrayErrorText,
38342
+ containerStyle,
38343
+ listFlexProps,
38344
+ keysToForcedLabel,
38345
+ forcedRelatedValuePath,
38346
+ jsonPathToArrayOfRefs,
38347
+ baseFactoryNamespacedAPIKey,
38348
+ baseFactoryClusterSceopedAPIKey,
38349
+ baseFactoryNamespacedBuiltinKey,
38350
+ baseFactoryClusterSceopedBuiltinKey,
38351
+ baseNavigationPluralName,
38352
+ baseNavigationSpecificName,
38353
+ ...props
38354
+ } = data;
38355
+ const theme = useTheme();
38356
+ const partsOfUrl = usePartsOfUrl();
38357
+ const replaceValues = partsOfUrl.partsOfUrl.reduce((acc, value, index) => {
38358
+ acc[index.toString()] = value;
38359
+ return acc;
38360
+ }, {});
38361
+ const clusterName = prepareTemplate({
38362
+ template: clusterNamePartOfUrl,
38363
+ replaceValues
38364
+ });
38365
+ const jsonRoot = multiQueryData[`req${reqIndex}`];
38366
+ if (jsonRoot === void 0) {
38367
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: containerStyle, children: errorText });
38368
+ }
38369
+ const refsArr = jp.query(jsonRoot, `$${jsonPathToArrayOfRefs}`)[0];
38370
+ if (!Array.isArray(refsArr)) {
38371
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: containerStyle, children: notArrayErrorText });
38372
+ }
38373
+ if (refsArr.length === 0) {
38374
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: containerStyle, children: emptyArrayErrorText });
38375
+ }
38376
+ if (refsArr.some((el) => !isOwnerReference(el))) {
38377
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: containerStyle, children: isNotRefsArrayErrorText });
38378
+ }
38379
+ const guardedRefsArr = refsArr;
38380
+ if (isMultiqueryLoading) {
38381
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: "Loading multiquery" });
38382
+ }
38383
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: containerStyle, children: [
38384
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
38385
+ RefsList,
38386
+ {
38387
+ theme,
38388
+ baseprefix,
38389
+ cluster: clusterName,
38390
+ refsArr: guardedRefsArr,
38391
+ keysToForcedLabel,
38392
+ forcedRelatedValuePath,
38393
+ jsonPathToArrayOfRefs,
38394
+ rawObjectToFindLabel: jsonRoot,
38395
+ baseFactoryNamespacedAPIKey,
38396
+ baseFactoryClusterSceopedAPIKey,
38397
+ baseFactoryNamespacedBuiltinKey,
38398
+ baseFactoryClusterSceopedBuiltinKey,
38399
+ baseNavigationPluralName,
38400
+ baseNavigationSpecificName,
38401
+ listFlexProps,
37907
38402
  ...props
37908
38403
  }
37909
38404
  ),
@@ -37947,7 +38442,8 @@ const DynamicComponents = {
37947
38442
  ConverterBytes,
37948
38443
  SecretBase64Plain,
37949
38444
  ResourceBadge,
37950
- Events: Events$1
38445
+ Events: Events$1,
38446
+ OwnerRefs
37951
38447
  };
37952
38448
 
37953
38449
  const prepareUrlsToFetchForDynamicRenderer = ({
@@ -50115,7 +50611,7 @@ const BlackholeForm = ({
50115
50611
  ] });
50116
50612
  };
50117
50613
 
50118
- const BlackholeFormDataProvider = ({
50614
+ const BlackholeFormProvider = ({
50119
50615
  theme,
50120
50616
  cluster,
50121
50617
  urlParams,
@@ -52379,77 +52875,6 @@ const Search = ({ theme: theme$1, form, constants, kindsWithVersion }) => {
52379
52875
  );
52380
52876
  };
52381
52877
 
52382
- const getKinds = async ({ clusterName }) => {
52383
- const result = await axios.get(`/api/clusters/${clusterName}/openapi-bff/search/kinds/getKinds`);
52384
- return result.data;
52385
- };
52386
-
52387
- const parseK8sVersion$1 = (raw) => {
52388
- const m = /^v(?<major>\d+)(?:(?<stage>alpha|beta)(?<stageNum>\d+)?)?$/i.exec(raw ?? "");
52389
- if (!m?.groups) return { rank: 0, major: -1, stageNum: -1 };
52390
- const stage = (m.groups.stage ?? "").toLowerCase();
52391
- const major = Number(m.groups.major);
52392
- const stageNum = m.groups.stageNum ? Number(m.groups.stageNum) : 0;
52393
- const rank = stage === "" ? 3 : stage === "beta" ? 2 : 1;
52394
- return { rank, major, stageNum };
52395
- };
52396
- const versionToken$1 = (e) => e.version || (e.groupVersion?.split("/").pop() ?? "");
52397
- const compareK8sVersionDesc$1 = (a, b) => {
52398
- const pa = parseK8sVersion$1(versionToken$1(a));
52399
- const pb = parseK8sVersion$1(versionToken$1(b));
52400
- return pb.rank - pa.rank || pb.major - pa.major || pb.stageNum - pa.stageNum;
52401
- };
52402
- const orderVersions = (versions) => {
52403
- const preferredIdx = versions.findIndex((v) => v.preferred === true);
52404
- if (preferredIdx >= 0) {
52405
- const preferred = versions[preferredIdx];
52406
- const rest = versions.filter((_, i) => i !== preferredIdx).slice().sort(compareK8sVersionDesc$1);
52407
- return [preferred, ...rest];
52408
- }
52409
- return versions.slice().sort(compareK8sVersionDesc$1);
52410
- };
52411
- const getSortedKindsAll = (index) => {
52412
- const counts = index.items.reduce(
52413
- (acc, item) => ({ ...acc, [item.kind]: (acc[item.kind] ?? 0) + 1 }),
52414
- {}
52415
- );
52416
- const rows = index.items.flatMap((item) => {
52417
- const ordered = orderVersions(item.versions);
52418
- return ordered.map((v) => ({
52419
- group: item.group,
52420
- kind: item.kind,
52421
- // clone to drop Readonly<> without changing fields (incl. preferred)
52422
- version: { ...v },
52423
- ...counts[item.kind] > 1 ? { notUnique: true } : {}
52424
- }));
52425
- });
52426
- return rows.sort(
52427
- (a, b) => a.kind.localeCompare(b.kind, void 0, { sensitivity: "base" }) || a.group.localeCompare(b.group, void 0, { sensitivity: "base" })
52428
- );
52429
- };
52430
-
52431
- const parseApiVersion = (apiVersion) => {
52432
- const parts = apiVersion.trim().split("/");
52433
- return parts.length === 1 ? { group: "", version: parts[0] } : { group: parts[0], version: parts[1] };
52434
- };
52435
- const pluralByKind = (entries) => (kind, apiVersion) => {
52436
- const norm = (s) => s.trim();
52437
- const kindNorm = norm(kind);
52438
- const gv = apiVersion ? parseApiVersion(apiVersion) : void 0;
52439
- const candidates = entries.filter((e) => norm(e.kind) === kindNorm);
52440
- if (candidates.length === 0) return void 0;
52441
- const filtered = gv ? candidates.filter((e) => norm(e.group) === norm(gv.group) && e.version.version === gv.version) : candidates;
52442
- if (filtered.length === 0) return void 0;
52443
- const preferredFirst = gv ? filtered : [...filtered.filter((e) => e.version.preferred), ...filtered.filter((e) => !e.version.preferred)];
52444
- const resources = preferredFirst.map((e) => e.version.resource).filter(Boolean);
52445
- const uniq = Array.from(new Set(resources));
52446
- if (!gv && uniq.length > 1) {
52447
- const first = preferredFirst[0]?.version.resource;
52448
- return first ?? void 0;
52449
- }
52450
- return uniq.length === 1 ? uniq[0] : void 0;
52451
- };
52452
-
52453
52878
  const eventKey = (e) => {
52454
52879
  const n = e.metadata?.name ?? "";
52455
52880
  const ns = e.metadata?.namespace ?? "";
@@ -52519,39 +52944,6 @@ const timeAgo = (iso) => {
52519
52944
  }
52520
52945
  return new Date(iso).toLocaleString();
52521
52946
  };
52522
- const getResourceLink = ({
52523
- baseprefix,
52524
- cluster,
52525
- namespace,
52526
- apiGroupVersion,
52527
- pluralName,
52528
- name,
52529
- baseFactoryNamespacedAPIKey,
52530
- baseFactoryClusterSceopedAPIKey,
52531
- baseFactoryNamespacedBuiltinKey,
52532
- baseFactoryClusterSceopedBuiltinKey
52533
- }) => {
52534
- if (!pluralName || !name) {
52535
- return void 0;
52536
- }
52537
- if (apiGroupVersion === "v1") {
52538
- return `${baseprefix}/${cluster}${namespace ? `/${namespace}` : ""}/factory/${namespace ? baseFactoryNamespacedBuiltinKey : baseFactoryClusterSceopedBuiltinKey}/${apiGroupVersion}/${pluralName}/${name}`;
52539
- }
52540
- return `${baseprefix}/${cluster}${namespace ? `/${namespace}` : ""}/factory/${namespace ? baseFactoryNamespacedAPIKey : baseFactoryClusterSceopedAPIKey}/${apiGroupVersion}/${pluralName}/${name}`;
52541
- };
52542
- const getNamespaceLink = ({
52543
- baseprefix,
52544
- cluster,
52545
- apiGroupVersion,
52546
- pluralName,
52547
- namespace,
52548
- baseNamespaceFactoryKey
52549
- }) => {
52550
- if (!namespace) {
52551
- return void 0;
52552
- }
52553
- return `${baseprefix}/${cluster}/factory/${baseNamespaceFactoryKey}/${apiGroupVersion}/${pluralName}/${namespace}`;
52554
- };
52555
52947
  const formatEventSummary = (event) => {
52556
52948
  if (!event.deprecatedCount || !event.deprecatedFirstTimestamp) {
52557
52949
  return void 0;
@@ -52630,28 +53022,12 @@ const EventRow = ({
52630
53022
  baseFactoryClusterSceopedAPIKey,
52631
53023
  baseFactoryNamespacedBuiltinKey,
52632
53024
  baseFactoryClusterSceopedBuiltinKey,
52633
- baseNamespaceFactoryKey
53025
+ baseNamespaceFactoryKey,
53026
+ baseFactoriesMapping
52634
53027
  }) => {
52635
53028
  const { token } = theme.useToken();
52636
53029
  const navigate = useNavigate();
52637
- const abbr = e.regarding?.kind ? getUppercase(e.regarding.kind) : void 0;
52638
- const bgColor = e.regarding?.kind && abbr ? hslFromString(e.regarding?.kind, theme$1) : "initial";
52639
53030
  const bgColorNamespace = hslFromString("Namespace", theme$1);
52640
- const regardingKind = e.regarding?.kind;
52641
- const regardingApiVersion = e.regarding?.apiVersion || "v1";
52642
- const pluralName = regardingKind && regardingApiVersion ? getPlural?.(regardingKind, regardingApiVersion) : void 0;
52643
- const resourceLink = getResourceLink({
52644
- baseprefix,
52645
- cluster,
52646
- namespace: e.regarding?.namespace,
52647
- apiGroupVersion: regardingApiVersion,
52648
- pluralName,
52649
- name: e.regarding?.name,
52650
- baseFactoryNamespacedAPIKey,
52651
- baseFactoryClusterSceopedAPIKey,
52652
- baseFactoryNamespacedBuiltinKey,
52653
- baseFactoryClusterSceopedBuiltinKey
52654
- });
52655
53031
  const namespaceLink = getNamespaceLink({
52656
53032
  baseprefix,
52657
53033
  cluster,
@@ -52668,19 +53044,24 @@ const EventRow = ({
52668
53044
  children: [
52669
53045
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Flex, { justify: "space-between", align: "center", children: [
52670
53046
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Flex, { align: "center", gap: 16, children: [
52671
- /* @__PURE__ */ jsxRuntimeExports.jsxs(Flex, { align: "center", gap: 8, children: [
52672
- /* @__PURE__ */ jsxRuntimeExports.jsx(Styled$1.Abbr, { $bgColor: bgColor, children: abbr }),
52673
- resourceLink ? /* @__PURE__ */ jsxRuntimeExports.jsx(
52674
- Typography.Link,
52675
- {
52676
- onClick: (e2) => {
52677
- e2.preventDefault();
52678
- navigate(resourceLink);
52679
- },
52680
- children: e.regarding?.name
52681
- }
52682
- ) : /* @__PURE__ */ jsxRuntimeExports.jsx(Typography.Text, { children: e.regarding?.name })
52683
- ] }),
53047
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
53048
+ ResourceLink,
53049
+ {
53050
+ kind: e.regarding?.kind,
53051
+ apiVersion: e.regarding?.apiVersion || "v1",
53052
+ namespace: e.regarding?.namespace,
53053
+ name: e.regarding?.name,
53054
+ theme: theme$1,
53055
+ baseprefix,
53056
+ cluster,
53057
+ getPlural,
53058
+ baseFactoryNamespacedAPIKey,
53059
+ baseFactoryClusterSceopedAPIKey,
53060
+ baseFactoryNamespacedBuiltinKey,
53061
+ baseFactoryClusterSceopedBuiltinKey,
53062
+ baseFactoriesMapping
53063
+ }
53064
+ ),
52684
53065
  e.regarding?.namespace && /* @__PURE__ */ jsxRuntimeExports.jsxs(Flex, { align: "center", gap: 8, children: [
52685
53066
  /* @__PURE__ */ jsxRuntimeExports.jsx(Styled$1.Abbr, { $bgColor: bgColorNamespace, children: "NS" }),
52686
53067
  namespaceLink ? /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -52810,7 +53191,9 @@ const Events = ({
52810
53191
  baseFactoryClusterSceopedAPIKey,
52811
53192
  baseFactoryNamespacedBuiltinKey,
52812
53193
  baseFactoryClusterSceopedBuiltinKey,
52813
- baseNamespaceFactoryKey
53194
+ baseNamespaceFactoryKey,
53195
+ baseNavigationPluralName,
53196
+ baseNavigationSpecificName
52814
53197
  }) => {
52815
53198
  const { token } = theme.useToken();
52816
53199
  const [kindIndex, setKindIndex] = useState();
@@ -52823,6 +53206,13 @@ const Events = ({
52823
53206
  console.error(error);
52824
53207
  });
52825
53208
  }, [cluster]);
53209
+ const { data: navigationDataArr } = useK8sSmartResource({
53210
+ cluster,
53211
+ group: "front.in-cloud.io",
53212
+ version: "v1alpha1",
53213
+ plural: baseNavigationPluralName,
53214
+ fieldSelector: `metadata.name=${baseNavigationSpecificName}`
53215
+ });
52826
53216
  const [isPaused, setIsPaused] = useState(false);
52827
53217
  const pausedRef = useRef(isPaused);
52828
53218
  useEffect(() => {
@@ -53035,6 +53425,7 @@ const Events = ({
53035
53425
  }, [hasMore, sendScroll]);
53036
53426
  const total = state.order.length;
53037
53427
  const getPlural = kindsWithVersion ? pluralByKind(kindsWithVersion) : void 0;
53428
+ const baseFactoriesMapping = navigationDataArr && navigationDataArr.items && navigationDataArr.items.length > 0 ? navigationDataArr.items[0].spec?.baseFactoriesMapping : void 0;
53038
53429
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(Styled.Root, { $substractHeight: substractHeight || 340, children: [
53039
53430
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Styled.Header, { children: [
53040
53431
  /* @__PURE__ */ jsxRuntimeExports.jsx(Styled.HeaderLeftSide, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Flex, { justify: "start", align: "center", gap: 10, children: [
@@ -53095,7 +53486,8 @@ const Events = ({
53095
53486
  baseFactoryClusterSceopedAPIKey,
53096
53487
  baseFactoryNamespacedBuiltinKey,
53097
53488
  baseFactoryClusterSceopedBuiltinKey,
53098
- baseNamespaceFactoryKey
53489
+ baseNamespaceFactoryKey,
53490
+ baseFactoriesMapping
53099
53491
  },
53100
53492
  k
53101
53493
  )) : /* @__PURE__ */ jsxRuntimeExports.jsx(Empty, { description: "No events" }),
@@ -53294,6 +53686,34 @@ const isMultilineFromYaml = (yamlContent, fieldPath) => {
53294
53686
  }
53295
53687
  };
53296
53688
 
53689
+ const arraysEqual = (arr1, arr2) => {
53690
+ if (arr1.length !== arr2.length) {
53691
+ return false;
53692
+ }
53693
+ for (let i = 0; i < arr1.length; i++) {
53694
+ if (typeof arr2[i] === "number") {
53695
+ if (arr1[i] !== String(arr2[i])) {
53696
+ return false;
53697
+ }
53698
+ }
53699
+ if (arr1[i] !== arr2[i]) {
53700
+ return false;
53701
+ }
53702
+ }
53703
+ return true;
53704
+ };
53705
+ const includesArray = (matrix, target) => {
53706
+ if (!matrix) {
53707
+ return false;
53708
+ }
53709
+ for (const row of matrix) {
53710
+ if (arraysEqual(row, target)) {
53711
+ return true;
53712
+ }
53713
+ }
53714
+ return false;
53715
+ };
53716
+
53297
53717
  const getClusterList = async () => {
53298
53718
  return axios.get("/clusterlist");
53299
53719
  };
@@ -53728,5 +54148,5 @@ const useInfiniteSentinel = (sentinelRef, hasMore, onNeedMore) => {
53728
54148
  }, [sentinelRef, hasMore, onNeedMore]);
53729
54149
  };
53730
54150
 
53731
- export { BackToDefaultIcon, BlackholeForm, BlackholeFormDataProvider, ContentCard$1 as ContentCard, CursorDefaultDiv, CursorPointerTag, CursorPointerTagMinContent, CustomSelect$4 as CustomSelect, DeleteIcon, DeleteModal, DeleteModalMany, DownIcon, DynamicComponents, DynamicRenderer, DynamicRendererWithProviders, EarthIcon, EditIcon, EnrichedTable, EnrichedTableProvider, Events, FlexGrow, LockedIcon, LookingGlassIcon, ManageableBreadcrumbs, ManageableBreadcrumbsWithDataProvider, ManageableSidebar, ManageableSidebarWithDataProvider, MarketPlace, MarketplaceCard, MinusIcon, NodeTerminal, PaddingContainer, PauseCircleIcon, PlusIcon, PodLogs, PodLogsMonaco, PodTerminal, ProjectInfoCard, ResumeCircleIcon, Search, Spacer$1 as Spacer, SuccessIcon, TreeWithSearch, UncontrolledSelect, UnlockedIcon, UpIcon, YamlEditorSingleton, checkIfApiInstanceNamespaceScoped, checkIfBuiltInInstanceNamespaceScoped, checkPermission, createContextFactory, createNewEntry, deepMerge, deleteEntry, feedbackIcons, filterIfApiInstanceNamespaceScoped, filterIfBuiltInInstanceNamespaceScoped, filterSelectOptions, floorToDecimal, getAllPathsFromObj, getApiResourceSingle, getApiResourceTypes, getApiResourceTypesByApiGroup, getApiResources, getBackLinkToTable, getBuiltinResourceSingle, getBuiltinResourceTypes, getBuiltinResources, getBuiltinTreeData, getClusterList, getCrdData, getCrdResourceSingle, getCrdResources, getDirectUnknownResource, getEnrichedColumns, getEnrichedColumnsWithControls, getGroupsByCategory, getKinds, getLinkToApiForm, getLinkToBuiltinForm, getLinkToForm, getObjectFormItemsDraft, getPrefixSubarrays, getSortedKinds, getSortedKindsAll, getStringByName, getSwagger, getUppercase, groupsToTreeData, hslFromString, isFlatObject, isMultilineFromYaml, isMultilineString, kindByGvr, namespacedByGvr, normalizeValuesForQuotasToNumber, parseQuotaValue, parseQuotaValueCpu, parseQuotaValueMemoryAndStorage, pluralByKind, prepareDataForManageableBreadcrumbs, prepareDataForManageableSidebar, prepareTemplate, prepareUrlsToFetchForDynamicRenderer, updateEntry, useApiResourceSingle, useApiResourceTypesByGroup, useApiResources, useApisResourceTypes, useBuiltinResourceSingle, useBuiltinResourceTypes, useBuiltinResources, useClusterList, useCrdData, useCrdResourceSingle, useCrdResources, useDirectUnknownResource, useInfiniteSentinel, useK8sSmartResource, useK8sVerbs, useListWatch, usePermissions };
54151
+ export { BackToDefaultIcon, BlackholeForm, BlackholeFormProvider, ContentCard$1 as ContentCard, CursorDefaultDiv, CursorPointerTag, CursorPointerTagMinContent, CustomSelect$4 as CustomSelect, DeleteIcon, DeleteModal, DeleteModalMany, DownIcon, DynamicComponents, DynamicRenderer, DynamicRendererWithProviders, EarthIcon, EditIcon, EnrichedTable, EnrichedTableProvider, Events, FlexGrow, LockedIcon, LookingGlassIcon, ManageableBreadcrumbs, ManageableBreadcrumbsProvider, ManageableSidebar, ManageableSidebarProvider, MarketPlace, MarketplaceCard, MinusIcon, NodeTerminal, PaddingContainer, PauseCircleIcon, PlusIcon, PodLogs, PodLogsMonaco, PodTerminal, ProjectInfoCard, ResourceLink, ResumeCircleIcon, Search, Spacer$1 as Spacer, SuccessIcon, TreeWithSearch, UncontrolledSelect, UnlockedIcon, UpIcon, YamlEditorSingleton, checkIfApiInstanceNamespaceScoped, checkIfBuiltInInstanceNamespaceScoped, checkPermission, createContextFactory, createNewEntry, deepMerge, deleteEntry, feedbackIcons, filterIfApiInstanceNamespaceScoped, filterIfBuiltInInstanceNamespaceScoped, filterSelectOptions, floorToDecimal, getAllPathsFromObj, getApiResourceSingle, getApiResourceTypes, getApiResourceTypesByApiGroup, getApiResources, getBuiltinResourceSingle, getBuiltinResourceTypes, getBuiltinResources, getBuiltinTreeData, getClusterList, getCrdData, getCrdResourceSingle, getCrdResources, getDirectUnknownResource, getEnrichedColumns, getEnrichedColumnsWithControls, getGroupsByCategory, getKinds, getLinkToApiForm, getLinkToBuiltinForm, getLinkToForm, getNamespaceLink, getObjectFormItemsDraft, getPrefixSubarrays, getResourceLink, getSortedKinds, getSortedKindsAll, getStringByName, getSwagger, getUppercase, groupsToTreeData, hslFromString, includesArray, isFlatObject, isMultilineFromYaml, isMultilineString, kindByGvr, namespacedByGvr, normalizeValuesForQuotasToNumber, parseQuotaValue, parseQuotaValueCpu, parseQuotaValueMemoryAndStorage, pluralByKind, prepareDataForManageableBreadcrumbs, prepareDataForManageableSidebar, prepareTemplate, prepareUrlsToFetchForDynamicRenderer, updateEntry, useApiResourceSingle, useApiResourceTypesByGroup, useApiResources, useApisResourceTypes, useBuiltinResourceSingle, useBuiltinResourceTypes, useBuiltinResources, useClusterList, useCrdData, useCrdResourceSingle, useCrdResources, useDirectUnknownResource, useInfiniteSentinel, useK8sSmartResource, useK8sVerbs, useListWatch, usePermissions };
53732
54152
  //# sourceMappingURL=openapi-k8s-toolkit.es.js.map