| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- 'use strict';
- Object.defineProperty(exports, '__esModule', { value: true });
- var vue = require('vue');
- var constants = require('./constants.js');
- var forwardRef = require('./forward-ref.js');
- var trigger = require('./trigger.js');
- var common = require('./common.js');
- var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
- var event = require('../../../utils/dom/event.js');
- const __default__ = vue.defineComponent({
- name: "ElTooltipV2Trigger"
- });
- const _sfc_main = /* @__PURE__ */ vue.defineComponent({
- ...__default__,
- props: {
- ...common.tooltipV2CommonProps,
- ...trigger.tooltipV2TriggerProps
- },
- setup(__props) {
- const props = __props;
- const { onClose, onOpen, onDelayOpen, triggerRef, contentId } = vue.inject(constants.tooltipV2RootKey);
- let isMousedown = false;
- const setTriggerRef = (el) => {
- triggerRef.value = el;
- };
- const onMouseup = () => {
- isMousedown = false;
- };
- const onMouseenter = event.composeEventHandlers(props.onMouseEnter, onDelayOpen);
- const onMouseleave = event.composeEventHandlers(props.onMouseLeave, onClose);
- const onMousedown = event.composeEventHandlers(props.onMouseDown, () => {
- onClose();
- isMousedown = true;
- document.addEventListener("mouseup", onMouseup, { once: true });
- });
- const onFocus = event.composeEventHandlers(props.onFocus, () => {
- if (!isMousedown)
- onOpen();
- });
- const onBlur = event.composeEventHandlers(props.onBlur, onClose);
- const onClick = event.composeEventHandlers(props.onClick, (e) => {
- if (e.detail === 0)
- onClose();
- });
- const events = {
- blur: onBlur,
- click: onClick,
- focus: onFocus,
- mousedown: onMousedown,
- mouseenter: onMouseenter,
- mouseleave: onMouseleave
- };
- const setEvents = (el, events2, type) => {
- if (el) {
- Object.entries(events2).forEach(([name, handler]) => {
- el[type](name, handler);
- });
- }
- };
- vue.watch(triggerRef, (triggerEl, previousTriggerEl) => {
- setEvents(triggerEl, events, "addEventListener");
- setEvents(previousTriggerEl, events, "removeEventListener");
- if (triggerEl) {
- triggerEl.setAttribute("aria-describedby", contentId.value);
- }
- });
- vue.onBeforeUnmount(() => {
- setEvents(triggerRef.value, events, "removeEventListener");
- document.removeEventListener("mouseup", onMouseup);
- });
- return (_ctx, _cache) => {
- return _ctx.nowrap ? (vue.openBlock(), vue.createBlock(vue.unref(forwardRef["default"]), {
- key: 0,
- "set-ref": setTriggerRef,
- "only-child": ""
- }, {
- default: vue.withCtx(() => [
- vue.renderSlot(_ctx.$slots, "default")
- ]),
- _: 3
- })) : (vue.openBlock(), vue.createElementBlock("button", vue.mergeProps({
- key: 1,
- ref_key: "triggerRef",
- ref: triggerRef
- }, _ctx.$attrs), [
- vue.renderSlot(_ctx.$slots, "default")
- ], 16));
- };
- }
- });
- var TooltipV2Trigger = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "trigger.vue"]]);
- exports["default"] = TooltipV2Trigger;
- //# sourceMappingURL=trigger2.js.map
|