aq-fe-framework 0.1.452 → 0.1.454
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-WUXEUR7R.mjs → chunk-562G3GRP.mjs} +628 -463
- package/dist/{chunk-M6C567QA.mjs → chunk-F32DBM65.mjs} +132 -97
- package/dist/components/index.mjs +4 -6
- package/dist/core/index.css +94 -0
- package/dist/core/index.d.mts +28 -7
- package/dist/core/index.mjs +8 -2
- package/dist/modules-features/index.mjs +9 -11
- package/package.json +1 -1
- package/dist/chunk-RZBHPPQT.mjs +0 -178
@@ -4,11 +4,6 @@ import {
|
|
4
4
|
import {
|
5
5
|
utils_pdf_download
|
6
6
|
} from "./chunk-5U2JSHSJ.mjs";
|
7
|
-
import {
|
8
|
-
MyDataTable,
|
9
|
-
MyFlexColumn,
|
10
|
-
MyFlexRow
|
11
|
-
} from "./chunk-RZBHPPQT.mjs";
|
12
7
|
import {
|
13
8
|
const_object_colors
|
14
9
|
} from "./chunk-OMJJAHOC.mjs";
|
@@ -184,19 +179,27 @@ function MyTextInput(_a) {
|
|
184
179
|
);
|
185
180
|
}
|
186
181
|
|
182
|
+
// src/components/Layouts/FlexColumn/MyFlexColumn.tsx
|
183
|
+
import { Flex } from "@mantine/core";
|
184
|
+
import { jsx as jsx6 } from "react/jsx-runtime";
|
185
|
+
function MyFlexColumn(_a) {
|
186
|
+
var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
|
187
|
+
return /* @__PURE__ */ jsx6(Flex, __spreadProps(__spreadValues({ direction: "column", gap: "md" }, rest), { children }));
|
188
|
+
}
|
189
|
+
|
187
190
|
// src/components/ActionIcons/ActionIconCheck/MyActionIconCheck.tsx
|
188
191
|
import { ActionIcon as ActionIcon2, Button, Checkbox, Modal, Switch, Text as Text2, Tooltip } from "@mantine/core";
|
189
192
|
import { useDisclosure } from "@mantine/hooks";
|
190
193
|
import { IconChecklist } from "@tabler/icons-react";
|
191
194
|
import { useState } from "react";
|
192
|
-
import { Fragment, jsx as
|
195
|
+
import { Fragment, jsx as jsx7, jsxs as jsxs2 } from "react/jsx-runtime";
|
193
196
|
function MyActionIconCheck(_a) {
|
194
197
|
var _b = _a, { modalSize = "50%", comment = "" } = _b, rest = __objRest(_b, ["modalSize", "comment"]);
|
195
198
|
const disc = useDisclosure(false);
|
196
199
|
const fullScreen = useState(false);
|
197
200
|
const hSize = useState("50vh");
|
198
201
|
return /* @__PURE__ */ jsxs2(Fragment, { children: [
|
199
|
-
/* @__PURE__ */
|
202
|
+
/* @__PURE__ */ jsx7(Tooltip, { label: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp", children: /* @__PURE__ */ jsx7(ActionIcon2, __spreadProps(__spreadValues({ color: "cyan", onClick: disc[1].open }, rest), { children: /* @__PURE__ */ jsx7(IconChecklist, { size: 24, color: "blue" }) })) }),
|
200
203
|
/* @__PURE__ */ jsxs2(
|
201
204
|
Modal,
|
202
205
|
{
|
@@ -204,9 +207,9 @@ function MyActionIconCheck(_a) {
|
|
204
207
|
opened: disc[0],
|
205
208
|
onClose: disc[1].close,
|
206
209
|
size: modalSize,
|
207
|
-
title: /* @__PURE__ */
|
210
|
+
title: /* @__PURE__ */ jsx7(Text2, { children: "Ki\u1EC3m tra h\u1ED3 s\u01A1 \u0111\xE3 \u0111\u0103ng k\xFD" }),
|
208
211
|
children: [
|
209
|
-
/* @__PURE__ */
|
212
|
+
/* @__PURE__ */ jsx7(
|
210
213
|
Switch,
|
211
214
|
{
|
212
215
|
defaultChecked: true,
|
@@ -214,9 +217,9 @@ function MyActionIconCheck(_a) {
|
|
214
217
|
}
|
215
218
|
),
|
216
219
|
/* @__PURE__ */ jsxs2(MyFlexColumn, { children: [
|
217
|
-
/* @__PURE__ */
|
218
|
-
/* @__PURE__ */
|
219
|
-
/* @__PURE__ */
|
220
|
+
/* @__PURE__ */ jsx7(MyTextInput, { label: "Nh\u1EADn x\xE9t" }),
|
221
|
+
/* @__PURE__ */ jsx7(Checkbox, { label: "G\u1EEDi mail th\xF4ng b\xE1o" }),
|
222
|
+
/* @__PURE__ */ jsx7(Button, { children: "C\u1EADp nh\u1EADp" })
|
220
223
|
] })
|
221
224
|
]
|
222
225
|
}
|
@@ -227,41 +230,41 @@ function MyActionIconCheck(_a) {
|
|
227
230
|
// src/components/Button/Button/MyButton.tsx
|
228
231
|
import { Button as Button2 } from "@mantine/core";
|
229
232
|
import { IconDeviceFloppy as IconDeviceFloppy2, IconEdit as IconEdit2, IconFileExport, IconFileImport, IconPlus as IconPlus2, IconPrinter, IconTrash as IconTrash2, IconX } from "@tabler/icons-react";
|
230
|
-
import { jsx as
|
233
|
+
import { jsx as jsx8 } from "react/jsx-runtime";
|
231
234
|
function MyButton(_a) {
|
232
235
|
var _b = _a, { children, crudType = "default" } = _b, rest = __objRest(_b, ["children", "crudType"]);
|
233
236
|
if (crudType == "default") {
|
234
|
-
return /* @__PURE__ */
|
237
|
+
return /* @__PURE__ */ jsx8(Button2, __spreadProps(__spreadValues({ color: "indigo" }, rest), { children }));
|
235
238
|
}
|
236
239
|
if (crudType == "create") {
|
237
|
-
return /* @__PURE__ */
|
240
|
+
return /* @__PURE__ */ jsx8(Button2, __spreadProps(__spreadValues({ color: "indigo", type: "submit", leftSection: /* @__PURE__ */ jsx8(IconPlus2, {}) }, rest), { children: children ? children : "L\u01B0u" }));
|
238
241
|
}
|
239
242
|
if (crudType == "createMultiple") {
|
240
|
-
return /* @__PURE__ */
|
243
|
+
return /* @__PURE__ */ jsx8(Button2, __spreadProps(__spreadValues({ color: "green", type: "submit", leftSection: /* @__PURE__ */ jsx8(IconPlus2, {}) }, rest), { children: children ? children : "Th\xEAm danh s\xE1ch" }));
|
241
244
|
}
|
242
245
|
if (crudType == "delete") {
|
243
|
-
return /* @__PURE__ */
|
246
|
+
return /* @__PURE__ */ jsx8(Button2, __spreadProps(__spreadValues({ color: "red", leftSection: /* @__PURE__ */ jsx8(IconTrash2, {}) }, rest), { children: children ? children : "X\xE1c nh\u1EADn x\xF3a" }));
|
244
247
|
}
|
245
248
|
if (crudType == "update") {
|
246
|
-
return /* @__PURE__ */
|
249
|
+
return /* @__PURE__ */ jsx8(Button2, __spreadProps(__spreadValues({ color: "yellow", type: "submit", leftSection: /* @__PURE__ */ jsx8(IconEdit2, {}) }, rest), { children: children ? children : "Ch\u1EC9nh s\u1EEDa" }));
|
247
250
|
}
|
248
251
|
if (crudType == "save") {
|
249
|
-
return /* @__PURE__ */
|
252
|
+
return /* @__PURE__ */ jsx8(Button2, __spreadProps(__spreadValues({ color: "blue", type: "submit", leftSection: /* @__PURE__ */ jsx8(IconDeviceFloppy2, {}) }, rest), { children: children ? children : "L\u01B0u" }));
|
250
253
|
}
|
251
254
|
if (crudType == "import") {
|
252
|
-
return /* @__PURE__ */
|
255
|
+
return /* @__PURE__ */ jsx8(Button2, __spreadProps(__spreadValues({ color: "green.8", leftSection: /* @__PURE__ */ jsx8(IconFileImport, {}) }, rest), { children: children ? children : "Import" }));
|
253
256
|
}
|
254
257
|
if (crudType == "print") {
|
255
|
-
return /* @__PURE__ */
|
258
|
+
return /* @__PURE__ */ jsx8(Button2, __spreadProps(__spreadValues({ color: "orange.7", leftSection: /* @__PURE__ */ jsx8(IconPrinter, {}) }, rest), { children: children ? children : "In" }));
|
256
259
|
}
|
257
260
|
if (crudType == "export") {
|
258
|
-
return /* @__PURE__ */
|
261
|
+
return /* @__PURE__ */ jsx8(Button2, __spreadProps(__spreadValues({ color: "green.8", leftSection: /* @__PURE__ */ jsx8(IconFileExport, {}) }, rest), { children: children ? children : "Export" }));
|
259
262
|
}
|
260
263
|
if (crudType == "cancel") {
|
261
|
-
return /* @__PURE__ */
|
264
|
+
return /* @__PURE__ */ jsx8(Button2, __spreadProps(__spreadValues({ color: "gray", leftSection: /* @__PURE__ */ jsx8(IconX, {}) }, rest), { children: children ? children : "H\u1EE7y thao t\xE1c" }));
|
262
265
|
}
|
263
266
|
if (crudType == "select") {
|
264
|
-
return /* @__PURE__ */
|
267
|
+
return /* @__PURE__ */ jsx8(Button2, __spreadProps(__spreadValues({}, rest), { children: children ? children : "Ch\u1ECDn" }));
|
265
268
|
}
|
266
269
|
}
|
267
270
|
|
@@ -274,7 +277,7 @@ import { useState as useState2 } from "react";
|
|
274
277
|
// src/components/ActionIcons/ActionIconModal/MyActionIconModal.tsx
|
275
278
|
import { ActionIcon as ActionIcon3, Modal as Modal2 } from "@mantine/core";
|
276
279
|
import { IconEdit as IconEdit3, IconPlus as IconPlus3, IconTrash as IconTrash3 } from "@tabler/icons-react";
|
277
|
-
import { Fragment as Fragment2, jsx as
|
280
|
+
import { Fragment as Fragment2, jsx as jsx9, jsxs as jsxs3 } from "react/jsx-runtime";
|
278
281
|
function MyActionIconModal(_a) {
|
279
282
|
var _b = _a, {
|
280
283
|
fullScreen = false,
|
@@ -295,8 +298,8 @@ function MyActionIconModal(_a) {
|
|
295
298
|
]);
|
296
299
|
if (!crudType) {
|
297
300
|
return /* @__PURE__ */ jsxs3(Fragment2, { children: [
|
298
|
-
/* @__PURE__ */
|
299
|
-
/* @__PURE__ */
|
301
|
+
/* @__PURE__ */ jsx9(ActionIcon3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "indigo" }, rest), { children: icon })),
|
302
|
+
/* @__PURE__ */ jsx9(
|
300
303
|
Modal2,
|
301
304
|
{
|
302
305
|
fullScreen,
|
@@ -304,15 +307,15 @@ function MyActionIconModal(_a) {
|
|
304
307
|
title,
|
305
308
|
opened: disclosure == null ? void 0 : disclosure[0],
|
306
309
|
onClose: disclosure[1].close,
|
307
|
-
children: /* @__PURE__ */
|
310
|
+
children: /* @__PURE__ */ jsx9(MyFlexColumn, { children })
|
308
311
|
}
|
309
312
|
)
|
310
313
|
] });
|
311
314
|
}
|
312
315
|
if (crudType == "create") {
|
313
316
|
return /* @__PURE__ */ jsxs3(Fragment2, { children: [
|
314
|
-
/* @__PURE__ */
|
315
|
-
/* @__PURE__ */
|
317
|
+
/* @__PURE__ */ jsx9(ActionIcon3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open }, rest), { children: icon ? icon : /* @__PURE__ */ jsx9(IconPlus3, {}) })),
|
318
|
+
/* @__PURE__ */ jsx9(
|
316
319
|
Modal2,
|
317
320
|
{
|
318
321
|
fullScreen,
|
@@ -320,15 +323,15 @@ function MyActionIconModal(_a) {
|
|
320
323
|
title: title ? title : "T\u1EA1o d\u1EEF li\u1EC7u m\u1EDBi",
|
321
324
|
opened: disclosure == null ? void 0 : disclosure[0],
|
322
325
|
onClose: disclosure[1].close,
|
323
|
-
children: /* @__PURE__ */
|
326
|
+
children: /* @__PURE__ */ jsx9(MyFlexColumn, { children })
|
324
327
|
}
|
325
328
|
)
|
326
329
|
] });
|
327
330
|
}
|
328
331
|
if (crudType == "update") {
|
329
332
|
return /* @__PURE__ */ jsxs3(Fragment2, { children: [
|
330
|
-
/* @__PURE__ */
|
331
|
-
/* @__PURE__ */
|
333
|
+
/* @__PURE__ */ jsx9(ActionIcon3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "yellow" }, rest), { children: icon ? icon : /* @__PURE__ */ jsx9(IconEdit3, {}) })),
|
334
|
+
/* @__PURE__ */ jsx9(
|
332
335
|
Modal2,
|
333
336
|
{
|
334
337
|
fullScreen,
|
@@ -336,15 +339,15 @@ function MyActionIconModal(_a) {
|
|
336
339
|
title: title ? title : "S\u1EEDa d\u1EEF li\u1EC7u",
|
337
340
|
opened: disclosure == null ? void 0 : disclosure[0],
|
338
341
|
onClose: disclosure[1].close,
|
339
|
-
children: /* @__PURE__ */
|
342
|
+
children: /* @__PURE__ */ jsx9(MyFlexColumn, { children })
|
340
343
|
}
|
341
344
|
)
|
342
345
|
] });
|
343
346
|
}
|
344
347
|
if (crudType == "delete") {
|
345
348
|
return /* @__PURE__ */ jsxs3(Fragment2, { children: [
|
346
|
-
/* @__PURE__ */
|
347
|
-
/* @__PURE__ */
|
349
|
+
/* @__PURE__ */ jsx9(ActionIcon3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "red" }, rest), { children: icon ? icon : /* @__PURE__ */ jsx9(IconTrash3, {}) })),
|
350
|
+
/* @__PURE__ */ jsx9(
|
348
351
|
Modal2,
|
349
352
|
{
|
350
353
|
fullScreen,
|
@@ -352,15 +355,15 @@ function MyActionIconModal(_a) {
|
|
352
355
|
title: title ? title : "X\xF3a d\u1EEF li\u1EC7u",
|
353
356
|
opened: disclosure == null ? void 0 : disclosure[0],
|
354
357
|
onClose: disclosure[1].close,
|
355
|
-
children: /* @__PURE__ */
|
358
|
+
children: /* @__PURE__ */ jsx9(MyFlexColumn, { children })
|
356
359
|
}
|
357
360
|
)
|
358
361
|
] });
|
359
362
|
}
|
360
363
|
if (crudType == "check") {
|
361
364
|
return /* @__PURE__ */ jsxs3(Fragment2, { children: [
|
362
|
-
/* @__PURE__ */
|
363
|
-
/* @__PURE__ */
|
365
|
+
/* @__PURE__ */ jsx9(ActionIcon3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "green" }, rest), { children: icon ? icon : /* @__PURE__ */ jsx9(IconTrash3, {}) })),
|
366
|
+
/* @__PURE__ */ jsx9(
|
364
367
|
Modal2,
|
365
368
|
{
|
366
369
|
fullScreen,
|
@@ -368,7 +371,7 @@ function MyActionIconModal(_a) {
|
|
368
371
|
title: title ? title : "Ki\u1EC3m tra",
|
369
372
|
opened: disclosure == null ? void 0 : disclosure[0],
|
370
373
|
onClose: disclosure[1].close,
|
371
|
-
children: /* @__PURE__ */
|
374
|
+
children: /* @__PURE__ */ jsx9(MyFlexColumn, { children })
|
372
375
|
}
|
373
376
|
)
|
374
377
|
] });
|
@@ -376,7 +379,7 @@ function MyActionIconModal(_a) {
|
|
376
379
|
}
|
377
380
|
|
378
381
|
// src/components/ActionIcons/ActionIconCRUD/MyActionIconDelete.tsx
|
379
|
-
import { jsx as
|
382
|
+
import { jsx as jsx10, jsxs as jsxs4 } from "react/jsx-runtime";
|
380
383
|
function MyActionIconDelete(_a) {
|
381
384
|
var _b = _a, {
|
382
385
|
onSubmit,
|
@@ -452,7 +455,7 @@ function MyActionIconDelete(_a) {
|
|
452
455
|
crudType: "delete"
|
453
456
|
}, rest), {
|
454
457
|
children: [
|
455
|
-
/* @__PURE__ */
|
458
|
+
/* @__PURE__ */ jsx10(
|
456
459
|
Highlight,
|
457
460
|
{
|
458
461
|
highlight: contextData || [],
|
@@ -466,7 +469,7 @@ function MyActionIconDelete(_a) {
|
|
466
469
|
}
|
467
470
|
),
|
468
471
|
/* @__PURE__ */ jsxs4(Group, { grow: true, children: [
|
469
|
-
/* @__PURE__ */
|
472
|
+
/* @__PURE__ */ jsx10(
|
470
473
|
MyButton,
|
471
474
|
{
|
472
475
|
crudType: "delete",
|
@@ -474,7 +477,7 @@ function MyActionIconDelete(_a) {
|
|
474
477
|
loading: loadingState[0]
|
475
478
|
}
|
476
479
|
),
|
477
|
-
/* @__PURE__ */
|
480
|
+
/* @__PURE__ */ jsx10(
|
478
481
|
MyButton,
|
479
482
|
{
|
480
483
|
crudType: "cancel",
|
@@ -491,7 +494,7 @@ function MyActionIconDelete(_a) {
|
|
491
494
|
import { useDisclosure as useDisclosure3 } from "@mantine/hooks";
|
492
495
|
import { useQueryClient as useQueryClient2 } from "@tanstack/react-query";
|
493
496
|
import { useEffect as useEffect2 } from "react";
|
494
|
-
import { jsx as
|
497
|
+
import { jsx as jsx11, jsxs as jsxs5 } from "react/jsx-runtime";
|
495
498
|
function MyActionIconUpdate(_a) {
|
496
499
|
var _b = _a, {
|
497
500
|
resetFormWhenclose,
|
@@ -563,11 +566,11 @@ function MyActionIconUpdate(_a) {
|
|
563
566
|
if (disc[0] == true) return;
|
564
567
|
form.reset();
|
565
568
|
}, [disc[0]]);
|
566
|
-
return /* @__PURE__ */
|
569
|
+
return /* @__PURE__ */ jsx11(MyActionIconModal, __spreadProps(__spreadValues({ disclosure: disc, crudType: "update" }, rest), { children: /* @__PURE__ */ jsx11("form", { onSubmit: form.onSubmit((values) => {
|
567
570
|
mutation.mutate(values);
|
568
571
|
}), children: /* @__PURE__ */ jsxs5(MyFlexColumn, { children: [
|
569
572
|
children,
|
570
|
-
/* @__PURE__ */
|
573
|
+
/* @__PURE__ */ jsx11(
|
571
574
|
MyButton,
|
572
575
|
{
|
573
576
|
type: "submit",
|
@@ -580,9 +583,9 @@ function MyActionIconUpdate(_a) {
|
|
580
583
|
// src/components/ActionIcons/ActionIconDownloadPDF/MyActionIconDownloadPDF.tsx
|
581
584
|
import { ActionIcon as ActionIcon4, Tooltip as Tooltip2 } from "@mantine/core";
|
582
585
|
import { IconDownload } from "@tabler/icons-react";
|
583
|
-
import { jsx as
|
586
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
584
587
|
function MyActionIconDownloadPDF({ pdfLink = "https://datafiles.chinhphu.vn/cpp/files/vbpq/2021/07/17-bgd.signed.pdf" }) {
|
585
|
-
return /* @__PURE__ */
|
588
|
+
return /* @__PURE__ */ jsx12(Tooltip2, { label: "Nh\u1EA5p \u0111\u1EC3 t\u1EA3i xu\u1ED1ng", children: /* @__PURE__ */ jsx12(ActionIcon4, { onClick: async () => await utils_pdf_download(pdfLink), color: "red", children: /* @__PURE__ */ jsx12(IconDownload, {}) }) });
|
586
589
|
}
|
587
590
|
|
588
591
|
// src/components/ActionIcons/ActionIconUpload/MyActionIconUpload.tsx
|
@@ -590,10 +593,10 @@ import { ActionIcon as ActionIcon5 } from "@mantine/core";
|
|
590
593
|
import { Dropzone, MIME_TYPES } from "@mantine/dropzone";
|
591
594
|
import { IconCloudUpload } from "@tabler/icons-react";
|
592
595
|
import { useRef } from "react";
|
593
|
-
import { jsx as
|
596
|
+
import { jsx as jsx13 } from "react/jsx-runtime";
|
594
597
|
function MyActionIconUpload() {
|
595
598
|
const openRef = useRef(null);
|
596
|
-
return /* @__PURE__ */
|
599
|
+
return /* @__PURE__ */ jsx13(
|
597
600
|
Dropzone,
|
598
601
|
{
|
599
602
|
openRef,
|
@@ -601,7 +604,7 @@ function MyActionIconUpload() {
|
|
601
604
|
},
|
602
605
|
radius: "md",
|
603
606
|
accept: [MIME_TYPES.pdf],
|
604
|
-
children: /* @__PURE__ */
|
607
|
+
children: /* @__PURE__ */ jsx13(ActionIcon5, { children: /* @__PURE__ */ jsx13(IconCloudUpload, {}) })
|
605
608
|
}
|
606
609
|
);
|
607
610
|
}
|
@@ -611,7 +614,7 @@ import { ActionIcon as ActionIcon6, Group as Group2, Modal as Modal3, Paper, Tex
|
|
611
614
|
import { useDisclosure as useDisclosure4 } from "@mantine/hooks";
|
612
615
|
import { IconLivePhoto, IconMaximize, IconMinimize } from "@tabler/icons-react";
|
613
616
|
import { useState as useState3 } from "react";
|
614
|
-
import { Fragment as Fragment3, jsx as
|
617
|
+
import { Fragment as Fragment3, jsx as jsx14, jsxs as jsxs6 } from "react/jsx-runtime";
|
615
618
|
function MyActionIconViewPDF(_a) {
|
616
619
|
var _b = _a, {
|
617
620
|
modalSize = "80%",
|
@@ -624,8 +627,8 @@ function MyActionIconViewPDF(_a) {
|
|
624
627
|
const fullScreen = useState3(false);
|
625
628
|
const hSize = useState3("80vh");
|
626
629
|
return /* @__PURE__ */ jsxs6(Fragment3, { children: [
|
627
|
-
/* @__PURE__ */
|
628
|
-
/* @__PURE__ */
|
630
|
+
/* @__PURE__ */ jsx14(Tooltip3, { label: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp", children: /* @__PURE__ */ jsx14(ActionIcon6, __spreadProps(__spreadValues({ color: "cyan", onClick: disc[1].open }, rest), { children: /* @__PURE__ */ jsx14(IconLivePhoto, {}) })) }),
|
631
|
+
/* @__PURE__ */ jsx14(
|
629
632
|
Modal3,
|
630
633
|
{
|
631
634
|
fullScreen: fullScreen[0],
|
@@ -633,28 +636,28 @@ function MyActionIconViewPDF(_a) {
|
|
633
636
|
onClose: disc[1].close,
|
634
637
|
size: modalSize,
|
635
638
|
title: /* @__PURE__ */ jsxs6(Group2, { children: [
|
636
|
-
/* @__PURE__ */
|
637
|
-
fullScreen[0] ? /* @__PURE__ */
|
639
|
+
/* @__PURE__ */ jsx14(Text3, { children: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp" }),
|
640
|
+
fullScreen[0] ? /* @__PURE__ */ jsx14(
|
638
641
|
ActionIcon6,
|
639
642
|
{
|
640
643
|
onClick: () => {
|
641
644
|
fullScreen[1](false);
|
642
645
|
hSize[1]("80vh");
|
643
646
|
},
|
644
|
-
children: /* @__PURE__ */
|
647
|
+
children: /* @__PURE__ */ jsx14(IconMinimize, {})
|
645
648
|
}
|
646
|
-
) : /* @__PURE__ */
|
649
|
+
) : /* @__PURE__ */ jsx14(
|
647
650
|
ActionIcon6,
|
648
651
|
{
|
649
652
|
onClick: () => {
|
650
653
|
fullScreen[1](true);
|
651
654
|
hSize[1]("90vh");
|
652
655
|
},
|
653
|
-
children: /* @__PURE__ */
|
656
|
+
children: /* @__PURE__ */ jsx14(IconMaximize, {})
|
654
657
|
}
|
655
658
|
)
|
656
659
|
] }),
|
657
|
-
children: /* @__PURE__ */
|
660
|
+
children: /* @__PURE__ */ jsx14(Paper, { h: hSize[0], p: "lg", children: /* @__PURE__ */ jsx14("iframe", { src: pdfLink, width: "100%", height: "100%" }) })
|
658
661
|
}
|
659
662
|
)
|
660
663
|
] });
|
@@ -664,7 +667,7 @@ function MyActionIconViewPDF(_a) {
|
|
664
667
|
import { useEffect as useEffect3, useState as useState4 } from "react";
|
665
668
|
import { ActionIcon as ActionIcon7, useComputedColorScheme, useMantineColorScheme } from "@mantine/core";
|
666
669
|
import { IconMoon, IconSun } from "@tabler/icons-react";
|
667
|
-
import { jsx as
|
670
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
668
671
|
function MySwitchTheme() {
|
669
672
|
const { setColorScheme } = useMantineColorScheme();
|
670
673
|
const computedColorScheme = useComputedColorScheme("light", {
|
@@ -675,7 +678,7 @@ function MySwitchTheme() {
|
|
675
678
|
setMounted(true);
|
676
679
|
}, []);
|
677
680
|
if (!mounted) return null;
|
678
|
-
return /* @__PURE__ */
|
681
|
+
return /* @__PURE__ */ jsx15(
|
679
682
|
ActionIcon7,
|
680
683
|
{
|
681
684
|
onClick: () => setColorScheme(computedColorScheme === "light" ? "dark" : "light"),
|
@@ -683,7 +686,7 @@ function MySwitchTheme() {
|
|
683
686
|
size: "lg",
|
684
687
|
radius: "md",
|
685
688
|
"aria-label": "Toggle color scheme",
|
686
|
-
children: computedColorScheme === "dark" ? /* @__PURE__ */
|
689
|
+
children: computedColorScheme === "dark" ? /* @__PURE__ */ jsx15(IconSun, { width: "22px", height: "22px", stroke: 1.5 }) : /* @__PURE__ */ jsx15(IconMoon, { width: "22px", height: "22px", stroke: 1.5 })
|
687
690
|
}
|
688
691
|
);
|
689
692
|
}
|
@@ -699,7 +702,7 @@ import { Spotlight, spotlight } from "@mantine/spotlight";
|
|
699
702
|
import { IconSearch } from "@tabler/icons-react";
|
700
703
|
import { usePathname, useRouter } from "next/navigation";
|
701
704
|
import { useMemo, useState as useState5 } from "react";
|
702
|
-
import { Fragment as Fragment4, jsx as
|
705
|
+
import { Fragment as Fragment4, jsx as jsx16, jsxs as jsxs7 } from "react/jsx-runtime";
|
703
706
|
function MyAppSpotlight({ menu }) {
|
704
707
|
const router = useRouter();
|
705
708
|
const pathName = usePathname();
|
@@ -725,7 +728,7 @@ function MyAppSpotlight({ menu }) {
|
|
725
728
|
return item.label.toLowerCase().includes(lowerQuery) || ((_a = item.note) == null ? void 0 : _a.toLowerCase().includes(lowerQuery)) || ((_b = item.link) == null ? void 0 : _b.toLowerCase().includes(lowerQuery));
|
726
729
|
});
|
727
730
|
return /* @__PURE__ */ jsxs7(Fragment4, { children: [
|
728
|
-
/* @__PURE__ */
|
731
|
+
/* @__PURE__ */ jsx16(
|
729
732
|
TextInput2,
|
730
733
|
{
|
731
734
|
mt: "md",
|
@@ -733,7 +736,7 @@ function MyAppSpotlight({ menu }) {
|
|
733
736
|
mx: 10,
|
734
737
|
component: "button",
|
735
738
|
onClick: spotlight.open,
|
736
|
-
leftSection: /* @__PURE__ */
|
739
|
+
leftSection: /* @__PURE__ */ jsx16(IconSearch, {}),
|
737
740
|
children: "T\xECm ki\u1EBFm (Ctrl + K)"
|
738
741
|
}
|
739
742
|
),
|
@@ -743,14 +746,14 @@ function MyAppSpotlight({ menu }) {
|
|
743
746
|
query,
|
744
747
|
onQueryChange: setQuery,
|
745
748
|
children: [
|
746
|
-
/* @__PURE__ */
|
749
|
+
/* @__PURE__ */ jsx16(
|
747
750
|
Spotlight.Search,
|
748
751
|
{
|
749
752
|
placeholder: "T\xECm ki\u1EBFm menu...",
|
750
|
-
leftSection: /* @__PURE__ */
|
753
|
+
leftSection: /* @__PURE__ */ jsx16(IconSearch, { stroke: 1.5 })
|
751
754
|
}
|
752
755
|
),
|
753
|
-
/* @__PURE__ */
|
756
|
+
/* @__PURE__ */ jsx16(Spotlight.ActionsList, { mah: "70vh", children: filteredItems.length > 0 ? filteredItems.map((item, idx) => /* @__PURE__ */ jsx16(
|
754
757
|
Spotlight.Action,
|
755
758
|
{
|
756
759
|
onClick: () => {
|
@@ -761,9 +764,9 @@ function MyAppSpotlight({ menu }) {
|
|
761
764
|
},
|
762
765
|
children: /* @__PURE__ */ jsxs7(Group3, { wrap: "nowrap", w: "100%", children: [
|
763
766
|
/* @__PURE__ */ jsxs7("div", { style: { flex: 1 }, children: [
|
764
|
-
/* @__PURE__ */
|
767
|
+
/* @__PURE__ */ jsx16(Text4, { children: item.label }),
|
765
768
|
/* @__PURE__ */ jsxs7(Group3, { gap: 5, children: [
|
766
|
-
item.note && /* @__PURE__ */
|
769
|
+
item.note && /* @__PURE__ */ jsx16(Text4, { opacity: 0.6, size: "xs", children: item.note }),
|
767
770
|
/* @__PURE__ */ jsxs7(Text4, { opacity: 0.6, size: "xs", children: [
|
768
771
|
"(",
|
769
772
|
item.link,
|
@@ -771,11 +774,11 @@ function MyAppSpotlight({ menu }) {
|
|
771
774
|
] })
|
772
775
|
] })
|
773
776
|
] }),
|
774
|
-
item.status && item.status != "Default" && /* @__PURE__ */
|
777
|
+
item.status && item.status != "Default" && /* @__PURE__ */ jsx16(Badge, { variant: "default", children: item.status })
|
775
778
|
] })
|
776
779
|
},
|
777
780
|
idx
|
778
|
-
)) : /* @__PURE__ */
|
781
|
+
)) : /* @__PURE__ */ jsx16(Spotlight.Empty, { children: "Kh\xF4ng t\xECm th\u1EA5y trang..." }) })
|
779
782
|
]
|
780
783
|
}
|
781
784
|
)
|
@@ -787,14 +790,14 @@ import { ActionIcon as ActionIcon8, Anchor, Group as Group4, Modal as Modal4, Pa
|
|
787
790
|
import { useDisclosure as useDisclosure5 } from "@mantine/hooks";
|
788
791
|
import { IconMaximize as IconMaximize2, IconMinimize as IconMinimize2 } from "@tabler/icons-react";
|
789
792
|
import { useState as useState6 } from "react";
|
790
|
-
import { Fragment as Fragment5, jsx as
|
793
|
+
import { Fragment as Fragment5, jsx as jsx17, jsxs as jsxs8 } from "react/jsx-runtime";
|
791
794
|
function MyAnchorViewPDF({ label, pdfLink }) {
|
792
795
|
const disc = useDisclosure5(false);
|
793
796
|
const fullScreen = useState6(false);
|
794
797
|
const hSize = useState6("80vh");
|
795
798
|
return /* @__PURE__ */ jsxs8(Fragment5, { children: [
|
796
|
-
/* @__PURE__ */
|
797
|
-
/* @__PURE__ */
|
799
|
+
/* @__PURE__ */ jsx17(Anchor, { onClick: disc[1].open, children: label }),
|
800
|
+
/* @__PURE__ */ jsx17(
|
798
801
|
Modal4,
|
799
802
|
{
|
800
803
|
fullScreen: fullScreen[0],
|
@@ -802,28 +805,28 @@ function MyAnchorViewPDF({ label, pdfLink }) {
|
|
802
805
|
onClose: disc[1].close,
|
803
806
|
size: "80%",
|
804
807
|
title: /* @__PURE__ */ jsxs8(Group4, { children: [
|
805
|
-
/* @__PURE__ */
|
806
|
-
fullScreen[0] ? /* @__PURE__ */
|
808
|
+
/* @__PURE__ */ jsx17(Text5, { children: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp" }),
|
809
|
+
fullScreen[0] ? /* @__PURE__ */ jsx17(
|
807
810
|
ActionIcon8,
|
808
811
|
{
|
809
812
|
onClick: () => {
|
810
813
|
fullScreen[1](false);
|
811
814
|
hSize[1]("80vh");
|
812
815
|
},
|
813
|
-
children: /* @__PURE__ */
|
816
|
+
children: /* @__PURE__ */ jsx17(IconMinimize2, {})
|
814
817
|
}
|
815
|
-
) : /* @__PURE__ */
|
818
|
+
) : /* @__PURE__ */ jsx17(
|
816
819
|
ActionIcon8,
|
817
820
|
{
|
818
821
|
onClick: () => {
|
819
822
|
fullScreen[1](true);
|
820
823
|
hSize[1]("90vh");
|
821
824
|
},
|
822
|
-
children: /* @__PURE__ */
|
825
|
+
children: /* @__PURE__ */ jsx17(IconMaximize2, {})
|
823
826
|
}
|
824
827
|
)
|
825
828
|
] }),
|
826
|
-
children: /* @__PURE__ */
|
829
|
+
children: /* @__PURE__ */ jsx17(Paper2, { h: hSize[0], children: /* @__PURE__ */ jsx17("iframe", { src: pdfLink, width: "100%", height: "100%" }) })
|
827
830
|
}
|
828
831
|
)
|
829
832
|
] });
|
@@ -839,7 +842,7 @@ import * as XLSX from "xlsx";
|
|
839
842
|
// src/components/Button/ButtonModal/MyButtonModal.tsx
|
840
843
|
import { Button as Button3, Modal as Modal5 } from "@mantine/core";
|
841
844
|
import { IconEdit as IconEdit4, IconPlus as IconPlus4, IconTrash as IconTrash4 } from "@tabler/icons-react";
|
842
|
-
import { Fragment as Fragment6, jsx as
|
845
|
+
import { Fragment as Fragment6, jsx as jsx18, jsxs as jsxs9 } from "react/jsx-runtime";
|
843
846
|
function MyButtonModal(_a) {
|
844
847
|
var _b = _a, {
|
845
848
|
fullScreen = false,
|
@@ -863,8 +866,8 @@ function MyButtonModal(_a) {
|
|
863
866
|
const objectNameLower = objectName == null ? void 0 : objectName.toLowerCase();
|
864
867
|
if (crudType == "default") {
|
865
868
|
return /* @__PURE__ */ jsxs9(Fragment6, { children: [
|
866
|
-
/* @__PURE__ */
|
867
|
-
/* @__PURE__ */
|
869
|
+
/* @__PURE__ */ jsx18(Button3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "indigo" }, rest), { children: label })),
|
870
|
+
/* @__PURE__ */ jsx18(
|
868
871
|
Modal5,
|
869
872
|
{
|
870
873
|
fullScreen,
|
@@ -872,15 +875,15 @@ function MyButtonModal(_a) {
|
|
872
875
|
title,
|
873
876
|
opened: disclosure == null ? void 0 : disclosure[0],
|
874
877
|
onClose: disclosure[1].close,
|
875
|
-
children: /* @__PURE__ */
|
878
|
+
children: /* @__PURE__ */ jsx18(MyFlexColumn, { children })
|
876
879
|
}
|
877
880
|
)
|
878
881
|
] });
|
879
882
|
}
|
880
883
|
if (crudType == "create") {
|
881
884
|
return /* @__PURE__ */ jsxs9(Fragment6, { children: [
|
882
|
-
/* @__PURE__ */
|
883
|
-
/* @__PURE__ */
|
885
|
+
/* @__PURE__ */ jsx18(Button3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, leftSection: /* @__PURE__ */ jsx18(IconPlus4, {}) }, rest), { children: label ? label : `Th\xEAm` })),
|
886
|
+
/* @__PURE__ */ jsx18(
|
884
887
|
Modal5,
|
885
888
|
{
|
886
889
|
fullScreen,
|
@@ -888,15 +891,15 @@ function MyButtonModal(_a) {
|
|
888
891
|
title: title ? title : `T\u1EA1o ${objectNameLower} m\u1EDBi`,
|
889
892
|
opened: disclosure == null ? void 0 : disclosure[0],
|
890
893
|
onClose: disclosure[1].close,
|
891
|
-
children: /* @__PURE__ */
|
894
|
+
children: /* @__PURE__ */ jsx18(MyFlexColumn, { children })
|
892
895
|
}
|
893
896
|
)
|
894
897
|
] });
|
895
898
|
}
|
896
899
|
if (crudType == "createMultiple") {
|
897
900
|
return /* @__PURE__ */ jsxs9(Fragment6, { children: [
|
898
|
-
/* @__PURE__ */
|
899
|
-
/* @__PURE__ */
|
901
|
+
/* @__PURE__ */ jsx18(Button3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "green", leftSection: /* @__PURE__ */ jsx18(IconPlus4, {}) }, rest), { children: label ? label : `Import ${objectNameLower}` })),
|
902
|
+
/* @__PURE__ */ jsx18(
|
900
903
|
Modal5,
|
901
904
|
{
|
902
905
|
fullScreen,
|
@@ -904,15 +907,15 @@ function MyButtonModal(_a) {
|
|
904
907
|
title: title ? title : `Th\xEAm danh s\xE1ch ${objectNameLower}`,
|
905
908
|
opened: disclosure == null ? void 0 : disclosure[0],
|
906
909
|
onClose: disclosure[1].close,
|
907
|
-
children: /* @__PURE__ */
|
910
|
+
children: /* @__PURE__ */ jsx18(MyFlexColumn, { children })
|
908
911
|
}
|
909
912
|
)
|
910
913
|
] });
|
911
914
|
}
|
912
915
|
if (crudType == "update") {
|
913
916
|
return /* @__PURE__ */ jsxs9(Fragment6, { children: [
|
914
|
-
/* @__PURE__ */
|
915
|
-
/* @__PURE__ */
|
917
|
+
/* @__PURE__ */ jsx18(Button3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "yellow", leftSection: /* @__PURE__ */ jsx18(IconEdit4, {}) }, rest), { children: label ? label : `Ch\u1EC9nh s\u1EEDa ${objectNameLower}` })),
|
918
|
+
/* @__PURE__ */ jsx18(
|
916
919
|
Modal5,
|
917
920
|
{
|
918
921
|
fullScreen,
|
@@ -920,15 +923,15 @@ function MyButtonModal(_a) {
|
|
920
923
|
title: title ? title : `Ch\u1EC9nh s\u1EEDa ${objectNameLower}`,
|
921
924
|
opened: disclosure == null ? void 0 : disclosure[0],
|
922
925
|
onClose: disclosure[1].close,
|
923
|
-
children: /* @__PURE__ */
|
926
|
+
children: /* @__PURE__ */ jsx18(MyFlexColumn, { children })
|
924
927
|
}
|
925
928
|
)
|
926
929
|
] });
|
927
930
|
}
|
928
931
|
if (crudType == "delete") {
|
929
932
|
return /* @__PURE__ */ jsxs9(Fragment6, { children: [
|
930
|
-
/* @__PURE__ */
|
931
|
-
/* @__PURE__ */
|
933
|
+
/* @__PURE__ */ jsx18(Button3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "red", leftSection: /* @__PURE__ */ jsx18(IconTrash4, {}) }, rest), { children: label ? label : `X\xF3a ${objectNameLower}` })),
|
934
|
+
/* @__PURE__ */ jsx18(
|
932
935
|
Modal5,
|
933
936
|
{
|
934
937
|
fullScreen,
|
@@ -936,7 +939,7 @@ function MyButtonModal(_a) {
|
|
936
939
|
title: title ? title : `X\xF3a ${objectNameLower}`,
|
937
940
|
opened: disclosure == null ? void 0 : disclosure[0],
|
938
941
|
onClose: disclosure[1].close,
|
939
|
-
children: /* @__PURE__ */
|
942
|
+
children: /* @__PURE__ */ jsx18(MyFlexColumn, { children })
|
940
943
|
}
|
941
944
|
)
|
942
945
|
] });
|
@@ -944,7 +947,7 @@ function MyButtonModal(_a) {
|
|
944
947
|
}
|
945
948
|
|
946
949
|
// src/components/Button/ButtonCRUD/AQButtonCreateByImportFile.tsx
|
947
|
-
import { jsx as
|
950
|
+
import { jsx as jsx19, jsxs as jsxs10 } from "react/jsx-runtime";
|
948
951
|
function AQButtonCreateByImportFile(_a) {
|
949
952
|
var _b = _a, {
|
950
953
|
form,
|
@@ -993,12 +996,12 @@ function AQButtonCreateByImportFile(_a) {
|
|
993
996
|
};
|
994
997
|
reader.readAsArrayBuffer(file);
|
995
998
|
};
|
996
|
-
return /* @__PURE__ */
|
999
|
+
return /* @__PURE__ */ jsx19(MyButtonModal, __spreadProps(__spreadValues({ disclosure: disc, crudType: "createMultiple" }, rest), { children: /* @__PURE__ */ jsx19("form", { onSubmit: form.onSubmit((values) => {
|
997
1000
|
}), children: /* @__PURE__ */ jsxs10(MyFlexColumn, { children: [
|
998
|
-
/* @__PURE__ */
|
1001
|
+
/* @__PURE__ */ jsx19(
|
999
1002
|
FileInput,
|
1000
1003
|
{
|
1001
|
-
leftSection: /* @__PURE__ */
|
1004
|
+
leftSection: /* @__PURE__ */ jsx19(IconFileTypeXls, {}),
|
1002
1005
|
accept: ".xlsx",
|
1003
1006
|
description: "\u0110\u1ECBnh d\u1EA1ng h\u1EE3p l\u1EC7: .xlsx",
|
1004
1007
|
label: "Ch\u1ECDn file",
|
@@ -1007,7 +1010,7 @@ function AQButtonCreateByImportFile(_a) {
|
|
1007
1010
|
placeholder: "Ch\u1ECDn file"
|
1008
1011
|
}
|
1009
1012
|
),
|
1010
|
-
/* @__PURE__ */
|
1013
|
+
/* @__PURE__ */ jsx19(MyButton, { type: "submit", crudType: "createMultiple" })
|
1011
1014
|
] }) }) }));
|
1012
1015
|
}
|
1013
1016
|
|
@@ -1015,7 +1018,7 @@ function AQButtonCreateByImportFile(_a) {
|
|
1015
1018
|
import { Button as Button4 } from "@mantine/core";
|
1016
1019
|
import { IconDownload as IconDownload2 } from "@tabler/icons-react";
|
1017
1020
|
import * as XLSX2 from "xlsx";
|
1018
|
-
import { jsx as
|
1021
|
+
import { jsx as jsx20 } from "react/jsx-runtime";
|
1019
1022
|
function AQButtonExportData({
|
1020
1023
|
isAllData,
|
1021
1024
|
objectName,
|
@@ -1041,7 +1044,7 @@ function AQButtonExportData({
|
|
1041
1044
|
XLSX2.utils.book_append_sheet(workbook, worksheet, "Exported Data");
|
1042
1045
|
XLSX2.writeFile(workbook, `${objectName}.xlsx`);
|
1043
1046
|
};
|
1044
|
-
return /* @__PURE__ */
|
1047
|
+
return /* @__PURE__ */ jsx20(
|
1045
1048
|
Button4,
|
1046
1049
|
{
|
1047
1050
|
disabled: data.length === 0,
|
@@ -1051,7 +1054,7 @@ function AQButtonExportData({
|
|
1051
1054
|
event.preventDefault();
|
1052
1055
|
handleExport();
|
1053
1056
|
},
|
1054
|
-
leftSection: /* @__PURE__ */
|
1057
|
+
leftSection: /* @__PURE__ */ jsx20(IconDownload2, {}),
|
1055
1058
|
children: "Export"
|
1056
1059
|
}
|
1057
1060
|
);
|
@@ -1060,7 +1063,7 @@ function AQButtonExportData({
|
|
1060
1063
|
// src/components/Button/ButtonCRUD/MyButtonCreate.tsx
|
1061
1064
|
import { useDisclosure as useDisclosure7 } from "@mantine/hooks";
|
1062
1065
|
import { useQueryClient as useQueryClient4 } from "@tanstack/react-query";
|
1063
|
-
import { jsx as
|
1066
|
+
import { jsx as jsx21, jsxs as jsxs11 } from "react/jsx-runtime";
|
1064
1067
|
function MyButtonCreate(_a) {
|
1065
1068
|
var _b = _a, {
|
1066
1069
|
form,
|
@@ -1124,11 +1127,11 @@ function MyButtonCreate(_a) {
|
|
1124
1127
|
}
|
1125
1128
|
})
|
1126
1129
|
});
|
1127
|
-
return /* @__PURE__ */
|
1130
|
+
return /* @__PURE__ */ jsx21(MyButtonModal, __spreadProps(__spreadValues({ disclosure, crudType: "create" }, rest), { children: /* @__PURE__ */ jsx21("form", { onSubmit: form.onSubmit((values) => {
|
1128
1131
|
mutation.mutate(values);
|
1129
1132
|
}), children: /* @__PURE__ */ jsxs11(MyFlexColumn, { children: [
|
1130
1133
|
children,
|
1131
|
-
/* @__PURE__ */
|
1134
|
+
/* @__PURE__ */ jsx21(MyButton, { type: "submit", crudType: "save" })
|
1132
1135
|
] }) }) }));
|
1133
1136
|
}
|
1134
1137
|
|
@@ -1137,7 +1140,7 @@ import { Group as Group5, Highlight as Highlight2 } from "@mantine/core";
|
|
1137
1140
|
import { useDisclosure as useDisclosure8 } from "@mantine/hooks";
|
1138
1141
|
import { useMutation as useMutation2, useQueryClient as useQueryClient5 } from "@tanstack/react-query";
|
1139
1142
|
import { useState as useState7 } from "react";
|
1140
|
-
import { jsx as
|
1143
|
+
import { jsx as jsx22, jsxs as jsxs12 } from "react/jsx-runtime";
|
1141
1144
|
function MyButtonDeleteList(_a) {
|
1142
1145
|
var _b = _a, {
|
1143
1146
|
onSubmit,
|
@@ -1184,7 +1187,7 @@ function MyButtonDeleteList(_a) {
|
|
1184
1187
|
disabled: contextData == void 0 || contextData.length == 0
|
1185
1188
|
}, rest), {
|
1186
1189
|
children: [
|
1187
|
-
/* @__PURE__ */
|
1190
|
+
/* @__PURE__ */ jsx22(
|
1188
1191
|
Highlight2,
|
1189
1192
|
{
|
1190
1193
|
highlight: contextData || [],
|
@@ -1198,7 +1201,7 @@ function MyButtonDeleteList(_a) {
|
|
1198
1201
|
}
|
1199
1202
|
),
|
1200
1203
|
/* @__PURE__ */ jsxs12(Group5, { grow: true, children: [
|
1201
|
-
/* @__PURE__ */
|
1204
|
+
/* @__PURE__ */ jsx22(
|
1202
1205
|
MyButton,
|
1203
1206
|
{
|
1204
1207
|
crudType: "delete",
|
@@ -1206,7 +1209,7 @@ function MyButtonDeleteList(_a) {
|
|
1206
1209
|
loading: loadingState[0]
|
1207
1210
|
}
|
1208
1211
|
),
|
1209
|
-
/* @__PURE__ */
|
1212
|
+
/* @__PURE__ */ jsx22(
|
1210
1213
|
MyButton,
|
1211
1214
|
{
|
1212
1215
|
crudType: "cancel",
|
@@ -1220,23 +1223,23 @@ function MyButtonDeleteList(_a) {
|
|
1220
1223
|
}
|
1221
1224
|
|
1222
1225
|
// src/components/Button/ButtonImport/MyButtonImport.tsx
|
1223
|
-
import { Button as
|
1226
|
+
import { Button as Button8, Modal as Modal8, useModalsStack as useModalsStack3 } from "@mantine/core";
|
1224
1227
|
import { IconFileImport as IconFileImport2 } from "@tabler/icons-react";
|
1225
1228
|
|
1226
1229
|
// src/components/Combobox/Select/MySelect.tsx
|
1227
1230
|
import { Select } from "@mantine/core";
|
1228
|
-
import { jsx as
|
1231
|
+
import { jsx as jsx23 } from "react/jsx-runtime";
|
1229
1232
|
function MySelect(_a) {
|
1230
1233
|
var _b = _a, { label } = _b, rest = __objRest(_b, ["label"]);
|
1231
|
-
return /* @__PURE__ */
|
1234
|
+
return /* @__PURE__ */ jsx23(Select, __spreadValues({ label, placeholder: label ? `Ch\u1ECDn ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
|
1232
1235
|
}
|
1233
1236
|
|
1234
1237
|
// src/components/Layouts/FlexEnd/MyFlexEnd.tsx
|
1235
1238
|
import { Group as Group6 } from "@mantine/core";
|
1236
|
-
import { jsx as
|
1239
|
+
import { jsx as jsx24 } from "react/jsx-runtime";
|
1237
1240
|
function MyFlexEnd(_a) {
|
1238
1241
|
var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
|
1239
|
-
return /* @__PURE__ */
|
1242
|
+
return /* @__PURE__ */ jsx24(Group6, __spreadProps(__spreadValues({ justify: "end", mt: "md" }, rest), { children }));
|
1240
1243
|
}
|
1241
1244
|
|
1242
1245
|
// src/components/Button/ButtonImport/SelectFieldModal.tsx
|
@@ -1394,7 +1397,7 @@ function useS_ButtonImport() {
|
|
1394
1397
|
}
|
1395
1398
|
|
1396
1399
|
// src/components/Button/ButtonImport/SelectFieldModal.tsx
|
1397
|
-
import { jsx as
|
1400
|
+
import { jsx as jsx25, jsxs as jsxs13 } from "react/jsx-runtime";
|
1398
1401
|
function SelectFieldModal({ stack, onImport }) {
|
1399
1402
|
var _a, _b;
|
1400
1403
|
const store = useS_ButtonImport();
|
@@ -1402,91 +1405,91 @@ function SelectFieldModal({ stack, onImport }) {
|
|
1402
1405
|
/* @__PURE__ */ jsxs13(SimpleGrid, { cols: { base: 1, lg: 2 }, children: [
|
1403
1406
|
/* @__PURE__ */ jsxs13(Fieldset, { legend: "Danh s\xE1ch tr\u01B0\u1EDDng th\xF4ng tin", children: [
|
1404
1407
|
/* @__PURE__ */ jsxs13(Table, { stickyHeader: true, stickyHeaderOffset: 60, children: [
|
1405
|
-
/* @__PURE__ */
|
1406
|
-
/* @__PURE__ */
|
1407
|
-
/* @__PURE__ */
|
1408
|
+
/* @__PURE__ */ jsx25(Table.Thead, { bg: "cyan", children: /* @__PURE__ */ jsxs13(Table.Tr, { children: [
|
1409
|
+
/* @__PURE__ */ jsx25(Table.Th, { children: "M\xE3 field" }),
|
1410
|
+
/* @__PURE__ */ jsx25(Table.Th, { children: "T\xEAn field" })
|
1408
1411
|
] }) }),
|
1409
|
-
/* @__PURE__ */
|
1412
|
+
/* @__PURE__ */ jsx25(Table.Tbody, { children: (_a = store.state.fieldConfig) == null ? void 0 : _a.filter((item) => item.isSelected == false || item.isSelected == void 0).map((item, idx) => /* @__PURE__ */ jsxs13(
|
1410
1413
|
Table.Tr,
|
1411
1414
|
{
|
1412
1415
|
style: { cursor: "pointer" },
|
1413
1416
|
children: [
|
1414
|
-
/* @__PURE__ */
|
1415
|
-
/* @__PURE__ */
|
1417
|
+
/* @__PURE__ */ jsx25(Table.Td, { onClick: () => store.changeSelected(item.fieldKey.toString(), true), children: item.fieldKey.toString() }),
|
1418
|
+
/* @__PURE__ */ jsx25(Table.Td, { onClick: () => store.changeSelected(item.fieldKey.toString(), true), children: item.fieldName })
|
1416
1419
|
]
|
1417
1420
|
},
|
1418
1421
|
idx
|
1419
1422
|
)) })
|
1420
1423
|
] }),
|
1421
|
-
/* @__PURE__ */
|
1422
|
-
/* @__PURE__ */
|
1424
|
+
/* @__PURE__ */ jsx25(Space2, {}),
|
1425
|
+
/* @__PURE__ */ jsx25(Group7, { children: /* @__PURE__ */ jsx25(
|
1423
1426
|
Button5,
|
1424
1427
|
{
|
1425
1428
|
onClick: () => {
|
1426
1429
|
store.changeAllSelected(true);
|
1427
1430
|
},
|
1428
|
-
leftSection: /* @__PURE__ */
|
1431
|
+
leftSection: /* @__PURE__ */ jsx25(IconArrowBigRight, {}),
|
1429
1432
|
children: "Chuy\u1EC3n t\u1EA5t c\u1EA3"
|
1430
1433
|
}
|
1431
1434
|
) })
|
1432
1435
|
] }),
|
1433
1436
|
/* @__PURE__ */ jsxs13(Fieldset, { legend: "Danh s\xE1ch tr\u01B0\u1EDDng th\xF4ng tin \u0111\u01B0\u1EE3c ch\u1ECDn", children: [
|
1434
1437
|
/* @__PURE__ */ jsxs13(Table, { stickyHeader: true, stickyHeaderOffset: 60, children: [
|
1435
|
-
/* @__PURE__ */
|
1436
|
-
/* @__PURE__ */
|
1437
|
-
/* @__PURE__ */
|
1438
|
-
/* @__PURE__ */
|
1438
|
+
/* @__PURE__ */ jsx25(Table.Thead, { children: /* @__PURE__ */ jsxs13(Table.Tr, { children: [
|
1439
|
+
/* @__PURE__ */ jsx25(Table.Th, { children: "M\xE3 field" }),
|
1440
|
+
/* @__PURE__ */ jsx25(Table.Th, { children: "T\xEAn field" }),
|
1441
|
+
/* @__PURE__ */ jsx25(Table.Th, { children: "C\u1ED9t map" })
|
1439
1442
|
] }) }),
|
1440
|
-
/* @__PURE__ */
|
1443
|
+
/* @__PURE__ */ jsx25(Table.Tbody, { children: (_b = store.state.fieldConfig) == null ? void 0 : _b.filter((item) => item.isSelected == true).map((item, idx) => /* @__PURE__ */ jsxs13(
|
1441
1444
|
Table.Tr,
|
1442
1445
|
{
|
1443
1446
|
style: { cursor: "pointer" },
|
1444
1447
|
children: [
|
1445
|
-
/* @__PURE__ */
|
1446
|
-
/* @__PURE__ */
|
1447
|
-
/* @__PURE__ */
|
1448
|
+
/* @__PURE__ */ jsx25(Table.Td, { onClick: () => store.changeSelected(item.fieldKey.toString(), false), children: item.fieldKey.toString() }),
|
1449
|
+
/* @__PURE__ */ jsx25(Table.Td, { onClick: () => store.changeSelected(item.fieldKey.toString(), false), children: item.fieldName }),
|
1450
|
+
/* @__PURE__ */ jsx25(Table.Td, { children: /* @__PURE__ */ jsx25(MySelect, { data: store.state.title, value: item.fieldToMap, onChange: (e4) => store.setFieldToMap(item.fieldKey.toString(), e4) }) })
|
1448
1451
|
]
|
1449
1452
|
},
|
1450
1453
|
idx
|
1451
1454
|
)) })
|
1452
1455
|
] }),
|
1453
|
-
/* @__PURE__ */
|
1454
|
-
/* @__PURE__ */
|
1456
|
+
/* @__PURE__ */ jsx25(Space2, {}),
|
1457
|
+
/* @__PURE__ */ jsx25(
|
1455
1458
|
Button5,
|
1456
1459
|
{
|
1457
1460
|
onClick: () => {
|
1458
1461
|
store.changeAllSelected(false);
|
1459
1462
|
},
|
1460
|
-
leftSection: /* @__PURE__ */
|
1463
|
+
leftSection: /* @__PURE__ */ jsx25(IconArrowBigLeft, {}),
|
1461
1464
|
children: "Chuy\u1EC3n t\u1EA5t c\u1EA3 v\u1EC1"
|
1462
1465
|
}
|
1463
1466
|
)
|
1464
1467
|
] })
|
1465
1468
|
] }),
|
1466
|
-
/* @__PURE__ */
|
1469
|
+
/* @__PURE__ */ jsx25(Divider, {}),
|
1467
1470
|
/* @__PURE__ */ jsxs13(MyFlexEnd, { children: [
|
1468
|
-
/* @__PURE__ */
|
1471
|
+
/* @__PURE__ */ jsx25(
|
1469
1472
|
Button5,
|
1470
1473
|
{
|
1471
|
-
leftSection: /* @__PURE__ */
|
1474
|
+
leftSection: /* @__PURE__ */ jsx25(IconArrowBackUp, {}),
|
1472
1475
|
onClick: () => stack.close("select-field-page"),
|
1473
1476
|
color: "gray.7",
|
1474
1477
|
children: "Quay l\u1EA1i"
|
1475
1478
|
}
|
1476
1479
|
),
|
1477
|
-
/* @__PURE__ */
|
1480
|
+
/* @__PURE__ */ jsx25(
|
1478
1481
|
Button5,
|
1479
1482
|
{
|
1480
1483
|
color: "blue.8",
|
1481
|
-
leftSection: /* @__PURE__ */
|
1484
|
+
leftSection: /* @__PURE__ */ jsx25(IconArrowBigRight, {}),
|
1482
1485
|
onClick: onImport,
|
1483
1486
|
children: "Ti\u1EBFp t\u1EE5c / Import"
|
1484
1487
|
}
|
1485
1488
|
),
|
1486
|
-
/* @__PURE__ */
|
1489
|
+
/* @__PURE__ */ jsx25(
|
1487
1490
|
Button5,
|
1488
1491
|
{
|
1489
|
-
leftSection: /* @__PURE__ */
|
1492
|
+
leftSection: /* @__PURE__ */ jsx25(IconSquareRoundedX, {}),
|
1490
1493
|
onClick: () => stack.closeAll(),
|
1491
1494
|
color: "red.6",
|
1492
1495
|
children: "\u0110\xF3ng"
|
@@ -1496,21 +1499,172 @@ function SelectFieldModal({ stack, onImport }) {
|
|
1496
1499
|
] }));
|
1497
1500
|
}
|
1498
1501
|
|
1502
|
+
// src/components/DataDisplay/DataTable/MyDataTable.tsx
|
1503
|
+
import { Alert, Button as Button6, Center as Center2, Group as Group8, Portal, Text as Text6 } from "@mantine/core";
|
1504
|
+
import { IconBug, IconDownload as IconDownload3 } from "@tabler/icons-react";
|
1505
|
+
import { download, generateCsv, mkConfig } from "export-to-csv";
|
1506
|
+
import {
|
1507
|
+
MantineReactTable,
|
1508
|
+
useMantineReactTable
|
1509
|
+
} from "mantine-react-table";
|
1510
|
+
import { MRT_Localization_VI } from "mantine-react-table/locales/vi/index.cjs";
|
1511
|
+
import { useEffect as useEffect5 } from "react";
|
1512
|
+
import { Fragment as Fragment7, jsx as jsx26, jsxs as jsxs14 } from "react/jsx-runtime";
|
1513
|
+
function formatData(data, formats) {
|
1514
|
+
return data.map((row) => {
|
1515
|
+
const transformedRow = {};
|
1516
|
+
Object.entries(row).forEach(([key, value]) => {
|
1517
|
+
const formatFn = formats[key];
|
1518
|
+
if (value instanceof Date) {
|
1519
|
+
transformedRow[key] = formatFn ? formatFn(value.toISOString()) : value.toISOString();
|
1520
|
+
} else if (value !== null && typeof value === "object") {
|
1521
|
+
transformedRow[key] = formatFn ? formatFn(JSON.stringify(value)) : JSON.stringify(value);
|
1522
|
+
} else {
|
1523
|
+
transformedRow[key] = formatFn ? formatFn(value) : value;
|
1524
|
+
}
|
1525
|
+
});
|
1526
|
+
return transformedRow;
|
1527
|
+
});
|
1528
|
+
}
|
1529
|
+
function MyDataTable(_a) {
|
1530
|
+
var _b = _a, {
|
1531
|
+
formats = {},
|
1532
|
+
exportAble = false,
|
1533
|
+
csvConfigProps,
|
1534
|
+
rowActionSize,
|
1535
|
+
columns,
|
1536
|
+
data,
|
1537
|
+
renderTopToolbarCustomActions,
|
1538
|
+
setSelectedRow,
|
1539
|
+
isError,
|
1540
|
+
isLoading,
|
1541
|
+
pagination,
|
1542
|
+
initialState,
|
1543
|
+
state: state
|
1544
|
+
} = _b, rest = __objRest(_b, [
|
1545
|
+
"formats",
|
1546
|
+
"exportAble",
|
1547
|
+
"csvConfigProps",
|
1548
|
+
"rowActionSize",
|
1549
|
+
"columns",
|
1550
|
+
"data",
|
1551
|
+
"renderTopToolbarCustomActions",
|
1552
|
+
"setSelectedRow",
|
1553
|
+
"isError",
|
1554
|
+
"isLoading",
|
1555
|
+
"pagination",
|
1556
|
+
"initialState",
|
1557
|
+
// setPagination,
|
1558
|
+
"state"
|
1559
|
+
]);
|
1560
|
+
const { renderRowActions } = __spreadValues({}, rest);
|
1561
|
+
const csvConfig = mkConfig(__spreadValues({
|
1562
|
+
fieldSeparator: ",",
|
1563
|
+
decimalSeparator: ".",
|
1564
|
+
useKeysAsHeaders: (csvConfigProps == null ? void 0 : csvConfigProps.columnHeaders) ? false : true
|
1565
|
+
}, csvConfigProps));
|
1566
|
+
const handleExport = (rows) => {
|
1567
|
+
if (rows.length == 0) {
|
1568
|
+
const transformedData = formatData(data, formats);
|
1569
|
+
const csv2 = generateCsv(csvConfig)(transformedData);
|
1570
|
+
download(csvConfig)(csv2);
|
1571
|
+
return;
|
1572
|
+
}
|
1573
|
+
const rowData = rows.map((row) => row.original);
|
1574
|
+
const transformedRows = formatData(rowData, formats);
|
1575
|
+
const csv = generateCsv(csvConfig)(transformedRows);
|
1576
|
+
download(csvConfig)(csv);
|
1577
|
+
};
|
1578
|
+
const table = useMantineReactTable(__spreadValues({
|
1579
|
+
columns,
|
1580
|
+
data,
|
1581
|
+
renderTopToolbarCustomActions: ({ table: table2 }) => {
|
1582
|
+
return /* @__PURE__ */ jsxs14(Group8, { children: [
|
1583
|
+
renderTopToolbarCustomActions && renderTopToolbarCustomActions({ table: table2 }),
|
1584
|
+
exportAble && /* @__PURE__ */ jsx26(Fragment7, { children: /* @__PURE__ */ jsx26(
|
1585
|
+
Button6,
|
1586
|
+
{
|
1587
|
+
color: "green.8",
|
1588
|
+
onClick: () => handleExport(table2.getSelectedRowModel().rows),
|
1589
|
+
leftSection: /* @__PURE__ */ jsx26(IconDownload3, {}),
|
1590
|
+
variant: "filled",
|
1591
|
+
children: "Export"
|
1592
|
+
}
|
1593
|
+
) })
|
1594
|
+
] });
|
1595
|
+
},
|
1596
|
+
manualPagination: pagination ? true : false,
|
1597
|
+
enableRowNumbers: true,
|
1598
|
+
enableRowSelection: exportAble,
|
1599
|
+
enableEditing: renderRowActions ? true : false,
|
1600
|
+
positionActionsColumn: "last",
|
1601
|
+
enableColumnResizing: true,
|
1602
|
+
layoutMode: "semantic",
|
1603
|
+
displayColumnDefOptions: {
|
1604
|
+
"mrt-row-actions": {
|
1605
|
+
header: "Thao t\xE1c",
|
1606
|
+
size: rowActionSize
|
1607
|
+
},
|
1608
|
+
"mrt-row-numbers": {
|
1609
|
+
Header: "STT",
|
1610
|
+
size: 1
|
1611
|
+
}
|
1612
|
+
},
|
1613
|
+
enableColumnPinning: true,
|
1614
|
+
initialState: __spreadValues(__spreadValues({
|
1615
|
+
density: "md",
|
1616
|
+
columnPinning: { right: ["mrt-row-actions"] },
|
1617
|
+
columnVisibility: {
|
1618
|
+
modifiedWhen: false,
|
1619
|
+
modifiedFullName: false
|
1620
|
+
}
|
1621
|
+
}, pagination ? {} : { pagination: { pageIndex: 0, pageSize: 30 } }), initialState),
|
1622
|
+
mantineTableHeadCellProps: {
|
1623
|
+
style: {
|
1624
|
+
verticalAlign: "middle",
|
1625
|
+
paddingTop: "2px",
|
1626
|
+
paddingBottom: "2px"
|
1627
|
+
}
|
1628
|
+
},
|
1629
|
+
mantineTableBodyCellProps: {
|
1630
|
+
style: {
|
1631
|
+
paddingTop: "2px",
|
1632
|
+
paddingBottom: "2px"
|
1633
|
+
}
|
1634
|
+
},
|
1635
|
+
localization: MRT_Localization_VI,
|
1636
|
+
renderEmptyRowsFallback: () => isError ? /* @__PURE__ */ jsx26(Alert, { icon: /* @__PURE__ */ jsx26(IconBug, {}), color: "red", title: "C\xF3 l\u1ED7i x\u1EA3y ra!", m: "md" }) : /* @__PURE__ */ jsxs14(Center2, { p: "md", children: [
|
1637
|
+
" ",
|
1638
|
+
/* @__PURE__ */ jsx26(Text6, { c: "gray", fw: "600", size: "15px", fs: "italic", children: "Kh\xF4ng c\xF3 d\u1EEF li\u1EC7u!" })
|
1639
|
+
] }),
|
1640
|
+
state: __spreadValues(__spreadValues({
|
1641
|
+
showSkeletons: isLoading
|
1642
|
+
}, pagination ? { pagination } : {}), state),
|
1643
|
+
mantineTableContainerProps: { style: { maxHeight: "65vh" } },
|
1644
|
+
enableStickyHeader: true
|
1645
|
+
}, rest));
|
1646
|
+
useEffect5(() => {
|
1647
|
+
setSelectedRow && setSelectedRow(table.getSelectedRowModel().rows.map((row) => row.original));
|
1648
|
+
}, [table.getState().rowSelection]);
|
1649
|
+
if (data == void 0) return;
|
1650
|
+
return /* @__PURE__ */ jsx26("main", { style: { position: "relative", zIndex: 1 }, children: table.getState().isFullScreen ? /* @__PURE__ */ jsx26(Portal, { children: /* @__PURE__ */ jsx26(MantineReactTable, { table }) }) : /* @__PURE__ */ jsx26(MantineReactTable, { table }) });
|
1651
|
+
}
|
1652
|
+
|
1499
1653
|
// src/components/Button/ButtonImport/SelectFileModal.tsx
|
1500
|
-
import { Button as
|
1654
|
+
import { Button as Button7, Fieldset as Fieldset2, FileInput as FileInput2, Modal as Modal7, NumberInput, Select as Select2, SimpleGrid as SimpleGrid2 } from "@mantine/core";
|
1501
1655
|
import { IconArrowBigRight as IconArrowBigRight2, IconSquareRoundedX as IconSquareRoundedX2 } from "@tabler/icons-react";
|
1502
|
-
import { jsx as
|
1656
|
+
import { jsx as jsx27, jsxs as jsxs15 } from "react/jsx-runtime";
|
1503
1657
|
function SelectFileModal({ onExportStructure, stack }) {
|
1504
1658
|
var _a;
|
1505
1659
|
const store = useS_ButtonImport();
|
1506
|
-
return /* @__PURE__ */
|
1660
|
+
return /* @__PURE__ */ jsxs15(
|
1507
1661
|
Modal7,
|
1508
1662
|
__spreadProps(__spreadValues({
|
1509
1663
|
title: "Import",
|
1510
1664
|
fullScreen: true
|
1511
1665
|
}, stack.register("select-file-page")), {
|
1512
1666
|
children: [
|
1513
|
-
/* @__PURE__ */
|
1667
|
+
/* @__PURE__ */ jsx27(
|
1514
1668
|
FileInput2,
|
1515
1669
|
{
|
1516
1670
|
value: store.state.file,
|
@@ -1520,8 +1674,8 @@ function SelectFileModal({ onExportStructure, stack }) {
|
|
1520
1674
|
clearable: true
|
1521
1675
|
}
|
1522
1676
|
),
|
1523
|
-
/* @__PURE__ */
|
1524
|
-
/* @__PURE__ */
|
1677
|
+
/* @__PURE__ */ jsxs15(SimpleGrid2, { cols: { base: 1, md: 2, lg: 2, xl: 4 }, children: [
|
1678
|
+
/* @__PURE__ */ jsx27(
|
1525
1679
|
NumberInput,
|
1526
1680
|
{
|
1527
1681
|
label: "D\xF2ng ti\xEAu \u0111\u1EC1 b\u1EAFt \u0111\u1EA7u t\u1EEB",
|
@@ -1529,7 +1683,7 @@ function SelectFileModal({ onExportStructure, stack }) {
|
|
1529
1683
|
onChange: (e4) => store.setProperty("startTitleIndex", e4)
|
1530
1684
|
}
|
1531
1685
|
),
|
1532
|
-
/* @__PURE__ */
|
1686
|
+
/* @__PURE__ */ jsx27(
|
1533
1687
|
NumberInput,
|
1534
1688
|
{
|
1535
1689
|
label: "D\xF2ng d\u1EEF li\u1EC7u b\u1EAFt \u0111\u1EA7u t\u1EEB",
|
@@ -1537,7 +1691,7 @@ function SelectFileModal({ onExportStructure, stack }) {
|
|
1537
1691
|
onChange: (e4) => store.setProperty("startDataIndex", e4)
|
1538
1692
|
}
|
1539
1693
|
),
|
1540
|
-
/* @__PURE__ */
|
1694
|
+
/* @__PURE__ */ jsx27(
|
1541
1695
|
Select2,
|
1542
1696
|
{
|
1543
1697
|
readOnly: true,
|
@@ -1546,7 +1700,7 @@ function SelectFileModal({ onExportStructure, stack }) {
|
|
1546
1700
|
defaultValue: "100.000"
|
1547
1701
|
}
|
1548
1702
|
),
|
1549
|
-
/* @__PURE__ */
|
1703
|
+
/* @__PURE__ */ jsx27(
|
1550
1704
|
Select2,
|
1551
1705
|
{
|
1552
1706
|
readOnly: true,
|
@@ -1556,37 +1710,37 @@ function SelectFileModal({ onExportStructure, stack }) {
|
|
1556
1710
|
}
|
1557
1711
|
)
|
1558
1712
|
] }),
|
1559
|
-
/* @__PURE__ */
|
1713
|
+
/* @__PURE__ */ jsx27(Fieldset2, { legend: "Danh s\xE1ch tr\u01B0\u1EDDng th\xF4ng tin trong file d\u1EEF li\u1EC7u", children: store.state.data && /* @__PURE__ */ jsx27(
|
1560
1714
|
MyDataTable,
|
1561
1715
|
{
|
1562
1716
|
columns: store.columns,
|
1563
1717
|
data: store.state.data
|
1564
1718
|
}
|
1565
1719
|
) }),
|
1566
|
-
/* @__PURE__ */
|
1567
|
-
/* @__PURE__ */
|
1568
|
-
|
1720
|
+
/* @__PURE__ */ jsxs15(MyFlexEnd, { children: [
|
1721
|
+
/* @__PURE__ */ jsx27(
|
1722
|
+
Button7,
|
1569
1723
|
{
|
1570
1724
|
color: "teal.8",
|
1571
1725
|
onClick: onExportStructure,
|
1572
1726
|
children: "Xu\u1EA5t file c\u1EA5u tr\xFAc"
|
1573
1727
|
}
|
1574
1728
|
),
|
1575
|
-
/* @__PURE__ */
|
1576
|
-
|
1729
|
+
/* @__PURE__ */ jsx27(
|
1730
|
+
Button7,
|
1577
1731
|
{
|
1578
1732
|
disabled: ((_a = store.state.data) == null ? void 0 : _a.length) == 0,
|
1579
1733
|
color: "blue.8",
|
1580
|
-
leftSection: /* @__PURE__ */
|
1734
|
+
leftSection: /* @__PURE__ */ jsx27(IconArrowBigRight2, {}),
|
1581
1735
|
onClick: () => stack.open("select-field-page"),
|
1582
1736
|
children: "Ti\u1EBFp t\u1EE5c"
|
1583
1737
|
}
|
1584
1738
|
),
|
1585
|
-
/* @__PURE__ */
|
1586
|
-
|
1739
|
+
/* @__PURE__ */ jsx27(
|
1740
|
+
Button7,
|
1587
1741
|
{
|
1588
1742
|
color: "red.6",
|
1589
|
-
leftSection: /* @__PURE__ */
|
1743
|
+
leftSection: /* @__PURE__ */ jsx27(IconSquareRoundedX2, {}),
|
1590
1744
|
onClick: stack.closeAll,
|
1591
1745
|
children: "\u0110\xF3ng"
|
1592
1746
|
}
|
@@ -1598,26 +1752,26 @@ function SelectFileModal({ onExportStructure, stack }) {
|
|
1598
1752
|
}
|
1599
1753
|
|
1600
1754
|
// src/components/Button/ButtonImport/MyButtonImport.tsx
|
1601
|
-
import { Fragment as
|
1755
|
+
import { Fragment as Fragment8, jsx as jsx28, jsxs as jsxs16 } from "react/jsx-runtime";
|
1602
1756
|
function MyButtonImport({
|
1603
1757
|
onExportStructure,
|
1604
1758
|
onImport
|
1605
1759
|
}) {
|
1606
1760
|
const stack = useModalsStack3(["select-file-page", "select-field-page", "implement-page"]);
|
1607
1761
|
const store = useS_ButtonImport();
|
1608
|
-
return /* @__PURE__ */
|
1609
|
-
/* @__PURE__ */
|
1610
|
-
/* @__PURE__ */
|
1611
|
-
/* @__PURE__ */
|
1612
|
-
/* @__PURE__ */
|
1762
|
+
return /* @__PURE__ */ jsxs16(Fragment8, { children: [
|
1763
|
+
/* @__PURE__ */ jsx28(Button8, { color: "teal.8", onClick: () => stack.open("select-file-page"), leftSection: /* @__PURE__ */ jsx28(IconFileImport2, {}), title: "Import", children: "Import" }),
|
1764
|
+
/* @__PURE__ */ jsxs16(Modal8.Stack, { children: [
|
1765
|
+
/* @__PURE__ */ jsx28(SelectFileModal, { stack, onExportStructure }),
|
1766
|
+
/* @__PURE__ */ jsx28(SelectFieldModal, { stack, onImport: () => onImport(store.getDataFinal()) })
|
1613
1767
|
] })
|
1614
1768
|
] });
|
1615
1769
|
}
|
1616
1770
|
|
1617
1771
|
// src/components/Button/ButtonModal/AQSelectTableByOpenModal.tsx
|
1618
|
-
import { Button as
|
1772
|
+
import { Button as Button9, Fieldset as Fieldset3, Modal as Modal9 } from "@mantine/core";
|
1619
1773
|
import { useDisclosure as useDisclosure9 } from "@mantine/hooks";
|
1620
|
-
import { Fragment as
|
1774
|
+
import { Fragment as Fragment9, jsx as jsx29, jsxs as jsxs17 } from "react/jsx-runtime";
|
1621
1775
|
function AQSelectTableByOpenModal(_a) {
|
1622
1776
|
var _b = _a, {
|
1623
1777
|
setSelectedData,
|
@@ -1645,16 +1799,16 @@ function AQSelectTableByOpenModal(_a) {
|
|
1645
1799
|
"closeAfterSelect"
|
1646
1800
|
]);
|
1647
1801
|
const disclosure = useDisclosure9(false);
|
1648
|
-
return /* @__PURE__ */
|
1649
|
-
/* @__PURE__ */
|
1650
|
-
|
1802
|
+
return /* @__PURE__ */ jsxs17(Fragment9, { children: [
|
1803
|
+
/* @__PURE__ */ jsx29(
|
1804
|
+
Button9,
|
1651
1805
|
__spreadProps(__spreadValues({
|
1652
1806
|
onClick: disclosure[1].open
|
1653
1807
|
}, rest), {
|
1654
1808
|
children: label ? label : `Ch\u1ECDn t\u1EEB danh s\xE1ch`
|
1655
1809
|
})
|
1656
1810
|
),
|
1657
|
-
/* @__PURE__ */
|
1811
|
+
/* @__PURE__ */ jsx29(
|
1658
1812
|
Modal9,
|
1659
1813
|
{
|
1660
1814
|
fullScreen,
|
@@ -1662,11 +1816,11 @@ function AQSelectTableByOpenModal(_a) {
|
|
1662
1816
|
title,
|
1663
1817
|
opened: disclosure == null ? void 0 : disclosure[0],
|
1664
1818
|
onClose: disclosure[1].close,
|
1665
|
-
children: /* @__PURE__ */
|
1819
|
+
children: /* @__PURE__ */ jsx29(MyFlexColumn, { children: /* @__PURE__ */ jsx29(Fieldset3, { legend: listLabel ? listLabel : "Danh s\xE1ch", children: /* @__PURE__ */ jsx29(
|
1666
1820
|
MyDataTable,
|
1667
1821
|
__spreadValues({
|
1668
1822
|
renderTopToolbarCustomActions: ({ table }) => {
|
1669
|
-
return /* @__PURE__ */
|
1823
|
+
return /* @__PURE__ */ jsx29(Button9, { onClick: () => {
|
1670
1824
|
setSelectedData(table.getSelectedRowModel().rows.map((row) => row.original));
|
1671
1825
|
closeAfterSelect && disclosure[1].close();
|
1672
1826
|
}, children: "Ch\u1ECDn" });
|
@@ -1683,10 +1837,10 @@ function AQSelectTableByOpenModal(_a) {
|
|
1683
1837
|
|
1684
1838
|
// src/components/Button/ButtonPrintPDF/MyButtonPrintPDF.tsx
|
1685
1839
|
import { useRef as useRef2 } from "react";
|
1686
|
-
import { Button as
|
1840
|
+
import { Button as Button10 } from "@mantine/core";
|
1687
1841
|
import { IconPrinter as IconPrinter2 } from "@tabler/icons-react";
|
1688
1842
|
import { useReactToPrint } from "react-to-print";
|
1689
|
-
import { Fragment as
|
1843
|
+
import { Fragment as Fragment10, jsx as jsx30, jsxs as jsxs18 } from "react/jsx-runtime";
|
1690
1844
|
function MyButtonPrintPDF(_a) {
|
1691
1845
|
var _b = _a, { contentToPrint, children } = _b, rest = __objRest(_b, ["contentToPrint", "children"]);
|
1692
1846
|
const printRef = useRef2(null);
|
@@ -1700,16 +1854,16 @@ function MyButtonPrintPDF(_a) {
|
|
1700
1854
|
if (!contentToPrint) return;
|
1701
1855
|
handlePrint();
|
1702
1856
|
}
|
1703
|
-
return /* @__PURE__ */
|
1704
|
-
/* @__PURE__ */
|
1705
|
-
/* @__PURE__ */
|
1857
|
+
return /* @__PURE__ */ jsxs18(Fragment10, { children: [
|
1858
|
+
/* @__PURE__ */ jsx30("div", { style: { display: "none" }, children: /* @__PURE__ */ jsx30("div", { ref: printRef, children: contentToPrint }) }),
|
1859
|
+
/* @__PURE__ */ jsx30(Button10, __spreadProps(__spreadValues({ color: "orange", onClick: handleClick, leftSection: /* @__PURE__ */ jsx30(IconPrinter2, {}) }, rest), { children }))
|
1706
1860
|
] });
|
1707
1861
|
}
|
1708
1862
|
|
1709
1863
|
// src/components/Layouts/HtmlWrapper/MyHtmlWrapper.tsx
|
1710
1864
|
import { ScrollArea, TypographyStylesProvider } from "@mantine/core";
|
1711
1865
|
import pako from "pako";
|
1712
|
-
import { jsx as
|
1866
|
+
import { jsx as jsx31 } from "react/jsx-runtime";
|
1713
1867
|
function MyHtmlWrapper(_a) {
|
1714
1868
|
var _b = _a, { html, mah, zip = false } = _b, rest = __objRest(_b, ["html", "mah", "zip"]);
|
1715
1869
|
const extractHtmlFromZip = () => {
|
@@ -1718,7 +1872,7 @@ function MyHtmlWrapper(_a) {
|
|
1718
1872
|
const cleanedHtml = decompressedData == null ? void 0 : decompressedData.replaceAll(" font-family:'Times New Roman'; font-size:1em;", "");
|
1719
1873
|
return cleanedHtml.replaceAll(" font-family:'Times New Roman'; font-size:1em;", "");
|
1720
1874
|
};
|
1721
|
-
return /* @__PURE__ */
|
1875
|
+
return /* @__PURE__ */ jsx31(ScrollArea.Autosize, { mah, children: /* @__PURE__ */ jsx31(TypographyStylesProvider, __spreadProps(__spreadValues({}, rest), { children: /* @__PURE__ */ jsx31(
|
1722
1876
|
"div",
|
1723
1877
|
{
|
1724
1878
|
dangerouslySetInnerHTML: {
|
@@ -1730,7 +1884,7 @@ function MyHtmlWrapper(_a) {
|
|
1730
1884
|
|
1731
1885
|
// src/components/Button/ButtonPrintPDFTable/MyButtonPrintTablePDF.tsx
|
1732
1886
|
import { Box, Table as Table2 } from "@mantine/core";
|
1733
|
-
import { jsx as
|
1887
|
+
import { jsx as jsx32, jsxs as jsxs19 } from "react/jsx-runtime";
|
1734
1888
|
function MyButtonPrintTablePDF(_a) {
|
1735
1889
|
var _b = _a, {
|
1736
1890
|
printConfig,
|
@@ -1756,8 +1910,8 @@ function MyButtonPrintTablePDF(_a) {
|
|
1756
1910
|
};
|
1757
1911
|
const rows = data == null ? void 0 : data.map((item, index) => {
|
1758
1912
|
if (!(printConfig == null ? void 0 : printConfig.fields)) return null;
|
1759
|
-
return /* @__PURE__ */
|
1760
|
-
printConfig.showRowNumbers && /* @__PURE__ */
|
1913
|
+
return /* @__PURE__ */ jsxs19(Table2.Tr, { children: [
|
1914
|
+
printConfig.showRowNumbers && /* @__PURE__ */ jsx32(Table2.Td, { ta: "center", px: "xs", style: { border: "1px solid lightgray" }, children: index + 1 }),
|
1761
1915
|
printConfig.fields.map((field) => {
|
1762
1916
|
let value = item[field.fieldName];
|
1763
1917
|
if (field.formatFunction) {
|
@@ -1767,30 +1921,30 @@ function MyButtonPrintTablePDF(_a) {
|
|
1767
1921
|
}
|
1768
1922
|
const alignment = field.isCenter === false ? "left" : "center";
|
1769
1923
|
if (typeof value === "string" && (value.includes("<") || value.includes("<"))) {
|
1770
|
-
return /* @__PURE__ */
|
1924
|
+
return /* @__PURE__ */ jsx32(
|
1771
1925
|
Table2.Td,
|
1772
1926
|
{
|
1773
1927
|
px: "xs",
|
1774
1928
|
ta: alignment,
|
1775
1929
|
style: { border: "1px solid lightgray" },
|
1776
|
-
children: /* @__PURE__ */
|
1930
|
+
children: /* @__PURE__ */ jsx32(MyHtmlWrapper, { html: value })
|
1777
1931
|
},
|
1778
1932
|
field.fieldName
|
1779
1933
|
);
|
1780
1934
|
}
|
1781
1935
|
if (value === "true" || value === "false") {
|
1782
|
-
return /* @__PURE__ */
|
1936
|
+
return /* @__PURE__ */ jsx32(
|
1783
1937
|
Table2.Td,
|
1784
1938
|
{
|
1785
1939
|
ta: alignment,
|
1786
1940
|
px: "xs",
|
1787
1941
|
style: { border: "1px solid lightgray" },
|
1788
|
-
children: /* @__PURE__ */
|
1942
|
+
children: /* @__PURE__ */ jsx32("input", { type: "checkbox", checked: value === "true", readOnly: true })
|
1789
1943
|
},
|
1790
1944
|
field.fieldName
|
1791
1945
|
);
|
1792
1946
|
}
|
1793
|
-
return /* @__PURE__ */
|
1947
|
+
return /* @__PURE__ */ jsx32(
|
1794
1948
|
Table2.Td,
|
1795
1949
|
{
|
1796
1950
|
ta: alignment,
|
@@ -1814,18 +1968,18 @@ function MyButtonPrintTablePDF(_a) {
|
|
1814
1968
|
minute: "2-digit"
|
1815
1969
|
});
|
1816
1970
|
const tableTitle = (printConfig == null ? void 0 : printConfig.title) || "B\u1EA3ng d\u1EEF li\u1EC7u";
|
1817
|
-
return /* @__PURE__ */
|
1818
|
-
/* @__PURE__ */
|
1971
|
+
return /* @__PURE__ */ jsxs19(Box, { p: "lg", children: [
|
1972
|
+
/* @__PURE__ */ jsxs19("div", { style: { textAlign: "center", marginTop: "10px", fontStyle: "italic", color: "#666" }, children: [
|
1819
1973
|
"Ng\xE0y in: ",
|
1820
1974
|
formattedDate
|
1821
1975
|
] }),
|
1822
|
-
/* @__PURE__ */
|
1823
|
-
/* @__PURE__ */
|
1824
|
-
/* @__PURE__ */
|
1825
|
-
printConfig.showRowNumbers && /* @__PURE__ */
|
1976
|
+
/* @__PURE__ */ jsx32("h2", { style: { textAlign: "center", fontSize: "24px", fontWeight: "bold", marginBottom: "20px" }, children: tableTitle }),
|
1977
|
+
/* @__PURE__ */ jsxs19(Table2, { withColumnBorders: true, highlightOnHover: true, style: { border: "1px solid lightgray" }, children: [
|
1978
|
+
/* @__PURE__ */ jsx32(Table2.Thead, { children: /* @__PURE__ */ jsxs19(Table2.Tr, { children: [
|
1979
|
+
printConfig.showRowNumbers && /* @__PURE__ */ jsx32(Table2.Th, { style: { border: "1px solid lightgray" }, w: "10%", ta: "center", px: "xs", children: "STT" }),
|
1826
1980
|
printConfig.fields.map((field) => {
|
1827
1981
|
const alignment = field.isCenter === false ? "left" : "center";
|
1828
|
-
return /* @__PURE__ */
|
1982
|
+
return /* @__PURE__ */ jsx32(
|
1829
1983
|
Table2.Th,
|
1830
1984
|
{
|
1831
1985
|
style: { border: "1px solid lightgray" },
|
@@ -1837,11 +1991,11 @@ function MyButtonPrintTablePDF(_a) {
|
|
1837
1991
|
);
|
1838
1992
|
})
|
1839
1993
|
] }) }),
|
1840
|
-
/* @__PURE__ */
|
1994
|
+
/* @__PURE__ */ jsx32(Table2.Tbody, { children: rows })
|
1841
1995
|
] })
|
1842
1996
|
] });
|
1843
1997
|
};
|
1844
|
-
return /* @__PURE__ */
|
1998
|
+
return /* @__PURE__ */ jsx32(
|
1845
1999
|
MyButtonPrintPDF,
|
1846
2000
|
__spreadValues({
|
1847
2001
|
contentToPrint: renderContent()
|
@@ -1853,11 +2007,11 @@ function MyButtonPrintTablePDF(_a) {
|
|
1853
2007
|
import { ActionIcon as ActionIcon9 } from "@mantine/core";
|
1854
2008
|
import { IconArrowBack } from "@tabler/icons-react";
|
1855
2009
|
import { useRouter as useRouter2 } from "next/navigation";
|
1856
|
-
import { jsx as
|
2010
|
+
import { jsx as jsx33 } from "react/jsx-runtime";
|
1857
2011
|
function MyButtonRouterBack(_a) {
|
1858
2012
|
var _b = _a, { url, label } = _b, rest = __objRest(_b, ["url", "label"]);
|
1859
2013
|
const router = useRouter2();
|
1860
|
-
return /* @__PURE__ */
|
2014
|
+
return /* @__PURE__ */ jsx33(
|
1861
2015
|
ActionIcon9,
|
1862
2016
|
__spreadProps(__spreadValues({
|
1863
2017
|
size: "xl",
|
@@ -1870,7 +2024,7 @@ function MyButtonRouterBack(_a) {
|
|
1870
2024
|
router.back();
|
1871
2025
|
}
|
1872
2026
|
}, rest), {
|
1873
|
-
children: /* @__PURE__ */
|
2027
|
+
children: /* @__PURE__ */ jsx33(IconArrowBack, { stroke: 2 })
|
1874
2028
|
})
|
1875
2029
|
);
|
1876
2030
|
}
|
@@ -1878,19 +2032,19 @@ function MyButtonRouterBack(_a) {
|
|
1878
2032
|
// src/components/Button/ButtonViewPDF/MyButtonViewPDF.tsx
|
1879
2033
|
import {
|
1880
2034
|
ActionIcon as ActionIcon10,
|
1881
|
-
Button as
|
1882
|
-
Group as
|
2035
|
+
Button as Button11,
|
2036
|
+
Group as Group9,
|
1883
2037
|
LoadingOverlay,
|
1884
2038
|
Modal as Modal10,
|
1885
2039
|
Paper as Paper3,
|
1886
|
-
Text as
|
2040
|
+
Text as Text7,
|
1887
2041
|
Tooltip as Tooltip4
|
1888
2042
|
} from "@mantine/core";
|
1889
2043
|
import { useDisclosure as useDisclosure10 } from "@mantine/hooks";
|
1890
2044
|
import { IconLivePhoto as IconLivePhoto2, IconMaximize as IconMaximize3, IconMinimize as IconMinimize3 } from "@tabler/icons-react";
|
1891
2045
|
import { useQuery } from "@tanstack/react-query";
|
1892
2046
|
import { useState as useState8 } from "react";
|
1893
|
-
import { Fragment as
|
2047
|
+
import { Fragment as Fragment11, jsx as jsx34, jsxs as jsxs20 } from "react/jsx-runtime";
|
1894
2048
|
function MyButtonViewPDF({
|
1895
2049
|
id,
|
1896
2050
|
modalSize = "80%",
|
@@ -1915,57 +2069,57 @@ function MyButtonViewPDF({
|
|
1915
2069
|
},
|
1916
2070
|
enabled: disc[0] == true
|
1917
2071
|
});
|
1918
|
-
return /* @__PURE__ */
|
1919
|
-
/* @__PURE__ */
|
2072
|
+
return /* @__PURE__ */ jsxs20(Fragment11, { children: [
|
2073
|
+
/* @__PURE__ */ jsx34(Tooltip4, { label: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp", children: isActionIcon ? /* @__PURE__ */ jsx34(
|
1920
2074
|
ActionIcon10,
|
1921
2075
|
{
|
1922
2076
|
onClick: () => {
|
1923
2077
|
disc[1].open();
|
1924
2078
|
},
|
1925
|
-
children: /* @__PURE__ */
|
2079
|
+
children: /* @__PURE__ */ jsx34(IconLivePhoto2, {})
|
1926
2080
|
}
|
1927
|
-
) : /* @__PURE__ */
|
1928
|
-
|
2081
|
+
) : /* @__PURE__ */ jsx34(
|
2082
|
+
Button11,
|
1929
2083
|
{
|
1930
2084
|
color: "cyan",
|
1931
2085
|
onClick: () => {
|
1932
2086
|
disc[1].open();
|
1933
2087
|
},
|
1934
|
-
leftSection: /* @__PURE__ */
|
2088
|
+
leftSection: /* @__PURE__ */ jsx34(IconLivePhoto2, {}),
|
1935
2089
|
children: label
|
1936
2090
|
}
|
1937
2091
|
) }),
|
1938
|
-
/* @__PURE__ */
|
2092
|
+
/* @__PURE__ */ jsx34(
|
1939
2093
|
Modal10,
|
1940
2094
|
{
|
1941
2095
|
fullScreen: fullScreen[0],
|
1942
2096
|
opened: disc[0],
|
1943
2097
|
onClose: disc[1].close,
|
1944
2098
|
size: modalSize,
|
1945
|
-
title: /* @__PURE__ */
|
1946
|
-
/* @__PURE__ */
|
1947
|
-
fullScreen[0] ? /* @__PURE__ */
|
2099
|
+
title: /* @__PURE__ */ jsxs20(Group9, { children: [
|
2100
|
+
/* @__PURE__ */ jsx34(Text7, { children: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp" }),
|
2101
|
+
fullScreen[0] ? /* @__PURE__ */ jsx34(
|
1948
2102
|
ActionIcon10,
|
1949
2103
|
{
|
1950
2104
|
onClick: () => {
|
1951
2105
|
fullScreen[1](false);
|
1952
2106
|
hSize[1]("80vh");
|
1953
2107
|
},
|
1954
|
-
children: /* @__PURE__ */
|
2108
|
+
children: /* @__PURE__ */ jsx34(IconMinimize3, {})
|
1955
2109
|
}
|
1956
|
-
) : /* @__PURE__ */
|
2110
|
+
) : /* @__PURE__ */ jsx34(
|
1957
2111
|
ActionIcon10,
|
1958
2112
|
{
|
1959
2113
|
onClick: () => {
|
1960
2114
|
fullScreen[1](true);
|
1961
2115
|
hSize[1]("90vh");
|
1962
2116
|
},
|
1963
|
-
children: /* @__PURE__ */
|
2117
|
+
children: /* @__PURE__ */ jsx34(IconMaximize3, {})
|
1964
2118
|
}
|
1965
2119
|
)
|
1966
2120
|
] }),
|
1967
|
-
children: /* @__PURE__ */
|
1968
|
-
/* @__PURE__ */
|
2121
|
+
children: /* @__PURE__ */ jsxs20(Paper3, { h: hSize[0], p: "lg", pos: "relative", children: [
|
2122
|
+
/* @__PURE__ */ jsx34(
|
1969
2123
|
LoadingOverlay,
|
1970
2124
|
{
|
1971
2125
|
visible: query.isLoading,
|
@@ -1973,14 +2127,14 @@ function MyButtonViewPDF({
|
|
1973
2127
|
overlayProps: { radius: "sm", blur: 2 }
|
1974
2128
|
}
|
1975
2129
|
),
|
1976
|
-
query.data ? /* @__PURE__ */
|
2130
|
+
query.data ? /* @__PURE__ */ jsx34(
|
1977
2131
|
"iframe",
|
1978
2132
|
{
|
1979
2133
|
src: `data:application/pdf;base64, ${filePath ? (_a = query.data) == null ? void 0 : _a.fileBase64String : (_c = (_b = query.data) == null ? void 0 : _b.fileDetail) == null ? void 0 : _c.fileBase64String}`,
|
1980
2134
|
width: "100%",
|
1981
2135
|
height: "100%"
|
1982
2136
|
}
|
1983
|
-
) : /* @__PURE__ */
|
2137
|
+
) : /* @__PURE__ */ jsx34("iframe", { src, width: "100%", height: "100%" })
|
1984
2138
|
] })
|
1985
2139
|
}
|
1986
2140
|
)
|
@@ -6332,10 +6486,10 @@ var createViewMonthAgenda = () => createPreactView(config);
|
|
6332
6486
|
import { createEventModalPlugin } from "@schedule-x/event-modal";
|
6333
6487
|
import { createEventsServicePlugin } from "@schedule-x/events-service";
|
6334
6488
|
import { ScheduleXCalendar, useNextCalendarApp } from "@schedule-x/react";
|
6335
|
-
import { Paper as Paper4, Text as
|
6489
|
+
import { Paper as Paper4, Text as Text8 } from "@mantine/core";
|
6336
6490
|
import "@schedule-x/theme-default/dist/index.css";
|
6337
|
-
import { useEffect as
|
6338
|
-
import { jsx as
|
6491
|
+
import { useEffect as useEffect6 } from "react";
|
6492
|
+
import { jsx as jsx35, jsxs as jsxs21 } from "react/jsx-runtime";
|
6339
6493
|
function MyCalendar() {
|
6340
6494
|
const plugins = [createEventsServicePlugin(), createEventModalPlugin()];
|
6341
6495
|
const calendar = useNextCalendarApp({
|
@@ -6406,19 +6560,19 @@ function MyCalendar() {
|
|
6406
6560
|
}
|
6407
6561
|
]
|
6408
6562
|
}, plugins);
|
6409
|
-
|
6563
|
+
useEffect6(() => {
|
6410
6564
|
calendar == null ? void 0 : calendar.events.getAll();
|
6411
6565
|
}, []);
|
6412
|
-
return /* @__PURE__ */
|
6566
|
+
return /* @__PURE__ */ jsx35("div", { children: /* @__PURE__ */ jsx35(ScheduleXCalendar, { calendarApp: calendar, customComponents: {
|
6413
6567
|
timeGridEvent: ({ calendarEvent }) => {
|
6414
6568
|
console.log(calendarEvent);
|
6415
|
-
return /* @__PURE__ */
|
6416
|
-
/* @__PURE__ */
|
6569
|
+
return /* @__PURE__ */ jsx35(Paper4, { h: "100%", bg: calendarEvent.laLichThi ? "violet.2" : "blue.2", p: 4, children: /* @__PURE__ */ jsxs21(MyFlexColumn, { gap: 1, children: [
|
6570
|
+
/* @__PURE__ */ jsxs21(Text8, { size: "sm", fw: "bold", children: [
|
6417
6571
|
calendarEvent.laLichThi ? "(Thi) " : "(H\u1ECDc) ",
|
6418
6572
|
calendarEvent.title
|
6419
6573
|
] }),
|
6420
|
-
calendarEvent.laLichThi == false && /* @__PURE__ */
|
6421
|
-
/* @__PURE__ */
|
6574
|
+
calendarEvent.laLichThi == false && /* @__PURE__ */ jsx35(Text8, { size: "sm", children: calendarEvent.giangvien }),
|
6575
|
+
/* @__PURE__ */ jsx35(Text8, { size: "sm", children: calendarEvent.location })
|
6422
6576
|
] }) });
|
6423
6577
|
}
|
6424
6578
|
// eventModal: ({ calendarEvent }) => {
|
@@ -6432,24 +6586,32 @@ function MyCalendar() {
|
|
6432
6586
|
}
|
6433
6587
|
|
6434
6588
|
// src/components/CenterFull/MyCenterFull.tsx
|
6435
|
-
import { Center as
|
6436
|
-
import { jsx as
|
6589
|
+
import { Center as Center3, Group as Group10 } from "@mantine/core";
|
6590
|
+
import { jsx as jsx36 } from "react/jsx-runtime";
|
6437
6591
|
function MyCenterFull({ children }) {
|
6438
|
-
return /* @__PURE__ */
|
6592
|
+
return /* @__PURE__ */ jsx36(Center3, { w: "100%", children: /* @__PURE__ */ jsx36(Group10, { children }) });
|
6439
6593
|
}
|
6440
6594
|
|
6441
6595
|
// src/components/Checkbox/MyCheckbox.tsx
|
6442
6596
|
import { Checkbox as Checkbox2 } from "@mantine/core";
|
6443
|
-
import { jsx as
|
6597
|
+
import { jsx as jsx37 } from "react/jsx-runtime";
|
6444
6598
|
function MyCheckbox(_a) {
|
6445
6599
|
var rest = __objRest(_a, []);
|
6446
|
-
return /* @__PURE__ */
|
6600
|
+
return /* @__PURE__ */ jsx37(Checkbox2, __spreadValues({}, rest));
|
6601
|
+
}
|
6602
|
+
|
6603
|
+
// src/components/Layouts/FlexRow/MyFlexRow.tsx
|
6604
|
+
import { Flex as Flex2 } from "@mantine/core";
|
6605
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
6606
|
+
function MyFlexRow(_a) {
|
6607
|
+
var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
|
6608
|
+
return /* @__PURE__ */ jsx38(Flex2, __spreadProps(__spreadValues({ gap: "md", align: "center" }, rest), { children }));
|
6447
6609
|
}
|
6448
6610
|
|
6449
6611
|
// src/components/DataDisplay/Card/AQCard.tsx
|
6450
|
-
import { Badge as Badge2, Card, Center as
|
6612
|
+
import { Badge as Badge2, Card, Center as Center4, Image, Text as Text9 } from "@mantine/core";
|
6451
6613
|
import Link from "next/link";
|
6452
|
-
import { jsx as
|
6614
|
+
import { jsx as jsx39, jsxs as jsxs22 } from "react/jsx-runtime";
|
6453
6615
|
function AQCard({
|
6454
6616
|
imgSrc = "https://raw.githubusercontent.com/mantinedev/mantine/master/.demo/images/bg-8.png",
|
6455
6617
|
title,
|
@@ -6459,8 +6621,8 @@ function AQCard({
|
|
6459
6621
|
status,
|
6460
6622
|
href = ""
|
6461
6623
|
}) {
|
6462
|
-
return /* @__PURE__ */
|
6463
|
-
/* @__PURE__ */
|
6624
|
+
return /* @__PURE__ */ jsxs22(Card, { shadow: "sm", padding: "lg", radius: "md", withBorder: true, component: Link, href, children: [
|
6625
|
+
/* @__PURE__ */ jsx39(Card.Section, { children: /* @__PURE__ */ jsx39(Center4, { children: /* @__PURE__ */ jsx39(
|
6464
6626
|
Image,
|
6465
6627
|
{
|
6466
6628
|
src: imgSrc,
|
@@ -6470,19 +6632,19 @@ function AQCard({
|
|
6470
6632
|
alt: "Norway"
|
6471
6633
|
}
|
6472
6634
|
) }) }),
|
6473
|
-
/* @__PURE__ */
|
6474
|
-
/* @__PURE__ */
|
6475
|
-
status && /* @__PURE__ */
|
6635
|
+
/* @__PURE__ */ jsxs22(MyFlexRow, { justify: "space-between", mt: "md", mb: "xs", children: [
|
6636
|
+
/* @__PURE__ */ jsx39(Text9, { fw: 500, children: title }),
|
6637
|
+
status && /* @__PURE__ */ jsx39(Badge2, { color: "violet.5", w: "150px", children: status })
|
6476
6638
|
] }),
|
6477
|
-
/* @__PURE__ */
|
6639
|
+
/* @__PURE__ */ jsx39(Text9, { size: "sm", c: "dimmed", lineClamp: 2, children: description }),
|
6478
6640
|
children
|
6479
6641
|
] });
|
6480
6642
|
}
|
6481
6643
|
|
6482
6644
|
// src/components/DataDisplay/CardInformation/MyCardInformation.tsx
|
6483
|
-
import { Box as Box2, Flex, Group as
|
6645
|
+
import { Box as Box2, Flex as Flex3, Group as Group11, Paper as Paper5, Text as Text10 } from "@mantine/core";
|
6484
6646
|
import { IconArrowDownRight, IconArrowUpRight } from "@tabler/icons-react";
|
6485
|
-
import { jsx as
|
6647
|
+
import { jsx as jsx40, jsxs as jsxs23 } from "react/jsx-runtime";
|
6486
6648
|
function MyCardInformation({
|
6487
6649
|
title,
|
6488
6650
|
value,
|
@@ -6492,17 +6654,17 @@ function MyCardInformation({
|
|
6492
6654
|
diff = 0,
|
6493
6655
|
extraControl
|
6494
6656
|
}) {
|
6495
|
-
return /* @__PURE__ */
|
6657
|
+
return /* @__PURE__ */ jsxs23(
|
6496
6658
|
Paper5,
|
6497
6659
|
{
|
6498
6660
|
withBorder: true,
|
6499
6661
|
p: "md",
|
6500
6662
|
radius: "md",
|
6501
6663
|
children: [
|
6502
|
-
/* @__PURE__ */
|
6503
|
-
/* @__PURE__ */
|
6504
|
-
/* @__PURE__ */
|
6505
|
-
|
6664
|
+
/* @__PURE__ */ jsxs23(Group11, { justify: "space-between", children: [
|
6665
|
+
/* @__PURE__ */ jsxs23(Flex3, { direction: "column", children: [
|
6666
|
+
/* @__PURE__ */ jsx40(
|
6667
|
+
Text10,
|
6506
6668
|
{
|
6507
6669
|
tt: "uppercase",
|
6508
6670
|
size: "lg",
|
@@ -6510,52 +6672,52 @@ function MyCardInformation({
|
|
6510
6672
|
children: title
|
6511
6673
|
}
|
6512
6674
|
),
|
6513
|
-
unit == "" ? /* @__PURE__ */
|
6675
|
+
unit == "" ? /* @__PURE__ */ jsxs23(Text10, { size: "xs", style: { visibility: "hidden" }, children: [
|
6514
6676
|
"\u0110\u01A1n v\u1ECB: ",
|
6515
|
-
/* @__PURE__ */
|
6516
|
-
] }) : /* @__PURE__ */
|
6677
|
+
/* @__PURE__ */ jsx40("strong", { children: unit })
|
6678
|
+
] }) : /* @__PURE__ */ jsxs23(Text10, { size: "xs", children: [
|
6517
6679
|
"\u0110\u01A1n v\u1ECB: ",
|
6518
|
-
/* @__PURE__ */
|
6680
|
+
/* @__PURE__ */ jsx40("strong", { children: unit })
|
6519
6681
|
] })
|
6520
6682
|
] }),
|
6521
|
-
/* @__PURE__ */
|
6683
|
+
/* @__PURE__ */ jsx40(Box2, { children: icon })
|
6522
6684
|
] }),
|
6523
|
-
/* @__PURE__ */
|
6524
|
-
|
6685
|
+
/* @__PURE__ */ jsxs23(
|
6686
|
+
Group11,
|
6525
6687
|
{
|
6526
6688
|
mt: "5",
|
6527
6689
|
align: "flex-end",
|
6528
6690
|
gap: "xs",
|
6529
6691
|
children: [
|
6530
|
-
/* @__PURE__ */
|
6531
|
-
|
6692
|
+
/* @__PURE__ */ jsx40(
|
6693
|
+
Text10,
|
6532
6694
|
{
|
6533
6695
|
fw: 700,
|
6534
6696
|
fz: "h1",
|
6535
6697
|
children: value
|
6536
6698
|
}
|
6537
6699
|
),
|
6538
|
-
/* @__PURE__ */
|
6539
|
-
|
6700
|
+
/* @__PURE__ */ jsxs23(
|
6701
|
+
Text10,
|
6540
6702
|
{
|
6541
6703
|
mb: "2",
|
6542
6704
|
c: diff > 0 ? "teal" : "red",
|
6543
6705
|
fz: "h2",
|
6544
6706
|
fw: 500,
|
6545
6707
|
children: [
|
6546
|
-
/* @__PURE__ */
|
6708
|
+
/* @__PURE__ */ jsxs23("span", { children: [
|
6547
6709
|
diff,
|
6548
6710
|
"%"
|
6549
6711
|
] }),
|
6550
|
-
diff > 0 ? /* @__PURE__ */
|
6712
|
+
diff > 0 ? /* @__PURE__ */ jsx40(IconArrowUpRight, {}) : /* @__PURE__ */ jsx40(IconArrowDownRight, {})
|
6551
6713
|
]
|
6552
6714
|
}
|
6553
6715
|
)
|
6554
6716
|
]
|
6555
6717
|
}
|
6556
6718
|
),
|
6557
|
-
/* @__PURE__ */
|
6558
|
-
/* @__PURE__ */
|
6719
|
+
/* @__PURE__ */ jsxs23(Group11, { justify: "space-between", children: [
|
6720
|
+
/* @__PURE__ */ jsx40(Text10, { tt: "uppercase", fz: "xs", c: "dimmed", children: description }),
|
6559
6721
|
extraControl
|
6560
6722
|
] })
|
6561
6723
|
]
|
@@ -6565,39 +6727,39 @@ function MyCardInformation({
|
|
6565
6727
|
}
|
6566
6728
|
|
6567
6729
|
// src/components/DataDisplay/IconText/MyIconText.tsx
|
6568
|
-
import { Group as
|
6569
|
-
import { jsx as
|
6730
|
+
import { Group as Group12, Text as Text11 } from "@mantine/core";
|
6731
|
+
import { jsx as jsx41, jsxs as jsxs24 } from "react/jsx-runtime";
|
6570
6732
|
function MyIconText({ icon: Icon, text }) {
|
6571
|
-
return /* @__PURE__ */
|
6572
|
-
Icon && /* @__PURE__ */
|
6573
|
-
/* @__PURE__ */
|
6733
|
+
return /* @__PURE__ */ jsxs24(Group12, { wrap: "nowrap", gap: 10, mt: 3, children: [
|
6734
|
+
Icon && /* @__PURE__ */ jsx41(Icon, { stroke: 1.5, size: 16 }),
|
6735
|
+
/* @__PURE__ */ jsx41(Text11, { fz: "lg", c: "dimmed", children: text })
|
6574
6736
|
] });
|
6575
6737
|
}
|
6576
6738
|
|
6577
6739
|
// src/components/DataDisplay/NumberFormatter/MyNumberFormatter.tsx
|
6578
6740
|
import { NumberFormatter } from "@mantine/core";
|
6579
|
-
import { jsx as
|
6741
|
+
import { jsx as jsx42 } from "react/jsx-runtime";
|
6580
6742
|
function MyNumberFormatter(_a) {
|
6581
6743
|
var rest = __objRest(_a, []);
|
6582
|
-
return /* @__PURE__ */
|
6744
|
+
return /* @__PURE__ */ jsx42(NumberFormatter, __spreadValues({ thousandSeparator: true, suffix: " VN\u0110" }, rest));
|
6583
6745
|
}
|
6584
6746
|
|
6585
6747
|
// src/components/DataDisplay/StatCard/AQStatCard1.tsx
|
6586
|
-
import { Box as Box3, Button as
|
6748
|
+
import { Box as Box3, Button as Button13, Flex as Flex4, Group as Group13, Paper as Paper6, Text as Text12 } from "@mantine/core";
|
6587
6749
|
import { IconArrowDownRight as IconArrowDownRight2, IconArrowUpRight as IconArrowUpRight2 } from "@tabler/icons-react";
|
6588
|
-
import { Fragment as
|
6750
|
+
import { Fragment as Fragment12, jsx as jsx43, jsxs as jsxs25 } from "react/jsx-runtime";
|
6589
6751
|
function AQStatCard1({ title, value, unit = "", description, icons, diff }) {
|
6590
|
-
return /* @__PURE__ */
|
6752
|
+
return /* @__PURE__ */ jsx43(Fragment12, { children: /* @__PURE__ */ jsxs25(
|
6591
6753
|
Paper6,
|
6592
6754
|
{
|
6593
6755
|
withBorder: true,
|
6594
6756
|
p: "md",
|
6595
6757
|
radius: "md",
|
6596
6758
|
children: [
|
6597
|
-
/* @__PURE__ */
|
6598
|
-
/* @__PURE__ */
|
6599
|
-
/* @__PURE__ */
|
6600
|
-
|
6759
|
+
/* @__PURE__ */ jsxs25(Group13, { justify: "space-between", children: [
|
6760
|
+
/* @__PURE__ */ jsxs25(Flex4, { direction: "column", children: [
|
6761
|
+
/* @__PURE__ */ jsx43(
|
6762
|
+
Text12,
|
6601
6763
|
{
|
6602
6764
|
tt: "uppercase",
|
6603
6765
|
size: "lg",
|
@@ -6605,54 +6767,54 @@ function AQStatCard1({ title, value, unit = "", description, icons, diff }) {
|
|
6605
6767
|
children: title
|
6606
6768
|
}
|
6607
6769
|
),
|
6608
|
-
unit == "" ? /* @__PURE__ */
|
6770
|
+
unit == "" ? /* @__PURE__ */ jsxs25(Text12, { size: "xs", style: { visibility: "hidden" }, children: [
|
6609
6771
|
"\u0110\u01A1n v\u1ECB: ",
|
6610
|
-
/* @__PURE__ */
|
6611
|
-
] }) : /* @__PURE__ */
|
6772
|
+
/* @__PURE__ */ jsx43("strong", { children: unit })
|
6773
|
+
] }) : /* @__PURE__ */ jsxs25(Text12, { size: "xs", children: [
|
6612
6774
|
"\u0110\u01A1n v\u1ECB: ",
|
6613
|
-
/* @__PURE__ */
|
6775
|
+
/* @__PURE__ */ jsx43("strong", { children: unit })
|
6614
6776
|
] })
|
6615
6777
|
] }),
|
6616
|
-
/* @__PURE__ */
|
6778
|
+
/* @__PURE__ */ jsx43(Box3, { children: icons })
|
6617
6779
|
] }),
|
6618
|
-
/* @__PURE__ */
|
6619
|
-
|
6780
|
+
/* @__PURE__ */ jsxs25(
|
6781
|
+
Group13,
|
6620
6782
|
{
|
6621
6783
|
mt: "5",
|
6622
6784
|
align: "flex-end",
|
6623
6785
|
gap: "xs",
|
6624
6786
|
children: [
|
6625
|
-
/* @__PURE__ */
|
6626
|
-
|
6787
|
+
/* @__PURE__ */ jsx43(
|
6788
|
+
Text12,
|
6627
6789
|
{
|
6628
6790
|
fw: 700,
|
6629
6791
|
fz: "h1",
|
6630
6792
|
children: value
|
6631
6793
|
}
|
6632
6794
|
),
|
6633
|
-
/* @__PURE__ */
|
6634
|
-
|
6795
|
+
/* @__PURE__ */ jsxs25(
|
6796
|
+
Text12,
|
6635
6797
|
{
|
6636
6798
|
mb: "2",
|
6637
6799
|
c: diff > 0 ? "teal" : "red",
|
6638
6800
|
fz: "h2",
|
6639
6801
|
fw: 500,
|
6640
6802
|
children: [
|
6641
|
-
/* @__PURE__ */
|
6803
|
+
/* @__PURE__ */ jsxs25("span", { children: [
|
6642
6804
|
diff,
|
6643
6805
|
"%"
|
6644
6806
|
] }),
|
6645
|
-
diff > 0 ? /* @__PURE__ */
|
6807
|
+
diff > 0 ? /* @__PURE__ */ jsx43(IconArrowUpRight2, {}) : /* @__PURE__ */ jsx43(IconArrowDownRight2, {})
|
6646
6808
|
]
|
6647
6809
|
}
|
6648
6810
|
)
|
6649
6811
|
]
|
6650
6812
|
}
|
6651
6813
|
),
|
6652
|
-
/* @__PURE__ */
|
6653
|
-
/* @__PURE__ */
|
6654
|
-
/* @__PURE__ */
|
6655
|
-
|
6814
|
+
/* @__PURE__ */ jsxs25(Group13, { justify: "space-between", children: [
|
6815
|
+
/* @__PURE__ */ jsx43(Text12, { tt: "uppercase", fz: "xs", c: "dimmed", children: description }),
|
6816
|
+
/* @__PURE__ */ jsx43(
|
6817
|
+
Button13,
|
6656
6818
|
{
|
6657
6819
|
variant: "light",
|
6658
6820
|
size: "xs",
|
@@ -6667,7 +6829,7 @@ function AQStatCard1({ title, value, unit = "", description, icons, diff }) {
|
|
6667
6829
|
}
|
6668
6830
|
|
6669
6831
|
// src/components/FaviconSetter/FaviconSetter.tsx
|
6670
|
-
import { useEffect as
|
6832
|
+
import { useEffect as useEffect7 } from "react";
|
6671
6833
|
|
6672
6834
|
// src/components/Layouts/BasicAppShell/useS_BasicAppShell.ts
|
6673
6835
|
var useStore2 = createGenericStore({
|
@@ -6719,7 +6881,7 @@ function useS_BasicAppShell() {
|
|
6719
6881
|
function FaviconSetter() {
|
6720
6882
|
var _a;
|
6721
6883
|
const store = useS_BasicAppShell();
|
6722
|
-
|
6884
|
+
useEffect7(() => {
|
6723
6885
|
var _a2, _b, _c;
|
6724
6886
|
if (!((_a2 = store.state.faviconFileDetail) == null ? void 0 : _a2.fileBase64String)) return;
|
6725
6887
|
try {
|
@@ -6742,20 +6904,20 @@ function FaviconSetter() {
|
|
6742
6904
|
|
6743
6905
|
// src/components/Inputs/DateInput/MyDateInput.tsx
|
6744
6906
|
import { DateInput } from "@mantine/dates";
|
6745
|
-
import { jsx as
|
6907
|
+
import { jsx as jsx44 } from "react/jsx-runtime";
|
6746
6908
|
function MyDateInput(_a) {
|
6747
6909
|
var _b = _a, { label } = _b, rest = __objRest(_b, ["label"]);
|
6748
|
-
return /* @__PURE__ */
|
6910
|
+
return /* @__PURE__ */ jsx44(DateInput, __spreadValues({ label, placeholder: label ? `Ch\u1ECDn ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
|
6749
6911
|
}
|
6750
6912
|
|
6751
6913
|
// src/components/Inputs/Fieldset/MyFieldset.tsx
|
6752
6914
|
import {
|
6753
6915
|
Fieldset as Fieldset4,
|
6754
|
-
Group as
|
6755
|
-
Text as
|
6916
|
+
Group as Group14,
|
6917
|
+
Text as Text13,
|
6756
6918
|
useMantineColorScheme as useMantineColorScheme2
|
6757
6919
|
} from "@mantine/core";
|
6758
|
-
import { jsx as
|
6920
|
+
import { jsx as jsx45, jsxs as jsxs26 } from "react/jsx-runtime";
|
6759
6921
|
function MyFieldset(_a) {
|
6760
6922
|
var _b = _a, {
|
6761
6923
|
children,
|
@@ -6784,10 +6946,10 @@ function MyFieldset(_a) {
|
|
6784
6946
|
const mergedStyles = typeof styles === "function" ? styles : __spreadProps(__spreadValues({}, styles), {
|
6785
6947
|
legend: __spreadValues(__spreadValues({}, defaultLegendStyles), styles == null ? void 0 : styles.legend)
|
6786
6948
|
});
|
6787
|
-
return /* @__PURE__ */
|
6949
|
+
return /* @__PURE__ */ jsx45(
|
6788
6950
|
Fieldset4,
|
6789
6951
|
__spreadProps(__spreadValues({
|
6790
|
-
legend: customLegend != null ? customLegend : /* @__PURE__ */
|
6952
|
+
legend: customLegend != null ? customLegend : /* @__PURE__ */ jsx45(Group14, { gap: "xs", children: /* @__PURE__ */ jsxs26(Text13, { fw: 600, children: [
|
6791
6953
|
" ",
|
6792
6954
|
title,
|
6793
6955
|
" "
|
@@ -6802,13 +6964,13 @@ function MyFieldset(_a) {
|
|
6802
6964
|
// src/components/Inputs/FileInput/MyFileInput.tsx
|
6803
6965
|
import { FileInput as FileInput3 } from "@mantine/core";
|
6804
6966
|
import { IconFile } from "@tabler/icons-react";
|
6805
|
-
import { jsx as
|
6967
|
+
import { jsx as jsx46 } from "react/jsx-runtime";
|
6806
6968
|
function MyFileInput(_a) {
|
6807
6969
|
var _b = _a, { label } = _b, rest = __objRest(_b, ["label"]);
|
6808
|
-
return /* @__PURE__ */
|
6970
|
+
return /* @__PURE__ */ jsx46(
|
6809
6971
|
FileInput3,
|
6810
6972
|
__spreadValues({
|
6811
|
-
rightSection: /* @__PURE__ */
|
6973
|
+
rightSection: /* @__PURE__ */ jsx46(IconFile, {}),
|
6812
6974
|
label,
|
6813
6975
|
placeholder: label ? `Ch\u1ECDn ${label == null ? void 0 : label.toLowerCase()}` : ""
|
6814
6976
|
}, rest)
|
@@ -6818,26 +6980,26 @@ function MyFileInput(_a) {
|
|
6818
6980
|
// src/components/Inputs/NumberInput/MyNumberInput.tsx
|
6819
6981
|
import { NumberInput as NumberInput2 } from "@mantine/core";
|
6820
6982
|
import { IconNumbers } from "@tabler/icons-react";
|
6821
|
-
import { jsx as
|
6983
|
+
import { jsx as jsx47 } from "react/jsx-runtime";
|
6822
6984
|
function MyNumberInput(_a) {
|
6823
6985
|
var _b = _a, { minValue, label } = _b, rest = __objRest(_b, ["minValue", "label"]);
|
6824
|
-
return /* @__PURE__ */
|
6986
|
+
return /* @__PURE__ */ jsx47(
|
6825
6987
|
NumberInput2,
|
6826
6988
|
__spreadValues({
|
6827
6989
|
label,
|
6828
6990
|
min: minValue ? minValue : 0,
|
6829
6991
|
placeholder: label ? `Nh\u1EADp ${label == null ? void 0 : label.toLowerCase()}` : "",
|
6830
|
-
rightSection: /* @__PURE__ */
|
6992
|
+
rightSection: /* @__PURE__ */ jsx47(IconNumbers, {})
|
6831
6993
|
}, rest)
|
6832
6994
|
);
|
6833
6995
|
}
|
6834
6996
|
|
6835
6997
|
// src/components/Inputs/TextArea/MyTextArea.tsx
|
6836
6998
|
import { Textarea } from "@mantine/core";
|
6837
|
-
import { jsx as
|
6999
|
+
import { jsx as jsx48 } from "react/jsx-runtime";
|
6838
7000
|
function MyTextArea(_a) {
|
6839
7001
|
var _b = _a, { label } = _b, rest = __objRest(_b, ["label"]);
|
6840
|
-
return /* @__PURE__ */
|
7002
|
+
return /* @__PURE__ */ jsx48(Textarea, __spreadValues({ label, placeholder: label ? `Nh\u1EADp ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
|
6841
7003
|
}
|
6842
7004
|
|
6843
7005
|
// src/components/Inputs/TextEditor/MyTextEditor.tsx
|
@@ -6852,8 +7014,8 @@ import TextAlign from "@tiptap/extension-text-align";
|
|
6852
7014
|
import Underline from "@tiptap/extension-underline";
|
6853
7015
|
import { useEditor } from "@tiptap/react";
|
6854
7016
|
import StarterKit from "@tiptap/starter-kit";
|
6855
|
-
import { useEffect as
|
6856
|
-
import { jsx as
|
7017
|
+
import { useEffect as useEffect8, useState as useState9 } from "react";
|
7018
|
+
import { jsx as jsx49, jsxs as jsxs27 } from "react/jsx-runtime";
|
6857
7019
|
function MyTextEditor(_a) {
|
6858
7020
|
var _b = _a, {
|
6859
7021
|
autoHiddenToolBar = false,
|
@@ -6954,48 +7116,48 @@ function MyTextEditor(_a) {
|
|
6954
7116
|
}
|
6955
7117
|
}
|
6956
7118
|
}, rest));
|
6957
|
-
|
7119
|
+
useEffect8(() => {
|
6958
7120
|
if (editor && value !== editor.getHTML()) {
|
6959
7121
|
editor.commands.setContent(value);
|
6960
7122
|
}
|
6961
7123
|
}, [value, editor]);
|
6962
|
-
return /* @__PURE__ */
|
6963
|
-
/* @__PURE__ */
|
6964
|
-
/* @__PURE__ */
|
6965
|
-
/* @__PURE__ */
|
6966
|
-
/* @__PURE__ */
|
6967
|
-
/* @__PURE__ */
|
6968
|
-
/* @__PURE__ */
|
6969
|
-
/* @__PURE__ */
|
6970
|
-
/* @__PURE__ */
|
6971
|
-
/* @__PURE__ */
|
7124
|
+
return /* @__PURE__ */ jsx49(Input.Wrapper, __spreadProps(__spreadValues({ label, flex: 1, error, withAsterisk }, inputWrapperProps), { children: /* @__PURE__ */ jsxs27(RichTextEditor, __spreadProps(__spreadValues({ editor, style: { border: error && "1px solid #e03131" } }, richTextEditorProps), { children: [
|
7125
|
+
/* @__PURE__ */ jsxs27(RichTextEditor.Toolbar, { hidden: hiddenToolBar, sticky: true, stickyOffset: 60, children: [
|
7126
|
+
/* @__PURE__ */ jsxs27(RichTextEditor.ControlsGroup, { children: [
|
7127
|
+
/* @__PURE__ */ jsx49(RichTextEditor.Bold, {}),
|
7128
|
+
/* @__PURE__ */ jsx49(RichTextEditor.Italic, {}),
|
7129
|
+
/* @__PURE__ */ jsx49(RichTextEditor.Underline, {}),
|
7130
|
+
/* @__PURE__ */ jsx49(RichTextEditor.Strikethrough, {}),
|
7131
|
+
/* @__PURE__ */ jsx49(RichTextEditor.ClearFormatting, {}),
|
7132
|
+
/* @__PURE__ */ jsx49(RichTextEditor.Highlight, {}),
|
7133
|
+
/* @__PURE__ */ jsx49(RichTextEditor.Code, {})
|
6972
7134
|
] }),
|
6973
|
-
/* @__PURE__ */
|
6974
|
-
/* @__PURE__ */
|
6975
|
-
/* @__PURE__ */
|
6976
|
-
/* @__PURE__ */
|
6977
|
-
/* @__PURE__ */
|
7135
|
+
/* @__PURE__ */ jsxs27(RichTextEditor.ControlsGroup, { children: [
|
7136
|
+
/* @__PURE__ */ jsx49(RichTextEditor.H1, {}),
|
7137
|
+
/* @__PURE__ */ jsx49(RichTextEditor.H2, {}),
|
7138
|
+
/* @__PURE__ */ jsx49(RichTextEditor.H3, {}),
|
7139
|
+
/* @__PURE__ */ jsx49(RichTextEditor.H4, {})
|
6978
7140
|
] }),
|
6979
|
-
/* @__PURE__ */
|
6980
|
-
/* @__PURE__ */
|
6981
|
-
/* @__PURE__ */
|
6982
|
-
/* @__PURE__ */
|
6983
|
-
/* @__PURE__ */
|
6984
|
-
/* @__PURE__ */
|
6985
|
-
/* @__PURE__ */
|
7141
|
+
/* @__PURE__ */ jsxs27(RichTextEditor.ControlsGroup, { children: [
|
7142
|
+
/* @__PURE__ */ jsx49(RichTextEditor.Blockquote, {}),
|
7143
|
+
/* @__PURE__ */ jsx49(RichTextEditor.Hr, {}),
|
7144
|
+
/* @__PURE__ */ jsx49(RichTextEditor.BulletList, {}),
|
7145
|
+
/* @__PURE__ */ jsx49(RichTextEditor.OrderedList, {}),
|
7146
|
+
/* @__PURE__ */ jsx49(RichTextEditor.Subscript, {}),
|
7147
|
+
/* @__PURE__ */ jsx49(RichTextEditor.Superscript, {})
|
6986
7148
|
] }),
|
6987
|
-
/* @__PURE__ */
|
6988
|
-
/* @__PURE__ */
|
6989
|
-
/* @__PURE__ */
|
7149
|
+
/* @__PURE__ */ jsxs27(RichTextEditor.ControlsGroup, { children: [
|
7150
|
+
/* @__PURE__ */ jsx49(RichTextEditor.Link, {}),
|
7151
|
+
/* @__PURE__ */ jsx49(RichTextEditor.Unlink, {})
|
6990
7152
|
] }),
|
6991
|
-
/* @__PURE__ */
|
6992
|
-
/* @__PURE__ */
|
6993
|
-
/* @__PURE__ */
|
6994
|
-
/* @__PURE__ */
|
6995
|
-
/* @__PURE__ */
|
7153
|
+
/* @__PURE__ */ jsxs27(RichTextEditor.ControlsGroup, { children: [
|
7154
|
+
/* @__PURE__ */ jsx49(RichTextEditor.AlignLeft, {}),
|
7155
|
+
/* @__PURE__ */ jsx49(RichTextEditor.AlignCenter, {}),
|
7156
|
+
/* @__PURE__ */ jsx49(RichTextEditor.AlignJustify, {}),
|
7157
|
+
/* @__PURE__ */ jsx49(RichTextEditor.AlignRight, {})
|
6996
7158
|
] })
|
6997
7159
|
] }),
|
6998
|
-
/* @__PURE__ */
|
7160
|
+
/* @__PURE__ */ jsx49(
|
6999
7161
|
ScrollArea2.Autosize,
|
7000
7162
|
{
|
7001
7163
|
onMouseDown: () => {
|
@@ -7010,14 +7172,14 @@ function MyTextEditor(_a) {
|
|
7010
7172
|
setHiddenToolBar(false);
|
7011
7173
|
},
|
7012
7174
|
style: { cursor: "text", maxHeight: "400px" },
|
7013
|
-
children: /* @__PURE__ */
|
7175
|
+
children: /* @__PURE__ */ jsx49(RichTextEditor.Content, { mih: contentHeight })
|
7014
7176
|
}
|
7015
7177
|
)
|
7016
7178
|
] })) }));
|
7017
7179
|
}
|
7018
7180
|
|
7019
7181
|
// src/modules-features/authenticate/F_authenticate_Logout.tsx
|
7020
|
-
import { Button as
|
7182
|
+
import { Button as Button14 } from "@mantine/core";
|
7021
7183
|
import { IconLogout } from "@tabler/icons-react";
|
7022
7184
|
import { useRouter as useRouter3 } from "next/navigation";
|
7023
7185
|
|
@@ -7032,14 +7194,14 @@ function useS_authenticate() {
|
|
7032
7194
|
}
|
7033
7195
|
|
7034
7196
|
// src/modules-features/authenticate/F_authenticate_Logout.tsx
|
7035
|
-
import { jsx as
|
7197
|
+
import { jsx as jsx50 } from "react/jsx-runtime";
|
7036
7198
|
function F_authenticate_Logout({ redirectURL = "/auth/login" }) {
|
7037
7199
|
const router = useRouter3();
|
7038
7200
|
const S_Authenticate = useS_authenticate();
|
7039
|
-
return /* @__PURE__ */
|
7201
|
+
return /* @__PURE__ */ jsx50(Button14, { onClick: () => {
|
7040
7202
|
S_Authenticate.setProperty("token", "");
|
7041
7203
|
router.replace(redirectURL);
|
7042
|
-
}, leftSection: /* @__PURE__ */
|
7204
|
+
}, leftSection: /* @__PURE__ */ jsx50(IconLogout, {}), fullWidth: true, justify: "start", variant: "subtle", children: "\u0110\u0103ng xu\u1EA5t" });
|
7043
7205
|
}
|
7044
7206
|
|
7045
7207
|
// src/components/Layouts/BasicAppShell/BasicAppShell.tsx
|
@@ -7048,11 +7210,11 @@ import {
|
|
7048
7210
|
AppShell,
|
7049
7211
|
Badge as Badge3,
|
7050
7212
|
Divider as Divider2,
|
7051
|
-
Group as
|
7213
|
+
Group as Group15,
|
7052
7214
|
Image as Image3,
|
7053
7215
|
NavLink,
|
7054
7216
|
ScrollArea as ScrollArea3,
|
7055
|
-
Text as
|
7217
|
+
Text as Text14,
|
7056
7218
|
Tooltip as Tooltip5
|
7057
7219
|
} from "@mantine/core";
|
7058
7220
|
import { useFavicon, useMediaQuery } from "@mantine/hooks";
|
@@ -7063,8 +7225,8 @@ import {
|
|
7063
7225
|
} from "@tabler/icons-react";
|
7064
7226
|
import Link3 from "next/link";
|
7065
7227
|
import { usePathname as usePathname2 } from "next/navigation";
|
7066
|
-
import { useEffect as
|
7067
|
-
import { Fragment as
|
7228
|
+
import { useEffect as useEffect9, useMemo as useMemo3, useState as useState10 } from "react";
|
7229
|
+
import { Fragment as Fragment13, jsx as jsx51, jsxs as jsxs28 } from "react/jsx-runtime";
|
7068
7230
|
function findBreadcrumbPath(items, currentPath, parents = []) {
|
7069
7231
|
for (const item of items) {
|
7070
7232
|
if (item.link === currentPath) {
|
@@ -7079,13 +7241,13 @@ function findBreadcrumbPath(items, currentPath, parents = []) {
|
|
7079
7241
|
}
|
7080
7242
|
function getRightSection(status) {
|
7081
7243
|
if (status === "Prototype")
|
7082
|
-
return /* @__PURE__ */
|
7244
|
+
return /* @__PURE__ */ jsx51(Badge3, { styles: { root: { cursor: "pointer" } }, radius: "xs", color: "pink", circle: true, children: "P" });
|
7083
7245
|
if (status === "New")
|
7084
|
-
return /* @__PURE__ */
|
7246
|
+
return /* @__PURE__ */ jsx51(Badge3, { styles: { root: { cursor: "pointer" } }, radius: "xs", circle: true, children: "N" });
|
7085
7247
|
if (status === "Menu")
|
7086
|
-
return /* @__PURE__ */
|
7248
|
+
return /* @__PURE__ */ jsx51(Badge3, { styles: { root: { cursor: "pointer" } }, radius: "xs", color: "gray", circle: true, children: "M" });
|
7087
7249
|
if (status === "Change")
|
7088
|
-
return /* @__PURE__ */
|
7250
|
+
return /* @__PURE__ */ jsx51(Badge3, { styles: { root: { cursor: "pointer" } }, radius: "xs", color: "green", circle: true, children: "C" });
|
7089
7251
|
return null;
|
7090
7252
|
}
|
7091
7253
|
function RenderNavLinks({
|
@@ -7095,14 +7257,14 @@ function RenderNavLinks({
|
|
7095
7257
|
const pathName = usePathname2();
|
7096
7258
|
const index = pathName.split("/", 2).join("/").length;
|
7097
7259
|
const extractPathName = pathName.slice(index).replace("/", "");
|
7098
|
-
return /* @__PURE__ */
|
7260
|
+
return /* @__PURE__ */ jsx51(Fragment13, { children: items.map((item, index2) => /* @__PURE__ */ jsx51(
|
7099
7261
|
NavLink,
|
7100
7262
|
{
|
7101
7263
|
active: extractPathName === item.link,
|
7102
7264
|
component: Link3,
|
7103
7265
|
opened: basicAppShellStore.state.groupMenuOpenId.includes(item.label),
|
7104
7266
|
href: `/${pathName.split("/")[1]}/${item.link}` || "#",
|
7105
|
-
label: /* @__PURE__ */
|
7267
|
+
label: /* @__PURE__ */ jsxs28(MyFlexRow, { justify: "space-between", children: [
|
7106
7268
|
item.label,
|
7107
7269
|
" ",
|
7108
7270
|
getRightSection(item.status)
|
@@ -7114,7 +7276,7 @@ function RenderNavLinks({
|
|
7114
7276
|
return;
|
7115
7277
|
}
|
7116
7278
|
},
|
7117
|
-
children: item.links && /* @__PURE__ */
|
7279
|
+
children: item.links && /* @__PURE__ */ jsx51(RenderNavLinks, { items: item.links })
|
7118
7280
|
},
|
7119
7281
|
index2
|
7120
7282
|
)) });
|
@@ -7201,7 +7363,7 @@ function BasicAppShell({ children, menu, extraTopRight, title }) {
|
|
7201
7363
|
return result;
|
7202
7364
|
}, [menu]);
|
7203
7365
|
useFavicon(faviconUrl);
|
7204
|
-
|
7366
|
+
useEffect9(() => {
|
7205
7367
|
var _a2;
|
7206
7368
|
const data = GetAQModule_query.data;
|
7207
7369
|
if (!data) return;
|
@@ -7223,12 +7385,12 @@ function BasicAppShell({ children, menu, extraTopRight, title }) {
|
|
7223
7385
|
};
|
7224
7386
|
}
|
7225
7387
|
}, [GetAQModule_query.data]);
|
7226
|
-
|
7388
|
+
useEffect9(() => {
|
7227
7389
|
const data = GetAQModule_query.data;
|
7228
7390
|
if (!data) return;
|
7229
7391
|
document.title = data.name || "";
|
7230
7392
|
}, [GetAQModule_query.data]);
|
7231
|
-
|
7393
|
+
useEffect9(() => {
|
7232
7394
|
const linkItem = allChildItems.find((item) => pathName.includes(item.link));
|
7233
7395
|
const breadcrumb = findBreadcrumbPath(menu, linkItem == null ? void 0 : linkItem.link);
|
7234
7396
|
basicAppShellStore.setProperty("breadcrumb", breadcrumb);
|
@@ -7237,7 +7399,7 @@ function BasicAppShell({ children, menu, extraTopRight, title }) {
|
|
7237
7399
|
basicAppShellStore.setProperty("note", linkItem == null ? void 0 : linkItem.note);
|
7238
7400
|
basicAppShellStore.setProperty("status", linkItem == null ? void 0 : linkItem.status);
|
7239
7401
|
}, [pathName]);
|
7240
|
-
return /* @__PURE__ */
|
7402
|
+
return /* @__PURE__ */ jsxs28(
|
7241
7403
|
AppShell,
|
7242
7404
|
{
|
7243
7405
|
header: { height: 60 },
|
@@ -7251,77 +7413,77 @@ function BasicAppShell({ children, menu, extraTopRight, title }) {
|
|
7251
7413
|
},
|
7252
7414
|
padding: "md",
|
7253
7415
|
children: [
|
7254
|
-
/* @__PURE__ */
|
7255
|
-
/* @__PURE__ */
|
7256
|
-
/* @__PURE__ */
|
7416
|
+
/* @__PURE__ */ jsx51(AppShell.Header, { children: media ? /* @__PURE__ */ jsxs28(Group15, { h: "100%", px: "md", justify: "space-between", align: "center", children: [
|
7417
|
+
/* @__PURE__ */ jsxs28(Group15, { h: "100%", children: [
|
7418
|
+
/* @__PURE__ */ jsx51(
|
7257
7419
|
Tooltip5,
|
7258
7420
|
{
|
7259
7421
|
label: basicAppShellStore.state.opened ? "\u1EA8n thanh menu" : "Hi\u1EC7n thanh menu",
|
7260
|
-
children: /* @__PURE__ */
|
7422
|
+
children: /* @__PURE__ */ jsx51(
|
7261
7423
|
ActionIcon11,
|
7262
7424
|
{
|
7263
7425
|
size: "lg",
|
7264
7426
|
radius: "md",
|
7265
7427
|
variant: "default",
|
7266
7428
|
onClick: basicAppShellStore.toggle,
|
7267
|
-
children: basicAppShellStore.state.opened ? /* @__PURE__ */
|
7429
|
+
children: basicAppShellStore.state.opened ? /* @__PURE__ */ jsx51(IconLayoutSidebarLeftExpand, {}) : /* @__PURE__ */ jsx51(IconLayoutSidebarLeftCollapse, {})
|
7268
7430
|
}
|
7269
7431
|
)
|
7270
7432
|
}
|
7271
7433
|
),
|
7272
|
-
/* @__PURE__ */
|
7434
|
+
/* @__PURE__ */ jsx51(Tooltip5, { label: "\u0110\xF3ng t\u1EA5t c\u1EA3 menu", children: /* @__PURE__ */ jsx51(
|
7273
7435
|
ActionIcon11,
|
7274
7436
|
{
|
7275
7437
|
size: "lg",
|
7276
7438
|
radius: "md",
|
7277
7439
|
variant: "default",
|
7278
7440
|
onClick: () => basicAppShellStore.clearGroupMenuOpenId(),
|
7279
|
-
children: /* @__PURE__ */
|
7441
|
+
children: /* @__PURE__ */ jsx51(IconLibraryMinus, {})
|
7280
7442
|
}
|
7281
7443
|
) })
|
7282
7444
|
] }),
|
7283
|
-
/* @__PURE__ */
|
7284
|
-
|
7445
|
+
/* @__PURE__ */ jsx51(
|
7446
|
+
Group15,
|
7285
7447
|
{
|
7286
7448
|
style: {
|
7287
7449
|
position: "absolute",
|
7288
7450
|
left: "50%",
|
7289
7451
|
transform: "translateX(-50%)"
|
7290
7452
|
},
|
7291
|
-
children: /* @__PURE__ */
|
7453
|
+
children: /* @__PURE__ */ jsx51(Text14, { c: "green", fw: "bold", size: "sm", children: title ? title : `${basicAppShellStore.state.moduleCode} - ${basicAppShellStore.state.moduleName}` })
|
7292
7454
|
}
|
7293
7455
|
),
|
7294
|
-
/* @__PURE__ */
|
7456
|
+
/* @__PURE__ */ jsxs28(Group15, { children: [
|
7295
7457
|
extraTopRight,
|
7296
|
-
/* @__PURE__ */
|
7458
|
+
/* @__PURE__ */ jsx51(MySwitchTheme, {})
|
7297
7459
|
] })
|
7298
7460
|
] }) : (
|
7299
7461
|
// For mobile screens - simplified layout
|
7300
|
-
/* @__PURE__ */
|
7301
|
-
/* @__PURE__ */
|
7462
|
+
/* @__PURE__ */ jsxs28(Group15, { h: "100%", px: "md", justify: "space-between", children: [
|
7463
|
+
/* @__PURE__ */ jsx51(
|
7302
7464
|
ActionIcon11,
|
7303
7465
|
{
|
7304
7466
|
size: "lg",
|
7305
7467
|
radius: "md",
|
7306
7468
|
variant: "default",
|
7307
7469
|
onClick: basicAppShellStore.toggle,
|
7308
|
-
children: basicAppShellStore.state.opened ? /* @__PURE__ */
|
7470
|
+
children: basicAppShellStore.state.opened ? /* @__PURE__ */ jsx51(IconLayoutSidebarLeftExpand, {}) : /* @__PURE__ */ jsx51(IconLayoutSidebarLeftCollapse, {})
|
7309
7471
|
}
|
7310
7472
|
),
|
7311
|
-
/* @__PURE__ */
|
7312
|
-
/* @__PURE__ */
|
7473
|
+
/* @__PURE__ */ jsx51(Text14, { c: "green", fw: "bold", size: "sm", children: title ? title : `${basicAppShellStore.state.moduleCode} - ${basicAppShellStore.state.moduleName}` }),
|
7474
|
+
/* @__PURE__ */ jsxs28(Group15, { children: [
|
7313
7475
|
extraTopRight,
|
7314
|
-
/* @__PURE__ */
|
7476
|
+
/* @__PURE__ */ jsx51(MySwitchTheme, {})
|
7315
7477
|
] })
|
7316
7478
|
] })
|
7317
7479
|
) }),
|
7318
|
-
/* @__PURE__ */
|
7319
|
-
/* @__PURE__ */
|
7320
|
-
/* @__PURE__ */
|
7321
|
-
/* @__PURE__ */
|
7322
|
-
/* @__PURE__ */
|
7323
|
-
/* @__PURE__ */
|
7324
|
-
/* @__PURE__ */
|
7480
|
+
/* @__PURE__ */ jsxs28(AppShell.Navbar, { children: [
|
7481
|
+
/* @__PURE__ */ jsx51(MyAppSpotlight, { menu }),
|
7482
|
+
/* @__PURE__ */ jsx51(AppShell.Section, { grow: true, component: ScrollArea3, p: 5, children: /* @__PURE__ */ jsx51(RenderNavLinks, { items: menu }) }),
|
7483
|
+
/* @__PURE__ */ jsxs28(AppShell.Section, { px: "md", children: [
|
7484
|
+
/* @__PURE__ */ jsx51(Divider2, {}),
|
7485
|
+
/* @__PURE__ */ jsx51(F_authenticate_Logout, {}),
|
7486
|
+
/* @__PURE__ */ jsx51(
|
7325
7487
|
Image3,
|
7326
7488
|
{
|
7327
7489
|
fit: "contain",
|
@@ -7335,7 +7497,7 @@ function BasicAppShell({ children, menu, extraTopRight, title }) {
|
|
7335
7497
|
)
|
7336
7498
|
] })
|
7337
7499
|
] }),
|
7338
|
-
/* @__PURE__ */
|
7500
|
+
/* @__PURE__ */ jsx51(
|
7339
7501
|
AppShell.Main,
|
7340
7502
|
{
|
7341
7503
|
bg: "light-dark(var(--mantine-color-gray-1), var(--mantine-color-dark-8))",
|
@@ -7389,25 +7551,25 @@ function utils_layout_getItemsWithoutLinks(menu) {
|
|
7389
7551
|
}
|
7390
7552
|
|
7391
7553
|
// src/components/Layouts/Container/MyContainer.tsx
|
7392
|
-
import { Container, Flex as
|
7393
|
-
import { jsx as
|
7554
|
+
import { Container, Flex as Flex5 } from "@mantine/core";
|
7555
|
+
import { jsx as jsx52 } from "react/jsx-runtime";
|
7394
7556
|
function MyContainer(_a) {
|
7395
7557
|
var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
|
7396
|
-
return /* @__PURE__ */
|
7558
|
+
return /* @__PURE__ */ jsx52(Container, __spreadProps(__spreadValues({ fluid: true }, rest), { children: /* @__PURE__ */ jsx52(Flex5, { direction: "column", children }) }));
|
7397
7559
|
}
|
7398
7560
|
|
7399
7561
|
// src/components/Layouts/HeaderMegaMenu/HeaderMegaMenu.tsx
|
7400
7562
|
import {
|
7401
7563
|
Box as Box4,
|
7402
7564
|
Burger,
|
7403
|
-
Button as
|
7565
|
+
Button as Button15,
|
7404
7566
|
Container as Container2,
|
7405
7567
|
Divider as Divider3,
|
7406
7568
|
Drawer,
|
7407
|
-
Group as
|
7569
|
+
Group as Group16,
|
7408
7570
|
Image as Image4,
|
7409
7571
|
ScrollArea as ScrollArea4,
|
7410
|
-
Text as
|
7572
|
+
Text as Text15,
|
7411
7573
|
TextInput as TextInput3,
|
7412
7574
|
ThemeIcon,
|
7413
7575
|
UnstyledButton,
|
@@ -7439,7 +7601,7 @@ function useHeaderMegaMenuStore() {
|
|
7439
7601
|
}
|
7440
7602
|
|
7441
7603
|
// src/components/Layouts/HeaderMegaMenu/HeaderMegaMenu.tsx
|
7442
|
-
import { jsx as
|
7604
|
+
import { jsx as jsx53, jsxs as jsxs29 } from "react/jsx-runtime";
|
7443
7605
|
var mockdata = [
|
7444
7606
|
{
|
7445
7607
|
icon: IconCode,
|
@@ -7477,27 +7639,27 @@ function HeaderMegaMenu({ children, menus }) {
|
|
7477
7639
|
const [linksOpened, { toggle: toggleLinks }] = useDisclosure11(false);
|
7478
7640
|
const HeaderMegaMenuStore = useHeaderMegaMenuStore();
|
7479
7641
|
const theme = useMantineTheme();
|
7480
|
-
const links = mockdata.map((item) => /* @__PURE__ */
|
7481
|
-
/* @__PURE__ */
|
7482
|
-
/* @__PURE__ */
|
7483
|
-
/* @__PURE__ */
|
7484
|
-
/* @__PURE__ */
|
7642
|
+
const links = mockdata.map((item) => /* @__PURE__ */ jsx53(UnstyledButton, { className: css_default.subLink, children: /* @__PURE__ */ jsxs29(Group16, { wrap: "nowrap", align: "flex-start", children: [
|
7643
|
+
/* @__PURE__ */ jsx53(ThemeIcon, { size: 34, variant: "default", radius: "md", children: /* @__PURE__ */ jsx53(item.icon, { size: 22, color: theme.colors.blue[6] }) }),
|
7644
|
+
/* @__PURE__ */ jsxs29("div", { children: [
|
7645
|
+
/* @__PURE__ */ jsx53(Text15, { size: "sm", fw: 500, children: item.title }),
|
7646
|
+
/* @__PURE__ */ jsx53(Text15, { size: "xs", c: "dimmed", children: item.description })
|
7485
7647
|
] })
|
7486
7648
|
] }) }, item.title));
|
7487
|
-
return /* @__PURE__ */
|
7488
|
-
/* @__PURE__ */
|
7489
|
-
/* @__PURE__ */
|
7490
|
-
/* @__PURE__ */
|
7491
|
-
/* @__PURE__ */
|
7649
|
+
return /* @__PURE__ */ jsxs29(Box4, { children: [
|
7650
|
+
/* @__PURE__ */ jsx53("header", { className: css_default.header, children: /* @__PURE__ */ jsxs29(Group16, { justify: "space-between", h: "100%", children: [
|
7651
|
+
/* @__PURE__ */ jsxs29(Group16, { children: [
|
7652
|
+
/* @__PURE__ */ jsx53(Image4, { src: "/imgs/0/IMG0LogoAQTech.png", h: 30, alt: "", w: "auto" }),
|
7653
|
+
/* @__PURE__ */ jsx53(Group16, { h: "100%", gap: 5, visibleFrom: "sm", children: menus == null ? void 0 : menus.map((item, idx) => /* @__PURE__ */ jsx53(Button15, { component: Link4, href: item.href, variant: HeaderMegaMenuStore.state.name == item.label ? "light" : "subtle", onClick: () => HeaderMegaMenuStore.setState({ name: item.label }), children: item.label }, idx)) })
|
7492
7654
|
] }),
|
7493
|
-
/* @__PURE__ */
|
7494
|
-
/* @__PURE__ */
|
7495
|
-
/* @__PURE__ */
|
7655
|
+
/* @__PURE__ */ jsxs29(Group16, { children: [
|
7656
|
+
/* @__PURE__ */ jsx53(TextInput3, { placeholder: "T\xECm ki\u1EBFm", leftSection: /* @__PURE__ */ jsx53(IconSearch2, {}), radius: "xl", w: "250px" }),
|
7657
|
+
/* @__PURE__ */ jsx53(MySwitchTheme, {})
|
7496
7658
|
] }),
|
7497
|
-
/* @__PURE__ */
|
7659
|
+
/* @__PURE__ */ jsx53(Burger, { opened: drawerOpened, onClick: toggleDrawer, hiddenFrom: "sm" })
|
7498
7660
|
] }) }),
|
7499
|
-
/* @__PURE__ */
|
7500
|
-
/* @__PURE__ */
|
7661
|
+
/* @__PURE__ */ jsx53(Container2, { fluid: true, pt: "sm", pb: "md", bg: const_object_colors.mantineBackgroundSecondary, mih: "93vh", children }),
|
7662
|
+
/* @__PURE__ */ jsx53(
|
7501
7663
|
Drawer,
|
7502
7664
|
{
|
7503
7665
|
opened: drawerOpened,
|
@@ -7507,10 +7669,10 @@ function HeaderMegaMenu({ children, menus }) {
|
|
7507
7669
|
title: "Navigation",
|
7508
7670
|
hiddenFrom: "sm",
|
7509
7671
|
zIndex: 1e6,
|
7510
|
-
children: /* @__PURE__ */
|
7511
|
-
/* @__PURE__ */
|
7512
|
-
/* @__PURE__ */
|
7513
|
-
/* @__PURE__ */
|
7672
|
+
children: /* @__PURE__ */ jsxs29(ScrollArea4, { h: "calc(100vh - 80px", mx: "-md", children: [
|
7673
|
+
/* @__PURE__ */ jsx53(Divider3, { my: "sm" }),
|
7674
|
+
/* @__PURE__ */ jsx53(MyFlexColumn, { h: "100%", gap: 0, children: menus == null ? void 0 : menus.map((item, idx) => /* @__PURE__ */ jsx53(Button15, { component: Link4, href: item.href, variant: HeaderMegaMenuStore.state.name == item.label ? "light" : "subtle", onClick: () => HeaderMegaMenuStore.setState({ name: item.label }), children: item.label }, idx)) }),
|
7675
|
+
/* @__PURE__ */ jsx53(Divider3, { my: "sm" })
|
7514
7676
|
] })
|
7515
7677
|
}
|
7516
7678
|
)
|
@@ -7518,8 +7680,8 @@ function HeaderMegaMenu({ children, menus }) {
|
|
7518
7680
|
}
|
7519
7681
|
|
7520
7682
|
// src/components/Layouts/PageContent/MyPageContent.tsx
|
7521
|
-
import { Badge as Badge4, Breadcrumbs, Container as Container3, Divider as Divider4, Group as
|
7522
|
-
import { jsx as
|
7683
|
+
import { Badge as Badge4, Breadcrumbs, Container as Container3, Divider as Divider4, Group as Group17, Text as Text16, Title } from "@mantine/core";
|
7684
|
+
import { jsx as jsx54, jsxs as jsxs30 } from "react/jsx-runtime";
|
7523
7685
|
var getStatusColor = (status) => {
|
7524
7686
|
switch (status) {
|
7525
7687
|
case "Prototype":
|
@@ -7530,10 +7692,10 @@ var getStatusColor = (status) => {
|
|
7530
7692
|
};
|
7531
7693
|
function PageTitle({ title, status, note }) {
|
7532
7694
|
const color = getStatusColor(status);
|
7533
|
-
return /* @__PURE__ */
|
7534
|
-
/* @__PURE__ */
|
7535
|
-
/* @__PURE__ */
|
7536
|
-
status && /* @__PURE__ */
|
7695
|
+
return /* @__PURE__ */ jsx54(Group17, { children: /* @__PURE__ */ jsxs30(MyFlexColumn, { gap: 0, children: [
|
7696
|
+
/* @__PURE__ */ jsxs30(Group17, { align: "center", children: [
|
7697
|
+
/* @__PURE__ */ jsx54(Title, { order: 3, children: title }),
|
7698
|
+
status && /* @__PURE__ */ jsx54(
|
7537
7699
|
Badge4,
|
7538
7700
|
{
|
7539
7701
|
variant: "gradient",
|
@@ -7544,7 +7706,7 @@ function PageTitle({ title, status, note }) {
|
|
7544
7706
|
}
|
7545
7707
|
)
|
7546
7708
|
] }),
|
7547
|
-
/* @__PURE__ */
|
7709
|
+
/* @__PURE__ */ jsx54(Text16, { size: "lg", c: "dimmed", fs: "italic", children: note })
|
7548
7710
|
] }) });
|
7549
7711
|
}
|
7550
7712
|
function MyPageContent({
|
@@ -7557,11 +7719,11 @@ function MyPageContent({
|
|
7557
7719
|
var _a;
|
7558
7720
|
const basicAppShellStore = useS_BasicAppShell();
|
7559
7721
|
const finalTitle = title || basicAppShellStore.state.title;
|
7560
|
-
return /* @__PURE__ */
|
7561
|
-
/* @__PURE__ */
|
7562
|
-
/* @__PURE__ */
|
7563
|
-
/* @__PURE__ */
|
7564
|
-
/* @__PURE__ */
|
7722
|
+
return /* @__PURE__ */ jsxs30(Container3, { p: 0, fluid: true, children: [
|
7723
|
+
/* @__PURE__ */ jsxs30(Group17, { justify: "space-between", children: [
|
7724
|
+
/* @__PURE__ */ jsxs30(Group17, { children: [
|
7725
|
+
/* @__PURE__ */ jsx54(MyButtonRouterBack, {}),
|
7726
|
+
/* @__PURE__ */ jsx54(
|
7565
7727
|
PageTitle,
|
7566
7728
|
{
|
7567
7729
|
title: finalTitle,
|
@@ -7571,63 +7733,63 @@ function MyPageContent({
|
|
7571
7733
|
),
|
7572
7734
|
leftTopBar
|
7573
7735
|
] }),
|
7574
|
-
/* @__PURE__ */
|
7736
|
+
/* @__PURE__ */ jsxs30(Group17, { p: "md", children: [
|
7575
7737
|
rightTopBar,
|
7576
|
-
/* @__PURE__ */
|
7738
|
+
/* @__PURE__ */ jsx54(Breadcrumbs, { separatorMargin: "7", children: (_a = basicAppShellStore.state.breadcrumb) == null ? void 0 : _a.map((item, idx) => /* @__PURE__ */ jsx54(Text16, { fw: "600", c: "blue", children: item }, idx)) })
|
7577
7739
|
] })
|
7578
7740
|
] }),
|
7579
|
-
/* @__PURE__ */
|
7741
|
+
/* @__PURE__ */ jsx54(Divider4, { my: "xs" }),
|
7580
7742
|
children,
|
7581
|
-
/* @__PURE__ */
|
7743
|
+
/* @__PURE__ */ jsx54(Divider4, { my: "xs" })
|
7582
7744
|
] });
|
7583
7745
|
}
|
7584
7746
|
|
7585
7747
|
// src/components/Layouts/Tab/MyTab.tsx
|
7586
7748
|
import { rem, Space as Space3, Tabs } from "@mantine/core";
|
7587
|
-
import { jsx as
|
7749
|
+
import { jsx as jsx55, jsxs as jsxs31 } from "react/jsx-runtime";
|
7588
7750
|
function MyTab(_a) {
|
7589
7751
|
var _b = _a, { tabList, children } = _b, rest = __objRest(_b, ["tabList", "children"]);
|
7590
7752
|
const iconStyle = { width: rem(20), height: rem(20) };
|
7591
|
-
return /* @__PURE__ */
|
7592
|
-
/* @__PURE__ */
|
7593
|
-
return /* @__PURE__ */
|
7753
|
+
return /* @__PURE__ */ jsxs31(Tabs, __spreadProps(__spreadValues({ defaultValue: tabList[0].label }, rest), { children: [
|
7754
|
+
/* @__PURE__ */ jsx55(Tabs.List, { children: tabList.map((item, idx) => {
|
7755
|
+
return /* @__PURE__ */ jsx55(Tabs.Tab, { value: item.label, leftSection: item.icon && /* @__PURE__ */ jsx55(item.icon, { style: iconStyle }), children: item.label }, idx);
|
7594
7756
|
}) }),
|
7595
|
-
/* @__PURE__ */
|
7757
|
+
/* @__PURE__ */ jsx55(Space3, { my: "md" }),
|
7596
7758
|
children
|
7597
7759
|
] }));
|
7598
7760
|
}
|
7599
7761
|
|
7600
7762
|
// src/components/RESTAPIComponents/DataTableSelect/MyDataTableSelect.tsx
|
7601
|
-
import { ActionIcon as ActionIcon12, Button as
|
7763
|
+
import { ActionIcon as ActionIcon12, Button as Button16, Fieldset as Fieldset5, Group as Group18, Modal as Modal11 } from "@mantine/core";
|
7602
7764
|
import { useDisclosure as useDisclosure12 } from "@mantine/hooks";
|
7603
7765
|
import { IconX as IconX2 } from "@tabler/icons-react";
|
7604
|
-
import { jsx as
|
7766
|
+
import { jsx as jsx56, jsxs as jsxs32 } from "react/jsx-runtime";
|
7605
7767
|
function MyDataTableSelect(_a) {
|
7606
7768
|
var _b = _a, { modalSize, renderTopToolbarCustomActions, data, selectButtonlabel, listState, columns, listLabel } = _b, rest = __objRest(_b, ["modalSize", "renderTopToolbarCustomActions", "data", "selectButtonlabel", "listState", "columns", "listLabel"]);
|
7607
7769
|
const disc = useDisclosure12(false);
|
7608
7770
|
if (data == void 0) return "\u0110ang t\u1EA3i...";
|
7609
|
-
return /* @__PURE__ */
|
7610
|
-
/* @__PURE__ */
|
7771
|
+
return /* @__PURE__ */ jsxs32(Fieldset5, { legend: listLabel ? listLabel : "Danh s\xE1ch", children: [
|
7772
|
+
/* @__PURE__ */ jsx56(
|
7611
7773
|
MyDataTable,
|
7612
7774
|
__spreadValues({
|
7613
7775
|
renderTopToolbarCustomActions: ({ table }) => {
|
7614
|
-
return /* @__PURE__ */
|
7776
|
+
return /* @__PURE__ */ jsxs32(Group18, { children: [
|
7615
7777
|
renderTopToolbarCustomActions && renderTopToolbarCustomActions({ table }),
|
7616
|
-
/* @__PURE__ */
|
7778
|
+
/* @__PURE__ */ jsx56(Button16, { onClick: disc[1].open, children: selectButtonlabel || "Ch\u1ECDn t\u1EEB danh s\xE1ch" })
|
7617
7779
|
] });
|
7618
7780
|
},
|
7619
7781
|
columns,
|
7620
7782
|
data: listState[0],
|
7621
7783
|
renderRowActions: ({ row }) => {
|
7622
|
-
return /* @__PURE__ */
|
7784
|
+
return /* @__PURE__ */ jsx56(MyCenterFull, { children: /* @__PURE__ */ jsx56(ActionIcon12, { color: "red", onClick: () => listState[1].remove(row.index), children: /* @__PURE__ */ jsx56(IconX2, {}) }) });
|
7623
7785
|
}
|
7624
7786
|
}, rest)
|
7625
7787
|
),
|
7626
|
-
/* @__PURE__ */
|
7788
|
+
/* @__PURE__ */ jsx56(Modal11, { opened: disc[0], onClose: disc[1].close, size: modalSize || "80%", children: /* @__PURE__ */ jsx56(
|
7627
7789
|
MyDataTable,
|
7628
7790
|
__spreadValues({
|
7629
7791
|
renderTopToolbarCustomActions: ({ table }) => {
|
7630
|
-
return /* @__PURE__ */
|
7792
|
+
return /* @__PURE__ */ jsx56(Button16, { onClick: () => {
|
7631
7793
|
table.getSelectedRowModel().rows.map((item) => listState[1].append(item.original));
|
7632
7794
|
disc[1].close();
|
7633
7795
|
}, children: "Ch\u1ECDn" });
|
@@ -7643,7 +7805,7 @@ function MyDataTableSelect(_a) {
|
|
7643
7805
|
// src/components/RESTAPIComponents/SelectAPIGet/MySelectAPIGet.tsx
|
7644
7806
|
import { Select as Select3 } from "@mantine/core";
|
7645
7807
|
import { useQuery as useQuery2 } from "@tanstack/react-query";
|
7646
|
-
import { jsx as
|
7808
|
+
import { jsx as jsx57 } from "react/jsx-runtime";
|
7647
7809
|
function MySelectAPIGet(_a) {
|
7648
7810
|
var _b = _a, { apiGet, label = "", dataMapper } = _b, rest = __objRest(_b, ["apiGet", "label", "dataMapper"]);
|
7649
7811
|
var _a2;
|
@@ -7662,7 +7824,7 @@ function MySelectAPIGet(_a) {
|
|
7662
7824
|
label: `${item.code}-${item.name}`
|
7663
7825
|
};
|
7664
7826
|
});
|
7665
|
-
return /* @__PURE__ */
|
7827
|
+
return /* @__PURE__ */ jsx57(
|
7666
7828
|
Select3,
|
7667
7829
|
__spreadValues({
|
7668
7830
|
label,
|
@@ -7677,7 +7839,7 @@ import { useNextCalendarApp as useNextCalendarApp2, ScheduleXCalendar as Schedul
|
|
7677
7839
|
import { createEventsServicePlugin as createEventsServicePlugin2 } from "@schedule-x/events-service";
|
7678
7840
|
import { useState as useState11 } from "react";
|
7679
7841
|
import { createEventModalPlugin as createEventModalPlugin2 } from "@schedule-x/event-modal";
|
7680
|
-
import { jsx as
|
7842
|
+
import { jsx as jsx58 } from "react/jsx-runtime";
|
7681
7843
|
function MyScheduleX({
|
7682
7844
|
values,
|
7683
7845
|
timeGridEvent,
|
@@ -7702,7 +7864,7 @@ function MyScheduleX({
|
|
7702
7864
|
events: values,
|
7703
7865
|
plugins: [eventsService, eventModalPlugin]
|
7704
7866
|
});
|
7705
|
-
return /* @__PURE__ */
|
7867
|
+
return /* @__PURE__ */ jsx58(
|
7706
7868
|
ScheduleXCalendar2,
|
7707
7869
|
{
|
7708
7870
|
calendarApp: calendar,
|
@@ -7716,9 +7878,9 @@ function MyScheduleX({
|
|
7716
7878
|
|
7717
7879
|
// src/components/Skeletons/SkeletonTable/MySkeletonTable.tsx
|
7718
7880
|
import { Skeleton } from "@mantine/core";
|
7719
|
-
import { jsx as
|
7881
|
+
import { jsx as jsx59 } from "react/jsx-runtime";
|
7720
7882
|
function MySkeletonTable({ h: h4 = 500 }) {
|
7721
|
-
return /* @__PURE__ */
|
7883
|
+
return /* @__PURE__ */ jsx59(Skeleton, { h: h4 });
|
7722
7884
|
}
|
7723
7885
|
|
7724
7886
|
export {
|
@@ -7728,6 +7890,7 @@ export {
|
|
7728
7890
|
MyBoxesBackground,
|
7729
7891
|
MyActionIcon,
|
7730
7892
|
MyTextInput,
|
7893
|
+
MyFlexColumn,
|
7731
7894
|
MyActionIconCheck,
|
7732
7895
|
MyButton,
|
7733
7896
|
MyActionIconModal,
|
@@ -7748,6 +7911,7 @@ export {
|
|
7748
7911
|
MyFlexEnd,
|
7749
7912
|
useS_ButtonImport,
|
7750
7913
|
SelectFieldModal,
|
7914
|
+
MyDataTable,
|
7751
7915
|
SelectFileModal,
|
7752
7916
|
MyButtonImport,
|
7753
7917
|
AQSelectTableByOpenModal,
|
@@ -7759,6 +7923,7 @@ export {
|
|
7759
7923
|
MyCalendar,
|
7760
7924
|
MyCenterFull,
|
7761
7925
|
MyCheckbox,
|
7926
|
+
MyFlexRow,
|
7762
7927
|
AQCard,
|
7763
7928
|
MyCardInformation,
|
7764
7929
|
MyIconText,
|