@talend/react-components
Version:
Set of react components.
50 lines (49 loc) • 1.58 kB
JavaScript
;
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