{"version":3,"file":"index.mjs","sources":["../../../../../components/color-picker/components/panel/index.tsx"],"sourcesContent":["import { computed, defineComponent, ref, toRefs, watch } from 'vue';\nimport { cloneDeep, isNull, isUndefined } from 'lodash-es';\nimport {\n  Color,\n  DEFAULT_COLOR,\n  DEFAULT_LINEAR_GRADIENT,\n  DEFAULT_SYSTEM_SWATCH_COLORS,\n  getColorObject,\n  GradientColorPoint,\n  initColorFormat,\n  TD_COLOR_USED_COLORS_MAX_SIZE,\n} from '@tdesign/common-js/color-picker/index';\nimport { useCommonClassName, useConfig, useDefaultValue, useVModel } from '@tdesign/shared-hooks';\nimport props from '../../color-picker-panel-props';\nimport { useBaseClassName } from '../../hooks';\nimport type { ColorPickerChangeTrigger, TdColorPickerProps } from '../../type';\nimport type { TdColorModes } from '../../types';\nimport FormatPanel from '../format';\nimport AlphaSlider from './alpha';\nimport PanelHeader from './header';\nimport HueSlider from './hue';\nimport LinearGradient from './linear-gradient';\nimport SaturationPanel from './saturation';\nimport SwatchesPanel from './swatches';\n\nexport default defineComponent({\n  name: 'ColorPanel',\n  props: {\n    ...props,\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    const [innerRecentColors, setInnerRecentColors] = useDefaultValue(\n      recentColors,\n      props.defaultRecentColors,\n      props.onRecentColorsChange,\n      'recentColors',\n    );\n\n    const getModeByColor = (input: string) => {\n      if (props.colorModes.length === 1) return props.colorModes[0];\n      return props.colorModes.includes('linear-gradient') && Color.isGradientColor(input)\n        ? 'linear-gradient'\n        : 'monochrome';\n    };\n    const mode = ref<TdColorModes>(getModeByColor(innerValue.value));\n\n    const isGradient = computed(() => mode.value === 'linear-gradient');\n    const defaultEmptyColor = computed(() => (isGradient.value ? DEFAULT_LINEAR_GRADIENT : DEFAULT_COLOR));\n\n    const color = ref(new Color(innerValue.value || defaultEmptyColor.value));\n\n    const formatModel = ref<TdColorPickerProps['format']>(initColorFormat(props.format, props.enableAlpha));\n\n    /**\n     * 添加最近使用颜色\n     * @returns void\n     */\n    const addRecentlyUsedColor = () => {\n      if (innerRecentColors.value === null || innerRecentColors.value === false) {\n        return;\n      }\n      const colors = cloneDeep(innerRecentColors.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      setInnerRecentColors(colors);\n    };\n\n    /**\n     * onChange\n     * @param trigger\n     */\n    const emitColorChange = (trigger?: ColorPickerChangeTrigger) => {\n      const value = color.value.getFormattedColor(props.format, props.enableAlpha);\n      setInnerValue(value, {\n        color: getColorObject(color.value),\n        trigger: trigger || 'palette-saturation-brightness',\n      });\n    };\n\n    watch(\n      () => innerValue.value,\n      (newColor) => {\n        const newMode = getModeByColor(newColor);\n        mode.value = newMode;\n        color.value.isGradient = newMode === 'linear-gradient';\n        const currentColor = color.value.getFormattedColor(props.format, props.enableAlpha);\n        if (currentColor !== newColor) {\n          color.value.update(newColor);\n        }\n      },\n    );\n\n    /**\n     * mode change\n     * @param newMode\n     * @returns\n     */\n    const handleModeChange = (newMode: TdColorModes) => {\n      mode.value = newMode;\n\n      const isGradientMode = newMode === 'linear-gradient';\n      color.value.isGradient = isGradientMode;\n\n      if (isGradientMode) {\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 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      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 = (value: string, trigger: ColorPickerChangeTrigger) => {\n      const newMode = getModeByColor(value);\n      mode.value = newMode;\n      color.value.isGradient = newMode === 'linear-gradient';\n      color.value.update(value);\n      emitColorChange(trigger);\n    };\n\n    return () => {\n      const baseProps = {\n        color: color.value,\n        disabled: props.disabled,\n      };\n\n      // 只支持渐变模式\n      const onlySupportGradient = props.colorModes.length === 1 && props.colorModes.includes('linear-gradient');\n\n      // 最近使用颜色\n      let recentColors = innerRecentColors.value;\n      if (onlySupportGradient && Array.isArray(recentColors)) {\n        recentColors = recentColors.filter((color) => Color.isGradientColor(color));\n      }\n      const showUsedColors = !!Array.isArray(recentColors);\n\n      // 系统预设颜色\n      let systemColors = props.swatchColors;\n      if (isUndefined(systemColors)) {\n        systemColors = [...DEFAULT_SYSTEM_SWATCH_COLORS];\n      }\n      if (isNull(systemColors)) {\n        systemColors = [];\n      }\n      if (onlySupportGradient) {\n        systemColors = systemColors.filter((color) => Color.isGradientColor(color));\n      }\n      const showSystemColors = Array.isArray(systemColors) && systemColors.length;\n\n      const renderSwatches = () => {\n        if (!showSystemColors && !showUsedColors) return null;\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={recentColors as string[]}\n                  handleAddColor={addRecentlyUsedColor}\n                  onSetColor={(color: string) => handleSetColor(color, 'recent')}\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(color, 'preset')}\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 {...props} color={color.value} format={formatModel.value} onInputChange={handleInputChange} />\n            {renderSwatches()}\n          </div>\n        </div>\n      );\n    };\n  },\n});\n"],"names":["defineComponent","name","props","_objectSpread","setup","baseClassName","useBaseClassName","_useCommonClassName","useCommonClassName","STATUS","_useConfig","useConfig","t","globalConfig","statusClassNames","value","_toRefs","toRefs","inputValue","modelValue","recentColors","_useVModel","useVModel","defaultValue","onChange","_useVModel2","_slicedToArray","innerValue","setInnerValue","_useDefaultValue","useDefaultValue","defaultRecentColors","onRecentColorsChange","_useDefaultValue2","innerRecentColors","setInnerRecentColors","getModeByColor","input","colorModes","length","includes","Color","isGradientColor","mode","ref","isGradient","computed","defaultEmptyColor","DEFAULT_LINEAR_GRADIENT","DEFAULT_COLOR","color","formatModel","initColorFormat","format","enableAlpha","addRecentlyUsedColor","colors","cloneDeep","currentColor","linearGradient","rgba","index","indexOf","splice","unshift","TD_COLOR_USED_COLORS_MAX_SIZE","handleRecentlyUsedColorsChange","emitColorChange","trigger","getFormattedColor","getColorObject","watch","newColor","newMode","update","handleModeChange","isGradientMode","gradientColors","handleSatAndValueChange","_ref","saturation","_color$value","sat","val","changeTrigger","handleHueChange","hue","_props2$onPaletteBarC","onPaletteBarChange","handleAlphaChange","alpha","handleInputChange","handleGradientChange","key","_ref2","payload","gradientDegree","gradientSelectedId","handleSetColor","baseProps","disabled","onlySupportGradient","Array","isArray","filter","showUsedColors","systemColors","swatchColors","isUndefined","_toConsumableArray","DEFAULT_SYSTEM_SWATCH_COLORS","isNull","showSystemColors","renderSwatches","_createVNode","_Fragment","concat","SwatchesPanel","_mergeProps","recentColorTitle","onSetColor","swatchColorTitle","PanelHeader","LinearGradient","enableMultipleGradient","SaturationPanel","HueSlider","AlphaSlider","showPrimaryColorPreview","background","FormatPanel"],"mappings":"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"}