UNPKG

@visactor/vue-vtable

Version:

The vue version of VTable

36 lines (32 loc) 1.28 kB
'use strict'; var VTable = require('@visactor/vtable'); var editor = require('./editor.js'); var vutils = require('@visactor/vutils'); const DYNAMIC_RENDER_EDITOR = 'dynamic-render-editor'; function checkRenderEditor(column, getEditCustomNode) { const { editor } = column || {}; const key = getRenderEditorColumnKeyField(column); if (!vutils.isValid(key) || editor !== DYNAMIC_RENDER_EDITOR) { return false; } if (typeof getEditCustomNode === 'function') { column.getEditCustomNode = getEditCustomNode; return true; } return typeof column.getEditCustomNode === 'function'; } function getRenderEditorColumnKeyField(column) { const { field, key } = column || {}; return vutils.isValid(key) ? key : field; } function getRenderEditor(create, currentContext) { let renderEditor = VTable.register.editor(DYNAMIC_RENDER_EDITOR); if (!renderEditor && !!create) { renderEditor = new editor.DynamicRenderEditor(currentContext); VTable.register.editor(DYNAMIC_RENDER_EDITOR, renderEditor); } return renderEditor; } exports.checkRenderEditor = checkRenderEditor; exports.getRenderEditor = getRenderEditor; exports.getRenderEditorColumnKeyField = getRenderEditorColumnKeyField;