all files / workbook/common/ internalization.js

97.87% Statements 46/47
97.83% Branches 45/46
100% Functions 3/3
97.87% Lines 46/47
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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74   11220× 11220× 9218×   9215× 8438×   777× 33×   777×   777×   777× 11×   777× 30×   747×                   2002× 1942×   798×   290× 290× 290× 290× 290× 290× 384× 111×     273×     384× 258×     290×      
define(["require", "exports", "../common/index", "@syncfusion/ej2-base"], function (require, exports, index_1, ej2_base_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    function checkIsNumberAndGetNumber(cell, locale, groupSep, decimalSep, currencySym, isFractionalType, checkCurrency) {
        var cellValue = cell.value;
        if (cellValue && typeof cellValue === 'string') {
            if (cellValue.includes('\n')) {
                return { isNumber: false, value: cellValue };
            }
            if (index_1.isNumber(cellValue)) {
                return { isNumber: true, value: cellValue };
            }
            if (currencySym && cellValue.includes(currencySym) && (checkCurrency || cell.format.includes(currencySym) || cell.format.includes('$'))) {
                cellValue = cellValue.replace(currencySym, '').trim();
            }
            if (groupSep && cellValue.includes(groupSep) && parseThousandSeparator(cellValue, locale, groupSep, decimalSep)) {
                cellValue = cellValue.split(groupSep).join('').trim();
            }
            if (!decimalSep) {
                decimalSep = ej2_base_1.getNumericObject(locale).decimal;
            }
            if (decimalSep !== '.' && cellValue.includes(decimalSep)) {
                cellValue = cellValue.replace(decimalSep, '.').trim();
            }
            if (index_1.isNumber(cellValue)) {
                return { isNumber: true, value: cellValue };
            }
            if (isFractionalType && cellValue.split('/').length === 2) {
                try {
                    var splittedVal = cellValue.split(' ');
                    if (splittedVal.length === 2 && splittedVal[0].split('/').length === 1) {
                        var result = index_1.evaluate(splittedVal[0]);
                        var result1 = index_1.evaluate(splittedVal[1]);
                        cellValue = result + result1;
                    }
                    else {
                        cellValue = index_1.evaluate(cellValue);
                    }
                    return { isNumber: true, value: cellValue };
                }
                catch (error) {
                    return { isNumber: false, value: cellValue };
                }
            }
        }
        else if (index_1.isNumber(cellValue)) {
            return { isNumber: true, value: cellValue };
        }
        return { isNumber: false, value: cellValue };
    }
    exports.checkIsNumberAndGetNumber = checkIsNumberAndGetNumber;
    function parseThousandSeparator(value, locale, groupSep, decimalSep) {
        var isParsed = false;
        var number = 123456;
        var parsedNum = number.toLocaleString(locale);
        var splitedNum = parsedNum.split(groupSep).reverse();
        var splitedValue = value.split(decimalSep)[0].split(groupSep);
        for (var i = 0; i < splitedValue.length; i++) {
            if (i === splitedValue.length - 1) {
                isParsed = splitedValue[i].length === splitedNum[0].length;
            }
            else {
                isParsed = !ej2_base_1.isUndefined(splitedNum[1]) && (i === 0 ? splitedValue[i].length <= splitedNum[1].length :
                    splitedValue[i].length === splitedNum[1].length);
            }
            if (!isParsed) {
                break;
            }
        }
        return isParsed;
    }
    exports.parseThousandSeparator = parseThousandSeparator;
});