From add4a83647563dd15c13dcab84d96547a4f2df01 Mon Sep 17 00:00:00 2001 From: davidchin Date: Tue, 29 Sep 2015 23:03:09 +1000 Subject: [PATCH] Release v0.2.3 --- dist/react-input-range.js | 82 +++++++++++++++++++++++------------ dist/react-input-range.min.js | 2 +- package.json | 2 +- 3 files changed, 57 insertions(+), 29 deletions(-) diff --git a/dist/react-input-range.js b/dist/react-input-range.js index c0e7531..0627999 100644 --- a/dist/react-input-range.js +++ b/dist/react-input-range.js @@ -477,6 +477,8 @@ var _react2 = _interopRequireDefault(_react); var _InputRangeUtil = require('InputRangeUtil'); +_react2['default'].initializeTouchEvents(true); + var InputRangeSlider = (function (_React$Component) { _inherits(InputRangeSlider, _React$Component); @@ -487,7 +489,7 @@ var InputRangeSlider = (function (_React$Component) { this.state = {}; - (0, _InputRangeUtil.autobind)(['handleClick', 'handleMouseDown', 'handleMouseUp', 'handleMouseMove', 'handleKeyDown'], this); + (0, _InputRangeUtil.autobind)(['handleClick', 'handleMouseDown', 'handleMouseUp', 'handleMouseMove', 'handleTouchStart', 'handleTouchEnd', 'handleTouchMove', 'handleKeyDown'], this); } _createClass(InputRangeSlider, [{ @@ -513,6 +515,11 @@ var InputRangeSlider = (function (_React$Component) { this.setState({ style: style }); } + }, { + key: 'handleClick', + value: function handleClick(event) { + event.preventDefault(); + } }, { key: 'handleMouseDown', value: function handleMouseDown() { @@ -530,15 +537,35 @@ var InputRangeSlider = (function (_React$Component) { document.removeEventListener('mouseup', this.handleMouseUp); } }, { - key: 'handleClick', - value: function handleClick(event) { + key: 'handleMouseMove', + value: function handleMouseMove(event) { + this.props.onSliderMouseMove(this, event); + } + }, { + key: 'handleTouchStart', + value: function handleTouchStart(event) { + var document = this.document; + event.preventDefault(); + + document.addEventListener('touchmove', this.handleTouchMove); + document.addEventListener('touchend', this.handleTouchEnd); } }, { - key: 'handleMouseMove', - value: function handleMouseMove(event) { + key: 'handleTouchMove', + value: function handleTouchMove(event) { this.props.onSliderMouseMove(this, event); } + }, { + key: 'handleTouchEnd', + value: function handleTouchEnd() { + var document = this.document; + + event.preventDefault(); + + document.removeEventListener('touchmove', this.handleTouchMove); + document.removeEventListener('touchend', this.handleTouchEnd); + } }, { key: 'handleKeyDown', value: function handleKeyDown(event) { @@ -572,6 +599,7 @@ var InputRangeSlider = (function (_React$Component) { onClick: this.handleClick, onKeyDown: this.handleKeyDown, onMouseDown: this.handleMouseDown, + onTouchStart: this.handleTouchStart, role: 'slider' }) ); } @@ -627,6 +655,8 @@ var _react2 = _interopRequireDefault(_react); var _InputRangeUtil = require('InputRangeUtil'); +_react2['default'].initializeTouchEvents(true); + var InputRangeTrack = (function (_React$Component) { _inherits(InputRangeTrack, _React$Component); @@ -637,7 +667,7 @@ var InputRangeTrack = (function (_React$Component) { this.state = {}; - (0, _InputRangeUtil.autobind)(['handleMouseDown'], this); + (0, _InputRangeUtil.autobind)(['handleMouseDown', 'handleTouchStart'], this); } _createClass(InputRangeTrack, [{ @@ -669,7 +699,10 @@ var InputRangeTrack = (function (_React$Component) { key: 'handleMouseDown', value: function handleMouseDown(event) { var trackClientRect = this.clientRect; - var clientX = event.clientX; + + var _ref = event.touches ? event.touches[0] : event; + + var clientX = _ref.clientX; var position = { x: clientX - trackClientRect.left, @@ -678,6 +711,13 @@ var InputRangeTrack = (function (_React$Component) { this.props.onTrackMouseDown(this, position); } + }, { + key: 'handleTouchStart', + value: function handleTouchStart(event) { + event.preventDefault(); + + this.handleMouseDown(event); + } }, { key: 'render', value: function render() { @@ -687,6 +727,7 @@ var InputRangeTrack = (function (_React$Component) { 'div', { onMouseDown: this.handleMouseDown, + onTouchStart: this.handleTouchStart, className: 'InputRange-track InputRange-track--container' }, _react2['default'].createElement('div', { style: activeTrackStyle, @@ -727,26 +768,8 @@ function clamp(value, min, max) { return Math.min(Math.max(value, min), max); } -function assign(target) { - var sources = Array.prototype.slice.call(arguments, 1); - - sources.forEach(function (source) { - if (!source) { - return; - } - - var keys = Object.keys(source); - - keys.forEach(function (key) { - target[key] = source[key]; - }); - }); - - return target; -} - function extend() { - return assign.apply(Object, arguments); + return Object.assign.apply(Object, arguments); } function captialize(string) { @@ -859,8 +882,13 @@ var InputRangeValueTransformer = (function () { value: function positionFromEvent(event) { var trackClientRect = this.component.trackClientRect; var length = trackClientRect.width; + + var _ref = event.touches ? event.touches[0] : event; + + var clientX = _ref.clientX; + var position = { - x: (0, _InputRangeUtil.clamp)(event.clientX - trackClientRect.left, 0, length), + x: (0, _InputRangeUtil.clamp)(clientX - trackClientRect.left, 0, length), y: 0 }; diff --git a/dist/react-input-range.min.js b/dist/react-input-range.min.js index 020dc90..a1985eb 100644 --- a/dist/react-input-range.min.js +++ b/dist/react-input-range.min.js @@ -1 +1 @@ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.InputRange=e()}}(function(){return function e(t,n,a){function o(i,u){if(!n[i]){if(!t[i]){var s="function"==typeof require&&require;if(!u&&s)return s(i,!0);if(r)return r(i,!0);var l=new Error("Cannot find module '"+i+"'");throw l.code="MODULE_NOT_FOUND",l}var p=n[i]={exports:{}};t[i][0].call(p.exports,function(e){var n=t[i][1][e];return o(n?n:e)},p,p.exports,e,t,n,a)}return n[i].exports}for(var r="function"==typeof require&&require,i=0;i=e.props.step}function l(e,t){return t===e.refs.inputRangeSliderMin?"min":"max"}function p(e,t){if(e.isMultiValue){var n=x.distanceTo(t,e.state.positions.min),a=x.distanceTo(t,e.state.positions.max);if(a>n)return"min"}return"max"}function c(e){return e.isMultiValue?["max","min"]:["max"]}Object.defineProperty(n,"__esModule",{value:!0});var f=function(){function e(e,t){for(var n=0;n=t?new Error("`minValue` must be smaller than `maxValue`"):n>=t?new Error("`maxValue` must be larger than `minValue`"):n>o||o>t?new Error("`value` must be within `minValue` and `maxValue`"):void 0:new Error("`values` must be an object of numbers"):new Error("`value` must be a number")}Object.defineProperty(n,"__esModule",{value:!0}),n.maxMinValuePropType=o;var r=e("InputRangeUtil")},{InputRangeUtil:5}],3:[function(e,t,n){(function(a){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(n,"__esModule",{value:!0});var u=function(){function e(e,t){for(var n=0;nn;n++)if(!t(e[n]))return!1;return!0}function p(e,t,n){if("object"!=typeof e)return!1;for(var a=n||Object.keys(e),o=0,r=a.length;r>o;o++){var i=a[o];if(!t(e[i]))return!1}return!0}function c(e,t){e.forEach(function(e){t[e]=t[e].bind(t)})}Object.defineProperty(n,"__esModule",{value:!0});var f={arrayOf:l,autobind:c,captialize:i,clamp:a,distanceTo:u,extend:r,isNumber:s,objectOf:p};n["default"]=f,t.exports=n["default"]},{}],6:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n=e.props.step}function l(e,t){return t===e.refs.inputRangeSliderMin?"min":"max"}function p(e,t){if(e.isMultiValue){var n=P.distanceTo(t,e.state.positions.min),a=P.distanceTo(t,e.state.positions.max);if(a>n)return"min"}return"max"}function c(e){return e.isMultiValue?["max","min"]:["max"]}Object.defineProperty(n,"__esModule",{value:!0});var f=function(){function e(e,t){for(var n=0;n=t?new Error("`minValue` must be smaller than `maxValue`"):n>=t?new Error("`maxValue` must be larger than `minValue`"):n>o||o>t?new Error("`value` must be within `minValue` and `maxValue`"):void 0:new Error("`values` must be an object of numbers"):new Error("`value` must be a number")}Object.defineProperty(n,"__esModule",{value:!0}),n.maxMinValuePropType=o;var r=e("InputRangeUtil")},{InputRangeUtil:5}],3:[function(e,t,n){(function(a){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(n,"__esModule",{value:!0});var u=function(){function e(e,t){for(var n=0;nn;n++)if(!t(e[n]))return!1;return!0}function l(e,t,n){if("object"!=typeof e)return!1;for(var a=n||Object.keys(e),o=0,r=a.length;r>o;o++){var i=a[o];if(!t(e[i]))return!1}return!0}function p(e,t){e.forEach(function(e){t[e]=t[e].bind(t)})}Object.defineProperty(n,"__esModule",{value:!0});var c={arrayOf:s,autobind:p,captialize:r,clamp:a,distanceTo:i,extend:o,isNumber:u,objectOf:l};n["default"]=c,t.exports=n["default"]},{}],6:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n