@kingteza/crud-component 1.0.13 → 1.0.14

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 (119) hide show
  1. package/dist/components/common/DatePicker/DatePicker.cjs +1 -0
  2. package/dist/components/common/DatePicker/DatePicker.js +88 -0
  3. package/dist/components/common/DatePicker/TimePicker.cjs +1 -0
  4. package/dist/components/common/DatePicker/TimePicker.js +78 -0
  5. package/dist/components/common/appearance/Hider.cjs +1 -0
  6. package/dist/components/common/appearance/Hider.js +5 -0
  7. package/dist/components/common/button/Button.cjs +1 -0
  8. package/dist/components/common/button/Button.js +64 -0
  9. package/dist/components/common/button/CloneButtonTable.cjs +1 -0
  10. package/dist/components/common/button/CloneButtonTable.js +20 -0
  11. package/dist/components/common/button/DeleteButtonTable.cjs +1 -0
  12. package/dist/components/common/button/DeleteButtonTable.js +68 -0
  13. package/dist/components/common/button/ExportButton.cjs +1 -0
  14. package/dist/components/common/button/ExportButton.js +27 -0
  15. package/dist/components/common/button/HideButtonTable.cjs +1 -0
  16. package/dist/components/common/button/HideButtonTable.js +68 -0
  17. package/dist/components/common/button/ImportButton.cjs +1 -0
  18. package/dist/components/common/button/ImportButton.js +56 -0
  19. package/dist/components/common/button/NewButton.cjs +1 -0
  20. package/dist/components/common/button/NewButton.js +24 -0
  21. package/dist/components/common/button/PrintButton.cjs +1 -0
  22. package/dist/components/common/button/PrintButton.js +26 -0
  23. package/dist/components/common/button/RefreshButton.cjs +1 -0
  24. package/dist/components/common/button/RefreshButton.js +24 -0
  25. package/dist/components/common/button/UnHideButton.cjs +1 -0
  26. package/dist/components/common/button/UnHideButton.js +70 -0
  27. package/dist/components/common/button/UpdateButtonTable.cjs +1 -0
  28. package/dist/components/common/button/UpdateButtonTable.js +20 -0
  29. package/dist/components/common/button/ViewButtonTable.cjs +1 -0
  30. package/dist/components/common/button/ViewButtonTable.js +20 -0
  31. package/dist/components/common/check-box/CheckBox.cjs +1 -0
  32. package/dist/components/common/check-box/CheckBox.js +40 -0
  33. package/dist/components/common/description/DescList.cjs +1 -0
  34. package/dist/components/common/description/DescList.js +16 -0
  35. package/dist/components/common/layout/VerticalSpace.cjs +1 -0
  36. package/dist/components/common/layout/VerticalSpace.js +6 -0
  37. package/dist/components/common/loading/LoadingIndicator.cjs +1 -0
  38. package/dist/components/common/loading/LoadingIndicator.js +24 -0
  39. package/dist/components/common/picker/ImagePicker.cjs +1 -0
  40. package/dist/components/common/picker/ImagePicker.js +285 -0
  41. package/dist/components/common/radio/RadioGroupComponent.cjs +1 -0
  42. package/dist/components/common/radio/RadioGroupComponent.js +19 -0
  43. package/dist/components/common/report/SelectFieldInReport.cjs +1 -0
  44. package/dist/components/common/report/SelectFieldInReport.js +30 -0
  45. package/dist/components/common/select/CustomSelectOption.cjs +1 -0
  46. package/dist/components/common/select/CustomSelectOption.js +13 -0
  47. package/dist/components/common/select/SelectComponent.cjs +1 -0
  48. package/dist/components/common/select/SelectComponent.js +89 -0
  49. package/dist/components/common/show-more/index.cjs +1 -0
  50. package/dist/components/common/show-more/index.js +8 -0
  51. package/dist/components/common/tab/TabViewWithRoute.cjs +1 -0
  52. package/dist/components/common/tab/TabViewWithRoute.js +37 -0
  53. package/dist/components/common/table/table.cjs +1 -0
  54. package/dist/components/common/table/table.js +40 -0
  55. package/dist/components/common/tag/StatusTag.cjs +1 -0
  56. package/dist/components/common/tag/StatusTag.js +30 -0
  57. package/dist/components/common/text/index.cjs +1 -0
  58. package/dist/components/common/text/index.js +5 -0
  59. package/dist/components/common/text/title/index.cjs +1 -0
  60. package/dist/components/common/text/title/index.js +5 -0
  61. package/dist/components/common/text-field/NumberField.cjs +1 -0
  62. package/dist/components/common/text-field/NumberField.js +83 -0
  63. package/dist/components/common/text-field/PhoneNumberField.cjs +1 -0
  64. package/dist/components/common/text-field/PhoneNumberField.js +18 -0
  65. package/dist/components/common/text-field/TextArea.cjs +1 -0
  66. package/dist/components/common/text-field/TextArea.js +47 -0
  67. package/dist/components/common/text-field/TextField.cjs +1 -0
  68. package/dist/components/common/text-field/TextField.js +73 -0
  69. package/dist/components/common/tooltip/TooltipComponent.cjs +1 -0
  70. package/dist/components/common/tooltip/TooltipComponent.js +9 -0
  71. package/dist/components/common/wizard/WizardResult.cjs +1 -0
  72. package/dist/components/common/wizard/WizardResult.js +61 -0
  73. package/dist/components/common/wizard/WizardViewForm.cjs +1 -0
  74. package/dist/components/common/wizard/WizardViewForm.js +74 -0
  75. package/dist/components/crud/CrudComponent.cjs +1 -0
  76. package/dist/components/crud/CrudComponent.js +210 -0
  77. package/dist/components/crud/CrudField.cjs +1 -0
  78. package/dist/components/crud/CrudField.js +459 -0
  79. package/dist/components/crud/CrudForm.cjs +1 -0
  80. package/dist/components/crud/CrudForm.js +91 -0
  81. package/dist/components/crud/CrudFormWizard.cjs +1 -0
  82. package/dist/components/crud/CrudFormWizard.js +142 -0
  83. package/dist/components/crud/CrudReportComponent.cjs +4 -0
  84. package/dist/components/crud/CrudReportComponent.js +255 -0
  85. package/dist/components/crud/CrudSearchComponent.cjs +1 -0
  86. package/dist/components/crud/CrudSearchComponent.js +95 -0
  87. package/dist/components/crud/FileCrudField.cjs +1 -0
  88. package/dist/components/crud/FileCrudField.js +227 -0
  89. package/dist/components/crud/ImageCrudField.cjs +1 -0
  90. package/dist/components/crud/ImageCrudField.js +113 -0
  91. package/dist/components/crud/import/CrudImportButton.cjs +1 -0
  92. package/dist/components/crud/import/CrudImportButton.js +31 -0
  93. package/dist/components/crud/import/CrudImportComponent.cjs +2 -0
  94. package/dist/components/crud/import/CrudImportComponent.js +222 -0
  95. package/dist/components/crud/view/CrudDecListView.cjs +1 -0
  96. package/dist/components/crud/view/CrudDecListView.js +42 -0
  97. package/dist/components/crud/view/CrudViewer.cjs +1 -0
  98. package/dist/components/crud/view/CrudViewer.js +217 -0
  99. package/dist/components/crud/view/CrudViewerUtil.cjs +1 -0
  100. package/dist/components/crud/view/CrudViewerUtil.js +58 -0
  101. package/dist/index.cjs +1 -1
  102. package/dist/index.js +10 -10
  103. package/dist/locale/hooks/translation-constants.cjs +1 -0
  104. package/dist/locale/hooks/translation-constants.js +4 -0
  105. package/dist/locale/index.cjs +1 -0
  106. package/dist/locale/index.js +33 -0
  107. package/dist/locale/translations/en.cjs +1 -0
  108. package/dist/locale/translations/en.js +60 -0
  109. package/dist/util/DateUtil.cjs +1 -0
  110. package/dist/util/DateUtil.js +6 -0
  111. package/dist/util/ImageUtil.cjs +1 -0
  112. package/dist/util/ImageUtil.js +63 -0
  113. package/dist/util/NumberUtil.cjs +1 -0
  114. package/dist/util/NumberUtil.js +60 -0
  115. package/dist/util/ValidationUtil.cjs +1 -0
  116. package/dist/util/ValidationUtil.js +60 -0
  117. package/dist/util/index.cjs +1 -1
  118. package/dist/util/index.js +4 -4
  119. package/package.json +1 -1
@@ -0,0 +1,227 @@
1
+ import { j as e } from "../../_virtual/jsx-runtime.js";
2
+ /* empty css */
3
+ import { Form as F, Upload as W, Modal as z } from "antd";
4
+ import M from "../../node_modules/mime/dist/src/index.js";
5
+ import { useState as d, useCallback as N, useEffect as S, useMemo as E } from "react";
6
+ import { TRANSLATION_NAMESPACE as G } from "../../locale/hooks/translation-constants.js";
7
+ import J from "../../util/ValidationUtil.js";
8
+ import g from "../common/button/Button.js";
9
+ import K from "../common/layout/VerticalSpace.js";
10
+ import Q from "../../node_modules/@ant-design/icons/es/icons/FileOutlined.js";
11
+ import X from "../../node_modules/@ant-design/icons/es/icons/FilePptOutlined.js";
12
+ import Y from "../../node_modules/@ant-design/icons/es/icons/FileExcelOutlined.js";
13
+ import Z from "../../node_modules/@ant-design/icons/es/icons/FileTextOutlined.js";
14
+ import m from "../../node_modules/@ant-design/icons/es/icons/FileWordOutlined.js";
15
+ import v from "../../node_modules/@ant-design/icons/es/icons/FilePdfOutlined.js";
16
+ import y from "../../node_modules/@ant-design/icons/es/icons/FileImageOutlined.js";
17
+ import { useTranslation as T } from "../../node_modules/react-i18next/dist/es/useTranslation.js";
18
+ import tt from "../../node_modules/@ant-design/icons/es/icons/ExportOutlined.js";
19
+ function It({
20
+ name: o,
21
+ label: t,
22
+ required: r,
23
+ provider: s,
24
+ onUploading: l,
25
+ onRemoved: f,
26
+ fieldClassName: x,
27
+ accept: I,
28
+ rules: U,
29
+ maxCount: C = 1,
30
+ block: k,
31
+ ...O
32
+ }) {
33
+ const u = F.useFormInstance(), h = F.useWatch(o, u), [P, $] = d(!1), [R, _] = d(!1), L = N(
34
+ async (n) => {
35
+ var c, a;
36
+ try {
37
+ const { file: i } = n, j = i.name;
38
+ $(!0), _(!0), l == null || l(!0);
39
+ const w = j ?? "", b = w.split("."), B = b[b.length - 1], H = s.generateFileName(w), A = `${await s.getInitialPath()}/${H}.${B}`;
40
+ console.log({ filePath: A });
41
+ const D = await s.upload(
42
+ { ...i, originFileObj: i },
43
+ A
44
+ );
45
+ l == null || l(!1), u.setFieldValue(o, D), (c = n.onSuccess) == null || c.call(n, D);
46
+ } catch (i) {
47
+ (a = n.onError) == null || a.call(n, i);
48
+ } finally {
49
+ $(!1);
50
+ }
51
+ },
52
+ [u, o, l, s]
53
+ ), [p, V] = d([]);
54
+ S(() => {
55
+ !R && h && Promise.all(
56
+ (Array.isArray(h) ? h : [h]).map(
57
+ async (n) => {
58
+ const c = M.getType(n), a = n.split("/").pop(), i = await s.getRealUrl(n);
59
+ return {
60
+ uid: n,
61
+ url: i,
62
+ type: c,
63
+ name: a
64
+ };
65
+ }
66
+ )
67
+ ).then((n) => V(() => {
68
+ const c = n.map(({ url: a, type: i, uid: j, name: w }) => ({ uid: j, url: a, type: i, response: j, thumbUrl: a, name: w }));
69
+ return console.log(c), c;
70
+ }));
71
+ }, [h, R, P, s]);
72
+ const q = N(
73
+ async (n) => {
74
+ const c = n.response, a = c || u.getFieldValue(o);
75
+ await s.delete(a), f == null || f(), n && u.setFieldsValue({ [o]: null });
76
+ },
77
+ [u, o, f, s]
78
+ );
79
+ return /* @__PURE__ */ e.jsxs(
80
+ F.Item,
81
+ {
82
+ label: t,
83
+ required: r,
84
+ name: o,
85
+ className: x,
86
+ rules: [
87
+ ...r ? J.required(t) : [],
88
+ ...U ?? []
89
+ ],
90
+ children: [
91
+ /* @__PURE__ */ e.jsx("input", { hidden: !0 }),
92
+ /* @__PURE__ */ e.jsx(
93
+ W,
94
+ {
95
+ ...O,
96
+ fileList: p,
97
+ className: ((p == null ? void 0 : p.length) ?? 0) >= C ? "hide-upload" : "",
98
+ maxCount: C,
99
+ customRequest: L,
100
+ onRemove: q,
101
+ listType: "picture",
102
+ onChange: ({ fileList: n }) => {
103
+ V(n);
104
+ },
105
+ style: k ? { width: "100%" } : void 0,
106
+ children: /* @__PURE__ */ e.jsx(g, { loading: P, children: "Upload File" })
107
+ }
108
+ )
109
+ ]
110
+ }
111
+ );
112
+ }
113
+ const Ct = ({ provider: o, value: t }) => {
114
+ const [r, s] = d();
115
+ return S(() => {
116
+ t && o.getRealUrl(t).then((l) => {
117
+ s({
118
+ mimeType: M.getType(t),
119
+ url: l,
120
+ fileName: t.split("/").pop() ?? t
121
+ });
122
+ });
123
+ }, [o, t]), r ? /* @__PURE__ */ e.jsx(
124
+ et,
125
+ {
126
+ fileName: r.fileName,
127
+ url: r == null ? void 0 : r.url,
128
+ mimeType: r == null ? void 0 : r.mimeType
129
+ }
130
+ ) : /* @__PURE__ */ e.jsx(e.Fragment, {});
131
+ }, et = ({ url: o, mimeType: t = "", fileName: r }) => {
132
+ const s = E(() => t != null && t.includes("image") ? "image" : t != null && t.includes("pdf") ? "pdf" : t != null && t.includes("word") ? "word" : t != null && t.includes("text") ? "text" : t != null && t.includes("presentation") ? "presentation" : t != null && t.includes("excel") || t != null && t.includes("spreadsheet") ? "excel" : "file", [t]), l = E(() => {
133
+ switch (s) {
134
+ case "image":
135
+ return /* @__PURE__ */ e.jsx(y, {});
136
+ case "pdf":
137
+ return /* @__PURE__ */ e.jsx(v, {});
138
+ case "word":
139
+ return /* @__PURE__ */ e.jsx(m, {});
140
+ case "text":
141
+ return /* @__PURE__ */ e.jsx(Z, {});
142
+ case "excel":
143
+ return /* @__PURE__ */ e.jsx(Y, {});
144
+ case "presentation":
145
+ return /* @__PURE__ */ e.jsx(X, {});
146
+ default:
147
+ return /* @__PURE__ */ e.jsx(Q, {});
148
+ }
149
+ }, [s]), [f, x] = d(!1), { t: I } = T(G);
150
+ return s !== "file" && s !== "text" ? /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
151
+ /* @__PURE__ */ e.jsx(
152
+ z,
153
+ {
154
+ open: f,
155
+ title: r,
156
+ onCancel: () => x(!1),
157
+ footer: /* @__PURE__ */ e.jsx(e.Fragment, {}),
158
+ width: "100%",
159
+ style: { top: "8px", minHeight: "700px" },
160
+ destroyOnClose: !0,
161
+ children: /* @__PURE__ */ e.jsxs(K, { children: [
162
+ /* @__PURE__ */ e.jsx(
163
+ g,
164
+ {
165
+ tooltip: r,
166
+ icon: /* @__PURE__ */ e.jsx(tt, {}),
167
+ target: "_blank",
168
+ href: o,
169
+ style: { textDecoration: "none" },
170
+ children: I("str.openInNewTab")
171
+ }
172
+ ),
173
+ s === "image" ? /* @__PURE__ */ e.jsx("img", { src: o, alt: r, style: { width: "100%" } }) : s === "pdf" ? /* @__PURE__ */ e.jsxs("iframe", { title: r, src: o, width: "100%", height: "700px", children: [
174
+ "This browser does not support PDFs. Please download the PDF to view it:",
175
+ /* @__PURE__ */ e.jsx("a", { href: o, children: "Download PDF" }),
176
+ "."
177
+ ] }) : /* @__PURE__ */ e.jsxs(
178
+ "iframe",
179
+ {
180
+ title: r,
181
+ src: `https://view.officeapps.live.com/op/view.aspx?src=${encodeURIComponent(
182
+ o
183
+ )}`,
184
+ width: "100%",
185
+ height: "700px",
186
+ children: [
187
+ "This browser does not support open ",
188
+ s.toUpperCase(),
189
+ ". Please download the",
190
+ s.toUpperCase(),
191
+ " to view it:",
192
+ /* @__PURE__ */ e.jsxs("a", { href: o, children: [
193
+ "Download ",
194
+ s.toUpperCase()
195
+ ] }),
196
+ "."
197
+ ]
198
+ }
199
+ )
200
+ ] })
201
+ }
202
+ ),
203
+ /* @__PURE__ */ e.jsx(
204
+ g,
205
+ {
206
+ tooltip: r,
207
+ icon: l,
208
+ shape: "circle",
209
+ onClick: () => x(!0)
210
+ }
211
+ )
212
+ ] }) : /* @__PURE__ */ e.jsx(
213
+ g,
214
+ {
215
+ tooltip: r,
216
+ icon: l,
217
+ target: "_blank",
218
+ href: o,
219
+ shape: "circle"
220
+ }
221
+ );
222
+ };
223
+ export {
224
+ et as FileCellValue,
225
+ Ct as FileCrudCellValue,
226
+ It as default
227
+ };
@@ -0,0 +1 @@
1
+ "use strict";var S=Object.defineProperty;var _=(e,a,t)=>a in e?S(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t;var d=(e,a,t)=>_(e,typeof a!="symbol"?a+"":a,t);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("../../_virtual/jsx-runtime.cjs");;/* empty css */const u=require("antd"),I=require("../../_virtual/index.cjs"),i=require("react"),O=require("../../util/NumberUtil.cjs"),k=require("../../util/ValidationUtil.cjs"),A=require("../common/picker/ImagePicker.cjs"),D=require("../../node_modules/uuid/dist/esm-browser/v4.cjs"),M=require("../../node_modules/@ant-design/icons/es/icons/EyeOutlined.cjs");class p{}class T extends p{constructor(t="",s=""){super();d(this,"rootPath");d(this,"subPath");this.rootPath=t,this.subPath=s}cloneFilePath(t){const s=I.parse(t),r=`${s.name}_cloned_${O.default.randInt(1e5)}`;return I.format({dir:s.dir,ext:s.ext,name:r})}generateFileName(t){return`${t.split(".")[0]}_${D().replace("-","")}`}}function W({name:e,label:a,required:t,provider:s,onUploading:r,aspectRatio:h,onRemoved:o,fieldClassName:g,hideLabel:q=!1,listType:w}){const c=u.Form.useFormInstance(),f=u.Form.useWatch(e,c),[F,C]=i.useState(!1),P=i.useCallback(async(n,N)=>{if(N){r==null||r(!0);const m=n.name,x=m.split("."),V=x[x.length-1],y=s.generateFileName(m),$=`${await s.getInitialPath()}/${y}.${V}`,b=await s.upload(n,$);C(!0),r==null||r(!1),c.setFieldValue(e,b)}else{console.log(n);const m=c.getFieldsValue(),x=await s.delete(m[e]);o==null||o(),x&&c.setFieldsValue({[e]:null})}},[c,e,o,r,s]),[j,E]=i.useState();return i.useEffect(()=>{!F&&f?s.getRealUrl(f).then(E):E(j)},[f,F,s,j]),l.jsxRuntimeExports.jsx(l.jsxRuntimeExports.Fragment,{children:l.jsxRuntimeExports.jsxs(u.Form.Item,{rules:t?k.required(a):[],label:q?null:a,required:t,name:e,children:[l.jsxRuntimeExports.jsx(A.default,{noStyle:!0,listType:w,aspectRatio:h,values:j,onRemove:n=>{n&&P(n,!1)},onAdd:async n=>{n&&await P(n,!0)},className:g}),l.jsxRuntimeExports.jsx(u.Input,{hidden:!0})]})})}const z=({provider:e,value:a})=>{const[t,s]=i.useState();return i.useEffect(()=>{a&&e.getRealUrl(a).then(s)},[e,a]),t?l.jsxRuntimeExports.jsx(R,{url:t}):l.jsxRuntimeExports.jsx(l.jsxRuntimeExports.Fragment,{})},R=({url:e})=>l.jsxRuntimeExports.jsx(u.Avatar,{className:"p-0",children:l.jsxRuntimeExports.jsx(u.Image,{className:"m-0 p-0 position-relative",src:e,preview:{mask:l.jsxRuntimeExports.jsx(M,{})}})});exports.FileDownloadProvider=p;exports.FileUploadProvider=T;exports.ImageCellValue=R;exports.ImageCrudCellValue=z;exports.default=W;
@@ -0,0 +1,113 @@
1
+ var A = Object.defineProperty;
2
+ var E = (e, a, t) => a in e ? A(e, a, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[a] = t;
3
+ var h = (e, a, t) => E(e, typeof a != "symbol" ? a + "" : a, t);
4
+ import { j as l } from "../../_virtual/jsx-runtime.js";
5
+ /* empty css */
6
+ import { Form as x, Input as O, Avatar as S, Image as D } from "antd";
7
+ import N from "../../_virtual/index.js";
8
+ import { useState as F, useCallback as W, useEffect as w } from "react";
9
+ import q from "../../util/NumberUtil.js";
10
+ import z from "../../util/ValidationUtil.js";
11
+ import B from "../common/picker/ImagePicker.js";
12
+ import G from "../../node_modules/uuid/dist/esm-browser/v4.js";
13
+ import H from "../../node_modules/@ant-design/icons/es/icons/EyeOutlined.js";
14
+ class J {
15
+ }
16
+ class te extends J {
17
+ constructor(t = "", s = "") {
18
+ super();
19
+ h(this, "rootPath");
20
+ h(this, "subPath");
21
+ this.rootPath = t, this.subPath = s;
22
+ }
23
+ cloneFilePath(t) {
24
+ const s = N.parse(t), r = `${s.name}_cloned_${q.randInt(1e5)}`;
25
+ return N.format({
26
+ dir: s.dir,
27
+ ext: s.ext,
28
+ name: r
29
+ });
30
+ }
31
+ generateFileName(t) {
32
+ return `${t.split(".")[0]}_${G().replace("-", "")}`;
33
+ }
34
+ }
35
+ function se({
36
+ name: e,
37
+ label: a,
38
+ required: t,
39
+ provider: s,
40
+ onUploading: r,
41
+ aspectRatio: I,
42
+ onRemoved: c,
43
+ fieldClassName: d,
44
+ hideLabel: V = !1,
45
+ listType: C
46
+ }) {
47
+ const i = x.useFormInstance(), u = x.useWatch(e, i), [P, $] = F(!1), p = W(
48
+ async (n, g) => {
49
+ if (g) {
50
+ r == null || r(!0);
51
+ const m = n.name, o = m.split("."), y = o[o.length - 1], b = s.generateFileName(m), k = `${await s.getInitialPath()}/${b}.${y}`, _ = await s.upload(n, k);
52
+ $(!0), r == null || r(!1), i.setFieldValue(e, _);
53
+ } else {
54
+ console.log(n);
55
+ const m = i.getFieldsValue(), o = await s.delete(m[e]);
56
+ c == null || c(), o && i.setFieldsValue({ [e]: null });
57
+ }
58
+ },
59
+ [i, e, c, r, s]
60
+ ), [f, j] = F();
61
+ return w(() => {
62
+ !P && u ? s.getRealUrl(u).then(j) : j(f);
63
+ }, [u, P, s, f]), /* @__PURE__ */ l.jsx(l.Fragment, { children: /* @__PURE__ */ l.jsxs(
64
+ x.Item,
65
+ {
66
+ rules: t ? z.required(a) : [],
67
+ label: V ? null : a,
68
+ required: t,
69
+ name: e,
70
+ children: [
71
+ /* @__PURE__ */ l.jsx(
72
+ B,
73
+ {
74
+ noStyle: !0,
75
+ listType: C,
76
+ aspectRatio: I,
77
+ values: f,
78
+ onRemove: (n) => {
79
+ n && p(n, !1);
80
+ },
81
+ onAdd: async (n) => {
82
+ n && await p(n, !0);
83
+ },
84
+ className: d
85
+ }
86
+ ),
87
+ /* @__PURE__ */ l.jsx(O, { hidden: !0 })
88
+ ]
89
+ }
90
+ ) });
91
+ }
92
+ const ae = ({ provider: e, value: a }) => {
93
+ const [t, s] = F();
94
+ return w(() => {
95
+ a && e.getRealUrl(a).then(s);
96
+ }, [e, a]), t ? /* @__PURE__ */ l.jsx(K, { url: t }) : /* @__PURE__ */ l.jsx(l.Fragment, {});
97
+ }, K = ({ url: e }) => /* @__PURE__ */ l.jsx(S, { className: "p-0", children: /* @__PURE__ */ l.jsx(
98
+ D,
99
+ {
100
+ className: "m-0 p-0 position-relative",
101
+ src: e,
102
+ preview: {
103
+ mask: /* @__PURE__ */ l.jsx(H, {})
104
+ }
105
+ }
106
+ ) });
107
+ export {
108
+ J as FileDownloadProvider,
109
+ te as FileUploadProvider,
110
+ K as ImageCellValue,
111
+ ae as ImageCrudCellValue,
112
+ se as default
113
+ };
@@ -0,0 +1 @@
1
+ "use strict";const t=require("../../../_virtual/jsx-runtime.cjs"),o=require("react"),u=require("../../../locale/hooks/translation-constants.cjs"),i=require("./CrudImportComponent.cjs"),c=require("../../common/button/Button.cjs"),p=require("../../../node_modules/react-i18next/dist/es/useTranslation.cjs"),x=require("../../../node_modules/@ant-design/icons/es/icons/ImportOutlined.cjs");function m(n){const{t:s}=p.useTranslation(u.TRANSLATION_NAMESPACE),[r,e]=o.useState(!1);return t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[t.jsxRuntimeExports.jsx(i,{open:r,onCloseMethod:e,...n}),t.jsxRuntimeExports.jsx(c,{icon:t.jsxRuntimeExports.jsx(x,{}),onClick:()=>e(!0),children:s("str.import")})]})}module.exports=m;
@@ -0,0 +1,31 @@
1
+ import { j as o } from "../../../_virtual/jsx-runtime.js";
2
+ import { useState as e } from "react";
3
+ import { TRANSLATION_NAMESPACE as p } from "../../../locale/hooks/translation-constants.js";
4
+ import s from "./CrudImportComponent.js";
5
+ import i from "../../common/button/Button.js";
6
+ import { useTranslation as f } from "../../../node_modules/react-i18next/dist/es/useTranslation.js";
7
+ import u from "../../../node_modules/@ant-design/icons/es/icons/ImportOutlined.js";
8
+ function I(r) {
9
+ const { t: n } = f(p), [m, t] = e(!1);
10
+ return /* @__PURE__ */ o.jsxs(o.Fragment, { children: [
11
+ /* @__PURE__ */ o.jsx(
12
+ s,
13
+ {
14
+ open: m,
15
+ onCloseMethod: t,
16
+ ...r
17
+ }
18
+ ),
19
+ /* @__PURE__ */ o.jsx(
20
+ i,
21
+ {
22
+ icon: /* @__PURE__ */ o.jsx(u, {}),
23
+ onClick: () => t(!0),
24
+ children: n("str.import")
25
+ }
26
+ )
27
+ ] });
28
+ }
29
+ export {
30
+ I as default
31
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";const s=require("../../../_virtual/jsx-runtime.cjs"),M=require("../../../_virtual/papaparse.min.cjs"),d=require("antd"),B=require("../../../_virtual/FileSaver.min.cjs"),o=require("react"),O=require("../../../locale/hooks/translation-constants.cjs"),V=require("../view/CrudViewer.cjs"),_=require("../../../util/DateUtil.cjs"),L=require("../../common/button/Button.cjs"),W=require("../../common/button/ImportButton.cjs"),z=require("../../../node_modules/react-i18next/dist/es/useTranslation.cjs"),N=require("../../../node_modules/@ant-design/icons/es/icons/WarningTwoTone.cjs"),$=require("../../../node_modules/@ant-design/icons/es/icons/DownloadOutlined.cjs");function U({onCloseMethod:E,open:b,fields:q,importProps:a}){const[u,w]=o.useState([]),[C,h]=o.useState(!1),[T,g]=o.useState(0);o.useEffect(()=>{b||(w([]),h(!1))},[b]);const f=o.useMemo(()=>new Map(q.filter(e=>{var t;return!e.hidden&&!((t=e.importProps)!=null&&t.hidden)&&!e.readonly}).map(e=>[e.name,e])),[q]),v=o.useMemo(()=>Array.from(f.values()).flatMap(e=>{var t;return[e.name,...((t=e.importProps)==null?void 0:t.extraFields)??[]]}),[f]),F=o.useCallback(async function(){const e=`${v.join(",")}
2
+ `,t=new Blob([e],{type:"text/csv;charset=utf-8;"});B.FileSaver_minExports.saveAs(t,(a==null?void 0:a.name)+" - "+_.formatDateTimeWithSecond(new Date).replaceAll(":","-")+".csv")},[v,a==null?void 0:a.name]),{t:l}=z.useTranslation(O.TRANSLATION_NAMESPACE),D=o.useCallback(async e=>{const t=new FileReader;t.onerror=console.error,t.onload=async r=>{var n;const c=(n=r==null?void 0:r.target)==null?void 0:n.result,i=M.parse(c,{header:!0});w(i.data)},t.readAsText(e)},[]),y=o.useMemo(()=>{var t,r,c;let e=!1;for(const i of u)for(const[n,x]of f.entries()){const j=i[n],m=j||!isNaN(j);if(x.required&&!m)if((r=(t=x.importProps)==null?void 0:t.extraFields)!=null&&r.length)for(const R of((c=x.importProps)==null?void 0:c.extraFields)??[])if(i[R]||!isNaN(i[R])){e=!1;break}else return!0;else return!0}return e},[u,f]),p=o.useCallback(e=>(t,r)=>{var i,n,x;const c=t||!isNaN(t);if(e.required&&!c){let j=l("err.validation.required");if((n=(i=e.importProps)==null?void 0:i.extraFields)!=null&&n.length){const m=(x=e.importProps)==null?void 0:x.extraFields;(m==null?void 0:m.find(A=>!r[A]))&&(j="Either one of these fields is required: "+[e.name,...m].join(", "))}return s.jsxRuntimeExports.jsxs(d.Tooltip,{className:"d-flex",title:j,children:[s.jsxRuntimeExports.jsx(N,{twoToneColor:"#ee9702"}),t]})}return t},[l]),S=o.useCallback(async e=>{g(e)},[]),k=o.useCallback(async()=>{try{h(!0),await a.onClickImport(u,S),E(!1)}finally{h(!1),g(0)}},[u,a,E,S]),I=o.useCallback(async()=>{y?d.Modal.warn({title:l("str.warning"),content:l("qus.importWithIssues"),okText:l("str.import"),onOk:k,okCancel:!0,closable:!0}):k()},[y,k,l]);return s.jsxRuntimeExports.jsxs(d.Modal,{title:[l("str.import"),a==null?void 0:a.name].filter(Boolean).join(" "),width:"100%",open:b,onOk:I,destroyOnClose:!0,onCancel:()=>E(!1),okText:l("str.import"),confirmLoading:C,okButtonProps:{disabled:!(u!=null&&u.length)},footer:(e,{OkBtn:t,CancelBtn:r})=>s.jsxRuntimeExports.jsxs(d.Space,{children:[s.jsxRuntimeExports.jsx(r,{}),s.jsxRuntimeExports.jsx(t,{}),y&&s.jsxRuntimeExports.jsx(d.Tooltip,{className:"d-flex",title:"Some fields have issue. Please review before submit.",children:s.jsxRuntimeExports.jsx(N,{twoToneColor:"#ee9702"})})]}),children:[s.jsxRuntimeExports.jsxs(d.Space,{children:[s.jsxRuntimeExports.jsx(L,{onClick:F,icon:s.jsxRuntimeExports.jsx($,{}),children:l("str.downloadCsvTemplate")}),s.jsxRuntimeExports.jsx(W.ImportButton,{disabled:C,type:"default",onClick:D,accept:".csv",children:l("str.importCsvFile")})]}),s.jsxRuntimeExports.jsx(d.Spin,{spinning:C,indicator:T?s.jsxRuntimeExports.jsx(d.Progress,{type:"circle",percent:T*100,size:50,format:e=>`${parseInt(e)}%`}):void 0,children:s.jsxRuntimeExports.jsx(V,{data:u,bordered:!0,size:"small",fields:Array.from(f.values()).flatMap(e=>{var t,r,c,i;return e.type==="text"?[{...e,label:e.name,render:p(e)},...((r=(t=e.importProps)==null?void 0:t.extraFields)==null?void 0:r.map(n=>({...e,name:n,label:n,render:p(e)})))??[]]:e.type==="select"?[{...e,label:e.name,type:"text",render:p(e)},...((i=(c=e.importProps)==null?void 0:c.extraFields)==null?void 0:i.map(n=>({...e,name:n,label:n,type:"text",render:p(e)})))??[]]:[{...e,label:e.name,render:p(e)}]})})})]})}module.exports=U;
@@ -0,0 +1,222 @@
1
+ import { j as t } from "../../../_virtual/jsx-runtime.js";
2
+ import L from "../../../_virtual/papaparse.min.js";
3
+ import { Tooltip as S, Modal as q, Space as B, Spin as _, Progress as $ } from "antd";
4
+ import { F as z } from "../../../_virtual/FileSaver.min.js";
5
+ import { useState as w, useEffect as W, useMemo as v, useCallback as m } from "react";
6
+ import { TRANSLATION_NAMESPACE as U } from "../../../locale/hooks/translation-constants.js";
7
+ import G from "../view/CrudViewer.js";
8
+ import H from "../../../util/DateUtil.js";
9
+ import J from "../../common/button/Button.js";
10
+ import { ImportButton as K } from "../../common/button/ImportButton.js";
11
+ import { useTranslation as Q } from "../../../node_modules/react-i18next/dist/es/useTranslation.js";
12
+ import R from "../../../node_modules/@ant-design/icons/es/icons/WarningTwoTone.js";
13
+ import X from "../../../node_modules/@ant-design/icons/es/icons/DownloadOutlined.js";
14
+ function de({
15
+ onCloseMethod: h,
16
+ open: y,
17
+ fields: A,
18
+ importProps: o
19
+ }) {
20
+ const [c, N] = w([]), [j, b] = w(!1), [T, E] = w(0);
21
+ W(() => {
22
+ y || (N([]), b(!1));
23
+ }, [y]);
24
+ const u = v(
25
+ () => new Map(
26
+ A.filter((e) => {
27
+ var r;
28
+ return !e.hidden && !((r = e.importProps) != null && r.hidden) && !e.readonly;
29
+ }).map((e) => [e.name, e])
30
+ ),
31
+ [A]
32
+ ), F = v(
33
+ () => Array.from(u.values()).flatMap((e) => {
34
+ var r;
35
+ return [
36
+ e.name,
37
+ ...((r = e.importProps) == null ? void 0 : r.extraFields) ?? []
38
+ ];
39
+ }),
40
+ [u]
41
+ ), V = m(
42
+ async function() {
43
+ const e = `${F.join(",")}
44
+ `, r = new Blob([e], { type: "text/csv;charset=utf-8;" });
45
+ z.saveAs(
46
+ r,
47
+ (o == null ? void 0 : o.name) + " - " + H.formatDateTimeWithSecond(/* @__PURE__ */ new Date()).replaceAll(":", "-") + ".csv"
48
+ );
49
+ },
50
+ [F, o == null ? void 0 : o.name]
51
+ ), { t: i } = Q(U), M = m(async (e) => {
52
+ const r = new FileReader();
53
+ r.onerror = console.error, r.onload = async (n) => {
54
+ var s;
55
+ const l = (s = n == null ? void 0 : n.target) == null ? void 0 : s.result, a = L.parse(l, { header: !0 });
56
+ N(a.data);
57
+ }, r.readAsText(e);
58
+ }, []), C = v(() => {
59
+ var r, n, l;
60
+ let e = !1;
61
+ for (const a of c)
62
+ for (const [s, d] of u.entries()) {
63
+ const x = a[s], f = x || !isNaN(x);
64
+ if (d.required && !f)
65
+ if ((n = (r = d.importProps) == null ? void 0 : r.extraFields) != null && n.length)
66
+ for (const g of ((l = d.importProps) == null ? void 0 : l.extraFields) ?? [])
67
+ if (a[g] || !isNaN(a[g])) {
68
+ e = !1;
69
+ break;
70
+ } else return !0;
71
+ else return !0;
72
+ }
73
+ return e;
74
+ }, [c, u]), p = m(
75
+ (e) => (r, n) => {
76
+ var a, s, d;
77
+ const l = r || !isNaN(r);
78
+ if (e.required && !l) {
79
+ let x = i("err.validation.required");
80
+ if ((s = (a = e.importProps) == null ? void 0 : a.extraFields) != null && s.length) {
81
+ const f = (d = e.importProps) == null ? void 0 : d.extraFields;
82
+ (f == null ? void 0 : f.find((D) => !n[D])) && (x = "Either one of these fields is required: " + [e.name, ...f].join(", "));
83
+ }
84
+ return /* @__PURE__ */ t.jsxs(S, { className: "d-flex", title: x, children: [
85
+ /* @__PURE__ */ t.jsx(R, { twoToneColor: "#ee9702" }),
86
+ r
87
+ ] });
88
+ }
89
+ return r;
90
+ },
91
+ [i]
92
+ ), I = m(async (e) => {
93
+ E(e);
94
+ }, []), k = m(async () => {
95
+ try {
96
+ b(!0), await o.onClickImport(c, I), h(!1);
97
+ } finally {
98
+ b(!1), E(0);
99
+ }
100
+ }, [c, o, h, I]), O = m(async () => {
101
+ C ? q.warn({
102
+ title: i("str.warning"),
103
+ content: i("qus.importWithIssues"),
104
+ okText: i("str.import"),
105
+ onOk: k,
106
+ okCancel: !0,
107
+ closable: !0
108
+ }) : k();
109
+ }, [C, k, i]);
110
+ return /* @__PURE__ */ t.jsxs(
111
+ q,
112
+ {
113
+ title: [i("str.import"), o == null ? void 0 : o.name].filter(Boolean).join(" "),
114
+ width: "100%",
115
+ open: y,
116
+ onOk: O,
117
+ destroyOnClose: !0,
118
+ onCancel: () => h(!1),
119
+ okText: i("str.import"),
120
+ confirmLoading: j,
121
+ okButtonProps: {
122
+ disabled: !(c != null && c.length)
123
+ },
124
+ footer: (e, { OkBtn: r, CancelBtn: n }) => /* @__PURE__ */ t.jsxs(B, { children: [
125
+ /* @__PURE__ */ t.jsx(n, {}),
126
+ /* @__PURE__ */ t.jsx(r, {}),
127
+ C && /* @__PURE__ */ t.jsx(
128
+ S,
129
+ {
130
+ className: "d-flex",
131
+ title: "Some fields have issue. Please review before submit.",
132
+ children: /* @__PURE__ */ t.jsx(R, { twoToneColor: "#ee9702" })
133
+ }
134
+ )
135
+ ] }),
136
+ children: [
137
+ /* @__PURE__ */ t.jsxs(B, { children: [
138
+ /* @__PURE__ */ t.jsx(
139
+ J,
140
+ {
141
+ onClick: V,
142
+ icon: /* @__PURE__ */ t.jsx(X, {}),
143
+ children: i("str.downloadCsvTemplate")
144
+ }
145
+ ),
146
+ /* @__PURE__ */ t.jsx(
147
+ K,
148
+ {
149
+ disabled: j,
150
+ type: "default",
151
+ onClick: M,
152
+ accept: ".csv",
153
+ children: i("str.importCsvFile")
154
+ }
155
+ )
156
+ ] }),
157
+ /* @__PURE__ */ t.jsx(
158
+ _,
159
+ {
160
+ spinning: j,
161
+ indicator: T ? /* @__PURE__ */ t.jsx(
162
+ $,
163
+ {
164
+ type: "circle",
165
+ percent: T * 100,
166
+ size: 50,
167
+ format: (e) => `${parseInt(e)}%`
168
+ }
169
+ ) : void 0,
170
+ children: /* @__PURE__ */ t.jsx(
171
+ G,
172
+ {
173
+ data: c,
174
+ bordered: !0,
175
+ size: "small",
176
+ fields: Array.from(u.values()).flatMap((e) => {
177
+ var r, n, l, a;
178
+ return e.type === "text" ? [
179
+ {
180
+ ...e,
181
+ label: e.name,
182
+ render: p(e)
183
+ },
184
+ ...((n = (r = e.importProps) == null ? void 0 : r.extraFields) == null ? void 0 : n.map((s) => ({
185
+ ...e,
186
+ name: s,
187
+ label: s,
188
+ render: p(e)
189
+ }))) ?? []
190
+ ] : e.type === "select" ? [
191
+ {
192
+ ...e,
193
+ label: e.name,
194
+ type: "text",
195
+ render: p(e)
196
+ },
197
+ ...((a = (l = e.importProps) == null ? void 0 : l.extraFields) == null ? void 0 : a.map((s) => ({
198
+ ...e,
199
+ name: s,
200
+ label: s,
201
+ type: "text",
202
+ render: p(e)
203
+ }))) ?? []
204
+ ] : [
205
+ {
206
+ ...e,
207
+ label: e.name,
208
+ render: p(e)
209
+ }
210
+ ];
211
+ })
212
+ }
213
+ )
214
+ }
215
+ )
216
+ ]
217
+ }
218
+ );
219
+ }
220
+ export {
221
+ de as default
222
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("../../../_virtual/jsx-runtime.cjs"),R=require("../../common/description/DescList.cjs"),b=require("react"),g=require("../../../locale/hooks/translation-constants.cjs"),p=require("./CrudViewerUtil.cjs"),q=require("../../../node_modules/react-i18next/dist/es/useTranslation.cjs");function C({className:l,fields:u,data:e,descListColumn:c={xs:1,md:3,sm:2,lg:4},layout:m,action:t,keepEmptyValues:x}){const{t:i}=q.useTranslation(g.TRANSLATION_NAMESPACE),j=b.useMemo(()=>{const o=u.filter(({hidden:r,hideInDescList:s})=>!r&&!s).map((r,s)=>({label:r.label,noFormatting:!0,value:p.getRendererValueCrudViewer(r)(e==null?void 0:e[r.name],e,s)}));return t&&o.push({label:i("str.action"),value:t}),o},[t,e,u,i]);return e?n.jsxRuntimeExports.jsx(R,{keepEmptyValues:x,bordered:!0,column:c,className:l,layout:m,list:j}):n.jsxRuntimeExports.jsx(n.jsxRuntimeExports.Fragment,{})}exports.CrudDecListView=C;
@@ -0,0 +1,42 @@
1
+ import { j as m } from "../../../_virtual/jsx-runtime.js";
2
+ import x from "../../common/description/DescList.js";
3
+ import { useMemo as b } from "react";
4
+ import { TRANSLATION_NAMESPACE as g } from "../../../locale/hooks/translation-constants.js";
5
+ import { getRendererValueCrudViewer as j } from "./CrudViewerUtil.js";
6
+ import { useTranslation as A } from "../../../node_modules/react-i18next/dist/es/useTranslation.js";
7
+ function V({
8
+ className: u,
9
+ fields: s,
10
+ data: r,
11
+ descListColumn: l = { xs: 1, md: 3, sm: 2, lg: 4 },
12
+ layout: f,
13
+ action: o,
14
+ keepEmptyValues: p
15
+ }) {
16
+ const { t: i } = A(g), c = b(() => {
17
+ const n = s.filter(({ hidden: e, hideInDescList: t }) => !e && !t).map((e, t) => ({
18
+ label: e.label,
19
+ noFormatting: !0,
20
+ value: j(e)(
21
+ r == null ? void 0 : r[e.name],
22
+ r,
23
+ t
24
+ )
25
+ }));
26
+ return o && n.push({ label: i("str.action"), value: o }), n;
27
+ }, [o, r, s, i]);
28
+ return r ? /* @__PURE__ */ m.jsx(
29
+ x,
30
+ {
31
+ keepEmptyValues: p,
32
+ bordered: !0,
33
+ column: l,
34
+ className: u,
35
+ layout: f,
36
+ list: c
37
+ }
38
+ ) : /* @__PURE__ */ m.jsx(m.Fragment, {});
39
+ }
40
+ export {
41
+ V as CrudDecListView
42
+ };
@@ -0,0 +1 @@
1
+ "use strict";const t=require("../../../_virtual/jsx-runtime.cjs"),P=require("antd"),k=require("../../common/button/CloneButtonTable.cjs"),H=require("../../common/button/DeleteButtonTable.cjs"),U=require("../../common/button/ExportButton.cjs"),F=require("../../common/button/HideButtonTable.cjs"),tt=require("../../common/button/RefreshButton.cjs"),st=require("../../common/button/UpdateButtonTable.cjs"),rt=require("../../common/button/ViewButtonTable.cjs"),et=require("../../common/layout/VerticalSpace.cjs"),ut=require("../../common/table/table.cjs"),i=require("react"),nt=require("../../../locale/hooks/translation-constants.cjs"),ot=require("../CrudSearchComponent.cjs"),xt=require("./CrudDecListView.cjs"),N=require("./CrudViewerUtil.cjs"),ct=require("../../../node_modules/react-i18next/dist/es/useTranslation.cjs");function jt({idField:e="id",loadingData:O,fields:c,isDeleting:p,isHiding:v,viewable:o=!1,paginateProps:m,onDelete:l,onHide:B,onUpdate:a,data:E=[],extraAction:R,onClickUpdate:x,minusHeight:g,scroll:z,onClickClone:h,className:_,expandable:$,size:w,bordered:A,descListColumn:G,extraView:T,decListLayout:J,scrollToTop:it,onClickRefresh:b,closeViewOnClickUpdate:C,onExport:f,confirmHiding:I,confirmDeleting:V,rowClassName:K,actionWidth:Q=190,...W}){const{t:X}=ct.useTranslation(nt.TRANSLATION_NAMESPACE),M=i.useMemo(()=>c.map(({hideInTable:s,hidden:r,width:j,name:n,label:Z,halign:D,...L})=>({title:Z,width:j,key:n,dataIndex:n,hidden:s||r,align:D??(L.type==="number"?"right":void 0),render:N.getRendererValueCrudViewer(L)})),[c]),[u,q]=i.useState(),[y,S]=i.useState();i.useEffect(()=>{E&&q(s=>{if(s)return E.find(r=>r[e]===s[e])})},[E,e,u]);const d=i.useCallback(s=>{var j;const r=R==null?void 0:R(s);return(Array.isArray(r)?(j=r==null?void 0:r.filter(Boolean))!=null&&j.length:r)||a||x||h||l?t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[r,(a||x)&&t.jsxRuntimeExports.jsx(st,{value:s,onClick:n=>{S(n[e]),x==null||x(s),C&&q(void 0)}}),h&&t.jsxRuntimeExports.jsx(k,{value:s,onClick:n=>h(n)}),f&&t.jsxRuntimeExports.jsx(U.ExportButton,{value:s,onClick:async n=>await f(n)}),B&&t.jsxRuntimeExports.jsx(F,{value:s,disabled:v,shouldConfirm:I,loading:v&&s[e]===y,onClick:async n=>{S(n[e]),await B({[e]:n[e]})}}),l&&t.jsxRuntimeExports.jsx(H,{value:s,disabled:p,shouldConfirm:V,loading:p&&s[e]===y,onClick:async n=>{S(n[e]),await l({[e]:n[e]})}})]}):void 0},[C,V,I,R,e,p,v,h,x,l,f,B,a,y]),Y=i.useMemo(()=>{let s=typeof o=="string"?u==null?void 0:u[o]:void 0;if(typeof s=="object"){const r=c.find(j=>j.name===o);s=N.getRendererValueCrudViewer(r)(s,u,0)}return s},[o,u,c]);return t.jsxRuntimeExports.jsxs("div",{children:[o&&t.jsxRuntimeExports.jsx(P.Modal,{width:"100%",open:!!u,title:Y??t.jsxRuntimeExports.jsx("div",{children:" "}),footer:t.jsxRuntimeExports.jsx(t.jsxRuntimeExports.Fragment,{}),closable:!0,onCancel:()=>q(void 0),children:!!u&&t.jsxRuntimeExports.jsxs("div",{children:[t.jsxRuntimeExports.jsx(xt.CrudDecListView,{layout:J,descListColumn:G,data:u,fields:c,action:d(u)}),T==null?void 0:T(u)]},u==null?void 0:u[e])}),t.jsxRuntimeExports.jsx(ot,{fields:c,...W}),t.jsxRuntimeExports.jsxs(et,{children:[!!b&&t.jsxRuntimeExports.jsx(tt.RefreshButton,{onClick:b}),t.jsxRuntimeExports.jsx(ut,{rowClassName:K,className:_,scroll:z??(g?{y:`calc(100vh - ${g})`}:void 0),id:"crud-table",dataSource:E,loading:O,bordered:A,size:w,expandable:$,pagination:m?{total:m.count,onChange:m.setPage,current:m.page,pageSize:m.pageSize}:void 0,columns:a||x||l||R||o?[...M,{title:X("str.action"),dataIndex:"",fixed:"right",width:Q,render:(s,r)=>t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[o&&t.jsxRuntimeExports.jsx(rt,{value:r,onClick:q}),d(r)]})}]:M})]})]})}module.exports=jt;