angular-dynamic-number
Advanced tools
Comparing version 1.1.3 to 1.2.0
{ | ||
"name": "angular-dynamic-number", | ||
"version": "1.1.3", | ||
"version": "1.2.0", | ||
"homepage": "https://github.com/uhlryk/angular-dynamic-number", | ||
@@ -5,0 +5,0 @@ "authors": [ |
{ | ||
"name": "angular-dynamic-number", | ||
"version": "1.1.3", | ||
"version": "1.2.0", | ||
"description": "Highly customizable angular directive for numbers", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
@@ -91,4 +91,20 @@ # Angular Dynamic Number [![Build Status](https://travis-ci.org/uhlryk/angular-dynamic-number.svg)](https://travis-ci.org/uhlryk/angular-dynamic-number) | ||
{{ expression | awnum:numFrac:numSep:numRound}} | ||
{{ expression | awnum:numFrac:numSep:numRound:numFixed}} | ||
**numFrac** | ||
Set maximum numbers of digits fraction part (digits after decimal separator) (default 2). | ||
**numSep** | ||
Set decimal separator (dot or comma) (default '.'). | ||
**numRound** | ||
**numFixed** | ||
If true then there is fixed number of fraction digets - (useful when fraction part is 00 and we need to show this zeros e.g. 12,00 ) | ||
Define round method for fraction part when convert from model to view and for filter | ||
## Example: | ||
@@ -95,0 +111,0 @@ Negative number with max value 9999.99 and comma as separator |
@@ -69,2 +69,10 @@ /*jslint node: true */ | ||
} | ||
function initIsFixed(attrs_fixed, def_fixed){ | ||
if(attrs_fixed === 'false') { | ||
return false; | ||
} else if(attrs_fixed === 'true') { | ||
return true; | ||
} | ||
return def_fixed; | ||
} | ||
function buildRegexp(integerPart, fractionPart, fractionSeparator, isPositiveNumber, isNegativeNumber){ | ||
@@ -96,9 +104,17 @@ var negativeRegex = '-?'; | ||
} | ||
function filterModelValue(value, fractionPart, fractionSeparator, roundFunction){ | ||
function filterModelValue(value, fractionPart, fractionSeparator, roundFunction, numFixed){ | ||
value = Number(value); | ||
if(!isNaN(value) && isFinite(value)) { | ||
var powerOfTen = Math.pow(10, fractionPart); | ||
return convModelToView(String(roundFunction(value*powerOfTen)/powerOfTen), fractionSeparator); | ||
if(numFixed) { | ||
return convModelToView((roundFunction(value*powerOfTen)/powerOfTen).toFixed(fractionPart), fractionSeparator); | ||
} else { | ||
return convModelToView(String(roundFunction(value*powerOfTen)/powerOfTen), fractionSeparator); | ||
} | ||
} | ||
return "0"; | ||
if(numFixed) { | ||
return (0).toFixed(fractionPart); | ||
} else { | ||
return "0"; | ||
} | ||
} | ||
@@ -172,7 +188,8 @@ function dynamicNumberDirective() { | ||
function dynamicNumberFilter(){ | ||
return function(value, numFract, numSep, numRound) { | ||
return function(value, numFract, numSep, numRound, numFixed) { | ||
var fractionPart = initFractionPart(numFract, 2); | ||
var fractionSeparator = initSeparator(numSep, '.'); | ||
var roundFunction = initRound(numRound, Math.round); | ||
return filterModelValue(value, fractionPart, fractionSeparator, roundFunction); | ||
var isFixed = initIsFixed(numFixed, false); | ||
return filterModelValue(value, fractionPart, fractionSeparator, roundFunction, isFixed); | ||
}; | ||
@@ -179,0 +196,0 @@ } |
@@ -1,1 +0,1 @@ | ||
!function(n,r,t){"use strict";function e(n,r){return","===r?String(n).replace(".",","):n}function u(n,r){return","===r?String(n).replace(",","."):n}function i(n,r){if(n>=0){var t=parseInt(n,10);if(isNaN(t)===!1&&isFinite(t)&&t>=0)return t}return r}function o(n,r){if(n>=0){var t=parseInt(n,10);if(isNaN(t)===!1&&isFinite(t)&&t>=0)return t}return r}function a(n,r){return","===n?",":"."===n?".":r}function c(n,r){return"false"===n?!1:"true"===n?!0:r}function f(n,r){return"false"===n?!1:"true"===n?!0:r}function s(n,r){return"floor"===n?Math.floor:"ceil"===n?Math.ceil:"round"===n?Math.round:r}function m(n,r,t,e,u){var i="-?";e===!1&&u===!0?i="-":e===!0&&u===!1&&(i="");var o="[0-9]{0,"+n+"}";0===n&&(o="0");var a="(\\"+t+"([0-9]){0,"+r+"})";return 0===r&&(a=""),new RegExp("^"+i+o+a+"?$")}function l(n){return n.replace(/^0+/g,"").replace(/^-00+/g,"-0").replace(/-0+\[\.,]/,"-0$&").replace(/^[\.,]/g,"0$&")}function d(n,r){n.$setViewValue(r),n.$render()}function p(n,r,t,u){if(n=Number(n),!isNaN(n)&&isFinite(n)){var i=Math.pow(10,r);return e(String(u(n*i)/i),t)}return"0"}function g(){return{restrict:"A",require:"?ngModel",scope:{numInt:"@",numFract:"@",numSep:"@",numPos:"@",numNeg:"@",numRound:"@"},link:function(n,r,g,v){var h=i(n.numInt,6),w=o(n.numFract,2),N=a(n.numSep,"."),$=c(n.numPos,!0),M=f(n.numNeg,!0),b=s(n.numRound,Math.round);if($===!1&&M===!1)throw new Error("Number is set to not be positive and not be negative. Change num_pos attr or/and num_neg attr to true");var F=m(h,w,N,$,M);v.$parsers.unshift(function(n){var r=n;return r=l(r),""===r&&"0"===n.charAt(0)?(d(v,0),0):r===t||""===r?0:"-"===r?(d(v,r),0):F.test(r)===!1?(d(v,e(v.$modelValue,N)),v.$modelValue):(d(v,r),u(r,N))}),v.$formatters.push(function(n){return p(n,w,N,b)})}}}function v(){return function(n,r,t,e){var u=o(r,2),i=a(t,"."),c=s(e,Math.round);return p(n,u,i,c)}}r.module("dynamicNumber",[]).directive("awnum",g).filter("awnum",v)}(window,window.angular); | ||
!function(n,r,t){"use strict";function e(n,r){return","===r?String(n).replace(".",","):n}function u(n,r){return","===r?String(n).replace(",","."):n}function i(n,r){if(n>=0){var t=parseInt(n,10);if(isNaN(t)===!1&&isFinite(t)&&t>=0)return t}return r}function o(n,r){if(n>=0){var t=parseInt(n,10);if(isNaN(t)===!1&&isFinite(t)&&t>=0)return t}return r}function a(n,r){return","===n?",":"."===n?".":r}function c(n,r){return"false"===n?!1:"true"===n?!0:r}function f(n,r){return"false"===n?!1:"true"===n?!0:r}function s(n,r){return"floor"===n?Math.floor:"ceil"===n?Math.ceil:"round"===n?Math.round:r}function m(n,r){return"false"===n?!1:"true"===n?!0:r}function l(n,r,t,e,u){var i="-?";e===!1&&u===!0?i="-":e===!0&&u===!1&&(i="");var o="[0-9]{0,"+n+"}";0===n&&(o="0");var a="(\\"+t+"([0-9]){0,"+r+"})";return 0===r&&(a=""),new RegExp("^"+i+o+a+"?$")}function d(n){return n.replace(/^0+/g,"").replace(/^-00+/g,"-0").replace(/-0+\[\.,]/,"-0$&").replace(/^[\.,]/g,"0$&")}function p(n,r){n.$setViewValue(r),n.$render()}function g(n,r,t,u,i){if(n=Number(n),!isNaN(n)&&isFinite(n)){var o=Math.pow(10,r);return i?e((u(n*o)/o).toFixed(r),t):e(String(u(n*o)/o),t)}return i?0..toFixed(r):"0"}function v(){return{restrict:"A",require:"?ngModel",scope:{numInt:"@",numFract:"@",numSep:"@",numPos:"@",numNeg:"@",numRound:"@"},link:function(n,r,m,v){var h=i(n.numInt,6),w=o(n.numFract,2),N=a(n.numSep,"."),$=c(n.numPos,!0),F=f(n.numNeg,!0),M=s(n.numRound,Math.round);if($===!1&&F===!1)throw new Error("Number is set to not be positive and not be negative. Change num_pos attr or/and num_neg attr to true");var b=l(h,w,N,$,F);v.$parsers.unshift(function(n){var r=n;return r=d(r),""===r&&"0"===n.charAt(0)?(p(v,0),0):r===t||""===r?0:"-"===r?(p(v,r),0):b.test(r)===!1?(p(v,e(v.$modelValue,N)),v.$modelValue):(p(v,r),u(r,N))}),v.$formatters.push(function(n){return g(n,w,N,M)})}}}function h(){return function(n,r,t,e,u){var i=o(r,2),c=a(t,"."),f=s(e,Math.round),l=m(u,!1);return g(n,i,c,f,l)}}r.module("dynamicNumber",[]).directive("awnum",v).filter("awnum",h)}(window,window.angular); |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
15161
232
119