@mantine/dates 3.5.5 → 3.6.1

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 (88) hide show
  1. package/cjs/components/CalendarBase/CalendarHeader/ArrowIcon.js +5 -1
  2. package/cjs/components/CalendarBase/CalendarHeader/ArrowIcon.js.map +1 -1
  3. package/cjs/components/DatePicker/DatePicker.js +8 -1
  4. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  5. package/cjs/components/TimeInput/TimeInput.js +88 -32
  6. package/cjs/components/TimeInput/TimeInput.js.map +1 -1
  7. package/cjs/components/TimeInputBase/AmPmInput/AmPmInput.js +80 -0
  8. package/cjs/components/TimeInputBase/AmPmInput/AmPmInput.js.map +1 -0
  9. package/cjs/components/{TimeInput → TimeInputBase}/TimeField/TimeField.js +8 -5
  10. package/cjs/components/TimeInputBase/TimeField/TimeField.js.map +1 -0
  11. package/cjs/components/{TimeInput/TimeField/TimeField.styles.js → TimeInputBase/TimeInputBase.styles.js} +8 -2
  12. package/cjs/components/TimeInputBase/TimeInputBase.styles.js.map +1 -0
  13. package/cjs/components/TimeInputBase/create-amPm-handler/create-amPm-handler.js +24 -0
  14. package/cjs/components/TimeInputBase/create-amPm-handler/create-amPm-handler.js.map +1 -0
  15. package/cjs/components/{TimeInput → TimeInputBase}/create-time-handler/create-time-handler.js +1 -1
  16. package/cjs/components/TimeInputBase/create-time-handler/create-time-handler.js.map +1 -0
  17. package/cjs/components/TimeInputBase/get-date/get-date.js +23 -0
  18. package/cjs/components/TimeInputBase/get-date/get-date.js.map +1 -0
  19. package/cjs/components/{TimeInput → TimeInputBase}/get-time-values/get-time-value.js +3 -3
  20. package/cjs/components/TimeInputBase/get-time-values/get-time-value.js.map +1 -0
  21. package/cjs/components/{TimeInput → TimeInputBase}/pad-time/pad-time.js +2 -1
  22. package/cjs/components/TimeInputBase/pad-time/pad-time.js.map +1 -0
  23. package/cjs/components/TimeRangeInput/TimeRangeInput.js +147 -46
  24. package/cjs/components/TimeRangeInput/TimeRangeInput.js.map +1 -1
  25. package/esm/components/CalendarBase/CalendarHeader/ArrowIcon.js +5 -1
  26. package/esm/components/CalendarBase/CalendarHeader/ArrowIcon.js.map +1 -1
  27. package/esm/components/DatePicker/DatePicker.js +8 -1
  28. package/esm/components/DatePicker/DatePicker.js.map +1 -1
  29. package/esm/components/TimeInput/TimeInput.js +91 -34
  30. package/esm/components/TimeInput/TimeInput.js.map +1 -1
  31. package/esm/components/TimeInputBase/AmPmInput/AmPmInput.js +72 -0
  32. package/esm/components/TimeInputBase/AmPmInput/AmPmInput.js.map +1 -0
  33. package/esm/components/{TimeInput → TimeInputBase}/TimeField/TimeField.js +8 -5
  34. package/esm/components/TimeInputBase/TimeField/TimeField.js.map +1 -0
  35. package/esm/components/{TimeInput/TimeField/TimeField.styles.js → TimeInputBase/TimeInputBase.styles.js} +8 -2
  36. package/esm/components/TimeInputBase/TimeInputBase.styles.js.map +1 -0
  37. package/esm/components/TimeInputBase/create-amPm-handler/create-amPm-handler.js +20 -0
  38. package/esm/components/TimeInputBase/create-amPm-handler/create-amPm-handler.js.map +1 -0
  39. package/esm/components/{TimeInput → TimeInputBase}/create-time-handler/create-time-handler.js +1 -1
  40. package/esm/components/TimeInputBase/create-time-handler/create-time-handler.js.map +1 -0
  41. package/esm/components/TimeInputBase/get-date/get-date.js +15 -0
  42. package/esm/components/TimeInputBase/get-date/get-date.js.map +1 -0
  43. package/esm/components/{TimeInput → TimeInputBase}/get-time-values/get-time-value.js +3 -3
  44. package/esm/components/TimeInputBase/get-time-values/get-time-value.js.map +1 -0
  45. package/esm/components/TimeInputBase/pad-time/pad-time.js +7 -0
  46. package/esm/components/TimeInputBase/pad-time/pad-time.js.map +1 -0
  47. package/esm/components/TimeRangeInput/TimeRangeInput.js +150 -48
  48. package/esm/components/TimeRangeInput/TimeRangeInput.js.map +1 -1
  49. package/lib/components/CalendarBase/CalendarHeader/ArrowIcon.d.ts.map +1 -1
  50. package/lib/components/DatePicker/DatePicker.d.ts.map +1 -1
  51. package/lib/components/TimeInput/TimeInput.d.ts +12 -0
  52. package/lib/components/TimeInput/TimeInput.d.ts.map +1 -1
  53. package/lib/components/TimeInputBase/AmPmInput/AmPmInput.d.ts +13 -0
  54. package/lib/components/TimeInputBase/AmPmInput/AmPmInput.d.ts.map +1 -0
  55. package/lib/components/{TimeInput → TimeInputBase}/TimeField/TimeField.d.ts +0 -0
  56. package/lib/components/TimeInputBase/TimeField/TimeField.d.ts.map +1 -0
  57. package/lib/components/{TimeInput/TimeField/TimeField.styles.d.ts → TimeInputBase/TimeInputBase.styles.d.ts} +4 -3
  58. package/lib/components/TimeInputBase/TimeInputBase.styles.d.ts.map +1 -0
  59. package/lib/components/TimeInputBase/create-amPm-handler/create-amPm-handler.d.ts +8 -0
  60. package/lib/components/TimeInputBase/create-amPm-handler/create-amPm-handler.d.ts.map +1 -0
  61. package/lib/components/{TimeInput → TimeInputBase}/create-time-handler/create-time-handler.d.ts +0 -0
  62. package/lib/components/TimeInputBase/create-time-handler/create-time-handler.d.ts.map +1 -0
  63. package/lib/components/TimeInputBase/get-date/get-date.d.ts +2 -0
  64. package/lib/components/TimeInputBase/get-date/get-date.d.ts.map +1 -0
  65. package/lib/components/{TimeInput → TimeInputBase}/get-time-values/get-time-value.d.ts +0 -0
  66. package/lib/components/TimeInputBase/get-time-values/get-time-value.d.ts.map +1 -0
  67. package/lib/components/TimeInputBase/pad-time/pad-time.d.ts +2 -0
  68. package/lib/components/TimeInputBase/pad-time/pad-time.d.ts.map +1 -0
  69. package/lib/components/TimeRangeInput/TimeRangeInput.d.ts +12 -0
  70. package/lib/components/TimeRangeInput/TimeRangeInput.d.ts.map +1 -1
  71. package/package.json +3 -3
  72. package/cjs/components/TimeInput/TimeField/TimeField.js.map +0 -1
  73. package/cjs/components/TimeInput/TimeField/TimeField.styles.js.map +0 -1
  74. package/cjs/components/TimeInput/create-time-handler/create-time-handler.js.map +0 -1
  75. package/cjs/components/TimeInput/get-time-values/get-time-value.js.map +0 -1
  76. package/cjs/components/TimeInput/pad-time/pad-time.js.map +0 -1
  77. package/esm/components/TimeInput/TimeField/TimeField.js.map +0 -1
  78. package/esm/components/TimeInput/TimeField/TimeField.styles.js.map +0 -1
  79. package/esm/components/TimeInput/create-time-handler/create-time-handler.js.map +0 -1
  80. package/esm/components/TimeInput/get-time-values/get-time-value.js.map +0 -1
  81. package/esm/components/TimeInput/pad-time/pad-time.js +0 -6
  82. package/esm/components/TimeInput/pad-time/pad-time.js.map +0 -1
  83. package/lib/components/TimeInput/TimeField/TimeField.d.ts.map +0 -1
  84. package/lib/components/TimeInput/TimeField/TimeField.styles.d.ts.map +0 -1
  85. package/lib/components/TimeInput/create-time-handler/create-time-handler.d.ts.map +0 -1
  86. package/lib/components/TimeInput/get-time-values/get-time-value.d.ts.map +0 -1
  87. package/lib/components/TimeInput/pad-time/pad-time.d.ts +0 -2
  88. package/lib/components/TimeInput/pad-time/pad-time.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimeInputBase.styles.js","sources":["../../../src/components/TimeInputBase/TimeInputBase.styles.ts"],"sourcesContent":["import { createStyles, MantineSize } from '@mantine/core';\n\nexport const inputSizes = {\n xs: 20,\n sm: 23,\n md: 25,\n lg: 27,\n xl: 29,\n};\n\ninterface TimeInputBaseStyles {\n size: MantineSize;\n hasValue: boolean;\n}\n\nexport default createStyles((theme, { size, hasValue }: TimeInputBaseStyles) => ({\n timeInput: {\n ...theme.fn.fontStyles(),\n width: theme.fn.size({ size, sizes: inputSizes }),\n appearance: 'none',\n backgroundColor: 'transparent',\n color: 'inherit',\n padding: 0,\n textAlign: 'center',\n border: '1px solid transparent',\n fontSize: theme.fn.size({ size, sizes: theme.fontSizes }),\n lineHeight: 1,\n outline: 0,\n\n '&:focus': {\n textAlign: hasValue ? undefined : 'start',\n },\n\n '&::placeholder': {\n textAlign: 'center',\n },\n\n '&[disabled]': {\n color: theme.colorScheme === 'dark' ? theme.colors.dark[2] : theme.colors.gray[7],\n cursor: 'not-allowed',\n },\n },\n}));\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ const testRegex = /(^(a|p)m?$)|(^$)/;
2
+ function createAmPmHandler({ onChange, nextRef }) {
3
+ return (value, triggerShift) => {
4
+ var _a, _b;
5
+ const valLower = value.toLowerCase();
6
+ if (valLower === "am" || valLower === "pm") {
7
+ onChange(valLower);
8
+ triggerShift && ((_a = nextRef == null ? void 0 : nextRef.current) == null ? void 0 : _a.focus());
9
+ triggerShift && ((_b = nextRef == null ? void 0 : nextRef.current) == null ? void 0 : _b.select());
10
+ return;
11
+ }
12
+ if (!testRegex.test(valLower)) {
13
+ return;
14
+ }
15
+ onChange(valLower);
16
+ };
17
+ }
18
+
19
+ export { createAmPmHandler };
20
+ //# sourceMappingURL=create-amPm-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-amPm-handler.js","sources":["../../../../src/components/TimeInputBase/create-amPm-handler/create-amPm-handler.tsx"],"sourcesContent":["interface CreateAmPmHandler {\n onChange(value: string): void;\n nextRef?: React.RefObject<HTMLInputElement>;\n}\n\nconst testRegex = /(^(a|p)m?$)|(^$)/;\n\nexport function createAmPmHandler({ onChange, nextRef }: CreateAmPmHandler) {\n return (value: string, triggerShift: boolean) => {\n const valLower = value.toLowerCase();\n\n if (valLower === 'am' || valLower === 'pm') {\n onChange(valLower);\n triggerShift && nextRef?.current?.focus();\n triggerShift && nextRef?.current?.select();\n return;\n }\n\n if (!testRegex.test(valLower)) {\n return;\n }\n\n onChange(valLower);\n };\n}\n"],"names":[],"mappings":"AAAA,MAAM,SAAS,GAAG,kBAAkB,CAAC;AAC9B,SAAS,iBAAiB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;AACzD,EAAE,OAAO,CAAC,KAAK,EAAE,YAAY,KAAK;AAClC,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC;AACf,IAAI,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;AACzC,IAAI,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,EAAE;AAChD,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACzB,MAAM,YAAY,KAAK,CAAC,EAAE,GAAG,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;AACxG,MAAM,YAAY,KAAK,CAAC,EAAE,GAAG,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;AACzG,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AACnC,MAAM,OAAO;AACb,KAAK;AACL,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACvB,GAAG,CAAC;AACJ;;;;"}
@@ -15,7 +15,7 @@ function createTimeHandler({ onChange, nextRef, min, max, maxValue }) {
15
15
  return;
16
16
  }
17
17
  if (parsed > maxValue) {
18
- onChange(padTime(clamp({ value: parsed, min, max })));
18
+ onChange(padTime(clamp({ value: parsed, min, max }).toString()));
19
19
  triggerShift && ((_c = nextRef == null ? void 0 : nextRef.current) == null ? void 0 : _c.focus());
20
20
  triggerShift && ((_d = nextRef == null ? void 0 : nextRef.current) == null ? void 0 : _d.select());
21
21
  return;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-time-handler.js","sources":["../../../../src/components/TimeInputBase/create-time-handler/create-time-handler.ts"],"sourcesContent":["import { clamp } from '@mantine/hooks';\nimport { padTime } from '../pad-time/pad-time';\n\ninterface CreateTimeHandler {\n onChange(value: string): void;\n nextRef?: React.RefObject<HTMLInputElement>;\n min: number;\n max: number;\n maxValue: number;\n}\n\nexport function createTimeHandler({ onChange, nextRef, min, max, maxValue }: CreateTimeHandler) {\n return (value: string, triggerShift: boolean) => {\n if (value === '00') {\n onChange('00');\n triggerShift && nextRef?.current?.focus();\n triggerShift && nextRef?.current?.select();\n return;\n }\n\n const parsed = parseInt(value, 10);\n\n if (Number.isNaN(parsed)) {\n return;\n }\n\n if (parsed > maxValue) {\n onChange(padTime(clamp({ value: parsed, min, max }).toString()));\n triggerShift && nextRef?.current?.focus();\n triggerShift && nextRef?.current?.select();\n return;\n }\n\n onChange(parsed.toString());\n };\n}\n"],"names":[],"mappings":";;;AAEO,SAAS,iBAAiB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE;AAC7E,EAAE,OAAO,CAAC,KAAK,EAAE,YAAY,KAAK;AAClC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACvB,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE;AACxB,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrB,MAAM,YAAY,KAAK,CAAC,EAAE,GAAG,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;AACxG,MAAM,YAAY,KAAK,CAAC,EAAE,GAAG,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;AACzG,MAAM,OAAO;AACb,KAAK;AACL,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACvC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AAC9B,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,MAAM,GAAG,QAAQ,EAAE;AAC3B,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AACvE,MAAM,YAAY,KAAK,CAAC,EAAE,GAAG,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;AACxG,MAAM,YAAY,KAAK,CAAC,EAAE,GAAG,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;AACzG,MAAM,OAAO;AACb,KAAK;AACL,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,GAAG,CAAC;AACJ;;;;"}
@@ -0,0 +1,15 @@
1
+ import dayjs from 'dayjs';
2
+
3
+ function getDate(hours, minutes, seconds, format, amPm) {
4
+ const date = dayjs();
5
+ let _hours = parseInt(hours, 10);
6
+ const _minutes = parseInt(minutes, 10);
7
+ const _seconds = parseInt(seconds, 10);
8
+ if (Number.isNaN(_hours)) {
9
+ _hours = 0;
10
+ }
11
+ return date.hour(format === "12" && amPm === "pm" ? _hours < 12 ? _hours - 12 : _hours : _hours).minute(Number.isNaN(_minutes) ? 0 : _minutes).second(Number.isNaN(_seconds) ? 0 : _seconds).toDate();
12
+ }
13
+
14
+ export { getDate };
15
+ //# sourceMappingURL=get-date.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-date.js","sources":["../../../../src/components/TimeInputBase/get-date/get-date.ts"],"sourcesContent":["import dayjs from 'dayjs';\n\nexport function getDate(\n hours: string,\n minutes: string,\n seconds: string,\n format: '12' | '24',\n amPm?: string\n) {\n const date = dayjs();\n let _hours = parseInt(hours, 10);\n const _minutes = parseInt(minutes, 10);\n const _seconds = parseInt(seconds, 10);\n\n if (Number.isNaN(_hours)) {\n _hours = 0;\n }\n\n return date\n .hour(format === '12' && amPm === 'pm' ? (_hours < 12 ? _hours - 12 : _hours) : _hours)\n .minute(Number.isNaN(_minutes) ? 0 : _minutes)\n .second(Number.isNaN(_seconds) ? 0 : _seconds)\n .toDate();\n}\n"],"names":[],"mappings":";;AACO,SAAS,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;AAC/D,EAAE,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC;AACvB,EAAE,IAAI,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACnC,EAAE,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACzC,EAAE,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACzC,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AAC5B,IAAI,MAAM,GAAG,CAAC,CAAC;AACf,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,GAAG,MAAM,GAAG,EAAE,GAAG,MAAM,GAAG,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;AACxM;;;;"}
@@ -5,9 +5,9 @@ function getTimeValues(value) {
5
5
  return { hours: "", minutes: "", seconds: "" };
6
6
  }
7
7
  return {
8
- hours: padTime(value.getHours()),
9
- minutes: padTime(value.getMinutes()),
10
- seconds: padTime(value.getSeconds())
8
+ hours: padTime(value.getHours().toString()),
9
+ minutes: padTime(value.getMinutes().toString()),
10
+ seconds: padTime(value.getSeconds().toString())
11
11
  };
12
12
  }
13
13
 
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-time-value.js","sources":["../../../../src/components/TimeInputBase/get-time-values/get-time-value.ts"],"sourcesContent":["import { padTime } from '../pad-time/pad-time';\n\nexport function getTimeValues(value: Date) {\n if (!(value instanceof Date)) {\n return { hours: '', minutes: '', seconds: '' };\n }\n\n return {\n hours: padTime(value.getHours().toString()),\n minutes: padTime(value.getMinutes().toString()),\n seconds: padTime(value.getSeconds().toString()),\n };\n}\n"],"names":[],"mappings":";;AACO,SAAS,aAAa,CAAC,KAAK,EAAE;AACrC,EAAE,IAAI,EAAE,KAAK,YAAY,IAAI,CAAC,EAAE;AAChC,IAAI,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACnD,GAAG;AACH,EAAE,OAAO;AACT,IAAI,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC;AAC/C,IAAI,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC;AACnD,IAAI,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC;AACnD,GAAG,CAAC;AACJ;;;;"}
@@ -0,0 +1,7 @@
1
+ function padTime(value) {
2
+ const _val = parseInt(value, 10);
3
+ return _val >= 10 ? _val.toString() : `0${_val}`;
4
+ }
5
+
6
+ export { padTime };
7
+ //# sourceMappingURL=pad-time.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pad-time.js","sources":["../../../../src/components/TimeInputBase/pad-time/pad-time.ts"],"sourcesContent":["export function padTime(value: string) {\n const _val = parseInt(value, 10);\n\n return _val >= 10 ? _val.toString() : `0${_val}`;\n}\n"],"names":[],"mappings":"AAAO,SAAS,OAAO,CAAC,KAAK,EAAE;AAC/B,EAAE,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACnC,EAAE,OAAO,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACnD;;;;"}
@@ -1,11 +1,14 @@
1
- import React, { forwardRef, useRef, useState } from 'react';
2
- import { extractMargins, InputWrapper, Input } from '@mantine/core';
3
- import { useUuid, useUncontrolled, useDidUpdate, useMergedRef } from '@mantine/hooks';
4
- import dayjs from 'dayjs';
5
- import { TimeField } from '../TimeInput/TimeField/TimeField.js';
6
- import { createTimeHandler } from '../TimeInput/create-time-handler/create-time-handler.js';
7
- import { getTimeValues } from '../TimeInput/get-time-values/get-time-value.js';
1
+ import React, { forwardRef, useRef, useState, useEffect } from 'react';
2
+ import { extractMargins, CloseButton, InputWrapper, Input } from '@mantine/core';
3
+ import { useUuid, useMergedRef } from '@mantine/hooks';
4
+ import { TimeField } from '../TimeInputBase/TimeField/TimeField.js';
5
+ import { createTimeHandler } from '../TimeInputBase/create-time-handler/create-time-handler.js';
6
+ import { getTimeValues } from '../TimeInputBase/get-time-values/get-time-value.js';
8
7
  import useStyles from './TimeRangeInput.styles.js';
8
+ import { padTime } from '../TimeInputBase/pad-time/pad-time.js';
9
+ import { AmPmInput } from '../TimeInputBase/AmPmInput/AmPmInput.js';
10
+ import { createAmPmHandler } from '../TimeInputBase/create-amPm-handler/create-amPm-handler.js';
11
+ import { getDate } from '../TimeInputBase/get-date/get-date.js';
9
12
 
10
13
  var __defProp = Object.defineProperty;
11
14
  var __defProps = Object.defineProperties;
@@ -38,6 +41,13 @@ var __objRest = (source, exclude) => {
38
41
  }
39
42
  return target;
40
43
  };
44
+ const RIGHT_SECTION_WIDTH = {
45
+ xs: 24,
46
+ sm: 30,
47
+ md: 34,
48
+ lg: 40,
49
+ xl: 44
50
+ };
41
51
  const TimeRangeInput = forwardRef((_a, ref) => {
42
52
  var _b = _a, {
43
53
  required,
@@ -55,10 +65,16 @@ const TimeRangeInput = forwardRef((_a, ref) => {
55
65
  defaultValue,
56
66
  onChange,
57
67
  withSeconds = false,
68
+ clearable = false,
69
+ clearButtonLabel,
70
+ format = "24",
58
71
  name,
59
72
  hoursLabel,
60
73
  minutesLabel,
61
74
  secondsLabel,
75
+ amPmLabel,
76
+ timePlaceholder = "--",
77
+ amPmPlaceholder = "am",
62
78
  labelSeparator = "\u2013",
63
79
  disabled = false,
64
80
  sx
@@ -78,81 +94,130 @@ const TimeRangeInput = forwardRef((_a, ref) => {
78
94
  "defaultValue",
79
95
  "onChange",
80
96
  "withSeconds",
97
+ "clearable",
98
+ "clearButtonLabel",
99
+ "format",
81
100
  "name",
82
101
  "hoursLabel",
83
102
  "minutesLabel",
84
103
  "secondsLabel",
104
+ "amPmLabel",
105
+ "timePlaceholder",
106
+ "amPmPlaceholder",
85
107
  "labelSeparator",
86
108
  "disabled",
87
109
  "sx"
88
110
  ]);
89
- const { classes, cx } = useStyles({ size }, { classNames, styles, name: "TimeRangeInput" });
111
+ const { classes, cx, theme } = useStyles({ size }, { classNames, styles, name: "TimeRangeInput" });
90
112
  const { margins, rest } = extractMargins(others);
91
113
  const uuid = useUuid(id);
92
- const fromDate = new Date();
93
- const toDate = new Date(new Date().valueOf() + 1e3);
94
- const [_value, handleChange] = useUncontrolled({
95
- value,
96
- defaultValue,
97
- finalValue: [fromDate, toDate],
98
- rule: (val) => val && val.length === 2 && val.every((v) => v instanceof Date),
99
- onChange
100
- });
101
114
  const hoursRef = useRef([]);
102
115
  const minutesRef = useRef([]);
103
116
  const secondsRef = useRef([]);
104
- const [fromTime, setFromTime] = useState(getTimeValues(_value[0]));
105
- const [toTime, setToTime] = useState(getTimeValues(_value[1]));
117
+ const formatsRef = useRef([]);
118
+ const [fromTime, setFromTime] = useState(getTimeValues(value ? value[0] : defaultValue ? defaultValue[0] : void 0));
119
+ const [toTime, setToTime] = useState(getTimeValues(value ? value[1] : defaultValue ? defaultValue[1] : void 0));
120
+ const [fromAmPm, setFromAmPm] = useState("am");
121
+ const [toAmPm, setToAmPm] = useState("am");
106
122
  const [selectedFieldIndex, setSelectedFieldIndex] = useState(0);
107
- useDidUpdate(() => {
108
- setFromTime(getTimeValues(_value[0]));
109
- setToTime(getTimeValues(_value[1]));
110
- }, [_value]);
123
+ const [_value, setValue] = useState(value != null ? value : defaultValue);
124
+ useEffect(() => {
125
+ setValue([
126
+ getDate(fromTime.hours, fromTime.minutes, fromTime.seconds, format, fromAmPm),
127
+ getDate(toTime.hours, toTime.minutes, toTime.seconds, format, toAmPm)
128
+ ]);
129
+ }, [
130
+ fromTime.hours,
131
+ fromTime.minutes,
132
+ fromTime.seconds,
133
+ toTime.hours,
134
+ toTime.minutes,
135
+ toTime.seconds,
136
+ format,
137
+ fromAmPm,
138
+ toAmPm
139
+ ]);
140
+ useEffect(() => {
141
+ if (format === "12" && (_value[0] || _value[1])) {
142
+ setFromAmPm(parseInt(fromTime.hours, 10) >= 12 ? "pm" : "am");
143
+ setToAmPm(parseInt(toTime.hours, 10) >= 12 ? "pm" : "am");
144
+ }
145
+ }, [format]);
111
146
  const setTime = (cb) => {
112
147
  selectedFieldIndex === 0 ? setFromTime(cb) : setToTime(cb);
113
148
  };
114
- const constructDayjsValue = (fieldName, val) => {
115
- const index = selectedFieldIndex;
116
- const newTime = [..._value];
117
- newTime[index] = dayjs(newTime[index]).set(fieldName, parseInt(val, 10)).toDate();
118
- return newTime;
149
+ const nextMinuteRef = () => {
150
+ if (withSeconds) {
151
+ return secondsRef.current[selectedFieldIndex];
152
+ }
153
+ if (format === "12") {
154
+ return formatsRef.current[selectedFieldIndex];
155
+ }
156
+ if (format === "24" && selectedFieldIndex === 0) {
157
+ return hoursRef.current[1];
158
+ }
159
+ return void 0;
119
160
  };
120
161
  const handleHoursChange = createTimeHandler({
121
162
  onChange: (val) => {
122
- setTime((current) => __spreadProps(__spreadValues({}, current), { hours: val }));
123
- handleChange(constructDayjsValue("hours", val));
163
+ setTime((current) => __spreadProps(__spreadValues({}, current), { hours: padTime(val) }));
124
164
  },
125
165
  min: 0,
126
- max: 23,
127
- maxValue: 2,
166
+ max: format === "12" ? 11 : 23,
167
+ maxValue: format === "12" ? 1 : 2,
128
168
  nextRef: {
129
169
  current: minutesRef.current[selectedFieldIndex]
130
170
  }
131
171
  });
132
172
  const handleMinutesChange = createTimeHandler({
133
173
  onChange: (val) => {
134
- setTime((current) => __spreadProps(__spreadValues({}, current), { minutes: val }));
135
- handleChange(constructDayjsValue("minutes", val));
174
+ setTime((current) => __spreadProps(__spreadValues({}, current), { minutes: padTime(val) }));
136
175
  },
137
176
  min: 0,
138
177
  max: 59,
139
178
  maxValue: 5,
140
179
  nextRef: {
141
- current: !withSeconds && selectedFieldIndex === 0 ? hoursRef.current[1] : secondsRef.current[selectedFieldIndex]
180
+ current: nextMinuteRef()
142
181
  }
143
182
  });
144
183
  const handleSecondsChange = createTimeHandler({
145
184
  onChange: (val) => {
146
- setTime((current) => __spreadProps(__spreadValues({}, current), { seconds: val }));
147
- handleChange(constructDayjsValue("seconds", val));
185
+ setTime((current) => __spreadProps(__spreadValues({}, current), { seconds: padTime(val) }));
148
186
  },
149
187
  min: 0,
150
188
  max: 59,
151
189
  maxValue: 5,
190
+ nextRef: {
191
+ current: format === "12" ? formatsRef.current[selectedFieldIndex] : format === "24" && selectedFieldIndex === 0 ? hoursRef.current[1] : void 0
192
+ }
193
+ });
194
+ const handleAmPmChange = createAmPmHandler({
195
+ onChange: (val) => {
196
+ if (selectedFieldIndex === 0) {
197
+ setFromAmPm(val);
198
+ } else {
199
+ setToAmPm(val);
200
+ }
201
+ },
152
202
  nextRef: {
153
203
  current: selectedFieldIndex === 0 ? hoursRef.current[1] : void 0
154
204
  }
155
205
  });
206
+ const handleClear = () => {
207
+ var _a2;
208
+ setFromTime({ hours: "", minutes: "", seconds: "" });
209
+ setToTime({ hours: "", minutes: "", seconds: "" });
210
+ setSelectedFieldIndex(0);
211
+ setFromAmPm("");
212
+ setToAmPm("");
213
+ (_a2 = hoursRef.current[0]) == null ? void 0 : _a2.focus();
214
+ };
215
+ const rightSection = clearable && _value.filter((item) => Boolean(item)).length > 0 ? /* @__PURE__ */ React.createElement(CloseButton, {
216
+ variant: "transparent",
217
+ "aria-label": clearButtonLabel,
218
+ onClick: handleClear,
219
+ size
220
+ }) : null;
156
221
  return /* @__PURE__ */ React.createElement(InputWrapper, __spreadValues(__spreadValues({
157
222
  required,
158
223
  label,
@@ -179,7 +244,9 @@ const TimeRangeInput = forwardRef((_a, ref) => {
179
244
  className: cx({ [classes.disabled]: disabled }),
180
245
  classNames,
181
246
  styles,
182
- disabled
247
+ disabled,
248
+ rightSection,
249
+ rightSectionWidth: theme.fn.size({ size, sizes: RIGHT_SECTION_WIDTH })
183
250
  }, rest), /* @__PURE__ */ React.createElement("div", {
184
251
  className: classes.inputWrapper
185
252
  }, /* @__PURE__ */ React.createElement(TimeField, {
@@ -188,12 +255,13 @@ const TimeRangeInput = forwardRef((_a, ref) => {
188
255
  }, ref),
189
256
  value: fromTime.hours,
190
257
  onChange: handleHoursChange,
191
- setValue: (val) => handleHoursChange(val, false),
258
+ setValue: (val) => setTime((current) => __spreadProps(__spreadValues({}, current), { hours: val })),
192
259
  id: uuid,
193
260
  className: classes.timeField,
194
261
  withSeparator: true,
195
262
  size,
196
- max: 23,
263
+ max: format === "12" ? 11 : 23,
264
+ placeholder: timePlaceholder,
197
265
  "aria-label": `from ${hoursLabel}`,
198
266
  disabled,
199
267
  onFocus: () => setSelectedFieldIndex(0)
@@ -203,11 +271,12 @@ const TimeRangeInput = forwardRef((_a, ref) => {
203
271
  },
204
272
  value: fromTime.minutes,
205
273
  onChange: handleMinutesChange,
206
- setValue: (val) => setFromTime((c) => __spreadProps(__spreadValues({}, c), { minutes: val })),
274
+ setValue: (val) => setTime((current) => __spreadProps(__spreadValues({}, current), { minutes: val })),
207
275
  className: classes.timeField,
208
276
  withSeparator: withSeconds,
209
277
  size,
210
278
  max: 59,
279
+ placeholder: timePlaceholder,
211
280
  "aria-label": `from ${minutesLabel}`,
212
281
  disabled,
213
282
  onFocus: () => setSelectedFieldIndex(0)
@@ -217,28 +286,46 @@ const TimeRangeInput = forwardRef((_a, ref) => {
217
286
  },
218
287
  value: fromTime.seconds,
219
288
  onChange: handleSecondsChange,
220
- setValue: (val) => setFromTime((c) => __spreadProps(__spreadValues({}, c), { seconds: val })),
289
+ setValue: (val) => setTime((current) => __spreadProps(__spreadValues({}, current), { seconds: val })),
221
290
  className: classes.timeField,
222
291
  size,
223
292
  max: 59,
293
+ placeholder: timePlaceholder,
224
294
  "aria-label": `from ${secondsLabel}`,
225
295
  disabled,
226
296
  onFocus: () => setSelectedFieldIndex(0)
297
+ }), format === "12" && /* @__PURE__ */ React.createElement(AmPmInput, {
298
+ ref: (node) => {
299
+ formatsRef.current[0] = node;
300
+ },
301
+ value: fromAmPm,
302
+ onChange: handleAmPmChange,
303
+ setValue: (val) => {
304
+ setFromAmPm(val);
305
+ },
306
+ placeholder: amPmPlaceholder,
307
+ onFocus: () => setSelectedFieldIndex(0),
308
+ "aria-label": `from ${amPmLabel}`,
309
+ disabled
227
310
  }), /* @__PURE__ */ React.createElement("span", {
228
- className: classes.separator
311
+ className: classes.separator,
312
+ style: {
313
+ color: (toTime == null ? void 0 : toTime.hours) ? "inherit" : theme.colorScheme === "dark" ? theme.colors.dark[2] : theme.colors.gray[7]
314
+ }
229
315
  }, labelSeparator), /* @__PURE__ */ React.createElement("div", {
230
316
  className: classes.inputWrapper
231
317
  }, /* @__PURE__ */ React.createElement(TimeField, {
232
318
  ref: (node) => {
233
319
  hoursRef.current[1] = node;
234
320
  },
235
- value: toTime.hours,
321
+ value: format === "12" && parseInt(toTime.hours, 10) >= 12 ? padTime((parseInt(toTime.hours, 10) - 12).toString()) : toTime.hours,
236
322
  onChange: handleHoursChange,
237
- setValue: (val) => handleHoursChange(val, false),
323
+ setValue: (val) => setTime((current) => __spreadProps(__spreadValues({}, current), { hours: val })),
238
324
  className: classes.timeField,
239
325
  withSeparator: true,
240
326
  size,
241
- max: 23,
327
+ max: format === "12" ? 11 : 23,
328
+ placeholder: timePlaceholder,
242
329
  "aria-label": `to ${hoursLabel}`,
243
330
  disabled,
244
331
  onFocus: () => setSelectedFieldIndex(1)
@@ -248,11 +335,12 @@ const TimeRangeInput = forwardRef((_a, ref) => {
248
335
  },
249
336
  value: toTime.minutes,
250
337
  onChange: handleMinutesChange,
251
- setValue: (val) => setToTime((c) => __spreadProps(__spreadValues({}, c), { minutes: val })),
338
+ setValue: (val) => setTime((current) => __spreadProps(__spreadValues({}, current), { minutes: val })),
252
339
  className: classes.timeField,
253
340
  withSeparator: withSeconds,
254
341
  size,
255
342
  max: 59,
343
+ placeholder: timePlaceholder,
256
344
  "aria-label": `to ${minutesLabel}`,
257
345
  disabled,
258
346
  onFocus: () => setSelectedFieldIndex(1)
@@ -262,13 +350,27 @@ const TimeRangeInput = forwardRef((_a, ref) => {
262
350
  },
263
351
  value: toTime.seconds,
264
352
  onChange: handleSecondsChange,
265
- setValue: (val) => setToTime((c) => __spreadProps(__spreadValues({}, c), { seconds: val })),
353
+ setValue: (val) => setTime((current) => __spreadProps(__spreadValues({}, current), { seconds: val })),
266
354
  className: classes.timeField,
267
355
  size,
268
356
  max: 59,
357
+ placeholder: timePlaceholder,
269
358
  "aria-label": `to ${secondsLabel}`,
270
359
  disabled,
271
360
  onFocus: () => setSelectedFieldIndex(1)
361
+ }), format === "12" && /* @__PURE__ */ React.createElement(AmPmInput, {
362
+ ref: (node) => {
363
+ formatsRef.current[1] = node;
364
+ },
365
+ value: toAmPm,
366
+ onChange: handleAmPmChange,
367
+ setValue: (val) => {
368
+ setToAmPm(val);
369
+ },
370
+ placeholder: amPmPlaceholder,
371
+ onFocus: () => setSelectedFieldIndex(1),
372
+ "aria-label": `to ${amPmLabel}`,
373
+ disabled
272
374
  })), name && /* @__PURE__ */ React.createElement("input", {
273
375
  type: "hidden",
274
376
  name: `${name}-from`,
@@ -1 +1 @@
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 extractMargins,\n} from '@mantine/core';\nimport { useMergedRef, useUncontrolled, useDidUpdate, useUuid } from '@mantine/hooks';\nimport dayjs, { UnitType } from 'dayjs';\nimport { TimeField } from '../TimeInput/TimeField/TimeField';\nimport { createTimeHandler } from '../TimeInput/create-time-handler/create-time-handler';\nimport { getTimeValues } from '../TimeInput/get-time-values/get-time-value';\nimport useStyles from './TimeRangeInput.styles';\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 /** 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 /** Disable field */\n disabled?: boolean;\n\n /** Separator between time inputs */\n labelSeparator?: string;\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 name,\n hoursLabel,\n minutesLabel,\n secondsLabel,\n labelSeparator = '–',\n disabled = false,\n sx,\n ...others\n }: TimeRangeInputProps,\n ref\n ) => {\n const { classes, cx } = useStyles({ size }, { classNames, styles, name: 'TimeRangeInput' });\n const { margins, rest } = extractMargins(others);\n const uuid = useUuid(id);\n const fromDate = new Date();\n const toDate = new Date(new Date().valueOf() + 1000);\n\n const [_value, handleChange] = useUncontrolled({\n value,\n defaultValue,\n finalValue: [fromDate, toDate],\n rule: (val) => val && val.length === 2 && val.every((v) => v instanceof Date),\n onChange,\n });\n\n const hoursRef = useRef<HTMLInputElement[]>([]);\n const minutesRef = useRef<HTMLInputElement[]>([]);\n const secondsRef = useRef<HTMLInputElement[]>([]);\n const [fromTime, setFromTime] = useState(getTimeValues(_value[0]));\n const [toTime, setToTime] = useState(getTimeValues(_value[1]));\n const [selectedFieldIndex, setSelectedFieldIndex] = useState<0 | 1>(0);\n\n useDidUpdate(() => {\n setFromTime(getTimeValues(_value[0]));\n setToTime(getTimeValues(_value[1]));\n }, [_value]);\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 constructDayjsValue = (fieldName: UnitType, val: string) => {\n const index = selectedFieldIndex;\n const newTime = [..._value];\n newTime[index] = dayjs(newTime[index]).set(fieldName, parseInt(val, 10)).toDate();\n return newTime;\n };\n\n const handleHoursChange = createTimeHandler({\n onChange: (val) => {\n setTime((current) => ({ ...current, hours: val }));\n handleChange(constructDayjsValue('hours', val));\n },\n min: 0,\n max: 23,\n maxValue: 2,\n nextRef: {\n current: minutesRef.current[selectedFieldIndex],\n },\n });\n\n const handleMinutesChange = createTimeHandler({\n onChange: (val) => {\n setTime((current) => ({ ...current, minutes: val }));\n handleChange(constructDayjsValue('minutes', val));\n },\n min: 0,\n max: 59,\n maxValue: 5,\n nextRef: {\n current:\n !withSeconds && selectedFieldIndex === 0\n ? hoursRef.current[1]\n : secondsRef.current[selectedFieldIndex],\n },\n });\n\n const handleSecondsChange = createTimeHandler({\n onChange: (val) => {\n setTime((current) => ({ ...current, seconds: val }));\n handleChange(constructDayjsValue('seconds', val));\n },\n min: 0,\n max: 59,\n maxValue: 5,\n nextRef: {\n current: selectedFieldIndex === 0 ? hoursRef.current[1] : undefined,\n },\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 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 {...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) => handleHoursChange(val, false)}\n id={uuid}\n className={classes.timeField}\n withSeparator\n size={size}\n max={23}\n aria-label={`from ${hoursLabel}`}\n disabled={disabled}\n onFocus={() => setSelectedFieldIndex(0)}\n />\n\n <TimeField\n ref={(node) => {\n minutesRef.current[0] = node;\n }}\n value={fromTime.minutes}\n onChange={handleMinutesChange}\n setValue={(val) => setFromTime((c) => ({ ...c, minutes: val }))}\n className={classes.timeField}\n withSeparator={withSeconds}\n size={size}\n max={59}\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) => setFromTime((c) => ({ ...c, seconds: val }))}\n className={classes.timeField}\n size={size}\n max={59}\n aria-label={`from ${secondsLabel}`}\n disabled={disabled}\n onFocus={() => setSelectedFieldIndex(0)}\n />\n )}\n\n <span className={classes.separator}>{labelSeparator}</span>\n\n <div className={classes.inputWrapper}>\n <TimeField\n ref={(node) => {\n hoursRef.current[1] = node;\n }}\n value={toTime.hours}\n onChange={handleHoursChange}\n setValue={(val) => handleHoursChange(val, false)}\n className={classes.timeField}\n withSeparator\n size={size}\n max={23}\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) => setToTime((c) => ({ ...c, minutes: val }))}\n className={classes.timeField}\n withSeparator={withSeconds}\n size={size}\n max={59}\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) => setToTime((c) => ({ ...c, seconds: val }))}\n className={classes.timeField}\n size={size}\n max={59}\n aria-label={`to ${secondsLabel}`}\n disabled={disabled}\n onFocus={() => setSelectedFieldIndex(1)}\n />\n )}\n </div>\n {name && <input type=\"hidden\" name={`${name}-from`} value={_value[0].toISOString()} />}\n {name && <input type=\"hidden\" name={`${name}-to`} value={_value[1].toISOString()} />}\n </div>\n </Input>\n </InputWrapper>\n );\n }\n);\n\nTimeRangeInput.displayName = '@mantine/dates/TimeRangeInput';\n"],"names":[],"mappings":"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"}
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 />\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 {name && <input type=\"hidden\" name={`${name}-from`} value={_value[0].toISOString()} />}\n {name && <input type=\"hidden\" name={`${name}-to`} value={_value[1].toISOString()} />}\n </div>\n </Input>\n </InputWrapper>\n );\n }\n);\n\nTimeRangeInput.displayName = '@mantine/dates/TimeRangeInput';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ArrowIcon.d.ts","sourceRoot":"","sources":["../../../../src/components/CalendarBase/CalendarHeader/ArrowIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,cAAe,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;IACpE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;CAC7B;AAED,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,EAAE,cAAc,eAiBxE;yBAjBe,SAAS"}
1
+ {"version":3,"file":"ArrowIcon.d.ts","sourceRoot":"","sources":["../../../../src/components/CalendarBase/CalendarHeader/ArrowIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,cAAe,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;IACpE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;CAC7B;AAED,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,EAAE,cAAc,eAyBxE;yBAzBe,SAAS"}
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../src/components/DatePicker/DatePicker.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAGvE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAkB,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE7F,MAAM,WAAW,eACf,SAAQ,IAAI,CAAC,yBAAyB,EAAE,UAAU,CAAC,EACjD,IAAI,CAAC,mBAAmB,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ,CAAC;IAC7D,oDAAoD;IACpD,KAAK,CAAC,EAAE,IAAI,CAAC;IAEb,+BAA+B;IAC/B,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAEpC,2CAA2C;IAC3C,YAAY,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAE3B,0EAA0E;IAC1E,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,4CAA4C;IAC5C,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,wDAAwD;IACxD,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAErC,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,gCAAgC;IAChC,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC,uBAAuB;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,UAAU,2FAyLtB,CAAC"}
1
+ {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../src/components/DatePicker/DatePicker.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAGvE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAkB,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE7F,MAAM,WAAW,eACf,SAAQ,IAAI,CAAC,yBAAyB,EAAE,UAAU,CAAC,EACjD,IAAI,CAAC,mBAAmB,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ,CAAC;IAC7D,oDAAoD;IACpD,KAAK,CAAC,EAAE,IAAI,CAAC;IAEb,+BAA+B;IAC/B,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAEpC,2CAA2C;IAC3C,YAAY,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAE3B,0EAA0E;IAC1E,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,4CAA4C;IAC5C,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,wDAAwD;IACxD,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAErC,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,gCAAgC;IAChC,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC,uBAAuB;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,UAAU,2FAkMtB,CAAC"}
@@ -13,6 +13,12 @@ export interface TimeInputProps extends DefaultProps<TimeInputStylesNames>, Inpu
13
13
  onChange?(value: Date): void;
14
14
  /** Display seconds input */
15
15
  withSeconds?: boolean;
16
+ /** Allow to clear item */
17
+ clearable?: boolean;
18
+ /** aria-label for clear button */
19
+ clearButtonLabel?: string;
20
+ /** Time format */
21
+ format?: '12' | '24';
16
22
  /** Uncontrolled input name */
17
23
  name?: string;
18
24
  /** aria-label for hours input */
@@ -21,6 +27,12 @@ export interface TimeInputProps extends DefaultProps<TimeInputStylesNames>, Inpu
21
27
  minutesLabel?: string;
22
28
  /** aria-label for seconds input */
23
29
  secondsLabel?: string;
30
+ /** aria-label for am/pm input */
31
+ amPmLabel?: string;
32
+ /** Placeholder for hours/minutes/seconds inputs*/
33
+ timePlaceholder?: string;
34
+ /** Placeholder for am/pm input */
35
+ amPmPlaceholder?: string;
24
36
  /** Disable field */
25
37
  disabled?: boolean;
26
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TimeInput.d.ts","sourceRoot":"","sources":["../../../src/components/TimeInput/TimeInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAC5D,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,EACvB,YAAY,EAGZ,WAAW,EACX,UAAU,EAEX,MAAM,eAAe,CAAC;AAMvB,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAE3C,oBAAY,oBAAoB,GAC5B,UAAU,CAAC,OAAO,SAAS,CAAC,GAC5B,gBAAgB,GAChB,uBAAuB,CAAC;AAE5B,MAAM,WAAW,cACf,SAAQ,YAAY,CAAC,oBAAoB,CAAC,EACxC,cAAc,EACd,qBAAqB,EACrB,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,cAAc,CAAC;IACpF,iBAAiB;IACjB,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,IAAI,CAAC;IAEb,uCAAuC;IACvC,YAAY,CAAC,EAAE,IAAI,CAAC;IAEpB,wCAAwC;IACxC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IAE7B,4BAA4B;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,yFA+JrB,CAAC"}
1
+ {"version":3,"file":"TimeInput.d.ts","sourceRoot":"","sources":["../../../src/components/TimeInput/TimeInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AACvE,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,EACvB,YAAY,EAGZ,WAAW,EACX,UAAU,EAGX,MAAM,eAAe,CAAC;AAIvB,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAO3C,oBAAY,oBAAoB,GAC5B,UAAU,CAAC,OAAO,SAAS,CAAC,GAC5B,gBAAgB,GAChB,uBAAuB,CAAC;AAE5B,MAAM,WAAW,cACf,SAAQ,YAAY,CAAC,oBAAoB,CAAC,EACxC,cAAc,EACd,qBAAqB,EACrB,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,cAAc,CAAC;IACpF,iBAAiB;IACjB,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,IAAI,CAAC;IAEb,uCAAuC;IACvC,YAAY,CAAC,EAAE,IAAI,CAAC;IAEpB,wCAAwC;IACxC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IAE7B,4BAA4B;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,kCAAkC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,kBAAkB;IAClB,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAErB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,kDAAkD;IAClD,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,kCAAkC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAUD,eAAO,MAAM,SAAS,yFAiNrB,CAAC"}