dtable-utils
Version:
dtable common utils
57 lines (51 loc) • 1.9 kB
JavaScript
import { getColumnOptions } from '../column/option.js';
/**
* Get option by id
* @param {array} options e.g. [{ id, name, ... }]
* @param {string} optionId
* @returns option, object
*/
var getOption = function getOption(options, optionId) {
if (!Array.isArray(options) || !optionId) return null;
return options.find(function (option) {
return option.id === optionId;
});
};
/**
* Get option name of the given id
* @param {array} options e.g. [ { id, color, name, ... } ]
* @param {string} targetOptionId option id
* @returns option name, string
*/
var getOptionName = function getOptionName(options, targetOptionId) {
if (!targetOptionId || !Array.isArray(options)) return '';
var targetOption = getOption(options, targetOptionId);
return targetOption ? targetOption.name : '';
};
/**
* Get column option name by id
* @param {object} column e.g. { data: { options, ... }, ... }
* @param {string} optionId
* @returns option name, string
*/
var getColumnOptionNameById = function getColumnOptionNameById(column, optionId) {
var options = getColumnOptions(column);
return getOptionName(options, optionId);
};
/**
* Get concatenated options names of given ids.
* @param {array} options e.g. [ { id, color, name, ... }, ... ]
* @param {array} targetOptionsIds e.g. [ option.id, ... ]
* @returns concatenated options names, string. e.g. 'name1, name2'
*/
var getMultipleOptionName = function getMultipleOptionName(options, targetOptionsIds) {
if (!Array.isArray(targetOptionsIds) || !Array.isArray(options)) return '';
var selectedOptions = options.filter(function (option) {
return targetOptionsIds.includes(option.id);
});
if (selectedOptions.length === 0) return '';
return selectedOptions.map(function (option) {
return option.name;
}).join(', ');
};
export { getColumnOptionNameById, getMultipleOptionName, getOption, getOptionName };