aq-fe-framework 0.1.48 → 0.1.50

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.
@@ -1593,19 +1593,159 @@ function MyButtonPrintPDF(_a) {
1593
1593
  ] });
1594
1594
  }
1595
1595
 
1596
+ // src/components/Layouts/HtmlWrapper/MyHtmlWrapper.tsx
1597
+ import { ScrollArea, TypographyStylesProvider } from "@mantine/core";
1598
+ import pako from "pako";
1599
+ import { jsx as jsx30 } from "react/jsx-runtime";
1600
+ function MyHtmlWrapper(_a) {
1601
+ var _b = _a, { html, mah, zip = false } = _b, rest = __objRest(_b, ["html", "mah", "zip"]);
1602
+ const extractHtmlFromZip = () => {
1603
+ const binaryString = Buffer.from(html, "base64");
1604
+ const decompressedData = pako.inflate(binaryString, { to: "string" });
1605
+ const cleanedHtml = decompressedData == null ? void 0 : decompressedData.replaceAll(" font-family:'Times New Roman'; font-size:1em;", "");
1606
+ return cleanedHtml.replaceAll(" font-family:'Times New Roman'; font-size:1em;", "");
1607
+ };
1608
+ return /* @__PURE__ */ jsx30(ScrollArea.Autosize, { mah, children: /* @__PURE__ */ jsx30(TypographyStylesProvider, __spreadProps(__spreadValues({}, rest), { children: /* @__PURE__ */ jsx30(
1609
+ "div",
1610
+ {
1611
+ dangerouslySetInnerHTML: {
1612
+ __html: zip ? extractHtmlFromZip() : html
1613
+ }
1614
+ }
1615
+ ) })) });
1616
+ }
1617
+
1618
+ // src/components/Buttons/ButtonPrintPDFTable/MyButtonPrintTablePDF.tsx
1619
+ import { Box, Table as Table2 } from "@mantine/core";
1620
+ import { jsx as jsx31, jsxs as jsxs19 } from "react/jsx-runtime";
1621
+ function MyButtonPrintTablePDF({
1622
+ printConfig,
1623
+ data
1624
+ }) {
1625
+ console.log(printConfig);
1626
+ const formatDate = (date) => {
1627
+ const day = String(date.getDate()).padStart(2, "0");
1628
+ const month = String(date.getMonth() + 1).padStart(2, "0");
1629
+ const year = date.getFullYear();
1630
+ return `${day}/${month}/${year}`;
1631
+ };
1632
+ const formatValue = (value) => {
1633
+ if (value === void 0 || value === null) {
1634
+ return "";
1635
+ }
1636
+ if (value instanceof Date) {
1637
+ return formatDate(value);
1638
+ }
1639
+ return String(value);
1640
+ };
1641
+ const rows = data == null ? void 0 : data.map((item, index) => {
1642
+ if (!(printConfig == null ? void 0 : printConfig.fields)) return null;
1643
+ return /* @__PURE__ */ jsxs19(Table2.Tr, { children: [
1644
+ printConfig.showRowNumbers && /* @__PURE__ */ jsx31(Table2.Td, { ta: "center", px: "xs", style: { border: "1px solid lightgray" }, children: index + 1 }),
1645
+ printConfig.fields.map((field) => {
1646
+ let value = item[field.fieldName];
1647
+ if (field.formatFunction) {
1648
+ value = field.formatFunction(value, item);
1649
+ } else {
1650
+ value = formatValue(value);
1651
+ }
1652
+ const alignment = field.isCenter === false ? "left" : "center";
1653
+ if (typeof value === "string" && (value.includes("<") || value.includes("&lt;"))) {
1654
+ return /* @__PURE__ */ jsx31(
1655
+ Table2.Td,
1656
+ {
1657
+ px: "xs",
1658
+ ta: alignment,
1659
+ style: { border: "1px solid lightgray" },
1660
+ children: /* @__PURE__ */ jsx31(MyHtmlWrapper, { html: value })
1661
+ },
1662
+ field.fieldName
1663
+ );
1664
+ }
1665
+ if (value === "true") {
1666
+ return /* @__PURE__ */ jsx31(
1667
+ Table2.Td,
1668
+ {
1669
+ ta: alignment,
1670
+ px: "xs",
1671
+ style: { border: "1px solid lightgray" },
1672
+ children: /* @__PURE__ */ jsx31("input", { type: "checkbox", checked: true, readOnly: true })
1673
+ },
1674
+ field.fieldName
1675
+ );
1676
+ }
1677
+ return /* @__PURE__ */ jsx31(
1678
+ Table2.Td,
1679
+ {
1680
+ ta: alignment,
1681
+ px: "xs",
1682
+ style: { border: "1px solid lightgray" },
1683
+ children: value
1684
+ },
1685
+ field.fieldName
1686
+ );
1687
+ })
1688
+ ] }, index);
1689
+ });
1690
+ const renderContent = () => {
1691
+ if (!data || !(printConfig == null ? void 0 : printConfig.fields)) return null;
1692
+ const today = /* @__PURE__ */ new Date();
1693
+ const formattedDate = today.toLocaleDateString("vi-VN", {
1694
+ year: "numeric",
1695
+ month: "long",
1696
+ day: "numeric",
1697
+ hour: "2-digit",
1698
+ minute: "2-digit"
1699
+ });
1700
+ const tableTitle = (printConfig == null ? void 0 : printConfig.title) || "B\u1EA3ng d\u1EEF li\u1EC7u";
1701
+ return /* @__PURE__ */ jsxs19(Box, { p: "lg", children: [
1702
+ /* @__PURE__ */ jsxs19("div", { style: { textAlign: "center", marginTop: "10px", fontStyle: "italic", color: "#666" }, children: [
1703
+ "Ng\xE0y in: ",
1704
+ formattedDate
1705
+ ] }),
1706
+ /* @__PURE__ */ jsx31("h2", { style: { textAlign: "center", fontSize: "24px", fontWeight: "bold", marginBottom: "20px" }, children: tableTitle }),
1707
+ /* @__PURE__ */ jsxs19(Table2, { withColumnBorders: true, highlightOnHover: true, style: { border: "1px solid lightgray" }, children: [
1708
+ /* @__PURE__ */ jsx31(Table2.Thead, { children: /* @__PURE__ */ jsxs19(Table2.Tr, { children: [
1709
+ printConfig.showRowNumbers && /* @__PURE__ */ jsx31(Table2.Th, { style: { border: "1px solid lightgray" }, w: "10%", ta: "center", px: "xs", children: "STT" }),
1710
+ printConfig.fields.map((field) => {
1711
+ const alignment = field.isCenter === false ? "left" : "center";
1712
+ return /* @__PURE__ */ jsx31(
1713
+ Table2.Th,
1714
+ {
1715
+ style: { border: "1px solid lightgray" },
1716
+ ta: alignment,
1717
+ px: "xs",
1718
+ children: field.header
1719
+ },
1720
+ field.fieldName
1721
+ );
1722
+ })
1723
+ ] }) }),
1724
+ /* @__PURE__ */ jsx31(Table2.Tbody, { children: rows })
1725
+ ] })
1726
+ ] });
1727
+ };
1728
+ return /* @__PURE__ */ jsx31(
1729
+ MyButtonPrintPDF,
1730
+ {
1731
+ contentToPrint: renderContent()
1732
+ }
1733
+ );
1734
+ }
1735
+
1596
1736
  // src/components/Buttons/ButtonRouterBack/MyButtonRouterBack.tsx
1597
1737
  import { Button as Button11 } from "@mantine/core";
1598
1738
  import { IconArrowBack } from "@tabler/icons-react";
1599
1739
  import { useRouter as useRouter2 } from "next/navigation";
1600
- import { jsx as jsx30 } from "react/jsx-runtime";
1740
+ import { jsx as jsx32 } from "react/jsx-runtime";
1601
1741
  function MyButtonRouterBack(_a) {
1602
1742
  var _b = _a, { url, label } = _b, rest = __objRest(_b, ["url", "label"]);
1603
1743
  const router = useRouter2();
1604
- return /* @__PURE__ */ jsx30(
1744
+ return /* @__PURE__ */ jsx32(
1605
1745
  Button11,
1606
1746
  __spreadProps(__spreadValues({
1607
1747
  variant: "light",
1608
- leftSection: /* @__PURE__ */ jsx30(IconArrowBack, { stroke: 2 }),
1748
+ leftSection: /* @__PURE__ */ jsx32(IconArrowBack, { stroke: 2 }),
1609
1749
  onClick: () => {
1610
1750
  if (url) {
1611
1751
  router.replace(url);
@@ -1649,7 +1789,7 @@ import { useDisclosure as useDisclosure9 } from "@mantine/hooks";
1649
1789
  import { IconLivePhoto as IconLivePhoto2, IconMaximize as IconMaximize3, IconMinimize as IconMinimize3 } from "@tabler/icons-react";
1650
1790
  import { useQuery } from "@tanstack/react-query";
1651
1791
  import { useState as useState6 } from "react";
1652
- import { Fragment as Fragment10, jsx as jsx31, jsxs as jsxs19 } from "react/jsx-runtime";
1792
+ import { Fragment as Fragment10, jsx as jsx33, jsxs as jsxs20 } from "react/jsx-runtime";
1653
1793
  function MyButtonViewPDF({ id, modalSize = "80%", label = "Xem file", src = "https://datafiles.chinhphu.vn/cpp/files/vbpq/2016/07/85.signed.pdf" }) {
1654
1794
  var _a, _b;
1655
1795
  const disc = useDisclosure9(false);
@@ -1662,49 +1802,49 @@ function MyButtonViewPDF({ id, modalSize = "80%", label = "Xem file", src = "htt
1662
1802
  },
1663
1803
  enabled: id != void 0 && disc[0] == true
1664
1804
  });
1665
- return /* @__PURE__ */ jsxs19(Fragment10, { children: [
1666
- /* @__PURE__ */ jsx31(Tooltip4, { label: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp", children: /* @__PURE__ */ jsx31(Button12, { color: "cyan", onClick: () => {
1805
+ return /* @__PURE__ */ jsxs20(Fragment10, { children: [
1806
+ /* @__PURE__ */ jsx33(Tooltip4, { label: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp", children: /* @__PURE__ */ jsx33(Button12, { color: "cyan", onClick: () => {
1667
1807
  disc[1].open();
1668
- }, leftSection: /* @__PURE__ */ jsx31(IconLivePhoto2, {}), children: label }) }),
1669
- /* @__PURE__ */ jsx31(
1808
+ }, leftSection: /* @__PURE__ */ jsx33(IconLivePhoto2, {}), children: label }) }),
1809
+ /* @__PURE__ */ jsx33(
1670
1810
  Modal10,
1671
1811
  {
1672
1812
  fullScreen: fullScreen[0],
1673
1813
  opened: disc[0],
1674
1814
  onClose: disc[1].close,
1675
1815
  size: modalSize,
1676
- title: /* @__PURE__ */ jsxs19(Group7, { children: [
1677
- /* @__PURE__ */ jsx31(Text5, { children: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp" }),
1678
- fullScreen[0] ? /* @__PURE__ */ jsx31(
1816
+ title: /* @__PURE__ */ jsxs20(Group7, { children: [
1817
+ /* @__PURE__ */ jsx33(Text5, { children: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp" }),
1818
+ fullScreen[0] ? /* @__PURE__ */ jsx33(
1679
1819
  ActionIcon9,
1680
1820
  {
1681
1821
  onClick: () => {
1682
1822
  fullScreen[1](false);
1683
1823
  hSize[1]("80vh");
1684
1824
  },
1685
- children: /* @__PURE__ */ jsx31(IconMinimize3, {})
1825
+ children: /* @__PURE__ */ jsx33(IconMinimize3, {})
1686
1826
  }
1687
- ) : /* @__PURE__ */ jsx31(
1827
+ ) : /* @__PURE__ */ jsx33(
1688
1828
  ActionIcon9,
1689
1829
  {
1690
1830
  onClick: () => {
1691
1831
  fullScreen[1](true);
1692
1832
  hSize[1]("90vh");
1693
1833
  },
1694
- children: /* @__PURE__ */ jsx31(IconMaximize3, {})
1834
+ children: /* @__PURE__ */ jsx33(IconMaximize3, {})
1695
1835
  }
1696
1836
  )
1697
1837
  ] }),
1698
- children: /* @__PURE__ */ jsxs19(Paper3, { h: hSize[0], p: "lg", pos: "relative", children: [
1699
- /* @__PURE__ */ jsx31(LoadingOverlay, { visible: query.isLoading, zIndex: 1e3, overlayProps: { radius: "sm", blur: 2 } }),
1700
- query.data ? /* @__PURE__ */ jsx31(
1838
+ children: /* @__PURE__ */ jsxs20(Paper3, { h: hSize[0], p: "lg", pos: "relative", children: [
1839
+ /* @__PURE__ */ jsx33(LoadingOverlay, { visible: query.isLoading, zIndex: 1e3, overlayProps: { radius: "sm", blur: 2 } }),
1840
+ query.data ? /* @__PURE__ */ jsx33(
1701
1841
  "iframe",
1702
1842
  {
1703
1843
  src: `data:application/pdf;base64, ${(_b = (_a = query.data) == null ? void 0 : _a.fileDetail) == null ? void 0 : _b.fileBase64String}`,
1704
1844
  width: "100%",
1705
1845
  height: "100%"
1706
1846
  }
1707
- ) : /* @__PURE__ */ jsx31(
1847
+ ) : /* @__PURE__ */ jsx33(
1708
1848
  "iframe",
1709
1849
  {
1710
1850
  src,
@@ -5657,7 +5797,7 @@ import { ScheduleXCalendar, useNextCalendarApp } from "@schedule-x/react";
5657
5797
  import { Paper as Paper4, Text as Text6 } from "@mantine/core";
5658
5798
  import "@schedule-x/theme-default/dist/index.css";
5659
5799
  import { useEffect as useEffect4 } from "react";
5660
- import { jsx as jsx32, jsxs as jsxs20 } from "react/jsx-runtime";
5800
+ import { jsx as jsx34, jsxs as jsxs21 } from "react/jsx-runtime";
5661
5801
  function MyCalendar() {
5662
5802
  const plugins = [createEventsServicePlugin(), createEventModalPlugin()];
5663
5803
  const calendar = useNextCalendarApp({
@@ -5731,16 +5871,16 @@ function MyCalendar() {
5731
5871
  useEffect4(() => {
5732
5872
  calendar == null ? void 0 : calendar.events.getAll();
5733
5873
  }, []);
5734
- return /* @__PURE__ */ jsx32("div", { children: /* @__PURE__ */ jsx32(ScheduleXCalendar, { calendarApp: calendar, customComponents: {
5874
+ return /* @__PURE__ */ jsx34("div", { children: /* @__PURE__ */ jsx34(ScheduleXCalendar, { calendarApp: calendar, customComponents: {
5735
5875
  timeGridEvent: ({ calendarEvent }) => {
5736
5876
  console.log(calendarEvent);
5737
- return /* @__PURE__ */ jsx32(Paper4, { h: "100%", bg: calendarEvent.laLichThi ? "violet.2" : "blue.2", p: 4, children: /* @__PURE__ */ jsxs20(MyFlexColumn, { gap: 1, children: [
5738
- /* @__PURE__ */ jsxs20(Text6, { size: "sm", fw: "bold", children: [
5877
+ return /* @__PURE__ */ jsx34(Paper4, { h: "100%", bg: calendarEvent.laLichThi ? "violet.2" : "blue.2", p: 4, children: /* @__PURE__ */ jsxs21(MyFlexColumn, { gap: 1, children: [
5878
+ /* @__PURE__ */ jsxs21(Text6, { size: "sm", fw: "bold", children: [
5739
5879
  calendarEvent.laLichThi ? "(Thi) " : "(H\u1ECDc) ",
5740
5880
  calendarEvent.title
5741
5881
  ] }),
5742
- calendarEvent.laLichThi == false && /* @__PURE__ */ jsx32(Text6, { size: "sm", children: calendarEvent.giangvien }),
5743
- /* @__PURE__ */ jsx32(Text6, { size: "sm", children: calendarEvent.location })
5882
+ calendarEvent.laLichThi == false && /* @__PURE__ */ jsx34(Text6, { size: "sm", children: calendarEvent.giangvien }),
5883
+ /* @__PURE__ */ jsx34(Text6, { size: "sm", children: calendarEvent.location })
5744
5884
  ] }) });
5745
5885
  }
5746
5886
  // eventModal: ({ calendarEvent }) => {
@@ -5755,31 +5895,31 @@ function MyCalendar() {
5755
5895
 
5756
5896
  // src/components/CenterFull/MyCenterFull.tsx
5757
5897
  import { Center as Center2, Group as Group8 } from "@mantine/core";
5758
- import { jsx as jsx33 } from "react/jsx-runtime";
5898
+ import { jsx as jsx35 } from "react/jsx-runtime";
5759
5899
  function MyCenterFull({ children }) {
5760
- return /* @__PURE__ */ jsx33(Center2, { w: "100%", children: /* @__PURE__ */ jsx33(Group8, { children }) });
5900
+ return /* @__PURE__ */ jsx35(Center2, { w: "100%", children: /* @__PURE__ */ jsx35(Group8, { children }) });
5761
5901
  }
5762
5902
 
5763
5903
  // src/components/Checkbox/MyCheckbox.tsx
5764
5904
  import { Checkbox as Checkbox2 } from "@mantine/core";
5765
- import { jsx as jsx34 } from "react/jsx-runtime";
5905
+ import { jsx as jsx36 } from "react/jsx-runtime";
5766
5906
  function MyCheckbox(_a) {
5767
5907
  var rest = __objRest(_a, []);
5768
- return /* @__PURE__ */ jsx34(Checkbox2, __spreadValues({}, rest));
5908
+ return /* @__PURE__ */ jsx36(Checkbox2, __spreadValues({}, rest));
5769
5909
  }
5770
5910
 
5771
5911
  // src/components/Layouts/FlexRow/MyFlexRow.tsx
5772
5912
  import { Flex as Flex2 } from "@mantine/core";
5773
- import { jsx as jsx35 } from "react/jsx-runtime";
5913
+ import { jsx as jsx37 } from "react/jsx-runtime";
5774
5914
  function MyFlexRow(_a) {
5775
5915
  var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
5776
- return /* @__PURE__ */ jsx35(Flex2, __spreadProps(__spreadValues({ gap: "md", align: "center" }, rest), { children }));
5916
+ return /* @__PURE__ */ jsx37(Flex2, __spreadProps(__spreadValues({ gap: "md", align: "center" }, rest), { children }));
5777
5917
  }
5778
5918
 
5779
5919
  // src/components/DataDisplay/Card/AQCard.tsx
5780
5920
  import { Badge, Card, Center as Center3, Image, Text as Text7 } from "@mantine/core";
5781
5921
  import Link from "next/link";
5782
- import { jsx as jsx36, jsxs as jsxs21 } from "react/jsx-runtime";
5922
+ import { jsx as jsx38, jsxs as jsxs22 } from "react/jsx-runtime";
5783
5923
  function AQCard({
5784
5924
  imgSrc = "https://raw.githubusercontent.com/mantinedev/mantine/master/.demo/images/bg-8.png",
5785
5925
  title,
@@ -5789,8 +5929,8 @@ function AQCard({
5789
5929
  status,
5790
5930
  href = ""
5791
5931
  }) {
5792
- return /* @__PURE__ */ jsxs21(Card, { shadow: "sm", padding: "lg", radius: "md", withBorder: true, component: Link, href, children: [
5793
- /* @__PURE__ */ jsx36(Card.Section, { children: /* @__PURE__ */ jsx36(Center3, { children: /* @__PURE__ */ jsx36(
5932
+ return /* @__PURE__ */ jsxs22(Card, { shadow: "sm", padding: "lg", radius: "md", withBorder: true, component: Link, href, children: [
5933
+ /* @__PURE__ */ jsx38(Card.Section, { children: /* @__PURE__ */ jsx38(Center3, { children: /* @__PURE__ */ jsx38(
5794
5934
  Image,
5795
5935
  {
5796
5936
  src: imgSrc,
@@ -5800,51 +5940,51 @@ function AQCard({
5800
5940
  alt: "Norway"
5801
5941
  }
5802
5942
  ) }) }),
5803
- /* @__PURE__ */ jsxs21(MyFlexRow, { justify: "space-between", mt: "md", mb: "xs", children: [
5804
- /* @__PURE__ */ jsx36(Text7, { fw: 500, children: title }),
5805
- status && /* @__PURE__ */ jsx36(Badge, { color: "violet.5", w: "150px", children: status })
5943
+ /* @__PURE__ */ jsxs22(MyFlexRow, { justify: "space-between", mt: "md", mb: "xs", children: [
5944
+ /* @__PURE__ */ jsx38(Text7, { fw: 500, children: title }),
5945
+ status && /* @__PURE__ */ jsx38(Badge, { color: "violet.5", w: "150px", children: status })
5806
5946
  ] }),
5807
- /* @__PURE__ */ jsx36(Text7, { size: "sm", c: "dimmed", lineClamp: 2, children: description }),
5947
+ /* @__PURE__ */ jsx38(Text7, { size: "sm", c: "dimmed", lineClamp: 2, children: description }),
5808
5948
  children
5809
5949
  ] });
5810
5950
  }
5811
5951
 
5812
5952
  // src/components/DataDisplay/KeyLabel/MyKeyLabel.tsx
5813
5953
  import { Group as Group9, Text as Text8 } from "@mantine/core";
5814
- import { jsx as jsx37, jsxs as jsxs22 } from "react/jsx-runtime";
5954
+ import { jsx as jsx39, jsxs as jsxs23 } from "react/jsx-runtime";
5815
5955
  function MyKeyLabel({ keyLabel, label }) {
5816
- return /* @__PURE__ */ jsxs22(Group9, { gap: 5, children: [
5817
- /* @__PURE__ */ jsxs22(Text8, { fw: "bold", children: [
5956
+ return /* @__PURE__ */ jsxs23(Group9, { gap: 5, children: [
5957
+ /* @__PURE__ */ jsxs23(Text8, { fw: "bold", children: [
5818
5958
  keyLabel,
5819
5959
  ":"
5820
5960
  ] }),
5821
- /* @__PURE__ */ jsx37(Text8, { children: label })
5961
+ /* @__PURE__ */ jsx39(Text8, { children: label })
5822
5962
  ] });
5823
5963
  }
5824
5964
 
5825
5965
  // src/components/DataDisplay/NumberFormatter/MyNumberFormatter.tsx
5826
5966
  import { NumberFormatter } from "@mantine/core";
5827
- import { jsx as jsx38 } from "react/jsx-runtime";
5967
+ import { jsx as jsx40 } from "react/jsx-runtime";
5828
5968
  function MyNumberFormatter(_a) {
5829
5969
  var rest = __objRest(_a, []);
5830
- return /* @__PURE__ */ jsx38(NumberFormatter, __spreadValues({ thousandSeparator: true, suffix: " VN\u0110" }, rest));
5970
+ return /* @__PURE__ */ jsx40(NumberFormatter, __spreadValues({ thousandSeparator: true, suffix: " VN\u0110" }, rest));
5831
5971
  }
5832
5972
 
5833
5973
  // src/components/DataDisplay/StatCard/AQStatCard1.tsx
5834
- import { Box, Button as Button13, Flex as Flex3, Group as Group10, Paper as Paper5, Text as Text9 } from "@mantine/core";
5974
+ import { Box as Box2, Button as Button13, Flex as Flex3, Group as Group10, Paper as Paper5, Text as Text9 } from "@mantine/core";
5835
5975
  import { IconArrowDownRight, IconArrowUpRight } from "@tabler/icons-react";
5836
- import { Fragment as Fragment11, jsx as jsx39, jsxs as jsxs23 } from "react/jsx-runtime";
5976
+ import { Fragment as Fragment11, jsx as jsx41, jsxs as jsxs24 } from "react/jsx-runtime";
5837
5977
  function AQStatCard1({ title, value, unit = "", description, icons, diff }) {
5838
- return /* @__PURE__ */ jsx39(Fragment11, { children: /* @__PURE__ */ jsxs23(
5978
+ return /* @__PURE__ */ jsx41(Fragment11, { children: /* @__PURE__ */ jsxs24(
5839
5979
  Paper5,
5840
5980
  {
5841
5981
  withBorder: true,
5842
5982
  p: "md",
5843
5983
  radius: "md",
5844
5984
  children: [
5845
- /* @__PURE__ */ jsxs23(Group10, { justify: "space-between", children: [
5846
- /* @__PURE__ */ jsxs23(Flex3, { direction: "column", children: [
5847
- /* @__PURE__ */ jsx39(
5985
+ /* @__PURE__ */ jsxs24(Group10, { justify: "space-between", children: [
5986
+ /* @__PURE__ */ jsxs24(Flex3, { direction: "column", children: [
5987
+ /* @__PURE__ */ jsx41(
5848
5988
  Text9,
5849
5989
  {
5850
5990
  tt: "uppercase",
@@ -5853,24 +5993,24 @@ function AQStatCard1({ title, value, unit = "", description, icons, diff }) {
5853
5993
  children: title
5854
5994
  }
5855
5995
  ),
5856
- unit == "" ? /* @__PURE__ */ jsxs23(Text9, { size: "xs", style: { visibility: "hidden" }, children: [
5996
+ unit == "" ? /* @__PURE__ */ jsxs24(Text9, { size: "xs", style: { visibility: "hidden" }, children: [
5857
5997
  "\u0110\u01A1n v\u1ECB: ",
5858
- /* @__PURE__ */ jsx39("strong", { children: unit })
5859
- ] }) : /* @__PURE__ */ jsxs23(Text9, { size: "xs", children: [
5998
+ /* @__PURE__ */ jsx41("strong", { children: unit })
5999
+ ] }) : /* @__PURE__ */ jsxs24(Text9, { size: "xs", children: [
5860
6000
  "\u0110\u01A1n v\u1ECB: ",
5861
- /* @__PURE__ */ jsx39("strong", { children: unit })
6001
+ /* @__PURE__ */ jsx41("strong", { children: unit })
5862
6002
  ] })
5863
6003
  ] }),
5864
- /* @__PURE__ */ jsx39(Box, { children: icons })
6004
+ /* @__PURE__ */ jsx41(Box2, { children: icons })
5865
6005
  ] }),
5866
- /* @__PURE__ */ jsxs23(
6006
+ /* @__PURE__ */ jsxs24(
5867
6007
  Group10,
5868
6008
  {
5869
6009
  mt: "5",
5870
6010
  align: "flex-end",
5871
6011
  gap: "xs",
5872
6012
  children: [
5873
- /* @__PURE__ */ jsx39(
6013
+ /* @__PURE__ */ jsx41(
5874
6014
  Text9,
5875
6015
  {
5876
6016
  fw: 700,
@@ -5878,7 +6018,7 @@ function AQStatCard1({ title, value, unit = "", description, icons, diff }) {
5878
6018
  children: value
5879
6019
  }
5880
6020
  ),
5881
- /* @__PURE__ */ jsxs23(
6021
+ /* @__PURE__ */ jsxs24(
5882
6022
  Text9,
5883
6023
  {
5884
6024
  mb: "2",
@@ -5886,20 +6026,20 @@ function AQStatCard1({ title, value, unit = "", description, icons, diff }) {
5886
6026
  fz: "h2",
5887
6027
  fw: 500,
5888
6028
  children: [
5889
- /* @__PURE__ */ jsxs23("span", { children: [
6029
+ /* @__PURE__ */ jsxs24("span", { children: [
5890
6030
  diff,
5891
6031
  "%"
5892
6032
  ] }),
5893
- diff > 0 ? /* @__PURE__ */ jsx39(IconArrowUpRight, {}) : /* @__PURE__ */ jsx39(IconArrowDownRight, {})
6033
+ diff > 0 ? /* @__PURE__ */ jsx41(IconArrowUpRight, {}) : /* @__PURE__ */ jsx41(IconArrowDownRight, {})
5894
6034
  ]
5895
6035
  }
5896
6036
  )
5897
6037
  ]
5898
6038
  }
5899
6039
  ),
5900
- /* @__PURE__ */ jsxs23(Group10, { justify: "space-between", children: [
5901
- /* @__PURE__ */ jsx39(Text9, { tt: "uppercase", fz: "xs", c: "dimmed", children: description }),
5902
- /* @__PURE__ */ jsx39(
6040
+ /* @__PURE__ */ jsxs24(Group10, { justify: "space-between", children: [
6041
+ /* @__PURE__ */ jsx41(Text9, { tt: "uppercase", fz: "xs", c: "dimmed", children: description }),
6042
+ /* @__PURE__ */ jsx41(
5903
6043
  Button13,
5904
6044
  {
5905
6045
  variant: "light",
@@ -5916,15 +6056,15 @@ function AQStatCard1({ title, value, unit = "", description, icons, diff }) {
5916
6056
 
5917
6057
  // src/components/Inputs/DateInput/MyDateInput.tsx
5918
6058
  import { DateInput } from "@mantine/dates";
5919
- import { jsx as jsx40 } from "react/jsx-runtime";
6059
+ import { jsx as jsx42 } from "react/jsx-runtime";
5920
6060
  function MyDateInput(_a) {
5921
6061
  var _b = _a, { label } = _b, rest = __objRest(_b, ["label"]);
5922
- return /* @__PURE__ */ jsx40(DateInput, __spreadValues({ label, placeholder: label ? `Ch\u1ECDn ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
6062
+ return /* @__PURE__ */ jsx42(DateInput, __spreadValues({ label, placeholder: label ? `Ch\u1ECDn ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
5923
6063
  }
5924
6064
 
5925
6065
  // src/components/Inputs/Fieldset/MyFieldset.tsx
5926
- import { Box as Box2, Fieldset as Fieldset4, Text as Text10 } from "@mantine/core";
5927
- import { jsx as jsx41 } from "react/jsx-runtime";
6066
+ import { Box as Box3, Fieldset as Fieldset4, Text as Text10 } from "@mantine/core";
6067
+ import { jsx as jsx43 } from "react/jsx-runtime";
5928
6068
  function MyFieldset(_a) {
5929
6069
  var _b = _a, {
5930
6070
  children,
@@ -5933,17 +6073,17 @@ function MyFieldset(_a) {
5933
6073
  "children",
5934
6074
  "title"
5935
6075
  ]);
5936
- return /* @__PURE__ */ jsx41(
6076
+ return /* @__PURE__ */ jsx43(
5937
6077
  Fieldset4,
5938
6078
  __spreadProps(__spreadValues({}, rest), {
5939
- legend: /* @__PURE__ */ jsx41(
5940
- Box2,
6079
+ legend: /* @__PURE__ */ jsx43(
6080
+ Box3,
5941
6081
  {
5942
6082
  bg: "blue.4",
5943
6083
  px: "xs",
5944
6084
  py: 2,
5945
6085
  style: { borderRadius: 4 },
5946
- children: /* @__PURE__ */ jsx41(Text10, { c: "white", fw: 500, children: title })
6086
+ children: /* @__PURE__ */ jsx43(Text10, { c: "white", fw: 500, children: title })
5947
6087
  }
5948
6088
  ),
5949
6089
  children
@@ -5953,30 +6093,30 @@ function MyFieldset(_a) {
5953
6093
 
5954
6094
  // src/components/Inputs/FileInput/MyFileInput.tsx
5955
6095
  import { FileInput as FileInput3 } from "@mantine/core";
5956
- import { jsx as jsx42 } from "react/jsx-runtime";
6096
+ import { jsx as jsx44 } from "react/jsx-runtime";
5957
6097
  function MyFileInput(_a) {
5958
6098
  var _b = _a, { label } = _b, rest = __objRest(_b, ["label"]);
5959
- return /* @__PURE__ */ jsx42(FileInput3, __spreadValues({ label, placeholder: label ? `Ch\u1ECDn ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
6099
+ return /* @__PURE__ */ jsx44(FileInput3, __spreadValues({ label, placeholder: label ? `Ch\u1ECDn ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
5960
6100
  }
5961
6101
 
5962
6102
  // src/components/Inputs/NumberInput/MyNumberInput.tsx
5963
6103
  import { NumberInput as NumberInput2 } from "@mantine/core";
5964
- import { jsx as jsx43 } from "react/jsx-runtime";
6104
+ import { jsx as jsx45 } from "react/jsx-runtime";
5965
6105
  function MyNumberInput(_a) {
5966
6106
  var _b = _a, { label } = _b, rest = __objRest(_b, ["label"]);
5967
- return /* @__PURE__ */ jsx43(NumberInput2, __spreadValues({ label, placeholder: label ? `Nh\u1EADp ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
6107
+ return /* @__PURE__ */ jsx45(NumberInput2, __spreadValues({ label, placeholder: label ? `Nh\u1EADp ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
5968
6108
  }
5969
6109
 
5970
6110
  // src/components/Inputs/TextArea/MyTextArea.tsx
5971
6111
  import { Textarea } from "@mantine/core";
5972
- import { jsx as jsx44 } from "react/jsx-runtime";
6112
+ import { jsx as jsx46 } from "react/jsx-runtime";
5973
6113
  function MyTextArea(_a) {
5974
6114
  var _b = _a, { label } = _b, rest = __objRest(_b, ["label"]);
5975
- return /* @__PURE__ */ jsx44(Textarea, __spreadValues({ label, placeholder: label ? `Nh\u1EADp ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
6115
+ return /* @__PURE__ */ jsx46(Textarea, __spreadValues({ label, placeholder: label ? `Nh\u1EADp ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
5976
6116
  }
5977
6117
 
5978
6118
  // src/components/Inputs/TextEditor/MyTextEditor.tsx
5979
- import { Input, ScrollArea } from "@mantine/core";
6119
+ import { Input, ScrollArea as ScrollArea2 } from "@mantine/core";
5980
6120
  import { Link as Link2, RichTextEditor } from "@mantine/tiptap";
5981
6121
  import FileHandler from "@tiptap-pro/extension-file-handler";
5982
6122
  import Highlight2 from "@tiptap/extension-highlight";
@@ -5988,7 +6128,7 @@ import Underline from "@tiptap/extension-underline";
5988
6128
  import { useEditor } from "@tiptap/react";
5989
6129
  import StarterKit from "@tiptap/starter-kit";
5990
6130
  import { useEffect as useEffect5, useState as useState7 } from "react";
5991
- import { jsx as jsx45, jsxs as jsxs24 } from "react/jsx-runtime";
6131
+ import { jsx as jsx47, jsxs as jsxs25 } from "react/jsx-runtime";
5992
6132
  function MyTextEditor(_a) {
5993
6133
  var _b = _a, {
5994
6134
  autoHiddenToolBar = false,
@@ -6090,44 +6230,44 @@ function MyTextEditor(_a) {
6090
6230
  editor.commands.setContent(value);
6091
6231
  }
6092
6232
  }, [value, editor]);
6093
- return /* @__PURE__ */ jsx45(Input.Wrapper, { label, flex: 1, error, withAsterisk, children: /* @__PURE__ */ jsxs24(RichTextEditor, { editor, style: { border: error && "1px solid #e03131" }, children: [
6094
- /* @__PURE__ */ jsxs24(RichTextEditor.Toolbar, { hidden: hiddenToolBar, sticky: true, stickyOffset: 60, children: [
6095
- /* @__PURE__ */ jsxs24(RichTextEditor.ControlsGroup, { children: [
6096
- /* @__PURE__ */ jsx45(RichTextEditor.Bold, {}),
6097
- /* @__PURE__ */ jsx45(RichTextEditor.Italic, {}),
6098
- /* @__PURE__ */ jsx45(RichTextEditor.Underline, {}),
6099
- /* @__PURE__ */ jsx45(RichTextEditor.Strikethrough, {}),
6100
- /* @__PURE__ */ jsx45(RichTextEditor.ClearFormatting, {}),
6101
- /* @__PURE__ */ jsx45(RichTextEditor.Highlight, {}),
6102
- /* @__PURE__ */ jsx45(RichTextEditor.Code, {})
6233
+ return /* @__PURE__ */ jsx47(Input.Wrapper, { label, flex: 1, error, withAsterisk, children: /* @__PURE__ */ jsxs25(RichTextEditor, { editor, style: { border: error && "1px solid #e03131" }, children: [
6234
+ /* @__PURE__ */ jsxs25(RichTextEditor.Toolbar, { hidden: hiddenToolBar, sticky: true, stickyOffset: 60, children: [
6235
+ /* @__PURE__ */ jsxs25(RichTextEditor.ControlsGroup, { children: [
6236
+ /* @__PURE__ */ jsx47(RichTextEditor.Bold, {}),
6237
+ /* @__PURE__ */ jsx47(RichTextEditor.Italic, {}),
6238
+ /* @__PURE__ */ jsx47(RichTextEditor.Underline, {}),
6239
+ /* @__PURE__ */ jsx47(RichTextEditor.Strikethrough, {}),
6240
+ /* @__PURE__ */ jsx47(RichTextEditor.ClearFormatting, {}),
6241
+ /* @__PURE__ */ jsx47(RichTextEditor.Highlight, {}),
6242
+ /* @__PURE__ */ jsx47(RichTextEditor.Code, {})
6103
6243
  ] }),
6104
- /* @__PURE__ */ jsxs24(RichTextEditor.ControlsGroup, { children: [
6105
- /* @__PURE__ */ jsx45(RichTextEditor.H1, {}),
6106
- /* @__PURE__ */ jsx45(RichTextEditor.H2, {}),
6107
- /* @__PURE__ */ jsx45(RichTextEditor.H3, {}),
6108
- /* @__PURE__ */ jsx45(RichTextEditor.H4, {})
6244
+ /* @__PURE__ */ jsxs25(RichTextEditor.ControlsGroup, { children: [
6245
+ /* @__PURE__ */ jsx47(RichTextEditor.H1, {}),
6246
+ /* @__PURE__ */ jsx47(RichTextEditor.H2, {}),
6247
+ /* @__PURE__ */ jsx47(RichTextEditor.H3, {}),
6248
+ /* @__PURE__ */ jsx47(RichTextEditor.H4, {})
6109
6249
  ] }),
6110
- /* @__PURE__ */ jsxs24(RichTextEditor.ControlsGroup, { children: [
6111
- /* @__PURE__ */ jsx45(RichTextEditor.Blockquote, {}),
6112
- /* @__PURE__ */ jsx45(RichTextEditor.Hr, {}),
6113
- /* @__PURE__ */ jsx45(RichTextEditor.BulletList, {}),
6114
- /* @__PURE__ */ jsx45(RichTextEditor.OrderedList, {}),
6115
- /* @__PURE__ */ jsx45(RichTextEditor.Subscript, {}),
6116
- /* @__PURE__ */ jsx45(RichTextEditor.Superscript, {})
6250
+ /* @__PURE__ */ jsxs25(RichTextEditor.ControlsGroup, { children: [
6251
+ /* @__PURE__ */ jsx47(RichTextEditor.Blockquote, {}),
6252
+ /* @__PURE__ */ jsx47(RichTextEditor.Hr, {}),
6253
+ /* @__PURE__ */ jsx47(RichTextEditor.BulletList, {}),
6254
+ /* @__PURE__ */ jsx47(RichTextEditor.OrderedList, {}),
6255
+ /* @__PURE__ */ jsx47(RichTextEditor.Subscript, {}),
6256
+ /* @__PURE__ */ jsx47(RichTextEditor.Superscript, {})
6117
6257
  ] }),
6118
- /* @__PURE__ */ jsxs24(RichTextEditor.ControlsGroup, { children: [
6119
- /* @__PURE__ */ jsx45(RichTextEditor.Link, {}),
6120
- /* @__PURE__ */ jsx45(RichTextEditor.Unlink, {})
6258
+ /* @__PURE__ */ jsxs25(RichTextEditor.ControlsGroup, { children: [
6259
+ /* @__PURE__ */ jsx47(RichTextEditor.Link, {}),
6260
+ /* @__PURE__ */ jsx47(RichTextEditor.Unlink, {})
6121
6261
  ] }),
6122
- /* @__PURE__ */ jsxs24(RichTextEditor.ControlsGroup, { children: [
6123
- /* @__PURE__ */ jsx45(RichTextEditor.AlignLeft, {}),
6124
- /* @__PURE__ */ jsx45(RichTextEditor.AlignCenter, {}),
6125
- /* @__PURE__ */ jsx45(RichTextEditor.AlignJustify, {}),
6126
- /* @__PURE__ */ jsx45(RichTextEditor.AlignRight, {})
6262
+ /* @__PURE__ */ jsxs25(RichTextEditor.ControlsGroup, { children: [
6263
+ /* @__PURE__ */ jsx47(RichTextEditor.AlignLeft, {}),
6264
+ /* @__PURE__ */ jsx47(RichTextEditor.AlignCenter, {}),
6265
+ /* @__PURE__ */ jsx47(RichTextEditor.AlignJustify, {}),
6266
+ /* @__PURE__ */ jsx47(RichTextEditor.AlignRight, {})
6127
6267
  ] })
6128
6268
  ] }),
6129
- /* @__PURE__ */ jsx45(
6130
- ScrollArea.Autosize,
6269
+ /* @__PURE__ */ jsx47(
6270
+ ScrollArea2.Autosize,
6131
6271
  {
6132
6272
  onMouseDown: () => {
6133
6273
  editor == null ? void 0 : editor.commands.focus();
@@ -6141,7 +6281,7 @@ function MyTextEditor(_a) {
6141
6281
  setHiddenToolBar(false);
6142
6282
  },
6143
6283
  style: { cursor: "text", maxHeight: "400px" },
6144
- children: /* @__PURE__ */ jsx45(RichTextEditor.Content, { mih: contentHeight })
6284
+ children: /* @__PURE__ */ jsx47(RichTextEditor.Content, { mih: contentHeight })
6145
6285
  }
6146
6286
  )
6147
6287
  ] }) });
@@ -6151,14 +6291,14 @@ function MyTextEditor(_a) {
6151
6291
  import { Button as Button14 } from "@mantine/core";
6152
6292
  import { IconLogout } from "@tabler/icons-react";
6153
6293
  import { useRouter as useRouter3 } from "next/navigation";
6154
- import { jsx as jsx46 } from "react/jsx-runtime";
6294
+ import { jsx as jsx48 } from "react/jsx-runtime";
6155
6295
  function F0Logout() {
6156
6296
  const router = useRouter3();
6157
6297
  const S_Authenticate = useS_Authenticate();
6158
- return /* @__PURE__ */ jsx46(Button14, { onClick: () => {
6298
+ return /* @__PURE__ */ jsx48(Button14, { onClick: () => {
6159
6299
  S_Authenticate.setProperty("token", "");
6160
6300
  router.replace("/auth/login");
6161
- }, leftSection: /* @__PURE__ */ jsx46(IconLogout, {}), fullWidth: true, justify: "start", variant: "subtle", children: "\u0110\u0103ng xu\u1EA5t" });
6301
+ }, leftSection: /* @__PURE__ */ jsx48(IconLogout, {}), fullWidth: true, justify: "start", variant: "subtle", children: "\u0110\u0103ng xu\u1EA5t" });
6162
6302
  }
6163
6303
 
6164
6304
  // src/components/Layouts/BasicAppShell/BasicAppShell.tsx
@@ -6170,7 +6310,7 @@ import {
6170
6310
  Group as Group11,
6171
6311
  Image as Image3,
6172
6312
  NavLink,
6173
- ScrollArea as ScrollArea2,
6313
+ ScrollArea as ScrollArea3,
6174
6314
  Select as Select3,
6175
6315
  Text as Text11,
6176
6316
  TextInput as TextInput2,
@@ -6181,18 +6321,18 @@ import { spotlight as spotlight2 } from "@mantine/spotlight";
6181
6321
  import { IconLayoutSidebarLeftCollapse, IconLayoutSidebarLeftExpand, IconLibraryMinus, IconSearch as IconSearch2 } from "@tabler/icons-react";
6182
6322
  import Link3 from "next/link";
6183
6323
  import { usePathname as usePathname2 } from "next/navigation";
6184
- import { Fragment as Fragment12, jsx as jsx47, jsxs as jsxs25 } from "react/jsx-runtime";
6324
+ import { Fragment as Fragment12, jsx as jsx49, jsxs as jsxs26 } from "react/jsx-runtime";
6185
6325
  function getRightSection(status) {
6186
- if (status === "Prototype") return /* @__PURE__ */ jsx47(Badge2, { styles: { root: { cursor: "pointer" } }, radius: "xs", color: "pink", circle: true, children: "P" });
6187
- if (status === "New") return /* @__PURE__ */ jsx47(Badge2, { styles: { root: { cursor: "pointer" } }, radius: "xs", circle: true, children: "N" });
6188
- if (status === "Menu") return /* @__PURE__ */ jsx47(Badge2, { styles: { root: { cursor: "pointer" } }, radius: "xs", color: "gray", circle: true, children: "M" });
6189
- if (status === "Change") return /* @__PURE__ */ jsx47(Badge2, { styles: { root: { cursor: "pointer" } }, radius: "xs", color: "green", circle: true, children: "C" });
6326
+ if (status === "Prototype") return /* @__PURE__ */ jsx49(Badge2, { styles: { root: { cursor: "pointer" } }, radius: "xs", color: "pink", circle: true, children: "P" });
6327
+ if (status === "New") return /* @__PURE__ */ jsx49(Badge2, { styles: { root: { cursor: "pointer" } }, radius: "xs", circle: true, children: "N" });
6328
+ if (status === "Menu") return /* @__PURE__ */ jsx49(Badge2, { styles: { root: { cursor: "pointer" } }, radius: "xs", color: "gray", circle: true, children: "M" });
6329
+ if (status === "Change") return /* @__PURE__ */ jsx49(Badge2, { styles: { root: { cursor: "pointer" } }, radius: "xs", color: "green", circle: true, children: "C" });
6190
6330
  return null;
6191
6331
  }
6192
6332
  function RenderNavLinks({ items }) {
6193
6333
  const sidebarStore = useS_Sidebar();
6194
6334
  const pathName = usePathname2();
6195
- return /* @__PURE__ */ jsx47(Fragment12, { children: items.map((item, index) => /* @__PURE__ */ jsx47(
6335
+ return /* @__PURE__ */ jsx49(Fragment12, { children: items.map((item, index) => /* @__PURE__ */ jsx49(
6196
6336
  NavLink,
6197
6337
  {
6198
6338
  active: item.link === pathName.split("/")[2],
@@ -6209,7 +6349,7 @@ function RenderNavLinks({ items }) {
6209
6349
  sidebarStore.setProperty("title", item.label);
6210
6350
  }
6211
6351
  },
6212
- children: item.links && /* @__PURE__ */ jsx47(RenderNavLinks, { items: item.links })
6352
+ children: item.links && /* @__PURE__ */ jsx49(RenderNavLinks, { items: item.links })
6213
6353
  },
6214
6354
  index
6215
6355
  )) });
@@ -6266,7 +6406,7 @@ function BasicAppShell({ children, menu }) {
6266
6406
  const sidebarStore = useS_Sidebar();
6267
6407
  const media = useMediaQuery("(min-width: 72em)");
6268
6408
  const selectMedia = useMediaQuery("(min-width: 80em)");
6269
- return /* @__PURE__ */ jsxs25(
6409
+ return /* @__PURE__ */ jsxs26(
6270
6410
  AppShell,
6271
6411
  {
6272
6412
  header: { height: 60 },
@@ -6277,17 +6417,17 @@ function BasicAppShell({ children, menu }) {
6277
6417
  },
6278
6418
  padding: "md",
6279
6419
  children: [
6280
- /* @__PURE__ */ jsxs25(AppShell.Header, { children: [
6281
- /* @__PURE__ */ jsx47(MyAppSpotlight, { menu }),
6282
- media ? /* @__PURE__ */ jsxs25(Group11, { h: "100%", px: "md", justify: "space-between", align: "center", children: [
6283
- /* @__PURE__ */ jsxs25(Group11, { h: "100%", children: [
6284
- /* @__PURE__ */ jsx47(Tooltip5, { label: sidebarStore.state.opened ? "\u1EA8n thanh menu" : "Hi\u1EC7n thanh menu", children: /* @__PURE__ */ jsx47(ActionIcon10, { size: "lg", radius: "md", variant: "default", onClick: sidebarStore.toggle, children: sidebarStore.state.opened ? /* @__PURE__ */ jsx47(IconLayoutSidebarLeftExpand, {}) : /* @__PURE__ */ jsx47(IconLayoutSidebarLeftCollapse, {}) }) }),
6285
- /* @__PURE__ */ jsx47(Tooltip5, { label: "\u0110\xF3ng t\u1EA5t c\u1EA3 menu", children: /* @__PURE__ */ jsx47(ActionIcon10, { size: "lg", radius: "md", variant: "default", onClick: () => sidebarStore.clearGroupMenuOpenId(), children: /* @__PURE__ */ jsx47(IconLibraryMinus, {}) }) })
6420
+ /* @__PURE__ */ jsxs26(AppShell.Header, { children: [
6421
+ /* @__PURE__ */ jsx49(MyAppSpotlight, { menu }),
6422
+ media ? /* @__PURE__ */ jsxs26(Group11, { h: "100%", px: "md", justify: "space-between", align: "center", children: [
6423
+ /* @__PURE__ */ jsxs26(Group11, { h: "100%", children: [
6424
+ /* @__PURE__ */ jsx49(Tooltip5, { label: sidebarStore.state.opened ? "\u1EA8n thanh menu" : "Hi\u1EC7n thanh menu", children: /* @__PURE__ */ jsx49(ActionIcon10, { size: "lg", radius: "md", variant: "default", onClick: sidebarStore.toggle, children: sidebarStore.state.opened ? /* @__PURE__ */ jsx49(IconLayoutSidebarLeftExpand, {}) : /* @__PURE__ */ jsx49(IconLayoutSidebarLeftCollapse, {}) }) }),
6425
+ /* @__PURE__ */ jsx49(Tooltip5, { label: "\u0110\xF3ng t\u1EA5t c\u1EA3 menu", children: /* @__PURE__ */ jsx49(ActionIcon10, { size: "lg", radius: "md", variant: "default", onClick: () => sidebarStore.clearGroupMenuOpenId(), children: /* @__PURE__ */ jsx49(IconLibraryMinus, {}) }) })
6286
6426
  ] }),
6287
- /* @__PURE__ */ jsx47(Group11, { style: { position: "absolute", left: "50%", transform: "translateX(-50%)" }, children: /* @__PURE__ */ jsx47(Text11, { c: "green", fw: "bold", children: "AQ EduCourseEvaluation - Ph\u1EA7n m\u1EC1m \u0111\xE1nh gi\xE1 chu\u1EA9n \u0111\u1EA7u ra" }) }),
6288
- /* @__PURE__ */ jsxs25(Group11, { children: [
6289
- /* @__PURE__ */ jsx47(Text11, { children: "H\u1ECDc k\u1EF3 l\xE0m vi\u1EC7c" }),
6290
- /* @__PURE__ */ jsx47(
6427
+ /* @__PURE__ */ jsx49(Group11, { style: { position: "absolute", left: "50%", transform: "translateX(-50%)" }, children: /* @__PURE__ */ jsx49(Text11, { c: "green", fw: "bold", children: "AQ EduCourseEvaluation - Ph\u1EA7n m\u1EC1m \u0111\xE1nh gi\xE1 chu\u1EA9n \u0111\u1EA7u ra" }) }),
6428
+ /* @__PURE__ */ jsxs26(Group11, { children: [
6429
+ /* @__PURE__ */ jsx49(Text11, { children: "H\u1ECDc k\u1EF3 l\xE0m vi\u1EC7c" }),
6430
+ /* @__PURE__ */ jsx49(
6291
6431
  Select3,
6292
6432
  {
6293
6433
  w: selectMedia ? 245 : 150,
@@ -6299,15 +6439,15 @@ function BasicAppShell({ children, menu }) {
6299
6439
  ]
6300
6440
  }
6301
6441
  ),
6302
- /* @__PURE__ */ jsx47(MySwitchTheme, {})
6442
+ /* @__PURE__ */ jsx49(MySwitchTheme, {})
6303
6443
  ] })
6304
6444
  ] }) : (
6305
6445
  // For mobile screens - simplified layout
6306
- /* @__PURE__ */ jsxs25(Group11, { h: "100%", px: "md", justify: "space-between", children: [
6307
- /* @__PURE__ */ jsx47(ActionIcon10, { size: "lg", radius: "md", variant: "default", onClick: sidebarStore.toggle, children: sidebarStore.state.opened ? /* @__PURE__ */ jsx47(IconLayoutSidebarLeftExpand, {}) : /* @__PURE__ */ jsx47(IconLayoutSidebarLeftCollapse, {}) }),
6308
- /* @__PURE__ */ jsx47(Text11, { c: "green", fw: "bold", size: "sm", children: "AQ EduCourseEvaluation" }),
6309
- /* @__PURE__ */ jsxs25(Group11, { children: [
6310
- /* @__PURE__ */ jsx47(
6446
+ /* @__PURE__ */ jsxs26(Group11, { h: "100%", px: "md", justify: "space-between", children: [
6447
+ /* @__PURE__ */ jsx49(ActionIcon10, { size: "lg", radius: "md", variant: "default", onClick: sidebarStore.toggle, children: sidebarStore.state.opened ? /* @__PURE__ */ jsx49(IconLayoutSidebarLeftExpand, {}) : /* @__PURE__ */ jsx49(IconLayoutSidebarLeftCollapse, {}) }),
6448
+ /* @__PURE__ */ jsx49(Text11, { c: "green", fw: "bold", size: "sm", children: "AQ EduCourseEvaluation" }),
6449
+ /* @__PURE__ */ jsxs26(Group11, { children: [
6450
+ /* @__PURE__ */ jsx49(
6311
6451
  Select3,
6312
6452
  {
6313
6453
  w: 100,
@@ -6320,24 +6460,24 @@ function BasicAppShell({ children, menu }) {
6320
6460
  ]
6321
6461
  }
6322
6462
  ),
6323
- /* @__PURE__ */ jsx47(MySwitchTheme, {})
6463
+ /* @__PURE__ */ jsx49(MySwitchTheme, {})
6324
6464
  ] })
6325
6465
  ] })
6326
6466
  )
6327
6467
  ] }),
6328
- /* @__PURE__ */ jsxs25(AppShell.Navbar, { children: [
6329
- /* @__PURE__ */ jsx47(TextInput2, { mt: "md", placeholder: "T\xECm menu (Ctrl + K)", mx: 10, component: "button", onClick: spotlight2.open, leftSection: /* @__PURE__ */ jsx47(IconSearch2, {}), children: "T\xECm ki\u1EBFm (Ctrl + K)" }),
6330
- /* @__PURE__ */ jsxs25(AppShell.Section, { grow: true, component: ScrollArea2, p: 5, children: [
6331
- /* @__PURE__ */ jsx47(RenderNavLinks, { items: menu }),
6332
- /* @__PURE__ */ jsx47(Divider2, {}),
6333
- /* @__PURE__ */ jsx47(F0Logout, {})
6468
+ /* @__PURE__ */ jsxs26(AppShell.Navbar, { children: [
6469
+ /* @__PURE__ */ jsx49(TextInput2, { mt: "md", placeholder: "T\xECm menu (Ctrl + K)", mx: 10, component: "button", onClick: spotlight2.open, leftSection: /* @__PURE__ */ jsx49(IconSearch2, {}), children: "T\xECm ki\u1EBFm (Ctrl + K)" }),
6470
+ /* @__PURE__ */ jsxs26(AppShell.Section, { grow: true, component: ScrollArea3, p: 5, children: [
6471
+ /* @__PURE__ */ jsx49(RenderNavLinks, { items: menu }),
6472
+ /* @__PURE__ */ jsx49(Divider2, {}),
6473
+ /* @__PURE__ */ jsx49(F0Logout, {})
6334
6474
  ] }),
6335
- /* @__PURE__ */ jsxs25(AppShell.Section, { p: "md", children: [
6336
- /* @__PURE__ */ jsx47(Divider2, {}),
6337
- /* @__PURE__ */ jsx47(Image3, { src: "/imgs/0/IMG0LogoAQTech.png", h: 50, alt: "", w: "auto" })
6475
+ /* @__PURE__ */ jsxs26(AppShell.Section, { p: "md", children: [
6476
+ /* @__PURE__ */ jsx49(Divider2, {}),
6477
+ /* @__PURE__ */ jsx49(Image3, { src: "/imgs/0/IMG0LogoAQTech.png", h: 50, alt: "", w: "auto" })
6338
6478
  ] })
6339
6479
  ] }),
6340
- /* @__PURE__ */ jsx47(AppShell.Main, { bg: "light-dark(var(--mantine-color-gray-1), var(--mantine-color-dark-8))", children })
6480
+ /* @__PURE__ */ jsx49(AppShell.Main, { bg: "light-dark(var(--mantine-color-gray-1), var(--mantine-color-dark-8))", children })
6341
6481
  ]
6342
6482
  }
6343
6483
  );
@@ -6386,10 +6526,10 @@ function utils_layout_getItemsWithoutLinks(menu) {
6386
6526
 
6387
6527
  // src/components/Layouts/Container/MyContainer.tsx
6388
6528
  import { Container, Flex as Flex4 } from "@mantine/core";
6389
- import { jsx as jsx48 } from "react/jsx-runtime";
6529
+ import { jsx as jsx50 } from "react/jsx-runtime";
6390
6530
  function MyContainer(_a) {
6391
6531
  var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
6392
- return /* @__PURE__ */ jsx48(Container, __spreadProps(__spreadValues({ fluid: true }, rest), { children: /* @__PURE__ */ jsx48(Flex4, { direction: "column", children }) }));
6532
+ return /* @__PURE__ */ jsx50(Container, __spreadProps(__spreadValues({ fluid: true }, rest), { children: /* @__PURE__ */ jsx50(Flex4, { direction: "column", children }) }));
6393
6533
  }
6394
6534
 
6395
6535
  // src/constants/object/color.ts
@@ -6401,7 +6541,7 @@ var OBJECT_COlORS = {
6401
6541
 
6402
6542
  // src/components/Layouts/HeaderMegaMenu/HeaderMegaMenu.tsx
6403
6543
  import {
6404
- Box as Box3,
6544
+ Box as Box4,
6405
6545
  Burger,
6406
6546
  Button as Button15,
6407
6547
  Container as Container2,
@@ -6409,7 +6549,7 @@ import {
6409
6549
  Drawer,
6410
6550
  Group as Group12,
6411
6551
  Image as Image4,
6412
- ScrollArea as ScrollArea3,
6552
+ ScrollArea as ScrollArea4,
6413
6553
  Text as Text12,
6414
6554
  TextInput as TextInput3,
6415
6555
  ThemeIcon,
@@ -6442,7 +6582,7 @@ function useHeaderMegaMenuStore() {
6442
6582
  }
6443
6583
 
6444
6584
  // src/components/Layouts/HeaderMegaMenu/HeaderMegaMenu.tsx
6445
- import { jsx as jsx49, jsxs as jsxs26 } from "react/jsx-runtime";
6585
+ import { jsx as jsx51, jsxs as jsxs27 } from "react/jsx-runtime";
6446
6586
  var mockdata = [
6447
6587
  {
6448
6588
  icon: IconCode,
@@ -6480,27 +6620,27 @@ function HeaderMegaMenu({ children, menus }) {
6480
6620
  const [linksOpened, { toggle: toggleLinks }] = useDisclosure10(false);
6481
6621
  const HeaderMegaMenuStore = useHeaderMegaMenuStore();
6482
6622
  const theme = useMantineTheme();
6483
- const links = mockdata.map((item) => /* @__PURE__ */ jsx49(UnstyledButton, { className: css_default2.subLink, children: /* @__PURE__ */ jsxs26(Group12, { wrap: "nowrap", align: "flex-start", children: [
6484
- /* @__PURE__ */ jsx49(ThemeIcon, { size: 34, variant: "default", radius: "md", children: /* @__PURE__ */ jsx49(item.icon, { size: 22, color: theme.colors.blue[6] }) }),
6485
- /* @__PURE__ */ jsxs26("div", { children: [
6486
- /* @__PURE__ */ jsx49(Text12, { size: "sm", fw: 500, children: item.title }),
6487
- /* @__PURE__ */ jsx49(Text12, { size: "xs", c: "dimmed", children: item.description })
6623
+ const links = mockdata.map((item) => /* @__PURE__ */ jsx51(UnstyledButton, { className: css_default2.subLink, children: /* @__PURE__ */ jsxs27(Group12, { wrap: "nowrap", align: "flex-start", children: [
6624
+ /* @__PURE__ */ jsx51(ThemeIcon, { size: 34, variant: "default", radius: "md", children: /* @__PURE__ */ jsx51(item.icon, { size: 22, color: theme.colors.blue[6] }) }),
6625
+ /* @__PURE__ */ jsxs27("div", { children: [
6626
+ /* @__PURE__ */ jsx51(Text12, { size: "sm", fw: 500, children: item.title }),
6627
+ /* @__PURE__ */ jsx51(Text12, { size: "xs", c: "dimmed", children: item.description })
6488
6628
  ] })
6489
6629
  ] }) }, item.title));
6490
- return /* @__PURE__ */ jsxs26(Box3, { children: [
6491
- /* @__PURE__ */ jsx49("header", { className: css_default2.header, children: /* @__PURE__ */ jsxs26(Group12, { justify: "space-between", h: "100%", children: [
6492
- /* @__PURE__ */ jsxs26(Group12, { children: [
6493
- /* @__PURE__ */ jsx49(Image4, { src: "/imgs/0/IMG0LogoAQTech.png", h: 30, alt: "", w: "auto" }),
6494
- /* @__PURE__ */ jsx49(Group12, { h: "100%", gap: 5, visibleFrom: "sm", children: menus == null ? void 0 : menus.map((item, idx) => /* @__PURE__ */ jsx49(Button15, { component: Link4, href: item.href, variant: HeaderMegaMenuStore.state.name == item.label ? "light" : "subtle", onClick: () => HeaderMegaMenuStore.setState({ name: item.label }), children: item.label }, idx)) })
6630
+ return /* @__PURE__ */ jsxs27(Box4, { children: [
6631
+ /* @__PURE__ */ jsx51("header", { className: css_default2.header, children: /* @__PURE__ */ jsxs27(Group12, { justify: "space-between", h: "100%", children: [
6632
+ /* @__PURE__ */ jsxs27(Group12, { children: [
6633
+ /* @__PURE__ */ jsx51(Image4, { src: "/imgs/0/IMG0LogoAQTech.png", h: 30, alt: "", w: "auto" }),
6634
+ /* @__PURE__ */ jsx51(Group12, { h: "100%", gap: 5, visibleFrom: "sm", children: menus == null ? void 0 : menus.map((item, idx) => /* @__PURE__ */ jsx51(Button15, { component: Link4, href: item.href, variant: HeaderMegaMenuStore.state.name == item.label ? "light" : "subtle", onClick: () => HeaderMegaMenuStore.setState({ name: item.label }), children: item.label }, idx)) })
6495
6635
  ] }),
6496
- /* @__PURE__ */ jsxs26(Group12, { children: [
6497
- /* @__PURE__ */ jsx49(TextInput3, { placeholder: "T\xECm ki\u1EBFm", leftSection: /* @__PURE__ */ jsx49(IconSearch3, {}), radius: "xl", w: "250px" }),
6498
- /* @__PURE__ */ jsx49(MySwitchTheme, {})
6636
+ /* @__PURE__ */ jsxs27(Group12, { children: [
6637
+ /* @__PURE__ */ jsx51(TextInput3, { placeholder: "T\xECm ki\u1EBFm", leftSection: /* @__PURE__ */ jsx51(IconSearch3, {}), radius: "xl", w: "250px" }),
6638
+ /* @__PURE__ */ jsx51(MySwitchTheme, {})
6499
6639
  ] }),
6500
- /* @__PURE__ */ jsx49(Burger, { opened: drawerOpened, onClick: toggleDrawer, hiddenFrom: "sm" })
6640
+ /* @__PURE__ */ jsx51(Burger, { opened: drawerOpened, onClick: toggleDrawer, hiddenFrom: "sm" })
6501
6641
  ] }) }),
6502
- /* @__PURE__ */ jsx49(Container2, { fluid: true, pt: "sm", pb: "md", bg: OBJECT_COlORS.mantineBackgroundSecondary, mih: "93vh", children }),
6503
- /* @__PURE__ */ jsx49(
6642
+ /* @__PURE__ */ jsx51(Container2, { fluid: true, pt: "sm", pb: "md", bg: OBJECT_COlORS.mantineBackgroundSecondary, mih: "93vh", children }),
6643
+ /* @__PURE__ */ jsx51(
6504
6644
  Drawer,
6505
6645
  {
6506
6646
  opened: drawerOpened,
@@ -6510,41 +6650,19 @@ function HeaderMegaMenu({ children, menus }) {
6510
6650
  title: "Navigation",
6511
6651
  hiddenFrom: "sm",
6512
6652
  zIndex: 1e6,
6513
- children: /* @__PURE__ */ jsxs26(ScrollArea3, { h: "calc(100vh - 80px", mx: "-md", children: [
6514
- /* @__PURE__ */ jsx49(Divider3, { my: "sm" }),
6515
- /* @__PURE__ */ jsx49(MyFlexColumn, { h: "100%", gap: 0, children: menus == null ? void 0 : menus.map((item, idx) => /* @__PURE__ */ jsx49(Button15, { component: Link4, href: item.href, variant: HeaderMegaMenuStore.state.name == item.label ? "light" : "subtle", onClick: () => HeaderMegaMenuStore.setState({ name: item.label }), children: item.label }, idx)) }),
6516
- /* @__PURE__ */ jsx49(Divider3, { my: "sm" })
6653
+ children: /* @__PURE__ */ jsxs27(ScrollArea4, { h: "calc(100vh - 80px", mx: "-md", children: [
6654
+ /* @__PURE__ */ jsx51(Divider3, { my: "sm" }),
6655
+ /* @__PURE__ */ jsx51(MyFlexColumn, { h: "100%", gap: 0, children: menus == null ? void 0 : menus.map((item, idx) => /* @__PURE__ */ jsx51(Button15, { component: Link4, href: item.href, variant: HeaderMegaMenuStore.state.name == item.label ? "light" : "subtle", onClick: () => HeaderMegaMenuStore.setState({ name: item.label }), children: item.label }, idx)) }),
6656
+ /* @__PURE__ */ jsx51(Divider3, { my: "sm" })
6517
6657
  ] })
6518
6658
  }
6519
6659
  )
6520
6660
  ] });
6521
6661
  }
6522
6662
 
6523
- // src/components/Layouts/HtmlWrapper/MyHtmlWrapper.tsx
6524
- import { ScrollArea as ScrollArea4, TypographyStylesProvider } from "@mantine/core";
6525
- import pako from "pako";
6526
- import { jsx as jsx50 } from "react/jsx-runtime";
6527
- function MyHtmlWrapper(_a) {
6528
- var _b = _a, { html, mah, zip = false } = _b, rest = __objRest(_b, ["html", "mah", "zip"]);
6529
- const extractHtmlFromZip = () => {
6530
- const binaryString = Buffer.from(html, "base64");
6531
- const decompressedData = pako.inflate(binaryString, { to: "string" });
6532
- const cleanedHtml = decompressedData == null ? void 0 : decompressedData.replaceAll(" font-family:'Times New Roman'; font-size:1em;", "");
6533
- return cleanedHtml.replaceAll(" font-family:'Times New Roman'; font-size:1em;", "");
6534
- };
6535
- return /* @__PURE__ */ jsx50(ScrollArea4.Autosize, { mah, children: /* @__PURE__ */ jsx50(TypographyStylesProvider, __spreadProps(__spreadValues({}, rest), { children: /* @__PURE__ */ jsx50(
6536
- "div",
6537
- {
6538
- dangerouslySetInnerHTML: {
6539
- __html: zip ? extractHtmlFromZip() : html
6540
- }
6541
- }
6542
- ) })) });
6543
- }
6544
-
6545
6663
  // src/components/Layouts/PageContent/MyPageContent.tsx
6546
6664
  import { Code, Container as Container3, Divider as Divider4, Group as Group13, Indicator, Title } from "@mantine/core";
6547
- import { jsx as jsx51, jsxs as jsxs27 } from "react/jsx-runtime";
6665
+ import { jsx as jsx52, jsxs as jsxs28 } from "react/jsx-runtime";
6548
6666
  var getStatusColor = (status) => {
6549
6667
  switch (status) {
6550
6668
  case "Prototype":
@@ -6557,39 +6675,39 @@ var getStatusColor = (status) => {
6557
6675
  };
6558
6676
  var PageTitle = ({ title, status }) => {
6559
6677
  const color = getStatusColor(status);
6560
- return /* @__PURE__ */ jsx51(Indicator, { label: status, size: 16, inline: true, color, disabled: !status, pt: 6, children: /* @__PURE__ */ jsx51(Title, { children: title }) });
6678
+ return /* @__PURE__ */ jsx52(Indicator, { label: status, size: 16, inline: true, color, disabled: !status, pt: 6, children: /* @__PURE__ */ jsx52(Title, { children: title }) });
6561
6679
  };
6562
6680
  function MyPageContent({ leftTopBar, title, canBack = false, rightTopBar, status, children }) {
6563
6681
  const SidebarStore = useS_Sidebar();
6564
6682
  const finalTitle = title || SidebarStore.state.title;
6565
- return /* @__PURE__ */ jsxs27(Container3, { p: 0, fluid: true, children: [
6566
- /* @__PURE__ */ jsxs27(Group13, { justify: "space-between", children: [
6567
- /* @__PURE__ */ jsxs27(Group13, { children: [
6568
- canBack && /* @__PURE__ */ jsx51(MyButtonRouterBack, {}),
6569
- /* @__PURE__ */ jsx51(PageTitle, { title: finalTitle, status }),
6683
+ return /* @__PURE__ */ jsxs28(Container3, { p: 0, fluid: true, children: [
6684
+ /* @__PURE__ */ jsxs28(Group13, { justify: "space-between", children: [
6685
+ /* @__PURE__ */ jsxs28(Group13, { children: [
6686
+ canBack && /* @__PURE__ */ jsx52(MyButtonRouterBack, {}),
6687
+ /* @__PURE__ */ jsx52(PageTitle, { title: finalTitle, status }),
6570
6688
  leftTopBar
6571
6689
  ] }),
6572
- /* @__PURE__ */ jsxs27(Group13, { children: [
6690
+ /* @__PURE__ */ jsxs28(Group13, { children: [
6573
6691
  rightTopBar,
6574
- /* @__PURE__ */ jsx51(Code, { color: "var(--mantine-color-blue-light)", children: SidebarStore.state.menuCode })
6692
+ /* @__PURE__ */ jsx52(Code, { color: "var(--mantine-color-blue-light)", children: SidebarStore.state.menuCode })
6575
6693
  ] })
6576
6694
  ] }),
6577
- /* @__PURE__ */ jsx51(Divider4, {}),
6695
+ /* @__PURE__ */ jsx52(Divider4, {}),
6578
6696
  children
6579
6697
  ] });
6580
6698
  }
6581
6699
 
6582
6700
  // src/components/Layouts/Tab/MyTab.tsx
6583
6701
  import { rem, Space as Space3, Tabs } from "@mantine/core";
6584
- import { jsx as jsx52, jsxs as jsxs28 } from "react/jsx-runtime";
6702
+ import { jsx as jsx53, jsxs as jsxs29 } from "react/jsx-runtime";
6585
6703
  function MyTab(_a) {
6586
6704
  var _b = _a, { tabList, children } = _b, rest = __objRest(_b, ["tabList", "children"]);
6587
6705
  const iconStyle = { width: rem(20), height: rem(20) };
6588
- return /* @__PURE__ */ jsxs28(Tabs, __spreadProps(__spreadValues({ defaultValue: tabList[0].label }, rest), { children: [
6589
- /* @__PURE__ */ jsx52(Tabs.List, { children: tabList.map((item, idx) => {
6590
- return /* @__PURE__ */ jsx52(Tabs.Tab, { value: item.label, leftSection: item.icon && /* @__PURE__ */ jsx52(item.icon, { style: iconStyle }), children: item.label }, idx);
6706
+ return /* @__PURE__ */ jsxs29(Tabs, __spreadProps(__spreadValues({ defaultValue: tabList[0].label }, rest), { children: [
6707
+ /* @__PURE__ */ jsx53(Tabs.List, { children: tabList.map((item, idx) => {
6708
+ return /* @__PURE__ */ jsx53(Tabs.Tab, { value: item.label, leftSection: item.icon && /* @__PURE__ */ jsx53(item.icon, { style: iconStyle }), children: item.label }, idx);
6591
6709
  }) }),
6592
- /* @__PURE__ */ jsx52(Space3, { my: "md" }),
6710
+ /* @__PURE__ */ jsx53(Space3, { my: "md" }),
6593
6711
  children
6594
6712
  ] }));
6595
6713
  }
@@ -6598,33 +6716,33 @@ function MyTab(_a) {
6598
6716
  import { ActionIcon as ActionIcon11, Button as Button16, Fieldset as Fieldset5, Group as Group14, Modal as Modal11 } from "@mantine/core";
6599
6717
  import { useDisclosure as useDisclosure11 } from "@mantine/hooks";
6600
6718
  import { IconX as IconX2 } from "@tabler/icons-react";
6601
- import { jsx as jsx53, jsxs as jsxs29 } from "react/jsx-runtime";
6719
+ import { jsx as jsx54, jsxs as jsxs30 } from "react/jsx-runtime";
6602
6720
  function MyDataTableSelect(_a) {
6603
6721
  var _b = _a, { modalSize, renderTopToolbarCustomActions, data, selectButtonlabel, listState, columns, listLabel } = _b, rest = __objRest(_b, ["modalSize", "renderTopToolbarCustomActions", "data", "selectButtonlabel", "listState", "columns", "listLabel"]);
6604
6722
  const disc = useDisclosure11(false);
6605
6723
  if (data == void 0) return "\u0110ang t\u1EA3i...";
6606
- return /* @__PURE__ */ jsxs29(Fieldset5, { legend: listLabel ? listLabel : "Danh s\xE1ch", children: [
6607
- /* @__PURE__ */ jsx53(
6724
+ return /* @__PURE__ */ jsxs30(Fieldset5, { legend: listLabel ? listLabel : "Danh s\xE1ch", children: [
6725
+ /* @__PURE__ */ jsx54(
6608
6726
  MyDataTable,
6609
6727
  __spreadValues({
6610
6728
  renderTopToolbarCustomActions: ({ table }) => {
6611
- return /* @__PURE__ */ jsxs29(Group14, { children: [
6729
+ return /* @__PURE__ */ jsxs30(Group14, { children: [
6612
6730
  renderTopToolbarCustomActions && renderTopToolbarCustomActions({ table }),
6613
- /* @__PURE__ */ jsx53(Button16, { onClick: disc[1].open, children: selectButtonlabel || "Ch\u1ECDn t\u1EEB danh s\xE1ch" })
6731
+ /* @__PURE__ */ jsx54(Button16, { onClick: disc[1].open, children: selectButtonlabel || "Ch\u1ECDn t\u1EEB danh s\xE1ch" })
6614
6732
  ] });
6615
6733
  },
6616
6734
  columns,
6617
6735
  data: listState[0],
6618
6736
  renderRowActions: ({ row }) => {
6619
- return /* @__PURE__ */ jsx53(MyCenterFull, { children: /* @__PURE__ */ jsx53(ActionIcon11, { color: "red", onClick: () => listState[1].remove(row.index), children: /* @__PURE__ */ jsx53(IconX2, {}) }) });
6737
+ return /* @__PURE__ */ jsx54(MyCenterFull, { children: /* @__PURE__ */ jsx54(ActionIcon11, { color: "red", onClick: () => listState[1].remove(row.index), children: /* @__PURE__ */ jsx54(IconX2, {}) }) });
6620
6738
  }
6621
6739
  }, rest)
6622
6740
  ),
6623
- /* @__PURE__ */ jsx53(Modal11, { opened: disc[0], onClose: disc[1].close, size: modalSize || "80%", children: /* @__PURE__ */ jsx53(
6741
+ /* @__PURE__ */ jsx54(Modal11, { opened: disc[0], onClose: disc[1].close, size: modalSize || "80%", children: /* @__PURE__ */ jsx54(
6624
6742
  MyDataTable,
6625
6743
  __spreadValues({
6626
6744
  renderTopToolbarCustomActions: ({ table }) => {
6627
- return /* @__PURE__ */ jsx53(Button16, { onClick: () => {
6745
+ return /* @__PURE__ */ jsx54(Button16, { onClick: () => {
6628
6746
  table.getSelectedRowModel().rows.map((item) => listState[1].append(item.original));
6629
6747
  disc[1].close();
6630
6748
  }, children: "Ch\u1ECDn" });
@@ -6640,7 +6758,7 @@ function MyDataTableSelect(_a) {
6640
6758
  // src/components/RESTAPIComponents/SelectAPIGet/MySelectAPIGet.tsx
6641
6759
  import { Select as Select4 } from "@mantine/core";
6642
6760
  import { useQuery as useQuery2 } from "@tanstack/react-query";
6643
- import { jsx as jsx54 } from "react/jsx-runtime";
6761
+ import { jsx as jsx55 } from "react/jsx-runtime";
6644
6762
  function MySelectAPIGet(_a) {
6645
6763
  var _b = _a, { apiGet, label = "", dataMapper } = _b, rest = __objRest(_b, ["apiGet", "label", "dataMapper"]);
6646
6764
  var _a2;
@@ -6659,7 +6777,7 @@ function MySelectAPIGet(_a) {
6659
6777
  label: `${item.code}-${item.name}`
6660
6778
  };
6661
6779
  });
6662
- return /* @__PURE__ */ jsx54(
6780
+ return /* @__PURE__ */ jsx55(
6663
6781
  Select4,
6664
6782
  __spreadValues({
6665
6783
  label,
@@ -6671,9 +6789,9 @@ function MySelectAPIGet(_a) {
6671
6789
 
6672
6790
  // src/components/Skeletons/SkeletonTable/MySkeletonTable.tsx
6673
6791
  import { Skeleton } from "@mantine/core";
6674
- import { jsx as jsx55 } from "react/jsx-runtime";
6792
+ import { jsx as jsx56 } from "react/jsx-runtime";
6675
6793
  function MySkeletonTable({ h: h4 = 500 }) {
6676
- return /* @__PURE__ */ jsx55(Skeleton, { h: h4 });
6794
+ return /* @__PURE__ */ jsx56(Skeleton, { h: h4 });
6677
6795
  }
6678
6796
 
6679
6797
  export {
@@ -6709,6 +6827,8 @@ export {
6709
6827
  MyButtonImport,
6710
6828
  AQSelectTableByOpenModal,
6711
6829
  MyButtonPrintPDF,
6830
+ MyHtmlWrapper,
6831
+ MyButtonPrintTablePDF,
6712
6832
  MyButtonRouterBack,
6713
6833
  baseAxios_default,
6714
6834
  MyButtonViewPDF,
@@ -6734,7 +6854,6 @@ export {
6734
6854
  OBJECT_COlORS,
6735
6855
  useHeaderMegaMenuStore,
6736
6856
  HeaderMegaMenu,
6737
- MyHtmlWrapper,
6738
6857
  MyPageContent,
6739
6858
  MyTab,
6740
6859
  MyDataTableSelect,
@@ -134,13 +134,13 @@ interface IMyButtonCreate$1 extends Omit<ComponentProps<typeof MyButtonModal>, "
134
134
  }
135
135
  declare function AQButtonCreateByImportFile({ form, onSubmit, onSuccess, onError, setImportedData, ...rest }: IMyButtonCreate$1): react_jsx_runtime.JSX.Element;
136
136
 
137
- interface FieldConfig {
137
+ interface FieldConfig$1 {
138
138
  fieldName: string;
139
139
  header: string;
140
140
  formatFunction?: (value: any, row: any) => any;
141
141
  }
142
142
  interface ExportConfig {
143
- fields: FieldConfig[];
143
+ fields: FieldConfig$1[];
144
144
  }
145
145
  interface AQButtonExportDataProps {
146
146
  isAllData: boolean;
@@ -223,6 +223,24 @@ interface I$5 extends ButtonProps {
223
223
  }
224
224
  declare function MyButtonPrintPDF({ contentToPrint, ...rest }: I$5): react_jsx_runtime.JSX.Element;
225
225
 
226
+ interface FieldConfig {
227
+ fieldName: string;
228
+ header: string;
229
+ isCenter?: boolean;
230
+ formatFunction?: (value: any, row: any) => any;
231
+ }
232
+ interface PrintConfig {
233
+ fields: FieldConfig[];
234
+ title?: string;
235
+ showRowNumbers?: boolean;
236
+ }
237
+ interface AQButtonPrintTableProps<TData extends MRT_RowData = any> {
238
+ printConfig?: PrintConfig;
239
+ objectName?: string;
240
+ data?: TData[];
241
+ }
242
+ declare function MyButtonPrintTablePDF<TData extends MRT_RowData = any>({ printConfig, data, }: AQButtonPrintTableProps<TData>): react_jsx_runtime.JSX.Element;
243
+
226
244
  interface IMyButtonRouterBack extends ButtonProps {
227
245
  url?: string;
228
246
  label?: string;
@@ -442,4 +460,4 @@ interface IMySkeletonTable extends SkeletonProps {
442
460
  }
443
461
  declare function MySkeletonTable({ h }: IMySkeletonTable): react_jsx_runtime.JSX.Element;
444
462
 
445
- export { AQButtonCreateByImportFile, AQButtonExportData, AQCard, AQSelectTableByOpenModal, AQStatCard1, BasicAppShell, BasicAppShell_transformMenuToEnum, Boxes, HeaderMegaMenu, type I0LinkItem, type IAQCardProps, type IMyTextEditor, MyActionIcon, MyActionIconCheck, MyActionIconDelete, MyActionIconDownloadPDF, MyActionIconModal, MyActionIconUpdate, MyActionIconUpload, MyActionIconViewPDF, MyAnchorViewPDF, MyAppSpotlight, MyBoxesBackground, MyBoxesCore, MyButton, MyButtonCreate, MyButtonImport, MyButtonModal, MyButtonPrintPDF, MyButtonRouterBack, MyButtonViewPDF, MyCalendar, MyCardioLoader, MyCenterFull, MyCheckbox, MyContainer, MyDataTable, MyDataTableSelect, MyDateInput, MyFieldset, MyFileInput, MyFlexColumn, MyFlexEnd, MyFlexRow, MyHtmlWrapper, MyKeyLabel, MyNumberFormatter, MyNumberInput, MyPageContent, MySelect, MySelectAPIGet, MySkeletonTable, MySwitchTheme, MyTab, MyTextArea, MyTextEditor, MyTextInput, SelectFieldModal, SelectFileModal, type SelectFileModalProps, SpotlightTrigger, groupToTwoLevels, useHeaderMegaMenuStore, useS_ButtonImport, utils_layout_getItemsWithoutLinks };
463
+ export { AQButtonCreateByImportFile, AQButtonExportData, AQCard, AQSelectTableByOpenModal, AQStatCard1, BasicAppShell, BasicAppShell_transformMenuToEnum, Boxes, HeaderMegaMenu, type I0LinkItem, type IAQCardProps, type IMyTextEditor, MyActionIcon, MyActionIconCheck, MyActionIconDelete, MyActionIconDownloadPDF, MyActionIconModal, MyActionIconUpdate, MyActionIconUpload, MyActionIconViewPDF, MyAnchorViewPDF, MyAppSpotlight, MyBoxesBackground, MyBoxesCore, MyButton, MyButtonCreate, MyButtonImport, MyButtonModal, MyButtonPrintPDF, MyButtonPrintTablePDF, MyButtonRouterBack, MyButtonViewPDF, MyCalendar, MyCardioLoader, MyCenterFull, MyCheckbox, MyContainer, MyDataTable, MyDataTableSelect, MyDateInput, MyFieldset, MyFileInput, MyFlexColumn, MyFlexEnd, MyFlexRow, MyHtmlWrapper, MyKeyLabel, MyNumberFormatter, MyNumberInput, MyPageContent, MySelect, MySelectAPIGet, MySkeletonTable, MySwitchTheme, MyTab, MyTextArea, MyTextEditor, MyTextInput, SelectFieldModal, SelectFileModal, type SelectFileModalProps, SpotlightTrigger, groupToTwoLevels, useHeaderMegaMenuStore, useS_ButtonImport, utils_layout_getItemsWithoutLinks };
@@ -25,6 +25,7 @@ import {
25
25
  MyButtonImport,
26
26
  MyButtonModal,
27
27
  MyButtonPrintPDF,
28
+ MyButtonPrintTablePDF,
28
29
  MyButtonRouterBack,
29
30
  MyButtonViewPDF,
30
31
  MyCalendar,
@@ -60,7 +61,7 @@ import {
60
61
  useHeaderMegaMenuStore,
61
62
  useS_ButtonImport,
62
63
  utils_layout_getItemsWithoutLinks
63
- } from "../chunk-WCAWX5QH.mjs";
64
+ } from "../chunk-7LDYJOBM.mjs";
64
65
  import "../chunk-GL5OCTFE.mjs";
65
66
  import "../chunk-CDDX46TC.mjs";
66
67
  import "../chunk-FWCSY2DS.mjs";
@@ -91,6 +92,7 @@ export {
91
92
  MyButtonImport,
92
93
  MyButtonModal,
93
94
  MyButtonPrintPDF,
95
+ MyButtonPrintTablePDF,
94
96
  MyButtonRouterBack,
95
97
  MyButtonViewPDF,
96
98
  MyCalendar,
@@ -20,7 +20,7 @@ import {
20
20
  baseAxios_default,
21
21
  groupToTwoLevels,
22
22
  utils_layout_getItemsWithoutLinks
23
- } from "../../../chunk-WCAWX5QH.mjs";
23
+ } from "../../../chunk-7LDYJOBM.mjs";
24
24
  import {
25
25
  createGenericStore
26
26
  } from "../../../chunk-GL5OCTFE.mjs";
package/package.json CHANGED
@@ -18,7 +18,7 @@
18
18
  "types": "./dist/modules-features//admin/core/index.d.mts"
19
19
  }
20
20
  },
21
- "version": "0.1.48",
21
+ "version": "0.1.50",
22
22
  "private": false,
23
23
  "files": [
24
24
  "dist"