UNPKG

dtable-utils

Version:

dtable common utils

82 lines (78 loc) 2.51 kB
import '../constants/column.js'; import '../constants/filter/filter-column-options.js'; import '../constants/filter/filter-modifier.js'; import '../constants/filter/filter-predicate.js'; import '../constants/filter/filter-is-within.js'; import '../constants/formula.js'; import { SELECT_OPTION_COLORS } from '../constants/select-option.js'; import '../constants/sort.js'; import '../constants/group.js'; import { generateOptionID } from '../column/option.js'; import '@babel/runtime/helpers/typeof'; import { formatTextToSingleOption } from './single-select.js'; var formatTextToMultipleOption = function formatTextToMultipleOption(value, column) { var formatValue = typeof value === 'number' ? value + '' : value; if (!formatValue || !formatValue.trim()) { return null; } var optionName = formatValue.trim(); var options = null; if (column.data) { options = column.data && column.data.options; } else { column.data = {}; } if (!options || !Array.isArray(options)) { column.data.options = []; options = []; } // is exist var option = options.find(function (item) { return item.name === optionName; }); if (option) { return [option.id]; } // not exist var optionNames = optionName.split(' '); var optionIds = optionNames.map(function (item) { return formatTextToSingleOption(item, column); }); return optionIds; }; var formatValueToMultipleOption = function formatValueToMultipleOption(value, column) { if (!value || !Array.isArray(value)) { return null; } var options; if (column.data) { options = column.data && column.data.options; } else { column.data = {}; } if (!options || !Array.isArray(options)) { column.data.options = []; options = []; } var selectOptions = value.map(function (optionName) { var option = options.find(function (item) { return item.name === optionName; }); if (option) return option; var random = Math.floor(Math.random() * (SELECT_OPTION_COLORS.length - 1)); var optionColor = SELECT_OPTION_COLORS[random]; var newOption = { id: generateOptionID(options), name: optionName, color: optionColor.COLOR, textColor: optionColor.TEXT_COLOR }; column.data.options.push(newOption); return newOption; }); var optionIds = selectOptions.map(function (option) { return option.id; }); return optionIds.length > 0 ? optionIds : null; }; export { formatTextToMultipleOption, formatValueToMultipleOption };