aq-fe-framework 0.1.451 → 0.1.453

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.
@@ -1,14 +1,9 @@
1
- import {
2
- utils_pdf_download
3
- } from "./chunk-5U2JSHSJ.mjs";
4
1
  import {
5
2
  createGenericStore
6
3
  } from "./chunk-U62R2QKJ.mjs";
7
4
  import {
8
- MyDataTable,
9
- MyFlexColumn,
10
- MyFlexRow
11
- } from "./chunk-RZBHPPQT.mjs";
5
+ utils_pdf_download
6
+ } from "./chunk-5U2JSHSJ.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 jsx6, jsxs as jsxs2 } from "react/jsx-runtime";
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__ */ jsx6(Tooltip, { label: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp", children: /* @__PURE__ */ jsx6(ActionIcon2, __spreadProps(__spreadValues({ color: "cyan", onClick: disc[1].open }, rest), { children: /* @__PURE__ */ jsx6(IconChecklist, { size: 24, color: "blue" }) })) }),
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__ */ jsx6(Text2, { children: "Ki\u1EC3m tra h\u1ED3 s\u01A1 \u0111\xE3 \u0111\u0103ng k\xFD" }),
210
+ title: /* @__PURE__ */ jsx7(Text2, { children: "Ki\u1EC3m tra h\u1ED3 s\u01A1 \u0111\xE3 \u0111\u0103ng k\xFD" }),
208
211
  children: [
209
- /* @__PURE__ */ jsx6(
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__ */ jsx6(MyTextInput, { label: "Nh\u1EADn x\xE9t" }),
218
- /* @__PURE__ */ jsx6(Checkbox, { label: "G\u1EEDi mail th\xF4ng b\xE1o" }),
219
- /* @__PURE__ */ jsx6(Button, { children: "C\u1EADp nh\u1EADp" })
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 jsx7 } from "react/jsx-runtime";
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__ */ jsx7(Button2, __spreadProps(__spreadValues({ color: "indigo" }, rest), { children }));
237
+ return /* @__PURE__ */ jsx8(Button2, __spreadProps(__spreadValues({ color: "indigo" }, rest), { children }));
235
238
  }
236
239
  if (crudType == "create") {
237
- return /* @__PURE__ */ jsx7(Button2, __spreadProps(__spreadValues({ color: "indigo", type: "submit", leftSection: /* @__PURE__ */ jsx7(IconPlus2, {}) }, rest), { children: children ? children : "L\u01B0u" }));
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__ */ jsx7(Button2, __spreadProps(__spreadValues({ color: "green", type: "submit", leftSection: /* @__PURE__ */ jsx7(IconPlus2, {}) }, rest), { children: children ? children : "Th\xEAm danh s\xE1ch" }));
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__ */ jsx7(Button2, __spreadProps(__spreadValues({ color: "red", leftSection: /* @__PURE__ */ jsx7(IconTrash2, {}) }, rest), { children: children ? children : "X\xE1c nh\u1EADn x\xF3a" }));
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__ */ jsx7(Button2, __spreadProps(__spreadValues({ color: "yellow", type: "submit", leftSection: /* @__PURE__ */ jsx7(IconEdit2, {}) }, rest), { children: children ? children : "Ch\u1EC9nh s\u1EEDa" }));
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__ */ jsx7(Button2, __spreadProps(__spreadValues({ color: "blue", type: "submit", leftSection: /* @__PURE__ */ jsx7(IconDeviceFloppy2, {}) }, rest), { children: children ? children : "L\u01B0u" }));
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__ */ jsx7(Button2, __spreadProps(__spreadValues({ color: "green.8", leftSection: /* @__PURE__ */ jsx7(IconFileImport, {}) }, rest), { children: children ? children : "Import" }));
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__ */ jsx7(Button2, __spreadProps(__spreadValues({ color: "orange.7", leftSection: /* @__PURE__ */ jsx7(IconPrinter, {}) }, rest), { children: children ? children : "In" }));
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__ */ jsx7(Button2, __spreadProps(__spreadValues({ color: "green.8", leftSection: /* @__PURE__ */ jsx7(IconFileExport, {}) }, rest), { children: children ? children : "Export" }));
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__ */ jsx7(Button2, __spreadProps(__spreadValues({ color: "gray", leftSection: /* @__PURE__ */ jsx7(IconX, {}) }, rest), { children: children ? children : "H\u1EE7y thao t\xE1c" }));
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__ */ jsx7(Button2, __spreadProps(__spreadValues({}, rest), { children: children ? children : "Ch\u1ECDn" }));
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 jsx8, jsxs as jsxs3 } from "react/jsx-runtime";
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__ */ jsx8(ActionIcon3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "indigo" }, rest), { children: icon })),
299
- /* @__PURE__ */ jsx8(
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__ */ jsx8(MyFlexColumn, { children })
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__ */ jsx8(ActionIcon3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open }, rest), { children: icon ? icon : /* @__PURE__ */ jsx8(IconPlus3, {}) })),
315
- /* @__PURE__ */ jsx8(
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__ */ jsx8(MyFlexColumn, { children })
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__ */ jsx8(ActionIcon3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "yellow" }, rest), { children: icon ? icon : /* @__PURE__ */ jsx8(IconEdit3, {}) })),
331
- /* @__PURE__ */ jsx8(
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__ */ jsx8(MyFlexColumn, { children })
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__ */ jsx8(ActionIcon3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "red" }, rest), { children: icon ? icon : /* @__PURE__ */ jsx8(IconTrash3, {}) })),
347
- /* @__PURE__ */ jsx8(
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__ */ jsx8(MyFlexColumn, { children })
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__ */ jsx8(ActionIcon3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "green" }, rest), { children: icon ? icon : /* @__PURE__ */ jsx8(IconTrash3, {}) })),
363
- /* @__PURE__ */ jsx8(
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__ */ jsx8(MyFlexColumn, { children })
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 jsx9, jsxs as jsxs4 } from "react/jsx-runtime";
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__ */ jsx9(
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__ */ jsx9(
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__ */ jsx9(
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 jsx10, jsxs as jsxs5 } from "react/jsx-runtime";
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__ */ jsx10(MyActionIconModal, __spreadProps(__spreadValues({ disclosure: disc, crudType: "update" }, rest), { children: /* @__PURE__ */ jsx10("form", { onSubmit: form.onSubmit((values) => {
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__ */ jsx10(
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 jsx11 } from "react/jsx-runtime";
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__ */ jsx11(Tooltip2, { label: "Nh\u1EA5p \u0111\u1EC3 t\u1EA3i xu\u1ED1ng", children: /* @__PURE__ */ jsx11(ActionIcon4, { onClick: async () => await utils_pdf_download(pdfLink), color: "red", children: /* @__PURE__ */ jsx11(IconDownload, {}) }) });
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 jsx12 } from "react/jsx-runtime";
596
+ import { jsx as jsx13 } from "react/jsx-runtime";
594
597
  function MyActionIconUpload() {
595
598
  const openRef = useRef(null);
596
- return /* @__PURE__ */ jsx12(
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__ */ jsx12(ActionIcon5, { children: /* @__PURE__ */ jsx12(IconCloudUpload, {}) })
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 jsx13, jsxs as jsxs6 } from "react/jsx-runtime";
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__ */ jsx13(Tooltip3, { label: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp", children: /* @__PURE__ */ jsx13(ActionIcon6, __spreadProps(__spreadValues({ color: "cyan", onClick: disc[1].open }, rest), { children: /* @__PURE__ */ jsx13(IconLivePhoto, {}) })) }),
628
- /* @__PURE__ */ jsx13(
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__ */ jsx13(Text3, { children: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp" }),
637
- fullScreen[0] ? /* @__PURE__ */ jsx13(
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__ */ jsx13(IconMinimize, {})
647
+ children: /* @__PURE__ */ jsx14(IconMinimize, {})
645
648
  }
646
- ) : /* @__PURE__ */ jsx13(
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__ */ jsx13(IconMaximize, {})
656
+ children: /* @__PURE__ */ jsx14(IconMaximize, {})
654
657
  }
655
658
  )
656
659
  ] }),
657
- children: /* @__PURE__ */ jsx13(Paper, { h: hSize[0], p: "lg", children: /* @__PURE__ */ jsx13("iframe", { src: pdfLink, width: "100%", height: "100%" }) })
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 jsx14 } from "react/jsx-runtime";
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__ */ jsx14(
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__ */ jsx14(IconSun, { width: "22px", height: "22px", stroke: 1.5 }) : /* @__PURE__ */ jsx14(IconMoon, { width: "22px", height: "22px", stroke: 1.5 })
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 jsx15, jsxs as jsxs7 } from "react/jsx-runtime";
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__ */ jsx15(
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__ */ jsx15(IconSearch, {}),
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__ */ jsx15(
749
+ /* @__PURE__ */ jsx16(
747
750
  Spotlight.Search,
748
751
  {
749
752
  placeholder: "T\xECm ki\u1EBFm menu...",
750
- leftSection: /* @__PURE__ */ jsx15(IconSearch, { stroke: 1.5 })
753
+ leftSection: /* @__PURE__ */ jsx16(IconSearch, { stroke: 1.5 })
751
754
  }
752
755
  ),
753
- /* @__PURE__ */ jsx15(Spotlight.ActionsList, { mah: "70vh", children: filteredItems.length > 0 ? filteredItems.map((item, idx) => /* @__PURE__ */ jsx15(
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__ */ jsx15(Text4, { children: item.label }),
767
+ /* @__PURE__ */ jsx16(Text4, { children: item.label }),
765
768
  /* @__PURE__ */ jsxs7(Group3, { gap: 5, children: [
766
- item.note && /* @__PURE__ */ jsx15(Text4, { opacity: 0.6, size: "xs", children: item.note }),
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__ */ jsx15(Badge, { variant: "default", children: item.status })
777
+ item.status && item.status != "Default" && /* @__PURE__ */ jsx16(Badge, { variant: "default", children: item.status })
775
778
  ] })
776
779
  },
777
780
  idx
778
- )) : /* @__PURE__ */ jsx15(Spotlight.Empty, { children: "Kh\xF4ng t\xECm th\u1EA5y trang..." }) })
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 jsx16, jsxs as jsxs8 } from "react/jsx-runtime";
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__ */ jsx16(Anchor, { onClick: disc[1].open, children: label }),
797
- /* @__PURE__ */ jsx16(
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__ */ jsx16(Text5, { children: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp" }),
806
- fullScreen[0] ? /* @__PURE__ */ jsx16(
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__ */ jsx16(IconMinimize2, {})
816
+ children: /* @__PURE__ */ jsx17(IconMinimize2, {})
814
817
  }
815
- ) : /* @__PURE__ */ jsx16(
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__ */ jsx16(IconMaximize2, {})
825
+ children: /* @__PURE__ */ jsx17(IconMaximize2, {})
823
826
  }
824
827
  )
825
828
  ] }),
826
- children: /* @__PURE__ */ jsx16(Paper2, { h: hSize[0], children: /* @__PURE__ */ jsx16("iframe", { src: pdfLink, width: "100%", height: "100%" }) })
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 jsx17, jsxs as jsxs9 } from "react/jsx-runtime";
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__ */ jsx17(Button3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "indigo" }, rest), { children: label })),
867
- /* @__PURE__ */ jsx17(
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__ */ jsx17(MyFlexColumn, { children })
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__ */ jsx17(Button3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, leftSection: /* @__PURE__ */ jsx17(IconPlus4, {}) }, rest), { children: label ? label : `Th\xEAm` })),
883
- /* @__PURE__ */ jsx17(
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__ */ jsx17(MyFlexColumn, { children })
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__ */ jsx17(Button3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "green", leftSection: /* @__PURE__ */ jsx17(IconPlus4, {}) }, rest), { children: label ? label : `Import ${objectNameLower}` })),
899
- /* @__PURE__ */ jsx17(
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__ */ jsx17(MyFlexColumn, { children })
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__ */ jsx17(Button3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "yellow", leftSection: /* @__PURE__ */ jsx17(IconEdit4, {}) }, rest), { children: label ? label : `Ch\u1EC9nh s\u1EEDa ${objectNameLower}` })),
915
- /* @__PURE__ */ jsx17(
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__ */ jsx17(MyFlexColumn, { children })
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__ */ jsx17(Button3, __spreadProps(__spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "red", leftSection: /* @__PURE__ */ jsx17(IconTrash4, {}) }, rest), { children: label ? label : `X\xF3a ${objectNameLower}` })),
931
- /* @__PURE__ */ jsx17(
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__ */ jsx17(MyFlexColumn, { children })
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 jsx18, jsxs as jsxs10 } from "react/jsx-runtime";
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__ */ jsx18(MyButtonModal, __spreadProps(__spreadValues({ disclosure: disc, crudType: "createMultiple" }, rest), { children: /* @__PURE__ */ jsx18("form", { onSubmit: form.onSubmit((values) => {
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__ */ jsx18(
1001
+ /* @__PURE__ */ jsx19(
999
1002
  FileInput,
1000
1003
  {
1001
- leftSection: /* @__PURE__ */ jsx18(IconFileTypeXls, {}),
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__ */ jsx18(MyButton, { type: "submit", crudType: "createMultiple" })
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 jsx19 } from "react/jsx-runtime";
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__ */ jsx19(
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__ */ jsx19(IconDownload2, {}),
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 jsx20, jsxs as jsxs11 } from "react/jsx-runtime";
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__ */ jsx20(MyButtonModal, __spreadProps(__spreadValues({ disclosure, crudType: "create" }, rest), { children: /* @__PURE__ */ jsx20("form", { onSubmit: form.onSubmit((values) => {
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__ */ jsx20(MyButton, { type: "submit", crudType: "save" })
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 jsx21, jsxs as jsxs12 } from "react/jsx-runtime";
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__ */ jsx21(
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__ */ jsx21(
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__ */ jsx21(
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 Button7, Modal as Modal8, useModalsStack as useModalsStack3 } from "@mantine/core";
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 jsx22 } from "react/jsx-runtime";
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__ */ jsx22(Select, __spreadValues({ label, placeholder: label ? `Ch\u1ECDn ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
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 jsx23 } from "react/jsx-runtime";
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__ */ jsx23(Group6, __spreadProps(__spreadValues({ justify: "end", mt: "md" }, rest), { children }));
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 jsx24, jsxs as jsxs13 } from "react/jsx-runtime";
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__ */ jsx24(Table.Thead, { bg: "cyan", children: /* @__PURE__ */ jsxs13(Table.Tr, { children: [
1406
- /* @__PURE__ */ jsx24(Table.Th, { children: "M\xE3 field" }),
1407
- /* @__PURE__ */ jsx24(Table.Th, { children: "T\xEAn field" })
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__ */ jsx24(Table.Tbody, { children: (_a = store.state.fieldConfig) == null ? void 0 : _a.filter((item) => item.isSelected == false || item.isSelected == void 0).map((item, idx) => /* @__PURE__ */ jsxs13(
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__ */ jsx24(Table.Td, { onClick: () => store.changeSelected(item.fieldKey.toString(), true), children: item.fieldKey.toString() }),
1415
- /* @__PURE__ */ jsx24(Table.Td, { onClick: () => store.changeSelected(item.fieldKey.toString(), true), children: item.fieldName })
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__ */ jsx24(Space2, {}),
1422
- /* @__PURE__ */ jsx24(Group7, { children: /* @__PURE__ */ jsx24(
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__ */ jsx24(IconArrowBigRight, {}),
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__ */ jsx24(Table.Thead, { children: /* @__PURE__ */ jsxs13(Table.Tr, { children: [
1436
- /* @__PURE__ */ jsx24(Table.Th, { children: "M\xE3 field" }),
1437
- /* @__PURE__ */ jsx24(Table.Th, { children: "T\xEAn field" }),
1438
- /* @__PURE__ */ jsx24(Table.Th, { children: "C\u1ED9t map" })
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__ */ jsx24(Table.Tbody, { children: (_b = store.state.fieldConfig) == null ? void 0 : _b.filter((item) => item.isSelected == true).map((item, idx) => /* @__PURE__ */ jsxs13(
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__ */ jsx24(Table.Td, { onClick: () => store.changeSelected(item.fieldKey.toString(), false), children: item.fieldKey.toString() }),
1446
- /* @__PURE__ */ jsx24(Table.Td, { onClick: () => store.changeSelected(item.fieldKey.toString(), false), children: item.fieldName }),
1447
- /* @__PURE__ */ jsx24(Table.Td, { children: /* @__PURE__ */ jsx24(MySelect, { data: store.state.title, value: item.fieldToMap, onChange: (e4) => store.setFieldToMap(item.fieldKey.toString(), e4) }) })
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__ */ jsx24(Space2, {}),
1454
- /* @__PURE__ */ jsx24(
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__ */ jsx24(IconArrowBigLeft, {}),
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__ */ jsx24(Divider, {}),
1469
+ /* @__PURE__ */ jsx25(Divider, {}),
1467
1470
  /* @__PURE__ */ jsxs13(MyFlexEnd, { children: [
1468
- /* @__PURE__ */ jsx24(
1471
+ /* @__PURE__ */ jsx25(
1469
1472
  Button5,
1470
1473
  {
1471
- leftSection: /* @__PURE__ */ jsx24(IconArrowBackUp, {}),
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__ */ jsx24(
1480
+ /* @__PURE__ */ jsx25(
1478
1481
  Button5,
1479
1482
  {
1480
1483
  color: "blue.8",
1481
- leftSection: /* @__PURE__ */ jsx24(IconArrowBigRight, {}),
1484
+ leftSection: /* @__PURE__ */ jsx25(IconArrowBigRight, {}),
1482
1485
  onClick: onImport,
1483
1486
  children: "Ti\u1EBFp t\u1EE5c / Import"
1484
1487
  }
1485
1488
  ),
1486
- /* @__PURE__ */ jsx24(
1489
+ /* @__PURE__ */ jsx25(
1487
1490
  Button5,
1488
1491
  {
1489
- leftSection: /* @__PURE__ */ jsx24(IconSquareRoundedX, {}),
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 Button6, Fieldset as Fieldset2, FileInput as FileInput2, Modal as Modal7, NumberInput, Select as Select2, SimpleGrid as SimpleGrid2 } from "@mantine/core";
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 jsx25, jsxs as jsxs14 } from "react/jsx-runtime";
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__ */ jsxs14(
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__ */ jsx25(
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__ */ jsxs14(SimpleGrid2, { cols: { base: 1, md: 2, lg: 2, xl: 4 }, children: [
1524
- /* @__PURE__ */ jsx25(
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__ */ jsx25(
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__ */ jsx25(
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__ */ jsx25(
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__ */ jsx25(Fieldset2, { legend: "Danh s\xE1ch tr\u01B0\u1EDDng th\xF4ng tin trong file d\u1EEF li\u1EC7u", children: store.state.data && /* @__PURE__ */ jsx25(
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__ */ jsxs14(MyFlexEnd, { children: [
1567
- /* @__PURE__ */ jsx25(
1568
- Button6,
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__ */ jsx25(
1576
- Button6,
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__ */ jsx25(IconArrowBigRight2, {}),
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__ */ jsx25(
1586
- Button6,
1739
+ /* @__PURE__ */ jsx27(
1740
+ Button7,
1587
1741
  {
1588
1742
  color: "red.6",
1589
- leftSection: /* @__PURE__ */ jsx25(IconSquareRoundedX2, {}),
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 Fragment7, jsx as jsx26, jsxs as jsxs15 } from "react/jsx-runtime";
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__ */ jsxs15(Fragment7, { children: [
1609
- /* @__PURE__ */ jsx26(Button7, { color: "teal.8", onClick: () => stack.open("select-file-page"), leftSection: /* @__PURE__ */ jsx26(IconFileImport2, {}), title: "Import", children: "Import" }),
1610
- /* @__PURE__ */ jsxs15(Modal8.Stack, { children: [
1611
- /* @__PURE__ */ jsx26(SelectFileModal, { stack, onExportStructure }),
1612
- /* @__PURE__ */ jsx26(SelectFieldModal, { stack, onImport: () => onImport(store.getDataFinal()) })
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 Button8, Fieldset as Fieldset3, Modal as Modal9 } from "@mantine/core";
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 Fragment8, jsx as jsx27, jsxs as jsxs16 } from "react/jsx-runtime";
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__ */ jsxs16(Fragment8, { children: [
1649
- /* @__PURE__ */ jsx27(
1650
- Button8,
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__ */ jsx27(
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__ */ jsx27(MyFlexColumn, { children: /* @__PURE__ */ jsx27(Fieldset3, { legend: listLabel ? listLabel : "Danh s\xE1ch", children: /* @__PURE__ */ jsx27(
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__ */ jsx27(Button8, { onClick: () => {
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 Button9 } from "@mantine/core";
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 Fragment9, jsx as jsx28, jsxs as jsxs17 } from "react/jsx-runtime";
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__ */ jsxs17(Fragment9, { children: [
1704
- /* @__PURE__ */ jsx28("div", { style: { display: "none" }, children: /* @__PURE__ */ jsx28("div", { ref: printRef, children: contentToPrint }) }),
1705
- /* @__PURE__ */ jsx28(Button9, __spreadProps(__spreadValues({ color: "orange", onClick: handleClick, leftSection: /* @__PURE__ */ jsx28(IconPrinter2, {}) }, rest), { children }))
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 jsx29 } from "react/jsx-runtime";
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__ */ jsx29(ScrollArea.Autosize, { mah, children: /* @__PURE__ */ jsx29(TypographyStylesProvider, __spreadProps(__spreadValues({}, rest), { children: /* @__PURE__ */ jsx29(
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 jsx30, jsxs as jsxs18 } from "react/jsx-runtime";
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__ */ jsxs18(Table2.Tr, { children: [
1760
- printConfig.showRowNumbers && /* @__PURE__ */ jsx30(Table2.Td, { ta: "center", px: "xs", style: { border: "1px solid lightgray" }, children: index + 1 }),
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("&lt;"))) {
1770
- return /* @__PURE__ */ jsx30(
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__ */ jsx30(MyHtmlWrapper, { html: value })
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__ */ jsx30(
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__ */ jsx30("input", { type: "checkbox", checked: value === "true", readOnly: true })
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__ */ jsx30(
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__ */ jsxs18(Box, { p: "lg", children: [
1818
- /* @__PURE__ */ jsxs18("div", { style: { textAlign: "center", marginTop: "10px", fontStyle: "italic", color: "#666" }, children: [
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__ */ jsx30("h2", { style: { textAlign: "center", fontSize: "24px", fontWeight: "bold", marginBottom: "20px" }, children: tableTitle }),
1823
- /* @__PURE__ */ jsxs18(Table2, { withColumnBorders: true, highlightOnHover: true, style: { border: "1px solid lightgray" }, children: [
1824
- /* @__PURE__ */ jsx30(Table2.Thead, { children: /* @__PURE__ */ jsxs18(Table2.Tr, { children: [
1825
- printConfig.showRowNumbers && /* @__PURE__ */ jsx30(Table2.Th, { style: { border: "1px solid lightgray" }, w: "10%", ta: "center", px: "xs", children: "STT" }),
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__ */ jsx30(
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__ */ jsx30(Table2.Tbody, { children: rows })
1994
+ /* @__PURE__ */ jsx32(Table2.Tbody, { children: rows })
1841
1995
  ] })
1842
1996
  ] });
1843
1997
  };
1844
- return /* @__PURE__ */ jsx30(
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 jsx31 } from "react/jsx-runtime";
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__ */ jsx31(
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__ */ jsx31(IconArrowBack, { stroke: 2 })
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 Button10,
1882
- Group as Group8,
2035
+ Button as Button11,
2036
+ Group as Group9,
1883
2037
  LoadingOverlay,
1884
2038
  Modal as Modal10,
1885
2039
  Paper as Paper3,
1886
- Text as Text6,
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 Fragment10, jsx as jsx32, jsxs as jsxs19 } from "react/jsx-runtime";
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__ */ jsxs19(Fragment10, { children: [
1919
- /* @__PURE__ */ jsx32(Tooltip4, { label: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp", children: isActionIcon ? /* @__PURE__ */ jsx32(
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__ */ jsx32(IconLivePhoto2, {})
2079
+ children: /* @__PURE__ */ jsx34(IconLivePhoto2, {})
1926
2080
  }
1927
- ) : /* @__PURE__ */ jsx32(
1928
- Button10,
2081
+ ) : /* @__PURE__ */ jsx34(
2082
+ Button11,
1929
2083
  {
1930
2084
  color: "cyan",
1931
2085
  onClick: () => {
1932
2086
  disc[1].open();
1933
2087
  },
1934
- leftSection: /* @__PURE__ */ jsx32(IconLivePhoto2, {}),
2088
+ leftSection: /* @__PURE__ */ jsx34(IconLivePhoto2, {}),
1935
2089
  children: label
1936
2090
  }
1937
2091
  ) }),
1938
- /* @__PURE__ */ jsx32(
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__ */ jsxs19(Group8, { children: [
1946
- /* @__PURE__ */ jsx32(Text6, { children: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp" }),
1947
- fullScreen[0] ? /* @__PURE__ */ jsx32(
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__ */ jsx32(IconMinimize3, {})
2108
+ children: /* @__PURE__ */ jsx34(IconMinimize3, {})
1955
2109
  }
1956
- ) : /* @__PURE__ */ jsx32(
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__ */ jsx32(IconMaximize3, {})
2117
+ children: /* @__PURE__ */ jsx34(IconMaximize3, {})
1964
2118
  }
1965
2119
  )
1966
2120
  ] }),
1967
- children: /* @__PURE__ */ jsxs19(Paper3, { h: hSize[0], p: "lg", pos: "relative", children: [
1968
- /* @__PURE__ */ jsx32(
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__ */ jsx32(
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__ */ jsx32("iframe", { src, width: "100%", height: "100%" })
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 Text7 } from "@mantine/core";
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 useEffect5 } from "react";
6338
- import { jsx as jsx33, jsxs as jsxs20 } from "react/jsx-runtime";
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
- useEffect5(() => {
6563
+ useEffect6(() => {
6410
6564
  calendar == null ? void 0 : calendar.events.getAll();
6411
6565
  }, []);
6412
- return /* @__PURE__ */ jsx33("div", { children: /* @__PURE__ */ jsx33(ScheduleXCalendar, { calendarApp: calendar, customComponents: {
6566
+ return /* @__PURE__ */ jsx35("div", { children: /* @__PURE__ */ jsx35(ScheduleXCalendar, { calendarApp: calendar, customComponents: {
6413
6567
  timeGridEvent: ({ calendarEvent }) => {
6414
6568
  console.log(calendarEvent);
6415
- return /* @__PURE__ */ jsx33(Paper4, { h: "100%", bg: calendarEvent.laLichThi ? "violet.2" : "blue.2", p: 4, children: /* @__PURE__ */ jsxs20(MyFlexColumn, { gap: 1, children: [
6416
- /* @__PURE__ */ jsxs20(Text7, { size: "sm", fw: "bold", children: [
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__ */ jsx33(Text7, { size: "sm", children: calendarEvent.giangvien }),
6421
- /* @__PURE__ */ jsx33(Text7, { size: "sm", children: calendarEvent.location })
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 Center2, Group as Group9 } from "@mantine/core";
6436
- import { jsx as jsx34 } from "react/jsx-runtime";
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__ */ jsx34(Center2, { w: "100%", children: /* @__PURE__ */ jsx34(Group9, { children }) });
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 jsx35 } from "react/jsx-runtime";
6597
+ import { jsx as jsx37 } from "react/jsx-runtime";
6444
6598
  function MyCheckbox(_a) {
6445
6599
  var rest = __objRest(_a, []);
6446
- return /* @__PURE__ */ jsx35(Checkbox2, __spreadValues({}, rest));
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 Center3, Image, Text as Text8 } from "@mantine/core";
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 jsx36, jsxs as jsxs21 } from "react/jsx-runtime";
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__ */ jsxs21(Card, { shadow: "sm", padding: "lg", radius: "md", withBorder: true, component: Link, href, children: [
6463
- /* @__PURE__ */ jsx36(Card.Section, { children: /* @__PURE__ */ jsx36(Center3, { children: /* @__PURE__ */ jsx36(
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__ */ jsxs21(MyFlexRow, { justify: "space-between", mt: "md", mb: "xs", children: [
6474
- /* @__PURE__ */ jsx36(Text8, { fw: 500, children: title }),
6475
- status && /* @__PURE__ */ jsx36(Badge2, { color: "violet.5", w: "150px", children: status })
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__ */ jsx36(Text8, { size: "sm", c: "dimmed", lineClamp: 2, children: description }),
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 Group10, Paper as Paper5, Text as Text9 } from "@mantine/core";
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 jsx37, jsxs as jsxs22 } from "react/jsx-runtime";
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__ */ jsxs22(
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__ */ jsxs22(Group10, { justify: "space-between", children: [
6503
- /* @__PURE__ */ jsxs22(Flex, { direction: "column", children: [
6504
- /* @__PURE__ */ jsx37(
6505
- Text9,
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__ */ jsxs22(Text9, { size: "xs", style: { visibility: "hidden" }, children: [
6675
+ unit == "" ? /* @__PURE__ */ jsxs23(Text10, { size: "xs", style: { visibility: "hidden" }, children: [
6514
6676
  "\u0110\u01A1n v\u1ECB: ",
6515
- /* @__PURE__ */ jsx37("strong", { children: unit })
6516
- ] }) : /* @__PURE__ */ jsxs22(Text9, { size: "xs", children: [
6677
+ /* @__PURE__ */ jsx40("strong", { children: unit })
6678
+ ] }) : /* @__PURE__ */ jsxs23(Text10, { size: "xs", children: [
6517
6679
  "\u0110\u01A1n v\u1ECB: ",
6518
- /* @__PURE__ */ jsx37("strong", { children: unit })
6680
+ /* @__PURE__ */ jsx40("strong", { children: unit })
6519
6681
  ] })
6520
6682
  ] }),
6521
- /* @__PURE__ */ jsx37(Box2, { children: icon })
6683
+ /* @__PURE__ */ jsx40(Box2, { children: icon })
6522
6684
  ] }),
6523
- /* @__PURE__ */ jsxs22(
6524
- Group10,
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__ */ jsx37(
6531
- Text9,
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__ */ jsxs22(
6539
- Text9,
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__ */ jsxs22("span", { children: [
6708
+ /* @__PURE__ */ jsxs23("span", { children: [
6547
6709
  diff,
6548
6710
  "%"
6549
6711
  ] }),
6550
- diff > 0 ? /* @__PURE__ */ jsx37(IconArrowUpRight, {}) : /* @__PURE__ */ jsx37(IconArrowDownRight, {})
6712
+ diff > 0 ? /* @__PURE__ */ jsx40(IconArrowUpRight, {}) : /* @__PURE__ */ jsx40(IconArrowDownRight, {})
6551
6713
  ]
6552
6714
  }
6553
6715
  )
6554
6716
  ]
6555
6717
  }
6556
6718
  ),
6557
- /* @__PURE__ */ jsxs22(Group10, { justify: "space-between", children: [
6558
- /* @__PURE__ */ jsx37(Text9, { tt: "uppercase", fz: "xs", c: "dimmed", children: description }),
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 Group11, Text as Text10 } from "@mantine/core";
6569
- import { jsx as jsx38, jsxs as jsxs23 } from "react/jsx-runtime";
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__ */ jsxs23(Group11, { wrap: "nowrap", gap: 10, mt: 3, children: [
6572
- Icon && /* @__PURE__ */ jsx38(Icon, { stroke: 1.5, size: 16 }),
6573
- /* @__PURE__ */ jsx38(Text10, { fz: "lg", c: "dimmed", children: text })
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 jsx39 } from "react/jsx-runtime";
6741
+ import { jsx as jsx42 } from "react/jsx-runtime";
6580
6742
  function MyNumberFormatter(_a) {
6581
6743
  var rest = __objRest(_a, []);
6582
- return /* @__PURE__ */ jsx39(NumberFormatter, __spreadValues({ thousandSeparator: true, suffix: " VN\u0110" }, rest));
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 Button12, Flex as Flex2, Group as Group12, Paper as Paper6, Text as Text11 } from "@mantine/core";
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 Fragment11, jsx as jsx40, jsxs as jsxs24 } from "react/jsx-runtime";
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__ */ jsx40(Fragment11, { children: /* @__PURE__ */ jsxs24(
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__ */ jsxs24(Group12, { justify: "space-between", children: [
6598
- /* @__PURE__ */ jsxs24(Flex2, { direction: "column", children: [
6599
- /* @__PURE__ */ jsx40(
6600
- Text11,
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__ */ jsxs24(Text11, { size: "xs", style: { visibility: "hidden" }, children: [
6770
+ unit == "" ? /* @__PURE__ */ jsxs25(Text12, { size: "xs", style: { visibility: "hidden" }, children: [
6609
6771
  "\u0110\u01A1n v\u1ECB: ",
6610
- /* @__PURE__ */ jsx40("strong", { children: unit })
6611
- ] }) : /* @__PURE__ */ jsxs24(Text11, { size: "xs", children: [
6772
+ /* @__PURE__ */ jsx43("strong", { children: unit })
6773
+ ] }) : /* @__PURE__ */ jsxs25(Text12, { size: "xs", children: [
6612
6774
  "\u0110\u01A1n v\u1ECB: ",
6613
- /* @__PURE__ */ jsx40("strong", { children: unit })
6775
+ /* @__PURE__ */ jsx43("strong", { children: unit })
6614
6776
  ] })
6615
6777
  ] }),
6616
- /* @__PURE__ */ jsx40(Box3, { children: icons })
6778
+ /* @__PURE__ */ jsx43(Box3, { children: icons })
6617
6779
  ] }),
6618
- /* @__PURE__ */ jsxs24(
6619
- Group12,
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__ */ jsx40(
6626
- Text11,
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__ */ jsxs24(
6634
- Text11,
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__ */ jsxs24("span", { children: [
6803
+ /* @__PURE__ */ jsxs25("span", { children: [
6642
6804
  diff,
6643
6805
  "%"
6644
6806
  ] }),
6645
- diff > 0 ? /* @__PURE__ */ jsx40(IconArrowUpRight2, {}) : /* @__PURE__ */ jsx40(IconArrowDownRight2, {})
6807
+ diff > 0 ? /* @__PURE__ */ jsx43(IconArrowUpRight2, {}) : /* @__PURE__ */ jsx43(IconArrowDownRight2, {})
6646
6808
  ]
6647
6809
  }
6648
6810
  )
6649
6811
  ]
6650
6812
  }
6651
6813
  ),
6652
- /* @__PURE__ */ jsxs24(Group12, { justify: "space-between", children: [
6653
- /* @__PURE__ */ jsx40(Text11, { tt: "uppercase", fz: "xs", c: "dimmed", children: description }),
6654
- /* @__PURE__ */ jsx40(
6655
- Button12,
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 useEffect6 } from "react";
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
- useEffect6(() => {
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 jsx41 } from "react/jsx-runtime";
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__ */ jsx41(DateInput, __spreadValues({ label, placeholder: label ? `Ch\u1ECDn ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
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 Group13,
6755
- Text as Text12,
6916
+ Group as Group14,
6917
+ Text as Text13,
6756
6918
  useMantineColorScheme as useMantineColorScheme2
6757
6919
  } from "@mantine/core";
6758
- import { jsx as jsx42, jsxs as jsxs25 } from "react/jsx-runtime";
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__ */ jsx42(
6949
+ return /* @__PURE__ */ jsx45(
6788
6950
  Fieldset4,
6789
6951
  __spreadProps(__spreadValues({
6790
- legend: customLegend != null ? customLegend : /* @__PURE__ */ jsx42(Group13, { gap: "xs", children: /* @__PURE__ */ jsxs25(Text12, { fw: 600, children: [
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 jsx43 } from "react/jsx-runtime";
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__ */ jsx43(
6970
+ return /* @__PURE__ */ jsx46(
6809
6971
  FileInput3,
6810
6972
  __spreadValues({
6811
- rightSection: /* @__PURE__ */ jsx43(IconFile, {}),
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 jsx44 } from "react/jsx-runtime";
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__ */ jsx44(
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__ */ jsx44(IconNumbers, {})
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 jsx45 } from "react/jsx-runtime";
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__ */ jsx45(Textarea, __spreadValues({ label, placeholder: label ? `Nh\u1EADp ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
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 useEffect7, useState as useState9 } from "react";
6856
- import { jsx as jsx46, jsxs as jsxs26 } from "react/jsx-runtime";
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
- useEffect7(() => {
7119
+ useEffect8(() => {
6958
7120
  if (editor && value !== editor.getHTML()) {
6959
7121
  editor.commands.setContent(value);
6960
7122
  }
6961
7123
  }, [value, editor]);
6962
- return /* @__PURE__ */ jsx46(Input.Wrapper, __spreadProps(__spreadValues({ label, flex: 1, error, withAsterisk }, inputWrapperProps), { children: /* @__PURE__ */ jsxs26(RichTextEditor, __spreadProps(__spreadValues({ editor, style: { border: error && "1px solid #e03131" } }, richTextEditorProps), { children: [
6963
- /* @__PURE__ */ jsxs26(RichTextEditor.Toolbar, { hidden: hiddenToolBar, sticky: true, stickyOffset: 60, children: [
6964
- /* @__PURE__ */ jsxs26(RichTextEditor.ControlsGroup, { children: [
6965
- /* @__PURE__ */ jsx46(RichTextEditor.Bold, {}),
6966
- /* @__PURE__ */ jsx46(RichTextEditor.Italic, {}),
6967
- /* @__PURE__ */ jsx46(RichTextEditor.Underline, {}),
6968
- /* @__PURE__ */ jsx46(RichTextEditor.Strikethrough, {}),
6969
- /* @__PURE__ */ jsx46(RichTextEditor.ClearFormatting, {}),
6970
- /* @__PURE__ */ jsx46(RichTextEditor.Highlight, {}),
6971
- /* @__PURE__ */ jsx46(RichTextEditor.Code, {})
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__ */ jsxs26(RichTextEditor.ControlsGroup, { children: [
6974
- /* @__PURE__ */ jsx46(RichTextEditor.H1, {}),
6975
- /* @__PURE__ */ jsx46(RichTextEditor.H2, {}),
6976
- /* @__PURE__ */ jsx46(RichTextEditor.H3, {}),
6977
- /* @__PURE__ */ jsx46(RichTextEditor.H4, {})
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__ */ jsxs26(RichTextEditor.ControlsGroup, { children: [
6980
- /* @__PURE__ */ jsx46(RichTextEditor.Blockquote, {}),
6981
- /* @__PURE__ */ jsx46(RichTextEditor.Hr, {}),
6982
- /* @__PURE__ */ jsx46(RichTextEditor.BulletList, {}),
6983
- /* @__PURE__ */ jsx46(RichTextEditor.OrderedList, {}),
6984
- /* @__PURE__ */ jsx46(RichTextEditor.Subscript, {}),
6985
- /* @__PURE__ */ jsx46(RichTextEditor.Superscript, {})
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__ */ jsxs26(RichTextEditor.ControlsGroup, { children: [
6988
- /* @__PURE__ */ jsx46(RichTextEditor.Link, {}),
6989
- /* @__PURE__ */ jsx46(RichTextEditor.Unlink, {})
7149
+ /* @__PURE__ */ jsxs27(RichTextEditor.ControlsGroup, { children: [
7150
+ /* @__PURE__ */ jsx49(RichTextEditor.Link, {}),
7151
+ /* @__PURE__ */ jsx49(RichTextEditor.Unlink, {})
6990
7152
  ] }),
6991
- /* @__PURE__ */ jsxs26(RichTextEditor.ControlsGroup, { children: [
6992
- /* @__PURE__ */ jsx46(RichTextEditor.AlignLeft, {}),
6993
- /* @__PURE__ */ jsx46(RichTextEditor.AlignCenter, {}),
6994
- /* @__PURE__ */ jsx46(RichTextEditor.AlignJustify, {}),
6995
- /* @__PURE__ */ jsx46(RichTextEditor.AlignRight, {})
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__ */ jsx46(
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__ */ jsx46(RichTextEditor.Content, { mih: contentHeight })
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 Button13 } from "@mantine/core";
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 jsx47 } from "react/jsx-runtime";
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__ */ jsx47(Button13, { onClick: () => {
7201
+ return /* @__PURE__ */ jsx50(Button14, { onClick: () => {
7040
7202
  S_Authenticate.setProperty("token", "");
7041
7203
  router.replace(redirectURL);
7042
- }, leftSection: /* @__PURE__ */ jsx47(IconLogout, {}), fullWidth: true, justify: "start", variant: "subtle", children: "\u0110\u0103ng xu\u1EA5t" });
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 Group14,
7213
+ Group as Group15,
7052
7214
  Image as Image3,
7053
7215
  NavLink,
7054
7216
  ScrollArea as ScrollArea3,
7055
- Text as Text13,
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 useEffect8, useMemo as useMemo3, useState as useState10 } from "react";
7067
- import { Fragment as Fragment12, jsx as jsx48, jsxs as jsxs27 } from "react/jsx-runtime";
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__ */ jsx48(Badge3, { styles: { root: { cursor: "pointer" } }, radius: "xs", color: "pink", circle: true, children: "P" });
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__ */ jsx48(Badge3, { styles: { root: { cursor: "pointer" } }, radius: "xs", circle: true, children: "N" });
7246
+ return /* @__PURE__ */ jsx51(Badge3, { styles: { root: { cursor: "pointer" } }, radius: "xs", circle: true, children: "N" });
7085
7247
  if (status === "Menu")
7086
- return /* @__PURE__ */ jsx48(Badge3, { styles: { root: { cursor: "pointer" } }, radius: "xs", color: "gray", circle: true, children: "M" });
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__ */ jsx48(Badge3, { styles: { root: { cursor: "pointer" } }, radius: "xs", color: "green", circle: true, children: "C" });
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__ */ jsx48(Fragment12, { children: items.map((item, index2) => /* @__PURE__ */ jsx48(
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__ */ jsxs27(MyFlexRow, { justify: "space-between", children: [
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__ */ jsx48(RenderNavLinks, { items: item.links })
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
- useEffect8(() => {
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
- useEffect8(() => {
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
- useEffect8(() => {
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__ */ jsxs27(
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__ */ jsx48(AppShell.Header, { children: media ? /* @__PURE__ */ jsxs27(Group14, { h: "100%", px: "md", justify: "space-between", align: "center", children: [
7255
- /* @__PURE__ */ jsxs27(Group14, { h: "100%", children: [
7256
- /* @__PURE__ */ jsx48(
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__ */ jsx48(
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__ */ jsx48(IconLayoutSidebarLeftExpand, {}) : /* @__PURE__ */ jsx48(IconLayoutSidebarLeftCollapse, {})
7429
+ children: basicAppShellStore.state.opened ? /* @__PURE__ */ jsx51(IconLayoutSidebarLeftExpand, {}) : /* @__PURE__ */ jsx51(IconLayoutSidebarLeftCollapse, {})
7268
7430
  }
7269
7431
  )
7270
7432
  }
7271
7433
  ),
7272
- /* @__PURE__ */ jsx48(Tooltip5, { label: "\u0110\xF3ng t\u1EA5t c\u1EA3 menu", children: /* @__PURE__ */ jsx48(
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__ */ jsx48(IconLibraryMinus, {})
7441
+ children: /* @__PURE__ */ jsx51(IconLibraryMinus, {})
7280
7442
  }
7281
7443
  ) })
7282
7444
  ] }),
7283
- /* @__PURE__ */ jsx48(
7284
- Group14,
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__ */ jsx48(Text13, { c: "green", fw: "bold", size: "sm", children: title ? title : `${basicAppShellStore.state.moduleCode} - ${basicAppShellStore.state.moduleName}` })
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__ */ jsxs27(Group14, { children: [
7456
+ /* @__PURE__ */ jsxs28(Group15, { children: [
7295
7457
  extraTopRight,
7296
- /* @__PURE__ */ jsx48(MySwitchTheme, {})
7458
+ /* @__PURE__ */ jsx51(MySwitchTheme, {})
7297
7459
  ] })
7298
7460
  ] }) : (
7299
7461
  // For mobile screens - simplified layout
7300
- /* @__PURE__ */ jsxs27(Group14, { h: "100%", px: "md", justify: "space-between", children: [
7301
- /* @__PURE__ */ jsx48(
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__ */ jsx48(IconLayoutSidebarLeftExpand, {}) : /* @__PURE__ */ jsx48(IconLayoutSidebarLeftCollapse, {})
7470
+ children: basicAppShellStore.state.opened ? /* @__PURE__ */ jsx51(IconLayoutSidebarLeftExpand, {}) : /* @__PURE__ */ jsx51(IconLayoutSidebarLeftCollapse, {})
7309
7471
  }
7310
7472
  ),
7311
- /* @__PURE__ */ jsx48(Text13, { c: "green", fw: "bold", size: "sm", children: title ? title : `${basicAppShellStore.state.moduleCode} - ${basicAppShellStore.state.moduleName}` }),
7312
- /* @__PURE__ */ jsxs27(Group14, { children: [
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__ */ jsx48(MySwitchTheme, {})
7476
+ /* @__PURE__ */ jsx51(MySwitchTheme, {})
7315
7477
  ] })
7316
7478
  ] })
7317
7479
  ) }),
7318
- /* @__PURE__ */ jsxs27(AppShell.Navbar, { children: [
7319
- /* @__PURE__ */ jsx48(MyAppSpotlight, { menu }),
7320
- /* @__PURE__ */ jsx48(AppShell.Section, { grow: true, component: ScrollArea3, p: 5, children: /* @__PURE__ */ jsx48(RenderNavLinks, { items: menu }) }),
7321
- /* @__PURE__ */ jsxs27(AppShell.Section, { px: "md", children: [
7322
- /* @__PURE__ */ jsx48(Divider2, {}),
7323
- /* @__PURE__ */ jsx48(F_authenticate_Logout, {}),
7324
- /* @__PURE__ */ jsx48(
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__ */ jsx48(
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 Flex3 } from "@mantine/core";
7393
- import { jsx as jsx49 } from "react/jsx-runtime";
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__ */ jsx49(Container, __spreadProps(__spreadValues({ fluid: true }, rest), { children: /* @__PURE__ */ jsx49(Flex3, { direction: "column", children }) }));
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 Button14,
7565
+ Button as Button15,
7404
7566
  Container as Container2,
7405
7567
  Divider as Divider3,
7406
7568
  Drawer,
7407
- Group as Group15,
7569
+ Group as Group16,
7408
7570
  Image as Image4,
7409
7571
  ScrollArea as ScrollArea4,
7410
- Text as Text14,
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 jsx50, jsxs as jsxs28 } from "react/jsx-runtime";
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__ */ jsx50(UnstyledButton, { className: css_default.subLink, children: /* @__PURE__ */ jsxs28(Group15, { wrap: "nowrap", align: "flex-start", children: [
7481
- /* @__PURE__ */ jsx50(ThemeIcon, { size: 34, variant: "default", radius: "md", children: /* @__PURE__ */ jsx50(item.icon, { size: 22, color: theme.colors.blue[6] }) }),
7482
- /* @__PURE__ */ jsxs28("div", { children: [
7483
- /* @__PURE__ */ jsx50(Text14, { size: "sm", fw: 500, children: item.title }),
7484
- /* @__PURE__ */ jsx50(Text14, { size: "xs", c: "dimmed", children: item.description })
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__ */ jsxs28(Box4, { children: [
7488
- /* @__PURE__ */ jsx50("header", { className: css_default.header, children: /* @__PURE__ */ jsxs28(Group15, { justify: "space-between", h: "100%", children: [
7489
- /* @__PURE__ */ jsxs28(Group15, { children: [
7490
- /* @__PURE__ */ jsx50(Image4, { src: "/imgs/0/IMG0LogoAQTech.png", h: 30, alt: "", w: "auto" }),
7491
- /* @__PURE__ */ jsx50(Group15, { h: "100%", gap: 5, visibleFrom: "sm", children: menus == null ? void 0 : menus.map((item, idx) => /* @__PURE__ */ jsx50(Button14, { component: Link4, href: item.href, variant: HeaderMegaMenuStore.state.name == item.label ? "light" : "subtle", onClick: () => HeaderMegaMenuStore.setState({ name: item.label }), children: item.label }, idx)) })
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__ */ jsxs28(Group15, { children: [
7494
- /* @__PURE__ */ jsx50(TextInput3, { placeholder: "T\xECm ki\u1EBFm", leftSection: /* @__PURE__ */ jsx50(IconSearch2, {}), radius: "xl", w: "250px" }),
7495
- /* @__PURE__ */ jsx50(MySwitchTheme, {})
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__ */ jsx50(Burger, { opened: drawerOpened, onClick: toggleDrawer, hiddenFrom: "sm" })
7659
+ /* @__PURE__ */ jsx53(Burger, { opened: drawerOpened, onClick: toggleDrawer, hiddenFrom: "sm" })
7498
7660
  ] }) }),
7499
- /* @__PURE__ */ jsx50(Container2, { fluid: true, pt: "sm", pb: "md", bg: const_object_colors.mantineBackgroundSecondary, mih: "93vh", children }),
7500
- /* @__PURE__ */ jsx50(
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__ */ jsxs28(ScrollArea4, { h: "calc(100vh - 80px", mx: "-md", children: [
7511
- /* @__PURE__ */ jsx50(Divider3, { my: "sm" }),
7512
- /* @__PURE__ */ jsx50(MyFlexColumn, { h: "100%", gap: 0, children: menus == null ? void 0 : menus.map((item, idx) => /* @__PURE__ */ jsx50(Button14, { component: Link4, href: item.href, variant: HeaderMegaMenuStore.state.name == item.label ? "light" : "subtle", onClick: () => HeaderMegaMenuStore.setState({ name: item.label }), children: item.label }, idx)) }),
7513
- /* @__PURE__ */ jsx50(Divider3, { my: "sm" })
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 Group16, Text as Text15, Title } from "@mantine/core";
7522
- import { jsx as jsx51, jsxs as jsxs29 } from "react/jsx-runtime";
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__ */ jsx51(Group16, { children: /* @__PURE__ */ jsxs29(MyFlexColumn, { gap: 0, children: [
7534
- /* @__PURE__ */ jsxs29(Group16, { align: "center", children: [
7535
- /* @__PURE__ */ jsx51(Title, { order: 3, children: title }),
7536
- status && /* @__PURE__ */ jsx51(
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__ */ jsx51(Text15, { size: "lg", c: "dimmed", fs: "italic", children: note })
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__ */ jsxs29(Container3, { p: 0, fluid: true, children: [
7561
- /* @__PURE__ */ jsxs29(Group16, { justify: "space-between", children: [
7562
- /* @__PURE__ */ jsxs29(Group16, { children: [
7563
- /* @__PURE__ */ jsx51(MyButtonRouterBack, {}),
7564
- /* @__PURE__ */ jsx51(
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__ */ jsxs29(Group16, { p: "md", children: [
7736
+ /* @__PURE__ */ jsxs30(Group17, { p: "md", children: [
7575
7737
  rightTopBar,
7576
- /* @__PURE__ */ jsx51(Breadcrumbs, { separatorMargin: "7", children: (_a = basicAppShellStore.state.breadcrumb) == null ? void 0 : _a.map((item, idx) => /* @__PURE__ */ jsx51(Text15, { fw: "600", c: "blue", children: item }, idx)) })
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__ */ jsx51(Divider4, { my: "xs" }),
7741
+ /* @__PURE__ */ jsx54(Divider4, { my: "xs" }),
7580
7742
  children,
7581
- /* @__PURE__ */ jsx51(Divider4, { my: "xs" })
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 jsx52, jsxs as jsxs30 } from "react/jsx-runtime";
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__ */ jsxs30(Tabs, __spreadProps(__spreadValues({ defaultValue: tabList[0].label }, rest), { children: [
7592
- /* @__PURE__ */ jsx52(Tabs.List, { children: tabList.map((item, idx) => {
7593
- return /* @__PURE__ */ jsx52(Tabs.Tab, { value: item.label, leftSection: item.icon && /* @__PURE__ */ jsx52(item.icon, { style: iconStyle }), children: item.label }, idx);
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__ */ jsx52(Space3, { my: "md" }),
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 Button15, Fieldset as Fieldset5, Group as Group17, Modal as Modal11 } from "@mantine/core";
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 jsx53, jsxs as jsxs31 } from "react/jsx-runtime";
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__ */ jsxs31(Fieldset5, { legend: listLabel ? listLabel : "Danh s\xE1ch", children: [
7610
- /* @__PURE__ */ jsx53(
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__ */ jsxs31(Group17, { children: [
7776
+ return /* @__PURE__ */ jsxs32(Group18, { children: [
7615
7777
  renderTopToolbarCustomActions && renderTopToolbarCustomActions({ table }),
7616
- /* @__PURE__ */ jsx53(Button15, { onClick: disc[1].open, children: selectButtonlabel || "Ch\u1ECDn t\u1EEB danh s\xE1ch" })
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__ */ jsx53(MyCenterFull, { children: /* @__PURE__ */ jsx53(ActionIcon12, { color: "red", onClick: () => listState[1].remove(row.index), children: /* @__PURE__ */ jsx53(IconX2, {}) }) });
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__ */ jsx53(Modal11, { opened: disc[0], onClose: disc[1].close, size: modalSize || "80%", children: /* @__PURE__ */ jsx53(
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__ */ jsx53(Button15, { onClick: () => {
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 jsx54 } from "react/jsx-runtime";
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__ */ jsx54(
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 jsx55 } from "react/jsx-runtime";
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__ */ jsx55(
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 jsx56 } from "react/jsx-runtime";
7881
+ import { jsx as jsx59 } from "react/jsx-runtime";
7720
7882
  function MySkeletonTable({ h: h4 = 500 }) {
7721
- return /* @__PURE__ */ jsx56(Skeleton, { h: h4 });
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,