UNPKG

react-format-number

Version:
1 lines 5.03 kB
"use strict";function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(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}function _inherits(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)}function _typeof(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}var _createClass=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();!function(e,t){"object"===("undefined"==typeof exports?"undefined":_typeof(exports))?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):e.FormatNumber=t(e.React)}(window,function(e){var t=function(e){var t="undefined"==typeof e?"undefined":_typeof(e);return!!e&&("object"==t||"function"==t)},n=function(e){return"undefined"==typeof e},r=function(e,t){var n=new RegExp("\\d+(?:\\.\\d{0,"+t+"})?");return 0===t&&(n=new RegExp("\\d+")),Number(e.toString().match(n))},o={DECIMAL_SEP:".",GROUP_SEP:",",PATTERN:{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3}},i=function(e,r){if(t(e))return"";var i=0>e;e=Math.abs(e);var a=e===1/0;if(!a&&!isFinite(e))return"";var u=e+"",c="",f=!1,s=[];if(a&&(c="∞"),!a&&-1!==u.indexOf("e")){var l=u.match(/([\d\.]+)e(-?)(\d+)/);l&&"-"==l[2]&&l[3]>r+1?e=0:(c=u,f=!0)}if(a||f)r>0&&1>e&&(c=e.toFixed(r),e=parseFloat(c));else{var p=(u.split(o.DECIMAL_SEP)[1]||"").length;n(r)&&(r=Math.min(Math.max(o.PATTERN.minFrac,p),o.PATTERN.maxFrac)),e=+(Math.round(+(e.toString()+"e"+r)).toString()+"e"+-r);var h=(""+e).split(o.DECIMAL_SEP),d=h[0];h=h[1]||"";var g,v=0,m=o.PATTERN.lgSize,y=o.PATTERN.gSize;if(d.length>=m+y)for(v=d.length-m,g=0;v>g;g++)(v-g)%y===0&&0!==g&&(c+=o.GROUP_SEP),c+=d.charAt(g);for(g=v;g<d.length;g++)(d.length-g)%m===0&&0!==g&&(c+=o.GROUP_SEP),c+=d.charAt(g);for(;h.length<r;)h+="0";r&&"0"!==r&&(c+=o.DECIMAL_SEP+h.substr(0,r))}return 0===e&&(i=!1),s.push(i?o.PATTERN.negPre:o.PATTERN.posPre,c,i?o.PATTERN.negSuf:o.PATTERN.posSuf),s.join("")},a=function(e){return e?e.replace(/,/g,""):""},u=function(e,n,r){function o(){d&&clearTimeout(d),s&&clearTimeout(s),v=0,s=d=g=void 0}function i(t,n){n&&clearTimeout(n),s=d=g=void 0,t&&(v=Date.now(),l=e.apply(h,f),d||s||(f=h=void 0))}function a(){var e=n-(Date.now()-p);0>=e||e>n?i(g,s):d=setTimeout(a,e)}function u(){i(T,d)}function c(){if(f=arguments,p=Date.now(),h=this,g=T&&(d||!m),y===!1)var t=m&&!d;else{s||m||(v=p);var r=y-(p-v),o=0>=r||r>y;o?(s&&(s=clearTimeout(s)),v=p,l=e.apply(h,f)):s||(s=setTimeout(u,r))}return o&&d?d=clearTimeout(d):d||n===y||(d=setTimeout(a,n)),t&&(o=!0,l=e.apply(h,f)),!o||d||s||(f=h=void 0),l}var f,s,l,p,h,d,g,v=0,m=!1,y=!1,T=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return n=0>n?0:+n||0,t(r)&&(m=!!r.leading,y="maxWait"in r&&Math.max(+r.maxWait||0,n),T="trailing"in r?!!r.trailing:T),c.cancel=o,c},c=function(e){var t=0;if(document.selection){e.focus();var n=document.selection.createRange();n.moveStart("character",-e.value.length),t=n.text.length}else(e.selectionStart||0===e.selectionStart)&&(t=e.selectionStart);return t},f=function(e,t){if(e.createTextRange){var n=e.createTextRange();n.move("character",t),n.select()}else e.selectionStart?(e.focus(),e.setSelectionRange(t,t)):e.focus()},s=function(t){function n(e){_classCallCheck(this,n);var t=_possibleConstructorReturn(this,Object.getPrototypeOf(n).call(this,e));return t.onChange=t.onChange.bind(t),t.handleInput=t.handleInput.bind(t),t.bounceChange=u(function(){return t.handleInput(t.props)},500),t}return _inherits(n,t),_createClass(n,[{key:"componentDidMount",value:function(){this.refs.userinput.value=this.props.value,this.handleInput(this.props)}},{key:"componentWillReceiveProps",value:function(e){this.refs.userinput.value=e.value,this.handleInput(e)}},{key:"handleInput",value:function(t){var n=e.findDOMNode(this.refs.userinput),o=this.refs.userinput.value,u=a(o),s=Number(u);if(isNaN(s))return void t.onChange(NaN);t.fractionSize>=0&&(s=r(s,t.fractionSize));var l=i(s,t.fractionSize),p=c(n),h=l.length-(o.length-p);t.onChange(s),n.value=l,f(n,h)}},{key:"onChange",value:function(e){this.bounceChange()}},{key:"render",value:function(){return e.createElement("input",{type:"text",ref:"userinput",style:this.props.style,onChange:this.onChange})}}]),n}(e.Component);return s.propTypes={fractionSize:e.PropTypes.number,onChange:e.PropTypes.func,value:e.PropTypes.number},s.defaultProps={fractionSize:0,onChange:function(){},value:0},s});