{"version":3,"file":"index.mjs","sources":["../../../src/hooks/use-attrs.ts"],"sourcesContent":["import { computed, getCurrentInstance } from 'vue'\nimport { fromPairs } from 'lodash-es'\nimport { debugWarn } from '../utils'\n\nimport type { ComputedRef } from 'vue'\n\ninterface Params {\n  excludeListeners?: boolean\n  excludeKeys?: ComputedRef<string[]>\n  excludeDefaultKeys?: boolean\n}\n\nconst DEFAULT_EXCLUDE_KEYS = ['class', 'style']\nconst LISTENER_PREFIX = /^on[A-Z]/\n\nexport const useAttrs = (\n  params: Params = {}\n): ComputedRef<Record<string, unknown>> => {\n  const {\n    excludeListeners = false,\n    excludeKeys,\n    excludeDefaultKeys = true,\n  } = params\n  const allExcludeKeys = computed<string[]>(() => {\n    return excludeDefaultKeys\n      ? (excludeKeys?.value || []).concat(DEFAULT_EXCLUDE_KEYS)\n      : []\n  })\n\n  const instance = getCurrentInstance()\n  if (!instance) {\n    debugWarn(\n      'use-attrs',\n      'getCurrentInstance() returned null. useAttrs() must be called at the top of a setup function'\n    )\n    return computed(() => ({}))\n  }\n\n  return computed(() =>\n    fromPairs(\n      Object.entries(instance!.proxy!.$attrs!).filter(\n        ([key]) =>\n          !allExcludeKeys.value.includes(key) &&\n          !(excludeListeners && LISTENER_PREFIX.test(key))\n      )\n    )\n  )\n}\n"],"names":["DEFAULT_EXCLUDE_KEYS","LISTENER_PREFIX","useAttrs","params","excludeListeners","excludeKeys","excludeDefaultKeys","allExcludeKeys","computed","instance","getCurrentInstance","fromPairs","key","debugWarn"],"mappings":";;;AAYA,MAAMA,IAAuB,CAAC,SAAS,OAAO,GACxCC,IAAkB,YAEXC,IAAW,CACtBC,IAAiB,OACwB;AACnC,QAAA;AAAA,IACJ,kBAAAC,IAAmB;AAAA,IACnB,aAAAC;AAAA,IACA,oBAAAC,IAAqB;AAAA,EACnB,IAAAH,GACEI,IAAiBC,EAAmB,MACjCF,MACFD,KAAA,gBAAAA,EAAa,UAAS,IAAI,OAAOL,CAAoB,IACtD,EACL,GAEKS,IAAWC;AACjB,SAAKD,IAQED;AAAA,IAAS,MACdG;AAAA,MACE,OAAO,QAAQF,EAAU,MAAO,MAAO,EAAE;AAAA,QACvC,CAAC,CAACG,CAAG,MACH,CAACL,EAAe,MAAM,SAASK,CAAG,KAClC,EAAER,KAAoBH,EAAgB,KAAKW,CAAG;AAAA,MAClD;AAAA,IACF;AAAA,EAAA,KAdAC;AAAA,IACE;AAAA,IACA;AAAA,EAAA,GAEKL,EAAS,OAAO,CAAG,EAAA;AAY9B;"}