{"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-slots/index.ts"],"sourcesContent":["import { isFunction } from '@tni-plus/utils'\nimport type { Slots } from 'vue'\n\nexport function getSlot(slots: Slots, slot = 'default', data?: any, opts?: { disabled: boolean; [key: string]: any }) {\n  if (!slots || !Reflect.has(slots, slot)) return null\n  if (!isFunction(slots[slot])) {\n    console.error(`${slot} is not a function!`)\n    return null\n  }\n  const slotFn = slots[slot]\n  if (!slotFn) return null\n  const params = { ...data, ...opts }\n  return slotFn(params)\n}\n\nexport function extendSlots(slots: Slots, excludeKeys: string[] = []) {\n  const slotKeys = Object.keys(slots)\n  const ret: any = {}\n  slotKeys.map((key) => {\n    if (excludeKeys.includes(key)) {\n      return null\n    }\n    ret[key] = (data?: any) => getSlot(slots, key, data)\n  })\n  return ret\n}\n"],"names":[],"mappings":";;;AAGO,SAAS,OAAQ,CAAA,KAAA,EAAc,IAAO,GAAA,SAAA,EAAW,MAAY,IAAkD,EAAA;AACpH,EAAA,IAAI,CAAC,KAAS,IAAA,CAAC,OAAQ,CAAA,GAAA,CAAI,OAAO,IAAI,CAAA;AAAG,IAAO,OAAA,IAAA,CAAA;AAChD,EAAA,IAAI,CAAC,UAAA,CAAW,KAAM,CAAA,IAAA,CAAK,CAAG,EAAA;AAC5B,IAAQ,OAAA,CAAA,KAAA,CAAM,GAAG,IAAyB,CAAA,mBAAA,CAAA,CAAA,CAAA;AAC1C,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AACA,EAAA,MAAM,SAAS,KAAM,CAAA,IAAA,CAAA,CAAA;AACrB,EAAA,IAAI,CAAC,MAAA;AAAQ,IAAO,OAAA,IAAA,CAAA;AACpB,EAAA,MAAM,MAAS,GAAA,EAAE,GAAG,IAAA,EAAM,GAAG,IAAK,EAAA,CAAA;AAClC,EAAA,OAAO,OAAO,MAAM,CAAA,CAAA;AACtB,CAAA;AAEO,SAAS,WAAY,CAAA,KAAA,EAAc,WAAwB,GAAA,EAAI,EAAA;AACpE,EAAM,MAAA,QAAA,GAAW,MAAO,CAAA,IAAA,CAAK,KAAK,CAAA,CAAA;AAClC,EAAA,MAAM,MAAW,EAAC,CAAA;AAClB,EAAS,QAAA,CAAA,GAAA,CAAI,CAAC,GAAQ,KAAA;AACpB,IAAI,IAAA,WAAA,CAAY,QAAS,CAAA,GAAG,CAAG,EAAA;AAC7B,MAAO,OAAA,IAAA,CAAA;AAAA,KACT;AACA,IAAA,GAAA,CAAI,OAAO,CAAC,IAAA,KAAe,OAAQ,CAAA,KAAA,EAAO,KAAK,IAAI,CAAA,CAAA;AAAA,GACpD,CAAA,CAAA;AACD,EAAO,OAAA,GAAA,CAAA;AACT;;;;"}