UNPKG

@react-awesome-query-builder/antd

Version:
110 lines 3.33 kB
import _extends from "@babel/runtime/helpers/extends"; import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties"; var _excluded = ["width"]; import React, { PureComponent, useCallback, useMemo } from "react"; import PropTypes from "prop-types"; import { Slider, InputNumber, Col } from "antd"; var SliderWidget = /*#__PURE__*/React.memo(function (_ref) { var setValue = _ref.setValue, placeholder = _ref.placeholder, config = _ref.config, field = _ref.field, value = _ref.value, customProps = _ref.customProps, fieldDefinition = _ref.fieldDefinition, readonly = _ref.readonly, errorMessage = _ref.errorMessage, min = _ref.min, max = _ref.max, step = _ref.step, marks = _ref.marks; var _config$settings = config.settings, renderSize = _config$settings.renderSize, showErrorMessage = _config$settings.showErrorMessage, defaultSliderWidth = _config$settings.defaultSliderWidth; var _ref2 = customProps || {}, width = _ref2.width, rest = _objectWithoutProperties(_ref2, _excluded); var customInputProps = useMemo(function () { return rest.input || {}; }, [customProps]); var customSliderProps = useMemo(function () { return rest.slider || rest; }, [customProps]); var tooltipFormatter = useCallback(function (val) { return val != undefined ? val.toString() : undefined; }, []); var tooltip = useMemo(function () { return { formatter: tooltipFormatter }; }, [tooltipFormatter]); var handleChange = useCallback(function (val) { if (val === "") val = undefined; setValue(val); }, [setValue]); var aValue = value; if (aValue == undefined) aValue = null; var sliderValue = aValue == null && min ? min : aValue; return /*#__PURE__*/React.createElement(Col, { style: { display: "inline-flex", flexWrap: "wrap" } }, /*#__PURE__*/React.createElement(Col, { key: "col-number", style: { "float": "left", marginRight: "5px" } }, /*#__PURE__*/React.createElement(InputNumber, _extends({ key: "input-number", disabled: readonly, size: renderSize, value: aValue, min: min, max: max, step: step, placeholder: placeholder, onChange: handleChange }, customInputProps))), /*#__PURE__*/React.createElement(Col, { key: "col-slider", style: { "float": "left", width: width || defaultSliderWidth } }, /*#__PURE__*/React.createElement(Slider, _extends({ key: "input-slider", disabled: readonly, value: sliderValue, tooltip: tooltip, min: min, max: max, included: true, step: step, marks: marks, onChange: handleChange }, customSliderProps))), /*#__PURE__*/React.createElement(Col, { key: "col-clear", style: { clear: "both" } })); }); SliderWidget.displayName = "SliderWidget"; SliderWidget.propTypes = { setValue: PropTypes.func.isRequired, placeholder: PropTypes.string, config: PropTypes.object.isRequired, field: PropTypes.any, value: PropTypes.number, customProps: PropTypes.object, fieldDefinition: PropTypes.object, readonly: PropTypes.bool, // from fieldSettings: min: PropTypes.number, max: PropTypes.number, step: PropTypes.number, marks: PropTypes.object }; export default SliderWidget;