aq-fe-framework 0.1.50 → 0.1.52
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.
|
@@ -22,8 +22,7 @@ function cn(...inputs) {
|
|
|
22
22
|
|
|
23
23
|
// src/components/Aceternity/BoxesBackground/MyBoxes.tsx
|
|
24
24
|
import { motion } from "framer-motion";
|
|
25
|
-
import
|
|
26
|
-
import { jsx } from "react/jsx-runtime";
|
|
25
|
+
import React2 from "react";
|
|
27
26
|
var MyBoxesCore = (_a) => {
|
|
28
27
|
var _b = _a, { className } = _b, rest = __objRest(_b, ["className"]);
|
|
29
28
|
const rows = new Array(150).fill(1);
|
|
@@ -42,9 +41,9 @@ var MyBoxesCore = (_a) => {
|
|
|
42
41
|
const getRandomColor = () => {
|
|
43
42
|
return colors[Math.floor(Math.random() * colors.length)];
|
|
44
43
|
};
|
|
45
|
-
return /* @__PURE__ */
|
|
44
|
+
return /* @__PURE__ */ React2.createElement(
|
|
46
45
|
"div",
|
|
47
|
-
|
|
46
|
+
__spreadValues({
|
|
48
47
|
style: {
|
|
49
48
|
transform: `translate(-40%,-60%) skewX(-48deg) skewY(14deg) scale(0.675) rotate(0deg) translateZ(0)`
|
|
50
49
|
},
|
|
@@ -52,41 +51,39 @@ var MyBoxesCore = (_a) => {
|
|
|
52
51
|
"absolute left-1/4 p-4 -top-1/4 flex -translate-x-1/2 -translate-y-1/2 w-full h-full z-0 ",
|
|
53
52
|
className
|
|
54
53
|
)
|
|
55
|
-
}, rest),
|
|
56
|
-
|
|
57
|
-
|
|
54
|
+
}, rest),
|
|
55
|
+
rows.map((_4, i5) => /* @__PURE__ */ React2.createElement(motion.div, { key: `row` + i5, className: "w-16 h-8 border-l border-slate-700 relative" }, cols.map((_5, j4) => /* @__PURE__ */ React2.createElement(
|
|
56
|
+
motion.div,
|
|
57
|
+
{
|
|
58
|
+
whileHover: {
|
|
59
|
+
backgroundColor: `var(${getRandomColor()})`,
|
|
60
|
+
transition: { duration: 0 }
|
|
61
|
+
},
|
|
62
|
+
animate: {
|
|
63
|
+
transition: { duration: 2 }
|
|
64
|
+
},
|
|
65
|
+
key: `col` + j4,
|
|
66
|
+
className: "w-16 h-8 border-r border-t border-slate-700 relative"
|
|
67
|
+
},
|
|
68
|
+
j4 % 2 === 0 && i5 % 2 === 0 ? /* @__PURE__ */ React2.createElement(
|
|
69
|
+
"svg",
|
|
58
70
|
{
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
},
|
|
66
|
-
className: "w-16 h-8 border-r border-t border-slate-700 relative",
|
|
67
|
-
children: j4 % 2 === 0 && i5 % 2 === 0 ? /* @__PURE__ */ jsx(
|
|
68
|
-
"svg",
|
|
69
|
-
{
|
|
70
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
71
|
-
fill: "none",
|
|
72
|
-
viewBox: "0 0 24 24",
|
|
73
|
-
strokeWidth: "1.5",
|
|
74
|
-
stroke: "currentColor",
|
|
75
|
-
className: "absolute h-6 w-10 -top-[14px] -left-[22px] text-slate-700 stroke-[1px] pointer-events-none",
|
|
76
|
-
children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M12 6v12m6-6H6" })
|
|
77
|
-
}
|
|
78
|
-
) : null
|
|
71
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
72
|
+
fill: "none",
|
|
73
|
+
viewBox: "0 0 24 24",
|
|
74
|
+
strokeWidth: "1.5",
|
|
75
|
+
stroke: "currentColor",
|
|
76
|
+
className: "absolute h-6 w-10 -top-[14px] -left-[22px] text-slate-700 stroke-[1px] pointer-events-none"
|
|
79
77
|
},
|
|
80
|
-
|
|
81
|
-
)
|
|
82
|
-
|
|
78
|
+
/* @__PURE__ */ React2.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M12 6v12m6-6H6" })
|
|
79
|
+
) : null
|
|
80
|
+
))))
|
|
83
81
|
);
|
|
84
82
|
};
|
|
85
|
-
var Boxes =
|
|
83
|
+
var Boxes = React2.memo(MyBoxesCore);
|
|
86
84
|
|
|
87
85
|
// src/components/Loaders/MyCardioLoader.tsx
|
|
88
86
|
import { useEffect } from "react";
|
|
89
|
-
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
90
87
|
function MyCardioLoader() {
|
|
91
88
|
useEffect(() => {
|
|
92
89
|
async function getLoader() {
|
|
@@ -95,62 +92,49 @@ function MyCardioLoader() {
|
|
|
95
92
|
}
|
|
96
93
|
getLoader();
|
|
97
94
|
}, []);
|
|
98
|
-
return /* @__PURE__ */
|
|
95
|
+
return /* @__PURE__ */ React.createElement("l-cardio", { color: "var(--cyan-400)" });
|
|
99
96
|
}
|
|
100
97
|
|
|
101
98
|
// src/components/Aceternity/BoxesBackground/MyBoxesBackground.tsx
|
|
102
99
|
import { Center, Space, Text } from "@mantine/core";
|
|
103
|
-
import { jsx as jsx3, jsxs } from "react/jsx-runtime";
|
|
104
100
|
function MyBoxesBackground({ title, desc = "\u0110\u01B0\u1EE3c ph\xE1t tri\u1EC3n b\u1EDFi c\xF4ng ty c\xF4ng ngh\u1EC7 Anh Qu\xE2n." }) {
|
|
105
|
-
return /* @__PURE__ */
|
|
106
|
-
/* @__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" }),
|
|
107
|
-
/* @__PURE__ */ jsx3(MyBoxesCore, {}),
|
|
108
|
-
/* @__PURE__ */ jsx3(Center, { className: "z-20", children: /* @__PURE__ */ jsx3(MyCardioLoader, {}) }),
|
|
109
|
-
/* @__PURE__ */ jsx3(Space, { my: 7 }),
|
|
110
|
-
/* @__PURE__ */ jsx3(Center, { children: /* @__PURE__ */ jsx3(Text, { className: "z-20", fs: "italic", fw: "bold", c: "white", children: "\u0110ang t\u1EA3i..." }) }),
|
|
111
|
-
/* @__PURE__ */ jsx3(Space, { my: 7 }),
|
|
112
|
-
/* @__PURE__ */ jsx3("h1", { className: cn("md:text-4xl text-xl text-white relative z-20"), children: title }),
|
|
113
|
-
/* @__PURE__ */ jsx3("p", { className: "text-center mt-2 text-neutral-300 relative z-20", children: desc })
|
|
114
|
-
] });
|
|
101
|
+
return /* @__PURE__ */ React.createElement("div", { className: "h-[100vh] relative w-full overflow-hidden bg-slate-900 flex flex-col items-center justify-center rounded-lg" }, /* @__PURE__ */ React.createElement("div", { className: "absolute inset-0 w-full h-full bg-slate-900 z-20 [mask-image:radial-gradient(transparent,white)] pointer-events-none" }), /* @__PURE__ */ React.createElement(MyBoxesCore, null), /* @__PURE__ */ React.createElement(Center, { className: "z-20" }, /* @__PURE__ */ React.createElement(MyCardioLoader, null)), /* @__PURE__ */ React.createElement(Space, { my: 7 }), /* @__PURE__ */ React.createElement(Center, null, /* @__PURE__ */ React.createElement(Text, { className: "z-20", fs: "italic", fw: "bold", c: "white" }, "\u0110ang t\u1EA3i...")), /* @__PURE__ */ React.createElement(Space, { my: 7 }), /* @__PURE__ */ React.createElement("h1", { className: cn("md:text-4xl text-xl text-white relative z-20") }, title), /* @__PURE__ */ React.createElement("p", { className: "text-center mt-2 text-neutral-300 relative z-20" }, desc));
|
|
115
102
|
}
|
|
116
103
|
|
|
117
104
|
// src/components/ActionIcons/ActionIcon/MyActionIcon.tsx
|
|
118
105
|
import { ActionIcon } from "@mantine/core";
|
|
119
106
|
import { IconDeviceFloppy, IconEdit, IconPlus, IconTrash } from "@tabler/icons-react";
|
|
120
|
-
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
121
107
|
function MyActionIcon(_a) {
|
|
122
108
|
var _b = _a, { children, crudType = "delete" } = _b, rest = __objRest(_b, ["children", "crudType"]);
|
|
123
109
|
if (crudType == "default") {
|
|
124
|
-
return /* @__PURE__ */
|
|
110
|
+
return /* @__PURE__ */ React.createElement(ActionIcon, __spreadValues({ color: "indigo" }, rest), children);
|
|
125
111
|
}
|
|
126
112
|
if (crudType == "create") {
|
|
127
|
-
return /* @__PURE__ */
|
|
113
|
+
return /* @__PURE__ */ React.createElement(ActionIcon, __spreadValues({ color: "indigo" }, rest), /* @__PURE__ */ React.createElement(IconPlus, null));
|
|
128
114
|
}
|
|
129
115
|
if (crudType == "delete") {
|
|
130
|
-
return /* @__PURE__ */
|
|
116
|
+
return /* @__PURE__ */ React.createElement(ActionIcon, __spreadValues({ color: "red" }, rest), /* @__PURE__ */ React.createElement(IconTrash, null));
|
|
131
117
|
}
|
|
132
118
|
if (crudType == "update") {
|
|
133
|
-
return /* @__PURE__ */
|
|
119
|
+
return /* @__PURE__ */ React.createElement(ActionIcon, __spreadValues({ color: "yellow" }, rest), /* @__PURE__ */ React.createElement(IconEdit, null));
|
|
134
120
|
}
|
|
135
121
|
if (crudType == "save") {
|
|
136
|
-
return /* @__PURE__ */
|
|
122
|
+
return /* @__PURE__ */ React.createElement(ActionIcon, __spreadValues({ color: "green" }, rest), /* @__PURE__ */ React.createElement(IconDeviceFloppy, null));
|
|
137
123
|
}
|
|
138
124
|
}
|
|
139
125
|
|
|
140
126
|
// src/components/Inputs/TextInput/MyTextInput.tsx
|
|
141
127
|
import { TextInput } from "@mantine/core";
|
|
142
|
-
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
143
128
|
function MyTextInput(_a) {
|
|
144
129
|
var _b = _a, { label, defaultValue } = _b, rest = __objRest(_b, ["label", "defaultValue"]);
|
|
145
|
-
return /* @__PURE__ */
|
|
130
|
+
return /* @__PURE__ */ React.createElement(TextInput, __spreadValues({ label, defaultValue, placeholder: label ? `Nh\u1EADp ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
|
|
146
131
|
}
|
|
147
132
|
|
|
148
133
|
// src/components/Layouts/FlexColumn/MyFlexColumn.tsx
|
|
149
134
|
import { Flex } from "@mantine/core";
|
|
150
|
-
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
151
135
|
function MyFlexColumn(_a) {
|
|
152
136
|
var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
|
|
153
|
-
return /* @__PURE__ */
|
|
137
|
+
return /* @__PURE__ */ React.createElement(Flex, __spreadValues({ direction: "column", gap: "md" }, rest), children);
|
|
154
138
|
}
|
|
155
139
|
|
|
156
140
|
// src/components/ActionIcons/ActionIconCheck/MyActionIconCheck.tsx
|
|
@@ -158,79 +142,68 @@ import { ActionIcon as ActionIcon2, Button, Checkbox, Modal, Switch, Text as Tex
|
|
|
158
142
|
import { useDisclosure } from "@mantine/hooks";
|
|
159
143
|
import { IconChecklist } from "@tabler/icons-react";
|
|
160
144
|
import { useState } from "react";
|
|
161
|
-
import { Fragment, jsx as jsx7, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
162
145
|
function MyActionIconCheck(_a) {
|
|
163
146
|
var _b = _a, { modalSize = "50%", comment = "" } = _b, rest = __objRest(_b, ["modalSize", "comment"]);
|
|
164
147
|
const disc = useDisclosure(false);
|
|
165
148
|
const fullScreen = useState(false);
|
|
166
149
|
const hSize = useState("50vh");
|
|
167
|
-
return /* @__PURE__ */
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
150
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Tooltip, { label: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp" }, /* @__PURE__ */ React.createElement(ActionIcon2, __spreadValues({ color: "cyan", onClick: disc[1].open }, rest), /* @__PURE__ */ React.createElement(IconChecklist, { size: 24, color: "blue" }))), /* @__PURE__ */ React.createElement(
|
|
151
|
+
Modal,
|
|
152
|
+
{
|
|
153
|
+
fullScreen: fullScreen[0],
|
|
154
|
+
opened: disc[0],
|
|
155
|
+
onClose: disc[1].close,
|
|
156
|
+
size: modalSize,
|
|
157
|
+
title: /* @__PURE__ */ React.createElement(Text2, null, "Ki\u1EC3m tra h\u1ED3 s\u01A1 \u0111\xE3 \u0111\u0103ng k\xFD")
|
|
158
|
+
},
|
|
159
|
+
/* @__PURE__ */ React.createElement(
|
|
160
|
+
Switch,
|
|
171
161
|
{
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
onClose: disc[1].close,
|
|
175
|
-
size: modalSize,
|
|
176
|
-
title: /* @__PURE__ */ jsx7(Text2, { children: "Ki\u1EC3m tra h\u1ED3 s\u01A1 \u0111\xE3 \u0111\u0103ng k\xFD" }),
|
|
177
|
-
children: [
|
|
178
|
-
/* @__PURE__ */ jsx7(
|
|
179
|
-
Switch,
|
|
180
|
-
{
|
|
181
|
-
defaultChecked: true,
|
|
182
|
-
label: "\u0110\u1EA1t y\xEAu c\u1EA7u"
|
|
183
|
-
}
|
|
184
|
-
),
|
|
185
|
-
/* @__PURE__ */ jsxs2(MyFlexColumn, { children: [
|
|
186
|
-
/* @__PURE__ */ jsx7(MyTextInput, { label: "Nh\u1EADn x\xE9t" }),
|
|
187
|
-
/* @__PURE__ */ jsx7(Checkbox, { label: "G\u1EEDi mail th\xF4ng b\xE1o" }),
|
|
188
|
-
/* @__PURE__ */ jsx7(Button, { children: "C\u1EADp nh\u1EADp" })
|
|
189
|
-
] })
|
|
190
|
-
]
|
|
162
|
+
defaultChecked: true,
|
|
163
|
+
label: "\u0110\u1EA1t y\xEAu c\u1EA7u"
|
|
191
164
|
}
|
|
192
|
-
)
|
|
193
|
-
|
|
165
|
+
),
|
|
166
|
+
/* @__PURE__ */ React.createElement(MyFlexColumn, null, /* @__PURE__ */ React.createElement(MyTextInput, { label: "Nh\u1EADn x\xE9t" }), /* @__PURE__ */ React.createElement(Checkbox, { label: "G\u1EEDi mail th\xF4ng b\xE1o" }), /* @__PURE__ */ React.createElement(Button, null, "C\u1EADp nh\u1EADp"))
|
|
167
|
+
));
|
|
194
168
|
}
|
|
195
169
|
|
|
196
170
|
// src/components/Buttons/Button/MyButton.tsx
|
|
197
171
|
import { Button as Button2 } from "@mantine/core";
|
|
198
172
|
import { IconDeviceFloppy as IconDeviceFloppy2, IconEdit as IconEdit2, IconFileExport, IconFileImport, IconPlus as IconPlus2, IconPrinter, IconTrash as IconTrash2, IconX } from "@tabler/icons-react";
|
|
199
|
-
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
200
173
|
function MyButton(_a) {
|
|
201
174
|
var _b = _a, { children, crudType = "delete" } = _b, rest = __objRest(_b, ["children", "crudType"]);
|
|
202
175
|
if (crudType == "default") {
|
|
203
|
-
return /* @__PURE__ */
|
|
176
|
+
return /* @__PURE__ */ React.createElement(Button2, __spreadValues({ color: "indigo" }, rest), children);
|
|
204
177
|
}
|
|
205
178
|
if (crudType == "create") {
|
|
206
|
-
return /* @__PURE__ */
|
|
179
|
+
return /* @__PURE__ */ React.createElement(Button2, __spreadValues({ color: "indigo", type: "submit", leftSection: /* @__PURE__ */ React.createElement(IconPlus2, null) }, rest), children ? children : "L\u01B0u");
|
|
207
180
|
}
|
|
208
181
|
if (crudType == "createMultiple") {
|
|
209
|
-
return /* @__PURE__ */
|
|
182
|
+
return /* @__PURE__ */ React.createElement(Button2, __spreadValues({ color: "green", type: "submit", leftSection: /* @__PURE__ */ React.createElement(IconPlus2, null) }, rest), children ? children : "Th\xEAm danh s\xE1ch");
|
|
210
183
|
}
|
|
211
184
|
if (crudType == "delete") {
|
|
212
|
-
return /* @__PURE__ */
|
|
185
|
+
return /* @__PURE__ */ React.createElement(Button2, __spreadValues({ color: "red", leftSection: /* @__PURE__ */ React.createElement(IconTrash2, null) }, rest), children ? children : "X\xE1c nh\u1EADn x\xF3a");
|
|
213
186
|
}
|
|
214
187
|
if (crudType == "update") {
|
|
215
|
-
return /* @__PURE__ */
|
|
188
|
+
return /* @__PURE__ */ React.createElement(Button2, __spreadValues({ color: "yellow", type: "submit", leftSection: /* @__PURE__ */ React.createElement(IconEdit2, null) }, rest), children ? children : "Ch\u1EC9nh s\u1EEDa");
|
|
216
189
|
}
|
|
217
190
|
if (crudType == "save") {
|
|
218
|
-
return /* @__PURE__ */
|
|
191
|
+
return /* @__PURE__ */ React.createElement(Button2, __spreadValues({ color: "blue", type: "submit", leftSection: /* @__PURE__ */ React.createElement(IconDeviceFloppy2, null) }, rest), children ? children : "L\u01B0u");
|
|
219
192
|
}
|
|
220
193
|
if (crudType == "import") {
|
|
221
|
-
return /* @__PURE__ */
|
|
194
|
+
return /* @__PURE__ */ React.createElement(Button2, __spreadValues({ color: "green.8", leftSection: /* @__PURE__ */ React.createElement(IconFileImport, null) }, rest), children ? children : "Import");
|
|
222
195
|
}
|
|
223
196
|
if (crudType == "print") {
|
|
224
|
-
return /* @__PURE__ */
|
|
197
|
+
return /* @__PURE__ */ React.createElement(Button2, __spreadValues({ color: "orange.7", leftSection: /* @__PURE__ */ React.createElement(IconPrinter, null) }, rest), children ? children : "In");
|
|
225
198
|
}
|
|
226
199
|
if (crudType == "export") {
|
|
227
|
-
return /* @__PURE__ */
|
|
200
|
+
return /* @__PURE__ */ React.createElement(Button2, __spreadValues({ color: "green.8", leftSection: /* @__PURE__ */ React.createElement(IconFileExport, null) }, rest), children ? children : "In");
|
|
228
201
|
}
|
|
229
202
|
if (crudType == "cancel") {
|
|
230
|
-
return /* @__PURE__ */
|
|
203
|
+
return /* @__PURE__ */ React.createElement(Button2, __spreadValues({ color: "gray", leftSection: /* @__PURE__ */ React.createElement(IconX, null) }, rest), children ? children : "H\u1EE7y thao t\xE1c");
|
|
231
204
|
}
|
|
232
205
|
if (crudType == "select") {
|
|
233
|
-
return /* @__PURE__ */
|
|
206
|
+
return /* @__PURE__ */ React.createElement(Button2, __spreadValues({}, rest), children ? children : "Ch\u1ECDn");
|
|
234
207
|
}
|
|
235
208
|
}
|
|
236
209
|
|
|
@@ -243,7 +216,6 @@ import { useState as useState2 } from "react";
|
|
|
243
216
|
// src/components/ActionIcons/ActionIconModal/MyActionIconModal.tsx
|
|
244
217
|
import { ActionIcon as ActionIcon3, Modal as Modal2 } from "@mantine/core";
|
|
245
218
|
import { IconEdit as IconEdit3, IconPlus as IconPlus3, IconTrash as IconTrash3 } from "@tabler/icons-react";
|
|
246
|
-
import { Fragment as Fragment2, jsx as jsx9, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
247
219
|
function MyActionIconModal(_a) {
|
|
248
220
|
var _b = _a, {
|
|
249
221
|
fullScreen = false,
|
|
@@ -263,89 +235,73 @@ function MyActionIconModal(_a) {
|
|
|
263
235
|
"icon"
|
|
264
236
|
]);
|
|
265
237
|
if (crudType == "default") {
|
|
266
|
-
return /* @__PURE__ */
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
}
|
|
278
|
-
)
|
|
279
|
-
] });
|
|
238
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(ActionIcon3, __spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "indigo" }, rest), icon), /* @__PURE__ */ React.createElement(
|
|
239
|
+
Modal2,
|
|
240
|
+
{
|
|
241
|
+
fullScreen,
|
|
242
|
+
size: modalSize,
|
|
243
|
+
title,
|
|
244
|
+
opened: disclosure == null ? void 0 : disclosure[0],
|
|
245
|
+
onClose: disclosure[1].close
|
|
246
|
+
},
|
|
247
|
+
/* @__PURE__ */ React.createElement(MyFlexColumn, null, children)
|
|
248
|
+
));
|
|
280
249
|
}
|
|
281
250
|
if (crudType == "create") {
|
|
282
|
-
return /* @__PURE__ */
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
}
|
|
294
|
-
)
|
|
295
|
-
] });
|
|
251
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(ActionIcon3, __spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open }, rest), icon ? icon : /* @__PURE__ */ React.createElement(IconPlus3, null)), /* @__PURE__ */ React.createElement(
|
|
252
|
+
Modal2,
|
|
253
|
+
{
|
|
254
|
+
fullScreen,
|
|
255
|
+
size: modalSize,
|
|
256
|
+
title: title ? title : "T\u1EA1o d\u1EEF li\u1EC7u m\u1EDBi",
|
|
257
|
+
opened: disclosure == null ? void 0 : disclosure[0],
|
|
258
|
+
onClose: disclosure[1].close
|
|
259
|
+
},
|
|
260
|
+
/* @__PURE__ */ React.createElement(MyFlexColumn, null, children)
|
|
261
|
+
));
|
|
296
262
|
}
|
|
297
263
|
if (crudType == "update") {
|
|
298
|
-
return /* @__PURE__ */
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
}
|
|
310
|
-
)
|
|
311
|
-
] });
|
|
264
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(ActionIcon3, __spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "yellow" }, rest), icon ? icon : /* @__PURE__ */ React.createElement(IconEdit3, null)), /* @__PURE__ */ React.createElement(
|
|
265
|
+
Modal2,
|
|
266
|
+
{
|
|
267
|
+
fullScreen,
|
|
268
|
+
size: modalSize,
|
|
269
|
+
title: title ? title : "S\u1EEDa d\u1EEF li\u1EC7u",
|
|
270
|
+
opened: disclosure == null ? void 0 : disclosure[0],
|
|
271
|
+
onClose: disclosure[1].close
|
|
272
|
+
},
|
|
273
|
+
/* @__PURE__ */ React.createElement(MyFlexColumn, null, children)
|
|
274
|
+
));
|
|
312
275
|
}
|
|
313
276
|
if (crudType == "delete") {
|
|
314
|
-
return /* @__PURE__ */
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
}
|
|
326
|
-
)
|
|
327
|
-
] });
|
|
277
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(ActionIcon3, __spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "red" }, rest), icon ? icon : /* @__PURE__ */ React.createElement(IconTrash3, null)), /* @__PURE__ */ React.createElement(
|
|
278
|
+
Modal2,
|
|
279
|
+
{
|
|
280
|
+
fullScreen,
|
|
281
|
+
size: modalSize,
|
|
282
|
+
title: title ? title : "X\xF3a d\u1EEF li\u1EC7u",
|
|
283
|
+
opened: disclosure == null ? void 0 : disclosure[0],
|
|
284
|
+
onClose: disclosure[1].close
|
|
285
|
+
},
|
|
286
|
+
/* @__PURE__ */ React.createElement(MyFlexColumn, null, children)
|
|
287
|
+
));
|
|
328
288
|
}
|
|
329
289
|
if (crudType == "check") {
|
|
330
|
-
return /* @__PURE__ */
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
}
|
|
342
|
-
)
|
|
343
|
-
] });
|
|
290
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(ActionIcon3, __spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "green" }, rest), icon ? icon : /* @__PURE__ */ React.createElement(IconTrash3, null)), /* @__PURE__ */ React.createElement(
|
|
291
|
+
Modal2,
|
|
292
|
+
{
|
|
293
|
+
fullScreen,
|
|
294
|
+
size: modalSize,
|
|
295
|
+
title: title ? title : "Ki\u1EC3m tra",
|
|
296
|
+
opened: disclosure == null ? void 0 : disclosure[0],
|
|
297
|
+
onClose: disclosure[1].close
|
|
298
|
+
},
|
|
299
|
+
/* @__PURE__ */ React.createElement(MyFlexColumn, null, children)
|
|
300
|
+
));
|
|
344
301
|
}
|
|
345
302
|
}
|
|
346
303
|
|
|
347
304
|
// src/components/ActionIcons/ActionIconCRUD/MyActionIconDelete.tsx
|
|
348
|
-
import { jsx as jsx10, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
349
305
|
function MyActionIconDelete(_a) {
|
|
350
306
|
var _b = _a, {
|
|
351
307
|
onSubmit,
|
|
@@ -383,52 +339,45 @@ function MyActionIconDelete(_a) {
|
|
|
383
339
|
loadingState[1](true);
|
|
384
340
|
mutation.mutate();
|
|
385
341
|
}
|
|
386
|
-
return /* @__PURE__ */
|
|
342
|
+
return /* @__PURE__ */ React.createElement(
|
|
387
343
|
MyActionIconModal,
|
|
388
|
-
|
|
344
|
+
__spreadValues({
|
|
389
345
|
disclosure: disc,
|
|
390
346
|
crudType: "delete"
|
|
391
|
-
}, rest),
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
onClick: disc[1].close
|
|
420
|
-
}
|
|
421
|
-
)
|
|
422
|
-
] })
|
|
423
|
-
]
|
|
424
|
-
})
|
|
347
|
+
}, rest),
|
|
348
|
+
/* @__PURE__ */ React.createElement(
|
|
349
|
+
Highlight,
|
|
350
|
+
{
|
|
351
|
+
highlight: contextData || [],
|
|
352
|
+
color: "red.6",
|
|
353
|
+
highlightStyles: {
|
|
354
|
+
fontWeight: 700,
|
|
355
|
+
WebkitBackgroundClip: "text",
|
|
356
|
+
WebkitTextFillColor: "transparent"
|
|
357
|
+
}
|
|
358
|
+
},
|
|
359
|
+
`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?`
|
|
360
|
+
),
|
|
361
|
+
/* @__PURE__ */ React.createElement(Group, { grow: true }, /* @__PURE__ */ React.createElement(
|
|
362
|
+
MyButton,
|
|
363
|
+
{
|
|
364
|
+
crudType: "delete",
|
|
365
|
+
onClick: handleCLick,
|
|
366
|
+
loading: loadingState[0]
|
|
367
|
+
}
|
|
368
|
+
), /* @__PURE__ */ React.createElement(
|
|
369
|
+
MyButton,
|
|
370
|
+
{
|
|
371
|
+
crudType: "cancel",
|
|
372
|
+
onClick: disc[1].close
|
|
373
|
+
}
|
|
374
|
+
))
|
|
425
375
|
);
|
|
426
376
|
}
|
|
427
377
|
|
|
428
378
|
// src/components/ActionIcons/ActionIconCRUD/MyActionIconUpdate.tsx
|
|
429
379
|
import { useDisclosure as useDisclosure3 } from "@mantine/hooks";
|
|
430
380
|
import { useMutation as useMutation2, useQueryClient as useQueryClient2 } from "@tanstack/react-query";
|
|
431
|
-
import { jsx as jsx11, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
432
381
|
function MyActionIconUpdate(_a) {
|
|
433
382
|
var _b = _a, {
|
|
434
383
|
form,
|
|
@@ -461,20 +410,16 @@ function MyActionIconUpdate(_a) {
|
|
|
461
410
|
if (onError) onError();
|
|
462
411
|
}
|
|
463
412
|
});
|
|
464
|
-
return /* @__PURE__ */
|
|
413
|
+
return /* @__PURE__ */ React.createElement(MyActionIconModal, __spreadValues({ disclosure: disc, crudType: "update" }, rest), /* @__PURE__ */ React.createElement("form", { onSubmit: form.onSubmit((values) => {
|
|
465
414
|
mutation.mutate(values);
|
|
466
|
-
}), children
|
|
467
|
-
children,
|
|
468
|
-
/* @__PURE__ */ jsx11(MyButton, { type: "submit", crudType: "save" })
|
|
469
|
-
] }) }) }));
|
|
415
|
+
}) }, /* @__PURE__ */ React.createElement(MyFlexColumn, null, children, /* @__PURE__ */ React.createElement(MyButton, { type: "submit", crudType: "save" }))));
|
|
470
416
|
}
|
|
471
417
|
|
|
472
418
|
// src/components/ActionIcons/ActionIconDownloadPDF/MyActionIconDownloadPDF.tsx
|
|
473
419
|
import { ActionIcon as ActionIcon4, Tooltip as Tooltip2 } from "@mantine/core";
|
|
474
420
|
import { IconDownload } from "@tabler/icons-react";
|
|
475
|
-
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
476
421
|
function MyActionIconDownloadPDF({ pdfLink = "https://datafiles.chinhphu.vn/cpp/files/vbpq/2021/07/17-bgd.signed.pdf" }) {
|
|
477
|
-
return /* @__PURE__ */
|
|
422
|
+
return /* @__PURE__ */ React.createElement(Tooltip2, { label: "Nh\u1EA5p \u0111\u1EC3 t\u1EA3i xu\u1ED1ng" }, /* @__PURE__ */ React.createElement(ActionIcon4, { onClick: async () => await utils_pdf_download(pdfLink), color: "red" }, /* @__PURE__ */ React.createElement(IconDownload, null)));
|
|
478
423
|
}
|
|
479
424
|
|
|
480
425
|
// src/components/ActionIcons/ActionIconUpload/MyActionIconUpload.tsx
|
|
@@ -482,19 +427,18 @@ import { ActionIcon as ActionIcon5 } from "@mantine/core";
|
|
|
482
427
|
import { Dropzone, MIME_TYPES } from "@mantine/dropzone";
|
|
483
428
|
import { IconCloudUpload } from "@tabler/icons-react";
|
|
484
429
|
import { useRef } from "react";
|
|
485
|
-
import { jsx as jsx13 } from "react/jsx-runtime";
|
|
486
430
|
function MyActionIconUpload() {
|
|
487
431
|
const openRef = useRef(null);
|
|
488
|
-
return /* @__PURE__ */
|
|
432
|
+
return /* @__PURE__ */ React.createElement(
|
|
489
433
|
Dropzone,
|
|
490
434
|
{
|
|
491
435
|
openRef,
|
|
492
436
|
onDrop: () => {
|
|
493
437
|
},
|
|
494
438
|
radius: "md",
|
|
495
|
-
accept: [MIME_TYPES.pdf]
|
|
496
|
-
|
|
497
|
-
|
|
439
|
+
accept: [MIME_TYPES.pdf]
|
|
440
|
+
},
|
|
441
|
+
/* @__PURE__ */ React.createElement(ActionIcon5, null, /* @__PURE__ */ React.createElement(IconCloudUpload, null))
|
|
498
442
|
);
|
|
499
443
|
}
|
|
500
444
|
|
|
@@ -503,47 +447,40 @@ import { ActionIcon as ActionIcon6, Group as Group2, Modal as Modal3, Paper, Tex
|
|
|
503
447
|
import { useDisclosure as useDisclosure4 } from "@mantine/hooks";
|
|
504
448
|
import { IconLivePhoto, IconMaximize, IconMinimize } from "@tabler/icons-react";
|
|
505
449
|
import { useState as useState3 } from "react";
|
|
506
|
-
import { Fragment as Fragment3, jsx as jsx14, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
507
450
|
function MyActionIconViewPDF(_a) {
|
|
508
451
|
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"]);
|
|
509
452
|
const disc = useDisclosure4(false);
|
|
510
453
|
const fullScreen = useState3(false);
|
|
511
454
|
const hSize = useState3("80vh");
|
|
512
|
-
return /* @__PURE__ */
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
)
|
|
542
|
-
] }),
|
|
543
|
-
children: /* @__PURE__ */ jsx14(Paper, { h: hSize[0], p: "lg", children: /* @__PURE__ */ jsx14("iframe", { src: pdfLink, width: "100%", height: "100%" }) })
|
|
544
|
-
}
|
|
545
|
-
)
|
|
546
|
-
] });
|
|
455
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Tooltip3, { label: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp" }, /* @__PURE__ */ React.createElement(ActionIcon6, __spreadValues({ color: "cyan", onClick: disc[1].open }, rest), /* @__PURE__ */ React.createElement(IconLivePhoto, null))), /* @__PURE__ */ React.createElement(
|
|
456
|
+
Modal3,
|
|
457
|
+
{
|
|
458
|
+
fullScreen: fullScreen[0],
|
|
459
|
+
opened: disc[0],
|
|
460
|
+
onClose: disc[1].close,
|
|
461
|
+
size: modalSize,
|
|
462
|
+
title: /* @__PURE__ */ React.createElement(Group2, null, /* @__PURE__ */ React.createElement(Text3, null, "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp"), fullScreen[0] ? /* @__PURE__ */ React.createElement(
|
|
463
|
+
ActionIcon6,
|
|
464
|
+
{
|
|
465
|
+
onClick: () => {
|
|
466
|
+
fullScreen[1](false);
|
|
467
|
+
hSize[1]("80vh");
|
|
468
|
+
}
|
|
469
|
+
},
|
|
470
|
+
/* @__PURE__ */ React.createElement(IconMinimize, null)
|
|
471
|
+
) : /* @__PURE__ */ React.createElement(
|
|
472
|
+
ActionIcon6,
|
|
473
|
+
{
|
|
474
|
+
onClick: () => {
|
|
475
|
+
fullScreen[1](true);
|
|
476
|
+
hSize[1]("90vh");
|
|
477
|
+
}
|
|
478
|
+
},
|
|
479
|
+
/* @__PURE__ */ React.createElement(IconMaximize, null)
|
|
480
|
+
))
|
|
481
|
+
},
|
|
482
|
+
/* @__PURE__ */ React.createElement(Paper, { h: hSize[0], p: "lg" }, /* @__PURE__ */ React.createElement("iframe", { src: pdfLink, width: "100%", height: "100%" }))
|
|
483
|
+
));
|
|
547
484
|
}
|
|
548
485
|
|
|
549
486
|
// src/components/ActionIcons/SwitchTheme/MySwitchTheme.tsx
|
|
@@ -555,23 +492,20 @@ import cx from "clsx";
|
|
|
555
492
|
var css_default = {};
|
|
556
493
|
|
|
557
494
|
// src/components/ActionIcons/SwitchTheme/MySwitchTheme.tsx
|
|
558
|
-
import { jsx as jsx15, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
559
495
|
function MySwitchTheme() {
|
|
560
496
|
const { setColorScheme } = useMantineColorScheme();
|
|
561
497
|
const computedColorScheme = useComputedColorScheme("light", { getInitialValueInEffect: true });
|
|
562
|
-
return /* @__PURE__ */
|
|
498
|
+
return /* @__PURE__ */ React.createElement(
|
|
563
499
|
ActionIcon7,
|
|
564
500
|
{
|
|
565
501
|
onClick: () => setColorScheme(computedColorScheme === "light" ? "dark" : "light"),
|
|
566
502
|
variant: "default",
|
|
567
503
|
size: "lg",
|
|
568
504
|
radius: "md",
|
|
569
|
-
"aria-label": "Toggle color scheme"
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
]
|
|
574
|
-
}
|
|
505
|
+
"aria-label": "Toggle color scheme"
|
|
506
|
+
},
|
|
507
|
+
/* @__PURE__ */ React.createElement(IconSun, { className: cx(css_default.icon, css_default.light), stroke: 1.5 }),
|
|
508
|
+
/* @__PURE__ */ React.createElement(IconMoon, { className: cx(css_default.icon, css_default.dark), stroke: 1.5 })
|
|
575
509
|
);
|
|
576
510
|
}
|
|
577
511
|
|
|
@@ -580,7 +514,6 @@ import { Spotlight, spotlight } from "@mantine/spotlight";
|
|
|
580
514
|
import { IconSearch } from "@tabler/icons-react";
|
|
581
515
|
import { usePathname, useRouter } from "next/navigation";
|
|
582
516
|
import { useMemo, useState as useState4 } from "react";
|
|
583
|
-
import { jsx as jsx16, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
584
517
|
function convertMenuToSpotlightActions(items, router, parentPath = "", sideBarStore, pathName) {
|
|
585
518
|
let actions = [];
|
|
586
519
|
items.forEach((item) => {
|
|
@@ -616,7 +549,7 @@ function MyAppSpotlight({ menu }) {
|
|
|
616
549
|
[menu, router, sideBarStore]
|
|
617
550
|
// Add sideBarStore to the dependency array
|
|
618
551
|
);
|
|
619
|
-
return /* @__PURE__ */
|
|
552
|
+
return /* @__PURE__ */ React.createElement(
|
|
620
553
|
Spotlight,
|
|
621
554
|
{
|
|
622
555
|
actions: spotlightActions,
|
|
@@ -628,14 +561,14 @@ function MyAppSpotlight({ menu }) {
|
|
|
628
561
|
nothingFound: "Kh\xF4ng t\xECm th\u1EA5y trang",
|
|
629
562
|
highlightQuery: true,
|
|
630
563
|
searchProps: {
|
|
631
|
-
leftSection: /* @__PURE__ */
|
|
564
|
+
leftSection: /* @__PURE__ */ React.createElement(IconSearch, { stroke: 1.5 }),
|
|
632
565
|
placeholder: "T\xECm ki\u1EBFm trang..."
|
|
633
566
|
}
|
|
634
567
|
}
|
|
635
568
|
);
|
|
636
569
|
}
|
|
637
570
|
function SpotlightTrigger() {
|
|
638
|
-
return /* @__PURE__ */
|
|
571
|
+
return /* @__PURE__ */ React.createElement(
|
|
639
572
|
"button",
|
|
640
573
|
{
|
|
641
574
|
onClick: spotlight.open,
|
|
@@ -646,12 +579,10 @@ function SpotlightTrigger() {
|
|
|
646
579
|
display: "flex",
|
|
647
580
|
alignItems: "center",
|
|
648
581
|
gap: "8px"
|
|
649
|
-
}
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
]
|
|
654
|
-
}
|
|
582
|
+
}
|
|
583
|
+
},
|
|
584
|
+
/* @__PURE__ */ React.createElement(IconSearch, { stroke: 1.5 }),
|
|
585
|
+
"T\xECm ki\u1EBFm (Ctrl + K)"
|
|
655
586
|
);
|
|
656
587
|
}
|
|
657
588
|
|
|
@@ -660,46 +591,39 @@ import { ActionIcon as ActionIcon8, Anchor, Group as Group3, Modal as Modal4, Pa
|
|
|
660
591
|
import { useDisclosure as useDisclosure5 } from "@mantine/hooks";
|
|
661
592
|
import { IconMaximize as IconMaximize2, IconMinimize as IconMinimize2 } from "@tabler/icons-react";
|
|
662
593
|
import { useState as useState5 } from "react";
|
|
663
|
-
import { Fragment as Fragment4, jsx as jsx17, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
664
594
|
function MyAnchorViewPDF({ label, pdfLink }) {
|
|
665
595
|
const disc = useDisclosure5(false);
|
|
666
596
|
const fullScreen = useState5(false);
|
|
667
597
|
const hSize = useState5("80vh");
|
|
668
|
-
return /* @__PURE__ */
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
)
|
|
698
|
-
] }),
|
|
699
|
-
children: /* @__PURE__ */ jsx17(Paper2, { h: hSize[0], children: /* @__PURE__ */ jsx17("iframe", { src: pdfLink, width: "100%", height: "100%" }) })
|
|
700
|
-
}
|
|
701
|
-
)
|
|
702
|
-
] });
|
|
598
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Anchor, { onClick: disc[1].open }, label), /* @__PURE__ */ React.createElement(
|
|
599
|
+
Modal4,
|
|
600
|
+
{
|
|
601
|
+
fullScreen: fullScreen[0],
|
|
602
|
+
opened: disc[0],
|
|
603
|
+
onClose: disc[1].close,
|
|
604
|
+
size: "80%",
|
|
605
|
+
title: /* @__PURE__ */ React.createElement(Group3, null, /* @__PURE__ */ React.createElement(Text4, null, "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp"), fullScreen[0] ? /* @__PURE__ */ React.createElement(
|
|
606
|
+
ActionIcon8,
|
|
607
|
+
{
|
|
608
|
+
onClick: () => {
|
|
609
|
+
fullScreen[1](false);
|
|
610
|
+
hSize[1]("80vh");
|
|
611
|
+
}
|
|
612
|
+
},
|
|
613
|
+
/* @__PURE__ */ React.createElement(IconMinimize2, null)
|
|
614
|
+
) : /* @__PURE__ */ React.createElement(
|
|
615
|
+
ActionIcon8,
|
|
616
|
+
{
|
|
617
|
+
onClick: () => {
|
|
618
|
+
fullScreen[1](true);
|
|
619
|
+
hSize[1]("90vh");
|
|
620
|
+
}
|
|
621
|
+
},
|
|
622
|
+
/* @__PURE__ */ React.createElement(IconMaximize2, null)
|
|
623
|
+
))
|
|
624
|
+
},
|
|
625
|
+
/* @__PURE__ */ React.createElement(Paper2, { h: hSize[0] }, /* @__PURE__ */ React.createElement("iframe", { src: pdfLink, width: "100%", height: "100%" }))
|
|
626
|
+
));
|
|
703
627
|
}
|
|
704
628
|
|
|
705
629
|
// src/components/Buttons/ButtonCRUD/AQButtonCreateByImportFile.tsx
|
|
@@ -712,7 +636,6 @@ import * as XLSX from "xlsx";
|
|
|
712
636
|
// src/components/Buttons/ButtonModal/MyButtonModal.tsx
|
|
713
637
|
import { Button as Button3, Modal as Modal5 } from "@mantine/core";
|
|
714
638
|
import { IconEdit as IconEdit4, IconPlus as IconPlus4, IconTrash as IconTrash4 } from "@tabler/icons-react";
|
|
715
|
-
import { Fragment as Fragment5, jsx as jsx18, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
716
639
|
function MyButtonModal(_a) {
|
|
717
640
|
var _b = _a, {
|
|
718
641
|
fullScreen = false,
|
|
@@ -735,89 +658,73 @@ function MyButtonModal(_a) {
|
|
|
735
658
|
]);
|
|
736
659
|
const objectNameLower = objectName == null ? void 0 : objectName.toLowerCase();
|
|
737
660
|
if (crudType == "default") {
|
|
738
|
-
return /* @__PURE__ */
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
}
|
|
750
|
-
)
|
|
751
|
-
] });
|
|
661
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Button3, __spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "indigo" }, rest), label), /* @__PURE__ */ React.createElement(
|
|
662
|
+
Modal5,
|
|
663
|
+
{
|
|
664
|
+
fullScreen,
|
|
665
|
+
size: modalSize,
|
|
666
|
+
title,
|
|
667
|
+
opened: disclosure == null ? void 0 : disclosure[0],
|
|
668
|
+
onClose: disclosure[1].close
|
|
669
|
+
},
|
|
670
|
+
/* @__PURE__ */ React.createElement(MyFlexColumn, null, children)
|
|
671
|
+
));
|
|
752
672
|
}
|
|
753
673
|
if (crudType == "create") {
|
|
754
|
-
return /* @__PURE__ */
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
}
|
|
766
|
-
)
|
|
767
|
-
] });
|
|
674
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Button3, __spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, leftSection: /* @__PURE__ */ React.createElement(IconPlus4, null) }, rest), label ? label : `Th\xEAm`), /* @__PURE__ */ React.createElement(
|
|
675
|
+
Modal5,
|
|
676
|
+
{
|
|
677
|
+
fullScreen,
|
|
678
|
+
size: modalSize,
|
|
679
|
+
title: title ? title : `T\u1EA1o ${objectNameLower} m\u1EDBi`,
|
|
680
|
+
opened: disclosure == null ? void 0 : disclosure[0],
|
|
681
|
+
onClose: disclosure[1].close
|
|
682
|
+
},
|
|
683
|
+
/* @__PURE__ */ React.createElement(MyFlexColumn, null, children)
|
|
684
|
+
));
|
|
768
685
|
}
|
|
769
686
|
if (crudType == "createMultiple") {
|
|
770
|
-
return /* @__PURE__ */
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
}
|
|
782
|
-
)
|
|
783
|
-
] });
|
|
687
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Button3, __spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "green", leftSection: /* @__PURE__ */ React.createElement(IconPlus4, null) }, rest), label ? label : `Import ${objectNameLower}`), /* @__PURE__ */ React.createElement(
|
|
688
|
+
Modal5,
|
|
689
|
+
{
|
|
690
|
+
fullScreen,
|
|
691
|
+
size: modalSize,
|
|
692
|
+
title: title ? title : `Th\xEAm danh s\xE1ch ${objectNameLower}`,
|
|
693
|
+
opened: disclosure == null ? void 0 : disclosure[0],
|
|
694
|
+
onClose: disclosure[1].close
|
|
695
|
+
},
|
|
696
|
+
/* @__PURE__ */ React.createElement(MyFlexColumn, null, children)
|
|
697
|
+
));
|
|
784
698
|
}
|
|
785
699
|
if (crudType == "update") {
|
|
786
|
-
return /* @__PURE__ */
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
}
|
|
798
|
-
)
|
|
799
|
-
] });
|
|
700
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Button3, __spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "yellow", leftSection: /* @__PURE__ */ React.createElement(IconEdit4, null) }, rest), label ? label : `Ch\u1EC9nh s\u1EEDa ${objectNameLower}`), /* @__PURE__ */ React.createElement(
|
|
701
|
+
Modal5,
|
|
702
|
+
{
|
|
703
|
+
fullScreen,
|
|
704
|
+
size: modalSize,
|
|
705
|
+
title: title ? title : `Ch\u1EC9nh s\u1EEDa ${objectNameLower}`,
|
|
706
|
+
opened: disclosure == null ? void 0 : disclosure[0],
|
|
707
|
+
onClose: disclosure[1].close
|
|
708
|
+
},
|
|
709
|
+
/* @__PURE__ */ React.createElement(MyFlexColumn, null, children)
|
|
710
|
+
));
|
|
800
711
|
}
|
|
801
712
|
if (crudType == "delete") {
|
|
802
|
-
return /* @__PURE__ */
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
}
|
|
814
|
-
)
|
|
815
|
-
] });
|
|
713
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Button3, __spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "red", leftSection: /* @__PURE__ */ React.createElement(IconTrash4, null) }, rest), label ? label : `X\xF3a ${objectNameLower}`), /* @__PURE__ */ React.createElement(
|
|
714
|
+
Modal5,
|
|
715
|
+
{
|
|
716
|
+
fullScreen,
|
|
717
|
+
size: modalSize,
|
|
718
|
+
title: title ? title : `X\xF3a ${objectNameLower}`,
|
|
719
|
+
opened: disclosure == null ? void 0 : disclosure[0],
|
|
720
|
+
onClose: disclosure[1].close
|
|
721
|
+
},
|
|
722
|
+
/* @__PURE__ */ React.createElement(MyFlexColumn, null, children)
|
|
723
|
+
));
|
|
816
724
|
}
|
|
817
725
|
}
|
|
818
726
|
|
|
819
727
|
// src/components/Buttons/ButtonCRUD/AQButtonCreateByImportFile.tsx
|
|
820
|
-
import { jsx as jsx19, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
821
728
|
function AQButtonCreateByImportFile(_a) {
|
|
822
729
|
var _b = _a, {
|
|
823
730
|
form,
|
|
@@ -866,29 +773,25 @@ function AQButtonCreateByImportFile(_a) {
|
|
|
866
773
|
};
|
|
867
774
|
reader.readAsArrayBuffer(file);
|
|
868
775
|
};
|
|
869
|
-
return /* @__PURE__ */
|
|
870
|
-
}),
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
),
|
|
883
|
-
/* @__PURE__ */ jsx19(MyButton, { type: "submit", crudType: "createMultiple" })
|
|
884
|
-
] }) }) }));
|
|
776
|
+
return /* @__PURE__ */ React.createElement(MyButtonModal, __spreadValues({ disclosure: disc, crudType: "createMultiple" }, rest), /* @__PURE__ */ React.createElement("form", { onSubmit: form.onSubmit((values) => {
|
|
777
|
+
}) }, /* @__PURE__ */ React.createElement(MyFlexColumn, null, /* @__PURE__ */ React.createElement(
|
|
778
|
+
FileInput,
|
|
779
|
+
{
|
|
780
|
+
leftSection: /* @__PURE__ */ React.createElement(IconFileTypeXls, null),
|
|
781
|
+
accept: ".xlsx",
|
|
782
|
+
description: "\u0110\u1ECBnh d\u1EA1ng h\u1EE3p l\u1EC7: .xlsx",
|
|
783
|
+
label: "Ch\u1ECDn file",
|
|
784
|
+
onChange: handleFileChange,
|
|
785
|
+
clearable: true,
|
|
786
|
+
placeholder: "Ch\u1ECDn file"
|
|
787
|
+
}
|
|
788
|
+
), /* @__PURE__ */ React.createElement(MyButton, { type: "submit", crudType: "createMultiple" }))));
|
|
885
789
|
}
|
|
886
790
|
|
|
887
791
|
// src/components/Buttons/ButtonCRUD/AQButtonExportData.tsx
|
|
888
792
|
import { Button as Button4 } from "@mantine/core";
|
|
889
793
|
import { IconDownload as IconDownload2 } from "@tabler/icons-react";
|
|
890
794
|
import * as XLSX2 from "xlsx";
|
|
891
|
-
import { jsx as jsx20 } from "react/jsx-runtime";
|
|
892
795
|
function AQButtonExportData({
|
|
893
796
|
isAllData,
|
|
894
797
|
objectName,
|
|
@@ -914,7 +817,7 @@ function AQButtonExportData({
|
|
|
914
817
|
XLSX2.utils.book_append_sheet(workbook, worksheet, "Exported Data");
|
|
915
818
|
XLSX2.writeFile(workbook, `${objectName}.xlsx`);
|
|
916
819
|
};
|
|
917
|
-
return /* @__PURE__ */
|
|
820
|
+
return /* @__PURE__ */ React.createElement(
|
|
918
821
|
Button4,
|
|
919
822
|
{
|
|
920
823
|
disabled: data.length === 0,
|
|
@@ -924,16 +827,15 @@ function AQButtonExportData({
|
|
|
924
827
|
event.preventDefault();
|
|
925
828
|
handleExport();
|
|
926
829
|
},
|
|
927
|
-
leftSection: /* @__PURE__ */
|
|
928
|
-
|
|
929
|
-
|
|
830
|
+
leftSection: /* @__PURE__ */ React.createElement(IconDownload2, null)
|
|
831
|
+
},
|
|
832
|
+
"Export"
|
|
930
833
|
);
|
|
931
834
|
}
|
|
932
835
|
|
|
933
836
|
// src/components/Buttons/ButtonCRUD/MyButtonCreate.tsx
|
|
934
837
|
import { useDisclosure as useDisclosure7 } from "@mantine/hooks";
|
|
935
838
|
import { useMutation as useMutation4, useQueryClient as useQueryClient4 } from "@tanstack/react-query";
|
|
936
|
-
import { jsx as jsx21, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
937
839
|
function MyButtonCreate(_a) {
|
|
938
840
|
var _b = _a, {
|
|
939
841
|
form,
|
|
@@ -976,12 +878,9 @@ function MyButtonCreate(_a) {
|
|
|
976
878
|
if (onError) onError();
|
|
977
879
|
}
|
|
978
880
|
});
|
|
979
|
-
return /* @__PURE__ */
|
|
881
|
+
return /* @__PURE__ */ React.createElement(MyButtonModal, __spreadValues({ disclosure, crudType: "create" }, rest), /* @__PURE__ */ React.createElement("form", { onSubmit: form.onSubmit((values) => {
|
|
980
882
|
mutation.mutate(values);
|
|
981
|
-
}), children
|
|
982
|
-
children,
|
|
983
|
-
/* @__PURE__ */ jsx21(MyButton, { type: "submit", crudType: "save" })
|
|
984
|
-
] }) }) }));
|
|
883
|
+
}) }, /* @__PURE__ */ React.createElement(MyFlexColumn, null, children, /* @__PURE__ */ React.createElement(MyButton, { type: "submit", crudType: "save" }))));
|
|
985
884
|
}
|
|
986
885
|
|
|
987
886
|
// src/components/Buttons/ButtonImport/MyButtonImport.tsx
|
|
@@ -990,18 +889,16 @@ import { IconFileImport as IconFileImport2 } from "@tabler/icons-react";
|
|
|
990
889
|
|
|
991
890
|
// src/components/Combobox/Select/MySelect.tsx
|
|
992
891
|
import { Select } from "@mantine/core";
|
|
993
|
-
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
994
892
|
function MySelect(_a) {
|
|
995
893
|
var _b = _a, { label } = _b, rest = __objRest(_b, ["label"]);
|
|
996
|
-
return /* @__PURE__ */
|
|
894
|
+
return /* @__PURE__ */ React.createElement(Select, __spreadValues({ label, placeholder: label ? `Ch\u1ECDn ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
|
|
997
895
|
}
|
|
998
896
|
|
|
999
897
|
// src/components/Layouts/FlexEnd/MyFlexEnd.tsx
|
|
1000
898
|
import { Group as Group4 } from "@mantine/core";
|
|
1001
|
-
import { jsx as jsx23 } from "react/jsx-runtime";
|
|
1002
899
|
function MyFlexEnd(_a) {
|
|
1003
900
|
var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
|
|
1004
|
-
return /* @__PURE__ */
|
|
901
|
+
return /* @__PURE__ */ React.createElement(Group4, __spreadValues({ justify: "end", mt: "md" }, rest), children);
|
|
1005
902
|
}
|
|
1006
903
|
|
|
1007
904
|
// src/components/Buttons/ButtonImport/SelectFieldModal.tsx
|
|
@@ -1159,106 +1056,69 @@ function useS_ButtonImport() {
|
|
|
1159
1056
|
}
|
|
1160
1057
|
|
|
1161
1058
|
// src/components/Buttons/ButtonImport/SelectFieldModal.tsx
|
|
1162
|
-
import { jsx as jsx24, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1163
1059
|
function SelectFieldModal({ stack, onImport }) {
|
|
1164
1060
|
var _a, _b;
|
|
1165
1061
|
const store = useS_ButtonImport();
|
|
1166
|
-
return /* @__PURE__ */
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
)
|
|
1197
|
-
|
|
1198
|
-
/* @__PURE__ */
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
children: "Chuy\u1EC3n t\u1EA5t c\u1EA3 v\u1EC1"
|
|
1227
|
-
}
|
|
1228
|
-
)
|
|
1229
|
-
] })
|
|
1230
|
-
] }),
|
|
1231
|
-
/* @__PURE__ */ jsx24(Divider, {}),
|
|
1232
|
-
/* @__PURE__ */ jsxs13(MyFlexEnd, { children: [
|
|
1233
|
-
/* @__PURE__ */ jsx24(
|
|
1234
|
-
Button5,
|
|
1235
|
-
{
|
|
1236
|
-
leftSection: /* @__PURE__ */ jsx24(IconArrowBackUp, {}),
|
|
1237
|
-
onClick: () => stack.close("select-field-page"),
|
|
1238
|
-
color: "gray.7",
|
|
1239
|
-
children: "Quay l\u1EA1i"
|
|
1240
|
-
}
|
|
1241
|
-
),
|
|
1242
|
-
/* @__PURE__ */ jsx24(
|
|
1243
|
-
Button5,
|
|
1244
|
-
{
|
|
1245
|
-
color: "blue.8",
|
|
1246
|
-
leftSection: /* @__PURE__ */ jsx24(IconArrowBigRight, {}),
|
|
1247
|
-
onClick: onImport,
|
|
1248
|
-
children: "Ti\u1EBFp t\u1EE5c / Import"
|
|
1249
|
-
}
|
|
1250
|
-
),
|
|
1251
|
-
/* @__PURE__ */ jsx24(
|
|
1252
|
-
Button5,
|
|
1253
|
-
{
|
|
1254
|
-
leftSection: /* @__PURE__ */ jsx24(IconSquareRoundedX, {}),
|
|
1255
|
-
onClick: () => stack.closeAll(),
|
|
1256
|
-
color: "red.6",
|
|
1257
|
-
children: "\u0110\xF3ng"
|
|
1258
|
-
}
|
|
1259
|
-
)
|
|
1260
|
-
] })
|
|
1261
|
-
] }));
|
|
1062
|
+
return /* @__PURE__ */ React.createElement(Modal6, __spreadProps(__spreadValues({ fullScreen: true }, stack.register("select-field-page")), { title: "Import" }), /* @__PURE__ */ React.createElement(SimpleGrid, { cols: { base: 1, lg: 2 } }, /* @__PURE__ */ React.createElement(Fieldset, { legend: "Danh s\xE1ch tr\u01B0\u1EDDng th\xF4ng tin" }, /* @__PURE__ */ React.createElement(Table, { stickyHeader: true, stickyHeaderOffset: 60 }, /* @__PURE__ */ React.createElement(Table.Thead, { bg: "cyan" }, /* @__PURE__ */ React.createElement(Table.Tr, null, /* @__PURE__ */ React.createElement(Table.Th, null, "M\xE3 field"), /* @__PURE__ */ React.createElement(Table.Th, null, "T\xEAn field"))), /* @__PURE__ */ React.createElement(Table.Tbody, null, (_a = store.state.fieldConfig) == null ? void 0 : _a.filter((item) => item.isSelected == false || item.isSelected == void 0).map((item, idx) => /* @__PURE__ */ React.createElement(
|
|
1063
|
+
Table.Tr,
|
|
1064
|
+
{
|
|
1065
|
+
key: idx,
|
|
1066
|
+
style: { cursor: "pointer" }
|
|
1067
|
+
},
|
|
1068
|
+
/* @__PURE__ */ React.createElement(Table.Td, { onClick: () => store.changeSelected(item.fieldKey.toString(), true) }, item.fieldKey.toString()),
|
|
1069
|
+
/* @__PURE__ */ React.createElement(Table.Td, { onClick: () => store.changeSelected(item.fieldKey.toString(), true) }, item.fieldName)
|
|
1070
|
+
)))), /* @__PURE__ */ React.createElement(Space2, null), /* @__PURE__ */ React.createElement(Group5, null, /* @__PURE__ */ React.createElement(
|
|
1071
|
+
Button5,
|
|
1072
|
+
{
|
|
1073
|
+
onClick: () => {
|
|
1074
|
+
store.changeAllSelected(true);
|
|
1075
|
+
},
|
|
1076
|
+
leftSection: /* @__PURE__ */ React.createElement(IconArrowBigRight, null)
|
|
1077
|
+
},
|
|
1078
|
+
"Chuy\u1EC3n t\u1EA5t c\u1EA3"
|
|
1079
|
+
))), /* @__PURE__ */ React.createElement(Fieldset, { legend: "Danh s\xE1ch tr\u01B0\u1EDDng th\xF4ng tin \u0111\u01B0\u1EE3c ch\u1ECDn" }, /* @__PURE__ */ React.createElement(Table, { stickyHeader: true, stickyHeaderOffset: 60 }, /* @__PURE__ */ React.createElement(Table.Thead, null, /* @__PURE__ */ React.createElement(Table.Tr, null, /* @__PURE__ */ React.createElement(Table.Th, null, "M\xE3 field"), /* @__PURE__ */ React.createElement(Table.Th, null, "T\xEAn field"), /* @__PURE__ */ React.createElement(Table.Th, null, "C\u1ED9t map"))), /* @__PURE__ */ React.createElement(Table.Tbody, null, (_b = store.state.fieldConfig) == null ? void 0 : _b.filter((item) => item.isSelected == true).map((item, idx) => /* @__PURE__ */ React.createElement(
|
|
1080
|
+
Table.Tr,
|
|
1081
|
+
{
|
|
1082
|
+
key: idx,
|
|
1083
|
+
style: { cursor: "pointer" }
|
|
1084
|
+
},
|
|
1085
|
+
/* @__PURE__ */ React.createElement(Table.Td, { onClick: () => store.changeSelected(item.fieldKey.toString(), false) }, item.fieldKey.toString()),
|
|
1086
|
+
/* @__PURE__ */ React.createElement(Table.Td, { onClick: () => store.changeSelected(item.fieldKey.toString(), false) }, item.fieldName),
|
|
1087
|
+
/* @__PURE__ */ React.createElement(Table.Td, null, /* @__PURE__ */ React.createElement(MySelect, { data: store.state.title, value: item.fieldToMap, onChange: (e4) => store.setFieldToMap(item.fieldKey.toString(), e4) }))
|
|
1088
|
+
)))), /* @__PURE__ */ React.createElement(Space2, null), /* @__PURE__ */ React.createElement(
|
|
1089
|
+
Button5,
|
|
1090
|
+
{
|
|
1091
|
+
onClick: () => {
|
|
1092
|
+
store.changeAllSelected(false);
|
|
1093
|
+
},
|
|
1094
|
+
leftSection: /* @__PURE__ */ React.createElement(IconArrowBigLeft, null)
|
|
1095
|
+
},
|
|
1096
|
+
"Chuy\u1EC3n t\u1EA5t c\u1EA3 v\u1EC1"
|
|
1097
|
+
))), /* @__PURE__ */ React.createElement(Divider, null), /* @__PURE__ */ React.createElement(MyFlexEnd, null, /* @__PURE__ */ React.createElement(
|
|
1098
|
+
Button5,
|
|
1099
|
+
{
|
|
1100
|
+
leftSection: /* @__PURE__ */ React.createElement(IconArrowBackUp, null),
|
|
1101
|
+
onClick: () => stack.close("select-field-page"),
|
|
1102
|
+
color: "gray.7"
|
|
1103
|
+
},
|
|
1104
|
+
"Quay l\u1EA1i"
|
|
1105
|
+
), /* @__PURE__ */ React.createElement(
|
|
1106
|
+
Button5,
|
|
1107
|
+
{
|
|
1108
|
+
color: "blue.8",
|
|
1109
|
+
leftSection: /* @__PURE__ */ React.createElement(IconArrowBigRight, null),
|
|
1110
|
+
onClick: onImport
|
|
1111
|
+
},
|
|
1112
|
+
"Ti\u1EBFp t\u1EE5c / Import"
|
|
1113
|
+
), /* @__PURE__ */ React.createElement(
|
|
1114
|
+
Button5,
|
|
1115
|
+
{
|
|
1116
|
+
leftSection: /* @__PURE__ */ React.createElement(IconSquareRoundedX, null),
|
|
1117
|
+
onClick: () => stack.closeAll(),
|
|
1118
|
+
color: "red.6"
|
|
1119
|
+
},
|
|
1120
|
+
"\u0110\xF3ng"
|
|
1121
|
+
)));
|
|
1262
1122
|
}
|
|
1263
1123
|
|
|
1264
1124
|
// src/components/DataDisplay/DataTable/MyDataTable.tsx
|
|
@@ -1271,7 +1131,6 @@ import {
|
|
|
1271
1131
|
} from "mantine-react-table";
|
|
1272
1132
|
import { MRT_Localization_VI } from "mantine-react-table/locales/vi/index.cjs";
|
|
1273
1133
|
import { useEffect as useEffect3 } from "react";
|
|
1274
|
-
import { Fragment as Fragment6, jsx as jsx25, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1275
1134
|
function formatData(data, formats) {
|
|
1276
1135
|
return data.map((row) => {
|
|
1277
1136
|
const transformedRow = {};
|
|
@@ -1312,19 +1171,16 @@ function MyDataTable(_a) {
|
|
|
1312
1171
|
columns,
|
|
1313
1172
|
data,
|
|
1314
1173
|
renderTopToolbarCustomActions: ({ table: table2 }) => {
|
|
1315
|
-
return /* @__PURE__ */
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
}
|
|
1326
|
-
) })
|
|
1327
|
-
] });
|
|
1174
|
+
return /* @__PURE__ */ React.createElement(Group6, null, renderTopToolbarCustomActions && renderTopToolbarCustomActions({ table: table2 }), exportAble && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
|
|
1175
|
+
Button6,
|
|
1176
|
+
{
|
|
1177
|
+
color: "green.8",
|
|
1178
|
+
onClick: () => handleExport(table2.getSelectedRowModel().rows),
|
|
1179
|
+
leftSection: /* @__PURE__ */ React.createElement(IconDownload3, null),
|
|
1180
|
+
variant: "filled"
|
|
1181
|
+
},
|
|
1182
|
+
"Export"
|
|
1183
|
+
)));
|
|
1328
1184
|
},
|
|
1329
1185
|
enableRowNumbers: true,
|
|
1330
1186
|
enableRowSelection: exportAble,
|
|
@@ -1371,131 +1227,110 @@ function MyDataTable(_a) {
|
|
|
1371
1227
|
setSelectedRow && setSelectedRow(table.getSelectedRowModel().rows.map((row) => row.original));
|
|
1372
1228
|
}, [table.getState().rowSelection]);
|
|
1373
1229
|
if (data == void 0) return;
|
|
1374
|
-
return /* @__PURE__ */
|
|
1230
|
+
return /* @__PURE__ */ React.createElement(MantineReactTable, { table });
|
|
1375
1231
|
}
|
|
1376
1232
|
|
|
1377
1233
|
// src/components/Buttons/ButtonImport/SelectFileModal.tsx
|
|
1378
1234
|
import { Button as Button7, Fieldset as Fieldset2, FileInput as FileInput2, Modal as Modal7, NumberInput, Select as Select2, SimpleGrid as SimpleGrid2 } from "@mantine/core";
|
|
1379
1235
|
import { IconArrowBigRight as IconArrowBigRight2, IconSquareRoundedX as IconSquareRoundedX2 } from "@tabler/icons-react";
|
|
1380
|
-
import { jsx as jsx26, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1381
1236
|
function SelectFileModal({ onExportStructure, stack }) {
|
|
1382
1237
|
var _a;
|
|
1383
1238
|
const store = useS_ButtonImport();
|
|
1384
|
-
return /* @__PURE__ */
|
|
1239
|
+
return /* @__PURE__ */ React.createElement(
|
|
1385
1240
|
Modal7,
|
|
1386
|
-
|
|
1241
|
+
__spreadValues({
|
|
1387
1242
|
title: "Import",
|
|
1388
1243
|
fullScreen: true
|
|
1389
|
-
}, stack.register("select-file-page")),
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
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
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
/* @__PURE__ */ jsx26(
|
|
1464
|
-
Button7,
|
|
1465
|
-
{
|
|
1466
|
-
color: "red.6",
|
|
1467
|
-
leftSection: /* @__PURE__ */ jsx26(IconSquareRoundedX2, {}),
|
|
1468
|
-
onClick: stack.closeAll,
|
|
1469
|
-
children: "\u0110\xF3ng"
|
|
1470
|
-
}
|
|
1471
|
-
)
|
|
1472
|
-
] })
|
|
1473
|
-
]
|
|
1474
|
-
})
|
|
1244
|
+
}, stack.register("select-file-page")),
|
|
1245
|
+
/* @__PURE__ */ React.createElement(
|
|
1246
|
+
FileInput2,
|
|
1247
|
+
{
|
|
1248
|
+
value: store.state.file,
|
|
1249
|
+
onChange: (e4) => store.setProperty("file", e4),
|
|
1250
|
+
label: "File d\u1EEF li\u1EC7u",
|
|
1251
|
+
placeholder: "Ch\u1ECDn file d\u1EEF li\u1EC7u",
|
|
1252
|
+
clearable: true
|
|
1253
|
+
}
|
|
1254
|
+
),
|
|
1255
|
+
/* @__PURE__ */ React.createElement(SimpleGrid2, { cols: { base: 1, md: 2, lg: 2, xl: 4 } }, /* @__PURE__ */ React.createElement(
|
|
1256
|
+
NumberInput,
|
|
1257
|
+
{
|
|
1258
|
+
label: "D\xF2ng ti\xEAu \u0111\u1EC1 b\u1EAFt \u0111\u1EA7u t\u1EEB",
|
|
1259
|
+
value: store.state.startTitleIndex,
|
|
1260
|
+
onChange: (e4) => store.setProperty("startTitleIndex", e4)
|
|
1261
|
+
}
|
|
1262
|
+
), /* @__PURE__ */ React.createElement(
|
|
1263
|
+
NumberInput,
|
|
1264
|
+
{
|
|
1265
|
+
label: "D\xF2ng d\u1EEF li\u1EC7u b\u1EAFt \u0111\u1EA7u t\u1EEB",
|
|
1266
|
+
value: store.state.startDataIndex,
|
|
1267
|
+
onChange: (e4) => store.setProperty("startDataIndex", e4)
|
|
1268
|
+
}
|
|
1269
|
+
), /* @__PURE__ */ React.createElement(
|
|
1270
|
+
Select2,
|
|
1271
|
+
{
|
|
1272
|
+
readOnly: true,
|
|
1273
|
+
label: "\u0110\u1ECBnh d\u1EA1ng s\u1ED1",
|
|
1274
|
+
data: ["100.000"],
|
|
1275
|
+
defaultValue: "100.000"
|
|
1276
|
+
}
|
|
1277
|
+
), /* @__PURE__ */ React.createElement(
|
|
1278
|
+
Select2,
|
|
1279
|
+
{
|
|
1280
|
+
readOnly: true,
|
|
1281
|
+
label: "\u0110\u1ECBnh d\u1EA1ng ng\xE0y",
|
|
1282
|
+
data: ["dd/MM/yyyy"],
|
|
1283
|
+
defaultValue: "dd/MM/yyyy"
|
|
1284
|
+
}
|
|
1285
|
+
)),
|
|
1286
|
+
/* @__PURE__ */ React.createElement(Fieldset2, { legend: "Danh s\xE1ch tr\u01B0\u1EDDng th\xF4ng tin trong file d\u1EEF li\u1EC7u" }, store.state.data && /* @__PURE__ */ React.createElement(
|
|
1287
|
+
MyDataTable,
|
|
1288
|
+
{
|
|
1289
|
+
columns: store.columns,
|
|
1290
|
+
data: store.state.data
|
|
1291
|
+
}
|
|
1292
|
+
)),
|
|
1293
|
+
/* @__PURE__ */ React.createElement(MyFlexEnd, null, /* @__PURE__ */ React.createElement(
|
|
1294
|
+
Button7,
|
|
1295
|
+
{
|
|
1296
|
+
color: "teal.8",
|
|
1297
|
+
onClick: onExportStructure
|
|
1298
|
+
},
|
|
1299
|
+
"Xu\u1EA5t file c\u1EA5u tr\xFAc"
|
|
1300
|
+
), /* @__PURE__ */ React.createElement(
|
|
1301
|
+
Button7,
|
|
1302
|
+
{
|
|
1303
|
+
disabled: ((_a = store.state.data) == null ? void 0 : _a.length) == 0,
|
|
1304
|
+
color: "blue.8",
|
|
1305
|
+
leftSection: /* @__PURE__ */ React.createElement(IconArrowBigRight2, null),
|
|
1306
|
+
onClick: () => stack.open("select-field-page")
|
|
1307
|
+
},
|
|
1308
|
+
"Ti\u1EBFp t\u1EE5c"
|
|
1309
|
+
), /* @__PURE__ */ React.createElement(
|
|
1310
|
+
Button7,
|
|
1311
|
+
{
|
|
1312
|
+
color: "red.6",
|
|
1313
|
+
leftSection: /* @__PURE__ */ React.createElement(IconSquareRoundedX2, null),
|
|
1314
|
+
onClick: stack.closeAll
|
|
1315
|
+
},
|
|
1316
|
+
"\u0110\xF3ng"
|
|
1317
|
+
))
|
|
1475
1318
|
);
|
|
1476
1319
|
}
|
|
1477
1320
|
|
|
1478
1321
|
// src/components/Buttons/ButtonImport/MyButtonImport.tsx
|
|
1479
|
-
import { Fragment as Fragment7, jsx as jsx27, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
1480
1322
|
function MyButtonImport({
|
|
1481
1323
|
onExportStructure,
|
|
1482
1324
|
onImport
|
|
1483
1325
|
}) {
|
|
1484
1326
|
const stack = useModalsStack3(["select-file-page", "select-field-page", "implement-page"]);
|
|
1485
1327
|
const store = useS_ButtonImport();
|
|
1486
|
-
return /* @__PURE__ */
|
|
1487
|
-
/* @__PURE__ */ jsx27(Button8, { color: "teal.8", onClick: () => stack.open("select-file-page"), leftSection: /* @__PURE__ */ jsx27(IconFileImport2, {}), title: "Import", children: "Import" }),
|
|
1488
|
-
/* @__PURE__ */ jsxs16(Modal8.Stack, { children: [
|
|
1489
|
-
/* @__PURE__ */ jsx27(SelectFileModal, { stack, onExportStructure }),
|
|
1490
|
-
/* @__PURE__ */ jsx27(SelectFieldModal, { stack, onImport: () => onImport(store.getDataFinal()) })
|
|
1491
|
-
] })
|
|
1492
|
-
] });
|
|
1328
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Button8, { color: "teal.8", onClick: () => stack.open("select-file-page"), leftSection: /* @__PURE__ */ React.createElement(IconFileImport2, null), title: "Import" }, "Import"), /* @__PURE__ */ React.createElement(Modal8.Stack, null, /* @__PURE__ */ React.createElement(SelectFileModal, { stack, onExportStructure }), /* @__PURE__ */ React.createElement(SelectFieldModal, { stack, onImport: () => onImport(store.getDataFinal()) })));
|
|
1493
1329
|
}
|
|
1494
1330
|
|
|
1495
1331
|
// src/components/Buttons/ButtonModal/AQSelectTableByOpenModal.tsx
|
|
1496
1332
|
import { Button as Button9, Fieldset as Fieldset3, Modal as Modal9 } from "@mantine/core";
|
|
1497
1333
|
import { useDisclosure as useDisclosure8 } from "@mantine/hooks";
|
|
1498
|
-
import { Fragment as Fragment8, jsx as jsx28, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
1499
1334
|
function AQSelectTableByOpenModal(_a) {
|
|
1500
1335
|
var _b = _a, {
|
|
1501
1336
|
setSelectedData,
|
|
@@ -1523,40 +1358,36 @@ function AQSelectTableByOpenModal(_a) {
|
|
|
1523
1358
|
"closeAfterSelect"
|
|
1524
1359
|
]);
|
|
1525
1360
|
const disclosure = useDisclosure8(false);
|
|
1526
|
-
return /* @__PURE__ */
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
) }) })
|
|
1557
|
-
}
|
|
1558
|
-
)
|
|
1559
|
-
] });
|
|
1361
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
|
|
1362
|
+
Button9,
|
|
1363
|
+
__spreadValues({
|
|
1364
|
+
onClick: disclosure[1].open
|
|
1365
|
+
}, rest),
|
|
1366
|
+
label ? label : `Ch\u1ECDn t\u1EEB danh s\xE1ch`
|
|
1367
|
+
), /* @__PURE__ */ React.createElement(
|
|
1368
|
+
Modal9,
|
|
1369
|
+
{
|
|
1370
|
+
fullScreen,
|
|
1371
|
+
size: modalSize,
|
|
1372
|
+
title,
|
|
1373
|
+
opened: disclosure == null ? void 0 : disclosure[0],
|
|
1374
|
+
onClose: disclosure[1].close
|
|
1375
|
+
},
|
|
1376
|
+
/* @__PURE__ */ React.createElement(MyFlexColumn, null, /* @__PURE__ */ React.createElement(Fieldset3, { legend: listLabel ? listLabel : "Danh s\xE1ch" }, /* @__PURE__ */ React.createElement(
|
|
1377
|
+
MyDataTable,
|
|
1378
|
+
__spreadValues({
|
|
1379
|
+
renderTopToolbarCustomActions: ({ table }) => {
|
|
1380
|
+
return /* @__PURE__ */ React.createElement(Button9, { onClick: () => {
|
|
1381
|
+
setSelectedData(table.getSelectedRowModel().rows.map((row) => row.original));
|
|
1382
|
+
closeAfterSelect && disclosure[1].close();
|
|
1383
|
+
} }, "Ch\u1ECDn");
|
|
1384
|
+
},
|
|
1385
|
+
enableRowSelection: true,
|
|
1386
|
+
data,
|
|
1387
|
+
columns
|
|
1388
|
+
}, rest)
|
|
1389
|
+
)))
|
|
1390
|
+
));
|
|
1560
1391
|
}
|
|
1561
1392
|
|
|
1562
1393
|
// src/components/Buttons/ButtonPrintPDF/MyButtonPrintPDF.tsx
|
|
@@ -1564,7 +1395,6 @@ import { useRef as useRef2 } from "react";
|
|
|
1564
1395
|
import { Button as Button10 } from "@mantine/core";
|
|
1565
1396
|
import { IconPrinter as IconPrinter2 } from "@tabler/icons-react";
|
|
1566
1397
|
import { useReactToPrint } from "react-to-print";
|
|
1567
|
-
import { Fragment as Fragment9, jsx as jsx29, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
1568
1398
|
function MyButtonPrintPDF(_a) {
|
|
1569
1399
|
var _b = _a, { contentToPrint } = _b, rest = __objRest(_b, ["contentToPrint"]);
|
|
1570
1400
|
const printRef = useRef2(null);
|
|
@@ -1578,25 +1408,20 @@ function MyButtonPrintPDF(_a) {
|
|
|
1578
1408
|
if (!contentToPrint) return;
|
|
1579
1409
|
handlePrint();
|
|
1580
1410
|
}
|
|
1581
|
-
return /* @__PURE__ */
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
children: "In"
|
|
1591
|
-
})
|
|
1592
|
-
)
|
|
1593
|
-
] });
|
|
1411
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", { style: { display: "none" } }, /* @__PURE__ */ React.createElement("div", { ref: printRef }, contentToPrint)), /* @__PURE__ */ React.createElement(
|
|
1412
|
+
Button10,
|
|
1413
|
+
__spreadValues({
|
|
1414
|
+
color: "orange",
|
|
1415
|
+
onClick: handleClick,
|
|
1416
|
+
leftSection: /* @__PURE__ */ React.createElement(IconPrinter2, null)
|
|
1417
|
+
}, rest),
|
|
1418
|
+
"In"
|
|
1419
|
+
));
|
|
1594
1420
|
}
|
|
1595
1421
|
|
|
1596
1422
|
// src/components/Layouts/HtmlWrapper/MyHtmlWrapper.tsx
|
|
1597
1423
|
import { ScrollArea, TypographyStylesProvider } from "@mantine/core";
|
|
1598
1424
|
import pako from "pako";
|
|
1599
|
-
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
1600
1425
|
function MyHtmlWrapper(_a) {
|
|
1601
1426
|
var _b = _a, { html, mah, zip = false } = _b, rest = __objRest(_b, ["html", "mah", "zip"]);
|
|
1602
1427
|
const extractHtmlFromZip = () => {
|
|
@@ -1605,19 +1430,18 @@ function MyHtmlWrapper(_a) {
|
|
|
1605
1430
|
const cleanedHtml = decompressedData == null ? void 0 : decompressedData.replaceAll(" font-family:'Times New Roman'; font-size:1em;", "");
|
|
1606
1431
|
return cleanedHtml.replaceAll(" font-family:'Times New Roman'; font-size:1em;", "");
|
|
1607
1432
|
};
|
|
1608
|
-
return /* @__PURE__ */
|
|
1433
|
+
return /* @__PURE__ */ React.createElement(ScrollArea.Autosize, { mah }, /* @__PURE__ */ React.createElement(TypographyStylesProvider, __spreadValues({}, rest), /* @__PURE__ */ React.createElement(
|
|
1609
1434
|
"div",
|
|
1610
1435
|
{
|
|
1611
1436
|
dangerouslySetInnerHTML: {
|
|
1612
1437
|
__html: zip ? extractHtmlFromZip() : html
|
|
1613
1438
|
}
|
|
1614
1439
|
}
|
|
1615
|
-
)
|
|
1440
|
+
)));
|
|
1616
1441
|
}
|
|
1617
1442
|
|
|
1618
1443
|
// src/components/Buttons/ButtonPrintPDFTable/MyButtonPrintTablePDF.tsx
|
|
1619
1444
|
import { Box, Table as Table2 } from "@mantine/core";
|
|
1620
|
-
import { jsx as jsx31, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
1621
1445
|
function MyButtonPrintTablePDF({
|
|
1622
1446
|
printConfig,
|
|
1623
1447
|
data
|
|
@@ -1640,52 +1464,49 @@ function MyButtonPrintTablePDF({
|
|
|
1640
1464
|
};
|
|
1641
1465
|
const rows = data == null ? void 0 : data.map((item, index) => {
|
|
1642
1466
|
if (!(printConfig == null ? void 0 : printConfig.fields)) return null;
|
|
1643
|
-
return /* @__PURE__ */
|
|
1644
|
-
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
if (value === "true") {
|
|
1666
|
-
return /* @__PURE__ */ jsx31(
|
|
1667
|
-
Table2.Td,
|
|
1668
|
-
{
|
|
1669
|
-
ta: alignment,
|
|
1670
|
-
px: "xs",
|
|
1671
|
-
style: { border: "1px solid lightgray" },
|
|
1672
|
-
children: /* @__PURE__ */ jsx31("input", { type: "checkbox", checked: true, readOnly: true })
|
|
1673
|
-
},
|
|
1674
|
-
field.fieldName
|
|
1675
|
-
);
|
|
1676
|
-
}
|
|
1677
|
-
return /* @__PURE__ */ jsx31(
|
|
1467
|
+
return /* @__PURE__ */ React.createElement(Table2.Tr, { key: index }, printConfig.showRowNumbers && /* @__PURE__ */ React.createElement(Table2.Td, { ta: "center", px: "xs", style: { border: "1px solid lightgray" } }, index + 1), printConfig.fields.map((field) => {
|
|
1468
|
+
let value = item[field.fieldName];
|
|
1469
|
+
if (field.formatFunction) {
|
|
1470
|
+
value = field.formatFunction(value, item);
|
|
1471
|
+
} else {
|
|
1472
|
+
value = formatValue(value);
|
|
1473
|
+
}
|
|
1474
|
+
const alignment = field.isCenter === false ? "left" : "center";
|
|
1475
|
+
if (typeof value === "string" && (value.includes("<") || value.includes("<"))) {
|
|
1476
|
+
return /* @__PURE__ */ React.createElement(
|
|
1477
|
+
Table2.Td,
|
|
1478
|
+
{
|
|
1479
|
+
key: field.fieldName,
|
|
1480
|
+
px: "xs",
|
|
1481
|
+
ta: alignment,
|
|
1482
|
+
style: { border: "1px solid lightgray" }
|
|
1483
|
+
},
|
|
1484
|
+
/* @__PURE__ */ React.createElement(MyHtmlWrapper, { html: value })
|
|
1485
|
+
);
|
|
1486
|
+
}
|
|
1487
|
+
if (value === "true") {
|
|
1488
|
+
return /* @__PURE__ */ React.createElement(
|
|
1678
1489
|
Table2.Td,
|
|
1679
1490
|
{
|
|
1491
|
+
key: field.fieldName,
|
|
1680
1492
|
ta: alignment,
|
|
1681
1493
|
px: "xs",
|
|
1682
|
-
style: { border: "1px solid lightgray" }
|
|
1683
|
-
children: value
|
|
1494
|
+
style: { border: "1px solid lightgray" }
|
|
1684
1495
|
},
|
|
1685
|
-
|
|
1496
|
+
/* @__PURE__ */ React.createElement("input", { type: "checkbox", checked: true, readOnly: true })
|
|
1686
1497
|
);
|
|
1687
|
-
}
|
|
1688
|
-
|
|
1498
|
+
}
|
|
1499
|
+
return /* @__PURE__ */ React.createElement(
|
|
1500
|
+
Table2.Td,
|
|
1501
|
+
{
|
|
1502
|
+
key: field.fieldName,
|
|
1503
|
+
ta: alignment,
|
|
1504
|
+
px: "xs",
|
|
1505
|
+
style: { border: "1px solid lightgray" }
|
|
1506
|
+
},
|
|
1507
|
+
value
|
|
1508
|
+
);
|
|
1509
|
+
}));
|
|
1689
1510
|
});
|
|
1690
1511
|
const renderContent = () => {
|
|
1691
1512
|
if (!data || !(printConfig == null ? void 0 : printConfig.fields)) return null;
|
|
@@ -1698,34 +1519,21 @@ function MyButtonPrintTablePDF({
|
|
|
1698
1519
|
minute: "2-digit"
|
|
1699
1520
|
});
|
|
1700
1521
|
const tableTitle = (printConfig == null ? void 0 : printConfig.title) || "B\u1EA3ng d\u1EEF li\u1EC7u";
|
|
1701
|
-
return /* @__PURE__ */
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
{
|
|
1715
|
-
style: { border: "1px solid lightgray" },
|
|
1716
|
-
ta: alignment,
|
|
1717
|
-
px: "xs",
|
|
1718
|
-
children: field.header
|
|
1719
|
-
},
|
|
1720
|
-
field.fieldName
|
|
1721
|
-
);
|
|
1722
|
-
})
|
|
1723
|
-
] }) }),
|
|
1724
|
-
/* @__PURE__ */ jsx31(Table2.Tbody, { children: rows })
|
|
1725
|
-
] })
|
|
1726
|
-
] });
|
|
1522
|
+
return /* @__PURE__ */ React.createElement(Box, { p: "lg" }, /* @__PURE__ */ React.createElement("div", { style: { textAlign: "center", marginTop: "10px", fontStyle: "italic", color: "#666" } }, "Ng\xE0y in: ", formattedDate), /* @__PURE__ */ React.createElement("h2", { style: { textAlign: "center", fontSize: "24px", fontWeight: "bold", marginBottom: "20px" } }, tableTitle), /* @__PURE__ */ React.createElement(Table2, { withColumnBorders: true, highlightOnHover: true, style: { border: "1px solid lightgray" } }, /* @__PURE__ */ React.createElement(Table2.Thead, null, /* @__PURE__ */ React.createElement(Table2.Tr, null, printConfig.showRowNumbers && /* @__PURE__ */ React.createElement(Table2.Th, { style: { border: "1px solid lightgray" }, w: "10%", ta: "center", px: "xs" }, "STT"), printConfig.fields.map((field) => {
|
|
1523
|
+
const alignment = field.isCenter === false ? "left" : "center";
|
|
1524
|
+
return /* @__PURE__ */ React.createElement(
|
|
1525
|
+
Table2.Th,
|
|
1526
|
+
{
|
|
1527
|
+
key: field.fieldName,
|
|
1528
|
+
style: { border: "1px solid lightgray" },
|
|
1529
|
+
ta: alignment,
|
|
1530
|
+
px: "xs"
|
|
1531
|
+
},
|
|
1532
|
+
field.header
|
|
1533
|
+
);
|
|
1534
|
+
}))), /* @__PURE__ */ React.createElement(Table2.Tbody, null, rows)));
|
|
1727
1535
|
};
|
|
1728
|
-
return /* @__PURE__ */
|
|
1536
|
+
return /* @__PURE__ */ React.createElement(
|
|
1729
1537
|
MyButtonPrintPDF,
|
|
1730
1538
|
{
|
|
1731
1539
|
contentToPrint: renderContent()
|
|
@@ -1737,15 +1545,14 @@ function MyButtonPrintTablePDF({
|
|
|
1737
1545
|
import { Button as Button11 } from "@mantine/core";
|
|
1738
1546
|
import { IconArrowBack } from "@tabler/icons-react";
|
|
1739
1547
|
import { useRouter as useRouter2 } from "next/navigation";
|
|
1740
|
-
import { jsx as jsx32 } from "react/jsx-runtime";
|
|
1741
1548
|
function MyButtonRouterBack(_a) {
|
|
1742
1549
|
var _b = _a, { url, label } = _b, rest = __objRest(_b, ["url", "label"]);
|
|
1743
1550
|
const router = useRouter2();
|
|
1744
|
-
return /* @__PURE__ */
|
|
1551
|
+
return /* @__PURE__ */ React.createElement(
|
|
1745
1552
|
Button11,
|
|
1746
|
-
|
|
1553
|
+
__spreadValues({
|
|
1747
1554
|
variant: "light",
|
|
1748
|
-
leftSection: /* @__PURE__ */
|
|
1555
|
+
leftSection: /* @__PURE__ */ React.createElement(IconArrowBack, { stroke: 2 }),
|
|
1749
1556
|
onClick: () => {
|
|
1750
1557
|
if (url) {
|
|
1751
1558
|
router.replace(url);
|
|
@@ -1753,9 +1560,8 @@ function MyButtonRouterBack(_a) {
|
|
|
1753
1560
|
}
|
|
1754
1561
|
router.back();
|
|
1755
1562
|
}
|
|
1756
|
-
}, rest),
|
|
1757
|
-
|
|
1758
|
-
})
|
|
1563
|
+
}, rest),
|
|
1564
|
+
label ? label : "Tr\u1EDF v\u1EC1"
|
|
1759
1565
|
);
|
|
1760
1566
|
}
|
|
1761
1567
|
|
|
@@ -1789,7 +1595,6 @@ import { useDisclosure as useDisclosure9 } from "@mantine/hooks";
|
|
|
1789
1595
|
import { IconLivePhoto as IconLivePhoto2, IconMaximize as IconMaximize3, IconMinimize as IconMinimize3 } from "@tabler/icons-react";
|
|
1790
1596
|
import { useQuery } from "@tanstack/react-query";
|
|
1791
1597
|
import { useState as useState6 } from "react";
|
|
1792
|
-
import { Fragment as Fragment10, jsx as jsx33, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
1793
1598
|
function MyButtonViewPDF({ id, modalSize = "80%", label = "Xem file", src = "https://datafiles.chinhphu.vn/cpp/files/vbpq/2016/07/85.signed.pdf" }) {
|
|
1794
1599
|
var _a, _b;
|
|
1795
1600
|
const disc = useDisclosure9(false);
|
|
@@ -1802,60 +1607,51 @@ function MyButtonViewPDF({ id, modalSize = "80%", label = "Xem file", src = "htt
|
|
|
1802
1607
|
},
|
|
1803
1608
|
enabled: id != void 0 && disc[0] == true
|
|
1804
1609
|
});
|
|
1805
|
-
return /* @__PURE__ */
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1610
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Tooltip4, { label: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp" }, /* @__PURE__ */ React.createElement(Button12, { color: "cyan", onClick: () => {
|
|
1611
|
+
disc[1].open();
|
|
1612
|
+
}, leftSection: /* @__PURE__ */ React.createElement(IconLivePhoto2, null) }, label)), /* @__PURE__ */ React.createElement(
|
|
1613
|
+
Modal10,
|
|
1614
|
+
{
|
|
1615
|
+
fullScreen: fullScreen[0],
|
|
1616
|
+
opened: disc[0],
|
|
1617
|
+
onClose: disc[1].close,
|
|
1618
|
+
size: modalSize,
|
|
1619
|
+
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(
|
|
1620
|
+
ActionIcon9,
|
|
1621
|
+
{
|
|
1622
|
+
onClick: () => {
|
|
1623
|
+
fullScreen[1](false);
|
|
1624
|
+
hSize[1]("80vh");
|
|
1625
|
+
}
|
|
1626
|
+
},
|
|
1627
|
+
/* @__PURE__ */ React.createElement(IconMinimize3, null)
|
|
1628
|
+
) : /* @__PURE__ */ React.createElement(
|
|
1629
|
+
ActionIcon9,
|
|
1630
|
+
{
|
|
1631
|
+
onClick: () => {
|
|
1632
|
+
fullScreen[1](true);
|
|
1633
|
+
hSize[1]("90vh");
|
|
1634
|
+
}
|
|
1635
|
+
},
|
|
1636
|
+
/* @__PURE__ */ React.createElement(IconMaximize3, null)
|
|
1637
|
+
))
|
|
1638
|
+
},
|
|
1639
|
+
/* @__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(
|
|
1640
|
+
"iframe",
|
|
1811
1641
|
{
|
|
1812
|
-
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
fullScreen[1](false);
|
|
1823
|
-
hSize[1]("80vh");
|
|
1824
|
-
},
|
|
1825
|
-
children: /* @__PURE__ */ jsx33(IconMinimize3, {})
|
|
1826
|
-
}
|
|
1827
|
-
) : /* @__PURE__ */ jsx33(
|
|
1828
|
-
ActionIcon9,
|
|
1829
|
-
{
|
|
1830
|
-
onClick: () => {
|
|
1831
|
-
fullScreen[1](true);
|
|
1832
|
-
hSize[1]("90vh");
|
|
1833
|
-
},
|
|
1834
|
-
children: /* @__PURE__ */ jsx33(IconMaximize3, {})
|
|
1835
|
-
}
|
|
1836
|
-
)
|
|
1837
|
-
] }),
|
|
1838
|
-
children: /* @__PURE__ */ jsxs20(Paper3, { h: hSize[0], p: "lg", pos: "relative", children: [
|
|
1839
|
-
/* @__PURE__ */ jsx33(LoadingOverlay, { visible: query.isLoading, zIndex: 1e3, overlayProps: { radius: "sm", blur: 2 } }),
|
|
1840
|
-
query.data ? /* @__PURE__ */ jsx33(
|
|
1841
|
-
"iframe",
|
|
1842
|
-
{
|
|
1843
|
-
src: `data:application/pdf;base64, ${(_b = (_a = query.data) == null ? void 0 : _a.fileDetail) == null ? void 0 : _b.fileBase64String}`,
|
|
1844
|
-
width: "100%",
|
|
1845
|
-
height: "100%"
|
|
1846
|
-
}
|
|
1847
|
-
) : /* @__PURE__ */ jsx33(
|
|
1848
|
-
"iframe",
|
|
1849
|
-
{
|
|
1850
|
-
src,
|
|
1851
|
-
width: "100%",
|
|
1852
|
-
height: "100%"
|
|
1853
|
-
}
|
|
1854
|
-
)
|
|
1855
|
-
] })
|
|
1642
|
+
src: `data:application/pdf;base64, ${(_b = (_a = query.data) == null ? void 0 : _a.fileDetail) == null ? void 0 : _b.fileBase64String}`,
|
|
1643
|
+
width: "100%",
|
|
1644
|
+
height: "100%"
|
|
1645
|
+
}
|
|
1646
|
+
) : /* @__PURE__ */ React.createElement(
|
|
1647
|
+
"iframe",
|
|
1648
|
+
{
|
|
1649
|
+
src,
|
|
1650
|
+
width: "100%",
|
|
1651
|
+
height: "100%"
|
|
1856
1652
|
}
|
|
1857
|
-
)
|
|
1858
|
-
|
|
1653
|
+
))
|
|
1654
|
+
));
|
|
1859
1655
|
}
|
|
1860
1656
|
|
|
1861
1657
|
// node_modules/preact/dist/preact.mjs
|
|
@@ -5797,7 +5593,6 @@ import { ScheduleXCalendar, useNextCalendarApp } from "@schedule-x/react";
|
|
|
5797
5593
|
import { Paper as Paper4, Text as Text6 } from "@mantine/core";
|
|
5798
5594
|
import "@schedule-x/theme-default/dist/index.css";
|
|
5799
5595
|
import { useEffect as useEffect4 } from "react";
|
|
5800
|
-
import { jsx as jsx34, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
5801
5596
|
function MyCalendar() {
|
|
5802
5597
|
const plugins = [createEventsServicePlugin(), createEventModalPlugin()];
|
|
5803
5598
|
const calendar = useNextCalendarApp({
|
|
@@ -5871,17 +5666,10 @@ function MyCalendar() {
|
|
|
5871
5666
|
useEffect4(() => {
|
|
5872
5667
|
calendar == null ? void 0 : calendar.events.getAll();
|
|
5873
5668
|
}, []);
|
|
5874
|
-
return /* @__PURE__ */
|
|
5669
|
+
return /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(ScheduleXCalendar, { calendarApp: calendar, customComponents: {
|
|
5875
5670
|
timeGridEvent: ({ calendarEvent }) => {
|
|
5876
5671
|
console.log(calendarEvent);
|
|
5877
|
-
return /* @__PURE__ */
|
|
5878
|
-
/* @__PURE__ */ jsxs21(Text6, { size: "sm", fw: "bold", children: [
|
|
5879
|
-
calendarEvent.laLichThi ? "(Thi) " : "(H\u1ECDc) ",
|
|
5880
|
-
calendarEvent.title
|
|
5881
|
-
] }),
|
|
5882
|
-
calendarEvent.laLichThi == false && /* @__PURE__ */ jsx34(Text6, { size: "sm", children: calendarEvent.giangvien }),
|
|
5883
|
-
/* @__PURE__ */ jsx34(Text6, { size: "sm", children: calendarEvent.location })
|
|
5884
|
-
] }) });
|
|
5672
|
+
return /* @__PURE__ */ React.createElement(Paper4, { h: "100%", bg: calendarEvent.laLichThi ? "violet.2" : "blue.2", p: 4 }, /* @__PURE__ */ React.createElement(MyFlexColumn, { gap: 1 }, /* @__PURE__ */ React.createElement(Text6, { size: "sm", fw: "bold" }, calendarEvent.laLichThi ? "(Thi) " : "(H\u1ECDc) ", calendarEvent.title), calendarEvent.laLichThi == false && /* @__PURE__ */ React.createElement(Text6, { size: "sm" }, calendarEvent.giangvien), /* @__PURE__ */ React.createElement(Text6, { size: "sm" }, calendarEvent.location)));
|
|
5885
5673
|
}
|
|
5886
5674
|
// eventModal: ({ calendarEvent }) => {
|
|
5887
5675
|
// return (
|
|
@@ -5890,36 +5678,32 @@ function MyCalendar() {
|
|
|
5890
5678
|
// </Paper>
|
|
5891
5679
|
// )
|
|
5892
5680
|
// }
|
|
5893
|
-
} })
|
|
5681
|
+
} }));
|
|
5894
5682
|
}
|
|
5895
5683
|
|
|
5896
5684
|
// src/components/CenterFull/MyCenterFull.tsx
|
|
5897
5685
|
import { Center as Center2, Group as Group8 } from "@mantine/core";
|
|
5898
|
-
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
5899
5686
|
function MyCenterFull({ children }) {
|
|
5900
|
-
return /* @__PURE__ */
|
|
5687
|
+
return /* @__PURE__ */ React.createElement(Center2, { w: "100%" }, /* @__PURE__ */ React.createElement(Group8, null, children));
|
|
5901
5688
|
}
|
|
5902
5689
|
|
|
5903
5690
|
// src/components/Checkbox/MyCheckbox.tsx
|
|
5904
5691
|
import { Checkbox as Checkbox2 } from "@mantine/core";
|
|
5905
|
-
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
5906
5692
|
function MyCheckbox(_a) {
|
|
5907
5693
|
var rest = __objRest(_a, []);
|
|
5908
|
-
return /* @__PURE__ */
|
|
5694
|
+
return /* @__PURE__ */ React.createElement(Checkbox2, __spreadValues({}, rest));
|
|
5909
5695
|
}
|
|
5910
5696
|
|
|
5911
5697
|
// src/components/Layouts/FlexRow/MyFlexRow.tsx
|
|
5912
5698
|
import { Flex as Flex2 } from "@mantine/core";
|
|
5913
|
-
import { jsx as jsx37 } from "react/jsx-runtime";
|
|
5914
5699
|
function MyFlexRow(_a) {
|
|
5915
5700
|
var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
|
|
5916
|
-
return /* @__PURE__ */
|
|
5701
|
+
return /* @__PURE__ */ React.createElement(Flex2, __spreadValues({ gap: "md", align: "center" }, rest), children);
|
|
5917
5702
|
}
|
|
5918
5703
|
|
|
5919
5704
|
// src/components/DataDisplay/Card/AQCard.tsx
|
|
5920
5705
|
import { Badge, Card, Center as Center3, Image, Text as Text7 } from "@mantine/core";
|
|
5921
5706
|
import Link from "next/link";
|
|
5922
|
-
import { jsx as jsx38, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
5923
5707
|
function AQCard({
|
|
5924
5708
|
imgSrc = "https://raw.githubusercontent.com/mantinedev/mantine/master/.demo/images/bg-8.png",
|
|
5925
5709
|
title,
|
|
@@ -5929,142 +5713,99 @@ function AQCard({
|
|
|
5929
5713
|
status,
|
|
5930
5714
|
href = ""
|
|
5931
5715
|
}) {
|
|
5932
|
-
return /* @__PURE__ */
|
|
5933
|
-
|
|
5934
|
-
|
|
5935
|
-
|
|
5936
|
-
|
|
5937
|
-
|
|
5938
|
-
|
|
5939
|
-
|
|
5940
|
-
|
|
5941
|
-
|
|
5942
|
-
) }) }),
|
|
5943
|
-
/* @__PURE__ */ jsxs22(MyFlexRow, { justify: "space-between", mt: "md", mb: "xs", children: [
|
|
5944
|
-
/* @__PURE__ */ jsx38(Text7, { fw: 500, children: title }),
|
|
5945
|
-
status && /* @__PURE__ */ jsx38(Badge, { color: "violet.5", w: "150px", children: status })
|
|
5946
|
-
] }),
|
|
5947
|
-
/* @__PURE__ */ jsx38(Text7, { size: "sm", c: "dimmed", lineClamp: 2, children: description }),
|
|
5948
|
-
children
|
|
5949
|
-
] });
|
|
5716
|
+
return /* @__PURE__ */ React.createElement(Card, { shadow: "sm", padding: "lg", radius: "md", withBorder: true, component: Link, href }, /* @__PURE__ */ React.createElement(Card.Section, null, /* @__PURE__ */ React.createElement(Center3, null, /* @__PURE__ */ React.createElement(
|
|
5717
|
+
Image,
|
|
5718
|
+
{
|
|
5719
|
+
src: imgSrc,
|
|
5720
|
+
h: 200,
|
|
5721
|
+
w: "auto",
|
|
5722
|
+
fallbackSrc: "https://placehold.co/600x400?text=Placeholder",
|
|
5723
|
+
alt: "Norway"
|
|
5724
|
+
}
|
|
5725
|
+
))), /* @__PURE__ */ React.createElement(MyFlexRow, { justify: "space-between", mt: "md", mb: "xs" }, /* @__PURE__ */ React.createElement(Text7, { fw: 500 }, title), status && /* @__PURE__ */ React.createElement(Badge, { color: "violet.5", w: "150px" }, status)), /* @__PURE__ */ React.createElement(Text7, { size: "sm", c: "dimmed", lineClamp: 2 }, description), children);
|
|
5950
5726
|
}
|
|
5951
5727
|
|
|
5952
5728
|
// src/components/DataDisplay/KeyLabel/MyKeyLabel.tsx
|
|
5953
5729
|
import { Group as Group9, Text as Text8 } from "@mantine/core";
|
|
5954
|
-
import { jsx as jsx39, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
5955
5730
|
function MyKeyLabel({ keyLabel, label }) {
|
|
5956
|
-
return /* @__PURE__ */
|
|
5957
|
-
/* @__PURE__ */ jsxs23(Text8, { fw: "bold", children: [
|
|
5958
|
-
keyLabel,
|
|
5959
|
-
":"
|
|
5960
|
-
] }),
|
|
5961
|
-
/* @__PURE__ */ jsx39(Text8, { children: label })
|
|
5962
|
-
] });
|
|
5731
|
+
return /* @__PURE__ */ React.createElement(Group9, { gap: 5 }, /* @__PURE__ */ React.createElement(Text8, { fw: "bold" }, keyLabel, ":"), /* @__PURE__ */ React.createElement(Text8, null, label));
|
|
5963
5732
|
}
|
|
5964
5733
|
|
|
5965
5734
|
// src/components/DataDisplay/NumberFormatter/MyNumberFormatter.tsx
|
|
5966
5735
|
import { NumberFormatter } from "@mantine/core";
|
|
5967
|
-
import { jsx as jsx40 } from "react/jsx-runtime";
|
|
5968
5736
|
function MyNumberFormatter(_a) {
|
|
5969
5737
|
var rest = __objRest(_a, []);
|
|
5970
|
-
return /* @__PURE__ */
|
|
5738
|
+
return /* @__PURE__ */ React.createElement(NumberFormatter, __spreadValues({ thousandSeparator: true, suffix: " VN\u0110" }, rest));
|
|
5971
5739
|
}
|
|
5972
5740
|
|
|
5973
5741
|
// src/components/DataDisplay/StatCard/AQStatCard1.tsx
|
|
5974
5742
|
import { Box as Box2, Button as Button13, Flex as Flex3, Group as Group10, Paper as Paper5, Text as Text9 } from "@mantine/core";
|
|
5975
5743
|
import { IconArrowDownRight, IconArrowUpRight } from "@tabler/icons-react";
|
|
5976
|
-
import { Fragment as Fragment11, jsx as jsx41, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
5977
5744
|
function AQStatCard1({ title, value, unit = "", description, icons, diff }) {
|
|
5978
|
-
return /* @__PURE__ */
|
|
5745
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
|
|
5979
5746
|
Paper5,
|
|
5980
5747
|
{
|
|
5981
5748
|
withBorder: true,
|
|
5982
5749
|
p: "md",
|
|
5983
5750
|
radius: "md",
|
|
5984
|
-
|
|
5985
|
-
/* @__PURE__ */ jsxs24(Group10, { justify: "space-between", children: [
|
|
5986
|
-
/* @__PURE__ */ jsxs24(Flex3, { direction: "column", children: [
|
|
5987
|
-
/* @__PURE__ */ jsx41(
|
|
5988
|
-
Text9,
|
|
5989
|
-
{
|
|
5990
|
-
tt: "uppercase",
|
|
5991
|
-
size: "lg",
|
|
5992
|
-
c: "dimmed",
|
|
5993
|
-
children: title
|
|
5994
|
-
}
|
|
5995
|
-
),
|
|
5996
|
-
unit == "" ? /* @__PURE__ */ jsxs24(Text9, { size: "xs", style: { visibility: "hidden" }, children: [
|
|
5997
|
-
"\u0110\u01A1n v\u1ECB: ",
|
|
5998
|
-
/* @__PURE__ */ jsx41("strong", { children: unit })
|
|
5999
|
-
] }) : /* @__PURE__ */ jsxs24(Text9, { size: "xs", children: [
|
|
6000
|
-
"\u0110\u01A1n v\u1ECB: ",
|
|
6001
|
-
/* @__PURE__ */ jsx41("strong", { children: unit })
|
|
6002
|
-
] })
|
|
6003
|
-
] }),
|
|
6004
|
-
/* @__PURE__ */ jsx41(Box2, { children: icons })
|
|
6005
|
-
] }),
|
|
6006
|
-
/* @__PURE__ */ jsxs24(
|
|
6007
|
-
Group10,
|
|
6008
|
-
{
|
|
6009
|
-
mt: "5",
|
|
6010
|
-
align: "flex-end",
|
|
6011
|
-
gap: "xs",
|
|
6012
|
-
children: [
|
|
6013
|
-
/* @__PURE__ */ jsx41(
|
|
6014
|
-
Text9,
|
|
6015
|
-
{
|
|
6016
|
-
fw: 700,
|
|
6017
|
-
fz: "h1",
|
|
6018
|
-
children: value
|
|
6019
|
-
}
|
|
6020
|
-
),
|
|
6021
|
-
/* @__PURE__ */ jsxs24(
|
|
6022
|
-
Text9,
|
|
6023
|
-
{
|
|
6024
|
-
mb: "2",
|
|
6025
|
-
c: diff > 0 ? "teal" : "red",
|
|
6026
|
-
fz: "h2",
|
|
6027
|
-
fw: 500,
|
|
6028
|
-
children: [
|
|
6029
|
-
/* @__PURE__ */ jsxs24("span", { children: [
|
|
6030
|
-
diff,
|
|
6031
|
-
"%"
|
|
6032
|
-
] }),
|
|
6033
|
-
diff > 0 ? /* @__PURE__ */ jsx41(IconArrowUpRight, {}) : /* @__PURE__ */ jsx41(IconArrowDownRight, {})
|
|
6034
|
-
]
|
|
6035
|
-
}
|
|
6036
|
-
)
|
|
6037
|
-
]
|
|
6038
|
-
}
|
|
6039
|
-
),
|
|
6040
|
-
/* @__PURE__ */ jsxs24(Group10, { justify: "space-between", children: [
|
|
6041
|
-
/* @__PURE__ */ jsx41(Text9, { tt: "uppercase", fz: "xs", c: "dimmed", children: description }),
|
|
6042
|
-
/* @__PURE__ */ jsx41(
|
|
6043
|
-
Button13,
|
|
6044
|
-
{
|
|
6045
|
-
variant: "light",
|
|
6046
|
-
size: "xs",
|
|
6047
|
-
children: "Xem chi ti\u1EBFt"
|
|
6048
|
-
}
|
|
6049
|
-
)
|
|
6050
|
-
] })
|
|
6051
|
-
]
|
|
5751
|
+
key: title
|
|
6052
5752
|
},
|
|
6053
|
-
|
|
6054
|
-
|
|
5753
|
+
/* @__PURE__ */ React.createElement(Group10, { justify: "space-between" }, /* @__PURE__ */ React.createElement(Flex3, { direction: "column" }, /* @__PURE__ */ React.createElement(
|
|
5754
|
+
Text9,
|
|
5755
|
+
{
|
|
5756
|
+
tt: "uppercase",
|
|
5757
|
+
size: "lg",
|
|
5758
|
+
c: "dimmed"
|
|
5759
|
+
},
|
|
5760
|
+
title
|
|
5761
|
+
), 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(Box2, null, icons)),
|
|
5762
|
+
/* @__PURE__ */ React.createElement(
|
|
5763
|
+
Group10,
|
|
5764
|
+
{
|
|
5765
|
+
mt: "5",
|
|
5766
|
+
align: "flex-end",
|
|
5767
|
+
gap: "xs"
|
|
5768
|
+
},
|
|
5769
|
+
/* @__PURE__ */ React.createElement(
|
|
5770
|
+
Text9,
|
|
5771
|
+
{
|
|
5772
|
+
fw: 700,
|
|
5773
|
+
fz: "h1"
|
|
5774
|
+
},
|
|
5775
|
+
value
|
|
5776
|
+
),
|
|
5777
|
+
/* @__PURE__ */ React.createElement(
|
|
5778
|
+
Text9,
|
|
5779
|
+
{
|
|
5780
|
+
mb: "2",
|
|
5781
|
+
c: diff > 0 ? "teal" : "red",
|
|
5782
|
+
fz: "h2",
|
|
5783
|
+
fw: 500
|
|
5784
|
+
},
|
|
5785
|
+
/* @__PURE__ */ React.createElement("span", null, diff, "%"),
|
|
5786
|
+
diff > 0 ? /* @__PURE__ */ React.createElement(IconArrowUpRight, null) : /* @__PURE__ */ React.createElement(IconArrowDownRight, null)
|
|
5787
|
+
)
|
|
5788
|
+
),
|
|
5789
|
+
/* @__PURE__ */ React.createElement(Group10, { justify: "space-between" }, /* @__PURE__ */ React.createElement(Text9, { tt: "uppercase", fz: "xs", c: "dimmed" }, description), /* @__PURE__ */ React.createElement(
|
|
5790
|
+
Button13,
|
|
5791
|
+
{
|
|
5792
|
+
variant: "light",
|
|
5793
|
+
size: "xs"
|
|
5794
|
+
},
|
|
5795
|
+
"Xem chi ti\u1EBFt"
|
|
5796
|
+
))
|
|
5797
|
+
));
|
|
6055
5798
|
}
|
|
6056
5799
|
|
|
6057
5800
|
// src/components/Inputs/DateInput/MyDateInput.tsx
|
|
6058
5801
|
import { DateInput } from "@mantine/dates";
|
|
6059
|
-
import { jsx as jsx42 } from "react/jsx-runtime";
|
|
6060
5802
|
function MyDateInput(_a) {
|
|
6061
5803
|
var _b = _a, { label } = _b, rest = __objRest(_b, ["label"]);
|
|
6062
|
-
return /* @__PURE__ */
|
|
5804
|
+
return /* @__PURE__ */ React.createElement(DateInput, __spreadValues({ label, placeholder: label ? `Ch\u1ECDn ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
|
|
6063
5805
|
}
|
|
6064
5806
|
|
|
6065
5807
|
// src/components/Inputs/Fieldset/MyFieldset.tsx
|
|
6066
5808
|
import { Box as Box3, Fieldset as Fieldset4, Text as Text10 } from "@mantine/core";
|
|
6067
|
-
import { jsx as jsx43 } from "react/jsx-runtime";
|
|
6068
5809
|
function MyFieldset(_a) {
|
|
6069
5810
|
var _b = _a, {
|
|
6070
5811
|
children,
|
|
@@ -6073,46 +5814,43 @@ function MyFieldset(_a) {
|
|
|
6073
5814
|
"children",
|
|
6074
5815
|
"title"
|
|
6075
5816
|
]);
|
|
6076
|
-
return /* @__PURE__ */
|
|
5817
|
+
return /* @__PURE__ */ React.createElement(
|
|
6077
5818
|
Fieldset4,
|
|
6078
5819
|
__spreadProps(__spreadValues({}, rest), {
|
|
6079
|
-
legend: /* @__PURE__ */
|
|
5820
|
+
legend: /* @__PURE__ */ React.createElement(
|
|
6080
5821
|
Box3,
|
|
6081
5822
|
{
|
|
6082
5823
|
bg: "blue.4",
|
|
6083
5824
|
px: "xs",
|
|
6084
5825
|
py: 2,
|
|
6085
|
-
style: { borderRadius: 4 }
|
|
6086
|
-
|
|
6087
|
-
}
|
|
6088
|
-
)
|
|
6089
|
-
|
|
6090
|
-
|
|
5826
|
+
style: { borderRadius: 4 }
|
|
5827
|
+
},
|
|
5828
|
+
/* @__PURE__ */ React.createElement(Text10, { c: "white", fw: 500 }, title)
|
|
5829
|
+
)
|
|
5830
|
+
}),
|
|
5831
|
+
children
|
|
6091
5832
|
);
|
|
6092
5833
|
}
|
|
6093
5834
|
|
|
6094
5835
|
// src/components/Inputs/FileInput/MyFileInput.tsx
|
|
6095
5836
|
import { FileInput as FileInput3 } from "@mantine/core";
|
|
6096
|
-
import { jsx as jsx44 } from "react/jsx-runtime";
|
|
6097
5837
|
function MyFileInput(_a) {
|
|
6098
5838
|
var _b = _a, { label } = _b, rest = __objRest(_b, ["label"]);
|
|
6099
|
-
return /* @__PURE__ */
|
|
5839
|
+
return /* @__PURE__ */ React.createElement(FileInput3, __spreadValues({ label, placeholder: label ? `Ch\u1ECDn ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
|
|
6100
5840
|
}
|
|
6101
5841
|
|
|
6102
5842
|
// src/components/Inputs/NumberInput/MyNumberInput.tsx
|
|
6103
5843
|
import { NumberInput as NumberInput2 } from "@mantine/core";
|
|
6104
|
-
import { jsx as jsx45 } from "react/jsx-runtime";
|
|
6105
5844
|
function MyNumberInput(_a) {
|
|
6106
5845
|
var _b = _a, { label } = _b, rest = __objRest(_b, ["label"]);
|
|
6107
|
-
return /* @__PURE__ */
|
|
5846
|
+
return /* @__PURE__ */ React.createElement(NumberInput2, __spreadValues({ label, placeholder: label ? `Nh\u1EADp ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
|
|
6108
5847
|
}
|
|
6109
5848
|
|
|
6110
5849
|
// src/components/Inputs/TextArea/MyTextArea.tsx
|
|
6111
5850
|
import { Textarea } from "@mantine/core";
|
|
6112
|
-
import { jsx as jsx46 } from "react/jsx-runtime";
|
|
6113
5851
|
function MyTextArea(_a) {
|
|
6114
5852
|
var _b = _a, { label } = _b, rest = __objRest(_b, ["label"]);
|
|
6115
|
-
return /* @__PURE__ */
|
|
5853
|
+
return /* @__PURE__ */ React.createElement(Textarea, __spreadValues({ label, placeholder: label ? `Nh\u1EADp ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
|
|
6116
5854
|
}
|
|
6117
5855
|
|
|
6118
5856
|
// src/components/Inputs/TextEditor/MyTextEditor.tsx
|
|
@@ -6128,7 +5866,6 @@ import Underline from "@tiptap/extension-underline";
|
|
|
6128
5866
|
import { useEditor } from "@tiptap/react";
|
|
6129
5867
|
import StarterKit from "@tiptap/starter-kit";
|
|
6130
5868
|
import { useEffect as useEffect5, useState as useState7 } from "react";
|
|
6131
|
-
import { jsx as jsx47, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
6132
5869
|
function MyTextEditor(_a) {
|
|
6133
5870
|
var _b = _a, {
|
|
6134
5871
|
autoHiddenToolBar = false,
|
|
@@ -6230,75 +5967,37 @@ function MyTextEditor(_a) {
|
|
|
6230
5967
|
editor.commands.setContent(value);
|
|
6231
5968
|
}
|
|
6232
5969
|
}, [value, editor]);
|
|
6233
|
-
return /* @__PURE__ */
|
|
6234
|
-
|
|
6235
|
-
|
|
6236
|
-
|
|
6237
|
-
|
|
6238
|
-
|
|
6239
|
-
|
|
6240
|
-
|
|
6241
|
-
|
|
6242
|
-
|
|
6243
|
-
|
|
6244
|
-
|
|
6245
|
-
|
|
6246
|
-
|
|
6247
|
-
|
|
6248
|
-
|
|
6249
|
-
|
|
6250
|
-
|
|
6251
|
-
/* @__PURE__ */ jsx47(RichTextEditor.Blockquote, {}),
|
|
6252
|
-
/* @__PURE__ */ jsx47(RichTextEditor.Hr, {}),
|
|
6253
|
-
/* @__PURE__ */ jsx47(RichTextEditor.BulletList, {}),
|
|
6254
|
-
/* @__PURE__ */ jsx47(RichTextEditor.OrderedList, {}),
|
|
6255
|
-
/* @__PURE__ */ jsx47(RichTextEditor.Subscript, {}),
|
|
6256
|
-
/* @__PURE__ */ jsx47(RichTextEditor.Superscript, {})
|
|
6257
|
-
] }),
|
|
6258
|
-
/* @__PURE__ */ jsxs25(RichTextEditor.ControlsGroup, { children: [
|
|
6259
|
-
/* @__PURE__ */ jsx47(RichTextEditor.Link, {}),
|
|
6260
|
-
/* @__PURE__ */ jsx47(RichTextEditor.Unlink, {})
|
|
6261
|
-
] }),
|
|
6262
|
-
/* @__PURE__ */ jsxs25(RichTextEditor.ControlsGroup, { children: [
|
|
6263
|
-
/* @__PURE__ */ jsx47(RichTextEditor.AlignLeft, {}),
|
|
6264
|
-
/* @__PURE__ */ jsx47(RichTextEditor.AlignCenter, {}),
|
|
6265
|
-
/* @__PURE__ */ jsx47(RichTextEditor.AlignJustify, {}),
|
|
6266
|
-
/* @__PURE__ */ jsx47(RichTextEditor.AlignRight, {})
|
|
6267
|
-
] })
|
|
6268
|
-
] }),
|
|
6269
|
-
/* @__PURE__ */ jsx47(
|
|
6270
|
-
ScrollArea2.Autosize,
|
|
6271
|
-
{
|
|
6272
|
-
onMouseDown: () => {
|
|
6273
|
-
editor == null ? void 0 : editor.commands.focus();
|
|
6274
|
-
},
|
|
6275
|
-
onBlur: () => {
|
|
6276
|
-
if (autoHiddenToolBar == false) return;
|
|
6277
|
-
setHiddenToolBar(true);
|
|
6278
|
-
},
|
|
6279
|
-
onFocus: () => {
|
|
6280
|
-
if (autoHiddenToolBar == false) return;
|
|
6281
|
-
setHiddenToolBar(false);
|
|
6282
|
-
},
|
|
6283
|
-
style: { cursor: "text", maxHeight: "400px" },
|
|
6284
|
-
children: /* @__PURE__ */ jsx47(RichTextEditor.Content, { mih: contentHeight })
|
|
6285
|
-
}
|
|
6286
|
-
)
|
|
6287
|
-
] }) });
|
|
5970
|
+
return /* @__PURE__ */ React.createElement(Input.Wrapper, { label, flex: 1, error, withAsterisk }, /* @__PURE__ */ React.createElement(RichTextEditor, { editor, style: { border: error && "1px solid #e03131" } }, /* @__PURE__ */ React.createElement(RichTextEditor.Toolbar, { hidden: hiddenToolBar, sticky: true, stickyOffset: 60 }, /* @__PURE__ */ React.createElement(RichTextEditor.ControlsGroup, null, /* @__PURE__ */ React.createElement(RichTextEditor.Bold, null), /* @__PURE__ */ React.createElement(RichTextEditor.Italic, null), /* @__PURE__ */ React.createElement(RichTextEditor.Underline, null), /* @__PURE__ */ React.createElement(RichTextEditor.Strikethrough, null), /* @__PURE__ */ React.createElement(RichTextEditor.ClearFormatting, null), /* @__PURE__ */ React.createElement(RichTextEditor.Highlight, null), /* @__PURE__ */ React.createElement(RichTextEditor.Code, null)), /* @__PURE__ */ React.createElement(RichTextEditor.ControlsGroup, null, /* @__PURE__ */ React.createElement(RichTextEditor.H1, null), /* @__PURE__ */ React.createElement(RichTextEditor.H2, null), /* @__PURE__ */ React.createElement(RichTextEditor.H3, null), /* @__PURE__ */ React.createElement(RichTextEditor.H4, null)), /* @__PURE__ */ React.createElement(RichTextEditor.ControlsGroup, null, /* @__PURE__ */ React.createElement(RichTextEditor.Blockquote, null), /* @__PURE__ */ React.createElement(RichTextEditor.Hr, null), /* @__PURE__ */ React.createElement(RichTextEditor.BulletList, null), /* @__PURE__ */ React.createElement(RichTextEditor.OrderedList, null), /* @__PURE__ */ React.createElement(RichTextEditor.Subscript, null), /* @__PURE__ */ React.createElement(RichTextEditor.Superscript, null)), /* @__PURE__ */ React.createElement(RichTextEditor.ControlsGroup, null, /* @__PURE__ */ React.createElement(RichTextEditor.Link, null), /* @__PURE__ */ React.createElement(RichTextEditor.Unlink, null)), /* @__PURE__ */ React.createElement(RichTextEditor.ControlsGroup, null, /* @__PURE__ */ React.createElement(RichTextEditor.AlignLeft, null), /* @__PURE__ */ React.createElement(RichTextEditor.AlignCenter, null), /* @__PURE__ */ React.createElement(RichTextEditor.AlignJustify, null), /* @__PURE__ */ React.createElement(RichTextEditor.AlignRight, null))), /* @__PURE__ */ React.createElement(
|
|
5971
|
+
ScrollArea2.Autosize,
|
|
5972
|
+
{
|
|
5973
|
+
onMouseDown: () => {
|
|
5974
|
+
editor == null ? void 0 : editor.commands.focus();
|
|
5975
|
+
},
|
|
5976
|
+
onBlur: () => {
|
|
5977
|
+
if (autoHiddenToolBar == false) return;
|
|
5978
|
+
setHiddenToolBar(true);
|
|
5979
|
+
},
|
|
5980
|
+
onFocus: () => {
|
|
5981
|
+
if (autoHiddenToolBar == false) return;
|
|
5982
|
+
setHiddenToolBar(false);
|
|
5983
|
+
},
|
|
5984
|
+
style: { cursor: "text", maxHeight: "400px" }
|
|
5985
|
+
},
|
|
5986
|
+
/* @__PURE__ */ React.createElement(RichTextEditor.Content, { mih: contentHeight })
|
|
5987
|
+
)));
|
|
6288
5988
|
}
|
|
6289
5989
|
|
|
6290
5990
|
// src/modules-features/auth/F0Logout/F0Logout.tsx
|
|
6291
5991
|
import { Button as Button14 } from "@mantine/core";
|
|
6292
5992
|
import { IconLogout } from "@tabler/icons-react";
|
|
6293
5993
|
import { useRouter as useRouter3 } from "next/navigation";
|
|
6294
|
-
import { jsx as jsx48 } from "react/jsx-runtime";
|
|
6295
5994
|
function F0Logout() {
|
|
6296
5995
|
const router = useRouter3();
|
|
6297
5996
|
const S_Authenticate = useS_Authenticate();
|
|
6298
|
-
return /* @__PURE__ */
|
|
5997
|
+
return /* @__PURE__ */ React.createElement(Button14, { onClick: () => {
|
|
6299
5998
|
S_Authenticate.setProperty("token", "");
|
|
6300
5999
|
router.replace("/auth/login");
|
|
6301
|
-
}, leftSection: /* @__PURE__ */
|
|
6000
|
+
}, leftSection: /* @__PURE__ */ React.createElement(IconLogout, null), fullWidth: true, justify: "start", variant: "subtle" }, "\u0110\u0103ng xu\u1EA5t");
|
|
6302
6001
|
}
|
|
6303
6002
|
|
|
6304
6003
|
// src/components/Layouts/BasicAppShell/BasicAppShell.tsx
|
|
@@ -6321,22 +6020,22 @@ import { spotlight as spotlight2 } from "@mantine/spotlight";
|
|
|
6321
6020
|
import { IconLayoutSidebarLeftCollapse, IconLayoutSidebarLeftExpand, IconLibraryMinus, IconSearch as IconSearch2 } from "@tabler/icons-react";
|
|
6322
6021
|
import Link3 from "next/link";
|
|
6323
6022
|
import { usePathname as usePathname2 } from "next/navigation";
|
|
6324
|
-
import { Fragment as Fragment12, jsx as jsx49, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
6325
6023
|
function getRightSection(status) {
|
|
6326
|
-
if (status === "Prototype") return /* @__PURE__ */
|
|
6327
|
-
if (status === "New") return /* @__PURE__ */
|
|
6328
|
-
if (status === "Menu") return /* @__PURE__ */
|
|
6329
|
-
if (status === "Change") return /* @__PURE__ */
|
|
6024
|
+
if (status === "Prototype") return /* @__PURE__ */ React.createElement(Badge2, { styles: { root: { cursor: "pointer" } }, radius: "xs", color: "pink", circle: true }, "P");
|
|
6025
|
+
if (status === "New") return /* @__PURE__ */ React.createElement(Badge2, { styles: { root: { cursor: "pointer" } }, radius: "xs", circle: true }, "N");
|
|
6026
|
+
if (status === "Menu") return /* @__PURE__ */ React.createElement(Badge2, { styles: { root: { cursor: "pointer" } }, radius: "xs", color: "gray", circle: true }, "M");
|
|
6027
|
+
if (status === "Change") return /* @__PURE__ */ React.createElement(Badge2, { styles: { root: { cursor: "pointer" } }, radius: "xs", color: "green", circle: true }, "C");
|
|
6330
6028
|
return null;
|
|
6331
6029
|
}
|
|
6332
6030
|
function RenderNavLinks({ items }) {
|
|
6333
6031
|
const sidebarStore = useS_Sidebar();
|
|
6334
6032
|
const pathName = usePathname2();
|
|
6335
|
-
return /* @__PURE__ */
|
|
6033
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, items.map((item, index) => /* @__PURE__ */ React.createElement(
|
|
6336
6034
|
NavLink,
|
|
6337
6035
|
{
|
|
6338
6036
|
active: item.link === pathName.split("/")[2],
|
|
6339
6037
|
component: Link3,
|
|
6038
|
+
key: index,
|
|
6340
6039
|
rightSection: getRightSection(item.status),
|
|
6341
6040
|
opened: sidebarStore.state.groupMenuOpenId.includes(item.label),
|
|
6342
6041
|
href: `/${pathName.split("/")[1]}/${item.link}` || "#",
|
|
@@ -6348,11 +6047,10 @@ function RenderNavLinks({ items }) {
|
|
|
6348
6047
|
sidebarStore.setProperty("menuCode", item.link);
|
|
6349
6048
|
sidebarStore.setProperty("title", item.label);
|
|
6350
6049
|
}
|
|
6351
|
-
}
|
|
6352
|
-
children: item.links && /* @__PURE__ */ jsx49(RenderNavLinks, { items: item.links })
|
|
6050
|
+
}
|
|
6353
6051
|
},
|
|
6354
|
-
|
|
6355
|
-
))
|
|
6052
|
+
item.links && /* @__PURE__ */ React.createElement(RenderNavLinks, { items: item.links })
|
|
6053
|
+
)));
|
|
6356
6054
|
}
|
|
6357
6055
|
function childrenMenuToListEnumUsingPageIdAndName(children) {
|
|
6358
6056
|
return children.flatMap((item) => {
|
|
@@ -6406,7 +6104,7 @@ function BasicAppShell({ children, menu }) {
|
|
|
6406
6104
|
const sidebarStore = useS_Sidebar();
|
|
6407
6105
|
const media = useMediaQuery("(min-width: 72em)");
|
|
6408
6106
|
const selectMedia = useMediaQuery("(min-width: 80em)");
|
|
6409
|
-
return /* @__PURE__ */
|
|
6107
|
+
return /* @__PURE__ */ React.createElement(
|
|
6410
6108
|
AppShell,
|
|
6411
6109
|
{
|
|
6412
6110
|
header: { height: 60 },
|
|
@@ -6415,71 +6113,37 @@ function BasicAppShell({ children, menu }) {
|
|
|
6415
6113
|
breakpoint: "sm",
|
|
6416
6114
|
collapsed: { mobile: sidebarStore.state.opened, desktop: !sidebarStore.state.opened }
|
|
6417
6115
|
},
|
|
6418
|
-
padding: "md"
|
|
6419
|
-
|
|
6420
|
-
|
|
6421
|
-
|
|
6422
|
-
|
|
6423
|
-
|
|
6424
|
-
|
|
6425
|
-
|
|
6426
|
-
|
|
6427
|
-
|
|
6428
|
-
|
|
6429
|
-
|
|
6430
|
-
|
|
6431
|
-
|
|
6432
|
-
|
|
6433
|
-
|
|
6434
|
-
|
|
6435
|
-
|
|
6436
|
-
|
|
6437
|
-
|
|
6438
|
-
|
|
6439
|
-
|
|
6440
|
-
|
|
6441
|
-
|
|
6442
|
-
|
|
6443
|
-
|
|
6444
|
-
|
|
6445
|
-
|
|
6446
|
-
|
|
6447
|
-
|
|
6448
|
-
|
|
6449
|
-
/* @__PURE__ */ jsxs26(Group11, { children: [
|
|
6450
|
-
/* @__PURE__ */ jsx49(
|
|
6451
|
-
Select3,
|
|
6452
|
-
{
|
|
6453
|
-
w: 100,
|
|
6454
|
-
size: "xs",
|
|
6455
|
-
placeholder: "H\u1ECDc k\u1EF3",
|
|
6456
|
-
defaultValue: 1 == null ? void 0 : 1 .toString(),
|
|
6457
|
-
data: [
|
|
6458
|
-
{ value: "1", label: "20241" },
|
|
6459
|
-
{ value: "2", label: "20242" }
|
|
6460
|
-
]
|
|
6461
|
-
}
|
|
6462
|
-
),
|
|
6463
|
-
/* @__PURE__ */ jsx49(MySwitchTheme, {})
|
|
6464
|
-
] })
|
|
6465
|
-
] })
|
|
6466
|
-
)
|
|
6467
|
-
] }),
|
|
6468
|
-
/* @__PURE__ */ jsxs26(AppShell.Navbar, { children: [
|
|
6469
|
-
/* @__PURE__ */ jsx49(TextInput2, { mt: "md", placeholder: "T\xECm menu (Ctrl + K)", mx: 10, component: "button", onClick: spotlight2.open, leftSection: /* @__PURE__ */ jsx49(IconSearch2, {}), children: "T\xECm ki\u1EBFm (Ctrl + K)" }),
|
|
6470
|
-
/* @__PURE__ */ jsxs26(AppShell.Section, { grow: true, component: ScrollArea3, p: 5, children: [
|
|
6471
|
-
/* @__PURE__ */ jsx49(RenderNavLinks, { items: menu }),
|
|
6472
|
-
/* @__PURE__ */ jsx49(Divider2, {}),
|
|
6473
|
-
/* @__PURE__ */ jsx49(F0Logout, {})
|
|
6474
|
-
] }),
|
|
6475
|
-
/* @__PURE__ */ jsxs26(AppShell.Section, { p: "md", children: [
|
|
6476
|
-
/* @__PURE__ */ jsx49(Divider2, {}),
|
|
6477
|
-
/* @__PURE__ */ jsx49(Image3, { src: "/imgs/0/IMG0LogoAQTech.png", h: 50, alt: "", w: "auto" })
|
|
6478
|
-
] })
|
|
6479
|
-
] }),
|
|
6480
|
-
/* @__PURE__ */ jsx49(AppShell.Main, { bg: "light-dark(var(--mantine-color-gray-1), var(--mantine-color-dark-8))", children })
|
|
6481
|
-
]
|
|
6482
|
-
}
|
|
6116
|
+
padding: "md"
|
|
6117
|
+
},
|
|
6118
|
+
/* @__PURE__ */ React.createElement(AppShell.Header, null, /* @__PURE__ */ React.createElement(MyAppSpotlight, { menu }), media ? /* @__PURE__ */ React.createElement(Group11, { h: "100%", px: "md", justify: "space-between", align: "center" }, /* @__PURE__ */ React.createElement(Group11, { h: "100%" }, /* @__PURE__ */ React.createElement(Tooltip5, { label: sidebarStore.state.opened ? "\u1EA8n thanh menu" : "Hi\u1EC7n thanh menu" }, /* @__PURE__ */ React.createElement(ActionIcon10, { size: "lg", radius: "md", variant: "default", onClick: sidebarStore.toggle }, sidebarStore.state.opened ? /* @__PURE__ */ React.createElement(IconLayoutSidebarLeftExpand, null) : /* @__PURE__ */ React.createElement(IconLayoutSidebarLeftCollapse, null))), /* @__PURE__ */ React.createElement(Tooltip5, { label: "\u0110\xF3ng t\u1EA5t c\u1EA3 menu" }, /* @__PURE__ */ React.createElement(ActionIcon10, { size: "lg", radius: "md", variant: "default", onClick: () => sidebarStore.clearGroupMenuOpenId() }, /* @__PURE__ */ React.createElement(IconLibraryMinus, null)))), /* @__PURE__ */ React.createElement(Group11, { style: { position: "absolute", left: "50%", transform: "translateX(-50%)" } }, /* @__PURE__ */ React.createElement(Text11, { c: "green", fw: "bold" }, "AQ EduCourseEvaluation - Ph\u1EA7n m\u1EC1m \u0111\xE1nh gi\xE1 chu\u1EA9n \u0111\u1EA7u ra")), /* @__PURE__ */ React.createElement(Group11, null, /* @__PURE__ */ React.createElement(Text11, null, "H\u1ECDc k\u1EF3 l\xE0m vi\u1EC7c"), /* @__PURE__ */ React.createElement(
|
|
6119
|
+
Select3,
|
|
6120
|
+
{
|
|
6121
|
+
w: selectMedia ? 245 : 150,
|
|
6122
|
+
placeholder: "Ch\u1ECDn c\xF4ng th\u1EE9c s\u1EAFp x\u1EBFp",
|
|
6123
|
+
defaultValue: 1 == null ? void 0 : 1 .toString(),
|
|
6124
|
+
data: [
|
|
6125
|
+
{ value: "1", label: "N\u0103m h\u1ECDc 2024 - 2025 H\u1ECDc k\u1EF3 1" },
|
|
6126
|
+
{ value: "2", label: "N\u0103m h\u1ECDc 2024 - 2025 H\u1ECDc k\u1EF3 1" }
|
|
6127
|
+
]
|
|
6128
|
+
}
|
|
6129
|
+
), /* @__PURE__ */ React.createElement(MySwitchTheme, null))) : (
|
|
6130
|
+
// For mobile screens - simplified layout
|
|
6131
|
+
/* @__PURE__ */ React.createElement(Group11, { h: "100%", px: "md", justify: "space-between" }, /* @__PURE__ */ React.createElement(ActionIcon10, { size: "lg", radius: "md", variant: "default", onClick: sidebarStore.toggle }, sidebarStore.state.opened ? /* @__PURE__ */ React.createElement(IconLayoutSidebarLeftExpand, null) : /* @__PURE__ */ React.createElement(IconLayoutSidebarLeftCollapse, null)), /* @__PURE__ */ React.createElement(Text11, { c: "green", fw: "bold", size: "sm" }, "AQ EduCourseEvaluation"), /* @__PURE__ */ React.createElement(Group11, null, /* @__PURE__ */ React.createElement(
|
|
6132
|
+
Select3,
|
|
6133
|
+
{
|
|
6134
|
+
w: 100,
|
|
6135
|
+
size: "xs",
|
|
6136
|
+
placeholder: "H\u1ECDc k\u1EF3",
|
|
6137
|
+
defaultValue: 1 == null ? void 0 : 1 .toString(),
|
|
6138
|
+
data: [
|
|
6139
|
+
{ value: "1", label: "20241" },
|
|
6140
|
+
{ value: "2", label: "20242" }
|
|
6141
|
+
]
|
|
6142
|
+
}
|
|
6143
|
+
), /* @__PURE__ */ React.createElement(MySwitchTheme, null)))
|
|
6144
|
+
)),
|
|
6145
|
+
/* @__PURE__ */ React.createElement(AppShell.Navbar, null, /* @__PURE__ */ React.createElement(TextInput2, { mt: "md", placeholder: "T\xECm menu (Ctrl + K)", mx: 10, component: "button", onClick: spotlight2.open, leftSection: /* @__PURE__ */ React.createElement(IconSearch2, null) }, "T\xECm ki\u1EBFm (Ctrl + K)"), /* @__PURE__ */ React.createElement(AppShell.Section, { grow: true, component: ScrollArea3, p: 5 }, /* @__PURE__ */ React.createElement(RenderNavLinks, { items: menu }), /* @__PURE__ */ React.createElement(Divider2, null), /* @__PURE__ */ React.createElement(F0Logout, null)), /* @__PURE__ */ React.createElement(AppShell.Section, { p: "md" }, /* @__PURE__ */ React.createElement(Divider2, null), /* @__PURE__ */ React.createElement(Image3, { src: "/imgs/0/IMG0LogoAQTech.png", h: 50, alt: "", w: "auto" }))),
|
|
6146
|
+
/* @__PURE__ */ React.createElement(AppShell.Main, { bg: "light-dark(var(--mantine-color-gray-1), var(--mantine-color-dark-8))" }, children)
|
|
6483
6147
|
);
|
|
6484
6148
|
}
|
|
6485
6149
|
var groupToTwoLevels = (menu) => {
|
|
@@ -6526,10 +6190,9 @@ function utils_layout_getItemsWithoutLinks(menu) {
|
|
|
6526
6190
|
|
|
6527
6191
|
// src/components/Layouts/Container/MyContainer.tsx
|
|
6528
6192
|
import { Container, Flex as Flex4 } from "@mantine/core";
|
|
6529
|
-
import { jsx as jsx50 } from "react/jsx-runtime";
|
|
6530
6193
|
function MyContainer(_a) {
|
|
6531
6194
|
var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
|
|
6532
|
-
return /* @__PURE__ */
|
|
6195
|
+
return /* @__PURE__ */ React.createElement(Container, __spreadValues({ fluid: true }, rest), /* @__PURE__ */ React.createElement(Flex4, { direction: "column" }, children));
|
|
6533
6196
|
}
|
|
6534
6197
|
|
|
6535
6198
|
// src/constants/object/color.ts
|
|
@@ -6582,7 +6245,6 @@ function useHeaderMegaMenuStore() {
|
|
|
6582
6245
|
}
|
|
6583
6246
|
|
|
6584
6247
|
// src/components/Layouts/HeaderMegaMenu/HeaderMegaMenu.tsx
|
|
6585
|
-
import { jsx as jsx51, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
6586
6248
|
var mockdata = [
|
|
6587
6249
|
{
|
|
6588
6250
|
icon: IconCode,
|
|
@@ -6620,49 +6282,24 @@ function HeaderMegaMenu({ children, menus }) {
|
|
|
6620
6282
|
const [linksOpened, { toggle: toggleLinks }] = useDisclosure10(false);
|
|
6621
6283
|
const HeaderMegaMenuStore = useHeaderMegaMenuStore();
|
|
6622
6284
|
const theme = useMantineTheme();
|
|
6623
|
-
const links = mockdata.map((item) => /* @__PURE__ */
|
|
6624
|
-
|
|
6625
|
-
|
|
6626
|
-
|
|
6627
|
-
|
|
6628
|
-
|
|
6629
|
-
|
|
6630
|
-
|
|
6631
|
-
|
|
6632
|
-
|
|
6633
|
-
|
|
6634
|
-
|
|
6635
|
-
|
|
6636
|
-
|
|
6637
|
-
/* @__PURE__ */ jsx51(TextInput3, { placeholder: "T\xECm ki\u1EBFm", leftSection: /* @__PURE__ */ jsx51(IconSearch3, {}), radius: "xl", w: "250px" }),
|
|
6638
|
-
/* @__PURE__ */ jsx51(MySwitchTheme, {})
|
|
6639
|
-
] }),
|
|
6640
|
-
/* @__PURE__ */ jsx51(Burger, { opened: drawerOpened, onClick: toggleDrawer, hiddenFrom: "sm" })
|
|
6641
|
-
] }) }),
|
|
6642
|
-
/* @__PURE__ */ jsx51(Container2, { fluid: true, pt: "sm", pb: "md", bg: OBJECT_COlORS.mantineBackgroundSecondary, mih: "93vh", children }),
|
|
6643
|
-
/* @__PURE__ */ jsx51(
|
|
6644
|
-
Drawer,
|
|
6645
|
-
{
|
|
6646
|
-
opened: drawerOpened,
|
|
6647
|
-
onClose: closeDrawer,
|
|
6648
|
-
size: "100%",
|
|
6649
|
-
padding: "md",
|
|
6650
|
-
title: "Navigation",
|
|
6651
|
-
hiddenFrom: "sm",
|
|
6652
|
-
zIndex: 1e6,
|
|
6653
|
-
children: /* @__PURE__ */ jsxs27(ScrollArea4, { h: "calc(100vh - 80px", mx: "-md", children: [
|
|
6654
|
-
/* @__PURE__ */ jsx51(Divider3, { my: "sm" }),
|
|
6655
|
-
/* @__PURE__ */ jsx51(MyFlexColumn, { h: "100%", gap: 0, children: menus == null ? void 0 : menus.map((item, idx) => /* @__PURE__ */ jsx51(Button15, { component: Link4, href: item.href, variant: HeaderMegaMenuStore.state.name == item.label ? "light" : "subtle", onClick: () => HeaderMegaMenuStore.setState({ name: item.label }), children: item.label }, idx)) }),
|
|
6656
|
-
/* @__PURE__ */ jsx51(Divider3, { my: "sm" })
|
|
6657
|
-
] })
|
|
6658
|
-
}
|
|
6659
|
-
)
|
|
6660
|
-
] });
|
|
6285
|
+
const links = mockdata.map((item) => /* @__PURE__ */ React.createElement(UnstyledButton, { className: css_default2.subLink, key: item.title }, /* @__PURE__ */ React.createElement(Group12, { wrap: "nowrap", align: "flex-start" }, /* @__PURE__ */ React.createElement(ThemeIcon, { size: 34, variant: "default", radius: "md" }, /* @__PURE__ */ React.createElement(item.icon, { size: 22, color: theme.colors.blue[6] })), /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(Text12, { size: "sm", fw: 500 }, item.title), /* @__PURE__ */ React.createElement(Text12, { size: "xs", c: "dimmed" }, item.description)))));
|
|
6286
|
+
return /* @__PURE__ */ React.createElement(Box4, null, /* @__PURE__ */ React.createElement("header", { className: css_default2.header }, /* @__PURE__ */ React.createElement(Group12, { justify: "space-between", h: "100%" }, /* @__PURE__ */ React.createElement(Group12, null, /* @__PURE__ */ React.createElement(Image4, { src: "/imgs/0/IMG0LogoAQTech.png", h: 30, alt: "", w: "auto" }), /* @__PURE__ */ React.createElement(Group12, { h: "100%", gap: 5, visibleFrom: "sm" }, menus == null ? void 0 : menus.map((item, idx) => /* @__PURE__ */ React.createElement(Button15, { key: idx, component: Link4, href: item.href, variant: HeaderMegaMenuStore.state.name == item.label ? "light" : "subtle", onClick: () => HeaderMegaMenuStore.setState({ name: item.label }) }, item.label)))), /* @__PURE__ */ React.createElement(Group12, null, /* @__PURE__ */ React.createElement(TextInput3, { placeholder: "T\xECm ki\u1EBFm", leftSection: /* @__PURE__ */ React.createElement(IconSearch3, null), radius: "xl", w: "250px" }), /* @__PURE__ */ React.createElement(MySwitchTheme, null)), /* @__PURE__ */ React.createElement(Burger, { opened: drawerOpened, onClick: toggleDrawer, hiddenFrom: "sm" }))), /* @__PURE__ */ React.createElement(Container2, { fluid: true, pt: "sm", pb: "md", bg: OBJECT_COlORS.mantineBackgroundSecondary, mih: "93vh" }, children), /* @__PURE__ */ React.createElement(
|
|
6287
|
+
Drawer,
|
|
6288
|
+
{
|
|
6289
|
+
opened: drawerOpened,
|
|
6290
|
+
onClose: closeDrawer,
|
|
6291
|
+
size: "100%",
|
|
6292
|
+
padding: "md",
|
|
6293
|
+
title: "Navigation",
|
|
6294
|
+
hiddenFrom: "sm",
|
|
6295
|
+
zIndex: 1e6
|
|
6296
|
+
},
|
|
6297
|
+
/* @__PURE__ */ React.createElement(ScrollArea4, { h: "calc(100vh - 80px", mx: "-md" }, /* @__PURE__ */ React.createElement(Divider3, { my: "sm" }), /* @__PURE__ */ React.createElement(MyFlexColumn, { h: "100%", gap: 0 }, menus == null ? void 0 : menus.map((item, idx) => /* @__PURE__ */ React.createElement(Button15, { key: idx, component: Link4, href: item.href, variant: HeaderMegaMenuStore.state.name == item.label ? "light" : "subtle", onClick: () => HeaderMegaMenuStore.setState({ name: item.label }) }, item.label))), /* @__PURE__ */ React.createElement(Divider3, { my: "sm" }))
|
|
6298
|
+
));
|
|
6661
6299
|
}
|
|
6662
6300
|
|
|
6663
6301
|
// src/components/Layouts/PageContent/MyPageContent.tsx
|
|
6664
6302
|
import { Code, Container as Container3, Divider as Divider4, Group as Group13, Indicator, Title } from "@mantine/core";
|
|
6665
|
-
import { jsx as jsx52, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
6666
6303
|
var getStatusColor = (status) => {
|
|
6667
6304
|
switch (status) {
|
|
6668
6305
|
case "Prototype":
|
|
@@ -6675,90 +6312,64 @@ var getStatusColor = (status) => {
|
|
|
6675
6312
|
};
|
|
6676
6313
|
var PageTitle = ({ title, status }) => {
|
|
6677
6314
|
const color = getStatusColor(status);
|
|
6678
|
-
return /* @__PURE__ */
|
|
6315
|
+
return /* @__PURE__ */ React.createElement(Indicator, { label: status, size: 16, inline: true, color, disabled: !status, pt: 6 }, /* @__PURE__ */ React.createElement(Title, null, title));
|
|
6679
6316
|
};
|
|
6680
6317
|
function MyPageContent({ leftTopBar, title, canBack = false, rightTopBar, status, children }) {
|
|
6681
6318
|
const SidebarStore = useS_Sidebar();
|
|
6682
6319
|
const finalTitle = title || SidebarStore.state.title;
|
|
6683
|
-
return /* @__PURE__ */
|
|
6684
|
-
/* @__PURE__ */ jsxs28(Group13, { justify: "space-between", children: [
|
|
6685
|
-
/* @__PURE__ */ jsxs28(Group13, { children: [
|
|
6686
|
-
canBack && /* @__PURE__ */ jsx52(MyButtonRouterBack, {}),
|
|
6687
|
-
/* @__PURE__ */ jsx52(PageTitle, { title: finalTitle, status }),
|
|
6688
|
-
leftTopBar
|
|
6689
|
-
] }),
|
|
6690
|
-
/* @__PURE__ */ jsxs28(Group13, { children: [
|
|
6691
|
-
rightTopBar,
|
|
6692
|
-
/* @__PURE__ */ jsx52(Code, { color: "var(--mantine-color-blue-light)", children: SidebarStore.state.menuCode })
|
|
6693
|
-
] })
|
|
6694
|
-
] }),
|
|
6695
|
-
/* @__PURE__ */ jsx52(Divider4, {}),
|
|
6696
|
-
children
|
|
6697
|
-
] });
|
|
6320
|
+
return /* @__PURE__ */ React.createElement(Container3, { p: 0, fluid: true }, /* @__PURE__ */ React.createElement(Group13, { justify: "space-between" }, /* @__PURE__ */ React.createElement(Group13, null, canBack && /* @__PURE__ */ React.createElement(MyButtonRouterBack, null), /* @__PURE__ */ React.createElement(PageTitle, { title: finalTitle, status }), leftTopBar), /* @__PURE__ */ React.createElement(Group13, null, rightTopBar, /* @__PURE__ */ React.createElement(Code, { color: "var(--mantine-color-blue-light)" }, SidebarStore.state.menuCode))), /* @__PURE__ */ React.createElement(Divider4, null), children);
|
|
6698
6321
|
}
|
|
6699
6322
|
|
|
6700
6323
|
// src/components/Layouts/Tab/MyTab.tsx
|
|
6701
6324
|
import { rem, Space as Space3, Tabs } from "@mantine/core";
|
|
6702
|
-
import
|
|
6325
|
+
import React3 from "react";
|
|
6703
6326
|
function MyTab(_a) {
|
|
6704
6327
|
var _b = _a, { tabList, children } = _b, rest = __objRest(_b, ["tabList", "children"]);
|
|
6705
6328
|
const iconStyle = { width: rem(20), height: rem(20) };
|
|
6706
|
-
return /* @__PURE__ */
|
|
6707
|
-
/* @__PURE__ */
|
|
6708
|
-
|
|
6709
|
-
}) }),
|
|
6710
|
-
/* @__PURE__ */ jsx53(Space3, { my: "md" }),
|
|
6711
|
-
children
|
|
6712
|
-
] }));
|
|
6329
|
+
return /* @__PURE__ */ React3.createElement(Tabs, __spreadValues({ defaultValue: tabList[0].label }, rest), /* @__PURE__ */ React3.createElement(Tabs.List, null, tabList.map((item, idx) => {
|
|
6330
|
+
return /* @__PURE__ */ React3.createElement(Tabs.Tab, { key: idx, value: item.label, leftSection: item.icon && /* @__PURE__ */ React3.createElement(item.icon, { style: iconStyle }) }, item.label);
|
|
6331
|
+
})), /* @__PURE__ */ React3.createElement(Space3, { my: "md" }), children);
|
|
6713
6332
|
}
|
|
6714
6333
|
|
|
6715
6334
|
// src/components/RESTAPIComponents/DataTableSelect/MyDataTableSelect.tsx
|
|
6716
6335
|
import { ActionIcon as ActionIcon11, Button as Button16, Fieldset as Fieldset5, Group as Group14, Modal as Modal11 } from "@mantine/core";
|
|
6717
6336
|
import { useDisclosure as useDisclosure11 } from "@mantine/hooks";
|
|
6718
6337
|
import { IconX as IconX2 } from "@tabler/icons-react";
|
|
6719
|
-
import { jsx as jsx54, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
6720
6338
|
function MyDataTableSelect(_a) {
|
|
6721
6339
|
var _b = _a, { modalSize, renderTopToolbarCustomActions, data, selectButtonlabel, listState, columns, listLabel } = _b, rest = __objRest(_b, ["modalSize", "renderTopToolbarCustomActions", "data", "selectButtonlabel", "listState", "columns", "listLabel"]);
|
|
6722
6340
|
const disc = useDisclosure11(false);
|
|
6723
6341
|
if (data == void 0) return "\u0110ang t\u1EA3i...";
|
|
6724
|
-
return /* @__PURE__ */
|
|
6725
|
-
|
|
6726
|
-
|
|
6727
|
-
|
|
6728
|
-
renderTopToolbarCustomActions
|
|
6729
|
-
|
|
6730
|
-
|
|
6731
|
-
|
|
6732
|
-
|
|
6733
|
-
},
|
|
6734
|
-
|
|
6735
|
-
|
|
6736
|
-
|
|
6737
|
-
|
|
6738
|
-
|
|
6739
|
-
}
|
|
6740
|
-
|
|
6741
|
-
|
|
6742
|
-
|
|
6743
|
-
|
|
6744
|
-
|
|
6745
|
-
|
|
6746
|
-
|
|
6747
|
-
|
|
6748
|
-
|
|
6749
|
-
|
|
6750
|
-
enableRowSelection: true,
|
|
6751
|
-
data,
|
|
6752
|
-
columns
|
|
6753
|
-
}, rest)
|
|
6754
|
-
) })
|
|
6755
|
-
] });
|
|
6342
|
+
return /* @__PURE__ */ React.createElement(Fieldset5, { legend: listLabel ? listLabel : "Danh s\xE1ch" }, /* @__PURE__ */ React.createElement(
|
|
6343
|
+
MyDataTable,
|
|
6344
|
+
__spreadValues({
|
|
6345
|
+
renderTopToolbarCustomActions: ({ table }) => {
|
|
6346
|
+
return /* @__PURE__ */ React.createElement(Group14, null, renderTopToolbarCustomActions && renderTopToolbarCustomActions({ table }), /* @__PURE__ */ React.createElement(Button16, { onClick: disc[1].open }, selectButtonlabel || "Ch\u1ECDn t\u1EEB danh s\xE1ch"));
|
|
6347
|
+
},
|
|
6348
|
+
columns,
|
|
6349
|
+
data: listState[0],
|
|
6350
|
+
renderRowActions: ({ row }) => {
|
|
6351
|
+
return /* @__PURE__ */ React.createElement(MyCenterFull, null, /* @__PURE__ */ React.createElement(ActionIcon11, { color: "red", onClick: () => listState[1].remove(row.index) }, /* @__PURE__ */ React.createElement(IconX2, null)));
|
|
6352
|
+
}
|
|
6353
|
+
}, rest)
|
|
6354
|
+
), /* @__PURE__ */ React.createElement(Modal11, { opened: disc[0], onClose: disc[1].close, size: modalSize || "80%" }, /* @__PURE__ */ React.createElement(
|
|
6355
|
+
MyDataTable,
|
|
6356
|
+
__spreadValues({
|
|
6357
|
+
renderTopToolbarCustomActions: ({ table }) => {
|
|
6358
|
+
return /* @__PURE__ */ React.createElement(Button16, { onClick: () => {
|
|
6359
|
+
table.getSelectedRowModel().rows.map((item) => listState[1].append(item.original));
|
|
6360
|
+
disc[1].close();
|
|
6361
|
+
} }, "Ch\u1ECDn");
|
|
6362
|
+
},
|
|
6363
|
+
enableRowSelection: true,
|
|
6364
|
+
data,
|
|
6365
|
+
columns
|
|
6366
|
+
}, rest)
|
|
6367
|
+
)));
|
|
6756
6368
|
}
|
|
6757
6369
|
|
|
6758
6370
|
// src/components/RESTAPIComponents/SelectAPIGet/MySelectAPIGet.tsx
|
|
6759
6371
|
import { Select as Select4 } from "@mantine/core";
|
|
6760
6372
|
import { useQuery as useQuery2 } from "@tanstack/react-query";
|
|
6761
|
-
import { jsx as jsx55 } from "react/jsx-runtime";
|
|
6762
6373
|
function MySelectAPIGet(_a) {
|
|
6763
6374
|
var _b = _a, { apiGet, label = "", dataMapper } = _b, rest = __objRest(_b, ["apiGet", "label", "dataMapper"]);
|
|
6764
6375
|
var _a2;
|
|
@@ -6777,7 +6388,7 @@ function MySelectAPIGet(_a) {
|
|
|
6777
6388
|
label: `${item.code}-${item.name}`
|
|
6778
6389
|
};
|
|
6779
6390
|
});
|
|
6780
|
-
return /* @__PURE__ */
|
|
6391
|
+
return /* @__PURE__ */ React.createElement(
|
|
6781
6392
|
Select4,
|
|
6782
6393
|
__spreadValues({
|
|
6783
6394
|
label,
|
|
@@ -6789,9 +6400,8 @@ function MySelectAPIGet(_a) {
|
|
|
6789
6400
|
|
|
6790
6401
|
// src/components/Skeletons/SkeletonTable/MySkeletonTable.tsx
|
|
6791
6402
|
import { Skeleton } from "@mantine/core";
|
|
6792
|
-
import { jsx as jsx56 } from "react/jsx-runtime";
|
|
6793
6403
|
function MySkeletonTable({ h: h4 = 500 }) {
|
|
6794
|
-
return /* @__PURE__ */
|
|
6404
|
+
return /* @__PURE__ */ React.createElement(Skeleton, { h: h4 });
|
|
6795
6405
|
}
|
|
6796
6406
|
|
|
6797
6407
|
export {
|