{"version":3,"file":"useAnchorSelector.mjs","sources":["../../../../../../src/components/va-dropdown/hooks/useAnchorSelector.ts"],"sourcesContent":["import { computed, ref } from 'vue'\n\nimport { MaybeHTMLElementOrSelector, useDocument, useIsMounted } from '../../../composables'\nimport { unwrapEl } from '../../../utils/unwrapEl'\n\nexport const useAnchorSelector = (\n  props: {\n    anchor: MaybeHTMLElementOrSelector | undefined,\n    anchorSelector: string | undefined,\n    innerAnchorSelector: string | undefined,\n  },\n) => {\n  const anchorRef = ref<HTMLElement>()\n  const document = useDocument()\n  const isMounted = useIsMounted()\n\n  const computedAnchorRef = computed<HTMLElement | undefined>({\n    set (v: HTMLElement | undefined) {\n      anchorRef.value = unwrapEl(v)\n    },\n    get () {\n      // eslint-disable-next-line no-unused-expressions\n      isMounted.value // querySelector can return undefined before component mounted\n\n      if (typeof props.anchor === 'string') {\n        return document.value?.querySelector<HTMLElement>(props.anchor) ?? anchorRef.value\n      }\n      if (typeof props.anchor === 'object') {\n        return props.anchor\n      }\n\n      if (props.anchorSelector) {\n        return document.value?.querySelector<HTMLElement>(props.anchorSelector) ?? anchorRef.value\n      } else if (props.innerAnchorSelector && anchorRef.value) {\n        return anchorRef.value?.querySelector<HTMLElement>(props.innerAnchorSelector) ?? anchorRef.value\n      }\n      return anchorRef.value\n    },\n  })\n\n  return {\n    anchorRef: computedAnchorRef,\n  }\n}\n"],"names":[],"mappings":";;;;AAKa,MAAA,oBAAoB,CAC/B,UAKG;AACH,QAAM,YAAY;AAClB,QAAM,WAAW;AACjB,QAAM,YAAY;AAElB,QAAM,oBAAoB,SAAkC;AAAA,IAC1D,IAAK,GAA4B;AACrB,gBAAA,QAAQ,SAAS,CAAC;AAAA,IAC9B;AAAA,IACA,MAAO;;AAEK,gBAAA;AAEN,UAAA,OAAO,MAAM,WAAW,UAAU;AACpC,iBAAO,cAAS,UAAT,mBAAgB,cAA2B,MAAM,YAAW,UAAU;AAAA,MAC/E;AACI,UAAA,OAAO,MAAM,WAAW,UAAU;AACpC,eAAO,MAAM;AAAA,MACf;AAEA,UAAI,MAAM,gBAAgB;AACxB,iBAAO,cAAS,UAAT,mBAAgB,cAA2B,MAAM,oBAAmB,UAAU;AAAA,MAC5E,WAAA,MAAM,uBAAuB,UAAU,OAAO;AACvD,iBAAO,eAAU,UAAV,mBAAiB,cAA2B,MAAM,yBAAwB,UAAU;AAAA,MAC7F;AACA,aAAO,UAAU;AAAA,IACnB;AAAA,EAAA,CACD;AAEM,SAAA;AAAA,IACL,WAAW;AAAA,EAAA;AAEf;"}