@dovetail-v2/refine 0.0.61 → 0.0.63-pod-exec.0

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 (219) hide show
  1. package/dist/{MonacoYamlDiffEditor-0413ec6d.js → MonacoYamlDiffEditor-79a8df0a.js} +1 -1
  2. package/dist/{index-ff0b07db.js → index-f192f242.js} +12945 -3897
  3. package/dist/refine.js +136 -134
  4. package/dist/refine.umd.cjs +12890 -3842
  5. package/dist/style.css +229 -11
  6. package/lib/src/components/Form/FormModal.d.ts +1 -0
  7. package/lib/src/components/ModalContextProvider/index.d.ts +12 -0
  8. package/lib/src/components/NetworkPolicyRulesTable/NetworkPolicyRulesTable.d.ts +2 -1
  9. package/lib/src/components/PodDropdown/index.d.ts +9 -0
  10. package/lib/src/components/PodShellModal/index.d.ts +7 -0
  11. package/lib/src/components/ResourceSelect/index.d.ts +12 -0
  12. package/lib/src/components/YamlForm/index.d.ts +4 -0
  13. package/lib/src/components/index.d.ts +1 -0
  14. package/lib/src/hooks/useEagleForm.d.ts +2 -1
  15. package/lib/src/hooks/useModal.d.ts +0 -0
  16. package/lib/src/hooks/useNamespaceFilter.d.ts +5 -0
  17. package/lib/src/i18n.d.ts +1 -0
  18. package/lib/src/locales/en-US/index.d.ts +1 -0
  19. package/lib/src/model/cronjob-model.d.ts +9 -0
  20. package/lib/src/model/index.d.ts +6 -0
  21. package/lib/src/model/job-model.d.ts +10 -0
  22. package/lib/src/model/pod-metrics-model.d.ts +7 -0
  23. package/lib/src/model/pod-model.d.ts +15 -0
  24. package/lib/src/model/resource-model.d.ts +17 -0
  25. package/lib/src/model/workload-model.d.ts +17 -0
  26. package/lib/src/models/node-model.d.ts +15 -0
  27. package/lib/src/models/persistent-volume-claim.d.ts +10 -0
  28. package/lib/src/models/persistent-volume.d.ts +10 -0
  29. package/lib/src/models/storage-class.d.ts +10 -0
  30. package/lib/src/pages/nodes/hooks/useNodeMetrics.d.ts +17 -0
  31. package/lib/src/pages/{pods/index.js → nodes/index.d.ts} +0 -1
  32. package/lib/src/pages/nodes/list/index.d.ts +3 -0
  33. package/lib/src/pages/nodes/show/index.d.ts +3 -0
  34. package/lib/src/pages/storageclasses/form/index.d.ts +9 -0
  35. package/lib/src/pages/storageclasses/index.d.ts +44 -0
  36. package/lib/src/pages/storageclasses/list/index.d.ts +3 -0
  37. package/lib/src/pages/storageclasses/show/index.d.ts +3 -0
  38. package/lib/src/types/metric.d.ts +25 -0
  39. package/lib/src/utils/shell.d.ts +16 -0
  40. package/package.json +6 -1
  41. package/lib/src/App.js +0 -91
  42. package/lib/src/Dovetail.js +0 -45
  43. package/lib/src/components/Breadcrumb/index.js +0 -20
  44. package/lib/src/components/ConditionsTable/ConditionsTable.js +0 -56
  45. package/lib/src/components/ConditionsTable/index.js +0 -1
  46. package/lib/src/components/CreateButton/index.js +0 -10
  47. package/lib/src/components/CronJobDropdown/index.js +0 -26
  48. package/lib/src/components/CronjobJobsTable/index.js +0 -49
  49. package/lib/src/components/DeleteButton/index.js +0 -13
  50. package/lib/src/components/DeleteManyButton/index.js +0 -16
  51. package/lib/src/components/DrawerShow/DrawerShow.js +0 -13
  52. package/lib/src/components/DrawerShow/index.js +0 -1
  53. package/lib/src/components/EditButton/index.js +0 -13
  54. package/lib/src/components/EditField/index.js +0 -47
  55. package/lib/src/components/ErrorContent/index.js +0 -36
  56. package/lib/src/components/EventsTable/EventsTable.js +0 -59
  57. package/lib/src/components/EventsTable/index.js +0 -1
  58. package/lib/src/components/Form/KeyValueListWidget.js +0 -56
  59. package/lib/src/components/Form/MetadataForm.js +0 -9
  60. package/lib/src/components/Form/NameInputWidget.js +0 -50
  61. package/lib/src/components/Form/NamespaceSelectWidget.js +0 -21
  62. package/lib/src/components/Form/index.js +0 -4
  63. package/lib/src/components/Form/widget.js +0 -1
  64. package/lib/src/components/FormErrorAlert/index.js +0 -8
  65. package/lib/src/components/FormLayout/index.js +0 -21
  66. package/lib/src/components/FormModal/index.js +0 -51
  67. package/lib/src/components/ImageNames/index.js +0 -14
  68. package/lib/src/components/IngressRulesComponent/index.js +0 -11
  69. package/lib/src/components/IngressRulesTable/IngressRulesTable.js +0 -51
  70. package/lib/src/components/IngressRulesTable/index.js +0 -1
  71. package/lib/src/components/K8sDropdown/index.js +0 -31
  72. package/lib/src/components/KeyValue/KeyValue.js +0 -27
  73. package/lib/src/components/KeyValue/index.js +0 -1
  74. package/lib/src/components/KeyValueData/index.js +0 -50
  75. package/lib/src/components/Layout/index.js +0 -39
  76. package/lib/src/components/ListPage/index.js +0 -25
  77. package/lib/src/components/Menu/index.js +0 -36
  78. package/lib/src/components/NamespacesFilter/index.js +0 -34
  79. package/lib/src/components/NetworkPolicyRulesTable/NetworkPolicyRulesTable.js +0 -77
  80. package/lib/src/components/NetworkPolicyRulesTable/index.js +0 -1
  81. package/lib/src/components/PageShow/PageShow.js +0 -11
  82. package/lib/src/components/PageShow/index.js +0 -1
  83. package/lib/src/components/PodContainersTable/PodContainersTable.js +0 -78
  84. package/lib/src/components/PodContainersTable/index.js +0 -1
  85. package/lib/src/components/PodLog/index.js +0 -136
  86. package/lib/src/components/ReferenceLink/index.js +0 -17
  87. package/lib/src/components/RefineForm/RefineFormContent.d.ts +0 -10
  88. package/lib/src/components/RefineForm/RefineFormModal.d.ts +0 -8
  89. package/lib/src/components/RefineForm/RefineFormPage.d.ts +0 -7
  90. package/lib/src/components/RefineForm/index.d.ts +0 -3
  91. package/lib/src/components/RefineForm/type.d.ts +0 -20
  92. package/lib/src/components/RefineForm/useRefineForm.d.ts +0 -10
  93. package/lib/src/components/ResourceCRUD/ResourceCRUD.js +0 -15
  94. package/lib/src/components/ResourceCRUD/create/index.js +0 -13
  95. package/lib/src/components/ResourceCRUD/index.js +0 -4
  96. package/lib/src/components/ResourceCRUD/list/index.js +0 -19
  97. package/lib/src/components/ResourceCRUD/show/index.js +0 -6
  98. package/lib/src/components/ResourceLink/index.js +0 -21
  99. package/lib/src/components/ResourceUsageBar/index.js +0 -81
  100. package/lib/src/components/Separator/index.js +0 -11
  101. package/lib/src/components/ShowContent/ShowContent.js +0 -157
  102. package/lib/src/components/ShowContent/fields.js +0 -157
  103. package/lib/src/components/ShowContent/index.js +0 -2
  104. package/lib/src/components/StateTag/StateTag.js +0 -22
  105. package/lib/src/components/StateTag/index.js +0 -1
  106. package/lib/src/components/Table/ErrorContent.js +0 -36
  107. package/lib/src/components/Table/TableToolBar.js +0 -14
  108. package/lib/src/components/Table/TableWidgets.js +0 -28
  109. package/lib/src/components/Table/index.js +0 -69
  110. package/lib/src/components/Tags/index.js +0 -22
  111. package/lib/src/components/Time/index.js +0 -14
  112. package/lib/src/components/WorkloadDropdown/index.js +0 -24
  113. package/lib/src/components/WorkloadPodsTable/WorkloadPodsTable.js +0 -39
  114. package/lib/src/components/WorkloadPodsTable/index.js +0 -1
  115. package/lib/src/components/WorkloadReplicas/index.js +0 -50
  116. package/lib/src/components/YamlEditor/MonacoYamlDiffEditor.js +0 -34
  117. package/lib/src/components/YamlEditor/MonacoYamlEditor.js +0 -149
  118. package/lib/src/components/YamlEditor/YamlEditorComponent.js +0 -90
  119. package/lib/src/components/YamlEditor/index.js +0 -1
  120. package/lib/src/components/YamlEditor/style.js +0 -102
  121. package/lib/src/components/YamlEditor/yaml.worker.js +0 -1
  122. package/lib/src/components/YamlForm/index.js +0 -61
  123. package/lib/src/components/index.js +0 -38
  124. package/lib/src/constants/index.js +0 -2
  125. package/lib/src/constants/k8s.js +0 -203
  126. package/lib/src/constants/state.js +0 -15
  127. package/lib/src/contexts/component.js +0 -3
  128. package/lib/src/contexts/configs.js +0 -3
  129. package/lib/src/contexts/global-store.js +0 -3
  130. package/lib/src/contexts/index.js +0 -3
  131. package/lib/src/hooks/index.js +0 -7
  132. package/lib/src/hooks/useDeleteModal/index.js +0 -1
  133. package/lib/src/hooks/useDeleteModal/useDeleteManyModal.js +0 -31
  134. package/lib/src/hooks/useDeleteModal/useDeleteModal.js +0 -38
  135. package/lib/src/hooks/useDownloadYAML.js +0 -10
  136. package/lib/src/hooks/useEagleForm.js +0 -177
  137. package/lib/src/hooks/useEagleTable/columns.js +0 -246
  138. package/lib/src/hooks/useEagleTable/index.js +0 -2
  139. package/lib/src/hooks/useEagleTable/useEagleTable.js +0 -63
  140. package/lib/src/hooks/useEdit.js +0 -19
  141. package/lib/src/hooks/useGlobalStore.js +0 -5
  142. package/lib/src/hooks/useK8sYamlEditor.js +0 -37
  143. package/lib/src/hooks/useOpenForm.js +0 -43
  144. package/lib/src/hooks/useSchema.js +0 -37
  145. package/lib/src/hooks/useSubmitForm.js +0 -42
  146. package/lib/src/i18n.js +0 -19
  147. package/lib/src/index.js +0 -13
  148. package/lib/src/locales/en-US/dovetail.json +0 -18
  149. package/lib/src/locales/en-US/index.js +0 -4
  150. package/lib/src/locales/index.js +0 -6
  151. package/lib/src/locales/zh-CN/dovetail.json +0 -91
  152. package/lib/src/locales/zh-CN/index.js +0 -4
  153. package/lib/src/main.js +0 -12
  154. package/lib/src/models/cronjob-model.js +0 -32
  155. package/lib/src/models/daemonset-model.js +0 -17
  156. package/lib/src/models/deployment-model.js +0 -17
  157. package/lib/src/models/event-model.js +0 -11
  158. package/lib/src/models/index.js +0 -14
  159. package/lib/src/models/ingress-model.js +0 -24
  160. package/lib/src/models/job-model.js +0 -56
  161. package/lib/src/models/network-policy-model.js +0 -10
  162. package/lib/src/models/pod-metrics-model.js +0 -34
  163. package/lib/src/models/pod-model.js +0 -78
  164. package/lib/src/models/resource-model.js +0 -34
  165. package/lib/src/models/server-instance-model.d.ts +0 -10
  166. package/lib/src/models/service-model.js +0 -17
  167. package/lib/src/models/statefulset-model.js +0 -17
  168. package/lib/src/models/types/index.js +0 -1
  169. package/lib/src/models/types/metric.js +0 -1
  170. package/lib/src/models/workload-base-model.js +0 -22
  171. package/lib/src/models/workload-model.js +0 -51
  172. package/lib/src/pages/configmaps/index.js +0 -15
  173. package/lib/src/pages/cronjobs/create/index.js +0 -6
  174. package/lib/src/pages/cronjobs/index.js +0 -3
  175. package/lib/src/pages/cronjobs/list/index.js +0 -42
  176. package/lib/src/pages/cronjobs/show/index.js +0 -16
  177. package/lib/src/pages/daemonsets/create/index.js +0 -6
  178. package/lib/src/pages/daemonsets/index.js +0 -3
  179. package/lib/src/pages/daemonsets/list/index.js +0 -32
  180. package/lib/src/pages/daemonsets/show/index.js +0 -16
  181. package/lib/src/pages/deployments/create/index.js +0 -7
  182. package/lib/src/pages/deployments/index.js +0 -3
  183. package/lib/src/pages/deployments/list/index.js +0 -26
  184. package/lib/src/pages/deployments/show/index.js +0 -16
  185. package/lib/src/pages/ingresses/index.js +0 -26
  186. package/lib/src/pages/jobs/index.js +0 -34
  187. package/lib/src/pages/networkPolicies/index.js +0 -67
  188. package/lib/src/pages/pods/create/index.js +0 -6
  189. package/lib/src/pages/pods/list/index.js +0 -81
  190. package/lib/src/pages/pods/show/index.js +0 -54
  191. package/lib/src/pages/secrets/index.js +0 -15
  192. package/lib/src/pages/services/index.js +0 -26
  193. package/lib/src/pages/statefulsets/create/index.js +0 -6
  194. package/lib/src/pages/statefulsets/index.js +0 -3
  195. package/lib/src/pages/statefulsets/list/index.js +0 -26
  196. package/lib/src/pages/statefulsets/show/index.js +0 -16
  197. package/lib/src/plugins/index.js +0 -3
  198. package/lib/src/plugins/model-plugin.js +0 -46
  199. package/lib/src/plugins/relation-plugin.js +0 -81
  200. package/lib/src/plugins/type.js +0 -1
  201. package/lib/src/providers/index.js +0 -1
  202. package/lib/src/providers/router-provider/index.js +0 -100
  203. package/lib/src/types/index.js +0 -1
  204. package/lib/src/types/resource.js +0 -12
  205. package/lib/src/utils/addId.js +0 -8
  206. package/lib/src/utils/download.js +0 -9
  207. package/lib/src/utils/error.js +0 -53
  208. package/lib/src/utils/form.js +0 -9
  209. package/lib/src/utils/k8s.js +0 -6
  210. package/lib/src/utils/labels.js +0 -15
  211. package/lib/src/utils/match-selector.js +0 -12
  212. package/lib/src/utils/openapi.js +0 -33
  213. package/lib/src/utils/schema.js +0 -117
  214. package/lib/src/utils/selector.js +0 -12
  215. package/lib/src/utils/string.js +0 -6
  216. package/lib/src/utils/time.js +0 -46
  217. package/lib/src/utils/unit.js +0 -69
  218. package/lib/src/utils/yaml.js +0 -44
  219. package/lib/vite.config.js +0 -60
@@ -1,3 +0,0 @@
1
- import { createContext } from 'react';
2
- const GlobalStoreContext = createContext({});
3
- export default GlobalStoreContext;
@@ -1,3 +0,0 @@
1
- export { default as ComponentContext } from './component';
2
- export { default as GlobalStoreContext } from './global-store';
3
- export { default as ConfigsContext } from './configs';
@@ -1,7 +0,0 @@
1
- export * from './useEagleForm';
2
- export * from './useSchema';
3
- export * from './useDeleteModal';
4
- export * from './useEagleTable';
5
- export * from './useDownloadYAML';
6
- export * from './useEdit';
7
- export * from './useGlobalStore';
@@ -1 +0,0 @@
1
- export * from './useDeleteModal';
@@ -1,31 +0,0 @@
1
- import { useDeleteMany } from '@refinedev/core';
2
- import { useState } from 'react';
3
- import { useD2Translation } from '../../i18n';
4
- export const useDeleteManyModal = (resource, ids) => {
5
- const { mutate } = useDeleteMany();
6
- const [visible, setVisible] = useState(false);
7
- const { t } = useD2Translation();
8
- const modalProps = {
9
- title: t('dovetail.delete'),
10
- okText: t('dovetail.delete'),
11
- okButtonProps: {
12
- danger: true,
13
- },
14
- cancelText: t('dovetail.cancel'),
15
- children: t('dovetail.confirm_delete_text', {
16
- target: ids,
17
- interpolation: { escapeValue: false },
18
- }),
19
- onOk() {
20
- mutate({
21
- resource,
22
- ids,
23
- });
24
- setVisible(false);
25
- },
26
- onCancel() {
27
- setVisible(false);
28
- },
29
- };
30
- return { modalProps, visible, setVisible };
31
- };
@@ -1,38 +0,0 @@
1
- import { useDelete, useNavigation } from '@refinedev/core';
2
- import { useState } from 'react';
3
- import { useD2Translation } from '../../i18n';
4
- export const useDeleteModal = (resource) => {
5
- const { mutate } = useDelete();
6
- const [visible, setVisible] = useState(false);
7
- const navigation = useNavigation();
8
- const [id, setId] = useState('');
9
- const { t } = useD2Translation();
10
- const modalProps = {
11
- title: t('dovetail.delete'),
12
- okText: t('dovetail.delete'),
13
- okButtonProps: {
14
- danger: true,
15
- },
16
- cancelText: t('dovetail.cancel'),
17
- children: t('dovetail.confirm_delete_text', {
18
- target: id,
19
- interpolation: { escapeValue: false },
20
- }),
21
- onOk() {
22
- mutate({
23
- resource,
24
- id,
25
- });
26
- setVisible(false);
27
- navigation.list(resource);
28
- },
29
- onCancel() {
30
- setVisible(false);
31
- },
32
- };
33
- function openDeleteConfirmModal(id) {
34
- setId(id);
35
- setVisible(true);
36
- }
37
- return { modalProps, visible, openDeleteConfirmModal };
38
- };
@@ -1,10 +0,0 @@
1
- import yaml from 'js-yaml';
2
- import { download } from '../utils/download';
3
- export function useDownloadYAML() {
4
- return function (options) {
5
- const { name, item } = options;
6
- console.log('download', item);
7
- const content = yaml.dump(item);
8
- download(`${name}.yaml`, content);
9
- };
10
- }
@@ -1,177 +0,0 @@
1
- import { useUIKit } from '@cloudtower/eagle';
2
- import { useForm as useFormCore, useWarnAboutChange, pickNotDeprecated, useResource, } from '@refinedev/core';
3
- import yaml from 'js-yaml';
4
- import React, { useRef, useState, useMemo } from 'react';
5
- import useK8sYamlEditor from 'src/hooks/useK8sYamlEditor';
6
- import { useSchema } from 'src/hooks/useSchema';
7
- import { pruneBeforeEdit } from 'src/utils/k8s';
8
- import { generateYamlBySchema } from 'src/utils/yaml';
9
- import { useForm as useFormSF } from 'sunflower-antd';
10
- import { useD2Translation } from '../i18n';
11
- import { useGlobalStore } from './useGlobalStore';
12
- const useEagleForm = ({ action, resource, onMutationSuccess: onMutationSuccessProp, onMutationError, submitOnEnter = false, warnWhenUnsavedChanges: warnWhenUnsavedChangesProp, redirect, successNotification, errorNotification, meta, metaData, queryMeta, mutationMeta, liveMode, liveParams, mutationMode, dataProviderName, onLiveEvent, invalidates, undoableTimeout, queryOptions, createMutationOptions, updateMutationOptions, id: idFromProps, overtimeOptions, editorOptions, initialValuesForCreate, } = {}) => {
13
- const editor = useRef(null);
14
- const isFoldRef = useRef(false);
15
- const { t } = useD2Translation();
16
- const [enableEditor, setEnableEditor] = useState(false);
17
- const [isYamlValid, setIsYamlValid] = useState(true);
18
- const [isSchemaValid, setIsSchemaValid] = useState(true);
19
- const [editorErrors, setEditorErrors] = useState([]);
20
- const [errorResponseBody, setErrorResponseBody] = useState(null);
21
- const useResourceResult = useResource();
22
- const { globalStore } = useGlobalStore();
23
- const kit = useUIKit();
24
- const { schema, loading: isLoadingSchema, error: loadSchemaError, fetchSchema, } = useSchema({
25
- skip: editorOptions?.isSkipSchema,
26
- });
27
- const [formAnt] = kit.form.useForm();
28
- const formSF = useFormSF({
29
- form: formAnt,
30
- });
31
- const { form } = formSF;
32
- const { fold } = useK8sYamlEditor();
33
- const useFormCoreResult = useFormCore({
34
- onMutationSuccess: onMutationSuccessProp ? onMutationSuccessProp : undefined,
35
- onMutationError,
36
- redirect,
37
- action,
38
- resource,
39
- successNotification,
40
- errorNotification,
41
- meta: pickNotDeprecated(meta, metaData),
42
- metaData: pickNotDeprecated(meta, metaData),
43
- queryMeta,
44
- mutationMeta,
45
- liveMode,
46
- liveParams,
47
- mutationMode,
48
- dataProviderName,
49
- onLiveEvent,
50
- invalidates,
51
- undoableTimeout,
52
- queryOptions,
53
- createMutationOptions,
54
- updateMutationOptions,
55
- id: idFromProps,
56
- overtimeOptions,
57
- });
58
- const { formLoading, onFinish, queryResult, id } = useFormCoreResult;
59
- const { warnWhenUnsavedChanges: warnWhenUnsavedChangesRefine, setWarnWhen } = useWarnAboutChange();
60
- const warnWhenUnsavedChanges = warnWhenUnsavedChangesProp ?? warnWhenUnsavedChangesRefine;
61
- const initialValues = useMemo(() => {
62
- const initialValues = queryResult?.data?.data
63
- ? globalStore?.restoreItem(queryResult.data.data)
64
- : initialValuesForCreate;
65
- if (initialValues) {
66
- pruneBeforeEdit(initialValues);
67
- }
68
- return initialValues;
69
- }, [queryResult, globalStore, initialValuesForCreate]);
70
- // Init the editor after the resource value is fetched
71
- React.useEffect(() => {
72
- form.resetFields();
73
- if (editor.current) {
74
- const editorValue = yaml.dump(initialValues);
75
- const editorInstance = editor.current.getEditorInstance();
76
- editor.current.setEditorValue(editorValue);
77
- editor.current.setValue(editorValue);
78
- if (queryResult?.data?.data && editorInstance && !isFoldRef.current) {
79
- fold(editorInstance);
80
- isFoldRef.current = true;
81
- }
82
- }
83
- }, [initialValues, queryResult?.data?.data, id, form, fold]);
84
- React.useEffect(() => {
85
- const response = useFormCoreResult.mutationResult.error?.response;
86
- if (response && !response?.bodyUsed) {
87
- response.json?.().then((body) => {
88
- setErrorResponseBody(body);
89
- });
90
- }
91
- }, [useFormCoreResult.mutationResult]);
92
- const onKeyUp = (event) => {
93
- if (submitOnEnter && event.key === 'Enter') {
94
- form.submit();
95
- }
96
- };
97
- const onValuesChange = (changeValues) => {
98
- if (changeValues && warnWhenUnsavedChanges) {
99
- setWarnWhen(true);
100
- }
101
- return changeValues;
102
- };
103
- const saveButtonProps = useMemo(() => ({
104
- loading: formLoading,
105
- onClick: () => {
106
- form.submit();
107
- },
108
- }), [formLoading, form]);
109
- const editorProps = useMemo(() => ({
110
- ref: editor,
111
- defaultValue: schema && editorOptions?.isGenerateAnnotations
112
- ? generateYamlBySchema(initialValues || {}, schema)
113
- : yaml.dump(initialValues),
114
- schema: schema,
115
- id: useResourceResult.resource?.name || '',
116
- errorMsgs: editorErrors,
117
- onValidate(yamlValid, schemaValid) {
118
- setIsYamlValid(yamlValid);
119
- setIsSchemaValid(schemaValid);
120
- if (yamlValid && schemaValid) {
121
- setEditorErrors([]);
122
- }
123
- },
124
- onEditorCreate(editor) {
125
- if (queryResult?.data?.data && !isFoldRef.current) {
126
- fold(editor);
127
- isFoldRef.current = true;
128
- }
129
- },
130
- }), [editorErrors, editorOptions, fold, initialValues, queryResult?.data?.data, schema, useResourceResult.resource?.name]);
131
- return {
132
- form: formSF.form,
133
- formProps: {
134
- ...formSF.formProps,
135
- onFinish: values => {
136
- const errors = [
137
- !isYamlValid ? t('dovetail.yaml_format_wrong') : '',
138
- !isSchemaValid ? t('dovetail.yaml_value_wrong') : '',
139
- ].filter(error => !!error);
140
- if (errors.length) {
141
- setEditorErrors(errors);
142
- return;
143
- }
144
- const finalValues = editor.current
145
- ? yaml.load(editor.current?.getEditorValue() || '')
146
- : values;
147
- return onFinish(finalValues);
148
- },
149
- onKeyUp,
150
- onValuesChange,
151
- initialValues,
152
- },
153
- saveButtonProps,
154
- ...useFormCoreResult,
155
- editorProps,
156
- enableEditor,
157
- errorResponseBody,
158
- schema,
159
- isLoadingSchema,
160
- loadSchemaError,
161
- fetchSchema,
162
- switchEditor() {
163
- if (enableEditor && editor.current?.getEditorValue()) {
164
- const value = yaml.load(editor.current?.getEditorValue());
165
- form?.setFieldsValue(value);
166
- }
167
- setEnableEditor(!enableEditor);
168
- },
169
- onFinish: async (values) => {
170
- const finalValues = enableEditor
171
- ? yaml.load(editor.current?.getEditorValue() || '')
172
- : values ?? formSF.form.getFieldsValue(true);
173
- return await onFinish(finalValues);
174
- },
175
- };
176
- };
177
- export default useEagleForm;
@@ -1,246 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useUIKit } from '@cloudtower/eagle';
3
- import { useGo, useNavigation, useParsed } from '@refinedev/core';
4
- import { get } from 'lodash';
5
- import { ResourceLink } from '../../components';
6
- import { ImageNames } from '../../components/ImageNames';
7
- import { IngressRulesComponent } from '../../components/IngressRulesComponent';
8
- import { ReferenceLink } from '../../components/ReferenceLink';
9
- import { StateTag } from '../../components/StateTag';
10
- import Time from '../../components/Time';
11
- import { elapsedTime } from '../../utils/time';
12
- const NameLink = props => {
13
- const { name, id, resource } = props;
14
- const kit = useUIKit();
15
- const go = useGo();
16
- const navigation = useNavigation();
17
- const parsed = useParsed();
18
- const resourceName = resource || parsed.resource?.name || '';
19
- return (_jsx(kit.button, { type: "link", onClick: () => {
20
- go({
21
- to: navigation.showUrl(resourceName, ''),
22
- query: {
23
- id,
24
- },
25
- options: {
26
- keepQuery: true,
27
- },
28
- });
29
- }, children: name }));
30
- };
31
- export const CommonSorter = (dataIndex) => (a, b) => {
32
- const valA = get(a, dataIndex);
33
- const valB = get(b, dataIndex);
34
- if (valA === valB)
35
- return 0;
36
- if (valA > valB)
37
- return 1;
38
- return -1;
39
- };
40
- export const NameColumnRenderer = (i18n, resource = '') => {
41
- const dataIndex = ['metadata', 'name'];
42
- return {
43
- key: 'name',
44
- display: true,
45
- dataIndex,
46
- title: i18n.t('dovetail.name'),
47
- sortable: true,
48
- sorter: CommonSorter(dataIndex),
49
- render: (v, record) => {
50
- return _jsx(NameLink, { name: v, id: record.id, resource: resource });
51
- },
52
- };
53
- };
54
- export const NameSpaceColumnRenderer = (i18n) => {
55
- const dataIndex = ['metadata', 'namespace'];
56
- return {
57
- key: 'namespace',
58
- display: true,
59
- dataIndex,
60
- title: i18n.t('dovetail.namespace'),
61
- sortable: true,
62
- sorter: CommonSorter(dataIndex),
63
- };
64
- };
65
- export const StateDisplayColumnRenderer = (i18n) => {
66
- const dataIndex = ['stateDisplay'];
67
- return {
68
- key: 'stateDisplay',
69
- display: true,
70
- dataIndex: dataIndex,
71
- title: i18n.t('dovetail.state'),
72
- sortable: true,
73
- sorter: CommonSorter(dataIndex),
74
- render: v => _jsx(StateTag, { state: v }),
75
- };
76
- };
77
- export const WorkloadImageColumnRenderer = (i18n) => {
78
- const dataIndex = ['imageNames'];
79
- return {
80
- key: 'image',
81
- display: true,
82
- dataIndex,
83
- title: i18n.t('dovetail.image'),
84
- sortable: true,
85
- sorter: CommonSorter(dataIndex),
86
- render(value, record) {
87
- return _jsx(ImageNames, { value: record.imageNames });
88
- },
89
- };
90
- };
91
- export const WorkloadRestartsColumnRenderer = (i18n) => {
92
- const dataIndex = ['restarts'];
93
- return {
94
- key: 'restarts',
95
- display: true,
96
- dataIndex,
97
- title: i18n.t('dovetail.restarts'),
98
- sortable: false,
99
- };
100
- };
101
- export const ReplicasColumnRenderer = (i18n) => {
102
- const dataIndex = ['status', 'replicas'];
103
- return {
104
- key: 'replicas',
105
- display: true,
106
- dataIndex,
107
- title: i18n.t('dovetail.replicas'),
108
- sortable: true,
109
- sorter: CommonSorter(dataIndex),
110
- render: (_, record) => {
111
- return (_jsxs("span", { children: [record.readyReplicas, "/", record.replicas] }));
112
- },
113
- };
114
- };
115
- export const AgeColumnRenderer = (i18n) => {
116
- const dataIndex = ['metadata', 'creationTimestamp'];
117
- return {
118
- key: 'creationTimestamp',
119
- display: true,
120
- dataIndex,
121
- title: i18n.t('dovetail.created_time'),
122
- sortable: true,
123
- sorter: (a, b) => {
124
- const valA = new Date(get(a, dataIndex));
125
- const valB = new Date(get(b, dataIndex));
126
- if (valA === valB)
127
- return 0;
128
- if (valA > valB)
129
- return 1;
130
- return -1;
131
- },
132
- render: (value) => {
133
- return _jsx(Time, { date: new Date(value) });
134
- },
135
- };
136
- };
137
- export const NodeNameColumnRenderer = (i18n, options) => {
138
- const dataIndex = ['spec', 'nodeName'];
139
- return {
140
- key: 'node',
141
- display: true,
142
- dataIndex,
143
- title: i18n.t('dovetail.node_name'),
144
- sortable: true,
145
- sorter: CommonSorter(dataIndex),
146
- ...options,
147
- };
148
- };
149
- export const RestartCountColumnRenderer = (i18n) => {
150
- const dataIndex = ['restartCount'];
151
- return {
152
- key: 'restartCount',
153
- display: true,
154
- dataIndex,
155
- title: i18n.t('dovetail.restarts'),
156
- sortable: true,
157
- sorter: CommonSorter(dataIndex),
158
- };
159
- };
160
- export const CompletionsCountColumnRenderer = (i18n) => {
161
- const dataIndex = ['completionsDisplay'];
162
- return {
163
- key: 'completions',
164
- display: true,
165
- dataIndex,
166
- title: i18n.t('completions'),
167
- sortable: true,
168
- sorter: CommonSorter(dataIndex),
169
- };
170
- };
171
- export const DurationColumnRenderer = (i18n) => {
172
- const dataIndex = ['duration'];
173
- return {
174
- key: 'duration',
175
- display: true,
176
- dataIndex,
177
- title: i18n.t('dovetail.duration'),
178
- sortable: true,
179
- sorter: CommonSorter(dataIndex),
180
- render: v => {
181
- const i18nMap = {
182
- sec: i18n.t('dovetail.sec'),
183
- day: i18n.t('dovetail.day'),
184
- min: i18n.t('dovetail.min'),
185
- hr: i18n.t('dovetail.hr'),
186
- };
187
- return _jsx("span", { children: elapsedTime(v, i18nMap).label || '-' });
188
- },
189
- };
190
- };
191
- export const ServiceTypeColumnRenderer = (i18n) => {
192
- const dataIndex = ['spec', 'type'];
193
- return {
194
- key: 'type',
195
- title: i18n.t('dovetail.type'),
196
- display: true,
197
- dataIndex,
198
- sortable: true,
199
- sorter: CommonSorter(dataIndex),
200
- };
201
- };
202
- export const PodWorkloadColumnRenderer = (i18n) => {
203
- const dataIndex = ['metadata', 'ownerReferences'];
204
- return {
205
- key: 'type',
206
- title: i18n.t('dovetail.workload'),
207
- display: true,
208
- dataIndex,
209
- sortable: true,
210
- sorter: CommonSorter(dataIndex),
211
- render(value, record) {
212
- return value.map(o => (_jsx(ReferenceLink, { ownerReference: o, namespace: record.metadata.namespace || 'default' }, o.name)));
213
- },
214
- };
215
- };
216
- export const IngressRulesColumnRenderer = (i18n) => {
217
- const dataIndex = ['spec', 'rules'];
218
- return {
219
- key: 'type',
220
- title: i18n.t('dovetail.rule'),
221
- display: true,
222
- dataIndex,
223
- sortable: true,
224
- sorter: CommonSorter(dataIndex),
225
- render(_, record) {
226
- return _jsx(IngressRulesComponent, { ingress: record });
227
- },
228
- };
229
- };
230
- export const IngressDefaultBackendColumnRenderer = (i18n) => {
231
- const dataIndex = ['spec', 'defaultBackend'];
232
- return {
233
- key: 'defaultBackend',
234
- display: true,
235
- dataIndex,
236
- title: i18n.t('dovetail.default_backend'),
237
- sortable: true,
238
- sorter: CommonSorter(['spec', 'defaultBackend']),
239
- render: (defaultBackend, record) => {
240
- if (!defaultBackend?.service?.name)
241
- return _jsx("span", { children: "-" });
242
- const divider = 'Default > ';
243
- return (_jsxs("span", { children: [divider, _jsx(ResourceLink, { name: "services", namespace: record.metadata.namespace || 'default', resourceId: defaultBackend.service?.name || '' })] }));
244
- },
245
- };
246
- };
@@ -1,2 +0,0 @@
1
- export * from './columns';
2
- export * from './useEagleTable';
@@ -1,63 +0,0 @@
1
- import { useTable, useResource } from '@refinedev/core';
2
- import { merge } from 'lodash-es';
3
- import { useCallback, useMemo, useState } from 'react';
4
- import K8sDropdown from '../../components/K8sDropdown';
5
- import { useNamespacesFilter, ALL_NS } from '../../components/NamespacesFilter';
6
- export var ColumnKeys;
7
- (function (ColumnKeys) {
8
- ColumnKeys["age"] = "age";
9
- ColumnKeys["name"] = "name";
10
- ColumnKeys["namespace"] = "namespace";
11
- ColumnKeys["phase"] = "phase";
12
- ColumnKeys["replicas"] = "replicas";
13
- ColumnKeys["deploymentImage"] = "deploymentImage";
14
- ColumnKeys["podImage"] = "podImage";
15
- })(ColumnKeys || (ColumnKeys = {}));
16
- export const useEagleTable = (params) => {
17
- const { columns, tableProps, formatter, Dropdown = K8sDropdown } = params;
18
- const [selectedKeys, setSelectedKeys] = useState([]);
19
- const [currentPage, setCurrentPage] = useState(tableProps?.currentPage || 1);
20
- const { resource } = useResource();
21
- const { value: nsFilter } = useNamespacesFilter();
22
- const useTableParams = useMemo(() => {
23
- // TODO: check whether resource can be namespaced
24
- const mergedParams = merge(params.useTableParams, {
25
- pagination: {
26
- mode: 'off',
27
- },
28
- filters: {
29
- permanent: [
30
- {
31
- field: 'metadata.namespace',
32
- operator: 'eq',
33
- value: nsFilter === ALL_NS ? null : nsFilter,
34
- },
35
- ],
36
- },
37
- });
38
- return mergedParams;
39
- }, [params.useTableParams, nsFilter]);
40
- const table = useTable(useTableParams);
41
- const onPageChange = useCallback((page) => {
42
- setCurrentPage(page);
43
- }, [setCurrentPage]);
44
- const data = table.tableQueryResult.data?.data;
45
- const finalDataSource = formatter ? data?.map(formatter) : data;
46
- const finalProps = {
47
- tableKey: resource?.name || 'table',
48
- loading: table.tableQueryResult.isLoading,
49
- data: finalDataSource || [],
50
- columns,
51
- refetch: () => null,
52
- error: false,
53
- rowKey: 'id',
54
- currentPage,
55
- currentSize: tableProps?.currentSize || 5,
56
- onPageChange: onPageChange,
57
- onSelect: keys => {
58
- setSelectedKeys(keys);
59
- },
60
- RowMenu: Dropdown
61
- };
62
- return { tableProps: finalProps, selectedKeys, ...table };
63
- };
@@ -1,19 +0,0 @@
1
- import { useGo, useNavigation, useParsed } from '@refinedev/core';
2
- import { useCallback } from 'react';
3
- export function useEdit() {
4
- const { resource } = useParsed();
5
- const go = useGo();
6
- const navigation = useNavigation();
7
- const edit = useCallback((id) => {
8
- go({
9
- to: navigation.editUrl(resource?.name || '', id),
10
- query: {
11
- id,
12
- },
13
- options: {
14
- keepQuery: true,
15
- },
16
- });
17
- }, [go, resource?.name]);
18
- return { edit };
19
- }
@@ -1,5 +0,0 @@
1
- import { useContext } from 'react';
2
- import GlobalStoreContext from '../contexts/global-store';
3
- export const useGlobalStore = () => {
4
- return useContext(GlobalStoreContext);
5
- };
@@ -1,37 +0,0 @@
1
- import { useCallback } from 'react';
2
- function useK8sYamlEditor() {
3
- const foldSymbol = useCallback(function (editor, symbol) {
4
- const model = editor.getModel();
5
- const matchs = model?.findMatches(symbol, false, false, false, '', false).filter(match => match.range.startColumn === 1) || [];
6
- return new Promise(async (resolve, reject) => {
7
- try {
8
- for (const match of matchs) {
9
- const lineNumber = match.range.startLineNumber;
10
- editor.setPosition({ lineNumber, column: 1 });
11
- await editor.getAction('editor.fold').run();
12
- }
13
- resolve(null);
14
- }
15
- catch (e) {
16
- reject(e);
17
- }
18
- });
19
- }, []);
20
- const fold = useCallback(async function (editor) {
21
- await editor.getAction('editor.unfoldAll').run();
22
- const symbols = [
23
- ' annotations:',
24
- ' managedFields:',
25
- 'status:',
26
- ' kubectl.kubernetes.io/last-applied-configuration:'
27
- ];
28
- for (const symbol of symbols) {
29
- await foldSymbol(editor, symbol);
30
- }
31
- editor.setScrollPosition({ scrollTop: 0 });
32
- }, [foldSymbol]);
33
- return {
34
- fold,
35
- };
36
- }
37
- export default useK8sYamlEditor;