UNPKG

react-fuzzy-toggle

Version:
1 lines 5.52 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):"object"==typeof exports?exports.ReactFuzzyToggle=t(require("react")):e.ReactFuzzyToggle=t(e.React)}("undefined"!=typeof self?self:this,function(e){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var a=t[o]={i:o,l:!1,exports:{}};return e[o].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:o})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){e.exports=n(1)},function(e,t,n){"use strict";var o=n(2).default;e.exports={FuzzyToggle:o}},function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});var o,a=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),r=n(4),s=(o=r,o&&o.__esModule?o:{default:o});var i="undefined"!=typeof window?window:e,u=i.requestAnimationFrame?i.requestAnimationFrame.bind(i):function(e){return i.setTimeout(e,16)},l=i.cancelAnimationFrame?i.cancelAnimationFrame.bind(i):i.clearInterval.bind(i),c={EMPTY:"EMPTY",FULL:"FULL",DECREASING:"DECREASING",INCREASING:"INCREASING"},f={isFuzzy:function(e){return e===c.INCREASING||e===c.DECREASING},clamp:function(e){var t=e.value,n=e.max,o=void 0===n?1:n,a=e.min,r=void 0===a?0:a;return t>o?o:t<r?r:t},now:function(){return(new Date).getTime()},sanitizeDuration:function(e){return Math.max(0,parseInt(+e,10)||0)}},p=function(e){!function(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)}(t,s.default.Component);function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.onFull=function(){n.props.onFull&&n.props.onFull({hasReversed:n.state.hasReversed})},n.onEmpty=function(){n.props.onEmpty&&n.props.onEmpty({hasReversed:n.state.hasReversed})},n.onIncreasing=function(){n.props.onIncreasing&&n.props.onIncreasing({range:n.state.range,hasReversed:n.state.hasReversed})},n.onDecreasing=function(){n.props.onDecreasing&&n.props.onDecreasing({range:n.state.range,hasReversed:n.state.hasReversed})},n.onToggle=function(){var e=function(e){var t=e.toggleState,o=e.hasReversed,a=void 0!==o&&o,r=f.now();if(n._state_.toggleState=t,n._state_.hasReversed=a,a){var s=n._state_.startTime,i=f.sanitizeDuration(n.props.duration),u=Math.min(i,r-s),l=Math.max(0,i-u);n._state_.startTime=r-l}else n._state_.startTime=r;n.setState({toggleState:n._state_.toggleState,hasReversed:n._state_.hasReversed,isFuzzy:f.isFuzzy(n._state_.toggleState)})},t=function(){n.onIncreasing(),n.increaseEvent()},o=function(){n.onDecreasing(),n.decreaseEvent()};n._state_.toggleState===c.FULL?(e({toggleState:c.DECREASING}),o()):n._state_.toggleState===c.EMPTY?(e({toggleState:c.INCREASING}),t()):n._state_.toggleState===c.INCREASING?(e({toggleState:c.DECREASING,hasReversed:!0}),o()):n._state_.toggleState===c.DECREASING&&(e({toggleState:c.INCREASING,hasReversed:!0}),t())},n.setToEmptyState=function(){n.setState({range:0,toggleState:c.EMPTY,isFuzzy:!1}),n._state_.toggleState=c.EMPTY,n.onEmpty()},n.decreaseEvent=function(){if(n._state_.toggleState===c.DECREASING){var e=f.sanitizeDuration(n.props.duration);if(e<=0)n.setToEmptyState();else{var t=n._state_.startTime,o=Math.min(e,f.now()-t),a=f.clamp({value:1-o/e});n.setState({range:a}),o<e?n._state_.timeout=n.nextTick(n.decreaseEvent):n.setToEmptyState()}}},n.setToFullState=function(){n.setState({range:1,toggleState:c.FULL,isFuzzy:!1}),n._state_.toggleState=c.FULL,n.onFull()},n.increaseEvent=function(){if(n._state_.toggleState===c.INCREASING){var e=f.sanitizeDuration(n.props.duration);if(e<=0)n.setToFullState();else{var t=n._state_.startTime,o=Math.min(e,f.now()-t),a=f.clamp({value:o/e});n.setState({range:a}),o<e?n.nextTick(n.increaseEvent):n.setToFullState()}}},n.nextTick=function(e){n._state_.timeout=u(e)},n._state_={toggleState:n.props.isEmpty?c.EMPTY:c.FULL,hasReversed:!1},n.state={toggleState:n._state_.toggleState,hasReversed:n._state_.hasReversed,range:n.props.isEmpty?0:1,isFuzzy:!1},n}return a(t,[{key:"render",value:function(){return this.props.render({onToggle:this.onToggle,toggleState:this.state.toggleState,isFuzzy:f.isFuzzy(this.state.toggleState),range:this.state.range,hasReversed:this.state.hasReversed})}},{key:"componentWillUnmount",value:function(){l(this._state_.timeout)}}]),t}();p.defaultProps={duration:300,isEmpty:!1,onFull:null,onEmpty:null,onDecreasing:null},t.default=p}).call(t,n(3))},function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(t,n){t.exports=e}])});