aq-fe-framework 0.1.37 → 0.1.39
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.
|
@@ -15,7 +15,8 @@ function cn(...inputs) {
|
|
|
15
15
|
|
|
16
16
|
// src/components/Aceternity/BoxesBackground/MyBoxes.tsx
|
|
17
17
|
import { motion } from "framer-motion";
|
|
18
|
-
import
|
|
18
|
+
import React from "react";
|
|
19
|
+
import { jsx } from "react/jsx-runtime";
|
|
19
20
|
var MyBoxesCore = (_a) => {
|
|
20
21
|
var _b = _a, { className } = _b, rest = __objRest(_b, ["className"]);
|
|
21
22
|
const rows = new Array(150).fill(1);
|
|
@@ -34,9 +35,9 @@ var MyBoxesCore = (_a) => {
|
|
|
34
35
|
const getRandomColor = () => {
|
|
35
36
|
return colors[Math.floor(Math.random() * colors.length)];
|
|
36
37
|
};
|
|
37
|
-
return /* @__PURE__ */
|
|
38
|
+
return /* @__PURE__ */ jsx(
|
|
38
39
|
"div",
|
|
39
|
-
__spreadValues({
|
|
40
|
+
__spreadProps(__spreadValues({
|
|
40
41
|
style: {
|
|
41
42
|
transform: `translate(-40%,-60%) skewX(-48deg) skewY(14deg) scale(0.675) rotate(0deg) translateZ(0)`
|
|
42
43
|
},
|
|
@@ -44,39 +45,41 @@ var MyBoxesCore = (_a) => {
|
|
|
44
45
|
"absolute left-1/4 p-4 -top-1/4 flex -translate-x-1/2 -translate-y-1/2 w-full h-full z-0 ",
|
|
45
46
|
className
|
|
46
47
|
)
|
|
47
|
-
}, rest),
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
{
|
|
51
|
-
whileHover: {
|
|
52
|
-
backgroundColor: `var(${getRandomColor()})`,
|
|
53
|
-
transition: { duration: 0 }
|
|
54
|
-
},
|
|
55
|
-
animate: {
|
|
56
|
-
transition: { duration: 2 }
|
|
57
|
-
},
|
|
58
|
-
key: `col` + j4,
|
|
59
|
-
className: "w-16 h-8 border-r border-t border-slate-700 relative"
|
|
60
|
-
},
|
|
61
|
-
j4 % 2 === 0 && i5 % 2 === 0 ? /* @__PURE__ */ React2.createElement(
|
|
62
|
-
"svg",
|
|
48
|
+
}, rest), {
|
|
49
|
+
children: rows.map((_4, i5) => /* @__PURE__ */ jsx(motion.div, { className: "w-16 h-8 border-l border-slate-700 relative", children: cols.map((_5, j4) => /* @__PURE__ */ jsx(
|
|
50
|
+
motion.div,
|
|
63
51
|
{
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
52
|
+
whileHover: {
|
|
53
|
+
backgroundColor: `var(${getRandomColor()})`,
|
|
54
|
+
transition: { duration: 0 }
|
|
55
|
+
},
|
|
56
|
+
animate: {
|
|
57
|
+
transition: { duration: 2 }
|
|
58
|
+
},
|
|
59
|
+
className: "w-16 h-8 border-r border-t border-slate-700 relative",
|
|
60
|
+
children: j4 % 2 === 0 && i5 % 2 === 0 ? /* @__PURE__ */ jsx(
|
|
61
|
+
"svg",
|
|
62
|
+
{
|
|
63
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
64
|
+
fill: "none",
|
|
65
|
+
viewBox: "0 0 24 24",
|
|
66
|
+
strokeWidth: "1.5",
|
|
67
|
+
stroke: "currentColor",
|
|
68
|
+
className: "absolute h-6 w-10 -top-[14px] -left-[22px] text-slate-700 stroke-[1px] pointer-events-none",
|
|
69
|
+
children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M12 6v12m6-6H6" })
|
|
70
|
+
}
|
|
71
|
+
) : null
|
|
70
72
|
},
|
|
71
|
-
|
|
72
|
-
)
|
|
73
|
-
)
|
|
73
|
+
`col` + j4
|
|
74
|
+
)) }, `row` + i5))
|
|
75
|
+
})
|
|
74
76
|
);
|
|
75
77
|
};
|
|
76
|
-
var Boxes =
|
|
78
|
+
var Boxes = React.memo(MyBoxesCore);
|
|
77
79
|
|
|
78
80
|
// src/components/Loaders/MyCardioLoader.tsx
|
|
79
81
|
import { useEffect } from "react";
|
|
82
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
80
83
|
function MyCardioLoader() {
|
|
81
84
|
useEffect(() => {
|
|
82
85
|
async function getLoader() {
|
|
@@ -85,49 +88,62 @@ function MyCardioLoader() {
|
|
|
85
88
|
}
|
|
86
89
|
getLoader();
|
|
87
90
|
}, []);
|
|
88
|
-
return /* @__PURE__ */
|
|
91
|
+
return /* @__PURE__ */ jsx2("l-cardio", { color: "var(--cyan-400)" });
|
|
89
92
|
}
|
|
90
93
|
|
|
91
94
|
// src/components/Aceternity/BoxesBackground/MyBoxesBackground.tsx
|
|
92
95
|
import { Center, Space, Text } from "@mantine/core";
|
|
96
|
+
import { jsx as jsx3, jsxs } from "react/jsx-runtime";
|
|
93
97
|
function MyBoxesBackground({ title, desc = "\u0110\u01B0\u1EE3c ph\xE1t tri\u1EC3n b\u1EDFi c\xF4ng ty c\xF4ng ngh\u1EC7 Anh Qu\xE2n." }) {
|
|
94
|
-
return /* @__PURE__ */
|
|
98
|
+
return /* @__PURE__ */ jsxs("div", { className: "h-[100vh] relative w-full overflow-hidden bg-slate-900 flex flex-col items-center justify-center rounded-lg", children: [
|
|
99
|
+
/* @__PURE__ */ jsx3("div", { className: "absolute inset-0 w-full h-full bg-slate-900 z-20 [mask-image:radial-gradient(transparent,white)] pointer-events-none" }),
|
|
100
|
+
/* @__PURE__ */ jsx3(MyBoxesCore, {}),
|
|
101
|
+
/* @__PURE__ */ jsx3(Center, { className: "z-20", children: /* @__PURE__ */ jsx3(MyCardioLoader, {}) }),
|
|
102
|
+
/* @__PURE__ */ jsx3(Space, { my: 7 }),
|
|
103
|
+
/* @__PURE__ */ jsx3(Center, { children: /* @__PURE__ */ jsx3(Text, { className: "z-20", fs: "italic", fw: "bold", c: "white", children: "\u0110ang t\u1EA3i..." }) }),
|
|
104
|
+
/* @__PURE__ */ jsx3(Space, { my: 7 }),
|
|
105
|
+
/* @__PURE__ */ jsx3("h1", { className: cn("md:text-4xl text-xl text-white relative z-20"), children: title }),
|
|
106
|
+
/* @__PURE__ */ jsx3("p", { className: "text-center mt-2 text-neutral-300 relative z-20", children: desc })
|
|
107
|
+
] });
|
|
95
108
|
}
|
|
96
109
|
|
|
97
110
|
// src/components/ActionIcons/ActionIcon/MyActionIcon.tsx
|
|
98
111
|
import { ActionIcon } from "@mantine/core";
|
|
99
112
|
import { IconDeviceFloppy, IconEdit, IconPlus, IconTrash } from "@tabler/icons-react";
|
|
113
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
100
114
|
function MyActionIcon(_a) {
|
|
101
115
|
var _b = _a, { children, crudType = "delete" } = _b, rest = __objRest(_b, ["children", "crudType"]);
|
|
102
116
|
if (crudType == "default") {
|
|
103
|
-
return /* @__PURE__ */
|
|
117
|
+
return /* @__PURE__ */ jsx4(ActionIcon, __spreadProps(__spreadValues({ color: "indigo" }, rest), { children }));
|
|
104
118
|
}
|
|
105
119
|
if (crudType == "create") {
|
|
106
|
-
return /* @__PURE__ */
|
|
120
|
+
return /* @__PURE__ */ jsx4(ActionIcon, __spreadProps(__spreadValues({ color: "indigo" }, rest), { children: /* @__PURE__ */ jsx4(IconPlus, {}) }));
|
|
107
121
|
}
|
|
108
122
|
if (crudType == "delete") {
|
|
109
|
-
return /* @__PURE__ */
|
|
123
|
+
return /* @__PURE__ */ jsx4(ActionIcon, __spreadProps(__spreadValues({ color: "red" }, rest), { children: /* @__PURE__ */ jsx4(IconTrash, {}) }));
|
|
110
124
|
}
|
|
111
125
|
if (crudType == "update") {
|
|
112
|
-
return /* @__PURE__ */
|
|
126
|
+
return /* @__PURE__ */ jsx4(ActionIcon, __spreadProps(__spreadValues({ color: "yellow" }, rest), { children: /* @__PURE__ */ jsx4(IconEdit, {}) }));
|
|
113
127
|
}
|
|
114
128
|
if (crudType == "save") {
|
|
115
|
-
return /* @__PURE__ */
|
|
129
|
+
return /* @__PURE__ */ jsx4(ActionIcon, __spreadProps(__spreadValues({ color: "green" }, rest), { children: /* @__PURE__ */ jsx4(IconDeviceFloppy, {}) }));
|
|
116
130
|
}
|
|
117
131
|
}
|
|
118
132
|
|
|
119
133
|
// src/components/Inputs/TextInput/MyTextInput.tsx
|
|
120
134
|
import { TextInput } from "@mantine/core";
|
|
135
|
+
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
121
136
|
function MyTextInput(_a) {
|
|
122
137
|
var _b = _a, { label, defaultValue } = _b, rest = __objRest(_b, ["label", "defaultValue"]);
|
|
123
|
-
return /* @__PURE__ */
|
|
138
|
+
return /* @__PURE__ */ jsx5(TextInput, __spreadValues({ label, defaultValue, placeholder: label ? `Nh\u1EADp ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
|
|
124
139
|
}
|
|
125
140
|
|
|
126
141
|
// src/components/Layouts/FlexColumn/MyFlexColumn.tsx
|
|
127
142
|
import { Flex } from "@mantine/core";
|
|
143
|
+
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
128
144
|
function MyFlexColumn(_a) {
|
|
129
145
|
var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
|
|
130
|
-
return /* @__PURE__ */
|
|
146
|
+
return /* @__PURE__ */ jsx6(Flex, __spreadProps(__spreadValues({ direction: "column", gap: "md" }, rest), { children }));
|
|
131
147
|
}
|
|
132
148
|
|
|
133
149
|
// src/components/ActionIcons/ActionIconCheck/MyActionIconCheck.tsx
|
|
@@ -135,68 +151,79 @@ import { ActionIcon as ActionIcon2, Button, Checkbox, Modal, Switch, Text as Tex
|
|
|
135
151
|
import { useDisclosure } from "@mantine/hooks";
|
|
136
152
|
import { IconChecklist } from "@tabler/icons-react";
|
|
137
153
|
import { useState } from "react";
|
|
154
|
+
import { Fragment, jsx as jsx7, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
138
155
|
function MyActionIconCheck(_a) {
|
|
139
156
|
var _b = _a, { modalSize = "50%", comment = "" } = _b, rest = __objRest(_b, ["modalSize", "comment"]);
|
|
140
157
|
const disc = useDisclosure(false);
|
|
141
158
|
const fullScreen = useState(false);
|
|
142
159
|
const hSize = useState("50vh");
|
|
143
|
-
return /* @__PURE__ */
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
opened: disc[0],
|
|
148
|
-
onClose: disc[1].close,
|
|
149
|
-
size: modalSize,
|
|
150
|
-
title: /* @__PURE__ */ React.createElement(Text2, null, "Ki\u1EC3m tra h\u1ED3 s\u01A1 \u0111\xE3 \u0111\u0103ng k\xFD")
|
|
151
|
-
},
|
|
152
|
-
/* @__PURE__ */ React.createElement(
|
|
153
|
-
Switch,
|
|
160
|
+
return /* @__PURE__ */ jsxs2(Fragment, { children: [
|
|
161
|
+
/* @__PURE__ */ jsx7(Tooltip, { label: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp", children: /* @__PURE__ */ jsx7(ActionIcon2, __spreadProps(__spreadValues({ color: "cyan", onClick: disc[1].open }, rest), { children: /* @__PURE__ */ jsx7(IconChecklist, { size: 24, color: "blue" }) })) }),
|
|
162
|
+
/* @__PURE__ */ jsxs2(
|
|
163
|
+
Modal,
|
|
154
164
|
{
|
|
155
|
-
|
|
156
|
-
|
|
165
|
+
fullScreen: fullScreen[0],
|
|
166
|
+
opened: disc[0],
|
|
167
|
+
onClose: disc[1].close,
|
|
168
|
+
size: modalSize,
|
|
169
|
+
title: /* @__PURE__ */ jsx7(Text2, { children: "Ki\u1EC3m tra h\u1ED3 s\u01A1 \u0111\xE3 \u0111\u0103ng k\xFD" }),
|
|
170
|
+
children: [
|
|
171
|
+
/* @__PURE__ */ jsx7(
|
|
172
|
+
Switch,
|
|
173
|
+
{
|
|
174
|
+
defaultChecked: true,
|
|
175
|
+
label: "\u0110\u1EA1t y\xEAu c\u1EA7u"
|
|
176
|
+
}
|
|
177
|
+
),
|
|
178
|
+
/* @__PURE__ */ jsxs2(MyFlexColumn, { children: [
|
|
179
|
+
/* @__PURE__ */ jsx7(MyTextInput, { label: "Nh\u1EADn x\xE9t" }),
|
|
180
|
+
/* @__PURE__ */ jsx7(Checkbox, { label: "G\u1EEDi mail th\xF4ng b\xE1o" }),
|
|
181
|
+
/* @__PURE__ */ jsx7(Button, { children: "C\u1EADp nh\u1EADp" })
|
|
182
|
+
] })
|
|
183
|
+
]
|
|
157
184
|
}
|
|
158
|
-
)
|
|
159
|
-
|
|
160
|
-
));
|
|
185
|
+
)
|
|
186
|
+
] });
|
|
161
187
|
}
|
|
162
188
|
|
|
163
189
|
// src/components/Buttons/Button/MyButton.tsx
|
|
164
190
|
import { Button as Button2 } from "@mantine/core";
|
|
165
191
|
import { IconDeviceFloppy as IconDeviceFloppy2, IconEdit as IconEdit2, IconFileExport, IconFileImport, IconPlus as IconPlus2, IconPrinter, IconTrash as IconTrash2, IconX } from "@tabler/icons-react";
|
|
192
|
+
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
166
193
|
function MyButton(_a) {
|
|
167
194
|
var _b = _a, { children, crudType = "delete" } = _b, rest = __objRest(_b, ["children", "crudType"]);
|
|
168
195
|
if (crudType == "default") {
|
|
169
|
-
return /* @__PURE__ */
|
|
196
|
+
return /* @__PURE__ */ jsx8(Button2, __spreadProps(__spreadValues({ color: "indigo" }, rest), { children }));
|
|
170
197
|
}
|
|
171
198
|
if (crudType == "create") {
|
|
172
|
-
return /* @__PURE__ */
|
|
199
|
+
return /* @__PURE__ */ jsx8(Button2, __spreadProps(__spreadValues({ color: "indigo", type: "submit", leftSection: /* @__PURE__ */ jsx8(IconPlus2, {}) }, rest), { children: children ? children : "L\u01B0u" }));
|
|
173
200
|
}
|
|
174
201
|
if (crudType == "createMultiple") {
|
|
175
|
-
return /* @__PURE__ */
|
|
202
|
+
return /* @__PURE__ */ jsx8(Button2, __spreadProps(__spreadValues({ color: "green", type: "submit", leftSection: /* @__PURE__ */ jsx8(IconPlus2, {}) }, rest), { children: children ? children : "Th\xEAm danh s\xE1ch" }));
|
|
176
203
|
}
|
|
177
204
|
if (crudType == "delete") {
|
|
178
|
-
return /* @__PURE__ */
|
|
205
|
+
return /* @__PURE__ */ jsx8(Button2, __spreadProps(__spreadValues({ color: "red", leftSection: /* @__PURE__ */ jsx8(IconTrash2, {}) }, rest), { children: children ? children : "X\xE1c nh\u1EADn x\xF3a" }));
|
|
179
206
|
}
|
|
180
207
|
if (crudType == "update") {
|
|
181
|
-
return /* @__PURE__ */
|
|
208
|
+
return /* @__PURE__ */ jsx8(Button2, __spreadProps(__spreadValues({ color: "yellow", type: "submit", leftSection: /* @__PURE__ */ jsx8(IconEdit2, {}) }, rest), { children: children ? children : "Ch\u1EC9nh s\u1EEDa" }));
|
|
182
209
|
}
|
|
183
210
|
if (crudType == "save") {
|
|
184
|
-
return /* @__PURE__ */
|
|
211
|
+
return /* @__PURE__ */ jsx8(Button2, __spreadProps(__spreadValues({ color: "blue", type: "submit", leftSection: /* @__PURE__ */ jsx8(IconDeviceFloppy2, {}) }, rest), { children: children ? children : "L\u01B0u" }));
|
|
185
212
|
}
|
|
186
213
|
if (crudType == "import") {
|
|
187
|
-
return /* @__PURE__ */
|
|
214
|
+
return /* @__PURE__ */ jsx8(Button2, __spreadProps(__spreadValues({ color: "green.8", leftSection: /* @__PURE__ */ jsx8(IconFileImport, {}) }, rest), { children: children ? children : "Import" }));
|
|
188
215
|
}
|
|
189
216
|
if (crudType == "print") {
|
|
190
|
-
return /* @__PURE__ */
|
|
217
|
+
return /* @__PURE__ */ jsx8(Button2, __spreadProps(__spreadValues({ color: "orange.7", leftSection: /* @__PURE__ */ jsx8(IconPrinter, {}) }, rest), { children: children ? children : "In" }));
|
|
191
218
|
}
|
|
192
219
|
if (crudType == "export") {
|
|
193
|
-
return /* @__PURE__ */
|
|
220
|
+
return /* @__PURE__ */ jsx8(Button2, __spreadProps(__spreadValues({ color: "green.8", leftSection: /* @__PURE__ */ jsx8(IconFileExport, {}) }, rest), { children: children ? children : "In" }));
|
|
194
221
|
}
|
|
195
222
|
if (crudType == "cancel") {
|
|
196
|
-
return /* @__PURE__ */
|
|
223
|
+
return /* @__PURE__ */ jsx8(Button2, __spreadProps(__spreadValues({ color: "gray", leftSection: /* @__PURE__ */ jsx8(IconX, {}) }, rest), { children: children ? children : "H\u1EE7y thao t\xE1c" }));
|
|
197
224
|
}
|
|
198
225
|
if (crudType == "select") {
|
|
199
|
-
return /* @__PURE__ */
|
|
226
|
+
return /* @__PURE__ */ jsx8(Button2, __spreadProps(__spreadValues({}, rest), { children: children ? children : "Ch\u1ECDn" }));
|
|
200
227
|
}
|
|
201
228
|
}
|
|
202
229
|
|
|
@@ -209,6 +236,7 @@ import { useState as useState2 } from "react";
|
|
|
209
236
|
// src/components/ActionIcons/ActionIconModal/MyActionIconModal.tsx
|
|
210
237
|
import { ActionIcon as ActionIcon3, Modal as Modal2 } from "@mantine/core";
|
|
211
238
|
import { IconEdit as IconEdit3, IconPlus as IconPlus3, IconTrash as IconTrash3 } from "@tabler/icons-react";
|
|
239
|
+
import { Fragment as Fragment2, jsx as jsx9, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
212
240
|
function MyActionIconModal(_a) {
|
|
213
241
|
var _b = _a, {
|
|
214
242
|
fullScreen = false,
|
|
@@ -228,73 +256,89 @@ function MyActionIconModal(_a) {
|
|
|
228
256
|
"icon"
|
|
229
257
|
]);
|
|
230
258
|
if (crudType == "default") {
|
|
231
|
-
return /* @__PURE__ */
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
259
|
+
return /* @__PURE__ */ jsxs3(Fragment2, { children: [
|
|
260
|
+
/* @__PURE__ */ jsx9(ActionIcon3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "indigo" }, rest), { children: icon })),
|
|
261
|
+
/* @__PURE__ */ jsx9(
|
|
262
|
+
Modal2,
|
|
263
|
+
{
|
|
264
|
+
fullScreen,
|
|
265
|
+
size: modalSize,
|
|
266
|
+
title,
|
|
267
|
+
opened: disclosure == null ? void 0 : disclosure[0],
|
|
268
|
+
onClose: disclosure[1].close,
|
|
269
|
+
children: /* @__PURE__ */ jsx9(MyFlexColumn, { children })
|
|
270
|
+
}
|
|
271
|
+
)
|
|
272
|
+
] });
|
|
242
273
|
}
|
|
243
274
|
if (crudType == "create") {
|
|
244
|
-
return /* @__PURE__ */
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
275
|
+
return /* @__PURE__ */ jsxs3(Fragment2, { children: [
|
|
276
|
+
/* @__PURE__ */ jsx9(ActionIcon3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open }, rest), { children: icon ? icon : /* @__PURE__ */ jsx9(IconPlus3, {}) })),
|
|
277
|
+
/* @__PURE__ */ jsx9(
|
|
278
|
+
Modal2,
|
|
279
|
+
{
|
|
280
|
+
fullScreen,
|
|
281
|
+
size: modalSize,
|
|
282
|
+
title: title ? title : "T\u1EA1o d\u1EEF li\u1EC7u m\u1EDBi",
|
|
283
|
+
opened: disclosure == null ? void 0 : disclosure[0],
|
|
284
|
+
onClose: disclosure[1].close,
|
|
285
|
+
children: /* @__PURE__ */ jsx9(MyFlexColumn, { children })
|
|
286
|
+
}
|
|
287
|
+
)
|
|
288
|
+
] });
|
|
255
289
|
}
|
|
256
290
|
if (crudType == "update") {
|
|
257
|
-
return /* @__PURE__ */
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
291
|
+
return /* @__PURE__ */ jsxs3(Fragment2, { children: [
|
|
292
|
+
/* @__PURE__ */ jsx9(ActionIcon3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "yellow" }, rest), { children: icon ? icon : /* @__PURE__ */ jsx9(IconEdit3, {}) })),
|
|
293
|
+
/* @__PURE__ */ jsx9(
|
|
294
|
+
Modal2,
|
|
295
|
+
{
|
|
296
|
+
fullScreen,
|
|
297
|
+
size: modalSize,
|
|
298
|
+
title: title ? title : "S\u1EEDa d\u1EEF li\u1EC7u",
|
|
299
|
+
opened: disclosure == null ? void 0 : disclosure[0],
|
|
300
|
+
onClose: disclosure[1].close,
|
|
301
|
+
children: /* @__PURE__ */ jsx9(MyFlexColumn, { children })
|
|
302
|
+
}
|
|
303
|
+
)
|
|
304
|
+
] });
|
|
268
305
|
}
|
|
269
306
|
if (crudType == "delete") {
|
|
270
|
-
return /* @__PURE__ */
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
307
|
+
return /* @__PURE__ */ jsxs3(Fragment2, { children: [
|
|
308
|
+
/* @__PURE__ */ jsx9(ActionIcon3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "red" }, rest), { children: icon ? icon : /* @__PURE__ */ jsx9(IconTrash3, {}) })),
|
|
309
|
+
/* @__PURE__ */ jsx9(
|
|
310
|
+
Modal2,
|
|
311
|
+
{
|
|
312
|
+
fullScreen,
|
|
313
|
+
size: modalSize,
|
|
314
|
+
title: title ? title : "X\xF3a d\u1EEF li\u1EC7u",
|
|
315
|
+
opened: disclosure == null ? void 0 : disclosure[0],
|
|
316
|
+
onClose: disclosure[1].close,
|
|
317
|
+
children: /* @__PURE__ */ jsx9(MyFlexColumn, { children })
|
|
318
|
+
}
|
|
319
|
+
)
|
|
320
|
+
] });
|
|
281
321
|
}
|
|
282
322
|
if (crudType == "check") {
|
|
283
|
-
return /* @__PURE__ */
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
323
|
+
return /* @__PURE__ */ jsxs3(Fragment2, { children: [
|
|
324
|
+
/* @__PURE__ */ jsx9(ActionIcon3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "green" }, rest), { children: icon ? icon : /* @__PURE__ */ jsx9(IconTrash3, {}) })),
|
|
325
|
+
/* @__PURE__ */ jsx9(
|
|
326
|
+
Modal2,
|
|
327
|
+
{
|
|
328
|
+
fullScreen,
|
|
329
|
+
size: modalSize,
|
|
330
|
+
title: title ? title : "Ki\u1EC3m tra",
|
|
331
|
+
opened: disclosure == null ? void 0 : disclosure[0],
|
|
332
|
+
onClose: disclosure[1].close,
|
|
333
|
+
children: /* @__PURE__ */ jsx9(MyFlexColumn, { children })
|
|
334
|
+
}
|
|
335
|
+
)
|
|
336
|
+
] });
|
|
294
337
|
}
|
|
295
338
|
}
|
|
296
339
|
|
|
297
340
|
// src/components/ActionIcons/ActionIconCRUD/MyActionIconDelete.tsx
|
|
341
|
+
import { jsx as jsx10, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
298
342
|
function MyActionIconDelete(_a) {
|
|
299
343
|
var _b = _a, {
|
|
300
344
|
onSubmit,
|
|
@@ -332,45 +376,52 @@ function MyActionIconDelete(_a) {
|
|
|
332
376
|
loadingState[1](true);
|
|
333
377
|
mutation.mutate();
|
|
334
378
|
}
|
|
335
|
-
return /* @__PURE__ */
|
|
379
|
+
return /* @__PURE__ */ jsxs4(
|
|
336
380
|
MyActionIconModal,
|
|
337
|
-
__spreadValues({
|
|
381
|
+
__spreadProps(__spreadValues({
|
|
338
382
|
disclosure: disc,
|
|
339
383
|
crudType: "delete"
|
|
340
|
-
}, rest),
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
384
|
+
}, rest), {
|
|
385
|
+
children: [
|
|
386
|
+
/* @__PURE__ */ jsx10(
|
|
387
|
+
Highlight,
|
|
388
|
+
{
|
|
389
|
+
highlight: contextData || [],
|
|
390
|
+
color: "red.6",
|
|
391
|
+
highlightStyles: {
|
|
392
|
+
fontWeight: 700,
|
|
393
|
+
WebkitBackgroundClip: "text",
|
|
394
|
+
WebkitTextFillColor: "transparent"
|
|
395
|
+
},
|
|
396
|
+
children: `B\u1EA1n s\u1EAFp x\xF3a d\u1EEF li\u1EC7u ${contextData || ""}. H\xE0nh \u0111\u1ED9ng n\xE0y kh\xF4ng th\u1EC3 ho\xE0n t\xE1c. B\u1EA1n c\xF3 ch\u1EAFc ch\u1EAFn mu\u1ED1n ti\u1EBFp t\u1EE5c?`
|
|
397
|
+
}
|
|
398
|
+
),
|
|
399
|
+
/* @__PURE__ */ jsxs4(Group, { grow: true, children: [
|
|
400
|
+
/* @__PURE__ */ jsx10(
|
|
401
|
+
MyButton,
|
|
402
|
+
{
|
|
403
|
+
crudType: "delete",
|
|
404
|
+
onClick: handleCLick,
|
|
405
|
+
loading: loadingState[0]
|
|
406
|
+
}
|
|
407
|
+
),
|
|
408
|
+
/* @__PURE__ */ jsx10(
|
|
409
|
+
MyButton,
|
|
410
|
+
{
|
|
411
|
+
crudType: "cancel",
|
|
412
|
+
onClick: disc[1].close
|
|
413
|
+
}
|
|
414
|
+
)
|
|
415
|
+
] })
|
|
416
|
+
]
|
|
417
|
+
})
|
|
368
418
|
);
|
|
369
419
|
}
|
|
370
420
|
|
|
371
421
|
// src/components/ActionIcons/ActionIconCRUD/MyActionIconUpdate.tsx
|
|
372
422
|
import { useDisclosure as useDisclosure3 } from "@mantine/hooks";
|
|
373
423
|
import { useMutation as useMutation2, useQueryClient as useQueryClient2 } from "@tanstack/react-query";
|
|
424
|
+
import { jsx as jsx11, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
374
425
|
function MyActionIconUpdate(_a) {
|
|
375
426
|
var _b = _a, {
|
|
376
427
|
form,
|
|
@@ -403,16 +454,20 @@ function MyActionIconUpdate(_a) {
|
|
|
403
454
|
if (onError) onError();
|
|
404
455
|
}
|
|
405
456
|
});
|
|
406
|
-
return /* @__PURE__ */
|
|
457
|
+
return /* @__PURE__ */ jsx11(MyActionIconModal, __spreadProps(__spreadValues({ disclosure: disc, crudType: "update" }, rest), { children: /* @__PURE__ */ jsx11("form", { onSubmit: form.onSubmit((values) => {
|
|
407
458
|
mutation.mutate(values);
|
|
408
|
-
})
|
|
459
|
+
}), children: /* @__PURE__ */ jsxs5(MyFlexColumn, { children: [
|
|
460
|
+
children,
|
|
461
|
+
/* @__PURE__ */ jsx11(MyButton, { type: "submit", crudType: "save" })
|
|
462
|
+
] }) }) }));
|
|
409
463
|
}
|
|
410
464
|
|
|
411
465
|
// src/components/ActionIcons/ActionIconDownloadPDF/MyActionIconDownloadPDF.tsx
|
|
412
466
|
import { ActionIcon as ActionIcon4, Tooltip as Tooltip2 } from "@mantine/core";
|
|
413
467
|
import { IconDownload } from "@tabler/icons-react";
|
|
468
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
414
469
|
function MyActionIconDownloadPDF({ pdfLink = "https://datafiles.chinhphu.vn/cpp/files/vbpq/2021/07/17-bgd.signed.pdf" }) {
|
|
415
|
-
return /* @__PURE__ */
|
|
470
|
+
return /* @__PURE__ */ jsx12(Tooltip2, { label: "Nh\u1EA5p \u0111\u1EC3 t\u1EA3i xu\u1ED1ng", children: /* @__PURE__ */ jsx12(ActionIcon4, { onClick: async () => await utils_pdf_download(pdfLink), color: "red", children: /* @__PURE__ */ jsx12(IconDownload, {}) }) });
|
|
416
471
|
}
|
|
417
472
|
|
|
418
473
|
// src/components/ActionIcons/ActionIconUpload/MyActionIconUpload.tsx
|
|
@@ -420,18 +475,19 @@ import { ActionIcon as ActionIcon5 } from "@mantine/core";
|
|
|
420
475
|
import { Dropzone, MIME_TYPES } from "@mantine/dropzone";
|
|
421
476
|
import { IconCloudUpload } from "@tabler/icons-react";
|
|
422
477
|
import { useRef } from "react";
|
|
478
|
+
import { jsx as jsx13 } from "react/jsx-runtime";
|
|
423
479
|
function MyActionIconUpload() {
|
|
424
480
|
const openRef = useRef(null);
|
|
425
|
-
return /* @__PURE__ */
|
|
481
|
+
return /* @__PURE__ */ jsx13(
|
|
426
482
|
Dropzone,
|
|
427
483
|
{
|
|
428
484
|
openRef,
|
|
429
485
|
onDrop: () => {
|
|
430
486
|
},
|
|
431
487
|
radius: "md",
|
|
432
|
-
accept: [MIME_TYPES.pdf]
|
|
433
|
-
|
|
434
|
-
|
|
488
|
+
accept: [MIME_TYPES.pdf],
|
|
489
|
+
children: /* @__PURE__ */ jsx13(ActionIcon5, { children: /* @__PURE__ */ jsx13(IconCloudUpload, {}) })
|
|
490
|
+
}
|
|
435
491
|
);
|
|
436
492
|
}
|
|
437
493
|
|
|
@@ -440,40 +496,47 @@ import { ActionIcon as ActionIcon6, Group as Group2, Modal as Modal3, Paper, Tex
|
|
|
440
496
|
import { useDisclosure as useDisclosure4 } from "@mantine/hooks";
|
|
441
497
|
import { IconLivePhoto, IconMaximize, IconMinimize } from "@tabler/icons-react";
|
|
442
498
|
import { useState as useState3 } from "react";
|
|
499
|
+
import { Fragment as Fragment3, jsx as jsx14, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
443
500
|
function MyActionIconViewPDF(_a) {
|
|
444
501
|
var _b = _a, { modalSize = "80%", pdfLink = "https://datafiles.chinhphu.vn/cpp/files/vbpq/2021/07/17-bgd.signed.pdf" } = _b, rest = __objRest(_b, ["modalSize", "pdfLink"]);
|
|
445
502
|
const disc = useDisclosure4(false);
|
|
446
503
|
const fullScreen = useState3(false);
|
|
447
504
|
const hSize = useState3("80vh");
|
|
448
|
-
return /* @__PURE__ */
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
{
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
505
|
+
return /* @__PURE__ */ jsxs6(Fragment3, { children: [
|
|
506
|
+
/* @__PURE__ */ jsx14(Tooltip3, { label: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp", children: /* @__PURE__ */ jsx14(ActionIcon6, __spreadProps(__spreadValues({ color: "cyan", onClick: disc[1].open }, rest), { children: /* @__PURE__ */ jsx14(IconLivePhoto, {}) })) }),
|
|
507
|
+
/* @__PURE__ */ jsx14(
|
|
508
|
+
Modal3,
|
|
509
|
+
{
|
|
510
|
+
fullScreen: fullScreen[0],
|
|
511
|
+
opened: disc[0],
|
|
512
|
+
onClose: disc[1].close,
|
|
513
|
+
size: modalSize,
|
|
514
|
+
title: /* @__PURE__ */ jsxs6(Group2, { children: [
|
|
515
|
+
/* @__PURE__ */ jsx14(Text3, { children: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp" }),
|
|
516
|
+
fullScreen[0] ? /* @__PURE__ */ jsx14(
|
|
517
|
+
ActionIcon6,
|
|
518
|
+
{
|
|
519
|
+
onClick: () => {
|
|
520
|
+
fullScreen[1](false);
|
|
521
|
+
hSize[1]("80vh");
|
|
522
|
+
},
|
|
523
|
+
children: /* @__PURE__ */ jsx14(IconMinimize, {})
|
|
524
|
+
}
|
|
525
|
+
) : /* @__PURE__ */ jsx14(
|
|
526
|
+
ActionIcon6,
|
|
527
|
+
{
|
|
528
|
+
onClick: () => {
|
|
529
|
+
fullScreen[1](true);
|
|
530
|
+
hSize[1]("90vh");
|
|
531
|
+
},
|
|
532
|
+
children: /* @__PURE__ */ jsx14(IconMaximize, {})
|
|
533
|
+
}
|
|
534
|
+
)
|
|
535
|
+
] }),
|
|
536
|
+
children: /* @__PURE__ */ jsx14(Paper, { h: hSize[0], p: "lg", children: /* @__PURE__ */ jsx14("iframe", { src: pdfLink, width: "100%", height: "100%" }) })
|
|
537
|
+
}
|
|
538
|
+
)
|
|
539
|
+
] });
|
|
477
540
|
}
|
|
478
541
|
|
|
479
542
|
// src/components/ActionIcons/SwitchTheme/MySwitchTheme.tsx
|
|
@@ -485,20 +548,23 @@ import cx from "clsx";
|
|
|
485
548
|
var css_default = {};
|
|
486
549
|
|
|
487
550
|
// src/components/ActionIcons/SwitchTheme/MySwitchTheme.tsx
|
|
551
|
+
import { jsx as jsx15, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
488
552
|
function MySwitchTheme() {
|
|
489
553
|
const { setColorScheme } = useMantineColorScheme();
|
|
490
554
|
const computedColorScheme = useComputedColorScheme("light", { getInitialValueInEffect: true });
|
|
491
|
-
return /* @__PURE__ */
|
|
555
|
+
return /* @__PURE__ */ jsxs7(
|
|
492
556
|
ActionIcon7,
|
|
493
557
|
{
|
|
494
558
|
onClick: () => setColorScheme(computedColorScheme === "light" ? "dark" : "light"),
|
|
495
559
|
variant: "default",
|
|
496
560
|
size: "lg",
|
|
497
561
|
radius: "md",
|
|
498
|
-
"aria-label": "Toggle color scheme"
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
562
|
+
"aria-label": "Toggle color scheme",
|
|
563
|
+
children: [
|
|
564
|
+
/* @__PURE__ */ jsx15(IconSun, { className: cx(css_default.icon, css_default.light), stroke: 1.5 }),
|
|
565
|
+
/* @__PURE__ */ jsx15(IconMoon, { className: cx(css_default.icon, css_default.dark), stroke: 1.5 })
|
|
566
|
+
]
|
|
567
|
+
}
|
|
502
568
|
);
|
|
503
569
|
}
|
|
504
570
|
|
|
@@ -544,6 +610,7 @@ import { Spotlight, spotlight } from "@mantine/spotlight";
|
|
|
544
610
|
import { IconSearch } from "@tabler/icons-react";
|
|
545
611
|
import { usePathname, useRouter } from "next/navigation";
|
|
546
612
|
import { useMemo, useState as useState4 } from "react";
|
|
613
|
+
import { jsx as jsx16, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
547
614
|
function convertMenuToSpotlightActions(items, router, parentPath = "", sideBarStore, pathName) {
|
|
548
615
|
let actions = [];
|
|
549
616
|
items.forEach((item) => {
|
|
@@ -579,7 +646,7 @@ function MyAppSpotlight({ menu }) {
|
|
|
579
646
|
[menu, router, sideBarStore]
|
|
580
647
|
// Add sideBarStore to the dependency array
|
|
581
648
|
);
|
|
582
|
-
return /* @__PURE__ */
|
|
649
|
+
return /* @__PURE__ */ jsx16(
|
|
583
650
|
Spotlight,
|
|
584
651
|
{
|
|
585
652
|
actions: spotlightActions,
|
|
@@ -591,14 +658,14 @@ function MyAppSpotlight({ menu }) {
|
|
|
591
658
|
nothingFound: "Kh\xF4ng t\xECm th\u1EA5y trang",
|
|
592
659
|
highlightQuery: true,
|
|
593
660
|
searchProps: {
|
|
594
|
-
leftSection: /* @__PURE__ */
|
|
661
|
+
leftSection: /* @__PURE__ */ jsx16(IconSearch, { stroke: 1.5 }),
|
|
595
662
|
placeholder: "T\xECm ki\u1EBFm trang..."
|
|
596
663
|
}
|
|
597
664
|
}
|
|
598
665
|
);
|
|
599
666
|
}
|
|
600
667
|
function SpotlightTrigger() {
|
|
601
|
-
return /* @__PURE__ */
|
|
668
|
+
return /* @__PURE__ */ jsxs8(
|
|
602
669
|
"button",
|
|
603
670
|
{
|
|
604
671
|
onClick: spotlight.open,
|
|
@@ -609,10 +676,12 @@ function SpotlightTrigger() {
|
|
|
609
676
|
display: "flex",
|
|
610
677
|
alignItems: "center",
|
|
611
678
|
gap: "8px"
|
|
612
|
-
}
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
679
|
+
},
|
|
680
|
+
children: [
|
|
681
|
+
/* @__PURE__ */ jsx16(IconSearch, { stroke: 1.5 }),
|
|
682
|
+
"T\xECm ki\u1EBFm (Ctrl + K)"
|
|
683
|
+
]
|
|
684
|
+
}
|
|
616
685
|
);
|
|
617
686
|
}
|
|
618
687
|
|
|
@@ -621,39 +690,46 @@ import { ActionIcon as ActionIcon8, Anchor, Group as Group3, Modal as Modal4, Pa
|
|
|
621
690
|
import { useDisclosure as useDisclosure5 } from "@mantine/hooks";
|
|
622
691
|
import { IconMaximize as IconMaximize2, IconMinimize as IconMinimize2 } from "@tabler/icons-react";
|
|
623
692
|
import { useState as useState5 } from "react";
|
|
693
|
+
import { Fragment as Fragment4, jsx as jsx17, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
624
694
|
function MyAnchorViewPDF({ label, pdfLink }) {
|
|
625
695
|
const disc = useDisclosure5(false);
|
|
626
696
|
const fullScreen = useState5(false);
|
|
627
697
|
const hSize = useState5("80vh");
|
|
628
|
-
return /* @__PURE__ */
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
{
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
698
|
+
return /* @__PURE__ */ jsxs9(Fragment4, { children: [
|
|
699
|
+
/* @__PURE__ */ jsx17(Anchor, { onClick: disc[1].open, children: label }),
|
|
700
|
+
/* @__PURE__ */ jsx17(
|
|
701
|
+
Modal4,
|
|
702
|
+
{
|
|
703
|
+
fullScreen: fullScreen[0],
|
|
704
|
+
opened: disc[0],
|
|
705
|
+
onClose: disc[1].close,
|
|
706
|
+
size: "80%",
|
|
707
|
+
title: /* @__PURE__ */ jsxs9(Group3, { children: [
|
|
708
|
+
/* @__PURE__ */ jsx17(Text4, { children: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp" }),
|
|
709
|
+
fullScreen[0] ? /* @__PURE__ */ jsx17(
|
|
710
|
+
ActionIcon8,
|
|
711
|
+
{
|
|
712
|
+
onClick: () => {
|
|
713
|
+
fullScreen[1](false);
|
|
714
|
+
hSize[1]("80vh");
|
|
715
|
+
},
|
|
716
|
+
children: /* @__PURE__ */ jsx17(IconMinimize2, {})
|
|
717
|
+
}
|
|
718
|
+
) : /* @__PURE__ */ jsx17(
|
|
719
|
+
ActionIcon8,
|
|
720
|
+
{
|
|
721
|
+
onClick: () => {
|
|
722
|
+
fullScreen[1](true);
|
|
723
|
+
hSize[1]("90vh");
|
|
724
|
+
},
|
|
725
|
+
children: /* @__PURE__ */ jsx17(IconMaximize2, {})
|
|
726
|
+
}
|
|
727
|
+
)
|
|
728
|
+
] }),
|
|
729
|
+
children: /* @__PURE__ */ jsx17(Paper2, { h: hSize[0], children: /* @__PURE__ */ jsx17("iframe", { src: pdfLink, width: "100%", height: "100%" }) })
|
|
730
|
+
}
|
|
731
|
+
)
|
|
732
|
+
] });
|
|
657
733
|
}
|
|
658
734
|
|
|
659
735
|
// src/components/Buttons/ButtonCRUD/AQButtonCreateByImportFile.tsx
|
|
@@ -666,6 +742,7 @@ import * as XLSX from "xlsx";
|
|
|
666
742
|
// src/components/Buttons/ButtonModal/MyButtonModal.tsx
|
|
667
743
|
import { Button as Button3, Modal as Modal5 } from "@mantine/core";
|
|
668
744
|
import { IconEdit as IconEdit4, IconPlus as IconPlus4, IconTrash as IconTrash4 } from "@tabler/icons-react";
|
|
745
|
+
import { Fragment as Fragment5, jsx as jsx18, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
669
746
|
function MyButtonModal(_a) {
|
|
670
747
|
var _b = _a, {
|
|
671
748
|
fullScreen = false,
|
|
@@ -688,73 +765,89 @@ function MyButtonModal(_a) {
|
|
|
688
765
|
]);
|
|
689
766
|
const objectNameLower = objectName == null ? void 0 : objectName.toLowerCase();
|
|
690
767
|
if (crudType == "default") {
|
|
691
|
-
return /* @__PURE__ */
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
768
|
+
return /* @__PURE__ */ jsxs10(Fragment5, { children: [
|
|
769
|
+
/* @__PURE__ */ jsx18(Button3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "indigo" }, rest), { children: label })),
|
|
770
|
+
/* @__PURE__ */ jsx18(
|
|
771
|
+
Modal5,
|
|
772
|
+
{
|
|
773
|
+
fullScreen,
|
|
774
|
+
size: modalSize,
|
|
775
|
+
title,
|
|
776
|
+
opened: disclosure == null ? void 0 : disclosure[0],
|
|
777
|
+
onClose: disclosure[1].close,
|
|
778
|
+
children: /* @__PURE__ */ jsx18(MyFlexColumn, { children })
|
|
779
|
+
}
|
|
780
|
+
)
|
|
781
|
+
] });
|
|
702
782
|
}
|
|
703
783
|
if (crudType == "create") {
|
|
704
|
-
return /* @__PURE__ */
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
784
|
+
return /* @__PURE__ */ jsxs10(Fragment5, { children: [
|
|
785
|
+
/* @__PURE__ */ jsx18(Button3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, leftSection: /* @__PURE__ */ jsx18(IconPlus4, {}) }, rest), { children: label ? label : `Th\xEAm` })),
|
|
786
|
+
/* @__PURE__ */ jsx18(
|
|
787
|
+
Modal5,
|
|
788
|
+
{
|
|
789
|
+
fullScreen,
|
|
790
|
+
size: modalSize,
|
|
791
|
+
title: title ? title : `T\u1EA1o ${objectNameLower} m\u1EDBi`,
|
|
792
|
+
opened: disclosure == null ? void 0 : disclosure[0],
|
|
793
|
+
onClose: disclosure[1].close,
|
|
794
|
+
children: /* @__PURE__ */ jsx18(MyFlexColumn, { children })
|
|
795
|
+
}
|
|
796
|
+
)
|
|
797
|
+
] });
|
|
715
798
|
}
|
|
716
799
|
if (crudType == "createMultiple") {
|
|
717
|
-
return /* @__PURE__ */
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
800
|
+
return /* @__PURE__ */ jsxs10(Fragment5, { children: [
|
|
801
|
+
/* @__PURE__ */ jsx18(Button3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "green", leftSection: /* @__PURE__ */ jsx18(IconPlus4, {}) }, rest), { children: label ? label : `Import ${objectNameLower}` })),
|
|
802
|
+
/* @__PURE__ */ jsx18(
|
|
803
|
+
Modal5,
|
|
804
|
+
{
|
|
805
|
+
fullScreen,
|
|
806
|
+
size: modalSize,
|
|
807
|
+
title: title ? title : `Th\xEAm danh s\xE1ch ${objectNameLower}`,
|
|
808
|
+
opened: disclosure == null ? void 0 : disclosure[0],
|
|
809
|
+
onClose: disclosure[1].close,
|
|
810
|
+
children: /* @__PURE__ */ jsx18(MyFlexColumn, { children })
|
|
811
|
+
}
|
|
812
|
+
)
|
|
813
|
+
] });
|
|
728
814
|
}
|
|
729
815
|
if (crudType == "update") {
|
|
730
|
-
return /* @__PURE__ */
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
816
|
+
return /* @__PURE__ */ jsxs10(Fragment5, { children: [
|
|
817
|
+
/* @__PURE__ */ jsx18(Button3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "yellow", leftSection: /* @__PURE__ */ jsx18(IconEdit4, {}) }, rest), { children: label ? label : `Ch\u1EC9nh s\u1EEDa ${objectNameLower}` })),
|
|
818
|
+
/* @__PURE__ */ jsx18(
|
|
819
|
+
Modal5,
|
|
820
|
+
{
|
|
821
|
+
fullScreen,
|
|
822
|
+
size: modalSize,
|
|
823
|
+
title: title ? title : `Ch\u1EC9nh s\u1EEDa ${objectNameLower}`,
|
|
824
|
+
opened: disclosure == null ? void 0 : disclosure[0],
|
|
825
|
+
onClose: disclosure[1].close,
|
|
826
|
+
children: /* @__PURE__ */ jsx18(MyFlexColumn, { children })
|
|
827
|
+
}
|
|
828
|
+
)
|
|
829
|
+
] });
|
|
741
830
|
}
|
|
742
831
|
if (crudType == "delete") {
|
|
743
|
-
return /* @__PURE__ */
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
832
|
+
return /* @__PURE__ */ jsxs10(Fragment5, { children: [
|
|
833
|
+
/* @__PURE__ */ jsx18(Button3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "red", leftSection: /* @__PURE__ */ jsx18(IconTrash4, {}) }, rest), { children: label ? label : `X\xF3a ${objectNameLower}` })),
|
|
834
|
+
/* @__PURE__ */ jsx18(
|
|
835
|
+
Modal5,
|
|
836
|
+
{
|
|
837
|
+
fullScreen,
|
|
838
|
+
size: modalSize,
|
|
839
|
+
title: title ? title : `X\xF3a ${objectNameLower}`,
|
|
840
|
+
opened: disclosure == null ? void 0 : disclosure[0],
|
|
841
|
+
onClose: disclosure[1].close,
|
|
842
|
+
children: /* @__PURE__ */ jsx18(MyFlexColumn, { children })
|
|
843
|
+
}
|
|
844
|
+
)
|
|
845
|
+
] });
|
|
754
846
|
}
|
|
755
847
|
}
|
|
756
848
|
|
|
757
849
|
// src/components/Buttons/ButtonCRUD/AQButtonCreateByImportFile.tsx
|
|
850
|
+
import { jsx as jsx19, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
758
851
|
function AQButtonCreateByImportFile(_a) {
|
|
759
852
|
var _b = _a, {
|
|
760
853
|
form,
|
|
@@ -803,25 +896,29 @@ function AQButtonCreateByImportFile(_a) {
|
|
|
803
896
|
};
|
|
804
897
|
reader.readAsArrayBuffer(file);
|
|
805
898
|
};
|
|
806
|
-
return /* @__PURE__ */
|
|
807
|
-
})
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
899
|
+
return /* @__PURE__ */ jsx19(MyButtonModal, __spreadProps(__spreadValues({ disclosure: disc, crudType: "createMultiple" }, rest), { children: /* @__PURE__ */ jsx19("form", { onSubmit: form.onSubmit((values) => {
|
|
900
|
+
}), children: /* @__PURE__ */ jsxs11(MyFlexColumn, { children: [
|
|
901
|
+
/* @__PURE__ */ jsx19(
|
|
902
|
+
FileInput,
|
|
903
|
+
{
|
|
904
|
+
leftSection: /* @__PURE__ */ jsx19(IconFileTypeXls, {}),
|
|
905
|
+
accept: ".xlsx",
|
|
906
|
+
description: "\u0110\u1ECBnh d\u1EA1ng h\u1EE3p l\u1EC7: .xlsx",
|
|
907
|
+
label: "Ch\u1ECDn file",
|
|
908
|
+
onChange: handleFileChange,
|
|
909
|
+
clearable: true,
|
|
910
|
+
placeholder: "Ch\u1ECDn file"
|
|
911
|
+
}
|
|
912
|
+
),
|
|
913
|
+
/* @__PURE__ */ jsx19(MyButton, { type: "submit", crudType: "createMultiple" })
|
|
914
|
+
] }) }) }));
|
|
819
915
|
}
|
|
820
916
|
|
|
821
917
|
// src/components/Buttons/ButtonCRUD/AQButtonExportData.tsx
|
|
822
918
|
import { Button as Button4 } from "@mantine/core";
|
|
823
919
|
import { IconDownload as IconDownload2 } from "@tabler/icons-react";
|
|
824
920
|
import * as XLSX2 from "xlsx";
|
|
921
|
+
import { jsx as jsx20 } from "react/jsx-runtime";
|
|
825
922
|
function AQButtonExportData({
|
|
826
923
|
isAllData,
|
|
827
924
|
objectName,
|
|
@@ -847,7 +944,7 @@ function AQButtonExportData({
|
|
|
847
944
|
XLSX2.utils.book_append_sheet(workbook, worksheet, "Exported Data");
|
|
848
945
|
XLSX2.writeFile(workbook, `${objectName}.xlsx`);
|
|
849
946
|
};
|
|
850
|
-
return /* @__PURE__ */
|
|
947
|
+
return /* @__PURE__ */ jsx20(
|
|
851
948
|
Button4,
|
|
852
949
|
{
|
|
853
950
|
disabled: data.length === 0,
|
|
@@ -857,15 +954,16 @@ function AQButtonExportData({
|
|
|
857
954
|
event.preventDefault();
|
|
858
955
|
handleExport();
|
|
859
956
|
},
|
|
860
|
-
leftSection: /* @__PURE__ */
|
|
861
|
-
|
|
862
|
-
|
|
957
|
+
leftSection: /* @__PURE__ */ jsx20(IconDownload2, {}),
|
|
958
|
+
children: "Export"
|
|
959
|
+
}
|
|
863
960
|
);
|
|
864
961
|
}
|
|
865
962
|
|
|
866
963
|
// src/components/Buttons/ButtonCRUD/MyButtonCreate.tsx
|
|
867
964
|
import { useDisclosure as useDisclosure7 } from "@mantine/hooks";
|
|
868
965
|
import { useMutation as useMutation4, useQueryClient as useQueryClient4 } from "@tanstack/react-query";
|
|
966
|
+
import { jsx as jsx21, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
869
967
|
function MyButtonCreate(_a) {
|
|
870
968
|
var _b = _a, {
|
|
871
969
|
form,
|
|
@@ -908,9 +1006,12 @@ function MyButtonCreate(_a) {
|
|
|
908
1006
|
if (onError) onError();
|
|
909
1007
|
}
|
|
910
1008
|
});
|
|
911
|
-
return /* @__PURE__ */
|
|
1009
|
+
return /* @__PURE__ */ jsx21(MyButtonModal, __spreadProps(__spreadValues({ disclosure, crudType: "create" }, rest), { children: /* @__PURE__ */ jsx21("form", { onSubmit: form.onSubmit((values) => {
|
|
912
1010
|
mutation.mutate(values);
|
|
913
|
-
})
|
|
1011
|
+
}), children: /* @__PURE__ */ jsxs12(MyFlexColumn, { children: [
|
|
1012
|
+
children,
|
|
1013
|
+
/* @__PURE__ */ jsx21(MyButton, { type: "submit", crudType: "save" })
|
|
1014
|
+
] }) }) }));
|
|
914
1015
|
}
|
|
915
1016
|
|
|
916
1017
|
// src/components/Buttons/ButtonImport/MyButtonImport.tsx
|
|
@@ -919,16 +1020,18 @@ import { IconFileImport as IconFileImport2 } from "@tabler/icons-react";
|
|
|
919
1020
|
|
|
920
1021
|
// src/components/Combobox/Select/MySelect.tsx
|
|
921
1022
|
import { Select } from "@mantine/core";
|
|
1023
|
+
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
922
1024
|
function MySelect(_a) {
|
|
923
1025
|
var _b = _a, { label } = _b, rest = __objRest(_b, ["label"]);
|
|
924
|
-
return /* @__PURE__ */
|
|
1026
|
+
return /* @__PURE__ */ jsx22(Select, __spreadValues({ label, placeholder: label ? `Ch\u1ECDn ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
|
|
925
1027
|
}
|
|
926
1028
|
|
|
927
1029
|
// src/components/Layouts/FlexEnd/MyFlexEnd.tsx
|
|
928
1030
|
import { Group as Group4 } from "@mantine/core";
|
|
1031
|
+
import { jsx as jsx23 } from "react/jsx-runtime";
|
|
929
1032
|
function MyFlexEnd(_a) {
|
|
930
1033
|
var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
|
|
931
|
-
return /* @__PURE__ */
|
|
1034
|
+
return /* @__PURE__ */ jsx23(Group4, __spreadProps(__spreadValues({ justify: "end", mt: "md" }, rest), { children }));
|
|
932
1035
|
}
|
|
933
1036
|
|
|
934
1037
|
// src/components/Buttons/ButtonImport/SelectFieldModal.tsx
|
|
@@ -1099,69 +1202,106 @@ function useS_ButtonImport() {
|
|
|
1099
1202
|
}
|
|
1100
1203
|
|
|
1101
1204
|
// src/components/Buttons/ButtonImport/SelectFieldModal.tsx
|
|
1205
|
+
import { jsx as jsx24, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1102
1206
|
function SelectFieldModal({ stack, onImport }) {
|
|
1103
1207
|
var _a, _b;
|
|
1104
1208
|
const store = useS_ButtonImport();
|
|
1105
|
-
return /* @__PURE__ */
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
},
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1209
|
+
return /* @__PURE__ */ jsxs13(Modal6, __spreadProps(__spreadValues({ fullScreen: true }, stack.register("select-field-page")), { title: "Import", children: [
|
|
1210
|
+
/* @__PURE__ */ jsxs13(SimpleGrid, { cols: { base: 1, lg: 2 }, children: [
|
|
1211
|
+
/* @__PURE__ */ jsxs13(Fieldset, { legend: "Danh s\xE1ch tr\u01B0\u1EDDng th\xF4ng tin", children: [
|
|
1212
|
+
/* @__PURE__ */ jsxs13(Table, { stickyHeader: true, stickyHeaderOffset: 60, children: [
|
|
1213
|
+
/* @__PURE__ */ jsx24(Table.Thead, { bg: "cyan", children: /* @__PURE__ */ jsxs13(Table.Tr, { children: [
|
|
1214
|
+
/* @__PURE__ */ jsx24(Table.Th, { children: "M\xE3 field" }),
|
|
1215
|
+
/* @__PURE__ */ jsx24(Table.Th, { children: "T\xEAn field" })
|
|
1216
|
+
] }) }),
|
|
1217
|
+
/* @__PURE__ */ jsx24(Table.Tbody, { children: (_a = store.state.fieldConfig) == null ? void 0 : _a.filter((item) => item.isSelected == false || item.isSelected == void 0).map((item, idx) => /* @__PURE__ */ jsxs13(
|
|
1218
|
+
Table.Tr,
|
|
1219
|
+
{
|
|
1220
|
+
style: { cursor: "pointer" },
|
|
1221
|
+
children: [
|
|
1222
|
+
/* @__PURE__ */ jsx24(Table.Td, { onClick: () => store.changeSelected(item.fieldKey.toString(), true), children: item.fieldKey.toString() }),
|
|
1223
|
+
/* @__PURE__ */ jsx24(Table.Td, { onClick: () => store.changeSelected(item.fieldKey.toString(), true), children: item.fieldName })
|
|
1224
|
+
]
|
|
1225
|
+
},
|
|
1226
|
+
idx
|
|
1227
|
+
)) })
|
|
1228
|
+
] }),
|
|
1229
|
+
/* @__PURE__ */ jsx24(Space2, {}),
|
|
1230
|
+
/* @__PURE__ */ jsx24(Group5, { children: /* @__PURE__ */ jsx24(
|
|
1231
|
+
Button5,
|
|
1232
|
+
{
|
|
1233
|
+
onClick: () => {
|
|
1234
|
+
store.changeAllSelected(true);
|
|
1235
|
+
},
|
|
1236
|
+
leftSection: /* @__PURE__ */ jsx24(IconArrowBigRight, {}),
|
|
1237
|
+
children: "Chuy\u1EC3n t\u1EA5t c\u1EA3"
|
|
1238
|
+
}
|
|
1239
|
+
) })
|
|
1240
|
+
] }),
|
|
1241
|
+
/* @__PURE__ */ jsxs13(Fieldset, { legend: "Danh s\xE1ch tr\u01B0\u1EDDng th\xF4ng tin \u0111\u01B0\u1EE3c ch\u1ECDn", children: [
|
|
1242
|
+
/* @__PURE__ */ jsxs13(Table, { stickyHeader: true, stickyHeaderOffset: 60, children: [
|
|
1243
|
+
/* @__PURE__ */ jsx24(Table.Thead, { children: /* @__PURE__ */ jsxs13(Table.Tr, { children: [
|
|
1244
|
+
/* @__PURE__ */ jsx24(Table.Th, { children: "M\xE3 field" }),
|
|
1245
|
+
/* @__PURE__ */ jsx24(Table.Th, { children: "T\xEAn field" }),
|
|
1246
|
+
/* @__PURE__ */ jsx24(Table.Th, { children: "C\u1ED9t map" })
|
|
1247
|
+
] }) }),
|
|
1248
|
+
/* @__PURE__ */ jsx24(Table.Tbody, { children: (_b = store.state.fieldConfig) == null ? void 0 : _b.filter((item) => item.isSelected == true).map((item, idx) => /* @__PURE__ */ jsxs13(
|
|
1249
|
+
Table.Tr,
|
|
1250
|
+
{
|
|
1251
|
+
style: { cursor: "pointer" },
|
|
1252
|
+
children: [
|
|
1253
|
+
/* @__PURE__ */ jsx24(Table.Td, { onClick: () => store.changeSelected(item.fieldKey.toString(), false), children: item.fieldKey.toString() }),
|
|
1254
|
+
/* @__PURE__ */ jsx24(Table.Td, { onClick: () => store.changeSelected(item.fieldKey.toString(), false), children: item.fieldName }),
|
|
1255
|
+
/* @__PURE__ */ jsx24(Table.Td, { children: /* @__PURE__ */ jsx24(MySelect, { data: store.state.title, value: item.fieldToMap, onChange: (e4) => store.setFieldToMap(item.fieldKey.toString(), e4) }) })
|
|
1256
|
+
]
|
|
1257
|
+
},
|
|
1258
|
+
idx
|
|
1259
|
+
)) })
|
|
1260
|
+
] }),
|
|
1261
|
+
/* @__PURE__ */ jsx24(Space2, {}),
|
|
1262
|
+
/* @__PURE__ */ jsx24(
|
|
1263
|
+
Button5,
|
|
1264
|
+
{
|
|
1265
|
+
onClick: () => {
|
|
1266
|
+
store.changeAllSelected(false);
|
|
1267
|
+
},
|
|
1268
|
+
leftSection: /* @__PURE__ */ jsx24(IconArrowBigLeft, {}),
|
|
1269
|
+
children: "Chuy\u1EC3n t\u1EA5t c\u1EA3 v\u1EC1"
|
|
1270
|
+
}
|
|
1271
|
+
)
|
|
1272
|
+
] })
|
|
1273
|
+
] }),
|
|
1274
|
+
/* @__PURE__ */ jsx24(Divider, {}),
|
|
1275
|
+
/* @__PURE__ */ jsxs13(MyFlexEnd, { children: [
|
|
1276
|
+
/* @__PURE__ */ jsx24(
|
|
1277
|
+
Button5,
|
|
1278
|
+
{
|
|
1279
|
+
leftSection: /* @__PURE__ */ jsx24(IconArrowBackUp, {}),
|
|
1280
|
+
onClick: () => stack.close("select-field-page"),
|
|
1281
|
+
color: "gray.7",
|
|
1282
|
+
children: "Quay l\u1EA1i"
|
|
1283
|
+
}
|
|
1284
|
+
),
|
|
1285
|
+
/* @__PURE__ */ jsx24(
|
|
1286
|
+
Button5,
|
|
1287
|
+
{
|
|
1288
|
+
color: "blue.8",
|
|
1289
|
+
leftSection: /* @__PURE__ */ jsx24(IconArrowBigRight, {}),
|
|
1290
|
+
onClick: onImport,
|
|
1291
|
+
children: "Ti\u1EBFp t\u1EE5c / Import"
|
|
1292
|
+
}
|
|
1293
|
+
),
|
|
1294
|
+
/* @__PURE__ */ jsx24(
|
|
1295
|
+
Button5,
|
|
1296
|
+
{
|
|
1297
|
+
leftSection: /* @__PURE__ */ jsx24(IconSquareRoundedX, {}),
|
|
1298
|
+
onClick: () => stack.closeAll(),
|
|
1299
|
+
color: "red.6",
|
|
1300
|
+
children: "\u0110\xF3ng"
|
|
1301
|
+
}
|
|
1302
|
+
)
|
|
1303
|
+
] })
|
|
1304
|
+
] }));
|
|
1165
1305
|
}
|
|
1166
1306
|
|
|
1167
1307
|
// src/components/DataDisplay/DataTable/MyDataTable.tsx
|
|
@@ -1174,6 +1314,7 @@ import {
|
|
|
1174
1314
|
} from "mantine-react-table";
|
|
1175
1315
|
import { MRT_Localization_VI } from "mantine-react-table/locales/vi/index.cjs";
|
|
1176
1316
|
import { useEffect as useEffect3 } from "react";
|
|
1317
|
+
import { Fragment as Fragment6, jsx as jsx25, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1177
1318
|
function formatData(data, formats) {
|
|
1178
1319
|
return data.map((row) => {
|
|
1179
1320
|
const transformedRow = {};
|
|
@@ -1214,16 +1355,19 @@ function MyDataTable(_a) {
|
|
|
1214
1355
|
columns,
|
|
1215
1356
|
data,
|
|
1216
1357
|
renderTopToolbarCustomActions: ({ table: table2 }) => {
|
|
1217
|
-
return /* @__PURE__ */
|
|
1218
|
-
|
|
1219
|
-
{
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1358
|
+
return /* @__PURE__ */ jsxs14(Group6, { children: [
|
|
1359
|
+
renderTopToolbarCustomActions && renderTopToolbarCustomActions({ table: table2 }),
|
|
1360
|
+
exportAble && /* @__PURE__ */ jsx25(Fragment6, { children: /* @__PURE__ */ jsx25(
|
|
1361
|
+
Button6,
|
|
1362
|
+
{
|
|
1363
|
+
color: "green.8",
|
|
1364
|
+
onClick: () => handleExport(table2.getSelectedRowModel().rows),
|
|
1365
|
+
leftSection: /* @__PURE__ */ jsx25(IconDownload3, {}),
|
|
1366
|
+
variant: "filled",
|
|
1367
|
+
children: "Export"
|
|
1368
|
+
}
|
|
1369
|
+
) })
|
|
1370
|
+
] });
|
|
1227
1371
|
},
|
|
1228
1372
|
enableRowNumbers: true,
|
|
1229
1373
|
enableRowSelection: exportAble,
|
|
@@ -1270,110 +1414,131 @@ function MyDataTable(_a) {
|
|
|
1270
1414
|
setSelectedRow && setSelectedRow(table.getSelectedRowModel().rows.map((row) => row.original));
|
|
1271
1415
|
}, [table.getState().rowSelection]);
|
|
1272
1416
|
if (data == void 0) return;
|
|
1273
|
-
return /* @__PURE__ */
|
|
1417
|
+
return /* @__PURE__ */ jsx25(MantineReactTable, { table });
|
|
1274
1418
|
}
|
|
1275
1419
|
|
|
1276
1420
|
// src/components/Buttons/ButtonImport/SelectFileModal.tsx
|
|
1277
1421
|
import { Button as Button7, Fieldset as Fieldset2, FileInput as FileInput2, Modal as Modal7, NumberInput, Select as Select2, SimpleGrid as SimpleGrid2 } from "@mantine/core";
|
|
1278
1422
|
import { IconArrowBigRight as IconArrowBigRight2, IconSquareRoundedX as IconSquareRoundedX2 } from "@tabler/icons-react";
|
|
1423
|
+
import { jsx as jsx26, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1279
1424
|
function SelectFileModal({ onExportStructure, stack }) {
|
|
1280
1425
|
var _a;
|
|
1281
1426
|
const store = useS_ButtonImport();
|
|
1282
|
-
return /* @__PURE__ */
|
|
1427
|
+
return /* @__PURE__ */ jsxs15(
|
|
1283
1428
|
Modal7,
|
|
1284
|
-
__spreadValues({
|
|
1429
|
+
__spreadProps(__spreadValues({
|
|
1285
1430
|
title: "Import",
|
|
1286
1431
|
fullScreen: true
|
|
1287
|
-
}, stack.register("select-file-page")),
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1432
|
+
}, stack.register("select-file-page")), {
|
|
1433
|
+
children: [
|
|
1434
|
+
/* @__PURE__ */ jsx26(
|
|
1435
|
+
FileInput2,
|
|
1436
|
+
{
|
|
1437
|
+
value: store.state.file,
|
|
1438
|
+
onChange: (e4) => store.setProperty("file", e4),
|
|
1439
|
+
label: "File d\u1EEF li\u1EC7u",
|
|
1440
|
+
placeholder: "Ch\u1ECDn file d\u1EEF li\u1EC7u",
|
|
1441
|
+
clearable: true
|
|
1442
|
+
}
|
|
1443
|
+
),
|
|
1444
|
+
/* @__PURE__ */ jsxs15(SimpleGrid2, { cols: { base: 1, md: 2, lg: 2, xl: 4 }, children: [
|
|
1445
|
+
/* @__PURE__ */ jsx26(
|
|
1446
|
+
NumberInput,
|
|
1447
|
+
{
|
|
1448
|
+
label: "D\xF2ng ti\xEAu \u0111\u1EC1 b\u1EAFt \u0111\u1EA7u t\u1EEB",
|
|
1449
|
+
value: store.state.startTitleIndex,
|
|
1450
|
+
onChange: (e4) => store.setProperty("startTitleIndex", e4)
|
|
1451
|
+
}
|
|
1452
|
+
),
|
|
1453
|
+
/* @__PURE__ */ jsx26(
|
|
1454
|
+
NumberInput,
|
|
1455
|
+
{
|
|
1456
|
+
label: "D\xF2ng d\u1EEF li\u1EC7u b\u1EAFt \u0111\u1EA7u t\u1EEB",
|
|
1457
|
+
value: store.state.startDataIndex,
|
|
1458
|
+
onChange: (e4) => store.setProperty("startDataIndex", e4)
|
|
1459
|
+
}
|
|
1460
|
+
),
|
|
1461
|
+
/* @__PURE__ */ jsx26(
|
|
1462
|
+
Select2,
|
|
1463
|
+
{
|
|
1464
|
+
readOnly: true,
|
|
1465
|
+
label: "\u0110\u1ECBnh d\u1EA1ng s\u1ED1",
|
|
1466
|
+
data: ["100.000"],
|
|
1467
|
+
defaultValue: "100.000"
|
|
1468
|
+
}
|
|
1469
|
+
),
|
|
1470
|
+
/* @__PURE__ */ jsx26(
|
|
1471
|
+
Select2,
|
|
1472
|
+
{
|
|
1473
|
+
readOnly: true,
|
|
1474
|
+
label: "\u0110\u1ECBnh d\u1EA1ng ng\xE0y",
|
|
1475
|
+
data: ["dd/MM/yyyy"],
|
|
1476
|
+
defaultValue: "dd/MM/yyyy"
|
|
1477
|
+
}
|
|
1478
|
+
)
|
|
1479
|
+
] }),
|
|
1480
|
+
/* @__PURE__ */ jsx26(Fieldset2, { legend: "Danh s\xE1ch tr\u01B0\u1EDDng th\xF4ng tin trong file d\u1EEF li\u1EC7u", children: store.state.data && /* @__PURE__ */ jsx26(
|
|
1481
|
+
MyDataTable,
|
|
1482
|
+
{
|
|
1483
|
+
columns: store.columns,
|
|
1484
|
+
data: store.state.data
|
|
1485
|
+
}
|
|
1486
|
+
) }),
|
|
1487
|
+
/* @__PURE__ */ jsxs15(MyFlexEnd, { children: [
|
|
1488
|
+
/* @__PURE__ */ jsx26(
|
|
1489
|
+
Button7,
|
|
1490
|
+
{
|
|
1491
|
+
color: "teal.8",
|
|
1492
|
+
onClick: onExportStructure,
|
|
1493
|
+
children: "Xu\u1EA5t file c\u1EA5u tr\xFAc"
|
|
1494
|
+
}
|
|
1495
|
+
),
|
|
1496
|
+
/* @__PURE__ */ jsx26(
|
|
1497
|
+
Button7,
|
|
1498
|
+
{
|
|
1499
|
+
disabled: ((_a = store.state.data) == null ? void 0 : _a.length) == 0,
|
|
1500
|
+
color: "blue.8",
|
|
1501
|
+
leftSection: /* @__PURE__ */ jsx26(IconArrowBigRight2, {}),
|
|
1502
|
+
onClick: () => stack.open("select-field-page"),
|
|
1503
|
+
children: "Ti\u1EBFp t\u1EE5c"
|
|
1504
|
+
}
|
|
1505
|
+
),
|
|
1506
|
+
/* @__PURE__ */ jsx26(
|
|
1507
|
+
Button7,
|
|
1508
|
+
{
|
|
1509
|
+
color: "red.6",
|
|
1510
|
+
leftSection: /* @__PURE__ */ jsx26(IconSquareRoundedX2, {}),
|
|
1511
|
+
onClick: stack.closeAll,
|
|
1512
|
+
children: "\u0110\xF3ng"
|
|
1513
|
+
}
|
|
1514
|
+
)
|
|
1515
|
+
] })
|
|
1516
|
+
]
|
|
1517
|
+
})
|
|
1361
1518
|
);
|
|
1362
1519
|
}
|
|
1363
1520
|
|
|
1364
1521
|
// src/components/Buttons/ButtonImport/MyButtonImport.tsx
|
|
1522
|
+
import { Fragment as Fragment7, jsx as jsx27, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
1365
1523
|
function MyButtonImport({
|
|
1366
1524
|
onExportStructure,
|
|
1367
1525
|
onImport
|
|
1368
1526
|
}) {
|
|
1369
1527
|
const stack = useModalsStack3(["select-file-page", "select-field-page", "implement-page"]);
|
|
1370
1528
|
const store = useS_ButtonImport();
|
|
1371
|
-
return /* @__PURE__ */
|
|
1529
|
+
return /* @__PURE__ */ jsxs16(Fragment7, { children: [
|
|
1530
|
+
/* @__PURE__ */ jsx27(Button8, { color: "teal.8", onClick: () => stack.open("select-file-page"), leftSection: /* @__PURE__ */ jsx27(IconFileImport2, {}), title: "Import", children: "Import" }),
|
|
1531
|
+
/* @__PURE__ */ jsxs16(Modal8.Stack, { children: [
|
|
1532
|
+
/* @__PURE__ */ jsx27(SelectFileModal, { stack, onExportStructure }),
|
|
1533
|
+
/* @__PURE__ */ jsx27(SelectFieldModal, { stack, onImport: () => onImport(store.getDataFinal()) })
|
|
1534
|
+
] })
|
|
1535
|
+
] });
|
|
1372
1536
|
}
|
|
1373
1537
|
|
|
1374
1538
|
// src/components/Buttons/ButtonModal/AQSelectTableByOpenModal.tsx
|
|
1375
1539
|
import { Button as Button9, Fieldset as Fieldset3, Modal as Modal9 } from "@mantine/core";
|
|
1376
1540
|
import { useDisclosure as useDisclosure8 } from "@mantine/hooks";
|
|
1541
|
+
import { Fragment as Fragment8, jsx as jsx28, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
1377
1542
|
function AQSelectTableByOpenModal(_a) {
|
|
1378
1543
|
var _b = _a, {
|
|
1379
1544
|
setSelectedData,
|
|
@@ -1401,43 +1566,48 @@ function AQSelectTableByOpenModal(_a) {
|
|
|
1401
1566
|
"closeAfterSelect"
|
|
1402
1567
|
]);
|
|
1403
1568
|
const disclosure = useDisclosure8(false);
|
|
1404
|
-
return /* @__PURE__ */
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1569
|
+
return /* @__PURE__ */ jsxs17(Fragment8, { children: [
|
|
1570
|
+
/* @__PURE__ */ jsx28(
|
|
1571
|
+
Button9,
|
|
1572
|
+
__spreadProps(__spreadValues({
|
|
1573
|
+
onClick: disclosure[1].open
|
|
1574
|
+
}, rest), {
|
|
1575
|
+
children: label ? label : `Ch\u1ECDn t\u1EEB danh s\xE1ch`
|
|
1576
|
+
})
|
|
1577
|
+
),
|
|
1578
|
+
/* @__PURE__ */ jsx28(
|
|
1579
|
+
Modal9,
|
|
1580
|
+
{
|
|
1581
|
+
fullScreen,
|
|
1582
|
+
size: modalSize,
|
|
1583
|
+
title,
|
|
1584
|
+
opened: disclosure == null ? void 0 : disclosure[0],
|
|
1585
|
+
onClose: disclosure[1].close,
|
|
1586
|
+
children: /* @__PURE__ */ jsx28(MyFlexColumn, { children: /* @__PURE__ */ jsx28(Fieldset3, { legend: listLabel ? listLabel : "Danh s\xE1ch", children: /* @__PURE__ */ jsx28(
|
|
1587
|
+
MyDataTable,
|
|
1588
|
+
__spreadValues({
|
|
1589
|
+
renderTopToolbarCustomActions: ({ table }) => {
|
|
1590
|
+
return /* @__PURE__ */ jsx28(Button9, { onClick: () => {
|
|
1591
|
+
setSelectedData(table.getSelectedRowModel().rows.map((row) => row.original));
|
|
1592
|
+
closeAfterSelect && disclosure[1].close();
|
|
1593
|
+
}, children: "Ch\u1ECDn" });
|
|
1594
|
+
},
|
|
1595
|
+
enableRowSelection: true,
|
|
1596
|
+
data,
|
|
1597
|
+
columns
|
|
1598
|
+
}, rest)
|
|
1599
|
+
) }) })
|
|
1600
|
+
}
|
|
1601
|
+
)
|
|
1602
|
+
] });
|
|
1434
1603
|
}
|
|
1435
1604
|
|
|
1436
1605
|
// src/components/Buttons/ButtonPrintPDF/MyButtonPrintPDF.tsx
|
|
1437
|
-
import
|
|
1606
|
+
import { useRef as useRef2 } from "react";
|
|
1438
1607
|
import { Button as Button10 } from "@mantine/core";
|
|
1439
1608
|
import { IconPrinter as IconPrinter2 } from "@tabler/icons-react";
|
|
1440
1609
|
import { useReactToPrint } from "react-to-print";
|
|
1610
|
+
import { Fragment as Fragment9, jsx as jsx29, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
1441
1611
|
function MyButtonPrintPDF(_a) {
|
|
1442
1612
|
var _b = _a, { contentToPrint } = _b, rest = __objRest(_b, ["contentToPrint"]);
|
|
1443
1613
|
const printRef = useRef2(null);
|
|
@@ -1451,29 +1621,34 @@ function MyButtonPrintPDF(_a) {
|
|
|
1451
1621
|
if (!contentToPrint) return;
|
|
1452
1622
|
handlePrint();
|
|
1453
1623
|
}
|
|
1454
|
-
return /* @__PURE__ */
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1624
|
+
return /* @__PURE__ */ jsxs18(Fragment9, { children: [
|
|
1625
|
+
/* @__PURE__ */ jsx29("div", { style: { display: "none" }, children: /* @__PURE__ */ jsx29("div", { ref: printRef, children: contentToPrint }) }),
|
|
1626
|
+
/* @__PURE__ */ jsx29(
|
|
1627
|
+
Button10,
|
|
1628
|
+
__spreadProps(__spreadValues({
|
|
1629
|
+
color: "orange",
|
|
1630
|
+
onClick: handleClick,
|
|
1631
|
+
leftSection: /* @__PURE__ */ jsx29(IconPrinter2, {})
|
|
1632
|
+
}, rest), {
|
|
1633
|
+
children: "In"
|
|
1634
|
+
})
|
|
1635
|
+
)
|
|
1636
|
+
] });
|
|
1463
1637
|
}
|
|
1464
1638
|
|
|
1465
1639
|
// src/components/Buttons/ButtonRouterBack/MyButtonRouterBack.tsx
|
|
1466
1640
|
import { Button as Button11 } from "@mantine/core";
|
|
1467
1641
|
import { IconArrowBack } from "@tabler/icons-react";
|
|
1468
1642
|
import { useRouter as useRouter2 } from "next/navigation";
|
|
1643
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
1469
1644
|
function MyButtonRouterBack(_a) {
|
|
1470
1645
|
var _b = _a, { url, label } = _b, rest = __objRest(_b, ["url", "label"]);
|
|
1471
1646
|
const router = useRouter2();
|
|
1472
|
-
return /* @__PURE__ */
|
|
1647
|
+
return /* @__PURE__ */ jsx30(
|
|
1473
1648
|
Button11,
|
|
1474
|
-
__spreadValues({
|
|
1649
|
+
__spreadProps(__spreadValues({
|
|
1475
1650
|
variant: "light",
|
|
1476
|
-
leftSection: /* @__PURE__ */
|
|
1651
|
+
leftSection: /* @__PURE__ */ jsx30(IconArrowBack, { stroke: 2 }),
|
|
1477
1652
|
onClick: () => {
|
|
1478
1653
|
if (url) {
|
|
1479
1654
|
router.replace(url);
|
|
@@ -1481,8 +1656,9 @@ function MyButtonRouterBack(_a) {
|
|
|
1481
1656
|
}
|
|
1482
1657
|
router.back();
|
|
1483
1658
|
}
|
|
1484
|
-
}, rest),
|
|
1485
|
-
|
|
1659
|
+
}, rest), {
|
|
1660
|
+
children: label ? label : "Tr\u1EDF v\u1EC1"
|
|
1661
|
+
})
|
|
1486
1662
|
);
|
|
1487
1663
|
}
|
|
1488
1664
|
|
|
@@ -1516,6 +1692,7 @@ import { useDisclosure as useDisclosure9 } from "@mantine/hooks";
|
|
|
1516
1692
|
import { IconLivePhoto as IconLivePhoto2, IconMaximize as IconMaximize3, IconMinimize as IconMinimize3 } from "@tabler/icons-react";
|
|
1517
1693
|
import { useQuery } from "@tanstack/react-query";
|
|
1518
1694
|
import { useState as useState6 } from "react";
|
|
1695
|
+
import { Fragment as Fragment10, jsx as jsx31, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
1519
1696
|
function MyButtonViewPDF({ id, modalSize = "80%", label = "Xem file", src = "https://datafiles.chinhphu.vn/cpp/files/vbpq/2016/07/85.signed.pdf" }) {
|
|
1520
1697
|
var _a, _b;
|
|
1521
1698
|
const disc = useDisclosure9(false);
|
|
@@ -1528,51 +1705,60 @@ function MyButtonViewPDF({ id, modalSize = "80%", label = "Xem file", src = "htt
|
|
|
1528
1705
|
},
|
|
1529
1706
|
enabled: id != void 0 && disc[0] == true
|
|
1530
1707
|
});
|
|
1531
|
-
return /* @__PURE__ */
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
opened: disc[0],
|
|
1538
|
-
onClose: disc[1].close,
|
|
1539
|
-
size: modalSize,
|
|
1540
|
-
title: /* @__PURE__ */ React.createElement(Group7, null, /* @__PURE__ */ React.createElement(Text5, null, "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp"), fullScreen[0] ? /* @__PURE__ */ React.createElement(
|
|
1541
|
-
ActionIcon9,
|
|
1542
|
-
{
|
|
1543
|
-
onClick: () => {
|
|
1544
|
-
fullScreen[1](false);
|
|
1545
|
-
hSize[1]("80vh");
|
|
1546
|
-
}
|
|
1547
|
-
},
|
|
1548
|
-
/* @__PURE__ */ React.createElement(IconMinimize3, null)
|
|
1549
|
-
) : /* @__PURE__ */ React.createElement(
|
|
1550
|
-
ActionIcon9,
|
|
1551
|
-
{
|
|
1552
|
-
onClick: () => {
|
|
1553
|
-
fullScreen[1](true);
|
|
1554
|
-
hSize[1]("90vh");
|
|
1555
|
-
}
|
|
1556
|
-
},
|
|
1557
|
-
/* @__PURE__ */ React.createElement(IconMaximize3, null)
|
|
1558
|
-
))
|
|
1559
|
-
},
|
|
1560
|
-
/* @__PURE__ */ React.createElement(Paper3, { h: hSize[0], p: "lg", pos: "relative" }, /* @__PURE__ */ React.createElement(LoadingOverlay, { visible: query.isLoading, zIndex: 1e3, overlayProps: { radius: "sm", blur: 2 } }), query.data ? /* @__PURE__ */ React.createElement(
|
|
1561
|
-
"iframe",
|
|
1708
|
+
return /* @__PURE__ */ jsxs19(Fragment10, { children: [
|
|
1709
|
+
/* @__PURE__ */ jsx31(Tooltip4, { label: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp", children: /* @__PURE__ */ jsx31(Button12, { color: "cyan", onClick: () => {
|
|
1710
|
+
disc[1].open();
|
|
1711
|
+
}, leftSection: /* @__PURE__ */ jsx31(IconLivePhoto2, {}), children: label }) }),
|
|
1712
|
+
/* @__PURE__ */ jsx31(
|
|
1713
|
+
Modal10,
|
|
1562
1714
|
{
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1715
|
+
fullScreen: fullScreen[0],
|
|
1716
|
+
opened: disc[0],
|
|
1717
|
+
onClose: disc[1].close,
|
|
1718
|
+
size: modalSize,
|
|
1719
|
+
title: /* @__PURE__ */ jsxs19(Group7, { children: [
|
|
1720
|
+
/* @__PURE__ */ jsx31(Text5, { children: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp" }),
|
|
1721
|
+
fullScreen[0] ? /* @__PURE__ */ jsx31(
|
|
1722
|
+
ActionIcon9,
|
|
1723
|
+
{
|
|
1724
|
+
onClick: () => {
|
|
1725
|
+
fullScreen[1](false);
|
|
1726
|
+
hSize[1]("80vh");
|
|
1727
|
+
},
|
|
1728
|
+
children: /* @__PURE__ */ jsx31(IconMinimize3, {})
|
|
1729
|
+
}
|
|
1730
|
+
) : /* @__PURE__ */ jsx31(
|
|
1731
|
+
ActionIcon9,
|
|
1732
|
+
{
|
|
1733
|
+
onClick: () => {
|
|
1734
|
+
fullScreen[1](true);
|
|
1735
|
+
hSize[1]("90vh");
|
|
1736
|
+
},
|
|
1737
|
+
children: /* @__PURE__ */ jsx31(IconMaximize3, {})
|
|
1738
|
+
}
|
|
1739
|
+
)
|
|
1740
|
+
] }),
|
|
1741
|
+
children: /* @__PURE__ */ jsxs19(Paper3, { h: hSize[0], p: "lg", pos: "relative", children: [
|
|
1742
|
+
/* @__PURE__ */ jsx31(LoadingOverlay, { visible: query.isLoading, zIndex: 1e3, overlayProps: { radius: "sm", blur: 2 } }),
|
|
1743
|
+
query.data ? /* @__PURE__ */ jsx31(
|
|
1744
|
+
"iframe",
|
|
1745
|
+
{
|
|
1746
|
+
src: `data:application/pdf;base64, ${(_b = (_a = query.data) == null ? void 0 : _a.fileDetail) == null ? void 0 : _b.fileBase64String}`,
|
|
1747
|
+
width: "100%",
|
|
1748
|
+
height: "100%"
|
|
1749
|
+
}
|
|
1750
|
+
) : /* @__PURE__ */ jsx31(
|
|
1751
|
+
"iframe",
|
|
1752
|
+
{
|
|
1753
|
+
src,
|
|
1754
|
+
width: "100%",
|
|
1755
|
+
height: "100%"
|
|
1756
|
+
}
|
|
1757
|
+
)
|
|
1758
|
+
] })
|
|
1573
1759
|
}
|
|
1574
|
-
)
|
|
1575
|
-
)
|
|
1760
|
+
)
|
|
1761
|
+
] });
|
|
1576
1762
|
}
|
|
1577
1763
|
|
|
1578
1764
|
// node_modules/preact/dist/preact.mjs
|
|
@@ -5514,6 +5700,7 @@ import { ScheduleXCalendar, useNextCalendarApp } from "@schedule-x/react";
|
|
|
5514
5700
|
import { Paper as Paper4, Text as Text6 } from "@mantine/core";
|
|
5515
5701
|
import "@schedule-x/theme-default/dist/index.css";
|
|
5516
5702
|
import { useEffect as useEffect4 } from "react";
|
|
5703
|
+
import { jsx as jsx32, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
5517
5704
|
function MyCalendar() {
|
|
5518
5705
|
const plugins = [createEventsServicePlugin(), createEventModalPlugin()];
|
|
5519
5706
|
const calendar = useNextCalendarApp({
|
|
@@ -5587,10 +5774,17 @@ function MyCalendar() {
|
|
|
5587
5774
|
useEffect4(() => {
|
|
5588
5775
|
calendar == null ? void 0 : calendar.events.getAll();
|
|
5589
5776
|
}, []);
|
|
5590
|
-
return /* @__PURE__ */
|
|
5777
|
+
return /* @__PURE__ */ jsx32("div", { children: /* @__PURE__ */ jsx32(ScheduleXCalendar, { calendarApp: calendar, customComponents: {
|
|
5591
5778
|
timeGridEvent: ({ calendarEvent }) => {
|
|
5592
5779
|
console.log(calendarEvent);
|
|
5593
|
-
return /* @__PURE__ */
|
|
5780
|
+
return /* @__PURE__ */ jsx32(Paper4, { h: "100%", bg: calendarEvent.laLichThi ? "violet.2" : "blue.2", p: 4, children: /* @__PURE__ */ jsxs20(MyFlexColumn, { gap: 1, children: [
|
|
5781
|
+
/* @__PURE__ */ jsxs20(Text6, { size: "sm", fw: "bold", children: [
|
|
5782
|
+
calendarEvent.laLichThi ? "(Thi) " : "(H\u1ECDc) ",
|
|
5783
|
+
calendarEvent.title
|
|
5784
|
+
] }),
|
|
5785
|
+
calendarEvent.laLichThi == false && /* @__PURE__ */ jsx32(Text6, { size: "sm", children: calendarEvent.giangvien }),
|
|
5786
|
+
/* @__PURE__ */ jsx32(Text6, { size: "sm", children: calendarEvent.location })
|
|
5787
|
+
] }) });
|
|
5594
5788
|
}
|
|
5595
5789
|
// eventModal: ({ calendarEvent }) => {
|
|
5596
5790
|
// return (
|
|
@@ -5599,32 +5793,36 @@ function MyCalendar() {
|
|
|
5599
5793
|
// </Paper>
|
|
5600
5794
|
// )
|
|
5601
5795
|
// }
|
|
5602
|
-
} }));
|
|
5796
|
+
} }) });
|
|
5603
5797
|
}
|
|
5604
5798
|
|
|
5605
5799
|
// src/components/CenterFull/MyCenterFull.tsx
|
|
5606
5800
|
import { Center as Center2, Group as Group8 } from "@mantine/core";
|
|
5801
|
+
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
5607
5802
|
function MyCenterFull({ children }) {
|
|
5608
|
-
return /* @__PURE__ */
|
|
5803
|
+
return /* @__PURE__ */ jsx33(Center2, { w: "100%", children: /* @__PURE__ */ jsx33(Group8, { children }) });
|
|
5609
5804
|
}
|
|
5610
5805
|
|
|
5611
5806
|
// src/components/Checkbox/MyCheckbox.tsx
|
|
5612
5807
|
import { Checkbox as Checkbox2 } from "@mantine/core";
|
|
5808
|
+
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
5613
5809
|
function MyCheckbox(_a) {
|
|
5614
5810
|
var rest = __objRest(_a, []);
|
|
5615
|
-
return /* @__PURE__ */
|
|
5811
|
+
return /* @__PURE__ */ jsx34(Checkbox2, __spreadValues({}, rest));
|
|
5616
5812
|
}
|
|
5617
5813
|
|
|
5618
5814
|
// src/components/Layouts/FlexRow/MyFlexRow.tsx
|
|
5619
5815
|
import { Flex as Flex2 } from "@mantine/core";
|
|
5816
|
+
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
5620
5817
|
function MyFlexRow(_a) {
|
|
5621
5818
|
var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
|
|
5622
|
-
return /* @__PURE__ */
|
|
5819
|
+
return /* @__PURE__ */ jsx35(Flex2, __spreadProps(__spreadValues({ gap: "md", align: "center" }, rest), { children }));
|
|
5623
5820
|
}
|
|
5624
5821
|
|
|
5625
5822
|
// src/components/DataDisplay/Card/AQCard.tsx
|
|
5626
5823
|
import { Badge, Card, Center as Center3, Image, Text as Text7 } from "@mantine/core";
|
|
5627
5824
|
import Link from "next/link";
|
|
5825
|
+
import { jsx as jsx36, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
5628
5826
|
function AQCard({
|
|
5629
5827
|
imgSrc = "https://raw.githubusercontent.com/mantinedev/mantine/master/.demo/images/bg-8.png",
|
|
5630
5828
|
title,
|
|
@@ -5634,99 +5832,142 @@ function AQCard({
|
|
|
5634
5832
|
status,
|
|
5635
5833
|
href = ""
|
|
5636
5834
|
}) {
|
|
5637
|
-
return /* @__PURE__ */
|
|
5638
|
-
|
|
5639
|
-
|
|
5640
|
-
|
|
5641
|
-
|
|
5642
|
-
|
|
5643
|
-
|
|
5644
|
-
|
|
5645
|
-
|
|
5646
|
-
|
|
5835
|
+
return /* @__PURE__ */ jsxs21(Card, { shadow: "sm", padding: "lg", radius: "md", withBorder: true, component: Link, href, children: [
|
|
5836
|
+
/* @__PURE__ */ jsx36(Card.Section, { children: /* @__PURE__ */ jsx36(Center3, { children: /* @__PURE__ */ jsx36(
|
|
5837
|
+
Image,
|
|
5838
|
+
{
|
|
5839
|
+
src: imgSrc,
|
|
5840
|
+
h: 200,
|
|
5841
|
+
w: "auto",
|
|
5842
|
+
fallbackSrc: "https://placehold.co/600x400?text=Placeholder",
|
|
5843
|
+
alt: "Norway"
|
|
5844
|
+
}
|
|
5845
|
+
) }) }),
|
|
5846
|
+
/* @__PURE__ */ jsxs21(MyFlexRow, { justify: "space-between", mt: "md", mb: "xs", children: [
|
|
5847
|
+
/* @__PURE__ */ jsx36(Text7, { fw: 500, children: title }),
|
|
5848
|
+
status && /* @__PURE__ */ jsx36(Badge, { color: "violet.5", w: "150px", children: status })
|
|
5849
|
+
] }),
|
|
5850
|
+
/* @__PURE__ */ jsx36(Text7, { size: "sm", c: "dimmed", lineClamp: 2, children: description }),
|
|
5851
|
+
children
|
|
5852
|
+
] });
|
|
5647
5853
|
}
|
|
5648
5854
|
|
|
5649
5855
|
// src/components/DataDisplay/KeyLabel/MyKeyLabel.tsx
|
|
5650
5856
|
import { Group as Group9, Text as Text8 } from "@mantine/core";
|
|
5857
|
+
import { jsx as jsx37, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
5651
5858
|
function MyKeyLabel({ keyLabel, label }) {
|
|
5652
|
-
return /* @__PURE__ */
|
|
5859
|
+
return /* @__PURE__ */ jsxs22(Group9, { gap: 5, children: [
|
|
5860
|
+
/* @__PURE__ */ jsxs22(Text8, { fw: "bold", children: [
|
|
5861
|
+
keyLabel,
|
|
5862
|
+
":"
|
|
5863
|
+
] }),
|
|
5864
|
+
/* @__PURE__ */ jsx37(Text8, { children: label })
|
|
5865
|
+
] });
|
|
5653
5866
|
}
|
|
5654
5867
|
|
|
5655
5868
|
// src/components/DataDisplay/NumberFormatter/MyNumberFormatter.tsx
|
|
5656
5869
|
import { NumberFormatter } from "@mantine/core";
|
|
5870
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
5657
5871
|
function MyNumberFormatter(_a) {
|
|
5658
5872
|
var rest = __objRest(_a, []);
|
|
5659
|
-
return /* @__PURE__ */
|
|
5873
|
+
return /* @__PURE__ */ jsx38(NumberFormatter, __spreadValues({ thousandSeparator: true, suffix: " VN\u0110" }, rest));
|
|
5660
5874
|
}
|
|
5661
5875
|
|
|
5662
5876
|
// src/components/DataDisplay/StatCard/AQStatCard1.tsx
|
|
5663
5877
|
import { Box, Button as Button13, Flex as Flex3, Group as Group10, Paper as Paper5, Text as Text9 } from "@mantine/core";
|
|
5664
5878
|
import { IconArrowDownRight, IconArrowUpRight } from "@tabler/icons-react";
|
|
5879
|
+
import { Fragment as Fragment11, jsx as jsx39, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
5665
5880
|
function AQStatCard1({ title, value, unit = "", description, icons, diff }) {
|
|
5666
|
-
return /* @__PURE__ */
|
|
5881
|
+
return /* @__PURE__ */ jsx39(Fragment11, { children: /* @__PURE__ */ jsxs23(
|
|
5667
5882
|
Paper5,
|
|
5668
5883
|
{
|
|
5669
5884
|
withBorder: true,
|
|
5670
5885
|
p: "md",
|
|
5671
5886
|
radius: "md",
|
|
5672
|
-
|
|
5887
|
+
children: [
|
|
5888
|
+
/* @__PURE__ */ jsxs23(Group10, { justify: "space-between", children: [
|
|
5889
|
+
/* @__PURE__ */ jsxs23(Flex3, { direction: "column", children: [
|
|
5890
|
+
/* @__PURE__ */ jsx39(
|
|
5891
|
+
Text9,
|
|
5892
|
+
{
|
|
5893
|
+
tt: "uppercase",
|
|
5894
|
+
size: "lg",
|
|
5895
|
+
c: "dimmed",
|
|
5896
|
+
children: title
|
|
5897
|
+
}
|
|
5898
|
+
),
|
|
5899
|
+
unit == "" ? /* @__PURE__ */ jsxs23(Text9, { size: "xs", style: { visibility: "hidden" }, children: [
|
|
5900
|
+
"\u0110\u01A1n v\u1ECB: ",
|
|
5901
|
+
/* @__PURE__ */ jsx39("strong", { children: unit })
|
|
5902
|
+
] }) : /* @__PURE__ */ jsxs23(Text9, { size: "xs", children: [
|
|
5903
|
+
"\u0110\u01A1n v\u1ECB: ",
|
|
5904
|
+
/* @__PURE__ */ jsx39("strong", { children: unit })
|
|
5905
|
+
] })
|
|
5906
|
+
] }),
|
|
5907
|
+
/* @__PURE__ */ jsx39(Box, { children: icons })
|
|
5908
|
+
] }),
|
|
5909
|
+
/* @__PURE__ */ jsxs23(
|
|
5910
|
+
Group10,
|
|
5911
|
+
{
|
|
5912
|
+
mt: "5",
|
|
5913
|
+
align: "flex-end",
|
|
5914
|
+
gap: "xs",
|
|
5915
|
+
children: [
|
|
5916
|
+
/* @__PURE__ */ jsx39(
|
|
5917
|
+
Text9,
|
|
5918
|
+
{
|
|
5919
|
+
fw: 700,
|
|
5920
|
+
fz: "h1",
|
|
5921
|
+
children: value
|
|
5922
|
+
}
|
|
5923
|
+
),
|
|
5924
|
+
/* @__PURE__ */ jsxs23(
|
|
5925
|
+
Text9,
|
|
5926
|
+
{
|
|
5927
|
+
mb: "2",
|
|
5928
|
+
c: diff > 0 ? "teal" : "red",
|
|
5929
|
+
fz: "h2",
|
|
5930
|
+
fw: 500,
|
|
5931
|
+
children: [
|
|
5932
|
+
/* @__PURE__ */ jsxs23("span", { children: [
|
|
5933
|
+
diff,
|
|
5934
|
+
"%"
|
|
5935
|
+
] }),
|
|
5936
|
+
diff > 0 ? /* @__PURE__ */ jsx39(IconArrowUpRight, {}) : /* @__PURE__ */ jsx39(IconArrowDownRight, {})
|
|
5937
|
+
]
|
|
5938
|
+
}
|
|
5939
|
+
)
|
|
5940
|
+
]
|
|
5941
|
+
}
|
|
5942
|
+
),
|
|
5943
|
+
/* @__PURE__ */ jsxs23(Group10, { justify: "space-between", children: [
|
|
5944
|
+
/* @__PURE__ */ jsx39(Text9, { tt: "uppercase", fz: "xs", c: "dimmed", children: description }),
|
|
5945
|
+
/* @__PURE__ */ jsx39(
|
|
5946
|
+
Button13,
|
|
5947
|
+
{
|
|
5948
|
+
variant: "light",
|
|
5949
|
+
size: "xs",
|
|
5950
|
+
children: "Xem chi ti\u1EBFt"
|
|
5951
|
+
}
|
|
5952
|
+
)
|
|
5953
|
+
] })
|
|
5954
|
+
]
|
|
5673
5955
|
},
|
|
5674
|
-
|
|
5675
|
-
|
|
5676
|
-
{
|
|
5677
|
-
tt: "uppercase",
|
|
5678
|
-
size: "lg",
|
|
5679
|
-
c: "dimmed"
|
|
5680
|
-
},
|
|
5681
|
-
title
|
|
5682
|
-
), unit == "" ? /* @__PURE__ */ React.createElement(Text9, { size: "xs", style: { visibility: "hidden" } }, "\u0110\u01A1n v\u1ECB: ", /* @__PURE__ */ React.createElement("strong", null, unit)) : /* @__PURE__ */ React.createElement(Text9, { size: "xs" }, "\u0110\u01A1n v\u1ECB: ", /* @__PURE__ */ React.createElement("strong", null, unit))), /* @__PURE__ */ React.createElement(Box, null, icons)),
|
|
5683
|
-
/* @__PURE__ */ React.createElement(
|
|
5684
|
-
Group10,
|
|
5685
|
-
{
|
|
5686
|
-
mt: "5",
|
|
5687
|
-
align: "flex-end",
|
|
5688
|
-
gap: "xs"
|
|
5689
|
-
},
|
|
5690
|
-
/* @__PURE__ */ React.createElement(
|
|
5691
|
-
Text9,
|
|
5692
|
-
{
|
|
5693
|
-
fw: 700,
|
|
5694
|
-
fz: "h1"
|
|
5695
|
-
},
|
|
5696
|
-
value
|
|
5697
|
-
),
|
|
5698
|
-
/* @__PURE__ */ React.createElement(
|
|
5699
|
-
Text9,
|
|
5700
|
-
{
|
|
5701
|
-
mb: "2",
|
|
5702
|
-
c: diff > 0 ? "teal" : "red",
|
|
5703
|
-
fz: "h2",
|
|
5704
|
-
fw: 500
|
|
5705
|
-
},
|
|
5706
|
-
/* @__PURE__ */ React.createElement("span", null, diff, "%"),
|
|
5707
|
-
diff > 0 ? /* @__PURE__ */ React.createElement(IconArrowUpRight, null) : /* @__PURE__ */ React.createElement(IconArrowDownRight, null)
|
|
5708
|
-
)
|
|
5709
|
-
),
|
|
5710
|
-
/* @__PURE__ */ React.createElement(Group10, { justify: "space-between" }, /* @__PURE__ */ React.createElement(Text9, { tt: "uppercase", fz: "xs", c: "dimmed" }, description), /* @__PURE__ */ React.createElement(
|
|
5711
|
-
Button13,
|
|
5712
|
-
{
|
|
5713
|
-
variant: "light",
|
|
5714
|
-
size: "xs"
|
|
5715
|
-
},
|
|
5716
|
-
"Xem chi ti\u1EBFt"
|
|
5717
|
-
))
|
|
5718
|
-
));
|
|
5956
|
+
title
|
|
5957
|
+
) });
|
|
5719
5958
|
}
|
|
5720
5959
|
|
|
5721
5960
|
// src/components/Inputs/DateInput/MyDateInput.tsx
|
|
5722
5961
|
import { DateInput } from "@mantine/dates";
|
|
5962
|
+
import { jsx as jsx40 } from "react/jsx-runtime";
|
|
5723
5963
|
function MyDateInput(_a) {
|
|
5724
5964
|
var _b = _a, { label } = _b, rest = __objRest(_b, ["label"]);
|
|
5725
|
-
return /* @__PURE__ */
|
|
5965
|
+
return /* @__PURE__ */ jsx40(DateInput, __spreadValues({ label, placeholder: label ? `Ch\u1ECDn ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
|
|
5726
5966
|
}
|
|
5727
5967
|
|
|
5728
5968
|
// src/components/Inputs/Fieldset/MyFieldset.tsx
|
|
5729
5969
|
import { Box as Box2, Fieldset as Fieldset4, Text as Text10 } from "@mantine/core";
|
|
5970
|
+
import { jsx as jsx41 } from "react/jsx-runtime";
|
|
5730
5971
|
function MyFieldset(_a) {
|
|
5731
5972
|
var _b = _a, {
|
|
5732
5973
|
children,
|
|
@@ -5735,43 +5976,46 @@ function MyFieldset(_a) {
|
|
|
5735
5976
|
"children",
|
|
5736
5977
|
"title"
|
|
5737
5978
|
]);
|
|
5738
|
-
return /* @__PURE__ */
|
|
5979
|
+
return /* @__PURE__ */ jsx41(
|
|
5739
5980
|
Fieldset4,
|
|
5740
5981
|
__spreadProps(__spreadValues({}, rest), {
|
|
5741
|
-
legend: /* @__PURE__ */
|
|
5982
|
+
legend: /* @__PURE__ */ jsx41(
|
|
5742
5983
|
Box2,
|
|
5743
5984
|
{
|
|
5744
5985
|
bg: "blue.4",
|
|
5745
5986
|
px: "xs",
|
|
5746
5987
|
py: 2,
|
|
5747
|
-
style: { borderRadius: 4 }
|
|
5748
|
-
|
|
5749
|
-
|
|
5750
|
-
)
|
|
5751
|
-
|
|
5752
|
-
|
|
5988
|
+
style: { borderRadius: 4 },
|
|
5989
|
+
children: /* @__PURE__ */ jsx41(Text10, { c: "white", fw: 500, children: title })
|
|
5990
|
+
}
|
|
5991
|
+
),
|
|
5992
|
+
children
|
|
5993
|
+
})
|
|
5753
5994
|
);
|
|
5754
5995
|
}
|
|
5755
5996
|
|
|
5756
5997
|
// src/components/Inputs/FileInput/MyFileInput.tsx
|
|
5757
5998
|
import { FileInput as FileInput3 } from "@mantine/core";
|
|
5999
|
+
import { jsx as jsx42 } from "react/jsx-runtime";
|
|
5758
6000
|
function MyFileInput(_a) {
|
|
5759
6001
|
var _b = _a, { label } = _b, rest = __objRest(_b, ["label"]);
|
|
5760
|
-
return /* @__PURE__ */
|
|
6002
|
+
return /* @__PURE__ */ jsx42(FileInput3, __spreadValues({ label, placeholder: label ? `Ch\u1ECDn ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
|
|
5761
6003
|
}
|
|
5762
6004
|
|
|
5763
6005
|
// src/components/Inputs/NumberInput/MyNumberInput.tsx
|
|
5764
6006
|
import { NumberInput as NumberInput2 } from "@mantine/core";
|
|
6007
|
+
import { jsx as jsx43 } from "react/jsx-runtime";
|
|
5765
6008
|
function MyNumberInput(_a) {
|
|
5766
6009
|
var _b = _a, { label } = _b, rest = __objRest(_b, ["label"]);
|
|
5767
|
-
return /* @__PURE__ */
|
|
6010
|
+
return /* @__PURE__ */ jsx43(NumberInput2, __spreadValues({ label, placeholder: label ? `Nh\u1EADp ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
|
|
5768
6011
|
}
|
|
5769
6012
|
|
|
5770
6013
|
// src/components/Inputs/TextArea/MyTextArea.tsx
|
|
5771
6014
|
import { Textarea } from "@mantine/core";
|
|
6015
|
+
import { jsx as jsx44 } from "react/jsx-runtime";
|
|
5772
6016
|
function MyTextArea(_a) {
|
|
5773
6017
|
var _b = _a, { label } = _b, rest = __objRest(_b, ["label"]);
|
|
5774
|
-
return /* @__PURE__ */
|
|
6018
|
+
return /* @__PURE__ */ jsx44(Textarea, __spreadValues({ label, placeholder: label ? `Nh\u1EADp ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
|
|
5775
6019
|
}
|
|
5776
6020
|
|
|
5777
6021
|
// src/components/Inputs/TextEditor/MyTextEditor.tsx
|
|
@@ -5787,6 +6031,7 @@ import Underline from "@tiptap/extension-underline";
|
|
|
5787
6031
|
import { useEditor } from "@tiptap/react";
|
|
5788
6032
|
import StarterKit from "@tiptap/starter-kit";
|
|
5789
6033
|
import { useEffect as useEffect5, useState as useState7 } from "react";
|
|
6034
|
+
import { jsx as jsx45, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
5790
6035
|
function MyTextEditor(_a) {
|
|
5791
6036
|
var _b = _a, { autoHiddenToolBar = false, contentHeight = "400px", onChange, value, error, label } = _b, rest = __objRest(_b, ["autoHiddenToolBar", "contentHeight", "onChange", "value", "error", "label"]);
|
|
5792
6037
|
const [hiddenToolBar, setHiddenToolBar] = useState7(autoHiddenToolBar);
|
|
@@ -5872,24 +6117,61 @@ function MyTextEditor(_a) {
|
|
|
5872
6117
|
editor.commands.setContent(value);
|
|
5873
6118
|
}
|
|
5874
6119
|
}, [value, editor]);
|
|
5875
|
-
return /* @__PURE__ */
|
|
5876
|
-
|
|
5877
|
-
|
|
5878
|
-
|
|
5879
|
-
|
|
5880
|
-
|
|
5881
|
-
|
|
5882
|
-
|
|
5883
|
-
|
|
5884
|
-
|
|
5885
|
-
|
|
5886
|
-
|
|
5887
|
-
|
|
5888
|
-
|
|
5889
|
-
|
|
5890
|
-
|
|
5891
|
-
|
|
5892
|
-
|
|
6120
|
+
return /* @__PURE__ */ jsx45(Input.Wrapper, { label, flex: 1, error, children: /* @__PURE__ */ jsxs24(RichTextEditor, { editor, style: { border: error && "1px solid #e03131" }, children: [
|
|
6121
|
+
/* @__PURE__ */ jsxs24(RichTextEditor.Toolbar, { hidden: hiddenToolBar, sticky: true, stickyOffset: 60, children: [
|
|
6122
|
+
/* @__PURE__ */ jsxs24(RichTextEditor.ControlsGroup, { children: [
|
|
6123
|
+
/* @__PURE__ */ jsx45(RichTextEditor.Bold, {}),
|
|
6124
|
+
/* @__PURE__ */ jsx45(RichTextEditor.Italic, {}),
|
|
6125
|
+
/* @__PURE__ */ jsx45(RichTextEditor.Underline, {}),
|
|
6126
|
+
/* @__PURE__ */ jsx45(RichTextEditor.Strikethrough, {}),
|
|
6127
|
+
/* @__PURE__ */ jsx45(RichTextEditor.ClearFormatting, {}),
|
|
6128
|
+
/* @__PURE__ */ jsx45(RichTextEditor.Highlight, {}),
|
|
6129
|
+
/* @__PURE__ */ jsx45(RichTextEditor.Code, {})
|
|
6130
|
+
] }),
|
|
6131
|
+
/* @__PURE__ */ jsxs24(RichTextEditor.ControlsGroup, { children: [
|
|
6132
|
+
/* @__PURE__ */ jsx45(RichTextEditor.H1, {}),
|
|
6133
|
+
/* @__PURE__ */ jsx45(RichTextEditor.H2, {}),
|
|
6134
|
+
/* @__PURE__ */ jsx45(RichTextEditor.H3, {}),
|
|
6135
|
+
/* @__PURE__ */ jsx45(RichTextEditor.H4, {})
|
|
6136
|
+
] }),
|
|
6137
|
+
/* @__PURE__ */ jsxs24(RichTextEditor.ControlsGroup, { children: [
|
|
6138
|
+
/* @__PURE__ */ jsx45(RichTextEditor.Blockquote, {}),
|
|
6139
|
+
/* @__PURE__ */ jsx45(RichTextEditor.Hr, {}),
|
|
6140
|
+
/* @__PURE__ */ jsx45(RichTextEditor.BulletList, {}),
|
|
6141
|
+
/* @__PURE__ */ jsx45(RichTextEditor.OrderedList, {}),
|
|
6142
|
+
/* @__PURE__ */ jsx45(RichTextEditor.Subscript, {}),
|
|
6143
|
+
/* @__PURE__ */ jsx45(RichTextEditor.Superscript, {})
|
|
6144
|
+
] }),
|
|
6145
|
+
/* @__PURE__ */ jsxs24(RichTextEditor.ControlsGroup, { children: [
|
|
6146
|
+
/* @__PURE__ */ jsx45(RichTextEditor.Link, {}),
|
|
6147
|
+
/* @__PURE__ */ jsx45(RichTextEditor.Unlink, {})
|
|
6148
|
+
] }),
|
|
6149
|
+
/* @__PURE__ */ jsxs24(RichTextEditor.ControlsGroup, { children: [
|
|
6150
|
+
/* @__PURE__ */ jsx45(RichTextEditor.AlignLeft, {}),
|
|
6151
|
+
/* @__PURE__ */ jsx45(RichTextEditor.AlignCenter, {}),
|
|
6152
|
+
/* @__PURE__ */ jsx45(RichTextEditor.AlignJustify, {}),
|
|
6153
|
+
/* @__PURE__ */ jsx45(RichTextEditor.AlignRight, {})
|
|
6154
|
+
] })
|
|
6155
|
+
] }),
|
|
6156
|
+
/* @__PURE__ */ jsx45(
|
|
6157
|
+
ScrollArea.Autosize,
|
|
6158
|
+
{
|
|
6159
|
+
onMouseDown: () => {
|
|
6160
|
+
editor == null ? void 0 : editor.commands.focus();
|
|
6161
|
+
},
|
|
6162
|
+
onBlur: () => {
|
|
6163
|
+
if (autoHiddenToolBar == false) return;
|
|
6164
|
+
setHiddenToolBar(true);
|
|
6165
|
+
},
|
|
6166
|
+
onFocus: () => {
|
|
6167
|
+
if (autoHiddenToolBar == false) return;
|
|
6168
|
+
setHiddenToolBar(false);
|
|
6169
|
+
},
|
|
6170
|
+
style: { cursor: "text", maxHeight: "400px" },
|
|
6171
|
+
children: /* @__PURE__ */ jsx45(RichTextEditor.Content, { mih: contentHeight })
|
|
6172
|
+
}
|
|
6173
|
+
)
|
|
6174
|
+
] }) });
|
|
5893
6175
|
}
|
|
5894
6176
|
|
|
5895
6177
|
// src/stores/S0Auth.ts
|
|
@@ -5906,13 +6188,14 @@ function useS0Auth() {
|
|
|
5906
6188
|
import { Button as Button14 } from "@mantine/core";
|
|
5907
6189
|
import { IconLogout } from "@tabler/icons-react";
|
|
5908
6190
|
import { useRouter as useRouter3 } from "next/navigation";
|
|
6191
|
+
import { jsx as jsx46 } from "react/jsx-runtime";
|
|
5909
6192
|
function F0Logout() {
|
|
5910
6193
|
const router = useRouter3();
|
|
5911
6194
|
const s0Auth = useS0Auth();
|
|
5912
|
-
return /* @__PURE__ */
|
|
6195
|
+
return /* @__PURE__ */ jsx46(Button14, { onClick: () => {
|
|
5913
6196
|
s0Auth.setProperty("token", "");
|
|
5914
6197
|
router.replace("/auth/login");
|
|
5915
|
-
}, leftSection: /* @__PURE__ */
|
|
6198
|
+
}, leftSection: /* @__PURE__ */ jsx46(IconLogout, {}), fullWidth: true, justify: "start", variant: "subtle", children: "\u0110\u0103ng xu\u1EA5t" });
|
|
5916
6199
|
}
|
|
5917
6200
|
|
|
5918
6201
|
// src/components/Layouts/BasicAppShell/BasicAppShell.tsx
|
|
@@ -5935,22 +6218,22 @@ import { spotlight as spotlight2 } from "@mantine/spotlight";
|
|
|
5935
6218
|
import { IconLayoutSidebarLeftCollapse, IconLayoutSidebarLeftExpand, IconLibraryMinus, IconSearch as IconSearch2 } from "@tabler/icons-react";
|
|
5936
6219
|
import Link3 from "next/link";
|
|
5937
6220
|
import { usePathname as usePathname2 } from "next/navigation";
|
|
6221
|
+
import { Fragment as Fragment12, jsx as jsx47, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
5938
6222
|
function getRightSection(status) {
|
|
5939
|
-
if (status === "Prototype") return /* @__PURE__ */
|
|
5940
|
-
if (status === "New") return /* @__PURE__ */
|
|
5941
|
-
if (status === "Menu") return /* @__PURE__ */
|
|
5942
|
-
if (status === "Change") return /* @__PURE__ */
|
|
6223
|
+
if (status === "Prototype") return /* @__PURE__ */ jsx47(Badge2, { styles: { root: { cursor: "pointer" } }, radius: "xs", color: "pink", circle: true, children: "P" });
|
|
6224
|
+
if (status === "New") return /* @__PURE__ */ jsx47(Badge2, { styles: { root: { cursor: "pointer" } }, radius: "xs", circle: true, children: "N" });
|
|
6225
|
+
if (status === "Menu") return /* @__PURE__ */ jsx47(Badge2, { styles: { root: { cursor: "pointer" } }, radius: "xs", color: "gray", circle: true, children: "M" });
|
|
6226
|
+
if (status === "Change") return /* @__PURE__ */ jsx47(Badge2, { styles: { root: { cursor: "pointer" } }, radius: "xs", color: "green", circle: true, children: "C" });
|
|
5943
6227
|
return null;
|
|
5944
6228
|
}
|
|
5945
6229
|
function RenderNavLinks({ items }) {
|
|
5946
6230
|
const SidebarStore = useS0Sidebar();
|
|
5947
6231
|
const pathName = usePathname2();
|
|
5948
|
-
return /* @__PURE__ */
|
|
6232
|
+
return /* @__PURE__ */ jsx47(Fragment12, { children: items.map((item, index) => /* @__PURE__ */ jsx47(
|
|
5949
6233
|
NavLink,
|
|
5950
6234
|
{
|
|
5951
6235
|
active: item.link === pathName.split("/")[2],
|
|
5952
6236
|
component: Link3,
|
|
5953
|
-
key: index,
|
|
5954
6237
|
rightSection: getRightSection(item.status),
|
|
5955
6238
|
opened: SidebarStore.groupMenuOpenId.includes(item.label),
|
|
5956
6239
|
href: `/${pathName.split("/")[1]}/${item.link}` || "#",
|
|
@@ -5962,10 +6245,11 @@ function RenderNavLinks({ items }) {
|
|
|
5962
6245
|
SidebarStore.setMenuCode(item.link);
|
|
5963
6246
|
SidebarStore.setTitle(item.label);
|
|
5964
6247
|
}
|
|
5965
|
-
}
|
|
6248
|
+
},
|
|
6249
|
+
children: item.links && /* @__PURE__ */ jsx47(RenderNavLinks, { items: item.links })
|
|
5966
6250
|
},
|
|
5967
|
-
|
|
5968
|
-
)));
|
|
6251
|
+
index
|
|
6252
|
+
)) });
|
|
5969
6253
|
}
|
|
5970
6254
|
function childrenMenuToListEnumUsingPageIdAndName(children) {
|
|
5971
6255
|
return children.flatMap((item) => {
|
|
@@ -6019,7 +6303,7 @@ function BasicAppShell({ children, menu }) {
|
|
|
6019
6303
|
const SidebarStore = useS0Sidebar();
|
|
6020
6304
|
const media = useMediaQuery("(min-width: 72em)");
|
|
6021
6305
|
const selectMedia = useMediaQuery("(min-width: 80em)");
|
|
6022
|
-
return /* @__PURE__ */
|
|
6306
|
+
return /* @__PURE__ */ jsxs25(
|
|
6023
6307
|
AppShell,
|
|
6024
6308
|
{
|
|
6025
6309
|
header: { height: 60 },
|
|
@@ -6028,37 +6312,71 @@ function BasicAppShell({ children, menu }) {
|
|
|
6028
6312
|
breakpoint: "sm",
|
|
6029
6313
|
collapsed: { mobile: SidebarStore.opened, desktop: !SidebarStore.opened }
|
|
6030
6314
|
},
|
|
6031
|
-
padding: "md"
|
|
6032
|
-
|
|
6033
|
-
|
|
6034
|
-
|
|
6035
|
-
|
|
6036
|
-
|
|
6037
|
-
|
|
6038
|
-
|
|
6039
|
-
|
|
6040
|
-
|
|
6041
|
-
|
|
6042
|
-
|
|
6043
|
-
|
|
6044
|
-
|
|
6045
|
-
|
|
6046
|
-
|
|
6047
|
-
|
|
6048
|
-
|
|
6049
|
-
|
|
6050
|
-
|
|
6051
|
-
|
|
6052
|
-
|
|
6053
|
-
|
|
6054
|
-
|
|
6055
|
-
|
|
6056
|
-
|
|
6057
|
-
|
|
6058
|
-
|
|
6059
|
-
|
|
6060
|
-
|
|
6061
|
-
|
|
6315
|
+
padding: "md",
|
|
6316
|
+
children: [
|
|
6317
|
+
/* @__PURE__ */ jsxs25(AppShell.Header, { children: [
|
|
6318
|
+
/* @__PURE__ */ jsx47(MyAppSpotlight, { menu }),
|
|
6319
|
+
media ? /* @__PURE__ */ jsxs25(Group11, { h: "100%", px: "md", justify: "space-between", align: "center", children: [
|
|
6320
|
+
/* @__PURE__ */ jsxs25(Group11, { h: "100%", children: [
|
|
6321
|
+
/* @__PURE__ */ jsx47(Tooltip5, { label: SidebarStore.opened ? "\u1EA8n thanh menu" : "Hi\u1EC7n thanh menu", children: /* @__PURE__ */ jsx47(ActionIcon10, { size: "lg", radius: "md", variant: "default", onClick: SidebarStore.toggle, children: SidebarStore.opened ? /* @__PURE__ */ jsx47(IconLayoutSidebarLeftExpand, {}) : /* @__PURE__ */ jsx47(IconLayoutSidebarLeftCollapse, {}) }) }),
|
|
6322
|
+
/* @__PURE__ */ jsx47(Tooltip5, { label: "\u0110\xF3ng t\u1EA5t c\u1EA3 menu", children: /* @__PURE__ */ jsx47(ActionIcon10, { size: "lg", radius: "md", variant: "default", onClick: () => SidebarStore.clearGroupMenuOpenId(), children: /* @__PURE__ */ jsx47(IconLibraryMinus, {}) }) })
|
|
6323
|
+
] }),
|
|
6324
|
+
/* @__PURE__ */ jsx47(Group11, { style: { position: "absolute", left: "50%", transform: "translateX(-50%)" }, children: /* @__PURE__ */ jsx47(Text11, { c: "green", fw: "bold", children: "AQ EduCourseEvaluation - Ph\u1EA7n m\u1EC1m \u0111\xE1nh gi\xE1 chu\u1EA9n \u0111\u1EA7u ra" }) }),
|
|
6325
|
+
/* @__PURE__ */ jsxs25(Group11, { children: [
|
|
6326
|
+
/* @__PURE__ */ jsx47(Text11, { children: "H\u1ECDc k\u1EF3 l\xE0m vi\u1EC7c" }),
|
|
6327
|
+
/* @__PURE__ */ jsx47(
|
|
6328
|
+
Select3,
|
|
6329
|
+
{
|
|
6330
|
+
w: selectMedia ? 245 : 150,
|
|
6331
|
+
placeholder: "Ch\u1ECDn c\xF4ng th\u1EE9c s\u1EAFp x\u1EBFp",
|
|
6332
|
+
defaultValue: 1 == null ? void 0 : 1 .toString(),
|
|
6333
|
+
data: [
|
|
6334
|
+
{ value: "1", label: "N\u0103m h\u1ECDc 2024 - 2025 H\u1ECDc k\u1EF3 1" },
|
|
6335
|
+
{ value: "2", label: "N\u0103m h\u1ECDc 2024 - 2025 H\u1ECDc k\u1EF3 1" }
|
|
6336
|
+
]
|
|
6337
|
+
}
|
|
6338
|
+
),
|
|
6339
|
+
/* @__PURE__ */ jsx47(MySwitchTheme, {})
|
|
6340
|
+
] })
|
|
6341
|
+
] }) : (
|
|
6342
|
+
// For mobile screens - simplified layout
|
|
6343
|
+
/* @__PURE__ */ jsxs25(Group11, { h: "100%", px: "md", justify: "space-between", children: [
|
|
6344
|
+
/* @__PURE__ */ jsx47(ActionIcon10, { size: "lg", radius: "md", variant: "default", onClick: SidebarStore.toggle, children: SidebarStore.opened ? /* @__PURE__ */ jsx47(IconLayoutSidebarLeftExpand, {}) : /* @__PURE__ */ jsx47(IconLayoutSidebarLeftCollapse, {}) }),
|
|
6345
|
+
/* @__PURE__ */ jsx47(Text11, { c: "green", fw: "bold", size: "sm", children: "AQ EduCourseEvaluation" }),
|
|
6346
|
+
/* @__PURE__ */ jsxs25(Group11, { children: [
|
|
6347
|
+
/* @__PURE__ */ jsx47(
|
|
6348
|
+
Select3,
|
|
6349
|
+
{
|
|
6350
|
+
w: 100,
|
|
6351
|
+
size: "xs",
|
|
6352
|
+
placeholder: "H\u1ECDc k\u1EF3",
|
|
6353
|
+
defaultValue: 1 == null ? void 0 : 1 .toString(),
|
|
6354
|
+
data: [
|
|
6355
|
+
{ value: "1", label: "20241" },
|
|
6356
|
+
{ value: "2", label: "20242" }
|
|
6357
|
+
]
|
|
6358
|
+
}
|
|
6359
|
+
),
|
|
6360
|
+
/* @__PURE__ */ jsx47(MySwitchTheme, {})
|
|
6361
|
+
] })
|
|
6362
|
+
] })
|
|
6363
|
+
)
|
|
6364
|
+
] }),
|
|
6365
|
+
/* @__PURE__ */ jsxs25(AppShell.Navbar, { children: [
|
|
6366
|
+
/* @__PURE__ */ jsx47(TextInput2, { mt: "md", placeholder: "T\xECm menu (Ctrl + K)", mx: 10, component: "button", onClick: spotlight2.open, leftSection: /* @__PURE__ */ jsx47(IconSearch2, {}), children: "T\xECm ki\u1EBFm (Ctrl + K)" }),
|
|
6367
|
+
/* @__PURE__ */ jsxs25(AppShell.Section, { grow: true, component: ScrollArea2, p: 5, children: [
|
|
6368
|
+
/* @__PURE__ */ jsx47(RenderNavLinks, { items: menu }),
|
|
6369
|
+
/* @__PURE__ */ jsx47(Divider2, {}),
|
|
6370
|
+
/* @__PURE__ */ jsx47(F0Logout, {})
|
|
6371
|
+
] }),
|
|
6372
|
+
/* @__PURE__ */ jsxs25(AppShell.Section, { p: "md", children: [
|
|
6373
|
+
/* @__PURE__ */ jsx47(Divider2, {}),
|
|
6374
|
+
/* @__PURE__ */ jsx47(Image3, { src: "/imgs/0/IMG0LogoAQTech.png", h: 50, alt: "", w: "auto" })
|
|
6375
|
+
] })
|
|
6376
|
+
] }),
|
|
6377
|
+
/* @__PURE__ */ jsx47(AppShell.Main, { bg: "light-dark(var(--mantine-color-gray-1), var(--mantine-color-dark-8))", children })
|
|
6378
|
+
]
|
|
6379
|
+
}
|
|
6062
6380
|
);
|
|
6063
6381
|
}
|
|
6064
6382
|
var groupToTwoLevels = (menu) => {
|
|
@@ -6105,9 +6423,10 @@ function utils_layout_getItemsWithoutLinks(menu) {
|
|
|
6105
6423
|
|
|
6106
6424
|
// src/components/Layouts/Container/MyContainer.tsx
|
|
6107
6425
|
import { Container, Flex as Flex4 } from "@mantine/core";
|
|
6426
|
+
import { jsx as jsx48 } from "react/jsx-runtime";
|
|
6108
6427
|
function MyContainer(_a) {
|
|
6109
6428
|
var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
|
|
6110
|
-
return /* @__PURE__ */
|
|
6429
|
+
return /* @__PURE__ */ jsx48(Container, __spreadProps(__spreadValues({ fluid: true }, rest), { children: /* @__PURE__ */ jsx48(Flex4, { direction: "column", children }) }));
|
|
6111
6430
|
}
|
|
6112
6431
|
|
|
6113
6432
|
// src/constants/object/color.ts
|
|
@@ -6160,6 +6479,7 @@ function useHeaderMegaMenuStore() {
|
|
|
6160
6479
|
}
|
|
6161
6480
|
|
|
6162
6481
|
// src/components/Layouts/HeaderMegaMenu/HeaderMegaMenu.tsx
|
|
6482
|
+
import { jsx as jsx49, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
6163
6483
|
var mockdata = [
|
|
6164
6484
|
{
|
|
6165
6485
|
icon: IconCode,
|
|
@@ -6197,25 +6517,50 @@ function HeaderMegaMenu({ children, menus }) {
|
|
|
6197
6517
|
const [linksOpened, { toggle: toggleLinks }] = useDisclosure10(false);
|
|
6198
6518
|
const HeaderMegaMenuStore = useHeaderMegaMenuStore();
|
|
6199
6519
|
const theme = useMantineTheme();
|
|
6200
|
-
const links = mockdata.map((item) => /* @__PURE__ */
|
|
6201
|
-
|
|
6202
|
-
|
|
6203
|
-
|
|
6204
|
-
|
|
6205
|
-
|
|
6206
|
-
|
|
6207
|
-
|
|
6208
|
-
|
|
6209
|
-
|
|
6210
|
-
|
|
6211
|
-
|
|
6212
|
-
|
|
6213
|
-
|
|
6520
|
+
const links = mockdata.map((item) => /* @__PURE__ */ jsx49(UnstyledButton, { className: css_default2.subLink, children: /* @__PURE__ */ jsxs26(Group12, { wrap: "nowrap", align: "flex-start", children: [
|
|
6521
|
+
/* @__PURE__ */ jsx49(ThemeIcon, { size: 34, variant: "default", radius: "md", children: /* @__PURE__ */ jsx49(item.icon, { size: 22, color: theme.colors.blue[6] }) }),
|
|
6522
|
+
/* @__PURE__ */ jsxs26("div", { children: [
|
|
6523
|
+
/* @__PURE__ */ jsx49(Text12, { size: "sm", fw: 500, children: item.title }),
|
|
6524
|
+
/* @__PURE__ */ jsx49(Text12, { size: "xs", c: "dimmed", children: item.description })
|
|
6525
|
+
] })
|
|
6526
|
+
] }) }, item.title));
|
|
6527
|
+
return /* @__PURE__ */ jsxs26(Box3, { children: [
|
|
6528
|
+
/* @__PURE__ */ jsx49("header", { className: css_default2.header, children: /* @__PURE__ */ jsxs26(Group12, { justify: "space-between", h: "100%", children: [
|
|
6529
|
+
/* @__PURE__ */ jsxs26(Group12, { children: [
|
|
6530
|
+
/* @__PURE__ */ jsx49(Image4, { src: "/imgs/0/IMG0LogoAQTech.png", h: 30, alt: "", w: "auto" }),
|
|
6531
|
+
/* @__PURE__ */ jsx49(Group12, { h: "100%", gap: 5, visibleFrom: "sm", children: menus == null ? void 0 : menus.map((item, idx) => /* @__PURE__ */ jsx49(Button15, { component: Link4, href: item.href, variant: HeaderMegaMenuStore.state.name == item.label ? "light" : "subtle", onClick: () => HeaderMegaMenuStore.setState({ name: item.label }), children: item.label }, idx)) })
|
|
6532
|
+
] }),
|
|
6533
|
+
/* @__PURE__ */ jsxs26(Group12, { children: [
|
|
6534
|
+
/* @__PURE__ */ jsx49(TextInput3, { placeholder: "T\xECm ki\u1EBFm", leftSection: /* @__PURE__ */ jsx49(IconSearch3, {}), radius: "xl", w: "250px" }),
|
|
6535
|
+
/* @__PURE__ */ jsx49(MySwitchTheme, {})
|
|
6536
|
+
] }),
|
|
6537
|
+
/* @__PURE__ */ jsx49(Burger, { opened: drawerOpened, onClick: toggleDrawer, hiddenFrom: "sm" })
|
|
6538
|
+
] }) }),
|
|
6539
|
+
/* @__PURE__ */ jsx49(Container2, { fluid: true, pt: "sm", pb: "md", bg: OBJECT_COlORS.mantineBackgroundSecondary, mih: "93vh", children }),
|
|
6540
|
+
/* @__PURE__ */ jsx49(
|
|
6541
|
+
Drawer,
|
|
6542
|
+
{
|
|
6543
|
+
opened: drawerOpened,
|
|
6544
|
+
onClose: closeDrawer,
|
|
6545
|
+
size: "100%",
|
|
6546
|
+
padding: "md",
|
|
6547
|
+
title: "Navigation",
|
|
6548
|
+
hiddenFrom: "sm",
|
|
6549
|
+
zIndex: 1e6,
|
|
6550
|
+
children: /* @__PURE__ */ jsxs26(ScrollArea3, { h: "calc(100vh - 80px", mx: "-md", children: [
|
|
6551
|
+
/* @__PURE__ */ jsx49(Divider3, { my: "sm" }),
|
|
6552
|
+
/* @__PURE__ */ jsx49(MyFlexColumn, { h: "100%", gap: 0, children: menus == null ? void 0 : menus.map((item, idx) => /* @__PURE__ */ jsx49(Button15, { component: Link4, href: item.href, variant: HeaderMegaMenuStore.state.name == item.label ? "light" : "subtle", onClick: () => HeaderMegaMenuStore.setState({ name: item.label }), children: item.label }, idx)) }),
|
|
6553
|
+
/* @__PURE__ */ jsx49(Divider3, { my: "sm" })
|
|
6554
|
+
] })
|
|
6555
|
+
}
|
|
6556
|
+
)
|
|
6557
|
+
] });
|
|
6214
6558
|
}
|
|
6215
6559
|
|
|
6216
6560
|
// src/components/Layouts/HtmlWrapper/MyHtmlWrapper.tsx
|
|
6217
6561
|
import { ScrollArea as ScrollArea4, TypographyStylesProvider } from "@mantine/core";
|
|
6218
6562
|
import pako from "pako";
|
|
6563
|
+
import { jsx as jsx50 } from "react/jsx-runtime";
|
|
6219
6564
|
function MyHtmlWrapper(_a) {
|
|
6220
6565
|
var _b = _a, { html, mah, zip = false } = _b, rest = __objRest(_b, ["html", "mah", "zip"]);
|
|
6221
6566
|
const extractHtmlFromZip = () => {
|
|
@@ -6224,18 +6569,19 @@ function MyHtmlWrapper(_a) {
|
|
|
6224
6569
|
const cleanedHtml = decompressedData == null ? void 0 : decompressedData.replaceAll(" font-family:'Times New Roman'; font-size:1em;", "");
|
|
6225
6570
|
return cleanedHtml.replaceAll(" font-family:'Times New Roman'; font-size:1em;", "");
|
|
6226
6571
|
};
|
|
6227
|
-
return /* @__PURE__ */
|
|
6572
|
+
return /* @__PURE__ */ jsx50(ScrollArea4.Autosize, { mah, children: /* @__PURE__ */ jsx50(TypographyStylesProvider, __spreadProps(__spreadValues({}, rest), { children: /* @__PURE__ */ jsx50(
|
|
6228
6573
|
"div",
|
|
6229
6574
|
{
|
|
6230
6575
|
dangerouslySetInnerHTML: {
|
|
6231
6576
|
__html: zip ? extractHtmlFromZip() : html
|
|
6232
6577
|
}
|
|
6233
6578
|
}
|
|
6234
|
-
)));
|
|
6579
|
+
) })) });
|
|
6235
6580
|
}
|
|
6236
6581
|
|
|
6237
6582
|
// src/components/Layouts/PageContent/MyPageContent.tsx
|
|
6238
6583
|
import { Code, Container as Container3, Divider as Divider4, Group as Group13, Indicator, Title } from "@mantine/core";
|
|
6584
|
+
import { jsx as jsx51, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
6239
6585
|
var getStatusColor = (status) => {
|
|
6240
6586
|
switch (status) {
|
|
6241
6587
|
case "Prototype":
|
|
@@ -6248,64 +6594,90 @@ var getStatusColor = (status) => {
|
|
|
6248
6594
|
};
|
|
6249
6595
|
var PageTitle = ({ title, status }) => {
|
|
6250
6596
|
const color = getStatusColor(status);
|
|
6251
|
-
return /* @__PURE__ */
|
|
6597
|
+
return /* @__PURE__ */ jsx51(Indicator, { label: status, size: 16, inline: true, color, disabled: !status, pt: 6, children: /* @__PURE__ */ jsx51(Title, { children: title }) });
|
|
6252
6598
|
};
|
|
6253
6599
|
function MyPageContent({ leftTopBar, title, canBack = false, rightTopBar, status, children }) {
|
|
6254
6600
|
const SidebarStore = useS0Sidebar();
|
|
6255
6601
|
const finalTitle = title || SidebarStore.title;
|
|
6256
|
-
return /* @__PURE__ */
|
|
6602
|
+
return /* @__PURE__ */ jsxs27(Container3, { p: 0, fluid: true, children: [
|
|
6603
|
+
/* @__PURE__ */ jsxs27(Group13, { justify: "space-between", children: [
|
|
6604
|
+
/* @__PURE__ */ jsxs27(Group13, { children: [
|
|
6605
|
+
canBack && /* @__PURE__ */ jsx51(MyButtonRouterBack, {}),
|
|
6606
|
+
/* @__PURE__ */ jsx51(PageTitle, { title: finalTitle, status }),
|
|
6607
|
+
leftTopBar
|
|
6608
|
+
] }),
|
|
6609
|
+
/* @__PURE__ */ jsxs27(Group13, { children: [
|
|
6610
|
+
rightTopBar,
|
|
6611
|
+
/* @__PURE__ */ jsx51(Code, { color: "var(--mantine-color-blue-light)", children: SidebarStore.menuCode })
|
|
6612
|
+
] })
|
|
6613
|
+
] }),
|
|
6614
|
+
/* @__PURE__ */ jsx51(Divider4, {}),
|
|
6615
|
+
children
|
|
6616
|
+
] });
|
|
6257
6617
|
}
|
|
6258
6618
|
|
|
6259
6619
|
// src/components/Layouts/Tab/MyTab.tsx
|
|
6260
6620
|
import { rem, Space as Space3, Tabs } from "@mantine/core";
|
|
6261
|
-
import
|
|
6621
|
+
import { jsx as jsx52, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
6262
6622
|
function MyTab(_a) {
|
|
6263
6623
|
var _b = _a, { tabList, children } = _b, rest = __objRest(_b, ["tabList", "children"]);
|
|
6264
6624
|
const iconStyle = { width: rem(20), height: rem(20) };
|
|
6265
|
-
return /* @__PURE__ */
|
|
6266
|
-
|
|
6267
|
-
|
|
6625
|
+
return /* @__PURE__ */ jsxs28(Tabs, __spreadProps(__spreadValues({ defaultValue: tabList[0].label }, rest), { children: [
|
|
6626
|
+
/* @__PURE__ */ jsx52(Tabs.List, { children: tabList.map((item, idx) => {
|
|
6627
|
+
return /* @__PURE__ */ jsx52(Tabs.Tab, { value: item.label, leftSection: item.icon && /* @__PURE__ */ jsx52(item.icon, { style: iconStyle }), children: item.label }, idx);
|
|
6628
|
+
}) }),
|
|
6629
|
+
/* @__PURE__ */ jsx52(Space3, { my: "md" }),
|
|
6630
|
+
children
|
|
6631
|
+
] }));
|
|
6268
6632
|
}
|
|
6269
6633
|
|
|
6270
6634
|
// src/components/RESTAPIComponents/DataTableSelect/MyDataTableSelect.tsx
|
|
6271
6635
|
import { ActionIcon as ActionIcon11, Button as Button16, Fieldset as Fieldset5, Group as Group14, Modal as Modal11 } from "@mantine/core";
|
|
6272
6636
|
import { useDisclosure as useDisclosure11 } from "@mantine/hooks";
|
|
6273
6637
|
import { IconX as IconX2 } from "@tabler/icons-react";
|
|
6638
|
+
import { jsx as jsx53, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
6274
6639
|
function MyDataTableSelect(_a) {
|
|
6275
6640
|
var _b = _a, { modalSize, renderTopToolbarCustomActions, data, selectButtonlabel, listState, columns, listLabel } = _b, rest = __objRest(_b, ["modalSize", "renderTopToolbarCustomActions", "data", "selectButtonlabel", "listState", "columns", "listLabel"]);
|
|
6276
6641
|
const disc = useDisclosure11(false);
|
|
6277
6642
|
if (data == void 0) return "\u0110ang t\u1EA3i...";
|
|
6278
|
-
return /* @__PURE__ */
|
|
6279
|
-
|
|
6280
|
-
|
|
6281
|
-
|
|
6282
|
-
|
|
6283
|
-
|
|
6284
|
-
|
|
6285
|
-
|
|
6286
|
-
|
|
6287
|
-
|
|
6288
|
-
|
|
6289
|
-
|
|
6290
|
-
|
|
6291
|
-
|
|
6292
|
-
|
|
6293
|
-
|
|
6294
|
-
|
|
6295
|
-
|
|
6296
|
-
|
|
6297
|
-
|
|
6298
|
-
|
|
6299
|
-
|
|
6300
|
-
|
|
6301
|
-
|
|
6302
|
-
|
|
6303
|
-
|
|
6643
|
+
return /* @__PURE__ */ jsxs29(Fieldset5, { legend: listLabel ? listLabel : "Danh s\xE1ch", children: [
|
|
6644
|
+
/* @__PURE__ */ jsx53(
|
|
6645
|
+
MyDataTable,
|
|
6646
|
+
__spreadValues({
|
|
6647
|
+
renderTopToolbarCustomActions: ({ table }) => {
|
|
6648
|
+
return /* @__PURE__ */ jsxs29(Group14, { children: [
|
|
6649
|
+
renderTopToolbarCustomActions && renderTopToolbarCustomActions({ table }),
|
|
6650
|
+
/* @__PURE__ */ jsx53(Button16, { onClick: disc[1].open, children: selectButtonlabel || "Ch\u1ECDn t\u1EEB danh s\xE1ch" })
|
|
6651
|
+
] });
|
|
6652
|
+
},
|
|
6653
|
+
columns,
|
|
6654
|
+
data: listState[0],
|
|
6655
|
+
renderRowActions: ({ row }) => {
|
|
6656
|
+
return /* @__PURE__ */ jsx53(MyCenterFull, { children: /* @__PURE__ */ jsx53(ActionIcon11, { color: "red", onClick: () => listState[1].remove(row.index), children: /* @__PURE__ */ jsx53(IconX2, {}) }) });
|
|
6657
|
+
}
|
|
6658
|
+
}, rest)
|
|
6659
|
+
),
|
|
6660
|
+
/* @__PURE__ */ jsx53(Modal11, { opened: disc[0], onClose: disc[1].close, size: modalSize || "80%", children: /* @__PURE__ */ jsx53(
|
|
6661
|
+
MyDataTable,
|
|
6662
|
+
__spreadValues({
|
|
6663
|
+
renderTopToolbarCustomActions: ({ table }) => {
|
|
6664
|
+
return /* @__PURE__ */ jsx53(Button16, { onClick: () => {
|
|
6665
|
+
table.getSelectedRowModel().rows.map((item) => listState[1].append(item.original));
|
|
6666
|
+
disc[1].close();
|
|
6667
|
+
}, children: "Ch\u1ECDn" });
|
|
6668
|
+
},
|
|
6669
|
+
enableRowSelection: true,
|
|
6670
|
+
data,
|
|
6671
|
+
columns
|
|
6672
|
+
}, rest)
|
|
6673
|
+
) })
|
|
6674
|
+
] });
|
|
6304
6675
|
}
|
|
6305
6676
|
|
|
6306
6677
|
// src/components/RESTAPIComponents/SelectAPIGet/MySelectAPIGet.tsx
|
|
6307
6678
|
import { Select as Select4 } from "@mantine/core";
|
|
6308
6679
|
import { useQuery as useQuery2 } from "@tanstack/react-query";
|
|
6680
|
+
import { jsx as jsx54 } from "react/jsx-runtime";
|
|
6309
6681
|
function MySelectAPIGet(_a) {
|
|
6310
6682
|
var _b = _a, { apiGet, label = "", dataMapper } = _b, rest = __objRest(_b, ["apiGet", "label", "dataMapper"]);
|
|
6311
6683
|
var _a2;
|
|
@@ -6324,7 +6696,7 @@ function MySelectAPIGet(_a) {
|
|
|
6324
6696
|
label: `${item.code}-${item.name}`
|
|
6325
6697
|
};
|
|
6326
6698
|
});
|
|
6327
|
-
return /* @__PURE__ */
|
|
6699
|
+
return /* @__PURE__ */ jsx54(
|
|
6328
6700
|
Select4,
|
|
6329
6701
|
__spreadValues({
|
|
6330
6702
|
label,
|
|
@@ -6336,8 +6708,9 @@ function MySelectAPIGet(_a) {
|
|
|
6336
6708
|
|
|
6337
6709
|
// src/components/Skeletons/SkeletonTable/MySkeletonTable.tsx
|
|
6338
6710
|
import { Skeleton } from "@mantine/core";
|
|
6711
|
+
import { jsx as jsx55 } from "react/jsx-runtime";
|
|
6339
6712
|
function MySkeletonTable({ h: h4 = 500 }) {
|
|
6340
|
-
return /* @__PURE__ */
|
|
6713
|
+
return /* @__PURE__ */ jsx55(Skeleton, { h: h4 });
|
|
6341
6714
|
}
|
|
6342
6715
|
|
|
6343
6716
|
export {
|