aq-fe-framework 0.1.862 → 0.1.863
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/{MyDataTable-C36iuGQn.d.mts → MyDataTable-BZc8ObyA.d.mts} +1 -1
- package/dist/chunk-ENU27ON2.mjs +197 -0
- package/dist/{chunk-P2NAQKV5.mjs → chunk-HD56Z4Z4.mjs} +2 -141
- package/dist/{chunk-7L37V75O.mjs → chunk-NH5DF74S.mjs} +75 -44
- package/dist/{chunk-WV4VHLZV.mjs → chunk-NZASEQP3.mjs} +21 -37
- package/dist/{chunk-O6A7NWUM.mjs → chunk-RORG6FCN.mjs} +8408 -8349
- package/dist/components/index.d.mts +2 -2
- package/dist/components/index.mjs +10 -10
- package/dist/const/index.mjs +1 -1
- package/dist/core/index.d.mts +1 -1
- package/dist/core/index.mjs +10 -10
- package/dist/hooks/index.d.mts +20 -10
- package/dist/hooks/index.mjs +3 -1
- package/dist/modules-features/index.d.mts +1 -1
- package/dist/modules-features/index.mjs +6 -6
- package/dist/shared/index.mjs +6 -6
- package/dist/utils/index.d.mts +3 -12
- package/dist/utils/index.mjs +7 -7
- package/dist/utils-v2/index.d.mts +13 -6
- package/dist/utils-v2/index.mjs +5 -2
- package/dist/{utils_converter-DHT1b-Qe.d.mts → utils_date-CvsvRBGW.d.mts} +10 -1
- package/dist/{utils_excel-DJnkl-XA.d.mts → utils_excel-CYfQ1dFx.d.mts} +9 -0
- package/package.json +1 -1
- package/dist/chunk-7NNLZDND.mjs +0 -56
- package/dist/{chunk-J64W5V6F.mjs → chunk-FE4HVT67.mjs} +1 -1
|
@@ -22,4 +22,4 @@ interface MyDataTableProps<TData extends MRT_RowData> extends MRT_TableOptions<T
|
|
|
22
22
|
}
|
|
23
23
|
declare function MyDataTable<TData extends MRT_RowData>({ rowActionSize, columns, data, setSelectedRow, isError, isLoading, pagination, idSelectionOne, setIdSelectionOne, renderTopToolbarCustomActions, visibleFields, ...rest }: MyDataTableProps<TData>): react_jsx_runtime.JSX.Element;
|
|
24
24
|
|
|
25
|
-
export { type
|
|
25
|
+
export { type MyDataTableProps as M, type PaginationState as P, type MyDataTableInternalProps as a, MyDataTable as b };
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
// src/utils/utils_converter.ts
|
|
2
|
+
function utils_converter_mapEnumToSelectData(enumObj, labelMap) {
|
|
3
|
+
return Object.entries(enumObj).filter(([key, value]) => isNaN(Number(key))).map(([_, value]) => {
|
|
4
|
+
var _a;
|
|
5
|
+
const stringValue = value.toString();
|
|
6
|
+
return {
|
|
7
|
+
value: stringValue,
|
|
8
|
+
label: (_a = labelMap[stringValue]) != null ? _a : `Kh\xF4ng r\xF5 (${stringValue})`
|
|
9
|
+
};
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
var utils_converter_getLabelByValue = (data, value) => {
|
|
13
|
+
const numericValue = Number(value);
|
|
14
|
+
return data[numericValue] || "Kh\xF4ng x\xE1c \u0111\u1ECBnh";
|
|
15
|
+
};
|
|
16
|
+
var utils_converter_getKeyByValue = (obj, value) => {
|
|
17
|
+
var _a;
|
|
18
|
+
return (_a = Object.entries(obj).find(([_, v]) => v === value)) == null ? void 0 : _a[0];
|
|
19
|
+
};
|
|
20
|
+
function utils_converter_enumToSelectOptions(enumObject) {
|
|
21
|
+
const result = [];
|
|
22
|
+
const numericEnumKeys = Object.keys(enumObject).filter((key) => isNaN(Number(key)));
|
|
23
|
+
for (const key of numericEnumKeys) {
|
|
24
|
+
const enumValue = enumObject[key];
|
|
25
|
+
if (typeof enumValue === "number") {
|
|
26
|
+
result.push({
|
|
27
|
+
value: String(enumValue),
|
|
28
|
+
label: key
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
|
+
function utils_converter_youTubeUrlToEmbed(url) {
|
|
35
|
+
try {
|
|
36
|
+
const urlObj = new URL(url);
|
|
37
|
+
const videoId = urlObj.searchParams.get("v");
|
|
38
|
+
if (videoId) {
|
|
39
|
+
return `https://www.youtube.com/embed/${videoId}`;
|
|
40
|
+
}
|
|
41
|
+
if (url.includes("/embed/")) {
|
|
42
|
+
return url;
|
|
43
|
+
}
|
|
44
|
+
return "";
|
|
45
|
+
} catch (e) {
|
|
46
|
+
return "";
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// src/utils/utils_excel.ts
|
|
51
|
+
import saveAs from "file-saver";
|
|
52
|
+
import * as XLSX from "xlsx";
|
|
53
|
+
function isObjectPath(path) {
|
|
54
|
+
return /^[a-zA-Z_$][a-zA-Z0-9_$]*(\.[a-zA-Z_$][a-zA-Z0-9_$]*)+$/.test(path);
|
|
55
|
+
}
|
|
56
|
+
function getValueByPath(obj, path) {
|
|
57
|
+
if (isObjectPath(path)) {
|
|
58
|
+
return path.split(".").reduce((acc, key) => acc == null ? void 0 : acc[key], obj);
|
|
59
|
+
}
|
|
60
|
+
return obj == null ? void 0 : obj[path];
|
|
61
|
+
}
|
|
62
|
+
async function utils_excel_exportExcel({
|
|
63
|
+
workbook,
|
|
64
|
+
sheetName,
|
|
65
|
+
data,
|
|
66
|
+
config
|
|
67
|
+
}) {
|
|
68
|
+
const sheet = workbook.addWorksheet(sheetName);
|
|
69
|
+
const fieldKeys = config.map((item) => String(item.fieldKey));
|
|
70
|
+
const headerMappings = {};
|
|
71
|
+
const markedColumns = [];
|
|
72
|
+
config.forEach((item) => {
|
|
73
|
+
const fieldKeyStr = String(item.fieldKey);
|
|
74
|
+
headerMappings[fieldKeyStr] = item.fieldName;
|
|
75
|
+
if (item.isRequired) markedColumns.push(fieldKeyStr);
|
|
76
|
+
});
|
|
77
|
+
sheet.columns = fieldKeys.map((fieldKey) => ({
|
|
78
|
+
key: fieldKey,
|
|
79
|
+
width: 20
|
|
80
|
+
}));
|
|
81
|
+
const displayRow = sheet.addRow(
|
|
82
|
+
fieldKeys.map(
|
|
83
|
+
(fieldKey) => markedColumns.includes(fieldKey) ? `${headerMappings[fieldKey]} *` : headerMappings[fieldKey] || fieldKey
|
|
84
|
+
)
|
|
85
|
+
);
|
|
86
|
+
const keyRow = sheet.addRow(fieldKeys);
|
|
87
|
+
data.forEach((row) => {
|
|
88
|
+
const rowData = {};
|
|
89
|
+
config.forEach(({ fieldKey, formatter }) => {
|
|
90
|
+
const fieldKeyStr = String(fieldKey);
|
|
91
|
+
const rawValue = getValueByPath(row, fieldKeyStr);
|
|
92
|
+
rowData[fieldKeyStr] = formatter ? formatter(rawValue, row) : rawValue;
|
|
93
|
+
});
|
|
94
|
+
sheet.addRow(rowData);
|
|
95
|
+
});
|
|
96
|
+
for (let i = 1; i <= fieldKeys.length; i++) {
|
|
97
|
+
const cell = displayRow.getCell(i);
|
|
98
|
+
cell.font = { bold: true };
|
|
99
|
+
cell.fill = {
|
|
100
|
+
type: "pattern",
|
|
101
|
+
pattern: "solid",
|
|
102
|
+
fgColor: { argb: "FFE0E0E0" }
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
for (let i = 1; i <= fieldKeys.length; i++) {
|
|
106
|
+
const cell = keyRow.getCell(i);
|
|
107
|
+
cell.font = { italic: true };
|
|
108
|
+
cell.fill = {
|
|
109
|
+
type: "pattern",
|
|
110
|
+
pattern: "solid",
|
|
111
|
+
fgColor: { argb: "FFF0F0F0" }
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
if (markedColumns.length > 0) {
|
|
115
|
+
for (let i = 1; i <= fieldKeys.length; i++) {
|
|
116
|
+
const cell = displayRow.getCell(i);
|
|
117
|
+
const text = cell.value;
|
|
118
|
+
if (typeof text === "string" && text.endsWith(" *")) {
|
|
119
|
+
cell.value = {
|
|
120
|
+
richText: [
|
|
121
|
+
{
|
|
122
|
+
text: text.slice(0, -2),
|
|
123
|
+
font: { bold: true }
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
text: " *",
|
|
127
|
+
font: { bold: true, color: { argb: "FFFF0000" } }
|
|
128
|
+
}
|
|
129
|
+
]
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return workbook;
|
|
135
|
+
}
|
|
136
|
+
async function utils_excel_download({
|
|
137
|
+
workbook,
|
|
138
|
+
name
|
|
139
|
+
}) {
|
|
140
|
+
const buffer = await workbook.xlsx.writeBuffer();
|
|
141
|
+
const blob = new Blob([buffer], {
|
|
142
|
+
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
|
|
143
|
+
});
|
|
144
|
+
saveAs(blob, name);
|
|
145
|
+
}
|
|
146
|
+
async function utils_excel_parseToJson(file, titleIndex, dataStartIndex) {
|
|
147
|
+
const buffer = await file.arrayBuffer();
|
|
148
|
+
const workbook = XLSX.read(buffer);
|
|
149
|
+
const sheet = workbook.Sheets[workbook.SheetNames[0]];
|
|
150
|
+
const raw = XLSX.utils.sheet_to_json(sheet, { header: 1 });
|
|
151
|
+
const headers = raw[titleIndex - 1];
|
|
152
|
+
const rows = raw.slice(dataStartIndex - 1);
|
|
153
|
+
const data = rows.map((row) => {
|
|
154
|
+
const obj = {};
|
|
155
|
+
headers.forEach((header, i) => {
|
|
156
|
+
obj[header] = row[i];
|
|
157
|
+
});
|
|
158
|
+
return obj;
|
|
159
|
+
});
|
|
160
|
+
return {
|
|
161
|
+
data,
|
|
162
|
+
// 👈 ép kiểu an toàn vì bạn biết nó đúng
|
|
163
|
+
headers
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
function utils_excel_handleExport(data, exportConfig, fileName) {
|
|
167
|
+
const processedData = data.map((row) => {
|
|
168
|
+
const newRow = {};
|
|
169
|
+
exportConfig.fields.forEach(({ fieldName, formatFunction }) => {
|
|
170
|
+
const value = row[fieldName];
|
|
171
|
+
newRow[fieldName] = formatFunction ? formatFunction(value, row) : value;
|
|
172
|
+
});
|
|
173
|
+
return newRow;
|
|
174
|
+
});
|
|
175
|
+
const headers = {};
|
|
176
|
+
exportConfig.fields.forEach(({ fieldName, header }) => {
|
|
177
|
+
headers[fieldName] = header;
|
|
178
|
+
});
|
|
179
|
+
const worksheet = XLSX.utils.json_to_sheet(processedData);
|
|
180
|
+
const headerRow = exportConfig.fields.map(({ fieldName }) => headers[fieldName]);
|
|
181
|
+
XLSX.utils.sheet_add_aoa(worksheet, [headerRow], { origin: "A1" });
|
|
182
|
+
const workbook = XLSX.utils.book_new();
|
|
183
|
+
XLSX.utils.book_append_sheet(workbook, worksheet, "Exported Data");
|
|
184
|
+
XLSX.writeFile(workbook, `${fileName}.xlsx`);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
export {
|
|
188
|
+
utils_converter_mapEnumToSelectData,
|
|
189
|
+
utils_converter_getLabelByValue,
|
|
190
|
+
utils_converter_getKeyByValue,
|
|
191
|
+
utils_converter_enumToSelectOptions,
|
|
192
|
+
utils_converter_youTubeUrlToEmbed,
|
|
193
|
+
utils_excel_exportExcel,
|
|
194
|
+
utils_excel_download,
|
|
195
|
+
utils_excel_parseToJson,
|
|
196
|
+
utils_excel_handleExport
|
|
197
|
+
};
|
|
@@ -37,141 +37,6 @@ function utils_currency_formatWithSuffix(amount, suffix = "") {
|
|
|
37
37
|
return `${formattedAmount}${suffix}`;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
// src/utils/utils_excel.ts
|
|
41
|
-
import saveAs from "file-saver";
|
|
42
|
-
import * as XLSX from "xlsx";
|
|
43
|
-
function isObjectPath(path) {
|
|
44
|
-
return /^[a-zA-Z_$][a-zA-Z0-9_$]*(\.[a-zA-Z_$][a-zA-Z0-9_$]*)+$/.test(path);
|
|
45
|
-
}
|
|
46
|
-
function getValueByPath(obj, path) {
|
|
47
|
-
if (isObjectPath(path)) {
|
|
48
|
-
return path.split(".").reduce((acc, key) => acc == null ? void 0 : acc[key], obj);
|
|
49
|
-
}
|
|
50
|
-
return obj == null ? void 0 : obj[path];
|
|
51
|
-
}
|
|
52
|
-
async function utils_excel_exportExcel({
|
|
53
|
-
workbook,
|
|
54
|
-
sheetName,
|
|
55
|
-
data,
|
|
56
|
-
config
|
|
57
|
-
}) {
|
|
58
|
-
const sheet = workbook.addWorksheet(sheetName);
|
|
59
|
-
const fieldKeys = config.map((item) => String(item.fieldKey));
|
|
60
|
-
const headerMappings = {};
|
|
61
|
-
const markedColumns = [];
|
|
62
|
-
config.forEach((item) => {
|
|
63
|
-
const fieldKeyStr = String(item.fieldKey);
|
|
64
|
-
headerMappings[fieldKeyStr] = item.fieldName;
|
|
65
|
-
if (item.isRequired) markedColumns.push(fieldKeyStr);
|
|
66
|
-
});
|
|
67
|
-
sheet.columns = fieldKeys.map((fieldKey) => ({
|
|
68
|
-
key: fieldKey,
|
|
69
|
-
width: 20
|
|
70
|
-
}));
|
|
71
|
-
const displayRow = sheet.addRow(
|
|
72
|
-
fieldKeys.map(
|
|
73
|
-
(fieldKey) => markedColumns.includes(fieldKey) ? `${headerMappings[fieldKey]} *` : headerMappings[fieldKey] || fieldKey
|
|
74
|
-
)
|
|
75
|
-
);
|
|
76
|
-
const keyRow = sheet.addRow(fieldKeys);
|
|
77
|
-
data.forEach((item) => {
|
|
78
|
-
const rowData = {};
|
|
79
|
-
fieldKeys.forEach((fieldKey) => {
|
|
80
|
-
rowData[fieldKey] = getValueByPath(item, fieldKey);
|
|
81
|
-
});
|
|
82
|
-
sheet.addRow(rowData);
|
|
83
|
-
});
|
|
84
|
-
for (let i = 1; i <= fieldKeys.length; i++) {
|
|
85
|
-
const cell = displayRow.getCell(i);
|
|
86
|
-
cell.font = { bold: true };
|
|
87
|
-
cell.fill = {
|
|
88
|
-
type: "pattern",
|
|
89
|
-
pattern: "solid",
|
|
90
|
-
fgColor: { argb: "FFE0E0E0" }
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
for (let i = 1; i <= fieldKeys.length; i++) {
|
|
94
|
-
const cell = keyRow.getCell(i);
|
|
95
|
-
cell.font = { italic: true };
|
|
96
|
-
cell.fill = {
|
|
97
|
-
type: "pattern",
|
|
98
|
-
pattern: "solid",
|
|
99
|
-
fgColor: { argb: "FFF0F0F0" }
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
if (markedColumns.length > 0) {
|
|
103
|
-
for (let i = 1; i <= fieldKeys.length; i++) {
|
|
104
|
-
const cell = displayRow.getCell(i);
|
|
105
|
-
const text = cell.value;
|
|
106
|
-
if (typeof text === "string" && text.endsWith(" *")) {
|
|
107
|
-
cell.value = {
|
|
108
|
-
richText: [
|
|
109
|
-
{
|
|
110
|
-
text: text.slice(0, -2),
|
|
111
|
-
font: { bold: true }
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
text: " *",
|
|
115
|
-
font: { bold: true, color: { argb: "FFFF0000" } }
|
|
116
|
-
}
|
|
117
|
-
]
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
return workbook;
|
|
123
|
-
}
|
|
124
|
-
async function utils_excel_download({
|
|
125
|
-
workbook,
|
|
126
|
-
name
|
|
127
|
-
}) {
|
|
128
|
-
const buffer = await workbook.xlsx.writeBuffer();
|
|
129
|
-
const blob = new Blob([buffer], {
|
|
130
|
-
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
|
|
131
|
-
});
|
|
132
|
-
saveAs(blob, name);
|
|
133
|
-
}
|
|
134
|
-
async function utils_excel_parseToJson(file, titleIndex, dataStartIndex) {
|
|
135
|
-
const buffer = await file.arrayBuffer();
|
|
136
|
-
const workbook = XLSX.read(buffer);
|
|
137
|
-
const sheet = workbook.Sheets[workbook.SheetNames[0]];
|
|
138
|
-
const raw = XLSX.utils.sheet_to_json(sheet, { header: 1 });
|
|
139
|
-
const headers = raw[titleIndex - 1];
|
|
140
|
-
const rows = raw.slice(dataStartIndex - 1);
|
|
141
|
-
const data = rows.map((row) => {
|
|
142
|
-
const obj = {};
|
|
143
|
-
headers.forEach((header, i) => {
|
|
144
|
-
obj[header] = row[i];
|
|
145
|
-
});
|
|
146
|
-
return obj;
|
|
147
|
-
});
|
|
148
|
-
return {
|
|
149
|
-
data,
|
|
150
|
-
// 👈 ép kiểu an toàn vì bạn biết nó đúng
|
|
151
|
-
headers
|
|
152
|
-
};
|
|
153
|
-
}
|
|
154
|
-
function utils_excel_handleExport(data, exportConfig, fileName) {
|
|
155
|
-
const processedData = data.map((row) => {
|
|
156
|
-
const newRow = {};
|
|
157
|
-
exportConfig.fields.forEach(({ fieldName, formatFunction }) => {
|
|
158
|
-
const value = row[fieldName];
|
|
159
|
-
newRow[fieldName] = formatFunction ? formatFunction(value, row) : value;
|
|
160
|
-
});
|
|
161
|
-
return newRow;
|
|
162
|
-
});
|
|
163
|
-
const headers = {};
|
|
164
|
-
exportConfig.fields.forEach(({ fieldName, header }) => {
|
|
165
|
-
headers[fieldName] = header;
|
|
166
|
-
});
|
|
167
|
-
const worksheet = XLSX.utils.json_to_sheet(processedData);
|
|
168
|
-
const headerRow = exportConfig.fields.map(({ fieldName }) => headers[fieldName]);
|
|
169
|
-
XLSX.utils.sheet_add_aoa(worksheet, [headerRow], { origin: "A1" });
|
|
170
|
-
const workbook = XLSX.utils.book_new();
|
|
171
|
-
XLSX.utils.book_append_sheet(workbook, worksheet, "Exported Data");
|
|
172
|
-
XLSX.writeFile(workbook, `${fileName}.xlsx`);
|
|
173
|
-
}
|
|
174
|
-
|
|
175
40
|
// src/utils/utils_field.ts
|
|
176
41
|
function utils_field_extractAQBaseField(values) {
|
|
177
42
|
const { id, name, code, concurrencyStamp } = values || {};
|
|
@@ -180,7 +45,7 @@ function utils_field_extractAQBaseField(values) {
|
|
|
180
45
|
|
|
181
46
|
// src/utils/utils_file.ts
|
|
182
47
|
import Docxtemplater from "docxtemplater";
|
|
183
|
-
import { saveAs
|
|
48
|
+
import { saveAs } from "file-saver";
|
|
184
49
|
import PizZip from "pizzip";
|
|
185
50
|
function utils_file_fileToAQDocumentType(file) {
|
|
186
51
|
return new Promise((resolve, reject) => {
|
|
@@ -237,7 +102,7 @@ async function utils_file_docxtemplaterDownload({
|
|
|
237
102
|
const doc = new Docxtemplater(zip);
|
|
238
103
|
doc.render(data);
|
|
239
104
|
const buffer = doc.getZip().generate({ type: "blob" });
|
|
240
|
-
|
|
105
|
+
saveAs(buffer, fileName || "output.docx");
|
|
241
106
|
}
|
|
242
107
|
function utils_file_base64ToFile(base64, filename) {
|
|
243
108
|
const [meta, content] = base64.split(",");
|
|
@@ -389,10 +254,6 @@ var utils_validator_validateCode = (value) => {
|
|
|
389
254
|
|
|
390
255
|
export {
|
|
391
256
|
utils_pdf_download,
|
|
392
|
-
utils_excel_exportExcel,
|
|
393
|
-
utils_excel_download,
|
|
394
|
-
utils_excel_parseToJson,
|
|
395
|
-
utils_excel_handleExport,
|
|
396
257
|
utils_aq_mapBaseEntityToDomain,
|
|
397
258
|
utils_aq_mapDomainToEntity,
|
|
398
259
|
utils_currency_formatWithSuffix,
|
|
@@ -169,33 +169,87 @@ function createBaseUrl(baseUrl) {
|
|
|
169
169
|
}
|
|
170
170
|
|
|
171
171
|
// src/hooks/custom-hooks/createMapper.ts
|
|
172
|
-
function createMapper(
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
apiData[apiKey] = toAPI(uiData[uiKey], uiData);
|
|
172
|
+
function createMapper(fieldMap) {
|
|
173
|
+
const toUi = (raw) => {
|
|
174
|
+
const result = {};
|
|
175
|
+
Object.entries(fieldMap).forEach(
|
|
176
|
+
([uiKey, mapping]) => {
|
|
177
|
+
if (typeof mapping === "string") {
|
|
178
|
+
result[uiKey] = raw[mapping];
|
|
180
179
|
} else {
|
|
181
|
-
|
|
180
|
+
result[uiKey] = mapping.fromApi(raw);
|
|
182
181
|
}
|
|
183
182
|
}
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
183
|
+
);
|
|
184
|
+
return result;
|
|
185
|
+
};
|
|
186
|
+
const toApi = (ui, base = {}) => {
|
|
187
|
+
let result = __spreadValues({}, base);
|
|
188
|
+
Object.entries(fieldMap).forEach(
|
|
189
|
+
([uiKey, mapping]) => {
|
|
190
|
+
const value = ui[uiKey];
|
|
191
|
+
if (value === void 0) return;
|
|
192
|
+
if (typeof mapping === "string") {
|
|
193
|
+
result[mapping] = value;
|
|
192
194
|
} else {
|
|
193
|
-
|
|
195
|
+
result = __spreadValues(__spreadValues({}, result), mapping.toApi(value, result));
|
|
194
196
|
}
|
|
195
197
|
}
|
|
196
|
-
|
|
198
|
+
);
|
|
199
|
+
return result;
|
|
200
|
+
};
|
|
201
|
+
return { toUi, toApi };
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
// src/api/config/baseAxios.ts
|
|
205
|
+
import axios from "axios";
|
|
206
|
+
var baseAxios = axios.create({
|
|
207
|
+
baseURL: ""
|
|
208
|
+
// server
|
|
209
|
+
// baseURL: process.env.NEXT_PUBLIC_API_LOCAL, // local debug
|
|
210
|
+
});
|
|
211
|
+
baseAxios.interceptors.request.use(
|
|
212
|
+
(config) => {
|
|
213
|
+
var _a, _b;
|
|
214
|
+
const tokenData = localStorage.getItem("useStore_Authenticate");
|
|
215
|
+
const state = JSON.parse(tokenData);
|
|
216
|
+
const token = (_b = (_a = state == null ? void 0 : state.state) == null ? void 0 : _a.state) == null ? void 0 : _b.token;
|
|
217
|
+
if (token) {
|
|
218
|
+
config.headers.Authorization = `Bearer ${token}`;
|
|
219
|
+
}
|
|
220
|
+
return config;
|
|
221
|
+
},
|
|
222
|
+
(error) => {
|
|
223
|
+
return Promise.reject(error);
|
|
224
|
+
}
|
|
225
|
+
);
|
|
226
|
+
var baseAxios_default = baseAxios;
|
|
227
|
+
|
|
228
|
+
// src/hooks/custom-hooks/createRepository.ts
|
|
229
|
+
function createRepository(baseUrl, mapper, extra) {
|
|
230
|
+
const base = {
|
|
231
|
+
async getAll() {
|
|
232
|
+
const { data } = await baseAxios_default.get(baseUrl);
|
|
233
|
+
return data.map(mapper.toUi);
|
|
234
|
+
},
|
|
235
|
+
async getById(id) {
|
|
236
|
+
const { data } = await baseAxios_default.get(`${baseUrl}/${id}`);
|
|
237
|
+
return mapper.toUi(data);
|
|
238
|
+
},
|
|
239
|
+
async create(item) {
|
|
240
|
+
const { data } = await baseAxios_default.post(baseUrl, mapper.toApi(item));
|
|
241
|
+
return mapper.toUi(data);
|
|
242
|
+
},
|
|
243
|
+
async update(id, item) {
|
|
244
|
+
const { data } = await baseAxios_default.put(`${baseUrl}/${id}`, mapper.toApi(item));
|
|
245
|
+
return mapper.toUi(data);
|
|
246
|
+
},
|
|
247
|
+
async delete(id) {
|
|
248
|
+
await baseAxios_default.delete(`${baseUrl}/${id}`);
|
|
197
249
|
}
|
|
198
250
|
};
|
|
251
|
+
const custom = extra ? extra(baseAxios_default) : {};
|
|
252
|
+
return __spreadValues(__spreadValues({}, base), custom);
|
|
199
253
|
}
|
|
200
254
|
|
|
201
255
|
// src/hooks/custom-hooks/useConfig.ts
|
|
@@ -347,30 +401,6 @@ function useCrudService(service, queryKey) {
|
|
|
347
401
|
};
|
|
348
402
|
}
|
|
349
403
|
|
|
350
|
-
// src/api/config/baseAxios.ts
|
|
351
|
-
import axios from "axios";
|
|
352
|
-
var baseAxios = axios.create({
|
|
353
|
-
baseURL: ""
|
|
354
|
-
// server
|
|
355
|
-
// baseURL: process.env.NEXT_PUBLIC_API_LOCAL, // local debug
|
|
356
|
-
});
|
|
357
|
-
baseAxios.interceptors.request.use(
|
|
358
|
-
(config) => {
|
|
359
|
-
var _a, _b;
|
|
360
|
-
const tokenData = localStorage.getItem("useStore_Authenticate");
|
|
361
|
-
const state = JSON.parse(tokenData);
|
|
362
|
-
const token = (_b = (_a = state == null ? void 0 : state.state) == null ? void 0 : _a.state) == null ? void 0 : _b.token;
|
|
363
|
-
if (token) {
|
|
364
|
-
config.headers.Authorization = `Bearer ${token}`;
|
|
365
|
-
}
|
|
366
|
-
return config;
|
|
367
|
-
},
|
|
368
|
-
(error) => {
|
|
369
|
-
return Promise.reject(error);
|
|
370
|
-
}
|
|
371
|
-
);
|
|
372
|
-
var baseAxios_default = baseAxios;
|
|
373
|
-
|
|
374
404
|
// src/hooks/custom-hooks/useLoadAxiosConfig.ts
|
|
375
405
|
import { useEffect as useEffect2, useState as useState3 } from "react";
|
|
376
406
|
var useLoadAxiosConfig = ({
|
|
@@ -429,11 +459,12 @@ export {
|
|
|
429
459
|
createBaseApi,
|
|
430
460
|
createBaseUrl,
|
|
431
461
|
createMapper,
|
|
462
|
+
baseAxios_default,
|
|
463
|
+
createRepository,
|
|
432
464
|
useConfig,
|
|
433
465
|
useMyReactMutation,
|
|
434
466
|
useMyReactQuery,
|
|
435
467
|
useCrudService,
|
|
436
|
-
baseAxios_default,
|
|
437
468
|
useLoadAxiosConfig,
|
|
438
469
|
useQ_AQ_GetAQModule
|
|
439
470
|
};
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
|
-
utils_converter_mapEnumToSelectData
|
|
3
|
-
|
|
2
|
+
utils_converter_mapEnumToSelectData,
|
|
3
|
+
utils_excel_download,
|
|
4
|
+
utils_excel_exportExcel
|
|
5
|
+
} from "./chunk-ENU27ON2.mjs";
|
|
6
|
+
import {
|
|
7
|
+
utils_date_dateToDDMMYYYString,
|
|
8
|
+
utils_date_formatToDateTimeStartEnd,
|
|
9
|
+
utils_date_formatToDateTimeString,
|
|
10
|
+
utils_date_getHHmm
|
|
11
|
+
} from "./chunk-QSWIVDXC.mjs";
|
|
4
12
|
|
|
5
13
|
// src/utils-v2/utils_converter.ts
|
|
6
14
|
var utils_converter = {
|
|
@@ -21,14 +29,7 @@ var utils_currency = {
|
|
|
21
29
|
|
|
22
30
|
// src/utils-v2/utils_date.ts
|
|
23
31
|
var utils_date = {
|
|
24
|
-
toDDMMYYY
|
|
25
|
-
const parsedDate = typeof date === "string" ? new Date(date) : date;
|
|
26
|
-
if (!(parsedDate instanceof Date) || isNaN(parsedDate.getTime())) return "";
|
|
27
|
-
const day = String(parsedDate.getDate()).padStart(2, "0");
|
|
28
|
-
const month = String(parsedDate.getMonth() + 1).padStart(2, "0");
|
|
29
|
-
const year = parsedDate.getFullYear();
|
|
30
|
-
return `${day}/${month}/${year}`;
|
|
31
|
-
},
|
|
32
|
+
toDDMMYYY: utils_date_dateToDDMMYYYString,
|
|
32
33
|
toMMYYY(date) {
|
|
33
34
|
const parsedDate = typeof date === "string" ? new Date(date) : date;
|
|
34
35
|
if (!(parsedDate instanceof Date) || isNaN(parsedDate.getTime())) return "";
|
|
@@ -36,33 +37,15 @@ var utils_date = {
|
|
|
36
37
|
const year = parsedDate.getFullYear();
|
|
37
38
|
return `${month}/${year}`;
|
|
38
39
|
},
|
|
39
|
-
formatToDateTimeStartEnd
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
},
|
|
49
|
-
getHHmm(date) {
|
|
50
|
-
if (!(date instanceof Date) || isNaN(date.getTime())) return "";
|
|
51
|
-
const hour = String(date.getHours()).padStart(2, "0");
|
|
52
|
-
const minute = String(date.getMinutes()).padStart(2, "0");
|
|
53
|
-
return `${hour}:${minute}`;
|
|
54
|
-
},
|
|
55
|
-
formatToDateTimeString(date, WithSeconds) {
|
|
56
|
-
const parsedDate = typeof date === "string" ? new Date(date) : date;
|
|
57
|
-
if (!(parsedDate instanceof Date) || isNaN(parsedDate.getTime())) return "";
|
|
58
|
-
const day = String(parsedDate.getDate()).padStart(2, "0");
|
|
59
|
-
const month = String(parsedDate.getMonth() + 1).padStart(2, "0");
|
|
60
|
-
const year = parsedDate.getFullYear();
|
|
61
|
-
const hours = String(parsedDate.getHours()).padStart(2, "0");
|
|
62
|
-
const minutes = String(parsedDate.getMinutes()).padStart(2, "0");
|
|
63
|
-
const seconds = String(parsedDate.getSeconds()).padStart(2, "0");
|
|
64
|
-
return `${day}/${month}/${year} - ${hours}:${minutes}${WithSeconds && `:${seconds}`}`;
|
|
65
|
-
}
|
|
40
|
+
formatToDateTimeStartEnd: utils_date_formatToDateTimeStartEnd,
|
|
41
|
+
getHHmm: utils_date_getHHmm,
|
|
42
|
+
formatToDateTimeString: utils_date_formatToDateTimeString
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
// src/utils-v2/utils_excel.ts
|
|
46
|
+
var utils_excel = {
|
|
47
|
+
addSheet: utils_excel_exportExcel,
|
|
48
|
+
download: utils_excel_download
|
|
66
49
|
};
|
|
67
50
|
|
|
68
51
|
// src/utils-v2/utils_mantineReactTable.ts
|
|
@@ -141,6 +124,7 @@ export {
|
|
|
141
124
|
utils_converter,
|
|
142
125
|
utils_currency,
|
|
143
126
|
utils_date,
|
|
127
|
+
utils_excel,
|
|
144
128
|
utils_mantineReactTable,
|
|
145
129
|
utils_text,
|
|
146
130
|
utils_time
|