@dovetail-v2/refine 0.1.5 → 0.1.7

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 (223) hide show
  1. package/dist/{MonacoYamlDiffEditor-c2239ccf.js → MonacoYamlDiffEditor-1593cfad.js} +1 -1
  2. package/dist/{index-bac1b88c.js → index-45031697.js} +938 -545
  3. package/dist/refine.js +189 -188
  4. package/dist/refine.umd.cjs +747 -354
  5. package/dist/style.css +2795 -124
  6. package/lib/{src/Dovetail.d.ts → Dovetail.d.ts} +2 -0
  7. package/lib/components/DropdownMenuItems/EditAnnotationDropdownMenuItem.d.ts +10 -0
  8. package/lib/components/DropdownMenuItems/EditLabelDropdownMenuItem.d.ts +10 -0
  9. package/lib/components/DropdownMenuItems/index.d.ts +2 -0
  10. package/lib/{src/components → components}/EditField/index.d.ts +2 -1
  11. package/lib/components/EditMetadataForm/EditAnnotationForm.d.ts +10 -0
  12. package/lib/components/EditMetadataForm/EditLabelForm.d.ts +10 -0
  13. package/lib/components/EditMetadataForm/index.d.ts +2 -0
  14. package/lib/{src/components → components}/Form/FormModal.d.ts +3 -0
  15. package/lib/{src/components → components}/Form/RefineFormContent.d.ts +2 -2
  16. package/lib/{src/components → components}/Form/YamlForm.d.ts +4 -1
  17. package/lib/components/Form/useFieldsConfig.d.ts +4 -0
  18. package/lib/{src/components → components}/Form/useYamlForm.d.ts +8 -1
  19. package/lib/{src/components → components}/FormErrorAlert/index.d.ts +1 -0
  20. package/lib/{src/components → components}/Shell/index.d.ts +1 -0
  21. package/lib/{src/components → components}/index.d.ts +1 -0
  22. package/lib/{src/constants → constants}/k8s.d.ts +1 -1
  23. package/lib/contexts/constants.d.ts +6 -0
  24. package/lib/{src/hooks → hooks}/useDeleteModal/useDeleteModal.d.ts +0 -1
  25. package/lib/{src/hooks → hooks}/useSchema.d.ts +1 -1
  26. package/lib/{src/i18n.d.ts → i18n.d.ts} +9 -0
  27. package/lib/{src/locales → locales}/en-US/index.d.ts +1 -0
  28. package/lib/{src/locales → locales}/zh-CN/index.d.ts +8 -0
  29. package/lib/{src/models → models}/resource-model.d.ts +2 -0
  30. package/lib/{src/pages → pages}/storageclasses/index.d.ts +2 -1
  31. package/lib/styles/button.d.ts +1 -0
  32. package/lib/{src/styles → styles}/modal.d.ts +1 -0
  33. package/lib/{src/types → types}/resource.d.ts +2 -1
  34. package/lib/{src/utils → utils}/openapi.d.ts +2 -1
  35. package/package.json +6 -1
  36. package/lib/vite.config.d.ts +0 -2
  37. /package/lib/{src/App.d.ts → App.d.ts} +0 -0
  38. /package/lib/{src/components → components}/Breadcrumb/index.d.ts +0 -0
  39. /package/lib/{src/components → components}/ConditionsTable/ConditionsTable.d.ts +0 -0
  40. /package/lib/{src/components → components}/ConditionsTable/index.d.ts +0 -0
  41. /package/lib/{src/components → components}/CreateButton/index.d.ts +0 -0
  42. /package/lib/{src/components → components}/CronJobDropdown/index.d.ts +0 -0
  43. /package/lib/{src/components → components}/CronjobJobsTable/index.d.ts +0 -0
  44. /package/lib/{src/components → components}/DeleteButton/index.d.ts +0 -0
  45. /package/lib/{src/components → components}/DeleteManyButton/index.d.ts +0 -0
  46. /package/lib/{src/components → components}/DrawerShow/DrawerShow.d.ts +0 -0
  47. /package/lib/{src/components → components}/DrawerShow/index.d.ts +0 -0
  48. /package/lib/{src/components → components}/DurationTime/index.d.ts +0 -0
  49. /package/lib/{src/components → components}/EditButton/index.d.ts +0 -0
  50. /package/lib/{src/components → components}/ErrorContent/index.d.ts +0 -0
  51. /package/lib/{src/components → components}/EventsTable/EventsTable.d.ts +0 -0
  52. /package/lib/{src/components → components}/EventsTable/index.d.ts +0 -0
  53. /package/lib/{src/components → components}/Form/RefineFormPage.d.ts +0 -0
  54. /package/lib/{src/components → components}/Form/index.d.ts +0 -0
  55. /package/lib/{src/components → components}/Form/type.d.ts +0 -0
  56. /package/lib/{src/components → components}/Form/useReactHookForm.d.ts +0 -0
  57. /package/lib/{src/components → components}/Form/useRefineForm.d.ts +0 -0
  58. /package/lib/{src/components → components}/FormLayout/index.d.ts +0 -0
  59. /package/lib/{src/components → components}/FormWidgets/KeyValueListWidget.d.ts +0 -0
  60. /package/lib/{src/components → components}/FormWidgets/MetadataForm.d.ts +0 -0
  61. /package/lib/{src/components → components}/FormWidgets/NameInputWidget.d.ts +0 -0
  62. /package/lib/{src/components → components}/FormWidgets/NamespaceSelectWidget.d.ts +0 -0
  63. /package/lib/{src/components → components}/FormWidgets/index.d.ts +0 -0
  64. /package/lib/{src/components → components}/FormWidgets/widget.d.ts +0 -0
  65. /package/lib/{src/components → components}/ImageNames/index.d.ts +0 -0
  66. /package/lib/{src/components → components}/IngressRulesComponent/index.d.ts +0 -0
  67. /package/lib/{src/components → components}/IngressRulesTable/IngressRulesTable.d.ts +0 -0
  68. /package/lib/{src/components → components}/IngressRulesTable/index.d.ts +0 -0
  69. /package/lib/{src/components → components}/K8sDropdown/index.d.ts +0 -0
  70. /package/lib/{src/components → components}/KeyValue/KeyValue.d.ts +0 -0
  71. /package/lib/{src/components → components}/KeyValue/KeyValueAnnotation.d.ts +0 -0
  72. /package/lib/{src/components → components}/KeyValue/KeyValueSecret.d.ts +0 -0
  73. /package/lib/{src/components → components}/KeyValue/index.d.ts +0 -0
  74. /package/lib/{src/components → components}/Layout/index.d.ts +0 -0
  75. /package/lib/{src/components → components}/LinkFallback/index.d.ts +0 -0
  76. /package/lib/{src/components → components}/ListPage/index.d.ts +0 -0
  77. /package/lib/{src/components → components}/Menu/index.d.ts +0 -0
  78. /package/lib/{src/components → components}/NamespacesFilter/index.d.ts +0 -0
  79. /package/lib/{src/components → components}/NetworkPolicyRulesViewer/NetworkPolicyRulesViewer.d.ts +0 -0
  80. /package/lib/{src/components → components}/NetworkPolicyRulesViewer/index.d.ts +0 -0
  81. /package/lib/{src/components → components}/PageShow/PageShow.d.ts +0 -0
  82. /package/lib/{src/components → components}/PageShow/index.d.ts +0 -0
  83. /package/lib/{src/components → components}/PodContainersTable/PodContainersTable.d.ts +0 -0
  84. /package/lib/{src/components → components}/PodContainersTable/index.d.ts +0 -0
  85. /package/lib/{src/components → components}/PodDropdown/index.d.ts +0 -0
  86. /package/lib/{src/components → components}/PodLog/index.d.ts +0 -0
  87. /package/lib/{src/components → components}/PodSelectorTable/index.d.ts +0 -0
  88. /package/lib/{src/components → components}/PodShellModal/PodShell.d.ts +0 -0
  89. /package/lib/{src/components → components}/PodShellModal/index.d.ts +0 -0
  90. /package/lib/{src/components → components}/PortsTable/index.d.ts +0 -0
  91. /package/lib/{src/components → components}/ReferenceLink/index.d.ts +0 -0
  92. /package/lib/{src/components → components}/ReplicasDropdown/index.d.ts +0 -0
  93. /package/lib/{src/components → components}/ResourceCRUD/ResourceCRUD.d.ts +0 -0
  94. /package/lib/{src/components → components}/ResourceCRUD/create/index.d.ts +0 -0
  95. /package/lib/{src/components → components}/ResourceCRUD/index.d.ts +0 -0
  96. /package/lib/{src/components → components}/ResourceCRUD/list/index.d.ts +0 -0
  97. /package/lib/{src/components → components}/ResourceCRUD/show/index.d.ts +0 -0
  98. /package/lib/{src/components → components}/ResourceFiledDisplays.d.ts +0 -0
  99. /package/lib/{src/components → components}/ResourceLink/index.d.ts +0 -0
  100. /package/lib/{src/components → components}/ResourceSelect/index.d.ts +0 -0
  101. /package/lib/{src/components → components}/ResourceUsageBar/index.d.ts +0 -0
  102. /package/lib/{src/components → components}/Separator/index.d.ts +0 -0
  103. /package/lib/{src/components → components}/ServiceComponents/index.d.ts +0 -0
  104. /package/lib/{src/components → components}/Shell/ShellToolbar.d.ts +0 -0
  105. /package/lib/{src/components → components}/ShowContent/ShowContent.d.ts +0 -0
  106. /package/lib/{src/components → components}/ShowContent/fields.d.ts +0 -0
  107. /package/lib/{src/components → components}/ShowContent/groups.d.ts +0 -0
  108. /package/lib/{src/components → components}/ShowContent/index.d.ts +0 -0
  109. /package/lib/{src/components → components}/ShowContent/tabs.d.ts +0 -0
  110. /package/lib/{src/components → components}/StateTag/StateTag.d.ts +0 -0
  111. /package/lib/{src/components → components}/StateTag/index.d.ts +0 -0
  112. /package/lib/{src/components → components}/Table/TableToolBar.d.ts +0 -0
  113. /package/lib/{src/components → components}/Table/TableWidgets.d.ts +0 -0
  114. /package/lib/{src/components → components}/Table/index.d.ts +0 -0
  115. /package/lib/{src/components → components}/Tabs/index.d.ts +0 -0
  116. /package/lib/{src/components → components}/Tags/index.d.ts +0 -0
  117. /package/lib/{src/components → components}/TextTags/index.d.ts +0 -0
  118. /package/lib/{src/components → components}/Time/index.d.ts +0 -0
  119. /package/lib/{src/components → components}/ValueDisplay/index.d.ts +0 -0
  120. /package/lib/{src/components → components}/WorkloadDropdown/index.d.ts +0 -0
  121. /package/lib/{src/components → components}/WorkloadPodsTable/WorkloadPodsTable.d.ts +0 -0
  122. /package/lib/{src/components → components}/WorkloadPodsTable/index.d.ts +0 -0
  123. /package/lib/{src/components → components}/WorkloadReplicas/index.d.ts +0 -0
  124. /package/lib/{src/components → components}/YamlEditor/MonacoYamlDiffEditor.d.ts +0 -0
  125. /package/lib/{src/components → components}/YamlEditor/MonacoYamlEditor.d.ts +0 -0
  126. /package/lib/{src/components → components}/YamlEditor/YamlEditorComponent.d.ts +0 -0
  127. /package/lib/{src/components → components}/YamlEditor/index.d.ts +0 -0
  128. /package/lib/{src/components → components}/YamlEditor/style.d.ts +0 -0
  129. /package/lib/{src/components → components}/YamlEditor/yaml.worker.d.ts +0 -0
  130. /package/lib/{src/constants → constants}/auth.d.ts +0 -0
  131. /package/lib/{src/constants → constants}/index.d.ts +0 -0
  132. /package/lib/{src/constants → constants}/state.d.ts +0 -0
  133. /package/lib/{src/contexts → contexts}/component.d.ts +0 -0
  134. /package/lib/{src/contexts → contexts}/configs.d.ts +0 -0
  135. /package/lib/{src/contexts → contexts}/global-store.d.ts +0 -0
  136. /package/lib/{src/contexts → contexts}/index.d.ts +0 -0
  137. /package/lib/{src/hooks → hooks}/index.d.ts +0 -0
  138. /package/lib/{src/hooks → hooks}/useDeleteModal/index.d.ts +0 -0
  139. /package/lib/{src/hooks → hooks}/useDeleteModal/useDeleteManyModal.d.ts +0 -0
  140. /package/lib/{src/hooks → hooks}/useDownloadYAML.d.ts +0 -0
  141. /package/lib/{src/hooks → hooks}/useEagleTable/columns.d.ts +0 -0
  142. /package/lib/{src/hooks → hooks}/useEagleTable/index.d.ts +0 -0
  143. /package/lib/{src/hooks → hooks}/useEagleTable/useEagleTable.d.ts +0 -0
  144. /package/lib/{src/hooks → hooks}/useEdit.d.ts +0 -0
  145. /package/lib/{src/hooks → hooks}/useGlobalStore.d.ts +0 -0
  146. /package/lib/{src/hooks → hooks}/useK8sYamlEditor.d.ts +0 -0
  147. /package/lib/{src/hooks → hooks}/useNamespaceRefineFilter.d.ts +0 -0
  148. /package/lib/{src/hooks → hooks}/useOpenForm.d.ts +0 -0
  149. /package/lib/{src/hooks → hooks}/useSubmitForm.d.ts +0 -0
  150. /package/lib/{src/hooks → hooks}/useTableData.d.ts +0 -0
  151. /package/lib/{src/index.d.ts → index.d.ts} +0 -0
  152. /package/lib/{src/locales → locales}/index.d.ts +0 -0
  153. /package/lib/{src/main.d.ts → main.d.ts} +0 -0
  154. /package/lib/{src/models → models}/cronjob-model.d.ts +0 -0
  155. /package/lib/{src/models → models}/daemonset-model.d.ts +0 -0
  156. /package/lib/{src/models → models}/deployment-model.d.ts +0 -0
  157. /package/lib/{src/models → models}/event-model.d.ts +0 -0
  158. /package/lib/{src/models → models}/index.d.ts +0 -0
  159. /package/lib/{src/models → models}/ingress-model.d.ts +0 -0
  160. /package/lib/{src/models → models}/job-model.d.ts +0 -0
  161. /package/lib/{src/models → models}/network-policy-model.d.ts +0 -0
  162. /package/lib/{src/models → models}/node-model.d.ts +0 -0
  163. /package/lib/{src/models → models}/persistent-volume-claim.d.ts +0 -0
  164. /package/lib/{src/models → models}/persistent-volume.d.ts +0 -0
  165. /package/lib/{src/models → models}/pod-metrics-model.d.ts +0 -0
  166. /package/lib/{src/models → models}/pod-model.d.ts +0 -0
  167. /package/lib/{src/models → models}/service-model.d.ts +0 -0
  168. /package/lib/{src/models → models}/statefulset-model.d.ts +0 -0
  169. /package/lib/{src/models → models}/storage-class.d.ts +0 -0
  170. /package/lib/{src/models → models}/types/index.d.ts +0 -0
  171. /package/lib/{src/models → models}/types/metric.d.ts +0 -0
  172. /package/lib/{src/models → models}/workload-base-model.d.ts +0 -0
  173. /package/lib/{src/models → models}/workload-model.d.ts +0 -0
  174. /package/lib/{src/pages → pages}/configmaps/index.d.ts +0 -0
  175. /package/lib/{src/pages → pages}/cronjobs/create/index.d.ts +0 -0
  176. /package/lib/{src/pages → pages}/cronjobs/index.d.ts +0 -0
  177. /package/lib/{src/pages → pages}/cronjobs/list/index.d.ts +0 -0
  178. /package/lib/{src/pages → pages}/cronjobs/show/index.d.ts +0 -0
  179. /package/lib/{src/pages → pages}/daemonsets/create/index.d.ts +0 -0
  180. /package/lib/{src/pages → pages}/daemonsets/index.d.ts +0 -0
  181. /package/lib/{src/pages → pages}/daemonsets/list/index.d.ts +0 -0
  182. /package/lib/{src/pages → pages}/daemonsets/show/index.d.ts +0 -0
  183. /package/lib/{src/pages → pages}/deployments/index.d.ts +0 -0
  184. /package/lib/{src/pages → pages}/deployments/list/index.d.ts +0 -0
  185. /package/lib/{src/pages → pages}/deployments/show/index.d.ts +0 -0
  186. /package/lib/{src/pages → pages}/ingresses/index.d.ts +0 -0
  187. /package/lib/{src/pages → pages}/jobs/index.d.ts +0 -0
  188. /package/lib/{src/pages → pages}/networkPolicies/index.d.ts +0 -0
  189. /package/lib/{src/pages → pages}/nodes/index.d.ts +0 -0
  190. /package/lib/{src/pages → pages}/nodes/list/index.d.ts +0 -0
  191. /package/lib/{src/pages → pages}/nodes/show/index.d.ts +0 -0
  192. /package/lib/{src/pages → pages}/persistentvolumeclaims/index.d.ts +0 -0
  193. /package/lib/{src/pages → pages}/persistentvolumes/index.d.ts +0 -0
  194. /package/lib/{src/pages → pages}/pods/create/index.d.ts +0 -0
  195. /package/lib/{src/pages → pages}/pods/index.d.ts +0 -0
  196. /package/lib/{src/pages → pages}/pods/list/index.d.ts +0 -0
  197. /package/lib/{src/pages → pages}/pods/show/index.d.ts +0 -0
  198. /package/lib/{src/pages → pages}/secrets/index.d.ts +0 -0
  199. /package/lib/{src/pages → pages}/services/index.d.ts +0 -0
  200. /package/lib/{src/pages → pages}/statefulsets/index.d.ts +0 -0
  201. /package/lib/{src/pages → pages}/storageclasses/form/index.d.ts +0 -0
  202. /package/lib/{src/plugins → plugins}/index.d.ts +0 -0
  203. /package/lib/{src/plugins → plugins}/model-plugin.d.ts +0 -0
  204. /package/lib/{src/plugins → plugins}/relation-plugin.d.ts +0 -0
  205. /package/lib/{src/plugins → plugins}/type.d.ts +0 -0
  206. /package/lib/{src/providers → providers}/index.d.ts +0 -0
  207. /package/lib/{src/providers → providers}/router-provider/index.d.ts +0 -0
  208. /package/lib/{src/types → types}/index.d.ts +0 -0
  209. /package/lib/{src/utils → utils}/addId.d.ts +0 -0
  210. /package/lib/{src/utils → utils}/download.d.ts +0 -0
  211. /package/lib/{src/utils → utils}/error.d.ts +0 -0
  212. /package/lib/{src/utils → utils}/form.d.ts +0 -0
  213. /package/lib/{src/utils → utils}/index.d.ts +0 -0
  214. /package/lib/{src/utils → utils}/k8s.d.ts +0 -0
  215. /package/lib/{src/utils → utils}/labels.d.ts +0 -0
  216. /package/lib/{src/utils → utils}/match-selector.d.ts +0 -0
  217. /package/lib/{src/utils → utils}/schema.d.ts +0 -0
  218. /package/lib/{src/utils → utils}/selector.d.ts +0 -0
  219. /package/lib/{src/utils → utils}/shell.d.ts +0 -0
  220. /package/lib/{src/utils → utils}/string.d.ts +0 -0
  221. /package/lib/{src/utils → utils}/time.d.ts +0 -0
  222. /package/lib/{src/utils → utils}/unit.d.ts +0 -0
  223. /package/lib/{src/utils → utils}/yaml.d.ts +0 -0
@@ -7,13 +7,13 @@ var __publicField = (obj, key2, value2) => {
7
7
  import i18n from "i18next";
8
8
  import * as React from "react";
9
9
  import React__default, { createElement, isValidElement, cloneElement, Children, createContext, useContext, useState, useRef, useEffect, useCallback, useMemo, useImperativeHandle, memo, PureComponent, useLayoutEffect, forwardRef, Suspense } from "react";
10
- import { ResourceContext, matchResourceFromRoute, useResource, useDelete, useNavigation, useBreadcrumb, useList, useParsed, useGo, useCan, useTable, useDeleteMany, CanAccess, useShow, useUpdate, useDataProvider, useRefineContext, useTranslate, useWarnAboutChange, useForm as useForm$2, flattenObjectKeys, pickNotDeprecated, useMenu, Refine } from "@refinedev/core";
10
+ import { ResourceContext, matchResourceFromRoute, useResource, useDelete, useNavigation, useBreadcrumb, useList, useParsed, useGo, CanAccess, useUpdate, useCan, useTable, useDeleteMany, useShow, useDataProvider, useRefineContext, useTranslate, useWarnAboutChange, useForm as useForm$2, flattenObjectKeys, pickNotDeprecated, useMenu, Refine } from "@refinedev/core";
11
11
  import { parse, stringify } from "qs";
12
12
  import { useLocation, useHistory, useParams, matchPath, Link, Route, NavLink, Router } from "react-router-dom";
13
- import { Typo, Tag, Input, Select, AntdOption, Button, Form, Space, TextArea, kitContext, Loading, Table as Table$1, Pagination, OverflowTooltip, StatusCapsule, Tooltip, usePushModal, Dropdown, Menu as Menu$1, Icon as Icon$1, Divider, Modal, Link as Link$1, Tabs as Tabs$1, TabsTabPane, Row, Col, Alert, usePopModal, Fields, DonutChart, Units, SegmentControl, Checkbox, DropdownMenu, SearchInput, Token, AntdSelectOptGroup, MenuItemGroup, Layout as Layout$1, Time as Time$1, useMessage, ModalStack, KitStoreProvider } from "@cloudtower/eagle";
14
- import { EditPen16PrimaryIcon, Download16GradientBlueIcon, TrashBinDelete16Icon, MoreEllipsis324BoldSecondaryIcon, MoreEllipsis324BoldBlueIcon, MoreEllipsis316BoldBlueIcon, PlusAddCreateNew16BoldOntintIcon, ArrowChevronLeft16BoldTertiaryIcon, ArrowChevronLeftSmall16BoldBlueIcon, EditPen16GradientBlueIcon, ViewEye16GradientGrayIcon, EntityFilterIgnoreGradient16GrayIcon, RecoverContinue16GradientBlueIcon, SuspendedPause16GradientBlueIcon, Retry16GradientBlueIcon, FontSize16GrayIcon, FontSize16BlueIcon, LogCollection16GrayIcon, LogCollection16GradientBlueIcon, TrashBinDeletePermanently16GrayIcon, TrashBinDeletePermanently16BlueIcon, Loading24GradientBlueIcon, OpenTerminal16GradientBlueIcon, HierarchyTriangleRight16GrayIcon, HierarchyTriangleRight16BlueIcon, ClipboardCopy16GradientGrayIcon, ClipboardCopy16GradientBlueIcon, Retry16GradientGrayIcon, EditPen16GradientGrayIcon, Showdiff16GradientGrayIcon, Showdiff16GradientBlueIcon, XmarkFailedSeriousWarningFill16RedIcon, ExclamationErrorCircleFill16RedIcon, Pause16GradientBlueIcon } from "@cloudtower/icons-react";
15
- import { omit as omit$1, merge, get as get$3, first, debounce, last, isObject as isObject$4, keyBy } from "lodash-es";
16
- import yaml from "js-yaml";
13
+ import { Typo, Tag, Input, Select, AntdOption, Button, Form, Space, TextArea, kitContext, Loading, Table as Table$1, Pagination, OverflowTooltip, StatusCapsule, Tooltip, usePushModal, Alert, usePopModal, Modal, TableForm, Menu as Menu$1, Icon as Icon$1, Dropdown, Divider, Link as Link$1, Tabs as Tabs$1, TabsTabPane, Row, Col, Fields, DonutChart, Units, SegmentControl, Checkbox, DropdownMenu, SearchInput, Token, AntdSelectOptGroup, MenuItemGroup, Layout as Layout$1, Time as Time$1, useMessage, ModalStack, KitStoreProvider, ConfigProvider } from "@cloudtower/eagle";
14
+ import { EditPen16BlueIcon, EditPen16PrimaryIcon, Download16GradientBlueIcon, TrashBinDelete16Icon, MoreEllipsis324BoldSecondaryIcon, MoreEllipsis324BoldBlueIcon, MoreEllipsis316BoldBlueIcon, PlusAddCreateNew16BoldOntintIcon, ArrowChevronLeft16BoldTertiaryIcon, ArrowChevronLeftSmall16BoldBlueIcon, EditPen16GradientBlueIcon, ViewEye16GradientGrayIcon, EntityFilterIgnoreGradient16GrayIcon, RecoverContinue16GradientBlueIcon, SuspendedPause16GradientBlueIcon, Retry16GradientBlueIcon, FontSize16GrayIcon, FontSize16BlueIcon, LogCollection16GrayIcon, LogCollection16GradientBlueIcon, TrashBinDeletePermanently16GrayIcon, TrashBinDeletePermanently16BlueIcon, Loading24GradientBlueIcon, OpenTerminal16GradientBlueIcon, HierarchyTriangleRight16GrayIcon, HierarchyTriangleRight16BlueIcon, ClipboardCopy16GradientGrayIcon, ClipboardCopy16GradientBlueIcon, Retry16GradientGrayIcon, EditPen16GradientGrayIcon, Showdiff16GradientGrayIcon, Showdiff16GradientBlueIcon, XmarkFailedSeriousWarningFill16RedIcon, ExclamationErrorCircleFill16RedIcon, Pause16GradientBlueIcon } from "@cloudtower/icons-react";
15
+ import { first, omit as omit$1, merge, get as get$3, debounce, last, isObject as isObject$4, uniq, keyBy } from "lodash-es";
16
+ import yaml$1 from "js-yaml";
17
17
  import { paginateData, sortData, dataProvider, liveProvider } from "k8s-api-provider";
18
18
  import * as monaco from "monaco-editor";
19
19
  import { setDiagnosticsOptions } from "monaco-yaml";
@@ -1169,6 +1169,7 @@ const pv_phase_failed$1 = "Failed";
1169
1169
  const pv_phase_pending$1 = "Pending";
1170
1170
  const exec_pod = "Execute shell";
1171
1171
  const search$1 = "Search";
1172
+ const edit_label$1 = "Edit label";
1172
1173
  const dovetail$1 = {
1173
1174
  copy: copy$2,
1174
1175
  reset_arguments: reset_arguments$1,
@@ -1340,7 +1341,8 @@ const dovetail$1 = {
1340
1341
  pv_phase_failed: pv_phase_failed$1,
1341
1342
  pv_phase_pending: pv_phase_pending$1,
1342
1343
  exec_pod,
1343
- search: search$1
1344
+ search: search$1,
1345
+ edit_label: edit_label$1
1344
1346
  };
1345
1347
  const EN = {
1346
1348
  dovetail: dovetail$1
@@ -1519,6 +1521,14 @@ const disconnected = "连接异常。";
1519
1521
  const connecting = "正在连接...";
1520
1522
  const reconnect = "重新连接";
1521
1523
  const search = "搜索";
1524
+ const edit_form = "编辑表单";
1525
+ const exit_yaml_tip = "返回编辑表单,不会保留对 YAML 文件做出的所有更改。";
1526
+ const form = "表单";
1527
+ const yaml = "YAML";
1528
+ const edit_label = "编辑标签";
1529
+ const edit_label_success_toast = "编辑资源 {{name}} 的标签成功";
1530
+ const edit_annotation = "编辑注解";
1531
+ const edit_annotation_success_toast = "编辑资源 {{name}} 的注解成功";
1522
1532
  const dovetail = {
1523
1533
  copy: copy$1,
1524
1534
  reset_arguments,
@@ -1696,7 +1706,15 @@ const dovetail = {
1696
1706
  disconnected,
1697
1707
  connecting,
1698
1708
  reconnect,
1699
- search
1709
+ search,
1710
+ edit_form,
1711
+ exit_yaml_tip,
1712
+ form,
1713
+ yaml,
1714
+ edit_label,
1715
+ edit_label_success_toast,
1716
+ edit_annotation,
1717
+ edit_annotation_success_toast
1700
1718
  };
1701
1719
  const ZH = {
1702
1720
  dovetail
@@ -5946,7 +5964,7 @@ lodash.exports;
5946
5964
  comparator = typeof comparator == "function" ? comparator : undefined$1;
5947
5965
  return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined$1, comparator);
5948
5966
  });
5949
- function uniq(array) {
5967
+ function uniq2(array) {
5950
5968
  return array && array.length ? baseUniq(array) : [];
5951
5969
  }
5952
5970
  function uniqBy(array, iteratee2) {
@@ -7608,7 +7626,7 @@ lodash.exports;
7608
7626
  lodash2.union = union;
7609
7627
  lodash2.unionBy = unionBy;
7610
7628
  lodash2.unionWith = unionWith;
7611
- lodash2.uniq = uniq;
7629
+ lodash2.uniq = uniq2;
7612
7630
  lodash2.uniqBy = uniqBy;
7613
7631
  lodash2.uniqWith = uniqWith;
7614
7632
  lodash2.unset = unset2;
@@ -8079,18 +8097,19 @@ function resolveRef(schema, schemas, options) {
8079
8097
  return schema;
8080
8098
  }
8081
8099
  class K8sOpenAPI {
8082
- constructor(resourceBasePath) {
8100
+ constructor(resourceBasePath, pathPrefix) {
8083
8101
  // private response: OpenAPIResponse | null = null;
8084
8102
  __publicField(this, "apiVersion");
8085
8103
  __publicField(this, "schemas", null);
8086
8104
  this.resourceBasePath = resourceBasePath;
8105
+ this.pathPrefix = pathPrefix;
8087
8106
  this.apiVersion = getApiVersion(resourceBasePath);
8088
8107
  }
8089
8108
  // Fetch and process OpenAPI schemas
8090
8109
  async fetch() {
8091
8110
  try {
8092
8111
  const response = await fetch(
8093
- `/api/sks/api/v1/clusters/sks-mgmt/proxy/openapi/v3${this.resourceBasePath}`
8112
+ `${this.pathPrefix}${this.resourceBasePath}`
8094
8113
  );
8095
8114
  const result = await response.json();
8096
8115
  this.schemas = Object.values(result.components.schemas);
@@ -8135,6 +8154,9 @@ class K8sOpenAPI {
8135
8154
  });
8136
8155
  }
8137
8156
  }
8157
+ const ConstantsContext = createContext({
8158
+ schemaUrlPrefix: ""
8159
+ });
8138
8160
  function useApiGroupSchema() {
8139
8161
  const [state2, setState] = useState({
8140
8162
  schemas: null,
@@ -8142,7 +8164,7 @@ function useApiGroupSchema() {
8142
8164
  loading: false,
8143
8165
  error: null
8144
8166
  });
8145
- const fetchSchema = useCallback(async (apiGroups) => {
8167
+ const fetchSchema = useCallback(async (apiGroups, schemaUrlPrefix) => {
8146
8168
  setState((prev) => ({ ...prev, loading: true, error: null }));
8147
8169
  try {
8148
8170
  const results = await Promise.all(
@@ -8150,7 +8172,7 @@ function useApiGroupSchema() {
8150
8172
  if (state2.schemasMap[apiGroup]) {
8151
8173
  return { apiGroup, schemas: state2.schemasMap[apiGroup] };
8152
8174
  }
8153
- const openapi = new K8sOpenAPI(apiGroup);
8175
+ const openapi = new K8sOpenAPI(apiGroup, schemaUrlPrefix);
8154
8176
  const groupSchemas = await openapi.fetch();
8155
8177
  return { apiGroup, schemas: groupSchemas || [] };
8156
8178
  })
@@ -8173,18 +8195,19 @@ function useApiGroupSchema() {
8173
8195
  return { ...state2, fetchSchema };
8174
8196
  }
8175
8197
  function useSchema(options) {
8176
- var _a;
8198
+ var _a, _b;
8177
8199
  const [schema, setSchema] = useState(null);
8178
8200
  const [loading, setLoading] = useState(false);
8179
8201
  const [error, setError] = useState(null);
8180
8202
  const useResourceResult = useResource();
8181
8203
  const resource = (options == null ? void 0 : options.resource) || useResourceResult.resource;
8204
+ const { schemaUrlPrefix } = useContext(ConstantsContext);
8182
8205
  const openapi = useMemo(
8183
8206
  () => {
8184
8207
  var _a2;
8185
- return new K8sOpenAPI((_a2 = resource == null ? void 0 : resource.meta) == null ? void 0 : _a2.resourceBasePath);
8208
+ return new K8sOpenAPI((_a2 = resource == null ? void 0 : resource.meta) == null ? void 0 : _a2.resourceBasePath, schemaUrlPrefix);
8186
8209
  },
8187
- [(_a = resource == null ? void 0 : resource.meta) == null ? void 0 : _a.resourceBasePath]
8210
+ [(_a = resource == null ? void 0 : resource.meta) == null ? void 0 : _a.resourceBasePath, schemaUrlPrefix]
8188
8211
  );
8189
8212
  const fetchSchema = useCallback(async () => {
8190
8213
  var _a2;
@@ -8200,7 +8223,7 @@ function useSchema(options) {
8200
8223
  } finally {
8201
8224
  setLoading(false);
8202
8225
  }
8203
- }, [resource, openapi]);
8226
+ }, [(_b = resource == null ? void 0 : resource.meta) == null ? void 0 : _b.kind, openapi]);
8204
8227
  useEffect(() => {
8205
8228
  if (options == null ? void 0 : options.skip)
8206
8229
  return;
@@ -8239,11 +8262,13 @@ var cx = function cx2() {
8239
8262
  };
8240
8263
  var cx_default = cx;
8241
8264
  const ConfigsContext = createContext({});
8242
- const useDeleteModal_vv2pzj = "";
8265
+ const modal_1eijuvm = "";
8266
+ const FullscreenModalStyle = "fq4465w";
8267
+ const SmallModalStyle = "s1nc293e";
8268
+ const useDeleteModal_mi8he5 = "";
8243
8269
  const TextStyle = "t1vq0ett";
8244
8270
  const TipStyle = "t139onst";
8245
8271
  const NameStyle$1 = "n18lzor8";
8246
- const ModalStyle = "mvvgkkc";
8247
8272
  const useDeleteModal = (resource) => {
8248
8273
  const configs = useContext(ConfigsContext);
8249
8274
  const config = configs[resource];
@@ -8258,7 +8283,7 @@ const useDeleteModal = (resource) => {
8258
8283
  t: t2
8259
8284
  } = useTranslation();
8260
8285
  const modalProps = {
8261
- className: ModalStyle,
8286
+ className: SmallModalStyle,
8262
8287
  title: t2("dovetail.delete_resource", {
8263
8288
  resource: config.kind
8264
8289
  }),
@@ -8339,7 +8364,7 @@ const useDeleteModal = (resource) => {
8339
8364
  openDeleteConfirmModal
8340
8365
  };
8341
8366
  };
8342
- const index_wrn16i = "";
8367
+ const index_18b69qa = "";
8343
8368
  const EMPTY_VALUES = [void 0, null, "", "-"];
8344
8369
  const EmptyStyle = "e5223w8";
8345
8370
  const ContentStyle$2 = "cdjsw14";
@@ -8351,7 +8376,7 @@ function ValueDisplay(props) {
8351
8376
  style
8352
8377
  } = props;
8353
8378
  return EMPTY_VALUES.includes(value2) ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
8354
- className: cx_default(EmptyStyle, className),
8379
+ className: cx_default(EmptyStyle, "empty-text", className),
8355
8380
  style,
8356
8381
  children: "-"
8357
8382
  }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
@@ -8423,7 +8448,7 @@ function DurationTime(props) {
8423
8448
  };
8424
8449
  return /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: elapsedTime(value2, i18nMap).label || /* @__PURE__ */ jsxRuntimeExports.jsx(ValueDisplay, { value: "" }) });
8425
8450
  }
8426
- const index_hex8jv = "";
8451
+ const index_1xaw1mq = "";
8427
8452
  const BreadcrumbStyle = "b142d7q8";
8428
8453
  function Breadcrumb(props) {
8429
8454
  const {
@@ -8731,7 +8756,7 @@ var styled_default = process.env.NODE_ENV !== "production" ? new Proxy(styled, {
8731
8756
  return o(prop);
8732
8757
  }
8733
8758
  }) : styled;
8734
- const index_cp12i5 = "";
8759
+ const index_1q7r2i0 = "";
8735
8760
  const ErrorWrapper = /* @__PURE__ */ styled_default("div")({
8736
8761
  name: "ErrorWrapper",
8737
8762
  class: "egn3dbn",
@@ -8792,13 +8817,13 @@ const WidgetErrorContent = (props) => {
8792
8817
  })
8793
8818
  });
8794
8819
  };
8795
- const TableWidgets_ny30pi = "";
8820
+ const TableWidgets_sc2nyo = "";
8796
8821
  const AuxiliaryLine = /* @__PURE__ */ styled_default("div")({
8797
8822
  name: "AuxiliaryLine",
8798
8823
  class: "ax1qopv",
8799
8824
  propsAsIs: false
8800
8825
  });
8801
- const index_dmbxj3 = "";
8826
+ const index_dp43sd = "";
8802
8827
  const TableContainerStyle = "t1upn1sz";
8803
8828
  function Table(props) {
8804
8829
  const {
@@ -9111,6 +9136,16 @@ class ResourceModel {
9111
9136
  restore() {
9112
9137
  return this._rawYaml;
9113
9138
  }
9139
+ updateLabel(labels) {
9140
+ const newYaml = this._globalStore.restoreItem(this);
9141
+ newYaml.metadata.labels = labels;
9142
+ return newYaml;
9143
+ }
9144
+ updateAnnotation(annotations) {
9145
+ const newYaml = this._globalStore.restoreItem(this);
9146
+ newYaml.metadata.annotations = annotations;
9147
+ return newYaml;
9148
+ }
9114
9149
  }
9115
9150
  class IngressModel extends ResourceModel {
9116
9151
  constructor(_rawYaml, _globalStore) {
@@ -9607,7 +9642,7 @@ const SERVER_INSTANCE_INIT_VALUE = {
9607
9642
  }
9608
9643
  }
9609
9644
  };
9610
- const TIMESTAMP_LABEL = "sks.user.kubesmart.smtx.io/timestamp";
9645
+ const REDEPLOY_TIMESTAMP_KEY = "kubectl.kubernetes.io/restartedAt";
9611
9646
  const SECRET_OPAQUE_INIT_VALUE = {
9612
9647
  "apiVersion": "v1",
9613
9648
  "kind": "Secret",
@@ -9856,7 +9891,7 @@ class WorkloadModel extends WorkloadBaseModel {
9856
9891
  const annotations = lodashExports.get(newOne, path2, {});
9857
9892
  lodashExports.set(newOne, path2, {
9858
9893
  ...annotations,
9859
- [TIMESTAMP_LABEL]: (/* @__PURE__ */ new Date()).toISOString().replace(/\.\d+Z$/, "Z")
9894
+ [REDEPLOY_TIMESTAMP_KEY]: (/* @__PURE__ */ new Date()).toISOString().replace(/\.\d+Z$/, "Z")
9860
9895
  });
9861
9896
  return newOne;
9862
9897
  }
@@ -10232,7 +10267,7 @@ class PersistentVolumeClaimModel extends ResourceModel {
10232
10267
  this._rawYaml = _rawYaml;
10233
10268
  }
10234
10269
  }
10235
- const index_1lzkrja = "";
10270
+ const index_1iq0dq9 = "";
10236
10271
  const ServiceInClusterAccessComponent = ({
10237
10272
  service
10238
10273
  }) => {
@@ -10311,7 +10346,7 @@ const ServiceOutClusterAccessComponent = ({
10311
10346
  children: content || "-"
10312
10347
  });
10313
10348
  };
10314
- const index_10ylmu3 = "";
10349
+ const index_1sc40y3 = "";
10315
10350
  const TagWrapper = "t13a6vox";
10316
10351
  const TagStyle = "t12ikbmp";
10317
10352
  const Tags = (props) => {
@@ -10338,7 +10373,7 @@ const Tags = (props) => {
10338
10373
  children: tags
10339
10374
  });
10340
10375
  };
10341
- const StateTag_1wmvw42 = "";
10376
+ const StateTag_1o2atxo = "";
10342
10377
  const StateTagStyle = "s8qkbck";
10343
10378
  const StateTag = ({
10344
10379
  state: state2 = WorkloadState.UPDATING,
@@ -10423,7 +10458,7 @@ var relativeTime$1 = { exports: {} };
10423
10458
  })(relativeTime$1);
10424
10459
  var relativeTimeExports = relativeTime$1.exports;
10425
10460
  const relativeTime = /* @__PURE__ */ getDefaultExportFromCjs(relativeTimeExports);
10426
- const index_1779z85 = "";
10461
+ const index_1jgp4p8 = "";
10427
10462
  dayjs.extend(relativeTime, {
10428
10463
  thresholds: [{
10429
10464
  l: "s",
@@ -10595,7 +10630,7 @@ function download(filename, content) {
10595
10630
  function useDownloadYAML() {
10596
10631
  return function(options) {
10597
10632
  const { name: name2, item } = options;
10598
- const content = yaml.dump(item);
10633
+ const content = yaml$1.dump(item);
10599
10634
  download(`${name2}.yaml`, content);
10600
10635
  };
10601
10636
  }
@@ -10680,6 +10715,410 @@ function useOpenForm(options) {
10680
10715
  }
10681
10716
  };
10682
10717
  }
10718
+ function FormErrorAlert(props) {
10719
+ const { title, errorMsgs, style, className, isEdit } = props;
10720
+ const { i18n: i18n2 } = useTranslation();
10721
+ return errorMsgs.length ? /* @__PURE__ */ jsxRuntimeExports.jsx(
10722
+ Alert,
10723
+ {
10724
+ message: /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
10725
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: title || i18n2.t(isEdit ? "dovetail.save_failed_tip" : "dovetail.create_failed_tip") }),
10726
+ errorMsgs.length > 1 ? /* @__PURE__ */ jsxRuntimeExports.jsx("ul", { children: errorMsgs.map((errorMsg, index2) => /* @__PURE__ */ jsxRuntimeExports.jsxs("li", { children: [
10727
+ index2 + 1 + ". ",
10728
+ " ",
10729
+ errorMsg
10730
+ ] }, errorMsg)) }) : first(errorMsgs)
10731
+ ] }),
10732
+ type: "error",
10733
+ style,
10734
+ className
10735
+ }
10736
+ ) : null;
10737
+ }
10738
+ function getCommonErrors(responseBody, i18n2) {
10739
+ var _a;
10740
+ if (!((responseBody == null ? void 0 : responseBody.message) || (responseBody == null ? void 0 : responseBody.code) || (responseBody == null ? void 0 : responseBody.reason) || (responseBody == null ? void 0 : responseBody.details) || (responseBody == null ? void 0 : responseBody.graphQLErrors))) {
10741
+ return [];
10742
+ }
10743
+ const causes = ((_a = responseBody.details) == null ? void 0 : _a.causes) || responseBody.graphQLErrors || [];
10744
+ if (causes.length) {
10745
+ return causes.map((cause) => {
10746
+ let params = {};
10747
+ let message2 = cause.message;
10748
+ try {
10749
+ const info = JSON.parse(cause.message);
10750
+ params = info.params;
10751
+ message2 = info.message;
10752
+ } catch {
10753
+ return i18n2.t(
10754
+ [
10755
+ `error.${cause.reason}`,
10756
+ `error.${cause.code}`,
10757
+ `${cause.field ? `${cause.field}: ` : ""}${message2}`
10758
+ ],
10759
+ {
10760
+ ...params,
10761
+ fallbackLng: ""
10762
+ }
10763
+ );
10764
+ }
10765
+ return i18n2.t(
10766
+ [
10767
+ `error.${cause.reason}`,
10768
+ `error.${cause.code}`,
10769
+ `${cause.field ? `${cause.field}: ` : ""}${message2}`
10770
+ ],
10771
+ {
10772
+ ...params,
10773
+ fallbackLng: ""
10774
+ }
10775
+ );
10776
+ });
10777
+ }
10778
+ return [
10779
+ i18n2.t(
10780
+ [`error.${responseBody.code}`, `error.${responseBody.reason}`, responseBody.message || ""],
10781
+ { fallbackLng: "" }
10782
+ )
10783
+ ];
10784
+ }
10785
+ function useSubmitForm(options) {
10786
+ const { formRef, onSubmitSuccess } = options;
10787
+ const { i18n: i18n2 } = useTranslation();
10788
+ const [submitting, setSubmitting] = useState(false);
10789
+ const [errorMsgs, setErrorMsgs] = useState([]);
10790
+ const reset = useCallback(() => {
10791
+ setSubmitting(false);
10792
+ setErrorMsgs([]);
10793
+ }, []);
10794
+ const onSubmit = useCallback(async () => {
10795
+ var _a;
10796
+ try {
10797
+ setSubmitting(true);
10798
+ await ((_a = formRef.current) == null ? void 0 : _a.submit());
10799
+ onSubmitSuccess == null ? void 0 : onSubmitSuccess();
10800
+ reset();
10801
+ } catch (error) {
10802
+ if (error instanceof Object) {
10803
+ if ("response" in error && error.response instanceof Response) {
10804
+ const response = error.response;
10805
+ const body = await response.json();
10806
+ setErrorMsgs(getCommonErrors(body, i18n2));
10807
+ } else if ("message" in error && typeof error.message === "string") {
10808
+ setErrorMsgs([error.message]);
10809
+ }
10810
+ }
10811
+ } finally {
10812
+ setSubmitting(false);
10813
+ }
10814
+ }, [formRef, i18n2, reset, onSubmitSuccess]);
10815
+ return {
10816
+ submitting,
10817
+ errorMsgs,
10818
+ reset,
10819
+ onSubmit
10820
+ };
10821
+ }
10822
+ const index_130sdg8 = "";
10823
+ const EditButtonStyle = "esoz3jw";
10824
+ function EditFieldModal(props) {
10825
+ const {
10826
+ title,
10827
+ formRef: form2,
10828
+ renderContent,
10829
+ fullscreen
10830
+ } = props;
10831
+ const {
10832
+ i18n: i18n2
10833
+ } = useTranslation();
10834
+ const popModal = usePopModal();
10835
+ const {
10836
+ submitting,
10837
+ errorMsgs,
10838
+ reset,
10839
+ onSubmit
10840
+ } = useSubmitForm({
10841
+ formRef: form2,
10842
+ onSubmitSuccess: () => {
10843
+ popModal();
10844
+ }
10845
+ });
10846
+ const close = useCallback(() => {
10847
+ popModal();
10848
+ reset();
10849
+ }, [reset]);
10850
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(Modal, {
10851
+ className: fullscreen ? FullscreenModalStyle : SmallModalStyle,
10852
+ title: title || i18n2.t("dovetail.edit"),
10853
+ confirmLoading: submitting,
10854
+ onOk: onSubmit,
10855
+ onCancel: close,
10856
+ okText: i18n2.t("dovetail.save"),
10857
+ normal: true,
10858
+ destroyOnClose: true,
10859
+ fullscreen,
10860
+ children: [renderContent(), /* @__PURE__ */ jsxRuntimeExports.jsx(FormErrorAlert, {
10861
+ style: {
10862
+ marginTop: 16
10863
+ },
10864
+ errorMsgs,
10865
+ isEdit: true
10866
+ })]
10867
+ });
10868
+ }
10869
+ function EditField(props) {
10870
+ const {
10871
+ modalProps
10872
+ } = props;
10873
+ const {
10874
+ i18n: i18n2
10875
+ } = useTranslation();
10876
+ const {
10877
+ resource
10878
+ } = useResource();
10879
+ const pushModal = usePushModal();
10880
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(CanAccess, {
10881
+ resource: resource == null ? void 0 : resource.name,
10882
+ action: AccessControlAuth.Edit,
10883
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(Button, {
10884
+ className: EditButtonStyle,
10885
+ type: "link",
10886
+ onClick: () => {
10887
+ pushModal({
10888
+ component: EditFieldModal,
10889
+ props: modalProps
10890
+ });
10891
+ },
10892
+ children: i18n2.t("dovetail.edit")
10893
+ })
10894
+ });
10895
+ }
10896
+ const EditLabelForm = React__default.forwardRef(
10897
+ function EditLabelForm2(props, ref) {
10898
+ var _a;
10899
+ const { resourceModel } = props;
10900
+ const { mutateAsync } = useUpdate();
10901
+ const { t: t2 } = useTranslation();
10902
+ const [value2, setValue] = useState([]);
10903
+ const defaultValue = useMemo(() => {
10904
+ var _a2;
10905
+ return Object.keys(((_a2 = resourceModel.metadata) == null ? void 0 : _a2.labels) || {}).map((key2) => {
10906
+ var _a3, _b;
10907
+ return { key: key2, value: (_b = (_a3 = resourceModel.metadata) == null ? void 0 : _a3.labels) == null ? void 0 : _b[key2] };
10908
+ });
10909
+ }, [(_a = resourceModel.metadata) == null ? void 0 : _a.labels]);
10910
+ const submit = useCallback(() => {
10911
+ const newLabels = {};
10912
+ value2.forEach(({ key: key2, value: value22 }) => {
10913
+ newLabels[key2] = value22;
10914
+ });
10915
+ const newYaml = resourceModel.updateLabel(newLabels);
10916
+ pruneBeforeEdit(newYaml);
10917
+ return mutateAsync({
10918
+ id: resourceModel.id,
10919
+ resource: resourceModel.name || "",
10920
+ values: newYaml,
10921
+ meta: {
10922
+ resourceBasePath: resourceModel.apiVersion,
10923
+ kind: resourceModel.kind
10924
+ },
10925
+ successNotification() {
10926
+ return {
10927
+ message: t2("dovetail.edit_label_success_toast", {
10928
+ kind: resourceModel.kind,
10929
+ name: resourceModel.metadata.name,
10930
+ interpolation: {
10931
+ escapeValue: false
10932
+ }
10933
+ }),
10934
+ type: "success"
10935
+ };
10936
+ },
10937
+ errorNotification: false
10938
+ });
10939
+ }, [value2, resourceModel, mutateAsync, t2]);
10940
+ useImperativeHandle(
10941
+ ref,
10942
+ () => ({
10943
+ submit
10944
+ }),
10945
+ [submit]
10946
+ );
10947
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
10948
+ TableForm,
10949
+ {
10950
+ onBodyChange: (value22) => {
10951
+ setValue(value22);
10952
+ },
10953
+ columns: [
10954
+ {
10955
+ key: "key",
10956
+ title: "Key",
10957
+ type: "input"
10958
+ },
10959
+ {
10960
+ key: "value",
10961
+ title: "Value",
10962
+ type: "input"
10963
+ }
10964
+ ],
10965
+ disableBatchFilling: true,
10966
+ rowAddConfig: {
10967
+ addible: true
10968
+ },
10969
+ defaultData: defaultValue,
10970
+ row: {
10971
+ deletable: true
10972
+ }
10973
+ }
10974
+ );
10975
+ }
10976
+ );
10977
+ function EditLabelDropdownMenuItem(props) {
10978
+ const { formRef, resourceModel } = props;
10979
+ const { t: t2 } = useTranslation();
10980
+ const pushModal = usePushModal();
10981
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
10982
+ Menu$1.Item,
10983
+ {
10984
+ className: "ant-dropdown-menu-item",
10985
+ onClick: () => {
10986
+ const modalProps = {
10987
+ formRef,
10988
+ title: t2("dovetail.edit_label"),
10989
+ fullscreen: true,
10990
+ renderContent() {
10991
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
10992
+ EditLabelForm,
10993
+ {
10994
+ ref: formRef,
10995
+ resourceModel
10996
+ }
10997
+ );
10998
+ }
10999
+ };
11000
+ pushModal({
11001
+ component: EditFieldModal,
11002
+ props: modalProps
11003
+ });
11004
+ },
11005
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(Icon$1, { src: EditPen16BlueIcon, children: t2("dovetail.edit_label") })
11006
+ }
11007
+ );
11008
+ }
11009
+ const EditAnnotationForm = React__default.forwardRef(
11010
+ function EditAnnotationForm2(props, ref) {
11011
+ var _a;
11012
+ const { resourceModel } = props;
11013
+ const { mutateAsync } = useUpdate();
11014
+ const { t: t2 } = useTranslation();
11015
+ const [value2, setValue] = useState([]);
11016
+ const defaultValue = useMemo(() => {
11017
+ var _a2;
11018
+ return Object.keys(((_a2 = resourceModel.metadata) == null ? void 0 : _a2.annotations) || {}).map((key2) => {
11019
+ var _a3, _b;
11020
+ return { key: key2, value: (_b = (_a3 = resourceModel.metadata) == null ? void 0 : _a3.annotations) == null ? void 0 : _b[key2] };
11021
+ });
11022
+ }, [(_a = resourceModel.metadata) == null ? void 0 : _a.annotations]);
11023
+ const submit = useCallback(() => {
11024
+ const newAnnotations = {};
11025
+ value2.forEach(({ key: key2, value: value22 }) => {
11026
+ newAnnotations[key2] = value22;
11027
+ });
11028
+ const newYaml = resourceModel.updateLabel(newAnnotations);
11029
+ pruneBeforeEdit(newYaml);
11030
+ return mutateAsync({
11031
+ id: resourceModel.id,
11032
+ resource: resourceModel.name || "",
11033
+ values: newYaml,
11034
+ meta: {
11035
+ resourceBasePath: resourceModel.apiVersion,
11036
+ kind: resourceModel.kind
11037
+ },
11038
+ successNotification() {
11039
+ return {
11040
+ message: t2("dovetail.edit_annotation_success_toast", {
11041
+ kind: resourceModel.kind,
11042
+ name: resourceModel.metadata.name,
11043
+ interpolation: {
11044
+ escapeValue: false
11045
+ }
11046
+ }),
11047
+ type: "success"
11048
+ };
11049
+ },
11050
+ errorNotification: false
11051
+ });
11052
+ }, [value2, resourceModel, mutateAsync, t2]);
11053
+ useImperativeHandle(
11054
+ ref,
11055
+ () => ({
11056
+ submit
11057
+ }),
11058
+ [submit]
11059
+ );
11060
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
11061
+ TableForm,
11062
+ {
11063
+ onBodyChange: (value22) => {
11064
+ setValue(value22);
11065
+ },
11066
+ columns: [
11067
+ {
11068
+ key: "key",
11069
+ title: "Key",
11070
+ type: "input"
11071
+ },
11072
+ {
11073
+ key: "value",
11074
+ title: "Value",
11075
+ type: "input"
11076
+ }
11077
+ ],
11078
+ disableBatchFilling: true,
11079
+ rowAddConfig: {
11080
+ addible: true
11081
+ },
11082
+ defaultData: defaultValue,
11083
+ row: {
11084
+ deletable: true
11085
+ }
11086
+ }
11087
+ );
11088
+ }
11089
+ );
11090
+ function EditAnnotationDropdownMenuItem(props) {
11091
+ const { formRef, resourceModel } = props;
11092
+ const { t: t2 } = useTranslation();
11093
+ const pushModal = usePushModal();
11094
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
11095
+ Menu$1.Item,
11096
+ {
11097
+ className: "ant-dropdown-menu-item",
11098
+ onClick: () => {
11099
+ const modalProps = {
11100
+ formRef,
11101
+ title: t2("dovetail.edit_annotation"),
11102
+ fullscreen: true,
11103
+ renderContent() {
11104
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
11105
+ EditAnnotationForm,
11106
+ {
11107
+ ref: formRef,
11108
+ resourceModel
11109
+ }
11110
+ );
11111
+ }
11112
+ };
11113
+ pushModal({
11114
+ component: EditFieldModal,
11115
+ props: modalProps
11116
+ });
11117
+ },
11118
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(Icon$1, { src: EditPen16BlueIcon, children: t2("dovetail.edit_annotation") })
11119
+ }
11120
+ );
11121
+ }
10683
11122
  function K8sDropdown(props) {
10684
11123
  const { record, size = "normal" } = props;
10685
11124
  const { globalStore } = useGlobalStore();
@@ -10700,18 +11139,15 @@ function K8sDropdown(props) {
10700
11139
  resource: resource == null ? void 0 : resource.name,
10701
11140
  action: AccessControlAuth.Delete
10702
11141
  });
11142
+ const formRef = useRef(null);
11143
+ const editLabelMenuItem = (canEditData == null ? void 0 : canEditData.can) !== false ? /* @__PURE__ */ jsxRuntimeExports.jsx(EditLabelDropdownMenuItem, { formRef, resourceModel: record }) : null;
11144
+ const editAnnotationMenuItem = (canEditData == null ? void 0 : canEditData.can) !== false ? /* @__PURE__ */ jsxRuntimeExports.jsx(EditAnnotationDropdownMenuItem, { formRef, resourceModel: record }) : null;
10703
11145
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
10704
11146
  /* @__PURE__ */ jsxRuntimeExports.jsx(
10705
11147
  Dropdown,
10706
11148
  {
10707
11149
  overlay: /* @__PURE__ */ jsxRuntimeExports.jsxs(Menu$1, { children: [
10708
- isInShowPage || (canEditData == null ? void 0 : canEditData.can) === false ? null : /* @__PURE__ */ jsxRuntimeExports.jsx(
10709
- Menu$1.Item,
10710
- {
10711
- onClick: openForm,
10712
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(Icon$1, { src: EditPen16PrimaryIcon, children: t2("dovetail.edit_yaml") })
10713
- }
10714
- ),
11150
+ isInShowPage || (canEditData == null ? void 0 : canEditData.can) === false ? null : /* @__PURE__ */ jsxRuntimeExports.jsx(Menu$1.Item, { onClick: openForm, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Icon$1, { src: EditPen16PrimaryIcon, children: t2("dovetail.edit_yaml") }) }),
10715
11151
  /* @__PURE__ */ jsxRuntimeExports.jsx(
10716
11152
  Menu$1.Item,
10717
11153
  {
@@ -10727,6 +11163,8 @@ function K8sDropdown(props) {
10727
11163
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(Icon$1, { src: Download16GradientBlueIcon, children: t2("dovetail.download_yaml") })
10728
11164
  }
10729
11165
  ),
11166
+ editLabelMenuItem,
11167
+ editAnnotationMenuItem,
10730
11168
  props.children,
10731
11169
  (canDeleteData == null ? void 0 : canDeleteData.can) !== false ? /* @__PURE__ */ jsxRuntimeExports.jsx(Divider, { style: { margin: 0 } }) : null,
10732
11170
  (canDeleteData == null ? void 0 : canDeleteData.can) !== false ? /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -10913,7 +11351,7 @@ const DeleteManyButton = (props) => {
10913
11351
  visible ? /* @__PURE__ */ jsxRuntimeExports.jsx(Modal, { ...modalProps }) : null
10914
11352
  ] });
10915
11353
  };
10916
- const TableToolBar_4s5vf2 = "";
11354
+ const TableToolBar_nvjftd = "";
10917
11355
  const ToolbarWrapperStyle = "t1v3ienx";
10918
11356
  const ToolbarStyle$3 = "tgejfwe";
10919
11357
  const TitleStyle$2 = "tq6dc79";
@@ -10949,7 +11387,7 @@ const TableToolBar = ({
10949
11387
  }) : null]
10950
11388
  });
10951
11389
  };
10952
- const index_6qzjtx = "";
11390
+ const index_dyz3nd = "";
10953
11391
  const WrapperStyle$5 = "w16agr8o";
10954
11392
  function matchOwner(job, owner) {
10955
11393
  var _a;
@@ -11104,7 +11542,7 @@ const EventsTable = ({ uid }) => {
11104
11542
  }
11105
11543
  );
11106
11544
  };
11107
- const index_218swh = "";
11545
+ const index_mvy4dx = "";
11108
11546
  const ImageWrapperStyle = "i1u1f5zp";
11109
11547
  const ImageNames = ({
11110
11548
  value: value2,
@@ -11118,7 +11556,7 @@ const ImageNames = ({
11118
11556
  }, `${image2}-${index2}`)) : value2.join(", ")
11119
11557
  });
11120
11558
  };
11121
- const index_1m8lip = "";
11559
+ const index_14bl0m = "";
11122
11560
  const LinkStyle$1 = "lmmrm55";
11123
11561
  function LinkFallback({
11124
11562
  fullPath
@@ -11135,7 +11573,7 @@ function LinkFallback({
11135
11573
  children: fullPath
11136
11574
  });
11137
11575
  }
11138
- const index_cbhkdt = "";
11576
+ const index_x36tts = "";
11139
11577
  const LinkStyle = "l1vnw9x0";
11140
11578
  const ResourceLink = (props) => {
11141
11579
  const {
@@ -11274,7 +11712,7 @@ const IngressRulesTable = ({ ingress }) => {
11274
11712
  }
11275
11713
  );
11276
11714
  };
11277
- const KeyValue_q4vd5r = "";
11715
+ const KeyValue_18l1y97 = "";
11278
11716
  const ContentBlockStyle = "c8jy7dc";
11279
11717
  const KeyStyle = "k2sddxl";
11280
11718
  const ValueStyle$2 = "v16vicsr";
@@ -11310,7 +11748,7 @@ const KeyValue = (props) => {
11310
11748
  function toAsterisk(str) {
11311
11749
  return Array(str.length).join("*");
11312
11750
  }
11313
- const KeyValueAnnotation_1inegjq = "";
11751
+ const KeyValueAnnotation_ug7k2g = "";
11314
11752
  const WrapperStyle$4 = "w14056kz";
11315
11753
  const HeaderStyle$1 = "hisq2gt";
11316
11754
  const HeaderItemStyle = "h11urhaw";
@@ -11354,7 +11792,7 @@ function Tabs(props) {
11354
11792
  return /* @__PURE__ */ jsxRuntimeExports.jsx(TabsTabPane, { tab: tab.title, children: tab.children }, tab.title);
11355
11793
  }) });
11356
11794
  }
11357
- const ShowContent_1u0cbxv = "";
11795
+ const ShowContent_11g4jr2 = "";
11358
11796
  const ShowContentWrapperStyle = "s9agep2";
11359
11797
  const BackButton = "bo89gfi";
11360
11798
  const ToolBarWrapper = "t1ohe42f";
@@ -11565,7 +12003,7 @@ const ShowContent = (props) => {
11565
12003
  }), tabs]
11566
12004
  });
11567
12005
  };
11568
- const KeyValueSecret_1ibo68a = "";
12006
+ const KeyValueSecret_c3ji18 = "";
11569
12007
  const ButtonStyle = "b11tbgf7";
11570
12008
  const GroupStyle = "gtbyh5g";
11571
12009
  function KeyValueSecret(props) {
@@ -11620,7 +12058,7 @@ function PVVolumeModeDisplay(props) {
11620
12058
  };
11621
12059
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: map[value2] || value2 });
11622
12060
  }
11623
- const WorkloadPodsTable_1giuese = "";
12061
+ const WorkloadPodsTable_975j2t = "";
11624
12062
  const WorkloadPodsTable = ({
11625
12063
  namespace: namespace2,
11626
12064
  selector,
@@ -11689,183 +12127,7 @@ const WorkloadPodsTable = ({
11689
12127
  })]
11690
12128
  });
11691
12129
  };
11692
- function FormErrorAlert(props) {
11693
- const { errorMsgs, style, className, isEdit } = props;
11694
- const { i18n: i18n2 } = useTranslation();
11695
- return errorMsgs.length ? /* @__PURE__ */ jsxRuntimeExports.jsx(
11696
- Alert,
11697
- {
11698
- message: /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
11699
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: i18n2.t(isEdit ? "dovetail.save_failed_tip" : "dovetail.create_failed_tip") }),
11700
- errorMsgs.length > 1 ? /* @__PURE__ */ jsxRuntimeExports.jsx("ul", { children: errorMsgs.map((errorMsg, index2) => /* @__PURE__ */ jsxRuntimeExports.jsxs("li", { children: [
11701
- index2 + 1 + ". ",
11702
- " ",
11703
- errorMsg
11704
- ] }, errorMsg)) }) : first(errorMsgs)
11705
- ] }),
11706
- type: "error",
11707
- style,
11708
- className
11709
- }
11710
- ) : null;
11711
- }
11712
- function getCommonErrors(responseBody, i18n2) {
11713
- var _a;
11714
- if (!((responseBody == null ? void 0 : responseBody.message) || (responseBody == null ? void 0 : responseBody.code) || (responseBody == null ? void 0 : responseBody.reason) || (responseBody == null ? void 0 : responseBody.details) || (responseBody == null ? void 0 : responseBody.graphQLErrors))) {
11715
- return [];
11716
- }
11717
- const causes = ((_a = responseBody.details) == null ? void 0 : _a.causes) || responseBody.graphQLErrors || [];
11718
- if (causes.length) {
11719
- return causes.map((cause) => {
11720
- let params = {};
11721
- let message2 = cause.message;
11722
- try {
11723
- const info = JSON.parse(cause.message);
11724
- params = info.params;
11725
- message2 = info.message;
11726
- } catch {
11727
- return i18n2.t(
11728
- [
11729
- `error.${cause.reason}`,
11730
- `error.${cause.code}`,
11731
- `${cause.field ? `${cause.field}: ` : ""}${message2}`
11732
- ],
11733
- {
11734
- ...params,
11735
- fallbackLng: ""
11736
- }
11737
- );
11738
- }
11739
- return i18n2.t(
11740
- [
11741
- `error.${cause.reason}`,
11742
- `error.${cause.code}`,
11743
- `${cause.field ? `${cause.field}: ` : ""}${message2}`
11744
- ],
11745
- {
11746
- ...params,
11747
- fallbackLng: ""
11748
- }
11749
- );
11750
- });
11751
- }
11752
- return [
11753
- i18n2.t(
11754
- [`error.${responseBody.code}`, `error.${responseBody.reason}`, responseBody.message || ""],
11755
- { fallbackLng: "" }
11756
- )
11757
- ];
11758
- }
11759
- function useSubmitForm(options) {
11760
- const { formRef, onSubmitSuccess } = options;
11761
- const { i18n: i18n2 } = useTranslation();
11762
- const [submitting, setSubmitting] = useState(false);
11763
- const [errorMsgs, setErrorMsgs] = useState([]);
11764
- const reset = useCallback(() => {
11765
- setSubmitting(false);
11766
- setErrorMsgs([]);
11767
- }, []);
11768
- const onSubmit = useCallback(async () => {
11769
- var _a;
11770
- try {
11771
- setSubmitting(true);
11772
- await ((_a = formRef.current) == null ? void 0 : _a.submit());
11773
- onSubmitSuccess == null ? void 0 : onSubmitSuccess();
11774
- reset();
11775
- } catch (error) {
11776
- if (error instanceof Object) {
11777
- if ("response" in error && error.response instanceof Response) {
11778
- const response = error.response;
11779
- const body = await response.json();
11780
- setErrorMsgs(getCommonErrors(body, i18n2));
11781
- } else if ("message" in error && typeof error.message === "string") {
11782
- setErrorMsgs([error.message]);
11783
- }
11784
- }
11785
- } finally {
11786
- setSubmitting(false);
11787
- }
11788
- }, [formRef, i18n2, reset, onSubmitSuccess]);
11789
- return {
11790
- submitting,
11791
- errorMsgs,
11792
- reset,
11793
- onSubmit
11794
- };
11795
- }
11796
- const index_1twfoei = "";
11797
- const EditButtonStyle = "esoz3jw";
11798
- function EditFieldModal(props) {
11799
- const {
11800
- title,
11801
- formRef: form,
11802
- renderContent
11803
- } = props;
11804
- const {
11805
- i18n: i18n2
11806
- } = useTranslation();
11807
- const popModal = usePopModal();
11808
- const {
11809
- submitting,
11810
- errorMsgs,
11811
- reset,
11812
- onSubmit
11813
- } = useSubmitForm({
11814
- formRef: form,
11815
- onSubmitSuccess: () => {
11816
- popModal();
11817
- }
11818
- });
11819
- const close = useCallback(() => {
11820
- popModal();
11821
- reset();
11822
- }, [reset]);
11823
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(Modal, {
11824
- className: ModalStyle,
11825
- title: title || i18n2.t("dovetail.edit"),
11826
- confirmLoading: submitting,
11827
- onOk: onSubmit,
11828
- onCancel: close,
11829
- okText: i18n2.t("dovetail.save"),
11830
- normal: true,
11831
- destroyOnClose: true,
11832
- children: [renderContent(), /* @__PURE__ */ jsxRuntimeExports.jsx(FormErrorAlert, {
11833
- style: {
11834
- marginTop: 16
11835
- },
11836
- errorMsgs,
11837
- isEdit: true
11838
- })]
11839
- });
11840
- }
11841
- function EditField(props) {
11842
- const {
11843
- modalProps
11844
- } = props;
11845
- const {
11846
- i18n: i18n2
11847
- } = useTranslation();
11848
- const {
11849
- resource
11850
- } = useResource();
11851
- const pushModal = usePushModal();
11852
- return /* @__PURE__ */ jsxRuntimeExports.jsx(CanAccess, {
11853
- resource: resource == null ? void 0 : resource.name,
11854
- action: AccessControlAuth.Edit,
11855
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(Button, {
11856
- className: EditButtonStyle,
11857
- type: "link",
11858
- onClick: () => {
11859
- pushModal({
11860
- component: EditFieldModal,
11861
- props: modalProps
11862
- });
11863
- },
11864
- children: i18n2.t("dovetail.edit")
11865
- })
11866
- });
11867
- }
11868
- const index_c9frt4 = "";
12130
+ const index_p1cude = "";
11869
12131
  const WorkloadReplicasWrapperStyle = "w8ychfk";
11870
12132
  const DonutChartWrapperStyle = "d1o004do";
11871
12133
  const DonutChartStyle = "dfo80qq";
@@ -17949,7 +18211,7 @@ const LogViewerBase = memo((_a) => {
17949
18211
  const LogViewer = React__default.forwardRef((props, ref) => React__default.createElement(LogViewerBase, Object.assign({ innerRef: ref }, props)));
17950
18212
  LogViewer.displayName = "LogViewer";
17951
18213
  const baseNoReset = "";
17952
- const index_jv52b6 = "";
18214
+ const index_v855ki = "";
17953
18215
  const WrapperStyle$3 = "wve7dfm";
17954
18216
  const ToolbarStyle$2 = "t9oeh3c";
17955
18217
  const ToolbarAreaStyle$1 = "t1u2zqn6";
@@ -18184,7 +18446,7 @@ const PodLogTab = (i18n2) => ({
18184
18446
  }
18185
18447
  ]
18186
18448
  });
18187
- const style_inzxm5 = "";
18449
+ const style_h6krld = "";
18188
18450
  const ToolBarStyle = "t1joof7s";
18189
18451
  const ToolBarHeaderStyle = "tti58uh";
18190
18452
  const ErrorIconStyle = "e15yt16p";
@@ -18242,6 +18504,7 @@ const MonacoYamlEditor$1 = (props) => {
18242
18504
  // https://github.com/microsoft/monaco-editor/issues/2007
18243
18505
  },
18244
18506
  tabSize: 2,
18507
+ lineNumbersMinChars: 7,
18245
18508
  readOnly,
18246
18509
  autoIndent: {}.VITE_IS_TEST ? "none" : "advanced"
18247
18510
  });
@@ -18357,7 +18620,7 @@ const MonacoYamlEditor$2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.
18357
18620
  __proto__: null,
18358
18621
  default: MonacoYamlEditor$1
18359
18622
  }, Symbol.toStringTag, { value: "Module" }));
18360
- const NetworkPolicyRulesViewer_13asgaq = "";
18623
+ const NetworkPolicyRulesViewer_6z3c00 = "";
18361
18624
  const EditorStyle$1 = "e1cjl2b8";
18362
18625
  const NetworkPolicyRulesViewer = ({
18363
18626
  ingressOrEgress,
@@ -18379,7 +18642,7 @@ const NetworkPolicyRulesViewer = ({
18379
18642
  }
18380
18643
  return /* @__PURE__ */ jsxRuntimeExports.jsx(MonacoYamlEditor$1, {
18381
18644
  schemas: [],
18382
- defaultValue: yaml.dump(ingressOrEgress),
18645
+ defaultValue: yaml$1.dump(ingressOrEgress),
18383
18646
  height: "300px",
18384
18647
  className: EditorStyle$1,
18385
18648
  readOnly: true,
@@ -18703,7 +18966,7 @@ const PageShow = (props) => {
18703
18966
  }, [isError, nav, resource]);
18704
18967
  return isLoading ? /* @__PURE__ */ jsxRuntimeExports.jsx(Loading, {}) : /* @__PURE__ */ jsxRuntimeExports.jsx(ShowContent, { ...props });
18705
18968
  };
18706
- const index_17v8shn = "";
18969
+ const index_az4wrx = "";
18707
18970
  const WrapperStyle$1 = "w1akirqw";
18708
18971
  const TitleStyle = "t30srnq";
18709
18972
  function FormLayout(props) {
@@ -31912,7 +32175,7 @@ function copy(text, options) {
31912
32175
  }
31913
32176
  var copyToClipboard$1 = copy;
31914
32177
  const copyToClipboard$2 = /* @__PURE__ */ getDefaultExportFromCjs(copyToClipboard$1);
31915
- const ShellToolbar_ox6trc = "";
32178
+ const ShellToolbar_ihg418 = "";
31916
32179
  const ToolbarStyle$1 = "tzxa6d";
31917
32180
  const ToolbarAreaStyle = "t1sxu3rr";
31918
32181
  const IconWrapperStyle = "ix8ych8";
@@ -32021,7 +32284,7 @@ function ShellToolbar(props) {
32021
32284
  });
32022
32285
  }
32023
32286
  const xterm = "";
32024
- const index_z4cp87 = "";
32287
+ const index_1bj2t02 = "";
32025
32288
  const ContainerStyle = "c1q5a2qi";
32026
32289
  const ShellStyle = "sdz5fm1";
32027
32290
  const LoadingStyle = "lbp0h2e";
@@ -32109,7 +32372,7 @@ const Shell = React__default.forwardRef(function Shell2(props, ref) {
32109
32372
  });
32110
32373
  }
32111
32374
  }, [encode, send, props.fit]);
32112
- const debouncedFit = debounce(fit, 200);
32375
+ const debouncedFit = useCallback(() => debounce(fit, 200), [fit]);
32113
32376
  const flush = useCallback(() => {
32114
32377
  const backlog = backlogRef.current.slice();
32115
32378
  backlogRef.current = [];
@@ -32296,6 +32559,10 @@ const Shell = React__default.forwardRef(function Shell2(props, ref) {
32296
32559
  });
32297
32560
  fit();
32298
32561
  }, [fit]);
32562
+ const writeln = useCallback((data2) => {
32563
+ var _a;
32564
+ (_a = termInstanceRef.current) == null ? void 0 : _a.writeln(data2);
32565
+ }, []);
32299
32566
  useEffect(() => {
32300
32567
  const destroy = setupTerminal();
32301
32568
  return () => {
@@ -32331,8 +32598,9 @@ const Shell = React__default.forwardRef(function Shell2(props, ref) {
32331
32598
  getAllTerminalContents,
32332
32599
  setOptions,
32333
32600
  setLoading,
32334
- setError
32335
- }), [send, searchNext, searchPrevious, getAllTerminalContents, fit, clear, connect, setOptions]);
32601
+ setError,
32602
+ writeln
32603
+ }), [send, searchNext, searchPrevious, getAllTerminalContents, fit, clear, connect, setOptions, writeln]);
32336
32604
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
32337
32605
  ref: containerRef,
32338
32606
  className: ContainerStyle,
@@ -32396,8 +32664,6 @@ const Shell = React__default.forwardRef(function Shell2(props, ref) {
32396
32664
  });
32397
32665
  });
32398
32666
  const GlobalStoreContext = createContext({});
32399
- const modal_7iwhwk = "";
32400
- const FullscreenModalStyle = "fq4465w";
32401
32667
  var buffer = {};
32402
32668
  var base64Js = {};
32403
32669
  base64Js.byteLength = byteLength;
@@ -34637,7 +34903,7 @@ function parseJSON(value2) {
34637
34903
  return void 0;
34638
34904
  }
34639
34905
  }
34640
- const index_1xad2h9 = "";
34906
+ const index_1jqojte = "";
34641
34907
  const SelectStyle = "sj0ggy";
34642
34908
  const DropdownStyle = "d1eo8uqs";
34643
34909
  const SearchInputStyle = "s64gojc";
@@ -34843,7 +35109,7 @@ function useNamespaceRefineFilter() {
34843
35109
  }), [nsFilters]);
34844
35110
  return filters;
34845
35111
  }
34846
- const index_hp158y = "";
35112
+ const index_1l2xllo = "";
34847
35113
  const ListPageStyle = "laykzsq";
34848
35114
  const ListContentStyle = "l1ng0psc";
34849
35115
  const TableStyle = "tj6zpn4";
@@ -34937,6 +35203,8 @@ function ResourceShow(props) {
34937
35203
  }
34938
35204
  );
34939
35205
  }
35206
+ const button_1uhn9v1 = "";
35207
+ const WarningButtonStyle = "wwyz7ti";
34940
35208
  var isCheckBoxInput = (element) => element.type === "checkbox";
34941
35209
  var isDateObject = (value2) => value2 instanceof Date;
34942
35210
  var isNullOrUndefined = (value2) => value2 == null;
@@ -36297,9 +36565,9 @@ function createFormControl(props = {}, flushRootRender) {
36297
36565
  if (field && field._f) {
36298
36566
  const fieldReference = Array.isArray(field._f.refs) ? field._f.refs[0] : field._f.ref;
36299
36567
  if (isHTMLElement(fieldReference)) {
36300
- const form = fieldReference.closest("form");
36301
- if (form) {
36302
- form.reset();
36568
+ const form2 = fieldReference.closest("form");
36569
+ if (form2) {
36570
+ form2.reset();
36303
36571
  break;
36304
36572
  }
36305
36573
  }
@@ -36514,43 +36782,41 @@ function useForm$1(props = {}) {
36514
36782
  _formControl.current.formState = getProxyFormState(formState, control);
36515
36783
  return _formControl.current;
36516
36784
  }
36517
- const RefineFormContent_1jki0fx = "";
36518
- const RefineFormContent = (props) => {
36785
+ function useFieldsConfig(config, resourceId) {
36519
36786
  var _a, _b, _c, _d;
36520
- const {
36521
- config,
36522
- formResult,
36523
- resourceId,
36524
- errorMsg
36525
- } = props;
36526
- const {
36527
- control,
36528
- getValues
36529
- } = formResult;
36530
36787
  const action = resourceId ? "edit" : "create";
36531
36788
  const listQuery = useList({
36532
36789
  resource: config == null ? void 0 : config.name,
36533
- meta: {
36534
- resourceBasePath: config == null ? void 0 : config.basePath,
36535
- kind: config == null ? void 0 : config.kind
36536
- },
36790
+ meta: { resourceBasePath: config == null ? void 0 : config.basePath, kind: config == null ? void 0 : config.kind },
36537
36791
  pagination: {
36538
36792
  mode: "off"
36539
36793
  }
36540
36794
  });
36541
36795
  const showQuery = useShow({
36542
36796
  resource: config == null ? void 0 : config.name,
36543
- meta: {
36544
- resourceBasePath: config == null ? void 0 : config.basePath,
36545
- kind: config == null ? void 0 : config.kind
36546
- },
36797
+ meta: { resourceBasePath: config == null ? void 0 : config.basePath, kind: config == null ? void 0 : config.kind },
36547
36798
  id: resourceId
36548
36799
  });
36549
- const formFieldsConfig = (_d = (_a = config == null ? void 0 : config.formConfig) == null ? void 0 : _a.fields) == null ? void 0 : _d.call(_a, {
36800
+ return (_d = (_a = config == null ? void 0 : config.formConfig) == null ? void 0 : _a.fields) == null ? void 0 : _d.call(_a, {
36550
36801
  record: (_b = showQuery.queryResult.data) == null ? void 0 : _b.data,
36551
36802
  records: ((_c = listQuery.data) == null ? void 0 : _c.data) || [],
36552
36803
  action
36553
36804
  });
36805
+ }
36806
+ const RefineFormContent_7gh3uw = "";
36807
+ const RefineFormContent = (props) => {
36808
+ const {
36809
+ config,
36810
+ formResult,
36811
+ resourceId,
36812
+ errorMsg
36813
+ } = props;
36814
+ const {
36815
+ control,
36816
+ getValues
36817
+ } = formResult;
36818
+ const action = resourceId ? "edit" : "create";
36819
+ const formFieldsConfig = useFieldsConfig(config, resourceId);
36554
36820
  const fields = formFieldsConfig == null ? void 0 : formFieldsConfig.map((c2) => {
36555
36821
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Controller, {
36556
36822
  control,
@@ -36580,7 +36846,7 @@ const RefineFormContent = (props) => {
36580
36846
  },
36581
36847
  fieldState
36582
36848
  }) => {
36583
- var _a2;
36849
+ var _a;
36584
36850
  const formValue = getValues();
36585
36851
  let ele = /* @__PURE__ */ jsxRuntimeExports.jsx(Fields.String, {
36586
36852
  placeholder: c2.placeholder,
@@ -36633,7 +36899,7 @@ const RefineFormContent = (props) => {
36633
36899
  labelCol: {
36634
36900
  flex: "0 0 216px"
36635
36901
  },
36636
- help: (_a2 = fieldState.error) == null ? void 0 : _a2.message,
36902
+ help: (_a = fieldState.error) == null ? void 0 : _a.message,
36637
36903
  validateStatus: fieldState.invalid ? "error" : void 0,
36638
36904
  children: ele
36639
36905
  }, c2.key);
@@ -37328,7 +37594,7 @@ const useRefineForm = (props) => {
37328
37594
  }, [config.formConfig, result]);
37329
37595
  return { formResult: result, responseErrorMsg };
37330
37596
  };
37331
- const index_12sfrn = "";
37597
+ const index_2ivb33 = "";
37332
37598
  const Style = "s1bsn3us";
37333
37599
  const Separator = () => {
37334
37600
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
@@ -37336,7 +37602,7 @@ const Separator = () => {
37336
37602
  });
37337
37603
  };
37338
37604
  const MonacoYamlEditor = React__default.lazy(() => Promise.resolve().then(() => MonacoYamlEditor$2));
37339
- const MonacoYamlDiffEditor = React__default.lazy(() => import("./MonacoYamlDiffEditor-c2239ccf.js"));
37605
+ const MonacoYamlDiffEditor = React__default.lazy(() => import("./MonacoYamlDiffEditor-1593cfad.js"));
37340
37606
  const YamlEditorComponent = forwardRef(
37341
37607
  function YamlEditorComponent2(props, ref) {
37342
37608
  const {
@@ -37668,7 +37934,7 @@ function generateYamlBySchema(defaultValue, schema) {
37668
37934
  return merged2;
37669
37935
  }
37670
37936
  const merged = merge2(defaultValue, typeObject);
37671
- const content = yaml.dump(merged);
37937
+ const content = yaml$1.dump(merged);
37672
37938
  return content.replace(/(')(#.+?)(')/g, "$2").replace(/( +)(#)/g, "$2$1");
37673
37939
  }
37674
37940
  const useGlobalStore = () => {
@@ -37702,8 +37968,10 @@ const useYamlForm = ({
37702
37968
  overtimeOptions,
37703
37969
  editorOptions,
37704
37970
  initialValuesForCreate,
37971
+ initialValuesForEdit,
37705
37972
  transformInitValues,
37706
- transformApplyValues
37973
+ transformApplyValues,
37974
+ rules
37707
37975
  } = {}) => {
37708
37976
  var _a;
37709
37977
  const editor = useRef(null);
@@ -37712,6 +37980,7 @@ const useYamlForm = ({
37712
37980
  const [isYamlValid, setIsYamlValid] = useState(true);
37713
37981
  const [isSchemaValid, setIsSchemaValid] = useState(true);
37714
37982
  const [editorErrors, setEditorErrors] = useState([]);
37983
+ const [rulesErrors, setRulesErrors] = useState([]);
37715
37984
  const [errorResponseBody, setErrorResponseBody] = useState(null);
37716
37985
  const useResourceResult = useResource();
37717
37986
  const { globalStore } = useGlobalStore();
@@ -37727,11 +37996,20 @@ const useYamlForm = ({
37727
37996
  const formSF = useForm$3({
37728
37997
  form: formAnt
37729
37998
  });
37730
- const { form } = formSF;
37999
+ const { form: form2 } = formSF;
37731
38000
  const { fold: fold2 } = useK8sYamlEditor();
37732
38001
  const useFormCoreResult = useForm$2({
37733
38002
  onMutationSuccess: onMutationSuccessProp ? onMutationSuccessProp : void 0,
37734
- onMutationError,
38003
+ onMutationError: (error, ...restParams) => {
38004
+ var _a2;
38005
+ const response = error.response;
38006
+ if (response && !(response == null ? void 0 : response.bodyUsed)) {
38007
+ (_a2 = response.json) == null ? void 0 : _a2.call(response).then((body) => {
38008
+ setErrorResponseBody(body);
38009
+ });
38010
+ }
38011
+ onMutationError == null ? void 0 : onMutationError(error, ...restParams);
38012
+ },
37735
38013
  redirect,
37736
38014
  action: actionFromProps,
37737
38015
  resource,
@@ -37757,30 +38035,24 @@ const useYamlForm = ({
37757
38035
  const { formLoading, onFinish, queryResult } = useFormCoreResult;
37758
38036
  const { warnWhenUnsavedChanges: warnWhenUnsavedChangesRefine, setWarnWhen } = useWarnAboutChange();
37759
38037
  const warnWhenUnsavedChanges = warnWhenUnsavedChangesProp ?? warnWhenUnsavedChangesRefine;
38038
+ const action = useMemo(
38039
+ () => actionFromProps || useResourceResult.action,
38040
+ [actionFromProps, useResourceResult.action]
38041
+ );
37760
38042
  const initialValues = useMemo(() => {
37761
38043
  var _a2;
37762
- const initialValues2 = (((_a2 = queryResult == null ? void 0 : queryResult.data) == null ? void 0 : _a2.data) ? globalStore == null ? void 0 : globalStore.restoreItem(queryResult.data.data) : initialValuesForCreate) || {};
38044
+ const initialValues2 = (action === "edit" && ((_a2 = queryResult == null ? void 0 : queryResult.data) == null ? void 0 : _a2.data) ? initialValuesForEdit || (globalStore == null ? void 0 : globalStore.restoreItem(queryResult.data.data)) : initialValuesForCreate) || {};
37763
38045
  if (initialValues2) {
37764
38046
  pruneBeforeEdit(initialValues2);
37765
38047
  }
37766
38048
  return (transformInitValues == null ? void 0 : transformInitValues(initialValues2)) || initialValues2;
37767
38049
  }, [queryResult, globalStore, initialValuesForCreate, transformInitValues]);
37768
- const action = useMemo(
37769
- () => actionFromProps || useResourceResult.action,
37770
- [actionFromProps, useResourceResult.action]
37771
- );
37772
- React__default.useEffect(() => {
37773
- var _a2, _b;
37774
- const response = (_a2 = useFormCoreResult.mutationResult.error) == null ? void 0 : _a2.response;
37775
- if (response && !(response == null ? void 0 : response.bodyUsed)) {
37776
- (_b = response.json) == null ? void 0 : _b.call(response).then((body) => {
37777
- setErrorResponseBody(body);
37778
- });
37779
- }
37780
- }, [useFormCoreResult.mutationResult]);
38050
+ const finalErrors = useMemo(() => {
38051
+ return uniq([...editorErrors, ...rulesErrors]);
38052
+ }, [editorErrors, rulesErrors]);
37781
38053
  const onKeyUp = (event2) => {
37782
38054
  if (submitOnEnter && event2.key === "Enter") {
37783
- form.submit();
38055
+ form2.submit();
37784
38056
  }
37785
38057
  };
37786
38058
  const onValuesChange = (changeValues) => {
@@ -37789,14 +38061,33 @@ const useYamlForm = ({
37789
38061
  }
37790
38062
  return changeValues;
37791
38063
  };
38064
+ const validateYaml = (yamlValue) => {
38065
+ const errorMap = {};
38066
+ if (rules && isYamlValid && isSchemaValid) {
38067
+ const formValue = yaml$1.load(yamlValue || "");
38068
+ rules.forEach((rule2) => {
38069
+ const { path: path2, validators } = rule2;
38070
+ const value2 = get$3(formValue, path2);
38071
+ for (const validator of validators || []) {
38072
+ const { isValid, errorMsg } = validator(value2, formValue);
38073
+ if (!isValid) {
38074
+ errorMap[path2.join(".")] = `${errorMsg}(${path2.join(".")})`;
38075
+ break;
38076
+ }
38077
+ }
38078
+ });
38079
+ }
38080
+ setRulesErrors(uniq(Object.values(errorMap)));
38081
+ return errorMap;
38082
+ };
37792
38083
  const saveButtonProps = useMemo(
37793
38084
  () => ({
37794
38085
  loading: formLoading,
37795
38086
  onClick: () => {
37796
- form.submit();
38087
+ form2.submit();
37797
38088
  }
37798
38089
  }),
37799
- [formLoading, form]
38090
+ [formLoading, form2]
37800
38091
  );
37801
38092
  const schemas = useMemo(() => {
37802
38093
  return schema ? [schema] : [];
@@ -37805,10 +38096,10 @@ const useYamlForm = ({
37805
38096
  var _a2;
37806
38097
  return {
37807
38098
  ref: editor,
37808
- defaultValue: schema && (editorOptions == null ? void 0 : editorOptions.isGenerateAnnotations) ? generateYamlBySchema(initialValues || {}, schema) : yaml.dump(initialValues),
38099
+ defaultValue: schema && (editorOptions == null ? void 0 : editorOptions.isGenerateAnnotations) ? generateYamlBySchema(initialValues || {}, schema) : yaml$1.dump(initialValues),
37809
38100
  schemas,
37810
38101
  id: ((_a2 = useResourceResult.resource) == null ? void 0 : _a2.name) || "",
37811
- errorMsgs: editorErrors,
38102
+ errorMsgs: finalErrors,
37812
38103
  onValidate(yamlValid, schemaValid) {
37813
38104
  setIsYamlValid(yamlValid);
37814
38105
  setIsSchemaValid(schemaValid);
@@ -37818,7 +38109,7 @@ const useYamlForm = ({
37818
38109
  },
37819
38110
  onEditorCreate(editorInstance) {
37820
38111
  var _a3, _b;
37821
- const editorValue = yaml.dump(initialValues);
38112
+ const editorValue = yaml$1.dump(initialValues);
37822
38113
  (_a3 = editor.current) == null ? void 0 : _a3.setEditorValue(editorValue);
37823
38114
  (_b = editor.current) == null ? void 0 : _b.setValue(editorValue);
37824
38115
  if (action === "edit") {
@@ -37826,13 +38117,13 @@ const useYamlForm = ({
37826
38117
  }
37827
38118
  }
37828
38119
  };
37829
- }, [schema, editorOptions == null ? void 0 : editorOptions.isGenerateAnnotations, initialValues, schemas, (_a = useResourceResult.resource) == null ? void 0 : _a.name, editorErrors, action, fold2]);
38120
+ }, [schema, editorOptions == null ? void 0 : editorOptions.isGenerateAnnotations, initialValues, schemas, (_a = useResourceResult.resource) == null ? void 0 : _a.name, editorErrors, action, finalErrors, fold2]);
37830
38121
  return {
37831
38122
  form: formSF.form,
37832
38123
  formProps: {
37833
38124
  ...formSF.formProps,
37834
38125
  onFinish: (values) => {
37835
- var _a2;
38126
+ var _a2, _b;
37836
38127
  const errors = [
37837
38128
  !isYamlValid ? t2("dovetail.yaml_format_wrong") : "",
37838
38129
  !isSchemaValid ? t2("dovetail.yaml_value_wrong") : ""
@@ -37841,8 +38132,13 @@ const useYamlForm = ({
37841
38132
  setEditorErrors(errors);
37842
38133
  return;
37843
38134
  }
38135
+ const rulesErrors2 = validateYaml(((_a2 = editor.current) == null ? void 0 : _a2.getEditorValue()) || "");
38136
+ if (Object.keys(rulesErrors2).length) {
38137
+ setRulesErrors(Object.values(rulesErrors2));
38138
+ return;
38139
+ }
37844
38140
  try {
37845
- const objectValues = editor.current ? yaml.load(((_a2 = editor.current) == null ? void 0 : _a2.getEditorValue()) || "") : values;
38141
+ const objectValues = editor.current ? yaml$1.load(((_b = editor.current) == null ? void 0 : _b.getEditorValue()) || "") : values;
37846
38142
  const finalValues = (transformApplyValues == null ? void 0 : transformApplyValues(objectValues)) || objectValues;
37847
38143
  return onFinish(finalValues);
37848
38144
  } catch (error) {
@@ -37872,19 +38168,19 @@ const useYamlForm = ({
37872
38168
  switchEditor() {
37873
38169
  var _a2, _b;
37874
38170
  if (enableEditor && ((_a2 = editor.current) == null ? void 0 : _a2.getEditorValue())) {
37875
- const value2 = yaml.load((_b = editor.current) == null ? void 0 : _b.getEditorValue());
37876
- form == null ? void 0 : form.setFieldsValue(value2);
38171
+ const value2 = yaml$1.load((_b = editor.current) == null ? void 0 : _b.getEditorValue());
38172
+ form2 == null ? void 0 : form2.setFieldsValue(value2);
37877
38173
  }
37878
38174
  setEnableEditor(!enableEditor);
37879
38175
  },
37880
38176
  onFinish: async (values) => {
37881
38177
  var _a2;
37882
- const finalValues = enableEditor ? yaml.load(((_a2 = editor.current) == null ? void 0 : _a2.getEditorValue()) || "") : values ?? formSF.form.getFieldsValue(true);
38178
+ const finalValues = enableEditor ? yaml$1.load(((_a2 = editor.current) == null ? void 0 : _a2.getEditorValue()) || "") : values ?? formSF.form.getFieldsValue(true);
37883
38179
  return await onFinish(finalValues);
37884
38180
  }
37885
38181
  };
37886
38182
  };
37887
- const YamlForm_1u3sf7g = "";
38183
+ const YamlForm_1lo4xcc = "";
37888
38184
  const FormStyle = "f1aiwt90";
37889
38185
  const EditorStyle = "e1guqlj2";
37890
38186
  var SchemaStrategy = /* @__PURE__ */ ((SchemaStrategy2) => {
@@ -37903,7 +38199,8 @@ function YamlForm(props) {
37903
38199
  transformInitValues,
37904
38200
  transformApplyValues,
37905
38201
  onSaveButtonPropsChange,
37906
- onErrorsChange
38202
+ onErrorsChange,
38203
+ rules
37907
38204
  } = props;
37908
38205
  const {
37909
38206
  action: actionFromResource,
@@ -37927,7 +38224,9 @@ function YamlForm(props) {
37927
38224
  /* None */
37928
38225
  },
37929
38226
  liveMode: "off",
37930
- initialValuesForCreate: props.initialValues ?? BASE_INIT_VALUE,
38227
+ initialValuesForCreate: props.initialValuesForCreate ?? BASE_INIT_VALUE,
38228
+ initialValuesForEdit: props.initialValuesForEdit,
38229
+ rules,
37931
38230
  successNotification(data2) {
37932
38231
  var _a;
37933
38232
  return {
@@ -38022,12 +38321,39 @@ function YamlForm(props) {
38022
38321
  })
38023
38322
  });
38024
38323
  }
38025
- const FormModal_bppzr9 = "";
38324
+ const FormModal_64brhp = "";
38026
38325
  const FormDescStyle = "f1nltbcu";
38027
- const MaxWidthModalStyle = "m1qgcca6";
38028
- const ErrorStyle = "e1tl3wq2";
38326
+ const ErrorStyle = "e1qgcca6";
38327
+ const TitleWrapperStyle = "t1tl3wq2";
38328
+ function ConfirmModal({
38329
+ onOk
38330
+ }) {
38331
+ const {
38332
+ t: t2
38333
+ } = useTranslation();
38334
+ const popModal = usePopModal();
38335
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Modal, {
38336
+ className: SmallModalStyle,
38337
+ width: "414px",
38338
+ title: t2("dovetail.edit_form"),
38339
+ okButtonProps: {
38340
+ type: "primary",
38341
+ className: WarningButtonStyle
38342
+ },
38343
+ onOk: () => {
38344
+ onOk == null ? void 0 : onOk();
38345
+ popModal();
38346
+ },
38347
+ onCancel: popModal,
38348
+ destroyOnClose: true,
38349
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
38350
+ className: Typo.Label.l2_regular,
38351
+ children: t2("dovetail.exit_yaml_tip")
38352
+ })
38353
+ });
38354
+ }
38029
38355
  function FormModal(props) {
38030
- var _a, _b, _c, _d, _e;
38356
+ var _a, _b, _c, _d, _e, _f;
38031
38357
  const {
38032
38358
  resource: resourceFromProps,
38033
38359
  id,
@@ -38042,47 +38368,60 @@ function FormModal(props) {
38042
38368
  const configs = useContext(ConfigsContext);
38043
38369
  const [yamlSaveButtonProps, setYamlSaveButtonProps] = useState({});
38044
38370
  const [isError, setIsError] = useState(false);
38371
+ const [mode, setMode] = useState(
38372
+ "form"
38373
+ /* Form */
38374
+ );
38375
+ const isYamlMode = mode === "yaml";
38045
38376
  const popModal = usePopModal();
38377
+ const pushModal = usePushModal();
38046
38378
  const config = configs[resourceFromProps || (resource == null ? void 0 : resource.name) || ""];
38379
+ const isDisabledChangeMode = (_a = config.formConfig) == null ? void 0 : _a.isDisabledChangeMode;
38047
38380
  const okText = i18n2.t(id ? "dovetail.save" : "dovetail.create");
38048
38381
  const action = id ? "edit" : "create";
38382
+ const fieldsConfig = useFieldsConfig(config, id);
38383
+ const refineFormResult = useRefineForm({
38384
+ config,
38385
+ id,
38386
+ refineProps: {
38387
+ onMutationSuccess: () => {
38388
+ popModal();
38389
+ },
38390
+ redirect: false,
38391
+ ...(_b = config.formConfig) == null ? void 0 : _b.refineCoreProps
38392
+ }
38393
+ });
38049
38394
  const yamlFormProps = useMemo(() => {
38050
38395
  var _a2, _b2, _c2;
38051
38396
  return {
38052
38397
  ...props.formProps,
38053
38398
  transformInitValues: (_a2 = config.formConfig) == null ? void 0 : _a2.transformInitValues,
38054
38399
  transformApplyValues: (_b2 = config.formConfig) == null ? void 0 : _b2.transformApplyValues,
38055
- initialValues: ((_c2 = props.formProps) == null ? void 0 : _c2.initialValues) || (config == null ? void 0 : config.initValue),
38400
+ initialValuesForCreate: isYamlMode ? refineFormResult.formResult.getValues() : ((_c2 = props.formProps) == null ? void 0 : _c2.initialValuesForCreate) || (config == null ? void 0 : config.initValue),
38401
+ initialValuesForEdit: isYamlMode ? refineFormResult.formResult.getValues() : void 0,
38056
38402
  id,
38057
38403
  action,
38058
38404
  isShowLayout: false,
38059
38405
  useFormProps: {
38060
38406
  redirect: false
38061
38407
  },
38408
+ rules: isYamlMode ? fieldsConfig == null ? void 0 : fieldsConfig.map((config2) => ({
38409
+ path: config2.path,
38410
+ validators: config2.validators
38411
+ })) : void 0,
38062
38412
  onSaveButtonPropsChange: setYamlSaveButtonProps,
38063
38413
  onErrorsChange(errors) {
38064
38414
  setIsError(!!errors.length);
38065
38415
  },
38066
38416
  onFinish: popModal
38067
38417
  };
38068
- }, [props.formProps, (_a = config.formConfig) == null ? void 0 : _a.transformInitValues, (_b = config.formConfig) == null ? void 0 : _b.transformApplyValues, config == null ? void 0 : config.initValue, id, action, popModal]);
38069
- const refineFormResult = useRefineForm({
38070
- config,
38071
- id,
38072
- refineProps: {
38073
- onMutationSuccess: () => {
38074
- popModal();
38075
- },
38076
- redirect: false,
38077
- ...(_c = config.formConfig) == null ? void 0 : _c.refineCoreProps
38078
- }
38079
- });
38080
- const isYamlForm = !((_d = config.formConfig) == null ? void 0 : _d.fields);
38418
+ }, [props.formProps, (_c = config.formConfig) == null ? void 0 : _c.transformInitValues, (_d = config.formConfig) == null ? void 0 : _d.transformApplyValues, config == null ? void 0 : config.initValue, id, action, refineFormResult.formResult, isYamlMode, fieldsConfig, popModal]);
38419
+ const isYamlForm = !((_e = config.formConfig) == null ? void 0 : _e.fields);
38081
38420
  const formEle = (() => {
38082
38421
  if (renderForm) {
38083
38422
  return renderForm(yamlFormProps);
38084
38423
  }
38085
- if (isYamlForm)
38424
+ if (isYamlForm || isYamlMode)
38086
38425
  return /* @__PURE__ */ jsxRuntimeExports.jsx(YamlForm, {
38087
38426
  ...yamlFormProps
38088
38427
  });
@@ -38093,7 +38432,7 @@ function FormModal(props) {
38093
38432
  resourceId: id
38094
38433
  });
38095
38434
  })();
38096
- const saveButtonProps = isYamlForm ? yamlSaveButtonProps : refineFormResult.formResult.saveButtonProps;
38435
+ const saveButtonProps = isYamlForm || isYamlMode ? yamlSaveButtonProps : refineFormResult.formResult.saveButtonProps;
38097
38436
  const onCancel = useCallback(() => {
38098
38437
  popModal();
38099
38438
  }, [popModal]);
@@ -38102,6 +38441,23 @@ function FormModal(props) {
38102
38441
  setIsError(false);
38103
38442
  (_a2 = saveButtonProps.onClick) == null ? void 0 : _a2.call(saveButtonProps, e2);
38104
38443
  }, [saveButtonProps]);
38444
+ const onChangeMode = useCallback((value2) => {
38445
+ if (value2 === "form") {
38446
+ pushModal({
38447
+ component: ConfirmModal,
38448
+ props: {
38449
+ onOk: () => {
38450
+ setMode(
38451
+ "form"
38452
+ /* Form */
38453
+ );
38454
+ }
38455
+ }
38456
+ });
38457
+ } else {
38458
+ setMode(value2);
38459
+ }
38460
+ }, [pushModal]);
38105
38461
  const errorText = (() => {
38106
38462
  if (!!refineFormResult.responseErrorMsg || isError) {
38107
38463
  return i18n2.t(id ? "dovetail.save_failed" : "dovetail.create_failed");
@@ -38128,16 +38484,36 @@ function FormModal(props) {
38128
38484
  return "";
38129
38485
  }, [action, config.formConfig]);
38130
38486
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(Modal, {
38131
- className: cx_default(FullscreenModalStyle, isYamlForm ? "" : MaxWidthModalStyle),
38487
+ className: cx_default(FullscreenModalStyle),
38488
+ style: {
38489
+ "--max-modal-width": isYamlForm || !isDisabledChangeMode ? "1024px" : "648px"
38490
+ },
38132
38491
  width: "calc(100vw - 16px)",
38133
- title,
38492
+ title: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
38493
+ className: TitleWrapperStyle,
38494
+ children: [/* @__PURE__ */ jsxRuntimeExports.jsx("span", {
38495
+ children: title
38496
+ }), !(isYamlForm || isDisabledChangeMode) ? /* @__PURE__ */ jsxRuntimeExports.jsx(SegmentControl, {
38497
+ value: mode,
38498
+ options: [{
38499
+ value: "form",
38500
+ label: i18n2.t("dovetail.form")
38501
+ }, {
38502
+ value: "yaml",
38503
+ label: i18n2.t("dovetail.yaml")
38504
+ }],
38505
+ onChange: (val) => {
38506
+ onChangeMode(val);
38507
+ }
38508
+ }) : null]
38509
+ }),
38134
38510
  error: errorText ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
38135
38511
  className: ErrorStyle,
38136
38512
  children: [/* @__PURE__ */ jsxRuntimeExports.jsx(ExclamationErrorCircleFill16RedIcon, {}), " ", errorText]
38137
38513
  }) : "",
38138
38514
  okButtonProps: {
38139
38515
  ...saveButtonProps,
38140
- children: (_e = config.formConfig) == null ? void 0 : _e.saveButtonText,
38516
+ children: (_f = config.formConfig) == null ? void 0 : _f.saveButtonText,
38141
38517
  onClick: onOk
38142
38518
  },
38143
38519
  closeIcon: /* @__PURE__ */ jsxRuntimeExports.jsx(CloseCircleFilled$1, {}),
@@ -38151,7 +38527,7 @@ function FormModal(props) {
38151
38527
  }) : void 0, formEle]
38152
38528
  });
38153
38529
  }
38154
- const RefineFormPage_aqoiay = "";
38530
+ const RefineFormPage_1v0fhor = "";
38155
38531
  const RefineFormPage = (props) => {
38156
38532
  const {
38157
38533
  config
@@ -38277,7 +38653,7 @@ function CronJobDropdown(props) {
38277
38653
  }
38278
38654
  ) : null });
38279
38655
  }
38280
- const index_1wzdp7m = "";
38656
+ const index_sazpyf = "";
38281
38657
  const WrapperStyle = "wfg6u6g";
38282
38658
  const InnerBar = ({
38283
38659
  usage: usage2,
@@ -38352,7 +38728,7 @@ const DeleteButton = () => {
38352
38728
  visible ? /* @__PURE__ */ jsxRuntimeExports.jsx(Modal, { ...modalProps }) : null
38353
38729
  ] });
38354
38730
  };
38355
- const index_1wt5px2 = "";
38731
+ const index_1tehui8 = "";
38356
38732
  const MenuStyle = "mdppgn0";
38357
38733
  const Menu = () => {
38358
38734
  const {
@@ -38377,7 +38753,7 @@ const Menu = () => {
38377
38753
  children: renderMenuItems(menuItems)
38378
38754
  });
38379
38755
  };
38380
- const index_1qxsm42 = "";
38756
+ const index_1po979g = "";
38381
38757
  const HeaderStyle = "h16z07g";
38382
38758
  const ContentLayoutStyle = "c1i80kj";
38383
38759
  const SiderStyle = "s18sezq1";
@@ -38533,7 +38909,7 @@ const IngressRulesComponent = ({ ingress }) => {
38533
38909
  });
38534
38910
  return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: result });
38535
38911
  };
38536
- const columns_1h38dp = "";
38912
+ const columns_irlsbh = "";
38537
38913
  const DashedTitleStyle = "dh5j833";
38538
38914
  const ServiceClusterTooltipStyle = "s1fcgan";
38539
38915
  const NameLink = (props) => {
@@ -39164,13 +39540,18 @@ const Dovetail = (props) => {
39164
39540
  const {
39165
39541
  resourcesConfig,
39166
39542
  urlPrefix = "",
39543
+ schemaUrlPrefix,
39167
39544
  Layout: Layout2,
39168
39545
  history,
39169
39546
  globalStore,
39170
39547
  accessControlProvider,
39171
- routerProvider: customRouterProvider
39548
+ routerProvider: customRouterProvider,
39549
+ antdGetPopupContainer
39172
39550
  } = props;
39173
39551
  const msg = useMessage();
39552
+ useEffect(() => {
39553
+ msg.config({ getContainer: antdGetPopupContainer });
39554
+ }, [msg, antdGetPopupContainer]);
39174
39555
  const notCustomResources = useMemo(() => {
39175
39556
  return resourcesConfig.filter((c2) => !c2.isCustom);
39176
39557
  }, [resourcesConfig]);
@@ -39202,37 +39583,48 @@ const Dovetail = (props) => {
39202
39583
  };
39203
39584
  return provider;
39204
39585
  }, [msg]);
39205
- return /* @__PURE__ */ jsxRuntimeExports.jsx(Router, { history, children: /* @__PURE__ */ jsxRuntimeExports.jsx(KitStoreProvider, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(GlobalStoreContext.Provider, { value: { globalStore }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ConfigsContext.Provider, { value: keyBy(resourcesConfig, "name"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
39206
- Refine,
39586
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Router, { history, children: /* @__PURE__ */ jsxRuntimeExports.jsx(KitStoreProvider, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(ConfigsContext.Provider, { value: keyBy(resourcesConfig, "name"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(ConstantsContext.Provider, { value: { schemaUrlPrefix }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
39587
+ ConfigProvider,
39207
39588
  {
39208
- dataProvider: {
39209
- default: dataProvider(globalStore)
39589
+ antd5Configs: {
39590
+ getPopupContainer: antdGetPopupContainer || (() => document.body)
39210
39591
  },
39211
- routerProvider: customRouterProvider || routerProvider,
39212
- liveProvider: liveProvider(globalStore),
39213
- notificationProvider,
39214
- options: {
39215
- warnWhenUnsavedChanges: true,
39216
- liveMode: "auto",
39217
- disableTelemetry: true
39592
+ antd4Configs: {
39593
+ getPopupContainer: antdGetPopupContainer || (() => document.body)
39218
39594
  },
39219
- accessControlProvider,
39220
- resources: resourcesConfig.map((c2) => {
39221
- return {
39222
- name: c2.name,
39223
- meta: {
39224
- resourceBasePath: c2.basePath,
39225
- kind: c2.kind,
39226
- parent: c2.parent,
39227
- label: `${c2.kind}s`
39595
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(GlobalStoreContext.Provider, { value: { globalStore }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
39596
+ Refine,
39597
+ {
39598
+ dataProvider: {
39599
+ default: dataProvider(globalStore)
39228
39600
  },
39229
- list: `${urlPrefix}/${c2.name}`,
39230
- show: `${urlPrefix}/${c2.name}/show`,
39231
- create: `${urlPrefix}/${c2.name}/create`,
39232
- edit: `${urlPrefix}/${c2.name}/edit`
39233
- };
39234
- }),
39235
- children: content
39601
+ routerProvider: customRouterProvider || routerProvider,
39602
+ liveProvider: liveProvider(globalStore),
39603
+ notificationProvider,
39604
+ options: {
39605
+ warnWhenUnsavedChanges: true,
39606
+ liveMode: "auto",
39607
+ disableTelemetry: true
39608
+ },
39609
+ accessControlProvider,
39610
+ resources: resourcesConfig.map((c2) => {
39611
+ return {
39612
+ name: c2.name,
39613
+ meta: {
39614
+ resourceBasePath: c2.basePath,
39615
+ kind: c2.kind,
39616
+ parent: c2.parent,
39617
+ label: `${c2.kind}s`
39618
+ },
39619
+ list: `${urlPrefix}/${c2.name}`,
39620
+ show: `${urlPrefix}/${c2.name}/show`,
39621
+ create: `${urlPrefix}/${c2.name}/create`,
39622
+ edit: `${urlPrefix}/${c2.name}/edit`
39623
+ };
39624
+ }),
39625
+ children: content
39626
+ }
39627
+ ) })
39236
39628
  }
39237
39629
  ) }) }) }) });
39238
39630
  };
@@ -39381,7 +39773,7 @@ const relationPlugin = new RelationPlugin();
39381
39773
  const ProviderPlugins = [relationPlugin, modelPlugin];
39382
39774
  const dovetailRefineI18n = i18n;
39383
39775
  export {
39384
- rfc1035LabelRules as $,
39776
+ NamespaceSelectWidget as $,
39385
39777
  AgeColumnRenderer as A,
39386
39778
  PVCStorageColumnRenderer as B,
39387
39779
  CommonSorter as C,
@@ -39394,200 +39786,201 @@ export {
39394
39786
  ColumnKeys as J,
39395
39787
  addDefaultRenderToColumns as K,
39396
39788
  useEagleTable as L,
39397
- ModalStyle as M,
39789
+ useDownloadYAML as M,
39398
39790
  NameColumnRenderer as N,
39399
- useDownloadYAML as O,
39791
+ useEdit as O,
39400
39792
  PlainTextNameColumnRenderer as P,
39401
- useEdit as Q,
39793
+ useGlobalStore as Q,
39402
39794
  ReplicasColumnRenderer as R,
39403
39795
  StateDisplayColumnRenderer as S,
39404
- useGlobalStore as T,
39405
- useOpenForm as U,
39406
- index as V,
39796
+ useOpenForm as T,
39797
+ index as U,
39798
+ Breadcrumb as V,
39407
39799
  WorkloadImageColumnRenderer as W,
39408
- Breadcrumb as X,
39409
- NameInputWidget as Y,
39410
- dnsSubDomainRules as Z,
39411
- rfc1123LabelRules as _,
39800
+ NameInputWidget as X,
39801
+ dnsSubDomainRules as Y,
39802
+ rfc1123LabelRules as Z,
39803
+ rfc1035LabelRules as _,
39412
39804
  useApiGroupSchema as a,
39413
- PVAccessModeField as a$,
39414
- NamespaceSelectWidget as a0,
39415
- namespaceRules as a1,
39416
- KeyValueListWidget as a2,
39417
- MetadataForm as a3,
39418
- PageShow as a4,
39419
- Time as a5,
39420
- ConditionsTable as a6,
39421
- FormErrorAlert as a7,
39422
- PodContainersTable as a8,
39423
- WorkloadDropdown as a9,
39424
- PodsField as aA,
39425
- JobsField as aB,
39426
- DataField as aC,
39427
- SecretDataField as aD,
39428
- StartTimeField as aE,
39429
- ServiceTypeField as aF,
39430
- ClusterIpField as aG,
39431
- SessionAffinityField as aH,
39432
- ServicePodsField as aI,
39433
- IngressRulesTableTabField as aJ,
39434
- EventsTableTabField as aK,
39435
- NamespaceField as aL,
39436
- AgeField as aM,
39437
- LabelsField as aN,
39438
- AnnotationsField as aO,
39439
- ServiceInnerClusterAccessField as aP,
39440
- ServiceOutClusterAccessField as aQ,
39441
- PodSelectorField as aR,
39442
- PortsTableField as aS,
39443
- DurationField as aT,
39444
- StorageClassProvisionerField as aU,
39445
- StorageClassPvField as aV,
39446
- PVCapacityField as aW,
39447
- PVCStorageField as aX,
39448
- PVStorageClassField as aY,
39449
- PVPhaseField as aZ,
39450
- PVVolumeModeField as a_,
39451
- ReplicasDropdown as aa,
39452
- PodDropdown as ab,
39453
- CreateButton as ac,
39454
- ImageNames as ad,
39455
- ResourceList as ae,
39456
- ResourceShow as af,
39457
- ResourceForm as ag,
39458
- ResourceCRUD as ah,
39459
- WorkloadPodsTable as ai,
39460
- CronJobDropdown as aj,
39461
- K8sDropdown as ak,
39462
- ResourceUsageBar as al,
39463
- WorkloadReplicasForm as am,
39464
- WorkloadReplicas as an,
39465
- CronjobJobsTable as ao,
39466
- KeyValue as ap,
39467
- KeyValueAnnotation as aq,
39468
- KeyValueSecret as ar,
39469
- Separator as as,
39470
- YamlEditorComponent as at,
39471
- DeleteButton as au,
39472
- Layout as av,
39473
- AreaType as aw,
39474
- ImageField as ax,
39475
- ReplicaField as ay,
39476
- ConditionsField as az,
39805
+ PVVolumeModeField as a$,
39806
+ namespaceRules as a0,
39807
+ KeyValueListWidget as a1,
39808
+ MetadataForm as a2,
39809
+ PageShow as a3,
39810
+ Time as a4,
39811
+ ConditionsTable as a5,
39812
+ FormErrorAlert as a6,
39813
+ PodContainersTable as a7,
39814
+ WorkloadDropdown as a8,
39815
+ ReplicasDropdown as a9,
39816
+ ConditionsField as aA,
39817
+ PodsField as aB,
39818
+ JobsField as aC,
39819
+ DataField as aD,
39820
+ SecretDataField as aE,
39821
+ StartTimeField as aF,
39822
+ ServiceTypeField as aG,
39823
+ ClusterIpField as aH,
39824
+ SessionAffinityField as aI,
39825
+ ServicePodsField as aJ,
39826
+ IngressRulesTableTabField as aK,
39827
+ EventsTableTabField as aL,
39828
+ NamespaceField as aM,
39829
+ AgeField as aN,
39830
+ LabelsField as aO,
39831
+ AnnotationsField as aP,
39832
+ ServiceInnerClusterAccessField as aQ,
39833
+ ServiceOutClusterAccessField as aR,
39834
+ PodSelectorField as aS,
39835
+ PortsTableField as aT,
39836
+ DurationField as aU,
39837
+ StorageClassProvisionerField as aV,
39838
+ StorageClassPvField as aW,
39839
+ PVCapacityField as aX,
39840
+ PVCStorageField as aY,
39841
+ PVStorageClassField as aZ,
39842
+ PVPhaseField as a_,
39843
+ PodDropdown as aa,
39844
+ CreateButton as ab,
39845
+ ImageNames as ac,
39846
+ ResourceList as ad,
39847
+ ResourceShow as ae,
39848
+ ResourceForm as af,
39849
+ ResourceCRUD as ag,
39850
+ WorkloadPodsTable as ah,
39851
+ CronJobDropdown as ai,
39852
+ K8sDropdown as aj,
39853
+ EditLabelDropdownMenuItem as ak,
39854
+ EditAnnotationDropdownMenuItem as al,
39855
+ ResourceUsageBar as am,
39856
+ WorkloadReplicasForm as an,
39857
+ WorkloadReplicas as ao,
39858
+ CronjobJobsTable as ap,
39859
+ KeyValue as aq,
39860
+ KeyValueAnnotation as ar,
39861
+ KeyValueSecret as as,
39862
+ Separator as at,
39863
+ YamlEditorComponent as au,
39864
+ DeleteButton as av,
39865
+ Layout as aw,
39866
+ AreaType as ax,
39867
+ ImageField as ay,
39868
+ ReplicaField as az,
39477
39869
  useSchema as b,
39478
- INGRESS_INIT_VALUE as b$,
39479
- EventsTab as b0,
39480
- PodLogTab as b1,
39481
- BasicGroup as b2,
39482
- PodsGroup as b3,
39483
- PodContainersGroup as b4,
39484
- ServicePodsGroup as b5,
39485
- ConditionsGroup as b6,
39486
- SecretDataGroup as b7,
39487
- JobsGroup as b8,
39488
- IngressRulesGroup as b9,
39489
- useRefineForm as bA,
39490
- ServiceInClusterAccessComponent as bB,
39491
- ServiceOutClusterAccessComponent as bC,
39492
- Tags as bD,
39493
- TextTags as bE,
39494
- PodLog as bF,
39495
- NetworkPolicyRulesViewer as bG,
39496
- PVPhaseDisplay as bH,
39497
- PVVolumeModeDisplay as bI,
39498
- Tabs as bJ,
39499
- ResourceSelect as bK,
39500
- SocketStatus as bL,
39501
- Shell as bM,
39502
- PodShellModal as bN,
39503
- PodShell as bO,
39504
- BASE_INIT_VALUE as bP,
39505
- DEPLOYMENT_INIT_VALUE as bQ,
39506
- CRONJOB_INIT_VALUE as bR,
39507
- DAEMONSET_INIT_VALUE as bS,
39508
- JOB_INIT_VALUE as bT,
39509
- STATEFULSET_INIT_VALUE as bU,
39510
- POD_INIT_VALUE as bV,
39511
- SERVICE_CLUSTER_IP_INIT_VALUE as bW,
39512
- SERVICE_NODE_PORT_INIT_VALUE as bX,
39513
- SERVICE_LOAD_BALANCER_INIT_VALUE as bY,
39514
- SERVICE_EXTERNAL_NAME_INIT_VALUE as bZ,
39515
- SERVICE_HEADLESS_INIT_VALUE as b_,
39516
- PodSelectorGroup as ba,
39517
- PortsGroup as bb,
39518
- DataGroup as bc,
39519
- NetworkPolicyIngressRulesGroup as bd,
39520
- NetworkPolicyEgressRulesGroup as be,
39521
- StorageClassPvGroup as bf,
39522
- ShowGroupComponent as bg,
39523
- ShowContent as bh,
39524
- DeleteManyButton as bi,
39525
- ListPage as bj,
39526
- StateTagStyle as bk,
39527
- StateTag as bl,
39528
- DrawerShow as bm,
39529
- Menu as bn,
39530
- EditButton as bo,
39531
- ReferenceLink as bp,
39532
- ResourceLink as bq,
39533
- NS_STORE_KEY as br,
39534
- ALL_NS as bs,
39535
- useNamespacesFilter as bt,
39536
- NamespacesFilter as bu,
39537
- FormModal as bv,
39538
- RefineFormContent as bw,
39539
- RefineFormPage as bx,
39540
- SchemaStrategy as by,
39541
- YamlForm as bz,
39870
+ SERVICE_HEADLESS_INIT_VALUE as b$,
39871
+ PVAccessModeField as b0,
39872
+ EventsTab as b1,
39873
+ PodLogTab as b2,
39874
+ BasicGroup as b3,
39875
+ PodsGroup as b4,
39876
+ PodContainersGroup as b5,
39877
+ ServicePodsGroup as b6,
39878
+ ConditionsGroup as b7,
39879
+ SecretDataGroup as b8,
39880
+ JobsGroup as b9,
39881
+ YamlForm as bA,
39882
+ useRefineForm as bB,
39883
+ ServiceInClusterAccessComponent as bC,
39884
+ ServiceOutClusterAccessComponent as bD,
39885
+ Tags as bE,
39886
+ TextTags as bF,
39887
+ PodLog as bG,
39888
+ NetworkPolicyRulesViewer as bH,
39889
+ PVPhaseDisplay as bI,
39890
+ PVVolumeModeDisplay as bJ,
39891
+ Tabs as bK,
39892
+ ResourceSelect as bL,
39893
+ SocketStatus as bM,
39894
+ Shell as bN,
39895
+ PodShellModal as bO,
39896
+ PodShell as bP,
39897
+ BASE_INIT_VALUE as bQ,
39898
+ DEPLOYMENT_INIT_VALUE as bR,
39899
+ CRONJOB_INIT_VALUE as bS,
39900
+ DAEMONSET_INIT_VALUE as bT,
39901
+ JOB_INIT_VALUE as bU,
39902
+ STATEFULSET_INIT_VALUE as bV,
39903
+ POD_INIT_VALUE as bW,
39904
+ SERVICE_CLUSTER_IP_INIT_VALUE as bX,
39905
+ SERVICE_NODE_PORT_INIT_VALUE as bY,
39906
+ SERVICE_LOAD_BALANCER_INIT_VALUE as bZ,
39907
+ SERVICE_EXTERNAL_NAME_INIT_VALUE as b_,
39908
+ IngressRulesGroup as ba,
39909
+ PodSelectorGroup as bb,
39910
+ PortsGroup as bc,
39911
+ DataGroup as bd,
39912
+ NetworkPolicyIngressRulesGroup as be,
39913
+ NetworkPolicyEgressRulesGroup as bf,
39914
+ StorageClassPvGroup as bg,
39915
+ ShowGroupComponent as bh,
39916
+ ShowContent as bi,
39917
+ DeleteManyButton as bj,
39918
+ ListPage as bk,
39919
+ StateTagStyle as bl,
39920
+ StateTag as bm,
39921
+ DrawerShow as bn,
39922
+ Menu as bo,
39923
+ EditButton as bp,
39924
+ ReferenceLink as bq,
39925
+ ResourceLink as br,
39926
+ NS_STORE_KEY as bs,
39927
+ ALL_NS as bt,
39928
+ useNamespacesFilter as bu,
39929
+ NamespacesFilter as bv,
39930
+ FormModal as bw,
39931
+ RefineFormContent as bx,
39932
+ RefineFormPage as by,
39933
+ SchemaStrategy as bz,
39542
39934
  useDeleteModal as c,
39543
- NETWORK_POLICY_INIT_VALUE as c0,
39544
- CONFIG_MAP_INIT_VALUE as c1,
39545
- SERVER_INSTANCE_INIT_VALUE as c2,
39546
- TIMESTAMP_LABEL as c3,
39547
- SECRET_OPAQUE_INIT_VALUE as c4,
39548
- SECRET_IMAGE_REPO_INIT_VALUE as c5,
39549
- SECRET_BASIC_AUTH_INIT_VALUE as c6,
39550
- SECRET_SSH_AUTH_INIT_VALUE as c7,
39551
- SECRET_TLS_INIT_VALUE as c8,
39552
- SECRET_CUSTOM_INIT_VALUE as c9,
39553
- NodeModel as cA,
39554
- StorageClassModel as cB,
39555
- PersistentVolumeModel as cC,
39556
- PersistentVolumeClaimModel as cD,
39557
- ProviderPlugins as cE,
39558
- ModelPlugin as cF,
39559
- modelPlugin as cG,
39560
- RelationPlugin as cH,
39561
- relationPlugin as cI,
39562
- generateValueFromSchema as cJ,
39563
- generateSchemaTypeValue as cK,
39564
- resolveRef as cL,
39565
- NODE_INIT_VALUE as ca,
39566
- STORAGE_CLASS_INIT_VALUE as cb,
39567
- WorkloadState as cc,
39568
- AccessControlAuth as cd,
39569
- Dovetail as ce,
39570
- RESOURCE_GROUP as cf,
39571
- FormType as cg,
39572
- ComponentContext as ch,
39573
- GlobalStoreContext as ci,
39574
- ConfigsContext as cj,
39575
- IngressModel as ck,
39576
- NetworkPolicyModel as cl,
39577
- JobModel as cm,
39578
- WorkloadModel as cn,
39579
- WorkloadBaseModel as co,
39580
- PodModel as cp,
39581
- PodMetricsModel as cq,
39582
- ResourceModel as cr,
39583
- CronJobModel as cs,
39584
- EventModel as ct,
39585
- DeploymentModel as cu,
39586
- DaemonSetModel as cv,
39587
- StatefulSetModel as cw,
39588
- ServiceTypeEnum as cx,
39589
- ServiceModel as cy,
39590
- NodeRole as cz,
39935
+ INGRESS_INIT_VALUE as c0,
39936
+ NETWORK_POLICY_INIT_VALUE as c1,
39937
+ CONFIG_MAP_INIT_VALUE as c2,
39938
+ SERVER_INSTANCE_INIT_VALUE as c3,
39939
+ REDEPLOY_TIMESTAMP_KEY as c4,
39940
+ SECRET_OPAQUE_INIT_VALUE as c5,
39941
+ SECRET_IMAGE_REPO_INIT_VALUE as c6,
39942
+ SECRET_BASIC_AUTH_INIT_VALUE as c7,
39943
+ SECRET_SSH_AUTH_INIT_VALUE as c8,
39944
+ SECRET_TLS_INIT_VALUE as c9,
39945
+ NodeRole as cA,
39946
+ NodeModel as cB,
39947
+ StorageClassModel as cC,
39948
+ PersistentVolumeModel as cD,
39949
+ PersistentVolumeClaimModel as cE,
39950
+ ProviderPlugins as cF,
39951
+ ModelPlugin as cG,
39952
+ modelPlugin as cH,
39953
+ RelationPlugin as cI,
39954
+ relationPlugin as cJ,
39955
+ generateValueFromSchema as cK,
39956
+ generateSchemaTypeValue as cL,
39957
+ resolveRef as cM,
39958
+ SECRET_CUSTOM_INIT_VALUE as ca,
39959
+ NODE_INIT_VALUE as cb,
39960
+ STORAGE_CLASS_INIT_VALUE as cc,
39961
+ WorkloadState as cd,
39962
+ AccessControlAuth as ce,
39963
+ Dovetail as cf,
39964
+ RESOURCE_GROUP as cg,
39965
+ FormType as ch,
39966
+ ComponentContext as ci,
39967
+ GlobalStoreContext as cj,
39968
+ ConfigsContext as ck,
39969
+ IngressModel as cl,
39970
+ NetworkPolicyModel as cm,
39971
+ JobModel as cn,
39972
+ WorkloadModel as co,
39973
+ WorkloadBaseModel as cp,
39974
+ PodModel as cq,
39975
+ PodMetricsModel as cr,
39976
+ ResourceModel as cs,
39977
+ CronJobModel as ct,
39978
+ EventModel as cu,
39979
+ DeploymentModel as cv,
39980
+ DaemonSetModel as cw,
39981
+ StatefulSetModel as cx,
39982
+ ServiceTypeEnum as cy,
39983
+ ServiceModel as cz,
39591
39984
  dovetailRefineI18n as d,
39592
39985
  NameSpaceColumnRenderer as e,
39593
39986
  WorkloadRestartsColumnRenderer as f,