@synerise/ds-time-picker 0.11.1 → 0.11.3

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 CHANGED
@@ -3,6 +3,25 @@
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.11.3](https://github.com/Synerise/synerise-design/compare/@synerise/ds-time-picker@0.11.2...@synerise/ds-time-picker@0.11.3) (2024-11-28)
7
+
8
+ **Note:** Version bump only for package @synerise/ds-time-picker
9
+
10
+
11
+
12
+
13
+
14
+ ## [0.11.2](https://github.com/Synerise/synerise-design/compare/@synerise/ds-time-picker@0.11.1...@synerise/ds-time-picker@0.11.2) (2024-11-21)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * **core:** onError fn types ([c34bdfe](https://github.com/Synerise/synerise-design/commit/c34bdfe9da898d7999c605f9fbcbba4716dfb6d4))
20
+
21
+
22
+
23
+
24
+
6
25
  ## [0.11.1](https://github.com/Synerise/synerise-design/compare/@synerise/ds-time-picker@0.11.0...@synerise/ds-time-picker@0.11.1) (2024-11-12)
7
26
 
8
27
  **Note:** Version bump only for package @synerise/ds-time-picker
@@ -1,15 +1,9 @@
1
1
  function _extends() { _extends = Object.assign ? Object.assign.bind() : 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
-
3
2
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
-
5
3
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
-
7
4
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8
-
9
5
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
10
-
11
6
  function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
12
-
13
7
  import React, { Fragment, useCallback, useMemo, useState } from 'react';
14
8
  import { FormattedMessage, useIntl } from 'react-intl';
15
9
  import { range } from 'lodash';
@@ -25,51 +19,46 @@ import { getClockModeFromDate, getOppositeClockMode } from './utils/clockMode.ut
25
19
  import { AM, CLOCK_MODES, HOUR, HOUR_12, MINUTE, PM, SECOND, DISABLE_CLOCK_MODE_HOUR } from './constants/timePicker.constants';
26
20
  dayjs.extend(customParseFormatPlugin);
27
21
  var defaultUnits = [HOUR, MINUTE, SECOND];
28
-
29
22
  var TimePicker = function TimePicker(_ref) {
30
23
  var placement = _ref.placement,
31
- placeholder = _ref.placeholder,
32
- trigger = _ref.trigger,
33
- value = _ref.value,
34
- units = _ref.units,
35
- defaultOpen = _ref.defaultOpen,
36
- onChange = _ref.onChange,
37
- _ref$containerStyle = _ref.containerStyle,
38
- containerStyle = _ref$containerStyle === void 0 ? {} : _ref$containerStyle,
39
- timeFormat = _ref.timeFormat,
40
- valueFormatOptions = _ref.valueFormatOptions,
41
- use12HourClock = _ref.use12HourClock,
42
- alwaysOpen = _ref.alwaysOpen,
43
- _ref$dropdownProps = _ref.dropdownProps,
44
- dropdownProps = _ref$dropdownProps === void 0 ? {} : _ref$dropdownProps,
45
- _ref$inputProps = _ref.inputProps,
46
- inputProps = _ref$inputProps === void 0 ? {} : _ref$inputProps,
47
- disabled = _ref.disabled,
48
- disabledHours = _ref.disabledHours,
49
- disabledMinutes = _ref.disabledMinutes,
50
- disabledSeconds = _ref.disabledSeconds,
51
- overlayClassName = _ref.overlayClassName,
52
- className = _ref.className,
53
- _ref$clearTooltip = _ref.clearTooltip,
54
- clearTooltip = _ref$clearTooltip === void 0 ? /*#__PURE__*/React.createElement(FormattedMessage, {
55
- id: "DS.TIME-PICKER.CLEAR-TOOLTIP",
56
- defaultMessage: "Clear"
57
- }) : _ref$clearTooltip,
58
- raw = _ref.raw,
59
- onClockModeChange = _ref.onClockModeChange,
60
- errorText = _ref.errorText;
61
-
24
+ placeholder = _ref.placeholder,
25
+ trigger = _ref.trigger,
26
+ value = _ref.value,
27
+ units = _ref.units,
28
+ defaultOpen = _ref.defaultOpen,
29
+ onChange = _ref.onChange,
30
+ _ref$containerStyle = _ref.containerStyle,
31
+ containerStyle = _ref$containerStyle === void 0 ? {} : _ref$containerStyle,
32
+ timeFormat = _ref.timeFormat,
33
+ valueFormatOptions = _ref.valueFormatOptions,
34
+ use12HourClock = _ref.use12HourClock,
35
+ alwaysOpen = _ref.alwaysOpen,
36
+ _ref$dropdownProps = _ref.dropdownProps,
37
+ dropdownProps = _ref$dropdownProps === void 0 ? {} : _ref$dropdownProps,
38
+ _ref$inputProps = _ref.inputProps,
39
+ inputProps = _ref$inputProps === void 0 ? {} : _ref$inputProps,
40
+ disabled = _ref.disabled,
41
+ disabledHours = _ref.disabledHours,
42
+ disabledMinutes = _ref.disabledMinutes,
43
+ disabledSeconds = _ref.disabledSeconds,
44
+ overlayClassName = _ref.overlayClassName,
45
+ className = _ref.className,
46
+ _ref$clearTooltip = _ref.clearTooltip,
47
+ clearTooltip = _ref$clearTooltip === void 0 ? /*#__PURE__*/React.createElement(FormattedMessage, {
48
+ id: "DS.TIME-PICKER.CLEAR-TOOLTIP",
49
+ defaultMessage: "Clear"
50
+ }) : _ref$clearTooltip,
51
+ raw = _ref.raw,
52
+ onClockModeChange = _ref.onClockModeChange,
53
+ errorText = _ref.errorText;
62
54
  var _useDataFormat = useDataFormat(),
63
- formatValue = _useDataFormat.formatValue,
64
- is12HoursClockFromDataFormat = _useDataFormat.is12HoursClock;
65
-
55
+ formatValue = _useDataFormat.formatValue,
56
+ is12HoursClockFromDataFormat = _useDataFormat.is12HoursClock;
66
57
  var _useState = useState(defaultOpen || false),
67
- open = _useState[0],
68
- setOpen = _useState[1];
69
-
58
+ open = _useState[0],
59
+ setOpen = _useState[1];
70
60
  var _useIntl = useIntl(),
71
- formatMessage = _useIntl.formatMessage;
72
-
61
+ formatMessage = _useIntl.formatMessage;
73
62
  var is12HourClock = useMemo(function () {
74
63
  if (use12HourClock === undefined) return is12HoursClockFromDataFormat;
75
64
  return use12HourClock;
@@ -81,12 +70,12 @@ var TimePicker = function TimePicker(_ref) {
81
70
  if (timeFormat) {
82
71
  return dayjs(date).format(timeFormatByClockMode);
83
72
  }
84
-
85
73
  return formatValue(date, _objectSpread({
86
74
  targetFormat: 'time',
87
75
  second: 'numeric'
88
76
  }, valueFormatOptions));
89
- }, // eslint-disable-next-line react-hooks/exhaustive-deps
77
+ },
78
+ // eslint-disable-next-line react-hooks/exhaustive-deps
90
79
  [timeFormat, timeFormatByClockMode, formatValue]);
91
80
  var unitConfig = [{
92
81
  unit: HOUR,
@@ -108,57 +97,43 @@ var TimePicker = function TimePicker(_ref) {
108
97
  var unitsToRender = unitConfig.filter(function (u) {
109
98
  return availableUnits && availableUnits.includes(u.unit);
110
99
  });
111
-
112
100
  var onVisibleChange = function onVisibleChange(visible) {
113
101
  setOpen(visible);
114
102
  !visible && onChange && onChange(value, getTimeString(value));
115
103
  };
116
-
117
104
  var handleChange = function handleChange(unit, newValue, clockModeChanged) {
118
105
  if (clockModeChanged === void 0) {
119
106
  clockModeChanged = false;
120
107
  }
121
-
122
108
  var clockMode = getClockModeFromDate(value);
123
-
124
109
  if (clockModeChanged) {
125
110
  clockMode = getOppositeClockMode(clockMode);
126
111
  }
127
-
128
112
  var newDate = handleTimeChange(value, unit, newValue, clockModeChanged, is12HourClock, clockMode, unitConfig);
129
113
  onChange && onChange(newDate, getTimeString(newDate));
130
114
  };
131
-
132
115
  var toggleClockModeChange = function toggleClockModeChange() {
133
116
  handleChange(undefined, undefined, true);
134
117
  };
135
-
136
118
  var isAmOrPmModeDisabled = useCallback(function (mode) {
137
119
  var clockMode = getClockModeFromDate(value);
138
-
139
120
  if (!is12HourClock) {
140
121
  return false;
141
122
  }
142
-
143
123
  if (mode === AM && clockMode === AM) {
144
124
  return false;
145
125
  }
146
-
147
126
  if (mode === PM && clockMode === PM) {
148
127
  return false;
149
128
  }
150
-
151
129
  if (mode === AM && (disabledHours != null && disabledHours.includes(HOUR_12) || disabledHours != null && disabledHours.includes(DISABLE_CLOCK_MODE_HOUR))) {
152
130
  return true;
153
131
  }
154
-
155
132
  if (mode === PM && disabledHours != null && disabledHours.includes(DISABLE_CLOCK_MODE_HOUR)) {
156
133
  return true;
157
134
  }
158
-
159
135
  return false;
160
136
  }, [value, disabledHours, is12HourClock]);
161
-
162
137
  var renderClockSwitch = function renderClockSwitch() {
163
138
  var currentClockMode = getClockModeFromDate(value);
164
139
  return /*#__PURE__*/React.createElement(S.Unit, null, Object.values(CLOCK_MODES).map(function (mode) {
@@ -175,7 +150,6 @@ var TimePicker = function TimePicker(_ref) {
175
150
  }, /*#__PURE__*/React.createElement(S.CellText, null, mode));
176
151
  }));
177
152
  };
178
-
179
153
  var overlay = /*#__PURE__*/React.createElement(S.OverlayContainer, {
180
154
  "data-testid": "tp-overlay-container",
181
155
  className: overlayClassName
@@ -214,16 +188,13 @@ var TimePicker = function TimePicker(_ref) {
214
188
  if (value) {
215
189
  return getTimeString(value);
216
190
  }
217
-
218
191
  return placeholder || formatMessage({
219
192
  id: 'DS.TIME-PICKER.PLACEHOLDER'
220
193
  });
221
194
  }, [placeholder, formatMessage, value, getTimeString]);
222
-
223
195
  if (raw) {
224
196
  return overlay;
225
197
  }
226
-
227
198
  return /*#__PURE__*/React.createElement(S.Container, {
228
199
  className: "ds-time-picker " + (className || ''),
229
200
  "data-testid": "tp-container",
@@ -246,7 +217,6 @@ var TimePicker = function TimePicker(_ref) {
246
217
  icon1: timePickerIcon
247
218
  }, inputProps))));
248
219
  };
249
-
250
220
  TimePicker.defaultProps = {
251
221
  placement: 'bottomLeft',
252
222
  trigger: ['click'],
@@ -11,7 +11,7 @@ export declare const CellText: import("styled-components").StyledComponent<"labe
11
11
  export declare const Cell: import("styled-components").StyledComponent<"button", any, {
12
12
  active?: boolean | undefined;
13
13
  }, never>;
14
- export declare const ClearIcon: import("styled-components").StyledComponent<import("react").FC<import("@synerise/ds-icon").IconProps>, any, {}, never>;
14
+ export declare const ClearIcon: import("styled-components").StyledComponent<({ name, component, className, ...rest }: import("@synerise/ds-icon").IconProps) => import("react").JSX.Element, any, {}, never>;
15
15
  export declare const TimePickerInput: import("styled-components").StyledComponent<import("react").ComponentType<import("@synerise/ds-input").BaseProps<HTMLInputElement> & import("antd/lib/input").InputProps>, any, {}, never>;
16
16
  export declare const PlaceholderWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
17
17
  export declare const Placeholder: import("styled-components").StyledComponent<"div", any, {
package/dist/Unit.js CHANGED
@@ -5,43 +5,35 @@ import * as S from './TimePicker.styles';
5
5
  import { getUnitSelectedNumber } from './utils/unit.utils';
6
6
  var CELL_HEIGHT = 32;
7
7
  var DEBOUNCE_DELAY = 150;
8
-
9
8
  var Unit = function Unit(_ref) {
10
9
  var options = _ref.options,
11
- disabled = _ref.disabled,
12
- value = _ref.value,
13
- unit = _ref.unit,
14
- onSelect = _ref.onSelect,
15
- use12HourClock = _ref.use12HourClock;
10
+ disabled = _ref.disabled,
11
+ value = _ref.value,
12
+ unit = _ref.unit,
13
+ onSelect = _ref.onSelect,
14
+ use12HourClock = _ref.use12HourClock;
16
15
  var selected = useMemo(function () {
17
16
  return getUnitSelectedNumber(value, unit, use12HourClock);
18
17
  }, [unit, use12HourClock, value]);
19
-
20
18
  var _useState = useState(false),
21
- forceUpdate = _useState[0],
22
- setForceUpdate = _useState[1];
23
-
19
+ forceUpdate = _useState[0],
20
+ setForceUpdate = _useState[1];
24
21
  var selectedCellRef = useRef(null);
25
22
  var unitContainerRef = useRef(null);
26
-
27
23
  var _useState2 = useState(300),
28
- containerHeight = _useState2[0],
29
- setContainerHeight = _useState2[1];
30
-
24
+ containerHeight = _useState2[0],
25
+ setContainerHeight = _useState2[1];
31
26
  var _useState3 = useState(true),
32
- isFirstRender = _useState3[0],
33
- setFirstRender = _useState3[1];
34
-
27
+ isFirstRender = _useState3[0],
28
+ setFirstRender = _useState3[1];
35
29
  useEffect(function () {
36
30
  if (isFirstRender) {
37
31
  setFirstRender(false);
38
-
39
32
  if (unitContainerRef.current) {
40
33
  setContainerHeight(unitContainerRef.current.offsetHeight);
41
34
  }
42
35
  }
43
36
  }, [isFirstRender, unitContainerRef]);
44
-
45
37
  var scrollHandler = function scrollHandler() {
46
38
  if (!!unitContainerRef && !!unitContainerRef.current) {
47
39
  var pixelsScrolled = unitContainerRef.current.scrollTop;
@@ -52,7 +44,6 @@ var Unit = function Unit(_ref) {
52
44
  });
53
45
  }
54
46
  };
55
-
56
47
  var debouncedScrollHandler = debounce(scrollHandler, DEBOUNCE_DELAY);
57
48
  useEffect(function () {
58
49
  return function () {
@@ -63,14 +54,12 @@ var Unit = function Unit(_ref) {
63
54
  if (selectedCellRef.current && unitContainerRef.current) {
64
55
  var offsetToParent = selectedCellRef.current.offsetTop - unitContainerRef.current.offsetTop;
65
56
  var scrollBehaviour = isFirstRender || !containerHeight ? 'auto' : 'smooth';
66
-
67
57
  if (typeof unitContainerRef.current.scrollTo === 'function') {
68
58
  unitContainerRef.current.scrollTo({
69
59
  top: offsetToParent,
70
60
  behavior: scrollBehaviour
71
61
  });
72
62
  }
73
-
74
63
  setContainerHeight(unitContainerRef.current.offsetHeight);
75
64
  }
76
65
  }, [selectedCellRef, unitContainerRef, isFirstRender, forceUpdate, containerHeight]);
@@ -102,5 +91,4 @@ var Unit = function Unit(_ref) {
102
91
  height: containerHeight - CELL_HEIGHT
103
92
  }))));
104
93
  };
105
-
106
94
  export default Unit;
@@ -4,24 +4,18 @@ export var handleTimeChange = function handleTimeChange(value, unit, newValue, c
4
4
  if (clockModeChanged === void 0) {
5
5
  clockModeChanged = false;
6
6
  }
7
-
8
7
  var wasUndefined = value === undefined;
9
8
  var dateBuilder = dayjs(value);
10
-
11
9
  if (unit) {
12
10
  dateBuilder = dateBuilder[unit](newValue);
13
11
  }
14
-
15
12
  var hourToMap = dateBuilder.get(HOUR);
16
-
17
13
  if (use12HourClock) {
18
14
  hourToMap = clockMode === AM ? MAP_12_AM_TO_24_HOUR[hourToMap] : MAP_12_PM_TO_24_HOUR[hourToMap];
19
-
20
15
  if (unit === HOUR || clockModeChanged) {
21
16
  dateBuilder = dateBuilder.set(HOUR, hourToMap);
22
17
  }
23
18
  }
24
-
25
19
  if (wasUndefined) {
26
20
  // set remaining time fields to 0, HH:00:00, 00:mm:00, 00:00:ss
27
21
  unitConfig.filter(function (unitDefinition) {
@@ -29,11 +23,9 @@ export var handleTimeChange = function handleTimeChange(value, unit, newValue, c
29
23
  }).forEach(function (unitDefinition) {
30
24
  return dateBuilder = dateBuilder[unitDefinition.unit](0);
31
25
  });
32
-
33
26
  if (use12HourClock && clockMode === PM && unit !== HOUR) {
34
27
  dateBuilder = dateBuilder.set(HOUR, HOUR_12);
35
28
  }
36
29
  }
37
-
38
30
  return dateBuilder.toDate();
39
31
  };
@@ -3,14 +3,11 @@ import { HOUR, HOUR_12, MAP_24_HOUR_TO_12 } from '../constants/timePicker.consta
3
3
  export var getUnitSelectedNumber = function getUnitSelectedNumber(value, unit, use12HourClock) {
4
4
  if (value === undefined) return undefined;
5
5
  var result = value && dayjs(value).get(unit);
6
-
7
6
  if (unit === HOUR && use12HourClock) {
8
7
  if (!result) {
9
8
  result = HOUR_12;
10
9
  }
11
-
12
10
  result = MAP_24_HOUR_TO_12[result];
13
11
  }
14
-
15
12
  return result;
16
13
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@synerise/ds-time-picker",
3
- "version": "0.11.1",
3
+ "version": "0.11.3",
4
4
  "description": "TimePicker UI Component for the Synerise Design System",
5
5
  "license": "ISC",
6
6
  "repository": "Synerise/synerise-design",
@@ -34,24 +34,24 @@
34
34
  ],
35
35
  "types": "dist/index.d.ts",
36
36
  "dependencies": {
37
- "@synerise/ds-data-format": "^0.6.0",
38
- "@synerise/ds-dropdown": "^0.18.23",
39
- "@synerise/ds-icon": "^0.66.4",
40
- "@synerise/ds-input": "^0.24.13",
41
- "@synerise/ds-scrollbar": "^0.11.18",
42
- "@synerise/ds-tooltip": "^0.14.48",
43
- "@synerise/ds-typography": "^0.16.5",
44
- "@synerise/ds-utils": "^0.31.1",
37
+ "@synerise/ds-data-format": "^0.6.1",
38
+ "@synerise/ds-dropdown": "^0.18.25",
39
+ "@synerise/ds-icon": "^0.67.1",
40
+ "@synerise/ds-input": "^0.24.15",
41
+ "@synerise/ds-scrollbar": "^0.11.20",
42
+ "@synerise/ds-tooltip": "^0.14.50",
43
+ "@synerise/ds-typography": "^0.16.7",
44
+ "@synerise/ds-utils": "^0.31.2",
45
45
  "dayjs": "^1.8.19",
46
46
  "debounce": "^1.2.0",
47
- "lodash": "^4.17.21",
48
- "react-intl": "6.8.4"
47
+ "lodash": "^4.17.21"
49
48
  },
50
49
  "peerDependencies": {
51
50
  "@synerise/ds-core": "*",
52
51
  "antd": "4.7.0",
53
52
  "react": ">=16.9.0 <= 17.0.2",
53
+ "react-intl": ">=3.12.0 <= 6.8",
54
54
  "styled-components": "5.0.1"
55
55
  },
56
- "gitHead": "8d26191fc0475407e0691b9b183761ad3cd7c87d"
56
+ "gitHead": "4a56ee7ef816c22341ce704154dc7aa65b7d1dcc"
57
57
  }