tdesign-react
Version:
TDesign Component for React
182 lines (178 loc) • 7.61 kB
JavaScript
/**
* tdesign v1.16.2
* (c) 2025 tdesign
* @license MIT
*/
import { _ as _defineProperty } from '../../../../_chunks/dep-d67deb2c.js';
import React, { useRef, useEffect } from 'react';
import { throttle } from 'lodash-es';
import { a as getColorFormatMap, b as getColorFormatInputs } from '../../../../_chunks/dep-9033461e.js';
import { Input } from '../../../../input/index.js';
import { InputNumber } from '../../../../input-number/index.js';
import { C as Color } from '../../../../_chunks/dep-28ed5864.js';
import '../../../../_chunks/dep-8abcbcbc.js';
import '../../../../_chunks/dep-8def4f8a.js';
import '../../../../_chunks/dep-8de6c984.js';
import '../../../../_chunks/dep-a3a3e527.js';
import '../../../../_chunks/dep-74a10cfb.js';
import '../../../../input/Input.js';
import '../../../../_chunks/dep-ed34fbd4.js';
import '../../../../_chunks/dep-10d5731f.js';
import 'tdesign-icons-react';
import 'classnames';
import '../../../../_util/forwardRefWithStatics.js';
import 'hoist-non-react-statics';
import '../../../../_util/parseTNode.js';
import '../../../../_chunks/dep-1144c9da.js';
import '../../../../_chunks/dep-2ba7b13f.js';
import '../../../../hooks/useConfig.js';
import '../../../../config-provider/ConfigContext.js';
import '../../../../locale/zh_CN.js';
import '../../../../_chunks/dep-751cada9.js';
import 'dayjs';
import '../../../../_chunks/dep-37c4dbb1.js';
import '../../../../hooks/useControlled.js';
import '../../../../_util/noop.js';
import '../../../../hooks/useDefaultProps.js';
import '../../../../hooks/useGlobalIcon.js';
import '../../../../hooks/useLayoutEffect.js';
import '../../../../_chunks/dep-ca8d3fa0.js';
import '../../../../locale/LocalReceiver.js';
import '../../../../config-provider/index.js';
import '../../../../config-provider/ConfigProvider.js';
import '../../../../config-provider/type.js';
import '../../../../input/defaultProps.js';
import '../../../../input/InputGroup.js';
import '../../../../input/useLengthLimit.js';
import '../../../../_chunks/dep-624e7b27.js';
import '../../../../input/style/index.js';
import '../../../../input/type.js';
import '../../../../input-number/InputNumber.js';
import '../../../../button/index.js';
import '../../../../button/Button.js';
import '../../../../hooks/useDomRefCallback.js';
import '../../../../hooks/useRipple.js';
import '../../../../_chunks/dep-79351403.js';
import '../../../../hooks/useAnimation.js';
import '../../../../loading/index.js';
import '../../../../loading/Loading.js';
import '../../../../common/Portal.js';
import 'react-dom';
import '../../../../loading/defaultProps.js';
import '../../../../loading/gradient.js';
import '../../../../loading/plugin.js';
import '../../../../_util/react-render.js';
import '../../../../_chunks/dep-d26972d5.js';
import '../../../../common/PluginContainer.js';
import '../../../../loading/style/index.js';
import '../../../../loading/type.js';
import '../../../../button/defaultProps.js';
import '../../../../button/style/index.js';
import '../../../../button/type.js';
import '../../../../input-number/useInputNumber.js';
import '../../../../_chunks/dep-797b1cd7.js';
import '../../../../hooks/useCommonClassName.js';
import '../../../../input-number/defaultProps.js';
import '../../../../input-number/style/index.js';
import '../../../../input-number/type.js';
import '../../../../_chunks/dep-5af45ced.js';
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var FormatInputs = function FormatInputs(props) {
var format = props.format,
enableAlpha = props.enableAlpha,
inputProps = props.inputProps,
disabled = props.disabled,
onInputChange = props.onInputChange,
color = props.color;
var modelValueRef = useRef({});
var lastModelValue = useRef({});
var inputKey = useRef(0);
var updateModelValue = function updateModelValue() {
var value = getColorFormatMap(color, "encode")[format];
if (!value) return;
if (enableAlpha) {
value.a = Math.round(color.alpha * 100);
}
var changedFormatValue = {};
Object.keys(value).forEach(function (key) {
if (value[key] !== modelValueRef.current[key]) {
changedFormatValue[key] = value[key];
}
lastModelValue.current[key] = value[key];
});
if (Object.keys(changedFormatValue).length > 0) {
modelValueRef.current = value;
}
};
var handleInputChange = function handleInputChange(key, v, max) {
inputKey.current = performance.now();
if (v.toString().trim() === "") {
var lastValue = lastModelValue.current[key];
color.update(lastValue);
onInputChange();
return;
}
if (!v || v === lastModelValue.current[key] || Number(v) < 0 || Number(v) > max) return;
lastModelValue.current[key] = v;
var newFormatValue = _objectSpread(_objectSpread({}, modelValueRef.current), {}, _defineProperty({}, key, v));
modelValueRef.current = newFormatValue;
if (key === "a") {
color.alpha = v / 100;
} else if (key === "hex" || key === "css") {
color.update(v);
} else {
color.update(Color.object2color(newFormatValue, format));
}
onInputChange();
};
updateModelValue();
useEffect(function () {
var throttleUpdate = throttle(updateModelValue, 100);
throttleUpdate();
return function () {
return throttleUpdate.cancel();
};
}, [color.saturation, color.hue, color.value, color.alpha, format]);
return /* @__PURE__ */React.createElement("div", {
className: "input-group"
}, getColorFormatInputs(format, enableAlpha).map(function (config) {
var currentValue = modelValueRef.current[config.key];
var commonProps = _objectSpread(_objectSpread({}, inputProps), {}, {
disabled: disabled,
title: currentValue,
align: "center",
size: "small",
onBlur: function onBlur(v) {
return handleInputChange(config.key, v, config.max);
},
onEnter: function onEnter(v) {
return handleInputChange(config.key, v, config.max);
}
});
return /* @__PURE__ */React.createElement("div", {
className: "input-group__item",
key: config.key,
style: {
flex: config.flex || 1
}
}, config.type === "input" ? /* @__PURE__ */React.createElement(Input, _objectSpread(_objectSpread({}, commonProps), {}, {
defaultValue: currentValue,
key: "".concat(inputKey.current, "-").concat(currentValue),
maxlength: format === "HEX" ? 9 : void 0
})) : /* @__PURE__ */React.createElement(InputNumber, _objectSpread(_objectSpread({}, commonProps), {}, {
min: config.min,
max: config.max,
format: config.format,
step: 1,
value: currentValue,
onChange: function onChange(v) {
return handleInputChange(config.key, v || config.min, config.max);
},
theme: "normal"
})));
}));
};
var FormatInputs$1 = /*#__PURE__*/React.memo(FormatInputs);
export { FormatInputs$1 as default };
//# sourceMappingURL=inputs.js.map