Project Init

This commit is contained in:
Muluhabt
2026-05-29 15:23:46 +03:00
commit 2fbc557aac
67387 changed files with 6063341 additions and 0 deletions

View File

@@ -0,0 +1,111 @@
'use client';
'use strict';
var jsxRuntime = require('react/jsx-runtime');
var react = require('react');
var TimePicker_context = require('../TimePicker.context.cjs');
const AmPmInput = react.forwardRef(
({
labels,
value,
onChange,
className,
style,
onPreviousInput,
readOnly,
onMouseDown,
onTouchStart,
inputType,
...others
}, ref) => {
const ctx = TimePicker_context.useTimePickerContext();
const handleKeyDown = (event) => {
if (readOnly) {
return;
}
if (event.key === "Home") {
event.preventDefault();
onChange(labels.am);
}
if (event.key === "End") {
event.preventDefault();
onChange(labels.pm);
}
if (event.key === "Backspace" || event.key === "Delete") {
event.preventDefault();
if (value === null) {
onPreviousInput?.();
} else {
onChange(null);
}
}
if (event.key === "ArrowLeft") {
event.preventDefault();
onPreviousInput?.();
}
if (event.key === "ArrowUp" || event.key === "ArrowDown") {
event.preventDefault();
onChange(value === labels.am ? labels.pm : labels.am);
}
if (event.code === "KeyA") {
event.preventDefault();
onChange(labels.am);
}
if (event.code === "KeyP") {
event.preventDefault();
onChange(labels.pm);
}
};
if (inputType === "input") {
const displayValue = value || "--";
const inputSize = displayValue.length + 1;
return /* @__PURE__ */ jsxRuntime.jsx(
"input",
{
...ctx.getStyles("field", { className, style }),
ref,
value: displayValue,
size: inputSize,
readOnly: true,
onChange: () => {
},
onClick: ((event) => event.stopPropagation()),
onKeyDown: handleKeyDown,
onMouseDown: (event) => {
event.stopPropagation();
onMouseDown?.(event);
},
"data-am-pm": true,
...others
}
);
}
return /* @__PURE__ */ jsxRuntime.jsxs(
"select",
{
...ctx.getStyles("field", { className, style }),
ref,
value: value || "",
onChange: (event) => !readOnly && onChange(event.target.value || null),
onClick: (event) => event.stopPropagation(),
onKeyDown: handleKeyDown,
onMouseDown: (event) => {
event.stopPropagation();
onMouseDown?.(event);
},
"data-am-pm": true,
...others,
children: [
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "", children: "--" }),
/* @__PURE__ */ jsxRuntime.jsx("option", { value: labels.am, children: labels.am }),
/* @__PURE__ */ jsxRuntime.jsx("option", { value: labels.pm, children: labels.pm })
]
}
);
}
);
AmPmInput.displayName = "@mantine/dates/AmPmInput";
exports.AmPmInput = AmPmInput;
//# sourceMappingURL=AmPmInput.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,16 @@
'use client';
'use strict';
var jsxRuntime = require('react/jsx-runtime');
var TimePicker_context = require('../TimePicker.context.cjs');
var TimeControl = require('./TimeControl.cjs');
function AmPmControlsList({ labels, value, onSelect }) {
const ctx = TimePicker_context.useTimePickerContext();
const controls = [labels.am, labels.pm].map((control) => /* @__PURE__ */ jsxRuntime.jsx(TimeControl.TimeControl, { value: control, active: value === control, onSelect }, control));
return /* @__PURE__ */ jsxRuntime.jsx("div", { ...ctx.getStyles("controlsList"), children: controls });
}
AmPmControlsList.displayName = "@mantine/dates/AmPmControlsList";
exports.AmPmControlsList = AmPmControlsList;
//# sourceMappingURL=AmPmControlsList.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"AmPmControlsList.cjs","sources":["../../../../src/components/TimePicker/TimeControlsList/AmPmControlsList.tsx"],"sourcesContent":["import { useTimePickerContext } from '../TimePicker.context';\nimport { TimeControl } from './TimeControl';\n\ninterface AmPmControlsListProps {\n value: string | null;\n onSelect: (value: string) => void;\n labels: { am: string; pm: string };\n}\n\nexport function AmPmControlsList({ labels, value, onSelect }: AmPmControlsListProps) {\n const ctx = useTimePickerContext();\n const controls = [labels.am, labels.pm].map((control) => (\n <TimeControl key={control} value={control} active={value === control} onSelect={onSelect} />\n ));\n\n return <div {...ctx.getStyles('controlsList')}>{controls}</div>;\n}\n\nAmPmControlsList.displayName = '@mantine/dates/AmPmControlsList';\n"],"names":["useTimePickerContext","jsx","TimeControl"],"mappings":";;;;;;;AASO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAS,CAAA,CAA0B,CAAA;AACnF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,IAAMA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAqB,CAAA;AACjC,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,EAAE,GAAA,CAAI,CAAC,4BAC3CC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAACC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,EAAA,CAAA,CAA0B,CAAA,CAAA,CAAA,CAAA,GAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,MAAU,OAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAApD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwE,CAC3F,CAAA,CAAA;AAED,CAAA,CAAA,sCAAQ,KAAA,CAAA,CAAA,CAAA,CAAK,GAAG,CAAA,CAAA,EAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,cAAc,GAAI,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAA,CAAA;AAC3D,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;"}

View File

@@ -0,0 +1,27 @@
'use client';
'use strict';
var jsxRuntime = require('react/jsx-runtime');
var core = require('@mantine/core');
var TimePicker_context = require('../TimePicker.context.cjs');
var padTime = require('../utils/pad-time/pad-time.cjs');
function TimeControl({ value, active, onSelect }) {
const ctx = TimePicker_context.useTimePickerContext();
return /* @__PURE__ */ jsxRuntime.jsx(
core.UnstyledButton,
{
mod: { active },
onClick: () => onSelect(value),
onMouseDown: (event) => event.preventDefault(),
"data-value": value,
tabIndex: -1,
...ctx.getStyles("control"),
children: typeof value === "number" ? padTime.padTime(value) : value
}
);
}
TimeControl.displayName = "@mantine/dates/TimeControl";
exports.TimeControl = TimeControl;
//# sourceMappingURL=TimeControl.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"TimeControl.cjs","sources":["../../../../src/components/TimePicker/TimeControlsList/TimeControl.tsx"],"sourcesContent":["import { UnstyledButton } from '@mantine/core';\nimport { useTimePickerContext } from '../TimePicker.context';\nimport { padTime } from '../utils/pad-time/pad-time';\n\ninterface TimeControlProps {\n value: number | string;\n active: boolean;\n onSelect: (value: any) => void;\n}\n\nexport function TimeControl({ value, active, onSelect }: TimeControlProps) {\n const ctx = useTimePickerContext();\n\n return (\n <UnstyledButton\n mod={{ active }}\n onClick={() => onSelect(value)}\n onMouseDown={(event) => event.preventDefault()}\n data-value={value}\n tabIndex={-1}\n {...ctx.getStyles('control')}\n >\n {typeof value === 'number' ? padTime(value) : value}\n </UnstyledButton>\n );\n}\n\nTimeControl.displayName = '@mantine/dates/TimeControl';\n"],"names":["useTimePickerContext","jsx","UnstyledButton","padTime"],"mappings":";;;;;;;;AAUO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAS,CAAA,CAAqB,CAAA;AACzE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,IAAMA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAqB,CAAA;AAEjC,CAAA,CAAA,uBACEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAACC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACd,OAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,KAAK,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,KAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,cAAA,CAAA,CAAe,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAU,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACT,GAAG,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,SAAS,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAE1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAChD,CAAA;AAEJ,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;"}

View File

@@ -0,0 +1,64 @@
'use client';
'use strict';
var jsxRuntime = require('react/jsx-runtime');
var react = require('react');
var core = require('@mantine/core');
var TimePicker_context = require('../TimePicker.context.cjs');
var TimeControl = require('./TimeControl.cjs');
function isElementVisibleInScrollContainer(element, container) {
if (!element || !container) {
return false;
}
const elementRect = element.getBoundingClientRect();
const containerRect = container.getBoundingClientRect();
const isVisible = elementRect.top >= containerRect.top && elementRect.bottom <= containerRect.bottom && elementRect.left >= containerRect.left && elementRect.right <= containerRect.right;
return isVisible;
}
function getValuesRange(min, max, step) {
const range = [];
for (let i = min; i <= max; i += step) {
range.push(i);
}
return range;
}
function TimeControlsList({
min,
max,
step,
value,
onSelect,
reversed
}) {
const ctx = TimePicker_context.useTimePickerContext();
const ref = react.useRef(null);
const range = getValuesRange(min, max, step);
const controls = (reversed ? range.reverse() : range).map((control) => /* @__PURE__ */ jsxRuntime.jsx(TimeControl.TimeControl, { value: control, active: value === control, onSelect }, control));
react.useEffect(() => {
if (value !== null) {
const scrollToValue = () => {
const target = ref.current?.querySelector(`[data-value="${value}"]`);
if (!isElementVisibleInScrollContainer(target, ref.current)) {
target?.scrollIntoView({ block: "nearest" });
}
};
requestAnimationFrame(scrollToValue);
}
}, [value]);
return /* @__PURE__ */ jsxRuntime.jsx(
core.ScrollArea,
{
h: ctx.maxDropdownContentHeight,
type: "never",
viewportRef: ref,
...ctx.getStyles("scrollarea"),
...ctx.scrollAreaProps,
children: /* @__PURE__ */ jsxRuntime.jsx("div", { ...ctx.getStyles("controlsList"), children: controls })
}
);
}
TimeControlsList.displayName = "@mantine/dates/TimeControlsList";
exports.TimeControlsList = TimeControlsList;
//# sourceMappingURL=TimeControlsList.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,421 @@
'use client';
'use strict';
var jsxRuntime = require('react/jsx-runtime');
var react = require('react');
var core = require('@mantine/core');
var hooks = require('@mantine/hooks');
var SpinInput = require('../SpinInput/SpinInput.cjs');
var AmPmInput = require('./AmPmInput/AmPmInput.cjs');
var AmPmControlsList = require('./TimeControlsList/AmPmControlsList.cjs');
var TimeControlsList = require('./TimeControlsList/TimeControlsList.cjs');
var TimePicker_context = require('./TimePicker.context.cjs');
var TimePicker_module = require('./TimePicker.module.css.cjs');
var TimePresets = require('./TimePresets/TimePresets.cjs');
var useTimePicker = require('./use-time-picker.cjs');
var clampTime = require('./utils/clamp-time/clamp-time.cjs');
var getParsedTime = require('./utils/get-parsed-time/get-parsed-time.cjs');
var getTimeString = require('./utils/get-time-string/get-time-string.cjs');
const defaultProps = {
hoursStep: 1,
minutesStep: 1,
secondsStep: 1,
format: "24h",
amPmLabels: { am: "AM", pm: "PM" },
pasteSplit: getParsedTime.getParsedTime,
maxDropdownContentHeight: 200,
hoursPlaceholder: "--",
minutesPlaceholder: "--",
secondsPlaceholder: "--"
};
const varsResolver = core.createVarsResolver((_theme, { size }) => ({
dropdown: {
"--control-font-size": core.getFontSize(size)
}
}));
const TimePicker = core.factory((_props, ref) => {
const props = core.useProps("TimePicker", defaultProps, _props);
const {
classNames,
className,
style,
styles,
unstyled,
vars,
onClick,
format,
value,
defaultValue,
onChange,
hoursStep,
minutesStep,
secondsStep,
withSeconds,
hoursInputLabel,
minutesInputLabel,
secondsInputLabel,
amPmInputLabel,
amPmLabels,
clearable,
onMouseDown,
onFocusCapture,
onBlurCapture,
min,
max,
popoverProps,
withDropdown,
rightSection,
onFocus,
onBlur,
clearButtonProps,
hoursInputProps,
minutesInputProps,
secondsInputProps,
amPmSelectProps,
readOnly,
disabled,
size,
name,
form,
hiddenInputProps,
labelProps,
pasteSplit,
hoursRef,
minutesRef,
secondsRef,
amPmRef,
presets,
maxDropdownContentHeight,
scrollAreaProps,
attributes,
reverseTimeControlsList,
hoursPlaceholder,
minutesPlaceholder,
secondsPlaceholder,
...others
} = props;
const { resolvedClassNames, resolvedStyles } = core.useResolvedStylesApi({
classNames,
styles,
props
});
const getStyles = core.useStyles({
name: "TimePicker",
classes: TimePicker_module,
props,
className,
style,
classNames,
styles,
unstyled,
attributes,
vars,
varsResolver
});
const controller = useTimePicker.useTimePicker({
value,
defaultValue,
onChange,
format,
amPmLabels,
withSeconds,
min,
max,
clearable,
disabled,
readOnly,
pasteSplit
});
const _hoursRef = hooks.useMergedRef(controller.refs.hours, hoursRef);
const _minutesRef = hooks.useMergedRef(controller.refs.minutes, minutesRef);
const _secondsRef = hooks.useMergedRef(controller.refs.seconds, secondsRef);
const _amPmRef = hooks.useMergedRef(controller.refs.amPm, amPmRef);
const hoursInputId = hooks.useId();
const hasFocusRef = react.useRef(false);
const [dropdownOpened, setDropdownOpened] = react.useState(false);
const handleFocus = (event) => {
if (!hasFocusRef.current) {
hasFocusRef.current = true;
onFocus?.(event);
}
};
const handleBlur = (event) => {
if (!event.currentTarget.contains(event.relatedTarget)) {
const computedValue = controller.values;
const timeString = getTimeString.getTimeString({
...computedValue,
format,
amPmLabels,
withSeconds: !!withSeconds
});
if (timeString.valid && (min || max)) {
const clamped = clampTime.clampTime(timeString.value, min, max);
if (clamped.timeString !== timeString.value) {
controller.setTimeString(clamped.timeString);
}
}
hasFocusRef.current = false;
onBlur?.(event);
}
};
return /* @__PURE__ */ jsxRuntime.jsx(TimePicker_context.TimePickerProvider, { value: { getStyles, scrollAreaProps, maxDropdownContentHeight }, children: /* @__PURE__ */ jsxRuntime.jsxs(
core.Popover,
{
opened: dropdownOpened,
transitionProps: { duration: 0 },
position: "bottom-start",
withRoles: false,
disabled: disabled || readOnly || !withDropdown,
...popoverProps,
children: [
/* @__PURE__ */ jsxRuntime.jsx(core.Popover.Target, { children: /* @__PURE__ */ jsxRuntime.jsxs(
core.InputBase,
{
component: "div",
size,
disabled,
ref,
onClick: (event) => {
onClick?.(event);
controller.focus("hours");
},
onMouseDown: (event) => {
event.preventDefault();
onMouseDown?.(event);
},
onFocusCapture: (event) => {
setDropdownOpened(true);
onFocusCapture?.(event);
},
onBlurCapture: (event) => {
setDropdownOpened(false);
onBlurCapture?.(event);
},
rightSection: rightSection || controller.isClearable && /* @__PURE__ */ jsxRuntime.jsx(
core.CloseButton,
{
...clearButtonProps,
size,
onClick: (event) => {
controller.clear();
clearButtonProps?.onClick?.(event);
},
onMouseDown: (event) => {
event.preventDefault();
clearButtonProps?.onMouseDown?.(event);
}
}
),
labelProps: { htmlFor: hoursInputId, ...labelProps },
style,
className,
classNames: resolvedClassNames,
styles: resolvedStyles,
__staticSelector: "TimePicker",
...others,
children: [
/* @__PURE__ */ jsxRuntime.jsx("div", { ...getStyles("fieldsRoot"), dir: "ltr", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { ...getStyles("fieldsGroup"), onBlur: handleBlur, children: [
/* @__PURE__ */ jsxRuntime.jsx(
SpinInput.SpinInput,
{
id: hoursInputId,
...hoursInputProps,
...getStyles("field", {
className: hoursInputProps?.className,
style: hoursInputProps?.style
}),
value: controller.values.hours,
onChange: controller.setHours,
onNextInput: () => controller.focus("minutes"),
min: format === "12h" ? 1 : 0,
max: format === "12h" ? 12 : 23,
allowTemporaryZero: format === "12h",
focusable: true,
step: hoursStep,
ref: _hoursRef,
"aria-label": hoursInputLabel,
readOnly,
disabled,
onPaste: controller.onPaste,
onFocus: (event) => {
handleFocus(event);
hoursInputProps?.onFocus?.(event);
},
onBlur: (event) => {
const actualInputValue = event.currentTarget.value;
const numericValue = actualInputValue ? parseInt(actualInputValue, 10) : null;
if (format === "12h" && numericValue === 0) {
controller.setHours(12);
}
hoursInputProps?.onBlur?.(event);
},
placeholder: hoursPlaceholder
}
),
/* @__PURE__ */ jsxRuntime.jsx("span", { children: ":" }),
/* @__PURE__ */ jsxRuntime.jsx(
SpinInput.SpinInput,
{
...minutesInputProps,
...getStyles("field", {
className: minutesInputProps?.className,
style: minutesInputProps?.style
}),
value: controller.values.minutes,
onChange: controller.setMinutes,
min: 0,
max: 59,
focusable: true,
step: minutesStep,
ref: _minutesRef,
onPreviousInput: () => controller.focus("hours"),
onNextInput: () => withSeconds ? controller.focus("seconds") : controller.focus("amPm"),
"aria-label": minutesInputLabel,
tabIndex: -1,
readOnly,
disabled,
onPaste: controller.onPaste,
onFocus: (event) => {
handleFocus(event);
minutesInputProps?.onFocus?.(event);
},
placeholder: minutesPlaceholder
}
),
withSeconds && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
/* @__PURE__ */ jsxRuntime.jsx("span", { children: ":" }),
/* @__PURE__ */ jsxRuntime.jsx(
SpinInput.SpinInput,
{
...secondsInputProps,
...getStyles("field", {
className: secondsInputProps?.className,
style: secondsInputProps?.style
}),
value: controller.values.seconds,
onChange: controller.setSeconds,
min: 0,
max: 59,
focusable: true,
step: secondsStep,
ref: _secondsRef,
onPreviousInput: () => controller.focus("minutes"),
onNextInput: () => controller.focus("amPm"),
"aria-label": secondsInputLabel,
tabIndex: -1,
readOnly,
disabled,
onPaste: controller.onPaste,
onFocus: (event) => {
handleFocus(event);
secondsInputProps?.onFocus?.(event);
},
placeholder: secondsPlaceholder
}
)
] }),
format === "12h" && /* @__PURE__ */ jsxRuntime.jsx(
AmPmInput.AmPmInput,
{
...amPmSelectProps,
inputType: withDropdown ? "input" : "select",
labels: amPmLabels,
value: controller.values.amPm,
onChange: controller.setAmPm,
ref: _amPmRef,
"aria-label": amPmInputLabel,
onPreviousInput: () => withSeconds ? controller.focus("seconds") : controller.focus("minutes"),
readOnly,
disabled,
tabIndex: -1,
onPaste: controller.onPaste,
onFocus: (event) => {
handleFocus(event);
amPmSelectProps?.onFocus?.(event);
}
}
)
] }) }),
/* @__PURE__ */ jsxRuntime.jsx(
"input",
{
type: "hidden",
name,
form,
value: controller.hiddenInputValue,
...hiddenInputProps
}
)
]
}
) }),
/* @__PURE__ */ jsxRuntime.jsx(
core.Popover.Dropdown,
{
...getStyles("dropdown"),
onMouseDown: (event) => event.preventDefault(),
children: presets ? /* @__PURE__ */ jsxRuntime.jsx(
TimePresets.TimePresets,
{
value: controller.hiddenInputValue,
onChange: controller.setTimeString,
format,
presets,
amPmLabels,
withSeconds: withSeconds || false
}
) : /* @__PURE__ */ jsxRuntime.jsxs("div", { ...getStyles("controlsListGroup"), children: [
/* @__PURE__ */ jsxRuntime.jsx(
TimeControlsList.TimeControlsList,
{
min: format === "12h" ? 1 : 0,
max: format === "12h" ? 12 : 23,
step: hoursStep,
value: controller.values.hours,
onSelect: controller.setHours,
reversed: reverseTimeControlsList
}
),
/* @__PURE__ */ jsxRuntime.jsx(
TimeControlsList.TimeControlsList,
{
min: 0,
max: 59,
step: minutesStep,
value: controller.values.minutes,
onSelect: controller.setMinutes,
reversed: reverseTimeControlsList
}
),
withSeconds && /* @__PURE__ */ jsxRuntime.jsx(
TimeControlsList.TimeControlsList,
{
min: 0,
max: 59,
step: secondsStep,
value: controller.values.seconds,
onSelect: controller.setSeconds,
reversed: reverseTimeControlsList
}
),
format === "12h" && /* @__PURE__ */ jsxRuntime.jsx(
AmPmControlsList.AmPmControlsList,
{
labels: amPmLabels,
value: controller.values.amPm,
onSelect: controller.setAmPm
}
)
] })
}
)
]
}
) });
});
TimePicker.displayName = "@mantine/dates/TimePicker";
TimePicker.classes = TimePicker_module;
exports.TimePicker = TimePicker;
//# sourceMappingURL=TimePicker.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,12 @@
'use client';
'use strict';
var core = require('@mantine/core');
const [TimePickerProvider, useTimePickerContext] = core.createSafeContext(
"TimeInput component was not found in the component tree"
);
exports.TimePickerProvider = TimePickerProvider;
exports.useTimePickerContext = useTimePickerContext;
//# sourceMappingURL=TimePicker.context.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"TimePicker.context.cjs","sources":["../../../src/components/TimePicker/TimePicker.context.tsx"],"sourcesContent":["import { createSafeContext, GetStylesApi, ScrollAreaProps } from '@mantine/core';\nimport type { TimePickerFactory } from './TimePicker';\n\ninterface TimePickerContext {\n getStyles: GetStylesApi<TimePickerFactory>;\n maxDropdownContentHeight: number;\n scrollAreaProps: ScrollAreaProps | undefined;\n}\n\nexport const [TimePickerProvider, useTimePickerContext] = createSafeContext<TimePickerContext>(\n 'TimeInput component was not found in the component tree'\n);\n"],"names":["createSafeContext"],"mappings":";;;;;AASO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,GAAIA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA;AAAA,CAAA,CACxD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACF,CAAA,CAAA;;;"}

View File

@@ -0,0 +1,7 @@
'use client';
'use strict';
var classes = {"fieldsRoot":"m_7a8f1e6d","fieldsGroup":"m_d6bb0a54","controlsList":"m_b97ecb26","controlsListGroup":"m_31fe42f9","dropdown":"m_9c4817c3","control":"m_154c536b","presetControl":"m_7be09d0c","presetsGroup":"m_7d00001d","presetsGroupLabel":"m_d8d918d7","field":"m_6b43ba88"};
module.exports = classes;
//# sourceMappingURL=TimePicker.module.css.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"TimePicker.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}

View File

@@ -0,0 +1,31 @@
'use client';
'use strict';
var jsxRuntime = require('react/jsx-runtime');
var core = require('@mantine/core');
var TimeValue = require('../../TimeValue/TimeValue.cjs');
var TimePicker_context = require('../TimePicker.context.cjs');
function TimePresetControl({
value,
active,
onChange,
format,
amPmLabels,
withSeconds
}) {
const ctx = TimePicker_context.useTimePickerContext();
return /* @__PURE__ */ jsxRuntime.jsx(
core.UnstyledButton,
{
mod: { active },
onClick: () => onChange(value),
...ctx.getStyles("presetControl"),
children: /* @__PURE__ */ jsxRuntime.jsx(TimeValue.TimeValue, { withSeconds, value, format, amPmLabels })
}
);
}
TimePresetControl.displayName = "@mantine/dates/TimePresetControl";
exports.TimePresetControl = TimePresetControl;
//# sourceMappingURL=TimePresetControl.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"TimePresetControl.cjs","sources":["../../../../src/components/TimePicker/TimePresets/TimePresetControl.tsx"],"sourcesContent":["import { UnstyledButton } from '@mantine/core';\nimport { TimeValue } from '../../TimeValue';\nimport { useTimePickerContext } from '../TimePicker.context';\nimport { TimePickerAmPmLabels, TimePickerFormat } from '../TimePicker.types';\n\ninterface TimePresetControlProps {\n value: string;\n active: boolean;\n onChange: (value: string) => void;\n format: TimePickerFormat;\n amPmLabels: TimePickerAmPmLabels;\n withSeconds: boolean;\n}\n\nexport function TimePresetControl({\n value,\n active,\n onChange,\n format,\n amPmLabels,\n withSeconds,\n}: TimePresetControlProps) {\n const ctx = useTimePickerContext();\n\n return (\n <UnstyledButton\n mod={{ active }}\n onClick={() => onChange(value)}\n {...ctx.getStyles('presetControl')}\n >\n <TimeValue withSeconds={withSeconds} value={value} format={format} amPmLabels={amPmLabels} />\n </UnstyledButton>\n );\n}\n\nTimePresetControl.displayName = '@mantine/dates/TimePresetControl';\n"],"names":["useTimePickerContext","jsx","UnstyledButton","TimeValue"],"mappings":"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"}

View File

@@ -0,0 +1,39 @@
'use client';
'use strict';
var jsxRuntime = require('react/jsx-runtime');
var core = require('@mantine/core');
var TimePicker_context = require('../TimePicker.context.cjs');
var isSameTime = require('../utils/is-same-time/is-same-time.cjs');
var TimePresetControl = require('./TimePresetControl.cjs');
function TimePresetGroup({
value,
data,
onChange,
format,
amPmLabels,
withSeconds
}) {
const ctx = TimePicker_context.useTimePickerContext();
const items = data.values.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
TimePresetControl.TimePresetControl,
{
value: item,
format,
amPmLabels,
withSeconds,
active: isSameTime.isSameTime({ time: item, compare: value, withSeconds }),
onChange
},
item
));
return /* @__PURE__ */ jsxRuntime.jsxs("div", { ...ctx.getStyles("presetsGroup"), children: [
/* @__PURE__ */ jsxRuntime.jsx("div", { ...ctx.getStyles("presetsGroupLabel"), children: data.label }),
/* @__PURE__ */ jsxRuntime.jsx(core.SimpleGrid, { cols: withSeconds ? 2 : 3, spacing: 4, children: items })
] });
}
TimePresetGroup.displayName = "@mantine/dates/TimePresetGroup";
exports.TimePresetGroup = TimePresetGroup;
//# sourceMappingURL=TimePresetGroup.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,73 @@
'use client';
'use strict';
var jsxRuntime = require('react/jsx-runtime');
var core = require('@mantine/core');
var TimePicker_context = require('../TimePicker.context.cjs');
var isSameTime = require('../utils/is-same-time/is-same-time.cjs');
var TimePresetControl = require('./TimePresetControl.cjs');
var TimePresetGroup = require('./TimePresetGroup.cjs');
function TimePresets({
presets,
format,
amPmLabels,
withSeconds,
value,
onChange
}) {
const ctx = TimePicker_context.useTimePickerContext();
if (presets.length === 0) {
return null;
}
if (typeof presets[0] === "string") {
const items = presets.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
TimePresetControl.TimePresetControl,
{
value: item,
format,
amPmLabels,
withSeconds,
active: isSameTime.isSameTime({ time: item, compare: value, withSeconds }),
onChange
},
item
));
return /* @__PURE__ */ jsxRuntime.jsx(
core.ScrollArea.Autosize,
{
mah: ctx.maxDropdownContentHeight,
type: "never",
...ctx.getStyles("scrollarea"),
...ctx.scrollAreaProps,
children: /* @__PURE__ */ jsxRuntime.jsx("div", { ...ctx.getStyles("presetsRoot"), children: /* @__PURE__ */ jsxRuntime.jsx(core.SimpleGrid, { cols: withSeconds ? 2 : 3, spacing: 4, children: items }) })
}
);
}
const groups = presets.map((group, index) => /* @__PURE__ */ jsxRuntime.jsx(
TimePresetGroup.TimePresetGroup,
{
data: group,
value,
format,
amPmLabels,
withSeconds,
onChange
},
index
));
return /* @__PURE__ */ jsxRuntime.jsx(
core.ScrollArea.Autosize,
{
mah: ctx.maxDropdownContentHeight,
type: "never",
...ctx.getStyles("scrollarea"),
...ctx.scrollAreaProps,
children: /* @__PURE__ */ jsxRuntime.jsx("div", { ...ctx.getStyles("presetsRoot"), children: groups })
}
);
}
TimePresets.displayName = "@mantine/dates/TimePresets";
exports.TimePresets = TimePresets;
//# sourceMappingURL=TimePresets.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,195 @@
'use client';
'use strict';
var react = require('react');
var hooks = require('@mantine/hooks');
var clampTime = require('./utils/clamp-time/clamp-time.cjs');
var getParsedTime = require('./utils/get-parsed-time/get-parsed-time.cjs');
var getTimeString = require('./utils/get-time-string/get-time-string.cjs');
function useTimePicker({
value,
defaultValue,
onChange,
format,
amPmLabels,
withSeconds = false,
min,
max,
clearable,
readOnly,
disabled,
pasteSplit
}) {
const parsedTime = getParsedTime.getParsedTime({
time: value || defaultValue || "",
amPmLabels,
format
});
const initialTimeString = getTimeString.getTimeString({
hours: parsedTime.hours,
minutes: parsedTime.minutes,
seconds: parsedTime.seconds,
format,
withSeconds,
amPm: parsedTime.amPm,
amPmLabels
});
const acceptChange = react.useRef(true);
const wasInvalidBefore = react.useRef(!initialTimeString.valid);
const [hours, setHours] = react.useState(parsedTime.hours);
const [minutes, setMinutes] = react.useState(parsedTime.minutes);
const [seconds, setSeconds] = react.useState(parsedTime.seconds);
const [amPm, setAmPm] = react.useState(parsedTime.amPm);
const isClearable = clearable && !readOnly && !disabled && (hours !== null || minutes !== null || seconds !== null || amPm !== null);
const hoursRef = react.useRef(null);
const minutesRef = react.useRef(null);
const secondsRef = react.useRef(null);
const amPmRef = react.useRef(null);
const focus = (field) => {
if (field === "hours") {
hoursRef.current?.focus();
}
if (field === "minutes") {
minutesRef.current?.focus();
}
if (field === "seconds") {
secondsRef.current?.focus();
}
if (field === "amPm") {
amPmRef.current?.focus();
}
};
const handleTimeChange = (field, val) => {
const computedValue = { hours, minutes, seconds, amPm, [field]: val };
const timeString = getTimeString.getTimeString({ ...computedValue, format, withSeconds, amPmLabels });
if (timeString.valid) {
acceptChange.current = false;
wasInvalidBefore.current = false;
if (field === "hours") {
setHours(val);
}
if (field === "minutes") {
setMinutes(val);
}
if (field === "seconds") {
setSeconds(val);
}
if (field === "amPm") {
setAmPm(val);
}
onChange?.(timeString.value);
} else {
acceptChange.current = false;
if (!wasInvalidBefore.current) {
onChange?.("");
wasInvalidBefore.current = true;
}
}
};
const setTimeString = (timeString) => {
acceptChange.current = false;
const parsedTime2 = getParsedTime.getParsedTime({ time: timeString, amPmLabels, format });
setHours(parsedTime2.hours);
setMinutes(parsedTime2.minutes);
setSeconds(parsedTime2.seconds);
setAmPm(parsedTime2.amPm);
const next = getTimeString.getTimeString({ ...parsedTime2, format, withSeconds, amPmLabels });
wasInvalidBefore.current = !next.valid;
onChange?.(timeString);
};
const onHoursChange = (value2) => {
let adjustedValue = value2;
if (format === "12h" && typeof value2 === "number" && value2 > 12) {
adjustedValue = (value2 - 1) % 12 + 1;
}
setHours(adjustedValue);
handleTimeChange("hours", adjustedValue);
focus("hours");
};
const onMinutesChange = (value2) => {
setMinutes(value2);
handleTimeChange("minutes", value2);
focus("minutes");
};
const onSecondsChange = (value2) => {
setSeconds(value2);
handleTimeChange("seconds", value2);
focus("seconds");
};
const onAmPmChange = (value2) => {
setAmPm(value2);
handleTimeChange("amPm", value2);
focus("amPm");
};
const clear = () => {
acceptChange.current = false;
setHours(null);
setMinutes(null);
setSeconds(null);
setAmPm(null);
onChange?.("");
wasInvalidBefore.current = true;
focus("hours");
};
const onPaste = (event) => {
event.preventDefault();
const pastedValue = event.clipboardData.getData("text");
const parsedTime2 = (pasteSplit || getParsedTime.getParsedTime)({ time: pastedValue, format, amPmLabels });
const timeString = getTimeString.getTimeString({ ...parsedTime2, format, withSeconds, amPmLabels });
if (timeString.valid) {
acceptChange.current = false;
const clamped = clampTime.clampTime(timeString.value, min || "00:00:00", max || "23:59:59");
onChange?.(clamped.timeString);
setHours(parsedTime2.hours);
setMinutes(parsedTime2.minutes);
setSeconds(parsedTime2.seconds);
setAmPm(parsedTime2.amPm);
}
};
const hiddenInputValue = getTimeString.getTimeString({
hours,
minutes,
seconds,
format,
withSeconds,
amPm,
amPmLabels
});
hooks.useDidUpdate(() => {
if (value === "") {
acceptChange.current = false;
setHours(null);
setMinutes(null);
setSeconds(null);
setAmPm(null);
acceptChange.current = true;
return;
}
if (acceptChange.current && typeof value === "string") {
const parsedTime2 = getParsedTime.getParsedTime({ time: value || "", amPmLabels, format });
setHours(parsedTime2.hours);
setMinutes(parsedTime2.minutes);
setSeconds(parsedTime2.seconds);
setAmPm(parsedTime2.amPm);
}
acceptChange.current = true;
}, [value]);
return {
refs: { hours: hoursRef, minutes: minutesRef, seconds: secondsRef, amPm: amPmRef },
values: { hours, minutes, seconds, amPm },
setHours: onHoursChange,
setMinutes: onMinutesChange,
setSeconds: onSecondsChange,
setAmPm: onAmPmChange,
focus,
clear,
onPaste,
setTimeString,
isClearable,
hiddenInputValue: hiddenInputValue.value
};
}
exports.useTimePicker = useTimePicker;
//# sourceMappingURL=use-time-picker.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,15 @@
'use client';
'use strict';
var timeToSeconds = require('../time-to-seconds/time-to-seconds.cjs');
function clampTime(time, min, max) {
const timeInSeconds = timeToSeconds.timeToSeconds(time);
const minInSeconds = min ? timeToSeconds.timeToSeconds(min) : -Infinity;
const maxInSeconds = max ? timeToSeconds.timeToSeconds(max) : Infinity;
const clampedSeconds = Math.max(minInSeconds, Math.min(timeInSeconds, maxInSeconds));
return timeToSeconds.secondsToTime(clampedSeconds);
}
exports.clampTime = clampTime;
//# sourceMappingURL=clamp-time.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"clamp-time.cjs","sources":["../../../../../src/components/TimePicker/utils/clamp-time/clamp-time.ts"],"sourcesContent":["import { secondsToTime, timeToSeconds } from '../time-to-seconds/time-to-seconds';\n\nexport function clampTime(time: string, min: string | undefined, max: string | undefined) {\n const timeInSeconds = timeToSeconds(time);\n const minInSeconds = min ? timeToSeconds(min) : -Infinity;\n const maxInSeconds = max ? timeToSeconds(max) : Infinity;\n\n const clampedSeconds = Math.max(minInSeconds, Math.min(timeInSeconds, maxInSeconds));\n return secondsToTime(clampedSeconds);\n}\n"],"names":["timeToSeconds","secondsToTime"],"mappings":";;;;;AAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,SAAA,CAAU,CAAA,CAAA,CAAA,CAAA,EAAc,CAAA,CAAA,CAAA,CAAA,CAAyB,GAAA,CAAA,CAAyB,CAAA;AACxF,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAc,IAAI,CAAA,CAAA;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAc,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMA,2BAAA,CAAc,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEhD,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,EAAK,GAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,CAAA,CAAI,aAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA;AACnF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA;AACrC,CAAA;;"}

View File

@@ -0,0 +1,38 @@
'use client';
'use strict';
var splitTimeString = require('../split-time-string/split-time-string.cjs');
function convertTimeTo12HourFormat({
hours,
minutes,
seconds,
amPmLabels
}) {
if (hours === null) {
return { hours: null, minutes: null, seconds: null, amPm: null };
}
const amPm = hours >= 12 ? amPmLabels.pm : amPmLabels.am;
const hour12 = hours % 12 === 0 ? 12 : hours % 12;
return {
hours: hour12,
minutes: typeof minutes === "number" ? minutes : null,
seconds: typeof seconds === "number" ? seconds : null,
amPm
};
}
function getParsedTime({ time, format, amPmLabels }) {
if (time === "") {
return { hours: null, minutes: null, seconds: null, amPm: null };
}
const { hours, minutes, seconds } = splitTimeString.splitTimeString(time);
const parsed = { hours, minutes, seconds };
if (format === "12h") {
return convertTimeTo12HourFormat({ ...parsed, amPmLabels });
}
return { ...parsed, amPm: null };
}
exports.convertTimeTo12HourFormat = convertTimeTo12HourFormat;
exports.getParsedTime = getParsedTime;
//# sourceMappingURL=get-parsed-time.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,18 @@
'use client';
'use strict';
var timeToSeconds = require('../time-to-seconds/time-to-seconds.cjs');
function getTimeRange({ startTime, endTime, interval }) {
const timeRange = [];
const startInSeconds = timeToSeconds.timeToSeconds(startTime);
const endInSeconds = timeToSeconds.timeToSeconds(endTime);
const intervalInSeconds = timeToSeconds.timeToSeconds(interval);
for (let current = startInSeconds; current <= endInSeconds; current += intervalInSeconds) {
timeRange.push(timeToSeconds.secondsToTime(current).timeString);
}
return timeRange;
}
exports.getTimeRange = getTimeRange;
//# sourceMappingURL=get-time-range.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"get-time-range.cjs","sources":["../../../../../src/components/TimePicker/utils/get-time-range/get-time-range.ts"],"sourcesContent":["import { secondsToTime, timeToSeconds } from '../time-to-seconds/time-to-seconds';\n\ninterface GetTimeRangeInput {\n startTime: string;\n endTime: string;\n interval: string;\n}\n\nexport function getTimeRange({ startTime, endTime, interval }: GetTimeRangeInput): string[] {\n const timeRange: string[] = [];\n const startInSeconds = timeToSeconds(startTime);\n const endInSeconds = timeToSeconds(endTime);\n const intervalInSeconds = timeToSeconds(interval);\n\n for (let current = startInSeconds; current <= endInSeconds; current += intervalInSeconds) {\n timeRange.push(secondsToTime(current).timeString);\n }\n\n return timeRange;\n}\n"],"names":["timeToSeconds","secondsToTime"],"mappings":"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"}

View File

@@ -0,0 +1,51 @@
'use client';
'use strict';
var padTime = require('../pad-time/pad-time.cjs');
function convertTo24HourFormat({
hours,
minutes,
seconds,
amPm,
amPmLabels,
withSeconds
}) {
let _hours = hours;
if (amPm === amPmLabels.pm && hours !== 12) {
_hours += 12;
} else if (amPm === amPmLabels.am && hours === 12) {
_hours = 0;
}
return `${padTime.padTime(_hours)}:${padTime.padTime(minutes)}${withSeconds ? `:${padTime.padTime(seconds || 0)}` : ""}`;
}
function getTimeString({
hours,
minutes,
seconds,
format,
withSeconds,
amPm,
amPmLabels
}) {
if (hours === null || minutes === null) {
return { valid: false, value: "" };
}
if (withSeconds && seconds === null) {
return { valid: false, value: "" };
}
if (format === "24h") {
const value = `${padTime.padTime(hours)}:${padTime.padTime(minutes)}${withSeconds ? `:${padTime.padTime(seconds)}` : ""}`;
return { valid: true, value };
}
if (amPm === null) {
return { valid: false, value: "" };
}
return {
valid: true,
value: convertTo24HourFormat({ hours, minutes, seconds, amPm, amPmLabels, withSeconds })
};
}
exports.getTimeString = getTimeString;
//# sourceMappingURL=get-time-string.cjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,16 @@
'use client';
'use strict';
var splitTimeString = require('../split-time-string/split-time-string.cjs');
function isSameTime({ time, compare, withSeconds }) {
const timeParts = splitTimeString.splitTimeString(time);
const compareParts = splitTimeString.splitTimeString(compare);
if (withSeconds) {
return timeParts.hours === compareParts.hours && timeParts.minutes === compareParts.minutes && timeParts.seconds === compareParts.seconds;
}
return timeParts.hours === compareParts.hours && timeParts.minutes === compareParts.minutes;
}
exports.isSameTime = isSameTime;
//# sourceMappingURL=is-same-time.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"is-same-time.cjs","sources":["../../../../../src/components/TimePicker/utils/is-same-time/is-same-time.ts"],"sourcesContent":["import { splitTimeString } from '../split-time-string/split-time-string';\n\ninterface IsSameTimeInput {\n time: string;\n compare: string;\n withSeconds: boolean;\n}\n\nexport function isSameTime({ time, compare, withSeconds }: IsSameTimeInput) {\n const timeParts = splitTimeString(time);\n const compareParts = splitTimeString(compare);\n\n if (withSeconds) {\n return (\n timeParts.hours === compareParts.hours &&\n timeParts.minutes === compareParts.minutes &&\n timeParts.seconds === compareParts.seconds\n );\n }\n\n return timeParts.hours === compareParts.hours && timeParts.minutes === compareParts.minutes;\n}\n"],"names":["splitTimeString"],"mappings":";;;;;AAQO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,EAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAY,CAAA,CAAoB,CAAA;AAC1E,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAYA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAgB,IAAI,CAAA,CAAA;AACtC,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAeA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAgB,OAAO,CAAA,CAAA;AAE5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,WAAA,CAAA,CAAa,CAAA;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACE,SAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,KAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,YAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAEvC,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAU,CAAA,CAAA,CAAA,CAAA,CAAA,KAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,SAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACtF,CAAA;;"}

View File

@@ -0,0 +1,9 @@
'use client';
'use strict';
function padTime(value) {
return value < 10 ? `0${value}` : `${value}`;
}
exports.padTime = padTime;
//# sourceMappingURL=pad-time.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"pad-time.cjs","sources":["../../../../../src/components/TimePicker/utils/pad-time/pad-time.ts"],"sourcesContent":["export function padTime(value: number) {\n return value < 10 ? `0${value}` : `${value}`;\n}\n"],"names":[],"mappings":";;;AAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA;AACrC,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,IAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAK,GAAG,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA;AAC5C,CAAA;;"}

View File

@@ -0,0 +1,10 @@
'use client';
'use strict';
function splitTimeString(timeString) {
const [hours = null, minutes = null, seconds = null] = timeString.split(":").map(Number);
return { hours, minutes, seconds };
}
exports.splitTimeString = splitTimeString;
//# sourceMappingURL=split-time-string.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"split-time-string.cjs","sources":["../../../../../src/components/TimePicker/utils/split-time-string/split-time-string.ts"],"sourcesContent":["export function splitTimeString(timeString: string) {\n const [hours = null, minutes = null, seconds = null] = timeString.split(':').map(Number);\n return { hours, minutes, seconds };\n}\n"],"names":[],"mappings":";;;AAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA;AAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,EAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,IAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAE,CAAA,CAAA,EAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA;AACvF,CAAA,CAAA,OAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,OAAA,CAAA,CAAQ,CAAA;AACnC,CAAA;;"}

View File

@@ -0,0 +1,24 @@
'use client';
'use strict';
var padTime = require('../pad-time/pad-time.cjs');
function timeToSeconds(timeStr) {
const [hours = 0, minutes = 0, seconds = 0] = timeStr.split(":").map(Number);
return hours * 3600 + minutes * 60 + seconds;
}
function secondsToTime(seconds) {
const hours = Math.floor(seconds / 3600);
const minutes = Math.floor(seconds % 3600 / 60);
const secs = seconds % 60;
return {
timeString: `${padTime.padTime(hours)}:${padTime.padTime(minutes)}:${padTime.padTime(secs)}`,
hours,
minutes,
seconds: secs
};
}
exports.secondsToTime = secondsToTime;
exports.timeToSeconds = timeToSeconds;
//# sourceMappingURL=time-to-seconds.cjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"time-to-seconds.cjs","sources":["../../../../../src/components/TimePicker/utils/time-to-seconds/time-to-seconds.ts"],"sourcesContent":["import { padTime } from '../pad-time/pad-time';\n\nexport function timeToSeconds(timeStr: string): number {\n const [hours = 0, minutes = 0, seconds = 0] = timeStr.split(':').map(Number);\n return hours * 3600 + minutes * 60 + seconds;\n}\n\nexport function secondsToTime(seconds: number) {\n const hours = Math.floor(seconds / 3600);\n const minutes = Math.floor((seconds % 3600) / 60);\n const secs = seconds % 60;\n\n return {\n timeString: `${padTime(hours)}:${padTime(minutes)}:${padTime(secs)}`,\n hours,\n minutes,\n seconds: secs,\n };\n}\n"],"names":["padTime"],"mappings":"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"}