vatModule.service('keyValueDataService', ['enums', function (enums) { return { parseValue: function (keyValueData, targetType) { // parseValue(50, enums.cellDataType.Accounting) // or parseValue({ value: 50, type: enums.cellDataType.Accounting }) var type, value; if (targetType !== undefined) { type = targetType; value = keyValueData; } else { type = keyValueData.resultType; value = keyValueData.value; } if (!_.isString(value) || _.isEmpty(value)) { return value; } if (!type || type === enums.cellDataType.Accounting || type === enums.cellDataType.Percentage) { return parseFloat(value); } else if (type === enums.cellDataType.Boolean) { return value.toLowerCase() === 'true'; } else if (type === enums.cellDataType.String) { return value; } else if (type === enums.cellDataType.Integer) { return parseInt(value); } return value; } }; }]);