{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/slider/src/index.vue"],"sourcesContent":["<template>\n  <div\n    ref=\"sliderWrapper\"\n    :class=\"sliderKls\"\n    role=\"slider\"\n    :aria-valuemin=\"min\"\n    :aria-valuemax=\"max\"\n    :aria-orientation=\"vertical ? 'vertical' : 'horizontal'\"\n    :aria-disabled=\"sliderDisabled\"\n  >\n    <div\n      ref=\"slider\"\n      :class=\"[\n        ns.e('runway'),\n        { 'show-input': showInput && !range },\n        ns.is('disabled', sliderDisabled),\n      ]\"\n      :style=\"runwayStyle\"\n      @click=\"onSliderClick\"\n    >\n      <div :class=\"ns.e('bar')\" :style=\"barStyle\" />\n      <slider-button\n        ref=\"firstButton\"\n        :model-value=\"firstValue\"\n        :vertical=\"vertical\"\n        :tooltip-class=\"tooltipClass\"\n        @update:model-value=\"setFirstValue\"\n      />\n      <slider-button\n        v-if=\"range\"\n        ref=\"secondButton\"\n        :model-value=\"secondValue\"\n        :vertical=\"vertical\"\n        :tooltip-class=\"tooltipClass\"\n        @update:model-value=\"setSecondValue\"\n      />\n      <div v-if=\"showStops\">\n        <div\n          v-for=\"(item, key) in stops\"\n          :key=\"key\"\n          :class=\"ns.e('stop')\"\n          :style=\"getStopStyle(item)\"\n        />\n      </div>\n      <template v-if=\"markList.length > 0\">\n        <div>\n          <div\n            v-for=\"(item, key) in markList\"\n            :key=\"key\"\n            :style=\"getStopStyle(item.position)\"\n            :class=\"[ns.e('stop'), ns.e('marks-stop')]\"\n          />\n        </div>\n        <div :class=\"ns.e('marks')\">\n          <slider-marker\n            v-for=\"(item, key) in markList\"\n            :key=\"key\"\n            :mark=\"item.mark\"\n            :style=\"getStopStyle(item.position)\"\n          />\n        </div>\n      </template>\n    </div>\n    <el-input-number\n      v-if=\"showInput && !range\"\n      ref=\"input\"\n      :model-value=\"firstValue\"\n      :class=\"ns.e('input')\"\n      :step=\"step\"\n      :disabled=\"sliderDisabled\"\n      :controls=\"showInputControls\"\n      :min=\"min\"\n      :max=\"max\"\n      :debounce=\"debounce\"\n      :size=\"sliderInputSize\"\n      @update:model-value=\"setFirstValue\"\n      @change=\"emitChange\"\n    />\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n  computed,\n  defineComponent,\n  nextTick,\n  onBeforeUnmount,\n  onMounted,\n  provide,\n  reactive,\n  ref,\n  toRefs,\n  watch,\n} from 'vue'\nimport ElInputNumber from '@element-plus/components/input-number'\nimport {\n  UPDATE_MODEL_EVENT,\n  CHANGE_EVENT,\n  INPUT_EVENT,\n} from '@element-plus/constants'\nimport {\n  off,\n  on,\n  throwError,\n  isValidComponentSize,\n  debugWarn,\n} from '@element-plus/utils'\nimport { useNamespace, useSize } from '@element-plus/hooks'\nimport SliderButton from './button.vue'\nimport SliderMarker from './marker.vue'\nimport { useMarks } from './useMarks'\nimport { useSlide } from './useSlide'\nimport { useStops } from './useStops'\n\nimport type { PropType, Ref } from 'vue'\nimport type { ComponentSize } from '@element-plus/constants'\nimport type { Nullable } from '@element-plus/utils'\n\nexport default defineComponent({\n  name: 'ElSlider',\n\n  components: {\n    ElInputNumber,\n    SliderButton,\n    SliderMarker,\n  },\n\n  props: {\n    modelValue: {\n      type: [Number, Array] as PropType<number | number[]>,\n      default: 0,\n    },\n    min: {\n      type: Number,\n      default: 0,\n    },\n    max: {\n      type: Number,\n      default: 100,\n    },\n    step: {\n      type: Number,\n      default: 1,\n    },\n    showInput: {\n      type: Boolean,\n      default: false,\n    },\n    showInputControls: {\n      type: Boolean,\n      default: true,\n    },\n    size: {\n      type: String as PropType<ComponentSize>,\n      validator: isValidComponentSize,\n    },\n    inputSize: {\n      type: String as PropType<ComponentSize>,\n      validator: isValidComponentSize,\n    },\n    showStops: {\n      type: Boolean,\n      default: false,\n    },\n    showTooltip: {\n      type: Boolean,\n      default: true,\n    },\n    formatTooltip: {\n      type: Function as PropType<(val: number) => number | string>,\n      default: undefined,\n    },\n    disabled: {\n      type: Boolean,\n      default: false,\n    },\n    range: {\n      type: Boolean,\n      default: false,\n    },\n    vertical: {\n      type: Boolean,\n      default: false,\n    },\n    height: {\n      type: String,\n      default: '',\n    },\n    debounce: {\n      type: Number,\n      default: 300,\n    },\n    label: {\n      type: String,\n      default: undefined,\n    },\n    tooltipClass: {\n      type: String,\n      default: undefined,\n    },\n    marks: Object,\n  },\n\n  emits: [UPDATE_MODEL_EVENT, CHANGE_EVENT, INPUT_EVENT],\n\n  setup(props, { emit }) {\n    const ns = useNamespace('slider')\n    const initData = reactive({\n      firstValue: 0,\n      secondValue: 0,\n      oldValue: 0,\n      dragging: false,\n      sliderSize: 1,\n    })\n\n    const {\n      elFormItem,\n      slider,\n      firstButton,\n      secondButton,\n      sliderDisabled,\n      minValue,\n      maxValue,\n      runwayStyle,\n      barStyle,\n      resetSize,\n      emitChange,\n      onSliderClick,\n      setFirstValue,\n      setSecondValue,\n    } = useSlide(props, initData, emit)\n\n    const { stops, getStopStyle } = useStops(\n      props,\n      initData,\n      minValue,\n      maxValue\n    )\n\n    const sliderWrapperSize = useSize()\n    const sliderInputSize = computed(\n      () => props.inputSize || sliderWrapperSize.value\n    )\n\n    const sliderKls = computed(() => [\n      ns.b(),\n      ns.m(sliderWrapperSize.value),\n      ns.is('vertical', props.vertical),\n      { [ns.m('with-input')]: props.showInput },\n    ])\n\n    const markList = useMarks(props)\n\n    useWatch(props, initData, minValue, maxValue, emit, elFormItem)\n\n    const precision = computed(() => {\n      const precisions = [props.min, props.max, props.step].map((item) => {\n        const decimal = `${item}`.split('.')[1]\n        return decimal ? decimal.length : 0\n      })\n      return Math.max.apply(null, precisions)\n    })\n\n    const { sliderWrapper } = useLifecycle(props, initData, resetSize)\n\n    const { firstValue, secondValue, oldValue, dragging, sliderSize } =\n      toRefs(initData)\n\n    const updateDragging = (val: boolean) => {\n      initData.dragging = val\n    }\n\n    provide('SliderProvider', {\n      ...toRefs(props),\n      sliderSize,\n      disabled: sliderDisabled,\n      precision,\n      emitChange,\n      resetSize,\n      updateDragging,\n    })\n\n    return {\n      ns,\n      firstValue,\n      secondValue,\n      oldValue,\n      dragging,\n      sliderSize,\n\n      slider,\n      firstButton,\n      secondButton,\n      sliderDisabled,\n      runwayStyle,\n      barStyle,\n      emitChange,\n      onSliderClick,\n      getStopStyle,\n      setFirstValue,\n      setSecondValue,\n\n      stops,\n      markList,\n\n      sliderWrapper,\n      sliderWrapperSize,\n      sliderInputSize,\n      sliderKls,\n    }\n  },\n})\n\nconst useWatch = (props, initData, minValue, maxValue, emit, elFormItem) => {\n  const _emit = (val: number | number[]) => {\n    emit(UPDATE_MODEL_EVENT, val)\n    emit(INPUT_EVENT, val)\n  }\n\n  const valueChanged = () => {\n    if (props.range) {\n      return ![minValue.value, maxValue.value].every(\n        (item, index) => item === initData.oldValue[index]\n      )\n    } else {\n      return props.modelValue !== initData.oldValue\n    }\n  }\n\n  const setValues = () => {\n    if (props.min > props.max) {\n      throwError('Slider', 'min should not be greater than max.')\n      return\n    }\n    const val = props.modelValue\n    if (props.range && Array.isArray(val)) {\n      if (val[1] < props.min) {\n        _emit([props.min, props.min])\n      } else if (val[0] > props.max) {\n        _emit([props.max, props.max])\n      } else if (val[0] < props.min) {\n        _emit([props.min, val[1]])\n      } else if (val[1] > props.max) {\n        _emit([val[0], props.max])\n      } else {\n        initData.firstValue = val[0]\n        initData.secondValue = val[1]\n        if (valueChanged()) {\n          elFormItem.validate?.('change').catch((err) => debugWarn(err))\n          initData.oldValue = val.slice()\n        }\n      }\n    } else if (!props.range && typeof val === 'number' && !Number.isNaN(val)) {\n      if (val < props.min) {\n        _emit(props.min)\n      } else if (val > props.max) {\n        _emit(props.max)\n      } else {\n        initData.firstValue = val\n        if (valueChanged()) {\n          elFormItem.validate?.('change').catch((err) => debugWarn(err))\n          initData.oldValue = val\n        }\n      }\n    }\n  }\n\n  setValues()\n\n  watch(\n    () => initData.dragging,\n    (val) => {\n      if (!val) {\n        setValues()\n      }\n    }\n  )\n\n  watch(\n    () => props.modelValue,\n    (val, oldVal) => {\n      if (\n        initData.dragging ||\n        (Array.isArray(val) &&\n          Array.isArray(oldVal) &&\n          val.every((item, index) => item === oldVal[index]) &&\n          initData.firstValue === val[0] &&\n          initData.secondValue === val[1])\n      ) {\n        return\n      }\n      setValues()\n    },\n    {\n      deep: true,\n    }\n  )\n\n  watch(\n    () => [props.min, props.max],\n    () => {\n      setValues()\n    }\n  )\n}\n\nconst useLifecycle = (props, initData, resetSize) => {\n  const sliderWrapper: Ref<Nullable<HTMLElement>> = ref(null)\n\n  onMounted(async () => {\n    let valuetext\n    if (props.range) {\n      if (Array.isArray(props.modelValue)) {\n        initData.firstValue = Math.max(props.min, props.modelValue[0])\n        initData.secondValue = Math.min(props.max, props.modelValue[1])\n      } else {\n        initData.firstValue = props.min\n        initData.secondValue = props.max\n      }\n      initData.oldValue = [initData.firstValue, initData.secondValue]\n      valuetext = `${initData.firstValue}-${initData.secondValue}`\n    } else {\n      if (\n        typeof props.modelValue !== 'number' ||\n        Number.isNaN(props.modelValue)\n      ) {\n        initData.firstValue = props.min\n      } else {\n        initData.firstValue = Math.min(\n          props.max,\n          Math.max(props.min, props.modelValue)\n        )\n      }\n      initData.oldValue = initData.firstValue\n      valuetext = initData.firstValue\n    }\n\n    sliderWrapper.value.setAttribute('aria-valuetext', valuetext)\n\n    // label screen reader\n    sliderWrapper.value.setAttribute(\n      'aria-label',\n      props.label ? props.label : `slider between ${props.min} and ${props.max}`\n    )\n\n    on(window, 'resize', resetSize)\n\n    await nextTick()\n    resetSize()\n  })\n\n  onBeforeUnmount(() => {\n    off(window, 'resize', resetSize)\n  })\n\n  return {\n    sliderWrapper,\n  }\n}\n</script>\n"],"names":["SliderMarker","_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_createElementVNode","_normalizeStyle","_createVNode","_createBlock","_createCommentVNode","_Fragment","_renderList"],"mappings":"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"}