@react-awesome-query-builder/fluent
Version:
User-friendly query builder for React. Fluent 8 widgets
66 lines • 2.09 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
var _excluded = ["width"];
import React from "react";
import { Slider, TextField } from "@fluentui/react";
export default (function (props) {
var config = props.config,
placeholder = props.placeholder,
customProps = props.customProps,
value = props.value,
setValue = props.setValue,
min = props.min,
max = props.max,
step = props.step,
marks = props.marks,
readonly = props.readonly;
var defaultSliderWidth = config.settings.defaultSliderWidth;
var _ref = customProps || {},
width = _ref.width,
rest = _objectWithoutProperties(_ref, _excluded);
var customInputProps = rest.input || {};
var customSliderProps = rest.slider || rest;
var onSliderChange = function onSliderChange(newValue) {
if (newValue === "" || newValue === null) newValue = undefined;else newValue = Number(newValue);
setValue(newValue);
};
var onInputChange = function onInputChange(e, newValue) {
if (newValue === "" || newValue === null) newValue = undefined;else newValue = Number(newValue);
setValue(newValue);
};
var InputCmp = /*#__PURE__*/React.createElement(TextField, _extends({
type: "number",
style: {
width: "auto"
},
value: value,
min: min,
max: max,
step: step,
placeholder: placeholder,
disabled: readonly,
onChange: onInputChange
}, customInputProps));
var SliderCmp = /*#__PURE__*/React.createElement(Slider, _extends({
min: min,
max: max,
step: step,
value: value,
disabled: readonly,
marks: marks,
showValue: false,
onChange: onSliderChange
}, customSliderProps));
var stylesWrapper = {
display: "flex",
flexDirection: "row"
};
var stylesSliderWrapper = {
width: width || defaultSliderWidth
};
return /*#__PURE__*/React.createElement("div", {
style: stylesWrapper
}, InputCmp, /*#__PURE__*/React.createElement("div", {
style: stylesSliderWrapper
}, SliderCmp));
});