@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
- export * from './create';
2
- export * from './list';
3
- export * from './show';
@@ -1,26 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { ListPage } from 'src/components/ListPage';
3
- import { WorkloadDropdown } from 'src/components/WorkloadDropdown';
4
- import { useEagleTable } from 'src/hooks/useEagleTable';
5
- import { AgeColumnRenderer, WorkloadImageColumnRenderer, NameColumnRenderer, NameSpaceColumnRenderer, StateDisplayColumnRenderer, ReplicasColumnRenderer, WorkloadRestartsColumnRenderer, } from 'src/hooks/useEagleTable/columns';
6
- import { useD2Translation } from '../../../i18n';
7
- export const StatefulSetList = () => {
8
- const { i18n } = useD2Translation();
9
- const { tableProps, selectedKeys } = useEagleTable({
10
- useTableParams: {},
11
- columns: [
12
- StateDisplayColumnRenderer(i18n),
13
- NameColumnRenderer(i18n),
14
- NameSpaceColumnRenderer(i18n),
15
- WorkloadImageColumnRenderer(i18n),
16
- WorkloadRestartsColumnRenderer(i18n),
17
- ReplicasColumnRenderer(i18n),
18
- AgeColumnRenderer(i18n),
19
- ],
20
- tableProps: {
21
- currentSize: 10,
22
- },
23
- Dropdown: WorkloadDropdown,
24
- });
25
- return (_jsx(ListPage, { title: "StatefulSet", selectedKeys: selectedKeys, tableProps: tableProps }));
26
- };
@@ -1,16 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { WorkloadDropdown } from 'src/components/WorkloadDropdown';
3
- import { PageShow } from '../../../components/PageShow';
4
- import { ConditionsField, ImageField, PodsField, ReplicaField, } from '../../../components/ShowContent/fields';
5
- import { useD2Translation } from '../../../i18n';
6
- export const StatefulSetShow = () => {
7
- const { i18n } = useD2Translation();
8
- return (_jsx(PageShow, { showConfig: {
9
- groups: [
10
- {
11
- fields: [ImageField(i18n), ReplicaField(i18n)],
12
- },
13
- ],
14
- tabs: [PodsField(), ConditionsField(i18n)],
15
- }, Dropdown: WorkloadDropdown }));
16
- };
@@ -1,3 +0,0 @@
1
- import { modelPlugin } from './model-plugin';
2
- import { relationPlugin } from './relation-plugin';
3
- export const ProviderPlugins = [relationPlugin, modelPlugin];
@@ -1,46 +0,0 @@
1
- import { CronJobModel, DaemonSetModel, DeploymentModel, EventModel, IngressModel, JobModel, PodModel, ResourceModel, StatefulSetModel, NetworkPolicyModel, } from '../models';
2
- const ModelMap = {
3
- Deployment: DeploymentModel,
4
- DaemonSet: DaemonSetModel,
5
- StatefulSet: StatefulSetModel,
6
- CronJob: CronJobModel,
7
- Job: JobModel,
8
- Pod: PodModel,
9
- Event: EventModel,
10
- Ingress: IngressModel,
11
- NetworkPolicy: NetworkPolicyModel,
12
- };
13
- class ModelPlugin {
14
- _globalStore;
15
- init(globalStore) {
16
- this._globalStore = globalStore;
17
- }
18
- async processData(res) {
19
- const { kind, apiVersion } = res;
20
- const items = await Promise.all(res.items.map(item => {
21
- const newItem = { ...item };
22
- newItem.kind = kind.replace(/List$/g, '');
23
- newItem.apiVersion = apiVersion;
24
- return this.processItem(newItem);
25
- }));
26
- return {
27
- ...res,
28
- items,
29
- };
30
- }
31
- async processItem(item) {
32
- const Model = ModelMap[item.kind] || ResourceModel;
33
- const result = new Model(item, this._globalStore);
34
- await result.init();
35
- return result;
36
- }
37
- restoreData(res) {
38
- const newRes = { ...res };
39
- newRes.items = res.items.map(item => this.restoreItem(item));
40
- return res;
41
- }
42
- restoreItem(item) {
43
- return item._rawYaml;
44
- }
45
- }
46
- export const modelPlugin = new ModelPlugin();
@@ -1,81 +0,0 @@
1
- import { omit } from 'lodash';
2
- class RelationPlugin {
3
- globalStore;
4
- init(globalStore) {
5
- this.globalStore = globalStore;
6
- }
7
- async processData(res) {
8
- const { kind, apiVersion } = res;
9
- const items = await Promise.all(res.items.map(item => this.processItem({
10
- // TODO: unify this with data-provider getOne method
11
- kind: kind.replace(/List$/g, ''),
12
- apiVersion,
13
- ...omit(item, ['apiVersion', 'kind']),
14
- })));
15
- return {
16
- ...res,
17
- items,
18
- };
19
- }
20
- async processItem(item) {
21
- this.processPodSelector(item);
22
- return item;
23
- }
24
- restoreData(res) {
25
- res.items = res.items.map(item => this.restoreItem(item));
26
- return res;
27
- }
28
- restoreItem(item) {
29
- return {
30
- ...item,
31
- metadata: omit(item.metadata, 'relations'),
32
- };
33
- }
34
- processPodSelector(item) {
35
- const { spec, kind } = item;
36
- const selector = spec?.selector;
37
- if (!selector) {
38
- return item;
39
- }
40
- // TODO: also check apiVersion along with kind
41
- if (!kind ||
42
- ![
43
- 'Deployment',
44
- 'DaemonSet',
45
- 'StatefulSet',
46
- 'ReplicaSet',
47
- 'Job',
48
- 'Service',
49
- ].includes(kind)) {
50
- return item;
51
- }
52
- // empty selector or legacy resources like Service
53
- if (!selector.matchLabels && !selector.matchExpressions) {
54
- selector.matchLabels = {};
55
- for (const key of Object.keys(selector)) {
56
- if (key === 'matchLabels') {
57
- continue;
58
- }
59
- selector.matchLabels[key] = selector[key];
60
- delete selector[key];
61
- }
62
- }
63
- this.appendRelation(item, {
64
- kind: 'Pod',
65
- apiVersion: 'v1',
66
- type: kind === 'Service' ? 'selects' : 'creates',
67
- selector,
68
- inbound: false,
69
- });
70
- return item;
71
- }
72
- appendRelation(item, relation) {
73
- const metadata = item.metadata;
74
- if (!metadata.relations) {
75
- metadata.relations = [];
76
- }
77
- metadata.relations.push(relation);
78
- return item;
79
- }
80
- }
81
- export const relationPlugin = new RelationPlugin();
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export { routerProvider } from './router-provider';
@@ -1,100 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- /* eslint-disable react-hooks/rules-of-hooks */
3
- import { matchResourceFromRoute, ResourceContext, } from '@refinedev/core';
4
- import { parse, stringify } from 'qs';
5
- import React from 'react';
6
- import { useCallback, useContext } from 'react';
7
- import { useHistory, useLocation, Link, matchPath, useParams } from 'react-router-dom';
8
- export const stringifyConfig = {
9
- addQueryPrefix: true,
10
- skipNulls: true,
11
- arrayFormat: 'indices',
12
- encode: false,
13
- encodeValuesOnly: true,
14
- };
15
- export const convertToNumberIfPossible = (value) => {
16
- if (typeof value === 'undefined') {
17
- return value;
18
- }
19
- const num = Number(value);
20
- if (`${num}` === value) {
21
- return num;
22
- }
23
- return value;
24
- };
25
- export const routerProvider = {
26
- go: () => {
27
- const { search: existingSearch, hash: existingHash } = useLocation();
28
- const history = useHistory();
29
- const fn = useCallback(({ to, type, query, hash, options: { keepQuery, keepHash } = {} }) => {
30
- /** Construct query params */
31
- const urlQuery = {
32
- ...(keepQuery &&
33
- existingSearch &&
34
- parse(existingSearch, { ignoreQueryPrefix: true })),
35
- ...query,
36
- };
37
- if (urlQuery.to) {
38
- urlQuery.to = encodeURIComponent(`${urlQuery.to}`);
39
- }
40
- const hasUrlQuery = Object.keys(urlQuery).length > 0;
41
- /** Get hash */
42
- const urlHash = `#${(hash || (keepHash && existingHash) || '').replace(/^#/, '')}`;
43
- const hasUrlHash = urlHash.length > 1;
44
- const urlTo = to || '';
45
- const fullPath = `${urlTo}${hasUrlQuery ? stringify(urlQuery, stringifyConfig) : ''}${hasUrlHash ? urlHash : ''}`;
46
- if (type === 'path') {
47
- return fullPath;
48
- }
49
- /** Navigate to the url */
50
- return history[type || 'push'](fullPath);
51
- }, [existingHash, existingSearch, history]);
52
- return fn;
53
- },
54
- back: () => {
55
- const history = useHistory();
56
- const fn = useCallback(() => {
57
- history.go(-1);
58
- }, [history]);
59
- return fn;
60
- },
61
- parse: () => {
62
- let params = useParams();
63
- const { pathname, search } = useLocation();
64
- const { resources } = useContext(ResourceContext);
65
- const { resource, action, matchedRoute } = React.useMemo(() => {
66
- return matchResourceFromRoute(pathname, resources);
67
- }, [resources, pathname]);
68
- // params is empty when useParams is used in a component that is not a child of a Route
69
- if (Object.entries(params).length === 0 && matchedRoute) {
70
- params = matchPath(matchedRoute, pathname)?.params || {};
71
- }
72
- const fn = useCallback(() => {
73
- const parsedSearch = parse(search, { ignoreQueryPrefix: true });
74
- const combinedParams = {
75
- ...params,
76
- ...parsedSearch,
77
- };
78
- const response = {
79
- ...(resource && { resource }),
80
- ...(action && { action }),
81
- ...(parsedSearch?.id && { id: decodeURIComponent(parsedSearch.id) }),
82
- // ...(params?.action && { action: params.action }), // lets see if there is a need for this
83
- pathname,
84
- params: {
85
- ...combinedParams,
86
- current: convertToNumberIfPossible(combinedParams.current),
87
- pageSize: convertToNumberIfPossible(combinedParams.pageSize),
88
- to: combinedParams.to
89
- ? decodeURIComponent(combinedParams.to)
90
- : undefined,
91
- },
92
- };
93
- return response;
94
- }, [pathname, search, params, resource, action]);
95
- return fn;
96
- },
97
- Link: React.forwardRef(function RefineLink(props, ref) {
98
- return _jsx(Link, { ...props, ref: ref });
99
- }),
100
- };
@@ -1 +0,0 @@
1
- export * from './resource';
@@ -1,12 +0,0 @@
1
- export var RESOURCE_GROUP;
2
- (function (RESOURCE_GROUP) {
3
- RESOURCE_GROUP["WORKLOAD"] = "WORKLOAD";
4
- RESOURCE_GROUP["STORAGE"] = "STORAGE";
5
- RESOURCE_GROUP["NETWORK"] = "NETWORK";
6
- RESOURCE_GROUP["CLUSTER"] = "CLUSTER";
7
- })(RESOURCE_GROUP || (RESOURCE_GROUP = {}));
8
- export var FormType;
9
- (function (FormType) {
10
- FormType["PAGE"] = "PAGE";
11
- FormType["MODAL"] = "MODAL";
12
- })(FormType || (FormType = {}));
@@ -1,8 +0,0 @@
1
- export function addId(arr, idKey) {
2
- return arr.map(e => {
3
- return {
4
- id: e[idKey],
5
- ...e,
6
- };
7
- });
8
- }
@@ -1,9 +0,0 @@
1
- export function download(filename, content) {
2
- const element = document.createElement('a');
3
- element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(content));
4
- element.setAttribute('download', filename);
5
- element.style.display = 'none';
6
- document.body.appendChild(element);
7
- element.click();
8
- document.body.removeChild(element);
9
- }
@@ -1,53 +0,0 @@
1
- export function isNetworkError(errors) {
2
- if (errors?.some(error => error?.code || error?.reason)) {
3
- return false;
4
- }
5
- else {
6
- return true;
7
- }
8
- }
9
- export function getSubmitError(errorResponse, text, i18n) {
10
- return !errorResponse ? i18n.t('dovetail.network_error') : text;
11
- }
12
- export function getCommonErrors(responseBody, i18n) {
13
- if (!(responseBody?.message ||
14
- responseBody?.code ||
15
- responseBody?.reason ||
16
- responseBody?.details ||
17
- responseBody?.graphQLErrors)) {
18
- return [];
19
- }
20
- const causes = responseBody.details?.causes || responseBody.graphQLErrors || [];
21
- if (causes.length) {
22
- return causes.map(cause => {
23
- let params = {};
24
- let message = cause.message;
25
- try {
26
- const info = JSON.parse(cause.message);
27
- params = info.params;
28
- message = info.message;
29
- }
30
- catch {
31
- return i18n.t([
32
- `error.${cause.reason}`,
33
- `error.${cause.code}`,
34
- `${message}${cause.field ? `(${cause.field})` : ''}`,
35
- ], {
36
- ...params,
37
- fallbackLng: '',
38
- });
39
- }
40
- return i18n.t([
41
- `error.${cause.reason}`,
42
- `error.${cause.code}`,
43
- `${message}${cause.field ? `(${cause.field})` : ''}`,
44
- ], {
45
- ...params,
46
- fallbackLng: '',
47
- });
48
- });
49
- }
50
- return [
51
- i18n.t([`error.${responseBody.code}`, `error.${responseBody.reason}`, responseBody.message || ''], { fallbackLng: '' }),
52
- ];
53
- }
@@ -1,9 +0,0 @@
1
- import { BASE_INIT_VALUE } from 'src/constants/k8s';
2
- export function getInitialValues(config) {
3
- return config.initValue || {
4
- apiVersion: config.apiVersion,
5
- kind: config.kind,
6
- ...BASE_INIT_VALUE,
7
- spec: {},
8
- };
9
- }
@@ -1,6 +0,0 @@
1
- export function getApiVersion(resourceBasePath) {
2
- return resourceBasePath.replace(/^(\/api\/)|(\/apis\/)/, '');
3
- }
4
- export function pruneBeforeEdit(v) {
5
- delete v.id;
6
- }
@@ -1,15 +0,0 @@
1
- export function toLabelStrings(labels = {}) {
2
- return Object.keys(labels).map(key => `${key}/${labels[key]}`);
3
- }
4
- export function toLabelsArray(labels = {}) {
5
- return Object.keys(labels).map(key => ({
6
- key,
7
- value: labels[key],
8
- }));
9
- }
10
- export function toLabelsRecord(labels) {
11
- return labels.reduce((prev, cur) => {
12
- prev[cur.key] = cur.value;
13
- return prev;
14
- }, {});
15
- }
@@ -1,12 +0,0 @@
1
- export function matchSelector(pod, selector) {
2
- let match = true;
3
- // TODO: support complete selector match strategy
4
- // https://github.com/rancher/dashboard/blob/master/shell/utils/selector.js#L166
5
- for (const key in selector.matchLabels) {
6
- if (!pod.metadata?.labels?.[key] ||
7
- pod.metadata.labels?.[key] !== selector.matchLabels[key]) {
8
- match = false;
9
- }
10
- }
11
- return match;
12
- }
@@ -1,33 +0,0 @@
1
- import { getApiVersion } from 'src/utils/k8s';
2
- import { resolveRef } from 'src/utils/schema';
3
- class K8sOpenAPI {
4
- resourceBasePath;
5
- response = null;
6
- apiVersion;
7
- constructor(resourceBasePath) {
8
- this.resourceBasePath = resourceBasePath;
9
- this.apiVersion = getApiVersion(resourceBasePath);
10
- }
11
- async fetch() {
12
- const response = await fetch(`/api/sks/api/v1/clusters/sks-mgmt/proxy/openapi/v3${this.resourceBasePath}`);
13
- return response.json();
14
- }
15
- async findSchema(kind) {
16
- const result = this.response || (await this.fetch());
17
- const schema = Object.values(result.components.schemas).find(schema => schema['x-kubernetes-group-version-kind']?.some(({ kind: schemaKind, version: schemaVersion, group: schemaGroup }) => kind === schemaKind &&
18
- this.apiVersion === `${schemaGroup ? schemaGroup + '/' : ''}${schemaVersion}`));
19
- if (schema) {
20
- resolveRef(schema, result.components.schemas, {
21
- prune: {
22
- description: true,
23
- optional: false,
24
- fields: [],
25
- metadata: true,
26
- xProperty: true,
27
- },
28
- });
29
- }
30
- return schema;
31
- }
32
- }
33
- export default K8sOpenAPI;
@@ -1,117 +0,0 @@
1
- import { pick } from 'lodash';
2
- export function generateValueFromSchema(schema, options) {
3
- const { generateValue } = options;
4
- if (!schema) {
5
- return {};
6
- }
7
- switch (true) {
8
- case schema.type === 'string' && 'enum' in schema && Boolean(schema.enum?.length):
9
- return generateValue?.(schema) || schema.enum?.[0];
10
- case schema.type === 'string':
11
- return generateValue?.(schema) || '';
12
- case schema.type === 'boolean':
13
- return generateValue?.(schema) || false;
14
- case schema.type === 'array':
15
- if (!schema.minItems ||
16
- !schema.items ||
17
- typeof schema.items === 'boolean' ||
18
- Array.isArray(schema.items)) {
19
- return generateValue?.(schema) || [];
20
- }
21
- return new Array(schema.minItems).fill(generateValueFromSchema(schema.items, options));
22
- case schema.type === 'number':
23
- case schema.type === 'integer':
24
- return generateValue?.(schema) || 0;
25
- case schema.type === 'object': {
26
- const obj = {};
27
- for (const key in schema.properties) {
28
- obj[key] = generateValueFromSchema(schema.properties[key], options);
29
- }
30
- return obj;
31
- }
32
- case Array.isArray(schema.type) && 'anyOf' in schema && Boolean(schema.anyOf?.length):
33
- case Array.isArray(schema.type) &&
34
- 'oneOf' in schema &&
35
- Boolean(schema.oneOf?.length):
36
- {
37
- const subSchema = (schema.anyOf || schema.oneOf)?.[0];
38
- return generateValueFromSchema(subSchema, options);
39
- }
40
- case 'allOf' in schema && Boolean(schema.allOf?.length):
41
- return generateValueFromSchema(schema.allOf?.[0], options);
42
- default:
43
- return undefined;
44
- }
45
- }
46
- export function generateSchemaTypeValue(schema) {
47
- return generateValueFromSchema(schema, {
48
- generateValue(schema) {
49
- if (schema.type === 'array' && schema.items) {
50
- return generateSchemaTypeValue(schema.items);
51
- }
52
- else {
53
- return schema.type;
54
- }
55
- },
56
- });
57
- }
58
- export function resolveRef(schema, schemas, options) {
59
- const { prune } = options;
60
- if (schema.$ref) {
61
- const refKey = schema.$ref.replace('#/components/schemas/', '');
62
- Object.assign(schema, schemas[refKey]);
63
- if (prune.metadata &&
64
- [
65
- 'io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta',
66
- 'io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta',
67
- ].some(k => refKey.includes(k)) &&
68
- schema.properties) {
69
- schema.properties = pick(schema.properties, [
70
- 'name',
71
- 'namespace',
72
- 'annotations',
73
- 'labels',
74
- ]);
75
- }
76
- delete schema.$ref;
77
- }
78
- for (const schemaKey in schema) {
79
- if (prune.xProperty &&
80
- schemaKey.startsWith('x-') &&
81
- schemaKey !== 'x-kubernetes-group-version-kind') {
82
- delete schema[schemaKey];
83
- }
84
- }
85
- switch (true) {
86
- case schema.type === 'array':
87
- if (Array.isArray(schema.items)) {
88
- schema.items.forEach(item => resolveRef(item, schemas, options));
89
- }
90
- else if (typeof schema.items === 'object') {
91
- resolveRef(schema.items, schemas, options);
92
- }
93
- break;
94
- case schema.type === 'object':
95
- for (const key in schema.properties) {
96
- const subSchema = schema.properties[key];
97
- if (prune.optional && !schema.required?.includes(key)) {
98
- delete schema.properties[key];
99
- }
100
- if (prune.fields.includes(key)) {
101
- delete schema.properties[key];
102
- }
103
- resolveRef(subSchema, schemas, options);
104
- }
105
- if (schema.additionalProperties) {
106
- resolveRef(schema.additionalProperties, schemas, options);
107
- }
108
- break;
109
- case !!(schema.allOf && schema.allOf[0]):
110
- resolveRef(schema.allOf?.[0], schemas, options);
111
- default:
112
- }
113
- if (prune.description) {
114
- delete schema.description;
115
- }
116
- return schema;
117
- }
@@ -1,12 +0,0 @@
1
- export function matchSelector(pod, selector) {
2
- let match = true;
3
- // TODO: support complete selector match strategy
4
- // https://github.com/rancher/dashboard/blob/master/shell/utils/selector.js#L166
5
- for (const key in selector.matchLabels) {
6
- if (!pod.metadata?.labels?.[key] ||
7
- pod.metadata.labels?.[key] !== selector.matchLabels[key]) {
8
- match = false;
9
- }
10
- }
11
- return match;
12
- }
@@ -1,6 +0,0 @@
1
- export function shortenedImage(image) {
2
- return (image || '')
3
- .replace(/^(index\.)?docker.io\/(library\/)?/, '')
4
- .replace(/:latest$/, '')
5
- .replace(/^(.*@sha256:)([0-9a-f]{8})[0-9a-f]+$/i, '$1$2…');
6
- }
@@ -1,46 +0,0 @@
1
- export function getSecondsDiff(startDate, endDate) {
2
- return Math.round(Math.abs(Date.parse(endDate) - Date.parse(startDate)) / 1000);
3
- }
4
- export function elapsedTime(seconds, i18nMap) {
5
- const { min, sec, hr, day } = i18nMap;
6
- if (!seconds) {
7
- return {};
8
- }
9
- if (seconds < 120) {
10
- return {
11
- diff: 1,
12
- label: `${seconds} ${sec}`,
13
- };
14
- }
15
- const minutes = Math.floor(seconds / 60);
16
- if (minutes < 10) {
17
- return {
18
- diff: 1,
19
- label: `${minutes} ${min} ${seconds - minutes * 60} ${sec}`,
20
- };
21
- }
22
- const hours = Math.floor(seconds / 3600);
23
- if (hours < 3) {
24
- return {
25
- diff: 60,
26
- label: `${minutes} ${min}`,
27
- };
28
- }
29
- const days = Math.floor(seconds / (3600 * 24));
30
- if (days > 1) {
31
- return {
32
- diff: 60,
33
- label: `${days} ${day} ${hours - days * 24} ${hr}`,
34
- };
35
- }
36
- if (hours > 7) {
37
- return {
38
- diff: 60,
39
- label: `${hours} ${hr}`,
40
- };
41
- }
42
- return {
43
- diff: 60,
44
- label: `${hours} ${hr} ${minutes - hours * 60} ${min}`,
45
- };
46
- }