@sitecore-cloudsdk/search 0.5.0-rc.0 → 0.5.1-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/dist/cjs/package.json +4 -4
  2. package/dist/cjs/src/lib/consts.d.ts +1 -0
  3. package/dist/cjs/src/lib/consts.js +2 -1
  4. package/dist/cjs/src/lib/events/base-widget-event.d.ts +38 -0
  5. package/dist/cjs/src/lib/events/base-widget-event.js +48 -0
  6. package/dist/cjs/src/lib/events/entity-view-event.d.ts +8 -8
  7. package/dist/cjs/src/lib/events/entity-view-event.js +10 -20
  8. package/dist/cjs/src/lib/events/interfaces.d.ts +20 -40
  9. package/dist/cjs/src/lib/events/widget-facet-click-event.d.ts +17 -8
  10. package/dist/cjs/src/lib/events/widget-facet-click-event.js +19 -20
  11. package/dist/cjs/src/lib/events/widget-item-click-event.d.ts +7 -8
  12. package/dist/cjs/src/lib/events/widget-item-click-event.js +9 -20
  13. package/dist/cjs/src/lib/events/widget-navigation-click-event.d.ts +7 -8
  14. package/dist/cjs/src/lib/events/widget-navigation-click-event.js +9 -20
  15. package/dist/cjs/src/lib/events/widget-suggestion-click-event.d.ts +15 -8
  16. package/dist/cjs/src/lib/events/widget-suggestion-click-event.js +17 -20
  17. package/dist/cjs/src/lib/events/widget-view-event.d.ts +15 -8
  18. package/dist/cjs/src/lib/events/widget-view-event.js +17 -20
  19. package/dist/cjs/src/lib/initializer/browser/initializer.d.ts +6 -0
  20. package/dist/cjs/src/lib/initializer/browser/initializer.js +7 -0
  21. package/dist/cjs/src/lib/initializer/server/initializer.d.ts +4 -0
  22. package/dist/cjs/src/lib/initializer/server/initializer.js +4 -0
  23. package/dist/cjs/src/lib/request-entities/context/context.d.ts +24 -24
  24. package/dist/cjs/src/lib/request-entities/context/context.js +24 -24
  25. package/dist/cjs/src/lib/request-entities/filters/base-filter.d.ts +1 -1
  26. package/dist/cjs/src/lib/request-entities/filters/base-filter.js +1 -1
  27. package/dist/cjs/src/lib/request-entities/filters/comparison-filter.d.ts +2 -2
  28. package/dist/cjs/src/lib/request-entities/filters/comparison-filter.js +2 -2
  29. package/dist/cjs/src/lib/request-entities/filters/facet/comparison-facet-filter.d.ts +2 -2
  30. package/dist/cjs/src/lib/request-entities/filters/facet/comparison-facet-filter.js +2 -2
  31. package/dist/cjs/src/lib/request-entities/filters/facet/list-facet-filter.d.ts +3 -3
  32. package/dist/cjs/src/lib/request-entities/filters/facet/list-facet-filter.js +3 -3
  33. package/dist/cjs/src/lib/request-entities/filters/facet/logical-facet-filter.d.ts +3 -3
  34. package/dist/cjs/src/lib/request-entities/filters/facet/logical-facet-filter.js +3 -3
  35. package/dist/cjs/src/lib/request-entities/filters/facet/not-facet-filter.d.ts +7 -0
  36. package/dist/cjs/src/lib/request-entities/filters/facet/not-facet-filter.js +7 -0
  37. package/dist/cjs/src/lib/request-entities/filters/geo-filter.d.ts +7 -2
  38. package/dist/cjs/src/lib/request-entities/filters/geo-filter.js +7 -2
  39. package/dist/cjs/src/lib/request-entities/filters/geo-within-filter.d.ts +8 -2
  40. package/dist/cjs/src/lib/request-entities/filters/geo-within-filter.js +8 -2
  41. package/dist/cjs/src/lib/request-entities/filters/list-filter.d.ts +3 -3
  42. package/dist/cjs/src/lib/request-entities/filters/list-filter.js +3 -3
  43. package/dist/cjs/src/lib/request-entities/filters/logical-filter.d.ts +3 -2
  44. package/dist/cjs/src/lib/request-entities/filters/logical-filter.js +3 -2
  45. package/dist/cjs/src/lib/request-entities/widgets/interfaces.d.ts +2 -0
  46. package/dist/cjs/src/lib/request-entities/widgets/questions-answers-widget-item.d.ts +22 -6
  47. package/dist/cjs/src/lib/request-entities/widgets/questions-answers-widget-item.js +22 -6
  48. package/dist/cjs/src/lib/request-entities/widgets/recommendation-widget-item.d.ts +10 -4
  49. package/dist/cjs/src/lib/request-entities/widgets/recommendation-widget-item.js +10 -4
  50. package/dist/cjs/src/lib/request-entities/widgets/results-widget-item.d.ts +11 -5
  51. package/dist/cjs/src/lib/request-entities/widgets/results-widget-item.js +11 -5
  52. package/dist/cjs/src/lib/request-entities/widgets/rule-widget-item.d.ts +35 -0
  53. package/dist/cjs/src/lib/request-entities/widgets/rule-widget-item.js +35 -0
  54. package/dist/cjs/src/lib/request-entities/widgets/search-widget-item.d.ts +70 -28
  55. package/dist/cjs/src/lib/request-entities/widgets/search-widget-item.js +77 -28
  56. package/dist/cjs/src/lib/request-entities/widgets/utils.d.ts +1 -1
  57. package/dist/cjs/src/lib/request-entities/widgets/utils.js +1 -1
  58. package/dist/cjs/src/lib/request-entities/widgets/widget-item.d.ts +20 -5
  59. package/dist/cjs/src/lib/request-entities/widgets/widget-item.js +20 -5
  60. package/dist/cjs/src/lib/request-entities/widgets/widget-request-data.d.ts +6 -1
  61. package/dist/cjs/src/lib/request-entities/widgets/widget-request-data.js +6 -1
  62. package/dist/cjs/src/lib/requests/browser/get-page-widget-data.d.ts +5 -4
  63. package/dist/cjs/src/lib/requests/browser/get-page-widget-data.js +5 -0
  64. package/dist/cjs/src/lib/requests/browser/get-widget-data.d.ts +1 -1
  65. package/dist/cjs/src/lib/requests/browser/get-widget-data.js +1 -1
  66. package/dist/cjs/src/lib/requests/post-request.d.ts +10 -6
  67. package/dist/cjs/src/lib/requests/post-request.js +2 -1
  68. package/dist/cjs/src/lib/requests/server/entity-view-event-server.d.ts +1 -1
  69. package/dist/cjs/src/lib/requests/server/entity-view-event-server.js +1 -1
  70. package/dist/cjs/src/lib/requests/server/get-page-widget-data-server.d.ts +3 -3
  71. package/dist/cjs/src/lib/requests/server/get-page-widget-data-server.js +5 -0
  72. package/dist/cjs/src/lib/requests/server/get-widget-data-server.d.ts +1 -1
  73. package/dist/cjs/src/lib/requests/server/get-widget-data-server.js +1 -1
  74. package/dist/cjs/src/lib/requests/server/widget-facet-click-event-server.d.ts +1 -1
  75. package/dist/cjs/src/lib/requests/server/widget-facet-click-event-server.js +1 -1
  76. package/dist/cjs/src/lib/requests/server/widget-item-click-event-server.d.ts +1 -1
  77. package/dist/cjs/src/lib/requests/server/widget-item-click-event-server.js +1 -1
  78. package/dist/cjs/src/lib/requests/server/widget-navigation-click-event-server.d.ts +1 -1
  79. package/dist/cjs/src/lib/requests/server/widget-navigation-click-event-server.js +1 -1
  80. package/dist/cjs/src/lib/requests/server/widget-suggestion-click-event-server.d.ts +1 -1
  81. package/dist/cjs/src/lib/requests/server/widget-suggestion-click-event-server.js +1 -1
  82. package/dist/cjs/src/lib/requests/server/widget-view-event-server.d.ts +1 -1
  83. package/dist/cjs/src/lib/requests/server/widget-view-event-server.js +1 -1
  84. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  85. package/dist/esm/package.json +4 -4
  86. package/dist/esm/src/lib/consts.d.ts +1 -0
  87. package/dist/esm/src/lib/consts.js +1 -0
  88. package/dist/esm/src/lib/events/base-widget-event.d.ts +38 -0
  89. package/dist/esm/src/lib/events/base-widget-event.js +44 -0
  90. package/dist/esm/src/lib/events/entity-view-event.d.ts +8 -8
  91. package/dist/esm/src/lib/events/entity-view-event.js +10 -20
  92. package/dist/esm/src/lib/events/interfaces.d.ts +20 -40
  93. package/dist/esm/src/lib/events/widget-facet-click-event.d.ts +17 -8
  94. package/dist/esm/src/lib/events/widget-facet-click-event.js +19 -20
  95. package/dist/esm/src/lib/events/widget-item-click-event.d.ts +7 -8
  96. package/dist/esm/src/lib/events/widget-item-click-event.js +9 -20
  97. package/dist/esm/src/lib/events/widget-navigation-click-event.d.ts +7 -8
  98. package/dist/esm/src/lib/events/widget-navigation-click-event.js +9 -20
  99. package/dist/esm/src/lib/events/widget-suggestion-click-event.d.ts +15 -8
  100. package/dist/esm/src/lib/events/widget-suggestion-click-event.js +17 -20
  101. package/dist/esm/src/lib/events/widget-view-event.d.ts +15 -8
  102. package/dist/esm/src/lib/events/widget-view-event.js +17 -20
  103. package/dist/esm/src/lib/initializer/browser/initializer.d.ts +6 -0
  104. package/dist/esm/src/lib/initializer/browser/initializer.js +8 -1
  105. package/dist/esm/src/lib/initializer/server/initializer.d.ts +4 -0
  106. package/dist/esm/src/lib/initializer/server/initializer.js +4 -0
  107. package/dist/esm/src/lib/request-entities/context/context.d.ts +24 -24
  108. package/dist/esm/src/lib/request-entities/context/context.js +24 -24
  109. package/dist/esm/src/lib/request-entities/filters/base-filter.d.ts +1 -1
  110. package/dist/esm/src/lib/request-entities/filters/base-filter.js +1 -1
  111. package/dist/esm/src/lib/request-entities/filters/comparison-filter.d.ts +2 -2
  112. package/dist/esm/src/lib/request-entities/filters/comparison-filter.js +2 -2
  113. package/dist/esm/src/lib/request-entities/filters/facet/comparison-facet-filter.d.ts +2 -2
  114. package/dist/esm/src/lib/request-entities/filters/facet/comparison-facet-filter.js +2 -2
  115. package/dist/esm/src/lib/request-entities/filters/facet/list-facet-filter.d.ts +3 -3
  116. package/dist/esm/src/lib/request-entities/filters/facet/list-facet-filter.js +3 -3
  117. package/dist/esm/src/lib/request-entities/filters/facet/logical-facet-filter.d.ts +3 -3
  118. package/dist/esm/src/lib/request-entities/filters/facet/logical-facet-filter.js +3 -3
  119. package/dist/esm/src/lib/request-entities/filters/facet/not-facet-filter.d.ts +7 -0
  120. package/dist/esm/src/lib/request-entities/filters/facet/not-facet-filter.js +7 -0
  121. package/dist/esm/src/lib/request-entities/filters/geo-filter.d.ts +7 -2
  122. package/dist/esm/src/lib/request-entities/filters/geo-filter.js +7 -2
  123. package/dist/esm/src/lib/request-entities/filters/geo-within-filter.d.ts +8 -2
  124. package/dist/esm/src/lib/request-entities/filters/geo-within-filter.js +8 -2
  125. package/dist/esm/src/lib/request-entities/filters/list-filter.d.ts +3 -3
  126. package/dist/esm/src/lib/request-entities/filters/list-filter.js +3 -3
  127. package/dist/esm/src/lib/request-entities/filters/logical-filter.d.ts +3 -2
  128. package/dist/esm/src/lib/request-entities/filters/logical-filter.js +3 -2
  129. package/dist/esm/src/lib/request-entities/widgets/interfaces.d.ts +2 -0
  130. package/dist/esm/src/lib/request-entities/widgets/questions-answers-widget-item.d.ts +22 -6
  131. package/dist/esm/src/lib/request-entities/widgets/questions-answers-widget-item.js +22 -6
  132. package/dist/esm/src/lib/request-entities/widgets/recommendation-widget-item.d.ts +10 -4
  133. package/dist/esm/src/lib/request-entities/widgets/recommendation-widget-item.js +10 -4
  134. package/dist/esm/src/lib/request-entities/widgets/results-widget-item.d.ts +11 -5
  135. package/dist/esm/src/lib/request-entities/widgets/results-widget-item.js +11 -5
  136. package/dist/esm/src/lib/request-entities/widgets/rule-widget-item.d.ts +35 -0
  137. package/dist/esm/src/lib/request-entities/widgets/rule-widget-item.js +35 -0
  138. package/dist/esm/src/lib/request-entities/widgets/search-widget-item.d.ts +70 -28
  139. package/dist/esm/src/lib/request-entities/widgets/search-widget-item.js +77 -28
  140. package/dist/esm/src/lib/request-entities/widgets/utils.d.ts +1 -1
  141. package/dist/esm/src/lib/request-entities/widgets/utils.js +1 -1
  142. package/dist/esm/src/lib/request-entities/widgets/widget-item.d.ts +20 -5
  143. package/dist/esm/src/lib/request-entities/widgets/widget-item.js +20 -5
  144. package/dist/esm/src/lib/request-entities/widgets/widget-request-data.d.ts +6 -1
  145. package/dist/esm/src/lib/request-entities/widgets/widget-request-data.js +6 -1
  146. package/dist/esm/src/lib/requests/browser/get-page-widget-data.d.ts +5 -4
  147. package/dist/esm/src/lib/requests/browser/get-page-widget-data.js +5 -0
  148. package/dist/esm/src/lib/requests/browser/get-widget-data.d.ts +1 -1
  149. package/dist/esm/src/lib/requests/browser/get-widget-data.js +1 -1
  150. package/dist/esm/src/lib/requests/post-request.d.ts +10 -6
  151. package/dist/esm/src/lib/requests/post-request.js +2 -1
  152. package/dist/esm/src/lib/requests/server/entity-view-event-server.d.ts +1 -1
  153. package/dist/esm/src/lib/requests/server/entity-view-event-server.js +1 -1
  154. package/dist/esm/src/lib/requests/server/get-page-widget-data-server.d.ts +3 -3
  155. package/dist/esm/src/lib/requests/server/get-page-widget-data-server.js +5 -0
  156. package/dist/esm/src/lib/requests/server/get-widget-data-server.d.ts +1 -1
  157. package/dist/esm/src/lib/requests/server/get-widget-data-server.js +1 -1
  158. package/dist/esm/src/lib/requests/server/widget-facet-click-event-server.d.ts +1 -1
  159. package/dist/esm/src/lib/requests/server/widget-facet-click-event-server.js +1 -1
  160. package/dist/esm/src/lib/requests/server/widget-item-click-event-server.d.ts +1 -1
  161. package/dist/esm/src/lib/requests/server/widget-item-click-event-server.js +1 -1
  162. package/dist/esm/src/lib/requests/server/widget-navigation-click-event-server.d.ts +1 -1
  163. package/dist/esm/src/lib/requests/server/widget-navigation-click-event-server.js +1 -1
  164. package/dist/esm/src/lib/requests/server/widget-suggestion-click-event-server.d.ts +1 -1
  165. package/dist/esm/src/lib/requests/server/widget-suggestion-click-event-server.js +1 -1
  166. package/dist/esm/src/lib/requests/server/widget-view-event-server.d.ts +1 -1
  167. package/dist/esm/src/lib/requests/server/widget-view-event-server.js +1 -1
  168. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  169. package/package.json +4 -4
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sitecore-cloudsdk/search",
3
- "version": "0.5.0-rc.0",
3
+ "version": "0.5.1-rc.0",
4
4
  "license": "Apache-2.0",
5
5
  "exports": {
6
6
  "./server": {
@@ -20,9 +20,9 @@
20
20
  "build:es": "tsc -b ."
21
21
  },
22
22
  "dependencies": {
23
- "@sitecore-cloudsdk/core": "^0.5.0-rc.0",
24
- "@sitecore-cloudsdk/events": "^0.5.0-rc.0",
25
- "@sitecore-cloudsdk/utils": "^0.5.0-rc.0"
23
+ "@sitecore-cloudsdk/core": "^0.5.1-rc.0",
24
+ "@sitecore-cloudsdk/events": "^0.5.1-rc.0",
25
+ "@sitecore-cloudsdk/utils": "^0.5.1-rc.0"
26
26
  },
27
27
  "files": [
28
28
  "dist",
@@ -1,5 +1,6 @@
1
1
  export declare const PACKAGE_NAME: string;
2
2
  export declare const SEARCH_NAMESPACE = "sitecore-cloudsdk:search";
3
+ export declare const PACKAGE_VERSION: string;
3
4
  export declare enum ErrorMessages {
4
5
  IE_0001 = "[IE-0001] You are trying to run a browser-side function on the server side. On the server side, run the server-side equivalent of the function, available in \"server\" modules.",
5
6
  IE_0018 = "[IE-0018] You must first initialize the Cloud SDK and the \"search\" package. First, import \"CloudSDK\" from \"@sitecore-cloudsdk/core/browser\", and import \"@sitecore-cloudsdk/search/browser\". Then, run \"CloudSDK().addEvents().addSearch().initialize()\".",
@@ -3,11 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ErrorMessages = exports.SEARCH_NAMESPACE = exports.PACKAGE_NAME = void 0;
6
+ exports.ErrorMessages = exports.PACKAGE_VERSION = exports.SEARCH_NAMESPACE = exports.PACKAGE_NAME = void 0;
7
7
  // © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S.
8
8
  const package_json_1 = __importDefault(require("../../package.json"));
9
9
  exports.PACKAGE_NAME = package_json_1.default.name;
10
10
  exports.SEARCH_NAMESPACE = 'sitecore-cloudsdk:search';
11
+ exports.PACKAGE_VERSION = package_json_1.default.version;
11
12
  /* eslint-disable max-len */
12
13
  var ErrorMessages;
13
14
  (function (ErrorMessages) {
@@ -0,0 +1,38 @@
1
+ import type { NestedObject } from '@sitecore-cloudsdk/utils';
2
+ import type { BaseSearchEventParams } from './interfaces';
3
+ export declare abstract class BaseSearchEvent {
4
+ protected page?: string;
5
+ protected currency?: string;
6
+ protected language?: string;
7
+ protected channel?: string;
8
+ protected country?: string;
9
+ protected referrer?: string;
10
+ protected pathname: string;
11
+ constructor({ page, currency, language, channel, pathname, referrer, country }: BaseSearchEventParams);
12
+ /**
13
+ * @returns search context object in its DTO format.
14
+ */
15
+ protected _searchContextToDTO(): {
16
+ context: {
17
+ page: {
18
+ uri: string;
19
+ referrer?: string | undefined;
20
+ locale_language?: string | undefined;
21
+ locale_currency?: string | undefined;
22
+ locale_country?: string | undefined;
23
+ };
24
+ };
25
+ };
26
+ /**
27
+ * Validates currency and language codes.
28
+ * @param currency - three-letter currency code in the ISO 4217 format.
29
+ * @param language - two-letter language code in the ISO 639-1 format.
30
+ * @param country - two-letter country code in the ISO 639-1 format.
31
+ * @throws - {@link ErrorMessages.IV_0015} | {@link ErrorMessages.IV_0011} | {@link ErrorMessages.IV_0010}
32
+ */
33
+ private _validate;
34
+ /**
35
+ * Abstract method to be implemented by subclasses for specific DTO mappings.
36
+ */
37
+ abstract toDTO(): NestedObject;
38
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseSearchEvent = void 0;
4
+ const consts_1 = require("../consts");
5
+ class BaseSearchEvent {
6
+ constructor({ page, currency, language, channel, pathname, referrer, country }) {
7
+ this._validate(currency, language, country);
8
+ this.page = page;
9
+ this.currency = currency;
10
+ this.language = language;
11
+ this.country = country;
12
+ this.channel = channel;
13
+ this.pathname = pathname;
14
+ this.referrer = referrer;
15
+ }
16
+ /**
17
+ * @returns search context object in its DTO format.
18
+ */
19
+ _searchContextToDTO() {
20
+ return {
21
+ context: {
22
+ page: {
23
+ ...(this.country && { locale_country: this.country.toLowerCase() }),
24
+ ...(this.currency && { locale_currency: this.currency.toLowerCase() }),
25
+ ...(this.language && { locale_language: this.language.toLowerCase() }),
26
+ ...(this.referrer && { referrer: this.referrer }),
27
+ uri: this.pathname
28
+ }
29
+ }
30
+ };
31
+ }
32
+ /**
33
+ * Validates currency and language codes.
34
+ * @param currency - three-letter currency code in the ISO 4217 format.
35
+ * @param language - two-letter language code in the ISO 639-1 format.
36
+ * @param country - two-letter country code in the ISO 639-1 format.
37
+ * @throws - {@link ErrorMessages.IV_0015} | {@link ErrorMessages.IV_0011} | {@link ErrorMessages.IV_0010}
38
+ */
39
+ _validate(currency, language, country) {
40
+ if (currency !== undefined && currency.length !== 3)
41
+ throw new Error(consts_1.ErrorMessages.IV_0015);
42
+ if (country !== undefined && country.length !== 2)
43
+ throw new Error(consts_1.ErrorMessages.IV_0010);
44
+ if (language !== undefined && language.length !== 2)
45
+ throw new Error(consts_1.ErrorMessages.IV_0011);
46
+ }
47
+ }
48
+ exports.BaseSearchEvent = BaseSearchEvent;
@@ -1,17 +1,17 @@
1
1
  import type { NestedObject } from '@sitecore-cloudsdk/utils';
2
+ import { BaseSearchEvent } from './base-widget-event';
2
3
  import type { EntityViewEventParams, SearchEventEntity } from './interfaces';
3
- export declare class EntityViewEvent {
4
- protected page?: string;
5
- protected currency?: string;
6
- protected language?: string;
7
- protected pathname: string;
4
+ export declare class EntityViewEvent extends BaseSearchEvent {
8
5
  protected entity: SearchEventEntity;
9
6
  /**
10
7
  * Creates an entity view event.
11
- * @param entityViewEventParams - An object with the entity view event params {@link EntityViewEventParams}
8
+ * @param entityViewEventParams - {@link EntityViewEventParams} An object with the entity view event params
9
+ */
10
+ constructor({ entity, ...rest }: EntityViewEventParams);
11
+ /**
12
+ *
13
+ * @returns - map of EntityViewEvent in its DTO format.
12
14
  */
13
- constructor({ page, currency, language, pathname, entity }: EntityViewEventParams);
14
- private _validate;
15
15
  toDTO(): {
16
16
  currency: string | undefined;
17
17
  language: string | undefined;
@@ -1,26 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EntityViewEvent = void 0;
4
- const consts_1 = require("../consts");
5
- class EntityViewEvent {
4
+ const base_widget_event_1 = require("./base-widget-event");
5
+ class EntityViewEvent extends base_widget_event_1.BaseSearchEvent {
6
6
  /**
7
7
  * Creates an entity view event.
8
- * @param entityViewEventParams - An object with the entity view event params {@link EntityViewEventParams}
8
+ * @param entityViewEventParams - {@link EntityViewEventParams} An object with the entity view event params
9
9
  */
10
- constructor({ page, currency, language, pathname, entity }) {
11
- this._validate(currency, language);
12
- this.page = page;
13
- this.currency = currency;
14
- this.language = language;
15
- this.pathname = pathname;
10
+ constructor({ entity, ...rest }) {
11
+ super(rest);
16
12
  this.entity = entity;
17
13
  }
18
- _validate(currency, language) {
19
- if (currency !== undefined && currency.length !== 3)
20
- throw new Error(consts_1.ErrorMessages.IV_0015);
21
- if (language !== undefined && language.length !== 2)
22
- throw new Error(consts_1.ErrorMessages.IV_0011);
23
- }
14
+ /**
15
+ *
16
+ * @returns - map of EntityViewEvent in its DTO format.
17
+ */
24
18
  toDTO() {
25
19
  const eventEntityDTO = {
26
20
  attributes: this.entity.attributes,
@@ -36,11 +30,7 @@ class EntityViewEvent {
36
30
  page: this.page,
37
31
  searchData: {
38
32
  value: {
39
- context: {
40
- page: {
41
- uri: this.pathname
42
- }
43
- },
33
+ ...this._searchContextToDTO(),
44
34
  entities: [eventEntityDTO]
45
35
  }
46
36
  },
@@ -76,60 +76,40 @@ export interface RangeFacetFilterEventParamsDTO extends SuggestionFilterEventPar
76
76
  facet_position: 0;
77
77
  }
78
78
  export type EventFilter = SuggestionFilterEventParams | FacetFilterEventParams | RangeFacetFilterEventParams;
79
- export interface WidgetNavigationClickEventParams {
80
- pathname: string;
79
+ export interface BaseSearchEventParams {
81
80
  page?: string;
82
- itemPosition: number;
83
81
  currency?: string;
84
82
  language?: string;
85
83
  channel?: string;
86
- widgetId: string;
87
- }
88
- export interface WidgetItemClickEventParams {
89
- request: SearchEventRequest;
90
- entity: SearchEventEntity;
91
- itemPosition: number;
84
+ country?: string;
85
+ referrer?: string;
92
86
  pathname: string;
93
- widgetId: string;
94
- page?: string;
95
- currency?: string;
96
- language?: string;
97
- channel?: string;
98
87
  }
99
- export interface WidgetSuggestionClickEventParams {
88
+ export interface WidgetViewEventParams extends BaseSearchEventParams {
100
89
  request: SearchEventRequest;
101
- filters?: Array<SuggestionFilterEventParams>;
102
- pathname: string;
90
+ entities: Array<SearchEventEntity>;
103
91
  widgetId: string;
104
- page?: string;
105
- currency?: string;
106
- language?: string;
107
- channel?: string;
108
92
  }
109
- export interface WidgetFacetClickEventParams {
93
+ export interface EntityViewEventParams extends BaseSearchEventParams {
94
+ entity: SearchEventEntity;
95
+ }
96
+ export interface WidgetFacetClickEventParams extends BaseSearchEventParams {
110
97
  request: SearchEventRequest;
111
98
  filters: Array<FacetFilterEventParams | RangeFacetFilterEventParams>;
112
- pathname: string;
113
99
  widgetId: string;
114
- page?: string;
115
- currency?: string;
116
- language?: string;
117
- channel?: string;
118
100
  }
119
- export interface WidgetViewEventParams {
101
+ export interface WidgetItemClickEventParams extends BaseSearchEventParams {
120
102
  request: SearchEventRequest;
121
- entities: Array<SearchEventEntity>;
122
- pathname: string;
103
+ entity: SearchEventEntity;
104
+ itemPosition: number;
123
105
  widgetId: string;
124
- page?: string;
125
- currency?: string;
126
- language?: string;
127
- channel?: string;
128
106
  }
129
- export interface EntityViewEventParams {
130
- page?: string;
131
- currency?: string;
132
- language?: string;
133
- pathname: string;
134
- entity: SearchEventEntity;
107
+ export interface WidgetNavigationClickEventParams extends BaseSearchEventParams {
108
+ itemPosition: number;
109
+ widgetId: string;
110
+ }
111
+ export interface WidgetSuggestionClickEventParams extends BaseSearchEventParams {
112
+ request: SearchEventRequest;
113
+ filters?: Array<SuggestionFilterEventParams>;
114
+ widgetId: string;
135
115
  }
@@ -1,24 +1,33 @@
1
1
  import type { NestedObject } from '@sitecore-cloudsdk/utils';
2
+ import { BaseSearchEvent } from './base-widget-event';
2
3
  import type { FacetFilterEventParams, RangeFacetFilterEventParams, SearchEventRequest, WidgetFacetClickEventParams } from './interfaces';
3
- export declare class WidgetFacetClickEvent {
4
+ export declare class WidgetFacetClickEvent extends BaseSearchEvent {
4
5
  protected request: SearchEventRequest;
5
- protected pathname: string;
6
6
  protected widgetId: string;
7
- protected page?: string;
8
- protected currency?: string;
9
- protected language?: string;
10
- protected channel?: string;
11
7
  protected filters: Array<FacetFilterEventParams | RangeFacetFilterEventParams>;
12
8
  /**
13
9
  * Creates a search widget facet click event.
14
10
  * @param widgetFacetClickEventParams - An object with the widget facet click params
15
11
  * {@link WidgetFacetClickEventParams}
16
12
  */
17
- constructor({ request, pathname, widgetId, page, currency, language, channel, filters }: WidgetFacetClickEventParams);
18
- private _validate;
13
+ constructor({ request, widgetId, filters, ...rest }: WidgetFacetClickEventParams);
14
+ /**
15
+ *
16
+ * @returns - {@link FacetFilterEventParamsDTO}[] | {@link RangeFacetFilterEventParamsDTO}[]
17
+ */
19
18
  private _mapFiltersToDTO;
19
+ /**
20
+ * @returns a search event request in DTO format {@link SearchEventRequestDTO}.
21
+ */
20
22
  private _mapRequestToDTO;
23
+ /**
24
+ * @param filter - {@link FacetFilterEventParams} | {@link RangeFacetFilterEventParams}
25
+ * @returns true if `filter` is {@link RangeFacetFilterEventParams}
26
+ */
21
27
  private _rangeFacetFilterTypeGuard;
28
+ /**
29
+ * @returns map of WidgetFacetClickEvent in its DTO format.
30
+ */
22
31
  toDTO(): {
23
32
  channel: string | undefined;
24
33
  currency: string | undefined;
@@ -1,30 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WidgetFacetClickEvent = void 0;
4
- const consts_1 = require("../consts");
5
- class WidgetFacetClickEvent {
4
+ const base_widget_event_1 = require("./base-widget-event");
5
+ class WidgetFacetClickEvent extends base_widget_event_1.BaseSearchEvent {
6
6
  /**
7
7
  * Creates a search widget facet click event.
8
8
  * @param widgetFacetClickEventParams - An object with the widget facet click params
9
9
  * {@link WidgetFacetClickEventParams}
10
10
  */
11
- constructor({ request, pathname, widgetId, page, currency, language, channel, filters }) {
12
- this._validate(currency, language);
11
+ constructor({ request, widgetId, filters, ...rest }) {
12
+ super(rest);
13
13
  this.request = request;
14
- this.currency = currency;
15
- this.language = language;
16
- this.channel = channel;
17
14
  this.filters = filters;
18
- this.page = page;
19
- this.pathname = pathname;
20
15
  this.widgetId = widgetId;
21
16
  }
22
- _validate(currency, language) {
23
- if (currency !== undefined && currency.length !== 3)
24
- throw new Error(consts_1.ErrorMessages.IV_0015);
25
- if (language !== undefined && language.length !== 2)
26
- throw new Error(consts_1.ErrorMessages.IV_0011);
27
- }
17
+ /**
18
+ *
19
+ * @returns - {@link FacetFilterEventParamsDTO}[] | {@link RangeFacetFilterEventParamsDTO}[]
20
+ */
28
21
  _mapFiltersToDTO() {
29
22
  return this.filters.map((filter) => {
30
23
  if (this._rangeFacetFilterTypeGuard(filter))
@@ -48,6 +41,9 @@ class WidgetFacetClickEvent {
48
41
  };
49
42
  });
50
43
  }
44
+ /**
45
+ * @returns a search event request in DTO format {@link SearchEventRequestDTO}.
46
+ */
51
47
  _mapRequestToDTO() {
52
48
  return {
53
49
  advanced_query_text: this.request.advancedQueryText,
@@ -61,9 +57,16 @@ class WidgetFacetClickEvent {
61
57
  total_results: this.request.totalResults
62
58
  };
63
59
  }
60
+ /**
61
+ * @param filter - {@link FacetFilterEventParams} | {@link RangeFacetFilterEventParams}
62
+ * @returns true if `filter` is {@link RangeFacetFilterEventParams}
63
+ */
64
64
  _rangeFacetFilterTypeGuard(filter) {
65
65
  return 'startValue' in filter;
66
66
  }
67
+ /**
68
+ * @returns map of WidgetFacetClickEvent in its DTO format.
69
+ */
67
70
  toDTO() {
68
71
  const filtersDTO = this._mapFiltersToDTO();
69
72
  const requestDTO = this._mapRequestToDTO();
@@ -75,11 +78,7 @@ class WidgetFacetClickEvent {
75
78
  searchData: {
76
79
  action_cause: 'filter',
77
80
  value: {
78
- context: {
79
- page: {
80
- uri: this.pathname
81
- }
82
- },
81
+ ...this._searchContextToDTO(),
83
82
  filters: filtersDTO,
84
83
  request: requestDTO,
85
84
  rfk_id: this.widgetId
@@ -1,22 +1,21 @@
1
1
  import type { NestedObject } from '@sitecore-cloudsdk/utils';
2
+ import { BaseSearchEvent } from './base-widget-event';
2
3
  import type { SearchEventEntity, SearchEventRequest, WidgetItemClickEventParams } from './interfaces';
3
- export declare class WidgetItemClickEvent {
4
+ export declare class WidgetItemClickEvent extends BaseSearchEvent {
4
5
  protected request: SearchEventRequest;
5
6
  protected entity: SearchEventEntity;
6
7
  protected itemPosition: number;
7
- protected pathname: string;
8
8
  protected widgetId: string;
9
- protected page?: string;
10
- protected currency?: string;
11
- protected language?: string;
12
- protected channel?: string;
13
9
  /**
14
10
  * Creates a search widget item event.
15
11
  * @param widgetItemClickEventParams - An object with the widget item click params
16
12
  * {@link WidgetItemClickEventParams}
17
13
  */
18
- constructor({ request, entity, itemPosition, pathname, widgetId, page, currency, language, channel }: WidgetItemClickEventParams);
19
- private _validate;
14
+ constructor({ request, entity, itemPosition, widgetId, ...rest }: WidgetItemClickEventParams);
15
+ /**
16
+ *
17
+ * @returns a map of WidgetItemClickEvent in its DTO format.
18
+ */
20
19
  toDTO(): {
21
20
  channel: string | undefined;
22
21
  currency: string | undefined;
@@ -1,31 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WidgetItemClickEvent = void 0;
4
- const consts_1 = require("../consts");
5
- class WidgetItemClickEvent {
4
+ const base_widget_event_1 = require("./base-widget-event");
5
+ class WidgetItemClickEvent extends base_widget_event_1.BaseSearchEvent {
6
6
  /**
7
7
  * Creates a search widget item event.
8
8
  * @param widgetItemClickEventParams - An object with the widget item click params
9
9
  * {@link WidgetItemClickEventParams}
10
10
  */
11
- constructor({ request, entity, itemPosition, pathname, widgetId, page, currency, language, channel }) {
12
- this._validate(currency, language);
11
+ constructor({ request, entity, itemPosition, widgetId, ...rest }) {
12
+ super(rest);
13
13
  this.entity = entity;
14
14
  this.itemPosition = itemPosition;
15
- this.page = page;
16
15
  this.request = request;
17
- this.pathname = pathname;
18
16
  this.widgetId = widgetId;
19
- this.currency = currency;
20
- this.language = language;
21
- this.channel = channel;
22
- }
23
- _validate(currency, language) {
24
- if (currency !== undefined && currency.length !== 3)
25
- throw new Error(consts_1.ErrorMessages.IV_0015);
26
- if (language !== undefined && language.length !== 2)
27
- throw new Error(consts_1.ErrorMessages.IV_0011);
28
17
  }
18
+ /**
19
+ *
20
+ * @returns a map of WidgetItemClickEvent in its DTO format.
21
+ */
29
22
  toDTO() {
30
23
  const eventRequestDTO = {
31
24
  advanced_query_text: this.request.advancedQueryText,
@@ -54,11 +47,7 @@ class WidgetItemClickEvent {
54
47
  searchData: {
55
48
  action_cause: 'entity',
56
49
  value: {
57
- context: {
58
- page: {
59
- uri: this.pathname
60
- }
61
- },
50
+ ...this._searchContextToDTO(),
62
51
  entities: [eventEntityDTO],
63
52
  index: this.itemPosition,
64
53
  request: eventRequestDTO,
@@ -1,20 +1,19 @@
1
1
  import type { NestedObject } from '@sitecore-cloudsdk/utils';
2
+ import { BaseSearchEvent } from './base-widget-event';
2
3
  import type { WidgetNavigationClickEventParams } from './interfaces';
3
- export declare class WidgetNavigationClickEvent {
4
+ export declare class WidgetNavigationClickEvent extends BaseSearchEvent {
4
5
  protected itemPosition: number;
5
- protected pathname: string;
6
6
  protected widgetIdentifier: string;
7
- protected page?: string;
8
- protected currency?: string;
9
- protected language?: string;
10
- protected channel?: string;
11
7
  /**
12
8
  * Creates a search widget navigation event.
13
9
  * @param widgetNavigationClickEventParams - an object containing navigation click params
14
10
  * {@link WidgetNavigationClickEventParams}
15
11
  */
16
- constructor({ itemPosition, pathname, widgetId, page, currency, language, channel }: WidgetNavigationClickEventParams);
17
- private _validate;
12
+ constructor({ itemPosition, widgetId, ...rest }: WidgetNavigationClickEventParams);
13
+ /**
14
+ *
15
+ * @returns map of WidgetNavigationClickEvent in its DTO format.
16
+ */
18
17
  toDTO(): {
19
18
  channel: string | undefined;
20
19
  currency: string | undefined;
@@ -1,29 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WidgetNavigationClickEvent = void 0;
4
- const consts_1 = require("../consts");
5
- class WidgetNavigationClickEvent {
4
+ const base_widget_event_1 = require("./base-widget-event");
5
+ class WidgetNavigationClickEvent extends base_widget_event_1.BaseSearchEvent {
6
6
  /**
7
7
  * Creates a search widget navigation event.
8
8
  * @param widgetNavigationClickEventParams - an object containing navigation click params
9
9
  * {@link WidgetNavigationClickEventParams}
10
10
  */
11
- constructor({ itemPosition, pathname, widgetId, page, currency, language, channel }) {
12
- this._validate(currency, language);
11
+ constructor({ itemPosition, widgetId, ...rest }) {
12
+ super(rest);
13
13
  this.itemPosition = itemPosition;
14
- this.page = page;
15
- this.pathname = pathname;
16
14
  this.widgetIdentifier = widgetId;
17
- this.currency = currency;
18
- this.language = language;
19
- this.channel = channel;
20
- }
21
- _validate(currency, language) {
22
- if (currency !== undefined && currency.length !== 3)
23
- throw new Error(consts_1.ErrorMessages.IV_0015);
24
- if (language !== undefined && language.length !== 2)
25
- throw new Error(consts_1.ErrorMessages.IV_0011);
26
15
  }
16
+ /**
17
+ *
18
+ * @returns map of WidgetNavigationClickEvent in its DTO format.
19
+ */
27
20
  toDTO() {
28
21
  return {
29
22
  channel: this.channel,
@@ -33,11 +26,7 @@ class WidgetNavigationClickEvent {
33
26
  searchData: {
34
27
  action_cause: 'navigation',
35
28
  value: {
36
- context: {
37
- page: {
38
- uri: this.pathname
39
- }
40
- },
29
+ ...this._searchContextToDTO(),
41
30
  index: this.itemPosition,
42
31
  rfk_id: this.widgetIdentifier
43
32
  }
@@ -1,23 +1,30 @@
1
1
  import type { NestedObject } from '@sitecore-cloudsdk/utils';
2
+ import { BaseSearchEvent } from './base-widget-event';
2
3
  import type { SearchEventRequest, SuggestionFilterEventParams, WidgetSuggestionClickEventParams } from './interfaces';
3
- export declare class WidgetSuggestionClickEvent {
4
+ export declare class WidgetSuggestionClickEvent extends BaseSearchEvent {
4
5
  protected request: SearchEventRequest;
5
6
  protected filters?: Array<SuggestionFilterEventParams>;
6
- protected pathname: string;
7
- protected page?: string;
8
7
  protected widgetIdentifier: string;
9
- protected currency?: string;
10
- protected language?: string;
11
- protected channel?: string;
12
8
  /**
13
9
  * Creates a widget suggestion click event.
14
10
  * @param widgetSuggestionClickEventParams - An object with the widget suggestion click event params
15
11
  * {@link WidgetSuggestionClickEventParams}
16
12
  */
17
- constructor({ request, filters, pathname, page, widgetId, currency, language, channel }: WidgetSuggestionClickEventParams);
18
- private _validate;
13
+ constructor({ request, filters, widgetId, ...rest }: WidgetSuggestionClickEventParams);
14
+ /**
15
+ *
16
+ * @returns the filters property in its DTO format {@link SuggestionFilterEventParamsDTO}[].
17
+ */
19
18
  private _mapFiltersToDTO;
19
+ /**
20
+ *
21
+ * @returns the request property in its DTO format {@link SearchEventRequestDTO}.
22
+ */
20
23
  private _mapRequestToDTO;
24
+ /**
25
+ *
26
+ * @returns WidgetSuggestionClickEvent in its DTO format.
27
+ */
21
28
  toDTO(): {
22
29
  channel: string | undefined;
23
30
  currency: string | undefined;