1 line
29 KiB
JSON
1 line
29 KiB
JSON
|
{"ast":null,"code":"\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React, { useContext, useMemo } from 'react';\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport ContextIsolator from '../_util/ContextIsolator';\nimport genPurePanel from '../_util/PurePanel';\nimport { getStatusClassNames } from '../_util/statusUtils';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider/context';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport useSize from '../config-provider/hooks/useSize';\nimport { FormItemInputContext } from '../form/context';\nimport Popover from '../popover';\nimport { useCompactItemContext } from '../space/Compact';\nimport { AggregationColor } from './color';\nimport ColorPickerPanel from './ColorPickerPanel';\nimport ColorTrigger from './components/ColorTrigger';\nimport useModeColor from './hooks/useModeColor';\nimport useStyle from './style';\nimport { genAlphaColor, generateColor, getColorAlpha } from './util';\nconst ColorPicker = props => {\n const {\n mode,\n value,\n defaultValue,\n format,\n defaultFormat,\n allowClear = false,\n presets,\n children,\n trigger = 'click',\n open,\n disabled,\n placement = 'bottomLeft',\n arrow = true,\n panelRender,\n showText,\n style,\n className,\n size: customizeSize,\n rootClassName,\n prefixCls: customizePrefixCls,\n styles,\n disabledAlpha = false,\n onFormatChange,\n onChange,\n onClear,\n onOpenChange,\n onChangeComplete,\n getPopupContainer,\n autoAdjustOverflow = true,\n destroyTooltipOnHide\n } = props,\n rest = __rest(props, [\"mode\", \"value\", \"defaultValue\", \"format\", \"defaultFormat\", \"allowClear\", \"presets\", \"children\", \"trigger\", \"open\", \"disabled\", \"placement\", \"arrow\", \"panelRender\", \"showText\", \"style\", \"className\", \"size\", \"rootClassName\", \"prefixCls\", \"styles\", \"disabledAlpha\", \"onFormatChange\", \"onChange\", \"onClear\", \"onOpenChange\", \"onChangeComplete\", \"getPopupContainer\", \"autoAdjustOverflow\", \"destroyTooltipOnHide\"]);\n const {\n getPrefixCls,\n direction,\n colorPicker\n } = useContext(ConfigContext);\n const contextDisabled = useContext(DisabledContext);\n const mergedDisabled = disabled !== null && disabled !== void 0 ? disabled : contextDisabled;\n const [popupOpen, setPopupOpen] = useMergedState(false, {\n value: open,\n postState: openData => !mergedDisabled && openData,\n onChange: onOpenChange\n });\n const [formatValue, setFormatValue] = useMergedState(format, {\n value: format,\n defaultValue: defaultFormat,\n onChange: onFormatChange\n });\n const prefixCls = getPrefixCls('color-picker', customizePrefixCls);\n // ================== Value & Mode =================\n const [mergedColor, setColor, modeState, setModeState, modeOptions] = useModeColor(defaultValue, value, mode);\n const isAlphaColor = useMemo(() => getColorAlpha(mergedColor) < 100, [mergedColor]);\n // ==================== Change =====================\n // To enhance user experience, we cache the gradient color when switch from gradient to single\n // If user not modify single color, we will use the cached gradient color.\n const [cachedGradientColor, setCachedGradientColor] = React.useState(null);\n const onInternalChangeComplete = color => {\n if (onChangeComplete) {\n let changeColor = generate
|