cell-value-render.js 826 Bytes
import { get } from '../utils';

export default {
  props: { row: Object, column: Object, index: [Number, String], item: Object },
  render(h) {
    const { row, column, index, item } = this;
    if (typeof item.render === 'function') {
      return item.render(h, { row, value: get(row, item.fullKey), $index: index, column });
    } else {
      if (item.render.children instanceof Function) {
        return h(
          item.render.type,
          { props: item.render.props, attrs: item.render.props, style: item.render.style },
          item.render.children({ row, value: get(row, item.fullKey), $index: index, column }),
        );
      }
      return h(item.render.type, { props: item.render.props, attrs: item.render.props, style: item.render.style }, item.render.children || get(row, item.fullKey));
    }
  },
};