@kingteza/crud-component 1.0.64 → 1.0.66

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