{"version":3,"file":"useSlotPassed.mjs","sources":["../../../../src/composables/useSlotPassed.ts"],"sourcesContent":["import { computed, getCurrentInstance, isVNode } from 'vue'\nimport { isFunction } from '../utils/is-function'\n\n/**\n * @description checks if empty slot was passed\n * @param v - any slot\n * @param initial - flag for initial function call\n * @example checkSlotChildrenDeep(slots.default)\n */\nexport const checkSlotChildrenDeep = (v: any, initial = true): boolean => {\n  if (isVNode(v)) { return true } // VNode passed from Global Config\n\n  if (!v || (initial && (!isFunction(v) || !v()?.length))) { return false }\n\n  const slotData = initial ? v() : v\n\n  if (Array.isArray(slotData)) {\n    return slotData.some((el: any) => {\n      return Array.isArray(el.children) ? checkSlotChildrenDeep(el.children, false) : el.children || el.props\n    })\n  }\n\n  return !!slotData.children\n}\n\n/** Deeply check if slot is passed */\nexport const useSlotPassed = <Name extends string = 'default'>(name: Name = 'default' as Name) => {\n  const { slots } = getCurrentInstance()!\n\n  return computed(() => checkSlotChildrenDeep(slots[name]))\n}\n"],"names":[],"mappings":";;AASO,MAAM,wBAAwB,CAAC,GAAQ,UAAU,SAAkB;;AACpE,MAAA,QAAQ,CAAC,GAAG;AAAS,WAAA;AAAA,EAAK;AAE1B,MAAA,CAAC,KAAM,YAAY,CAAC,WAAW,CAAC,KAAK,GAAC,aAAA,mBAAK,UAAU;AAAS,WAAA;AAAA,EAAM;AAElE,QAAA,WAAW,UAAU,EAAA,IAAM;AAE7B,MAAA,MAAM,QAAQ,QAAQ,GAAG;AACpB,WAAA,SAAS,KAAK,CAAC,OAAY;AAChC,aAAO,MAAM,QAAQ,GAAG,QAAQ,IAAI,sBAAsB,GAAG,UAAU,KAAK,IAAI,GAAG,YAAY,GAAG;AAAA,IAAA,CACnG;AAAA,EACH;AAEO,SAAA,CAAC,CAAC,SAAS;AACpB;AAGa,MAAA,gBAAgB,CAAkC,OAAa,cAAsB;AAC1F,QAAA,EAAE,UAAU;AAElB,SAAO,SAAS,MAAM,sBAAsB,MAAM,IAAI,CAAC,CAAC;AAC1D;"}