UNPKG

vue-instantsearch

Version:

👀 Lightning-fast Algolia search for Vue apps

2 lines (1 loc) • 943 B
import{getPropertyByPath as i}from"instantsearch.js/es/lib/utils/index.js";import{unescape as t}from"./unescape.js";var e="__ais-highlight__",h="__/ais-highlight__";function r(i){var t=i.preTag,e=i.postTag,h=i.highlightedValue,r=(void 0===h?"":h).split(t),a=r.shift(),g=""===a?[]:[{value:a,isHighlighted:!1}];if(e===t){var s=!0;r.forEach(function(i){g.push({value:i,isHighlighted:s}),s=!s})}else r.forEach(function(i){var t=i.split(e);g.push({value:t[0],isHighlighted:!0}),""!==t[1]&&g.push({value:" "===t[1]?" ":t[1],isHighlighted:!1})});return g}function a(a){var g=a.preTag,s=void 0===g?e:g,l=a.postTag,o=void 0===l?h:l,u=a.highlightProperty,p=a.attribute,n=a.hit;if(!n)throw new Error("`hit`, the matching record, must be provided");var v=i(n[u],p)||{};return Array.isArray(v)?v.map(function(i){return r({preTag:s,postTag:o,highlightedValue:t(i.value)})}):r({preTag:s,postTag:o,highlightedValue:t(v.value)})}export{a as parseAlgoliaHit};