@searchspring/snap-preact 0.29.0 → 0.30.2
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/cjs/Instantiators/RecommendationInstantiator.d.ts +4 -3
- package/dist/cjs/Instantiators/RecommendationInstantiator.d.ts.map +1 -1
- package/dist/cjs/Instantiators/RecommendationInstantiator.js +13 -2
- package/dist/cjs/Snap.d.ts +64 -13
- package/dist/cjs/Snap.d.ts.map +1 -1
- package/dist/cjs/Snap.js +159 -65
- package/dist/cjs/create/createAutocompleteController.d.ts +1 -1
- package/dist/cjs/create/createAutocompleteController.d.ts.map +1 -1
- package/dist/cjs/create/createAutocompleteController.js +6 -1
- package/dist/cjs/create/createFinderController.d.ts +1 -1
- package/dist/cjs/create/createFinderController.d.ts.map +1 -1
- package/dist/cjs/create/createFinderController.js +6 -1
- package/dist/cjs/create/createRecommendationController.d.ts +1 -1
- package/dist/cjs/create/createRecommendationController.d.ts.map +1 -1
- package/dist/cjs/create/createRecommendationController.js +6 -1
- package/dist/cjs/create/createSearchController.d.ts +1 -1
- package/dist/cjs/create/createSearchController.d.ts.map +1 -1
- package/dist/cjs/create/createSearchController.js +6 -1
- package/dist/cjs/types.d.ts +6 -5
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/esm/Instantiators/RecommendationInstantiator.d.ts +4 -3
- package/dist/esm/Instantiators/RecommendationInstantiator.d.ts.map +1 -1
- package/dist/esm/Instantiators/RecommendationInstantiator.js +15 -3
- package/dist/esm/Snap.d.ts +14 -12
- package/dist/esm/Snap.d.ts.map +1 -1
- package/dist/esm/Snap.js +129 -52
- package/dist/esm/create/createAutocompleteController.d.ts.map +1 -1
- package/dist/esm/create/createAutocompleteController.js +6 -1
- package/dist/esm/create/createFinderController.d.ts.map +1 -1
- package/dist/esm/create/createFinderController.js +6 -1
- package/dist/esm/create/createRecommendationController.d.ts.map +1 -1
- package/dist/esm/create/createRecommendationController.js +6 -1
- package/dist/esm/create/createSearchController.d.ts.map +1 -1
- package/dist/esm/create/createSearchController.js +6 -1
- package/dist/esm/types.d.ts +6 -5
- package/dist/esm/types.d.ts.map +1 -1
- package/package.json +13 -13
package/dist/cjs/Snap.js
CHANGED
|
@@ -73,7 +73,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
73
73
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
74
74
|
};
|
|
75
75
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
76
|
-
exports.Snap = exports.
|
|
76
|
+
exports.Snap = exports.DEV_COOKIE = exports.BRANCH_COOKIE = void 0;
|
|
77
77
|
var jsx_runtime_1 = require("preact/jsx-runtime");
|
|
78
78
|
var deepmerge_1 = __importDefault(require("deepmerge"));
|
|
79
79
|
var is_plain_object_1 = require("is-plain-object");
|
|
@@ -82,16 +82,20 @@ var snap_client_1 = require("@searchspring/snap-client");
|
|
|
82
82
|
var snap_logger_1 = require("@searchspring/snap-logger");
|
|
83
83
|
var snap_tracker_1 = require("@searchspring/snap-tracker");
|
|
84
84
|
var snap_toolbox_1 = require("@searchspring/snap-toolbox");
|
|
85
|
-
var snap_toolbox_2 = require("@searchspring/snap-toolbox");
|
|
86
85
|
var snap_controller_1 = require("@searchspring/snap-controller");
|
|
87
86
|
var createSearchController_1 = __importDefault(require("./create/createSearchController"));
|
|
88
87
|
exports.BRANCH_COOKIE = 'ssBranch';
|
|
89
|
-
exports.
|
|
88
|
+
exports.DEV_COOKIE = 'ssDev';
|
|
89
|
+
var SESSION_ATTRIBUTION = 'ssAttribution';
|
|
90
90
|
var COMPONENT_ERROR = "Uncaught Error - Invalid value passed as the component.\nThis usually happens when you pass a JSX Element, and not a function that returns the component, in the snap config. \n\t\t\n\t\tinstead of - \n\n\ttargeters: [\n\t\t{\n\t\t\tselector: '#searchspring-content',\n\t\t\thideTarget: true,\n\t\t\tcomponent: <Content/>,\n\t\t},\n\t]\n\n\t\tor - \n\n\ttargeters: [\n\t\t{\n\t\t\tselector: '#searchspring-content',\n\t\t\thideTarget: true,\n\t\t\tcomponent: Content,\n\t\t},\n\t]\n\n\t\tplease try - \n\n\ttargeters: [\n\t\t{\n\t\t\tselector: '#searchspring-content',\n\t\t\thideTarget: true,\n\t\t\tcomponent: () => Content\n\t\t},\n\t]\n\nThe error above happened in the following targeter in the Snap Config";
|
|
91
91
|
var Snap = /** @class */ (function () {
|
|
92
92
|
function Snap(config, services) {
|
|
93
93
|
var _this = this;
|
|
94
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
94
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
|
|
95
|
+
this.mode = snap_toolbox_1.AppMode.production;
|
|
96
|
+
this._instantiatorPromises = {};
|
|
97
|
+
this._controllerPromises = {};
|
|
98
|
+
this.controllers = {};
|
|
95
99
|
this.getInstantiator = function (id) {
|
|
96
100
|
return _this._instantiatorPromises[id] || Promise.reject("getInstantiator could not find instantiator with id: ".concat(id));
|
|
97
101
|
};
|
|
@@ -107,7 +111,35 @@ var Snap = /** @class */ (function () {
|
|
|
107
111
|
controllerIds.forEach(function (id) { return getControllerPromises.push(_this.getController(id)); });
|
|
108
112
|
return Promise.all(getControllerPromises);
|
|
109
113
|
};
|
|
114
|
+
// exposed method used for creating controllers dynamically - calls _createController()
|
|
110
115
|
this.createController = function (type, config, services, urlConfig, context, callback) { return __awaiter(_this, void 0, void 0, function () {
|
|
116
|
+
var _this = this;
|
|
117
|
+
return __generator(this, function (_a) {
|
|
118
|
+
if (typeof this._controllerPromises[config.id] != 'undefined') {
|
|
119
|
+
throw new Error("Controller with id '".concat(config.id, "' is already defined"));
|
|
120
|
+
}
|
|
121
|
+
this._controllerPromises[config.id] = new Promise(function (resolve) {
|
|
122
|
+
return _this._createController(type, config, services, urlConfig, context, function (cntrlr) { return __awaiter(_this, void 0, void 0, function () {
|
|
123
|
+
return __generator(this, function (_a) {
|
|
124
|
+
switch (_a.label) {
|
|
125
|
+
case 0:
|
|
126
|
+
if (!(typeof callback == 'function')) return [3 /*break*/, 2];
|
|
127
|
+
return [4 /*yield*/, callback(cntrlr)];
|
|
128
|
+
case 1:
|
|
129
|
+
_a.sent();
|
|
130
|
+
_a.label = 2;
|
|
131
|
+
case 2:
|
|
132
|
+
resolve(cntrlr);
|
|
133
|
+
return [2 /*return*/];
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
}); });
|
|
137
|
+
});
|
|
138
|
+
return [2 /*return*/, this._controllerPromises[config.id]];
|
|
139
|
+
});
|
|
140
|
+
}); };
|
|
141
|
+
// internal use method that creates controllers without verifying if id is in use first
|
|
142
|
+
this._createController = function (type, config, services, urlConfig, context, callback) { return __awaiter(_this, void 0, void 0, function () {
|
|
111
143
|
var importPromise, creationFunc;
|
|
112
144
|
return __generator(this, function (_a) {
|
|
113
145
|
switch (_a.label) {
|
|
@@ -131,7 +163,9 @@ var Snap = /** @class */ (function () {
|
|
|
131
163
|
case 1:
|
|
132
164
|
creationFunc = (_a.sent()).default;
|
|
133
165
|
if (!this.controllers[config.id]) {
|
|
134
|
-
|
|
166
|
+
window.searchspring.controller = window.searchspring.controller || {};
|
|
167
|
+
window.searchspring.controller[config.id] = this.controllers[config.id] = creationFunc({
|
|
168
|
+
mode: this.mode,
|
|
135
169
|
url: (0, deepmerge_1.default)(this.config.url || {}, urlConfig || {}),
|
|
136
170
|
controller: config,
|
|
137
171
|
context: (0, deepmerge_1.default)(this.context || {}, context || {}),
|
|
@@ -183,14 +217,13 @@ var Snap = /** @class */ (function () {
|
|
|
183
217
|
window.removeEventListener('error', this.handlers.error);
|
|
184
218
|
window.addEventListener('error', this.handlers.error);
|
|
185
219
|
this.config = config;
|
|
186
|
-
this.logger = (services === null || services === void 0 ? void 0 : services.logger) || new snap_logger_1.Logger('Snap Preact ');
|
|
187
220
|
var globalContext = {};
|
|
188
221
|
try {
|
|
189
222
|
// get global context
|
|
190
|
-
globalContext = (0,
|
|
223
|
+
globalContext = (0, snap_toolbox_1.getContext)(['shopper', 'config', 'merchandising']);
|
|
191
224
|
}
|
|
192
225
|
catch (err) {
|
|
193
|
-
|
|
226
|
+
console.error('Snap failed to find global context');
|
|
194
227
|
}
|
|
195
228
|
// merge configs - but only merge plain objects
|
|
196
229
|
this.config = (0, deepmerge_1.default)(this.config || {}, globalContext.config || {}, {
|
|
@@ -202,8 +235,9 @@ var Snap = /** @class */ (function () {
|
|
|
202
235
|
if ((!(services === null || services === void 0 ? void 0 : services.client) || !(services === null || services === void 0 ? void 0 : services.tracker)) && !((_c = (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.client) === null || _b === void 0 ? void 0 : _b.globals) === null || _c === void 0 ? void 0 : _c.siteId)) {
|
|
203
236
|
throw new Error("Snap: config provided must contain a valid config.client.globals.siteId value");
|
|
204
237
|
}
|
|
205
|
-
|
|
206
|
-
|
|
238
|
+
// segmented merchandising context -> client globals
|
|
239
|
+
if (((_d = this.config.client) === null || _d === void 0 ? void 0 : _d.globals) && ((_e = this.context.merchandising) === null || _e === void 0 ? void 0 : _e.segments)) {
|
|
240
|
+
if ((_f = this.config.client.globals) === null || _f === void 0 ? void 0 : _f.merchandising) {
|
|
207
241
|
this.config.client.globals.merchandising.segments = (0, deepmerge_1.default)(this.config.client.globals.merchandising.segments, this.context.merchandising.segments);
|
|
208
242
|
}
|
|
209
243
|
else {
|
|
@@ -212,33 +246,73 @@ var Snap = /** @class */ (function () {
|
|
|
212
246
|
};
|
|
213
247
|
}
|
|
214
248
|
}
|
|
215
|
-
this.client = (services === null || services === void 0 ? void 0 : services.client) || new snap_client_1.Client(this.config.client.globals, this.config.client.config);
|
|
216
|
-
this.tracker = (services === null || services === void 0 ? void 0 : services.tracker) || new snap_tracker_1.Tracker(this.config.client.globals, { framework: 'preact' });
|
|
217
|
-
this._controllerPromises = {};
|
|
218
|
-
this._instantiatorPromises = {};
|
|
219
|
-
this.controllers = {};
|
|
220
|
-
// TODO environment switch using URL?
|
|
221
|
-
this.logger.setMode(process.env.NODE_ENV);
|
|
222
|
-
// log version
|
|
223
|
-
this.logger.imageText({
|
|
224
|
-
url: 'https://snapui.searchspring.io/favicon.svg',
|
|
225
|
-
text: "[".concat(snap_toolbox_1.version, "]"),
|
|
226
|
-
style: "color: ".concat(this.logger.colors.indigo, "; font-weight: bold;"),
|
|
227
|
-
});
|
|
228
249
|
try {
|
|
229
250
|
var urlParams = (0, snap_toolbox_1.url)(window.location.href);
|
|
230
|
-
var
|
|
231
|
-
|
|
232
|
-
|
|
251
|
+
var branchOverride_1 = ((_h = (_g = urlParams === null || urlParams === void 0 ? void 0 : urlParams.params) === null || _g === void 0 ? void 0 : _g.query) === null || _h === void 0 ? void 0 : _h.branch) || snap_toolbox_1.cookies.get(exports.BRANCH_COOKIE);
|
|
252
|
+
/* app mode priority:
|
|
253
|
+
1. node env
|
|
254
|
+
2. config
|
|
255
|
+
3. override via query param / cookie
|
|
256
|
+
*/
|
|
257
|
+
// node env
|
|
258
|
+
if (process.env.NODE_ENV && Object.values(snap_toolbox_1.AppMode).includes(process.env.NODE_ENV)) {
|
|
259
|
+
this.mode = process.env.NODE_ENV;
|
|
260
|
+
}
|
|
261
|
+
// config
|
|
262
|
+
if (this.config.mode && Object.values(snap_toolbox_1.AppMode).includes(this.config.mode)) {
|
|
263
|
+
this.mode = this.config.mode;
|
|
264
|
+
}
|
|
265
|
+
// query param / cookiev override
|
|
266
|
+
if ((((_j = urlParams === null || urlParams === void 0 ? void 0 : urlParams.params) === null || _j === void 0 ? void 0 : _j.query) && 'dev' in urlParams.params.query) || !!snap_toolbox_1.cookies.get(exports.DEV_COOKIE)) {
|
|
267
|
+
if (((_k = urlParams === null || urlParams === void 0 ? void 0 : urlParams.params.query) === null || _k === void 0 ? void 0 : _k.dev) == 'false' || ((_l = urlParams === null || urlParams === void 0 ? void 0 : urlParams.params.query) === null || _l === void 0 ? void 0 : _l.dev) == '0') {
|
|
268
|
+
snap_toolbox_1.cookies.unset(exports.DEV_COOKIE);
|
|
269
|
+
this.mode = snap_toolbox_1.AppMode.production;
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
snap_toolbox_1.cookies.set(exports.DEV_COOKIE, '1', 'Lax', 0);
|
|
273
|
+
this.mode = snap_toolbox_1.AppMode.development;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
// client mode uses client config over snap config
|
|
277
|
+
if (this.config.client) {
|
|
278
|
+
this.config.client.config = this.config.client.config || {};
|
|
279
|
+
this.config.client.config.mode = this.config.client.config.mode || this.mode;
|
|
280
|
+
}
|
|
281
|
+
this.client = (services === null || services === void 0 ? void 0 : services.client) || new snap_client_1.Client(this.config.client.globals, this.config.client.config);
|
|
282
|
+
this.tracker = (services === null || services === void 0 ? void 0 : services.tracker) || new snap_tracker_1.Tracker(this.config.client.globals, { framework: 'preact' });
|
|
283
|
+
this.logger = (services === null || services === void 0 ? void 0 : services.logger) || new snap_logger_1.Logger({ prefix: 'Snap Preact ', mode: this.mode });
|
|
284
|
+
// check for tracking attribution in URL ?ss_attribution=type:id
|
|
285
|
+
var sessionAttribution = (_m = window.sessionStorage) === null || _m === void 0 ? void 0 : _m.getItem(SESSION_ATTRIBUTION);
|
|
286
|
+
if ((_p = (_o = urlParams === null || urlParams === void 0 ? void 0 : urlParams.params) === null || _o === void 0 ? void 0 : _o.query) === null || _p === void 0 ? void 0 : _p.ss_attribution) {
|
|
287
|
+
var attribution = urlParams.params.query.ss_attribution.split(':');
|
|
288
|
+
var type = attribution[0], id = attribution[1];
|
|
289
|
+
if (type && id) {
|
|
290
|
+
this.tracker.updateContext('attribution', { type: type, id: id });
|
|
291
|
+
}
|
|
292
|
+
// save to session storage
|
|
293
|
+
(_q = window.sessionStorage) === null || _q === void 0 ? void 0 : _q.setItem(SESSION_ATTRIBUTION, urlParams.params.query.ss_attribution);
|
|
294
|
+
}
|
|
295
|
+
else if (sessionAttribution) {
|
|
296
|
+
var _y = sessionAttribution.split(':'), type = _y[0], id = _y[1];
|
|
297
|
+
if (type && id) {
|
|
298
|
+
this.tracker.updateContext('attribution', { type: type, id: id });
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
// log version
|
|
302
|
+
this.logger.imageText({
|
|
303
|
+
url: 'https://snapui.searchspring.io/favicon.svg',
|
|
304
|
+
text: "[".concat(snap_toolbox_1.version, "]"),
|
|
305
|
+
style: "color: ".concat(this.logger.colors.indigo, "; font-weight: bold;"),
|
|
306
|
+
});
|
|
307
|
+
if (branchOverride_1 && !document.querySelector("script[".concat(exports.BRANCH_COOKIE, "]"))) {
|
|
308
|
+
this.logger.warn("...loading build... '".concat(branchOverride_1, "'"));
|
|
309
|
+
// set a cookie with branch
|
|
233
310
|
if (snap_toolbox_1.featureFlags.cookies) {
|
|
234
|
-
snap_toolbox_1.cookies.set(exports.BRANCH_COOKIE,
|
|
235
|
-
snap_toolbox_1.cookies.set(exports.SS_DEV_COOKIE, '1', 'Lax', 0);
|
|
311
|
+
snap_toolbox_1.cookies.set(exports.BRANCH_COOKIE, branchOverride_1, 'Lax', 3600000); // 1 hour
|
|
236
312
|
}
|
|
237
313
|
else {
|
|
238
314
|
this.logger.warn('Cookies are not supported/enabled by this browser, branch overrides will not persist!');
|
|
239
315
|
}
|
|
240
|
-
this.logger.setMode(snap_logger_1.LogMode.DEVELOPMENT);
|
|
241
|
-
this.logger.warn("...loading build... '".concat(branchParam_1, "'"));
|
|
242
316
|
// get the path and siteId from the current bundle script in case its not the same as the client config
|
|
243
317
|
var path = "https://snapui.searchspring.io/".concat(this.config.client.globals.siteId, "/");
|
|
244
318
|
var script = document.querySelector('script[src*="//snapui.searchspring.io"]');
|
|
@@ -250,9 +324,9 @@ var Snap = /** @class */ (function () {
|
|
|
250
324
|
}
|
|
251
325
|
// append script with new branch in path
|
|
252
326
|
var branchScript_1 = document.createElement('script');
|
|
253
|
-
var src_1 = "".concat(path).concat(
|
|
327
|
+
var src_1 = "".concat(path).concat(branchOverride_1, "/bundle.js");
|
|
254
328
|
branchScript_1.src = src_1;
|
|
255
|
-
branchScript_1.setAttribute(exports.BRANCH_COOKIE,
|
|
329
|
+
branchScript_1.setAttribute(exports.BRANCH_COOKIE, branchOverride_1);
|
|
256
330
|
new snap_toolbox_1.DomTargeter([
|
|
257
331
|
{
|
|
258
332
|
selector: 'body',
|
|
@@ -266,32 +340,30 @@ var Snap = /** @class */ (function () {
|
|
|
266
340
|
},
|
|
267
341
|
},
|
|
268
342
|
], function (target, elem) { return __awaiter(_this, void 0, void 0, function () {
|
|
269
|
-
var
|
|
270
|
-
return __generator(this, function (
|
|
271
|
-
switch (
|
|
343
|
+
var props, getBundleDetails, _a, err_1, BranchOverride;
|
|
344
|
+
return __generator(this, function (_b) {
|
|
345
|
+
switch (_b.label) {
|
|
272
346
|
case 0:
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
description: '',
|
|
276
|
-
};
|
|
277
|
-
_a.label = 1;
|
|
347
|
+
props = {};
|
|
348
|
+
_b.label = 1;
|
|
278
349
|
case 1:
|
|
279
|
-
|
|
350
|
+
_b.trys.push([1, 4, , 5]);
|
|
280
351
|
return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require('./getBundleDetails/getBundleDetails')); })];
|
|
281
352
|
case 2:
|
|
282
|
-
getBundleDetails = (
|
|
353
|
+
getBundleDetails = (_b.sent()).getBundleDetails;
|
|
354
|
+
_a = props;
|
|
283
355
|
return [4 /*yield*/, getBundleDetails(src_1)];
|
|
284
356
|
case 3:
|
|
285
|
-
|
|
357
|
+
_a.details = _b.sent();
|
|
286
358
|
return [3 /*break*/, 5];
|
|
287
359
|
case 4:
|
|
288
|
-
err_1 =
|
|
289
|
-
error
|
|
360
|
+
err_1 = _b.sent();
|
|
361
|
+
props.error = err_1;
|
|
290
362
|
return [3 /*break*/, 5];
|
|
291
363
|
case 5: return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require('./components/BranchOverride')); })];
|
|
292
364
|
case 6:
|
|
293
|
-
BranchOverride = (
|
|
294
|
-
(0, preact_1.render)((0, jsx_runtime_1.jsx)(BranchOverride, {
|
|
365
|
+
BranchOverride = (_b.sent()).BranchOverride;
|
|
366
|
+
(0, preact_1.render)((0, jsx_runtime_1.jsx)(BranchOverride, __assign({}, props, { name: branchOverride_1, onRemoveClick: function () {
|
|
295
367
|
snap_toolbox_1.cookies.unset(exports.BRANCH_COOKIE);
|
|
296
368
|
var urlState = (0, snap_toolbox_1.url)(window.location.href);
|
|
297
369
|
urlState === null || urlState === void 0 ? true : delete urlState.params.query['branch'];
|
|
@@ -302,8 +374,9 @@ var Snap = /** @class */ (function () {
|
|
|
302
374
|
else {
|
|
303
375
|
window.location.reload();
|
|
304
376
|
}
|
|
305
|
-
} }), elem);
|
|
306
|
-
|
|
377
|
+
} })), elem);
|
|
378
|
+
// reset the global searchspring object
|
|
379
|
+
delete window.searchspring;
|
|
307
380
|
document.head.appendChild(branchScript_1);
|
|
308
381
|
return [2 /*return*/];
|
|
309
382
|
}
|
|
@@ -313,33 +386,40 @@ var Snap = /** @class */ (function () {
|
|
|
313
386
|
return;
|
|
314
387
|
}
|
|
315
388
|
}
|
|
316
|
-
catch (e) {
|
|
317
|
-
|
|
318
|
-
window.searchspring.context = this.context;
|
|
319
|
-
if (this.client)
|
|
320
|
-
window.searchspring.client = this.client;
|
|
389
|
+
catch (e) {
|
|
390
|
+
this.logger.error(e);
|
|
321
391
|
}
|
|
392
|
+
// bind to window global
|
|
393
|
+
window.searchspring = window.searchspring || {};
|
|
394
|
+
window.searchspring.context = this.context;
|
|
395
|
+
if (this.client)
|
|
396
|
+
window.searchspring.client = this.client;
|
|
322
397
|
// autotrack shopper id from the context
|
|
323
|
-
if ((
|
|
398
|
+
if ((_s = (_r = this.context) === null || _r === void 0 ? void 0 : _r.shopper) === null || _s === void 0 ? void 0 : _s.id) {
|
|
324
399
|
this.tracker.track.shopper.login({
|
|
325
400
|
id: this.context.shopper.id,
|
|
326
401
|
});
|
|
327
402
|
}
|
|
328
403
|
// auto populate cart cookie from the context
|
|
329
|
-
if ((
|
|
404
|
+
if ((_u = (_t = this.context) === null || _t === void 0 ? void 0 : _t.shopper) === null || _u === void 0 ? void 0 : _u.cart) {
|
|
330
405
|
var cart = this.context.shopper.cart;
|
|
331
406
|
if (Array.isArray(cart)) {
|
|
332
407
|
var cartItems = cart.filter(function (item) { return (item === null || item === void 0 ? void 0 : item.sku) || (item === null || item === void 0 ? void 0 : item.childSku); }).map(function (item) { return ((item === null || item === void 0 ? void 0 : item.sku) || (item === null || item === void 0 ? void 0 : item.childSku) || '').trim(); });
|
|
333
408
|
this.tracker.cookies.cart.set(cartItems);
|
|
334
409
|
}
|
|
335
410
|
}
|
|
336
|
-
Object.keys(((
|
|
411
|
+
Object.keys(((_v = this.config) === null || _v === void 0 ? void 0 : _v.controllers) || {}).forEach(function (type) {
|
|
337
412
|
switch (type) {
|
|
338
413
|
case 'search': {
|
|
339
414
|
_this.config.controllers[type].forEach(function (controller, index) {
|
|
340
415
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
341
416
|
try {
|
|
417
|
+
if (typeof _this._controllerPromises[controller.config.id] != 'undefined') {
|
|
418
|
+
_this.logger.error("Controller with id '".concat(controller.config.id, "' is already defined"));
|
|
419
|
+
return;
|
|
420
|
+
}
|
|
342
421
|
var cntrlr_1 = (0, createSearchController_1.default)({
|
|
422
|
+
mode: _this.mode,
|
|
343
423
|
url: (0, deepmerge_1.default)(_this.config.url || {}, controller.url || {}),
|
|
344
424
|
controller: controller.config,
|
|
345
425
|
context: (0, deepmerge_1.default)(_this.context || {}, controller.context || {}),
|
|
@@ -352,7 +432,8 @@ var Snap = /** @class */ (function () {
|
|
|
352
432
|
logger: (_f = controller.services) === null || _f === void 0 ? void 0 : _f.logger,
|
|
353
433
|
tracker: ((_g = controller.services) === null || _g === void 0 ? void 0 : _g.tracker) || _this.tracker,
|
|
354
434
|
});
|
|
355
|
-
|
|
435
|
+
window.searchspring.controller = window.searchspring.controller || {};
|
|
436
|
+
window.searchspring.controller[cntrlr_1.config.id] = _this.controllers[cntrlr_1.config.id] = cntrlr_1;
|
|
356
437
|
_this._controllerPromises[cntrlr_1.config.id] = new Promise(function (resolve) { return resolve(cntrlr_1); });
|
|
357
438
|
var searched_1 = false;
|
|
358
439
|
var runSearch_1 = function () {
|
|
@@ -434,6 +515,10 @@ var Snap = /** @class */ (function () {
|
|
|
434
515
|
}
|
|
435
516
|
case 'autocomplete': {
|
|
436
517
|
_this.config.controllers[type].forEach(function (controller, index) {
|
|
518
|
+
if (typeof _this._controllerPromises[controller.config.id] != 'undefined') {
|
|
519
|
+
_this.logger.error("Controller with id '".concat(controller.config.id, "' is already defined"));
|
|
520
|
+
return;
|
|
521
|
+
}
|
|
437
522
|
_this._controllerPromises[controller.config.id] = new Promise(function (resolve) {
|
|
438
523
|
var _a;
|
|
439
524
|
try {
|
|
@@ -480,7 +565,7 @@ var Snap = /** @class */ (function () {
|
|
|
480
565
|
});
|
|
481
566
|
}); };
|
|
482
567
|
if (!(controller === null || controller === void 0 ? void 0 : controller.targeters) || (controller === null || controller === void 0 ? void 0 : controller.targeters.length) === 0) {
|
|
483
|
-
_this.
|
|
568
|
+
_this._createController(snap_controller_1.ControllerTypes.autocomplete, controller.config, controller.services, controller.url, controller.context, function (cntrlr) {
|
|
484
569
|
if (cntrlr)
|
|
485
570
|
resolve(cntrlr);
|
|
486
571
|
});
|
|
@@ -508,7 +593,7 @@ var Snap = /** @class */ (function () {
|
|
|
508
593
|
var cntrlr;
|
|
509
594
|
return __generator(this, function (_a) {
|
|
510
595
|
switch (_a.label) {
|
|
511
|
-
case 0: return [4 /*yield*/, this.
|
|
596
|
+
case 0: return [4 /*yield*/, this._createController(snap_controller_1.ControllerTypes.autocomplete, controller.config, controller.services, controller.url, controller.context, function (cntrlr) {
|
|
512
597
|
if (cntrlr)
|
|
513
598
|
resolve(cntrlr);
|
|
514
599
|
})];
|
|
@@ -532,6 +617,10 @@ var Snap = /** @class */ (function () {
|
|
|
532
617
|
}
|
|
533
618
|
case 'finder': {
|
|
534
619
|
_this.config.controllers[type].forEach(function (controller, index) {
|
|
620
|
+
if (typeof _this._controllerPromises[controller.config.id] != 'undefined') {
|
|
621
|
+
_this.logger.error("Controller with id '".concat(controller.config.id, "' is already defined"));
|
|
622
|
+
return;
|
|
623
|
+
}
|
|
535
624
|
_this._controllerPromises[controller.config.id] = new Promise(function (resolve) {
|
|
536
625
|
var _a;
|
|
537
626
|
try {
|
|
@@ -576,7 +665,7 @@ var Snap = /** @class */ (function () {
|
|
|
576
665
|
});
|
|
577
666
|
}); };
|
|
578
667
|
if (!(controller === null || controller === void 0 ? void 0 : controller.targeters) || (controller === null || controller === void 0 ? void 0 : controller.targeters.length) === 0) {
|
|
579
|
-
_this.
|
|
668
|
+
_this._createController(snap_controller_1.ControllerTypes.finder, controller.config, controller.services, controller.url, controller.context, function (cntrlr) {
|
|
580
669
|
if (cntrlr)
|
|
581
670
|
resolve(cntrlr);
|
|
582
671
|
});
|
|
@@ -592,7 +681,7 @@ var Snap = /** @class */ (function () {
|
|
|
592
681
|
var cntrlr;
|
|
593
682
|
return __generator(this, function (_a) {
|
|
594
683
|
switch (_a.label) {
|
|
595
|
-
case 0: return [4 /*yield*/, this.
|
|
684
|
+
case 0: return [4 /*yield*/, this._createController(snap_controller_1.ControllerTypes.finder, controller.config, controller.services, controller.url, controller.context, function (cntrlr) {
|
|
596
685
|
if (cntrlr)
|
|
597
686
|
resolve(cntrlr);
|
|
598
687
|
})];
|
|
@@ -616,6 +705,10 @@ var Snap = /** @class */ (function () {
|
|
|
616
705
|
}
|
|
617
706
|
case 'recommendation': {
|
|
618
707
|
_this.config.controllers[type].forEach(function (controller, index) {
|
|
708
|
+
if (typeof _this._controllerPromises[controller.config.id] != 'undefined') {
|
|
709
|
+
_this.logger.error("Controller with id '".concat(controller.config.id, "' is already defined"));
|
|
710
|
+
return;
|
|
711
|
+
}
|
|
619
712
|
_this._controllerPromises[controller.config.id] = new Promise(function (resolve) {
|
|
620
713
|
var _a;
|
|
621
714
|
try {
|
|
@@ -660,7 +753,7 @@ var Snap = /** @class */ (function () {
|
|
|
660
753
|
});
|
|
661
754
|
}); };
|
|
662
755
|
if (!(controller === null || controller === void 0 ? void 0 : controller.targeters) || (controller === null || controller === void 0 ? void 0 : controller.targeters.length) === 0) {
|
|
663
|
-
_this.
|
|
756
|
+
_this._createController(snap_controller_1.ControllerTypes.recommendation, controller.config, controller.services, controller.url, controller.context, function (cntrlr) {
|
|
664
757
|
if (cntrlr)
|
|
665
758
|
resolve(cntrlr);
|
|
666
759
|
});
|
|
@@ -676,7 +769,7 @@ var Snap = /** @class */ (function () {
|
|
|
676
769
|
var cntrlr;
|
|
677
770
|
return __generator(this, function (_a) {
|
|
678
771
|
switch (_a.label) {
|
|
679
|
-
case 0: return [4 /*yield*/, this.
|
|
772
|
+
case 0: return [4 /*yield*/, this._createController(snap_controller_1.ControllerTypes.recommendation, controller.config, controller.services, controller.url, controller.context, function (cntrlr) {
|
|
680
773
|
if (cntrlr)
|
|
681
774
|
resolve(cntrlr);
|
|
682
775
|
})];
|
|
@@ -700,10 +793,11 @@ var Snap = /** @class */ (function () {
|
|
|
700
793
|
}
|
|
701
794
|
}
|
|
702
795
|
});
|
|
703
|
-
if ((
|
|
796
|
+
if ((_x = (_w = this.config) === null || _w === void 0 ? void 0 : _w.instantiators) === null || _x === void 0 ? void 0 : _x.recommendation) {
|
|
704
797
|
try {
|
|
705
798
|
this._instantiatorPromises.recommendation = Promise.resolve().then(function () { return __importStar(require('./Instantiators/RecommendationInstantiator')); }).then(function (_a) {
|
|
706
799
|
var RecommendationInstantiator = _a.RecommendationInstantiator;
|
|
800
|
+
_this.config.instantiators.recommendation.mode = _this.config.instantiators.recommendation.mode || _this.mode;
|
|
707
801
|
return new RecommendationInstantiator(_this.config.instantiators.recommendation, {
|
|
708
802
|
client: _this.client,
|
|
709
803
|
tracker: _this.tracker,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AutocompleteController } from '@searchspring/snap-controller';
|
|
2
2
|
import type { SnapControllerServices, SnapAutocompleteControllerConfig } from '../types';
|
|
3
|
-
declare const _default: (config: SnapAutocompleteControllerConfig, services?: SnapControllerServices) => AutocompleteController;
|
|
3
|
+
declare const _default: (config: SnapAutocompleteControllerConfig, services?: SnapControllerServices | undefined) => AutocompleteController;
|
|
4
4
|
export default _default;
|
|
5
5
|
//# sourceMappingURL=createAutocompleteController.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createAutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/create/createAutocompleteController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AASvE,OAAO,KAAK,EAAE,sBAAsB,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAC;iCAIjE,gCAAgC,
|
|
1
|
+
{"version":3,"file":"createAutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/create/createAutocompleteController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AASvE,OAAO,KAAK,EAAE,sBAAsB,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAC;iCAIjE,gCAAgC,oDAAsC,sBAAsB;AAApH,wBAwBE"}
|
|
@@ -12,13 +12,18 @@ var snap_tracker_1 = require("@searchspring/snap-tracker");
|
|
|
12
12
|
(0, mobx_1.configure)({ useProxies: 'never' });
|
|
13
13
|
exports.default = (function (config, services) {
|
|
14
14
|
var urlManager = ((services === null || services === void 0 ? void 0 : services.urlManager) || new snap_url_manager_1.UrlManager(new snap_url_manager_1.UrlTranslator(config.url), snap_url_manager_1.reactLinker)).detach();
|
|
15
|
+
// set client mode
|
|
16
|
+
if (config.mode && config.client) {
|
|
17
|
+
config.client.config = config.client.config || {};
|
|
18
|
+
config.client.config.mode = config.mode;
|
|
19
|
+
}
|
|
15
20
|
var cntrlr = new snap_controller_1.AutocompleteController(config.controller, {
|
|
16
21
|
client: (services === null || services === void 0 ? void 0 : services.client) || new snap_client_1.Client(config.client.globals, config.client.config),
|
|
17
22
|
store: (services === null || services === void 0 ? void 0 : services.store) || new snap_store_mobx_1.AutocompleteStore(config.controller, { urlManager: urlManager }),
|
|
18
23
|
urlManager: urlManager,
|
|
19
24
|
eventManager: (services === null || services === void 0 ? void 0 : services.eventManager) || new snap_event_manager_1.EventManager(),
|
|
20
25
|
profiler: (services === null || services === void 0 ? void 0 : services.profiler) || new snap_profiler_1.Profiler(),
|
|
21
|
-
logger: (services === null || services === void 0 ? void 0 : services.logger) || new snap_logger_1.Logger(),
|
|
26
|
+
logger: (services === null || services === void 0 ? void 0 : services.logger) || new snap_logger_1.Logger({ mode: config.mode }),
|
|
22
27
|
tracker: (services === null || services === void 0 ? void 0 : services.tracker) || new snap_tracker_1.Tracker(config.client.globals),
|
|
23
28
|
}, config.context);
|
|
24
29
|
return cntrlr;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FinderController } from '@searchspring/snap-controller';
|
|
2
2
|
import type { SnapControllerServices, SnapFinderControllerConfig } from '../types';
|
|
3
|
-
declare const _default: (config: SnapFinderControllerConfig, services?: SnapControllerServices) => FinderController;
|
|
3
|
+
declare const _default: (config: SnapFinderControllerConfig, services?: SnapControllerServices | undefined) => FinderController;
|
|
4
4
|
export default _default;
|
|
5
5
|
//# sourceMappingURL=createFinderController.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createFinderController.d.ts","sourceRoot":"","sources":["../../../src/create/createFinderController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AASjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;iCAI3D,0BAA0B,
|
|
1
|
+
{"version":3,"file":"createFinderController.d.ts","sourceRoot":"","sources":["../../../src/create/createFinderController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AASjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;iCAI3D,0BAA0B,oDAAsC,gBAAgB;AAAxG,wBAwBE"}
|
|
@@ -12,13 +12,18 @@ var snap_tracker_1 = require("@searchspring/snap-tracker");
|
|
|
12
12
|
(0, mobx_1.configure)({ useProxies: 'never' });
|
|
13
13
|
exports.default = (function (config, services) {
|
|
14
14
|
var urlManager = ((services === null || services === void 0 ? void 0 : services.urlManager) || new snap_url_manager_1.UrlManager(new snap_url_manager_1.UrlTranslator(config.url), snap_url_manager_1.reactLinker)).detach(true);
|
|
15
|
+
// set client mode
|
|
16
|
+
if (config.mode && config.client) {
|
|
17
|
+
config.client.config = config.client.config || {};
|
|
18
|
+
config.client.config.mode = config.mode;
|
|
19
|
+
}
|
|
15
20
|
var cntrlr = new snap_controller_1.FinderController(config.controller, {
|
|
16
21
|
client: (services === null || services === void 0 ? void 0 : services.client) || new snap_client_1.Client(config.client.globals, config.client.config),
|
|
17
22
|
store: (services === null || services === void 0 ? void 0 : services.store) || new snap_store_mobx_1.FinderStore(config.controller, { urlManager: urlManager }),
|
|
18
23
|
urlManager: urlManager,
|
|
19
24
|
eventManager: (services === null || services === void 0 ? void 0 : services.eventManager) || new snap_event_manager_1.EventManager(),
|
|
20
25
|
profiler: (services === null || services === void 0 ? void 0 : services.profiler) || new snap_profiler_1.Profiler(),
|
|
21
|
-
logger: (services === null || services === void 0 ? void 0 : services.logger) || new snap_logger_1.Logger(),
|
|
26
|
+
logger: (services === null || services === void 0 ? void 0 : services.logger) || new snap_logger_1.Logger({ mode: config.mode }),
|
|
22
27
|
tracker: (services === null || services === void 0 ? void 0 : services.tracker) || new snap_tracker_1.Tracker(config.client.globals),
|
|
23
28
|
}, config.context);
|
|
24
29
|
return cntrlr;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RecommendationController } from '@searchspring/snap-controller';
|
|
2
2
|
import type { SnapControllerServices, SnapRecommendationControllerConfig } from '../types';
|
|
3
|
-
declare const _default: (config: SnapRecommendationControllerConfig, services?: SnapControllerServices) => RecommendationController;
|
|
3
|
+
declare const _default: (config: SnapRecommendationControllerConfig, services?: SnapControllerServices | undefined) => RecommendationController;
|
|
4
4
|
export default _default;
|
|
5
5
|
//# sourceMappingURL=createRecommendationController.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createRecommendationController.d.ts","sourceRoot":"","sources":["../../../src/create/createRecommendationController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AASzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,kCAAkC,EAAE,MAAM,UAAU,CAAC;iCAInE,kCAAkC,
|
|
1
|
+
{"version":3,"file":"createRecommendationController.d.ts","sourceRoot":"","sources":["../../../src/create/createRecommendationController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AASzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,kCAAkC,EAAE,MAAM,UAAU,CAAC;iCAInE,kCAAkC,oDAAsC,wBAAwB;AAAxH,wBAwBE"}
|
|
@@ -12,13 +12,18 @@ var snap_tracker_1 = require("@searchspring/snap-tracker");
|
|
|
12
12
|
(0, mobx_1.configure)({ useProxies: 'never' });
|
|
13
13
|
exports.default = (function (config, services) {
|
|
14
14
|
var urlManager = ((services === null || services === void 0 ? void 0 : services.urlManager) || new snap_url_manager_1.UrlManager(new snap_url_manager_1.UrlTranslator(config.url), snap_url_manager_1.reactLinker)).detach(true);
|
|
15
|
+
// set client mode
|
|
16
|
+
if (config.mode && config.client) {
|
|
17
|
+
config.client.config = config.client.config || {};
|
|
18
|
+
config.client.config.mode = config.mode;
|
|
19
|
+
}
|
|
15
20
|
var cntrlr = new snap_controller_1.RecommendationController(config.controller, {
|
|
16
21
|
client: (services === null || services === void 0 ? void 0 : services.client) || new snap_client_1.Client(config.client.globals, config.client.config),
|
|
17
22
|
store: (services === null || services === void 0 ? void 0 : services.store) || new snap_store_mobx_1.RecommendationStore(config.controller, { urlManager: urlManager }),
|
|
18
23
|
urlManager: urlManager,
|
|
19
24
|
eventManager: (services === null || services === void 0 ? void 0 : services.eventManager) || new snap_event_manager_1.EventManager(),
|
|
20
25
|
profiler: (services === null || services === void 0 ? void 0 : services.profiler) || new snap_profiler_1.Profiler(),
|
|
21
|
-
logger: (services === null || services === void 0 ? void 0 : services.logger) || new snap_logger_1.Logger(),
|
|
26
|
+
logger: (services === null || services === void 0 ? void 0 : services.logger) || new snap_logger_1.Logger({ mode: config.mode }),
|
|
22
27
|
tracker: (services === null || services === void 0 ? void 0 : services.tracker) || new snap_tracker_1.Tracker(config.client.globals),
|
|
23
28
|
}, config.context);
|
|
24
29
|
return cntrlr;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SearchController } from '@searchspring/snap-controller';
|
|
2
2
|
import type { SnapControllerServices, SnapSearchControllerConfig } from '../types';
|
|
3
|
-
declare const _default: (config: SnapSearchControllerConfig, services?: SnapControllerServices) => SearchController;
|
|
3
|
+
declare const _default: (config: SnapSearchControllerConfig, services?: SnapControllerServices | undefined) => SearchController;
|
|
4
4
|
export default _default;
|
|
5
5
|
//# sourceMappingURL=createSearchController.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSearchController.d.ts","sourceRoot":"","sources":["../../../src/create/createSearchController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAQjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;iCAI3D,0BAA0B,
|
|
1
|
+
{"version":3,"file":"createSearchController.d.ts","sourceRoot":"","sources":["../../../src/create/createSearchController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAQjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;iCAI3D,0BAA0B,oDAAsC,gBAAgB;AAAxG,wBAwBE"}
|
|
@@ -12,13 +12,18 @@ var snap_tracker_1 = require("@searchspring/snap-tracker");
|
|
|
12
12
|
(0, mobx_1.configure)({ useProxies: 'never' });
|
|
13
13
|
exports.default = (function (config, services) {
|
|
14
14
|
var urlManager = (services === null || services === void 0 ? void 0 : services.urlManager) || new snap_url_manager_1.UrlManager(new snap_url_manager_1.UrlTranslator(config.url), snap_url_manager_1.reactLinker);
|
|
15
|
+
// set client mode
|
|
16
|
+
if (config.mode && config.client) {
|
|
17
|
+
config.client.config = config.client.config || {};
|
|
18
|
+
config.client.config.mode = config.mode;
|
|
19
|
+
}
|
|
15
20
|
var cntrlr = new snap_controller_1.SearchController(config.controller, {
|
|
16
21
|
client: (services === null || services === void 0 ? void 0 : services.client) || new snap_client_1.Client(config.client.globals, config.client.config),
|
|
17
22
|
store: (services === null || services === void 0 ? void 0 : services.store) || new snap_store_mobx_1.SearchStore(config.controller, { urlManager: urlManager }),
|
|
18
23
|
urlManager: urlManager,
|
|
19
24
|
eventManager: (services === null || services === void 0 ? void 0 : services.eventManager) || new snap_event_manager_1.EventManager(),
|
|
20
25
|
profiler: (services === null || services === void 0 ? void 0 : services.profiler) || new snap_profiler_1.Profiler(),
|
|
21
|
-
logger: (services === null || services === void 0 ? void 0 : services.logger) || new snap_logger_1.Logger(),
|
|
26
|
+
logger: (services === null || services === void 0 ? void 0 : services.logger) || new snap_logger_1.Logger({ mode: config.mode }),
|
|
22
27
|
tracker: (services === null || services === void 0 ? void 0 : services.tracker) || new snap_tracker_1.Tracker(config.client.globals),
|
|
23
28
|
}, config.context);
|
|
24
29
|
return cntrlr;
|
package/dist/cjs/types.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import type { Client, ClientConfig, ClientGlobals } from '@searchspring/snap-client';
|
|
3
|
-
import type {
|
|
2
|
+
import type { SearchControllerConfig, AutocompleteControllerConfig, FinderControllerConfig, RecommendationControllerConfig, ContextVariables } from '@searchspring/snap-controller';
|
|
4
3
|
import type { SearchStore, AutocompleteStore, FinderStore, RecommendationStore } from '@searchspring/snap-store-mobx';
|
|
5
4
|
import type { UrlManager, UrlTranslatorConfig } from '@searchspring/snap-url-manager';
|
|
6
5
|
import type { EventManager } from '@searchspring/snap-event-manager';
|
|
7
6
|
import type { Profiler } from '@searchspring/snap-profiler';
|
|
8
7
|
import type { Logger } from '@searchspring/snap-logger';
|
|
9
8
|
import type { Tracker } from '@searchspring/snap-tracker';
|
|
9
|
+
import { AppMode } from '@searchspring/snap-toolbox';
|
|
10
10
|
export declare type SnapControllerServices = {
|
|
11
11
|
client?: Client;
|
|
12
12
|
store?: SearchStore | AutocompleteStore | FinderStore | RecommendationStore;
|
|
@@ -17,10 +17,8 @@ export declare type SnapControllerServices = {
|
|
|
17
17
|
tracker?: Tracker;
|
|
18
18
|
};
|
|
19
19
|
export declare type SnapControllerConfigs = SnapSearchControllerConfig | SnapAutocompleteControllerConfig | SnapFinderControllerConfig | SnapRecommendationControllerConfig;
|
|
20
|
-
export declare type RootComponent = React.ElementType<{
|
|
21
|
-
controller: AbstractController;
|
|
22
|
-
}>;
|
|
23
20
|
export declare type SnapSearchControllerConfig = {
|
|
21
|
+
mode?: keyof typeof AppMode | AppMode;
|
|
24
22
|
url?: UrlTranslatorConfig;
|
|
25
23
|
client?: {
|
|
26
24
|
globals: ClientGlobals;
|
|
@@ -30,6 +28,7 @@ export declare type SnapSearchControllerConfig = {
|
|
|
30
28
|
context?: ContextVariables;
|
|
31
29
|
};
|
|
32
30
|
export declare type SnapAutocompleteControllerConfig = {
|
|
31
|
+
mode?: keyof typeof AppMode | AppMode;
|
|
33
32
|
url?: UrlTranslatorConfig;
|
|
34
33
|
client?: {
|
|
35
34
|
globals: ClientGlobals;
|
|
@@ -39,6 +38,7 @@ export declare type SnapAutocompleteControllerConfig = {
|
|
|
39
38
|
context?: ContextVariables;
|
|
40
39
|
};
|
|
41
40
|
export declare type SnapFinderControllerConfig = {
|
|
41
|
+
mode?: keyof typeof AppMode | AppMode;
|
|
42
42
|
url?: UrlTranslatorConfig;
|
|
43
43
|
client?: {
|
|
44
44
|
globals: ClientGlobals;
|
|
@@ -48,6 +48,7 @@ export declare type SnapFinderControllerConfig = {
|
|
|
48
48
|
context?: ContextVariables;
|
|
49
49
|
};
|
|
50
50
|
export declare type SnapRecommendationControllerConfig = {
|
|
51
|
+
mode?: keyof typeof AppMode | AppMode;
|
|
51
52
|
url?: UrlTranslatorConfig;
|
|
52
53
|
client?: {
|
|
53
54
|
globals: ClientGlobals;
|