From 075f64a41336be8c1ae28121c5f3103164926f18 Mon Sep 17 00:00:00 2001 From: MATSUBAYASHI 'Shaolin' Kohji Date: Sat, 21 May 2016 09:02:13 +0900 Subject: [PATCH 01/10] [feature] autorepeat increment/decrement; return value bug fix (when negative) --- README.md | 2 + dist/ionic-numberpicker.bundle.min.js | 2 +- dist/templates.js | 4 +- src/ionic-numberpicker-decimal.html | 21 +++++--- src/ionic-numberpicker-whole.html | 11 +++-- src/ionic-numberpicker.directive.js | 71 ++++++++++++++++++++++++++- 6 files changed, 93 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 179b107..95797e9 100755 --- a/README.md +++ b/README.md @@ -52,6 +52,8 @@ $scope.numberPickerObject = { }; ```` +5) (optional) install 'ngTouch' by https://github.com/nglar/ngTouch to get (pseudo-)autorepeat increment/decrement feature on touch panels. + ##Versions: ### 2) v1.1 diff --git a/dist/ionic-numberpicker.bundle.min.js b/dist/ionic-numberpicker.bundle.min.js index be690f1..68a426e 100755 --- a/dist/ionic-numberpicker.bundle.min.js +++ b/dist/ionic-numberpicker.bundle.min.js @@ -1 +1 @@ -!function(e,n){var t=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(t),t.styleSheet)t.styleSheet.disabled||(t.styleSheet.cssText=n);else try{t.innerHTML=n}catch(i){t.innerText=n}}(document,"/* Empty. Add your own CSS if you like */\n\n.numberPickerDecimal {\n color: #000;\n padding-top: 45px;\n text-align: center;\n font-weight: bold;\n}\n\n.numberPickerArrows {\n width: 100%;\n}\n\n.numberPickerBoxText {\n color: #000;\n height: 40px;\n text-align: center;\n border: 1px solid #dddddd;\n font-size: 16px;\n padding-top: 5px;\n}\n\n.overflowShow {\n white-space: normal !important;\n}"),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(n){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-decimal.html",'
')}])}(),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(n){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-whole.html",'
')}])}(),function(){"use strict";angular.module("ionic-numberpicker",["ionic","ionic-numberpicker.templates"])}(),function(){"use strict";function e(e){return{restrict:"AE",replace:!0,scope:{inputObj:"=inputObj"},link:function(n,t,i){function l(e,t){var i=parseFloat(e).toFixed(n.precision);return i}function c(e){var t=0;return e>=0?(n.isNegative=!1,t=Math.floor(e)):(n.isNegative=!0,t=Math.ceil(e)),Math.abs(t)}n.inputValue=n.inputObj.inputValue?n.inputObj.inputValue:0,n.minValue=n.inputObj.minValue,n.maxValue=n.inputObj.maxValue,n.precision=n.inputObj.precision?n.inputObj.precision:3,n.format=n.inputObj.format?n.inputObj.format:"DECIMAL",n.unit=n.inputObj.unit?n.inputObj.unit:"",n.titleLabel=n.inputObj.titleLabel?n.inputObj.titleLabel:"Number Picker",n.setLabel=n.inputObj.setLabel?n.inputObj.setLabel:"Set",n.closeLabel=n.inputObj.closeLabel?n.inputObj.closeLabel:"Close",n.decimalStep=n.inputObj.decimalStep?n.inputObj.decimalStep:.25,n.decimalCharacter=n.inputObj.decimalCharacter?n.inputObj.decimalCharacter:".",n.setButtonType=n.inputObj.setButtonType?n.inputObj.setButtonType:"button-positive",n.closeButtonType=n.inputObj.closeButtonType?n.inputObj.closeButtonType:"button-stable",n.wholeNumber=0,n.decimalNumber=0,n.isNegative=!1,n.numericValue=Number(n.wholeNumber+"."+n.decimalNumber),n.changeFormat=function(){n.format="DECIMAL"===n.format?"WHOLE":"DECIMAL"},n.decimalDisplay=function(){var e=n.decimalNumber.toString(),t=e.indexOf(".");return e.substring(t+1)},n.increaseWhole=function(){n.numericValue+=1,n.wholeNumber=c(n.numericValue),n.decimalNumber=l(n.numericValue%1),n.checkMax()},n.decreaseWhole=function(){n.numericValue-=1,n.wholeNumber=c(n.numericValue),n.decimalNumber=l(n.numericValue%1),n.checkMin()},n.increaseDecimal=function(){n.numericValue+=n.decimalStep,n.wholeNumber=c(n.numericValue),n.decimalNumber=l(n.numericValue%1),n.checkMax()},n.decreaseDecimal=function(){n.numericValue-=n.decimalStep,n.wholeNumber=c(n.numericValue),n.decimalNumber=l(n.numericValue%1),n.checkMin()},n.checkMax=function(){n.numericValue>=n.maxValue&&(n.numericValue=n.maxValue,n.wholeNumber=c(n.numericValue),n.decimalNumber=l(n.numericValue%1))},n.checkMin=function(){n.numericValue<=n.minValue&&(n.numericValue=n.minValue,n.wholeNumber=c(n.numericValue),n.decimalNumber=l(n.numericValue%1))},t.on("click",function(){"DECIMAL"==n.format?(n.wholeNumber=c(Number(n.inputValue)),n.decimalNumber=n.inputValue%1,n.numericValue=Number(n.wholeNumber)+Number(l(n.decimalNumber,n.precision)),n.decimalNumber=l(n.numericValue%1),e.show({templateUrl:"ionic-numberpicker-decimal.html",title:n.titleLabel,subTitle:"",scope:n,buttons:[{text:n.closeLabel,type:n.closeButtonType,onTap:function(e){n.inputObj.callback(void 0)}},{text:n.setLabel,type:n.setButtonType,onTap:function(e){n.loadingContent=!0,n.numericValue=Number(n.wholeNumber)+Number(l(n.decimalNumber,n.precision)),n.inputObj.callback(n.numericValue)}}]})):(n.wholeNumber=c(n.inputValue),n.decimalNumber=0,n.numericValue=Number(c(n.wholeNumber))+Number(l(n.decimalNumber,n.precision)),e.show({templateUrl:"ionic-numberpicker-whole.html",title:n.titleLabel,subTitle:"",scope:n,buttons:[{text:n.closeLabel,type:n.closeButtonType,onTap:function(e){n.inputObj.callback(void 0)}},{text:n.setLabel,type:n.setButtonType,onTap:function(e){n.loadingContent=!0,n.inputObj.callback(n.wholeNumber)}}]}))})}}}angular.module("ionic-numberpicker").directive("ionicNumberpicker",e),e.$inject=["$ionicPopup"]}(); \ No newline at end of file +!function(e,n){var t=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(t),t.styleSheet)t.styleSheet.disabled||(t.styleSheet.cssText=n);else try{t.innerHTML=n}catch(i){t.innerText=n}}(document,"/* Empty. Add your own CSS if you like */\n\n.numberPickerDecimal {\n color: #000;\n padding-top: 45px;\n text-align: center;\n font-weight: bold;\n}\n\n.numberPickerArrows {\n width: 100%;\n}\n\n.numberPickerBoxText {\n color: #000;\n height: 40px;\n text-align: center;\n border: 1px solid #dddddd;\n font-size: 16px;\n padding-top: 5px;\n}\n\n.overflowShow {\n white-space: normal !important;\n}"),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(n){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-decimal.html",'
{{wholeNumber}}
{{decimalDisplay()}}
')}])}(),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(n){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-whole.html",'
{{wholeNumber}}
')}])}(),function(){"use strict";angular.module("ionic-numberpicker",["ionic","ionic-numberpicker.templates"])}(),function(){"use strict";function e(e){return{restrict:"AE",replace:!0,scope:{inputObj:"=inputObj"},link:function(n,t,i){function l(e,t){var i=parseFloat(e).toFixed(n.precision);return i}function o(e){var t=0;return e>=0?(n.isNegative=!1,n.sign="",t=Math.floor(e)):(n.isNegative=!0,n.sign="-",t=Math.ceil(e)),Math.abs(t)}n.inputValue=n.inputObj.inputValue?n.inputObj.inputValue:0,n.minValue=n.inputObj.minValue,n.maxValue=n.inputObj.maxValue,n.precision=n.inputObj.precision?n.inputObj.precision:3,n.format=n.inputObj.format?n.inputObj.format:"DECIMAL",n.unit=n.inputObj.unit?n.inputObj.unit:"",n.titleLabel=n.inputObj.titleLabel?n.inputObj.titleLabel:"Number Picker",n.setLabel=n.inputObj.setLabel?n.inputObj.setLabel:"Set",n.closeLabel=n.inputObj.closeLabel?n.inputObj.closeLabel:"Close",n.decimalStep=n.inputObj.decimalStep?n.inputObj.decimalStep:.25,n.decimalCharacter=n.inputObj.decimalCharacter?n.inputObj.decimalCharacter:".",n.setButtonType=n.inputObj.setButtonType?n.inputObj.setButtonType:"button-positive",n.closeButtonType=n.inputObj.closeButtonType?n.inputObj.closeButtonType:"button-stable",n.wholeNumber=0,n.decimalNumber=0,n.isNegative=!1,n.sign="",n.numericValue=Number(n.wholeNumber+"."+n.decimalNumber),n.changeFormat=function(){n.format="DECIMAL"===n.format?"WHOLE":"DECIMAL"},n.decimalDisplay=function(){var e=n.decimalNumber.toString(),t=e.indexOf(".");return e.substring(t+1)},n.increaseWhole=function(){n.numericValue+=1,n.wholeNumber=o(n.numericValue),n.decimalNumber=l(n.numericValue%1),n.checkMax(),document.getElementById("wholeNumber").innerHTML=n.wholeNumber,document.getElementById("decimalNumber")&&(document.getElementById("decimalNumber").innerHTML=n.decimalDisplay()),document.getElementById("sign").innerHTML=n.sign},n.decreaseWhole=function(){n.numericValue-=1,n.wholeNumber=o(n.numericValue),n.decimalNumber=l(n.numericValue%1),n.checkMin(),document.getElementById("wholeNumber").innerHTML=n.wholeNumber,document.getElementById("decimalNumber")&&(document.getElementById("decimalNumber").innerHTML=n.decimalDisplay()),document.getElementById("sign").innerHTML=n.sign},n.increaseDecimal=function(){n.numericValue+=n.decimalStep,n.wholeNumber=o(n.numericValue),n.decimalNumber=l(n.numericValue%1),n.checkMax(),document.getElementById("wholeNumber").innerHTML=n.wholeNumber,document.getElementById("decimalNumber")&&(document.getElementById("decimalNumber").innerHTML=n.decimalDisplay()),document.getElementById("sign").innerHTML=n.sign},n.decreaseDecimal=function(){n.numericValue-=n.decimalStep,n.wholeNumber=o(n.numericValue),n.decimalNumber=l(n.numericValue%1),n.checkMin(),document.getElementById("wholeNumber").innerHTML=n.wholeNumber,document.getElementById("decimalNumber")&&(document.getElementById("decimalNumber").innerHTML=n.decimalDisplay()),document.getElementById("sign").innerHTML=n.sign},n.startWholeUp=function(){n.increaseWhole(),n.intervalID=setInterval(function(){n.increaseWhole()},100)},n.stopWholeUp=function(){clearInterval(n.intervalID)},n.startWholeDown=function(){n.decreaseWhole(),n.intervalID=setInterval(function(){n.decreaseWhole()},100)},n.stopWholeDown=function(){clearInterval(n.intervalID)},n.startDecimalUp=function(){n.increaseDecimal(),n.intervalID=setInterval(function(){n.increaseDecimal()},100)},n.stopDecimalUp=function(){clearInterval(n.intervalID)},n.startDecimalDown=function(){n.decreaseDecimal(),n.intervalID=setInterval(function(){n.decreaseDecimal()},100)},n.stopDecimalDown=function(){clearInterval(n.intervalID)},n.checkMax=function(){n.numericValue>=n.maxValue&&(n.numericValue=n.maxValue,n.wholeNumber=o(n.numericValue),n.decimalNumber=l(n.numericValue%1))},n.checkMin=function(){n.numericValue<=n.minValue&&(n.numericValue=n.minValue,n.wholeNumber=o(n.numericValue),n.decimalNumber=l(n.numericValue%1))},t.on("click",function(){"DECIMAL"==n.format?(n.wholeNumber=o(Number(n.inputValue)),n.decimalNumber=n.inputValue%1,n.numericValue=Number(n.wholeNumber)+Number(l(n.decimalNumber,n.precision)),n.decimalNumber=l(n.numericValue%1),e.show({templateUrl:"ionic-numberpicker-decimal.html",title:n.titleLabel,subTitle:"",scope:n,buttons:[{text:n.closeLabel,type:n.closeButtonType,onTap:function(e){n.inputObj.callback(void 0)}},{text:n.setLabel,type:n.setButtonType,onTap:function(e){n.loadingContent=!0,n.numericValue=Number(n.isNegative?-n.wholeNumber:n.wholeNumber)+Number(l(n.decimalNumber,n.precision)),n.inputObj.callback(n.numericValue)}}]})):(n.wholeNumber=o(n.inputValue),n.decimalNumber=0,n.numericValue=Number(o(n.wholeNumber))+Number(l(n.decimalNumber,n.precision)),e.show({templateUrl:"ionic-numberpicker-whole.html",title:n.titleLabel,subTitle:"",scope:n,buttons:[{text:n.closeLabel,type:n.closeButtonType,onTap:function(e){n.inputObj.callback(void 0)}},{text:n.setLabel,type:n.setButtonType,onTap:function(e){n.loadingContent=!0,n.inputObj.callback(n.isNegative?-n.wholeNumber:n.wholeNumber)}}]}))})}}}angular.module("ionic-numberpicker").directive("ionicNumberpicker",e),e.$inject=["$ionicPopup"]}(); \ No newline at end of file diff --git a/dist/templates.js b/dist/templates.js index f7ab921..e0102e2 100755 --- a/dist/templates.js +++ b/dist/templates.js @@ -6,7 +6,7 @@ try { } module.run(['$templateCache', function($templateCache) { $templateCache.put('ionic-numberpicker-decimal.html', - '
'); + '
{{wholeNumber}}
{{decimalDisplay()}}
'); }]); })(); @@ -18,6 +18,6 @@ try { } module.run(['$templateCache', function($templateCache) { $templateCache.put('ionic-numberpicker-whole.html', - '
'); + '
{{wholeNumber}}
'); }]); })(); diff --git a/src/ionic-numberpicker-decimal.html b/src/ionic-numberpicker-decimal.html index dc78b43..785dc8f 100755 --- a/src/ionic-numberpicker-decimal.html +++ b/src/ionic-numberpicker-decimal.html @@ -1,23 +1,28 @@
- - + -
+
{{wholeNumber}}
-
+ ng-mousedown="startDecimalUp()" ng-mouseup="stopDecimalUp()" ng-mouseleave="stopDecimalUp()" + ng-touchstart="startDecimalUp()" ng-touchend="stopDecimalUp()"> + +
{{decimalDisplay()}}
+ ng-mousedown="startDecimalDown()" ng-mouseup="stopDecimalDown()" ng-mouseleave="stopDecimalDown()" + ng-touchstart="startDecimalDown()" ng-touchend="stopDecimalDown()"> +
diff --git a/src/ionic-numberpicker-whole.html b/src/ionic-numberpicker-whole.html index 7224319..135f896 100755 --- a/src/ionic-numberpicker-whole.html +++ b/src/ionic-numberpicker-whole.html @@ -1,14 +1,15 @@
- - + -
+
{{wholeNumber}}
diff --git a/src/ionic-numberpicker.directive.js b/src/ionic-numberpicker.directive.js index d82c3e8..ca19fce 100755 --- a/src/ionic-numberpicker.directive.js +++ b/src/ionic-numberpicker.directive.js @@ -35,6 +35,7 @@ scope.wholeNumber = 0; scope.decimalNumber = 0; scope.isNegative = false; + scope.sign = ''; scope.numericValue = Number(scope.wholeNumber + '.' + scope.decimalNumber); //Changing the style @@ -55,6 +56,11 @@ scope.decimalNumber = strip(scope.numericValue % 1); scope.checkMax(); + document.getElementById("wholeNumber").innerHTML = scope.wholeNumber; + if (document.getElementById("decimalNumber")) { + document.getElementById("decimalNumber").innerHTML = scope.decimalDisplay(); + } + document.getElementById("sign").innerHTML = scope.sign; }; //Decreasing the whole number @@ -64,6 +70,11 @@ scope.decimalNumber = strip(scope.numericValue % 1); scope.checkMin(); + document.getElementById("wholeNumber").innerHTML = scope.wholeNumber; + if (document.getElementById("decimalNumber")) { + document.getElementById("decimalNumber").innerHTML = scope.decimalDisplay(); + } + document.getElementById("sign").innerHTML = scope.sign; }; //Increasing the decimal number @@ -73,6 +84,11 @@ scope.decimalNumber = strip(scope.numericValue % 1); scope.checkMax(); + document.getElementById("wholeNumber").innerHTML = scope.wholeNumber; + if (document.getElementById("decimalNumber")) { + document.getElementById("decimalNumber").innerHTML = scope.decimalDisplay(); + } + document.getElementById("sign").innerHTML = scope.sign; }; //Decreasing the decimal number @@ -82,6 +98,55 @@ scope.decimalNumber = strip(scope.numericValue % 1); scope.checkMin(); + document.getElementById("wholeNumber").innerHTML = scope.wholeNumber; + if (document.getElementById("decimalNumber")) { + document.getElementById("decimalNumber").innerHTML = scope.decimalDisplay(); + } + document.getElementById("sign").innerHTML = scope.sign; + }; + + scope.startWholeUp = function() { + scope.increaseWhole(); + scope.intervalID = setInterval(function(){ + scope.increaseWhole(); + }, 100) + }; + + scope.stopWholeUp = function() { + clearInterval(scope.intervalID); + }; + + scope.startWholeDown = function() { + scope.decreaseWhole(); + scope.intervalID = setInterval(function(){ + scope.decreaseWhole(); + }, 100) + }; + + scope.stopWholeDown = function() { + clearInterval(scope.intervalID); + }; + + scope.startDecimalUp = function() { + scope.increaseDecimal(); + scope.intervalID = setInterval(function(){ + scope.increaseDecimal(); + }, 100) + }; + + scope.stopDecimalUp = function() { + clearInterval(scope.intervalID); + }; + + scope.startDecimalDown = function() { + scope.decreaseDecimal(); + scope.intervalID = setInterval(function(){ + scope.decreaseDecimal(); + }, 100) + }; + + scope.stopDecimalDown = function() { + clearInterval(scope.intervalID); }; function strip(number, precision) { @@ -94,9 +159,11 @@ if (number >= 0) { scope.isNegative = false; + scope.sign = ''; returnVal = Math.floor(number); } else { scope.isNegative = true; + scope.sign = '-'; returnVal = Math.ceil(number); } @@ -150,7 +217,7 @@ onTap: function (e) { scope.loadingContent = true; - scope.numericValue = Number(scope.wholeNumber) + Number(strip(scope.decimalNumber, scope.precision)); + scope.numericValue = Number(scope.isNegative ? -scope.wholeNumber : scope.wholeNumber) + Number(strip(scope.decimalNumber, scope.precision)); scope.inputObj.callback(scope.numericValue); } } @@ -182,7 +249,7 @@ onTap: function (e) { scope.loadingContent = true; - scope.inputObj.callback(scope.wholeNumber); + scope.inputObj.callback(scope.isNegative ? -scope.wholeNumber : scope.wholeNumber); } } ] From 4ad8f4fedf8dda284fbf360d0db70d002a627d22 Mon Sep 17 00:00:00 2001 From: MATSUBAYASHI 'Shaolin' Kohji Date: Mon, 23 May 2016 15:47:43 +0900 Subject: [PATCH 02/10] (bit of code refactoring) --- dist/ionic-numberpicker.bundle.min.js | 2 +- src/ionic-numberpicker.directive.js | 32 ++++++++++----------------- 2 files changed, 13 insertions(+), 21 deletions(-) diff --git a/dist/ionic-numberpicker.bundle.min.js b/dist/ionic-numberpicker.bundle.min.js index 68a426e..eebd5aa 100755 --- a/dist/ionic-numberpicker.bundle.min.js +++ b/dist/ionic-numberpicker.bundle.min.js @@ -1 +1 @@ -!function(e,n){var t=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(t),t.styleSheet)t.styleSheet.disabled||(t.styleSheet.cssText=n);else try{t.innerHTML=n}catch(i){t.innerText=n}}(document,"/* Empty. Add your own CSS if you like */\n\n.numberPickerDecimal {\n color: #000;\n padding-top: 45px;\n text-align: center;\n font-weight: bold;\n}\n\n.numberPickerArrows {\n width: 100%;\n}\n\n.numberPickerBoxText {\n color: #000;\n height: 40px;\n text-align: center;\n border: 1px solid #dddddd;\n font-size: 16px;\n padding-top: 5px;\n}\n\n.overflowShow {\n white-space: normal !important;\n}"),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(n){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-decimal.html",'
{{wholeNumber}}
{{decimalDisplay()}}
')}])}(),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(n){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-whole.html",'
{{wholeNumber}}
')}])}(),function(){"use strict";angular.module("ionic-numberpicker",["ionic","ionic-numberpicker.templates"])}(),function(){"use strict";function e(e){return{restrict:"AE",replace:!0,scope:{inputObj:"=inputObj"},link:function(n,t,i){function l(e,t){var i=parseFloat(e).toFixed(n.precision);return i}function o(e){var t=0;return e>=0?(n.isNegative=!1,n.sign="",t=Math.floor(e)):(n.isNegative=!0,n.sign="-",t=Math.ceil(e)),Math.abs(t)}n.inputValue=n.inputObj.inputValue?n.inputObj.inputValue:0,n.minValue=n.inputObj.minValue,n.maxValue=n.inputObj.maxValue,n.precision=n.inputObj.precision?n.inputObj.precision:3,n.format=n.inputObj.format?n.inputObj.format:"DECIMAL",n.unit=n.inputObj.unit?n.inputObj.unit:"",n.titleLabel=n.inputObj.titleLabel?n.inputObj.titleLabel:"Number Picker",n.setLabel=n.inputObj.setLabel?n.inputObj.setLabel:"Set",n.closeLabel=n.inputObj.closeLabel?n.inputObj.closeLabel:"Close",n.decimalStep=n.inputObj.decimalStep?n.inputObj.decimalStep:.25,n.decimalCharacter=n.inputObj.decimalCharacter?n.inputObj.decimalCharacter:".",n.setButtonType=n.inputObj.setButtonType?n.inputObj.setButtonType:"button-positive",n.closeButtonType=n.inputObj.closeButtonType?n.inputObj.closeButtonType:"button-stable",n.wholeNumber=0,n.decimalNumber=0,n.isNegative=!1,n.sign="",n.numericValue=Number(n.wholeNumber+"."+n.decimalNumber),n.changeFormat=function(){n.format="DECIMAL"===n.format?"WHOLE":"DECIMAL"},n.decimalDisplay=function(){var e=n.decimalNumber.toString(),t=e.indexOf(".");return e.substring(t+1)},n.increaseWhole=function(){n.numericValue+=1,n.wholeNumber=o(n.numericValue),n.decimalNumber=l(n.numericValue%1),n.checkMax(),document.getElementById("wholeNumber").innerHTML=n.wholeNumber,document.getElementById("decimalNumber")&&(document.getElementById("decimalNumber").innerHTML=n.decimalDisplay()),document.getElementById("sign").innerHTML=n.sign},n.decreaseWhole=function(){n.numericValue-=1,n.wholeNumber=o(n.numericValue),n.decimalNumber=l(n.numericValue%1),n.checkMin(),document.getElementById("wholeNumber").innerHTML=n.wholeNumber,document.getElementById("decimalNumber")&&(document.getElementById("decimalNumber").innerHTML=n.decimalDisplay()),document.getElementById("sign").innerHTML=n.sign},n.increaseDecimal=function(){n.numericValue+=n.decimalStep,n.wholeNumber=o(n.numericValue),n.decimalNumber=l(n.numericValue%1),n.checkMax(),document.getElementById("wholeNumber").innerHTML=n.wholeNumber,document.getElementById("decimalNumber")&&(document.getElementById("decimalNumber").innerHTML=n.decimalDisplay()),document.getElementById("sign").innerHTML=n.sign},n.decreaseDecimal=function(){n.numericValue-=n.decimalStep,n.wholeNumber=o(n.numericValue),n.decimalNumber=l(n.numericValue%1),n.checkMin(),document.getElementById("wholeNumber").innerHTML=n.wholeNumber,document.getElementById("decimalNumber")&&(document.getElementById("decimalNumber").innerHTML=n.decimalDisplay()),document.getElementById("sign").innerHTML=n.sign},n.startWholeUp=function(){n.increaseWhole(),n.intervalID=setInterval(function(){n.increaseWhole()},100)},n.stopWholeUp=function(){clearInterval(n.intervalID)},n.startWholeDown=function(){n.decreaseWhole(),n.intervalID=setInterval(function(){n.decreaseWhole()},100)},n.stopWholeDown=function(){clearInterval(n.intervalID)},n.startDecimalUp=function(){n.increaseDecimal(),n.intervalID=setInterval(function(){n.increaseDecimal()},100)},n.stopDecimalUp=function(){clearInterval(n.intervalID)},n.startDecimalDown=function(){n.decreaseDecimal(),n.intervalID=setInterval(function(){n.decreaseDecimal()},100)},n.stopDecimalDown=function(){clearInterval(n.intervalID)},n.checkMax=function(){n.numericValue>=n.maxValue&&(n.numericValue=n.maxValue,n.wholeNumber=o(n.numericValue),n.decimalNumber=l(n.numericValue%1))},n.checkMin=function(){n.numericValue<=n.minValue&&(n.numericValue=n.minValue,n.wholeNumber=o(n.numericValue),n.decimalNumber=l(n.numericValue%1))},t.on("click",function(){"DECIMAL"==n.format?(n.wholeNumber=o(Number(n.inputValue)),n.decimalNumber=n.inputValue%1,n.numericValue=Number(n.wholeNumber)+Number(l(n.decimalNumber,n.precision)),n.decimalNumber=l(n.numericValue%1),e.show({templateUrl:"ionic-numberpicker-decimal.html",title:n.titleLabel,subTitle:"",scope:n,buttons:[{text:n.closeLabel,type:n.closeButtonType,onTap:function(e){n.inputObj.callback(void 0)}},{text:n.setLabel,type:n.setButtonType,onTap:function(e){n.loadingContent=!0,n.numericValue=Number(n.isNegative?-n.wholeNumber:n.wholeNumber)+Number(l(n.decimalNumber,n.precision)),n.inputObj.callback(n.numericValue)}}]})):(n.wholeNumber=o(n.inputValue),n.decimalNumber=0,n.numericValue=Number(o(n.wholeNumber))+Number(l(n.decimalNumber,n.precision)),e.show({templateUrl:"ionic-numberpicker-whole.html",title:n.titleLabel,subTitle:"",scope:n,buttons:[{text:n.closeLabel,type:n.closeButtonType,onTap:function(e){n.inputObj.callback(void 0)}},{text:n.setLabel,type:n.setButtonType,onTap:function(e){n.loadingContent=!0,n.inputObj.callback(n.isNegative?-n.wholeNumber:n.wholeNumber)}}]}))})}}}angular.module("ionic-numberpicker").directive("ionicNumberpicker",e),e.$inject=["$ionicPopup"]}(); \ No newline at end of file +!function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(i){n.innerText=t}}(document,"/* Empty. Add your own CSS if you like */\n\n.numberPickerDecimal {\n color: #000;\n padding-top: 45px;\n text-align: center;\n font-weight: bold;\n}\n\n.numberPickerArrows {\n width: 100%;\n}\n\n.numberPickerBoxText {\n color: #000;\n height: 40px;\n text-align: center;\n border: 1px solid #dddddd;\n font-size: 16px;\n padding-top: 5px;\n}\n\n.overflowShow {\n white-space: normal !important;\n}"),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-decimal.html",'
{{wholeNumber}}
{{decimalDisplay()}}
')}])}(),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-whole.html",'
{{wholeNumber}}
')}])}(),function(){"use strict";angular.module("ionic-numberpicker",["ionic","ionic-numberpicker.templates"])}(),function(){"use strict";function e(e){return{restrict:"AE",replace:!0,scope:{inputObj:"=inputObj"},link:function(t,n,i){function o(e,n){var i=parseFloat(e).toFixed(t.precision);return i}function l(e){var n=0;return e>=0?(t.isNegative=!1,t.sign="",n=Math.floor(e)):(t.isNegative=!0,t.sign="-",n=Math.ceil(e)),Math.abs(n)}t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.minValue=t.inputObj.minValue,t.maxValue=t.inputObj.maxValue,t.precision=t.inputObj.precision?t.inputObj.precision:3,t.format=t.inputObj.format?t.inputObj.format:"DECIMAL",t.unit=t.inputObj.unit?t.inputObj.unit:"",t.titleLabel=t.inputObj.titleLabel?t.inputObj.titleLabel:"Number Picker",t.setLabel=t.inputObj.setLabel?t.inputObj.setLabel:"Set",t.closeLabel=t.inputObj.closeLabel?t.inputObj.closeLabel:"Close",t.decimalStep=t.inputObj.decimalStep?t.inputObj.decimalStep:.25,t.decimalCharacter=t.inputObj.decimalCharacter?t.inputObj.decimalCharacter:".",t.setButtonType=t.inputObj.setButtonType?t.inputObj.setButtonType:"button-positive",t.closeButtonType=t.inputObj.closeButtonType?t.inputObj.closeButtonType:"button-stable",t.wholeNumber=0,t.decimalNumber=0,t.isNegative=!1,t.sign="",t.numericValue=Number(t.wholeNumber+"."+t.decimalNumber),t.changeFormat=function(){t.format="DECIMAL"===t.format?"WHOLE":"DECIMAL"},t.decimalDisplay=function(){var e=t.decimalNumber.toString(),n=e.indexOf(".");return e.substring(n+1)},t.updateDisplay=function(){document.getElementById("wholeNumber").innerHTML=t.wholeNumber,document.getElementById("decimalNumber")&&(document.getElementById("decimalNumber").innerHTML=t.decimalDisplay()),document.getElementById("sign").innerHTML=t.sign},t.increaseWhole=function(){t.numericValue+=1,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseWhole=function(){t.numericValue-=1,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.increaseDecimal=function(){t.numericValue+=t.decimalStep,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseDecimal=function(){t.numericValue-=t.decimalStep,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.startWholeUp=function(){t.increaseWhole(),t.intervalID=setInterval(function(){t.increaseWhole()},100)},t.stopWholeUp=function(){clearInterval(t.intervalID)},t.startWholeDown=function(){t.decreaseWhole(),t.intervalID=setInterval(function(){t.decreaseWhole()},100)},t.stopWholeDown=function(){clearInterval(t.intervalID)},t.startDecimalUp=function(){t.increaseDecimal(),t.intervalID=setInterval(function(){t.increaseDecimal()},100)},t.stopDecimalUp=function(){clearInterval(t.intervalID)},t.startDecimalDown=function(){t.decreaseDecimal(),t.intervalID=setInterval(function(){t.decreaseDecimal()},100)},t.stopDecimalDown=function(){clearInterval(t.intervalID)},t.checkMax=function(){t.numericValue>=t.maxValue&&(t.numericValue=t.maxValue,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1))},t.checkMin=function(){t.numericValue<=t.minValue&&(t.numericValue=t.minValue,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1))},n.on("click",function(){"DECIMAL"==t.format?(t.wholeNumber=l(Number(t.inputValue)),t.decimalNumber=t.inputValue%1,t.numericValue=Number(t.wholeNumber)+Number(o(t.decimalNumber,t.precision)),t.decimalNumber=o(t.numericValue%1),e.show({templateUrl:"ionic-numberpicker-decimal.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.numericValue=Number(t.isNegative?-t.wholeNumber:t.wholeNumber)+Number(o(t.decimalNumber,t.precision)),t.inputObj.callback(t.numericValue)}}]})):(t.wholeNumber=l(t.inputValue),t.decimalNumber=0,t.numericValue=Number(l(t.wholeNumber))+Number(o(t.decimalNumber,t.precision)),e.show({templateUrl:"ionic-numberpicker-whole.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.inputObj.callback(t.isNegative?-t.wholeNumber:t.wholeNumber)}}]}))})}}}angular.module("ionic-numberpicker").directive("ionicNumberpicker",e),e.$inject=["$ionicPopup"]}(); \ No newline at end of file diff --git a/src/ionic-numberpicker.directive.js b/src/ionic-numberpicker.directive.js index ca19fce..3edfd7e 100755 --- a/src/ionic-numberpicker.directive.js +++ b/src/ionic-numberpicker.directive.js @@ -49,6 +49,14 @@ return sValue.substring(index + 1); } + scope.updateDisplay = function() { + document.getElementById("wholeNumber").innerHTML = scope.wholeNumber; + if (document.getElementById("decimalNumber")) { + document.getElementById("decimalNumber").innerHTML = scope.decimalDisplay(); + } + document.getElementById("sign").innerHTML = scope.sign; + }; + //Increasing the whole number scope.increaseWhole = function () { scope.numericValue += 1; @@ -56,11 +64,7 @@ scope.decimalNumber = strip(scope.numericValue % 1); scope.checkMax(); - document.getElementById("wholeNumber").innerHTML = scope.wholeNumber; - if (document.getElementById("decimalNumber")) { - document.getElementById("decimalNumber").innerHTML = scope.decimalDisplay(); - } - document.getElementById("sign").innerHTML = scope.sign; + scope.updateDisplay(); }; //Decreasing the whole number @@ -70,11 +74,7 @@ scope.decimalNumber = strip(scope.numericValue % 1); scope.checkMin(); - document.getElementById("wholeNumber").innerHTML = scope.wholeNumber; - if (document.getElementById("decimalNumber")) { - document.getElementById("decimalNumber").innerHTML = scope.decimalDisplay(); - } - document.getElementById("sign").innerHTML = scope.sign; + scope.updateDisplay(); }; //Increasing the decimal number @@ -84,11 +84,7 @@ scope.decimalNumber = strip(scope.numericValue % 1); scope.checkMax(); - document.getElementById("wholeNumber").innerHTML = scope.wholeNumber; - if (document.getElementById("decimalNumber")) { - document.getElementById("decimalNumber").innerHTML = scope.decimalDisplay(); - } - document.getElementById("sign").innerHTML = scope.sign; + scope.updateDisplay(); }; //Decreasing the decimal number @@ -98,11 +94,7 @@ scope.decimalNumber = strip(scope.numericValue % 1); scope.checkMin(); - document.getElementById("wholeNumber").innerHTML = scope.wholeNumber; - if (document.getElementById("decimalNumber")) { - document.getElementById("decimalNumber").innerHTML = scope.decimalDisplay(); - } - document.getElementById("sign").innerHTML = scope.sign; + scope.updateDisplay(); }; scope.startWholeUp = function() { From 9442b04a98b9d765cb0d3138a5c11dc7a65acb7c Mon Sep 17 00:00:00 2001 From: MATSUBAYASHI 'Shaolin' Kohji Date: Tue, 24 May 2016 13:49:05 +0900 Subject: [PATCH 03/10] reflect currentmost inputValue when the dialog is opened next (also inputValue is updated inside the callback) --- dist/ionic-numberpicker.bundle.min.js | 2 +- src/ionic-numberpicker.directive.js | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/dist/ionic-numberpicker.bundle.min.js b/dist/ionic-numberpicker.bundle.min.js index eebd5aa..14b56af 100755 --- a/dist/ionic-numberpicker.bundle.min.js +++ b/dist/ionic-numberpicker.bundle.min.js @@ -1 +1 @@ -!function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(i){n.innerText=t}}(document,"/* Empty. Add your own CSS if you like */\n\n.numberPickerDecimal {\n color: #000;\n padding-top: 45px;\n text-align: center;\n font-weight: bold;\n}\n\n.numberPickerArrows {\n width: 100%;\n}\n\n.numberPickerBoxText {\n color: #000;\n height: 40px;\n text-align: center;\n border: 1px solid #dddddd;\n font-size: 16px;\n padding-top: 5px;\n}\n\n.overflowShow {\n white-space: normal !important;\n}"),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-decimal.html",'
{{wholeNumber}}
{{decimalDisplay()}}
')}])}(),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-whole.html",'
{{wholeNumber}}
')}])}(),function(){"use strict";angular.module("ionic-numberpicker",["ionic","ionic-numberpicker.templates"])}(),function(){"use strict";function e(e){return{restrict:"AE",replace:!0,scope:{inputObj:"=inputObj"},link:function(t,n,i){function o(e,n){var i=parseFloat(e).toFixed(t.precision);return i}function l(e){var n=0;return e>=0?(t.isNegative=!1,t.sign="",n=Math.floor(e)):(t.isNegative=!0,t.sign="-",n=Math.ceil(e)),Math.abs(n)}t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.minValue=t.inputObj.minValue,t.maxValue=t.inputObj.maxValue,t.precision=t.inputObj.precision?t.inputObj.precision:3,t.format=t.inputObj.format?t.inputObj.format:"DECIMAL",t.unit=t.inputObj.unit?t.inputObj.unit:"",t.titleLabel=t.inputObj.titleLabel?t.inputObj.titleLabel:"Number Picker",t.setLabel=t.inputObj.setLabel?t.inputObj.setLabel:"Set",t.closeLabel=t.inputObj.closeLabel?t.inputObj.closeLabel:"Close",t.decimalStep=t.inputObj.decimalStep?t.inputObj.decimalStep:.25,t.decimalCharacter=t.inputObj.decimalCharacter?t.inputObj.decimalCharacter:".",t.setButtonType=t.inputObj.setButtonType?t.inputObj.setButtonType:"button-positive",t.closeButtonType=t.inputObj.closeButtonType?t.inputObj.closeButtonType:"button-stable",t.wholeNumber=0,t.decimalNumber=0,t.isNegative=!1,t.sign="",t.numericValue=Number(t.wholeNumber+"."+t.decimalNumber),t.changeFormat=function(){t.format="DECIMAL"===t.format?"WHOLE":"DECIMAL"},t.decimalDisplay=function(){var e=t.decimalNumber.toString(),n=e.indexOf(".");return e.substring(n+1)},t.updateDisplay=function(){document.getElementById("wholeNumber").innerHTML=t.wholeNumber,document.getElementById("decimalNumber")&&(document.getElementById("decimalNumber").innerHTML=t.decimalDisplay()),document.getElementById("sign").innerHTML=t.sign},t.increaseWhole=function(){t.numericValue+=1,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseWhole=function(){t.numericValue-=1,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.increaseDecimal=function(){t.numericValue+=t.decimalStep,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseDecimal=function(){t.numericValue-=t.decimalStep,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.startWholeUp=function(){t.increaseWhole(),t.intervalID=setInterval(function(){t.increaseWhole()},100)},t.stopWholeUp=function(){clearInterval(t.intervalID)},t.startWholeDown=function(){t.decreaseWhole(),t.intervalID=setInterval(function(){t.decreaseWhole()},100)},t.stopWholeDown=function(){clearInterval(t.intervalID)},t.startDecimalUp=function(){t.increaseDecimal(),t.intervalID=setInterval(function(){t.increaseDecimal()},100)},t.stopDecimalUp=function(){clearInterval(t.intervalID)},t.startDecimalDown=function(){t.decreaseDecimal(),t.intervalID=setInterval(function(){t.decreaseDecimal()},100)},t.stopDecimalDown=function(){clearInterval(t.intervalID)},t.checkMax=function(){t.numericValue>=t.maxValue&&(t.numericValue=t.maxValue,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1))},t.checkMin=function(){t.numericValue<=t.minValue&&(t.numericValue=t.minValue,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1))},n.on("click",function(){"DECIMAL"==t.format?(t.wholeNumber=l(Number(t.inputValue)),t.decimalNumber=t.inputValue%1,t.numericValue=Number(t.wholeNumber)+Number(o(t.decimalNumber,t.precision)),t.decimalNumber=o(t.numericValue%1),e.show({templateUrl:"ionic-numberpicker-decimal.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.numericValue=Number(t.isNegative?-t.wholeNumber:t.wholeNumber)+Number(o(t.decimalNumber,t.precision)),t.inputObj.callback(t.numericValue)}}]})):(t.wholeNumber=l(t.inputValue),t.decimalNumber=0,t.numericValue=Number(l(t.wholeNumber))+Number(o(t.decimalNumber,t.precision)),e.show({templateUrl:"ionic-numberpicker-whole.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.inputObj.callback(t.isNegative?-t.wholeNumber:t.wholeNumber)}}]}))})}}}angular.module("ionic-numberpicker").directive("ionicNumberpicker",e),e.$inject=["$ionicPopup"]}(); \ No newline at end of file +!function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(i){n.innerText=t}}(document,"/* Empty. Add your own CSS if you like */\n\n.numberPickerDecimal {\n color: #000;\n padding-top: 45px;\n text-align: center;\n font-weight: bold;\n}\n\n.numberPickerArrows {\n width: 100%;\n}\n\n.numberPickerBoxText {\n color: #000;\n height: 40px;\n text-align: center;\n border: 1px solid #dddddd;\n font-size: 16px;\n padding-top: 5px;\n}\n\n.overflowShow {\n white-space: normal !important;\n}"),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-decimal.html",'
{{wholeNumber}}
{{decimalDisplay()}}
')}])}(),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-whole.html",'
{{wholeNumber}}
')}])}(),function(){"use strict";angular.module("ionic-numberpicker",["ionic","ionic-numberpicker.templates"])}(),function(){"use strict";function e(e){return{restrict:"AE",replace:!0,scope:{inputObj:"=inputObj"},link:function(t,n,i){function l(e,n){var i=parseFloat(e).toFixed(t.precision);return i}function o(e){var n=0;return e>=0?(t.isNegative=!1,t.sign="",n=Math.floor(e)):(t.isNegative=!0,t.sign="-",n=Math.ceil(e)),Math.abs(n)}t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.minValue=t.inputObj.minValue,t.maxValue=t.inputObj.maxValue,t.precision=t.inputObj.precision?t.inputObj.precision:3,t.format=t.inputObj.format?t.inputObj.format:"DECIMAL",t.unit=t.inputObj.unit?t.inputObj.unit:"",t.titleLabel=t.inputObj.titleLabel?t.inputObj.titleLabel:"Number Picker",t.setLabel=t.inputObj.setLabel?t.inputObj.setLabel:"Set",t.closeLabel=t.inputObj.closeLabel?t.inputObj.closeLabel:"Close",t.decimalStep=t.inputObj.decimalStep?t.inputObj.decimalStep:.25,t.decimalCharacter=t.inputObj.decimalCharacter?t.inputObj.decimalCharacter:".",t.setButtonType=t.inputObj.setButtonType?t.inputObj.setButtonType:"button-positive",t.closeButtonType=t.inputObj.closeButtonType?t.inputObj.closeButtonType:"button-stable",t.wholeNumber=0,t.decimalNumber=0,t.isNegative=!1,t.sign="",t.numericValue=Number(t.wholeNumber+"."+t.decimalNumber),t.changeFormat=function(){t.format="DECIMAL"===t.format?"WHOLE":"DECIMAL"},t.decimalDisplay=function(){var e=t.decimalNumber.toString(),n=e.indexOf(".");return e.substring(n+1)},t.updateDisplay=function(){document.getElementById("wholeNumber").innerHTML=t.wholeNumber,document.getElementById("decimalNumber")&&(document.getElementById("decimalNumber").innerHTML=t.decimalDisplay()),document.getElementById("sign").innerHTML=t.sign},t.increaseWhole=function(){t.numericValue+=1,t.wholeNumber=o(t.numericValue),t.decimalNumber=l(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseWhole=function(){t.numericValue-=1,t.wholeNumber=o(t.numericValue),t.decimalNumber=l(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.increaseDecimal=function(){t.numericValue+=t.decimalStep,t.wholeNumber=o(t.numericValue),t.decimalNumber=l(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseDecimal=function(){t.numericValue-=t.decimalStep,t.wholeNumber=o(t.numericValue),t.decimalNumber=l(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.startWholeUp=function(){t.increaseWhole(),t.intervalID=setInterval(function(){t.increaseWhole()},100)},t.stopWholeUp=function(){clearInterval(t.intervalID)},t.startWholeDown=function(){t.decreaseWhole(),t.intervalID=setInterval(function(){t.decreaseWhole()},100)},t.stopWholeDown=function(){clearInterval(t.intervalID)},t.startDecimalUp=function(){t.increaseDecimal(),t.intervalID=setInterval(function(){t.increaseDecimal()},100)},t.stopDecimalUp=function(){clearInterval(t.intervalID)},t.startDecimalDown=function(){t.decreaseDecimal(),t.intervalID=setInterval(function(){t.decreaseDecimal()},100)},t.stopDecimalDown=function(){clearInterval(t.intervalID)},t.checkMax=function(){t.numericValue>=t.maxValue&&(t.numericValue=t.maxValue,t.wholeNumber=o(t.numericValue),t.decimalNumber=l(t.numericValue%1))},t.checkMin=function(){t.numericValue<=t.minValue&&(t.numericValue=t.minValue,t.wholeNumber=o(t.numericValue),t.decimalNumber=l(t.numericValue%1))},n.on("click",function(){"DECIMAL"==t.format?(t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.wholeNumber=o(Number(t.inputValue)),t.decimalNumber=t.inputValue%1,t.numericValue=Number(t.wholeNumber)+Number(l(t.decimalNumber,t.precision)),t.decimalNumber=l(t.numericValue%1),e.show({templateUrl:"ionic-numberpicker-decimal.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.numericValue=Number(t.isNegative?-t.wholeNumber:t.wholeNumber)+Number(l(t.decimalNumber,t.precision)),t.inputObj.callback(t.numericValue)}}]})):(t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.wholeNumber=o(t.inputValue),t.decimalNumber=0,t.numericValue=Number(o(t.wholeNumber))+Number(l(t.decimalNumber,t.precision)),e.show({templateUrl:"ionic-numberpicker-whole.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.inputObj.callback(t.isNegative?-t.wholeNumber:t.wholeNumber)}}]}))})}}}angular.module("ionic-numberpicker").directive("ionicNumberpicker",e),e.$inject=["$ionicPopup"]}(); \ No newline at end of file diff --git a/src/ionic-numberpicker.directive.js b/src/ionic-numberpicker.directive.js index 3edfd7e..a8adf3b 100755 --- a/src/ionic-numberpicker.directive.js +++ b/src/ionic-numberpicker.directive.js @@ -184,6 +184,9 @@ element.on("click", function () { if (scope.format == 'DECIMAL') { + //Reflect currentmost value (when the dialog opened twice) + scope.inputValue = scope.inputObj.inputValue ? scope.inputObj.inputValue : 0; + //Get Values from Initial Number scope.wholeNumber = findWholeNumber(Number(scope.inputValue)); scope.decimalNumber = scope.inputValue % 1; @@ -217,6 +220,8 @@ }); } else { + //Reflect currentmost value (when the dialog opened twice) + scope.inputValue = scope.inputObj.inputValue ? scope.inputObj.inputValue : 0; //Get Values from Initial Number scope.wholeNumber = findWholeNumber(scope.inputValue); scope.decimalNumber = 0; From 650496929f955ac26665b6b0a080eeed4d0637c7 Mon Sep 17 00:00:00 2001 From: MATSUBAYASHI 'Shaolin' Kohji Date: Tue, 24 May 2016 16:52:42 +0900 Subject: [PATCH 04/10] one more fix (tap is not detected as twice on touchscreen) --- dist/ionic-numberpicker.bundle.min.js | 2 +- src/ionic-numberpicker.directive.js | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/dist/ionic-numberpicker.bundle.min.js b/dist/ionic-numberpicker.bundle.min.js index 14b56af..01c3dbe 100755 --- a/dist/ionic-numberpicker.bundle.min.js +++ b/dist/ionic-numberpicker.bundle.min.js @@ -1 +1 @@ -!function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(i){n.innerText=t}}(document,"/* Empty. Add your own CSS if you like */\n\n.numberPickerDecimal {\n color: #000;\n padding-top: 45px;\n text-align: center;\n font-weight: bold;\n}\n\n.numberPickerArrows {\n width: 100%;\n}\n\n.numberPickerBoxText {\n color: #000;\n height: 40px;\n text-align: center;\n border: 1px solid #dddddd;\n font-size: 16px;\n padding-top: 5px;\n}\n\n.overflowShow {\n white-space: normal !important;\n}"),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-decimal.html",'
{{wholeNumber}}
{{decimalDisplay()}}
')}])}(),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-whole.html",'
{{wholeNumber}}
')}])}(),function(){"use strict";angular.module("ionic-numberpicker",["ionic","ionic-numberpicker.templates"])}(),function(){"use strict";function e(e){return{restrict:"AE",replace:!0,scope:{inputObj:"=inputObj"},link:function(t,n,i){function l(e,n){var i=parseFloat(e).toFixed(t.precision);return i}function o(e){var n=0;return e>=0?(t.isNegative=!1,t.sign="",n=Math.floor(e)):(t.isNegative=!0,t.sign="-",n=Math.ceil(e)),Math.abs(n)}t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.minValue=t.inputObj.minValue,t.maxValue=t.inputObj.maxValue,t.precision=t.inputObj.precision?t.inputObj.precision:3,t.format=t.inputObj.format?t.inputObj.format:"DECIMAL",t.unit=t.inputObj.unit?t.inputObj.unit:"",t.titleLabel=t.inputObj.titleLabel?t.inputObj.titleLabel:"Number Picker",t.setLabel=t.inputObj.setLabel?t.inputObj.setLabel:"Set",t.closeLabel=t.inputObj.closeLabel?t.inputObj.closeLabel:"Close",t.decimalStep=t.inputObj.decimalStep?t.inputObj.decimalStep:.25,t.decimalCharacter=t.inputObj.decimalCharacter?t.inputObj.decimalCharacter:".",t.setButtonType=t.inputObj.setButtonType?t.inputObj.setButtonType:"button-positive",t.closeButtonType=t.inputObj.closeButtonType?t.inputObj.closeButtonType:"button-stable",t.wholeNumber=0,t.decimalNumber=0,t.isNegative=!1,t.sign="",t.numericValue=Number(t.wholeNumber+"."+t.decimalNumber),t.changeFormat=function(){t.format="DECIMAL"===t.format?"WHOLE":"DECIMAL"},t.decimalDisplay=function(){var e=t.decimalNumber.toString(),n=e.indexOf(".");return e.substring(n+1)},t.updateDisplay=function(){document.getElementById("wholeNumber").innerHTML=t.wholeNumber,document.getElementById("decimalNumber")&&(document.getElementById("decimalNumber").innerHTML=t.decimalDisplay()),document.getElementById("sign").innerHTML=t.sign},t.increaseWhole=function(){t.numericValue+=1,t.wholeNumber=o(t.numericValue),t.decimalNumber=l(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseWhole=function(){t.numericValue-=1,t.wholeNumber=o(t.numericValue),t.decimalNumber=l(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.increaseDecimal=function(){t.numericValue+=t.decimalStep,t.wholeNumber=o(t.numericValue),t.decimalNumber=l(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseDecimal=function(){t.numericValue-=t.decimalStep,t.wholeNumber=o(t.numericValue),t.decimalNumber=l(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.startWholeUp=function(){t.increaseWhole(),t.intervalID=setInterval(function(){t.increaseWhole()},100)},t.stopWholeUp=function(){clearInterval(t.intervalID)},t.startWholeDown=function(){t.decreaseWhole(),t.intervalID=setInterval(function(){t.decreaseWhole()},100)},t.stopWholeDown=function(){clearInterval(t.intervalID)},t.startDecimalUp=function(){t.increaseDecimal(),t.intervalID=setInterval(function(){t.increaseDecimal()},100)},t.stopDecimalUp=function(){clearInterval(t.intervalID)},t.startDecimalDown=function(){t.decreaseDecimal(),t.intervalID=setInterval(function(){t.decreaseDecimal()},100)},t.stopDecimalDown=function(){clearInterval(t.intervalID)},t.checkMax=function(){t.numericValue>=t.maxValue&&(t.numericValue=t.maxValue,t.wholeNumber=o(t.numericValue),t.decimalNumber=l(t.numericValue%1))},t.checkMin=function(){t.numericValue<=t.minValue&&(t.numericValue=t.minValue,t.wholeNumber=o(t.numericValue),t.decimalNumber=l(t.numericValue%1))},n.on("click",function(){"DECIMAL"==t.format?(t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.wholeNumber=o(Number(t.inputValue)),t.decimalNumber=t.inputValue%1,t.numericValue=Number(t.wholeNumber)+Number(l(t.decimalNumber,t.precision)),t.decimalNumber=l(t.numericValue%1),e.show({templateUrl:"ionic-numberpicker-decimal.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.numericValue=Number(t.isNegative?-t.wholeNumber:t.wholeNumber)+Number(l(t.decimalNumber,t.precision)),t.inputObj.callback(t.numericValue)}}]})):(t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.wholeNumber=o(t.inputValue),t.decimalNumber=0,t.numericValue=Number(o(t.wholeNumber))+Number(l(t.decimalNumber,t.precision)),e.show({templateUrl:"ionic-numberpicker-whole.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.inputObj.callback(t.isNegative?-t.wholeNumber:t.wholeNumber)}}]}))})}}}angular.module("ionic-numberpicker").directive("ionicNumberpicker",e),e.$inject=["$ionicPopup"]}(); \ No newline at end of file +!function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(i){n.innerText=t}}(document,"/* Empty. Add your own CSS if you like */\n\n.numberPickerDecimal {\n color: #000;\n padding-top: 45px;\n text-align: center;\n font-weight: bold;\n}\n\n.numberPickerArrows {\n width: 100%;\n}\n\n.numberPickerBoxText {\n color: #000;\n height: 40px;\n text-align: center;\n border: 1px solid #dddddd;\n font-size: 16px;\n padding-top: 5px;\n}\n\n.overflowShow {\n white-space: normal !important;\n}"),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-decimal.html",'
{{wholeNumber}}
{{decimalDisplay()}}
')}])}(),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-whole.html",'
{{wholeNumber}}
')}])}(),function(){"use strict";angular.module("ionic-numberpicker",["ionic","ionic-numberpicker.templates"])}(),function(){"use strict";function e(e){return{restrict:"AE",replace:!0,scope:{inputObj:"=inputObj"},link:function(t,n,i){function o(e,n){var i=parseFloat(e).toFixed(t.precision);return i}function l(e){var n=0;return e>=0?(t.isNegative=!1,t.sign="",n=Math.floor(e)):(t.isNegative=!0,t.sign="-",n=Math.ceil(e)),Math.abs(n)}t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.minValue=t.inputObj.minValue,t.maxValue=t.inputObj.maxValue,t.precision=t.inputObj.precision?t.inputObj.precision:3,t.format=t.inputObj.format?t.inputObj.format:"DECIMAL",t.unit=t.inputObj.unit?t.inputObj.unit:"",t.titleLabel=t.inputObj.titleLabel?t.inputObj.titleLabel:"Number Picker",t.setLabel=t.inputObj.setLabel?t.inputObj.setLabel:"Set",t.closeLabel=t.inputObj.closeLabel?t.inputObj.closeLabel:"Close",t.decimalStep=t.inputObj.decimalStep?t.inputObj.decimalStep:.25,t.decimalCharacter=t.inputObj.decimalCharacter?t.inputObj.decimalCharacter:".",t.setButtonType=t.inputObj.setButtonType?t.inputObj.setButtonType:"button-positive",t.closeButtonType=t.inputObj.closeButtonType?t.inputObj.closeButtonType:"button-stable",t.wholeNumber=0,t.decimalNumber=0,t.isNegative=!1,t.sign="",t.numericValue=Number(t.wholeNumber+"."+t.decimalNumber),t.changeFormat=function(){t.format="DECIMAL"===t.format?"WHOLE":"DECIMAL"},t.decimalDisplay=function(){var e=t.decimalNumber.toString(),n=e.indexOf(".");return e.substring(n+1)},t.updateDisplay=function(){document.getElementById("wholeNumber").innerHTML=t.wholeNumber,document.getElementById("decimalNumber")&&(document.getElementById("decimalNumber").innerHTML=t.decimalDisplay()),document.getElementById("sign").innerHTML=t.sign},t.increaseWhole=function(){t.numericValue+=1,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseWhole=function(){t.numericValue-=1,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.increaseDecimal=function(){t.numericValue+=t.decimalStep,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseDecimal=function(){t.numericValue-=t.decimalStep,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.startWholeUp=function(){t.intervalID=setInterval(function(){t.increaseWhole()},100)},t.stopWholeUp=function(){clearInterval(t.intervalID)},t.startWholeDown=function(){t.intervalID=setInterval(function(){t.decreaseWhole()},100)},t.stopWholeDown=function(){clearInterval(t.intervalID)},t.startDecimalUp=function(){t.intervalID=setInterval(function(){t.increaseDecimal()},100)},t.stopDecimalUp=function(){clearInterval(t.intervalID)},t.startDecimalDown=function(){t.intervalID=setInterval(function(){t.decreaseDecimal()},100)},t.stopDecimalDown=function(){clearInterval(t.intervalID)},t.checkMax=function(){t.numericValue>=t.maxValue&&(t.numericValue=t.maxValue,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1))},t.checkMin=function(){t.numericValue<=t.minValue&&(t.numericValue=t.minValue,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1))},n.on("click",function(){"DECIMAL"==t.format?(t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.wholeNumber=l(Number(t.inputValue)),t.decimalNumber=t.inputValue%1,t.numericValue=Number(t.wholeNumber)+Number(o(t.decimalNumber,t.precision)),t.decimalNumber=o(t.numericValue%1),e.show({templateUrl:"ionic-numberpicker-decimal.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.numericValue=Number(t.isNegative?-t.wholeNumber:t.wholeNumber)+Number(o(t.decimalNumber,t.precision)),t.inputObj.callback(t.numericValue)}}]})):(t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.wholeNumber=l(t.inputValue),t.decimalNumber=0,t.numericValue=Number(l(t.wholeNumber))+Number(o(t.decimalNumber,t.precision)),e.show({templateUrl:"ionic-numberpicker-whole.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.inputObj.callback(t.isNegative?-t.wholeNumber:t.wholeNumber)}}]}))})}}}angular.module("ionic-numberpicker").directive("ionicNumberpicker",e),e.$inject=["$ionicPopup"]}(); \ No newline at end of file diff --git a/src/ionic-numberpicker.directive.js b/src/ionic-numberpicker.directive.js index a8adf3b..7668a3d 100755 --- a/src/ionic-numberpicker.directive.js +++ b/src/ionic-numberpicker.directive.js @@ -98,7 +98,6 @@ }; scope.startWholeUp = function() { - scope.increaseWhole(); scope.intervalID = setInterval(function(){ scope.increaseWhole(); }, 100) @@ -109,7 +108,6 @@ }; scope.startWholeDown = function() { - scope.decreaseWhole(); scope.intervalID = setInterval(function(){ scope.decreaseWhole(); }, 100) @@ -120,7 +118,6 @@ }; scope.startDecimalUp = function() { - scope.increaseDecimal(); scope.intervalID = setInterval(function(){ scope.increaseDecimal(); }, 100) @@ -131,7 +128,6 @@ }; scope.startDecimalDown = function() { - scope.decreaseDecimal(); scope.intervalID = setInterval(function(){ scope.decreaseDecimal(); }, 100) From 59a3c13d7dae96c85339c2dc8327c6574e18e181 Mon Sep 17 00:00:00 2001 From: MATSUBAYASHI 'Shaolin' Kohji Date: Tue, 31 May 2016 17:48:58 +0900 Subject: [PATCH 05/10] wrap setInterval with setTImeout to work it better --- dist/ionic-numberpicker.bundle.min.js | 2 +- src/ionic-numberpicker.directive.js | 48 ++++++++++++++++++--------- 2 files changed, 33 insertions(+), 17 deletions(-) diff --git a/dist/ionic-numberpicker.bundle.min.js b/dist/ionic-numberpicker.bundle.min.js index 01c3dbe..b099b81 100755 --- a/dist/ionic-numberpicker.bundle.min.js +++ b/dist/ionic-numberpicker.bundle.min.js @@ -1 +1 @@ -!function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(i){n.innerText=t}}(document,"/* Empty. Add your own CSS if you like */\n\n.numberPickerDecimal {\n color: #000;\n padding-top: 45px;\n text-align: center;\n font-weight: bold;\n}\n\n.numberPickerArrows {\n width: 100%;\n}\n\n.numberPickerBoxText {\n color: #000;\n height: 40px;\n text-align: center;\n border: 1px solid #dddddd;\n font-size: 16px;\n padding-top: 5px;\n}\n\n.overflowShow {\n white-space: normal !important;\n}"),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-decimal.html",'
{{wholeNumber}}
{{decimalDisplay()}}
')}])}(),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-whole.html",'
{{wholeNumber}}
')}])}(),function(){"use strict";angular.module("ionic-numberpicker",["ionic","ionic-numberpicker.templates"])}(),function(){"use strict";function e(e){return{restrict:"AE",replace:!0,scope:{inputObj:"=inputObj"},link:function(t,n,i){function o(e,n){var i=parseFloat(e).toFixed(t.precision);return i}function l(e){var n=0;return e>=0?(t.isNegative=!1,t.sign="",n=Math.floor(e)):(t.isNegative=!0,t.sign="-",n=Math.ceil(e)),Math.abs(n)}t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.minValue=t.inputObj.minValue,t.maxValue=t.inputObj.maxValue,t.precision=t.inputObj.precision?t.inputObj.precision:3,t.format=t.inputObj.format?t.inputObj.format:"DECIMAL",t.unit=t.inputObj.unit?t.inputObj.unit:"",t.titleLabel=t.inputObj.titleLabel?t.inputObj.titleLabel:"Number Picker",t.setLabel=t.inputObj.setLabel?t.inputObj.setLabel:"Set",t.closeLabel=t.inputObj.closeLabel?t.inputObj.closeLabel:"Close",t.decimalStep=t.inputObj.decimalStep?t.inputObj.decimalStep:.25,t.decimalCharacter=t.inputObj.decimalCharacter?t.inputObj.decimalCharacter:".",t.setButtonType=t.inputObj.setButtonType?t.inputObj.setButtonType:"button-positive",t.closeButtonType=t.inputObj.closeButtonType?t.inputObj.closeButtonType:"button-stable",t.wholeNumber=0,t.decimalNumber=0,t.isNegative=!1,t.sign="",t.numericValue=Number(t.wholeNumber+"."+t.decimalNumber),t.changeFormat=function(){t.format="DECIMAL"===t.format?"WHOLE":"DECIMAL"},t.decimalDisplay=function(){var e=t.decimalNumber.toString(),n=e.indexOf(".");return e.substring(n+1)},t.updateDisplay=function(){document.getElementById("wholeNumber").innerHTML=t.wholeNumber,document.getElementById("decimalNumber")&&(document.getElementById("decimalNumber").innerHTML=t.decimalDisplay()),document.getElementById("sign").innerHTML=t.sign},t.increaseWhole=function(){t.numericValue+=1,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseWhole=function(){t.numericValue-=1,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.increaseDecimal=function(){t.numericValue+=t.decimalStep,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseDecimal=function(){t.numericValue-=t.decimalStep,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.startWholeUp=function(){t.intervalID=setInterval(function(){t.increaseWhole()},100)},t.stopWholeUp=function(){clearInterval(t.intervalID)},t.startWholeDown=function(){t.intervalID=setInterval(function(){t.decreaseWhole()},100)},t.stopWholeDown=function(){clearInterval(t.intervalID)},t.startDecimalUp=function(){t.intervalID=setInterval(function(){t.increaseDecimal()},100)},t.stopDecimalUp=function(){clearInterval(t.intervalID)},t.startDecimalDown=function(){t.intervalID=setInterval(function(){t.decreaseDecimal()},100)},t.stopDecimalDown=function(){clearInterval(t.intervalID)},t.checkMax=function(){t.numericValue>=t.maxValue&&(t.numericValue=t.maxValue,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1))},t.checkMin=function(){t.numericValue<=t.minValue&&(t.numericValue=t.minValue,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1))},n.on("click",function(){"DECIMAL"==t.format?(t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.wholeNumber=l(Number(t.inputValue)),t.decimalNumber=t.inputValue%1,t.numericValue=Number(t.wholeNumber)+Number(o(t.decimalNumber,t.precision)),t.decimalNumber=o(t.numericValue%1),e.show({templateUrl:"ionic-numberpicker-decimal.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.numericValue=Number(t.isNegative?-t.wholeNumber:t.wholeNumber)+Number(o(t.decimalNumber,t.precision)),t.inputObj.callback(t.numericValue)}}]})):(t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.wholeNumber=l(t.inputValue),t.decimalNumber=0,t.numericValue=Number(l(t.wholeNumber))+Number(o(t.decimalNumber,t.precision)),e.show({templateUrl:"ionic-numberpicker-whole.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.inputObj.callback(t.isNegative?-t.wholeNumber:t.wholeNumber)}}]}))})}}}angular.module("ionic-numberpicker").directive("ionicNumberpicker",e),e.$inject=["$ionicPopup"]}(); \ No newline at end of file +!function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(i){n.innerText=t}}(document,"/* Empty. Add your own CSS if you like */\n\n.numberPickerDecimal {\n color: #000;\n padding-top: 45px;\n text-align: center;\n font-weight: bold;\n}\n\n.numberPickerArrows {\n width: 100%;\n}\n\n.numberPickerBoxText {\n color: #000;\n height: 40px;\n text-align: center;\n border: 1px solid #dddddd;\n font-size: 16px;\n padding-top: 5px;\n}\n\n.overflowShow {\n white-space: normal !important;\n}"),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-decimal.html",'
{{wholeNumber}}
{{decimalDisplay()}}
')}])}(),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-whole.html",'
{{wholeNumber}}
')}])}(),function(){"use strict";angular.module("ionic-numberpicker",["ionic","ionic-numberpicker.templates"])}(),function(){"use strict";function e(e){return{restrict:"AE",replace:!0,scope:{inputObj:"=inputObj"},link:function(t,n,i){function o(e,n){var i=parseFloat(e).toFixed(t.precision);return i}function u(e){var n=0;return e>=0?(t.isNegative=!1,t.sign="",n=Math.floor(e)):(t.isNegative=!0,t.sign="-",n=Math.ceil(e)),Math.abs(n)}t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.minValue=t.inputObj.minValue,t.maxValue=t.inputObj.maxValue,t.precision=t.inputObj.precision?t.inputObj.precision:3,t.format=t.inputObj.format?t.inputObj.format:"DECIMAL",t.unit=t.inputObj.unit?t.inputObj.unit:"",t.titleLabel=t.inputObj.titleLabel?t.inputObj.titleLabel:"Number Picker",t.setLabel=t.inputObj.setLabel?t.inputObj.setLabel:"Set",t.closeLabel=t.inputObj.closeLabel?t.inputObj.closeLabel:"Close",t.decimalStep=t.inputObj.decimalStep?t.inputObj.decimalStep:.25,t.decimalCharacter=t.inputObj.decimalCharacter?t.inputObj.decimalCharacter:".",t.setButtonType=t.inputObj.setButtonType?t.inputObj.setButtonType:"button-positive",t.closeButtonType=t.inputObj.closeButtonType?t.inputObj.closeButtonType:"button-stable",t.wholeNumber=0,t.decimalNumber=0,t.isNegative=!1,t.sign="",t.numericValue=Number(t.wholeNumber+"."+t.decimalNumber),t.changeFormat=function(){t.format="DECIMAL"===t.format?"WHOLE":"DECIMAL"},t.decimalDisplay=function(){var e=t.decimalNumber.toString(),n=e.indexOf(".");return e.substring(n+1)},t.updateDisplay=function(){document.getElementById("wholeNumber").innerHTML=t.wholeNumber,document.getElementById("decimalNumber")&&(document.getElementById("decimalNumber").innerHTML=t.decimalDisplay()),document.getElementById("sign").innerHTML=t.sign},t.increaseWhole=function(){t.numericValue+=1,t.wholeNumber=u(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseWhole=function(){t.numericValue-=1,t.wholeNumber=u(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.increaseDecimal=function(){t.numericValue+=t.decimalStep,t.wholeNumber=u(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseDecimal=function(){t.numericValue-=t.decimalStep,t.wholeNumber=u(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.startWholeUp=function(){t.increaseWhole(),t.timeoutUpID=setTimeout(function(){t.intervalUpID=setInterval(function(){t.increaseWhole()},100)},1e3)},t.stopWholeUp=function(){clearTimeout(t.timeoutUpID),clearInterval(t.intervalUpID)},t.startWholeDown=function(){t.decreaseWhole(),t.timeoutDownID=setTimeout(function(){t.intervalDownID=setInterval(function(){t.decreaseWhole()},100)},1e3)},t.stopWholeDown=function(){clearTimeout(t.timeoutlDownID),clearInterval(t.intervalDownID)},t.startDecimalUp=function(){t.increaseDecimal(),t.timeoutUpID=setTimeout(function(){t.intervalUpID=setInterval(function(){t.increaseDecimal()},100)},1e3)},t.stopDecimalUp=function(){clearTimeout(t.timeoutUpID),clearInterval(t.intervalUpID)},t.startDecimalDown=function(){t.decreaseDecimal(),t.timeoutDownID=setTimeout(function(){t.intervalDownID=setInterval(function(){t.decreaseDecimal()},100)},1e3)},t.stopDecimalDown=function(){clearTimeout(t.timeoutDownID),clearInterval(t.intervalDownID)},t.checkMax=function(){t.numericValue>=t.maxValue&&(t.numericValue=t.maxValue,t.wholeNumber=u(t.numericValue),t.decimalNumber=o(t.numericValue%1))},t.checkMin=function(){t.numericValue<=t.minValue&&(t.numericValue=t.minValue,t.wholeNumber=u(t.numericValue),t.decimalNumber=o(t.numericValue%1))},n.on("click",function(){"DECIMAL"==t.format?(t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.wholeNumber=u(Number(t.inputValue)),t.decimalNumber=t.inputValue%1,t.numericValue=Number(t.wholeNumber)+Number(o(t.decimalNumber,t.precision)),t.decimalNumber=o(t.numericValue%1),e.show({templateUrl:"ionic-numberpicker-decimal.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.numericValue=Number(t.isNegative?-t.wholeNumber:t.wholeNumber)+Number(o(t.decimalNumber,t.precision)),t.inputObj.callback(t.numericValue)}}]})):(t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.wholeNumber=u(t.inputValue),t.decimalNumber=0,t.numericValue=Number(u(t.wholeNumber))+Number(o(t.decimalNumber,t.precision)),e.show({templateUrl:"ionic-numberpicker-whole.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.inputObj.callback(t.isNegative?-t.wholeNumber:t.wholeNumber)}}]}))})}}}angular.module("ionic-numberpicker").directive("ionicNumberpicker",e),e.$inject=["$ionicPopup"]}(); \ No newline at end of file diff --git a/src/ionic-numberpicker.directive.js b/src/ionic-numberpicker.directive.js index 7668a3d..a90bf9f 100755 --- a/src/ionic-numberpicker.directive.js +++ b/src/ionic-numberpicker.directive.js @@ -98,43 +98,59 @@ }; scope.startWholeUp = function() { - scope.intervalID = setInterval(function(){ - scope.increaseWhole(); - }, 100) + scope.increaseWhole(); + scope.timeoutUpID = setTimeout(function() { + scope.intervalUpID = setInterval(function(){ + scope.increaseWhole(); + }, 100) + }, 1000) }; scope.stopWholeUp = function() { - clearInterval(scope.intervalID); + clearTimeout(scope.timeoutUpID); + clearInterval(scope.intervalUpID); }; scope.startWholeDown = function() { - scope.intervalID = setInterval(function(){ - scope.decreaseWhole(); - }, 100) + scope.decreaseWhole(); + scope.timeoutDownID = setTimeout(function() { + scope.intervalDownID = setInterval(function(){ + scope.decreaseWhole(); + }, 100) + }, 1000) }; scope.stopWholeDown = function() { - clearInterval(scope.intervalID); + clearTimeout(scope.timeoutlDownID); + clearInterval(scope.intervalDownID); }; scope.startDecimalUp = function() { - scope.intervalID = setInterval(function(){ - scope.increaseDecimal(); - }, 100) + scope.increaseDecimal(); + scope.timeoutUpID = setTimeout(function() { + scope.intervalUpID = setInterval(function(){ + scope.increaseDecimal(); + }, 100) + }, 1000) }; scope.stopDecimalUp = function() { - clearInterval(scope.intervalID); + clearTimeout(scope.timeoutUpID); + clearInterval(scope.intervalUpID); }; scope.startDecimalDown = function() { - scope.intervalID = setInterval(function(){ - scope.decreaseDecimal(); - }, 100) + scope.decreaseDecimal(); + scope.timeoutDownID = setTimeout(function() { + scope.intervalDownID = setInterval(function(){ + scope.decreaseDecimal(); + }, 100) + }, 1000) }; scope.stopDecimalDown = function() { - clearInterval(scope.intervalID); + clearTimeout(scope.timeoutDownID); + clearInterval(scope.intervalDownID); }; function strip(number, precision) { From 02cd4cb4a8654b9fa3576a5a0b121af49b656e89 Mon Sep 17 00:00:00 2001 From: MATSUBAYASHI 'Shaolin' Kohji Date: Tue, 31 May 2016 18:22:10 +0900 Subject: [PATCH 06/10] typo fix --- dist/ionic-numberpicker.bundle.min.js | 2 +- src/ionic-numberpicker.directive.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dist/ionic-numberpicker.bundle.min.js b/dist/ionic-numberpicker.bundle.min.js index b099b81..5da455a 100755 --- a/dist/ionic-numberpicker.bundle.min.js +++ b/dist/ionic-numberpicker.bundle.min.js @@ -1 +1 @@ -!function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(i){n.innerText=t}}(document,"/* Empty. Add your own CSS if you like */\n\n.numberPickerDecimal {\n color: #000;\n padding-top: 45px;\n text-align: center;\n font-weight: bold;\n}\n\n.numberPickerArrows {\n width: 100%;\n}\n\n.numberPickerBoxText {\n color: #000;\n height: 40px;\n text-align: center;\n border: 1px solid #dddddd;\n font-size: 16px;\n padding-top: 5px;\n}\n\n.overflowShow {\n white-space: normal !important;\n}"),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-decimal.html",'
{{wholeNumber}}
{{decimalDisplay()}}
')}])}(),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-whole.html",'
{{wholeNumber}}
')}])}(),function(){"use strict";angular.module("ionic-numberpicker",["ionic","ionic-numberpicker.templates"])}(),function(){"use strict";function e(e){return{restrict:"AE",replace:!0,scope:{inputObj:"=inputObj"},link:function(t,n,i){function o(e,n){var i=parseFloat(e).toFixed(t.precision);return i}function u(e){var n=0;return e>=0?(t.isNegative=!1,t.sign="",n=Math.floor(e)):(t.isNegative=!0,t.sign="-",n=Math.ceil(e)),Math.abs(n)}t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.minValue=t.inputObj.minValue,t.maxValue=t.inputObj.maxValue,t.precision=t.inputObj.precision?t.inputObj.precision:3,t.format=t.inputObj.format?t.inputObj.format:"DECIMAL",t.unit=t.inputObj.unit?t.inputObj.unit:"",t.titleLabel=t.inputObj.titleLabel?t.inputObj.titleLabel:"Number Picker",t.setLabel=t.inputObj.setLabel?t.inputObj.setLabel:"Set",t.closeLabel=t.inputObj.closeLabel?t.inputObj.closeLabel:"Close",t.decimalStep=t.inputObj.decimalStep?t.inputObj.decimalStep:.25,t.decimalCharacter=t.inputObj.decimalCharacter?t.inputObj.decimalCharacter:".",t.setButtonType=t.inputObj.setButtonType?t.inputObj.setButtonType:"button-positive",t.closeButtonType=t.inputObj.closeButtonType?t.inputObj.closeButtonType:"button-stable",t.wholeNumber=0,t.decimalNumber=0,t.isNegative=!1,t.sign="",t.numericValue=Number(t.wholeNumber+"."+t.decimalNumber),t.changeFormat=function(){t.format="DECIMAL"===t.format?"WHOLE":"DECIMAL"},t.decimalDisplay=function(){var e=t.decimalNumber.toString(),n=e.indexOf(".");return e.substring(n+1)},t.updateDisplay=function(){document.getElementById("wholeNumber").innerHTML=t.wholeNumber,document.getElementById("decimalNumber")&&(document.getElementById("decimalNumber").innerHTML=t.decimalDisplay()),document.getElementById("sign").innerHTML=t.sign},t.increaseWhole=function(){t.numericValue+=1,t.wholeNumber=u(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseWhole=function(){t.numericValue-=1,t.wholeNumber=u(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.increaseDecimal=function(){t.numericValue+=t.decimalStep,t.wholeNumber=u(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseDecimal=function(){t.numericValue-=t.decimalStep,t.wholeNumber=u(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.startWholeUp=function(){t.increaseWhole(),t.timeoutUpID=setTimeout(function(){t.intervalUpID=setInterval(function(){t.increaseWhole()},100)},1e3)},t.stopWholeUp=function(){clearTimeout(t.timeoutUpID),clearInterval(t.intervalUpID)},t.startWholeDown=function(){t.decreaseWhole(),t.timeoutDownID=setTimeout(function(){t.intervalDownID=setInterval(function(){t.decreaseWhole()},100)},1e3)},t.stopWholeDown=function(){clearTimeout(t.timeoutlDownID),clearInterval(t.intervalDownID)},t.startDecimalUp=function(){t.increaseDecimal(),t.timeoutUpID=setTimeout(function(){t.intervalUpID=setInterval(function(){t.increaseDecimal()},100)},1e3)},t.stopDecimalUp=function(){clearTimeout(t.timeoutUpID),clearInterval(t.intervalUpID)},t.startDecimalDown=function(){t.decreaseDecimal(),t.timeoutDownID=setTimeout(function(){t.intervalDownID=setInterval(function(){t.decreaseDecimal()},100)},1e3)},t.stopDecimalDown=function(){clearTimeout(t.timeoutDownID),clearInterval(t.intervalDownID)},t.checkMax=function(){t.numericValue>=t.maxValue&&(t.numericValue=t.maxValue,t.wholeNumber=u(t.numericValue),t.decimalNumber=o(t.numericValue%1))},t.checkMin=function(){t.numericValue<=t.minValue&&(t.numericValue=t.minValue,t.wholeNumber=u(t.numericValue),t.decimalNumber=o(t.numericValue%1))},n.on("click",function(){"DECIMAL"==t.format?(t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.wholeNumber=u(Number(t.inputValue)),t.decimalNumber=t.inputValue%1,t.numericValue=Number(t.wholeNumber)+Number(o(t.decimalNumber,t.precision)),t.decimalNumber=o(t.numericValue%1),e.show({templateUrl:"ionic-numberpicker-decimal.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.numericValue=Number(t.isNegative?-t.wholeNumber:t.wholeNumber)+Number(o(t.decimalNumber,t.precision)),t.inputObj.callback(t.numericValue)}}]})):(t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.wholeNumber=u(t.inputValue),t.decimalNumber=0,t.numericValue=Number(u(t.wholeNumber))+Number(o(t.decimalNumber,t.precision)),e.show({templateUrl:"ionic-numberpicker-whole.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.inputObj.callback(t.isNegative?-t.wholeNumber:t.wholeNumber)}}]}))})}}}angular.module("ionic-numberpicker").directive("ionicNumberpicker",e),e.$inject=["$ionicPopup"]}(); \ No newline at end of file +!function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(i){n.innerText=t}}(document,"/* Empty. Add your own CSS if you like */\n\n.numberPickerDecimal {\n color: #000;\n padding-top: 45px;\n text-align: center;\n font-weight: bold;\n}\n\n.numberPickerArrows {\n width: 100%;\n}\n\n.numberPickerBoxText {\n color: #000;\n height: 40px;\n text-align: center;\n border: 1px solid #dddddd;\n font-size: 16px;\n padding-top: 5px;\n}\n\n.overflowShow {\n white-space: normal !important;\n}"),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-decimal.html",'
{{wholeNumber}}
{{decimalDisplay()}}
')}])}(),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-whole.html",'
{{wholeNumber}}
')}])}(),function(){"use strict";angular.module("ionic-numberpicker",["ionic","ionic-numberpicker.templates"])}(),function(){"use strict";function e(e){return{restrict:"AE",replace:!0,scope:{inputObj:"=inputObj"},link:function(t,n,i){function o(e,n){var i=parseFloat(e).toFixed(t.precision);return i}function u(e){var n=0;return e>=0?(t.isNegative=!1,t.sign="",n=Math.floor(e)):(t.isNegative=!0,t.sign="-",n=Math.ceil(e)),Math.abs(n)}t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.minValue=t.inputObj.minValue,t.maxValue=t.inputObj.maxValue,t.precision=t.inputObj.precision?t.inputObj.precision:3,t.format=t.inputObj.format?t.inputObj.format:"DECIMAL",t.unit=t.inputObj.unit?t.inputObj.unit:"",t.titleLabel=t.inputObj.titleLabel?t.inputObj.titleLabel:"Number Picker",t.setLabel=t.inputObj.setLabel?t.inputObj.setLabel:"Set",t.closeLabel=t.inputObj.closeLabel?t.inputObj.closeLabel:"Close",t.decimalStep=t.inputObj.decimalStep?t.inputObj.decimalStep:.25,t.decimalCharacter=t.inputObj.decimalCharacter?t.inputObj.decimalCharacter:".",t.setButtonType=t.inputObj.setButtonType?t.inputObj.setButtonType:"button-positive",t.closeButtonType=t.inputObj.closeButtonType?t.inputObj.closeButtonType:"button-stable",t.wholeNumber=0,t.decimalNumber=0,t.isNegative=!1,t.sign="",t.numericValue=Number(t.wholeNumber+"."+t.decimalNumber),t.changeFormat=function(){t.format="DECIMAL"===t.format?"WHOLE":"DECIMAL"},t.decimalDisplay=function(){var e=t.decimalNumber.toString(),n=e.indexOf(".");return e.substring(n+1)},t.updateDisplay=function(){document.getElementById("wholeNumber").innerHTML=t.wholeNumber,document.getElementById("decimalNumber")&&(document.getElementById("decimalNumber").innerHTML=t.decimalDisplay()),document.getElementById("sign").innerHTML=t.sign},t.increaseWhole=function(){t.numericValue+=1,t.wholeNumber=u(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseWhole=function(){t.numericValue-=1,t.wholeNumber=u(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.increaseDecimal=function(){t.numericValue+=t.decimalStep,t.wholeNumber=u(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseDecimal=function(){t.numericValue-=t.decimalStep,t.wholeNumber=u(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.startWholeUp=function(){t.increaseWhole(),t.timeoutUpID=setTimeout(function(){t.intervalUpID=setInterval(function(){t.increaseWhole()},100)},1e3)},t.stopWholeUp=function(){clearTimeout(t.timeoutUpID),clearInterval(t.intervalUpID)},t.startWholeDown=function(){t.decreaseWhole(),t.timeoutDownID=setTimeout(function(){t.intervalDownID=setInterval(function(){t.decreaseWhole()},100)},1e3)},t.stopWholeDown=function(){clearTimeout(t.timeoutDownID),clearInterval(t.intervalDownID)},t.startDecimalUp=function(){t.increaseDecimal(),t.timeoutUpID=setTimeout(function(){t.intervalUpID=setInterval(function(){t.increaseDecimal()},100)},1e3)},t.stopDecimalUp=function(){clearTimeout(t.timeoutUpID),clearInterval(t.intervalUpID)},t.startDecimalDown=function(){t.decreaseDecimal(),t.timeoutDownID=setTimeout(function(){t.intervalDownID=setInterval(function(){t.decreaseDecimal()},100)},1e3)},t.stopDecimalDown=function(){clearTimeout(t.timeoutDownID),clearInterval(t.intervalDownID)},t.checkMax=function(){t.numericValue>=t.maxValue&&(t.numericValue=t.maxValue,t.wholeNumber=u(t.numericValue),t.decimalNumber=o(t.numericValue%1))},t.checkMin=function(){t.numericValue<=t.minValue&&(t.numericValue=t.minValue,t.wholeNumber=u(t.numericValue),t.decimalNumber=o(t.numericValue%1))},n.on("click",function(){"DECIMAL"==t.format?(t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.wholeNumber=u(Number(t.inputValue)),t.decimalNumber=t.inputValue%1,t.numericValue=Number(t.wholeNumber)+Number(o(t.decimalNumber,t.precision)),t.decimalNumber=o(t.numericValue%1),e.show({templateUrl:"ionic-numberpicker-decimal.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.numericValue=Number(t.isNegative?-t.wholeNumber:t.wholeNumber)+Number(o(t.decimalNumber,t.precision)),t.inputObj.callback(t.numericValue)}}]})):(t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.wholeNumber=u(t.inputValue),t.decimalNumber=0,t.numericValue=Number(u(t.wholeNumber))+Number(o(t.decimalNumber,t.precision)),e.show({templateUrl:"ionic-numberpicker-whole.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.inputObj.callback(t.isNegative?-t.wholeNumber:t.wholeNumber)}}]}))})}}}angular.module("ionic-numberpicker").directive("ionicNumberpicker",e),e.$inject=["$ionicPopup"]}(); \ No newline at end of file diff --git a/src/ionic-numberpicker.directive.js b/src/ionic-numberpicker.directive.js index a90bf9f..44ae8cd 100755 --- a/src/ionic-numberpicker.directive.js +++ b/src/ionic-numberpicker.directive.js @@ -121,7 +121,7 @@ }; scope.stopWholeDown = function() { - clearTimeout(scope.timeoutlDownID); + clearTimeout(scope.timeoutDownID); clearInterval(scope.intervalDownID); }; From dbf57ab470fe946bd42edfe222c1f7f9430e448d Mon Sep 17 00:00:00 2001 From: MATSUBAYASHI 'Shaolin' Kohji Date: Tue, 31 May 2016 21:19:11 +0900 Subject: [PATCH 07/10] more fix on touch devices --- dist/ionic-numberpicker.bundle.min.js | 2 +- dist/templates.js | 4 +-- src/ionic-numberpicker-decimal.html | 8 +++--- src/ionic-numberpicker-whole.html | 4 +-- src/ionic-numberpicker.directive.js | 40 +++++++++++++++++++++------ 5 files changed, 41 insertions(+), 17 deletions(-) diff --git a/dist/ionic-numberpicker.bundle.min.js b/dist/ionic-numberpicker.bundle.min.js index 5da455a..3f0a557 100755 --- a/dist/ionic-numberpicker.bundle.min.js +++ b/dist/ionic-numberpicker.bundle.min.js @@ -1 +1 @@ -!function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(i){n.innerText=t}}(document,"/* Empty. Add your own CSS if you like */\n\n.numberPickerDecimal {\n color: #000;\n padding-top: 45px;\n text-align: center;\n font-weight: bold;\n}\n\n.numberPickerArrows {\n width: 100%;\n}\n\n.numberPickerBoxText {\n color: #000;\n height: 40px;\n text-align: center;\n border: 1px solid #dddddd;\n font-size: 16px;\n padding-top: 5px;\n}\n\n.overflowShow {\n white-space: normal !important;\n}"),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-decimal.html",'
{{wholeNumber}}
{{decimalDisplay()}}
')}])}(),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-whole.html",'
{{wholeNumber}}
')}])}(),function(){"use strict";angular.module("ionic-numberpicker",["ionic","ionic-numberpicker.templates"])}(),function(){"use strict";function e(e){return{restrict:"AE",replace:!0,scope:{inputObj:"=inputObj"},link:function(t,n,i){function o(e,n){var i=parseFloat(e).toFixed(t.precision);return i}function u(e){var n=0;return e>=0?(t.isNegative=!1,t.sign="",n=Math.floor(e)):(t.isNegative=!0,t.sign="-",n=Math.ceil(e)),Math.abs(n)}t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.minValue=t.inputObj.minValue,t.maxValue=t.inputObj.maxValue,t.precision=t.inputObj.precision?t.inputObj.precision:3,t.format=t.inputObj.format?t.inputObj.format:"DECIMAL",t.unit=t.inputObj.unit?t.inputObj.unit:"",t.titleLabel=t.inputObj.titleLabel?t.inputObj.titleLabel:"Number Picker",t.setLabel=t.inputObj.setLabel?t.inputObj.setLabel:"Set",t.closeLabel=t.inputObj.closeLabel?t.inputObj.closeLabel:"Close",t.decimalStep=t.inputObj.decimalStep?t.inputObj.decimalStep:.25,t.decimalCharacter=t.inputObj.decimalCharacter?t.inputObj.decimalCharacter:".",t.setButtonType=t.inputObj.setButtonType?t.inputObj.setButtonType:"button-positive",t.closeButtonType=t.inputObj.closeButtonType?t.inputObj.closeButtonType:"button-stable",t.wholeNumber=0,t.decimalNumber=0,t.isNegative=!1,t.sign="",t.numericValue=Number(t.wholeNumber+"."+t.decimalNumber),t.changeFormat=function(){t.format="DECIMAL"===t.format?"WHOLE":"DECIMAL"},t.decimalDisplay=function(){var e=t.decimalNumber.toString(),n=e.indexOf(".");return e.substring(n+1)},t.updateDisplay=function(){document.getElementById("wholeNumber").innerHTML=t.wholeNumber,document.getElementById("decimalNumber")&&(document.getElementById("decimalNumber").innerHTML=t.decimalDisplay()),document.getElementById("sign").innerHTML=t.sign},t.increaseWhole=function(){t.numericValue+=1,t.wholeNumber=u(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseWhole=function(){t.numericValue-=1,t.wholeNumber=u(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.increaseDecimal=function(){t.numericValue+=t.decimalStep,t.wholeNumber=u(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseDecimal=function(){t.numericValue-=t.decimalStep,t.wholeNumber=u(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.startWholeUp=function(){t.increaseWhole(),t.timeoutUpID=setTimeout(function(){t.intervalUpID=setInterval(function(){t.increaseWhole()},100)},1e3)},t.stopWholeUp=function(){clearTimeout(t.timeoutUpID),clearInterval(t.intervalUpID)},t.startWholeDown=function(){t.decreaseWhole(),t.timeoutDownID=setTimeout(function(){t.intervalDownID=setInterval(function(){t.decreaseWhole()},100)},1e3)},t.stopWholeDown=function(){clearTimeout(t.timeoutDownID),clearInterval(t.intervalDownID)},t.startDecimalUp=function(){t.increaseDecimal(),t.timeoutUpID=setTimeout(function(){t.intervalUpID=setInterval(function(){t.increaseDecimal()},100)},1e3)},t.stopDecimalUp=function(){clearTimeout(t.timeoutUpID),clearInterval(t.intervalUpID)},t.startDecimalDown=function(){t.decreaseDecimal(),t.timeoutDownID=setTimeout(function(){t.intervalDownID=setInterval(function(){t.decreaseDecimal()},100)},1e3)},t.stopDecimalDown=function(){clearTimeout(t.timeoutDownID),clearInterval(t.intervalDownID)},t.checkMax=function(){t.numericValue>=t.maxValue&&(t.numericValue=t.maxValue,t.wholeNumber=u(t.numericValue),t.decimalNumber=o(t.numericValue%1))},t.checkMin=function(){t.numericValue<=t.minValue&&(t.numericValue=t.minValue,t.wholeNumber=u(t.numericValue),t.decimalNumber=o(t.numericValue%1))},n.on("click",function(){"DECIMAL"==t.format?(t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.wholeNumber=u(Number(t.inputValue)),t.decimalNumber=t.inputValue%1,t.numericValue=Number(t.wholeNumber)+Number(o(t.decimalNumber,t.precision)),t.decimalNumber=o(t.numericValue%1),e.show({templateUrl:"ionic-numberpicker-decimal.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.numericValue=Number(t.isNegative?-t.wholeNumber:t.wholeNumber)+Number(o(t.decimalNumber,t.precision)),t.inputObj.callback(t.numericValue)}}]})):(t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.wholeNumber=u(t.inputValue),t.decimalNumber=0,t.numericValue=Number(u(t.wholeNumber))+Number(o(t.decimalNumber,t.precision)),e.show({templateUrl:"ionic-numberpicker-whole.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.inputObj.callback(t.isNegative?-t.wholeNumber:t.wholeNumber)}}]}))})}}}angular.module("ionic-numberpicker").directive("ionicNumberpicker",e),e.$inject=["$ionicPopup"]}(); \ No newline at end of file +!function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(i){n.innerText=t}}(document,"/* Empty. Add your own CSS if you like */\n\n.numberPickerDecimal {\n color: #000;\n padding-top: 45px;\n text-align: center;\n font-weight: bold;\n}\n\n.numberPickerArrows {\n width: 100%;\n}\n\n.numberPickerBoxText {\n color: #000;\n height: 40px;\n text-align: center;\n border: 1px solid #dddddd;\n font-size: 16px;\n padding-top: 5px;\n}\n\n.overflowShow {\n white-space: normal !important;\n}"),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-decimal.html",'
{{wholeNumber}}
{{decimalDisplay()}}
')}])}(),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-whole.html",'
{{wholeNumber}}
')}])}(),function(){"use strict";angular.module("ionic-numberpicker",["ionic","ionic-numberpicker.templates"])}(),function(){"use strict";function e(e){return{restrict:"AE",replace:!0,scope:{inputObj:"=inputObj"},link:function(t,n,i){function o(e,n){var i=parseFloat(e).toFixed(t.precision);return i}function l(e){var n=0;return e>=0?(t.isNegative=!1,t.sign="",n=Math.floor(e)):(t.isNegative=!0,t.sign="-",n=Math.ceil(e)),Math.abs(n)}t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.minValue=t.inputObj.minValue,t.maxValue=t.inputObj.maxValue,t.precision=t.inputObj.precision?t.inputObj.precision:3,t.format=t.inputObj.format?t.inputObj.format:"DECIMAL",t.unit=t.inputObj.unit?t.inputObj.unit:"",t.titleLabel=t.inputObj.titleLabel?t.inputObj.titleLabel:"Number Picker",t.setLabel=t.inputObj.setLabel?t.inputObj.setLabel:"Set",t.closeLabel=t.inputObj.closeLabel?t.inputObj.closeLabel:"Close",t.decimalStep=t.inputObj.decimalStep?t.inputObj.decimalStep:.25,t.decimalCharacter=t.inputObj.decimalCharacter?t.inputObj.decimalCharacter:".",t.setButtonType=t.inputObj.setButtonType?t.inputObj.setButtonType:"button-positive",t.closeButtonType=t.inputObj.closeButtonType?t.inputObj.closeButtonType:"button-stable",t.wholeNumber=0,t.decimalNumber=0,t.isNegative=!1,t.sign="",t.numericValue=Number(t.wholeNumber+"."+t.decimalNumber),t.changeFormat=function(){t.format="DECIMAL"===t.format?"WHOLE":"DECIMAL"},t.decimalDisplay=function(){var e=t.decimalNumber.toString(),n=e.indexOf(".");return e.substring(n+1)},t.updateDisplay=function(){document.getElementById("wholeNumber").innerHTML=t.wholeNumber,document.getElementById("decimalNumber")&&(document.getElementById("decimalNumber").innerHTML=t.decimalDisplay()),document.getElementById("sign").innerHTML=t.sign},t.increaseWhole=function(){t.numericValue+=1,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseWhole=function(){t.numericValue-=1,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.increaseDecimal=function(){t.numericValue+=t.decimalStep,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseDecimal=function(){t.numericValue-=t.decimalStep,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.startWholeUpPC=function(){ionic.Platform.isIOS()||ionic.Platform.isAndroid()||t.startWholeUp()},t.startWholeUp=function(){t.increaseWhole(),t.timeoutUpID=setTimeout(function(){t.intervalUpID=setInterval(function(){t.increaseWhole()},100)},600)},t.stopWholeUp=function(){clearInterval(t.intervalUpID),clearTimeout(t.timeoutUpID)},t.startWholeDownPC=function(){ionic.Platform.isIOS()||ionic.Platform.isAndroid()||t.startWholeDown()},t.startWholeDown=function(){t.decreaseWhole(),t.timeoutDownID=setTimeout(function(){t.intervalDownID=setInterval(function(){t.decreaseWhole()},100)},600)},t.stopWholeDown=function(){clearInterval(t.intervalDownID),clearTimeout(t.timeoutDownID)},t.startDecimalUpPC=function(){ionic.Platform.isIOS()||ionic.Platform.isAndroid()||t.startDecimalUp()},t.startDecimalUp=function(){t.increaseDecimal(),t.timeoutUpID=setTimeout(function(){t.intervalUpID=setInterval(function(){t.increaseDecimal()},100)},600)},t.stopDecimalUp=function(){clearInterval(t.intervalUpID),clearTimeout(t.timeoutUpID)},t.startDecimalDownPC=function(){ionic.Platform.isIOS()||ionic.Platform.isAndroid()||t.startDecimalDown()},t.startDecimalDown=function(){t.decreaseDecimal(),t.timeoutDownID=setTimeout(function(){t.intervalDownID=setInterval(function(){t.decreaseDecimal()},100)},600)},t.stopDecimalDown=function(){clearInterval(t.intervalDownID),clearTimeout(t.timeoutDownID)},t.checkMax=function(){t.numericValue>=t.maxValue&&(t.numericValue=t.maxValue,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1))},t.checkMin=function(){t.numericValue<=t.minValue&&(t.numericValue=t.minValue,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1))},n.on("click",function(){"DECIMAL"==t.format?(t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.wholeNumber=l(Number(t.inputValue)),t.decimalNumber=t.inputValue%1,t.numericValue=Number(t.wholeNumber)+Number(o(t.decimalNumber,t.precision)),t.decimalNumber=o(t.numericValue%1),e.show({templateUrl:"ionic-numberpicker-decimal.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.numericValue=Number(t.isNegative?-t.wholeNumber:t.wholeNumber)+Number(o(t.decimalNumber,t.precision)),t.inputObj.callback(t.numericValue)}}]})):(t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.wholeNumber=l(t.inputValue),t.decimalNumber=0,t.numericValue=Number(l(t.wholeNumber))+Number(o(t.decimalNumber,t.precision)),e.show({templateUrl:"ionic-numberpicker-whole.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.inputObj.callback(t.isNegative?-t.wholeNumber:t.wholeNumber)}}]}))})}}}angular.module("ionic-numberpicker").directive("ionicNumberpicker",e),e.$inject=["$ionicPopup"]}(); \ No newline at end of file diff --git a/dist/templates.js b/dist/templates.js index e0102e2..17d2729 100755 --- a/dist/templates.js +++ b/dist/templates.js @@ -6,7 +6,7 @@ try { } module.run(['$templateCache', function($templateCache) { $templateCache.put('ionic-numberpicker-decimal.html', - '
{{wholeNumber}}
{{decimalDisplay()}}
'); + '
{{wholeNumber}}
{{decimalDisplay()}}
'); }]); })(); @@ -18,6 +18,6 @@ try { } module.run(['$templateCache', function($templateCache) { $templateCache.put('ionic-numberpicker-whole.html', - '
{{wholeNumber}}
'); + '
{{wholeNumber}}
'); }]); })(); diff --git a/src/ionic-numberpicker-decimal.html b/src/ionic-numberpicker-decimal.html index 785dc8f..ab8b821 100755 --- a/src/ionic-numberpicker-decimal.html +++ b/src/ionic-numberpicker-decimal.html @@ -3,24 +3,24 @@
{{wholeNumber}}
{{decimalDisplay()}}
diff --git a/src/ionic-numberpicker-whole.html b/src/ionic-numberpicker-whole.html index 135f896..47e9602 100755 --- a/src/ionic-numberpicker-whole.html +++ b/src/ionic-numberpicker-whole.html @@ -3,12 +3,12 @@
{{wholeNumber}}
diff --git a/src/ionic-numberpicker.directive.js b/src/ionic-numberpicker.directive.js index 44ae8cd..b15c2d3 100755 --- a/src/ionic-numberpicker.directive.js +++ b/src/ionic-numberpicker.directive.js @@ -97,60 +97,84 @@ scope.updateDisplay(); }; + scope.startWholeUpPC = function() { + if(!ionic.Platform.isIOS() && !ionic.Platform.isAndroid()) { + scope.startWholeUp(); + } + } + scope.startWholeUp = function() { scope.increaseWhole(); scope.timeoutUpID = setTimeout(function() { scope.intervalUpID = setInterval(function(){ scope.increaseWhole(); }, 100) - }, 1000) + }, 600) }; scope.stopWholeUp = function() { - clearTimeout(scope.timeoutUpID); clearInterval(scope.intervalUpID); + clearTimeout(scope.timeoutUpID); }; + scope.startWholeDownPC = function() { + if(!ionic.Platform.isIOS() && !ionic.Platform.isAndroid()) { + scope.startWholeDown(); + } + } + scope.startWholeDown = function() { scope.decreaseWhole(); scope.timeoutDownID = setTimeout(function() { scope.intervalDownID = setInterval(function(){ scope.decreaseWhole(); }, 100) - }, 1000) + }, 600) }; scope.stopWholeDown = function() { - clearTimeout(scope.timeoutDownID); clearInterval(scope.intervalDownID); + clearTimeout(scope.timeoutDownID); }; + scope.startDecimalUpPC = function() { + if(!ionic.Platform.isIOS() && !ionic.Platform.isAndroid()) { + scope.startDecimalUp(); + } + } + scope.startDecimalUp = function() { scope.increaseDecimal(); scope.timeoutUpID = setTimeout(function() { scope.intervalUpID = setInterval(function(){ scope.increaseDecimal(); }, 100) - }, 1000) + }, 600) }; scope.stopDecimalUp = function() { - clearTimeout(scope.timeoutUpID); clearInterval(scope.intervalUpID); + clearTimeout(scope.timeoutUpID); }; + scope.startDecimalDownPC = function() { + if(!ionic.Platform.isIOS() && !ionic.Platform.isAndroid()) { + scope.startDecimalDown(); + } + } + scope.startDecimalDown = function() { scope.decreaseDecimal(); scope.timeoutDownID = setTimeout(function() { scope.intervalDownID = setInterval(function(){ scope.decreaseDecimal(); }, 100) - }, 1000) + }, 600) }; scope.stopDecimalDown = function() { - clearTimeout(scope.timeoutDownID); clearInterval(scope.intervalDownID); + clearTimeout(scope.timeoutDownID); }; function strip(number, precision) { From ef30670425419d76b6eeaf06818f72c1e8a5216a Mon Sep 17 00:00:00 2001 From: MATSUBAYASHI 'Shaolin' Kohji Date: Wed, 1 Jun 2016 09:21:48 +0900 Subject: [PATCH 08/10] use ionic.Platform.isWebView instead --- dist/ionic-numberpicker.bundle.min.js | 2 +- src/ionic-numberpicker.directive.js | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dist/ionic-numberpicker.bundle.min.js b/dist/ionic-numberpicker.bundle.min.js index 3f0a557..455e364 100755 --- a/dist/ionic-numberpicker.bundle.min.js +++ b/dist/ionic-numberpicker.bundle.min.js @@ -1 +1 @@ -!function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(i){n.innerText=t}}(document,"/* Empty. Add your own CSS if you like */\n\n.numberPickerDecimal {\n color: #000;\n padding-top: 45px;\n text-align: center;\n font-weight: bold;\n}\n\n.numberPickerArrows {\n width: 100%;\n}\n\n.numberPickerBoxText {\n color: #000;\n height: 40px;\n text-align: center;\n border: 1px solid #dddddd;\n font-size: 16px;\n padding-top: 5px;\n}\n\n.overflowShow {\n white-space: normal !important;\n}"),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-decimal.html",'
{{wholeNumber}}
{{decimalDisplay()}}
')}])}(),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-whole.html",'
{{wholeNumber}}
')}])}(),function(){"use strict";angular.module("ionic-numberpicker",["ionic","ionic-numberpicker.templates"])}(),function(){"use strict";function e(e){return{restrict:"AE",replace:!0,scope:{inputObj:"=inputObj"},link:function(t,n,i){function o(e,n){var i=parseFloat(e).toFixed(t.precision);return i}function l(e){var n=0;return e>=0?(t.isNegative=!1,t.sign="",n=Math.floor(e)):(t.isNegative=!0,t.sign="-",n=Math.ceil(e)),Math.abs(n)}t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.minValue=t.inputObj.minValue,t.maxValue=t.inputObj.maxValue,t.precision=t.inputObj.precision?t.inputObj.precision:3,t.format=t.inputObj.format?t.inputObj.format:"DECIMAL",t.unit=t.inputObj.unit?t.inputObj.unit:"",t.titleLabel=t.inputObj.titleLabel?t.inputObj.titleLabel:"Number Picker",t.setLabel=t.inputObj.setLabel?t.inputObj.setLabel:"Set",t.closeLabel=t.inputObj.closeLabel?t.inputObj.closeLabel:"Close",t.decimalStep=t.inputObj.decimalStep?t.inputObj.decimalStep:.25,t.decimalCharacter=t.inputObj.decimalCharacter?t.inputObj.decimalCharacter:".",t.setButtonType=t.inputObj.setButtonType?t.inputObj.setButtonType:"button-positive",t.closeButtonType=t.inputObj.closeButtonType?t.inputObj.closeButtonType:"button-stable",t.wholeNumber=0,t.decimalNumber=0,t.isNegative=!1,t.sign="",t.numericValue=Number(t.wholeNumber+"."+t.decimalNumber),t.changeFormat=function(){t.format="DECIMAL"===t.format?"WHOLE":"DECIMAL"},t.decimalDisplay=function(){var e=t.decimalNumber.toString(),n=e.indexOf(".");return e.substring(n+1)},t.updateDisplay=function(){document.getElementById("wholeNumber").innerHTML=t.wholeNumber,document.getElementById("decimalNumber")&&(document.getElementById("decimalNumber").innerHTML=t.decimalDisplay()),document.getElementById("sign").innerHTML=t.sign},t.increaseWhole=function(){t.numericValue+=1,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseWhole=function(){t.numericValue-=1,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.increaseDecimal=function(){t.numericValue+=t.decimalStep,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseDecimal=function(){t.numericValue-=t.decimalStep,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.startWholeUpPC=function(){ionic.Platform.isIOS()||ionic.Platform.isAndroid()||t.startWholeUp()},t.startWholeUp=function(){t.increaseWhole(),t.timeoutUpID=setTimeout(function(){t.intervalUpID=setInterval(function(){t.increaseWhole()},100)},600)},t.stopWholeUp=function(){clearInterval(t.intervalUpID),clearTimeout(t.timeoutUpID)},t.startWholeDownPC=function(){ionic.Platform.isIOS()||ionic.Platform.isAndroid()||t.startWholeDown()},t.startWholeDown=function(){t.decreaseWhole(),t.timeoutDownID=setTimeout(function(){t.intervalDownID=setInterval(function(){t.decreaseWhole()},100)},600)},t.stopWholeDown=function(){clearInterval(t.intervalDownID),clearTimeout(t.timeoutDownID)},t.startDecimalUpPC=function(){ionic.Platform.isIOS()||ionic.Platform.isAndroid()||t.startDecimalUp()},t.startDecimalUp=function(){t.increaseDecimal(),t.timeoutUpID=setTimeout(function(){t.intervalUpID=setInterval(function(){t.increaseDecimal()},100)},600)},t.stopDecimalUp=function(){clearInterval(t.intervalUpID),clearTimeout(t.timeoutUpID)},t.startDecimalDownPC=function(){ionic.Platform.isIOS()||ionic.Platform.isAndroid()||t.startDecimalDown()},t.startDecimalDown=function(){t.decreaseDecimal(),t.timeoutDownID=setTimeout(function(){t.intervalDownID=setInterval(function(){t.decreaseDecimal()},100)},600)},t.stopDecimalDown=function(){clearInterval(t.intervalDownID),clearTimeout(t.timeoutDownID)},t.checkMax=function(){t.numericValue>=t.maxValue&&(t.numericValue=t.maxValue,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1))},t.checkMin=function(){t.numericValue<=t.minValue&&(t.numericValue=t.minValue,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1))},n.on("click",function(){"DECIMAL"==t.format?(t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.wholeNumber=l(Number(t.inputValue)),t.decimalNumber=t.inputValue%1,t.numericValue=Number(t.wholeNumber)+Number(o(t.decimalNumber,t.precision)),t.decimalNumber=o(t.numericValue%1),e.show({templateUrl:"ionic-numberpicker-decimal.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.numericValue=Number(t.isNegative?-t.wholeNumber:t.wholeNumber)+Number(o(t.decimalNumber,t.precision)),t.inputObj.callback(t.numericValue)}}]})):(t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.wholeNumber=l(t.inputValue),t.decimalNumber=0,t.numericValue=Number(l(t.wholeNumber))+Number(o(t.decimalNumber,t.precision)),e.show({templateUrl:"ionic-numberpicker-whole.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.inputObj.callback(t.isNegative?-t.wholeNumber:t.wholeNumber)}}]}))})}}}angular.module("ionic-numberpicker").directive("ionicNumberpicker",e),e.$inject=["$ionicPopup"]}(); \ No newline at end of file +!function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(i){n.innerText=t}}(document,"/* Empty. Add your own CSS if you like */\n\n.numberPickerDecimal {\n color: #000;\n padding-top: 45px;\n text-align: center;\n font-weight: bold;\n}\n\n.numberPickerArrows {\n width: 100%;\n}\n\n.numberPickerBoxText {\n color: #000;\n height: 40px;\n text-align: center;\n border: 1px solid #dddddd;\n font-size: 16px;\n padding-top: 5px;\n}\n\n.overflowShow {\n white-space: normal !important;\n}"),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-decimal.html",'
{{wholeNumber}}
{{decimalDisplay()}}
')}])}(),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-whole.html",'
{{wholeNumber}}
')}])}(),function(){"use strict";angular.module("ionic-numberpicker",["ionic","ionic-numberpicker.templates"])}(),function(){"use strict";function e(e){return{restrict:"AE",replace:!0,scope:{inputObj:"=inputObj"},link:function(t,n,i){function o(e,n){var i=parseFloat(e).toFixed(t.precision);return i}function l(e){var n=0;return e>=0?(t.isNegative=!1,t.sign="",n=Math.floor(e)):(t.isNegative=!0,t.sign="-",n=Math.ceil(e)),Math.abs(n)}t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.minValue=t.inputObj.minValue,t.maxValue=t.inputObj.maxValue,t.precision=t.inputObj.precision?t.inputObj.precision:3,t.format=t.inputObj.format?t.inputObj.format:"DECIMAL",t.unit=t.inputObj.unit?t.inputObj.unit:"",t.titleLabel=t.inputObj.titleLabel?t.inputObj.titleLabel:"Number Picker",t.setLabel=t.inputObj.setLabel?t.inputObj.setLabel:"Set",t.closeLabel=t.inputObj.closeLabel?t.inputObj.closeLabel:"Close",t.decimalStep=t.inputObj.decimalStep?t.inputObj.decimalStep:.25,t.decimalCharacter=t.inputObj.decimalCharacter?t.inputObj.decimalCharacter:".",t.setButtonType=t.inputObj.setButtonType?t.inputObj.setButtonType:"button-positive",t.closeButtonType=t.inputObj.closeButtonType?t.inputObj.closeButtonType:"button-stable",t.wholeNumber=0,t.decimalNumber=0,t.isNegative=!1,t.sign="",t.numericValue=Number(t.wholeNumber+"."+t.decimalNumber),t.changeFormat=function(){t.format="DECIMAL"===t.format?"WHOLE":"DECIMAL"},t.decimalDisplay=function(){var e=t.decimalNumber.toString(),n=e.indexOf(".");return e.substring(n+1)},t.updateDisplay=function(){document.getElementById("wholeNumber").innerHTML=t.wholeNumber,document.getElementById("decimalNumber")&&(document.getElementById("decimalNumber").innerHTML=t.decimalDisplay()),document.getElementById("sign").innerHTML=t.sign},t.increaseWhole=function(){t.numericValue+=1,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseWhole=function(){t.numericValue-=1,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.increaseDecimal=function(){t.numericValue+=t.decimalStep,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseDecimal=function(){t.numericValue-=t.decimalStep,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.startWholeUpPC=function(){ionic.Platform.isWebView()||t.startWholeUp()},t.startWholeUp=function(){t.increaseWhole(),t.timeoutUpID=setTimeout(function(){t.intervalUpID=setInterval(function(){t.increaseWhole()},100)},600)},t.stopWholeUp=function(){clearInterval(t.intervalUpID),clearTimeout(t.timeoutUpID)},t.startWholeDownPC=function(){ionic.Platform.isWebView()||t.startWholeDown()},t.startWholeDown=function(){t.decreaseWhole(),t.timeoutDownID=setTimeout(function(){t.intervalDownID=setInterval(function(){t.decreaseWhole()},100)},600)},t.stopWholeDown=function(){clearInterval(t.intervalDownID),clearTimeout(t.timeoutDownID)},t.startDecimalUpPC=function(){ionic.Platform.isWebView()||t.startDecimalUp()},t.startDecimalUp=function(){t.increaseDecimal(),t.timeoutUpID=setTimeout(function(){t.intervalUpID=setInterval(function(){t.increaseDecimal()},100)},600)},t.stopDecimalUp=function(){clearInterval(t.intervalUpID),clearTimeout(t.timeoutUpID)},t.startDecimalDownPC=function(){ionic.Platform.isWebView()||t.startDecimalDown()},t.startDecimalDown=function(){t.decreaseDecimal(),t.timeoutDownID=setTimeout(function(){t.intervalDownID=setInterval(function(){t.decreaseDecimal()},100)},600)},t.stopDecimalDown=function(){clearInterval(t.intervalDownID),clearTimeout(t.timeoutDownID)},t.checkMax=function(){t.numericValue>=t.maxValue&&(t.numericValue=t.maxValue,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1))},t.checkMin=function(){t.numericValue<=t.minValue&&(t.numericValue=t.minValue,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1))},n.on("click",function(){"DECIMAL"==t.format?(t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.wholeNumber=l(Number(t.inputValue)),t.decimalNumber=t.inputValue%1,t.numericValue=Number(t.wholeNumber)+Number(o(t.decimalNumber,t.precision)),t.decimalNumber=o(t.numericValue%1),e.show({templateUrl:"ionic-numberpicker-decimal.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.numericValue=Number(t.isNegative?-t.wholeNumber:t.wholeNumber)+Number(o(t.decimalNumber,t.precision)),t.inputObj.callback(t.numericValue)}}]})):(t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.wholeNumber=l(t.inputValue),t.decimalNumber=0,t.numericValue=Number(l(t.wholeNumber))+Number(o(t.decimalNumber,t.precision)),e.show({templateUrl:"ionic-numberpicker-whole.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.inputObj.callback(t.isNegative?-t.wholeNumber:t.wholeNumber)}}]}))})}}}angular.module("ionic-numberpicker").directive("ionicNumberpicker",e),e.$inject=["$ionicPopup"]}(); \ No newline at end of file diff --git a/src/ionic-numberpicker.directive.js b/src/ionic-numberpicker.directive.js index b15c2d3..2f8aedc 100755 --- a/src/ionic-numberpicker.directive.js +++ b/src/ionic-numberpicker.directive.js @@ -98,7 +98,7 @@ }; scope.startWholeUpPC = function() { - if(!ionic.Platform.isIOS() && !ionic.Platform.isAndroid()) { + if(!ionic.Platform.isWebView()) { scope.startWholeUp(); } } @@ -118,7 +118,7 @@ }; scope.startWholeDownPC = function() { - if(!ionic.Platform.isIOS() && !ionic.Platform.isAndroid()) { + if(!ionic.Platform.isWebView()) { scope.startWholeDown(); } } @@ -138,7 +138,7 @@ }; scope.startDecimalUpPC = function() { - if(!ionic.Platform.isIOS() && !ionic.Platform.isAndroid()) { + if(!ionic.Platform.isWebView()) { scope.startDecimalUp(); } } @@ -158,7 +158,7 @@ }; scope.startDecimalDownPC = function() { - if(!ionic.Platform.isIOS() && !ionic.Platform.isAndroid()) { + if(!ionic.Platform.isWebView()) { scope.startDecimalDown(); } } From af70c5bcb14a752ab9c4da5f59ba73fb192ef39f Mon Sep 17 00:00:00 2001 From: MATSUBAYASHI 'Shaolin' Kohji Date: Wed, 1 Jun 2016 09:30:20 +0900 Subject: [PATCH 09/10] update README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 95797e9..9763548 100755 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ $scope.numberPickerObject = { }; ```` -5) (optional) install 'ngTouch' by https://github.com/nglar/ngTouch to get (pseudo-)autorepeat increment/decrement feature on touch panels. +5) Install 'ngTouch' by https://github.com/nglar/ngTouch for touch panel devices. ##Versions: From 254170e7ff2ac47e5ce3e4a0ebcbe37b8c8fe19b Mon Sep 17 00:00:00 2001 From: MATSUBAYASHI 'Shaolin' Kohji Date: Wed, 1 Jun 2016 14:28:30 +0900 Subject: [PATCH 10/10] add 'useNgTouch' option: now fully usable on touch devices with or without ngTouch plugin --- README.md | 3 +- dist/ionic-numberpicker.bundle.min.js | 2 +- dist/templates.js | 4 +- src/ionic-numberpicker-decimal.html | 18 +++--- src/ionic-numberpicker-whole.html | 8 +-- src/ionic-numberpicker.directive.js | 81 +++++++++++---------------- 6 files changed, 51 insertions(+), 65 deletions(-) diff --git a/README.md b/README.md index 9763548..b585ebb 100755 --- a/README.md +++ b/README.md @@ -41,6 +41,7 @@ $scope.numberPickerObject = { decimalStep: 0.25, //Optional format: "DECIMAL", //Optional - "WHOLE" or "DECIMAL" unit: "", //Optional - "m", "kg", "℃" or whatever you want + useNgTouch: false, //Optional - set true in conjunction with using ngTouch (see below) titleLabel: 'Number Picker', //Optional setLabel: 'Set', //Optional closeLabel: 'Close', //Optional @@ -52,7 +53,7 @@ $scope.numberPickerObject = { }; ```` -5) Install 'ngTouch' by https://github.com/nglar/ngTouch for touch panel devices. +5) (optional) Install 'ngTouch' by https://github.com/nglar/ngTouch to get (pseudo-)autorepeat increment/decrement feature on touch panels. Also, remember to set useNgTouch to true. ##Versions: diff --git a/dist/ionic-numberpicker.bundle.min.js b/dist/ionic-numberpicker.bundle.min.js index 455e364..6280b4e 100755 --- a/dist/ionic-numberpicker.bundle.min.js +++ b/dist/ionic-numberpicker.bundle.min.js @@ -1 +1 @@ -!function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(i){n.innerText=t}}(document,"/* Empty. Add your own CSS if you like */\n\n.numberPickerDecimal {\n color: #000;\n padding-top: 45px;\n text-align: center;\n font-weight: bold;\n}\n\n.numberPickerArrows {\n width: 100%;\n}\n\n.numberPickerBoxText {\n color: #000;\n height: 40px;\n text-align: center;\n border: 1px solid #dddddd;\n font-size: 16px;\n padding-top: 5px;\n}\n\n.overflowShow {\n white-space: normal !important;\n}"),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-decimal.html",'
{{wholeNumber}}
{{decimalDisplay()}}
')}])}(),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-whole.html",'
{{wholeNumber}}
')}])}(),function(){"use strict";angular.module("ionic-numberpicker",["ionic","ionic-numberpicker.templates"])}(),function(){"use strict";function e(e){return{restrict:"AE",replace:!0,scope:{inputObj:"=inputObj"},link:function(t,n,i){function o(e,n){var i=parseFloat(e).toFixed(t.precision);return i}function l(e){var n=0;return e>=0?(t.isNegative=!1,t.sign="",n=Math.floor(e)):(t.isNegative=!0,t.sign="-",n=Math.ceil(e)),Math.abs(n)}t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.minValue=t.inputObj.minValue,t.maxValue=t.inputObj.maxValue,t.precision=t.inputObj.precision?t.inputObj.precision:3,t.format=t.inputObj.format?t.inputObj.format:"DECIMAL",t.unit=t.inputObj.unit?t.inputObj.unit:"",t.titleLabel=t.inputObj.titleLabel?t.inputObj.titleLabel:"Number Picker",t.setLabel=t.inputObj.setLabel?t.inputObj.setLabel:"Set",t.closeLabel=t.inputObj.closeLabel?t.inputObj.closeLabel:"Close",t.decimalStep=t.inputObj.decimalStep?t.inputObj.decimalStep:.25,t.decimalCharacter=t.inputObj.decimalCharacter?t.inputObj.decimalCharacter:".",t.setButtonType=t.inputObj.setButtonType?t.inputObj.setButtonType:"button-positive",t.closeButtonType=t.inputObj.closeButtonType?t.inputObj.closeButtonType:"button-stable",t.wholeNumber=0,t.decimalNumber=0,t.isNegative=!1,t.sign="",t.numericValue=Number(t.wholeNumber+"."+t.decimalNumber),t.changeFormat=function(){t.format="DECIMAL"===t.format?"WHOLE":"DECIMAL"},t.decimalDisplay=function(){var e=t.decimalNumber.toString(),n=e.indexOf(".");return e.substring(n+1)},t.updateDisplay=function(){document.getElementById("wholeNumber").innerHTML=t.wholeNumber,document.getElementById("decimalNumber")&&(document.getElementById("decimalNumber").innerHTML=t.decimalDisplay()),document.getElementById("sign").innerHTML=t.sign},t.increaseWhole=function(){t.numericValue+=1,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseWhole=function(){t.numericValue-=1,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.increaseDecimal=function(){t.numericValue+=t.decimalStep,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseDecimal=function(){t.numericValue-=t.decimalStep,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.startWholeUpPC=function(){ionic.Platform.isWebView()||t.startWholeUp()},t.startWholeUp=function(){t.increaseWhole(),t.timeoutUpID=setTimeout(function(){t.intervalUpID=setInterval(function(){t.increaseWhole()},100)},600)},t.stopWholeUp=function(){clearInterval(t.intervalUpID),clearTimeout(t.timeoutUpID)},t.startWholeDownPC=function(){ionic.Platform.isWebView()||t.startWholeDown()},t.startWholeDown=function(){t.decreaseWhole(),t.timeoutDownID=setTimeout(function(){t.intervalDownID=setInterval(function(){t.decreaseWhole()},100)},600)},t.stopWholeDown=function(){clearInterval(t.intervalDownID),clearTimeout(t.timeoutDownID)},t.startDecimalUpPC=function(){ionic.Platform.isWebView()||t.startDecimalUp()},t.startDecimalUp=function(){t.increaseDecimal(),t.timeoutUpID=setTimeout(function(){t.intervalUpID=setInterval(function(){t.increaseDecimal()},100)},600)},t.stopDecimalUp=function(){clearInterval(t.intervalUpID),clearTimeout(t.timeoutUpID)},t.startDecimalDownPC=function(){ionic.Platform.isWebView()||t.startDecimalDown()},t.startDecimalDown=function(){t.decreaseDecimal(),t.timeoutDownID=setTimeout(function(){t.intervalDownID=setInterval(function(){t.decreaseDecimal()},100)},600)},t.stopDecimalDown=function(){clearInterval(t.intervalDownID),clearTimeout(t.timeoutDownID)},t.checkMax=function(){t.numericValue>=t.maxValue&&(t.numericValue=t.maxValue,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1))},t.checkMin=function(){t.numericValue<=t.minValue&&(t.numericValue=t.minValue,t.wholeNumber=l(t.numericValue),t.decimalNumber=o(t.numericValue%1))},n.on("click",function(){"DECIMAL"==t.format?(t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.wholeNumber=l(Number(t.inputValue)),t.decimalNumber=t.inputValue%1,t.numericValue=Number(t.wholeNumber)+Number(o(t.decimalNumber,t.precision)),t.decimalNumber=o(t.numericValue%1),e.show({templateUrl:"ionic-numberpicker-decimal.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.numericValue=Number(t.isNegative?-t.wholeNumber:t.wholeNumber)+Number(o(t.decimalNumber,t.precision)),t.inputObj.callback(t.numericValue)}}]})):(t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.wholeNumber=l(t.inputValue),t.decimalNumber=0,t.numericValue=Number(l(t.wholeNumber))+Number(o(t.decimalNumber,t.precision)),e.show({templateUrl:"ionic-numberpicker-whole.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.inputObj.callback(t.isNegative?-t.wholeNumber:t.wholeNumber)}}]}))})}}}angular.module("ionic-numberpicker").directive("ionicNumberpicker",e),e.$inject=["$ionicPopup"]}(); \ No newline at end of file +!function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(o){n.innerText=t}}(document,"/* Empty. Add your own CSS if you like */\n\n.numberPickerDecimal {\n color: #000;\n padding-top: 45px;\n text-align: center;\n font-weight: bold;\n}\n\n.numberPickerArrows {\n width: 100%;\n}\n\n.numberPickerBoxText {\n color: #000;\n height: 40px;\n text-align: center;\n border: 1px solid #dddddd;\n font-size: 16px;\n padding-top: 5px;\n}\n\n.overflowShow {\n white-space: normal !important;\n}"),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-decimal.html",'
{{wholeNumber}}
{{decimalDisplay()}}
')}])}(),function(e){try{e=angular.module("ionic-numberpicker.templates")}catch(t){e=angular.module("ionic-numberpicker.templates",[])}e.run(["$templateCache",function(e){e.put("ionic-numberpicker-whole.html",'
{{wholeNumber}}
')}])}(),function(){"use strict";angular.module("ionic-numberpicker",["ionic","ionic-numberpicker.templates"])}(),function(){"use strict";function e(e){return{restrict:"AE",replace:!0,scope:{inputObj:"=inputObj"},link:function(t,n,o){function u(e,n){var o=parseFloat(e).toFixed(t.precision);return o}function i(e){var n=0;return e>=0?(t.isNegative=!1,t.sign="",n=Math.floor(e)):(t.isNegative=!0,t.sign="-",n=Math.ceil(e)),Math.abs(n)}t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.minValue=t.inputObj.minValue,t.maxValue=t.inputObj.maxValue,t.precision=t.inputObj.precision?t.inputObj.precision:3,t.format=t.inputObj.format?t.inputObj.format:"DECIMAL",t.unit=t.inputObj.unit?t.inputObj.unit:"",t.titleLabel=t.inputObj.titleLabel?t.inputObj.titleLabel:"Number Picker",t.setLabel=t.inputObj.setLabel?t.inputObj.setLabel:"Set",t.closeLabel=t.inputObj.closeLabel?t.inputObj.closeLabel:"Close",t.decimalStep=t.inputObj.decimalStep?t.inputObj.decimalStep:.25,t.decimalCharacter=t.inputObj.decimalCharacter?t.inputObj.decimalCharacter:".",t.setButtonType=t.inputObj.setButtonType?t.inputObj.setButtonType:"button-positive",t.closeButtonType=t.inputObj.closeButtonType?t.inputObj.closeButtonType:"button-stable",t.useNgTouch=t.inputObj.useNgTouch?t.inputObj.useNgTouch:!1,t.wholeNumber=0,t.decimalNumber=0,t.isNegative=!1,t.sign="",t.numericValue=Number(t.wholeNumber+"."+t.decimalNumber),t.changeFormat=function(){t.format="DECIMAL"===t.format?"WHOLE":"DECIMAL"},t.decimalDisplay=function(){var e=t.decimalNumber.toString(),n=e.indexOf(".");return e.substring(n+1)},t.updateDisplay=function(){document.getElementById("wholeNumber").innerHTML=t.wholeNumber,document.getElementById("decimalNumber")&&(document.getElementById("decimalNumber").innerHTML=t.decimalDisplay()),document.getElementById("sign").innerHTML=t.sign},t.increaseWhole=function(){t.numericValue+=1,t.wholeNumber=i(t.numericValue),t.decimalNumber=u(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseWhole=function(){t.numericValue-=1,t.wholeNumber=i(t.numericValue),t.decimalNumber=u(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.increaseDecimal=function(){t.numericValue+=t.decimalStep,t.wholeNumber=i(t.numericValue),t.decimalNumber=u(t.numericValue%1),t.checkMax(),t.updateDisplay()},t.decreaseDecimal=function(){t.numericValue-=t.decimalStep,t.wholeNumber=i(t.numericValue),t.decimalNumber=u(t.numericValue%1),t.checkMin(),t.updateDisplay()},t.startWholeUp=function(e){(t.useNgTouch&&"touch"==e||!t.useNgTouch&&"mouse"==e)&&(t.increaseWhole(),t.timeoutUpID=setTimeout(function(){t.intervalUpID=setInterval(function(){t.increaseWhole()},100)},600))},t.stopWholeUp=function(){clearInterval(t.intervalUpID),clearTimeout(t.timeoutUpID)},t.startWholeDown=function(e){(t.useNgTouch&&"touch"==e||!t.useNgTouch&&"mouse"==e)&&(t.decreaseWhole(),t.timeoutDownID=setTimeout(function(){t.intervalDownID=setInterval(function(){t.decreaseWhole()},100)},600))},t.stopWholeDown=function(){clearInterval(t.intervalDownID),clearTimeout(t.timeoutDownID)},t.startDecimalUp=function(e){(t.useNgTouch&&"touch"==e||!t.useNgTouch&&"mouse"==e)&&(t.increaseDecimal(),t.timeoutUpID=setTimeout(function(){t.intervalUpID=setInterval(function(){t.increaseDecimal()},100)},600))},t.stopDecimalUp=function(){clearInterval(t.intervalUpID),clearTimeout(t.timeoutUpID)},t.startDecimalDown=function(e){(t.useNgTouch&&"touch"==e||!t.useNgTouch&&"mouse"==e)&&(t.decreaseDecimal(),t.timeoutDownID=setTimeout(function(){t.intervalDownID=setInterval(function(){t.decreaseDecimal()},100)},600))},t.stopDecimalDown=function(){clearInterval(t.intervalDownID),clearTimeout(t.timeoutDownID)},t.checkMax=function(){t.numericValue>=t.maxValue&&(t.numericValue=t.maxValue,t.wholeNumber=i(t.numericValue),t.decimalNumber=u(t.numericValue%1))},t.checkMin=function(){t.numericValue<=t.minValue&&(t.numericValue=t.minValue,t.wholeNumber=i(t.numericValue),t.decimalNumber=u(t.numericValue%1))},n.on("click",function(){"DECIMAL"==t.format?(t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.wholeNumber=i(Number(t.inputValue)),t.decimalNumber=t.inputValue%1,t.numericValue=Number(t.wholeNumber)+Number(u(t.decimalNumber,t.precision)),t.decimalNumber=u(t.numericValue%1),e.show({templateUrl:"ionic-numberpicker-decimal.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.numericValue=Number(t.isNegative?-t.wholeNumber:t.wholeNumber)+Number(u(t.decimalNumber,t.precision)),t.inputObj.callback(t.numericValue)}}]})):(t.inputValue=t.inputObj.inputValue?t.inputObj.inputValue:0,t.wholeNumber=i(t.inputValue),t.decimalNumber=0,t.numericValue=Number(i(t.wholeNumber))+Number(u(t.decimalNumber,t.precision)),e.show({templateUrl:"ionic-numberpicker-whole.html",title:t.titleLabel,subTitle:"",scope:t,buttons:[{text:t.closeLabel,type:t.closeButtonType,onTap:function(e){t.inputObj.callback(void 0)}},{text:t.setLabel,type:t.setButtonType,onTap:function(e){t.loadingContent=!0,t.inputObj.callback(t.isNegative?-t.wholeNumber:t.wholeNumber)}}]}))})}}}angular.module("ionic-numberpicker").directive("ionicNumberpicker",e),e.$inject=["$ionicPopup"]}(); \ No newline at end of file diff --git a/dist/templates.js b/dist/templates.js index 17d2729..081c276 100755 --- a/dist/templates.js +++ b/dist/templates.js @@ -6,7 +6,7 @@ try { } module.run(['$templateCache', function($templateCache) { $templateCache.put('ionic-numberpicker-decimal.html', - '
{{wholeNumber}}
{{decimalDisplay()}}
'); + '
{{wholeNumber}}
{{decimalDisplay()}}
'); }]); })(); @@ -18,6 +18,6 @@ try { } module.run(['$templateCache', function($templateCache) { $templateCache.put('ionic-numberpicker-whole.html', - '
{{wholeNumber}}
'); + '
{{wholeNumber}}
'); }]); })(); diff --git a/src/ionic-numberpicker-decimal.html b/src/ionic-numberpicker-decimal.html index ab8b821..86b495e 100755 --- a/src/ionic-numberpicker-decimal.html +++ b/src/ionic-numberpicker-decimal.html @@ -3,27 +3,27 @@
{{wholeNumber}}
{{decimalDisplay()}}
-
+
diff --git a/src/ionic-numberpicker-whole.html b/src/ionic-numberpicker-whole.html index 47e9602..088363b 100755 --- a/src/ionic-numberpicker-whole.html +++ b/src/ionic-numberpicker-whole.html @@ -3,13 +3,13 @@
{{wholeNumber}}
diff --git a/src/ionic-numberpicker.directive.js b/src/ionic-numberpicker.directive.js index 2f8aedc..9102160 100755 --- a/src/ionic-numberpicker.directive.js +++ b/src/ionic-numberpicker.directive.js @@ -32,6 +32,7 @@ scope.setButtonType = scope.inputObj.setButtonType ? scope.inputObj.setButtonType : 'button-positive'; scope.closeButtonType = scope.inputObj.closeButtonType ? scope.inputObj.closeButtonType : 'button-stable'; + scope.useNgTouch = scope.inputObj.useNgTouch ? scope.inputObj.useNgTouch : false; scope.wholeNumber = 0; scope.decimalNumber = 0; scope.isNegative = false; @@ -97,19 +98,15 @@ scope.updateDisplay(); }; - scope.startWholeUpPC = function() { - if(!ionic.Platform.isWebView()) { - scope.startWholeUp(); + scope.startWholeUp = function(d) { + if ((scope.useNgTouch && d == 'touch') || (!scope.useNgTouch && d == 'mouse')) { + scope.increaseWhole(); + scope.timeoutUpID = setTimeout(function() { + scope.intervalUpID = setInterval(function(){ + scope.increaseWhole(); + }, 100) + }, 600) } - } - - scope.startWholeUp = function() { - scope.increaseWhole(); - scope.timeoutUpID = setTimeout(function() { - scope.intervalUpID = setInterval(function(){ - scope.increaseWhole(); - }, 100) - }, 600) }; scope.stopWholeUp = function() { @@ -117,19 +114,15 @@ clearTimeout(scope.timeoutUpID); }; - scope.startWholeDownPC = function() { - if(!ionic.Platform.isWebView()) { - scope.startWholeDown(); + scope.startWholeDown = function(d) { + if ((scope.useNgTouch && d == 'touch') || (!scope.useNgTouch && d == 'mouse')) { + scope.decreaseWhole(); + scope.timeoutDownID = setTimeout(function() { + scope.intervalDownID = setInterval(function(){ + scope.decreaseWhole(); + }, 100) + }, 600) } - } - - scope.startWholeDown = function() { - scope.decreaseWhole(); - scope.timeoutDownID = setTimeout(function() { - scope.intervalDownID = setInterval(function(){ - scope.decreaseWhole(); - }, 100) - }, 600) }; scope.stopWholeDown = function() { @@ -137,19 +130,15 @@ clearTimeout(scope.timeoutDownID); }; - scope.startDecimalUpPC = function() { - if(!ionic.Platform.isWebView()) { - scope.startDecimalUp(); + scope.startDecimalUp = function(d) { + if ((scope.useNgTouch && d == 'touch') || (!scope.useNgTouch && d == 'mouse')) { + scope.increaseDecimal(); + scope.timeoutUpID = setTimeout(function() { + scope.intervalUpID = setInterval(function(){ + scope.increaseDecimal(); + }, 100) + }, 600) } - } - - scope.startDecimalUp = function() { - scope.increaseDecimal(); - scope.timeoutUpID = setTimeout(function() { - scope.intervalUpID = setInterval(function(){ - scope.increaseDecimal(); - }, 100) - }, 600) }; scope.stopDecimalUp = function() { @@ -157,19 +146,15 @@ clearTimeout(scope.timeoutUpID); }; - scope.startDecimalDownPC = function() { - if(!ionic.Platform.isWebView()) { - scope.startDecimalDown(); + scope.startDecimalDown = function(d) { + if ((scope.useNgTouch && d == 'touch') || (!scope.useNgTouch && d == 'mouse')) { + scope.decreaseDecimal(); + scope.timeoutDownID = setTimeout(function() { + scope.intervalDownID = setInterval(function(){ + scope.decreaseDecimal(); + }, 100) + }, 600) } - } - - scope.startDecimalDown = function() { - scope.decreaseDecimal(); - scope.timeoutDownID = setTimeout(function() { - scope.intervalDownID = setInterval(function(){ - scope.decreaseDecimal(); - }, 100) - }, 600) }; scope.stopDecimalDown = function() {