diff --git a/dist/angular-dateparser.js b/dist/angular-dateparser.js index ed06e97..7600a04 100644 --- a/dist/angular-dateparser.js +++ b/dist/angular-dateparser.js @@ -175,11 +175,11 @@ angular.module("dateParser", []).factory("dateParserHelpers", [ function() { } else { if (val[i_val + 3] === ":") { var tzStr = val.substring(i_val, i_val + 6); - z = parseInt(tzStr.substr(0, 3)) * 60 + parseInt(tzStr.substr(4, 2)); + z = parseInt(tzStr.substr(0, 3), 10) * 60 + parseInt(tzStr.substr(4, 2), 10); i_val += 6; } else { var tzStr = val.substring(i_val, i_val + 5); - z = parseInt(tzStr.substr(0, 3)) * 60 + parseInt(tzStr.substr(3, 2)); + z = parseInt(tzStr.substr(0, 3), 10) * 60 + parseInt(tzStr.substr(3, 2), 10); i_val += 5; } } @@ -197,13 +197,13 @@ angular.module("dateParser", []).factory("dateParserHelpers", [ function() { if (i_val != val.length) { throw "Pattern value mismatch"; } - year = parseInt(year); - month = parseInt(month); - date = parseInt(date); - hh = parseInt(hh); - mm = parseInt(mm); - ss = parseInt(ss); - sss = parseInt(sss); + year = parseInt(year, 10); + month = parseInt(month, 10); + date = parseInt(date, 10); + hh = parseInt(hh, 10); + mm = parseInt(mm, 10); + ss = parseInt(ss, 10); + sss = parseInt(sss, 10); if (month == 2) { if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) { if (date > 29) { diff --git a/dist/angular-dateparser.min.js b/dist/angular-dateparser.min.js index 425b13e..a940f05 100644 --- a/dist/angular-dateparser.min.js +++ b/dist/angular-dateparser.min.js @@ -8,5 +8,5 @@ * Licensed under the MIT license: * http://www.opensource.org/licenses/MIT */ -angular.module("dateParser",[]).factory("dateParserHelpers",[function(){"use strict";return{hasOnlyIntegers:function(a){if(!a)return!1;for(var b="1234567890",c=0;c=c;e--){var f=a.substring(b,b+e);if(this.hasOnlyIntegers(f))return f}return null}}}]).factory("$dateParser",["$locale","dateParserHelpers",function(a,b){"use strict";var c=a.DATETIME_FORMATS,d=c.MONTH.concat(c.SHORTMONTH),e=c.DAY.concat(c.SHORTDAY);return function(a,f){if(angular.isDate(a))return a;try{if(a+="",f+="",!f.length)return new Date(a);c[f]&&(f=c[f]);for(var g=new Date,h=0,i=0,j="",k=g.getFullYear(),l=g.getMonth()+1,m=g.getDate(),n=0,o=0,p=0,q=0,r="am",s=0,t=!1;i70?1900+(k-0):2e3+(k-0))}else if("MMMM"===u||"MMM"==u){l=0;for(var x=0;x12&&(l-=12),h+=y.length;break}}if(1>l||l>12)throw"Invalid month"}else if("EEEE"==u||"EEE"==u)for(var z=0;zl||l>12)throw"Invalid month";h+=l.length}else if("dd"==u||"d"==u){if(m=b.getInteger(a,h,u.length,2),null===m||1>m||m>31)throw"Invalid date";h+=m.length}else if("HH"==u||"H"==u){if(n=b.getInteger(a,h,u.length,2),null===n||0>n||n>23)throw"Invalid hours";h+=n.length}else if("hh"==u||"h"==u){if(n=b.getInteger(a,h,u.length,2),null===n||1>n||n>12)throw"Invalid hours";h+=n.length}else if("mm"==u||"m"==u){if(o=b.getInteger(a,h,u.length,2),null===o||0>o||o>59)throw"Invalid minutes";h+=o.length}else if("ss"==u||"s"==u){if(p=b.getInteger(a,h,u.length,2),null===p||0>p||p>59)throw"Invalid seconds";h+=p.length}else if("sss"===u){if(q=b.getInteger(a,h,3,3),null===q||0>q||q>999)throw"Invalid milliseconds";h+=3}else if("a"==u){if("am"==a.substring(h,h+2).toLowerCase())r="AM";else{if("pm"!=a.substring(h,h+2).toLowerCase())throw"Invalid AM/PM";r="PM"}h+=2}else if("Z"==u){if(t=!0,"Z"===a[h])s=0,h+=1;else if(":"===a[h+3]){var B=a.substring(h,h+6);s=60*parseInt(B.substr(0,3))+parseInt(B.substr(4,2)),h+=6}else{var B=a.substring(h,h+5);s=60*parseInt(B.substr(0,3))+parseInt(B.substr(3,2)),h+=5}if(s>720||-720>s)throw"Invalid timezone"}else{if(a.substring(h,h+u.length)!=u)throw"Pattern value mismatch";h+=u.length}}else{for(;"'"!=f.charAt(++i)&&i29)throw"Invalid date"}else if(m>28)throw"Invalid date";if((4==l||6==l||9==l||11==l)&&m>30)throw"Invalid date";12>n&&"PM"==r?n+=12:n>11&&"AM"==r&&(n-=12);var C=new Date(k,l-1,m,n,o,p,q);return t?new Date(C.getTime()-6e4*(s+C.getTimezoneOffset())):C}catch(D){return void 0}}}]); +angular.module("dateParser",[]).factory("dateParserHelpers",[function(){"use strict";return{hasOnlyIntegers:function(a){if(!a)return!1;for(var b="1234567890",c=0;c=c;e--){var f=a.substring(b,b+e);if(this.hasOnlyIntegers(f))return f}return null}}}]).factory("$dateParser",["$locale","dateParserHelpers",function(a,b){"use strict";var c=a.DATETIME_FORMATS,d=c.MONTH.concat(c.SHORTMONTH),e=c.DAY.concat(c.SHORTDAY);return function(a,f){if(angular.isDate(a))return a;try{if(a+="",f+="",!f.length)return new Date(a);c[f]&&(f=c[f]);for(var g=new Date,h=0,i=0,j="",k=g.getFullYear(),l=g.getMonth()+1,m=g.getDate(),n=0,o=0,p=0,q=0,r="am",s=0,t=!1;i70?1900+(k-0):2e3+(k-0))}else if("MMMM"===u||"MMM"==u){l=0;for(var x=0;x12&&(l-=12),h+=y.length;break}}if(1>l||l>12)throw"Invalid month"}else if("EEEE"==u||"EEE"==u)for(var z=0;zl||l>12)throw"Invalid month";h+=l.length}else if("dd"==u||"d"==u){if(m=b.getInteger(a,h,u.length,2),null===m||1>m||m>31)throw"Invalid date";h+=m.length}else if("HH"==u||"H"==u){if(n=b.getInteger(a,h,u.length,2),null===n||0>n||n>23)throw"Invalid hours";h+=n.length}else if("hh"==u||"h"==u){if(n=b.getInteger(a,h,u.length,2),null===n||1>n||n>12)throw"Invalid hours";h+=n.length}else if("mm"==u||"m"==u){if(o=b.getInteger(a,h,u.length,2),null===o||0>o||o>59)throw"Invalid minutes";h+=o.length}else if("ss"==u||"s"==u){if(p=b.getInteger(a,h,u.length,2),null===p||0>p||p>59)throw"Invalid seconds";h+=p.length}else if("sss"===u){if(q=b.getInteger(a,h,3,3),null===q||0>q||q>999)throw"Invalid milliseconds";h+=3}else if("a"==u){if("am"==a.substring(h,h+2).toLowerCase())r="AM";else{if("pm"!=a.substring(h,h+2).toLowerCase())throw"Invalid AM/PM";r="PM"}h+=2}else if("Z"==u){if(t=!0,"Z"===a[h])s=0,h+=1;else if(":"===a[h+3]){var B=a.substring(h,h+6);s=60*parseInt(B.substr(0,3),10)+parseInt(B.substr(4,2),10),h+=6}else{var B=a.substring(h,h+5);s=60*parseInt(B.substr(0,3),10)+parseInt(B.substr(3,2),10),h+=5}if(s>720||-720>s)throw"Invalid timezone"}else{if(a.substring(h,h+u.length)!=u)throw"Pattern value mismatch";h+=u.length}}else{for(;"'"!=f.charAt(++i)&&i29)throw"Invalid date"}else if(m>28)throw"Invalid date";if((4==l||6==l||9==l||11==l)&&m>30)throw"Invalid date";12>n&&"PM"==r?n+=12:n>11&&"AM"==r&&(n-=12);var C=new Date(k,l-1,m,n,o,p,q);return t?new Date(C.getTime()-6e4*(s+C.getTimezoneOffset())):C}catch(D){return void 0}}}]); //# sourceMappingURL=angular-dateparser.min.js.map \ No newline at end of file diff --git a/dist/angular-dateparser.min.js.map b/dist/angular-dateparser.min.js.map index e170141..de20a00 100644 --- a/dist/angular-dateparser.min.js.map +++ b/dist/angular-dateparser.min.js.map @@ -1 +1 @@ -{"version":3,"file":"angular-dateparser.min.js","sources":["../dateparser.js"],"names":["angular","module","factory","hasOnlyIntegers","string","digits","i","length","indexOf","charAt","getInteger","startPoint","minLength","maxLength","extracted","substring","this","$locale","dateParserHelpers","datetimeFormats","DATETIME_FORMATS","monthNames","MONTH","concat","SHORTMONTH","dayNames","DAY","SHORTDAY","val","format","isDate","Date","now","i_val","i_format","format_token","year","getFullYear","month","getMonth","date","getDate","hh","mm","ss","sss","ampm","z","parsedZ","token","month_name","toLowerCase","j","day_name","tzStr","parseInt","substr","localDate","getTime","getTimezoneOffset","e","undefined"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"angular-dateparser.min.js","sources":["../dateparser.js"],"names":["angular","module","factory","hasOnlyIntegers","string","digits","i","length","indexOf","charAt","getInteger","startPoint","minLength","maxLength","extracted","substring","this","$locale","dateParserHelpers","datetimeFormats","DATETIME_FORMATS","monthNames","MONTH","concat","SHORTMONTH","dayNames","DAY","SHORTDAY","val","format","isDate","Date","now","i_val","i_format","format_token","year","getFullYear","month","getMonth","date","getDate","hh","mm","ss","sss","ampm","z","parsedZ","token","month_name","toLowerCase","j","day_name","tzStr","parseInt","substr","localDate","getTime","getTimezoneOffset","e","undefined"],"mappings":"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"} \ No newline at end of file