{"version":3,"file":"index.cjs","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":"yPAYMA,EAAuB,CAAC,QAAS,OAAO,EACxCC,EAAkB,WAEXC,EAAW,CACtBC,EAAiB,KACwB,CACnC,KAAA,CACJ,iBAAAC,EAAmB,GACnB,YAAAC,EACA,mBAAAC,EAAqB,EACnB,EAAAH,EACEI,EAAiBC,EAAAA,SAAmB,IACjCF,IACFD,GAAA,YAAAA,EAAa,QAAS,IAAI,OAAOL,CAAoB,EACtD,EACL,EAEKS,EAAWC,EAAAA,qBACjB,OAAKD,EAQED,EAAA,SAAS,IACdG,EACE,OAAO,QAAQF,EAAU,MAAO,MAAO,EAAE,OACvC,CAAC,CAACG,CAAG,IACH,CAACL,EAAe,MAAM,SAASK,CAAG,GAClC,EAAER,GAAoBH,EAAgB,KAAKW,CAAG,EAClD,CACF,CAAA,GAdAC,EAAA,UACE,YACA,8FAAA,EAEKL,EAAA,SAAS,KAAO,CAAG,EAAA,EAY9B"}