Move out functionality
This commit is contained in:
		| @@ -95,8 +95,55 @@ trait Charts | ||||
|         ]; | ||||
|     } | ||||
|  | ||||
|     public function formatMoney( ){ | ||||
|          | ||||
|     public function formatMoney($str){ | ||||
|         return new Raw( | ||||
|             " | ||||
|             const moneySettings = { | ||||
|                 decimal: '" . config('money.' . setting('default.currency') . '.decimal_mark') . "', | ||||
|                 thousands: '". config('money.' . setting('default.currency') . '.thousands_separator') . "', | ||||
|                 symbol: '" . config('money.' . setting('default.currency') . '.symbol') . "', | ||||
|                 isPrefix: '" . config('money.' . setting('default.currency') . '.symbol_first') . "', | ||||
|                 precision: '" . config('money.' . setting('default.currency') . '.precision') . "', | ||||
|             }; | ||||
|  | ||||
|             const $str = function (input, opt = moneySettings) { | ||||
|                 function fixed (precision) { | ||||
|                     return Math.max(0, Math.min(precision, 20)); | ||||
|                 }; | ||||
|  | ||||
|                 function toStr(value) { | ||||
|                     return value ? value.toString() : ''; | ||||
|                 }; | ||||
|  | ||||
|                 function numbersToCurrency(numbers, precision) { | ||||
|                     var exp = Math.pow(10, precision); | ||||
|                     var float = parseFloat(numbers) / exp; | ||||
|  | ||||
|                     return float.toFixed(fixed(precision)); | ||||
|                 }; | ||||
|  | ||||
|                 function joinIntegerAndDecimal (integer, decimal, separator) { | ||||
|                     return decimal ? integer + separator + decimal : integer; | ||||
|                 }; | ||||
|  | ||||
|                 if (typeof input === 'number') { | ||||
|                   input = input.toFixed(fixed(opt.precision)); | ||||
|                 }; | ||||
|  | ||||
|                 var negative = input.indexOf('-') >= 0 ? '-' : ''; | ||||
|                 var numbers = toStr(input).replace(/\D+/g, '') || '0'; | ||||
|                 var currency = numbersToCurrency(numbers, opt.precision); | ||||
|                 var parts = toStr(currency).split('.'); | ||||
|                 var integer = parts[0].replace(/(\d)(?=(?:\d{3})+\b)/gm, opt.thousands);; | ||||
|                 var decimal = parts[1]; | ||||
|  | ||||
|                 if(opt.isPrefix) { | ||||
|                     return opt.symbol + negative + joinIntegerAndDecimal(integer, decimal, opt.decimal) | ||||
|                 } | ||||
|  | ||||
|                 return negative + joinIntegerAndDecimal(integer, decimal, opt.decimal) + opt.suffix; | ||||
|             }" | ||||
|         ); | ||||
|     } | ||||
|  | ||||
|     public function getLineChartOptions() | ||||
| @@ -113,52 +160,6 @@ trait Charts | ||||
|                 'position' => 'nearest', | ||||
|                 'callbacks' => [ | ||||
|                     'label' => new Raw("function(tooltipItem, data) {  | ||||
|                         const moneySettings = { | ||||
|                             decimal: '" . config('money.' . setting('default.currency') . '.decimal_mark') . "', | ||||
|                             thousands: '". config('money.' . setting('default.currency') . '.thousands_separator') . "', | ||||
|                             symbol: '" . config('money.' . setting('default.currency') . '.symbol') . "', | ||||
|                             isPrefix: '" . config('money.' . setting('default.currency') . '.symbol_first') . "', | ||||
|                             precision: '" . config('money.' . setting('default.currency') . '.precision') . "', | ||||
|                         }; | ||||
|  | ||||
|                         const formattedCurrency = function (input, opt = moneySettings) { | ||||
|                             function fixed (precision) { | ||||
|                                 return Math.max(0, Math.min(precision, 20)); | ||||
|                             }; | ||||
|  | ||||
|                             function toStr(value) { | ||||
|                                 return value ? value.toString() : ''; | ||||
|                             }; | ||||
|  | ||||
|                             function numbersToCurrency(numbers, precision) { | ||||
|                                 var exp = Math.pow(10, precision); | ||||
|                                 var float = parseFloat(numbers) / exp; | ||||
|      | ||||
|                                 return float.toFixed(fixed(precision)); | ||||
|                             }; | ||||
|  | ||||
|                             function joinIntegerAndDecimal (integer, decimal, separator) { | ||||
|                                 return decimal ? integer + separator + decimal : integer; | ||||
|                             }; | ||||
|  | ||||
|                             if (typeof input === 'number') { | ||||
|                               input = input.toFixed(fixed(opt.precision)); | ||||
|                             }; | ||||
|  | ||||
|                             var negative = input.indexOf('-') >= 0 ? '-' : ''; | ||||
|                             var numbers = toStr(input).replace(/\D+/g, '') || '0'; | ||||
|                             var currency = numbersToCurrency(numbers, opt.precision); | ||||
|                             var parts = toStr(currency).split('.'); | ||||
|                             var integer = parts[0].replace(/(\d)(?=(?:\d{3})+\b)/gm, opt.thousands);; | ||||
|                             var decimal = parts[1]; | ||||
|  | ||||
|                             if(opt.isPrefix) { | ||||
|                                 return opt.symbol + negative + joinIntegerAndDecimal(integer, decimal, opt.decimal) | ||||
|                             } | ||||
|  | ||||
|                             return negative + joinIntegerAndDecimal(integer, decimal, opt.decimal) + opt.suffix; | ||||
|                         }; | ||||
|  | ||||
|                         return formattedCurrency(tooltipItem.yLabel, moneySettings); | ||||
|                     }") | ||||
|                 ], | ||||
|   | ||||
		Reference in New Issue
	
	Block a user