UNPKG

tdesign-vue-next

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