@dovetail-v2/refine 0.0.31 → 0.0.32-beta.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 (34) hide show
  1. package/dist/{MonacoYamlDiffEditor-b0ea1b12.js → MonacoYamlDiffEditor-0d108b88.js} +1 -3
  2. package/dist/MonacoYamlEditor-e382457d.js +167 -0
  3. package/dist/{index-01ce45aa.js → index-3a367ae3.js} +9154 -6347
  4. package/dist/refine.js +133 -114
  5. package/dist/refine.umd.cjs +10170 -7210
  6. package/dist/style.css +40 -24
  7. package/lib/src/components/CronJobDropdown/index.d.ts +2 -0
  8. package/lib/src/components/CronjobJobsTable/index.d.ts +1 -0
  9. package/lib/src/components/K8sDropdown/index.d.ts +2 -0
  10. package/lib/src/components/RefineForm/RefineFormContent.d.ts +10 -0
  11. package/lib/src/components/RefineForm/RefineFormModal.d.ts +8 -0
  12. package/lib/src/components/RefineForm/RefineFormPage.d.ts +7 -0
  13. package/lib/src/components/RefineForm/index.d.ts +3 -0
  14. package/lib/src/components/RefineForm/type.d.ts +20 -0
  15. package/lib/src/components/RefineForm/useRefineForm.d.ts +10 -0
  16. package/lib/src/components/ShowContent/fields.d.ts +33 -23
  17. package/lib/src/components/ShowContent/groups.d.ts +11 -0
  18. package/lib/src/components/ShowContent/index.d.ts +2 -0
  19. package/lib/src/components/ShowContent/tabs.d.ts +12 -0
  20. package/lib/src/components/StateTag/StateTag.d.ts +1 -0
  21. package/lib/src/components/Tabs/index.d.ts +10 -0
  22. package/lib/src/components/Time/index.d.ts +2 -3
  23. package/lib/src/components/WorkloadDropdown/index.d.ts +2 -0
  24. package/lib/src/components/WorkloadReplicas/index.d.ts +1 -2
  25. package/lib/src/components/index.d.ts +2 -0
  26. package/lib/src/constants/k8s.d.ts +23 -0
  27. package/lib/src/contexts/component.d.ts +2 -0
  28. package/lib/src/hooks/useEagleTable/columns.d.ts +5 -3
  29. package/lib/src/i18n.d.ts +125 -10
  30. package/lib/src/locales/en-US/index.d.ts +95 -1
  31. package/lib/src/locales/zh-CN/index.d.ts +29 -9
  32. package/lib/src/pages/statefulsets/index.d.ts +4 -3
  33. package/lib/src/types/resource.d.ts +5 -1
  34. package/package.json +10 -8
package/dist/style.css CHANGED
@@ -1,4 +1,13 @@
1
1
  .b142d7q8{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}.b142d7q8 .breadcrumb-item:not(:last-of-type):after{content:'>';margin:0 8px;}
2
+ .woio6qj{width:100%;}
3
+ .h1pmxp8z{width:100%;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;margin-bottom:8px;}
4
+ .h1btthoz{margin-right:8px;line-height:18px;}
5
+ .ewkumn1.ant-btn.ant-btn-link{height:18px;line-height:18px;font-size:12px;}
6
+ .c1in0x5n{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:8px 10px;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;gap:8px;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;border-radius:4px;background:rgba(237,241,250,0.60);}.c1in0x5n:not(:last-of-type){margin-bottom:8px;}
7
+ .klhq5sj{color:rgba(44,56,82,0.60);}
8
+ .v15ask3m{word-break:break-all;}
9
+ .t13a6vox{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;max-width:100%;}
10
+ .t12ikbmp{overflow:hidden;text-overflow:ellipsis;}
2
11
  .eckm4od{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%;}
3
12
  .e1hl982n{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.e1hl982n .title{margin-bottom:8px;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-image:linear-gradient(211.41deg,#929dad 0%,#d3dbe3 100%);}
4
13
  .ax1qopv{position:absolute;top:0;left:0;bottom:0;width:1px;background:$blue-60;-webkit-transform:translateX(-9999px);-ms-transform:translateX(-9999px);transform:translateX(-9999px);z-index:999;}.ax1qopv::before{content:'';position:absolute;height:34px;width:3px;top:0;left:-1px;background:$blue-60;}
@@ -23,34 +32,20 @@
23
32
  .e1tqaxpu{-webkit-flex:1;-ms-flex:1;flex:1;height:100%;margin-bottom:16px;}
24
33
  .fbinl28.ant-modal.fullscreen .ant-modal-header{padding:60px 128px 32px 128px;}.fbinl28.ant-modal.fullscreen .ant-modal-body{padding:0 128px;}.fbinl28.ant-modal.fullscreen .ant-modal-footer{padding:15px 128px;}
25
34
  .t1v3ienx{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%;margin-bottom:16px;}
26
- .c16agr8o{width:100%;}
35
+ .w16agr8o.ant-space{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}
27
36
  .m1u1f5zp{color:#bec1d2;}
28
37
  .c1dicff8{width:100%;vertical-align:top;}
29
38
  .esoz3jw .ant-modal-content{border-radius:16px;}.esoz3jw .ant-modal-header{border-radius:16px 16px 0 0;}
30
39
  .e1m0bgls.ant-btn.ant-btn-link{height:22px;margin-left:8px;}
31
- .woio6qj{width:100%;}
32
- .h1pmxp8z{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:space-justify;-webkit-justify-content:space-space-between;-ms-flex-pack:space-justify;justify-content:space-space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:8px;}
33
- .h1btthoz{-webkit-flex:1;-ms-flex:1;flex:1;}
34
- .ewkumn1.ant-btn.ant-btn-link{height:22px;font-size:12px;}
35
- .c1in0x5n{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:8px 10px;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;gap:8px;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;border-radius:4px;background:rgba(237,241,250,0.60);}.c1in0x5n:not(:last-of-type){margin-bottom:8px;}
36
- .klhq5sj{color:rgba(44,56,82,0.60);}
37
- .t13a6vox{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;max-width:100%;}
38
- .t12ikbmp{overflow:hidden;text-overflow:ellipsis;}
39
- .s9agep2 .ant-row{margin-right:0 !important;}
40
- .to89gfi{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%;}
41
- .s1ohe42f{width:100%;height:100%;}
42
- .eqm4qz0{margin-top:16px;}
43
- .ficl0qc{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;}
44
- .to9uwk1.ant-tabs .ant-tabs-nav{margin-bottom:0;}
45
- .se26ou0{margin-left:8px;}
46
- .laykzsq{width:100%;height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}
47
- .t1ng0psc.table-wrapper{height:auto;-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;min-height:0;}
48
- .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%;}
49
- .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);}
50
- .h16z07g.ant-layout-header{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#fff;border-bottom:2px solid #edf0f7;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:50px;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:0 24px 0 14px;position:relative;z-index:10;}
51
- .c1i80kj{height:100%;}
52
- .s18sezq1.ant-layout-sider{background:#edf0f7;}
53
- .cyc9hl2.ant-layout-content{padding:16px;background:#fff;}
40
+ .w8ychfk{border-radius:8px;border:1px solid rgba(211,218,235,0.60);padding:16px;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}
41
+ .d1o004do{width:70px;height:70px;margin-right:16px;}
42
+ .dfo80qq{width:100%;}
43
+ .d1i11os3{position:absolute;left:35px;top:35px;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);}
44
+ .r1bm8olw{color:#00122E;}
45
+ .r1oqudbh{color:rgba(44,56,82,0.60);}
46
+ .c18i6jtg{margin:auto 0;position:relative;}
47
+ .lpm22il{margin-right:40px;}
48
+ .s8qkbck.ant-tag{padding:3px 16px;height:24px;}.s8qkbck.no-background{background-color:transparent !important;padding:0;}
54
49
  .pf-v5-c-log-viewer.pf-m-dark .pf-v5-c-log-viewer__main {
55
50
  --pf-v5-global--Color--100: var(--pf-v5-global--Color--light-100);
56
51
  --pf-v5-global--Color--200: var(--pf-v5-global--Color--light-200);
@@ -1487,6 +1482,27 @@
1487
1482
  height: 1em;
1488
1483
  vertical-align: -0.125em;
1489
1484
  }.tve7dfm{margin-bottom:8px;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}.tve7dfm > *{margin-right:8px !important;}.tve7dfm .ant-select{width:256px !important;}
1485
+ .s9agep2{height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;background:linear-gradient(180deg,#FFF 0%,#EDF0F7 100%);}.s9agep2 .ant-row{margin-right:0 !important;}
1486
+ .bo89gfi{color:rgba(0,21,64,0.3);line-height:18px;cursor:pointer;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start;}
1487
+ .t1ohe42f{padding:16px 24px 8px 24px;background-color:#fff;}
1488
+ .nqm4qz0{margin-right:8px;}
1489
+ .ticl0qc{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%;}
1490
+ .so9uwk1{width:100%;}
1491
+ .ge26ou0{padding:12px 16px;border-radius:8px;border:1px solid rgba(211,218,235,0.60);box-shadow:0px 0px 2.003px 0px rgba(107,125,153,0.15),0px 0px 16px 0px rgba(107,125,153,0.08);background-color:#fff;margin:16px 24px;overflow:auto;}.ge26ou0:not(:last-of-type){margin-bottom:24px;}
1492
+ .g17f8vl9{color:#1D326C;margin-bottom:12px;}
1493
+ .fykgn2i{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;}
1494
+ .tngr745.ant-tabs{-webkit-flex:1;-ms-flex:1;flex:1;min-height:0;}.tngr745.ant-tabs .ant-tabs-nav{margin-bottom:0;}.tngr745.ant-tabs .ant-tabs-nav-list{margin-left:24px;}.tngr745.ant-tabs .ant-tabs-content-holder{overflow:auto;}
1495
+ .laykzsq{width:100%;height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding:16px;}
1496
+ .t1ng0psc.table-wrapper{height:auto;-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;min-height:0;}
1497
+ .c11jjg12{-webkit-flex-basis:58%;-ms-flex-preferred-size:58%;flex-basis:58%;width:100%;}
1498
+ .c10fy1is{width:100%;}
1499
+ .f9vv20f.ant-modal.fullscreen .ant-modal-header{padding:60px 128px 32px 128px;}.f9vv20f.ant-modal.fullscreen .ant-modal-body{padding:0 128px;}.f9vv20f.ant-modal.fullscreen .ant-modal-footer{padding:15px 128px;}
1500
+ .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%;}
1501
+ .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);}
1502
+ .h16z07g.ant-layout-header{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#fff;border-bottom:2px solid #edf0f7;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:50px;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:0 24px 0 14px;position:relative;z-index:10;}
1503
+ .c1i80kj{height:100%;}
1504
+ .s18sezq1.ant-layout-sider{background:#edf0f7;}
1505
+ .cyc9hl2.ant-layout-content{background:#fff;}
1490
1506
  body,
1491
1507
  #root {
1492
1508
  height: 100%;
@@ -1,7 +1,9 @@
1
1
  /// <reference types="react" />
2
2
  import { CronJobModel } from '../../models';
3
+ import { DropdownSize } from '../K8sDropdown';
3
4
  type Props<Model extends CronJobModel> = {
4
5
  record: Model;
6
+ size?: DropdownSize;
5
7
  };
6
8
  export declare function CronJobDropdown<Model extends CronJobModel>(props: Props<Model>): JSX.Element;
7
9
  export {};
@@ -4,4 +4,5 @@ export declare const CronjobJobsTable: React.FC<{
4
4
  owner?: OwnerReference & {
5
5
  namespace: string;
6
6
  };
7
+ hideToolBar?: boolean;
7
8
  }>;
@@ -1,7 +1,9 @@
1
1
  import React from 'react';
2
2
  import { ResourceModel } from '../../models';
3
+ export type DropdownSize = 'normal' | 'large';
3
4
  interface K8sDropdownProps {
4
5
  record: ResourceModel;
6
+ size?: DropdownSize;
5
7
  }
6
8
  declare function K8sDropdown(props: React.PropsWithChildren<K8sDropdownProps>): JSX.Element;
7
9
  export default K8sDropdown;
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import { Control } from 'react-hook-form';
3
+ import { ResourceModel } from '../../models';
4
+ import { ResourceConfig } from '../../types';
5
+ type Props<Model extends ResourceModel> = {
6
+ config?: ResourceConfig<Model>;
7
+ control: Control;
8
+ };
9
+ export declare const RefineFormContent: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>(props: Props<Model>) => JSX.Element;
10
+ export {};
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import { ResourceConfig } from '../../types';
3
+ export type RefineFormModalProps = {
4
+ config: ResourceConfig;
5
+ id?: string;
6
+ };
7
+ export declare function RefineFormModal(props: RefineFormModalProps): JSX.Element;
8
+ export default RefineFormModal;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import { ResourceConfig } from '../../types';
3
+ type Props = {
4
+ config: ResourceConfig<any>;
5
+ };
6
+ export declare const RefineFormPage: (props: Props) => JSX.Element;
7
+ export {};
@@ -0,0 +1,3 @@
1
+ export * from './RefineFormPage';
2
+ export * from './RefineFormModal';
3
+ export * from './type';
@@ -0,0 +1,20 @@
1
+ /// <reference types="react" />
2
+ export type RefineFormValidator = (value: unknown, formValue: unknown) => {
3
+ isValid: boolean;
4
+ errorMsg: string;
5
+ };
6
+ export type RefineFormField = {
7
+ path: string[];
8
+ key: string;
9
+ label: string;
10
+ type?: 'number';
11
+ validators?: RefineFormValidator[];
12
+ render?: React.FC<{
13
+ value: unknown;
14
+ onChange: (event: unknown) => void;
15
+ onBlur: () => void;
16
+ }>;
17
+ };
18
+ export type RefineFormConfig = {
19
+ fields: RefineFormField[];
20
+ };
@@ -0,0 +1,10 @@
1
+ import { UseFormProps } from '@refinedev/core';
2
+ import { ResourceConfig } from '../../types';
3
+ export declare const useRefineForm: (props: {
4
+ config: ResourceConfig;
5
+ id?: string;
6
+ refineProps?: UseFormProps;
7
+ }) => {
8
+ formResult: import("@refinedev/react-hook-form").UseFormReturnType<import("@refinedev/core").BaseRecord, import("@refinedev/core").HttpError, Record<string, unknown>, {}, import("@refinedev/core").BaseRecord, import("@refinedev/core").BaseRecord, import("@refinedev/core").HttpError>;
9
+ responseErrorMsg: string;
10
+ };
@@ -3,38 +3,48 @@ import React from 'react';
3
3
  import { JobModel, ResourceModel, WorkloadModel, WorkloadBaseModel, CronJobModel, IngressModel, ServiceModel } from '../../models';
4
4
  export type ShowField<Model extends ResourceModel> = {
5
5
  key: string;
6
- title: string;
6
+ title?: string;
7
7
  path: string[];
8
8
  labelWidth?: string;
9
9
  col?: number;
10
10
  render?: (val: unknown, record: Model, field: ShowField<Model>) => React.ReactElement | undefined;
11
11
  renderContent?: (val: unknown, record: Model, field: ShowField<Model>) => React.ReactElement | undefined;
12
12
  };
13
- export type ShowTabField<Model extends ResourceModel> = {
14
- key: string;
13
+ export declare enum AreaType {
14
+ Inline = "Inline",
15
+ Grid = "Grid"
16
+ }
17
+ export type ShowArea<Model extends ResourceModel> = {
18
+ type?: AreaType;
19
+ fields: ShowField<Model>[];
20
+ };
21
+ export type ShowGroup<Model extends ResourceModel> = {
22
+ title?: string;
23
+ areas: ShowArea<Model>[];
24
+ };
25
+ export type ShowTab<Model extends ResourceModel> = {
15
26
  title: string;
16
- path: string[];
17
- renderContent?: (val: unknown, record: Model, field: ShowTabField<Model>) => React.ReactElement | undefined;
27
+ key: string;
28
+ groups: ShowGroup<Model>[];
18
29
  };
19
30
  export interface ShowConfig<Model extends ResourceModel = ResourceModel> {
20
- title?: string;
21
- descriptions?: ShowField<Model>[];
22
- groups?: {
23
- fields: ShowField<Model>[];
24
- }[];
25
- tabs?: ShowTabField<Model>[];
31
+ tabs?: ShowTab<Model>[];
26
32
  }
27
33
  export declare const ImageField: <Model extends WorkloadBaseModel>(i18n: I18nType) => ShowField<Model>;
28
- export declare const ReplicaField: (i18n: I18nType) => ShowField<WorkloadModel>;
29
- export declare const ConditionsField: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>(i18n: I18nType) => ShowTabField<Model>;
30
- export declare const PodsField: <Model extends WorkloadBaseModel>() => ShowTabField<Model>;
31
- export declare const JobsField: <Model extends JobModel | CronJobModel>() => ShowTabField<Model>;
32
- export declare const DataField: (i18n: I18nType) => ShowField<ResourceModel>;
33
- export declare const SecretDataField: (i18n: I18nType) => ShowField<ResourceModel>;
34
+ export declare const ReplicaField: <Model extends WorkloadModel>() => ShowField<Model>;
35
+ export declare const ConditionsField: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>() => ShowField<Model>;
36
+ export declare const PodsField: <Model extends WorkloadBaseModel>() => ShowField<Model>;
37
+ export declare const JobsField: <Model extends JobModel | CronJobModel>() => ShowField<Model>;
38
+ export declare const DataField: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>() => ShowField<Model>;
39
+ export declare const SecretDataField: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>() => ShowField<Model>;
34
40
  export declare const StartTimeField: (i18n: I18nType) => ShowField<JobModel>;
35
- export declare const ServiceTypeField: (i18n: I18nType) => ShowField<ServiceModel>;
36
- export declare const ClusterIpField: (i18n: I18nType) => ShowField<ServiceModel>;
37
- export declare const SessionAffinityField: (i18n: I18nType) => ShowField<ServiceModel>;
38
- export declare const ServicePodsField: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>() => ShowTabField<Model>;
39
- export declare const IngressRulesTableTabField: <Model extends IngressModel>(i18n: I18nType) => ShowTabField<Model>;
40
- export declare const EventsTableTabField: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>(i18n: I18nType) => ShowTabField<Model>;
41
+ export declare const ServiceTypeField: <Model extends ServiceModel>(i18n: I18nType) => ShowField<Model>;
42
+ export declare const ClusterIpField: <Model extends ServiceModel>(i18n: I18nType) => ShowField<Model>;
43
+ export declare const SessionAffinityField: <Model extends ServiceModel>(i18n: I18nType) => ShowField<Model>;
44
+ export declare const ServicePodsField: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>() => ShowField<Model>;
45
+ export declare const IngressRulesTableTabField: <Model extends IngressModel>() => ShowField<Model>;
46
+ export declare const EventsTableTabField: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>() => ShowField<Model>;
47
+ export declare const NamespaceField: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>(i18n: I18nType) => ShowField<Model>;
48
+ export declare const AgeField: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>(i18n: I18nType) => ShowField<Model>;
49
+ export declare const LabelsField: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>(i18n: I18nType) => ShowField<Model>;
50
+ export declare const AnnotationsField: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>(i18n: I18nType) => ShowField<Model>;
@@ -0,0 +1,11 @@
1
+ import { i18n as I18nType } from 'i18next';
2
+ import { ResourceModel, WorkloadBaseModel, ServiceModel } from 'src/models';
3
+ import { ShowField, ShowArea, ShowGroup } from './fields';
4
+ export declare const BasicGroup: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>(i18n: I18nType, { upAreas, downAreas, basicFields }?: {
5
+ upAreas?: ShowArea<Model>[] | undefined;
6
+ downAreas?: ShowArea<Model>[] | undefined;
7
+ basicFields?: ShowField<Model>[] | undefined;
8
+ }) => ShowGroup<Model>;
9
+ export declare const PodsGroup: <Model extends WorkloadBaseModel>() => ShowGroup<Model>;
10
+ export declare const ServicePodsGroup: <Model extends ServiceModel>() => ShowGroup<Model>;
11
+ export declare const ConditionsGroup: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>(i18n: I18nType) => ShowGroup<Model>;
@@ -1,2 +1,4 @@
1
1
  export * from './fields';
2
+ export * from './tabs';
3
+ export * from './groups';
2
4
  export * from './ShowContent';
@@ -0,0 +1,12 @@
1
+ import { i18n as I18nType } from 'i18next';
2
+ import { ResourceModel, IngressModel, JobModel, CronJobModel, PodModel } from 'src/models';
3
+ import { ShowTab } from './fields';
4
+ export declare const SecretDataTab: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>(i18n: I18nType) => ShowTab<Model>;
5
+ export declare const EventsTab: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>(i18n: I18nType) => ShowTab<Model>;
6
+ export declare const IngressRulesTab: <Model extends IngressModel>(i18n: I18nType) => ShowTab<Model>;
7
+ export declare const NetworkPolicyIngressRulesTab: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>(i18n: I18nType) => ShowTab<Model>;
8
+ export declare const NetworkPolicyEgressRulesTab: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>(i18n: I18nType) => ShowTab<Model>;
9
+ export declare const DataTab: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>(i18n: I18nType) => ShowTab<Model>;
10
+ export declare const JobsTab: <Model extends JobModel | CronJobModel>() => ShowTab<Model>;
11
+ export declare const PodContainersTab: <Model extends PodModel>(i18n: I18nType) => ShowTab<Model>;
12
+ export declare const PodLogTab: <Model extends PodModel>(i18n: I18nType) => ShowTab<Model>;
@@ -3,6 +3,7 @@ import { WorkloadState } from '../../constants';
3
3
  type Props = {
4
4
  state?: WorkloadState;
5
5
  className?: string;
6
+ hideBackground?: boolean;
6
7
  };
7
8
  export declare const StateTag: React.FC<Props>;
8
9
  export {};
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ export type TabsProps = {
3
+ tabs: {
4
+ title: string;
5
+ key: string;
6
+ children: React.ReactNode;
7
+ }[];
8
+ className?: string;
9
+ };
10
+ export declare function Tabs(props: TabsProps): JSX.Element;
@@ -2,8 +2,7 @@ import React from 'react';
2
2
  declare const Time: React.FunctionComponent<{
3
3
  className?: string;
4
4
  date?: string | number | Date | null;
5
- dateTemplate?: string | null;
6
- timeTemplate?: string | null;
7
- plainText?: boolean;
5
+ dateTemplate?: string;
6
+ timeTemplate?: string;
8
7
  }>;
9
8
  export default Time;
@@ -1,7 +1,9 @@
1
1
  /// <reference types="react" />
2
2
  import { WorkloadModel } from '../../models';
3
+ import { DropdownSize } from '../K8sDropdown';
3
4
  type Props<Model extends WorkloadModel> = {
4
5
  record: Model;
6
+ size?: DropdownSize;
5
7
  };
6
8
  export declare function WorkloadDropdown<Model extends WorkloadModel>(props: Props<Model>): JSX.Element;
7
9
  export {};
@@ -2,7 +2,6 @@
2
2
  import { WorkloadModel } from '../../models';
3
3
  export interface WorkloadReplicasProps {
4
4
  record: WorkloadModel;
5
- label?: string;
6
5
  editable?: boolean;
7
6
  }
8
- export declare function WorkloadReplicas({ record, label, editable }: WorkloadReplicasProps): JSX.Element;
7
+ export declare function WorkloadReplicas({ record, editable }: WorkloadReplicasProps): JSX.Element;
@@ -32,9 +32,11 @@ export * from './EditButton';
32
32
  export * from './ReferenceLink';
33
33
  export * from './ResourceLink';
34
34
  export * from './NamespacesFilter';
35
+ export * from './RefineForm';
35
36
  export * from './ServiceComponents';
36
37
  export * from './Tags';
37
38
  export * from './TextTags';
38
39
  export * from './PodLog';
39
40
  export * from './FormModal';
40
41
  export * from './NetworkPolicyRulesTable';
42
+ export * from './Tabs';
@@ -266,4 +266,27 @@ export declare const NETWORK_POLICY_INIT_VALUE: {
266
266
  apiVersion: string;
267
267
  kind: string;
268
268
  };
269
+ export declare const SERVER_INSTANCE_INIT_VALUE: {
270
+ spec: {
271
+ address: {
272
+ host: string;
273
+ port: number;
274
+ protocol: string;
275
+ credentials: {
276
+ ssh: {
277
+ username: string;
278
+ password: string;
279
+ };
280
+ };
281
+ };
282
+ };
283
+ metadata: {
284
+ name: string;
285
+ namespace: string;
286
+ annotations: {};
287
+ labels: {};
288
+ };
289
+ apiVersion: string;
290
+ kind: string;
291
+ };
269
292
  export declare const TIMESTAMP_LABEL = "sks.user.kubesmart.smtx.io/timestamp";
@@ -1,6 +1,8 @@
1
1
  /// <reference types="react" />
2
2
  import Table from 'src/components/Table';
3
+ import { Tabs } from 'src/components/Tabs';
3
4
  declare const ComponentContext: import("react").Context<{
4
5
  Table?: typeof Table | undefined;
6
+ Tabs?: typeof Tabs | undefined;
5
7
  }>;
6
8
  export default ComponentContext;
@@ -1,14 +1,16 @@
1
1
  import { i18n as I18nType } from 'i18next';
2
2
  import { Column } from '../../components/Table';
3
- import { JobModel, PodModel, ResourceModel, WorkloadModel, WorkloadBaseModel, CronJobModel, IngressModel, ServiceModel } from '../../models';
3
+ import { JobModel, PodModel, ResourceModel, WorkloadModel, WorkloadBaseModel, CronJobModel, IngressModel, ServiceModel, DaemonSetModel } from '../../models';
4
4
  export declare const CommonSorter: (dataIndex: string[]) => (a: unknown, b: unknown) => 0 | 1 | -1;
5
5
  export declare const NameColumnRenderer: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>(i18n: I18nType, resource?: string) => Column<Model>;
6
6
  export declare const NameSpaceColumnRenderer: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>(i18n: I18nType) => Column<Model>;
7
- export declare const StateDisplayColumnRenderer: <Model extends PodModel | WorkloadModel | CronJobModel>(i18n: I18nType) => Column<Model>;
7
+ export declare const StateDisplayColumnRenderer: <Model extends PodModel | JobModel | WorkloadModel | CronJobModel | DaemonSetModel | ServiceModel>(i18n: I18nType) => Column<Model>;
8
8
  export declare const WorkloadImageColumnRenderer: <Model extends WorkloadBaseModel>(i18n: I18nType) => Column<Model>;
9
9
  export declare const WorkloadRestartsColumnRenderer: <Model extends WorkloadModel>(i18n: I18nType) => Column<Model>;
10
10
  export declare const ReplicasColumnRenderer: <Model extends WorkloadModel>(i18n: I18nType) => Column<Model>;
11
- export declare const AgeColumnRenderer: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>(i18n: I18nType) => Column<Model>;
11
+ export declare const AgeColumnRenderer: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>(i18n: I18nType, config?: {
12
+ title?: string;
13
+ }) => Column<Model>;
12
14
  export declare const NodeNameColumnRenderer: <Model extends PodModel>(i18n: I18nType, options?: Partial<Column<Model>> | undefined) => Column<Model>;
13
15
  export declare const RestartCountColumnRenderer: <Model extends PodModel>(i18n: I18nType) => Column<Model>;
14
16
  export declare const CompletionsCountColumnRenderer: <Model extends JobModel | CronJobModel>(i18n: I18nType) => Column<Model>;
package/lib/src/i18n.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import 'dayjs/locale/zh';
1
2
  import i18n from 'i18next';
2
3
  export declare const resources: {
3
4
  'en-US': {
@@ -17,7 +18,101 @@ export declare const resources: {
17
18
  retry: string;
18
19
  create_resource: string;
19
20
  edit_resource: string;
20
- status: string;
21
+ state: string;
22
+ name: string;
23
+ pod: string;
24
+ cancel: string;
25
+ delete: string;
26
+ create: string;
27
+ confirm_delete_text: string;
28
+ edit: string;
29
+ namespace: string;
30
+ image: string;
31
+ created_time: string;
32
+ label: string;
33
+ annotation: string;
34
+ type: string;
35
+ event: string;
36
+ reason: string;
37
+ object: string;
38
+ note: string;
39
+ condition: string;
40
+ download_yaml: string;
41
+ detail: string;
42
+ restarts: string;
43
+ updated_time: string;
44
+ message: string;
45
+ save: string;
46
+ more: string;
47
+ workload: string;
48
+ all_namespaces: string;
49
+ empty: string;
50
+ schedule: string;
51
+ lastScheduleTime: string;
52
+ duration: string;
53
+ started: string;
54
+ init_container: string;
55
+ regular_container: string;
56
+ container: string;
57
+ redeploy: string;
58
+ data: string;
59
+ suspend: string;
60
+ resume: string;
61
+ clusterIp: string;
62
+ sessionAffinity: string;
63
+ log: string;
64
+ select_container: string;
65
+ wrap: string;
66
+ resume_log: string;
67
+ log_new_lines: string;
68
+ ready: string;
69
+ updating: string;
70
+ completed: string;
71
+ failed: string;
72
+ suspended: string;
73
+ running: string;
74
+ terminating: string;
75
+ terminated: string;
76
+ succeeded: string;
77
+ unknown: string;
78
+ pending: string;
79
+ waiting: string;
80
+ sec: string;
81
+ min: string;
82
+ hr: string;
83
+ day: string;
84
+ expand: string;
85
+ fold: string;
86
+ rule: string;
87
+ default_backend: string;
88
+ ingress_class: string;
89
+ port: string;
90
+ pod_ready_num: string;
91
+ pod_replicas_num: string;
92
+ edit_replicas: string;
93
+ cert: string;
94
+ dns_record: string;
95
+ port_mapping: string;
96
+ out_cluster_access: string;
97
+ in_cluster_access: string;
98
+ any_node_ip: string;
99
+ fail_get_detail: string;
100
+ basic_info: string;
101
+ pod_selector: string;
102
+ ingress_rule: string;
103
+ egress_rule: string;
104
+ ip_address: string;
105
+ last_seen: string;
106
+ service_port: string;
107
+ pod_port: string;
108
+ node_port: string;
109
+ protocol: string;
110
+ key: string;
111
+ value: string;
112
+ path_type: string;
113
+ path: string;
114
+ backend: string;
115
+ belong_to_node: string;
21
116
  };
22
117
  };
23
118
  'zh-CN': {
@@ -40,10 +135,7 @@ export declare const resources: {
40
135
  namespace: string;
41
136
  name: string;
42
137
  state: string;
43
- status: string;
44
- phase: string;
45
138
  image: string;
46
- replicas: string;
47
139
  created_time: string;
48
140
  label: string;
49
141
  annotation: string;
@@ -55,7 +147,6 @@ export declare const resources: {
55
147
  condition: string;
56
148
  download_yaml: string;
57
149
  detail: string;
58
- node_name: string;
59
150
  restarts: string;
60
151
  updated_time: string;
61
152
  message: string;
@@ -67,17 +158,14 @@ export declare const resources: {
67
158
  schedule: string;
68
159
  lastScheduleTime: string;
69
160
  duration: string;
70
- completions: string;
71
161
  started: string;
72
162
  init_container: string;
163
+ regular_container: string;
73
164
  container: string;
74
165
  redeploy: string;
75
166
  data: string;
76
167
  suspend: string;
77
168
  resume: string;
78
- cluster: string;
79
- storage: string;
80
- network: string;
81
169
  clusterIp: string;
82
170
  sessionAffinity: string;
83
171
  log: string;
@@ -96,6 +184,7 @@ export declare const resources: {
96
184
  running: string;
97
185
  terminating: string;
98
186
  succeeded: string;
187
+ terminated: string;
99
188
  unknown: string;
100
189
  pending: string;
101
190
  waiting: string;
@@ -109,15 +198,41 @@ export declare const resources: {
109
198
  fold: string;
110
199
  rule: string;
111
200
  default_backend: string;
112
- ingress_rule_type: string;
113
201
  ingress_class: string;
114
202
  port: string;
203
+ pod_ready_num: string;
204
+ pod_replicas_num: string;
205
+ edit_replicas: string;
115
206
  cert: string;
116
207
  dns_record: string;
117
208
  port_mapping: string;
118
209
  out_cluster_access: string;
119
210
  in_cluster_access: string;
120
211
  any_node_ip: string;
212
+ fail_get_detail: string;
213
+ basic_info: string;
214
+ pod: string;
215
+ pod_selector: string;
216
+ ingress_rule: string;
217
+ egress_rule: string;
218
+ ip_address: string;
219
+ last_seen: string;
220
+ service_port: string;
221
+ pod_port: string;
222
+ node_port: string;
223
+ protocol: string;
224
+ key: string;
225
+ value: string;
226
+ path_type: string;
227
+ path: string;
228
+ backend: string;
229
+ belong_to_node: string;
230
+ name_can_not_be_empty: string;
231
+ password: string;
232
+ username: string;
233
+ host: string;
234
+ create_resource_success: string;
235
+ edit_resource_success: string;
121
236
  };
122
237
  };
123
238
  };