UNPKG

react-number-field

Version:
1 lines 15.4 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.ReactNumberField=t(require("React")):e.ReactNumberField=t(e.React)}(this,function(e){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(){}function i(e){return e?e.charAt(0).toUpperCase()+e.substring(1):""}function o(e){return e+="",-1===e.indexOf(".")}function a(e,t){var n=t.minValue;return null==n||""===e?!0:e>=n}function s(e,t){var n=t.maxValue;return null==n||""===e?!0:n>=e}function l(e,t){if(""===e)return!0;if(t.numbersOnly){var n=g(e);return n||t.allowNegative&&"-"===e||t.allowFloat&&"."===e||t.allowNegative&&t.allowFloat&&"-."==e}}function u(e,t){return t.allowFloat===!1?o(e)&&g(e)&&m(1*e):void 0}function p(e,t){return t.allowNegative===!1?g(e)&&1*e>=0:void 0}{var c=n(7),f=n(21),d=n(5),h=n(8),v=n(31),y=n(30),g=h.numeric,m=h.int;h.float}e.exports=c.createClass({displayName:"ReactNumberField",propTypes:{onInvalid:c.PropTypes.func,validate:c.PropTypes.func,stepDelay:c.PropTypes.number,minValue:c.PropTypes.oneOfType([c.PropTypes.number,c.PropTypes.string]),maxValue:c.PropTypes.oneOfType([c.PropTypes.number,c.PropTypes.string])},getDefaultProps:function(){return{spinOnArrowKeys:!0,numbersOnly:!0,minValue:null,maxValue:null,step:1,shiftStep:10,requireFocusOnStep:!0,stepOnWheel:!0,allowNegative:!0,allowFloat:!0,stepDelay:40,validations:[l,u,p,a,s]}},getInitialState:function(){return{defaultValue:this.props.defaultValue}},getSelectedRange:function(e){return{start:v(e),end:y(e)}},getValidationFn:function(e){var t=[].concat(e.validations);return"function"==typeof e.validate&&t.push(e.validate),function(e,n){return t.reduce(function(t,r){return t&&r(e,n)!==!1},!0)}},render:function(){var e=this.prepareProps(this.props);return c.createElement(f,c.__spread({ref:"field"},e))},prepareProps:function(e){var t={};d(t,e),t.value=this.prepareValue(t,this.state);var n=this.validationFn=this.getValidationFn(e);return t.onWheel=this.handleWheel,t.onKeyPress=this.handleKeyPress.bind(this,t),t.onKeyDown=this.handleKeyDown,t.validate=n,t.onChange=this.handleChange,t.onBlur=this.handleBlur,t},handleBlur:function(){this.isSpinning()&&this.stopSpin(),(this.props.onBlur||r)(event)},handleChange:function(e,t,n){void 0===this.props.value&&this.setState({defaultValue:e}),(this.props.onChange||r)(e,this.props,n)},getValue:function(){var e=void 0===this.props.value?this.state.defaultValue:this.props.value;return e},prepareValue:function(){return this.getValue()},handleKeyDown:function(e){var t=e.key;if(t){var n="handle"+i(t)+"KeyDown";this[n]&&this[n](e)}},handleArrowDownKeyDown:function(e){this.handleArrowKeySpin(-1,e)},handleArrowUpKeyDown:function(e){this.handleArrowKeySpin(1,e)},handleArrowKeySpin:function(e,t){return this.isSpinning()?void t.preventDefault():void(this.props.spinOnArrowKeys&&!this.isSpinning()&&(this.startSpin(e),t.preventDefault(),window.addEventListener("keyup",this.onSpinKeyUp)))},onSpinKeyUp:function(){this.props.spinOnArrowKeys&&this.stopSpin(),window.removeEventListener("keyup",this.onSpinKeyUp)},handleKeyPress:function(e,t){var n=this.validationFn;if(t.which&&8!=t.which){var r,i=t.target,o=e.value+"",a=this.getSelectedRange(i),s=o.substring(0,a.start),l=o.substring(a.end),u=String.fromCharCode(t.which||t.keyCode),p=s+u+l,c=!0;""!==p&&(r=n(p,e),r||"function"!=typeof e.onInvalid||e.onInvalid(p,e,t)===!1||(c=!1),!r&&c&&t.preventDefault())}},getInput:function(){return this.refs.field.getInput()},isFocused:function(){return this.refs.field.isFocused()},getStepValue:function(e,t,n){n=n||{};var r=this.getValue(),i=e.step;return""===r?0:("string"==typeof r&&(r=parseFloat(r)),n.shiftKey&&e.shiftStep&&(i=e.shiftStep),r+t*i)},stepTo:function(e,t){t=t||{};var n=this.props,r=this.validationFn;if(null!=n.step){var i="function"==typeof n.stepFn?n.stepFn:this.getStepValue,o=i(n,e,t),a=r(o,n);a&&this.notify(o,t.event)}return o},stopSpin:function(){clearInterval(this.spinIntervalId),this.spinIntervalId=null},startSpin:function(e){this.spinIntervalId&&clearInterval(this.spinIntervalId),this.spinIntervalId=setInterval(this.stepTo.bind(this,e),this.props.stepDelay)},isSpinning:function(){return null!=this.spinIntervalId},handleWheel:function(e){var t=this.props;if((t.requireFocusOnStep&&this.isFocused()||!t.requireFocusOnStep)&&t.stepOnWheel&&t.step){e.preventDefault();var n=e.nativeEvent,r=n.wheelDeltaY||n.wheelDelta||-n.deltaY;r=0>r?-1:1,this.stepTo(r,{shiftKey:e.shiftKey,event:e})}},notify:function(e,t){var n=this.refs.field;n.notify(e,t)},focus:function(){this.refs.field.focus()}})},function(e){"use strict";e.exports=function(e){return"number"==typeof e&&isFinite(e)}},function(e,t){(function(t){"use strict";var n;t.document&&(n=t.document.createElement("div")),e.exports=n}).call(t,function(){return this}())},function(e,t,n){"use strict";var r,i=n(4),o=["ms","Moz","Webkit","O"],a=n(2);e.exports=function(e){if(r)return r;for(var t,n,s=0,l=o.length;l>s;s++)if(n=o[s],t=n+i(e),"undefined"!=typeof a.style[t])return r=n}},function(e){"use strict";e.exports=function(e){return e?e.charAt(0).toUpperCase()+e.slice(1):""}},function(e){"use strict";function t(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=Object.assign||function(e){for(var n,r,i=t(e),o=1;o<arguments.length;o++){n=arguments[o],r=Object.keys(Object(n));for(var a=0;a<r.length;a++)i[r[a]]=n[r[a]]}return i}},function(e){"use strict";e.exports={alignItems:1,justifyContent:1,flex:1,flexFlow:1,userSelect:1,transform:1,transition:1,transformOrigin:1,transformStyle:1,transitionProperty:1,transitionDuration:1,transitionTimingFunction:1,transitionDelay:1,borderImage:1,borderImageSlice:1,boxShadow:1,backgroundClip:1,backfaceVisibility:1,perspective:1,perspectiveOrigin:1,animation:1,animationDuration:1,animationName:1,animationDelay:1,animationDirection:1,animationIterationCount:1,animationTimingFunction:1,animationPlayState:1,animationFillMode:1,appearance:1}},function(t){t.exports=e},function(e,t,n){e.exports=n(15)},function(e){"use strict";var t=Object.prototype.toString;e.exports=function(e){return"[object Arguments]"===t.apply(e)||!!e.callee}},function(e){"use strict";e.exports=function(e){return Array.isArray(e)}},function(e){"use strict";e.exports=function(e){return"boolean"==typeof e}},function(e){"use strict";var t=Object.prototype.toString;e.exports=function(e){return"[object Date]"===t.apply(e)}},function(e,t,n){"use strict";var r=n(1);e.exports=function(e){return r(e)&&e===parseFloat(e,10)&&!(e===parseInt(e,10))}},function(e){"use strict";var t=Object.prototype.toString;e.exports=function(e){return"[object Function]"===t.apply(e)}},function(e,t,n){"use strict";e.exports={numeric:n(17),number:n(1),"int":n(16),"float":n(13),string:n(20),"function":n(14),object:n(18),arguments:n(9),"boolean":n(11),date:n(12),regexp:n(19),array:n(10)}},function(e,t,n){"use strict";var r=n(1);e.exports=function(e){return r(e)&&e===parseInt(e,10)}},function(e){"use strict";e.exports=function(e){return!isNaN(parseFloat(e))&&isFinite(e)}},function(e){"use strict";var t=Object.prototype.toString;e.exports=function(e){return"[object Object]"===t.apply(e)}},function(e){"use strict";var t=Object.prototype.toString;e.exports=function(e){return"[object RegExp]"===t.apply(e)}},function(e){"use strict";e.exports=function(e){return"string"==typeof e}},function(e,t,n){"use strict";function r(){}var i=n(5),o=n(7),a=n(27),s={"true":{display:"inline-block"},"false":{cursor:"text",color:"transparent"}},l={displayName:"ReactInputField",propTypes:{validate:o.PropTypes.oneOfType([o.PropTypes.func,o.PropTypes.bool]),isEmpty:o.PropTypes.func,clearTool:o.PropTypes.bool},getInitialState:function(){return{defaultValue:this.props.defaultValue}},getDefaultProps:function(){return{focusOnClick:!0,defaultClearToolStyle:{fontSize:20,paddingRight:5,paddingLeft:5,alignSelf:"center",cursor:"pointer",userSelect:"none",boxSizing:"border-box"},clearToolColor:"#a8a8a8",clearToolOverColor:"#7F7C7C",defaultStyle:{border:"1px solid #a8a8a8",boxSizing:"border-box"},defaultInnerStyle:{userSelect:"none",width:"100%",display:"inline-flex",flexFlow:"row",alignItems:"stretch"},defaultInvalidStyle:{border:"1px solid rgb(248, 144, 144)"},defaultInputStyle:{flex:1,border:0,height:"100%",padding:"6px 2px",outline:"none",boxSizing:"border-box"},defaultInputInvalidStyle:{},emptyValue:"",inputClassName:"",inputProps:null,clearTool:!0,defaultClassName:"z-field",emptyClassName:"z-empty-value",invalidClassName:"z-invalid",toolsPosition:"right"}},render:function(){void 0===this.valid&&(this.valid=!0);var e=this.prepareProps(this.props,this.state);this.valid!==e.valid&&"function"==typeof e.onValidityChange&&setTimeout(function(){e.onValidityChange(e.valid,e.value,e)},0),this.valid=e.valid;var t=this.renderChildren(e,this.state),n=i({},e);return delete n.value,delete n.placeholder,o.createElement("div",o.__spread({},n),o.createElement("div",{style:e.innerStyle},t))},renderChildren:function(e,t){var n=this.renderField(e,t),r=this.renderTools(e,t),i=[n,e.children];return"after"==e.toolsPosition||"right"==e.toolsPosition?i.push.apply(i,r):i=(r||[]).concat(n),"function"==typeof e.renderChildren&&(i=e.renderChildren(i)),i},renderField:function(e){var t=this.prepareInputProps(e);return t.ref="input",e.inputFactory?e.inputFactory(t,e):o.createElement("input",o.__spread({},t))},renderTools:function(e,t){var n=this.renderClearTool(e,t),r=[n];return"function"==typeof e.tools&&(r=e.tools(e,n)),r},renderClearTool:function(e,t){if(e.clearTool&&!e.readOnly&&!e.disabled){var n=!this.isEmpty(e),r=s[n],a=i({},r,this.prepareClearToolStyle(e,t));return n||i(a,r),o.createElement("div",{key:"clearTool",className:"z-clear-tool",onClick:this.handleClearToolClick,onMouseDown:this.handleClearToolMouseDown,onMouseOver:this.handleClearToolOver,onMouseOut:this.handleClearToolOut,style:a},"✖")}},handleClearToolMouseDown:function(e){e.preventDefault()},handleClearToolOver:function(){this.setState({clearToolOver:!0})},handleClearToolOut:function(){this.setState({clearToolOver:!1})},isEmpty:function(e){var t=this.getEmptyValue(e);if("function"==typeof e.isEmpty)return e.isEmpty(e,t);var n=e.value;return null==n&&(n=""),n===t},getEmptyValue:function(e){var t=e.emptyValue;return"function"==typeof t&&(t=t(e)),t},isValid:function(e){var t=e.value,n=!0;return"function"==typeof e.validate&&(n=e.validate(t,e)!==!1),n},getInput:function(){return this.refs.input.getDOMNode()},focus:function(){var e=this.getInput();e&&"function"==typeof e.focus&&e.focus()},handleClick:function(){this.props.focusOnClick&&!this.isFocused()&&this.focus()},handleMouseDown:function(e){(this.props.onMouseDown||r)(e)},handleClearToolClick:function(e){this.notify(this.getEmptyValue(this.props),e)},handleChange:function(e){e.stopPropagation(),this.notify(e.target.value,e)},handleSelect:function(e){e.stopPropagation(),(this.props.onSelect||r)(e)},notify:function(e,t){void 0===this.props.value&&this.setState({defaultValue:e}),(this.props.onChange||r)(e,this.props,t)},prepareProps:function(e,t){var n={};return i(n,e),n.value=this.prepareValue(n,t),n.valid=this.isValid(n),n.onClick=this.handleClick,n.onMouseDown=this.handleMouseDown,n.className=this.prepareClassName(n),n.style=this.prepareStyle(n),n.innerStyle=this.prepareInnerStyle(n),n},getValue:function(){var e=void 0===this.props.value?this.state.defaultValue:this.props.value;return e},prepareValue:function(){return this.getValue()},prepareClassName:function(e){var t=[e.className,e.defaultClassName];return this.isEmpty(e)&&t.push(e.emptyClassName),e.valid||t.push(e.invalidClassName),t.join(" ")},prepareStyle:function(e){var t=i({},e.defaultStyle,e.style);return e.valid||i(t,e.defaultInvalidStyle,e.invalidStyle),t},prepareInnerStyle:function(e){var t=i({},e.defaultInnerStyle,e.innerStyle);return a(t)},prepareInputProps:function(e){var t={className:e.inputClassName};return i(t,e.defaultInputProps,e.inputProps),t.key="field",t.value=e.value,t.placeholder=e.placeholder,t.onChange=this.handleChange,t.onSelect=this.handleSelect,t.style=this.prepareInputStyle(e),t.onFocus=this.handleFocus,t.onBlur=this.handleBlur,t.name=e.name,t.disabled=e.disabled,t.readOnly=e.readOnly,t},handleFocus:function(){this._focused=!0},handleBlur:function(){this._focused=!1},isFocused:function(){return!!this._focused},prepareInputStyle:function(e){var t=e.inputProps?e.inputProps.style:null,n=i({},e.defaultInputStyle,e.inputStyle,t);return e.valid||i(n,e.defaultInputInvalidStyle,e.inputInvalidStyle),a(n)},prepareClearToolStyle:function(e,t){var n,r,o;t&&t.clearToolOver&&(n=e.defaultClearToolOverStyle,r=e.clearToolOverStyle),e.clearToolColor&&(o={color:e.clearToolColor},t&&t.clearToolOver&&e.clearToolOverColor&&(o={color:e.clearToolOverColor}));var a=i({},e.defaultClearToolStyle,n,o,e.clearToolStyle,r);return a}},u=o.createClass(l);u.descriptor=l,e.exports=u},function(e,t,n){"use strict";var r=n(4),i=n(3),o=n(6);e.exports=function(e){if(!o[e])return e;var t=i(e);return t?t+r(e):e}},function(e,t,n){"use strict";var r=n(3),i=n(22),o=n(2),a={},s=o.style;e.exports=function(e,t){var n=e+": "+t;if(a[n])return a[n];var l,u,p;return e in s||(l=r("appearance"),l&&(u=i(e,t),p="-"+l.toLowerCase()+"-"+t,u in s&&(o.style[u]="",o.style[u]=p,""!==o.style[u]&&(t=p)))),a[n]=t,t}},function(e,t,n){"use strict";var r=n(25),i=n(6);e.exports=function(e,t){return i[e]?r(e,t):e}},function(e,t,n){"use strict";var r=n(4),i=n(3),o=n(2),a={},s=o.style;e.exports=function(e){var t=e;if(a[t])return a[t];var n,o;return e in s||(n=i("appearance"),n&&(o=n+r(e),o in s&&(e=o))),a[t]=e,e}},function(e){"use strict";e.exports=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}},function(e,t,n){"use strict";function r(e,t){var n={key:e,value:t};return(u.plugins||[]).forEach(function(r){var i=s(function(n){return r(e,t,n)},n);i&&(n=i)}),n}function i(e,t){var n=r(e,t);return s(function(e){return{key:a(e.key,e.value),value:e.value}},n)}var o=n(26),a=n(24),s=n(28),l=n(29),u=function(e){var t,n,r={};for(t in e)if(o(e,t)){if(n=i(t,e[t]),!n)continue;s(function(e){r[e.key]=e.value},n)}return r};e.exports=l(u)},function(e){"use strict";e.exports=function(e,t){return t?Array.isArray(t)?t.map(e).filter(function(e){return!!e}):e(t):void 0}},function(e,t,n){"use strict";var r=n(23);e.exports=function(e){return e.plugins=e.plugins||[function(){var e={flex:1,"inline-flex":1};return function(t,n){return"display"===t&&n in e?{key:t,value:r(t,n)}:void 0}}()],e.plugin=function(t){e.plugins=e.plugins||[],e.plugins.push(t)},e}},function(e,t){(function(t){"use strict";var n=t.document;e.exports=function(e){if(e.createTextRange&&!t.getSelection){var r=n.selection.createRange().duplicate();return r.moveStart("character",-e.value.length),r.text.length}return e.selectionEnd}}).call(t,function(){return this}())},function(e,t){(function(t){"use strict";var n=t.document;e.exports=function(e){if(e.createTextRange&&!t.getSelection){var r=n.selection.createRange().duplicate();return r.moveEnd("character",e.value.length),""==r.text?e.value.length:e.value.lastIndexOf(r.text)}return e.selectionStart}}).call(t,function(){return this}())}])});