@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.
- package/cjs/components/CalendarBase/CalendarHeader/ArrowIcon.js +5 -1
- package/cjs/components/CalendarBase/CalendarHeader/ArrowIcon.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.js +8 -1
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/TimeInput/TimeInput.js +88 -32
- package/cjs/components/TimeInput/TimeInput.js.map +1 -1
- package/cjs/components/TimeInputBase/AmPmInput/AmPmInput.js +80 -0
- package/cjs/components/TimeInputBase/AmPmInput/AmPmInput.js.map +1 -0
- package/cjs/components/{TimeInput → TimeInputBase}/TimeField/TimeField.js +8 -5
- package/cjs/components/TimeInputBase/TimeField/TimeField.js.map +1 -0
- package/cjs/components/{TimeInput/TimeField/TimeField.styles.js → TimeInputBase/TimeInputBase.styles.js} +8 -2
- package/cjs/components/TimeInputBase/TimeInputBase.styles.js.map +1 -0
- package/cjs/components/TimeInputBase/create-amPm-handler/create-amPm-handler.js +24 -0
- package/cjs/components/TimeInputBase/create-amPm-handler/create-amPm-handler.js.map +1 -0
- package/cjs/components/{TimeInput → TimeInputBase}/create-time-handler/create-time-handler.js +1 -1
- package/cjs/components/TimeInputBase/create-time-handler/create-time-handler.js.map +1 -0
- package/cjs/components/TimeInputBase/get-date/get-date.js +23 -0
- package/cjs/components/TimeInputBase/get-date/get-date.js.map +1 -0
- package/cjs/components/{TimeInput → TimeInputBase}/get-time-values/get-time-value.js +3 -3
- package/cjs/components/TimeInputBase/get-time-values/get-time-value.js.map +1 -0
- package/cjs/components/{TimeInput → TimeInputBase}/pad-time/pad-time.js +2 -1
- package/cjs/components/TimeInputBase/pad-time/pad-time.js.map +1 -0
- package/cjs/components/TimeRangeInput/TimeRangeInput.js +147 -46
- package/cjs/components/TimeRangeInput/TimeRangeInput.js.map +1 -1
- package/esm/components/CalendarBase/CalendarHeader/ArrowIcon.js +5 -1
- package/esm/components/CalendarBase/CalendarHeader/ArrowIcon.js.map +1 -1
- package/esm/components/DatePicker/DatePicker.js +8 -1
- package/esm/components/DatePicker/DatePicker.js.map +1 -1
- package/esm/components/TimeInput/TimeInput.js +91 -34
- package/esm/components/TimeInput/TimeInput.js.map +1 -1
- package/esm/components/TimeInputBase/AmPmInput/AmPmInput.js +72 -0
- package/esm/components/TimeInputBase/AmPmInput/AmPmInput.js.map +1 -0
- package/esm/components/{TimeInput → TimeInputBase}/TimeField/TimeField.js +8 -5
- package/esm/components/TimeInputBase/TimeField/TimeField.js.map +1 -0
- package/esm/components/{TimeInput/TimeField/TimeField.styles.js → TimeInputBase/TimeInputBase.styles.js} +8 -2
- package/esm/components/TimeInputBase/TimeInputBase.styles.js.map +1 -0
- package/esm/components/TimeInputBase/create-amPm-handler/create-amPm-handler.js +20 -0
- package/esm/components/TimeInputBase/create-amPm-handler/create-amPm-handler.js.map +1 -0
- package/esm/components/{TimeInput → TimeInputBase}/create-time-handler/create-time-handler.js +1 -1
- package/esm/components/TimeInputBase/create-time-handler/create-time-handler.js.map +1 -0
- package/esm/components/TimeInputBase/get-date/get-date.js +15 -0
- package/esm/components/TimeInputBase/get-date/get-date.js.map +1 -0
- package/esm/components/{TimeInput → TimeInputBase}/get-time-values/get-time-value.js +3 -3
- package/esm/components/TimeInputBase/get-time-values/get-time-value.js.map +1 -0
- package/esm/components/TimeInputBase/pad-time/pad-time.js +7 -0
- package/esm/components/TimeInputBase/pad-time/pad-time.js.map +1 -0
- package/esm/components/TimeRangeInput/TimeRangeInput.js +150 -48
- package/esm/components/TimeRangeInput/TimeRangeInput.js.map +1 -1
- package/lib/components/CalendarBase/CalendarHeader/ArrowIcon.d.ts.map +1 -1
- package/lib/components/DatePicker/DatePicker.d.ts.map +1 -1
- package/lib/components/TimeInput/TimeInput.d.ts +12 -0
- package/lib/components/TimeInput/TimeInput.d.ts.map +1 -1
- package/lib/components/TimeInputBase/AmPmInput/AmPmInput.d.ts +13 -0
- package/lib/components/TimeInputBase/AmPmInput/AmPmInput.d.ts.map +1 -0
- package/lib/components/{TimeInput → TimeInputBase}/TimeField/TimeField.d.ts +0 -0
- package/lib/components/TimeInputBase/TimeField/TimeField.d.ts.map +1 -0
- package/lib/components/{TimeInput/TimeField/TimeField.styles.d.ts → TimeInputBase/TimeInputBase.styles.d.ts} +4 -3
- package/lib/components/TimeInputBase/TimeInputBase.styles.d.ts.map +1 -0
- package/lib/components/TimeInputBase/create-amPm-handler/create-amPm-handler.d.ts +8 -0
- package/lib/components/TimeInputBase/create-amPm-handler/create-amPm-handler.d.ts.map +1 -0
- package/lib/components/{TimeInput → TimeInputBase}/create-time-handler/create-time-handler.d.ts +0 -0
- package/lib/components/TimeInputBase/create-time-handler/create-time-handler.d.ts.map +1 -0
- package/lib/components/TimeInputBase/get-date/get-date.d.ts +2 -0
- package/lib/components/TimeInputBase/get-date/get-date.d.ts.map +1 -0
- package/lib/components/{TimeInput → TimeInputBase}/get-time-values/get-time-value.d.ts +0 -0
- package/lib/components/TimeInputBase/get-time-values/get-time-value.d.ts.map +1 -0
- package/lib/components/TimeInputBase/pad-time/pad-time.d.ts +2 -0
- package/lib/components/TimeInputBase/pad-time/pad-time.d.ts.map +1 -0
- package/lib/components/TimeRangeInput/TimeRangeInput.d.ts +12 -0
- package/lib/components/TimeRangeInput/TimeRangeInput.d.ts.map +1 -1
- package/package.json +3 -3
- package/cjs/components/TimeInput/TimeField/TimeField.js.map +0 -1
- package/cjs/components/TimeInput/TimeField/TimeField.styles.js.map +0 -1
- package/cjs/components/TimeInput/create-time-handler/create-time-handler.js.map +0 -1
- package/cjs/components/TimeInput/get-time-values/get-time-value.js.map +0 -1
- package/cjs/components/TimeInput/pad-time/pad-time.js.map +0 -1
- package/esm/components/TimeInput/TimeField/TimeField.js.map +0 -1
- package/esm/components/TimeInput/TimeField/TimeField.styles.js.map +0 -1
- package/esm/components/TimeInput/create-time-handler/create-time-handler.js.map +0 -1
- package/esm/components/TimeInput/get-time-values/get-time-value.js.map +0 -1
- package/esm/components/TimeInput/pad-time/pad-time.js +0 -6
- package/esm/components/TimeInput/pad-time/pad-time.js.map +0 -1
- package/lib/components/TimeInput/TimeField/TimeField.d.ts.map +0 -1
- package/lib/components/TimeInput/TimeField/TimeField.styles.d.ts.map +0 -1
- package/lib/components/TimeInput/create-time-handler/create-time-handler.d.ts.map +0 -1
- package/lib/components/TimeInput/get-time-values/get-time-value.d.ts.map +0 -1
- package/lib/components/TimeInput/pad-time/pad-time.d.ts +0 -2
- package/lib/components/TimeInput/pad-time/pad-time.d.ts.map +0 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { useMantineTheme } from '@mantine/core';
|
|
2
3
|
|
|
3
4
|
var __defProp = Object.defineProperty;
|
|
4
5
|
var __defProps = Object.defineProperties;
|
|
@@ -33,11 +34,14 @@ var __objRest = (source, exclude) => {
|
|
|
33
34
|
};
|
|
34
35
|
function ArrowIcon(_a) {
|
|
35
36
|
var _b = _a, { direction, style } = _b, others = __objRest(_b, ["direction", "style"]);
|
|
37
|
+
const theme = useMantineTheme();
|
|
36
38
|
return /* @__PURE__ */ React.createElement("svg", __spreadValues({
|
|
37
39
|
viewBox: "0 0 15 15",
|
|
38
40
|
fill: "none",
|
|
39
41
|
xmlns: "http://www.w3.org/2000/svg",
|
|
40
|
-
style: __spreadProps(__spreadValues({}, style), {
|
|
42
|
+
style: __spreadProps(__spreadValues({}, style), {
|
|
43
|
+
transform: direction === "right" && theme.dir === "ltr" || direction === "left" && theme.dir === "rtl" ? "rotate(180deg)" : "none"
|
|
44
|
+
})
|
|
41
45
|
}, others), /* @__PURE__ */ React.createElement("path", {
|
|
42
46
|
d: "M8.84182 3.13514C9.04327 3.32401 9.05348 3.64042 8.86462 3.84188L5.43521 7.49991L8.86462 11.1579C9.05348 11.3594 9.04327 11.6758 8.84182 11.8647C8.64036 12.0535 8.32394 12.0433 8.13508 11.8419L4.38508 7.84188C4.20477 7.64955 4.20477 7.35027 4.38508 7.15794L8.13508 3.15794C8.32394 2.95648 8.64036 2.94628 8.84182 3.13514Z",
|
|
43
47
|
fill: "currentColor",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArrowIcon.js","sources":["../../../../src/components/CalendarBase/CalendarHeader/ArrowIcon.tsx"],"sourcesContent":["import React from 'react';\n\ninterface ArrowIconProps extends React.ComponentPropsWithoutRef<'svg'> {\n direction: 'left' | 'right';\n}\n\nexport function ArrowIcon({ direction, style, ...others }: ArrowIconProps) {\n return (\n <svg\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{
|
|
1
|
+
{"version":3,"file":"ArrowIcon.js","sources":["../../../../src/components/CalendarBase/CalendarHeader/ArrowIcon.tsx"],"sourcesContent":["import React from 'react';\nimport { useMantineTheme } from '@mantine/core';\n\ninterface ArrowIconProps extends React.ComponentPropsWithoutRef<'svg'> {\n direction: 'left' | 'right';\n}\n\nexport function ArrowIcon({ direction, style, ...others }: ArrowIconProps) {\n const theme = useMantineTheme();\n return (\n <svg\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{\n ...style,\n transform:\n (direction === 'right' && theme.dir === 'ltr') ||\n (direction === 'left' && theme.dir === 'rtl')\n ? 'rotate(180deg)'\n : 'none',\n }}\n {...others}\n >\n <path\n d=\"M8.84182 3.13514C9.04327 3.32401 9.05348 3.64042 8.86462 3.84188L5.43521 7.49991L8.86462 11.1579C9.05348 11.3594 9.04327 11.6758 8.84182 11.8647C8.64036 12.0535 8.32394 12.0433 8.13508 11.8419L4.38508 7.84188C4.20477 7.64955 4.20477 7.35027 4.38508 7.15794L8.13508 3.15794C8.32394 2.95648 8.64036 2.94628 8.84182 3.13514Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n}\n\nArrowIcon.displayName = '@mantine/dates/ArrowIcon';\n"],"names":[],"mappings":"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"}
|
|
@@ -160,11 +160,18 @@ const DatePicker = forwardRef((_a, ref) => {
|
|
|
160
160
|
typeof onBlur === "function" && onBlur(event);
|
|
161
161
|
setFocused(false);
|
|
162
162
|
if (allowFreeInput) {
|
|
163
|
-
|
|
163
|
+
let date = typeof _value === "string" ? parseDate(_value) : _value;
|
|
164
|
+
if (maxDate && dayjs(date).isAfter(maxDate)) {
|
|
165
|
+
date = maxDate;
|
|
166
|
+
}
|
|
167
|
+
if (minDate && dayjs(date).isBefore(minDate)) {
|
|
168
|
+
date = minDate;
|
|
169
|
+
}
|
|
164
170
|
if (dayjs(date).isValid()) {
|
|
165
171
|
setValue(date);
|
|
166
172
|
setLastValidValue(date);
|
|
167
173
|
setInputState(upperFirst(dayjs(date).locale(finalLocale).format(dateFormat)));
|
|
174
|
+
setCalendarMonth(date);
|
|
168
175
|
} else if (fixOnBlur) {
|
|
169
176
|
setValue(lastValidValue);
|
|
170
177
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.js","sources":["../../../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["import dayjs from 'dayjs';\nimport React, { useState, useRef, forwardRef, useEffect } from 'react';\nimport { useUncontrolled, useMergedRef, upperFirst } from '@mantine/hooks';\nimport { useMantineTheme } from '@mantine/core';\nimport { FirstDayOfWeek } from '../../types';\nimport { Calendar } from '../Calendar/Calendar';\nimport { CalendarSharedProps } from '../CalendarBase/CalendarBase';\nimport { DatePickerBase, DatePickerBaseSharedProps } from '../DatePickerBase/DatePickerBase';\n\nexport interface DatePickerProps\n extends Omit<DatePickerBaseSharedProps, 'onChange'>,\n Omit<CalendarSharedProps, 'size' | 'classNames' | 'styles'> {\n /** Selected date, required with controlled input */\n value?: Date;\n\n /** Called when date changes */\n onChange?(value: Date | null): void;\n\n /** Default value for uncontrolled input */\n defaultValue?: Date | null;\n\n /** Set to false to force dropdown to stay open after date was selected */\n closeCalendarOnChange?: boolean;\n\n /** dayjs input format */\n inputFormat?: string;\n\n /** Control initial dropdown opened state */\n initiallyOpened?: boolean;\n\n /** Parser function for date provided by input typing */\n dateParser?: (value: string) => Date;\n\n /** Input name, useful for uncontrolled variant to capture data with native form */\n name?: string;\n\n /** Set first day of the week */\n firstDayOfWeek?: FirstDayOfWeek;\n\n /** Allow free input */\n allowFreeInput?: boolean;\n}\n\nexport const DatePicker = forwardRef<HTMLButtonElement, DatePickerProps>(\n (\n {\n value,\n onChange,\n defaultValue,\n classNames,\n styles,\n shadow = 'sm',\n locale,\n inputFormat,\n transitionDuration = 200,\n transitionTimingFunction,\n nextMonthLabel,\n previousMonthLabel,\n closeCalendarOnChange = true,\n labelFormat = 'MMMM YYYY',\n dayClassName,\n dayStyle,\n disableOutsideEvents,\n minDate,\n maxDate,\n excludeDate,\n initialMonth,\n initiallyOpened = false,\n name = 'date',\n size = 'sm',\n dropdownType = 'popover',\n clearable = true,\n disabled = false,\n clearButtonLabel,\n fixOnBlur = true,\n allowFreeInput,\n withinPortal = true,\n dateParser,\n firstDayOfWeek = 'monday',\n onFocus,\n onBlur,\n amountOfMonths,\n allowLevelChange,\n initialLevel,\n ...others\n }: DatePickerProps,\n ref\n ) => {\n const theme = useMantineTheme();\n const finalLocale = locale || theme.datesLocale;\n const dateFormat = inputFormat || theme.dateFormat;\n const [dropdownOpened, setDropdownOpened] = useState(initiallyOpened);\n const calendarSize = size === 'lg' || size === 'xl' ? 'md' : 'sm';\n const inputRef = useRef<HTMLInputElement>();\n const [lastValidValue, setLastValidValue] = useState(defaultValue ?? null);\n const [_value, setValue] = useUncontrolled<Date>({\n value,\n defaultValue,\n finalValue: null,\n onChange,\n rule: (val) => val === null || val instanceof Date,\n });\n const [calendarMonth, setCalendarMonth] = useState(_value || initialMonth || new Date());\n\n const [focused, setFocused] = useState(false);\n const [inputState, setInputState] = useState(\n _value instanceof Date ? upperFirst(dayjs(_value).locale(finalLocale).format(dateFormat)) : ''\n );\n\n useEffect(() => {\n if (value === null && !focused) {\n setInputState('');\n }\n\n if (value instanceof Date && !focused) {\n setInputState(dayjs(value).locale(finalLocale).format(dateFormat));\n }\n }, [value, focused]);\n\n const handleValueChange = (date: Date) => {\n setValue(date);\n setInputState(upperFirst(dayjs(date).locale(finalLocale).format(dateFormat)));\n closeCalendarOnChange && setDropdownOpened(false);\n window.setTimeout(() => inputRef.current?.focus(), 0);\n };\n\n const handleClear = () => {\n setValue(null);\n setLastValidValue(null);\n setInputState('');\n setDropdownOpened(true);\n inputRef.current?.focus();\n };\n\n const parseDate = (date: string) =>\n dateParser ? dateParser(date) : dayjs(date, dateFormat, finalLocale).toDate();\n\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onBlur === 'function' && onBlur(event);\n setFocused(false);\n\n if (allowFreeInput) {\n const date = typeof _value === 'string' ? parseDate(_value) : _value;\n\n if (dayjs(date).isValid()) {\n setValue(date);\n setLastValidValue(date);\n setInputState(upperFirst(dayjs(date).locale(finalLocale).format(dateFormat)));\n } else if (fixOnBlur) {\n setValue(lastValidValue);\n }\n }\n };\n\n const handleInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onFocus === 'function' && onFocus(event);\n setFocused(true);\n };\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setDropdownOpened(true);\n\n const date = parseDate(event.target.value);\n if (dayjs(date).isValid()) {\n setValue(date);\n setLastValidValue(date);\n setInputState(event.target.value);\n setCalendarMonth(date);\n } else {\n setInputState(event.target.value);\n }\n };\n\n return (\n <DatePickerBase\n allowFreeInput={allowFreeInput}\n dropdownOpened={dropdownOpened}\n setDropdownOpened={setDropdownOpened}\n shadow={shadow}\n transitionDuration={transitionDuration}\n ref={useMergedRef(ref, inputRef)}\n size={size}\n styles={styles}\n classNames={classNames}\n onChange={handleChange}\n onBlur={handleInputBlur}\n onFocus={handleInputFocus}\n name={name}\n inputLabel={inputState}\n __staticSelector=\"DatePicker\"\n dropdownType={dropdownType}\n clearable={clearable && !!_value && !disabled}\n clearButtonLabel={clearButtonLabel}\n onClear={handleClear}\n disabled={disabled}\n withinPortal={withinPortal}\n {...others}\n >\n <Calendar\n classNames={classNames}\n styles={styles}\n locale={finalLocale}\n nextMonthLabel={nextMonthLabel}\n previousMonthLabel={previousMonthLabel}\n month={allowFreeInput ? calendarMonth : undefined}\n initialMonth={initialMonth || (_value instanceof Date ? _value : new Date())}\n onMonthChange={setCalendarMonth}\n value={_value instanceof Date ? _value : dayjs(_value).toDate()}\n onChange={handleValueChange}\n labelFormat={labelFormat}\n dayClassName={dayClassName}\n dayStyle={dayStyle}\n disableOutsideEvents={disableOutsideEvents}\n minDate={minDate}\n maxDate={maxDate}\n excludeDate={excludeDate}\n __staticSelector=\"DatePicker\"\n fullWidth={dropdownType === 'modal'}\n size={dropdownType === 'modal' ? 'lg' : calendarSize}\n firstDayOfWeek={firstDayOfWeek}\n preventFocus={allowFreeInput}\n amountOfMonths={amountOfMonths}\n allowLevelChange={allowLevelChange}\n initialLevel={initialLevel}\n />\n </DatePickerBase>\n );\n }\n);\n\nDatePicker.displayName = '@mantine/dates/DatePicker';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DatePicker.js","sources":["../../../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["import dayjs from 'dayjs';\nimport React, { useState, useRef, forwardRef, useEffect } from 'react';\nimport { useUncontrolled, useMergedRef, upperFirst } from '@mantine/hooks';\nimport { useMantineTheme } from '@mantine/core';\nimport { FirstDayOfWeek } from '../../types';\nimport { Calendar } from '../Calendar/Calendar';\nimport { CalendarSharedProps } from '../CalendarBase/CalendarBase';\nimport { DatePickerBase, DatePickerBaseSharedProps } from '../DatePickerBase/DatePickerBase';\n\nexport interface DatePickerProps\n extends Omit<DatePickerBaseSharedProps, 'onChange'>,\n Omit<CalendarSharedProps, 'size' | 'classNames' | 'styles'> {\n /** Selected date, required with controlled input */\n value?: Date;\n\n /** Called when date changes */\n onChange?(value: Date | null): void;\n\n /** Default value for uncontrolled input */\n defaultValue?: Date | null;\n\n /** Set to false to force dropdown to stay open after date was selected */\n closeCalendarOnChange?: boolean;\n\n /** dayjs input format */\n inputFormat?: string;\n\n /** Control initial dropdown opened state */\n initiallyOpened?: boolean;\n\n /** Parser function for date provided by input typing */\n dateParser?: (value: string) => Date;\n\n /** Input name, useful for uncontrolled variant to capture data with native form */\n name?: string;\n\n /** Set first day of the week */\n firstDayOfWeek?: FirstDayOfWeek;\n\n /** Allow free input */\n allowFreeInput?: boolean;\n}\n\nexport const DatePicker = forwardRef<HTMLButtonElement, DatePickerProps>(\n (\n {\n value,\n onChange,\n defaultValue,\n classNames,\n styles,\n shadow = 'sm',\n locale,\n inputFormat,\n transitionDuration = 200,\n transitionTimingFunction,\n nextMonthLabel,\n previousMonthLabel,\n closeCalendarOnChange = true,\n labelFormat = 'MMMM YYYY',\n dayClassName,\n dayStyle,\n disableOutsideEvents,\n minDate,\n maxDate,\n excludeDate,\n initialMonth,\n initiallyOpened = false,\n name = 'date',\n size = 'sm',\n dropdownType = 'popover',\n clearable = true,\n disabled = false,\n clearButtonLabel,\n fixOnBlur = true,\n allowFreeInput,\n withinPortal = true,\n dateParser,\n firstDayOfWeek = 'monday',\n onFocus,\n onBlur,\n amountOfMonths,\n allowLevelChange,\n initialLevel,\n ...others\n }: DatePickerProps,\n ref\n ) => {\n const theme = useMantineTheme();\n const finalLocale = locale || theme.datesLocale;\n const dateFormat = inputFormat || theme.dateFormat;\n const [dropdownOpened, setDropdownOpened] = useState(initiallyOpened);\n const calendarSize = size === 'lg' || size === 'xl' ? 'md' : 'sm';\n const inputRef = useRef<HTMLInputElement>();\n const [lastValidValue, setLastValidValue] = useState(defaultValue ?? null);\n const [_value, setValue] = useUncontrolled<Date>({\n value,\n defaultValue,\n finalValue: null,\n onChange,\n rule: (val) => val === null || val instanceof Date,\n });\n const [calendarMonth, setCalendarMonth] = useState(_value || initialMonth || new Date());\n\n const [focused, setFocused] = useState(false);\n const [inputState, setInputState] = useState(\n _value instanceof Date ? upperFirst(dayjs(_value).locale(finalLocale).format(dateFormat)) : ''\n );\n\n useEffect(() => {\n if (value === null && !focused) {\n setInputState('');\n }\n\n if (value instanceof Date && !focused) {\n setInputState(dayjs(value).locale(finalLocale).format(dateFormat));\n }\n }, [value, focused]);\n\n const handleValueChange = (date: Date) => {\n setValue(date);\n setInputState(upperFirst(dayjs(date).locale(finalLocale).format(dateFormat)));\n closeCalendarOnChange && setDropdownOpened(false);\n window.setTimeout(() => inputRef.current?.focus(), 0);\n };\n\n const handleClear = () => {\n setValue(null);\n setLastValidValue(null);\n setInputState('');\n setDropdownOpened(true);\n inputRef.current?.focus();\n };\n\n const parseDate = (date: string) =>\n dateParser ? dateParser(date) : dayjs(date, dateFormat, finalLocale).toDate();\n\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onBlur === 'function' && onBlur(event);\n setFocused(false);\n\n if (allowFreeInput) {\n let date = typeof _value === 'string' ? parseDate(_value) : _value;\n\n if (maxDate && dayjs(date).isAfter(maxDate)) {\n date = maxDate;\n }\n\n if (minDate && dayjs(date).isBefore(minDate)) {\n date = minDate;\n }\n\n if (dayjs(date).isValid()) {\n setValue(date);\n setLastValidValue(date);\n setInputState(upperFirst(dayjs(date).locale(finalLocale).format(dateFormat)));\n setCalendarMonth(date);\n } else if (fixOnBlur) {\n setValue(lastValidValue);\n }\n }\n };\n\n const handleInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onFocus === 'function' && onFocus(event);\n setFocused(true);\n };\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setDropdownOpened(true);\n\n const date = parseDate(event.target.value);\n if (dayjs(date).isValid()) {\n setValue(date);\n setLastValidValue(date);\n setInputState(event.target.value);\n setCalendarMonth(date);\n } else {\n setInputState(event.target.value);\n }\n };\n\n return (\n <DatePickerBase\n allowFreeInput={allowFreeInput}\n dropdownOpened={dropdownOpened}\n setDropdownOpened={setDropdownOpened}\n shadow={shadow}\n transitionDuration={transitionDuration}\n ref={useMergedRef(ref, inputRef)}\n size={size}\n styles={styles}\n classNames={classNames}\n onChange={handleChange}\n onBlur={handleInputBlur}\n onFocus={handleInputFocus}\n name={name}\n inputLabel={inputState}\n __staticSelector=\"DatePicker\"\n dropdownType={dropdownType}\n clearable={clearable && !!_value && !disabled}\n clearButtonLabel={clearButtonLabel}\n onClear={handleClear}\n disabled={disabled}\n withinPortal={withinPortal}\n {...others}\n >\n <Calendar\n classNames={classNames}\n styles={styles}\n locale={finalLocale}\n nextMonthLabel={nextMonthLabel}\n previousMonthLabel={previousMonthLabel}\n month={allowFreeInput ? calendarMonth : undefined}\n initialMonth={initialMonth || (_value instanceof Date ? _value : new Date())}\n onMonthChange={setCalendarMonth}\n value={_value instanceof Date ? _value : dayjs(_value).toDate()}\n onChange={handleValueChange}\n labelFormat={labelFormat}\n dayClassName={dayClassName}\n dayStyle={dayStyle}\n disableOutsideEvents={disableOutsideEvents}\n minDate={minDate}\n maxDate={maxDate}\n excludeDate={excludeDate}\n __staticSelector=\"DatePicker\"\n fullWidth={dropdownType === 'modal'}\n size={dropdownType === 'modal' ? 'lg' : calendarSize}\n firstDayOfWeek={firstDayOfWeek}\n preventFocus={allowFreeInput}\n amountOfMonths={amountOfMonths}\n allowLevelChange={allowLevelChange}\n initialLevel={initialLevel}\n />\n </DatePickerBase>\n );\n }\n);\n\nDatePicker.displayName = '@mantine/dates/DatePicker';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import React, { forwardRef, useRef, useState } from 'react';
|
|
2
|
-
import { extractMargins, InputWrapper, Input } from '@mantine/core';
|
|
3
|
-
import { useUuid,
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import { createTimeHandler } from './create-time-handler/create-time-handler.js';
|
|
7
|
-
import { getTimeValues } from './get-time-values/get-time-value.js';
|
|
1
|
+
import React, { forwardRef, useRef, useState, useEffect } from 'react';
|
|
2
|
+
import { extractMargins, InputWrapper, Input, CloseButton } 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';
|
|
8
6
|
import useStyles from './TimeInput.styles.js';
|
|
7
|
+
import { padTime } from '../TimeInputBase/pad-time/pad-time.js';
|
|
8
|
+
import { AmPmInput } from '../TimeInputBase/AmPmInput/AmPmInput.js';
|
|
9
|
+
import { createAmPmHandler } from '../TimeInputBase/create-amPm-handler/create-amPm-handler.js';
|
|
10
|
+
import { getDate } from '../TimeInputBase/get-date/get-date.js';
|
|
11
|
+
import { getTimeValues } from '../TimeInputBase/get-time-values/get-time-value.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 TimeInput = forwardRef((_a, ref) => {
|
|
42
52
|
var _b = _a, {
|
|
43
53
|
required,
|
|
@@ -55,10 +65,16 @@ const TimeInput = 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
|
disabled = false,
|
|
63
79
|
sx
|
|
64
80
|
} = _b, others = __objRest(_b, [
|
|
@@ -77,59 +93,84 @@ const TimeInput = forwardRef((_a, ref) => {
|
|
|
77
93
|
"defaultValue",
|
|
78
94
|
"onChange",
|
|
79
95
|
"withSeconds",
|
|
96
|
+
"clearable",
|
|
97
|
+
"clearButtonLabel",
|
|
98
|
+
"format",
|
|
80
99
|
"name",
|
|
81
100
|
"hoursLabel",
|
|
82
101
|
"minutesLabel",
|
|
83
102
|
"secondsLabel",
|
|
103
|
+
"amPmLabel",
|
|
104
|
+
"timePlaceholder",
|
|
105
|
+
"amPmPlaceholder",
|
|
84
106
|
"disabled",
|
|
85
107
|
"sx"
|
|
86
108
|
]);
|
|
87
|
-
const { classes, cx } = useStyles({ size }, { classNames, styles, name: "TimeInput" });
|
|
109
|
+
const { classes, cx, theme } = useStyles({ size }, { classNames, styles, name: "TimeInput" });
|
|
88
110
|
const { margins, rest } = extractMargins(others);
|
|
89
111
|
const uuid = useUuid(id);
|
|
90
|
-
const [_value, handleChange] = useUncontrolled({
|
|
91
|
-
value,
|
|
92
|
-
defaultValue,
|
|
93
|
-
finalValue: new Date(),
|
|
94
|
-
rule: (val) => val instanceof Date,
|
|
95
|
-
onChange
|
|
96
|
-
});
|
|
97
112
|
const hoursRef = useRef();
|
|
98
113
|
const minutesRef = useRef();
|
|
99
114
|
const secondsRef = useRef();
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
115
|
+
const amPmRef = useRef();
|
|
116
|
+
const [amPm, setAmPm] = useState("am");
|
|
117
|
+
const [time, setTime] = useState(getTimeValues(value || defaultValue));
|
|
118
|
+
const [_value, setValue] = useState(value != null ? value : defaultValue);
|
|
119
|
+
useEffect(() => {
|
|
120
|
+
setValue(getDate(time.hours, time.minutes, time.seconds, format, amPm));
|
|
121
|
+
}, [time, format, amPm]);
|
|
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
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}, [format]);
|
|
104
131
|
const handleHoursChange = createTimeHandler({
|
|
105
132
|
onChange: (val) => {
|
|
106
|
-
setTime((
|
|
107
|
-
handleChange(dayjs(_value).set("hours", parseInt(val, 10)).toDate());
|
|
133
|
+
setTime((current) => __spreadProps(__spreadValues({}, current), { hours: padTime(val) }));
|
|
108
134
|
},
|
|
109
135
|
min: 0,
|
|
110
|
-
max: 23,
|
|
111
|
-
maxValue: 2,
|
|
136
|
+
max: format === "12" ? 11 : 23,
|
|
137
|
+
maxValue: format === "12" ? 1 : 2,
|
|
112
138
|
nextRef: minutesRef
|
|
113
139
|
});
|
|
114
140
|
const handleMinutesChange = createTimeHandler({
|
|
115
141
|
onChange: (val) => {
|
|
116
|
-
setTime((
|
|
117
|
-
handleChange(dayjs(_value).set("minutes", parseInt(val, 10)).toDate());
|
|
142
|
+
setTime((current) => __spreadProps(__spreadValues({}, current), { minutes: padTime(val) }));
|
|
118
143
|
},
|
|
119
144
|
min: 0,
|
|
120
145
|
max: 59,
|
|
121
146
|
maxValue: 5,
|
|
122
|
-
nextRef: secondsRef
|
|
147
|
+
nextRef: !withSeconds ? amPmRef : secondsRef
|
|
123
148
|
});
|
|
124
149
|
const handleSecondsChange = createTimeHandler({
|
|
125
150
|
onChange: (val) => {
|
|
126
|
-
setTime((
|
|
127
|
-
handleChange(dayjs(_value).set("seconds", parseInt(val, 10)).toDate());
|
|
151
|
+
setTime((current) => __spreadProps(__spreadValues({}, current), { seconds: padTime(val) }));
|
|
128
152
|
},
|
|
129
153
|
min: 0,
|
|
130
154
|
max: 59,
|
|
131
|
-
maxValue: 5
|
|
155
|
+
maxValue: 5,
|
|
156
|
+
nextRef: amPmRef
|
|
132
157
|
});
|
|
158
|
+
const handleAmPmChange = createAmPmHandler({
|
|
159
|
+
onChange: (val) => {
|
|
160
|
+
setAmPm(val);
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
const handleClear = () => {
|
|
164
|
+
setTime({ hours: "", minutes: "", seconds: "" });
|
|
165
|
+
setAmPm("");
|
|
166
|
+
hoursRef.current.focus();
|
|
167
|
+
};
|
|
168
|
+
const rightSection = clearable && _value ? /* @__PURE__ */ React.createElement(CloseButton, {
|
|
169
|
+
variant: "transparent",
|
|
170
|
+
"aria-label": clearButtonLabel,
|
|
171
|
+
onClick: handleClear,
|
|
172
|
+
size
|
|
173
|
+
}) : null;
|
|
133
174
|
return /* @__PURE__ */ React.createElement(InputWrapper, __spreadValues(__spreadValues({
|
|
134
175
|
required,
|
|
135
176
|
label,
|
|
@@ -153,42 +194,58 @@ const TimeInput = forwardRef((_a, ref) => {
|
|
|
153
194
|
className: cx({ [classes.disabled]: disabled }),
|
|
154
195
|
classNames,
|
|
155
196
|
styles,
|
|
156
|
-
disabled
|
|
197
|
+
disabled,
|
|
198
|
+
rightSection,
|
|
199
|
+
rightSectionWidth: theme.fn.size({ size, sizes: RIGHT_SECTION_WIDTH })
|
|
157
200
|
}, rest), /* @__PURE__ */ React.createElement("div", {
|
|
158
201
|
className: classes.controls
|
|
159
202
|
}, /* @__PURE__ */ React.createElement(TimeField, {
|
|
160
203
|
ref: useMergedRef(hoursRef, ref),
|
|
161
204
|
value: time.hours,
|
|
162
205
|
onChange: handleHoursChange,
|
|
163
|
-
setValue: (val) => setTime((
|
|
206
|
+
setValue: (val) => setTime((current) => __spreadProps(__spreadValues({}, current), { hours: val })),
|
|
164
207
|
id: uuid,
|
|
165
208
|
className: classes.timeInput,
|
|
166
209
|
withSeparator: true,
|
|
167
210
|
size,
|
|
168
|
-
max: 23,
|
|
211
|
+
max: format === "12" ? 11 : 23,
|
|
212
|
+
placeholder: timePlaceholder,
|
|
169
213
|
"aria-label": hoursLabel,
|
|
170
214
|
disabled
|
|
171
215
|
}), /* @__PURE__ */ React.createElement(TimeField, {
|
|
172
216
|
ref: minutesRef,
|
|
173
217
|
value: time.minutes,
|
|
174
218
|
onChange: handleMinutesChange,
|
|
175
|
-
setValue: (val) => setTime((
|
|
219
|
+
setValue: (val) => setTime((current) => __spreadProps(__spreadValues({}, current), { minutes: val })),
|
|
176
220
|
className: classes.timeInput,
|
|
177
221
|
withSeparator: withSeconds,
|
|
178
222
|
size,
|
|
179
223
|
max: 59,
|
|
224
|
+
placeholder: timePlaceholder,
|
|
180
225
|
"aria-label": minutesLabel,
|
|
181
226
|
disabled
|
|
182
227
|
}), withSeconds && /* @__PURE__ */ React.createElement(TimeField, {
|
|
183
228
|
ref: secondsRef,
|
|
184
229
|
value: time.seconds,
|
|
185
230
|
onChange: handleSecondsChange,
|
|
186
|
-
setValue: (val) => setTime((
|
|
231
|
+
setValue: (val) => setTime((current) => __spreadProps(__spreadValues({}, current), { seconds: val })),
|
|
187
232
|
className: classes.timeInput,
|
|
188
233
|
size,
|
|
189
234
|
max: 59,
|
|
235
|
+
placeholder: timePlaceholder,
|
|
190
236
|
"aria-label": secondsLabel,
|
|
191
237
|
disabled
|
|
238
|
+
}), format === "12" && /* @__PURE__ */ React.createElement(AmPmInput, {
|
|
239
|
+
ref: amPmRef,
|
|
240
|
+
value: amPm,
|
|
241
|
+
onChange: handleAmPmChange,
|
|
242
|
+
setValue: (val) => {
|
|
243
|
+
setAmPm(val);
|
|
244
|
+
},
|
|
245
|
+
placeholder: amPmPlaceholder,
|
|
246
|
+
size,
|
|
247
|
+
"aria-label": amPmLabel,
|
|
248
|
+
disabled
|
|
192
249
|
}), name && /* @__PURE__ */ React.createElement("input", {
|
|
193
250
|
type: "hidden",
|
|
194
251
|
name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeInput.js","sources":["../../../src/components/TimeInput/TimeInput.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 from 'dayjs';\nimport { TimeField } from './TimeField/TimeField';\nimport { createTimeHandler } from './create-time-handler/create-time-handler';\nimport { getTimeValues } from './get-time-values/get-time-value';\nimport useStyles from './TimeInput.styles';\n\nexport type TimeInputStylesNames =\n | ClassNames<typeof useStyles>\n | InputStylesNames\n | InputWrapperStylesNames;\n\nexport interface TimeInputProps\n extends DefaultProps<TimeInputStylesNames>,\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;\n\n /** Uncontrolled input default value */\n defaultValue?: Date;\n\n /** Controlled input onChange handler */\n onChange?(value: 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\nexport const TimeInput = forwardRef<HTMLInputElement, TimeInputProps>(\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 disabled = false,\n sx,\n ...others\n }: TimeInputProps,\n ref\n ) => {\n const { classes, cx } = useStyles({ size }, { classNames, styles, name: 'TimeInput' });\n const { margins, rest } = extractMargins(others);\n const uuid = useUuid(id);\n\n const [_value, handleChange] = useUncontrolled({\n value,\n defaultValue,\n finalValue: new Date(),\n rule: (val) => val instanceof Date,\n onChange,\n });\n\n const hoursRef = useRef<HTMLInputElement>();\n const minutesRef = useRef<HTMLInputElement>();\n const secondsRef = useRef<HTMLInputElement>();\n const [time, setTime] = useState(getTimeValues(_value));\n\n useDidUpdate(() => {\n setTime(getTimeValues(_value));\n }, [_value]);\n\n const handleHoursChange = createTimeHandler({\n onChange: (val) => {\n setTime((c) => ({ ...c, hours: val }));\n handleChange(dayjs(_value).set('hours', parseInt(val, 10)).toDate());\n },\n min: 0,\n max: 23,\n maxValue: 2,\n nextRef: minutesRef,\n });\n\n const handleMinutesChange = createTimeHandler({\n onChange: (val) => {\n setTime((c) => ({ ...c, minutes: val }));\n handleChange(dayjs(_value).set('minutes', parseInt(val, 10)).toDate());\n },\n min: 0,\n max: 59,\n maxValue: 5,\n nextRef: secondsRef,\n });\n\n const handleSecondsChange = createTimeHandler({\n onChange: (val) => {\n setTime((c) => ({ ...c, seconds: val }));\n handleChange(dayjs(_value).set('seconds', parseInt(val, 10)).toDate());\n },\n min: 0,\n max: 59,\n maxValue: 5,\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=\"TimeInput\"\n id={uuid}\n sx={sx}\n {...margins}\n {...wrapperProps}\n >\n <Input\n component=\"div\"\n __staticSelector=\"TimeInput\"\n required={required}\n invalid={!!error}\n onClick={() => hoursRef.current.focus()}\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.controls}>\n <TimeField\n ref={useMergedRef(hoursRef, ref)}\n value={time.hours}\n onChange={handleHoursChange}\n setValue={(val) => setTime((c) => ({ ...c, hours: val }))}\n id={uuid}\n className={classes.timeInput}\n withSeparator\n size={size}\n max={23}\n aria-label={hoursLabel}\n disabled={disabled}\n />\n\n <TimeField\n ref={minutesRef}\n value={time.minutes}\n onChange={handleMinutesChange}\n setValue={(val) => setTime((c) => ({ ...c, minutes: val }))}\n className={classes.timeInput}\n withSeparator={withSeconds}\n size={size}\n max={59}\n aria-label={minutesLabel}\n disabled={disabled}\n />\n\n {withSeconds && (\n <TimeField\n ref={secondsRef}\n value={time.seconds}\n onChange={handleSecondsChange}\n setValue={(val) => setTime((c) => ({ ...c, seconds: val }))}\n className={classes.timeInput}\n size={size}\n max={59}\n aria-label={secondsLabel}\n disabled={disabled}\n />\n )}\n\n {name && <input type=\"hidden\" name={name} value={_value.toISOString()} />}\n </div>\n </Input>\n </InputWrapper>\n );\n }\n);\n\nTimeInput.displayName = '@mantine/dates/TimeInput';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TimeInput.js","sources":["../../../src/components/TimeInput/TimeInput.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 useStyles from './TimeInput.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';\nimport { getTimeValues } from '../TimeInputBase/get-time-values/get-time-value';\n\nexport type TimeInputStylesNames =\n | ClassNames<typeof useStyles>\n | InputStylesNames\n | InputWrapperStylesNames;\n\nexport interface TimeInputProps\n extends DefaultProps<TimeInputStylesNames>,\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;\n\n /** Uncontrolled input default value */\n defaultValue?: Date;\n\n /** Controlled input onChange handler */\n onChange?(value: 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 /** 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 hours/minutes/seconds inputs*/\n timePlaceholder?: string;\n\n /** Placeholder for am/pm input */\n amPmPlaceholder?: string;\n\n /** Disable field */\n disabled?: boolean;\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 TimeInput = forwardRef<HTMLInputElement, TimeInputProps>(\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 disabled = false,\n sx,\n ...others\n }: TimeInputProps,\n ref\n ) => {\n const { classes, cx, theme } = useStyles({ size }, { classNames, styles, name: 'TimeInput' });\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 amPmRef = useRef<HTMLInputElement>();\n const [amPm, setAmPm] = useState('am');\n const [time, setTime] = useState<{ hours: string; minutes: string; seconds: string }>(\n getTimeValues(value || defaultValue)\n );\n const [_value, setValue] = useState<Date>(value ?? defaultValue);\n\n useEffect(() => {\n setValue(getDate(time.hours, time.minutes, time.seconds, format, amPm));\n }, [time, format, amPm]);\n\n useEffect(() => {\n if (format === '12' && _value) {\n const _hours = parseInt(time.hours, 10);\n setAmPm(_hours >= 12 ? 'pm' : 'am');\n\n if (_hours >= 12) {\n setTime({ ...time, hours: padTime((_hours - 12).toString()) });\n }\n }\n }, [format]);\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: minutesRef,\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: !withSeconds ? amPmRef : secondsRef,\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: amPmRef,\n });\n\n const handleAmPmChange = createAmPmHandler({\n onChange: (val) => {\n setAmPm(val);\n },\n });\n\n const handleClear = () => {\n setTime({ hours: '', minutes: '', seconds: '' });\n setAmPm('');\n hoursRef.current.focus();\n };\n\n const rightSection =\n clearable && _value ? (\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=\"TimeInput\"\n id={uuid}\n sx={sx}\n {...margins}\n {...wrapperProps}\n >\n <Input\n component=\"div\"\n __staticSelector=\"TimeInput\"\n required={required}\n invalid={!!error}\n onClick={() => hoursRef.current.focus()}\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.controls}>\n <TimeField\n ref={useMergedRef(hoursRef, ref)}\n value={time.hours}\n onChange={handleHoursChange}\n setValue={(val) => setTime((current) => ({ ...current, hours: val }))}\n id={uuid}\n className={classes.timeInput}\n withSeparator\n size={size}\n max={format === '12' ? 11 : 23}\n placeholder={timePlaceholder}\n aria-label={hoursLabel}\n disabled={disabled}\n />\n <TimeField\n ref={minutesRef}\n value={time.minutes}\n onChange={handleMinutesChange}\n setValue={(val) => setTime((current) => ({ ...current, minutes: val }))}\n className={classes.timeInput}\n withSeparator={withSeconds}\n size={size}\n max={59}\n placeholder={timePlaceholder}\n aria-label={minutesLabel}\n disabled={disabled}\n />\n {withSeconds && (\n <TimeField\n ref={secondsRef}\n value={time.seconds}\n onChange={handleSecondsChange}\n setValue={(val) => setTime((current) => ({ ...current, seconds: val }))}\n className={classes.timeInput}\n size={size}\n max={59}\n placeholder={timePlaceholder}\n aria-label={secondsLabel}\n disabled={disabled}\n />\n )}\n {format === '12' && (\n <AmPmInput\n ref={amPmRef}\n value={amPm}\n onChange={handleAmPmChange}\n setValue={(val) => {\n setAmPm(val);\n }}\n placeholder={amPmPlaceholder}\n size={size}\n aria-label={amPmLabel}\n disabled={disabled}\n />\n )}\n {name && <input type=\"hidden\" name={name} value={_value.toISOString()} />}\n </div>\n </Input>\n </InputWrapper>\n );\n }\n);\n\nTimeInput.displayName = '@mantine/dates/TimeInput';\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACzC,IAAI,iBAAiB,GAAG,MAAM,CAAC,yBAAyB,CAAC;AACzD,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF,IAAI,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,IAAI,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK;AACrC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,KAAK,IAAI,IAAI,IAAI,MAAM;AACzB,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACpE,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAClC,EAAE,IAAI,MAAM,IAAI,IAAI,IAAI,mBAAmB;AAC3C,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE;AAClD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AACtE,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AACpC,KAAK;AACL,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAiBF,MAAM,mBAAmB,GAAG;AAC5B,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,EAAE,EAAE,EAAE;AACR,CAAC,CAAC;AACU,MAAC,SAAS,GAAG,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK;AACjD,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;AACf,IAAI,QAAQ;AACZ,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,WAAW;AACf,IAAI,SAAS;AACb,IAAI,KAAK;AACT,IAAI,IAAI,GAAG,IAAI;AACf,IAAI,YAAY;AAChB,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,EAAE;AACN,IAAI,KAAK;AACT,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,WAAW,GAAG,KAAK;AACvB,IAAI,SAAS,GAAG,KAAK;AACrB,IAAI,gBAAgB;AACpB,IAAI,MAAM,GAAG,IAAI;AACjB,IAAI,IAAI;AACR,IAAI,UAAU;AACd,IAAI,YAAY;AAChB,IAAI,YAAY;AAChB,IAAI,SAAS;AACb,IAAI,eAAe,GAAG,IAAI;AAC1B,IAAI,eAAe,GAAG,IAAI;AAC1B,IAAI,QAAQ,GAAG,KAAK;AACpB,IAAI,EAAE;AACN,GAAG,GAAG,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE;AACjC,IAAI,UAAU;AACd,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,aAAa;AACjB,IAAI,WAAW;AACf,IAAI,OAAO;AACX,IAAI,MAAM;AACV,IAAI,cAAc;AAClB,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,IAAI;AACR,IAAI,OAAO;AACX,IAAI,cAAc;AAClB,IAAI,UAAU;AACd,IAAI,aAAa;AACjB,IAAI,WAAW;AACf,IAAI,kBAAkB;AACtB,IAAI,QAAQ;AACZ,IAAI,MAAM;AACV,IAAI,YAAY;AAChB,IAAI,cAAc;AAClB,IAAI,cAAc;AAClB,IAAI,WAAW;AACf,IAAI,iBAAiB;AACrB,IAAI,iBAAiB;AACrB,IAAI,UAAU;AACd,IAAI,IAAI;AACR,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AAChG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AACnD,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;AAC3B,EAAE,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC;AAC5B,EAAE,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC;AAC9B,EAAE,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC;AAC9B,EAAE,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;AAC3B,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AACzC,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,IAAI,YAAY,CAAC,CAAC,CAAC;AACzE,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,YAAY,CAAC,CAAC;AAC5E,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AAC5E,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3B,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,EAAE;AACnC,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC9C,MAAM,OAAO,CAAC,MAAM,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;AAC1C,MAAM,IAAI,MAAM,IAAI,EAAE,EAAE;AACxB,QAAQ,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,MAAM,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvG,OAAO;AACP,KAAK;AACL,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACf,EAAE,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAC9C,IAAI,QAAQ,EAAE,CAAC,GAAG,KAAK;AACvB,MAAM,OAAO,CAAC,CAAC,OAAO,KAAK,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAChG,KAAK;AACL,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,EAAE,GAAG,EAAE;AAClC,IAAI,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC;AACrC,IAAI,OAAO,EAAE,UAAU;AACvB,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAChD,IAAI,QAAQ,EAAE,CAAC,GAAG,KAAK;AACvB,MAAM,OAAO,CAAC,CAAC,OAAO,KAAK,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAClG,KAAK;AACL,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,GAAG,EAAE,EAAE;AACX,IAAI,QAAQ,EAAE,CAAC;AACf,IAAI,OAAO,EAAE,CAAC,WAAW,GAAG,OAAO,GAAG,UAAU;AAChD,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAChD,IAAI,QAAQ,EAAE,CAAC,GAAG,KAAK;AACvB,MAAM,OAAO,CAAC,CAAC,OAAO,KAAK,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAClG,KAAK;AACL,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,GAAG,EAAE,EAAE;AACX,IAAI,QAAQ,EAAE,CAAC;AACf,IAAI,OAAO,EAAE,OAAO;AACpB,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAC7C,IAAI,QAAQ,EAAE,CAAC,GAAG,KAAK;AACvB,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;AACnB,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,WAAW,GAAG,MAAM;AAC5B,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;AACrD,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC;AAChB,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AAC7B,GAAG,CAAC;AACJ,EAAE,MAAM,YAAY,GAAG,SAAS,IAAI,MAAM,mBAAmB,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE;AAC9F,IAAI,OAAO,EAAE,aAAa;AAC1B,IAAI,YAAY,EAAE,gBAAgB;AAClC,IAAI,OAAO,EAAE,WAAW;AACxB,IAAI,IAAI;AACR,GAAG,CAAC,GAAG,IAAI,CAAC;AACZ,EAAE,uBAAuB,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE,cAAc,CAAC,cAAc,CAAC;AACzF,IAAI,QAAQ;AACZ,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,WAAW;AACf,IAAI,SAAS;AACb,IAAI,KAAK;AACT,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,IAAI;AACR,IAAI,gBAAgB,EAAE,WAAW;AACjC,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,EAAE;AACN,GAAG,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC;AACxF,IAAI,SAAS,EAAE,KAAK;AACpB,IAAI,gBAAgB,EAAE,WAAW;AACjC,IAAI,QAAQ;AACZ,IAAI,OAAO,EAAE,CAAC,CAAC,KAAK;AACpB,IAAI,OAAO,EAAE,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE;AAC3C,IAAI,IAAI;AACR,IAAI,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC;AACnD,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,QAAQ;AACZ,IAAI,YAAY;AAChB,IAAI,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;AAC1E,GAAG,EAAE,IAAI,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AACvD,IAAI,SAAS,EAAE,OAAO,CAAC,QAAQ;AAC/B,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE;AACpD,IAAI,GAAG,EAAE,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC;AACpC,IAAI,KAAK,EAAE,IAAI,CAAC,KAAK;AACrB,IAAI,QAAQ,EAAE,iBAAiB;AAC/B,IAAI,QAAQ,EAAE,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AACvG,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,SAAS,EAAE,OAAO,CAAC,SAAS;AAChC,IAAI,aAAa,EAAE,IAAI;AACvB,IAAI,IAAI;AACR,IAAI,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,EAAE,GAAG,EAAE;AAClC,IAAI,WAAW,EAAE,eAAe;AAChC,IAAI,YAAY,EAAE,UAAU;AAC5B,IAAI,QAAQ;AACZ,GAAG,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE;AACrD,IAAI,GAAG,EAAE,UAAU;AACnB,IAAI,KAAK,EAAE,IAAI,CAAC,OAAO;AACvB,IAAI,QAAQ,EAAE,mBAAmB;AACjC,IAAI,QAAQ,EAAE,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;AACzG,IAAI,SAAS,EAAE,OAAO,CAAC,SAAS;AAChC,IAAI,aAAa,EAAE,WAAW;AAC9B,IAAI,IAAI;AACR,IAAI,GAAG,EAAE,EAAE;AACX,IAAI,WAAW,EAAE,eAAe;AAChC,IAAI,YAAY,EAAE,YAAY;AAC9B,IAAI,QAAQ;AACZ,GAAG,CAAC,EAAE,WAAW,oBAAoB,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE;AACpE,IAAI,GAAG,EAAE,UAAU;AACnB,IAAI,KAAK,EAAE,IAAI,CAAC,OAAO;AACvB,IAAI,QAAQ,EAAE,mBAAmB;AACjC,IAAI,QAAQ,EAAE,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;AACzG,IAAI,SAAS,EAAE,OAAO,CAAC,SAAS;AAChC,IAAI,IAAI;AACR,IAAI,GAAG,EAAE,EAAE;AACX,IAAI,WAAW,EAAE,eAAe;AAChC,IAAI,YAAY,EAAE,YAAY;AAC9B,IAAI,QAAQ;AACZ,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,oBAAoB,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE;AACxE,IAAI,GAAG,EAAE,OAAO;AAChB,IAAI,KAAK,EAAE,IAAI;AACf,IAAI,QAAQ,EAAE,gBAAgB;AAC9B,IAAI,QAAQ,EAAE,CAAC,GAAG,KAAK;AACvB,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;AACnB,KAAK;AACL,IAAI,WAAW,EAAE,eAAe;AAChC,IAAI,IAAI;AACR,IAAI,YAAY,EAAE,SAAS;AAC3B,IAAI,QAAQ;AACZ,GAAG,CAAC,EAAE,IAAI,oBAAoB,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE;AAC3D,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI;AACR,IAAI,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE;AAC/B,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACR,CAAC,EAAE;AACH,SAAS,CAAC,WAAW,GAAG,0BAA0B;;;;"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import React, { forwardRef, useRef } from 'react';
|
|
2
|
+
import { useMergedRef } from '@mantine/hooks';
|
|
3
|
+
import useStyles from '../TimeInputBase.styles.js';
|
|
4
|
+
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
9
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
+
var __spreadValues = (a, b) => {
|
|
11
|
+
for (var prop in b || (b = {}))
|
|
12
|
+
if (__hasOwnProp.call(b, prop))
|
|
13
|
+
__defNormalProp(a, prop, b[prop]);
|
|
14
|
+
if (__getOwnPropSymbols)
|
|
15
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
+
if (__propIsEnum.call(b, prop))
|
|
17
|
+
__defNormalProp(a, prop, b[prop]);
|
|
18
|
+
}
|
|
19
|
+
return a;
|
|
20
|
+
};
|
|
21
|
+
var __objRest = (source, exclude) => {
|
|
22
|
+
var target = {};
|
|
23
|
+
for (var prop in source)
|
|
24
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
25
|
+
target[prop] = source[prop];
|
|
26
|
+
if (source != null && __getOwnPropSymbols)
|
|
27
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
28
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
29
|
+
target[prop] = source[prop];
|
|
30
|
+
}
|
|
31
|
+
return target;
|
|
32
|
+
};
|
|
33
|
+
const AmPmInput = forwardRef((_a, ref) => {
|
|
34
|
+
var _b = _a, { className, onChange, onFocus, setValue, size = "sm", value } = _b, others = __objRest(_b, ["className", "onChange", "onFocus", "setValue", "size", "value"]);
|
|
35
|
+
const { classes, cx } = useStyles({ size, hasValue: !!value });
|
|
36
|
+
const inputRef = useRef();
|
|
37
|
+
const handleFocus = (event) => {
|
|
38
|
+
typeof onFocus === "function" && onFocus(event);
|
|
39
|
+
inputRef.current.select();
|
|
40
|
+
};
|
|
41
|
+
const handleClick = (event) => {
|
|
42
|
+
event.stopPropagation();
|
|
43
|
+
inputRef.current.select();
|
|
44
|
+
};
|
|
45
|
+
const handleKeyDown = (event) => {
|
|
46
|
+
if (event.nativeEvent.code === "ArrowUp" || event.nativeEvent.code === "ArrowDown") {
|
|
47
|
+
event.preventDefault();
|
|
48
|
+
onChange(value === "am" ? "pm" : "am", false);
|
|
49
|
+
}
|
|
50
|
+
if (event.nativeEvent.code === "KeyP") {
|
|
51
|
+
onChange("pm", true);
|
|
52
|
+
}
|
|
53
|
+
if (event.nativeEvent.code === "KeyA") {
|
|
54
|
+
onChange("am", true);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
return /* @__PURE__ */ React.createElement("input", __spreadValues({
|
|
58
|
+
type: "text",
|
|
59
|
+
ref: useMergedRef(inputRef, ref),
|
|
60
|
+
onClick: handleClick,
|
|
61
|
+
onFocus: handleFocus,
|
|
62
|
+
onKeyDown: handleKeyDown,
|
|
63
|
+
onChange: () => {
|
|
64
|
+
},
|
|
65
|
+
value,
|
|
66
|
+
className: cx(classes.timeInput, className)
|
|
67
|
+
}, others));
|
|
68
|
+
});
|
|
69
|
+
AmPmInput.displayName = "@mantine/dates/AmPmInput";
|
|
70
|
+
|
|
71
|
+
export { AmPmInput };
|
|
72
|
+
//# sourceMappingURL=AmPmInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AmPmInput.js","sources":["../../../../src/components/TimeInputBase/AmPmInput/AmPmInput.tsx"],"sourcesContent":["import React, { useRef, forwardRef } from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport { MantineSize } from '@mantine/core';\nimport useStyles from '../TimeInputBase.styles';\n\ninterface AmPmSelectProps\n extends Omit<React.ComponentPropsWithoutRef<'input'>, 'onChange' | 'size'> {\n /** Called with onChange event */\n onChange(value: string, triggerShift: boolean): void;\n\n /** Called when input loses focus, used to format value */\n setValue(value: string): void;\n\n /** Colon text size */\n size?: MantineSize;\n}\n\nexport const AmPmInput = forwardRef<HTMLInputElement, AmPmSelectProps>(\n (\n { className, onChange, onFocus, setValue, size = 'sm', value, ...others }: AmPmSelectProps,\n ref\n ) => {\n const { classes, cx } = useStyles({ size, hasValue: !!value });\n const inputRef = useRef<HTMLInputElement>();\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onFocus === 'function' && onFocus(event);\n inputRef.current.select();\n };\n\n const handleClick = (event: React.MouseEvent<HTMLInputElement, MouseEvent>) => {\n event.stopPropagation();\n inputRef.current.select();\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.nativeEvent.code === 'ArrowUp' || event.nativeEvent.code === 'ArrowDown') {\n event.preventDefault();\n onChange(value === 'am' ? 'pm' : 'am', false);\n }\n\n if (event.nativeEvent.code === 'KeyP') {\n onChange('pm', true);\n }\n\n if (event.nativeEvent.code === 'KeyA') {\n onChange('am', true);\n }\n };\n\n return (\n <input\n type=\"text\"\n ref={useMergedRef(inputRef, ref)}\n onClick={handleClick}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n onChange={() => {}}\n value={value}\n className={cx(classes.timeInput, className)}\n {...others}\n />\n );\n }\n);\n\nAmPmInput.displayName = '@mantine/dates/AmPmInput';\n"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import React, { forwardRef, useRef } from 'react';
|
|
|
2
2
|
import { useMergedRef, clamp } from '@mantine/hooks';
|
|
3
3
|
import { Text } from '@mantine/core';
|
|
4
4
|
import { padTime } from '../pad-time/pad-time.js';
|
|
5
|
-
import useStyles from '
|
|
5
|
+
import useStyles from '../TimeInputBase.styles.js';
|
|
6
6
|
|
|
7
7
|
var __defProp = Object.defineProperty;
|
|
8
8
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
@@ -54,7 +54,7 @@ const TimeField = forwardRef((_a, ref) => {
|
|
|
54
54
|
"max",
|
|
55
55
|
"value"
|
|
56
56
|
]);
|
|
57
|
-
const { classes, cx } = useStyles({ size });
|
|
57
|
+
const { classes, cx, theme } = useStyles({ size, hasValue: !!value });
|
|
58
58
|
const inputRef = useRef();
|
|
59
59
|
const handleFocus = (event) => {
|
|
60
60
|
typeof onFocus === "function" && onFocus(event);
|
|
@@ -70,7 +70,7 @@ const TimeField = forwardRef((_a, ref) => {
|
|
|
70
70
|
const handleKeyDown = (event) => {
|
|
71
71
|
if (event.nativeEvent.code === "ArrowUp") {
|
|
72
72
|
event.preventDefault();
|
|
73
|
-
const padded = padTime(clamp({ value: parseInt(event.currentTarget.value, 10) + 1, max, min: 0 }));
|
|
73
|
+
const padded = padTime(clamp({ value: parseInt(event.currentTarget.value, 10) + 1, max, min: 0 }).toString());
|
|
74
74
|
if (value !== padded) {
|
|
75
75
|
setValue(padded);
|
|
76
76
|
onChange(padded, false);
|
|
@@ -78,7 +78,7 @@ const TimeField = forwardRef((_a, ref) => {
|
|
|
78
78
|
}
|
|
79
79
|
if (event.nativeEvent.code === "ArrowDown") {
|
|
80
80
|
event.preventDefault();
|
|
81
|
-
const padded = padTime(clamp({ value: parseInt(event.currentTarget.value, 10) - 1, max, min: 0 }));
|
|
81
|
+
const padded = padTime(clamp({ value: parseInt(event.currentTarget.value, 10) - 1, max, min: 0 }).toString());
|
|
82
82
|
if (value !== padded) {
|
|
83
83
|
setValue(padded);
|
|
84
84
|
onChange(padded, false);
|
|
@@ -97,7 +97,10 @@ const TimeField = forwardRef((_a, ref) => {
|
|
|
97
97
|
className: cx(classes.timeInput, className)
|
|
98
98
|
}, others)), withSeparator && /* @__PURE__ */ React.createElement(Text, {
|
|
99
99
|
size,
|
|
100
|
-
style: {
|
|
100
|
+
style: {
|
|
101
|
+
lineHeight: 1,
|
|
102
|
+
color: value ? "inherit" : theme.colorScheme === "dark" ? theme.colors.dark[2] : theme.colors.gray[7]
|
|
103
|
+
}
|
|
101
104
|
}, ":"));
|
|
102
105
|
});
|
|
103
106
|
TimeField.displayName = "@mantine/dates/TimeField";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimeField.js","sources":["../../../../src/components/TimeInputBase/TimeField/TimeField.tsx"],"sourcesContent":["import React, { useRef, forwardRef } from 'react';\nimport { useMergedRef, clamp } from '@mantine/hooks';\nimport { Text, MantineSize } from '@mantine/core';\nimport { padTime } from '../pad-time/pad-time';\nimport useStyles from '../TimeInputBase.styles';\n\ninterface TimeFieldProps\n extends Omit<React.ComponentPropsWithoutRef<'input'>, 'onChange' | 'size'> {\n /** Called with onChange event */\n onChange(value: string, triggerShift: boolean): void;\n\n /** Called when input loses focus, used to format value */\n setValue(value: string): void;\n\n /** Adds colon after the field */\n withSeparator?: boolean;\n\n /** Colon text size */\n size?: MantineSize;\n\n /** Maximum possible value, min value is always 0 */\n max?: number;\n}\n\nexport const TimeField = forwardRef<HTMLInputElement, TimeFieldProps>(\n (\n {\n className,\n onFocus,\n onBlur,\n onChange,\n setValue,\n withSeparator = false,\n size = 'sm',\n max,\n value,\n ...others\n }: TimeFieldProps,\n ref\n ) => {\n const { classes, cx, theme } = useStyles({ size, hasValue: !!value });\n const inputRef = useRef<HTMLInputElement>();\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onFocus === 'function' && onFocus(event);\n inputRef.current.select();\n };\n\n const handleBlur = (event: any) => {\n typeof onBlur === 'function' && onBlur(event);\n };\n\n const handleClick = (event: React.MouseEvent<HTMLInputElement, MouseEvent>) => {\n event.stopPropagation();\n inputRef.current.select();\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.nativeEvent.code === 'ArrowUp') {\n event.preventDefault();\n const padded = padTime(\n clamp({ value: parseInt(event.currentTarget.value, 10) + 1, max, min: 0 }).toString()\n );\n\n if (value !== padded) {\n setValue(padded);\n onChange(padded, false);\n }\n }\n\n if (event.nativeEvent.code === 'ArrowDown') {\n event.preventDefault();\n const padded = padTime(\n clamp({ value: parseInt(event.currentTarget.value, 10) - 1, max, min: 0 }).toString()\n );\n\n if (value !== padded) {\n setValue(padded);\n onChange(padded, false);\n }\n }\n };\n\n return (\n <>\n <input\n type=\"text\"\n ref={useMergedRef(inputRef, ref)}\n onChange={(event) => onChange(event.currentTarget.value, true)}\n onClick={handleClick}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n value={value}\n className={cx(classes.timeInput, className)}\n {...others}\n />\n\n {withSeparator && (\n <Text\n size={size}\n style={{\n lineHeight: 1,\n color: value\n ? 'inherit'\n : theme.colorScheme === 'dark'\n ? theme.colors.dark[2]\n : theme.colors.gray[7],\n }}\n >\n :\n </Text>\n )}\n </>\n );\n }\n);\n\nTimeField.displayName = '@mantine/dates/TimeField';\n"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,7 @@ const inputSizes = {
|
|
|
26
26
|
lg: 27,
|
|
27
27
|
xl: 29
|
|
28
28
|
};
|
|
29
|
-
var useStyles = createStyles((theme, { size }) => ({
|
|
29
|
+
var useStyles = createStyles((theme, { size, hasValue }) => ({
|
|
30
30
|
timeInput: __spreadProps(__spreadValues({}, theme.fn.fontStyles()), {
|
|
31
31
|
width: theme.fn.size({ size, sizes: inputSizes }),
|
|
32
32
|
appearance: "none",
|
|
@@ -38,6 +38,12 @@ var useStyles = createStyles((theme, { size }) => ({
|
|
|
38
38
|
fontSize: theme.fn.size({ size, sizes: theme.fontSizes }),
|
|
39
39
|
lineHeight: 1,
|
|
40
40
|
outline: 0,
|
|
41
|
+
"&:focus": {
|
|
42
|
+
textAlign: hasValue ? void 0 : "start"
|
|
43
|
+
},
|
|
44
|
+
"&::placeholder": {
|
|
45
|
+
textAlign: "center"
|
|
46
|
+
},
|
|
41
47
|
"&[disabled]": {
|
|
42
48
|
color: theme.colorScheme === "dark" ? theme.colors.dark[2] : theme.colors.gray[7],
|
|
43
49
|
cursor: "not-allowed"
|
|
@@ -47,4 +53,4 @@ var useStyles = createStyles((theme, { size }) => ({
|
|
|
47
53
|
|
|
48
54
|
export default useStyles;
|
|
49
55
|
export { inputSizes };
|
|
50
|
-
//# sourceMappingURL=
|
|
56
|
+
//# sourceMappingURL=TimeInputBase.styles.js.map
|