@dovetail-v2/refine 0.1.0 → 0.1.2

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 (201) hide show
  1. package/dist/{MonacoYamlDiffEditor-e737ae8d.js → MonacoYamlDiffEditor-f0cf18e8.js} +1 -1
  2. package/dist/{index-0c7bfb69.js → index-903eb91c.js} +299 -291
  3. package/dist/refine.js +1 -1
  4. package/dist/refine.umd.cjs +298 -290
  5. package/package.json +5 -5
  6. package/lib/src/App.js +0 -91
  7. package/lib/src/Dovetail.js +0 -45
  8. package/lib/src/components/Breadcrumb/index.js +0 -20
  9. package/lib/src/components/ConditionsTable/ConditionsTable.js +0 -56
  10. package/lib/src/components/ConditionsTable/index.js +0 -1
  11. package/lib/src/components/CreateButton/index.js +0 -10
  12. package/lib/src/components/CronJobDropdown/index.js +0 -26
  13. package/lib/src/components/CronjobJobsTable/index.js +0 -49
  14. package/lib/src/components/DeleteButton/index.js +0 -13
  15. package/lib/src/components/DeleteManyButton/index.js +0 -16
  16. package/lib/src/components/DrawerShow/DrawerShow.js +0 -13
  17. package/lib/src/components/DrawerShow/index.js +0 -1
  18. package/lib/src/components/EditButton/index.js +0 -13
  19. package/lib/src/components/EditField/index.js +0 -47
  20. package/lib/src/components/ErrorContent/index.js +0 -36
  21. package/lib/src/components/EventsTable/EventsTable.js +0 -59
  22. package/lib/src/components/EventsTable/index.js +0 -1
  23. package/lib/src/components/Form/KeyValueListWidget.d.ts +0 -6
  24. package/lib/src/components/Form/KeyValueListWidget.js +0 -56
  25. package/lib/src/components/Form/MetadataForm.d.ts +0 -2
  26. package/lib/src/components/Form/MetadataForm.js +0 -9
  27. package/lib/src/components/Form/NameInputWidget.d.ts +0 -51
  28. package/lib/src/components/Form/NameInputWidget.js +0 -50
  29. package/lib/src/components/Form/NamespaceSelectWidget.d.ts +0 -9
  30. package/lib/src/components/Form/NamespaceSelectWidget.js +0 -21
  31. package/lib/src/components/Form/index.js +0 -4
  32. package/lib/src/components/Form/widget.d.ts +0 -5
  33. package/lib/src/components/Form/widget.js +0 -1
  34. package/lib/src/components/FormErrorAlert/index.js +0 -8
  35. package/lib/src/components/FormLayout/index.js +0 -21
  36. package/lib/src/components/FormModal/index.d.ts +0 -10
  37. package/lib/src/components/FormModal/index.js +0 -51
  38. package/lib/src/components/ImageNames/index.js +0 -14
  39. package/lib/src/components/IngressRulesComponent/index.js +0 -11
  40. package/lib/src/components/IngressRulesTable/IngressRulesTable.js +0 -51
  41. package/lib/src/components/IngressRulesTable/index.js +0 -1
  42. package/lib/src/components/K8sDropdown/index.js +0 -31
  43. package/lib/src/components/KeyValue/KeyValue.js +0 -27
  44. package/lib/src/components/KeyValue/index.js +0 -1
  45. package/lib/src/components/KeyValueData/index.d.ts +0 -6
  46. package/lib/src/components/KeyValueData/index.js +0 -50
  47. package/lib/src/components/Layout/index.js +0 -39
  48. package/lib/src/components/ListPage/index.js +0 -25
  49. package/lib/src/components/Menu/index.js +0 -36
  50. package/lib/src/components/NamespacesFilter/index.js +0 -34
  51. package/lib/src/components/NetworkPolicyRulesTable/NetworkPolicyRulesTable.d.ts +0 -7
  52. package/lib/src/components/NetworkPolicyRulesTable/NetworkPolicyRulesTable.js +0 -77
  53. package/lib/src/components/NetworkPolicyRulesTable/index.d.ts +0 -1
  54. package/lib/src/components/NetworkPolicyRulesTable/index.js +0 -1
  55. package/lib/src/components/PageShow/PageShow.js +0 -11
  56. package/lib/src/components/PageShow/index.js +0 -1
  57. package/lib/src/components/PodContainersTable/PodContainersTable.js +0 -78
  58. package/lib/src/components/PodContainersTable/index.js +0 -1
  59. package/lib/src/components/PodLog/index.js +0 -136
  60. package/lib/src/components/ReferenceLink/index.js +0 -17
  61. package/lib/src/components/RefineForm/RefineFormContent.d.ts +0 -10
  62. package/lib/src/components/RefineForm/RefineFormModal.d.ts +0 -8
  63. package/lib/src/components/RefineForm/RefineFormPage.d.ts +0 -7
  64. package/lib/src/components/RefineForm/index.d.ts +0 -3
  65. package/lib/src/components/RefineForm/type.d.ts +0 -20
  66. package/lib/src/components/RefineForm/useRefineForm.d.ts +0 -10
  67. package/lib/src/components/ResourceCRUD/ResourceCRUD.js +0 -15
  68. package/lib/src/components/ResourceCRUD/create/index.js +0 -13
  69. package/lib/src/components/ResourceCRUD/index.js +0 -4
  70. package/lib/src/components/ResourceCRUD/list/index.js +0 -19
  71. package/lib/src/components/ResourceCRUD/show/index.js +0 -6
  72. package/lib/src/components/ResourceLink/index.js +0 -21
  73. package/lib/src/components/ResourceUsageBar/index.js +0 -81
  74. package/lib/src/components/Separator/index.js +0 -11
  75. package/lib/src/components/ShowContent/ShowContent.js +0 -157
  76. package/lib/src/components/ShowContent/fields.js +0 -157
  77. package/lib/src/components/ShowContent/index.js +0 -2
  78. package/lib/src/components/StateTag/StateTag.js +0 -22
  79. package/lib/src/components/StateTag/index.js +0 -1
  80. package/lib/src/components/Table/ErrorContent.d.ts +0 -10
  81. package/lib/src/components/Table/ErrorContent.js +0 -36
  82. package/lib/src/components/Table/TableToolBar.js +0 -14
  83. package/lib/src/components/Table/TableWidgets.js +0 -28
  84. package/lib/src/components/Table/index.js +0 -69
  85. package/lib/src/components/Tags/index.js +0 -22
  86. package/lib/src/components/Time/index.js +0 -14
  87. package/lib/src/components/WorkloadDropdown/index.js +0 -24
  88. package/lib/src/components/WorkloadPodsTable/WorkloadPodsTable.js +0 -39
  89. package/lib/src/components/WorkloadPodsTable/index.js +0 -1
  90. package/lib/src/components/WorkloadReplicas/index.js +0 -50
  91. package/lib/src/components/YamlEditor/MonacoYamlDiffEditor.js +0 -34
  92. package/lib/src/components/YamlEditor/MonacoYamlEditor.js +0 -149
  93. package/lib/src/components/YamlEditor/YamlEditorComponent.js +0 -90
  94. package/lib/src/components/YamlEditor/index.js +0 -1
  95. package/lib/src/components/YamlEditor/style.js +0 -102
  96. package/lib/src/components/YamlEditor/yaml.worker.js +0 -1
  97. package/lib/src/components/YamlForm/index.d.ts +0 -21
  98. package/lib/src/components/YamlForm/index.js +0 -61
  99. package/lib/src/components/index.js +0 -38
  100. package/lib/src/constants/index.js +0 -2
  101. package/lib/src/constants/k8s.js +0 -203
  102. package/lib/src/constants/state.js +0 -15
  103. package/lib/src/contexts/component.js +0 -3
  104. package/lib/src/contexts/configs.js +0 -3
  105. package/lib/src/contexts/global-store.js +0 -3
  106. package/lib/src/contexts/index.js +0 -3
  107. package/lib/src/hooks/index.js +0 -7
  108. package/lib/src/hooks/useDeleteModal/index.js +0 -1
  109. package/lib/src/hooks/useDeleteModal/useDeleteManyModal.js +0 -31
  110. package/lib/src/hooks/useDeleteModal/useDeleteModal.js +0 -38
  111. package/lib/src/hooks/useDownloadYAML.js +0 -10
  112. package/lib/src/hooks/useEagleForm.d.ts +0 -47
  113. package/lib/src/hooks/useEagleForm.js +0 -177
  114. package/lib/src/hooks/useEagleTable/columns.js +0 -246
  115. package/lib/src/hooks/useEagleTable/index.js +0 -2
  116. package/lib/src/hooks/useEagleTable/useEagleTable.js +0 -63
  117. package/lib/src/hooks/useEdit.js +0 -19
  118. package/lib/src/hooks/useGlobalStore.js +0 -5
  119. package/lib/src/hooks/useK8sYamlEditor.js +0 -37
  120. package/lib/src/hooks/useOpenForm.js +0 -43
  121. package/lib/src/hooks/useSchema.js +0 -37
  122. package/lib/src/hooks/useSubmitForm.js +0 -42
  123. package/lib/src/i18n.js +0 -19
  124. package/lib/src/index.js +0 -13
  125. package/lib/src/locales/en-US/dovetail.json +0 -18
  126. package/lib/src/locales/en-US/index.js +0 -4
  127. package/lib/src/locales/index.js +0 -6
  128. package/lib/src/locales/zh-CN/dovetail.json +0 -91
  129. package/lib/src/locales/zh-CN/index.js +0 -4
  130. package/lib/src/main.js +0 -12
  131. package/lib/src/models/cronjob-model.js +0 -32
  132. package/lib/src/models/daemonset-model.js +0 -17
  133. package/lib/src/models/deployment-model.js +0 -17
  134. package/lib/src/models/event-model.js +0 -11
  135. package/lib/src/models/index.js +0 -14
  136. package/lib/src/models/ingress-model.js +0 -24
  137. package/lib/src/models/job-model.js +0 -56
  138. package/lib/src/models/network-policy-model.js +0 -10
  139. package/lib/src/models/pod-metrics-model.js +0 -34
  140. package/lib/src/models/pod-model.js +0 -78
  141. package/lib/src/models/resource-model.js +0 -34
  142. package/lib/src/models/server-instance-model.d.ts +0 -10
  143. package/lib/src/models/service-model.js +0 -17
  144. package/lib/src/models/statefulset-model.js +0 -17
  145. package/lib/src/models/types/index.js +0 -1
  146. package/lib/src/models/types/metric.js +0 -1
  147. package/lib/src/models/workload-base-model.js +0 -22
  148. package/lib/src/models/workload-model.js +0 -51
  149. package/lib/src/pages/configmaps/index.js +0 -15
  150. package/lib/src/pages/cronjobs/create/index.js +0 -6
  151. package/lib/src/pages/cronjobs/index.js +0 -3
  152. package/lib/src/pages/cronjobs/list/index.js +0 -42
  153. package/lib/src/pages/cronjobs/show/index.js +0 -16
  154. package/lib/src/pages/daemonsets/create/index.js +0 -6
  155. package/lib/src/pages/daemonsets/index.js +0 -3
  156. package/lib/src/pages/daemonsets/list/index.js +0 -32
  157. package/lib/src/pages/daemonsets/show/index.js +0 -16
  158. package/lib/src/pages/deployments/create/index.d.ts +0 -3
  159. package/lib/src/pages/deployments/create/index.js +0 -7
  160. package/lib/src/pages/deployments/index.js +0 -3
  161. package/lib/src/pages/deployments/list/index.js +0 -26
  162. package/lib/src/pages/deployments/show/index.js +0 -16
  163. package/lib/src/pages/ingresses/index.js +0 -26
  164. package/lib/src/pages/jobs/index.js +0 -34
  165. package/lib/src/pages/networkPolicies/index.js +0 -67
  166. package/lib/src/pages/pods/create/index.js +0 -6
  167. package/lib/src/pages/pods/index.js +0 -3
  168. package/lib/src/pages/pods/list/index.js +0 -81
  169. package/lib/src/pages/pods/show/index.js +0 -54
  170. package/lib/src/pages/secrets/index.js +0 -15
  171. package/lib/src/pages/services/index.js +0 -26
  172. package/lib/src/pages/statefulsets/create/index.d.ts +0 -3
  173. package/lib/src/pages/statefulsets/create/index.js +0 -6
  174. package/lib/src/pages/statefulsets/index.js +0 -3
  175. package/lib/src/pages/statefulsets/list/index.d.ts +0 -3
  176. package/lib/src/pages/statefulsets/list/index.js +0 -26
  177. package/lib/src/pages/statefulsets/show/index.d.ts +0 -3
  178. package/lib/src/pages/statefulsets/show/index.js +0 -16
  179. package/lib/src/plugins/index.js +0 -3
  180. package/lib/src/plugins/model-plugin.js +0 -46
  181. package/lib/src/plugins/relation-plugin.js +0 -81
  182. package/lib/src/plugins/type.js +0 -1
  183. package/lib/src/providers/index.js +0 -1
  184. package/lib/src/providers/router-provider/index.js +0 -100
  185. package/lib/src/types/index.js +0 -1
  186. package/lib/src/types/resource.js +0 -12
  187. package/lib/src/utils/addId.js +0 -8
  188. package/lib/src/utils/download.js +0 -9
  189. package/lib/src/utils/error.js +0 -53
  190. package/lib/src/utils/form.js +0 -9
  191. package/lib/src/utils/k8s.js +0 -6
  192. package/lib/src/utils/labels.js +0 -15
  193. package/lib/src/utils/match-selector.js +0 -12
  194. package/lib/src/utils/openapi.js +0 -33
  195. package/lib/src/utils/schema.js +0 -117
  196. package/lib/src/utils/selector.js +0 -12
  197. package/lib/src/utils/string.js +0 -6
  198. package/lib/src/utils/time.js +0 -46
  199. package/lib/src/utils/unit.js +0 -69
  200. package/lib/src/utils/yaml.js +0 -44
  201. package/lib/vite.config.js +0 -60
@@ -1,15 +0,0 @@
1
- export var WorkloadState;
2
- (function (WorkloadState) {
3
- WorkloadState["UPDATEING"] = "updating";
4
- WorkloadState["READY"] = "ready";
5
- WorkloadState["COMPLETED"] = "completed";
6
- WorkloadState["FAILED"] = "failed";
7
- WorkloadState["SUSPENDED"] = "suspended";
8
- WorkloadState["RUNNING"] = "running";
9
- WorkloadState["SUCCEEDED"] = "succeeded";
10
- WorkloadState["UNKNOWN"] = "unknown";
11
- WorkloadState["TERMINATING"] = "terminating";
12
- WorkloadState["PENDING"] = "pending";
13
- WorkloadState["WAITING"] = "waiting";
14
- })(WorkloadState || (WorkloadState = {}));
15
- // export type DeploymentState = WorkloadState.UPDATEING | WorkloadState.READY;
@@ -1,3 +0,0 @@
1
- import { createContext } from 'react';
2
- const ComponentContext = createContext({});
3
- export default ComponentContext;
@@ -1,3 +0,0 @@
1
- import { createContext } from 'react';
2
- const ConfigsContext = createContext({});
3
- export default ConfigsContext;
@@ -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,47 +0,0 @@
1
- import { HttpError, BaseRecord, UseFormReturnType as UseFormReturnTypeCore, UseFormProps as UseFormPropsCore, CreateResponse, UpdateResponse } from '@refinedev/core';
2
- import { ButtonProps } from 'antd/lib/button';
3
- import { FormInstance, FormProps } from 'antd/lib/form';
4
- import { JSONSchema7 } from 'json-schema';
5
- import { Unstructured } from 'k8s-api-provider';
6
- import React from 'react';
7
- import { type YamlEditorHandle, type YamlEditorProps } from 'src/components/YamlEditor';
8
- type EditorProps = Omit<YamlEditorProps, 'schema'> & {
9
- ref: React.RefObject<YamlEditorHandle>;
10
- schema: JSONSchema7 | null;
11
- };
12
- export type UseFormProps<TQueryFnData extends BaseRecord = BaseRecord, TError extends HttpError = HttpError, TVariables extends object = object, TData extends BaseRecord = TQueryFnData, TResponse extends BaseRecord = TData, TResponseError extends HttpError = TError> = UseFormPropsCore<TQueryFnData, TError, TVariables, TData, TResponse, TResponseError> & {
13
- submitOnEnter?: boolean;
14
- /**
15
- * Shows notification when unsaved changes exist
16
- */
17
- warnWhenUnsavedChanges?: boolean;
18
- editorOptions?: {
19
- isGenerateAnnotations?: boolean;
20
- isSkipSchema?: boolean;
21
- };
22
- initialValuesForCreate?: Record<string, unknown>;
23
- };
24
- export type UseFormReturnType<TQueryFnData extends BaseRecord = BaseRecord, TError extends HttpError = HttpError, TVariables extends object = object, TData extends BaseRecord = TQueryFnData, TResponse extends BaseRecord = TData, TResponseError extends HttpError = TError> = UseFormReturnTypeCore<TQueryFnData, TError, TVariables, TData, TResponse, TResponseError> & {
25
- form: FormInstance;
26
- formProps: FormProps;
27
- saveButtonProps: ButtonProps & {
28
- onClick: () => void;
29
- };
30
- editorProps: EditorProps;
31
- schema: JSONSchema7 | null;
32
- isLoadingSchema: boolean;
33
- loadSchemaError: Error | null;
34
- fetchSchema: () => void;
35
- enableEditor: boolean;
36
- errorResponseBody?: Record<string, unknown> | null;
37
- switchEditor: () => void;
38
- onFinish: (values?: TVariables) => Promise<CreateResponse<TResponse> | UpdateResponse<TResponse> | void>;
39
- };
40
- declare const useEagleForm: <TQueryFnData extends Unstructured = Unstructured & {
41
- id: string;
42
- }, TError extends HttpError = HttpError, TVariables extends {
43
- [prop: string]: unknown;
44
- } = {
45
- [prop: string]: unknown;
46
- }, TData extends Unstructured = TQueryFnData, TResponse extends BaseRecord = TData, TResponseError extends HttpError = TError>({ action, resource, onMutationSuccess: onMutationSuccessProp, onMutationError, submitOnEnter, warnWhenUnsavedChanges: warnWhenUnsavedChangesProp, redirect, successNotification, errorNotification, meta, metaData, queryMeta, mutationMeta, liveMode, liveParams, mutationMode, dataProviderName, onLiveEvent, invalidates, undoableTimeout, queryOptions, createMutationOptions, updateMutationOptions, id: idFromProps, overtimeOptions, editorOptions, initialValuesForCreate, }?: UseFormProps<TQueryFnData, TError, TVariables, TData, TResponse, TResponseError>) => UseFormReturnType<TQueryFnData, TError, TVariables, TData, TResponse, TResponseError>;
47
- export default useEagleForm;
@@ -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
- };