react-widgets
Version:
An à la carte set of polished, extensible, and accessible inputs built for React
64 lines (41 loc) • 1.87 kB
JavaScript
;
var babelHelpers = require('../util/babelHelpers.js');
exports.__esModule = true;
exports['default'] = simpleNumber;
var _configure = require('../configure');
var _configure2 = babelHelpers.interopRequireDefault(_configure);
var _formatNumberWithString = require('format-number-with-string');
var _formatNumberWithString2 = babelHelpers.interopRequireDefault(_formatNumberWithString);
var _deconstructNumberFormat = require('deconstruct-number-format');
var _deconstructNumberFormat2 = babelHelpers.interopRequireDefault(_deconstructNumberFormat);
function simpleNumber() {
var localizer = {
formats: {
'default': '-#,##0.'
},
parse: function parse(value, format) {
if (format) {
var data = _deconstructNumberFormat2['default'](format);
if (data.negativeLeftPos !== -1) value = value.substr(data.negativeLeftPos + 1);
if (data.negativeRightPos !== -1) value = value.substring(0, data.negativeRightPos);
value = value.replace(data.prefix, '').replace(data.suffix, '');
var halves = value.split(data.decimalChar);
if (data.integerSeperator) halves[0] = halves[0].replace(new RegExp('\\' + data.integerSeperator, 'g'));
if (data.decimalsSeparator) halves[1] = halves[1].replace(new RegExp('\\' + data.decimalsSeparator, 'g'));
value = halves.join(data.decimalChar);
}
var number = parseFloat(value);
return number;
},
format: function format(value, _format) {
return _formatNumberWithString2['default'](value, _format);
},
precision: function precision(format) {
var data = _deconstructNumberFormat2['default'](format);
return data.maxRight !== -1 ? data.maxRight : null;
}
};
_configure2['default'].setNumberLocalizer(localizer);
return localizer;
}
module.exports = exports['default'];