{"version":3,"file":"useSliderInput.mjs","sources":["../../../src/slider/hooks/useSliderInput.tsx"],"sourcesContent":["import { computed, Ref } from 'vue';\nimport { TdSliderProps } from '../type';\nimport InputNumber, { InputNumberProps } from '../../input-number';\nimport isBoolean from 'lodash/isBoolean';\n\nconst INPUT_NUMBER_PROPS_INITIAL_STATE: InputNumberProps = {\n  decimalPlaces: 0,\n  format: undefined as InputNumberProps['format'],\n  placeholder: '',\n  theme: 'column' as InputNumberProps['theme'],\n};\n\ninterface useSliderInputProps {\n  inputNumberProps: boolean | TdSliderProps['inputNumberProps'];\n  max: number;\n  min: number;\n  step: number;\n  prefixName: string;\n  vertical: boolean;\n  disabled: boolean;\n}\n\n/**\n * 聚合管理inputNumber渲染逻辑\n */\nexport const useSliderInput = (config: Ref<useSliderInputProps>) => {\n  const name = config.value.prefixName;\n\n  /** 根据传入属性缓存计算inputNumber props */\n  const sliderInputState = computed(() => {\n    let initialState = { ...INPUT_NUMBER_PROPS_INITIAL_STATE };\n    const inputProps = config.value;\n    if (!isBoolean(inputProps.inputNumberProps)) {\n      const inputTheme = inputProps.inputNumberProps?.theme;\n      initialState = { ...initialState, ...inputProps.inputNumberProps };\n      if (['column', 'row', 'normal'].includes(inputTheme)) {\n        initialState.theme = inputTheme;\n      }\n    }\n    return initialState;\n  });\n\n  const sliderNumberClass = computed(() => {\n    return [\n      `${name}__input`,\n      {\n        'is-vertical': config.value.vertical,\n      },\n    ];\n  });\n\n  const renderInputNumber = (val: number, changeFn: (val: number) => void) => {\n    // if exist min or max prop, onChange callback function will pass undefined value when decrease\n    const normalizeChangeFn = (num: number | undefined) => {\n      if (num !== undefined && !isNaN(num)) {\n        changeFn(num);\n      }\n    };\n    return (\n      <InputNumber\n        {...sliderInputState.value}\n        class={sliderNumberClass.value}\n        value={val}\n        step={config.value.step}\n        onChange={normalizeChangeFn}\n        disabled={config.value.disabled}\n        min={config.value.min}\n        max={config.value.max}\n      />\n    );\n  };\n\n  return renderInputNumber;\n};\n"],"names":["decimalPlaces","placeholder","theme","isBoolean"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,IAAA,gCAAA,GAAA;AACEA,EAAAA,aAAAA,EAAAA,CAAAA;;AAEAC,EAAAA,WAAAA,EAAAA,EAAAA;AACAC,EAAAA,KAAAA,EAAAA,QAAAA;AACF,CAAA,CAAA;AAeO,IAAA,cAAA,GAAA,SAAA,cAAA,CAAA,MAAA,EAAA;AACC,EAAA,IAAA,IAAA,GAAA,MAAA,CAAA,KAAA,CAAA,UAAA,CAAA;AAGA,EAAA,IAAA,gBAAA,GAAA,QAAA,CAAA,YAAA;AACA,IAAA,IAAA,YAAA,GAAA,aAAA,CAAA,EAAA,EAAA,gCAAA,CAAA,CAAA;AACJ,IAAA,IAAA,UAAA,GAAA,MAAA,CAAA,KAAA,CAAA;AACA,IAAA,IAAA,CAAAC,WAAA,CAAA,UAAA,CAAA,gBAAA,CAAA,EAAA;AAA6C,MAAA,IAAA,qBAAA,CAAA;AACrC,MAAA,IAAA,UAAA,GAAA,CAAA,qBAAA,GAAA,UAAA,CAAA,gBAAA,MAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAAA,KAAA,CAAA;;AAEN,MAAA,IAAA,CAAA,QAAA,EAAA,KAAA,EAAA,QAAA,CAAA,CAAA,QAAA,CAAA,UAAA,CAAA,EAAA;;AAEA,OAAA;AACF,KAAA;AACO,IAAA,OAAA,YAAA,CAAA;AACT,GAAA,CAAA,CAAA;AAEM,EAAA,IAAA,iBAAA,GAAA,QAAA,CAAA,YAAA;AACG,IAAA,OAAA,CAAA,EAAA,CAAA,MAAA,CAAA,IAAA,EAAA,SAAA,CAAA,EAAA;AAGH,MAAA,aAAA,EAAA,MAAA,CAAA,KAAA,CAAA,QAAA;AACF,KAAA,CAAA,CAAA;AAEJ,GAAA,CAAA,CAAA;;AAIQ,IAAA,IAAA,iBAAA,GAAA,SAAA,iBAAA,CAAA,GAAA,EAAA;;;AAGJ,OAAA;;;;AAK2B,MAAA,OAAA,EAAA,GAAA;AAClB,MAAA,MAAA,EAAA,MAAA,CAAA,KAAA,CAAA,IAAA;AACY,MAAA,UAAA,EAAA,iBAAA;AAEnB,MAAA,UAAA,EAAA,MAAA,CAAA,KAAA,CAAA,QAAA;AACA,MAAA,KAAA,EAAA,MAAA,CAAA,KAAA,CAAA,GAAA;;AAEF,KAAA,CAAA,EAAA,IAAA,CAAA,CAAA;;AAIG,EAAA,OAAA,iBAAA,CAAA;AACT;;;;"}