trigger2.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. var vue = require('vue');
  4. require('../../popper/index.js');
  5. require('../../../utils/index.js');
  6. require('../../../hooks/index.js');
  7. require('../../../tokens/index.js');
  8. var trigger = require('./trigger.js');
  9. var utils = require('./utils.js');
  10. var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
  11. var index = require('../../../hooks/use-namespace/index.js');
  12. var tooltip = require('../../../tokens/tooltip.js');
  13. var event = require('../../../utils/dom/event.js');
  14. var trigger$1 = require('../../popper/src/trigger2.js');
  15. const __default__ = vue.defineComponent({
  16. name: "ElTooltipTrigger"
  17. });
  18. const _sfc_main = /* @__PURE__ */ vue.defineComponent({
  19. ...__default__,
  20. props: trigger.useTooltipTriggerProps,
  21. setup(__props, { expose }) {
  22. const props = __props;
  23. const ns = index.useNamespace("tooltip");
  24. const { controlled, id, open, onOpen, onClose, onToggle } = vue.inject(tooltip.TOOLTIP_INJECTION_KEY, void 0);
  25. const triggerRef = vue.ref(null);
  26. const stopWhenControlledOrDisabled = () => {
  27. if (vue.unref(controlled) || props.disabled) {
  28. return true;
  29. }
  30. };
  31. const trigger = vue.toRef(props, "trigger");
  32. const onMouseenter = event.composeEventHandlers(stopWhenControlledOrDisabled, utils.whenTrigger(trigger, "hover", onOpen));
  33. const onMouseleave = event.composeEventHandlers(stopWhenControlledOrDisabled, utils.whenTrigger(trigger, "hover", onClose));
  34. const onClick = event.composeEventHandlers(stopWhenControlledOrDisabled, utils.whenTrigger(trigger, "click", (e) => {
  35. if (e.button === 0) {
  36. onToggle(e);
  37. }
  38. }));
  39. const onFocus = event.composeEventHandlers(stopWhenControlledOrDisabled, utils.whenTrigger(trigger, "focus", onOpen));
  40. const onBlur = event.composeEventHandlers(stopWhenControlledOrDisabled, utils.whenTrigger(trigger, "focus", onClose));
  41. const onContextMenu = event.composeEventHandlers(stopWhenControlledOrDisabled, utils.whenTrigger(trigger, "contextmenu", (e) => {
  42. e.preventDefault();
  43. onToggle(e);
  44. }));
  45. const onKeydown = event.composeEventHandlers(stopWhenControlledOrDisabled, (e) => {
  46. const { code } = e;
  47. if (props.triggerKeys.includes(code)) {
  48. e.preventDefault();
  49. onToggle(e);
  50. }
  51. });
  52. expose({
  53. triggerRef
  54. });
  55. return (_ctx, _cache) => {
  56. return vue.openBlock(), vue.createBlock(vue.unref(trigger$1["default"]), {
  57. id: vue.unref(id),
  58. "virtual-ref": _ctx.virtualRef,
  59. open: vue.unref(open),
  60. "virtual-triggering": _ctx.virtualTriggering,
  61. class: vue.normalizeClass(vue.unref(ns).e("trigger")),
  62. onBlur: vue.unref(onBlur),
  63. onClick: vue.unref(onClick),
  64. onContextmenu: vue.unref(onContextMenu),
  65. onFocus: vue.unref(onFocus),
  66. onMouseenter: vue.unref(onMouseenter),
  67. onMouseleave: vue.unref(onMouseleave),
  68. onKeydown: vue.unref(onKeydown)
  69. }, {
  70. default: vue.withCtx(() => [
  71. vue.renderSlot(_ctx.$slots, "default")
  72. ]),
  73. _: 3
  74. }, 8, ["id", "virtual-ref", "open", "virtual-triggering", "class", "onBlur", "onClick", "onContextmenu", "onFocus", "onMouseenter", "onMouseleave", "onKeydown"]);
  75. };
  76. }
  77. });
  78. var ElTooltipTrigger = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/trigger.vue"]]);
  79. exports["default"] = ElTooltipTrigger;
  80. //# sourceMappingURL=trigger2.js.map