Files

1 line
8.7 KiB
JavaScript
Raw Permalink Normal View History

2026-06-30 21:34:42 -04:00
(function(a,b){'object'==typeof exports&&'undefined'!=typeof module?module.exports=b():'function'==typeof define&&define.amd?define(b):a.Dinero=b()})(this,function(){'use strict';function a(a){return!isNaN(parseInt(a))&&isFinite(a)}function b(b){return a(b)&&100>=b&&0<=b}function c(a){return 0<a.length&&a.every(function(a){return 0<a})}function d(a){return 0==a%2}function e(b){return a(b)&&!w(b)}function f(){var a=0<arguments.length&&arguments[0]!==void 0?arguments[0]:0,b=a.toString().split('.')[1];return b?b.length:0}function g(a){return .5==v(a)%1}function h(a){var b=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};return new Promise(function(c,d){var e=Object.assign(new XMLHttpRequest,{onreadystatechange:function(){4===e.readyState&&(200<=e.status&&400>e.status?c(JSON.parse(e.responseText)):d(new Error(e.statusText)))},onerror:function(){d(new Error('Network error'))}});e.open('GET',a,!0),i(e,b.headers),e.send()})}function i(a){var b=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};for(var c in b)a.setRequestHeader(c,b[c]);return a}function j(a){return'undefined'==typeof a}function k(a){var b=1<arguments.length&&void 0!==arguments[1]?arguments[1]:'.',c={};return Object.entries(a).forEach(function(a){if('object'===y(a[1])){var d=k(a[1]);Object.entries(d).forEach(function(d){c[a[0]+b+d[0]]=d[1]})}else c[a[0]]=a[1]}),c}function l(a){return!!a&&('object'===('undefined'==typeof a?'undefined':y(a))||'function'==typeof a)&&'function'==typeof a.then}function m(){var a=Math.sign,c=Math.round,h=function(d,a){var b=function(a){return u(10,f(a))},e=x(b(d),b(a));return c(d*e)*c(a*e)/(e*e)},b={HALF_ODD:function(a){var b=c(a);return g(a)?d(b)?b-1:b:b},HALF_EVEN:function(a){var b=c(a);return g(a)?d(b)?b:b-1:b},HALF_UP:function(a){return c(a)},HALF_DOWN:function(a){return g(a)?t(a):c(a)},HALF_TOWARDS_ZERO:function(b){return g(b)?a(b)*t(v(b)):c(b)},HALF_AWAY_FROM_ZERO:function(b){return g(b)?a(b)*Math.ceil(v(b)):c(b)}};return{add:function(c,a){return c+a},subtract:function(c,a){return c-a},multiply:function(c,a){return e(c)||e(a)?h(c,a):c*a},divide:function(c,a){return c/a},modulo:function(c,a){return c%a},round:function(a){var c=1<arguments.length&&arguments[1]!==void 0?arguments[1]:'HALF_EVEN';return b[c](a)}}}function n(a){var b=/^(?:(\$|USD)?0(?:(,)0)?(\.)?(0+)?|0(?:(,)0)?(\.)?(0+)?\s?(dollar)?)$/gm.exec(a);return{getMatches:function(){return null===b?[]:b.slice(1).filter(function(a){return!j(a)})},getMinimumFractionDigits:function(){var a=function(a){return'.'===a};return j(this.getMatches().find(a))?0:this.getMatches()[z.add(this.getMatches().findIndex(a),1)].split('').length},getCurrencyDisplay:function(){return{USD:'code',dollar:'name',$:'symbol'}[this.getMatches().find(function(a){return'USD'===a||'dollar'===a||'$'===a})]},getStyle:function(){return j(this.getCurrencyDisplay(this.getMatches()))?'decimal':'currency'},getUseGrouping:function(){return!j(this.getMatches().find(function(a){return','===a}))}}}function o(a){var b=function(){var a=0<arguments.length&&arguments[0]!==void 0?arguments[0]:'',b=arguments[1];for(var c in b)a=a.replace('{{'+c+'}}',b[c]);return a},c=function(c,d){return h(b(a.endpoint,{from:c,to:d}),{headers:a.headers})};return{getExchangeRate:function(d,e){return(l(a.endpoint)?a.endpoint:c(d,e)).then(function(c){return k(c)[b(a.propertyPath,{from:d,to:e})]})}}}function p(a){var b=1<arguments.length&&arguments[1]!==void 0?arguments[1]:new Error;if(!a)throw b}function q(a){p(b(a),new RangeError('You must provide a numeric value between 0 and 100.'))}function r(a){p(c(a),new TypeError('You must provide a non-empty array of numeric values greater than 0.'))}function s(a){p(w(a),new TypeError('You must provide an integer.'))}var t=Math.floor,u=Math.pow,v=Math.abs,w=Number.isInteger,x=Math.max,y='function'==typeof Symbol&&'symbol'==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&'function'==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?'symbol':typeof a},z=m(),A=m(),B=Object.assign(function a(b){var c=Object.assign({},{amount:a.defaultAmount,currency:a.def