--- /dev/null
+import React from 'react';
+import './sq-input-range-slider.scss';
+
+export default class SqInputRangeSlider extends React.Component {
+ constructor(props){
+ super(props);
+ this.state = {};
+ this.state.position = {
+ left: 50
+ };
+ this.className = "SqRangeInput";
+ }
+
+ updateHandle = (e) => {
+ this.props.onChange(e.target.valueAsNumber);
+ }
+
+ render() {
+ const {vertical, className, min, max, step, width, disabled, ...props} = this.props;
+ let class_name = this.className;
+ let dataListHTML = null;
+ let dataListOptions = null;
+ let dataListID = null;
+ let inputStyle = {};
+ let inputContainer = {
+ };
+ let style = {
+ width: width + 'px'
+ }
+ if(vertical) {
+ class_name += ' ' + this.className + '--vertical';
+ style.position = 'absolute';
+ style.left = (width * -1 + 32) + 'px';
+ style.width = width + 'px';
+ inputContainer.margin = '0 10px';
+ inputContainer.width = '70px';
+ inputContainer.height = (width + 40) + 'px';
+ inputContainer.background = 'white';
+ inputContainer.border = '1px solid #ccc';
+ } else {
+ class_name += ' ' + this.className + '--horizontal';
+ // style.position = 'absolute';
+ // style.top = 12 + 'px';
+ inputContainer.margin = '10px 0px';
+ inputContainer.height = '70px';
+ inputContainer.width = (width + 40) + 'px';
+ inputContainer.background = 'white';
+ inputContainer.border = '1px solid #ccc';
+ }
+ return (
+ <div className={this.className + '--container'} style={inputContainer}>
+ <div className={class_name + ' ' + className + (disabled ? ' is-disabled' : '')}>
+ <input
+ style={style}
+ orient= {vertical ? "vertical" : "horizontal"}
+ type="range"
+ onChange={this.updateHandle}
+ ref="range"
+ max={max}
+ min={min}
+ step={step}
+ disabled={disabled}
+ />
+ </div>
+ </div>
+ )
+ }
+}
+
+SqInputRangeSlider.defaultProps = {
+ //Horizontal vs Vertical Slider
+ vertical: false,
+ //Override classes
+ className: '',
+ min:0,
+ max:100,
+ step: 1,
+ //width/length in px
+ width:100,
+ disabled: false,
+ onChange: function(value) {
+ console.log(value);
+ }
+}