UNPKG

tdesign-react

Version:
170 lines (162 loc) 7.36 kB
/** * tdesign v1.13.2 * (c) 2025 tdesign * @license MIT */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var defineProperty = require('../../_chunks/dep-cc768e34.js'); var slicedToArray = require('../../_chunks/dep-e17e2d31.js'); var React = require('react'); var classNames = require('classnames'); var hooks_useConfig = require('../../hooks/useConfig.js'); var hooks_useDomRefCallback = require('../../hooks/useDomRefCallback.js'); var hooks_useRipple = require('../../hooks/useRipple.js'); var isNumber = require('../../_chunks/dep-422caf30.js'); var isString = require('../../_chunks/dep-3e2d2665.js'); var get = require('../../_chunks/dep-fbc19a54.js'); require('../../_chunks/dep-6d4d8660.js'); require('../../_chunks/dep-b7d577ac.js'); require('../../config-provider/ConfigContext.js'); require('../../_chunks/dep-3a869b87.js'); require('../../_chunks/dep-ac58e1cc.js'); require('dayjs'); require('../../_chunks/dep-7da96a57.js'); require('../../_chunks/dep-07b911d8.js'); require('../../_chunks/dep-4b02d669.js'); require('../../_chunks/dep-f0379c5f.js'); require('../../_chunks/dep-ddacd27a.js'); require('../../_chunks/dep-028b759d.js'); require('../../_chunks/dep-8a116183.js'); require('../../_chunks/dep-4671b9bd.js'); require('../../_chunks/dep-bed9d73e.js'); require('../../_chunks/dep-780eda7b.js'); require('../../_chunks/dep-47bdc05f.js'); require('../../_chunks/dep-cab13149.js'); require('../../_chunks/dep-a30819a4.js'); require('../../_chunks/dep-6a7ba247.js'); require('../../_chunks/dep-c87d9752.js'); require('../../_chunks/dep-bd956a2d.js'); require('../../_chunks/dep-0cdb3286.js'); require('../../_chunks/dep-865c186c.js'); require('../../_chunks/dep-f4e58639.js'); require('../../_chunks/dep-781a2854.js'); require('../../_chunks/dep-1ef213f8.js'); require('../../_chunks/dep-e2c832a5.js'); require('../../_chunks/dep-58719304.js'); require('../../hooks/useAnimation.js'); require('../../_chunks/dep-3f65dfe7.js'); require('../../_chunks/dep-4ba2ac6b.js'); require('../../_chunks/dep-f076775e.js'); require('../../_chunks/dep-62193a48.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var React__default = /*#__PURE__*/_interopDefaultLegacy(React); var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames); var componentType = "select"; var Option = function Option(props) { var propDisabled = props.disabled, propLabel = props.label, propTitle = props.title, selectedValue = props.selectedValue, checkAll = props.checkAll, multiple = props.multiple, size = props.size, max = props.max, keys = props.keys, value = props.value, onSelect = props.onSelect, children = props.children, content = props.content, restData = props.restData, style = props.style, className = props.className, isVirtual = props.isVirtual; var selected; var indeterminate; var label = propLabel || value; var disabled = propDisabled || multiple && Array.isArray(selectedValue) && max && selectedValue.length >= max; var titleContent = React.useMemo(function () { var controlledTitle = Reflect.has(props, "title"); if (controlledTitle) return propTitle; if (typeof label === "string") return label; return null; }, [propTitle, label]); var _useConfig = hooks_useConfig["default"](), classPrefix = _useConfig.classPrefix; var _useDomRefCallback = hooks_useDomRefCallback["default"](), _useDomRefCallback2 = slicedToArray._slicedToArray(_useDomRefCallback, 2), optionRef = _useDomRefCallback2[0], setRefCurrent = _useDomRefCallback2[1]; React.useEffect(function () { if (isVirtual && optionRef) { var _props$onRowMounted; (_props$onRowMounted = props.onRowMounted) === null || _props$onRowMounted === void 0 || _props$onRowMounted.call(props, { ref: optionRef, data: props }); } }, [isVirtual, optionRef]); hooks_useRipple["default"](optionRef); if (!multiple) { selected = isNumber.isNumber(selectedValue) || isString.isString(selectedValue) ? value === selectedValue : value === get.get(selectedValue, (keys === null || keys === void 0 ? void 0 : keys.value) || "value"); } if (multiple && Array.isArray(selectedValue)) { selected = selectedValue.some(function (item) { if (isNumber.isNumber(item) || isString.isString(item)) { return item === value; } return get.get(item, (keys === null || keys === void 0 ? void 0 : keys.value) || "value") === value; }); if (props.checkAll) { selected = selectedValue.length === props.optionLength; indeterminate = selectedValue.length > 0 && !selected; } } var handleSelect = function handleSelect(event) { if (!disabled && !checkAll) { onSelect(value, { label: String(label), selected: selected, event: event, restData: restData }); } if (checkAll) { var _props$onCheckAllChan; (_props$onCheckAllChan = props.onCheckAllChange) === null || _props$onCheckAllChan === void 0 || _props$onCheckAllChan.call(props, selected, event); } }; var renderItem = function renderItem(children2) { if (multiple) { return /* @__PURE__ */React__default["default"].createElement("label", { className: classNames__default["default"]("".concat(classPrefix, "-checkbox"), defineProperty._defineProperty(defineProperty._defineProperty(defineProperty._defineProperty({}, "".concat(classPrefix, "-is-indeterminate"), indeterminate), "".concat(classPrefix, "-is-disabled"), disabled), "".concat(classPrefix, "-is-checked"), selected)), title: titleContent }, /* @__PURE__ */React__default["default"].createElement("input", { type: "checkbox", className: classNames__default["default"]("".concat(classPrefix, "-checkbox__former")), value: "", disabled: disabled && !selected, onClick: function onClick(e) { e.stopPropagation(); e.nativeEvent.stopImmediatePropagation(); } }), /* @__PURE__ */React__default["default"].createElement("span", { className: classNames__default["default"]("".concat(classPrefix, "-checkbox__input")) }), /* @__PURE__ */React__default["default"].createElement("span", { className: classNames__default["default"]("".concat(classPrefix, "-checkbox__label")) }, children2 || content || label)); } return /* @__PURE__ */React__default["default"].createElement("span", { title: titleContent }, children2 || content || label); }; return /* @__PURE__ */React__default["default"].createElement("li", { className: classNames__default["default"](className, "".concat(classPrefix, "-").concat(componentType, "-option"), defineProperty._defineProperty(defineProperty._defineProperty(defineProperty._defineProperty(defineProperty._defineProperty({}, "".concat(classPrefix, "-is-disabled"), disabled), "".concat(classPrefix, "-is-selected"), selected), "".concat(classPrefix, "-size-s"), size === "small"), "".concat(classPrefix, "-size-l"), size === "large")), key: value, onClick: handleSelect, ref: setRefCurrent, style: style }, renderItem(children)); }; exports["default"] = Option; //# sourceMappingURL=Option.js.map