@synerise/ds-time-picker 0.6.57 → 0.7.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/CHANGELOG.md +24 -0
- package/dist/TimePicker.d.ts +2 -6
- package/dist/TimePicker.js +36 -37
- package/dist/Unit.d.ts +1 -0
- package/dist/Unit.js +6 -3
- package/dist/constants/timePicker.constants.d.ts +90 -0
- package/dist/constants/timePicker.constants.js +88 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -1
- package/dist/{TimePicker.types.d.ts → types/TimePicker.types.d.ts} +3 -2
- package/dist/utils/timePicker.utils.d.ts +3 -0
- package/dist/utils/timePicker.utils.js +48 -0
- package/dist/utils/unit.utils.d.ts +2 -0
- package/dist/utils/unit.utils.js +16 -0
- package/package.json +3 -3
- /package/dist/{TimePicker.types.js → types/TimePicker.types.js} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,30 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [0.7.0](https://github.com/Synerise/synerise-design/compare/@synerise/ds-time-picker@0.6.58...@synerise/ds-time-picker@0.7.0) (2023-03-20)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **data-format:** import types fix ([c3d20f2](https://github.com/Synerise/synerise-design/commit/c3d20f2bff43ce4605224c96b824a6f91662d961))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* **data-format:** data format tools in pickers plus new tools ([c4adbfe](https://github.com/Synerise/synerise-design/commit/c4adbfe563af93f9daffc7e0b327098432c5e31e))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## [0.6.58](https://github.com/Synerise/synerise-design/compare/@synerise/ds-time-picker@0.6.57...@synerise/ds-time-picker@0.6.58) (2023-03-08)
|
|
23
|
+
|
|
24
|
+
**Note:** Version bump only for package @synerise/ds-time-picker
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
6
30
|
## [0.6.57](https://github.com/Synerise/synerise-design/compare/@synerise/ds-time-picker@0.6.56...@synerise/ds-time-picker@0.6.57) (2023-03-06)
|
|
7
31
|
|
|
8
32
|
**Note:** Version bump only for package @synerise/ds-time-picker
|
package/dist/TimePicker.d.ts
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { TimePickerProps } from './TimePicker.types';
|
|
3
|
-
|
|
4
|
-
AM: string;
|
|
5
|
-
PM: string;
|
|
6
|
-
};
|
|
7
|
-
declare const _default: React.ForwardRefExoticComponent<Pick<TimePickerProps, "className" | "onChange" | "placeholder" | "disabled" | "value" | "trigger" | "placement" | "overlayClassName" | "units" | "defaultOpen" | "defaultAM" | "containerStyle" | "timeFormat" | "use12HourClock" | "alwaysOpen" | "dropdownProps" | "inputProps" | "disabledHours" | "disabledMinutes" | "disabledSeconds" | "clearTooltip" | "raw" | "onClockModeChange"> & {
|
|
2
|
+
import { TimePickerProps } from './types/TimePicker.types';
|
|
3
|
+
declare const _default: React.ForwardRefExoticComponent<Pick<TimePickerProps, "className" | "onChange" | "placeholder" | "disabled" | "value" | "trigger" | "placement" | "overlayClassName" | "use12HourClock" | "units" | "defaultOpen" | "containerStyle" | "timeFormat" | "alwaysOpen" | "dropdownProps" | "inputProps" | "disabledHours" | "disabledMinutes" | "disabledSeconds" | "clearTooltip" | "raw" | "onClockModeChange"> & {
|
|
8
4
|
forwardedRef?: ((instance: any) => void) | React.RefObject<any> | null | undefined;
|
|
9
5
|
} & React.RefAttributes<any>> & {
|
|
10
6
|
WrappedComponent: React.ComponentType<TimePickerProps>;
|
package/dist/TimePicker.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
2
|
|
|
3
3
|
import * as React from 'react';
|
|
4
|
-
import
|
|
4
|
+
import { FormattedMessage, injectIntl } from 'react-intl';
|
|
5
5
|
import { range } from 'lodash';
|
|
6
|
+
import dayjs from 'dayjs';
|
|
7
|
+
import customParseFormatPlugin from 'dayjs/plugin/customParseFormat';
|
|
6
8
|
import Icon, { ClockM, Close3S } from '@synerise/ds-icon';
|
|
7
9
|
import Dropdown from '@synerise/ds-dropdown';
|
|
8
10
|
import Tooltip from '@synerise/ds-tooltip/dist/Tooltip';
|
|
9
|
-
import { FormattedMessage, injectIntl } from 'react-intl';
|
|
10
11
|
import Unit from './Unit';
|
|
11
12
|
import * as S from './TimePicker.styles';
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
};
|
|
13
|
+
import { handleTimeChange } from './utils/timePicker.utils';
|
|
14
|
+
import { AM, CLOCK_MODES, HOUR, HOUR_12, MINUTE, PM, SECOND } from './constants/timePicker.constants';
|
|
15
|
+
dayjs.extend(customParseFormatPlugin);
|
|
16
|
+
var defaultUnits = [HOUR, MINUTE, SECOND];
|
|
17
17
|
|
|
18
18
|
var TimePicker = function TimePicker(_ref) {
|
|
19
19
|
var placement = _ref.placement,
|
|
@@ -22,7 +22,6 @@ var TimePicker = function TimePicker(_ref) {
|
|
|
22
22
|
value = _ref.value,
|
|
23
23
|
units = _ref.units,
|
|
24
24
|
defaultOpen = _ref.defaultOpen,
|
|
25
|
-
defaultAM = _ref.defaultAM,
|
|
26
25
|
onChange = _ref.onChange,
|
|
27
26
|
_ref$containerStyle = _ref.containerStyle,
|
|
28
27
|
containerStyle = _ref$containerStyle === void 0 ? {} : _ref$containerStyle,
|
|
@@ -52,28 +51,33 @@ var TimePicker = function TimePicker(_ref) {
|
|
|
52
51
|
open = _React$useState[0],
|
|
53
52
|
setOpen = _React$useState[1];
|
|
54
53
|
|
|
55
|
-
var _React$useState2 = React.useState(
|
|
54
|
+
var _React$useState2 = React.useState(function () {
|
|
55
|
+
var initialDate = dayjs(value);
|
|
56
|
+
var initialHour = initialDate.get(HOUR);
|
|
57
|
+
return initialHour >= HOUR_12 ? PM : AM;
|
|
58
|
+
}),
|
|
56
59
|
clockMode = _React$useState2[0],
|
|
57
60
|
setClockMode = _React$useState2[1];
|
|
58
61
|
|
|
59
|
-
var
|
|
60
|
-
return
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
62
|
+
var timeFormatByClockMode = React.useMemo(function () {
|
|
63
|
+
return timeFormat != null ? timeFormat : use12HourClock ? 'hh:mm:ss A' : 'HH:mm:ss';
|
|
64
|
+
}, [timeFormat, use12HourClock]);
|
|
65
|
+
var getTimeString = React.useCallback(function (date) {
|
|
66
|
+
return dayjs(date).format(timeFormatByClockMode);
|
|
67
|
+
}, // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
68
|
+
[timeFormat, timeFormatByClockMode]);
|
|
65
69
|
var unitConfig = [{
|
|
66
|
-
unit:
|
|
67
|
-
options: use12HourClock ? range(
|
|
70
|
+
unit: HOUR,
|
|
71
|
+
options: use12HourClock ? range(1, 13) : range(24),
|
|
68
72
|
disabled: disabledHours,
|
|
69
73
|
insertSeperator: true
|
|
70
74
|
}, {
|
|
71
|
-
unit:
|
|
75
|
+
unit: MINUTE,
|
|
72
76
|
options: range(60),
|
|
73
77
|
disabled: disabledMinutes,
|
|
74
78
|
insertSeperator: true
|
|
75
79
|
}, {
|
|
76
|
-
unit:
|
|
80
|
+
unit: SECOND,
|
|
77
81
|
options: range(60),
|
|
78
82
|
disabled: disabledSeconds,
|
|
79
83
|
insertSeperator: !!use12HourClock
|
|
@@ -90,24 +94,19 @@ var TimePicker = function TimePicker(_ref) {
|
|
|
90
94
|
!visible && onChange && onChange(value, getTimeString(value));
|
|
91
95
|
};
|
|
92
96
|
|
|
93
|
-
var handleChange = function handleChange(unit, newValue) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
dateBuilder = dateBuilder[unit](newValue);
|
|
97
|
-
|
|
98
|
-
if (wasUndefined) {
|
|
99
|
-
// set remaining time fields to 0, HH:00:00, 00:mm:00, 00:00:ss
|
|
100
|
-
unitConfig.filter(function (u) {
|
|
101
|
-
return u.unit !== unit;
|
|
102
|
-
}).forEach(function (unitDef) {
|
|
103
|
-
return dateBuilder = dateBuilder[unitDef.unit](0);
|
|
104
|
-
});
|
|
97
|
+
var handleChange = function handleChange(unit, newValue, clockModeChanged) {
|
|
98
|
+
if (clockModeChanged === void 0) {
|
|
99
|
+
clockModeChanged = false;
|
|
105
100
|
}
|
|
106
101
|
|
|
107
|
-
var newDate =
|
|
102
|
+
var newDate = handleTimeChange(value, unit, newValue, clockModeChanged, use12HourClock, clockMode, unitConfig);
|
|
108
103
|
onChange && onChange(newDate, getTimeString(newDate));
|
|
109
104
|
};
|
|
110
105
|
|
|
106
|
+
React.useEffect(function () {
|
|
107
|
+
handleChange(undefined, undefined, true); // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
108
|
+
}, [clockMode]);
|
|
109
|
+
|
|
111
110
|
var renderClockSwitch = function renderClockSwitch() {
|
|
112
111
|
return /*#__PURE__*/React.createElement(S.Unit, null, Object.values(CLOCK_MODES).map(function (mode) {
|
|
113
112
|
return /*#__PURE__*/React.createElement(S.Cell, {
|
|
@@ -131,7 +130,8 @@ var TimePicker = function TimePicker(_ref) {
|
|
|
131
130
|
value: value,
|
|
132
131
|
onSelect: function onSelect(newValue) {
|
|
133
132
|
return handleChange(u.unit, newValue);
|
|
134
|
-
}
|
|
133
|
+
},
|
|
134
|
+
use12HourClock: use12HourClock
|
|
135
135
|
})), (index !== unitsToRender.length - 1 || !!use12HourClock) && /*#__PURE__*/React.createElement(S.UnitSeperator, null));
|
|
136
136
|
}), use12HourClock && renderClockSwitch());
|
|
137
137
|
var localValue = value;
|
|
@@ -156,13 +156,13 @@ var TimePicker = function TimePicker(_ref) {
|
|
|
156
156
|
}, [open, dateString, clear, clearTooltip, alwaysOpen, disabled]);
|
|
157
157
|
var placeholderValue = React.useMemo(function () {
|
|
158
158
|
if (value) {
|
|
159
|
-
return dayjs(value).format(
|
|
159
|
+
return dayjs(value).format(timeFormatByClockMode);
|
|
160
160
|
}
|
|
161
161
|
|
|
162
162
|
return placeholder || intl.formatMessage({
|
|
163
163
|
id: 'DS.TIME-PICKER.PLACEHOLDER'
|
|
164
164
|
});
|
|
165
|
-
}, [placeholder, intl, value]);
|
|
165
|
+
}, [placeholder, intl, value, timeFormatByClockMode]);
|
|
166
166
|
|
|
167
167
|
if (raw) {
|
|
168
168
|
return overlay;
|
|
@@ -183,7 +183,7 @@ var TimePicker = function TimePicker(_ref) {
|
|
|
183
183
|
disabled: disabled,
|
|
184
184
|
className: "" + (alwaysOpen || open ? 'active' : ''),
|
|
185
185
|
"data-testid": "tp-input",
|
|
186
|
-
value:
|
|
186
|
+
value: dateString,
|
|
187
187
|
placeholder: placeholderValue,
|
|
188
188
|
readOnly: true,
|
|
189
189
|
icon1: timePickerIcon
|
|
@@ -192,7 +192,6 @@ var TimePicker = function TimePicker(_ref) {
|
|
|
192
192
|
|
|
193
193
|
TimePicker.defaultProps = {
|
|
194
194
|
placement: 'bottomLeft',
|
|
195
|
-
timeFormat: 'HH:mm:ss',
|
|
196
195
|
trigger: ['click'],
|
|
197
196
|
units: defaultUnits
|
|
198
197
|
};
|
package/dist/Unit.d.ts
CHANGED
package/dist/Unit.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import dayjs from 'dayjs';
|
|
3
2
|
import { debounce } from 'debounce';
|
|
4
3
|
import Scrollbar from '@synerise/ds-scrollbar';
|
|
5
4
|
import * as S from './TimePicker.styles';
|
|
5
|
+
import { getUnitSelectedNumber } from './utils/unit.utils';
|
|
6
6
|
var CELL_HEIGHT = 32;
|
|
7
7
|
var DEBOUNCE_DELAY = 150;
|
|
8
8
|
|
|
@@ -11,8 +11,11 @@ var Unit = function Unit(_ref) {
|
|
|
11
11
|
disabled = _ref.disabled,
|
|
12
12
|
value = _ref.value,
|
|
13
13
|
unit = _ref.unit,
|
|
14
|
-
onSelect = _ref.onSelect
|
|
15
|
-
|
|
14
|
+
onSelect = _ref.onSelect,
|
|
15
|
+
use12HourClock = _ref.use12HourClock;
|
|
16
|
+
var selected = React.useMemo(function () {
|
|
17
|
+
return getUnitSelectedNumber(value, unit, use12HourClock);
|
|
18
|
+
}, [unit, use12HourClock, value]);
|
|
16
19
|
|
|
17
20
|
var _React$useState = React.useState(false),
|
|
18
21
|
forceUpdate = _React$useState[0],
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import dayjs from 'dayjs';
|
|
2
|
+
import { ClockModes } from '../types/TimePicker.types';
|
|
3
|
+
export declare const HOUR: dayjs.UnitType;
|
|
4
|
+
export declare const MINUTE: dayjs.UnitType;
|
|
5
|
+
export declare const SECOND: dayjs.UnitType;
|
|
6
|
+
export declare const CLOCK_MODES: readonly ["AM", "PM"];
|
|
7
|
+
export declare const PM: ClockModes;
|
|
8
|
+
export declare const AM: ClockModes;
|
|
9
|
+
export declare const HOUR_12 = 12;
|
|
10
|
+
export declare const MAP_12_AM_TO_24_HOUR: {
|
|
11
|
+
0: number;
|
|
12
|
+
1: number;
|
|
13
|
+
2: number;
|
|
14
|
+
3: number;
|
|
15
|
+
4: number;
|
|
16
|
+
5: number;
|
|
17
|
+
6: number;
|
|
18
|
+
7: number;
|
|
19
|
+
8: number;
|
|
20
|
+
9: number;
|
|
21
|
+
10: number;
|
|
22
|
+
11: number;
|
|
23
|
+
12: number;
|
|
24
|
+
13: number;
|
|
25
|
+
14: number;
|
|
26
|
+
15: number;
|
|
27
|
+
16: number;
|
|
28
|
+
17: number;
|
|
29
|
+
18: number;
|
|
30
|
+
19: number;
|
|
31
|
+
20: number;
|
|
32
|
+
21: number;
|
|
33
|
+
22: number;
|
|
34
|
+
23: number;
|
|
35
|
+
24: number;
|
|
36
|
+
};
|
|
37
|
+
export declare const MAP_12_PM_TO_24_HOUR: {
|
|
38
|
+
0: number;
|
|
39
|
+
1: number;
|
|
40
|
+
2: number;
|
|
41
|
+
3: number;
|
|
42
|
+
4: number;
|
|
43
|
+
5: number;
|
|
44
|
+
6: number;
|
|
45
|
+
7: number;
|
|
46
|
+
8: number;
|
|
47
|
+
9: number;
|
|
48
|
+
10: number;
|
|
49
|
+
11: number;
|
|
50
|
+
12: number;
|
|
51
|
+
13: number;
|
|
52
|
+
14: number;
|
|
53
|
+
15: number;
|
|
54
|
+
16: number;
|
|
55
|
+
17: number;
|
|
56
|
+
18: number;
|
|
57
|
+
19: number;
|
|
58
|
+
20: number;
|
|
59
|
+
21: number;
|
|
60
|
+
22: number;
|
|
61
|
+
23: number;
|
|
62
|
+
24: number;
|
|
63
|
+
};
|
|
64
|
+
export declare const MAP_24_HOUR_TO_12: {
|
|
65
|
+
0: number;
|
|
66
|
+
1: number;
|
|
67
|
+
2: number;
|
|
68
|
+
3: number;
|
|
69
|
+
4: number;
|
|
70
|
+
5: number;
|
|
71
|
+
6: number;
|
|
72
|
+
7: number;
|
|
73
|
+
8: number;
|
|
74
|
+
9: number;
|
|
75
|
+
10: number;
|
|
76
|
+
11: number;
|
|
77
|
+
12: number;
|
|
78
|
+
13: number;
|
|
79
|
+
14: number;
|
|
80
|
+
15: number;
|
|
81
|
+
16: number;
|
|
82
|
+
17: number;
|
|
83
|
+
18: number;
|
|
84
|
+
19: number;
|
|
85
|
+
20: number;
|
|
86
|
+
21: number;
|
|
87
|
+
22: number;
|
|
88
|
+
23: number;
|
|
89
|
+
24: number;
|
|
90
|
+
};
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
export var HOUR = 'hour';
|
|
2
|
+
export var MINUTE = 'minute';
|
|
3
|
+
export var SECOND = 'second';
|
|
4
|
+
export var CLOCK_MODES = ['AM', 'PM'];
|
|
5
|
+
export var PM = 'PM';
|
|
6
|
+
export var AM = 'AM';
|
|
7
|
+
export var HOUR_12 = 12;
|
|
8
|
+
export var MAP_12_AM_TO_24_HOUR = {
|
|
9
|
+
0: 12,
|
|
10
|
+
1: 1,
|
|
11
|
+
2: 2,
|
|
12
|
+
3: 3,
|
|
13
|
+
4: 4,
|
|
14
|
+
5: 5,
|
|
15
|
+
6: 6,
|
|
16
|
+
7: 7,
|
|
17
|
+
8: 8,
|
|
18
|
+
9: 9,
|
|
19
|
+
10: 10,
|
|
20
|
+
11: 11,
|
|
21
|
+
12: 0,
|
|
22
|
+
13: 1,
|
|
23
|
+
14: 2,
|
|
24
|
+
15: 3,
|
|
25
|
+
16: 4,
|
|
26
|
+
17: 5,
|
|
27
|
+
18: 6,
|
|
28
|
+
19: 7,
|
|
29
|
+
20: 8,
|
|
30
|
+
21: 9,
|
|
31
|
+
22: 10,
|
|
32
|
+
23: 11,
|
|
33
|
+
24: 0
|
|
34
|
+
};
|
|
35
|
+
export var MAP_12_PM_TO_24_HOUR = {
|
|
36
|
+
0: 12,
|
|
37
|
+
1: 13,
|
|
38
|
+
2: 14,
|
|
39
|
+
3: 15,
|
|
40
|
+
4: 16,
|
|
41
|
+
5: 17,
|
|
42
|
+
6: 18,
|
|
43
|
+
7: 19,
|
|
44
|
+
8: 20,
|
|
45
|
+
9: 21,
|
|
46
|
+
10: 22,
|
|
47
|
+
11: 23,
|
|
48
|
+
12: 12,
|
|
49
|
+
13: 13,
|
|
50
|
+
14: 14,
|
|
51
|
+
15: 15,
|
|
52
|
+
16: 16,
|
|
53
|
+
17: 17,
|
|
54
|
+
18: 18,
|
|
55
|
+
19: 19,
|
|
56
|
+
20: 20,
|
|
57
|
+
21: 21,
|
|
58
|
+
22: 22,
|
|
59
|
+
23: 23,
|
|
60
|
+
24: 24
|
|
61
|
+
};
|
|
62
|
+
export var MAP_24_HOUR_TO_12 = {
|
|
63
|
+
0: 12,
|
|
64
|
+
1: 1,
|
|
65
|
+
2: 2,
|
|
66
|
+
3: 3,
|
|
67
|
+
4: 4,
|
|
68
|
+
5: 5,
|
|
69
|
+
6: 6,
|
|
70
|
+
7: 7,
|
|
71
|
+
8: 8,
|
|
72
|
+
9: 9,
|
|
73
|
+
10: 10,
|
|
74
|
+
11: 11,
|
|
75
|
+
12: 12,
|
|
76
|
+
13: 1,
|
|
77
|
+
14: 2,
|
|
78
|
+
15: 3,
|
|
79
|
+
16: 4,
|
|
80
|
+
17: 5,
|
|
81
|
+
18: 6,
|
|
82
|
+
19: 7,
|
|
83
|
+
20: 8,
|
|
84
|
+
21: 9,
|
|
85
|
+
22: 10,
|
|
86
|
+
23: 11,
|
|
87
|
+
24: 12
|
|
88
|
+
};
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { default } from './TimePicker';
|
|
1
|
+
export { default } from './TimePicker';
|
|
2
|
+
export { AM, PM, HOUR_12, HOUR, CLOCK_MODES, MAP_12_AM_TO_24_HOUR, MAP_12_PM_TO_24_HOUR, MAP_24_HOUR_TO_12 } from './constants/timePicker.constants';
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import dayjs from 'dayjs';
|
|
3
3
|
import { IntlShape } from 'react-intl';
|
|
4
|
-
import { DropdownProps } from '@synerise/ds-dropdown/dist/Dropdown';
|
|
5
4
|
import { InputProps } from 'antd/es/input/Input';
|
|
5
|
+
import { DropdownProps } from '@synerise/ds-dropdown/dist/Dropdown';
|
|
6
|
+
import { CLOCK_MODES } from '../constants/timePicker.constants';
|
|
7
|
+
export declare type ClockModes = typeof CLOCK_MODES[number];
|
|
6
8
|
export declare type TimePickerDisabledUnits = {
|
|
7
9
|
disabledSeconds?: number[];
|
|
8
10
|
disabledMinutes?: number[];
|
|
@@ -13,7 +15,6 @@ export declare type TimePickerProps = TimePickerDisabledUnits & {
|
|
|
13
15
|
className?: string;
|
|
14
16
|
clearTooltip?: string | React.ReactNode;
|
|
15
17
|
containerStyle?: React.CSSProperties;
|
|
16
|
-
defaultAM?: boolean;
|
|
17
18
|
defaultOpen?: boolean;
|
|
18
19
|
disabled?: boolean;
|
|
19
20
|
dropdownProps?: Partial<DropdownProps>;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import dayjs from 'dayjs';
|
|
2
|
+
import { UnitConfig } from '../Unit';
|
|
3
|
+
export declare const handleTimeChange: (value: Date | undefined, unit: dayjs.UnitType | undefined, newValue: number | undefined, clockModeChanged: boolean | undefined, use12HourClock: boolean | undefined, clockMode: string, unitConfig: UnitConfig[]) => Date;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import dayjs from 'dayjs';
|
|
2
|
+
import { AM, HOUR, HOUR_12, MAP_12_AM_TO_24_HOUR, MAP_12_PM_TO_24_HOUR, MINUTE, PM, SECOND } from '../constants/timePicker.constants';
|
|
3
|
+
export var handleTimeChange = function handleTimeChange(value, unit, newValue, clockModeChanged, use12HourClock, clockMode, unitConfig) {
|
|
4
|
+
if (clockModeChanged === void 0) {
|
|
5
|
+
clockModeChanged = false;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
var wasUndefined = value === undefined;
|
|
9
|
+
var dateBuilder = dayjs(value);
|
|
10
|
+
|
|
11
|
+
if (unit) {
|
|
12
|
+
dateBuilder = dateBuilder[unit](newValue);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
var hourToMap = dateBuilder.get(HOUR);
|
|
16
|
+
|
|
17
|
+
if (use12HourClock) {
|
|
18
|
+
hourToMap = clockMode === AM ? MAP_12_AM_TO_24_HOUR[hourToMap] : MAP_12_PM_TO_24_HOUR[hourToMap];
|
|
19
|
+
|
|
20
|
+
if (unit === HOUR || clockModeChanged) {
|
|
21
|
+
dateBuilder = dateBuilder.set(HOUR, hourToMap);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (clockMode === PM && hourToMap === HOUR_12) {
|
|
25
|
+
dateBuilder = dateBuilder.set(MINUTE, 0);
|
|
26
|
+
dateBuilder = dateBuilder.set(SECOND, 0);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (clockMode === AM && hourToMap === HOUR_12) {
|
|
30
|
+
dateBuilder = dateBuilder.set(HOUR, hourToMap);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
if (wasUndefined) {
|
|
35
|
+
// set remaining time fields to 0, HH:00:00, 00:mm:00, 00:00:ss
|
|
36
|
+
unitConfig.filter(function (unitDefinition) {
|
|
37
|
+
return unitDefinition.unit !== unit;
|
|
38
|
+
}).forEach(function (unitDefinition) {
|
|
39
|
+
return dateBuilder = dateBuilder[unitDefinition.unit](0);
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
if (use12HourClock && clockMode === PM) {
|
|
43
|
+
dateBuilder = dateBuilder.set(HOUR, HOUR_12);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return dateBuilder.toDate();
|
|
48
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import dayjs from 'dayjs';
|
|
2
|
+
import { HOUR, HOUR_12, MAP_24_HOUR_TO_12 } from '../constants/timePicker.constants';
|
|
3
|
+
export var getUnitSelectedNumber = function getUnitSelectedNumber(value, unit, use12HourClock) {
|
|
4
|
+
if (value === undefined) return undefined;
|
|
5
|
+
var result = value && dayjs(value).get(unit);
|
|
6
|
+
|
|
7
|
+
if (unit === HOUR && use12HourClock) {
|
|
8
|
+
if (!result) {
|
|
9
|
+
result = HOUR_12;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
result = MAP_24_HOUR_TO_12[result];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return result;
|
|
16
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@synerise/ds-time-picker",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "TimePicker UI Component for the Synerise Design System",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"repository": "Synerise/synerise-design",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
],
|
|
33
33
|
"types": "dist/index.d.ts",
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@synerise/ds-dropdown": "^0.17.
|
|
35
|
+
"@synerise/ds-dropdown": "^0.17.57",
|
|
36
36
|
"@synerise/ds-icon": "^0.54.0",
|
|
37
37
|
"@synerise/ds-input": "^0.18.36",
|
|
38
38
|
"@synerise/ds-search-bar": "^0.6.26",
|
|
@@ -47,5 +47,5 @@
|
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@types/debounce": "^1.2.0"
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "41419f123b90134def2fecde455da13946fc2c0e"
|
|
51
51
|
}
|
|
File without changes
|