@vuesax-alpha/nightly
Version:
A Component Library for Vue 3
91 lines (86 loc) • 3.19 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
require('../../../hooks/index.js');
require('../../../tokens/index.js');
require('../../slot/index.js');
require('../../../utils/index.js');
var trigger = require('./trigger.js');
var utils = require('./utils.js');
var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
var index = require('../../../hooks/use-namespace/index.js');
var popper = require('../../../tokens/popper.js');
var index$1 = require('../../../hooks/use-forward-ref/index.js');
var event = require('../../../utils/dom/event.js');
var onlyChild = require('../../slot/src/only-child.js');
const _sfc_main = vue.defineComponent({
__name: "trigger",
props: trigger.popperTriggerProps,
setup(__props) {
const props = __props;
const ns = index.useNamespace("popper");
const { triggerRef, onOpen, onClose, onToggle } = vue.inject(
popper.popperContextKey,
void 0
);
index$1.useForwardRef(triggerRef);
const stopWhenControlledOrDisabled = () => {
if (props.disabled) {
return true;
}
};
const trigger = vue.toRef(props, "trigger");
const onMouseenter = event.composeEventHandlers(
stopWhenControlledOrDisabled,
utils.whenTrigger(trigger, "hover", onOpen)
);
const onMouseleave = event.composeEventHandlers(
stopWhenControlledOrDisabled,
utils.whenTrigger(trigger, "hover", onClose)
);
const onClick = event.composeEventHandlers(
stopWhenControlledOrDisabled,
utils.whenTrigger(trigger, "click", (e) => {
if (e.button === 0) {
onToggle(e);
}
})
);
const onFocus = event.composeEventHandlers(
stopWhenControlledOrDisabled,
utils.whenTrigger(trigger, "focus", onOpen)
);
const onBlur = event.composeEventHandlers(
stopWhenControlledOrDisabled,
utils.whenTrigger(trigger, "focus", onClose)
);
const onContextMenu = event.composeEventHandlers(
stopWhenControlledOrDisabled,
utils.whenTrigger(trigger, "contextmenu", (e) => {
e.preventDefault();
onToggle(e);
})
);
return (_ctx, _cache) => {
return vue.openBlock(), vue.createBlock(vue.unref(onlyChild.OnlyChild), {
ref_key: "triggerRef",
ref: triggerRef,
class: vue.normalizeClass(vue.unref(ns).e("trigger")),
onMouseenter: vue.unref(onMouseenter),
onMouseleave: vue.unref(onMouseleave),
onClick: vue.unref(onClick),
onFocus: vue.unref(onFocus),
onBlur: vue.unref(onBlur),
onContextmenu: vue.unref(onContextMenu)
}, {
default: vue.withCtx(() => [
vue.renderSlot(_ctx.$slots, "default")
]),
_: 3
}, 8, ["class", "onMouseenter", "onMouseleave", "onClick", "onFocus", "onBlur", "onContextmenu"]);
};
}
});
var popperTrigger = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "/home/runner/work/vuesax-alpha/vuesax-alpha/packages/components/popper/src/trigger.vue"]]);
exports["default"] = popperTrigger;
//# sourceMappingURL=trigger2.js.map