@algolia/autocomplete-plugin-algolia-insights 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/createAlgoliaInsightsPlugin.d.ts +1 -1
- package/dist/esm/createAlgoliaInsightsPlugin.js +45 -36
- package/dist/esm/index.d.js +1 -0
- package/dist/esm/index.js +2 -1
- package/dist/esm/types/AlgoliaInsightsHit.js +1 -0
- package/dist/esm/types/AutocompleteInsightsApi.js +1 -0
- package/dist/esm/types/EventParams.js +1 -0
- package/dist/esm/types/InsightsClient.js +1 -0
- package/dist/umd/index.development.js +68 -53
- 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 +4 -4
|
@@ -34,4 +34,4 @@ export declare type CreateAlgoliaInsightsPluginParams = {
|
|
|
34
34
|
*/
|
|
35
35
|
onActive?(params: OnActiveParams): void;
|
|
36
36
|
};
|
|
37
|
-
export declare function createAlgoliaInsightsPlugin(
|
|
37
|
+
export declare function createAlgoliaInsightsPlugin(options: CreateAlgoliaInsightsPluginParams): AutocompletePlugin<any, undefined>;
|
|
@@ -4,19 +4,19 @@ 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
|
|
|
11
11
|
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; }
|
|
12
12
|
|
|
13
|
-
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; }
|
|
13
|
+
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; }
|
|
14
14
|
|
|
15
15
|
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; }
|
|
16
16
|
|
|
17
17
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
18
18
|
|
|
19
|
-
import { createRef, debounce, isEqual } from '@algolia/autocomplete-shared';
|
|
19
|
+
import { createRef, debounce, isEqual, noop } from '@algolia/autocomplete-shared';
|
|
20
20
|
import { createClickedEvent } from './createClickedEvent';
|
|
21
21
|
import { createSearchInsightsApi } from './createSearchInsightsApi';
|
|
22
22
|
import { createViewedEvents } from './createViewedEvents';
|
|
@@ -39,26 +39,17 @@ var sendViewedObjectIDs = debounce(function (_ref) {
|
|
|
39
39
|
state: state
|
|
40
40
|
});
|
|
41
41
|
}, VIEW_EVENT_DELAY);
|
|
42
|
-
export function createAlgoliaInsightsPlugin(
|
|
43
|
-
var
|
|
44
|
-
|
|
45
|
-
onItemsChange =
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
} : _ref2$onItemsChange,
|
|
50
|
-
_ref2$onSelect = _ref2.onSelect,
|
|
51
|
-
onSelectEvent = _ref2$onSelect === void 0 ? function (_ref4) {
|
|
52
|
-
var insights = _ref4.insights,
|
|
53
|
-
insightsEvents = _ref4.insightsEvents;
|
|
54
|
-
insights.clickedObjectIDsAfterSearch.apply(insights, _toConsumableArray(insightsEvents));
|
|
55
|
-
} : _ref2$onSelect,
|
|
56
|
-
_ref2$onActive = _ref2.onActive,
|
|
57
|
-
onActiveEvent = _ref2$onActive === void 0 ? function () {} : _ref2$onActive;
|
|
42
|
+
export function createAlgoliaInsightsPlugin(options) {
|
|
43
|
+
var _getOptions = getOptions(options),
|
|
44
|
+
insightsClient = _getOptions.insightsClient,
|
|
45
|
+
onItemsChange = _getOptions.onItemsChange,
|
|
46
|
+
onSelectEvent = _getOptions.onSelect,
|
|
47
|
+
onActiveEvent = _getOptions.onActive;
|
|
48
|
+
|
|
58
49
|
var insights = createSearchInsightsApi(insightsClient);
|
|
59
50
|
var previousItems = createRef([]);
|
|
60
|
-
var debouncedOnStateChange = debounce(function (
|
|
61
|
-
var state =
|
|
51
|
+
var debouncedOnStateChange = debounce(function (_ref2) {
|
|
52
|
+
var state = _ref2.state;
|
|
62
53
|
|
|
63
54
|
if (!state.isOpen) {
|
|
64
55
|
return;
|
|
@@ -86,19 +77,20 @@ export function createAlgoliaInsightsPlugin(_ref2) {
|
|
|
86
77
|
}
|
|
87
78
|
}, 0);
|
|
88
79
|
return {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
80
|
+
name: 'aa.algoliaInsightsPlugin',
|
|
81
|
+
subscribe: function subscribe(_ref3) {
|
|
82
|
+
var setContext = _ref3.setContext,
|
|
83
|
+
onSelect = _ref3.onSelect,
|
|
84
|
+
onActive = _ref3.onActive;
|
|
93
85
|
setContext({
|
|
94
86
|
algoliaInsightsPlugin: {
|
|
95
87
|
insights: insights
|
|
96
88
|
}
|
|
97
89
|
});
|
|
98
|
-
onSelect(function (
|
|
99
|
-
var item =
|
|
100
|
-
state =
|
|
101
|
-
event =
|
|
90
|
+
onSelect(function (_ref4) {
|
|
91
|
+
var item = _ref4.item,
|
|
92
|
+
state = _ref4.state,
|
|
93
|
+
event = _ref4.event;
|
|
102
94
|
|
|
103
95
|
if (!isAlgoliaInsightsHit(item)) {
|
|
104
96
|
return;
|
|
@@ -117,10 +109,10 @@ export function createAlgoliaInsightsPlugin(_ref2) {
|
|
|
117
109
|
}))]
|
|
118
110
|
});
|
|
119
111
|
});
|
|
120
|
-
onActive(function (
|
|
121
|
-
var item =
|
|
122
|
-
state =
|
|
123
|
-
event =
|
|
112
|
+
onActive(function (_ref5) {
|
|
113
|
+
var item = _ref5.item,
|
|
114
|
+
state = _ref5.state,
|
|
115
|
+
event = _ref5.event;
|
|
124
116
|
|
|
125
117
|
if (!isAlgoliaInsightsHit(item)) {
|
|
126
118
|
return;
|
|
@@ -140,11 +132,28 @@ export function createAlgoliaInsightsPlugin(_ref2) {
|
|
|
140
132
|
});
|
|
141
133
|
});
|
|
142
134
|
},
|
|
143
|
-
onStateChange: function onStateChange(
|
|
144
|
-
var state =
|
|
135
|
+
onStateChange: function onStateChange(_ref6) {
|
|
136
|
+
var state = _ref6.state;
|
|
145
137
|
debouncedOnStateChange({
|
|
146
138
|
state: state
|
|
147
139
|
});
|
|
148
|
-
}
|
|
140
|
+
},
|
|
141
|
+
__autocomplete_pluginOptions: options
|
|
149
142
|
};
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
function getOptions(options) {
|
|
146
|
+
return _objectSpread({
|
|
147
|
+
onItemsChange: function onItemsChange(_ref7) {
|
|
148
|
+
var insights = _ref7.insights,
|
|
149
|
+
insightsEvents = _ref7.insightsEvents;
|
|
150
|
+
insights.viewedObjectIDs.apply(insights, _toConsumableArray(insightsEvents));
|
|
151
|
+
},
|
|
152
|
+
onSelect: function onSelect(_ref8) {
|
|
153
|
+
var insights = _ref8.insights,
|
|
154
|
+
insightsEvents = _ref8.insightsEvents;
|
|
155
|
+
insights.clickedObjectIDsAfterSearch.apply(insights, _toConsumableArray(insightsEvents));
|
|
156
|
+
},
|
|
157
|
+
onActive: noop
|
|
158
|
+
}, options);
|
|
150
159
|
}
|
package/dist/esm/index.d.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/esm/index.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export * from './createAlgoliaInsightsPlugin';
|
|
1
|
+
export * from './createAlgoliaInsightsPlugin';
|
|
2
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,33 +1,22 @@
|
|
|
1
|
-
/*! @algolia/autocomplete-plugin-algolia-insights 1.
|
|
1
|
+
/*! @algolia/autocomplete-plugin-algolia-insights 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-plugin-algolia-insights'] = {}));
|
|
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 _toConsumableArray(arr) {
|
|
58
62
|
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
|
|
59
63
|
}
|
|
@@ -63,7 +67,7 @@
|
|
|
63
67
|
}
|
|
64
68
|
|
|
65
69
|
function _iterableToArray(iter) {
|
|
66
|
-
if (typeof Symbol !== "undefined" && Symbol.iterator
|
|
70
|
+
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
67
71
|
}
|
|
68
72
|
|
|
69
73
|
function _unsupportedIterableToArray(o, minLen) {
|
|
@@ -142,6 +146,8 @@
|
|
|
142
146
|
return true;
|
|
143
147
|
}
|
|
144
148
|
|
|
149
|
+
var noop = function noop() {};
|
|
150
|
+
|
|
145
151
|
function createClickedEvent(_ref) {
|
|
146
152
|
var item = _ref.item,
|
|
147
153
|
items = _ref.items;
|
|
@@ -335,26 +341,17 @@
|
|
|
335
341
|
state: state
|
|
336
342
|
});
|
|
337
343
|
}, VIEW_EVENT_DELAY);
|
|
338
|
-
function createAlgoliaInsightsPlugin(
|
|
339
|
-
var
|
|
340
|
-
|
|
341
|
-
onItemsChange =
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
} : _ref2$onItemsChange,
|
|
346
|
-
_ref2$onSelect = _ref2.onSelect,
|
|
347
|
-
onSelectEvent = _ref2$onSelect === void 0 ? function (_ref4) {
|
|
348
|
-
var insights = _ref4.insights,
|
|
349
|
-
insightsEvents = _ref4.insightsEvents;
|
|
350
|
-
insights.clickedObjectIDsAfterSearch.apply(insights, _toConsumableArray(insightsEvents));
|
|
351
|
-
} : _ref2$onSelect,
|
|
352
|
-
_ref2$onActive = _ref2.onActive,
|
|
353
|
-
onActiveEvent = _ref2$onActive === void 0 ? function () {} : _ref2$onActive;
|
|
344
|
+
function createAlgoliaInsightsPlugin(options) {
|
|
345
|
+
var _getOptions = getOptions(options),
|
|
346
|
+
insightsClient = _getOptions.insightsClient,
|
|
347
|
+
onItemsChange = _getOptions.onItemsChange,
|
|
348
|
+
onSelectEvent = _getOptions.onSelect,
|
|
349
|
+
onActiveEvent = _getOptions.onActive;
|
|
350
|
+
|
|
354
351
|
var insights = createSearchInsightsApi(insightsClient);
|
|
355
352
|
var previousItems = createRef([]);
|
|
356
|
-
var debouncedOnStateChange = debounce(function (
|
|
357
|
-
var state =
|
|
353
|
+
var debouncedOnStateChange = debounce(function (_ref2) {
|
|
354
|
+
var state = _ref2.state;
|
|
358
355
|
|
|
359
356
|
if (!state.isOpen) {
|
|
360
357
|
return;
|
|
@@ -382,19 +379,20 @@
|
|
|
382
379
|
}
|
|
383
380
|
}, 0);
|
|
384
381
|
return {
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
382
|
+
name: 'aa.algoliaInsightsPlugin',
|
|
383
|
+
subscribe: function subscribe(_ref3) {
|
|
384
|
+
var setContext = _ref3.setContext,
|
|
385
|
+
onSelect = _ref3.onSelect,
|
|
386
|
+
onActive = _ref3.onActive;
|
|
389
387
|
setContext({
|
|
390
388
|
algoliaInsightsPlugin: {
|
|
391
389
|
insights: insights
|
|
392
390
|
}
|
|
393
391
|
});
|
|
394
|
-
onSelect(function (
|
|
395
|
-
var item =
|
|
396
|
-
state =
|
|
397
|
-
event =
|
|
392
|
+
onSelect(function (_ref4) {
|
|
393
|
+
var item = _ref4.item,
|
|
394
|
+
state = _ref4.state,
|
|
395
|
+
event = _ref4.event;
|
|
398
396
|
|
|
399
397
|
if (!isAlgoliaInsightsHit(item)) {
|
|
400
398
|
return;
|
|
@@ -413,10 +411,10 @@
|
|
|
413
411
|
}))]
|
|
414
412
|
});
|
|
415
413
|
});
|
|
416
|
-
onActive(function (
|
|
417
|
-
var item =
|
|
418
|
-
state =
|
|
419
|
-
event =
|
|
414
|
+
onActive(function (_ref5) {
|
|
415
|
+
var item = _ref5.item,
|
|
416
|
+
state = _ref5.state,
|
|
417
|
+
event = _ref5.event;
|
|
420
418
|
|
|
421
419
|
if (!isAlgoliaInsightsHit(item)) {
|
|
422
420
|
return;
|
|
@@ -436,15 +434,32 @@
|
|
|
436
434
|
});
|
|
437
435
|
});
|
|
438
436
|
},
|
|
439
|
-
onStateChange: function onStateChange(
|
|
440
|
-
var state =
|
|
437
|
+
onStateChange: function onStateChange(_ref6) {
|
|
438
|
+
var state = _ref6.state;
|
|
441
439
|
debouncedOnStateChange({
|
|
442
440
|
state: state
|
|
443
441
|
});
|
|
444
|
-
}
|
|
442
|
+
},
|
|
443
|
+
__autocomplete_pluginOptions: options
|
|
445
444
|
};
|
|
446
445
|
}
|
|
447
446
|
|
|
447
|
+
function getOptions(options) {
|
|
448
|
+
return _objectSpread2({
|
|
449
|
+
onItemsChange: function onItemsChange(_ref7) {
|
|
450
|
+
var insights = _ref7.insights,
|
|
451
|
+
insightsEvents = _ref7.insightsEvents;
|
|
452
|
+
insights.viewedObjectIDs.apply(insights, _toConsumableArray(insightsEvents));
|
|
453
|
+
},
|
|
454
|
+
onSelect: function onSelect(_ref8) {
|
|
455
|
+
var insights = _ref8.insights,
|
|
456
|
+
insightsEvents = _ref8.insightsEvents;
|
|
457
|
+
insights.clickedObjectIDsAfterSearch.apply(insights, _toConsumableArray(insightsEvents));
|
|
458
|
+
},
|
|
459
|
+
onActive: noop
|
|
460
|
+
}, options);
|
|
461
|
+
}
|
|
462
|
+
|
|
448
463
|
exports.createAlgoliaInsightsPlugin = createAlgoliaInsightsPlugin;
|
|
449
464
|
|
|
450
465
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.development.js","sources":["../../../autocomplete-shared/dist/esm/createRef.js","../../../autocomplete-shared/dist/esm/debounce.js","../../../autocomplete-shared/dist/esm/isEqual.js","../../src/createClickedEvent.ts","../../src/createSearchInsightsApi.ts","../../src/createViewedEvents.ts","../../src/isAlgoliaInsightsHit.ts","../../src/createAlgoliaInsightsPlugin.ts"],"sourcesContent":["export function createRef(initialValue) {\n return {\n current: initialValue\n };\n}","export function debounce(fn, time) {\n var timerId = undefined;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (timerId) {\n clearTimeout(timerId);\n }\n\n timerId = setTimeout(function () {\n return fn.apply(void 0, args);\n }, time);\n };\n}","function isPrimitive(obj) {\n return obj !== Object(obj);\n}\n\nexport function isEqual(first, second) {\n if (first === second) {\n return true;\n }\n\n if (isPrimitive(first) || isPrimitive(second) || typeof first === 'function' || typeof second === 'function') {\n return first === second;\n }\n\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n\n for (var _i = 0, _Object$keys = Object.keys(first); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n\n if (!(key in second)) {\n return false;\n }\n\n if (!isEqual(first[key], second[key])) {\n return false;\n }\n }\n\n return true;\n}","import { AlgoliaInsightsHit, ClickedObjectIDsAfterSearchParams } from './types';\n\ntype CreateClickedEventParams = {\n item: AlgoliaInsightsHit;\n items: AlgoliaInsightsHit[];\n};\n\nexport function createClickedEvent({\n item,\n items,\n}: CreateClickedEventParams): Omit<\n ClickedObjectIDsAfterSearchParams,\n 'eventName'\n> {\n return {\n index: item.__autocomplete_indexName,\n objectIDs: [item.objectID],\n positions: [1 + items.findIndex((x) => x.objectID === item.objectID)],\n queryID: item.__autocomplete_queryID,\n };\n}\n","import {\n ClickedFiltersParams,\n ClickedObjectIDsAfterSearchParams,\n ClickedObjectIDsParams,\n ConvertedFiltersParams,\n ConvertedObjectIDsAfterSearchParams,\n ConvertedObjectIDsParams,\n InsightsClient,\n ViewedFiltersParams,\n ViewedObjectIDsParams,\n} from './types';\n\nexport function createSearchInsightsApi(searchInsights: InsightsClient) {\n return {\n /**\n * Initializes Insights with Algolia credentials.\n */\n init(appId: string, apiKey: string) {\n searchInsights('init', { appId, apiKey });\n },\n /**\n * Sets the user token to attach to events.\n */\n setUserToken(userToken: string) {\n searchInsights('setUserToken', userToken);\n },\n /**\n * Sends click events to capture a query and its clicked items and positions.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids-after-search/\n */\n clickedObjectIDsAfterSearch(\n ...params: ClickedObjectIDsAfterSearchParams[]\n ) {\n if (params.length > 0) {\n searchInsights('clickedObjectIDsAfterSearch', ...params);\n }\n },\n /**\n * Sends click events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids/\n */\n clickedObjectIDs(...params: ClickedObjectIDsParams[]) {\n if (params.length > 0) {\n searchInsights('clickedObjectIDs', ...params);\n }\n },\n /**\n * Sends click events to capture the filters a user clicks on.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-filters/\n */\n clickedFilters(...params: ClickedFiltersParams[]) {\n if (params.length > 0) {\n searchInsights('clickedFilters', ...params);\n }\n },\n /**\n * Sends conversion events to capture a query and its clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids-after-search/\n */\n convertedObjectIDsAfterSearch(\n ...params: ConvertedObjectIDsAfterSearchParams[]\n ) {\n if (params.length > 0) {\n searchInsights('convertedObjectIDsAfterSearch', ...params);\n }\n },\n /**\n * Sends conversion events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids/\n */\n convertedObjectIDs(...params: ConvertedObjectIDsParams[]) {\n if (params.length > 0) {\n searchInsights('convertedObjectIDs', ...params);\n }\n },\n /**\n * Sends conversion events to capture the filters a user uses when converting.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-filters/\n */\n convertedFilters(...params: ConvertedFiltersParams[]) {\n if (params.length > 0) {\n searchInsights('convertedFilters', ...params);\n }\n },\n /**\n * Sends view events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-object-ids/\n */\n viewedObjectIDs(...params: ViewedObjectIDsParams[]) {\n if (params.length > 0) {\n searchInsights('viewedObjectIDs', ...params);\n }\n },\n /**\n * Sends view events to capture the filters a user uses when viewing.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-filters/\n */\n viewedFilters(...params: ViewedFiltersParams[]) {\n if (params.length > 0) {\n searchInsights('viewedFilters', ...params);\n }\n },\n };\n}\n","import { AlgoliaInsightsHit, ViewedObjectIDsParams } from './types';\n\ntype CreateViewedEventsParams = {\n items: AlgoliaInsightsHit[];\n};\n\nexport function createViewedEvents({\n items,\n}: CreateViewedEventsParams): Array<Omit<ViewedObjectIDsParams, 'eventName'>> {\n const objectIDsByIndexName = items.reduce<Record<string, string[]>>(\n (acc, current) => {\n acc[current.__autocomplete_indexName] = (\n acc[current.__autocomplete_indexName] ?? []\n ).concat(current.objectID);\n\n return acc;\n },\n {}\n );\n\n return Object.keys(objectIDsByIndexName).map((indexName) => {\n const objectIDs = objectIDsByIndexName[indexName];\n\n return {\n index: indexName,\n objectIDs,\n };\n });\n}\n","import { AlgoliaInsightsHit } from './types';\n\nexport function isAlgoliaInsightsHit(hit: any): hit is AlgoliaInsightsHit {\n return (\n hit.objectID && hit.__autocomplete_indexName && hit.__autocomplete_queryID\n );\n}\n","import {\n AutocompleteState,\n AutocompletePlugin,\n} from '@algolia/autocomplete-js';\nimport { createRef, debounce, isEqual } from '@algolia/autocomplete-shared';\n\nimport { createClickedEvent } from './createClickedEvent';\nimport { createSearchInsightsApi } from './createSearchInsightsApi';\nimport { createViewedEvents } from './createViewedEvents';\nimport { isAlgoliaInsightsHit } from './isAlgoliaInsightsHit';\nimport {\n AlgoliaInsightsHit,\n AutocompleteInsightsApi,\n InsightsClient,\n OnActiveParams,\n OnItemsChangeParams,\n OnSelectParams,\n} from './types';\n\nconst VIEW_EVENT_DELAY = 400;\n\ntype SendViewedObjectIDsParams = {\n onItemsChange(params: OnItemsChangeParams): void;\n items: AlgoliaInsightsHit[];\n insights: AutocompleteInsightsApi;\n state: AutocompleteState<any>;\n};\n\nconst sendViewedObjectIDs = debounce<SendViewedObjectIDsParams>(\n ({ onItemsChange, items, insights, state }) => {\n onItemsChange({\n insights,\n insightsEvents: createViewedEvents({ items }).map((event) => ({\n eventName: 'Items Viewed',\n ...event,\n })),\n state,\n });\n },\n VIEW_EVENT_DELAY\n);\n\nexport type CreateAlgoliaInsightsPluginParams = {\n /**\n * The initialized Search Insights client.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-insightsclient\n */\n insightsClient: InsightsClient;\n /**\n * Hook to send an Insights event when the items change.\n *\n * By default, it sends a `viewedObjectIDs` event.\n *\n * In as-you-type experiences, items change as the user types. This hook is debounced every 400ms to reflect actual items that users notice and avoid generating too many events for items matching \"in progress\" queries.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onitemschange\n */\n onItemsChange?(params: OnItemsChangeParams): void;\n /**\n * Hook to send an Insights event when an item is selected.\n *\n * By default, it sends a clickedObjectIDsAfterSearch event.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onselect\n */\n onSelect?(params: OnSelectParams): void;\n /**\n * Hook to send an Insights event when an item is active.\n *\n * By default, it doesn't send any events.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onactive\n */\n onActive?(params: OnActiveParams): void;\n};\n\nexport function createAlgoliaInsightsPlugin({\n insightsClient,\n onItemsChange = ({ insights, insightsEvents }) => {\n insights.viewedObjectIDs(...insightsEvents);\n },\n onSelect: onSelectEvent = ({ insights, insightsEvents }) => {\n insights.clickedObjectIDsAfterSearch(...insightsEvents);\n },\n onActive: onActiveEvent = () => {},\n}: CreateAlgoliaInsightsPluginParams): AutocompletePlugin<any, undefined> {\n const insights = createSearchInsightsApi(insightsClient);\n const previousItems = createRef<AlgoliaInsightsHit[]>([]);\n\n const debouncedOnStateChange = debounce<{\n state: AutocompleteState<any>;\n }>(({ state }) => {\n if (!state.isOpen) {\n return;\n }\n\n const items = state.collections\n .reduce<unknown[]>((acc, current) => {\n return [...acc, ...current.items];\n }, [])\n .filter(isAlgoliaInsightsHit);\n\n if (\n !isEqual(\n previousItems.current.map((x) => x.objectID),\n items.map((x) => x.objectID)\n )\n ) {\n previousItems.current = items;\n\n if (items.length > 0) {\n sendViewedObjectIDs({ onItemsChange, items, insights, state });\n }\n }\n }, 0);\n\n return {\n subscribe({ setContext, onSelect, onActive }) {\n setContext({ algoliaInsightsPlugin: { insights } });\n\n onSelect(({ item, state, event }) => {\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n\n onSelectEvent({\n state: state as AutocompleteState<any>,\n event,\n insights,\n item,\n insightsEvents: [\n {\n eventName: 'Item Selected',\n ...createClickedEvent({ item, items: previousItems.current }),\n },\n ],\n });\n });\n\n onActive(({ item, state, event }) => {\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n\n onActiveEvent({\n state: state as AutocompleteState<any>,\n event,\n insights,\n item,\n insightsEvents: [\n {\n eventName: 'Item Active',\n ...createClickedEvent({ item, items: previousItems.current }),\n },\n ],\n });\n });\n },\n onStateChange({ state }) {\n debouncedOnStateChange({ state: state as AutocompleteState<any> });\n },\n };\n}\n"],"names":["createRef","initialValue","current","debounce","fn","time","timerId","undefined","_len","arguments","length","args","Array","_key","clearTimeout","setTimeout","apply","isPrimitive","obj","Object","isEqual","first","second","keys","_i","_Object$keys","key","createClickedEvent","item","items","index","__autocomplete_indexName","objectIDs","objectID","positions","findIndex","x","queryID","__autocomplete_queryID","createSearchInsightsApi","searchInsights","init","appId","apiKey","setUserToken","userToken","clickedObjectIDsAfterSearch","params","clickedObjectIDs","clickedFilters","convertedObjectIDsAfterSearch","convertedObjectIDs","convertedFilters","viewedObjectIDs","viewedFilters","createViewedEvents","objectIDsByIndexName","reduce","acc","concat","map","indexName","isAlgoliaInsightsHit","hit","VIEW_EVENT_DELAY","sendViewedObjectIDs","onItemsChange","insights","state","insightsEvents","event","eventName","createAlgoliaInsightsPlugin","insightsClient","onSelect","onSelectEvent","onActive","onActiveEvent","previousItems","debouncedOnStateChange","isOpen","collections","filter","subscribe","setContext","algoliaInsightsPlugin","onStateChange"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.development.js","sources":["../../../autocomplete-shared/dist/esm/createRef.js","../../../autocomplete-shared/dist/esm/debounce.js","../../../autocomplete-shared/dist/esm/isEqual.js","../../../autocomplete-shared/dist/esm/noop.js","../../src/createClickedEvent.ts","../../src/createSearchInsightsApi.ts","../../src/createViewedEvents.ts","../../src/isAlgoliaInsightsHit.ts","../../src/createAlgoliaInsightsPlugin.ts"],"sourcesContent":["export function createRef(initialValue) {\n return {\n current: initialValue\n };\n}","export function debounce(fn, time) {\n var timerId = undefined;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (timerId) {\n clearTimeout(timerId);\n }\n\n timerId = setTimeout(function () {\n return fn.apply(void 0, args);\n }, time);\n };\n}","function isPrimitive(obj) {\n return obj !== Object(obj);\n}\n\nexport function isEqual(first, second) {\n if (first === second) {\n return true;\n }\n\n if (isPrimitive(first) || isPrimitive(second) || typeof first === 'function' || typeof second === 'function') {\n return first === second;\n }\n\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n\n for (var _i = 0, _Object$keys = Object.keys(first); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n\n if (!(key in second)) {\n return false;\n }\n\n if (!isEqual(first[key], second[key])) {\n return false;\n }\n }\n\n return true;\n}","export var noop = function noop() {};","import { AlgoliaInsightsHit, ClickedObjectIDsAfterSearchParams } from './types';\n\ntype CreateClickedEventParams = {\n item: AlgoliaInsightsHit;\n items: AlgoliaInsightsHit[];\n};\n\nexport function createClickedEvent({\n item,\n items,\n}: CreateClickedEventParams): Omit<\n ClickedObjectIDsAfterSearchParams,\n 'eventName'\n> {\n return {\n index: item.__autocomplete_indexName,\n objectIDs: [item.objectID],\n positions: [1 + items.findIndex((x) => x.objectID === item.objectID)],\n queryID: item.__autocomplete_queryID,\n };\n}\n","import {\n ClickedFiltersParams,\n ClickedObjectIDsAfterSearchParams,\n ClickedObjectIDsParams,\n ConvertedFiltersParams,\n ConvertedObjectIDsAfterSearchParams,\n ConvertedObjectIDsParams,\n InsightsClient,\n ViewedFiltersParams,\n ViewedObjectIDsParams,\n} from './types';\n\nexport function createSearchInsightsApi(searchInsights: InsightsClient) {\n return {\n /**\n * Initializes Insights with Algolia credentials.\n */\n init(appId: string, apiKey: string) {\n searchInsights('init', { appId, apiKey });\n },\n /**\n * Sets the user token to attach to events.\n */\n setUserToken(userToken: string) {\n searchInsights('setUserToken', userToken);\n },\n /**\n * Sends click events to capture a query and its clicked items and positions.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids-after-search/\n */\n clickedObjectIDsAfterSearch(\n ...params: ClickedObjectIDsAfterSearchParams[]\n ) {\n if (params.length > 0) {\n searchInsights('clickedObjectIDsAfterSearch', ...params);\n }\n },\n /**\n * Sends click events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids/\n */\n clickedObjectIDs(...params: ClickedObjectIDsParams[]) {\n if (params.length > 0) {\n searchInsights('clickedObjectIDs', ...params);\n }\n },\n /**\n * Sends click events to capture the filters a user clicks on.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-filters/\n */\n clickedFilters(...params: ClickedFiltersParams[]) {\n if (params.length > 0) {\n searchInsights('clickedFilters', ...params);\n }\n },\n /**\n * Sends conversion events to capture a query and its clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids-after-search/\n */\n convertedObjectIDsAfterSearch(\n ...params: ConvertedObjectIDsAfterSearchParams[]\n ) {\n if (params.length > 0) {\n searchInsights('convertedObjectIDsAfterSearch', ...params);\n }\n },\n /**\n * Sends conversion events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids/\n */\n convertedObjectIDs(...params: ConvertedObjectIDsParams[]) {\n if (params.length > 0) {\n searchInsights('convertedObjectIDs', ...params);\n }\n },\n /**\n * Sends conversion events to capture the filters a user uses when converting.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-filters/\n */\n convertedFilters(...params: ConvertedFiltersParams[]) {\n if (params.length > 0) {\n searchInsights('convertedFilters', ...params);\n }\n },\n /**\n * Sends view events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-object-ids/\n */\n viewedObjectIDs(...params: ViewedObjectIDsParams[]) {\n if (params.length > 0) {\n searchInsights('viewedObjectIDs', ...params);\n }\n },\n /**\n * Sends view events to capture the filters a user uses when viewing.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-filters/\n */\n viewedFilters(...params: ViewedFiltersParams[]) {\n if (params.length > 0) {\n searchInsights('viewedFilters', ...params);\n }\n },\n };\n}\n","import { AlgoliaInsightsHit, ViewedObjectIDsParams } from './types';\n\ntype CreateViewedEventsParams = {\n items: AlgoliaInsightsHit[];\n};\n\nexport function createViewedEvents({\n items,\n}: CreateViewedEventsParams): Array<Omit<ViewedObjectIDsParams, 'eventName'>> {\n const objectIDsByIndexName = items.reduce<Record<string, string[]>>(\n (acc, current) => {\n acc[current.__autocomplete_indexName] = (\n acc[current.__autocomplete_indexName] ?? []\n ).concat(current.objectID);\n\n return acc;\n },\n {}\n );\n\n return Object.keys(objectIDsByIndexName).map((indexName) => {\n const objectIDs = objectIDsByIndexName[indexName];\n\n return {\n index: indexName,\n objectIDs,\n };\n });\n}\n","import { AlgoliaInsightsHit } from './types';\n\nexport function isAlgoliaInsightsHit(hit: any): hit is AlgoliaInsightsHit {\n return (\n hit.objectID && hit.__autocomplete_indexName && hit.__autocomplete_queryID\n );\n}\n","import {\n AutocompleteState,\n AutocompletePlugin,\n} from '@algolia/autocomplete-js';\nimport {\n createRef,\n debounce,\n isEqual,\n noop,\n} from '@algolia/autocomplete-shared';\n\nimport { createClickedEvent } from './createClickedEvent';\nimport { createSearchInsightsApi } from './createSearchInsightsApi';\nimport { createViewedEvents } from './createViewedEvents';\nimport { isAlgoliaInsightsHit } from './isAlgoliaInsightsHit';\nimport {\n AlgoliaInsightsHit,\n AutocompleteInsightsApi,\n InsightsClient,\n OnActiveParams,\n OnItemsChangeParams,\n OnSelectParams,\n} from './types';\n\nconst VIEW_EVENT_DELAY = 400;\n\ntype SendViewedObjectIDsParams = {\n onItemsChange(params: OnItemsChangeParams): void;\n items: AlgoliaInsightsHit[];\n insights: AutocompleteInsightsApi;\n state: AutocompleteState<any>;\n};\n\nconst sendViewedObjectIDs = debounce<SendViewedObjectIDsParams>(\n ({ onItemsChange, items, insights, state }) => {\n onItemsChange({\n insights,\n insightsEvents: createViewedEvents({ items }).map((event) => ({\n eventName: 'Items Viewed',\n ...event,\n })),\n state,\n });\n },\n VIEW_EVENT_DELAY\n);\n\nexport type CreateAlgoliaInsightsPluginParams = {\n /**\n * The initialized Search Insights client.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-insightsclient\n */\n insightsClient: InsightsClient;\n /**\n * Hook to send an Insights event when the items change.\n *\n * By default, it sends a `viewedObjectIDs` event.\n *\n * In as-you-type experiences, items change as the user types. This hook is debounced every 400ms to reflect actual items that users notice and avoid generating too many events for items matching \"in progress\" queries.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onitemschange\n */\n onItemsChange?(params: OnItemsChangeParams): void;\n /**\n * Hook to send an Insights event when an item is selected.\n *\n * By default, it sends a clickedObjectIDsAfterSearch event.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onselect\n */\n onSelect?(params: OnSelectParams): void;\n /**\n * Hook to send an Insights event when an item is active.\n *\n * By default, it doesn't send any events.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onactive\n */\n onActive?(params: OnActiveParams): void;\n};\n\nexport function createAlgoliaInsightsPlugin(\n options: CreateAlgoliaInsightsPluginParams\n): AutocompletePlugin<any, undefined> {\n const {\n insightsClient,\n onItemsChange,\n onSelect: onSelectEvent,\n onActive: onActiveEvent,\n } = getOptions(options);\n\n const insights = createSearchInsightsApi(insightsClient);\n const previousItems = createRef<AlgoliaInsightsHit[]>([]);\n\n const debouncedOnStateChange = debounce<{\n state: AutocompleteState<any>;\n }>(({ state }) => {\n if (!state.isOpen) {\n return;\n }\n\n const items = state.collections\n .reduce<unknown[]>((acc, current) => {\n return [...acc, ...current.items];\n }, [])\n .filter(isAlgoliaInsightsHit);\n\n if (\n !isEqual(\n previousItems.current.map((x) => x.objectID),\n items.map((x) => x.objectID)\n )\n ) {\n previousItems.current = items;\n\n if (items.length > 0) {\n sendViewedObjectIDs({ onItemsChange, items, insights, state });\n }\n }\n }, 0);\n\n return {\n name: 'aa.algoliaInsightsPlugin',\n subscribe({ setContext, onSelect, onActive }) {\n setContext({ algoliaInsightsPlugin: { insights } });\n\n onSelect(({ item, state, event }) => {\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n\n onSelectEvent({\n state: state as AutocompleteState<any>,\n event,\n insights,\n item,\n insightsEvents: [\n {\n eventName: 'Item Selected',\n ...createClickedEvent({ item, items: previousItems.current }),\n },\n ],\n });\n });\n\n onActive(({ item, state, event }) => {\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n\n onActiveEvent({\n state: state as AutocompleteState<any>,\n event,\n insights,\n item,\n insightsEvents: [\n {\n eventName: 'Item Active',\n ...createClickedEvent({ item, items: previousItems.current }),\n },\n ],\n });\n });\n },\n onStateChange({ state }) {\n debouncedOnStateChange({ state: state as AutocompleteState<any> });\n },\n __autocomplete_pluginOptions: options,\n };\n}\n\nfunction getOptions(options: CreateAlgoliaInsightsPluginParams) {\n return {\n onItemsChange({ insights, insightsEvents }) {\n insights.viewedObjectIDs(...insightsEvents);\n },\n onSelect({ insights, insightsEvents }) {\n insights.clickedObjectIDsAfterSearch(...insightsEvents);\n },\n onActive: noop,\n ...options,\n };\n}\n"],"names":["createRef","initialValue","current","debounce","fn","time","timerId","undefined","_len","arguments","length","args","Array","_key","clearTimeout","setTimeout","apply","isPrimitive","obj","Object","isEqual","first","second","keys","_i","_Object$keys","key","noop","createClickedEvent","item","items","index","__autocomplete_indexName","objectIDs","objectID","positions","findIndex","x","queryID","__autocomplete_queryID","createSearchInsightsApi","searchInsights","init","appId","apiKey","setUserToken","userToken","clickedObjectIDsAfterSearch","params","clickedObjectIDs","clickedFilters","convertedObjectIDsAfterSearch","convertedObjectIDs","convertedFilters","viewedObjectIDs","viewedFilters","createViewedEvents","objectIDsByIndexName","reduce","acc","concat","map","indexName","isAlgoliaInsightsHit","hit","VIEW_EVENT_DELAY","sendViewedObjectIDs","onItemsChange","insights","state","insightsEvents","event","eventName","createAlgoliaInsightsPlugin","options","getOptions","insightsClient","onSelectEvent","onSelect","onActiveEvent","onActive","previousItems","debouncedOnStateChange","isOpen","collections","filter","name","subscribe","setContext","algoliaInsightsPlugin","onStateChange","__autocomplete_pluginOptions"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/*! @algolia/autocomplete-plugin-algolia-insights 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-plugin-algolia-insights"]={})}(this,(function(e){"use strict";function t(e,t
|
|
1
|
+
/*! @algolia/autocomplete-plugin-algolia-insights 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-plugin-algolia-insights"]={})}(this,(function(e){"use strict";function t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function n(e){for(var n=1;n<arguments.length;n++){var i=null!=arguments[n]?arguments[n]:{};n%2?t(Object(i),!0).forEach((function(t){r(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 r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e){return function(e){if(Array.isArray(e))return o(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 o(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return o(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 o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function c(e,t){var n=void 0;return function(){for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];n&&clearTimeout(n),n=setTimeout((function(){return e.apply(void 0,i)}),t)}}function a(e){return e!==Object(e)}function s(e,t){if(e===t)return!0;if(a(e)||a(t)||"function"==typeof e||"function"==typeof t)return e===t;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n=0,r=Object.keys(e);n<r.length;n++){var i=r[n];if(!(i in t))return!1;if(!s(e[i],t[i]))return!1}return!0}var u=function(){};function l(e){var t=e.item,n=e.items;return{index:t.__autocomplete_indexName,objectIDs:[t.objectID],positions:[1+n.findIndex((function(e){return e.objectID===t.objectID}))],queryID:t.__autocomplete_queryID}}function f(e){var t=e.items.reduce((function(e,t){var n;return e[t.__autocomplete_indexName]=(null!==(n=e[t.__autocomplete_indexName])&&void 0!==n?n:[]).concat(t.objectID),e}),{});return Object.keys(t).map((function(e){return{index:e,objectIDs:t[e]}}))}function p(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}var v=c((function(e){var t=e.onItemsChange,r=e.items,i=e.insights,o=e.state;t({insights:i,insightsEvents:f({items:r}).map((function(e){return n({eventName:"Items Viewed"},e)})),state:o})}),400);e.createAlgoliaInsightsPlugin=function(e){var t,r=function(e){return n({onItemsChange:function(e){var t=e.insights,n=e.insightsEvents;t.viewedObjectIDs.apply(t,i(n))},onSelect:function(e){var t=e.insights,n=e.insightsEvents;t.clickedObjectIDsAfterSearch.apply(t,i(n))},onActive:u},e)}(e),o=r.insightsClient,a=r.onItemsChange,f=r.onSelect,g=r.onActive,d=(t=o,{init:function(e,n){t("init",{appId:e,apiKey:n})},setUserToken:function(e){t("setUserToken",e)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];n.length>0&&t.apply(void 0,["clickedObjectIDsAfterSearch"].concat(n))},clickedObjectIDs:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];n.length>0&&t.apply(void 0,["clickedObjectIDs"].concat(n))},clickedFilters:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];n.length>0&&t.apply(void 0,["clickedFilters"].concat(n))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];n.length>0&&t.apply(void 0,["convertedObjectIDsAfterSearch"].concat(n))},convertedObjectIDs:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];n.length>0&&t.apply(void 0,["convertedObjectIDs"].concat(n))},convertedFilters:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];n.length>0&&t.apply(void 0,["convertedFilters"].concat(n))},viewedObjectIDs:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];n.length>0&&t.apply(void 0,["viewedObjectIDs"].concat(n))},viewedFilters:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];n.length>0&&t.apply(void 0,["viewedFilters"].concat(n))}}),h={current:[]},m=c((function(e){var t=e.state;if(t.isOpen){var n=t.collections.reduce((function(e,t){return[].concat(i(e),i(t.items))}),[]).filter(p);s(h.current.map((function(e){return e.objectID})),n.map((function(e){return e.objectID})))||(h.current=n,n.length>0&&v({onItemsChange:a,items:n,insights:d,state:t}))}}),0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(e){var t=e.setContext,r=e.onSelect,i=e.onActive;t({algoliaInsightsPlugin:{insights:d}}),r((function(e){var t=e.item,r=e.state,i=e.event;p(t)&&f({state:r,event:i,insights:d,item:t,insightsEvents:[n({eventName:"Item Selected"},l({item:t,items:h.current}))]})})),i((function(e){var t=e.item,r=e.state,i=e.event;p(t)&&g({state:r,event:i,insights:d,item:t,insightsEvents:[n({eventName:"Item Active"},l({item:t,items:h.current}))]})}))},onStateChange:function(e){var t=e.state;m({state:t})},__autocomplete_pluginOptions:e}},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/debounce.js","../../../autocomplete-shared/dist/esm/isEqual.js","../../src/createClickedEvent.ts","../../src/createViewedEvents.ts","../../src/isAlgoliaInsightsHit.ts","../../src/createAlgoliaInsightsPlugin.ts","../../src/createSearchInsightsApi.ts","../../../autocomplete-shared/dist/esm/createRef.js"],"sourcesContent":["export function debounce(fn, time) {\n var timerId = undefined;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (timerId) {\n clearTimeout(timerId);\n }\n\n timerId = setTimeout(function () {\n return fn.apply(void 0, args);\n }, time);\n };\n}","function isPrimitive(obj) {\n return obj !== Object(obj);\n}\n\nexport function isEqual(first, second) {\n if (first === second) {\n return true;\n }\n\n if (isPrimitive(first) || isPrimitive(second) || typeof first === 'function' || typeof second === 'function') {\n return first === second;\n }\n\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n\n for (var _i = 0, _Object$keys = Object.keys(first); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n\n if (!(key in second)) {\n return false;\n }\n\n if (!isEqual(first[key], second[key])) {\n return false;\n }\n }\n\n return true;\n}","import { AlgoliaInsightsHit, ClickedObjectIDsAfterSearchParams } from './types';\n\ntype CreateClickedEventParams = {\n item: AlgoliaInsightsHit;\n items: AlgoliaInsightsHit[];\n};\n\nexport function createClickedEvent({\n item,\n items,\n}: CreateClickedEventParams): Omit<\n ClickedObjectIDsAfterSearchParams,\n 'eventName'\n> {\n return {\n index: item.__autocomplete_indexName,\n objectIDs: [item.objectID],\n positions: [1 + items.findIndex((x) => x.objectID === item.objectID)],\n queryID: item.__autocomplete_queryID,\n };\n}\n","import { AlgoliaInsightsHit, ViewedObjectIDsParams } from './types';\n\ntype CreateViewedEventsParams = {\n items: AlgoliaInsightsHit[];\n};\n\nexport function createViewedEvents({\n items,\n}: CreateViewedEventsParams): Array<Omit<ViewedObjectIDsParams, 'eventName'>> {\n const objectIDsByIndexName = items.reduce<Record<string, string[]>>(\n (acc, current) => {\n acc[current.__autocomplete_indexName] = (\n acc[current.__autocomplete_indexName] ?? []\n ).concat(current.objectID);\n\n return acc;\n },\n {}\n );\n\n return Object.keys(objectIDsByIndexName).map((indexName) => {\n const objectIDs = objectIDsByIndexName[indexName];\n\n return {\n index: indexName,\n objectIDs,\n };\n });\n}\n","import { AlgoliaInsightsHit } from './types';\n\nexport function isAlgoliaInsightsHit(hit: any): hit is AlgoliaInsightsHit {\n return (\n hit.objectID && hit.__autocomplete_indexName && hit.__autocomplete_queryID\n );\n}\n","import {\n AutocompleteState,\n AutocompletePlugin,\n} from '@algolia/autocomplete-js';\nimport { createRef, debounce, isEqual } from '@algolia/autocomplete-shared';\n\nimport { createClickedEvent } from './createClickedEvent';\nimport { createSearchInsightsApi } from './createSearchInsightsApi';\nimport { createViewedEvents } from './createViewedEvents';\nimport { isAlgoliaInsightsHit } from './isAlgoliaInsightsHit';\nimport {\n AlgoliaInsightsHit,\n AutocompleteInsightsApi,\n InsightsClient,\n OnActiveParams,\n OnItemsChangeParams,\n OnSelectParams,\n} from './types';\n\nconst VIEW_EVENT_DELAY = 400;\n\ntype SendViewedObjectIDsParams = {\n onItemsChange(params: OnItemsChangeParams): void;\n items: AlgoliaInsightsHit[];\n insights: AutocompleteInsightsApi;\n state: AutocompleteState<any>;\n};\n\nconst sendViewedObjectIDs = debounce<SendViewedObjectIDsParams>(\n ({ onItemsChange, items, insights, state }) => {\n onItemsChange({\n insights,\n insightsEvents: createViewedEvents({ items }).map((event) => ({\n eventName: 'Items Viewed',\n ...event,\n })),\n state,\n });\n },\n VIEW_EVENT_DELAY\n);\n\nexport type CreateAlgoliaInsightsPluginParams = {\n /**\n * The initialized Search Insights client.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-insightsclient\n */\n insightsClient: InsightsClient;\n /**\n * Hook to send an Insights event when the items change.\n *\n * By default, it sends a `viewedObjectIDs` event.\n *\n * In as-you-type experiences, items change as the user types. This hook is debounced every 400ms to reflect actual items that users notice and avoid generating too many events for items matching \"in progress\" queries.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onitemschange\n */\n onItemsChange?(params: OnItemsChangeParams): void;\n /**\n * Hook to send an Insights event when an item is selected.\n *\n * By default, it sends a clickedObjectIDsAfterSearch event.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onselect\n */\n onSelect?(params: OnSelectParams): void;\n /**\n * Hook to send an Insights event when an item is active.\n *\n * By default, it doesn't send any events.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onactive\n */\n onActive?(params: OnActiveParams): void;\n};\n\nexport function createAlgoliaInsightsPlugin({\n insightsClient,\n onItemsChange = ({ insights, insightsEvents }) => {\n insights.viewedObjectIDs(...insightsEvents);\n },\n onSelect: onSelectEvent = ({ insights, insightsEvents }) => {\n insights.clickedObjectIDsAfterSearch(...insightsEvents);\n },\n onActive: onActiveEvent = () => {},\n}: CreateAlgoliaInsightsPluginParams): AutocompletePlugin<any, undefined> {\n const insights = createSearchInsightsApi(insightsClient);\n const previousItems = createRef<AlgoliaInsightsHit[]>([]);\n\n const debouncedOnStateChange = debounce<{\n state: AutocompleteState<any>;\n }>(({ state }) => {\n if (!state.isOpen) {\n return;\n }\n\n const items = state.collections\n .reduce<unknown[]>((acc, current) => {\n return [...acc, ...current.items];\n }, [])\n .filter(isAlgoliaInsightsHit);\n\n if (\n !isEqual(\n previousItems.current.map((x) => x.objectID),\n items.map((x) => x.objectID)\n )\n ) {\n previousItems.current = items;\n\n if (items.length > 0) {\n sendViewedObjectIDs({ onItemsChange, items, insights, state });\n }\n }\n }, 0);\n\n return {\n subscribe({ setContext, onSelect, onActive }) {\n setContext({ algoliaInsightsPlugin: { insights } });\n\n onSelect(({ item, state, event }) => {\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n\n onSelectEvent({\n state: state as AutocompleteState<any>,\n event,\n insights,\n item,\n insightsEvents: [\n {\n eventName: 'Item Selected',\n ...createClickedEvent({ item, items: previousItems.current }),\n },\n ],\n });\n });\n\n onActive(({ item, state, event }) => {\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n\n onActiveEvent({\n state: state as AutocompleteState<any>,\n event,\n insights,\n item,\n insightsEvents: [\n {\n eventName: 'Item Active',\n ...createClickedEvent({ item, items: previousItems.current }),\n },\n ],\n });\n });\n },\n onStateChange({ state }) {\n debouncedOnStateChange({ state: state as AutocompleteState<any> });\n },\n };\n}\n","import {\n ClickedFiltersParams,\n ClickedObjectIDsAfterSearchParams,\n ClickedObjectIDsParams,\n ConvertedFiltersParams,\n ConvertedObjectIDsAfterSearchParams,\n ConvertedObjectIDsParams,\n InsightsClient,\n ViewedFiltersParams,\n ViewedObjectIDsParams,\n} from './types';\n\nexport function createSearchInsightsApi(searchInsights: InsightsClient) {\n return {\n /**\n * Initializes Insights with Algolia credentials.\n */\n init(appId: string, apiKey: string) {\n searchInsights('init', { appId, apiKey });\n },\n /**\n * Sets the user token to attach to events.\n */\n setUserToken(userToken: string) {\n searchInsights('setUserToken', userToken);\n },\n /**\n * Sends click events to capture a query and its clicked items and positions.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids-after-search/\n */\n clickedObjectIDsAfterSearch(\n ...params: ClickedObjectIDsAfterSearchParams[]\n ) {\n if (params.length > 0) {\n searchInsights('clickedObjectIDsAfterSearch', ...params);\n }\n },\n /**\n * Sends click events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids/\n */\n clickedObjectIDs(...params: ClickedObjectIDsParams[]) {\n if (params.length > 0) {\n searchInsights('clickedObjectIDs', ...params);\n }\n },\n /**\n * Sends click events to capture the filters a user clicks on.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-filters/\n */\n clickedFilters(...params: ClickedFiltersParams[]) {\n if (params.length > 0) {\n searchInsights('clickedFilters', ...params);\n }\n },\n /**\n * Sends conversion events to capture a query and its clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids-after-search/\n */\n convertedObjectIDsAfterSearch(\n ...params: ConvertedObjectIDsAfterSearchParams[]\n ) {\n if (params.length > 0) {\n searchInsights('convertedObjectIDsAfterSearch', ...params);\n }\n },\n /**\n * Sends conversion events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids/\n */\n convertedObjectIDs(...params: ConvertedObjectIDsParams[]) {\n if (params.length > 0) {\n searchInsights('convertedObjectIDs', ...params);\n }\n },\n /**\n * Sends conversion events to capture the filters a user uses when converting.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-filters/\n */\n convertedFilters(...params: ConvertedFiltersParams[]) {\n if (params.length > 0) {\n searchInsights('convertedFilters', ...params);\n }\n },\n /**\n * Sends view events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-object-ids/\n */\n viewedObjectIDs(...params: ViewedObjectIDsParams[]) {\n if (params.length > 0) {\n searchInsights('viewedObjectIDs', ...params);\n }\n },\n /**\n * Sends view events to capture the filters a user uses when viewing.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-filters/\n */\n viewedFilters(...params: ViewedFiltersParams[]) {\n if (params.length > 0) {\n searchInsights('viewedFilters', ...params);\n }\n },\n };\n}\n","export function createRef(initialValue) {\n return {\n current: initialValue\n };\n}"],"names":["debounce","fn","time","timerId","undefined","_len","arguments","length","args","Array","_key","clearTimeout","setTimeout","apply","isPrimitive","obj","Object","isEqual","first","second","keys","_i","_Object$keys","key","createClickedEvent","item","items","index","__autocomplete_indexName","objectIDs","objectID","positions","findIndex","x","queryID","__autocomplete_queryID","createViewedEvents","objectIDsByIndexName","reduce","acc","current","concat","map","indexName","isAlgoliaInsightsHit","hit","sendViewedObjectIDs","onItemsChange","insights","state","insightsEvents","event","eventName","searchInsights","insightsClient","viewedObjectIDs","onSelect","onSelectEvent","clickedObjectIDsAfterSearch","onActive","onActiveEvent","init","appId","apiKey","setUserToken","userToken","params","clickedObjectIDs","clickedFilters","convertedObjectIDsAfterSearch","convertedObjectIDs","convertedFilters","viewedFilters","previousItems","debouncedOnStateChange","isOpen","collections","filter","subscribe","setContext","algoliaInsightsPlugin","onStateChange"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.production.js","sources":["../../../autocomplete-shared/dist/esm/debounce.js","../../../autocomplete-shared/dist/esm/isEqual.js","../../../autocomplete-shared/dist/esm/noop.js","../../src/createClickedEvent.ts","../../src/createViewedEvents.ts","../../src/isAlgoliaInsightsHit.ts","../../src/createAlgoliaInsightsPlugin.ts","../../src/createSearchInsightsApi.ts","../../../autocomplete-shared/dist/esm/createRef.js"],"sourcesContent":["export function debounce(fn, time) {\n var timerId = undefined;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (timerId) {\n clearTimeout(timerId);\n }\n\n timerId = setTimeout(function () {\n return fn.apply(void 0, args);\n }, time);\n };\n}","function isPrimitive(obj) {\n return obj !== Object(obj);\n}\n\nexport function isEqual(first, second) {\n if (first === second) {\n return true;\n }\n\n if (isPrimitive(first) || isPrimitive(second) || typeof first === 'function' || typeof second === 'function') {\n return first === second;\n }\n\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n\n for (var _i = 0, _Object$keys = Object.keys(first); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n\n if (!(key in second)) {\n return false;\n }\n\n if (!isEqual(first[key], second[key])) {\n return false;\n }\n }\n\n return true;\n}","export var noop = function noop() {};","import { AlgoliaInsightsHit, ClickedObjectIDsAfterSearchParams } from './types';\n\ntype CreateClickedEventParams = {\n item: AlgoliaInsightsHit;\n items: AlgoliaInsightsHit[];\n};\n\nexport function createClickedEvent({\n item,\n items,\n}: CreateClickedEventParams): Omit<\n ClickedObjectIDsAfterSearchParams,\n 'eventName'\n> {\n return {\n index: item.__autocomplete_indexName,\n objectIDs: [item.objectID],\n positions: [1 + items.findIndex((x) => x.objectID === item.objectID)],\n queryID: item.__autocomplete_queryID,\n };\n}\n","import { AlgoliaInsightsHit, ViewedObjectIDsParams } from './types';\n\ntype CreateViewedEventsParams = {\n items: AlgoliaInsightsHit[];\n};\n\nexport function createViewedEvents({\n items,\n}: CreateViewedEventsParams): Array<Omit<ViewedObjectIDsParams, 'eventName'>> {\n const objectIDsByIndexName = items.reduce<Record<string, string[]>>(\n (acc, current) => {\n acc[current.__autocomplete_indexName] = (\n acc[current.__autocomplete_indexName] ?? []\n ).concat(current.objectID);\n\n return acc;\n },\n {}\n );\n\n return Object.keys(objectIDsByIndexName).map((indexName) => {\n const objectIDs = objectIDsByIndexName[indexName];\n\n return {\n index: indexName,\n objectIDs,\n };\n });\n}\n","import { AlgoliaInsightsHit } from './types';\n\nexport function isAlgoliaInsightsHit(hit: any): hit is AlgoliaInsightsHit {\n return (\n hit.objectID && hit.__autocomplete_indexName && hit.__autocomplete_queryID\n );\n}\n","import {\n AutocompleteState,\n AutocompletePlugin,\n} from '@algolia/autocomplete-js';\nimport {\n createRef,\n debounce,\n isEqual,\n noop,\n} from '@algolia/autocomplete-shared';\n\nimport { createClickedEvent } from './createClickedEvent';\nimport { createSearchInsightsApi } from './createSearchInsightsApi';\nimport { createViewedEvents } from './createViewedEvents';\nimport { isAlgoliaInsightsHit } from './isAlgoliaInsightsHit';\nimport {\n AlgoliaInsightsHit,\n AutocompleteInsightsApi,\n InsightsClient,\n OnActiveParams,\n OnItemsChangeParams,\n OnSelectParams,\n} from './types';\n\nconst VIEW_EVENT_DELAY = 400;\n\ntype SendViewedObjectIDsParams = {\n onItemsChange(params: OnItemsChangeParams): void;\n items: AlgoliaInsightsHit[];\n insights: AutocompleteInsightsApi;\n state: AutocompleteState<any>;\n};\n\nconst sendViewedObjectIDs = debounce<SendViewedObjectIDsParams>(\n ({ onItemsChange, items, insights, state }) => {\n onItemsChange({\n insights,\n insightsEvents: createViewedEvents({ items }).map((event) => ({\n eventName: 'Items Viewed',\n ...event,\n })),\n state,\n });\n },\n VIEW_EVENT_DELAY\n);\n\nexport type CreateAlgoliaInsightsPluginParams = {\n /**\n * The initialized Search Insights client.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-insightsclient\n */\n insightsClient: InsightsClient;\n /**\n * Hook to send an Insights event when the items change.\n *\n * By default, it sends a `viewedObjectIDs` event.\n *\n * In as-you-type experiences, items change as the user types. This hook is debounced every 400ms to reflect actual items that users notice and avoid generating too many events for items matching \"in progress\" queries.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onitemschange\n */\n onItemsChange?(params: OnItemsChangeParams): void;\n /**\n * Hook to send an Insights event when an item is selected.\n *\n * By default, it sends a clickedObjectIDsAfterSearch event.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onselect\n */\n onSelect?(params: OnSelectParams): void;\n /**\n * Hook to send an Insights event when an item is active.\n *\n * By default, it doesn't send any events.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onactive\n */\n onActive?(params: OnActiveParams): void;\n};\n\nexport function createAlgoliaInsightsPlugin(\n options: CreateAlgoliaInsightsPluginParams\n): AutocompletePlugin<any, undefined> {\n const {\n insightsClient,\n onItemsChange,\n onSelect: onSelectEvent,\n onActive: onActiveEvent,\n } = getOptions(options);\n\n const insights = createSearchInsightsApi(insightsClient);\n const previousItems = createRef<AlgoliaInsightsHit[]>([]);\n\n const debouncedOnStateChange = debounce<{\n state: AutocompleteState<any>;\n }>(({ state }) => {\n if (!state.isOpen) {\n return;\n }\n\n const items = state.collections\n .reduce<unknown[]>((acc, current) => {\n return [...acc, ...current.items];\n }, [])\n .filter(isAlgoliaInsightsHit);\n\n if (\n !isEqual(\n previousItems.current.map((x) => x.objectID),\n items.map((x) => x.objectID)\n )\n ) {\n previousItems.current = items;\n\n if (items.length > 0) {\n sendViewedObjectIDs({ onItemsChange, items, insights, state });\n }\n }\n }, 0);\n\n return {\n name: 'aa.algoliaInsightsPlugin',\n subscribe({ setContext, onSelect, onActive }) {\n setContext({ algoliaInsightsPlugin: { insights } });\n\n onSelect(({ item, state, event }) => {\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n\n onSelectEvent({\n state: state as AutocompleteState<any>,\n event,\n insights,\n item,\n insightsEvents: [\n {\n eventName: 'Item Selected',\n ...createClickedEvent({ item, items: previousItems.current }),\n },\n ],\n });\n });\n\n onActive(({ item, state, event }) => {\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n\n onActiveEvent({\n state: state as AutocompleteState<any>,\n event,\n insights,\n item,\n insightsEvents: [\n {\n eventName: 'Item Active',\n ...createClickedEvent({ item, items: previousItems.current }),\n },\n ],\n });\n });\n },\n onStateChange({ state }) {\n debouncedOnStateChange({ state: state as AutocompleteState<any> });\n },\n __autocomplete_pluginOptions: options,\n };\n}\n\nfunction getOptions(options: CreateAlgoliaInsightsPluginParams) {\n return {\n onItemsChange({ insights, insightsEvents }) {\n insights.viewedObjectIDs(...insightsEvents);\n },\n onSelect({ insights, insightsEvents }) {\n insights.clickedObjectIDsAfterSearch(...insightsEvents);\n },\n onActive: noop,\n ...options,\n };\n}\n","import {\n ClickedFiltersParams,\n ClickedObjectIDsAfterSearchParams,\n ClickedObjectIDsParams,\n ConvertedFiltersParams,\n ConvertedObjectIDsAfterSearchParams,\n ConvertedObjectIDsParams,\n InsightsClient,\n ViewedFiltersParams,\n ViewedObjectIDsParams,\n} from './types';\n\nexport function createSearchInsightsApi(searchInsights: InsightsClient) {\n return {\n /**\n * Initializes Insights with Algolia credentials.\n */\n init(appId: string, apiKey: string) {\n searchInsights('init', { appId, apiKey });\n },\n /**\n * Sets the user token to attach to events.\n */\n setUserToken(userToken: string) {\n searchInsights('setUserToken', userToken);\n },\n /**\n * Sends click events to capture a query and its clicked items and positions.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids-after-search/\n */\n clickedObjectIDsAfterSearch(\n ...params: ClickedObjectIDsAfterSearchParams[]\n ) {\n if (params.length > 0) {\n searchInsights('clickedObjectIDsAfterSearch', ...params);\n }\n },\n /**\n * Sends click events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids/\n */\n clickedObjectIDs(...params: ClickedObjectIDsParams[]) {\n if (params.length > 0) {\n searchInsights('clickedObjectIDs', ...params);\n }\n },\n /**\n * Sends click events to capture the filters a user clicks on.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-filters/\n */\n clickedFilters(...params: ClickedFiltersParams[]) {\n if (params.length > 0) {\n searchInsights('clickedFilters', ...params);\n }\n },\n /**\n * Sends conversion events to capture a query and its clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids-after-search/\n */\n convertedObjectIDsAfterSearch(\n ...params: ConvertedObjectIDsAfterSearchParams[]\n ) {\n if (params.length > 0) {\n searchInsights('convertedObjectIDsAfterSearch', ...params);\n }\n },\n /**\n * Sends conversion events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids/\n */\n convertedObjectIDs(...params: ConvertedObjectIDsParams[]) {\n if (params.length > 0) {\n searchInsights('convertedObjectIDs', ...params);\n }\n },\n /**\n * Sends conversion events to capture the filters a user uses when converting.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-filters/\n */\n convertedFilters(...params: ConvertedFiltersParams[]) {\n if (params.length > 0) {\n searchInsights('convertedFilters', ...params);\n }\n },\n /**\n * Sends view events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-object-ids/\n */\n viewedObjectIDs(...params: ViewedObjectIDsParams[]) {\n if (params.length > 0) {\n searchInsights('viewedObjectIDs', ...params);\n }\n },\n /**\n * Sends view events to capture the filters a user uses when viewing.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-filters/\n */\n viewedFilters(...params: ViewedFiltersParams[]) {\n if (params.length > 0) {\n searchInsights('viewedFilters', ...params);\n }\n },\n };\n}\n","export function createRef(initialValue) {\n return {\n current: initialValue\n };\n}"],"names":["debounce","fn","time","timerId","undefined","_len","arguments","length","args","Array","_key","clearTimeout","setTimeout","apply","isPrimitive","obj","Object","isEqual","first","second","keys","_i","_Object$keys","key","noop","createClickedEvent","item","items","index","__autocomplete_indexName","objectIDs","objectID","positions","findIndex","x","queryID","__autocomplete_queryID","createViewedEvents","objectIDsByIndexName","reduce","acc","current","concat","map","indexName","isAlgoliaInsightsHit","hit","sendViewedObjectIDs","onItemsChange","insights","state","insightsEvents","event","eventName","options","searchInsights","viewedObjectIDs","onSelect","clickedObjectIDsAfterSearch","onActive","getOptions","insightsClient","onSelectEvent","onActiveEvent","init","appId","apiKey","setUserToken","userToken","params","clickedObjectIDs","clickedFilters","convertedObjectIDsAfterSearch","convertedObjectIDs","convertedFilters","viewedFilters","previousItems","debouncedOnStateChange","isOpen","collections","filter","name","subscribe","setContext","algoliaInsightsPlugin","onStateChange","__autocomplete_pluginOptions"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@algolia/autocomplete-plugin-algolia-insights",
|
|
3
3
|
"description": "A plugin to add Algolia Insights to Algolia Autocomplete.",
|
|
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,11 +31,11 @@
|
|
|
31
31
|
"watch": "watch \"yarn on:change\" --ignoreDirectoryPattern \"/dist/\""
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@algolia/autocomplete-js": "1.
|
|
35
|
-
"@algolia/autocomplete-shared": "1.
|
|
34
|
+
"@algolia/autocomplete-js": "1.5.0",
|
|
35
|
+
"@algolia/autocomplete-shared": "1.5.0"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@algolia/autocomplete-core": "1.
|
|
38
|
+
"@algolia/autocomplete-core": "1.5.0"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
41
41
|
"search-insights": "^1.0.0"
|