@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.
- package/README.md +453 -0
- package/dist/assets/css/SpinnerLoader.css +1 -0
- package/dist/assets/css/form.css +1 -0
- package/dist/assets/css/index.css +1 -0
- package/dist/assets/css/meta.css +1 -0
- package/dist/chunks/Common-C_ZhT4L6.js +217 -0
- package/dist/chunks/Env-DRXhvUcb.js +16 -0
- package/dist/chunks/HeaderUpdate-lrSYWsKp.js +474 -0
- package/dist/chunks/SortableItem-B4-Zsso3.js +31 -0
- package/dist/chunks/SpinnerLoader-h8RDIarB.js +21 -0
- package/dist/chunks/UDragFile-CAiSfTsp.js +92 -0
- package/dist/chunks/Validator-DjZz2bJs.js +203 -0
- package/dist/chunks/echarts-CRmndsxC.js +322 -0
- package/dist/chunks/form-C8gzkYMW.js +45843 -0
- package/dist/chunks/loader-BUiOnhOH.js +1 -0
- package/dist/chunks/meta-k8MmuQjS.js +758 -0
- package/dist/chunks/sidebar-Dj4Xr9du.js +84 -0
- package/dist/chunks/single-DyPwG6ZR.js +1082 -0
- package/dist/chunks/top-navbar-FBw88y_o.js +78 -0
- package/dist/components/echarts/BarChart.d.ts +11 -0
- package/dist/components/echarts/LineChart.d.ts +10 -0
- package/dist/components/echarts/MultiBarChart.d.ts +14 -0
- package/dist/components/echarts/MultiLineChart.d.ts +14 -0
- package/dist/components/echarts/PieChart.d.ts +12 -0
- package/dist/components/echarts/index.d.ts +5 -0
- package/dist/components/echarts/index.js +2 -0
- package/dist/components/form/AdvancedMultiSelect.d.ts +16 -0
- package/dist/components/form/AsxhUImages.d.ts +15 -0
- package/dist/components/form/BoxAddRow.d.ts +26 -0
- package/dist/components/form/CheckTreeBox.d.ts +18 -0
- package/dist/components/form/CusForm.d.ts +105 -0
- package/dist/components/form/DateInput.d.ts +14 -0
- package/dist/components/form/DateTimeInput.d.ts +11 -0
- package/dist/components/form/Editor.d.ts +12 -0
- package/dist/components/form/EfFile.d.ts +15 -0
- package/dist/components/form/EfImage.d.ts +15 -0
- package/dist/components/form/EfImages.d.ts +14 -0
- package/dist/components/form/PImage.d.ts +15 -0
- package/dist/components/form/SelectAddRowBox.d.ts +17 -0
- package/dist/components/form/SelectAddRowBoxAdvanced.d.ts +16 -0
- package/dist/components/form/SelectBox.d.ts +32 -0
- package/dist/components/form/UDragFile.d.ts +13 -0
- package/dist/components/form/UFile.d.ts +15 -0
- package/dist/components/form/UFiles.d.ts +15 -0
- package/dist/components/form/UImages.d.ts +15 -0
- package/dist/components/form/index.d.ts +19 -0
- package/dist/components/form/index.js +3 -0
- package/dist/components/loader/SpinnerLoader.d.ts +8 -0
- package/dist/components/loader/index.d.ts +1 -0
- package/dist/components/loader/index.js +3 -0
- package/dist/components/meta/BtnGroup.d.ts +8 -0
- package/dist/components/meta/CardTable.d.ts +37 -0
- package/dist/components/meta/CusTooltip.d.ts +7 -0
- package/dist/components/meta/ElfinderModal.d.ts +10 -0
- package/dist/components/meta/Error403.d.ts +8 -0
- package/dist/components/meta/Error404.d.ts +8 -0
- package/dist/components/meta/Head.d.ts +1 -0
- package/dist/components/meta/HeaderDetail.d.ts +9 -0
- package/dist/components/meta/HeaderIndex.d.ts +17 -0
- package/dist/components/meta/HeaderUpdate.d.ts +9 -0
- package/dist/components/meta/ModalForm.d.ts +18 -0
- package/dist/components/meta/Navtabs.d.ts +12 -0
- package/dist/components/meta/PDFEmbed.d.ts +11 -0
- package/dist/components/meta/Pagination.d.ts +7 -0
- package/dist/components/meta/Pdfviewer.d.ts +0 -0
- package/dist/components/meta/ScrollTable.d.ts +16 -0
- package/dist/components/meta/SearchBox.d.ts +9 -0
- package/dist/components/meta/SortableItem.d.ts +1 -0
- package/dist/components/meta/index.d.ts +17 -0
- package/dist/components/meta/index.js +4 -0
- package/dist/components/sidebar/Sidebar.d.ts +3 -0
- package/dist/components/sidebar/Sidebar.types.d.ts +25 -0
- package/dist/components/sidebar/Sidebar.utils.d.ts +2 -0
- package/dist/components/sidebar/SidebarItem.d.ts +10 -0
- package/dist/components/sidebar/index.d.ts +2 -0
- package/dist/components/sidebar/index.js +2 -0
- package/dist/components/single/Detail.d.ts +25 -0
- package/dist/components/single/Fields.d.ts +31 -0
- package/dist/components/single/Import.d.ts +24 -0
- package/dist/components/single/List.d.ts +44 -0
- package/dist/components/single/Update.d.ts +33 -0
- package/dist/components/single/UpdateDetail.d.ts +7 -0
- package/dist/components/single/UpdateTableDetail.d.ts +18 -0
- package/dist/components/single/index.d.ts +7 -0
- package/dist/components/single/index.js +2 -0
- package/dist/components/top-navbar/TopNavbar.d.ts +6 -0
- package/dist/components/top-navbar/index.d.ts +1 -0
- package/dist/components/top-navbar/index.js +2 -0
- package/dist/fontawesome/css/all.css +8 -0
- package/dist/fontawesome/css/all.min.css +1 -0
- package/dist/fontawesome/webfonts/fa-brands-400.ttf +0 -0
- package/dist/fontawesome/webfonts/fa-brands-400.woff2 +0 -0
- package/dist/fontawesome/webfonts/fa-duotone-900.ttf +0 -0
- package/dist/fontawesome/webfonts/fa-duotone-900.woff2 +0 -0
- package/dist/fontawesome/webfonts/fa-light-300.ttf +0 -0
- package/dist/fontawesome/webfonts/fa-light-300.woff2 +0 -0
- package/dist/fontawesome/webfonts/fa-regular-400.ttf +0 -0
- package/dist/fontawesome/webfonts/fa-regular-400.woff2 +0 -0
- package/dist/fontawesome/webfonts/fa-sharp-light-300.ttf +0 -0
- package/dist/fontawesome/webfonts/fa-sharp-light-300.woff2 +0 -0
- package/dist/fontawesome/webfonts/fa-sharp-regular-400.ttf +0 -0
- package/dist/fontawesome/webfonts/fa-sharp-regular-400.woff2 +0 -0
- package/dist/fontawesome/webfonts/fa-sharp-solid-900.ttf +0 -0
- package/dist/fontawesome/webfonts/fa-sharp-solid-900.woff2 +0 -0
- package/dist/fontawesome/webfonts/fa-solid-900.ttf +0 -0
- package/dist/fontawesome/webfonts/fa-solid-900.woff2 +0 -0
- package/dist/fontawesome/webfonts/fa-thin-100.ttf +0 -0
- package/dist/fontawesome/webfonts/fa-thin-100.woff2 +0 -0
- package/dist/fontawesome/webfonts/fa-v4compatibility.ttf +0 -0
- package/dist/fontawesome/webfonts/fa-v4compatibility.woff2 +0 -0
- package/dist/hook/detail.d.ts +14 -0
- package/dist/hook/detail.js +12 -0
- package/dist/hook/fields.d.ts +14 -0
- package/dist/hook/fields.js +12 -0
- package/dist/hook/import.d.ts +15 -0
- package/dist/hook/import.js +0 -0
- package/dist/hook/index.d.ts +61 -0
- package/dist/hook/index.js +41 -0
- package/dist/hook/update.d.ts +24 -0
- package/dist/hook/update.js +29 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +11 -0
- package/dist/utils/Common.d.ts +136 -0
- package/dist/utils/CusRoute.d.ts +7 -0
- package/dist/utils/Env.d.ts +2 -0
- package/dist/utils/Group.d.ts +1 -0
- package/dist/utils/Validator.d.ts +53 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.js +671 -0
- package/package.json +171 -0
- package/scripts/postinstall.cjs +80 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.scroll-table-group{margin:0 auto 10px;position:relative}.table-container{scroll-behavior:smooth;background:#fff;border:1px solid #ddd;border-radius:6px;position:relative;overflow-x:auto}.fade-overlay{z-index:20;pointer-events:none;opacity:0;width:50px;transition:opacity .4s,transform .5s;position:absolute;top:0;bottom:0;transform:translate(0)}.fade-left{background:linear-gradient(90deg,#00000073,#0000);left:0}.fade-right{background:linear-gradient(270deg,#00000073,#0000);right:0}.fade-visible{opacity:1;transform:translate(0)}.fade-left.fade-hidden{opacity:0;transform:translate(-8px)}.fade-right.fade-hidden{opacity:0;transform:translate(8px)}.scroll-btn{color:#fff;cursor:pointer;z-index:30;opacity:0;background-color:#000000b3;border:none;border-radius:50%;width:36px;height:36px;transition:opacity .3s;position:absolute;top:50%;transform:translateY(-50%)}.scroll-table-group:hover .scroll-btn{opacity:1}.scroll-btn:hover{background-color:#000000d9}.scroll-btn i{font-size:14px}.custom-table{border-collapse:collapse;width:100%}.custom-th,.custom-td{background:#fff;border:1px solid #ddd;padding:8px 12px}.custom-tr:nth-child(2n){background:#f9f9f9}.sticky-col{z-index:10;background:#fff;border:none;outline:thin solid #ddd;position:sticky}thead .sticky-col{top:0}.table-container::-webkit-scrollbar{height:8px}.table-container::-webkit-scrollbar-thumb{background:#bbb;border-radius:4px}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { n as e } from "./Env-DRXhvUcb.js";
|
|
2
|
+
import t from "sweetalert2";
|
|
3
|
+
import n from "sweetalert2-react-content";
|
|
4
|
+
import { Modal as r } from "bootstrap";
|
|
5
|
+
import "date-fns";
|
|
6
|
+
import "decimal.js";
|
|
7
|
+
//#region src/utils/Common.ts
|
|
8
|
+
var { SECRET_KEY: i, STATIC_URL: a, API_URL: o, UPLOADS_URL: s } = await e(), c = (e, t = !0) => {
|
|
9
|
+
let n = typeof e == "string" ? document.querySelector(e) : e;
|
|
10
|
+
if (n) {
|
|
11
|
+
if (t) n.querySelector(".boxSpinner") || n.insertAdjacentHTML("afterbegin", "<div class=\"boxSpinner rounded\">\n <div class=\"spinner\">\n <div class=\"rect1\"></div>\n <div class=\"rect2\"></div>\n <div class=\"rect3\"></div>\n <div class=\"rect4\"></div>\n <div class=\"rect5\"></div>\n <div class=\"rect6\"></div>\n <div class=\"rect7\"></div>\n </div>\n </div>");
|
|
12
|
+
else {
|
|
13
|
+
let e = n.querySelector(".boxSpinner");
|
|
14
|
+
e && e.remove();
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}, l = (e) => {
|
|
18
|
+
let t = new FormData();
|
|
19
|
+
return Object.entries(e).forEach(([e, n]) => {
|
|
20
|
+
if (n != null) {
|
|
21
|
+
if (n instanceof FileList) {
|
|
22
|
+
Array.from(n).forEach((n) => t.append(e, n));
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if (n instanceof File) {
|
|
26
|
+
t.append(e, n);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
if (Array.isArray(n) && n.every((e) => e instanceof File)) {
|
|
30
|
+
n.forEach((n) => t.append(e, n));
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
if (Array.isArray(n) && n.every((e) => [
|
|
34
|
+
"string",
|
|
35
|
+
"number",
|
|
36
|
+
"boolean"
|
|
37
|
+
].includes(typeof e))) {
|
|
38
|
+
n.forEach((n) => t.append(e, n.toString()));
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (typeof n == "object") {
|
|
42
|
+
t.append(e, JSON.stringify(n));
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
t.append(e, n);
|
|
46
|
+
}
|
|
47
|
+
}), t;
|
|
48
|
+
}, u = async (e, t = {}, n = "POST", r = "application/json", a = !0) => {
|
|
49
|
+
let o = { "Secret-Key": i };
|
|
50
|
+
r !== "multipart/form-data" && (o["Content-Type"] = r);
|
|
51
|
+
let s = {
|
|
52
|
+
method: n,
|
|
53
|
+
headers: o,
|
|
54
|
+
credentials: "include"
|
|
55
|
+
};
|
|
56
|
+
if (n == "POST" && (s.body = r === "multipart/form-data" ? l(t) : JSON.stringify(t)), n === "GET" && Object.keys(t).length > 0) {
|
|
57
|
+
let n = new URLSearchParams();
|
|
58
|
+
Object.entries(t).forEach(([e, t]) => {
|
|
59
|
+
Array.isArray(t) ? t.forEach((t) => n.append(e, String(t))) : n.append(e, String(t));
|
|
60
|
+
});
|
|
61
|
+
let r = n.toString();
|
|
62
|
+
e += (e.includes("?") ? "&" : "?") + r;
|
|
63
|
+
}
|
|
64
|
+
let c = await (await fetch(e, s)).text(), u = null;
|
|
65
|
+
if (c) try {
|
|
66
|
+
u = JSON.parse(c);
|
|
67
|
+
} catch {
|
|
68
|
+
u = c;
|
|
69
|
+
}
|
|
70
|
+
if (u?.status == 200) return u;
|
|
71
|
+
if (u?.msg && a) throw Error(u.msg);
|
|
72
|
+
if (a) throw Error("invalid_response");
|
|
73
|
+
return !1;
|
|
74
|
+
}, d = (e = "Bạn có chắc muốn thực hiện thao tác này ?", r = "Đồng ý") => n(t).fire({
|
|
75
|
+
title: "Xác nhận",
|
|
76
|
+
text: e,
|
|
77
|
+
icon: "warning",
|
|
78
|
+
showCancelButton: !0,
|
|
79
|
+
confirmButtonColor: "#4CAF50",
|
|
80
|
+
cancelButtonColor: "#F44336",
|
|
81
|
+
confirmButtonText: r,
|
|
82
|
+
cancelButtonText: "Hủy",
|
|
83
|
+
position: "top"
|
|
84
|
+
}), f = (e, r = "top", i = !1) => {
|
|
85
|
+
n(t).fire({
|
|
86
|
+
toast: i,
|
|
87
|
+
icon: "success",
|
|
88
|
+
position: r,
|
|
89
|
+
title: e,
|
|
90
|
+
showConfirmButton: !1,
|
|
91
|
+
timer: 1500
|
|
92
|
+
});
|
|
93
|
+
}, p = (e) => {
|
|
94
|
+
n(t).fire({
|
|
95
|
+
icon: "error",
|
|
96
|
+
position: "top",
|
|
97
|
+
title: e,
|
|
98
|
+
showConfirmButton: !1
|
|
99
|
+
});
|
|
100
|
+
}, m = (e) => {
|
|
101
|
+
if (!e) return "";
|
|
102
|
+
let t = new Date(e);
|
|
103
|
+
return isNaN(t.getTime()) ? "Invalid Date" : `${String(t.getDate()).padStart(2, "0")}/${String(t.getMonth() + 1).padStart(2, "0")}/${t.getFullYear()}`;
|
|
104
|
+
}, h = (e) => {
|
|
105
|
+
let t = new URLSearchParams();
|
|
106
|
+
return Object.entries(e).forEach(([e, n]) => {
|
|
107
|
+
Array.isArray(n) ? n.forEach((n) => {
|
|
108
|
+
n != null && t.append(e, String(n));
|
|
109
|
+
}) : n != null && t.set(e, String(n));
|
|
110
|
+
}), t.toString();
|
|
111
|
+
}, g = () => {
|
|
112
|
+
let e = window.location.pathname.match(/\/(\d+)(\/)?$/);
|
|
113
|
+
return e ? Number(e[1]) : null;
|
|
114
|
+
}, _ = (e, t = "/styles/default.jpg") => e ? a + ("/" + e).replaceAll("//", "/") : t, v = (e) => e ? a + ("/" + e).replaceAll("//", "/") : "", y = (e, t = "/styles/default.jpg") => e ? o + ("/" + e).replaceAll("//", "/") : t, b = (e, t = "/styles/default.jpg") => e ? s + "/" + e : t;
|
|
115
|
+
function x(e) {
|
|
116
|
+
let t = "";
|
|
117
|
+
for (let n = 0; n < e; n++) {
|
|
118
|
+
let e = Math.floor(Math.random() * 62);
|
|
119
|
+
t += "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"[e];
|
|
120
|
+
}
|
|
121
|
+
return t;
|
|
122
|
+
}
|
|
123
|
+
var S = (e, t = 20, n = !1) => new Promise((r) => {
|
|
124
|
+
for (let r = 0; r < e.length; r++) if (e[r] !== void 0) {
|
|
125
|
+
if (n.test(e[r].name)) {
|
|
126
|
+
if (e[r].size >= t * 1024 * 1024) return p(`Tập tin tải lên không quá ${t}M`), !1;
|
|
127
|
+
} else return p("Tập tin không hợp lệ"), !1;
|
|
128
|
+
} else return p("Tập tin không tồn tại"), !1;
|
|
129
|
+
r(void 0);
|
|
130
|
+
}), C = (e = "", t = "danger") => {
|
|
131
|
+
let n = "";
|
|
132
|
+
if (typeof e == "string") return e.trim() === "" ? "" : `<div class="alert alert-${t}">${e}</div>`;
|
|
133
|
+
for (let r in e) n += `<div class="alert alert-${t}">${e[r]}</div>`;
|
|
134
|
+
return n;
|
|
135
|
+
}, w = (e, t = {}) => new Promise((n, r) => {
|
|
136
|
+
try {
|
|
137
|
+
let r = window.jQuery, i = r(e);
|
|
138
|
+
if (!i.length) throw Error("invalid_elfinder");
|
|
139
|
+
let a = {
|
|
140
|
+
url: o + "/elfinder/connector",
|
|
141
|
+
height: 500,
|
|
142
|
+
resizable: !0,
|
|
143
|
+
baseUrl: "/assets/plugins/elFinder/",
|
|
144
|
+
defaultView: "list",
|
|
145
|
+
useBrowserHistory: !1,
|
|
146
|
+
getFileCallback: (e) => {
|
|
147
|
+
n(e);
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
i.elfinder("destroy").elfinder({
|
|
151
|
+
...a,
|
|
152
|
+
...t
|
|
153
|
+
});
|
|
154
|
+
} catch (e) {
|
|
155
|
+
r(e);
|
|
156
|
+
}
|
|
157
|
+
}), T = (e) => new Promise((t, n) => {
|
|
158
|
+
try {
|
|
159
|
+
let n = typeof e == "string" ? document.querySelector(e) : e;
|
|
160
|
+
if (!n) throw Error("invalid_modalEl_btnEl");
|
|
161
|
+
n.querySelectorAll(".btn-md-close")?.forEach((e) => {
|
|
162
|
+
e?.addEventListener("click", () => {
|
|
163
|
+
i.hide();
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
let i = r.getOrCreateInstance(n, {
|
|
167
|
+
backdrop: "static",
|
|
168
|
+
keyboard: !1
|
|
169
|
+
});
|
|
170
|
+
t({
|
|
171
|
+
md: i,
|
|
172
|
+
modalEl: n
|
|
173
|
+
});
|
|
174
|
+
} catch (e) {
|
|
175
|
+
console.log(e), n(e);
|
|
176
|
+
}
|
|
177
|
+
}), E = (e, t, n = !1, r = !1) => {
|
|
178
|
+
if (!e) throw Error("invalid_btnEl");
|
|
179
|
+
e.addEventListener("click", (i) => {
|
|
180
|
+
i.preventDefault(), T(t).then((t) => {
|
|
181
|
+
let { modalEl: i, md: a } = t;
|
|
182
|
+
w("#elfinderStatic").then((t) => {
|
|
183
|
+
n && n({
|
|
184
|
+
data: t,
|
|
185
|
+
btnEl: e,
|
|
186
|
+
md: a
|
|
187
|
+
});
|
|
188
|
+
}), i.addEventListener("hidden.bs.modal", () => {
|
|
189
|
+
r && r();
|
|
190
|
+
}), a.show();
|
|
191
|
+
});
|
|
192
|
+
});
|
|
193
|
+
}, D = (e, t, n = !1, r = !1) => {
|
|
194
|
+
if (!e) throw Error("invalid_btnEl");
|
|
195
|
+
e.addEventListener("click", (i) => {
|
|
196
|
+
i.preventDefault(), T(t).then((t) => {
|
|
197
|
+
let { modalEl: i, md: a } = t;
|
|
198
|
+
w("#elfinderStatic", { url: o + "/elfinder/connectorFiles" }).then((t) => {
|
|
199
|
+
n && n({
|
|
200
|
+
data: t,
|
|
201
|
+
btnEl: e,
|
|
202
|
+
md: a
|
|
203
|
+
});
|
|
204
|
+
}), i.addEventListener("hidden.bs.modal", () => {
|
|
205
|
+
r && r();
|
|
206
|
+
}), a.show();
|
|
207
|
+
});
|
|
208
|
+
});
|
|
209
|
+
}, O = (e = !1) => {
|
|
210
|
+
let t = [{
|
|
211
|
+
id: 1,
|
|
212
|
+
name: "Tiếng Việt"
|
|
213
|
+
}];
|
|
214
|
+
return e === !1 ? t : t.find((t) => t.id === e)?.name || "";
|
|
215
|
+
};
|
|
216
|
+
//#endregion
|
|
217
|
+
export { d as _, w as a, c as b, g as c, y as d, b as f, C as g, E as h, h as i, _ as l, D as m, S as n, m as o, x as p, T as r, v as s, u as t, O as u, p as v, f as y };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region src/utils/Env.ts
|
|
2
|
+
var e = null, t = null;
|
|
3
|
+
function n() {
|
|
4
|
+
return e ? Promise.resolve(e) : t || (t = fetch("/env.json").then((e) => {
|
|
5
|
+
if (!e.ok) throw Error("Failed to load env");
|
|
6
|
+
return e.json();
|
|
7
|
+
}).then((t) => (e = t, t)).catch((e) => {
|
|
8
|
+
throw t = null, e;
|
|
9
|
+
}), t);
|
|
10
|
+
}
|
|
11
|
+
function r() {
|
|
12
|
+
if (!e) throw Error("Environment has not been loaded. Call loadEnv() before using getEnv().");
|
|
13
|
+
return e;
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
export { n, r as t };
|