@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 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;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./show-more/index.cjs.js"),t=require("./text/index.cjs.js"),o=require("./rich/index.cjs.js"),r=require("./appearance/Hider.cjs.js"),n=require("./button/Button.cjs.js"),i=require("./button/CloneButtonTable.cjs.js"),u=require("./button/DeleteButtonTable.cjs.js"),c=require("./button/HideButtonTable.cjs.js"),s=require("./button/UnHideButton.cjs.js"),a=require("./button/UpdateButtonTable.cjs.js"),l=require("./button/ViewButtonTable.cjs.js"),d=require("./check-box/CheckBox.cjs.js"),q=require("./date-picker/DatePicker.cjs.js"),p=require("./date-picker/TimePicker.cjs.js"),T=require("./description/DescList.cjs.js"),B=require("./layout/VerticalSpace.cjs.js"),m=require("./loading/LoadingIndicator.cjs.js"),b=require("./picker/ImagePicker.cjs.js"),x=require("./select/SelectComponent.cjs.js"),C=require("./select/CustomSelectOption.cjs.js"),R=require("./table/table.cjs.js"),S=require("./tag/StatusTag.cjs.js"),h=require("./text-field/NumberField.cjs.js"),w=require("./text-field/PhoneNumberField.cjs.js"),P=require("./text-field/TextField.cjs.js"),F=require("./text-field/TextArea.cjs.js"),I=require("./tooltip/TooltipComponent.cjs.js"),V=require("./wizard/WizardResult.cjs.js"),g=require("./wizard/WizardViewForm.cjs.js"),k=require("./button/ExportButton.cjs.js"),f=require("./button/ImportButton.cjs.js"),W=require("./button/NewButton.cjs.js"),D=require("./button/PrintButton.cjs.js"),H=require("./button/RefreshButton.cjs.js"),N=require("./radio/RadioGroupComponent.cjs.js"),E=require("./report/SelectFieldInReport.cjs.js"),z=require("./tab/TabViewWithRoute.cjs.js"),L=require("./text/title/index.cjs.js");exports.ShowMore=e.ShowMore;exports.Text=t.Text;exports.RichTextEditor=o.RichTextEditor;exports.Hider=r;exports.ButtonComponent=n;exports.CloneButtonTable=i;exports.DeleteButtonTable=u;exports.HideButtonTable=c;exports.UnHideButton=s;exports.UpdateButtonTable=a;exports.ViewButtonTable=l;exports.CheckBoxComponent=d;exports.DatePickerComponent=q;exports.TimePickerComponent=p;exports.DescList=T;exports.VerticalSpace=B;exports.LoadingIndicator=m;exports.ImagePicker=b.default;exports.SelectComponent=x;exports.CustomSelectOption=C;exports.TableComponent=R;exports.StatusTag=S;exports.NumberTextField=h;exports.PhoneField=w;exports.TextField=P.default;exports.TextAreaComponent=F.default;exports.TooltipComponent=I;exports.WizardResult=V;exports.WizardViewForm=g;exports.ExportButton=k.ExportButton;exports.ImportButton=f.ImportButton;exports.NewButton=W.NewButton;exports.PrintButton=D.PrintButton;exports.RefreshButton=H.RefreshButton;exports.RadioGroupComponent=N;exports.SelectFieldInReport=E.SelectFieldInReport;exports.TabViewWithRoute=z.TabViewWithRoute;exports.Title=L.Title;
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;
@@ -9,7 +9,6 @@ export * from './picker';
9
9
  export * from './radio';
10
10
  export * from './report';
11
11
  export * from './select';
12
- export * from './show-more';
13
12
  export * from './tab';
14
13
  export * from './table';
15
14
  export * from './tag';
@@ -1,78 +1,76 @@
1
- import { ShowMore as o } from "./show-more/index.es.js";
2
- import { Text as a } from "./text/index.es.js";
3
- import { RichTextEditor as p } from "./rich/index.es.js";
4
- import { default as l } from "./appearance/Hider.es.js";
5
- import { default as x } from "./button/Button.es.js";
6
- import { default as n } from "./button/CloneButtonTable.es.js";
7
- import { default as i } from "./button/DeleteButtonTable.es.js";
8
- import { default as B } from "./button/HideButtonTable.es.js";
9
- import { default as C } from "./button/UnHideButton.es.js";
10
- import { default as h } from "./button/UpdateButtonTable.es.js";
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 k } from "./date-picker/DatePicker.es.js";
14
- import { default as V } from "./date-picker/TimePicker.es.js";
15
- import { default as D } from "./description/DescList.es.js";
16
- import { default as W } from "./layout/VerticalSpace.es.js";
17
- import { default as E } from "./loading/LoadingIndicator.es.js";
18
- import { default as N } from "./picker/ImagePicker.es.js";
19
- import { default as A } from "./select/SelectComponent.es.js";
20
- import { default as M } from "./select/CustomSelectOption.es.js";
21
- import { default as j } from "./table/table.es.js";
22
- import { default as v } from "./tag/StatusTag.es.js";
23
- import { default as J } from "./text-field/NumberField.es.js";
24
- import { default as Q } from "./text-field/PhoneNumberField.es.js";
25
- import { default as Y } from "./text-field/TextField.es.js";
26
- import { default as _ } from "./text-field/TextArea.es.js";
27
- import { default as ee } from "./tooltip/TooltipComponent.es.js";
28
- import { default as oe } from "./wizard/WizardResult.es.js";
29
- import { default as ae } from "./wizard/WizardViewForm.es.js";
30
- import { ExportButton as pe } from "./button/ExportButton.es.js";
31
- import { ImportButton as le } from "./button/ImportButton.es.js";
32
- import { NewButton as xe } from "./button/NewButton.es.js";
33
- import { PrintButton as ne } from "./button/PrintButton.es.js";
34
- import { RefreshButton as ie } from "./button/RefreshButton.es.js";
35
- import { default as Be } from "./radio/RadioGroupComponent.es.js";
36
- import { SelectFieldInReport as Ce } from "./report/SelectFieldInReport.es.js";
37
- import { TabViewWithRoute as he } from "./tab/TabViewWithRoute.es.js";
38
- import { Title as Se } from "./text/title/index.es.js";
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
- x as ButtonComponent,
39
+ l as ButtonComponent,
41
40
  F as CheckBoxComponent,
42
- n as CloneButtonTable,
43
- M as CustomSelectOption,
44
- k as DatePickerComponent,
45
- i as DeleteButtonTable,
46
- D as DescList,
47
- pe as ExportButton,
48
- B as HideButtonTable,
49
- l as Hider,
50
- N as ImagePicker,
51
- le as ImportButton,
52
- E as LoadingIndicator,
53
- xe as NewButton,
54
- J as NumberTextField,
55
- Q as PhoneField,
56
- ne as PrintButton,
57
- Be as RadioGroupComponent,
58
- ie as RefreshButton,
59
- p as RichTextEditor,
60
- A as SelectComponent,
61
- Ce as SelectFieldInReport,
62
- o as ShowMore,
63
- v as StatusTag,
64
- he as TabViewWithRoute,
65
- j as TableComponent,
66
- a as Text,
67
- _ as TextAreaComponent,
68
- Y as TextField,
69
- V as TimePickerComponent,
70
- Se as Title,
71
- ee as TooltipComponent,
72
- C as UnHideButton,
73
- h as UpdateButtonTable,
74
- W as VerticalSpace,
75
- S as ViewButtonTable,
76
- oe as WizardResult,
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"),xt=require("antd"),ft=require("@dnd-kit/core"),jt=require("@dnd-kit/modifiers"),yt=require("@dnd-kit/utilities"),d=require("@dnd-kit/sortable"),ht=require("../../common/button/Button.cjs.js"),qt=require("../../common/button/RefreshButton.cjs.js"),Ct=require("../../common/button/ViewButtonTable.cjs.js"),St=require("../actions/index.cjs.js"),It=require("../../common/table/table.cjs.js"),r=require("react"),lt=require("../../locale/index.cjs.js"),Rt=require("../CrudSearchComponent.cjs.js"),Mt=require("./CrudDecListView.cjs.js"),tt=require("./CrudViewerUtil.cjs.js"),dt=require("@ant-design/icons"),et=require("../../util/CrudUtil.cjs.js"),Tt=require("../../common/layout/VerticalSpace.cjs.js"),Bt=r.memo(It);function Dt({idField:n="id",loadingData:h,fields:m,isDeleting:T,isHiding:l,viewable:c=!1,paginateProps:j,onDelete:q,onHide:B,onUpdate:C,data:S=[],extraAction:D,onClickUpdate:V,minusHeight:E,scroll:k,onClickClone:v,className:z,expandable:$,size:p,bordered:A,descListColumn:ot,extraView:L,decListLayout:st,scrollToTop:Et,onClickRefresh:_,closeViewOnClickUpdate:G,onExport:J,confirmHiding:K,confirmDeleting:Q,rowClassName:X,actionWidth:Y=190,draggable:t,...rt}){const{t:Z}=lt.useTranslationLib(),P=r.useMemo(()=>m.map(({hideInTable:o,hidden:s,width:u,label:x,halign:I,...M})=>{const N=et.getRealName(M.name);return{title:x,width:u,key:N,dataIndex:N,hidden:o||s,align:I??(M.type==="number"?"right":void 0),render:tt.getRendererValueCrudViewer(M)}}),[m]),[i,R]=r.useState(),[W,H]=r.useState(),[y,U]=r.useState([]);r.useEffect(()=>{S&&U(S)},[S]),r.useEffect(()=>{S&&R(o=>{if(o)return S.find(s=>s[n]===o[n])})},[S,n,i]);const w=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 I=y.findIndex(f=>f[n]===s.id),M=y.findIndex(f=>f[n]===(u==null?void 0:u.id)),N=d.arrayMove(y,I,M);U(f=>{const it=f.findIndex(O=>O[n]===(s==null?void 0:s.id)),mt=f.findIndex(O=>O[n]===(u==null?void 0:u.id));return d.arrayMove(f,it,mt)}),(x=t==null?void 0:t.onDrag)==null||x.call(t,{newOrder:N.map(f=>f[n])})}},[y,n,t]),ct=r.useMemo(()=>{let o=typeof c=="string"?i==null?void 0:i[c]:void 0;if(typeof o=="object"){const s=m.find(u=>et.getRealName(u.name)===c);o=tt.getRendererValueCrudViewer(s)(o,i,0)}return o},[c,i,m]),a=r.useMemo(()=>({rowClassName:X,className:z,scroll:k??(E?{y:`calc(100vh - ${E})`}:void 0),id:"crud-table",bordered:A,size:p,expandable:$}),[X,z,k,E,A,p,$]),F=r.useMemo(()=>j?{total:j.count,onChange:j.setPage,current:j.page,pageSize:j.pageSize}:void 0,[j]),b=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(Vt,{tooltip:t==null?void 0:t.tooltip})}),s.push(...P),o&&o&&s.push({title:Z("str.action"),fixed:"right",width:Y,render:(u,x)=>e.jsxs(e.Fragment,{children:[c&&e.jsx(Ct,{value:x,onClick:typeof c=="object"?()=>{var I;return(I=c.onClick)==null?void 0:I.call(c,x)}:R}),e.jsx(St,{data:x,idField:n,extraAction:D,onUpdate:C,onClickUpdate:V,onClickClone:v,onDelete:q,onHide:B,onExport:J,isHiding:l,isDeleting:T,confirmHiding:K,confirmDeleting:Q,closeViewOnClickUpdate:G,recentUpdateOrDeleteId:W,setRecentUpdateOrDeleteId:H,setOpenView:R})]})}),s},[P,C,V,q,D,c,Z,Y]),g=r.useMemo(()=>y.map(o=>o[n]),[y,n]),ut=r.useCallback(()=>{const o=e.jsx(Bt,{...a,dataSource:y,loading:h,components:t?{body:{row:Nt}}:void 0,pagination:F,columns:b});return t?e.jsx(ft.DndContext,{modifiers:[jt.restrictToVerticalAxis],onDragEnd:w,children:e.jsx(d.SortableContext,{items:g,strategy:d.verticalListSortingStrategy,children:o})}):o},[a,y,h,F,b,t,g,w]);return e.jsxs("div",{children:[typeof c=="boolean"||typeof c=="string"&&e.jsx(xt.Modal,{width:"100%",open:!!i,title:ct??e.jsx("div",{children:" "}),footer:e.jsx(e.Fragment,{}),closable:!0,onCancel:()=>R(void 0),children:!!i&&e.jsxs("div",{children:[e.jsx(Mt.CrudDecListView,{layout:st,descListColumn:ot,data:i,fields:m,idField:n,extraAction:D,onUpdate:C,onClickUpdate:V,onClickClone:v,onDelete:q,onHide:B,onExport:J,isHiding:l,isDeleting:T,confirmHiding:K,confirmDeleting:Q,closeViewOnClickUpdate:G,recentUpdateOrDeleteId:W,setRecentUpdateOrDeleteId:H,setOpenView:R}),L==null?void 0:L(i)]},i==null?void 0:i[n])}),e.jsx(Rt,{fields:m,...rt}),e.jsxs(Tt,{children:[!!_&&e.jsx(qt.RefreshButton,{onClick:_}),ut()]})]})}const nt=r.createContext({}),Vt=({tooltip:n})=>{const{setActivatorNodeRef:h,listeners:m}=r.useContext(nt);return e.jsx(ht,{type:"text",size:"small",tooltip:n,icon:e.jsx(dt.HolderOutlined,{}),style:{cursor:"move",border:"none"},ref:h,...m})},Nt=n=>{const{attributes:h,listeners:m,setNodeRef:T,setActivatorNodeRef:l,transform:c,transition:j,isDragging:q}=d.useSortable({id:n["data-row-key"]}),B={...n.style,transform:yt.CSS.Translate.toString(c),transition:j,...q?{position:"relative",zIndex:9999}:{}},C=r.useMemo(()=>({setActivatorNodeRef:l,listeners:m}),[l,m]);return e.jsx(nt.Provider,{value:C,children:e.jsx("tr",{...n,ref:T,style:B,...h})})};module.exports=Dt;
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;