aq-fe-framework 0.1.254 → 0.1.255

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.
@@ -1049,12 +1049,58 @@ function MyButtonCreate(_a) {
1049
1049
  ] }) }) }));
1050
1050
  }
1051
1051
 
1052
- // src/components/Buttons/ButtonCRUD/MyButtonDeleteList.tsx
1053
- import { Group as Group5, Highlight as Highlight2 } from "@mantine/core";
1052
+ // src/components/Buttons/ButtonCRUD/MyButtonCreateUpdate.tsx
1054
1053
  import { useDisclosure as useDisclosure8 } from "@mantine/hooks";
1055
1054
  import { useMutation as useMutation5, useQueryClient as useQueryClient5 } from "@tanstack/react-query";
1056
- import { useState as useState7 } from "react";
1057
1055
  import { jsx as jsx22, jsxs as jsxs12 } from "react/jsx-runtime";
1056
+ function MyButtonCreateUpdate({
1057
+ form,
1058
+ onSubmit,
1059
+ onSuccess,
1060
+ onError,
1061
+ closeModalWhenSubmit = true,
1062
+ resetFormWhenSubmit = true,
1063
+ disclosure: externalDisclosure,
1064
+ isUpdate,
1065
+ children,
1066
+ buttonProps,
1067
+ actionIconProps
1068
+ }) {
1069
+ const defaultDisclosure = useDisclosure8();
1070
+ const disclosure = externalDisclosure != null ? externalDisclosure : defaultDisclosure;
1071
+ const queryClient = useQueryClient5();
1072
+ const mutation = useMutation5({
1073
+ mutationFn: async (values) => await onSubmit(values),
1074
+ onSuccess: () => {
1075
+ if (onSuccess) return onSuccess();
1076
+ queryClient.invalidateQueries();
1077
+ utils_notification_show({ crudType: isUpdate ? "update" : "create" });
1078
+ if (closeModalWhenSubmit) disclosure[1].close();
1079
+ if (resetFormWhenSubmit) form.reset();
1080
+ },
1081
+ onError: () => {
1082
+ if (onError) return onError();
1083
+ }
1084
+ });
1085
+ const handleSubmit = (values) => mutation.mutate(values);
1086
+ if (!isUpdate) {
1087
+ return /* @__PURE__ */ jsx22(MyButtonModal, __spreadProps(__spreadValues({ disclosure, crudType: "create" }, buttonProps), { children: /* @__PURE__ */ jsx22("form", { onSubmit: form.onSubmit(handleSubmit), children: /* @__PURE__ */ jsxs12(MyFlexColumn, { children: [
1088
+ children,
1089
+ /* @__PURE__ */ jsx22(MyButton, { type: "submit", crudType: "save" })
1090
+ ] }) }) }));
1091
+ }
1092
+ return /* @__PURE__ */ jsx22(MyActionIconModal, __spreadProps(__spreadValues({ disclosure, crudType: "update" }, actionIconProps), { children: /* @__PURE__ */ jsx22("form", { onSubmit: form.onSubmit(handleSubmit), children: /* @__PURE__ */ jsxs12(MyFlexColumn, { children: [
1093
+ children,
1094
+ /* @__PURE__ */ jsx22(MyButton, { type: "submit", crudType: "save" })
1095
+ ] }) }) }));
1096
+ }
1097
+
1098
+ // src/components/Buttons/ButtonCRUD/MyButtonDeleteList.tsx
1099
+ import { Group as Group5, Highlight as Highlight2 } from "@mantine/core";
1100
+ import { useDisclosure as useDisclosure9 } from "@mantine/hooks";
1101
+ import { useMutation as useMutation6, useQueryClient as useQueryClient6 } from "@tanstack/react-query";
1102
+ import { useState as useState7 } from "react";
1103
+ import { jsx as jsx23, jsxs as jsxs13 } from "react/jsx-runtime";
1058
1104
  function MyButtonDeleteList(_a) {
1059
1105
  var _b = _a, {
1060
1106
  onSubmit,
@@ -1067,10 +1113,10 @@ function MyButtonDeleteList(_a) {
1067
1113
  "onError",
1068
1114
  "contextData"
1069
1115
  ]);
1070
- const queryClient = useQueryClient5();
1071
- const disc = useDisclosure8();
1116
+ const queryClient = useQueryClient6();
1117
+ const disc = useDisclosure9();
1072
1118
  const loadingState = useState7();
1073
- const mutation = useMutation5({
1119
+ const mutation = useMutation6({
1074
1120
  mutationFn: async () => await onSubmit(),
1075
1121
  onSuccess: () => {
1076
1122
  if (onSuccess) {
@@ -1093,7 +1139,7 @@ function MyButtonDeleteList(_a) {
1093
1139
  loadingState[1](true);
1094
1140
  mutation.mutate();
1095
1141
  }
1096
- return /* @__PURE__ */ jsxs12(
1142
+ return /* @__PURE__ */ jsxs13(
1097
1143
  MyButtonModal,
1098
1144
  __spreadProps(__spreadValues({
1099
1145
  disclosure: disc,
@@ -1101,7 +1147,7 @@ function MyButtonDeleteList(_a) {
1101
1147
  disabled: contextData == void 0 || contextData.length == 0
1102
1148
  }, rest), {
1103
1149
  children: [
1104
- /* @__PURE__ */ jsx22(
1150
+ /* @__PURE__ */ jsx23(
1105
1151
  Highlight2,
1106
1152
  {
1107
1153
  highlight: contextData || [],
@@ -1114,8 +1160,8 @@ function MyButtonDeleteList(_a) {
1114
1160
  children: `B\u1EA1n s\u1EAFp x\xF3a d\u1EEF li\u1EC7u ${contextData || ""}. H\xE0nh \u0111\u1ED9ng n\xE0y kh\xF4ng th\u1EC3 ho\xE0n t\xE1c. B\u1EA1n c\xF3 ch\u1EAFc ch\u1EAFn mu\u1ED1n ti\u1EBFp t\u1EE5c?`
1115
1161
  }
1116
1162
  ),
1117
- /* @__PURE__ */ jsxs12(Group5, { grow: true, children: [
1118
- /* @__PURE__ */ jsx22(
1163
+ /* @__PURE__ */ jsxs13(Group5, { grow: true, children: [
1164
+ /* @__PURE__ */ jsx23(
1119
1165
  MyButton,
1120
1166
  {
1121
1167
  crudType: "delete",
@@ -1123,7 +1169,7 @@ function MyButtonDeleteList(_a) {
1123
1169
  loading: loadingState[0]
1124
1170
  }
1125
1171
  ),
1126
- /* @__PURE__ */ jsx22(
1172
+ /* @__PURE__ */ jsx23(
1127
1173
  MyButton,
1128
1174
  {
1129
1175
  crudType: "cancel",
@@ -1142,18 +1188,18 @@ import { IconFileImport as IconFileImport2 } from "@tabler/icons-react";
1142
1188
 
1143
1189
  // src/components/Combobox/Select/MySelect.tsx
1144
1190
  import { Select } from "@mantine/core";
1145
- import { jsx as jsx23 } from "react/jsx-runtime";
1191
+ import { jsx as jsx24 } from "react/jsx-runtime";
1146
1192
  function MySelect(_a) {
1147
1193
  var _b = _a, { label } = _b, rest = __objRest(_b, ["label"]);
1148
- return /* @__PURE__ */ jsx23(Select, __spreadValues({ label, placeholder: label ? `Ch\u1ECDn ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
1194
+ return /* @__PURE__ */ jsx24(Select, __spreadValues({ label, placeholder: label ? `Ch\u1ECDn ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
1149
1195
  }
1150
1196
 
1151
1197
  // src/components/Layouts/FlexEnd/MyFlexEnd.tsx
1152
1198
  import { Group as Group6 } from "@mantine/core";
1153
- import { jsx as jsx24 } from "react/jsx-runtime";
1199
+ import { jsx as jsx25 } from "react/jsx-runtime";
1154
1200
  function MyFlexEnd(_a) {
1155
1201
  var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
1156
- return /* @__PURE__ */ jsx24(Group6, __spreadProps(__spreadValues({ justify: "end", mt: "md" }, rest), { children }));
1202
+ return /* @__PURE__ */ jsx25(Group6, __spreadProps(__spreadValues({ justify: "end", mt: "md" }, rest), { children }));
1157
1203
  }
1158
1204
 
1159
1205
  // src/components/Buttons/ButtonImport/SelectFieldModal.tsx
@@ -1311,99 +1357,99 @@ function useS_ButtonImport() {
1311
1357
  }
1312
1358
 
1313
1359
  // src/components/Buttons/ButtonImport/SelectFieldModal.tsx
1314
- import { jsx as jsx25, jsxs as jsxs13 } from "react/jsx-runtime";
1360
+ import { jsx as jsx26, jsxs as jsxs14 } from "react/jsx-runtime";
1315
1361
  function SelectFieldModal({ stack, onImport }) {
1316
1362
  var _a, _b;
1317
1363
  const store = useS_ButtonImport();
1318
- return /* @__PURE__ */ jsxs13(Modal6, __spreadProps(__spreadValues({ fullScreen: true }, stack.register("select-field-page")), { title: "Import", children: [
1319
- /* @__PURE__ */ jsxs13(SimpleGrid, { cols: { base: 1, lg: 2 }, children: [
1320
- /* @__PURE__ */ jsxs13(Fieldset, { legend: "Danh s\xE1ch tr\u01B0\u1EDDng th\xF4ng tin", children: [
1321
- /* @__PURE__ */ jsxs13(Table, { stickyHeader: true, stickyHeaderOffset: 60, children: [
1322
- /* @__PURE__ */ jsx25(Table.Thead, { bg: "cyan", children: /* @__PURE__ */ jsxs13(Table.Tr, { children: [
1323
- /* @__PURE__ */ jsx25(Table.Th, { children: "M\xE3 field" }),
1324
- /* @__PURE__ */ jsx25(Table.Th, { children: "T\xEAn field" })
1364
+ return /* @__PURE__ */ jsxs14(Modal6, __spreadProps(__spreadValues({ fullScreen: true }, stack.register("select-field-page")), { title: "Import", children: [
1365
+ /* @__PURE__ */ jsxs14(SimpleGrid, { cols: { base: 1, lg: 2 }, children: [
1366
+ /* @__PURE__ */ jsxs14(Fieldset, { legend: "Danh s\xE1ch tr\u01B0\u1EDDng th\xF4ng tin", children: [
1367
+ /* @__PURE__ */ jsxs14(Table, { stickyHeader: true, stickyHeaderOffset: 60, children: [
1368
+ /* @__PURE__ */ jsx26(Table.Thead, { bg: "cyan", children: /* @__PURE__ */ jsxs14(Table.Tr, { children: [
1369
+ /* @__PURE__ */ jsx26(Table.Th, { children: "M\xE3 field" }),
1370
+ /* @__PURE__ */ jsx26(Table.Th, { children: "T\xEAn field" })
1325
1371
  ] }) }),
1326
- /* @__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(
1372
+ /* @__PURE__ */ jsx26(Table.Tbody, { children: (_a = store.state.fieldConfig) == null ? void 0 : _a.filter((item) => item.isSelected == false || item.isSelected == void 0).map((item, idx) => /* @__PURE__ */ jsxs14(
1327
1373
  Table.Tr,
1328
1374
  {
1329
1375
  style: { cursor: "pointer" },
1330
1376
  children: [
1331
- /* @__PURE__ */ jsx25(Table.Td, { onClick: () => store.changeSelected(item.fieldKey.toString(), true), children: item.fieldKey.toString() }),
1332
- /* @__PURE__ */ jsx25(Table.Td, { onClick: () => store.changeSelected(item.fieldKey.toString(), true), children: item.fieldName })
1377
+ /* @__PURE__ */ jsx26(Table.Td, { onClick: () => store.changeSelected(item.fieldKey.toString(), true), children: item.fieldKey.toString() }),
1378
+ /* @__PURE__ */ jsx26(Table.Td, { onClick: () => store.changeSelected(item.fieldKey.toString(), true), children: item.fieldName })
1333
1379
  ]
1334
1380
  },
1335
1381
  idx
1336
1382
  )) })
1337
1383
  ] }),
1338
- /* @__PURE__ */ jsx25(Space2, {}),
1339
- /* @__PURE__ */ jsx25(Group7, { children: /* @__PURE__ */ jsx25(
1384
+ /* @__PURE__ */ jsx26(Space2, {}),
1385
+ /* @__PURE__ */ jsx26(Group7, { children: /* @__PURE__ */ jsx26(
1340
1386
  Button5,
1341
1387
  {
1342
1388
  onClick: () => {
1343
1389
  store.changeAllSelected(true);
1344
1390
  },
1345
- leftSection: /* @__PURE__ */ jsx25(IconArrowBigRight, {}),
1391
+ leftSection: /* @__PURE__ */ jsx26(IconArrowBigRight, {}),
1346
1392
  children: "Chuy\u1EC3n t\u1EA5t c\u1EA3"
1347
1393
  }
1348
1394
  ) })
1349
1395
  ] }),
1350
- /* @__PURE__ */ jsxs13(Fieldset, { legend: "Danh s\xE1ch tr\u01B0\u1EDDng th\xF4ng tin \u0111\u01B0\u1EE3c ch\u1ECDn", children: [
1351
- /* @__PURE__ */ jsxs13(Table, { stickyHeader: true, stickyHeaderOffset: 60, children: [
1352
- /* @__PURE__ */ jsx25(Table.Thead, { children: /* @__PURE__ */ jsxs13(Table.Tr, { children: [
1353
- /* @__PURE__ */ jsx25(Table.Th, { children: "M\xE3 field" }),
1354
- /* @__PURE__ */ jsx25(Table.Th, { children: "T\xEAn field" }),
1355
- /* @__PURE__ */ jsx25(Table.Th, { children: "C\u1ED9t map" })
1396
+ /* @__PURE__ */ jsxs14(Fieldset, { legend: "Danh s\xE1ch tr\u01B0\u1EDDng th\xF4ng tin \u0111\u01B0\u1EE3c ch\u1ECDn", children: [
1397
+ /* @__PURE__ */ jsxs14(Table, { stickyHeader: true, stickyHeaderOffset: 60, children: [
1398
+ /* @__PURE__ */ jsx26(Table.Thead, { children: /* @__PURE__ */ jsxs14(Table.Tr, { children: [
1399
+ /* @__PURE__ */ jsx26(Table.Th, { children: "M\xE3 field" }),
1400
+ /* @__PURE__ */ jsx26(Table.Th, { children: "T\xEAn field" }),
1401
+ /* @__PURE__ */ jsx26(Table.Th, { children: "C\u1ED9t map" })
1356
1402
  ] }) }),
1357
- /* @__PURE__ */ jsx25(Table.Tbody, { children: (_b = store.state.fieldConfig) == null ? void 0 : _b.filter((item) => item.isSelected == true).map((item, idx) => /* @__PURE__ */ jsxs13(
1403
+ /* @__PURE__ */ jsx26(Table.Tbody, { children: (_b = store.state.fieldConfig) == null ? void 0 : _b.filter((item) => item.isSelected == true).map((item, idx) => /* @__PURE__ */ jsxs14(
1358
1404
  Table.Tr,
1359
1405
  {
1360
1406
  style: { cursor: "pointer" },
1361
1407
  children: [
1362
- /* @__PURE__ */ jsx25(Table.Td, { onClick: () => store.changeSelected(item.fieldKey.toString(), false), children: item.fieldKey.toString() }),
1363
- /* @__PURE__ */ jsx25(Table.Td, { onClick: () => store.changeSelected(item.fieldKey.toString(), false), children: item.fieldName }),
1364
- /* @__PURE__ */ jsx25(Table.Td, { children: /* @__PURE__ */ jsx25(MySelect, { data: store.state.title, value: item.fieldToMap, onChange: (e4) => store.setFieldToMap(item.fieldKey.toString(), e4) }) })
1408
+ /* @__PURE__ */ jsx26(Table.Td, { onClick: () => store.changeSelected(item.fieldKey.toString(), false), children: item.fieldKey.toString() }),
1409
+ /* @__PURE__ */ jsx26(Table.Td, { onClick: () => store.changeSelected(item.fieldKey.toString(), false), children: item.fieldName }),
1410
+ /* @__PURE__ */ jsx26(Table.Td, { children: /* @__PURE__ */ jsx26(MySelect, { data: store.state.title, value: item.fieldToMap, onChange: (e4) => store.setFieldToMap(item.fieldKey.toString(), e4) }) })
1365
1411
  ]
1366
1412
  },
1367
1413
  idx
1368
1414
  )) })
1369
1415
  ] }),
1370
- /* @__PURE__ */ jsx25(Space2, {}),
1371
- /* @__PURE__ */ jsx25(
1416
+ /* @__PURE__ */ jsx26(Space2, {}),
1417
+ /* @__PURE__ */ jsx26(
1372
1418
  Button5,
1373
1419
  {
1374
1420
  onClick: () => {
1375
1421
  store.changeAllSelected(false);
1376
1422
  },
1377
- leftSection: /* @__PURE__ */ jsx25(IconArrowBigLeft, {}),
1423
+ leftSection: /* @__PURE__ */ jsx26(IconArrowBigLeft, {}),
1378
1424
  children: "Chuy\u1EC3n t\u1EA5t c\u1EA3 v\u1EC1"
1379
1425
  }
1380
1426
  )
1381
1427
  ] })
1382
1428
  ] }),
1383
- /* @__PURE__ */ jsx25(Divider, {}),
1384
- /* @__PURE__ */ jsxs13(MyFlexEnd, { children: [
1385
- /* @__PURE__ */ jsx25(
1429
+ /* @__PURE__ */ jsx26(Divider, {}),
1430
+ /* @__PURE__ */ jsxs14(MyFlexEnd, { children: [
1431
+ /* @__PURE__ */ jsx26(
1386
1432
  Button5,
1387
1433
  {
1388
- leftSection: /* @__PURE__ */ jsx25(IconArrowBackUp, {}),
1434
+ leftSection: /* @__PURE__ */ jsx26(IconArrowBackUp, {}),
1389
1435
  onClick: () => stack.close("select-field-page"),
1390
1436
  color: "gray.7",
1391
1437
  children: "Quay l\u1EA1i"
1392
1438
  }
1393
1439
  ),
1394
- /* @__PURE__ */ jsx25(
1440
+ /* @__PURE__ */ jsx26(
1395
1441
  Button5,
1396
1442
  {
1397
1443
  color: "blue.8",
1398
- leftSection: /* @__PURE__ */ jsx25(IconArrowBigRight, {}),
1444
+ leftSection: /* @__PURE__ */ jsx26(IconArrowBigRight, {}),
1399
1445
  onClick: onImport,
1400
1446
  children: "Ti\u1EBFp t\u1EE5c / Import"
1401
1447
  }
1402
1448
  ),
1403
- /* @__PURE__ */ jsx25(
1449
+ /* @__PURE__ */ jsx26(
1404
1450
  Button5,
1405
1451
  {
1406
- leftSection: /* @__PURE__ */ jsx25(IconSquareRoundedX, {}),
1452
+ leftSection: /* @__PURE__ */ jsx26(IconSquareRoundedX, {}),
1407
1453
  onClick: () => stack.closeAll(),
1408
1454
  color: "red.6",
1409
1455
  children: "\u0110\xF3ng"
@@ -1423,7 +1469,7 @@ import {
1423
1469
  } from "mantine-react-table";
1424
1470
  import { MRT_Localization_VI } from "mantine-react-table/locales/vi/index.cjs";
1425
1471
  import { useEffect as useEffect5 } from "react";
1426
- import { Fragment as Fragment7, jsx as jsx26, jsxs as jsxs14 } from "react/jsx-runtime";
1472
+ import { Fragment as Fragment7, jsx as jsx27, jsxs as jsxs15 } from "react/jsx-runtime";
1427
1473
  function formatData(data, formats) {
1428
1474
  return data.map((row) => {
1429
1475
  const transformedRow = {};
@@ -1486,14 +1532,14 @@ function MyDataTable(_a) {
1486
1532
  columns,
1487
1533
  data,
1488
1534
  renderTopToolbarCustomActions: ({ table: table2 }) => {
1489
- return /* @__PURE__ */ jsxs14(Group8, { children: [
1535
+ return /* @__PURE__ */ jsxs15(Group8, { children: [
1490
1536
  renderTopToolbarCustomActions && renderTopToolbarCustomActions({ table: table2 }),
1491
- exportAble && /* @__PURE__ */ jsx26(Fragment7, { children: /* @__PURE__ */ jsx26(
1537
+ exportAble && /* @__PURE__ */ jsx27(Fragment7, { children: /* @__PURE__ */ jsx27(
1492
1538
  Button6,
1493
1539
  {
1494
1540
  color: "green.8",
1495
1541
  onClick: () => handleExport(table2.getSelectedRowModel().rows),
1496
- leftSection: /* @__PURE__ */ jsx26(IconDownload3, {}),
1542
+ leftSection: /* @__PURE__ */ jsx27(IconDownload3, {}),
1497
1543
  variant: "filled",
1498
1544
  children: "Export"
1499
1545
  }
@@ -1540,7 +1586,7 @@ function MyDataTable(_a) {
1540
1586
  }
1541
1587
  },
1542
1588
  localization: MRT_Localization_VI,
1543
- renderEmptyRowsFallback: () => isError ? /* @__PURE__ */ jsx26(Alert, { icon: /* @__PURE__ */ jsx26(IconBug, {}), color: "red", title: "C\xF3 l\u1ED7i x\u1EA3y ra!", m: "md" }) : /* @__PURE__ */ jsx26(Alert, { icon: /* @__PURE__ */ jsx26(IconInfoCircle, {}), color: "gray", title: "Kh\xF4ng c\xF3 d\u1EEF li\u1EC7u!", m: "md" }),
1589
+ renderEmptyRowsFallback: () => isError ? /* @__PURE__ */ jsx27(Alert, { icon: /* @__PURE__ */ jsx27(IconBug, {}), color: "red", title: "C\xF3 l\u1ED7i x\u1EA3y ra!", m: "md" }) : /* @__PURE__ */ jsx27(Alert, { icon: /* @__PURE__ */ jsx27(IconInfoCircle, {}), color: "gray", title: "Kh\xF4ng c\xF3 d\u1EEF li\u1EC7u!", m: "md" }),
1544
1590
  state: {
1545
1591
  showSkeletons: isLoading
1546
1592
  },
@@ -1551,24 +1597,24 @@ function MyDataTable(_a) {
1551
1597
  setSelectedRow && setSelectedRow(table.getSelectedRowModel().rows.map((row) => row.original));
1552
1598
  }, [table.getState().rowSelection]);
1553
1599
  if (data == void 0) return;
1554
- 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 }) });
1600
+ return /* @__PURE__ */ jsx27("main", { style: { position: "relative", zIndex: 1 }, children: table.getState().isFullScreen ? /* @__PURE__ */ jsx27(Portal, { children: /* @__PURE__ */ jsx27(MantineReactTable, { table }) }) : /* @__PURE__ */ jsx27(MantineReactTable, { table }) });
1555
1601
  }
1556
1602
 
1557
1603
  // src/components/Buttons/ButtonImport/SelectFileModal.tsx
1558
1604
  import { Button as Button7, Fieldset as Fieldset2, FileInput as FileInput2, Modal as Modal7, NumberInput, Select as Select2, SimpleGrid as SimpleGrid2 } from "@mantine/core";
1559
1605
  import { IconArrowBigRight as IconArrowBigRight2, IconSquareRoundedX as IconSquareRoundedX2 } from "@tabler/icons-react";
1560
- import { jsx as jsx27, jsxs as jsxs15 } from "react/jsx-runtime";
1606
+ import { jsx as jsx28, jsxs as jsxs16 } from "react/jsx-runtime";
1561
1607
  function SelectFileModal({ onExportStructure, stack }) {
1562
1608
  var _a;
1563
1609
  const store = useS_ButtonImport();
1564
- return /* @__PURE__ */ jsxs15(
1610
+ return /* @__PURE__ */ jsxs16(
1565
1611
  Modal7,
1566
1612
  __spreadProps(__spreadValues({
1567
1613
  title: "Import",
1568
1614
  fullScreen: true
1569
1615
  }, stack.register("select-file-page")), {
1570
1616
  children: [
1571
- /* @__PURE__ */ jsx27(
1617
+ /* @__PURE__ */ jsx28(
1572
1618
  FileInput2,
1573
1619
  {
1574
1620
  value: store.state.file,
@@ -1578,8 +1624,8 @@ function SelectFileModal({ onExportStructure, stack }) {
1578
1624
  clearable: true
1579
1625
  }
1580
1626
  ),
1581
- /* @__PURE__ */ jsxs15(SimpleGrid2, { cols: { base: 1, md: 2, lg: 2, xl: 4 }, children: [
1582
- /* @__PURE__ */ jsx27(
1627
+ /* @__PURE__ */ jsxs16(SimpleGrid2, { cols: { base: 1, md: 2, lg: 2, xl: 4 }, children: [
1628
+ /* @__PURE__ */ jsx28(
1583
1629
  NumberInput,
1584
1630
  {
1585
1631
  label: "D\xF2ng ti\xEAu \u0111\u1EC1 b\u1EAFt \u0111\u1EA7u t\u1EEB",
@@ -1587,7 +1633,7 @@ function SelectFileModal({ onExportStructure, stack }) {
1587
1633
  onChange: (e4) => store.setProperty("startTitleIndex", e4)
1588
1634
  }
1589
1635
  ),
1590
- /* @__PURE__ */ jsx27(
1636
+ /* @__PURE__ */ jsx28(
1591
1637
  NumberInput,
1592
1638
  {
1593
1639
  label: "D\xF2ng d\u1EEF li\u1EC7u b\u1EAFt \u0111\u1EA7u t\u1EEB",
@@ -1595,7 +1641,7 @@ function SelectFileModal({ onExportStructure, stack }) {
1595
1641
  onChange: (e4) => store.setProperty("startDataIndex", e4)
1596
1642
  }
1597
1643
  ),
1598
- /* @__PURE__ */ jsx27(
1644
+ /* @__PURE__ */ jsx28(
1599
1645
  Select2,
1600
1646
  {
1601
1647
  readOnly: true,
@@ -1604,7 +1650,7 @@ function SelectFileModal({ onExportStructure, stack }) {
1604
1650
  defaultValue: "100.000"
1605
1651
  }
1606
1652
  ),
1607
- /* @__PURE__ */ jsx27(
1653
+ /* @__PURE__ */ jsx28(
1608
1654
  Select2,
1609
1655
  {
1610
1656
  readOnly: true,
@@ -1614,15 +1660,15 @@ function SelectFileModal({ onExportStructure, stack }) {
1614
1660
  }
1615
1661
  )
1616
1662
  ] }),
1617
- /* @__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(
1663
+ /* @__PURE__ */ jsx28(Fieldset2, { legend: "Danh s\xE1ch tr\u01B0\u1EDDng th\xF4ng tin trong file d\u1EEF li\u1EC7u", children: store.state.data && /* @__PURE__ */ jsx28(
1618
1664
  MyDataTable,
1619
1665
  {
1620
1666
  columns: store.columns,
1621
1667
  data: store.state.data
1622
1668
  }
1623
1669
  ) }),
1624
- /* @__PURE__ */ jsxs15(MyFlexEnd, { children: [
1625
- /* @__PURE__ */ jsx27(
1670
+ /* @__PURE__ */ jsxs16(MyFlexEnd, { children: [
1671
+ /* @__PURE__ */ jsx28(
1626
1672
  Button7,
1627
1673
  {
1628
1674
  color: "teal.8",
@@ -1630,21 +1676,21 @@ function SelectFileModal({ onExportStructure, stack }) {
1630
1676
  children: "Xu\u1EA5t file c\u1EA5u tr\xFAc"
1631
1677
  }
1632
1678
  ),
1633
- /* @__PURE__ */ jsx27(
1679
+ /* @__PURE__ */ jsx28(
1634
1680
  Button7,
1635
1681
  {
1636
1682
  disabled: ((_a = store.state.data) == null ? void 0 : _a.length) == 0,
1637
1683
  color: "blue.8",
1638
- leftSection: /* @__PURE__ */ jsx27(IconArrowBigRight2, {}),
1684
+ leftSection: /* @__PURE__ */ jsx28(IconArrowBigRight2, {}),
1639
1685
  onClick: () => stack.open("select-field-page"),
1640
1686
  children: "Ti\u1EBFp t\u1EE5c"
1641
1687
  }
1642
1688
  ),
1643
- /* @__PURE__ */ jsx27(
1689
+ /* @__PURE__ */ jsx28(
1644
1690
  Button7,
1645
1691
  {
1646
1692
  color: "red.6",
1647
- leftSection: /* @__PURE__ */ jsx27(IconSquareRoundedX2, {}),
1693
+ leftSection: /* @__PURE__ */ jsx28(IconSquareRoundedX2, {}),
1648
1694
  onClick: stack.closeAll,
1649
1695
  children: "\u0110\xF3ng"
1650
1696
  }
@@ -1656,26 +1702,26 @@ function SelectFileModal({ onExportStructure, stack }) {
1656
1702
  }
1657
1703
 
1658
1704
  // src/components/Buttons/ButtonImport/MyButtonImport.tsx
1659
- import { Fragment as Fragment8, jsx as jsx28, jsxs as jsxs16 } from "react/jsx-runtime";
1705
+ import { Fragment as Fragment8, jsx as jsx29, jsxs as jsxs17 } from "react/jsx-runtime";
1660
1706
  function MyButtonImport({
1661
1707
  onExportStructure,
1662
1708
  onImport
1663
1709
  }) {
1664
1710
  const stack = useModalsStack3(["select-file-page", "select-field-page", "implement-page"]);
1665
1711
  const store = useS_ButtonImport();
1666
- return /* @__PURE__ */ jsxs16(Fragment8, { children: [
1667
- /* @__PURE__ */ jsx28(Button8, { color: "teal.8", onClick: () => stack.open("select-file-page"), leftSection: /* @__PURE__ */ jsx28(IconFileImport2, {}), title: "Import", children: "Import" }),
1668
- /* @__PURE__ */ jsxs16(Modal8.Stack, { children: [
1669
- /* @__PURE__ */ jsx28(SelectFileModal, { stack, onExportStructure }),
1670
- /* @__PURE__ */ jsx28(SelectFieldModal, { stack, onImport: () => onImport(store.getDataFinal()) })
1712
+ return /* @__PURE__ */ jsxs17(Fragment8, { children: [
1713
+ /* @__PURE__ */ jsx29(Button8, { color: "teal.8", onClick: () => stack.open("select-file-page"), leftSection: /* @__PURE__ */ jsx29(IconFileImport2, {}), title: "Import", children: "Import" }),
1714
+ /* @__PURE__ */ jsxs17(Modal8.Stack, { children: [
1715
+ /* @__PURE__ */ jsx29(SelectFileModal, { stack, onExportStructure }),
1716
+ /* @__PURE__ */ jsx29(SelectFieldModal, { stack, onImport: () => onImport(store.getDataFinal()) })
1671
1717
  ] })
1672
1718
  ] });
1673
1719
  }
1674
1720
 
1675
1721
  // src/components/Buttons/ButtonModal/AQSelectTableByOpenModal.tsx
1676
1722
  import { Button as Button9, Fieldset as Fieldset3, Modal as Modal9 } from "@mantine/core";
1677
- import { useDisclosure as useDisclosure9 } from "@mantine/hooks";
1678
- import { Fragment as Fragment9, jsx as jsx29, jsxs as jsxs17 } from "react/jsx-runtime";
1723
+ import { useDisclosure as useDisclosure10 } from "@mantine/hooks";
1724
+ import { Fragment as Fragment9, jsx as jsx30, jsxs as jsxs18 } from "react/jsx-runtime";
1679
1725
  function AQSelectTableByOpenModal(_a) {
1680
1726
  var _b = _a, {
1681
1727
  setSelectedData,
@@ -1702,9 +1748,9 @@ function AQSelectTableByOpenModal(_a) {
1702
1748
  "fullScreen",
1703
1749
  "closeAfterSelect"
1704
1750
  ]);
1705
- const disclosure = useDisclosure9(false);
1706
- return /* @__PURE__ */ jsxs17(Fragment9, { children: [
1707
- /* @__PURE__ */ jsx29(
1751
+ const disclosure = useDisclosure10(false);
1752
+ return /* @__PURE__ */ jsxs18(Fragment9, { children: [
1753
+ /* @__PURE__ */ jsx30(
1708
1754
  Button9,
1709
1755
  __spreadProps(__spreadValues({
1710
1756
  onClick: disclosure[1].open
@@ -1712,7 +1758,7 @@ function AQSelectTableByOpenModal(_a) {
1712
1758
  children: label ? label : `Ch\u1ECDn t\u1EEB danh s\xE1ch`
1713
1759
  })
1714
1760
  ),
1715
- /* @__PURE__ */ jsx29(
1761
+ /* @__PURE__ */ jsx30(
1716
1762
  Modal9,
1717
1763
  {
1718
1764
  fullScreen,
@@ -1720,11 +1766,11 @@ function AQSelectTableByOpenModal(_a) {
1720
1766
  title,
1721
1767
  opened: disclosure == null ? void 0 : disclosure[0],
1722
1768
  onClose: disclosure[1].close,
1723
- children: /* @__PURE__ */ jsx29(MyFlexColumn, { children: /* @__PURE__ */ jsx29(Fieldset3, { legend: listLabel ? listLabel : "Danh s\xE1ch", children: /* @__PURE__ */ jsx29(
1769
+ children: /* @__PURE__ */ jsx30(MyFlexColumn, { children: /* @__PURE__ */ jsx30(Fieldset3, { legend: listLabel ? listLabel : "Danh s\xE1ch", children: /* @__PURE__ */ jsx30(
1724
1770
  MyDataTable,
1725
1771
  __spreadValues({
1726
1772
  renderTopToolbarCustomActions: ({ table }) => {
1727
- return /* @__PURE__ */ jsx29(Button9, { onClick: () => {
1773
+ return /* @__PURE__ */ jsx30(Button9, { onClick: () => {
1728
1774
  setSelectedData(table.getSelectedRowModel().rows.map((row) => row.original));
1729
1775
  closeAfterSelect && disclosure[1].close();
1730
1776
  }, children: "Ch\u1ECDn" });
@@ -1744,7 +1790,7 @@ import { useRef as useRef2 } from "react";
1744
1790
  import { Button as Button10 } from "@mantine/core";
1745
1791
  import { IconPrinter as IconPrinter2 } from "@tabler/icons-react";
1746
1792
  import { useReactToPrint } from "react-to-print";
1747
- import { Fragment as Fragment10, jsx as jsx30, jsxs as jsxs18 } from "react/jsx-runtime";
1793
+ import { Fragment as Fragment10, jsx as jsx31, jsxs as jsxs19 } from "react/jsx-runtime";
1748
1794
  function MyButtonPrintPDF(_a) {
1749
1795
  var _b = _a, { contentToPrint, children } = _b, rest = __objRest(_b, ["contentToPrint", "children"]);
1750
1796
  const printRef = useRef2(null);
@@ -1758,16 +1804,16 @@ function MyButtonPrintPDF(_a) {
1758
1804
  if (!contentToPrint) return;
1759
1805
  handlePrint();
1760
1806
  }
1761
- return /* @__PURE__ */ jsxs18(Fragment10, { children: [
1762
- /* @__PURE__ */ jsx30("div", { style: { display: "none" }, children: /* @__PURE__ */ jsx30("div", { ref: printRef, children: contentToPrint }) }),
1763
- /* @__PURE__ */ jsx30(Button10, __spreadProps(__spreadValues({ color: "orange", onClick: handleClick, leftSection: /* @__PURE__ */ jsx30(IconPrinter2, {}) }, rest), { children }))
1807
+ return /* @__PURE__ */ jsxs19(Fragment10, { children: [
1808
+ /* @__PURE__ */ jsx31("div", { style: { display: "none" }, children: /* @__PURE__ */ jsx31("div", { ref: printRef, children: contentToPrint }) }),
1809
+ /* @__PURE__ */ jsx31(Button10, __spreadProps(__spreadValues({ color: "orange", onClick: handleClick, leftSection: /* @__PURE__ */ jsx31(IconPrinter2, {}) }, rest), { children }))
1764
1810
  ] });
1765
1811
  }
1766
1812
 
1767
1813
  // src/components/Layouts/HtmlWrapper/MyHtmlWrapper.tsx
1768
1814
  import { ScrollArea, TypographyStylesProvider } from "@mantine/core";
1769
1815
  import pako from "pako";
1770
- import { jsx as jsx31 } from "react/jsx-runtime";
1816
+ import { jsx as jsx32 } from "react/jsx-runtime";
1771
1817
  function MyHtmlWrapper(_a) {
1772
1818
  var _b = _a, { html, mah, zip = false } = _b, rest = __objRest(_b, ["html", "mah", "zip"]);
1773
1819
  const extractHtmlFromZip = () => {
@@ -1776,7 +1822,7 @@ function MyHtmlWrapper(_a) {
1776
1822
  const cleanedHtml = decompressedData == null ? void 0 : decompressedData.replaceAll(" font-family:'Times New Roman'; font-size:1em;", "");
1777
1823
  return cleanedHtml.replaceAll(" font-family:'Times New Roman'; font-size:1em;", "");
1778
1824
  };
1779
- return /* @__PURE__ */ jsx31(ScrollArea.Autosize, { mah, children: /* @__PURE__ */ jsx31(TypographyStylesProvider, __spreadProps(__spreadValues({}, rest), { children: /* @__PURE__ */ jsx31(
1825
+ return /* @__PURE__ */ jsx32(ScrollArea.Autosize, { mah, children: /* @__PURE__ */ jsx32(TypographyStylesProvider, __spreadProps(__spreadValues({}, rest), { children: /* @__PURE__ */ jsx32(
1780
1826
  "div",
1781
1827
  {
1782
1828
  dangerouslySetInnerHTML: {
@@ -1788,7 +1834,7 @@ function MyHtmlWrapper(_a) {
1788
1834
 
1789
1835
  // src/components/Buttons/ButtonPrintPDFTable/MyButtonPrintTablePDF.tsx
1790
1836
  import { Box, Table as Table2 } from "@mantine/core";
1791
- import { jsx as jsx32, jsxs as jsxs19 } from "react/jsx-runtime";
1837
+ import { jsx as jsx33, jsxs as jsxs20 } from "react/jsx-runtime";
1792
1838
  function MyButtonPrintTablePDF(_a) {
1793
1839
  var _b = _a, {
1794
1840
  printConfig,
@@ -1814,8 +1860,8 @@ function MyButtonPrintTablePDF(_a) {
1814
1860
  };
1815
1861
  const rows = data == null ? void 0 : data.map((item, index) => {
1816
1862
  if (!(printConfig == null ? void 0 : printConfig.fields)) return null;
1817
- return /* @__PURE__ */ jsxs19(Table2.Tr, { children: [
1818
- printConfig.showRowNumbers && /* @__PURE__ */ jsx32(Table2.Td, { ta: "center", px: "xs", style: { border: "1px solid lightgray" }, children: index + 1 }),
1863
+ return /* @__PURE__ */ jsxs20(Table2.Tr, { children: [
1864
+ printConfig.showRowNumbers && /* @__PURE__ */ jsx33(Table2.Td, { ta: "center", px: "xs", style: { border: "1px solid lightgray" }, children: index + 1 }),
1819
1865
  printConfig.fields.map((field) => {
1820
1866
  let value = item[field.fieldName];
1821
1867
  if (field.formatFunction) {
@@ -1825,30 +1871,30 @@ function MyButtonPrintTablePDF(_a) {
1825
1871
  }
1826
1872
  const alignment = field.isCenter === false ? "left" : "center";
1827
1873
  if (typeof value === "string" && (value.includes("<") || value.includes("&lt;"))) {
1828
- return /* @__PURE__ */ jsx32(
1874
+ return /* @__PURE__ */ jsx33(
1829
1875
  Table2.Td,
1830
1876
  {
1831
1877
  px: "xs",
1832
1878
  ta: alignment,
1833
1879
  style: { border: "1px solid lightgray" },
1834
- children: /* @__PURE__ */ jsx32(MyHtmlWrapper, { html: value })
1880
+ children: /* @__PURE__ */ jsx33(MyHtmlWrapper, { html: value })
1835
1881
  },
1836
1882
  field.fieldName
1837
1883
  );
1838
1884
  }
1839
1885
  if (value === "true" || value === "false") {
1840
- return /* @__PURE__ */ jsx32(
1886
+ return /* @__PURE__ */ jsx33(
1841
1887
  Table2.Td,
1842
1888
  {
1843
1889
  ta: alignment,
1844
1890
  px: "xs",
1845
1891
  style: { border: "1px solid lightgray" },
1846
- children: /* @__PURE__ */ jsx32("input", { type: "checkbox", checked: value === "true", readOnly: true })
1892
+ children: /* @__PURE__ */ jsx33("input", { type: "checkbox", checked: value === "true", readOnly: true })
1847
1893
  },
1848
1894
  field.fieldName
1849
1895
  );
1850
1896
  }
1851
- return /* @__PURE__ */ jsx32(
1897
+ return /* @__PURE__ */ jsx33(
1852
1898
  Table2.Td,
1853
1899
  {
1854
1900
  ta: alignment,
@@ -1872,18 +1918,18 @@ function MyButtonPrintTablePDF(_a) {
1872
1918
  minute: "2-digit"
1873
1919
  });
1874
1920
  const tableTitle = (printConfig == null ? void 0 : printConfig.title) || "B\u1EA3ng d\u1EEF li\u1EC7u";
1875
- return /* @__PURE__ */ jsxs19(Box, { p: "lg", children: [
1876
- /* @__PURE__ */ jsxs19("div", { style: { textAlign: "center", marginTop: "10px", fontStyle: "italic", color: "#666" }, children: [
1921
+ return /* @__PURE__ */ jsxs20(Box, { p: "lg", children: [
1922
+ /* @__PURE__ */ jsxs20("div", { style: { textAlign: "center", marginTop: "10px", fontStyle: "italic", color: "#666" }, children: [
1877
1923
  "Ng\xE0y in: ",
1878
1924
  formattedDate
1879
1925
  ] }),
1880
- /* @__PURE__ */ jsx32("h2", { style: { textAlign: "center", fontSize: "24px", fontWeight: "bold", marginBottom: "20px" }, children: tableTitle }),
1881
- /* @__PURE__ */ jsxs19(Table2, { withColumnBorders: true, highlightOnHover: true, style: { border: "1px solid lightgray" }, children: [
1882
- /* @__PURE__ */ jsx32(Table2.Thead, { children: /* @__PURE__ */ jsxs19(Table2.Tr, { children: [
1883
- printConfig.showRowNumbers && /* @__PURE__ */ jsx32(Table2.Th, { style: { border: "1px solid lightgray" }, w: "10%", ta: "center", px: "xs", children: "STT" }),
1926
+ /* @__PURE__ */ jsx33("h2", { style: { textAlign: "center", fontSize: "24px", fontWeight: "bold", marginBottom: "20px" }, children: tableTitle }),
1927
+ /* @__PURE__ */ jsxs20(Table2, { withColumnBorders: true, highlightOnHover: true, style: { border: "1px solid lightgray" }, children: [
1928
+ /* @__PURE__ */ jsx33(Table2.Thead, { children: /* @__PURE__ */ jsxs20(Table2.Tr, { children: [
1929
+ printConfig.showRowNumbers && /* @__PURE__ */ jsx33(Table2.Th, { style: { border: "1px solid lightgray" }, w: "10%", ta: "center", px: "xs", children: "STT" }),
1884
1930
  printConfig.fields.map((field) => {
1885
1931
  const alignment = field.isCenter === false ? "left" : "center";
1886
- return /* @__PURE__ */ jsx32(
1932
+ return /* @__PURE__ */ jsx33(
1887
1933
  Table2.Th,
1888
1934
  {
1889
1935
  style: { border: "1px solid lightgray" },
@@ -1895,11 +1941,11 @@ function MyButtonPrintTablePDF(_a) {
1895
1941
  );
1896
1942
  })
1897
1943
  ] }) }),
1898
- /* @__PURE__ */ jsx32(Table2.Tbody, { children: rows })
1944
+ /* @__PURE__ */ jsx33(Table2.Tbody, { children: rows })
1899
1945
  ] })
1900
1946
  ] });
1901
1947
  };
1902
- return /* @__PURE__ */ jsx32(
1948
+ return /* @__PURE__ */ jsx33(
1903
1949
  MyButtonPrintPDF,
1904
1950
  __spreadValues({
1905
1951
  contentToPrint: renderContent()
@@ -1911,11 +1957,11 @@ function MyButtonPrintTablePDF(_a) {
1911
1957
  import { ActionIcon as ActionIcon9 } from "@mantine/core";
1912
1958
  import { IconArrowBack } from "@tabler/icons-react";
1913
1959
  import { useRouter as useRouter2 } from "next/navigation";
1914
- import { jsx as jsx33 } from "react/jsx-runtime";
1960
+ import { jsx as jsx34 } from "react/jsx-runtime";
1915
1961
  function MyButtonRouterBack(_a) {
1916
1962
  var _b = _a, { url, label } = _b, rest = __objRest(_b, ["url", "label"]);
1917
1963
  const router = useRouter2();
1918
- return /* @__PURE__ */ jsx33(
1964
+ return /* @__PURE__ */ jsx34(
1919
1965
  ActionIcon9,
1920
1966
  __spreadProps(__spreadValues({
1921
1967
  size: "xl",
@@ -1928,7 +1974,7 @@ function MyButtonRouterBack(_a) {
1928
1974
  router.back();
1929
1975
  }
1930
1976
  }, rest), {
1931
- children: /* @__PURE__ */ jsx33(IconArrowBack, { stroke: 2 })
1977
+ children: /* @__PURE__ */ jsx34(IconArrowBack, { stroke: 2 })
1932
1978
  })
1933
1979
  );
1934
1980
  }
@@ -1944,11 +1990,11 @@ import {
1944
1990
  Text as Text6,
1945
1991
  Tooltip as Tooltip4
1946
1992
  } from "@mantine/core";
1947
- import { useDisclosure as useDisclosure10 } from "@mantine/hooks";
1993
+ import { useDisclosure as useDisclosure11 } from "@mantine/hooks";
1948
1994
  import { IconLivePhoto as IconLivePhoto2, IconMaximize as IconMaximize3, IconMinimize as IconMinimize3 } from "@tabler/icons-react";
1949
1995
  import { useQuery } from "@tanstack/react-query";
1950
1996
  import { useState as useState8 } from "react";
1951
- import { Fragment as Fragment11, jsx as jsx34, jsxs as jsxs20 } from "react/jsx-runtime";
1997
+ import { Fragment as Fragment11, jsx as jsx35, jsxs as jsxs21 } from "react/jsx-runtime";
1952
1998
  function MyButtonViewPDF({
1953
1999
  id,
1954
2000
  modalSize = "80%",
@@ -1958,7 +2004,7 @@ function MyButtonViewPDF({
1958
2004
  filePath
1959
2005
  }) {
1960
2006
  var _a, _b, _c;
1961
- const disc = useDisclosure10(false);
2007
+ const disc = useDisclosure11(false);
1962
2008
  const fullScreen = useState8(false);
1963
2009
  const hSize = useState8("80vh");
1964
2010
  const query = useQuery({
@@ -1973,57 +2019,57 @@ function MyButtonViewPDF({
1973
2019
  },
1974
2020
  enabled: disc[0] == true
1975
2021
  });
1976
- return /* @__PURE__ */ jsxs20(Fragment11, { children: [
1977
- /* @__PURE__ */ jsx34(Tooltip4, { label: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp", children: isActionIcon ? /* @__PURE__ */ jsx34(
2022
+ return /* @__PURE__ */ jsxs21(Fragment11, { children: [
2023
+ /* @__PURE__ */ jsx35(Tooltip4, { label: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp", children: isActionIcon ? /* @__PURE__ */ jsx35(
1978
2024
  ActionIcon10,
1979
2025
  {
1980
2026
  onClick: () => {
1981
2027
  disc[1].open();
1982
2028
  },
1983
- children: /* @__PURE__ */ jsx34(IconLivePhoto2, {})
2029
+ children: /* @__PURE__ */ jsx35(IconLivePhoto2, {})
1984
2030
  }
1985
- ) : /* @__PURE__ */ jsx34(
2031
+ ) : /* @__PURE__ */ jsx35(
1986
2032
  Button11,
1987
2033
  {
1988
2034
  color: "cyan",
1989
2035
  onClick: () => {
1990
2036
  disc[1].open();
1991
2037
  },
1992
- leftSection: /* @__PURE__ */ jsx34(IconLivePhoto2, {}),
2038
+ leftSection: /* @__PURE__ */ jsx35(IconLivePhoto2, {}),
1993
2039
  children: label
1994
2040
  }
1995
2041
  ) }),
1996
- /* @__PURE__ */ jsx34(
2042
+ /* @__PURE__ */ jsx35(
1997
2043
  Modal10,
1998
2044
  {
1999
2045
  fullScreen: fullScreen[0],
2000
2046
  opened: disc[0],
2001
2047
  onClose: disc[1].close,
2002
2048
  size: modalSize,
2003
- title: /* @__PURE__ */ jsxs20(Group9, { children: [
2004
- /* @__PURE__ */ jsx34(Text6, { children: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp" }),
2005
- fullScreen[0] ? /* @__PURE__ */ jsx34(
2049
+ title: /* @__PURE__ */ jsxs21(Group9, { children: [
2050
+ /* @__PURE__ */ jsx35(Text6, { children: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp" }),
2051
+ fullScreen[0] ? /* @__PURE__ */ jsx35(
2006
2052
  ActionIcon10,
2007
2053
  {
2008
2054
  onClick: () => {
2009
2055
  fullScreen[1](false);
2010
2056
  hSize[1]("80vh");
2011
2057
  },
2012
- children: /* @__PURE__ */ jsx34(IconMinimize3, {})
2058
+ children: /* @__PURE__ */ jsx35(IconMinimize3, {})
2013
2059
  }
2014
- ) : /* @__PURE__ */ jsx34(
2060
+ ) : /* @__PURE__ */ jsx35(
2015
2061
  ActionIcon10,
2016
2062
  {
2017
2063
  onClick: () => {
2018
2064
  fullScreen[1](true);
2019
2065
  hSize[1]("90vh");
2020
2066
  },
2021
- children: /* @__PURE__ */ jsx34(IconMaximize3, {})
2067
+ children: /* @__PURE__ */ jsx35(IconMaximize3, {})
2022
2068
  }
2023
2069
  )
2024
2070
  ] }),
2025
- children: /* @__PURE__ */ jsxs20(Paper3, { h: hSize[0], p: "lg", pos: "relative", children: [
2026
- /* @__PURE__ */ jsx34(
2071
+ children: /* @__PURE__ */ jsxs21(Paper3, { h: hSize[0], p: "lg", pos: "relative", children: [
2072
+ /* @__PURE__ */ jsx35(
2027
2073
  LoadingOverlay,
2028
2074
  {
2029
2075
  visible: query.isLoading,
@@ -2031,14 +2077,14 @@ function MyButtonViewPDF({
2031
2077
  overlayProps: { radius: "sm", blur: 2 }
2032
2078
  }
2033
2079
  ),
2034
- query.data ? /* @__PURE__ */ jsx34(
2080
+ query.data ? /* @__PURE__ */ jsx35(
2035
2081
  "iframe",
2036
2082
  {
2037
2083
  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}`,
2038
2084
  width: "100%",
2039
2085
  height: "100%"
2040
2086
  }
2041
- ) : /* @__PURE__ */ jsx34("iframe", { src, width: "100%", height: "100%" })
2087
+ ) : /* @__PURE__ */ jsx35("iframe", { src, width: "100%", height: "100%" })
2042
2088
  ] })
2043
2089
  }
2044
2090
  )
@@ -6341,7 +6387,7 @@ import { ScheduleXCalendar, useNextCalendarApp } from "@schedule-x/react";
6341
6387
  import { Paper as Paper4, Text as Text7 } from "@mantine/core";
6342
6388
  import "@schedule-x/theme-default/dist/index.css";
6343
6389
  import { useEffect as useEffect6 } from "react";
6344
- import { jsx as jsx35, jsxs as jsxs21 } from "react/jsx-runtime";
6390
+ import { jsx as jsx36, jsxs as jsxs22 } from "react/jsx-runtime";
6345
6391
  function MyCalendar() {
6346
6392
  const plugins = [createEventsServicePlugin(), createEventModalPlugin()];
6347
6393
  const calendar = useNextCalendarApp({
@@ -6415,16 +6461,16 @@ function MyCalendar() {
6415
6461
  useEffect6(() => {
6416
6462
  calendar == null ? void 0 : calendar.events.getAll();
6417
6463
  }, []);
6418
- return /* @__PURE__ */ jsx35("div", { children: /* @__PURE__ */ jsx35(ScheduleXCalendar, { calendarApp: calendar, customComponents: {
6464
+ return /* @__PURE__ */ jsx36("div", { children: /* @__PURE__ */ jsx36(ScheduleXCalendar, { calendarApp: calendar, customComponents: {
6419
6465
  timeGridEvent: ({ calendarEvent }) => {
6420
6466
  console.log(calendarEvent);
6421
- return /* @__PURE__ */ jsx35(Paper4, { h: "100%", bg: calendarEvent.laLichThi ? "violet.2" : "blue.2", p: 4, children: /* @__PURE__ */ jsxs21(MyFlexColumn, { gap: 1, children: [
6422
- /* @__PURE__ */ jsxs21(Text7, { size: "sm", fw: "bold", children: [
6467
+ return /* @__PURE__ */ jsx36(Paper4, { h: "100%", bg: calendarEvent.laLichThi ? "violet.2" : "blue.2", p: 4, children: /* @__PURE__ */ jsxs22(MyFlexColumn, { gap: 1, children: [
6468
+ /* @__PURE__ */ jsxs22(Text7, { size: "sm", fw: "bold", children: [
6423
6469
  calendarEvent.laLichThi ? "(Thi) " : "(H\u1ECDc) ",
6424
6470
  calendarEvent.title
6425
6471
  ] }),
6426
- calendarEvent.laLichThi == false && /* @__PURE__ */ jsx35(Text7, { size: "sm", children: calendarEvent.giangvien }),
6427
- /* @__PURE__ */ jsx35(Text7, { size: "sm", children: calendarEvent.location })
6472
+ calendarEvent.laLichThi == false && /* @__PURE__ */ jsx36(Text7, { size: "sm", children: calendarEvent.giangvien }),
6473
+ /* @__PURE__ */ jsx36(Text7, { size: "sm", children: calendarEvent.location })
6428
6474
  ] }) });
6429
6475
  }
6430
6476
  // eventModal: ({ calendarEvent }) => {
@@ -6439,31 +6485,31 @@ function MyCalendar() {
6439
6485
 
6440
6486
  // src/components/CenterFull/MyCenterFull.tsx
6441
6487
  import { Center as Center2, Group as Group10 } from "@mantine/core";
6442
- import { jsx as jsx36 } from "react/jsx-runtime";
6488
+ import { jsx as jsx37 } from "react/jsx-runtime";
6443
6489
  function MyCenterFull({ children }) {
6444
- return /* @__PURE__ */ jsx36(Center2, { w: "100%", children: /* @__PURE__ */ jsx36(Group10, { children }) });
6490
+ return /* @__PURE__ */ jsx37(Center2, { w: "100%", children: /* @__PURE__ */ jsx37(Group10, { children }) });
6445
6491
  }
6446
6492
 
6447
6493
  // src/components/Checkbox/MyCheckbox.tsx
6448
6494
  import { Checkbox as Checkbox2 } from "@mantine/core";
6449
- import { jsx as jsx37 } from "react/jsx-runtime";
6495
+ import { jsx as jsx38 } from "react/jsx-runtime";
6450
6496
  function MyCheckbox(_a) {
6451
6497
  var rest = __objRest(_a, []);
6452
- return /* @__PURE__ */ jsx37(Checkbox2, __spreadValues({}, rest));
6498
+ return /* @__PURE__ */ jsx38(Checkbox2, __spreadValues({}, rest));
6453
6499
  }
6454
6500
 
6455
6501
  // src/components/Layouts/FlexRow/MyFlexRow.tsx
6456
6502
  import { Flex as Flex2 } from "@mantine/core";
6457
- import { jsx as jsx38 } from "react/jsx-runtime";
6503
+ import { jsx as jsx39 } from "react/jsx-runtime";
6458
6504
  function MyFlexRow(_a) {
6459
6505
  var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
6460
- return /* @__PURE__ */ jsx38(Flex2, __spreadProps(__spreadValues({ gap: "md", align: "center" }, rest), { children }));
6506
+ return /* @__PURE__ */ jsx39(Flex2, __spreadProps(__spreadValues({ gap: "md", align: "center" }, rest), { children }));
6461
6507
  }
6462
6508
 
6463
6509
  // src/components/DataDisplay/Card/AQCard.tsx
6464
6510
  import { Badge as Badge2, Card, Center as Center3, Image, Text as Text8 } from "@mantine/core";
6465
6511
  import Link from "next/link";
6466
- import { jsx as jsx39, jsxs as jsxs22 } from "react/jsx-runtime";
6512
+ import { jsx as jsx40, jsxs as jsxs23 } from "react/jsx-runtime";
6467
6513
  function AQCard({
6468
6514
  imgSrc = "https://raw.githubusercontent.com/mantinedev/mantine/master/.demo/images/bg-8.png",
6469
6515
  title,
@@ -6473,8 +6519,8 @@ function AQCard({
6473
6519
  status,
6474
6520
  href = ""
6475
6521
  }) {
6476
- return /* @__PURE__ */ jsxs22(Card, { shadow: "sm", padding: "lg", radius: "md", withBorder: true, component: Link, href, children: [
6477
- /* @__PURE__ */ jsx39(Card.Section, { children: /* @__PURE__ */ jsx39(Center3, { children: /* @__PURE__ */ jsx39(
6522
+ return /* @__PURE__ */ jsxs23(Card, { shadow: "sm", padding: "lg", radius: "md", withBorder: true, component: Link, href, children: [
6523
+ /* @__PURE__ */ jsx40(Card.Section, { children: /* @__PURE__ */ jsx40(Center3, { children: /* @__PURE__ */ jsx40(
6478
6524
  Image,
6479
6525
  {
6480
6526
  src: imgSrc,
@@ -6484,11 +6530,11 @@ function AQCard({
6484
6530
  alt: "Norway"
6485
6531
  }
6486
6532
  ) }) }),
6487
- /* @__PURE__ */ jsxs22(MyFlexRow, { justify: "space-between", mt: "md", mb: "xs", children: [
6488
- /* @__PURE__ */ jsx39(Text8, { fw: 500, children: title }),
6489
- status && /* @__PURE__ */ jsx39(Badge2, { color: "violet.5", w: "150px", children: status })
6533
+ /* @__PURE__ */ jsxs23(MyFlexRow, { justify: "space-between", mt: "md", mb: "xs", children: [
6534
+ /* @__PURE__ */ jsx40(Text8, { fw: 500, children: title }),
6535
+ status && /* @__PURE__ */ jsx40(Badge2, { color: "violet.5", w: "150px", children: status })
6490
6536
  ] }),
6491
- /* @__PURE__ */ jsx39(Text8, { size: "sm", c: "dimmed", lineClamp: 2, children: description }),
6537
+ /* @__PURE__ */ jsx40(Text8, { size: "sm", c: "dimmed", lineClamp: 2, children: description }),
6492
6538
  children
6493
6539
  ] });
6494
6540
  }
@@ -6496,7 +6542,7 @@ function AQCard({
6496
6542
  // src/components/DataDisplay/CardInformation/MyCardInformation.tsx
6497
6543
  import { Box as Box2, Flex as Flex3, Group as Group11, Paper as Paper5, Text as Text9 } from "@mantine/core";
6498
6544
  import { IconArrowDownRight, IconArrowUpRight } from "@tabler/icons-react";
6499
- import { jsx as jsx40, jsxs as jsxs23 } from "react/jsx-runtime";
6545
+ import { jsx as jsx41, jsxs as jsxs24 } from "react/jsx-runtime";
6500
6546
  function MyCardInformation({
6501
6547
  title,
6502
6548
  value,
@@ -6506,16 +6552,16 @@ function MyCardInformation({
6506
6552
  diff = 0,
6507
6553
  extraControl
6508
6554
  }) {
6509
- return /* @__PURE__ */ jsxs23(
6555
+ return /* @__PURE__ */ jsxs24(
6510
6556
  Paper5,
6511
6557
  {
6512
6558
  withBorder: true,
6513
6559
  p: "md",
6514
6560
  radius: "md",
6515
6561
  children: [
6516
- /* @__PURE__ */ jsxs23(Group11, { justify: "space-between", children: [
6517
- /* @__PURE__ */ jsxs23(Flex3, { direction: "column", children: [
6518
- /* @__PURE__ */ jsx40(
6562
+ /* @__PURE__ */ jsxs24(Group11, { justify: "space-between", children: [
6563
+ /* @__PURE__ */ jsxs24(Flex3, { direction: "column", children: [
6564
+ /* @__PURE__ */ jsx41(
6519
6565
  Text9,
6520
6566
  {
6521
6567
  tt: "uppercase",
@@ -6524,24 +6570,24 @@ function MyCardInformation({
6524
6570
  children: title
6525
6571
  }
6526
6572
  ),
6527
- unit == "" ? /* @__PURE__ */ jsxs23(Text9, { size: "xs", style: { visibility: "hidden" }, children: [
6573
+ unit == "" ? /* @__PURE__ */ jsxs24(Text9, { size: "xs", style: { visibility: "hidden" }, children: [
6528
6574
  "\u0110\u01A1n v\u1ECB: ",
6529
- /* @__PURE__ */ jsx40("strong", { children: unit })
6530
- ] }) : /* @__PURE__ */ jsxs23(Text9, { size: "xs", children: [
6575
+ /* @__PURE__ */ jsx41("strong", { children: unit })
6576
+ ] }) : /* @__PURE__ */ jsxs24(Text9, { size: "xs", children: [
6531
6577
  "\u0110\u01A1n v\u1ECB: ",
6532
- /* @__PURE__ */ jsx40("strong", { children: unit })
6578
+ /* @__PURE__ */ jsx41("strong", { children: unit })
6533
6579
  ] })
6534
6580
  ] }),
6535
- /* @__PURE__ */ jsx40(Box2, { children: icon })
6581
+ /* @__PURE__ */ jsx41(Box2, { children: icon })
6536
6582
  ] }),
6537
- /* @__PURE__ */ jsxs23(
6583
+ /* @__PURE__ */ jsxs24(
6538
6584
  Group11,
6539
6585
  {
6540
6586
  mt: "5",
6541
6587
  align: "flex-end",
6542
6588
  gap: "xs",
6543
6589
  children: [
6544
- /* @__PURE__ */ jsx40(
6590
+ /* @__PURE__ */ jsx41(
6545
6591
  Text9,
6546
6592
  {
6547
6593
  fw: 700,
@@ -6549,7 +6595,7 @@ function MyCardInformation({
6549
6595
  children: value
6550
6596
  }
6551
6597
  ),
6552
- /* @__PURE__ */ jsxs23(
6598
+ /* @__PURE__ */ jsxs24(
6553
6599
  Text9,
6554
6600
  {
6555
6601
  mb: "2",
@@ -6557,19 +6603,19 @@ function MyCardInformation({
6557
6603
  fz: "h2",
6558
6604
  fw: 500,
6559
6605
  children: [
6560
- /* @__PURE__ */ jsxs23("span", { children: [
6606
+ /* @__PURE__ */ jsxs24("span", { children: [
6561
6607
  diff,
6562
6608
  "%"
6563
6609
  ] }),
6564
- diff > 0 ? /* @__PURE__ */ jsx40(IconArrowUpRight, {}) : /* @__PURE__ */ jsx40(IconArrowDownRight, {})
6610
+ diff > 0 ? /* @__PURE__ */ jsx41(IconArrowUpRight, {}) : /* @__PURE__ */ jsx41(IconArrowDownRight, {})
6565
6611
  ]
6566
6612
  }
6567
6613
  )
6568
6614
  ]
6569
6615
  }
6570
6616
  ),
6571
- /* @__PURE__ */ jsxs23(Group11, { justify: "space-between", children: [
6572
- /* @__PURE__ */ jsx40(Text9, { tt: "uppercase", fz: "xs", c: "dimmed", children: description }),
6617
+ /* @__PURE__ */ jsxs24(Group11, { justify: "space-between", children: [
6618
+ /* @__PURE__ */ jsx41(Text9, { tt: "uppercase", fz: "xs", c: "dimmed", children: description }),
6573
6619
  extraControl
6574
6620
  ] })
6575
6621
  ]
@@ -6580,50 +6626,50 @@ function MyCardInformation({
6580
6626
 
6581
6627
  // src/components/DataDisplay/IconText/MyIconText.tsx
6582
6628
  import { Group as Group12, Text as Text10 } from "@mantine/core";
6583
- import { jsx as jsx41, jsxs as jsxs24 } from "react/jsx-runtime";
6629
+ import { jsx as jsx42, jsxs as jsxs25 } from "react/jsx-runtime";
6584
6630
  function MyIconText({ icon: Icon, text }) {
6585
- return /* @__PURE__ */ jsxs24(Group12, { wrap: "nowrap", gap: 10, mt: 3, children: [
6586
- Icon && /* @__PURE__ */ jsx41(Icon, { stroke: 1.5, size: 16 }),
6587
- /* @__PURE__ */ jsx41(Text10, { fz: "lg", c: "dimmed", children: text })
6631
+ return /* @__PURE__ */ jsxs25(Group12, { wrap: "nowrap", gap: 10, mt: 3, children: [
6632
+ Icon && /* @__PURE__ */ jsx42(Icon, { stroke: 1.5, size: 16 }),
6633
+ /* @__PURE__ */ jsx42(Text10, { fz: "lg", c: "dimmed", children: text })
6588
6634
  ] });
6589
6635
  }
6590
6636
 
6591
6637
  // src/components/DataDisplay/KeyLabel/MyKeyLabel.tsx
6592
6638
  import { Group as Group13, Text as Text11 } from "@mantine/core";
6593
- import { jsx as jsx42, jsxs as jsxs25 } from "react/jsx-runtime";
6639
+ import { jsx as jsx43, jsxs as jsxs26 } from "react/jsx-runtime";
6594
6640
  function MyKeyLabel({ keyLabel, label }) {
6595
- return /* @__PURE__ */ jsxs25(Group13, { gap: 5, children: [
6596
- /* @__PURE__ */ jsxs25(Text11, { fw: "bold", children: [
6641
+ return /* @__PURE__ */ jsxs26(Group13, { gap: 5, children: [
6642
+ /* @__PURE__ */ jsxs26(Text11, { fw: "bold", children: [
6597
6643
  keyLabel,
6598
6644
  ":"
6599
6645
  ] }),
6600
- /* @__PURE__ */ jsx42(Text11, { children: label })
6646
+ /* @__PURE__ */ jsx43(Text11, { children: label })
6601
6647
  ] });
6602
6648
  }
6603
6649
 
6604
6650
  // src/components/DataDisplay/NumberFormatter/MyNumberFormatter.tsx
6605
6651
  import { NumberFormatter } from "@mantine/core";
6606
- import { jsx as jsx43 } from "react/jsx-runtime";
6652
+ import { jsx as jsx44 } from "react/jsx-runtime";
6607
6653
  function MyNumberFormatter(_a) {
6608
6654
  var rest = __objRest(_a, []);
6609
- return /* @__PURE__ */ jsx43(NumberFormatter, __spreadValues({ thousandSeparator: true, suffix: " VN\u0110" }, rest));
6655
+ return /* @__PURE__ */ jsx44(NumberFormatter, __spreadValues({ thousandSeparator: true, suffix: " VN\u0110" }, rest));
6610
6656
  }
6611
6657
 
6612
6658
  // src/components/DataDisplay/StatCard/AQStatCard1.tsx
6613
6659
  import { Box as Box3, Button as Button13, Flex as Flex4, Group as Group14, Paper as Paper6, Text as Text12 } from "@mantine/core";
6614
6660
  import { IconArrowDownRight as IconArrowDownRight2, IconArrowUpRight as IconArrowUpRight2 } from "@tabler/icons-react";
6615
- import { Fragment as Fragment12, jsx as jsx44, jsxs as jsxs26 } from "react/jsx-runtime";
6661
+ import { Fragment as Fragment12, jsx as jsx45, jsxs as jsxs27 } from "react/jsx-runtime";
6616
6662
  function AQStatCard1({ title, value, unit = "", description, icons, diff }) {
6617
- return /* @__PURE__ */ jsx44(Fragment12, { children: /* @__PURE__ */ jsxs26(
6663
+ return /* @__PURE__ */ jsx45(Fragment12, { children: /* @__PURE__ */ jsxs27(
6618
6664
  Paper6,
6619
6665
  {
6620
6666
  withBorder: true,
6621
6667
  p: "md",
6622
6668
  radius: "md",
6623
6669
  children: [
6624
- /* @__PURE__ */ jsxs26(Group14, { justify: "space-between", children: [
6625
- /* @__PURE__ */ jsxs26(Flex4, { direction: "column", children: [
6626
- /* @__PURE__ */ jsx44(
6670
+ /* @__PURE__ */ jsxs27(Group14, { justify: "space-between", children: [
6671
+ /* @__PURE__ */ jsxs27(Flex4, { direction: "column", children: [
6672
+ /* @__PURE__ */ jsx45(
6627
6673
  Text12,
6628
6674
  {
6629
6675
  tt: "uppercase",
@@ -6632,24 +6678,24 @@ function AQStatCard1({ title, value, unit = "", description, icons, diff }) {
6632
6678
  children: title
6633
6679
  }
6634
6680
  ),
6635
- unit == "" ? /* @__PURE__ */ jsxs26(Text12, { size: "xs", style: { visibility: "hidden" }, children: [
6681
+ unit == "" ? /* @__PURE__ */ jsxs27(Text12, { size: "xs", style: { visibility: "hidden" }, children: [
6636
6682
  "\u0110\u01A1n v\u1ECB: ",
6637
- /* @__PURE__ */ jsx44("strong", { children: unit })
6638
- ] }) : /* @__PURE__ */ jsxs26(Text12, { size: "xs", children: [
6683
+ /* @__PURE__ */ jsx45("strong", { children: unit })
6684
+ ] }) : /* @__PURE__ */ jsxs27(Text12, { size: "xs", children: [
6639
6685
  "\u0110\u01A1n v\u1ECB: ",
6640
- /* @__PURE__ */ jsx44("strong", { children: unit })
6686
+ /* @__PURE__ */ jsx45("strong", { children: unit })
6641
6687
  ] })
6642
6688
  ] }),
6643
- /* @__PURE__ */ jsx44(Box3, { children: icons })
6689
+ /* @__PURE__ */ jsx45(Box3, { children: icons })
6644
6690
  ] }),
6645
- /* @__PURE__ */ jsxs26(
6691
+ /* @__PURE__ */ jsxs27(
6646
6692
  Group14,
6647
6693
  {
6648
6694
  mt: "5",
6649
6695
  align: "flex-end",
6650
6696
  gap: "xs",
6651
6697
  children: [
6652
- /* @__PURE__ */ jsx44(
6698
+ /* @__PURE__ */ jsx45(
6653
6699
  Text12,
6654
6700
  {
6655
6701
  fw: 700,
@@ -6657,7 +6703,7 @@ function AQStatCard1({ title, value, unit = "", description, icons, diff }) {
6657
6703
  children: value
6658
6704
  }
6659
6705
  ),
6660
- /* @__PURE__ */ jsxs26(
6706
+ /* @__PURE__ */ jsxs27(
6661
6707
  Text12,
6662
6708
  {
6663
6709
  mb: "2",
@@ -6665,20 +6711,20 @@ function AQStatCard1({ title, value, unit = "", description, icons, diff }) {
6665
6711
  fz: "h2",
6666
6712
  fw: 500,
6667
6713
  children: [
6668
- /* @__PURE__ */ jsxs26("span", { children: [
6714
+ /* @__PURE__ */ jsxs27("span", { children: [
6669
6715
  diff,
6670
6716
  "%"
6671
6717
  ] }),
6672
- diff > 0 ? /* @__PURE__ */ jsx44(IconArrowUpRight2, {}) : /* @__PURE__ */ jsx44(IconArrowDownRight2, {})
6718
+ diff > 0 ? /* @__PURE__ */ jsx45(IconArrowUpRight2, {}) : /* @__PURE__ */ jsx45(IconArrowDownRight2, {})
6673
6719
  ]
6674
6720
  }
6675
6721
  )
6676
6722
  ]
6677
6723
  }
6678
6724
  ),
6679
- /* @__PURE__ */ jsxs26(Group14, { justify: "space-between", children: [
6680
- /* @__PURE__ */ jsx44(Text12, { tt: "uppercase", fz: "xs", c: "dimmed", children: description }),
6681
- /* @__PURE__ */ jsx44(
6725
+ /* @__PURE__ */ jsxs27(Group14, { justify: "space-between", children: [
6726
+ /* @__PURE__ */ jsx45(Text12, { tt: "uppercase", fz: "xs", c: "dimmed", children: description }),
6727
+ /* @__PURE__ */ jsx45(
6682
6728
  Button13,
6683
6729
  {
6684
6730
  variant: "light",
@@ -6769,10 +6815,10 @@ function FaviconSetter() {
6769
6815
 
6770
6816
  // src/components/Inputs/DateInput/MyDateInput.tsx
6771
6817
  import { DateInput } from "@mantine/dates";
6772
- import { jsx as jsx45 } from "react/jsx-runtime";
6818
+ import { jsx as jsx46 } from "react/jsx-runtime";
6773
6819
  function MyDateInput(_a) {
6774
6820
  var _b = _a, { label } = _b, rest = __objRest(_b, ["label"]);
6775
- return /* @__PURE__ */ jsx45(DateInput, __spreadValues({ label, placeholder: label ? `Ch\u1ECDn ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
6821
+ return /* @__PURE__ */ jsx46(DateInput, __spreadValues({ label, placeholder: label ? `Ch\u1ECDn ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
6776
6822
  }
6777
6823
 
6778
6824
  // src/constants/enum/global.ts
@@ -6789,7 +6835,7 @@ var ENUM_DAYS_OF_WEEK = /* @__PURE__ */ ((ENUM_DAYS_OF_WEEK2) => {
6789
6835
 
6790
6836
  // src/components/Inputs/DayOfWeekPicker/MyDayOfWeekPicker.tsx
6791
6837
  import { Badge as Badge3, Group as Group15, Text as Text13 } from "@mantine/core";
6792
- import { jsx as jsx46, jsxs as jsxs27 } from "react/jsx-runtime";
6838
+ import { jsx as jsx47, jsxs as jsxs28 } from "react/jsx-runtime";
6793
6839
  var days = Object.entries(ENUM_DAYS_OF_WEEK).filter(([key]) => isNaN(Number(key))).map(([label, value]) => ({ label, value }));
6794
6840
  function MyDayOfWeekPicker({ value = [], onChange }) {
6795
6841
  const toggle = (val) => {
@@ -6797,9 +6843,9 @@ function MyDayOfWeekPicker({ value = [], onChange }) {
6797
6843
  const newValue = value.includes(val) ? value.filter((v5) => v5 !== val) : [...value, val];
6798
6844
  onChange(newValue);
6799
6845
  };
6800
- return /* @__PURE__ */ jsxs27(MyFlexRow, { align: "center", children: [
6801
- /* @__PURE__ */ jsx46(Text13, { children: "Danh s\xE1ch th\u1EE9: " }),
6802
- /* @__PURE__ */ jsx46(Group15, { gap: "xs", children: days.map((d5) => /* @__PURE__ */ jsx46(
6846
+ return /* @__PURE__ */ jsxs28(MyFlexRow, { align: "center", children: [
6847
+ /* @__PURE__ */ jsx47(Text13, { children: "Danh s\xE1ch th\u1EE9: " }),
6848
+ /* @__PURE__ */ jsx47(Group15, { gap: "xs", children: days.map((d5) => /* @__PURE__ */ jsx47(
6803
6849
  Badge3,
6804
6850
  {
6805
6851
  variant: value.includes(d5.value) ? "filled" : "outline",
@@ -6822,7 +6868,7 @@ import {
6822
6868
  Text as Text14,
6823
6869
  useMantineColorScheme as useMantineColorScheme2
6824
6870
  } from "@mantine/core";
6825
- import { jsx as jsx47, jsxs as jsxs28 } from "react/jsx-runtime";
6871
+ import { jsx as jsx48, jsxs as jsxs29 } from "react/jsx-runtime";
6826
6872
  function MyFieldset(_a) {
6827
6873
  var _b = _a, {
6828
6874
  children,
@@ -6851,10 +6897,10 @@ function MyFieldset(_a) {
6851
6897
  const mergedStyles = typeof styles === "function" ? styles : __spreadProps(__spreadValues({}, styles), {
6852
6898
  legend: __spreadValues(__spreadValues({}, defaultLegendStyles), styles == null ? void 0 : styles.legend)
6853
6899
  });
6854
- return /* @__PURE__ */ jsx47(
6900
+ return /* @__PURE__ */ jsx48(
6855
6901
  Fieldset4,
6856
6902
  __spreadProps(__spreadValues({
6857
- legend: customLegend != null ? customLegend : /* @__PURE__ */ jsx47(Group16, { gap: "xs", children: /* @__PURE__ */ jsxs28(Text14, { fw: 600, children: [
6903
+ legend: customLegend != null ? customLegend : /* @__PURE__ */ jsx48(Group16, { gap: "xs", children: /* @__PURE__ */ jsxs29(Text14, { fw: 600, children: [
6858
6904
  " ",
6859
6905
  title,
6860
6906
  " "
@@ -6869,13 +6915,13 @@ function MyFieldset(_a) {
6869
6915
  // src/components/Inputs/FileInput/MyFileInput.tsx
6870
6916
  import { FileInput as FileInput3 } from "@mantine/core";
6871
6917
  import { IconFile } from "@tabler/icons-react";
6872
- import { jsx as jsx48 } from "react/jsx-runtime";
6918
+ import { jsx as jsx49 } from "react/jsx-runtime";
6873
6919
  function MyFileInput(_a) {
6874
6920
  var _b = _a, { label } = _b, rest = __objRest(_b, ["label"]);
6875
- return /* @__PURE__ */ jsx48(
6921
+ return /* @__PURE__ */ jsx49(
6876
6922
  FileInput3,
6877
6923
  __spreadValues({
6878
- rightSection: /* @__PURE__ */ jsx48(IconFile, {}),
6924
+ rightSection: /* @__PURE__ */ jsx49(IconFile, {}),
6879
6925
  label,
6880
6926
  placeholder: label ? `Ch\u1ECDn ${label == null ? void 0 : label.toLowerCase()}` : ""
6881
6927
  }, rest)
@@ -6884,10 +6930,10 @@ function MyFileInput(_a) {
6884
6930
 
6885
6931
  // src/components/Inputs/NumberInput/MyNumberInput.tsx
6886
6932
  import { NumberInput as NumberInput2 } from "@mantine/core";
6887
- import { jsx as jsx49 } from "react/jsx-runtime";
6933
+ import { jsx as jsx50 } from "react/jsx-runtime";
6888
6934
  function MyNumberInput(_a) {
6889
6935
  var _b = _a, { minValue, label } = _b, rest = __objRest(_b, ["minValue", "label"]);
6890
- return /* @__PURE__ */ jsx49(
6936
+ return /* @__PURE__ */ jsx50(
6891
6937
  NumberInput2,
6892
6938
  __spreadValues({
6893
6939
  label,
@@ -6899,10 +6945,10 @@ function MyNumberInput(_a) {
6899
6945
 
6900
6946
  // src/components/Inputs/TextArea/MyTextArea.tsx
6901
6947
  import { Textarea } from "@mantine/core";
6902
- import { jsx as jsx50 } from "react/jsx-runtime";
6948
+ import { jsx as jsx51 } from "react/jsx-runtime";
6903
6949
  function MyTextArea(_a) {
6904
6950
  var _b = _a, { label } = _b, rest = __objRest(_b, ["label"]);
6905
- return /* @__PURE__ */ jsx50(Textarea, __spreadValues({ label, placeholder: label ? `Nh\u1EADp ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
6951
+ return /* @__PURE__ */ jsx51(Textarea, __spreadValues({ label, placeholder: label ? `Nh\u1EADp ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
6906
6952
  }
6907
6953
 
6908
6954
  // src/components/Inputs/TextEditor/MyTextEditor.tsx
@@ -6918,7 +6964,7 @@ import Underline from "@tiptap/extension-underline";
6918
6964
  import { useEditor } from "@tiptap/react";
6919
6965
  import StarterKit from "@tiptap/starter-kit";
6920
6966
  import { useEffect as useEffect8, useState as useState9 } from "react";
6921
- import { jsx as jsx51, jsxs as jsxs29 } from "react/jsx-runtime";
6967
+ import { jsx as jsx52, jsxs as jsxs30 } from "react/jsx-runtime";
6922
6968
  function MyTextEditor(_a) {
6923
6969
  var _b = _a, {
6924
6970
  autoHiddenToolBar = false,
@@ -7020,43 +7066,43 @@ function MyTextEditor(_a) {
7020
7066
  editor.commands.setContent(value);
7021
7067
  }
7022
7068
  }, [value, editor]);
7023
- return /* @__PURE__ */ jsx51(Input.Wrapper, { label, flex: 1, error, withAsterisk, children: /* @__PURE__ */ jsxs29(RichTextEditor, { editor, style: { border: error && "1px solid #e03131" }, children: [
7024
- /* @__PURE__ */ jsxs29(RichTextEditor.Toolbar, { hidden: hiddenToolBar, sticky: true, stickyOffset: 60, children: [
7025
- /* @__PURE__ */ jsxs29(RichTextEditor.ControlsGroup, { children: [
7026
- /* @__PURE__ */ jsx51(RichTextEditor.Bold, {}),
7027
- /* @__PURE__ */ jsx51(RichTextEditor.Italic, {}),
7028
- /* @__PURE__ */ jsx51(RichTextEditor.Underline, {}),
7029
- /* @__PURE__ */ jsx51(RichTextEditor.Strikethrough, {}),
7030
- /* @__PURE__ */ jsx51(RichTextEditor.ClearFormatting, {}),
7031
- /* @__PURE__ */ jsx51(RichTextEditor.Highlight, {}),
7032
- /* @__PURE__ */ jsx51(RichTextEditor.Code, {})
7069
+ return /* @__PURE__ */ jsx52(Input.Wrapper, { label, flex: 1, error, withAsterisk, children: /* @__PURE__ */ jsxs30(RichTextEditor, { editor, style: { border: error && "1px solid #e03131" }, children: [
7070
+ /* @__PURE__ */ jsxs30(RichTextEditor.Toolbar, { hidden: hiddenToolBar, sticky: true, stickyOffset: 60, children: [
7071
+ /* @__PURE__ */ jsxs30(RichTextEditor.ControlsGroup, { children: [
7072
+ /* @__PURE__ */ jsx52(RichTextEditor.Bold, {}),
7073
+ /* @__PURE__ */ jsx52(RichTextEditor.Italic, {}),
7074
+ /* @__PURE__ */ jsx52(RichTextEditor.Underline, {}),
7075
+ /* @__PURE__ */ jsx52(RichTextEditor.Strikethrough, {}),
7076
+ /* @__PURE__ */ jsx52(RichTextEditor.ClearFormatting, {}),
7077
+ /* @__PURE__ */ jsx52(RichTextEditor.Highlight, {}),
7078
+ /* @__PURE__ */ jsx52(RichTextEditor.Code, {})
7033
7079
  ] }),
7034
- /* @__PURE__ */ jsxs29(RichTextEditor.ControlsGroup, { children: [
7035
- /* @__PURE__ */ jsx51(RichTextEditor.H1, {}),
7036
- /* @__PURE__ */ jsx51(RichTextEditor.H2, {}),
7037
- /* @__PURE__ */ jsx51(RichTextEditor.H3, {}),
7038
- /* @__PURE__ */ jsx51(RichTextEditor.H4, {})
7080
+ /* @__PURE__ */ jsxs30(RichTextEditor.ControlsGroup, { children: [
7081
+ /* @__PURE__ */ jsx52(RichTextEditor.H1, {}),
7082
+ /* @__PURE__ */ jsx52(RichTextEditor.H2, {}),
7083
+ /* @__PURE__ */ jsx52(RichTextEditor.H3, {}),
7084
+ /* @__PURE__ */ jsx52(RichTextEditor.H4, {})
7039
7085
  ] }),
7040
- /* @__PURE__ */ jsxs29(RichTextEditor.ControlsGroup, { children: [
7041
- /* @__PURE__ */ jsx51(RichTextEditor.Blockquote, {}),
7042
- /* @__PURE__ */ jsx51(RichTextEditor.Hr, {}),
7043
- /* @__PURE__ */ jsx51(RichTextEditor.BulletList, {}),
7044
- /* @__PURE__ */ jsx51(RichTextEditor.OrderedList, {}),
7045
- /* @__PURE__ */ jsx51(RichTextEditor.Subscript, {}),
7046
- /* @__PURE__ */ jsx51(RichTextEditor.Superscript, {})
7086
+ /* @__PURE__ */ jsxs30(RichTextEditor.ControlsGroup, { children: [
7087
+ /* @__PURE__ */ jsx52(RichTextEditor.Blockquote, {}),
7088
+ /* @__PURE__ */ jsx52(RichTextEditor.Hr, {}),
7089
+ /* @__PURE__ */ jsx52(RichTextEditor.BulletList, {}),
7090
+ /* @__PURE__ */ jsx52(RichTextEditor.OrderedList, {}),
7091
+ /* @__PURE__ */ jsx52(RichTextEditor.Subscript, {}),
7092
+ /* @__PURE__ */ jsx52(RichTextEditor.Superscript, {})
7047
7093
  ] }),
7048
- /* @__PURE__ */ jsxs29(RichTextEditor.ControlsGroup, { children: [
7049
- /* @__PURE__ */ jsx51(RichTextEditor.Link, {}),
7050
- /* @__PURE__ */ jsx51(RichTextEditor.Unlink, {})
7094
+ /* @__PURE__ */ jsxs30(RichTextEditor.ControlsGroup, { children: [
7095
+ /* @__PURE__ */ jsx52(RichTextEditor.Link, {}),
7096
+ /* @__PURE__ */ jsx52(RichTextEditor.Unlink, {})
7051
7097
  ] }),
7052
- /* @__PURE__ */ jsxs29(RichTextEditor.ControlsGroup, { children: [
7053
- /* @__PURE__ */ jsx51(RichTextEditor.AlignLeft, {}),
7054
- /* @__PURE__ */ jsx51(RichTextEditor.AlignCenter, {}),
7055
- /* @__PURE__ */ jsx51(RichTextEditor.AlignJustify, {}),
7056
- /* @__PURE__ */ jsx51(RichTextEditor.AlignRight, {})
7098
+ /* @__PURE__ */ jsxs30(RichTextEditor.ControlsGroup, { children: [
7099
+ /* @__PURE__ */ jsx52(RichTextEditor.AlignLeft, {}),
7100
+ /* @__PURE__ */ jsx52(RichTextEditor.AlignCenter, {}),
7101
+ /* @__PURE__ */ jsx52(RichTextEditor.AlignJustify, {}),
7102
+ /* @__PURE__ */ jsx52(RichTextEditor.AlignRight, {})
7057
7103
  ] })
7058
7104
  ] }),
7059
- /* @__PURE__ */ jsx51(
7105
+ /* @__PURE__ */ jsx52(
7060
7106
  ScrollArea2.Autosize,
7061
7107
  {
7062
7108
  onMouseDown: () => {
@@ -7071,7 +7117,7 @@ function MyTextEditor(_a) {
7071
7117
  setHiddenToolBar(false);
7072
7118
  },
7073
7119
  style: { cursor: "text", maxHeight: "400px" },
7074
- children: /* @__PURE__ */ jsx51(RichTextEditor.Content, { mih: contentHeight })
7120
+ children: /* @__PURE__ */ jsx52(RichTextEditor.Content, { mih: contentHeight })
7075
7121
  }
7076
7122
  )
7077
7123
  ] }) });
@@ -7097,7 +7143,7 @@ import {
7097
7143
  } from "@mantine/core";
7098
7144
  import { IconPlus as IconPlus5, IconTrash as IconTrash5 } from "@tabler/icons-react";
7099
7145
  import { useState as useState10 } from "react";
7100
- import { jsx as jsx52, jsxs as jsxs30 } from "react/jsx-runtime";
7146
+ import { jsx as jsx53, jsxs as jsxs31 } from "react/jsx-runtime";
7101
7147
  function MyWeeklySessionSchedulerPicker({
7102
7148
  value = [],
7103
7149
  onChange
@@ -7128,8 +7174,8 @@ function MyWeeklySessionSchedulerPicker({
7128
7174
  return acc;
7129
7175
  }, {});
7130
7176
  const getLabel = (day) => ENUM_DAYS_OF_WEEK[day] || `Day ${day}`;
7131
- return /* @__PURE__ */ jsx52(Paper7, { w: "100%", p: "md", children: /* @__PURE__ */ jsxs30(MyFlexColumn, { children: [
7132
- /* @__PURE__ */ jsx52(Center4, { children: /* @__PURE__ */ jsx52(
7177
+ return /* @__PURE__ */ jsx53(Paper7, { w: "100%", p: "md", children: /* @__PURE__ */ jsxs31(MyFlexColumn, { children: [
7178
+ /* @__PURE__ */ jsx53(Center4, { children: /* @__PURE__ */ jsx53(
7133
7179
  MyDayOfWeekPicker,
7134
7180
  {
7135
7181
  value: selectedDays,
@@ -7139,41 +7185,41 @@ function MyWeeklySessionSchedulerPicker({
7139
7185
  }
7140
7186
  }
7141
7187
  ) }),
7142
- /* @__PURE__ */ jsx52(Divider2, { my: "xs" }),
7143
- /* @__PURE__ */ jsx52(Center4, { children: /* @__PURE__ */ jsx52(ScrollArea3.Autosize, { h: "40vh", children: /* @__PURE__ */ jsx52(MyFlexColumn, { w: { base: "100%", sm: "70%" }, children: selectedDays.map((dayOfWeek) => {
7188
+ /* @__PURE__ */ jsx53(Divider2, { my: "xs" }),
7189
+ /* @__PURE__ */ jsx53(Center4, { children: /* @__PURE__ */ jsx53(ScrollArea3.Autosize, { h: "40vh", children: /* @__PURE__ */ jsx53(MyFlexColumn, { w: { base: "100%", sm: "70%" }, children: selectedDays.map((dayOfWeek) => {
7144
7190
  var _a;
7145
- return /* @__PURE__ */ jsxs30(
7191
+ return /* @__PURE__ */ jsxs31(
7146
7192
  Paper7,
7147
7193
  {
7148
7194
  w: "100%",
7149
7195
  p: "md",
7150
7196
  bg: object_colors.mantineBackgroundBlueLight,
7151
7197
  children: [
7152
- /* @__PURE__ */ jsxs30(Group17, { gap: "apart", children: [
7153
- /* @__PURE__ */ jsx52(Text15, { w: "70px", fw: 500, children: getLabel(dayOfWeek) }),
7154
- /* @__PURE__ */ jsx52(
7198
+ /* @__PURE__ */ jsxs31(Group17, { gap: "apart", children: [
7199
+ /* @__PURE__ */ jsx53(Text15, { w: "70px", fw: 500, children: getLabel(dayOfWeek) }),
7200
+ /* @__PURE__ */ jsx53(
7155
7201
  Button14,
7156
7202
  {
7157
7203
  color: "teal.5",
7158
- leftSection: /* @__PURE__ */ jsx52(IconPlus5, { size: 14 }),
7204
+ leftSection: /* @__PURE__ */ jsx53(IconPlus5, { size: 14 }),
7159
7205
  onClick: () => handleAddSession(dayOfWeek),
7160
7206
  children: "Th\xEAm bu\u1ED5i"
7161
7207
  }
7162
7208
  )
7163
7209
  ] }),
7164
- /* @__PURE__ */ jsx52(Divider2, { my: "sm" }),
7210
+ /* @__PURE__ */ jsx53(Divider2, { my: "sm" }),
7165
7211
  (_a = grouped[dayOfWeek]) == null ? void 0 : _a.map((item, indexInDay) => {
7166
7212
  const globalIndex = value.findIndex(
7167
7213
  (v5) => v5 === item
7168
7214
  );
7169
- return /* @__PURE__ */ jsxs30(
7215
+ return /* @__PURE__ */ jsxs31(
7170
7216
  Group17,
7171
7217
  {
7172
7218
  mt: "xs",
7173
7219
  gap: "xs",
7174
7220
  align: "flex-end",
7175
7221
  children: [
7176
- /* @__PURE__ */ jsx52(
7222
+ /* @__PURE__ */ jsx53(
7177
7223
  NumberInput3,
7178
7224
  {
7179
7225
  label: "Ti\u1EBFt b\u1EAFt \u0111\u1EA7u",
@@ -7185,7 +7231,7 @@ function MyWeeklySessionSchedulerPicker({
7185
7231
  )
7186
7232
  }
7187
7233
  ),
7188
- /* @__PURE__ */ jsx52(
7234
+ /* @__PURE__ */ jsx53(
7189
7235
  NumberInput3,
7190
7236
  {
7191
7237
  label: "S\u1ED1 ti\u1EBFt",
@@ -7197,7 +7243,7 @@ function MyWeeklySessionSchedulerPicker({
7197
7243
  )
7198
7244
  }
7199
7245
  ),
7200
- /* @__PURE__ */ jsx52(
7246
+ /* @__PURE__ */ jsx53(
7201
7247
  NumberInput3,
7202
7248
  {
7203
7249
  label: "S\u1ED1 ph\xFAt ",
@@ -7206,13 +7252,13 @@ function MyWeeklySessionSchedulerPicker({
7206
7252
  value: item.durationMinutes
7207
7253
  }
7208
7254
  ),
7209
- /* @__PURE__ */ jsx52(
7255
+ /* @__PURE__ */ jsx53(
7210
7256
  Button14,
7211
7257
  {
7212
7258
  variant: "light",
7213
7259
  color: "red",
7214
7260
  onClick: () => handleRemove(globalIndex),
7215
- leftSection: /* @__PURE__ */ jsx52(IconTrash5, { size: 14 }),
7261
+ leftSection: /* @__PURE__ */ jsx53(IconTrash5, { size: 14 }),
7216
7262
  children: "X\xF3a bu\u1ED5i"
7217
7263
  }
7218
7264
  )
@@ -7245,14 +7291,14 @@ function useS_authenticate() {
7245
7291
  }
7246
7292
 
7247
7293
  // src/modules-features/authenticate/F_authenticate_Logout.tsx
7248
- import { jsx as jsx53 } from "react/jsx-runtime";
7294
+ import { jsx as jsx54 } from "react/jsx-runtime";
7249
7295
  function F_authenticate_Logout({ redirectURL = "/auth/login" }) {
7250
7296
  const router = useRouter3();
7251
7297
  const S_Authenticate = useS_authenticate();
7252
- return /* @__PURE__ */ jsx53(Button15, { onClick: () => {
7298
+ return /* @__PURE__ */ jsx54(Button15, { onClick: () => {
7253
7299
  S_Authenticate.setProperty("token", "");
7254
7300
  router.replace(redirectURL);
7255
- }, leftSection: /* @__PURE__ */ jsx53(IconLogout, {}), fullWidth: true, justify: "start", variant: "subtle", children: "\u0110\u0103ng xu\u1EA5t" });
7301
+ }, leftSection: /* @__PURE__ */ jsx54(IconLogout, {}), fullWidth: true, justify: "start", variant: "subtle", children: "\u0110\u0103ng xu\u1EA5t" });
7256
7302
  }
7257
7303
 
7258
7304
  // src/components/Layouts/BasicAppShell/BasicAppShell.tsx
@@ -7277,7 +7323,7 @@ import {
7277
7323
  import Link3 from "next/link";
7278
7324
  import { usePathname as usePathname2 } from "next/navigation";
7279
7325
  import { useEffect as useEffect9, useMemo as useMemo3, useState as useState11 } from "react";
7280
- import { Fragment as Fragment13, jsx as jsx54, jsxs as jsxs31 } from "react/jsx-runtime";
7326
+ import { Fragment as Fragment13, jsx as jsx55, jsxs as jsxs32 } from "react/jsx-runtime";
7281
7327
  function findBreadcrumbPath(items, currentPath, parents = []) {
7282
7328
  for (const item of items) {
7283
7329
  if (item.link === currentPath) {
@@ -7292,13 +7338,13 @@ function findBreadcrumbPath(items, currentPath, parents = []) {
7292
7338
  }
7293
7339
  function getRightSection(status) {
7294
7340
  if (status === "Prototype")
7295
- return /* @__PURE__ */ jsx54(Badge4, { styles: { root: { cursor: "pointer" } }, radius: "xs", color: "pink", circle: true, children: "P" });
7341
+ return /* @__PURE__ */ jsx55(Badge4, { styles: { root: { cursor: "pointer" } }, radius: "xs", color: "pink", circle: true, children: "P" });
7296
7342
  if (status === "New")
7297
- return /* @__PURE__ */ jsx54(Badge4, { styles: { root: { cursor: "pointer" } }, radius: "xs", circle: true, children: "N" });
7343
+ return /* @__PURE__ */ jsx55(Badge4, { styles: { root: { cursor: "pointer" } }, radius: "xs", circle: true, children: "N" });
7298
7344
  if (status === "Menu")
7299
- return /* @__PURE__ */ jsx54(Badge4, { styles: { root: { cursor: "pointer" } }, radius: "xs", color: "gray", circle: true, children: "M" });
7345
+ return /* @__PURE__ */ jsx55(Badge4, { styles: { root: { cursor: "pointer" } }, radius: "xs", color: "gray", circle: true, children: "M" });
7300
7346
  if (status === "Change")
7301
- return /* @__PURE__ */ jsx54(Badge4, { styles: { root: { cursor: "pointer" } }, radius: "xs", color: "green", circle: true, children: "C" });
7347
+ return /* @__PURE__ */ jsx55(Badge4, { styles: { root: { cursor: "pointer" } }, radius: "xs", color: "green", circle: true, children: "C" });
7302
7348
  return null;
7303
7349
  }
7304
7350
  function RenderNavLinks({
@@ -7306,14 +7352,14 @@ function RenderNavLinks({
7306
7352
  }) {
7307
7353
  const basicAppShellStore = useS_BasicAppShell();
7308
7354
  const pathName = usePathname2();
7309
- return /* @__PURE__ */ jsx54(Fragment13, { children: items.map((item, index) => /* @__PURE__ */ jsx54(
7355
+ return /* @__PURE__ */ jsx55(Fragment13, { children: items.map((item, index) => /* @__PURE__ */ jsx55(
7310
7356
  NavLink,
7311
7357
  {
7312
7358
  active: item.link === pathName.split("/")[2],
7313
7359
  component: Link3,
7314
7360
  opened: basicAppShellStore.state.groupMenuOpenId.includes(item.label),
7315
7361
  href: `/${pathName.split("/")[1]}/${item.link}` || "#",
7316
- label: /* @__PURE__ */ jsxs31(MyFlexRow, { justify: "space-between", children: [
7362
+ label: /* @__PURE__ */ jsxs32(MyFlexRow, { justify: "space-between", children: [
7317
7363
  item.label,
7318
7364
  " ",
7319
7365
  getRightSection(item.status)
@@ -7325,7 +7371,7 @@ function RenderNavLinks({
7325
7371
  return;
7326
7372
  }
7327
7373
  },
7328
- children: item.links && /* @__PURE__ */ jsx54(RenderNavLinks, { items: item.links })
7374
+ children: item.links && /* @__PURE__ */ jsx55(RenderNavLinks, { items: item.links })
7329
7375
  },
7330
7376
  index
7331
7377
  )) });
@@ -7448,7 +7494,7 @@ function BasicAppShell({ children, menu, extraTopRight, title }) {
7448
7494
  basicAppShellStore.setProperty("note", linkItem == null ? void 0 : linkItem.note);
7449
7495
  basicAppShellStore.setProperty("status", linkItem == null ? void 0 : linkItem.status);
7450
7496
  }, [pathName]);
7451
- return /* @__PURE__ */ jsxs31(
7497
+ return /* @__PURE__ */ jsxs32(
7452
7498
  AppShell,
7453
7499
  {
7454
7500
  header: { height: 60 },
@@ -7462,36 +7508,36 @@ function BasicAppShell({ children, menu, extraTopRight, title }) {
7462
7508
  },
7463
7509
  padding: "md",
7464
7510
  children: [
7465
- /* @__PURE__ */ jsx54(AppShell.Header, { children: media ? /* @__PURE__ */ jsxs31(Group18, { h: "100%", px: "md", justify: "space-between", align: "center", children: [
7466
- /* @__PURE__ */ jsxs31(Group18, { h: "100%", children: [
7467
- /* @__PURE__ */ jsx54(
7511
+ /* @__PURE__ */ jsx55(AppShell.Header, { children: media ? /* @__PURE__ */ jsxs32(Group18, { h: "100%", px: "md", justify: "space-between", align: "center", children: [
7512
+ /* @__PURE__ */ jsxs32(Group18, { h: "100%", children: [
7513
+ /* @__PURE__ */ jsx55(
7468
7514
  Tooltip5,
7469
7515
  {
7470
7516
  label: basicAppShellStore.state.opened ? "\u1EA8n thanh menu" : "Hi\u1EC7n thanh menu",
7471
- children: /* @__PURE__ */ jsx54(
7517
+ children: /* @__PURE__ */ jsx55(
7472
7518
  ActionIcon11,
7473
7519
  {
7474
7520
  size: "lg",
7475
7521
  radius: "md",
7476
7522
  variant: "default",
7477
7523
  onClick: basicAppShellStore.toggle,
7478
- children: basicAppShellStore.state.opened ? /* @__PURE__ */ jsx54(IconLayoutSidebarLeftExpand, {}) : /* @__PURE__ */ jsx54(IconLayoutSidebarLeftCollapse, {})
7524
+ children: basicAppShellStore.state.opened ? /* @__PURE__ */ jsx55(IconLayoutSidebarLeftExpand, {}) : /* @__PURE__ */ jsx55(IconLayoutSidebarLeftCollapse, {})
7479
7525
  }
7480
7526
  )
7481
7527
  }
7482
7528
  ),
7483
- /* @__PURE__ */ jsx54(Tooltip5, { label: "\u0110\xF3ng t\u1EA5t c\u1EA3 menu", children: /* @__PURE__ */ jsx54(
7529
+ /* @__PURE__ */ jsx55(Tooltip5, { label: "\u0110\xF3ng t\u1EA5t c\u1EA3 menu", children: /* @__PURE__ */ jsx55(
7484
7530
  ActionIcon11,
7485
7531
  {
7486
7532
  size: "lg",
7487
7533
  radius: "md",
7488
7534
  variant: "default",
7489
7535
  onClick: () => basicAppShellStore.clearGroupMenuOpenId(),
7490
- children: /* @__PURE__ */ jsx54(IconLibraryMinus, {})
7536
+ children: /* @__PURE__ */ jsx55(IconLibraryMinus, {})
7491
7537
  }
7492
7538
  ) })
7493
7539
  ] }),
7494
- /* @__PURE__ */ jsx54(
7540
+ /* @__PURE__ */ jsx55(
7495
7541
  Group18,
7496
7542
  {
7497
7543
  style: {
@@ -7499,43 +7545,43 @@ function BasicAppShell({ children, menu, extraTopRight, title }) {
7499
7545
  left: "50%",
7500
7546
  transform: "translateX(-50%)"
7501
7547
  },
7502
- children: /* @__PURE__ */ jsx54(Text16, { c: "green", fw: "bold", size: "sm", children: title ? title : `${basicAppShellStore.state.moduleCode} - ${basicAppShellStore.state.moduleName}` })
7548
+ children: /* @__PURE__ */ jsx55(Text16, { c: "green", fw: "bold", size: "sm", children: title ? title : `${basicAppShellStore.state.moduleCode} - ${basicAppShellStore.state.moduleName}` })
7503
7549
  }
7504
7550
  ),
7505
- /* @__PURE__ */ jsxs31(Group18, { children: [
7551
+ /* @__PURE__ */ jsxs32(Group18, { children: [
7506
7552
  extraTopRight,
7507
- /* @__PURE__ */ jsx54(MySwitchTheme, {})
7553
+ /* @__PURE__ */ jsx55(MySwitchTheme, {})
7508
7554
  ] })
7509
7555
  ] }) : (
7510
7556
  // For mobile screens - simplified layout
7511
- /* @__PURE__ */ jsxs31(Group18, { h: "100%", px: "md", justify: "space-between", children: [
7512
- /* @__PURE__ */ jsx54(
7557
+ /* @__PURE__ */ jsxs32(Group18, { h: "100%", px: "md", justify: "space-between", children: [
7558
+ /* @__PURE__ */ jsx55(
7513
7559
  ActionIcon11,
7514
7560
  {
7515
7561
  size: "lg",
7516
7562
  radius: "md",
7517
7563
  variant: "default",
7518
7564
  onClick: basicAppShellStore.toggle,
7519
- children: basicAppShellStore.state.opened ? /* @__PURE__ */ jsx54(IconLayoutSidebarLeftExpand, {}) : /* @__PURE__ */ jsx54(IconLayoutSidebarLeftCollapse, {})
7565
+ children: basicAppShellStore.state.opened ? /* @__PURE__ */ jsx55(IconLayoutSidebarLeftExpand, {}) : /* @__PURE__ */ jsx55(IconLayoutSidebarLeftCollapse, {})
7520
7566
  }
7521
7567
  ),
7522
- /* @__PURE__ */ jsx54(Text16, { c: "green", fw: "bold", size: "sm", children: title ? title : `${basicAppShellStore.state.moduleCode} - ${basicAppShellStore.state.moduleName}` }),
7523
- /* @__PURE__ */ jsxs31(Group18, { children: [
7568
+ /* @__PURE__ */ jsx55(Text16, { c: "green", fw: "bold", size: "sm", children: title ? title : `${basicAppShellStore.state.moduleCode} - ${basicAppShellStore.state.moduleName}` }),
7569
+ /* @__PURE__ */ jsxs32(Group18, { children: [
7524
7570
  extraTopRight,
7525
- /* @__PURE__ */ jsx54(MySwitchTheme, {})
7571
+ /* @__PURE__ */ jsx55(MySwitchTheme, {})
7526
7572
  ] })
7527
7573
  ] })
7528
7574
  ) }),
7529
- /* @__PURE__ */ jsxs31(AppShell.Navbar, { children: [
7530
- /* @__PURE__ */ jsx54(MyAppSpotlight, { menu }),
7531
- /* @__PURE__ */ jsxs31(AppShell.Section, { grow: true, component: ScrollArea4, p: 5, children: [
7532
- /* @__PURE__ */ jsx54(RenderNavLinks, { items: menu }),
7533
- /* @__PURE__ */ jsx54(Divider3, {}),
7534
- /* @__PURE__ */ jsx54(F_authenticate_Logout, {})
7575
+ /* @__PURE__ */ jsxs32(AppShell.Navbar, { children: [
7576
+ /* @__PURE__ */ jsx55(MyAppSpotlight, { menu }),
7577
+ /* @__PURE__ */ jsxs32(AppShell.Section, { grow: true, component: ScrollArea4, p: 5, children: [
7578
+ /* @__PURE__ */ jsx55(RenderNavLinks, { items: menu }),
7579
+ /* @__PURE__ */ jsx55(Divider3, {}),
7580
+ /* @__PURE__ */ jsx55(F_authenticate_Logout, {})
7535
7581
  ] }),
7536
- /* @__PURE__ */ jsxs31(AppShell.Section, { p: "md", children: [
7537
- /* @__PURE__ */ jsx54(Divider3, {}),
7538
- /* @__PURE__ */ jsx54(
7582
+ /* @__PURE__ */ jsxs32(AppShell.Section, { p: "md", children: [
7583
+ /* @__PURE__ */ jsx55(Divider3, {}),
7584
+ /* @__PURE__ */ jsx55(
7539
7585
  Image3,
7540
7586
  {
7541
7587
  fit: "contain",
@@ -7549,7 +7595,7 @@ function BasicAppShell({ children, menu, extraTopRight, title }) {
7549
7595
  )
7550
7596
  ] })
7551
7597
  ] }),
7552
- /* @__PURE__ */ jsx54(
7598
+ /* @__PURE__ */ jsx55(
7553
7599
  AppShell.Main,
7554
7600
  {
7555
7601
  bg: "light-dark(var(--mantine-color-gray-1), var(--mantine-color-dark-8))",
@@ -7604,10 +7650,10 @@ function utils_layout_getItemsWithoutLinks(menu) {
7604
7650
 
7605
7651
  // src/components/Layouts/Container/MyContainer.tsx
7606
7652
  import { Container, Flex as Flex5 } from "@mantine/core";
7607
- import { jsx as jsx55 } from "react/jsx-runtime";
7653
+ import { jsx as jsx56 } from "react/jsx-runtime";
7608
7654
  function MyContainer(_a) {
7609
7655
  var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
7610
- return /* @__PURE__ */ jsx55(Container, __spreadProps(__spreadValues({ fluid: true }, rest), { children: /* @__PURE__ */ jsx55(Flex5, { direction: "column", children }) }));
7656
+ return /* @__PURE__ */ jsx56(Container, __spreadProps(__spreadValues({ fluid: true }, rest), { children: /* @__PURE__ */ jsx56(Flex5, { direction: "column", children }) }));
7611
7657
  }
7612
7658
 
7613
7659
  // src/components/Layouts/HeaderMegaMenu/HeaderMegaMenu.tsx
@@ -7627,7 +7673,7 @@ import {
7627
7673
  UnstyledButton,
7628
7674
  useMantineTheme
7629
7675
  } from "@mantine/core";
7630
- import { useDisclosure as useDisclosure11 } from "@mantine/hooks";
7676
+ import { useDisclosure as useDisclosure12 } from "@mantine/hooks";
7631
7677
  import {
7632
7678
  IconBook,
7633
7679
  IconChartPie3,
@@ -7653,7 +7699,7 @@ function useHeaderMegaMenuStore() {
7653
7699
  }
7654
7700
 
7655
7701
  // src/components/Layouts/HeaderMegaMenu/HeaderMegaMenu.tsx
7656
- import { jsx as jsx56, jsxs as jsxs32 } from "react/jsx-runtime";
7702
+ import { jsx as jsx57, jsxs as jsxs33 } from "react/jsx-runtime";
7657
7703
  var mockdata = [
7658
7704
  {
7659
7705
  icon: IconCode,
@@ -7687,31 +7733,31 @@ var mockdata = [
7687
7733
  }
7688
7734
  ];
7689
7735
  function HeaderMegaMenu({ children, menus }) {
7690
- const [drawerOpened, { toggle: toggleDrawer, close: closeDrawer }] = useDisclosure11(false);
7691
- const [linksOpened, { toggle: toggleLinks }] = useDisclosure11(false);
7736
+ const [drawerOpened, { toggle: toggleDrawer, close: closeDrawer }] = useDisclosure12(false);
7737
+ const [linksOpened, { toggle: toggleLinks }] = useDisclosure12(false);
7692
7738
  const HeaderMegaMenuStore = useHeaderMegaMenuStore();
7693
7739
  const theme = useMantineTheme();
7694
- const links = mockdata.map((item) => /* @__PURE__ */ jsx56(UnstyledButton, { className: css_default.subLink, children: /* @__PURE__ */ jsxs32(Group19, { wrap: "nowrap", align: "flex-start", children: [
7695
- /* @__PURE__ */ jsx56(ThemeIcon, { size: 34, variant: "default", radius: "md", children: /* @__PURE__ */ jsx56(item.icon, { size: 22, color: theme.colors.blue[6] }) }),
7696
- /* @__PURE__ */ jsxs32("div", { children: [
7697
- /* @__PURE__ */ jsx56(Text17, { size: "sm", fw: 500, children: item.title }),
7698
- /* @__PURE__ */ jsx56(Text17, { size: "xs", c: "dimmed", children: item.description })
7740
+ const links = mockdata.map((item) => /* @__PURE__ */ jsx57(UnstyledButton, { className: css_default.subLink, children: /* @__PURE__ */ jsxs33(Group19, { wrap: "nowrap", align: "flex-start", children: [
7741
+ /* @__PURE__ */ jsx57(ThemeIcon, { size: 34, variant: "default", radius: "md", children: /* @__PURE__ */ jsx57(item.icon, { size: 22, color: theme.colors.blue[6] }) }),
7742
+ /* @__PURE__ */ jsxs33("div", { children: [
7743
+ /* @__PURE__ */ jsx57(Text17, { size: "sm", fw: 500, children: item.title }),
7744
+ /* @__PURE__ */ jsx57(Text17, { size: "xs", c: "dimmed", children: item.description })
7699
7745
  ] })
7700
7746
  ] }) }, item.title));
7701
- return /* @__PURE__ */ jsxs32(Box4, { children: [
7702
- /* @__PURE__ */ jsx56("header", { className: css_default.header, children: /* @__PURE__ */ jsxs32(Group19, { justify: "space-between", h: "100%", children: [
7703
- /* @__PURE__ */ jsxs32(Group19, { children: [
7704
- /* @__PURE__ */ jsx56(Image4, { src: "/imgs/0/IMG0LogoAQTech.png", h: 30, alt: "", w: "auto" }),
7705
- /* @__PURE__ */ jsx56(Group19, { h: "100%", gap: 5, visibleFrom: "sm", children: menus == null ? void 0 : menus.map((item, idx) => /* @__PURE__ */ jsx56(Button16, { component: Link4, href: item.href, variant: HeaderMegaMenuStore.state.name == item.label ? "light" : "subtle", onClick: () => HeaderMegaMenuStore.setState({ name: item.label }), children: item.label }, idx)) })
7747
+ return /* @__PURE__ */ jsxs33(Box4, { children: [
7748
+ /* @__PURE__ */ jsx57("header", { className: css_default.header, children: /* @__PURE__ */ jsxs33(Group19, { justify: "space-between", h: "100%", children: [
7749
+ /* @__PURE__ */ jsxs33(Group19, { children: [
7750
+ /* @__PURE__ */ jsx57(Image4, { src: "/imgs/0/IMG0LogoAQTech.png", h: 30, alt: "", w: "auto" }),
7751
+ /* @__PURE__ */ jsx57(Group19, { h: "100%", gap: 5, visibleFrom: "sm", children: menus == null ? void 0 : menus.map((item, idx) => /* @__PURE__ */ jsx57(Button16, { component: Link4, href: item.href, variant: HeaderMegaMenuStore.state.name == item.label ? "light" : "subtle", onClick: () => HeaderMegaMenuStore.setState({ name: item.label }), children: item.label }, idx)) })
7706
7752
  ] }),
7707
- /* @__PURE__ */ jsxs32(Group19, { children: [
7708
- /* @__PURE__ */ jsx56(TextInput3, { placeholder: "T\xECm ki\u1EBFm", leftSection: /* @__PURE__ */ jsx56(IconSearch2, {}), radius: "xl", w: "250px" }),
7709
- /* @__PURE__ */ jsx56(MySwitchTheme, {})
7753
+ /* @__PURE__ */ jsxs33(Group19, { children: [
7754
+ /* @__PURE__ */ jsx57(TextInput3, { placeholder: "T\xECm ki\u1EBFm", leftSection: /* @__PURE__ */ jsx57(IconSearch2, {}), radius: "xl", w: "250px" }),
7755
+ /* @__PURE__ */ jsx57(MySwitchTheme, {})
7710
7756
  ] }),
7711
- /* @__PURE__ */ jsx56(Burger, { opened: drawerOpened, onClick: toggleDrawer, hiddenFrom: "sm" })
7757
+ /* @__PURE__ */ jsx57(Burger, { opened: drawerOpened, onClick: toggleDrawer, hiddenFrom: "sm" })
7712
7758
  ] }) }),
7713
- /* @__PURE__ */ jsx56(Container2, { fluid: true, pt: "sm", pb: "md", bg: object_colors.mantineBackgroundSecondary, mih: "93vh", children }),
7714
- /* @__PURE__ */ jsx56(
7759
+ /* @__PURE__ */ jsx57(Container2, { fluid: true, pt: "sm", pb: "md", bg: object_colors.mantineBackgroundSecondary, mih: "93vh", children }),
7760
+ /* @__PURE__ */ jsx57(
7715
7761
  Drawer,
7716
7762
  {
7717
7763
  opened: drawerOpened,
@@ -7721,10 +7767,10 @@ function HeaderMegaMenu({ children, menus }) {
7721
7767
  title: "Navigation",
7722
7768
  hiddenFrom: "sm",
7723
7769
  zIndex: 1e6,
7724
- children: /* @__PURE__ */ jsxs32(ScrollArea5, { h: "calc(100vh - 80px", mx: "-md", children: [
7725
- /* @__PURE__ */ jsx56(Divider4, { my: "sm" }),
7726
- /* @__PURE__ */ jsx56(MyFlexColumn, { h: "100%", gap: 0, children: menus == null ? void 0 : menus.map((item, idx) => /* @__PURE__ */ jsx56(Button16, { component: Link4, href: item.href, variant: HeaderMegaMenuStore.state.name == item.label ? "light" : "subtle", onClick: () => HeaderMegaMenuStore.setState({ name: item.label }), children: item.label }, idx)) }),
7727
- /* @__PURE__ */ jsx56(Divider4, { my: "sm" })
7770
+ children: /* @__PURE__ */ jsxs33(ScrollArea5, { h: "calc(100vh - 80px", mx: "-md", children: [
7771
+ /* @__PURE__ */ jsx57(Divider4, { my: "sm" }),
7772
+ /* @__PURE__ */ jsx57(MyFlexColumn, { h: "100%", gap: 0, children: menus == null ? void 0 : menus.map((item, idx) => /* @__PURE__ */ jsx57(Button16, { component: Link4, href: item.href, variant: HeaderMegaMenuStore.state.name == item.label ? "light" : "subtle", onClick: () => HeaderMegaMenuStore.setState({ name: item.label }), children: item.label }, idx)) }),
7773
+ /* @__PURE__ */ jsx57(Divider4, { my: "sm" })
7728
7774
  ] })
7729
7775
  }
7730
7776
  )
@@ -7733,7 +7779,7 @@ function HeaderMegaMenu({ children, menus }) {
7733
7779
 
7734
7780
  // src/components/Layouts/PageContent/MyPageContent.tsx
7735
7781
  import { Badge as Badge5, Breadcrumbs, Code, Container as Container3, Divider as Divider5, Group as Group20, Text as Text18, Title } from "@mantine/core";
7736
- import { jsx as jsx57, jsxs as jsxs33 } from "react/jsx-runtime";
7782
+ import { jsx as jsx58, jsxs as jsxs34 } from "react/jsx-runtime";
7737
7783
  var getStatusColor = (status) => {
7738
7784
  switch (status) {
7739
7785
  case "Prototype":
@@ -7744,10 +7790,10 @@ var getStatusColor = (status) => {
7744
7790
  };
7745
7791
  function PageTitle({ title, status, note }) {
7746
7792
  const color = getStatusColor(status);
7747
- return /* @__PURE__ */ jsx57(Group20, { children: /* @__PURE__ */ jsxs33(MyFlexColumn, { gap: 0, children: [
7748
- /* @__PURE__ */ jsxs33(Group20, { align: "center", children: [
7749
- /* @__PURE__ */ jsx57(Title, { order: 3, children: title }),
7750
- status && /* @__PURE__ */ jsx57(
7793
+ return /* @__PURE__ */ jsx58(Group20, { children: /* @__PURE__ */ jsxs34(MyFlexColumn, { gap: 0, children: [
7794
+ /* @__PURE__ */ jsxs34(Group20, { align: "center", children: [
7795
+ /* @__PURE__ */ jsx58(Title, { order: 3, children: title }),
7796
+ status && /* @__PURE__ */ jsx58(
7751
7797
  Badge5,
7752
7798
  {
7753
7799
  variant: "gradient",
@@ -7758,7 +7804,7 @@ function PageTitle({ title, status, note }) {
7758
7804
  }
7759
7805
  )
7760
7806
  ] }),
7761
- /* @__PURE__ */ jsx57(Text18, { size: "lg", c: "dimmed", fs: "italic", children: note })
7807
+ /* @__PURE__ */ jsx58(Text18, { size: "lg", c: "dimmed", fs: "italic", children: note })
7762
7808
  ] }) });
7763
7809
  }
7764
7810
  function MyPageContent({
@@ -7771,11 +7817,11 @@ function MyPageContent({
7771
7817
  var _a;
7772
7818
  const basicAppShellStore = useS_BasicAppShell();
7773
7819
  const finalTitle = title || basicAppShellStore.state.title;
7774
- return /* @__PURE__ */ jsxs33(Container3, { p: 0, fluid: true, children: [
7775
- /* @__PURE__ */ jsxs33(Group20, { justify: "space-between", children: [
7776
- /* @__PURE__ */ jsxs33(Group20, { children: [
7777
- /* @__PURE__ */ jsx57(MyButtonRouterBack, {}),
7778
- /* @__PURE__ */ jsx57(
7820
+ return /* @__PURE__ */ jsxs34(Container3, { p: 0, fluid: true, children: [
7821
+ /* @__PURE__ */ jsxs34(Group20, { justify: "space-between", children: [
7822
+ /* @__PURE__ */ jsxs34(Group20, { children: [
7823
+ /* @__PURE__ */ jsx58(MyButtonRouterBack, {}),
7824
+ /* @__PURE__ */ jsx58(
7779
7825
  PageTitle,
7780
7826
  {
7781
7827
  title: finalTitle,
@@ -7785,64 +7831,64 @@ function MyPageContent({
7785
7831
  ),
7786
7832
  leftTopBar
7787
7833
  ] }),
7788
- /* @__PURE__ */ jsxs33(Group20, { p: "md", children: [
7834
+ /* @__PURE__ */ jsxs34(Group20, { p: "md", children: [
7789
7835
  rightTopBar,
7790
- /* @__PURE__ */ jsx57(Breadcrumbs, { separatorMargin: "7", children: (_a = basicAppShellStore.state.breadcrumb) == null ? void 0 : _a.map((item, idx) => /* @__PURE__ */ jsx57(Text18, { fw: "600", c: "blue", children: item }, idx)) })
7836
+ /* @__PURE__ */ jsx58(Breadcrumbs, { separatorMargin: "7", children: (_a = basicAppShellStore.state.breadcrumb) == null ? void 0 : _a.map((item, idx) => /* @__PURE__ */ jsx58(Text18, { fw: "600", c: "blue", children: item }, idx)) })
7791
7837
  ] })
7792
7838
  ] }),
7793
- /* @__PURE__ */ jsx57(Divider5, { my: "xs" }),
7839
+ /* @__PURE__ */ jsx58(Divider5, { my: "xs" }),
7794
7840
  children,
7795
- /* @__PURE__ */ jsx57(Divider5, { my: "xs" }),
7796
- /* @__PURE__ */ jsx57(MyFlexEnd, { children: /* @__PURE__ */ jsx57(Code, { color: "var(--mantine-color-blue-light)", children: basicAppShellStore.state.menuCode }) })
7841
+ /* @__PURE__ */ jsx58(Divider5, { my: "xs" }),
7842
+ /* @__PURE__ */ jsx58(MyFlexEnd, { children: /* @__PURE__ */ jsx58(Code, { color: "var(--mantine-color-blue-light)", children: basicAppShellStore.state.menuCode }) })
7797
7843
  ] });
7798
7844
  }
7799
7845
 
7800
7846
  // src/components/Layouts/Tab/MyTab.tsx
7801
7847
  import { rem, Space as Space3, Tabs } from "@mantine/core";
7802
- import { jsx as jsx58, jsxs as jsxs34 } from "react/jsx-runtime";
7848
+ import { jsx as jsx59, jsxs as jsxs35 } from "react/jsx-runtime";
7803
7849
  function MyTab(_a) {
7804
7850
  var _b = _a, { tabList, children } = _b, rest = __objRest(_b, ["tabList", "children"]);
7805
7851
  const iconStyle = { width: rem(20), height: rem(20) };
7806
- return /* @__PURE__ */ jsxs34(Tabs, __spreadProps(__spreadValues({ defaultValue: tabList[0].label }, rest), { children: [
7807
- /* @__PURE__ */ jsx58(Tabs.List, { children: tabList.map((item, idx) => {
7808
- return /* @__PURE__ */ jsx58(Tabs.Tab, { value: item.label, leftSection: item.icon && /* @__PURE__ */ jsx58(item.icon, { style: iconStyle }), children: item.label }, idx);
7852
+ return /* @__PURE__ */ jsxs35(Tabs, __spreadProps(__spreadValues({ defaultValue: tabList[0].label }, rest), { children: [
7853
+ /* @__PURE__ */ jsx59(Tabs.List, { children: tabList.map((item, idx) => {
7854
+ return /* @__PURE__ */ jsx59(Tabs.Tab, { value: item.label, leftSection: item.icon && /* @__PURE__ */ jsx59(item.icon, { style: iconStyle }), children: item.label }, idx);
7809
7855
  }) }),
7810
- /* @__PURE__ */ jsx58(Space3, { my: "md" }),
7856
+ /* @__PURE__ */ jsx59(Space3, { my: "md" }),
7811
7857
  children
7812
7858
  ] }));
7813
7859
  }
7814
7860
 
7815
7861
  // src/components/RESTAPIComponents/DataTableSelect/MyDataTableSelect.tsx
7816
7862
  import { ActionIcon as ActionIcon12, Button as Button17, Fieldset as Fieldset5, Group as Group21, Modal as Modal11 } from "@mantine/core";
7817
- import { useDisclosure as useDisclosure12 } from "@mantine/hooks";
7863
+ import { useDisclosure as useDisclosure13 } from "@mantine/hooks";
7818
7864
  import { IconX as IconX2 } from "@tabler/icons-react";
7819
- import { jsx as jsx59, jsxs as jsxs35 } from "react/jsx-runtime";
7865
+ import { jsx as jsx60, jsxs as jsxs36 } from "react/jsx-runtime";
7820
7866
  function MyDataTableSelect(_a) {
7821
7867
  var _b = _a, { modalSize, renderTopToolbarCustomActions, data, selectButtonlabel, listState, columns, listLabel } = _b, rest = __objRest(_b, ["modalSize", "renderTopToolbarCustomActions", "data", "selectButtonlabel", "listState", "columns", "listLabel"]);
7822
- const disc = useDisclosure12(false);
7868
+ const disc = useDisclosure13(false);
7823
7869
  if (data == void 0) return "\u0110ang t\u1EA3i...";
7824
- return /* @__PURE__ */ jsxs35(Fieldset5, { legend: listLabel ? listLabel : "Danh s\xE1ch", children: [
7825
- /* @__PURE__ */ jsx59(
7870
+ return /* @__PURE__ */ jsxs36(Fieldset5, { legend: listLabel ? listLabel : "Danh s\xE1ch", children: [
7871
+ /* @__PURE__ */ jsx60(
7826
7872
  MyDataTable,
7827
7873
  __spreadValues({
7828
7874
  renderTopToolbarCustomActions: ({ table }) => {
7829
- return /* @__PURE__ */ jsxs35(Group21, { children: [
7875
+ return /* @__PURE__ */ jsxs36(Group21, { children: [
7830
7876
  renderTopToolbarCustomActions && renderTopToolbarCustomActions({ table }),
7831
- /* @__PURE__ */ jsx59(Button17, { onClick: disc[1].open, children: selectButtonlabel || "Ch\u1ECDn t\u1EEB danh s\xE1ch" })
7877
+ /* @__PURE__ */ jsx60(Button17, { onClick: disc[1].open, children: selectButtonlabel || "Ch\u1ECDn t\u1EEB danh s\xE1ch" })
7832
7878
  ] });
7833
7879
  },
7834
7880
  columns,
7835
7881
  data: listState[0],
7836
7882
  renderRowActions: ({ row }) => {
7837
- return /* @__PURE__ */ jsx59(MyCenterFull, { children: /* @__PURE__ */ jsx59(ActionIcon12, { color: "red", onClick: () => listState[1].remove(row.index), children: /* @__PURE__ */ jsx59(IconX2, {}) }) });
7883
+ return /* @__PURE__ */ jsx60(MyCenterFull, { children: /* @__PURE__ */ jsx60(ActionIcon12, { color: "red", onClick: () => listState[1].remove(row.index), children: /* @__PURE__ */ jsx60(IconX2, {}) }) });
7838
7884
  }
7839
7885
  }, rest)
7840
7886
  ),
7841
- /* @__PURE__ */ jsx59(Modal11, { opened: disc[0], onClose: disc[1].close, size: modalSize || "80%", children: /* @__PURE__ */ jsx59(
7887
+ /* @__PURE__ */ jsx60(Modal11, { opened: disc[0], onClose: disc[1].close, size: modalSize || "80%", children: /* @__PURE__ */ jsx60(
7842
7888
  MyDataTable,
7843
7889
  __spreadValues({
7844
7890
  renderTopToolbarCustomActions: ({ table }) => {
7845
- return /* @__PURE__ */ jsx59(Button17, { onClick: () => {
7891
+ return /* @__PURE__ */ jsx60(Button17, { onClick: () => {
7846
7892
  table.getSelectedRowModel().rows.map((item) => listState[1].append(item.original));
7847
7893
  disc[1].close();
7848
7894
  }, children: "Ch\u1ECDn" });
@@ -7858,7 +7904,7 @@ function MyDataTableSelect(_a) {
7858
7904
  // src/components/RESTAPIComponents/SelectAPIGet/MySelectAPIGet.tsx
7859
7905
  import { Select as Select3 } from "@mantine/core";
7860
7906
  import { useQuery as useQuery2 } from "@tanstack/react-query";
7861
- import { jsx as jsx60 } from "react/jsx-runtime";
7907
+ import { jsx as jsx61 } from "react/jsx-runtime";
7862
7908
  function MySelectAPIGet(_a) {
7863
7909
  var _b = _a, { apiGet, label = "", dataMapper } = _b, rest = __objRest(_b, ["apiGet", "label", "dataMapper"]);
7864
7910
  var _a2;
@@ -7877,7 +7923,7 @@ function MySelectAPIGet(_a) {
7877
7923
  label: `${item.code}-${item.name}`
7878
7924
  };
7879
7925
  });
7880
- return /* @__PURE__ */ jsx60(
7926
+ return /* @__PURE__ */ jsx61(
7881
7927
  Select3,
7882
7928
  __spreadValues({
7883
7929
  label,
@@ -7892,7 +7938,7 @@ import { useNextCalendarApp as useNextCalendarApp2, ScheduleXCalendar as Schedul
7892
7938
  import { createEventsServicePlugin as createEventsServicePlugin2 } from "@schedule-x/events-service";
7893
7939
  import { useState as useState12 } from "react";
7894
7940
  import { createEventModalPlugin as createEventModalPlugin2 } from "@schedule-x/event-modal";
7895
- import { jsx as jsx61 } from "react/jsx-runtime";
7941
+ import { jsx as jsx62 } from "react/jsx-runtime";
7896
7942
  function MyScheduleX({
7897
7943
  values,
7898
7944
  timeGridEvent,
@@ -7917,7 +7963,7 @@ function MyScheduleX({
7917
7963
  events: values,
7918
7964
  plugins: [eventsService, eventModalPlugin]
7919
7965
  });
7920
- return /* @__PURE__ */ jsx61(
7966
+ return /* @__PURE__ */ jsx62(
7921
7967
  ScheduleXCalendar2,
7922
7968
  {
7923
7969
  calendarApp: calendar,
@@ -7931,9 +7977,9 @@ function MyScheduleX({
7931
7977
 
7932
7978
  // src/components/Skeletons/SkeletonTable/MySkeletonTable.tsx
7933
7979
  import { Skeleton } from "@mantine/core";
7934
- import { jsx as jsx62 } from "react/jsx-runtime";
7980
+ import { jsx as jsx63 } from "react/jsx-runtime";
7935
7981
  function MySkeletonTable({ h: h4 = 500 }) {
7936
- return /* @__PURE__ */ jsx62(Skeleton, { h: h4 });
7982
+ return /* @__PURE__ */ jsx63(Skeleton, { h: h4 });
7937
7983
  }
7938
7984
 
7939
7985
  export {
@@ -7959,6 +8005,7 @@ export {
7959
8005
  AQButtonCreateByImportFile,
7960
8006
  AQButtonExportData,
7961
8007
  MyButtonCreate,
8008
+ MyButtonCreateUpdate,
7962
8009
  MyButtonDeleteList,
7963
8010
  MySelect,
7964
8011
  MyFlexEnd,