@kingteza/crud-component 1.27.3 → 1.29.1

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 (36) hide show
  1. package/dist/common/rich/index.d.ts +2 -1
  2. package/dist/common/text-field/NumberField.cjs.js +1 -1
  3. package/dist/common/text-field/NumberField.es.js +17 -18
  4. package/dist/crud/CrudComponent.cjs.js +1 -1
  5. package/dist/crud/CrudComponent.d.ts +20 -9
  6. package/dist/crud/CrudComponent.es.js +73 -69
  7. package/dist/crud/CrudField.cjs.js +1 -1
  8. package/dist/crud/CrudField.es.js +302 -286
  9. package/dist/crud/CrudForm.d.ts +2 -2
  10. package/dist/crud/CrudFormWizard.cjs.js +1 -1
  11. package/dist/crud/CrudFormWizard.d.ts +2 -2
  12. package/dist/crud/CrudFormWizard.es.js +82 -78
  13. package/dist/crud/CrudReportComponent.d.ts +5 -5
  14. package/dist/crud/CrudSearchComponent.d.ts +2 -2
  15. package/dist/crud/actions/index.cjs.js +1 -1
  16. package/dist/crud/actions/index.d.ts +3 -1
  17. package/dist/crud/actions/index.es.js +63 -61
  18. package/dist/crud/import/CrudImportComponent.d.ts +2 -2
  19. package/dist/crud/index.d.ts +1 -1
  20. package/dist/crud/modal/index.cjs.js +1 -1
  21. package/dist/crud/modal/index.d.ts +2 -2
  22. package/dist/crud/modal/index.es.js +101 -96
  23. package/dist/crud/view/CrudDecListView.cjs.js +1 -1
  24. package/dist/crud/view/CrudDecListView.d.ts +2 -2
  25. package/dist/crud/view/CrudDecListView.es.js +31 -30
  26. package/dist/crud/view/CrudViewer.cjs.js +1 -1
  27. package/dist/crud/view/CrudViewer.d.ts +3 -3
  28. package/dist/crud/view/CrudViewer.es.js +190 -182
  29. package/dist/crud/view/CrudViewerUtil.cjs.js +1 -1
  30. package/dist/crud/view/CrudViewerUtil.es.js +39 -38
  31. package/dist/util/CrudUtil.d.ts +1 -1
  32. package/dist/util/ObjectUtil.cjs.js +1 -0
  33. package/dist/util/ObjectUtil.d.ts +2 -0
  34. package/dist/util/ObjectUtil.es.js +10 -0
  35. package/package.json +1 -1
  36. package/dist/locale/index.d.ts +0 -86
@@ -1,149 +1,154 @@
1
- import { jsx as S, jsxs as J } from "react/jsx-runtime";
2
- import { Form as K, Modal as Q, Spin as X } from "antd";
3
- import { forwardRef as Y, useState as u, useCallback as m, useImperativeHandle as Z, useEffect as z } from "react";
4
- import { CrudForm as ee } from "../CrudForm.es.js";
5
- import te from "../CrudFormWizard.es.js";
6
- import { useTranslationLib as oe } from "../../locale/index.es.js";
7
- import R from "../../util/CrudUtil.es.js";
8
- import ne from "dayjs";
9
- const se = ({
1
+ import { jsx as P, jsxs as K } from "react/jsx-runtime";
2
+ import { Form as Q, Modal as X, Spin as Y } from "antd";
3
+ import { forwardRef as Z, useState as u, useCallback as F, useImperativeHandle as z, useEffect as ee } from "react";
4
+ import { CrudForm as te } from "../CrudForm.es.js";
5
+ import oe from "../CrudFormWizard.es.js";
6
+ import { useTranslationLib as ne } from "../../locale/index.es.js";
7
+ import T from "../../util/CrudUtil.es.js";
8
+ import se from "dayjs";
9
+ import { setValueByPath as p, getValueByPath as ae } from "../../util/ObjectUtil.es.js";
10
+ const le = ({
10
11
  fields: c,
11
- wizard: l,
12
- grid: T,
13
- fullWidthModal: W,
14
- isCreating: x,
15
- isUpdating: C,
16
- onCreate: v,
17
- onUpdate: b,
18
- idField: B = "id",
19
- formBuilder: _,
20
- onValuesChange: V
21
- }, A) => {
22
- const [t] = K.useForm(), { t: h } = oe(), [k, F] = u(!1), [p, j] = u("new"), [f, y] = u(), [L, g] = u(), [E, P] = u(!1), [$, N] = u(!1), [q, U] = u(!1), O = m(
12
+ wizard: a,
13
+ grid: W,
14
+ fullWidthModal: _,
15
+ isCreating: S,
16
+ isUpdating: x,
17
+ onCreate: b,
18
+ onUpdate: B,
19
+ idField: h = "id",
20
+ formBuilder: A,
21
+ onValuesChange: C
22
+ }, L) => {
23
+ const [t] = Q.useForm(), { t: k } = ne(), [V, y] = u(!1), [f, j] = u("new"), [m, g] = u(), [E, v] = u(), [$, U] = u(!1), [q, N] = u(!1), [w, O] = u(!1), D = F(
23
24
  async (i) => {
24
25
  var o;
25
- const d = l ? i : await t.validateFields(), a = c.filter((s) => s.type === "color"), n = {};
26
- for (const s of a) {
27
- const e = R.getRealName(s.name, "upsertFieldName"), r = t.getFieldValue(e);
28
- n[e] = typeof r == "string" ? r : (o = r == null ? void 0 : r.toHexString()) == null ? void 0 : o.toUpperCase();
26
+ const d = a ? i : await t.validateFields(), l = c.filter((s) => s.type === "color"), n = {};
27
+ for (const s of l) {
28
+ const e = T.getRealName(s.name, "upsertFieldName"), r = t.getFieldValue(e);
29
+ p(
30
+ n,
31
+ e,
32
+ typeof r == "string" ? r : (o = r == null ? void 0 : r.toHexString()) == null ? void 0 : o.toUpperCase()
33
+ );
29
34
  }
30
- Object.assign(d, n), f && b ? (await b({
35
+ Object.assign(d, n), m && B ? (await B({
31
36
  ...d,
32
- [B]: f[B]
33
- }), y(void 0)) : !f && v && await v(d), g(void 0), t.resetFields(), F(!1);
37
+ [h]: m[h]
38
+ }), g(void 0)) : !m && b && await b(d), v(void 0), t.resetFields(), y(!1);
34
39
  },
35
- [c, t, B, v, b, f, l]
36
- ), D = m(async (i) => {
37
- P(i), N(!0);
38
- }, []), H = m(async () => {
40
+ [c, t, h, b, B, m, a]
41
+ ), H = F(async (i) => {
42
+ U(i), N(!0);
43
+ }, []), I = F(async () => {
39
44
  N(!0);
40
- }, []), I = m(() => {
41
- F(!0), j("new"), t.resetFields(), y(void 0), g(void 0);
42
- }, [t]), M = m(
43
- async (i, d = !0, a = !1) => {
45
+ }, []), M = F(() => {
46
+ y(!0), j("new"), t.resetFields(), g(void 0), v(void 0);
47
+ }, [t]), R = F(
48
+ async (i, d = !0, l = !1) => {
44
49
  try {
45
- U(!0), F(!0), j(a ? "clone" : "update");
50
+ O(!0), y(!0), j(l ? "clone" : "update");
46
51
  const n = {};
47
52
  for (const o of c) {
48
- const s = R.getRealName(
53
+ const s = T.getRealName(
49
54
  o.name,
50
55
  "upsertFieldName"
51
- ), e = i[s];
52
- if (a && o.type === "image") {
56
+ ), e = ae(i, s);
57
+ if (l && o.type === "image") {
53
58
  const r = e;
54
59
  try {
55
- const G = await o.provider.clone(r);
56
- n[s] = G;
60
+ const J = await o.provider.clone(r);
61
+ p(n, s, J);
57
62
  continue;
58
63
  } catch {
59
64
  continue;
60
65
  }
61
66
  }
62
- o.type === "date" || o.type === "time" ? e && (n[s] = ne(e)) : o.type === "select" ? o.multiple && Array.isArray(e) ? n[s] = e.map(
67
+ o.type === "date" || o.type === "time" ? e && p(n, s, se(e)) : o.type === "select" ? o.multiple && Array.isArray(e) ? p(n, s, e.map(
63
68
  (r) => r[o.innerFieldId ?? "id"]
64
- ) : e && typeof e == "object" ? n[s] = e[o.innerFieldId ?? "id"] : (e && typeof e == "string" || typeof e == "number") && (n[s] = e) : n[s] = e;
69
+ )) : e && typeof e == "object" ? p(n, s, e[o.innerFieldId ?? "id"]) : (e && typeof e == "string" || typeof e == "number") && p(n, s, e) : p(n, s, e);
65
70
  }
66
- t.setFieldsValue(n), g(n), d && y(i);
71
+ t.setFieldsValue(n), v(n), d && g(i);
67
72
  } finally {
68
- U(!1);
73
+ O(!1);
69
74
  }
70
75
  },
71
76
  [c, t]
72
77
  );
73
- Z(
74
- A,
78
+ z(
79
+ L,
75
80
  () => ({
76
- create: I,
77
- update: M
81
+ create: M,
82
+ update: R
78
83
  }),
79
- [I, M]
80
- ), z(() => {
81
- k && (P(!1), N(!1));
82
- }, [k]);
83
- const w = m(async () => {
84
+ [M, R]
85
+ ), ee(() => {
86
+ V && (U(!1), N(!1));
87
+ }, [V]);
88
+ const G = F(async () => {
84
89
  try {
85
- if (p === "clone") {
86
- const i = l ? f : t.getFieldsValue(), d = c.filter((a) => a.type === "image");
87
- for (const a of d)
88
- i[a.name] && a.provider.delete(i[a.name]);
90
+ if (f === "clone") {
91
+ const i = a ? m : t.getFieldsValue(), d = c.filter((l) => l.type === "image");
92
+ for (const l of d)
93
+ i[l.name] && l.provider.delete(i[l.name]);
89
94
  }
90
95
  } finally {
91
96
  }
92
- l || t.resetFields(), g(void 0), y(void 0), F(!1);
93
- }, [p, l, t, f, c]);
94
- return /* @__PURE__ */ S(
95
- Q,
97
+ a || t.resetFields(), v(void 0), g(void 0), y(!1);
98
+ }, [f, a, t, m, c]);
99
+ return /* @__PURE__ */ P(
100
+ X,
96
101
  {
97
- width: W ? "100%" : void 0,
98
- title: h("str." + (p ?? "new")),
99
- open: k,
100
- confirmLoading: x || C,
101
- okText: h("str." + (p === "update" ? "update" : "save")),
102
- cancelText: h("str.cancel"),
102
+ width: _ ? "100%" : void 0,
103
+ title: k("str." + (f ?? "new")),
104
+ open: V,
105
+ confirmLoading: S || x,
106
+ okText: k("str." + (f === "update" ? "update" : "save")),
107
+ cancelText: k("str.cancel"),
103
108
  cancelButtonProps: {
104
- disabled: $,
105
- hidden: !!l
109
+ disabled: q,
110
+ hidden: !!a
106
111
  },
107
112
  okButtonProps: {
108
- disabled: E,
109
- hidden: !!l
113
+ disabled: $,
114
+ hidden: !!a
110
115
  },
111
- onCancel: w,
112
- onOk: () => O(),
116
+ onCancel: G,
117
+ onOk: () => D(),
113
118
  destroyOnHidden: !0,
114
- children: /* @__PURE__ */ J(X, { spinning: q, children: [
115
- l ? null : /* @__PURE__ */ S(
116
- ee,
119
+ children: /* @__PURE__ */ K(Y, { spinning: w, children: [
120
+ a ? null : /* @__PURE__ */ P(
121
+ te,
117
122
  {
118
- purpose: p,
123
+ purpose: f,
119
124
  fields: c,
120
125
  form: t,
121
- formBuilder: _,
122
- grid: T,
123
- onDeleteFile: H,
124
- onUploadFile: D,
125
- onValuesChange: V
126
+ formBuilder: A,
127
+ grid: W,
128
+ onDeleteFile: I,
129
+ onUploadFile: H,
130
+ onValuesChange: C
126
131
  }
127
132
  ),
128
- l && /* @__PURE__ */ S(
129
- te,
133
+ a && /* @__PURE__ */ P(
134
+ oe,
130
135
  {
131
- submitting: x || C,
136
+ submitting: S || x,
132
137
  className: "mt-2",
133
- onSave: O,
134
- updatingValue: L,
138
+ onSave: D,
139
+ updatingValue: E,
135
140
  fields: c,
136
- onDeleteFile: H,
137
- onUploadFile: D,
138
- purpose: p,
139
- wizard: l,
140
- onValuesChange: V
141
+ onDeleteFile: I,
142
+ onUploadFile: H,
143
+ purpose: f,
144
+ wizard: a,
145
+ onValuesChange: C
141
146
  }
142
147
  )
143
148
  ] })
144
149
  }
145
150
  );
146
- }, fe = Y(se);
151
+ }, ye = Z(le);
147
152
  export {
148
- fe as default
153
+ ye as default
149
154
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),d=require("../../common/description/DescList.cjs.js"),j=require("react"),v=require("../../locale/index.cjs.js"),V=require("./CrudViewerUtil.cjs.js"),f=require("../../util/CrudUtil.cjs.js"),p=require("../actions/index.cjs.js");function w({className:m,fields:i,data:e,descListColumn:b={xs:1,md:3,sm:2,lg:4},layout:g,keepEmptyValues:q,inBuiltModalProps:u,...s}){const{t:o}=v.useTranslationLib(),x=j.useMemo(()=>{const l=i.filter(({hidden:r,hideInDescList:n})=>!r&&!n).map((r,n)=>{const C=f.getRealName(r.name);return{label:r.label,noFormatting:!0,value:V.getRendererValueCrudViewer(r)(e==null?void 0:e[C],e,n)}}),c=e?t.jsx(p,{data:e,...s,inBuiltModalProps:u?{...u,fields:i}:void 0}):void 0;return c&&l.push({label:o("str.action"),value:c}),l},[e,i,o,s]);return e?t.jsx(d,{keepEmptyValues:q,bordered:!0,column:b,className:m,layout:g,list:x}):t.jsx(t.Fragment,{})}exports.CrudDecListView=w;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),x=require("../../common/description/DescList.cjs.js"),j=require("react"),C=require("../../locale/index.cjs.js"),V=require("./CrudViewerUtil.cjs.js"),v=require("../../util/CrudUtil.cjs.js"),f=require("../actions/index.cjs.js"),p=require("../../util/ObjectUtil.cjs.js");function w({className:m,fields:i,data:e,descListColumn:a={xs:1,md:3,sm:2,lg:4},layout:d,keepEmptyValues:b,inBuiltModalProps:u,...s}){const{t:o}=C.useTranslationLib(),g=j.useMemo(()=>{const l=i.filter(({hidden:t,hideInDescList:n})=>!t&&!n).map((t,n)=>{const q=v.getRealName(t.name);return{label:t.label,noFormatting:!0,value:V.getRendererValueCrudViewer(t)(p.getValueByPath(e,q),e,n)}}),c=e?r.jsx(f,{data:e,...s,inBuiltModalProps:u?{...u,fields:i}:void 0}):void 0;return c&&l.push({label:o("str.action"),value:c}),l},[e,i,o,s]);return e?r.jsx(x,{keepEmptyValues:b,bordered:!0,column:a,className:m,layout:d,list:g}):r.jsx(r.Fragment,{})}exports.CrudDecListView=w;
@@ -1,10 +1,10 @@
1
1
  import { Breakpoint } from 'antd';
2
- import { CrudFieldProps } from '../CrudComponent';
2
+ import { ReadonlyCrudFields } from '../CrudComponent';
3
3
  import { CrudActionsProps } from '../actions';
4
4
  import { CrudModalProps } from '../modal';
5
5
  export type DescListColumn = number | Partial<Record<Breakpoint, number>> | undefined;
6
6
  export interface CrudDecListViewProps<T, FormType = T> extends Omit<CrudActionsProps<T, FormType>, "inBuiltModalProps"> {
7
- fields: CrudFieldProps<T>[];
7
+ fields: ReadonlyCrudFields<T>;
8
8
  data: T | undefined;
9
9
  className?: string;
10
10
  descListColumn?: DescListColumn;
@@ -1,57 +1,58 @@
1
- import { jsx as i, Fragment as v } from "react/jsx-runtime";
2
- import x from "../../common/description/DescList.es.js";
3
- import { useMemo as F } from "react";
4
- import { useTranslationLib as L } from "../../locale/index.es.js";
5
- import { getRendererValueCrudViewer as V } from "./CrudViewerUtil.es.js";
6
- import w from "../../util/CrudUtil.es.js";
7
- import D from "../actions/index.es.js";
8
- function _({
1
+ import { jsx as m, Fragment as C } from "react/jsx-runtime";
2
+ import d from "../../common/description/DescList.es.js";
3
+ import { useMemo as v } from "react";
4
+ import { useTranslationLib as V } from "../../locale/index.es.js";
5
+ import { getRendererValueCrudViewer as x } from "./CrudViewerUtil.es.js";
6
+ import F from "../../util/CrudUtil.es.js";
7
+ import L from "../actions/index.es.js";
8
+ import { getValueByPath as h } from "../../util/ObjectUtil.es.js";
9
+ function T({
9
10
  className: p,
10
- fields: o,
11
+ fields: t,
11
12
  data: r,
12
- descListColumn: c = { xs: 1, md: 3, sm: 2, lg: 4 },
13
- layout: f,
14
- keepEmptyValues: b,
15
- inBuiltModalProps: m,
13
+ descListColumn: f = { xs: 1, md: 3, sm: 2, lg: 4 },
14
+ layout: c,
15
+ keepEmptyValues: a,
16
+ inBuiltModalProps: i,
16
17
  ...n
17
18
  }) {
18
- const { t: u } = L(), g = F(() => {
19
- const l = o.filter(({ hidden: e, hideInDescList: t }) => !e && !t).map((e, t) => {
20
- const C = w.getRealName(e.name);
19
+ const { t: u } = V(), g = v(() => {
20
+ const l = t.filter(({ hidden: e, hideInDescList: o }) => !e && !o).map((e, o) => {
21
+ const b = F.getRealName(e.name);
21
22
  return {
22
23
  label: e.label,
23
24
  noFormatting: !0,
24
- value: V(e)(
25
- r == null ? void 0 : r[C],
25
+ value: x(e)(
26
+ h(r, b),
26
27
  r,
27
- t
28
+ o
28
29
  )
29
30
  };
30
- }), s = r ? /* @__PURE__ */ i(
31
- D,
31
+ }), s = r ? /* @__PURE__ */ m(
32
+ L,
32
33
  {
33
34
  data: r,
34
35
  ...n,
35
- inBuiltModalProps: m ? { ...m, fields: o } : void 0
36
+ inBuiltModalProps: i ? { ...i, fields: t } : void 0
36
37
  }
37
38
  ) : void 0;
38
39
  return s && l.push({
39
40
  label: u("str.action"),
40
41
  value: s
41
42
  }), l;
42
- }, [r, o, u, n]);
43
- return r ? /* @__PURE__ */ i(
44
- x,
43
+ }, [r, t, u, n]);
44
+ return r ? /* @__PURE__ */ m(
45
+ d,
45
46
  {
46
- keepEmptyValues: b,
47
+ keepEmptyValues: a,
47
48
  bordered: !0,
48
- column: c,
49
+ column: f,
49
50
  className: p,
50
- layout: f,
51
+ layout: c,
51
52
  list: g
52
53
  }
53
- ) : /* @__PURE__ */ i(v, {});
54
+ ) : /* @__PURE__ */ m(C, {});
54
55
  }
55
56
  export {
56
- _ as CrudDecListView
57
+ T as CrudDecListView
57
58
  };
@@ -1 +1 @@
1
- "use strict";const n=require("react/jsx-runtime"),ht=require("antd"),yt=require("@dnd-kit/core"),qt=require("@dnd-kit/modifiers"),Ct=require("@dnd-kit/utilities"),M=require("@dnd-kit/sortable"),lt=require("../../common/button/Button.cjs.js"),St=require("../../common/button/RefreshButton.cjs.js"),dt=require("../../common/button/ViewButtonTable.cjs.js"),It=require("../actions/index.cjs.js"),Rt=require("../../common/table/table.cjs.js"),s=require("react"),Mt=require("../../locale/index.cjs.js"),Tt=require("../CrudSearchComponent.cjs.js"),Vt=require("./CrudDecListView.cjs.js"),nt=require("./CrudViewerUtil.cjs.js"),Bt=require("@ant-design/icons"),ot=require("../../util/CrudUtil.cjs.js"),Dt=require("../../common/layout/VerticalSpace.cjs.js"),Ot=s.memo(Rt);function Nt({summary:j,idField:o="id",loadingData:q,fields:h,isDeleting:I,isHiding:T,viewable:c=!1,paginateProps:f,onDelete:l,onHide:V,onUpdate:B,data:S=[],extraAction:D,onClickUpdate:O,minusHeight:k,scroll:v,onClickClone:z,className:$,expandable:A,size:_,bordered:G,descListColumn:rt,extraView:E,decListLayout:ct,scrollToTop:Lt,onClickRefresh:J,closeViewOnClickUpdate:K,onExport:Q,confirmHiding:X,confirmDeleting:Y,rowClassName:Z,actionWidth:W=190,draggable:t,rowSelection:P,...ut}){const{t:H}=Mt.useTranslationLib(),U=s.useMemo(()=>h.map(({hideInTable:e,hidden:r,width:u,label:m,halign:d,...C})=>{const N=ot.getRealName(C.name);return{title:m,width:u,key:N,dataIndex:N,hidden:e||r,align:d??(C.type==="number"?"right":void 0),render:nt.getRendererValueCrudViewer(C),sorter:C.sorter,defaultSortOrder:C.defaultSortOrder}}),[h]),[i,R]=s.useState(),[p,w]=s.useState(),[y,a]=s.useState([]),it=s.useCallback(e=>{R(e)},[]);s.useEffect(()=>{S&&a(S)},[S]),s.useEffect(()=>{S&&R(e=>{if(e)return S.find(r=>r[o]===e[o])})},[S,o,i]);const F=s.useCallback(e=>{var m;const{active:r,over:u}=e;if(t!=null&&t.onDragEnd&&(t==null||t.onDragEnd(e)),r.id!==(u==null?void 0:u.id)){const d=y.findIndex(x=>x[o]===r.id),C=y.findIndex(x=>x[o]===(u==null?void 0:u.id)),N=M.arrayMove(y,d,C);a(x=>{const xt=x.findIndex(L=>L[o]===(r==null?void 0:r.id)),jt=x.findIndex(L=>L[o]===(u==null?void 0:u.id));return M.arrayMove(x,xt,jt)}),(m=t==null?void 0:t.onDrag)==null||m.call(t,{newOrder:N.map(x=>x[o])})}},[y,o,t]),ft=s.useMemo(()=>{let e=typeof c=="string"?i==null?void 0:i[c]:void 0;if(typeof e=="object"){const r=h.find(u=>ot.getRealName(u.name)===c);e=nt.getRendererValueCrudViewer(r)(e,i,0)}return e},[c,i,h]),b=s.useMemo(()=>({rowSelection:P,rowClassName:Z,className:$,scroll:v??(k?{y:`calc(100vh - ${k})`}:void 0),id:"crud-table",bordered:G,size:_,expandable:A}),[P,Z,$,v,k,G,_,A]),g=s.useMemo(()=>f?{...f,total:f.count,onChange:f.setPage,current:f.page,pageSize:f.pageSize}:void 0,[f]),tt=s.useMemo(()=>{const e=B||O||l||D||c,r=[];return t&&r.push({key:"key",align:"center",width:5,title:t==null?void 0:t.columnLabel,render:()=>n.jsx(kt,{tooltip:t==null?void 0:t.tooltip})}),r.push(...U),e&&e&&r.push({title:H("str.action"),fixed:"right",width:W,render:(u,m)=>n.jsxs(n.Fragment,{children:[c&&n.jsx(dt,{value:m,onClick:typeof c=="object"?()=>{var d;return(d=c.onClick)==null?void 0:d.call(c,m)}:it}),n.jsx(It,{data:m,idField:o,extraAction:D,onUpdate:B,onClickUpdate:O,onClickClone:z,onDelete:l,onHide:V,onExport:Q,isHiding:T,isDeleting:I,confirmHiding:X,confirmDeleting:Y,closeViewOnClickUpdate:K,recentUpdateOrDeleteId:p,setRecentUpdateOrDeleteId:w,setOpenView:R})]})}),r},[U,B,O,l,D,c,H,W]),et=s.useMemo(()=>y.map(e=>e[o]),[y,o]),mt=s.useCallback(()=>{const e=n.jsx(Ot,{...b,summary:j,dataSource:y,loading:q,components:t?{body:{row:Et}}:void 0,pagination:g,columns:tt});return t?n.jsx(yt.DndContext,{modifiers:[qt.restrictToVerticalAxis],onDragEnd:F,children:n.jsx(M.SortableContext,{items:et,strategy:M.verticalListSortingStrategy,children:e})}):e},[b,y,q,g,tt,j,t,et,F]);return n.jsxs("div",{children:[(typeof c=="boolean"||typeof c=="string")&&n.jsx(ht.Modal,{width:"100%",open:!!i,title:ft??n.jsx("div",{children:" "}),footer:n.jsx(n.Fragment,{}),closable:!0,onCancel:()=>R(void 0),children:!!i&&n.jsxs("div",{children:[n.jsx(Vt.CrudDecListView,{layout:ct,descListColumn:rt,data:i,fields:h,idField:o,extraAction:D,onUpdate:B,onClickUpdate:O,onClickClone:z,onDelete:l,onHide:V,onExport:Q,isHiding:T,isDeleting:I,confirmHiding:X,confirmDeleting:Y,closeViewOnClickUpdate:K,recentUpdateOrDeleteId:p,setRecentUpdateOrDeleteId:w,setOpenView:R}),E==null?void 0:E(i)]},i==null?void 0:i[o])}),n.jsx(Tt,{fields:h,...ut}),n.jsxs(Dt,{children:[!!J&&n.jsx(St.RefreshButton,{onClick:J}),mt()]})]})}const st=s.createContext({}),kt=({tooltip:j})=>{const{setActivatorNodeRef:o,listeners:q}=s.useContext(st);return n.jsx(lt,{type:"text",size:"small",tooltip:j,icon:n.jsx(Bt.HolderOutlined,{}),style:{cursor:"move",border:"none"},ref:o,...q})},Et=j=>{const{attributes:o,listeners:q,setNodeRef:h,setActivatorNodeRef:I,transform:T,transition:c,isDragging:f}=M.useSortable({id:j["data-row-key"]}),l={...j.style,transform:Ct.CSS.Translate.toString(T),transition:c,...f?{position:"relative",zIndex:9999}:{}},V=s.useMemo(()=>({setActivatorNodeRef:I,listeners:q}),[I,q]);return n.jsx(st.Provider,{value:V,children:n.jsx("tr",{...j,ref:h,style:l,...o})})};module.exports=Nt;
1
+ "use strict";const n=require("react/jsx-runtime"),qt=require("antd"),Ct=require("@dnd-kit/core"),St=require("@dnd-kit/modifiers"),It=require("@dnd-kit/utilities"),T=require("@dnd-kit/sortable"),Rt=require("../../common/button/Button.cjs.js"),lt=require("../../common/button/RefreshButton.cjs.js"),Mt=require("../../common/button/ViewButtonTable.cjs.js"),dt=require("../actions/index.cjs.js"),Tt=require("../../common/table/table.cjs.js"),s=require("react"),Vt=require("../../locale/index.cjs.js"),Bt=require("../CrudSearchComponent.cjs.js"),Dt=require("./CrudDecListView.cjs.js"),st=require("./CrudViewerUtil.cjs.js"),Ot=require("@ant-design/icons"),rt=require("../../util/CrudUtil.cjs.js"),Nt=require("../../common/layout/VerticalSpace.cjs.js"),kt=s.memo(Tt);function Et({summary:j,idField:o="id",loadingData:q,fields:h,isDeleting:l,isHiding:V,viewable:c=!1,paginateProps:f,onDelete:S,deletable:M,updatable:k,onHide:z,onUpdate:B,data:I=[],extraAction:D,onClickUpdate:O,minusHeight:E,scroll:$,onClickClone:A,className:_,expandable:G,size:J,bordered:K,descListColumn:ut,extraView:L,decListLayout:it,scrollToTop:zt,onClickRefresh:Q,closeViewOnClickUpdate:X,onExport:Y,confirmHiding:Z,confirmDeleting:W,rowClassName:P,actionWidth:H=190,draggable:t,rowSelection:U,...ft}){const{t:w}=Vt.useTranslationLib(),p=s.useMemo(()=>h.map(({hideInTable:e,hidden:r,width:u,label:m,halign:R,...C})=>{const N=rt.getRealName(C.name);return{title:m,width:u,key:N,dataIndex:N,hidden:e||r,align:R??(C.type==="number"?"right":void 0),render:st.getRendererValueCrudViewer(C),sorter:C.sorter,defaultSortOrder:C.defaultSortOrder}}),[h]),[i,d]=s.useState(),[F,a]=s.useState(),[y,b]=s.useState([]),mt=s.useCallback(e=>{d(e)},[]);s.useEffect(()=>{I&&b(I)},[I]),s.useEffect(()=>{I&&d(e=>{if(e)return I.find(r=>r[o]===e[o])})},[I,o,i]);const g=s.useCallback(e=>{var m;const{active:r,over:u}=e;if(t!=null&&t.onDragEnd&&(t==null||t.onDragEnd(e)),r.id!==(u==null?void 0:u.id)){const R=y.findIndex(x=>x[o]===r.id),C=y.findIndex(x=>x[o]===(u==null?void 0:u.id)),N=T.arrayMove(y,R,C);b(x=>{const ht=x.findIndex(v=>v[o]===(r==null?void 0:r.id)),yt=x.findIndex(v=>v[o]===(u==null?void 0:u.id));return T.arrayMove(x,ht,yt)}),(m=t==null?void 0:t.onDrag)==null||m.call(t,{newOrder:N.map(x=>x[o])})}},[y,o,t]),xt=s.useMemo(()=>{let e=typeof c=="string"?i==null?void 0:i[c]:void 0;if(typeof e=="object"){const r=h.find(u=>rt.getRealName(u.name)===c);e=st.getRendererValueCrudViewer(r)(e,i,0)}return e},[c,i,h]),tt=s.useMemo(()=>({rowSelection:U,rowClassName:P,className:_,scroll:$??(E?{y:`calc(100vh - ${E})`}:void 0),id:"crud-table",bordered:K,size:J,expandable:G}),[U,P,_,$,E,K,J,G]),et=s.useMemo(()=>f?{...f,total:f.count,onChange:f.setPage,current:f.page,pageSize:f.pageSize}:void 0,[f]),nt=s.useMemo(()=>{const e=B||O||S||D||c,r=[];return t&&r.push({key:"key",align:"center",width:5,title:t==null?void 0:t.columnLabel,render:()=>n.jsx(Lt,{tooltip:t==null?void 0:t.tooltip})}),r.push(...p),e&&e&&r.push({title:w("str.action"),fixed:"right",width:H,render:(u,m)=>n.jsxs(n.Fragment,{children:[c&&n.jsx(Mt,{value:m,onClick:typeof c=="object"?()=>{var R;return(R=c.onClick)==null?void 0:R.call(c,m)}:mt}),n.jsx(dt,{data:m,idField:o,extraAction:D,onUpdate:B,onClickUpdate:O,onClickClone:A,onDelete:S,deletable:M,updatable:k,onHide:z,onExport:Y,isHiding:V,isDeleting:l,confirmHiding:Z,confirmDeleting:W,closeViewOnClickUpdate:X,recentUpdateOrDeleteId:F,setRecentUpdateOrDeleteId:a,setOpenView:d})]})}),r},[p,B,O,S,M,k,D,c,w,H]),ot=s.useMemo(()=>y.map(e=>e[o]),[y,o]),jt=s.useCallback(()=>{const e=n.jsx(kt,{...tt,summary:j,dataSource:y,loading:q,components:t?{body:{row:vt}}:void 0,pagination:et,columns:nt});return t?n.jsx(Ct.DndContext,{modifiers:[St.restrictToVerticalAxis],onDragEnd:g,children:n.jsx(T.SortableContext,{items:ot,strategy:T.verticalListSortingStrategy,children:e})}):e},[tt,y,q,et,nt,j,t,ot,g]);return n.jsxs("div",{children:[(typeof c=="boolean"||typeof c=="string")&&n.jsx(qt.Modal,{width:"100%",open:!!i,title:xt??n.jsx("div",{children:" "}),footer:n.jsx(n.Fragment,{}),closable:!0,onCancel:()=>d(void 0),children:!!i&&n.jsxs("div",{children:[n.jsx(Dt.CrudDecListView,{layout:it,descListColumn:ut,data:i,fields:h,idField:o,extraAction:D,onUpdate:B,onClickUpdate:O,onClickClone:A,onDelete:S,deletable:M,updatable:k,onHide:z,onExport:Y,isHiding:V,isDeleting:l,confirmHiding:Z,confirmDeleting:W,closeViewOnClickUpdate:X,recentUpdateOrDeleteId:F,setRecentUpdateOrDeleteId:a,setOpenView:d}),L==null?void 0:L(i)]},i==null?void 0:i[o])}),n.jsx(Bt,{fields:h,...ft}),n.jsxs(Nt,{children:[!!Q&&n.jsx(lt.RefreshButton,{onClick:Q}),jt()]})]})}const ct=s.createContext({}),Lt=({tooltip:j})=>{const{setActivatorNodeRef:o,listeners:q}=s.useContext(ct);return n.jsx(Rt,{type:"text",size:"small",tooltip:j,icon:n.jsx(Ot.HolderOutlined,{}),style:{cursor:"move",border:"none"},ref:o,...q})},vt=j=>{const{attributes:o,listeners:q,setNodeRef:h,setActivatorNodeRef:l,transform:V,transition:c,isDragging:f}=T.useSortable({id:j["data-row-key"]}),S={...j.style,transform:It.CSS.Translate.toString(V),transition:c,...f?{position:"relative",zIndex:9999}:{}},M=s.useMemo(()=>({setActivatorNodeRef:l,listeners:q}),[l,q]);return n.jsx(ct.Provider,{value:M,children:n.jsx("tr",{...j,ref:h,style:S,...o})})};module.exports=Et;
@@ -4,7 +4,7 @@ import { DragEndEvent } from '@dnd-kit/core';
4
4
  import { TableProps } from 'antd/lib';
5
5
  import { CrudActionsProps } from '../actions';
6
6
  import { default as React } from 'react';
7
- import { CrudFieldProps, CrudPaginateProps } from '../CrudComponent';
7
+ import { CrudPaginateProps, ReadonlyCrudFields } from '../CrudComponent';
8
8
  import { CrudSearchComponentProps } from '../CrudSearchComponent';
9
9
  import { DescListColumn } from './CrudDecListView';
10
10
  type TableRowSelection<T> = TableProps<T>["rowSelection"];
@@ -21,7 +21,7 @@ export type CrudViewableProps<T> = boolean | keyof T | {
21
21
  };
22
22
  export type CrudViewerProps<T, FormType> = {
23
23
  summary?: TableProps<T>["summary"];
24
- fields: CrudFieldProps<T>[];
24
+ fields: ReadonlyCrudFields<T>;
25
25
  decListLayout?: "horizontal" | "vertical";
26
26
  viewable?: CrudViewableProps<T>;
27
27
  paginateProps?: CrudPaginateProps;
@@ -42,5 +42,5 @@ export type CrudViewerProps<T, FormType> = {
42
42
  actionWidth?: string | number;
43
43
  draggable?: CrudDragableProps<T>;
44
44
  } & CrudActionsProps<T, FormType> & CrudSearchComponentProps<T, FormType>;
45
- declare function CrudViewer<T, FormType = T>({ summary, 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;
45
+ declare function CrudViewer<T, FormType = T>({ summary, idField, loadingData, fields, isDeleting, isHiding, viewable, paginateProps, onDelete, deletable, updatable, 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;
46
46
  export default CrudViewer;