@searchspring/snap-preact 0.40.0 → 0.41.1
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/Snap.d.ts +1 -0
- package/dist/cjs/Snap.d.ts.map +1 -1
- package/dist/cjs/Snap.js +15 -39
- package/dist/cjs/configureSnapFeatures.d.ts +3 -0
- package/dist/cjs/configureSnapFeatures.d.ts.map +1 -0
- package/dist/cjs/configureSnapFeatures.js +55 -0
- package/dist/esm/Snap.d.ts +1 -0
- package/dist/esm/Snap.d.ts.map +1 -1
- package/dist/esm/Snap.js +5 -28
- package/dist/esm/configureSnapFeatures.d.ts +3 -0
- package/dist/esm/configureSnapFeatures.d.ts.map +1 -0
- package/dist/esm/configureSnapFeatures.js +46 -0
- package/package.json +12 -12
package/dist/cjs/Snap.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ import { RecommendationInstantiator, RecommendationInstantiatorConfig } from './
|
|
|
11
11
|
import type { SnapControllerServices } from './types';
|
|
12
12
|
export declare const BRANCH_COOKIE = "ssBranch";
|
|
13
13
|
export declare const DEV_COOKIE = "ssDev";
|
|
14
|
+
export declare const STYLESHEET_CLASSNAME = "ss-snap-bundle-styles";
|
|
14
15
|
declare type ExtendedTarget = Target & {
|
|
15
16
|
name?: string;
|
|
16
17
|
controller?: AbstractController;
|
package/dist/cjs/Snap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Snap.d.ts","sourceRoot":"","sources":["../../src/Snap.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,OAAO,EAAgE,MAAM,4BAA4B,CAAC;AACnH,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,KAAK,EACX,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,EACtB,4BAA4B,EAC5B,sBAAsB,EACtB,8BAA8B,EAC9B,iBAAiB,EACjB,gBAAgB,EAChB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"Snap.d.ts","sourceRoot":"","sources":["../../src/Snap.tsx"],"names":[],"mappings":"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"}
|
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.DEV_COOKIE = exports.BRANCH_COOKIE = void 0;
|
|
76
|
+
exports.Snap = exports.STYLESHEET_CLASSNAME = 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");
|
|
@@ -85,16 +85,18 @@ var snap_tracker_1 = require("@searchspring/snap-tracker");
|
|
|
85
85
|
var snap_toolbox_1 = require("@searchspring/snap-toolbox");
|
|
86
86
|
var snap_controller_1 = require("@searchspring/snap-controller");
|
|
87
87
|
var createSearchController_1 = __importDefault(require("./create/createSearchController"));
|
|
88
|
+
var configureSnapFeatures_1 = require("./configureSnapFeatures");
|
|
88
89
|
// configure MobX
|
|
89
90
|
(0, mobx_1.configure)({ useProxies: 'never', isolateGlobalState: true, enforceActions: 'never' });
|
|
90
91
|
exports.BRANCH_COOKIE = 'ssBranch';
|
|
91
92
|
exports.DEV_COOKIE = 'ssDev';
|
|
93
|
+
exports.STYLESHEET_CLASSNAME = 'ss-snap-bundle-styles';
|
|
92
94
|
var SESSION_ATTRIBUTION = 'ssAttribution';
|
|
93
95
|
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";
|
|
94
96
|
var Snap = /** @class */ (function () {
|
|
95
97
|
function Snap(config, services) {
|
|
96
98
|
var _this = this;
|
|
97
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0
|
|
99
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;
|
|
98
100
|
this.mode = snap_toolbox_1.AppMode.production;
|
|
99
101
|
this._instantiatorPromises = {};
|
|
100
102
|
this._controllerPromises = {};
|
|
@@ -290,51 +292,23 @@ var Snap = /** @class */ (function () {
|
|
|
290
292
|
this.config.client.config.mode = this.config.client.config.mode || this.mode;
|
|
291
293
|
}
|
|
292
294
|
// feature check block
|
|
293
|
-
|
|
294
|
-
if (this.config.client && ((_r = (_q = this.config.features) === null || _q === void 0 ? void 0 : _q.integratedSpellCorrection) === null || _r === void 0 ? void 0 : _r.enabled)) {
|
|
295
|
-
this.config.client.config = (0, deepmerge_1.default)(this.config.client.config || {}, {
|
|
296
|
-
autocomplete: {
|
|
297
|
-
requesters: {
|
|
298
|
-
suggest: {
|
|
299
|
-
globals: {
|
|
300
|
-
integratedSpellCorrection: true,
|
|
301
|
-
},
|
|
302
|
-
},
|
|
303
|
-
},
|
|
304
|
-
},
|
|
305
|
-
});
|
|
306
|
-
// loop through controllers config and toggle integratedSpellCorrection setting
|
|
307
|
-
Object.keys(((_s = this.config) === null || _s === void 0 ? void 0 : _s.controllers) || {}).forEach(function (type) {
|
|
308
|
-
switch (type) {
|
|
309
|
-
case 'autocomplete': {
|
|
310
|
-
_this.config.controllers[type].forEach(function (controller, index) {
|
|
311
|
-
var _a, _b;
|
|
312
|
-
if (typeof ((_b = (_a = controller.config) === null || _a === void 0 ? void 0 : _a.settings) === null || _b === void 0 ? void 0 : _b.integratedSpellCorrection) == 'undefined') {
|
|
313
|
-
controller.config.settings = controller.config.settings || {};
|
|
314
|
-
controller.config.settings.integratedSpellCorrection = true;
|
|
315
|
-
}
|
|
316
|
-
});
|
|
317
|
-
break;
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
});
|
|
321
|
-
}
|
|
295
|
+
(0, configureSnapFeatures_1.configureSnapFeatures)(this.config);
|
|
322
296
|
this.client = (services === null || services === void 0 ? void 0 : services.client) || new snap_client_1.Client(this.config.client.globals, this.config.client.config);
|
|
323
297
|
this.tracker = (services === null || services === void 0 ? void 0 : services.tracker) || new snap_tracker_1.Tracker(this.config.client.globals, { framework: 'preact', mode: this.mode });
|
|
324
298
|
this.logger = (services === null || services === void 0 ? void 0 : services.logger) || new snap_logger_1.Logger({ prefix: 'Snap Preact ', mode: this.mode });
|
|
325
299
|
// check for tracking attribution in URL ?ss_attribution=type:id
|
|
326
|
-
var sessionAttribution = (
|
|
327
|
-
if ((
|
|
300
|
+
var sessionAttribution = (_q = window.sessionStorage) === null || _q === void 0 ? void 0 : _q.getItem(SESSION_ATTRIBUTION);
|
|
301
|
+
if ((_s = (_r = urlParams === null || urlParams === void 0 ? void 0 : urlParams.params) === null || _r === void 0 ? void 0 : _r.query) === null || _s === void 0 ? void 0 : _s.ss_attribution) {
|
|
328
302
|
var attribution = urlParams.params.query.ss_attribution.split(':');
|
|
329
303
|
var type = attribution[0], id = attribution[1];
|
|
330
304
|
if (type && id) {
|
|
331
305
|
this.tracker.updateContext('attribution', { type: type, id: id });
|
|
332
306
|
}
|
|
333
307
|
// save to session storage
|
|
334
|
-
(
|
|
308
|
+
(_t = window.sessionStorage) === null || _t === void 0 ? void 0 : _t.setItem(SESSION_ATTRIBUTION, urlParams.params.query.ss_attribution);
|
|
335
309
|
}
|
|
336
310
|
else if (sessionAttribution) {
|
|
337
|
-
var
|
|
311
|
+
var _1 = sessionAttribution.split(':'), type = _1[0], id = _1[1];
|
|
338
312
|
if (type && id) {
|
|
339
313
|
this.tracker.updateContext('attribution', { type: type, id: id });
|
|
340
314
|
}
|
|
@@ -429,6 +403,8 @@ var Snap = /** @class */ (function () {
|
|
|
429
403
|
}
|
|
430
404
|
});
|
|
431
405
|
}); });
|
|
406
|
+
// remove snap bundle styles
|
|
407
|
+
document.querySelectorAll(".".concat(exports.STYLESHEET_CLASSNAME)).forEach(function (el) { return el.remove(); });
|
|
432
408
|
// prevent further instantiation of config
|
|
433
409
|
throw 'branch override';
|
|
434
410
|
}
|
|
@@ -445,13 +421,13 @@ var Snap = /** @class */ (function () {
|
|
|
445
421
|
if (this.client)
|
|
446
422
|
window.searchspring.client = this.client;
|
|
447
423
|
// autotrack shopper id from the context
|
|
448
|
-
if ((
|
|
424
|
+
if ((_v = (_u = this.context) === null || _u === void 0 ? void 0 : _u.shopper) === null || _v === void 0 ? void 0 : _v.id) {
|
|
449
425
|
this.tracker.track.shopper.login({
|
|
450
426
|
id: this.context.shopper.id,
|
|
451
427
|
});
|
|
452
428
|
}
|
|
453
429
|
// auto populate cart cookie from the context
|
|
454
|
-
if ((
|
|
430
|
+
if ((_x = (_w = this.context) === null || _w === void 0 ? void 0 : _w.shopper) === null || _x === void 0 ? void 0 : _x.cart) {
|
|
455
431
|
var cart = this.context.shopper.cart;
|
|
456
432
|
if (Array.isArray(cart)) {
|
|
457
433
|
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(); });
|
|
@@ -459,7 +435,7 @@ var Snap = /** @class */ (function () {
|
|
|
459
435
|
}
|
|
460
436
|
}
|
|
461
437
|
// create controllers
|
|
462
|
-
Object.keys(((
|
|
438
|
+
Object.keys(((_y = this.config) === null || _y === void 0 ? void 0 : _y.controllers) || {}).forEach(function (type) {
|
|
463
439
|
switch (type) {
|
|
464
440
|
case 'search': {
|
|
465
441
|
_this.config.controllers[type].forEach(function (controller, index) {
|
|
@@ -862,7 +838,7 @@ var Snap = /** @class */ (function () {
|
|
|
862
838
|
}
|
|
863
839
|
});
|
|
864
840
|
// create instantiators
|
|
865
|
-
if ((
|
|
841
|
+
if ((_0 = (_z = this.config) === null || _z === void 0 ? void 0 : _z.instantiators) === null || _0 === void 0 ? void 0 : _0.recommendation) {
|
|
866
842
|
try {
|
|
867
843
|
this._instantiatorPromises.recommendation = Promise.resolve().then(function () { return __importStar(require('./Instantiators/RecommendationInstantiator')); }).then(function (_a) {
|
|
868
844
|
var RecommendationInstantiator = _a.RecommendationInstantiator;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configureSnapFeatures.d.ts","sourceRoot":"","sources":["../../src/configureSnapFeatures.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEzC,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,QAIvD"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.configureSnapFeatures = void 0;
|
|
7
|
+
var deepmerge_1 = __importDefault(require("deepmerge"));
|
|
8
|
+
function configureSnapFeatures(config) {
|
|
9
|
+
/* configure snap features by mutating the config as needed */
|
|
10
|
+
configureIntegratedSpellCorrection(config);
|
|
11
|
+
}
|
|
12
|
+
exports.configureSnapFeatures = configureSnapFeatures;
|
|
13
|
+
function configureIntegratedSpellCorrection(config) {
|
|
14
|
+
var _a, _b;
|
|
15
|
+
if ((_b = (_a = config.features) === null || _a === void 0 ? void 0 : _a.integratedSpellCorrection) === null || _b === void 0 ? void 0 : _b.enabled) {
|
|
16
|
+
if (config.client) {
|
|
17
|
+
config.client.config = (0, deepmerge_1.default)({
|
|
18
|
+
autocomplete: {
|
|
19
|
+
requesters: {
|
|
20
|
+
suggest: {
|
|
21
|
+
globals: {
|
|
22
|
+
integratedSpellCorrection: true,
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
}, config.client.config || {});
|
|
28
|
+
}
|
|
29
|
+
// loop through controllers config and toggle integratedSpellCorrection setting
|
|
30
|
+
Object.keys((config === null || config === void 0 ? void 0 : config.controllers) || {}).forEach(function (type) {
|
|
31
|
+
switch (type) {
|
|
32
|
+
case 'autocomplete': {
|
|
33
|
+
config.controllers[type].forEach(function (controller, index) {
|
|
34
|
+
var _a, _b, _c, _d;
|
|
35
|
+
if (typeof ((_b = (_a = controller.config) === null || _a === void 0 ? void 0 : _a.settings) === null || _b === void 0 ? void 0 : _b.integratedSpellCorrection) == 'undefined') {
|
|
36
|
+
// enable integratedSpellCorrection controller setting
|
|
37
|
+
controller.config.settings = (0, deepmerge_1.default)({ integratedSpellCorrection: true }, controller.config.settings || {});
|
|
38
|
+
}
|
|
39
|
+
if ((_d = (_c = controller.config) === null || _c === void 0 ? void 0 : _c.settings) === null || _d === void 0 ? void 0 : _d.integratedSpellCorrection) {
|
|
40
|
+
// set spell correction globals for convenience
|
|
41
|
+
controller.config.globals = (0, deepmerge_1.default)({
|
|
42
|
+
search: {
|
|
43
|
+
query: {
|
|
44
|
+
spellCorrection: true,
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
}, controller.config.globals || {});
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
package/dist/esm/Snap.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ import { RecommendationInstantiator, RecommendationInstantiatorConfig } from './
|
|
|
11
11
|
import type { SnapControllerServices } from './types';
|
|
12
12
|
export declare const BRANCH_COOKIE = "ssBranch";
|
|
13
13
|
export declare const DEV_COOKIE = "ssDev";
|
|
14
|
+
export declare const STYLESHEET_CLASSNAME = "ss-snap-bundle-styles";
|
|
14
15
|
declare type ExtendedTarget = Target & {
|
|
15
16
|
name?: string;
|
|
16
17
|
controller?: AbstractController;
|
package/dist/esm/Snap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Snap.d.ts","sourceRoot":"","sources":["../../src/Snap.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,OAAO,EAAgE,MAAM,4BAA4B,CAAC;AACnH,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,KAAK,EACX,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,EACtB,4BAA4B,EAC5B,sBAAsB,EACtB,8BAA8B,EAC9B,iBAAiB,EACjB,gBAAgB,EAChB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"Snap.d.ts","sourceRoot":"","sources":["../../src/Snap.tsx"],"names":[],"mappings":"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"}
|
package/dist/esm/Snap.js
CHANGED
|
@@ -9,10 +9,12 @@ import { Tracker } from '@searchspring/snap-tracker';
|
|
|
9
9
|
import { AppMode, version, getContext, DomTargeter, url, cookies, featureFlags } from '@searchspring/snap-toolbox';
|
|
10
10
|
import { ControllerTypes } from '@searchspring/snap-controller';
|
|
11
11
|
import { default as createSearchController } from './create/createSearchController';
|
|
12
|
+
import { configureSnapFeatures } from './configureSnapFeatures';
|
|
12
13
|
// configure MobX
|
|
13
14
|
configureMobx({ useProxies: 'never', isolateGlobalState: true, enforceActions: 'never' });
|
|
14
15
|
export const BRANCH_COOKIE = 'ssBranch';
|
|
15
16
|
export const DEV_COOKIE = 'ssDev';
|
|
17
|
+
export const STYLESHEET_CLASSNAME = 'ss-snap-bundle-styles';
|
|
16
18
|
const SESSION_ATTRIBUTION = 'ssAttribution';
|
|
17
19
|
const COMPONENT_ERROR = `Uncaught Error - Invalid value passed as the component.
|
|
18
20
|
This usually happens when you pass a JSX Element, and not a function that returns the component, in the snap config.
|
|
@@ -218,34 +220,7 @@ export class Snap {
|
|
|
218
220
|
this.config.client.config.mode = this.config.client.config.mode || this.mode;
|
|
219
221
|
}
|
|
220
222
|
// feature check block
|
|
221
|
-
|
|
222
|
-
if (this.config.client && this.config.features?.integratedSpellCorrection?.enabled) {
|
|
223
|
-
this.config.client.config = deepmerge(this.config.client.config || {}, {
|
|
224
|
-
autocomplete: {
|
|
225
|
-
requesters: {
|
|
226
|
-
suggest: {
|
|
227
|
-
globals: {
|
|
228
|
-
integratedSpellCorrection: true,
|
|
229
|
-
},
|
|
230
|
-
},
|
|
231
|
-
},
|
|
232
|
-
},
|
|
233
|
-
});
|
|
234
|
-
// loop through controllers config and toggle integratedSpellCorrection setting
|
|
235
|
-
Object.keys(this.config?.controllers || {}).forEach((type) => {
|
|
236
|
-
switch (type) {
|
|
237
|
-
case 'autocomplete': {
|
|
238
|
-
this.config.controllers[type].forEach((controller, index) => {
|
|
239
|
-
if (typeof controller.config?.settings?.integratedSpellCorrection == 'undefined') {
|
|
240
|
-
controller.config.settings = controller.config.settings || {};
|
|
241
|
-
controller.config.settings.integratedSpellCorrection = true;
|
|
242
|
-
}
|
|
243
|
-
});
|
|
244
|
-
break;
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
});
|
|
248
|
-
}
|
|
223
|
+
configureSnapFeatures(this.config);
|
|
249
224
|
this.client = services?.client || new Client(this.config.client.globals, this.config.client.config);
|
|
250
225
|
this.tracker = services?.tracker || new Tracker(this.config.client.globals, { framework: 'preact', mode: this.mode });
|
|
251
226
|
this.logger = services?.logger || new Logger({ prefix: 'Snap Preact ', mode: this.mode });
|
|
@@ -339,6 +314,8 @@ export class Snap {
|
|
|
339
314
|
}
|
|
340
315
|
document.head.appendChild(branchScript);
|
|
341
316
|
});
|
|
317
|
+
// remove snap bundle styles
|
|
318
|
+
document.querySelectorAll(`.${STYLESHEET_CLASSNAME}`).forEach((el) => el.remove());
|
|
342
319
|
// prevent further instantiation of config
|
|
343
320
|
throw 'branch override';
|
|
344
321
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configureSnapFeatures.d.ts","sourceRoot":"","sources":["../../src/configureSnapFeatures.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEzC,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,QAIvD"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import deepmerge from 'deepmerge';
|
|
2
|
+
export function configureSnapFeatures(config) {
|
|
3
|
+
/* configure snap features by mutating the config as needed */
|
|
4
|
+
configureIntegratedSpellCorrection(config);
|
|
5
|
+
}
|
|
6
|
+
function configureIntegratedSpellCorrection(config) {
|
|
7
|
+
if (config.features?.integratedSpellCorrection?.enabled) {
|
|
8
|
+
if (config.client) {
|
|
9
|
+
config.client.config = deepmerge({
|
|
10
|
+
autocomplete: {
|
|
11
|
+
requesters: {
|
|
12
|
+
suggest: {
|
|
13
|
+
globals: {
|
|
14
|
+
integratedSpellCorrection: true,
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
}, config.client.config || {});
|
|
20
|
+
}
|
|
21
|
+
// loop through controllers config and toggle integratedSpellCorrection setting
|
|
22
|
+
Object.keys(config?.controllers || {}).forEach((type) => {
|
|
23
|
+
switch (type) {
|
|
24
|
+
case 'autocomplete': {
|
|
25
|
+
config.controllers[type].forEach((controller, index) => {
|
|
26
|
+
if (typeof controller.config?.settings?.integratedSpellCorrection == 'undefined') {
|
|
27
|
+
// enable integratedSpellCorrection controller setting
|
|
28
|
+
controller.config.settings = deepmerge({ integratedSpellCorrection: true }, controller.config.settings || {});
|
|
29
|
+
}
|
|
30
|
+
if (controller.config?.settings?.integratedSpellCorrection) {
|
|
31
|
+
// set spell correction globals for convenience
|
|
32
|
+
controller.config.globals = deepmerge({
|
|
33
|
+
search: {
|
|
34
|
+
query: {
|
|
35
|
+
spellCorrection: true,
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
}, controller.config.globals || {});
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@searchspring/snap-preact",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.41.1",
|
|
4
4
|
"description": "Snap Preact",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -20,16 +20,16 @@
|
|
|
20
20
|
"test:watch": "jest --watch"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@searchspring/snap-client": "^0.
|
|
24
|
-
"@searchspring/snap-controller": "^0.
|
|
25
|
-
"@searchspring/snap-event-manager": "^0.
|
|
26
|
-
"@searchspring/snap-logger": "^0.
|
|
27
|
-
"@searchspring/snap-preact-components": "^0.
|
|
28
|
-
"@searchspring/snap-profiler": "^0.
|
|
29
|
-
"@searchspring/snap-store-mobx": "^0.
|
|
30
|
-
"@searchspring/snap-toolbox": "^0.
|
|
31
|
-
"@searchspring/snap-tracker": "^0.
|
|
32
|
-
"@searchspring/snap-url-manager": "^0.
|
|
23
|
+
"@searchspring/snap-client": "^0.41.1",
|
|
24
|
+
"@searchspring/snap-controller": "^0.41.1",
|
|
25
|
+
"@searchspring/snap-event-manager": "^0.41.1",
|
|
26
|
+
"@searchspring/snap-logger": "^0.41.1",
|
|
27
|
+
"@searchspring/snap-preact-components": "^0.41.1",
|
|
28
|
+
"@searchspring/snap-profiler": "^0.41.1",
|
|
29
|
+
"@searchspring/snap-store-mobx": "^0.41.1",
|
|
30
|
+
"@searchspring/snap-toolbox": "^0.41.1",
|
|
31
|
+
"@searchspring/snap-tracker": "^0.41.1",
|
|
32
|
+
"@searchspring/snap-url-manager": "^0.41.1",
|
|
33
33
|
"deepmerge": "4.2.2",
|
|
34
34
|
"intersection-observer": "0.12.0",
|
|
35
35
|
"is-plain-object": "5.0.0"
|
|
@@ -41,5 +41,5 @@
|
|
|
41
41
|
"files": [
|
|
42
42
|
"dist/**/*"
|
|
43
43
|
],
|
|
44
|
-
"gitHead": "
|
|
44
|
+
"gitHead": "7df982d99e4a16a4346074a224958b871663a6e4"
|
|
45
45
|
}
|