soda-heroui 0.8.9 → 0.9.0
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/components/FormCalendar.cjs +2 -2
- package/dist/components/FormCalendar.d.ts +3 -1
- package/dist/components/FormCalendar.js +2 -2
- package/dist/components/FormDateInput.cjs +2 -2
- package/dist/components/FormDateInput.d.ts +3 -1
- package/dist/components/FormDateInput.js +2 -2
- package/dist/components/FormDatePicker.cjs +2 -2
- package/dist/components/FormDatePicker.d.ts +3 -1
- package/dist/components/FormDatePicker.js +2 -2
- package/dist/components/FormDateRangePicker.cjs +2 -2
- package/dist/components/FormDateRangePicker.d.ts +3 -1
- package/dist/components/FormDateRangePicker.js +2 -2
- package/dist/components/FormRangeCalendar.cjs +8 -8
- package/dist/components/FormRangeCalendar.d.ts +5 -3
- package/dist/components/FormRangeCalendar.js +8 -8
- package/dist/components/FormTimeInput.cjs +6 -6
- package/dist/components/FormTimeInput.d.ts +5 -3
- package/dist/components/FormTimeInput.js +6 -6
- package/dist/utils/parseTime.cjs +32 -3
- package/dist/utils/parseTime.d.ts +6 -2
- package/dist/utils/parseTime.js +20 -3
- package/package.json +3 -3
- package/src/components/FormCalendar.tsx +13 -3
- package/src/components/FormDateInput.tsx +6 -3
- package/src/components/FormDatePicker.tsx +5 -2
- package/src/components/FormDateRangePicker.tsx +9 -1
- package/src/components/FormRangeCalendar.tsx +22 -9
- package/src/components/FormTimeInput.tsx +8 -7
- package/src/utils/parseTime.ts +22 -3
|
@@ -33,11 +33,11 @@ const react_namespaceObject = require("@heroui/react");
|
|
|
33
33
|
const getFieldProps_cjs_namespaceObject = require("../utils/getFieldProps.cjs");
|
|
34
34
|
const external_FormProvider_cjs_namespaceObject = require("./FormProvider.cjs");
|
|
35
35
|
const external_FormTimeInput_cjs_namespaceObject = require("./FormTimeInput.cjs");
|
|
36
|
-
function FormCalendar({ field, valueMode, emptyValue, component: Calendar2 = react_namespaceObject.Calendar, ...rest }) {
|
|
36
|
+
function FormCalendar({ field, valueMode, emptyValue, dateMode, component: Calendar2 = react_namespaceObject.Calendar, ...rest }) {
|
|
37
37
|
const context = (0, external_react_namespaceObject.useContext)(external_FormProvider_cjs_namespaceObject.FormContext);
|
|
38
38
|
emptyValue ??= context.emptyValue;
|
|
39
39
|
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Calendar2, {
|
|
40
|
-
focusedValue: (0, external_FormTimeInput_cjs_namespaceObject.getFieldValue)(field),
|
|
40
|
+
focusedValue: (0, external_FormTimeInput_cjs_namespaceObject.getFieldValue)(field, dateMode),
|
|
41
41
|
onFocusChange: (0, external_FormTimeInput_cjs_namespaceObject.getOnChange)({
|
|
42
42
|
field,
|
|
43
43
|
valueMode,
|
|
@@ -2,11 +2,13 @@ import { ReactNode } from "react";
|
|
|
2
2
|
import { Calendar, CalendarProps, DateValue } from "@heroui/react";
|
|
3
3
|
import { FieldComponentProps } from "soda-tanstack-form";
|
|
4
4
|
import { StrictOmit } from "soda-type";
|
|
5
|
+
import { DateMode } from "../utils/parseTime";
|
|
5
6
|
import { EmptyValue } from "./FormProvider";
|
|
6
7
|
import { TimeValueMode, TimeValueModeMap } from "./FormTimeInput";
|
|
7
8
|
export interface FormCalendarProps<ValueMode extends TimeValueMode = "date", FieldValue extends TimeValueModeMap<ValueMode> | null | undefined = TimeValueModeMap<ValueMode> | null | undefined> extends StrictOmit<FieldComponentProps<typeof Calendar, FieldValue>, never> {
|
|
8
9
|
valueMode?: ValueMode;
|
|
9
10
|
emptyValue?: EmptyValue;
|
|
11
|
+
dateMode?: DateMode;
|
|
10
12
|
component?: <T extends DateValue>(props: CalendarProps<T>) => ReactNode;
|
|
11
13
|
}
|
|
12
|
-
export declare function FormCalendar<ValueMode extends TimeValueMode = "date", FieldValue extends TimeValueModeMap<ValueMode> | null | undefined = TimeValueModeMap<ValueMode> | null | undefined>({ field, valueMode, emptyValue, component: Calendar2, ...rest }: FormCalendarProps<ValueMode, FieldValue>): ReactNode;
|
|
14
|
+
export declare function FormCalendar<ValueMode extends TimeValueMode = "date", FieldValue extends TimeValueModeMap<ValueMode> | null | undefined = TimeValueModeMap<ValueMode> | null | undefined>({ field, valueMode, emptyValue, dateMode, component: Calendar2, ...rest }: FormCalendarProps<ValueMode, FieldValue>): ReactNode;
|
|
@@ -5,11 +5,11 @@ import * as __WEBPACK_EXTERNAL_MODULE__heroui_react_7b65ca80__ from "@heroui/rea
|
|
|
5
5
|
import * as __WEBPACK_EXTERNAL_MODULE__utils_getFieldProps_js_0615ad2a__ from "../utils/getFieldProps.js";
|
|
6
6
|
import * as __WEBPACK_EXTERNAL_MODULE__FormProvider_js_a80efa64__ from "./FormProvider.js";
|
|
7
7
|
import * as __WEBPACK_EXTERNAL_MODULE__FormTimeInput_js_9364800a__ from "./FormTimeInput.js";
|
|
8
|
-
function FormCalendar({ field, valueMode, emptyValue, component: Calendar2 = __WEBPACK_EXTERNAL_MODULE__heroui_react_7b65ca80__.Calendar, ...rest }) {
|
|
8
|
+
function FormCalendar({ field, valueMode, emptyValue, dateMode, component: Calendar2 = __WEBPACK_EXTERNAL_MODULE__heroui_react_7b65ca80__.Calendar, ...rest }) {
|
|
9
9
|
const context = (0, __WEBPACK_EXTERNAL_MODULE_react__.useContext)(__WEBPACK_EXTERNAL_MODULE__FormProvider_js_a80efa64__.FormContext);
|
|
10
10
|
emptyValue ??= context.emptyValue;
|
|
11
11
|
return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Calendar2, {
|
|
12
|
-
focusedValue: (0, __WEBPACK_EXTERNAL_MODULE__FormTimeInput_js_9364800a__.getFieldValue)(field),
|
|
12
|
+
focusedValue: (0, __WEBPACK_EXTERNAL_MODULE__FormTimeInput_js_9364800a__.getFieldValue)(field, dateMode),
|
|
13
13
|
onFocusChange: (0, __WEBPACK_EXTERNAL_MODULE__FormTimeInput_js_9364800a__.getOnChange)({
|
|
14
14
|
field,
|
|
15
15
|
valueMode,
|
|
@@ -33,11 +33,11 @@ const react_namespaceObject = require("@heroui/react");
|
|
|
33
33
|
const getFieldProps_cjs_namespaceObject = require("../utils/getFieldProps.cjs");
|
|
34
34
|
const external_FormProvider_cjs_namespaceObject = require("./FormProvider.cjs");
|
|
35
35
|
const external_FormTimeInput_cjs_namespaceObject = require("./FormTimeInput.cjs");
|
|
36
|
-
function FormDateInput({ field, valueMode, emptyValue, component: DateInput2 = react_namespaceObject.DateInput, ...rest }) {
|
|
36
|
+
function FormDateInput({ field, valueMode, emptyValue, dateMode, component: DateInput2 = react_namespaceObject.DateInput, ...rest }) {
|
|
37
37
|
const context = (0, external_react_namespaceObject.useContext)(external_FormProvider_cjs_namespaceObject.FormContext);
|
|
38
38
|
emptyValue ??= context.emptyValue;
|
|
39
39
|
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(DateInput2, {
|
|
40
|
-
value: (0, external_FormTimeInput_cjs_namespaceObject.getFieldValue)(field),
|
|
40
|
+
value: (0, external_FormTimeInput_cjs_namespaceObject.getFieldValue)(field, dateMode),
|
|
41
41
|
onChange: (0, external_FormTimeInput_cjs_namespaceObject.getOnChange)({
|
|
42
42
|
field,
|
|
43
43
|
valueMode,
|
|
@@ -2,11 +2,13 @@ import { ReactNode } from "react";
|
|
|
2
2
|
import { DateInput, DateInputProps, DateValue } from "@heroui/react";
|
|
3
3
|
import { FieldComponentProps } from "soda-tanstack-form";
|
|
4
4
|
import { StrictOmit } from "soda-type";
|
|
5
|
+
import { DateMode } from "../utils/parseTime";
|
|
5
6
|
import { EmptyValue } from "./FormProvider";
|
|
6
7
|
import { TimeValueMode, TimeValueModeMap } from "./FormTimeInput";
|
|
7
8
|
export interface FormDateInputProps<ValueMode extends TimeValueMode = "date", FieldValue extends TimeValueModeMap<ValueMode> | null | undefined = TimeValueModeMap<ValueMode> | null | undefined> extends StrictOmit<FieldComponentProps<typeof DateInput, FieldValue>, never> {
|
|
8
9
|
valueMode?: ValueMode;
|
|
9
10
|
emptyValue?: EmptyValue;
|
|
11
|
+
dateMode?: DateMode;
|
|
10
12
|
component?: <T extends DateValue>(props: DateInputProps<T>) => ReactNode;
|
|
11
13
|
}
|
|
12
|
-
export declare function FormDateInput<ValueMode extends TimeValueMode = "date", FieldValue extends TimeValueModeMap<ValueMode> | null | undefined = TimeValueModeMap<ValueMode> | null | undefined>({ field, valueMode, emptyValue, component: DateInput2, ...rest }: FormDateInputProps<ValueMode, FieldValue>): ReactNode;
|
|
14
|
+
export declare function FormDateInput<ValueMode extends TimeValueMode = "date", FieldValue extends TimeValueModeMap<ValueMode> | null | undefined = TimeValueModeMap<ValueMode> | null | undefined>({ field, valueMode, emptyValue, dateMode, component: DateInput2, ...rest }: FormDateInputProps<ValueMode, FieldValue>): ReactNode;
|
|
@@ -5,11 +5,11 @@ import * as __WEBPACK_EXTERNAL_MODULE__heroui_react_7b65ca80__ from "@heroui/rea
|
|
|
5
5
|
import * as __WEBPACK_EXTERNAL_MODULE__utils_getFieldProps_js_0615ad2a__ from "../utils/getFieldProps.js";
|
|
6
6
|
import * as __WEBPACK_EXTERNAL_MODULE__FormProvider_js_a80efa64__ from "./FormProvider.js";
|
|
7
7
|
import * as __WEBPACK_EXTERNAL_MODULE__FormTimeInput_js_9364800a__ from "./FormTimeInput.js";
|
|
8
|
-
function FormDateInput({ field, valueMode, emptyValue, component: DateInput2 = __WEBPACK_EXTERNAL_MODULE__heroui_react_7b65ca80__.DateInput, ...rest }) {
|
|
8
|
+
function FormDateInput({ field, valueMode, emptyValue, dateMode, component: DateInput2 = __WEBPACK_EXTERNAL_MODULE__heroui_react_7b65ca80__.DateInput, ...rest }) {
|
|
9
9
|
const context = (0, __WEBPACK_EXTERNAL_MODULE_react__.useContext)(__WEBPACK_EXTERNAL_MODULE__FormProvider_js_a80efa64__.FormContext);
|
|
10
10
|
emptyValue ??= context.emptyValue;
|
|
11
11
|
return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(DateInput2, {
|
|
12
|
-
value: (0, __WEBPACK_EXTERNAL_MODULE__FormTimeInput_js_9364800a__.getFieldValue)(field),
|
|
12
|
+
value: (0, __WEBPACK_EXTERNAL_MODULE__FormTimeInput_js_9364800a__.getFieldValue)(field, dateMode),
|
|
13
13
|
onChange: (0, __WEBPACK_EXTERNAL_MODULE__FormTimeInput_js_9364800a__.getOnChange)({
|
|
14
14
|
field,
|
|
15
15
|
valueMode,
|
|
@@ -33,11 +33,11 @@ const react_namespaceObject = require("@heroui/react");
|
|
|
33
33
|
const getFieldProps_cjs_namespaceObject = require("../utils/getFieldProps.cjs");
|
|
34
34
|
const external_FormProvider_cjs_namespaceObject = require("./FormProvider.cjs");
|
|
35
35
|
const external_FormTimeInput_cjs_namespaceObject = require("./FormTimeInput.cjs");
|
|
36
|
-
function FormDatePicker({ field, valueMode, emptyValue, component: DatePicker2 = react_namespaceObject.DatePicker, ...rest }) {
|
|
36
|
+
function FormDatePicker({ field, valueMode, emptyValue, dateMode, component: DatePicker2 = react_namespaceObject.DatePicker, ...rest }) {
|
|
37
37
|
const context = (0, external_react_namespaceObject.useContext)(external_FormProvider_cjs_namespaceObject.FormContext);
|
|
38
38
|
emptyValue ??= context.emptyValue;
|
|
39
39
|
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(DatePicker2, {
|
|
40
|
-
value: (0, external_FormTimeInput_cjs_namespaceObject.getFieldValue)(field),
|
|
40
|
+
value: (0, external_FormTimeInput_cjs_namespaceObject.getFieldValue)(field, dateMode),
|
|
41
41
|
onChange: (0, external_FormTimeInput_cjs_namespaceObject.getOnChange)({
|
|
42
42
|
field,
|
|
43
43
|
valueMode,
|
|
@@ -2,11 +2,13 @@ import { ReactNode } from "react";
|
|
|
2
2
|
import { DatePicker, DatePickerProps, DateValue } from "@heroui/react";
|
|
3
3
|
import { FieldComponentProps } from "soda-tanstack-form";
|
|
4
4
|
import { StrictOmit } from "soda-type";
|
|
5
|
+
import { DateMode } from "../utils/parseTime";
|
|
5
6
|
import { EmptyValue } from "./FormProvider";
|
|
6
7
|
import { TimeValueMode, TimeValueModeMap } from "./FormTimeInput";
|
|
7
8
|
export interface FormDatePickerProps<ValueMode extends TimeValueMode = "date", FieldValue extends TimeValueModeMap<ValueMode> | null | undefined = TimeValueModeMap<ValueMode> | null | undefined> extends StrictOmit<FieldComponentProps<typeof DatePicker, FieldValue>, never> {
|
|
8
9
|
valueMode?: ValueMode;
|
|
9
10
|
emptyValue?: EmptyValue;
|
|
11
|
+
dateMode?: DateMode;
|
|
10
12
|
component?: <T extends DateValue>(props: DatePickerProps<T>) => ReactNode;
|
|
11
13
|
}
|
|
12
|
-
export declare function FormDatePicker<ValueMode extends TimeValueMode = "date", FieldValue extends TimeValueModeMap<ValueMode> | null | undefined = TimeValueModeMap<ValueMode> | null | undefined>({ field, valueMode, emptyValue, component: DatePicker2, ...rest }: FormDatePickerProps<ValueMode, FieldValue>): ReactNode;
|
|
14
|
+
export declare function FormDatePicker<ValueMode extends TimeValueMode = "date", FieldValue extends TimeValueModeMap<ValueMode> | null | undefined = TimeValueModeMap<ValueMode> | null | undefined>({ field, valueMode, emptyValue, dateMode, component: DatePicker2, ...rest }: FormDatePickerProps<ValueMode, FieldValue>): ReactNode;
|
|
@@ -5,11 +5,11 @@ import * as __WEBPACK_EXTERNAL_MODULE__heroui_react_7b65ca80__ from "@heroui/rea
|
|
|
5
5
|
import * as __WEBPACK_EXTERNAL_MODULE__utils_getFieldProps_js_0615ad2a__ from "../utils/getFieldProps.js";
|
|
6
6
|
import * as __WEBPACK_EXTERNAL_MODULE__FormProvider_js_a80efa64__ from "./FormProvider.js";
|
|
7
7
|
import * as __WEBPACK_EXTERNAL_MODULE__FormTimeInput_js_9364800a__ from "./FormTimeInput.js";
|
|
8
|
-
function FormDatePicker({ field, valueMode, emptyValue, component: DatePicker2 = __WEBPACK_EXTERNAL_MODULE__heroui_react_7b65ca80__.DatePicker, ...rest }) {
|
|
8
|
+
function FormDatePicker({ field, valueMode, emptyValue, dateMode, component: DatePicker2 = __WEBPACK_EXTERNAL_MODULE__heroui_react_7b65ca80__.DatePicker, ...rest }) {
|
|
9
9
|
const context = (0, __WEBPACK_EXTERNAL_MODULE_react__.useContext)(__WEBPACK_EXTERNAL_MODULE__FormProvider_js_a80efa64__.FormContext);
|
|
10
10
|
emptyValue ??= context.emptyValue;
|
|
11
11
|
return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(DatePicker2, {
|
|
12
|
-
value: (0, __WEBPACK_EXTERNAL_MODULE__FormTimeInput_js_9364800a__.getFieldValue)(field),
|
|
12
|
+
value: (0, __WEBPACK_EXTERNAL_MODULE__FormTimeInput_js_9364800a__.getFieldValue)(field, dateMode),
|
|
13
13
|
onChange: (0, __WEBPACK_EXTERNAL_MODULE__FormTimeInput_js_9364800a__.getOnChange)({
|
|
14
14
|
field,
|
|
15
15
|
valueMode,
|
|
@@ -33,12 +33,12 @@ const react_namespaceObject = require("@heroui/react");
|
|
|
33
33
|
const getFieldProps_cjs_namespaceObject = require("../utils/getFieldProps.cjs");
|
|
34
34
|
const external_FormProvider_cjs_namespaceObject = require("./FormProvider.cjs");
|
|
35
35
|
const external_FormRangeCalendar_cjs_namespaceObject = require("./FormRangeCalendar.cjs");
|
|
36
|
-
function FormDateRangePicker({ field: _field, valueMode, emptyValue, component: DateRangePicker2 = react_namespaceObject.DateRangePicker, ...rest }) {
|
|
36
|
+
function FormDateRangePicker({ field: _field, valueMode, emptyValue, dateMode, component: DateRangePicker2 = react_namespaceObject.DateRangePicker, ...rest }) {
|
|
37
37
|
const field = _field;
|
|
38
38
|
const context = (0, external_react_namespaceObject.useContext)(external_FormProvider_cjs_namespaceObject.FormContext);
|
|
39
39
|
emptyValue ??= context.emptyValue;
|
|
40
40
|
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(DateRangePicker2, {
|
|
41
|
-
value: (0, external_FormRangeCalendar_cjs_namespaceObject.getFieldRangeValue)(field),
|
|
41
|
+
value: (0, external_FormRangeCalendar_cjs_namespaceObject.getFieldRangeValue)(field, dateMode),
|
|
42
42
|
onChange: (0, external_FormRangeCalendar_cjs_namespaceObject.getOnRangeChange)({
|
|
43
43
|
field,
|
|
44
44
|
valueMode,
|
|
@@ -2,11 +2,13 @@ import { ReactNode } from "react";
|
|
|
2
2
|
import { DateRangePicker, DateRangePickerProps, DateValue } from "@heroui/react";
|
|
3
3
|
import { FieldComponentProps } from "soda-tanstack-form";
|
|
4
4
|
import { StrictOmit } from "soda-type";
|
|
5
|
+
import { DateMode } from "../utils/parseTime";
|
|
5
6
|
import { EmptyValue } from "./FormProvider";
|
|
6
7
|
import { TimeValueMode, TimeValueModeMap } from "./FormTimeInput";
|
|
7
8
|
export interface FormDateRangePickerProps<ValueMode extends TimeValueMode = "date", FieldValue extends [TimeValueModeMap<ValueMode>, TimeValueModeMap<ValueMode>] | null | undefined = [TimeValueModeMap<ValueMode>, TimeValueModeMap<ValueMode>] | null | undefined> extends StrictOmit<FieldComponentProps<typeof DateRangePicker, FieldValue>, never> {
|
|
8
9
|
valueMode?: ValueMode;
|
|
9
10
|
emptyValue?: EmptyValue;
|
|
11
|
+
dateMode?: DateMode;
|
|
10
12
|
component?: <T extends DateValue>(props: DateRangePickerProps<T>) => ReactNode;
|
|
11
13
|
}
|
|
12
|
-
export declare function FormDateRangePicker<ValueMode extends TimeValueMode = "date", FieldValue extends [TimeValueModeMap<ValueMode>, TimeValueModeMap<ValueMode>] | null | undefined = [TimeValueModeMap<ValueMode>, TimeValueModeMap<ValueMode>] | null | undefined>({ field: _field, valueMode, emptyValue, component: DateRangePicker2, ...rest }: FormDateRangePickerProps<ValueMode, FieldValue>): ReactNode;
|
|
14
|
+
export declare function FormDateRangePicker<ValueMode extends TimeValueMode = "date", FieldValue extends [TimeValueModeMap<ValueMode>, TimeValueModeMap<ValueMode>] | null | undefined = [TimeValueModeMap<ValueMode>, TimeValueModeMap<ValueMode>] | null | undefined>({ field: _field, valueMode, emptyValue, dateMode, component: DateRangePicker2, ...rest }: FormDateRangePickerProps<ValueMode, FieldValue>): ReactNode;
|
|
@@ -5,12 +5,12 @@ import * as __WEBPACK_EXTERNAL_MODULE__heroui_react_7b65ca80__ from "@heroui/rea
|
|
|
5
5
|
import * as __WEBPACK_EXTERNAL_MODULE__utils_getFieldProps_js_0615ad2a__ from "../utils/getFieldProps.js";
|
|
6
6
|
import * as __WEBPACK_EXTERNAL_MODULE__FormProvider_js_a80efa64__ from "./FormProvider.js";
|
|
7
7
|
import * as __WEBPACK_EXTERNAL_MODULE__FormRangeCalendar_js_70d23bc2__ from "./FormRangeCalendar.js";
|
|
8
|
-
function FormDateRangePicker({ field: _field, valueMode, emptyValue, component: DateRangePicker2 = __WEBPACK_EXTERNAL_MODULE__heroui_react_7b65ca80__.DateRangePicker, ...rest }) {
|
|
8
|
+
function FormDateRangePicker({ field: _field, valueMode, emptyValue, dateMode, component: DateRangePicker2 = __WEBPACK_EXTERNAL_MODULE__heroui_react_7b65ca80__.DateRangePicker, ...rest }) {
|
|
9
9
|
const field = _field;
|
|
10
10
|
const context = (0, __WEBPACK_EXTERNAL_MODULE_react__.useContext)(__WEBPACK_EXTERNAL_MODULE__FormProvider_js_a80efa64__.FormContext);
|
|
11
11
|
emptyValue ??= context.emptyValue;
|
|
12
12
|
return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(DateRangePicker2, {
|
|
13
|
-
value: (0, __WEBPACK_EXTERNAL_MODULE__FormRangeCalendar_js_70d23bc2__.getFieldRangeValue)(field),
|
|
13
|
+
value: (0, __WEBPACK_EXTERNAL_MODULE__FormRangeCalendar_js_70d23bc2__.getFieldRangeValue)(field, dateMode),
|
|
14
14
|
onChange: (0, __WEBPACK_EXTERNAL_MODULE__FormRangeCalendar_js_70d23bc2__.getOnRangeChange)({
|
|
15
15
|
field,
|
|
16
16
|
valueMode,
|
|
@@ -35,18 +35,18 @@ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
|
|
|
35
35
|
const external_react_namespaceObject = require("react");
|
|
36
36
|
const react_namespaceObject = require("@heroui/react");
|
|
37
37
|
const external_deepsea_tools_namespaceObject = require("deepsea-tools");
|
|
38
|
-
const getTimeValue_cjs_namespaceObject = require("../utils/getTimeValue.cjs");
|
|
39
38
|
const getFieldProps_cjs_namespaceObject = require("../utils/getFieldProps.cjs");
|
|
39
|
+
const getTimeValue_cjs_namespaceObject = require("../utils/getTimeValue.cjs");
|
|
40
40
|
const parseTime_cjs_namespaceObject = require("../utils/parseTime.cjs");
|
|
41
41
|
const external_FormProvider_cjs_namespaceObject = require("./FormProvider.cjs");
|
|
42
|
-
function getRangeValue(value) {
|
|
42
|
+
function getRangeValue(value, dateMode) {
|
|
43
43
|
return (0, external_deepsea_tools_namespaceObject.isNonNullable)(value) ? {
|
|
44
|
-
start: (0, parseTime_cjs_namespaceObject.parseTime)(value[0].valueOf()),
|
|
45
|
-
end: (0, parseTime_cjs_namespaceObject.parseTime)(value[1].valueOf())
|
|
44
|
+
start: (0, parseTime_cjs_namespaceObject.parseTime)(value[0].valueOf(), dateMode),
|
|
45
|
+
end: (0, parseTime_cjs_namespaceObject.parseTime)(value[1].valueOf(), dateMode)
|
|
46
46
|
} : null;
|
|
47
47
|
}
|
|
48
|
-
function getFieldRangeValue(field) {
|
|
49
|
-
return getRangeValue(field.state.value);
|
|
48
|
+
function getFieldRangeValue(field, dateMode) {
|
|
49
|
+
return getRangeValue(field.state.value, dateMode);
|
|
50
50
|
}
|
|
51
51
|
function getRangeUpdater({ value, valueMode, emptyValue }) {
|
|
52
52
|
if (!(0, external_deepsea_tools_namespaceObject.isNonNullable)(value)) return (0, external_FormProvider_cjs_namespaceObject.getEmptyValue)(emptyValue);
|
|
@@ -71,12 +71,12 @@ function getOnRangeChange({ field, valueMode, emptyValue }) {
|
|
|
71
71
|
}));
|
|
72
72
|
};
|
|
73
73
|
}
|
|
74
|
-
function FormRangeCalendar({ field: _field, valueMode, emptyValue, component: RangeCalendar2 = react_namespaceObject.RangeCalendar, ...rest }) {
|
|
74
|
+
function FormRangeCalendar({ field: _field, valueMode, emptyValue, dateMode, component: RangeCalendar2 = react_namespaceObject.RangeCalendar, ...rest }) {
|
|
75
75
|
const field = _field;
|
|
76
76
|
const context = (0, external_react_namespaceObject.useContext)(external_FormProvider_cjs_namespaceObject.FormContext);
|
|
77
77
|
emptyValue ??= context.emptyValue;
|
|
78
78
|
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(RangeCalendar2, {
|
|
79
|
-
value: getFieldRangeValue(field),
|
|
79
|
+
value: getFieldRangeValue(field, dateMode),
|
|
80
80
|
onChange: getOnRangeChange({
|
|
81
81
|
field,
|
|
82
82
|
valueMode,
|
|
@@ -2,15 +2,17 @@ import { ReactNode, SetStateAction } from "react";
|
|
|
2
2
|
import { DateValue, RangeCalendar, RangeCalendarProps, RangeValue } from "@heroui/react";
|
|
3
3
|
import { Field, FieldComponentProps } from "soda-tanstack-form";
|
|
4
4
|
import { StrictOmit } from "soda-type";
|
|
5
|
+
import { DateMode } from "../utils/parseTime";
|
|
5
6
|
import { EmptyValue } from "./FormProvider";
|
|
6
7
|
import { TimeValueMode, TimeValueModeMap } from "./FormTimeInput";
|
|
7
8
|
export interface FormRangeCalendarProps<ValueMode extends TimeValueMode = "date", FieldValue extends [TimeValueModeMap<ValueMode>, TimeValueModeMap<ValueMode>] | null | undefined = [TimeValueModeMap<ValueMode>, TimeValueModeMap<ValueMode>] | null | undefined> extends StrictOmit<FieldComponentProps<typeof RangeCalendar, FieldValue>, never> {
|
|
8
9
|
valueMode?: ValueMode;
|
|
9
10
|
emptyValue?: EmptyValue;
|
|
11
|
+
dateMode?: DateMode;
|
|
10
12
|
component?: <T extends DateValue>(props: RangeCalendarProps<T>) => ReactNode;
|
|
11
13
|
}
|
|
12
|
-
export declare function getRangeValue(value: [Date, Date] | [number, number] | null | undefined): RangeValue<DateValue> | null;
|
|
13
|
-
export declare function getFieldRangeValue<T extends [Date, Date] | [number, number] | null | undefined>(field: Field<T
|
|
14
|
+
export declare function getRangeValue<T extends DateMode>(value: [Date, Date] | [number, number] | null | undefined, dateMode?: T): RangeValue<DateValue> | null;
|
|
15
|
+
export declare function getFieldRangeValue<T extends [Date, Date] | [number, number] | null | undefined, P extends DateMode>(field: Field<T>, dateMode?: P): RangeValue<DateValue> | null;
|
|
14
16
|
export interface GetRangeUpdaterParams {
|
|
15
17
|
value: RangeValue<DateValue> | null;
|
|
16
18
|
valueMode?: TimeValueMode;
|
|
@@ -23,4 +25,4 @@ export interface GetOnRangeChangeParams<T extends [Date, Date] | [number, number
|
|
|
23
25
|
emptyValue?: EmptyValue;
|
|
24
26
|
}
|
|
25
27
|
export declare function getOnRangeChange<T extends [Date, Date] | [number, number] | null | undefined>({ field, valueMode, emptyValue }: GetOnRangeChangeParams<T>): (value: RangeValue<DateValue> | null) => void;
|
|
26
|
-
export declare function FormRangeCalendar<ValueMode extends TimeValueMode = "date", FieldValue extends [TimeValueModeMap<ValueMode>, TimeValueModeMap<ValueMode>] | null | undefined = [TimeValueModeMap<ValueMode>, TimeValueModeMap<ValueMode>] | null | undefined>({ field: _field, valueMode, emptyValue, component: RangeCalendar2, ...rest }: FormRangeCalendarProps<ValueMode, FieldValue>): ReactNode;
|
|
28
|
+
export declare function FormRangeCalendar<ValueMode extends TimeValueMode = "date", FieldValue extends [TimeValueModeMap<ValueMode>, TimeValueModeMap<ValueMode>] | null | undefined = [TimeValueModeMap<ValueMode>, TimeValueModeMap<ValueMode>] | null | undefined>({ field: _field, valueMode, emptyValue, dateMode, component: RangeCalendar2, ...rest }: FormRangeCalendarProps<ValueMode, FieldValue>): ReactNode;
|
|
@@ -3,18 +3,18 @@ import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/j
|
|
|
3
3
|
import * as __WEBPACK_EXTERNAL_MODULE_react__ from "react";
|
|
4
4
|
import * as __WEBPACK_EXTERNAL_MODULE__heroui_react_7b65ca80__ from "@heroui/react";
|
|
5
5
|
import * as __WEBPACK_EXTERNAL_MODULE_deepsea_tools_8ecdf5a5__ from "deepsea-tools";
|
|
6
|
-
import * as __WEBPACK_EXTERNAL_MODULE__utils_getTimeValue_js_9ba8f683__ from "../utils/getTimeValue.js";
|
|
7
6
|
import * as __WEBPACK_EXTERNAL_MODULE__utils_getFieldProps_js_0615ad2a__ from "../utils/getFieldProps.js";
|
|
7
|
+
import * as __WEBPACK_EXTERNAL_MODULE__utils_getTimeValue_js_9ba8f683__ from "../utils/getTimeValue.js";
|
|
8
8
|
import * as __WEBPACK_EXTERNAL_MODULE__utils_parseTime_js_d0890db8__ from "../utils/parseTime.js";
|
|
9
9
|
import * as __WEBPACK_EXTERNAL_MODULE__FormProvider_js_a80efa64__ from "./FormProvider.js";
|
|
10
|
-
function getRangeValue(value) {
|
|
10
|
+
function getRangeValue(value, dateMode) {
|
|
11
11
|
return (0, __WEBPACK_EXTERNAL_MODULE_deepsea_tools_8ecdf5a5__.isNonNullable)(value) ? {
|
|
12
|
-
start: (0, __WEBPACK_EXTERNAL_MODULE__utils_parseTime_js_d0890db8__.parseTime)(value[0].valueOf()),
|
|
13
|
-
end: (0, __WEBPACK_EXTERNAL_MODULE__utils_parseTime_js_d0890db8__.parseTime)(value[1].valueOf())
|
|
12
|
+
start: (0, __WEBPACK_EXTERNAL_MODULE__utils_parseTime_js_d0890db8__.parseTime)(value[0].valueOf(), dateMode),
|
|
13
|
+
end: (0, __WEBPACK_EXTERNAL_MODULE__utils_parseTime_js_d0890db8__.parseTime)(value[1].valueOf(), dateMode)
|
|
14
14
|
} : null;
|
|
15
15
|
}
|
|
16
|
-
function getFieldRangeValue(field) {
|
|
17
|
-
return getRangeValue(field.state.value);
|
|
16
|
+
function getFieldRangeValue(field, dateMode) {
|
|
17
|
+
return getRangeValue(field.state.value, dateMode);
|
|
18
18
|
}
|
|
19
19
|
function getRangeUpdater({ value, valueMode, emptyValue }) {
|
|
20
20
|
if (!(0, __WEBPACK_EXTERNAL_MODULE_deepsea_tools_8ecdf5a5__.isNonNullable)(value)) return (0, __WEBPACK_EXTERNAL_MODULE__FormProvider_js_a80efa64__.getEmptyValue)(emptyValue);
|
|
@@ -39,12 +39,12 @@ function getOnRangeChange({ field, valueMode, emptyValue }) {
|
|
|
39
39
|
}));
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
|
-
function FormRangeCalendar({ field: _field, valueMode, emptyValue, component: RangeCalendar2 = __WEBPACK_EXTERNAL_MODULE__heroui_react_7b65ca80__.RangeCalendar, ...rest }) {
|
|
42
|
+
function FormRangeCalendar({ field: _field, valueMode, emptyValue, dateMode, component: RangeCalendar2 = __WEBPACK_EXTERNAL_MODULE__heroui_react_7b65ca80__.RangeCalendar, ...rest }) {
|
|
43
43
|
const field = _field;
|
|
44
44
|
const context = (0, __WEBPACK_EXTERNAL_MODULE_react__.useContext)(__WEBPACK_EXTERNAL_MODULE__FormProvider_js_a80efa64__.FormContext);
|
|
45
45
|
emptyValue ??= context.emptyValue;
|
|
46
46
|
return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(RangeCalendar2, {
|
|
47
|
-
value: getFieldRangeValue(field),
|
|
47
|
+
value: getFieldRangeValue(field, dateMode),
|
|
48
48
|
onChange: getOnRangeChange({
|
|
49
49
|
field,
|
|
50
50
|
valueMode,
|
|
@@ -39,11 +39,11 @@ const getFieldProps_cjs_namespaceObject = require("../utils/getFieldProps.cjs");
|
|
|
39
39
|
const getTimeValue_cjs_namespaceObject = require("../utils/getTimeValue.cjs");
|
|
40
40
|
const parseTime_cjs_namespaceObject = require("../utils/parseTime.cjs");
|
|
41
41
|
const external_FormProvider_cjs_namespaceObject = require("./FormProvider.cjs");
|
|
42
|
-
function getValue(value) {
|
|
43
|
-
return (0, external_deepsea_tools_namespaceObject.isNonNullable)(value) ? (0, parseTime_cjs_namespaceObject.parseTime)(value.valueOf()) : null;
|
|
42
|
+
function getValue(value, parseMode) {
|
|
43
|
+
return (0, external_deepsea_tools_namespaceObject.isNonNullable)(value) ? (0, parseTime_cjs_namespaceObject.parseTime)(value.valueOf(), parseMode) : null;
|
|
44
44
|
}
|
|
45
|
-
function getFieldValue(field) {
|
|
46
|
-
return getValue(field.state.value);
|
|
45
|
+
function getFieldValue(field, parseMode) {
|
|
46
|
+
return getValue(field.state.value, parseMode);
|
|
47
47
|
}
|
|
48
48
|
function getUpdater({ value, valueMode, emptyValue }) {
|
|
49
49
|
const timestamp = (0, getTimeValue_cjs_namespaceObject.getTimeValue)(value);
|
|
@@ -60,11 +60,11 @@ function getOnChange({ field, valueMode, emptyValue }) {
|
|
|
60
60
|
}));
|
|
61
61
|
};
|
|
62
62
|
}
|
|
63
|
-
function FormTimeInput({ field, valueMode, emptyValue, component: TimeInput2 = react_namespaceObject.TimeInput, ...rest }) {
|
|
63
|
+
function FormTimeInput({ field, valueMode, emptyValue, timeMode, component: TimeInput2 = react_namespaceObject.TimeInput, ...rest }) {
|
|
64
64
|
const context = (0, external_react_namespaceObject.useContext)(external_FormProvider_cjs_namespaceObject.FormContext);
|
|
65
65
|
emptyValue ??= context.emptyValue;
|
|
66
66
|
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(TimeInput2, {
|
|
67
|
-
value: getFieldValue(field),
|
|
67
|
+
value: getFieldValue(field, timeMode),
|
|
68
68
|
onChange: getOnChange({
|
|
69
69
|
field,
|
|
70
70
|
valueMode,
|
|
@@ -3,6 +3,7 @@ import { TimeInput, TimeInputProps } from "@heroui/react";
|
|
|
3
3
|
import { CalendarDate, CalendarDateTime, Time, ZonedDateTime } from "@internationalized/date";
|
|
4
4
|
import { Field, FieldComponentProps } from "soda-tanstack-form";
|
|
5
5
|
import { StrictOmit } from "soda-type";
|
|
6
|
+
import { ParseMode, TimeMode } from "../utils/parseTime";
|
|
6
7
|
import { EmptyValue } from "./FormProvider";
|
|
7
8
|
export type TimeValue = Date | number;
|
|
8
9
|
export type TimeValueMode = "date" | "timestamp";
|
|
@@ -10,10 +11,11 @@ export type TimeValueModeMap<ValueMode extends TimeValueMode> = ValueMode extend
|
|
|
10
11
|
export interface FormTimeInputProps<ValueMode extends TimeValueMode = "date", FieldValue extends TimeValueModeMap<ValueMode> | null | undefined = TimeValueModeMap<ValueMode> | null | undefined> extends StrictOmit<FieldComponentProps<typeof TimeInput, FieldValue>, never> {
|
|
11
12
|
valueMode?: ValueMode;
|
|
12
13
|
emptyValue?: EmptyValue;
|
|
14
|
+
timeMode?: TimeMode;
|
|
13
15
|
component?: <T extends Time | CalendarDateTime | ZonedDateTime>(props: TimeInputProps<T>) => ReactNode;
|
|
14
16
|
}
|
|
15
|
-
export declare function getValue(value: Date | number | null | undefined):
|
|
16
|
-
export declare function getFieldValue<T extends Date | number | null | undefined>(field: Field<T
|
|
17
|
+
export declare function getValue<T extends ParseMode>(value: Date | number | null | undefined, parseMode?: T): InstanceType<T> | null;
|
|
18
|
+
export declare function getFieldValue<T extends Date | number | null | undefined, P extends ParseMode>(field: Field<T>, parseMode?: P): InstanceType<P> | null;
|
|
17
19
|
export interface GetUpdaterParams {
|
|
18
20
|
value: CalendarDateTime | ZonedDateTime | Time | CalendarDate | CalendarDateTime | ZonedDateTime | null;
|
|
19
21
|
valueMode?: TimeValueMode;
|
|
@@ -26,4 +28,4 @@ export interface GetOnChangeParams<T extends Date | number | null | undefined> {
|
|
|
26
28
|
emptyValue?: EmptyValue;
|
|
27
29
|
}
|
|
28
30
|
export declare function getOnChange<T extends Date | number | null | undefined>({ field, valueMode, emptyValue }: GetOnChangeParams<T>): (value: CalendarDateTime | ZonedDateTime | Time | CalendarDate | CalendarDateTime | ZonedDateTime | null) => void;
|
|
29
|
-
export declare function FormTimeInput<ValueMode extends TimeValueMode = "date", FieldValue extends TimeValueModeMap<ValueMode> | null | undefined = TimeValueModeMap<ValueMode> | null | undefined>({ field, valueMode, emptyValue, component: TimeInput2, ...rest }: FormTimeInputProps<ValueMode, FieldValue>): ReactNode;
|
|
31
|
+
export declare function FormTimeInput<ValueMode extends TimeValueMode = "date", FieldValue extends TimeValueModeMap<ValueMode> | null | undefined = TimeValueModeMap<ValueMode> | null | undefined>({ field, valueMode, emptyValue, timeMode, component: TimeInput2, ...rest }: FormTimeInputProps<ValueMode, FieldValue>): ReactNode;
|
|
@@ -7,11 +7,11 @@ import * as __WEBPACK_EXTERNAL_MODULE__utils_getFieldProps_js_0615ad2a__ from ".
|
|
|
7
7
|
import * as __WEBPACK_EXTERNAL_MODULE__utils_getTimeValue_js_9ba8f683__ from "../utils/getTimeValue.js";
|
|
8
8
|
import * as __WEBPACK_EXTERNAL_MODULE__utils_parseTime_js_d0890db8__ from "../utils/parseTime.js";
|
|
9
9
|
import * as __WEBPACK_EXTERNAL_MODULE__FormProvider_js_a80efa64__ from "./FormProvider.js";
|
|
10
|
-
function getValue(value) {
|
|
11
|
-
return (0, __WEBPACK_EXTERNAL_MODULE_deepsea_tools_8ecdf5a5__.isNonNullable)(value) ? (0, __WEBPACK_EXTERNAL_MODULE__utils_parseTime_js_d0890db8__.parseTime)(value.valueOf()) : null;
|
|
10
|
+
function getValue(value, parseMode) {
|
|
11
|
+
return (0, __WEBPACK_EXTERNAL_MODULE_deepsea_tools_8ecdf5a5__.isNonNullable)(value) ? (0, __WEBPACK_EXTERNAL_MODULE__utils_parseTime_js_d0890db8__.parseTime)(value.valueOf(), parseMode) : null;
|
|
12
12
|
}
|
|
13
|
-
function getFieldValue(field) {
|
|
14
|
-
return getValue(field.state.value);
|
|
13
|
+
function getFieldValue(field, parseMode) {
|
|
14
|
+
return getValue(field.state.value, parseMode);
|
|
15
15
|
}
|
|
16
16
|
function getUpdater({ value, valueMode, emptyValue }) {
|
|
17
17
|
const timestamp = (0, __WEBPACK_EXTERNAL_MODULE__utils_getTimeValue_js_9ba8f683__.getTimeValue)(value);
|
|
@@ -28,11 +28,11 @@ function getOnChange({ field, valueMode, emptyValue }) {
|
|
|
28
28
|
}));
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
|
-
function FormTimeInput({ field, valueMode, emptyValue, component: TimeInput2 = __WEBPACK_EXTERNAL_MODULE__heroui_react_7b65ca80__.TimeInput, ...rest }) {
|
|
31
|
+
function FormTimeInput({ field, valueMode, emptyValue, timeMode, component: TimeInput2 = __WEBPACK_EXTERNAL_MODULE__heroui_react_7b65ca80__.TimeInput, ...rest }) {
|
|
32
32
|
const context = (0, __WEBPACK_EXTERNAL_MODULE_react__.useContext)(__WEBPACK_EXTERNAL_MODULE__FormProvider_js_a80efa64__.FormContext);
|
|
33
33
|
emptyValue ??= context.emptyValue;
|
|
34
34
|
return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(TimeInput2, {
|
|
35
|
-
value: getFieldValue(field),
|
|
35
|
+
value: getFieldValue(field, timeMode),
|
|
36
36
|
onChange: getOnChange({
|
|
37
37
|
field,
|
|
38
38
|
valueMode,
|
package/dist/utils/parseTime.cjs
CHANGED
|
@@ -24,14 +24,43 @@ var __webpack_require__ = {};
|
|
|
24
24
|
var __webpack_exports__ = {};
|
|
25
25
|
__webpack_require__.r(__webpack_exports__);
|
|
26
26
|
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
-
|
|
27
|
+
fromAbsolute: ()=>date_namespaceObject.fromAbsolute,
|
|
28
|
+
Time: ()=>date_namespaceObject.Time,
|
|
29
|
+
getLocalTimeZone: ()=>date_namespaceObject.getLocalTimeZone,
|
|
30
|
+
parseTime: ()=>parseTime,
|
|
31
|
+
CalendarDateTime: ()=>date_namespaceObject.CalendarDateTime,
|
|
32
|
+
ZonedDateTime: ()=>date_namespaceObject.ZonedDateTime,
|
|
33
|
+
CalendarDate: ()=>date_namespaceObject.CalendarDate
|
|
28
34
|
});
|
|
29
35
|
const date_namespaceObject = require("@internationalized/date");
|
|
30
|
-
function parseTime(ms) {
|
|
31
|
-
return (0, date_namespaceObject.fromAbsolute)(ms, (0, date_namespaceObject.getLocalTimeZone)());
|
|
36
|
+
function parseTime(ms, type) {
|
|
37
|
+
if (type === date_namespaceObject.ZonedDateTime) return (0, date_namespaceObject.fromAbsolute)(ms, (0, date_namespaceObject.getLocalTimeZone)());
|
|
38
|
+
const date = new Date(ms);
|
|
39
|
+
const year = date.getFullYear();
|
|
40
|
+
const month = date.getMonth();
|
|
41
|
+
const day = date.getDate();
|
|
42
|
+
const hour = date.getHours();
|
|
43
|
+
const minute = date.getMinutes();
|
|
44
|
+
const second = date.getSeconds();
|
|
45
|
+
const millisecond = date.getMilliseconds();
|
|
46
|
+
if (type === date_namespaceObject.CalendarDate) return new date_namespaceObject.CalendarDate(year, month, day);
|
|
47
|
+
if (type === date_namespaceObject.Time) return new date_namespaceObject.Time(hour, minute, second, millisecond);
|
|
48
|
+
return new date_namespaceObject.CalendarDateTime(year, month, day, hour, minute, second, millisecond);
|
|
32
49
|
}
|
|
50
|
+
exports.CalendarDate = __webpack_exports__.CalendarDate;
|
|
51
|
+
exports.CalendarDateTime = __webpack_exports__.CalendarDateTime;
|
|
52
|
+
exports.Time = __webpack_exports__.Time;
|
|
53
|
+
exports.ZonedDateTime = __webpack_exports__.ZonedDateTime;
|
|
54
|
+
exports.fromAbsolute = __webpack_exports__.fromAbsolute;
|
|
55
|
+
exports.getLocalTimeZone = __webpack_exports__.getLocalTimeZone;
|
|
33
56
|
exports.parseTime = __webpack_exports__.parseTime;
|
|
34
57
|
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
|
58
|
+
"CalendarDate",
|
|
59
|
+
"CalendarDateTime",
|
|
60
|
+
"Time",
|
|
61
|
+
"ZonedDateTime",
|
|
62
|
+
"fromAbsolute",
|
|
63
|
+
"getLocalTimeZone",
|
|
35
64
|
"parseTime"
|
|
36
65
|
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
|
|
37
66
|
Object.defineProperty(exports, '__esModule', {
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
import { ZonedDateTime } from "@internationalized/date";
|
|
2
|
-
export
|
|
1
|
+
import { CalendarDate, CalendarDateTime, Time, ZonedDateTime } from "@internationalized/date";
|
|
2
|
+
export { CalendarDate, CalendarDateTime, Time, ZonedDateTime, fromAbsolute, getLocalTimeZone } from "@internationalized/date";
|
|
3
|
+
export type ParseMode = typeof ZonedDateTime | typeof CalendarDate | typeof CalendarDateTime | typeof Time;
|
|
4
|
+
export type TimeMode = Exclude<ParseMode, typeof CalendarDate>;
|
|
5
|
+
export type DateMode = Exclude<ParseMode, typeof Time>;
|
|
6
|
+
export declare function parseTime<T extends ParseMode = typeof CalendarDateTime>(ms: number, type?: T): InstanceType<T>;
|
package/dist/utils/parseTime.js
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
import * as __WEBPACK_EXTERNAL_MODULE__internationalized_date_00f69a87__ from "@internationalized/date";
|
|
2
|
-
function parseTime(ms) {
|
|
3
|
-
return (0, __WEBPACK_EXTERNAL_MODULE__internationalized_date_00f69a87__.fromAbsolute)(ms, (0, __WEBPACK_EXTERNAL_MODULE__internationalized_date_00f69a87__.getLocalTimeZone)());
|
|
2
|
+
function parseTime(ms, type) {
|
|
3
|
+
if (type === __WEBPACK_EXTERNAL_MODULE__internationalized_date_00f69a87__.ZonedDateTime) return (0, __WEBPACK_EXTERNAL_MODULE__internationalized_date_00f69a87__.fromAbsolute)(ms, (0, __WEBPACK_EXTERNAL_MODULE__internationalized_date_00f69a87__.getLocalTimeZone)());
|
|
4
|
+
const date = new Date(ms);
|
|
5
|
+
const year = date.getFullYear();
|
|
6
|
+
const month = date.getMonth();
|
|
7
|
+
const day = date.getDate();
|
|
8
|
+
const hour = date.getHours();
|
|
9
|
+
const minute = date.getMinutes();
|
|
10
|
+
const second = date.getSeconds();
|
|
11
|
+
const millisecond = date.getMilliseconds();
|
|
12
|
+
if (type === __WEBPACK_EXTERNAL_MODULE__internationalized_date_00f69a87__.CalendarDate) return new __WEBPACK_EXTERNAL_MODULE__internationalized_date_00f69a87__.CalendarDate(year, month, day);
|
|
13
|
+
if (type === __WEBPACK_EXTERNAL_MODULE__internationalized_date_00f69a87__.Time) return new __WEBPACK_EXTERNAL_MODULE__internationalized_date_00f69a87__.Time(hour, minute, second, millisecond);
|
|
14
|
+
return new __WEBPACK_EXTERNAL_MODULE__internationalized_date_00f69a87__.CalendarDateTime(year, month, day, hour, minute, second, millisecond);
|
|
4
15
|
}
|
|
5
|
-
|
|
16
|
+
var __webpack_exports__CalendarDate = __WEBPACK_EXTERNAL_MODULE__internationalized_date_00f69a87__.CalendarDate;
|
|
17
|
+
var __webpack_exports__CalendarDateTime = __WEBPACK_EXTERNAL_MODULE__internationalized_date_00f69a87__.CalendarDateTime;
|
|
18
|
+
var __webpack_exports__Time = __WEBPACK_EXTERNAL_MODULE__internationalized_date_00f69a87__.Time;
|
|
19
|
+
var __webpack_exports__ZonedDateTime = __WEBPACK_EXTERNAL_MODULE__internationalized_date_00f69a87__.ZonedDateTime;
|
|
20
|
+
var __webpack_exports__fromAbsolute = __WEBPACK_EXTERNAL_MODULE__internationalized_date_00f69a87__.fromAbsolute;
|
|
21
|
+
var __webpack_exports__getLocalTimeZone = __WEBPACK_EXTERNAL_MODULE__internationalized_date_00f69a87__.getLocalTimeZone;
|
|
22
|
+
export { parseTime, __webpack_exports__CalendarDate as CalendarDate, __webpack_exports__CalendarDateTime as CalendarDateTime, __webpack_exports__Time as Time, __webpack_exports__ZonedDateTime as ZonedDateTime, __webpack_exports__fromAbsolute as fromAbsolute, __webpack_exports__getLocalTimeZone as getLocalTimeZone };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "soda-heroui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -38,9 +38,9 @@
|
|
|
38
38
|
"@internationalized/date": "^3.8.2",
|
|
39
39
|
"@tanstack/react-form": "^1.14.1",
|
|
40
40
|
"deepsea-tools": "5.38.2",
|
|
41
|
-
"soda-
|
|
41
|
+
"soda-type": "6.3.0",
|
|
42
42
|
"soda-tanstack-form": "0.2.3",
|
|
43
|
-
"soda-
|
|
43
|
+
"soda-hooks": "6.12.0"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@ianvs/prettier-plugin-sort-imports": "^4.5.1",
|
|
@@ -5,7 +5,9 @@ import { Calendar, CalendarProps, DateValue } from "@heroui/react"
|
|
|
5
5
|
import { FieldComponentProps } from "soda-tanstack-form"
|
|
6
6
|
import { StrictOmit } from "soda-type"
|
|
7
7
|
|
|
8
|
-
import { getFieldProps } from "
|
|
8
|
+
import { getFieldProps } from "@/utils/getFieldProps"
|
|
9
|
+
import { DateMode } from "@/utils/parseTime"
|
|
10
|
+
|
|
9
11
|
import { EmptyValue, FormContext } from "./FormProvider"
|
|
10
12
|
import { TimeValueMode, TimeValueModeMap, getFieldValue, getOnChange } from "./FormTimeInput"
|
|
11
13
|
|
|
@@ -15,15 +17,23 @@ export interface FormCalendarProps<
|
|
|
15
17
|
> extends StrictOmit<FieldComponentProps<typeof Calendar, FieldValue>, never> {
|
|
16
18
|
valueMode?: ValueMode
|
|
17
19
|
emptyValue?: EmptyValue
|
|
20
|
+
dateMode?: DateMode
|
|
18
21
|
component?: <T extends DateValue>(props: CalendarProps<T>) => ReactNode
|
|
19
22
|
}
|
|
20
23
|
|
|
21
24
|
export function FormCalendar<
|
|
22
25
|
ValueMode extends TimeValueMode = "date",
|
|
23
26
|
FieldValue extends TimeValueModeMap<ValueMode> | null | undefined = TimeValueModeMap<ValueMode> | null | undefined,
|
|
24
|
-
>({ field, valueMode, emptyValue, component: Calendar2 = Calendar, ...rest }: FormCalendarProps<ValueMode, FieldValue>): ReactNode {
|
|
27
|
+
>({ field, valueMode, emptyValue, dateMode, component: Calendar2 = Calendar, ...rest }: FormCalendarProps<ValueMode, FieldValue>): ReactNode {
|
|
25
28
|
const context = useContext(FormContext)
|
|
26
29
|
emptyValue ??= context.emptyValue
|
|
27
30
|
|
|
28
|
-
return
|
|
31
|
+
return (
|
|
32
|
+
<Calendar2
|
|
33
|
+
focusedValue={getFieldValue(field, dateMode)}
|
|
34
|
+
onFocusChange={getOnChange({ field, valueMode, emptyValue })}
|
|
35
|
+
{...getFieldProps(field)}
|
|
36
|
+
{...rest}
|
|
37
|
+
/>
|
|
38
|
+
)
|
|
29
39
|
}
|
|
@@ -5,7 +5,9 @@ import { DateInput, DateInputProps, DateValue } from "@heroui/react"
|
|
|
5
5
|
import { FieldComponentProps } from "soda-tanstack-form"
|
|
6
6
|
import { StrictOmit } from "soda-type"
|
|
7
7
|
|
|
8
|
-
import { getFieldProps } from "
|
|
8
|
+
import { getFieldProps } from "@/utils/getFieldProps"
|
|
9
|
+
import { DateMode } from "@/utils/parseTime"
|
|
10
|
+
|
|
9
11
|
import { EmptyValue, FormContext } from "./FormProvider"
|
|
10
12
|
import { TimeValueMode, TimeValueModeMap, getFieldValue, getOnChange } from "./FormTimeInput"
|
|
11
13
|
|
|
@@ -15,15 +17,16 @@ export interface FormDateInputProps<
|
|
|
15
17
|
> extends StrictOmit<FieldComponentProps<typeof DateInput, FieldValue>, never> {
|
|
16
18
|
valueMode?: ValueMode
|
|
17
19
|
emptyValue?: EmptyValue
|
|
20
|
+
dateMode?: DateMode
|
|
18
21
|
component?: <T extends DateValue>(props: DateInputProps<T>) => ReactNode
|
|
19
22
|
}
|
|
20
23
|
|
|
21
24
|
export function FormDateInput<
|
|
22
25
|
ValueMode extends TimeValueMode = "date",
|
|
23
26
|
FieldValue extends TimeValueModeMap<ValueMode> | null | undefined = TimeValueModeMap<ValueMode> | null | undefined,
|
|
24
|
-
>({ field, valueMode, emptyValue, component: DateInput2 = DateInput, ...rest }: FormDateInputProps<ValueMode, FieldValue>): ReactNode {
|
|
27
|
+
>({ field, valueMode, emptyValue, dateMode, component: DateInput2 = DateInput, ...rest }: FormDateInputProps<ValueMode, FieldValue>): ReactNode {
|
|
25
28
|
const context = useContext(FormContext)
|
|
26
29
|
emptyValue ??= context.emptyValue
|
|
27
30
|
|
|
28
|
-
return <DateInput2 value={getFieldValue(field)} onChange={getOnChange({ field, valueMode, emptyValue })} {...getFieldProps(field)} {...rest} />
|
|
31
|
+
return <DateInput2 value={getFieldValue(field, dateMode)} onChange={getOnChange({ field, valueMode, emptyValue })} {...getFieldProps(field)} {...rest} />
|
|
29
32
|
}
|
|
@@ -5,6 +5,8 @@ import { DatePicker, DatePickerProps, DateValue } from "@heroui/react"
|
|
|
5
5
|
import { FieldComponentProps } from "soda-tanstack-form"
|
|
6
6
|
import { StrictOmit } from "soda-type"
|
|
7
7
|
|
|
8
|
+
import { DateMode, TimeMode } from "@/utils/parseTime"
|
|
9
|
+
|
|
8
10
|
import { getFieldProps } from "../utils/getFieldProps"
|
|
9
11
|
import { EmptyValue, FormContext } from "./FormProvider"
|
|
10
12
|
import { TimeValueMode, TimeValueModeMap, getFieldValue, getOnChange } from "./FormTimeInput"
|
|
@@ -15,15 +17,16 @@ export interface FormDatePickerProps<
|
|
|
15
17
|
> extends StrictOmit<FieldComponentProps<typeof DatePicker, FieldValue>, never> {
|
|
16
18
|
valueMode?: ValueMode
|
|
17
19
|
emptyValue?: EmptyValue
|
|
20
|
+
dateMode?: DateMode
|
|
18
21
|
component?: <T extends DateValue>(props: DatePickerProps<T>) => ReactNode
|
|
19
22
|
}
|
|
20
23
|
|
|
21
24
|
export function FormDatePicker<
|
|
22
25
|
ValueMode extends TimeValueMode = "date",
|
|
23
26
|
FieldValue extends TimeValueModeMap<ValueMode> | null | undefined = TimeValueModeMap<ValueMode> | null | undefined,
|
|
24
|
-
>({ field, valueMode, emptyValue, component: DatePicker2 = DatePicker, ...rest }: FormDatePickerProps<ValueMode, FieldValue>): ReactNode {
|
|
27
|
+
>({ field, valueMode, emptyValue, dateMode, component: DatePicker2 = DatePicker, ...rest }: FormDatePickerProps<ValueMode, FieldValue>): ReactNode {
|
|
25
28
|
const context = useContext(FormContext)
|
|
26
29
|
emptyValue ??= context.emptyValue
|
|
27
30
|
|
|
28
|
-
return <DatePicker2 value={getFieldValue(field)} onChange={getOnChange({ field, valueMode, emptyValue })} {...getFieldProps(field)} {...rest} />
|
|
31
|
+
return <DatePicker2 value={getFieldValue(field, dateMode)} onChange={getOnChange({ field, valueMode, emptyValue })} {...getFieldProps(field)} {...rest} />
|
|
29
32
|
}
|
|
@@ -6,6 +6,7 @@ import { Field, FieldComponentProps } from "soda-tanstack-form"
|
|
|
6
6
|
import { StrictOmit } from "soda-type"
|
|
7
7
|
|
|
8
8
|
import { getFieldProps } from "../utils/getFieldProps"
|
|
9
|
+
import { DateMode } from "../utils/parseTime"
|
|
9
10
|
import { EmptyValue, FormContext } from "./FormProvider"
|
|
10
11
|
import { getFieldRangeValue, getOnRangeChange } from "./FormRangeCalendar"
|
|
11
12
|
import { TimeValueMode, TimeValueModeMap } from "./FormTimeInput"
|
|
@@ -19,6 +20,7 @@ export interface FormDateRangePickerProps<
|
|
|
19
20
|
> extends StrictOmit<FieldComponentProps<typeof DateRangePicker, FieldValue>, never> {
|
|
20
21
|
valueMode?: ValueMode
|
|
21
22
|
emptyValue?: EmptyValue
|
|
23
|
+
dateMode?: DateMode
|
|
22
24
|
component?: <T extends DateValue>(props: DateRangePickerProps<T>) => ReactNode
|
|
23
25
|
}
|
|
24
26
|
|
|
@@ -32,6 +34,7 @@ export function FormDateRangePicker<
|
|
|
32
34
|
field: _field,
|
|
33
35
|
valueMode,
|
|
34
36
|
emptyValue,
|
|
37
|
+
dateMode,
|
|
35
38
|
component: DateRangePicker2 = DateRangePicker,
|
|
36
39
|
...rest
|
|
37
40
|
}: FormDateRangePickerProps<ValueMode, FieldValue>): ReactNode {
|
|
@@ -40,6 +43,11 @@ export function FormDateRangePicker<
|
|
|
40
43
|
emptyValue ??= context.emptyValue
|
|
41
44
|
|
|
42
45
|
return (
|
|
43
|
-
<DateRangePicker2
|
|
46
|
+
<DateRangePicker2
|
|
47
|
+
value={getFieldRangeValue(field, dateMode)}
|
|
48
|
+
onChange={getOnRangeChange({ field, valueMode, emptyValue })}
|
|
49
|
+
{...getFieldProps(field)}
|
|
50
|
+
{...rest}
|
|
51
|
+
/>
|
|
44
52
|
)
|
|
45
53
|
}
|
|
@@ -6,10 +6,10 @@ import { isNonNullable } from "deepsea-tools"
|
|
|
6
6
|
import { Field, FieldComponentProps } from "soda-tanstack-form"
|
|
7
7
|
import { StrictOmit } from "soda-type"
|
|
8
8
|
|
|
9
|
+
import { getFieldProps } from "@/utils/getFieldProps"
|
|
9
10
|
import { getTimeValue } from "@/utils/getTimeValue"
|
|
10
11
|
|
|
11
|
-
import {
|
|
12
|
-
import { parseTime } from "../utils/parseTime"
|
|
12
|
+
import { DateMode, parseTime } from "../utils/parseTime"
|
|
13
13
|
import { EmptyValue, FormContext, getEmptyValue } from "./FormProvider"
|
|
14
14
|
import { TimeValueMode, TimeValueModeMap } from "./FormTimeInput"
|
|
15
15
|
|
|
@@ -22,20 +22,21 @@ export interface FormRangeCalendarProps<
|
|
|
22
22
|
> extends StrictOmit<FieldComponentProps<typeof RangeCalendar, FieldValue>, never> {
|
|
23
23
|
valueMode?: ValueMode
|
|
24
24
|
emptyValue?: EmptyValue
|
|
25
|
+
dateMode?: DateMode
|
|
25
26
|
component?: <T extends DateValue>(props: RangeCalendarProps<T>) => ReactNode
|
|
26
27
|
}
|
|
27
28
|
|
|
28
|
-
export function getRangeValue(value: [Date, Date] | [number, number] | null | undefined): RangeValue<DateValue> | null {
|
|
29
|
+
export function getRangeValue<T extends DateMode>(value: [Date, Date] | [number, number] | null | undefined, dateMode?: T): RangeValue<DateValue> | null {
|
|
29
30
|
return isNonNullable(value)
|
|
30
31
|
? {
|
|
31
|
-
start: parseTime(value[0].valueOf()),
|
|
32
|
-
end: parseTime(value[1].valueOf()),
|
|
32
|
+
start: parseTime(value[0].valueOf(), dateMode),
|
|
33
|
+
end: parseTime(value[1].valueOf(), dateMode),
|
|
33
34
|
}
|
|
34
35
|
: null
|
|
35
36
|
}
|
|
36
37
|
|
|
37
|
-
export function getFieldRangeValue<T extends [Date, Date] | [number, number] | null | undefined>(field: Field<T
|
|
38
|
-
return getRangeValue(field.state.value)
|
|
38
|
+
export function getFieldRangeValue<T extends [Date, Date] | [number, number] | null | undefined, P extends DateMode>(field: Field<T>, dateMode?: P) {
|
|
39
|
+
return getRangeValue(field.state.value, dateMode)
|
|
39
40
|
}
|
|
40
41
|
|
|
41
42
|
export interface GetRangeUpdaterParams {
|
|
@@ -76,12 +77,24 @@ export function FormRangeCalendar<
|
|
|
76
77
|
| [TimeValueModeMap<ValueMode>, TimeValueModeMap<ValueMode>]
|
|
77
78
|
| null
|
|
78
79
|
| undefined,
|
|
79
|
-
>({
|
|
80
|
+
>({
|
|
81
|
+
field: _field,
|
|
82
|
+
valueMode,
|
|
83
|
+
emptyValue,
|
|
84
|
+
dateMode,
|
|
85
|
+
component: RangeCalendar2 = RangeCalendar,
|
|
86
|
+
...rest
|
|
87
|
+
}: FormRangeCalendarProps<ValueMode, FieldValue>): ReactNode {
|
|
80
88
|
const field = _field as unknown as Field<[Date, Date] | [number, number] | null | undefined>
|
|
81
89
|
const context = useContext(FormContext)
|
|
82
90
|
emptyValue ??= context.emptyValue
|
|
83
91
|
|
|
84
92
|
return (
|
|
85
|
-
<RangeCalendar2
|
|
93
|
+
<RangeCalendar2
|
|
94
|
+
value={getFieldRangeValue(field, dateMode)}
|
|
95
|
+
onChange={getOnRangeChange({ field, valueMode, emptyValue })}
|
|
96
|
+
{...getFieldProps(field)}
|
|
97
|
+
{...rest}
|
|
98
|
+
/>
|
|
86
99
|
)
|
|
87
100
|
}
|
|
@@ -10,7 +10,7 @@ import { StrictOmit } from "soda-type"
|
|
|
10
10
|
import { getFieldProps } from "@/utils/getFieldProps"
|
|
11
11
|
import { getTimeValue } from "@/utils/getTimeValue"
|
|
12
12
|
|
|
13
|
-
import { parseTime } from "../utils/parseTime"
|
|
13
|
+
import { ParseMode, TimeMode, parseTime } from "../utils/parseTime"
|
|
14
14
|
import { EmptyValue, FormContext, getEmptyValue } from "./FormProvider"
|
|
15
15
|
|
|
16
16
|
export type TimeValue = Date | number
|
|
@@ -25,15 +25,16 @@ export interface FormTimeInputProps<
|
|
|
25
25
|
> extends StrictOmit<FieldComponentProps<typeof TimeInput, FieldValue>, never> {
|
|
26
26
|
valueMode?: ValueMode
|
|
27
27
|
emptyValue?: EmptyValue
|
|
28
|
+
timeMode?: TimeMode
|
|
28
29
|
component?: <T extends Time | CalendarDateTime | ZonedDateTime>(props: TimeInputProps<T>) => ReactNode
|
|
29
30
|
}
|
|
30
31
|
|
|
31
|
-
export function getValue(value: Date | number | null | undefined) {
|
|
32
|
-
return isNonNullable(value) ? parseTime(value.valueOf()) : null
|
|
32
|
+
export function getValue<T extends ParseMode>(value: Date | number | null | undefined, parseMode?: T) {
|
|
33
|
+
return isNonNullable(value) ? parseTime(value.valueOf(), parseMode) : null
|
|
33
34
|
}
|
|
34
35
|
|
|
35
|
-
export function getFieldValue<T extends Date | number | null | undefined>(field: Field<T
|
|
36
|
-
return getValue(field.state.value)
|
|
36
|
+
export function getFieldValue<T extends Date | number | null | undefined, P extends ParseMode>(field: Field<T>, parseMode?: P) {
|
|
37
|
+
return getValue(field.state.value, parseMode)
|
|
37
38
|
}
|
|
38
39
|
|
|
39
40
|
export interface GetUpdaterParams {
|
|
@@ -64,9 +65,9 @@ export function getOnChange<T extends Date | number | null | undefined>({ field,
|
|
|
64
65
|
export function FormTimeInput<
|
|
65
66
|
ValueMode extends TimeValueMode = "date",
|
|
66
67
|
FieldValue extends TimeValueModeMap<ValueMode> | null | undefined = TimeValueModeMap<ValueMode> | null | undefined,
|
|
67
|
-
>({ field, valueMode, emptyValue, component: TimeInput2 = TimeInput, ...rest }: FormTimeInputProps<ValueMode, FieldValue>): ReactNode {
|
|
68
|
+
>({ field, valueMode, emptyValue, timeMode, component: TimeInput2 = TimeInput, ...rest }: FormTimeInputProps<ValueMode, FieldValue>): ReactNode {
|
|
68
69
|
const context = useContext(FormContext)
|
|
69
70
|
emptyValue ??= context.emptyValue
|
|
70
71
|
|
|
71
|
-
return <TimeInput2 value={getFieldValue(field)} onChange={getOnChange({ field, valueMode, emptyValue })} {...getFieldProps(field)} {...rest} />
|
|
72
|
+
return <TimeInput2 value={getFieldValue(field, timeMode)} onChange={getOnChange({ field, valueMode, emptyValue })} {...getFieldProps(field)} {...rest} />
|
|
72
73
|
}
|
package/src/utils/parseTime.ts
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
|
-
import { ZonedDateTime, fromAbsolute, getLocalTimeZone } from "@internationalized/date"
|
|
1
|
+
import { CalendarDate, CalendarDateTime, Time, ZonedDateTime, fromAbsolute, getLocalTimeZone } from "@internationalized/date"
|
|
2
2
|
|
|
3
|
-
export
|
|
4
|
-
|
|
3
|
+
export { CalendarDate, CalendarDateTime, Time, ZonedDateTime, fromAbsolute, getLocalTimeZone } from "@internationalized/date"
|
|
4
|
+
|
|
5
|
+
export type ParseMode = typeof ZonedDateTime | typeof CalendarDate | typeof CalendarDateTime | typeof Time
|
|
6
|
+
|
|
7
|
+
export type TimeMode = Exclude<ParseMode, typeof CalendarDate>
|
|
8
|
+
|
|
9
|
+
export type DateMode = Exclude<ParseMode, typeof Time>
|
|
10
|
+
|
|
11
|
+
export function parseTime<T extends ParseMode = typeof CalendarDateTime>(ms: number, type?: T): InstanceType<T> {
|
|
12
|
+
if (type === ZonedDateTime) return fromAbsolute(ms, getLocalTimeZone()) as InstanceType<T>
|
|
13
|
+
const date = new Date(ms)
|
|
14
|
+
const year = date.getFullYear()
|
|
15
|
+
const month = date.getMonth()
|
|
16
|
+
const day = date.getDate()
|
|
17
|
+
const hour = date.getHours()
|
|
18
|
+
const minute = date.getMinutes()
|
|
19
|
+
const second = date.getSeconds()
|
|
20
|
+
const millisecond = date.getMilliseconds()
|
|
21
|
+
if (type === CalendarDate) return new CalendarDate(year, month, day) as InstanceType<T>
|
|
22
|
+
if (type === Time) return new Time(hour, minute, second, millisecond) as InstanceType<T>
|
|
23
|
+
return new CalendarDateTime(year, month, day, hour, minute, second, millisecond) as InstanceType<T>
|
|
5
24
|
}
|