@materialui-reactjs/admin 1.0.4

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 (131) hide show
  1. package/README.md +453 -0
  2. package/dist/assets/css/SpinnerLoader.css +1 -0
  3. package/dist/assets/css/form.css +1 -0
  4. package/dist/assets/css/index.css +1 -0
  5. package/dist/assets/css/meta.css +1 -0
  6. package/dist/chunks/Common-C_ZhT4L6.js +217 -0
  7. package/dist/chunks/Env-DRXhvUcb.js +16 -0
  8. package/dist/chunks/HeaderUpdate-lrSYWsKp.js +474 -0
  9. package/dist/chunks/SortableItem-B4-Zsso3.js +31 -0
  10. package/dist/chunks/SpinnerLoader-h8RDIarB.js +21 -0
  11. package/dist/chunks/UDragFile-CAiSfTsp.js +92 -0
  12. package/dist/chunks/Validator-DjZz2bJs.js +203 -0
  13. package/dist/chunks/echarts-CRmndsxC.js +322 -0
  14. package/dist/chunks/form-C8gzkYMW.js +45843 -0
  15. package/dist/chunks/loader-BUiOnhOH.js +1 -0
  16. package/dist/chunks/meta-k8MmuQjS.js +758 -0
  17. package/dist/chunks/sidebar-Dj4Xr9du.js +84 -0
  18. package/dist/chunks/single-DyPwG6ZR.js +1082 -0
  19. package/dist/chunks/top-navbar-FBw88y_o.js +78 -0
  20. package/dist/components/echarts/BarChart.d.ts +11 -0
  21. package/dist/components/echarts/LineChart.d.ts +10 -0
  22. package/dist/components/echarts/MultiBarChart.d.ts +14 -0
  23. package/dist/components/echarts/MultiLineChart.d.ts +14 -0
  24. package/dist/components/echarts/PieChart.d.ts +12 -0
  25. package/dist/components/echarts/index.d.ts +5 -0
  26. package/dist/components/echarts/index.js +2 -0
  27. package/dist/components/form/AdvancedMultiSelect.d.ts +16 -0
  28. package/dist/components/form/AsxhUImages.d.ts +15 -0
  29. package/dist/components/form/BoxAddRow.d.ts +26 -0
  30. package/dist/components/form/CheckTreeBox.d.ts +18 -0
  31. package/dist/components/form/CusForm.d.ts +105 -0
  32. package/dist/components/form/DateInput.d.ts +14 -0
  33. package/dist/components/form/DateTimeInput.d.ts +11 -0
  34. package/dist/components/form/Editor.d.ts +12 -0
  35. package/dist/components/form/EfFile.d.ts +15 -0
  36. package/dist/components/form/EfImage.d.ts +15 -0
  37. package/dist/components/form/EfImages.d.ts +14 -0
  38. package/dist/components/form/PImage.d.ts +15 -0
  39. package/dist/components/form/SelectAddRowBox.d.ts +17 -0
  40. package/dist/components/form/SelectAddRowBoxAdvanced.d.ts +16 -0
  41. package/dist/components/form/SelectBox.d.ts +32 -0
  42. package/dist/components/form/UDragFile.d.ts +13 -0
  43. package/dist/components/form/UFile.d.ts +15 -0
  44. package/dist/components/form/UFiles.d.ts +15 -0
  45. package/dist/components/form/UImages.d.ts +15 -0
  46. package/dist/components/form/index.d.ts +19 -0
  47. package/dist/components/form/index.js +3 -0
  48. package/dist/components/loader/SpinnerLoader.d.ts +8 -0
  49. package/dist/components/loader/index.d.ts +1 -0
  50. package/dist/components/loader/index.js +3 -0
  51. package/dist/components/meta/BtnGroup.d.ts +8 -0
  52. package/dist/components/meta/CardTable.d.ts +37 -0
  53. package/dist/components/meta/CusTooltip.d.ts +7 -0
  54. package/dist/components/meta/ElfinderModal.d.ts +10 -0
  55. package/dist/components/meta/Error403.d.ts +8 -0
  56. package/dist/components/meta/Error404.d.ts +8 -0
  57. package/dist/components/meta/Head.d.ts +1 -0
  58. package/dist/components/meta/HeaderDetail.d.ts +9 -0
  59. package/dist/components/meta/HeaderIndex.d.ts +17 -0
  60. package/dist/components/meta/HeaderUpdate.d.ts +9 -0
  61. package/dist/components/meta/ModalForm.d.ts +18 -0
  62. package/dist/components/meta/Navtabs.d.ts +12 -0
  63. package/dist/components/meta/PDFEmbed.d.ts +11 -0
  64. package/dist/components/meta/Pagination.d.ts +7 -0
  65. package/dist/components/meta/Pdfviewer.d.ts +0 -0
  66. package/dist/components/meta/ScrollTable.d.ts +16 -0
  67. package/dist/components/meta/SearchBox.d.ts +9 -0
  68. package/dist/components/meta/SortableItem.d.ts +1 -0
  69. package/dist/components/meta/index.d.ts +17 -0
  70. package/dist/components/meta/index.js +4 -0
  71. package/dist/components/sidebar/Sidebar.d.ts +3 -0
  72. package/dist/components/sidebar/Sidebar.types.d.ts +25 -0
  73. package/dist/components/sidebar/Sidebar.utils.d.ts +2 -0
  74. package/dist/components/sidebar/SidebarItem.d.ts +10 -0
  75. package/dist/components/sidebar/index.d.ts +2 -0
  76. package/dist/components/sidebar/index.js +2 -0
  77. package/dist/components/single/Detail.d.ts +25 -0
  78. package/dist/components/single/Fields.d.ts +31 -0
  79. package/dist/components/single/Import.d.ts +24 -0
  80. package/dist/components/single/List.d.ts +44 -0
  81. package/dist/components/single/Update.d.ts +33 -0
  82. package/dist/components/single/UpdateDetail.d.ts +7 -0
  83. package/dist/components/single/UpdateTableDetail.d.ts +18 -0
  84. package/dist/components/single/index.d.ts +7 -0
  85. package/dist/components/single/index.js +2 -0
  86. package/dist/components/top-navbar/TopNavbar.d.ts +6 -0
  87. package/dist/components/top-navbar/index.d.ts +1 -0
  88. package/dist/components/top-navbar/index.js +2 -0
  89. package/dist/fontawesome/css/all.css +8 -0
  90. package/dist/fontawesome/css/all.min.css +1 -0
  91. package/dist/fontawesome/webfonts/fa-brands-400.ttf +0 -0
  92. package/dist/fontawesome/webfonts/fa-brands-400.woff2 +0 -0
  93. package/dist/fontawesome/webfonts/fa-duotone-900.ttf +0 -0
  94. package/dist/fontawesome/webfonts/fa-duotone-900.woff2 +0 -0
  95. package/dist/fontawesome/webfonts/fa-light-300.ttf +0 -0
  96. package/dist/fontawesome/webfonts/fa-light-300.woff2 +0 -0
  97. package/dist/fontawesome/webfonts/fa-regular-400.ttf +0 -0
  98. package/dist/fontawesome/webfonts/fa-regular-400.woff2 +0 -0
  99. package/dist/fontawesome/webfonts/fa-sharp-light-300.ttf +0 -0
  100. package/dist/fontawesome/webfonts/fa-sharp-light-300.woff2 +0 -0
  101. package/dist/fontawesome/webfonts/fa-sharp-regular-400.ttf +0 -0
  102. package/dist/fontawesome/webfonts/fa-sharp-regular-400.woff2 +0 -0
  103. package/dist/fontawesome/webfonts/fa-sharp-solid-900.ttf +0 -0
  104. package/dist/fontawesome/webfonts/fa-sharp-solid-900.woff2 +0 -0
  105. package/dist/fontawesome/webfonts/fa-solid-900.ttf +0 -0
  106. package/dist/fontawesome/webfonts/fa-solid-900.woff2 +0 -0
  107. package/dist/fontawesome/webfonts/fa-thin-100.ttf +0 -0
  108. package/dist/fontawesome/webfonts/fa-thin-100.woff2 +0 -0
  109. package/dist/fontawesome/webfonts/fa-v4compatibility.ttf +0 -0
  110. package/dist/fontawesome/webfonts/fa-v4compatibility.woff2 +0 -0
  111. package/dist/hook/detail.d.ts +14 -0
  112. package/dist/hook/detail.js +12 -0
  113. package/dist/hook/fields.d.ts +14 -0
  114. package/dist/hook/fields.js +12 -0
  115. package/dist/hook/import.d.ts +15 -0
  116. package/dist/hook/import.js +0 -0
  117. package/dist/hook/index.d.ts +61 -0
  118. package/dist/hook/index.js +41 -0
  119. package/dist/hook/update.d.ts +24 -0
  120. package/dist/hook/update.js +29 -0
  121. package/dist/index.d.ts +7 -0
  122. package/dist/index.js +11 -0
  123. package/dist/utils/Common.d.ts +136 -0
  124. package/dist/utils/CusRoute.d.ts +7 -0
  125. package/dist/utils/Env.d.ts +2 -0
  126. package/dist/utils/Group.d.ts +1 -0
  127. package/dist/utils/Validator.d.ts +53 -0
  128. package/dist/utils/index.d.ts +5 -0
  129. package/dist/utils/index.js +671 -0
  130. package/package.json +171 -0
  131. package/scripts/postinstall.cjs +80 -0
@@ -0,0 +1,474 @@
1
+ import { i as e, t } from "./Common-C_ZhT4L6.js";
2
+ import { Fragment as n, jsx as r, jsxs as i } from "react/jsx-runtime";
3
+ import { Link as a, NavLink as o } from "react-router-dom";
4
+ import { Tooltip as s } from "@mui/material";
5
+ import { Helmet as c } from "react-helmet-async";
6
+ //#region src/components/meta/CusTooltip.tsx
7
+ function l({ title: e, children: t, placement: n = "bottom", y: i = -10 }) {
8
+ return /* @__PURE__ */ r(s, {
9
+ title: e,
10
+ placement: n,
11
+ slotProps: { popper: { modifiers: [{
12
+ name: "offset",
13
+ options: { offset: [0, i] }
14
+ }] } },
15
+ children: t
16
+ });
17
+ }
18
+ //#endregion
19
+ //#region src/components/meta/Pagination.tsx
20
+ var u = ({ data: e, onChange: t, onClickPage: a }) => {
21
+ let s = Math.ceil(e.recordTotal / e.length), c = (e.page - 1) * e.length, l = e.page - 1, u = e.page + 1, d = l >= 1, f = s > e.page;
22
+ return /* @__PURE__ */ r(n, { children: /* @__PURE__ */ i("div", {
23
+ className: "d-flex justify-content-between align-items-center",
24
+ children: [
25
+ /* @__PURE__ */ i("span", { children: [
26
+ "Đang xem từ ",
27
+ c + 1,
28
+ " đến ",
29
+ c + e.items.length,
30
+ " trong tổng số ",
31
+ e.recordTotal
32
+ ] }),
33
+ /* @__PURE__ */ r("nav", { children: /* @__PURE__ */ i("ul", {
34
+ className: "pagination",
35
+ children: [
36
+ e.page > 2 && /* @__PURE__ */ r("li", {
37
+ className: "page-item",
38
+ children: /* @__PURE__ */ r(o, {
39
+ className: "first page-link",
40
+ to: "#",
41
+ "data-page": 1,
42
+ title: "Trang đầu tiên",
43
+ onClick: a,
44
+ children: /* @__PURE__ */ r("i", { className: "fal fa-fast-backward" })
45
+ })
46
+ }),
47
+ d && /* @__PURE__ */ r("li", {
48
+ className: "page-item",
49
+ children: /* @__PURE__ */ r(o, {
50
+ className: "prev page-link",
51
+ to: "#",
52
+ "data-page": l,
53
+ title: "Trang trước",
54
+ onClick: a,
55
+ children: /* @__PURE__ */ r("i", { className: "fal fa-angle-left" })
56
+ })
57
+ }),
58
+ s > 1 && (() => {
59
+ let t = Math.max(1, e.page - 2), n = Math.min(s, e.page + 2), r = [];
60
+ for (let e = t; e <= n; e++) r.push(e);
61
+ return r;
62
+ })().map((t) => /* @__PURE__ */ r("li", {
63
+ className: `page-item ${e.page === t ? "active" : ""}`,
64
+ children: /* @__PURE__ */ r(o, {
65
+ className: "page-link",
66
+ to: "#",
67
+ "data-page": t,
68
+ onClick: e.page === t ? void 0 : a,
69
+ children: t
70
+ })
71
+ }, t)),
72
+ f && /* @__PURE__ */ r("li", {
73
+ className: "page-item",
74
+ children: /* @__PURE__ */ r(o, {
75
+ className: "next page-link",
76
+ to: "#",
77
+ "data-page": u,
78
+ title: "Trang tiếp theo",
79
+ onClick: a,
80
+ children: /* @__PURE__ */ r("i", { className: "fal fa-angle-right" })
81
+ })
82
+ }),
83
+ e.page < s - 1 && /* @__PURE__ */ r("li", {
84
+ className: "page-item",
85
+ children: /* @__PURE__ */ r(o, {
86
+ className: "first page-link",
87
+ to: "#",
88
+ "data-page": s,
89
+ title: "Trang cuối cùng",
90
+ onClick: a,
91
+ children: /* @__PURE__ */ r("i", { className: "fal fa-fast-forward" })
92
+ })
93
+ })
94
+ ]
95
+ }) }),
96
+ /* @__PURE__ */ i("div", {
97
+ className: "d-flex align-items-center",
98
+ children: [/* @__PURE__ */ r("span", {
99
+ className: "me-2",
100
+ children: "Xem"
101
+ }), /* @__PURE__ */ r("div", {
102
+ className: "form-group pagination-length",
103
+ children: /* @__PURE__ */ i("select", {
104
+ className: "pageLen",
105
+ name: "pageLen",
106
+ defaultValue: e.length,
107
+ onChange: t,
108
+ children: [
109
+ /* @__PURE__ */ r("option", {
110
+ value: "10",
111
+ children: "10"
112
+ }),
113
+ /* @__PURE__ */ r("option", {
114
+ value: "25",
115
+ children: "25"
116
+ }),
117
+ /* @__PURE__ */ r("option", {
118
+ value: "50",
119
+ children: " 50"
120
+ }),
121
+ /* @__PURE__ */ r("option", {
122
+ value: "100",
123
+ children: "100"
124
+ }),
125
+ /* @__PURE__ */ r("option", {
126
+ value: "500",
127
+ children: "500"
128
+ })
129
+ ]
130
+ })
131
+ })]
132
+ })
133
+ ]
134
+ }) });
135
+ }, d = async (e, n) => {
136
+ try {
137
+ let r = `${n}?${new URLSearchParams(e).toString()}`;
138
+ return (await t(r, {}, "GET")).data;
139
+ } catch {
140
+ return {
141
+ items: [],
142
+ page: 1,
143
+ length: 10,
144
+ pageTotal: 0,
145
+ recordTotal: 0
146
+ };
147
+ }
148
+ }, f = async (t, n, r, i) => {
149
+ let a = t.currentTarget, o = Number(a.getAttribute("data-page") ?? 1), s = {
150
+ ...n,
151
+ page: o
152
+ };
153
+ return i(`${r}?${e(s)}`, { replace: !0 }), s;
154
+ }, p = async (t, n, r) => {
155
+ let i = {
156
+ ...t,
157
+ page: 1
158
+ };
159
+ return r(`${n}?${e(i)}`, { replace: !0 }), i;
160
+ }, m = async (e, t) => {
161
+ e.preventDefault();
162
+ let { name: n, value: r } = e.target, i = { ...t };
163
+ return n === "pageLen" ? (i.pageLen = Number(r), i.page = 1) : i[n] = r, i;
164
+ }, h = ({ title: e = "", cUri: t = "", fluid: o = !1, cUriTitle: s = "" }) => /* @__PURE__ */ i(n, { children: [/* @__PURE__ */ r(c, { children: /* @__PURE__ */ r("title", { children: e || "Truy cập không được phép" }) }), /* @__PURE__ */ i("div", {
165
+ className: `${o ? "container-fluid" : "container"}`,
166
+ children: [/* @__PURE__ */ r("div", {
167
+ className: "navbar navbar-main navbar-expand-lg px-0 shadow-none border-radius-xl py-3",
168
+ children: /* @__PURE__ */ r("nav", {
169
+ "aria-label": "breadcrumb",
170
+ children: /* @__PURE__ */ i("ol", {
171
+ className: "breadcrumb bg-transparent m-0 p-0",
172
+ children: [/* @__PURE__ */ r("li", {
173
+ className: "breadcrumb-item",
174
+ children: /* @__PURE__ */ r(a, {
175
+ className: "text-white",
176
+ to: "/",
177
+ children: /* @__PURE__ */ r("i", { className: "fal fa-home" })
178
+ })
179
+ }), /* @__PURE__ */ r("li", {
180
+ className: "breadcrumb-item",
181
+ children: /* @__PURE__ */ r(a, {
182
+ className: "text-white",
183
+ to: t,
184
+ children: s
185
+ })
186
+ })]
187
+ })
188
+ })
189
+ }), /* @__PURE__ */ r("div", {
190
+ style: { minHeight: "50vh" },
191
+ className: "d-flex align-items-center",
192
+ children: /* @__PURE__ */ i("div", {
193
+ className: "m-auto text-center",
194
+ children: [
195
+ /* @__PURE__ */ r("h1", {
196
+ className: "display-1 text-bolder text-white",
197
+ children: "403"
198
+ }),
199
+ /* @__PURE__ */ r("h2", {
200
+ className: "text-white",
201
+ children: "Truy cập không được phép"
202
+ }),
203
+ /* @__PURE__ */ r("p", {
204
+ className: "lead text-white",
205
+ children: "Xin lỗi, bạn không có quyền truy cập vào trang này."
206
+ }),
207
+ /* @__PURE__ */ r(a, {
208
+ to: "/",
209
+ className: "btn btn-outline-white mt-4",
210
+ children: "trang chủ"
211
+ })
212
+ ]
213
+ })
214
+ })]
215
+ })] }), g = ({ title: e = "", cUri: t = "", fluid: o = !1, cUriTitle: s = "" }) => /* @__PURE__ */ i(n, { children: [/* @__PURE__ */ r(c, { children: /* @__PURE__ */ r("title", { children: e || "Không tìm thấy dữ liệu" }) }), /* @__PURE__ */ i("div", {
216
+ className: `${o ? "container-fluid" : "container"}`,
217
+ children: [/* @__PURE__ */ r("div", {
218
+ className: "navbar navbar-main navbar-expand-lg px-0 shadow-none border-radius-xl py-3",
219
+ children: /* @__PURE__ */ r("nav", {
220
+ "aria-label": "breadcrumb",
221
+ children: /* @__PURE__ */ i("ol", {
222
+ className: "breadcrumb bg-transparent m-0 p-0",
223
+ children: [/* @__PURE__ */ r("li", {
224
+ className: "breadcrumb-item",
225
+ children: /* @__PURE__ */ r(a, {
226
+ className: "text-white",
227
+ to: "/",
228
+ children: /* @__PURE__ */ r("i", { className: "fal fa-home" })
229
+ })
230
+ }), /* @__PURE__ */ r("li", {
231
+ className: "breadcrumb-item",
232
+ children: /* @__PURE__ */ r(a, {
233
+ className: "text-white",
234
+ to: t,
235
+ children: s
236
+ })
237
+ })]
238
+ })
239
+ })
240
+ }), /* @__PURE__ */ r("div", {
241
+ style: { minHeight: "50vh" },
242
+ className: "d-flex align-items-center",
243
+ children: /* @__PURE__ */ i("div", {
244
+ className: "m-auto text-center",
245
+ children: [
246
+ /* @__PURE__ */ r("h1", {
247
+ className: "display-1 text-bolder text-white",
248
+ children: "404"
249
+ }),
250
+ /* @__PURE__ */ r("h2", {
251
+ className: "text-white",
252
+ children: "Không tìm thấy dữ liệu"
253
+ }),
254
+ /* @__PURE__ */ r("p", {
255
+ className: "lead text-white",
256
+ children: "Xin lỗi, dữ liệu của bạn không được tìm thấy"
257
+ }),
258
+ /* @__PURE__ */ r(a, {
259
+ to: "/",
260
+ className: "btn btn-outline-white mt-4",
261
+ children: "trang chủ"
262
+ })
263
+ ]
264
+ })
265
+ })]
266
+ })] }), _ = ({ adminUri: e, cUri: t, title: n, isSave: o = !1, titleAction: s = "Chi tiết" }) => /* @__PURE__ */ i("div", {
267
+ className: "navbar navbar-main navbar-expand-lg px-0 shadow-none border-radius-xl py-3",
268
+ children: [/* @__PURE__ */ r("nav", {
269
+ "aria-label": "breadcrumb",
270
+ children: /* @__PURE__ */ i("ol", {
271
+ className: "breadcrumb bg-transparent m-0 p-0",
272
+ children: [
273
+ /* @__PURE__ */ r("li", {
274
+ className: "breadcrumb-item",
275
+ children: /* @__PURE__ */ r(a, {
276
+ className: "text-white",
277
+ to: e,
278
+ children: /* @__PURE__ */ r("i", { className: "fal fa-home" })
279
+ })
280
+ }),
281
+ /* @__PURE__ */ r("li", {
282
+ className: "breadcrumb-item",
283
+ children: /* @__PURE__ */ r(a, {
284
+ className: "text-white",
285
+ to: t,
286
+ children: n
287
+ })
288
+ }),
289
+ /* @__PURE__ */ r("li", {
290
+ className: "breadcrumb-item text-white active",
291
+ "aria-current": "page",
292
+ children: s
293
+ })
294
+ ]
295
+ })
296
+ }), /* @__PURE__ */ i("div", {
297
+ className: "ms-auto",
298
+ children: [o && /* @__PURE__ */ r(l, {
299
+ title: "Lưu lại",
300
+ children: /* @__PURE__ */ r("button", {
301
+ type: "submit",
302
+ className: "btn btn-sm btn-icon btn-success me-1",
303
+ children: /* @__PURE__ */ r("i", {
304
+ className: "material-icons text-white position-relative text-lg",
305
+ children: "save"
306
+ })
307
+ })
308
+ }), /* @__PURE__ */ r(l, {
309
+ title: "Trở lại",
310
+ children: /* @__PURE__ */ r(a, {
311
+ to: t,
312
+ className: "btn btn-sm btn-icon btn-secondary",
313
+ children: /* @__PURE__ */ r("i", {
314
+ className: "material-icons text-white position-relative text-lg",
315
+ children: "reply"
316
+ })
317
+ })
318
+ })]
319
+ })]
320
+ }), v = ({ adminUri: e, cUri: t, title: n, isCre: o = !1, isDel: s = !1, isCpy: c = !1, isImp: u = !1, isExp: d = !1, isField: f = !1, isReply: p = !1, replyUri: m = "#", onDelete: h, onExport: g, onCopy: _ }) => /* @__PURE__ */ i("div", {
321
+ className: "navbar navbar-main navbar-expand-lg px-0 shadow-none border-radius-xl py-3",
322
+ "navbar-scroll": "true",
323
+ children: [/* @__PURE__ */ r("nav", {
324
+ "aria-label": "breadcrumb",
325
+ children: /* @__PURE__ */ i("ol", {
326
+ className: "breadcrumb bg-transparent m-0 p-0",
327
+ children: [/* @__PURE__ */ r("li", {
328
+ className: "breadcrumb-item",
329
+ children: /* @__PURE__ */ r(a, {
330
+ className: "text-white",
331
+ to: e || "/",
332
+ children: /* @__PURE__ */ r("i", { className: "fal fa-home" })
333
+ })
334
+ }), /* @__PURE__ */ r("li", {
335
+ className: "breadcrumb-item text-white active",
336
+ "aria-current": "page",
337
+ children: n
338
+ })]
339
+ })
340
+ }), /* @__PURE__ */ i("div", {
341
+ className: "ms-auto",
342
+ children: [
343
+ o && /* @__PURE__ */ r(l, {
344
+ title: "Tạo mới",
345
+ children: /* @__PURE__ */ r(a, {
346
+ to: t + "/create",
347
+ className: "btn btn-success btn-sm btn-icon ms-1",
348
+ children: /* @__PURE__ */ r("i", {
349
+ className: "material-icons text-white position-relative text-lg",
350
+ children: "add"
351
+ })
352
+ })
353
+ }),
354
+ d && /* @__PURE__ */ r(l, {
355
+ title: "Export Excel",
356
+ children: /* @__PURE__ */ r("button", {
357
+ onClick: g,
358
+ className: "btn btn-warning btn-sm btn-icon ms-1",
359
+ children: /* @__PURE__ */ r("i", { className: "fal fa-download" })
360
+ })
361
+ }),
362
+ u && /* @__PURE__ */ r(l, {
363
+ title: "Import Excel",
364
+ children: /* @__PURE__ */ r(a, {
365
+ to: t + "/import",
366
+ className: "btn btn-info btn-sm btn-icon ms-1",
367
+ children: /* @__PURE__ */ r("i", { className: "fal fa-file-import" })
368
+ })
369
+ }),
370
+ c && /* @__PURE__ */ r(l, {
371
+ title: "Sao chép",
372
+ children: /* @__PURE__ */ r("button", {
373
+ onClick: _,
374
+ type: "button",
375
+ className: "btn btn-purple btn-sm btn-icon ms-1",
376
+ children: /* @__PURE__ */ r("i", {
377
+ className: "material-icons text-white position-relative text-lg",
378
+ children: "copy"
379
+ })
380
+ })
381
+ }),
382
+ s && /* @__PURE__ */ r(l, {
383
+ title: "Xóa",
384
+ children: /* @__PURE__ */ r("button", {
385
+ onClick: h,
386
+ type: "button",
387
+ className: "btn btn-danger btn-sm btn-icon ms-1",
388
+ children: /* @__PURE__ */ r("i", {
389
+ className: "material-icons text-white position-relative text-lg",
390
+ children: "delete"
391
+ })
392
+ })
393
+ }),
394
+ f && /* @__PURE__ */ r(l, {
395
+ title: "Tùy chỉnh trường dữ liệu",
396
+ children: /* @__PURE__ */ r(a, {
397
+ to: t + "/fields",
398
+ className: "btn btn-purple btn-sm btn-icon ms-1",
399
+ children: /* @__PURE__ */ r("i", {
400
+ className: "material-icons text-white position-relative text-lg",
401
+ children: "manage_accounts"
402
+ })
403
+ })
404
+ }),
405
+ p && /* @__PURE__ */ r(l, {
406
+ title: "Trở về",
407
+ children: /* @__PURE__ */ r(a, {
408
+ to: m,
409
+ className: "btn btn-secondary btn-sm btn-icon ms-1",
410
+ children: /* @__PURE__ */ r("i", {
411
+ className: "material-icons text-white position-relative text-lg",
412
+ children: "reply"
413
+ })
414
+ })
415
+ })
416
+ ]
417
+ })]
418
+ }), y = ({ adminUri: e, cUri: t, title: n, itemId: o, isSave: s = !0, titleAction: c }) => /* @__PURE__ */ i("div", {
419
+ className: "navbar navbar-main navbar-expand-lg px-0 shadow-none border-radius-xl py-3",
420
+ children: [/* @__PURE__ */ r("nav", {
421
+ "aria-label": "breadcrumb",
422
+ children: /* @__PURE__ */ i("ol", {
423
+ className: "breadcrumb bg-transparent m-0 p-0",
424
+ children: [
425
+ /* @__PURE__ */ r("li", {
426
+ className: "breadcrumb-item",
427
+ children: /* @__PURE__ */ r(a, {
428
+ className: "text-white",
429
+ to: e || "/",
430
+ children: /* @__PURE__ */ r("i", { className: "fal fa-home" })
431
+ })
432
+ }),
433
+ /* @__PURE__ */ r("li", {
434
+ className: "breadcrumb-item",
435
+ children: /* @__PURE__ */ r(a, {
436
+ className: "text-white",
437
+ to: t,
438
+ children: n
439
+ })
440
+ }),
441
+ /* @__PURE__ */ r("li", {
442
+ className: "breadcrumb-item text-white active",
443
+ "aria-current": "page",
444
+ children: c ?? (o ? "Chỉnh sửa" : "Thêm mới")
445
+ })
446
+ ]
447
+ })
448
+ }), /* @__PURE__ */ i("div", {
449
+ className: "ms-auto",
450
+ children: [s && /* @__PURE__ */ r(l, {
451
+ title: "Lưu lại",
452
+ children: /* @__PURE__ */ r("button", {
453
+ type: "submit",
454
+ className: "btn btn-sm btn-icon btn-success me-1",
455
+ children: /* @__PURE__ */ r("i", {
456
+ className: "material-icons text-white position-relative text-lg",
457
+ children: "save"
458
+ })
459
+ })
460
+ }), /* @__PURE__ */ r(l, {
461
+ title: "Trở lại",
462
+ children: /* @__PURE__ */ r(a, {
463
+ to: t,
464
+ className: "btn btn-sm btn-icon btn-secondary",
465
+ children: /* @__PURE__ */ r("i", {
466
+ className: "material-icons text-white position-relative text-lg",
467
+ children: "reply"
468
+ })
469
+ })
470
+ })]
471
+ })]
472
+ });
473
+ //#endregion
474
+ export { h as a, f as c, l as d, g as i, p as l, v as n, d as o, _ as r, m as s, y as t, u };
@@ -0,0 +1,31 @@
1
+ import { jsx as e, jsxs as t } from "react/jsx-runtime";
2
+ import { CSS as n } from "@dnd-kit/utilities";
3
+ import { useSortable as r } from "@dnd-kit/sortable";
4
+ //#region src/components/meta/SortableItem.tsx
5
+ function i({ id: i, className: a, iconSize: o = "24px", iconStyle: s = {
6
+ cursor: "move",
7
+ right: "5px",
8
+ top: "5px"
9
+ }, children: c }) {
10
+ let { attributes: l, listeners: u, setNodeRef: d, transform: f, transition: p } = r({ id: i }), m = {
11
+ transform: n.Transform.toString(f),
12
+ transition: p
13
+ };
14
+ return /* @__PURE__ */ t("div", {
15
+ ref: d,
16
+ style: m,
17
+ className: a,
18
+ children: [/* @__PURE__ */ e("div", {
19
+ ...l,
20
+ ...u,
21
+ style: s,
22
+ className: "position-absolute",
23
+ children: /* @__PURE__ */ e("i", {
24
+ className: "fal fa-arrows-up-down-left-right",
25
+ style: { fontSize: o }
26
+ })
27
+ }), c]
28
+ });
29
+ }
30
+ //#endregion
31
+ export { i as t };
@@ -0,0 +1,21 @@
1
+ import { Fragment as e, jsx as t, jsxs as n } from "react/jsx-runtime";
2
+ //#region src/components/loader/SpinnerLoader.tsx
3
+ var r = ({ children: r, loading: i, style: a }) => /* @__PURE__ */ n(e, { children: [i === !0 && /* @__PURE__ */ t("div", {
4
+ className: "boxSpinner rounded",
5
+ "aria-hidden": "true",
6
+ style: a,
7
+ children: /* @__PURE__ */ n("div", {
8
+ className: "spinner",
9
+ children: [
10
+ /* @__PURE__ */ t("div", { className: "rect1" }),
11
+ /* @__PURE__ */ t("div", { className: "rect2" }),
12
+ /* @__PURE__ */ t("div", { className: "rect3" }),
13
+ /* @__PURE__ */ t("div", { className: "rect4" }),
14
+ /* @__PURE__ */ t("div", { className: "rect5" }),
15
+ /* @__PURE__ */ t("div", { className: "rect6" }),
16
+ /* @__PURE__ */ t("div", { className: "rect7" })
17
+ ]
18
+ })
19
+ }), i === !1 && r] });
20
+ //#endregion
21
+ export { r as t };
@@ -0,0 +1,92 @@
1
+ import { n as e } from "./Common-C_ZhT4L6.js";
2
+ import { useRef as t, useState as n } from "react";
3
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
4
+ //#region src/components/form/UDragFile.tsx
5
+ var a = ({ label: a, name: o, cpnClass: s = "", required: c = !1, onChange: l, ext: u = ".xlsx, .xls, .docx, .doc, .pdf" }) => {
6
+ let d = t(null), [f, p] = n(null), [m, h] = n(!1), g = async (t) => {
7
+ t.preventDefault();
8
+ let n = d.current?.querySelector(".default-file-input"), r = n?.files;
9
+ if (!r) return;
10
+ let i = /\.(pdf|docx|doc|xlsx|xls)$/i, a = n.getAttribute("accept"), o = a ? RegExp(".(" + a.replace(/[., ]/g, (e) => e === "," ? "|" : "") + ")$", "i") : i;
11
+ e(r, 10, o).then(() => {
12
+ p(r[0]), l(t);
13
+ });
14
+ }, _ = async (e) => {
15
+ e.preventDefault(), e.stopPropagation(), e.type === "dragenter" || e.type === "dragover" ? h(!0) : e.type === "dragleave" && h(!1);
16
+ };
17
+ return /* @__PURE__ */ r("div", {
18
+ className: s,
19
+ children: /* @__PURE__ */ i("div", {
20
+ ref: d,
21
+ className: "upload-files-container mb-3",
22
+ children: [/* @__PURE__ */ i("label", {
23
+ className: "drag-file-area mb-2",
24
+ onDragEnter: _,
25
+ onDragOver: _,
26
+ onDragLeave: _,
27
+ onDrop: async (t) => {
28
+ t.preventDefault(), t.stopPropagation();
29
+ let n = t.dataTransfer.files;
30
+ if (!n) return;
31
+ let r = d.current?.querySelector(".default-file-input"), i = /\.(pdf|docx|doc|xlsx|xls)$/i, a = r?.getAttribute("accept"), s = a ? RegExp(".(" + a.replace(/[., ]/g, (e) => e === "," ? "|" : "") + ")$", "i") : i;
32
+ e(n, 10, s).then(() => {
33
+ p(n[0]), l({
34
+ target: {
35
+ type: "file",
36
+ name: o,
37
+ files: n,
38
+ value: ""
39
+ },
40
+ preventDefault: () => {}
41
+ }), h(!1);
42
+ });
43
+ },
44
+ "aria-label": a,
45
+ htmlFor: "importFile1",
46
+ children: [
47
+ /* @__PURE__ */ r("span", {
48
+ className: "upload-icon",
49
+ children: /* @__PURE__ */ r("i", { className: "fas fa-upload" })
50
+ }),
51
+ /* @__PURE__ */ i("h3", {
52
+ className: "dynamic-message",
53
+ children: [m ? "Thả tập tin vào đây" : "Chọn tập tin (" + u + ")", " "]
54
+ }),
55
+ /* @__PURE__ */ r("span", {
56
+ className: "label",
57
+ children: m ? "" : "hoặc kéo thả"
58
+ }),
59
+ /* @__PURE__ */ r("span", {
60
+ className: "browse-files d-none",
61
+ children: /* @__PURE__ */ r("input", {
62
+ id: "importFile1",
63
+ onChange: g,
64
+ type: "file",
65
+ required: c,
66
+ name: o,
67
+ className: "default-file-input",
68
+ accept: u
69
+ })
70
+ })
71
+ ]
72
+ }), /* @__PURE__ */ r("div", {
73
+ className: "file-block",
74
+ children: f && /* @__PURE__ */ r("div", {
75
+ className: "inputClone",
76
+ children: /* @__PURE__ */ i("div", {
77
+ className: "file-info",
78
+ children: [/* @__PURE__ */ r("span", {
79
+ className: "file-name me-2",
80
+ children: f.name
81
+ }), /* @__PURE__ */ i("div", { children: ["|", /* @__PURE__ */ r("span", {
82
+ className: "ms-2 file-size",
83
+ children: (f.size / 1024).toFixed(1) + " KB"
84
+ })] })]
85
+ })
86
+ })
87
+ })]
88
+ })
89
+ });
90
+ };
91
+ //#endregion
92
+ export { a as t };