@esic-lab/data-core-ui 0.0.41 → 0.0.43
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/index.css +118 -0
- package/dist/index.d.mts +18 -2
- package/dist/index.d.ts +18 -2
- package/dist/index.js +582 -326
- package/dist/index.mjs +537 -282
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1231,74 +1231,328 @@ function InputFieldNumber({
|
|
|
1231
1231
|
var import_dayjs = __toESM(require_dayjs_min());
|
|
1232
1232
|
var import_th2 = __toESM(require_th());
|
|
1233
1233
|
var import_buddhistEra = __toESM(require_buddhistEra());
|
|
1234
|
-
import {
|
|
1234
|
+
import { useState as useState6, useRef as useRef2, useEffect as useEffect2 } from "react";
|
|
1235
1235
|
import { format } from "date-fns";
|
|
1236
1236
|
import { th as thFns } from "date-fns/locale";
|
|
1237
|
-
import th from "antd/es/date-picker/locale/th_TH";
|
|
1238
1237
|
import { jsx as jsx23, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
1239
1238
|
import_dayjs.default.extend(import_buddhistEra.default);
|
|
1240
|
-
|
|
1241
|
-
...th,
|
|
1242
|
-
lang: {
|
|
1243
|
-
...th.lang,
|
|
1244
|
-
fieldDateFormat: "BBBB-MM-DD",
|
|
1245
|
-
fieldDateTimeFormat: "BBBB-MM-DD HH:mm:ss",
|
|
1246
|
-
yearFormat: "BBBB",
|
|
1247
|
-
cellYearFormat: "BBBB"
|
|
1248
|
-
}
|
|
1249
|
-
};
|
|
1239
|
+
import_dayjs.default.locale("th");
|
|
1250
1240
|
function DatePickerBasic({
|
|
1251
1241
|
value,
|
|
1252
1242
|
onChange,
|
|
1253
|
-
required,
|
|
1254
1243
|
label,
|
|
1244
|
+
required,
|
|
1255
1245
|
error,
|
|
1256
|
-
placeholder = "\u0E01\u0E23\u0E38\u0E13\u0E32\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48",
|
|
1257
1246
|
disabled,
|
|
1258
|
-
|
|
1247
|
+
placeholder = "\u0E01\u0E23\u0E38\u0E13\u0E32\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48",
|
|
1259
1248
|
minDate,
|
|
1260
1249
|
maxDate,
|
|
1261
1250
|
disabledDate,
|
|
1262
|
-
|
|
1263
|
-
size = "middle"
|
|
1251
|
+
disablePast = false
|
|
1264
1252
|
}) {
|
|
1265
|
-
const
|
|
1253
|
+
const [open, setOpen] = useState6(false);
|
|
1254
|
+
const wrapperRef = useRef2(null);
|
|
1255
|
+
const current = value ? (0, import_dayjs.default)(value) : null;
|
|
1256
|
+
const today = (0, import_dayjs.default)();
|
|
1257
|
+
const formatThaiBE = (date) => {
|
|
1266
1258
|
const formatted = format(date, "dd MMMM yyyy", { locale: thFns });
|
|
1267
|
-
const year = parseInt(format(date, "yyyy"));
|
|
1268
|
-
|
|
1269
|
-
|
|
1259
|
+
const year = parseInt(format(date, "yyyy")) + 543;
|
|
1260
|
+
return formatted.replace(/\d{4}$/, String(year));
|
|
1261
|
+
};
|
|
1262
|
+
const monthNames = [
|
|
1263
|
+
"\u0E21\u0E01\u0E23\u0E32\u0E04\u0E21",
|
|
1264
|
+
"\u0E01\u0E38\u0E21\u0E20\u0E32\u0E1E\u0E31\u0E19\u0E18\u0E4C",
|
|
1265
|
+
"\u0E21\u0E35\u0E19\u0E32\u0E04\u0E21",
|
|
1266
|
+
"\u0E40\u0E21\u0E29\u0E32\u0E22\u0E19",
|
|
1267
|
+
"\u0E1E\u0E24\u0E29\u0E20\u0E32\u0E04\u0E21",
|
|
1268
|
+
"\u0E21\u0E34\u0E16\u0E38\u0E19\u0E32\u0E22\u0E19",
|
|
1269
|
+
"\u0E01\u0E23\u0E01\u0E0E\u0E32\u0E04\u0E21",
|
|
1270
|
+
"\u0E2A\u0E34\u0E07\u0E2B\u0E32\u0E04\u0E21",
|
|
1271
|
+
"\u0E01\u0E31\u0E19\u0E22\u0E32\u0E22\u0E19",
|
|
1272
|
+
"\u0E15\u0E38\u0E25\u0E32\u0E04\u0E21",
|
|
1273
|
+
"\u0E1E\u0E24\u0E28\u0E08\u0E34\u0E01\u0E32\u0E22\u0E19",
|
|
1274
|
+
"\u0E18\u0E31\u0E19\u0E27\u0E32\u0E04\u0E21"
|
|
1275
|
+
];
|
|
1276
|
+
const [calendar, setCalendar] = useState6(current || today);
|
|
1277
|
+
const daysInMonth = calendar.daysInMonth();
|
|
1278
|
+
const firstDayOfMonth = calendar.startOf("month").day();
|
|
1279
|
+
const isDisabled = (date) => {
|
|
1280
|
+
if (disablePast && date.isBefore(today, "day")) return true;
|
|
1281
|
+
if (disabledDate && disabledDate(date.toDate())) return true;
|
|
1282
|
+
if (minDate && date.isBefore((0, import_dayjs.default)(minDate), "day")) return true;
|
|
1283
|
+
if (maxDate && date.isAfter((0, import_dayjs.default)(maxDate), "day")) return true;
|
|
1284
|
+
return false;
|
|
1285
|
+
};
|
|
1286
|
+
const handleSelect = (d) => {
|
|
1287
|
+
const selected = calendar.date(d);
|
|
1288
|
+
if (isDisabled(selected)) return;
|
|
1289
|
+
onChange(selected.toDate());
|
|
1290
|
+
setOpen(false);
|
|
1270
1291
|
};
|
|
1271
|
-
|
|
1272
|
-
|
|
1292
|
+
useEffect2(() => {
|
|
1293
|
+
const handleClickOutside = (e) => {
|
|
1294
|
+
if (wrapperRef.current && !wrapperRef.current.contains(e.target)) {
|
|
1295
|
+
setOpen(false);
|
|
1296
|
+
}
|
|
1297
|
+
};
|
|
1298
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
1299
|
+
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
1300
|
+
}, []);
|
|
1301
|
+
return /* @__PURE__ */ jsxs19("div", { ref: wrapperRef, style: { fontFamily: "Kanit", fontSize: 16 }, className: "relative w-full", children: [
|
|
1302
|
+
/* @__PURE__ */ jsxs19("div", { className: "mb-1", children: [
|
|
1273
1303
|
/* @__PURE__ */ jsx23("span", { className: "body-1", children: label }),
|
|
1274
|
-
required && /* @__PURE__ */ jsx23("span", { className: "text-red-500", children: "*" })
|
|
1304
|
+
required && /* @__PURE__ */ jsx23("span", { className: "text-red-500 ml-1", children: "*" })
|
|
1275
1305
|
] }),
|
|
1276
1306
|
/* @__PURE__ */ jsx23(
|
|
1277
|
-
|
|
1307
|
+
"div",
|
|
1278
1308
|
{
|
|
1279
|
-
className: `
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1309
|
+
className: `border rounded px-3 py-2 cursor-pointer bg-white flex items-center ${disabled ? "opacity-50 cursor-not-allowed" : ""} ${error ? "border-red-500" : "border-gray-300"}`,
|
|
1310
|
+
onClick: () => !disabled && setOpen(!open),
|
|
1311
|
+
children: /* @__PURE__ */ jsx23("div", { className: "flex-1", children: value ? formatThaiBE(value) : /* @__PURE__ */ jsx23("span", { className: "text-gray-400", children: placeholder }) })
|
|
1312
|
+
}
|
|
1313
|
+
),
|
|
1314
|
+
open && /* @__PURE__ */ jsxs19(
|
|
1315
|
+
"div",
|
|
1316
|
+
{
|
|
1317
|
+
className: "absolute z-50 mt-2 w-80 p-4 bg-white shadow-xl rounded-lg border animate-fade-in",
|
|
1318
|
+
style: { fontFamily: "Kanit", fontSize: 16 },
|
|
1319
|
+
children: [
|
|
1320
|
+
/* @__PURE__ */ jsxs19("div", { className: "flex justify-between items-center mb-3", children: [
|
|
1321
|
+
/* @__PURE__ */ jsx23(
|
|
1322
|
+
"button",
|
|
1323
|
+
{
|
|
1324
|
+
onClick: () => setCalendar(calendar.subtract(1, "month")),
|
|
1325
|
+
className: "px-2 hover:bg-gray-100 rounded",
|
|
1326
|
+
children: "\u25C0"
|
|
1327
|
+
}
|
|
1328
|
+
),
|
|
1329
|
+
/* @__PURE__ */ jsxs19("div", { className: "font-semibold text-lg text-gray-700", children: [
|
|
1330
|
+
monthNames[calendar.month()],
|
|
1331
|
+
" ",
|
|
1332
|
+
calendar.year() + 543
|
|
1333
|
+
] }),
|
|
1334
|
+
/* @__PURE__ */ jsx23("button", { onClick: () => setCalendar(calendar.add(1, "month")), className: "px-2 hover:bg-gray-100 rounded", children: "\u25B6" })
|
|
1335
|
+
] }),
|
|
1336
|
+
/* @__PURE__ */ jsx23("div", { className: "grid grid-cols-7 text-center text-gray-500 text-sm mb-2 font-medium", children: ["\u0E2D\u0E32", "\u0E08", "\u0E2D", "\u0E1E", "\u0E1E\u0E24", "\u0E28", "\u0E2A"].map((d) => /* @__PURE__ */ jsx23("div", { children: d }, d)) }),
|
|
1337
|
+
/* @__PURE__ */ jsxs19("div", { className: "grid grid-cols-7 gap-1 text-center", children: [
|
|
1338
|
+
Array(firstDayOfMonth).fill(null).map((_, i) => /* @__PURE__ */ jsx23("div", {}, `empty-${i}`)),
|
|
1339
|
+
Array.from({ length: daysInMonth }, (_, i) => i + 1).map((d) => {
|
|
1340
|
+
const dateObj = calendar.date(d);
|
|
1341
|
+
const isDisable = isDisabled(dateObj);
|
|
1342
|
+
const isSelected = current && dateObj.isSame(current, "day");
|
|
1343
|
+
const isToday = dateObj.isSame(today, "day");
|
|
1344
|
+
let bgClass = "hover:bg-blue-100";
|
|
1345
|
+
let textClass = "text-gray-700";
|
|
1346
|
+
if (isDisable) {
|
|
1347
|
+
bgClass = "";
|
|
1348
|
+
textClass = "text-gray-300 cursor-not-allowed";
|
|
1349
|
+
} else if (isSelected) {
|
|
1350
|
+
bgClass = "bg-blue-500 text-white shadow-md";
|
|
1351
|
+
textClass = "text-white font-semibold";
|
|
1352
|
+
} else if (isToday) {
|
|
1353
|
+
bgClass = "border border-blue-500 font-bold";
|
|
1354
|
+
textClass = "text-blue-600";
|
|
1355
|
+
}
|
|
1356
|
+
return /* @__PURE__ */ jsx23(
|
|
1357
|
+
"div",
|
|
1358
|
+
{
|
|
1359
|
+
onClick: () => !isDisable && handleSelect(d),
|
|
1360
|
+
className: `
|
|
1361
|
+
py-1 rounded transition-all duration-200
|
|
1362
|
+
${bgClass} ${textClass}
|
|
1363
|
+
${!isDisable ? "cursor-pointer" : ""}
|
|
1364
|
+
`,
|
|
1365
|
+
children: d
|
|
1366
|
+
},
|
|
1367
|
+
d
|
|
1368
|
+
);
|
|
1369
|
+
})
|
|
1370
|
+
] })
|
|
1371
|
+
]
|
|
1372
|
+
}
|
|
1373
|
+
),
|
|
1374
|
+
error && /* @__PURE__ */ jsx23("p", { className: "text-red-500 text-xs mt-1", children: error })
|
|
1375
|
+
] });
|
|
1376
|
+
}
|
|
1377
|
+
|
|
1378
|
+
// src/DatePicker/DatePickerRange/DatePickerRange.tsx
|
|
1379
|
+
var import_dayjs2 = __toESM(require_dayjs_min());
|
|
1380
|
+
var import_th3 = __toESM(require_th());
|
|
1381
|
+
var import_buddhistEra2 = __toESM(require_buddhistEra());
|
|
1382
|
+
import { useState as useState7, useRef as useRef3, useEffect as useEffect3 } from "react";
|
|
1383
|
+
import { format as format2 } from "date-fns";
|
|
1384
|
+
import { th as thFns2 } from "date-fns/locale";
|
|
1385
|
+
import { jsx as jsx24, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
1386
|
+
import_dayjs2.default.extend(import_buddhistEra2.default);
|
|
1387
|
+
import_dayjs2.default.locale("th");
|
|
1388
|
+
function DatePickerRange({
|
|
1389
|
+
value,
|
|
1390
|
+
onChange,
|
|
1391
|
+
label,
|
|
1392
|
+
required,
|
|
1393
|
+
error,
|
|
1394
|
+
disabled,
|
|
1395
|
+
minDate,
|
|
1396
|
+
maxDate,
|
|
1397
|
+
disabledDate,
|
|
1398
|
+
disablePast = false
|
|
1399
|
+
}) {
|
|
1400
|
+
const [open, setOpen] = useState7(false);
|
|
1401
|
+
const wrapperRef = useRef3(null);
|
|
1402
|
+
const [startDate, endDate] = value;
|
|
1403
|
+
const startDayjs = startDate ? (0, import_dayjs2.default)(startDate) : null;
|
|
1404
|
+
const endDayjs = endDate ? (0, import_dayjs2.default)(endDate) : null;
|
|
1405
|
+
const today = (0, import_dayjs2.default)();
|
|
1406
|
+
const [calendar, setCalendar] = useState7(startDayjs || today);
|
|
1407
|
+
const formatThaiBE = (date) => {
|
|
1408
|
+
const formatted = format2(date, "dd MMM yy", { locale: thFns2 });
|
|
1409
|
+
const year = parseInt(format2(date, "yyyy")) + 543;
|
|
1410
|
+
return formatted.replace(/\d{4}$/, String(year)).replace(/\d{2}$/, String(year).slice(2));
|
|
1411
|
+
};
|
|
1412
|
+
const monthNames = [
|
|
1413
|
+
"\u0E21\u0E01\u0E23\u0E32\u0E04\u0E21",
|
|
1414
|
+
"\u0E01\u0E38\u0E21\u0E20\u0E32\u0E1E\u0E31\u0E19\u0E18\u0E4C",
|
|
1415
|
+
"\u0E21\u0E35\u0E19\u0E32\u0E04\u0E21",
|
|
1416
|
+
"\u0E40\u0E21\u0E29\u0E32\u0E22\u0E19",
|
|
1417
|
+
"\u0E1E\u0E24\u0E29\u0E20\u0E32\u0E04\u0E21",
|
|
1418
|
+
"\u0E21\u0E34\u0E16\u0E38\u0E19\u0E32\u0E22\u0E19",
|
|
1419
|
+
"\u0E01\u0E23\u0E01\u0E0E\u0E32\u0E04\u0E21",
|
|
1420
|
+
"\u0E2A\u0E34\u0E07\u0E2B\u0E32\u0E04\u0E21",
|
|
1421
|
+
"\u0E01\u0E31\u0E19\u0E22\u0E32\u0E22\u0E19",
|
|
1422
|
+
"\u0E15\u0E38\u0E25\u0E32\u0E04\u0E21",
|
|
1423
|
+
"\u0E1E\u0E24\u0E28\u0E08\u0E34\u0E01\u0E32\u0E22\u0E19",
|
|
1424
|
+
"\u0E18\u0E31\u0E19\u0E27\u0E32\u0E04\u0E21"
|
|
1425
|
+
];
|
|
1426
|
+
const daysInMonth = calendar.daysInMonth();
|
|
1427
|
+
const firstDayOfMonth = calendar.startOf("month").day();
|
|
1428
|
+
const isDisabled = (date) => {
|
|
1429
|
+
if (disablePast && date.isBefore(today, "day")) return true;
|
|
1430
|
+
if (disabledDate && disabledDate(date.toDate())) return true;
|
|
1431
|
+
if (minDate && date.isBefore((0, import_dayjs2.default)(minDate), "day")) return true;
|
|
1432
|
+
if (maxDate && date.isAfter((0, import_dayjs2.default)(maxDate), "day")) return true;
|
|
1433
|
+
return false;
|
|
1434
|
+
};
|
|
1435
|
+
const handleSelect = (d) => {
|
|
1436
|
+
const selected = calendar.date(d);
|
|
1437
|
+
if (isDisabled(selected)) return;
|
|
1438
|
+
const selectedDate = selected.toDate();
|
|
1439
|
+
if (!startDate || startDate && endDate) {
|
|
1440
|
+
onChange([selectedDate, null]);
|
|
1441
|
+
} else if (startDate && !endDate) {
|
|
1442
|
+
if (selected.isBefore(startDayjs, "day")) {
|
|
1443
|
+
onChange([selectedDate, null]);
|
|
1444
|
+
} else {
|
|
1445
|
+
onChange([startDate, selectedDate]);
|
|
1446
|
+
setOpen(false);
|
|
1447
|
+
}
|
|
1448
|
+
}
|
|
1449
|
+
};
|
|
1450
|
+
useEffect3(() => {
|
|
1451
|
+
const handleClickOutside = (e) => {
|
|
1452
|
+
if (wrapperRef.current && !wrapperRef.current.contains(e.target)) {
|
|
1453
|
+
setOpen(false);
|
|
1454
|
+
}
|
|
1455
|
+
};
|
|
1456
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
1457
|
+
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
1458
|
+
}, []);
|
|
1459
|
+
const ArrowIcon = () => /* @__PURE__ */ jsx24("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", className: "w-4 h-4 text-gray-400", children: /* @__PURE__ */ jsx24(
|
|
1460
|
+
"path",
|
|
1461
|
+
{
|
|
1462
|
+
fillRule: "evenodd",
|
|
1463
|
+
d: "M12.97 3.97a.75.75 0 011.06 0l7.5 7.5a.75.75 0 010 1.06l-7.5 7.5a.75.75 0 11-1.06-1.06l6.22-6.22H3a.75.75 0 010-1.5h16.19l-6.22-6.22a.75.75 0 010-1.06z",
|
|
1464
|
+
clipRule: "evenodd"
|
|
1465
|
+
}
|
|
1466
|
+
) });
|
|
1467
|
+
return /* @__PURE__ */ jsxs20("div", { ref: wrapperRef, style: { fontFamily: "Kanit", fontSize: 16 }, className: "relative w-full", children: [
|
|
1468
|
+
/* @__PURE__ */ jsxs20("div", { className: "mb-1", children: [
|
|
1469
|
+
/* @__PURE__ */ jsx24("span", { className: "body-1", children: label }),
|
|
1470
|
+
required && /* @__PURE__ */ jsx24("span", { className: "text-red-500 ml-1", children: "*" })
|
|
1471
|
+
] }),
|
|
1472
|
+
/* @__PURE__ */ jsxs20(
|
|
1473
|
+
"div",
|
|
1474
|
+
{
|
|
1475
|
+
className: `border rounded px-3 py-2 cursor-pointer bg-white flex items-center justify-between gap-2 ${disabled ? "opacity-50 cursor-not-allowed" : ""} ${error ? "border-red-500" : "border-gray-300"}`,
|
|
1476
|
+
onClick: () => !disabled && setOpen(!open),
|
|
1477
|
+
children: [
|
|
1478
|
+
/* @__PURE__ */ jsx24("div", { className: `flex-1 ${!startDate ? "text-gray-400 font-light" : "text-gray-800"}`, children: startDate ? formatThaiBE(startDate) : "\u0E27\u0E31\u0E19\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19" }),
|
|
1479
|
+
/* @__PURE__ */ jsx24("div", { className: "flex-shrink-0", children: /* @__PURE__ */ jsx24(ArrowIcon, {}) }),
|
|
1480
|
+
/* @__PURE__ */ jsx24("div", { className: `flex-1 text-right ${!endDate ? "text-gray-400 font-light" : "text-gray-800"}`, children: endDate ? formatThaiBE(endDate) : "\u0E27\u0E31\u0E19\u0E2A\u0E34\u0E49\u0E19\u0E2A\u0E38\u0E14" })
|
|
1481
|
+
]
|
|
1293
1482
|
}
|
|
1294
1483
|
),
|
|
1295
|
-
|
|
1484
|
+
open && /* @__PURE__ */ jsxs20(
|
|
1485
|
+
"div",
|
|
1486
|
+
{
|
|
1487
|
+
className: "absolute z-50 mt-2 w-80 p-4 bg-white shadow-xl rounded-lg border animate-fade-in right-0 left-0 mx-auto sm:mx-0 sm:left-auto sm:right-auto",
|
|
1488
|
+
style: { fontFamily: "Kanit", fontSize: 16 },
|
|
1489
|
+
children: [
|
|
1490
|
+
/* @__PURE__ */ jsxs20("div", { className: "flex justify-between items-center mb-3", children: [
|
|
1491
|
+
/* @__PURE__ */ jsx24(
|
|
1492
|
+
"button",
|
|
1493
|
+
{
|
|
1494
|
+
onClick: () => setCalendar(calendar.subtract(1, "month")),
|
|
1495
|
+
className: "px-2 hover:bg-gray-100 rounded",
|
|
1496
|
+
children: "\u25C0"
|
|
1497
|
+
}
|
|
1498
|
+
),
|
|
1499
|
+
/* @__PURE__ */ jsxs20("div", { className: "font-semibold text-lg text-gray-700", children: [
|
|
1500
|
+
monthNames[calendar.month()],
|
|
1501
|
+
" ",
|
|
1502
|
+
calendar.year() + 543
|
|
1503
|
+
] }),
|
|
1504
|
+
/* @__PURE__ */ jsx24("button", { onClick: () => setCalendar(calendar.add(1, "month")), className: "px-2 hover:bg-gray-100 rounded", children: "\u25B6" })
|
|
1505
|
+
] }),
|
|
1506
|
+
/* @__PURE__ */ jsx24("div", { className: "grid grid-cols-7 text-center text-gray-500 text-sm mb-2 font-medium", children: ["\u0E2D\u0E32", "\u0E08", "\u0E2D", "\u0E1E", "\u0E1E\u0E24", "\u0E28", "\u0E2A"].map((d) => /* @__PURE__ */ jsx24("div", { children: d }, d)) }),
|
|
1507
|
+
/* @__PURE__ */ jsxs20("div", { className: "grid grid-cols-7 gap-y-1 text-center", children: [
|
|
1508
|
+
Array(firstDayOfMonth).fill(null).map((_, i) => /* @__PURE__ */ jsx24("div", {}, `empty-${i}`)),
|
|
1509
|
+
Array.from({ length: daysInMonth }, (_, i) => i + 1).map((d) => {
|
|
1510
|
+
const currentObj = calendar.date(d);
|
|
1511
|
+
const isDisable = isDisabled(currentObj);
|
|
1512
|
+
const isToday = currentObj.isSame(today, "day");
|
|
1513
|
+
const isStart = startDayjs && currentObj.isSame(startDayjs, "day");
|
|
1514
|
+
const isEnd = endDayjs && currentObj.isSame(endDayjs, "day");
|
|
1515
|
+
const isInRange = startDayjs && endDayjs && currentObj.isAfter(startDayjs, "day") && currentObj.isBefore(endDayjs, "day");
|
|
1516
|
+
let bgClass = "hover:bg-blue-100";
|
|
1517
|
+
let textClass = "text-gray-700";
|
|
1518
|
+
if (isDisable) {
|
|
1519
|
+
bgClass = "";
|
|
1520
|
+
textClass = "text-gray-300 cursor-not-allowed";
|
|
1521
|
+
} else if (isStart || isEnd) {
|
|
1522
|
+
bgClass = "bg-blue-600 shadow-md transform scale-105";
|
|
1523
|
+
textClass = "text-white font-semibold";
|
|
1524
|
+
} else if (isInRange) {
|
|
1525
|
+
bgClass = "bg-blue-100";
|
|
1526
|
+
textClass = "text-blue-700";
|
|
1527
|
+
} else if (isToday) {
|
|
1528
|
+
bgClass = "border border-blue-500 font-bold";
|
|
1529
|
+
textClass = "text-blue-600";
|
|
1530
|
+
}
|
|
1531
|
+
return /* @__PURE__ */ jsx24(
|
|
1532
|
+
"div",
|
|
1533
|
+
{
|
|
1534
|
+
onClick: () => !isDisable && handleSelect(d),
|
|
1535
|
+
className: `
|
|
1536
|
+
h-9 w-9 flex items-center justify-center rounded-full mx-auto transition-all duration-200
|
|
1537
|
+
${bgClass} ${textClass}
|
|
1538
|
+
${!isDisable ? "cursor-pointer" : ""}
|
|
1539
|
+
`,
|
|
1540
|
+
children: d
|
|
1541
|
+
},
|
|
1542
|
+
d
|
|
1543
|
+
);
|
|
1544
|
+
})
|
|
1545
|
+
] })
|
|
1546
|
+
]
|
|
1547
|
+
}
|
|
1548
|
+
),
|
|
1549
|
+
error && /* @__PURE__ */ jsx24("p", { className: "text-red-500 text-xs mt-1", children: error })
|
|
1296
1550
|
] });
|
|
1297
1551
|
}
|
|
1298
1552
|
|
|
1299
1553
|
// src/ColorPicker/ColorPickerBasic/ColorPicker.tsx
|
|
1300
1554
|
import { ConfigProvider as ConfigProvider5, ColorPicker } from "antd";
|
|
1301
|
-
import { jsx as
|
|
1555
|
+
import { jsx as jsx25, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
1302
1556
|
function ColorPickerBasic({
|
|
1303
1557
|
value,
|
|
1304
1558
|
onChange,
|
|
@@ -1311,7 +1565,7 @@ function ColorPickerBasic({
|
|
|
1311
1565
|
className,
|
|
1312
1566
|
placeholder = "\u0E01\u0E23\u0E38\u0E13\u0E32\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E2A\u0E35"
|
|
1313
1567
|
}) {
|
|
1314
|
-
return /* @__PURE__ */
|
|
1568
|
+
return /* @__PURE__ */ jsx25(
|
|
1315
1569
|
ConfigProvider5,
|
|
1316
1570
|
{
|
|
1317
1571
|
theme: {
|
|
@@ -1320,13 +1574,13 @@ function ColorPickerBasic({
|
|
|
1320
1574
|
fontSize: 16
|
|
1321
1575
|
}
|
|
1322
1576
|
},
|
|
1323
|
-
children: /* @__PURE__ */
|
|
1324
|
-
/* @__PURE__ */
|
|
1325
|
-
/* @__PURE__ */
|
|
1577
|
+
children: /* @__PURE__ */ jsxs21("div", { className: "container-input", children: [
|
|
1578
|
+
/* @__PURE__ */ jsxs21("div", { children: [
|
|
1579
|
+
/* @__PURE__ */ jsx25("span", { className: "body-1", children: label }),
|
|
1326
1580
|
" ",
|
|
1327
|
-
required && /* @__PURE__ */
|
|
1581
|
+
required && /* @__PURE__ */ jsx25("span", { className: "text-red-500", children: "*" })
|
|
1328
1582
|
] }),
|
|
1329
|
-
/* @__PURE__ */
|
|
1583
|
+
/* @__PURE__ */ jsx25(
|
|
1330
1584
|
ColorPicker,
|
|
1331
1585
|
{
|
|
1332
1586
|
defaultFormat,
|
|
@@ -1338,9 +1592,9 @@ function ColorPickerBasic({
|
|
|
1338
1592
|
showText: (color) => {
|
|
1339
1593
|
const hex = color.toHexString();
|
|
1340
1594
|
if (!value) {
|
|
1341
|
-
return /* @__PURE__ */
|
|
1595
|
+
return /* @__PURE__ */ jsx25("span", { children: placeholder });
|
|
1342
1596
|
}
|
|
1343
|
-
return /* @__PURE__ */
|
|
1597
|
+
return /* @__PURE__ */ jsxs21("span", { children: [
|
|
1344
1598
|
"(",
|
|
1345
1599
|
hex,
|
|
1346
1600
|
")"
|
|
@@ -1349,7 +1603,7 @@ function ColorPickerBasic({
|
|
|
1349
1603
|
disabled
|
|
1350
1604
|
}
|
|
1351
1605
|
),
|
|
1352
|
-
error && /* @__PURE__ */
|
|
1606
|
+
error && /* @__PURE__ */ jsx25("p", { className: "text-red-500 caption-1", children: error })
|
|
1353
1607
|
] })
|
|
1354
1608
|
}
|
|
1355
1609
|
);
|
|
@@ -2058,7 +2312,7 @@ var greyDark = ["#151515", "#1f1f1f", "#2d2d2d", "#393939", "#494949", "#5a5a5a"
|
|
|
2058
2312
|
greyDark.primary = greyDark[5];
|
|
2059
2313
|
|
|
2060
2314
|
// src/ColorPicker/ColorPalettePickerBasic/ColorPalettePickerBasic.tsx
|
|
2061
|
-
import { jsx as
|
|
2315
|
+
import { jsx as jsx26, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
2062
2316
|
function genPresets(presets = presetPalettes) {
|
|
2063
2317
|
return Object.entries(presets).map(([label, colors]) => ({
|
|
2064
2318
|
label,
|
|
@@ -2085,7 +2339,7 @@ function ColorPalettePickerBasic({
|
|
|
2085
2339
|
red,
|
|
2086
2340
|
green
|
|
2087
2341
|
});
|
|
2088
|
-
return /* @__PURE__ */
|
|
2342
|
+
return /* @__PURE__ */ jsx26(
|
|
2089
2343
|
ConfigProvider6,
|
|
2090
2344
|
{
|
|
2091
2345
|
theme: {
|
|
@@ -2094,13 +2348,13 @@ function ColorPalettePickerBasic({
|
|
|
2094
2348
|
fontSize: 16
|
|
2095
2349
|
}
|
|
2096
2350
|
},
|
|
2097
|
-
children: /* @__PURE__ */
|
|
2098
|
-
/* @__PURE__ */
|
|
2099
|
-
/* @__PURE__ */
|
|
2351
|
+
children: /* @__PURE__ */ jsxs22("div", { className: "container-input", children: [
|
|
2352
|
+
/* @__PURE__ */ jsxs22("div", { children: [
|
|
2353
|
+
/* @__PURE__ */ jsx26("span", { className: "body-1", children: label }),
|
|
2100
2354
|
" ",
|
|
2101
|
-
required && /* @__PURE__ */
|
|
2355
|
+
required && /* @__PURE__ */ jsx26("span", { className: "text-red-500", children: "*" })
|
|
2102
2356
|
] }),
|
|
2103
|
-
/* @__PURE__ */
|
|
2357
|
+
/* @__PURE__ */ jsx26(
|
|
2104
2358
|
ColorPicker2,
|
|
2105
2359
|
{
|
|
2106
2360
|
defaultFormat,
|
|
@@ -2113,9 +2367,9 @@ function ColorPalettePickerBasic({
|
|
|
2113
2367
|
showText: (color) => {
|
|
2114
2368
|
const hex = color.toHexString();
|
|
2115
2369
|
if (!value) {
|
|
2116
|
-
return /* @__PURE__ */
|
|
2370
|
+
return /* @__PURE__ */ jsx26("span", { children: placeholder });
|
|
2117
2371
|
}
|
|
2118
|
-
return /* @__PURE__ */
|
|
2372
|
+
return /* @__PURE__ */ jsxs22("span", { children: [
|
|
2119
2373
|
"(",
|
|
2120
2374
|
hex,
|
|
2121
2375
|
")"
|
|
@@ -2125,7 +2379,7 @@ function ColorPalettePickerBasic({
|
|
|
2125
2379
|
onClear
|
|
2126
2380
|
}
|
|
2127
2381
|
),
|
|
2128
|
-
error && /* @__PURE__ */
|
|
2382
|
+
error && /* @__PURE__ */ jsx26("p", { className: "text-red-500 caption-1", children: error })
|
|
2129
2383
|
] })
|
|
2130
2384
|
}
|
|
2131
2385
|
);
|
|
@@ -2133,7 +2387,7 @@ function ColorPalettePickerBasic({
|
|
|
2133
2387
|
|
|
2134
2388
|
// src/Select/SelectField/SelectField.tsx
|
|
2135
2389
|
import { Select, ConfigProvider as ConfigProvider7 } from "antd";
|
|
2136
|
-
import { jsx as
|
|
2390
|
+
import { jsx as jsx27, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
2137
2391
|
function SelectField({
|
|
2138
2392
|
value,
|
|
2139
2393
|
onChange,
|
|
@@ -2151,7 +2405,7 @@ function SelectField({
|
|
|
2151
2405
|
className,
|
|
2152
2406
|
onClear
|
|
2153
2407
|
}) {
|
|
2154
|
-
return /* @__PURE__ */
|
|
2408
|
+
return /* @__PURE__ */ jsx27(
|
|
2155
2409
|
ConfigProvider7,
|
|
2156
2410
|
{
|
|
2157
2411
|
theme: {
|
|
@@ -2160,13 +2414,13 @@ function SelectField({
|
|
|
2160
2414
|
fontSize: 16
|
|
2161
2415
|
}
|
|
2162
2416
|
},
|
|
2163
|
-
children: /* @__PURE__ */
|
|
2164
|
-
/* @__PURE__ */
|
|
2165
|
-
/* @__PURE__ */
|
|
2417
|
+
children: /* @__PURE__ */ jsxs23("div", { className: "container-input", children: [
|
|
2418
|
+
/* @__PURE__ */ jsxs23("div", { children: [
|
|
2419
|
+
/* @__PURE__ */ jsx27("span", { className: "body-1", children: label }),
|
|
2166
2420
|
" ",
|
|
2167
|
-
required && /* @__PURE__ */
|
|
2421
|
+
required && /* @__PURE__ */ jsx27("span", { className: "text-red-500", children: "*" })
|
|
2168
2422
|
] }),
|
|
2169
|
-
/* @__PURE__ */
|
|
2423
|
+
/* @__PURE__ */ jsx27(
|
|
2170
2424
|
Select,
|
|
2171
2425
|
{
|
|
2172
2426
|
showSearch: true,
|
|
@@ -2181,7 +2435,7 @@ function SelectField({
|
|
|
2181
2435
|
options,
|
|
2182
2436
|
mode,
|
|
2183
2437
|
onSearch: handleSearch,
|
|
2184
|
-
prefix: prefix ? /* @__PURE__ */
|
|
2438
|
+
prefix: prefix ? /* @__PURE__ */ jsx27(
|
|
2185
2439
|
"span",
|
|
2186
2440
|
{
|
|
2187
2441
|
style: {
|
|
@@ -2198,7 +2452,7 @@ function SelectField({
|
|
|
2198
2452
|
onClear
|
|
2199
2453
|
}
|
|
2200
2454
|
),
|
|
2201
|
-
error && /* @__PURE__ */
|
|
2455
|
+
error && /* @__PURE__ */ jsx27("p", { className: "text-red-500 caption-1", children: error })
|
|
2202
2456
|
] })
|
|
2203
2457
|
}
|
|
2204
2458
|
);
|
|
@@ -2206,7 +2460,7 @@ function SelectField({
|
|
|
2206
2460
|
|
|
2207
2461
|
// src/Select/SelectFieldGroup/SelectFieldGroup.tsx
|
|
2208
2462
|
import { Select as Select2, ConfigProvider as ConfigProvider8 } from "antd";
|
|
2209
|
-
import { jsx as
|
|
2463
|
+
import { jsx as jsx28, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
2210
2464
|
function SelectFieldGroup({
|
|
2211
2465
|
value,
|
|
2212
2466
|
onChange,
|
|
@@ -2223,7 +2477,7 @@ function SelectFieldGroup({
|
|
|
2223
2477
|
handleSearch,
|
|
2224
2478
|
className
|
|
2225
2479
|
}) {
|
|
2226
|
-
return /* @__PURE__ */
|
|
2480
|
+
return /* @__PURE__ */ jsx28(
|
|
2227
2481
|
ConfigProvider8,
|
|
2228
2482
|
{
|
|
2229
2483
|
theme: {
|
|
@@ -2231,13 +2485,13 @@ function SelectFieldGroup({
|
|
|
2231
2485
|
fontFamily: "Kanit"
|
|
2232
2486
|
}
|
|
2233
2487
|
},
|
|
2234
|
-
children: /* @__PURE__ */
|
|
2235
|
-
/* @__PURE__ */
|
|
2236
|
-
/* @__PURE__ */
|
|
2488
|
+
children: /* @__PURE__ */ jsxs24("div", { className: "container-input", children: [
|
|
2489
|
+
/* @__PURE__ */ jsxs24("div", { children: [
|
|
2490
|
+
/* @__PURE__ */ jsx28("span", { className: "body-1", children: label }),
|
|
2237
2491
|
" ",
|
|
2238
|
-
required && /* @__PURE__ */
|
|
2492
|
+
required && /* @__PURE__ */ jsx28("span", { className: "text-red-500", children: "*" })
|
|
2239
2493
|
] }),
|
|
2240
|
-
/* @__PURE__ */
|
|
2494
|
+
/* @__PURE__ */ jsx28(
|
|
2241
2495
|
Select2,
|
|
2242
2496
|
{
|
|
2243
2497
|
showSearch: true,
|
|
@@ -2252,7 +2506,7 @@ function SelectFieldGroup({
|
|
|
2252
2506
|
options,
|
|
2253
2507
|
mode,
|
|
2254
2508
|
onSearch: handleSearch,
|
|
2255
|
-
prefix: prefix ? /* @__PURE__ */
|
|
2509
|
+
prefix: prefix ? /* @__PURE__ */ jsx28(
|
|
2256
2510
|
"span",
|
|
2257
2511
|
{
|
|
2258
2512
|
style: {
|
|
@@ -2268,7 +2522,7 @@ function SelectFieldGroup({
|
|
|
2268
2522
|
allowClear: true
|
|
2269
2523
|
}
|
|
2270
2524
|
),
|
|
2271
|
-
error && /* @__PURE__ */
|
|
2525
|
+
error && /* @__PURE__ */ jsx28("p", { className: "text-red-500 caption-1", children: error })
|
|
2272
2526
|
] })
|
|
2273
2527
|
}
|
|
2274
2528
|
);
|
|
@@ -2288,7 +2542,7 @@ var status = [
|
|
|
2288
2542
|
|
|
2289
2543
|
// src/Select/SelectFieldStatus/SelectFieldStatus.tsx
|
|
2290
2544
|
import { DownOutlined } from "@ant-design/icons";
|
|
2291
|
-
import { jsx as
|
|
2545
|
+
import { jsx as jsx29, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
2292
2546
|
function SelectFieldStatus({
|
|
2293
2547
|
value,
|
|
2294
2548
|
onChange,
|
|
@@ -2301,7 +2555,7 @@ function SelectFieldStatus({
|
|
|
2301
2555
|
className
|
|
2302
2556
|
}) {
|
|
2303
2557
|
const selectedItem = status.find((s) => s.value === value);
|
|
2304
|
-
return /* @__PURE__ */
|
|
2558
|
+
return /* @__PURE__ */ jsx29(
|
|
2305
2559
|
ConfigProvider9,
|
|
2306
2560
|
{
|
|
2307
2561
|
theme: {
|
|
@@ -2317,17 +2571,17 @@ function SelectFieldStatus({
|
|
|
2317
2571
|
fontFamily: "Kanit"
|
|
2318
2572
|
}
|
|
2319
2573
|
},
|
|
2320
|
-
children: /* @__PURE__ */
|
|
2321
|
-
/* @__PURE__ */
|
|
2322
|
-
/* @__PURE__ */
|
|
2574
|
+
children: /* @__PURE__ */ jsxs25("div", { className: "container-input", children: [
|
|
2575
|
+
/* @__PURE__ */ jsxs25("div", { children: [
|
|
2576
|
+
/* @__PURE__ */ jsx29("span", { className: "body-1", children: label }),
|
|
2323
2577
|
" ",
|
|
2324
|
-
required && /* @__PURE__ */
|
|
2578
|
+
required && /* @__PURE__ */ jsx29("span", { className: "text-red-500", children: "*" })
|
|
2325
2579
|
] }),
|
|
2326
|
-
/* @__PURE__ */
|
|
2580
|
+
/* @__PURE__ */ jsx29(
|
|
2327
2581
|
Select3,
|
|
2328
2582
|
{
|
|
2329
2583
|
disabled,
|
|
2330
|
-
suffixIcon: /* @__PURE__ */
|
|
2584
|
+
suffixIcon: /* @__PURE__ */ jsx29(DownOutlined, { style: { color: value ? "#fff" : "#D9D9D9" } }),
|
|
2331
2585
|
value,
|
|
2332
2586
|
onChange,
|
|
2333
2587
|
className: `body-3 custom-select flex justify-center w-full ${className ?? ""}`,
|
|
@@ -2338,7 +2592,7 @@ function SelectFieldStatus({
|
|
|
2338
2592
|
showSearch: true
|
|
2339
2593
|
}
|
|
2340
2594
|
),
|
|
2341
|
-
error && /* @__PURE__ */
|
|
2595
|
+
error && /* @__PURE__ */ jsx29("p", { className: "text-red-500 caption-1", children: error })
|
|
2342
2596
|
] })
|
|
2343
2597
|
}
|
|
2344
2598
|
);
|
|
@@ -2355,7 +2609,7 @@ var status2 = [
|
|
|
2355
2609
|
|
|
2356
2610
|
// src/Select/SelectFieldStatusReport/SelectFieldStatusReport.tsx
|
|
2357
2611
|
import { DownOutlined as DownOutlined2 } from "@ant-design/icons";
|
|
2358
|
-
import { jsx as
|
|
2612
|
+
import { jsx as jsx30, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
2359
2613
|
function SelectFieldStatusReport({
|
|
2360
2614
|
value,
|
|
2361
2615
|
onChange,
|
|
@@ -2368,7 +2622,7 @@ function SelectFieldStatusReport({
|
|
|
2368
2622
|
options
|
|
2369
2623
|
}) {
|
|
2370
2624
|
const selectedItem = status2.find((s) => s.value === value);
|
|
2371
|
-
return /* @__PURE__ */
|
|
2625
|
+
return /* @__PURE__ */ jsx30(
|
|
2372
2626
|
ConfigProvider10,
|
|
2373
2627
|
{
|
|
2374
2628
|
theme: {
|
|
@@ -2384,17 +2638,17 @@ function SelectFieldStatusReport({
|
|
|
2384
2638
|
fontFamily: "Kanit"
|
|
2385
2639
|
}
|
|
2386
2640
|
},
|
|
2387
|
-
children: /* @__PURE__ */
|
|
2388
|
-
/* @__PURE__ */
|
|
2389
|
-
/* @__PURE__ */
|
|
2641
|
+
children: /* @__PURE__ */ jsxs26("div", { className: "container-input", children: [
|
|
2642
|
+
/* @__PURE__ */ jsxs26("div", { children: [
|
|
2643
|
+
/* @__PURE__ */ jsx30("span", { className: "body-1", children: label }),
|
|
2390
2644
|
" ",
|
|
2391
|
-
required && /* @__PURE__ */
|
|
2645
|
+
required && /* @__PURE__ */ jsx30("span", { className: "text-red-500", children: "*" })
|
|
2392
2646
|
] }),
|
|
2393
|
-
/* @__PURE__ */
|
|
2647
|
+
/* @__PURE__ */ jsx30(
|
|
2394
2648
|
Select4,
|
|
2395
2649
|
{
|
|
2396
2650
|
disabled,
|
|
2397
|
-
suffixIcon: /* @__PURE__ */
|
|
2651
|
+
suffixIcon: /* @__PURE__ */ jsx30(DownOutlined2, { style: { color: value ? "#fff" : "#D9D9D9" } }),
|
|
2398
2652
|
value,
|
|
2399
2653
|
onChange,
|
|
2400
2654
|
className: `body-3 custom-select flex justify-center w-full ${className ?? ""}`,
|
|
@@ -2405,7 +2659,7 @@ function SelectFieldStatusReport({
|
|
|
2405
2659
|
showSearch: true
|
|
2406
2660
|
}
|
|
2407
2661
|
),
|
|
2408
|
-
error && /* @__PURE__ */
|
|
2662
|
+
error && /* @__PURE__ */ jsx30("p", { className: "text-red-500 caption-1", children: error })
|
|
2409
2663
|
] })
|
|
2410
2664
|
}
|
|
2411
2665
|
);
|
|
@@ -2413,8 +2667,8 @@ function SelectFieldStatusReport({
|
|
|
2413
2667
|
|
|
2414
2668
|
// src/Select/SelectFieldTag/SelectFieldTag.tsx
|
|
2415
2669
|
import { Select as Select5, ConfigProvider as ConfigProvider11 } from "antd";
|
|
2416
|
-
import { useState as
|
|
2417
|
-
import { jsx as
|
|
2670
|
+
import { useState as useState8 } from "react";
|
|
2671
|
+
import { jsx as jsx31, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
2418
2672
|
function SelectFieldTag({
|
|
2419
2673
|
label,
|
|
2420
2674
|
required,
|
|
@@ -2426,10 +2680,10 @@ function SelectFieldTag({
|
|
|
2426
2680
|
onChange,
|
|
2427
2681
|
onClear
|
|
2428
2682
|
}) {
|
|
2429
|
-
const [internalValue, setInternalValue] =
|
|
2683
|
+
const [internalValue, setInternalValue] = useState8([]);
|
|
2430
2684
|
const isControlled = controlledValue !== void 0;
|
|
2431
2685
|
const value = isControlled ? controlledValue : internalValue;
|
|
2432
|
-
const [searchWord, setSearchWord] =
|
|
2686
|
+
const [searchWord, setSearchWord] = useState8("");
|
|
2433
2687
|
const handleChange = (val) => {
|
|
2434
2688
|
const trimValue = val.map((v) => v.trim());
|
|
2435
2689
|
const filtered = trimValue.filter((v) => v.trim() !== "");
|
|
@@ -2447,7 +2701,7 @@ function SelectFieldTag({
|
|
|
2447
2701
|
}
|
|
2448
2702
|
onChange?.([]);
|
|
2449
2703
|
};
|
|
2450
|
-
return /* @__PURE__ */
|
|
2704
|
+
return /* @__PURE__ */ jsx31(
|
|
2451
2705
|
ConfigProvider11,
|
|
2452
2706
|
{
|
|
2453
2707
|
theme: {
|
|
@@ -2455,13 +2709,13 @@ function SelectFieldTag({
|
|
|
2455
2709
|
fontFamily: "Kanit"
|
|
2456
2710
|
}
|
|
2457
2711
|
},
|
|
2458
|
-
children: /* @__PURE__ */
|
|
2459
|
-
/* @__PURE__ */
|
|
2460
|
-
/* @__PURE__ */
|
|
2712
|
+
children: /* @__PURE__ */ jsxs27("div", { className: "container-input", children: [
|
|
2713
|
+
/* @__PURE__ */ jsxs27("div", { children: [
|
|
2714
|
+
/* @__PURE__ */ jsx31("span", { className: "body-1", children: label }),
|
|
2461
2715
|
" ",
|
|
2462
|
-
required && /* @__PURE__ */
|
|
2716
|
+
required && /* @__PURE__ */ jsx31("span", { className: "text-red-500", children: "*" })
|
|
2463
2717
|
] }),
|
|
2464
|
-
/* @__PURE__ */
|
|
2718
|
+
/* @__PURE__ */ jsx31(
|
|
2465
2719
|
Select5,
|
|
2466
2720
|
{
|
|
2467
2721
|
mode: "tags",
|
|
@@ -2480,7 +2734,7 @@ function SelectFieldTag({
|
|
|
2480
2734
|
onClear
|
|
2481
2735
|
}
|
|
2482
2736
|
),
|
|
2483
|
-
error && /* @__PURE__ */
|
|
2737
|
+
error && /* @__PURE__ */ jsx31("p", { className: "text-red-500 caption-1", children: error })
|
|
2484
2738
|
] })
|
|
2485
2739
|
}
|
|
2486
2740
|
);
|
|
@@ -2489,8 +2743,8 @@ function SelectFieldTag({
|
|
|
2489
2743
|
// src/Select/SelectCustom/SelectCustom.tsx
|
|
2490
2744
|
import { IconTrash } from "@tabler/icons-react";
|
|
2491
2745
|
import { Select as Select6, ConfigProvider as ConfigProvider12 } from "antd";
|
|
2492
|
-
import { useState as
|
|
2493
|
-
import { jsx as
|
|
2746
|
+
import { useState as useState9 } from "react";
|
|
2747
|
+
import { jsx as jsx32, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
2494
2748
|
function SelectCustom({
|
|
2495
2749
|
label = "\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23",
|
|
2496
2750
|
placeholder = "\u0E01\u0E23\u0E38\u0E13\u0E32\u0E40\u0E25\u0E37\u0E2D\u0E01",
|
|
@@ -2500,8 +2754,8 @@ function SelectCustom({
|
|
|
2500
2754
|
error,
|
|
2501
2755
|
onClear
|
|
2502
2756
|
}) {
|
|
2503
|
-
const [value, setValue] =
|
|
2504
|
-
const [valueList, setValueList] =
|
|
2757
|
+
const [value, setValue] = useState9([]);
|
|
2758
|
+
const [valueList, setValueList] = useState9([]);
|
|
2505
2759
|
const handleChange = (selectedValues) => {
|
|
2506
2760
|
const newValues = selectedValues.filter((v) => !valueList.includes(v));
|
|
2507
2761
|
setValueList((prev) => {
|
|
@@ -2519,7 +2773,7 @@ function SelectCustom({
|
|
|
2519
2773
|
});
|
|
2520
2774
|
};
|
|
2521
2775
|
const filteredOptions = options.filter((opt) => !valueList.includes(opt.value)).map((opt) => ({ value: opt.value, label: opt.label }));
|
|
2522
|
-
return /* @__PURE__ */
|
|
2776
|
+
return /* @__PURE__ */ jsx32(
|
|
2523
2777
|
ConfigProvider12,
|
|
2524
2778
|
{
|
|
2525
2779
|
theme: {
|
|
@@ -2528,13 +2782,13 @@ function SelectCustom({
|
|
|
2528
2782
|
fontSize: 16
|
|
2529
2783
|
}
|
|
2530
2784
|
},
|
|
2531
|
-
children: /* @__PURE__ */
|
|
2532
|
-
/* @__PURE__ */
|
|
2533
|
-
/* @__PURE__ */
|
|
2785
|
+
children: /* @__PURE__ */ jsxs28("div", { className: "container-input", children: [
|
|
2786
|
+
/* @__PURE__ */ jsxs28("div", { children: [
|
|
2787
|
+
/* @__PURE__ */ jsx32("span", { className: "body-1", children: label }),
|
|
2534
2788
|
" ",
|
|
2535
|
-
required && /* @__PURE__ */
|
|
2789
|
+
required && /* @__PURE__ */ jsx32("span", { className: "text-red-500", children: "*" })
|
|
2536
2790
|
] }),
|
|
2537
|
-
/* @__PURE__ */
|
|
2791
|
+
/* @__PURE__ */ jsx32(
|
|
2538
2792
|
Select6,
|
|
2539
2793
|
{
|
|
2540
2794
|
value,
|
|
@@ -2545,16 +2799,16 @@ function SelectCustom({
|
|
|
2545
2799
|
onClear
|
|
2546
2800
|
}
|
|
2547
2801
|
),
|
|
2548
|
-
error && /* @__PURE__ */
|
|
2549
|
-
/* @__PURE__ */
|
|
2550
|
-
/* @__PURE__ */
|
|
2551
|
-
/* @__PURE__ */
|
|
2802
|
+
error && /* @__PURE__ */ jsx32("p", { className: "text-red-500 caption-1", children: error }),
|
|
2803
|
+
/* @__PURE__ */ jsx32("div", { className: "w-full p-[2px] overflow-y-auto", children: valueList.map((v, index) => /* @__PURE__ */ jsxs28("div", { className: "flex justify-between items-center py-[2px] body-1", children: [
|
|
2804
|
+
/* @__PURE__ */ jsxs28("div", { className: "flex flex-row gap-[8px]", children: [
|
|
2805
|
+
/* @__PURE__ */ jsxs28("p", { children: [
|
|
2552
2806
|
index + 1,
|
|
2553
2807
|
"."
|
|
2554
2808
|
] }),
|
|
2555
|
-
/* @__PURE__ */
|
|
2809
|
+
/* @__PURE__ */ jsx32("p", { children: v })
|
|
2556
2810
|
] }),
|
|
2557
|
-
/* @__PURE__ */
|
|
2811
|
+
/* @__PURE__ */ jsx32(IconTrash, { className: "cursor-pointer", onClick: () => handleDelete(v) })
|
|
2558
2812
|
] }, index)) })
|
|
2559
2813
|
] })
|
|
2560
2814
|
}
|
|
@@ -2593,9 +2847,9 @@ var quarters = [
|
|
|
2593
2847
|
];
|
|
2594
2848
|
|
|
2595
2849
|
// src/SortFilter/SortFilter.tsx
|
|
2596
|
-
import { useState as
|
|
2850
|
+
import { useState as useState10 } from "react";
|
|
2597
2851
|
import { IconSortDescending as IconSortDescending2, IconFilter } from "@tabler/icons-react";
|
|
2598
|
-
import { jsx as
|
|
2852
|
+
import { jsx as jsx33, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
2599
2853
|
function SortFilter({
|
|
2600
2854
|
showYear = true,
|
|
2601
2855
|
showQuarter = true,
|
|
@@ -2603,10 +2857,10 @@ function SortFilter({
|
|
|
2603
2857
|
onSortClick,
|
|
2604
2858
|
onFilterClick
|
|
2605
2859
|
}) {
|
|
2606
|
-
const [yearValue, setYearValue] =
|
|
2607
|
-
const [monthValue, setMonthValue] =
|
|
2608
|
-
const [quarterValue, setQuartersValue] =
|
|
2609
|
-
return /* @__PURE__ */
|
|
2860
|
+
const [yearValue, setYearValue] = useState10();
|
|
2861
|
+
const [monthValue, setMonthValue] = useState10();
|
|
2862
|
+
const [quarterValue, setQuartersValue] = useState10();
|
|
2863
|
+
return /* @__PURE__ */ jsx33(
|
|
2610
2864
|
ConfigProvider13,
|
|
2611
2865
|
{
|
|
2612
2866
|
theme: {
|
|
@@ -2614,12 +2868,12 @@ function SortFilter({
|
|
|
2614
2868
|
fontFamily: "Kanit"
|
|
2615
2869
|
}
|
|
2616
2870
|
},
|
|
2617
|
-
children: /* @__PURE__ */
|
|
2618
|
-
/* @__PURE__ */
|
|
2619
|
-
showYear && /* @__PURE__ */
|
|
2871
|
+
children: /* @__PURE__ */ jsxs29("div", { className: "w-full flex items-center justify-between", children: [
|
|
2872
|
+
/* @__PURE__ */ jsxs29("div", { className: "w-full flex gap-[10px]", children: [
|
|
2873
|
+
showYear && /* @__PURE__ */ jsx33("div", { className: "w-[200px]", children: /* @__PURE__ */ jsx33(
|
|
2620
2874
|
SelectField,
|
|
2621
2875
|
{
|
|
2622
|
-
prefix: /* @__PURE__ */
|
|
2876
|
+
prefix: /* @__PURE__ */ jsx33(CalendarOutlined, {}),
|
|
2623
2877
|
onChange: setYearValue,
|
|
2624
2878
|
options: years.map((s) => ({
|
|
2625
2879
|
value: s.value,
|
|
@@ -2629,10 +2883,10 @@ function SortFilter({
|
|
|
2629
2883
|
value: yearValue
|
|
2630
2884
|
}
|
|
2631
2885
|
) }),
|
|
2632
|
-
showMonth && /* @__PURE__ */
|
|
2886
|
+
showMonth && /* @__PURE__ */ jsx33("div", { className: "w-[200px]", children: /* @__PURE__ */ jsx33(
|
|
2633
2887
|
SelectField,
|
|
2634
2888
|
{
|
|
2635
|
-
prefix: /* @__PURE__ */
|
|
2889
|
+
prefix: /* @__PURE__ */ jsx33(CalendarOutlined, {}),
|
|
2636
2890
|
onChange: setMonthValue,
|
|
2637
2891
|
options: months.map((s) => ({
|
|
2638
2892
|
value: s.value,
|
|
@@ -2642,10 +2896,10 @@ function SortFilter({
|
|
|
2642
2896
|
placeholder: "\u0E01\u0E23\u0E38\u0E13\u0E32\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E40\u0E14\u0E37\u0E2D\u0E19"
|
|
2643
2897
|
}
|
|
2644
2898
|
) }),
|
|
2645
|
-
showQuarter && /* @__PURE__ */
|
|
2899
|
+
showQuarter && /* @__PURE__ */ jsx33("div", { className: "w-[200px]", children: /* @__PURE__ */ jsx33(
|
|
2646
2900
|
SelectField,
|
|
2647
2901
|
{
|
|
2648
|
-
prefix: /* @__PURE__ */
|
|
2902
|
+
prefix: /* @__PURE__ */ jsx33(CalendarOutlined, {}),
|
|
2649
2903
|
onChange: setQuartersValue,
|
|
2650
2904
|
options: quarters.map((s) => ({
|
|
2651
2905
|
value: s.value,
|
|
@@ -2656,8 +2910,8 @@ function SortFilter({
|
|
|
2656
2910
|
}
|
|
2657
2911
|
) })
|
|
2658
2912
|
] }),
|
|
2659
|
-
/* @__PURE__ */
|
|
2660
|
-
/* @__PURE__ */
|
|
2913
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex gap-[10px]", children: [
|
|
2914
|
+
/* @__PURE__ */ jsx33(
|
|
2661
2915
|
IconSortDescending2,
|
|
2662
2916
|
{
|
|
2663
2917
|
size: 24,
|
|
@@ -2665,7 +2919,7 @@ function SortFilter({
|
|
|
2665
2919
|
onClick: onSortClick
|
|
2666
2920
|
}
|
|
2667
2921
|
),
|
|
2668
|
-
/* @__PURE__ */
|
|
2922
|
+
/* @__PURE__ */ jsx33(
|
|
2669
2923
|
IconFilter,
|
|
2670
2924
|
{
|
|
2671
2925
|
size: 24,
|
|
@@ -2681,8 +2935,8 @@ function SortFilter({
|
|
|
2681
2935
|
|
|
2682
2936
|
// src/Upload/FileUploader/FileUploader.tsx
|
|
2683
2937
|
import { IconPaperclip, IconUpload, IconTrash as IconTrash2 } from "@tabler/icons-react";
|
|
2684
|
-
import { useRef as
|
|
2685
|
-
import { Fragment as Fragment5, jsx as
|
|
2938
|
+
import { useRef as useRef4, useState as useState11 } from "react";
|
|
2939
|
+
import { Fragment as Fragment5, jsx as jsx34, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
2686
2940
|
function FileUploader({
|
|
2687
2941
|
onUpload,
|
|
2688
2942
|
onError,
|
|
@@ -2694,10 +2948,10 @@ function FileUploader({
|
|
|
2694
2948
|
description,
|
|
2695
2949
|
label
|
|
2696
2950
|
}) {
|
|
2697
|
-
const [fileList, setFileList] =
|
|
2698
|
-
const [uploading, setUploading] =
|
|
2699
|
-
const [dragActive, setDragActive] =
|
|
2700
|
-
const inputRef =
|
|
2951
|
+
const [fileList, setFileList] = useState11([]);
|
|
2952
|
+
const [uploading, setUploading] = useState11(false);
|
|
2953
|
+
const [dragActive, setDragActive] = useState11(false);
|
|
2954
|
+
const inputRef = useRef4(null);
|
|
2701
2955
|
const validateFile = (file) => {
|
|
2702
2956
|
if (accept && !accept.includes(file.type)) {
|
|
2703
2957
|
onError?.(`Invalid file type. file: ${file.name}`);
|
|
@@ -2753,10 +3007,10 @@ function FileUploader({
|
|
|
2753
3007
|
}
|
|
2754
3008
|
if (inputRef.current) inputRef.current.value = "";
|
|
2755
3009
|
};
|
|
2756
|
-
return /* @__PURE__ */
|
|
2757
|
-
label && /* @__PURE__ */
|
|
2758
|
-
/* @__PURE__ */
|
|
2759
|
-
mode === "upload" ? /* @__PURE__ */
|
|
3010
|
+
return /* @__PURE__ */ jsxs30("div", { className: "w-full", children: [
|
|
3011
|
+
label && /* @__PURE__ */ jsx34("p", { className: "body-1", children: label }),
|
|
3012
|
+
/* @__PURE__ */ jsxs30("div", { children: [
|
|
3013
|
+
mode === "upload" ? /* @__PURE__ */ jsx34(
|
|
2760
3014
|
"button",
|
|
2761
3015
|
{
|
|
2762
3016
|
type: "button",
|
|
@@ -2764,15 +3018,15 @@ function FileUploader({
|
|
|
2764
3018
|
className: `h-[34px] flex justify-center items-center gap-2 w-full rounded-[2px] border border-gray-200 body-1
|
|
2765
3019
|
${disabled ? "cursor-not-allowed text-gray-400 bg-gray-100" : "cursor-pointer hover:text-primary-400 hover:border-primary-200 duration-300"}`,
|
|
2766
3020
|
disabled: disabled ? disabled : uploading,
|
|
2767
|
-
children: uploading ? /* @__PURE__ */
|
|
2768
|
-
/* @__PURE__ */
|
|
3021
|
+
children: uploading ? /* @__PURE__ */ jsxs30(Fragment5, { children: [
|
|
3022
|
+
/* @__PURE__ */ jsx34(Loader, { size: 15 }),
|
|
2769
3023
|
" \u0E01\u0E33\u0E25\u0E31\u0E07\u0E2D\u0E31\u0E1B\u0E42\u0E2B\u0E25\u0E14"
|
|
2770
|
-
] }) : /* @__PURE__ */
|
|
2771
|
-
/* @__PURE__ */
|
|
3024
|
+
] }) : /* @__PURE__ */ jsxs30(Fragment5, { children: [
|
|
3025
|
+
/* @__PURE__ */ jsx34(IconUpload, { size: 15, className: "text-gray-400" }),
|
|
2772
3026
|
" \u0E41\u0E19\u0E1A\u0E44\u0E1F\u0E25\u0E4C"
|
|
2773
3027
|
] })
|
|
2774
3028
|
}
|
|
2775
|
-
) : /* @__PURE__ */
|
|
3029
|
+
) : /* @__PURE__ */ jsx34(
|
|
2776
3030
|
"div",
|
|
2777
3031
|
{
|
|
2778
3032
|
className: `min-w-[400px] min-h-[120px] flex justify-center items-center border-2 border-dashed rounded-md p-4 transition-colors body-1
|
|
@@ -2786,17 +3040,17 @@ function FileUploader({
|
|
|
2786
3040
|
},
|
|
2787
3041
|
onDragLeave: () => setDragActive(false),
|
|
2788
3042
|
onDrop: handleDrop,
|
|
2789
|
-
children: uploading ? /* @__PURE__ */
|
|
2790
|
-
/* @__PURE__ */
|
|
3043
|
+
children: uploading ? /* @__PURE__ */ jsxs30("div", { className: "flex justify-center items-center gap-2", children: [
|
|
3044
|
+
/* @__PURE__ */ jsx34(Loader, { size: 15 }),
|
|
2791
3045
|
" \u0E01\u0E33\u0E25\u0E31\u0E07\u0E2D\u0E31\u0E1B\u0E42\u0E2B\u0E25\u0E14"
|
|
2792
|
-
] }) : /* @__PURE__ */
|
|
2793
|
-
/* @__PURE__ */
|
|
2794
|
-
/* @__PURE__ */
|
|
2795
|
-
/* @__PURE__ */
|
|
3046
|
+
] }) : /* @__PURE__ */ jsxs30("div", { className: "flex flex-col items-center gap-2", children: [
|
|
3047
|
+
/* @__PURE__ */ jsx34(IconUpload, { size: 20 }),
|
|
3048
|
+
/* @__PURE__ */ jsx34("span", { className: "body-1", children: "\u0E04\u0E25\u0E34\u0E01\u0E2B\u0E23\u0E37\u0E2D\u0E25\u0E32\u0E01\u0E44\u0E1F\u0E25\u0E4C\u0E21\u0E32\u0E17\u0E35\u0E48\u0E1A\u0E23\u0E34\u0E40\u0E27\u0E13\u0E19\u0E35\u0E49\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E2D\u0E31\u0E1B\u0E42\u0E2B\u0E25\u0E14" }),
|
|
3049
|
+
/* @__PURE__ */ jsx34("span", { className: "text-gray-400 body-3", children: "\u0E23\u0E2D\u0E07\u0E23\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E2D\u0E31\u0E1B\u0E42\u0E2B\u0E25\u0E14\u0E41\u0E1A\u0E1A\u0E40\u0E14\u0E35\u0E48\u0E22\u0E27\u0E2B\u0E23\u0E37\u0E2D\u0E2B\u0E25\u0E32\u0E22\u0E44\u0E1F\u0E25\u0E4C" })
|
|
2796
3050
|
] })
|
|
2797
3051
|
}
|
|
2798
3052
|
),
|
|
2799
|
-
/* @__PURE__ */
|
|
3053
|
+
/* @__PURE__ */ jsx34(
|
|
2800
3054
|
"input",
|
|
2801
3055
|
{
|
|
2802
3056
|
type: "file",
|
|
@@ -2809,13 +3063,13 @@ function FileUploader({
|
|
|
2809
3063
|
}
|
|
2810
3064
|
)
|
|
2811
3065
|
] }),
|
|
2812
|
-
description && /* @__PURE__ */
|
|
2813
|
-
/* @__PURE__ */
|
|
2814
|
-
/* @__PURE__ */
|
|
2815
|
-
/* @__PURE__ */
|
|
2816
|
-
/* @__PURE__ */
|
|
3066
|
+
description && /* @__PURE__ */ jsx34("p", { className: "text-gray-400 body-4", children: description }),
|
|
3067
|
+
/* @__PURE__ */ jsx34("div", { className: "mt-[8px]", children: fileList.length !== 0 && fileList.map((file, index) => /* @__PURE__ */ jsxs30("div", { className: "flex items-center gap-2 rounded-[4px] px-[8px] py-[4px] body-1", children: [
|
|
3068
|
+
/* @__PURE__ */ jsxs30("div", { className: "flex items-center gap-2 w-[75%] overflow-hidden", children: [
|
|
3069
|
+
/* @__PURE__ */ jsx34("div", { className: "w-[15px] h-[15px]", children: /* @__PURE__ */ jsx34(IconPaperclip, { size: 15 }) }),
|
|
3070
|
+
/* @__PURE__ */ jsx34("span", { className: "truncate", children: file.name })
|
|
2817
3071
|
] }),
|
|
2818
|
-
/* @__PURE__ */
|
|
3072
|
+
/* @__PURE__ */ jsx34(
|
|
2819
3073
|
IconTrash2,
|
|
2820
3074
|
{
|
|
2821
3075
|
size: 20,
|
|
@@ -2851,7 +3105,7 @@ function messageLoading(content, duration) {
|
|
|
2851
3105
|
// src/Breadcrumb/Breadcrumb.tsx
|
|
2852
3106
|
import { ConfigProvider as ConfigProvider14 } from "antd";
|
|
2853
3107
|
import { Breadcrumb } from "antd";
|
|
2854
|
-
import { jsx as
|
|
3108
|
+
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
2855
3109
|
function Breadcrumbs({
|
|
2856
3110
|
items,
|
|
2857
3111
|
separator,
|
|
@@ -2859,7 +3113,7 @@ function Breadcrumbs({
|
|
|
2859
3113
|
classname,
|
|
2860
3114
|
params
|
|
2861
3115
|
}) {
|
|
2862
|
-
return /* @__PURE__ */
|
|
3116
|
+
return /* @__PURE__ */ jsx35(
|
|
2863
3117
|
ConfigProvider14,
|
|
2864
3118
|
{
|
|
2865
3119
|
theme: {
|
|
@@ -2867,7 +3121,7 @@ function Breadcrumbs({
|
|
|
2867
3121
|
fontFamily: "Kanit"
|
|
2868
3122
|
}
|
|
2869
3123
|
},
|
|
2870
|
-
children: /* @__PURE__ */
|
|
3124
|
+
children: /* @__PURE__ */ jsx35(
|
|
2871
3125
|
Breadcrumb,
|
|
2872
3126
|
{
|
|
2873
3127
|
items,
|
|
@@ -2883,7 +3137,7 @@ function Breadcrumbs({
|
|
|
2883
3137
|
|
|
2884
3138
|
// src/HeadingPage/HeadingPage.tsx
|
|
2885
3139
|
import { ConfigProvider as ConfigProvider15 } from "antd";
|
|
2886
|
-
import { jsx as
|
|
3140
|
+
import { jsx as jsx36, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
2887
3141
|
function HeadingPage({ Heading }) {
|
|
2888
3142
|
const today = (/* @__PURE__ */ new Date()).toLocaleDateString("th-TH", {
|
|
2889
3143
|
weekday: "long",
|
|
@@ -2891,7 +3145,7 @@ function HeadingPage({ Heading }) {
|
|
|
2891
3145
|
month: "long",
|
|
2892
3146
|
year: "numeric"
|
|
2893
3147
|
});
|
|
2894
|
-
return /* @__PURE__ */
|
|
3148
|
+
return /* @__PURE__ */ jsx36(
|
|
2895
3149
|
ConfigProvider15,
|
|
2896
3150
|
{
|
|
2897
3151
|
theme: {
|
|
@@ -2899,9 +3153,9 @@ function HeadingPage({ Heading }) {
|
|
|
2899
3153
|
fontFamily: "Kanit"
|
|
2900
3154
|
}
|
|
2901
3155
|
},
|
|
2902
|
-
children: /* @__PURE__ */
|
|
2903
|
-
/* @__PURE__ */
|
|
2904
|
-
/* @__PURE__ */
|
|
3156
|
+
children: /* @__PURE__ */ jsxs31("div", { className: "flex flex-col gap-[10px] px-[20px] py-[10px]", children: [
|
|
3157
|
+
/* @__PURE__ */ jsx36("p", { className: "headline-5", children: Heading }),
|
|
3158
|
+
/* @__PURE__ */ jsxs31("p", { className: "body-1", children: [
|
|
2905
3159
|
" \u0E27\u0E31\u0E19\u0E19\u0E35\u0E49 ",
|
|
2906
3160
|
today
|
|
2907
3161
|
] })
|
|
@@ -2912,8 +3166,8 @@ function HeadingPage({ Heading }) {
|
|
|
2912
3166
|
|
|
2913
3167
|
// src/Progress/ProgressBar.tsx
|
|
2914
3168
|
import { ConfigProvider as ConfigProvider16, Progress } from "antd";
|
|
2915
|
-
import { useEffect as
|
|
2916
|
-
import { jsx as
|
|
3169
|
+
import { useEffect as useEffect4, useRef as useRef5, useState as useState12 } from "react";
|
|
3170
|
+
import { jsx as jsx37, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
2917
3171
|
function ProgressBar({
|
|
2918
3172
|
percent = 0,
|
|
2919
3173
|
size = "default",
|
|
@@ -2926,8 +3180,8 @@ function ProgressBar({
|
|
|
2926
3180
|
steps,
|
|
2927
3181
|
isCheckPoints
|
|
2928
3182
|
}) {
|
|
2929
|
-
const [barWidth, setBarWidth] =
|
|
2930
|
-
const progressRef =
|
|
3183
|
+
const [barWidth, setBarWidth] = useState12(0);
|
|
3184
|
+
const progressRef = useRef5(null);
|
|
2931
3185
|
let strokeColor = "--color-green-500";
|
|
2932
3186
|
const defaultStrokeWidth = type === "circle" ? 13 : strokeWidth ?? 8;
|
|
2933
3187
|
const defaultSize = type === "circle" ? 43 : size;
|
|
@@ -2935,7 +3189,7 @@ function ProgressBar({
|
|
|
2935
3189
|
const minCheckpoint = Math.min(...checkpoints);
|
|
2936
3190
|
strokeColor = percent >= minCheckpoint ? "var(--color-green-500)" : "var(--color-red-500)";
|
|
2937
3191
|
}
|
|
2938
|
-
|
|
3192
|
+
useEffect4(() => {
|
|
2939
3193
|
const inner = progressRef.current?.querySelector(".ant-progress-inner");
|
|
2940
3194
|
if (!inner) return;
|
|
2941
3195
|
const observer = new ResizeObserver(() => {
|
|
@@ -2944,7 +3198,7 @@ function ProgressBar({
|
|
|
2944
3198
|
observer.observe(inner);
|
|
2945
3199
|
return () => observer.disconnect();
|
|
2946
3200
|
}, []);
|
|
2947
|
-
return /* @__PURE__ */
|
|
3201
|
+
return /* @__PURE__ */ jsx37(
|
|
2948
3202
|
ConfigProvider16,
|
|
2949
3203
|
{
|
|
2950
3204
|
theme: {
|
|
@@ -2952,8 +3206,8 @@ function ProgressBar({
|
|
|
2952
3206
|
fontFamily: "Kanit"
|
|
2953
3207
|
}
|
|
2954
3208
|
},
|
|
2955
|
-
children: /* @__PURE__ */
|
|
2956
|
-
/* @__PURE__ */
|
|
3209
|
+
children: /* @__PURE__ */ jsxs32("div", { className: "relative w-full", ref: progressRef, children: [
|
|
3210
|
+
/* @__PURE__ */ jsx37(
|
|
2957
3211
|
Progress,
|
|
2958
3212
|
{
|
|
2959
3213
|
className: "w-full",
|
|
@@ -2969,7 +3223,7 @@ function ProgressBar({
|
|
|
2969
3223
|
strokeColor
|
|
2970
3224
|
}
|
|
2971
3225
|
),
|
|
2972
|
-
barWidth > 0 && isCheckPoints && type !== "circle" && checkpoints.map((cp) => /* @__PURE__ */
|
|
3226
|
+
barWidth > 0 && isCheckPoints && type !== "circle" && checkpoints.map((cp) => /* @__PURE__ */ jsx37(
|
|
2973
3227
|
"div",
|
|
2974
3228
|
{
|
|
2975
3229
|
className: "checkpoint absolute top-0",
|
|
@@ -2992,24 +3246,24 @@ function ProgressBar({
|
|
|
2992
3246
|
|
|
2993
3247
|
// src/KpiSection/KpiSection.tsx
|
|
2994
3248
|
import { ConfigProvider as ConfigProvider17, message } from "antd";
|
|
2995
|
-
import { useEffect as
|
|
3249
|
+
import { useEffect as useEffect5, useState as useState14 } from "react";
|
|
2996
3250
|
|
|
2997
3251
|
// src/KpiSection/hooks/useGetKpiSection.ts
|
|
2998
|
-
import { useState as
|
|
3252
|
+
import { useState as useState13 } from "react";
|
|
2999
3253
|
import cuid from "cuid";
|
|
3000
3254
|
function useGetKpiSection() {
|
|
3001
|
-
const [nameKpi, setNameKpi] =
|
|
3002
|
-
const [kpiValue, setKpiValue] =
|
|
3003
|
-
const [unitValue, setUnitValue] =
|
|
3004
|
-
const [kpiList, setKpiList] =
|
|
3005
|
-
const [editingBackup, setEditingBackup] =
|
|
3006
|
-
const [selected, setSelected] =
|
|
3007
|
-
const [errors, setErrors] =
|
|
3255
|
+
const [nameKpi, setNameKpi] = useState13("");
|
|
3256
|
+
const [kpiValue, setKpiValue] = useState13("");
|
|
3257
|
+
const [unitValue, setUnitValue] = useState13("");
|
|
3258
|
+
const [kpiList, setKpiList] = useState13([]);
|
|
3259
|
+
const [editingBackup, setEditingBackup] = useState13({});
|
|
3260
|
+
const [selected, setSelected] = useState13("2");
|
|
3261
|
+
const [errors, setErrors] = useState13({
|
|
3008
3262
|
nameKpi: "",
|
|
3009
3263
|
kpiValue: "",
|
|
3010
3264
|
unitValue: ""
|
|
3011
3265
|
});
|
|
3012
|
-
const [itemErrors, setItemErrors] =
|
|
3266
|
+
const [itemErrors, setItemErrors] = useState13({});
|
|
3013
3267
|
const options = [
|
|
3014
3268
|
{ value: "1", label: "\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21" },
|
|
3015
3269
|
{ value: "2", label: "\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02" }
|
|
@@ -3142,7 +3396,7 @@ function useGetKpiSection() {
|
|
|
3142
3396
|
|
|
3143
3397
|
// src/KpiSection/KpiSection.tsx
|
|
3144
3398
|
import { IconCheck as IconCheck2, IconCirclePlus, IconPencil, IconTrash as IconTrash3, IconX as IconX2 } from "@tabler/icons-react";
|
|
3145
|
-
import { Fragment as Fragment6, jsx as
|
|
3399
|
+
import { Fragment as Fragment6, jsx as jsx38, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
3146
3400
|
function KpiSection({ type, onChangeKpiList }) {
|
|
3147
3401
|
const {
|
|
3148
3402
|
handleAddKpi,
|
|
@@ -3163,16 +3417,16 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3163
3417
|
setItemErrors
|
|
3164
3418
|
} = useGetKpiSection();
|
|
3165
3419
|
const [messageApi2, messageContainer] = message.useMessage();
|
|
3166
|
-
const [hasShownError, setHasShownError] =
|
|
3167
|
-
|
|
3420
|
+
const [hasShownError, setHasShownError] = useState14(false);
|
|
3421
|
+
useEffect5(() => {
|
|
3168
3422
|
setMessageApi(messageApi2);
|
|
3169
3423
|
}, [messageApi2]);
|
|
3170
|
-
|
|
3424
|
+
useEffect5(() => {
|
|
3171
3425
|
if (onChangeKpiList) {
|
|
3172
3426
|
onChangeKpiList(kpiList);
|
|
3173
3427
|
}
|
|
3174
3428
|
}, [kpiList]);
|
|
3175
|
-
return /* @__PURE__ */
|
|
3429
|
+
return /* @__PURE__ */ jsx38(
|
|
3176
3430
|
ConfigProvider17,
|
|
3177
3431
|
{
|
|
3178
3432
|
theme: {
|
|
@@ -3181,11 +3435,11 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3181
3435
|
fontSize: 16
|
|
3182
3436
|
}
|
|
3183
3437
|
},
|
|
3184
|
-
children: /* @__PURE__ */
|
|
3438
|
+
children: /* @__PURE__ */ jsxs33("div", { className: "container-input", children: [
|
|
3185
3439
|
messageContainer,
|
|
3186
|
-
type === "number" && /* @__PURE__ */
|
|
3187
|
-
/* @__PURE__ */
|
|
3188
|
-
/* @__PURE__ */
|
|
3440
|
+
type === "number" && /* @__PURE__ */ jsxs33("div", { className: "space-y-4", children: [
|
|
3441
|
+
/* @__PURE__ */ jsxs33("div", { className: "grid grid-cols-[1fr_200px_200px_50px] w-full gap-[24px] items-start", children: [
|
|
3442
|
+
/* @__PURE__ */ jsx38(
|
|
3189
3443
|
InputField,
|
|
3190
3444
|
{
|
|
3191
3445
|
value: nameKpi,
|
|
@@ -3197,7 +3451,7 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3197
3451
|
error: errors.nameKpi
|
|
3198
3452
|
}
|
|
3199
3453
|
),
|
|
3200
|
-
/* @__PURE__ */
|
|
3454
|
+
/* @__PURE__ */ jsx38(
|
|
3201
3455
|
InputField,
|
|
3202
3456
|
{
|
|
3203
3457
|
value: kpiValue,
|
|
@@ -3221,7 +3475,7 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3221
3475
|
error: errors.kpiValue
|
|
3222
3476
|
}
|
|
3223
3477
|
),
|
|
3224
|
-
/* @__PURE__ */
|
|
3478
|
+
/* @__PURE__ */ jsx38(
|
|
3225
3479
|
InputField,
|
|
3226
3480
|
{
|
|
3227
3481
|
value: unitValue,
|
|
@@ -3233,7 +3487,7 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3233
3487
|
error: errors.unitValue
|
|
3234
3488
|
}
|
|
3235
3489
|
),
|
|
3236
|
-
/* @__PURE__ */
|
|
3490
|
+
/* @__PURE__ */ jsx38("div", { className: `flex justify-end mt-[28px]`, children: /* @__PURE__ */ jsx38(
|
|
3237
3491
|
IconCirclePlus,
|
|
3238
3492
|
{
|
|
3239
3493
|
className: "w-[40px] h-[40px] cursor-pointer hover:scale-110 transition",
|
|
@@ -3242,17 +3496,17 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3242
3496
|
}
|
|
3243
3497
|
) })
|
|
3244
3498
|
] }),
|
|
3245
|
-
/* @__PURE__ */
|
|
3499
|
+
/* @__PURE__ */ jsx38("div", { children: kpiList.map((kpi, index) => /* @__PURE__ */ jsxs33(
|
|
3246
3500
|
"div",
|
|
3247
3501
|
{
|
|
3248
3502
|
className: "grid grid-cols-[30px_1fr_100px_120px_80px] items-start py-2 body-1 gap-[8px]",
|
|
3249
3503
|
children: [
|
|
3250
|
-
/* @__PURE__ */
|
|
3504
|
+
/* @__PURE__ */ jsxs33("p", { className: `body-1 ${kpi.isEditing ? "mt-[12px]" : ""}`, children: [
|
|
3251
3505
|
index + 1,
|
|
3252
3506
|
"."
|
|
3253
3507
|
] }),
|
|
3254
|
-
kpi.isEditing ? /* @__PURE__ */
|
|
3255
|
-
/* @__PURE__ */
|
|
3508
|
+
kpi.isEditing ? /* @__PURE__ */ jsxs33(Fragment6, { children: [
|
|
3509
|
+
/* @__PURE__ */ jsx38(
|
|
3256
3510
|
InputField,
|
|
3257
3511
|
{
|
|
3258
3512
|
value: kpi.name,
|
|
@@ -3262,7 +3516,7 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3262
3516
|
error: itemErrors[kpi.id]?.name
|
|
3263
3517
|
}
|
|
3264
3518
|
),
|
|
3265
|
-
/* @__PURE__ */
|
|
3519
|
+
/* @__PURE__ */ jsx38(
|
|
3266
3520
|
InputField,
|
|
3267
3521
|
{
|
|
3268
3522
|
value: kpi.value?.toString(),
|
|
@@ -3287,7 +3541,7 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3287
3541
|
error: itemErrors[kpi.id]?.value
|
|
3288
3542
|
}
|
|
3289
3543
|
),
|
|
3290
|
-
/* @__PURE__ */
|
|
3544
|
+
/* @__PURE__ */ jsx38(
|
|
3291
3545
|
InputField,
|
|
3292
3546
|
{
|
|
3293
3547
|
value: kpi.unit,
|
|
@@ -3297,29 +3551,29 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3297
3551
|
error: itemErrors[kpi.id]?.unit
|
|
3298
3552
|
}
|
|
3299
3553
|
),
|
|
3300
|
-
/* @__PURE__ */
|
|
3554
|
+
/* @__PURE__ */ jsxs33(
|
|
3301
3555
|
"div",
|
|
3302
3556
|
{
|
|
3303
3557
|
className: `flex gap-2 justify-end self-center ${!!itemErrors[kpi.id]?.value || !!itemErrors[kpi.id]?.unit || !!itemErrors[kpi.id]?.name ? "mt-[-12px]" : ""}`,
|
|
3304
3558
|
children: [
|
|
3305
|
-
/* @__PURE__ */
|
|
3559
|
+
/* @__PURE__ */ jsx38(
|
|
3306
3560
|
IconCheck2,
|
|
3307
3561
|
{
|
|
3308
3562
|
className: "w-[30px] h-[30px] cursor-pointer",
|
|
3309
3563
|
onClick: () => handleSave(kpi.id, type)
|
|
3310
3564
|
}
|
|
3311
3565
|
),
|
|
3312
|
-
/* @__PURE__ */
|
|
3566
|
+
/* @__PURE__ */ jsx38(IconX2, { className: "w-[30px] h-[30px] cursor-pointer", onClick: () => handleCancel(kpi.id) })
|
|
3313
3567
|
]
|
|
3314
3568
|
}
|
|
3315
3569
|
)
|
|
3316
|
-
] }) : /* @__PURE__ */
|
|
3317
|
-
/* @__PURE__ */
|
|
3318
|
-
/* @__PURE__ */
|
|
3319
|
-
/* @__PURE__ */
|
|
3320
|
-
/* @__PURE__ */
|
|
3321
|
-
/* @__PURE__ */
|
|
3322
|
-
/* @__PURE__ */
|
|
3570
|
+
] }) : /* @__PURE__ */ jsxs33(Fragment6, { children: [
|
|
3571
|
+
/* @__PURE__ */ jsx38("p", { className: "body-1", children: kpi.name }),
|
|
3572
|
+
/* @__PURE__ */ jsx38("p", { className: "body-1", children: kpi.value }),
|
|
3573
|
+
/* @__PURE__ */ jsx38("p", { className: "body-1", children: kpi.unit }),
|
|
3574
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex gap-3 justify-end", children: [
|
|
3575
|
+
/* @__PURE__ */ jsx38(IconPencil, { className: "w-[30px] h-[30px] cursor-pointer", onClick: () => handleEdit(kpi.id) }),
|
|
3576
|
+
/* @__PURE__ */ jsx38(IconTrash3, { className: "w-[30px] h-[30px] cursor-pointer", onClick: () => handleDelete(kpi.id) })
|
|
3323
3577
|
] })
|
|
3324
3578
|
] })
|
|
3325
3579
|
]
|
|
@@ -3327,9 +3581,9 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3327
3581
|
kpi.id
|
|
3328
3582
|
)) })
|
|
3329
3583
|
] }),
|
|
3330
|
-
type === "text" && /* @__PURE__ */
|
|
3331
|
-
/* @__PURE__ */
|
|
3332
|
-
/* @__PURE__ */
|
|
3584
|
+
type === "text" && /* @__PURE__ */ jsxs33("div", { className: "space-y-4", children: [
|
|
3585
|
+
/* @__PURE__ */ jsxs33("div", { className: "grid grid-cols-[1fr_50px] w-full gap-[24px] items-start", children: [
|
|
3586
|
+
/* @__PURE__ */ jsx38(
|
|
3333
3587
|
InputField,
|
|
3334
3588
|
{
|
|
3335
3589
|
value: nameKpi,
|
|
@@ -3341,7 +3595,7 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3341
3595
|
error: errors.nameKpi
|
|
3342
3596
|
}
|
|
3343
3597
|
),
|
|
3344
|
-
/* @__PURE__ */
|
|
3598
|
+
/* @__PURE__ */ jsx38("div", { className: `flex justify-end mt-[28px]`, children: /* @__PURE__ */ jsx38(
|
|
3345
3599
|
IconCirclePlus,
|
|
3346
3600
|
{
|
|
3347
3601
|
className: "w-[40px] h-[40px] cursor-pointer hover:scale-110 transition",
|
|
@@ -3350,13 +3604,13 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3350
3604
|
}
|
|
3351
3605
|
) })
|
|
3352
3606
|
] }),
|
|
3353
|
-
/* @__PURE__ */
|
|
3354
|
-
/* @__PURE__ */
|
|
3607
|
+
/* @__PURE__ */ jsx38("div", { children: kpiList.map((kpi, index) => /* @__PURE__ */ jsxs33("div", { className: "grid grid-cols-[30px_1fr_80px] items-start py-2 body-1 gap-[8px]", children: [
|
|
3608
|
+
/* @__PURE__ */ jsxs33("p", { className: `body-1 ${kpi.isEditing ? "mt-[12px]" : ""}`, children: [
|
|
3355
3609
|
index + 1,
|
|
3356
3610
|
"."
|
|
3357
3611
|
] }),
|
|
3358
|
-
kpi.isEditing ? /* @__PURE__ */
|
|
3359
|
-
/* @__PURE__ */
|
|
3612
|
+
kpi.isEditing ? /* @__PURE__ */ jsxs33(Fragment6, { children: [
|
|
3613
|
+
/* @__PURE__ */ jsx38(
|
|
3360
3614
|
InputField,
|
|
3361
3615
|
{
|
|
3362
3616
|
value: kpi.name,
|
|
@@ -3366,27 +3620,27 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3366
3620
|
error: itemErrors[kpi.id]?.name
|
|
3367
3621
|
}
|
|
3368
3622
|
),
|
|
3369
|
-
/* @__PURE__ */
|
|
3623
|
+
/* @__PURE__ */ jsxs33(
|
|
3370
3624
|
"div",
|
|
3371
3625
|
{
|
|
3372
3626
|
className: `flex gap-2 justify-end self-center ${!!itemErrors[kpi.id]?.name ? "mt-[-12px]" : ""}`,
|
|
3373
3627
|
children: [
|
|
3374
|
-
/* @__PURE__ */
|
|
3628
|
+
/* @__PURE__ */ jsx38(
|
|
3375
3629
|
IconCheck2,
|
|
3376
3630
|
{
|
|
3377
3631
|
className: "w-[30px] h-[30px] cursor-pointer",
|
|
3378
3632
|
onClick: () => handleSave(kpi.id, type)
|
|
3379
3633
|
}
|
|
3380
3634
|
),
|
|
3381
|
-
/* @__PURE__ */
|
|
3635
|
+
/* @__PURE__ */ jsx38(IconX2, { className: "w-[30px] h-[30px] cursor-pointer", onClick: () => handleCancel(kpi.id) })
|
|
3382
3636
|
]
|
|
3383
3637
|
}
|
|
3384
3638
|
)
|
|
3385
|
-
] }) : /* @__PURE__ */
|
|
3386
|
-
/* @__PURE__ */
|
|
3387
|
-
/* @__PURE__ */
|
|
3388
|
-
/* @__PURE__ */
|
|
3389
|
-
/* @__PURE__ */
|
|
3639
|
+
] }) : /* @__PURE__ */ jsxs33(Fragment6, { children: [
|
|
3640
|
+
/* @__PURE__ */ jsx38("p", { className: "body-1", children: kpi.name }),
|
|
3641
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex gap-3 justify-end", children: [
|
|
3642
|
+
/* @__PURE__ */ jsx38(IconPencil, { className: "w-[30px] h-[30px] cursor-pointer", onClick: () => handleEdit(kpi.id) }),
|
|
3643
|
+
/* @__PURE__ */ jsx38(IconTrash3, { className: "w-[30px] h-[30px] cursor-pointer", onClick: () => handleDelete(kpi.id) })
|
|
3390
3644
|
] })
|
|
3391
3645
|
] })
|
|
3392
3646
|
] }, kpi.id)) })
|
|
@@ -3398,16 +3652,16 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3398
3652
|
|
|
3399
3653
|
// src/Modal/Modal/Modal.tsx
|
|
3400
3654
|
import { Modal } from "antd";
|
|
3401
|
-
import { jsx as
|
|
3655
|
+
import { jsx as jsx39 } from "react/jsx-runtime";
|
|
3402
3656
|
function AntDModal({ children, isOpen, width, onCancel }) {
|
|
3403
|
-
return /* @__PURE__ */
|
|
3657
|
+
return /* @__PURE__ */ jsx39("div", { children: /* @__PURE__ */ jsx39(Modal, { open: isOpen, onCancel, width, centered: true, footer: null, children: /* @__PURE__ */ jsx39("div", { children }) }) });
|
|
3404
3658
|
}
|
|
3405
3659
|
|
|
3406
3660
|
// src/Indicator/Indicator/Indicator.tsx
|
|
3407
3661
|
import { IconCheck as IconCheck3, IconCirclePlus as IconCirclePlus2, IconPencil as IconPencil2, IconTrash as IconTrash4, IconX as IconX3 } from "@tabler/icons-react";
|
|
3408
|
-
import { useState as
|
|
3662
|
+
import { useState as useState15 } from "react";
|
|
3409
3663
|
import { Input as Input4 } from "antd";
|
|
3410
|
-
import { Fragment as Fragment7, jsx as
|
|
3664
|
+
import { Fragment as Fragment7, jsx as jsx40, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
3411
3665
|
function Indicator({
|
|
3412
3666
|
option = [
|
|
3413
3667
|
{ value: "TEXT", label: "\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21" },
|
|
@@ -3417,22 +3671,22 @@ function Indicator({
|
|
|
3417
3671
|
arrayData,
|
|
3418
3672
|
setArrayData
|
|
3419
3673
|
}) {
|
|
3420
|
-
const [valueSwitch, setValueSwitch] =
|
|
3421
|
-
const [cacheData, setCacheData] =
|
|
3674
|
+
const [valueSwitch, setValueSwitch] = useState15("TEXT");
|
|
3675
|
+
const [cacheData, setCacheData] = useState15({
|
|
3422
3676
|
indicatorType: type,
|
|
3423
3677
|
inputType: valueSwitch,
|
|
3424
3678
|
textValue: "",
|
|
3425
3679
|
numberValue: "",
|
|
3426
3680
|
unit: ""
|
|
3427
3681
|
});
|
|
3428
|
-
const [cacheEditData, setCacheEditData] =
|
|
3682
|
+
const [cacheEditData, setCacheEditData] = useState15({
|
|
3429
3683
|
indicatorType: type,
|
|
3430
3684
|
inputType: valueSwitch,
|
|
3431
3685
|
textValue: "",
|
|
3432
3686
|
numberValue: "",
|
|
3433
3687
|
unit: ""
|
|
3434
3688
|
});
|
|
3435
|
-
const [editIndex, setEditIndex] =
|
|
3689
|
+
const [editIndex, setEditIndex] = useState15(null);
|
|
3436
3690
|
const handleAddIndicator = () => {
|
|
3437
3691
|
if (cacheData.textValue.trim() === "") return;
|
|
3438
3692
|
setArrayData([
|
|
@@ -3489,14 +3743,14 @@ function Indicator({
|
|
|
3489
3743
|
}));
|
|
3490
3744
|
console.log(cacheEditData);
|
|
3491
3745
|
};
|
|
3492
|
-
return /* @__PURE__ */
|
|
3493
|
-
/* @__PURE__ */
|
|
3746
|
+
return /* @__PURE__ */ jsxs34("div", { className: "w-full", children: [
|
|
3747
|
+
/* @__PURE__ */ jsxs34(
|
|
3494
3748
|
"div",
|
|
3495
3749
|
{
|
|
3496
3750
|
className: `space-x-2 grid ${valueSwitch === "TEXT" ? `grid-cols-[140px_1fr_50px]` : `grid-cols-[140px_1fr_200px_200px_50px]`} items-start`,
|
|
3497
3751
|
children: [
|
|
3498
|
-
/* @__PURE__ */
|
|
3499
|
-
/* @__PURE__ */
|
|
3752
|
+
/* @__PURE__ */ jsx40(SwitchSelect, { option, onClick: handleClick, value: valueSwitch, label: "\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17", required: true }),
|
|
3753
|
+
/* @__PURE__ */ jsx40(
|
|
3500
3754
|
InputField,
|
|
3501
3755
|
{
|
|
3502
3756
|
label: `\u0E0A\u0E37\u0E48\u0E2D\u0E15\u0E31\u0E27\u0E0A\u0E35\u0E49\u0E27\u0E31\u0E14${type === "OUTPUT" ? "\u0E1C\u0E25\u0E1C\u0E25\u0E34\u0E15" : "\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E18\u0E4C"}`,
|
|
@@ -3507,8 +3761,8 @@ function Indicator({
|
|
|
3507
3761
|
required: true
|
|
3508
3762
|
}
|
|
3509
3763
|
),
|
|
3510
|
-
valueSwitch === "NUMBER" && /* @__PURE__ */
|
|
3511
|
-
/* @__PURE__ */
|
|
3764
|
+
valueSwitch === "NUMBER" && /* @__PURE__ */ jsxs34(Fragment7, { children: [
|
|
3765
|
+
/* @__PURE__ */ jsx40(
|
|
3512
3766
|
InputFieldNumber,
|
|
3513
3767
|
{
|
|
3514
3768
|
label: `\u0E04\u0E48\u0E32\u0E40\u0E1B\u0E49\u0E32\u0E2B\u0E21\u0E32\u0E22${type === "OUTPUT" ? "\u0E1C\u0E25\u0E1C\u0E25\u0E34\u0E15" : "\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E18\u0E4C"}`,
|
|
@@ -3519,7 +3773,7 @@ function Indicator({
|
|
|
3519
3773
|
required: true
|
|
3520
3774
|
}
|
|
3521
3775
|
),
|
|
3522
|
-
/* @__PURE__ */
|
|
3776
|
+
/* @__PURE__ */ jsx40(
|
|
3523
3777
|
InputField,
|
|
3524
3778
|
{
|
|
3525
3779
|
label: `\u0E2B\u0E19\u0E48\u0E27\u0E22`,
|
|
@@ -3531,17 +3785,17 @@ function Indicator({
|
|
|
3531
3785
|
}
|
|
3532
3786
|
)
|
|
3533
3787
|
] }),
|
|
3534
|
-
/* @__PURE__ */
|
|
3788
|
+
/* @__PURE__ */ jsx40(IconCirclePlus2, { onClick: handleAddIndicator, className: "mt-7 cursor-pointer", size: 32 })
|
|
3535
3789
|
]
|
|
3536
3790
|
}
|
|
3537
3791
|
),
|
|
3538
|
-
/* @__PURE__ */
|
|
3792
|
+
/* @__PURE__ */ jsx40(Fragment7, { children: arrayData.map((item, index) => /* @__PURE__ */ jsxs34(
|
|
3539
3793
|
"div",
|
|
3540
3794
|
{
|
|
3541
3795
|
className: `space-y-4 grid ${item.inputType === "TEXT" ? `grid-cols-[140px_1fr_50px_50px]` : `grid-cols-[140px_1fr_200px_150px_50px_50px]`} items-start`,
|
|
3542
3796
|
children: [
|
|
3543
|
-
/* @__PURE__ */
|
|
3544
|
-
index === editIndex ? /* @__PURE__ */
|
|
3797
|
+
/* @__PURE__ */ jsx40("div", { className: "body-1 mt-2", children: item.inputType === "TEXT" ? "\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21" : "\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02" }),
|
|
3798
|
+
index === editIndex ? /* @__PURE__ */ jsx40(
|
|
3545
3799
|
Input4,
|
|
3546
3800
|
{
|
|
3547
3801
|
className: "body-1 mt-2",
|
|
@@ -3550,9 +3804,9 @@ function Indicator({
|
|
|
3550
3804
|
name: "textValue",
|
|
3551
3805
|
onChange: (e) => handleChangeEditCashData(e)
|
|
3552
3806
|
}
|
|
3553
|
-
) : /* @__PURE__ */
|
|
3554
|
-
item.inputType === "NUMBER" && /* @__PURE__ */
|
|
3555
|
-
index === editIndex ? /* @__PURE__ */
|
|
3807
|
+
) : /* @__PURE__ */ jsx40("div", { className: "body-1 mt-2", children: item.textValue }),
|
|
3808
|
+
item.inputType === "NUMBER" && /* @__PURE__ */ jsxs34(Fragment7, { children: [
|
|
3809
|
+
index === editIndex ? /* @__PURE__ */ jsx40(
|
|
3556
3810
|
Input4,
|
|
3557
3811
|
{
|
|
3558
3812
|
className: "body-1 mt-2",
|
|
@@ -3561,8 +3815,8 @@ function Indicator({
|
|
|
3561
3815
|
name: "numberValue",
|
|
3562
3816
|
onChange: (e) => handleChangeEditCashData(e)
|
|
3563
3817
|
}
|
|
3564
|
-
) : /* @__PURE__ */
|
|
3565
|
-
index === editIndex ? /* @__PURE__ */
|
|
3818
|
+
) : /* @__PURE__ */ jsx40("div", { className: "body-1 mt-2", children: item.numberValue }),
|
|
3819
|
+
index === editIndex ? /* @__PURE__ */ jsx40(
|
|
3566
3820
|
Input4,
|
|
3567
3821
|
{
|
|
3568
3822
|
className: "body-1 mt-2",
|
|
@@ -3571,19 +3825,19 @@ function Indicator({
|
|
|
3571
3825
|
name: "unit",
|
|
3572
3826
|
onChange: (e) => handleChangeEditCashData(e)
|
|
3573
3827
|
}
|
|
3574
|
-
) : /* @__PURE__ */
|
|
3828
|
+
) : /* @__PURE__ */ jsx40("div", { className: "body-1 mt-2", children: item.unit })
|
|
3575
3829
|
] }),
|
|
3576
|
-
/* @__PURE__ */
|
|
3577
|
-
/* @__PURE__ */
|
|
3830
|
+
/* @__PURE__ */ jsx40("div", { className: "body-1 mt-2 flex", children: editIndex !== null ? editIndex === index ? /* @__PURE__ */ jsxs34("div", { className: "flex", children: [
|
|
3831
|
+
/* @__PURE__ */ jsx40(
|
|
3578
3832
|
IconCheck3,
|
|
3579
3833
|
{
|
|
3580
3834
|
className: "cursor-pointer text-green-600",
|
|
3581
3835
|
onClick: () => handleConfirmEditIndicator(index)
|
|
3582
3836
|
}
|
|
3583
3837
|
),
|
|
3584
|
-
/* @__PURE__ */
|
|
3585
|
-
] }) : void 0 : /* @__PURE__ */
|
|
3586
|
-
/* @__PURE__ */
|
|
3838
|
+
/* @__PURE__ */ jsx40(IconX3, { className: "cursor-pointer text-red-600", onClick: handleCancelEditIndicator })
|
|
3839
|
+
] }) : void 0 : /* @__PURE__ */ jsx40(IconPencil2, { className: "cursor-pointer", onClick: () => handleEditIndicator(index) }) }),
|
|
3840
|
+
/* @__PURE__ */ jsx40("div", { className: "body-1 mt-2 cursor-pointer", children: /* @__PURE__ */ jsx40(IconTrash4, { onClick: () => handleDeleteIndicator(index) }) })
|
|
3587
3841
|
]
|
|
3588
3842
|
}
|
|
3589
3843
|
)) })
|
|
@@ -3592,31 +3846,31 @@ function Indicator({
|
|
|
3592
3846
|
|
|
3593
3847
|
// src/FilterPopUp/FilterPopUp.tsx
|
|
3594
3848
|
import { IconCheck as IconCheck4, IconFilter as IconFilter2, IconTrash as IconTrash5 } from "@tabler/icons-react";
|
|
3595
|
-
import { useState as
|
|
3596
|
-
import { jsx as
|
|
3849
|
+
import { useState as useState16 } from "react";
|
|
3850
|
+
import { jsx as jsx41, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
3597
3851
|
var FilterPopUp = (filter) => {
|
|
3598
|
-
const [isAction, setIsAction] =
|
|
3599
|
-
const [filterArray, setFilterArray] =
|
|
3852
|
+
const [isAction, setIsAction] = useState16(true);
|
|
3853
|
+
const [filterArray, setFilterArray] = useState16([""]);
|
|
3600
3854
|
const handleClearFilter = () => {
|
|
3601
3855
|
setFilterArray([]);
|
|
3602
3856
|
};
|
|
3603
3857
|
const handleSubmitFilter = () => {
|
|
3604
3858
|
filter.handleSearch(filterArray);
|
|
3605
3859
|
};
|
|
3606
|
-
return /* @__PURE__ */
|
|
3607
|
-
/* @__PURE__ */
|
|
3608
|
-
/* @__PURE__ */
|
|
3860
|
+
return /* @__PURE__ */ jsxs35("div", { className: "relative", children: [
|
|
3861
|
+
/* @__PURE__ */ jsxs35("button", { className: "flex px-2 py-1 rounded-lg border-1", onClick: () => setIsAction(!isAction), children: [
|
|
3862
|
+
/* @__PURE__ */ jsx41(IconFilter2, {}),
|
|
3609
3863
|
"filter"
|
|
3610
3864
|
] }),
|
|
3611
|
-
isAction ? /* @__PURE__ */
|
|
3612
|
-
/* @__PURE__ */
|
|
3613
|
-
/* @__PURE__ */
|
|
3614
|
-
/* @__PURE__ */
|
|
3615
|
-
/* @__PURE__ */
|
|
3865
|
+
isAction ? /* @__PURE__ */ jsxs35("div", { className: "absolute bg-white p-5 rounded-lg shadow-2xl w-[600px]", children: [
|
|
3866
|
+
/* @__PURE__ */ jsxs35("div", { className: "flex justify-end", children: [
|
|
3867
|
+
/* @__PURE__ */ jsxs35("div", { className: "flex justify-end text-nowrap gap-2", children: [
|
|
3868
|
+
/* @__PURE__ */ jsx41(GhostButton, { title: "\u0E43\u0E0A\u0E49\u0E1F\u0E34\u0E25\u0E40\u0E15\u0E2D\u0E23\u0E4C", onClick: handleSubmitFilter, iconLeft: /* @__PURE__ */ jsx41(IconCheck4, {}) }),
|
|
3869
|
+
/* @__PURE__ */ jsx41(GhostButton, { title: "\u0E25\u0E49\u0E32\u0E07\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14", onClick: handleClearFilter, iconLeft: /* @__PURE__ */ jsx41(IconTrash5, {}) })
|
|
3616
3870
|
] }),
|
|
3617
3871
|
""
|
|
3618
3872
|
] }),
|
|
3619
|
-
/* @__PURE__ */
|
|
3873
|
+
/* @__PURE__ */ jsx41(
|
|
3620
3874
|
SelectCustom,
|
|
3621
3875
|
{
|
|
3622
3876
|
options: filter.selectionFilter,
|
|
@@ -3638,6 +3892,7 @@ export {
|
|
|
3638
3892
|
ColorPickerBasic,
|
|
3639
3893
|
DataTable,
|
|
3640
3894
|
DatePickerBasic,
|
|
3895
|
+
DatePickerRange,
|
|
3641
3896
|
FileUploader,
|
|
3642
3897
|
FilterPopUp,
|
|
3643
3898
|
GhostButton,
|