@appbuckets/react-ui-forms
Version:
An utilities package to manage and create Form using AppBuckets ReactUI
95 lines (88 loc) • 2.41 kB
JavaScript
;
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;