UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

58 lines (57 loc) 2.06 kB
"use strict"; "use client"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = require("react"); var _index = _interopRequireDefault(require("../String/index.js")); var _useTranslation = _interopRequireDefault(require("../../hooks/useTranslation.js")); var _Context = _interopRequireDefault(require("../../../../shared/Context.js")); var _withComponentMarkers = _interopRequireDefault(require("../../../../shared/helpers/withComponentMarkers.js")); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function TimeComponent(props) { var _props$locale, _props$label; const translations = (0, _useTranslation.default)().Time; const { locale: contextLocale } = (0, _react.useContext)(_Context.default); const locale = (_props$locale = props.locale) !== null && _props$locale !== void 0 ? _props$locale : contextLocale; const toInput = (0, _react.useCallback)(value => { if (!value) { return undefined; } const parts = value.split(':'); if (parts.length < 2) { return value; } const [hours, minutes, seconds] = parts; if (hours === '24') { return seconds ? `${hours}:${minutes}:${seconds}` : `${hours}:${minutes}`; } const date = new Date(1970, 0, 1); date.setHours(Number(hours), Number(minutes), Number(seconds) || 0); const options = { hour: '2-digit', minute: '2-digit', ...(seconds ? { second: '2-digit' } : {}) }; return new Intl.DateTimeFormat(locale, options).format(date); }, [locale]); const stringProps = { ...props, label: (_props$label = props.label) !== null && _props$label !== void 0 ? _props$label : translations.label, toInput }; return (0, _jsxRuntime.jsx)(_index.default, { ...stringProps }); } (0, _withComponentMarkers.default)(TimeComponent, { _supportsSpacingProps: true }); var _default = exports.default = TimeComponent; //# sourceMappingURL=Time.js.map