All Downloads are FREE. Search and download functionalities are using the official Maven repository.

META-INF.resources.bower_components.globalize.dist.globalize-runtime.number.min.js Maven / Gradle / Ivy

The newest version!
(function(root,factory){if(typeof define==="function"&&define.amd){define(["../globalize-runtime"],factory)}else if(typeof exports==="object"){module.exports=factory(require("../globalize-runtime"))}else{factory(root.Globalize)}})(this,function(Globalize){var createError=Globalize._createError,regexpEscape=Globalize._regexpEscape,runtimeKey=Globalize._runtimeKey,stringPad=Globalize._stringPad,validateParameterType=Globalize._validateParameterType,validateParameterPresence=Globalize._validateParameterPresence,validateParameterTypeString=Globalize._validateParameterTypeString;var createErrorUnsupportedFeature=function(feature){return createError("E_UNSUPPORTED","Unsupported {feature}.",{feature:feature})};var validateParameterTypeNumber=function(value,name){validateParameterType(value,name,value===undefined||typeof value==="number","Number")};var numberFormatGroupingSeparator=function(number,primaryGroupingSize,secondaryGroupingSize){var index,currentGroupingSize=primaryGroupingSize,ret="",sep=",",switchToSecondary=secondaryGroupingSize?true:false;number=String(number).split(".");index=number[0].length;while(index>currentGroupingSize){ret=number[0].slice(index-currentGroupingSize,index)+(ret.length?sep:"")+ret;index-=currentGroupingSize;if(switchToSecondary){currentGroupingSize=secondaryGroupingSize;switchToSecondary=false}}number[0]=number[0].slice(0,index)+(ret.length?sep:"")+ret;return number.join(".")};var numberFormatIntegerFractionDigits=function(number,minimumIntegerDigits,minimumFractionDigits,maximumFractionDigits,round,roundIncrement){if(maximumFractionDigits){if(roundIncrement){number=round(number,roundIncrement)}else{number=round(number,{exponent:-maximumFractionDigits})}if(minimumFractionDigits){number=String(number).split(".");number[1]=stringPad(number[1]||"",minimumFractionDigits,true);number=number.join(".")}}else{number=round(number)}number=String(number);if(minimumIntegerDigits){number=number.split(".");number[0]=stringPad(number[0],minimumIntegerDigits);number=number.join(".")}return number};var numberToPrecision=function(number,precision,round){var roundOrder;number=number.toPrecision(precision+2);roundOrder=Math.ceil(Math.log(Math.abs(number))/Math.log(10));roundOrder-=precision;return round(number,{exponent:roundOrder})};var numberFormatSignificantDigits=function(number,minimumSignificantDigits,maximumSignificantDigits,round){var atMinimum,atMaximum;if(minimumSignificantDigits>maximumSignificantDigits){maximumSignificantDigits=minimumSignificantDigits}atMinimum=numberToPrecision(number,minimumSignificantDigits,round);atMaximum=numberToPrecision(number,maximumSignificantDigits,round);number=+atMinimum===+atMaximum?atMinimum:atMaximum;number=(+number).toString(10);if(/e/.test(number)){throw createErrorUnsupportedFeature({feature:"integers out of (1e21, 1e-7)"})}if(minimumSignificantDigits-number.replace(/^0+|\./g,"").length>0){number=number.split(".");number[1]=stringPad(number[1]||"",minimumSignificantDigits-number[0].replace(/^0+/,"").length,true);number=number.join(".")}return number};var removeLiteralQuotes=function(string){if(string[0]+string[string.length-1]!=="''"){return string}if(string==="''"){return""}return string.replace(/''/g,"'").slice(1,-1)};var numberFormat=function(number,properties){var infinitySymbol,maximumFractionDigits,maximumSignificantDigits,minimumFractionDigits,minimumIntegerDigits,minimumSignificantDigits,nanSymbol,nuDigitsMap,padding,prefix,primaryGroupingSize,pattern,ret,round,roundIncrement,secondaryGroupingSize,suffix,symbolMap;padding=properties[1];minimumIntegerDigits=properties[2];minimumFractionDigits=properties[3];maximumFractionDigits=properties[4];minimumSignificantDigits=properties[5];maximumSignificantDigits=properties[6];roundIncrement=properties[7];primaryGroupingSize=properties[8];secondaryGroupingSize=properties[9];round=properties[15];infinitySymbol=properties[16];nanSymbol=properties[17];symbolMap=properties[18];nuDigitsMap=properties[19];if(isNaN(number)){return nanSymbol}if(number<0){pattern=properties[12];prefix=properties[13];suffix=properties[14]}else{pattern=properties[11];prefix=properties[0];suffix=properties[10]}if(!isFinite(number)){return prefix+infinitySymbol+suffix}ret=prefix;if(pattern.indexOf("%")!==-1){number*=100}else if(pattern.indexOf("‰")!==-1){number*=1e3}if(!isNaN(minimumSignificantDigits*maximumSignificantDigits)){number=numberFormatSignificantDigits(number,minimumSignificantDigits,maximumSignificantDigits,round)}else{number=numberFormatIntegerFractionDigits(number,minimumIntegerDigits,minimumFractionDigits,maximumFractionDigits,round,roundIncrement)}number=number.replace(/^-/,"");if(primaryGroupingSize){number=numberFormatGroupingSeparator(number,primaryGroupingSize,secondaryGroupingSize)}ret+=number;ret+=suffix;return ret.replace(/('([^']|'')+'|'')|./g,function(character,literal){if(literal){return removeLiteralQuotes(literal)}character=character.replace(/[.,\-+E%\u2030]/,function(symbol){return symbolMap[symbol]});if(nuDigitsMap){character=character.replace(/[0-9]/,function(digit){return nuDigitsMap[+digit]})}return character})};var numberFormatterFn=function(properties){return function numberFormatter(value){validateParameterPresence(value,"value");validateParameterTypeNumber(value,"value");return numberFormat(value,properties)}};var regexpCfG=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804\uDCBD|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/g;var regexpDashG=/[\-\u058A\u05BE\u1400\u1806\u2010-\u2015\u2E17\u2E1A\u2E3A\u2E3B\u2E40\u301C\u3030\u30A0\uFE31\uFE32\uFE58\uFE63\uFF0D\u2212]/g;var regexpZsG=/[ \xA0\u1680\u2000-\u200A\u202F\u205F\u3000]/g;var numberParse=function(value,properties){var grammar,invertedNuDigitsMap,invertedSymbolMap,negative,number,prefix,prefixNSuffix,suffix,tokenizer,valid;grammar=[["nan"],["prefix","infinity","suffix"],["prefix","number","suffix"],["negativePrefix","infinity","negativeSuffix"],["negativePrefix","number","negativeSuffix"]];invertedSymbolMap=properties[0];invertedNuDigitsMap=properties[1]||{};tokenizer=properties[2];value=value.replace(regexpCfG,"").replace(regexpDashG,"-").replace(regexpZsG," ");function parse(type){return function(lexeme){lexeme=lexeme.split("").map(function(character){return invertedSymbolMap[character]||invertedNuDigitsMap[character]||character}).join("");switch(type){case"infinity":number=Infinity;break;case"nan":number=NaN;break;case"number":lexeme=lexeme.replace(/,/g,"");number=+lexeme;break;case"prefix":case"negativePrefix":prefix=lexeme;break;case"suffix":suffix=lexeme;break;case"negativeSuffix":suffix=lexeme;negative=true;break;default:throw new Error("Internal error")}return""}}function tokenizeNParse(_value,grammar){return grammar.some(function(statement){var value=_value;return statement.every(function(type){if(value.match(tokenizer[type])===null){return false}value=value.replace(tokenizer[type],parse(type));return true})&&!value.length})}valid=tokenizeNParse(value,grammar);if(!valid||isNaN(number)){return NaN}prefixNSuffix=""+prefix+suffix;if(prefixNSuffix.indexOf("%")!==-1){number/=100}else if(prefixNSuffix.indexOf("‰")!==-1){number/=1e3}if(negative){number*=-1}return number};var numberParserFn=function(properties){return function numberParser(value){validateParameterPresence(value,"value");validateParameterTypeString(value,"value");return numberParse(value,properties)}};var numberTruncate=function(value){if(isNaN(value)){return NaN}return Math[value<0?"ceil":"floor"](value)};var numberRound=function(method){method=method||"round";method=method==="truncate"?numberTruncate:Math[method];return function(value,incrementOrExp){var exp,increment;value=+value;if(isNaN(value)){return NaN}if(typeof incrementOrExp==="object"&&incrementOrExp.exponent){exp=+incrementOrExp.exponent;increment=1;if(exp===0){return method(value)}if(!(typeof exp==="number"&&exp%1===0)){return NaN}}else{increment=+incrementOrExp||1;if(increment===1){return method(value)}if(isNaN(increment)){return NaN}increment=increment.toExponential().split("e");exp=+increment[1];increment=+increment[0]}value=value.toString().split("e");value[0]=+value[0]/increment;value[1]=value[1]?+value[1]-exp:-exp;value=method(+(value[0]+"e"+value[1]));value=value.toString().split("e");value[0]=+value[0]*increment;value[1]=value[1]?+value[1]+exp:exp;return+(value[0]+"e"+value[1])}};Globalize._createErrorUnsupportedFeature=createErrorUnsupportedFeature;Globalize._numberFormat=numberFormat;Globalize._numberFormatterFn=numberFormatterFn;Globalize._numberParse=numberParse;Globalize._numberParserFn=numberParserFn;Globalize._numberRound=numberRound;Globalize._removeLiteralQuotes=removeLiteralQuotes;Globalize._validateParameterPresence=validateParameterPresence;Globalize._validateParameterTypeNumber=validateParameterTypeNumber;Globalize._validateParameterTypeString=validateParameterTypeString;Globalize.numberFormatter=Globalize.prototype.numberFormatter=function(options){options=options||{};return Globalize[runtimeKey("numberFormatter",this._locale,[options])]};Globalize.numberParser=Globalize.prototype.numberParser=function(options){options=options||{};return Globalize[runtimeKey("numberParser",this._locale,[options])]};Globalize.formatNumber=Globalize.prototype.formatNumber=function(value,options){validateParameterPresence(value,"value");validateParameterTypeNumber(value,"value");return this.numberFormatter(options)(value)};Globalize.parseNumber=Globalize.prototype.parseNumber=function(value,options){validateParameterPresence(value,"value");validateParameterTypeString(value,"value");return this.numberParser(options)(value)};return Globalize});




© 2015 - 2024 Weber Informatics LLC | Privacy Policy