UNPKG

@talend/react-components

Version:
50 lines (49 loc) 1.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; exports.escapeRegexCharacters = escapeRegexCharacters; var _propTypes = _interopRequireDefault(require("prop-types")); var _EmphasisModule = _interopRequireDefault(require("./Emphasis.module.scss")); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function isNotEmpty(value) { return value; } 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__*/(0, _jsxRuntime.jsx)("em", { className: _EmphasisModule.default.highlight, children: part }, index); } return part; }); } function Emphasis(props) { return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { children: emphasiseAll(props.text, props.value) }); } Emphasis.displayName = 'Emphasis'; Emphasis.propTypes = { value: _propTypes.default.string, text: _propTypes.default.string }; var _default = exports.default = Emphasis; //# sourceMappingURL=Emphasis.component.js.map