UNPKG

instantsearch-ui-components

Version:

Common UI components for InstantSearch.

53 lines (50 loc) 2.94 kB
import { _ as _$2 } from '@swc/helpers/esm/_object_spread.js'; import { _ as _$1 } from '@swc/helpers/esm/_object_spread_props.js'; import { _ } from '@swc/helpers/esm/_object_without_properties.js'; import { cx } from '../lib/cx.js'; function createHighlightPartComponent(param) { var createElement = param.createElement; return function HighlightPart(param) { var classNames = param.classNames, children = param.children, highlightedTagName = param.highlightedTagName, isHighlighted = param.isHighlighted, nonHighlightedTagName = param.nonHighlightedTagName; var TagName = isHighlighted ? highlightedTagName : nonHighlightedTagName; return /*#__PURE__*/ createElement(TagName, { className: isHighlighted ? classNames.highlighted : classNames.nonHighlighted }, children); }; } function createHighlightComponent(param) { var createElement = param.createElement, Fragment = param.Fragment; var HighlightPart = createHighlightPartComponent({ createElement: createElement, Fragment: Fragment }); return function Highlight(userProps) { var parts = userProps.parts, _userProps_highlightedTagName = userProps.highlightedTagName, highlightedTagName = _userProps_highlightedTagName === void 0 ? 'mark' : _userProps_highlightedTagName, _userProps_nonHighlightedTagName = userProps.nonHighlightedTagName, nonHighlightedTagName = _userProps_nonHighlightedTagName === void 0 ? 'span' : _userProps_nonHighlightedTagName, _userProps_separator = userProps.separator, separator = _userProps_separator === void 0 ? ', ' : _userProps_separator, className = userProps.className, _userProps_classNames = userProps.classNames, classNames = _userProps_classNames === void 0 ? {} : _userProps_classNames, props = _(userProps, [ "parts", "highlightedTagName", "nonHighlightedTagName", "separator", "className", "classNames" ]); return /*#__PURE__*/ createElement("span", _$1(_$2({}, props), { className: cx(classNames.root, className) }), parts.map(function(part, partIndex) { var isLastPart = partIndex === parts.length - 1; return /*#__PURE__*/ createElement(Fragment, { key: partIndex }, part.map(function(subPart, subPartIndex) { return /*#__PURE__*/ createElement(HighlightPart, { key: subPartIndex, classNames: classNames, highlightedTagName: highlightedTagName, nonHighlightedTagName: nonHighlightedTagName, isHighlighted: subPart.isHighlighted }, subPart.value); }), !isLastPart && /*#__PURE__*/ createElement("span", { className: classNames.separator }, separator)); })); }; } export { createHighlightComponent };