@dovetail-v2/refine 0.0.17 → 0.0.19

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 (47) hide show
  1. package/dist/{MonacoYamlDiffEditor.dc83b657.js → MonacoYamlDiffEditor-b1abdc2e.js} +2 -2
  2. package/dist/assets/{yaml.worker.bb17811d.js → yaml.worker-5e5f190c.js} +2153 -992
  3. package/dist/{index.d48047e6.js → index-77b64cff.js} +5853 -5096
  4. package/dist/refine.js +98 -87
  5. package/dist/refine.umd.cjs +5439 -4689
  6. package/dist/style.css +23 -13
  7. package/lib/src/components/DrawerShow/DrawerShow.d.ts +2 -2
  8. package/lib/src/components/FormModal/index.d.ts +2 -4
  9. package/lib/src/components/IngressRulesComponent/index.d.ts +5 -0
  10. package/lib/src/components/IngressRulesTable/IngressRulesTable.d.ts +7 -0
  11. package/lib/src/components/IngressRulesTable/index.d.ts +1 -0
  12. package/lib/src/components/KeyValueData/index.d.ts +6 -0
  13. package/lib/src/components/NetworkPolicyRulesTable/NetworkPolicyRulesTable.d.ts +7 -0
  14. package/lib/src/components/NetworkPolicyRulesTable/index.d.ts +1 -0
  15. package/lib/src/components/PageShow/PageShow.d.ts +2 -2
  16. package/lib/src/components/ReferenceLink/index.d.ts +8 -0
  17. package/lib/src/components/ResourceCRUD/show/index.d.ts +2 -2
  18. package/lib/src/components/ResourceLink/index.d.ts +8 -0
  19. package/lib/src/components/ShowContent/ShowContent.d.ts +2 -2
  20. package/lib/src/components/ShowContent/fields.d.ts +26 -7
  21. package/lib/src/components/StateTag/StateTag.d.ts +1 -0
  22. package/lib/src/components/Tags/index.d.ts +1 -1
  23. package/lib/src/components/WorkloadDropdown/index.d.ts +0 -2
  24. package/lib/src/components/WorkloadPodsTable/WorkloadPodsTable.d.ts +5 -2
  25. package/lib/src/components/WorkloadReplicas/index.d.ts +6 -3
  26. package/lib/src/components/YamlForm/index.d.ts +5 -7
  27. package/lib/src/components/index.d.ts +2 -0
  28. package/lib/src/constants/k8s.d.ts +43 -0
  29. package/lib/src/hooks/useEagleTable/columns.d.ts +5 -2
  30. package/lib/src/hooks/useSubmitForm.d.ts +1 -0
  31. package/lib/src/i18n.d.ts +10 -0
  32. package/lib/src/locales/zh-CN/index.d.ts +10 -0
  33. package/lib/src/models/index.d.ts +2 -0
  34. package/lib/src/models/ingress-model.d.ts +18 -0
  35. package/lib/src/models/job-model.d.ts +3 -1
  36. package/lib/src/models/network-policy-model.d.ts +10 -0
  37. package/lib/src/models/service-model.d.ts +10 -0
  38. package/lib/src/models/workload-model.d.ts +2 -0
  39. package/lib/src/pages/ingresses/index.d.ts +3 -0
  40. package/lib/src/pages/networkPolicies/index.d.ts +3 -0
  41. package/lib/src/types/resource.d.ts +2 -2
  42. package/lib/src/utils/error.d.ts +3 -3
  43. package/lib/src/utils/time.d.ts +6 -1
  44. package/lib/vite.config.d.ts +1 -1
  45. package/package.json +9 -9
  46. package/lib/src/components/ModalContextProvider/index.d.ts +0 -12
  47. package/lib/src/hooks/useModal.d.ts +0 -0
package/dist/style.css CHANGED
@@ -1,6 +1,8 @@
1
- .m1u1f5zp{color:#bec1d2;}
2
- .m8ychfk{margin-right:8px;}
3
- .p1o004do{margin-left:8px;}
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
+ .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
+ .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
+ .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;}
5
+ .t1upn1sz{width:100%;border-top:1px solid rgba(211,218,235,0.6);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.t1upn1sz .ant-table-pagination{display:none;}.t1upn1sz .table-container{min-height:0;}
4
6
  .egn3dbn{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%;}
5
7
  .e136jgy8{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;}.e136jgy8 .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%);}
6
8
  .w1akirqw{height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}
@@ -20,19 +22,27 @@
20
22
 
21
23
  .e1tqaxpu{-webkit-flex:1;-ms-flex:1;flex:1;height:100%;margin-bottom:16px;}
22
24
  .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;}
23
- .b142d7q8{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}.b142d7q8 .breadcrumb-item:not(:last-of-type):after{content:'>';margin:0 8px;}
24
- .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%;}
25
- .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%);}
26
- .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;}
27
- .t1upn1sz{width:100%;border-top:1px solid rgba(211,218,235,0.6);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.t1upn1sz .ant-table-pagination{display:none;}.t1upn1sz .table-container{min-height:0;}
28
25
  .t1v3ienx{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%;margin-bottom:16px;}
29
26
  .c16agr8o{width:100%;}
30
- .c1dicff8{width:100%;}
27
+ .m1u1f5zp{color:#bec1d2;}
28
+ .c1dicff8{width:100%;vertical-align:top;}
29
+ .esoz3jw .ant-modal-content{border-radius:16px;}.esoz3jw .ant-modal-header{border-radius:16px 16px 0 0;}
30
+ .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);}
31
37
  .t13a6vox{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;max-width:100%;}
32
- .t12ikbmp{max-width:256px;overflow:hidden;text-overflow:ellipsis;}
33
- .t9agep2{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%;}
34
- .so89gfi{width:100%;overflow:auto;height:100%;width:100%;}
35
- .e1ohe42f{margin-top:16px;}
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;}
36
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;}
37
47
  .t1ng0psc.table-wrapper{height:auto;-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;min-height:0;}
38
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%;}
@@ -1,8 +1,8 @@
1
1
  /// <reference types="react" />
2
2
  import { ResourceModel } from '../../models';
3
- import { ShowField } from '../ShowContent';
3
+ import { ShowConfig } from '../ShowContent';
4
4
  type Props<Model extends ResourceModel> = {
5
- fieldGroups: ShowField<Model>[][];
5
+ showConfig: ShowConfig<Model>;
6
6
  formatter?: (r: Model) => Model;
7
7
  };
8
8
  export declare const DrawerShow: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>(props: Props<Model>) => JSX.Element;
@@ -1,12 +1,10 @@
1
1
  import React from 'react';
2
- import { YamlFormProps, YamlFormHandler } from 'src/components/YamlForm';
2
+ import { YamlFormProps } from 'src/components/YamlForm';
3
3
  export type FormModalProps = {
4
4
  resource?: string;
5
5
  id?: string;
6
6
  formProps?: YamlFormProps;
7
- renderForm?: (props: YamlFormProps & {
8
- ref: React.MutableRefObject<YamlFormHandler | null>;
9
- }) => React.ReactNode;
7
+ renderForm?: (props: YamlFormProps) => React.ReactNode;
10
8
  };
11
9
  export declare function FormModal(props: FormModalProps): JSX.Element;
12
10
  export default FormModal;
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { IngressModel } from '../../models';
3
+ export declare const IngressRulesComponent: React.FC<{
4
+ ingress: IngressModel;
5
+ }>;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { IngressModel } from '../../models';
3
+ type Props = {
4
+ ingress: IngressModel;
5
+ };
6
+ export declare const IngressRulesTable: React.FC<Props>;
7
+ export {};
@@ -0,0 +1 @@
1
+ export * from './IngressRulesTable';
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ export interface KeyValueDataProps {
3
+ datas: Record<string, string>;
4
+ expandable?: boolean;
5
+ }
6
+ export declare function KeyValueData(props: KeyValueDataProps): JSX.Element;
@@ -0,0 +1,7 @@
1
+ import type { NetworkPolicyIngressRule, NetworkPolicyEgressRule } from 'kubernetes-types/networking/v1';
2
+ import React from 'react';
3
+ type Props = {
4
+ ingressOrEgress: NetworkPolicyIngressRule[] | NetworkPolicyEgressRule[];
5
+ };
6
+ export declare const NetworkPolicyRulesTable: React.FC<Props>;
7
+ export {};
@@ -0,0 +1 @@
1
+ export * from './NetworkPolicyRulesTable';
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
2
  import { ResourceModel } from '../../models';
3
- import { ShowField } from '../ShowContent';
3
+ import { ShowConfig } from '../ShowContent';
4
4
  type Props<Model extends ResourceModel> = {
5
- fieldGroups: ShowField<Model>[][];
5
+ showConfig: ShowConfig<Model>;
6
6
  formatter?: (r: Model) => Model;
7
7
  Dropdown?: React.FC<{
8
8
  record: Model;
@@ -0,0 +1,8 @@
1
+ import type { OwnerReference } from 'kubernetes-types/meta/v1';
2
+ import React from 'react';
3
+ type Props = {
4
+ ownerReference: OwnerReference;
5
+ namespace: string;
6
+ };
7
+ export declare const ReferenceLink: React.FC<Props>;
8
+ export {};
@@ -1,10 +1,10 @@
1
1
  import { IResourceComponentsProps } from '@refinedev/core';
2
2
  import React from 'react';
3
3
  import { ResourceModel } from '../../../models';
4
- import { ShowField } from '../../ShowContent';
4
+ import { ShowConfig } from '../../ShowContent';
5
5
  type Props<Model extends ResourceModel> = IResourceComponentsProps & {
6
6
  formatter?: (v: Model) => Model;
7
- filedGroups: ShowField<Model>[][];
7
+ showConfig: ShowConfig<Model>;
8
8
  Dropdown?: React.FC<{
9
9
  record: Model;
10
10
  }>;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ type Props = {
3
+ name: string;
4
+ namespace: string;
5
+ resourceId: string;
6
+ };
7
+ export declare const ResourceLink: React.FC<Props>;
8
+ export {};
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
2
  import { ResourceModel } from '../../models';
3
- import { ShowField } from './fields';
3
+ import { ShowConfig } from './fields';
4
4
  type Props<Model extends ResourceModel> = {
5
- fieldGroups: ShowField<Model>[][];
5
+ showConfig: ShowConfig<Model>;
6
6
  formatter?: (r: Model) => Model;
7
7
  Dropdown?: React.FC<{
8
8
  record: Model;
@@ -1,20 +1,39 @@
1
1
  import React from 'react';
2
- import { JobModel, ResourceModel, WorkloadModel, WorkloadBaseModel, CronJobModel } from '../../models';
2
+ import { JobModel, ResourceModel, WorkloadModel, WorkloadBaseModel, CronJobModel, IngressModel } from '../../models';
3
3
  export type ShowField<Model extends ResourceModel> = {
4
4
  key: string;
5
5
  title: string;
6
6
  path: string[];
7
- render?: (val: unknown, record: Model) => React.ReactElement | undefined;
7
+ labelWidth?: string;
8
+ col?: number;
9
+ render?: (val: unknown, record: Model, field: ShowField<Model>) => React.ReactElement | undefined;
10
+ renderContent?: (val: unknown, record: Model, field: ShowField<Model>) => React.ReactElement | undefined;
8
11
  };
9
- export declare const ImageField: () => ShowField<WorkloadBaseModel>;
12
+ export type ShowTabField<Model extends ResourceModel> = {
13
+ key: string;
14
+ title: string;
15
+ path: string[];
16
+ renderContent?: (val: unknown, record: Model, field: ShowTabField<Model>) => React.ReactElement | undefined;
17
+ };
18
+ export interface ShowConfig<Model extends ResourceModel = ResourceModel> {
19
+ title?: string;
20
+ descriptions?: ShowField<Model>[];
21
+ groups?: {
22
+ fields: ShowField<Model>[];
23
+ }[];
24
+ tabs?: ShowTabField<Model>[];
25
+ }
26
+ export declare const ImageField: <Model extends WorkloadBaseModel>() => ShowField<Model>;
10
27
  export declare const ReplicaField: () => ShowField<WorkloadModel>;
11
- export declare const ConditionsField: () => ShowField<ResourceModel>;
12
- export declare const PodsField: () => ShowField<WorkloadModel>;
13
- export declare const JobsField: () => ShowField<JobModel | CronJobModel>;
28
+ export declare const ConditionsField: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>() => ShowTabField<Model>;
29
+ export declare const PodsField: <Model extends WorkloadBaseModel>() => ShowTabField<Model>;
30
+ export declare const JobsField: <Model extends JobModel | CronJobModel>() => ShowTabField<Model>;
14
31
  export declare const DataField: () => ShowField<ResourceModel>;
15
32
  export declare const SecretDataField: () => ShowField<ResourceModel>;
16
33
  export declare const StartTimeField: () => ShowField<JobModel>;
17
34
  export declare const ServiceTypeField: () => ShowField<ResourceModel>;
18
35
  export declare const ClusterIpField: () => ShowField<ResourceModel>;
19
36
  export declare const SessionAffinityField: () => ShowField<ResourceModel>;
20
- export declare const ServicePodsField: () => ShowField<ResourceModel>;
37
+ export declare const ServicePodsField: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>() => ShowTabField<Model>;
38
+ export declare const IngressRulesTableTabField: <Model extends IngressModel>() => ShowTabField<Model>;
39
+ export declare const EventsTableTabField: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>() => ShowTabField<Model>;
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import { WorkloadState } from '../../constants';
3
3
  type Props = {
4
4
  state?: WorkloadState;
5
+ className?: string;
5
6
  };
6
7
  export declare const StateTag: React.FC<Props>;
7
8
  export {};
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  type Props = {
3
- value: Record<string, string>;
3
+ value?: Record<string, string>;
4
4
  };
5
5
  export declare const Tags: React.FC<Props>;
6
6
  export {};
@@ -1,9 +1,7 @@
1
1
  /// <reference types="react" />
2
- import { FormType } from 'src/types';
3
2
  import { WorkloadModel } from '../../models';
4
3
  type Props<Model extends WorkloadModel> = {
5
4
  record: Model;
6
- formType?: FormType;
7
5
  };
8
6
  export declare function WorkloadDropdown<Model extends WorkloadModel>(props: Props<Model>): JSX.Element;
9
7
  export {};
@@ -1,5 +1,8 @@
1
1
  import { LabelSelector } from 'kubernetes-types/meta/v1';
2
2
  import React from 'react';
3
- export declare const WorkloadPodsTable: React.FC<{
3
+ interface WorkloadPodsTableProps {
4
4
  selector?: LabelSelector;
5
- }>;
5
+ hideToolbar?: boolean;
6
+ }
7
+ export declare const WorkloadPodsTable: React.FC<WorkloadPodsTableProps>;
8
+ export {};
@@ -1,5 +1,8 @@
1
- import React from 'react';
1
+ /// <reference types="react" />
2
2
  import { WorkloadModel } from '../../models';
3
- export declare const WorkloadReplicas: React.FC<{
3
+ export interface WorkloadReplicasProps {
4
4
  record: WorkloadModel;
5
- }>;
5
+ label?: string;
6
+ editable?: boolean;
7
+ }
8
+ export declare function WorkloadReplicas({ record, label, editable }: WorkloadReplicasProps): JSX.Element;
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ /// <reference types="react" />
2
2
  export declare enum SchemaStrategy {
3
3
  Required = "Required",
4
4
  Optional = "Optional",
@@ -9,13 +9,11 @@ export interface YamlFormProps {
9
9
  initialValues?: Record<string, unknown>;
10
10
  schemaStrategy?: SchemaStrategy;
11
11
  isShowLayout?: boolean;
12
- onFinish?: () => void;
13
- }
14
- export interface YamlFormHandler {
15
- saveButtonProps: {
12
+ onSaveButtonPropsChange?: (saveButtonProps: {
16
13
  disabled?: boolean;
17
14
  onClick: () => void;
18
- };
15
+ }) => void;
16
+ onFinish?: () => void;
19
17
  }
20
- declare const YamlForm: React.ForwardRefExoticComponent<YamlFormProps & React.RefAttributes<YamlFormHandler>>;
18
+ declare function YamlForm(props: YamlFormProps): JSX.Element;
21
19
  export default YamlForm;
@@ -29,6 +29,8 @@ export * from './DrawerShow';
29
29
  export * from './Menu';
30
30
  export * from './Table';
31
31
  export * from './EditButton';
32
+ export * from './ReferenceLink';
33
+ export * from './ResourceLink';
32
34
  export * from './NamespacesFilter';
33
35
  export * from './Tags';
34
36
  export * from './PodLog';
@@ -223,4 +223,47 @@ export declare const SERVICE_INIT_VALUE: {
223
223
  apiVersion: string;
224
224
  kind: string;
225
225
  };
226
+ export declare const INGRESS_INIT_VALUE: {
227
+ spec: {
228
+ rules: {
229
+ host: string;
230
+ http: {
231
+ paths: {
232
+ path: string;
233
+ pathType: string;
234
+ backend: {
235
+ service: {
236
+ name: string;
237
+ port: {
238
+ number: number;
239
+ };
240
+ };
241
+ };
242
+ }[];
243
+ };
244
+ }[];
245
+ };
246
+ metadata: {
247
+ name: string;
248
+ namespace: string;
249
+ annotations: {};
250
+ labels: {};
251
+ };
252
+ apiVersion: string;
253
+ kind: string;
254
+ };
255
+ export declare const NETWORK_POLICY_INIT_VALUE: {
256
+ spec: {
257
+ podSelector: {};
258
+ policyTypes: never[];
259
+ };
260
+ metadata: {
261
+ name: string;
262
+ namespace: string;
263
+ annotations: {};
264
+ labels: {};
265
+ };
266
+ apiVersion: string;
267
+ kind: string;
268
+ };
226
269
  export declare const TIMESTAMP_LABEL = "sks.user.kubesmart.smtx.io/timestamp";
@@ -1,6 +1,6 @@
1
1
  import { Column } from '../../components/Table';
2
- import { JobModel, PodModel, ResourceModel, WorkloadModel, WorkloadBaseModel, CronJobModel } from '../../models';
3
- export declare const CommonSorter: (dataIndex: string[]) => (a: unknown, b: unknown) => 1 | 0 | -1;
2
+ import { JobModel, PodModel, ResourceModel, WorkloadModel, WorkloadBaseModel, CronJobModel, IngressModel } from '../../models';
3
+ export declare const CommonSorter: (dataIndex: string[]) => (a: unknown, b: unknown) => 0 | 1 | -1;
4
4
  export declare const NameColumnRenderer: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>(resource?: string) => Column<Model>;
5
5
  export declare const NameSpaceColumnRenderer: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>() => Column<Model>;
6
6
  export declare const StateDisplayColumnRenderer: <Model extends PodModel | WorkloadModel | CronJobModel>() => Column<Model>;
@@ -13,3 +13,6 @@ export declare const RestartCountColumnRenderer: <Model extends PodModel>() => C
13
13
  export declare const CompletionsCountColumnRenderer: <Model extends JobModel | CronJobModel>() => Column<Model>;
14
14
  export declare const DurationColumnRenderer: <Model extends JobModel | CronJobModel>() => Column<Model>;
15
15
  export declare const ServiceTypeColumnRenderer: <Model extends ResourceModel<import("k8s-api-provider").Unstructured>>() => Column<Model>;
16
+ export declare const PodWorkloadColumnRenderer: <Model extends PodModel>() => Column<Model>;
17
+ export declare const IngressRulesColumnRenderer: <Model extends IngressModel>() => Column<Model>;
18
+ export declare const IngressDefaultBackendColumnRenderer: <Model extends IngressModel>() => Column<Model>;
@@ -8,6 +8,7 @@ interface UseSubmitFormOptions {
8
8
  export declare function useSubmitForm(options: UseSubmitFormOptions): {
9
9
  submitting: boolean;
10
10
  errorMsgs: string[];
11
+ reset: () => void;
11
12
  onSubmit: () => Promise<void>;
12
13
  };
13
14
  export {};
package/lib/src/i18n.d.ts CHANGED
@@ -100,6 +100,16 @@ export declare const resources: {
100
100
  waiting: string;
101
101
  create_resource: string;
102
102
  edit_resource: string;
103
+ sec: string;
104
+ min: string;
105
+ hr: string;
106
+ day: string;
107
+ expand: string;
108
+ fold: string;
109
+ rule: string;
110
+ default_backend: string;
111
+ ingress_rule_type: string;
112
+ port: string;
103
113
  };
104
114
  };
105
115
  };
@@ -79,6 +79,16 @@ declare const _default: {
79
79
  waiting: string;
80
80
  create_resource: string;
81
81
  edit_resource: string;
82
+ sec: string;
83
+ min: string;
84
+ hr: string;
85
+ day: string;
86
+ expand: string;
87
+ fold: string;
88
+ rule: string;
89
+ default_backend: string;
90
+ ingress_rule_type: string;
91
+ port: string;
82
92
  };
83
93
  };
84
94
  export default _default;
@@ -1,3 +1,5 @@
1
+ export * from './ingress-model';
2
+ export * from './network-policy-model';
1
3
  export * from './job-model';
2
4
  export * from './workload-model';
3
5
  export * from './workload-base-model';
@@ -0,0 +1,18 @@
1
+ import { GlobalStore, Unstructured } from 'k8s-api-provider';
2
+ import type { Ingress } from 'kubernetes-types/networking/v1';
3
+ import { ResourceModel } from './resource-model';
4
+ type IngressTypes = Required<Ingress> & Unstructured;
5
+ type RuleItem = {
6
+ serviceName: string;
7
+ fullPath: string;
8
+ pathType: string;
9
+ host?: string;
10
+ servicePort?: number;
11
+ };
12
+ export declare class IngressModel extends ResourceModel<IngressTypes> {
13
+ _rawYaml: IngressTypes;
14
+ _globalStore: GlobalStore;
15
+ flattenedRules: RuleItem[];
16
+ constructor(_rawYaml: IngressTypes, _globalStore: GlobalStore);
17
+ }
18
+ export {};
@@ -6,11 +6,13 @@ type RequiredJob = Required<Job> & Unstructured;
6
6
  export declare class JobModel extends WorkloadBaseModel {
7
7
  _rawYaml: RequiredJob;
8
8
  _globalStore: GlobalStore;
9
+ restarts: number;
9
10
  spec?: RequiredJob['spec'];
10
11
  status?: RequiredJob['status'];
11
12
  constructor(_rawYaml: RequiredJob, _globalStore: GlobalStore);
13
+ init(): Promise<void>;
14
+ private getRestarts;
12
15
  get duration(): number;
13
- get durationDisplay(): string | undefined;
14
16
  get completionsDisplay(): string;
15
17
  get stateDisplay(): WorkloadState.COMPLETED | WorkloadState.FAILED | WorkloadState.SUSPENDED | WorkloadState.RUNNING;
16
18
  }
@@ -0,0 +1,10 @@
1
+ import { GlobalStore, Unstructured } from 'k8s-api-provider';
2
+ import type { NetworkPolicy } from 'kubernetes-types/networking/v1';
3
+ import { ResourceModel } from './resource-model';
4
+ type NetworkPolicyTypes = Required<NetworkPolicy> & Unstructured;
5
+ export declare class NetworkPolicyModel extends ResourceModel<NetworkPolicyTypes> {
6
+ _rawYaml: NetworkPolicyTypes;
7
+ _globalStore: GlobalStore;
8
+ constructor(_rawYaml: NetworkPolicyTypes, _globalStore: GlobalStore);
9
+ }
10
+ export {};
@@ -0,0 +1,10 @@
1
+ import { GlobalStore, Unstructured } from 'k8s-api-provider';
2
+ import { Service } from 'kubernetes-types/core/v1';
3
+ import { ResourceModel } from './resource-model';
4
+ export type ServiceType = Required<Unstructured & Service>;
5
+ export declare class ServiceModel extends ResourceModel<ServiceType> {
6
+ _rawYaml: ServiceType;
7
+ _globalStore: GlobalStore;
8
+ constructor(_rawYaml: ServiceType, _globalStore: GlobalStore);
9
+ inClusterAccess(): string | undefined;
10
+ }
@@ -11,6 +11,8 @@ export declare class WorkloadModel extends WorkloadBaseModel {
11
11
  constructor(_rawYaml: WorkloadTypes, _globalStore: GlobalStore);
12
12
  init(): Promise<void>;
13
13
  private getRestarts;
14
+ get replicas(): number | undefined;
15
+ get readyReplicas(): number | undefined;
14
16
  redeploy(): WorkloadTypes;
15
17
  scale(value: number): WorkloadTypes;
16
18
  }
@@ -0,0 +1,3 @@
1
+ import { IngressModel } from '../../models';
2
+ import { ResourceConfig } from '../../types';
3
+ export declare const IngressConfig: ResourceConfig<IngressModel>;
@@ -0,0 +1,3 @@
1
+ import { NetworkPolicyModel } from '../../models';
2
+ import { ResourceConfig } from '../../types';
3
+ export declare const NetworkPolicyConfig: ResourceConfig<NetworkPolicyModel>;
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { FormModalProps } from 'src/components/FormModal';
3
- import { ShowField } from '../components/ShowContent';
3
+ import { ShowConfig } from '../components/ShowContent';
4
4
  import { Column } from '../components/Table';
5
5
  import { ResourceModel } from '../models';
6
6
  export declare enum RESOURCE_GROUP {
@@ -26,7 +26,7 @@ export type ResourceConfig<Model extends ResourceModel = ResourceModel> = {
26
26
  formatter?: (v: Model) => Model;
27
27
  initValue?: Record<string, unknown>;
28
28
  columns?: () => Column<Model>[];
29
- showFields?: () => ShowField<Model>[][];
29
+ showConfig?: () => ShowConfig<Model>;
30
30
  Dropdown?: React.FC<{
31
31
  record: Model;
32
32
  }>;
@@ -5,7 +5,7 @@ type Cause = {
5
5
  message: string;
6
6
  field?: string;
7
7
  };
8
- type ErrorResponse = {
8
+ export type ErrorResponseBody = {
9
9
  message?: string;
10
10
  code?: number;
11
11
  reason?: string;
@@ -15,6 +15,6 @@ type ErrorResponse = {
15
15
  graphQLErrors?: Cause[];
16
16
  };
17
17
  export declare function isNetworkError(errors?: Cause[]): boolean;
18
- export declare function getSubmitError(errorResponse: ErrorResponse | undefined, text: string, i18n: I18n): string;
19
- export declare function getCommonErrors(response: ErrorResponse, i18n: I18n): string[];
18
+ export declare function getSubmitError(errorResponse: ErrorResponseBody | undefined, text: string, i18n: I18n): string;
19
+ export declare function getCommonErrors(responseBody: ErrorResponseBody, i18n: I18n): string[];
20
20
  export {};
@@ -1,5 +1,10 @@
1
1
  export declare function getSecondsDiff(startDate: string, endDate: string): number;
2
- export declare function elapsedTime(seconds: number): {
2
+ export declare function elapsedTime(seconds: number, i18nMap: {
3
+ min: string;
4
+ sec: string;
5
+ hr: string;
6
+ day: string;
7
+ }): {
3
8
  diff?: undefined;
4
9
  label?: undefined;
5
10
  } | {
@@ -1,2 +1,2 @@
1
- declare const _default: import("vite").UserConfigExport;
1
+ declare const _default: import("vite").UserConfig;
2
2
  export default _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dovetail-v2/refine",
3
- "version": "0.0.17",
3
+ "version": "0.0.19",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist",
@@ -20,7 +20,7 @@
20
20
  "dayjs": "^1.11.10",
21
21
  "i18next": "^23.2.3",
22
22
  "js-yaml": "^4.1.0",
23
- "k8s-api-provider": "0.0.15-beta.6",
23
+ "k8s-api-provider": "0.0.16",
24
24
  "ky": "^0.33.3",
25
25
  "lodash-es": "^4.17.21",
26
26
  "mitt": "^3.0.1",
@@ -36,6 +36,7 @@
36
36
  "devDependencies": {
37
37
  "@babel/core": "^7.4.0",
38
38
  "@babel/preset-env": "^7.1.6",
39
+ "@babel/preset-typescript": "^7.10.4",
39
40
  "@kubernetes/client-node": "^0.20.0",
40
41
  "@linaria/core": "^4.5.4",
41
42
  "@linaria/react": "^4.5.4",
@@ -43,6 +44,7 @@
43
44
  "@playwright/test": "^1.39.0",
44
45
  "@refinedev/cli": "^2.9.0",
45
46
  "@types/body-parser": "^1.19.5",
47
+ "@types/jest": "^29",
46
48
  "@types/js-yaml": "^4.0.6",
47
49
  "@types/json-schema": "^7.0.13",
48
50
  "@types/lodash-es": "^4.17.9",
@@ -58,17 +60,15 @@
58
60
  "eslint": "^8.38.0",
59
61
  "eslint-plugin-react-hooks": "^4.6.0",
60
62
  "eslint-plugin-react-refresh": "^0.3.4",
61
- "kubernetes-types": "^1.26.0",
62
- "vite": "^3.2.7",
63
- "vite-plugin-commonjs": "^0.10.0",
64
63
  "jest": "^29",
64
+ "kubernetes-types": "^1.26.0",
65
65
  "ts-jest": "^29",
66
- "@types/jest": "^29",
67
- "@babel/preset-typescript": "^7.10.4"
66
+ "vite": "^4.5.2",
67
+ "vite-plugin-commonjs": "^0.10.0"
68
68
  },
69
69
  "peerDependencies": {
70
- "@cloudtower/eagle": "^0.26.9",
71
- "@cloudtower/icons-react": "^0.26.9",
70
+ "@cloudtower/eagle": "^0.27.70",
71
+ "@cloudtower/icons-react": "^0.27.70",
72
72
  "@refinedev/core": "^4.38.0",
73
73
  "antd": "4.5.0",
74
74
  "i18next": "^23.2.3",