aq-fe-framework 0.1.308 → 0.1.310
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/chunk-HHJFKKE7.mjs +26 -0
- package/dist/{chunk-NRFQDAYS.mjs → chunk-M6B6SXA3.mjs} +5 -5
- package/dist/chunk-MK2W26FZ.mjs +518 -0
- package/dist/{chunk-KKJ3OEEW.mjs → chunk-OPVLK7PA.mjs} +48 -5
- package/dist/{chunk-IMCUF52C.mjs → chunk-RYZTACZ4.mjs} +168 -310
- package/dist/components/index.d.mts +7 -15
- package/dist/components/index.mjs +4 -7
- package/dist/core/index.d.mts +20 -8
- package/dist/core/index.mjs +20 -336
- package/dist/{createBaseApi-BAYnbGVT.d.mts → createBaseApi-BayOeFCy.d.mts} +12 -3
- package/dist/hooks/index.d.mts +20 -3
- package/dist/hooks/index.mjs +5 -1
- package/dist/interfaces/index.d.mts +6 -2
- package/dist/modules-features/index.d.mts +102 -35
- package/dist/modules-features/index.mjs +1460 -877
- package/dist/utils/index.mjs +1 -1
- package/package.json +1 -2
- package/dist/chunk-DRLKXVYU.mjs +0 -55
@@ -2,7 +2,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import React$1, { ReactNode, ComponentProps } from 'react';
|
3
3
|
import { t as type_action, T as TYPES_MANTINE_SIZE } from '../types-B5rmBuXz.mjs';
|
4
4
|
import { ActionIconProps, ButtonProps, useModalsStack, CheckboxProps, SelectProps, NumberFormatterProps, FieldsetProps, FileInputProps, NumberInputProps, TextareaProps, MantineSize, InputWrapperProps, TextInputProps, ContainerProps, FlexProps, GroupProps, TypographyStylesProviderProps, TabsProps, SkeletonProps } from '@mantine/core';
|
5
|
-
import { M as MyApiResponse } from '../createBaseApi-
|
5
|
+
import { M as MyApiResponse } from '../createBaseApi-BayOeFCy.mjs';
|
6
6
|
import { AxiosResponse } from 'axios';
|
7
7
|
import { useDisclosure, useListState } from '@mantine/hooks';
|
8
8
|
import { UseFormReturnType, useForm } from '@mantine/form';
|
@@ -315,8 +315,12 @@ interface MyDataTableProps<TData extends MRT_RowData> extends MRT_TableOptions<T
|
|
315
315
|
setSelectedRow?: (data: any) => void;
|
316
316
|
isError?: boolean;
|
317
317
|
isLoading?: boolean;
|
318
|
+
pagination?: {
|
319
|
+
pageIndex: number;
|
320
|
+
pageSize: number;
|
321
|
+
};
|
318
322
|
}
|
319
|
-
declare function MyDataTable<TData extends MRT_RowData>({ formats, exportAble, csvConfigProps, rowActionSize, columns, data, renderTopToolbarCustomActions, setSelectedRow, isError, isLoading, ...rest }: MyDataTableProps<TData>): react_jsx_runtime.JSX.Element | undefined;
|
323
|
+
declare function MyDataTable<TData extends MRT_RowData>({ formats, exportAble, csvConfigProps, rowActionSize, columns, data, renderTopToolbarCustomActions, setSelectedRow, isError, isLoading, pagination, ...rest }: MyDataTableProps<TData>): react_jsx_runtime.JSX.Element | undefined;
|
320
324
|
|
321
325
|
interface MyIconTextProps {
|
322
326
|
icon?: React.ElementType;
|
@@ -395,18 +399,6 @@ interface IMyTextInput extends TextInputProps {
|
|
395
399
|
}
|
396
400
|
declare function MyTextInput({ label, defaultValue, isPhoneNumber, ...rest }: IMyTextInput): react_jsx_runtime.JSX.Element;
|
397
401
|
|
398
|
-
interface IWeeklySession {
|
399
|
-
dayOfWeek: number;
|
400
|
-
startPeriod: number;
|
401
|
-
numberOfPeriods: number;
|
402
|
-
durationMinutes: number;
|
403
|
-
}
|
404
|
-
interface WeeklySessionSchedulerProps {
|
405
|
-
value?: IWeeklySession[];
|
406
|
-
onChange?: (val: IWeeklySession[]) => void;
|
407
|
-
}
|
408
|
-
declare function MyWeeklySessionSchedulerPicker({ value, onChange, }: WeeklySessionSchedulerProps): react_jsx_runtime.JSX.Element;
|
409
|
-
|
410
402
|
interface I$2 {
|
411
403
|
moduleCode?: string;
|
412
404
|
moduleName?: string;
|
@@ -541,4 +533,4 @@ interface IMySkeletonTable extends SkeletonProps {
|
|
541
533
|
}
|
542
534
|
declare function MySkeletonTable({ h }: IMySkeletonTable): react_jsx_runtime.JSX.Element;
|
543
535
|
|
544
|
-
export { AQButtonCreateByImportFile, AQButtonExportData, AQCard, AQSelectTableByOpenModal, AQStatCard1, Boxes, FaviconSetter, HeaderMegaMenu, type IAQCardProps, type IMyTextEditor,
|
536
|
+
export { AQButtonCreateByImportFile, AQButtonExportData, AQCard, AQSelectTableByOpenModal, AQStatCard1, Boxes, FaviconSetter, HeaderMegaMenu, type IAQCardProps, type IMyTextEditor, I_BasicAppShell_LinkItem, MyActionIcon, MyActionIconCheck, MyActionIconDelete, MyActionIconDownloadPDF, MyActionIconModal, MyActionIconUpdate, MyActionIconUpload, MyActionIconViewPDF, MyAnchorViewPDF, MyAppSpotlight, MyBoxesBackground, MyBoxesCore, MyButton, MyButtonCreate, MyButtonDeleteList, MyButtonImport, MyButtonModal, MyButtonPrintPDF, MyButtonPrintTablePDF, MyButtonRouterBack, MyButtonViewPDF, MyCalendar, MyCardInformation, MyCardioLoader, MyCenterFull, MyCheckbox, MyContainer, MyDataTable, type MyDataTableInternalProps, type MyDataTableProps, MyDataTableSelect, MyDateInput, MyFieldset, MyFileInput, MyFlexColumn, MyFlexEnd, MyFlexRow, MyHtmlWrapper, MyIconText, MyKeyLabel, MyNumberFormatter, MyNumberInput, MyPageContent, MyScheduleX, MySelect, MySelectAPIGet, MySkeletonTable, MySwitchTheme, MyTab, MyTextArea, MyTextEditor, MyTextInput, SelectFieldModal, SelectFileModal, type SelectFileModalProps, useHeaderMegaMenuStore, useS_BasicAppShell, useS_ButtonImport };
|
@@ -57,7 +57,6 @@ import {
|
|
57
57
|
MyTextArea,
|
58
58
|
MyTextEditor,
|
59
59
|
MyTextInput,
|
60
|
-
MyWeeklySessionSchedulerPicker,
|
61
60
|
SelectFieldModal,
|
62
61
|
SelectFileModal,
|
63
62
|
groupToTwoLevels,
|
@@ -65,15 +64,14 @@ import {
|
|
65
64
|
useS_BasicAppShell,
|
66
65
|
useS_ButtonImport,
|
67
66
|
utils_layout_getItemsWithoutLinks
|
68
|
-
} from "../chunk-
|
67
|
+
} from "../chunk-RYZTACZ4.mjs";
|
69
68
|
import "../chunk-5U2JSHSJ.mjs";
|
70
|
-
import "../chunk-NWBLJ3W3.mjs";
|
71
69
|
import {
|
72
70
|
MyFlexColumn,
|
73
71
|
MyFlexRow
|
74
|
-
} from "../chunk-
|
75
|
-
import "../chunk-
|
76
|
-
import "../chunk-
|
72
|
+
} from "../chunk-HHJFKKE7.mjs";
|
73
|
+
import "../chunk-NWBLJ3W3.mjs";
|
74
|
+
import "../chunk-OPVLK7PA.mjs";
|
77
75
|
import "../chunk-7ZCOFATU.mjs";
|
78
76
|
import "../chunk-Y3YGC5IH.mjs";
|
79
77
|
import "../chunk-FWCSY2DS.mjs";
|
@@ -138,7 +136,6 @@ export {
|
|
138
136
|
MyTextArea,
|
139
137
|
MyTextEditor,
|
140
138
|
MyTextInput,
|
141
|
-
MyWeeklySessionSchedulerPicker,
|
142
139
|
SelectFieldModal,
|
143
140
|
SelectFileModal,
|
144
141
|
groupToTwoLevels,
|
package/dist/core/index.d.mts
CHANGED
@@ -2,7 +2,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { t as type_action } from '../types-B5rmBuXz.mjs';
|
3
3
|
import { ActionIconProps, ButtonProps, ModalProps, TextInputProps } from '@mantine/core';
|
4
4
|
import { ReactNode } from 'react';
|
5
|
-
import { M as MyApiResponse } from '../createBaseApi-
|
5
|
+
import { M as MyApiResponse } from '../createBaseApi-BayOeFCy.mjs';
|
6
6
|
import { AxiosResponse } from 'axios';
|
7
7
|
import { UseFormReturnType } from '@mantine/form';
|
8
8
|
import { useDisclosure } from '@mantine/hooks';
|
@@ -11,13 +11,13 @@ import '../base-BprRafT5.mjs';
|
|
11
11
|
interface CoreActionIconProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "color" | "style">, ActionIconProps {
|
12
12
|
actionType?: type_action;
|
13
13
|
}
|
14
|
-
declare function
|
14
|
+
declare function MyActionIcon({ children, actionType, ...rest }: CoreActionIconProps): react_jsx_runtime.JSX.Element;
|
15
15
|
|
16
16
|
interface CoreButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "color" | "style">, ButtonProps {
|
17
17
|
actionType?: type_action;
|
18
18
|
children?: ReactNode;
|
19
19
|
}
|
20
|
-
declare function
|
20
|
+
declare function MyButton({ children, actionType, ...rest }: CoreButtonProps): react_jsx_runtime.JSX.Element;
|
21
21
|
|
22
22
|
interface CoreButtonCreateUpdateProps<IReq, IRes> {
|
23
23
|
modalProps?: Omit<ModalProps, "opened" | "onClose">;
|
@@ -33,7 +33,7 @@ interface CoreButtonCreateUpdateProps<IReq, IRes> {
|
|
33
33
|
disclosure?: ReturnType<typeof useDisclosure>;
|
34
34
|
children?: ReactNode;
|
35
35
|
}
|
36
|
-
declare function
|
36
|
+
declare function MyButtonCreateUpdate<IReq, IRes>({ modalProps, actionIconProps, buttonProps, form, onSubmit, onSuccess, onError, closeModalWhenSubmit, resetFormWhenSubmit, children, disclosure: externalDisclosure, isUpdate, }: CoreButtonCreateUpdateProps<IReq, IRes>): react_jsx_runtime.JSX.Element;
|
37
37
|
|
38
38
|
interface CoreButtonModalProps {
|
39
39
|
children?: ReactNode;
|
@@ -41,19 +41,31 @@ interface CoreButtonModalProps {
|
|
41
41
|
buttonProps?: ButtonProps;
|
42
42
|
modalProps?: ModalProps;
|
43
43
|
}
|
44
|
-
declare function
|
44
|
+
declare function MyButtonModal({ disclosure, children, buttonProps, modalProps, }: CoreButtonModalProps): react_jsx_runtime.JSX.Element;
|
45
45
|
|
46
46
|
interface CoreDayOfWeekPickerProps {
|
47
47
|
value?: number[];
|
48
48
|
onChange?: (val: number[]) => void;
|
49
49
|
}
|
50
|
-
declare function
|
50
|
+
declare function MyDayOfWeekPicker({ value, onChange }: CoreDayOfWeekPickerProps): react_jsx_runtime.JSX.Element;
|
51
51
|
|
52
52
|
interface CoreTextInputProps extends TextInputProps {
|
53
53
|
label?: string;
|
54
54
|
defaultValue?: string;
|
55
55
|
isPhoneNumber?: boolean;
|
56
56
|
}
|
57
|
-
declare function
|
57
|
+
declare function MyTextInput({ label, isPhoneNumber, ...rest }: CoreTextInputProps): react_jsx_runtime.JSX.Element;
|
58
58
|
|
59
|
-
|
59
|
+
interface IWeeklySession {
|
60
|
+
dayOfWeek: number;
|
61
|
+
startPeriod: number;
|
62
|
+
numberOfPeriods: number;
|
63
|
+
durationMinutes: number;
|
64
|
+
}
|
65
|
+
interface WeeklySessionSchedulerProps {
|
66
|
+
value?: IWeeklySession[];
|
67
|
+
onChange?: (val: IWeeklySession[]) => void;
|
68
|
+
}
|
69
|
+
declare function MyWeeklySessionSchedulerPicker({ value, onChange, }: WeeklySessionSchedulerProps): react_jsx_runtime.JSX.Element;
|
70
|
+
|
71
|
+
export { type IWeeklySession, MyActionIcon, MyButton, MyButtonCreateUpdate, MyButtonModal, MyDayOfWeekPicker, MyTextInput, MyWeeklySessionSchedulerPicker, type WeeklySessionSchedulerProps };
|
package/dist/core/index.mjs
CHANGED
@@ -1,340 +1,24 @@
|
|
1
1
|
import {
|
2
|
-
|
3
|
-
|
4
|
-
|
2
|
+
MyActionIcon,
|
3
|
+
MyButton,
|
4
|
+
MyButtonCreateUpdate,
|
5
|
+
MyButtonModal,
|
6
|
+
MyDayOfWeekPicker,
|
7
|
+
MyTextInput,
|
8
|
+
MyWeeklySessionSchedulerPicker
|
9
|
+
} from "../chunk-MK2W26FZ.mjs";
|
10
|
+
import "../chunk-HHJFKKE7.mjs";
|
11
|
+
import "../chunk-NWBLJ3W3.mjs";
|
5
12
|
import "../chunk-K6S7R6LU.mjs";
|
6
|
-
import
|
7
|
-
|
8
|
-
|
9
|
-
import {
|
10
|
-
utils_notification_show
|
11
|
-
} from "../chunk-7ZCOFATU.mjs";
|
12
|
-
import {
|
13
|
-
__objRest,
|
14
|
-
__spreadProps,
|
15
|
-
__spreadValues
|
16
|
-
} from "../chunk-FWCSY2DS.mjs";
|
17
|
-
|
18
|
-
// src/core/button/CoreActionIcon.tsx
|
19
|
-
import { ActionIcon } from "@mantine/core";
|
20
|
-
import {
|
21
|
-
IconDeviceFloppy,
|
22
|
-
IconEdit,
|
23
|
-
IconFileExport,
|
24
|
-
IconFileImport,
|
25
|
-
IconPlus,
|
26
|
-
IconPrinter,
|
27
|
-
IconTrash,
|
28
|
-
IconX
|
29
|
-
} from "@tabler/icons-react";
|
30
|
-
import { jsx } from "react/jsx-runtime";
|
31
|
-
var actionConfig = {
|
32
|
-
default: {},
|
33
|
-
create: {
|
34
|
-
color: "indigo",
|
35
|
-
type: "submit",
|
36
|
-
icon: /* @__PURE__ */ jsx(IconPlus, {})
|
37
|
-
},
|
38
|
-
createMultiple: {
|
39
|
-
color: "green",
|
40
|
-
type: "submit",
|
41
|
-
icon: /* @__PURE__ */ jsx(IconPlus, {})
|
42
|
-
},
|
43
|
-
delete: {
|
44
|
-
color: "red",
|
45
|
-
icon: /* @__PURE__ */ jsx(IconTrash, {})
|
46
|
-
},
|
47
|
-
update: {
|
48
|
-
color: "yellow",
|
49
|
-
type: "submit",
|
50
|
-
icon: /* @__PURE__ */ jsx(IconEdit, {})
|
51
|
-
},
|
52
|
-
save: {
|
53
|
-
color: "blue",
|
54
|
-
type: "submit",
|
55
|
-
icon: /* @__PURE__ */ jsx(IconDeviceFloppy, {})
|
56
|
-
},
|
57
|
-
import: {
|
58
|
-
color: "green.8",
|
59
|
-
icon: /* @__PURE__ */ jsx(IconFileImport, {})
|
60
|
-
},
|
61
|
-
print: {
|
62
|
-
color: "orange.7",
|
63
|
-
icon: /* @__PURE__ */ jsx(IconPrinter, {})
|
64
|
-
},
|
65
|
-
export: {
|
66
|
-
color: "green.8",
|
67
|
-
icon: /* @__PURE__ */ jsx(IconFileExport, {})
|
68
|
-
},
|
69
|
-
cancel: {
|
70
|
-
color: "gray",
|
71
|
-
icon: /* @__PURE__ */ jsx(IconX, {})
|
72
|
-
},
|
73
|
-
select: {},
|
74
|
-
check: {}
|
75
|
-
};
|
76
|
-
function CoreActionIcon(_a) {
|
77
|
-
var _b = _a, { children, actionType } = _b, rest = __objRest(_b, ["children", "actionType"]);
|
78
|
-
if (!actionType) {
|
79
|
-
return /* @__PURE__ */ jsx(ActionIcon, __spreadProps(__spreadValues({}, rest), { children }));
|
80
|
-
}
|
81
|
-
const config = actionConfig[actionType];
|
82
|
-
return /* @__PURE__ */ jsx(
|
83
|
-
ActionIcon,
|
84
|
-
__spreadProps(__spreadValues({
|
85
|
-
color: config.color,
|
86
|
-
type: config.type
|
87
|
-
}, rest), {
|
88
|
-
children: config.icon
|
89
|
-
})
|
90
|
-
);
|
91
|
-
}
|
92
|
-
|
93
|
-
// src/core/button/CoreButton.tsx
|
94
|
-
import { Button as Button2 } from "@mantine/core";
|
95
|
-
import {
|
96
|
-
IconDeviceFloppy as IconDeviceFloppy2,
|
97
|
-
IconEdit as IconEdit2,
|
98
|
-
IconFileExport as IconFileExport2,
|
99
|
-
IconFileImport as IconFileImport2,
|
100
|
-
IconPlus as IconPlus2,
|
101
|
-
IconPrinter as IconPrinter2,
|
102
|
-
IconTrash as IconTrash2,
|
103
|
-
IconX as IconX2
|
104
|
-
} from "@tabler/icons-react";
|
105
|
-
import { jsx as jsx2 } from "react/jsx-runtime";
|
106
|
-
var actionConfig2 = {
|
107
|
-
default: {
|
108
|
-
defaultText: ""
|
109
|
-
},
|
110
|
-
create: {
|
111
|
-
color: "blue",
|
112
|
-
type: "submit",
|
113
|
-
icon: /* @__PURE__ */ jsx2(IconDeviceFloppy2, {}),
|
114
|
-
defaultText: "L\u01B0u"
|
115
|
-
},
|
116
|
-
createMultiple: {
|
117
|
-
color: "green",
|
118
|
-
type: "submit",
|
119
|
-
icon: /* @__PURE__ */ jsx2(IconPlus2, {}),
|
120
|
-
defaultText: "Th\xEAm danh s\xE1ch"
|
121
|
-
},
|
122
|
-
delete: {
|
123
|
-
color: "red",
|
124
|
-
icon: /* @__PURE__ */ jsx2(IconTrash2, {}),
|
125
|
-
defaultText: "X\xF3a"
|
126
|
-
},
|
127
|
-
update: {
|
128
|
-
color: "yellow",
|
129
|
-
type: "submit",
|
130
|
-
icon: /* @__PURE__ */ jsx2(IconEdit2, {}),
|
131
|
-
defaultText: "Ch\u1EC9nh s\u1EEDa"
|
132
|
-
},
|
133
|
-
save: {
|
134
|
-
color: "blue",
|
135
|
-
type: "submit",
|
136
|
-
icon: /* @__PURE__ */ jsx2(IconDeviceFloppy2, {}),
|
137
|
-
defaultText: "L\u01B0u"
|
138
|
-
},
|
139
|
-
import: {
|
140
|
-
color: "green.8",
|
141
|
-
icon: /* @__PURE__ */ jsx2(IconFileImport2, {}),
|
142
|
-
defaultText: "Import"
|
143
|
-
},
|
144
|
-
print: {
|
145
|
-
color: "orange.7",
|
146
|
-
icon: /* @__PURE__ */ jsx2(IconPrinter2, {}),
|
147
|
-
defaultText: "In"
|
148
|
-
},
|
149
|
-
export: {
|
150
|
-
color: "green.8",
|
151
|
-
icon: /* @__PURE__ */ jsx2(IconFileExport2, {}),
|
152
|
-
defaultText: "Export"
|
153
|
-
},
|
154
|
-
cancel: {
|
155
|
-
color: "gray",
|
156
|
-
icon: /* @__PURE__ */ jsx2(IconX2, {}),
|
157
|
-
defaultText: "H\u1EE7y thao t\xE1c"
|
158
|
-
},
|
159
|
-
select: {
|
160
|
-
defaultText: "Ch\u1ECDn"
|
161
|
-
},
|
162
|
-
check: {
|
163
|
-
defaultText: "Ch\u1ECDn"
|
164
|
-
}
|
165
|
-
};
|
166
|
-
function CoreButton(_a) {
|
167
|
-
var _b = _a, { children, actionType } = _b, rest = __objRest(_b, ["children", "actionType"]);
|
168
|
-
if (!actionType) {
|
169
|
-
return /* @__PURE__ */ jsx2(Button2, __spreadProps(__spreadValues({}, rest), { children }));
|
170
|
-
}
|
171
|
-
const config = actionConfig2[actionType];
|
172
|
-
return /* @__PURE__ */ jsx2(
|
173
|
-
Button2,
|
174
|
-
__spreadProps(__spreadValues({
|
175
|
-
color: config.color,
|
176
|
-
type: config.type,
|
177
|
-
leftSection: config.icon
|
178
|
-
}, rest), {
|
179
|
-
children: children != null ? children : config.defaultText
|
180
|
-
})
|
181
|
-
);
|
182
|
-
}
|
183
|
-
|
184
|
-
// src/core/button/CoreButtonCreateUpdate.tsx
|
185
|
-
import { useDisclosure } from "@mantine/hooks";
|
186
|
-
import { useQueryClient } from "@tanstack/react-query";
|
187
|
-
import { ActionIcon as ActionIcon2, Button as Button3, Modal } from "@mantine/core";
|
188
|
-
import { IconEdit as IconEdit3, IconPlus as IconPlus3 } from "@tabler/icons-react";
|
189
|
-
import { Fragment, jsx as jsx3, jsxs } from "react/jsx-runtime";
|
190
|
-
function CoreButtonCreateUpdate({
|
191
|
-
modalProps,
|
192
|
-
actionIconProps,
|
193
|
-
buttonProps,
|
194
|
-
form,
|
195
|
-
onSubmit,
|
196
|
-
onSuccess,
|
197
|
-
onError,
|
198
|
-
closeModalWhenSubmit = true,
|
199
|
-
resetFormWhenSubmit = true,
|
200
|
-
children,
|
201
|
-
disclosure: externalDisclosure,
|
202
|
-
isUpdate = false
|
203
|
-
}) {
|
204
|
-
const defaultDisclosure = useDisclosure();
|
205
|
-
const disclosure = externalDisclosure != null ? externalDisclosure : defaultDisclosure;
|
206
|
-
const queryClient = useQueryClient();
|
207
|
-
const mutation = useMyReactMutation({
|
208
|
-
axiosFn: (values) => {
|
209
|
-
const result = onSubmit(values);
|
210
|
-
if (result === void 0) {
|
211
|
-
return Promise.resolve({
|
212
|
-
data: {
|
213
|
-
message: "T\u1EA1o th\xE0nh c\xF4ng (gi\u1EA3 l\u1EADp)",
|
214
|
-
data: {},
|
215
|
-
isSuccess: 1
|
216
|
-
},
|
217
|
-
status: 200,
|
218
|
-
statusText: "OK",
|
219
|
-
headers: {},
|
220
|
-
config: {}
|
221
|
-
});
|
222
|
-
}
|
223
|
-
return result;
|
224
|
-
},
|
225
|
-
options: __spreadValues(__spreadValues({
|
226
|
-
onSuccess: () => {
|
227
|
-
queryClient.invalidateQueries();
|
228
|
-
utils_notification_show({ crudType: isUpdate ? "update" : "create" });
|
229
|
-
disclosure[1].close();
|
230
|
-
if (closeModalWhenSubmit) disclosure[1].close();
|
231
|
-
if (resetFormWhenSubmit) form.reset();
|
232
|
-
}
|
233
|
-
}, onSuccess && {
|
234
|
-
onSuccess: () => {
|
235
|
-
onSuccess();
|
236
|
-
}
|
237
|
-
}), onError && {
|
238
|
-
onError: () => {
|
239
|
-
onError();
|
240
|
-
}
|
241
|
-
})
|
242
|
-
});
|
243
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
244
|
-
isUpdate == true ? /* @__PURE__ */ jsx3(
|
245
|
-
ActionIcon2,
|
246
|
-
__spreadProps(__spreadValues({
|
247
|
-
color: "yellow",
|
248
|
-
onClick: disclosure[1].open
|
249
|
-
}, actionIconProps), {
|
250
|
-
children: /* @__PURE__ */ jsx3(IconEdit3, {})
|
251
|
-
})
|
252
|
-
) : /* @__PURE__ */ jsx3(
|
253
|
-
Button3,
|
254
|
-
__spreadProps(__spreadValues({
|
255
|
-
onClick: disclosure[1].open,
|
256
|
-
leftSection: /* @__PURE__ */ jsx3(IconPlus3, {})
|
257
|
-
}, buttonProps), {
|
258
|
-
children: "Th\xEAm"
|
259
|
-
})
|
260
|
-
),
|
261
|
-
/* @__PURE__ */ jsx3(
|
262
|
-
Modal,
|
263
|
-
__spreadProps(__spreadValues({
|
264
|
-
title: isUpdate ? "S\u1EEDa d\u1EEF li\u1EC7u" : "Th\xEAm d\u1EEF li\u1EC7u",
|
265
|
-
opened: disclosure[0],
|
266
|
-
onClose: disclosure[1].close
|
267
|
-
}, modalProps), {
|
268
|
-
children: /* @__PURE__ */ jsx3("form", { onSubmit: form.onSubmit((values) => {
|
269
|
-
mutation.mutate(values);
|
270
|
-
}), children: /* @__PURE__ */ jsxs(MyFlexColumn, { children: [
|
271
|
-
children,
|
272
|
-
/* @__PURE__ */ jsx3(CoreButton, { actionType: "create" })
|
273
|
-
] }) })
|
274
|
-
})
|
275
|
-
)
|
276
|
-
] });
|
277
|
-
}
|
278
|
-
|
279
|
-
// src/core/button/CoreButtonModal.tsx
|
280
|
-
import { Button as Button4, Modal as Modal2 } from "@mantine/core";
|
281
|
-
import { Fragment as Fragment2, jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
|
282
|
-
function CoreButtonModal({
|
283
|
-
disclosure,
|
284
|
-
children,
|
285
|
-
buttonProps,
|
286
|
-
modalProps
|
287
|
-
}) {
|
288
|
-
return /* @__PURE__ */ jsxs2(Fragment2, { children: [
|
289
|
-
/* @__PURE__ */ jsx4(Button4, __spreadValues({ onClick: disclosure == null ? void 0 : disclosure[1].open, color: "indigo" }, buttonProps)),
|
290
|
-
/* @__PURE__ */ jsx4(
|
291
|
-
Modal2,
|
292
|
-
__spreadProps(__spreadValues({
|
293
|
-
opened: disclosure == null ? void 0 : disclosure[0],
|
294
|
-
onClose: disclosure[1].close
|
295
|
-
}, modalProps), {
|
296
|
-
children: /* @__PURE__ */ jsx4(MyFlexColumn, { children })
|
297
|
-
})
|
298
|
-
)
|
299
|
-
] });
|
300
|
-
}
|
301
|
-
|
302
|
-
// src/core/input/CoreTextInput.tsx
|
303
|
-
import { TextInput } from "@mantine/core";
|
304
|
-
import { jsx as jsx5 } from "react/jsx-runtime";
|
305
|
-
function CoreTextInput(_a) {
|
306
|
-
var _b = _a, { label, isPhoneNumber } = _b, rest = __objRest(_b, ["label", "isPhoneNumber"]);
|
307
|
-
return /* @__PURE__ */ jsx5(
|
308
|
-
TextInput,
|
309
|
-
__spreadValues({
|
310
|
-
onKeyDown: (e) => {
|
311
|
-
if (!isPhoneNumber) return;
|
312
|
-
const allowedKeys = [
|
313
|
-
"Backspace",
|
314
|
-
"Tab",
|
315
|
-
"ArrowLeft",
|
316
|
-
"ArrowRight",
|
317
|
-
"Delete",
|
318
|
-
"+",
|
319
|
-
"-",
|
320
|
-
"(",
|
321
|
-
")",
|
322
|
-
" "
|
323
|
-
// các ký tự đặc biệt cho số điện thoại
|
324
|
-
];
|
325
|
-
if (!/[0-9]/.test(e.key) && !allowedKeys.includes(e.key)) {
|
326
|
-
e.preventDefault();
|
327
|
-
}
|
328
|
-
},
|
329
|
-
placeholder: label ? `Nh\u1EADp ${label == null ? void 0 : label.toLowerCase()}` : ""
|
330
|
-
}, rest)
|
331
|
-
);
|
332
|
-
}
|
13
|
+
import "../chunk-OPVLK7PA.mjs";
|
14
|
+
import "../chunk-7ZCOFATU.mjs";
|
15
|
+
import "../chunk-FWCSY2DS.mjs";
|
333
16
|
export {
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
17
|
+
MyActionIcon,
|
18
|
+
MyButton,
|
19
|
+
MyButtonCreateUpdate,
|
20
|
+
MyButtonModal,
|
21
|
+
MyDayOfWeekPicker,
|
22
|
+
MyTextInput,
|
23
|
+
MyWeeklySessionSchedulerPicker
|
340
24
|
};
|
@@ -2,23 +2,32 @@ import * as axios from 'axios';
|
|
2
2
|
import { AxiosInstance } from 'axios';
|
3
3
|
import { I as IBaseEntity } from './base-BprRafT5.mjs';
|
4
4
|
|
5
|
+
interface IPagingParams {
|
6
|
+
pageNumber?: number;
|
7
|
+
pageSize?: number;
|
8
|
+
}
|
5
9
|
interface MyApiResponse<IRes> {
|
6
10
|
isSuccess: 1 | 0;
|
7
11
|
message: string;
|
8
12
|
data: IRes;
|
9
13
|
}
|
10
14
|
declare function createBaseApi<T>(baseUrl: string, axiosInstance: AxiosInstance): {
|
11
|
-
get: ({ params }?: {
|
15
|
+
get: ({ params, id, paging }?: {
|
12
16
|
params?: string;
|
17
|
+
id?: number;
|
18
|
+
paging?: IPagingParams;
|
13
19
|
}) => Promise<axios.AxiosResponse<MyApiResponse<T>, any>>;
|
14
|
-
getAll: ({ params }?: {
|
20
|
+
getAll: ({ params, cols, paging }?: {
|
15
21
|
params?: string;
|
22
|
+
paging?: IPagingParams;
|
23
|
+
cols?: string[];
|
16
24
|
}) => Promise<axios.AxiosResponse<MyApiResponse<T[]>, any>>;
|
17
25
|
create: (data: Partial<T>) => Promise<axios.AxiosResponse<MyApiResponse<T>, any>>;
|
18
26
|
update: (data: Partial<T>) => Promise<axios.AxiosResponse<MyApiResponse<T>, any>>;
|
27
|
+
updateList: (data: Partial<T[]>) => Promise<axios.AxiosResponse<MyApiResponse<T[]>, any>>;
|
19
28
|
createOrUpdate: (data: Partial<T[]>) => Promise<axios.AxiosResponse<MyApiResponse<T[]>, any>>;
|
20
29
|
delete: (id: number) => Promise<axios.AxiosResponse<any, any>>;
|
21
30
|
deleteList: (values: IBaseEntity[]) => Promise<axios.AxiosResponse<any, any>>;
|
22
31
|
};
|
23
32
|
|
24
|
-
export { type MyApiResponse as M, createBaseApi as c };
|
33
|
+
export { type IPagingParams as I, type MyApiResponse as M, createBaseApi as c };
|
package/dist/hooks/index.d.mts
CHANGED
@@ -1,11 +1,28 @@
|
|
1
|
-
import
|
2
|
-
|
1
|
+
import * as next_dist_shared_lib_app_router_context_shared_runtime from 'next/dist/shared/lib/app-router-context.shared-runtime';
|
2
|
+
import { M as MyApiResponse } from '../createBaseApi-BayOeFCy.mjs';
|
3
|
+
export { I as IPagingParams, c as createBaseApi } from '../createBaseApi-BayOeFCy.mjs';
|
3
4
|
import { AxiosInstance, AxiosResponse } from 'axios';
|
4
5
|
import * as _tanstack_react_query from '@tanstack/react-query';
|
5
6
|
import { UseMutationOptions, QueryKey, UseQueryOptions } from '@tanstack/react-query';
|
6
7
|
import { I as IAQModule } from '../IAQModule-CCtwv-e0.mjs';
|
7
8
|
import '../base-BprRafT5.mjs';
|
8
9
|
|
10
|
+
declare function useMyDevice(): {
|
11
|
+
isMobile: boolean | undefined;
|
12
|
+
isTablet: boolean | undefined;
|
13
|
+
isPc: boolean;
|
14
|
+
};
|
15
|
+
|
16
|
+
declare function useMyRouter(): {
|
17
|
+
pushUrl: (url: string) => void;
|
18
|
+
back(): void;
|
19
|
+
forward(): void;
|
20
|
+
refresh(): void;
|
21
|
+
push(href: string, options?: next_dist_shared_lib_app_router_context_shared_runtime.NavigateOptions): void;
|
22
|
+
replace(href: string, options?: next_dist_shared_lib_app_router_context_shared_runtime.NavigateOptions): void;
|
23
|
+
prefetch(href: string, options?: next_dist_shared_lib_app_router_context_shared_runtime.PrefetchOptions): void;
|
24
|
+
};
|
25
|
+
|
9
26
|
declare const useLoadAxiosConfig: ({ axiosInstance }: {
|
10
27
|
axiosInstance: AxiosInstance;
|
11
28
|
}) => void;
|
@@ -25,4 +42,4 @@ declare function useMyReactQuery<IRes, IBody>({ queryKey, axiosFn, options }: My
|
|
25
42
|
|
26
43
|
declare function useQ_AQ_GetAQModule(): _tanstack_react_query.UseQueryResult<IAQModule, Error>;
|
27
44
|
|
28
|
-
export { MyApiResponse, useLoadAxiosConfig, useMyReactMutation, useMyReactQuery, useQ_AQ_GetAQModule };
|
45
|
+
export { MyApiResponse, useLoadAxiosConfig, useMyDevice, useMyReactMutation, useMyReactQuery, useMyRouter, useQ_AQ_GetAQModule };
|
package/dist/hooks/index.mjs
CHANGED
@@ -1,16 +1,20 @@
|
|
1
1
|
import {
|
2
2
|
createBaseApi,
|
3
3
|
useLoadAxiosConfig,
|
4
|
+
useMyDevice,
|
4
5
|
useMyReactMutation,
|
5
6
|
useMyReactQuery,
|
7
|
+
useMyRouter,
|
6
8
|
useQ_AQ_GetAQModule
|
7
|
-
} from "../chunk-
|
9
|
+
} from "../chunk-OPVLK7PA.mjs";
|
8
10
|
import "../chunk-7ZCOFATU.mjs";
|
9
11
|
import "../chunk-FWCSY2DS.mjs";
|
10
12
|
export {
|
11
13
|
createBaseApi,
|
12
14
|
useLoadAxiosConfig,
|
15
|
+
useMyDevice,
|
13
16
|
useMyReactMutation,
|
14
17
|
useMyReactQuery,
|
18
|
+
useMyRouter,
|
15
19
|
useQ_AQ_GetAQModule
|
16
20
|
};
|
@@ -1,7 +1,11 @@
|
|
1
|
-
|
1
|
+
import { I as IBaseEntity } from '../base-BprRafT5.mjs';
|
2
2
|
export { I as IEmailConfig } from '../EmailConfig-DvTXTBt3.mjs';
|
3
3
|
export { I as IAQModule } from '../IAQModule-CCtwv-e0.mjs';
|
4
4
|
|
5
|
+
interface IPageContent extends IBaseEntity {
|
6
|
+
description?: string;
|
7
|
+
}
|
8
|
+
|
5
9
|
interface IAcademicYear {
|
6
10
|
id?: number;
|
7
11
|
code?: string | undefined;
|
@@ -489,4 +493,4 @@ interface IUserPermission {
|
|
489
493
|
pagePermissions?: IPagePermission[] | undefined;
|
490
494
|
}
|
491
495
|
|
492
|
-
export type
|
496
|
+
export { type IAQSSO, type IAQSyncData, type IAcademicYear, IBaseEntity, type IChangePassWord, type IComplaintProccess, type ICreateAccount, type IDocument, type IDocumentAttribute, type IEvent, type IEventComplaint, type IEventFillter, type IFile, type IImportStudentPaticipation, type IPageContent, type IPagePermission, type IRolePermission, type ISRMUserinfo, type IScientificProfileProjectUser, type IScientificProfileResearchGroup, type IScientificProfileResearchGroupUser, type IScientificProfileResearchProject, type ISignIn, type ISystemCatalogAcademicYear, type ISystemCatalogDomainCategory, type ISystemCatalogProjectLevelCategory, type ISystemCatalogProjectTypeCategory, type ISystemCatalogRoleActivity, type ISystemCatalogTaskCategory, type ISystemManagementAcademicHistory, type ISystemManagementProfessionalWorkHistory, type ISystemManagementPublishedScientificWork, type ISystemManagementRoleGroup, type ISystemManagementRoleGroupMenuPermission, type ISystemManagementScientificResearchProject, type ISystemManagementUserMenuPermission, type IUpdateAccount, type IUser, type IUserPermission };
|