antd-crud-table 0.0.13 → 0.1.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.
@@ -1 +1 @@
1
- "use strict";const a=require("./jsx-runtime-qcKc-DpB.cjs"),j=require("react"),r=require("./CrudTable-ck226KHr.cjs"),p=require("./index-DygfPlBI.cjs"),O=b=>{const u=j.useRef(null),{columns:o,service:l,rowKey:c,title:g,defaultPageSize:C=5}=b,[I,f]=j.useState(!1),[m,q]=j.useState(null),[x]=r.Form.useForm();let h=(o||[]).map(e=>{const t={...e,dataIndex:e.dataIndex,title:e.title};switch(e.fieldType){case"date":return{...t,valueType:"dateTime",render:(s,n)=>a.jsxRuntimeExports.jsx("span",{children:r.format(r.parseISO(n[e.dataIndex]),"yyyy-MM-dd HH:mm")})};case"enum":return{...t,valueType:"select",valueEnum:e.enumOptions};case"number":return{...t,valueType:"digit"};case"boolean":return{...t,valueType:"switch",render:(s,n)=>a.jsxRuntimeExports.jsx(r.Tag,{color:n[e.dataIndex]?"green":"red",children:n[e.dataIndex]?"Yes":"No"})};case"custom":return{...t,render:(s,n)=>{var i;return(i=e.customRender)==null?void 0:i.call(e,n[e.dataIndex],n)}};default:return t}});h.push({title:"Actions",valueType:"option",render:(e,t)=>[a.jsxRuntimeExports.jsx(r.Button,{type:"primary",onClick:()=>y(t),children:"Edit"},"edit"),a.jsxRuntimeExports.jsx(r.Button,{type:"primary",danger:!0,onClick:async()=>{var s;await l.delete(t[c]),(s=u.current)==null||s.reload()},children:"Delete"},"delete")]});const w=async(e,t,s)=>{try{const n={...e,sortBy:Object.keys(t)[0],sortOrder:Object.values(t)[0],...s},{data:i,total:d}=await l.getList(n);return{data:i,success:!0,total:d}}catch{return p.staticMethods.error("Failed to fetch data"),{data:[],success:!1,total:0}}},y=e=>{if(q(e||null),e){const t={...e};o.forEach(s=>{const n=s.dataIndex;s.fieldType==="date"&&t[n]&&(t[n]=r.dayjs(t[n]))}),x.setFieldsValue(t)}else x.resetFields();f(!0)},T=async()=>{var e;try{const t=await x.validateFields(),s={...t};o.forEach(n=>{var d;const i=n.dataIndex;n.fieldType==="date"&&t[i]&&(s[i]=r.formatISO(t[i])),(d=n.formConfig)!=null&&d.transform&&(s[i]=n.formConfig.transform(t[i]))}),m&&m[c]?(await l.update(m[c],s),p.staticMethods.success("Updated successfully")):(await l.create(s),p.staticMethods.success("Created successfully")),f(!1),(e=u.current)==null||e.reload()}catch(t){console.error(t),p.staticMethods.error("Submit failed")}},v=()=>{f(!1)};return a.jsxRuntimeExports.jsxs(r.ProConfigProvider,{needDeps:!0,children:[a.jsxRuntimeExports.jsx(r.ProviderTableContainer,{headerTitle:g,rowKey:c,rowClassName:(e,t)=>t%2===0&&"row-differentiator"||"",actionRef:u,columns:h,request:w,search:{labelWidth:"auto"},pagination:{pageSize:C},toolBarRender:()=>[a.jsxRuntimeExports.jsx(r.Button,{type:"primary",icon:a.jsxRuntimeExports.jsx(r.RefIcon,{}),onClick:()=>y(),children:"New"},"add"),a.jsxRuntimeExports.jsx(r.Dropdown,{menu:{items:[{key:"export",label:"Export"},{key:"refresh",label:"Refresh",onClick:()=>{var e;return(e=u.current)==null?void 0:e.reload()}}]},children:a.jsxRuntimeExports.jsx(r.Button,{children:a.jsxRuntimeExports.jsx(r.RefIcon$1,{})})},"menu")],options:{setting:{listsHeight:400},reload:()=>{var e;return(e=u.current)==null?void 0:e.reload()}},dateFormatter:"string"}),a.jsxRuntimeExports.jsx(r.Modal,{forceRender:!0,title:m?"Edit Item":"Create Item",open:I,onOk:T,onCancel:v,destroyOnClose:!0,children:a.jsxRuntimeExports.jsx(r.Form,{form:x,layout:"vertical",children:o.map(e=>{var i,d,R,E;if(!e.dataIndex)return null;const t=e.dataIndex,s=e.title,n=!(e.fieldEditable??!0);switch(e.fieldType){case"string":return a.jsxRuntimeExports.jsx(r.Form.Item,{name:t,label:s,rules:[{required:(i=e.formConfig)==null?void 0:i.required,message:`${s} is required`}],children:a.jsxRuntimeExports.jsx(r.Input,{disabled:n})},t);case"number":return a.jsxRuntimeExports.jsx(r.Form.Item,{name:t,label:s,rules:[{required:(d=e.formConfig)==null?void 0:d.required,message:`${s} is required`}],children:a.jsxRuntimeExports.jsx(r.TypedInputNumber,{style:{width:"100%"},disabled:n})},t);case"date":return a.jsxRuntimeExports.jsx(r.Form.Item,{name:t,label:s,rules:[{required:(R=e.formConfig)==null?void 0:R.required,message:`${s} is required`}],children:a.jsxRuntimeExports.jsx(r.DatePicker,{style:{width:"100%"},showTime:!0,disabled:n})},t);case"boolean":return a.jsxRuntimeExports.jsx(r.Form.Item,{name:t,label:s,valuePropName:"checked",children:a.jsxRuntimeExports.jsx(r.Switch,{disabled:n})},t);case"enum":return a.jsxRuntimeExports.jsx(r.Form.Item,{name:t,label:s,rules:[{required:(E=e.formConfig)==null?void 0:E.required,message:`${s} is required`}],children:a.jsxRuntimeExports.jsx(r.Select,{disabled:n,options:Object.entries(e.enumOptions||{}).map(([F,k])=>({label:k.text,value:F}))})},t);default:return null}})})})]})};module.exports=O;
1
+ const e=require(`./chunk-BZRuZbSa.cjs`),t=require(`./CrudTable-CDqv0ksy.cjs`),n=require(`./message-C5ORE39N.cjs`),r=require(`./jsx-runtime-D8R_Hd8N.cjs`);let i=require(`react`);var a=e.i(t.h(),1),o=r.t(),s=e=>{let r=(0,i.useRef)(null),{columns:s,service:c,rowKey:l,title:u,defaultPageSize:d=5}=e,[f,p]=(0,i.useState)(!1),[m,h]=(0,i.useState)(null),[g]=t.d.useForm(),_=(s||[]).map(e=>{let n={...e,dataIndex:e.dataIndex,title:e.title};switch(e.fieldType){case`date`:return{...n,valueType:`dateTime`,render:(n,r)=>(0,o.jsx)(`span`,{children:t.r(t.t(r[e.dataIndex]),`yyyy-MM-dd HH:mm`)})};case`enum`:return{...n,valueType:`select`,valueEnum:e.enumOptions};case`number`:return{...n,valueType:`digit`};case`boolean`:return{...n,valueType:`switch`,render:(n,r)=>(0,o.jsx)(t.s,{color:r[e.dataIndex]?`green`:`red`,children:r[e.dataIndex]?`Yes`:`No`})};case`custom`:return{...n,render:(t,n)=>e.customRender?.(n[e.dataIndex],n)};default:return n}});_.push({title:`Actions`,valueType:`option`,render:(e,n)=>[(0,o.jsx)(t.g,{type:`primary`,onClick:()=>y(n),children:`Edit`},`edit`),(0,o.jsx)(t.g,{type:`primary`,danger:!0,onClick:async()=>{await c.delete(n[l]),r.current?.reload()},children:`Delete`},`delete`)]});let v=async(e,t,r)=>{try{let n={...e,sortBy:Object.keys(t)[0],sortOrder:Object.values(t)[0],...r},{data:i,total:a}=await c.getList(n);return{data:i,success:!0,total:a}}catch{return n.t.error(`Failed to fetch data`),{data:[],success:!1,total:0}}},y=e=>{if(h(e||null),e){let t={...e};s.forEach(e=>{let n=e.dataIndex;e.fieldType===`date`&&t[n]&&(t[n]=(0,a.default)(t[n]))}),g.setFieldsValue(t)}else g.resetFields();p(!0)};return(0,o.jsxs)(t.a,{needDeps:!0,intl:t.o,children:[(0,o.jsx)(t.i,{headerTitle:u,rowKey:l,rowClassName:(e,t)=>t%2==0&&`row-differentiator`||``,actionRef:r,columns:_,request:v,search:{labelWidth:`auto`},pagination:{pageSize:d},toolBarRender:()=>[(0,o.jsx)(t.g,{type:`primary`,icon:(0,o.jsx)(t.v,{}),onClick:()=>y(),children:`New`},`add`),(0,o.jsx)(t.f,{menu:{items:[{key:`export`,label:`Export`},{key:`refresh`,label:`Refresh`,onClick:()=>r.current?.reload()}]},children:(0,o.jsx)(t.g,{children:(0,o.jsx)(t.y,{})})},`menu`)],options:{setting:{listsHeight:400},reload:()=>r.current?.reload()},dateFormatter:`string`}),(0,o.jsx)(t.l,{forceRender:!0,title:m?`Edit Item`:`Create Item`,open:f,onOk:async()=>{try{let e=await g.validateFields(),i={...e};s.forEach(n=>{let r=n.dataIndex;n.fieldType===`date`&&e[r]&&(i[r]=t.n(e[r])),n.formConfig?.transform&&(i[r]=n.formConfig.transform(e[r]))}),m&&m[l]?(await c.update(m[l],i),n.t.success(`Updated successfully`)):(await c.create(i),n.t.success(`Created successfully`)),p(!1),r.current?.reload()}catch(e){console.error(e),n.t.error(`Submit failed`)}},onCancel:()=>{p(!1)},destroyOnClose:!0,children:(0,o.jsx)(t.d,{form:g,layout:`vertical`,children:s.map(e=>{if(!e.dataIndex)return null;let n=e.dataIndex,r=e.title,i=!(e.fieldEditable??!0);switch(e.fieldType){case`string`:return(0,o.jsx)(t.d.Item,{name:n,label:r,rules:[{required:e.formConfig?.required,message:`${r} is required`}],children:(0,o.jsx)(t.u,{disabled:i})},n);case`number`:return(0,o.jsx)(t.d.Item,{name:n,label:r,rules:[{required:e.formConfig?.required,message:`${r} is required`}],children:(0,o.jsx)(t.m,{style:{width:`100%`},disabled:i})},n);case`date`:return(0,o.jsx)(t.d.Item,{name:n,label:r,rules:[{required:e.formConfig?.required,message:`${r} is required`}],children:(0,o.jsx)(t.p,{style:{width:`100%`},showTime:!0,disabled:i})},n);case`boolean`:return(0,o.jsx)(t.d.Item,{name:n,label:r,valuePropName:`checked`,children:(0,o.jsx)(t.c,{disabled:i})},n);case`enum`:return(0,o.jsx)(t.d.Item,{name:n,label:r,rules:[{required:e.formConfig?.required,message:`${r} is required`}],children:(0,o.jsx)(t._,{disabled:i,options:Object.entries(e.enumOptions||{}).map(([e,t])=>({label:t.text,value:e}))})},n);default:return null}})})})]})};module.exports=s;
package/dist/CrudTable.js CHANGED
@@ -1,235 +1,212 @@
1
- import { j as a } from "./jsx-runtime-Drh4NO5G.js";
2
- import { useRef as F, useState as I } from "react";
3
- import { F as i, T as M, f as P, p as D, B as p, d as N, P as _, a as $, R as B, D as V, b as H, M as z, S as A, c as K, e as L, g as U, I as W, h as Y } from "./CrudTable-W5dD5mDc.js";
4
- import { s as h } from "./index-DNXRWKhU.js";
5
- const Z = (C) => {
6
- const l = F(null), { columns: u, service: o, rowKey: c, title: w, defaultPageSize: T = 5 } = C, [q, x] = I(!1), [m, v] = I(null), [f] = i.useForm();
7
- let y = (u || []).map((e) => {
8
- const t = {
9
- ...e,
10
- dataIndex: e.dataIndex,
11
- title: e.title
12
- };
13
- switch (e.fieldType) {
14
- case "date":
15
- return {
16
- ...t,
17
- valueType: "dateTime",
18
- render: (r, s) => /* @__PURE__ */ a.jsx("span", { children: P(D(s[e.dataIndex]), "yyyy-MM-dd HH:mm") })
19
- };
20
- case "enum":
21
- return {
22
- ...t,
23
- valueType: "select",
24
- valueEnum: e.enumOptions
25
- };
26
- case "number":
27
- return {
28
- ...t,
29
- valueType: "digit"
30
- };
31
- case "boolean":
32
- return {
33
- ...t,
34
- valueType: "switch",
35
- render: (r, s) => /* @__PURE__ */ a.jsx(M, { color: s[e.dataIndex] ? "green" : "red", children: s[e.dataIndex] ? "Yes" : "No" })
36
- };
37
- case "custom":
38
- return {
39
- ...t,
40
- render: (r, s) => {
41
- var n;
42
- return (n = e.customRender) == null ? void 0 : n.call(e, s[e.dataIndex], s);
43
- }
44
- };
45
- default:
46
- return t;
47
- }
48
- });
49
- y.push({
50
- title: "Actions",
51
- valueType: "option",
52
- render: (e, t) => [
53
- /* @__PURE__ */ a.jsx(p, { type: "primary", onClick: () => j(t), children: "Edit" }, "edit"),
54
- /* @__PURE__ */ a.jsx(p, { type: "primary", danger: !0, onClick: async () => {
55
- var r;
56
- await o.delete(t[c]), (r = l.current) == null || r.reload();
57
- }, children: "Delete" }, "delete")
58
- ]
59
- });
60
- const R = async (e, t, r) => {
61
- try {
62
- const s = {
63
- ...e,
64
- sortBy: Object.keys(t)[0],
65
- sortOrder: Object.values(t)[0],
66
- ...r
67
- }, { data: n, total: d } = await o.getList(s);
68
- return { data: n, success: !0, total: d };
69
- } catch {
70
- return h.error("Failed to fetch data"), { data: [], success: !1, total: 0 };
71
- }
72
- }, j = (e) => {
73
- if (v(e || null), e) {
74
- const t = { ...e };
75
- u.forEach((r) => {
76
- const s = r.dataIndex;
77
- r.fieldType === "date" && t[s] && (t[s] = N(t[s]));
78
- }), f.setFieldsValue(t);
79
- } else
80
- f.resetFields();
81
- x(!0);
82
- }, k = async () => {
83
- var e;
84
- try {
85
- const t = await f.validateFields(), r = { ...t };
86
- u.forEach((s) => {
87
- var d;
88
- const n = s.dataIndex;
89
- s.fieldType === "date" && t[n] && (r[n] = Y(t[n])), (d = s.formConfig) != null && d.transform && (r[n] = s.formConfig.transform(t[n]));
90
- }), m && m[c] ? (await o.update(m[c], r), h.success("Updated successfully")) : (await o.create(r), h.success("Created successfully")), x(!1), (e = l.current) == null || e.reload();
91
- } catch (t) {
92
- console.error(t), h.error("Submit failed");
93
- }
94
- }, O = () => {
95
- x(!1);
96
- };
97
- return /* @__PURE__ */ a.jsxs(_, { needDeps: !0, children: [
98
- /* @__PURE__ */ a.jsx(
99
- $,
100
- {
101
- headerTitle: w,
102
- rowKey: c,
103
- rowClassName: (e, t) => t % 2 === 0 && "row-differentiator" || "",
104
- actionRef: l,
105
- columns: y,
106
- request: R,
107
- search: { labelWidth: "auto" },
108
- pagination: { pageSize: T },
109
- toolBarRender: () => [
110
- /* @__PURE__ */ a.jsx(
111
- p,
112
- {
113
- type: "primary",
114
- icon: /* @__PURE__ */ a.jsx(B, {}),
115
- onClick: () => j(),
116
- children: "New"
117
- },
118
- "add"
119
- ),
120
- /* @__PURE__ */ a.jsx(
121
- V,
122
- {
123
- menu: {
124
- items: [
125
- { key: "export", label: "Export" },
126
- { key: "refresh", label: "Refresh", onClick: () => {
127
- var e;
128
- return (e = l.current) == null ? void 0 : e.reload();
129
- } }
130
- ]
131
- },
132
- children: /* @__PURE__ */ a.jsx(p, { children: /* @__PURE__ */ a.jsx(H, {}) })
133
- },
134
- "menu"
135
- )
136
- ],
137
- options: {
138
- setting: { listsHeight: 400 },
139
- reload: () => {
140
- var e;
141
- return (e = l.current) == null ? void 0 : e.reload();
142
- }
143
- },
144
- dateFormatter: "string"
145
- }
146
- ),
147
- /* @__PURE__ */ a.jsx(
148
- z,
149
- {
150
- forceRender: !0,
151
- title: m ? "Edit Item" : "Create Item",
152
- open: q,
153
- onOk: k,
154
- onCancel: O,
155
- destroyOnClose: !0,
156
- children: /* @__PURE__ */ a.jsx(i, { form: f, layout: "vertical", children: u.map((e) => {
157
- var n, d, b, g;
158
- if (!e.dataIndex) return null;
159
- const t = e.dataIndex, r = e.title, s = !(e.fieldEditable ?? !0);
160
- switch (e.fieldType) {
161
- case "string":
162
- return /* @__PURE__ */ a.jsx(
163
- i.Item,
164
- {
165
- name: t,
166
- label: r,
167
- rules: [{ required: (n = e.formConfig) == null ? void 0 : n.required, message: `${r} is required` }],
168
- children: /* @__PURE__ */ a.jsx(W, { disabled: s })
169
- },
170
- t
171
- );
172
- case "number":
173
- return /* @__PURE__ */ a.jsx(
174
- i.Item,
175
- {
176
- name: t,
177
- label: r,
178
- rules: [{ required: (d = e.formConfig) == null ? void 0 : d.required, message: `${r} is required` }],
179
- children: /* @__PURE__ */ a.jsx(U, { style: { width: "100%" }, disabled: s })
180
- },
181
- t
182
- );
183
- case "date":
184
- return /* @__PURE__ */ a.jsx(
185
- i.Item,
186
- {
187
- name: t,
188
- label: r,
189
- rules: [{ required: (b = e.formConfig) == null ? void 0 : b.required, message: `${r} is required` }],
190
- children: /* @__PURE__ */ a.jsx(L, { style: { width: "100%" }, showTime: !0, disabled: s })
191
- },
192
- t
193
- );
194
- case "boolean":
195
- return /* @__PURE__ */ a.jsx(
196
- i.Item,
197
- {
198
- name: t,
199
- label: r,
200
- valuePropName: "checked",
201
- children: /* @__PURE__ */ a.jsx(K, { disabled: s })
202
- },
203
- t
204
- );
205
- case "enum":
206
- return /* @__PURE__ */ a.jsx(
207
- i.Item,
208
- {
209
- name: t,
210
- label: r,
211
- rules: [{ required: (g = e.formConfig) == null ? void 0 : g.required, message: `${r} is required` }],
212
- children: /* @__PURE__ */ a.jsx(
213
- A,
214
- {
215
- disabled: s,
216
- options: Object.entries(e.enumOptions || {}).map(([S, E]) => ({
217
- label: E.text,
218
- value: S
219
- }))
220
- }
221
- )
222
- },
223
- t
224
- );
225
- default:
226
- return null;
227
- }
228
- }) })
229
- }
230
- )
231
- ] });
232
- };
233
- export {
234
- Z as default
1
+ import { a as e } from "./chunk-DrlAKpkd.js";
2
+ import { _ as t, a as n, c as r, d as i, f as a, g as o, h as s, i as c, l, m as u, n as d, o as f, p, r as m, s as h, t as g, u as _, v, y } from "./CrudTable-DbG9ZeYQ.js";
3
+ import { t as b } from "./message-C9NNC2sM.js";
4
+ import { t as x } from "./jsx-runtime-Blo4gjKb.js";
5
+ import { useRef as S, useState as C } from "react";
6
+ //#region lib/CrudTable.tsx
7
+ var w = /* @__PURE__ */ e(s(), 1), T = x(), E = (e) => {
8
+ let s = S(null), { columns: x, service: E, rowKey: D, title: O, defaultPageSize: k = 5 } = e, [A, j] = C(!1), [M, N] = C(null), [P] = i.useForm(), F = (x || []).map((e) => {
9
+ let t = {
10
+ ...e,
11
+ dataIndex: e.dataIndex,
12
+ title: e.title
13
+ };
14
+ switch (e.fieldType) {
15
+ case "date": return {
16
+ ...t,
17
+ valueType: "dateTime",
18
+ render: (t, n) => /* @__PURE__ */ (0, T.jsx)("span", { children: m(g(n[e.dataIndex]), "yyyy-MM-dd HH:mm") })
19
+ };
20
+ case "enum": return {
21
+ ...t,
22
+ valueType: "select",
23
+ valueEnum: e.enumOptions
24
+ };
25
+ case "number": return {
26
+ ...t,
27
+ valueType: "digit"
28
+ };
29
+ case "boolean": return {
30
+ ...t,
31
+ valueType: "switch",
32
+ render: (t, n) => /* @__PURE__ */ (0, T.jsx)(h, {
33
+ color: n[e.dataIndex] ? "green" : "red",
34
+ children: n[e.dataIndex] ? "Yes" : "No"
35
+ })
36
+ };
37
+ case "custom": return {
38
+ ...t,
39
+ render: (t, n) => e.customRender?.(n[e.dataIndex], n)
40
+ };
41
+ default: return t;
42
+ }
43
+ });
44
+ F.push({
45
+ title: "Actions",
46
+ valueType: "option",
47
+ render: (e, t) => [/* @__PURE__ */ (0, T.jsx)(o, {
48
+ type: "primary",
49
+ onClick: () => L(t),
50
+ children: "Edit"
51
+ }, "edit"), /* @__PURE__ */ (0, T.jsx)(o, {
52
+ type: "primary",
53
+ danger: !0,
54
+ onClick: async () => {
55
+ await E.delete(t[D]), s.current?.reload();
56
+ },
57
+ children: "Delete"
58
+ }, "delete")]
59
+ });
60
+ let I = async (e, t, n) => {
61
+ try {
62
+ let r = {
63
+ ...e,
64
+ sortBy: Object.keys(t)[0],
65
+ sortOrder: Object.values(t)[0],
66
+ ...n
67
+ }, { data: i, total: a } = await E.getList(r);
68
+ return {
69
+ data: i,
70
+ success: !0,
71
+ total: a
72
+ };
73
+ } catch {
74
+ return b.error("Failed to fetch data"), {
75
+ data: [],
76
+ success: !1,
77
+ total: 0
78
+ };
79
+ }
80
+ }, L = (e) => {
81
+ if (N(e || null), e) {
82
+ let t = { ...e };
83
+ x.forEach((e) => {
84
+ let n = e.dataIndex;
85
+ e.fieldType === "date" && t[n] && (t[n] = (0, w.default)(t[n]));
86
+ }), P.setFieldsValue(t);
87
+ } else P.resetFields();
88
+ j(!0);
89
+ };
90
+ return /* @__PURE__ */ (0, T.jsxs)(n, {
91
+ needDeps: !0,
92
+ intl: f,
93
+ children: [/* @__PURE__ */ (0, T.jsx)(c, {
94
+ headerTitle: O,
95
+ rowKey: D,
96
+ rowClassName: (e, t) => t % 2 == 0 && "row-differentiator" || "",
97
+ actionRef: s,
98
+ columns: F,
99
+ request: I,
100
+ search: { labelWidth: "auto" },
101
+ pagination: { pageSize: k },
102
+ toolBarRender: () => [/* @__PURE__ */ (0, T.jsx)(o, {
103
+ type: "primary",
104
+ icon: /* @__PURE__ */ (0, T.jsx)(v, {}),
105
+ onClick: () => L(),
106
+ children: "New"
107
+ }, "add"), /* @__PURE__ */ (0, T.jsx)(a, {
108
+ menu: { items: [{
109
+ key: "export",
110
+ label: "Export"
111
+ }, {
112
+ key: "refresh",
113
+ label: "Refresh",
114
+ onClick: () => s.current?.reload()
115
+ }] },
116
+ children: /* @__PURE__ */ (0, T.jsx)(o, { children: /* @__PURE__ */ (0, T.jsx)(y, {}) })
117
+ }, "menu")],
118
+ options: {
119
+ setting: { listsHeight: 400 },
120
+ reload: () => s.current?.reload()
121
+ },
122
+ dateFormatter: "string"
123
+ }), /* @__PURE__ */ (0, T.jsx)(l, {
124
+ forceRender: !0,
125
+ title: M ? "Edit Item" : "Create Item",
126
+ open: A,
127
+ onOk: async () => {
128
+ try {
129
+ let e = await P.validateFields(), t = { ...e };
130
+ x.forEach((n) => {
131
+ let r = n.dataIndex;
132
+ n.fieldType === "date" && e[r] && (t[r] = d(e[r])), n.formConfig?.transform && (t[r] = n.formConfig.transform(e[r]));
133
+ }), M && M[D] ? (await E.update(M[D], t), b.success("Updated successfully")) : (await E.create(t), b.success("Created successfully")), j(!1), s.current?.reload();
134
+ } catch (e) {
135
+ console.error(e), b.error("Submit failed");
136
+ }
137
+ },
138
+ onCancel: () => {
139
+ j(!1);
140
+ },
141
+ destroyOnClose: !0,
142
+ children: /* @__PURE__ */ (0, T.jsx)(i, {
143
+ form: P,
144
+ layout: "vertical",
145
+ children: x.map((e) => {
146
+ if (!e.dataIndex) return null;
147
+ let n = e.dataIndex, a = e.title, o = !(e.fieldEditable ?? !0);
148
+ switch (e.fieldType) {
149
+ case "string": return /* @__PURE__ */ (0, T.jsx)(i.Item, {
150
+ name: n,
151
+ label: a,
152
+ rules: [{
153
+ required: e.formConfig?.required,
154
+ message: `${a} is required`
155
+ }],
156
+ children: /* @__PURE__ */ (0, T.jsx)(_, { disabled: o })
157
+ }, n);
158
+ case "number": return /* @__PURE__ */ (0, T.jsx)(i.Item, {
159
+ name: n,
160
+ label: a,
161
+ rules: [{
162
+ required: e.formConfig?.required,
163
+ message: `${a} is required`
164
+ }],
165
+ children: /* @__PURE__ */ (0, T.jsx)(u, {
166
+ style: { width: "100%" },
167
+ disabled: o
168
+ })
169
+ }, n);
170
+ case "date": return /* @__PURE__ */ (0, T.jsx)(i.Item, {
171
+ name: n,
172
+ label: a,
173
+ rules: [{
174
+ required: e.formConfig?.required,
175
+ message: `${a} is required`
176
+ }],
177
+ children: /* @__PURE__ */ (0, T.jsx)(p, {
178
+ style: { width: "100%" },
179
+ showTime: !0,
180
+ disabled: o
181
+ })
182
+ }, n);
183
+ case "boolean": return /* @__PURE__ */ (0, T.jsx)(i.Item, {
184
+ name: n,
185
+ label: a,
186
+ valuePropName: "checked",
187
+ children: /* @__PURE__ */ (0, T.jsx)(r, { disabled: o })
188
+ }, n);
189
+ case "enum": return /* @__PURE__ */ (0, T.jsx)(i.Item, {
190
+ name: n,
191
+ label: a,
192
+ rules: [{
193
+ required: e.formConfig?.required,
194
+ message: `${a} is required`
195
+ }],
196
+ children: /* @__PURE__ */ (0, T.jsx)(t, {
197
+ disabled: o,
198
+ options: Object.entries(e.enumOptions || {}).map(([e, t]) => ({
199
+ label: t.text,
200
+ value: e
201
+ }))
202
+ })
203
+ }, n);
204
+ default: return null;
205
+ }
206
+ })
207
+ })
208
+ })]
209
+ });
235
210
  };
211
+ //#endregion
212
+ export { E as default };
@@ -1 +1 @@
1
- "use strict";const o=require("./jsx-runtime-qcKc-DpB.cjs"),f=require("react"),n=require("./CrudTable-ck226KHr.cjs"),z=require("./useCrudTable.cjs"),T=require("./index-DygfPlBI.cjs"),_=w=>{const{columns:x,rowKey:d,title:I,defaultPageSize:y=10,hookConfig:k,enableBulkOperations:R=!1,customActions:h}=w,i=z.useCrudTable(d,{defaultPageSize:y,...k}),[v,j]=f.useState(!1),[m,S]=f.useState(null),[u,g]=f.useState([]),[p]=n.Form.useForm();f.useEffect(()=>{i.refresh()},[]);const E=x.map(e=>{const t={...e,dataIndex:e.dataIndex,title:e.title,search:e.searchable!==!1};switch(e.fieldType){case"date":return{...t,valueType:"dateTime",render:(r,s)=>{const a=s[e.dataIndex];if(!a)return"-";try{return o.jsxRuntimeExports.jsx("span",{children:n.format(n.parseISO(a),"yyyy-MM-dd HH:mm")})}catch{return o.jsxRuntimeExports.jsx("span",{children:a})}}};case"enum":return{...t,valueType:"select",valueEnum:e.enumOptions,render:(r,s)=>{var c;const a=s[e.dataIndex],l=(c=e.enumOptions)==null?void 0:c[a];return l?o.jsxRuntimeExports.jsx(n.Tag,{color:l.color,children:l.text}):a}};case"number":return{...t,valueType:"digit",render:(r,s)=>{const a=s[e.dataIndex];return typeof a=="number"?a.toLocaleString():a}};case"boolean":return{...t,valueType:"switch",render:(r,s)=>o.jsxRuntimeExports.jsx(n.Tag,{color:s[e.dataIndex]?"green":"red",children:s[e.dataIndex]?"Yes":"No"})};case"custom":return{...t,render:(r,s)=>{var a;return(a=e.customRender)==null?void 0:a.call(e,s[e.dataIndex],s)}};default:return t}});E.push({title:"Actions",valueType:"option",width:200,render:(e,t)=>{const r=[o.jsxRuntimeExports.jsx(n.Button,{type:"link",size:"small",onClick:()=>b(t),children:"Edit"},"edit"),o.jsxRuntimeExports.jsx(n.Button,{type:"link",size:"small",danger:!0,onClick:()=>q(t[d]),children:"Delete"},"delete")],s=(h==null?void 0:h(t,i))||[];return[...r,...s]}});const F=async(e,t,r)=>{try{const s={current:e.current,pageSize:e.pageSize,sortBy:Object.keys(t)[0],sortOrder:Object.values(t)[0],...r,...e},a=i.operations;if(a!=null&&a.getList){const l=await a.getList(s);return{data:l.data,success:!0,total:l.total}}return{data:i.state.data,success:!0,total:i.state.total}}catch{return T.staticMethods.error("Failed to fetch data"),{data:[],success:!1,total:0}}},b=e=>{if(S(e||null),e){const t={...e};x.forEach(r=>{const s=r.dataIndex;if(r.fieldType==="date"&&t[s])try{t[s]=n.dayjs(t[s])}catch{}}),p.setFieldsValue(t)}else p.resetFields();j(!0)},O=async()=>{var e;try{const t=await p.validateFields(),r={...t};x.forEach(s=>{var l;const a=s.dataIndex;if(s.fieldType==="date"&&t[a])try{r[a]=n.formatISO(t[a])}catch{}(l=s.formConfig)!=null&&l.transform&&(r[a]=s.formConfig.transform(t[a]))}),m&&m[d]?await i.update(m[d],r):await i.create(r),j(!1),(e=i.actionRef.current)==null||e.reload()}catch(t){console.error("Form validation failed:",t)}},q=async e=>{n.Modal.confirm({title:"Are you sure?",content:"This action cannot be undone.",okText:"Yes, Delete",okType:"danger",cancelText:"Cancel",onOk:async()=>{var r;await i.delete(e)&&((r=i.actionRef.current)==null||r.reload())}})},D=async()=>{if(u.length===0){T.staticMethods.warning("Please select items to delete");return}n.Modal.confirm({title:`Delete ${u.length} items?`,content:"This action cannot be undone.",okText:"Yes, Delete All",okType:"danger",cancelText:"Cancel",onOk:async()=>{var t;const e=u.map(r=>i.delete(r));await Promise.allSettled(e),g([]),(t=i.actionRef.current)==null||t.reload()}})},B=R?{selectedRowKeys:u,onChange:g}:void 0;return o.jsxRuntimeExports.jsxs(n.ProConfigProvider,{needDeps:!0,children:[o.jsxRuntimeExports.jsx(n.ProviderTableContainer,{headerTitle:I,rowKey:d,rowClassName:(e,t)=>t%2===0?"row-differentiator":"",actionRef:i.actionRef,columns:E,request:F,search:{labelWidth:"auto"},pagination:{pageSize:y,showSizeChanger:!0,showQuickJumper:!0},loading:i.state.loading,rowSelection:B,toolBarRender:()=>[o.jsxRuntimeExports.jsx(n.Button,{type:"primary",icon:o.jsxRuntimeExports.jsx(n.RefIcon,{}),onClick:()=>b(),children:"New"},"add"),...R&&u.length>0?[o.jsxRuntimeExports.jsxs(n.Button,{danger:!0,onClick:D,children:["Delete Selected (",u.length,")"]},"bulk-delete")]:[],o.jsxRuntimeExports.jsx(n.Dropdown,{menu:{items:[{key:"export",label:"Export",disabled:!0},{key:"refresh",label:"Refresh",onClick:()=>i.refresh()}]},children:o.jsxRuntimeExports.jsx(n.Button,{children:o.jsxRuntimeExports.jsx(n.RefIcon$1,{})})},"menu")],options:{setting:{listsHeight:400},reload:()=>i.refresh()},dateFormatter:"string"}),o.jsxRuntimeExports.jsx(n.Modal,{title:m?"Edit Item":"Create Item",open:v,onOk:O,onCancel:()=>j(!1),destroyOnClose:!0,width:600,children:o.jsxRuntimeExports.jsx(n.Form,{form:p,layout:"vertical",children:x.map(e=>{var l,c,C;if(!e.dataIndex)return null;const t=e.dataIndex,r=e.title,s=!(e.fieldEditable??!0),a=((l=e.formConfig)==null?void 0:l.rules)||((c=e.formConfig)!=null&&c.required?[{required:!0,message:`${r} is required`}]:[]);if((C=e.formConfig)!=null&&C.component)return o.jsxRuntimeExports.jsx(n.Form.Item,{name:t,label:r,rules:a,children:e.formConfig.component},t);switch(e.fieldType){case"string":return o.jsxRuntimeExports.jsx(n.Form.Item,{name:t,label:r,rules:a,children:o.jsxRuntimeExports.jsx(n.Input,{disabled:s})},t);case"number":return o.jsxRuntimeExports.jsx(n.Form.Item,{name:t,label:r,rules:a,children:o.jsxRuntimeExports.jsx(n.TypedInputNumber,{style:{width:"100%"},disabled:s})},t);case"date":return o.jsxRuntimeExports.jsx(n.Form.Item,{name:t,label:r,rules:a,children:o.jsxRuntimeExports.jsx(n.DatePicker,{style:{width:"100%"},showTime:!0,disabled:s})},t);case"boolean":return o.jsxRuntimeExports.jsx(n.Form.Item,{name:t,label:r,valuePropName:"checked",children:o.jsxRuntimeExports.jsx(n.Switch,{disabled:s})},t);case"enum":return o.jsxRuntimeExports.jsx(n.Form.Item,{name:t,label:r,rules:a,children:o.jsxRuntimeExports.jsx(n.Select,{disabled:s,placeholder:`Select ${r.toLowerCase()}`,options:Object.entries(e.enumOptions||{}).map(([M,P])=>({label:P.text,value:M}))})},t);default:return null}})})})]})};module.exports=_;
1
+ const e=require(`./chunk-BZRuZbSa.cjs`),t=require(`./CrudTable-CDqv0ksy.cjs`),n=require(`./message-C5ORE39N.cjs`),r=require(`./jsx-runtime-D8R_Hd8N.cjs`),i=require(`./useCrudTable.cjs`);let a=require(`react`);var o=e.i(t.h(),1),s=r.t(),c=e=>{let{columns:r,rowKey:c,title:l,defaultPageSize:u=10,hookConfig:d,enableBulkOperations:f=!1,customActions:p}=e,m=i.useCrudTable(c,{defaultPageSize:u,...d}),[h,g]=(0,a.useState)(!1),[_,v]=(0,a.useState)(null),[y,b]=(0,a.useState)([]),[x]=t.d.useForm();(0,a.useEffect)(()=>{m.refresh()},[]);let S=r.map(e=>{let n={...e,dataIndex:e.dataIndex,title:e.title,search:e.searchable!==!1};switch(e.fieldType){case`date`:return{...n,valueType:`dateTime`,render:(n,r)=>{let i=r[e.dataIndex];if(!i)return`-`;try{return(0,s.jsx)(`span`,{children:t.r(t.t(i),`yyyy-MM-dd HH:mm`)})}catch{return(0,s.jsx)(`span`,{children:i})}}};case`enum`:return{...n,valueType:`select`,valueEnum:e.enumOptions,render:(n,r)=>{let i=r[e.dataIndex],a=e.enumOptions?.[i];return a?(0,s.jsx)(t.s,{color:a.color,children:a.text}):i}};case`number`:return{...n,valueType:`digit`,render:(t,n)=>{let r=n[e.dataIndex];return typeof r==`number`?r.toLocaleString():r}};case`boolean`:return{...n,valueType:`switch`,render:(n,r)=>(0,s.jsx)(t.s,{color:r[e.dataIndex]?`green`:`red`,children:r[e.dataIndex]?`Yes`:`No`})};case`custom`:return{...n,render:(t,n)=>e.customRender?.(n[e.dataIndex],n)};default:return n}});S.push({title:`Actions`,valueType:`option`,width:200,render:(e,n)=>{let r=[(0,s.jsx)(t.g,{type:`link`,size:`small`,onClick:()=>w(n),children:`Edit`},`edit`),(0,s.jsx)(t.g,{type:`link`,size:`small`,danger:!0,onClick:()=>E(n[c]),children:`Delete`},`delete`)],i=p?.(n,m)||[];return[...r,...i]}});let C=async(e,t,r)=>{try{let n={current:e.current,pageSize:e.pageSize,sortBy:Object.keys(t)[0],sortOrder:Object.values(t)[0],...r,...e},i=m.operations;if(i?.getList){let e=await i.getList(n);return{data:e.data,success:!0,total:e.total}}return{data:m.state.data,success:!0,total:m.state.total}}catch{return n.t.error(`Failed to fetch data`),{data:[],success:!1,total:0}}},w=e=>{if(v(e||null),e){let t={...e};r.forEach(e=>{let n=e.dataIndex;if(e.fieldType===`date`&&t[n])try{t[n]=(0,o.default)(t[n])}catch{}}),x.setFieldsValue(t)}else x.resetFields();g(!0)},T=async()=>{try{let e=await x.validateFields(),n={...e};r.forEach(r=>{let i=r.dataIndex;if(r.fieldType===`date`&&e[i])try{n[i]=t.n(e[i])}catch{}r.formConfig?.transform&&(n[i]=r.formConfig.transform(e[i]))}),_&&_[c]?await m.update(_[c],n):await m.create(n),g(!1),m.actionRef.current?.reload()}catch(e){console.error(`Form validation failed:`,e)}},E=async e=>{t.l.confirm({title:`Are you sure?`,content:`This action cannot be undone.`,okText:`Yes, Delete`,okType:`danger`,cancelText:`Cancel`,onOk:async()=>{await m.delete(e)&&m.actionRef.current?.reload()}})},D=async()=>{if(y.length===0){n.t.warning(`Please select items to delete`);return}t.l.confirm({title:`Delete ${y.length} items?`,content:`This action cannot be undone.`,okText:`Yes, Delete All`,okType:`danger`,cancelText:`Cancel`,onOk:async()=>{let e=y.map(e=>m.delete(e));await Promise.allSettled(e),b([]),m.actionRef.current?.reload()}})},O=f?{selectedRowKeys:y,onChange:b}:void 0;return(0,s.jsxs)(t.a,{needDeps:!0,intl:t.o,children:[(0,s.jsx)(t.i,{headerTitle:l,rowKey:c,rowClassName:(e,t)=>t%2==0?`row-differentiator`:``,actionRef:m.actionRef,columns:S,request:C,search:{labelWidth:`auto`},pagination:{pageSize:u,showSizeChanger:!0,showQuickJumper:!0},loading:m.state.loading,rowSelection:O,toolBarRender:()=>[(0,s.jsx)(t.g,{type:`primary`,icon:(0,s.jsx)(t.v,{}),onClick:()=>w(),children:`New`},`add`),...f&&y.length>0?[(0,s.jsxs)(t.g,{danger:!0,onClick:D,children:[`Delete Selected (`,y.length,`)`]},`bulk-delete`)]:[],(0,s.jsx)(t.f,{menu:{items:[{key:`export`,label:`Export`,disabled:!0},{key:`refresh`,label:`Refresh`,onClick:()=>m.refresh()}]},children:(0,s.jsx)(t.g,{children:(0,s.jsx)(t.y,{})})},`menu`)],options:{setting:{listsHeight:400},reload:()=>m.refresh()},dateFormatter:`string`}),(0,s.jsx)(t.l,{title:_?`Edit Item`:`Create Item`,open:h,onOk:T,onCancel:()=>g(!1),destroyOnClose:!0,width:600,children:(0,s.jsx)(t.d,{form:x,layout:`vertical`,children:r.map(e=>{if(!e.dataIndex)return null;let n=e.dataIndex,r=e.title,i=!(e.fieldEditable??!0),a=e.formConfig?.rules||(e.formConfig?.required?[{required:!0,message:`${r} is required`}]:[]);if(e.formConfig?.component)return(0,s.jsx)(t.d.Item,{name:n,label:r,rules:a,children:e.formConfig.component},n);switch(e.fieldType){case`string`:return(0,s.jsx)(t.d.Item,{name:n,label:r,rules:a,children:(0,s.jsx)(t.u,{disabled:i})},n);case`number`:return(0,s.jsx)(t.d.Item,{name:n,label:r,rules:a,children:(0,s.jsx)(t.m,{style:{width:`100%`},disabled:i})},n);case`date`:return(0,s.jsx)(t.d.Item,{name:n,label:r,rules:a,children:(0,s.jsx)(t.p,{style:{width:`100%`},showTime:!0,disabled:i})},n);case`boolean`:return(0,s.jsx)(t.d.Item,{name:n,label:r,valuePropName:`checked`,children:(0,s.jsx)(t.c,{disabled:i})},n);case`enum`:return(0,s.jsx)(t.d.Item,{name:n,label:r,rules:a,children:(0,s.jsx)(t._,{disabled:i,placeholder:`Select ${r.toLowerCase()}`,options:Object.entries(e.enumOptions||{}).map(([e,t])=>({label:t.text,value:e}))})},n);default:return null}})})})]})};module.exports=c;