{"version":3,"file":"linear-gradient.mjs","sources":["../../../../../components/color-picker/components/panel/linear-gradient.tsx"],"sourcesContent":["import { defineComponent, onBeforeUnmount, onMounted, reactive, ref, watch } from 'vue';\nimport { cloneDeep } from 'lodash-es';\nimport { GRADIENT_SLIDER_DEFAULT_WIDTH } from '@tdesign/common-js/color-picker/constants';\nimport { genGradientPoint, gradientColors2string, GradientColorPoint } from '../../utils';\nimport { InputNumber as TInputNumber } from '../../../input-number';\nimport { useBaseClassName } from '../../hooks';\nimport { useCommonClassName } from '@tdesign/shared-hooks';\nimport baseProps from './base-props';\n\nconst DELETE_KEYS: string[] = ['delete', 'backspace'];\n\nexport default defineComponent({\n  name: 'LinearGradient',\n  inheritAttrs: false,\n  props: {\n    ...baseProps,\n    enableMultipleGradient: {\n      type: Boolean,\n      default: true,\n    },\n  },\n  setup(props) {\n    const baseClassName = useBaseClassName();\n    const { STATUS } = useCommonClassName();\n    const statusClassNames = STATUS.value;\n    const refSlider = ref<HTMLElement>(null);\n    const sliderRect = reactive({\n      left: 0,\n      width: GRADIENT_SLIDER_DEFAULT_WIDTH,\n    });\n    const isDragging = ref<Boolean>(false);\n    const isMoved = ref<Boolean>(false);\n    const degree = ref(props.color.gradientDegree);\n    const selectedId = ref(props.color.gradientSelectedId);\n    const colors = ref<GradientColorPoint[]>(cloneDeep(props.color.gradientColors));\n\n    watch(\n      () => props.color.gradientDegree,\n      (value) => (degree.value = value),\n    );\n    watch(\n      () => props.color.gradientSelectedId,\n      (value) => (selectedId.value = value),\n    );\n    watch(\n      () => props.color.gradientColors,\n      (value) => {\n        colors.value = cloneDeep(value);\n      },\n      {\n        deep: true,\n      },\n    );\n\n    const handleChange = (key: 'degree' | 'selectedId' | 'colors', payload: any, addUsedColor?: boolean) => {\n      if (props.disabled) {\n        return;\n      }\n      props.onChange({\n        key,\n        payload,\n        addUsedColor,\n      });\n    };\n\n    const handleDegreeChange = (value: number) => {\n      if (props.disabled || value === props.color.gradientDegree) {\n        return;\n      }\n      degree.value = value;\n      handleChange('degree', value, true);\n    };\n\n    const handleSelectedIdChange = (value: string) => {\n      if (props.disabled) {\n        return;\n      }\n      selectedId.value = value;\n      handleChange('selectedId', value);\n    };\n\n    const handleColorsChange = (value: GradientColorPoint[], isEnded?: boolean) => {\n      if (props.disabled) {\n        return;\n      }\n      colors.value = value;\n      handleChange('colors', value, isEnded);\n    };\n\n    /**\n     * 设置bar的位置\n     * @param left\n     * @returns\n     */\n    const updateActiveThumbLeft = (left: number) => {\n      const index = colors.value.findIndex((c) => c.id === selectedId.value);\n      if (index === -1) {\n        return;\n      }\n      const point = colors.value[index];\n      left = Math.max(0, Math.min(sliderRect.width, left));\n      const percentLeft = (left / sliderRect.width) * 100;\n      colors.value.splice(index, 1, {\n        color: point.color,\n        left: percentLeft,\n        id: point.id,\n      });\n      handleColorsChange(colors.value);\n    };\n\n    // 移动开始\n    const handleStart = (id: string) => {\n      const rect = refSlider.value.getBoundingClientRect();\n      sliderRect.left = rect.left;\n      sliderRect.width = rect.width || GRADIENT_SLIDER_DEFAULT_WIDTH;\n      if (isDragging.value || props.disabled) {\n        return;\n      }\n      isMoved.value = false;\n      isDragging.value = true;\n      handleSelectedIdChange(id);\n      // 让slider获取焦点，以便键盘事件生效。\n      refSlider.value.focus();\n      window.addEventListener('mousemove', handleMove, false);\n      window.addEventListener('mouseup', handleEnd, false);\n      window.addEventListener('contextmenu', handleEnd, false);\n    };\n\n    // 移动中\n    const handleMove = (e: MouseEvent) => {\n      if (!isDragging.value || props.disabled) {\n        return;\n      }\n      const left = e.clientX - sliderRect.left;\n      isMoved.value = true;\n      updateActiveThumbLeft(left);\n    };\n\n    // 移动结束\n    const handleEnd = () => {\n      if (!isDragging.value) {\n        return;\n      }\n      setTimeout(() => {\n        isDragging.value = false;\n      }, 0);\n      if (isMoved.value) {\n        handleColorsChange(colors.value, true);\n        isMoved.value = false;\n      }\n      window.removeEventListener('mousemove', handleMove, false);\n      window.removeEventListener('mouseup', handleEnd, false);\n      window.removeEventListener('contextmenu', handleEnd, false);\n    };\n\n    const handleKeyup = (e: KeyboardEvent) => {\n      if (props.disabled) {\n        return;\n      }\n      const points = colors.value;\n      let pos = points.findIndex((c) => c.id === selectedId.value);\n      const { length } = points;\n      // 必须保证有两个点\n      if (DELETE_KEYS.includes(e.key.toLocaleLowerCase()) && length > 2 && pos >= 0 && pos <= length - 1) {\n        points.splice(pos, 1);\n        if (!points[pos]) {\n          // eslint-disable-next-line no-nested-ternary\n          pos = points[pos + 1] ? pos + 1 : points[pos - 1] ? pos - 1 : 0;\n        }\n        const current = points[pos];\n        handleColorsChange(points, true);\n        handleSelectedIdChange(current?.id);\n      }\n    };\n\n    const handleThumbBarClick = (e: MouseEvent) => {\n      if (props.disabled || !props.enableMultipleGradient) {\n        return;\n      }\n      const left = e.offsetX;\n      const percentLeft = (left / sliderRect.width) * 100;\n      const newPoint = genGradientPoint(percentLeft, props.color.rgba);\n      colors.value.push(newPoint);\n      handleColorsChange(colors.value, true);\n      handleSelectedIdChange(newPoint.id);\n    };\n\n    onMounted(() => {\n      const rect = refSlider.value.getBoundingClientRect();\n      sliderRect.left = rect.left;\n      sliderRect.width = rect.width || GRADIENT_SLIDER_DEFAULT_WIDTH;\n    });\n\n    onBeforeUnmount(() => {\n      window.removeEventListener('mousemove', handleMove, false);\n      window.removeEventListener('mouseup', handleEnd, false);\n      window.removeEventListener('contextmenu', handleEnd, false);\n    });\n\n    return () => {\n      const { linearGradient, gradientColors } = props.color;\n      const thumbBackground = gradientColors2string({\n        points: gradientColors,\n        degree: 90,\n      });\n      return (\n        <div class={`${baseClassName.value}__gradient`}>\n          <div class={`${baseClassName.value}__gradient-slider`}>\n            <div\n              class={[`${baseClassName.value}__slider`, `${baseClassName.value}--bg-alpha`]}\n              onKeyup={handleKeyup}\n              tabindex={0}\n              ref={refSlider}\n            >\n              <ul\n                class=\"gradient-thumbs\"\n                onClick={handleThumbBarClick}\n                style={{\n                  background: thumbBackground,\n                }}\n              >\n                {colors.value.map((t) => {\n                  const left = `${Math.round(t.left * 100) / 100}%`;\n                  return (\n                    <li\n                      class={[\n                        `${baseClassName.value}__thumb`,\n                        'gradient-thumbs__item',\n                        selectedId.value === t.id ? statusClassNames.active : '',\n                      ]}\n                      key={t.id}\n                      title={`${t.color} ${left}`}\n                      style={{\n                        color: t.color,\n                        left,\n                      }}\n                      onClick={(e: MouseEvent) => e.stopPropagation()}\n                      onMousedown={() => handleStart(t.id)}\n                    >\n                      <span class={['gradient-thumbs__item-inner', `${baseClassName.value}--bg-alpha`]}></span>\n                    </li>\n                  );\n                })}\n              </ul>\n            </div>\n          </div>\n          <div class={`${baseClassName.value}__gradient-degree`} title={`${degree.value}deg`}>\n            <TInputNumber\n              size=\"small\"\n              theme=\"normal\"\n              min={0}\n              max={360}\n              step={1}\n              format={(value: number) => `${value}°`}\n              v-model={degree.value}\n              onBlur={handleDegreeChange}\n              onEnter={handleDegreeChange}\n              disabled={props.disabled}\n            />\n          </div>\n          <div class={[`${baseClassName.value}__gradient-preview`, `${baseClassName.value}--bg-alpha`]}>\n            <span\n              class=\"preview-inner\"\n              style={{\n                background: linearGradient,\n              }}\n            ></span>\n          </div>\n        </div>\n      );\n    };\n  },\n});\n"],"names":["DELETE_KEYS","defineComponent","name","inheritAttrs","props","_objectSpread","baseProps","enableMultipleGradient","type","Boolean","setup","baseClassName","useBaseClassName","_useCommonClassName","useCommonClassName","STATUS","statusClassNames","value","refSlider","ref","sliderRect","reactive","left","width","GRADIENT_SLIDER_DEFAULT_WIDTH","isDragging","isMoved","degree","color","gradientDegree","selectedId","gradientSelectedId","colors","cloneDeep","gradientColors","watch","deep","handleChange","key","payload","addUsedColor","disabled","onChange","handleDegreeChange","handleSelectedIdChange","handleColorsChange","isEnded","updateActiveThumbLeft","index","findIndex","c","id","point","Math","max","min","percentLeft","splice","handleStart","rect","getBoundingClientRect","focus","window","addEventListener","handleMove","handleEnd","e","clientX","setTimeout","removeEventListener","handleKeyup","points","pos","length","includes","toLocaleLowerCase","current","handleThumbBarClick","offsetX","newPoint","genGradientPoint","rgba","push","onMounted","onBeforeUnmount","_props$color","linearGradient","thumbBackground","gradientColors2string","_createVNode","concat","background","map","t","round","active","onClick","stopPropagation","onMousedown","TInputNumber","format","onUpdateModelValue","$event"],"mappings":"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"}