UNPKG

react-web-native-sketch

Version:

[TODO: We need an overview of how this can be used via npm vs as a local package]

91 lines 3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var strings_1 = require("../../utils/strings"); var enums_1 = require("../../utils/enums"); exports.DEFAULT_MAX_DECIMALS = 7; exports.parseValue = function (textInputType, value) { switch (textInputType) { case enums_1.TEXT_INPUT_TYPES.INT: return parseInt(value); case enums_1.TEXT_INPUT_TYPES.FLOAT: return parseFloat(value); case enums_1.TEXT_INPUT_TYPES.JSON: try { return JSON.parse(value || ''); } catch (err) { return {}; } default: return value; } }; exports.getKeyboardType = function (inputType) { switch (inputType) { case enums_1.TEXT_INPUT_TYPES.PASSWORD: return 'password'; case enums_1.TEXT_INPUT_TYPES.EMAIL: return 'email'; case enums_1.TEXT_INPUT_TYPES.PHONE: return 'tel'; default: return 'text'; } }; exports.defaultGetError = function (textInputType, rawValue, maxDecimals) { switch (textInputType) { case enums_1.TEXT_INPUT_TYPES.INT: if (rawValue.indexOf('.') !== -1) { return strings_1.FIELD_MUST_BE_NUMBER; } return rawValue !== '' && isNaN(+rawValue) ? strings_1.FIELD_MUST_BE_NUMBER : undefined; case enums_1.TEXT_INPUT_TYPES.FLOAT: if (rawValue.indexOf('.') !== -1) { var fractionalPart = rawValue.split('.')[1]; if (!!fractionalPart && !!maxDecimals) { if (fractionalPart.length > maxDecimals) { return strings_1.FRACTIONAL_PART_TOO_LONG; } } } return rawValue !== '' && isNaN(+rawValue) ? strings_1.FIELD_MUST_BE_NUMBER : undefined; case enums_1.TEXT_INPUT_TYPES.JSON: try { JSON.parse(rawValue || ''); break; } catch (err) { return strings_1.INVALID_JSON_STRING; } } return undefined; }; exports.defaultDbToRaw = function (textInputType, dbValue) { if (!dbValue) { return ''; } switch (textInputType) { case enums_1.TEXT_INPUT_TYPES.JSON: return JSON.stringify(dbValue, null, 2); default: return dbValue.toString(); } }; exports.defaultRawToDb = function (textInputType, value) { switch (textInputType) { case enums_1.TEXT_INPUT_TYPES.INT: return parseInt(value); case enums_1.TEXT_INPUT_TYPES.FLOAT: return parseFloat(value); case enums_1.TEXT_INPUT_TYPES.JSON: try { return JSON.parse(value || ''); } catch (err) { return {}; } default: return value; } }; //# sourceMappingURL=TextInput.utils.js.map