Source: CTagsCell.jsx

/**
 * Multiline plain text column.
 *
 * @arg this.props.column.options {Array} Array of pairs of strings `[tag, label]`
 * @arg this.props.column.max_length {Integer} Maximum label length for display in symbols.
 *
 * @arg this.props.value {String} Tags string in format `tag1;tag2;tag3`
 *
 */

class CTagsCell extends Component {
    render() {
        var self = this;
        if (self.props.value === null) {
            return <span class="has-text-grey">NULL</span>;
        } else {
            self.props.value = self.props.value.split(";")
            return self.props.value.map(item => {
                if (item == "") { return ""};
                var item_label = item;
                var item_label_list = self.props.column.options.filter(x => x[0] == item);
                if (item_label_list.length > 0){
                    item_label = item_label_list[0][1];
                }
                if (self.props.column.max_length === undefined || item_label.length <= self.props.column.max_length) {
                    return <span class="tag">{item_label}</span>;
                } else {
                    return <span class="tag" title={item_label}>
                        {item_label.slice(0, self.props.column.max_length) + "..."}
                    </span>;
                }
            })
        }
    }
}