f630889524858c57f20ab04e4f13c39dadda4f61873f1436626c4dbfca17db93ab02052be06742f1b1b4f83861cbc89ddd05d1953208f4b2685eeb47f172c1 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. import { defineComponent, reactive, computed, toRefs, openBlock, createElementBlock, normalizeClass, unref, normalizeStyle, createVNode, withCtx, createElementVNode, toDisplayString } from 'vue';
  2. import { ElTooltip } from '../../tooltip/index.mjs';
  3. import { sliderButtonProps, sliderButtonEmits } from './button.mjs';
  4. import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
  5. import { useSliderButton } from './composables/use-slider-button.mjs';
  6. import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
  7. const __default__ = defineComponent({
  8. name: "ElSliderButton"
  9. });
  10. const _sfc_main = /* @__PURE__ */ defineComponent({
  11. ...__default__,
  12. props: sliderButtonProps,
  13. emits: sliderButtonEmits,
  14. setup(__props, { expose, emit }) {
  15. const props = __props;
  16. const ns = useNamespace("slider");
  17. const initData = reactive({
  18. hovering: false,
  19. dragging: false,
  20. isClick: false,
  21. startX: 0,
  22. currentX: 0,
  23. startY: 0,
  24. currentY: 0,
  25. startPosition: 0,
  26. newPosition: 0,
  27. oldValue: props.modelValue
  28. });
  29. const tooltipPersistent = computed(() => !showTooltip.value ? false : persistent.value);
  30. const {
  31. disabled,
  32. button,
  33. tooltip,
  34. showTooltip,
  35. persistent,
  36. tooltipVisible,
  37. wrapperStyle,
  38. formatValue,
  39. handleMouseEnter,
  40. handleMouseLeave,
  41. onButtonDown,
  42. onKeyDown,
  43. setPosition
  44. } = useSliderButton(props, initData, emit);
  45. const { hovering, dragging } = toRefs(initData);
  46. expose({
  47. onButtonDown,
  48. onKeyDown,
  49. setPosition,
  50. hovering,
  51. dragging
  52. });
  53. return (_ctx, _cache) => {
  54. return openBlock(), createElementBlock("div", {
  55. ref_key: "button",
  56. ref: button,
  57. class: normalizeClass([unref(ns).e("button-wrapper"), { hover: unref(hovering), dragging: unref(dragging) }]),
  58. style: normalizeStyle(unref(wrapperStyle)),
  59. tabindex: unref(disabled) ? -1 : 0,
  60. onMouseenter: unref(handleMouseEnter),
  61. onMouseleave: unref(handleMouseLeave),
  62. onMousedown: unref(onButtonDown),
  63. onFocus: unref(handleMouseEnter),
  64. onBlur: unref(handleMouseLeave),
  65. onKeydown: unref(onKeyDown)
  66. }, [
  67. createVNode(unref(ElTooltip), {
  68. ref_key: "tooltip",
  69. ref: tooltip,
  70. visible: unref(tooltipVisible),
  71. placement: _ctx.placement,
  72. "fallback-placements": ["top", "bottom", "right", "left"],
  73. "stop-popper-mouse-event": false,
  74. "popper-class": _ctx.tooltipClass,
  75. disabled: !unref(showTooltip),
  76. persistent: unref(tooltipPersistent)
  77. }, {
  78. content: withCtx(() => [
  79. createElementVNode("span", null, toDisplayString(unref(formatValue)), 1)
  80. ]),
  81. default: withCtx(() => [
  82. createElementVNode("div", {
  83. class: normalizeClass([unref(ns).e("button"), { hover: unref(hovering), dragging: unref(dragging) }])
  84. }, null, 2)
  85. ]),
  86. _: 1
  87. }, 8, ["visible", "placement", "popper-class", "disabled", "persistent"])
  88. ], 46, ["tabindex", "onMouseenter", "onMouseleave", "onMousedown", "onFocus", "onBlur", "onKeydown"]);
  89. };
  90. }
  91. });
  92. var SliderButton = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "button.vue"]]);
  93. export { SliderButton as default };
  94. //# sourceMappingURL=button2.mjs.map