{"version":3,"file":"index.mjs","sources":["../../../../../components/color-picker/components/panel/index.tsx"],"sourcesContent":["import { defineComponent, ref, toRefs, watch, computed } from 'vue';\nimport { useCommonClassName, useConfig } from '../../../hooks/useConfig';\nimport props from '../../props';\nimport {\n  DEFAULT_COLOR,\n  DEFAULT_LINEAR_GRADIENT,\n  TD_COLOR_USED_COLORS_MAX_SIZE,\n  DEFAULT_SYSTEM_SWATCH_COLORS,\n} from '@tdesign/common-js/color-picker/constants';\nimport PanelHeader from './header';\nimport LinearGradient from './linear-gradient';\nimport SaturationPanel from './saturation';\nimport HueSlider from './hue';\nimport AlphaSlider from './alpha';\nimport FormatPanel from '../format';\nimport SwatchesPanel from './swatches';\nimport { Color, getColorObject, GradientColorPoint } from '../../utils';\nimport { TdColorPickerProps, ColorPickerChangeTrigger } from '../../type';\nimport { TdColorModes } from '../../types';\nimport { useBaseClassName } from '../../hooks';\nimport useVModel from '../../../hooks/useVModel';\nimport useDefaultValue from '../../../hooks/useDefaultValue';\nimport { cloneDeep } from 'lodash-es';\n\nexport default defineComponent({\n  name: 'ColorPanel',\n  props: {\n    ...props,\n    togglePopup: {\n      type: Function,\n    },\n  },\n  setup(props) {\n    const baseClassName = useBaseClassName();\n    const { STATUS } = useCommonClassName();\n    const { t, globalConfig } = useConfig('colorPicker');\n    const statusClassNames = STATUS.value;\n    const { value: inputValue, modelValue, recentColors } = toRefs(props);\n    const [innerValue, setInnerValue] = useVModel(inputValue, modelValue, props.defaultValue, props.onChange);\n\n    const defaultEmptyColor = computed(() => (isGradient.value ? DEFAULT_LINEAR_GRADIENT : DEFAULT_COLOR));\n\n    const mode = ref<TdColorModes>(\n      props.colorModes?.length !== 1 && innerValue.value?.includes('linear-gradient')\n        ? 'linear-gradient'\n        : props.colorModes?.length === 1\n        ? props.colorModes[0]\n        : 'monochrome',\n    );\n    const isGradient = computed(() => mode.value === 'linear-gradient');\n\n    const color = ref(new Color(innerValue.value || defaultEmptyColor.value));\n    const updateColor = () => color.value.update(innerValue.value || defaultEmptyColor.value);\n\n    const formatModel = ref<TdColorPickerProps['format']>(color.value.isGradient ? 'CSS' : 'RGB');\n\n    const [recentlyUsedColors, setRecentlyUsedColors] = useDefaultValue(\n      recentColors,\n      props.defaultRecentColors,\n      props.onRecentColorsChange,\n      'recentColors',\n    );\n\n    const formatValue = () => {\n      // 渐变模式下直接输出css样式\n      if (mode.value === 'linear-gradient') {\n        return color.value.linearGradient;\n      }\n      const colorMap = color.value.getFormatsColorMap();\n      return Object.keys(colorMap).includes(props.format)\n        ? colorMap[props.format as keyof typeof colorMap]\n        : color.value.css;\n    };\n\n    /**\n     * 添加最近使用颜色\n     * @returns void\n     */\n    const addRecentlyUsedColor = () => {\n      if (recentlyUsedColors.value === null || recentlyUsedColors.value === false) {\n        return;\n      }\n      const colors = cloneDeep(recentlyUsedColors.value as string[]) || [];\n      const currentColor = color.value.isGradient ? color.value.linearGradient : color.value.rgba;\n      const index = colors.indexOf(currentColor);\n      if (index > -1) {\n        colors.splice(index, 1);\n      }\n      colors.unshift(currentColor);\n      if (colors.length > TD_COLOR_USED_COLORS_MAX_SIZE) {\n        colors.length = TD_COLOR_USED_COLORS_MAX_SIZE;\n      }\n      handleRecentlyUsedColorsChange(colors);\n    };\n\n    /**\n     * 最近使用颜色变更时触发\n     * @param colors\n     */\n    const handleRecentlyUsedColorsChange = (colors: string[]) => {\n      setRecentlyUsedColors(colors);\n    };\n\n    /**\n     * onChange\n     * @param trigger\n     */\n    const emitColorChange = (trigger?: ColorPickerChangeTrigger) => {\n      setInnerValue(formatValue(), {\n        color: getColorObject(color.value),\n        trigger: trigger || 'palette-saturation-brightness',\n      });\n    };\n\n    watch(() => [props.defaultValue, props.enableAlpha], updateColor);\n\n    watch(\n      () => innerValue.value,\n      (newColor) => {\n        if (newColor !== formatValue()) {\n          updateColor();\n          mode.value = color.value.isGradient ? 'linear-gradient' : 'monochrome';\n        }\n      },\n    );\n\n    /**\n     * mode change\n     * @param value\n     * @returns\n     */\n    const handleModeChange = (value: TdColorModes) => {\n      mode.value = value;\n      if (value === 'linear-gradient') {\n        color.value.update(\n          color.value.gradientColors.length > 0 ? color.value.linearGradient : DEFAULT_LINEAR_GRADIENT,\n        );\n      } else {\n        color.value.update(color.value.rgba);\n      }\n\n      emitColorChange();\n    };\n\n    /**\n     * 格式变化\n     * @param format\n     * @returns\n     */\n    const handleFormatModeChange = (format: TdColorPickerProps['format']) => (formatModel.value = format);\n\n    /**\n     * 饱和度亮度变化\n     * @param param0\n     */\n    const handleSatAndValueChange = ({ saturation, value }: { saturation: number; value: number }) => {\n      const { saturation: sat, value: val } = color.value;\n      let changeTrigger: ColorPickerChangeTrigger = 'palette-saturation-brightness';\n      if (value !== val && saturation !== sat) {\n        color.value.saturation = saturation;\n        color.value.value = value;\n        changeTrigger = 'palette-saturation-brightness';\n      } else if (saturation !== sat) {\n        color.value.saturation = saturation;\n        changeTrigger = 'palette-saturation';\n      } else if (value !== val) {\n        color.value.value = value;\n        changeTrigger = 'palette-brightness';\n      } else {\n        return;\n      }\n\n      color.value.update(color.value.rgba);\n      emitColorChange(changeTrigger);\n    };\n\n    /**\n     * 色相变化\n     * @param hue\n     */\n    const handleHueChange = (hue: number) => {\n      color.value.hue = hue;\n      emitColorChange('palette-hue-bar');\n      props.onPaletteBarChange?.({\n        color: getColorObject(color.value),\n      });\n    };\n\n    /**\n     * 透明度变化\n     * @param alpha\n     */\n    const handleAlphaChange = (alpha: number) => {\n      color.value.alpha = alpha;\n      emitColorChange('palette-alpha-bar');\n    };\n\n    /**\n     * 输入框触发改变\n     * @param input\n     * @param alpha\n     */\n    const handleInputChange = (input: string, alpha?: number) => {\n      color.value.update(input);\n      color.value.alpha = alpha;\n      emitColorChange('input');\n    };\n\n    /**\n     * 渐变改变\n     * @param param0\n     */\n    const handleGradientChange = ({\n      key,\n      payload,\n    }: {\n      key: 'degree' | 'selectedId' | 'colors';\n      payload: number | string | GradientColorPoint[];\n    }) => {\n      let trigger: ColorPickerChangeTrigger = 'palette-saturation-brightness';\n      switch (key) {\n        case 'degree':\n          color.value.gradientDegree = payload as number;\n          trigger = 'input';\n          break;\n        case 'selectedId':\n          color.value.gradientSelectedId = payload as string;\n          break;\n        case 'colors':\n          color.value.gradientColors = payload as GradientColorPoint[];\n          break;\n      }\n      emitColorChange(trigger);\n    };\n\n    /**\n     * 色块点击\n     * @param type\n     * @param value\n     */\n    const handleSetColor = (type: 'system' | 'used', value: string) => {\n      const isGradientValue = Color.isGradientColor(value);\n      if (isGradientValue) {\n        if (props.colorModes.includes('linear-gradient')) {\n          mode.value = 'linear-gradient';\n          color.value.update(value);\n          color.value.updateCurrentGradientColor();\n        } else {\n          console.warn('该模式不支持渐变色');\n        }\n      } else if (mode.value === 'linear-gradient') {\n        color.value.updateStates(value);\n        color.value.updateCurrentGradientColor();\n      } else {\n        color.value.update(value);\n      }\n      emitColorChange();\n    };\n\n    return () => {\n      const baseProps = {\n        color: color.value,\n        disabled: props.disabled,\n      };\n      const showUsedColors = recentlyUsedColors.value !== null && recentlyUsedColors.value !== false;\n\n      let systemColors = props.swatchColors;\n      if (systemColors === undefined) {\n        systemColors = [...DEFAULT_SYSTEM_SWATCH_COLORS];\n      }\n      const showSystemColors = systemColors?.length > 0;\n\n      const renderSwatches = () => {\n        if (!showSystemColors && !showUsedColors) {\n          return null;\n        }\n        return (\n          <>\n            <div class={`${baseClassName.value}__swatches-wrap`}>\n              {showUsedColors ? (\n                <SwatchesPanel\n                  {...baseProps}\n                  title={t(globalConfig.value.recentColorTitle)}\n                  editable\n                  colors={recentlyUsedColors.value as string[]}\n                  handleAddColor={addRecentlyUsedColor}\n                  onSetColor={(color: string) => handleSetColor('used', color)}\n                  onChange={handleRecentlyUsedColorsChange}\n                />\n              ) : null}\n              {showSystemColors ? (\n                <SwatchesPanel\n                  {...baseProps}\n                  title={t(globalConfig.value.swatchColorTitle)}\n                  colors={systemColors}\n                  onSetColor={(color: string) => handleSetColor('system', color)}\n                />\n              ) : null}\n            </div>\n          </>\n        );\n      };\n\n      return (\n        <div class={[`${baseClassName.value}__panel`, props.disabled ? statusClassNames.disabled : false]}>\n          <PanelHeader {...props} mode={mode.value} onModeChange={handleModeChange} />\n          <div class={[`${baseClassName.value}__body`]}>\n            {isGradient.value ? (\n              <LinearGradient\n                {...baseProps}\n                onChange={handleGradientChange}\n                enableMultipleGradient={props.enableMultipleGradient}\n              />\n            ) : null}\n\n            <SaturationPanel {...baseProps} onChange={handleSatAndValueChange} />\n\n            <div class={[`${baseClassName.value}__sliders-wrapper`]}>\n              <div class={[`${baseClassName.value}__sliders`]}>\n                <HueSlider {...baseProps} onChange={handleHueChange} />\n                {props.enableAlpha ? <AlphaSlider {...baseProps} onChange={handleAlphaChange} /> : null}\n              </div>\n\n              {props.showPrimaryColorPreview ? (\n                <div class={[`${baseClassName.value}__sliders-preview`, `${baseClassName.value}--bg-alpha`]}>\n                  <span\n                    class={`${baseClassName.value}__sliders-preview-inner`}\n                    style={{\n                      background: isGradient.value ? color.value.linearGradient : color.value.rgba,\n                    }}\n                  />\n                </div>\n              ) : null}\n            </div>\n\n            <FormatPanel\n              {...props}\n              color={color.value}\n              format={formatModel.value}\n              onModeChange={handleFormatModeChange}\n              onInputChange={handleInputChange}\n            />\n            {renderSwatches()}\n          </div>\n        </div>\n      );\n    };\n  },\n});\n"],"names":["defineComponent","name","props","_objectSpread","togglePopup","type","Function","setup","_props2$colorModes","_innerValue$value","_props2$colorModes2","baseClassName","useBaseClassName","_useCommonClassName","useCommonClassName","STATUS","_useConfig","useConfig","t","globalConfig","statusClassNames","value","_toRefs","toRefs","inputValue","modelValue","recentColors","_useVModel","useVModel","defaultValue","onChange","_useVModel2","_slicedToArray","innerValue","setInnerValue","defaultEmptyColor","computed","isGradient","DEFAULT_LINEAR_GRADIENT","DEFAULT_COLOR","mode","ref","colorModes","length","includes","color","Color","updateColor","update","formatModel","_useDefaultValue","useDefaultValue","defaultRecentColors","onRecentColorsChange","_useDefaultValue2","recentlyUsedColors","setRecentlyUsedColors","formatValue","linearGradient","colorMap","getFormatsColorMap","Object","keys","format","css","addRecentlyUsedColor","colors","cloneDeep","currentColor","rgba","index","indexOf","splice","unshift","TD_COLOR_USED_COLORS_MAX_SIZE","handleRecentlyUsedColorsChange","emitColorChange","trigger","getColorObject","watch","enableAlpha","newColor","handleModeChange","gradientColors","handleFormatModeChange","handleSatAndValueChange","_ref","saturation","_color$value","sat","val","changeTrigger","handleHueChange","hue","_props2$onPaletteBarC","onPaletteBarChange","handleAlphaChange","alpha","handleInputChange","input","handleGradientChange","key","_ref2","payload","gradientDegree","gradientSelectedId","handleSetColor","isGradientValue","isGradientColor","updateCurrentGradientColor","console","warn","updateStates","_systemColors","baseProps","disabled","showUsedColors","systemColors","swatchColors","_toConsumableArray","DEFAULT_SYSTEM_SWATCH_COLORS","showSystemColors","renderSwatches","_createVNode","_Fragment","concat","SwatchesPanel","_mergeProps","recentColorTitle","onSetColor","swatchColorTitle","PanelHeader","LinearGradient","enableMultipleGradient","SaturationPanel","HueSlider","AlphaSlider","showPrimaryColorPreview","background","FormatPanel"],"mappings":"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"}