@fesjs/fes-design
Version:
fes-design for PC
28 lines (25 loc) • 738 B
JavaScript
import { isNil } from 'lodash-es';
/**
* 如果传入的值是 Text 对象或 HTMLElement 对象或 SVG 对象,则直接返回;
* 如果是 Vue 组件选项对象,则返回它的 DOM 元素;
* 如果传入 null 参数,则返回 null。
*/
function getElementFromVueInstance(val) {
if (!val) {
return null;
}
if (val instanceof Text) {
return val;
}
if (val instanceof HTMLElement) {
return val;
}
if (val instanceof SVGElement) {
return val;
}
if (typeof val === 'object' && !isNil(val.$el)) {
return val.$el;
}
throw new Error('getElementFromVueInstance 传入的值不是 Text、HTMLElement、SVG 或 Vue 组件选项对象');
}
export { getElementFromVueInstance as default };