{"version":3,"file":"input-number2.js","sources":["../../../../../../packages/components/input-number/src/input-number.vue"],"sourcesContent":["<template>\n  <div\n    :class=\"[\n      ns.b(),\n      ns.m(inputNumberSize),\n      ns.is('disabled', inputNumberDisabled),\n      ns.is('without-controls', !controls),\n      ns.is('controls-right', controlsAtRight),\n    ]\"\n    @dragstart.prevent\n  >\n    <span\n      v-if=\"controls\"\n      v-repeat-click=\"decrease\"\n      role=\"button\"\n      :aria-label=\"t('el.inputNumber.decrease')\"\n      :class=\"[ns.e('decrease'), ns.is('disabled', minDisabled)]\"\n      @keydown.enter=\"decrease\"\n    >\n      <slot name=\"decrease-icon\">\n        <el-icon>\n          <arrow-down v-if=\"controlsAtRight\" />\n          <minus v-else />\n        </el-icon>\n      </slot>\n    </span>\n    <span\n      v-if=\"controls\"\n      v-repeat-click=\"increase\"\n      role=\"button\"\n      :aria-label=\"t('el.inputNumber.increase')\"\n      :class=\"[ns.e('increase'), ns.is('disabled', maxDisabled)]\"\n      @keydown.enter=\"increase\"\n    >\n      <slot name=\"increase-icon\">\n        <el-icon>\n          <arrow-up v-if=\"controlsAtRight\" />\n          <plus v-else />\n        </el-icon>\n      </slot>\n    </span>\n    <el-input\n      :id=\"id\"\n      ref=\"input\"\n      type=\"number\"\n      :step=\"step\"\n      :model-value=\"displayValue\"\n      :placeholder=\"placeholder\"\n      :readonly=\"readonly\"\n      :disabled=\"inputNumberDisabled\"\n      :size=\"inputNumberSize\"\n      :max=\"max\"\n      :min=\"min\"\n      :name=\"name\"\n      :aria-label=\"ariaLabel\"\n      :validate-event=\"false\"\n      @keydown.up.prevent=\"increase\"\n      @keydown.down.prevent=\"decrease\"\n      @blur=\"handleBlur\"\n      @focus=\"handleFocus\"\n      @input=\"handleInput\"\n      @change=\"handleInputChange\"\n    >\n      <template v-if=\"$slots.prefix\" #prefix>\n        <slot name=\"prefix\" />\n      </template>\n      <template v-if=\"$slots.suffix\" #suffix>\n        <slot name=\"suffix\" />\n      </template>\n    </el-input>\n  </div>\n</template>\n<script lang=\"ts\" setup>\nimport { computed, onMounted, onUpdated, reactive, ref, watch } from 'vue'\nimport { isNil } from 'lodash-unified'\nimport { ElInput } from '@element-plus/components/input'\nimport { ElIcon } from '@element-plus/components/icon'\nimport {\n  useFormDisabled,\n  useFormItem,\n  useFormSize,\n} from '@element-plus/components/form'\nimport { vRepeatClick } from '@element-plus/directives'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport {\n  debugWarn,\n  isNumber,\n  isString,\n  isUndefined,\n  throwError,\n} from '@element-plus/utils'\nimport { ArrowDown, ArrowUp, Minus, Plus } from '@element-plus/icons-vue'\nimport {\n  CHANGE_EVENT,\n  INPUT_EVENT,\n  UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport { inputNumberEmits, inputNumberProps } from './input-number'\n\nimport type { InputInstance } from '@element-plus/components/input'\n\ndefineOptions({\n  name: 'ElInputNumber',\n})\n\nconst props = defineProps(inputNumberProps)\nconst emit = defineEmits(inputNumberEmits)\n\nconst { t } = useLocale()\nconst ns = useNamespace('input-number')\nconst input = ref<InputInstance>()\n\ninterface Data {\n  currentValue: number | null | undefined\n  userInput: null | number | string\n}\nconst data = reactive<Data>({\n  currentValue: props.modelValue,\n  userInput: null,\n})\n\nconst { formItem } = useFormItem()\n\nconst minDisabled = computed(\n  () => isNumber(props.modelValue) && props.modelValue <= props.min\n)\nconst maxDisabled = computed(\n  () => isNumber(props.modelValue) && props.modelValue >= props.max\n)\n\nconst numPrecision = computed(() => {\n  const stepPrecision = getPrecision(props.step)\n  if (!isUndefined(props.precision)) {\n    if (stepPrecision > props.precision) {\n      debugWarn(\n        'InputNumber',\n        'precision should not be less than the decimal places of step'\n      )\n    }\n    return props.precision\n  } else {\n    return Math.max(getPrecision(props.modelValue), stepPrecision)\n  }\n})\nconst controlsAtRight = computed(() => {\n  return props.controls && props.controlsPosition === 'right'\n})\n\nconst inputNumberSize = useFormSize()\nconst inputNumberDisabled = useFormDisabled()\n\nconst displayValue = computed(() => {\n  if (data.userInput !== null) {\n    return data.userInput\n  }\n  let currentValue: number | string | undefined | null = data.currentValue\n  if (isNil(currentValue)) return ''\n  if (isNumber(currentValue)) {\n    if (Number.isNaN(currentValue)) return ''\n    if (!isUndefined(props.precision)) {\n      currentValue = currentValue.toFixed(props.precision)\n    }\n  }\n  return currentValue\n})\nconst toPrecision = (num: number, pre?: number) => {\n  if (isUndefined(pre)) pre = numPrecision.value\n  if (pre === 0) return Math.round(num)\n  let snum = String(num)\n  const pointPos = snum.indexOf('.')\n  if (pointPos === -1) return num\n  const nums = snum.replace('.', '').split('')\n  const datum = nums[pointPos + pre]\n  if (!datum) return num\n  const length = snum.length\n  if (snum.charAt(length - 1) === '5') {\n    snum = `${snum.slice(0, Math.max(0, length - 1))}6`\n  }\n  return Number.parseFloat(Number(snum).toFixed(pre))\n}\nconst getPrecision = (value: number | null | undefined) => {\n  if (isNil(value)) return 0\n  const valueString = value.toString()\n  const dotPosition = valueString.indexOf('.')\n  let precision = 0\n  if (dotPosition !== -1) {\n    precision = valueString.length - dotPosition - 1\n  }\n  return precision\n}\nconst ensurePrecision = (val: number, coefficient: 1 | -1 = 1) => {\n  if (!isNumber(val)) return data.currentValue\n  // Solve the accuracy problem of JS decimal calculation by converting the value to integer.\n  return toPrecision(val + props.step * coefficient)\n}\nconst increase = () => {\n  if (props.readonly || inputNumberDisabled.value || maxDisabled.value) return\n  const value = Number(displayValue.value) || 0\n  const newVal = ensurePrecision(value)\n  setCurrentValue(newVal)\n  emit(INPUT_EVENT, data.currentValue)\n  setCurrentValueToModelValue()\n}\nconst decrease = () => {\n  if (props.readonly || inputNumberDisabled.value || minDisabled.value) return\n  const value = Number(displayValue.value) || 0\n  const newVal = ensurePrecision(value, -1)\n  setCurrentValue(newVal)\n  emit(INPUT_EVENT, data.currentValue)\n  setCurrentValueToModelValue()\n}\nconst verifyValue = (\n  value: number | string | null | undefined,\n  update?: boolean\n): number | null | undefined => {\n  const { max, min, step, precision, stepStrictly, valueOnClear } = props\n  if (max < min) {\n    throwError('InputNumber', 'min should not be greater than max.')\n  }\n  let newVal = Number(value)\n  if (isNil(value) || Number.isNaN(newVal)) {\n    return null\n  }\n  if (value === '') {\n    if (valueOnClear === null) {\n      return null\n    }\n    newVal = isString(valueOnClear) ? { min, max }[valueOnClear] : valueOnClear\n  }\n  if (stepStrictly) {\n    newVal = toPrecision(Math.round(newVal / step) * step, precision)\n    if (newVal !== value) {\n      update && emit(UPDATE_MODEL_EVENT, newVal)\n    }\n  }\n  if (!isUndefined(precision)) {\n    newVal = toPrecision(newVal, precision)\n  }\n  if (newVal > max || newVal < min) {\n    newVal = newVal > max ? max : min\n    update && emit(UPDATE_MODEL_EVENT, newVal)\n  }\n  return newVal\n}\nconst setCurrentValue = (\n  value: number | string | null | undefined,\n  emitChange = true\n) => {\n  const oldVal = data.currentValue\n  const newVal = verifyValue(value)\n  if (!emitChange) {\n    emit(UPDATE_MODEL_EVENT, newVal!)\n    return\n  }\n  if (oldVal === newVal && value) return\n  data.userInput = null\n  emit(UPDATE_MODEL_EVENT, newVal!)\n  if (oldVal !== newVal) {\n    emit(CHANGE_EVENT, newVal!, oldVal!)\n  }\n  if (props.validateEvent) {\n    formItem?.validate?.('change').catch((err) => debugWarn(err))\n  }\n  data.currentValue = newVal\n}\nconst handleInput = (value: string) => {\n  data.userInput = value\n  const newVal = value === '' ? null : Number(value)\n  emit(INPUT_EVENT, newVal)\n  setCurrentValue(newVal, false)\n}\nconst handleInputChange = (value: string) => {\n  const newVal = value !== '' ? Number(value) : ''\n  if ((isNumber(newVal) && !Number.isNaN(newVal)) || value === '') {\n    setCurrentValue(newVal)\n  }\n  setCurrentValueToModelValue()\n  data.userInput = null\n}\n\nconst focus = () => {\n  input.value?.focus?.()\n}\n\nconst blur = () => {\n  input.value?.blur?.()\n}\n\nconst handleFocus = (event: MouseEvent | FocusEvent) => {\n  emit('focus', event)\n}\n\nconst handleBlur = (event: MouseEvent | FocusEvent) => {\n  data.userInput = null\n  emit('blur', event)\n  if (props.validateEvent) {\n    formItem?.validate?.('blur').catch((err) => debugWarn(err))\n  }\n}\n\nconst setCurrentValueToModelValue = () => {\n  if (data.currentValue !== props.modelValue) {\n    data.currentValue = props.modelValue\n  }\n}\nconst handleWheel = (e: WheelEvent) => {\n  if (document.activeElement === e.target) e.preventDefault()\n}\n\nwatch(\n  () => props.modelValue,\n  (value, oldValue) => {\n    const newValue = verifyValue(value, true)\n    if (data.userInput === null && newValue !== oldValue) {\n      data.currentValue = newValue\n    }\n  },\n  { immediate: true }\n)\nonMounted(() => {\n  const { min, max, modelValue } = props\n  const innerInput = input.value?.input as HTMLInputElement\n  innerInput.setAttribute('role', 'spinbutton')\n  if (Number.isFinite(max)) {\n    innerInput.setAttribute('aria-valuemax', String(max))\n  } else {\n    innerInput.removeAttribute('aria-valuemax')\n  }\n  if (Number.isFinite(min)) {\n    innerInput.setAttribute('aria-valuemin', String(min))\n  } else {\n    innerInput.removeAttribute('aria-valuemin')\n  }\n  innerInput.setAttribute(\n    'aria-valuenow',\n    data.currentValue || data.currentValue === 0\n      ? String(data.currentValue)\n      : ''\n  )\n  innerInput.setAttribute('aria-disabled', String(inputNumberDisabled.value))\n  if (!isNumber(modelValue) && modelValue != null) {\n    let val: number | null = Number(modelValue)\n    if (Number.isNaN(val)) {\n      val = null\n    }\n    emit(UPDATE_MODEL_EVENT, val!)\n  }\n  innerInput.addEventListener('wheel', handleWheel, { passive: false })\n})\nonUpdated(() => {\n  const innerInput = input.value?.input\n  innerInput?.setAttribute('aria-valuenow', `${data.currentValue ?? ''}`)\n})\ndefineExpose({\n  /** @description get focus the input component */\n  focus,\n  /** @description remove focus the input component */\n  blur,\n})\n</script>\n"],"names":["useLocale","useNamespace","ref","reactive","useFormItem","computed","isNumber","isUndefined","debugWarn","useFormSize","useFormDisabled","isNil","INPUT_EVENT","throwError","isString","UPDATE_MODEL_EVENT","CHANGE_EVENT","watch","onMounted","onUpdated"],"mappings":"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"}