@dovetail-v2/refine 0.0.37-bowen.3 → 0.0.38

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-bfd3b791.js → MonacoYamlDiffEditor-5aa83c05.js} +1 -1
  2. package/dist/{index-fd06f1a3.js → index-93ddd906.js} +13 -25
  3. package/dist/refine.js +1 -1
  4. package/dist/refine.umd.cjs +12 -24
  5. package/dist/style.css +1 -2
  6. package/lib/src/Dovetail.d.ts +0 -1
  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/ResourceCRUD/ResourceCRUD.d.ts +1 -1
  10. package/lib/src/components/YamlForm/index.d.ts +4 -0
  11. package/lib/src/hooks/useEagleForm.d.ts +2 -1
  12. package/lib/src/hooks/useModal.d.ts +0 -0
  13. package/lib/src/model/cronjob-model.d.ts +9 -0
  14. package/lib/src/model/index.d.ts +6 -0
  15. package/lib/src/model/job-model.d.ts +10 -0
  16. package/lib/src/model/pod-metrics-model.d.ts +7 -0
  17. package/lib/src/model/pod-model.d.ts +15 -0
  18. package/lib/src/model/resource-model.d.ts +17 -0
  19. package/lib/src/model/workload-model.d.ts +17 -0
  20. package/lib/src/types/metric.d.ts +25 -0
  21. package/lib/src/types/resource.d.ts +0 -2
  22. package/package.json +1 -1
  23. package/lib/src/App.js +0 -91
  24. package/lib/src/Dovetail.js +0 -45
  25. package/lib/src/components/Breadcrumb/index.js +0 -20
  26. package/lib/src/components/ConditionsTable/ConditionsTable.js +0 -56
  27. package/lib/src/components/ConditionsTable/index.js +0 -1
  28. package/lib/src/components/CreateButton/index.js +0 -10
  29. package/lib/src/components/CronJobDropdown/index.js +0 -26
  30. package/lib/src/components/CronjobJobsTable/index.js +0 -49
  31. package/lib/src/components/DeleteButton/index.js +0 -13
  32. package/lib/src/components/DeleteManyButton/index.js +0 -16
  33. package/lib/src/components/DrawerShow/DrawerShow.js +0 -13
  34. package/lib/src/components/DrawerShow/index.js +0 -1
  35. package/lib/src/components/EditButton/index.js +0 -13
  36. package/lib/src/components/EditField/index.js +0 -47
  37. package/lib/src/components/ErrorContent/index.js +0 -36
  38. package/lib/src/components/EventsTable/EventsTable.js +0 -59
  39. package/lib/src/components/EventsTable/index.js +0 -1
  40. package/lib/src/components/Form/KeyValueListWidget.js +0 -56
  41. package/lib/src/components/Form/MetadataForm.js +0 -9
  42. package/lib/src/components/Form/NameInputWidget.js +0 -50
  43. package/lib/src/components/Form/NamespaceSelectWidget.js +0 -21
  44. package/lib/src/components/Form/index.js +0 -4
  45. package/lib/src/components/Form/widget.js +0 -1
  46. package/lib/src/components/FormErrorAlert/index.js +0 -8
  47. package/lib/src/components/FormLayout/index.js +0 -21
  48. package/lib/src/components/FormModal/index.js +0 -51
  49. package/lib/src/components/ImageNames/index.js +0 -14
  50. package/lib/src/components/IngressRulesComponent/index.js +0 -11
  51. package/lib/src/components/IngressRulesTable/IngressRulesTable.js +0 -51
  52. package/lib/src/components/IngressRulesTable/index.js +0 -1
  53. package/lib/src/components/K8sDropdown/index.js +0 -31
  54. package/lib/src/components/KeyValue/KeyValue.js +0 -27
  55. package/lib/src/components/KeyValue/index.js +0 -1
  56. package/lib/src/components/KeyValueData/index.js +0 -50
  57. package/lib/src/components/Layout/index.js +0 -39
  58. package/lib/src/components/ListPage/index.js +0 -25
  59. package/lib/src/components/Menu/index.js +0 -36
  60. package/lib/src/components/NamespacesFilter/index.js +0 -34
  61. package/lib/src/components/NetworkPolicyRulesTable/NetworkPolicyRulesTable.js +0 -77
  62. package/lib/src/components/NetworkPolicyRulesTable/index.js +0 -1
  63. package/lib/src/components/PageShow/PageShow.js +0 -11
  64. package/lib/src/components/PageShow/index.js +0 -1
  65. package/lib/src/components/PodContainersTable/PodContainersTable.js +0 -78
  66. package/lib/src/components/PodContainersTable/index.js +0 -1
  67. package/lib/src/components/PodLog/index.js +0 -136
  68. package/lib/src/components/ReferenceLink/index.js +0 -17
  69. package/lib/src/components/RefineForm/RefineFormContent.d.ts +0 -10
  70. package/lib/src/components/RefineForm/RefineFormModal.d.ts +0 -8
  71. package/lib/src/components/RefineForm/RefineFormPage.d.ts +0 -7
  72. package/lib/src/components/RefineForm/index.d.ts +0 -3
  73. package/lib/src/components/RefineForm/type.d.ts +0 -20
  74. package/lib/src/components/RefineForm/useRefineForm.d.ts +0 -10
  75. package/lib/src/components/ResourceCRUD/ResourceCRUD.js +0 -15
  76. package/lib/src/components/ResourceCRUD/create/index.js +0 -13
  77. package/lib/src/components/ResourceCRUD/index.js +0 -4
  78. package/lib/src/components/ResourceCRUD/list/index.js +0 -19
  79. package/lib/src/components/ResourceCRUD/show/index.js +0 -6
  80. package/lib/src/components/ResourceLink/index.js +0 -21
  81. package/lib/src/components/ResourceUsageBar/index.js +0 -81
  82. package/lib/src/components/Separator/index.js +0 -11
  83. package/lib/src/components/ShowContent/ShowContent.js +0 -157
  84. package/lib/src/components/ShowContent/fields.js +0 -157
  85. package/lib/src/components/ShowContent/index.js +0 -2
  86. package/lib/src/components/StateTag/StateTag.js +0 -22
  87. package/lib/src/components/StateTag/index.js +0 -1
  88. package/lib/src/components/Table/ErrorContent.js +0 -36
  89. package/lib/src/components/Table/TableToolBar.js +0 -14
  90. package/lib/src/components/Table/TableWidgets.js +0 -28
  91. package/lib/src/components/Table/index.js +0 -69
  92. package/lib/src/components/Tags/index.js +0 -22
  93. package/lib/src/components/Time/index.js +0 -14
  94. package/lib/src/components/WorkloadDropdown/index.js +0 -24
  95. package/lib/src/components/WorkloadPodsTable/WorkloadPodsTable.js +0 -39
  96. package/lib/src/components/WorkloadPodsTable/index.js +0 -1
  97. package/lib/src/components/WorkloadReplicas/index.js +0 -50
  98. package/lib/src/components/YamlEditor/MonacoYamlDiffEditor.js +0 -34
  99. package/lib/src/components/YamlEditor/MonacoYamlEditor.js +0 -149
  100. package/lib/src/components/YamlEditor/YamlEditorComponent.js +0 -90
  101. package/lib/src/components/YamlEditor/index.js +0 -1
  102. package/lib/src/components/YamlEditor/style.js +0 -102
  103. package/lib/src/components/YamlEditor/yaml.worker.js +0 -1
  104. package/lib/src/components/YamlForm/index.js +0 -61
  105. package/lib/src/components/index.js +0 -38
  106. package/lib/src/constants/index.js +0 -2
  107. package/lib/src/constants/k8s.js +0 -203
  108. package/lib/src/constants/state.js +0 -15
  109. package/lib/src/contexts/component.js +0 -3
  110. package/lib/src/contexts/configs.js +0 -3
  111. package/lib/src/contexts/global-store.js +0 -3
  112. package/lib/src/contexts/index.js +0 -3
  113. package/lib/src/hooks/index.js +0 -7
  114. package/lib/src/hooks/useDeleteModal/index.js +0 -1
  115. package/lib/src/hooks/useDeleteModal/useDeleteManyModal.js +0 -31
  116. package/lib/src/hooks/useDeleteModal/useDeleteModal.js +0 -38
  117. package/lib/src/hooks/useDownloadYAML.js +0 -10
  118. package/lib/src/hooks/useEagleForm.js +0 -177
  119. package/lib/src/hooks/useEagleTable/columns.js +0 -246
  120. package/lib/src/hooks/useEagleTable/index.js +0 -2
  121. package/lib/src/hooks/useEagleTable/useEagleTable.js +0 -63
  122. package/lib/src/hooks/useEdit.js +0 -19
  123. package/lib/src/hooks/useGlobalStore.js +0 -5
  124. package/lib/src/hooks/useK8sYamlEditor.js +0 -37
  125. package/lib/src/hooks/useOpenForm.js +0 -43
  126. package/lib/src/hooks/useSchema.js +0 -37
  127. package/lib/src/hooks/useSubmitForm.js +0 -42
  128. package/lib/src/i18n.js +0 -19
  129. package/lib/src/index.js +0 -13
  130. package/lib/src/locales/en-US/dovetail.json +0 -18
  131. package/lib/src/locales/en-US/index.js +0 -4
  132. package/lib/src/locales/index.js +0 -6
  133. package/lib/src/locales/zh-CN/dovetail.json +0 -91
  134. package/lib/src/locales/zh-CN/index.js +0 -4
  135. package/lib/src/main.js +0 -12
  136. package/lib/src/models/cronjob-model.js +0 -32
  137. package/lib/src/models/daemonset-model.js +0 -17
  138. package/lib/src/models/deployment-model.js +0 -17
  139. package/lib/src/models/event-model.js +0 -11
  140. package/lib/src/models/index.js +0 -14
  141. package/lib/src/models/ingress-model.js +0 -24
  142. package/lib/src/models/job-model.js +0 -56
  143. package/lib/src/models/network-policy-model.js +0 -10
  144. package/lib/src/models/pod-metrics-model.js +0 -34
  145. package/lib/src/models/pod-model.js +0 -78
  146. package/lib/src/models/resource-model.js +0 -34
  147. package/lib/src/models/service-model.js +0 -17
  148. package/lib/src/models/statefulset-model.js +0 -17
  149. package/lib/src/models/types/index.js +0 -1
  150. package/lib/src/models/types/metric.js +0 -1
  151. package/lib/src/models/workload-base-model.js +0 -22
  152. package/lib/src/models/workload-model.js +0 -51
  153. package/lib/src/pages/configmaps/index.js +0 -15
  154. package/lib/src/pages/cronjobs/create/index.js +0 -6
  155. package/lib/src/pages/cronjobs/index.js +0 -3
  156. package/lib/src/pages/cronjobs/list/index.js +0 -42
  157. package/lib/src/pages/cronjobs/show/index.js +0 -16
  158. package/lib/src/pages/daemonsets/create/index.js +0 -6
  159. package/lib/src/pages/daemonsets/index.js +0 -3
  160. package/lib/src/pages/daemonsets/list/index.js +0 -32
  161. package/lib/src/pages/daemonsets/show/index.js +0 -16
  162. package/lib/src/pages/deployments/create/index.js +0 -7
  163. package/lib/src/pages/deployments/index.js +0 -3
  164. package/lib/src/pages/deployments/list/index.js +0 -26
  165. package/lib/src/pages/deployments/show/index.js +0 -16
  166. package/lib/src/pages/ingresses/index.js +0 -26
  167. package/lib/src/pages/jobs/index.js +0 -34
  168. package/lib/src/pages/networkPolicies/index.js +0 -67
  169. package/lib/src/pages/pods/create/index.js +0 -6
  170. package/lib/src/pages/pods/index.js +0 -3
  171. package/lib/src/pages/pods/list/index.js +0 -81
  172. package/lib/src/pages/pods/show/index.js +0 -54
  173. package/lib/src/pages/secrets/index.js +0 -15
  174. package/lib/src/pages/services/index.js +0 -26
  175. package/lib/src/pages/statefulsets/create/index.js +0 -6
  176. package/lib/src/pages/statefulsets/index.js +0 -3
  177. package/lib/src/pages/statefulsets/list/index.js +0 -26
  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,4 +1,4 @@
1
- import { j as jsxRuntimeExports } from "./index-fd06f1a3.js";
1
+ import { j as jsxRuntimeExports } from "./index-93ddd906.js";
2
2
  import * as monaco from "monaco-editor";
3
3
  import { useRef, useEffect } from "react";
4
4
  import "i18next";
@@ -10415,7 +10415,7 @@ const CronjobJobsTable = ({
10415
10415
  hideCreate: true
10416
10416
  }), /* @__PURE__ */ jsxRuntimeExports.jsx(Table$1, {
10417
10417
  tableKey: "cronjobs",
10418
- loading: !isLoading,
10418
+ loading: isLoading,
10419
10419
  data: dataSource || [],
10420
10420
  columns,
10421
10421
  rowKey: "id",
@@ -22312,7 +22312,7 @@ const Separator = () => {
22312
22312
  });
22313
22313
  };
22314
22314
  const MonacoYamlEditor = React__default.lazy(() => Promise.resolve().then(() => MonacoYamlEditor$2));
22315
- const MonacoYamlDiffEditor = React__default.lazy(() => import("./MonacoYamlDiffEditor-bfd3b791.js"));
22315
+ const MonacoYamlDiffEditor = React__default.lazy(() => import("./MonacoYamlDiffEditor-5aa83c05.js"));
22316
22316
  const YamlEditorComponent = forwardRef(
22317
22317
  function YamlEditorComponent2(props, ref) {
22318
22318
  const {
@@ -22985,12 +22985,11 @@ function YamlForm(props) {
22985
22985
  })
22986
22986
  });
22987
22987
  }
22988
- const FormModal_aey716 = "";
22988
+ const FormModal_fo4d8s = "";
22989
22989
  const FullscreenModalStyle = "f1nltbcu";
22990
- const FormDescStyle = "f1qgcca6";
22991
- const ErrorStyle = "e1tl3wq2";
22990
+ const ErrorStyle = "e1qgcca6";
22992
22991
  function FormModal(props) {
22993
- var _a, _b, _c, _d;
22992
+ var _a;
22994
22993
  const {
22995
22994
  resource: resourceFromProps,
22996
22995
  id,
@@ -23011,12 +23010,12 @@ function FormModal(props) {
23011
23010
  });
23012
23011
  const okText = i18n2.t(id ? "dovetail.save" : "dovetail.create");
23013
23012
  const yamlFormProps = useMemo(() => {
23014
- var _a2, _b2, _c2;
23013
+ var _a2, _b, _c;
23015
23014
  return {
23016
23015
  ...props.formProps,
23017
23016
  transformInitValues: (_a2 = config.formConfig) == null ? void 0 : _a2.transformInitValues,
23018
- transformApplyValues: (_b2 = config.formConfig) == null ? void 0 : _b2.transformApplyValues,
23019
- initialValues: ((_c2 = props.formProps) == null ? void 0 : _c2.initialValues) || (config == null ? void 0 : config.initValue),
23017
+ transformApplyValues: (_b = config.formConfig) == null ? void 0 : _b.transformApplyValues,
23018
+ initialValues: ((_c = props.formProps) == null ? void 0 : _c.initialValues) || (config == null ? void 0 : config.initValue),
23020
23019
  id,
23021
23020
  action: id ? "edit" : "create",
23022
23021
  isShowLayout: false,
@@ -23069,10 +23068,10 @@ function FormModal(props) {
23069
23068
  return i18n2.t(id ? "dovetail.save_failed" : "dovetail.create_failed");
23070
23069
  }
23071
23070
  })();
23072
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(Modal, {
23071
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Modal, {
23073
23072
  className: FullscreenModalStyle,
23074
23073
  width: "calc(100vw - 16px)",
23075
- title: ((_b = config.formConfig) == null ? void 0 : _b.formTitle) || title,
23074
+ title,
23076
23075
  error: errorText ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
23077
23076
  className: ErrorStyle,
23078
23077
  children: [/* @__PURE__ */ jsxRuntimeExports.jsx(ExclamationErrorCircleFill16RedIcon, {}), " ", errorText]
@@ -23084,10 +23083,7 @@ function FormModal(props) {
23084
23083
  onCancel,
23085
23084
  destroyOnClose: true,
23086
23085
  fullscreen: true,
23087
- children: [((_c = config.formConfig) == null ? void 0 : _c.formDesc) ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
23088
- className: FormDescStyle,
23089
- children: (_d = config.formConfig) == null ? void 0 : _d.formDesc
23090
- }) : void 0, formEle]
23086
+ children: formEle
23091
23087
  });
23092
23088
  }
23093
23089
  const RefineFormPage_aqoiay = "";
@@ -24059,15 +24055,7 @@ const useEagleTable = (params) => {
24059
24055
  };
24060
24056
  const styles = "";
24061
24057
  const Dovetail = (props) => {
24062
- const {
24063
- resourcesConfig,
24064
- urlPrefix = "",
24065
- Layout: Layout2,
24066
- history,
24067
- globalStore,
24068
- accessControlProvider,
24069
- routerProvider: customRouterProvider
24070
- } = props;
24058
+ const { resourcesConfig, urlPrefix = "", Layout: Layout2, history, globalStore, accessControlProvider } = props;
24071
24059
  const msg = useMessage();
24072
24060
  const notCustomResources = useMemo(() => {
24073
24061
  return resourcesConfig.filter((c2) => !c2.isCustom);
@@ -24103,7 +24091,7 @@ const Dovetail = (props) => {
24103
24091
  dataProvider: {
24104
24092
  default: dataProvider(globalStore)
24105
24093
  },
24106
- routerProvider: customRouterProvider || routerProvider,
24094
+ routerProvider,
24107
24095
  liveProvider: liveProvider(globalStore),
24108
24096
  notificationProvider,
24109
24097
  options: {
package/dist/refine.js CHANGED
@@ -1,4 +1,4 @@
1
- import { b5, bJ, A, ay, aA, ai, bl, aI, G, bz, bn, as, w, C, g, bN, al, aM, X, bP, $, a6, bY, aa, bo, bm, b$, ao, aS, t, ag, aX, b_, bK, a$, D, aF, b1, bZ, aG, aw, b8, bM, bO, bx, aj, a0, p, o, bQ, I, aP, av, q, bp, bS, an, aO, ab, ac, Q, ad, az, ah, aY, b0, T, by, b4, N, H, b, ax, M, b7, aU, aT, bR, bj, e, br, U, P, aK, s, Y, bi, aH, bW, bV, aD, aQ, n, am, aJ, v, aR, aE, c3, bL, b2, b9, ba, ak, R, _, a4, a3, b3, a1, bX, a2, a7, f, bE, bH, bD, bC, bF, bG, bA, bs, bv, bw, bu, bt, bq, bb, ap, aN, ae, k, be, i, aB, c2, m, bf, aC, l, au, aL, h, c1, ar, at, aW, aV, aq, S, a_, aZ, c0, bB, bk, bg, bh, V, bU, Z, W, bT, a5, a9, a8, c, bI, af, bc, x, J, d, O, L, K, r, a, z, y, B, E, b6, F, bd, u } from "./index-fd06f1a3.js";
1
+ import { b5, bJ, A, ay, aA, ai, bl, aI, G, bz, bn, as, w, C, g, bN, al, aM, X, bP, $, a6, bY, aa, bo, bm, b$, ao, aS, t, ag, aX, b_, bK, a$, D, aF, b1, bZ, aG, aw, b8, bM, bO, bx, aj, a0, p, o, bQ, I, aP, av, q, bp, bS, an, aO, ab, ac, Q, ad, az, ah, aY, b0, T, by, b4, N, H, b, ax, M, b7, aU, aT, bR, bj, e, br, U, P, aK, s, Y, bi, aH, bW, bV, aD, aQ, n, am, aJ, v, aR, aE, c3, bL, b2, b9, ba, ak, R, _, a4, a3, b3, a1, bX, a2, a7, f, bE, bH, bD, bC, bF, bG, bA, bs, bv, bw, bu, bt, bq, bb, ap, aN, ae, k, be, i, aB, c2, m, bf, aC, l, au, aL, h, c1, ar, at, aW, aV, aq, S, a_, aZ, c0, bB, bk, bg, bh, V, bU, Z, W, bT, a5, a9, a8, c, bI, af, bc, x, J, d, O, L, K, r, a, z, y, B, E, b6, F, bd, u } from "./index-93ddd906.js";
2
2
  import "@cloudtower/eagle";
3
3
  import "@refinedev/core";
4
4
  import "@cloudtower/icons-react";
@@ -10421,7 +10421,7 @@ var __publicField = (obj, key, value) => {
10421
10421
  hideCreate: true
10422
10422
  }), /* @__PURE__ */ jsxRuntimeExports.jsx(Table$1, {
10423
10423
  tableKey: "cronjobs",
10424
- loading: !isLoading,
10424
+ loading: isLoading,
10425
10425
  data: dataSource || [],
10426
10426
  columns,
10427
10427
  rowKey: "id",
@@ -22991,12 +22991,11 @@ var __publicField = (obj, key, value) => {
22991
22991
  })
22992
22992
  });
22993
22993
  }
22994
- const FormModal_aey716 = "";
22994
+ const FormModal_fo4d8s = "";
22995
22995
  const FullscreenModalStyle = "f1nltbcu";
22996
- const FormDescStyle = "f1qgcca6";
22997
- const ErrorStyle = "e1tl3wq2";
22996
+ const ErrorStyle = "e1qgcca6";
22998
22997
  function FormModal(props) {
22999
- var _a, _b, _c, _d;
22998
+ var _a;
23000
22999
  const {
23001
23000
  resource: resourceFromProps,
23002
23001
  id,
@@ -23017,12 +23016,12 @@ var __publicField = (obj, key, value) => {
23017
23016
  });
23018
23017
  const okText = i18n2.t(id ? "dovetail.save" : "dovetail.create");
23019
23018
  const yamlFormProps = React.useMemo(() => {
23020
- var _a2, _b2, _c2;
23019
+ var _a2, _b, _c;
23021
23020
  return {
23022
23021
  ...props.formProps,
23023
23022
  transformInitValues: (_a2 = config.formConfig) == null ? void 0 : _a2.transformInitValues,
23024
- transformApplyValues: (_b2 = config.formConfig) == null ? void 0 : _b2.transformApplyValues,
23025
- initialValues: ((_c2 = props.formProps) == null ? void 0 : _c2.initialValues) || (config == null ? void 0 : config.initValue),
23023
+ transformApplyValues: (_b = config.formConfig) == null ? void 0 : _b.transformApplyValues,
23024
+ initialValues: ((_c = props.formProps) == null ? void 0 : _c.initialValues) || (config == null ? void 0 : config.initValue),
23026
23025
  id,
23027
23026
  action: id ? "edit" : "create",
23028
23027
  isShowLayout: false,
@@ -23075,10 +23074,10 @@ var __publicField = (obj, key, value) => {
23075
23074
  return i18n2.t(id ? "dovetail.save_failed" : "dovetail.create_failed");
23076
23075
  }
23077
23076
  })();
23078
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(eagle.Modal, {
23077
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(eagle.Modal, {
23079
23078
  className: FullscreenModalStyle,
23080
23079
  width: "calc(100vw - 16px)",
23081
- title: ((_b = config.formConfig) == null ? void 0 : _b.formTitle) || title,
23080
+ title,
23082
23081
  error: errorText ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
23083
23082
  className: ErrorStyle,
23084
23083
  children: [/* @__PURE__ */ jsxRuntimeExports.jsx(iconsReact.ExclamationErrorCircleFill16RedIcon, {}), " ", errorText]
@@ -23090,10 +23089,7 @@ var __publicField = (obj, key, value) => {
23090
23089
  onCancel,
23091
23090
  destroyOnClose: true,
23092
23091
  fullscreen: true,
23093
- children: [((_c = config.formConfig) == null ? void 0 : _c.formDesc) ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
23094
- className: FormDescStyle,
23095
- children: (_d = config.formConfig) == null ? void 0 : _d.formDesc
23096
- }) : void 0, formEle]
23092
+ children: formEle
23097
23093
  });
23098
23094
  }
23099
23095
  const RefineFormPage_aqoiay = "";
@@ -24065,15 +24061,7 @@ var __publicField = (obj, key, value) => {
24065
24061
  };
24066
24062
  const styles = "";
24067
24063
  const Dovetail = (props) => {
24068
- const {
24069
- resourcesConfig,
24070
- urlPrefix = "",
24071
- Layout: Layout2,
24072
- history,
24073
- globalStore,
24074
- accessControlProvider,
24075
- routerProvider: customRouterProvider
24076
- } = props;
24064
+ const { resourcesConfig, urlPrefix = "", Layout: Layout2, history, globalStore, accessControlProvider } = props;
24077
24065
  const msg = eagle.useMessage();
24078
24066
  const notCustomResources = React.useMemo(() => {
24079
24067
  return resourcesConfig.filter((c2) => !c2.isCustom);
@@ -24109,7 +24097,7 @@ var __publicField = (obj, key, value) => {
24109
24097
  dataProvider: {
24110
24098
  default: k8sApiProvider.dataProvider(globalStore)
24111
24099
  },
24112
- routerProvider: customRouterProvider || routerProvider,
24100
+ routerProvider,
24113
24101
  liveProvider: k8sApiProvider.liveProvider(globalStore),
24114
24102
  notificationProvider,
24115
24103
  options: {
package/dist/style.css CHANGED
@@ -1526,8 +1526,7 @@
1526
1526
 
1527
1527
  .e1guqlj2{-webkit-flex:1;-ms-flex:1;flex:1;height:100%;margin-bottom:16px;}
1528
1528
  .f1nltbcu.ant-modal.fullscreen .ant-modal-header{padding:60px 128px 32px 128px;}.f1nltbcu.ant-modal.fullscreen .ant-modal-body{padding:0 128px;}.f1nltbcu.ant-modal.fullscreen .ant-modal-footer{padding:15px 128px;}
1529
- .f1qgcca6{margin-bottom:16px;}
1530
- .e1tl3wq2{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:4px;}
1529
+ .e1qgcca6{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:4px;}
1531
1530
  .c1pvtlkp{width:100%;}
1532
1531
  .wfg6u6g{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.wfg6u6g .usage-text{width:50px;text-align:right;}.wfg6u6g .usage-bar{height:12px;width:100px;position:relative;border-radius:2px;}.wfg6u6g .request-anchor{position:absolute;left:10%;top:-3px;height:18px;width:2px;background:#777;z-index:9;}.wfg6u6g .usage-fill-bar{position:absolute;left:0;top:0;height:100%;background:rgba(0,128,255,0.6);z-index:7;}.wfg6u6g .request-bar{position:absolute;left:0;top:0;height:100%;background:#d8deeb;z-index:5;}.wfg6u6g .request-to-limit-bar{position:absolute;right:0;top:0;height:100%;background:#d8deeb;z-index:5;}.wfg6u6g .request-to-limit-bar.no-limit{background:linear-gradient(to right,#d8deeb 50%,#d8deeb 50%);background-size:4px 100%;}.wfg6u6g .request-to-limit-bar.no-limit.exceed-request{background:linear-gradient(to right,#d8deeb 50%,rgba(0,128,255,0.6) 50%);background-size:4px 100%;}
1533
1532
  .mdppgn0.ant-menu{background:#edf0f7;padding:8px;}.mdppgn0.ant-menu .ant-menu-item-selected{background:linear-gradient(90deg,#0080ff,#005ed1);border-radius:6px;box-shadow:0 1px 2px rgba(184,192,204,0.6);color:#fff;}.mdppgn0.ant-menu .ant-menu-item-selected a:hover{color:#fff;}.mdppgn0.ant-menu .ant-menu-item:not(.ant-menu-item-selected):hover{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0.6));border-radius:6px;box-shadow:0 0 4px rgba(235,239,245,0.6),0 8px 16px rgba(129,138,153,0.18);}
@@ -12,7 +12,6 @@ type Props = {
12
12
  history: History;
13
13
  globalStore: GlobalStore;
14
14
  accessControlProvider?: AccessControlProvider;
15
- routerProvider?: any;
16
15
  };
17
16
  export declare const Dovetail: React.FC<Props>;
18
17
  export {};
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ interface ModalInfo {
3
+ resource: string;
4
+ id?: string;
5
+ }
6
+ type ModalContextValue = ModalInfo & {
7
+ open: (info: ModalInfo) => void;
8
+ close: () => void;
9
+ };
10
+ export declare const ModalContext: React.Context<ModalContextValue>;
11
+ declare function ModalContextProvider(props: React.PropsWithChildren<Record<string, unknown>>): JSX.Element;
12
+ export default ModalContextProvider;
@@ -2,6 +2,7 @@ import type { NetworkPolicyIngressRule, NetworkPolicyEgressRule } from 'kubernet
2
2
  import React from 'react';
3
3
  type Props = {
4
4
  ingressOrEgress: NetworkPolicyIngressRule[] | NetworkPolicyEgressRule[];
5
+ kind?: string;
5
6
  };
6
- export declare const NetworkPolicyRulesTable: React.FC<Props>;
7
+ export declare const NetworkPolicyRulesViewer: React.FC<Props>;
7
8
  export {};
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { ResourceConfig } from '../../types';
2
+ import { ResourceConfig } from 'src/types';
3
3
  type Props = {
4
4
  configs: ResourceConfig[];
5
5
  urlPrefix?: string;
@@ -1,4 +1,5 @@
1
1
  /// <reference types="react" />
2
+ import { FormAction } from '@refinedev/core';
2
3
  import useEagleForm from 'src/hooks/useEagleForm';
3
4
  export declare enum SchemaStrategy {
4
5
  Required = "Required",
@@ -7,7 +8,9 @@ export declare enum SchemaStrategy {
7
8
  }
8
9
  export interface YamlFormProps {
9
10
  id?: string;
11
+ action?: FormAction;
10
12
  initialValues?: Record<string, unknown>;
13
+ transformValues?: (values: Record<string, unknown>) => Record<string, unknown>;
11
14
  schemaStrategy?: SchemaStrategy;
12
15
  isShowLayout?: boolean;
13
16
  useFormProps?: Parameters<typeof useEagleForm>[0];
@@ -15,6 +18,7 @@ export interface YamlFormProps {
15
18
  disabled?: boolean;
16
19
  onClick: () => void;
17
20
  }) => void;
21
+ onErrorsChange?: (errors: string[]) => void;
18
22
  onFinish?: () => void;
19
23
  }
20
24
  declare function YamlForm(props: YamlFormProps): JSX.Element;
@@ -20,6 +20,7 @@ export type UseFormProps<TQueryFnData extends BaseRecord = BaseRecord, TError ex
20
20
  isSkipSchema?: boolean;
21
21
  };
22
22
  initialValuesForCreate?: Record<string, unknown>;
23
+ transformValues?: (values: Record<string, unknown>) => Record<string, unknown>;
23
24
  };
24
25
  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
26
  form: FormInstance;
@@ -43,5 +44,5 @@ declare const useEagleForm: <TQueryFnData extends Unstructured = Unstructured &
43
44
  [prop: string]: unknown;
44
45
  } = {
45
46
  [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
+ }, TData extends Unstructured = TQueryFnData, TResponse extends BaseRecord = TData, TResponseError extends HttpError = TError>({ action: actionFromProps, 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, transformValues, }?: UseFormProps<TQueryFnData, TError, TVariables, TData, TResponse, TResponseError>) => UseFormReturnType<TQueryFnData, TError, TVariables, TData, TResponse, TResponseError>;
47
48
  export default useEagleForm;
File without changes
@@ -0,0 +1,9 @@
1
+ import { CronJob } from 'kubernetes-types/batch/v1';
2
+ import { WithId } from '../types';
3
+ import { WorkloadModel } from './workload-model';
4
+ export declare class CronJobModel extends WorkloadModel<CronJob> {
5
+ data: WithId<CronJob>;
6
+ constructor(data: WithId<CronJob>);
7
+ suspend(): WithId<CronJob>;
8
+ resume(): WithId<CronJob>;
9
+ }
@@ -0,0 +1,6 @@
1
+ export * from './job-model';
2
+ export * from './pod-model';
3
+ export * from './pod-metrics-model';
4
+ export * from './resource-model';
5
+ export * from './workload-model';
6
+ export * from './cronjob-model';
@@ -0,0 +1,10 @@
1
+ import { Job } from 'kubernetes-types/batch/v1';
2
+ import { WithId } from '../types';
3
+ import { WorkloadModel } from './workload-model';
4
+ export declare class JobModel extends WorkloadModel<Job> {
5
+ rawYaml: WithId<Job>;
6
+ constructor(rawYaml: WithId<Job>);
7
+ get duration(): number;
8
+ get durationDisplay(): string | undefined;
9
+ get completionsDisplay(): string;
10
+ }
@@ -0,0 +1,7 @@
1
+ import { PodMetrics, ResourceQuantity } from 'src/types/metric';
2
+ import { ResourceModel } from './resource-model';
3
+ export declare class PodMetricsModel extends ResourceModel {
4
+ data: PodMetrics;
5
+ usage: ResourceQuantity;
6
+ constructor(data: PodMetrics);
7
+ }
@@ -0,0 +1,15 @@
1
+ import type { Pod } from 'kubernetes-types/core/v1';
2
+ import { ResourceQuantity } from 'src/types/metric';
3
+ import { WithId } from '../types';
4
+ import { WorkloadModel } from './workload-model';
5
+ export declare class PodModel extends WorkloadModel<Pod> {
6
+ rawYaml: WithId<Pod>;
7
+ request: ResourceQuantity;
8
+ limit: ResourceQuantity;
9
+ constructor(rawYaml: WithId<Pod>);
10
+ get imageNames(): string[];
11
+ get restartCount(): number;
12
+ get readyDisplay(): string;
13
+ get readyContainerCount(): number | undefined;
14
+ get containerCount(): number | undefined;
15
+ }
@@ -0,0 +1,17 @@
1
+ import { Resource } from '../types';
2
+ export declare class ResourceModel implements Resource {
3
+ rawYaml: Resource;
4
+ id: Resource['id'];
5
+ apiVersion: Resource['apiVersion'];
6
+ kind: Resource['kind'];
7
+ metadata: Resource['metadata'];
8
+ constructor(rawYaml: Resource);
9
+ get name(): string | undefined;
10
+ get namespace(): string | undefined;
11
+ get labels(): {
12
+ [name: string]: string;
13
+ } | undefined;
14
+ get annotations(): {
15
+ [name: string]: string;
16
+ } | undefined;
17
+ }
@@ -0,0 +1,17 @@
1
+ import type { DaemonSet, Deployment, StatefulSet } from 'kubernetes-types/apps/v1';
2
+ import type { CronJob, Job } from 'kubernetes-types/batch/v1';
3
+ import { Pod } from 'kubernetes-types/core/v1';
4
+ import { WithId } from '../types';
5
+ import { ResourceModel } from './resource-model';
6
+ type WorkloadTypes = Deployment | StatefulSet | Job | DaemonSet | CronJob | Pod;
7
+ export declare class WorkloadModel<T extends WorkloadTypes = WorkloadTypes> extends ResourceModel {
8
+ rawYaml: WithId<T>;
9
+ constructor(rawYaml: WithId<T>);
10
+ get status(): T['status'];
11
+ get spec(): T['spec'];
12
+ get imageNames(): string[];
13
+ get restartCount(): number;
14
+ redeploy(): WithId<T>;
15
+ scale(value: number): WithId<T>;
16
+ }
17
+ export {};
@@ -0,0 +1,25 @@
1
+ import { Resource } from './resource';
2
+ type Quantity = string;
3
+ export type ContainerMetrics = {
4
+ name: string;
5
+ usage: {
6
+ cpu?: Quantity;
7
+ memory?: Quantity;
8
+ };
9
+ };
10
+ export type PodMetrics = {
11
+ timestamp: string;
12
+ window: string;
13
+ containers: ContainerMetrics[];
14
+ } & Resource;
15
+ export type ResourceQuantity = {
16
+ cpu: {
17
+ si: string;
18
+ value: number;
19
+ };
20
+ memory: {
21
+ si: string;
22
+ value: number;
23
+ };
24
+ };
25
+ export {};
@@ -43,7 +43,5 @@ export type ResourceConfig<Model extends ResourceModel = ResourceModel> = {
43
43
  formType?: FormType;
44
44
  transformInitValues?: (values: Unstructured) => Unstructured;
45
45
  transformApplyValues?: (values: Unstructured) => Unstructured;
46
- formTitle?: string;
47
- formDesc?: string;
48
46
  };
49
47
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dovetail-v2/refine",
3
- "version": "0.0.37-bowen.3",
3
+ "version": "0.0.38",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist",
package/lib/src/App.js DELETED
@@ -1,91 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { createBrowserHistory } from 'history';
3
- import { GlobalStore } from 'k8s-api-provider';
4
- import { useMemo } from 'react';
5
- import { I18nextProvider } from 'react-i18next';
6
- import { Route, Router } from 'react-router-dom';
7
- import { Layout } from './components';
8
- import { CRONJOB_INIT_VALUE, DAEMONSET_INIT_VALUE, STATEFULSET_INIT_VALUE, POD_INIT_VALUE, } from './constants/k8s';
9
- import { Dovetail } from './Dovetail';
10
- import i18n from './i18n';
11
- import { ConfigMapConfig } from './pages/configmaps';
12
- import { CronJobForm, CronJobList, CronJobShow } from './pages/cronjobs';
13
- import { DaemonSetForm, DaemonSetList, DaemonSetShow } from './pages/daemonsets';
14
- import { DeploymentForm, DeploymentList, DeploymentShow } from './pages/deployments';
15
- import { IngressConfig } from './pages/ingresses';
16
- import { JobConfig } from './pages/jobs';
17
- import { NetworkPolicyConfig } from './pages/networkPolicies';
18
- import { PodShow, PodList, PodForm } from './pages/pods';
19
- import { SecretsConfig } from './pages/secrets';
20
- import { ServicesConfig } from './pages/services';
21
- import { StatefulSetShow, StatefulSetList, StatefulSetForm } from './pages/statefulsets';
22
- import { ProviderPlugins } from './plugins';
23
- import { RESOURCE_GROUP, FormType } from './types';
24
- function App() {
25
- const histroy = createBrowserHistory();
26
- const resourcesConfig = useMemo(() => {
27
- return [
28
- {
29
- name: 'cronjobs',
30
- basePath: '/apis/batch/v1beta1',
31
- kind: 'CronJob',
32
- parent: RESOURCE_GROUP.WORKLOAD,
33
- label: 'CronJobs',
34
- initValue: CRONJOB_INIT_VALUE,
35
- isCustom: true,
36
- },
37
- {
38
- name: 'daemonsets',
39
- basePath: '/apis/apps/v1',
40
- kind: 'DaemonSet',
41
- parent: RESOURCE_GROUP.WORKLOAD,
42
- label: 'DaemonSets',
43
- initValue: DAEMONSET_INIT_VALUE,
44
- isCustom: true,
45
- },
46
- {
47
- name: 'deployments',
48
- basePath: '/apis/apps/v1',
49
- kind: 'Deployment',
50
- parent: RESOURCE_GROUP.WORKLOAD,
51
- label: 'Deployments',
52
- formType: FormType.MODAL,
53
- FormModal: DeploymentForm,
54
- isCustom: true,
55
- },
56
- {
57
- name: 'statefulsets',
58
- basePath: '/apis/apps/v1',
59
- kind: 'StatefulSet',
60
- parent: RESOURCE_GROUP.WORKLOAD,
61
- label: 'StatefulSets',
62
- initValue: STATEFULSET_INIT_VALUE,
63
- isCustom: true,
64
- },
65
- {
66
- name: 'pods',
67
- basePath: '/api/v1',
68
- kind: 'Pod',
69
- parent: RESOURCE_GROUP.WORKLOAD,
70
- label: 'Pods',
71
- initValue: POD_INIT_VALUE,
72
- isCustom: true,
73
- },
74
- JobConfig,
75
- IngressConfig,
76
- NetworkPolicyConfig,
77
- ConfigMapConfig,
78
- SecretsConfig,
79
- ServicesConfig,
80
- ];
81
- }, []);
82
- const globalStore = useMemo(() => {
83
- return new GlobalStore({
84
- apiUrl: '/api/k8s',
85
- watchWsApiUrl: 'api/sks-ws/k8s',
86
- prefix: 'default',
87
- }, ProviderPlugins);
88
- }, []);
89
- return (_jsx(I18nextProvider, { i18n: i18n, children: _jsx(Dovetail, { resourcesConfig: resourcesConfig, Layout: Layout, history: histroy, globalStore: globalStore, children: _jsxs(Router, { history: histroy, children: [_jsx(Route, { path: "/cronjobs", exact: true, children: _jsx(CronJobList, {}) }), _jsx(Route, { path: "/cronjobs/show", children: _jsx(CronJobShow, {}) }), _jsx(Route, { path: "/cronjobs/create", children: _jsx(CronJobForm, {}) }), _jsx(Route, { path: "/cronjobs/edit", children: _jsx(CronJobForm, {}) }), _jsx(Route, { path: "/daemonsets", exact: true, children: _jsx(DaemonSetList, {}) }), _jsx(Route, { path: "/daemonsets/show", children: _jsx(DaemonSetShow, {}) }), _jsx(Route, { path: "/daemonsets/create", children: _jsx(DaemonSetForm, {}) }), _jsx(Route, { path: "/daemonsets/edit", children: _jsx(DaemonSetForm, {}) }), _jsx(Route, { path: "/deployments", exact: true, children: _jsx(DeploymentList, {}) }), _jsx(Route, { path: "/deployments/show", children: _jsx(DeploymentShow, {}) }), _jsx(Route, { path: "/statefulsets", exact: true, children: _jsx(StatefulSetList, {}) }), _jsx(Route, { path: "/statefulsets/show", children: _jsx(StatefulSetShow, {}) }), _jsx(Route, { path: "/statefulsets/create", children: _jsx(StatefulSetForm, {}) }), _jsx(Route, { path: "/statefulsets/edit", children: _jsx(StatefulSetForm, {}) }), _jsx(Route, { path: "/pods", exact: true, children: _jsx(PodList, {}) }), _jsx(Route, { path: "/pods/show", children: _jsx(PodShow, {}) }), _jsx(Route, { path: "/pods/create", children: _jsx(PodForm, {}) }), _jsx(Route, { path: "/pods/edit", children: _jsx(PodForm, {}) })] }) }) }));
90
- }
91
- export default App;
@@ -1,45 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { KitStoreProvider, ModalStack } from '@cloudtower/eagle';
3
- import { Refine } from '@refinedev/core';
4
- import { dataProvider, liveProvider } from 'k8s-api-provider';
5
- import { keyBy } from 'lodash-es';
6
- import { useMemo } from 'react';
7
- import { Router } from 'react-router-dom';
8
- import ConfigsContext from 'src/contexts/configs';
9
- import { ResourceCRUD } from './components/ResourceCRUD';
10
- import GlobalStoreContext from './contexts/global-store';
11
- import { routerProvider } from './providers/router-provider';
12
- import './styles.css';
13
- export const Dovetail = props => {
14
- const { resourcesConfig, urlPrefix = '', Layout, history, globalStore } = props;
15
- const notCustomResources = useMemo(() => {
16
- return resourcesConfig.filter(c => !c.isCustom);
17
- }, [resourcesConfig]);
18
- const content = useMemo(() => {
19
- const _content = (_jsxs(_Fragment, { children: [_jsx(ModalStack, {}), _jsx(ResourceCRUD, { configs: notCustomResources, urlPrefix: urlPrefix }), props.children] }));
20
- if (Layout) {
21
- return _jsx(Layout, { children: _content });
22
- }
23
- return _content;
24
- }, [Layout, notCustomResources, props.children, urlPrefix]);
25
- return (_jsx(Router, { history: history, children: _jsx(KitStoreProvider, { children: _jsx(GlobalStoreContext.Provider, { value: { globalStore }, children: _jsx(ConfigsContext.Provider, { value: keyBy(resourcesConfig, 'name'), children: _jsx(Refine, { dataProvider: {
26
- default: dataProvider(globalStore),
27
- }, routerProvider: routerProvider, liveProvider: liveProvider(globalStore), options: {
28
- warnWhenUnsavedChanges: true,
29
- liveMode: 'auto',
30
- }, resources: resourcesConfig.map(c => {
31
- return {
32
- name: c.name,
33
- meta: {
34
- resourceBasePath: c.basePath,
35
- kind: c.kind,
36
- parent: c.parent,
37
- label: `${c.kind}s`,
38
- },
39
- list: `${urlPrefix}/${c.name}`,
40
- show: `${urlPrefix}/${c.name}/show`,
41
- create: `${urlPrefix}/${c.name}/create`,
42
- edit: `${urlPrefix}/${c.name}/edit`,
43
- };
44
- }), children: content }) }) }) }) }));
45
- };
@@ -1,20 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { css, cx } from '@linaria/core';
3
- import { useBreadcrumb } from '@refinedev/core';
4
- import { Link } from 'react-router-dom';
5
- const BreadcrumbStyle = css `
6
- display: flex;
7
-
8
- .breadcrumb-item {
9
- &:not(:last-of-type):after {
10
- content: '>';
11
- margin: 0 8px;
12
- }
13
- }
14
- `;
15
- export function Breadcrumb(props) {
16
- const { breadcrumbs } = useBreadcrumb();
17
- return (_jsx("ul", { className: cx(BreadcrumbStyle, props.className), children: breadcrumbs.map(breadcrumb => {
18
- return (_jsx("li", { className: "breadcrumb-item", children: breadcrumb.href ? (_jsx(Link, { to: breadcrumb.href, children: breadcrumb.label })) : (_jsx("span", { children: breadcrumb.label })) }, `breadcrumb-${breadcrumb.label}`));
19
- }) }));
20
- }