aq-fe-framework 0.1.975 → 0.1.977

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.
@@ -14,6 +14,7 @@ declare function MyActionIcon({ children, actionType, isCheckPermission, ...rest
14
14
  interface MyButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "color" | "style">, ButtonProps {
15
15
  actionType?: type_action;
16
16
  children?: ReactNode;
17
+ /** Không cần bật kiểm tra quyền mặc định = true */
17
18
  isCheckPermission?: boolean;
18
19
  }
19
20
  declare function MyButton({ children, actionType, isCheckPermission, ...rest }: MyButtonProps): react_jsx_runtime.JSX.Element;
@@ -1,3 +1,7 @@
1
+ import {
2
+ useStore_Permission,
3
+ useStore_ProjectInfo
4
+ } from "./chunk-BJAYNNOF.mjs";
1
5
  import {
2
6
  utils_aq_mapBaseEntityToDomain,
3
7
  utils_aq_mapDomainToEntity,
@@ -12,26 +16,22 @@ import {
12
16
  utils_notification_show,
13
17
  utils_pdf_download
14
18
  } from "./chunk-KGBXMHKR.mjs";
15
- import {
16
- useStore_Permission,
17
- useStore_ProjectInfo
18
- } from "./chunk-BJAYNNOF.mjs";
19
19
  import {
20
20
  utils_date,
21
21
  utils_excel,
22
22
  utils_file,
23
23
  utils_mantineReactTable
24
- } from "./chunk-PBI7RFUT.mjs";
24
+ } from "./chunk-XAQLBGVI.mjs";
25
25
  import {
26
26
  createGenericStore2 as createGenericStore
27
27
  } from "./chunk-YGWSHSTG.mjs";
28
- import {
29
- enum_daysOfWeek
30
- } from "./chunk-K6S7R6LU.mjs";
31
28
  import {
32
29
  const_object_colors,
33
30
  const_object_documentTypes
34
31
  } from "./chunk-SPG47QW7.mjs";
32
+ import {
33
+ enum_daysOfWeek
34
+ } from "./chunk-K6S7R6LU.mjs";
35
35
  import {
36
36
  createBaseApi,
37
37
  useConfig,
@@ -80,7 +80,7 @@ function CustomSwitchTheme() {
80
80
  }
81
81
 
82
82
  // src/core/button/MyButtonCreateUpdate.tsx
83
- import { Modal, ScrollArea, Space, Tooltip, useMantineColorScheme as useMantineColorScheme4 } from "@mantine/core";
83
+ import { Modal, ScrollArea, Space, Tooltip as Tooltip2, useMantineColorScheme as useMantineColorScheme4 } from "@mantine/core";
84
84
  import { useDisclosure } from "@mantine/hooks";
85
85
  import { notifications } from "@mantine/notifications";
86
86
 
@@ -93,7 +93,7 @@ function MyFlexColumn(_a) {
93
93
  }
94
94
 
95
95
  // src/core/button/MyActionIcon/MyActionIcon.tsx
96
- import { ActionIcon as ActionIcon2, useMantineColorScheme as useMantineColorScheme2 } from "@mantine/core";
96
+ import { ActionIcon as ActionIcon2, Tooltip, useMantineColorScheme as useMantineColorScheme2 } from "@mantine/core";
97
97
  import {
98
98
  IconBook,
99
99
  IconChecklist,
@@ -106,6 +106,7 @@ import {
106
106
  IconPencil,
107
107
  IconPlus,
108
108
  IconPrinter,
109
+ IconSelect,
109
110
  IconTrash,
110
111
  IconX
111
112
  } from "@tabler/icons-react";
@@ -152,10 +153,12 @@ var getActionConfig = (colorScheme) => ({
152
153
  color: "gray",
153
154
  children: /* @__PURE__ */ jsx3(IconX, {})
154
155
  },
155
- select: {},
156
+ select: {
157
+ children: /* @__PURE__ */ jsx3(IconSelect, {}),
158
+ color: "violet"
159
+ },
156
160
  check: {
157
- color: "orange",
158
- children: /* @__PURE__ */ jsx3(IconChecklist, {})
161
+ children: /* @__PURE__ */ jsx3(IconSelect, {})
159
162
  },
160
163
  find: {},
161
164
  tempDelete: {
@@ -178,7 +181,11 @@ var getActionConfig = (colorScheme) => ({
178
181
  color: "grape",
179
182
  children: /* @__PURE__ */ jsx3(IconMail, {})
180
183
  },
181
- validate: {}
184
+ validate: {
185
+ color: "orange",
186
+ children: /* @__PURE__ */ jsx3(IconChecklist, {}),
187
+ tooltipLabel: "Ki\u1EC3m tra"
188
+ }
182
189
  });
183
190
  function MyActionIcon(_a) {
184
191
  var _b = _a, { children, actionType: actionType2, isCheckPermission = true } = _b, rest = __objRest(_b, ["children", "actionType", "isCheckPermission"]);
@@ -193,14 +200,8 @@ function MyActionIcon(_a) {
193
200
  return false;
194
201
  return actionType2 === "create" && permissionStore.state.currentPermissionPage.isCreate === false || actionType2 === "update" && permissionStore.state.currentPermissionPage.isUpdate === false || actionType2 === "delete" && permissionStore.state.currentPermissionPage.isDelete === false || actionType2 === "print" && permissionStore.state.currentPermissionPage.isPrint === false || actionType2 === "export" && permissionStore.state.currentPermissionPage.isExport === false;
195
202
  })();
196
- return /* @__PURE__ */ jsx3(
197
- ActionIcon2,
198
- __spreadProps(__spreadValues(__spreadValues({
199
- hidden: shouldHide
200
- }, config4), rest), {
201
- children: children || config4.children
202
- })
203
- );
203
+ const actionIcon = /* @__PURE__ */ jsx3(ActionIcon2, __spreadProps(__spreadValues(__spreadValues({ hidden: shouldHide }, config4), rest), { children: children || config4.children }));
204
+ return config4.tooltipLabel ? /* @__PURE__ */ jsx3(Tooltip, { label: config4.tooltipLabel, children: actionIcon }) : actionIcon;
204
205
  }
205
206
 
206
207
  // src/core/button/MyButton/MyButton.tsx
@@ -210,12 +211,13 @@ import {
210
211
  IconDeviceFloppy as IconDeviceFloppy2,
211
212
  IconDownload,
212
213
  IconEdit as IconEdit2,
214
+ IconEye as IconEye2,
213
215
  IconLivePhoto,
214
216
  IconMail as IconMail2,
215
- IconPencil as IconPencil2,
216
217
  IconPlus as IconPlus2,
217
218
  IconPrinter as IconPrinter2,
218
219
  IconSearch,
220
+ IconSelect as IconSelect2,
219
221
  IconTrash as IconTrash2,
220
222
  IconUpload,
221
223
  IconX as IconX2
@@ -272,21 +274,18 @@ var getActionConfig2 = (colorScheme) => ({
272
274
  children: "H\u1EE7y thao t\xE1c"
273
275
  },
274
276
  select: {
275
- children: "Ch\u1ECDn"
276
- },
277
- check: {
278
- children: "Ch\u1ECDn"
277
+ children: "Ch\u1ECDn",
278
+ leftSection: /* @__PURE__ */ jsx4(IconSelect2, {}),
279
+ color: "violet"
279
280
  },
281
+ check: {},
280
282
  find: {
281
283
  color: "green",
282
284
  leftSection: /* @__PURE__ */ jsx4(IconSearch, {}),
283
285
  children: "T\xECm"
284
286
  },
285
287
  tempDelete: {},
286
- tempUpdate: {
287
- color: "yellow",
288
- leftSection: /* @__PURE__ */ jsx4(IconPencil2, {})
289
- },
288
+ tempUpdate: {},
290
289
  viewFile: {
291
290
  color: "cyan",
292
291
  leftSection: /* @__PURE__ */ jsx4(IconLivePhoto, {}),
@@ -297,9 +296,12 @@ var getActionConfig2 = (colorScheme) => ({
297
296
  leftSection: /* @__PURE__ */ jsx4(IconMail2, {}),
298
297
  children: "G\u1EEDi mail"
299
298
  },
300
- view: {},
299
+ view: {
300
+ children: "Xem chi ti\u1EBFt",
301
+ leftSection: /* @__PURE__ */ jsx4(IconEye2, {})
302
+ },
301
303
  validate: {
302
- color: "indigo",
304
+ color: "orange",
303
305
  variant: "outline",
304
306
  children: "Ki\u1EC3m tra",
305
307
  leftSection: /* @__PURE__ */ jsx4(IconChecklist2, {})
@@ -383,7 +385,7 @@ function MyButtonCreateUpdate({
383
385
  }, useMyReactMutationProps == null ? void 0 : useMyReactMutationProps.options)
384
386
  }));
385
387
  return /* @__PURE__ */ jsxs(Fragment, { children: [
386
- isUpdate == true ? /* @__PURE__ */ jsx5(Tooltip, __spreadProps(__spreadValues({ label: toolTipProps == null ? void 0 : toolTipProps.label, hidden: !(toolTipProps == null ? void 0 : toolTipProps.label) }, toolTipProps), { children: /* @__PURE__ */ jsx5(
388
+ isUpdate == true ? /* @__PURE__ */ jsx5(Tooltip2, __spreadProps(__spreadValues({ label: toolTipProps == null ? void 0 : toolTipProps.label, hidden: !(toolTipProps == null ? void 0 : toolTipProps.label) }, toolTipProps), { children: /* @__PURE__ */ jsx5(
387
389
  MyActionIcon,
388
390
  __spreadValues({
389
391
  actionType: "update",
@@ -467,7 +469,7 @@ function MyFlexColumn2(_a) {
467
469
  }
468
470
 
469
471
  // src/core/button/MyButtonModal.tsx
470
- import { Modal as Modal2, Tooltip as Tooltip2 } from "@mantine/core";
472
+ import { Modal as Modal2, Tooltip as Tooltip3 } from "@mantine/core";
471
473
  import { Fragment as Fragment2, jsx as jsx8, jsxs as jsxs2 } from "react/jsx-runtime";
472
474
  function MyButtonModal({
473
475
  disclosure,
@@ -488,7 +490,7 @@ function MyButtonModal({
488
490
  disclosure == null ? void 0 : disclosure[1].open();
489
491
  };
490
492
  return /* @__PURE__ */ jsxs2(Fragment2, { children: [
491
- isActionIcon ? /* @__PURE__ */ jsx8(Tooltip2, __spreadProps(__spreadValues({ label: toolTipProps == null ? void 0 : toolTipProps.label, hidden: !(toolTipProps == null ? void 0 : toolTipProps.label) }, toolTipProps), { children: /* @__PURE__ */ jsx8(
493
+ isActionIcon ? /* @__PURE__ */ jsx8(Tooltip3, __spreadProps(__spreadValues({ label: toolTipProps == null ? void 0 : toolTipProps.label, hidden: !(toolTipProps == null ? void 0 : toolTipProps.label) }, toolTipProps), { children: /* @__PURE__ */ jsx8(
492
494
  MyActionIcon,
493
495
  __spreadProps(__spreadValues({}, actionIconProps), {
494
496
  onClick: handleClick
@@ -1211,11 +1213,11 @@ function MyActionIconUpdate(_a) {
1211
1213
  }
1212
1214
 
1213
1215
  // src/components/ActionIcons/ActionIconDownloadPDF/MyActionIconDownloadPDF.tsx
1214
- import { ActionIcon as ActionIcon5, Tooltip as Tooltip3 } from "@mantine/core";
1216
+ import { ActionIcon as ActionIcon5, Tooltip as Tooltip4 } from "@mantine/core";
1215
1217
  import { IconDownload as IconDownload3 } from "@tabler/icons-react";
1216
1218
  import { jsx as jsx21 } from "react/jsx-runtime";
1217
1219
  function MyActionIconDownloadPDF({ pdfLink = "https://datafiles.chinhphu.vn/cpp/files/vbpq/2021/07/17-bgd.signed.pdf" }) {
1218
- return /* @__PURE__ */ jsx21(Tooltip3, { label: "Nh\u1EA5p \u0111\u1EC3 t\u1EA3i xu\u1ED1ng", children: /* @__PURE__ */ jsx21(ActionIcon5, { onClick: async () => await utils_pdf_download(pdfLink), color: "red", children: /* @__PURE__ */ jsx21(IconDownload3, {}) }) });
1220
+ return /* @__PURE__ */ jsx21(Tooltip4, { label: "Nh\u1EA5p \u0111\u1EC3 t\u1EA3i xu\u1ED1ng", children: /* @__PURE__ */ jsx21(ActionIcon5, { onClick: async () => await utils_pdf_download(pdfLink), color: "red", children: /* @__PURE__ */ jsx21(IconDownload3, {}) }) });
1219
1221
  }
1220
1222
 
1221
1223
  // src/components/ActionIcons/ActionIconUpload/MyActionIconUpload.tsx
@@ -1240,7 +1242,7 @@ function MyActionIconUpload() {
1240
1242
  }
1241
1243
 
1242
1244
  // src/components/ActionIcons/ActionIconViewPdf/MyActionIconViewPDF.tsx
1243
- import { ActionIcon as ActionIcon7, Group as Group2, Modal as Modal4, Paper, Text as Text3, Tooltip as Tooltip4 } from "@mantine/core";
1245
+ import { ActionIcon as ActionIcon7, Group as Group2, Modal as Modal4, Paper, Text as Text3, Tooltip as Tooltip5 } from "@mantine/core";
1244
1246
  import { useDisclosure as useDisclosure5 } from "@mantine/hooks";
1245
1247
  import { IconLivePhoto as IconLivePhoto2, IconMaximize, IconMinimize } from "@tabler/icons-react";
1246
1248
  import { useState as useState4 } from "react";
@@ -1257,7 +1259,7 @@ function MyActionIconViewPDF(_a) {
1257
1259
  const fullScreen = useState4(false);
1258
1260
  const hSize = useState4("80vh");
1259
1261
  return /* @__PURE__ */ jsxs10(Fragment7, { children: [
1260
- /* @__PURE__ */ jsx23(Tooltip4, { label: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp", children: /* @__PURE__ */ jsx23(ActionIcon7, __spreadProps(__spreadValues({ color: "cyan", onClick: disc[1].open }, rest), { children: /* @__PURE__ */ jsx23(IconLivePhoto2, {}) })) }),
1262
+ /* @__PURE__ */ jsx23(Tooltip5, { label: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp", children: /* @__PURE__ */ jsx23(ActionIcon7, __spreadProps(__spreadValues({ color: "cyan", onClick: disc[1].open }, rest), { children: /* @__PURE__ */ jsx23(IconLivePhoto2, {}) })) }),
1261
1263
  /* @__PURE__ */ jsx23(
1262
1264
  Modal4,
1263
1265
  {
@@ -2648,7 +2650,7 @@ import {
2648
2650
  Modal as Modal11,
2649
2651
  Paper as Paper3,
2650
2652
  Text as Text7,
2651
- Tooltip as Tooltip5
2653
+ Tooltip as Tooltip6
2652
2654
  } from "@mantine/core";
2653
2655
  import { useDisclosure as useDisclosure11 } from "@mantine/hooks";
2654
2656
  import { IconLivePhoto as IconLivePhoto3, IconMaximize as IconMaximize3, IconMinimize as IconMinimize3 } from "@tabler/icons-react";
@@ -2705,7 +2707,7 @@ function MyButtonViewPDF({
2705
2707
  }
2706
2708
  }, [opened]);
2707
2709
  return /* @__PURE__ */ jsxs24(Fragment14, { children: [
2708
- /* @__PURE__ */ jsx43(Tooltip5, { label: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp", children: isActionIcon ? /* @__PURE__ */ jsx43(ActionIcon10, { onClick: open, children: /* @__PURE__ */ jsx43(IconLivePhoto3, {}) }) : /* @__PURE__ */ jsx43(Button12, { color: "cyan", onClick: open, leftSection: /* @__PURE__ */ jsx43(IconLivePhoto3, {}), children: label }) }),
2710
+ /* @__PURE__ */ jsx43(Tooltip6, { label: "Xem t\xE0i li\u1EC7u tr\u1EF1c ti\u1EBFp", children: isActionIcon ? /* @__PURE__ */ jsx43(ActionIcon10, { onClick: open, children: /* @__PURE__ */ jsx43(IconLivePhoto3, {}) }) : /* @__PURE__ */ jsx43(Button12, { color: "cyan", onClick: open, leftSection: /* @__PURE__ */ jsx43(IconLivePhoto3, {}), children: label }) }),
2709
2711
  /* @__PURE__ */ jsx43(
2710
2712
  Modal11,
2711
2713
  {
@@ -8195,7 +8197,7 @@ import {
8195
8197
  Image as Image4,
8196
8198
  ScrollArea as ScrollArea4,
8197
8199
  Text as Text22,
8198
- Tooltip as Tooltip6
8200
+ Tooltip as Tooltip7
8199
8201
  } from "@mantine/core";
8200
8202
  import { useFavicon, useMediaQuery } from "@mantine/hooks";
8201
8203
  import {
@@ -9566,13 +9568,13 @@ import { useEffect as useEffect15, useState as useState14 } from "react";
9566
9568
 
9567
9569
  // src/module/Permission/usecase/UseCase_PermissionViewCheckTable.tsx
9568
9570
  import { Center as Center6, Checkbox as Checkbox4, Flex as Flex6, Paper as Paper8, ScrollArea as ScrollArea3, Skeleton, Stack as Stack4, Table as Table4, Text as Text16 } from "@mantine/core";
9569
- import { IconEye as IconEye2, IconFileExport as IconFileExport3, IconPencil as IconPencil3, IconPlus as IconPlus8, IconPrinter as IconPrinter6, IconTrash as IconTrash7 } from "@tabler/icons-react";
9571
+ import { IconEye as IconEye3, IconFileExport as IconFileExport3, IconPencil as IconPencil2, IconPlus as IconPlus8, IconPrinter as IconPrinter6, IconTrash as IconTrash7 } from "@tabler/icons-react";
9570
9572
  import React2 from "react";
9571
9573
  import { jsx as jsx73, jsxs as jsxs41 } from "react/jsx-runtime";
9572
9574
  var actionType = [
9573
- { text: "Xem", icon: /* @__PURE__ */ jsx73(IconEye2, {}), iconColor: "gray" },
9575
+ { text: "Xem", icon: /* @__PURE__ */ jsx73(IconEye3, {}), iconColor: "gray" },
9574
9576
  { text: "Th\xEAm", icon: /* @__PURE__ */ jsx73(IconPlus8, {}), iconColor: "blue" },
9575
- { text: "S\u1EEDa", icon: /* @__PURE__ */ jsx73(IconPencil3, {}), iconColor: "yellow" },
9577
+ { text: "S\u1EEDa", icon: /* @__PURE__ */ jsx73(IconPencil2, {}), iconColor: "yellow" },
9576
9578
  { text: "X\xF3a", icon: /* @__PURE__ */ jsx73(IconTrash7, {}), iconColor: "red" },
9577
9579
  { text: "In", icon: /* @__PURE__ */ jsx73(IconPrinter6, {}), iconColor: "cyan" },
9578
9580
  { text: "Xu\u1EA5t", icon: /* @__PURE__ */ jsx73(IconFileExport3, {}), iconColor: "green" }
@@ -17191,10 +17193,10 @@ function BasicAppShell({ children, menu, extraTopRight, title, logoutRedirect, i
17191
17193
  const canAccess = isDev || isAccessible || permissionStore.state.isSuperAdmin;
17192
17194
  const renderHeader = () => /* @__PURE__ */ jsx216(AppShell.Header, { children: media ? /* @__PURE__ */ jsxs125(Group33, { h: "100%", px: "md", justify: "space-between", children: [
17193
17195
  /* @__PURE__ */ jsxs125(Group33, { h: "100%", children: [
17194
- /* @__PURE__ */ jsx216(Tooltip6, { label: appShellStore.state.opened ? "\u1EA8n thanh menu" : "Hi\u1EC7n thanh menu", children: /* @__PURE__ */ jsx216(ActionIcon11, { variant: "default", size: "lg", radius: "md", onClick: appShellStore.toggle, children: appShellStore.state.opened ? /* @__PURE__ */ jsx216(IconLayoutSidebarLeftExpand, {}) : /* @__PURE__ */ jsx216(IconLayoutSidebarLeftCollapse, {}) }) }),
17195
- /* @__PURE__ */ jsx216(Tooltip6, { label: "\u0110\xF3ng t\u1EA5t c\u1EA3 menu", children: /* @__PURE__ */ jsx216(ActionIcon11, { variant: "default", size: "lg", radius: "md", onClick: appShellStore.clearGroupMenuOpenId, children: /* @__PURE__ */ jsx216(IconLibraryMinus, {}) }) })
17196
+ /* @__PURE__ */ jsx216(Tooltip7, { label: appShellStore.state.opened ? "\u1EA8n thanh menu" : "Hi\u1EC7n thanh menu", children: /* @__PURE__ */ jsx216(ActionIcon11, { variant: "default", size: "lg", radius: "md", onClick: appShellStore.toggle, children: appShellStore.state.opened ? /* @__PURE__ */ jsx216(IconLayoutSidebarLeftExpand, {}) : /* @__PURE__ */ jsx216(IconLayoutSidebarLeftCollapse, {}) }) }),
17197
+ /* @__PURE__ */ jsx216(Tooltip7, { label: "\u0110\xF3ng t\u1EA5t c\u1EA3 menu", children: /* @__PURE__ */ jsx216(ActionIcon11, { variant: "default", size: "lg", radius: "md", onClick: appShellStore.clearGroupMenuOpenId, children: /* @__PURE__ */ jsx216(IconLibraryMinus, {}) }) })
17196
17198
  ] }),
17197
- /* @__PURE__ */ jsx216(Tooltip6, { label: title || `${appShellStore.state.moduleCode} - ${appShellStore.state.moduleName}`, children: /* @__PURE__ */ jsx216(Group33, { style: { position: "absolute", left: "50%", transform: "translateX(-50%)" }, children: /* @__PURE__ */ jsx216(Text22, { c: "green", fw: "bold", size: "sm", children: title || `${appShellStore.state.moduleCode} - ${appShellStore.state.moduleName}` }) }) }),
17199
+ /* @__PURE__ */ jsx216(Tooltip7, { label: title || `${appShellStore.state.moduleCode} - ${appShellStore.state.moduleName}`, children: /* @__PURE__ */ jsx216(Group33, { style: { position: "absolute", left: "50%", transform: "translateX(-50%)" }, children: /* @__PURE__ */ jsx216(Text22, { c: "green", fw: "bold", size: "sm", children: title || `${appShellStore.state.moduleCode} - ${appShellStore.state.moduleName}` }) }) }),
17198
17200
  /* @__PURE__ */ jsxs125(Group33, { children: [
17199
17201
  extraTopRight,
17200
17202
  /* @__PURE__ */ jsx216(CustomSwitchTheme, {}),
@@ -17203,7 +17205,7 @@ function BasicAppShell({ children, menu, extraTopRight, title, logoutRedirect, i
17203
17205
  ] }) : /* @__PURE__ */ jsxs125(Group33, { h: "100%", px: "md", justify: "space-between", children: [
17204
17206
  /* @__PURE__ */ jsx216(ActionIcon11, { variant: "default", size: "lg", radius: "md", onClick: appShellStore.toggle, children: appShellStore.state.opened ? /* @__PURE__ */ jsx216(IconLayoutSidebarLeftExpand, {}) : /* @__PURE__ */ jsx216(IconLayoutSidebarLeftCollapse, {}) }),
17205
17207
  /* @__PURE__ */ jsx216(
17206
- Tooltip6,
17208
+ Tooltip7,
17207
17209
  {
17208
17210
  label: title || `${appShellStore.state.moduleCode} - ${appShellStore.state.moduleName}`,
17209
17211
  withArrow: true,
@@ -17425,7 +17427,7 @@ var service_aq = __spreadProps(__spreadValues({}, createBaseApi(CONTROLLER12, ba
17425
17427
  });
17426
17428
 
17427
17429
  // src/components/Layouts/PageContent/MyPageContent.tsx
17428
- import { Badge as Badge7, Breadcrumbs, Center as Center13, Container as Container3, Divider as Divider5, Flex as Flex10, Group as Group35, Stack as Stack11, Text as Text24, Title as Title4, Tooltip as Tooltip7 } from "@mantine/core";
17430
+ import { Badge as Badge7, Breadcrumbs, Center as Center13, Container as Container3, Divider as Divider5, Flex as Flex10, Group as Group35, Stack as Stack11, Text as Text24, Title as Title4, Tooltip as Tooltip8 } from "@mantine/core";
17429
17431
  import { useClipboard, useDisclosure as useDisclosure18 } from "@mantine/hooks";
17430
17432
  import { notifications as notifications8 } from "@mantine/notifications";
17431
17433
  import { IconBrandParsinta } from "@tabler/icons-react";
@@ -17524,7 +17526,7 @@ function MyPageContent({
17524
17526
  note: basicAppShellStore.state.note
17525
17527
  }
17526
17528
  ),
17527
- /* @__PURE__ */ jsx219(Tooltip7, { label: "Xem video h\u01B0\u1EDBng d\u1EABn", children: /* @__PURE__ */ jsx219(
17529
+ /* @__PURE__ */ jsx219(Tooltip8, { label: "Xem video h\u01B0\u1EDBng d\u1EABn", children: /* @__PURE__ */ jsx219(
17528
17530
  MyButtonModal,
17529
17531
  {
17530
17532
  isActionIcon: true,
@@ -46,52 +46,6 @@ var utils_currency = {
46
46
  }
47
47
  };
48
48
 
49
- // src/utils-v2/utils_date.ts
50
- var utils_date = {
51
- toDDMMYYYY(date) {
52
- const parsedDate = typeof date === "string" ? new Date(date) : date;
53
- if (!(parsedDate instanceof Date) || isNaN(parsedDate.getTime())) return "";
54
- const day = String(parsedDate.getDate()).padStart(2, "0");
55
- const month = String(parsedDate.getMonth() + 1).padStart(2, "0");
56
- const year = parsedDate.getFullYear();
57
- return `${day}/${month}/${year}`;
58
- },
59
- toMMYYYY(date) {
60
- const parsedDate = typeof date === "string" ? new Date(date) : date;
61
- if (!(parsedDate instanceof Date) || isNaN(parsedDate.getTime())) return "";
62
- const month = String(parsedDate.getMonth() + 1).padStart(2, "0");
63
- const year = parsedDate.getFullYear();
64
- return `${month}/${year}`;
65
- },
66
- toHHmm(date) {
67
- if (!(date instanceof Date) || isNaN(date.getTime())) return "";
68
- const hour = String(date.getHours()).padStart(2, "0");
69
- const minute = String(date.getMinutes()).padStart(2, "0");
70
- return `${hour}:${minute}`;
71
- },
72
- toDateTime(date, WithSeconds) {
73
- const parsedDate = typeof date === "string" ? new Date(date) : date;
74
- if (!(parsedDate instanceof Date) || isNaN(parsedDate.getTime())) return "";
75
- const day = String(parsedDate.getDate()).padStart(2, "0");
76
- const month = String(parsedDate.getMonth() + 1).padStart(2, "0");
77
- const year = parsedDate.getFullYear();
78
- const hours = String(parsedDate.getHours()).padStart(2, "0");
79
- const minutes = String(parsedDate.getMinutes()).padStart(2, "0");
80
- const seconds = String(parsedDate.getSeconds()).padStart(2, "0");
81
- return `${day}/${month}/${year} - ${hours}:${minutes}${WithSeconds && `:${seconds}`}`;
82
- },
83
- toDateTimeStartEnd(startDate, endDate) {
84
- const startday = String(startDate.getDate()).padStart(2, "0");
85
- const startmonth = String(startDate.getMonth() + 1).padStart(2, "0");
86
- const startyear = startDate.getFullYear();
87
- const starthour = String(startDate.getHours()).padStart(2, "0");
88
- const startminute = String(startDate.getMinutes()).padStart(2, "0");
89
- const endhour = String(endDate.getHours()).padStart(2, "0");
90
- const endminuate = String(endDate.getMinutes()).padStart(2, "0");
91
- return `${startday}/${startmonth}/${startyear} [${starthour}:${startminute} - ${endhour}:${endminuate}]`;
92
- }
93
- };
94
-
95
49
  // src/utils-v2/utils_excel.ts
96
50
  import dayjs from "dayjs";
97
51
  import customParseFormat from "dayjs/plugin/customParseFormat";
@@ -315,15 +269,130 @@ var utils_time = {
315
269
  }
316
270
  };
317
271
 
272
+ // src/utils-v2/utils_date/demo.tsx
273
+ import { Paper } from "@mantine/core";
274
+ import { useState } from "react";
275
+
276
+ // src/utils-v2/utils_date/utils_date.ts
277
+ var utils_date = {
278
+ toDDMMYYYY(date) {
279
+ const parsedDate = typeof date === "string" ? new Date(date) : date;
280
+ if (!(parsedDate instanceof Date) || isNaN(parsedDate.getTime())) return "";
281
+ const day = String(parsedDate.getDate()).padStart(2, "0");
282
+ const month = String(parsedDate.getMonth() + 1).padStart(2, "0");
283
+ const year = parsedDate.getFullYear();
284
+ return `${day}/${month}/${year}`;
285
+ },
286
+ toMMYYYY(date) {
287
+ const parsedDate = typeof date === "string" ? new Date(date) : date;
288
+ if (!(parsedDate instanceof Date) || isNaN(parsedDate.getTime())) return "";
289
+ const month = String(parsedDate.getMonth() + 1).padStart(2, "0");
290
+ const year = parsedDate.getFullYear();
291
+ return `${month}/${year}`;
292
+ },
293
+ toHHmm(date) {
294
+ if (!(date instanceof Date) || isNaN(date.getTime())) return "";
295
+ const hour = String(date.getHours()).padStart(2, "0");
296
+ const minute = String(date.getMinutes()).padStart(2, "0");
297
+ return `${hour}:${minute}`;
298
+ },
299
+ toDateTime(date, WithSeconds) {
300
+ const parsedDate = typeof date === "string" ? new Date(date) : date;
301
+ if (!(parsedDate instanceof Date) || isNaN(parsedDate.getTime())) return "";
302
+ const day = String(parsedDate.getDate()).padStart(2, "0");
303
+ const month = String(parsedDate.getMonth() + 1).padStart(2, "0");
304
+ const year = parsedDate.getFullYear();
305
+ const hours = String(parsedDate.getHours()).padStart(2, "0");
306
+ const minutes = String(parsedDate.getMinutes()).padStart(2, "0");
307
+ const seconds = String(parsedDate.getSeconds()).padStart(2, "0");
308
+ return `${day}/${month}/${year} - ${hours}:${minutes}${WithSeconds && `:${seconds}`}`;
309
+ },
310
+ toDateTimeStartEnd(startDate, endDate) {
311
+ const startday = String(startDate.getDate()).padStart(2, "0");
312
+ const startmonth = String(startDate.getMonth() + 1).padStart(2, "0");
313
+ const startyear = startDate.getFullYear();
314
+ const starthour = String(startDate.getHours()).padStart(2, "0");
315
+ const startminute = String(startDate.getMinutes()).padStart(2, "0");
316
+ const endhour = String(endDate.getHours()).padStart(2, "0");
317
+ const endminuate = String(endDate.getMinutes()).padStart(2, "0");
318
+ return `${startday}/${startmonth}/${startyear} [${starthour}:${startminute} - ${endhour}:${endminuate}]`;
319
+ }
320
+ };
321
+
322
+ // src/utils-v2/utils_date/demo.tsx
323
+ import { jsx, jsxs } from "react/jsx-runtime";
324
+ var demo = () => {
325
+ const [input, setInput] = useState((/* @__PURE__ */ new Date()).toISOString());
326
+ const parsedDate = new Date(input);
327
+ return /* @__PURE__ */ jsxs(Paper, { style: { padding: 16, fontFamily: "monospace", maxWidth: 500 }, children: [
328
+ /* @__PURE__ */ jsxs("label", { style: { display: "block", marginBottom: 8 }, children: [
329
+ "Nh\u1EADp ng\xE0y (ISO string ho\u1EB7c yyyy-mm-dd):",
330
+ " "
331
+ ] }),
332
+ /* @__PURE__ */ jsx(
333
+ "input",
334
+ {
335
+ type: "text",
336
+ value: input,
337
+ onChange: (e) => setInput(e.target.value),
338
+ style: {
339
+ width: "100%",
340
+ padding: 8,
341
+ marginBottom: 16,
342
+ border: "1px solid #ccc",
343
+ borderRadius: 4
344
+ }
345
+ }
346
+ ),
347
+ isNaN(parsedDate.getTime()) ? /* @__PURE__ */ jsx("p", { style: { color: "red" }, children: "\u274C Ng\xE0y kh\xF4ng h\u1EE3p l\u1EC7" }) : /* @__PURE__ */ jsxs("div", { children: [
348
+ /* @__PURE__ */ jsxs("p", { children: [
349
+ /* @__PURE__ */ jsx("strong", { children: "Input Date:" }),
350
+ " ",
351
+ parsedDate.toString()
352
+ ] }),
353
+ /* @__PURE__ */ jsxs("p", { children: [
354
+ /* @__PURE__ */ jsx("strong", { children: "toDDMMYYYY:" }),
355
+ " ",
356
+ utils_date.toDDMMYYYY(parsedDate)
357
+ ] }),
358
+ /* @__PURE__ */ jsxs("p", { children: [
359
+ /* @__PURE__ */ jsx("strong", { children: "toMMYYYY:" }),
360
+ " ",
361
+ utils_date.toMMYYYY(parsedDate)
362
+ ] }),
363
+ /* @__PURE__ */ jsxs("p", { children: [
364
+ /* @__PURE__ */ jsx("strong", { children: "toHHmm:" }),
365
+ " ",
366
+ utils_date.toHHmm(parsedDate)
367
+ ] }),
368
+ /* @__PURE__ */ jsxs("p", { children: [
369
+ /* @__PURE__ */ jsx("strong", { children: "toDateTime:" }),
370
+ " ",
371
+ utils_date.toDateTime(parsedDate, true)
372
+ ] }),
373
+ /* @__PURE__ */ jsxs("p", { children: [
374
+ /* @__PURE__ */ jsx("strong", { children: "toDateTimeStartEnd:" }),
375
+ " ",
376
+ utils_date.toDateTimeStartEnd(
377
+ parsedDate,
378
+ new Date(parsedDate.getTime() + 2 * 60 * 60 * 1e3)
379
+ // cộng thêm 2h
380
+ )
381
+ ] })
382
+ ] })
383
+ ] });
384
+ };
385
+
318
386
  export {
319
387
  utils_file,
320
388
  utils_build,
321
389
  utils_converter,
322
390
  utils_currency,
323
- utils_date,
324
391
  utils_excel,
325
392
  normalizeDate,
326
393
  utils_mantineReactTable,
327
394
  utils_text,
328
- utils_time
395
+ utils_time,
396
+ utils_date,
397
+ demo
329
398
  };
@@ -8,8 +8,8 @@ import { type_mantineSize } from '../types/index.mjs';
8
8
  import { useDisclosure, useListState } from '@mantine/hooks';
9
9
  import { UseFormReturnType, useForm } from '@mantine/form';
10
10
  import { I as I_BasicAppShell_LinkItem, B as BasicAppShellProps } from '../types-km2g-xx5.mjs';
11
- import { d as MyButtonModal$1 } from '../MyDataTable-Doa_T88Z.mjs';
12
- export { h as MyDataTable, g as MyDataTableInternalProps, c as MyDataTableProps, P as PaginationState } from '../MyDataTable-Doa_T88Z.mjs';
11
+ import { d as MyButtonModal$1 } from '../MyDataTable-CThYCmt0.mjs';
12
+ export { h as MyDataTable, g as MyDataTableInternalProps, c as MyDataTableProps, P as PaginationState } from '../MyDataTable-CThYCmt0.mjs';
13
13
  import { I as IUtils_Excel_ColumnConfig } from '../utils_excel-BfUQ3dS3.mjs';
14
14
  import { MRT_ColumnDef, MRT_RowData, MRT_TableOptions, MRT_TableInstance } from 'mantine-react-table';
15
15
  import { DateInputProps } from '@mantine/dates';
@@ -68,13 +68,13 @@ import {
68
68
  useHeaderMegaMenuStore,
69
69
  useS_ButtonImport,
70
70
  useStore_BasicAppShell
71
- } from "../chunk-DJG24DWZ.mjs";
72
- import "../chunk-KGBXMHKR.mjs";
71
+ } from "../chunk-Q3M6GQ26.mjs";
73
72
  import "../chunk-BJAYNNOF.mjs";
74
- import "../chunk-PBI7RFUT.mjs";
73
+ import "../chunk-KGBXMHKR.mjs";
74
+ import "../chunk-XAQLBGVI.mjs";
75
75
  import "../chunk-YGWSHSTG.mjs";
76
- import "../chunk-K6S7R6LU.mjs";
77
76
  import "../chunk-SPG47QW7.mjs";
77
+ import "../chunk-K6S7R6LU.mjs";
78
78
  import "../chunk-G2IMUVMM.mjs";
79
79
  import "../chunk-WZ6PXGGC.mjs";
80
80
  import "../chunk-YWANA62C.mjs";
@@ -5,8 +5,8 @@ import { UseFormReturnType } from '@mantine/form';
5
5
  import { AxiosResponse } from 'axios';
6
6
  import { M as MyApiResponse, a as MyReactMutationProps } from '../useMyReactMutation-D8XdiELk.mjs';
7
7
  import { ModalProps, ScrollAreaAutosizeProps, TooltipProps, ButtonProps, BadgeProps, TextProps, PaperProps, GroupProps, ThemeIconProps, AutocompleteProps, NumberInputProps, TextInputProps, FileInputProps, InputWrapperProps, FlexProps } from '@mantine/core';
8
- import { M as MyActionIconProps, a as MyButtonProps, b as MyButtonModalProps, c as MyDataTableProps } from '../MyDataTable-Doa_T88Z.mjs';
9
- export { e as MyActionIcon, f as MyButton, d as MyButtonModal } from '../MyDataTable-Doa_T88Z.mjs';
8
+ import { M as MyActionIconProps, a as MyButtonProps, b as MyButtonModalProps, c as MyDataTableProps } from '../MyDataTable-CThYCmt0.mjs';
9
+ export { e as MyActionIcon, f as MyButton, d as MyButtonModal } from '../MyDataTable-CThYCmt0.mjs';
10
10
  import { UseReactToPrintOptions } from 'react-to-print';
11
11
  import { I as IAQFileDetail } from '../utils_file-JlhzjLGS.mjs';
12
12
  import { TablerIcon } from '@tabler/icons-react';
@@ -31,13 +31,13 @@ import {
31
31
  MyStatsCard,
32
32
  MyTextInput2 as MyTextInput,
33
33
  MyWeeklySessionSchedulerPicker
34
- } from "../chunk-DJG24DWZ.mjs";
35
- import "../chunk-KGBXMHKR.mjs";
34
+ } from "../chunk-Q3M6GQ26.mjs";
36
35
  import "../chunk-BJAYNNOF.mjs";
37
- import "../chunk-PBI7RFUT.mjs";
36
+ import "../chunk-KGBXMHKR.mjs";
37
+ import "../chunk-XAQLBGVI.mjs";
38
38
  import "../chunk-YGWSHSTG.mjs";
39
- import "../chunk-K6S7R6LU.mjs";
40
39
  import "../chunk-SPG47QW7.mjs";
40
+ import "../chunk-K6S7R6LU.mjs";
41
41
  import "../chunk-G2IMUVMM.mjs";
42
42
  import "../chunk-WZ6PXGGC.mjs";
43
43
  import "../chunk-YWANA62C.mjs";
@@ -102,13 +102,13 @@ import {
102
102
  MailTemplateDeleteButton,
103
103
  useS_moduleConfig,
104
104
  useStore_Authenticate
105
- } from "../chunk-DJG24DWZ.mjs";
106
- import "../chunk-KGBXMHKR.mjs";
105
+ } from "../chunk-Q3M6GQ26.mjs";
107
106
  import "../chunk-BJAYNNOF.mjs";
108
- import "../chunk-PBI7RFUT.mjs";
107
+ import "../chunk-KGBXMHKR.mjs";
108
+ import "../chunk-XAQLBGVI.mjs";
109
109
  import "../chunk-YGWSHSTG.mjs";
110
- import "../chunk-K6S7R6LU.mjs";
111
110
  import "../chunk-SPG47QW7.mjs";
111
+ import "../chunk-K6S7R6LU.mjs";
112
112
  import "../chunk-G2IMUVMM.mjs";
113
113
  import "../chunk-WZ6PXGGC.mjs";
114
114
  import "../chunk-YWANA62C.mjs";
@@ -4,15 +4,15 @@ import {
4
4
  } from "../chunk-RGUQWALX.mjs";
5
5
  import {
6
6
  MySelect
7
- } from "../chunk-DJG24DWZ.mjs";
8
- import "../chunk-KGBXMHKR.mjs";
7
+ } from "../chunk-Q3M6GQ26.mjs";
9
8
  import "../chunk-BJAYNNOF.mjs";
9
+ import "../chunk-KGBXMHKR.mjs";
10
10
  import {
11
11
  utils_converter
12
- } from "../chunk-PBI7RFUT.mjs";
12
+ } from "../chunk-XAQLBGVI.mjs";
13
13
  import "../chunk-YGWSHSTG.mjs";
14
- import "../chunk-K6S7R6LU.mjs";
15
14
  import "../chunk-SPG47QW7.mjs";
15
+ import "../chunk-K6S7R6LU.mjs";
16
16
  import "../chunk-G2IMUVMM.mjs";
17
17
  import "../chunk-WZ6PXGGC.mjs";
18
18
  import "../chunk-YWANA62C.mjs";
@@ -1,6 +1,7 @@
1
1
  import { ComboboxData } from '@mantine/core';
2
2
  import { Workbook } from 'exceljs';
3
3
  import { MRT_RowData, MRT_ColumnDef } from 'mantine-react-table';
4
+ import react__default from 'react';
4
5
 
5
6
  declare const utils_build: {
6
7
  createEnumKeyMap<T extends Record<string, number | string>>(enumObj: T): Record<Extract<T[keyof T], number>, keyof T>;
@@ -20,14 +21,6 @@ declare const utils_currency: {
20
21
  formatWithSuffix(amount?: number, suffix?: string): string;
21
22
  };
22
23
 
23
- declare const utils_date: {
24
- toDDMMYYYY(date?: Date | string): string;
25
- toMMYYYY(date?: Date | string): string;
26
- toHHmm(date: Date): string;
27
- toDateTime(date?: Date | string, WithSeconds?: boolean): string;
28
- toDateTimeStartEnd(startDate: Date, endDate: Date): string;
29
- };
30
-
31
24
  interface IExcelColumnConfig<T> {
32
25
  fieldKey: keyof T | (string & {});
33
26
  fieldName: string;
@@ -71,4 +64,14 @@ declare const utils_time: {
71
64
  getCurrentTime(): string;
72
65
  };
73
66
 
74
- export { type IExcelColumnConfig, normalizeDate, utils_build, utils_converter, utils_currency, utils_date, utils_excel, utils_file, utils_mantineReactTable, utils_text, utils_time };
67
+ declare const demo: react__default.FC;
68
+
69
+ declare const utils_date: {
70
+ toDDMMYYYY(date?: Date | string): string;
71
+ toMMYYYY(date?: Date | string): string;
72
+ toHHmm(date: Date): string;
73
+ toDateTime(date?: Date | string, WithSeconds?: boolean): string;
74
+ toDateTimeStartEnd(startDate: Date, endDate: Date): string;
75
+ };
76
+
77
+ export { type IExcelColumnConfig, demo, normalizeDate, utils_build, utils_converter, utils_currency, utils_date, utils_excel, utils_file, utils_mantineReactTable, utils_text, utils_time };
@@ -1,4 +1,5 @@
1
1
  import {
2
+ demo,
2
3
  normalizeDate,
3
4
  utils_build,
4
5
  utils_converter,
@@ -9,9 +10,10 @@ import {
9
10
  utils_mantineReactTable,
10
11
  utils_text,
11
12
  utils_time
12
- } from "../chunk-PBI7RFUT.mjs";
13
+ } from "../chunk-XAQLBGVI.mjs";
13
14
  import "../chunk-JD6AELXS.mjs";
14
15
  export {
16
+ demo,
15
17
  normalizeDate,
16
18
  utils_build,
17
19
  utils_converter,
package/package.json CHANGED
@@ -54,7 +54,7 @@
54
54
  "types": "./dist/build-object/index.d.mts"
55
55
  }
56
56
  },
57
- "version": "0.1.975",
57
+ "version": "0.1.977",
58
58
  "private": false,
59
59
  "files": [
60
60
  "dist"