@kingteza/crud-component 1.4.3 → 1.6.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.
- package/dist/App.d.ts +8 -0
- package/dist/common/index.cjs.js +1 -1
- package/dist/common/index.d.ts +0 -1
- package/dist/common/index.es.js +72 -74
- package/dist/crud/CrudComponent.d.ts +9 -8
- package/dist/crud/CrudTextAreaComponent.d.ts +2 -1
- package/dist/crud/view/CrudViewer.cjs.js +1 -1
- package/dist/crud/view/CrudViewer.d.ts +3 -1
- package/dist/crud/view/CrudViewer.es.js +105 -103
- package/dist/crud/view/CrudViewerUtil.cjs.js +1 -1
- package/dist/crud/view/CrudViewerUtil.es.js +176 -73
- package/dist/crud-component.css +1 -1
- package/dist/types/CopyProps.d.ts +0 -0
- package/dist/util/CopyUtil.cjs.js +1 -0
- package/dist/util/CopyUtil.d.ts +13 -0
- package/dist/util/CopyUtil.es.js +21 -0
- package/package.json +1 -1
- package/dist/common/show-more/index.cjs.js +0 -1
- package/dist/common/show-more/index.d.ts +0 -16
- package/dist/common/show-more/index.es.js +0 -79
package/dist/App.d.ts
CHANGED
|
@@ -39,6 +39,7 @@ export declare const useWorkShiftCrudComponentProps: () => {
|
|
|
39
39
|
label: string;
|
|
40
40
|
type: string;
|
|
41
41
|
required: boolean;
|
|
42
|
+
copyable: boolean;
|
|
42
43
|
hideInTable?: undefined;
|
|
43
44
|
truncated?: undefined;
|
|
44
45
|
format?: undefined;
|
|
@@ -56,6 +57,7 @@ export declare const useWorkShiftCrudComponentProps: () => {
|
|
|
56
57
|
type: string;
|
|
57
58
|
hideInTable: boolean;
|
|
58
59
|
truncated: boolean;
|
|
60
|
+
copyable: boolean;
|
|
59
61
|
required?: undefined;
|
|
60
62
|
format?: undefined;
|
|
61
63
|
use12Hours?: undefined;
|
|
@@ -73,6 +75,7 @@ export declare const useWorkShiftCrudComponentProps: () => {
|
|
|
73
75
|
format: string;
|
|
74
76
|
use12Hours: boolean;
|
|
75
77
|
required: boolean;
|
|
78
|
+
copyable: boolean;
|
|
76
79
|
hideInTable?: undefined;
|
|
77
80
|
truncated?: undefined;
|
|
78
81
|
readonly?: undefined;
|
|
@@ -89,6 +92,7 @@ export declare const useWorkShiftCrudComponentProps: () => {
|
|
|
89
92
|
format: string;
|
|
90
93
|
use12Hours: boolean;
|
|
91
94
|
readonly: boolean;
|
|
95
|
+
copyable: boolean;
|
|
92
96
|
required?: undefined;
|
|
93
97
|
hideInTable?: undefined;
|
|
94
98
|
truncated?: undefined;
|
|
@@ -105,6 +109,7 @@ export declare const useWorkShiftCrudComponentProps: () => {
|
|
|
105
109
|
int: boolean;
|
|
106
110
|
required: boolean;
|
|
107
111
|
hideInTable: boolean;
|
|
112
|
+
copyable: boolean;
|
|
108
113
|
truncated?: undefined;
|
|
109
114
|
format?: undefined;
|
|
110
115
|
use12Hours?: undefined;
|
|
@@ -122,6 +127,7 @@ export declare const useWorkShiftCrudComponentProps: () => {
|
|
|
122
127
|
required: boolean;
|
|
123
128
|
hideInTable: boolean;
|
|
124
129
|
max: number;
|
|
130
|
+
copyable: boolean;
|
|
125
131
|
truncated?: undefined;
|
|
126
132
|
format?: undefined;
|
|
127
133
|
use12Hours?: undefined;
|
|
@@ -132,6 +138,7 @@ export declare const useWorkShiftCrudComponentProps: () => {
|
|
|
132
138
|
type: string;
|
|
133
139
|
int: boolean;
|
|
134
140
|
required: boolean;
|
|
141
|
+
copyable: boolean;
|
|
135
142
|
grid?: undefined;
|
|
136
143
|
hideInTable?: undefined;
|
|
137
144
|
truncated?: undefined;
|
|
@@ -149,6 +156,7 @@ export declare const useWorkShiftCrudComponentProps: () => {
|
|
|
149
156
|
type: string;
|
|
150
157
|
int: boolean;
|
|
151
158
|
required: boolean;
|
|
159
|
+
copyable: boolean;
|
|
152
160
|
hideInTable?: undefined;
|
|
153
161
|
truncated?: undefined;
|
|
154
162
|
format?: undefined;
|
package/dist/common/index.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./text/index.cjs.js"),t=require("./rich/index.cjs.js"),o=require("./appearance/Hider.cjs.js"),r=require("./button/Button.cjs.js"),n=require("./button/CloneButtonTable.cjs.js"),i=require("./button/DeleteButtonTable.cjs.js"),u=require("./button/HideButtonTable.cjs.js"),c=require("./button/UnHideButton.cjs.js"),s=require("./button/UpdateButtonTable.cjs.js"),a=require("./button/ViewButtonTable.cjs.js"),l=require("./check-box/CheckBox.cjs.js"),d=require("./date-picker/DatePicker.cjs.js"),q=require("./date-picker/TimePicker.cjs.js"),p=require("./description/DescList.cjs.js"),T=require("./layout/VerticalSpace.cjs.js"),B=require("./loading/LoadingIndicator.cjs.js"),m=require("./picker/ImagePicker.cjs.js"),b=require("./select/SelectComponent.cjs.js"),C=require("./select/CustomSelectOption.cjs.js"),x=require("./table/table.cjs.js"),R=require("./tag/StatusTag.cjs.js"),S=require("./text-field/NumberField.cjs.js"),h=require("./text-field/PhoneNumberField.cjs.js"),P=require("./text-field/TextField.cjs.js"),F=require("./text-field/TextArea.cjs.js"),w=require("./tooltip/TooltipComponent.cjs.js"),I=require("./wizard/WizardResult.cjs.js"),V=require("./wizard/WizardViewForm.cjs.js"),g=require("./button/ExportButton.cjs.js"),k=require("./button/ImportButton.cjs.js"),f=require("./button/NewButton.cjs.js"),W=require("./button/PrintButton.cjs.js"),D=require("./button/RefreshButton.cjs.js"),H=require("./radio/RadioGroupComponent.cjs.js"),N=require("./report/SelectFieldInReport.cjs.js"),E=require("./tab/TabViewWithRoute.cjs.js"),z=require("./text/title/index.cjs.js");exports.Text=e.Text;exports.RichTextEditor=t.RichTextEditor;exports.Hider=o;exports.ButtonComponent=r;exports.CloneButtonTable=n;exports.DeleteButtonTable=i;exports.HideButtonTable=u;exports.UnHideButton=c;exports.UpdateButtonTable=s;exports.ViewButtonTable=a;exports.CheckBoxComponent=l;exports.DatePickerComponent=d;exports.TimePickerComponent=q;exports.DescList=p;exports.VerticalSpace=T;exports.LoadingIndicator=B;exports.ImagePicker=m.default;exports.SelectComponent=b;exports.CustomSelectOption=C;exports.TableComponent=x;exports.StatusTag=R;exports.NumberTextField=S;exports.PhoneField=h;exports.TextField=P.default;exports.TextAreaComponent=F.default;exports.TooltipComponent=w;exports.WizardResult=I;exports.WizardViewForm=V;exports.ExportButton=g.ExportButton;exports.ImportButton=k.ImportButton;exports.NewButton=f.NewButton;exports.PrintButton=W.PrintButton;exports.RefreshButton=D.RefreshButton;exports.RadioGroupComponent=H;exports.SelectFieldInReport=N.SelectFieldInReport;exports.TabViewWithRoute=E.TabViewWithRoute;exports.Title=z.Title;
|
package/dist/common/index.d.ts
CHANGED
package/dist/common/index.es.js
CHANGED
|
@@ -1,78 +1,76 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { default as l } from "./
|
|
5
|
-
import { default as x } from "./button/
|
|
6
|
-
import { default as n } from "./button/
|
|
7
|
-
import { default as i } from "./button/
|
|
8
|
-
import { default as B } from "./button/
|
|
9
|
-
import { default as C } from "./button/
|
|
10
|
-
import { default as
|
|
11
|
-
import { default as S } from "./button/ViewButtonTable.es.js";
|
|
1
|
+
import { Text as o } from "./text/index.es.js";
|
|
2
|
+
import { RichTextEditor as a } from "./rich/index.es.js";
|
|
3
|
+
import { default as p } from "./appearance/Hider.es.js";
|
|
4
|
+
import { default as l } from "./button/Button.es.js";
|
|
5
|
+
import { default as x } from "./button/CloneButtonTable.es.js";
|
|
6
|
+
import { default as n } from "./button/DeleteButtonTable.es.js";
|
|
7
|
+
import { default as i } from "./button/HideButtonTable.es.js";
|
|
8
|
+
import { default as B } from "./button/UnHideButton.es.js";
|
|
9
|
+
import { default as C } from "./button/UpdateButtonTable.es.js";
|
|
10
|
+
import { default as R } from "./button/ViewButtonTable.es.js";
|
|
12
11
|
import { default as F } from "./check-box/CheckBox.es.js";
|
|
13
|
-
import { default as
|
|
14
|
-
import { default as
|
|
15
|
-
import { default as
|
|
16
|
-
import { default as
|
|
17
|
-
import { default as
|
|
18
|
-
import { default as
|
|
19
|
-
import { default as
|
|
20
|
-
import { default as
|
|
21
|
-
import { default as
|
|
22
|
-
import { default as
|
|
23
|
-
import { default as
|
|
24
|
-
import { default as
|
|
25
|
-
import { default as
|
|
26
|
-
import { default as
|
|
27
|
-
import { default as
|
|
28
|
-
import { default as
|
|
29
|
-
import { default as
|
|
30
|
-
import { ExportButton as
|
|
31
|
-
import { ImportButton as
|
|
32
|
-
import { NewButton as
|
|
33
|
-
import { PrintButton as
|
|
34
|
-
import { RefreshButton as
|
|
35
|
-
import { default as
|
|
36
|
-
import { SelectFieldInReport as
|
|
37
|
-
import { TabViewWithRoute as
|
|
38
|
-
import { Title as
|
|
12
|
+
import { default as S } from "./date-picker/DatePicker.es.js";
|
|
13
|
+
import { default as w } from "./date-picker/TimePicker.es.js";
|
|
14
|
+
import { default as V } from "./description/DescList.es.js";
|
|
15
|
+
import { default as D } from "./layout/VerticalSpace.es.js";
|
|
16
|
+
import { default as W } from "./loading/LoadingIndicator.es.js";
|
|
17
|
+
import { default as E } from "./picker/ImagePicker.es.js";
|
|
18
|
+
import { default as N } from "./select/SelectComponent.es.js";
|
|
19
|
+
import { default as A } from "./select/CustomSelectOption.es.js";
|
|
20
|
+
import { default as O } from "./table/table.es.js";
|
|
21
|
+
import { default as q } from "./tag/StatusTag.es.js";
|
|
22
|
+
import { default as y } from "./text-field/NumberField.es.js";
|
|
23
|
+
import { default as K } from "./text-field/PhoneNumberField.es.js";
|
|
24
|
+
import { default as Q } from "./text-field/TextField.es.js";
|
|
25
|
+
import { default as Y } from "./text-field/TextArea.es.js";
|
|
26
|
+
import { default as _ } from "./tooltip/TooltipComponent.es.js";
|
|
27
|
+
import { default as ee } from "./wizard/WizardResult.es.js";
|
|
28
|
+
import { default as oe } from "./wizard/WizardViewForm.es.js";
|
|
29
|
+
import { ExportButton as ae } from "./button/ExportButton.es.js";
|
|
30
|
+
import { ImportButton as pe } from "./button/ImportButton.es.js";
|
|
31
|
+
import { NewButton as le } from "./button/NewButton.es.js";
|
|
32
|
+
import { PrintButton as xe } from "./button/PrintButton.es.js";
|
|
33
|
+
import { RefreshButton as ne } from "./button/RefreshButton.es.js";
|
|
34
|
+
import { default as ie } from "./radio/RadioGroupComponent.es.js";
|
|
35
|
+
import { SelectFieldInReport as Be } from "./report/SelectFieldInReport.es.js";
|
|
36
|
+
import { TabViewWithRoute as Ce } from "./tab/TabViewWithRoute.es.js";
|
|
37
|
+
import { Title as Re } from "./text/title/index.es.js";
|
|
39
38
|
export {
|
|
40
|
-
|
|
39
|
+
l as ButtonComponent,
|
|
41
40
|
F as CheckBoxComponent,
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
C as
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
oe as
|
|
77
|
-
ae as WizardViewForm
|
|
41
|
+
x as CloneButtonTable,
|
|
42
|
+
A as CustomSelectOption,
|
|
43
|
+
S as DatePickerComponent,
|
|
44
|
+
n as DeleteButtonTable,
|
|
45
|
+
V as DescList,
|
|
46
|
+
ae as ExportButton,
|
|
47
|
+
i as HideButtonTable,
|
|
48
|
+
p as Hider,
|
|
49
|
+
E as ImagePicker,
|
|
50
|
+
pe as ImportButton,
|
|
51
|
+
W as LoadingIndicator,
|
|
52
|
+
le as NewButton,
|
|
53
|
+
y as NumberTextField,
|
|
54
|
+
K as PhoneField,
|
|
55
|
+
xe as PrintButton,
|
|
56
|
+
ie as RadioGroupComponent,
|
|
57
|
+
ne as RefreshButton,
|
|
58
|
+
a as RichTextEditor,
|
|
59
|
+
N as SelectComponent,
|
|
60
|
+
Be as SelectFieldInReport,
|
|
61
|
+
q as StatusTag,
|
|
62
|
+
Ce as TabViewWithRoute,
|
|
63
|
+
O as TableComponent,
|
|
64
|
+
o as Text,
|
|
65
|
+
Y as TextAreaComponent,
|
|
66
|
+
Q as TextField,
|
|
67
|
+
w as TimePickerComponent,
|
|
68
|
+
Re as Title,
|
|
69
|
+
_ as TooltipComponent,
|
|
70
|
+
B as UnHideButton,
|
|
71
|
+
C as UpdateButtonTable,
|
|
72
|
+
D as VerticalSpace,
|
|
73
|
+
R as ViewButtonTable,
|
|
74
|
+
ee as WizardResult,
|
|
75
|
+
oe as WizardViewForm
|
|
78
76
|
};
|
|
@@ -12,6 +12,7 @@ import { SelectTagRenderProps } from '../common/select/SelectComponent';
|
|
|
12
12
|
import { default as IdProps } from '../types/Id';
|
|
13
13
|
import { TextAreaBasedFieldProps } from './CrudTextAreaComponent';
|
|
14
14
|
import { SizeType } from 'antd/es/config-provider/SizeContext';
|
|
15
|
+
import { Copyable } from 'src/util/CopyUtil';
|
|
15
16
|
export type SelectFieldItem = {
|
|
16
17
|
key?: string | number;
|
|
17
18
|
value: string | number;
|
|
@@ -61,7 +62,7 @@ export type CrudFieldGrid = {
|
|
|
61
62
|
xl?: number;
|
|
62
63
|
xxl?: number;
|
|
63
64
|
};
|
|
64
|
-
export interface SelectCrudField<T, ItemType extends SelectFieldItem = SelectFieldItem> extends Omit<InitialCrudField<T>, "name">, AddonFieldProps {
|
|
65
|
+
export interface SelectCrudField<T, ItemType extends SelectFieldItem = SelectFieldItem> extends Omit<InitialCrudField<T>, "name">, AddonFieldProps, Copyable<false> {
|
|
65
66
|
name: InitialCrudField<T>["name"] | {
|
|
66
67
|
name: keyof T | (string | number)[];
|
|
67
68
|
upsertFieldName: keyof T | (string | number)[];
|
|
@@ -105,7 +106,7 @@ export interface SelectCrudField<T, ItemType extends SelectFieldItem = SelectFie
|
|
|
105
106
|
onChange?: (value: any, form: FormInstance<T>) => void;
|
|
106
107
|
onSet?: (value: any | any[], items: SelectFieldItem[], form: FormInstance<T>) => void;
|
|
107
108
|
}
|
|
108
|
-
export interface EnumCrudField<T> extends InitialCrudField<T> {
|
|
109
|
+
export interface EnumCrudField<T> extends InitialCrudField<T>, Copyable<false> {
|
|
109
110
|
type: "enum";
|
|
110
111
|
placeholder?: string;
|
|
111
112
|
name: keyof T;
|
|
@@ -123,17 +124,17 @@ export type AddonFieldProps = {
|
|
|
123
124
|
addonAfter?: ReactNode;
|
|
124
125
|
addonBefore?: ReactNode;
|
|
125
126
|
};
|
|
126
|
-
export interface ObjectCrudField<T> extends InitialCrudField<T> {
|
|
127
|
+
export interface ObjectCrudField<T> extends InitialCrudField<T>, Copyable<true> {
|
|
127
128
|
type: "object";
|
|
128
129
|
render: (value: any, obj: T, index: number) => any;
|
|
129
130
|
translation?: object;
|
|
130
131
|
}
|
|
131
|
-
export interface TextBasedFieldProps<T> extends InitialCrudField<T>, AddonFieldProps {
|
|
132
|
+
export interface TextBasedFieldProps<T> extends InitialCrudField<T>, AddonFieldProps, Copyable<false> {
|
|
132
133
|
placeholder?: string;
|
|
133
134
|
type: "text" | "time" | "email" | "password";
|
|
134
135
|
onChange?: (value: string, form: FormInstance<T>) => void;
|
|
135
136
|
}
|
|
136
|
-
export interface ColorPickerFieldProps<T> extends Omit<InitialCrudField<T>, "placeholder"> {
|
|
137
|
+
export interface ColorPickerFieldProps<T> extends Omit<InitialCrudField<T>, "placeholder">, Copyable<false> {
|
|
137
138
|
type: "color";
|
|
138
139
|
innerProps?: ColorPickerProps;
|
|
139
140
|
}
|
|
@@ -142,7 +143,7 @@ export interface CheckboxBasedFieldProps<T> extends InitialCrudField<T> {
|
|
|
142
143
|
onChange?: (value: boolean, form: FormInstance<T>) => void;
|
|
143
144
|
switch?: boolean;
|
|
144
145
|
}
|
|
145
|
-
export interface NumberBasedFieldProps<T> extends InitialCrudField<T>, AddonFieldProps {
|
|
146
|
+
export interface NumberBasedFieldProps<T> extends InitialCrudField<T>, AddonFieldProps, Copyable<false> {
|
|
146
147
|
type: "number";
|
|
147
148
|
placeholder?: string;
|
|
148
149
|
allowMinus?: boolean;
|
|
@@ -155,7 +156,7 @@ export interface NumberBasedFieldProps<T> extends InitialCrudField<T>, AddonFiel
|
|
|
155
156
|
int?: boolean;
|
|
156
157
|
onChange?: (value: number, form: FormInstance<T>) => void;
|
|
157
158
|
}
|
|
158
|
-
export interface DateBasedFieldProps<T> extends InitialCrudField<T> {
|
|
159
|
+
export interface DateBasedFieldProps<T> extends InitialCrudField<T>, Copyable<false> {
|
|
159
160
|
type: "date";
|
|
160
161
|
format?: string;
|
|
161
162
|
placeholder?: string;
|
|
@@ -173,7 +174,7 @@ export interface DateBasedFieldProps<T> extends InitialCrudField<T> {
|
|
|
173
174
|
};
|
|
174
175
|
onChange?: (value: Dayjs | undefined, form: FormInstance<T>) => void;
|
|
175
176
|
}
|
|
176
|
-
export interface TimeBasedFieldProps<T> extends InitialCrudField<T> {
|
|
177
|
+
export interface TimeBasedFieldProps<T> extends InitialCrudField<T>, Copyable<false> {
|
|
177
178
|
type: "time";
|
|
178
179
|
placeholder?: string;
|
|
179
180
|
use12Hours?: boolean;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { InitialCrudField } from './CrudComponent';
|
|
2
2
|
import { FormInstance } from 'antd/lib';
|
|
3
|
+
import { Copyable } from 'src/util/CopyUtil';
|
|
3
4
|
interface InitialTextAreaProps<T> extends InitialCrudField<T> {
|
|
4
5
|
type: "textarea";
|
|
5
6
|
onChange?: (value: string, form: FormInstance<T>) => void;
|
|
@@ -17,6 +18,6 @@ interface TextAreaProps<T> extends InitialTextAreaProps<T> {
|
|
|
17
18
|
interface RichTextAreaProps<T> extends InitialTextAreaProps<T> {
|
|
18
19
|
rich?: true;
|
|
19
20
|
}
|
|
20
|
-
export type TextAreaBasedFieldProps<T> = TextAreaProps<T> & RichTextAreaProps<T>;
|
|
21
|
+
export type TextAreaBasedFieldProps<T> = TextAreaProps<T> & RichTextAreaProps<T> & Copyable<false>;
|
|
21
22
|
declare const CrudTextAreaComponent: <T>({ onChange, label, required, rules, name, updatable, ...props }: TextAreaBasedFieldProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
22
23
|
export default CrudTextAreaComponent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const e=require("react/jsx-runtime"),
|
|
1
|
+
"use strict";const e=require("react/jsx-runtime"),ft=require("antd"),jt=require("@dnd-kit/core"),yt=require("@dnd-kit/modifiers"),ht=require("@dnd-kit/utilities"),d=require("@dnd-kit/sortable"),qt=require("../../common/button/Button.cjs.js"),Ct=require("../../common/button/RefreshButton.cjs.js"),It=require("../../common/button/ViewButtonTable.cjs.js"),St=require("../actions/index.cjs.js"),Rt=require("../../common/table/table.cjs.js"),r=require("react"),lt=require("../../locale/index.cjs.js"),Mt=require("../CrudSearchComponent.cjs.js"),dt=require("./CrudDecListView.cjs.js"),et=require("./CrudViewerUtil.cjs.js"),Tt=require("@ant-design/icons"),nt=require("../../util/CrudUtil.cjs.js"),Bt=require("../../common/layout/VerticalSpace.cjs.js"),Dt=r.memo(Rt);function Vt({idField:n="id",loadingData:h,fields:m,isDeleting:T,isHiding:R,viewable:c=!1,paginateProps:j,onDelete:q,onHide:B,onUpdate:C,data:I=[],extraAction:D,onClickUpdate:V,minusHeight:E,scroll:k,onClickClone:v,className:z,expandable:$,size:p,bordered:A,descListColumn:st,extraView:L,decListLayout:rt,scrollToTop:Lt,onClickRefresh:_,closeViewOnClickUpdate:G,onExport:J,confirmHiding:K,confirmDeleting:Q,rowClassName:X,actionWidth:Y=190,draggable:t,rowSelection:Z,...ct}){const{t:P}=lt.useTranslationLib(),W=r.useMemo(()=>m.map(({hideInTable:o,hidden:s,width:u,label:x,halign:S,...M})=>{const N=nt.getRealName(M.name);return{title:x,width:u,key:N,dataIndex:N,hidden:o||s,align:S??(M.type==="number"?"right":void 0),render:et.getRendererValueCrudViewer(M)}}),[m]),[i,l]=r.useState(),[H,U]=r.useState(),[y,w]=r.useState([]);r.useEffect(()=>{I&&w(I)},[I]),r.useEffect(()=>{I&&l(o=>{if(o)return I.find(s=>s[n]===o[n])})},[I,n,i]);const a=r.useCallback(o=>{var x;const{active:s,over:u}=o;if(t!=null&&t.onDragEnd&&(t==null||t.onDragEnd(o)),s.id!==(u==null?void 0:u.id)){const S=y.findIndex(f=>f[n]===s.id),M=y.findIndex(f=>f[n]===(u==null?void 0:u.id)),N=d.arrayMove(y,S,M);w(f=>{const mt=f.findIndex(O=>O[n]===(s==null?void 0:s.id)),xt=f.findIndex(O=>O[n]===(u==null?void 0:u.id));return d.arrayMove(f,mt,xt)}),(x=t==null?void 0:t.onDrag)==null||x.call(t,{newOrder:N.map(f=>f[n])})}},[y,n,t]),ut=r.useMemo(()=>{let o=typeof c=="string"?i==null?void 0:i[c]:void 0;if(typeof o=="object"){const s=m.find(u=>nt.getRealName(u.name)===c);o=et.getRendererValueCrudViewer(s)(o,i,0)}return o},[c,i,m]),F=r.useMemo(()=>({rowSelection:Z,rowClassName:X,className:z,scroll:k??(E?{y:`calc(100vh - ${E})`}:void 0),id:"crud-table",bordered:A,size:p,expandable:$}),[Z,X,z,k,E,A,p,$]),b=r.useMemo(()=>j?{total:j.count,onChange:j.setPage,current:j.page,pageSize:j.pageSize}:void 0,[j]),g=r.useMemo(()=>{const o=C||V||q||D||c,s=[];return t&&s.push({key:"key",align:"center",width:5,title:t==null?void 0:t.columnLabel,render:()=>e.jsx(Nt,{tooltip:t==null?void 0:t.tooltip})}),s.push(...W),o&&o&&s.push({title:P("str.action"),fixed:"right",width:Y,render:(u,x)=>e.jsxs(e.Fragment,{children:[c&&e.jsx(It,{value:x,onClick:typeof c=="object"?()=>{var S;return(S=c.onClick)==null?void 0:S.call(c,x)}:l}),e.jsx(St,{data:x,idField:n,extraAction:D,onUpdate:C,onClickUpdate:V,onClickClone:v,onDelete:q,onHide:B,onExport:J,isHiding:R,isDeleting:T,confirmHiding:K,confirmDeleting:Q,closeViewOnClickUpdate:G,recentUpdateOrDeleteId:H,setRecentUpdateOrDeleteId:U,setOpenView:l})]})}),s},[W,C,V,q,D,c,P,Y]),tt=r.useMemo(()=>y.map(o=>o[n]),[y,n]),it=r.useCallback(()=>{const o=e.jsx(Dt,{...F,dataSource:y,loading:h,components:t?{body:{row:Et}}:void 0,pagination:b,columns:g});return t?e.jsx(jt.DndContext,{modifiers:[yt.restrictToVerticalAxis],onDragEnd:a,children:e.jsx(d.SortableContext,{items:tt,strategy:d.verticalListSortingStrategy,children:o})}):o},[F,y,h,b,g,t,tt,a]);return e.jsxs("div",{children:[typeof c=="boolean"||typeof c=="string"&&e.jsx(ft.Modal,{width:"100%",open:!!i,title:ut??e.jsx("div",{children:" "}),footer:e.jsx(e.Fragment,{}),closable:!0,onCancel:()=>l(void 0),children:!!i&&e.jsxs("div",{children:[e.jsx(dt.CrudDecListView,{layout:rt,descListColumn:st,data:i,fields:m,idField:n,extraAction:D,onUpdate:C,onClickUpdate:V,onClickClone:v,onDelete:q,onHide:B,onExport:J,isHiding:R,isDeleting:T,confirmHiding:K,confirmDeleting:Q,closeViewOnClickUpdate:G,recentUpdateOrDeleteId:H,setRecentUpdateOrDeleteId:U,setOpenView:l}),L==null?void 0:L(i)]},i==null?void 0:i[n])}),e.jsx(Mt,{fields:m,...ct}),e.jsxs(Bt,{children:[!!_&&e.jsx(Ct.RefreshButton,{onClick:_}),it()]})]})}const ot=r.createContext({}),Nt=({tooltip:n})=>{const{setActivatorNodeRef:h,listeners:m}=r.useContext(ot);return e.jsx(qt,{type:"text",size:"small",tooltip:n,icon:e.jsx(Tt.HolderOutlined,{}),style:{cursor:"move",border:"none"},ref:h,...m})},Et=n=>{const{attributes:h,listeners:m,setNodeRef:T,setActivatorNodeRef:R,transform:c,transition:j,isDragging:q}=d.useSortable({id:n["data-row-key"]}),B={...n.style,transform:ht.CSS.Translate.toString(c),transition:j,...q?{position:"relative",zIndex:9999}:{}},C=r.useMemo(()=>({setActivatorNodeRef:R,listeners:m}),[R,m]);return e.jsx(ot.Provider,{value:C,children:e.jsx("tr",{...n,ref:T,style:B,...h})})};module.exports=Vt;
|
|
@@ -7,6 +7,7 @@ import { default as React } from 'react';
|
|
|
7
7
|
import { CrudFieldProps, CrudPaginateProps } from '../CrudComponent';
|
|
8
8
|
import { CrudSearchComponentProps } from '../CrudSearchComponent';
|
|
9
9
|
import { DescListColumn } from './CrudDecListView';
|
|
10
|
+
type TableRowSelection<T> = TableProps<T>['rowSelection'];
|
|
10
11
|
export type CrudDragableProps<T> = {
|
|
11
12
|
onDragEnd?: (event: DragEndEvent) => void;
|
|
12
13
|
onDrag?: (params: {
|
|
@@ -32,6 +33,7 @@ export type CrudViewerProps<T, FormType> = {
|
|
|
32
33
|
size?: SizeType;
|
|
33
34
|
onClickRefresh?: () => void;
|
|
34
35
|
expandable?: ExpandableConfig<T>;
|
|
36
|
+
rowSelection?: TableRowSelection<T>;
|
|
35
37
|
descListColumn?: DescListColumn;
|
|
36
38
|
extraView?: (t: T) => React.ReactElement;
|
|
37
39
|
scrollToTop?: boolean;
|
|
@@ -39,5 +41,5 @@ export type CrudViewerProps<T, FormType> = {
|
|
|
39
41
|
actionWidth?: string | number;
|
|
40
42
|
draggable?: CrudDragableProps<T>;
|
|
41
43
|
} & CrudActionsProps<T, FormType> & CrudSearchComponentProps<T, FormType>;
|
|
42
|
-
declare function CrudViewer<T, FormType = T>({ idField, loadingData, fields, isDeleting, isHiding, viewable, paginateProps, onDelete, onHide, onUpdate, data, extraAction, onClickUpdate, minusHeight, scroll, onClickClone, className, expandable, size, bordered, descListColumn, extraView, decListLayout, scrollToTop, onClickRefresh, closeViewOnClickUpdate, onExport, confirmHiding, confirmDeleting, rowClassName, actionWidth, draggable, ...props }: CrudViewerProps<T, FormType>): import("react/jsx-runtime").JSX.Element;
|
|
44
|
+
declare function CrudViewer<T, FormType = T>({ idField, loadingData, fields, isDeleting, isHiding, viewable, paginateProps, onDelete, onHide, onUpdate, data, extraAction, onClickUpdate, minusHeight, scroll, onClickClone, className, expandable, size, bordered, descListColumn, extraView, decListLayout, scrollToTop, onClickRefresh, closeViewOnClickUpdate, onExport, confirmHiding, confirmDeleting, rowClassName, actionWidth, draggable, rowSelection, ...props }: CrudViewerProps<T, FormType>): import("react/jsx-runtime").JSX.Element;
|
|
43
45
|
export default CrudViewer;
|