@searchspring/snap-preact 0.26.1 → 0.27.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 +20 -21
- package/dist/cjs/Instantiators/RecommendationInstantiator.d.ts.map +1 -1
- package/dist/cjs/Instantiators/RecommendationInstantiator.js +47 -41
- package/dist/cjs/Snap.d.ts +17 -15
- package/dist/cjs/Snap.d.ts.map +1 -1
- package/dist/cjs/Snap.js +301 -232
- package/dist/cjs/components/BranchOverride.d.ts +1 -6
- package/dist/cjs/components/BranchOverride.d.ts.map +1 -1
- package/dist/cjs/components/BranchOverride.js +2 -234
- package/dist/cjs/create/index.d.ts +1 -1
- package/dist/cjs/create/index.d.ts.map +1 -1
- package/dist/cjs/create/index.js +2 -2
- package/dist/cjs/getBundleDetails/getBundleDetails.d.ts +7 -0
- package/dist/cjs/getBundleDetails/getBundleDetails.d.ts.map +1 -0
- package/dist/cjs/getBundleDetails/getBundleDetails.js +64 -0
- package/dist/cjs/types.d.ts +1 -0
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/esm/Instantiators/RecommendationInstantiator.d.ts +20 -21
- package/dist/esm/Instantiators/RecommendationInstantiator.d.ts.map +1 -1
- package/dist/esm/Instantiators/RecommendationInstantiator.js +41 -38
- package/dist/esm/Snap.d.ts +17 -15
- package/dist/esm/Snap.d.ts.map +1 -1
- package/dist/esm/Snap.js +144 -107
- package/dist/esm/components/BranchOverride.d.ts +1 -6
- package/dist/esm/components/BranchOverride.d.ts.map +1 -1
- package/dist/esm/components/BranchOverride.js +1 -172
- package/dist/esm/create/index.d.ts +1 -1
- package/dist/esm/create/index.d.ts.map +1 -1
- package/dist/esm/create/index.js +1 -1
- package/dist/esm/getBundleDetails/getBundleDetails.d.ts +7 -0
- package/dist/esm/getBundleDetails/getBundleDetails.d.ts.map +1 -0
- package/dist/esm/getBundleDetails/getBundleDetails.js +22 -0
- package/dist/esm/types.d.ts +1 -0
- package/dist/esm/types.d.ts.map +1 -1
- package/package.json +13 -12
package/dist/esm/Snap.d.ts
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { Client } from '@searchspring/snap-client';
|
|
2
2
|
import { Logger } from '@searchspring/snap-logger';
|
|
3
3
|
import { Tracker } from '@searchspring/snap-tracker';
|
|
4
|
+
import { ControllerTypes } from '@searchspring/snap-controller';
|
|
4
5
|
import type { ClientConfig, ClientGlobals } from '@searchspring/snap-client';
|
|
5
6
|
import type { AbstractController, SearchController, AutocompleteController, FinderController, RecommendationController, SearchControllerConfig, AutocompleteControllerConfig, FinderControllerConfig, RecommendationControllerConfig, ControllerConfigs, ContextVariables } from '@searchspring/snap-controller';
|
|
6
7
|
import type { Target, OnTarget } from '@searchspring/snap-toolbox';
|
|
7
8
|
import type { UrlTranslatorConfig } from '@searchspring/snap-url-manager';
|
|
8
9
|
import { RecommendationInstantiator, RecommendationInstantiatorConfig } from './Instantiators/RecommendationInstantiator';
|
|
9
10
|
import type { SnapControllerServices, RootComponent } from './types';
|
|
11
|
+
export declare const BRANCH_COOKIE = "ssBranch";
|
|
12
|
+
export declare const SS_DEV_COOKIE = "ssDev";
|
|
10
13
|
declare type ExtendedTarget = Target & {
|
|
11
14
|
name?: string;
|
|
12
15
|
controller?: AbstractController;
|
|
@@ -19,7 +22,7 @@ declare type ExtendedTarget = Target & {
|
|
|
19
22
|
export declare type SnapConfig = {
|
|
20
23
|
context?: ContextVariables;
|
|
21
24
|
url?: UrlTranslatorConfig;
|
|
22
|
-
client
|
|
25
|
+
client?: {
|
|
23
26
|
globals: ClientGlobals;
|
|
24
27
|
config?: ClientConfig;
|
|
25
28
|
};
|
|
@@ -36,7 +39,7 @@ export declare type SnapConfig = {
|
|
|
36
39
|
}[];
|
|
37
40
|
autocomplete?: {
|
|
38
41
|
config: AutocompleteControllerConfig;
|
|
39
|
-
targeters
|
|
42
|
+
targeters?: ExtendedTarget[];
|
|
40
43
|
services?: SnapControllerServices;
|
|
41
44
|
url?: UrlTranslatorConfig;
|
|
42
45
|
context?: ContextVariables;
|
|
@@ -57,13 +60,12 @@ export declare type SnapConfig = {
|
|
|
57
60
|
}[];
|
|
58
61
|
};
|
|
59
62
|
};
|
|
60
|
-
declare type
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
63
|
+
declare type SnapServices = {
|
|
64
|
+
client?: Client;
|
|
65
|
+
tracker?: Tracker;
|
|
66
|
+
logger?: Logger;
|
|
67
|
+
};
|
|
68
|
+
declare type Controllers = SearchController | AutocompleteController | FinderController | RecommendationController;
|
|
67
69
|
export declare class Snap {
|
|
68
70
|
config: SnapConfig;
|
|
69
71
|
logger: Logger;
|
|
@@ -71,19 +73,19 @@ export declare class Snap {
|
|
|
71
73
|
tracker: Tracker;
|
|
72
74
|
context: ContextVariables;
|
|
73
75
|
_controllerPromises: {
|
|
74
|
-
[controllerConfigId: string]: Promise<
|
|
76
|
+
[controllerConfigId: string]: Promise<Controllers>;
|
|
75
77
|
};
|
|
76
78
|
controllers: {
|
|
77
|
-
[controllerConfigId: string]:
|
|
79
|
+
[controllerConfigId: string]: Controllers;
|
|
78
80
|
};
|
|
79
81
|
_instantiatorPromises: {
|
|
80
82
|
[instantiatorId: string]: Promise<RecommendationInstantiator>;
|
|
81
83
|
};
|
|
82
84
|
getInstantiator: (id: string) => Promise<RecommendationInstantiator>;
|
|
83
|
-
getController: (id: string) => Promise<
|
|
84
|
-
getControllers: (...controllerIds: string[]) => Promise<
|
|
85
|
-
createController: (type:
|
|
86
|
-
constructor(config: SnapConfig);
|
|
85
|
+
getController: (id: string) => Promise<Controllers>;
|
|
86
|
+
getControllers: (...controllerIds: string[]) => Promise<Controllers[]>;
|
|
87
|
+
createController: (type: keyof typeof ControllerTypes, config: ControllerConfigs, services?: SnapControllerServices, urlConfig?: UrlTranslatorConfig, context?: ContextVariables, callback?: (value?: Controllers | PromiseLike<Controllers>) => void | Promise<void>) => Promise<Controllers>;
|
|
88
|
+
constructor(config: SnapConfig, services?: SnapServices);
|
|
87
89
|
}
|
|
88
90
|
export {};
|
|
89
91
|
//# sourceMappingURL=Snap.d.ts.map
|
package/dist/esm/Snap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Snap.d.ts","sourceRoot":"","sources":["../../src/Snap.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,MAAM,EAAW,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,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
|
@@ -7,18 +7,46 @@ import { Logger, LogMode } from '@searchspring/snap-logger';
|
|
|
7
7
|
import { Tracker } from '@searchspring/snap-tracker';
|
|
8
8
|
import { version, DomTargeter, url, cookies, featureFlags } from '@searchspring/snap-toolbox';
|
|
9
9
|
import { getContext } from '@searchspring/snap-toolbox';
|
|
10
|
+
import { ControllerTypes } from '@searchspring/snap-controller';
|
|
10
11
|
import { default as createSearchController } from './create/createSearchController';
|
|
11
|
-
const BRANCH_COOKIE = 'ssBranch';
|
|
12
|
-
const SS_DEV_COOKIE = 'ssDev';
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
12
|
+
export const BRANCH_COOKIE = 'ssBranch';
|
|
13
|
+
export const SS_DEV_COOKIE = 'ssDev';
|
|
14
|
+
const COMPONENT_ERROR = `Uncaught Error - Invalid value passed as the component.
|
|
15
|
+
This usually happens when you pass a JSX Element, and not a function that returns the component, in the snap config.
|
|
16
|
+
|
|
17
|
+
instead of -
|
|
18
|
+
|
|
19
|
+
targeters: [
|
|
20
|
+
{
|
|
21
|
+
selector: '#searchspring-content',
|
|
22
|
+
hideTarget: true,
|
|
23
|
+
component: <Content/>,
|
|
24
|
+
},
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
or -
|
|
28
|
+
|
|
29
|
+
targeters: [
|
|
30
|
+
{
|
|
31
|
+
selector: '#searchspring-content',
|
|
32
|
+
hideTarget: true,
|
|
33
|
+
component: Content,
|
|
34
|
+
},
|
|
35
|
+
]
|
|
36
|
+
|
|
37
|
+
please try -
|
|
38
|
+
|
|
39
|
+
targeters: [
|
|
40
|
+
{
|
|
41
|
+
selector: '#searchspring-content',
|
|
42
|
+
hideTarget: true,
|
|
43
|
+
component: () => Content
|
|
44
|
+
},
|
|
45
|
+
]
|
|
46
|
+
|
|
47
|
+
The error above happened in the following targeter in the Snap Config`;
|
|
20
48
|
export class Snap {
|
|
21
|
-
constructor(config) {
|
|
49
|
+
constructor(config, services) {
|
|
22
50
|
this.getInstantiator = (id) => {
|
|
23
51
|
return this._instantiatorPromises[id] || Promise.reject(`getInstantiator could not find instantiator with id: ${id}`);
|
|
24
52
|
};
|
|
@@ -30,44 +58,45 @@ export class Snap {
|
|
|
30
58
|
controllerIds.forEach((id) => getControllerPromises.push(this.getController(id)));
|
|
31
59
|
return Promise.all(getControllerPromises);
|
|
32
60
|
};
|
|
33
|
-
this.createController = (type, config, services, urlConfig,
|
|
61
|
+
this.createController = async (type, config, services, urlConfig, context, callback) => {
|
|
34
62
|
let importPromise;
|
|
35
63
|
switch (type) {
|
|
36
|
-
case
|
|
64
|
+
case ControllerTypes.search:
|
|
37
65
|
importPromise = import('./create/createSearchController');
|
|
38
66
|
break;
|
|
39
|
-
case
|
|
67
|
+
case ControllerTypes.autocomplete:
|
|
40
68
|
importPromise = import('./create/createAutocompleteController');
|
|
41
69
|
break;
|
|
42
|
-
case
|
|
70
|
+
case ControllerTypes.finder:
|
|
43
71
|
importPromise = import('./create/createFinderController');
|
|
44
72
|
break;
|
|
45
|
-
case
|
|
73
|
+
case ControllerTypes.recommendation:
|
|
46
74
|
importPromise = import('./create/createRecommendationController');
|
|
47
75
|
break;
|
|
48
76
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}
|
|
77
|
+
const creationFunc = (await importPromise).default;
|
|
78
|
+
if (!this.controllers[config.id]) {
|
|
79
|
+
this.controllers[config.id] = creationFunc({
|
|
80
|
+
url: deepmerge(this.config.url || {}, urlConfig || {}),
|
|
81
|
+
controller: config,
|
|
82
|
+
context: deepmerge(this.context || {}, context || {}),
|
|
83
|
+
}, {
|
|
84
|
+
client: services?.client || this.client,
|
|
85
|
+
store: services?.store,
|
|
86
|
+
urlManager: services?.urlManager,
|
|
87
|
+
eventManager: services?.eventManager,
|
|
88
|
+
profiler: services?.profiler,
|
|
89
|
+
logger: services?.logger,
|
|
90
|
+
tracker: services?.tracker || this.tracker,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
if (callback) {
|
|
94
|
+
await callback(this.controllers[config.id]);
|
|
95
|
+
}
|
|
96
|
+
return this.controllers[config.id];
|
|
68
97
|
};
|
|
69
98
|
this.config = config;
|
|
70
|
-
this.logger = new Logger('Snap Preact ');
|
|
99
|
+
this.logger = services?.logger || new Logger('Snap Preact ');
|
|
71
100
|
let globalContext = {};
|
|
72
101
|
try {
|
|
73
102
|
// get global context
|
|
@@ -80,12 +109,14 @@ export class Snap {
|
|
|
80
109
|
this.config = deepmerge(this.config || {}, globalContext.config || {}, {
|
|
81
110
|
isMergeableObject: isPlainObject,
|
|
82
111
|
});
|
|
83
|
-
this.context = deepmerge(
|
|
84
|
-
|
|
112
|
+
this.context = deepmerge(this.config.context || {}, globalContext || {}, {
|
|
113
|
+
isMergeableObject: isPlainObject,
|
|
114
|
+
});
|
|
115
|
+
if ((!services?.client || !services?.tracker) && !this.config?.client?.globals?.siteId) {
|
|
85
116
|
throw new Error(`Snap: config provided must contain a valid config.client.globals.siteId value`);
|
|
86
117
|
}
|
|
87
|
-
this.client = new Client(this.config.client.globals, this.config.client.config);
|
|
88
|
-
this.tracker = new Tracker(this.config.client.globals);
|
|
118
|
+
this.client = services?.client || new Client(this.config.client.globals, this.config.client.config);
|
|
119
|
+
this.tracker = services?.tracker || new Tracker(this.config.client.globals);
|
|
89
120
|
this._controllerPromises = {};
|
|
90
121
|
this._instantiatorPromises = {};
|
|
91
122
|
this.controllers = {};
|
|
@@ -124,7 +155,7 @@ export class Snap {
|
|
|
124
155
|
const branchScript = document.createElement('script');
|
|
125
156
|
const src = `${path}${branchParam}/bundle.js`;
|
|
126
157
|
branchScript.src = src;
|
|
127
|
-
branchScript.setAttribute(BRANCH_COOKIE,
|
|
158
|
+
branchScript.setAttribute(BRANCH_COOKIE, branchParam);
|
|
128
159
|
document.head.appendChild(branchScript);
|
|
129
160
|
new DomTargeter([
|
|
130
161
|
{
|
|
@@ -133,14 +164,27 @@ export class Snap {
|
|
|
133
164
|
action: 'append',
|
|
134
165
|
element: () => {
|
|
135
166
|
const branchContainer = document.createElement('div');
|
|
136
|
-
branchContainer.
|
|
167
|
+
branchContainer.id = 'searchspring-branch-override';
|
|
137
168
|
return branchContainer;
|
|
138
169
|
},
|
|
139
170
|
},
|
|
140
171
|
},
|
|
141
172
|
], async (target, elem) => {
|
|
173
|
+
let bundleDetails, error;
|
|
174
|
+
try {
|
|
175
|
+
const getBundleDetails = (await import('./getBundleDetails/getBundleDetails')).getBundleDetails;
|
|
176
|
+
bundleDetails = await getBundleDetails(src);
|
|
177
|
+
}
|
|
178
|
+
catch (err) {
|
|
179
|
+
error = err;
|
|
180
|
+
}
|
|
142
181
|
const BranchOverride = (await import('./components/BranchOverride')).BranchOverride;
|
|
143
|
-
render(_jsx(BranchOverride, {
|
|
182
|
+
render(_jsx(BranchOverride, { name: branchParam, details: bundleDetails, error: error, onRemoveClick: () => {
|
|
183
|
+
cookies.unset(BRANCH_COOKIE);
|
|
184
|
+
const urlState = url(window.location.href);
|
|
185
|
+
delete urlState.params.query['branch'];
|
|
186
|
+
window.location.href = urlState.url();
|
|
187
|
+
} }), elem);
|
|
144
188
|
});
|
|
145
189
|
// prevent further instantiation of config
|
|
146
190
|
return;
|
|
@@ -196,7 +240,7 @@ export class Snap {
|
|
|
196
240
|
const targetFunction = async (target, elem, originalElem) => {
|
|
197
241
|
runSearch();
|
|
198
242
|
const onTarget = target.onTarget;
|
|
199
|
-
onTarget && onTarget(target, elem, originalElem);
|
|
243
|
+
onTarget && (await onTarget(target, elem, originalElem));
|
|
200
244
|
try {
|
|
201
245
|
const Component = await target.component();
|
|
202
246
|
setTimeout(() => {
|
|
@@ -204,44 +248,10 @@ export class Snap {
|
|
|
204
248
|
});
|
|
205
249
|
}
|
|
206
250
|
catch (err) {
|
|
207
|
-
this.logger.error(
|
|
208
|
-
This usually happens when you pass a JSX Element, and not a function that returns the component, in the snap config.
|
|
209
|
-
|
|
210
|
-
instead of -
|
|
211
|
-
|
|
212
|
-
targeters: [
|
|
213
|
-
{
|
|
214
|
-
selector: '#searchspring-content',
|
|
215
|
-
hideTarget: true,
|
|
216
|
-
component: <Content/>,
|
|
217
|
-
},
|
|
218
|
-
]
|
|
219
|
-
|
|
220
|
-
or -
|
|
221
|
-
|
|
222
|
-
targeters: [
|
|
223
|
-
{
|
|
224
|
-
selector: '#searchspring-content',
|
|
225
|
-
hideTarget: true,
|
|
226
|
-
component: Content,
|
|
227
|
-
},
|
|
228
|
-
]
|
|
229
|
-
|
|
230
|
-
please try -
|
|
231
|
-
|
|
232
|
-
targeters: [
|
|
233
|
-
{
|
|
234
|
-
selector: '#searchspring-content',
|
|
235
|
-
hideTarget: true,
|
|
236
|
-
component: () => Content
|
|
237
|
-
},
|
|
238
|
-
]
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
The error above happened in the following targeter in the Snap Config`, target);
|
|
251
|
+
this.logger.error(COMPONENT_ERROR, target);
|
|
242
252
|
}
|
|
243
253
|
};
|
|
244
|
-
controller?.targeters?.forEach(
|
|
254
|
+
controller?.targeters?.forEach((target, target_index) => {
|
|
245
255
|
if (!target.selector) {
|
|
246
256
|
throw new Error(`Targets at index ${target_index} missing selector value (string).`);
|
|
247
257
|
}
|
|
@@ -283,16 +293,23 @@ The error above happened in the following targeter in the Snap Config`, target);
|
|
|
283
293
|
};
|
|
284
294
|
const targetFunction = async (target, elem, originalElem) => {
|
|
285
295
|
const onTarget = target.onTarget;
|
|
286
|
-
onTarget && onTarget(target, elem, originalElem);
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
296
|
+
onTarget && (await onTarget(target, elem, originalElem));
|
|
297
|
+
try {
|
|
298
|
+
const Component = (await target.component());
|
|
299
|
+
setTimeout(() => {
|
|
300
|
+
render(_jsx(Component, { controller: this.controllers[controller.config.id], input: originalElem, ...target.props }), elem);
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
catch (err) {
|
|
304
|
+
this.logger.error(COMPONENT_ERROR, target);
|
|
305
|
+
}
|
|
291
306
|
};
|
|
292
307
|
if (!controller?.targeters || controller?.targeters.length === 0) {
|
|
293
|
-
this.createController(
|
|
308
|
+
this.createController(ControllerTypes.autocomplete, controller.config, controller.services, controller.url, controller.context, (cntrlr) => {
|
|
309
|
+
resolve(cntrlr);
|
|
310
|
+
});
|
|
294
311
|
}
|
|
295
|
-
controller?.targeters?.forEach(
|
|
312
|
+
controller?.targeters?.forEach((target, target_index) => {
|
|
296
313
|
if (!target.selector) {
|
|
297
314
|
throw new Error(`Targets at index ${target_index} missing selector value (string).`);
|
|
298
315
|
}
|
|
@@ -315,7 +332,9 @@ The error above happened in the following targeter in the Snap Config`, target);
|
|
|
315
332
|
...target,
|
|
316
333
|
},
|
|
317
334
|
], async (target, elem, originalElem) => {
|
|
318
|
-
const cntrlr = await this.createController(
|
|
335
|
+
const cntrlr = await this.createController(ControllerTypes.autocomplete, controller.config, controller.services, controller.url, controller.context, (cntrlr) => {
|
|
336
|
+
resolve(cntrlr);
|
|
337
|
+
});
|
|
319
338
|
runBind();
|
|
320
339
|
targetFunction({ controller: cntrlr, ...target }, elem, originalElem);
|
|
321
340
|
cntrlr.addTargeter(targeter);
|
|
@@ -342,16 +361,23 @@ The error above happened in the following targeter in the Snap Config`, target);
|
|
|
342
361
|
};
|
|
343
362
|
const targetFunction = async (target, elem, originalElem) => {
|
|
344
363
|
const onTarget = target.onTarget;
|
|
345
|
-
onTarget && onTarget(target, elem, originalElem);
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
364
|
+
onTarget && (await onTarget(target, elem, originalElem));
|
|
365
|
+
try {
|
|
366
|
+
const Component = await target.component();
|
|
367
|
+
setTimeout(() => {
|
|
368
|
+
render(_jsx(Component, { controller: this.controllers[controller.config.id], ...target.props }), elem);
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
catch (err) {
|
|
372
|
+
this.logger.error(COMPONENT_ERROR, target);
|
|
373
|
+
}
|
|
350
374
|
};
|
|
351
375
|
if (!controller?.targeters || controller?.targeters.length === 0) {
|
|
352
|
-
this.createController(
|
|
376
|
+
this.createController(ControllerTypes.finder, controller.config, controller.services, controller.url, controller.context, (cntrlr) => {
|
|
377
|
+
resolve(cntrlr);
|
|
378
|
+
});
|
|
353
379
|
}
|
|
354
|
-
controller?.targeters?.forEach(
|
|
380
|
+
controller?.targeters?.forEach((target, target_index) => {
|
|
355
381
|
if (!target.selector) {
|
|
356
382
|
throw new Error(`Targets at index ${target_index} missing selector value (string).`);
|
|
357
383
|
}
|
|
@@ -359,7 +385,9 @@ The error above happened in the following targeter in the Snap Config`, target);
|
|
|
359
385
|
throw new Error(`Targets at index ${target_index} missing component value (Component).`);
|
|
360
386
|
}
|
|
361
387
|
const targeter = new DomTargeter([{ ...target }], async (target, elem, originalElem) => {
|
|
362
|
-
const cntrlr = await this.createController(
|
|
388
|
+
const cntrlr = await this.createController(ControllerTypes.finder, controller.config, controller.services, controller.url, controller.context, (cntrlr) => {
|
|
389
|
+
resolve(cntrlr);
|
|
390
|
+
});
|
|
363
391
|
runSearch();
|
|
364
392
|
targetFunction({ controller: cntrlr, ...target }, elem, originalElem);
|
|
365
393
|
cntrlr.addTargeter(targeter);
|
|
@@ -386,16 +414,23 @@ The error above happened in the following targeter in the Snap Config`, target);
|
|
|
386
414
|
};
|
|
387
415
|
const targetFunction = async (target, elem, originalElem) => {
|
|
388
416
|
const onTarget = target.onTarget;
|
|
389
|
-
onTarget && onTarget(target, elem, originalElem);
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
417
|
+
onTarget && (await onTarget(target, elem, originalElem));
|
|
418
|
+
try {
|
|
419
|
+
const Component = await target.component();
|
|
420
|
+
setTimeout(() => {
|
|
421
|
+
render(_jsx(Component, { controller: this.controllers[controller.config.id], ...target.props }), elem);
|
|
422
|
+
});
|
|
423
|
+
}
|
|
424
|
+
catch (err) {
|
|
425
|
+
this.logger.error(COMPONENT_ERROR, target);
|
|
426
|
+
}
|
|
394
427
|
};
|
|
395
428
|
if (!controller?.targeters || controller?.targeters.length === 0) {
|
|
396
|
-
this.createController(
|
|
429
|
+
this.createController(ControllerTypes.recommendation, controller.config, controller.services, controller.url, controller.context, (cntrlr) => {
|
|
430
|
+
resolve(cntrlr);
|
|
431
|
+
});
|
|
397
432
|
}
|
|
398
|
-
controller?.targeters?.forEach(
|
|
433
|
+
controller?.targeters?.forEach((target, target_index) => {
|
|
399
434
|
if (!target.selector) {
|
|
400
435
|
throw new Error(`Targets at index ${target_index} missing selector value (string).`);
|
|
401
436
|
}
|
|
@@ -403,7 +438,9 @@ The error above happened in the following targeter in the Snap Config`, target);
|
|
|
403
438
|
throw new Error(`Targets at index ${target_index} missing component value (Component).`);
|
|
404
439
|
}
|
|
405
440
|
const targeter = new DomTargeter([{ ...target }], async (target, elem, originalElem) => {
|
|
406
|
-
const cntrlr = await this.createController(
|
|
441
|
+
const cntrlr = await this.createController(ControllerTypes.recommendation, controller.config, controller.services, controller.url, controller.context, (cntrlr) => {
|
|
442
|
+
resolve(cntrlr);
|
|
443
|
+
});
|
|
407
444
|
runSearch();
|
|
408
445
|
targetFunction({ controller: cntrlr, ...target }, elem, originalElem);
|
|
409
446
|
cntrlr.addTargeter(targeter);
|
|
@@ -421,11 +458,11 @@ The error above happened in the following targeter in the Snap Config`, target);
|
|
|
421
458
|
});
|
|
422
459
|
if (this.config?.instantiators?.recommendation) {
|
|
423
460
|
try {
|
|
424
|
-
this._instantiatorPromises.
|
|
461
|
+
this._instantiatorPromises.recommendation = import('./Instantiators/RecommendationInstantiator').then(({ RecommendationInstantiator }) => {
|
|
425
462
|
return new RecommendationInstantiator(this.config.instantiators.recommendation, {
|
|
426
|
-
client: this.
|
|
427
|
-
tracker: this.
|
|
428
|
-
logger: this.
|
|
463
|
+
client: this.client,
|
|
464
|
+
tracker: this.tracker,
|
|
465
|
+
logger: this.logger,
|
|
429
466
|
}, this.context);
|
|
430
467
|
});
|
|
431
468
|
}
|
|
@@ -1,7 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const BranchOverride: (props: {
|
|
3
|
-
branch: string;
|
|
4
|
-
cookieName: string;
|
|
5
|
-
bundleUrl: string;
|
|
6
|
-
}) => JSX.Element;
|
|
1
|
+
export { BranchOverride } from '@searchspring/snap-preact-components';
|
|
7
2
|
//# sourceMappingURL=BranchOverride.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BranchOverride.d.ts","sourceRoot":"","sources":["../../../src/components/BranchOverride.
|
|
1
|
+
{"version":3,"file":"BranchOverride.d.ts","sourceRoot":"","sources":["../../../src/components/BranchOverride.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC"}
|