aq-fe-framework 0.1.241 → 0.1.243
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/EmailConfig-JHRl7zGL.d.mts +12 -0
- package/dist/{chunk-TQCEVAOM.mjs → chunk-TSQB7TIU.mjs} +357 -171
- package/dist/components/index.d.mts +19 -1
- package/dist/components/index.mjs +6 -2
- package/dist/interfaces/index.d.mts +491 -0
- package/dist/interfaces/index.mjs +0 -0
- package/dist/modules-features/index.d.mts +1 -9
- package/dist/modules-features/index.mjs +12 -10
- package/package.json +5 -1
@@ -2,15 +2,15 @@ import {
|
|
2
2
|
baseAxios_default,
|
3
3
|
useQ_AQ_GetAQModule
|
4
4
|
} from "./chunk-HMRYQTJT.mjs";
|
5
|
-
import {
|
6
|
-
createGenericStore
|
7
|
-
} from "./chunk-Y3YGC5IH.mjs";
|
8
5
|
import {
|
9
6
|
utils_pdf_download
|
10
7
|
} from "./chunk-5U2JSHSJ.mjs";
|
11
8
|
import {
|
12
9
|
utils_notification_show
|
13
10
|
} from "./chunk-7ZCOFATU.mjs";
|
11
|
+
import {
|
12
|
+
createGenericStore
|
13
|
+
} from "./chunk-Y3YGC5IH.mjs";
|
14
14
|
import {
|
15
15
|
__objRest,
|
16
16
|
__spreadProps,
|
@@ -6746,14 +6746,54 @@ function MyDateInput(_a) {
|
|
6746
6746
|
return /* @__PURE__ */ jsx45(DateInput, __spreadValues({ label, placeholder: label ? `Ch\u1ECDn ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
|
6747
6747
|
}
|
6748
6748
|
|
6749
|
+
// src/constants/enum/global.ts
|
6750
|
+
var ENUM_DAYS_OF_WEEK = /* @__PURE__ */ ((ENUM_DAYS_OF_WEEK2) => {
|
6751
|
+
ENUM_DAYS_OF_WEEK2[ENUM_DAYS_OF_WEEK2["Ch\u1EE7 Nh\u1EADt"] = 0] = "Ch\u1EE7 Nh\u1EADt";
|
6752
|
+
ENUM_DAYS_OF_WEEK2[ENUM_DAYS_OF_WEEK2["Th\u1EE9 Hai"] = 1] = "Th\u1EE9 Hai";
|
6753
|
+
ENUM_DAYS_OF_WEEK2[ENUM_DAYS_OF_WEEK2["Th\u1EE9 Ba"] = 2] = "Th\u1EE9 Ba";
|
6754
|
+
ENUM_DAYS_OF_WEEK2[ENUM_DAYS_OF_WEEK2["Th\u1EE9 T\u01B0"] = 3] = "Th\u1EE9 T\u01B0";
|
6755
|
+
ENUM_DAYS_OF_WEEK2[ENUM_DAYS_OF_WEEK2["Th\u1EE9 N\u0103m"] = 4] = "Th\u1EE9 N\u0103m";
|
6756
|
+
ENUM_DAYS_OF_WEEK2[ENUM_DAYS_OF_WEEK2["Th\u1EE9 S\xE1u"] = 5] = "Th\u1EE9 S\xE1u";
|
6757
|
+
ENUM_DAYS_OF_WEEK2[ENUM_DAYS_OF_WEEK2["Th\u1EE9 B\u1EA3y"] = 6] = "Th\u1EE9 B\u1EA3y";
|
6758
|
+
return ENUM_DAYS_OF_WEEK2;
|
6759
|
+
})(ENUM_DAYS_OF_WEEK || {});
|
6760
|
+
|
6761
|
+
// src/components/Inputs/DayOfWeekPicker/MyDayOfWeekPicker.tsx
|
6762
|
+
import { Badge as Badge3, Group as Group15, Text as Text13 } from "@mantine/core";
|
6763
|
+
import { jsx as jsx46, jsxs as jsxs27 } from "react/jsx-runtime";
|
6764
|
+
var days = Object.entries(ENUM_DAYS_OF_WEEK).filter(([key]) => isNaN(Number(key))).map(([label, value]) => ({ label, value }));
|
6765
|
+
function MyDayOfWeekPicker({ value = [], onChange }) {
|
6766
|
+
const toggle = (val) => {
|
6767
|
+
if (!onChange) return;
|
6768
|
+
const newValue = value.includes(val) ? value.filter((v5) => v5 !== val) : [...value, val];
|
6769
|
+
onChange(newValue);
|
6770
|
+
};
|
6771
|
+
return /* @__PURE__ */ jsxs27(MyFlexRow, { align: "center", children: [
|
6772
|
+
/* @__PURE__ */ jsx46(Text13, { children: "Danh s\xE1ch th\u1EE9: " }),
|
6773
|
+
/* @__PURE__ */ jsx46(Group15, { gap: "xs", children: days.map((d5) => /* @__PURE__ */ jsx46(
|
6774
|
+
Badge3,
|
6775
|
+
{
|
6776
|
+
variant: value.includes(d5.value) ? "filled" : "outline",
|
6777
|
+
color: "blue",
|
6778
|
+
radius: "sm",
|
6779
|
+
size: "lg",
|
6780
|
+
onClick: () => toggle(d5.value),
|
6781
|
+
style: { cursor: onChange ? "pointer" : "default", userSelect: "none" },
|
6782
|
+
children: d5.label
|
6783
|
+
},
|
6784
|
+
d5.value
|
6785
|
+
)) })
|
6786
|
+
] });
|
6787
|
+
}
|
6788
|
+
|
6749
6789
|
// src/components/Inputs/Fieldset/MyFieldset.tsx
|
6750
6790
|
import {
|
6751
6791
|
Fieldset as Fieldset4,
|
6752
|
-
Group as
|
6753
|
-
Text as
|
6792
|
+
Group as Group16,
|
6793
|
+
Text as Text14,
|
6754
6794
|
useMantineColorScheme as useMantineColorScheme2
|
6755
6795
|
} from "@mantine/core";
|
6756
|
-
import { jsx as
|
6796
|
+
import { jsx as jsx47, jsxs as jsxs28 } from "react/jsx-runtime";
|
6757
6797
|
function MyFieldset(_a) {
|
6758
6798
|
var _b = _a, {
|
6759
6799
|
children,
|
@@ -6782,10 +6822,10 @@ function MyFieldset(_a) {
|
|
6782
6822
|
const mergedStyles = typeof styles === "function" ? styles : __spreadProps(__spreadValues({}, styles), {
|
6783
6823
|
legend: __spreadValues(__spreadValues({}, defaultLegendStyles), styles == null ? void 0 : styles.legend)
|
6784
6824
|
});
|
6785
|
-
return /* @__PURE__ */
|
6825
|
+
return /* @__PURE__ */ jsx47(
|
6786
6826
|
Fieldset4,
|
6787
6827
|
__spreadProps(__spreadValues({
|
6788
|
-
legend: customLegend != null ? customLegend : /* @__PURE__ */
|
6828
|
+
legend: customLegend != null ? customLegend : /* @__PURE__ */ jsx47(Group16, { gap: "xs", children: /* @__PURE__ */ jsxs28(Text14, { fw: 600, children: [
|
6789
6829
|
" ",
|
6790
6830
|
title,
|
6791
6831
|
" "
|
@@ -6800,13 +6840,13 @@ function MyFieldset(_a) {
|
|
6800
6840
|
// src/components/Inputs/FileInput/MyFileInput.tsx
|
6801
6841
|
import { FileInput as FileInput3 } from "@mantine/core";
|
6802
6842
|
import { IconFile } from "@tabler/icons-react";
|
6803
|
-
import { jsx as
|
6843
|
+
import { jsx as jsx48 } from "react/jsx-runtime";
|
6804
6844
|
function MyFileInput(_a) {
|
6805
6845
|
var _b = _a, { label } = _b, rest = __objRest(_b, ["label"]);
|
6806
|
-
return /* @__PURE__ */
|
6846
|
+
return /* @__PURE__ */ jsx48(
|
6807
6847
|
FileInput3,
|
6808
6848
|
__spreadValues({
|
6809
|
-
rightSection: /* @__PURE__ */
|
6849
|
+
rightSection: /* @__PURE__ */ jsx48(IconFile, {}),
|
6810
6850
|
label,
|
6811
6851
|
placeholder: label ? `Ch\u1ECDn ${label == null ? void 0 : label.toLowerCase()}` : ""
|
6812
6852
|
}, rest)
|
@@ -6815,10 +6855,10 @@ function MyFileInput(_a) {
|
|
6815
6855
|
|
6816
6856
|
// src/components/Inputs/NumberInput/MyNumberInput.tsx
|
6817
6857
|
import { NumberInput as NumberInput2 } from "@mantine/core";
|
6818
|
-
import { jsx as
|
6858
|
+
import { jsx as jsx49 } from "react/jsx-runtime";
|
6819
6859
|
function MyNumberInput(_a) {
|
6820
6860
|
var _b = _a, { minValue, label } = _b, rest = __objRest(_b, ["minValue", "label"]);
|
6821
|
-
return /* @__PURE__ */
|
6861
|
+
return /* @__PURE__ */ jsx49(
|
6822
6862
|
NumberInput2,
|
6823
6863
|
__spreadValues({
|
6824
6864
|
label,
|
@@ -6830,10 +6870,10 @@ function MyNumberInput(_a) {
|
|
6830
6870
|
|
6831
6871
|
// src/components/Inputs/TextArea/MyTextArea.tsx
|
6832
6872
|
import { Textarea } from "@mantine/core";
|
6833
|
-
import { jsx as
|
6873
|
+
import { jsx as jsx50 } from "react/jsx-runtime";
|
6834
6874
|
function MyTextArea(_a) {
|
6835
6875
|
var _b = _a, { label } = _b, rest = __objRest(_b, ["label"]);
|
6836
|
-
return /* @__PURE__ */
|
6876
|
+
return /* @__PURE__ */ jsx50(Textarea, __spreadValues({ label, placeholder: label ? `Nh\u1EADp ${label == null ? void 0 : label.toLowerCase()}` : "" }, rest));
|
6837
6877
|
}
|
6838
6878
|
|
6839
6879
|
// src/components/Inputs/TextEditor/MyTextEditor.tsx
|
@@ -6849,7 +6889,7 @@ import Underline from "@tiptap/extension-underline";
|
|
6849
6889
|
import { useEditor } from "@tiptap/react";
|
6850
6890
|
import StarterKit from "@tiptap/starter-kit";
|
6851
6891
|
import { useEffect as useEffect8, useState as useState9 } from "react";
|
6852
|
-
import { jsx as
|
6892
|
+
import { jsx as jsx51, jsxs as jsxs29 } from "react/jsx-runtime";
|
6853
6893
|
function MyTextEditor(_a) {
|
6854
6894
|
var _b = _a, {
|
6855
6895
|
autoHiddenToolBar = false,
|
@@ -6951,43 +6991,43 @@ function MyTextEditor(_a) {
|
|
6951
6991
|
editor.commands.setContent(value);
|
6952
6992
|
}
|
6953
6993
|
}, [value, editor]);
|
6954
|
-
return /* @__PURE__ */
|
6955
|
-
/* @__PURE__ */
|
6956
|
-
/* @__PURE__ */
|
6957
|
-
/* @__PURE__ */
|
6958
|
-
/* @__PURE__ */
|
6959
|
-
/* @__PURE__ */
|
6960
|
-
/* @__PURE__ */
|
6961
|
-
/* @__PURE__ */
|
6962
|
-
/* @__PURE__ */
|
6963
|
-
/* @__PURE__ */
|
6994
|
+
return /* @__PURE__ */ jsx51(Input.Wrapper, { label, flex: 1, error, withAsterisk, children: /* @__PURE__ */ jsxs29(RichTextEditor, { editor, style: { border: error && "1px solid #e03131" }, children: [
|
6995
|
+
/* @__PURE__ */ jsxs29(RichTextEditor.Toolbar, { hidden: hiddenToolBar, sticky: true, stickyOffset: 60, children: [
|
6996
|
+
/* @__PURE__ */ jsxs29(RichTextEditor.ControlsGroup, { children: [
|
6997
|
+
/* @__PURE__ */ jsx51(RichTextEditor.Bold, {}),
|
6998
|
+
/* @__PURE__ */ jsx51(RichTextEditor.Italic, {}),
|
6999
|
+
/* @__PURE__ */ jsx51(RichTextEditor.Underline, {}),
|
7000
|
+
/* @__PURE__ */ jsx51(RichTextEditor.Strikethrough, {}),
|
7001
|
+
/* @__PURE__ */ jsx51(RichTextEditor.ClearFormatting, {}),
|
7002
|
+
/* @__PURE__ */ jsx51(RichTextEditor.Highlight, {}),
|
7003
|
+
/* @__PURE__ */ jsx51(RichTextEditor.Code, {})
|
6964
7004
|
] }),
|
6965
|
-
/* @__PURE__ */
|
6966
|
-
/* @__PURE__ */
|
6967
|
-
/* @__PURE__ */
|
6968
|
-
/* @__PURE__ */
|
6969
|
-
/* @__PURE__ */
|
7005
|
+
/* @__PURE__ */ jsxs29(RichTextEditor.ControlsGroup, { children: [
|
7006
|
+
/* @__PURE__ */ jsx51(RichTextEditor.H1, {}),
|
7007
|
+
/* @__PURE__ */ jsx51(RichTextEditor.H2, {}),
|
7008
|
+
/* @__PURE__ */ jsx51(RichTextEditor.H3, {}),
|
7009
|
+
/* @__PURE__ */ jsx51(RichTextEditor.H4, {})
|
6970
7010
|
] }),
|
6971
|
-
/* @__PURE__ */
|
6972
|
-
/* @__PURE__ */
|
6973
|
-
/* @__PURE__ */
|
6974
|
-
/* @__PURE__ */
|
6975
|
-
/* @__PURE__ */
|
6976
|
-
/* @__PURE__ */
|
6977
|
-
/* @__PURE__ */
|
7011
|
+
/* @__PURE__ */ jsxs29(RichTextEditor.ControlsGroup, { children: [
|
7012
|
+
/* @__PURE__ */ jsx51(RichTextEditor.Blockquote, {}),
|
7013
|
+
/* @__PURE__ */ jsx51(RichTextEditor.Hr, {}),
|
7014
|
+
/* @__PURE__ */ jsx51(RichTextEditor.BulletList, {}),
|
7015
|
+
/* @__PURE__ */ jsx51(RichTextEditor.OrderedList, {}),
|
7016
|
+
/* @__PURE__ */ jsx51(RichTextEditor.Subscript, {}),
|
7017
|
+
/* @__PURE__ */ jsx51(RichTextEditor.Superscript, {})
|
6978
7018
|
] }),
|
6979
|
-
/* @__PURE__ */
|
6980
|
-
/* @__PURE__ */
|
6981
|
-
/* @__PURE__ */
|
7019
|
+
/* @__PURE__ */ jsxs29(RichTextEditor.ControlsGroup, { children: [
|
7020
|
+
/* @__PURE__ */ jsx51(RichTextEditor.Link, {}),
|
7021
|
+
/* @__PURE__ */ jsx51(RichTextEditor.Unlink, {})
|
6982
7022
|
] }),
|
6983
|
-
/* @__PURE__ */
|
6984
|
-
/* @__PURE__ */
|
6985
|
-
/* @__PURE__ */
|
6986
|
-
/* @__PURE__ */
|
6987
|
-
/* @__PURE__ */
|
7023
|
+
/* @__PURE__ */ jsxs29(RichTextEditor.ControlsGroup, { children: [
|
7024
|
+
/* @__PURE__ */ jsx51(RichTextEditor.AlignLeft, {}),
|
7025
|
+
/* @__PURE__ */ jsx51(RichTextEditor.AlignCenter, {}),
|
7026
|
+
/* @__PURE__ */ jsx51(RichTextEditor.AlignJustify, {}),
|
7027
|
+
/* @__PURE__ */ jsx51(RichTextEditor.AlignRight, {})
|
6988
7028
|
] })
|
6989
7029
|
] }),
|
6990
|
-
/* @__PURE__ */
|
7030
|
+
/* @__PURE__ */ jsx51(
|
6991
7031
|
ScrollArea2.Autosize,
|
6992
7032
|
{
|
6993
7033
|
onMouseDown: () => {
|
@@ -7002,14 +7042,165 @@ function MyTextEditor(_a) {
|
|
7002
7042
|
setHiddenToolBar(false);
|
7003
7043
|
},
|
7004
7044
|
style: { cursor: "text", maxHeight: "400px" },
|
7005
|
-
children: /* @__PURE__ */
|
7045
|
+
children: /* @__PURE__ */ jsx51(RichTextEditor.Content, { mih: contentHeight })
|
7006
7046
|
}
|
7007
7047
|
)
|
7008
7048
|
] }) });
|
7009
7049
|
}
|
7010
7050
|
|
7051
|
+
// src/constants/object/object_colors.ts
|
7052
|
+
var object_colors = {
|
7053
|
+
mantineBackgroundPrimary: "light-dark(var(--mantine-color-white), var(--mantine-color-dark))",
|
7054
|
+
mantineBackgroundSecondary: "light-dark(var(--mantine-color-gray-1), var(--mantine-color-dark-8))",
|
7055
|
+
mantineBackgroundBlueLight: "var(--mantine-color-blue-light)"
|
7056
|
+
};
|
7057
|
+
|
7058
|
+
// src/components/Inputs/WeeklySessionSchedulerPicker/MyWeeklySessionSchedulerPicker.tsx
|
7059
|
+
import {
|
7060
|
+
Button as Button14,
|
7061
|
+
Center as Center4,
|
7062
|
+
Divider as Divider2,
|
7063
|
+
Group as Group17,
|
7064
|
+
NumberInput as NumberInput3,
|
7065
|
+
Paper as Paper7,
|
7066
|
+
Text as Text15
|
7067
|
+
} from "@mantine/core";
|
7068
|
+
import { IconPlus as IconPlus5, IconTrash as IconTrash5 } from "@tabler/icons-react";
|
7069
|
+
import { useState as useState10 } from "react";
|
7070
|
+
import { jsx as jsx52, jsxs as jsxs30 } from "react/jsx-runtime";
|
7071
|
+
function MyWeeklySessionSchedulerPicker({
|
7072
|
+
value = [],
|
7073
|
+
onChange
|
7074
|
+
}) {
|
7075
|
+
const [selectedDays, setSelectedDays] = useState10([]);
|
7076
|
+
const handleAddSession = (dayOfWeek) => {
|
7077
|
+
const newSession = {
|
7078
|
+
dayOfWeek,
|
7079
|
+
startPeriod: 1,
|
7080
|
+
numberOfPeriods: 1,
|
7081
|
+
durationMinutes: 90
|
7082
|
+
};
|
7083
|
+
onChange == null ? void 0 : onChange([...value, newSession]);
|
7084
|
+
};
|
7085
|
+
const handleRemove = (index) => {
|
7086
|
+
const newData = [...value];
|
7087
|
+
newData.splice(index, 1);
|
7088
|
+
onChange == null ? void 0 : onChange(newData);
|
7089
|
+
};
|
7090
|
+
const handleUpdate = (index, key, val) => {
|
7091
|
+
const newData = [...value];
|
7092
|
+
newData[index][key] = val;
|
7093
|
+
onChange == null ? void 0 : onChange(newData);
|
7094
|
+
};
|
7095
|
+
const grouped = value.reduce((acc, curr) => {
|
7096
|
+
acc[curr.dayOfWeek] = acc[curr.dayOfWeek] || [];
|
7097
|
+
acc[curr.dayOfWeek].push(curr);
|
7098
|
+
return acc;
|
7099
|
+
}, {});
|
7100
|
+
const getLabel = (day) => ENUM_DAYS_OF_WEEK[day] || `Day ${day}`;
|
7101
|
+
return /* @__PURE__ */ jsx52(Paper7, { w: "100%", p: "md", children: /* @__PURE__ */ jsxs30(MyFlexColumn, { children: [
|
7102
|
+
/* @__PURE__ */ jsx52(Center4, { children: /* @__PURE__ */ jsx52(
|
7103
|
+
MyDayOfWeekPicker,
|
7104
|
+
{
|
7105
|
+
value: selectedDays,
|
7106
|
+
onChange: (days2) => {
|
7107
|
+
const sorted = [...days2].sort((a5, b3) => a5 - b3);
|
7108
|
+
setSelectedDays(sorted);
|
7109
|
+
}
|
7110
|
+
}
|
7111
|
+
) }),
|
7112
|
+
/* @__PURE__ */ jsx52(Divider2, { my: "xs" }),
|
7113
|
+
/* @__PURE__ */ jsx52(Center4, { children: /* @__PURE__ */ jsx52(MyFlexColumn, { w: { base: "100%", sm: "70%" }, children: selectedDays.map((dayOfWeek) => {
|
7114
|
+
var _a;
|
7115
|
+
return /* @__PURE__ */ jsxs30(
|
7116
|
+
Paper7,
|
7117
|
+
{
|
7118
|
+
w: "100%",
|
7119
|
+
p: "md",
|
7120
|
+
bg: object_colors.mantineBackgroundBlueLight,
|
7121
|
+
children: [
|
7122
|
+
/* @__PURE__ */ jsxs30(Group17, { gap: "apart", children: [
|
7123
|
+
/* @__PURE__ */ jsx52(Text15, { w: "70px", fw: 500, children: getLabel(dayOfWeek) }),
|
7124
|
+
/* @__PURE__ */ jsx52(
|
7125
|
+
Button14,
|
7126
|
+
{
|
7127
|
+
color: "teal.5",
|
7128
|
+
leftSection: /* @__PURE__ */ jsx52(IconPlus5, { size: 14 }),
|
7129
|
+
onClick: () => handleAddSession(dayOfWeek),
|
7130
|
+
children: "Th\xEAm bu\u1ED5i"
|
7131
|
+
}
|
7132
|
+
)
|
7133
|
+
] }),
|
7134
|
+
/* @__PURE__ */ jsx52(Divider2, { my: "sm" }),
|
7135
|
+
(_a = grouped[dayOfWeek]) == null ? void 0 : _a.map((item, indexInDay) => {
|
7136
|
+
const globalIndex = value.findIndex(
|
7137
|
+
(v5) => v5 === item
|
7138
|
+
);
|
7139
|
+
return /* @__PURE__ */ jsxs30(
|
7140
|
+
Group17,
|
7141
|
+
{
|
7142
|
+
mt: "xs",
|
7143
|
+
gap: "xs",
|
7144
|
+
align: "flex-end",
|
7145
|
+
children: [
|
7146
|
+
/* @__PURE__ */ jsx52(
|
7147
|
+
NumberInput3,
|
7148
|
+
{
|
7149
|
+
label: "Ti\u1EBFt b\u1EAFt \u0111\u1EA7u",
|
7150
|
+
value: item.startPeriod,
|
7151
|
+
onChange: (val) => handleUpdate(
|
7152
|
+
globalIndex,
|
7153
|
+
"startPeriod",
|
7154
|
+
val
|
7155
|
+
)
|
7156
|
+
}
|
7157
|
+
),
|
7158
|
+
/* @__PURE__ */ jsx52(
|
7159
|
+
NumberInput3,
|
7160
|
+
{
|
7161
|
+
label: "S\u1ED1 ti\u1EBFt",
|
7162
|
+
value: item.numberOfPeriods,
|
7163
|
+
onChange: (val) => handleUpdate(
|
7164
|
+
globalIndex,
|
7165
|
+
"numberOfPeriods",
|
7166
|
+
val
|
7167
|
+
)
|
7168
|
+
}
|
7169
|
+
),
|
7170
|
+
/* @__PURE__ */ jsx52(
|
7171
|
+
NumberInput3,
|
7172
|
+
{
|
7173
|
+
label: "S\u1ED1 ph\xFAt ",
|
7174
|
+
readOnly: true,
|
7175
|
+
variant: "filled",
|
7176
|
+
value: item.durationMinutes
|
7177
|
+
}
|
7178
|
+
),
|
7179
|
+
/* @__PURE__ */ jsx52(
|
7180
|
+
Button14,
|
7181
|
+
{
|
7182
|
+
variant: "light",
|
7183
|
+
color: "red",
|
7184
|
+
onClick: () => handleRemove(globalIndex),
|
7185
|
+
leftSection: /* @__PURE__ */ jsx52(IconTrash5, { size: 14 }),
|
7186
|
+
children: "X\xF3a bu\u1ED5i"
|
7187
|
+
}
|
7188
|
+
)
|
7189
|
+
]
|
7190
|
+
},
|
7191
|
+
globalIndex
|
7192
|
+
);
|
7193
|
+
})
|
7194
|
+
]
|
7195
|
+
},
|
7196
|
+
dayOfWeek
|
7197
|
+
);
|
7198
|
+
}) }) })
|
7199
|
+
] }) });
|
7200
|
+
}
|
7201
|
+
|
7011
7202
|
// src/modules-features/authenticate/F_authenticate_Logout.tsx
|
7012
|
-
import { Button as
|
7203
|
+
import { Button as Button15 } from "@mantine/core";
|
7013
7204
|
import { IconLogout } from "@tabler/icons-react";
|
7014
7205
|
import { useRouter as useRouter3 } from "next/navigation";
|
7015
7206
|
|
@@ -7024,27 +7215,27 @@ function useS_authenticate() {
|
|
7024
7215
|
}
|
7025
7216
|
|
7026
7217
|
// src/modules-features/authenticate/F_authenticate_Logout.tsx
|
7027
|
-
import { jsx as
|
7218
|
+
import { jsx as jsx53 } from "react/jsx-runtime";
|
7028
7219
|
function F_authenticate_Logout({ redirectURL = "/auth/login" }) {
|
7029
7220
|
const router = useRouter3();
|
7030
7221
|
const S_Authenticate = useS_authenticate();
|
7031
|
-
return /* @__PURE__ */
|
7222
|
+
return /* @__PURE__ */ jsx53(Button15, { onClick: () => {
|
7032
7223
|
S_Authenticate.setProperty("token", "");
|
7033
7224
|
router.replace(redirectURL);
|
7034
|
-
}, leftSection: /* @__PURE__ */
|
7225
|
+
}, leftSection: /* @__PURE__ */ jsx53(IconLogout, {}), fullWidth: true, justify: "start", variant: "subtle", children: "\u0110\u0103ng xu\u1EA5t" });
|
7035
7226
|
}
|
7036
7227
|
|
7037
7228
|
// src/components/Layouts/BasicAppShell/BasicAppShell.tsx
|
7038
7229
|
import {
|
7039
7230
|
ActionIcon as ActionIcon11,
|
7040
7231
|
AppShell,
|
7041
|
-
Badge as
|
7042
|
-
Divider as
|
7043
|
-
Group as
|
7232
|
+
Badge as Badge4,
|
7233
|
+
Divider as Divider3,
|
7234
|
+
Group as Group18,
|
7044
7235
|
Image as Image3,
|
7045
7236
|
NavLink,
|
7046
7237
|
ScrollArea as ScrollArea3,
|
7047
|
-
Text as
|
7238
|
+
Text as Text16,
|
7048
7239
|
Tooltip as Tooltip5
|
7049
7240
|
} from "@mantine/core";
|
7050
7241
|
import { useFavicon, useMediaQuery } from "@mantine/hooks";
|
@@ -7055,8 +7246,8 @@ import {
|
|
7055
7246
|
} from "@tabler/icons-react";
|
7056
7247
|
import Link3 from "next/link";
|
7057
7248
|
import { usePathname as usePathname2 } from "next/navigation";
|
7058
|
-
import { useEffect as useEffect9, useMemo as useMemo3, useState as
|
7059
|
-
import { Fragment as Fragment13, jsx as
|
7249
|
+
import { useEffect as useEffect9, useMemo as useMemo3, useState as useState11 } from "react";
|
7250
|
+
import { Fragment as Fragment13, jsx as jsx54, jsxs as jsxs31 } from "react/jsx-runtime";
|
7060
7251
|
function findBreadcrumbPath(items, currentPath, parents = []) {
|
7061
7252
|
for (const item of items) {
|
7062
7253
|
if (item.link === currentPath) {
|
@@ -7071,13 +7262,13 @@ function findBreadcrumbPath(items, currentPath, parents = []) {
|
|
7071
7262
|
}
|
7072
7263
|
function getRightSection(status) {
|
7073
7264
|
if (status === "Prototype")
|
7074
|
-
return /* @__PURE__ */
|
7265
|
+
return /* @__PURE__ */ jsx54(Badge4, { styles: { root: { cursor: "pointer" } }, radius: "xs", color: "pink", circle: true, children: "P" });
|
7075
7266
|
if (status === "New")
|
7076
|
-
return /* @__PURE__ */
|
7267
|
+
return /* @__PURE__ */ jsx54(Badge4, { styles: { root: { cursor: "pointer" } }, radius: "xs", circle: true, children: "N" });
|
7077
7268
|
if (status === "Menu")
|
7078
|
-
return /* @__PURE__ */
|
7269
|
+
return /* @__PURE__ */ jsx54(Badge4, { styles: { root: { cursor: "pointer" } }, radius: "xs", color: "gray", circle: true, children: "M" });
|
7079
7270
|
if (status === "Change")
|
7080
|
-
return /* @__PURE__ */
|
7271
|
+
return /* @__PURE__ */ jsx54(Badge4, { styles: { root: { cursor: "pointer" } }, radius: "xs", color: "green", circle: true, children: "C" });
|
7081
7272
|
return null;
|
7082
7273
|
}
|
7083
7274
|
function RenderNavLinks({
|
@@ -7085,14 +7276,14 @@ function RenderNavLinks({
|
|
7085
7276
|
}) {
|
7086
7277
|
const basicAppShellStore = useS_BasicAppShell();
|
7087
7278
|
const pathName = usePathname2();
|
7088
|
-
return /* @__PURE__ */
|
7279
|
+
return /* @__PURE__ */ jsx54(Fragment13, { children: items.map((item, index) => /* @__PURE__ */ jsx54(
|
7089
7280
|
NavLink,
|
7090
7281
|
{
|
7091
7282
|
active: item.link === pathName.split("/")[2],
|
7092
7283
|
component: Link3,
|
7093
7284
|
opened: basicAppShellStore.state.groupMenuOpenId.includes(item.label),
|
7094
7285
|
href: `/${pathName.split("/")[1]}/${item.link}` || "#",
|
7095
|
-
label: /* @__PURE__ */
|
7286
|
+
label: /* @__PURE__ */ jsxs31(MyFlexRow, { justify: "space-between", children: [
|
7096
7287
|
item.label,
|
7097
7288
|
" ",
|
7098
7289
|
getRightSection(item.status)
|
@@ -7104,7 +7295,7 @@ function RenderNavLinks({
|
|
7104
7295
|
return;
|
7105
7296
|
}
|
7106
7297
|
},
|
7107
|
-
children: item.links && /* @__PURE__ */
|
7298
|
+
children: item.links && /* @__PURE__ */ jsx54(RenderNavLinks, { items: item.links })
|
7108
7299
|
},
|
7109
7300
|
index
|
7110
7301
|
)) });
|
@@ -7174,7 +7365,7 @@ function BasicAppShell({ children, menu, extraTopRight, title }) {
|
|
7174
7365
|
const media = useMediaQuery("(min-width: 72em)");
|
7175
7366
|
const GetAQModule_query = useQ_AQ_GetAQModule();
|
7176
7367
|
const BasicAppShell_store = useS_BasicAppShell();
|
7177
|
-
const [faviconUrl, setFaviconUrl] =
|
7368
|
+
const [faviconUrl, setFaviconUrl] = useState11("");
|
7178
7369
|
const allChildItems = useMemo3(() => {
|
7179
7370
|
const result = [];
|
7180
7371
|
const extractChildren = (items) => {
|
@@ -7227,7 +7418,7 @@ function BasicAppShell({ children, menu, extraTopRight, title }) {
|
|
7227
7418
|
basicAppShellStore.setProperty("note", linkItem == null ? void 0 : linkItem.note);
|
7228
7419
|
basicAppShellStore.setProperty("status", linkItem == null ? void 0 : linkItem.status);
|
7229
7420
|
}, [pathName]);
|
7230
|
-
return /* @__PURE__ */
|
7421
|
+
return /* @__PURE__ */ jsxs31(
|
7231
7422
|
AppShell,
|
7232
7423
|
{
|
7233
7424
|
header: { height: 60 },
|
@@ -7241,80 +7432,80 @@ function BasicAppShell({ children, menu, extraTopRight, title }) {
|
|
7241
7432
|
},
|
7242
7433
|
padding: "md",
|
7243
7434
|
children: [
|
7244
|
-
/* @__PURE__ */
|
7245
|
-
/* @__PURE__ */
|
7246
|
-
/* @__PURE__ */
|
7435
|
+
/* @__PURE__ */ jsx54(AppShell.Header, { children: media ? /* @__PURE__ */ jsxs31(Group18, { h: "100%", px: "md", justify: "space-between", align: "center", children: [
|
7436
|
+
/* @__PURE__ */ jsxs31(Group18, { h: "100%", children: [
|
7437
|
+
/* @__PURE__ */ jsx54(
|
7247
7438
|
Tooltip5,
|
7248
7439
|
{
|
7249
7440
|
label: basicAppShellStore.state.opened ? "\u1EA8n thanh menu" : "Hi\u1EC7n thanh menu",
|
7250
|
-
children: /* @__PURE__ */
|
7441
|
+
children: /* @__PURE__ */ jsx54(
|
7251
7442
|
ActionIcon11,
|
7252
7443
|
{
|
7253
7444
|
size: "lg",
|
7254
7445
|
radius: "md",
|
7255
7446
|
variant: "default",
|
7256
7447
|
onClick: basicAppShellStore.toggle,
|
7257
|
-
children: basicAppShellStore.state.opened ? /* @__PURE__ */
|
7448
|
+
children: basicAppShellStore.state.opened ? /* @__PURE__ */ jsx54(IconLayoutSidebarLeftExpand, {}) : /* @__PURE__ */ jsx54(IconLayoutSidebarLeftCollapse, {})
|
7258
7449
|
}
|
7259
7450
|
)
|
7260
7451
|
}
|
7261
7452
|
),
|
7262
|
-
/* @__PURE__ */
|
7453
|
+
/* @__PURE__ */ jsx54(Tooltip5, { label: "\u0110\xF3ng t\u1EA5t c\u1EA3 menu", children: /* @__PURE__ */ jsx54(
|
7263
7454
|
ActionIcon11,
|
7264
7455
|
{
|
7265
7456
|
size: "lg",
|
7266
7457
|
radius: "md",
|
7267
7458
|
variant: "default",
|
7268
7459
|
onClick: () => basicAppShellStore.clearGroupMenuOpenId(),
|
7269
|
-
children: /* @__PURE__ */
|
7460
|
+
children: /* @__PURE__ */ jsx54(IconLibraryMinus, {})
|
7270
7461
|
}
|
7271
7462
|
) })
|
7272
7463
|
] }),
|
7273
|
-
/* @__PURE__ */
|
7274
|
-
|
7464
|
+
/* @__PURE__ */ jsx54(
|
7465
|
+
Group18,
|
7275
7466
|
{
|
7276
7467
|
style: {
|
7277
7468
|
position: "absolute",
|
7278
7469
|
left: "50%",
|
7279
7470
|
transform: "translateX(-50%)"
|
7280
7471
|
},
|
7281
|
-
children: /* @__PURE__ */
|
7472
|
+
children: /* @__PURE__ */ jsx54(Text16, { c: "green", fw: "bold", size: "sm", children: title ? title : `${basicAppShellStore.state.moduleCode} - ${basicAppShellStore.state.moduleName}` })
|
7282
7473
|
}
|
7283
7474
|
),
|
7284
|
-
/* @__PURE__ */
|
7475
|
+
/* @__PURE__ */ jsxs31(Group18, { children: [
|
7285
7476
|
extraTopRight,
|
7286
|
-
/* @__PURE__ */
|
7477
|
+
/* @__PURE__ */ jsx54(MySwitchTheme, {})
|
7287
7478
|
] })
|
7288
7479
|
] }) : (
|
7289
7480
|
// For mobile screens - simplified layout
|
7290
|
-
/* @__PURE__ */
|
7291
|
-
/* @__PURE__ */
|
7481
|
+
/* @__PURE__ */ jsxs31(Group18, { h: "100%", px: "md", justify: "space-between", children: [
|
7482
|
+
/* @__PURE__ */ jsx54(
|
7292
7483
|
ActionIcon11,
|
7293
7484
|
{
|
7294
7485
|
size: "lg",
|
7295
7486
|
radius: "md",
|
7296
7487
|
variant: "default",
|
7297
7488
|
onClick: basicAppShellStore.toggle,
|
7298
|
-
children: basicAppShellStore.state.opened ? /* @__PURE__ */
|
7489
|
+
children: basicAppShellStore.state.opened ? /* @__PURE__ */ jsx54(IconLayoutSidebarLeftExpand, {}) : /* @__PURE__ */ jsx54(IconLayoutSidebarLeftCollapse, {})
|
7299
7490
|
}
|
7300
7491
|
),
|
7301
|
-
/* @__PURE__ */
|
7302
|
-
/* @__PURE__ */
|
7492
|
+
/* @__PURE__ */ jsx54(Text16, { c: "green", fw: "bold", size: "sm", children: title ? title : `${basicAppShellStore.state.moduleCode} - ${basicAppShellStore.state.moduleName}` }),
|
7493
|
+
/* @__PURE__ */ jsxs31(Group18, { children: [
|
7303
7494
|
extraTopRight,
|
7304
|
-
/* @__PURE__ */
|
7495
|
+
/* @__PURE__ */ jsx54(MySwitchTheme, {})
|
7305
7496
|
] })
|
7306
7497
|
] })
|
7307
7498
|
) }),
|
7308
|
-
/* @__PURE__ */
|
7309
|
-
/* @__PURE__ */
|
7310
|
-
/* @__PURE__ */
|
7311
|
-
/* @__PURE__ */
|
7312
|
-
/* @__PURE__ */
|
7313
|
-
/* @__PURE__ */
|
7499
|
+
/* @__PURE__ */ jsxs31(AppShell.Navbar, { children: [
|
7500
|
+
/* @__PURE__ */ jsx54(MyAppSpotlight, { menu }),
|
7501
|
+
/* @__PURE__ */ jsxs31(AppShell.Section, { grow: true, component: ScrollArea3, p: 5, children: [
|
7502
|
+
/* @__PURE__ */ jsx54(RenderNavLinks, { items: menu }),
|
7503
|
+
/* @__PURE__ */ jsx54(Divider3, {}),
|
7504
|
+
/* @__PURE__ */ jsx54(F_authenticate_Logout, {})
|
7314
7505
|
] }),
|
7315
|
-
/* @__PURE__ */
|
7316
|
-
/* @__PURE__ */
|
7317
|
-
/* @__PURE__ */
|
7506
|
+
/* @__PURE__ */ jsxs31(AppShell.Section, { p: "md", children: [
|
7507
|
+
/* @__PURE__ */ jsx54(Divider3, {}),
|
7508
|
+
/* @__PURE__ */ jsx54(
|
7318
7509
|
Image3,
|
7319
7510
|
{
|
7320
7511
|
fit: "contain",
|
@@ -7328,7 +7519,7 @@ function BasicAppShell({ children, menu, extraTopRight, title }) {
|
|
7328
7519
|
)
|
7329
7520
|
] })
|
7330
7521
|
] }),
|
7331
|
-
/* @__PURE__ */
|
7522
|
+
/* @__PURE__ */ jsx54(
|
7332
7523
|
AppShell.Main,
|
7333
7524
|
{
|
7334
7525
|
bg: "light-dark(var(--mantine-color-gray-1), var(--mantine-color-dark-8))",
|
@@ -7383,31 +7574,24 @@ function utils_layout_getItemsWithoutLinks(menu) {
|
|
7383
7574
|
|
7384
7575
|
// src/components/Layouts/Container/MyContainer.tsx
|
7385
7576
|
import { Container, Flex as Flex5 } from "@mantine/core";
|
7386
|
-
import { jsx as
|
7577
|
+
import { jsx as jsx55 } from "react/jsx-runtime";
|
7387
7578
|
function MyContainer(_a) {
|
7388
7579
|
var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
|
7389
|
-
return /* @__PURE__ */
|
7580
|
+
return /* @__PURE__ */ jsx55(Container, __spreadProps(__spreadValues({ fluid: true }, rest), { children: /* @__PURE__ */ jsx55(Flex5, { direction: "column", children }) }));
|
7390
7581
|
}
|
7391
7582
|
|
7392
|
-
// src/constants/object/color.ts
|
7393
|
-
var OBJECT_COlORS = {
|
7394
|
-
mantineBackgroundPrimary: "light-dark(var(--mantine-color-white), var(--mantine-color-dark))",
|
7395
|
-
mantineBackgroundSecondary: "light-dark(var(--mantine-color-gray-1), var(--mantine-color-dark-8))",
|
7396
|
-
mantineBackgroundBlueLight: "var(--mantine-color-blue-light)"
|
7397
|
-
};
|
7398
|
-
|
7399
7583
|
// src/components/Layouts/HeaderMegaMenu/HeaderMegaMenu.tsx
|
7400
7584
|
import {
|
7401
7585
|
Box as Box4,
|
7402
7586
|
Burger,
|
7403
|
-
Button as
|
7587
|
+
Button as Button16,
|
7404
7588
|
Container as Container2,
|
7405
|
-
Divider as
|
7589
|
+
Divider as Divider4,
|
7406
7590
|
Drawer,
|
7407
|
-
Group as
|
7591
|
+
Group as Group19,
|
7408
7592
|
Image as Image4,
|
7409
7593
|
ScrollArea as ScrollArea4,
|
7410
|
-
Text as
|
7594
|
+
Text as Text17,
|
7411
7595
|
TextInput as TextInput3,
|
7412
7596
|
ThemeIcon,
|
7413
7597
|
UnstyledButton,
|
@@ -7439,7 +7623,7 @@ function useHeaderMegaMenuStore() {
|
|
7439
7623
|
}
|
7440
7624
|
|
7441
7625
|
// src/components/Layouts/HeaderMegaMenu/HeaderMegaMenu.tsx
|
7442
|
-
import { jsx as
|
7626
|
+
import { jsx as jsx56, jsxs as jsxs32 } from "react/jsx-runtime";
|
7443
7627
|
var mockdata = [
|
7444
7628
|
{
|
7445
7629
|
icon: IconCode,
|
@@ -7477,27 +7661,27 @@ function HeaderMegaMenu({ children, menus }) {
|
|
7477
7661
|
const [linksOpened, { toggle: toggleLinks }] = useDisclosure11(false);
|
7478
7662
|
const HeaderMegaMenuStore = useHeaderMegaMenuStore();
|
7479
7663
|
const theme = useMantineTheme();
|
7480
|
-
const links = mockdata.map((item) => /* @__PURE__ */
|
7481
|
-
/* @__PURE__ */
|
7482
|
-
/* @__PURE__ */
|
7483
|
-
/* @__PURE__ */
|
7484
|
-
/* @__PURE__ */
|
7664
|
+
const links = mockdata.map((item) => /* @__PURE__ */ jsx56(UnstyledButton, { className: css_default.subLink, children: /* @__PURE__ */ jsxs32(Group19, { wrap: "nowrap", align: "flex-start", children: [
|
7665
|
+
/* @__PURE__ */ jsx56(ThemeIcon, { size: 34, variant: "default", radius: "md", children: /* @__PURE__ */ jsx56(item.icon, { size: 22, color: theme.colors.blue[6] }) }),
|
7666
|
+
/* @__PURE__ */ jsxs32("div", { children: [
|
7667
|
+
/* @__PURE__ */ jsx56(Text17, { size: "sm", fw: 500, children: item.title }),
|
7668
|
+
/* @__PURE__ */ jsx56(Text17, { size: "xs", c: "dimmed", children: item.description })
|
7485
7669
|
] })
|
7486
7670
|
] }) }, item.title));
|
7487
|
-
return /* @__PURE__ */
|
7488
|
-
/* @__PURE__ */
|
7489
|
-
/* @__PURE__ */
|
7490
|
-
/* @__PURE__ */
|
7491
|
-
/* @__PURE__ */
|
7671
|
+
return /* @__PURE__ */ jsxs32(Box4, { children: [
|
7672
|
+
/* @__PURE__ */ jsx56("header", { className: css_default.header, children: /* @__PURE__ */ jsxs32(Group19, { justify: "space-between", h: "100%", children: [
|
7673
|
+
/* @__PURE__ */ jsxs32(Group19, { children: [
|
7674
|
+
/* @__PURE__ */ jsx56(Image4, { src: "/imgs/0/IMG0LogoAQTech.png", h: 30, alt: "", w: "auto" }),
|
7675
|
+
/* @__PURE__ */ jsx56(Group19, { h: "100%", gap: 5, visibleFrom: "sm", children: menus == null ? void 0 : menus.map((item, idx) => /* @__PURE__ */ jsx56(Button16, { component: Link4, href: item.href, variant: HeaderMegaMenuStore.state.name == item.label ? "light" : "subtle", onClick: () => HeaderMegaMenuStore.setState({ name: item.label }), children: item.label }, idx)) })
|
7492
7676
|
] }),
|
7493
|
-
/* @__PURE__ */
|
7494
|
-
/* @__PURE__ */
|
7495
|
-
/* @__PURE__ */
|
7677
|
+
/* @__PURE__ */ jsxs32(Group19, { children: [
|
7678
|
+
/* @__PURE__ */ jsx56(TextInput3, { placeholder: "T\xECm ki\u1EBFm", leftSection: /* @__PURE__ */ jsx56(IconSearch2, {}), radius: "xl", w: "250px" }),
|
7679
|
+
/* @__PURE__ */ jsx56(MySwitchTheme, {})
|
7496
7680
|
] }),
|
7497
|
-
/* @__PURE__ */
|
7681
|
+
/* @__PURE__ */ jsx56(Burger, { opened: drawerOpened, onClick: toggleDrawer, hiddenFrom: "sm" })
|
7498
7682
|
] }) }),
|
7499
|
-
/* @__PURE__ */
|
7500
|
-
/* @__PURE__ */
|
7683
|
+
/* @__PURE__ */ jsx56(Container2, { fluid: true, pt: "sm", pb: "md", bg: object_colors.mantineBackgroundSecondary, mih: "93vh", children }),
|
7684
|
+
/* @__PURE__ */ jsx56(
|
7501
7685
|
Drawer,
|
7502
7686
|
{
|
7503
7687
|
opened: drawerOpened,
|
@@ -7507,10 +7691,10 @@ function HeaderMegaMenu({ children, menus }) {
|
|
7507
7691
|
title: "Navigation",
|
7508
7692
|
hiddenFrom: "sm",
|
7509
7693
|
zIndex: 1e6,
|
7510
|
-
children: /* @__PURE__ */
|
7511
|
-
/* @__PURE__ */
|
7512
|
-
/* @__PURE__ */
|
7513
|
-
/* @__PURE__ */
|
7694
|
+
children: /* @__PURE__ */ jsxs32(ScrollArea4, { h: "calc(100vh - 80px", mx: "-md", children: [
|
7695
|
+
/* @__PURE__ */ jsx56(Divider4, { my: "sm" }),
|
7696
|
+
/* @__PURE__ */ jsx56(MyFlexColumn, { h: "100%", gap: 0, children: menus == null ? void 0 : menus.map((item, idx) => /* @__PURE__ */ jsx56(Button16, { component: Link4, href: item.href, variant: HeaderMegaMenuStore.state.name == item.label ? "light" : "subtle", onClick: () => HeaderMegaMenuStore.setState({ name: item.label }), children: item.label }, idx)) }),
|
7697
|
+
/* @__PURE__ */ jsx56(Divider4, { my: "sm" })
|
7514
7698
|
] })
|
7515
7699
|
}
|
7516
7700
|
)
|
@@ -7518,8 +7702,8 @@ function HeaderMegaMenu({ children, menus }) {
|
|
7518
7702
|
}
|
7519
7703
|
|
7520
7704
|
// src/components/Layouts/PageContent/MyPageContent.tsx
|
7521
|
-
import { Badge as
|
7522
|
-
import { jsx as
|
7705
|
+
import { Badge as Badge5, Breadcrumbs, Code, Container as Container3, Divider as Divider5, Group as Group20, Text as Text18, Title } from "@mantine/core";
|
7706
|
+
import { jsx as jsx57, jsxs as jsxs33 } from "react/jsx-runtime";
|
7523
7707
|
var getStatusColor = (status) => {
|
7524
7708
|
switch (status) {
|
7525
7709
|
case "Prototype":
|
@@ -7530,11 +7714,11 @@ var getStatusColor = (status) => {
|
|
7530
7714
|
};
|
7531
7715
|
function PageTitle({ title, status, note }) {
|
7532
7716
|
const color = getStatusColor(status);
|
7533
|
-
return /* @__PURE__ */
|
7534
|
-
/* @__PURE__ */
|
7535
|
-
/* @__PURE__ */
|
7536
|
-
status && /* @__PURE__ */
|
7537
|
-
|
7717
|
+
return /* @__PURE__ */ jsx57(Group20, { children: /* @__PURE__ */ jsxs33(MyFlexColumn, { gap: 0, children: [
|
7718
|
+
/* @__PURE__ */ jsxs33(Group20, { align: "center", children: [
|
7719
|
+
/* @__PURE__ */ jsx57(Title, { order: 3, children: title }),
|
7720
|
+
status && /* @__PURE__ */ jsx57(
|
7721
|
+
Badge5,
|
7538
7722
|
{
|
7539
7723
|
variant: "gradient",
|
7540
7724
|
gradient: { from: color, to: `${color}.5` },
|
@@ -7544,7 +7728,7 @@ function PageTitle({ title, status, note }) {
|
|
7544
7728
|
}
|
7545
7729
|
)
|
7546
7730
|
] }),
|
7547
|
-
/* @__PURE__ */
|
7731
|
+
/* @__PURE__ */ jsx57(Text18, { size: "lg", c: "dimmed", fs: "italic", children: note })
|
7548
7732
|
] }) });
|
7549
7733
|
}
|
7550
7734
|
function MyPageContent({
|
@@ -7557,11 +7741,11 @@ function MyPageContent({
|
|
7557
7741
|
var _a;
|
7558
7742
|
const basicAppShellStore = useS_BasicAppShell();
|
7559
7743
|
const finalTitle = title || basicAppShellStore.state.title;
|
7560
|
-
return /* @__PURE__ */
|
7561
|
-
/* @__PURE__ */
|
7562
|
-
/* @__PURE__ */
|
7563
|
-
/* @__PURE__ */
|
7564
|
-
/* @__PURE__ */
|
7744
|
+
return /* @__PURE__ */ jsxs33(Container3, { p: 0, fluid: true, children: [
|
7745
|
+
/* @__PURE__ */ jsxs33(Group20, { justify: "space-between", children: [
|
7746
|
+
/* @__PURE__ */ jsxs33(Group20, { children: [
|
7747
|
+
/* @__PURE__ */ jsx57(MyButtonRouterBack, {}),
|
7748
|
+
/* @__PURE__ */ jsx57(
|
7565
7749
|
PageTitle,
|
7566
7750
|
{
|
7567
7751
|
title: finalTitle,
|
@@ -7571,64 +7755,64 @@ function MyPageContent({
|
|
7571
7755
|
),
|
7572
7756
|
leftTopBar
|
7573
7757
|
] }),
|
7574
|
-
/* @__PURE__ */
|
7758
|
+
/* @__PURE__ */ jsxs33(Group20, { p: "md", children: [
|
7575
7759
|
rightTopBar,
|
7576
|
-
/* @__PURE__ */
|
7760
|
+
/* @__PURE__ */ jsx57(Breadcrumbs, { separatorMargin: "7", children: (_a = basicAppShellStore.state.breadcrumb) == null ? void 0 : _a.map((item, idx) => /* @__PURE__ */ jsx57(Text18, { fw: "600", c: "blue", children: item }, idx)) })
|
7577
7761
|
] })
|
7578
7762
|
] }),
|
7579
|
-
/* @__PURE__ */
|
7763
|
+
/* @__PURE__ */ jsx57(Divider5, { my: "xs" }),
|
7580
7764
|
children,
|
7581
|
-
/* @__PURE__ */
|
7582
|
-
/* @__PURE__ */
|
7765
|
+
/* @__PURE__ */ jsx57(Divider5, { my: "xs" }),
|
7766
|
+
/* @__PURE__ */ jsx57(MyFlexEnd, { children: /* @__PURE__ */ jsx57(Code, { color: "var(--mantine-color-blue-light)", children: basicAppShellStore.state.menuCode }) })
|
7583
7767
|
] });
|
7584
7768
|
}
|
7585
7769
|
|
7586
7770
|
// src/components/Layouts/Tab/MyTab.tsx
|
7587
7771
|
import { rem, Space as Space3, Tabs } from "@mantine/core";
|
7588
|
-
import { jsx as
|
7772
|
+
import { jsx as jsx58, jsxs as jsxs34 } from "react/jsx-runtime";
|
7589
7773
|
function MyTab(_a) {
|
7590
7774
|
var _b = _a, { tabList, children } = _b, rest = __objRest(_b, ["tabList", "children"]);
|
7591
7775
|
const iconStyle = { width: rem(20), height: rem(20) };
|
7592
|
-
return /* @__PURE__ */
|
7593
|
-
/* @__PURE__ */
|
7594
|
-
return /* @__PURE__ */
|
7776
|
+
return /* @__PURE__ */ jsxs34(Tabs, __spreadProps(__spreadValues({ defaultValue: tabList[0].label }, rest), { children: [
|
7777
|
+
/* @__PURE__ */ jsx58(Tabs.List, { children: tabList.map((item, idx) => {
|
7778
|
+
return /* @__PURE__ */ jsx58(Tabs.Tab, { value: item.label, leftSection: item.icon && /* @__PURE__ */ jsx58(item.icon, { style: iconStyle }), children: item.label }, idx);
|
7595
7779
|
}) }),
|
7596
|
-
/* @__PURE__ */
|
7780
|
+
/* @__PURE__ */ jsx58(Space3, { my: "md" }),
|
7597
7781
|
children
|
7598
7782
|
] }));
|
7599
7783
|
}
|
7600
7784
|
|
7601
7785
|
// src/components/RESTAPIComponents/DataTableSelect/MyDataTableSelect.tsx
|
7602
|
-
import { ActionIcon as ActionIcon12, Button as
|
7786
|
+
import { ActionIcon as ActionIcon12, Button as Button17, Fieldset as Fieldset5, Group as Group21, Modal as Modal11 } from "@mantine/core";
|
7603
7787
|
import { useDisclosure as useDisclosure12 } from "@mantine/hooks";
|
7604
7788
|
import { IconX as IconX2 } from "@tabler/icons-react";
|
7605
|
-
import { jsx as
|
7789
|
+
import { jsx as jsx59, jsxs as jsxs35 } from "react/jsx-runtime";
|
7606
7790
|
function MyDataTableSelect(_a) {
|
7607
7791
|
var _b = _a, { modalSize, renderTopToolbarCustomActions, data, selectButtonlabel, listState, columns, listLabel } = _b, rest = __objRest(_b, ["modalSize", "renderTopToolbarCustomActions", "data", "selectButtonlabel", "listState", "columns", "listLabel"]);
|
7608
7792
|
const disc = useDisclosure12(false);
|
7609
7793
|
if (data == void 0) return "\u0110ang t\u1EA3i...";
|
7610
|
-
return /* @__PURE__ */
|
7611
|
-
/* @__PURE__ */
|
7794
|
+
return /* @__PURE__ */ jsxs35(Fieldset5, { legend: listLabel ? listLabel : "Danh s\xE1ch", children: [
|
7795
|
+
/* @__PURE__ */ jsx59(
|
7612
7796
|
MyDataTable,
|
7613
7797
|
__spreadValues({
|
7614
7798
|
renderTopToolbarCustomActions: ({ table }) => {
|
7615
|
-
return /* @__PURE__ */
|
7799
|
+
return /* @__PURE__ */ jsxs35(Group21, { children: [
|
7616
7800
|
renderTopToolbarCustomActions && renderTopToolbarCustomActions({ table }),
|
7617
|
-
/* @__PURE__ */
|
7801
|
+
/* @__PURE__ */ jsx59(Button17, { onClick: disc[1].open, children: selectButtonlabel || "Ch\u1ECDn t\u1EEB danh s\xE1ch" })
|
7618
7802
|
] });
|
7619
7803
|
},
|
7620
7804
|
columns,
|
7621
7805
|
data: listState[0],
|
7622
7806
|
renderRowActions: ({ row }) => {
|
7623
|
-
return /* @__PURE__ */
|
7807
|
+
return /* @__PURE__ */ jsx59(MyCenterFull, { children: /* @__PURE__ */ jsx59(ActionIcon12, { color: "red", onClick: () => listState[1].remove(row.index), children: /* @__PURE__ */ jsx59(IconX2, {}) }) });
|
7624
7808
|
}
|
7625
7809
|
}, rest)
|
7626
7810
|
),
|
7627
|
-
/* @__PURE__ */
|
7811
|
+
/* @__PURE__ */ jsx59(Modal11, { opened: disc[0], onClose: disc[1].close, size: modalSize || "80%", children: /* @__PURE__ */ jsx59(
|
7628
7812
|
MyDataTable,
|
7629
7813
|
__spreadValues({
|
7630
7814
|
renderTopToolbarCustomActions: ({ table }) => {
|
7631
|
-
return /* @__PURE__ */
|
7815
|
+
return /* @__PURE__ */ jsx59(Button17, { onClick: () => {
|
7632
7816
|
table.getSelectedRowModel().rows.map((item) => listState[1].append(item.original));
|
7633
7817
|
disc[1].close();
|
7634
7818
|
}, children: "Ch\u1ECDn" });
|
@@ -7644,7 +7828,7 @@ function MyDataTableSelect(_a) {
|
|
7644
7828
|
// src/components/RESTAPIComponents/SelectAPIGet/MySelectAPIGet.tsx
|
7645
7829
|
import { Select as Select3 } from "@mantine/core";
|
7646
7830
|
import { useQuery as useQuery2 } from "@tanstack/react-query";
|
7647
|
-
import { jsx as
|
7831
|
+
import { jsx as jsx60 } from "react/jsx-runtime";
|
7648
7832
|
function MySelectAPIGet(_a) {
|
7649
7833
|
var _b = _a, { apiGet, label = "", dataMapper } = _b, rest = __objRest(_b, ["apiGet", "label", "dataMapper"]);
|
7650
7834
|
var _a2;
|
@@ -7663,7 +7847,7 @@ function MySelectAPIGet(_a) {
|
|
7663
7847
|
label: `${item.code}-${item.name}`
|
7664
7848
|
};
|
7665
7849
|
});
|
7666
|
-
return /* @__PURE__ */
|
7850
|
+
return /* @__PURE__ */ jsx60(
|
7667
7851
|
Select3,
|
7668
7852
|
__spreadValues({
|
7669
7853
|
label,
|
@@ -7676,9 +7860,9 @@ function MySelectAPIGet(_a) {
|
|
7676
7860
|
// src/components/ScheduleX/MyScheduleX.tsx
|
7677
7861
|
import { useNextCalendarApp as useNextCalendarApp2, ScheduleXCalendar as ScheduleXCalendar2 } from "@schedule-x/react";
|
7678
7862
|
import { createEventsServicePlugin as createEventsServicePlugin2 } from "@schedule-x/events-service";
|
7679
|
-
import { useState as
|
7863
|
+
import { useState as useState12 } from "react";
|
7680
7864
|
import { createEventModalPlugin as createEventModalPlugin2 } from "@schedule-x/event-modal";
|
7681
|
-
import { jsx as
|
7865
|
+
import { jsx as jsx61 } from "react/jsx-runtime";
|
7682
7866
|
function MyScheduleX({
|
7683
7867
|
values,
|
7684
7868
|
timeGridEvent,
|
@@ -7687,8 +7871,8 @@ function MyScheduleX({
|
|
7687
7871
|
startDayBoundaries = "05:00",
|
7688
7872
|
endDayBoundaries = "21:00"
|
7689
7873
|
}) {
|
7690
|
-
const eventsService =
|
7691
|
-
const eventModalPlugin =
|
7874
|
+
const eventsService = useState12(() => createEventsServicePlugin2())[0];
|
7875
|
+
const eventModalPlugin = useState12(() => createEventModalPlugin2())[0];
|
7692
7876
|
const calendar = useNextCalendarApp2({
|
7693
7877
|
locale: "vi-VN",
|
7694
7878
|
dayBoundaries: {
|
@@ -7703,7 +7887,7 @@ function MyScheduleX({
|
|
7703
7887
|
events: values,
|
7704
7888
|
plugins: [eventsService, eventModalPlugin]
|
7705
7889
|
});
|
7706
|
-
return /* @__PURE__ */
|
7890
|
+
return /* @__PURE__ */ jsx61(
|
7707
7891
|
ScheduleXCalendar2,
|
7708
7892
|
{
|
7709
7893
|
calendarApp: calendar,
|
@@ -7717,9 +7901,9 @@ function MyScheduleX({
|
|
7717
7901
|
|
7718
7902
|
// src/components/Skeletons/SkeletonTable/MySkeletonTable.tsx
|
7719
7903
|
import { Skeleton } from "@mantine/core";
|
7720
|
-
import { jsx as
|
7904
|
+
import { jsx as jsx62 } from "react/jsx-runtime";
|
7721
7905
|
function MySkeletonTable({ h: h4 = 500 }) {
|
7722
|
-
return /* @__PURE__ */
|
7906
|
+
return /* @__PURE__ */ jsx62(Skeleton, { h: h4 });
|
7723
7907
|
}
|
7724
7908
|
|
7725
7909
|
export {
|
@@ -7772,11 +7956,14 @@ export {
|
|
7772
7956
|
useS_BasicAppShell,
|
7773
7957
|
FaviconSetter,
|
7774
7958
|
MyDateInput,
|
7959
|
+
MyDayOfWeekPicker,
|
7775
7960
|
MyFieldset,
|
7776
7961
|
MyFileInput,
|
7777
7962
|
MyNumberInput,
|
7778
7963
|
MyTextArea,
|
7779
7964
|
MyTextEditor,
|
7965
|
+
object_colors,
|
7966
|
+
MyWeeklySessionSchedulerPicker,
|
7780
7967
|
useS_authenticate,
|
7781
7968
|
F_authenticate_Logout,
|
7782
7969
|
BasicAppShell_transformMenuToEnum,
|
@@ -7784,7 +7971,6 @@ export {
|
|
7784
7971
|
groupToTwoLevels,
|
7785
7972
|
utils_layout_getItemsWithoutLinks,
|
7786
7973
|
MyContainer,
|
7787
|
-
OBJECT_COlORS,
|
7788
7974
|
useHeaderMegaMenuStore,
|
7789
7975
|
HeaderMegaMenu,
|
7790
7976
|
MyPageContent,
|