cell-value-render.js 861 Bytes
import { get } from '../form-new/util';

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)
      );
    }
  }
}