UNPKG

@vuesax-alpha/nightly

Version:
87 lines (84 loc) 3.06 kB
import { defineComponent, inject, toRef, openBlock, createBlock, unref, normalizeClass, withCtx, renderSlot } from 'vue'; import '../../../hooks/index.mjs'; import '../../../tokens/index.mjs'; import '../../slot/index.mjs'; import '../../../utils/index.mjs'; import { popperTriggerProps } from './trigger.mjs'; import { whenTrigger } from './utils.mjs'; import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs'; import { useNamespace } from '../../../hooks/use-namespace/index.mjs'; import { popperContextKey } from '../../../tokens/popper.mjs'; import { useForwardRef } from '../../../hooks/use-forward-ref/index.mjs'; import { composeEventHandlers } from '../../../utils/dom/event.mjs'; import { OnlyChild } from '../../slot/src/only-child.mjs'; const _sfc_main = defineComponent({ __name: "trigger", props: popperTriggerProps, setup(__props) { const props = __props; const ns = useNamespace("popper"); const { triggerRef, onOpen, onClose, onToggle } = inject( popperContextKey, void 0 ); useForwardRef(triggerRef); const stopWhenControlledOrDisabled = () => { if (props.disabled) { return true; } }; const trigger = toRef(props, "trigger"); const onMouseenter = composeEventHandlers( stopWhenControlledOrDisabled, whenTrigger(trigger, "hover", onOpen) ); const onMouseleave = composeEventHandlers( stopWhenControlledOrDisabled, whenTrigger(trigger, "hover", onClose) ); const onClick = composeEventHandlers( stopWhenControlledOrDisabled, whenTrigger(trigger, "click", (e) => { if (e.button === 0) { onToggle(e); } }) ); const onFocus = composeEventHandlers( stopWhenControlledOrDisabled, whenTrigger(trigger, "focus", onOpen) ); const onBlur = composeEventHandlers( stopWhenControlledOrDisabled, whenTrigger(trigger, "focus", onClose) ); const onContextMenu = composeEventHandlers( stopWhenControlledOrDisabled, whenTrigger(trigger, "contextmenu", (e) => { e.preventDefault(); onToggle(e); }) ); return (_ctx, _cache) => { return openBlock(), createBlock(unref(OnlyChild), { ref_key: "triggerRef", ref: triggerRef, class: normalizeClass(unref(ns).e("trigger")), onMouseenter: unref(onMouseenter), onMouseleave: unref(onMouseleave), onClick: unref(onClick), onFocus: unref(onFocus), onBlur: unref(onBlur), onContextmenu: unref(onContextMenu) }, { default: withCtx(() => [ renderSlot(_ctx.$slots, "default") ]), _: 3 }, 8, ["class", "onMouseenter", "onMouseleave", "onClick", "onFocus", "onBlur", "onContextmenu"]); }; } }); var popperTrigger = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/home/runner/work/vuesax-alpha/vuesax-alpha/packages/components/popper/src/trigger.vue"]]); export { popperTrigger as default }; //# sourceMappingURL=trigger2.mjs.map