{"version":3,"file":"button.mjs","sources":["../../../../../../packages/components/slider/src/button.vue"],"sourcesContent":["<template>\r\n  <div\r\n    ref=\"button\"\r\n    class=\"sg-slider__button-wrapper\"\r\n    :class=\"{ hover: hovering, dragging: dragging }\"\r\n    :style=\"wrapperStyle\"\r\n    tabindex=\"0\"\r\n    @mouseenter=\"handleMouseEnter\"\r\n    @mouseleave=\"handleMouseLeave\"\r\n    @mousedown=\"onButtonDown\"\r\n    @touchstart=\"onButtonDown\"\r\n    @focus=\"handleMouseEnter\"\r\n    @blur=\"handleMouseLeave\"\r\n    @keydown.left=\"onLeftKeyDown\"\r\n    @keydown.right=\"onRightKeyDown\"\r\n    @keydown.down.prevent=\"onLeftKeyDown\"\r\n    @keydown.up.prevent=\"onRightKeyDown\"\r\n  >\r\n    <sg-tooltip\r\n      ref=\"tooltip\"\r\n      v-model:visible=\"tooltipVisible\"\r\n      :placement=\"(placement as any)\"\r\n      :stop-popper-mouse-event=\"false\"\r\n      :popper-class=\"tooltipClass\"\r\n      :disabled=\"!showTooltip\"\r\n      persistent\r\n    >\r\n      <template #content>\r\n        <span>{{ formatValue }}</span>\r\n      </template>\r\n      <div\r\n        class=\"sg-slider__button\"\r\n        :class=\"{ hover: hovering, dragging: dragging }\"\r\n      ></div>\r\n    </sg-tooltip>\r\n  </div>\r\n</template>\r\n\r\n<script lang=\"ts\">\r\nimport { defineComponent, reactive, toRefs } from 'vue'\r\nimport SgTooltip from '@sgui-plus/components/tooltip'\r\nimport { UPDATE_MODEL_EVENT } from '@sgui-plus/utils/constants'\r\nimport { useSliderButton } from './useSliderButton'\r\n\r\nexport default defineComponent({\r\n  name: 'SgSliderButton',\r\n\r\n  components: {\r\n    SgTooltip,\r\n  },\r\n\r\n  props: {\r\n    modelValue: {\r\n      type: Number,\r\n      default: 0,\r\n    },\r\n    vertical: {\r\n      type: Boolean,\r\n      default: false,\r\n    },\r\n    tooltipClass: {\r\n      type: String,\r\n      default: '',\r\n    },\r\n    placement: {\r\n      type: String,\r\n      default: 'top',\r\n    },\r\n  },\r\n\r\n  emits: [UPDATE_MODEL_EVENT],\r\n\r\n  setup(props, { emit }) {\r\n    const initData = reactive({\r\n      hovering: false,\r\n      dragging: false,\r\n      isClick: false,\r\n      startX: 0,\r\n      currentX: 0,\r\n      startY: 0,\r\n      currentY: 0,\r\n      startPosition: 0,\r\n      newPosition: 0,\r\n      oldValue: props.modelValue,\r\n    })\r\n\r\n    const {\r\n      tooltip,\r\n      showTooltip,\r\n      tooltipVisible,\r\n      wrapperStyle,\r\n      formatValue,\r\n      handleMouseEnter,\r\n      handleMouseLeave,\r\n      onButtonDown,\r\n      onLeftKeyDown,\r\n      onRightKeyDown,\r\n      setPosition,\r\n    } = useSliderButton(props, initData, emit)\r\n\r\n    const { hovering, dragging } = toRefs(initData)\r\n\r\n    return {\r\n      tooltip,\r\n      tooltipVisible,\r\n      showTooltip,\r\n      wrapperStyle,\r\n      formatValue,\r\n      handleMouseEnter,\r\n      handleMouseLeave,\r\n      onButtonDown,\r\n      onLeftKeyDown,\r\n      onRightKeyDown,\r\n      setPosition,\r\n\r\n      hovering,\r\n      dragging,\r\n    }\r\n  },\r\n})\r\n</script>\r\n"],"names":["_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_normalizeStyle","_withKeys","_withModifiers","_createElementVNode","_toDisplayString","_withCtx"],"mappings":"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"}