UNPKG

canner

Version:

Build CMS in few lines of code for different data sources

188 lines (158 loc) 6 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); require("antd/lib/input/style"); var _input = _interopRequireDefault(require("antd/lib/input")); require("antd/lib/select/style"); var _select = _interopRequireDefault(require("antd/lib/select")); var _react = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _antd = require("antd"); var _isNaN = _interopRequireDefault(require("lodash/isNaN")); var _isEmpty = _interopRequireDefault(require("lodash/isEmpty")); var _reactIntl = require("react-intl"); var _class, _class2, _temp; var Option = _select.default.Option; var InputGroup = _input.default.Group; var operators = [{ symbol: '>', value: 'gt' }, { symbol: '<', value: 'lt' }, { symbol: '=', value: 'eq' }, { symbol: '≥', value: 'gte' }, { symbol: '≤', value: 'lte' }]; var NumberRangeFilter = (0, _reactIntl.injectIntl)(_class = (_temp = _class2 = /*#__PURE__*/ function (_Component) { (0, _inherits2.default)(NumberRangeFilter, _Component); function NumberRangeFilter(props) { var _this; (0, _classCallCheck2.default)(this, NumberRangeFilter); _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(NumberRangeFilter).call(this, props)); _this.state = { input: '', lowInput: '', operator: 'gt' }; _this.onInputLow = _this.onInputLow.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this))); _this.onInput = _this.onInput.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this))); _this.changeOperator = _this.changeOperator.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this))); _this.onChange = _this.onChange.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this))); return _this; } (0, _createClass2.default)(NumberRangeFilter, [{ key: "onInputLow", value: function onInputLow(e) { var value = e.target.value; var reg = /^-?(0|[1-9][0-9]*)(\.[0-9]*)?$/; if (!(0, _isNaN.default)(value) && reg.test(value) || value === '' || value === '-') { this.setState({ lowInput: value }, this.onChange); } } }, { key: "onInput", value: function onInput(e) { var value = e.target.value; var reg = /^-?(0|[1-9][0-9]*)(\.[0-9]*)?$/; if (!(0, _isNaN.default)(value) && reg.test(value) || value === '' || value === '-') { this.setState({ input: value }, this.onChange); } } }, { key: "changeOperator", value: function changeOperator(val) { this.setState({ operator: val }, this.onChange); } }, { key: "onChange", value: function onChange() { var _this$state = this.state, lowInput = _this$state.lowInput, input = _this$state.input, operator = _this$state.operator; var _this$props = this.props, name = _this$props.name, onChange = _this$props.onChange; if (operator === '$between') { onChange({ name: { $gt: (0, _isEmpty.default)(lowInput) ? -Infinity : Number(lowInput), $lt: (0, _isEmpty.default)(input) ? Infinity : Number(input) } }); } else { onChange((0, _isEmpty.default)(input) ? undefined : (0, _defineProperty2.default)({}, name, (0, _defineProperty2.default)({}, operator, Number(input)))); } } }, { key: "render", value: function render() { var _this$props2 = this.props, intl = _this$props2.intl, index = _this$props2.index; var _this$state2 = this.state, operator = _this$state2.operator, input = _this$state2.input; var placeholder = intl.formatMessage({ id: 'query.numberRange.placeholder' }); return _react.default.createElement(InputGroup, { compact: true }, _react.default.createElement(_select.default, { style: { width: 60 }, value: operator, onChange: this.changeOperator, "data-testid": "number-filter-".concat(index, "-select") }, operators.map(function (operator) { return _react.default.createElement(Option, { key: operator.value, value: operator.value }, operator.symbol); })), _react.default.createElement(_input.default, { style: { width: 120 }, "data-testid": "number-filter-".concat(index, "-input"), placeholder: placeholder, value: input, onChange: this.onInput })); } }]); return NumberRangeFilter; }(_react.Component), (0, _defineProperty2.default)(_class2, "propTypes", { onChange: _propTypes.default.func, name: _propTypes.default.string, label: _propTypes.default.string, intl: _propTypes.default.object, index: _propTypes.default.number }), _temp)) || _class; exports.default = NumberRangeFilter;