{"version":3,"file":"inputs.mjs","sources":["../../../../../components/color-picker/components/format/inputs.tsx"],"sourcesContent":["import { defineComponent, PropType, reactive, watch } from 'vue';\nimport { throttle } from 'lodash-es';\nimport { Color, getColorFormatInputs, getColorFormatMap } from '@tdesign/common-js/color-picker/index';\nimport props from '../../props';\nimport TInput from '../../../input';\nimport TInputNumber from '../../../input-number';\n\nexport default defineComponent({\n  name: 'FormatInputs',\n  inheritAttrs: false,\n  props: {\n    ...props,\n    color: {\n      type: Object as PropType<Color>,\n    },\n    onInputChange: {\n      type: Function,\n      default: () => {\n        return () => {};\n      },\n    },\n  },\n  setup(props) {\n    const modelValue = reactive<any>({});\n    const lastModelValue = reactive<any>({});\n\n    // 更新 modelValue\n    const updateModelValue = () => {\n      const { format, color } = props;\n      if (!color) return;\n      const values = getColorFormatMap(color, 'encode')[format];\n      // @ts-ignore\n      values.a = Math.round(color.alpha * 100);\n      Object.keys(values).forEach((key) => {\n        // @ts-ignore\n        modelValue[key] = values[key];\n        // @ts-ignore\n        lastModelValue[key] = values[key];\n      });\n    };\n\n    updateModelValue();\n    const throttleUpdate = throttle(updateModelValue, 100);\n\n    watch(() => {\n      const { saturation, hue, value, alpha } = props.color;\n      return [saturation, hue, value, alpha, props.format];\n    }, throttleUpdate);\n\n    const handleChange = (key: string, v: number | string) => {\n      if (v === lastModelValue[key]) return;\n\n      if (key === 'a') {\n        // 透明通道\n        // eslint-disable-next-line vue/no-mutating-props, no-param-reassign\n        props.color.alpha = (v as number) / 100;\n      } else if (key === 'hex' || key === 'css') {\n        // 纯字符串类型的格式\n        props.color.update(v as string);\n      } else {\n        // 需要进一步转换的格式\n        props.color.update(Color.object2color(modelValue, props.format));\n      }\n\n      const value = getColorFormatMap(props.color, 'decode')[props.format];\n      props.onInputChange(value, props.color.alpha, key, v);\n    };\n\n    return () => {\n      const inputProps = {\n        ...((props.inputProps as any) || {}),\n      };\n      return (\n        <div class=\"input-group\">\n          {getColorFormatInputs(props.format, props.enableAlpha).map((config) => {\n            return (\n              <div\n                class=\"input-group__item\"\n                key={config.key}\n                style={{\n                  flex: config.flex || 1,\n                }}\n              >\n                {config.type === 'input' ? (\n                  <TInput\n                    {...inputProps}\n                    align=\"center\"\n                    size=\"small\"\n                    disabled={props.disabled}\n                    v-model={modelValue[config.key]}\n                    maxlength={props.format === 'HEX' ? 9 : undefined}\n                    title={modelValue[config.key]}\n                    onBlur={(v: string) => handleChange(config.key, v)}\n                    onEnter={(v: string) => handleChange(config.key, v)}\n                  />\n                ) : (\n                  <TInputNumber\n                    {...inputProps}\n                    align=\"center\"\n                    size=\"small\"\n                    disabled={props.disabled}\n                    v-model={modelValue[config.key]}\n                    title={modelValue[config.key]}\n                    min={config.min}\n                    max={config.max}\n                    step={1}\n                    format={config.format}\n                    theme=\"normal\"\n                    onBlur={(v: number) => handleChange(config.key, v)}\n                    onEnter={(v: number) => handleChange(config.key, v)}\n                  />\n                )}\n              </div>\n            );\n          })}\n        </div>\n      );\n    };\n  },\n});\n"],"names":["defineComponent","name","inheritAttrs","props","_objectSpread","color","type","Object","onInputChange","Function","default","setup","modelValue","reactive","lastModelValue","updateModelValue","format","values","getColorFormatMap","a","Math","round","alpha","keys","forEach","key","throttleUpdate","throttle","watch","_props2$color","saturation","hue","value","handleChange","v","update","Color","object2color","inputProps","_createVNode","getColorFormatInputs","enableAlpha","map","config","flex","TInput","_mergeProps","disabled","onUpdateModelValue","$event","onBlur","onEnter","min","max"],"mappings":"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"}