aq-fe-framework 0.1.155 → 0.1.156
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/apiFactory.ts +46 -0
- package/dist/api/baseAxios.ts +22 -0
- package/dist/app/admin/(core)/core12196/page.tsx +13 -0
- package/dist/app/admin/(core)/core16209/page.tsx +13 -0
- package/dist/app/admin/(core)/core18256/page.tsx +12 -0
- package/dist/app/admin/(core)/core26965/page.tsx +13 -0
- package/dist/app/admin/(core)/core27311/page.tsx +13 -0
- package/dist/app/admin/(core)/core38677/page.tsx +13 -0
- package/dist/app/admin/(core)/core40207/page.tsx +13 -0
- package/dist/app/admin/(core)/core60524/page.tsx +11 -0
- package/dist/app/admin/(core)/core64229/page.tsx +12 -0
- package/dist/app/admin/(core)/core71678/page.tsx +11 -0
- package/dist/app/admin/(core)/core76318/page.tsx +13 -0
- package/dist/app/admin/(core)/core83092/page.tsx +13 -0
- package/dist/app/admin/[...slug]/page.tsx +7 -0
- package/dist/app/admin/error.tsx +42 -0
- package/dist/app/admin/layout.tsx +21 -0
- package/dist/app/admin/test/page.tsx +44 -0
- package/dist/app/auth/login/page.tsx +14 -0
- package/dist/app/globals.css +59 -0
- package/dist/app/layout.tsx +39 -0
- package/dist/app/page.tsx +18 -0
- package/dist/{chunk-PAHZ57DT.mjs → chunk-JLT4BL7I.mjs} +1 -1
- package/dist/components/Aceternity/BoxesBackground/MyBoxes.tsx +66 -0
- package/dist/components/Aceternity/BoxesBackground/MyBoxesBackground.tsx +31 -0
- package/dist/components/ActionIcons/ActionIcon/MyActionIcon.tsx +47 -0
- package/dist/components/ActionIcons/ActionIconCRUD/MyActionIconDelete.tsx +81 -0
- package/dist/components/ActionIcons/ActionIconCRUD/MyActionIconUpdate.tsx +68 -0
- package/dist/components/ActionIcons/ActionIconCheck/MyActionIconCheck.tsx +50 -0
- package/dist/components/ActionIcons/ActionIconDownloadPDF/MyActionIconDownloadPDF.tsx +13 -0
- package/dist/components/ActionIcons/ActionIconModal/MyActionIconModal.tsx +113 -0
- package/dist/components/ActionIcons/ActionIconUpload/MyActionIconUpload.tsx +19 -0
- package/dist/components/ActionIcons/ActionIconViewPdf/MyActionIconViewPDF.tsx +63 -0
- package/dist/components/ActionIcons/SwitchTheme/MySwitchTheme.tsx +36 -0
- package/dist/components/AppSpotlight/MyAppSpotlight.tsx +112 -0
- package/dist/components/Buttons/Anchor/MyAnchorViewPDF.tsx +46 -0
- package/dist/components/Buttons/Button/MyButton.tsx +90 -0
- package/dist/components/Buttons/ButtonCRUD/AQButtonCreateByImportFile.tsx +81 -0
- package/dist/components/Buttons/ButtonCRUD/AQButtonExportData.tsx +75 -0
- package/dist/components/Buttons/ButtonCRUD/MyButtonCreate.tsx +68 -0
- package/dist/components/Buttons/ButtonImport/MyButtonImport.tsx +29 -0
- package/dist/components/Buttons/ButtonImport/SelectFieldModal.tsx +100 -0
- package/dist/components/Buttons/ButtonImport/SelectFileModal.tsx +81 -0
- package/dist/components/Buttons/ButtonImport/useS_ButtonImport.ts +196 -0
- package/dist/components/Buttons/ButtonModal/AQSelectTableByOpenModal.tsx +71 -0
- package/dist/components/Buttons/ButtonModal/MyButtonModal.tsx +117 -0
- package/dist/components/Buttons/ButtonPrintPDF/MyButtonPrintPDF.tsx +37 -0
- package/dist/components/Buttons/ButtonPrintPDFTable/MyButtonPrintTablePDF.tsx +174 -0
- package/dist/components/Buttons/ButtonRouterBack/MyButtonRouterBack.tsx +29 -0
- package/dist/components/Buttons/ButtonViewPDF/MyButtonViewPDF.tsx +121 -0
- package/dist/components/Calendar/MyCalendar.tsx +118 -0
- package/dist/components/CenterFull/MyCenterFull.tsx +10 -0
- package/dist/components/Checkbox/MyCheckbox.tsx +9 -0
- package/dist/components/Combobox/Select/MySelect.tsx +12 -0
- package/dist/components/DataDisplay/Card/AQCard.tsx +49 -0
- package/dist/components/DataDisplay/CardInformation/MyCardInformation.tsx +77 -0
- package/dist/components/DataDisplay/DataTable/MyDataTable.tsx +184 -0
- package/dist/components/DataDisplay/IconText/MyIconText.tsx +17 -0
- package/dist/components/DataDisplay/KeyLabel/MyKeyLabel.tsx +15 -0
- package/dist/components/DataDisplay/NumberFormatter/MyNumberFormatter.tsx +9 -0
- package/dist/components/DataDisplay/StatCard/AQStatCard1.tsx +68 -0
- package/dist/components/FaviconSetter/FaviconSetter.tsx +33 -0
- package/dist/components/Inputs/DateInput/MyDateInput.tsx +11 -0
- package/dist/components/Inputs/Fieldset/MyFieldset.tsx +32 -0
- package/dist/components/Inputs/FileInput/MyFileInput.tsx +12 -0
- package/dist/components/Inputs/NumberInput/MyNumberInput.tsx +12 -0
- package/dist/components/Inputs/TextArea/MyTextArea.tsx +11 -0
- package/dist/components/Inputs/TextEditor/MyTextEditor.tsx +191 -0
- package/dist/components/Inputs/TextInput/MyTextInput.tsx +30 -0
- package/dist/components/Layouts/BasicAppShell/BasicAppShell.tsx +357 -0
- package/dist/components/Layouts/BasicAppShell/css.module.css +62 -0
- package/dist/components/Layouts/BasicAppShell/useS_BasicAppShell.ts +64 -0
- package/dist/components/Layouts/Container/MyContainer.tsx +16 -0
- package/dist/components/Layouts/FlexColumn/MyFlexColumn.tsx +14 -0
- package/dist/components/Layouts/FlexEnd/MyFlexEnd.tsx +14 -0
- package/dist/components/Layouts/FlexRow/MyFlexRow.tsx +14 -0
- package/dist/components/Layouts/HeaderMegaMenu/HeaderMegaMenu.tsx +147 -0
- package/dist/components/Layouts/HeaderMegaMenu/HeaderMegaMenuStore.ts +19 -0
- package/dist/components/Layouts/HeaderMegaMenu/css.module.css +50 -0
- package/dist/components/Layouts/HtmlWrapper/MyHtmlWrapper.tsx +29 -0
- package/dist/components/Layouts/PageContent/MyPageContent.tsx +67 -0
- package/dist/components/Layouts/Tab/MyTab.tsx +33 -0
- package/dist/components/Loaders/MyCardioLoader.tsx +12 -0
- package/dist/components/RESTAPIComponents/DataTableSelect/MyDataTableSelect.tsx +61 -0
- package/dist/components/RESTAPIComponents/SelectAPIGet/MySelectAPIGet.tsx +37 -0
- package/dist/components/ScheduleX/MyScheduleX.tsx +58 -0
- package/dist/components/Skeletons/SkeletonTable/MySkeletonTable.tsx +9 -0
- package/dist/components/index.mjs +1 -1
- package/dist/components/index.ts +62 -0
- package/dist/constants/array/daysOfWeek.ts +9 -0
- package/dist/constants/enum/ENUM_EMAILCONFIG.ts +6 -0
- package/dist/constants/enum/global.ts +26 -0
- package/dist/constants/object/color.ts +5 -0
- package/dist/constants/object/documentTypes.ts +8 -0
- package/dist/{components/index.css → css.module-4ICLUKPO.module.css} +29 -16
- package/dist/css.module-P45UW6UZ.module.css +4 -0
- package/dist/data/menuData.ts +31 -0
- package/dist/hooks/custom-hooks/useC_MutationAction.tsx +36 -0
- package/dist/hooks/index.ts +2 -0
- package/dist/hooks/query/AQ/useQ_AQ_GetAQModule.ts +14 -0
- package/dist/interfaces/EmailConfig.ts +10 -0
- package/dist/interfaces/IAQModule.ts +21 -0
- package/dist/interfaces/base.ts +9 -0
- package/dist/interfaces/global-interface/IAQSSO.ts +15 -0
- package/dist/interfaces/global-interface/IAQSyncData.ts +9 -0
- package/dist/interfaces/global-interface/IAcademicYear.ts +12 -0
- package/dist/interfaces/global-interface/IChangePassWord.ts +8 -0
- package/dist/interfaces/global-interface/IComplaintProccess.ts +9 -0
- package/dist/interfaces/global-interface/ICreateAccount.ts +24 -0
- package/dist/interfaces/global-interface/IDocument.ts +25 -0
- package/dist/interfaces/global-interface/IDocumentAttribute.ts +12 -0
- package/dist/interfaces/global-interface/IEvent.ts +30 -0
- package/dist/interfaces/global-interface/IEventComplaint.ts +20 -0
- package/dist/interfaces/global-interface/IEventFillter.ts +14 -0
- package/dist/interfaces/global-interface/IFile.ts +8 -0
- package/dist/interfaces/global-interface/IImportStudentPaticipation.ts +8 -0
- package/dist/interfaces/global-interface/IPagePermission.ts +12 -0
- package/dist/interfaces/global-interface/IRolePermission.ts +7 -0
- package/dist/interfaces/global-interface/ISRMUserinfo.ts +35 -0
- package/dist/interfaces/global-interface/IScientificProfileProjectUser.ts +15 -0
- package/dist/interfaces/global-interface/IScientificProfileResearchGroup.ts +15 -0
- package/dist/interfaces/global-interface/IScientificProfileResearchGroupUser.ts +14 -0
- package/dist/interfaces/global-interface/IScientificProfileResearchProject.ts +21 -0
- package/dist/interfaces/global-interface/ISignIn.ts +7 -0
- package/dist/interfaces/global-interface/ISystemCatalogAcademicYear.ts +15 -0
- package/dist/interfaces/global-interface/ISystemCatalogDomainCategory.ts +11 -0
- package/dist/interfaces/global-interface/ISystemCatalogProjectLevelCategory.ts +11 -0
- package/dist/interfaces/global-interface/ISystemCatalogProjectTypeCategory.ts +11 -0
- package/dist/interfaces/global-interface/ISystemCatalogRoleActivity.ts +11 -0
- package/dist/interfaces/global-interface/ISystemCatalogTaskCategory.ts +11 -0
- package/dist/interfaces/global-interface/ISystemManagementAcademicHistory.ts +31 -0
- package/dist/interfaces/global-interface/ISystemManagementProfessionalWorkHistory.ts +14 -0
- package/dist/interfaces/global-interface/ISystemManagementPublishedScientificWork.ts +14 -0
- package/dist/interfaces/global-interface/ISystemManagementRoleGroup.ts +12 -0
- package/dist/interfaces/global-interface/ISystemManagementRoleGroupMenuPermission.ts +18 -0
- package/dist/interfaces/global-interface/ISystemManagementScientificResearchProject.ts +16 -0
- package/dist/interfaces/global-interface/ISystemManagementUserMenuPermission.ts +18 -0
- package/dist/interfaces/global-interface/IUpdateAccount.ts +15 -0
- package/dist/interfaces/global-interface/IUser.ts +21 -0
- package/dist/interfaces/global-interface/IUserPermission.ts +7 -0
- package/dist/lib/utils.ts +6 -0
- package/dist/modules-features/admin/core/MainDashboard/BarChart_CourseStatus.tsx +87 -0
- package/dist/modules-features/admin/core/MainDashboard/BarChart_ExamStatus.tsx +65 -0
- package/dist/modules-features/admin/core/MainDashboard/BarChart_RevenueByAcademicYear.tsx +82 -0
- package/dist/modules-features/admin/core/MainDashboard/BarChart_StudentStatusIn30Days.tsx +67 -0
- package/dist/modules-features/admin/core/MainDashboard/HBarChart_CourseDropOutPercentage.tsx +77 -0
- package/dist/modules-features/admin/core/MainDashboard/HBarChart_CourseProgressPercentage.tsx +77 -0
- package/dist/modules-features/admin/core/MainDashboard/LineChart_RevenueIn12Months.tsx +78 -0
- package/dist/modules-features/admin/core/MainDashboard/LineChart_TotalRevenueByDiscountIn3Months.tsx +69 -0
- package/dist/modules-features/admin/core/MainDashboard/LineChart_TotalRevenueByVoucherIn3Months.tsx +69 -0
- package/dist/modules-features/admin/core/MainDashboard/LineChart_TotalStudentIn12Months.tsx +64 -0
- package/dist/modules-features/admin/core/MainDashboard/ViewDiscountStat.tsx +311 -0
- package/dist/modules-features/admin/core/MainDashboard/ViewVoucherStat.tsx +311 -0
- package/dist/modules-features/admin/core/core12196/F_core12196.tsx +20 -0
- package/dist/modules-features/admin/core/core12196/F_core12196_Create.tsx +101 -0
- package/dist/modules-features/admin/core/core12196/F_core12196_Delete.tsx +19 -0
- package/dist/modules-features/admin/core/core12196/F_core12196_Read.tsx +165 -0
- package/dist/modules-features/admin/core/core12196/F_core12196_Update.tsx +112 -0
- package/dist/modules-features/admin/core/core16209/F_core16209.tsx +108 -0
- package/dist/modules-features/admin/core/core16209/F_core16209_Create.tsx +112 -0
- package/dist/modules-features/admin/core/core16209/F_core16209_Delete.tsx +17 -0
- package/dist/modules-features/admin/core/core16209/F_core16209_Update.tsx +114 -0
- package/dist/modules-features/admin/core/core18256/F_core18256.tsx +29 -0
- package/dist/modules-features/admin/core/core18256/F_core18256_Create.tsx +34 -0
- package/dist/modules-features/admin/core/core18256/F_core18256_Delete.tsx +14 -0
- package/dist/modules-features/admin/core/core18256/F_core18256_Read.tsx +59 -0
- package/dist/modules-features/admin/core/core18256/F_core18256_Select.tsx +40 -0
- package/dist/modules-features/admin/core/core18256/F_core18256_Update.tsx +22 -0
- package/dist/modules-features/admin/core/core26965/F_core26965.tsx +17 -0
- package/dist/modules-features/admin/core/core26965/F_core26965_Create.tsx +106 -0
- package/dist/modules-features/admin/core/core26965/F_core26965_Delete.tsx +19 -0
- package/dist/modules-features/admin/core/core26965/F_core26965_Read.tsx +165 -0
- package/dist/modules-features/admin/core/core26965/F_core26965_Update.tsx +112 -0
- package/dist/modules-features/admin/core/core27311/F_core27311.tsx +21 -0
- package/dist/modules-features/admin/core/core27311/F_core27311_Create.tsx +109 -0
- package/dist/modules-features/admin/core/core27311/F_core27311_Delete.tsx +19 -0
- package/dist/modules-features/admin/core/core27311/F_core27311_Read.tsx +165 -0
- package/dist/modules-features/admin/core/core27311/F_core27311_Update.tsx +113 -0
- package/dist/modules-features/admin/core/core35923/F_core35923.tsx +46 -0
- package/dist/modules-features/admin/core/core38677/F_core38677.tsx +28 -0
- package/dist/modules-features/admin/core/core38677/F_core38677_ReadUser.tsx +79 -0
- package/dist/modules-features/admin/core/core38677/F_core38677_Save.tsx +52 -0
- package/dist/modules-features/admin/core/core38677/F_core38677_ViewMenuPermissions.tsx +264 -0
- package/dist/modules-features/admin/core/core40207/F_core40207.tsx +9 -0
- package/dist/modules-features/admin/core/core40207/F_core40207_Create.tsx +81 -0
- package/dist/modules-features/admin/core/core40207/F_core40207_Delete.tsx +17 -0
- package/dist/modules-features/admin/core/core40207/F_core40207_Read.tsx +98 -0
- package/dist/modules-features/admin/core/core40207/F_core40207_Update.tsx +83 -0
- package/dist/modules-features/admin/core/core47643/F_core47643.tsx +10 -0
- package/dist/modules-features/admin/core/core47643/F_core47643_Delete.tsx +13 -0
- package/dist/modules-features/admin/core/core47643/F_core47643_Form.tsx +34 -0
- package/dist/modules-features/admin/core/core47643/F_core47643_Read.tsx +57 -0
- package/dist/modules-features/admin/core/core60524/F_core60524.tsx +13 -0
- package/dist/modules-features/admin/core/core60524/F_core60524_Form.tsx +111 -0
- package/dist/modules-features/admin/core/core60524/F_core60524_Save.tsx +56 -0
- package/dist/modules-features/admin/core/core60524/useS_core60524.ts +16 -0
- package/dist/modules-features/admin/core/core64229/F_core64229.tsx +7 -0
- package/dist/modules-features/admin/core/core64229/F_core64229_Delete.tsx +21 -0
- package/dist/modules-features/admin/core/core64229/F_core64229_Form.tsx +95 -0
- package/dist/modules-features/admin/core/core64229/F_core64229_Read.tsx +67 -0
- package/dist/modules-features/admin/core/core71678/F_core71678.tsx +8 -0
- package/dist/modules-features/admin/core/core71678/F_core71678_ChangePermission.tsx +117 -0
- package/dist/modules-features/admin/core/core71678/F_core71678_Create.tsx +61 -0
- package/dist/modules-features/admin/core/core71678/F_core71678_Delete.tsx +16 -0
- package/dist/modules-features/admin/core/core71678/F_core71678_Read.tsx +92 -0
- package/dist/modules-features/admin/core/core71678/F_core71678_Update.tsx +49 -0
- package/dist/modules-features/admin/core/core76318/F_core76318.tsx +9 -0
- package/dist/modules-features/admin/core/core76318/F_core76318_Create.tsx +89 -0
- package/dist/modules-features/admin/core/core76318/F_core76318_Delete.tsx +17 -0
- package/dist/modules-features/admin/core/core76318/F_core76318_Read.tsx +104 -0
- package/dist/modules-features/admin/core/core76318/F_core76318_Update.tsx +89 -0
- package/dist/modules-features/admin/core/core83092/F_core83092.tsx +27 -0
- package/dist/modules-features/admin/core/core83092/F_core83092_ReadUser.tsx +85 -0
- package/dist/modules-features/admin/core/core83092/F_core83092_Save.tsx +52 -0
- package/dist/modules-features/admin/core/core83092/F_core83092_ViewMenuPermissions.tsx +263 -0
- package/dist/modules-features/admin/core/core83092/useS_core83092.tsx +70 -0
- package/dist/modules-features/authenticate/F_authenticate_Login/F_authenticate_Login.tsx +154 -0
- package/dist/modules-features/authenticate/F_authenticate_Login/css.module.css +4 -0
- package/dist/modules-features/authenticate/F_authenticate_Logout.tsx +22 -0
- package/dist/modules-features/authenticate/F_authenticate_SplashPage.tsx +21 -0
- package/dist/modules-features/authenticate/useS_authenticate.ts +23 -0
- package/dist/modules-features/index.mjs +2 -2
- package/dist/modules-features/index.ts +79 -0
- package/dist/providers/MyMantineProvider.tsx +140 -0
- package/dist/providers/MyReactQueryProvider.tsx +24 -0
- package/dist/providers/Provider.tsx +13 -0
- package/dist/providers/mantine.module.css +21 -0
- package/dist/stores/CreateGenericStore.ts +23 -0
- package/dist/stores/index.ts +1 -0
- package/dist/types/types.ts +16 -0
- package/dist/utils/index.ts +9 -0
- package/dist/utils/utils_converter.ts +39 -0
- package/dist/utils/utils_currency.ts +5 -0
- package/dist/utils/utils_date.ts +34 -0
- package/dist/utils/utils_excel.ts +128 -0
- package/dist/utils/utils_file.ts +61 -0
- package/dist/utils/utils_notification.ts +46 -0
- package/dist/utils/utils_pdf.ts +21 -0
- package/dist/utils/utils_time.ts +15 -0
- package/dist/utils/utils_validateForm.ts +9 -0
- package/package.json +1 -1
- package/dist/modules-features/index.css +0 -100
@@ -0,0 +1,46 @@
|
|
1
|
+
type RestApiBase = {
|
2
|
+
base: string;
|
3
|
+
getAll: string;
|
4
|
+
get: string;
|
5
|
+
create: string;
|
6
|
+
update: string;
|
7
|
+
delete: string;
|
8
|
+
createOrUpdate: string;
|
9
|
+
};
|
10
|
+
|
11
|
+
export const createRestApi = <
|
12
|
+
T extends Record<string, string | ((...args: any[]) => string)> = {}
|
13
|
+
>(
|
14
|
+
basePath: string,
|
15
|
+
custom?: T
|
16
|
+
): RestApiBase & T => {
|
17
|
+
const base = `${basePath}`;
|
18
|
+
|
19
|
+
const defaultApi: RestApiBase = {
|
20
|
+
base,
|
21
|
+
getAll: `${base}/GetAll`,
|
22
|
+
get: `${base}/get`,
|
23
|
+
create: `${base}/create`,
|
24
|
+
update: `${base}/update`,
|
25
|
+
delete: `${base}/delete`,
|
26
|
+
createOrUpdate: `${base}/createOrUpdateList`,
|
27
|
+
};
|
28
|
+
|
29
|
+
const processedCustom = Object.entries(custom || {}).reduce(
|
30
|
+
(acc, [key, value]) => {
|
31
|
+
if (typeof value === "string") {
|
32
|
+
acc[key as keyof T] = `${base}/${value}` as T[keyof T];
|
33
|
+
} else if (typeof value === "function") {
|
34
|
+
acc[key as keyof T] = ((...args: any[]) =>
|
35
|
+
`${base}/${value(...args)}`) as T[keyof T];
|
36
|
+
}
|
37
|
+
return acc;
|
38
|
+
},
|
39
|
+
{} as T
|
40
|
+
);
|
41
|
+
|
42
|
+
return {
|
43
|
+
...defaultApi,
|
44
|
+
...processedCustom,
|
45
|
+
};
|
46
|
+
};
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import axios from "axios";
|
2
|
+
|
3
|
+
const baseAxios = axios.create({
|
4
|
+
baseURL: process.env.NEXT_PUBLIC_API,
|
5
|
+
});
|
6
|
+
|
7
|
+
baseAxios.interceptors.request.use(
|
8
|
+
(config) => {
|
9
|
+
const tokenData = localStorage.getItem("useS_authenticate");
|
10
|
+
const state = JSON.parse(tokenData!);
|
11
|
+
const token = state?.state?.state?.token;
|
12
|
+
if (token) {
|
13
|
+
config.headers.Authorization = `Bearer ${token}`; // thêm token vào header Authorization
|
14
|
+
}
|
15
|
+
return config;
|
16
|
+
},
|
17
|
+
(error) => {
|
18
|
+
return Promise.reject(error);
|
19
|
+
}
|
20
|
+
);
|
21
|
+
|
22
|
+
export default baseAxios;
|
@@ -0,0 +1,13 @@
|
|
1
|
+
"use client"
|
2
|
+
import { MyPageContent } from '@/components'
|
3
|
+
import { OBJECT_DOCUMENT_TYPES } from '@/constants/object/documentTypes'
|
4
|
+
import { F_core12196 } from '@/modules-features/admin/core/core12196/F_core12196'
|
5
|
+
import React from 'react'
|
6
|
+
|
7
|
+
export default function Page() {
|
8
|
+
return (
|
9
|
+
<MyPageContent>
|
10
|
+
<F_core12196 FormTypeId={OBJECT_DOCUMENT_TYPES.Form} />
|
11
|
+
</MyPageContent>
|
12
|
+
)
|
13
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
"use client"
|
2
|
+
import { MyPageContent } from '@/components'
|
3
|
+
import { OBJECT_DOCUMENT_TYPES } from '@/constants/object/documentTypes'
|
4
|
+
import { F_core16209 } from '@/modules-features'
|
5
|
+
import React from 'react'
|
6
|
+
|
7
|
+
export default function Page() {
|
8
|
+
return (
|
9
|
+
<MyPageContent>
|
10
|
+
<F_core16209 RefinementTypeId={OBJECT_DOCUMENT_TYPES.Refinement} />
|
11
|
+
</MyPageContent>
|
12
|
+
)
|
13
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
"use client"
|
2
|
+
import { MyPageContent } from '@/components'
|
3
|
+
import { OBJECT_DOCUMENT_TYPES } from '@/constants/object/documentTypes'
|
4
|
+
import { F_core26965 } from '@/modules-features'
|
5
|
+
import React from 'react'
|
6
|
+
|
7
|
+
export default function Page() {
|
8
|
+
return (
|
9
|
+
<MyPageContent>
|
10
|
+
<F_core26965 RegulationsTypeId={OBJECT_DOCUMENT_TYPES.Regulations} />
|
11
|
+
</MyPageContent>
|
12
|
+
)
|
13
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
"use client"
|
2
|
+
import { MyPageContent } from '@/components'
|
3
|
+
import { OBJECT_DOCUMENT_TYPES } from '@/constants/object/documentTypes'
|
4
|
+
import { F_core27311 } from '@/modules-features'
|
5
|
+
import React from 'react'
|
6
|
+
|
7
|
+
export default function Page() {
|
8
|
+
return (
|
9
|
+
<MyPageContent>
|
10
|
+
<F_core27311 WorkflowTypeId={OBJECT_DOCUMENT_TYPES.Workflow} />
|
11
|
+
</MyPageContent>
|
12
|
+
)
|
13
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
'use client'
|
2
|
+
import { MyPageContent } from '@/components'
|
3
|
+
import { menuData } from '@/data/menuData'
|
4
|
+
import { F_core38677 } from '@/modules-features/admin/core/core38677/F_core38677'
|
5
|
+
import React from 'react'
|
6
|
+
|
7
|
+
export default function Page() {
|
8
|
+
return (
|
9
|
+
<MyPageContent>
|
10
|
+
<F_core38677 menuData={menuData} />
|
11
|
+
</MyPageContent>
|
12
|
+
)
|
13
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
"use client"
|
2
|
+
import { MyPageContent } from '@/components'
|
3
|
+
import { OBJECT_DOCUMENT_TYPES } from '@/constants/object/documentTypes'
|
4
|
+
import { F_core40207 } from '@/modules-features'
|
5
|
+
import React from 'react'
|
6
|
+
|
7
|
+
export default function Page() {
|
8
|
+
return (
|
9
|
+
<MyPageContent>
|
10
|
+
<F_core40207 GuidelineTypeId={OBJECT_DOCUMENT_TYPES.Guideline} />
|
11
|
+
</MyPageContent>
|
12
|
+
)
|
13
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
'use client'
|
2
|
+
import { MyPageContent } from '@/components'
|
3
|
+
import { F_core60524 } from '@/modules-features/admin/core/core60524/F_core60524'
|
4
|
+
|
5
|
+
export default function Page() {
|
6
|
+
return (
|
7
|
+
<MyPageContent>
|
8
|
+
<F_core60524 AQModuleId={3} />
|
9
|
+
</MyPageContent>
|
10
|
+
)
|
11
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
"use client"
|
2
|
+
import { MyPageContent } from '@/components'
|
3
|
+
import { F_core64229, F_core64229_Form } from '@/modules-features'
|
4
|
+
import React from 'react'
|
5
|
+
|
6
|
+
export default function Page() {
|
7
|
+
return (
|
8
|
+
<MyPageContent>
|
9
|
+
<F_core64229 />
|
10
|
+
</MyPageContent>
|
11
|
+
)
|
12
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
'use client'
|
2
|
+
import { MyPageContent } from '@/components'
|
3
|
+
import { OBJECT_DOCUMENT_TYPES } from '@/constants/object/documentTypes'
|
4
|
+
import { F_core76318 } from '@/modules-features/admin/core/core76318/F_core76318'
|
5
|
+
import React from 'react'
|
6
|
+
|
7
|
+
export default function Page() {
|
8
|
+
return (
|
9
|
+
<MyPageContent>
|
10
|
+
<F_core76318 SecurityTypeId={OBJECT_DOCUMENT_TYPES.Security} />
|
11
|
+
</MyPageContent>
|
12
|
+
)
|
13
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
'use client'
|
2
|
+
import { MyPageContent } from '@/components'
|
3
|
+
import { menuData } from '@/data/menuData'
|
4
|
+
import { F_core83092 } from '@/modules-features'
|
5
|
+
import React from 'react'
|
6
|
+
|
7
|
+
export default function Page() {
|
8
|
+
return (
|
9
|
+
<MyPageContent>
|
10
|
+
<F_core83092 menuData={menuData} />
|
11
|
+
</MyPageContent>
|
12
|
+
)
|
13
|
+
}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
'use client' // Error components must be Client Components
|
2
|
+
|
3
|
+
import { MyFlexColumn } from '@/components'
|
4
|
+
import { OBJECT_COlORS } from '@/constants/object/color'
|
5
|
+
import { Button, Center, Container, Paper, Title } from '@mantine/core'
|
6
|
+
import { IconRefresh } from '@tabler/icons-react'
|
7
|
+
import { useEffect } from 'react'
|
8
|
+
|
9
|
+
export default function Error({
|
10
|
+
error,
|
11
|
+
reset,
|
12
|
+
}: {
|
13
|
+
error: Error & { digest?: string }
|
14
|
+
reset: () => void
|
15
|
+
}) {
|
16
|
+
useEffect(() => {
|
17
|
+
// Log the error to an error reporting service
|
18
|
+
console.error(error)
|
19
|
+
}, [error])
|
20
|
+
|
21
|
+
return (
|
22
|
+
<Container >
|
23
|
+
<Center h={'80vh'}>
|
24
|
+
<MyFlexColumn>
|
25
|
+
<Title>Chúng tôi đã ghi nhận lỗi và đang khắc phục!</Title>
|
26
|
+
<Paper p={'md'} bg={OBJECT_COlORS.mantineBackgroundBlueLight}>
|
27
|
+
Thông tin lỗi: {error.message}
|
28
|
+
</Paper>
|
29
|
+
<Button
|
30
|
+
leftSection={<IconRefresh />}
|
31
|
+
onClick={
|
32
|
+
// Attempt to recover by trying to re-render the segment
|
33
|
+
() => reset()
|
34
|
+
}
|
35
|
+
>
|
36
|
+
Thử lại
|
37
|
+
</Button>
|
38
|
+
</MyFlexColumn>
|
39
|
+
</Center>
|
40
|
+
</Container>
|
41
|
+
)
|
42
|
+
}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
"use client"
|
2
|
+
import { useS_BasicAppShell } from "@/components";
|
3
|
+
import { BasicAppShell } from "@/components/Layouts/BasicAppShell/BasicAppShell";
|
4
|
+
import { useQ_AQ_GetAQModule } from "@/hooks/query/AQ/useQ_AQ_GetAQModule";
|
5
|
+
import { ReactNode, useEffect } from "react";
|
6
|
+
import { menuData } from "../../data/menuData";
|
7
|
+
|
8
|
+
export default function Layout({ children }: { children?: ReactNode }) {
|
9
|
+
const GetAQModule_query = useQ_AQ_GetAQModule()
|
10
|
+
const BasicAppShell_store = useS_BasicAppShell()
|
11
|
+
useEffect(() => {
|
12
|
+
if (!GetAQModule_query.data) return
|
13
|
+
BasicAppShell_store.setProperty("moduleCode", GetAQModule_query.data?.code)
|
14
|
+
BasicAppShell_store.setProperty("moduleName", GetAQModule_query.data?.name)
|
15
|
+
BasicAppShell_store.setProperty("faviconFileDetail", GetAQModule_query.data.faviconFileDetail)
|
16
|
+
BasicAppShell_store.setProperty("logoFileDetail", GetAQModule_query.data.logoFileDetail)
|
17
|
+
}, [GetAQModule_query.data])
|
18
|
+
return <BasicAppShell menu={menuData}>{children}</BasicAppShell>;
|
19
|
+
}
|
20
|
+
|
21
|
+
|
@@ -0,0 +1,44 @@
|
|
1
|
+
"use client"
|
2
|
+
import { MyCardInformation } from '@/components'
|
3
|
+
import { Group, SimpleGrid } from '@mantine/core'
|
4
|
+
import { IconBikeFilled, IconBook, IconDevicesQuestion, IconMoneybag, IconUser } from '@tabler/icons-react'
|
5
|
+
import React from 'react'
|
6
|
+
|
7
|
+
export default function Page() {
|
8
|
+
return (
|
9
|
+
<div>
|
10
|
+
<SimpleGrid>
|
11
|
+
<MyCardInformation
|
12
|
+
title='Doanh thu'
|
13
|
+
icon={<IconMoneybag />}
|
14
|
+
unit='Triệu VNĐ'
|
15
|
+
description='So với tháng trước'
|
16
|
+
value='4.653.425'
|
17
|
+
diff={34}
|
18
|
+
/>
|
19
|
+
<MyCardInformation
|
20
|
+
title='Tổng số khóa học'
|
21
|
+
icon={<IconBook />}
|
22
|
+
description='So với tháng trước'
|
23
|
+
value='152'
|
24
|
+
diff={16}
|
25
|
+
/>
|
26
|
+
<MyCardInformation
|
27
|
+
title='Tổng số khóa thi'
|
28
|
+
icon={<IconDevicesQuestion />}
|
29
|
+
description='So với tháng trước'
|
30
|
+
value='36'
|
31
|
+
diff={60}
|
32
|
+
/>
|
33
|
+
<MyCardInformation
|
34
|
+
title='Tổng số học viên'
|
35
|
+
icon={<IconUser />}
|
36
|
+
unit='Triệu VNĐ'
|
37
|
+
description='So với tháng trước'
|
38
|
+
value='3.042'
|
39
|
+
diff={-30}
|
40
|
+
/>
|
41
|
+
</SimpleGrid>
|
42
|
+
</div>
|
43
|
+
)
|
44
|
+
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
'use client'
|
2
|
+
|
3
|
+
import { F_Authenticate_Login } from "@/modules-features/Authenticate/F_Authenticate_Login/F_Authenticate_Login"
|
4
|
+
|
5
|
+
export default function Page() {
|
6
|
+
return (
|
7
|
+
<F_Authenticate_Login
|
8
|
+
loginInfo={{
|
9
|
+
username: "adminstm",
|
10
|
+
password: "123456"
|
11
|
+
}}
|
12
|
+
/>
|
13
|
+
)
|
14
|
+
}
|
@@ -0,0 +1,59 @@
|
|
1
|
+
@tailwind base;
|
2
|
+
@tailwind components;
|
3
|
+
@tailwind utilities;
|
4
|
+
|
5
|
+
/* body {
|
6
|
+
font-family: 'Tahoma', sans-serif;
|
7
|
+
} */
|
8
|
+
ul {
|
9
|
+
list-style: disc;
|
10
|
+
list-style-position: outside;
|
11
|
+
}
|
12
|
+
|
13
|
+
ol {
|
14
|
+
list-style: decimal;
|
15
|
+
list-style-position: outside;
|
16
|
+
}
|
17
|
+
|
18
|
+
.m_d6493fad :where(img) {
|
19
|
+
max-width: unset !important;
|
20
|
+
margin-bottom: unset !important;
|
21
|
+
}
|
22
|
+
|
23
|
+
/* .m_b23fa0ef:where([data-with-table-border]) {
|
24
|
+
border: none !important;
|
25
|
+
} */
|
26
|
+
|
27
|
+
.MRT_TableHeadCell-module_content-wrapper-nowrap__-4aIg {
|
28
|
+
white-space: normal !important;
|
29
|
+
}
|
30
|
+
.m_4e7aa4fd:where([data-with-row-border]) {
|
31
|
+
border-bottom: calc(0.0625rem * var(--mantine-scale)) solid var(--table-border-color) !important;
|
32
|
+
border-top: calc(0.0625rem * var(--mantine-scale)) solid var(--table-border-color) !important;
|
33
|
+
}
|
34
|
+
|
35
|
+
.MRT_TableBody-module_empty-row-td-content__Cc2XW {
|
36
|
+
max-width: unset !important; /* Hoặc max-width: initial !important; */
|
37
|
+
}
|
38
|
+
img,
|
39
|
+
svg,
|
40
|
+
video,
|
41
|
+
canvas,
|
42
|
+
audio,
|
43
|
+
iframe,
|
44
|
+
embed,
|
45
|
+
object {
|
46
|
+
display: inline; /* Hoặc giá trị khác mà bạn mong muốn */
|
47
|
+
vertical-align: auto; /* Hoặc giá trị khác mà bạn mong muốn */
|
48
|
+
}
|
49
|
+
|
50
|
+
.tabler-icon {
|
51
|
+
width: 20px;
|
52
|
+
height: 20px;
|
53
|
+
}
|
54
|
+
@media (max-width: 640px) {
|
55
|
+
:root {
|
56
|
+
/* Kích thước chữ cho màn hình nhỏ (mobile) */
|
57
|
+
font-size: 14px;
|
58
|
+
}
|
59
|
+
}
|
@@ -0,0 +1,39 @@
|
|
1
|
+
// Import styles of packages that you've installed.
|
2
|
+
// All packages except `@mantine/hooks` require styles imports
|
3
|
+
import '@mantine/charts/styles.css';
|
4
|
+
import '@mantine/core/styles.css';
|
5
|
+
import '@mantine/dates/styles.css'; //if using mantine date picker features
|
6
|
+
import '@mantine/notifications/styles.css';
|
7
|
+
import '@mantine/spotlight/styles.css';
|
8
|
+
import '@mantine/tiptap/styles.css';
|
9
|
+
import 'mantine-react-table/styles.css';
|
10
|
+
import "./globals.css";
|
11
|
+
|
12
|
+
import { FaviconSetter } from '@/components/FaviconSetter/FaviconSetter';
|
13
|
+
import Provider from '@/providers/Provider';
|
14
|
+
import { ColorSchemeScript } from '@mantine/core';
|
15
|
+
|
16
|
+
export const metadata = {
|
17
|
+
title: 'My Mantine app',
|
18
|
+
description: 'I have followed setup instructions carefully',
|
19
|
+
};
|
20
|
+
|
21
|
+
export default function RootLayout({
|
22
|
+
children,
|
23
|
+
}: {
|
24
|
+
children: React.ReactNode;
|
25
|
+
}) {
|
26
|
+
return (
|
27
|
+
<html lang="en" suppressHydrationWarning>
|
28
|
+
<head>
|
29
|
+
<ColorSchemeScript />
|
30
|
+
</head>
|
31
|
+
<body>
|
32
|
+
<Provider>
|
33
|
+
<FaviconSetter />
|
34
|
+
{children}
|
35
|
+
</Provider>
|
36
|
+
</body>
|
37
|
+
</html>
|
38
|
+
);
|
39
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
"use client";
|
2
|
+
import { MyBoxesBackground } from "@/components";
|
3
|
+
import { useS_authenticate } from "@/modules-features/authenticate/useS_authenticate";
|
4
|
+
import { useRouter } from "next/navigation";
|
5
|
+
import { useEffect } from "react";
|
6
|
+
|
7
|
+
export default function Page() {
|
8
|
+
const router = useRouter();
|
9
|
+
const S_Authenticate = useS_authenticate();
|
10
|
+
useEffect(() => {
|
11
|
+
if (S_Authenticate.state.token == "") {
|
12
|
+
router.push("/test");
|
13
|
+
return;
|
14
|
+
}
|
15
|
+
router.push("/admin/core71678");
|
16
|
+
}, [S_Authenticate.state.token]);
|
17
|
+
return <MyBoxesBackground title="Hệ thống thông tin quản lí đào tạo ngắn hạn" />;
|
18
|
+
}
|
@@ -7286,7 +7286,7 @@ import {
|
|
7286
7286
|
import Link4 from "next/link";
|
7287
7287
|
|
7288
7288
|
// src/components/Layouts/HeaderMegaMenu/css.module.css
|
7289
|
-
var css_default =
|
7289
|
+
var css_default = "./css.module-4ICLUKPO.module.css";
|
7290
7290
|
|
7291
7291
|
// src/components/Layouts/HeaderMegaMenu/HeaderMegaMenuStore.ts
|
7292
7292
|
var useStore4 = createGenericStore({
|
@@ -0,0 +1,66 @@
|
|
1
|
+
"use client";
|
2
|
+
import { cn } from "@/lib/utils";
|
3
|
+
import { motion } from "framer-motion";
|
4
|
+
import React from "react";
|
5
|
+
|
6
|
+
export const MyBoxesCore = ({ className, ...rest }: { className?: string }) => {
|
7
|
+
const rows = new Array(150).fill(1);
|
8
|
+
const cols = new Array(100).fill(1);
|
9
|
+
let colors = [
|
10
|
+
"--sky-300",
|
11
|
+
"--pink-300",
|
12
|
+
"--green-300",
|
13
|
+
"--yellow-300",
|
14
|
+
"--red-300",
|
15
|
+
"--purple-300",
|
16
|
+
"--blue-300",
|
17
|
+
"--indigo-300",
|
18
|
+
"--violet-300",
|
19
|
+
];
|
20
|
+
const getRandomColor = () => {
|
21
|
+
return colors[Math.floor(Math.random() * colors.length)];
|
22
|
+
};
|
23
|
+
|
24
|
+
return (
|
25
|
+
<div
|
26
|
+
style={{
|
27
|
+
transform: `translate(-40%,-60%) skewX(-48deg) skewY(14deg) scale(0.675) rotate(0deg) translateZ(0)`,
|
28
|
+
}}
|
29
|
+
className={cn(
|
30
|
+
"absolute left-1/4 p-4 -top-1/4 flex -translate-x-1/2 -translate-y-1/2 w-full h-full z-0 ",
|
31
|
+
className
|
32
|
+
)}
|
33
|
+
{...rest}>
|
34
|
+
{rows.map((_, i) => (
|
35
|
+
<motion.div key={`row` + i} className="w-16 h-8 border-l border-slate-700 relative">
|
36
|
+
{cols.map((_, j) => (
|
37
|
+
<motion.div
|
38
|
+
whileHover={{
|
39
|
+
backgroundColor: `var(${getRandomColor()})`,
|
40
|
+
transition: { duration: 0 },
|
41
|
+
}}
|
42
|
+
animate={{
|
43
|
+
transition: { duration: 2 },
|
44
|
+
}}
|
45
|
+
key={`col` + j}
|
46
|
+
className="w-16 h-8 border-r border-t border-slate-700 relative">
|
47
|
+
{j % 2 === 0 && i % 2 === 0 ? (
|
48
|
+
<svg
|
49
|
+
xmlns="http://www.w3.org/2000/svg"
|
50
|
+
fill="none"
|
51
|
+
viewBox="0 0 24 24"
|
52
|
+
strokeWidth="1.5"
|
53
|
+
stroke="currentColor"
|
54
|
+
className="absolute h-6 w-10 -top-[14px] -left-[22px] text-slate-700 stroke-[1px] pointer-events-none">
|
55
|
+
<path strokeLinecap="round" strokeLinejoin="round" d="M12 6v12m6-6H6" />
|
56
|
+
</svg>
|
57
|
+
) : null}
|
58
|
+
</motion.div>
|
59
|
+
))}
|
60
|
+
</motion.div>
|
61
|
+
))}
|
62
|
+
</div>
|
63
|
+
);
|
64
|
+
};
|
65
|
+
|
66
|
+
export const Boxes = React.memo(MyBoxesCore);
|
@@ -0,0 +1,31 @@
|
|
1
|
+
"use client";
|
2
|
+
|
3
|
+
import { MyCardioLoader } from "@/components/Loaders/MyCardioLoader";
|
4
|
+
import { cn } from "@/lib/utils";
|
5
|
+
import { Center, Space, Text } from "@mantine/core";
|
6
|
+
import { MyBoxesCore } from "./MyBoxes";
|
7
|
+
|
8
|
+
// Default values shown
|
9
|
+
|
10
|
+
export function MyBoxesBackground({ title, desc = "Được phát triển bởi công ty công nghệ Anh Quân." }: { title: string, desc?: string }) {
|
11
|
+
return (
|
12
|
+
<div className="h-[100vh] relative w-full overflow-hidden bg-slate-900 flex flex-col items-center justify-center rounded-lg">
|
13
|
+
<div className="absolute inset-0 w-full h-full bg-slate-900 z-20 [mask-image:radial-gradient(transparent,white)] pointer-events-none" />
|
14
|
+
<MyBoxesCore />
|
15
|
+
<Center className="z-20">
|
16
|
+
<MyCardioLoader />
|
17
|
+
</Center>
|
18
|
+
<Space my={7} />
|
19
|
+
<Center>
|
20
|
+
<Text className="z-20" fs="italic" fw={"bold"} c={"white"}>
|
21
|
+
Đang tải...
|
22
|
+
</Text>
|
23
|
+
</Center>
|
24
|
+
<Space my={7} />
|
25
|
+
<h1 className={cn("md:text-4xl text-xl text-white relative z-20")}>
|
26
|
+
{title}
|
27
|
+
</h1>
|
28
|
+
<p className="text-center mt-2 text-neutral-300 relative z-20">{desc}</p>
|
29
|
+
</div>
|
30
|
+
);
|
31
|
+
}
|
@@ -0,0 +1,47 @@
|
|
1
|
+
import { TYPES_CRUD } from "@/types/types";
|
2
|
+
import { ActionIcon, ActionIconProps } from "@mantine/core";
|
3
|
+
import { IconDeviceFloppy, IconEdit, IconPlus, IconTrash } from "@tabler/icons-react";
|
4
|
+
import { ReactNode } from "react";
|
5
|
+
|
6
|
+
interface IMyActionIcon extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "color" | "style">, ActionIconProps {
|
7
|
+
crudType?: TYPES_CRUD
|
8
|
+
children?: ReactNode;
|
9
|
+
}
|
10
|
+
|
11
|
+
export function MyActionIcon({ children, crudType = "default", ...rest }: IMyActionIcon) {
|
12
|
+
if (crudType == "default") {
|
13
|
+
return (
|
14
|
+
<ActionIcon color="indigo" {...rest}>
|
15
|
+
{children}
|
16
|
+
</ActionIcon>
|
17
|
+
);
|
18
|
+
}
|
19
|
+
if (crudType == "create") {
|
20
|
+
return (
|
21
|
+
<ActionIcon color="indigo" {...rest}>
|
22
|
+
<IconPlus />
|
23
|
+
</ActionIcon>
|
24
|
+
);
|
25
|
+
}
|
26
|
+
if (crudType == "delete") {
|
27
|
+
return (
|
28
|
+
<ActionIcon color="red" {...rest}>
|
29
|
+
<IconTrash />
|
30
|
+
</ActionIcon>
|
31
|
+
);
|
32
|
+
}
|
33
|
+
if (crudType == "update") {
|
34
|
+
return (
|
35
|
+
<ActionIcon color="yellow"{...rest}>
|
36
|
+
<IconEdit />
|
37
|
+
</ActionIcon>
|
38
|
+
);
|
39
|
+
}
|
40
|
+
if (crudType == "save") {
|
41
|
+
return (
|
42
|
+
<ActionIcon color="green" {...rest}>
|
43
|
+
<IconDeviceFloppy />
|
44
|
+
</ActionIcon>
|
45
|
+
);
|
46
|
+
}
|
47
|
+
}
|