@mantine/dates 3.6.6 → 3.7.0-alpha.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.
Files changed (41) hide show
  1. package/cjs/components/TimeInput/TimeInput.js +33 -39
  2. package/cjs/components/TimeInput/TimeInput.js.map +1 -1
  3. package/cjs/components/TimeInputBase/AmPmInput/AmPmInput.js +8 -6
  4. package/cjs/components/TimeInputBase/AmPmInput/AmPmInput.js.map +1 -1
  5. package/cjs/components/TimeInputBase/TimeField/TimeField.js +19 -5
  6. package/cjs/components/TimeInputBase/TimeField/TimeField.js.map +1 -1
  7. package/cjs/components/TimeInputBase/create-time-handler/create-time-handler.js +5 -11
  8. package/cjs/components/TimeInputBase/create-time-handler/create-time-handler.js.map +1 -1
  9. package/cjs/components/TimeInputBase/get-date/get-date.js +7 -1
  10. package/cjs/components/TimeInputBase/get-date/get-date.js.map +1 -1
  11. package/cjs/components/TimeInputBase/get-time-values/get-time-value.js +13 -4
  12. package/cjs/components/TimeInputBase/get-time-values/get-time-value.js.map +1 -1
  13. package/cjs/components/TimeRangeInput/TimeRangeInput.js +44 -230
  14. package/cjs/components/TimeRangeInput/TimeRangeInput.js.map +1 -1
  15. package/esm/components/TimeInput/TimeInput.js +35 -41
  16. package/esm/components/TimeInput/TimeInput.js.map +1 -1
  17. package/esm/components/TimeInputBase/AmPmInput/AmPmInput.js +8 -6
  18. package/esm/components/TimeInputBase/AmPmInput/AmPmInput.js.map +1 -1
  19. package/esm/components/TimeInputBase/TimeField/TimeField.js +20 -6
  20. package/esm/components/TimeInputBase/TimeField/TimeField.js.map +1 -1
  21. package/esm/components/TimeInputBase/create-time-handler/create-time-handler.js +5 -11
  22. package/esm/components/TimeInputBase/create-time-handler/create-time-handler.js.map +1 -1
  23. package/esm/components/TimeInputBase/get-date/get-date.js +7 -1
  24. package/esm/components/TimeInputBase/get-date/get-date.js.map +1 -1
  25. package/esm/components/TimeInputBase/get-time-values/get-time-value.js +13 -4
  26. package/esm/components/TimeInputBase/get-time-values/get-time-value.js.map +1 -1
  27. package/esm/components/TimeRangeInput/TimeRangeInput.js +46 -232
  28. package/esm/components/TimeRangeInput/TimeRangeInput.js.map +1 -1
  29. package/lib/components/TimeInput/TimeInput.d.ts +4 -2
  30. package/lib/components/TimeInput/TimeInput.d.ts.map +1 -1
  31. package/lib/components/TimeInputBase/AmPmInput/AmPmInput.d.ts +0 -2
  32. package/lib/components/TimeInputBase/AmPmInput/AmPmInput.d.ts.map +1 -1
  33. package/lib/components/TimeInputBase/TimeField/TimeField.d.ts +6 -3
  34. package/lib/components/TimeInputBase/TimeField/TimeField.d.ts.map +1 -1
  35. package/lib/components/TimeInputBase/create-time-handler/create-time-handler.d.ts +1 -1
  36. package/lib/components/TimeInputBase/create-time-handler/create-time-handler.d.ts.map +1 -1
  37. package/lib/components/TimeInputBase/get-date/get-date.d.ts.map +1 -1
  38. package/lib/components/TimeInputBase/get-time-values/get-time-value.d.ts +2 -1
  39. package/lib/components/TimeInputBase/get-time-values/get-time-value.d.ts.map +1 -1
  40. package/lib/components/TimeRangeInput/TimeRangeInput.d.ts.map +1 -1
  41. package/package.json +3 -3
@@ -5,22 +5,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var React = require('react');
6
6
  var core = require('@mantine/core');
7
7
  var hooks = require('@mantine/hooks');
8
- var TimeField = require('../TimeInputBase/TimeField/TimeField.js');
9
- var createTimeHandler = require('../TimeInputBase/create-time-handler/create-time-handler.js');
10
- var getTimeValue = require('../TimeInputBase/get-time-values/get-time-value.js');
11
8
  var TimeRangeInput_styles = require('./TimeRangeInput.styles.js');
12
- var padTime = require('../TimeInputBase/pad-time/pad-time.js');
13
- var AmPmInput = require('../TimeInputBase/AmPmInput/AmPmInput.js');
14
- var createAmPmHandler = require('../TimeInputBase/create-amPm-handler/create-amPm-handler.js');
15
- var getDate = require('../TimeInputBase/get-date/get-date.js');
9
+ var TimeInput = require('../TimeInput/TimeInput.js');
16
10
 
17
11
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; }
18
12
 
19
13
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
20
14
 
21
15
  var __defProp = Object.defineProperty;
22
- var __defProps = Object.defineProperties;
23
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
24
16
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
25
17
  var __hasOwnProp = Object.prototype.hasOwnProperty;
26
18
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
@@ -36,7 +28,6 @@ var __spreadValues = (a, b) => {
36
28
  }
37
29
  return a;
38
30
  };
39
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
40
31
  var __objRest = (source, exclude) => {
41
32
  var target = {};
42
33
  for (var prop in source)
@@ -70,7 +61,7 @@ const TimeRangeInput = React.forwardRef((_a, ref) => {
70
61
  styles,
71
62
  id,
72
63
  value,
73
- defaultValue,
64
+ defaultValue = [null, null],
74
65
  onChange,
75
66
  withSeconds = false,
76
67
  clearable = false,
@@ -119,106 +110,22 @@ const TimeRangeInput = React.forwardRef((_a, ref) => {
119
110
  const { classes, cx, theme } = TimeRangeInput_styles['default']({ size }, { classNames, styles, name: "TimeRangeInput" });
120
111
  const { margins, rest } = core.extractMargins(others);
121
112
  const uuid = hooks.useUuid(id);
122
- const hoursRef = React.useRef([]);
123
- const minutesRef = React.useRef([]);
124
- const secondsRef = React.useRef([]);
125
- const formatsRef = React.useRef([]);
126
- const [fromTime, setFromTime] = React.useState(getTimeValue.getTimeValues(value ? value[0] : defaultValue ? defaultValue[0] : void 0));
127
- const [toTime, setToTime] = React.useState(getTimeValue.getTimeValues(value ? value[1] : defaultValue ? defaultValue[1] : void 0));
128
- const [fromAmPm, setFromAmPm] = React.useState("am");
129
- const [toAmPm, setToAmPm] = React.useState("am");
130
- const [selectedFieldIndex, setSelectedFieldIndex] = React.useState(0);
113
+ const fromTimeRef = React.useRef();
114
+ const toTimeRef = React.useRef();
131
115
  const [_value, setValue] = React.useState(value != null ? value : defaultValue);
132
- React.useEffect(() => {
133
- setValue([
134
- getDate.getDate(fromTime.hours, fromTime.minutes, fromTime.seconds, format, fromAmPm),
135
- getDate.getDate(toTime.hours, toTime.minutes, toTime.seconds, format, toAmPm)
136
- ]);
137
- }, [
138
- fromTime.hours,
139
- fromTime.minutes,
140
- fromTime.seconds,
141
- toTime.hours,
142
- toTime.minutes,
143
- toTime.seconds,
144
- format,
145
- fromAmPm,
146
- toAmPm
147
- ]);
148
- React.useEffect(() => {
149
- if (format === "12" && (_value[0] || _value[1])) {
150
- setFromAmPm(parseInt(fromTime.hours, 10) >= 12 ? "pm" : "am");
151
- setToAmPm(parseInt(toTime.hours, 10) >= 12 ? "pm" : "am");
152
- }
153
- }, [format]);
154
- const setTime = (cb) => {
155
- selectedFieldIndex === 0 ? setFromTime(cb) : setToTime(cb);
156
- };
157
- const nextMinuteRef = () => {
158
- if (withSeconds) {
159
- return secondsRef.current[selectedFieldIndex];
160
- }
161
- if (format === "12") {
162
- return formatsRef.current[selectedFieldIndex];
163
- }
164
- if (format === "24" && selectedFieldIndex === 0) {
165
- return hoursRef.current[1];
166
- }
167
- return void 0;
168
- };
169
- const handleHoursChange = createTimeHandler.createTimeHandler({
170
- onChange: (val) => {
171
- setTime((current) => __spreadProps(__spreadValues({}, current), { hours: padTime.padTime(val) }));
172
- },
173
- min: 0,
174
- max: format === "12" ? 11 : 23,
175
- maxValue: format === "12" ? 1 : 2,
176
- nextRef: {
177
- current: minutesRef.current[selectedFieldIndex]
178
- }
179
- });
180
- const handleMinutesChange = createTimeHandler.createTimeHandler({
181
- onChange: (val) => {
182
- setTime((current) => __spreadProps(__spreadValues({}, current), { minutes: padTime.padTime(val) }));
183
- },
184
- min: 0,
185
- max: 59,
186
- maxValue: 5,
187
- nextRef: {
188
- current: nextMinuteRef()
189
- }
190
- });
191
- const handleSecondsChange = createTimeHandler.createTimeHandler({
192
- onChange: (val) => {
193
- setTime((current) => __spreadProps(__spreadValues({}, current), { seconds: padTime.padTime(val) }));
194
- },
195
- min: 0,
196
- max: 59,
197
- maxValue: 5,
198
- nextRef: {
199
- current: format === "12" ? formatsRef.current[selectedFieldIndex] : format === "24" && selectedFieldIndex === 0 ? hoursRef.current[1] : void 0
200
- }
201
- });
202
- const handleAmPmChange = createAmPmHandler.createAmPmHandler({
203
- onChange: (val) => {
204
- if (selectedFieldIndex === 0) {
205
- setFromAmPm(val);
206
- } else {
207
- setToAmPm(val);
208
- }
209
- },
210
- nextRef: {
211
- current: selectedFieldIndex === 0 ? hoursRef.current[1] : void 0
116
+ hooks.useDidUpdate(() => {
117
+ typeof onChange === "function" && onChange(_value);
118
+ }, [_value]);
119
+ hooks.useDidUpdate(() => {
120
+ var _a2, _b2, _c, _d;
121
+ if (((_a2 = value[0]) == null ? void 0 : _a2.getTime()) !== ((_b2 = _value[0]) == null ? void 0 : _b2.getTime()) || ((_c = value[1]) == null ? void 0 : _c.getTime()) !== ((_d = _value[1]) == null ? void 0 : _d.getTime())) {
122
+ setValue(value);
212
123
  }
213
- });
124
+ }, [value]);
214
125
  const handleClear = () => {
215
126
  var _a2;
216
- setFromTime({ hours: "", minutes: "", seconds: "" });
217
- setToTime({ hours: "", minutes: "", seconds: "" });
218
- setSelectedFieldIndex(0);
219
- setFromAmPm("");
220
- setToAmPm("");
221
- (_a2 = hoursRef.current[0]) == null ? void 0 : _a2.focus();
127
+ setValue([null, null]);
128
+ (_a2 = fromTimeRef.current) == null ? void 0 : _a2.focus();
222
129
  };
223
130
  const rightSection = clearable && _value.filter((item) => Boolean(item)).length > 0 ? /* @__PURE__ */ React__default.createElement(core.CloseButton, {
224
131
  variant: "transparent",
@@ -226,6 +133,18 @@ const TimeRangeInput = React.forwardRef((_a, ref) => {
226
133
  onClick: handleClear,
227
134
  size
228
135
  }) : null;
136
+ const forwardProps = {
137
+ amPmLabel,
138
+ amPmPlaceholder,
139
+ disabled,
140
+ format,
141
+ hoursLabel,
142
+ minutesLabel,
143
+ secondsLabel,
144
+ size,
145
+ timePlaceholder,
146
+ withSeconds
147
+ };
229
148
  return /* @__PURE__ */ React__default.createElement(core.InputWrapper, __spreadValues(__spreadValues({
230
149
  required,
231
150
  label,
@@ -245,8 +164,8 @@ const TimeRangeInput = React.forwardRef((_a, ref) => {
245
164
  required,
246
165
  invalid: !!error,
247
166
  onClick: () => {
248
- setSelectedFieldIndex(0);
249
- hoursRef.current[selectedFieldIndex].focus();
167
+ var _a2;
168
+ (_a2 = fromTimeRef.current) == null ? void 0 : _a2.focus();
250
169
  },
251
170
  size,
252
171
  className: cx({ [classes.disabled]: disabled }),
@@ -257,130 +176,25 @@ const TimeRangeInput = React.forwardRef((_a, ref) => {
257
176
  rightSectionWidth: theme.fn.size({ size, sizes: RIGHT_SECTION_WIDTH })
258
177
  }, rest), /* @__PURE__ */ React__default.createElement("div", {
259
178
  className: classes.inputWrapper
260
- }, /* @__PURE__ */ React__default.createElement(TimeField.TimeField, {
261
- ref: hooks.useMergedRef((node) => {
262
- hoursRef.current[0] = node;
263
- }, ref),
264
- value: fromTime.hours,
265
- onChange: handleHoursChange,
266
- setValue: (val) => setTime((current) => __spreadProps(__spreadValues({}, current), { hours: val })),
267
- id: uuid,
268
- className: classes.timeField,
269
- withSeparator: true,
270
- size,
271
- max: format === "12" ? 11 : 23,
272
- placeholder: timePlaceholder,
273
- "aria-label": `from ${hoursLabel}`,
274
- disabled,
275
- onFocus: () => setSelectedFieldIndex(0),
276
- name
277
- }), /* @__PURE__ */ React__default.createElement(TimeField.TimeField, {
278
- ref: (node) => {
279
- minutesRef.current[0] = node;
280
- },
281
- value: fromTime.minutes,
282
- onChange: handleMinutesChange,
283
- setValue: (val) => setTime((current) => __spreadProps(__spreadValues({}, current), { minutes: val })),
284
- className: classes.timeField,
285
- withSeparator: withSeconds,
286
- size,
287
- max: 59,
288
- placeholder: timePlaceholder,
289
- "aria-label": `from ${minutesLabel}`,
290
- disabled,
291
- onFocus: () => setSelectedFieldIndex(0)
292
- }), withSeconds && /* @__PURE__ */ React__default.createElement(TimeField.TimeField, {
293
- ref: (node) => {
294
- secondsRef.current[0] = node;
295
- },
296
- value: fromTime.seconds,
297
- onChange: handleSecondsChange,
298
- setValue: (val) => setTime((current) => __spreadProps(__spreadValues({}, current), { seconds: val })),
299
- className: classes.timeField,
300
- size,
301
- max: 59,
302
- placeholder: timePlaceholder,
303
- "aria-label": `from ${secondsLabel}`,
304
- disabled,
305
- onFocus: () => setSelectedFieldIndex(0)
306
- }), format === "12" && /* @__PURE__ */ React__default.createElement(AmPmInput.AmPmInput, {
307
- ref: (node) => {
308
- formatsRef.current[0] = node;
309
- },
310
- value: fromAmPm,
311
- onChange: handleAmPmChange,
312
- setValue: (val) => {
313
- setFromAmPm(val);
314
- },
315
- placeholder: amPmPlaceholder,
316
- onFocus: () => setSelectedFieldIndex(0),
317
- "aria-label": `from ${amPmLabel}`,
318
- disabled
319
- }), /* @__PURE__ */ React__default.createElement("span", {
179
+ }, /* @__PURE__ */ React__default.createElement(TimeInput.TimeInput, __spreadValues({
180
+ ref: hooks.useMergedRef(fromTimeRef, ref),
181
+ variant: "unstyled",
182
+ value: _value[0],
183
+ onChange: (date) => setValue([date, _value[1]]),
184
+ name,
185
+ nextRef: toTimeRef,
186
+ id: uuid
187
+ }, forwardProps)), /* @__PURE__ */ React__default.createElement("span", {
320
188
  className: classes.separator,
321
189
  style: {
322
- color: (toTime == null ? void 0 : toTime.hours) ? "inherit" : theme.colorScheme === "dark" ? theme.colors.dark[2] : theme.colors.gray[7]
190
+ color: theme.colorScheme === "dark" ? theme.colors.dark[2] : theme.colors.gray[7]
323
191
  }
324
- }, labelSeparator), /* @__PURE__ */ React__default.createElement("div", {
325
- className: classes.inputWrapper
326
- }, /* @__PURE__ */ React__default.createElement(TimeField.TimeField, {
327
- ref: (node) => {
328
- hoursRef.current[1] = node;
329
- },
330
- value: format === "12" && parseInt(toTime.hours, 10) >= 12 ? padTime.padTime((parseInt(toTime.hours, 10) - 12).toString()) : toTime.hours,
331
- onChange: handleHoursChange,
332
- setValue: (val) => setTime((current) => __spreadProps(__spreadValues({}, current), { hours: val })),
333
- className: classes.timeField,
334
- withSeparator: true,
335
- size,
336
- max: format === "12" ? 11 : 23,
337
- placeholder: timePlaceholder,
338
- "aria-label": `to ${hoursLabel}`,
339
- disabled,
340
- onFocus: () => setSelectedFieldIndex(1)
341
- }), /* @__PURE__ */ React__default.createElement(TimeField.TimeField, {
342
- ref: (node) => {
343
- minutesRef.current[1] = node;
344
- },
345
- value: toTime.minutes,
346
- onChange: handleMinutesChange,
347
- setValue: (val) => setTime((current) => __spreadProps(__spreadValues({}, current), { minutes: val })),
348
- className: classes.timeField,
349
- withSeparator: withSeconds,
350
- size,
351
- max: 59,
352
- placeholder: timePlaceholder,
353
- "aria-label": `to ${minutesLabel}`,
354
- disabled,
355
- onFocus: () => setSelectedFieldIndex(1)
356
- }), withSeconds && /* @__PURE__ */ React__default.createElement(TimeField.TimeField, {
357
- ref: (node) => {
358
- secondsRef.current[1] = node;
359
- },
360
- value: toTime.seconds,
361
- onChange: handleSecondsChange,
362
- setValue: (val) => setTime((current) => __spreadProps(__spreadValues({}, current), { seconds: val })),
363
- className: classes.timeField,
364
- size,
365
- max: 59,
366
- placeholder: timePlaceholder,
367
- "aria-label": `to ${secondsLabel}`,
368
- disabled,
369
- onFocus: () => setSelectedFieldIndex(1)
370
- }), format === "12" && /* @__PURE__ */ React__default.createElement(AmPmInput.AmPmInput, {
371
- ref: (node) => {
372
- formatsRef.current[1] = node;
373
- },
374
- value: toAmPm,
375
- onChange: handleAmPmChange,
376
- setValue: (val) => {
377
- setToAmPm(val);
378
- },
379
- placeholder: amPmPlaceholder,
380
- onFocus: () => setSelectedFieldIndex(1),
381
- "aria-label": `to ${amPmLabel}`,
382
- disabled
383
- })))));
192
+ }, labelSeparator), /* @__PURE__ */ React__default.createElement(TimeInput.TimeInput, __spreadValues({
193
+ ref: toTimeRef,
194
+ variant: "unstyled",
195
+ value: _value[1],
196
+ onChange: (date) => setValue([_value[0], date])
197
+ }, forwardProps)))));
384
198
  });
385
199
  TimeRangeInput.displayName = "@mantine/dates/TimeRangeInput";
386
200
 
@@ -1 +1 @@
1
- {"version":3,"file":"TimeRangeInput.js","sources":["../../../src/components/TimeRangeInput/TimeRangeInput.tsx"],"sourcesContent":["import React, { useState, useRef, forwardRef, useEffect } from 'react';\nimport {\n InputBaseProps,\n InputWrapperBaseProps,\n InputStylesNames,\n InputWrapperStylesNames,\n DefaultProps,\n Input,\n InputWrapper,\n MantineSize,\n ClassNames,\n CloseButton,\n extractMargins,\n} from '@mantine/core';\nimport { useMergedRef, useUuid } from '@mantine/hooks';\nimport { TimeField } from '../TimeInputBase/TimeField/TimeField';\nimport { createTimeHandler } from '../TimeInputBase/create-time-handler/create-time-handler';\nimport { getTimeValues } from '../TimeInputBase/get-time-values/get-time-value';\nimport useStyles from './TimeRangeInput.styles';\nimport { padTime } from '../TimeInputBase/pad-time/pad-time';\nimport { AmPmInput } from '../TimeInputBase/AmPmInput/AmPmInput';\nimport { createAmPmHandler } from '../TimeInputBase/create-amPm-handler/create-amPm-handler';\nimport { getDate } from '../TimeInputBase/get-date/get-date';\n\nexport type TimeRangeInputStylesNames =\n | Exclude<ClassNames<typeof useStyles>, 'disabled'>\n | InputStylesNames\n | InputWrapperStylesNames;\n\nexport interface TimeRangeInputProps\n extends DefaultProps<TimeRangeInputStylesNames>,\n InputBaseProps,\n InputWrapperBaseProps,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'onChange' | 'value' | 'defaultValue'> {\n /** Input size */\n size?: MantineSize;\n\n /** Controlled input value */\n value?: [Date | null, Date | null];\n\n /** Uncontrolled input default value */\n defaultValue?: [Date | null, Date | null];\n\n /** Controlled input onChange handler */\n onChange?(value: [Date, Date]): void;\n\n /** Display seconds input */\n withSeconds?: boolean;\n\n /** Allow to clear item */\n clearable?: boolean;\n\n /** aria-label for clear button */\n clearButtonLabel?: string;\n\n /** The time format */\n format?: '12' | '24';\n\n /** Uncontrolled input name */\n name?: string;\n\n /** aria-label for hours input */\n hoursLabel?: string;\n\n /** aria-label for minutes input */\n minutesLabel?: string;\n\n /** aria-label for seconds input */\n secondsLabel?: string;\n\n /** aria-label for am/pm input */\n amPmLabel?: string;\n\n /** placeholder for time input */\n timePlaceholder?: string;\n\n /** placeholder for am/pm input */\n amPmPlaceholder?: string;\n\n /** Disable field */\n disabled?: boolean;\n\n /** Separator between time inputs */\n labelSeparator?: string;\n}\n\nconst RIGHT_SECTION_WIDTH = {\n xs: 24,\n sm: 30,\n md: 34,\n lg: 40,\n xl: 44,\n};\n\nexport const TimeRangeInput = forwardRef<HTMLInputElement, TimeRangeInputProps>(\n (\n {\n required,\n label,\n error,\n description,\n className,\n style,\n size = 'sm',\n wrapperProps,\n classNames,\n styles,\n id,\n value,\n defaultValue,\n onChange,\n withSeconds = false,\n clearable = false,\n clearButtonLabel,\n format = '24',\n name,\n hoursLabel,\n minutesLabel,\n secondsLabel,\n amPmLabel,\n timePlaceholder = '--',\n amPmPlaceholder = 'am',\n labelSeparator = '–',\n disabled = false,\n sx,\n ...others\n }: TimeRangeInputProps,\n ref\n ) => {\n const { classes, cx, theme } = useStyles(\n { size },\n { classNames, styles, name: 'TimeRangeInput' }\n );\n const { margins, rest } = extractMargins(others);\n const uuid = useUuid(id);\n\n const hoursRef = useRef<HTMLInputElement[]>([]);\n const minutesRef = useRef<HTMLInputElement[]>([]);\n const secondsRef = useRef<HTMLInputElement[]>([]);\n const formatsRef = useRef<HTMLInputElement[]>([]);\n const [fromTime, setFromTime] = useState<{ hours: string; minutes: string; seconds: string }>(\n getTimeValues(value ? value[0] : undefined || defaultValue ? defaultValue[0] : undefined)\n );\n const [toTime, setToTime] = useState<{ hours: string; minutes: string; seconds: string }>(\n getTimeValues(value ? value[1] : undefined || defaultValue ? defaultValue[1] : undefined)\n );\n const [fromAmPm, setFromAmPm] = useState('am');\n const [toAmPm, setToAmPm] = useState('am');\n const [selectedFieldIndex, setSelectedFieldIndex] = useState<0 | 1>(0);\n const [_value, setValue] = useState<[Date, Date]>(value ?? defaultValue);\n\n useEffect(() => {\n setValue([\n getDate(fromTime.hours, fromTime.minutes, fromTime.seconds, format, fromAmPm),\n getDate(toTime.hours, toTime.minutes, toTime.seconds, format, toAmPm),\n ]);\n }, [\n fromTime.hours,\n fromTime.minutes,\n fromTime.seconds,\n toTime.hours,\n toTime.minutes,\n toTime.seconds,\n format,\n fromAmPm,\n toAmPm,\n ]);\n\n useEffect(() => {\n if (format === '12' && (_value[0] || _value[1])) {\n setFromAmPm(parseInt(fromTime.hours, 10) >= 12 ? 'pm' : 'am');\n setToAmPm(parseInt(toTime.hours, 10) >= 12 ? 'pm' : 'am');\n }\n }, [format]);\n\n const setTime = (\n cb: (val: ReturnType<typeof getTimeValues>) => ReturnType<typeof getTimeValues>\n ) => {\n selectedFieldIndex === 0 ? setFromTime(cb) : setToTime(cb);\n };\n\n const nextMinuteRef = () => {\n if (withSeconds) {\n return secondsRef.current[selectedFieldIndex];\n }\n\n if (format === '12') {\n return formatsRef.current[selectedFieldIndex];\n }\n\n if (format === '24' && selectedFieldIndex === 0) {\n return hoursRef.current[1];\n }\n\n return undefined;\n };\n\n const handleHoursChange = createTimeHandler({\n onChange: (val) => {\n setTime((current) => ({ ...current, hours: padTime(val) }));\n },\n min: 0,\n max: format === '12' ? 11 : 23,\n maxValue: format === '12' ? 1 : 2,\n nextRef: {\n current: minutesRef.current[selectedFieldIndex],\n },\n });\n\n const handleMinutesChange = createTimeHandler({\n onChange: (val) => {\n setTime((current) => ({ ...current, minutes: padTime(val) }));\n },\n min: 0,\n max: 59,\n maxValue: 5,\n nextRef: {\n current: nextMinuteRef(),\n },\n });\n\n const handleSecondsChange = createTimeHandler({\n onChange: (val) => {\n setTime((current) => ({ ...current, seconds: padTime(val) }));\n },\n min: 0,\n max: 59,\n maxValue: 5,\n nextRef: {\n current:\n format === '12'\n ? formatsRef.current[selectedFieldIndex]\n : format === '24' && selectedFieldIndex === 0\n ? hoursRef.current[1]\n : undefined,\n },\n });\n\n const handleAmPmChange = createAmPmHandler({\n onChange: (val) => {\n if (selectedFieldIndex === 0) {\n setFromAmPm(val);\n } else {\n setToAmPm(val);\n }\n },\n nextRef: {\n current: selectedFieldIndex === 0 ? hoursRef.current[1] : undefined,\n },\n });\n\n const handleClear = () => {\n setFromTime({ hours: '', minutes: '', seconds: '' });\n setToTime({ hours: '', minutes: '', seconds: '' });\n setSelectedFieldIndex(0);\n setFromAmPm('');\n setToAmPm('');\n hoursRef.current[0]?.focus();\n };\n\n const rightSection =\n clearable && _value.filter((item) => Boolean(item)).length > 0 ? (\n <CloseButton\n variant=\"transparent\"\n aria-label={clearButtonLabel}\n onClick={handleClear}\n size={size}\n />\n ) : null;\n\n return (\n <InputWrapper\n required={required}\n label={label}\n error={error}\n description={description}\n className={className}\n style={style}\n classNames={classNames}\n styles={styles}\n size={size}\n __staticSelector=\"TimeRangeInput\"\n id={uuid}\n sx={sx}\n {...margins}\n {...wrapperProps}\n >\n <Input\n component=\"div\"\n __staticSelector=\"TimeRangeInput\"\n required={required}\n invalid={!!error}\n onClick={() => {\n setSelectedFieldIndex(0);\n hoursRef.current[selectedFieldIndex].focus();\n }}\n size={size}\n className={cx({ [classes.disabled]: disabled })}\n classNames={classNames}\n styles={styles}\n disabled={disabled}\n rightSection={rightSection}\n rightSectionWidth={theme.fn.size({ size, sizes: RIGHT_SECTION_WIDTH })}\n {...rest}\n >\n <div className={classes.inputWrapper}>\n <TimeField\n ref={useMergedRef((node: HTMLInputElement) => {\n hoursRef.current[0] = node;\n }, ref)}\n value={fromTime.hours}\n onChange={handleHoursChange}\n setValue={(val) => setTime((current) => ({ ...current, hours: val }))}\n id={uuid}\n className={classes.timeField}\n withSeparator\n size={size}\n max={format === '12' ? 11 : 23}\n placeholder={timePlaceholder}\n aria-label={`from ${hoursLabel}`}\n disabled={disabled}\n onFocus={() => setSelectedFieldIndex(0)}\n name={name}\n />\n\n <TimeField\n ref={(node) => {\n minutesRef.current[0] = node;\n }}\n value={fromTime.minutes}\n onChange={handleMinutesChange}\n setValue={(val) => setTime((current) => ({ ...current, minutes: val }))}\n className={classes.timeField}\n withSeparator={withSeconds}\n size={size}\n max={59}\n placeholder={timePlaceholder}\n aria-label={`from ${minutesLabel}`}\n disabled={disabled}\n onFocus={() => setSelectedFieldIndex(0)}\n />\n\n {withSeconds && (\n <TimeField\n ref={(node) => {\n secondsRef.current[0] = node;\n }}\n value={fromTime.seconds}\n onChange={handleSecondsChange}\n setValue={(val) => setTime((current) => ({ ...current, seconds: val }))}\n className={classes.timeField}\n size={size}\n max={59}\n placeholder={timePlaceholder}\n aria-label={`from ${secondsLabel}`}\n disabled={disabled}\n onFocus={() => setSelectedFieldIndex(0)}\n />\n )}\n\n {format === '12' && (\n <AmPmInput\n ref={(node) => {\n formatsRef.current[0] = node;\n }}\n value={fromAmPm}\n onChange={handleAmPmChange}\n setValue={(val) => {\n setFromAmPm(val);\n }}\n placeholder={amPmPlaceholder}\n onFocus={() => setSelectedFieldIndex(0)}\n aria-label={`from ${amPmLabel}`}\n disabled={disabled}\n />\n )}\n\n <span\n className={classes.separator}\n style={{\n color: toTime?.hours\n ? 'inherit'\n : theme.colorScheme === 'dark'\n ? theme.colors.dark[2]\n : theme.colors.gray[7],\n }}\n >\n {labelSeparator}\n </span>\n\n <div className={classes.inputWrapper}>\n <TimeField\n ref={(node) => {\n hoursRef.current[1] = node;\n }}\n value={\n format === '12' && parseInt(toTime.hours, 10) >= 12\n ? padTime((parseInt(toTime.hours, 10) - 12).toString())\n : toTime.hours\n }\n onChange={handleHoursChange}\n setValue={(val) => setTime((current) => ({ ...current, hours: val }))}\n className={classes.timeField}\n withSeparator\n size={size}\n max={format === '12' ? 11 : 23}\n placeholder={timePlaceholder}\n aria-label={`to ${hoursLabel}`}\n disabled={disabled}\n onFocus={() => setSelectedFieldIndex(1)}\n />\n\n <TimeField\n ref={(node) => {\n minutesRef.current[1] = node;\n }}\n value={toTime.minutes}\n onChange={handleMinutesChange}\n setValue={(val) => setTime((current) => ({ ...current, minutes: val }))}\n className={classes.timeField}\n withSeparator={withSeconds}\n size={size}\n max={59}\n placeholder={timePlaceholder}\n aria-label={`to ${minutesLabel}`}\n disabled={disabled}\n onFocus={() => setSelectedFieldIndex(1)}\n />\n\n {withSeconds && (\n <TimeField\n ref={(node) => {\n secondsRef.current[1] = node;\n }}\n value={toTime.seconds}\n onChange={handleSecondsChange}\n setValue={(val) => setTime((current) => ({ ...current, seconds: val }))}\n className={classes.timeField}\n size={size}\n max={59}\n placeholder={timePlaceholder}\n aria-label={`to ${secondsLabel}`}\n disabled={disabled}\n onFocus={() => setSelectedFieldIndex(1)}\n />\n )}\n\n {format === '12' && (\n <AmPmInput\n ref={(node) => {\n formatsRef.current[1] = node;\n }}\n value={toAmPm}\n onChange={handleAmPmChange}\n setValue={(val) => {\n setToAmPm(val);\n }}\n placeholder={amPmPlaceholder}\n onFocus={() => setSelectedFieldIndex(1)}\n aria-label={`to ${amPmLabel}`}\n disabled={disabled}\n />\n )}\n </div>\n </div>\n </Input>\n </InputWrapper>\n );\n }\n);\n\nTimeRangeInput.displayName = '@mantine/dates/TimeRangeInput';\n"],"names":["forwardRef","useStyles","extractMargins","useUuid","useRef","useState","getTimeValues","useEffect","getDate","createTimeHandler","padTime","createAmPmHandler","React","CloseButton","InputWrapper","Input","TimeField","useMergedRef","AmPmInput"],"mappings":"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"}
1
+ {"version":3,"file":"TimeRangeInput.js","sources":["../../../src/components/TimeRangeInput/TimeRangeInput.tsx"],"sourcesContent":["import React, { useState, useRef, forwardRef } from 'react';\nimport {\n InputBaseProps,\n InputWrapperBaseProps,\n InputStylesNames,\n InputWrapperStylesNames,\n DefaultProps,\n Input,\n InputWrapper,\n MantineSize,\n ClassNames,\n CloseButton,\n extractMargins,\n} from '@mantine/core';\nimport { useDidUpdate, useMergedRef, useUuid } from '@mantine/hooks';\nimport useStyles from './TimeRangeInput.styles';\nimport { TimeInput } from '../TimeInput';\n\nexport type TimeRangeInputStylesNames =\n | Exclude<ClassNames<typeof useStyles>, 'disabled'>\n | InputStylesNames\n | InputWrapperStylesNames;\n\nexport interface TimeRangeInputProps\n extends DefaultProps<TimeRangeInputStylesNames>,\n InputBaseProps,\n InputWrapperBaseProps,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'onChange' | 'value' | 'defaultValue'> {\n /** Input size */\n size?: MantineSize;\n\n /** Controlled input value */\n value?: [Date | null, Date | null];\n\n /** Uncontrolled input default value */\n defaultValue?: [Date | null, Date | null];\n\n /** Controlled input onChange handler */\n onChange?(value: [Date, Date]): void;\n\n /** Display seconds input */\n withSeconds?: boolean;\n\n /** Allow to clear item */\n clearable?: boolean;\n\n /** aria-label for clear button */\n clearButtonLabel?: string;\n\n /** The time format */\n format?: '12' | '24';\n\n /** Uncontrolled input name */\n name?: string;\n\n /** aria-label for hours input */\n hoursLabel?: string;\n\n /** aria-label for minutes input */\n minutesLabel?: string;\n\n /** aria-label for seconds input */\n secondsLabel?: string;\n\n /** aria-label for am/pm input */\n amPmLabel?: string;\n\n /** placeholder for time input */\n timePlaceholder?: string;\n\n /** placeholder for am/pm input */\n amPmPlaceholder?: string;\n\n /** Disable field */\n disabled?: boolean;\n\n /** Separator between time inputs */\n labelSeparator?: string;\n}\n\nconst RIGHT_SECTION_WIDTH = {\n xs: 24,\n sm: 30,\n md: 34,\n lg: 40,\n xl: 44,\n};\n\nexport const TimeRangeInput = forwardRef<HTMLInputElement, TimeRangeInputProps>(\n (\n {\n required,\n label,\n error,\n description,\n className,\n style,\n size = 'sm',\n wrapperProps,\n classNames,\n styles,\n id,\n value,\n defaultValue = [null, null],\n onChange,\n withSeconds = false,\n clearable = false,\n clearButtonLabel,\n format = '24',\n name,\n hoursLabel,\n minutesLabel,\n secondsLabel,\n amPmLabel,\n timePlaceholder = '--',\n amPmPlaceholder = 'am',\n labelSeparator = '–',\n disabled = false,\n sx,\n ...others\n }: TimeRangeInputProps,\n ref\n ) => {\n const { classes, cx, theme } = useStyles(\n { size },\n { classNames, styles, name: 'TimeRangeInput' }\n );\n const { margins, rest } = extractMargins(others);\n const uuid = useUuid(id);\n\n const fromTimeRef = useRef<HTMLInputElement>();\n const toTimeRef = useRef<HTMLInputElement>();\n const [_value, setValue] = useState<[Date, Date]>(value ?? defaultValue);\n\n useDidUpdate(() => {\n typeof onChange === 'function' && onChange(_value);\n }, [_value]);\n\n // Allow controlled value prop to override internal _value\n useDidUpdate(() => {\n if (\n value[0]?.getTime() !== _value[0]?.getTime() ||\n value[1]?.getTime() !== _value[1]?.getTime()\n ) {\n setValue(value);\n }\n }, [value]);\n\n const handleClear = () => {\n setValue([null, null]);\n fromTimeRef.current?.focus();\n };\n\n const rightSection =\n clearable && _value.filter((item) => Boolean(item)).length > 0 ? (\n <CloseButton\n variant=\"transparent\"\n aria-label={clearButtonLabel}\n onClick={handleClear}\n size={size}\n />\n ) : null;\n\n const forwardProps = {\n amPmLabel,\n amPmPlaceholder,\n disabled,\n format,\n hoursLabel,\n minutesLabel,\n secondsLabel,\n size,\n timePlaceholder,\n withSeconds,\n };\n\n return (\n <InputWrapper\n required={required}\n label={label}\n error={error}\n description={description}\n className={className}\n style={style}\n classNames={classNames}\n styles={styles}\n size={size}\n __staticSelector=\"TimeRangeInput\"\n id={uuid}\n sx={sx}\n {...margins}\n {...wrapperProps}\n >\n <Input\n component=\"div\"\n __staticSelector=\"TimeRangeInput\"\n required={required}\n invalid={!!error}\n onClick={() => {\n fromTimeRef.current?.focus();\n }}\n size={size}\n className={cx({ [classes.disabled]: disabled })}\n classNames={classNames}\n styles={styles}\n disabled={disabled}\n rightSection={rightSection}\n rightSectionWidth={theme.fn.size({ size, sizes: RIGHT_SECTION_WIDTH })}\n {...rest}\n >\n <div className={classes.inputWrapper}>\n <TimeInput\n ref={useMergedRef(fromTimeRef, ref)}\n variant=\"unstyled\"\n value={_value[0]}\n onChange={(date) => setValue([date, _value[1]])}\n name={name}\n nextRef={toTimeRef}\n id={uuid}\n {...forwardProps}\n />\n\n <span\n className={classes.separator}\n style={{\n color: theme.colorScheme === 'dark' ? theme.colors.dark[2] : theme.colors.gray[7],\n }}\n >\n {labelSeparator}\n </span>\n\n <TimeInput\n ref={toTimeRef}\n variant=\"unstyled\"\n value={_value[1]}\n onChange={(date) => setValue([_value[0], date])}\n {...forwardProps}\n />\n </div>\n </Input>\n </InputWrapper>\n );\n }\n);\n\nTimeRangeInput.displayName = '@mantine/dates/TimeRangeInput';\n"],"names":["forwardRef","useStyles","extractMargins","useUuid","useRef","useState","useDidUpdate","React","CloseButton","InputWrapper","Input","TimeInput","useMergedRef"],"mappings":"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"}
@@ -1,10 +1,9 @@
1
- import React, { forwardRef, useRef, useState, useEffect } from 'react';
1
+ import React, { forwardRef, useRef, useState } from 'react';
2
2
  import { extractMargins, InputWrapper, Input, CloseButton } from '@mantine/core';
3
- import { useUuid, useMergedRef } from '@mantine/hooks';
3
+ import { useUuid, useDidUpdate, useMergedRef } from '@mantine/hooks';
4
4
  import { TimeField } from '../TimeInputBase/TimeField/TimeField.js';
5
5
  import { createTimeHandler } from '../TimeInputBase/create-time-handler/create-time-handler.js';
6
6
  import useStyles from './TimeInput.styles.js';
7
- import { padTime } from '../TimeInputBase/pad-time/pad-time.js';
8
7
  import { AmPmInput } from '../TimeInputBase/AmPmInput/AmPmInput.js';
9
8
  import { createAmPmHandler } from '../TimeInputBase/create-amPm-handler/create-amPm-handler.js';
10
9
  import { getDate } from '../TimeInputBase/get-date/get-date.js';
@@ -76,7 +75,8 @@ const TimeInput = forwardRef((_a, ref) => {
76
75
  timePlaceholder = "--",
77
76
  amPmPlaceholder = "am",
78
77
  disabled = false,
79
- sx
78
+ sx,
79
+ nextRef
80
80
  } = _b, others = __objRest(_b, [
81
81
  "required",
82
82
  "label",
@@ -104,7 +104,8 @@ const TimeInput = forwardRef((_a, ref) => {
104
104
  "timePlaceholder",
105
105
  "amPmPlaceholder",
106
106
  "disabled",
107
- "sx"
107
+ "sx",
108
+ "nextRef"
108
109
  ]);
109
110
  const { classes, cx, theme } = useStyles({ size }, { classNames, styles, name: "TimeInput" });
110
111
  const { margins, rest } = extractMargins(others);
@@ -113,62 +114,58 @@ const TimeInput = forwardRef((_a, ref) => {
113
114
  const minutesRef = useRef();
114
115
  const secondsRef = useRef();
115
116
  const amPmRef = useRef();
116
- const [amPm, setAmPm] = useState("am");
117
- const [time, setTime] = useState(getTimeValues(value || defaultValue));
117
+ const [time, setTime] = useState(getTimeValues(value || defaultValue, format));
118
118
  const [_value, setValue] = useState(value || defaultValue);
119
- useEffect(() => {
120
- setValue(getDate(time.hours, time.minutes, time.seconds, format, amPm));
121
- }, [time, format, amPm, onChange]);
122
- useEffect(() => {
123
- if (format === "12" && _value) {
124
- const _hours = parseInt(time.hours, 10);
125
- setAmPm(_hours >= 12 ? "pm" : "am");
126
- if (_hours >= 12) {
127
- setTime(__spreadProps(__spreadValues({}, time), { hours: padTime((_hours - 12).toString()) }));
128
- }
119
+ useDidUpdate(() => {
120
+ setTime(getTimeValues(_value, format));
121
+ }, [_value, format]);
122
+ useDidUpdate(() => {
123
+ if ((value == null ? void 0 : value.getTime()) !== (_value == null ? void 0 : _value.getTime())) {
124
+ setValue(value);
129
125
  }
130
- }, [format]);
126
+ }, [value]);
127
+ const setDate = (change) => {
128
+ const timeWithChange = __spreadValues(__spreadValues({}, time), change);
129
+ const newDate = getDate(timeWithChange.hours, timeWithChange.minutes, timeWithChange.seconds, format, timeWithChange.amPm);
130
+ setValue(newDate);
131
+ typeof onChange === "function" && onChange(newDate);
132
+ };
131
133
  const handleHoursChange = createTimeHandler({
132
134
  onChange: (val) => {
133
- const newTime = __spreadProps(__spreadValues({}, time), { hours: padTime(val) });
134
- setTime(newTime);
135
- typeof onChange === "function" && onChange(getDate(newTime.hours, newTime.minutes, newTime.seconds, format, amPm));
135
+ setDate({ hours: val });
136
136
  },
137
- min: 0,
138
- max: format === "12" ? 11 : 23,
139
- maxValue: format === "12" ? 1 : 2,
137
+ min: format === "12" ? 1 : 0,
138
+ max: format === "12" ? 12 : 23,
139
+ maxValue: 2,
140
140
  nextRef: minutesRef
141
141
  });
142
142
  const handleMinutesChange = createTimeHandler({
143
143
  onChange: (val) => {
144
- const newTime = __spreadProps(__spreadValues({}, time), { minutes: padTime(val) });
145
- setTime(newTime);
146
- typeof onChange === "function" && onChange(getDate(newTime.hours, newTime.minutes, newTime.seconds, format, amPm));
144
+ setDate({ minutes: val });
147
145
  },
148
146
  min: 0,
149
147
  max: 59,
150
148
  maxValue: 5,
151
- nextRef: !withSeconds ? amPmRef : secondsRef
149
+ nextRef: withSeconds ? secondsRef : format === "12" ? amPmRef : nextRef
152
150
  });
153
151
  const handleSecondsChange = createTimeHandler({
154
152
  onChange: (val) => {
155
- const newTime = __spreadProps(__spreadValues({}, time), { seconds: padTime(val) });
156
- setTime(newTime);
157
- typeof onChange === "function" && onChange(getDate(newTime.hours, newTime.minutes, newTime.seconds, format, amPm));
153
+ setDate({ seconds: val });
158
154
  },
159
155
  min: 0,
160
156
  max: 59,
161
157
  maxValue: 5,
162
- nextRef: amPmRef
158
+ nextRef: format === "12" ? amPmRef : nextRef
163
159
  });
164
160
  const handleAmPmChange = createAmPmHandler({
165
161
  onChange: (val) => {
166
- setAmPm(val);
167
- }
162
+ setDate({ amPm: val });
163
+ },
164
+ nextRef
168
165
  });
169
166
  const handleClear = () => {
170
- setTime({ hours: "", minutes: "", seconds: "" });
171
- setAmPm("");
167
+ setTime({ hours: "", minutes: "", seconds: "", amPm: "" });
168
+ setValue(null);
172
169
  hoursRef.current.focus();
173
170
  };
174
171
  const rightSection = clearable && _value ? /* @__PURE__ */ React.createElement(CloseButton, {
@@ -214,7 +211,7 @@ const TimeInput = forwardRef((_a, ref) => {
214
211
  className: classes.timeInput,
215
212
  withSeparator: true,
216
213
  size,
217
- max: format === "12" ? 11 : 23,
214
+ max: format === "12" ? 12 : 23,
218
215
  placeholder: timePlaceholder,
219
216
  "aria-label": hoursLabel,
220
217
  disabled,
@@ -244,11 +241,8 @@ const TimeInput = forwardRef((_a, ref) => {
244
241
  disabled
245
242
  }), format === "12" && /* @__PURE__ */ React.createElement(AmPmInput, {
246
243
  ref: amPmRef,
247
- value: amPm,
244
+ value: time.amPm,
248
245
  onChange: handleAmPmChange,
249
- setValue: (val) => {
250
- setAmPm(val);
251
- },
252
246
  placeholder: amPmPlaceholder,
253
247
  size,
254
248
  "aria-label": amPmLabel,