{"version":3,"file":"trigger2.mjs","sources":["../../../../../../packages/components/popper/src/trigger.vue"],"sourcesContent":["<template>\n  <vs-only-child\n    ref=\"triggerRef\"\n    :class=\"ns.e('trigger')\"\n    @mouseenter=\"onMouseenter\"\n    @mouseleave=\"onMouseleave\"\n    @click=\"onClick\"\n    @focus=\"onFocus\"\n    @blur=\"onBlur\"\n    @contextmenu=\"onContextMenu\"\n  >\n    <slot />\n  </vs-only-child>\n</template>\n\n<script setup lang=\"ts\">\nimport { inject, toRef } from 'vue'\nimport { useForwardRef, useNamespace } from '@vuesax-alpha/hooks'\nimport { popperContextKey } from '@vuesax-alpha/tokens'\nimport { VsOnlyChild } from '@vuesax-alpha/components/slot'\nimport { composeEventHandlers } from '@vuesax-alpha/utils'\nimport { popperTriggerProps } from './trigger'\nimport { whenTrigger } from './utils'\n\nconst ns = useNamespace('popper')\n\nconst { triggerRef, onOpen, onClose, onToggle } = inject(\n  popperContextKey,\n  undefined\n)!\n\nuseForwardRef(triggerRef)\n\nconst props = defineProps(popperTriggerProps)\n\nconst stopWhenControlledOrDisabled = () => {\n  if (props.disabled) {\n    return true\n  }\n}\n\nconst trigger = toRef(props, 'trigger')\n\nconst onMouseenter = composeEventHandlers(\n  stopWhenControlledOrDisabled,\n  whenTrigger(trigger, 'hover', onOpen)\n)\nconst onMouseleave = composeEventHandlers(\n  stopWhenControlledOrDisabled,\n  whenTrigger(trigger, 'hover', onClose)\n)\nconst onClick = composeEventHandlers(\n  stopWhenControlledOrDisabled,\n  whenTrigger(trigger, 'click', (e) => {\n    // distinguish left click\n    if ((e as MouseEvent).button === 0) {\n      onToggle(e)\n    }\n  })\n)\n\nconst onFocus = composeEventHandlers(\n  stopWhenControlledOrDisabled,\n  whenTrigger(trigger, 'focus', onOpen)\n)\n\nconst onBlur = composeEventHandlers(\n  stopWhenControlledOrDisabled,\n  whenTrigger(trigger, 'focus', onClose)\n)\n\nconst onContextMenu = composeEventHandlers(\n  stopWhenControlledOrDisabled,\n  whenTrigger(trigger, 'contextmenu', (e: Event) => {\n    e.preventDefault()\n    onToggle(e)\n  })\n)\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAwBM,IAAA,MAAA,EAAA,GAAK,aAAa,QAAQ,CAAA,CAAA;AAEhC,IAAA,MAAM,EAAE,UAAA,EAAY,MAAQ,EAAA,OAAA,EAAS,UAAa,GAAA,MAAA;AAAA,MAChD,gBAAA;AAAA,MACA,KAAA,CAAA;AAAA,KACF,CAAA;AAEA,IAAA,aAAA,CAAc,UAAU,CAAA,CAAA;AAIxB,IAAA,MAAM,+BAA+B,MAAM;AACzC,MAAA,IAAI,MAAM,QAAU,EAAA;AACX,QAAA,OAAA,IAAA,CAAA;AAAA,OACT;AAAA,KACF,CAAA;AAEM,IAAA,MAAA,OAAA,GAAU,KAAM,CAAA,KAAA,EAAO,SAAS,CAAA,CAAA;AAEtC,IAAA,MAAM,YAAe,GAAA,oBAAA;AAAA,MACnB,4BAAA;AAAA,MACA,WAAA,CAAY,OAAS,EAAA,OAAA,EAAS,MAAM,CAAA;AAAA,KACtC,CAAA;AACA,IAAA,MAAM,YAAe,GAAA,oBAAA;AAAA,MACnB,4BAAA;AAAA,MACA,WAAA,CAAY,OAAS,EAAA,OAAA,EAAS,OAAO,CAAA;AAAA,KACvC,CAAA;AACA,IAAA,MAAM,OAAU,GAAA,oBAAA;AAAA,MACd,4BAAA;AAAA,MACA,WAAY,CAAA,OAAA,EAAS,OAAS,EAAA,CAAC,CAAM,KAAA;AAE9B,QAAA,IAAA,CAAA,CAAiB,WAAW,CAAG,EAAA;AAClC,UAAA,QAAA,CAAS,CAAC,CAAA,CAAA;AAAA,SACZ;AAAA,OACD,CAAA;AAAA,KACH,CAAA;AAEA,IAAA,MAAM,OAAU,GAAA,oBAAA;AAAA,MACd,4BAAA;AAAA,MACA,WAAA,CAAY,OAAS,EAAA,OAAA,EAAS,MAAM,CAAA;AAAA,KACtC,CAAA;AAEA,IAAA,MAAM,MAAS,GAAA,oBAAA;AAAA,MACb,4BAAA;AAAA,MACA,WAAA,CAAY,OAAS,EAAA,OAAA,EAAS,OAAO,CAAA;AAAA,KACvC,CAAA;AAEA,IAAA,MAAM,aAAgB,GAAA,oBAAA;AAAA,MACpB,4BAAA;AAAA,MACA,WAAY,CAAA,OAAA,EAAS,aAAe,EAAA,CAAC,CAAa,KAAA;AAChD,QAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AACjB,QAAA,QAAA,CAAS,CAAC,CAAA,CAAA;AAAA,OACX,CAAA;AAAA,KACH,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;"}