UNPKG

@talend/react-components

Version:
42 lines 1.19 kB
import PropTypes from 'prop-types'; import theme from './Emphasis.module.scss'; import { jsx as _jsx } from "react/jsx-runtime"; function isNotEmpty(value) { return value; } export function escapeRegexCharacters(str) { return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); } function emphasiseAll(text, value) { if (!text) { return ''; } if (!value) { return text; } if (!Array.isArray(value)) { value = [value]; } const valuesInUpperCase = value.map(e => `${e}`.toLocaleUpperCase()); return `${text}`.split(new RegExp(`(${valuesInUpperCase.map(e => escapeRegexCharacters(e)).join('|')})`, 'gi')).filter(isNotEmpty).map((part, index) => { if (valuesInUpperCase.includes(part.toLocaleUpperCase())) { return /*#__PURE__*/_jsx("em", { className: theme.highlight, children: part }, index); } return part; }); } function Emphasis(props) { return /*#__PURE__*/_jsx("span", { children: emphasiseAll(props.text, props.value) }); } Emphasis.displayName = 'Emphasis'; Emphasis.propTypes = { value: PropTypes.string, text: PropTypes.string }; export default Emphasis; //# sourceMappingURL=Emphasis.component.js.map