UNPKG

@appbuckets/react-ui-forms

Version:

An utilities package to manage and create Form using AppBuckets ReactUI

95 lines (88 loc) 2.41 kB
'use strict'; var _tslib = require('../_virtual/_tslib.js'); var React = require('react'); var Input = require('@appbuckets/react-ui/Input'); var createHookedField = require('../utils/createHookedField.js'); function _interopDefaultLegacy(e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; } function _interopNamespace(e) { if (e && e.__esModule) return e; var n = Object.create(null); if (e) { Object.keys(e).forEach(function (k) { if (k !== 'default') { var d = Object.getOwnPropertyDescriptor(e, k); Object.defineProperty( n, k, d.get ? d : { enumerable: true, get: function () { return e[k]; }, } ); } }); } n['default'] = e; return Object.freeze(n); } var React__namespace = /*#__PURE__*/ _interopNamespace(React); var Input__default = /*#__PURE__*/ _interopDefaultLegacy(Input); /* -------- * Component Definition * -------- */ var HookedTimeInput = createHookedField.createHookedField({ displayName: 'HookedTimeInput', Component: function HookedTimeInputComponent(props) { var meta = props.meta, rest = props.rest; return React__namespace.createElement( Input__default['default'], _tslib.__assign({}, rest, meta.appearance, { hint: meta.message, type: 'time', }) ); }, parseValue: function (_a) { var props = _a.props; if ( typeof (props === null || props === void 0 ? void 0 : props.value) !== 'string' || !props.value.length ) { return null; } var _b = _tslib.__read( props.value.split(':').map(function (value) { return Number(value); }), 2 ), hours = _b[0], minutes = _b[1]; return ( (Number.isNaN(hours) ? 0 : hours) * 3600000 + (Number.isNaN(minutes) ? 0 : minutes) * 60000 ); }, formatValue: function (value) { if (typeof value !== 'number') { return ''; } if (value === 0) { return '00:00'; } var minutes = (value % 3600000) / 60000; var hours = Math.trunc((value - minutes) / 3600000); return '' .concat(hours.toString().padStart(2, '0'), ':') .concat(minutes.toString().padStart(2, '0')); }, }); module.exports = HookedTimeInput;