{"version":3,"file":"useSelectTriggerControl.mjs","sources":["../../../../../../../packages/vue-components/vc-select/src/hooks/useSelectTriggerControl.ts"],"sourcesContent":["import type { Ref } from 'vue';\nimport { onBeforeUnmount, onMounted } from 'vue';\n\nexport default function useSelectTriggerControl(\n  refs: Ref[],\n  open: Ref<boolean>,\n  triggerOpen: (open: boolean) => void,\n) {\n  function onGlobalMouseDown(event: MouseEvent) {\n    let target = event.target as HTMLElement;\n\n    if (target.shadowRoot && event.composed)\n      target = (event.composedPath()[0] || target) as HTMLElement;\n\n    const elements = [refs[0]?.value, refs[1]?.value?.getPopupElement()];\n    if (\n      open.value\n      && elements.every(element => element && !element.contains(target) && element !== target)\n    ) {\n      // Should trigger close\n      triggerOpen(false);\n    }\n  }\n\n  onMounted(() => {\n    window.addEventListener('mousedown', onGlobalMouseDown);\n  });\n\n  onBeforeUnmount(() => {\n    window.removeEventListener('mousedown', onGlobalMouseDown);\n  });\n}\n"],"names":[],"mappings":";;AAGwB,SAAA,uBAAA,CACtB,IACA,EAAA,IAAA,EACA,WACA,EAAA;AACA,EAAA,SAAS,kBAAkB,KAAmB,EAAA;AARhD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AASI,IAAA,IAAI,SAAS,KAAM,CAAA,MAAA,CAAA;AAEnB,IAAI,IAAA,MAAA,CAAO,cAAc,KAAM,CAAA,QAAA;AAC7B,MAAA,MAAA,GAAU,KAAM,CAAA,YAAA,EAAe,CAAA,CAAC,CAAK,IAAA,MAAA,CAAA;AAEvC,IAAA,MAAM,QAAW,GAAA,CAAA,CAAC,EAAK,GAAA,IAAA,CAAA,CAAC,CAAN,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAS,KAAO,EAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAA,CAAK,CAAC,CAAA,KAAN,IAAS,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAA,KAAT,mBAAgB,eAAiB,EAAA,CAAA,CAAA;AACnE,IAAA,IACE,IAAK,CAAA,KAAA,IACF,QAAS,CAAA,KAAA,CAAM,CAAW,OAAA,KAAA,OAAA,IAAW,CAAC,OAAA,CAAQ,QAAS,CAAA,MAAM,CAAK,IAAA,OAAA,KAAY,MAAM,CACvF,EAAA;AAEA,MAAA,WAAA,CAAY,KAAK,CAAA,CAAA;AAAA,KACnB;AAAA,GACF;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAO,MAAA,CAAA,gBAAA,CAAiB,aAAa,iBAAiB,CAAA,CAAA;AAAA,GACvD,CAAA,CAAA;AAED,EAAA,eAAA,CAAgB,MAAM;AACpB,IAAO,MAAA,CAAA,mBAAA,CAAoB,aAAa,iBAAiB,CAAA,CAAA;AAAA,GAC1D,CAAA,CAAA;AACH;;;;"}