tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 28.3 kB
Source Map (JSON)
{"version":3,"file":"color-picker.mjs","sources":["../../src/color-picker/color-picker.tsx"],"sourcesContent":["import { defineComponent, ref, watch, computed, onMounted, nextTick, toRefs } from 'vue';\nimport props from './props';\nimport config from '../config';\nimport { Popup as TPopup } from '../popup';\nimport type { ColorPickerChangeTrigger } from './type';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useClass';\nimport useVModel from '../hooks/useVModel';\nimport { getFormatList, genSwatchList, getCoordinate } from './helper';\nimport { Color, getColorObject } from '../_common/js/color-picker';\nimport { DEFAULT_COLOR } from '../_common/js/color-picker/constants';\nimport { ALPHA_MAX, HUE_MAX } from './constants';\n\nconst { prefix } = config;\n\nexport default defineComponent({\n name: `${prefix}-color-picker`,\n components: {\n TPopup,\n },\n props,\n setup(props) {\n const colorPickerClass = usePrefixClass('color-picker');\n const panelRect = ref<HTMLElement>();\n const hueSliderRect = ref<HTMLElement>();\n const alphaSliderRect = ref<HTMLElement>();\n const { value, modelValue } = toRefs(props);\n\n const [innerValue = ref(DEFAULT_COLOR), setPickerValue] = useVModel(\n value,\n modelValue,\n props.defaultValue,\n props.onChange,\n );\n\n const saturationThumbStyle = ref({\n left: '0',\n top: '0',\n });\n const hueSliderStyle = ref({\n left: '0',\n color: '',\n });\n const alphaSliderStyle = ref({\n left: '0',\n color: '',\n });\n const sliderInfo = ref({\n value: 0,\n });\n const color = new Color(props.defaultValue || props.value || DEFAULT_COLOR);\n const formatList = ref<[string, Array<string | number>]>(getFormatList(props.format, color));\n const innerSwatchList = computed(() => genSwatchList(props.swatchColors));\n\n const renderTNodeJSX = useTNodeJSX();\n\n const getSliderThumbStyle = ({ value, maxValue }: { value: number; maxValue: number }) => {\n const dom = hueSliderRect.value;\n const { width } = dom.getBoundingClientRect();\n if (!width) {\n return;\n }\n\n const left = Math.round((value / maxValue) * 100);\n\n return {\n left: `${left}%`,\n color: color.rgb,\n };\n };\n\n const getSaturationThumbStyle = ({ saturation, value }: { saturation: number; value: number }) => {\n const { width, height } = panelRect.value.getBoundingClientRect();\n const top = Math.round((1 - value) * height);\n const left = Math.round(saturation * width);\n\n return {\n color: color.rgb,\n left: `${left}px`,\n top: `${top}px`,\n };\n };\n\n const setCoreStyle = () => {\n sliderInfo.value = { value: color.hue };\n formatList.value = getFormatList(props.format, color);\n if (isMultiple.value) {\n const hue = getSliderThumbStyle({ value: color.hue, maxValue: HUE_MAX });\n if (hue) {\n hueSliderStyle.value = hue;\n }\n const alpha = getSliderThumbStyle({ value: color.alpha * 100, maxValue: ALPHA_MAX });\n if (alpha) {\n alphaSliderStyle.value = alpha;\n }\n\n saturationThumbStyle.value = getSaturationThumbStyle({\n saturation: color.saturation,\n value: color.value,\n });\n }\n };\n const formatValue = () => {\n return color.getFormatsColorMap()[props.format] || color.css;\n };\n\n const emitColorChange = (trigger: ColorPickerChangeTrigger) => {\n setPickerValue?.(formatValue(), {\n trigger,\n color: getColorObject(color),\n });\n };\n\n const clickSwatch = (swatch: string) => {\n color.update(swatch);\n emitColorChange('preset');\n setCoreStyle();\n };\n const isMultiple = computed(() => {\n return props.type === 'multiple';\n });\n\n const getSaturationAndValueByCoordinate = (coordinate: { x: number; y: number }) => {\n const { width, height } = panelRect.value.getBoundingClientRect();\n const { x, y } = coordinate;\n let saturation = x / width;\n let value = 1 - y / height;\n saturation = Math.min(1, Math.max(0, saturation));\n value = Math.min(1, Math.max(0, value));\n\n return {\n saturation,\n value,\n };\n };\n\n const onChangeSaturation = ({ saturation, value }: { saturation: number; value: number }) => {\n const { saturation: sat, value: val } = color;\n if (value !== val && saturation !== sat) {\n color.saturation = saturation;\n color.value = value;\n } else if (saturation !== sat) {\n color.saturation = saturation;\n } else if (value !== val) {\n color.value = value;\n } else {\n return;\n }\n\n props.onPaletteBarChange?.({\n color: getColorObject(color),\n });\n\n setCoreStyle();\n };\n\n const handleSaturationDrag = (e: TouchEvent) => {\n const coordinate = getCoordinate(e, panelRect.value.getBoundingClientRect(), props.fixed);\n\n const { saturation, value } = getSaturationAndValueByCoordinate(coordinate);\n\n onChangeSaturation({ saturation, value });\n };\n\n const onChangeSlider = ({ value, isAlpha }: { value: number; isAlpha: boolean }) => {\n if (isAlpha) {\n color.alpha = value / 100;\n } else {\n color.hue = value;\n }\n\n emitColorChange(isAlpha ? 'palette-alpha-bar' : 'palette-hue-bar');\n\n setCoreStyle();\n };\n\n const handleSliderDrag = (e: TouchEvent, isAlpha = false) => {\n const dom = isAlpha ? alphaSliderRect.value : hueSliderRect.value;\n const rect = dom.getBoundingClientRect();\n\n const { width } = rect;\n const coordinate = getCoordinate(e, rect);\n const { x } = coordinate;\n const maxValue = isAlpha ? ALPHA_MAX : HUE_MAX;\n\n const value = Math.min(maxValue, Math.max(0, Math.round((x / width) * maxValue * 100) / 100));\n onChangeSlider({ value, isAlpha });\n };\n\n const handleDiffDrag = (e: TouchEvent, dragType: 'saturation' | 'hue-slider' | 'alpha-slider') => {\n e.preventDefault();\n e.stopPropagation();\n const callbackMap = {\n saturation: () => handleSaturationDrag(e),\n 'hue-slider': () => handleSliderDrag(e),\n 'alpha-slider': () => handleSliderDrag(e, true),\n };\n\n callbackMap[dragType]?.();\n };\n\n const onTouchStart = (e: TouchEvent, dragType: 'saturation' | 'hue-slider' | 'alpha-slider') => {\n handleDiffDrag(e, dragType);\n };\n\n const onTouchMove = (e: TouchEvent, dragType: 'saturation' | 'hue-slider' | 'alpha-slider') => {\n handleDiffDrag(e, dragType);\n };\n\n const onTouchEnd = (e: TouchEvent, dragType: 'saturation' | 'hue-slider' | 'alpha-slider') => {\n handleDiffDrag(e, dragType);\n };\n\n const updateColor = () => {\n const result = innerValue.value || DEFAULT_COLOR;\n color.update(result);\n };\n\n const init = () => {\n updateColor();\n setCoreStyle();\n };\n\n onMounted(() => {\n init();\n });\n\n return () => {\n const { type, format, enableAlpha } = props;\n\n const header = renderTNodeJSX('header');\n const footer = renderTNodeJSX('footer');\n\n const inner = (\n <div class={`${colorPickerClass.value}__panel`}>\n <div class={`${colorPickerClass.value}__body ${colorPickerClass.value}__body--${type}`}>\n {isMultiple.value && (\n <div\n ref={panelRect}\n class={`${colorPickerClass.value}__saturation`}\n style={{ background: `hsl(${sliderInfo.value.value}, 100%, 50%)` }}\n onTouchstart={(e) => onTouchStart(e, 'saturation')}\n onTouchmove={(e) => onTouchMove(e, 'saturation')}\n onTouchend={(e) => onTouchEnd(e, 'saturation')}\n >\n <div class={`${colorPickerClass.value}__thumb`} style={saturationThumbStyle.value}></div>\n </div>\n )}\n\n {isMultiple.value && (\n <div class={`${colorPickerClass.value}__sliders-wrapper`}>\n <div class={`${colorPickerClass.value}__sliders`}>\n <div\n class={`${colorPickerClass.value}__slider-wrapper ${colorPickerClass.value}__slider-wrapper--hue-type`}\n >\n <div\n class={`${colorPickerClass.value}__slider`}\n ref={hueSliderRect}\n onTouchstart={(e) => onTouchStart(e, 'hue-slider')}\n onTouchmove={(e) => onTouchMove(e, 'hue-slider')}\n onTouchend={(e) => onTouchEnd(e, 'hue-slider')}\n >\n <div class={`${colorPickerClass.value}__rail`}></div>\n <div class={`${colorPickerClass.value}__thumb`} style={hueSliderStyle.value}></div>\n </div>\n </div>\n\n {enableAlpha && (\n <div\n class={`${colorPickerClass.value}__slider-wrapper ${colorPickerClass.value}__slider-wrapper--alpha-type`}\n >\n <div class={`${colorPickerClass.value}__slider-padding `}></div>\n <div\n class={`${colorPickerClass.value}__slider`}\n ref={alphaSliderRect}\n onTouchstart={(e) => onTouchStart(e, 'alpha-slider')}\n onTouchmove={(e) => onTouchMove(e, 'alpha-slider')}\n onTouchend={(e) => onTouchEnd(e, 'alpha-slider')}\n >\n <div\n class={`${colorPickerClass.value}__rail`}\n style={{\n background: `linear-gradient(to right, rgba(0, 0, 0, 0), ${alphaSliderStyle.value?.color})`,\n }}\n ></div>\n <div class={`${colorPickerClass.value}__thumb`} style={alphaSliderStyle.value}></div>\n </div>\n </div>\n )}\n </div>\n </div>\n )}\n\n {isMultiple.value && (\n <div class={`${colorPickerClass.value}__format`}>\n <div class={`${colorPickerClass.value}__format-item ${colorPickerClass.value}__format-item--first`}>\n {formatList.value[0]}\n </div>\n <div class={`${colorPickerClass.value}__format-item ${colorPickerClass.value}__format-item--second`}>\n <div class={`${colorPickerClass.value}__format-inputs`}>\n {formatList.value[1].map((formatItem, formatIndex) => (\n <div\n class={`${colorPickerClass.value}__format-input ${colorPickerClass.value}__format-input--${formatIndex === formatList.value[1].length - 1 && formatList.value[1].length === 2 ? 'fixed' : 'base'}`}\n key={formatIndex}\n >\n {formatItem}\n </div>\n ))}\n </div>\n </div>\n </div>\n )}\n\n {innerSwatchList.value.length && (\n <div class={`${colorPickerClass.value}__swatches-wrap`}>\n <div class={`${colorPickerClass.value}__swatches`}>\n {isMultiple.value && <div class={`${colorPickerClass.value}__swatches-title`}>系统预设色彩</div>}\n <div class={`${colorPickerClass.value}__swatches-items`}>\n {innerSwatchList.value.map((swatch) => (\n <div\n class={`${colorPickerClass.value}__swatches-item`}\n key={swatch}\n onClick={() => clickSwatch(swatch)}\n >\n <div\n class={`${colorPickerClass.value}__swatches-inner`}\n style={{ backgroundColor: swatch }}\n ></div>\n </div>\n ))}\n </div>\n </div>\n </div>\n )}\n </div>\n </div>\n );\n return inner;\n };\n },\n});\n"],"names":["prefix","config","defineComponent","name","components","TPopup","props","setup","colorPickerClass","usePrefixClass","panelRect","ref","hueSliderRect","alphaSliderRect","_toRefs","toRefs","value","modelValue","_useVModel","useVModel","defaultValue","onChange","_useVModel2","_slicedToArray","_useVModel2$","innerValue","DEFAULT_COLOR","setPickerValue","saturationThumbStyle","left","top","hueSliderStyle","color","alphaSliderStyle","sliderInfo","Color","formatList","getFormatList","format","innerSwatchList","computed","genSwatchList","swatchColors","renderTNodeJSX","useTNodeJSX","getSliderThumbStyle","maxValue","dom","_dom$getBoundingClien","getBoundingClientRect","width","Math","round","rgb","getSaturationThumbStyle","saturation","_ref2","_panelRect$value$getB","height","setCoreStyle","hue","isMultiple","HUE_MAX","alpha","ALPHA_MAX","formatValue","getFormatsColorMap","css","emitColorChange","trigger","getColorObject","clickSwatch","swatch","update","type","getSaturationAndValueByCoordinate","coordinate","_panelRect$value$getB2","x","y","min","max","onChangeSaturation","_props2$onPaletteBarC","_ref3","sat","val","onPaletteBarChange","handleSaturationDrag","e","getCoordinate","fixed","_getSaturationAndValu","onChangeSlider","isAlpha","handleSliderDrag","arguments","length","undefined","rect","handleDiffDrag","dragType","_callbackMap$dragType","preventDefault","stopPropagation","callbackMap","hueSlider","alphaSlider","call","onTouchStart","onTouchMove","onTouchEnd","updateColor","result","init","onMounted","_alphaSliderStyle$val","enableAlpha","header","footer","inner","_createVNode","concat","background","onTouchstart","onTouchmove","onTouchend","map","formatItem","formatIndex","onClick","backgroundColor"],"mappings":"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"}