@impulse-ui-native/datetime 2.1.0 → 2.1.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/components/common/calendar-day.d.mts +16 -0
- package/dist/components/common/calendar-day.js +56 -0
- package/dist/components/common/calendar-day.js.map +1 -0
- package/dist/components/common/calendar.d.mts +14 -0
- package/dist/components/common/calendar.js +58 -0
- package/dist/components/common/calendar.js.map +1 -0
- package/dist/components/common/date-control.d.mts +14 -0
- package/dist/components/common/date-control.js +57 -0
- package/dist/components/common/date-control.js.map +1 -0
- package/dist/components/common/datetime-picker-flyout-actions.d.mts +15 -0
- package/dist/components/common/datetime-picker-flyout-actions.js +26 -0
- package/dist/components/common/datetime-picker-flyout-actions.js.map +1 -0
- package/dist/components/common/quick-date-options.d.mts +13 -0
- package/dist/components/common/quick-date-options.js +33 -0
- package/dist/components/common/quick-date-options.js.map +1 -0
- package/dist/components/common/visible-date-select.d.mts +11 -0
- package/dist/components/common/visible-date-select.js +70 -0
- package/dist/components/common/visible-date-select.js.map +1 -0
- package/dist/components/date/date-picker.d.mts +10 -0
- package/dist/components/date/date-picker.flyout.d.mts +12 -0
- package/dist/components/date/date-picker.flyout.js +58 -0
- package/dist/components/date/date-picker.flyout.js.map +1 -0
- package/dist/components/date/date-picker.js +61 -0
- package/dist/components/date/date-picker.js.map +1 -0
- package/dist/components/date/date-range-picker.d.mts +10 -0
- package/dist/components/date/date-range-picker.js +63 -0
- package/dist/components/date/date-range-picker.js.map +1 -0
- package/dist/components/datetime/datetime-picker.d.mts +10 -0
- package/dist/components/datetime/datetime-picker.flyout.d.mts +13 -0
- package/dist/components/datetime/datetime-picker.flyout.js +80 -0
- package/dist/components/datetime/datetime-picker.flyout.js.map +1 -0
- package/dist/components/datetime/datetime-picker.js +63 -0
- package/dist/components/datetime/datetime-picker.js.map +1 -0
- package/dist/components/datetime/datetime-range-picker.d.mts +10 -0
- package/dist/components/datetime/datetime-range-picker.flyout.d.mts +14 -0
- package/dist/components/datetime/datetime-range-picker.flyout.js +114 -0
- package/dist/components/datetime/datetime-range-picker.flyout.js.map +1 -0
- package/dist/components/datetime/datetime-range-picker.js +69 -0
- package/dist/components/datetime/datetime-range-picker.js.map +1 -0
- package/dist/components/index.d.mts +12 -0
- package/dist/components/index.js +13 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/time/picker-column.d.mts +15 -0
- package/dist/components/time/picker-column.js +177 -0
- package/dist/components/time/picker-column.js.map +1 -0
- package/dist/components/time/time-picker.d.mts +14 -0
- package/dist/components/time/time-picker.flyout.d.mts +13 -0
- package/dist/components/time/time-picker.flyout.js +153 -0
- package/dist/components/time/time-picker.flyout.js.map +1 -0
- package/dist/components/time/time-picker.js +111 -0
- package/dist/components/time/time-picker.js.map +1 -0
- package/dist/constants/index.d.mts +1 -0
- package/dist/constants/index.js +2 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/picker.constants.d.mts +11 -0
- package/dist/constants/picker.constants.js +17 -0
- package/dist/constants/picker.constants.js.map +1 -0
- package/dist/hooks/index.d.mts +6 -0
- package/dist/hooks/index.js +7 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/use-datetime-picker.hook.d.mts +32 -0
- package/dist/hooks/use-datetime-picker.hook.js +112 -0
- package/dist/hooks/use-datetime-picker.hook.js.map +1 -0
- package/dist/hooks/use-datetime-range-picker.hook.d.mts +34 -0
- package/dist/hooks/use-datetime-range-picker.hook.js +161 -0
- package/dist/hooks/use-datetime-range-picker.hook.js.map +1 -0
- package/dist/index.d.mts +14 -117
- package/dist/index.js +3 -1741
- package/dist/index.js.map +1 -1
- package/dist/types/common.types.d.mts +42 -0
- package/dist/types/common.types.js +1 -0
- package/dist/types/common.types.js.map +1 -0
- package/dist/types/datetime-picker.types.d.mts +12 -0
- package/dist/types/datetime-picker.types.js +1 -0
- package/dist/types/datetime-picker.types.js.map +1 -0
- package/dist/types/datetime-range-picker.types.d.mts +12 -0
- package/dist/types/datetime-range-picker.types.js +1 -0
- package/dist/types/datetime-range-picker.types.js.map +1 -0
- package/dist/types/index.d.mts +5 -0
- package/dist/types/index.js +4 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/calendar-day.utils.d.mts +32 -0
- package/dist/utils/calendar-day.utils.js +120 -0
- package/dist/utils/calendar-day.utils.js.map +1 -0
- package/dist/utils/datetime.utils.d.mts +22 -0
- package/dist/utils/datetime.utils.js +165 -0
- package/dist/utils/datetime.utils.js.map +1 -0
- package/dist/utils/index.d.mts +5 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +11 -10
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { memo } from "react";
|
|
3
|
+
import { Control } from "@impulse-ui-native/primitives";
|
|
4
|
+
import { useDatetimeRangePicker } from "../../hooks";
|
|
5
|
+
import { DateControl } from "../common/date-control";
|
|
6
|
+
import { DatePickerFlyout } from "./date-picker.flyout";
|
|
7
|
+
const DateRangePicker = memo(function DateRangePicker2(props) {
|
|
8
|
+
const {
|
|
9
|
+
value,
|
|
10
|
+
defaultValue,
|
|
11
|
+
onChange,
|
|
12
|
+
placeholder,
|
|
13
|
+
quickDateOptions,
|
|
14
|
+
...rest
|
|
15
|
+
} = props;
|
|
16
|
+
const {
|
|
17
|
+
id,
|
|
18
|
+
isOpen,
|
|
19
|
+
visible,
|
|
20
|
+
tempRange,
|
|
21
|
+
selected,
|
|
22
|
+
setVisible,
|
|
23
|
+
close,
|
|
24
|
+
onPressOpen,
|
|
25
|
+
onPressApply,
|
|
26
|
+
onPressCancel,
|
|
27
|
+
onPressCalendarDay,
|
|
28
|
+
onPressClear,
|
|
29
|
+
onPressQuickDateOption,
|
|
30
|
+
syncState
|
|
31
|
+
} = useDatetimeRangePicker({ value, defaultValue, onChange });
|
|
32
|
+
return /* @__PURE__ */ jsxs(DateControl, { ...rest, onPress: onPressOpen, children: [
|
|
33
|
+
selected === null ? /* @__PURE__ */ jsx(Control.Placeholder, { children: placeholder }) : null,
|
|
34
|
+
selected !== null ? /* @__PURE__ */ jsxs(Control.Value, { children: [
|
|
35
|
+
selected.start?.toDateString(),
|
|
36
|
+
" - ",
|
|
37
|
+
selected.end?.toDateString()
|
|
38
|
+
] }) : null,
|
|
39
|
+
/* @__PURE__ */ jsx(
|
|
40
|
+
DatePickerFlyout,
|
|
41
|
+
{
|
|
42
|
+
id,
|
|
43
|
+
title: "Datetime",
|
|
44
|
+
open: isOpen,
|
|
45
|
+
visible,
|
|
46
|
+
value: tempRange,
|
|
47
|
+
quickDateOptions,
|
|
48
|
+
onClose: close,
|
|
49
|
+
onCloseFinished: syncState,
|
|
50
|
+
onPressQuickDateOption,
|
|
51
|
+
onChangeVisible: setVisible,
|
|
52
|
+
onPressCalendarDay,
|
|
53
|
+
onPressApply,
|
|
54
|
+
onPressCancel,
|
|
55
|
+
onPressClear
|
|
56
|
+
}
|
|
57
|
+
)
|
|
58
|
+
] });
|
|
59
|
+
});
|
|
60
|
+
export {
|
|
61
|
+
DateRangePicker
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=date-range-picker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/date/date-range-picker.tsx"],"sourcesContent":["import { memo } from \"react\";\n\nimport { Control } from \"@impulse-ui-native/primitives\";\n\nimport { useDatetimeRangePicker } from \"../../hooks\";\nimport { DatetimeRangePickerProps } from \"../../types\";\nimport { DateControl } from \"../common/date-control\";\nimport { DatePickerFlyout } from \"./date-picker.flyout\";\n\nexport const DateRangePicker = memo(function DateRangePicker(\n props: DatetimeRangePickerProps,\n) {\n const {\n value,\n defaultValue,\n onChange,\n placeholder,\n quickDateOptions,\n ...rest\n } = props;\n\n const {\n id,\n isOpen,\n visible,\n tempRange,\n selected,\n setVisible,\n close,\n onPressOpen,\n onPressApply,\n onPressCancel,\n onPressCalendarDay,\n onPressClear,\n onPressQuickDateOption,\n syncState,\n } = useDatetimeRangePicker({ value, defaultValue, onChange });\n\n return (\n <DateControl {...rest} onPress={onPressOpen}>\n {selected === null ? (\n <Control.Placeholder>{placeholder}</Control.Placeholder>\n ) : null}\n\n {selected !== null ? (\n <Control.Value>\n {selected.start?.toDateString()} - {selected.end?.toDateString()}\n </Control.Value>\n ) : null}\n\n <DatePickerFlyout\n id={id}\n title=\"Datetime\"\n open={isOpen}\n visible={visible}\n value={tempRange}\n quickDateOptions={quickDateOptions}\n onClose={close}\n onCloseFinished={syncState}\n onPressQuickDateOption={onPressQuickDateOption}\n onChangeVisible={setVisible}\n onPressCalendarDay={onPressCalendarDay}\n onPressApply={onPressApply}\n onPressCancel={onPressCancel}\n onPressClear={onPressClear}\n />\n </DateControl>\n );\n});\n"],"mappings":"AAyCQ,cAIA,YAJA;AAzCR,SAAS,YAAY;AAErB,SAAS,eAAe;AAExB,SAAS,8BAA8B;AAEvC,SAAS,mBAAmB;AAC5B,SAAS,wBAAwB;AAE1B,MAAM,kBAAkB,KAAK,SAASA,iBAC3C,OACA;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,uBAAuB,EAAE,OAAO,cAAc,SAAS,CAAC;AAE5D,SACE,qBAAC,eAAa,GAAG,MAAM,SAAS,aAC7B;AAAA,iBAAa,OACZ,oBAAC,QAAQ,aAAR,EAAqB,uBAAY,IAChC;AAAA,IAEH,aAAa,OACZ,qBAAC,QAAQ,OAAR,EACE;AAAA,eAAS,OAAO,aAAa;AAAA,MAAE;AAAA,MAAI,SAAS,KAAK,aAAa;AAAA,OACjE,IACE;AAAA,IAEJ;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,OAAM;AAAA,QACN,MAAM;AAAA,QACN;AAAA,QACA,OAAO;AAAA,QACP;AAAA,QACA,SAAS;AAAA,QACT,iBAAiB;AAAA,QACjB;AAAA,QACA,iBAAiB;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,KACF;AAEJ,CAAC;","names":["DateRangePicker"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
|
+
import { DatetimePickerProps } from '../../types/datetime-picker.types.mjs';
|
|
4
|
+
import '../../types/common.types.mjs';
|
|
5
|
+
import '@impulse-ui-native/flyout';
|
|
6
|
+
import '@impulse-ui-native/primitives';
|
|
7
|
+
|
|
8
|
+
declare const DatetimePicker: react.MemoExoticComponent<(props: DatetimePickerProps) => react_jsx_runtime.JSX.Element>;
|
|
9
|
+
|
|
10
|
+
export { DatetimePicker };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
|
+
import { DatetimePickerFlyoutCommonProps, TimePickerValue } from '../../types/common.types.mjs';
|
|
4
|
+
import '@impulse-ui-native/flyout';
|
|
5
|
+
import '@impulse-ui-native/primitives';
|
|
6
|
+
|
|
7
|
+
interface DatetimePickerFlyoutProps extends DatetimePickerFlyoutCommonProps {
|
|
8
|
+
value: Date | null | undefined;
|
|
9
|
+
onChangeTime?: (value: TimePickerValue | null) => void;
|
|
10
|
+
}
|
|
11
|
+
declare const DatetimePickerFlyout: react.MemoExoticComponent<(props: DatetimePickerFlyoutProps) => react_jsx_runtime.JSX.Element>;
|
|
12
|
+
|
|
13
|
+
export { DatetimePickerFlyout, type DatetimePickerFlyoutProps };
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { memo, useMemo } from "react";
|
|
3
|
+
import { Flyout } from "@impulse-ui-native/flyout";
|
|
4
|
+
import { Portal } from "@impulse-ui-native/portal";
|
|
5
|
+
import { View } from "@impulse-ui-native/primitives";
|
|
6
|
+
import { useComponentsTokens } from "@impulse-ui-native/theme";
|
|
7
|
+
import { Calendar } from "../common/calendar";
|
|
8
|
+
import { DatetimePickerFlyoutActions } from "../common/datetime-picker-flyout-actions";
|
|
9
|
+
import { QuickDateOptions } from "../common/quick-date-options";
|
|
10
|
+
import { VisibleDateSelect } from "../common/visible-date-select";
|
|
11
|
+
import { TimePicker } from "../time/time-picker";
|
|
12
|
+
const DatetimePickerFlyout = memo(function DateRangePickerFlyout(props) {
|
|
13
|
+
const {
|
|
14
|
+
visible,
|
|
15
|
+
value,
|
|
16
|
+
clearable,
|
|
17
|
+
quickDateOptions,
|
|
18
|
+
onPressQuickDateOption,
|
|
19
|
+
onChangeVisible,
|
|
20
|
+
onPressCalendarDay,
|
|
21
|
+
onChangeTime,
|
|
22
|
+
onPressClear,
|
|
23
|
+
onPressCancel,
|
|
24
|
+
onPressApply,
|
|
25
|
+
...rest
|
|
26
|
+
} = props;
|
|
27
|
+
const tokens = useComponentsTokens();
|
|
28
|
+
const datetimePickerTokens = tokens.datetimePicker.datetimePickerFlyout;
|
|
29
|
+
const timeValue = useMemo(() => {
|
|
30
|
+
if (value) {
|
|
31
|
+
return {
|
|
32
|
+
hours: value.getHours(),
|
|
33
|
+
minutes: value.getMinutes(),
|
|
34
|
+
seconds: value.getSeconds()
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
return null;
|
|
38
|
+
}, [value]);
|
|
39
|
+
return /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsx(Flyout, { ...rest, children: /* @__PURE__ */ jsxs(View, { gap: datetimePickerTokens.gap, children: [
|
|
40
|
+
/* @__PURE__ */ jsx(VisibleDateSelect, { value: visible, onChange: onChangeVisible }),
|
|
41
|
+
/* @__PURE__ */ jsx(
|
|
42
|
+
Calendar,
|
|
43
|
+
{
|
|
44
|
+
value,
|
|
45
|
+
visible,
|
|
46
|
+
onPress: onPressCalendarDay
|
|
47
|
+
}
|
|
48
|
+
),
|
|
49
|
+
/* @__PURE__ */ jsx(
|
|
50
|
+
TimePicker,
|
|
51
|
+
{
|
|
52
|
+
value: timeValue,
|
|
53
|
+
clearable: false,
|
|
54
|
+
defaultValue: timeValue,
|
|
55
|
+
onChange: onChangeTime,
|
|
56
|
+
placeholder: "00:00:00"
|
|
57
|
+
}
|
|
58
|
+
),
|
|
59
|
+
quickDateOptions && quickDateOptions.length > 0 ? /* @__PURE__ */ jsx(
|
|
60
|
+
QuickDateOptions,
|
|
61
|
+
{
|
|
62
|
+
options: quickDateOptions,
|
|
63
|
+
onPress: onPressQuickDateOption
|
|
64
|
+
}
|
|
65
|
+
) : null,
|
|
66
|
+
/* @__PURE__ */ jsx(
|
|
67
|
+
DatetimePickerFlyoutActions,
|
|
68
|
+
{
|
|
69
|
+
canClear: Boolean(value && clearable),
|
|
70
|
+
onPressApply,
|
|
71
|
+
onPressCancel,
|
|
72
|
+
onPressClear
|
|
73
|
+
}
|
|
74
|
+
)
|
|
75
|
+
] }) }) });
|
|
76
|
+
});
|
|
77
|
+
export {
|
|
78
|
+
DatetimePickerFlyout
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=datetime-picker.flyout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/datetime/datetime-picker.flyout.tsx"],"sourcesContent":["import { memo, useMemo } from \"react\";\n\nimport { Flyout } from \"@impulse-ui-native/flyout\";\nimport { Portal } from \"@impulse-ui-native/portal\";\nimport { View } from \"@impulse-ui-native/primitives\";\nimport { useComponentsTokens } from \"@impulse-ui-native/theme\";\n\nimport { DatetimePickerFlyoutCommonProps, TimePickerValue } from \"../../types\";\nimport { Calendar } from \"../common/calendar\";\nimport { DatetimePickerFlyoutActions } from \"../common/datetime-picker-flyout-actions\";\nimport { QuickDateOptions } from \"../common/quick-date-options\";\nimport { VisibleDateSelect } from \"../common/visible-date-select\";\nimport { TimePicker } from \"../time/time-picker\";\n\nexport interface DatetimePickerFlyoutProps extends DatetimePickerFlyoutCommonProps {\n value: Date | null | undefined;\n onChangeTime?: (value: TimePickerValue | null) => void;\n}\n\nexport const DatetimePickerFlyout = memo(function DateRangePickerFlyout(\n props: DatetimePickerFlyoutProps,\n) {\n const {\n visible,\n value,\n clearable,\n quickDateOptions,\n onPressQuickDateOption,\n onChangeVisible,\n onPressCalendarDay,\n onChangeTime,\n onPressClear,\n onPressCancel,\n onPressApply,\n ...rest\n } = props;\n\n const tokens = useComponentsTokens();\n const datetimePickerTokens = tokens.datetimePicker.datetimePickerFlyout;\n\n const timeValue = useMemo<TimePickerValue | null>(() => {\n if (value) {\n return {\n hours: value.getHours(),\n minutes: value.getMinutes(),\n seconds: value.getSeconds(),\n };\n }\n\n return null;\n }, [value]);\n\n return (\n <Portal>\n <Flyout {...rest}>\n <View gap={datetimePickerTokens.gap}>\n <VisibleDateSelect value={visible} onChange={onChangeVisible} />\n <Calendar\n value={value}\n visible={visible}\n onPress={onPressCalendarDay}\n />\n <TimePicker\n value={timeValue}\n clearable={false}\n defaultValue={timeValue}\n onChange={onChangeTime}\n placeholder=\"00:00:00\"\n />\n {quickDateOptions && quickDateOptions.length > 0 ? (\n <QuickDateOptions\n options={quickDateOptions}\n onPress={onPressQuickDateOption}\n />\n ) : null}\n <DatetimePickerFlyoutActions\n canClear={Boolean(value && clearable)}\n onPressApply={onPressApply}\n onPressCancel={onPressCancel}\n onPressClear={onPressClear}\n />\n </View>\n </Flyout>\n </Portal>\n );\n});\n"],"mappings":"AAuDQ,SACE,KADF;AAvDR,SAAS,MAAM,eAAe;AAE9B,SAAS,cAAc;AACvB,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,2BAA2B;AAGpC,SAAS,gBAAgB;AACzB,SAAS,mCAAmC;AAC5C,SAAS,wBAAwB;AACjC,SAAS,yBAAyB;AAClC,SAAS,kBAAkB;AAOpB,MAAM,uBAAuB,KAAK,SAAS,sBAChD,OACA;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,SAAS,oBAAoB;AACnC,QAAM,uBAAuB,OAAO,eAAe;AAEnD,QAAM,YAAY,QAAgC,MAAM;AACtD,QAAI,OAAO;AACT,aAAO;AAAA,QACL,OAAO,MAAM,SAAS;AAAA,QACtB,SAAS,MAAM,WAAW;AAAA,QAC1B,SAAS,MAAM,WAAW;AAAA,MAC5B;AAAA,IACF;AAEA,WAAO;AAAA,EACT,GAAG,CAAC,KAAK,CAAC;AAEV,SACE,oBAAC,UACC,8BAAC,UAAQ,GAAG,MACV,+BAAC,QAAK,KAAK,qBAAqB,KAC9B;AAAA,wBAAC,qBAAkB,OAAO,SAAS,UAAU,iBAAiB;AAAA,IAC9D;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,SAAS;AAAA;AAAA,IACX;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc;AAAA,QACd,UAAU;AAAA,QACV,aAAY;AAAA;AAAA,IACd;AAAA,IACC,oBAAoB,iBAAiB,SAAS,IAC7C;AAAA,MAAC;AAAA;AAAA,QACC,SAAS;AAAA,QACT,SAAS;AAAA;AAAA,IACX,IACE;AAAA,IACJ;AAAA,MAAC;AAAA;AAAA,QACC,UAAU,QAAQ,SAAS,SAAS;AAAA,QACpC;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,KACF,GACF,GACF;AAEJ,CAAC;","names":[]}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { memo } from "react";
|
|
3
|
+
import { Control } from "@impulse-ui-native/primitives";
|
|
4
|
+
import { useDatetimePicker } from "../../hooks";
|
|
5
|
+
import { DateControl } from "../common/date-control";
|
|
6
|
+
import { DatetimePickerFlyout } from "./datetime-picker.flyout";
|
|
7
|
+
const DatetimePicker = memo(function DatetimePicker2(props) {
|
|
8
|
+
const {
|
|
9
|
+
value,
|
|
10
|
+
defaultValue,
|
|
11
|
+
clearable = true,
|
|
12
|
+
onChange,
|
|
13
|
+
placeholder,
|
|
14
|
+
quickDateOptions,
|
|
15
|
+
...rest
|
|
16
|
+
} = props;
|
|
17
|
+
const {
|
|
18
|
+
id,
|
|
19
|
+
isOpen,
|
|
20
|
+
visible,
|
|
21
|
+
tempDate,
|
|
22
|
+
selected,
|
|
23
|
+
setVisible,
|
|
24
|
+
close,
|
|
25
|
+
onPressOpen,
|
|
26
|
+
onPressApply,
|
|
27
|
+
onPressCancel,
|
|
28
|
+
onPressCalendarDay,
|
|
29
|
+
onChangeTime,
|
|
30
|
+
onPressClear,
|
|
31
|
+
onPressQuickDateOption,
|
|
32
|
+
syncState
|
|
33
|
+
} = useDatetimePicker({ value, defaultValue, onChange });
|
|
34
|
+
return /* @__PURE__ */ jsxs(DateControl, { ...rest, onPress: onPressOpen, children: [
|
|
35
|
+
selected === null ? /* @__PURE__ */ jsx(Control.Placeholder, { children: placeholder }) : null,
|
|
36
|
+
selected !== null ? /* @__PURE__ */ jsx(Control.Value, { children: selected.toLocaleString() }) : null,
|
|
37
|
+
/* @__PURE__ */ jsx(
|
|
38
|
+
DatetimePickerFlyout,
|
|
39
|
+
{
|
|
40
|
+
id,
|
|
41
|
+
open: isOpen,
|
|
42
|
+
title: "Date",
|
|
43
|
+
visible,
|
|
44
|
+
value: tempDate,
|
|
45
|
+
clearable,
|
|
46
|
+
quickDateOptions,
|
|
47
|
+
onClose: close,
|
|
48
|
+
onCloseFinished: syncState,
|
|
49
|
+
onPressQuickDateOption,
|
|
50
|
+
onChangeVisible: setVisible,
|
|
51
|
+
onPressCalendarDay,
|
|
52
|
+
onChangeTime,
|
|
53
|
+
onPressApply,
|
|
54
|
+
onPressCancel,
|
|
55
|
+
onPressClear
|
|
56
|
+
}
|
|
57
|
+
)
|
|
58
|
+
] });
|
|
59
|
+
});
|
|
60
|
+
export {
|
|
61
|
+
DatetimePicker
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=datetime-picker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/datetime/datetime-picker.tsx"],"sourcesContent":["import { memo } from \"react\";\n\nimport { Control } from \"@impulse-ui-native/primitives\";\n\nimport { useDatetimePicker } from \"../../hooks\";\nimport { DatetimePickerProps } from \"../../types\";\nimport { DateControl } from \"../common/date-control\";\nimport { DatetimePickerFlyout } from \"./datetime-picker.flyout\";\n\nexport const DatetimePicker = memo(function DatetimePicker(\n props: DatetimePickerProps,\n) {\n const {\n value,\n defaultValue,\n clearable = true,\n onChange,\n placeholder,\n quickDateOptions,\n ...rest\n } = props;\n\n const {\n id,\n isOpen,\n visible,\n tempDate,\n selected,\n setVisible,\n close,\n onPressOpen,\n onPressApply,\n onPressCancel,\n onPressCalendarDay,\n onChangeTime,\n onPressClear,\n onPressQuickDateOption,\n syncState,\n } = useDatetimePicker({ value, defaultValue, onChange });\n\n return (\n <DateControl {...rest} onPress={onPressOpen}>\n {selected === null ? (\n <Control.Placeholder>{placeholder}</Control.Placeholder>\n ) : null}\n\n {selected !== null ? (\n <Control.Value>{selected.toLocaleString()}</Control.Value>\n ) : null}\n\n <DatetimePickerFlyout\n id={id}\n open={isOpen}\n title=\"Date\"\n visible={visible}\n value={tempDate}\n clearable={clearable}\n quickDateOptions={quickDateOptions}\n onClose={close}\n onCloseFinished={syncState}\n onPressQuickDateOption={onPressQuickDateOption}\n onChangeVisible={setVisible}\n onPressCalendarDay={onPressCalendarDay}\n onChangeTime={onChangeTime}\n onPressApply={onPressApply}\n onPressCancel={onPressCancel}\n onPressClear={onPressClear}\n />\n </DateControl>\n );\n});\n"],"mappings":"AAyCI,SAEI,KAFJ;AAzCJ,SAAS,YAAY;AAErB,SAAS,eAAe;AAExB,SAAS,yBAAyB;AAElC,SAAS,mBAAmB;AAC5B,SAAS,4BAA4B;AAE9B,MAAM,iBAAiB,KAAK,SAASA,gBAC1C,OACA;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,kBAAkB,EAAE,OAAO,cAAc,SAAS,CAAC;AAEvD,SACE,qBAAC,eAAa,GAAG,MAAM,SAAS,aAC7B;AAAA,iBAAa,OACZ,oBAAC,QAAQ,aAAR,EAAqB,uBAAY,IAChC;AAAA,IAEH,aAAa,OACZ,oBAAC,QAAQ,OAAR,EAAe,mBAAS,eAAe,GAAE,IACxC;AAAA,IAEJ;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,MAAM;AAAA,QACN,OAAM;AAAA,QACN;AAAA,QACA,OAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA,SAAS;AAAA,QACT,iBAAiB;AAAA,QACjB;AAAA,QACA,iBAAiB;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,KACF;AAEJ,CAAC;","names":["DatetimePicker"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
|
+
import { DatetimeRangePickerProps } from '../../types/datetime-range-picker.types.mjs';
|
|
4
|
+
import '../../types/common.types.mjs';
|
|
5
|
+
import '@impulse-ui-native/flyout';
|
|
6
|
+
import '@impulse-ui-native/primitives';
|
|
7
|
+
|
|
8
|
+
declare const DatetimeRangePicker: react.MemoExoticComponent<(props: DatetimeRangePickerProps) => react_jsx_runtime.JSX.Element>;
|
|
9
|
+
|
|
10
|
+
export { DatetimeRangePicker };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
|
+
import { DatetimePickerFlyoutCommonProps, TimeRange, TimePickerValue } from '../../types/common.types.mjs';
|
|
4
|
+
import '@impulse-ui-native/flyout';
|
|
5
|
+
import '@impulse-ui-native/primitives';
|
|
6
|
+
|
|
7
|
+
interface DatetimeRangePickerFlyoutProps extends DatetimePickerFlyoutCommonProps {
|
|
8
|
+
value: TimeRange | null | undefined;
|
|
9
|
+
onChangeStartTime?: (value: TimePickerValue | null) => void;
|
|
10
|
+
onChangeEndTime?: (value: TimePickerValue | null) => void;
|
|
11
|
+
}
|
|
12
|
+
declare const DatetimeRangePickerFlyout: react.MemoExoticComponent<(props: DatetimeRangePickerFlyoutProps) => react_jsx_runtime.JSX.Element>;
|
|
13
|
+
|
|
14
|
+
export { DatetimeRangePickerFlyout, type DatetimeRangePickerFlyoutProps };
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { memo, useMemo } from "react";
|
|
3
|
+
import { Flyout } from "@impulse-ui-native/flyout";
|
|
4
|
+
import { Portal } from "@impulse-ui-native/portal";
|
|
5
|
+
import { View } from "@impulse-ui-native/primitives";
|
|
6
|
+
import { useComponentsTokens } from "@impulse-ui-native/theme";
|
|
7
|
+
import { Calendar } from "../common/calendar";
|
|
8
|
+
import { DatetimePickerFlyoutActions } from "../common/datetime-picker-flyout-actions";
|
|
9
|
+
import { QuickDateOptions } from "../common/quick-date-options";
|
|
10
|
+
import { VisibleDateSelect } from "../common/visible-date-select";
|
|
11
|
+
import { TimePicker } from "../time/time-picker";
|
|
12
|
+
const DatetimeRangePickerFlyout = memo(
|
|
13
|
+
function DatetimeRangePickerFlyout2(props) {
|
|
14
|
+
const {
|
|
15
|
+
visible,
|
|
16
|
+
value,
|
|
17
|
+
clearable,
|
|
18
|
+
quickDateOptions,
|
|
19
|
+
onPressQuickDateOption,
|
|
20
|
+
onChangeVisible,
|
|
21
|
+
onPressCalendarDay,
|
|
22
|
+
onChangeStartTime,
|
|
23
|
+
onChangeEndTime,
|
|
24
|
+
onPressClear,
|
|
25
|
+
onPressCancel,
|
|
26
|
+
onPressApply,
|
|
27
|
+
...rest
|
|
28
|
+
} = props;
|
|
29
|
+
const tokens = useComponentsTokens();
|
|
30
|
+
const datetimeRangePickerTokens = tokens.datetimePicker.datetimeRangePickerFlyout;
|
|
31
|
+
const timeStartValue = useMemo(() => {
|
|
32
|
+
if (value?.start) {
|
|
33
|
+
return {
|
|
34
|
+
hours: value.start.getHours(),
|
|
35
|
+
minutes: value.start.getMinutes(),
|
|
36
|
+
seconds: value.start.getSeconds()
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
return null;
|
|
40
|
+
}, [value?.start]);
|
|
41
|
+
const timeEndValue = useMemo(() => {
|
|
42
|
+
if (value?.end) {
|
|
43
|
+
return {
|
|
44
|
+
hours: value.end.getHours(),
|
|
45
|
+
minutes: value.end.getMinutes(),
|
|
46
|
+
seconds: value.end.getSeconds()
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
return null;
|
|
50
|
+
}, [value?.end]);
|
|
51
|
+
return /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsx(Flyout, { ...rest, children: /* @__PURE__ */ jsxs(View, { gap: datetimeRangePickerTokens.gap, children: [
|
|
52
|
+
/* @__PURE__ */ jsx(VisibleDateSelect, { value: visible, onChange: onChangeVisible }),
|
|
53
|
+
/* @__PURE__ */ jsx(
|
|
54
|
+
Calendar,
|
|
55
|
+
{
|
|
56
|
+
value,
|
|
57
|
+
visible,
|
|
58
|
+
onPress: onPressCalendarDay
|
|
59
|
+
}
|
|
60
|
+
),
|
|
61
|
+
/* @__PURE__ */ jsxs(
|
|
62
|
+
View,
|
|
63
|
+
{
|
|
64
|
+
flexDirection: "row",
|
|
65
|
+
gap: datetimeRangePickerTokens.timeInputsGap,
|
|
66
|
+
children: [
|
|
67
|
+
/* @__PURE__ */ jsx(View, { flex: 1, children: /* @__PURE__ */ jsx(
|
|
68
|
+
TimePicker,
|
|
69
|
+
{
|
|
70
|
+
value: timeStartValue,
|
|
71
|
+
defaultValue: timeStartValue,
|
|
72
|
+
clearable: false,
|
|
73
|
+
onChange: onChangeStartTime,
|
|
74
|
+
label: "Start time",
|
|
75
|
+
placeholder: "00:00:00"
|
|
76
|
+
}
|
|
77
|
+
) }),
|
|
78
|
+
/* @__PURE__ */ jsx(View, { flex: 1, children: /* @__PURE__ */ jsx(
|
|
79
|
+
TimePicker,
|
|
80
|
+
{
|
|
81
|
+
value: timeEndValue,
|
|
82
|
+
defaultValue: timeEndValue,
|
|
83
|
+
clearable: false,
|
|
84
|
+
onChange: onChangeEndTime,
|
|
85
|
+
label: "End time",
|
|
86
|
+
placeholder: "00:00:00"
|
|
87
|
+
}
|
|
88
|
+
) })
|
|
89
|
+
]
|
|
90
|
+
}
|
|
91
|
+
),
|
|
92
|
+
quickDateOptions && quickDateOptions.length > 0 ? /* @__PURE__ */ jsx(
|
|
93
|
+
QuickDateOptions,
|
|
94
|
+
{
|
|
95
|
+
options: quickDateOptions,
|
|
96
|
+
onPress: onPressQuickDateOption
|
|
97
|
+
}
|
|
98
|
+
) : null,
|
|
99
|
+
/* @__PURE__ */ jsx(
|
|
100
|
+
DatetimePickerFlyoutActions,
|
|
101
|
+
{
|
|
102
|
+
canClear: Boolean(value && clearable),
|
|
103
|
+
onPressApply,
|
|
104
|
+
onPressCancel,
|
|
105
|
+
onPressClear
|
|
106
|
+
}
|
|
107
|
+
)
|
|
108
|
+
] }) }) });
|
|
109
|
+
}
|
|
110
|
+
);
|
|
111
|
+
export {
|
|
112
|
+
DatetimeRangePickerFlyout
|
|
113
|
+
};
|
|
114
|
+
//# sourceMappingURL=datetime-range-picker.flyout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/datetime/datetime-range-picker.flyout.tsx"],"sourcesContent":["import { memo, useMemo } from \"react\";\n\nimport { Flyout } from \"@impulse-ui-native/flyout\";\nimport { Portal } from \"@impulse-ui-native/portal\";\nimport { View } from \"@impulse-ui-native/primitives\";\nimport { useComponentsTokens } from \"@impulse-ui-native/theme\";\n\nimport {\n DatetimePickerFlyoutCommonProps,\n TimePickerValue,\n TimeRange,\n} from \"../../types\";\nimport { Calendar } from \"../common/calendar\";\nimport { DatetimePickerFlyoutActions } from \"../common/datetime-picker-flyout-actions\";\nimport { QuickDateOptions } from \"../common/quick-date-options\";\nimport { VisibleDateSelect } from \"../common/visible-date-select\";\nimport { TimePicker } from \"../time/time-picker\";\n\nexport interface DatetimeRangePickerFlyoutProps extends DatetimePickerFlyoutCommonProps {\n value: TimeRange | null | undefined;\n onChangeStartTime?: (value: TimePickerValue | null) => void;\n onChangeEndTime?: (value: TimePickerValue | null) => void;\n}\n\nexport const DatetimeRangePickerFlyout = memo(\n function DatetimeRangePickerFlyout(props: DatetimeRangePickerFlyoutProps) {\n const {\n visible,\n value,\n clearable,\n quickDateOptions,\n onPressQuickDateOption,\n onChangeVisible,\n onPressCalendarDay,\n onChangeStartTime,\n onChangeEndTime,\n onPressClear,\n onPressCancel,\n onPressApply,\n ...rest\n } = props;\n\n const tokens = useComponentsTokens();\n const datetimeRangePickerTokens =\n tokens.datetimePicker.datetimeRangePickerFlyout;\n\n const timeStartValue = useMemo<TimePickerValue | null>(() => {\n if (value?.start) {\n return {\n hours: value.start.getHours(),\n minutes: value.start.getMinutes(),\n seconds: value.start.getSeconds(),\n };\n }\n\n return null;\n }, [value?.start]);\n\n const timeEndValue = useMemo<TimePickerValue | null>(() => {\n if (value?.end) {\n return {\n hours: value.end.getHours(),\n minutes: value.end.getMinutes(),\n seconds: value.end.getSeconds(),\n };\n }\n\n return null;\n }, [value?.end]);\n\n return (\n <Portal>\n <Flyout {...rest}>\n <View gap={datetimeRangePickerTokens.gap}>\n <VisibleDateSelect value={visible} onChange={onChangeVisible} />\n <Calendar\n value={value}\n visible={visible}\n onPress={onPressCalendarDay}\n />\n\n <View\n flexDirection=\"row\"\n gap={datetimeRangePickerTokens.timeInputsGap}\n >\n <View flex={1}>\n <TimePicker\n value={timeStartValue}\n defaultValue={timeStartValue}\n clearable={false}\n onChange={onChangeStartTime}\n label=\"Start time\"\n placeholder=\"00:00:00\"\n />\n </View>\n <View flex={1}>\n <TimePicker\n value={timeEndValue}\n defaultValue={timeEndValue}\n clearable={false}\n onChange={onChangeEndTime}\n label=\"End time\"\n placeholder=\"00:00:00\"\n />\n </View>\n </View>\n\n {quickDateOptions && quickDateOptions.length > 0 ? (\n <QuickDateOptions\n options={quickDateOptions}\n onPress={onPressQuickDateOption}\n />\n ) : null}\n <DatetimePickerFlyoutActions\n canClear={Boolean(value && clearable)}\n onPressApply={onPressApply}\n onPressCancel={onPressCancel}\n onPressClear={onPressClear}\n />\n </View>\n </Flyout>\n </Portal>\n );\n },\n);\n"],"mappings":"AA0EY,cAOA,YAPA;AA1EZ,SAAS,MAAM,eAAe;AAE9B,SAAS,cAAc;AACvB,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,2BAA2B;AAOpC,SAAS,gBAAgB;AACzB,SAAS,mCAAmC;AAC5C,SAAS,wBAAwB;AACjC,SAAS,yBAAyB;AAClC,SAAS,kBAAkB;AAQpB,MAAM,4BAA4B;AAAA,EACvC,SAASA,2BAA0B,OAAuC;AACxE,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IACL,IAAI;AAEJ,UAAM,SAAS,oBAAoB;AACnC,UAAM,4BACJ,OAAO,eAAe;AAExB,UAAM,iBAAiB,QAAgC,MAAM;AAC3D,UAAI,OAAO,OAAO;AAChB,eAAO;AAAA,UACL,OAAO,MAAM,MAAM,SAAS;AAAA,UAC5B,SAAS,MAAM,MAAM,WAAW;AAAA,UAChC,SAAS,MAAM,MAAM,WAAW;AAAA,QAClC;AAAA,MACF;AAEA,aAAO;AAAA,IACT,GAAG,CAAC,OAAO,KAAK,CAAC;AAEjB,UAAM,eAAe,QAAgC,MAAM;AACzD,UAAI,OAAO,KAAK;AACd,eAAO;AAAA,UACL,OAAO,MAAM,IAAI,SAAS;AAAA,UAC1B,SAAS,MAAM,IAAI,WAAW;AAAA,UAC9B,SAAS,MAAM,IAAI,WAAW;AAAA,QAChC;AAAA,MACF;AAEA,aAAO;AAAA,IACT,GAAG,CAAC,OAAO,GAAG,CAAC;AAEf,WACE,oBAAC,UACC,8BAAC,UAAQ,GAAG,MACV,+BAAC,QAAK,KAAK,0BAA0B,KACnC;AAAA,0BAAC,qBAAkB,OAAO,SAAS,UAAU,iBAAiB;AAAA,MAC9D;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA,SAAS;AAAA;AAAA,MACX;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACC,eAAc;AAAA,UACd,KAAK,0BAA0B;AAAA,UAE/B;AAAA,gCAAC,QAAK,MAAM,GACV;AAAA,cAAC;AAAA;AAAA,gBACC,OAAO;AAAA,gBACP,cAAc;AAAA,gBACd,WAAW;AAAA,gBACX,UAAU;AAAA,gBACV,OAAM;AAAA,gBACN,aAAY;AAAA;AAAA,YACd,GACF;AAAA,YACA,oBAAC,QAAK,MAAM,GACV;AAAA,cAAC;AAAA;AAAA,gBACC,OAAO;AAAA,gBACP,cAAc;AAAA,gBACd,WAAW;AAAA,gBACX,UAAU;AAAA,gBACV,OAAM;AAAA,gBACN,aAAY;AAAA;AAAA,YACd,GACF;AAAA;AAAA;AAAA,MACF;AAAA,MAEC,oBAAoB,iBAAiB,SAAS,IAC7C;AAAA,QAAC;AAAA;AAAA,UACC,SAAS;AAAA,UACT,SAAS;AAAA;AAAA,MACX,IACE;AAAA,MACJ;AAAA,QAAC;AAAA;AAAA,UACC,UAAU,QAAQ,SAAS,SAAS;AAAA,UACpC;AAAA,UACA;AAAA,UACA;AAAA;AAAA,MACF;AAAA,OACF,GACF,GACF;AAAA,EAEJ;AACF;","names":["DatetimeRangePickerFlyout"]}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { memo } from "react";
|
|
3
|
+
import { Control } from "@impulse-ui-native/primitives";
|
|
4
|
+
import { useDatetimeRangePicker } from "../../hooks";
|
|
5
|
+
import { DateControl } from "../common/date-control";
|
|
6
|
+
import { DatetimeRangePickerFlyout } from "./datetime-range-picker.flyout";
|
|
7
|
+
const DatetimeRangePicker = memo(function DatetimeRangePicker2(props) {
|
|
8
|
+
const {
|
|
9
|
+
value,
|
|
10
|
+
defaultValue,
|
|
11
|
+
clearable = true,
|
|
12
|
+
onChange,
|
|
13
|
+
placeholder,
|
|
14
|
+
quickDateOptions,
|
|
15
|
+
...rest
|
|
16
|
+
} = props;
|
|
17
|
+
const {
|
|
18
|
+
id,
|
|
19
|
+
isOpen,
|
|
20
|
+
visible,
|
|
21
|
+
tempRange,
|
|
22
|
+
selected,
|
|
23
|
+
setVisible,
|
|
24
|
+
close,
|
|
25
|
+
onPressOpen,
|
|
26
|
+
onPressApply,
|
|
27
|
+
onPressCancel,
|
|
28
|
+
onPressCalendarDay,
|
|
29
|
+
onChangeStartTime,
|
|
30
|
+
onChangeEndTime,
|
|
31
|
+
onPressClear,
|
|
32
|
+
onPressQuickDateOption,
|
|
33
|
+
syncState
|
|
34
|
+
} = useDatetimeRangePicker({ value, defaultValue, onChange });
|
|
35
|
+
return /* @__PURE__ */ jsxs(DateControl, { ...rest, onPress: onPressOpen, children: [
|
|
36
|
+
selected === null ? /* @__PURE__ */ jsx(Control.Placeholder, { children: placeholder }) : null,
|
|
37
|
+
selected !== null ? /* @__PURE__ */ jsxs(Control.Value, { children: [
|
|
38
|
+
selected.start?.toLocaleString(),
|
|
39
|
+
" - ",
|
|
40
|
+
selected.end?.toLocaleString()
|
|
41
|
+
] }) : null,
|
|
42
|
+
/* @__PURE__ */ jsx(
|
|
43
|
+
DatetimeRangePickerFlyout,
|
|
44
|
+
{
|
|
45
|
+
id,
|
|
46
|
+
open: isOpen,
|
|
47
|
+
title: "Date",
|
|
48
|
+
visible,
|
|
49
|
+
value: tempRange,
|
|
50
|
+
clearable,
|
|
51
|
+
quickDateOptions,
|
|
52
|
+
onClose: close,
|
|
53
|
+
onCloseFinished: syncState,
|
|
54
|
+
onPressQuickDateOption,
|
|
55
|
+
onChangeVisible: setVisible,
|
|
56
|
+
onPressCalendarDay,
|
|
57
|
+
onChangeStartTime,
|
|
58
|
+
onChangeEndTime,
|
|
59
|
+
onPressApply,
|
|
60
|
+
onPressCancel,
|
|
61
|
+
onPressClear
|
|
62
|
+
}
|
|
63
|
+
)
|
|
64
|
+
] });
|
|
65
|
+
});
|
|
66
|
+
export {
|
|
67
|
+
DatetimeRangePicker
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=datetime-range-picker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/datetime/datetime-range-picker.tsx"],"sourcesContent":["import { memo } from \"react\";\n\nimport { Control } from \"@impulse-ui-native/primitives\";\n\nimport { useDatetimeRangePicker } from \"../../hooks\";\nimport { DatetimeRangePickerProps } from \"../../types\";\nimport { DateControl } from \"../common/date-control\";\nimport { DatetimeRangePickerFlyout } from \"./datetime-range-picker.flyout\";\n\nexport const DatetimeRangePicker = memo(function DatetimeRangePicker(\n props: DatetimeRangePickerProps,\n) {\n const {\n value,\n defaultValue,\n clearable = true,\n onChange,\n placeholder,\n quickDateOptions,\n ...rest\n } = props;\n\n const {\n id,\n isOpen,\n visible,\n tempRange,\n selected,\n setVisible,\n close,\n onPressOpen,\n onPressApply,\n onPressCancel,\n onPressCalendarDay,\n onChangeStartTime,\n onChangeEndTime,\n onPressClear,\n onPressQuickDateOption,\n syncState,\n } = useDatetimeRangePicker({ value, defaultValue, onChange });\n\n return (\n <DateControl {...rest} onPress={onPressOpen}>\n {selected === null ? (\n <Control.Placeholder>{placeholder}</Control.Placeholder>\n ) : null}\n\n {selected !== null ? (\n <Control.Value>\n {selected.start?.toLocaleString()} - {selected.end?.toLocaleString()}\n </Control.Value>\n ) : null}\n\n <DatetimeRangePickerFlyout\n id={id}\n open={isOpen}\n title=\"Date\"\n visible={visible}\n value={tempRange}\n clearable={clearable}\n quickDateOptions={quickDateOptions}\n onClose={close}\n onCloseFinished={syncState}\n onPressQuickDateOption={onPressQuickDateOption}\n onChangeVisible={setVisible}\n onPressCalendarDay={onPressCalendarDay}\n onChangeStartTime={onChangeStartTime}\n onChangeEndTime={onChangeEndTime}\n onPressApply={onPressApply}\n onPressCancel={onPressCancel}\n onPressClear={onPressClear}\n />\n </DateControl>\n );\n});\n"],"mappings":"AA4CQ,cAIA,YAJA;AA5CR,SAAS,YAAY;AAErB,SAAS,eAAe;AAExB,SAAS,8BAA8B;AAEvC,SAAS,mBAAmB;AAC5B,SAAS,iCAAiC;AAEnC,MAAM,sBAAsB,KAAK,SAASA,qBAC/C,OACA;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,uBAAuB,EAAE,OAAO,cAAc,SAAS,CAAC;AAE5D,SACE,qBAAC,eAAa,GAAG,MAAM,SAAS,aAC7B;AAAA,iBAAa,OACZ,oBAAC,QAAQ,aAAR,EAAqB,uBAAY,IAChC;AAAA,IAEH,aAAa,OACZ,qBAAC,QAAQ,OAAR,EACE;AAAA,eAAS,OAAO,eAAe;AAAA,MAAE;AAAA,MAAI,SAAS,KAAK,eAAe;AAAA,OACrE,IACE;AAAA,IAEJ;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,MAAM;AAAA,QACN,OAAM;AAAA,QACN;AAAA,QACA,OAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA,SAAS;AAAA,QACT,iBAAiB;AAAA,QACjB;AAAA,QACA,iBAAiB;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,KACF;AAEJ,CAAC;","names":["DatetimeRangePicker"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { DatePicker } from './date/date-picker.mjs';
|
|
2
|
+
export { DateRangePicker } from './date/date-range-picker.mjs';
|
|
3
|
+
export { DatetimePicker } from './datetime/datetime-picker.mjs';
|
|
4
|
+
export { DatetimeRangePicker } from './datetime/datetime-range-picker.mjs';
|
|
5
|
+
export { TimePicker } from './time/time-picker.mjs';
|
|
6
|
+
import 'react';
|
|
7
|
+
import 'react/jsx-runtime';
|
|
8
|
+
import '../types/datetime-picker.types.mjs';
|
|
9
|
+
import '../types/common.types.mjs';
|
|
10
|
+
import '@impulse-ui-native/flyout';
|
|
11
|
+
import '@impulse-ui-native/primitives';
|
|
12
|
+
import '../types/datetime-range-picker.types.mjs';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { DatePicker } from "./date/date-picker";
|
|
2
|
+
import { DateRangePicker } from "./date/date-range-picker";
|
|
3
|
+
import { DatetimePicker } from "./datetime/datetime-picker";
|
|
4
|
+
import { DatetimeRangePicker } from "./datetime/datetime-range-picker";
|
|
5
|
+
import { TimePicker } from "./time/time-picker";
|
|
6
|
+
export {
|
|
7
|
+
DatePicker,
|
|
8
|
+
DateRangePicker,
|
|
9
|
+
DatetimePicker,
|
|
10
|
+
DatetimeRangePicker,
|
|
11
|
+
TimePicker
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/index.ts"],"sourcesContent":["export { DatePicker } from \"./date/date-picker\";\nexport { DateRangePicker } from \"./date/date-range-picker\";\n\nexport { DatetimePicker } from \"./datetime/datetime-picker\";\nexport { DatetimeRangePicker } from \"./datetime/datetime-range-picker\";\n\nexport { TimePicker } from \"./time/time-picker\";\n"],"mappings":"AAAA,SAAS,kBAAkB;AAC3B,SAAS,uBAAuB;AAEhC,SAAS,sBAAsB;AAC/B,SAAS,2BAA2B;AAEpC,SAAS,kBAAkB;","names":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
|
+
|
|
4
|
+
interface PickerColumnProps {
|
|
5
|
+
data: number[];
|
|
6
|
+
label: string;
|
|
7
|
+
type: "hour" | "minute" | "second";
|
|
8
|
+
format: "12h" | "24h";
|
|
9
|
+
value?: number;
|
|
10
|
+
initialScrollIndex?: number;
|
|
11
|
+
onChange?: (value: number) => void;
|
|
12
|
+
}
|
|
13
|
+
declare const PickerColumn: react.MemoExoticComponent<(props: PickerColumnProps) => react_jsx_runtime.JSX.Element>;
|
|
14
|
+
|
|
15
|
+
export { PickerColumn };
|