UNPKG

983 BJavaScriptView Raw
1'use strict';
2
3var _ = require('lodash');
4
5/**
6 * Format numbers
7 *
8 * @param integer n: length of decimal
9 * @param mixed s: thousands delimiter
10 * @param mixed c: decimal delimiter
11 */
12function numberFormat(value, n, s, c) {
13 var re = '\\d(?=(\\d{3})+' + (n > 0 ? '\\D' : '$') + ')',
14 num = value.toFixed(Math.max(0, ~~n));
15
16 return (c ? num.replace('.', c) : num).replace(new RegExp(re, 'g'), '$&' + (s || ','));
17}
18
19function helper(paper) {
20 paper.handlebars.registerHelper('money', function (value) {
21 var money = paper.settings.money;
22
23 if (!_.isNumber(value)) {
24 return '';
25 }
26
27 value = numberFormat(
28 value,
29 money.decimal_places,
30 money.thousands_token,
31 money.decimal_token
32 );
33
34 return money.currency_location === 'left'
35 ? money.currency_token + ' ' + value
36 : value + ' ' + money.currency_token;
37 });
38}
39
40module.exports = helper;