@kingteza/crud-component 1.0.6 → 1.0.11

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