@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.js
CHANGED
|
@@ -365,6 +365,7 @@ __export(index_exports, {
|
|
|
365
365
|
ColorPickerBasic: () => ColorPickerBasic,
|
|
366
366
|
DataTable: () => DataTable,
|
|
367
367
|
DatePickerBasic: () => DatePickerBasic,
|
|
368
|
+
DatePickerRange: () => DatePickerRange,
|
|
368
369
|
FileUploader: () => FileUploader,
|
|
369
370
|
FilterPopUp: () => FilterPopUp,
|
|
370
371
|
GhostButton: () => GhostButton,
|
|
@@ -1285,77 +1286,331 @@ function InputFieldNumber({
|
|
|
1285
1286
|
}
|
|
1286
1287
|
|
|
1287
1288
|
// src/DatePicker/DatePickerBasic/DatePickerBasic.tsx
|
|
1288
|
-
var
|
|
1289
|
+
var import_react8 = require("react");
|
|
1289
1290
|
var import_dayjs = __toESM(require_dayjs_min());
|
|
1290
1291
|
var import_th2 = __toESM(require_th());
|
|
1292
|
+
var import_buddhistEra = __toESM(require_buddhistEra());
|
|
1291
1293
|
var import_date_fns = require("date-fns");
|
|
1292
1294
|
var import_locale = require("date-fns/locale");
|
|
1293
|
-
var import_th_TH = __toESM(require("antd/es/date-picker/locale/th_TH"));
|
|
1294
|
-
var import_buddhistEra = __toESM(require_buddhistEra());
|
|
1295
1295
|
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
1296
1296
|
import_dayjs.default.extend(import_buddhistEra.default);
|
|
1297
|
-
|
|
1298
|
-
...import_th_TH.default,
|
|
1299
|
-
lang: {
|
|
1300
|
-
...import_th_TH.default.lang,
|
|
1301
|
-
fieldDateFormat: "BBBB-MM-DD",
|
|
1302
|
-
fieldDateTimeFormat: "BBBB-MM-DD HH:mm:ss",
|
|
1303
|
-
yearFormat: "BBBB",
|
|
1304
|
-
cellYearFormat: "BBBB"
|
|
1305
|
-
}
|
|
1306
|
-
};
|
|
1297
|
+
import_dayjs.default.locale("th");
|
|
1307
1298
|
function DatePickerBasic({
|
|
1308
1299
|
value,
|
|
1309
1300
|
onChange,
|
|
1310
|
-
required,
|
|
1311
1301
|
label,
|
|
1302
|
+
required,
|
|
1312
1303
|
error,
|
|
1313
|
-
placeholder = "\u0E01\u0E23\u0E38\u0E13\u0E32\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48",
|
|
1314
1304
|
disabled,
|
|
1315
|
-
|
|
1305
|
+
placeholder = "\u0E01\u0E23\u0E38\u0E13\u0E32\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48",
|
|
1316
1306
|
minDate,
|
|
1317
1307
|
maxDate,
|
|
1318
1308
|
disabledDate,
|
|
1319
|
-
|
|
1320
|
-
size = "middle"
|
|
1309
|
+
disablePast = false
|
|
1321
1310
|
}) {
|
|
1322
|
-
const
|
|
1311
|
+
const [open, setOpen] = (0, import_react8.useState)(false);
|
|
1312
|
+
const wrapperRef = (0, import_react8.useRef)(null);
|
|
1313
|
+
const current = value ? (0, import_dayjs.default)(value) : null;
|
|
1314
|
+
const today = (0, import_dayjs.default)();
|
|
1315
|
+
const formatThaiBE = (date) => {
|
|
1323
1316
|
const formatted = (0, import_date_fns.format)(date, "dd MMMM yyyy", { locale: import_locale.th });
|
|
1324
|
-
const year = parseInt((0, import_date_fns.format)(date, "yyyy"));
|
|
1325
|
-
|
|
1326
|
-
|
|
1317
|
+
const year = parseInt((0, import_date_fns.format)(date, "yyyy")) + 543;
|
|
1318
|
+
return formatted.replace(/\d{4}$/, String(year));
|
|
1319
|
+
};
|
|
1320
|
+
const monthNames = [
|
|
1321
|
+
"\u0E21\u0E01\u0E23\u0E32\u0E04\u0E21",
|
|
1322
|
+
"\u0E01\u0E38\u0E21\u0E20\u0E32\u0E1E\u0E31\u0E19\u0E18\u0E4C",
|
|
1323
|
+
"\u0E21\u0E35\u0E19\u0E32\u0E04\u0E21",
|
|
1324
|
+
"\u0E40\u0E21\u0E29\u0E32\u0E22\u0E19",
|
|
1325
|
+
"\u0E1E\u0E24\u0E29\u0E20\u0E32\u0E04\u0E21",
|
|
1326
|
+
"\u0E21\u0E34\u0E16\u0E38\u0E19\u0E32\u0E22\u0E19",
|
|
1327
|
+
"\u0E01\u0E23\u0E01\u0E0E\u0E32\u0E04\u0E21",
|
|
1328
|
+
"\u0E2A\u0E34\u0E07\u0E2B\u0E32\u0E04\u0E21",
|
|
1329
|
+
"\u0E01\u0E31\u0E19\u0E22\u0E32\u0E22\u0E19",
|
|
1330
|
+
"\u0E15\u0E38\u0E25\u0E32\u0E04\u0E21",
|
|
1331
|
+
"\u0E1E\u0E24\u0E28\u0E08\u0E34\u0E01\u0E32\u0E22\u0E19",
|
|
1332
|
+
"\u0E18\u0E31\u0E19\u0E27\u0E32\u0E04\u0E21"
|
|
1333
|
+
];
|
|
1334
|
+
const [calendar, setCalendar] = (0, import_react8.useState)(current || today);
|
|
1335
|
+
const daysInMonth = calendar.daysInMonth();
|
|
1336
|
+
const firstDayOfMonth = calendar.startOf("month").day();
|
|
1337
|
+
const isDisabled = (date) => {
|
|
1338
|
+
if (disablePast && date.isBefore(today, "day")) return true;
|
|
1339
|
+
if (disabledDate && disabledDate(date.toDate())) return true;
|
|
1340
|
+
if (minDate && date.isBefore((0, import_dayjs.default)(minDate), "day")) return true;
|
|
1341
|
+
if (maxDate && date.isAfter((0, import_dayjs.default)(maxDate), "day")) return true;
|
|
1342
|
+
return false;
|
|
1343
|
+
};
|
|
1344
|
+
const handleSelect = (d) => {
|
|
1345
|
+
const selected = calendar.date(d);
|
|
1346
|
+
if (isDisabled(selected)) return;
|
|
1347
|
+
onChange(selected.toDate());
|
|
1348
|
+
setOpen(false);
|
|
1327
1349
|
};
|
|
1328
|
-
|
|
1329
|
-
|
|
1350
|
+
(0, import_react8.useEffect)(() => {
|
|
1351
|
+
const handleClickOutside = (e) => {
|
|
1352
|
+
if (wrapperRef.current && !wrapperRef.current.contains(e.target)) {
|
|
1353
|
+
setOpen(false);
|
|
1354
|
+
}
|
|
1355
|
+
};
|
|
1356
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
1357
|
+
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
1358
|
+
}, []);
|
|
1359
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { ref: wrapperRef, style: { fontFamily: "Kanit", fontSize: 16 }, className: "relative w-full", children: [
|
|
1360
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "mb-1", children: [
|
|
1330
1361
|
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "body-1", children: label }),
|
|
1331
|
-
required && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "text-red-500", children: "*" })
|
|
1362
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "text-red-500 ml-1", children: "*" })
|
|
1332
1363
|
] }),
|
|
1333
1364
|
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
1334
|
-
|
|
1365
|
+
"div",
|
|
1335
1366
|
{
|
|
1336
|
-
className: `
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
allowClear: true,
|
|
1340
|
-
size,
|
|
1341
|
-
value: value ? (0, import_dayjs.default)(value) : null,
|
|
1342
|
-
defaultValue: defaultValue ? (0, import_dayjs.default)(defaultValue) : void 0,
|
|
1343
|
-
minDate: minDate ? (0, import_dayjs.default)(minDate) : void 0,
|
|
1344
|
-
maxDate: maxDate ? (0, import_dayjs.default)(maxDate) : void 0,
|
|
1345
|
-
disabledDate: (d) => disabledDate ? disabledDate(d.toDate()) : false,
|
|
1346
|
-
onChange: (d) => onChange(d ? d.toDate() : null),
|
|
1347
|
-
format: (d) => d ? formatToThaiBE(d.toDate()) : "",
|
|
1348
|
-
locale: buddhistLocale,
|
|
1349
|
-
style: { fontFamily: "Kanit", fontSize: 16 }
|
|
1367
|
+
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"}`,
|
|
1368
|
+
onClick: () => !disabled && setOpen(!open),
|
|
1369
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "flex-1", children: value ? formatThaiBE(value) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "text-gray-400", children: placeholder }) })
|
|
1350
1370
|
}
|
|
1351
1371
|
),
|
|
1352
|
-
|
|
1372
|
+
open && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
1373
|
+
"div",
|
|
1374
|
+
{
|
|
1375
|
+
className: "absolute z-50 mt-2 w-80 p-4 bg-white shadow-xl rounded-lg border animate-fade-in",
|
|
1376
|
+
style: { fontFamily: "Kanit", fontSize: 16 },
|
|
1377
|
+
children: [
|
|
1378
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex justify-between items-center mb-3", children: [
|
|
1379
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
1380
|
+
"button",
|
|
1381
|
+
{
|
|
1382
|
+
onClick: () => setCalendar(calendar.subtract(1, "month")),
|
|
1383
|
+
className: "px-2 hover:bg-gray-100 rounded",
|
|
1384
|
+
children: "\u25C0"
|
|
1385
|
+
}
|
|
1386
|
+
),
|
|
1387
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "font-semibold text-lg text-gray-700", children: [
|
|
1388
|
+
monthNames[calendar.month()],
|
|
1389
|
+
" ",
|
|
1390
|
+
calendar.year() + 543
|
|
1391
|
+
] }),
|
|
1392
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("button", { onClick: () => setCalendar(calendar.add(1, "month")), className: "px-2 hover:bg-gray-100 rounded", children: "\u25B6" })
|
|
1393
|
+
] }),
|
|
1394
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("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__ */ (0, import_jsx_runtime23.jsx)("div", { children: d }, d)) }),
|
|
1395
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "grid grid-cols-7 gap-1 text-center", children: [
|
|
1396
|
+
Array(firstDayOfMonth).fill(null).map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", {}, `empty-${i}`)),
|
|
1397
|
+
Array.from({ length: daysInMonth }, (_, i) => i + 1).map((d) => {
|
|
1398
|
+
const dateObj = calendar.date(d);
|
|
1399
|
+
const isDisable = isDisabled(dateObj);
|
|
1400
|
+
const isSelected = current && dateObj.isSame(current, "day");
|
|
1401
|
+
const isToday = dateObj.isSame(today, "day");
|
|
1402
|
+
let bgClass = "hover:bg-blue-100";
|
|
1403
|
+
let textClass = "text-gray-700";
|
|
1404
|
+
if (isDisable) {
|
|
1405
|
+
bgClass = "";
|
|
1406
|
+
textClass = "text-gray-300 cursor-not-allowed";
|
|
1407
|
+
} else if (isSelected) {
|
|
1408
|
+
bgClass = "bg-blue-500 text-white shadow-md";
|
|
1409
|
+
textClass = "text-white font-semibold";
|
|
1410
|
+
} else if (isToday) {
|
|
1411
|
+
bgClass = "border border-blue-500 font-bold";
|
|
1412
|
+
textClass = "text-blue-600";
|
|
1413
|
+
}
|
|
1414
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
1415
|
+
"div",
|
|
1416
|
+
{
|
|
1417
|
+
onClick: () => !isDisable && handleSelect(d),
|
|
1418
|
+
className: `
|
|
1419
|
+
py-1 rounded transition-all duration-200
|
|
1420
|
+
${bgClass} ${textClass}
|
|
1421
|
+
${!isDisable ? "cursor-pointer" : ""}
|
|
1422
|
+
`,
|
|
1423
|
+
children: d
|
|
1424
|
+
},
|
|
1425
|
+
d
|
|
1426
|
+
);
|
|
1427
|
+
})
|
|
1428
|
+
] })
|
|
1429
|
+
]
|
|
1430
|
+
}
|
|
1431
|
+
),
|
|
1432
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "text-red-500 text-xs mt-1", children: error })
|
|
1353
1433
|
] });
|
|
1354
1434
|
}
|
|
1355
1435
|
|
|
1356
|
-
// src/
|
|
1357
|
-
var
|
|
1436
|
+
// src/DatePicker/DatePickerRange/DatePickerRange.tsx
|
|
1437
|
+
var import_react9 = require("react");
|
|
1438
|
+
var import_dayjs2 = __toESM(require_dayjs_min());
|
|
1439
|
+
var import_th3 = __toESM(require_th());
|
|
1440
|
+
var import_buddhistEra2 = __toESM(require_buddhistEra());
|
|
1441
|
+
var import_date_fns2 = require("date-fns");
|
|
1442
|
+
var import_locale2 = require("date-fns/locale");
|
|
1358
1443
|
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
1444
|
+
import_dayjs2.default.extend(import_buddhistEra2.default);
|
|
1445
|
+
import_dayjs2.default.locale("th");
|
|
1446
|
+
function DatePickerRange({
|
|
1447
|
+
value,
|
|
1448
|
+
onChange,
|
|
1449
|
+
label,
|
|
1450
|
+
required,
|
|
1451
|
+
error,
|
|
1452
|
+
disabled,
|
|
1453
|
+
minDate,
|
|
1454
|
+
maxDate,
|
|
1455
|
+
disabledDate,
|
|
1456
|
+
disablePast = false
|
|
1457
|
+
}) {
|
|
1458
|
+
const [open, setOpen] = (0, import_react9.useState)(false);
|
|
1459
|
+
const wrapperRef = (0, import_react9.useRef)(null);
|
|
1460
|
+
const [startDate, endDate] = value;
|
|
1461
|
+
const startDayjs = startDate ? (0, import_dayjs2.default)(startDate) : null;
|
|
1462
|
+
const endDayjs = endDate ? (0, import_dayjs2.default)(endDate) : null;
|
|
1463
|
+
const today = (0, import_dayjs2.default)();
|
|
1464
|
+
const [calendar, setCalendar] = (0, import_react9.useState)(startDayjs || today);
|
|
1465
|
+
const formatThaiBE = (date) => {
|
|
1466
|
+
const formatted = (0, import_date_fns2.format)(date, "dd MMM yy", { locale: import_locale2.th });
|
|
1467
|
+
const year = parseInt((0, import_date_fns2.format)(date, "yyyy")) + 543;
|
|
1468
|
+
return formatted.replace(/\d{4}$/, String(year)).replace(/\d{2}$/, String(year).slice(2));
|
|
1469
|
+
};
|
|
1470
|
+
const monthNames = [
|
|
1471
|
+
"\u0E21\u0E01\u0E23\u0E32\u0E04\u0E21",
|
|
1472
|
+
"\u0E01\u0E38\u0E21\u0E20\u0E32\u0E1E\u0E31\u0E19\u0E18\u0E4C",
|
|
1473
|
+
"\u0E21\u0E35\u0E19\u0E32\u0E04\u0E21",
|
|
1474
|
+
"\u0E40\u0E21\u0E29\u0E32\u0E22\u0E19",
|
|
1475
|
+
"\u0E1E\u0E24\u0E29\u0E20\u0E32\u0E04\u0E21",
|
|
1476
|
+
"\u0E21\u0E34\u0E16\u0E38\u0E19\u0E32\u0E22\u0E19",
|
|
1477
|
+
"\u0E01\u0E23\u0E01\u0E0E\u0E32\u0E04\u0E21",
|
|
1478
|
+
"\u0E2A\u0E34\u0E07\u0E2B\u0E32\u0E04\u0E21",
|
|
1479
|
+
"\u0E01\u0E31\u0E19\u0E22\u0E32\u0E22\u0E19",
|
|
1480
|
+
"\u0E15\u0E38\u0E25\u0E32\u0E04\u0E21",
|
|
1481
|
+
"\u0E1E\u0E24\u0E28\u0E08\u0E34\u0E01\u0E32\u0E22\u0E19",
|
|
1482
|
+
"\u0E18\u0E31\u0E19\u0E27\u0E32\u0E04\u0E21"
|
|
1483
|
+
];
|
|
1484
|
+
const daysInMonth = calendar.daysInMonth();
|
|
1485
|
+
const firstDayOfMonth = calendar.startOf("month").day();
|
|
1486
|
+
const isDisabled = (date) => {
|
|
1487
|
+
if (disablePast && date.isBefore(today, "day")) return true;
|
|
1488
|
+
if (disabledDate && disabledDate(date.toDate())) return true;
|
|
1489
|
+
if (minDate && date.isBefore((0, import_dayjs2.default)(minDate), "day")) return true;
|
|
1490
|
+
if (maxDate && date.isAfter((0, import_dayjs2.default)(maxDate), "day")) return true;
|
|
1491
|
+
return false;
|
|
1492
|
+
};
|
|
1493
|
+
const handleSelect = (d) => {
|
|
1494
|
+
const selected = calendar.date(d);
|
|
1495
|
+
if (isDisabled(selected)) return;
|
|
1496
|
+
const selectedDate = selected.toDate();
|
|
1497
|
+
if (!startDate || startDate && endDate) {
|
|
1498
|
+
onChange([selectedDate, null]);
|
|
1499
|
+
} else if (startDate && !endDate) {
|
|
1500
|
+
if (selected.isBefore(startDayjs, "day")) {
|
|
1501
|
+
onChange([selectedDate, null]);
|
|
1502
|
+
} else {
|
|
1503
|
+
onChange([startDate, selectedDate]);
|
|
1504
|
+
setOpen(false);
|
|
1505
|
+
}
|
|
1506
|
+
}
|
|
1507
|
+
};
|
|
1508
|
+
(0, import_react9.useEffect)(() => {
|
|
1509
|
+
const handleClickOutside = (e) => {
|
|
1510
|
+
if (wrapperRef.current && !wrapperRef.current.contains(e.target)) {
|
|
1511
|
+
setOpen(false);
|
|
1512
|
+
}
|
|
1513
|
+
};
|
|
1514
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
1515
|
+
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
1516
|
+
}, []);
|
|
1517
|
+
const ArrowIcon = () => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("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__ */ (0, import_jsx_runtime24.jsx)(
|
|
1518
|
+
"path",
|
|
1519
|
+
{
|
|
1520
|
+
fillRule: "evenodd",
|
|
1521
|
+
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",
|
|
1522
|
+
clipRule: "evenodd"
|
|
1523
|
+
}
|
|
1524
|
+
) });
|
|
1525
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { ref: wrapperRef, style: { fontFamily: "Kanit", fontSize: 16 }, className: "relative w-full", children: [
|
|
1526
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "mb-1", children: [
|
|
1527
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "body-1", children: label }),
|
|
1528
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "text-red-500 ml-1", children: "*" })
|
|
1529
|
+
] }),
|
|
1530
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
1531
|
+
"div",
|
|
1532
|
+
{
|
|
1533
|
+
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"}`,
|
|
1534
|
+
onClick: () => !disabled && setOpen(!open),
|
|
1535
|
+
children: [
|
|
1536
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("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" }),
|
|
1537
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "flex-shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(ArrowIcon, {}) }),
|
|
1538
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("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" })
|
|
1539
|
+
]
|
|
1540
|
+
}
|
|
1541
|
+
),
|
|
1542
|
+
open && /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
1543
|
+
"div",
|
|
1544
|
+
{
|
|
1545
|
+
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",
|
|
1546
|
+
style: { fontFamily: "Kanit", fontSize: 16 },
|
|
1547
|
+
children: [
|
|
1548
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "flex justify-between items-center mb-3", children: [
|
|
1549
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1550
|
+
"button",
|
|
1551
|
+
{
|
|
1552
|
+
onClick: () => setCalendar(calendar.subtract(1, "month")),
|
|
1553
|
+
className: "px-2 hover:bg-gray-100 rounded",
|
|
1554
|
+
children: "\u25C0"
|
|
1555
|
+
}
|
|
1556
|
+
),
|
|
1557
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "font-semibold text-lg text-gray-700", children: [
|
|
1558
|
+
monthNames[calendar.month()],
|
|
1559
|
+
" ",
|
|
1560
|
+
calendar.year() + 543
|
|
1561
|
+
] }),
|
|
1562
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("button", { onClick: () => setCalendar(calendar.add(1, "month")), className: "px-2 hover:bg-gray-100 rounded", children: "\u25B6" })
|
|
1563
|
+
] }),
|
|
1564
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("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__ */ (0, import_jsx_runtime24.jsx)("div", { children: d }, d)) }),
|
|
1565
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "grid grid-cols-7 gap-y-1 text-center", children: [
|
|
1566
|
+
Array(firstDayOfMonth).fill(null).map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", {}, `empty-${i}`)),
|
|
1567
|
+
Array.from({ length: daysInMonth }, (_, i) => i + 1).map((d) => {
|
|
1568
|
+
const currentObj = calendar.date(d);
|
|
1569
|
+
const isDisable = isDisabled(currentObj);
|
|
1570
|
+
const isToday = currentObj.isSame(today, "day");
|
|
1571
|
+
const isStart = startDayjs && currentObj.isSame(startDayjs, "day");
|
|
1572
|
+
const isEnd = endDayjs && currentObj.isSame(endDayjs, "day");
|
|
1573
|
+
const isInRange = startDayjs && endDayjs && currentObj.isAfter(startDayjs, "day") && currentObj.isBefore(endDayjs, "day");
|
|
1574
|
+
let bgClass = "hover:bg-blue-100";
|
|
1575
|
+
let textClass = "text-gray-700";
|
|
1576
|
+
if (isDisable) {
|
|
1577
|
+
bgClass = "";
|
|
1578
|
+
textClass = "text-gray-300 cursor-not-allowed";
|
|
1579
|
+
} else if (isStart || isEnd) {
|
|
1580
|
+
bgClass = "bg-blue-600 shadow-md transform scale-105";
|
|
1581
|
+
textClass = "text-white font-semibold";
|
|
1582
|
+
} else if (isInRange) {
|
|
1583
|
+
bgClass = "bg-blue-100";
|
|
1584
|
+
textClass = "text-blue-700";
|
|
1585
|
+
} else if (isToday) {
|
|
1586
|
+
bgClass = "border border-blue-500 font-bold";
|
|
1587
|
+
textClass = "text-blue-600";
|
|
1588
|
+
}
|
|
1589
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1590
|
+
"div",
|
|
1591
|
+
{
|
|
1592
|
+
onClick: () => !isDisable && handleSelect(d),
|
|
1593
|
+
className: `
|
|
1594
|
+
h-9 w-9 flex items-center justify-center rounded-full mx-auto transition-all duration-200
|
|
1595
|
+
${bgClass} ${textClass}
|
|
1596
|
+
${!isDisable ? "cursor-pointer" : ""}
|
|
1597
|
+
`,
|
|
1598
|
+
children: d
|
|
1599
|
+
},
|
|
1600
|
+
d
|
|
1601
|
+
);
|
|
1602
|
+
})
|
|
1603
|
+
] })
|
|
1604
|
+
]
|
|
1605
|
+
}
|
|
1606
|
+
),
|
|
1607
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("p", { className: "text-red-500 text-xs mt-1", children: error })
|
|
1608
|
+
] });
|
|
1609
|
+
}
|
|
1610
|
+
|
|
1611
|
+
// src/ColorPicker/ColorPickerBasic/ColorPicker.tsx
|
|
1612
|
+
var import_antd5 = require("antd");
|
|
1613
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
1359
1614
|
function ColorPickerBasic({
|
|
1360
1615
|
value,
|
|
1361
1616
|
onChange,
|
|
@@ -1368,8 +1623,8 @@ function ColorPickerBasic({
|
|
|
1368
1623
|
className,
|
|
1369
1624
|
placeholder = "\u0E01\u0E23\u0E38\u0E13\u0E32\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E2A\u0E35"
|
|
1370
1625
|
}) {
|
|
1371
|
-
return /* @__PURE__ */ (0,
|
|
1372
|
-
|
|
1626
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
1627
|
+
import_antd5.ConfigProvider,
|
|
1373
1628
|
{
|
|
1374
1629
|
theme: {
|
|
1375
1630
|
token: {
|
|
@@ -1377,14 +1632,14 @@ function ColorPickerBasic({
|
|
|
1377
1632
|
fontSize: 16
|
|
1378
1633
|
}
|
|
1379
1634
|
},
|
|
1380
|
-
children: /* @__PURE__ */ (0,
|
|
1381
|
-
/* @__PURE__ */ (0,
|
|
1382
|
-
/* @__PURE__ */ (0,
|
|
1635
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "container-input", children: [
|
|
1636
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { children: [
|
|
1637
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "body-1", children: label }),
|
|
1383
1638
|
" ",
|
|
1384
|
-
required && /* @__PURE__ */ (0,
|
|
1639
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "text-red-500", children: "*" })
|
|
1385
1640
|
] }),
|
|
1386
|
-
/* @__PURE__ */ (0,
|
|
1387
|
-
|
|
1641
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
1642
|
+
import_antd5.ColorPicker,
|
|
1388
1643
|
{
|
|
1389
1644
|
defaultFormat,
|
|
1390
1645
|
className: `body-1 w-full ${className ?? ""}`,
|
|
@@ -1395,9 +1650,9 @@ function ColorPickerBasic({
|
|
|
1395
1650
|
showText: (color) => {
|
|
1396
1651
|
const hex = color.toHexString();
|
|
1397
1652
|
if (!value) {
|
|
1398
|
-
return /* @__PURE__ */ (0,
|
|
1653
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { children: placeholder });
|
|
1399
1654
|
}
|
|
1400
|
-
return /* @__PURE__ */ (0,
|
|
1655
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("span", { children: [
|
|
1401
1656
|
"(",
|
|
1402
1657
|
hex,
|
|
1403
1658
|
")"
|
|
@@ -1406,14 +1661,14 @@ function ColorPickerBasic({
|
|
|
1406
1661
|
disabled
|
|
1407
1662
|
}
|
|
1408
1663
|
),
|
|
1409
|
-
error && /* @__PURE__ */ (0,
|
|
1664
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("p", { className: "text-red-500 caption-1", children: error })
|
|
1410
1665
|
] })
|
|
1411
1666
|
}
|
|
1412
1667
|
);
|
|
1413
1668
|
}
|
|
1414
1669
|
|
|
1415
1670
|
// src/ColorPicker/ColorPalettePickerBasic/ColorPalettePickerBasic.tsx
|
|
1416
|
-
var
|
|
1671
|
+
var import_antd6 = require("antd");
|
|
1417
1672
|
|
|
1418
1673
|
// node_modules/@babel/runtime/helpers/esm/typeof.js
|
|
1419
1674
|
function _typeof(o) {
|
|
@@ -2115,7 +2370,7 @@ var greyDark = ["#151515", "#1f1f1f", "#2d2d2d", "#393939", "#494949", "#5a5a5a"
|
|
|
2115
2370
|
greyDark.primary = greyDark[5];
|
|
2116
2371
|
|
|
2117
2372
|
// src/ColorPicker/ColorPalettePickerBasic/ColorPalettePickerBasic.tsx
|
|
2118
|
-
var
|
|
2373
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
2119
2374
|
function genPresets(presets = presetPalettes) {
|
|
2120
2375
|
return Object.entries(presets).map(([label, colors]) => ({
|
|
2121
2376
|
label,
|
|
@@ -2136,14 +2391,14 @@ function ColorPalettePickerBasic({
|
|
|
2136
2391
|
placeholder = "\u0E01\u0E23\u0E38\u0E13\u0E32\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E2A\u0E35",
|
|
2137
2392
|
onClear
|
|
2138
2393
|
}) {
|
|
2139
|
-
const { token } =
|
|
2394
|
+
const { token } = import_antd6.theme.useToken();
|
|
2140
2395
|
const presets = genPresets({
|
|
2141
2396
|
primary: generate(token.colorPrimary),
|
|
2142
2397
|
red,
|
|
2143
2398
|
green
|
|
2144
2399
|
});
|
|
2145
|
-
return /* @__PURE__ */ (0,
|
|
2146
|
-
|
|
2400
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
2401
|
+
import_antd6.ConfigProvider,
|
|
2147
2402
|
{
|
|
2148
2403
|
theme: {
|
|
2149
2404
|
token: {
|
|
@@ -2151,14 +2406,14 @@ function ColorPalettePickerBasic({
|
|
|
2151
2406
|
fontSize: 16
|
|
2152
2407
|
}
|
|
2153
2408
|
},
|
|
2154
|
-
children: /* @__PURE__ */ (0,
|
|
2155
|
-
/* @__PURE__ */ (0,
|
|
2156
|
-
/* @__PURE__ */ (0,
|
|
2409
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "container-input", children: [
|
|
2410
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { children: [
|
|
2411
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "body-1", children: label }),
|
|
2157
2412
|
" ",
|
|
2158
|
-
required && /* @__PURE__ */ (0,
|
|
2413
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "text-red-500", children: "*" })
|
|
2159
2414
|
] }),
|
|
2160
|
-
/* @__PURE__ */ (0,
|
|
2161
|
-
|
|
2415
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
2416
|
+
import_antd6.ColorPicker,
|
|
2162
2417
|
{
|
|
2163
2418
|
defaultFormat,
|
|
2164
2419
|
className: `body-1 w-full ${className ?? ""}`,
|
|
@@ -2170,9 +2425,9 @@ function ColorPalettePickerBasic({
|
|
|
2170
2425
|
showText: (color) => {
|
|
2171
2426
|
const hex = color.toHexString();
|
|
2172
2427
|
if (!value) {
|
|
2173
|
-
return /* @__PURE__ */ (0,
|
|
2428
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { children: placeholder });
|
|
2174
2429
|
}
|
|
2175
|
-
return /* @__PURE__ */ (0,
|
|
2430
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("span", { children: [
|
|
2176
2431
|
"(",
|
|
2177
2432
|
hex,
|
|
2178
2433
|
")"
|
|
@@ -2182,15 +2437,15 @@ function ColorPalettePickerBasic({
|
|
|
2182
2437
|
onClear
|
|
2183
2438
|
}
|
|
2184
2439
|
),
|
|
2185
|
-
error && /* @__PURE__ */ (0,
|
|
2440
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-red-500 caption-1", children: error })
|
|
2186
2441
|
] })
|
|
2187
2442
|
}
|
|
2188
2443
|
);
|
|
2189
2444
|
}
|
|
2190
2445
|
|
|
2191
2446
|
// src/Select/SelectField/SelectField.tsx
|
|
2192
|
-
var
|
|
2193
|
-
var
|
|
2447
|
+
var import_antd7 = require("antd");
|
|
2448
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
2194
2449
|
function SelectField({
|
|
2195
2450
|
value,
|
|
2196
2451
|
onChange,
|
|
@@ -2208,8 +2463,8 @@ function SelectField({
|
|
|
2208
2463
|
className,
|
|
2209
2464
|
onClear
|
|
2210
2465
|
}) {
|
|
2211
|
-
return /* @__PURE__ */ (0,
|
|
2212
|
-
|
|
2466
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
2467
|
+
import_antd7.ConfigProvider,
|
|
2213
2468
|
{
|
|
2214
2469
|
theme: {
|
|
2215
2470
|
token: {
|
|
@@ -2217,14 +2472,14 @@ function SelectField({
|
|
|
2217
2472
|
fontSize: 16
|
|
2218
2473
|
}
|
|
2219
2474
|
},
|
|
2220
|
-
children: /* @__PURE__ */ (0,
|
|
2221
|
-
/* @__PURE__ */ (0,
|
|
2222
|
-
/* @__PURE__ */ (0,
|
|
2475
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "container-input", children: [
|
|
2476
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { children: [
|
|
2477
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: "body-1", children: label }),
|
|
2223
2478
|
" ",
|
|
2224
|
-
required && /* @__PURE__ */ (0,
|
|
2479
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: "text-red-500", children: "*" })
|
|
2225
2480
|
] }),
|
|
2226
|
-
/* @__PURE__ */ (0,
|
|
2227
|
-
|
|
2481
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
2482
|
+
import_antd7.Select,
|
|
2228
2483
|
{
|
|
2229
2484
|
showSearch: true,
|
|
2230
2485
|
value,
|
|
@@ -2238,7 +2493,7 @@ function SelectField({
|
|
|
2238
2493
|
options,
|
|
2239
2494
|
mode,
|
|
2240
2495
|
onSearch: handleSearch,
|
|
2241
|
-
prefix: prefix ? /* @__PURE__ */ (0,
|
|
2496
|
+
prefix: prefix ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
2242
2497
|
"span",
|
|
2243
2498
|
{
|
|
2244
2499
|
style: {
|
|
@@ -2255,15 +2510,15 @@ function SelectField({
|
|
|
2255
2510
|
onClear
|
|
2256
2511
|
}
|
|
2257
2512
|
),
|
|
2258
|
-
error && /* @__PURE__ */ (0,
|
|
2513
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("p", { className: "text-red-500 caption-1", children: error })
|
|
2259
2514
|
] })
|
|
2260
2515
|
}
|
|
2261
2516
|
);
|
|
2262
2517
|
}
|
|
2263
2518
|
|
|
2264
2519
|
// src/Select/SelectFieldGroup/SelectFieldGroup.tsx
|
|
2265
|
-
var
|
|
2266
|
-
var
|
|
2520
|
+
var import_antd8 = require("antd");
|
|
2521
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
2267
2522
|
function SelectFieldGroup({
|
|
2268
2523
|
value,
|
|
2269
2524
|
onChange,
|
|
@@ -2280,22 +2535,22 @@ function SelectFieldGroup({
|
|
|
2280
2535
|
handleSearch,
|
|
2281
2536
|
className
|
|
2282
2537
|
}) {
|
|
2283
|
-
return /* @__PURE__ */ (0,
|
|
2284
|
-
|
|
2538
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
2539
|
+
import_antd8.ConfigProvider,
|
|
2285
2540
|
{
|
|
2286
2541
|
theme: {
|
|
2287
2542
|
token: {
|
|
2288
2543
|
fontFamily: "Kanit"
|
|
2289
2544
|
}
|
|
2290
2545
|
},
|
|
2291
|
-
children: /* @__PURE__ */ (0,
|
|
2292
|
-
/* @__PURE__ */ (0,
|
|
2293
|
-
/* @__PURE__ */ (0,
|
|
2546
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "container-input", children: [
|
|
2547
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { children: [
|
|
2548
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "body-1", children: label }),
|
|
2294
2549
|
" ",
|
|
2295
|
-
required && /* @__PURE__ */ (0,
|
|
2550
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "text-red-500", children: "*" })
|
|
2296
2551
|
] }),
|
|
2297
|
-
/* @__PURE__ */ (0,
|
|
2298
|
-
|
|
2552
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
2553
|
+
import_antd8.Select,
|
|
2299
2554
|
{
|
|
2300
2555
|
showSearch: true,
|
|
2301
2556
|
value,
|
|
@@ -2309,7 +2564,7 @@ function SelectFieldGroup({
|
|
|
2309
2564
|
options,
|
|
2310
2565
|
mode,
|
|
2311
2566
|
onSearch: handleSearch,
|
|
2312
|
-
prefix: prefix ? /* @__PURE__ */ (0,
|
|
2567
|
+
prefix: prefix ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
2313
2568
|
"span",
|
|
2314
2569
|
{
|
|
2315
2570
|
style: {
|
|
@@ -2325,14 +2580,14 @@ function SelectFieldGroup({
|
|
|
2325
2580
|
allowClear: true
|
|
2326
2581
|
}
|
|
2327
2582
|
),
|
|
2328
|
-
error && /* @__PURE__ */ (0,
|
|
2583
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("p", { className: "text-red-500 caption-1", children: error })
|
|
2329
2584
|
] })
|
|
2330
2585
|
}
|
|
2331
2586
|
);
|
|
2332
2587
|
}
|
|
2333
2588
|
|
|
2334
2589
|
// src/Select/SelectFieldStatus/SelectFieldStatus.tsx
|
|
2335
|
-
var
|
|
2590
|
+
var import_antd9 = require("antd");
|
|
2336
2591
|
|
|
2337
2592
|
// src/Select/SelectFieldStatus/StatusMockup.ts
|
|
2338
2593
|
var status = [
|
|
@@ -2345,7 +2600,7 @@ var status = [
|
|
|
2345
2600
|
|
|
2346
2601
|
// src/Select/SelectFieldStatus/SelectFieldStatus.tsx
|
|
2347
2602
|
var import_icons = require("@ant-design/icons");
|
|
2348
|
-
var
|
|
2603
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
2349
2604
|
function SelectFieldStatus({
|
|
2350
2605
|
value,
|
|
2351
2606
|
onChange,
|
|
@@ -2358,8 +2613,8 @@ function SelectFieldStatus({
|
|
|
2358
2613
|
className
|
|
2359
2614
|
}) {
|
|
2360
2615
|
const selectedItem = status.find((s) => s.value === value);
|
|
2361
|
-
return /* @__PURE__ */ (0,
|
|
2362
|
-
|
|
2616
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
2617
|
+
import_antd9.ConfigProvider,
|
|
2363
2618
|
{
|
|
2364
2619
|
theme: {
|
|
2365
2620
|
components: {
|
|
@@ -2374,17 +2629,17 @@ function SelectFieldStatus({
|
|
|
2374
2629
|
fontFamily: "Kanit"
|
|
2375
2630
|
}
|
|
2376
2631
|
},
|
|
2377
|
-
children: /* @__PURE__ */ (0,
|
|
2378
|
-
/* @__PURE__ */ (0,
|
|
2379
|
-
/* @__PURE__ */ (0,
|
|
2632
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "container-input", children: [
|
|
2633
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { children: [
|
|
2634
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "body-1", children: label }),
|
|
2380
2635
|
" ",
|
|
2381
|
-
required && /* @__PURE__ */ (0,
|
|
2636
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "text-red-500", children: "*" })
|
|
2382
2637
|
] }),
|
|
2383
|
-
/* @__PURE__ */ (0,
|
|
2384
|
-
|
|
2638
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
2639
|
+
import_antd9.Select,
|
|
2385
2640
|
{
|
|
2386
2641
|
disabled,
|
|
2387
|
-
suffixIcon: /* @__PURE__ */ (0,
|
|
2642
|
+
suffixIcon: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_icons.DownOutlined, { style: { color: value ? "#fff" : "#D9D9D9" } }),
|
|
2388
2643
|
value,
|
|
2389
2644
|
onChange,
|
|
2390
2645
|
className: `body-3 custom-select flex justify-center w-full ${className ?? ""}`,
|
|
@@ -2395,14 +2650,14 @@ function SelectFieldStatus({
|
|
|
2395
2650
|
showSearch: true
|
|
2396
2651
|
}
|
|
2397
2652
|
),
|
|
2398
|
-
error && /* @__PURE__ */ (0,
|
|
2653
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("p", { className: "text-red-500 caption-1", children: error })
|
|
2399
2654
|
] })
|
|
2400
2655
|
}
|
|
2401
2656
|
);
|
|
2402
2657
|
}
|
|
2403
2658
|
|
|
2404
2659
|
// src/Select/SelectFieldStatusReport/SelectFieldStatusReport.tsx
|
|
2405
|
-
var
|
|
2660
|
+
var import_antd10 = require("antd");
|
|
2406
2661
|
|
|
2407
2662
|
// src/Select/SelectFieldStatusReport/StatusReportMockup.ts
|
|
2408
2663
|
var status2 = [
|
|
@@ -2412,7 +2667,7 @@ var status2 = [
|
|
|
2412
2667
|
|
|
2413
2668
|
// src/Select/SelectFieldStatusReport/SelectFieldStatusReport.tsx
|
|
2414
2669
|
var import_icons2 = require("@ant-design/icons");
|
|
2415
|
-
var
|
|
2670
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
2416
2671
|
function SelectFieldStatusReport({
|
|
2417
2672
|
value,
|
|
2418
2673
|
onChange,
|
|
@@ -2425,8 +2680,8 @@ function SelectFieldStatusReport({
|
|
|
2425
2680
|
options
|
|
2426
2681
|
}) {
|
|
2427
2682
|
const selectedItem = status2.find((s) => s.value === value);
|
|
2428
|
-
return /* @__PURE__ */ (0,
|
|
2429
|
-
|
|
2683
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
2684
|
+
import_antd10.ConfigProvider,
|
|
2430
2685
|
{
|
|
2431
2686
|
theme: {
|
|
2432
2687
|
components: {
|
|
@@ -2441,17 +2696,17 @@ function SelectFieldStatusReport({
|
|
|
2441
2696
|
fontFamily: "Kanit"
|
|
2442
2697
|
}
|
|
2443
2698
|
},
|
|
2444
|
-
children: /* @__PURE__ */ (0,
|
|
2445
|
-
/* @__PURE__ */ (0,
|
|
2446
|
-
/* @__PURE__ */ (0,
|
|
2699
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "container-input", children: [
|
|
2700
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { children: [
|
|
2701
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "body-1", children: label }),
|
|
2447
2702
|
" ",
|
|
2448
|
-
required && /* @__PURE__ */ (0,
|
|
2703
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "text-red-500", children: "*" })
|
|
2449
2704
|
] }),
|
|
2450
|
-
/* @__PURE__ */ (0,
|
|
2451
|
-
|
|
2705
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
2706
|
+
import_antd10.Select,
|
|
2452
2707
|
{
|
|
2453
2708
|
disabled,
|
|
2454
|
-
suffixIcon: /* @__PURE__ */ (0,
|
|
2709
|
+
suffixIcon: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_icons2.DownOutlined, { style: { color: value ? "#fff" : "#D9D9D9" } }),
|
|
2455
2710
|
value,
|
|
2456
2711
|
onChange,
|
|
2457
2712
|
className: `body-3 custom-select flex justify-center w-full ${className ?? ""}`,
|
|
@@ -2462,16 +2717,16 @@ function SelectFieldStatusReport({
|
|
|
2462
2717
|
showSearch: true
|
|
2463
2718
|
}
|
|
2464
2719
|
),
|
|
2465
|
-
error && /* @__PURE__ */ (0,
|
|
2720
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("p", { className: "text-red-500 caption-1", children: error })
|
|
2466
2721
|
] })
|
|
2467
2722
|
}
|
|
2468
2723
|
);
|
|
2469
2724
|
}
|
|
2470
2725
|
|
|
2471
2726
|
// src/Select/SelectFieldTag/SelectFieldTag.tsx
|
|
2472
|
-
var
|
|
2473
|
-
var
|
|
2474
|
-
var
|
|
2727
|
+
var import_antd11 = require("antd");
|
|
2728
|
+
var import_react10 = require("react");
|
|
2729
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
2475
2730
|
function SelectFieldTag({
|
|
2476
2731
|
label,
|
|
2477
2732
|
required,
|
|
@@ -2483,10 +2738,10 @@ function SelectFieldTag({
|
|
|
2483
2738
|
onChange,
|
|
2484
2739
|
onClear
|
|
2485
2740
|
}) {
|
|
2486
|
-
const [internalValue, setInternalValue] = (0,
|
|
2741
|
+
const [internalValue, setInternalValue] = (0, import_react10.useState)([]);
|
|
2487
2742
|
const isControlled = controlledValue !== void 0;
|
|
2488
2743
|
const value = isControlled ? controlledValue : internalValue;
|
|
2489
|
-
const [searchWord, setSearchWord] = (0,
|
|
2744
|
+
const [searchWord, setSearchWord] = (0, import_react10.useState)("");
|
|
2490
2745
|
const handleChange = (val) => {
|
|
2491
2746
|
const trimValue = val.map((v) => v.trim());
|
|
2492
2747
|
const filtered = trimValue.filter((v) => v.trim() !== "");
|
|
@@ -2504,22 +2759,22 @@ function SelectFieldTag({
|
|
|
2504
2759
|
}
|
|
2505
2760
|
onChange?.([]);
|
|
2506
2761
|
};
|
|
2507
|
-
return /* @__PURE__ */ (0,
|
|
2508
|
-
|
|
2762
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
2763
|
+
import_antd11.ConfigProvider,
|
|
2509
2764
|
{
|
|
2510
2765
|
theme: {
|
|
2511
2766
|
token: {
|
|
2512
2767
|
fontFamily: "Kanit"
|
|
2513
2768
|
}
|
|
2514
2769
|
},
|
|
2515
|
-
children: /* @__PURE__ */ (0,
|
|
2516
|
-
/* @__PURE__ */ (0,
|
|
2517
|
-
/* @__PURE__ */ (0,
|
|
2770
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "container-input", children: [
|
|
2771
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { children: [
|
|
2772
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "body-1", children: label }),
|
|
2518
2773
|
" ",
|
|
2519
|
-
required && /* @__PURE__ */ (0,
|
|
2774
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "text-red-500", children: "*" })
|
|
2520
2775
|
] }),
|
|
2521
|
-
/* @__PURE__ */ (0,
|
|
2522
|
-
|
|
2776
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
2777
|
+
import_antd11.Select,
|
|
2523
2778
|
{
|
|
2524
2779
|
mode: "tags",
|
|
2525
2780
|
className: `body-1 flex justify-center w-full ${className ?? ""}`,
|
|
@@ -2537,7 +2792,7 @@ function SelectFieldTag({
|
|
|
2537
2792
|
onClear
|
|
2538
2793
|
}
|
|
2539
2794
|
),
|
|
2540
|
-
error && /* @__PURE__ */ (0,
|
|
2795
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("p", { className: "text-red-500 caption-1", children: error })
|
|
2541
2796
|
] })
|
|
2542
2797
|
}
|
|
2543
2798
|
);
|
|
@@ -2545,9 +2800,9 @@ function SelectFieldTag({
|
|
|
2545
2800
|
|
|
2546
2801
|
// src/Select/SelectCustom/SelectCustom.tsx
|
|
2547
2802
|
var import_icons_react8 = require("@tabler/icons-react");
|
|
2548
|
-
var
|
|
2549
|
-
var
|
|
2550
|
-
var
|
|
2803
|
+
var import_antd12 = require("antd");
|
|
2804
|
+
var import_react11 = require("react");
|
|
2805
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
2551
2806
|
function SelectCustom({
|
|
2552
2807
|
label = "\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23",
|
|
2553
2808
|
placeholder = "\u0E01\u0E23\u0E38\u0E13\u0E32\u0E40\u0E25\u0E37\u0E2D\u0E01",
|
|
@@ -2557,8 +2812,8 @@ function SelectCustom({
|
|
|
2557
2812
|
error,
|
|
2558
2813
|
onClear
|
|
2559
2814
|
}) {
|
|
2560
|
-
const [value, setValue] = (0,
|
|
2561
|
-
const [valueList, setValueList] = (0,
|
|
2815
|
+
const [value, setValue] = (0, import_react11.useState)([]);
|
|
2816
|
+
const [valueList, setValueList] = (0, import_react11.useState)([]);
|
|
2562
2817
|
const handleChange = (selectedValues) => {
|
|
2563
2818
|
const newValues = selectedValues.filter((v) => !valueList.includes(v));
|
|
2564
2819
|
setValueList((prev) => {
|
|
@@ -2576,8 +2831,8 @@ function SelectCustom({
|
|
|
2576
2831
|
});
|
|
2577
2832
|
};
|
|
2578
2833
|
const filteredOptions = options.filter((opt) => !valueList.includes(opt.value)).map((opt) => ({ value: opt.value, label: opt.label }));
|
|
2579
|
-
return /* @__PURE__ */ (0,
|
|
2580
|
-
|
|
2834
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
2835
|
+
import_antd12.ConfigProvider,
|
|
2581
2836
|
{
|
|
2582
2837
|
theme: {
|
|
2583
2838
|
token: {
|
|
@@ -2585,14 +2840,14 @@ function SelectCustom({
|
|
|
2585
2840
|
fontSize: 16
|
|
2586
2841
|
}
|
|
2587
2842
|
},
|
|
2588
|
-
children: /* @__PURE__ */ (0,
|
|
2589
|
-
/* @__PURE__ */ (0,
|
|
2590
|
-
/* @__PURE__ */ (0,
|
|
2843
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "container-input", children: [
|
|
2844
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { children: [
|
|
2845
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "body-1", children: label }),
|
|
2591
2846
|
" ",
|
|
2592
|
-
required && /* @__PURE__ */ (0,
|
|
2847
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "text-red-500", children: "*" })
|
|
2593
2848
|
] }),
|
|
2594
|
-
/* @__PURE__ */ (0,
|
|
2595
|
-
|
|
2849
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
2850
|
+
import_antd12.Select,
|
|
2596
2851
|
{
|
|
2597
2852
|
value,
|
|
2598
2853
|
onChange: handleChange,
|
|
@@ -2602,16 +2857,16 @@ function SelectCustom({
|
|
|
2602
2857
|
onClear
|
|
2603
2858
|
}
|
|
2604
2859
|
),
|
|
2605
|
-
error && /* @__PURE__ */ (0,
|
|
2606
|
-
/* @__PURE__ */ (0,
|
|
2607
|
-
/* @__PURE__ */ (0,
|
|
2608
|
-
/* @__PURE__ */ (0,
|
|
2860
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("p", { className: "text-red-500 caption-1", children: error }),
|
|
2861
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "w-full p-[2px] overflow-y-auto", children: valueList.map((v, index) => /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "flex justify-between items-center py-[2px] body-1", children: [
|
|
2862
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "flex flex-row gap-[8px]", children: [
|
|
2863
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("p", { children: [
|
|
2609
2864
|
index + 1,
|
|
2610
2865
|
"."
|
|
2611
2866
|
] }),
|
|
2612
|
-
/* @__PURE__ */ (0,
|
|
2867
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("p", { children: v })
|
|
2613
2868
|
] }),
|
|
2614
|
-
/* @__PURE__ */ (0,
|
|
2869
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_icons_react8.IconTrash, { className: "cursor-pointer", onClick: () => handleDelete(v) })
|
|
2615
2870
|
] }, index)) })
|
|
2616
2871
|
] })
|
|
2617
2872
|
}
|
|
@@ -2619,7 +2874,7 @@ function SelectCustom({
|
|
|
2619
2874
|
}
|
|
2620
2875
|
|
|
2621
2876
|
// src/SortFilter/SortFilter.tsx
|
|
2622
|
-
var
|
|
2877
|
+
var import_antd13 = require("antd");
|
|
2623
2878
|
var import_icons3 = require("@ant-design/icons");
|
|
2624
2879
|
|
|
2625
2880
|
// src/SortFilter/DataMockSortFilter.ts
|
|
@@ -2650,9 +2905,9 @@ var quarters = [
|
|
|
2650
2905
|
];
|
|
2651
2906
|
|
|
2652
2907
|
// src/SortFilter/SortFilter.tsx
|
|
2653
|
-
var
|
|
2908
|
+
var import_react12 = require("react");
|
|
2654
2909
|
var import_icons_react9 = require("@tabler/icons-react");
|
|
2655
|
-
var
|
|
2910
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
2656
2911
|
function SortFilter({
|
|
2657
2912
|
showYear = true,
|
|
2658
2913
|
showQuarter = true,
|
|
@@ -2660,23 +2915,23 @@ function SortFilter({
|
|
|
2660
2915
|
onSortClick,
|
|
2661
2916
|
onFilterClick
|
|
2662
2917
|
}) {
|
|
2663
|
-
const [yearValue, setYearValue] = (0,
|
|
2664
|
-
const [monthValue, setMonthValue] = (0,
|
|
2665
|
-
const [quarterValue, setQuartersValue] = (0,
|
|
2666
|
-
return /* @__PURE__ */ (0,
|
|
2667
|
-
|
|
2918
|
+
const [yearValue, setYearValue] = (0, import_react12.useState)();
|
|
2919
|
+
const [monthValue, setMonthValue] = (0, import_react12.useState)();
|
|
2920
|
+
const [quarterValue, setQuartersValue] = (0, import_react12.useState)();
|
|
2921
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
2922
|
+
import_antd13.ConfigProvider,
|
|
2668
2923
|
{
|
|
2669
2924
|
theme: {
|
|
2670
2925
|
token: {
|
|
2671
2926
|
fontFamily: "Kanit"
|
|
2672
2927
|
}
|
|
2673
2928
|
},
|
|
2674
|
-
children: /* @__PURE__ */ (0,
|
|
2675
|
-
/* @__PURE__ */ (0,
|
|
2676
|
-
showYear && /* @__PURE__ */ (0,
|
|
2929
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "w-full flex items-center justify-between", children: [
|
|
2930
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "w-full flex gap-[10px]", children: [
|
|
2931
|
+
showYear && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "w-[200px]", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
2677
2932
|
SelectField,
|
|
2678
2933
|
{
|
|
2679
|
-
prefix: /* @__PURE__ */ (0,
|
|
2934
|
+
prefix: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_icons3.CalendarOutlined, {}),
|
|
2680
2935
|
onChange: setYearValue,
|
|
2681
2936
|
options: years.map((s) => ({
|
|
2682
2937
|
value: s.value,
|
|
@@ -2686,10 +2941,10 @@ function SortFilter({
|
|
|
2686
2941
|
value: yearValue
|
|
2687
2942
|
}
|
|
2688
2943
|
) }),
|
|
2689
|
-
showMonth && /* @__PURE__ */ (0,
|
|
2944
|
+
showMonth && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "w-[200px]", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
2690
2945
|
SelectField,
|
|
2691
2946
|
{
|
|
2692
|
-
prefix: /* @__PURE__ */ (0,
|
|
2947
|
+
prefix: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_icons3.CalendarOutlined, {}),
|
|
2693
2948
|
onChange: setMonthValue,
|
|
2694
2949
|
options: months.map((s) => ({
|
|
2695
2950
|
value: s.value,
|
|
@@ -2699,10 +2954,10 @@ function SortFilter({
|
|
|
2699
2954
|
placeholder: "\u0E01\u0E23\u0E38\u0E13\u0E32\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E40\u0E14\u0E37\u0E2D\u0E19"
|
|
2700
2955
|
}
|
|
2701
2956
|
) }),
|
|
2702
|
-
showQuarter && /* @__PURE__ */ (0,
|
|
2957
|
+
showQuarter && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "w-[200px]", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
2703
2958
|
SelectField,
|
|
2704
2959
|
{
|
|
2705
|
-
prefix: /* @__PURE__ */ (0,
|
|
2960
|
+
prefix: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_icons3.CalendarOutlined, {}),
|
|
2706
2961
|
onChange: setQuartersValue,
|
|
2707
2962
|
options: quarters.map((s) => ({
|
|
2708
2963
|
value: s.value,
|
|
@@ -2713,8 +2968,8 @@ function SortFilter({
|
|
|
2713
2968
|
}
|
|
2714
2969
|
) })
|
|
2715
2970
|
] }),
|
|
2716
|
-
/* @__PURE__ */ (0,
|
|
2717
|
-
/* @__PURE__ */ (0,
|
|
2971
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "flex gap-[10px]", children: [
|
|
2972
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
2718
2973
|
import_icons_react9.IconSortDescending,
|
|
2719
2974
|
{
|
|
2720
2975
|
size: 24,
|
|
@@ -2722,7 +2977,7 @@ function SortFilter({
|
|
|
2722
2977
|
onClick: onSortClick
|
|
2723
2978
|
}
|
|
2724
2979
|
),
|
|
2725
|
-
/* @__PURE__ */ (0,
|
|
2980
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
2726
2981
|
import_icons_react9.IconFilter,
|
|
2727
2982
|
{
|
|
2728
2983
|
size: 24,
|
|
@@ -2738,8 +2993,8 @@ function SortFilter({
|
|
|
2738
2993
|
|
|
2739
2994
|
// src/Upload/FileUploader/FileUploader.tsx
|
|
2740
2995
|
var import_icons_react10 = require("@tabler/icons-react");
|
|
2741
|
-
var
|
|
2742
|
-
var
|
|
2996
|
+
var import_react13 = require("react");
|
|
2997
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
2743
2998
|
function FileUploader({
|
|
2744
2999
|
onUpload,
|
|
2745
3000
|
onError,
|
|
@@ -2751,10 +3006,10 @@ function FileUploader({
|
|
|
2751
3006
|
description,
|
|
2752
3007
|
label
|
|
2753
3008
|
}) {
|
|
2754
|
-
const [fileList, setFileList] = (0,
|
|
2755
|
-
const [uploading, setUploading] = (0,
|
|
2756
|
-
const [dragActive, setDragActive] = (0,
|
|
2757
|
-
const inputRef = (0,
|
|
3009
|
+
const [fileList, setFileList] = (0, import_react13.useState)([]);
|
|
3010
|
+
const [uploading, setUploading] = (0, import_react13.useState)(false);
|
|
3011
|
+
const [dragActive, setDragActive] = (0, import_react13.useState)(false);
|
|
3012
|
+
const inputRef = (0, import_react13.useRef)(null);
|
|
2758
3013
|
const validateFile = (file) => {
|
|
2759
3014
|
if (accept && !accept.includes(file.type)) {
|
|
2760
3015
|
onError?.(`Invalid file type. file: ${file.name}`);
|
|
@@ -2810,10 +3065,10 @@ function FileUploader({
|
|
|
2810
3065
|
}
|
|
2811
3066
|
if (inputRef.current) inputRef.current.value = "";
|
|
2812
3067
|
};
|
|
2813
|
-
return /* @__PURE__ */ (0,
|
|
2814
|
-
label && /* @__PURE__ */ (0,
|
|
2815
|
-
/* @__PURE__ */ (0,
|
|
2816
|
-
mode === "upload" ? /* @__PURE__ */ (0,
|
|
3068
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "w-full", children: [
|
|
3069
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("p", { className: "body-1", children: label }),
|
|
3070
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { children: [
|
|
3071
|
+
mode === "upload" ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
2817
3072
|
"button",
|
|
2818
3073
|
{
|
|
2819
3074
|
type: "button",
|
|
@@ -2821,15 +3076,15 @@ function FileUploader({
|
|
|
2821
3076
|
className: `h-[34px] flex justify-center items-center gap-2 w-full rounded-[2px] border border-gray-200 body-1
|
|
2822
3077
|
${disabled ? "cursor-not-allowed text-gray-400 bg-gray-100" : "cursor-pointer hover:text-primary-400 hover:border-primary-200 duration-300"}`,
|
|
2823
3078
|
disabled: disabled ? disabled : uploading,
|
|
2824
|
-
children: uploading ? /* @__PURE__ */ (0,
|
|
2825
|
-
/* @__PURE__ */ (0,
|
|
3079
|
+
children: uploading ? /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
|
|
3080
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Loader, { size: 15 }),
|
|
2826
3081
|
" \u0E01\u0E33\u0E25\u0E31\u0E07\u0E2D\u0E31\u0E1B\u0E42\u0E2B\u0E25\u0E14"
|
|
2827
|
-
] }) : /* @__PURE__ */ (0,
|
|
2828
|
-
/* @__PURE__ */ (0,
|
|
3082
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
|
|
3083
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_icons_react10.IconUpload, { size: 15, className: "text-gray-400" }),
|
|
2829
3084
|
" \u0E41\u0E19\u0E1A\u0E44\u0E1F\u0E25\u0E4C"
|
|
2830
3085
|
] })
|
|
2831
3086
|
}
|
|
2832
|
-
) : /* @__PURE__ */ (0,
|
|
3087
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
2833
3088
|
"div",
|
|
2834
3089
|
{
|
|
2835
3090
|
className: `min-w-[400px] min-h-[120px] flex justify-center items-center border-2 border-dashed rounded-md p-4 transition-colors body-1
|
|
@@ -2843,17 +3098,17 @@ function FileUploader({
|
|
|
2843
3098
|
},
|
|
2844
3099
|
onDragLeave: () => setDragActive(false),
|
|
2845
3100
|
onDrop: handleDrop,
|
|
2846
|
-
children: uploading ? /* @__PURE__ */ (0,
|
|
2847
|
-
/* @__PURE__ */ (0,
|
|
3101
|
+
children: uploading ? /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "flex justify-center items-center gap-2", children: [
|
|
3102
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Loader, { size: 15 }),
|
|
2848
3103
|
" \u0E01\u0E33\u0E25\u0E31\u0E07\u0E2D\u0E31\u0E1B\u0E42\u0E2B\u0E25\u0E14"
|
|
2849
|
-
] }) : /* @__PURE__ */ (0,
|
|
2850
|
-
/* @__PURE__ */ (0,
|
|
2851
|
-
/* @__PURE__ */ (0,
|
|
2852
|
-
/* @__PURE__ */ (0,
|
|
3104
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "flex flex-col items-center gap-2", children: [
|
|
3105
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_icons_react10.IconUpload, { size: 20 }),
|
|
3106
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("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" }),
|
|
3107
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("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" })
|
|
2853
3108
|
] })
|
|
2854
3109
|
}
|
|
2855
3110
|
),
|
|
2856
|
-
/* @__PURE__ */ (0,
|
|
3111
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
2857
3112
|
"input",
|
|
2858
3113
|
{
|
|
2859
3114
|
type: "file",
|
|
@@ -2866,13 +3121,13 @@ function FileUploader({
|
|
|
2866
3121
|
}
|
|
2867
3122
|
)
|
|
2868
3123
|
] }),
|
|
2869
|
-
description && /* @__PURE__ */ (0,
|
|
2870
|
-
/* @__PURE__ */ (0,
|
|
2871
|
-
/* @__PURE__ */ (0,
|
|
2872
|
-
/* @__PURE__ */ (0,
|
|
2873
|
-
/* @__PURE__ */ (0,
|
|
3124
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("p", { className: "text-gray-400 body-4", children: description }),
|
|
3125
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "mt-[8px]", children: fileList.length !== 0 && fileList.map((file, index) => /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "flex items-center gap-2 rounded-[4px] px-[8px] py-[4px] body-1", children: [
|
|
3126
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "flex items-center gap-2 w-[75%] overflow-hidden", children: [
|
|
3127
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "w-[15px] h-[15px]", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_icons_react10.IconPaperclip, { size: 15 }) }),
|
|
3128
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "truncate", children: file.name })
|
|
2874
3129
|
] }),
|
|
2875
|
-
/* @__PURE__ */ (0,
|
|
3130
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
2876
3131
|
import_icons_react10.IconTrash,
|
|
2877
3132
|
{
|
|
2878
3133
|
size: 20,
|
|
@@ -2906,9 +3161,9 @@ function messageLoading(content, duration) {
|
|
|
2906
3161
|
}
|
|
2907
3162
|
|
|
2908
3163
|
// src/Breadcrumb/Breadcrumb.tsx
|
|
3164
|
+
var import_antd14 = require("antd");
|
|
2909
3165
|
var import_antd15 = require("antd");
|
|
2910
|
-
var
|
|
2911
|
-
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
3166
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
2912
3167
|
function Breadcrumbs({
|
|
2913
3168
|
items,
|
|
2914
3169
|
separator,
|
|
@@ -2916,16 +3171,16 @@ function Breadcrumbs({
|
|
|
2916
3171
|
classname,
|
|
2917
3172
|
params
|
|
2918
3173
|
}) {
|
|
2919
|
-
return /* @__PURE__ */ (0,
|
|
2920
|
-
|
|
3174
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
3175
|
+
import_antd14.ConfigProvider,
|
|
2921
3176
|
{
|
|
2922
3177
|
theme: {
|
|
2923
3178
|
token: {
|
|
2924
3179
|
fontFamily: "Kanit"
|
|
2925
3180
|
}
|
|
2926
3181
|
},
|
|
2927
|
-
children: /* @__PURE__ */ (0,
|
|
2928
|
-
|
|
3182
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
3183
|
+
import_antd15.Breadcrumb,
|
|
2929
3184
|
{
|
|
2930
3185
|
items,
|
|
2931
3186
|
separator,
|
|
@@ -2939,8 +3194,8 @@ function Breadcrumbs({
|
|
|
2939
3194
|
}
|
|
2940
3195
|
|
|
2941
3196
|
// src/HeadingPage/HeadingPage.tsx
|
|
2942
|
-
var
|
|
2943
|
-
var
|
|
3197
|
+
var import_antd16 = require("antd");
|
|
3198
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
2944
3199
|
function HeadingPage({ Heading }) {
|
|
2945
3200
|
const today = (/* @__PURE__ */ new Date()).toLocaleDateString("th-TH", {
|
|
2946
3201
|
weekday: "long",
|
|
@@ -2948,17 +3203,17 @@ function HeadingPage({ Heading }) {
|
|
|
2948
3203
|
month: "long",
|
|
2949
3204
|
year: "numeric"
|
|
2950
3205
|
});
|
|
2951
|
-
return /* @__PURE__ */ (0,
|
|
2952
|
-
|
|
3206
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
3207
|
+
import_antd16.ConfigProvider,
|
|
2953
3208
|
{
|
|
2954
3209
|
theme: {
|
|
2955
3210
|
token: {
|
|
2956
3211
|
fontFamily: "Kanit"
|
|
2957
3212
|
}
|
|
2958
3213
|
},
|
|
2959
|
-
children: /* @__PURE__ */ (0,
|
|
2960
|
-
/* @__PURE__ */ (0,
|
|
2961
|
-
/* @__PURE__ */ (0,
|
|
3214
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "flex flex-col gap-[10px] px-[20px] py-[10px]", children: [
|
|
3215
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("p", { className: "headline-5", children: Heading }),
|
|
3216
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("p", { className: "body-1", children: [
|
|
2962
3217
|
" \u0E27\u0E31\u0E19\u0E19\u0E35\u0E49 ",
|
|
2963
3218
|
today
|
|
2964
3219
|
] })
|
|
@@ -2968,9 +3223,9 @@ function HeadingPage({ Heading }) {
|
|
|
2968
3223
|
}
|
|
2969
3224
|
|
|
2970
3225
|
// src/Progress/ProgressBar.tsx
|
|
2971
|
-
var
|
|
2972
|
-
var
|
|
2973
|
-
var
|
|
3226
|
+
var import_antd17 = require("antd");
|
|
3227
|
+
var import_react14 = require("react");
|
|
3228
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
2974
3229
|
function ProgressBar({
|
|
2975
3230
|
percent = 0,
|
|
2976
3231
|
size = "default",
|
|
@@ -2983,8 +3238,8 @@ function ProgressBar({
|
|
|
2983
3238
|
steps,
|
|
2984
3239
|
isCheckPoints
|
|
2985
3240
|
}) {
|
|
2986
|
-
const [barWidth, setBarWidth] = (0,
|
|
2987
|
-
const progressRef = (0,
|
|
3241
|
+
const [barWidth, setBarWidth] = (0, import_react14.useState)(0);
|
|
3242
|
+
const progressRef = (0, import_react14.useRef)(null);
|
|
2988
3243
|
let strokeColor = "--color-green-500";
|
|
2989
3244
|
const defaultStrokeWidth = type === "circle" ? 13 : strokeWidth ?? 8;
|
|
2990
3245
|
const defaultSize = type === "circle" ? 43 : size;
|
|
@@ -2992,7 +3247,7 @@ function ProgressBar({
|
|
|
2992
3247
|
const minCheckpoint = Math.min(...checkpoints);
|
|
2993
3248
|
strokeColor = percent >= minCheckpoint ? "var(--color-green-500)" : "var(--color-red-500)";
|
|
2994
3249
|
}
|
|
2995
|
-
(0,
|
|
3250
|
+
(0, import_react14.useEffect)(() => {
|
|
2996
3251
|
const inner = progressRef.current?.querySelector(".ant-progress-inner");
|
|
2997
3252
|
if (!inner) return;
|
|
2998
3253
|
const observer = new ResizeObserver(() => {
|
|
@@ -3001,17 +3256,17 @@ function ProgressBar({
|
|
|
3001
3256
|
observer.observe(inner);
|
|
3002
3257
|
return () => observer.disconnect();
|
|
3003
3258
|
}, []);
|
|
3004
|
-
return /* @__PURE__ */ (0,
|
|
3005
|
-
|
|
3259
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
3260
|
+
import_antd17.ConfigProvider,
|
|
3006
3261
|
{
|
|
3007
3262
|
theme: {
|
|
3008
3263
|
token: {
|
|
3009
3264
|
fontFamily: "Kanit"
|
|
3010
3265
|
}
|
|
3011
3266
|
},
|
|
3012
|
-
children: /* @__PURE__ */ (0,
|
|
3013
|
-
/* @__PURE__ */ (0,
|
|
3014
|
-
|
|
3267
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "relative w-full", ref: progressRef, children: [
|
|
3268
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
3269
|
+
import_antd17.Progress,
|
|
3015
3270
|
{
|
|
3016
3271
|
className: "w-full",
|
|
3017
3272
|
percent,
|
|
@@ -3026,7 +3281,7 @@ function ProgressBar({
|
|
|
3026
3281
|
strokeColor
|
|
3027
3282
|
}
|
|
3028
3283
|
),
|
|
3029
|
-
barWidth > 0 && isCheckPoints && type !== "circle" && checkpoints.map((cp) => /* @__PURE__ */ (0,
|
|
3284
|
+
barWidth > 0 && isCheckPoints && type !== "circle" && checkpoints.map((cp) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
3030
3285
|
"div",
|
|
3031
3286
|
{
|
|
3032
3287
|
className: "checkpoint absolute top-0",
|
|
@@ -3048,25 +3303,25 @@ function ProgressBar({
|
|
|
3048
3303
|
}
|
|
3049
3304
|
|
|
3050
3305
|
// src/KpiSection/KpiSection.tsx
|
|
3051
|
-
var
|
|
3052
|
-
var
|
|
3306
|
+
var import_antd18 = require("antd");
|
|
3307
|
+
var import_react16 = require("react");
|
|
3053
3308
|
|
|
3054
3309
|
// src/KpiSection/hooks/useGetKpiSection.ts
|
|
3055
|
-
var
|
|
3310
|
+
var import_react15 = require("react");
|
|
3056
3311
|
var import_cuid = __toESM(require("cuid"));
|
|
3057
3312
|
function useGetKpiSection() {
|
|
3058
|
-
const [nameKpi, setNameKpi] = (0,
|
|
3059
|
-
const [kpiValue, setKpiValue] = (0,
|
|
3060
|
-
const [unitValue, setUnitValue] = (0,
|
|
3061
|
-
const [kpiList, setKpiList] = (0,
|
|
3062
|
-
const [editingBackup, setEditingBackup] = (0,
|
|
3063
|
-
const [selected, setSelected] = (0,
|
|
3064
|
-
const [errors, setErrors] = (0,
|
|
3313
|
+
const [nameKpi, setNameKpi] = (0, import_react15.useState)("");
|
|
3314
|
+
const [kpiValue, setKpiValue] = (0, import_react15.useState)("");
|
|
3315
|
+
const [unitValue, setUnitValue] = (0, import_react15.useState)("");
|
|
3316
|
+
const [kpiList, setKpiList] = (0, import_react15.useState)([]);
|
|
3317
|
+
const [editingBackup, setEditingBackup] = (0, import_react15.useState)({});
|
|
3318
|
+
const [selected, setSelected] = (0, import_react15.useState)("2");
|
|
3319
|
+
const [errors, setErrors] = (0, import_react15.useState)({
|
|
3065
3320
|
nameKpi: "",
|
|
3066
3321
|
kpiValue: "",
|
|
3067
3322
|
unitValue: ""
|
|
3068
3323
|
});
|
|
3069
|
-
const [itemErrors, setItemErrors] = (0,
|
|
3324
|
+
const [itemErrors, setItemErrors] = (0, import_react15.useState)({});
|
|
3070
3325
|
const options = [
|
|
3071
3326
|
{ value: "1", label: "\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21" },
|
|
3072
3327
|
{ value: "2", label: "\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02" }
|
|
@@ -3199,7 +3454,7 @@ function useGetKpiSection() {
|
|
|
3199
3454
|
|
|
3200
3455
|
// src/KpiSection/KpiSection.tsx
|
|
3201
3456
|
var import_icons_react11 = require("@tabler/icons-react");
|
|
3202
|
-
var
|
|
3457
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
3203
3458
|
function KpiSection({ type, onChangeKpiList }) {
|
|
3204
3459
|
const {
|
|
3205
3460
|
handleAddKpi,
|
|
@@ -3219,18 +3474,18 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3219
3474
|
itemErrors,
|
|
3220
3475
|
setItemErrors
|
|
3221
3476
|
} = useGetKpiSection();
|
|
3222
|
-
const [messageApi2, messageContainer] =
|
|
3223
|
-
const [hasShownError, setHasShownError] = (0,
|
|
3224
|
-
(0,
|
|
3477
|
+
const [messageApi2, messageContainer] = import_antd18.message.useMessage();
|
|
3478
|
+
const [hasShownError, setHasShownError] = (0, import_react16.useState)(false);
|
|
3479
|
+
(0, import_react16.useEffect)(() => {
|
|
3225
3480
|
setMessageApi(messageApi2);
|
|
3226
3481
|
}, [messageApi2]);
|
|
3227
|
-
(0,
|
|
3482
|
+
(0, import_react16.useEffect)(() => {
|
|
3228
3483
|
if (onChangeKpiList) {
|
|
3229
3484
|
onChangeKpiList(kpiList);
|
|
3230
3485
|
}
|
|
3231
3486
|
}, [kpiList]);
|
|
3232
|
-
return /* @__PURE__ */ (0,
|
|
3233
|
-
|
|
3487
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3488
|
+
import_antd18.ConfigProvider,
|
|
3234
3489
|
{
|
|
3235
3490
|
theme: {
|
|
3236
3491
|
token: {
|
|
@@ -3238,11 +3493,11 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3238
3493
|
fontSize: 16
|
|
3239
3494
|
}
|
|
3240
3495
|
},
|
|
3241
|
-
children: /* @__PURE__ */ (0,
|
|
3496
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "container-input", children: [
|
|
3242
3497
|
messageContainer,
|
|
3243
|
-
type === "number" && /* @__PURE__ */ (0,
|
|
3244
|
-
/* @__PURE__ */ (0,
|
|
3245
|
-
/* @__PURE__ */ (0,
|
|
3498
|
+
type === "number" && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "space-y-4", children: [
|
|
3499
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "grid grid-cols-[1fr_200px_200px_50px] w-full gap-[24px] items-start", children: [
|
|
3500
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3246
3501
|
InputField,
|
|
3247
3502
|
{
|
|
3248
3503
|
value: nameKpi,
|
|
@@ -3254,7 +3509,7 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3254
3509
|
error: errors.nameKpi
|
|
3255
3510
|
}
|
|
3256
3511
|
),
|
|
3257
|
-
/* @__PURE__ */ (0,
|
|
3512
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3258
3513
|
InputField,
|
|
3259
3514
|
{
|
|
3260
3515
|
value: kpiValue,
|
|
@@ -3278,7 +3533,7 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3278
3533
|
error: errors.kpiValue
|
|
3279
3534
|
}
|
|
3280
3535
|
),
|
|
3281
|
-
/* @__PURE__ */ (0,
|
|
3536
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3282
3537
|
InputField,
|
|
3283
3538
|
{
|
|
3284
3539
|
value: unitValue,
|
|
@@ -3290,7 +3545,7 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3290
3545
|
error: errors.unitValue
|
|
3291
3546
|
}
|
|
3292
3547
|
),
|
|
3293
|
-
/* @__PURE__ */ (0,
|
|
3548
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: `flex justify-end mt-[28px]`, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3294
3549
|
import_icons_react11.IconCirclePlus,
|
|
3295
3550
|
{
|
|
3296
3551
|
className: "w-[40px] h-[40px] cursor-pointer hover:scale-110 transition",
|
|
@@ -3299,17 +3554,17 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3299
3554
|
}
|
|
3300
3555
|
) })
|
|
3301
3556
|
] }),
|
|
3302
|
-
/* @__PURE__ */ (0,
|
|
3557
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { children: kpiList.map((kpi, index) => /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
|
|
3303
3558
|
"div",
|
|
3304
3559
|
{
|
|
3305
3560
|
className: "grid grid-cols-[30px_1fr_100px_120px_80px] items-start py-2 body-1 gap-[8px]",
|
|
3306
3561
|
children: [
|
|
3307
|
-
/* @__PURE__ */ (0,
|
|
3562
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("p", { className: `body-1 ${kpi.isEditing ? "mt-[12px]" : ""}`, children: [
|
|
3308
3563
|
index + 1,
|
|
3309
3564
|
"."
|
|
3310
3565
|
] }),
|
|
3311
|
-
kpi.isEditing ? /* @__PURE__ */ (0,
|
|
3312
|
-
/* @__PURE__ */ (0,
|
|
3566
|
+
kpi.isEditing ? /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
|
|
3567
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3313
3568
|
InputField,
|
|
3314
3569
|
{
|
|
3315
3570
|
value: kpi.name,
|
|
@@ -3319,7 +3574,7 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3319
3574
|
error: itemErrors[kpi.id]?.name
|
|
3320
3575
|
}
|
|
3321
3576
|
),
|
|
3322
|
-
/* @__PURE__ */ (0,
|
|
3577
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3323
3578
|
InputField,
|
|
3324
3579
|
{
|
|
3325
3580
|
value: kpi.value?.toString(),
|
|
@@ -3344,7 +3599,7 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3344
3599
|
error: itemErrors[kpi.id]?.value
|
|
3345
3600
|
}
|
|
3346
3601
|
),
|
|
3347
|
-
/* @__PURE__ */ (0,
|
|
3602
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3348
3603
|
InputField,
|
|
3349
3604
|
{
|
|
3350
3605
|
value: kpi.unit,
|
|
@@ -3354,29 +3609,29 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3354
3609
|
error: itemErrors[kpi.id]?.unit
|
|
3355
3610
|
}
|
|
3356
3611
|
),
|
|
3357
|
-
/* @__PURE__ */ (0,
|
|
3612
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
|
|
3358
3613
|
"div",
|
|
3359
3614
|
{
|
|
3360
3615
|
className: `flex gap-2 justify-end self-center ${!!itemErrors[kpi.id]?.value || !!itemErrors[kpi.id]?.unit || !!itemErrors[kpi.id]?.name ? "mt-[-12px]" : ""}`,
|
|
3361
3616
|
children: [
|
|
3362
|
-
/* @__PURE__ */ (0,
|
|
3617
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3363
3618
|
import_icons_react11.IconCheck,
|
|
3364
3619
|
{
|
|
3365
3620
|
className: "w-[30px] h-[30px] cursor-pointer",
|
|
3366
3621
|
onClick: () => handleSave(kpi.id, type)
|
|
3367
3622
|
}
|
|
3368
3623
|
),
|
|
3369
|
-
/* @__PURE__ */ (0,
|
|
3624
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_icons_react11.IconX, { className: "w-[30px] h-[30px] cursor-pointer", onClick: () => handleCancel(kpi.id) })
|
|
3370
3625
|
]
|
|
3371
3626
|
}
|
|
3372
3627
|
)
|
|
3373
|
-
] }) : /* @__PURE__ */ (0,
|
|
3374
|
-
/* @__PURE__ */ (0,
|
|
3375
|
-
/* @__PURE__ */ (0,
|
|
3376
|
-
/* @__PURE__ */ (0,
|
|
3377
|
-
/* @__PURE__ */ (0,
|
|
3378
|
-
/* @__PURE__ */ (0,
|
|
3379
|
-
/* @__PURE__ */ (0,
|
|
3628
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
|
|
3629
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "body-1", children: kpi.name }),
|
|
3630
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "body-1", children: kpi.value }),
|
|
3631
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "body-1", children: kpi.unit }),
|
|
3632
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex gap-3 justify-end", children: [
|
|
3633
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_icons_react11.IconPencil, { className: "w-[30px] h-[30px] cursor-pointer", onClick: () => handleEdit(kpi.id) }),
|
|
3634
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_icons_react11.IconTrash, { className: "w-[30px] h-[30px] cursor-pointer", onClick: () => handleDelete(kpi.id) })
|
|
3380
3635
|
] })
|
|
3381
3636
|
] })
|
|
3382
3637
|
]
|
|
@@ -3384,9 +3639,9 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3384
3639
|
kpi.id
|
|
3385
3640
|
)) })
|
|
3386
3641
|
] }),
|
|
3387
|
-
type === "text" && /* @__PURE__ */ (0,
|
|
3388
|
-
/* @__PURE__ */ (0,
|
|
3389
|
-
/* @__PURE__ */ (0,
|
|
3642
|
+
type === "text" && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "space-y-4", children: [
|
|
3643
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "grid grid-cols-[1fr_50px] w-full gap-[24px] items-start", children: [
|
|
3644
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3390
3645
|
InputField,
|
|
3391
3646
|
{
|
|
3392
3647
|
value: nameKpi,
|
|
@@ -3398,7 +3653,7 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3398
3653
|
error: errors.nameKpi
|
|
3399
3654
|
}
|
|
3400
3655
|
),
|
|
3401
|
-
/* @__PURE__ */ (0,
|
|
3656
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: `flex justify-end mt-[28px]`, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3402
3657
|
import_icons_react11.IconCirclePlus,
|
|
3403
3658
|
{
|
|
3404
3659
|
className: "w-[40px] h-[40px] cursor-pointer hover:scale-110 transition",
|
|
@@ -3407,13 +3662,13 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3407
3662
|
}
|
|
3408
3663
|
) })
|
|
3409
3664
|
] }),
|
|
3410
|
-
/* @__PURE__ */ (0,
|
|
3411
|
-
/* @__PURE__ */ (0,
|
|
3665
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { children: kpiList.map((kpi, index) => /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "grid grid-cols-[30px_1fr_80px] items-start py-2 body-1 gap-[8px]", children: [
|
|
3666
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("p", { className: `body-1 ${kpi.isEditing ? "mt-[12px]" : ""}`, children: [
|
|
3412
3667
|
index + 1,
|
|
3413
3668
|
"."
|
|
3414
3669
|
] }),
|
|
3415
|
-
kpi.isEditing ? /* @__PURE__ */ (0,
|
|
3416
|
-
/* @__PURE__ */ (0,
|
|
3670
|
+
kpi.isEditing ? /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
|
|
3671
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3417
3672
|
InputField,
|
|
3418
3673
|
{
|
|
3419
3674
|
value: kpi.name,
|
|
@@ -3423,27 +3678,27 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3423
3678
|
error: itemErrors[kpi.id]?.name
|
|
3424
3679
|
}
|
|
3425
3680
|
),
|
|
3426
|
-
/* @__PURE__ */ (0,
|
|
3681
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
|
|
3427
3682
|
"div",
|
|
3428
3683
|
{
|
|
3429
3684
|
className: `flex gap-2 justify-end self-center ${!!itemErrors[kpi.id]?.name ? "mt-[-12px]" : ""}`,
|
|
3430
3685
|
children: [
|
|
3431
|
-
/* @__PURE__ */ (0,
|
|
3686
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3432
3687
|
import_icons_react11.IconCheck,
|
|
3433
3688
|
{
|
|
3434
3689
|
className: "w-[30px] h-[30px] cursor-pointer",
|
|
3435
3690
|
onClick: () => handleSave(kpi.id, type)
|
|
3436
3691
|
}
|
|
3437
3692
|
),
|
|
3438
|
-
/* @__PURE__ */ (0,
|
|
3693
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_icons_react11.IconX, { className: "w-[30px] h-[30px] cursor-pointer", onClick: () => handleCancel(kpi.id) })
|
|
3439
3694
|
]
|
|
3440
3695
|
}
|
|
3441
3696
|
)
|
|
3442
|
-
] }) : /* @__PURE__ */ (0,
|
|
3443
|
-
/* @__PURE__ */ (0,
|
|
3444
|
-
/* @__PURE__ */ (0,
|
|
3445
|
-
/* @__PURE__ */ (0,
|
|
3446
|
-
/* @__PURE__ */ (0,
|
|
3697
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
|
|
3698
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "body-1", children: kpi.name }),
|
|
3699
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex gap-3 justify-end", children: [
|
|
3700
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_icons_react11.IconPencil, { className: "w-[30px] h-[30px] cursor-pointer", onClick: () => handleEdit(kpi.id) }),
|
|
3701
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_icons_react11.IconTrash, { className: "w-[30px] h-[30px] cursor-pointer", onClick: () => handleDelete(kpi.id) })
|
|
3447
3702
|
] })
|
|
3448
3703
|
] })
|
|
3449
3704
|
] }, kpi.id)) })
|
|
@@ -3454,17 +3709,17 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3454
3709
|
}
|
|
3455
3710
|
|
|
3456
3711
|
// src/Modal/Modal/Modal.tsx
|
|
3457
|
-
var
|
|
3458
|
-
var
|
|
3712
|
+
var import_antd19 = require("antd");
|
|
3713
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
3459
3714
|
function AntDModal({ children, isOpen, width, onCancel }) {
|
|
3460
|
-
return /* @__PURE__ */ (0,
|
|
3715
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_antd19.Modal, { open: isOpen, onCancel, width, centered: true, footer: null, children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { children }) }) });
|
|
3461
3716
|
}
|
|
3462
3717
|
|
|
3463
3718
|
// src/Indicator/Indicator/Indicator.tsx
|
|
3464
3719
|
var import_icons_react12 = require("@tabler/icons-react");
|
|
3465
|
-
var
|
|
3466
|
-
var
|
|
3467
|
-
var
|
|
3720
|
+
var import_react17 = require("react");
|
|
3721
|
+
var import_antd20 = require("antd");
|
|
3722
|
+
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
3468
3723
|
function Indicator({
|
|
3469
3724
|
option = [
|
|
3470
3725
|
{ value: "TEXT", label: "\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21" },
|
|
@@ -3474,22 +3729,22 @@ function Indicator({
|
|
|
3474
3729
|
arrayData,
|
|
3475
3730
|
setArrayData
|
|
3476
3731
|
}) {
|
|
3477
|
-
const [valueSwitch, setValueSwitch] = (0,
|
|
3478
|
-
const [cacheData, setCacheData] = (0,
|
|
3732
|
+
const [valueSwitch, setValueSwitch] = (0, import_react17.useState)("TEXT");
|
|
3733
|
+
const [cacheData, setCacheData] = (0, import_react17.useState)({
|
|
3479
3734
|
indicatorType: type,
|
|
3480
3735
|
inputType: valueSwitch,
|
|
3481
3736
|
textValue: "",
|
|
3482
3737
|
numberValue: "",
|
|
3483
3738
|
unit: ""
|
|
3484
3739
|
});
|
|
3485
|
-
const [cacheEditData, setCacheEditData] = (0,
|
|
3740
|
+
const [cacheEditData, setCacheEditData] = (0, import_react17.useState)({
|
|
3486
3741
|
indicatorType: type,
|
|
3487
3742
|
inputType: valueSwitch,
|
|
3488
3743
|
textValue: "",
|
|
3489
3744
|
numberValue: "",
|
|
3490
3745
|
unit: ""
|
|
3491
3746
|
});
|
|
3492
|
-
const [editIndex, setEditIndex] = (0,
|
|
3747
|
+
const [editIndex, setEditIndex] = (0, import_react17.useState)(null);
|
|
3493
3748
|
const handleAddIndicator = () => {
|
|
3494
3749
|
if (cacheData.textValue.trim() === "") return;
|
|
3495
3750
|
setArrayData([
|
|
@@ -3546,14 +3801,14 @@ function Indicator({
|
|
|
3546
3801
|
}));
|
|
3547
3802
|
console.log(cacheEditData);
|
|
3548
3803
|
};
|
|
3549
|
-
return /* @__PURE__ */ (0,
|
|
3550
|
-
/* @__PURE__ */ (0,
|
|
3804
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "w-full", children: [
|
|
3805
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
|
|
3551
3806
|
"div",
|
|
3552
3807
|
{
|
|
3553
3808
|
className: `space-x-2 grid ${valueSwitch === "TEXT" ? `grid-cols-[140px_1fr_50px]` : `grid-cols-[140px_1fr_200px_200px_50px]`} items-start`,
|
|
3554
3809
|
children: [
|
|
3555
|
-
/* @__PURE__ */ (0,
|
|
3556
|
-
/* @__PURE__ */ (0,
|
|
3810
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(SwitchSelect, { option, onClick: handleClick, value: valueSwitch, label: "\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17", required: true }),
|
|
3811
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
3557
3812
|
InputField,
|
|
3558
3813
|
{
|
|
3559
3814
|
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"}`,
|
|
@@ -3564,8 +3819,8 @@ function Indicator({
|
|
|
3564
3819
|
required: true
|
|
3565
3820
|
}
|
|
3566
3821
|
),
|
|
3567
|
-
valueSwitch === "NUMBER" && /* @__PURE__ */ (0,
|
|
3568
|
-
/* @__PURE__ */ (0,
|
|
3822
|
+
valueSwitch === "NUMBER" && /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_jsx_runtime40.Fragment, { children: [
|
|
3823
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
3569
3824
|
InputFieldNumber,
|
|
3570
3825
|
{
|
|
3571
3826
|
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"}`,
|
|
@@ -3576,7 +3831,7 @@ function Indicator({
|
|
|
3576
3831
|
required: true
|
|
3577
3832
|
}
|
|
3578
3833
|
),
|
|
3579
|
-
/* @__PURE__ */ (0,
|
|
3834
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
3580
3835
|
InputField,
|
|
3581
3836
|
{
|
|
3582
3837
|
label: `\u0E2B\u0E19\u0E48\u0E27\u0E22`,
|
|
@@ -3588,18 +3843,18 @@ function Indicator({
|
|
|
3588
3843
|
}
|
|
3589
3844
|
)
|
|
3590
3845
|
] }),
|
|
3591
|
-
/* @__PURE__ */ (0,
|
|
3846
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_icons_react12.IconCirclePlus, { onClick: handleAddIndicator, className: "mt-7 cursor-pointer", size: 32 })
|
|
3592
3847
|
]
|
|
3593
3848
|
}
|
|
3594
3849
|
),
|
|
3595
|
-
/* @__PURE__ */ (0,
|
|
3850
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_jsx_runtime40.Fragment, { children: arrayData.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
|
|
3596
3851
|
"div",
|
|
3597
3852
|
{
|
|
3598
3853
|
className: `space-y-4 grid ${item.inputType === "TEXT" ? `grid-cols-[140px_1fr_50px_50px]` : `grid-cols-[140px_1fr_200px_150px_50px_50px]`} items-start`,
|
|
3599
3854
|
children: [
|
|
3600
|
-
/* @__PURE__ */ (0,
|
|
3601
|
-
index === editIndex ? /* @__PURE__ */ (0,
|
|
3602
|
-
|
|
3855
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "body-1 mt-2", children: item.inputType === "TEXT" ? "\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21" : "\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02" }),
|
|
3856
|
+
index === editIndex ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
3857
|
+
import_antd20.Input,
|
|
3603
3858
|
{
|
|
3604
3859
|
className: "body-1 mt-2",
|
|
3605
3860
|
variant: "underlined",
|
|
@@ -3607,10 +3862,10 @@ function Indicator({
|
|
|
3607
3862
|
name: "textValue",
|
|
3608
3863
|
onChange: (e) => handleChangeEditCashData(e)
|
|
3609
3864
|
}
|
|
3610
|
-
) : /* @__PURE__ */ (0,
|
|
3611
|
-
item.inputType === "NUMBER" && /* @__PURE__ */ (0,
|
|
3612
|
-
index === editIndex ? /* @__PURE__ */ (0,
|
|
3613
|
-
|
|
3865
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "body-1 mt-2", children: item.textValue }),
|
|
3866
|
+
item.inputType === "NUMBER" && /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_jsx_runtime40.Fragment, { children: [
|
|
3867
|
+
index === editIndex ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
3868
|
+
import_antd20.Input,
|
|
3614
3869
|
{
|
|
3615
3870
|
className: "body-1 mt-2",
|
|
3616
3871
|
variant: "underlined",
|
|
@@ -3618,9 +3873,9 @@ function Indicator({
|
|
|
3618
3873
|
name: "numberValue",
|
|
3619
3874
|
onChange: (e) => handleChangeEditCashData(e)
|
|
3620
3875
|
}
|
|
3621
|
-
) : /* @__PURE__ */ (0,
|
|
3622
|
-
index === editIndex ? /* @__PURE__ */ (0,
|
|
3623
|
-
|
|
3876
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "body-1 mt-2", children: item.numberValue }),
|
|
3877
|
+
index === editIndex ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
3878
|
+
import_antd20.Input,
|
|
3624
3879
|
{
|
|
3625
3880
|
className: "body-1 mt-2",
|
|
3626
3881
|
variant: "underlined",
|
|
@@ -3628,19 +3883,19 @@ function Indicator({
|
|
|
3628
3883
|
name: "unit",
|
|
3629
3884
|
onChange: (e) => handleChangeEditCashData(e)
|
|
3630
3885
|
}
|
|
3631
|
-
) : /* @__PURE__ */ (0,
|
|
3886
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "body-1 mt-2", children: item.unit })
|
|
3632
3887
|
] }),
|
|
3633
|
-
/* @__PURE__ */ (0,
|
|
3634
|
-
/* @__PURE__ */ (0,
|
|
3888
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "body-1 mt-2 flex", children: editIndex !== null ? editIndex === index ? /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "flex", children: [
|
|
3889
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
3635
3890
|
import_icons_react12.IconCheck,
|
|
3636
3891
|
{
|
|
3637
3892
|
className: "cursor-pointer text-green-600",
|
|
3638
3893
|
onClick: () => handleConfirmEditIndicator(index)
|
|
3639
3894
|
}
|
|
3640
3895
|
),
|
|
3641
|
-
/* @__PURE__ */ (0,
|
|
3642
|
-
] }) : void 0 : /* @__PURE__ */ (0,
|
|
3643
|
-
/* @__PURE__ */ (0,
|
|
3896
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_icons_react12.IconX, { className: "cursor-pointer text-red-600", onClick: handleCancelEditIndicator })
|
|
3897
|
+
] }) : void 0 : /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_icons_react12.IconPencil, { className: "cursor-pointer", onClick: () => handleEditIndicator(index) }) }),
|
|
3898
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "body-1 mt-2 cursor-pointer", children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_icons_react12.IconTrash, { onClick: () => handleDeleteIndicator(index) }) })
|
|
3644
3899
|
]
|
|
3645
3900
|
}
|
|
3646
3901
|
)) })
|
|
@@ -3649,31 +3904,31 @@ function Indicator({
|
|
|
3649
3904
|
|
|
3650
3905
|
// src/FilterPopUp/FilterPopUp.tsx
|
|
3651
3906
|
var import_icons_react13 = require("@tabler/icons-react");
|
|
3652
|
-
var
|
|
3653
|
-
var
|
|
3907
|
+
var import_react18 = require("react");
|
|
3908
|
+
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
3654
3909
|
var FilterPopUp = (filter) => {
|
|
3655
|
-
const [isAction, setIsAction] = (0,
|
|
3656
|
-
const [filterArray, setFilterArray] = (0,
|
|
3910
|
+
const [isAction, setIsAction] = (0, import_react18.useState)(true);
|
|
3911
|
+
const [filterArray, setFilterArray] = (0, import_react18.useState)([""]);
|
|
3657
3912
|
const handleClearFilter = () => {
|
|
3658
3913
|
setFilterArray([]);
|
|
3659
3914
|
};
|
|
3660
3915
|
const handleSubmitFilter = () => {
|
|
3661
3916
|
filter.handleSearch(filterArray);
|
|
3662
3917
|
};
|
|
3663
|
-
return /* @__PURE__ */ (0,
|
|
3664
|
-
/* @__PURE__ */ (0,
|
|
3665
|
-
/* @__PURE__ */ (0,
|
|
3918
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "relative", children: [
|
|
3919
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("button", { className: "flex px-2 py-1 rounded-lg border-1", onClick: () => setIsAction(!isAction), children: [
|
|
3920
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_icons_react13.IconFilter, {}),
|
|
3666
3921
|
"filter"
|
|
3667
3922
|
] }),
|
|
3668
|
-
isAction ? /* @__PURE__ */ (0,
|
|
3669
|
-
/* @__PURE__ */ (0,
|
|
3670
|
-
/* @__PURE__ */ (0,
|
|
3671
|
-
/* @__PURE__ */ (0,
|
|
3672
|
-
/* @__PURE__ */ (0,
|
|
3923
|
+
isAction ? /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "absolute bg-white p-5 rounded-lg shadow-2xl w-[600px]", children: [
|
|
3924
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "flex justify-end", children: [
|
|
3925
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "flex justify-end text-nowrap gap-2", children: [
|
|
3926
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(GhostButton, { title: "\u0E43\u0E0A\u0E49\u0E1F\u0E34\u0E25\u0E40\u0E15\u0E2D\u0E23\u0E4C", onClick: handleSubmitFilter, iconLeft: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_icons_react13.IconCheck, {}) }),
|
|
3927
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(GhostButton, { title: "\u0E25\u0E49\u0E32\u0E07\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14", onClick: handleClearFilter, iconLeft: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_icons_react13.IconTrash, {}) })
|
|
3673
3928
|
] }),
|
|
3674
3929
|
""
|
|
3675
3930
|
] }),
|
|
3676
|
-
/* @__PURE__ */ (0,
|
|
3931
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
3677
3932
|
SelectCustom,
|
|
3678
3933
|
{
|
|
3679
3934
|
options: filter.selectionFilter,
|
|
@@ -3696,6 +3951,7 @@ var FilterPopUp = (filter) => {
|
|
|
3696
3951
|
ColorPickerBasic,
|
|
3697
3952
|
DataTable,
|
|
3698
3953
|
DatePickerBasic,
|
|
3954
|
+
DatePickerRange,
|
|
3699
3955
|
FileUploader,
|
|
3700
3956
|
FilterPopUp,
|
|
3701
3957
|
GhostButton,
|