@searchspring/snap-controller 0.27.4 → 0.27.7

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.
Files changed (37) hide show
  1. package/dist/cjs/Abstract/AbstractController.d.ts +5 -4
  2. package/dist/cjs/Abstract/AbstractController.d.ts.map +1 -1
  3. package/dist/cjs/Autocomplete/AutocompleteController.d.ts +6 -5
  4. package/dist/cjs/Autocomplete/AutocompleteController.d.ts.map +1 -1
  5. package/dist/cjs/Autocomplete/AutocompleteController.js +17 -13
  6. package/dist/cjs/Finder/FinderController.d.ts.map +1 -1
  7. package/dist/cjs/Finder/FinderController.js +4 -1
  8. package/dist/cjs/Recommendation/RecommendationController.d.ts +26 -12
  9. package/dist/cjs/Recommendation/RecommendationController.d.ts.map +1 -1
  10. package/dist/cjs/Recommendation/RecommendationController.js +10 -10
  11. package/dist/cjs/Search/SearchController.d.ts +1 -1
  12. package/dist/cjs/Search/SearchController.d.ts.map +1 -1
  13. package/dist/cjs/Search/SearchController.js +39 -36
  14. package/dist/cjs/types.d.ts +3 -3
  15. package/dist/cjs/types.d.ts.map +1 -1
  16. package/dist/cjs/utils/getParams.d.ts +2 -1
  17. package/dist/cjs/utils/getParams.d.ts.map +1 -1
  18. package/dist/cjs/utils/getParams.js +0 -1
  19. package/dist/esm/Abstract/AbstractController.d.ts +5 -4
  20. package/dist/esm/Abstract/AbstractController.d.ts.map +1 -1
  21. package/dist/esm/Autocomplete/AutocompleteController.d.ts +6 -5
  22. package/dist/esm/Autocomplete/AutocompleteController.d.ts.map +1 -1
  23. package/dist/esm/Autocomplete/AutocompleteController.js +9 -6
  24. package/dist/esm/Finder/FinderController.d.ts.map +1 -1
  25. package/dist/esm/Finder/FinderController.js +4 -1
  26. package/dist/esm/Recommendation/RecommendationController.d.ts +26 -12
  27. package/dist/esm/Recommendation/RecommendationController.d.ts.map +1 -1
  28. package/dist/esm/Recommendation/RecommendationController.js +10 -10
  29. package/dist/esm/Search/SearchController.d.ts +1 -1
  30. package/dist/esm/Search/SearchController.d.ts.map +1 -1
  31. package/dist/esm/Search/SearchController.js +8 -5
  32. package/dist/esm/types.d.ts +3 -3
  33. package/dist/esm/types.d.ts.map +1 -1
  34. package/dist/esm/utils/getParams.d.ts +2 -1
  35. package/dist/esm/utils/getParams.d.ts.map +1 -1
  36. package/dist/esm/utils/getParams.js +0 -1
  37. package/package.json +10 -10
@@ -1,5 +1,6 @@
1
1
  import { LogMode } from '@searchspring/snap-logger';
2
2
  import { DomTargeter } from '@searchspring/snap-toolbox';
3
+ import type { Client } from '@searchspring/snap-client';
3
4
  import type { AbstractStore } from '@searchspring/snap-store-mobx';
4
5
  import type { UrlManager } from '@searchspring/snap-url-manager';
5
6
  import type { EventManager, Middleware } from '@searchspring/snap-event-manager';
@@ -12,7 +13,7 @@ export declare abstract class AbstractController {
12
13
  id: string;
13
14
  type: string;
14
15
  config: ControllerConfig;
15
- client: any;
16
+ client: Client;
16
17
  store: AbstractStore;
17
18
  urlManager: UrlManager;
18
19
  eventManager: EventManager;
@@ -27,14 +28,14 @@ export declare abstract class AbstractController {
27
28
  private _environment;
28
29
  get initialized(): boolean;
29
30
  constructor(config: ControllerConfig, { client, store, urlManager, eventManager, profiler, logger, tracker }: ControllerServices, context?: ContextVariables);
30
- createTargeter(target: Target, onTarget: OnTarget, document?: Document): DomTargeter;
31
- addTargeter(target: DomTargeter): DomTargeter;
31
+ createTargeter(target: Target, onTarget: OnTarget, document?: Document): DomTargeter | undefined;
32
+ addTargeter(target: DomTargeter): DomTargeter | undefined;
32
33
  set environment(env: LogMode);
33
34
  get environment(): LogMode;
34
35
  init(): Promise<void>;
35
36
  retarget(): void;
36
37
  abstract search(): Promise<void>;
37
- plugin(func: (cntrlr: AbstractController, ...args: any[]) => Promise<void>, ...args: unknown[]): Promise<void>;
38
+ plugin(func: (cntrlr: AbstractController, ...args: any) => Promise<void>, ...args: unknown[]): Promise<void>;
38
39
  on<T>(event: string, ...func: Middleware<T>[]): void;
39
40
  use(attachments: Attachments): void;
40
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractController.d.ts","sourceRoot":"","sources":["../../../src/Abstract/AbstractController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAgB,MAAM,4BAA4B,CAAC;AAGvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGpG,8BAAsB,kBAAkB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,SAAc;IAClB,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,MAAC;IACP,KAAK,EAAE,aAAa,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,gBAAgB,CAAC;IAE1B,SAAS,EAAE;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC;KAC3B,CAAM;IAEP,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAsB;IAE1C,IAAI,WAAW,IAAI,OAAO,CAEzB;gBAGA,MAAM,EAAE,gBAAgB,EACxB,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,GAAE,gBAAqB;IA2ExB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,WAAW;IAIpF,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW;IASpD,IAAW,WAAW,CAAC,GAAG,EAAE,OAAO,EAKlC;IAED,IAAW,WAAW,IAAI,OAAO,CAEhC;IAEY,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA+C3B,QAAQ,IAAI,IAAI;aAMP,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAE1B,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAI,OAAA,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7G,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI;IAIpD,GAAG,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;CAoC1C"}
1
+ {"version":3,"file":"AbstractController.d.ts","sourceRoot":"","sources":["../../../src/Abstract/AbstractController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAgB,MAAM,4BAA4B,CAAC;AAEvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGpG,8BAAsB,kBAAkB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,SAAc;IAClB,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,gBAAgB,CAAC;IAE1B,SAAS,EAAE;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC;KAC3B,CAAM;IAEP,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAsB;IAE1C,IAAI,WAAW,IAAI,OAAO,CAEzB;gBAGA,MAAM,EAAE,gBAAgB,EACxB,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,GAAE,gBAAqB;IA2ExB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS;IAIhG,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS;IAShE,IAAW,WAAW,CAAC,GAAG,EAAE,OAAO,EAKlC;IAED,IAAW,WAAW,IAAI,OAAO,CAEhC;IAEY,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA+C3B,QAAQ,IAAI,IAAI;aAMP,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAE1B,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlH,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI;IAIpD,GAAG,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;CAoC1C"}
@@ -1,13 +1,14 @@
1
+ /// <reference types="node" />
1
2
  import { StorageStore } from '@searchspring/snap-store-mobx';
2
3
  import { AbstractController } from '../Abstract/AbstractController';
3
4
  import { ControllerTypes } from '../types';
4
- import type { AutocompleteStore } from '@searchspring/snap-store-mobx';
5
+ import { AutocompleteStore } from '@searchspring/snap-store-mobx';
5
6
  import type { AutocompleteControllerConfig, ControllerServices, ContextVariables } from '../types';
6
7
  import type { AutocompleteRequestModel } from '@searchspring/snapi-types';
7
8
  export declare const INPUT_DELAY = 200;
8
9
  declare type AutocompleteTrackMethods = {
9
10
  product: {
10
- click: (e: any, result: any) => void;
11
+ click: (e: MouseEvent, result: any) => void;
11
12
  };
12
13
  };
13
14
  export declare class AutocompleteController extends AbstractController {
@@ -22,12 +23,12 @@ export declare class AutocompleteController extends AbstractController {
22
23
  reset(): void;
23
24
  handlers: {
24
25
  input: {
25
- enterKey: (e: KeyboardEvent) => Promise<boolean>;
26
+ enterKey: (e: KeyboardEvent) => Promise<boolean | undefined>;
26
27
  escKey: (e: KeyboardEvent) => void;
27
28
  focus: (e: FocusEvent) => void;
28
- formSubmit: (e: any) => Promise<void>;
29
+ formSubmit: (e: React.FormEvent<HTMLInputElement>) => Promise<void>;
29
30
  keyUp: (e: KeyboardEvent) => void;
30
- timeoutDelay: any;
31
+ timeoutDelay: NodeJS.Timeout;
31
32
  };
32
33
  document: {
33
34
  click: (e: MouseEvent) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"AutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/Autocomplete/AutocompleteController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EACX,4BAA4B,EAI5B,kBAAkB,EAElB,gBAAgB,EAChB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAG1E,eAAO,MAAM,WAAW,MAAM,CAAC;AAoB/B,aAAK,wBAAwB,GAAG;IAC/B,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,KAAA,EAAE,MAAM,KAAA,KAAK,IAAI,CAAC;KAC3B,CAAC;CACF,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,kBAAkB;IACtD,IAAI,kBAAgC;IACpC,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,4BAA4B,CAAC;IACrC,OAAO,EAAE,YAAY,CAAC;gBAG5B,MAAM,EAAE,4BAA4B,EACpC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAoD3B,KAAK,EAAE,wBAAwB,CAO7B;IAEF,IAAI,MAAM,IAAI,wBAAwB,CA+BrC;IAEK,UAAU,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsChE,KAAK,IAAI,IAAI;IASb,QAAQ;;0BAEc,aAAa,KAAG,QAAQ,OAAO,CAAC;wBA6CxC,aAAa,KAAG,IAAI;uBAMrB,UAAU,KAAG,IAAI;oCAQL,QAAQ,IAAI,CAAC;uBAwCzB,aAAa,KAAG,IAAI;;;;uBA8CpB,UAAU,KAAG,IAAI;;MAS5B;IAEF,MAAM,IAAI,IAAI;IAYR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA2D3B,cAAc,QAAa,QAAQ,IAAI,CAAC,CAsBtC;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CA6G9B;CACF"}
1
+ {"version":3,"file":"AutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/Autocomplete/AutocompleteController.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EACX,4BAA4B,EAI5B,kBAAkB,EAElB,gBAAgB,EAChB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAG1E,eAAO,MAAM,WAAW,MAAM,CAAC;AAoB/B,aAAK,wBAAwB,GAAG;IAC/B,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;KAC5C,CAAC;CACF,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,kBAAkB;IACtD,IAAI,kBAAgC;IACnC,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,4BAA4B,CAAC;IACtC,OAAO,EAAE,YAAY,CAAC;gBAG5B,MAAM,EAAE,4BAA4B,EACpC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAoD3B,KAAK,EAAE,wBAAwB,CAO7B;IAEF,IAAI,MAAM,IAAI,wBAAwB,CA+BrC;IAEK,UAAU,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsChE,KAAK,IAAI,IAAI;IASb,QAAQ;;0BAEc,aAAa,KAAG,QAAQ,OAAO,GAAG,SAAS,CAAC;wBA6CpD,aAAa,KAAG,IAAI;uBAMrB,UAAU,KAAG,IAAI;4BAQN,MAAM,SAAS,CAAC,gBAAgB,CAAC,KAAG,QAAQ,IAAI,CAAC;uBAwC5D,aAAa,KAAG,IAAI;;;;uBA8CpB,UAAU,KAAG,IAAI;;MAS5B;IAEF,MAAM,IAAI,IAAI;IAYR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA2D3B,cAAc,QAAa,QAAQ,IAAI,CAAC,CAsBtC;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CAgH9B;CACF"}
@@ -135,11 +135,11 @@ var AutocompleteController = /** @class */ (function (_super) {
135
135
  // use corrected query and originalQuery
136
136
  if (this.store.search.originalQuery) {
137
137
  input.value = this.store.search.query.string;
138
- actionUrl = actionUrl.set(PARAM_ORIGINAL_QUERY, this.store.search.originalQuery.string);
138
+ actionUrl = actionUrl === null || actionUrl === void 0 ? void 0 : actionUrl.set(PARAM_ORIGINAL_QUERY, this.store.search.originalQuery.string);
139
139
  }
140
140
  _d.label = 5;
141
141
  case 5:
142
- actionUrl = actionUrl.set('query', input.value);
142
+ actionUrl = actionUrl === null || actionUrl === void 0 ? void 0 : actionUrl.set('query', input.value);
143
143
  _d.label = 6;
144
144
  case 6:
145
145
  _d.trys.push([6, 8, , 9]);
@@ -162,7 +162,7 @@ var AutocompleteController = /** @class */ (function (_super) {
162
162
  }
163
163
  return [3 /*break*/, 9];
164
164
  case 9:
165
- window.location.href = actionUrl.href;
165
+ window.location.href = (actionUrl === null || actionUrl === void 0 ? void 0 : actionUrl.href) || '';
166
166
  _d.label = 10;
167
167
  case 10: return [2 /*return*/];
168
168
  }
@@ -238,7 +238,7 @@ var AutocompleteController = /** @class */ (function (_super) {
238
238
  });
239
239
  }); },
240
240
  keyUp: function (e) {
241
- var _a, _b, _c;
241
+ var _a, _b, _c, _d, _e;
242
242
  // ignore enter and escape keys
243
243
  if ((e === null || e === void 0 ? void 0 : e.keyCode) == KEY_ENTER || (e === null || e === void 0 ? void 0 : e.keyCode) == KEY_ESCAPE)
244
244
  return;
@@ -252,7 +252,7 @@ var AutocompleteController = /** @class */ (function (_super) {
252
252
  return;
253
253
  }
254
254
  _this.store.state.input = value;
255
- if (_this.config.settings.syncInputs) {
255
+ if ((_b = (_a = _this.config) === null || _a === void 0 ? void 0 : _a.settings) === null || _b === void 0 ? void 0 : _b.syncInputs) {
256
256
  var inputs = document.querySelectorAll(_this.config.selector);
257
257
  inputs.forEach(function (input) {
258
258
  input.value = value;
@@ -263,7 +263,7 @@ var AutocompleteController = /** @class */ (function (_super) {
263
263
  // TODO cancel any current requests?
264
264
  _this.store.reset();
265
265
  _this.urlManager.reset().go();
266
- if (((_a = _this.store.trending) === null || _a === void 0 ? void 0 : _a.length) && ((_c = (_b = _this.config.settings) === null || _b === void 0 ? void 0 : _b.trending) === null || _c === void 0 ? void 0 : _c.showResults)) {
266
+ if (((_c = _this.store.trending) === null || _c === void 0 ? void 0 : _c.length) && ((_e = (_d = _this.config.settings) === null || _d === void 0 ? void 0 : _d.trending) === null || _e === void 0 ? void 0 : _e.showResults)) {
267
267
  _this.store.trending[0].preview();
268
268
  }
269
269
  }
@@ -357,11 +357,13 @@ var AutocompleteController = /** @class */ (function (_super) {
357
357
  return [4 /*yield*/, this.client.autocomplete(params)];
358
358
  case 6:
359
359
  _a = _d.sent(), meta = _a[0], response = _a[1];
360
+ // @ts-ignore
360
361
  if (!response.meta) {
361
362
  /**
362
363
  * MockClient will overwrite the client search() method and use
363
364
  * SearchData to return mock data which already contains meta data
364
365
  */
366
+ // @ts-ignore
365
367
  response.meta = meta;
366
368
  }
367
369
  searchProfile.stop();
@@ -394,6 +396,7 @@ var AutocompleteController = /** @class */ (function (_super) {
394
396
  afterSearchProfile.stop();
395
397
  this.log.profile(afterSearchProfile);
396
398
  // update the store
399
+ // @ts-ignore
397
400
  this.store.update(response);
398
401
  afterStoreProfile = this.profiler.create({ type: 'event', name: 'afterStore', context: params }).start();
399
402
  _d.label = 11;
@@ -623,27 +626,28 @@ var AutocompleteController = /** @class */ (function (_super) {
623
626
  document.removeEventListener('click', this.handlers.document.click);
624
627
  };
625
628
  AutocompleteController.prototype.bind = function () {
626
- var _a, _b, _c;
629
+ var _a, _b, _c, _d, _e;
627
630
  return __awaiter(this, void 0, void 0, function () {
628
631
  var inputs;
629
632
  var _this = this;
630
- return __generator(this, function (_d) {
631
- switch (_d.label) {
633
+ return __generator(this, function (_f) {
634
+ switch (_f.label) {
632
635
  case 0:
633
636
  if (!!this.initialized) return [3 /*break*/, 2];
634
637
  return [4 /*yield*/, this.init()];
635
638
  case 1:
636
- _d.sent();
637
- _d.label = 2;
639
+ _f.sent();
640
+ _f.label = 2;
638
641
  case 2:
639
642
  this.unbind();
640
643
  inputs = document.querySelectorAll(this.config.selector);
641
644
  inputs.forEach(function (input) {
645
+ var _a, _b;
642
646
  input.setAttribute('spellcheck', 'false');
643
647
  input.setAttribute('autocomplete', 'off');
644
648
  input.setAttribute(INPUT_ATTRIBUTE, '');
645
649
  input.addEventListener('keyup', _this.handlers.input.keyUp);
646
- if (_this.config.settings.initializeFromUrl && !input.value && _this.store.state.input) {
650
+ if (((_b = (_a = _this.config) === null || _a === void 0 ? void 0 : _a.settings) === null || _b === void 0 ? void 0 : _b.initializeFromUrl) && !input.value && _this.store.state.input) {
647
651
  input.value = _this.store.state.input;
648
652
  }
649
653
  input.addEventListener('focus', _this.handlers.input.focus);
@@ -668,7 +672,7 @@ var AutocompleteController = /** @class */ (function (_super) {
668
672
  _this.setFocused(input);
669
673
  }
670
674
  });
671
- if (((_b = (_a = this.config.settings) === null || _a === void 0 ? void 0 : _a.trending) === null || _b === void 0 ? void 0 : _b.limit) > 0 && !((_c = this.store.trending) === null || _c === void 0 ? void 0 : _c.length)) {
675
+ if (((_b = (_a = this.config.settings) === null || _a === void 0 ? void 0 : _a.trending) === null || _b === void 0 ? void 0 : _b.limit) && ((_d = (_c = this.config.settings) === null || _c === void 0 ? void 0 : _c.trending) === null || _d === void 0 ? void 0 : _d.limit) > 0 && !((_e = this.store.trending) === null || _e === void 0 ? void 0 : _e.length)) {
672
676
  this.searchTrending();
673
677
  }
674
678
  document.addEventListener('click', this.handlers.document.click);
@@ -1 +1 @@
1
- {"version":3,"file":"FinderController.d.ts","sourceRoot":"","sources":["../../../src/Finder/FinderController.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAmC,kBAAkB,EAAa,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAiBzI,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC9B,KAAK,EAAE,WAAW,CAAC;IAC1B,MAAM,EAAE,sBAAsB,CAAC;gBAG9B,MAAM,EAAE,sBAAsB,EAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IA2C3B,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAchC;IAED,IAAI,QAAa,QAAQ,IAAI,CAAC,CAe5B;IAEF,KAAK,QAAO,IAAI,CAId;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CAiH9B;CACF"}
1
+ {"version":3,"file":"FinderController.d.ts","sourceRoot":"","sources":["../../../src/Finder/FinderController.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAmC,kBAAkB,EAAa,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAiBzI,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,sBAAsB,CAAC;gBAGtC,MAAM,EAAE,sBAAsB,EAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IA2C3B,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAchC;IAED,IAAI,QAAa,QAAQ,IAAI,CAAC,CAe5B;IAEF,KAAK,QAAO,IAAI,CAId;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CAoH9B;CACF"}
@@ -167,14 +167,16 @@ var FinderController = /** @class */ (function (_super) {
167
167
  return [3 /*break*/, 7];
168
168
  case 7:
169
169
  searchProfile = this.profiler.create({ type: 'event', name: 'search', context: params }).start();
170
- return [4 /*yield*/, this.client.search(params)];
170
+ return [4 /*yield*/, this.client.finder(params)];
171
171
  case 8:
172
172
  _a = _b.sent(), meta = _a[0], response = _a[1];
173
+ // @ts-ignore
173
174
  if (!response.meta) {
174
175
  /**
175
176
  * MockClient will overwrite the client search() method and use
176
177
  * SearchData to return mock data which already contains meta data
177
178
  */
179
+ // @ts-ignore
178
180
  response.meta = meta;
179
181
  }
180
182
  searchProfile.stop();
@@ -207,6 +209,7 @@ var FinderController = /** @class */ (function (_super) {
207
209
  afterSearchProfile.stop();
208
210
  this.log.profile(afterSearchProfile);
209
211
  // update the store
212
+ // @ts-ignore
210
213
  this.store.update(response);
211
214
  afterStoreProfile = this.profiler.create({ type: 'event', name: 'afterStore', context: params }).start();
212
215
  _b.label = 13;
@@ -1,31 +1,45 @@
1
1
  import { AbstractController } from '../Abstract/AbstractController';
2
2
  import { ControllerTypes } from '../types';
3
- import type { BeaconEvent } from '@searchspring/snap-tracker';
3
+ import { BeaconEvent } from '@searchspring/snap-tracker';
4
4
  import type { RecommendationStore } from '@searchspring/snap-store-mobx';
5
5
  import type { RecommendationControllerConfig, ControllerServices, ContextVariables } from '../types';
6
6
  declare type RecommendationTrackMethods = {
7
7
  product: {
8
- click: (e: any, result: any) => BeaconEvent;
9
- render: (result: any) => BeaconEvent;
10
- impression: (result: any) => BeaconEvent;
8
+ click: (e: MouseEvent, result: any) => BeaconEvent | undefined;
9
+ render: (result: any) => BeaconEvent | undefined;
10
+ impression: (result: any) => BeaconEvent | undefined;
11
11
  };
12
- click: (e: any) => BeaconEvent;
13
- impression: () => BeaconEvent;
14
- render: () => BeaconEvent;
12
+ click: (e: MouseEvent) => BeaconEvent | undefined;
13
+ impression: () => BeaconEvent | undefined;
14
+ render: () => BeaconEvent | undefined;
15
+ };
16
+ declare type RecommendCombinedRequestModel = {
17
+ tag: string;
18
+ siteId: string;
19
+ product?: string;
20
+ shopper?: string;
21
+ categories?: string[];
22
+ cart?: string[];
23
+ lastViewed?: string[];
24
+ test?: boolean;
25
+ branch?: string;
15
26
  };
16
27
  export declare class RecommendationController extends AbstractController {
17
28
  type: ControllerTypes;
18
29
  store: RecommendationStore;
19
30
  config: RecommendationControllerConfig;
20
31
  events: {
21
- click: any;
22
- impression: any;
23
- render: any;
24
- product: {};
32
+ click?: BeaconEvent;
33
+ impression?: BeaconEvent;
34
+ render?: BeaconEvent;
35
+ product?: Record<string, {
36
+ impression?: BeaconEvent;
37
+ render?: BeaconEvent;
38
+ }>;
25
39
  };
26
40
  constructor(config: RecommendationControllerConfig, { client, store, urlManager, eventManager, profiler, logger, tracker }: ControllerServices, context?: ContextVariables);
27
41
  track: RecommendationTrackMethods;
28
- get params(): Record<string, any>;
42
+ get params(): RecommendCombinedRequestModel;
29
43
  search: () => Promise<void>;
30
44
  }
31
45
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"RecommendationController.d.ts","sourceRoot":"","sources":["../../../src/Recommendation/RecommendationController.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,8BAA8B,EAAkC,kBAAkB,EAAa,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEhJ,aAAK,0BAA0B,GAAG;IACjC,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,KAAA,EAAE,MAAM,KAAA,KAAK,WAAW,CAAC;QAClC,MAAM,EAAE,CAAC,MAAM,KAAA,KAAK,WAAW,CAAC;QAChC,UAAU,EAAE,CAAC,MAAM,KAAA,KAAK,WAAW,CAAC;KACpC,CAAC;IACF,KAAK,EAAE,CAAC,CAAC,KAAA,KAAK,WAAW,CAAC;IAC1B,UAAU,EAAE,MAAM,WAAW,CAAC;IAC9B,MAAM,EAAE,MAAM,WAAW,CAAC;CAC1B,CAAC;AAUF,qBAAa,wBAAyB,SAAQ,kBAAkB;IACxD,IAAI,kBAAkC;IACtC,KAAK,EAAE,mBAAmB,CAAC;IAClC,MAAM,EAAE,8BAA8B,CAAC;IACvC,MAAM;;;;;MAKJ;gBAGD,MAAM,EAAE,8BAA8B,EACtC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IA8B3B,KAAK,EAAE,0BAA0B,CAoK/B;IAEF,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAyBhC;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CAqG9B;CACF"}
1
+ {"version":3,"file":"RecommendationController.d.ts","sourceRoot":"","sources":["../../../src/Recommendation/RecommendationController.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,8BAA8B,EAAkC,kBAAkB,EAAa,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEhJ,aAAK,0BAA0B,GAAG;IACjC,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,WAAW,GAAG,SAAS,CAAC;QAC/D,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,WAAW,GAAG,SAAS,CAAC;QACjD,UAAU,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,WAAW,GAAG,SAAS,CAAC;KACrD,CAAC;IACF,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,WAAW,GAAG,SAAS,CAAC;IAClD,UAAU,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;IAC1C,MAAM,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;CACtC,CAAC;AAEF,aAAK,6BAA6B,GAAG;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAUF,qBAAa,wBAAyB,SAAQ,kBAAkB;IACxD,IAAI,kBAAkC;IACrC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,EAAE,8BAA8B,CAAC;IAE/C,MAAM,EAAE;QACP,KAAK,CAAC,EAAE,WAAW,CAAC;QACpB,UAAU,CAAC,EAAE,WAAW,CAAC;QACzB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,UAAU,CAAC,EAAE,WAAW,CAAC;YAAC,MAAM,CAAC,EAAE,WAAW,CAAA;SAAE,CAAC,CAAC;KAC7E,CAKC;gBAGD,MAAM,EAAE,8BAA8B,EACtC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IA8B3B,KAAK,EAAE,0BAA0B,CAqK/B;IAEF,IAAI,MAAM,IAAI,6BAA6B,CAyB1C;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CAqG9B;CACF"}
@@ -86,9 +86,9 @@ var RecommendationController = /** @class */ (function (_super) {
86
86
  var _this = _super.call(this, config, { client: client, store: store, urlManager: urlManager, eventManager: eventManager, profiler: profiler, logger: logger, tracker: tracker }, context) || this;
87
87
  _this.type = types_1.ControllerTypes.recommendation;
88
88
  _this.events = {
89
- click: null,
90
- impression: null,
91
- render: null,
89
+ click: undefined,
90
+ impression: undefined,
91
+ render: undefined,
92
92
  product: {},
93
93
  };
94
94
  _this.track = {
@@ -99,7 +99,7 @@ var RecommendationController = /** @class */ (function (_super) {
99
99
  var payload = {
100
100
  type: snap_tracker_1.BeaconType.PROFILE_PRODUCT_CLICK,
101
101
  category: snap_tracker_1.BeaconCategory.RECOMMENDATIONS,
102
- context: _this.config.globals.siteId ? { website: { trackingCode: _this.config.globals.siteId } } : null,
102
+ context: _this.config.globals.siteId ? { website: { trackingCode: _this.config.globals.siteId } } : undefined,
103
103
  event: {
104
104
  context: {
105
105
  action: 'navigate',
@@ -123,12 +123,12 @@ var RecommendationController = /** @class */ (function (_super) {
123
123
  },
124
124
  impression: function (result) {
125
125
  var _a;
126
- if (!_this.store.profile.tag || !result || !_this.events.impression || ((_a = _this.events.product[result.id]) === null || _a === void 0 ? void 0 : _a.impression))
126
+ if (!_this.store.profile.tag || !result || !_this.events.impression || (_this.events.product && ((_a = _this.events.product[result.id]) === null || _a === void 0 ? void 0 : _a.impression)))
127
127
  return;
128
128
  var payload = {
129
129
  type: snap_tracker_1.BeaconType.PROFILE_PRODUCT_IMPRESSION,
130
130
  category: snap_tracker_1.BeaconCategory.RECOMMENDATIONS,
131
- context: _this.config.globals.siteId ? { website: { trackingCode: _this.config.globals.siteId } } : null,
131
+ context: _this.config.globals.siteId ? { website: { trackingCode: _this.config.globals.siteId } } : undefined,
132
132
  event: {
133
133
  context: {
134
134
  placement: _this.store.profile.placement,
@@ -157,7 +157,7 @@ var RecommendationController = /** @class */ (function (_super) {
157
157
  var payload = {
158
158
  type: snap_tracker_1.BeaconType.PROFILE_PRODUCT_RENDER,
159
159
  category: snap_tracker_1.BeaconCategory.RECOMMENDATIONS,
160
- context: _this.config.globals.siteId ? { website: { trackingCode: _this.config.globals.siteId } } : null,
160
+ context: _this.config.globals.siteId ? { website: { trackingCode: _this.config.globals.siteId } } : undefined,
161
161
  event: {
162
162
  context: {
163
163
  placement: _this.store.profile.placement,
@@ -186,7 +186,7 @@ var RecommendationController = /** @class */ (function (_super) {
186
186
  var event = _this.tracker.track.event({
187
187
  type: snap_tracker_1.BeaconType.PROFILE_CLICK,
188
188
  category: snap_tracker_1.BeaconCategory.RECOMMENDATIONS,
189
- context: _this.config.globals.siteId ? { website: { trackingCode: _this.config.globals.siteId } } : null,
189
+ context: _this.config.globals.siteId ? { website: { trackingCode: _this.config.globals.siteId } } : undefined,
190
190
  event: {
191
191
  context: {
192
192
  action: 'navigate',
@@ -212,7 +212,7 @@ var RecommendationController = /** @class */ (function (_super) {
212
212
  var event = _this.tracker.track.event({
213
213
  type: snap_tracker_1.BeaconType.PROFILE_IMPRESSION,
214
214
  category: snap_tracker_1.BeaconCategory.RECOMMENDATIONS,
215
- context: _this.config.globals.siteId ? { website: { trackingCode: _this.config.globals.siteId } } : null,
215
+ context: _this.config.globals.siteId ? { website: { trackingCode: _this.config.globals.siteId } } : undefined,
216
216
  event: {
217
217
  context: {
218
218
  placement: _this.store.profile.placement,
@@ -237,7 +237,7 @@ var RecommendationController = /** @class */ (function (_super) {
237
237
  var event = _this.tracker.track.event({
238
238
  type: snap_tracker_1.BeaconType.PROFILE_RENDER,
239
239
  category: snap_tracker_1.BeaconCategory.RECOMMENDATIONS,
240
- context: _this.config.globals.siteId ? { website: { trackingCode: _this.config.globals.siteId } } : null,
240
+ context: _this.config.globals.siteId ? { website: { trackingCode: _this.config.globals.siteId } } : undefined,
241
241
  event: {
242
242
  context: {
243
243
  placement: _this.store.profile.placement,
@@ -7,7 +7,7 @@ import type { SearchControllerConfig, ControllerServices, ContextVariables } fro
7
7
  import type { SearchRequestModel } from '@searchspring/snapi-types';
8
8
  declare type SearchTrackMethods = {
9
9
  product: {
10
- click: (e: any, result: any) => BeaconEvent;
10
+ click: (e: MouseEvent, result: any) => BeaconEvent | undefined;
11
11
  };
12
12
  };
13
13
  export declare class SearchController extends AbstractController {
@@ -1 +1 @@
1
- {"version":3,"file":"SearchController.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EACX,sBAAsB,EAItB,kBAAkB,EAElB,gBAAgB,EAChB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,kBAAkB,EAAgD,MAAM,2BAA2B,CAAC;AAoBlH,aAAK,kBAAkB,GAAG;IACzB,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,KAAA,EAAE,MAAM,KAAA,KAAK,WAAW,CAAC;KAClC,CAAC;CACF,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC9B,KAAK,EAAE,WAAW,CAAC;IAC1B,MAAM,EAAE,sBAAsB,CAAC;IAC/B,OAAO,EAAE,YAAY,CAAC;gBAGrB,MAAM,EAAE,sBAAsB,EAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAkF3B,KAAK,EAAE,kBAAkB,CA0BvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAsC/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CAuJ9B;CACF"}
1
+ {"version":3,"file":"SearchController.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EACX,sBAAsB,EAItB,kBAAkB,EAElB,gBAAgB,EAChB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,kBAAkB,EAAgD,MAAM,2BAA2B,CAAC;AAoBlH,aAAK,kBAAkB,GAAG;IACzB,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,WAAW,GAAG,SAAS,CAAC;KAC/D,CAAC;CACF,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,sBAAsB,CAAC;IACvC,OAAO,EAAE,YAAY,CAAC;gBAGrB,MAAM,EAAE,sBAAsB,EAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAkF3B,KAAK,EAAE,kBAAkB,CA0BvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAsC/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA0J9B;CACF"}
@@ -105,18 +105,18 @@ var SearchController = /** @class */ (function (_super) {
105
105
  _this.track = {
106
106
  product: {
107
107
  click: function (e, result) {
108
- var _a;
108
+ var _a, _b;
109
109
  // store scroll position
110
- if (_this.config.settings.infinite) {
110
+ if ((_a = _this.config.settings) === null || _a === void 0 ? void 0 : _a.infinite) {
111
111
  var stringyParams = _this.storage.get('lastStringyParams');
112
112
  var scrollMap = {};
113
113
  scrollMap[stringyParams] = window.scrollY;
114
114
  _this.storage.set('scrollMap', scrollMap);
115
115
  }
116
116
  // track
117
- var _b = result.attributes, intellisuggestData = _b.intellisuggestData, intellisuggestSignature = _b.intellisuggestSignature;
117
+ var _c = result.attributes, intellisuggestData = _c.intellisuggestData, intellisuggestSignature = _c.intellisuggestSignature;
118
118
  var target = e.target;
119
- var href = (target === null || target === void 0 ? void 0 : target.href) || ((_a = result.mappings.core) === null || _a === void 0 ? void 0 : _a.url) || undefined;
119
+ var href = (target === null || target === void 0 ? void 0 : target.href) || ((_b = result.mappings.core) === null || _b === void 0 ? void 0 : _b.url) || undefined;
120
120
  var event = _this.tracker.track.product.click({
121
121
  intellisuggestData: intellisuggestData,
122
122
  intellisuggestSignature: intellisuggestSignature,
@@ -129,32 +129,32 @@ var SearchController = /** @class */ (function (_super) {
129
129
  };
130
130
  _this.search = function () { return __awaiter(_this, void 0, void 0, function () {
131
131
  var params, err_1, stringyParams, prevStringyParams, preventBackfill, dontBackfill, searchProfile, _a, meta, response, previousResults_1, backfills, page, backfillParams, backfillResponses, afterSearchProfile, err_2, afterStoreProfile, err_3, err_4;
132
- var _b, _c, _d, _e, _f, _g, _h;
133
- return __generator(this, function (_j) {
134
- switch (_j.label) {
132
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
133
+ return __generator(this, function (_m) {
134
+ switch (_m.label) {
135
135
  case 0:
136
136
  if (!!this.initialized) return [3 /*break*/, 2];
137
137
  return [4 /*yield*/, this.init()];
138
138
  case 1:
139
- _j.sent();
140
- _j.label = 2;
139
+ _m.sent();
140
+ _m.label = 2;
141
141
  case 2:
142
142
  params = this.params;
143
- _j.label = 3;
143
+ _m.label = 3;
144
144
  case 3:
145
- _j.trys.push([3, 20, , 21]);
146
- _j.label = 4;
145
+ _m.trys.push([3, 20, , 21]);
146
+ _m.label = 4;
147
147
  case 4:
148
- _j.trys.push([4, 6, , 7]);
148
+ _m.trys.push([4, 6, , 7]);
149
149
  return [4 /*yield*/, this.eventManager.fire('beforeSearch', {
150
150
  controller: this,
151
151
  request: params,
152
152
  })];
153
153
  case 5:
154
- _j.sent();
154
+ _m.sent();
155
155
  return [3 /*break*/, 7];
156
156
  case 6:
157
- err_1 = _j.sent();
157
+ err_1 = _m.sent();
158
158
  if ((err_1 === null || err_1 === void 0 ? void 0 : err_1.message) == 'cancelled') {
159
159
  this.log.warn("'beforeSearch' middleware cancelled");
160
160
  return [2 /*return*/];
@@ -171,9 +171,9 @@ var SearchController = /** @class */ (function (_super) {
171
171
  // no param change - not searching
172
172
  return [2 /*return*/];
173
173
  }
174
- if (this.config.settings.infinite) {
175
- preventBackfill = ((_b = this.config.settings.infinite) === null || _b === void 0 ? void 0 : _b.backfill) && !this.store.results.length && ((_c = params.pagination) === null || _c === void 0 ? void 0 : _c.page) > this.config.settings.infinite.backfill;
176
- dontBackfill = !((_d = this.config.settings.infinite) === null || _d === void 0 ? void 0 : _d.backfill) && !this.store.results.length && ((_e = params.pagination) === null || _e === void 0 ? void 0 : _e.page) > 1;
174
+ if ((_b = this.config.settings) === null || _b === void 0 ? void 0 : _b.infinite) {
175
+ preventBackfill = ((_c = this.config.settings.infinite) === null || _c === void 0 ? void 0 : _c.backfill) && !this.store.results.length && ((_d = params.pagination) === null || _d === void 0 ? void 0 : _d.page) > this.config.settings.infinite.backfill;
176
+ dontBackfill = !((_e = this.config.settings.infinite) === null || _e === void 0 ? void 0 : _e.backfill) && !this.store.results.length && ((_f = params.pagination) === null || _f === void 0 ? void 0 : _f.page) > 1;
177
177
  if (preventBackfill || dontBackfill) {
178
178
  this.storage.set('scrollMap', {});
179
179
  this.urlManager.set('page', 1).go();
@@ -183,50 +183,52 @@ var SearchController = /** @class */ (function (_super) {
183
183
  searchProfile = this.profiler.create({ type: 'event', name: 'search', context: params }).start();
184
184
  return [4 /*yield*/, this.client.search(params)];
185
185
  case 8:
186
- _a = _j.sent(), meta = _a[0], response = _a[1];
186
+ _a = _m.sent(), meta = _a[0], response = _a[1];
187
+ // @ts-ignore
187
188
  if (!response.meta) {
188
189
  /**
189
190
  * MockClient will overwrite the client search() method and use
190
191
  * SearchData to return mock data which already contains meta data
191
192
  */
193
+ // @ts-ignore
192
194
  response.meta = meta;
193
195
  }
194
- if (!(this.config.settings.infinite && ((_f = params.pagination) === null || _f === void 0 ? void 0 : _f.page) > 1)) return [3 /*break*/, 11];
195
- previousResults_1 = ((_g = this.store.data) === null || _g === void 0 ? void 0 : _g.results) || [];
196
- if (!(((_h = this.config.settings) === null || _h === void 0 ? void 0 : _h.infinite.backfill) && !previousResults_1.length)) return [3 /*break*/, 10];
196
+ if (!(((_g = this.config.settings) === null || _g === void 0 ? void 0 : _g.infinite) && ((_h = params.pagination) === null || _h === void 0 ? void 0 : _h.page) > 1)) return [3 /*break*/, 11];
197
+ previousResults_1 = ((_j = this.store.data) === null || _j === void 0 ? void 0 : _j.results) || [];
198
+ if (!(((_k = this.config.settings) === null || _k === void 0 ? void 0 : _k.infinite.backfill) && !previousResults_1.length)) return [3 /*break*/, 10];
197
199
  backfills = [];
198
- for (page = 1; page < params.pagination.page; page++) {
200
+ for (page = 1; page < ((_l = params.pagination) === null || _l === void 0 ? void 0 : _l.page); page++) {
199
201
  backfillParams = (0, deepmerge_1.default)(__assign({}, params), { pagination: { page: page } });
200
202
  backfills.push(this.client.search(backfillParams));
201
203
  }
202
204
  return [4 /*yield*/, Promise.all(backfills)];
203
205
  case 9:
204
- backfillResponses = _j.sent();
206
+ backfillResponses = _m.sent();
205
207
  backfillResponses.map(function (_a) {
206
208
  var meta = _a[0], data = _a[1];
207
209
  previousResults_1 = previousResults_1.concat(data.results);
208
210
  });
209
- _j.label = 10;
211
+ _m.label = 10;
210
212
  case 10:
211
213
  response.results = __spreadArray(__spreadArray([], previousResults_1, true), (response.results || []), true);
212
- _j.label = 11;
214
+ _m.label = 11;
213
215
  case 11:
214
216
  searchProfile.stop();
215
217
  this.log.profile(searchProfile);
216
218
  afterSearchProfile = this.profiler.create({ type: 'event', name: 'afterSearch', context: params }).start();
217
- _j.label = 12;
219
+ _m.label = 12;
218
220
  case 12:
219
- _j.trys.push([12, 14, , 15]);
221
+ _m.trys.push([12, 14, , 15]);
220
222
  return [4 /*yield*/, this.eventManager.fire('afterSearch', {
221
223
  controller: this,
222
224
  request: params,
223
225
  response: response,
224
226
  })];
225
227
  case 13:
226
- _j.sent();
228
+ _m.sent();
227
229
  return [3 /*break*/, 15];
228
230
  case 14:
229
- err_2 = _j.sent();
231
+ err_2 = _m.sent();
230
232
  if ((err_2 === null || err_2 === void 0 ? void 0 : err_2.message) == 'cancelled') {
231
233
  this.log.warn("'afterSearch' middleware cancelled");
232
234
  afterSearchProfile.stop();
@@ -241,21 +243,22 @@ var SearchController = /** @class */ (function (_super) {
241
243
  afterSearchProfile.stop();
242
244
  this.log.profile(afterSearchProfile);
243
245
  // update the store
246
+ // @ts-ignore
244
247
  this.store.update(response);
245
248
  afterStoreProfile = this.profiler.create({ type: 'event', name: 'afterStore', context: params }).start();
246
- _j.label = 16;
249
+ _m.label = 16;
247
250
  case 16:
248
- _j.trys.push([16, 18, , 19]);
251
+ _m.trys.push([16, 18, , 19]);
249
252
  return [4 /*yield*/, this.eventManager.fire('afterStore', {
250
253
  controller: this,
251
254
  request: params,
252
255
  response: response,
253
256
  })];
254
257
  case 17:
255
- _j.sent();
258
+ _m.sent();
256
259
  return [3 /*break*/, 19];
257
260
  case 18:
258
- err_3 = _j.sent();
261
+ err_3 = _m.sent();
259
262
  if ((err_3 === null || err_3 === void 0 ? void 0 : err_3.message) == 'cancelled') {
260
263
  this.log.warn("'afterStore' middleware cancelled");
261
264
  afterStoreProfile.stop();
@@ -271,7 +274,7 @@ var SearchController = /** @class */ (function (_super) {
271
274
  this.log.profile(afterStoreProfile);
272
275
  return [3 /*break*/, 21];
273
276
  case 20:
274
- err_4 = _j.sent();
277
+ err_4 = _m.sent();
275
278
  if (err_4) {
276
279
  switch (err_4) {
277
280
  case 429:
@@ -392,7 +395,7 @@ var SearchController = /** @class */ (function (_super) {
392
395
  Object.defineProperty(SearchController.prototype, "params", {
393
396
  get: function () {
394
397
  var _a, _b, _c, _d;
395
- var params = (0, deepmerge_1.default)(__assign({}, (0, getParams_1.getSearchParams)(this.urlManager.state)), this.config.globals);
398
+ var params = (0, deepmerge_1.default)(__assign({}, (0, getParams_1.getSearchParams)(this.urlManager.state)), this.config.globals || {});
396
399
  // redirect setting
397
400
  if (!((_b = (_a = this.config.settings) === null || _a === void 0 ? void 0 : _a.redirects) === null || _b === void 0 ? void 0 : _b.merchandising) || this.store.loaded) {
398
401
  params.search = params.search || {};
@@ -1,7 +1,7 @@
1
1
  import type { AbstractController } from './Abstract/AbstractController';
2
2
  import type { EventManager, Middleware, Next } from '@searchspring/snap-event-manager';
3
3
  import type { Client } from '@searchspring/snap-client';
4
- import type { AbstractStore, StoreConfig, SearchStoreConfig, FinderStoreConfig, AutocompleteStoreConfig, RecommendationStoreConfig } from '@searchspring/snap-store-mobx';
4
+ import type { SearchStore, AutocompleteStore, FinderStore, RecommendationStore, StoreConfig, SearchStoreConfig, FinderStoreConfig, AutocompleteStoreConfig, RecommendationStoreConfig } from '@searchspring/snap-store-mobx';
5
5
  import type { Tracker, ProductViewEvent } from '@searchspring/snap-tracker';
6
6
  import type { Profiler } from '@searchspring/snap-profiler';
7
7
  import type { UrlManager } from '@searchspring/snap-url-manager';
@@ -12,7 +12,7 @@ declare global {
12
12
  }
13
13
  }
14
14
  export declare type NextEvent = Next;
15
- export declare type PluginFunction = (cntrlr: AbstractController, ...args: any[]) => Promise<void>;
15
+ export declare type PluginFunction = (cntrlr: AbstractController, ...args: any) => Promise<void>;
16
16
  export declare type PluginGrouping = [func: PluginFunction, ...args: unknown[]];
17
17
  export declare type BeforeSearchObj = {
18
18
  controller: AbstractController;
@@ -35,7 +35,7 @@ export declare enum ControllerTypes {
35
35
  }
36
36
  export declare type ControllerServices = {
37
37
  client: Client;
38
- store: AbstractStore;
38
+ store: SearchStore | AutocompleteStore | FinderStore | RecommendationStore;
39
39
  urlManager: UrlManager;
40
40
  eventManager: EventManager;
41
41
  profiler: Profiler;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
- export declare function getSearchParams(state: any): Record<string, any>;
1
+ import type { ImmutableUrlState } from '@searchspring/snap-url-manager';
2
+ export declare function getSearchParams(state: ImmutableUrlState): Record<string, any>;
2
3
  //# sourceMappingURL=getParams.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getParams.d.ts","sourceRoot":"","sources":["../../../src/utils/getParams.ts"],"names":[],"mappings":"AAkCA,wBAAgB,eAAe,CAAC,KAAK,KAAA,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAgF1D"}
1
+ {"version":3,"file":"getParams.d.ts","sourceRoot":"","sources":["../../../src/utils/getParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAqCxE,wBAAgB,eAAe,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAgF7E"}
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // translate state to snAPI params
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.getSearchParams = void 0;
5
4
  function getSearchParams(state) {
@@ -1,5 +1,6 @@
1
1
  import { LogMode } from '@searchspring/snap-logger';
2
2
  import { DomTargeter } from '@searchspring/snap-toolbox';
3
+ import type { Client } from '@searchspring/snap-client';
3
4
  import type { AbstractStore } from '@searchspring/snap-store-mobx';
4
5
  import type { UrlManager } from '@searchspring/snap-url-manager';
5
6
  import type { EventManager, Middleware } from '@searchspring/snap-event-manager';
@@ -12,7 +13,7 @@ export declare abstract class AbstractController {
12
13
  id: string;
13
14
  type: string;
14
15
  config: ControllerConfig;
15
- client: any;
16
+ client: Client;
16
17
  store: AbstractStore;
17
18
  urlManager: UrlManager;
18
19
  eventManager: EventManager;
@@ -27,14 +28,14 @@ export declare abstract class AbstractController {
27
28
  private _environment;
28
29
  get initialized(): boolean;
29
30
  constructor(config: ControllerConfig, { client, store, urlManager, eventManager, profiler, logger, tracker }: ControllerServices, context?: ContextVariables);
30
- createTargeter(target: Target, onTarget: OnTarget, document?: Document): DomTargeter;
31
- addTargeter(target: DomTargeter): DomTargeter;
31
+ createTargeter(target: Target, onTarget: OnTarget, document?: Document): DomTargeter | undefined;
32
+ addTargeter(target: DomTargeter): DomTargeter | undefined;
32
33
  set environment(env: LogMode);
33
34
  get environment(): LogMode;
34
35
  init(): Promise<void>;
35
36
  retarget(): void;
36
37
  abstract search(): Promise<void>;
37
- plugin(func: (cntrlr: AbstractController, ...args: any[]) => Promise<void>, ...args: unknown[]): Promise<void>;
38
+ plugin(func: (cntrlr: AbstractController, ...args: any) => Promise<void>, ...args: unknown[]): Promise<void>;
38
39
  on<T>(event: string, ...func: Middleware<T>[]): void;
39
40
  use(attachments: Attachments): void;
40
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractController.d.ts","sourceRoot":"","sources":["../../../src/Abstract/AbstractController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAgB,MAAM,4BAA4B,CAAC;AAGvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGpG,8BAAsB,kBAAkB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,SAAc;IAClB,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,MAAC;IACP,KAAK,EAAE,aAAa,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,gBAAgB,CAAC;IAE1B,SAAS,EAAE;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC;KAC3B,CAAM;IAEP,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAsB;IAE1C,IAAI,WAAW,IAAI,OAAO,CAEzB;gBAGA,MAAM,EAAE,gBAAgB,EACxB,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,GAAE,gBAAqB;IA2ExB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,WAAW;IAIpF,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW;IASpD,IAAW,WAAW,CAAC,GAAG,EAAE,OAAO,EAKlC;IAED,IAAW,WAAW,IAAI,OAAO,CAEhC;IAEY,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA+C3B,QAAQ,IAAI,IAAI;aAMP,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAE1B,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAI,OAAA,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7G,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI;IAIpD,GAAG,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;CAoC1C"}
1
+ {"version":3,"file":"AbstractController.d.ts","sourceRoot":"","sources":["../../../src/Abstract/AbstractController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAgB,MAAM,4BAA4B,CAAC;AAEvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGpG,8BAAsB,kBAAkB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,SAAc;IAClB,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,gBAAgB,CAAC;IAE1B,SAAS,EAAE;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC;KAC3B,CAAM;IAEP,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAsB;IAE1C,IAAI,WAAW,IAAI,OAAO,CAEzB;gBAGA,MAAM,EAAE,gBAAgB,EACxB,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,GAAE,gBAAqB;IA2ExB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS;IAIhG,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS;IAShE,IAAW,WAAW,CAAC,GAAG,EAAE,OAAO,EAKlC;IAED,IAAW,WAAW,IAAI,OAAO,CAEhC;IAEY,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA+C3B,QAAQ,IAAI,IAAI;aAMP,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAE1B,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlH,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI;IAIpD,GAAG,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;CAoC1C"}
@@ -1,13 +1,14 @@
1
+ /// <reference types="node" />
1
2
  import { StorageStore } from '@searchspring/snap-store-mobx';
2
3
  import { AbstractController } from '../Abstract/AbstractController';
3
4
  import { ControllerTypes } from '../types';
4
- import type { AutocompleteStore } from '@searchspring/snap-store-mobx';
5
+ import { AutocompleteStore } from '@searchspring/snap-store-mobx';
5
6
  import type { AutocompleteControllerConfig, ControllerServices, ContextVariables } from '../types';
6
7
  import type { AutocompleteRequestModel } from '@searchspring/snapi-types';
7
8
  export declare const INPUT_DELAY = 200;
8
9
  declare type AutocompleteTrackMethods = {
9
10
  product: {
10
- click: (e: any, result: any) => void;
11
+ click: (e: MouseEvent, result: any) => void;
11
12
  };
12
13
  };
13
14
  export declare class AutocompleteController extends AbstractController {
@@ -22,12 +23,12 @@ export declare class AutocompleteController extends AbstractController {
22
23
  reset(): void;
23
24
  handlers: {
24
25
  input: {
25
- enterKey: (e: KeyboardEvent) => Promise<boolean>;
26
+ enterKey: (e: KeyboardEvent) => Promise<boolean | undefined>;
26
27
  escKey: (e: KeyboardEvent) => void;
27
28
  focus: (e: FocusEvent) => void;
28
- formSubmit: (e: any) => Promise<void>;
29
+ formSubmit: (e: React.FormEvent<HTMLInputElement>) => Promise<void>;
29
30
  keyUp: (e: KeyboardEvent) => void;
30
- timeoutDelay: any;
31
+ timeoutDelay: NodeJS.Timeout | undefined;
31
32
  };
32
33
  document: {
33
34
  click: (e: MouseEvent) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"AutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/Autocomplete/AutocompleteController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EACX,4BAA4B,EAI5B,kBAAkB,EAElB,gBAAgB,EAChB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAG1E,eAAO,MAAM,WAAW,MAAM,CAAC;AAoB/B,aAAK,wBAAwB,GAAG;IAC/B,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,KAAA,EAAE,MAAM,KAAA,KAAK,IAAI,CAAC;KAC3B,CAAC;CACF,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,kBAAkB;IACtD,IAAI,kBAAgC;IACpC,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,4BAA4B,CAAC;IACrC,OAAO,EAAE,YAAY,CAAC;gBAG5B,MAAM,EAAE,4BAA4B,EACpC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAoD3B,KAAK,EAAE,wBAAwB,CAO7B;IAEF,IAAI,MAAM,IAAI,wBAAwB,CA+BrC;IAEK,UAAU,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsChE,KAAK,IAAI,IAAI;IASb,QAAQ;;0BAEc,aAAa,KAAG,QAAQ,OAAO,CAAC;wBA6CxC,aAAa,KAAG,IAAI;uBAMrB,UAAU,KAAG,IAAI;oCAQL,QAAQ,IAAI,CAAC;uBAwCzB,aAAa,KAAG,IAAI;;;;uBA8CpB,UAAU,KAAG,IAAI;;MAS5B;IAEF,MAAM,IAAI,IAAI;IAYR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA2D3B,cAAc,QAAa,QAAQ,IAAI,CAAC,CAsBtC;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CA6G9B;CACF"}
1
+ {"version":3,"file":"AutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/Autocomplete/AutocompleteController.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EACX,4BAA4B,EAI5B,kBAAkB,EAElB,gBAAgB,EAChB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAG1E,eAAO,MAAM,WAAW,MAAM,CAAC;AAoB/B,aAAK,wBAAwB,GAAG;IAC/B,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;KAC5C,CAAC;CACF,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,kBAAkB;IACtD,IAAI,kBAAgC;IACnC,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,4BAA4B,CAAC;IACtC,OAAO,EAAE,YAAY,CAAC;gBAG5B,MAAM,EAAE,4BAA4B,EACpC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAoD3B,KAAK,EAAE,wBAAwB,CAO7B;IAEF,IAAI,MAAM,IAAI,wBAAwB,CA+BrC;IAEK,UAAU,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsChE,KAAK,IAAI,IAAI;IASb,QAAQ;;0BAEc,aAAa,KAAG,QAAQ,OAAO,GAAG,SAAS,CAAC;wBA6CpD,aAAa,KAAG,IAAI;uBAMrB,UAAU,KAAG,IAAI;4BAQN,MAAM,SAAS,CAAC,gBAAgB,CAAC,KAAG,QAAQ,IAAI,CAAC;uBAwC5D,aAAa,KAAG,IAAI;;;;uBA8CpB,UAAU,KAAG,IAAI;;MAS5B;IAEF,MAAM,IAAI,IAAI;IAYR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA2D3B,cAAc,QAAa,QAAQ,IAAI,CAAC,CAsBtC;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CAgH9B;CACF"}
@@ -52,10 +52,10 @@ export class AutocompleteController extends AbstractController {
52
52
  // use corrected query and originalQuery
53
53
  if (this.store.search.originalQuery) {
54
54
  input.value = this.store.search.query.string;
55
- actionUrl = actionUrl.set(PARAM_ORIGINAL_QUERY, this.store.search.originalQuery.string);
55
+ actionUrl = actionUrl?.set(PARAM_ORIGINAL_QUERY, this.store.search.originalQuery.string);
56
56
  }
57
57
  }
58
- actionUrl = actionUrl.set('query', input.value);
58
+ actionUrl = actionUrl?.set('query', input.value);
59
59
  // TODO expected spell correct behavior queryAssumption
60
60
  try {
61
61
  await this.eventManager.fire('beforeSubmit', {
@@ -73,7 +73,7 @@ export class AutocompleteController extends AbstractController {
73
73
  console.error(err);
74
74
  }
75
75
  }
76
- window.location.href = actionUrl.href;
76
+ window.location.href = actionUrl?.href || '';
77
77
  }
78
78
  },
79
79
  escKey: (e) => {
@@ -139,7 +139,7 @@ export class AutocompleteController extends AbstractController {
139
139
  return;
140
140
  }
141
141
  this.store.state.input = value;
142
- if (this.config.settings.syncInputs) {
142
+ if (this.config?.settings?.syncInputs) {
143
143
  const inputs = document.querySelectorAll(this.config.selector);
144
144
  inputs.forEach((input) => {
145
145
  input.value = value;
@@ -220,11 +220,13 @@ export class AutocompleteController extends AbstractController {
220
220
  }
221
221
  const searchProfile = this.profiler.create({ type: 'event', name: 'search', context: params }).start();
222
222
  const [meta, response] = await this.client.autocomplete(params);
223
+ // @ts-ignore
223
224
  if (!response.meta) {
224
225
  /**
225
226
  * MockClient will overwrite the client search() method and use
226
227
  * SearchData to return mock data which already contains meta data
227
228
  */
229
+ // @ts-ignore
228
230
  response.meta = meta;
229
231
  }
230
232
  searchProfile.stop();
@@ -251,6 +253,7 @@ export class AutocompleteController extends AbstractController {
251
253
  afterSearchProfile.stop();
252
254
  this.log.profile(afterSearchProfile);
253
255
  // update the store
256
+ // @ts-ignore
254
257
  this.store.update(response);
255
258
  const afterStoreProfile = this.profiler.create({ type: 'event', name: 'afterStore', context: params }).start();
256
259
  try {
@@ -433,7 +436,7 @@ export class AutocompleteController extends AbstractController {
433
436
  input.setAttribute('autocomplete', 'off');
434
437
  input.setAttribute(INPUT_ATTRIBUTE, '');
435
438
  input.addEventListener('keyup', this.handlers.input.keyUp);
436
- if (this.config.settings.initializeFromUrl && !input.value && this.store.state.input) {
439
+ if (this.config?.settings?.initializeFromUrl && !input.value && this.store.state.input) {
437
440
  input.value = this.store.state.input;
438
441
  }
439
442
  input.addEventListener('focus', this.handlers.input.focus);
@@ -461,7 +464,7 @@ export class AutocompleteController extends AbstractController {
461
464
  this.setFocused(input);
462
465
  }
463
466
  });
464
- if (this.config.settings?.trending?.limit > 0 && !this.store.trending?.length) {
467
+ if (this.config.settings?.trending?.limit && this.config.settings?.trending?.limit > 0 && !this.store.trending?.length) {
465
468
  this.searchTrending();
466
469
  }
467
470
  document.addEventListener('click', this.handlers.document.click);
@@ -1 +1 @@
1
- {"version":3,"file":"FinderController.d.ts","sourceRoot":"","sources":["../../../src/Finder/FinderController.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAmC,kBAAkB,EAAa,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAiBzI,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC9B,KAAK,EAAE,WAAW,CAAC;IAC1B,MAAM,EAAE,sBAAsB,CAAC;gBAG9B,MAAM,EAAE,sBAAsB,EAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IA2C3B,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAchC;IAED,IAAI,QAAa,QAAQ,IAAI,CAAC,CAe5B;IAEF,KAAK,QAAO,IAAI,CAId;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CAiH9B;CACF"}
1
+ {"version":3,"file":"FinderController.d.ts","sourceRoot":"","sources":["../../../src/Finder/FinderController.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAmC,kBAAkB,EAAa,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAiBzI,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,sBAAsB,CAAC;gBAGtC,MAAM,EAAE,sBAAsB,EAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IA2C3B,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAchC;IAED,IAAI,QAAa,QAAQ,IAAI,CAAC,CAe5B;IAEF,KAAK,QAAO,IAAI,CAId;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CAoH9B;CACF"}
@@ -69,12 +69,14 @@ export class FinderController extends AbstractController {
69
69
  }
70
70
  }
71
71
  const searchProfile = this.profiler.create({ type: 'event', name: 'search', context: params }).start();
72
- const [meta, response] = await this.client.search(params);
72
+ const [meta, response] = await this.client.finder(params);
73
+ // @ts-ignore
73
74
  if (!response.meta) {
74
75
  /**
75
76
  * MockClient will overwrite the client search() method and use
76
77
  * SearchData to return mock data which already contains meta data
77
78
  */
79
+ // @ts-ignore
78
80
  response.meta = meta;
79
81
  }
80
82
  searchProfile.stop();
@@ -101,6 +103,7 @@ export class FinderController extends AbstractController {
101
103
  afterSearchProfile.stop();
102
104
  this.log.profile(afterSearchProfile);
103
105
  // update the store
106
+ // @ts-ignore
104
107
  this.store.update(response);
105
108
  const afterStoreProfile = this.profiler.create({ type: 'event', name: 'afterStore', context: params }).start();
106
109
  try {
@@ -1,31 +1,45 @@
1
1
  import { AbstractController } from '../Abstract/AbstractController';
2
2
  import { ControllerTypes } from '../types';
3
- import type { BeaconEvent } from '@searchspring/snap-tracker';
3
+ import { BeaconEvent } from '@searchspring/snap-tracker';
4
4
  import type { RecommendationStore } from '@searchspring/snap-store-mobx';
5
5
  import type { RecommendationControllerConfig, ControllerServices, ContextVariables } from '../types';
6
6
  declare type RecommendationTrackMethods = {
7
7
  product: {
8
- click: (e: any, result: any) => BeaconEvent;
9
- render: (result: any) => BeaconEvent;
10
- impression: (result: any) => BeaconEvent;
8
+ click: (e: MouseEvent, result: any) => BeaconEvent | undefined;
9
+ render: (result: any) => BeaconEvent | undefined;
10
+ impression: (result: any) => BeaconEvent | undefined;
11
11
  };
12
- click: (e: any) => BeaconEvent;
13
- impression: () => BeaconEvent;
14
- render: () => BeaconEvent;
12
+ click: (e: MouseEvent) => BeaconEvent | undefined;
13
+ impression: () => BeaconEvent | undefined;
14
+ render: () => BeaconEvent | undefined;
15
+ };
16
+ declare type RecommendCombinedRequestModel = {
17
+ tag: string;
18
+ siteId: string;
19
+ product?: string;
20
+ shopper?: string;
21
+ categories?: string[];
22
+ cart?: string[];
23
+ lastViewed?: string[];
24
+ test?: boolean;
25
+ branch?: string;
15
26
  };
16
27
  export declare class RecommendationController extends AbstractController {
17
28
  type: ControllerTypes;
18
29
  store: RecommendationStore;
19
30
  config: RecommendationControllerConfig;
20
31
  events: {
21
- click: any;
22
- impression: any;
23
- render: any;
24
- product: {};
32
+ click?: BeaconEvent;
33
+ impression?: BeaconEvent;
34
+ render?: BeaconEvent;
35
+ product?: Record<string, {
36
+ impression?: BeaconEvent;
37
+ render?: BeaconEvent;
38
+ }>;
25
39
  };
26
40
  constructor(config: RecommendationControllerConfig, { client, store, urlManager, eventManager, profiler, logger, tracker }: ControllerServices, context?: ContextVariables);
27
41
  track: RecommendationTrackMethods;
28
- get params(): Record<string, any>;
42
+ get params(): RecommendCombinedRequestModel;
29
43
  search: () => Promise<void>;
30
44
  }
31
45
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"RecommendationController.d.ts","sourceRoot":"","sources":["../../../src/Recommendation/RecommendationController.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,8BAA8B,EAAkC,kBAAkB,EAAa,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEhJ,aAAK,0BAA0B,GAAG;IACjC,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,KAAA,EAAE,MAAM,KAAA,KAAK,WAAW,CAAC;QAClC,MAAM,EAAE,CAAC,MAAM,KAAA,KAAK,WAAW,CAAC;QAChC,UAAU,EAAE,CAAC,MAAM,KAAA,KAAK,WAAW,CAAC;KACpC,CAAC;IACF,KAAK,EAAE,CAAC,CAAC,KAAA,KAAK,WAAW,CAAC;IAC1B,UAAU,EAAE,MAAM,WAAW,CAAC;IAC9B,MAAM,EAAE,MAAM,WAAW,CAAC;CAC1B,CAAC;AAUF,qBAAa,wBAAyB,SAAQ,kBAAkB;IACxD,IAAI,kBAAkC;IACtC,KAAK,EAAE,mBAAmB,CAAC;IAClC,MAAM,EAAE,8BAA8B,CAAC;IACvC,MAAM;;;;;MAKJ;gBAGD,MAAM,EAAE,8BAA8B,EACtC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IA8B3B,KAAK,EAAE,0BAA0B,CAoK/B;IAEF,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAyBhC;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CAqG9B;CACF"}
1
+ {"version":3,"file":"RecommendationController.d.ts","sourceRoot":"","sources":["../../../src/Recommendation/RecommendationController.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,8BAA8B,EAAkC,kBAAkB,EAAa,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEhJ,aAAK,0BAA0B,GAAG;IACjC,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,WAAW,GAAG,SAAS,CAAC;QAC/D,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,WAAW,GAAG,SAAS,CAAC;QACjD,UAAU,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,WAAW,GAAG,SAAS,CAAC;KACrD,CAAC;IACF,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,WAAW,GAAG,SAAS,CAAC;IAClD,UAAU,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;IAC1C,MAAM,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;CACtC,CAAC;AAEF,aAAK,6BAA6B,GAAG;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAUF,qBAAa,wBAAyB,SAAQ,kBAAkB;IACxD,IAAI,kBAAkC;IACrC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,EAAE,8BAA8B,CAAC;IAE/C,MAAM,EAAE;QACP,KAAK,CAAC,EAAE,WAAW,CAAC;QACpB,UAAU,CAAC,EAAE,WAAW,CAAC;QACzB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,UAAU,CAAC,EAAE,WAAW,CAAC;YAAC,MAAM,CAAC,EAAE,WAAW,CAAA;SAAE,CAAC,CAAC;KAC7E,CAKC;gBAGD,MAAM,EAAE,8BAA8B,EACtC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IA8B3B,KAAK,EAAE,0BAA0B,CAqK/B;IAEF,IAAI,MAAM,IAAI,6BAA6B,CAyB1C;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CAqG9B;CACF"}
@@ -16,9 +16,9 @@ export class RecommendationController extends AbstractController {
16
16
  super(config, { client, store, urlManager, eventManager, profiler, logger, tracker }, context);
17
17
  this.type = ControllerTypes.recommendation;
18
18
  this.events = {
19
- click: null,
20
- impression: null,
21
- render: null,
19
+ click: undefined,
20
+ impression: undefined,
21
+ render: undefined,
22
22
  product: {},
23
23
  };
24
24
  this.track = {
@@ -29,7 +29,7 @@ export class RecommendationController extends AbstractController {
29
29
  const payload = {
30
30
  type: BeaconType.PROFILE_PRODUCT_CLICK,
31
31
  category: BeaconCategory.RECOMMENDATIONS,
32
- context: this.config.globals.siteId ? { website: { trackingCode: this.config.globals.siteId } } : null,
32
+ context: this.config.globals.siteId ? { website: { trackingCode: this.config.globals.siteId } } : undefined,
33
33
  event: {
34
34
  context: {
35
35
  action: 'navigate',
@@ -52,12 +52,12 @@ export class RecommendationController extends AbstractController {
52
52
  return event;
53
53
  },
54
54
  impression: (result) => {
55
- if (!this.store.profile.tag || !result || !this.events.impression || this.events.product[result.id]?.impression)
55
+ if (!this.store.profile.tag || !result || !this.events.impression || (this.events.product && this.events.product[result.id]?.impression))
56
56
  return;
57
57
  const payload = {
58
58
  type: BeaconType.PROFILE_PRODUCT_IMPRESSION,
59
59
  category: BeaconCategory.RECOMMENDATIONS,
60
- context: this.config.globals.siteId ? { website: { trackingCode: this.config.globals.siteId } } : null,
60
+ context: this.config.globals.siteId ? { website: { trackingCode: this.config.globals.siteId } } : undefined,
61
61
  event: {
62
62
  context: {
63
63
  placement: this.store.profile.placement,
@@ -85,7 +85,7 @@ export class RecommendationController extends AbstractController {
85
85
  const payload = {
86
86
  type: BeaconType.PROFILE_PRODUCT_RENDER,
87
87
  category: BeaconCategory.RECOMMENDATIONS,
88
- context: this.config.globals.siteId ? { website: { trackingCode: this.config.globals.siteId } } : null,
88
+ context: this.config.globals.siteId ? { website: { trackingCode: this.config.globals.siteId } } : undefined,
89
89
  event: {
90
90
  context: {
91
91
  placement: this.store.profile.placement,
@@ -114,7 +114,7 @@ export class RecommendationController extends AbstractController {
114
114
  const event = this.tracker.track.event({
115
115
  type: BeaconType.PROFILE_CLICK,
116
116
  category: BeaconCategory.RECOMMENDATIONS,
117
- context: this.config.globals.siteId ? { website: { trackingCode: this.config.globals.siteId } } : null,
117
+ context: this.config.globals.siteId ? { website: { trackingCode: this.config.globals.siteId } } : undefined,
118
118
  event: {
119
119
  context: {
120
120
  action: 'navigate',
@@ -140,7 +140,7 @@ export class RecommendationController extends AbstractController {
140
140
  const event = this.tracker.track.event({
141
141
  type: BeaconType.PROFILE_IMPRESSION,
142
142
  category: BeaconCategory.RECOMMENDATIONS,
143
- context: this.config.globals.siteId ? { website: { trackingCode: this.config.globals.siteId } } : null,
143
+ context: this.config.globals.siteId ? { website: { trackingCode: this.config.globals.siteId } } : undefined,
144
144
  event: {
145
145
  context: {
146
146
  placement: this.store.profile.placement,
@@ -165,7 +165,7 @@ export class RecommendationController extends AbstractController {
165
165
  const event = this.tracker.track.event({
166
166
  type: BeaconType.PROFILE_RENDER,
167
167
  category: BeaconCategory.RECOMMENDATIONS,
168
- context: this.config.globals.siteId ? { website: { trackingCode: this.config.globals.siteId } } : null,
168
+ context: this.config.globals.siteId ? { website: { trackingCode: this.config.globals.siteId } } : undefined,
169
169
  event: {
170
170
  context: {
171
171
  placement: this.store.profile.placement,
@@ -7,7 +7,7 @@ import type { SearchControllerConfig, ControllerServices, ContextVariables } fro
7
7
  import type { SearchRequestModel } from '@searchspring/snapi-types';
8
8
  declare type SearchTrackMethods = {
9
9
  product: {
10
- click: (e: any, result: any) => BeaconEvent;
10
+ click: (e: MouseEvent, result: any) => BeaconEvent | undefined;
11
11
  };
12
12
  };
13
13
  export declare class SearchController extends AbstractController {
@@ -1 +1 @@
1
- {"version":3,"file":"SearchController.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EACX,sBAAsB,EAItB,kBAAkB,EAElB,gBAAgB,EAChB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,kBAAkB,EAAgD,MAAM,2BAA2B,CAAC;AAoBlH,aAAK,kBAAkB,GAAG;IACzB,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,KAAA,EAAE,MAAM,KAAA,KAAK,WAAW,CAAC;KAClC,CAAC;CACF,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC9B,KAAK,EAAE,WAAW,CAAC;IAC1B,MAAM,EAAE,sBAAsB,CAAC;IAC/B,OAAO,EAAE,YAAY,CAAC;gBAGrB,MAAM,EAAE,sBAAsB,EAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAkF3B,KAAK,EAAE,kBAAkB,CA0BvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAsC/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CAuJ9B;CACF"}
1
+ {"version":3,"file":"SearchController.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EACX,sBAAsB,EAItB,kBAAkB,EAElB,gBAAgB,EAChB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,kBAAkB,EAAgD,MAAM,2BAA2B,CAAC;AAoBlH,aAAK,kBAAkB,GAAG;IACzB,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,WAAW,GAAG,SAAS,CAAC;KAC/D,CAAC;CACF,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,sBAAsB,CAAC;IACvC,OAAO,EAAE,YAAY,CAAC;gBAGrB,MAAM,EAAE,sBAAsB,EAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAkF3B,KAAK,EAAE,kBAAkB,CA0BvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAsC/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA0J9B;CACF"}
@@ -27,7 +27,7 @@ export class SearchController extends AbstractController {
27
27
  product: {
28
28
  click: (e, result) => {
29
29
  // store scroll position
30
- if (this.config.settings.infinite) {
30
+ if (this.config.settings?.infinite) {
31
31
  const stringyParams = this.storage.get('lastStringyParams');
32
32
  const scrollMap = {};
33
33
  scrollMap[stringyParams] = window.scrollY;
@@ -75,7 +75,7 @@ export class SearchController extends AbstractController {
75
75
  // no param change - not searching
76
76
  return;
77
77
  }
78
- if (this.config.settings.infinite) {
78
+ if (this.config.settings?.infinite) {
79
79
  // TODO: refactor this
80
80
  const preventBackfill = this.config.settings.infinite?.backfill && !this.store.results.length && params.pagination?.page > this.config.settings.infinite.backfill;
81
81
  const dontBackfill = !this.config.settings.infinite?.backfill && !this.store.results.length && params.pagination?.page > 1;
@@ -87,22 +87,24 @@ export class SearchController extends AbstractController {
87
87
  }
88
88
  const searchProfile = this.profiler.create({ type: 'event', name: 'search', context: params }).start();
89
89
  const [meta, response] = await this.client.search(params);
90
+ // @ts-ignore
90
91
  if (!response.meta) {
91
92
  /**
92
93
  * MockClient will overwrite the client search() method and use
93
94
  * SearchData to return mock data which already contains meta data
94
95
  */
96
+ // @ts-ignore
95
97
  response.meta = meta;
96
98
  }
97
99
  // infinite functionality
98
100
  // if params.page > 1 and infinite setting exists we should append results
99
- if (this.config.settings.infinite && params.pagination?.page > 1) {
101
+ if (this.config.settings?.infinite && params.pagination?.page > 1) {
100
102
  // if no results fetch results...
101
103
  let previousResults = this.store.data?.results || [];
102
104
  if (this.config.settings?.infinite.backfill && !previousResults.length) {
103
105
  // figure out how many pages of results to backfill and wait on all responses
104
106
  const backfills = [];
105
- for (let page = 1; page < params.pagination.page; page++) {
107
+ for (let page = 1; page < params.pagination?.page; page++) {
106
108
  const backfillParams = deepmerge({ ...params }, { pagination: { page } });
107
109
  backfills.push(this.client.search(backfillParams));
108
110
  }
@@ -137,6 +139,7 @@ export class SearchController extends AbstractController {
137
139
  afterSearchProfile.stop();
138
140
  this.log.profile(afterSearchProfile);
139
141
  // update the store
142
+ // @ts-ignore
140
143
  this.store.update(response);
141
144
  const afterStoreProfile = this.profiler.create({ type: 'event', name: 'afterStore', context: params }).start();
142
145
  try {
@@ -250,7 +253,7 @@ export class SearchController extends AbstractController {
250
253
  this.use(this.config);
251
254
  }
252
255
  get params() {
253
- const params = deepmerge({ ...getSearchParams(this.urlManager.state) }, this.config.globals);
256
+ const params = deepmerge({ ...getSearchParams(this.urlManager.state) }, this.config.globals || {});
254
257
  // redirect setting
255
258
  if (!this.config.settings?.redirects?.merchandising || this.store.loaded) {
256
259
  params.search = params.search || {};
@@ -1,7 +1,7 @@
1
1
  import type { AbstractController } from './Abstract/AbstractController';
2
2
  import type { EventManager, Middleware, Next } from '@searchspring/snap-event-manager';
3
3
  import type { Client } from '@searchspring/snap-client';
4
- import type { AbstractStore, StoreConfig, SearchStoreConfig, FinderStoreConfig, AutocompleteStoreConfig, RecommendationStoreConfig } from '@searchspring/snap-store-mobx';
4
+ import type { SearchStore, AutocompleteStore, FinderStore, RecommendationStore, StoreConfig, SearchStoreConfig, FinderStoreConfig, AutocompleteStoreConfig, RecommendationStoreConfig } from '@searchspring/snap-store-mobx';
5
5
  import type { Tracker, ProductViewEvent } from '@searchspring/snap-tracker';
6
6
  import type { Profiler } from '@searchspring/snap-profiler';
7
7
  import type { UrlManager } from '@searchspring/snap-url-manager';
@@ -12,7 +12,7 @@ declare global {
12
12
  }
13
13
  }
14
14
  export declare type NextEvent = Next;
15
- export declare type PluginFunction = (cntrlr: AbstractController, ...args: any[]) => Promise<void>;
15
+ export declare type PluginFunction = (cntrlr: AbstractController, ...args: any) => Promise<void>;
16
16
  export declare type PluginGrouping = [func: PluginFunction, ...args: unknown[]];
17
17
  export declare type BeforeSearchObj = {
18
18
  controller: AbstractController;
@@ -35,7 +35,7 @@ export declare enum ControllerTypes {
35
35
  }
36
36
  export declare type ControllerServices = {
37
37
  client: Client;
38
- store: AbstractStore;
38
+ store: SearchStore | AutocompleteStore | FinderStore | RecommendationStore;
39
39
  urlManager: UrlManager;
40
40
  eventManager: EventManager;
41
41
  profiler: Profiler;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
- export declare function getSearchParams(state: any): Record<string, any>;
1
+ import type { ImmutableUrlState } from '@searchspring/snap-url-manager';
2
+ export declare function getSearchParams(state: ImmutableUrlState): Record<string, any>;
2
3
  //# sourceMappingURL=getParams.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getParams.d.ts","sourceRoot":"","sources":["../../../src/utils/getParams.ts"],"names":[],"mappings":"AAkCA,wBAAgB,eAAe,CAAC,KAAK,KAAA,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAgF1D"}
1
+ {"version":3,"file":"getParams.d.ts","sourceRoot":"","sources":["../../../src/utils/getParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAqCxE,wBAAgB,eAAe,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAgF7E"}
@@ -1,4 +1,3 @@
1
- // translate state to snAPI params
2
1
  export function getSearchParams(state) {
3
2
  const params = {};
4
3
  if (state.tag) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@searchspring/snap-controller",
3
- "version": "0.27.4",
3
+ "version": "0.27.7",
4
4
  "description": "Snap Controllers",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -20,21 +20,21 @@
20
20
  "test:watch": "jest --watch"
21
21
  },
22
22
  "dependencies": {
23
- "@searchspring/snap-toolbox": "^0.27.4",
23
+ "@searchspring/snap-toolbox": "^0.27.7",
24
24
  "deepmerge": "^4.2.2"
25
25
  },
26
26
  "devDependencies": {
27
- "@searchspring/snap-client": "^0.27.4",
28
- "@searchspring/snap-event-manager": "^0.27.4",
29
- "@searchspring/snap-logger": "^0.27.4",
30
- "@searchspring/snap-profiler": "^0.27.4",
31
- "@searchspring/snap-store-mobx": "^0.27.4",
32
- "@searchspring/snap-tracker": "^0.27.4",
33
- "@searchspring/snap-url-manager": "^0.27.4"
27
+ "@searchspring/snap-client": "^0.27.7",
28
+ "@searchspring/snap-event-manager": "^0.27.7",
29
+ "@searchspring/snap-logger": "^0.27.7",
30
+ "@searchspring/snap-profiler": "^0.27.7",
31
+ "@searchspring/snap-store-mobx": "^0.27.7",
32
+ "@searchspring/snap-tracker": "^0.27.7",
33
+ "@searchspring/snap-url-manager": "^0.27.7"
34
34
  },
35
35
  "sideEffects": false,
36
36
  "files": [
37
37
  "dist/**/*"
38
38
  ],
39
- "gitHead": "e2799de1cedb8f57760986acbc40ad29c1a5d9b1"
39
+ "gitHead": "e926b49d646627752cb9a63a71709b3ee0ba892a"
40
40
  }