UNPKG

@massds/mayflower-react

Version:

React versions of Mayflower design system UI components

106 lines (81 loc) 4.07 kB
"use strict"; exports.__esModule = true; exports["default"] = void 0; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _index = _interopRequireDefault(require("../Input/index.js")); var _index2 = _interopRequireDefault(require("../CompoundSlider/index.js")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var InputSlider = function InputSlider(props) { var axis = props.axis, max = props.max, min = props.min, step = props.step, ticks = props.ticks, onChange = props.onChange, onUpdate = props.onUpdate, domain = props.domain, skipped = props.skipped, displayValueFormat = props.displayValueFormat, inputProps = _objectWithoutPropertiesLoose(props, ["axis", "max", "min", "step", "ticks", "onChange", "onUpdate", "domain", "skipped", "displayValueFormat"]); var sliderProps = { axis: axis, max: max, min: min, step: step, defaultValue: props.defaultValue, onChange: onChange, onUpdate: onUpdate, domain: domain, skipped: skipped, displayValueFormat: displayValueFormat }; var id = inputProps.id, disabled = inputProps.disabled; sliderProps.id = id; sliderProps.ticks = new Map(ticks); sliderProps.disabled = disabled; return /*#__PURE__*/_react["default"].createElement(_index["default"], inputProps, /*#__PURE__*/_react["default"].createElement(_index2["default"], sliderProps)); }; InputSlider.propTypes = process.env.NODE_ENV !== "production" ? { /** Whether the label should be hidden or not */ hiddenLabel: _propTypes["default"].bool, /** The label text for the input field */ labelText: _propTypes["default"].string.isRequired, /** The unique ID for the input field */ id: _propTypes["default"].string.isRequired, /** Custom change function */ onChange: _propTypes["default"].func, /** Custom change function */ onUpdate: _propTypes["default"].func, /** Default input text value */ defaultValue: _propTypes["default"].string, /** Max value for the field. */ max: _propTypes["default"].number.isRequired, /** Min value for the field. */ min: _propTypes["default"].number.isRequired, /** This controls how much sliding the handle increments/decrements the value of the slider. */ step: _propTypes["default"].number, /** An array where each entry is an array of [key,value] pairs. The key (number inclusively between min and max) and value (label to display at the key) are used for displaying tick marks. */ ticks: _propTypes["default"].arrayOf(_propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number])), /** The direction for the slider, where x is horizontal and y is vertical. */ axis: _propTypes["default"].oneOf(['x', 'y']), /** Disables the slider if true. */ disabled: _propTypes["default"].bool, /** Whether input is required or not */ required: _propTypes["default"].bool, /** The range of numbers, inclusively, for the slider to fall between. First number is the min and second number is the max. */ domain: _propTypes["default"].arrayOf(_propTypes["default"].number), /** Whether to skip the slider with keyboard interaction and hide the slider on screen readers. */ skipped: _propTypes["default"].bool, /** Display the value of the slider based. If null, don't display. If equals percentage, format the value in percentage. */ displayValueFormat: _propTypes["default"].oneOf(['percentage', 'value', null]) } : {}; InputSlider.defaultProps = { defaultValue: 0, disabled: false }; var _default = InputSlider; exports["default"] = _default; module.exports = exports.default;