forked from olifolkerd/tabulator
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathmoney.js
More file actions
37 lines (29 loc) · 1.1 KB
/
money.js
File metadata and controls
37 lines (29 loc) · 1.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
export default function(cell, formatterParams, onRendered){
var floatVal = parseFloat(cell.getValue()),
sign = "",
number, integer, decimal, rgx;
var decimalSym = formatterParams.decimal || ".";
var thousandSym = formatterParams.thousand || ",";
var negativeSign = formatterParams.negativeSign || "-";
var symbol = formatterParams.symbol || "";
var after = !!formatterParams.symbolAfter;
var precision = typeof formatterParams.precision !== "undefined" ? formatterParams.precision : 2;
if(Number.isNaN(floatVal)){
return this.emptyToSpace(this.sanitizeHTML(cell.getValue()));
}
if(floatVal < 0){
floatVal = Math.abs(floatVal);
sign = negativeSign;
}
number = precision !== false ? floatVal.toFixed(precision) : floatVal;
number = String(number).split(".");
integer = number[0];
decimal = number.length > 1 ? decimalSym + number[1] : "";
if (formatterParams.thousand !== false) {
rgx = /(\d+)(\d{3})/;
while (rgx.test(integer)){
integer = integer.replace(rgx, "$1" + thousandSym + "$2");
}
}
return after ? sign + integer + decimal + symbol : sign + symbol + integer + decimal;
};