@searchspring/snap-preact 0.44.3 → 0.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Snap.d.ts +9 -2
- package/dist/cjs/Snap.d.ts.map +1 -1
- package/dist/cjs/Snap.js +19 -10
- package/dist/cjs/create/createSearchController.d.ts.map +1 -1
- package/dist/cjs/getInitialUrlState/getInitialUrlState.d.ts +4 -0
- package/dist/cjs/getInitialUrlState/getInitialUrlState.d.ts.map +1 -0
- package/dist/cjs/getInitialUrlState/getInitialUrlState.js +29 -0
- package/dist/cjs/types.d.ts +20 -2
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/esm/Snap.d.ts +9 -2
- package/dist/esm/Snap.d.ts.map +1 -1
- package/dist/esm/Snap.js +9 -1
- package/dist/esm/create/createSearchController.d.ts.map +1 -1
- package/dist/esm/getInitialUrlState/getInitialUrlState.d.ts +4 -0
- package/dist/esm/getInitialUrlState/getInitialUrlState.d.ts.map +1 -0
- package/dist/esm/getInitialUrlState/getInitialUrlState.js +23 -0
- package/dist/esm/types.d.ts +20 -2
- package/dist/esm/types.d.ts.map +1 -1
- package/package.json +12 -12
package/dist/cjs/Snap.d.ts
CHANGED
|
@@ -5,10 +5,11 @@ import { AppMode } from '@searchspring/snap-toolbox';
|
|
|
5
5
|
import { ControllerTypes } from '@searchspring/snap-controller';
|
|
6
6
|
import type { ClientConfig, ClientGlobals } from '@searchspring/snap-client';
|
|
7
7
|
import type { Controllers, AbstractController, SearchControllerConfig, AutocompleteControllerConfig, FinderControllerConfig, RecommendationControllerConfig, ControllerConfigs, ContextVariables } from '@searchspring/snap-controller';
|
|
8
|
+
import type { TrackerConfig, TrackerGlobals } from '@searchspring/snap-tracker';
|
|
8
9
|
import type { Target, OnTarget } from '@searchspring/snap-toolbox';
|
|
9
10
|
import type { UrlTranslatorConfig } from '@searchspring/snap-url-manager';
|
|
10
11
|
import { RecommendationInstantiator, RecommendationInstantiatorConfig } from './Instantiators/RecommendationInstantiator';
|
|
11
|
-
import type { SnapControllerServices } from './types';
|
|
12
|
+
import type { SnapControllerServices, InitialUrlConfig } from './types';
|
|
12
13
|
export declare const BRANCH_COOKIE = "ssBranch";
|
|
13
14
|
export declare const DEV_COOKIE = "ssDev";
|
|
14
15
|
export declare const STYLESHEET_CLASSNAME = "ss-snap-bundle-styles";
|
|
@@ -37,6 +38,10 @@ export declare type SnapConfig = {
|
|
|
37
38
|
globals: Partial<ClientGlobals>;
|
|
38
39
|
config?: ClientConfig;
|
|
39
40
|
};
|
|
41
|
+
tracker?: {
|
|
42
|
+
globals: TrackerGlobals;
|
|
43
|
+
config?: TrackerConfig;
|
|
44
|
+
};
|
|
40
45
|
instantiators?: {
|
|
41
46
|
recommendation?: RecommendationInstantiatorConfig;
|
|
42
47
|
};
|
|
@@ -45,7 +50,9 @@ export declare type SnapConfig = {
|
|
|
45
50
|
config: SearchControllerConfig;
|
|
46
51
|
targeters?: ExtendedTarget[];
|
|
47
52
|
services?: SnapControllerServices;
|
|
48
|
-
url?: UrlTranslatorConfig
|
|
53
|
+
url?: UrlTranslatorConfig & {
|
|
54
|
+
initial?: InitialUrlConfig;
|
|
55
|
+
};
|
|
49
56
|
context?: ContextVariables;
|
|
50
57
|
}[];
|
|
51
58
|
autocomplete?: {
|
package/dist/cjs/Snap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Snap.d.ts","sourceRoot":"","sources":["../../src/Snap.tsx"],"names":[],"mappings":"AAMA,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;
|
|
1
|
+
{"version":3,"file":"Snap.d.ts","sourceRoot":"","sources":["../../src/Snap.tsx"],"names":[],"mappings":"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"}
|
package/dist/cjs/Snap.js
CHANGED
|
@@ -85,6 +85,7 @@ var snap_logger_1 = require("@searchspring/snap-logger");
|
|
|
85
85
|
var snap_tracker_1 = require("@searchspring/snap-tracker");
|
|
86
86
|
var snap_toolbox_1 = require("@searchspring/snap-toolbox");
|
|
87
87
|
var snap_controller_1 = require("@searchspring/snap-controller");
|
|
88
|
+
var getInitialUrlState_1 = require("./getInitialUrlState/getInitialUrlState");
|
|
88
89
|
var createSearchController_1 = __importDefault(require("./create/createSearchController"));
|
|
89
90
|
var configureSnapFeatures_1 = require("./configureSnapFeatures");
|
|
90
91
|
// configure MobX
|
|
@@ -97,7 +98,7 @@ var COMPONENT_ERROR = "Uncaught Error - Invalid value passed as the component.\n
|
|
|
97
98
|
var Snap = /** @class */ (function () {
|
|
98
99
|
function Snap(config, services) {
|
|
99
100
|
var _this = this;
|
|
100
|
-
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;
|
|
101
|
+
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, _1, _2;
|
|
101
102
|
this.mode = snap_toolbox_1.AppMode.production;
|
|
102
103
|
this._instantiatorPromises = {};
|
|
103
104
|
this._controllerPromises = {};
|
|
@@ -293,21 +294,24 @@ var Snap = /** @class */ (function () {
|
|
|
293
294
|
// feature check block
|
|
294
295
|
(0, configureSnapFeatures_1.configureSnapFeatures)(this.config);
|
|
295
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);
|
|
296
|
-
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 });
|
|
297
297
|
this.logger = (services === null || services === void 0 ? void 0 : services.logger) || new snap_logger_1.Logger({ prefix: 'Snap Preact ', mode: this.mode });
|
|
298
|
+
// create tracker
|
|
299
|
+
var trackerGlobals = ((_q = this.config.tracker) === null || _q === void 0 ? void 0 : _q.globals) || this.config.client.globals;
|
|
300
|
+
var trackerConfig = (0, deepmerge_1.default)(((_r = this.config.tracker) === null || _r === void 0 ? void 0 : _r.config) || {}, { framework: 'preact', mode: this.mode });
|
|
301
|
+
this.tracker = (services === null || services === void 0 ? void 0 : services.tracker) || new snap_tracker_1.Tracker(trackerGlobals, trackerConfig);
|
|
298
302
|
// check for tracking attribution in URL ?ss_attribution=type:id
|
|
299
|
-
var sessionAttribution = (
|
|
300
|
-
if ((
|
|
303
|
+
var sessionAttribution = (_s = window.sessionStorage) === null || _s === void 0 ? void 0 : _s.getItem(SESSION_ATTRIBUTION);
|
|
304
|
+
if ((_u = (_t = urlParams === null || urlParams === void 0 ? void 0 : urlParams.params) === null || _t === void 0 ? void 0 : _t.query) === null || _u === void 0 ? void 0 : _u.ss_attribution) {
|
|
301
305
|
var attribution = urlParams.params.query.ss_attribution.split(':');
|
|
302
306
|
var type = attribution[0], id = attribution[1];
|
|
303
307
|
if (type && id) {
|
|
304
308
|
this.tracker.updateContext('attribution', { type: type, id: id });
|
|
305
309
|
}
|
|
306
310
|
// save to session storage
|
|
307
|
-
(
|
|
311
|
+
(_v = window.sessionStorage) === null || _v === void 0 ? void 0 : _v.setItem(SESSION_ATTRIBUTION, urlParams.params.query.ss_attribution);
|
|
308
312
|
}
|
|
309
313
|
else if (sessionAttribution) {
|
|
310
|
-
var
|
|
314
|
+
var _3 = sessionAttribution.split(':'), type = _3[0], id = _3[1];
|
|
311
315
|
if (type && id) {
|
|
312
316
|
this.tracker.updateContext('attribution', { type: type, id: id });
|
|
313
317
|
}
|
|
@@ -420,13 +424,13 @@ var Snap = /** @class */ (function () {
|
|
|
420
424
|
if (this.client)
|
|
421
425
|
window.searchspring.client = this.client;
|
|
422
426
|
// autotrack shopper id from the context
|
|
423
|
-
if ((
|
|
427
|
+
if ((_x = (_w = this.context) === null || _w === void 0 ? void 0 : _w.shopper) === null || _x === void 0 ? void 0 : _x.id) {
|
|
424
428
|
this.tracker.track.shopper.login({
|
|
425
429
|
id: this.context.shopper.id,
|
|
426
430
|
});
|
|
427
431
|
}
|
|
428
432
|
// auto populate cart cookie from the context
|
|
429
|
-
if ((
|
|
433
|
+
if ((_z = (_y = this.context) === null || _y === void 0 ? void 0 : _y.shopper) === null || _z === void 0 ? void 0 : _z.cart) {
|
|
430
434
|
var cart = this.context.shopper.cart;
|
|
431
435
|
if (Array.isArray(cart)) {
|
|
432
436
|
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(); });
|
|
@@ -434,7 +438,7 @@ var Snap = /** @class */ (function () {
|
|
|
434
438
|
}
|
|
435
439
|
}
|
|
436
440
|
// create controllers
|
|
437
|
-
Object.keys(((
|
|
441
|
+
Object.keys(((_0 = this.config) === null || _0 === void 0 ? void 0 : _0.controllers) || {}).forEach(function (type) {
|
|
438
442
|
switch (type) {
|
|
439
443
|
case 'search': {
|
|
440
444
|
_this.config.controllers[type].forEach(function (controller, index) {
|
|
@@ -463,7 +467,12 @@ var Snap = /** @class */ (function () {
|
|
|
463
467
|
_this._controllerPromises[cntrlr_1.config.id] = new Promise(function (resolve) { return resolve(cntrlr_1); });
|
|
464
468
|
var searched_1 = false;
|
|
465
469
|
var runSearch_1 = function () {
|
|
470
|
+
var _a;
|
|
466
471
|
if (!searched_1) {
|
|
472
|
+
// handle custom initial UrlManager state
|
|
473
|
+
if ((_a = controller.url) === null || _a === void 0 ? void 0 : _a.initial) {
|
|
474
|
+
(0, getInitialUrlState_1.getInitialUrlState)(controller.url.initial, cntrlr_1.urlManager).go({ history: 'replace' });
|
|
475
|
+
}
|
|
467
476
|
searched_1 = true;
|
|
468
477
|
_this.controllers[controller.config.id].search();
|
|
469
478
|
}
|
|
@@ -837,7 +846,7 @@ var Snap = /** @class */ (function () {
|
|
|
837
846
|
}
|
|
838
847
|
});
|
|
839
848
|
// create instantiators
|
|
840
|
-
if ((
|
|
849
|
+
if ((_2 = (_1 = this.config) === null || _1 === void 0 ? void 0 : _1.instantiators) === null || _2 === void 0 ? void 0 : _2.recommendation) {
|
|
841
850
|
try {
|
|
842
851
|
this._instantiatorPromises.recommendation = Promise.resolve().then(function () { return __importStar(require('./Instantiators/RecommendationInstantiator')); }).then(function (_a) {
|
|
843
852
|
var RecommendationInstantiator = _a.RecommendationInstantiator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSearchController.d.ts","sourceRoot":"","sources":["../../../src/create/createSearchController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"createSearchController.d.ts","sourceRoot":"","sources":["../../../src/create/createSearchController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AASjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;iCAE3D,0BAA0B,oDAAsC,gBAAgB;AAAxG,wBAwBE"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { UrlManager } from '@searchspring/snap-url-manager';
|
|
2
|
+
import { InitialUrlConfig } from '../types';
|
|
3
|
+
export declare const getInitialUrlState: (intitialStateConfig: InitialUrlConfig, urlManager: UrlManager) => UrlManager;
|
|
4
|
+
//# sourceMappingURL=getInitialUrlState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getInitialUrlState.d.ts","sourceRoot":"","sources":["../../../src/getInitialUrlState/getInitialUrlState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAK5C,eAAO,MAAM,kBAAkB,wBAAyB,gBAAgB,cAAc,UAAU,KAAG,UA0BlG,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getInitialUrlState = void 0;
|
|
4
|
+
var VALID_ACTIONS = ['merge', 'set'];
|
|
5
|
+
var DEFAULT_IGNORE_PARAMETERS = ['query', 'tag', 'oq', 'fallbackQuery'];
|
|
6
|
+
var getInitialUrlState = function (intitialStateConfig, urlManager) {
|
|
7
|
+
var _a, _b, _c;
|
|
8
|
+
var parameters = intitialStateConfig.parameters;
|
|
9
|
+
var useDefaultIgnoreParameters = (_b = (_a = intitialStateConfig.settings) === null || _a === void 0 ? void 0 : _a.useDefaultIgnoreParameters) !== null && _b !== void 0 ? _b : true;
|
|
10
|
+
// global ignore parameters combine configured ignore with default when set
|
|
11
|
+
var globalIgnoreParameters = ((_c = intitialStateConfig === null || intitialStateConfig === void 0 ? void 0 : intitialStateConfig.settings) === null || _c === void 0 ? void 0 : _c.ignoreParameters) || [];
|
|
12
|
+
globalIgnoreParameters = useDefaultIgnoreParameters ? globalIgnoreParameters.concat(DEFAULT_IGNORE_PARAMETERS) : globalIgnoreParameters;
|
|
13
|
+
var initialUrlState = urlManager;
|
|
14
|
+
var newUrlState = urlManager.merge({});
|
|
15
|
+
Object.keys(parameters).forEach(function (param) {
|
|
16
|
+
var _a;
|
|
17
|
+
var action = parameters[param].action || 'merge';
|
|
18
|
+
var state = parameters[param].state;
|
|
19
|
+
var ignoreParameters = parameters[param].ignoreParameters || [];
|
|
20
|
+
var useGlobalIgnoreParameters = (_a = parameters[param].useGlobalIgnoreParameters) !== null && _a !== void 0 ? _a : true;
|
|
21
|
+
var specificIgnoreParameters = useGlobalIgnoreParameters ? globalIgnoreParameters.concat(ignoreParameters) : ignoreParameters;
|
|
22
|
+
var applyState = Boolean(Object.keys(initialUrlState.state).filter(function (key) { return !specificIgnoreParameters.includes(key); }).length == 0);
|
|
23
|
+
if (state && applyState && VALID_ACTIONS.includes(action)) {
|
|
24
|
+
newUrlState = newUrlState[action](param, state);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
return newUrlState;
|
|
28
|
+
};
|
|
29
|
+
exports.getInitialUrlState = getInitialUrlState;
|
package/dist/cjs/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Client, ClientConfig, ClientGlobals } from '@searchspring/snap-client';
|
|
2
2
|
import type { ControllerConfig, SearchControllerConfig, AutocompleteControllerConfig, FinderControllerConfig, RecommendationControllerConfig, ContextVariables } from '@searchspring/snap-controller';
|
|
3
3
|
import type { SearchStore, AutocompleteStore, FinderStore, RecommendationStore } from '@searchspring/snap-store-mobx';
|
|
4
|
-
import type { UrlManager, UrlTranslatorConfig } from '@searchspring/snap-url-manager';
|
|
4
|
+
import type { UrlManager, UrlTranslatorConfig, UrlState } from '@searchspring/snap-url-manager';
|
|
5
5
|
import type { EventManager } from '@searchspring/snap-event-manager';
|
|
6
6
|
import type { Profiler } from '@searchspring/snap-profiler';
|
|
7
7
|
import type { Logger } from '@searchspring/snap-logger';
|
|
@@ -16,6 +16,21 @@ export declare type SnapControllerServices = {
|
|
|
16
16
|
logger?: Logger;
|
|
17
17
|
tracker?: Tracker;
|
|
18
18
|
};
|
|
19
|
+
declare type UrlParameterConfig<Type> = {
|
|
20
|
+
[Property in keyof Type]: {
|
|
21
|
+
action?: 'merge' | 'set';
|
|
22
|
+
ignoreParameters?: string[];
|
|
23
|
+
useGlobalIgnoreParameters?: boolean;
|
|
24
|
+
state: Type[Property];
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
export declare type InitialUrlConfig = {
|
|
28
|
+
settings?: {
|
|
29
|
+
ignoreParameters?: string[];
|
|
30
|
+
useDefaultIgnoreParameters?: boolean;
|
|
31
|
+
};
|
|
32
|
+
parameters: UrlParameterConfig<UrlState>;
|
|
33
|
+
};
|
|
19
34
|
export declare type SnapControllerConfig = {
|
|
20
35
|
mode?: keyof typeof AppMode | AppMode;
|
|
21
36
|
url?: UrlTranslatorConfig;
|
|
@@ -28,7 +43,9 @@ export declare type SnapControllerConfig = {
|
|
|
28
43
|
};
|
|
29
44
|
export declare type SnapSearchControllerConfig = {
|
|
30
45
|
mode?: keyof typeof AppMode | AppMode;
|
|
31
|
-
url?: UrlTranslatorConfig
|
|
46
|
+
url?: UrlTranslatorConfig & {
|
|
47
|
+
initial?: InitialUrlConfig;
|
|
48
|
+
};
|
|
32
49
|
client?: {
|
|
33
50
|
globals: ClientGlobals;
|
|
34
51
|
config?: ClientConfig;
|
|
@@ -71,4 +88,5 @@ declare global {
|
|
|
71
88
|
searchspring?: any;
|
|
72
89
|
}
|
|
73
90
|
}
|
|
91
|
+
export {};
|
|
74
92
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/cjs/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,KAAK,EACX,gBAAgB,EAChB,sBAAsB,EACtB,4BAA4B,EAC5B,sBAAsB,EACtB,8BAA8B,EAC9B,gBAAgB,EAChB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACtH,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/Snap.d.ts
CHANGED
|
@@ -5,10 +5,11 @@ import { AppMode } from '@searchspring/snap-toolbox';
|
|
|
5
5
|
import { ControllerTypes } from '@searchspring/snap-controller';
|
|
6
6
|
import type { ClientConfig, ClientGlobals } from '@searchspring/snap-client';
|
|
7
7
|
import type { Controllers, AbstractController, SearchControllerConfig, AutocompleteControllerConfig, FinderControllerConfig, RecommendationControllerConfig, ControllerConfigs, ContextVariables } from '@searchspring/snap-controller';
|
|
8
|
+
import type { TrackerConfig, TrackerGlobals } from '@searchspring/snap-tracker';
|
|
8
9
|
import type { Target, OnTarget } from '@searchspring/snap-toolbox';
|
|
9
10
|
import type { UrlTranslatorConfig } from '@searchspring/snap-url-manager';
|
|
10
11
|
import { RecommendationInstantiator, RecommendationInstantiatorConfig } from './Instantiators/RecommendationInstantiator';
|
|
11
|
-
import type { SnapControllerServices } from './types';
|
|
12
|
+
import type { SnapControllerServices, InitialUrlConfig } from './types';
|
|
12
13
|
export declare const BRANCH_COOKIE = "ssBranch";
|
|
13
14
|
export declare const DEV_COOKIE = "ssDev";
|
|
14
15
|
export declare const STYLESHEET_CLASSNAME = "ss-snap-bundle-styles";
|
|
@@ -37,6 +38,10 @@ export declare type SnapConfig = {
|
|
|
37
38
|
globals: Partial<ClientGlobals>;
|
|
38
39
|
config?: ClientConfig;
|
|
39
40
|
};
|
|
41
|
+
tracker?: {
|
|
42
|
+
globals: TrackerGlobals;
|
|
43
|
+
config?: TrackerConfig;
|
|
44
|
+
};
|
|
40
45
|
instantiators?: {
|
|
41
46
|
recommendation?: RecommendationInstantiatorConfig;
|
|
42
47
|
};
|
|
@@ -45,7 +50,9 @@ export declare type SnapConfig = {
|
|
|
45
50
|
config: SearchControllerConfig;
|
|
46
51
|
targeters?: ExtendedTarget[];
|
|
47
52
|
services?: SnapControllerServices;
|
|
48
|
-
url?: UrlTranslatorConfig
|
|
53
|
+
url?: UrlTranslatorConfig & {
|
|
54
|
+
initial?: InitialUrlConfig;
|
|
55
|
+
};
|
|
49
56
|
context?: ContextVariables;
|
|
50
57
|
}[];
|
|
51
58
|
autocomplete?: {
|
package/dist/esm/Snap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Snap.d.ts","sourceRoot":"","sources":["../../src/Snap.tsx"],"names":[],"mappings":"AAMA,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;
|
|
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,6 +9,7 @@ import { Logger } from '@searchspring/snap-logger';
|
|
|
9
9
|
import { Tracker } from '@searchspring/snap-tracker';
|
|
10
10
|
import { AppMode, version, getContext, DomTargeter, url, cookies, featureFlags } from '@searchspring/snap-toolbox';
|
|
11
11
|
import { ControllerTypes } from '@searchspring/snap-controller';
|
|
12
|
+
import { getInitialUrlState } from './getInitialUrlState/getInitialUrlState';
|
|
12
13
|
import { default as createSearchController } from './create/createSearchController';
|
|
13
14
|
import { configureSnapFeatures } from './configureSnapFeatures';
|
|
14
15
|
// configure MobX
|
|
@@ -221,8 +222,11 @@ export class Snap {
|
|
|
221
222
|
// feature check block
|
|
222
223
|
configureSnapFeatures(this.config);
|
|
223
224
|
this.client = services?.client || new Client(this.config.client.globals, this.config.client.config);
|
|
224
|
-
this.tracker = services?.tracker || new Tracker(this.config.client.globals, { framework: 'preact', mode: this.mode });
|
|
225
225
|
this.logger = services?.logger || new Logger({ prefix: 'Snap Preact ', mode: this.mode });
|
|
226
|
+
// create tracker
|
|
227
|
+
const trackerGlobals = this.config.tracker?.globals || this.config.client.globals;
|
|
228
|
+
const trackerConfig = deepmerge(this.config.tracker?.config || {}, { framework: 'preact', mode: this.mode });
|
|
229
|
+
this.tracker = services?.tracker || new Tracker(trackerGlobals, trackerConfig);
|
|
226
230
|
// check for tracking attribution in URL ?ss_attribution=type:id
|
|
227
231
|
const sessionAttribution = window.sessionStorage?.getItem(SESSION_ATTRIBUTION);
|
|
228
232
|
if (urlParams?.params?.query?.ss_attribution) {
|
|
@@ -374,6 +378,10 @@ export class Snap {
|
|
|
374
378
|
let searched = false;
|
|
375
379
|
const runSearch = () => {
|
|
376
380
|
if (!searched) {
|
|
381
|
+
// handle custom initial UrlManager state
|
|
382
|
+
if (controller.url?.initial) {
|
|
383
|
+
getInitialUrlState(controller.url.initial, cntrlr.urlManager).go({ history: 'replace' });
|
|
384
|
+
}
|
|
377
385
|
searched = true;
|
|
378
386
|
this.controllers[controller.config.id].search();
|
|
379
387
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSearchController.d.ts","sourceRoot":"","sources":["../../../src/create/createSearchController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"createSearchController.d.ts","sourceRoot":"","sources":["../../../src/create/createSearchController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AASjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;iCAE3D,0BAA0B,oDAAsC,gBAAgB;AAAxG,wBAwBE"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { UrlManager } from '@searchspring/snap-url-manager';
|
|
2
|
+
import { InitialUrlConfig } from '../types';
|
|
3
|
+
export declare const getInitialUrlState: (intitialStateConfig: InitialUrlConfig, urlManager: UrlManager) => UrlManager;
|
|
4
|
+
//# sourceMappingURL=getInitialUrlState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getInitialUrlState.d.ts","sourceRoot":"","sources":["../../../src/getInitialUrlState/getInitialUrlState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAK5C,eAAO,MAAM,kBAAkB,wBAAyB,gBAAgB,cAAc,UAAU,KAAG,UA0BlG,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
const VALID_ACTIONS = ['merge', 'set'];
|
|
2
|
+
const DEFAULT_IGNORE_PARAMETERS = ['query', 'tag', 'oq', 'fallbackQuery'];
|
|
3
|
+
export const getInitialUrlState = (intitialStateConfig, urlManager) => {
|
|
4
|
+
const { parameters } = intitialStateConfig;
|
|
5
|
+
const useDefaultIgnoreParameters = intitialStateConfig.settings?.useDefaultIgnoreParameters ?? true;
|
|
6
|
+
// global ignore parameters combine configured ignore with default when set
|
|
7
|
+
let globalIgnoreParameters = intitialStateConfig?.settings?.ignoreParameters || [];
|
|
8
|
+
globalIgnoreParameters = useDefaultIgnoreParameters ? globalIgnoreParameters.concat(DEFAULT_IGNORE_PARAMETERS) : globalIgnoreParameters;
|
|
9
|
+
const initialUrlState = urlManager;
|
|
10
|
+
let newUrlState = urlManager.merge({});
|
|
11
|
+
Object.keys(parameters).forEach((param) => {
|
|
12
|
+
const action = parameters[param].action || 'merge';
|
|
13
|
+
const { state } = parameters[param];
|
|
14
|
+
const ignoreParameters = parameters[param].ignoreParameters || [];
|
|
15
|
+
const useGlobalIgnoreParameters = parameters[param].useGlobalIgnoreParameters ?? true;
|
|
16
|
+
const specificIgnoreParameters = useGlobalIgnoreParameters ? globalIgnoreParameters.concat(ignoreParameters) : ignoreParameters;
|
|
17
|
+
const applyState = Boolean(Object.keys(initialUrlState.state).filter((key) => !specificIgnoreParameters.includes(key)).length == 0);
|
|
18
|
+
if (state && applyState && VALID_ACTIONS.includes(action)) {
|
|
19
|
+
newUrlState = newUrlState[action](param, state);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
return newUrlState;
|
|
23
|
+
};
|
package/dist/esm/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Client, ClientConfig, ClientGlobals } from '@searchspring/snap-client';
|
|
2
2
|
import type { ControllerConfig, SearchControllerConfig, AutocompleteControllerConfig, FinderControllerConfig, RecommendationControllerConfig, ContextVariables } from '@searchspring/snap-controller';
|
|
3
3
|
import type { SearchStore, AutocompleteStore, FinderStore, RecommendationStore } from '@searchspring/snap-store-mobx';
|
|
4
|
-
import type { UrlManager, UrlTranslatorConfig } from '@searchspring/snap-url-manager';
|
|
4
|
+
import type { UrlManager, UrlTranslatorConfig, UrlState } from '@searchspring/snap-url-manager';
|
|
5
5
|
import type { EventManager } from '@searchspring/snap-event-manager';
|
|
6
6
|
import type { Profiler } from '@searchspring/snap-profiler';
|
|
7
7
|
import type { Logger } from '@searchspring/snap-logger';
|
|
@@ -16,6 +16,21 @@ export declare type SnapControllerServices = {
|
|
|
16
16
|
logger?: Logger;
|
|
17
17
|
tracker?: Tracker;
|
|
18
18
|
};
|
|
19
|
+
declare type UrlParameterConfig<Type> = {
|
|
20
|
+
[Property in keyof Type]: {
|
|
21
|
+
action?: 'merge' | 'set';
|
|
22
|
+
ignoreParameters?: string[];
|
|
23
|
+
useGlobalIgnoreParameters?: boolean;
|
|
24
|
+
state: Type[Property];
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
export declare type InitialUrlConfig = {
|
|
28
|
+
settings?: {
|
|
29
|
+
ignoreParameters?: string[];
|
|
30
|
+
useDefaultIgnoreParameters?: boolean;
|
|
31
|
+
};
|
|
32
|
+
parameters: UrlParameterConfig<UrlState>;
|
|
33
|
+
};
|
|
19
34
|
export declare type SnapControllerConfig = {
|
|
20
35
|
mode?: keyof typeof AppMode | AppMode;
|
|
21
36
|
url?: UrlTranslatorConfig;
|
|
@@ -28,7 +43,9 @@ export declare type SnapControllerConfig = {
|
|
|
28
43
|
};
|
|
29
44
|
export declare type SnapSearchControllerConfig = {
|
|
30
45
|
mode?: keyof typeof AppMode | AppMode;
|
|
31
|
-
url?: UrlTranslatorConfig
|
|
46
|
+
url?: UrlTranslatorConfig & {
|
|
47
|
+
initial?: InitialUrlConfig;
|
|
48
|
+
};
|
|
32
49
|
client?: {
|
|
33
50
|
globals: ClientGlobals;
|
|
34
51
|
config?: ClientConfig;
|
|
@@ -71,4 +88,5 @@ declare global {
|
|
|
71
88
|
searchspring?: any;
|
|
72
89
|
}
|
|
73
90
|
}
|
|
91
|
+
export {};
|
|
74
92
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/esm/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,KAAK,EACX,gBAAgB,EAChB,sBAAsB,EACtB,4BAA4B,EAC5B,sBAAsB,EACtB,8BAA8B,EAC9B,gBAAgB,EAChB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACtH,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@searchspring/snap-preact",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.45.0",
|
|
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.45.0",
|
|
24
|
+
"@searchspring/snap-controller": "^0.45.0",
|
|
25
|
+
"@searchspring/snap-event-manager": "^0.45.0",
|
|
26
|
+
"@searchspring/snap-logger": "^0.45.0",
|
|
27
|
+
"@searchspring/snap-preact-components": "^0.45.0",
|
|
28
|
+
"@searchspring/snap-profiler": "^0.45.0",
|
|
29
|
+
"@searchspring/snap-store-mobx": "^0.45.0",
|
|
30
|
+
"@searchspring/snap-toolbox": "^0.45.0",
|
|
31
|
+
"@searchspring/snap-tracker": "^0.45.0",
|
|
32
|
+
"@searchspring/snap-url-manager": "^0.45.0",
|
|
33
33
|
"deepmerge": "4.3.1",
|
|
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": "e17a2adcdce980dfbd0ed7ad6e19228b1f5a2871"
|
|
45
45
|
}
|