From 05d1d67936a0b73ae32a018ae441d896944dd6df Mon Sep 17 00:00:00 2001 From: Fenris Wolf Date: Tue, 31 Mar 2026 19:15:57 +0200 Subject: [PATCH] [fix] fallback-datetime-input --- source/helpers.ts | 127 +++++++++++++++++++++++++++++++--------------- 1 file changed, 86 insertions(+), 41 deletions(-) diff --git a/source/helpers.ts b/source/helpers.ts index 491a5c1..c475413 100644 --- a/source/helpers.ts +++ b/source/helpers.ts @@ -316,7 +316,11 @@ namespace _dali.helpers date : string; time : string; }, - lib_plankton.pit.type_datetime + ( + null + | + lib_plankton.pit.type_datetime + ) >( new lib_plankton.zoo_input.class_input_group( [ @@ -343,50 +347,91 @@ namespace _dali.helpers ] ), (inner) => { - const date_parts : Array = inner.date.split("-"); - const time_parts : Array = inner.time.split(":"); - const datetime_raw : lib_plankton.pit.type_datetime = { - "timezone_shift": 0, - "date": { - "year": parseInt(date_parts[0]), - "month": parseInt(date_parts[1]), - "day": parseInt(date_parts[2]), - }, - "time": { - "hour": parseInt(time_parts[0]), - "minute": parseInt(time_parts[1]), - "second": 0, - }, - }; - return { - "timezone_shift": ( - _dali.conf.get().misc.use_central_europe_specific_datetime_inputs + if (inner === null) + { + return null; + } + else + { + const date_parts : Array = ((inner.date === "") ? null : inner.date.split("-")); + const time_parts : (null | Array) = ((inner.time === "") ? null : inner.time.split(":")); + const datetime_raw : (null | lib_plankton.pit.type_datetime) = ( + (date_parts === null) ? - lib_plankton.pit.timezone_shift_ce(lib_plankton.pit.from_datetime(datetime_raw)) + null : - 0 - ), - "date": datetime_raw.date, - "time": datetime_raw.time, - }; + { + "timezone_shift": 0, + "date": { + "year": parseInt(date_parts[0]), + "month": parseInt(date_parts[1]), + "day": parseInt(date_parts[2]), + }, + "time": ( + (time_parts === null) + ? + null + : + { + "hour": parseInt(time_parts[0]), + "minute": parseInt(time_parts[1]), + "second": 0, + } + ), + } + ); + return ( + (datetime_raw === null) + ? + null + : + { + "timezone_shift": ( + _dali.conf.get().misc.use_central_europe_specific_datetime_inputs + ? + lib_plankton.pit.timezone_shift_ce(lib_plankton.pit.from_datetime(datetime_raw)) + : + 0 + ), + "date": datetime_raw.date, + "time": datetime_raw.time, + } + ); + } }, (outer) => { - return { - "date": lib_plankton.string.coin( - "{{year}}-{{month}}-{{day}}", - { - "year": outer.date.year.toFixed(0).padStart(4, "0"), - "month": outer.date.month.toFixed(0).padStart(2, "0"), - "day": outer.date.day.toFixed(0).padStart(2, "0"), - } - ), - "time": lib_plankton.string.coin( - "{{hour}}:{{minute}}", - { - "hour": outer.time.hour.toFixed(0).padStart(2, "0"), - "minute": outer.time.minute.toFixed(0).padStart(2, "0"), - } - ), + if (outer === null) + { + return { + "date": "", + "time": "", + }; + } + else + { + return { + "date": lib_plankton.string.coin( + "{{year}}-{{month}}-{{day}}", + { + "year": outer.date.year.toFixed(0).padStart(4, "0"), + "month": outer.date.month.toFixed(0).padStart(2, "0"), + "day": outer.date.day.toFixed(0).padStart(2, "0"), + } + ), + "time": ( + (outer.time === null) + ? + "" + : + lib_plankton.string.coin( + "{{hour}}:{{minute}}", + { + "hour": outer.time.hour.toFixed(0).padStart(2, "0"), + "minute": outer.time.minute.toFixed(0).padStart(2, "0"), + } + ) + ), + }; } } )