This commit is contained in:
48
node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAttribute.js
generated
vendored
Normal file
48
node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAttribute.js
generated
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
import { HIGHLIGHT_PRE_TAG, HIGHLIGHT_POST_TAG } from '../constants';
|
||||
/**
|
||||
* Creates a data structure that allows to concatenate similar highlighting
|
||||
* parts in a single value.
|
||||
*/
|
||||
function createAttributeSet() {
|
||||
var initialValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
||||
var value = initialValue;
|
||||
return {
|
||||
get: function get() {
|
||||
return value;
|
||||
},
|
||||
add: function add(part) {
|
||||
var lastPart = value[value.length - 1];
|
||||
if ((lastPart === null || lastPart === void 0 ? void 0 : lastPart.isHighlighted) === part.isHighlighted) {
|
||||
value[value.length - 1] = {
|
||||
value: lastPart.value + part.value,
|
||||
isHighlighted: lastPart.isHighlighted
|
||||
};
|
||||
} else {
|
||||
value.push(part);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
export function parseAttribute(_ref) {
|
||||
var highlightedValue = _ref.highlightedValue;
|
||||
var preTagParts = highlightedValue.split(HIGHLIGHT_PRE_TAG);
|
||||
var firstValue = preTagParts.shift();
|
||||
var parts = createAttributeSet(firstValue ? [{
|
||||
value: firstValue,
|
||||
isHighlighted: false
|
||||
}] : []);
|
||||
preTagParts.forEach(function (part) {
|
||||
var postTagParts = part.split(HIGHLIGHT_POST_TAG);
|
||||
parts.add({
|
||||
value: postTagParts[0],
|
||||
isHighlighted: true
|
||||
});
|
||||
if (postTagParts[1] !== '') {
|
||||
parts.add({
|
||||
value: postTagParts[1],
|
||||
isHighlighted: false
|
||||
});
|
||||
}
|
||||
});
|
||||
return parts.get();
|
||||
}
|
Reference in New Issue
Block a user