@wordpress/components
Version:
UI components for WordPress.
8 lines (7 loc) • 7.76 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../../src/date-time/time/time-input/index.tsx"],
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Fragment } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { TimeWrapper, TimeSeparator, HoursInput, MinutesInput, Fieldset } from '../styles';\nimport { HStack } from '../../../h-stack';\nimport { from12hTo24h, from24hTo12h, buildPadInputStateReducer, validateInputElementTarget } from '../../utils';\nimport { useControlledValue } from '../../../utils';\nimport BaseControl from '../../../base-control';\nimport { ToggleGroupControl, ToggleGroupControlOption } from '../../../toggle-group-control';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function TimeInput({\n value: valueProp,\n defaultValue,\n is12Hour,\n label,\n minutesProps,\n onChange\n}) {\n const [value = {\n hours: new Date().getHours(),\n minutes: new Date().getMinutes()\n }, setValue] = useControlledValue({\n value: valueProp,\n onChange,\n defaultValue\n });\n const dayPeriod = parseDayPeriod(value.hours);\n const hours12Format = from24hTo12h(value.hours);\n const buildNumberControlChangeCallback = method => {\n return (_value, {\n event\n }) => {\n if (!validateInputElementTarget(event)) {\n return;\n }\n\n // We can safely assume value is a number if target is valid.\n const numberValue = Number(_value);\n setValue({\n ...value,\n [method]: method === 'hours' && is12Hour ? from12hTo24h(numberValue, dayPeriod === 'PM') : numberValue\n });\n };\n };\n const buildAmPmChangeCallback = _value => {\n return () => {\n if (dayPeriod === _value) {\n return;\n }\n setValue({\n ...value,\n hours: from12hTo24h(hours12Format, _value === 'PM')\n });\n };\n };\n function parseDayPeriod(_hours) {\n return _hours < 12 ? 'AM' : 'PM';\n }\n const Wrapper = label ? Fieldset : Fragment;\n return /*#__PURE__*/_jsxs(Wrapper, {\n children: [label && /*#__PURE__*/_jsx(BaseControl.VisualLabel, {\n as: \"legend\",\n children: label\n }), /*#__PURE__*/_jsxs(HStack, {\n alignment: \"left\",\n expanded: false,\n children: [/*#__PURE__*/_jsxs(TimeWrapper, {\n className: \"components-datetime__time-field components-datetime__time-field-time\" // Unused, for backwards compatibility.\n ,\n children: [/*#__PURE__*/_jsx(HoursInput, {\n className: \"components-datetime__time-field-hours-input\" // Unused, for backwards compatibility.\n ,\n label: __('Hours'),\n hideLabelFromVision: true,\n __next40pxDefaultSize: true,\n value: String(is12Hour ? hours12Format : value.hours).padStart(2, '0'),\n step: 1,\n min: is12Hour ? 1 : 0,\n max: is12Hour ? 12 : 23,\n required: true,\n spinControls: \"none\",\n isPressEnterToChange: true,\n isDragEnabled: false,\n isShiftStepEnabled: false,\n onChange: buildNumberControlChangeCallback('hours'),\n __unstableStateReducer: buildPadInputStateReducer(2)\n }), /*#__PURE__*/_jsx(TimeSeparator, {\n className: \"components-datetime__time-separator\" // Unused, for backwards compatibility.\n ,\n \"aria-hidden\": \"true\",\n children: \":\"\n }), /*#__PURE__*/_jsx(MinutesInput, {\n className: clsx('components-datetime__time-field-minutes-input',\n // Unused, for backwards compatibility.\n minutesProps?.className),\n label: __('Minutes'),\n hideLabelFromVision: true,\n __next40pxDefaultSize: true,\n value: String(value.minutes).padStart(2, '0'),\n step: 1,\n min: 0,\n max: 59,\n required: true,\n spinControls: \"none\",\n isPressEnterToChange: true,\n isDragEnabled: false,\n isShiftStepEnabled: false,\n onChange: (...args) => {\n buildNumberControlChangeCallback('minutes')(...args);\n minutesProps?.onChange?.(...args);\n },\n __unstableStateReducer: buildPadInputStateReducer(2),\n ...minutesProps\n })]\n }), is12Hour && /*#__PURE__*/_jsxs(ToggleGroupControl, {\n __next40pxDefaultSize: true,\n isBlock: true,\n label: __('Select AM or PM'),\n hideLabelFromVision: true,\n value: dayPeriod,\n onChange: newValue => {\n buildAmPmChangeCallback(newValue)();\n },\n children: [/*#__PURE__*/_jsx(ToggleGroupControlOption, {\n value: \"AM\",\n label: __('AM')\n }), /*#__PURE__*/_jsx(ToggleGroupControlOption, {\n value: \"PM\",\n label: __('PM')\n })]\n })]\n })]\n });\n}\nexport default TimeInput;"],
"mappings": "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",
"names": []
}