tdesign-react
Version:
TDesign Component for React
52 lines (48 loc) • 1.64 kB
JavaScript
/**
* tdesign v1.13.2
* (c) 2025 tdesign
* @license MIT
*/
import React, { useMemo } from 'react';
import { escapeRegExp } from 'lodash-es';
import useConfig from '../hooks/useConfig.js';
import '../config-provider/ConfigContext.js';
import '../_chunks/dep-8618a2f1.js';
import '../_chunks/dep-c37cc2fd.js';
import '../locale/zh_CN.js';
import '../_chunks/dep-ab140eb0.js';
import 'dayjs';
import '../_chunks/dep-95bd7102.js';
var HighlightOption = function HighlightOption(props) {
var _useConfig = useConfig(),
classPrefix = _useConfig.classPrefix;
var content = props.content,
keyword = props.keyword;
var words = useMemo(function () {
var _content$match;
if (!content) return {
list: []
};
if (typeof content !== "string" || !keyword) return {
list: [content]
};
var regExp = new RegExp(escapeRegExp(keyword), "i");
var splitKeyword = (_content$match = content.match(regExp)) === null || _content$match === void 0 ? void 0 : _content$match[0];
return {
list: content.split(splitKeyword),
keyword: splitKeyword
};
}, [content, keyword]);
return /* @__PURE__ */React.createElement("div", {
className: "".concat(classPrefix, "-select-option__highlight-item")
}, words.list.map(function (item, index) {
if (!index) return item;
return [/* @__PURE__ */React.createElement("b", {
className: "".concat(classPrefix, "-is-highlight"),
key: item + words.keyword
}, words.keyword), item];
}));
};
HighlightOption.displayName = "HighlightOption";
export { HighlightOption as default };
//# sourceMappingURL=HighlightOption.js.map