@sitecore-cloudsdk/search 0.5.0-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 (224) hide show
  1. package/README.md +95 -0
  2. package/browser.cjs +3 -0
  3. package/browser.d.ts +2 -0
  4. package/browser.js +3 -0
  5. package/dist/cjs/package.json +40 -0
  6. package/dist/cjs/src/browser.d.ts +32 -0
  7. package/dist/cjs/src/browser.js +53 -0
  8. package/dist/cjs/src/lib/consts.d.ts +38 -0
  9. package/dist/cjs/src/lib/consts.js +49 -0
  10. package/dist/cjs/src/lib/events/entity-view-event.d.ts +22 -0
  11. package/dist/cjs/src/lib/events/entity-view-event.js +51 -0
  12. package/dist/cjs/src/lib/events/interfaces.d.ts +135 -0
  13. package/dist/cjs/src/lib/events/interfaces.js +3 -0
  14. package/dist/cjs/src/lib/events/widget-facet-click-event.d.ts +30 -0
  15. package/dist/cjs/src/lib/events/widget-facet-click-event.js +92 -0
  16. package/dist/cjs/src/lib/events/widget-item-click-event.d.ts +28 -0
  17. package/dist/cjs/src/lib/events/widget-item-click-event.js +72 -0
  18. package/dist/cjs/src/lib/events/widget-navigation-click-event.d.ts +26 -0
  19. package/dist/cjs/src/lib/events/widget-navigation-click-event.js +49 -0
  20. package/dist/cjs/src/lib/events/widget-suggestion-click-event.d.ts +29 -0
  21. package/dist/cjs/src/lib/events/widget-suggestion-click-event.js +75 -0
  22. package/dist/cjs/src/lib/events/widget-view-event.d.ts +28 -0
  23. package/dist/cjs/src/lib/events/widget-view-event.js +75 -0
  24. package/dist/cjs/src/lib/initializer/browser/initializer.d.ts +23 -0
  25. package/dist/cjs/src/lib/initializer/browser/initializer.js +44 -0
  26. package/dist/cjs/src/lib/initializer/server/initializer.d.ts +21 -0
  27. package/dist/cjs/src/lib/initializer/server/initializer.js +39 -0
  28. package/dist/cjs/src/lib/request-entities/context/context.d.ts +141 -0
  29. package/dist/cjs/src/lib/request-entities/context/context.js +273 -0
  30. package/dist/cjs/src/lib/request-entities/context/interfaces.d.ts +106 -0
  31. package/dist/cjs/src/lib/request-entities/context/interfaces.js +2 -0
  32. package/dist/cjs/src/lib/request-entities/filters/base-filter.d.ts +17 -0
  33. package/dist/cjs/src/lib/request-entities/filters/base-filter.js +17 -0
  34. package/dist/cjs/src/lib/request-entities/filters/comparison-filter.d.ts +18 -0
  35. package/dist/cjs/src/lib/request-entities/filters/comparison-filter.js +30 -0
  36. package/dist/cjs/src/lib/request-entities/filters/facet/comparison-facet-filter.d.ts +18 -0
  37. package/dist/cjs/src/lib/request-entities/filters/facet/comparison-facet-filter.js +26 -0
  38. package/dist/cjs/src/lib/request-entities/filters/facet/interfaces.d.ts +21 -0
  39. package/dist/cjs/src/lib/request-entities/filters/facet/interfaces.js +2 -0
  40. package/dist/cjs/src/lib/request-entities/filters/facet/list-facet-filter.d.ts +18 -0
  41. package/dist/cjs/src/lib/request-entities/filters/facet/list-facet-filter.js +26 -0
  42. package/dist/cjs/src/lib/request-entities/filters/facet/logical-facet-filter.d.ts +19 -0
  43. package/dist/cjs/src/lib/request-entities/filters/facet/logical-facet-filter.js +26 -0
  44. package/dist/cjs/src/lib/request-entities/filters/facet/not-facet-filter.d.ts +7 -0
  45. package/dist/cjs/src/lib/request-entities/filters/facet/not-facet-filter.js +22 -0
  46. package/dist/cjs/src/lib/request-entities/filters/geo-filter.d.ts +19 -0
  47. package/dist/cjs/src/lib/request-entities/filters/geo-filter.js +49 -0
  48. package/dist/cjs/src/lib/request-entities/filters/geo-within-filter.d.ts +19 -0
  49. package/dist/cjs/src/lib/request-entities/filters/geo-within-filter.js +44 -0
  50. package/dist/cjs/src/lib/request-entities/filters/interfaces.d.ts +66 -0
  51. package/dist/cjs/src/lib/request-entities/filters/interfaces.js +2 -0
  52. package/dist/cjs/src/lib/request-entities/filters/list-filter.d.ts +18 -0
  53. package/dist/cjs/src/lib/request-entities/filters/list-filter.js +30 -0
  54. package/dist/cjs/src/lib/request-entities/filters/logical-filter.d.ts +16 -0
  55. package/dist/cjs/src/lib/request-entities/filters/logical-filter.js +32 -0
  56. package/dist/cjs/src/lib/request-entities/widgets/interfaces.d.ts +372 -0
  57. package/dist/cjs/src/lib/request-entities/widgets/interfaces.js +2 -0
  58. package/dist/cjs/src/lib/request-entities/widgets/questions-answers-widget-item.d.ts +62 -0
  59. package/dist/cjs/src/lib/request-entities/widgets/questions-answers-widget-item.js +117 -0
  60. package/dist/cjs/src/lib/request-entities/widgets/recommendation-widget-item.d.ts +39 -0
  61. package/dist/cjs/src/lib/request-entities/widgets/recommendation-widget-item.js +84 -0
  62. package/dist/cjs/src/lib/request-entities/widgets/results-widget-item.d.ts +76 -0
  63. package/dist/cjs/src/lib/request-entities/widgets/results-widget-item.js +126 -0
  64. package/dist/cjs/src/lib/request-entities/widgets/rule-widget-item.d.ts +14 -0
  65. package/dist/cjs/src/lib/request-entities/widgets/rule-widget-item.js +71 -0
  66. package/dist/cjs/src/lib/request-entities/widgets/search-widget-item.d.ts +167 -0
  67. package/dist/cjs/src/lib/request-entities/widgets/search-widget-item.js +353 -0
  68. package/dist/cjs/src/lib/request-entities/widgets/utils.d.ts +8 -0
  69. package/dist/cjs/src/lib/request-entities/widgets/utils.js +14 -0
  70. package/dist/cjs/src/lib/request-entities/widgets/widget-item.d.ts +64 -0
  71. package/dist/cjs/src/lib/request-entities/widgets/widget-item.js +114 -0
  72. package/dist/cjs/src/lib/request-entities/widgets/widget-request-data.d.ts +15 -0
  73. package/dist/cjs/src/lib/request-entities/widgets/widget-request-data.js +30 -0
  74. package/dist/cjs/src/lib/requests/browser/entity-view-event.d.ts +6 -0
  75. package/dist/cjs/src/lib/requests/browser/entity-view-event.js +17 -0
  76. package/dist/cjs/src/lib/requests/browser/get-page-widget-data.d.ts +15 -0
  77. package/dist/cjs/src/lib/requests/browser/get-page-widget-data.js +25 -0
  78. package/dist/cjs/src/lib/requests/browser/get-widget-data.d.ts +9 -0
  79. package/dist/cjs/src/lib/requests/browser/get-widget-data.js +21 -0
  80. package/dist/cjs/src/lib/requests/browser/widget-facet-click-event.d.ts +7 -0
  81. package/dist/cjs/src/lib/requests/browser/widget-facet-click-event.js +18 -0
  82. package/dist/cjs/src/lib/requests/browser/widget-item-click-event.d.ts +7 -0
  83. package/dist/cjs/src/lib/requests/browser/widget-item-click-event.js +18 -0
  84. package/dist/cjs/src/lib/requests/browser/widget-navigation-click-event.d.ts +7 -0
  85. package/dist/cjs/src/lib/requests/browser/widget-navigation-click-event.js +18 -0
  86. package/dist/cjs/src/lib/requests/browser/widget-suggestion-click-event.d.ts +7 -0
  87. package/dist/cjs/src/lib/requests/browser/widget-suggestion-click-event.js +18 -0
  88. package/dist/cjs/src/lib/requests/browser/widget-view-event.d.ts +6 -0
  89. package/dist/cjs/src/lib/requests/browser/widget-view-event.js +17 -0
  90. package/dist/cjs/src/lib/requests/post-request.d.ts +57 -0
  91. package/dist/cjs/src/lib/requests/post-request.js +26 -0
  92. package/dist/cjs/src/lib/requests/server/entity-view-event-server.d.ts +8 -0
  93. package/dist/cjs/src/lib/requests/server/entity-view-event-server.js +18 -0
  94. package/dist/cjs/src/lib/requests/server/get-page-widget-data-server.d.ts +15 -0
  95. package/dist/cjs/src/lib/requests/server/get-page-widget-data-server.js +25 -0
  96. package/dist/cjs/src/lib/requests/server/get-widget-data-server.d.ts +8 -0
  97. package/dist/cjs/src/lib/requests/server/get-widget-data-server.js +19 -0
  98. package/dist/cjs/src/lib/requests/server/widget-facet-click-event-server.d.ts +9 -0
  99. package/dist/cjs/src/lib/requests/server/widget-facet-click-event-server.js +19 -0
  100. package/dist/cjs/src/lib/requests/server/widget-item-click-event-server.d.ts +9 -0
  101. package/dist/cjs/src/lib/requests/server/widget-item-click-event-server.js +19 -0
  102. package/dist/cjs/src/lib/requests/server/widget-navigation-click-event-server.d.ts +9 -0
  103. package/dist/cjs/src/lib/requests/server/widget-navigation-click-event-server.js +19 -0
  104. package/dist/cjs/src/lib/requests/server/widget-suggestion-click-event-server.d.ts +9 -0
  105. package/dist/cjs/src/lib/requests/server/widget-suggestion-click-event-server.js +19 -0
  106. package/dist/cjs/src/lib/requests/server/widget-view-event-server.d.ts +9 -0
  107. package/dist/cjs/src/lib/requests/server/widget-view-event-server.js +19 -0
  108. package/dist/cjs/src/lib/types.d.ts +14 -0
  109. package/dist/cjs/src/lib/types.js +2 -0
  110. package/dist/cjs/src/server.d.ts +32 -0
  111. package/dist/cjs/src/server.js +55 -0
  112. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  113. package/dist/esm/package.json +40 -0
  114. package/dist/esm/src/browser.d.ts +32 -0
  115. package/dist/esm/src/browser.js +26 -0
  116. package/dist/esm/src/lib/consts.d.ts +38 -0
  117. package/dist/esm/src/lib/consts.js +43 -0
  118. package/dist/esm/src/lib/events/entity-view-event.d.ts +22 -0
  119. package/dist/esm/src/lib/events/entity-view-event.js +47 -0
  120. package/dist/esm/src/lib/events/interfaces.d.ts +135 -0
  121. package/dist/esm/src/lib/events/interfaces.js +2 -0
  122. package/dist/esm/src/lib/events/widget-facet-click-event.d.ts +30 -0
  123. package/dist/esm/src/lib/events/widget-facet-click-event.js +88 -0
  124. package/dist/esm/src/lib/events/widget-item-click-event.d.ts +28 -0
  125. package/dist/esm/src/lib/events/widget-item-click-event.js +68 -0
  126. package/dist/esm/src/lib/events/widget-navigation-click-event.d.ts +26 -0
  127. package/dist/esm/src/lib/events/widget-navigation-click-event.js +45 -0
  128. package/dist/esm/src/lib/events/widget-suggestion-click-event.d.ts +29 -0
  129. package/dist/esm/src/lib/events/widget-suggestion-click-event.js +71 -0
  130. package/dist/esm/src/lib/events/widget-view-event.d.ts +28 -0
  131. package/dist/esm/src/lib/events/widget-view-event.js +71 -0
  132. package/dist/esm/src/lib/initializer/browser/initializer.d.ts +23 -0
  133. package/dist/esm/src/lib/initializer/browser/initializer.js +38 -0
  134. package/dist/esm/src/lib/initializer/server/initializer.d.ts +21 -0
  135. package/dist/esm/src/lib/initializer/server/initializer.js +33 -0
  136. package/dist/esm/src/lib/request-entities/context/context.d.ts +141 -0
  137. package/dist/esm/src/lib/request-entities/context/context.js +269 -0
  138. package/dist/esm/src/lib/request-entities/context/interfaces.d.ts +106 -0
  139. package/dist/esm/src/lib/request-entities/context/interfaces.js +1 -0
  140. package/dist/esm/src/lib/request-entities/filters/base-filter.d.ts +17 -0
  141. package/dist/esm/src/lib/request-entities/filters/base-filter.js +13 -0
  142. package/dist/esm/src/lib/request-entities/filters/comparison-filter.d.ts +18 -0
  143. package/dist/esm/src/lib/request-entities/filters/comparison-filter.js +26 -0
  144. package/dist/esm/src/lib/request-entities/filters/facet/comparison-facet-filter.d.ts +18 -0
  145. package/dist/esm/src/lib/request-entities/filters/facet/comparison-facet-filter.js +22 -0
  146. package/dist/esm/src/lib/request-entities/filters/facet/interfaces.d.ts +21 -0
  147. package/dist/esm/src/lib/request-entities/filters/facet/interfaces.js +1 -0
  148. package/dist/esm/src/lib/request-entities/filters/facet/list-facet-filter.d.ts +18 -0
  149. package/dist/esm/src/lib/request-entities/filters/facet/list-facet-filter.js +22 -0
  150. package/dist/esm/src/lib/request-entities/filters/facet/logical-facet-filter.d.ts +19 -0
  151. package/dist/esm/src/lib/request-entities/filters/facet/logical-facet-filter.js +22 -0
  152. package/dist/esm/src/lib/request-entities/filters/facet/not-facet-filter.d.ts +7 -0
  153. package/dist/esm/src/lib/request-entities/filters/facet/not-facet-filter.js +18 -0
  154. package/dist/esm/src/lib/request-entities/filters/geo-filter.d.ts +19 -0
  155. package/dist/esm/src/lib/request-entities/filters/geo-filter.js +45 -0
  156. package/dist/esm/src/lib/request-entities/filters/geo-within-filter.d.ts +19 -0
  157. package/dist/esm/src/lib/request-entities/filters/geo-within-filter.js +40 -0
  158. package/dist/esm/src/lib/request-entities/filters/interfaces.d.ts +66 -0
  159. package/dist/esm/src/lib/request-entities/filters/interfaces.js +1 -0
  160. package/dist/esm/src/lib/request-entities/filters/list-filter.d.ts +18 -0
  161. package/dist/esm/src/lib/request-entities/filters/list-filter.js +26 -0
  162. package/dist/esm/src/lib/request-entities/filters/logical-filter.d.ts +16 -0
  163. package/dist/esm/src/lib/request-entities/filters/logical-filter.js +28 -0
  164. package/dist/esm/src/lib/request-entities/widgets/interfaces.d.ts +372 -0
  165. package/dist/esm/src/lib/request-entities/widgets/interfaces.js +1 -0
  166. package/dist/esm/src/lib/request-entities/widgets/questions-answers-widget-item.d.ts +62 -0
  167. package/dist/esm/src/lib/request-entities/widgets/questions-answers-widget-item.js +113 -0
  168. package/dist/esm/src/lib/request-entities/widgets/recommendation-widget-item.d.ts +39 -0
  169. package/dist/esm/src/lib/request-entities/widgets/recommendation-widget-item.js +80 -0
  170. package/dist/esm/src/lib/request-entities/widgets/results-widget-item.d.ts +76 -0
  171. package/dist/esm/src/lib/request-entities/widgets/results-widget-item.js +122 -0
  172. package/dist/esm/src/lib/request-entities/widgets/rule-widget-item.d.ts +14 -0
  173. package/dist/esm/src/lib/request-entities/widgets/rule-widget-item.js +67 -0
  174. package/dist/esm/src/lib/request-entities/widgets/search-widget-item.d.ts +167 -0
  175. package/dist/esm/src/lib/request-entities/widgets/search-widget-item.js +349 -0
  176. package/dist/esm/src/lib/request-entities/widgets/utils.d.ts +8 -0
  177. package/dist/esm/src/lib/request-entities/widgets/utils.js +10 -0
  178. package/dist/esm/src/lib/request-entities/widgets/widget-item.d.ts +64 -0
  179. package/dist/esm/src/lib/request-entities/widgets/widget-item.js +110 -0
  180. package/dist/esm/src/lib/request-entities/widgets/widget-request-data.d.ts +15 -0
  181. package/dist/esm/src/lib/request-entities/widgets/widget-request-data.js +26 -0
  182. package/dist/esm/src/lib/requests/browser/entity-view-event.d.ts +6 -0
  183. package/dist/esm/src/lib/requests/browser/entity-view-event.js +13 -0
  184. package/dist/esm/src/lib/requests/browser/get-page-widget-data.d.ts +15 -0
  185. package/dist/esm/src/lib/requests/browser/get-page-widget-data.js +21 -0
  186. package/dist/esm/src/lib/requests/browser/get-widget-data.d.ts +9 -0
  187. package/dist/esm/src/lib/requests/browser/get-widget-data.js +18 -0
  188. package/dist/esm/src/lib/requests/browser/widget-facet-click-event.d.ts +7 -0
  189. package/dist/esm/src/lib/requests/browser/widget-facet-click-event.js +14 -0
  190. package/dist/esm/src/lib/requests/browser/widget-item-click-event.d.ts +7 -0
  191. package/dist/esm/src/lib/requests/browser/widget-item-click-event.js +14 -0
  192. package/dist/esm/src/lib/requests/browser/widget-navigation-click-event.d.ts +7 -0
  193. package/dist/esm/src/lib/requests/browser/widget-navigation-click-event.js +14 -0
  194. package/dist/esm/src/lib/requests/browser/widget-suggestion-click-event.d.ts +7 -0
  195. package/dist/esm/src/lib/requests/browser/widget-suggestion-click-event.js +14 -0
  196. package/dist/esm/src/lib/requests/browser/widget-view-event.d.ts +6 -0
  197. package/dist/esm/src/lib/requests/browser/widget-view-event.js +13 -0
  198. package/dist/esm/src/lib/requests/post-request.d.ts +57 -0
  199. package/dist/esm/src/lib/requests/post-request.js +22 -0
  200. package/dist/esm/src/lib/requests/server/entity-view-event-server.d.ts +8 -0
  201. package/dist/esm/src/lib/requests/server/entity-view-event-server.js +14 -0
  202. package/dist/esm/src/lib/requests/server/get-page-widget-data-server.d.ts +15 -0
  203. package/dist/esm/src/lib/requests/server/get-page-widget-data-server.js +21 -0
  204. package/dist/esm/src/lib/requests/server/get-widget-data-server.d.ts +8 -0
  205. package/dist/esm/src/lib/requests/server/get-widget-data-server.js +15 -0
  206. package/dist/esm/src/lib/requests/server/widget-facet-click-event-server.d.ts +9 -0
  207. package/dist/esm/src/lib/requests/server/widget-facet-click-event-server.js +15 -0
  208. package/dist/esm/src/lib/requests/server/widget-item-click-event-server.d.ts +9 -0
  209. package/dist/esm/src/lib/requests/server/widget-item-click-event-server.js +15 -0
  210. package/dist/esm/src/lib/requests/server/widget-navigation-click-event-server.d.ts +9 -0
  211. package/dist/esm/src/lib/requests/server/widget-navigation-click-event-server.js +15 -0
  212. package/dist/esm/src/lib/requests/server/widget-suggestion-click-event-server.d.ts +9 -0
  213. package/dist/esm/src/lib/requests/server/widget-suggestion-click-event-server.js +15 -0
  214. package/dist/esm/src/lib/requests/server/widget-view-event-server.d.ts +9 -0
  215. package/dist/esm/src/lib/requests/server/widget-view-event-server.js +15 -0
  216. package/dist/esm/src/lib/types.d.ts +14 -0
  217. package/dist/esm/src/lib/types.js +1 -0
  218. package/dist/esm/src/server.d.ts +32 -0
  219. package/dist/esm/src/server.js +28 -0
  220. package/dist/esm/tsconfig.tsbuildinfo +1 -0
  221. package/package.json +40 -0
  222. package/server.cjs +3 -0
  223. package/server.d.ts +2 -0
  224. package/server.js +3 -0
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WidgetFacetClickEvent = void 0;
4
+ const consts_1 = require("../consts");
5
+ class WidgetFacetClickEvent {
6
+ /**
7
+ * Creates a search widget facet click event.
8
+ * @param widgetFacetClickEventParams - An object with the widget facet click params
9
+ * {@link WidgetFacetClickEventParams}
10
+ */
11
+ constructor({ request, pathname, widgetId, page, currency, language, channel, filters }) {
12
+ this._validate(currency, language);
13
+ this.request = request;
14
+ this.currency = currency;
15
+ this.language = language;
16
+ this.channel = channel;
17
+ this.filters = filters;
18
+ this.page = page;
19
+ this.pathname = pathname;
20
+ this.widgetId = widgetId;
21
+ }
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
+ }
28
+ _mapFiltersToDTO() {
29
+ return this.filters.map((filter) => {
30
+ if (this._rangeFacetFilterTypeGuard(filter))
31
+ return {
32
+ display_name: [filter.displayName],
33
+ end_value: filter.endValue,
34
+ facet_position: 0,
35
+ name: filter.name,
36
+ start_value: filter.startValue,
37
+ title: filter.title,
38
+ value: [filter.value],
39
+ value_position: [filter.valuePosition]
40
+ };
41
+ return {
42
+ display_name: [filter.displayName],
43
+ facet_position: filter.facetPosition,
44
+ name: filter.name,
45
+ title: filter.title,
46
+ value: [filter.value],
47
+ value_position: [filter.valuePosition]
48
+ };
49
+ });
50
+ }
51
+ _mapRequestToDTO() {
52
+ return {
53
+ advanced_query_text: this.request.advancedQueryText,
54
+ keyword: this.request.keyword,
55
+ modified_keyword: this.request.modifiedKeyword,
56
+ num_requested: this.request.numRequested,
57
+ num_results: this.request.numResults,
58
+ page_number: this.request.pageNumber,
59
+ page_size: this.request.pageSize,
60
+ redirect_url: this.request.redirectUrl,
61
+ total_results: this.request.totalResults
62
+ };
63
+ }
64
+ _rangeFacetFilterTypeGuard(filter) {
65
+ return 'startValue' in filter;
66
+ }
67
+ toDTO() {
68
+ const filtersDTO = this._mapFiltersToDTO();
69
+ const requestDTO = this._mapRequestToDTO();
70
+ return {
71
+ channel: this.channel,
72
+ currency: this.currency,
73
+ language: this.language,
74
+ page: this.page,
75
+ searchData: {
76
+ action_cause: 'filter',
77
+ value: {
78
+ context: {
79
+ page: {
80
+ uri: this.pathname
81
+ }
82
+ },
83
+ filters: filtersDTO,
84
+ request: requestDTO,
85
+ rfk_id: this.widgetId
86
+ }
87
+ },
88
+ type: 'SC_SEARCH_WIDGET_CLICK'
89
+ };
90
+ }
91
+ }
92
+ exports.WidgetFacetClickEvent = WidgetFacetClickEvent;
@@ -0,0 +1,28 @@
1
+ import type { NestedObject } from '@sitecore-cloudsdk/utils';
2
+ import type { SearchEventEntity, SearchEventRequest, WidgetItemClickEventParams } from './interfaces';
3
+ export declare class WidgetItemClickEvent {
4
+ protected request: SearchEventRequest;
5
+ protected entity: SearchEventEntity;
6
+ protected itemPosition: number;
7
+ protected pathname: string;
8
+ protected widgetId: string;
9
+ protected page?: string;
10
+ protected currency?: string;
11
+ protected language?: string;
12
+ protected channel?: string;
13
+ /**
14
+ * Creates a search widget item event.
15
+ * @param widgetItemClickEventParams - An object with the widget item click params
16
+ * {@link WidgetItemClickEventParams}
17
+ */
18
+ constructor({ request, entity, itemPosition, pathname, widgetId, page, currency, language, channel }: WidgetItemClickEventParams);
19
+ private _validate;
20
+ toDTO(): {
21
+ channel: string | undefined;
22
+ currency: string | undefined;
23
+ language: string | undefined;
24
+ page: string | undefined;
25
+ searchData: NestedObject;
26
+ type: string;
27
+ };
28
+ }
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WidgetItemClickEvent = void 0;
4
+ const consts_1 = require("../consts");
5
+ class WidgetItemClickEvent {
6
+ /**
7
+ * Creates a search widget item event.
8
+ * @param widgetItemClickEventParams - An object with the widget item click params
9
+ * {@link WidgetItemClickEventParams}
10
+ */
11
+ constructor({ request, entity, itemPosition, pathname, widgetId, page, currency, language, channel }) {
12
+ this._validate(currency, language);
13
+ this.entity = entity;
14
+ this.itemPosition = itemPosition;
15
+ this.page = page;
16
+ this.request = request;
17
+ this.pathname = pathname;
18
+ 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
+ }
29
+ toDTO() {
30
+ const eventRequestDTO = {
31
+ advanced_query_text: this.request.advancedQueryText,
32
+ keyword: this.request.keyword,
33
+ modified_keyword: this.request.modifiedKeyword,
34
+ num_requested: this.request.numRequested,
35
+ num_results: this.request.numResults,
36
+ page_number: this.request.pageNumber,
37
+ page_size: this.request.pageSize,
38
+ redirect_url: this.request.redirectUrl,
39
+ total_results: this.request.totalResults
40
+ };
41
+ const eventEntityDTO = {
42
+ attributes: this.entity.attributes,
43
+ entity_subtype: this.entity.entityType,
44
+ entity_type: this.entity.entity,
45
+ id: this.entity.id,
46
+ source_id: this.entity.sourceId,
47
+ uri: this.entity.uri
48
+ };
49
+ return {
50
+ channel: this.channel,
51
+ currency: this.currency,
52
+ language: this.language,
53
+ page: this.page,
54
+ searchData: {
55
+ action_cause: 'entity',
56
+ value: {
57
+ context: {
58
+ page: {
59
+ uri: this.pathname
60
+ }
61
+ },
62
+ entities: [eventEntityDTO],
63
+ index: this.itemPosition,
64
+ request: eventRequestDTO,
65
+ rfk_id: this.widgetId
66
+ }
67
+ },
68
+ type: 'SC_SEARCH_WIDGET_CLICK'
69
+ };
70
+ }
71
+ }
72
+ exports.WidgetItemClickEvent = WidgetItemClickEvent;
@@ -0,0 +1,26 @@
1
+ import type { NestedObject } from '@sitecore-cloudsdk/utils';
2
+ import type { WidgetNavigationClickEventParams } from './interfaces';
3
+ export declare class WidgetNavigationClickEvent {
4
+ protected itemPosition: number;
5
+ protected pathname: string;
6
+ protected widgetIdentifier: string;
7
+ protected page?: string;
8
+ protected currency?: string;
9
+ protected language?: string;
10
+ protected channel?: string;
11
+ /**
12
+ * Creates a search widget navigation event.
13
+ * @param widgetNavigationClickEventParams - an object containing navigation click params
14
+ * {@link WidgetNavigationClickEventParams}
15
+ */
16
+ constructor({ itemPosition, pathname, widgetId, page, currency, language, channel }: WidgetNavigationClickEventParams);
17
+ private _validate;
18
+ toDTO(): {
19
+ channel: string | undefined;
20
+ currency: string | undefined;
21
+ language: string | undefined;
22
+ page: string | undefined;
23
+ searchData: NestedObject;
24
+ type: string;
25
+ };
26
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WidgetNavigationClickEvent = void 0;
4
+ const consts_1 = require("../consts");
5
+ class WidgetNavigationClickEvent {
6
+ /**
7
+ * Creates a search widget navigation event.
8
+ * @param widgetNavigationClickEventParams - an object containing navigation click params
9
+ * {@link WidgetNavigationClickEventParams}
10
+ */
11
+ constructor({ itemPosition, pathname, widgetId, page, currency, language, channel }) {
12
+ this._validate(currency, language);
13
+ this.itemPosition = itemPosition;
14
+ this.page = page;
15
+ this.pathname = pathname;
16
+ 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
+ }
27
+ toDTO() {
28
+ return {
29
+ channel: this.channel,
30
+ currency: this.currency,
31
+ language: this.language,
32
+ page: this.page,
33
+ searchData: {
34
+ action_cause: 'navigation',
35
+ value: {
36
+ context: {
37
+ page: {
38
+ uri: this.pathname
39
+ }
40
+ },
41
+ index: this.itemPosition,
42
+ rfk_id: this.widgetIdentifier
43
+ }
44
+ },
45
+ type: 'SC_SEARCH_WIDGET_NAVIGATION_CLICK'
46
+ };
47
+ }
48
+ }
49
+ exports.WidgetNavigationClickEvent = WidgetNavigationClickEvent;
@@ -0,0 +1,29 @@
1
+ import type { NestedObject } from '@sitecore-cloudsdk/utils';
2
+ import type { SearchEventRequest, SuggestionFilterEventParams, WidgetSuggestionClickEventParams } from './interfaces';
3
+ export declare class WidgetSuggestionClickEvent {
4
+ protected request: SearchEventRequest;
5
+ protected filters?: Array<SuggestionFilterEventParams>;
6
+ protected pathname: string;
7
+ protected page?: string;
8
+ protected widgetIdentifier: string;
9
+ protected currency?: string;
10
+ protected language?: string;
11
+ protected channel?: string;
12
+ /**
13
+ * Creates a widget suggestion click event.
14
+ * @param widgetSuggestionClickEventParams - An object with the widget suggestion click event params
15
+ * {@link WidgetSuggestionClickEventParams}
16
+ */
17
+ constructor({ request, filters, pathname, page, widgetId, currency, language, channel }: WidgetSuggestionClickEventParams);
18
+ private _validate;
19
+ private _mapFiltersToDTO;
20
+ private _mapRequestToDTO;
21
+ toDTO(): {
22
+ channel: string | undefined;
23
+ currency: string | undefined;
24
+ language: string | undefined;
25
+ page: string | undefined;
26
+ searchData: NestedObject;
27
+ type: string;
28
+ };
29
+ }
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WidgetSuggestionClickEvent = void 0;
4
+ const consts_1 = require("../consts");
5
+ class WidgetSuggestionClickEvent {
6
+ /**
7
+ * Creates a widget suggestion click event.
8
+ * @param widgetSuggestionClickEventParams - An object with the widget suggestion click event params
9
+ * {@link WidgetSuggestionClickEventParams}
10
+ */
11
+ constructor({ request, filters, pathname, page, widgetId, currency, language, channel }) {
12
+ this._validate(currency, language);
13
+ this.request = request;
14
+ this.filters = filters;
15
+ this.pathname = pathname;
16
+ this.page = page;
17
+ this.widgetIdentifier = widgetId;
18
+ this.currency = currency;
19
+ this.language = language;
20
+ this.channel = channel;
21
+ }
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
+ }
28
+ _mapFiltersToDTO() {
29
+ return this.filters?.map((filter) => ({
30
+ display_name: [filter.displayName],
31
+ name: filter.name,
32
+ title: filter.title,
33
+ value: [filter.value],
34
+ value_position: [filter.valuePosition]
35
+ }));
36
+ }
37
+ _mapRequestToDTO() {
38
+ return {
39
+ advanced_query_text: this.request.advancedQueryText,
40
+ keyword: this.request.keyword,
41
+ modified_keyword: this.request.modifiedKeyword,
42
+ num_requested: this.request.numRequested,
43
+ num_results: this.request.numResults,
44
+ page_number: this.request.pageNumber,
45
+ page_size: this.request.pageSize,
46
+ redirect_url: this.request.redirectUrl,
47
+ total_results: this.request.totalResults
48
+ };
49
+ }
50
+ toDTO() {
51
+ const filtersDTO = this._mapFiltersToDTO();
52
+ const requestDTO = this._mapRequestToDTO();
53
+ return {
54
+ channel: this.channel,
55
+ currency: this.currency,
56
+ language: this.language,
57
+ page: this.page,
58
+ searchData: {
59
+ action_cause: 'suggestion',
60
+ value: {
61
+ context: {
62
+ page: {
63
+ uri: this.pathname
64
+ }
65
+ },
66
+ filters: filtersDTO,
67
+ request: requestDTO,
68
+ rfk_id: this.widgetIdentifier
69
+ }
70
+ },
71
+ type: 'SC_SEARCH_WIDGET_CLICK'
72
+ };
73
+ }
74
+ }
75
+ exports.WidgetSuggestionClickEvent = WidgetSuggestionClickEvent;
@@ -0,0 +1,28 @@
1
+ import type { NestedObject } from '@sitecore-cloudsdk/utils';
2
+ import type { SearchEventEntity, SearchEventRequest, WidgetViewEventParams } from './interfaces';
3
+ export declare class WidgetViewEvent {
4
+ protected request: SearchEventRequest;
5
+ protected entities: SearchEventEntity[];
6
+ protected pathname: string;
7
+ protected widgetIdentifier: string;
8
+ protected page?: string;
9
+ protected currency?: string;
10
+ protected language?: string;
11
+ protected channel?: string;
12
+ /**
13
+ * Creates a search widget view event.
14
+ * @param widgetViewEventParams - An object with the widget view events params {@link WidgetViewEventParams}
15
+ */
16
+ constructor({ request, entities, pathname, widgetId, page, currency, language, channel }: WidgetViewEventParams);
17
+ private _validate;
18
+ private _mapEntitiesToDTO;
19
+ private _mapRequestToDTO;
20
+ toDTO(): {
21
+ channel: string | undefined;
22
+ currency: string | undefined;
23
+ language: string | undefined;
24
+ page: string | undefined;
25
+ searchData: NestedObject;
26
+ type: string;
27
+ };
28
+ }
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WidgetViewEvent = void 0;
4
+ const consts_1 = require("../consts");
5
+ class WidgetViewEvent {
6
+ /**
7
+ * Creates a search widget view event.
8
+ * @param widgetViewEventParams - An object with the widget view events params {@link WidgetViewEventParams}
9
+ */
10
+ constructor({ request, entities, pathname, widgetId, page, currency, language, channel }) {
11
+ this._validate(currency, language);
12
+ this.entities = entities;
13
+ this.page = page;
14
+ this.request = request;
15
+ this.pathname = pathname;
16
+ 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
+ }
27
+ _mapEntitiesToDTO() {
28
+ return this.entities.map((entity) => ({
29
+ attributes: entity.attributes,
30
+ entity_subtype: entity.entityType,
31
+ entity_type: entity.entity,
32
+ id: entity.id,
33
+ source_id: entity.sourceId,
34
+ uri: entity.uri
35
+ }));
36
+ }
37
+ _mapRequestToDTO() {
38
+ return {
39
+ advanced_query_text: this.request.advancedQueryText,
40
+ keyword: this.request.keyword,
41
+ modified_keyword: this.request.modifiedKeyword,
42
+ num_requested: this.request.numRequested,
43
+ num_results: this.request.numResults,
44
+ page_number: this.request.pageNumber,
45
+ page_size: this.request.pageSize,
46
+ redirect_url: this.request.redirectUrl,
47
+ total_results: this.request.totalResults
48
+ };
49
+ }
50
+ toDTO() {
51
+ const entitiesDTO = this._mapEntitiesToDTO();
52
+ const requestDTO = this._mapRequestToDTO();
53
+ return {
54
+ channel: this.channel,
55
+ currency: this.currency,
56
+ language: this.language,
57
+ page: this.page,
58
+ searchData: {
59
+ action_cause: 'entity',
60
+ value: {
61
+ context: {
62
+ page: {
63
+ uri: this.pathname
64
+ }
65
+ },
66
+ entities: entitiesDTO,
67
+ request: requestDTO,
68
+ rfk_id: this.widgetIdentifier
69
+ }
70
+ },
71
+ type: 'SC_SEARCH_WIDGET_VIEW'
72
+ };
73
+ }
74
+ }
75
+ exports.WidgetViewEvent = WidgetViewEvent;
@@ -0,0 +1,23 @@
1
+ import { CloudSDKBrowserInitializer } from '@sitecore-cloudsdk/core/browser';
2
+ export declare function sideEffects(): Promise<void>;
3
+ /**
4
+ * Makes the functionality of the search package available.
5
+ * This functionality also requires the events package.
6
+ *
7
+ * @returns An instance of {@link CloudSDKBrowserInitializer}
8
+ *
9
+ * @example
10
+ * ```
11
+ * CloudSDK().addEvents().addSearch().initialize()
12
+ * ```
13
+ */
14
+ export declare function addSearch(this: CloudSDKBrowserInitializer): CloudSDKBrowserInitializer;
15
+ declare module '@sitecore-cloudsdk/core/browser' {
16
+ interface CloudSDKBrowserInitializer {
17
+ addSearch: typeof addSearch;
18
+ }
19
+ }
20
+ /**
21
+ * A function that handles the async browser init logic. Throws an error or awaits the promise.
22
+ */
23
+ export declare function awaitInit(): Promise<void>;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.awaitInit = exports.addSearch = exports.sideEffects = void 0;
4
+ // © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S.
5
+ const browser_1 = require("@sitecore-cloudsdk/core/browser");
6
+ const internal_1 = require("@sitecore-cloudsdk/core/internal");
7
+ const browser_2 = require("@sitecore-cloudsdk/events/browser");
8
+ const consts_1 = require("../../consts");
9
+ // eslint-disable-next-line no-empty-function, @typescript-eslint/no-empty-function
10
+ async function sideEffects() {
11
+ (0, internal_1.debug)(consts_1.SEARCH_NAMESPACE)('searchClient library initialized');
12
+ }
13
+ exports.sideEffects = sideEffects;
14
+ /**
15
+ * Makes the functionality of the search package available.
16
+ * This functionality also requires the events package.
17
+ *
18
+ * @returns An instance of {@link CloudSDKBrowserInitializer}
19
+ *
20
+ * @example
21
+ * ```
22
+ * CloudSDK().addEvents().addSearch().initialize()
23
+ * ```
24
+ */
25
+ function addSearch() {
26
+ const searchInitializer = new internal_1.PackageInitializer({
27
+ dependencies: [{ method: browser_2.PACKAGE_INITIALIZER_METHOD_NAME, name: browser_2.PACKAGE_NAME }],
28
+ sideEffects
29
+ });
30
+ internal_1.enabledPackagesBrowser.set(consts_1.PACKAGE_NAME, searchInitializer);
31
+ return this;
32
+ }
33
+ exports.addSearch = addSearch;
34
+ browser_1.CloudSDKBrowserInitializer.prototype.addSearch = addSearch;
35
+ /**
36
+ * A function that handles the async browser init logic. Throws an error or awaits the promise.
37
+ */
38
+ async function awaitInit() {
39
+ const initState = (0, internal_1.getEnabledPackageBrowser)(consts_1.PACKAGE_NAME)?.initState;
40
+ if (!initState)
41
+ throw new Error(consts_1.ErrorMessages.IE_0018);
42
+ await initState;
43
+ }
44
+ exports.awaitInit = awaitInit;
@@ -0,0 +1,21 @@
1
+ import { CloudSDKServerInitializer } from '@sitecore-cloudsdk/core/server';
2
+ export declare function sideEffects(): Promise<void>;
3
+ /**
4
+ * Makes the functionality of the search package available.
5
+ * This functionality also requires the events package.
6
+ *
7
+ * @param settings - The optional settings to initialize the search
8
+ * @returns An instance of {@link CloudSDKServerInitializer}
9
+ *
10
+ * @example
11
+ * ```
12
+ * CloudSDK().addEvents().addSearch().initialize()
13
+ * ```
14
+ */
15
+ export declare function addSearch(this: CloudSDKServerInitializer): CloudSDKServerInitializer;
16
+ declare module '@sitecore-cloudsdk/core/server' {
17
+ interface CloudSDKServerInitializer {
18
+ addSearch: typeof addSearch;
19
+ }
20
+ }
21
+ export declare function verifySearchPackageExistence(): void;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.verifySearchPackageExistence = exports.addSearch = exports.sideEffects = void 0;
4
+ // © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S.
5
+ const internal_1 = require("@sitecore-cloudsdk/core/internal");
6
+ const server_1 = require("@sitecore-cloudsdk/core/server");
7
+ const server_2 = require("@sitecore-cloudsdk/events/server");
8
+ const consts_1 = require("../../consts");
9
+ async function sideEffects() {
10
+ (0, internal_1.debug)(consts_1.SEARCH_NAMESPACE)('searchServer library initialized');
11
+ }
12
+ exports.sideEffects = sideEffects;
13
+ /**
14
+ * Makes the functionality of the search package available.
15
+ * This functionality also requires the events package.
16
+ *
17
+ * @param settings - The optional settings to initialize the search
18
+ * @returns An instance of {@link CloudSDKServerInitializer}
19
+ *
20
+ * @example
21
+ * ```
22
+ * CloudSDK().addEvents().addSearch().initialize()
23
+ * ```
24
+ */
25
+ function addSearch() {
26
+ const searchInitializer = new internal_1.PackageInitializerServer({
27
+ dependencies: [{ method: server_2.PACKAGE_INITIALIZER_METHOD_NAME, name: server_2.PACKAGE_NAME }],
28
+ sideEffects
29
+ });
30
+ internal_1.enabledPackagesServer.set(consts_1.PACKAGE_NAME, searchInitializer);
31
+ return this;
32
+ }
33
+ exports.addSearch = addSearch;
34
+ server_1.CloudSDKServerInitializer.prototype.addSearch = addSearch;
35
+ function verifySearchPackageExistence() {
36
+ if (!(0, internal_1.getEnabledPackageServer)(consts_1.PACKAGE_NAME))
37
+ throw Error(consts_1.ErrorMessages.IE_0019);
38
+ }
39
+ exports.verifySearchPackageExistence = verifySearchPackageExistence;