dtable-utils
Version:
dtable common utils
87 lines (81 loc) • 2.69 kB
JavaScript
Object.defineProperty(exports, '__esModule', { value: true });
require('../constants/column.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/formula.js');
var selectOption = require('../constants/select-option.js');
require('../constants/sort.js');
require('../constants/group.js');
var option = require('../column/option.js');
require('@babel/runtime/helpers/typeof');
var singleSelect = require('./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 singleSelect.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$1 = options.find(function (item) {
return item.name === optionName;
});
if (option$1) return option$1;
var random = Math.floor(Math.random() * (selectOption.SELECT_OPTION_COLORS.length - 1));
var optionColor = selectOption.SELECT_OPTION_COLORS[random];
var newOption = {
id: option.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;
};
exports.formatTextToMultipleOption = formatTextToMultipleOption;
exports.formatValueToMultipleOption = formatValueToMultipleOption;
;