angular-dynamic-number
Advanced tools
Comparing version 1.5.4 to 1.5.5
{ | ||
"name": "angular-dynamic-number", | ||
"version": "1.5.4", | ||
"version": "1.5.5", | ||
"homepage": "https://github.com/uhlryk/angular-dynamic-number", | ||
@@ -5,0 +5,0 @@ "authors": [ |
{ | ||
"name": "angular-dynamic-number", | ||
"version": "1.5.4", | ||
"version": "1.5.5", | ||
"description": "Highly customizable angular directive for numbers", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
@@ -1,2 +0,7 @@ | ||
# Angular Dynamic Number [![Build Status](https://travis-ci.org/uhlryk/angular-dynamic-number.svg)](https://travis-ci.org/uhlryk/angular-dynamic-number) | ||
# Angular Dynamic Number | ||
[![Build Status](https://travis-ci.org/uhlryk/angular-dynamic-number.svg)](https://travis-ci.org/uhlryk/angular-dynamic-number) | ||
[![Downloads](https://img.shields.io/npm/dt/angular-dynamic-number.svg)](https://www.npmjs.com/package/angular-dynamic-number) | ||
[![Downloads](https://img.shields.io/npm/dm/angular-dynamic-number.svg)](https://www.npmjs.com/package/angular-dynamic-number) | ||
[![NPM version](https://img.shields.io/npm/v/angular-dynamic-number.svg)](https://www.npmjs.com/package/angular-dynamic-number) | ||
[![Bower](https://img.shields.io/bower/v/angular-dynamic-number.svg)](http://bower.io/search/?q=angular-dynamic-number) | ||
@@ -16,2 +21,4 @@ Highly customizable AngularJS directive for numbers. | ||
It is also React version available [React Dynamic Number](https://github.com/uhlryk/react-dynamic-number) | ||
## Demo: | ||
@@ -163,2 +170,2 @@ [link](http://htmlpreview.github.io/?https://github.com/uhlryk/angular-dynamic-number/blob/master/examples/index.html) | ||
## License | ||
MIT | ||
MIT |
@@ -47,5 +47,5 @@ /*jslint node: true */ | ||
function initIsPositive(attrs_num_pos, def_num_pos){ | ||
if(attrs_num_pos === 'false') { | ||
if(attrs_num_pos === 'false' || attrs_num_pos === false) { | ||
return false; | ||
} else if(attrs_num_pos === 'true') { | ||
} else if(attrs_num_pos === 'true' || attrs_num_pos === true) { | ||
return true; | ||
@@ -56,5 +56,5 @@ } | ||
function initIsNegative(attrs_num_neg, def_num_neg){ | ||
if(attrs_num_neg === 'false') { | ||
if(attrs_num_neg === 'false' || attrs_num_neg === false) { | ||
return false; | ||
} else if(attrs_num_neg === 'true') { | ||
} else if(attrs_num_neg === 'true' || attrs_num_neg === true) { | ||
return true; | ||
@@ -75,5 +75,5 @@ } | ||
function initIsFixed(attrs_fixed, def_fixed){ | ||
if(attrs_fixed === 'false') { | ||
if(attrs_fixed === 'false' || attrs_fixed === false) { | ||
return false; | ||
} else if(attrs_fixed === 'true') { | ||
} else if(attrs_fixed === 'true' || attrs_fixed === true) { | ||
return true; | ||
@@ -223,10 +223,15 @@ } | ||
} | ||
var integerPart = initIntegerPart(scope.numInt, 6); | ||
var fractionPart = initFractionPart(scope.numFract, 2); | ||
var fractionSeparator = initSeparator(scope.numSep, '.'); | ||
var isPositiveNumber = initIsPositive(scope.numPos, true); | ||
var isNegativeNumber = initIsNegative(scope.numNeg, true); | ||
var roundFunction = initRound(scope.numRound, Math.round); | ||
var isThousandSeparator = initIsThousand(scope.numThousand, false); | ||
var strategy = {}; | ||
if(scope.awnum) { | ||
strategy = dynamicNumberStrategy.getStrategy(scope.awnum); | ||
} | ||
var integerPart = initIntegerPart(scope.numInt !== undefined ? scope.numInt : strategy.numInt, 6); | ||
var fractionPart = initFractionPart(scope.numFract !== undefined ? scope.numFract : strategy.numFract, 2); | ||
var fractionSeparator = initSeparator(scope.numSep !== undefined ? scope.numSep : strategy.numSep, '.'); | ||
var isPositiveNumber = initIsPositive(scope.numPos !== undefined ? scope.numPos : strategy.numPos, true); | ||
var isNegativeNumber = initIsNegative(scope.numNeg !== undefined ? scope.numNeg : strategy.numNeg, true); | ||
var roundFunction = initRound(scope.numRound !== undefined ? scope.numRound : strategy.numRound, Math.round); | ||
var isThousandSeparator = initIsThousand(scope.numThousand !== undefined ? scope.numThousand : strategy.numThousand, false); | ||
if(isPositiveNumber === false && isNegativeNumber === false) { | ||
@@ -233,0 +238,0 @@ 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'); |
@@ -1,1 +0,1 @@ | ||
!function(e,n,t){"use strict";function r(e,n){return e===t?"":","===n?String(e).replace(".",","):String(e)}function u(e,n){return","===n?String(e).replace(/\./g,"").replace(",","."):String(e).replace(/,/g,"")}function i(e,n){if(e>=0){var t=parseInt(e,10);if(isNaN(t)===!1&&isFinite(t)&&t>=0)return t}return n}function a(e,n){if(e>=0){var t=parseInt(e,10);if(isNaN(t)===!1&&isFinite(t)&&t>=0)return t}return n}function o(e,n){return","===e?",":"."===e?".":n}function c(e,n){return"false"===e?!1:"true"===e?!0:n}function f(e,n){return"false"===e?!1:"true"===e?!0:n}function l(e,n){return"floor"===e?Math.floor:"ceil"===e?Math.ceil:"round"===e?Math.round:n}function s(e,n){return"false"===e?!1:"true"===e?!0:n}function g(e,n){return"false"===e?!1:"true"===e?!0:n}function m(e,n,t,r,u){var i="-?";r===!1&&u===!0?i="-":r===!0&&u===!1&&(i="");var a="[0-9]{0,"+e+"}";0===e&&(a="0");var o="(\\"+t+"([0-9]){0,"+n+"})";return 0===n&&(o=""),new RegExp("^"+i+a+o+"?$")}function d(e){return String(e).replace(/^0+/g,"").replace(/^-0(\d+)/g,"-$1").replace(/^-([\.,])/g,"-0$1").replace(/^[\.,]/g,"0$&")}function v(e,n){return"."===n?String(e).replace(/\./g,""):String(e).replace(/,/g,"")}function p(e,n){return String(e).replace(/\B(?=(\d{3})+(?!\d))/g,n)}function h(e,n){e.$setViewValue(n),e.$render()}function S(e,n,t,u,i,a){if(e=Number(e),!isNaN(e)&&isFinite(e)){var o=Math.pow(10,n);return e=i?r((u(e*o)/o).toFixed(n),t):r(String(u(e*o)/o),t),a&&(e=p(e,"."===t?",":".")),e}return i?0..toFixed(n):"0"}function w(e){var n=0;if(document.selection){e.focus();var t=document.selection.createRange();t.moveStart("character",-e.value.length),n=t.text.length}else(e.selectionStart||"0"==e.selectionStart)&&(n=e.selectionStart);return n}function N(e,n){if(null!==e)if(e.createTextRange){var t=e.createTextRange();t.move("character",n),t.select()}else e.selectionStart?(e.focus(),e.setSelectionRange(n,n)):e.focus()}function y(e,n,t){for(var r=0,u=0,i=0;i<e.length;i++)if(e[i]!==n){if(r++,r>=t)break}else u++;return u}function b(e){return{restrict:"A",require:"?ngModel",scope:{awnum:"@",numInt:"@",numFract:"@",numSep:"@",numPos:"@",numNeg:"@",numRound:"@",numThousand:"@"},link:function(e,n,s,b){if(!n[0]||"INPUT"!==n[0].tagName||"text"!==n[0].type)return void console.warn("Directive angular-dynamic-number works only for 'input' tag with type = 'text'");if(!b)return void console.warn("Directive angular-dynamic-number need ngModel attribute");var $=i(e.numInt,6),x=a(e.numFract,2),M=o(e.numSep,"."),F=c(e.numPos,!0),R=f(e.numNeg,!0),I=l(e.numRound,Math.round),T=g(e.numThousand,!1);if(F===!1&&R===!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 V=m($,x,M,F,R);b.$parsers.unshift(function(e){var i=String(e);if(/^[\.,]{2,}/.test(i))return h(b,0),0;var a=w(n[0]),o=i.slice(0,a),c=o.length;if(o=v(o,"."===M?",":"."),i=v(i,"."===M?",":"."),o=d(o),i=d(i),""===i&&"0"===String(e).charAt(0))return h(b,0),0;if(i===t||""===i)return 0;if("-"===i)return h(b,"-"),0;if(V.test(i)===!1){var f=r(b.$modelValue,M);return T&&(f=p(f,"."===M?",":".")),h(b,f),N(n[0],a-1),b.$modelValue}var l=0,s=a-c+o.length;return T&&(i=p(i,"."===M?",":"."),l=y(i,"."===M?",":".",s)),h(b,i),N(n[0],s+l),u(i,M)}),b.$formatters.push(function(e){return S(e,x,M,I,!1,T)})}}}n.module("dynamicNumber",[]).provider("dynamicNumberStrategy",function(){var e={};this.addStrategy=function(n,t){e[n]=t},this.getStrategy=function(n){return e[n]},this.$get=function(){return{getStrategy:function(n){return e[n]}}}}).filter("awnum",function(){return function(e,n,t,r,u,i){var c=a(n,2),f=o(t,"."),m=l(r,Math.round),d=s(u,!1),v=g(i,!1);return S(e,c,f,m,d,v)}}).directive("awnum",["dynamicNumberStrategy",b])}(window,window.angular); | ||
!function(n,e,t){"use strict";function r(n,e){return n===t?"":","===e?String(n).replace(".",","):String(n)}function u(n,e){return","===e?String(n).replace(/\./g,"").replace(",","."):String(n).replace(/,/g,"")}function i(n,e){if(n>=0){var t=parseInt(n,10);if(isNaN(t)===!1&&isFinite(t)&&t>=0)return t}return e}function a(n,e){if(n>=0){var t=parseInt(n,10);if(isNaN(t)===!1&&isFinite(t)&&t>=0)return t}return e}function o(n,e){return","===n?",":"."===n?".":e}function c(n,e){return"false"===n||n===!1?!1:"true"===n||n===!0?!0:e}function f(n,e){return"false"===n||n===!1?!1:"true"===n||n===!0?!0:e}function s(n,e){return"floor"===n?Math.floor:"ceil"===n?Math.ceil:"round"===n?Math.round:e}function m(n,e){return"false"===n||n===!1?!1:"true"===n||n===!0?!0:e}function l(n,e){return"false"===n?!1:"true"===n?!0:e}function g(n,e,t,r,u){var i="-?";r===!1&&u===!0?i="-":r===!0&&u===!1&&(i="");var a="[0-9]{0,"+n+"}";0===n&&(a="0");var o="(\\"+t+"([0-9]){0,"+e+"})";return 0===e&&(o=""),new RegExp("^"+i+a+o+"?$")}function d(n){return String(n).replace(/^0+/g,"").replace(/^-0(\d+)/g,"-$1").replace(/^-([\.,])/g,"-0$1").replace(/^[\.,]/g,"0$&")}function v(n,e){return"."===e?String(n).replace(/\./g,""):String(n).replace(/,/g,"")}function p(n,e){return String(n).replace(/\B(?=(\d{3})+(?!\d))/g,e)}function S(n,e){n.$setViewValue(e),n.$render()}function h(n,e,t,u,i,a){if(n=Number(n),!isNaN(n)&&isFinite(n)){var o=Math.pow(10,e);return n=i?r((u(n*o)/o).toFixed(e),t):r(String(u(n*o)/o),t),a&&(n=p(n,"."===t?",":".")),n}return i?0..toFixed(e):"0"}function w(n){var e=0;if(document.selection){n.focus();var t=document.selection.createRange();t.moveStart("character",-n.value.length),e=t.text.length}else(n.selectionStart||"0"==n.selectionStart)&&(e=n.selectionStart);return e}function N(n,e){if(null!==n)if(n.createTextRange){var t=n.createTextRange();t.move("character",e),t.select()}else n.selectionStart?(n.focus(),n.setSelectionRange(e,e)):n.focus()}function y(n,e,t){for(var r=0,u=0,i=0;i<n.length;i++)if(n[i]!==e){if(r++,r>=t)break}else u++;return u}function b(n){return{restrict:"A",require:"?ngModel",scope:{awnum:"@",numInt:"@",numFract:"@",numSep:"@",numPos:"@",numNeg:"@",numRound:"@",numThousand:"@"},link:function(e,m,b,$){if(!m[0]||"INPUT"!==m[0].tagName||"text"!==m[0].type)return void console.warn("Directive angular-dynamic-number works only for 'input' tag with type = 'text'");if(!$)return void console.warn("Directive angular-dynamic-number need ngModel attribute");var F={};e.awnum&&(F=n.getStrategy(e.awnum));var R=i(e.numInt!==t?e.numInt:F.numInt,6),x=a(e.numFract!==t?e.numFract:F.numFract,2),M=o(e.numSep!==t?e.numSep:F.numSep,"."),I=c(e.numPos!==t?e.numPos:F.numPos,!0),T=f(e.numNeg!==t?e.numNeg:F.numNeg,!0),P=s(e.numRound!==t?e.numRound:F.numRound,Math.round),V=l(e.numThousand!==t?e.numThousand:F.numThousand,!1);if(I===!1&&T===!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 k=g(R,x,M,I,T);$.$parsers.unshift(function(n){var e=String(n);if(/^[\.,]{2,}/.test(e))return S($,0),0;var i=w(m[0]),a=e.slice(0,i),o=a.length;if(a=v(a,"."===M?",":"."),e=v(e,"."===M?",":"."),a=d(a),e=d(e),""===e&&"0"===String(n).charAt(0))return S($,0),0;if(e===t||""===e)return 0;if("-"===e)return S($,"-"),0;if(k.test(e)===!1){var c=r($.$modelValue,M);return V&&(c=p(c,"."===M?",":".")),S($,c),N(m[0],i-1),$.$modelValue}var f=0,s=i-o+a.length;return V&&(e=p(e,"."===M?",":"."),f=y(e,"."===M?",":".",s)),S($,e),N(m[0],s+f),u(e,M)}),$.$formatters.push(function(n){return h(n,x,M,P,!1,V)})}}}e.module("dynamicNumber",[]).provider("dynamicNumberStrategy",function(){var n={};this.addStrategy=function(e,t){n[e]=t},this.getStrategy=function(e){return n[e]},this.$get=function(){return{getStrategy:function(e){return n[e]}}}}).filter("awnum",function(){return function(n,e,t,r,u,i){var c=a(e,2),f=o(t,"."),g=s(r,Math.round),d=m(u,!1),v=l(i,!1);return h(n,c,f,g,d,v)}}).directive("awnum",["dynamicNumberStrategy",b])}(window,window.angular); |
Sorry, the diff of this file is not supported yet
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
48128
378
170