gantt-lib 0.60.1 → 0.60.2
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.js +36 -13
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +36 -13
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -3329,6 +3329,7 @@ var DatePicker = ({
|
|
|
3329
3329
|
}) => {
|
|
3330
3330
|
const [open, setOpen] = (0, import_react9.useState)(false);
|
|
3331
3331
|
const [inputValue, setInputValue] = (0, import_react9.useState)("");
|
|
3332
|
+
const [draftDate, setDraftDate] = (0, import_react9.useState)(void 0);
|
|
3332
3333
|
const dateInputRef = (0, import_react9.useRef)(null);
|
|
3333
3334
|
const segIdxRef = (0, import_react9.useRef)(0);
|
|
3334
3335
|
const charPosRef = (0, import_react9.useRef)(0);
|
|
@@ -3337,13 +3338,18 @@ var DatePicker = ({
|
|
|
3337
3338
|
const d = /* @__PURE__ */ new Date(value + "T00:00:00Z");
|
|
3338
3339
|
return (0, import_date_fns3.isValid)(d) ? d : void 0;
|
|
3339
3340
|
})();
|
|
3341
|
+
const activeDate = draftDate ?? selectedDate;
|
|
3340
3342
|
const displayValue = selectedDate ? formatUTCDate(selectedDate, displayFormat) : placeholder;
|
|
3341
3343
|
(0, import_react9.useEffect)(() => {
|
|
3342
3344
|
if (value) {
|
|
3343
3345
|
const d = /* @__PURE__ */ new Date(value + "T00:00:00Z");
|
|
3344
|
-
if ((0, import_date_fns3.isValid)(d))
|
|
3346
|
+
if ((0, import_date_fns3.isValid)(d)) {
|
|
3347
|
+
setInputValue(formatUTCDate(d, "dd.MM.yy"));
|
|
3348
|
+
setDraftDate(void 0);
|
|
3349
|
+
}
|
|
3345
3350
|
} else {
|
|
3346
3351
|
setInputValue("");
|
|
3352
|
+
setDraftDate(void 0);
|
|
3347
3353
|
}
|
|
3348
3354
|
}, [value]);
|
|
3349
3355
|
const selectSegByIdx = (0, import_react9.useCallback)((idx) => {
|
|
@@ -3388,31 +3394,38 @@ var DatePicker = ({
|
|
|
3388
3394
|
const updateFromDate = (0, import_react9.useCallback)((newDate) => {
|
|
3389
3395
|
if (!(0, import_date_fns3.isValid)(newDate)) return;
|
|
3390
3396
|
setInputValue(formatUTCDate(newDate, "dd.MM.yy"));
|
|
3397
|
+
setDraftDate(newDate);
|
|
3398
|
+
}, []);
|
|
3399
|
+
const commitDate = (0, import_react9.useCallback)((dateToCommit) => {
|
|
3400
|
+
const nextDate = dateToCommit ?? draftDate ?? selectedDate;
|
|
3401
|
+
if (!nextDate || !(0, import_date_fns3.isValid)(nextDate)) return;
|
|
3391
3402
|
const iso = [
|
|
3392
|
-
|
|
3393
|
-
String(
|
|
3394
|
-
String(
|
|
3403
|
+
nextDate.getUTCFullYear(),
|
|
3404
|
+
String(nextDate.getUTCMonth() + 1).padStart(2, "0"),
|
|
3405
|
+
String(nextDate.getUTCDate()).padStart(2, "0")
|
|
3395
3406
|
].join("-");
|
|
3407
|
+
if (iso === value) return;
|
|
3396
3408
|
onChange?.(iso);
|
|
3397
|
-
}, [onChange]);
|
|
3409
|
+
}, [draftDate, onChange, selectedDate, value]);
|
|
3398
3410
|
const handleCalendarSelect = (0, import_react9.useCallback)(
|
|
3399
3411
|
(day) => {
|
|
3400
3412
|
const normalizedDay = businessDays && isWeekend3 && isWeekend3(day) ? snapToBusinessDay(day, 1, isWeekend3) : day;
|
|
3401
3413
|
updateFromDate(normalizedDay);
|
|
3414
|
+
commitDate(normalizedDay);
|
|
3402
3415
|
setOpen(false);
|
|
3403
3416
|
},
|
|
3404
|
-
[
|
|
3417
|
+
[businessDays, commitDate, isWeekend3, updateFromDate]
|
|
3405
3418
|
);
|
|
3406
3419
|
const handleDayShift = (0, import_react9.useCallback)(
|
|
3407
3420
|
(delta) => {
|
|
3408
|
-
const base =
|
|
3421
|
+
const base = activeDate ?? /* @__PURE__ */ new Date();
|
|
3409
3422
|
if (businessDays && isWeekend3) {
|
|
3410
3423
|
updateFromDate(shiftByBusinessDays(base, delta, isWeekend3));
|
|
3411
3424
|
} else {
|
|
3412
3425
|
updateFromDate((0, import_date_fns3.addDays)(base, delta));
|
|
3413
3426
|
}
|
|
3414
3427
|
},
|
|
3415
|
-
[
|
|
3428
|
+
[activeDate, updateFromDate, businessDays, isWeekend3]
|
|
3416
3429
|
);
|
|
3417
3430
|
const handleTriggerKeyDown = (0, import_react9.useCallback)((e) => {
|
|
3418
3431
|
if (disabled) return;
|
|
@@ -3443,13 +3456,14 @@ var DatePicker = ({
|
|
|
3443
3456
|
if (e.key === "Enter") {
|
|
3444
3457
|
e.preventDefault();
|
|
3445
3458
|
e.stopPropagation();
|
|
3459
|
+
commitDate();
|
|
3446
3460
|
setOpen(false);
|
|
3447
3461
|
return;
|
|
3448
3462
|
}
|
|
3449
3463
|
if (e.key === "ArrowUp" || e.key === "ArrowDown") {
|
|
3450
3464
|
e.preventDefault();
|
|
3451
3465
|
e.stopPropagation();
|
|
3452
|
-
const base =
|
|
3466
|
+
const base = activeDate ?? /* @__PURE__ */ new Date();
|
|
3453
3467
|
let newDate = base;
|
|
3454
3468
|
if (seg.label === "day") newDate = e.key === "ArrowUp" ? (0, import_date_fns3.addDays)(base, 1) : (0, import_date_fns3.subDays)(base, 1);
|
|
3455
3469
|
if (seg.label === "month") newDate = e.key === "ArrowUp" ? (0, import_date_fns3.addMonths)(base, 1) : (0, import_date_fns3.subMonths)(base, 1);
|
|
@@ -3527,8 +3541,14 @@ var DatePicker = ({
|
|
|
3527
3541
|
);
|
|
3528
3542
|
}
|
|
3529
3543
|
}
|
|
3530
|
-
}, [
|
|
3531
|
-
|
|
3544
|
+
}, [activeDate, businessDays, commitDate, isWeekend3, selectSegByIdx, updateFromDate]);
|
|
3545
|
+
const handleOpenChange = (0, import_react9.useCallback)((nextOpen) => {
|
|
3546
|
+
if (!nextOpen && open) {
|
|
3547
|
+
commitDate();
|
|
3548
|
+
}
|
|
3549
|
+
setOpen(nextOpen);
|
|
3550
|
+
}, [commitDate, open]);
|
|
3551
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(Popover, { open, onOpenChange: disabled ? void 0 : handleOpenChange, children: [
|
|
3532
3552
|
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
3533
3553
|
"button",
|
|
3534
3554
|
{
|
|
@@ -3564,6 +3584,9 @@ var DatePicker = ({
|
|
|
3564
3584
|
onFocus: handleFocus,
|
|
3565
3585
|
onMouseDown: handleMouseDown,
|
|
3566
3586
|
onKeyDown: handleKeyDown,
|
|
3587
|
+
onBlur: () => {
|
|
3588
|
+
commitDate();
|
|
3589
|
+
},
|
|
3567
3590
|
spellCheck: false,
|
|
3568
3591
|
autoComplete: "off"
|
|
3569
3592
|
}
|
|
@@ -3575,9 +3598,9 @@ var DatePicker = ({
|
|
|
3575
3598
|
Calendar,
|
|
3576
3599
|
{
|
|
3577
3600
|
mode: "single",
|
|
3578
|
-
selected:
|
|
3601
|
+
selected: activeDate,
|
|
3579
3602
|
onSelect: handleCalendarSelect,
|
|
3580
|
-
initialDate:
|
|
3603
|
+
initialDate: activeDate,
|
|
3581
3604
|
isWeekend: isWeekend3
|
|
3582
3605
|
}
|
|
3583
3606
|
)
|