@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,76 @@
1
+ import type { Filter } from '../filters/interfaces';
2
+ import type { ContentOptions, ResultsItemDTO, ResultsOptions } from './interfaces';
3
+ import { RuleWidgetItem } from './rule-widget-item';
4
+ export declare class ResultsWidgetItem extends RuleWidgetItem {
5
+ protected _limit?: number;
6
+ protected _content?: ContentOptions;
7
+ protected _groupBy?: string;
8
+ protected _filter?: Filter;
9
+ /**
10
+ * Creates and holds the functionality of a widget item.
11
+ * @param entity - The widget's item entity.
12
+ * @param widgetId - The widget's item id.
13
+ * @param resultOptions - The widget's results options object.
14
+ */
15
+ constructor(entity: string, widgetId: string, resultOptions?: ResultsOptions);
16
+ /**
17
+ * Sets the search limit for the WidgetItem.
18
+ * This method updates the `limit` property of the search configuration within the WidgetItem instance.
19
+ * The limit is used to specify the maximum number of results to be returned, useful for controlling pagination.
20
+ *
21
+ * @param limit - The number to set as the search limit, which must be between 1 and 100, inclusive.
22
+ * @throws Error If the limit is less than 1 or greater than 100, indicating an invalid range.
23
+ */
24
+ set limit(limit: number);
25
+ /**
26
+ * @returns The limit property of the WidgetItem.
27
+ */
28
+ get limit(): number | undefined;
29
+ /**
30
+ * Sets the limit to undefined
31
+ */
32
+ resetLimit(): void;
33
+ /**
34
+ * Sets the search content for the ResultsItem.
35
+ * This method updates the `content` property within the ResultsItem instance.
36
+ * The attributes is used to define specific search criteria or filters.
37
+ * @param contentOptions - The array attributes that specifies the search criteria.
38
+ */
39
+ set content(contentOptions: ContentOptions);
40
+ /**
41
+ * @returns The content property of the WidgetItem.
42
+ */
43
+ get content(): ContentOptions | undefined;
44
+ /**
45
+ * Sets the content to undefined
46
+ */
47
+ resetContent(): void;
48
+ /**
49
+ * Sets the group_by operator for search object of the WidgetItem.
50
+ * This method updates the `attribute` property of the search configuration within the WidgetItem instance.
51
+ * @param groupBy - The attribute that specifies what search results are grouped by.
52
+ */
53
+ set groupBy(groupBy: string);
54
+ /**
55
+ * @returns The groupBy property of the WidgetItem.
56
+ */
57
+ get groupBy(): string | undefined;
58
+ /** Sets the groupBy to undefined */
59
+ resetGroupBy(): void;
60
+ private _validateGroupBy;
61
+ /** Set the search filter */
62
+ set filter(filter: Filter);
63
+ /** @returns The filter property of the WidgetItem */
64
+ get filter(): Filter | undefined;
65
+ /** Sets the filter to undefined */
66
+ resetFilter(): void;
67
+ /**
68
+ *
69
+ * @returns The content property in its DTO format.
70
+ */
71
+ private _contentToDTO;
72
+ /**
73
+ * Maps the results item to its DTO format.
74
+ */
75
+ protected _resultsToDTO(): ResultsItemDTO;
76
+ }
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ResultsWidgetItem = void 0;
4
+ // © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S.
5
+ const consts_1 = require("../../consts");
6
+ const rule_widget_item_1 = require("./rule-widget-item");
7
+ class ResultsWidgetItem extends rule_widget_item_1.RuleWidgetItem {
8
+ /**
9
+ * Creates and holds the functionality of a widget item.
10
+ * @param entity - The widget's item entity.
11
+ * @param widgetId - The widget's item id.
12
+ * @param resultOptions - The widget's results options object.
13
+ */
14
+ constructor(entity, widgetId, resultOptions) {
15
+ super(entity, widgetId, resultOptions?.rule);
16
+ this._validateNumberInRange1To100(consts_1.ErrorMessages.IV_0007, resultOptions?.limit);
17
+ this._validateGroupBy(resultOptions?.groupBy);
18
+ this._limit = resultOptions?.limit;
19
+ this._content = resultOptions?.content;
20
+ this._groupBy = resultOptions?.groupBy;
21
+ this._filter = resultOptions?.filter;
22
+ }
23
+ /**
24
+ * Sets the search limit for the WidgetItem.
25
+ * This method updates the `limit` property of the search configuration within the WidgetItem instance.
26
+ * The limit is used to specify the maximum number of results to be returned, useful for controlling pagination.
27
+ *
28
+ * @param limit - The number to set as the search limit, which must be between 1 and 100, inclusive.
29
+ * @throws Error If the limit is less than 1 or greater than 100, indicating an invalid range.
30
+ */
31
+ set limit(limit) {
32
+ this._validateNumberInRange1To100(consts_1.ErrorMessages.IV_0007, limit);
33
+ this._limit = limit;
34
+ }
35
+ /**
36
+ * @returns The limit property of the WidgetItem.
37
+ */
38
+ get limit() {
39
+ return this._limit;
40
+ }
41
+ /**
42
+ * Sets the limit to undefined
43
+ */
44
+ resetLimit() {
45
+ this._limit = undefined;
46
+ }
47
+ /**
48
+ * Sets the search content for the ResultsItem.
49
+ * This method updates the `content` property within the ResultsItem instance.
50
+ * The attributes is used to define specific search criteria or filters.
51
+ * @param contentOptions - The array attributes that specifies the search criteria.
52
+ */
53
+ set content(contentOptions) {
54
+ this._content = contentOptions;
55
+ }
56
+ /**
57
+ * @returns The content property of the WidgetItem.
58
+ */
59
+ get content() {
60
+ return this._content;
61
+ }
62
+ /**
63
+ * Sets the content to undefined
64
+ */
65
+ resetContent() {
66
+ this._content = undefined;
67
+ }
68
+ /**
69
+ * Sets the group_by operator for search object of the WidgetItem.
70
+ * This method updates the `attribute` property of the search configuration within the WidgetItem instance.
71
+ * @param groupBy - The attribute that specifies what search results are grouped by.
72
+ */
73
+ set groupBy(groupBy) {
74
+ this._validateGroupBy(groupBy);
75
+ this._groupBy = groupBy;
76
+ }
77
+ /**
78
+ * @returns The groupBy property of the WidgetItem.
79
+ */
80
+ get groupBy() {
81
+ return this._groupBy;
82
+ }
83
+ /** Sets the groupBy to undefined */
84
+ resetGroupBy() {
85
+ this._groupBy = undefined;
86
+ }
87
+ _validateGroupBy(groupBy) {
88
+ if (typeof groupBy === 'string' && groupBy.trim().length === 0)
89
+ throw new Error(consts_1.ErrorMessages.IV_0022);
90
+ }
91
+ /** Set the search filter */
92
+ set filter(filter) {
93
+ this._filter = filter;
94
+ }
95
+ /** @returns The filter property of the WidgetItem */
96
+ get filter() {
97
+ return this._filter;
98
+ }
99
+ /** Sets the filter to undefined */
100
+ resetFilter() {
101
+ this._filter = undefined;
102
+ }
103
+ /**
104
+ *
105
+ * @returns The content property in its DTO format.
106
+ */
107
+ _contentToDTO() {
108
+ if (!this._content)
109
+ return undefined;
110
+ const { attributes, ...rest } = this._content;
111
+ return { fields: attributes, ...rest };
112
+ }
113
+ /**
114
+ * Maps the results item to its DTO format.
115
+ */
116
+ _resultsToDTO() {
117
+ return {
118
+ ...(this._limit && { limit: this._limit }),
119
+ ...(this._filter && { filter: this._filter.toDTO() }),
120
+ ...(this._groupBy && { group_by: this._groupBy }),
121
+ ...(this._content && { content: this._contentToDTO() }),
122
+ ...(this._rule && { rule: this._ruleToDTO(this._rule) })
123
+ };
124
+ }
125
+ }
126
+ exports.ResultsWidgetItem = ResultsWidgetItem;
@@ -0,0 +1,14 @@
1
+ import type { SearchRuleDTO, SearchRuleOptions } from './interfaces';
2
+ import { WidgetItem } from './widget-item';
3
+ /** Base class for widgets that support rules functionality */
4
+ export declare class RuleWidgetItem extends WidgetItem {
5
+ protected _rule?: SearchRuleOptions;
6
+ constructor(entity: string, widgetId: string, rule?: SearchRuleOptions);
7
+ set rule(rule: SearchRuleOptions);
8
+ get rule(): SearchRuleOptions | undefined;
9
+ resetRule(): void;
10
+ protected _validateRule(rule?: SearchRuleOptions): void;
11
+ private _convertToBoostRuleDTO;
12
+ private _convertToIncludeRuleDTO;
13
+ protected _ruleToDTO(rule?: SearchRuleOptions): SearchRuleDTO | undefined;
14
+ }
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RuleWidgetItem = void 0;
4
+ // © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S.
5
+ const consts_1 = require("../../consts");
6
+ const widget_item_1 = require("./widget-item");
7
+ /** Base class for widgets that support rules functionality */
8
+ class RuleWidgetItem extends widget_item_1.WidgetItem {
9
+ constructor(entity, widgetId, rule) {
10
+ super(entity, widgetId);
11
+ if (rule) {
12
+ this._validateRule(rule);
13
+ this._rule = rule;
14
+ }
15
+ }
16
+ set rule(rule) {
17
+ this._validateRule(rule);
18
+ this._rule = rule;
19
+ }
20
+ get rule() {
21
+ return this._rule;
22
+ }
23
+ resetRule() {
24
+ this._rule = undefined;
25
+ }
26
+ _validateRule(rule) {
27
+ if (!rule)
28
+ return;
29
+ // Validate pin rules
30
+ rule.pin?.forEach((pin) => {
31
+ this._validateNonEmptyString(consts_1.ErrorMessages.IV_0027, pin.id);
32
+ this._validatePositiveInteger(consts_1.ErrorMessages.IV_0028, pin.slot);
33
+ });
34
+ // Validate boost rules
35
+ rule.boost?.forEach((item) => item.slots?.forEach((slot) => this._validatePositiveInteger(consts_1.ErrorMessages.IV_0028, slot)));
36
+ // Validate include rules
37
+ rule.include?.forEach((item) => item.slots.forEach((slot) => this._validatePositiveInteger(consts_1.ErrorMessages.IV_0028, slot)));
38
+ }
39
+ _convertToBoostRuleDTO(rules) {
40
+ return rules.map((rule) => ({
41
+ filter: rule.filter.toDTO(),
42
+ slots: rule.slots,
43
+ weight: rule.weight
44
+ }));
45
+ }
46
+ _convertToIncludeRuleDTO(rules) {
47
+ return rules.map((rule) => ({
48
+ filter: rule.filter.toDTO(),
49
+ slots: rule.slots
50
+ }));
51
+ }
52
+ _ruleToDTO(rule) {
53
+ if (!rule)
54
+ return undefined;
55
+ const dto = {
56
+ behaviors: rule.behaviors
57
+ };
58
+ if (rule.blacklist)
59
+ dto.blacklist = { filter: rule.blacklist.filter.toDTO() };
60
+ if (rule.boost)
61
+ dto.boost = this._convertToBoostRuleDTO(rule.boost);
62
+ if (rule.bury)
63
+ dto.bury = { filter: rule.bury.filter.toDTO() };
64
+ if (rule.include)
65
+ dto.include = this._convertToIncludeRuleDTO(rule.include);
66
+ if (rule.pin)
67
+ dto.pin = rule.pin;
68
+ return dto;
69
+ }
70
+ }
71
+ exports.RuleWidgetItem = RuleWidgetItem;
@@ -0,0 +1,167 @@
1
+ import type { ArrayOfAtLeastOne } from '../filters/interfaces';
2
+ import type { FacetOptions, QueryOptions, SearchOptions, SearchPersonalizationOptions, SearchRankingOptions, SearchSortOptions, SearchSuggestionOptions, SearchWidgetItemDTO } from './interfaces';
3
+ import { ResultsWidgetItem } from './results-widget-item';
4
+ export declare class SearchWidgetItem extends ResultsWidgetItem {
5
+ private _query?;
6
+ private _offset?;
7
+ private _facet?;
8
+ private _sort?;
9
+ private _suggestion?;
10
+ private _ranking?;
11
+ private _personalization?;
12
+ /**
13
+ * Creates and holds the functionality of a search widget item.
14
+ * @param entity - The widget's item entity.
15
+ * @param widgetId - The widget's item id.
16
+ * @param searchOptions - The widget's search options object.
17
+ *
18
+ */
19
+ constructor(entity: string, widgetId: string, searchOptions?: SearchOptions);
20
+ /**
21
+ * @param personalization - the object of the `personalization` param
22
+ */
23
+ set personalization(personalization: SearchPersonalizationOptions);
24
+ /**
25
+ * @returns the `personalization` property of the SearchWidgetItem
26
+ */
27
+ get personalization(): SearchPersonalizationOptions | undefined;
28
+ /**
29
+ * sets the `personalization` property to undefined of the SearchWidgetItem
30
+ */
31
+ resetPersonalization(): void;
32
+ /**
33
+ *
34
+ * @param personalization - the object of the `personalization` property
35
+ * @throws IV_0030 if `personalization.attributes` contains an empty or whitespace string
36
+ * @throws IV_0031 if `personalization.ids` contains an empty string
37
+ */
38
+ private _validatePersonalization;
39
+ /**
40
+ *
41
+ * @returns The personalization property in its DTO format.
42
+ */
43
+ private _personalizationToDTO;
44
+ /**
45
+ * @param ranking - the object of the `ranking` param
46
+ */
47
+ set ranking(ranking: ArrayOfAtLeastOne<SearchRankingOptions>);
48
+ /**
49
+ * @returns the `ranking` property of the SearchWidgetItem
50
+ */
51
+ get ranking(): ArrayOfAtLeastOne<SearchRankingOptions> | undefined;
52
+ /**
53
+ * sets the `ranking` property to undefined of the SearchWidgetItem
54
+ */
55
+ resetRanking(): void;
56
+ /**
57
+ *
58
+ * @param ranking - the object of the `ranking` property
59
+ * @throws IV_0016 if `ranking.name` contains an empty string
60
+ * @throws IV_0016 if `ranking.weight` is outside of range 1 ~ 100
61
+ */
62
+ private _validateRanking;
63
+ /**
64
+ * Sets the search query for the SearchWidgetItem.
65
+ * This method updates the `query` property of the search configuration within the SearchWidgetItem instance.
66
+ * The query is used to define specific search criteria.
67
+ * @param query - The operator that specifies the search criteria.
68
+ */
69
+ set query(query: QueryOptions);
70
+ /**
71
+ * @returns The query property of the SearchWidgetItem.
72
+ */
73
+ get query(): QueryOptions | undefined;
74
+ private _validateQuery;
75
+ /**
76
+ * Sets the query data to undefined
77
+ */
78
+ resetQuery(): void;
79
+ /**
80
+ * Sets the search facet for the SearchWidgetItem.
81
+ * This method updates the `facet` property of the search configuration within the SearchWidgetItem instance.
82
+ *
83
+ * @param facet - The object to set as the search facet.
84
+ * @throws Error If the max is less than 1 or greater than 100, indicating an invalid range.
85
+ */
86
+ set facet(facet: FacetOptions);
87
+ /**
88
+ * @returns The facet property of the SearchWidgetItem.
89
+ */
90
+ get facet(): FacetOptions | undefined;
91
+ /**
92
+ * Sets the facet data to undefined
93
+ */
94
+ resetFacet(): void;
95
+ /**
96
+ * Sets the search offset for the WidgetItem.
97
+ * Updates the offset property to manage pagination. Throws an error if the offset value is less than 0.
98
+ * @param offset - The non-negative integer to set as the search offset.
99
+ * @throws Error If the offset is less than 0.
100
+ */
101
+ set offset(offset: number);
102
+ /**
103
+ * @returns The offset property of the SearchWidgetItem.
104
+ */
105
+ get offset(): number | undefined;
106
+ /**
107
+ * Sets the offset value to undefined
108
+ */
109
+ resetOffset(): void;
110
+ /**
111
+ * Sets the suggestion property for SearchWidgetItem
112
+ * @param suggestion - the <array>array of objects for the suggestion param
113
+ * @throws error if <SearchSuggestionOptions>.<suggestion>.name property is an empty string or contains spaces
114
+ * @throws error if <SearchSuggestionOptions>.<suggestion>.max property is not between the range 1 ~ 100
115
+ */
116
+ set suggestion(suggestion: ArrayOfAtLeastOne<SearchSuggestionOptions>);
117
+ /**
118
+ * @returns The suggestion property of the SearchWidgetItem.
119
+ */
120
+ get suggestion(): ArrayOfAtLeastOne<SearchSuggestionOptions> | undefined;
121
+ /**
122
+ * Sets the suggestion property to undefined.
123
+ */
124
+ resetSuggestion(): void;
125
+ private _suggestionToDTO;
126
+ /**
127
+ * Validates the suggestion property. Throws error if provided with incorrect values.
128
+ * @param suggestion - the <array> of objects for the suggestion param
129
+ */
130
+ private _validateSuggestion;
131
+ /**
132
+ * Sets the search sort property for SearchWidgetItem
133
+ * Throws an error if one of the values under sort have an empty `name`
134
+ * @param sort - the object for the sort param
135
+ * @throws error if <SearchSortOptions>.<SortValue>.name(s) property is an empty string
136
+ */
137
+ set sort(sort: SearchSortOptions);
138
+ /**
139
+ * @returns The sort property of the SearchWidgetItem.
140
+ */
141
+ get sort(): SearchSortOptions | undefined;
142
+ /**
143
+ * Sets the sort data to undefined
144
+ */
145
+ resetSort(): void;
146
+ /**
147
+ * Validates the sort field. Throws an error if incorrect values are provided.
148
+ */
149
+ private _validateSort;
150
+ /**
151
+ * Validates the facet type fields. Throws an errors if incorrect values are provided.
152
+ */
153
+ private _validateFacetTypes;
154
+ private _filterToDTO;
155
+ /**
156
+ * Builds the sort piece of the DTO.
157
+ */
158
+ private _facetSortToDTO;
159
+ /**
160
+ * Builds the filtering options array.
161
+ */
162
+ private _filteringOptionsToDTO;
163
+ /**
164
+ * Maps the search widget item to its DTO format.
165
+ */
166
+ toDTO(): SearchWidgetItemDTO;
167
+ }