UNPKG

tdesign-vue-next

Version:
1 lines 24.8 kB
{"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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"}