fast-simon-sdk 1.2.55 → 1.2.59
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/lib/config.js +1 -1
- package/lib/config.js.map +1 -1
- package/lib/index.js +3 -3
- package/lib/index.js.map +1 -1
- package/lib/models/common.d.ts +7 -2
- package/lib/models/common.js.map +1 -1
- package/lib/models/exports.js +1 -1
- package/lib/models/exports.js.map +1 -1
- package/lib/sections/contentSearch/index.js +13 -18
- package/lib/sections/contentSearch/index.js.map +1 -1
- package/lib/sections/eventReporter/index.js +233 -180
- package/lib/sections/eventReporter/index.js.map +1 -1
- package/lib/sections/eventReporter/utils.js +9 -8
- package/lib/sections/eventReporter/utils.js.map +1 -1
- package/lib/sections/fullTextSearch/index.js +52 -26
- package/lib/sections/fullTextSearch/index.js.map +1 -1
- package/lib/sections/fullTextSearch/utils.d.ts +2 -2
- package/lib/sections/fullTextSearch/utils.js +56 -47
- package/lib/sections/fullTextSearch/utils.js.map +1 -1
- package/lib/sections/index.js +167 -96
- package/lib/sections/index.js.map +1 -1
- package/lib/sections/initialization/index.js +14 -13
- package/lib/sections/initialization/index.js.map +1 -1
- package/lib/sections/initialization/utils.js +83 -40
- package/lib/sections/initialization/utils.js.map +1 -1
- package/lib/sections/instantSearch/index.d.ts +1 -1
- package/lib/sections/instantSearch/index.js +39 -18
- package/lib/sections/instantSearch/index.js.map +1 -1
- package/lib/sections/instantSearch/utils.d.ts +4 -2
- package/lib/sections/instantSearch/utils.js +72 -56
- package/lib/sections/instantSearch/utils.js.map +1 -1
- package/lib/sections/landingPage/index.js +34 -15
- package/lib/sections/landingPage/index.js.map +1 -1
- package/lib/sections/landingPage/utils.js +28 -22
- package/lib/sections/landingPage/utils.js.map +1 -1
- package/lib/sections/lookAlikeProductRecommendation/index.js +5 -4
- package/lib/sections/lookAlikeProductRecommendation/index.js.map +1 -1
- package/lib/sections/recommendations/index.d.ts +1 -1
- package/lib/sections/recommendations/index.js +16 -14
- package/lib/sections/recommendations/index.js.map +1 -1
- package/lib/sections/recommendations/utils.js +8 -8
- package/lib/sections/recommendations/utils.js.map +1 -1
- package/lib/sections/smartCollections/index.js +58 -32
- package/lib/sections/smartCollections/index.js.map +1 -1
- package/lib/sections/smartCollections/utils.d.ts +14 -12
- package/lib/sections/smartCollections/utils.js +76 -61
- package/lib/sections/smartCollections/utils.js.map +1 -1
- package/lib/services/autocomplete.d.ts +2 -1
- package/lib/services/autocomplete.js +11 -8
- package/lib/services/autocomplete.js.map +1 -1
- package/lib/services/common.d.ts +2 -1
- package/lib/services/common.js +23 -17
- package/lib/services/common.js.map +1 -1
- package/lib/services/content.js +11 -10
- package/lib/services/content.js.map +1 -1
- package/lib/services/fullTextSearch.js +20 -14
- package/lib/services/fullTextSearch.js.map +1 -1
- package/lib/services/landingPage.js +10 -9
- package/lib/services/landingPage.js.map +1 -1
- package/lib/services/lookAlikeProductRecommendation.js +6 -5
- package/lib/services/lookAlikeProductRecommendation.js.map +1 -1
- package/lib/services/related.d.ts +2 -1
- package/lib/services/related.js +14 -11
- package/lib/services/related.js.map +1 -1
- package/lib/services/reporting.js +24 -17
- package/lib/services/reporting.js.map +1 -1
- package/lib/services/smartCollections.js +19 -14
- package/lib/services/smartCollections.js.map +1 -1
- package/lib/services/utils.js +6 -5
- package/lib/services/utils.js.map +1 -1
- package/lib/utils/API.js +63 -9
- package/lib/utils/API.js.map +1 -1
- package/lib/utils/ArrayUtils.js +1 -1
- package/lib/utils/cookies.js +36 -23
- package/lib/utils/cookies.js.map +1 -1
- package/lib/utils/debug.js +5 -5
- package/lib/utils/debug.js.map +1 -1
- package/lib/utils/klaviyo.js +4 -4
- package/lib/utils/klaviyo.js.map +1 -1
- package/lib/utils/options.d.ts +7 -0
- package/lib/utils/options.js +3 -3
- package/lib/utils/options.js.map +1 -1
- package/lib/utils/validation.js +9 -8
- package/lib/utils/validation.js.map +1 -1
- package/package.json +7 -2
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
2
13
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
14
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
15
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,14 +19,41 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
19
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
20
|
});
|
|
10
21
|
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (_) try {
|
|
29
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
11
49
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
50
|
exports.executeCallbacks = exports.registerCallback = exports.getPlatform = exports.setCartToken = exports.getUserSessionToken = exports.setSessionToken = exports.printSDKError = exports.printSDKReady = exports.setLoadData = void 0;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
51
|
+
var common_1 = require("../../services/common");
|
|
52
|
+
var config_1 = require("../../config");
|
|
53
|
+
var debug_1 = require("../../utils/debug");
|
|
54
|
+
var options_1 = require("../../utils/options");
|
|
55
|
+
var cookies_1 = require("../../utils/cookies");
|
|
56
|
+
var setLoadData = function (self, load) {
|
|
19
57
|
self.data.cdnKey = load.cdn_cache_key || Date.now();
|
|
20
58
|
self.data.dashboard = {
|
|
21
59
|
site_url: load.site_url,
|
|
@@ -31,39 +69,39 @@ const setLoadData = (self, load) => {
|
|
|
31
69
|
show_popular_products_on_focus: load.show_popular_products_on_focus
|
|
32
70
|
};
|
|
33
71
|
if (options_1.getSDKABTestingOptionExist("autocomplete_preview")) {
|
|
34
|
-
self.data.dashboard =
|
|
72
|
+
self.data.dashboard = __assign(__assign({}, self.data.dashboard), { disable_categories_suggestions: false, max_popular_categories_suggestions: 20, max_popular_searches_suggestions: 20, max_product_suggestions: 20 });
|
|
35
73
|
}
|
|
36
74
|
localStorage.setItem("sdk-cdn-key", String(self.data.cdnKey));
|
|
37
75
|
};
|
|
38
76
|
exports.setLoadData = setLoadData;
|
|
39
|
-
|
|
77
|
+
var printSDKReady = function (self, callback) {
|
|
40
78
|
self.status = "ready";
|
|
41
|
-
console.log(
|
|
79
|
+
console.log("%c\u2705 Fast SDK Ready | uuid : " + self.data.uuid + " | storeID: " + self.data.storeID + " | url: " + self.data.dashboard.site_url, 'font-weight: bold; font-size: 12px;');
|
|
42
80
|
if (callback) {
|
|
43
81
|
callback();
|
|
44
82
|
}
|
|
45
|
-
|
|
46
|
-
|
|
83
|
+
var debugEndpoint = debug_1.getDebugEndpoint();
|
|
84
|
+
var isNotCaching = debug_1.isDebugCaching();
|
|
47
85
|
if (debugEndpoint || isNotCaching) {
|
|
48
|
-
console.log(
|
|
86
|
+
console.log("%c\uD83D\uDEE0\uFE0F Debug ON | Endpoint: " + debugEndpoint + " " + (isNotCaching ? "| Caching OFF " : "") + " ", "font-weight: bold; font-size: 12px; color: red");
|
|
49
87
|
}
|
|
50
88
|
};
|
|
51
89
|
exports.printSDKReady = printSDKReady;
|
|
52
|
-
|
|
90
|
+
var printSDKError = function (self) {
|
|
53
91
|
self.status = "error";
|
|
54
|
-
console.log(
|
|
92
|
+
console.log("%c" + config_1.API_ERROR_MSG, 'font-weight: bold; font-size: 12px; color: red');
|
|
55
93
|
};
|
|
56
94
|
exports.printSDKError = printSDKError;
|
|
57
|
-
|
|
95
|
+
var setSessionToken = function (self) {
|
|
58
96
|
self.data.sessionToken = getSessionToken();
|
|
59
97
|
localStorage.setItem(config_1.SESSION_TOKEN_LS_KEY, JSON.stringify(self.data.sessionToken));
|
|
60
98
|
};
|
|
61
99
|
exports.setSessionToken = setSessionToken;
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
100
|
+
var getSessionToken = function () {
|
|
101
|
+
var sessionLC = localStorage.getItem(config_1.SESSION_TOKEN_LS_KEY);
|
|
102
|
+
var now = Math.round(Date.now() / 1000);
|
|
65
103
|
if (sessionLC) {
|
|
66
|
-
|
|
104
|
+
var currentSession = JSON.parse(sessionLC);
|
|
67
105
|
if (now - currentSession.lastActive >= config_1.SESSION_TOKEN_LIFE) {
|
|
68
106
|
return {
|
|
69
107
|
lastActive: now,
|
|
@@ -84,22 +122,27 @@ const getSessionToken = () => {
|
|
|
84
122
|
};
|
|
85
123
|
}
|
|
86
124
|
};
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
125
|
+
var getUserSessionToken = function (self) { return __awaiter(void 0, void 0, void 0, function () {
|
|
126
|
+
var userSessionLC, _a, storeID, uuid, newSession;
|
|
127
|
+
return __generator(this, function (_b) {
|
|
128
|
+
switch (_b.label) {
|
|
129
|
+
case 0:
|
|
130
|
+
userSessionLC = localStorage.getItem(config_1.USER_SESSION_TOKEN_LS_KEY);
|
|
131
|
+
_a = self.data, storeID = _a.storeID, uuid = _a.uuid;
|
|
132
|
+
if (!userSessionLC) return [3 /*break*/, 1];
|
|
133
|
+
return [2 /*return*/, new Promise(function (resolve) { return resolve(userSessionLC); })];
|
|
134
|
+
case 1: return [4 /*yield*/, common_1.Common.getPostLoad({ storeID: storeID, uuid: uuid })];
|
|
135
|
+
case 2:
|
|
136
|
+
newSession = _b.sent();
|
|
137
|
+
localStorage.setItem(config_1.USER_SESSION_TOKEN_LS_KEY, newSession.isp_token);
|
|
138
|
+
return [2 /*return*/, newSession.isp_token];
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
}); };
|
|
99
142
|
exports.getUserSessionToken = getUserSessionToken;
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
143
|
+
var setCartToken = function (self) {
|
|
144
|
+
var platform = exports.getPlatform();
|
|
145
|
+
var cookies = new cookies_1.default();
|
|
103
146
|
if (platform == "Shopify" && cookies.has(config_1.CART_TOKEN_COOKIE_NAME)) {
|
|
104
147
|
self.data.cartToken = cookies.get(config_1.CART_TOKEN_COOKIE_NAME);
|
|
105
148
|
return;
|
|
@@ -109,7 +152,7 @@ const setCartToken = (self) => {
|
|
|
109
152
|
return;
|
|
110
153
|
}
|
|
111
154
|
if (platform == "Shopify") {
|
|
112
|
-
common_1.Common.getShopifyCartToken().then(resp
|
|
155
|
+
common_1.Common.getShopifyCartToken().then(function (resp) {
|
|
113
156
|
if (resp.token) {
|
|
114
157
|
self.data.cartToken = resp.token;
|
|
115
158
|
localStorage.setItem(config_1.CART_TOKEN_LS_KEY, resp.token);
|
|
@@ -117,7 +160,7 @@ const setCartToken = (self) => {
|
|
|
117
160
|
});
|
|
118
161
|
}
|
|
119
162
|
else if (platform === "Bigcommerce") {
|
|
120
|
-
common_1.Common.getBigcommerceCartToken().then(resp
|
|
163
|
+
common_1.Common.getBigcommerceCartToken().then(function (resp) {
|
|
121
164
|
if (resp.length > 0 && resp[0].id) {
|
|
122
165
|
self.data.cartToken = resp[0].id;
|
|
123
166
|
localStorage.setItem(config_1.CART_TOKEN_LS_KEY, resp[0].id);
|
|
@@ -126,7 +169,7 @@ const setCartToken = (self) => {
|
|
|
126
169
|
}
|
|
127
170
|
};
|
|
128
171
|
exports.setCartToken = setCartToken;
|
|
129
|
-
|
|
172
|
+
var getPlatform = function () {
|
|
130
173
|
if ("Shopify" in window) {
|
|
131
174
|
return "Shopify";
|
|
132
175
|
}
|
|
@@ -136,7 +179,7 @@ const getPlatform = () => {
|
|
|
136
179
|
return "";
|
|
137
180
|
};
|
|
138
181
|
exports.getPlatform = getPlatform;
|
|
139
|
-
|
|
182
|
+
var registerCallback = function (self, callback) {
|
|
140
183
|
if (self.status !== "ready") {
|
|
141
184
|
if (self.callbacks) {
|
|
142
185
|
self.callbacks.push(callback);
|
|
@@ -149,9 +192,9 @@ const registerCallback = (self, callback) => {
|
|
|
149
192
|
return false;
|
|
150
193
|
};
|
|
151
194
|
exports.registerCallback = registerCallback;
|
|
152
|
-
|
|
195
|
+
var executeCallbacks = function (self) {
|
|
153
196
|
if (self.callbacks) {
|
|
154
|
-
self.callbacks.forEach(callback
|
|
197
|
+
self.callbacks.forEach(function (callback) { return callback(); });
|
|
155
198
|
}
|
|
156
199
|
};
|
|
157
200
|
exports.executeCallbacks = executeCallbacks;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/sections/initialization/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/sections/initialization/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,5 +2,5 @@ import { instantSearchProps, SDKUtils } from "../../models/common";
|
|
|
2
2
|
interface Props extends instantSearchProps {
|
|
3
3
|
self: SDKUtils;
|
|
4
4
|
}
|
|
5
|
-
export declare const InstantSearch: ({ self, query, callback }: Props) => void;
|
|
5
|
+
export declare const InstantSearch: ({ self, query, callback, withAttributes }: Props) => void;
|
|
6
6
|
export {};
|
|
@@ -1,40 +1,61 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
|
14
|
+
for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
|
|
15
|
+
to[j] = from[i];
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
2
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
19
|
exports.InstantSearch = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
|
|
20
|
+
var utils_1 = require("./utils");
|
|
21
|
+
var autocomplete_1 = require("../../services/autocomplete");
|
|
22
|
+
var options_1 = require("../../utils/options");
|
|
23
|
+
var InstantSearch = function (_a) {
|
|
24
|
+
var _b, _c;
|
|
25
|
+
var self = _a.self, query = _a.query, callback = _a.callback, withAttributes = _a.withAttributes;
|
|
26
|
+
var _d = self.data, cdnKey = _d.cdnKey, uuid = _d.uuid, storeID = _d.storeID, dashboard = _d.dashboard;
|
|
10
27
|
utils_1.emptyResults(self, query);
|
|
11
28
|
if ((!query && (dashboard.show_popular_products_on_focus || options_1.getSDKABTestingOptionExist("show_popular_on_hover")))) {
|
|
12
29
|
callback({
|
|
13
30
|
action: "instantSearch",
|
|
14
31
|
payload: {
|
|
15
32
|
categories: [],
|
|
16
|
-
products: [
|
|
33
|
+
products: __spreadArray([], self.data.popularProducts).splice(0, dashboard.max_product_suggestions),
|
|
17
34
|
turbolinks: [],
|
|
18
35
|
totalResults: 0,
|
|
19
|
-
query,
|
|
36
|
+
query: query,
|
|
20
37
|
popularSearches: []
|
|
21
38
|
}
|
|
22
39
|
});
|
|
23
40
|
return;
|
|
24
41
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
42
|
+
var _e = utils_1.clientSuggestion({ self: self, query: query }), turbolinks = _e.turbolinks, categories = _e.categories;
|
|
43
|
+
var data = {
|
|
44
|
+
totalResults: 0,
|
|
45
|
+
popularSearches: [],
|
|
46
|
+
query: query,
|
|
47
|
+
products: [],
|
|
48
|
+
categories: categories ? categories.splice(0, (_b = dashboard.max_popular_categories_suggestions) !== null && _b !== void 0 ? _b : 10) : [],
|
|
49
|
+
turbolinks: turbolinks !== null && turbolinks !== void 0 ? turbolinks : []
|
|
50
|
+
};
|
|
51
|
+
autocomplete_1.Autocomplete.getPopularSearches({ query: query, cdn: cdnKey, uuid: uuid, storeID: storeID, site: utils_1.parseUrl((_c = dashboard.site_domain) !== null && _c !== void 0 ? _c : dashboard.site_url) }).then(function (result) {
|
|
31
52
|
var _a;
|
|
32
|
-
|
|
33
|
-
utils_1.handleProducts({ self, query, callback });
|
|
34
|
-
}).catch(e
|
|
53
|
+
var popularSearches = result.items.splice(0, (_a = dashboard.max_popular_searches_suggestions) !== null && _a !== void 0 ? _a : 5);
|
|
54
|
+
utils_1.handleProducts({ self: self, query: query, callback: callback, data: __assign(__assign({}, data), { popularSearches: popularSearches }), withAttributes: withAttributes });
|
|
55
|
+
}).catch(function (e) {
|
|
35
56
|
console.warn("Could not fetch popular searches");
|
|
36
57
|
console.warn(e);
|
|
37
|
-
utils_1.handleProducts({ self, query, callback });
|
|
58
|
+
utils_1.handleProducts({ self: self, query: query, callback: callback, data: data, withAttributes: withAttributes });
|
|
38
59
|
});
|
|
39
60
|
};
|
|
40
61
|
exports.InstantSearch = InstantSearch;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sections/instantSearch/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sections/instantSearch/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,iCAAiF;AACjF,4DAAyD;AAEzD,+CAA+D;AAMxD,IAAM,aAAa,GAAG,UAAC,EAA8C;;QAA7C,IAAI,UAAA,EAAE,KAAK,WAAA,EAAE,QAAQ,cAAA,EAAE,cAAc,oBAAA;IAC1D,IAAA,KAAqC,IAAI,CAAC,IAAI,EAA7C,MAAM,YAAA,EAAE,IAAI,UAAA,EAAE,OAAO,aAAA,EAAE,SAAS,eAAa,CAAC;IACrD,oBAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAE1B,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,8BAA8B,IAAI,oCAA0B,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE;QAC/G,QAAQ,CAAC;YACL,MAAM,EAAE,eAAe;YACvB,OAAO,EAAE;gBACL,UAAU,EAAE,EAAE;gBACd,QAAQ,EAAE,kBAAI,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,uBAAuB,CAAC;gBACrF,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,CAAC;gBACf,KAAK,OAAA;gBACL,eAAe,EAAE,EAAE;aACtB;SACJ,CAAC,CAAA;QAEF,OAAO;KACV;IAEG,IAAA,KAA2B,wBAAgB,CAAC,EAAC,IAAI,MAAA,EAAE,KAAK,OAAA,EAAC,CAAC,EAAzD,UAAU,gBAAA,EAAE,UAAU,gBAAmC,CAAC;IAE/D,IAAM,IAAI,GAAwB;QAC9B,YAAY,EAAE,CAAC;QACf,eAAe,EAAE,EAAE;QACnB,KAAK,OAAA;QACL,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,MAAA,SAAS,CAAC,kCAAkC,mCAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;QACtG,UAAU,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE;KAC/B,CAAA;IAED,2BAAY,CAAC,kBAAkB,CAAC,EAAC,KAAK,OAAA,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,MAAA,EAAE,OAAO,SAAA,EAAE,IAAI,EAAE,gBAAQ,CAAC,MAAA,SAAS,CAAC,WAAW,mCAAI,SAAS,CAAC,QAAQ,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,UAAA,MAAM;;QACzI,IAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,MAAA,SAAS,CAAC,gCAAgC,mCAAI,CAAC,CAAC,CAAC;QAEhG,sBAAc,CAAC,EAAC,IAAI,MAAA,EAAE,KAAK,OAAA,EAAE,QAAQ,UAAA,EAAE,IAAI,wBAAM,IAAI,KAAE,eAAe,iBAAA,GAAC,EAAE,cAAc,gBAAA,EAAC,CAAC,CAAA;IAC7F,CAAC,CAAC,CAAC,KAAK,CAAC,UAAA,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEhB,sBAAc,CAAC,EAAC,IAAI,MAAA,EAAE,KAAK,OAAA,EAAE,QAAQ,UAAA,EAAE,IAAI,MAAA,EAAE,cAAc,gBAAA,EAAC,CAAC,CAAA;IACjE,CAAC,CAAC,CAAC;AAEP,CAAC,CAAC;AA1CW,QAAA,aAAa,iBA0CxB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AutocompleteCallback, FastCategory, FastTurbolinks } from "../../models/autocomplete";
|
|
2
|
-
import { SDKUtils } from "../../models/common";
|
|
2
|
+
import { AutocompleteResults, SDKUtils } from "../../models/common";
|
|
3
3
|
export declare const emptyResults: (self: SDKUtils, query: string) => void;
|
|
4
4
|
export declare const clientSuggestion: ({ self, query }: {
|
|
5
5
|
self: SDKUtils;
|
|
@@ -8,9 +8,11 @@ export declare const clientSuggestion: ({ self, query }: {
|
|
|
8
8
|
turbolinks: FastTurbolinks[];
|
|
9
9
|
categories?: FastCategory[];
|
|
10
10
|
};
|
|
11
|
-
export declare const handleProducts: ({ callback, query, self }: {
|
|
11
|
+
export declare const handleProducts: ({ callback, data, query, self, withAttributes }: {
|
|
12
12
|
callback: AutocompleteCallback;
|
|
13
13
|
query: string;
|
|
14
14
|
self: SDKUtils;
|
|
15
|
+
data: AutocompleteResults;
|
|
16
|
+
withAttributes?: boolean | undefined;
|
|
15
17
|
}) => void;
|
|
16
18
|
export declare const parseUrl: (url: string) => string;
|
|
@@ -1,22 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
|
14
|
+
for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
|
|
15
|
+
to[j] = from[i];
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
2
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
19
|
exports.parseUrl = exports.handleProducts = exports.clientSuggestion = exports.emptyResults = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
20
|
+
var autocomplete_1 = require("../../services/autocomplete");
|
|
21
|
+
var emptyResults = function (self, query) {
|
|
6
22
|
self.temp.autocomplete = {
|
|
7
23
|
totalResults: 0,
|
|
8
24
|
popularSearches: [],
|
|
9
25
|
products: [],
|
|
10
26
|
turbolinks: [],
|
|
11
|
-
query
|
|
27
|
+
query: query
|
|
12
28
|
};
|
|
13
29
|
};
|
|
14
30
|
exports.emptyResults = emptyResults;
|
|
15
|
-
|
|
16
|
-
|
|
31
|
+
var clientSuggestion = function (_a) {
|
|
32
|
+
var self = _a.self, query = _a.query;
|
|
33
|
+
var _b = self.data.dashboard, max_popular_categories_suggestions = _b.max_popular_categories_suggestions, disable_categories_suggestions = _b.disable_categories_suggestions;
|
|
17
34
|
return {
|
|
18
35
|
categories: getCategories({
|
|
19
|
-
query,
|
|
36
|
+
query: query,
|
|
20
37
|
isCategories: !disable_categories_suggestions,
|
|
21
38
|
count: max_popular_categories_suggestions,
|
|
22
39
|
categories: self.data.categories
|
|
@@ -28,16 +45,17 @@ const clientSuggestion = ({ self, query }) => {
|
|
|
28
45
|
};
|
|
29
46
|
};
|
|
30
47
|
exports.clientSuggestion = clientSuggestion;
|
|
31
|
-
|
|
48
|
+
var getCategories = function (_a) {
|
|
49
|
+
var query = _a.query, isCategories = _a.isCategories, count = _a.count, categories = _a.categories;
|
|
32
50
|
if (!isCategories) {
|
|
33
51
|
return undefined;
|
|
34
52
|
}
|
|
35
53
|
if (!query || count === 0)
|
|
36
54
|
return [];
|
|
37
55
|
// score categories
|
|
38
|
-
|
|
56
|
+
var scoredCategories = __spreadArray([], categories).map(function (category) { return [category, scoreCategory(category, query)]; });
|
|
39
57
|
// sort scored categories by score
|
|
40
|
-
|
|
58
|
+
var newCategories = scoredCategories.filter(function (category) { return category[1]; }).sort(function (category1, category2) {
|
|
41
59
|
if (category1[1] > category2[1])
|
|
42
60
|
return -1;
|
|
43
61
|
if (category1[1] < category2[1])
|
|
@@ -45,38 +63,39 @@ const getCategories = ({ query, isCategories, count, categories }) => {
|
|
|
45
63
|
return 0;
|
|
46
64
|
});
|
|
47
65
|
// filter to show max results
|
|
48
|
-
|
|
66
|
+
var result = newCategories.map(function (category) { return category[0]; }).filter(function (category, index) { return index < count; });
|
|
49
67
|
// check if you need to show parent category
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
for (
|
|
68
|
+
var needParentCategory = (function () {
|
|
69
|
+
var names = new Set();
|
|
70
|
+
for (var _i = 0, result_1 = result; _i < result_1.length; _i++) {
|
|
71
|
+
var category = result_1[_i];
|
|
53
72
|
names.add(category.l.toLowerCase());
|
|
54
73
|
}
|
|
55
74
|
return names.size !== newCategories.length;
|
|
56
75
|
})();
|
|
57
76
|
if (needParentCategory) {
|
|
58
|
-
return result.map(category
|
|
77
|
+
return result.map(function (category) {
|
|
59
78
|
var _a;
|
|
60
79
|
if (!category.parent_name) {
|
|
61
|
-
return
|
|
80
|
+
return __assign(__assign({}, category), { parent_name: ((_a = categories.find(function (c) { return c.id === category.p_id; })) === null || _a === void 0 ? void 0 : _a.l) || "" });
|
|
62
81
|
}
|
|
63
82
|
return category;
|
|
64
83
|
});
|
|
65
84
|
}
|
|
66
85
|
else {
|
|
67
|
-
return result.map(category
|
|
86
|
+
return result.map(function (category) { return (__assign(__assign({}, category), { parent_name: "" })); });
|
|
68
87
|
}
|
|
69
88
|
};
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
89
|
+
var scoreCategory = function (category, searchTerm) {
|
|
90
|
+
var score = 0;
|
|
91
|
+
var categoryName = category.l.toLowerCase();
|
|
92
|
+
var search = searchTerm.toLowerCase().trim();
|
|
74
93
|
//exact match
|
|
75
94
|
if (categoryName === search) {
|
|
76
95
|
return 10;
|
|
77
96
|
}
|
|
78
97
|
//begins with query
|
|
79
|
-
if (categoryName.split(" ").find(w
|
|
98
|
+
if (categoryName.split(" ").find(function (w) { return w && w.indexOf(search) === 0; })) {
|
|
80
99
|
score += 5;
|
|
81
100
|
}
|
|
82
101
|
// half match
|
|
@@ -85,74 +104,70 @@ const scoreCategory = (category, searchTerm) => {
|
|
|
85
104
|
}
|
|
86
105
|
return score;
|
|
87
106
|
};
|
|
88
|
-
|
|
107
|
+
var getTrubolinks = function (_a) {
|
|
108
|
+
var turbolinks = _a.turbolinks, searchTerm = _a.searchTerm;
|
|
89
109
|
if (!searchTerm)
|
|
90
110
|
return [];
|
|
91
|
-
|
|
92
|
-
return turbolinks.filter(turbolinks
|
|
111
|
+
var search = searchTerm.toLowerCase().trim();
|
|
112
|
+
return turbolinks.filter(function (turbolinks) {
|
|
93
113
|
return turbolinks.l.toLowerCase().includes(search) || turbolinks.u.toLowerCase().includes(search);
|
|
94
114
|
});
|
|
95
115
|
};
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
116
|
+
var handleProducts = function (_a) {
|
|
117
|
+
var callback = _a.callback, data = _a.data, query = _a.query, self = _a.self, withAttributes = _a.withAttributes;
|
|
118
|
+
var _b = self.data, cdnKey = _b.cdnKey, storeID = _b.storeID, uuid = _b.uuid, popularProducts = _b.popularProducts;
|
|
119
|
+
var max_product_suggestions = self.data.dashboard.max_product_suggestions;
|
|
120
|
+
var clientProducts = getClientProducts({
|
|
100
121
|
products: popularProducts,
|
|
101
122
|
searchTerm: query,
|
|
102
123
|
count: max_product_suggestions
|
|
103
124
|
});
|
|
104
|
-
|
|
125
|
+
var ids = new Set(clientProducts.map(function (p) { return p.id; }));
|
|
105
126
|
if (clientProducts.length < max_product_suggestions) {
|
|
106
|
-
autocomplete_1.Autocomplete.getProducts({ query, storeID, uuid, cdn: cdnKey }).then(server
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
...server.items.filter((p, i) => (i < (max_product_suggestions - clientProducts.length)) && !(ids.has(p.id))),
|
|
110
|
-
];
|
|
111
|
-
self.temp.autocomplete.totalResults = server.total_results;
|
|
127
|
+
autocomplete_1.Autocomplete.getProducts({ query: query, storeID: storeID, uuid: uuid, cdn: cdnKey, withAttributes: withAttributes }).then(function (server) {
|
|
128
|
+
var products = __spreadArray(__spreadArray([], clientProducts), server.items.filter(function (p, i) { return (i < (max_product_suggestions - clientProducts.length)) && !(ids.has(p.id)); }));
|
|
129
|
+
var totalResults = products.length;
|
|
112
130
|
callback({
|
|
113
131
|
action: "instantSearch",
|
|
114
|
-
payload:
|
|
132
|
+
payload: __assign(__assign({}, data), { products: products,
|
|
133
|
+
totalResults: totalResults })
|
|
115
134
|
});
|
|
116
|
-
}).catch(e
|
|
135
|
+
}).catch(function (e) {
|
|
117
136
|
console.warn("Could not fetch products");
|
|
118
137
|
console.warn(e);
|
|
119
|
-
callback({
|
|
120
|
-
action: "instantSearch",
|
|
121
|
-
payload: self.temp.autocomplete
|
|
122
|
-
});
|
|
123
138
|
});
|
|
124
139
|
}
|
|
125
140
|
else {
|
|
126
|
-
self.temp.autocomplete.products = clientProducts;
|
|
127
141
|
callback({
|
|
128
142
|
action: "instantSearch",
|
|
129
|
-
payload:
|
|
143
|
+
payload: __assign(__assign({}, data), { products: clientProducts, totalResults: clientProducts.length })
|
|
130
144
|
});
|
|
131
145
|
}
|
|
132
146
|
};
|
|
133
147
|
exports.handleProducts = handleProducts;
|
|
134
|
-
|
|
148
|
+
var getClientProducts = function (_a) {
|
|
149
|
+
var products = _a.products, count = _a.count, searchTerm = _a.searchTerm;
|
|
135
150
|
if (!searchTerm) {
|
|
136
151
|
return [];
|
|
137
152
|
}
|
|
138
153
|
if (!searchTerm)
|
|
139
154
|
return [];
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
155
|
+
var scored = products.map(function (p) { return getProductMatching(p, searchTerm); });
|
|
156
|
+
var filtered = scored.filter(function (p) { return p[1]; });
|
|
157
|
+
var sorted = filtered.sort(function (p1, p2) {
|
|
143
158
|
if (p1[1] > p2[1])
|
|
144
159
|
return -1;
|
|
145
160
|
if (p2[1] > p1[1])
|
|
146
161
|
return 1;
|
|
147
162
|
return 0;
|
|
148
163
|
});
|
|
149
|
-
|
|
150
|
-
return spliced.map(p
|
|
164
|
+
var spliced = sorted.filter(function (product, index) { return index < count; });
|
|
165
|
+
return spliced.map(function (p) { return p[0]; });
|
|
151
166
|
};
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
167
|
+
var getProductMatching = function (product, searchTerm) {
|
|
168
|
+
var title = product.l.toLowerCase().replace(/\s{2,}/g, ' ').replace(/[^\w\s]/gi, ' ');
|
|
169
|
+
var search = searchTerm.toLowerCase().replace(/\s{2,}/g, ' ').replace(/[^\w\s]/gi, ' ');
|
|
170
|
+
var description = product.d.toLowerCase().replace(/\s{2,}/g, ' ').replace(/[^\w\s]/gi, ' ');
|
|
156
171
|
//sku match
|
|
157
172
|
if (product.real_sku && product.real_sku === search && product.skus && product.skus.length > 1) {
|
|
158
173
|
return [product, 3];
|
|
@@ -162,7 +177,8 @@ const getProductMatching = (product, searchTerm) => {
|
|
|
162
177
|
return [product, 3];
|
|
163
178
|
}
|
|
164
179
|
// title semi match
|
|
165
|
-
for (
|
|
180
|
+
for (var _i = 0, _a = title.split(" "); _i < _a.length; _i++) {
|
|
181
|
+
var word = _a[_i];
|
|
166
182
|
if (word === search) {
|
|
167
183
|
return [product, 2];
|
|
168
184
|
}
|
|
@@ -172,8 +188,8 @@ const getProductMatching = (product, searchTerm) => {
|
|
|
172
188
|
}
|
|
173
189
|
return [product, 0];
|
|
174
190
|
};
|
|
175
|
-
|
|
176
|
-
|
|
191
|
+
var parseUrl = function (url) {
|
|
192
|
+
var fixed = url.replace("https://", "").replace("http://", "");
|
|
177
193
|
if (fixed[fixed.length - 1] === "/") {
|
|
178
194
|
return fixed.slice(0, fixed.length - 1);
|
|
179
195
|
}
|