@bootstrap-styled/ra-ui
Version:
UI components for react-admin
82 lines (64 loc) • 3.17 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.NumberField = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _get = _interopRequireDefault(require("lodash/get"));
var _pure = _interopRequireDefault(require("recompose/pure"));
var _classnames = _interopRequireDefault(require("classnames"));
var _styledComponents = _interopRequireDefault(require("styled-components"));
var _sanitizeRestProps = _interopRequireDefault(require("./sanitizeRestProps"));
var NumberFieldBs = _styledComponents.default.span.withConfig({
displayName: "NumberField__NumberFieldBs",
componentId: "sc-1p7ax6v-0"
})(["color:rgba(0,0,0,0.87);font-size:0.875rem;font-weight:400;line-height:1.46429em;"]);
var hasNumberFormat = !!((typeof Intl === "undefined" ? "undefined" : (0, _typeof2.default)(Intl)) === 'object' && Intl && typeof Intl.NumberFormat === 'function');
var NumberField = function NumberField(_ref) {
var className = _ref.className,
record = _ref.record,
source = _ref.source,
locales = _ref.locales,
options = _ref.options,
textAlign = _ref.textAlign,
rest = (0, _objectWithoutProperties2.default)(_ref, ["className", "record", "source", "locales", "options", "textAlign"]);
if (!record) return null;
var value = (0, _get.default)(record, source);
if (value == null) return null;
if (!hasNumberFormat) {
return _react.default.createElement(NumberFieldBs, (0, _extends2.default)({
className: (0, _classnames.default)('text-right', className)
}, (0, _sanitizeRestProps.default)(rest)), value);
}
return _react.default.createElement(NumberFieldBs, (0, _extends2.default)({
className: (0, _classnames.default)('text-right', className)
}, (0, _sanitizeRestProps.default)(rest)), value.toLocaleString(locales, options));
};
exports.NumberField = NumberField;
NumberField.propTypes = {
addLabel: _propTypes.default.bool,
basePath: _propTypes.default.string,
className: _propTypes.default.string,
cellClassName: _propTypes.default.string,
headerClassName: _propTypes.default.string,
label: _propTypes.default.string,
locales: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
options: _propTypes.default.object,
record: _propTypes.default.object,
textAlign: _propTypes.default.string,
sortBy: _propTypes.default.string,
source: _propTypes.default.string.isRequired
};
NumberField.displayName = 'NumberField';
var ComposedNumberField = (0, _pure.default)(NumberField);
ComposedNumberField.defaultProps = {
addLabel: true,
textAlign: 'right'
};
var _default = ComposedNumberField;
exports.default = _default;