UNPKG

@gitlab/ui

Version:
37 lines (33 loc) 1.2 kB
import Vue from 'vue'; // Fragment will be available only in Vue.js 3 const { Fragment, Comment, Text } = Vue; function isVnodeEmpty(vnode) { if (!vnode || Comment && vnode.type === Comment) { return true; } if (Text && vnode.type === Text && !vnode.children.trim()) { // Vue.js 3 text string is located in the children return true; } if (Array.isArray(vnode)) { // eslint-disable-next-line unicorn/no-array-callback-reference return vnode.every(isVnodeEmpty); } if (Fragment && vnode.type === Fragment) { // Vue.js 3 fragment, check children // eslint-disable-next-line unicorn/no-array-callback-reference return vnode.children.every(isVnodeEmpty); } return false; } function isSlotEmpty(vueInstance, slot, slotArgs) { var _vueInstance$$scopedS, _vueInstance$$scopedS2; const slotContent = (_vueInstance$$scopedS = (_vueInstance$$scopedS2 = vueInstance.$scopedSlots)[slot]) === null || _vueInstance$$scopedS === void 0 ? void 0 : _vueInstance$$scopedS.call(_vueInstance$$scopedS2, slotArgs); // eslint-disable-next-line unicorn/no-array-callback-reference return isVnodeEmpty(slotContent); } export { isSlotEmpty, isVnodeEmpty };