{"version":3,"file":"slider-trigger.vue2.cjs","sources":["../../../components/slider/slider-trigger.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Tooltip } from '@/components/tooltip'\n\nimport { computed, ref } from 'vue'\n\nimport { useHoverDelay, useNameHelper } from '@vexip-ui/config'\nimport { useModifier, useSetTimeout } from '@vexip-ui/hooks'\n\nimport type { PropType } from 'vue'\nimport type { TooltipExposed } from '@/components/tooltip'\nimport type { SliderTipProps } from './symbol'\n\ndefineOptions({ name: 'SliderTrigger' })\n\nconst props = defineProps({\n  value: {\n    type: Number,\n    default: 0,\n  },\n  tipTransfer: {\n    type: [Boolean, String],\n    default: false,\n  },\n  hideTip: {\n    type: Boolean,\n    default: false,\n  },\n  vertical: {\n    type: Boolean,\n    default: false,\n  },\n  min: {\n    type: Number,\n    default: 0,\n  },\n  max: {\n    type: Number,\n    default: 100,\n  },\n  disabled: {\n    type: Boolean,\n    default: false,\n  },\n  loading: {\n    type: Boolean,\n    default: false,\n  },\n  reverse: {\n    type: Boolean,\n    default: false,\n  },\n  sliding: {\n    type: Boolean,\n    default: false,\n  },\n  tipHover: {\n    type: Boolean,\n    default: false,\n  },\n  tipProps: {\n    type: Object as PropType<SliderTipProps>,\n    default: () => ({}),\n  },\n})\n\nconst emit = defineEmits(['key-minus', 'key-plus'])\n\ndefineSlots<{ default: () => any, tip: () => any }>()\n\nconst nh = useNameHelper('slider')\nconst hoverDelay = useHoverDelay()\n\nconst isTipShow = ref(false)\n\nconst tooltip = ref<(InstanceType<typeof Tooltip> & TooltipExposed) | null>(null)\nconst handler = ref<HTMLElement>()\n\nconst { timer } = useSetTimeout()\nconst { target: wrapper } = useModifier({\n  passive: false,\n  onKeyDown: (event, modifier) => {\n    if (modifier.up || modifier.down || modifier.left || modifier.right) {\n      disableEvent(event)\n\n      const extraType = event.ctrlKey\n        ? 'ctrl'\n        : event.shiftKey\n          ? 'shift'\n          : event.altKey\n            ? 'alt'\n            : undefined\n\n      if (modifier.up || modifier.left) {\n        emit('key-minus', extraType)\n      } else {\n        emit('key-plus', extraType)\n      }\n    }\n  },\n})\n\nconst tipClass = computed(() => [nh.be('tip'), props.tipProps?.tipClass])\n\ndefineExpose({ updateTooltip, focus, blur })\n\nfunction showTooltip() {\n  clearTimeout(timer.hover)\n\n  if (!props.disabled) {\n    timer.hover = setTimeout(() => {\n      isTipShow.value = true\n    }, hoverDelay.value)\n  }\n}\n\nfunction hideTooltip() {\n  clearTimeout(timer.hover)\n\n  timer.hover = setTimeout(() => {\n    isTipShow.value = false\n  }, hoverDelay.value)\n}\n\nfunction disableEvent<E extends Event>(event: E) {\n  if (event.cancelable) {\n    event.stopPropagation()\n    event.preventDefault()\n  }\n}\n\nfunction updateTooltip() {\n  if (tooltip.value) {\n    tooltip.value.updatePopper()\n  }\n}\n\nfunction focus(options?: FocusOptions) {\n  handler.value?.focus(options)\n}\n\nfunction blur() {\n  handler.value?.blur()\n}\n</script>\n\n<template>\n  <div\n    ref=\"wrapper\"\n    :class=\"nh.be('trigger')\"\n    tabindex=\"-1\"\n    @touchstart=\"disableEvent\"\n  >\n    <Tooltip\n      ref=\"tooltip\"\n      :placement=\"vertical ? 'right' : 'top'\"\n      v-bind=\"tipProps\"\n      trigger=\"custom\"\n      :transfer=\"tipTransfer\"\n      :visible=\"isTipShow || sliding\"\n      :tip-class=\"tipClass\"\n      :disabled=\"hideTip\"\n      :no-hover=\"!tipHover\"\n      @tip-enter=\"showTooltip\"\n      @tip-leave=\"hideTooltip\"\n    >\n      <template #trigger>\n        <div\n          ref=\"handler\"\n          :class=\"{\n            [nh.be('button')]: true,\n            [nh.bem('button', 'loading')]: loading,\n            [nh.bem('button', 'sliding')]: sliding\n          }\"\n          role=\"slider\"\n          tabindex=\"0\"\n          :aria-valuenow=\"value\"\n          :aria-valuemin=\"min\"\n          :aria-valuemax=\"max\"\n          :aria-disabled=\"disabled\"\n          @mouseenter=\"showTooltip\"\n          @mouseleave=\"hideTooltip\"\n        >\n          <slot>\n            <div :class=\"nh.be('handler')\"></div>\n          </slot>\n        </div>\n      </template>\n      <slot name=\"tip\">\n        {{ value }}\n      </slot>\n    </Tooltip>\n  </div>\n</template>\n"],"names":["props","__props","emit","__emit","nh","useNameHelper","hoverDelay","useHoverDelay","isTipShow","ref","tooltip","handler","timer","useSetTimeout","wrapper","useModifier","event","modifier","disableEvent","extraType","tipClass","computed","_a","__expose","updateTooltip","focus","blur","showTooltip","hideTooltip","options","_createElementBlock","_normalizeClass","_unref","_createVNode","_mergeProps","_createElementVNode","_renderSlot","_ctx"],"mappings":"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"}