@algolia/autocomplete-preset-algolia 1.2.2 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/highlight/HighlightedHit.js +1 -0
- package/dist/esm/highlight/ParseAlgoliaHitParams.js +1 -0
- package/dist/esm/highlight/ParsedAttribute.js +1 -0
- package/dist/esm/highlight/SnippetedHit.js +1 -0
- package/dist/esm/highlight/parseAlgoliaHitHighlight.js +1 -1
- package/dist/esm/highlight/parseAlgoliaHitSnippet.js +1 -1
- package/dist/esm/highlight/reverseHighlightedParts.js +1 -1
- package/dist/esm/requester/createRequester.js +1 -1
- package/dist/esm/requester/getAlgoliaFacets.js +1 -1
- package/dist/esm/search/fetchAlgoliaResults.d.ts +1 -5
- package/dist/esm/search/fetchAlgoliaResults.js +7 -8
- package/dist/umd/index.development.js +35 -28
- package/dist/umd/index.development.js.map +1 -1
- package/dist/umd/index.production.js +2 -2
- package/dist/umd/index.production.js.map +1 -1
- package/package.json +2 -2
- package/dist/esm/version.d.ts +0 -1
- package/dist/esm/version.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -4,7 +4,7 @@ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread n
|
|
|
4
4
|
|
|
5
5
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
6
6
|
|
|
7
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator
|
|
7
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
8
8
|
|
|
9
9
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
10
10
|
|
|
@@ -4,7 +4,7 @@ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread n
|
|
|
4
4
|
|
|
5
5
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
6
6
|
|
|
7
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator
|
|
7
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
8
8
|
|
|
9
9
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
10
10
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
2
2
|
|
|
3
3
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
2
2
|
|
|
3
3
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
2
2
|
|
|
3
3
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
4
4
|
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
+
import { UserAgent } from '@algolia/autocomplete-shared';
|
|
1
2
|
import { MultipleQueriesQuery, SearchForFacetValuesResponse, SearchResponse } from '@algolia/client-search';
|
|
2
3
|
import type { SearchClient } from 'algoliasearch/lite';
|
|
3
|
-
declare type UserAgent = {
|
|
4
|
-
segment: string;
|
|
5
|
-
version?: string;
|
|
6
|
-
};
|
|
7
4
|
export interface SearchParams {
|
|
8
5
|
/**
|
|
9
6
|
* The initialized Algolia search client.
|
|
@@ -21,4 +18,3 @@ export interface SearchParams {
|
|
|
21
18
|
userAgents?: UserAgent[];
|
|
22
19
|
}
|
|
23
20
|
export declare function fetchAlgoliaResults<TRecord>({ searchClient, queries, userAgents, }: SearchParams): Promise<Array<SearchResponse<TRecord> | SearchForFacetValuesResponse>>;
|
|
24
|
-
export {};
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
var _excluded = ["params"];
|
|
2
|
+
|
|
3
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
2
4
|
|
|
3
5
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
4
6
|
|
|
@@ -14,14 +16,14 @@ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread n
|
|
|
14
16
|
|
|
15
17
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
16
18
|
|
|
17
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator
|
|
19
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
18
20
|
|
|
19
21
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
20
22
|
|
|
21
23
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
22
24
|
|
|
25
|
+
import { userAgents as coreUserAgents } from '@algolia/autocomplete-shared';
|
|
23
26
|
import { HIGHLIGHT_PRE_TAG, HIGHLIGHT_POST_TAG } from '../constants';
|
|
24
|
-
import { version } from '../version';
|
|
25
27
|
export function fetchAlgoliaResults(_ref) {
|
|
26
28
|
var searchClient = _ref.searchClient,
|
|
27
29
|
queries = _ref.queries,
|
|
@@ -29,10 +31,7 @@ export function fetchAlgoliaResults(_ref) {
|
|
|
29
31
|
userAgents = _ref$userAgents === void 0 ? [] : _ref$userAgents;
|
|
30
32
|
|
|
31
33
|
if (typeof searchClient.addAlgoliaAgent === 'function') {
|
|
32
|
-
var algoliaAgents = [
|
|
33
|
-
segment: 'autocomplete-core',
|
|
34
|
-
version: version
|
|
35
|
-
}].concat(_toConsumableArray(userAgents));
|
|
34
|
+
var algoliaAgents = [].concat(_toConsumableArray(coreUserAgents), _toConsumableArray(userAgents));
|
|
36
35
|
algoliaAgents.forEach(function (_ref2) {
|
|
37
36
|
var segment = _ref2.segment,
|
|
38
37
|
version = _ref2.version;
|
|
@@ -42,7 +41,7 @@ export function fetchAlgoliaResults(_ref) {
|
|
|
42
41
|
|
|
43
42
|
return searchClient.search(queries.map(function (searchParameters) {
|
|
44
43
|
var params = searchParameters.params,
|
|
45
|
-
headers = _objectWithoutProperties(searchParameters,
|
|
44
|
+
headers = _objectWithoutProperties(searchParameters, _excluded);
|
|
46
45
|
|
|
47
46
|
return _objectSpread(_objectSpread({}, headers), {}, {
|
|
48
47
|
params: _objectSpread({
|
|
@@ -1,33 +1,22 @@
|
|
|
1
|
-
/*! @algolia/autocomplete-preset-algolia 1.
|
|
1
|
+
/*! @algolia/autocomplete-preset-algolia 1.5.0 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */
|
|
2
2
|
(function (global, factory) {
|
|
3
3
|
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
|
4
4
|
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
|
5
5
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global['@algolia/autocomplete-preset-algolia'] = {}));
|
|
6
6
|
}(this, (function (exports) { 'use strict';
|
|
7
7
|
|
|
8
|
-
function _defineProperty(obj, key, value) {
|
|
9
|
-
if (key in obj) {
|
|
10
|
-
Object.defineProperty(obj, key, {
|
|
11
|
-
value: value,
|
|
12
|
-
enumerable: true,
|
|
13
|
-
configurable: true,
|
|
14
|
-
writable: true
|
|
15
|
-
});
|
|
16
|
-
} else {
|
|
17
|
-
obj[key] = value;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
return obj;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
8
|
function ownKeys(object, enumerableOnly) {
|
|
24
9
|
var keys = Object.keys(object);
|
|
25
10
|
|
|
26
11
|
if (Object.getOwnPropertySymbols) {
|
|
27
12
|
var symbols = Object.getOwnPropertySymbols(object);
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
13
|
+
|
|
14
|
+
if (enumerableOnly) {
|
|
15
|
+
symbols = symbols.filter(function (sym) {
|
|
16
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
|
|
31
20
|
keys.push.apply(keys, symbols);
|
|
32
21
|
}
|
|
33
22
|
|
|
@@ -54,6 +43,21 @@
|
|
|
54
43
|
return target;
|
|
55
44
|
}
|
|
56
45
|
|
|
46
|
+
function _defineProperty(obj, key, value) {
|
|
47
|
+
if (key in obj) {
|
|
48
|
+
Object.defineProperty(obj, key, {
|
|
49
|
+
value: value,
|
|
50
|
+
enumerable: true,
|
|
51
|
+
configurable: true,
|
|
52
|
+
writable: true
|
|
53
|
+
});
|
|
54
|
+
} else {
|
|
55
|
+
obj[key] = value;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return obj;
|
|
59
|
+
}
|
|
60
|
+
|
|
57
61
|
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
58
62
|
if (source == null) return {};
|
|
59
63
|
var target = {};
|
|
@@ -99,7 +103,7 @@
|
|
|
99
103
|
}
|
|
100
104
|
|
|
101
105
|
function _iterableToArray(iter) {
|
|
102
|
-
if (typeof Symbol !== "undefined" && Symbol.iterator
|
|
106
|
+
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
103
107
|
}
|
|
104
108
|
|
|
105
109
|
function _unsupportedIterableToArray(o, minLen) {
|
|
@@ -129,6 +133,13 @@
|
|
|
129
133
|
}, record);
|
|
130
134
|
}
|
|
131
135
|
|
|
136
|
+
var version = '1.5.0';
|
|
137
|
+
|
|
138
|
+
var userAgents = [{
|
|
139
|
+
segment: 'autocomplete-core',
|
|
140
|
+
version: version
|
|
141
|
+
}];
|
|
142
|
+
|
|
132
143
|
var warnCache = {
|
|
133
144
|
current: {}
|
|
134
145
|
};
|
|
@@ -327,19 +338,15 @@
|
|
|
327
338
|
};
|
|
328
339
|
}
|
|
329
340
|
|
|
330
|
-
var
|
|
331
|
-
|
|
341
|
+
var _excluded = ["params"];
|
|
332
342
|
function fetchAlgoliaResults(_ref) {
|
|
333
343
|
var searchClient = _ref.searchClient,
|
|
334
344
|
queries = _ref.queries,
|
|
335
345
|
_ref$userAgents = _ref.userAgents,
|
|
336
|
-
userAgents = _ref$userAgents === void 0 ? [] : _ref$userAgents;
|
|
346
|
+
userAgents$1 = _ref$userAgents === void 0 ? [] : _ref$userAgents;
|
|
337
347
|
|
|
338
348
|
if (typeof searchClient.addAlgoliaAgent === 'function') {
|
|
339
|
-
var algoliaAgents = [
|
|
340
|
-
segment: 'autocomplete-core',
|
|
341
|
-
version: version
|
|
342
|
-
}].concat(_toConsumableArray(userAgents));
|
|
349
|
+
var algoliaAgents = [].concat(_toConsumableArray(userAgents), _toConsumableArray(userAgents$1));
|
|
343
350
|
algoliaAgents.forEach(function (_ref2) {
|
|
344
351
|
var segment = _ref2.segment,
|
|
345
352
|
version = _ref2.version;
|
|
@@ -349,7 +356,7 @@
|
|
|
349
356
|
|
|
350
357
|
return searchClient.search(queries.map(function (searchParameters) {
|
|
351
358
|
var params = searchParameters.params,
|
|
352
|
-
headers = _objectWithoutProperties(searchParameters,
|
|
359
|
+
headers = _objectWithoutProperties(searchParameters, _excluded);
|
|
353
360
|
|
|
354
361
|
return _objectSpread2(_objectSpread2({}, headers), {}, {
|
|
355
362
|
params: _objectSpread2({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.development.js","sources":["../../../autocomplete-shared/dist/esm/getAttributeValueByPath.js","../../../autocomplete-shared/dist/esm/warn.js","../../src/constants/index.ts","../../src/highlight/parseAttribute.ts","../../src/highlight/parseAlgoliaHitHighlight.ts","../../src/highlight/isPartHighlighted.ts","../../src/highlight/reverseHighlightedParts.ts","../../src/highlight/parseAlgoliaHitReverseHighlight.ts","../../src/highlight/parseAlgoliaHitSnippet.ts","../../src/highlight/parseAlgoliaHitReverseSnippet.ts","../../src/requester/createRequester.ts","../../src/version.ts","../../src/search/fetchAlgoliaResults.ts","../../src/requester/createAlgoliaRequester.ts","../../src/requester/getAlgoliaFacets.ts","../../src/requester/getAlgoliaResults.ts"],"sourcesContent":["export function getAttributeValueByPath(record, path) {\n return path.reduce(function (current, key) {\n return current && current[key];\n }, record);\n}","export var warnCache = {\n current: {}\n};\n/**\n * Logs a warning if the condition is not met.\n * This is used to log issues in development environment only.\n */\n\nexport function warn(condition, message) {\n if (!(process.env.NODE_ENV !== 'production')) {\n return;\n }\n\n if (condition) {\n return;\n }\n\n var sanitizedMessage = message.trim();\n var hasAlreadyPrinted = warnCache.current[sanitizedMessage];\n\n if (!hasAlreadyPrinted) {\n warnCache.current[sanitizedMessage] = true; // eslint-disable-next-line no-console\n\n console.warn(\"[Autocomplete] \".concat(sanitizedMessage));\n }\n}","export const HIGHLIGHT_PRE_TAG = '__aa-highlight__';\nexport const HIGHLIGHT_POST_TAG = '__/aa-highlight__';\n","import { HIGHLIGHT_PRE_TAG, HIGHLIGHT_POST_TAG } from '../constants';\n\nimport { ParsedAttribute } from './ParsedAttribute';\n\n/**\n * Creates a data structure that allows to concatenate similar highlighting\n * parts in a single value.\n */\nfunction createAttributeSet(initialValue: ParsedAttribute[] = []) {\n const value = initialValue;\n\n return {\n get() {\n return value;\n },\n add(part: ParsedAttribute) {\n const lastPart: ParsedAttribute | undefined = value[value.length - 1];\n\n if (lastPart?.isHighlighted === part.isHighlighted) {\n value[value.length - 1] = {\n value: lastPart.value + part.value,\n isHighlighted: lastPart.isHighlighted,\n };\n } else {\n value.push(part);\n }\n },\n };\n}\n\ntype ParseAttributeParams = {\n highlightedValue: string;\n};\n\nexport function parseAttribute({\n highlightedValue,\n}: ParseAttributeParams): ParsedAttribute[] {\n const preTagParts = highlightedValue.split(HIGHLIGHT_PRE_TAG);\n const firstValue = preTagParts.shift();\n const parts = createAttributeSet(\n firstValue ? [{ value: firstValue, isHighlighted: false }] : []\n );\n\n preTagParts.forEach((part) => {\n const postTagParts = part.split(HIGHLIGHT_POST_TAG);\n\n parts.add({\n value: postTagParts[0],\n isHighlighted: true,\n });\n\n if (postTagParts[1] !== '') {\n parts.add({\n value: postTagParts[1],\n isHighlighted: false,\n });\n }\n });\n\n return parts.get();\n}\n","import { getAttributeValueByPath, warn } from '@algolia/autocomplete-shared';\n\nimport { HighlightedHit } from './HighlightedHit';\nimport { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { parseAttribute } from './parseAttribute';\nimport { ParsedAttribute } from './ParsedAttribute';\n\nexport function parseAlgoliaHitHighlight<THit extends HighlightedHit<unknown>>({\n hit,\n attribute,\n}: ParseAlgoliaHitParams<THit>): ParsedAttribute[] {\n const path = Array.isArray(attribute) ? attribute : ([attribute] as string[]);\n let highlightedValue = getAttributeValueByPath(hit, [\n '_highlightResult',\n ...path,\n 'value',\n ]);\n\n if (typeof highlightedValue !== 'string') {\n warn(\n false,\n `The attribute \"${path.join('.')}\" described by the path ${JSON.stringify(\n path\n )} does not exist on the hit. Did you set it in \\`attributesToHighlight\\`?` +\n '\\nSee https://www.algolia.com/doc/api-reference/api-parameters/attributesToHighlight/'\n );\n\n highlightedValue = getAttributeValueByPath(hit, path) || '';\n }\n\n return parseAttribute({ highlightedValue });\n}\n","import { ParsedAttribute } from './ParsedAttribute';\n\nconst htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\",\n};\nconst hasAlphanumeric = new RegExp(/\\w/i);\nconst regexEscapedHtml = /&(amp|quot|lt|gt|#39);/g;\nconst regexHasEscapedHtml = RegExp(regexEscapedHtml.source);\n\nfunction unescape(value: string): string {\n return value && regexHasEscapedHtml.test(value)\n ? value.replace(regexEscapedHtml, (character) => htmlEscapes[character])\n : value;\n}\n\nexport function isPartHighlighted(parts: ParsedAttribute[], i: number) {\n const current = parts[i];\n const isNextHighlighted = parts[i + 1]?.isHighlighted || true;\n const isPreviousHighlighted = parts[i - 1]?.isHighlighted || true;\n\n if (\n !hasAlphanumeric.test(unescape(current.value)) &&\n isPreviousHighlighted === isNextHighlighted\n ) {\n return isPreviousHighlighted;\n }\n\n return current.isHighlighted;\n}\n","import { isPartHighlighted } from './isPartHighlighted';\nimport { ParsedAttribute } from './ParsedAttribute';\n\nexport function reverseHighlightedParts(parts: ParsedAttribute[]) {\n // We don't want to highlight the whole word when no parts match.\n if (!parts.some((part) => part.isHighlighted)) {\n return parts.map((part) => ({ ...part, isHighlighted: false }));\n }\n\n return parts.map((part, i) => ({\n ...part,\n isHighlighted: !isPartHighlighted(parts, i),\n }));\n}\n","import { HighlightedHit } from './HighlightedHit';\nimport { parseAlgoliaHitHighlight } from './parseAlgoliaHitHighlight';\nimport { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { ParsedAttribute } from './ParsedAttribute';\nimport { reverseHighlightedParts } from './reverseHighlightedParts';\n\nexport function parseAlgoliaHitReverseHighlight<\n THit extends HighlightedHit<unknown>\n>(props: ParseAlgoliaHitParams<THit>): ParsedAttribute[] {\n return reverseHighlightedParts(parseAlgoliaHitHighlight<THit>(props));\n}\n","import { getAttributeValueByPath, warn } from '@algolia/autocomplete-shared';\n\nimport { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { parseAttribute } from './parseAttribute';\nimport { ParsedAttribute } from './ParsedAttribute';\nimport { SnippetedHit } from './SnippetedHit';\n\nexport function parseAlgoliaHitSnippet<THit extends SnippetedHit<unknown>>({\n hit,\n attribute,\n}: ParseAlgoliaHitParams<THit>): ParsedAttribute[] {\n const path = Array.isArray(attribute) ? attribute : ([attribute] as string[]);\n let highlightedValue = getAttributeValueByPath(hit, [\n '_snippetResult',\n ...path,\n 'value',\n ]);\n\n if (typeof highlightedValue !== 'string') {\n warn(\n false,\n `The attribute \"${path.join('.')}\" described by the path ${JSON.stringify(\n path\n )} does not exist on the hit. Did you set it in \\`attributesToSnippet\\`?` +\n '\\nSee https://www.algolia.com/doc/api-reference/api-parameters/attributesToSnippet/'\n );\n\n highlightedValue = getAttributeValueByPath(hit, path) || '';\n }\n\n return parseAttribute({ highlightedValue });\n}\n","import { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { parseAlgoliaHitSnippet } from './parseAlgoliaHitSnippet';\nimport { ParsedAttribute } from './ParsedAttribute';\nimport { reverseHighlightedParts } from './reverseHighlightedParts';\nimport { SnippetedHit } from './SnippetedHit';\n\nexport function parseAlgoliaHitReverseSnippet<\n THit extends SnippetedHit<unknown>\n>(props: ParseAlgoliaHitParams<THit>): ParsedAttribute[] {\n return reverseHighlightedParts(parseAlgoliaHitSnippet<THit>(props));\n}\n","import {\n MultipleQueriesQuery,\n SearchForFacetValuesResponse,\n SearchResponse,\n} from '@algolia/client-search';\nimport { SearchClient } from 'algoliasearch/lite';\n\nimport { fetchAlgoliaResults } from '../search';\n\ntype Fetcher = typeof fetchAlgoliaResults;\n\ntype FacetHit = {\n label: string;\n count: number;\n _highlightResult: {\n label: {\n value: string;\n };\n };\n};\n\nexport type FetcherParams = Pick<\n Parameters<Fetcher>[0],\n 'searchClient' | 'queries'\n>;\n\nexport type RequesterParams<THit> = {\n transformResponse(\n response: TransformResponseParams<THit>\n ): TransformedRequesterResponse<THit>;\n};\n\ntype TransformResponseParams<THit> = {\n results: Array<SearchResponse<THit> | SearchForFacetValuesResponse>;\n hits: Array<SearchResponse<THit>['hits']>;\n facetHits: FacetHit[][];\n};\n\nexport type TransformedRequesterResponse<THit> =\n | Array<SearchResponse<THit>['hits']>\n | SearchResponse<THit>['hits']\n | FacetHit[][]\n | FacetHit[];\n\nexport type TransformResponse<THit> = (\n response: TransformResponseParams<THit>\n) => TransformedRequesterResponse<THit>;\n\ntype FetcherParamsQuery<THit> = {\n query: MultipleQueriesQuery;\n sourceId: string;\n transformResponse: TransformResponse<THit>;\n};\n\ntype ExecuteParams<THit> = {\n searchClient: SearchClient;\n requests: Array<FetcherParamsQuery<THit>>;\n};\n\nexport type Execute<THit> = (\n params: ExecuteParams<THit>\n) => Promise<ExecuteResponse<THit>>;\n\nexport type ExecuteResponse<THit> = Array<{\n items: SearchResponse<THit> | SearchForFacetValuesResponse;\n sourceId: string;\n transformResponse: TransformResponse<THit>;\n}>;\n\nexport type RequestParams<THit> = FetcherParams & {\n /**\n * The function to transform the Algolia response before passing it to the Autocomplete state. You have access to the full Algolia results, as well as the pre-computed hits and facet hits.\n *\n * This is useful to manipulate the hits, or store data from the results in the [context](https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/context/).\n */\n transformResponse?: TransformResponse<THit>;\n};\n\nexport type RequesterDescription<THit> = {\n searchClient: SearchClient;\n queries: MultipleQueriesQuery[];\n transformResponse: TransformResponse<THit>;\n execute: Execute<THit>;\n};\n\nexport function createRequester(fetcher: Fetcher) {\n function execute<THit>(fetcherParams: ExecuteParams<THit>) {\n return fetcher<THit>({\n searchClient: fetcherParams.searchClient,\n queries: fetcherParams.requests.map((x) => x.query),\n }).then((responses) =>\n responses.map((response, index) => {\n const { sourceId, transformResponse } = fetcherParams.requests[index];\n\n return {\n items: response,\n sourceId,\n transformResponse,\n };\n })\n );\n }\n\n return function createSpecifiedRequester(\n requesterParams: RequesterParams<any>\n ) {\n return function requester<TTHit>(\n requestParams: RequestParams<TTHit>\n ): RequesterDescription<TTHit> {\n return {\n execute,\n ...requesterParams,\n ...requestParams,\n };\n };\n };\n}\n","export const version = '1.2.2';\n","import {\n MultipleQueriesQuery,\n SearchForFacetValuesResponse,\n SearchResponse,\n} from '@algolia/client-search';\nimport type { SearchClient } from 'algoliasearch/lite';\n\nimport { HIGHLIGHT_PRE_TAG, HIGHLIGHT_POST_TAG } from '../constants';\nimport { version } from '../version';\n\ntype UserAgent = { segment: string; version?: string };\n\nexport interface SearchParams {\n /**\n * The initialized Algolia search client.\n */\n searchClient: SearchClient;\n /**\n * A list of queries to execute.\n */\n queries: MultipleQueriesQuery[];\n /**\n * A list of user agents to add to the search client.\n *\n * This is useful to track usage of an integration.\n */\n userAgents?: UserAgent[];\n}\n\nexport function fetchAlgoliaResults<TRecord>({\n searchClient,\n queries,\n userAgents = [],\n}: SearchParams): Promise<\n Array<SearchResponse<TRecord> | SearchForFacetValuesResponse>\n> {\n if (typeof searchClient.addAlgoliaAgent === 'function') {\n const algoliaAgents: UserAgent[] = [\n { segment: 'autocomplete-core', version },\n ...userAgents,\n ];\n\n algoliaAgents.forEach(({ segment, version }) => {\n searchClient.addAlgoliaAgent(segment, version);\n });\n }\n\n return searchClient\n .search<TRecord>(\n queries.map((searchParameters) => {\n const { params, ...headers } = searchParameters;\n\n return {\n ...headers,\n params: {\n hitsPerPage: 5,\n highlightPreTag: HIGHLIGHT_PRE_TAG,\n highlightPostTag: HIGHLIGHT_POST_TAG,\n ...params,\n },\n };\n })\n )\n .then((response) => {\n return response.results;\n });\n}\n","import { fetchAlgoliaResults } from '../search';\n\nimport { createRequester } from './createRequester';\n\nexport const createAlgoliaRequester = createRequester(fetchAlgoliaResults);\n","import { MultipleQueriesQuery } from '@algolia/client-search';\n\nimport { createAlgoliaRequester } from './createAlgoliaRequester';\nimport { RequestParams } from './createRequester';\n\n/**\n * Retrieves Algolia facet hits from multiple indices.\n */\nexport function getAlgoliaFacets<TTHit>(requestParams: RequestParams<TTHit>) {\n const requester = createAlgoliaRequester({\n transformResponse: (response) => response.facetHits,\n });\n\n const queries = requestParams.queries.map((query) => ({\n ...query,\n type: 'facet',\n })) as MultipleQueriesQuery[];\n\n return requester({\n ...requestParams,\n queries,\n });\n}\n","import { createAlgoliaRequester } from './createAlgoliaRequester';\n\n/**\n * Retrieves Algolia results from multiple indices.\n */\nexport const getAlgoliaResults = createAlgoliaRequester({\n transformResponse: (response) => response.hits,\n});\n"],"names":["getAttributeValueByPath","record","path","reduce","current","key","warnCache","warn","condition","message","sanitizedMessage","trim","hasAlreadyPrinted","console","concat","HIGHLIGHT_PRE_TAG","HIGHLIGHT_POST_TAG","createAttributeSet","initialValue","value","get","add","part","lastPart","length","isHighlighted","push","parseAttribute","highlightedValue","preTagParts","split","firstValue","shift","parts","forEach","postTagParts","parseAlgoliaHitHighlight","hit","attribute","Array","isArray","process","join","JSON","stringify","htmlEscapes","hasAlphanumeric","RegExp","regexEscapedHtml","regexHasEscapedHtml","source","unescape","test","replace","character","isPartHighlighted","i","isNextHighlighted","isPreviousHighlighted","reverseHighlightedParts","some","map","parseAlgoliaHitReverseHighlight","props","parseAlgoliaHitSnippet","parseAlgoliaHitReverseSnippet","createRequester","fetcher","execute","fetcherParams","searchClient","queries","requests","x","query","then","responses","response","index","sourceId","transformResponse","items","createSpecifiedRequester","requesterParams","requester","requestParams","version","fetchAlgoliaResults","userAgents","addAlgoliaAgent","algoliaAgents","segment","search","searchParameters","params","headers","hitsPerPage","highlightPreTag","highlightPostTag","results","createAlgoliaRequester","getAlgoliaFacets","facetHits","type","getAlgoliaResults","hits"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.development.js","sources":["../../../autocomplete-shared/dist/esm/getAttributeValueByPath.js","../../../autocomplete-shared/dist/esm/version.js","../../../autocomplete-shared/dist/esm/userAgents.js","../../../autocomplete-shared/dist/esm/warn.js","../../src/constants/index.ts","../../src/highlight/parseAttribute.ts","../../src/highlight/parseAlgoliaHitHighlight.ts","../../src/highlight/isPartHighlighted.ts","../../src/highlight/reverseHighlightedParts.ts","../../src/highlight/parseAlgoliaHitReverseHighlight.ts","../../src/highlight/parseAlgoliaHitSnippet.ts","../../src/highlight/parseAlgoliaHitReverseSnippet.ts","../../src/requester/createRequester.ts","../../src/search/fetchAlgoliaResults.ts","../../src/requester/createAlgoliaRequester.ts","../../src/requester/getAlgoliaFacets.ts","../../src/requester/getAlgoliaResults.ts"],"sourcesContent":["export function getAttributeValueByPath(record, path) {\n return path.reduce(function (current, key) {\n return current && current[key];\n }, record);\n}","export var version = '1.5.0';","import { version } from './version';\nexport var userAgents = [{\n segment: 'autocomplete-core',\n version: version\n}];","export var warnCache = {\n current: {}\n};\n/**\n * Logs a warning if the condition is not met.\n * This is used to log issues in development environment only.\n */\n\nexport function warn(condition, message) {\n if (!(process.env.NODE_ENV !== 'production')) {\n return;\n }\n\n if (condition) {\n return;\n }\n\n var sanitizedMessage = message.trim();\n var hasAlreadyPrinted = warnCache.current[sanitizedMessage];\n\n if (!hasAlreadyPrinted) {\n warnCache.current[sanitizedMessage] = true; // eslint-disable-next-line no-console\n\n console.warn(\"[Autocomplete] \".concat(sanitizedMessage));\n }\n}","export const HIGHLIGHT_PRE_TAG = '__aa-highlight__';\nexport const HIGHLIGHT_POST_TAG = '__/aa-highlight__';\n","import { HIGHLIGHT_PRE_TAG, HIGHLIGHT_POST_TAG } from '../constants';\n\nimport { ParsedAttribute } from './ParsedAttribute';\n\n/**\n * Creates a data structure that allows to concatenate similar highlighting\n * parts in a single value.\n */\nfunction createAttributeSet(initialValue: ParsedAttribute[] = []) {\n const value = initialValue;\n\n return {\n get() {\n return value;\n },\n add(part: ParsedAttribute) {\n const lastPart: ParsedAttribute | undefined = value[value.length - 1];\n\n if (lastPart?.isHighlighted === part.isHighlighted) {\n value[value.length - 1] = {\n value: lastPart.value + part.value,\n isHighlighted: lastPart.isHighlighted,\n };\n } else {\n value.push(part);\n }\n },\n };\n}\n\ntype ParseAttributeParams = {\n highlightedValue: string;\n};\n\nexport function parseAttribute({\n highlightedValue,\n}: ParseAttributeParams): ParsedAttribute[] {\n const preTagParts = highlightedValue.split(HIGHLIGHT_PRE_TAG);\n const firstValue = preTagParts.shift();\n const parts = createAttributeSet(\n firstValue ? [{ value: firstValue, isHighlighted: false }] : []\n );\n\n preTagParts.forEach((part) => {\n const postTagParts = part.split(HIGHLIGHT_POST_TAG);\n\n parts.add({\n value: postTagParts[0],\n isHighlighted: true,\n });\n\n if (postTagParts[1] !== '') {\n parts.add({\n value: postTagParts[1],\n isHighlighted: false,\n });\n }\n });\n\n return parts.get();\n}\n","import { getAttributeValueByPath, warn } from '@algolia/autocomplete-shared';\n\nimport { HighlightedHit } from './HighlightedHit';\nimport { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { parseAttribute } from './parseAttribute';\nimport { ParsedAttribute } from './ParsedAttribute';\n\nexport function parseAlgoliaHitHighlight<THit extends HighlightedHit<unknown>>({\n hit,\n attribute,\n}: ParseAlgoliaHitParams<THit>): ParsedAttribute[] {\n const path = Array.isArray(attribute) ? attribute : ([attribute] as string[]);\n let highlightedValue = getAttributeValueByPath(hit, [\n '_highlightResult',\n ...path,\n 'value',\n ]);\n\n if (typeof highlightedValue !== 'string') {\n warn(\n false,\n `The attribute \"${path.join('.')}\" described by the path ${JSON.stringify(\n path\n )} does not exist on the hit. Did you set it in \\`attributesToHighlight\\`?` +\n '\\nSee https://www.algolia.com/doc/api-reference/api-parameters/attributesToHighlight/'\n );\n\n highlightedValue = getAttributeValueByPath(hit, path) || '';\n }\n\n return parseAttribute({ highlightedValue });\n}\n","import { ParsedAttribute } from './ParsedAttribute';\n\nconst htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\",\n};\nconst hasAlphanumeric = new RegExp(/\\w/i);\nconst regexEscapedHtml = /&(amp|quot|lt|gt|#39);/g;\nconst regexHasEscapedHtml = RegExp(regexEscapedHtml.source);\n\nfunction unescape(value: string): string {\n return value && regexHasEscapedHtml.test(value)\n ? value.replace(regexEscapedHtml, (character) => htmlEscapes[character])\n : value;\n}\n\nexport function isPartHighlighted(parts: ParsedAttribute[], i: number) {\n const current = parts[i];\n const isNextHighlighted = parts[i + 1]?.isHighlighted || true;\n const isPreviousHighlighted = parts[i - 1]?.isHighlighted || true;\n\n if (\n !hasAlphanumeric.test(unescape(current.value)) &&\n isPreviousHighlighted === isNextHighlighted\n ) {\n return isPreviousHighlighted;\n }\n\n return current.isHighlighted;\n}\n","import { isPartHighlighted } from './isPartHighlighted';\nimport { ParsedAttribute } from './ParsedAttribute';\n\nexport function reverseHighlightedParts(parts: ParsedAttribute[]) {\n // We don't want to highlight the whole word when no parts match.\n if (!parts.some((part) => part.isHighlighted)) {\n return parts.map((part) => ({ ...part, isHighlighted: false }));\n }\n\n return parts.map((part, i) => ({\n ...part,\n isHighlighted: !isPartHighlighted(parts, i),\n }));\n}\n","import { HighlightedHit } from './HighlightedHit';\nimport { parseAlgoliaHitHighlight } from './parseAlgoliaHitHighlight';\nimport { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { ParsedAttribute } from './ParsedAttribute';\nimport { reverseHighlightedParts } from './reverseHighlightedParts';\n\nexport function parseAlgoliaHitReverseHighlight<\n THit extends HighlightedHit<unknown>\n>(props: ParseAlgoliaHitParams<THit>): ParsedAttribute[] {\n return reverseHighlightedParts(parseAlgoliaHitHighlight<THit>(props));\n}\n","import { getAttributeValueByPath, warn } from '@algolia/autocomplete-shared';\n\nimport { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { parseAttribute } from './parseAttribute';\nimport { ParsedAttribute } from './ParsedAttribute';\nimport { SnippetedHit } from './SnippetedHit';\n\nexport function parseAlgoliaHitSnippet<THit extends SnippetedHit<unknown>>({\n hit,\n attribute,\n}: ParseAlgoliaHitParams<THit>): ParsedAttribute[] {\n const path = Array.isArray(attribute) ? attribute : ([attribute] as string[]);\n let highlightedValue = getAttributeValueByPath(hit, [\n '_snippetResult',\n ...path,\n 'value',\n ]);\n\n if (typeof highlightedValue !== 'string') {\n warn(\n false,\n `The attribute \"${path.join('.')}\" described by the path ${JSON.stringify(\n path\n )} does not exist on the hit. Did you set it in \\`attributesToSnippet\\`?` +\n '\\nSee https://www.algolia.com/doc/api-reference/api-parameters/attributesToSnippet/'\n );\n\n highlightedValue = getAttributeValueByPath(hit, path) || '';\n }\n\n return parseAttribute({ highlightedValue });\n}\n","import { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { parseAlgoliaHitSnippet } from './parseAlgoliaHitSnippet';\nimport { ParsedAttribute } from './ParsedAttribute';\nimport { reverseHighlightedParts } from './reverseHighlightedParts';\nimport { SnippetedHit } from './SnippetedHit';\n\nexport function parseAlgoliaHitReverseSnippet<\n THit extends SnippetedHit<unknown>\n>(props: ParseAlgoliaHitParams<THit>): ParsedAttribute[] {\n return reverseHighlightedParts(parseAlgoliaHitSnippet<THit>(props));\n}\n","import {\n MultipleQueriesQuery,\n SearchForFacetValuesResponse,\n SearchResponse,\n} from '@algolia/client-search';\nimport { SearchClient } from 'algoliasearch/lite';\n\nimport { fetchAlgoliaResults } from '../search';\n\ntype Fetcher = typeof fetchAlgoliaResults;\n\ntype FacetHit = {\n label: string;\n count: number;\n _highlightResult: {\n label: {\n value: string;\n };\n };\n};\n\nexport type FetcherParams = Pick<\n Parameters<Fetcher>[0],\n 'searchClient' | 'queries'\n>;\n\nexport type RequesterParams<THit> = {\n transformResponse(\n response: TransformResponseParams<THit>\n ): TransformedRequesterResponse<THit>;\n};\n\ntype TransformResponseParams<THit> = {\n results: Array<SearchResponse<THit> | SearchForFacetValuesResponse>;\n hits: Array<SearchResponse<THit>['hits']>;\n facetHits: FacetHit[][];\n};\n\nexport type TransformedRequesterResponse<THit> =\n | Array<SearchResponse<THit>['hits']>\n | SearchResponse<THit>['hits']\n | FacetHit[][]\n | FacetHit[];\n\nexport type TransformResponse<THit> = (\n response: TransformResponseParams<THit>\n) => TransformedRequesterResponse<THit>;\n\ntype FetcherParamsQuery<THit> = {\n query: MultipleQueriesQuery;\n sourceId: string;\n transformResponse: TransformResponse<THit>;\n};\n\ntype ExecuteParams<THit> = {\n searchClient: SearchClient;\n requests: Array<FetcherParamsQuery<THit>>;\n};\n\nexport type Execute<THit> = (\n params: ExecuteParams<THit>\n) => Promise<ExecuteResponse<THit>>;\n\nexport type ExecuteResponse<THit> = Array<{\n items: SearchResponse<THit> | SearchForFacetValuesResponse;\n sourceId: string;\n transformResponse: TransformResponse<THit>;\n}>;\n\nexport type RequestParams<THit> = FetcherParams & {\n /**\n * The function to transform the Algolia response before passing it to the Autocomplete state. You have access to the full Algolia results, as well as the pre-computed hits and facet hits.\n *\n * This is useful to manipulate the hits, or store data from the results in the [context](https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/context/).\n */\n transformResponse?: TransformResponse<THit>;\n};\n\nexport type RequesterDescription<THit> = {\n searchClient: SearchClient;\n queries: MultipleQueriesQuery[];\n transformResponse: TransformResponse<THit>;\n execute: Execute<THit>;\n};\n\nexport function createRequester(fetcher: Fetcher) {\n function execute<THit>(fetcherParams: ExecuteParams<THit>) {\n return fetcher<THit>({\n searchClient: fetcherParams.searchClient,\n queries: fetcherParams.requests.map((x) => x.query),\n }).then((responses) =>\n responses.map((response, index) => {\n const { sourceId, transformResponse } = fetcherParams.requests[index];\n\n return {\n items: response,\n sourceId,\n transformResponse,\n };\n })\n );\n }\n\n return function createSpecifiedRequester(\n requesterParams: RequesterParams<any>\n ) {\n return function requester<TTHit>(\n requestParams: RequestParams<TTHit>\n ): RequesterDescription<TTHit> {\n return {\n execute,\n ...requesterParams,\n ...requestParams,\n };\n };\n };\n}\n","import {\n userAgents as coreUserAgents,\n UserAgent,\n} from '@algolia/autocomplete-shared';\nimport {\n MultipleQueriesQuery,\n SearchForFacetValuesResponse,\n SearchResponse,\n} from '@algolia/client-search';\nimport type { SearchClient } from 'algoliasearch/lite';\n\nimport { HIGHLIGHT_PRE_TAG, HIGHLIGHT_POST_TAG } from '../constants';\n\nexport interface SearchParams {\n /**\n * The initialized Algolia search client.\n */\n searchClient: SearchClient;\n /**\n * A list of queries to execute.\n */\n queries: MultipleQueriesQuery[];\n /**\n * A list of user agents to add to the search client.\n *\n * This is useful to track usage of an integration.\n */\n userAgents?: UserAgent[];\n}\n\nexport function fetchAlgoliaResults<TRecord>({\n searchClient,\n queries,\n userAgents = [],\n}: SearchParams): Promise<\n Array<SearchResponse<TRecord> | SearchForFacetValuesResponse>\n> {\n if (typeof searchClient.addAlgoliaAgent === 'function') {\n const algoliaAgents: UserAgent[] = [...coreUserAgents, ...userAgents];\n\n algoliaAgents.forEach(({ segment, version }) => {\n searchClient.addAlgoliaAgent(segment, version);\n });\n }\n\n return searchClient\n .search<TRecord>(\n queries.map((searchParameters) => {\n const { params, ...headers } = searchParameters;\n\n return {\n ...headers,\n params: {\n hitsPerPage: 5,\n highlightPreTag: HIGHLIGHT_PRE_TAG,\n highlightPostTag: HIGHLIGHT_POST_TAG,\n ...params,\n },\n };\n })\n )\n .then((response) => {\n return response.results;\n });\n}\n","import { fetchAlgoliaResults } from '../search';\n\nimport { createRequester } from './createRequester';\n\nexport const createAlgoliaRequester = createRequester(fetchAlgoliaResults);\n","import { MultipleQueriesQuery } from '@algolia/client-search';\n\nimport { createAlgoliaRequester } from './createAlgoliaRequester';\nimport { RequestParams } from './createRequester';\n\n/**\n * Retrieves Algolia facet hits from multiple indices.\n */\nexport function getAlgoliaFacets<TTHit>(requestParams: RequestParams<TTHit>) {\n const requester = createAlgoliaRequester({\n transformResponse: (response) => response.facetHits,\n });\n\n const queries = requestParams.queries.map((query) => ({\n ...query,\n type: 'facet',\n })) as MultipleQueriesQuery[];\n\n return requester({\n ...requestParams,\n queries,\n });\n}\n","import { createAlgoliaRequester } from './createAlgoliaRequester';\n\n/**\n * Retrieves Algolia results from multiple indices.\n */\nexport const getAlgoliaResults = createAlgoliaRequester({\n transformResponse: (response) => response.hits,\n});\n"],"names":["getAttributeValueByPath","record","path","reduce","current","key","version","userAgents","segment","warnCache","warn","condition","message","sanitizedMessage","trim","hasAlreadyPrinted","console","concat","HIGHLIGHT_PRE_TAG","HIGHLIGHT_POST_TAG","createAttributeSet","initialValue","value","get","add","part","lastPart","length","isHighlighted","push","parseAttribute","highlightedValue","preTagParts","split","firstValue","shift","parts","forEach","postTagParts","parseAlgoliaHitHighlight","hit","attribute","Array","isArray","process","join","JSON","stringify","htmlEscapes","hasAlphanumeric","RegExp","regexEscapedHtml","regexHasEscapedHtml","source","unescape","test","replace","character","isPartHighlighted","i","isNextHighlighted","isPreviousHighlighted","reverseHighlightedParts","some","map","parseAlgoliaHitReverseHighlight","props","parseAlgoliaHitSnippet","parseAlgoliaHitReverseSnippet","createRequester","fetcher","execute","fetcherParams","searchClient","queries","requests","x","query","then","responses","response","index","sourceId","transformResponse","items","createSpecifiedRequester","requesterParams","requester","requestParams","fetchAlgoliaResults","addAlgoliaAgent","algoliaAgents","coreUserAgents","search","searchParameters","params","headers","hitsPerPage","highlightPreTag","highlightPostTag","results","createAlgoliaRequester","getAlgoliaFacets","facetHits","type","getAlgoliaResults","hits"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/*! @algolia/autocomplete-preset-algolia 1.
|
|
2
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@algolia/autocomplete-preset-algolia"]={})}(this,(function(e){"use strict";function t(e,t
|
|
1
|
+
/*! @algolia/autocomplete-preset-algolia 1.5.0 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */
|
|
2
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@algolia/autocomplete-preset-algolia"]={})}(this,(function(e){"use strict";function t(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function r(e){for(var r=1;r<arguments.length;r++){var i=null!=arguments[r]?arguments[r]:{};r%2?t(Object(i),!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):t(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function o(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return u(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return u(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function a(e,t){return t.reduce((function(e,t){return e&&e[t]}),e)}var l=[{segment:"autocomplete-core",version:"1.5.0"}];var s="__aa-highlight__",c="__/aa-highlight__";function f(e){var t=e.highlightedValue.split(s),r=t.shift(),n=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{get:function(){return e},add:function(t){var r=e[e.length-1];(null==r?void 0:r.isHighlighted)===t.isHighlighted?e[e.length-1]={value:r.value+t.value,isHighlighted:r.isHighlighted}:e.push(t)}}}(r?[{value:r,isHighlighted:!1}]:[]);return t.forEach((function(e){var t=e.split(c);n.add({value:t[0],isHighlighted:!0}),""!==t[1]&&n.add({value:t[1],isHighlighted:!1})})),n.get()}function g(e){var t=e.hit,r=e.attribute,n=Array.isArray(r)?r:[r],i=a(t,["_highlightResult"].concat(o(n),["value"]));return"string"!=typeof i&&(i=a(t,n)||""),f({highlightedValue:i})}var h={"&":"&","<":"<",">":">",""":'"',"'":"'"},p=new RegExp(/\w/i),d=/&(amp|quot|lt|gt|#39);/g,v=RegExp(d.source);function y(e,t){var r,n,i,o=e[t],u=(null===(r=e[t+1])||void 0===r?void 0:r.isHighlighted)||!0,a=(null===(n=e[t-1])||void 0===n?void 0:n.isHighlighted)||!0;return p.test((i=o.value)&&v.test(i)?i.replace(d,(function(e){return h[e]})):i)||a!==u?o.isHighlighted:a}function m(e){return e.some((function(e){return e.isHighlighted}))?e.map((function(t,n){return r(r({},t),{},{isHighlighted:!y(e,n)})})):e.map((function(e){return r(r({},e),{},{isHighlighted:!1})}))}function b(e){var t=e.hit,r=e.attribute,n=Array.isArray(r)?r:[r],i=a(t,["_snippetResult"].concat(o(n),["value"]));return"string"!=typeof i&&(i=a(t,n)||""),f({highlightedValue:i})}function O(e){function t(t){return e({searchClient:t.searchClient,queries:t.requests.map((function(e){return e.query}))}).then((function(e){return e.map((function(e,r){var n=t.requests[r];return{items:e,sourceId:n.sourceId,transformResponse:n.transformResponse}}))}))}return function(e){return function(n){return r(r({execute:t},e),n)}}}var A=["params"];function j(e){var t=e.searchClient,n=e.queries,u=e.userAgents,a=void 0===u?[]:u;"function"==typeof t.addAlgoliaAgent&&[].concat(o(l),o(a)).forEach((function(e){var r=e.segment,n=e.version;t.addAlgoliaAgent(r,n)}));return t.search(n.map((function(e){var t=e.params;return r(r({},i(e,A)),{},{params:r({hitsPerPage:5,highlightPreTag:s,highlightPostTag:c},t)})}))).then((function(e){return e.results}))}var H=O(j);var P=H({transformResponse:function(e){return e.hits}});e.createRequester=O,e.fetchAlgoliaResults=j,e.getAlgoliaFacets=function(e){var t=H({transformResponse:function(e){return e.facetHits}}),n=e.queries.map((function(e){return r(r({},e),{},{type:"facet"})}));return t(r(r({},e),{},{queries:n}))},e.getAlgoliaResults=P,e.parseAlgoliaHitHighlight=g,e.parseAlgoliaHitReverseHighlight=function(e){return m(g(e))},e.parseAlgoliaHitReverseSnippet=function(e){return m(b(e))},e.parseAlgoliaHitSnippet=b,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
3
3
|
//# sourceMappingURL=index.production.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.production.js","sources":["../../../autocomplete-shared/dist/esm/getAttributeValueByPath.js","../../src/constants/index.ts","../../src/highlight/parseAttribute.ts","../../src/highlight/parseAlgoliaHitHighlight.ts","../../src/highlight/isPartHighlighted.ts","../../src/highlight/reverseHighlightedParts.ts","../../src/highlight/parseAlgoliaHitSnippet.ts","../../src/requester/createRequester.ts","../../src/version.ts","../../src/search/fetchAlgoliaResults.ts","../../src/requester/createAlgoliaRequester.ts","../../src/requester/getAlgoliaResults.ts","../../src/requester/getAlgoliaFacets.ts","../../src/highlight/parseAlgoliaHitReverseHighlight.ts","../../src/highlight/parseAlgoliaHitReverseSnippet.ts"],"sourcesContent":["export function getAttributeValueByPath(record, path) {\n return path.reduce(function (current, key) {\n return current && current[key];\n }, record);\n}","export const HIGHLIGHT_PRE_TAG = '__aa-highlight__';\nexport const HIGHLIGHT_POST_TAG = '__/aa-highlight__';\n","import { HIGHLIGHT_PRE_TAG, HIGHLIGHT_POST_TAG } from '../constants';\n\nimport { ParsedAttribute } from './ParsedAttribute';\n\n/**\n * Creates a data structure that allows to concatenate similar highlighting\n * parts in a single value.\n */\nfunction createAttributeSet(initialValue: ParsedAttribute[] = []) {\n const value = initialValue;\n\n return {\n get() {\n return value;\n },\n add(part: ParsedAttribute) {\n const lastPart: ParsedAttribute | undefined = value[value.length - 1];\n\n if (lastPart?.isHighlighted === part.isHighlighted) {\n value[value.length - 1] = {\n value: lastPart.value + part.value,\n isHighlighted: lastPart.isHighlighted,\n };\n } else {\n value.push(part);\n }\n },\n };\n}\n\ntype ParseAttributeParams = {\n highlightedValue: string;\n};\n\nexport function parseAttribute({\n highlightedValue,\n}: ParseAttributeParams): ParsedAttribute[] {\n const preTagParts = highlightedValue.split(HIGHLIGHT_PRE_TAG);\n const firstValue = preTagParts.shift();\n const parts = createAttributeSet(\n firstValue ? [{ value: firstValue, isHighlighted: false }] : []\n );\n\n preTagParts.forEach((part) => {\n const postTagParts = part.split(HIGHLIGHT_POST_TAG);\n\n parts.add({\n value: postTagParts[0],\n isHighlighted: true,\n });\n\n if (postTagParts[1] !== '') {\n parts.add({\n value: postTagParts[1],\n isHighlighted: false,\n });\n }\n });\n\n return parts.get();\n}\n","import { getAttributeValueByPath, warn } from '@algolia/autocomplete-shared';\n\nimport { HighlightedHit } from './HighlightedHit';\nimport { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { parseAttribute } from './parseAttribute';\nimport { ParsedAttribute } from './ParsedAttribute';\n\nexport function parseAlgoliaHitHighlight<THit extends HighlightedHit<unknown>>({\n hit,\n attribute,\n}: ParseAlgoliaHitParams<THit>): ParsedAttribute[] {\n const path = Array.isArray(attribute) ? attribute : ([attribute] as string[]);\n let highlightedValue = getAttributeValueByPath(hit, [\n '_highlightResult',\n ...path,\n 'value',\n ]);\n\n if (typeof highlightedValue !== 'string') {\n warn(\n false,\n `The attribute \"${path.join('.')}\" described by the path ${JSON.stringify(\n path\n )} does not exist on the hit. Did you set it in \\`attributesToHighlight\\`?` +\n '\\nSee https://www.algolia.com/doc/api-reference/api-parameters/attributesToHighlight/'\n );\n\n highlightedValue = getAttributeValueByPath(hit, path) || '';\n }\n\n return parseAttribute({ highlightedValue });\n}\n","import { ParsedAttribute } from './ParsedAttribute';\n\nconst htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\",\n};\nconst hasAlphanumeric = new RegExp(/\\w/i);\nconst regexEscapedHtml = /&(amp|quot|lt|gt|#39);/g;\nconst regexHasEscapedHtml = RegExp(regexEscapedHtml.source);\n\nfunction unescape(value: string): string {\n return value && regexHasEscapedHtml.test(value)\n ? value.replace(regexEscapedHtml, (character) => htmlEscapes[character])\n : value;\n}\n\nexport function isPartHighlighted(parts: ParsedAttribute[], i: number) {\n const current = parts[i];\n const isNextHighlighted = parts[i + 1]?.isHighlighted || true;\n const isPreviousHighlighted = parts[i - 1]?.isHighlighted || true;\n\n if (\n !hasAlphanumeric.test(unescape(current.value)) &&\n isPreviousHighlighted === isNextHighlighted\n ) {\n return isPreviousHighlighted;\n }\n\n return current.isHighlighted;\n}\n","import { isPartHighlighted } from './isPartHighlighted';\nimport { ParsedAttribute } from './ParsedAttribute';\n\nexport function reverseHighlightedParts(parts: ParsedAttribute[]) {\n // We don't want to highlight the whole word when no parts match.\n if (!parts.some((part) => part.isHighlighted)) {\n return parts.map((part) => ({ ...part, isHighlighted: false }));\n }\n\n return parts.map((part, i) => ({\n ...part,\n isHighlighted: !isPartHighlighted(parts, i),\n }));\n}\n","import { getAttributeValueByPath, warn } from '@algolia/autocomplete-shared';\n\nimport { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { parseAttribute } from './parseAttribute';\nimport { ParsedAttribute } from './ParsedAttribute';\nimport { SnippetedHit } from './SnippetedHit';\n\nexport function parseAlgoliaHitSnippet<THit extends SnippetedHit<unknown>>({\n hit,\n attribute,\n}: ParseAlgoliaHitParams<THit>): ParsedAttribute[] {\n const path = Array.isArray(attribute) ? attribute : ([attribute] as string[]);\n let highlightedValue = getAttributeValueByPath(hit, [\n '_snippetResult',\n ...path,\n 'value',\n ]);\n\n if (typeof highlightedValue !== 'string') {\n warn(\n false,\n `The attribute \"${path.join('.')}\" described by the path ${JSON.stringify(\n path\n )} does not exist on the hit. Did you set it in \\`attributesToSnippet\\`?` +\n '\\nSee https://www.algolia.com/doc/api-reference/api-parameters/attributesToSnippet/'\n );\n\n highlightedValue = getAttributeValueByPath(hit, path) || '';\n }\n\n return parseAttribute({ highlightedValue });\n}\n","import {\n MultipleQueriesQuery,\n SearchForFacetValuesResponse,\n SearchResponse,\n} from '@algolia/client-search';\nimport { SearchClient } from 'algoliasearch/lite';\n\nimport { fetchAlgoliaResults } from '../search';\n\ntype Fetcher = typeof fetchAlgoliaResults;\n\ntype FacetHit = {\n label: string;\n count: number;\n _highlightResult: {\n label: {\n value: string;\n };\n };\n};\n\nexport type FetcherParams = Pick<\n Parameters<Fetcher>[0],\n 'searchClient' | 'queries'\n>;\n\nexport type RequesterParams<THit> = {\n transformResponse(\n response: TransformResponseParams<THit>\n ): TransformedRequesterResponse<THit>;\n};\n\ntype TransformResponseParams<THit> = {\n results: Array<SearchResponse<THit> | SearchForFacetValuesResponse>;\n hits: Array<SearchResponse<THit>['hits']>;\n facetHits: FacetHit[][];\n};\n\nexport type TransformedRequesterResponse<THit> =\n | Array<SearchResponse<THit>['hits']>\n | SearchResponse<THit>['hits']\n | FacetHit[][]\n | FacetHit[];\n\nexport type TransformResponse<THit> = (\n response: TransformResponseParams<THit>\n) => TransformedRequesterResponse<THit>;\n\ntype FetcherParamsQuery<THit> = {\n query: MultipleQueriesQuery;\n sourceId: string;\n transformResponse: TransformResponse<THit>;\n};\n\ntype ExecuteParams<THit> = {\n searchClient: SearchClient;\n requests: Array<FetcherParamsQuery<THit>>;\n};\n\nexport type Execute<THit> = (\n params: ExecuteParams<THit>\n) => Promise<ExecuteResponse<THit>>;\n\nexport type ExecuteResponse<THit> = Array<{\n items: SearchResponse<THit> | SearchForFacetValuesResponse;\n sourceId: string;\n transformResponse: TransformResponse<THit>;\n}>;\n\nexport type RequestParams<THit> = FetcherParams & {\n /**\n * The function to transform the Algolia response before passing it to the Autocomplete state. You have access to the full Algolia results, as well as the pre-computed hits and facet hits.\n *\n * This is useful to manipulate the hits, or store data from the results in the [context](https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/context/).\n */\n transformResponse?: TransformResponse<THit>;\n};\n\nexport type RequesterDescription<THit> = {\n searchClient: SearchClient;\n queries: MultipleQueriesQuery[];\n transformResponse: TransformResponse<THit>;\n execute: Execute<THit>;\n};\n\nexport function createRequester(fetcher: Fetcher) {\n function execute<THit>(fetcherParams: ExecuteParams<THit>) {\n return fetcher<THit>({\n searchClient: fetcherParams.searchClient,\n queries: fetcherParams.requests.map((x) => x.query),\n }).then((responses) =>\n responses.map((response, index) => {\n const { sourceId, transformResponse } = fetcherParams.requests[index];\n\n return {\n items: response,\n sourceId,\n transformResponse,\n };\n })\n );\n }\n\n return function createSpecifiedRequester(\n requesterParams: RequesterParams<any>\n ) {\n return function requester<TTHit>(\n requestParams: RequestParams<TTHit>\n ): RequesterDescription<TTHit> {\n return {\n execute,\n ...requesterParams,\n ...requestParams,\n };\n };\n };\n}\n","export const version = '1.2.2';\n","import {\n MultipleQueriesQuery,\n SearchForFacetValuesResponse,\n SearchResponse,\n} from '@algolia/client-search';\nimport type { SearchClient } from 'algoliasearch/lite';\n\nimport { HIGHLIGHT_PRE_TAG, HIGHLIGHT_POST_TAG } from '../constants';\nimport { version } from '../version';\n\ntype UserAgent = { segment: string; version?: string };\n\nexport interface SearchParams {\n /**\n * The initialized Algolia search client.\n */\n searchClient: SearchClient;\n /**\n * A list of queries to execute.\n */\n queries: MultipleQueriesQuery[];\n /**\n * A list of user agents to add to the search client.\n *\n * This is useful to track usage of an integration.\n */\n userAgents?: UserAgent[];\n}\n\nexport function fetchAlgoliaResults<TRecord>({\n searchClient,\n queries,\n userAgents = [],\n}: SearchParams): Promise<\n Array<SearchResponse<TRecord> | SearchForFacetValuesResponse>\n> {\n if (typeof searchClient.addAlgoliaAgent === 'function') {\n const algoliaAgents: UserAgent[] = [\n { segment: 'autocomplete-core', version },\n ...userAgents,\n ];\n\n algoliaAgents.forEach(({ segment, version }) => {\n searchClient.addAlgoliaAgent(segment, version);\n });\n }\n\n return searchClient\n .search<TRecord>(\n queries.map((searchParameters) => {\n const { params, ...headers } = searchParameters;\n\n return {\n ...headers,\n params: {\n hitsPerPage: 5,\n highlightPreTag: HIGHLIGHT_PRE_TAG,\n highlightPostTag: HIGHLIGHT_POST_TAG,\n ...params,\n },\n };\n })\n )\n .then((response) => {\n return response.results;\n });\n}\n","import { fetchAlgoliaResults } from '../search';\n\nimport { createRequester } from './createRequester';\n\nexport const createAlgoliaRequester = createRequester(fetchAlgoliaResults);\n","import { createAlgoliaRequester } from './createAlgoliaRequester';\n\n/**\n * Retrieves Algolia results from multiple indices.\n */\nexport const getAlgoliaResults = createAlgoliaRequester({\n transformResponse: (response) => response.hits,\n});\n","import { MultipleQueriesQuery } from '@algolia/client-search';\n\nimport { createAlgoliaRequester } from './createAlgoliaRequester';\nimport { RequestParams } from './createRequester';\n\n/**\n * Retrieves Algolia facet hits from multiple indices.\n */\nexport function getAlgoliaFacets<TTHit>(requestParams: RequestParams<TTHit>) {\n const requester = createAlgoliaRequester({\n transformResponse: (response) => response.facetHits,\n });\n\n const queries = requestParams.queries.map((query) => ({\n ...query,\n type: 'facet',\n })) as MultipleQueriesQuery[];\n\n return requester({\n ...requestParams,\n queries,\n });\n}\n","import { HighlightedHit } from './HighlightedHit';\nimport { parseAlgoliaHitHighlight } from './parseAlgoliaHitHighlight';\nimport { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { ParsedAttribute } from './ParsedAttribute';\nimport { reverseHighlightedParts } from './reverseHighlightedParts';\n\nexport function parseAlgoliaHitReverseHighlight<\n THit extends HighlightedHit<unknown>\n>(props: ParseAlgoliaHitParams<THit>): ParsedAttribute[] {\n return reverseHighlightedParts(parseAlgoliaHitHighlight<THit>(props));\n}\n","import { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { parseAlgoliaHitSnippet } from './parseAlgoliaHitSnippet';\nimport { ParsedAttribute } from './ParsedAttribute';\nimport { reverseHighlightedParts } from './reverseHighlightedParts';\nimport { SnippetedHit } from './SnippetedHit';\n\nexport function parseAlgoliaHitReverseSnippet<\n THit extends SnippetedHit<unknown>\n>(props: ParseAlgoliaHitParams<THit>): ParsedAttribute[] {\n return reverseHighlightedParts(parseAlgoliaHitSnippet<THit>(props));\n}\n"],"names":["getAttributeValueByPath","record","path","reduce","current","key","HIGHLIGHT_PRE_TAG","HIGHLIGHT_POST_TAG","parseAttribute","preTagParts","highlightedValue","split","firstValue","shift","parts","value","get","add","part","lastPart","length","isHighlighted","push","createAttributeSet","forEach","postTagParts","parseAlgoliaHitHighlight","hit","attribute","Array","isArray","htmlEscapes","hasAlphanumeric","RegExp","regexEscapedHtml","regexHasEscapedHtml","source","isPartHighlighted","i","isNextHighlighted","isPreviousHighlighted","test","replace","character","reverseHighlightedParts","some","map","parseAlgoliaHitSnippet","createRequester","fetcher","execute","fetcherParams","searchClient","queries","requests","x","query","then","responses","response","index","items","sourceId","transformResponse","requesterParams","requestParams","version","fetchAlgoliaResults","userAgents","addAlgoliaAgent","segment","search","searchParameters","params","hitsPerPage","highlightPreTag","highlightPostTag","results","createAlgoliaRequester","getAlgoliaResults","hits","requester","facetHits","type","props"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.production.js","sources":["../../../autocomplete-shared/dist/esm/getAttributeValueByPath.js","../../../autocomplete-shared/dist/esm/version.js","../../../autocomplete-shared/dist/esm/userAgents.js","../../src/constants/index.ts","../../src/highlight/parseAttribute.ts","../../src/highlight/parseAlgoliaHitHighlight.ts","../../src/highlight/isPartHighlighted.ts","../../src/highlight/reverseHighlightedParts.ts","../../src/highlight/parseAlgoliaHitSnippet.ts","../../src/requester/createRequester.ts","../../src/search/fetchAlgoliaResults.ts","../../src/requester/createAlgoliaRequester.ts","../../src/requester/getAlgoliaResults.ts","../../src/requester/getAlgoliaFacets.ts","../../src/highlight/parseAlgoliaHitReverseHighlight.ts","../../src/highlight/parseAlgoliaHitReverseSnippet.ts"],"sourcesContent":["export function getAttributeValueByPath(record, path) {\n return path.reduce(function (current, key) {\n return current && current[key];\n }, record);\n}","export var version = '1.5.0';","import { version } from './version';\nexport var userAgents = [{\n segment: 'autocomplete-core',\n version: version\n}];","export const HIGHLIGHT_PRE_TAG = '__aa-highlight__';\nexport const HIGHLIGHT_POST_TAG = '__/aa-highlight__';\n","import { HIGHLIGHT_PRE_TAG, HIGHLIGHT_POST_TAG } from '../constants';\n\nimport { ParsedAttribute } from './ParsedAttribute';\n\n/**\n * Creates a data structure that allows to concatenate similar highlighting\n * parts in a single value.\n */\nfunction createAttributeSet(initialValue: ParsedAttribute[] = []) {\n const value = initialValue;\n\n return {\n get() {\n return value;\n },\n add(part: ParsedAttribute) {\n const lastPart: ParsedAttribute | undefined = value[value.length - 1];\n\n if (lastPart?.isHighlighted === part.isHighlighted) {\n value[value.length - 1] = {\n value: lastPart.value + part.value,\n isHighlighted: lastPart.isHighlighted,\n };\n } else {\n value.push(part);\n }\n },\n };\n}\n\ntype ParseAttributeParams = {\n highlightedValue: string;\n};\n\nexport function parseAttribute({\n highlightedValue,\n}: ParseAttributeParams): ParsedAttribute[] {\n const preTagParts = highlightedValue.split(HIGHLIGHT_PRE_TAG);\n const firstValue = preTagParts.shift();\n const parts = createAttributeSet(\n firstValue ? [{ value: firstValue, isHighlighted: false }] : []\n );\n\n preTagParts.forEach((part) => {\n const postTagParts = part.split(HIGHLIGHT_POST_TAG);\n\n parts.add({\n value: postTagParts[0],\n isHighlighted: true,\n });\n\n if (postTagParts[1] !== '') {\n parts.add({\n value: postTagParts[1],\n isHighlighted: false,\n });\n }\n });\n\n return parts.get();\n}\n","import { getAttributeValueByPath, warn } from '@algolia/autocomplete-shared';\n\nimport { HighlightedHit } from './HighlightedHit';\nimport { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { parseAttribute } from './parseAttribute';\nimport { ParsedAttribute } from './ParsedAttribute';\n\nexport function parseAlgoliaHitHighlight<THit extends HighlightedHit<unknown>>({\n hit,\n attribute,\n}: ParseAlgoliaHitParams<THit>): ParsedAttribute[] {\n const path = Array.isArray(attribute) ? attribute : ([attribute] as string[]);\n let highlightedValue = getAttributeValueByPath(hit, [\n '_highlightResult',\n ...path,\n 'value',\n ]);\n\n if (typeof highlightedValue !== 'string') {\n warn(\n false,\n `The attribute \"${path.join('.')}\" described by the path ${JSON.stringify(\n path\n )} does not exist on the hit. Did you set it in \\`attributesToHighlight\\`?` +\n '\\nSee https://www.algolia.com/doc/api-reference/api-parameters/attributesToHighlight/'\n );\n\n highlightedValue = getAttributeValueByPath(hit, path) || '';\n }\n\n return parseAttribute({ highlightedValue });\n}\n","import { ParsedAttribute } from './ParsedAttribute';\n\nconst htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\",\n};\nconst hasAlphanumeric = new RegExp(/\\w/i);\nconst regexEscapedHtml = /&(amp|quot|lt|gt|#39);/g;\nconst regexHasEscapedHtml = RegExp(regexEscapedHtml.source);\n\nfunction unescape(value: string): string {\n return value && regexHasEscapedHtml.test(value)\n ? value.replace(regexEscapedHtml, (character) => htmlEscapes[character])\n : value;\n}\n\nexport function isPartHighlighted(parts: ParsedAttribute[], i: number) {\n const current = parts[i];\n const isNextHighlighted = parts[i + 1]?.isHighlighted || true;\n const isPreviousHighlighted = parts[i - 1]?.isHighlighted || true;\n\n if (\n !hasAlphanumeric.test(unescape(current.value)) &&\n isPreviousHighlighted === isNextHighlighted\n ) {\n return isPreviousHighlighted;\n }\n\n return current.isHighlighted;\n}\n","import { isPartHighlighted } from './isPartHighlighted';\nimport { ParsedAttribute } from './ParsedAttribute';\n\nexport function reverseHighlightedParts(parts: ParsedAttribute[]) {\n // We don't want to highlight the whole word when no parts match.\n if (!parts.some((part) => part.isHighlighted)) {\n return parts.map((part) => ({ ...part, isHighlighted: false }));\n }\n\n return parts.map((part, i) => ({\n ...part,\n isHighlighted: !isPartHighlighted(parts, i),\n }));\n}\n","import { getAttributeValueByPath, warn } from '@algolia/autocomplete-shared';\n\nimport { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { parseAttribute } from './parseAttribute';\nimport { ParsedAttribute } from './ParsedAttribute';\nimport { SnippetedHit } from './SnippetedHit';\n\nexport function parseAlgoliaHitSnippet<THit extends SnippetedHit<unknown>>({\n hit,\n attribute,\n}: ParseAlgoliaHitParams<THit>): ParsedAttribute[] {\n const path = Array.isArray(attribute) ? attribute : ([attribute] as string[]);\n let highlightedValue = getAttributeValueByPath(hit, [\n '_snippetResult',\n ...path,\n 'value',\n ]);\n\n if (typeof highlightedValue !== 'string') {\n warn(\n false,\n `The attribute \"${path.join('.')}\" described by the path ${JSON.stringify(\n path\n )} does not exist on the hit. Did you set it in \\`attributesToSnippet\\`?` +\n '\\nSee https://www.algolia.com/doc/api-reference/api-parameters/attributesToSnippet/'\n );\n\n highlightedValue = getAttributeValueByPath(hit, path) || '';\n }\n\n return parseAttribute({ highlightedValue });\n}\n","import {\n MultipleQueriesQuery,\n SearchForFacetValuesResponse,\n SearchResponse,\n} from '@algolia/client-search';\nimport { SearchClient } from 'algoliasearch/lite';\n\nimport { fetchAlgoliaResults } from '../search';\n\ntype Fetcher = typeof fetchAlgoliaResults;\n\ntype FacetHit = {\n label: string;\n count: number;\n _highlightResult: {\n label: {\n value: string;\n };\n };\n};\n\nexport type FetcherParams = Pick<\n Parameters<Fetcher>[0],\n 'searchClient' | 'queries'\n>;\n\nexport type RequesterParams<THit> = {\n transformResponse(\n response: TransformResponseParams<THit>\n ): TransformedRequesterResponse<THit>;\n};\n\ntype TransformResponseParams<THit> = {\n results: Array<SearchResponse<THit> | SearchForFacetValuesResponse>;\n hits: Array<SearchResponse<THit>['hits']>;\n facetHits: FacetHit[][];\n};\n\nexport type TransformedRequesterResponse<THit> =\n | Array<SearchResponse<THit>['hits']>\n | SearchResponse<THit>['hits']\n | FacetHit[][]\n | FacetHit[];\n\nexport type TransformResponse<THit> = (\n response: TransformResponseParams<THit>\n) => TransformedRequesterResponse<THit>;\n\ntype FetcherParamsQuery<THit> = {\n query: MultipleQueriesQuery;\n sourceId: string;\n transformResponse: TransformResponse<THit>;\n};\n\ntype ExecuteParams<THit> = {\n searchClient: SearchClient;\n requests: Array<FetcherParamsQuery<THit>>;\n};\n\nexport type Execute<THit> = (\n params: ExecuteParams<THit>\n) => Promise<ExecuteResponse<THit>>;\n\nexport type ExecuteResponse<THit> = Array<{\n items: SearchResponse<THit> | SearchForFacetValuesResponse;\n sourceId: string;\n transformResponse: TransformResponse<THit>;\n}>;\n\nexport type RequestParams<THit> = FetcherParams & {\n /**\n * The function to transform the Algolia response before passing it to the Autocomplete state. You have access to the full Algolia results, as well as the pre-computed hits and facet hits.\n *\n * This is useful to manipulate the hits, or store data from the results in the [context](https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/context/).\n */\n transformResponse?: TransformResponse<THit>;\n};\n\nexport type RequesterDescription<THit> = {\n searchClient: SearchClient;\n queries: MultipleQueriesQuery[];\n transformResponse: TransformResponse<THit>;\n execute: Execute<THit>;\n};\n\nexport function createRequester(fetcher: Fetcher) {\n function execute<THit>(fetcherParams: ExecuteParams<THit>) {\n return fetcher<THit>({\n searchClient: fetcherParams.searchClient,\n queries: fetcherParams.requests.map((x) => x.query),\n }).then((responses) =>\n responses.map((response, index) => {\n const { sourceId, transformResponse } = fetcherParams.requests[index];\n\n return {\n items: response,\n sourceId,\n transformResponse,\n };\n })\n );\n }\n\n return function createSpecifiedRequester(\n requesterParams: RequesterParams<any>\n ) {\n return function requester<TTHit>(\n requestParams: RequestParams<TTHit>\n ): RequesterDescription<TTHit> {\n return {\n execute,\n ...requesterParams,\n ...requestParams,\n };\n };\n };\n}\n","import {\n userAgents as coreUserAgents,\n UserAgent,\n} from '@algolia/autocomplete-shared';\nimport {\n MultipleQueriesQuery,\n SearchForFacetValuesResponse,\n SearchResponse,\n} from '@algolia/client-search';\nimport type { SearchClient } from 'algoliasearch/lite';\n\nimport { HIGHLIGHT_PRE_TAG, HIGHLIGHT_POST_TAG } from '../constants';\n\nexport interface SearchParams {\n /**\n * The initialized Algolia search client.\n */\n searchClient: SearchClient;\n /**\n * A list of queries to execute.\n */\n queries: MultipleQueriesQuery[];\n /**\n * A list of user agents to add to the search client.\n *\n * This is useful to track usage of an integration.\n */\n userAgents?: UserAgent[];\n}\n\nexport function fetchAlgoliaResults<TRecord>({\n searchClient,\n queries,\n userAgents = [],\n}: SearchParams): Promise<\n Array<SearchResponse<TRecord> | SearchForFacetValuesResponse>\n> {\n if (typeof searchClient.addAlgoliaAgent === 'function') {\n const algoliaAgents: UserAgent[] = [...coreUserAgents, ...userAgents];\n\n algoliaAgents.forEach(({ segment, version }) => {\n searchClient.addAlgoliaAgent(segment, version);\n });\n }\n\n return searchClient\n .search<TRecord>(\n queries.map((searchParameters) => {\n const { params, ...headers } = searchParameters;\n\n return {\n ...headers,\n params: {\n hitsPerPage: 5,\n highlightPreTag: HIGHLIGHT_PRE_TAG,\n highlightPostTag: HIGHLIGHT_POST_TAG,\n ...params,\n },\n };\n })\n )\n .then((response) => {\n return response.results;\n });\n}\n","import { fetchAlgoliaResults } from '../search';\n\nimport { createRequester } from './createRequester';\n\nexport const createAlgoliaRequester = createRequester(fetchAlgoliaResults);\n","import { createAlgoliaRequester } from './createAlgoliaRequester';\n\n/**\n * Retrieves Algolia results from multiple indices.\n */\nexport const getAlgoliaResults = createAlgoliaRequester({\n transformResponse: (response) => response.hits,\n});\n","import { MultipleQueriesQuery } from '@algolia/client-search';\n\nimport { createAlgoliaRequester } from './createAlgoliaRequester';\nimport { RequestParams } from './createRequester';\n\n/**\n * Retrieves Algolia facet hits from multiple indices.\n */\nexport function getAlgoliaFacets<TTHit>(requestParams: RequestParams<TTHit>) {\n const requester = createAlgoliaRequester({\n transformResponse: (response) => response.facetHits,\n });\n\n const queries = requestParams.queries.map((query) => ({\n ...query,\n type: 'facet',\n })) as MultipleQueriesQuery[];\n\n return requester({\n ...requestParams,\n queries,\n });\n}\n","import { HighlightedHit } from './HighlightedHit';\nimport { parseAlgoliaHitHighlight } from './parseAlgoliaHitHighlight';\nimport { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { ParsedAttribute } from './ParsedAttribute';\nimport { reverseHighlightedParts } from './reverseHighlightedParts';\n\nexport function parseAlgoliaHitReverseHighlight<\n THit extends HighlightedHit<unknown>\n>(props: ParseAlgoliaHitParams<THit>): ParsedAttribute[] {\n return reverseHighlightedParts(parseAlgoliaHitHighlight<THit>(props));\n}\n","import { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { parseAlgoliaHitSnippet } from './parseAlgoliaHitSnippet';\nimport { ParsedAttribute } from './ParsedAttribute';\nimport { reverseHighlightedParts } from './reverseHighlightedParts';\nimport { SnippetedHit } from './SnippetedHit';\n\nexport function parseAlgoliaHitReverseSnippet<\n THit extends SnippetedHit<unknown>\n>(props: ParseAlgoliaHitParams<THit>): ParsedAttribute[] {\n return reverseHighlightedParts(parseAlgoliaHitSnippet<THit>(props));\n}\n"],"names":["getAttributeValueByPath","record","path","reduce","current","key","userAgents","segment","version","HIGHLIGHT_PRE_TAG","HIGHLIGHT_POST_TAG","parseAttribute","preTagParts","highlightedValue","split","firstValue","shift","parts","value","get","add","part","lastPart","length","isHighlighted","push","createAttributeSet","forEach","postTagParts","parseAlgoliaHitHighlight","hit","attribute","Array","isArray","htmlEscapes","hasAlphanumeric","RegExp","regexEscapedHtml","regexHasEscapedHtml","source","isPartHighlighted","i","isNextHighlighted","isPreviousHighlighted","test","replace","character","reverseHighlightedParts","some","map","parseAlgoliaHitSnippet","createRequester","fetcher","execute","fetcherParams","searchClient","queries","requests","x","query","then","responses","response","index","items","sourceId","transformResponse","requesterParams","requestParams","fetchAlgoliaResults","addAlgoliaAgent","coreUserAgents","search","searchParameters","params","hitsPerPage","highlightPreTag","highlightPostTag","results","createAlgoliaRequester","getAlgoliaResults","hits","requester","facetHits","type","props"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@algolia/autocomplete-preset-algolia",
|
|
3
3
|
"description": "Presets for building autocomplete experiences with Algolia.",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.5.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/algolia/autocomplete",
|
|
7
7
|
"repository": "algolia/autocomplete",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"watch": "watch \"yarn on:change\" --ignoreDirectoryPattern \"/dist/\""
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@algolia/autocomplete-shared": "1.
|
|
34
|
+
"@algolia/autocomplete-shared": "1.5.0"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@algolia/client-search": "4.9.1",
|
package/dist/esm/version.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const version = "1.2.2";
|
package/dist/esm/version.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export var version = '1.2.2';
|