UNPKG

dtable-utils

Version:

dtable common utils

95 lines (85 loc) 3.49 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var dayjs = require('dayjs'); var number = require('../number.js'); require('../constants/column.js'); require('../constants/formula.js'); require('../constants/group.js'); require('../cell-value-get/cell-value.js'); var autoNumber$1 = require('../cell-value-get/auto-number.js'); var date = require('../date.js'); require('../constants/filter/filter-column-options.js'); require('../constants/filter/filter-modifier.js'); require('../constants/filter/filter-predicate.js'); require('../constants/filter/filter-is-within.js'); require('../constants/sort.js'); var autoNumber = require('../constants/auto-number.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs); var formatRateMaxNumberToNumber = function formatRateMaxNumberToNumber(oldCellValue, data) { if (oldCellValue === 0) return 0; if (!oldCellValue) return ''; var _ref = data || {}, rate_max_number = _ref.rate_max_number; return oldCellValue > rate_max_number ? rate_max_number : oldCellValue; }; var formatTextToAutoNumber = function formatTextToAutoNumber(text, autoNumberData) { if (!text || !autoNumberData) return null; var textPrefix = null; var number$1 = number.isNumber(text) ? text : 0; if (typeof text === 'string') { number$1 = Number(text); if (!number.isNumber(number$1)) { var textParts = text.split('-'); var textPartsLength = textParts.length; var textNumber = null; if (textPartsLength === 1) { textNumber = textParts[0]; } else { textPrefix = textParts[0]; textNumber = textParts[1]; } number$1 = textNumber && Number(textNumber); if (!number.isNumber(number$1)) { return null; } } } if (number$1 < 1) { return null; } var prefix_type = autoNumberData.prefix_type, prefix = autoNumberData.prefix, digits = autoNumberData.digits; number$1 = parseInt(number$1); // 1. use the prefix supplied by autoNumberData if the text can only contains number. // 2. only number will be kept if has no prefix_type in the autoNumberData. if (!textPrefix || !prefix_type) { var newPrefix = prefix_type === 'date' ? dayjs__default["default"]().format(autoNumber.AUTO_NUMBER_DATE_FORMAT) : prefix; return autoNumber$1.getFormattedAutoNumber(number$1, digits, newPrefix); } // 3. string prefix: the 'textPrefix' must be same to autoNumberData's prefix. if (prefix_type === 'string') { if (textPrefix !== prefix) { return null; } return autoNumber$1.getFormattedAutoNumber(number$1, digits, prefix); } // 4. date prefix: the format of 'textPrefix' must be consistent with 'YYYYMMDD'. if (prefix_type === 'date') { var matched = textPrefix && textPrefix.length === 8 && /(\d{4})(\d{2})(\d{2})$/.test(textPrefix); if (!matched) { return null; } var year = textPrefix.substring(0, 4); var month = textPrefix.substring(4, 6); var day = textPrefix.substring(6, 8); if (!date.DateUtils.getValidDate("".concat(year, "-").concat(month, "-").concat(day))) { return null; } return autoNumber$1.getFormattedAutoNumber(number$1, digits, textPrefix); } return null; }; exports.formatRateMaxNumberToNumber = formatRateMaxNumberToNumber; exports.formatTextToAutoNumber = formatTextToAutoNumber;