@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.
- package/README.md +95 -0
- package/browser.cjs +3 -0
- package/browser.d.ts +2 -0
- package/browser.js +3 -0
- package/dist/cjs/package.json +40 -0
- package/dist/cjs/src/browser.d.ts +32 -0
- package/dist/cjs/src/browser.js +53 -0
- package/dist/cjs/src/lib/consts.d.ts +38 -0
- package/dist/cjs/src/lib/consts.js +49 -0
- package/dist/cjs/src/lib/events/entity-view-event.d.ts +22 -0
- package/dist/cjs/src/lib/events/entity-view-event.js +51 -0
- package/dist/cjs/src/lib/events/interfaces.d.ts +135 -0
- package/dist/cjs/src/lib/events/interfaces.js +3 -0
- package/dist/cjs/src/lib/events/widget-facet-click-event.d.ts +30 -0
- package/dist/cjs/src/lib/events/widget-facet-click-event.js +92 -0
- package/dist/cjs/src/lib/events/widget-item-click-event.d.ts +28 -0
- package/dist/cjs/src/lib/events/widget-item-click-event.js +72 -0
- package/dist/cjs/src/lib/events/widget-navigation-click-event.d.ts +26 -0
- package/dist/cjs/src/lib/events/widget-navigation-click-event.js +49 -0
- package/dist/cjs/src/lib/events/widget-suggestion-click-event.d.ts +29 -0
- package/dist/cjs/src/lib/events/widget-suggestion-click-event.js +75 -0
- package/dist/cjs/src/lib/events/widget-view-event.d.ts +28 -0
- package/dist/cjs/src/lib/events/widget-view-event.js +75 -0
- package/dist/cjs/src/lib/initializer/browser/initializer.d.ts +23 -0
- package/dist/cjs/src/lib/initializer/browser/initializer.js +44 -0
- package/dist/cjs/src/lib/initializer/server/initializer.d.ts +21 -0
- package/dist/cjs/src/lib/initializer/server/initializer.js +39 -0
- package/dist/cjs/src/lib/request-entities/context/context.d.ts +141 -0
- package/dist/cjs/src/lib/request-entities/context/context.js +273 -0
- package/dist/cjs/src/lib/request-entities/context/interfaces.d.ts +106 -0
- package/dist/cjs/src/lib/request-entities/context/interfaces.js +2 -0
- package/dist/cjs/src/lib/request-entities/filters/base-filter.d.ts +17 -0
- package/dist/cjs/src/lib/request-entities/filters/base-filter.js +17 -0
- package/dist/cjs/src/lib/request-entities/filters/comparison-filter.d.ts +18 -0
- package/dist/cjs/src/lib/request-entities/filters/comparison-filter.js +30 -0
- package/dist/cjs/src/lib/request-entities/filters/facet/comparison-facet-filter.d.ts +18 -0
- package/dist/cjs/src/lib/request-entities/filters/facet/comparison-facet-filter.js +26 -0
- package/dist/cjs/src/lib/request-entities/filters/facet/interfaces.d.ts +21 -0
- package/dist/cjs/src/lib/request-entities/filters/facet/interfaces.js +2 -0
- package/dist/cjs/src/lib/request-entities/filters/facet/list-facet-filter.d.ts +18 -0
- package/dist/cjs/src/lib/request-entities/filters/facet/list-facet-filter.js +26 -0
- package/dist/cjs/src/lib/request-entities/filters/facet/logical-facet-filter.d.ts +19 -0
- package/dist/cjs/src/lib/request-entities/filters/facet/logical-facet-filter.js +26 -0
- package/dist/cjs/src/lib/request-entities/filters/facet/not-facet-filter.d.ts +7 -0
- package/dist/cjs/src/lib/request-entities/filters/facet/not-facet-filter.js +22 -0
- package/dist/cjs/src/lib/request-entities/filters/geo-filter.d.ts +19 -0
- package/dist/cjs/src/lib/request-entities/filters/geo-filter.js +49 -0
- package/dist/cjs/src/lib/request-entities/filters/geo-within-filter.d.ts +19 -0
- package/dist/cjs/src/lib/request-entities/filters/geo-within-filter.js +44 -0
- package/dist/cjs/src/lib/request-entities/filters/interfaces.d.ts +66 -0
- package/dist/cjs/src/lib/request-entities/filters/interfaces.js +2 -0
- package/dist/cjs/src/lib/request-entities/filters/list-filter.d.ts +18 -0
- package/dist/cjs/src/lib/request-entities/filters/list-filter.js +30 -0
- package/dist/cjs/src/lib/request-entities/filters/logical-filter.d.ts +16 -0
- package/dist/cjs/src/lib/request-entities/filters/logical-filter.js +32 -0
- package/dist/cjs/src/lib/request-entities/widgets/interfaces.d.ts +372 -0
- package/dist/cjs/src/lib/request-entities/widgets/interfaces.js +2 -0
- package/dist/cjs/src/lib/request-entities/widgets/questions-answers-widget-item.d.ts +62 -0
- package/dist/cjs/src/lib/request-entities/widgets/questions-answers-widget-item.js +117 -0
- package/dist/cjs/src/lib/request-entities/widgets/recommendation-widget-item.d.ts +39 -0
- package/dist/cjs/src/lib/request-entities/widgets/recommendation-widget-item.js +84 -0
- package/dist/cjs/src/lib/request-entities/widgets/results-widget-item.d.ts +76 -0
- package/dist/cjs/src/lib/request-entities/widgets/results-widget-item.js +126 -0
- package/dist/cjs/src/lib/request-entities/widgets/rule-widget-item.d.ts +14 -0
- package/dist/cjs/src/lib/request-entities/widgets/rule-widget-item.js +71 -0
- package/dist/cjs/src/lib/request-entities/widgets/search-widget-item.d.ts +167 -0
- package/dist/cjs/src/lib/request-entities/widgets/search-widget-item.js +353 -0
- package/dist/cjs/src/lib/request-entities/widgets/utils.d.ts +8 -0
- package/dist/cjs/src/lib/request-entities/widgets/utils.js +14 -0
- package/dist/cjs/src/lib/request-entities/widgets/widget-item.d.ts +64 -0
- package/dist/cjs/src/lib/request-entities/widgets/widget-item.js +114 -0
- package/dist/cjs/src/lib/request-entities/widgets/widget-request-data.d.ts +15 -0
- package/dist/cjs/src/lib/request-entities/widgets/widget-request-data.js +30 -0
- package/dist/cjs/src/lib/requests/browser/entity-view-event.d.ts +6 -0
- package/dist/cjs/src/lib/requests/browser/entity-view-event.js +17 -0
- package/dist/cjs/src/lib/requests/browser/get-page-widget-data.d.ts +15 -0
- package/dist/cjs/src/lib/requests/browser/get-page-widget-data.js +25 -0
- package/dist/cjs/src/lib/requests/browser/get-widget-data.d.ts +9 -0
- package/dist/cjs/src/lib/requests/browser/get-widget-data.js +21 -0
- package/dist/cjs/src/lib/requests/browser/widget-facet-click-event.d.ts +7 -0
- package/dist/cjs/src/lib/requests/browser/widget-facet-click-event.js +18 -0
- package/dist/cjs/src/lib/requests/browser/widget-item-click-event.d.ts +7 -0
- package/dist/cjs/src/lib/requests/browser/widget-item-click-event.js +18 -0
- package/dist/cjs/src/lib/requests/browser/widget-navigation-click-event.d.ts +7 -0
- package/dist/cjs/src/lib/requests/browser/widget-navigation-click-event.js +18 -0
- package/dist/cjs/src/lib/requests/browser/widget-suggestion-click-event.d.ts +7 -0
- package/dist/cjs/src/lib/requests/browser/widget-suggestion-click-event.js +18 -0
- package/dist/cjs/src/lib/requests/browser/widget-view-event.d.ts +6 -0
- package/dist/cjs/src/lib/requests/browser/widget-view-event.js +17 -0
- package/dist/cjs/src/lib/requests/post-request.d.ts +57 -0
- package/dist/cjs/src/lib/requests/post-request.js +26 -0
- package/dist/cjs/src/lib/requests/server/entity-view-event-server.d.ts +8 -0
- package/dist/cjs/src/lib/requests/server/entity-view-event-server.js +18 -0
- package/dist/cjs/src/lib/requests/server/get-page-widget-data-server.d.ts +15 -0
- package/dist/cjs/src/lib/requests/server/get-page-widget-data-server.js +25 -0
- package/dist/cjs/src/lib/requests/server/get-widget-data-server.d.ts +8 -0
- package/dist/cjs/src/lib/requests/server/get-widget-data-server.js +19 -0
- package/dist/cjs/src/lib/requests/server/widget-facet-click-event-server.d.ts +9 -0
- package/dist/cjs/src/lib/requests/server/widget-facet-click-event-server.js +19 -0
- package/dist/cjs/src/lib/requests/server/widget-item-click-event-server.d.ts +9 -0
- package/dist/cjs/src/lib/requests/server/widget-item-click-event-server.js +19 -0
- package/dist/cjs/src/lib/requests/server/widget-navigation-click-event-server.d.ts +9 -0
- package/dist/cjs/src/lib/requests/server/widget-navigation-click-event-server.js +19 -0
- package/dist/cjs/src/lib/requests/server/widget-suggestion-click-event-server.d.ts +9 -0
- package/dist/cjs/src/lib/requests/server/widget-suggestion-click-event-server.js +19 -0
- package/dist/cjs/src/lib/requests/server/widget-view-event-server.d.ts +9 -0
- package/dist/cjs/src/lib/requests/server/widget-view-event-server.js +19 -0
- package/dist/cjs/src/lib/types.d.ts +14 -0
- package/dist/cjs/src/lib/types.js +2 -0
- package/dist/cjs/src/server.d.ts +32 -0
- package/dist/cjs/src/server.js +55 -0
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/esm/package.json +40 -0
- package/dist/esm/src/browser.d.ts +32 -0
- package/dist/esm/src/browser.js +26 -0
- package/dist/esm/src/lib/consts.d.ts +38 -0
- package/dist/esm/src/lib/consts.js +43 -0
- package/dist/esm/src/lib/events/entity-view-event.d.ts +22 -0
- package/dist/esm/src/lib/events/entity-view-event.js +47 -0
- package/dist/esm/src/lib/events/interfaces.d.ts +135 -0
- package/dist/esm/src/lib/events/interfaces.js +2 -0
- package/dist/esm/src/lib/events/widget-facet-click-event.d.ts +30 -0
- package/dist/esm/src/lib/events/widget-facet-click-event.js +88 -0
- package/dist/esm/src/lib/events/widget-item-click-event.d.ts +28 -0
- package/dist/esm/src/lib/events/widget-item-click-event.js +68 -0
- package/dist/esm/src/lib/events/widget-navigation-click-event.d.ts +26 -0
- package/dist/esm/src/lib/events/widget-navigation-click-event.js +45 -0
- package/dist/esm/src/lib/events/widget-suggestion-click-event.d.ts +29 -0
- package/dist/esm/src/lib/events/widget-suggestion-click-event.js +71 -0
- package/dist/esm/src/lib/events/widget-view-event.d.ts +28 -0
- package/dist/esm/src/lib/events/widget-view-event.js +71 -0
- package/dist/esm/src/lib/initializer/browser/initializer.d.ts +23 -0
- package/dist/esm/src/lib/initializer/browser/initializer.js +38 -0
- package/dist/esm/src/lib/initializer/server/initializer.d.ts +21 -0
- package/dist/esm/src/lib/initializer/server/initializer.js +33 -0
- package/dist/esm/src/lib/request-entities/context/context.d.ts +141 -0
- package/dist/esm/src/lib/request-entities/context/context.js +269 -0
- package/dist/esm/src/lib/request-entities/context/interfaces.d.ts +106 -0
- package/dist/esm/src/lib/request-entities/context/interfaces.js +1 -0
- package/dist/esm/src/lib/request-entities/filters/base-filter.d.ts +17 -0
- package/dist/esm/src/lib/request-entities/filters/base-filter.js +13 -0
- package/dist/esm/src/lib/request-entities/filters/comparison-filter.d.ts +18 -0
- package/dist/esm/src/lib/request-entities/filters/comparison-filter.js +26 -0
- package/dist/esm/src/lib/request-entities/filters/facet/comparison-facet-filter.d.ts +18 -0
- package/dist/esm/src/lib/request-entities/filters/facet/comparison-facet-filter.js +22 -0
- package/dist/esm/src/lib/request-entities/filters/facet/interfaces.d.ts +21 -0
- package/dist/esm/src/lib/request-entities/filters/facet/interfaces.js +1 -0
- package/dist/esm/src/lib/request-entities/filters/facet/list-facet-filter.d.ts +18 -0
- package/dist/esm/src/lib/request-entities/filters/facet/list-facet-filter.js +22 -0
- package/dist/esm/src/lib/request-entities/filters/facet/logical-facet-filter.d.ts +19 -0
- package/dist/esm/src/lib/request-entities/filters/facet/logical-facet-filter.js +22 -0
- package/dist/esm/src/lib/request-entities/filters/facet/not-facet-filter.d.ts +7 -0
- package/dist/esm/src/lib/request-entities/filters/facet/not-facet-filter.js +18 -0
- package/dist/esm/src/lib/request-entities/filters/geo-filter.d.ts +19 -0
- package/dist/esm/src/lib/request-entities/filters/geo-filter.js +45 -0
- package/dist/esm/src/lib/request-entities/filters/geo-within-filter.d.ts +19 -0
- package/dist/esm/src/lib/request-entities/filters/geo-within-filter.js +40 -0
- package/dist/esm/src/lib/request-entities/filters/interfaces.d.ts +66 -0
- package/dist/esm/src/lib/request-entities/filters/interfaces.js +1 -0
- package/dist/esm/src/lib/request-entities/filters/list-filter.d.ts +18 -0
- package/dist/esm/src/lib/request-entities/filters/list-filter.js +26 -0
- package/dist/esm/src/lib/request-entities/filters/logical-filter.d.ts +16 -0
- package/dist/esm/src/lib/request-entities/filters/logical-filter.js +28 -0
- package/dist/esm/src/lib/request-entities/widgets/interfaces.d.ts +372 -0
- package/dist/esm/src/lib/request-entities/widgets/interfaces.js +1 -0
- package/dist/esm/src/lib/request-entities/widgets/questions-answers-widget-item.d.ts +62 -0
- package/dist/esm/src/lib/request-entities/widgets/questions-answers-widget-item.js +113 -0
- package/dist/esm/src/lib/request-entities/widgets/recommendation-widget-item.d.ts +39 -0
- package/dist/esm/src/lib/request-entities/widgets/recommendation-widget-item.js +80 -0
- package/dist/esm/src/lib/request-entities/widgets/results-widget-item.d.ts +76 -0
- package/dist/esm/src/lib/request-entities/widgets/results-widget-item.js +122 -0
- package/dist/esm/src/lib/request-entities/widgets/rule-widget-item.d.ts +14 -0
- package/dist/esm/src/lib/request-entities/widgets/rule-widget-item.js +67 -0
- package/dist/esm/src/lib/request-entities/widgets/search-widget-item.d.ts +167 -0
- package/dist/esm/src/lib/request-entities/widgets/search-widget-item.js +349 -0
- package/dist/esm/src/lib/request-entities/widgets/utils.d.ts +8 -0
- package/dist/esm/src/lib/request-entities/widgets/utils.js +10 -0
- package/dist/esm/src/lib/request-entities/widgets/widget-item.d.ts +64 -0
- package/dist/esm/src/lib/request-entities/widgets/widget-item.js +110 -0
- package/dist/esm/src/lib/request-entities/widgets/widget-request-data.d.ts +15 -0
- package/dist/esm/src/lib/request-entities/widgets/widget-request-data.js +26 -0
- package/dist/esm/src/lib/requests/browser/entity-view-event.d.ts +6 -0
- package/dist/esm/src/lib/requests/browser/entity-view-event.js +13 -0
- package/dist/esm/src/lib/requests/browser/get-page-widget-data.d.ts +15 -0
- package/dist/esm/src/lib/requests/browser/get-page-widget-data.js +21 -0
- package/dist/esm/src/lib/requests/browser/get-widget-data.d.ts +9 -0
- package/dist/esm/src/lib/requests/browser/get-widget-data.js +18 -0
- package/dist/esm/src/lib/requests/browser/widget-facet-click-event.d.ts +7 -0
- package/dist/esm/src/lib/requests/browser/widget-facet-click-event.js +14 -0
- package/dist/esm/src/lib/requests/browser/widget-item-click-event.d.ts +7 -0
- package/dist/esm/src/lib/requests/browser/widget-item-click-event.js +14 -0
- package/dist/esm/src/lib/requests/browser/widget-navigation-click-event.d.ts +7 -0
- package/dist/esm/src/lib/requests/browser/widget-navigation-click-event.js +14 -0
- package/dist/esm/src/lib/requests/browser/widget-suggestion-click-event.d.ts +7 -0
- package/dist/esm/src/lib/requests/browser/widget-suggestion-click-event.js +14 -0
- package/dist/esm/src/lib/requests/browser/widget-view-event.d.ts +6 -0
- package/dist/esm/src/lib/requests/browser/widget-view-event.js +13 -0
- package/dist/esm/src/lib/requests/post-request.d.ts +57 -0
- package/dist/esm/src/lib/requests/post-request.js +22 -0
- package/dist/esm/src/lib/requests/server/entity-view-event-server.d.ts +8 -0
- package/dist/esm/src/lib/requests/server/entity-view-event-server.js +14 -0
- package/dist/esm/src/lib/requests/server/get-page-widget-data-server.d.ts +15 -0
- package/dist/esm/src/lib/requests/server/get-page-widget-data-server.js +21 -0
- package/dist/esm/src/lib/requests/server/get-widget-data-server.d.ts +8 -0
- package/dist/esm/src/lib/requests/server/get-widget-data-server.js +15 -0
- package/dist/esm/src/lib/requests/server/widget-facet-click-event-server.d.ts +9 -0
- package/dist/esm/src/lib/requests/server/widget-facet-click-event-server.js +15 -0
- package/dist/esm/src/lib/requests/server/widget-item-click-event-server.d.ts +9 -0
- package/dist/esm/src/lib/requests/server/widget-item-click-event-server.js +15 -0
- package/dist/esm/src/lib/requests/server/widget-navigation-click-event-server.d.ts +9 -0
- package/dist/esm/src/lib/requests/server/widget-navigation-click-event-server.js +15 -0
- package/dist/esm/src/lib/requests/server/widget-suggestion-click-event-server.d.ts +9 -0
- package/dist/esm/src/lib/requests/server/widget-suggestion-click-event-server.js +15 -0
- package/dist/esm/src/lib/requests/server/widget-view-event-server.d.ts +9 -0
- package/dist/esm/src/lib/requests/server/widget-view-event-server.js +15 -0
- package/dist/esm/src/lib/types.d.ts +14 -0
- package/dist/esm/src/lib/types.js +1 -0
- package/dist/esm/src/server.d.ts +32 -0
- package/dist/esm/src/server.js +28 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -0
- package/package.json +40 -0
- package/server.cjs +3 -0
- package/server.d.ts +2 -0
- package/server.js +3 -0
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SearchWidgetItem = 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 results_widget_item_1 = require("./results-widget-item");
|
|
7
|
+
const utils_1 = require("./utils");
|
|
8
|
+
class SearchWidgetItem extends results_widget_item_1.ResultsWidgetItem {
|
|
9
|
+
/**
|
|
10
|
+
* Creates and holds the functionality of a search widget item.
|
|
11
|
+
* @param entity - The widget's item entity.
|
|
12
|
+
* @param widgetId - The widget's item id.
|
|
13
|
+
* @param searchOptions - The widget's search options object.
|
|
14
|
+
*
|
|
15
|
+
*/
|
|
16
|
+
constructor(entity, widgetId, searchOptions) {
|
|
17
|
+
super(entity, widgetId, {
|
|
18
|
+
content: searchOptions?.content,
|
|
19
|
+
filter: searchOptions?.filter,
|
|
20
|
+
groupBy: searchOptions?.groupBy,
|
|
21
|
+
limit: searchOptions?.limit,
|
|
22
|
+
rule: searchOptions?.rule
|
|
23
|
+
});
|
|
24
|
+
if (!searchOptions)
|
|
25
|
+
return;
|
|
26
|
+
if (searchOptions.facet && Object.keys(searchOptions.facet).length) {
|
|
27
|
+
this._validateNumberInRange1To100(consts_1.ErrorMessages.IV_0014, searchOptions.facet.max);
|
|
28
|
+
this._validateFacetTypes(searchOptions.facet.types);
|
|
29
|
+
this._facet = searchOptions.facet;
|
|
30
|
+
}
|
|
31
|
+
if (searchOptions.query) {
|
|
32
|
+
this._validateQuery(searchOptions.query);
|
|
33
|
+
this._query = searchOptions.query;
|
|
34
|
+
}
|
|
35
|
+
this._validatePositiveInteger(consts_1.ErrorMessages.IV_0008, searchOptions.offset);
|
|
36
|
+
this._offset = searchOptions.offset;
|
|
37
|
+
this._validatePersonalization(searchOptions.personalization);
|
|
38
|
+
this._personalization = searchOptions.personalization;
|
|
39
|
+
this._validateRanking(searchOptions.ranking);
|
|
40
|
+
this._ranking = searchOptions.ranking;
|
|
41
|
+
this._validateSort(searchOptions.sort);
|
|
42
|
+
this._sort = searchOptions.sort;
|
|
43
|
+
this._validateSuggestion(searchOptions.suggestion);
|
|
44
|
+
this._suggestion = searchOptions.suggestion;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* @param personalization - the object of the `personalization` param
|
|
48
|
+
*/
|
|
49
|
+
set personalization(personalization) {
|
|
50
|
+
this._validatePersonalization(personalization);
|
|
51
|
+
this._personalization = personalization;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* @returns the `personalization` property of the SearchWidgetItem
|
|
55
|
+
*/
|
|
56
|
+
get personalization() {
|
|
57
|
+
return this._personalization;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* sets the `personalization` property to undefined of the SearchWidgetItem
|
|
61
|
+
*/
|
|
62
|
+
resetPersonalization() {
|
|
63
|
+
this._personalization = undefined;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
*
|
|
67
|
+
* @param personalization - the object of the `personalization` property
|
|
68
|
+
* @throws IV_0030 if `personalization.attributes` contains an empty or whitespace string
|
|
69
|
+
* @throws IV_0031 if `personalization.ids` contains an empty string
|
|
70
|
+
*/
|
|
71
|
+
_validatePersonalization(personalization) {
|
|
72
|
+
if (!personalization)
|
|
73
|
+
return;
|
|
74
|
+
personalization.attributes.forEach((attribute) => {
|
|
75
|
+
this._validateNonEmptyNoWhitespaceString(consts_1.ErrorMessages.IV_0030, attribute);
|
|
76
|
+
});
|
|
77
|
+
if (personalization.algorithm === 'mlt')
|
|
78
|
+
personalization.ids.forEach((id) => {
|
|
79
|
+
this._validateNonEmptyString(consts_1.ErrorMessages.IV_0031, id);
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
*
|
|
84
|
+
* @returns The personalization property in its DTO format.
|
|
85
|
+
*/
|
|
86
|
+
_personalizationToDTO() {
|
|
87
|
+
if (!this._personalization)
|
|
88
|
+
return undefined;
|
|
89
|
+
const { attributes, ...rest } = this._personalization;
|
|
90
|
+
return { fields: attributes, ...rest };
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* @param ranking - the object of the `ranking` param
|
|
94
|
+
*/
|
|
95
|
+
set ranking(ranking) {
|
|
96
|
+
this._validateRanking(ranking);
|
|
97
|
+
this._ranking = ranking;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* @returns the `ranking` property of the SearchWidgetItem
|
|
101
|
+
*/
|
|
102
|
+
get ranking() {
|
|
103
|
+
return this._ranking;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* sets the `ranking` property to undefined of the SearchWidgetItem
|
|
107
|
+
*/
|
|
108
|
+
resetRanking() {
|
|
109
|
+
this._ranking = undefined;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
*
|
|
113
|
+
* @param ranking - the object of the `ranking` property
|
|
114
|
+
* @throws IV_0016 if `ranking.name` contains an empty string
|
|
115
|
+
* @throws IV_0016 if `ranking.weight` is outside of range 1 ~ 100
|
|
116
|
+
*/
|
|
117
|
+
_validateRanking(ranking) {
|
|
118
|
+
ranking?.forEach((rank) => {
|
|
119
|
+
this._validateNumberInRange(consts_1.ErrorMessages.IV_0029, { max: 100, min: 0.1 }, rank.weight);
|
|
120
|
+
this._validateNonEmptyNoWhitespaceString(consts_1.ErrorMessages.IV_0016, rank.name);
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Sets the search query for the SearchWidgetItem.
|
|
125
|
+
* This method updates the `query` property of the search configuration within the SearchWidgetItem instance.
|
|
126
|
+
* The query is used to define specific search criteria.
|
|
127
|
+
* @param query - The operator that specifies the search criteria.
|
|
128
|
+
*/
|
|
129
|
+
set query(query) {
|
|
130
|
+
this._validateQuery(query);
|
|
131
|
+
this._query = query;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* @returns The query property of the SearchWidgetItem.
|
|
135
|
+
*/
|
|
136
|
+
get query() {
|
|
137
|
+
return this._query;
|
|
138
|
+
}
|
|
139
|
+
_validateQuery(query) {
|
|
140
|
+
this._validateStringLengthInRange1To100(consts_1.ErrorMessages.IV_0009, query.keyphrase);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Sets the query data to undefined
|
|
144
|
+
*/
|
|
145
|
+
resetQuery() {
|
|
146
|
+
this._query = undefined;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Sets the search facet for the SearchWidgetItem.
|
|
150
|
+
* This method updates the `facet` property of the search configuration within the SearchWidgetItem instance.
|
|
151
|
+
*
|
|
152
|
+
* @param facet - The object to set as the search facet.
|
|
153
|
+
* @throws Error If the max is less than 1 or greater than 100, indicating an invalid range.
|
|
154
|
+
*/
|
|
155
|
+
set facet(facet) {
|
|
156
|
+
this._validateNumberInRange1To100(consts_1.ErrorMessages.IV_0014, facet.max);
|
|
157
|
+
this._validateFacetTypes(facet.types);
|
|
158
|
+
this._facet = facet;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* @returns The facet property of the SearchWidgetItem.
|
|
162
|
+
*/
|
|
163
|
+
get facet() {
|
|
164
|
+
return this._facet;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Sets the facet data to undefined
|
|
168
|
+
*/
|
|
169
|
+
resetFacet() {
|
|
170
|
+
this._facet = undefined;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Sets the search offset for the WidgetItem.
|
|
174
|
+
* Updates the offset property to manage pagination. Throws an error if the offset value is less than 0.
|
|
175
|
+
* @param offset - The non-negative integer to set as the search offset.
|
|
176
|
+
* @throws Error If the offset is less than 0.
|
|
177
|
+
*/
|
|
178
|
+
set offset(offset) {
|
|
179
|
+
this._validatePositiveInteger(consts_1.ErrorMessages.IV_0008, offset);
|
|
180
|
+
this._offset = offset;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* @returns The offset property of the SearchWidgetItem.
|
|
184
|
+
*/
|
|
185
|
+
get offset() {
|
|
186
|
+
return this._offset;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Sets the offset value to undefined
|
|
190
|
+
*/
|
|
191
|
+
resetOffset() {
|
|
192
|
+
this._offset = undefined;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Sets the suggestion property for SearchWidgetItem
|
|
196
|
+
* @param suggestion - the <array>array of objects for the suggestion param
|
|
197
|
+
* @throws error if <SearchSuggestionOptions>.<suggestion>.name property is an empty string or contains spaces
|
|
198
|
+
* @throws error if <SearchSuggestionOptions>.<suggestion>.max property is not between the range 1 ~ 100
|
|
199
|
+
*/
|
|
200
|
+
set suggestion(suggestion) {
|
|
201
|
+
this._validateSuggestion(suggestion);
|
|
202
|
+
this._suggestion = suggestion;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* @returns The suggestion property of the SearchWidgetItem.
|
|
206
|
+
*/
|
|
207
|
+
get suggestion() {
|
|
208
|
+
return this._suggestion;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Sets the suggestion property to undefined.
|
|
212
|
+
*/
|
|
213
|
+
resetSuggestion() {
|
|
214
|
+
this._suggestion = undefined;
|
|
215
|
+
}
|
|
216
|
+
_suggestionToDTO() {
|
|
217
|
+
if (!this._suggestion)
|
|
218
|
+
return undefined;
|
|
219
|
+
return this._suggestion.map((item) => {
|
|
220
|
+
const { keyphraseFallback, ...rest } = item;
|
|
221
|
+
return { ...rest, keyphrase_fallback: keyphraseFallback };
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Validates the suggestion property. Throws error if provided with incorrect values.
|
|
226
|
+
* @param suggestion - the <array> of objects for the suggestion param
|
|
227
|
+
*/
|
|
228
|
+
_validateSuggestion(suggestion) {
|
|
229
|
+
suggestion?.forEach((suggestionItem) => {
|
|
230
|
+
this._validateNumberInRange1To100(consts_1.ErrorMessages.IV_0014, suggestionItem.max);
|
|
231
|
+
this._validateNonEmptyNoWhitespaceString(consts_1.ErrorMessages.IV_0016, suggestionItem.name);
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Sets the search sort property for SearchWidgetItem
|
|
236
|
+
* Throws an error if one of the values under sort have an empty `name`
|
|
237
|
+
* @param sort - the object for the sort param
|
|
238
|
+
* @throws error if <SearchSortOptions>.<SortValue>.name(s) property is an empty string
|
|
239
|
+
*/
|
|
240
|
+
set sort(sort) {
|
|
241
|
+
this._validateSort(sort);
|
|
242
|
+
this._sort = sort;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* @returns The sort property of the SearchWidgetItem.
|
|
246
|
+
*/
|
|
247
|
+
get sort() {
|
|
248
|
+
return this._sort;
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Sets the sort data to undefined
|
|
252
|
+
*/
|
|
253
|
+
resetSort() {
|
|
254
|
+
this._sort = undefined;
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Validates the sort field. Throws an error if incorrect values are provided.
|
|
258
|
+
*/
|
|
259
|
+
_validateSort(sort) {
|
|
260
|
+
sort?.value?.forEach((sortValueItem) => {
|
|
261
|
+
this._validateNonEmptyString(consts_1.ErrorMessages.IV_0026, sortValueItem.name);
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Validates the facet type fields. Throws an errors if incorrect values are provided.
|
|
266
|
+
*/
|
|
267
|
+
_validateFacetTypes(types) {
|
|
268
|
+
if (!types)
|
|
269
|
+
return;
|
|
270
|
+
types.forEach((type) => {
|
|
271
|
+
if (!type.name || type.name.includes(' '))
|
|
272
|
+
throw new Error(consts_1.ErrorMessages.IV_0016);
|
|
273
|
+
this._validateStringLengthInRange1To100(consts_1.ErrorMessages.IV_0018, type.keyphrase);
|
|
274
|
+
this._validateNumberInRange1To100(consts_1.ErrorMessages.IV_0017, type.max);
|
|
275
|
+
this._validateNumberInRange1To100(consts_1.ErrorMessages.IV_0019, type.minCount);
|
|
276
|
+
if (typeof type.sort === 'object' && typeof type.sort.after === 'string') {
|
|
277
|
+
this._validateNonEmptyNoWhitespaceString(consts_1.ErrorMessages.IV_0020, type.sort.after);
|
|
278
|
+
if (type.sort.name !== 'text')
|
|
279
|
+
throw new Error(consts_1.ErrorMessages.IV_0021);
|
|
280
|
+
}
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
_filterToDTO(type) {
|
|
284
|
+
if (!type.filter)
|
|
285
|
+
return undefined;
|
|
286
|
+
if (!(0, utils_1.isFacetFilter)(type.filter.values))
|
|
287
|
+
return type.filter;
|
|
288
|
+
return { type: type.filter.type, values: type.filter.values.map((filter) => filter.toDTO()) };
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Builds the sort piece of the DTO.
|
|
292
|
+
*/
|
|
293
|
+
_facetSortToDTO(type) {
|
|
294
|
+
if (type.sort)
|
|
295
|
+
return {
|
|
296
|
+
after: type.sort.after,
|
|
297
|
+
sort: { name: type.sort.name, order: type.sort.order }
|
|
298
|
+
};
|
|
299
|
+
return {};
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Builds the filtering options array.
|
|
303
|
+
*/
|
|
304
|
+
_filteringOptionsToDTO(filteringOptions) {
|
|
305
|
+
if (!filteringOptions)
|
|
306
|
+
return undefined;
|
|
307
|
+
if (filteringOptions === 'Dynamic AND')
|
|
308
|
+
return ['hard_filters', 'other_facet_values', 'own_values'];
|
|
309
|
+
if (filteringOptions === 'Dynamic OR')
|
|
310
|
+
return ['hard_filters', 'other_facet_values'];
|
|
311
|
+
return ['hard_filters'];
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Maps the search widget item to its DTO format.
|
|
315
|
+
*/
|
|
316
|
+
toDTO() {
|
|
317
|
+
const baseDTO = super.toDTO();
|
|
318
|
+
const resultsDTO = this._resultsToDTO();
|
|
319
|
+
const facet = {
|
|
320
|
+
all: this._facet?.all,
|
|
321
|
+
coverage: this._facet?.coverage,
|
|
322
|
+
max: this._facet?.max,
|
|
323
|
+
sort: this._facet?.sort
|
|
324
|
+
};
|
|
325
|
+
if (this._facet?.types)
|
|
326
|
+
facet.types = this._facet.types.map((type) => ({
|
|
327
|
+
exclude: type.exclude,
|
|
328
|
+
filter: this._filterToDTO(type),
|
|
329
|
+
filtering_options: this._filteringOptionsToDTO(type.filteringOptions),
|
|
330
|
+
keyphrase: type.keyphrase,
|
|
331
|
+
max: type.max,
|
|
332
|
+
min_count: type.minCount,
|
|
333
|
+
name: type.name,
|
|
334
|
+
...this._facetSortToDTO(type)
|
|
335
|
+
}));
|
|
336
|
+
const search = {
|
|
337
|
+
...{ offset: this._offset },
|
|
338
|
+
...(this._query && { query: this._query }),
|
|
339
|
+
...(Object.values(facet).filter((value) => value !== undefined).length && { facet }),
|
|
340
|
+
...{ personalization: this._personalizationToDTO() },
|
|
341
|
+
...{ ranking: this._ranking },
|
|
342
|
+
...{ suggestion: this._suggestionToDTO() },
|
|
343
|
+
...{ sort: this._sort },
|
|
344
|
+
...resultsDTO
|
|
345
|
+
};
|
|
346
|
+
const dto = {
|
|
347
|
+
...baseDTO,
|
|
348
|
+
search: Object.values(search).filter((value) => value !== undefined).length ? search : undefined
|
|
349
|
+
};
|
|
350
|
+
return dto;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
exports.SearchWidgetItem = SearchWidgetItem;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ArrayOfAtLeastOne } from '../filters/interfaces';
|
|
2
|
+
import type { FacetFilter } from './interfaces';
|
|
3
|
+
/**
|
|
4
|
+
* Checks if the provided filters are facet filters.
|
|
5
|
+
* @param filters - The filters to check.
|
|
6
|
+
* @returns True if the filters are facet filters, false otherwise.
|
|
7
|
+
*/
|
|
8
|
+
export declare function isFacetFilter(filters: ArrayOfAtLeastOne<string> | ArrayOfAtLeastOne<FacetFilter>): filters is ArrayOfAtLeastOne<FacetFilter>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isFacetFilter = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Checks if the provided filters are facet filters.
|
|
6
|
+
* @param filters - The filters to check.
|
|
7
|
+
* @returns True if the filters are facet filters, false otherwise.
|
|
8
|
+
*/
|
|
9
|
+
function isFacetFilter(filters) {
|
|
10
|
+
if (typeof filters[0] === 'string')
|
|
11
|
+
return false;
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
exports.isFacetFilter = isFacetFilter;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { ErrorMessages } from '../../consts';
|
|
2
|
+
import type { WidgetItemDTO } from './interfaces';
|
|
3
|
+
export declare class WidgetItem {
|
|
4
|
+
protected _entity: string;
|
|
5
|
+
protected _widgetId: string;
|
|
6
|
+
/**
|
|
7
|
+
* Creates and holds the functionality of a widget item.
|
|
8
|
+
* @param entity - The widget's item entity.
|
|
9
|
+
* @param widgetId - The widget's item id.
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
constructor(entity: string, widgetId: string);
|
|
13
|
+
/**
|
|
14
|
+
* Sets the entity for the WidgetItem.
|
|
15
|
+
* This method updates the `entity` property of WidgetItem instance.
|
|
16
|
+
*
|
|
17
|
+
* @param entity - The entity to set.
|
|
18
|
+
*/
|
|
19
|
+
set entity(entity: string);
|
|
20
|
+
/**
|
|
21
|
+
* @returns The entity property of the WidgetItem.
|
|
22
|
+
*/
|
|
23
|
+
get entity(): string;
|
|
24
|
+
private _validateEntity;
|
|
25
|
+
/**
|
|
26
|
+
* Sets the id for the WidgetItem.
|
|
27
|
+
* This method updates the `widgetId` property of WidgetItem instance.
|
|
28
|
+
*
|
|
29
|
+
* @param widgetId - The entity to set.
|
|
30
|
+
*/
|
|
31
|
+
set widgetId(widgetId: string);
|
|
32
|
+
/**
|
|
33
|
+
* @returns The id property of the WidgetItem.
|
|
34
|
+
*/
|
|
35
|
+
get widgetId(): string;
|
|
36
|
+
private _validateWidgetId;
|
|
37
|
+
protected _validateNumberInRange1To100(errorMessage: ErrorMessages, num?: number): void;
|
|
38
|
+
/**
|
|
39
|
+
*
|
|
40
|
+
* @param errorMessage - The error message
|
|
41
|
+
* @param range - min and max range
|
|
42
|
+
* @param num - number to test
|
|
43
|
+
* @returns void
|
|
44
|
+
*/
|
|
45
|
+
protected _validateNumberInRange(errorMessage: ErrorMessages, range: {
|
|
46
|
+
min: number;
|
|
47
|
+
max: number;
|
|
48
|
+
}, num?: number): void;
|
|
49
|
+
protected _validateStringLengthInRange1To100(errorMessage: ErrorMessages, str?: string): void;
|
|
50
|
+
protected _validatePositiveInteger(error: ErrorMessages, num?: number): void;
|
|
51
|
+
protected _validateNonEmptyString(errorMessage: ErrorMessages, str?: string): void;
|
|
52
|
+
/**
|
|
53
|
+
* Tests if passed string is defined, is not empty string and does not contain whitespaces.
|
|
54
|
+
* @param errorMessage - Error Message
|
|
55
|
+
* @param string - the string to test
|
|
56
|
+
* @returns void
|
|
57
|
+
* @throws Error when failed
|
|
58
|
+
*/
|
|
59
|
+
protected _validateNonEmptyNoWhitespaceString(errorMessage: ErrorMessages, string?: string): void;
|
|
60
|
+
/**
|
|
61
|
+
* Maps the widget item to its DTO format.
|
|
62
|
+
*/
|
|
63
|
+
toDTO(): WidgetItemDTO;
|
|
64
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WidgetItem = 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
|
+
class WidgetItem {
|
|
7
|
+
/**
|
|
8
|
+
* Creates and holds the functionality of a widget item.
|
|
9
|
+
* @param entity - The widget's item entity.
|
|
10
|
+
* @param widgetId - The widget's item id.
|
|
11
|
+
*
|
|
12
|
+
*/
|
|
13
|
+
constructor(entity, widgetId) {
|
|
14
|
+
this._validateWidgetId(widgetId);
|
|
15
|
+
this._validateEntity(entity);
|
|
16
|
+
this._entity = entity;
|
|
17
|
+
this._widgetId = widgetId;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Sets the entity for the WidgetItem.
|
|
21
|
+
* This method updates the `entity` property of WidgetItem instance.
|
|
22
|
+
*
|
|
23
|
+
* @param entity - The entity to set.
|
|
24
|
+
*/
|
|
25
|
+
set entity(entity) {
|
|
26
|
+
this._validateEntity(entity);
|
|
27
|
+
this._entity = entity;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* @returns The entity property of the WidgetItem.
|
|
31
|
+
*/
|
|
32
|
+
get entity() {
|
|
33
|
+
return this._entity;
|
|
34
|
+
}
|
|
35
|
+
_validateEntity(entity) {
|
|
36
|
+
if (!entity || entity.trim().length === 0)
|
|
37
|
+
throw new Error(consts_1.ErrorMessages.MV_0010);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Sets the id for the WidgetItem.
|
|
41
|
+
* This method updates the `widgetId` property of WidgetItem instance.
|
|
42
|
+
*
|
|
43
|
+
* @param widgetId - The entity to set.
|
|
44
|
+
*/
|
|
45
|
+
set widgetId(widgetId) {
|
|
46
|
+
this._validateWidgetId(widgetId);
|
|
47
|
+
this._widgetId = widgetId;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* @returns The id property of the WidgetItem.
|
|
51
|
+
*/
|
|
52
|
+
get widgetId() {
|
|
53
|
+
return this._widgetId;
|
|
54
|
+
}
|
|
55
|
+
_validateWidgetId(widgetId) {
|
|
56
|
+
if (!widgetId || widgetId.trim().length === 0)
|
|
57
|
+
throw new Error(consts_1.ErrorMessages.MV_0011);
|
|
58
|
+
}
|
|
59
|
+
_validateNumberInRange1To100(errorMessage, num) {
|
|
60
|
+
if (num === undefined || (num >= 1 && num <= 100))
|
|
61
|
+
return;
|
|
62
|
+
throw new Error(errorMessage);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
*
|
|
66
|
+
* @param errorMessage - The error message
|
|
67
|
+
* @param range - min and max range
|
|
68
|
+
* @param num - number to test
|
|
69
|
+
* @returns void
|
|
70
|
+
*/
|
|
71
|
+
_validateNumberInRange(errorMessage, range, num) {
|
|
72
|
+
if (num === undefined || (num >= range.min && num <= range.max))
|
|
73
|
+
return;
|
|
74
|
+
throw new Error(errorMessage);
|
|
75
|
+
}
|
|
76
|
+
_validateStringLengthInRange1To100(errorMessage, str) {
|
|
77
|
+
if (str === undefined || (str.trim().length >= 1 && str.length <= 100))
|
|
78
|
+
return;
|
|
79
|
+
throw new Error(errorMessage);
|
|
80
|
+
}
|
|
81
|
+
_validatePositiveInteger(error, num) {
|
|
82
|
+
if (num === undefined || num >= 0)
|
|
83
|
+
return;
|
|
84
|
+
throw new Error(error);
|
|
85
|
+
}
|
|
86
|
+
_validateNonEmptyString(errorMessage, str) {
|
|
87
|
+
if (str === undefined || str.trim().length >= 1)
|
|
88
|
+
return;
|
|
89
|
+
throw new Error(errorMessage);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Tests if passed string is defined, is not empty string and does not contain whitespaces.
|
|
93
|
+
* @param errorMessage - Error Message
|
|
94
|
+
* @param string - the string to test
|
|
95
|
+
* @returns void
|
|
96
|
+
* @throws Error when failed
|
|
97
|
+
*/
|
|
98
|
+
_validateNonEmptyNoWhitespaceString(errorMessage, string) {
|
|
99
|
+
if (string && !string.includes(' '))
|
|
100
|
+
return;
|
|
101
|
+
throw new Error(errorMessage);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Maps the widget item to its DTO format.
|
|
105
|
+
*/
|
|
106
|
+
toDTO() {
|
|
107
|
+
return {
|
|
108
|
+
entity: this._entity,
|
|
109
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
110
|
+
rfk_id: this._widgetId
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.WidgetItem = WidgetItem;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { WidgetDTO } from './interfaces';
|
|
2
|
+
import type { WidgetItem } from './widget-item';
|
|
3
|
+
export declare class WidgetRequestData {
|
|
4
|
+
private _widgetItems;
|
|
5
|
+
/**
|
|
6
|
+
* Creates and holds the functionality of the widget request data.
|
|
7
|
+
* @param widgetItems - Array of {@link WidgetItem} instances.
|
|
8
|
+
*/
|
|
9
|
+
constructor(widgetItems: WidgetItem[]);
|
|
10
|
+
private _validateWidgetItems;
|
|
11
|
+
/**
|
|
12
|
+
* Maps the widget items to their DTO format.
|
|
13
|
+
*/
|
|
14
|
+
toDTO(): WidgetDTO;
|
|
15
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WidgetRequestData = 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
|
+
class WidgetRequestData {
|
|
7
|
+
/**
|
|
8
|
+
* Creates and holds the functionality of the widget request data.
|
|
9
|
+
* @param widgetItems - Array of {@link WidgetItem} instances.
|
|
10
|
+
*/
|
|
11
|
+
constructor(widgetItems) {
|
|
12
|
+
this._validateWidgetItems(widgetItems);
|
|
13
|
+
this._widgetItems = widgetItems;
|
|
14
|
+
}
|
|
15
|
+
_validateWidgetItems(widgetItems) {
|
|
16
|
+
if (widgetItems.length === 0)
|
|
17
|
+
throw new Error(consts_1.ErrorMessages.MV_0012);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Maps the widget items to their DTO format.
|
|
21
|
+
*/
|
|
22
|
+
toDTO() {
|
|
23
|
+
return {
|
|
24
|
+
widget: {
|
|
25
|
+
items: this._widgetItems.map((widgetItem) => widgetItem.toDTO())
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.WidgetRequestData = WidgetRequestData;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { EntityViewEventParams } from '../../events/interfaces';
|
|
2
|
+
/**
|
|
3
|
+
* This function sends an entity view event from browser.
|
|
4
|
+
* @param entityViewEventParams - An object containing conversion event params from {@link EntityViewEventParams}
|
|
5
|
+
*/
|
|
6
|
+
export declare function entityView(entityViewEventParams: EntityViewEventParams): Promise<import("@sitecore-cloudsdk/core/internal").EPResponse | null>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.entityView = 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/events/browser");
|
|
6
|
+
const entity_view_event_1 = require("../../events/entity-view-event");
|
|
7
|
+
const initializer_1 = require("../../initializer/browser/initializer");
|
|
8
|
+
/**
|
|
9
|
+
* This function sends an entity view event from browser.
|
|
10
|
+
* @param entityViewEventParams - An object containing conversion event params from {@link EntityViewEventParams}
|
|
11
|
+
*/
|
|
12
|
+
async function entityView(entityViewEventParams) {
|
|
13
|
+
await (0, initializer_1.awaitInit)();
|
|
14
|
+
const conversionEventDTO = new entity_view_event_1.EntityViewEvent(entityViewEventParams).toDTO();
|
|
15
|
+
return await (0, browser_1.event)(conversionEventDTO);
|
|
16
|
+
}
|
|
17
|
+
exports.entityView = entityView;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Context } from '../../request-entities/context/context';
|
|
2
|
+
import type { Pathname } from '../../types';
|
|
3
|
+
import type { SearchEndpointResponse } from '../post-request';
|
|
4
|
+
/**
|
|
5
|
+
* This function requests widget data for a page.
|
|
6
|
+
* @param pathname - The path of the URL.
|
|
7
|
+
* @returns The response object.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getPageWidgetData(pathname: Pathname): Promise<SearchEndpointResponse | null>;
|
|
10
|
+
/**
|
|
11
|
+
* This function requests widget data for a page.
|
|
12
|
+
* @param context - The context.
|
|
13
|
+
* @returns The response object.
|
|
14
|
+
*/
|
|
15
|
+
export declare function getPageWidgetData(context: Context): Promise<SearchEndpointResponse | null>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPageWidgetData = 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 consts_1 = require("../../consts");
|
|
7
|
+
const initializer_1 = require("../../initializer/browser/initializer");
|
|
8
|
+
const context_1 = require("../../request-entities/context/context");
|
|
9
|
+
const post_request_1 = require("../post-request");
|
|
10
|
+
async function getPageWidgetData(param) {
|
|
11
|
+
await (0, initializer_1.awaitInit)();
|
|
12
|
+
const settings = (0, internal_1.getCloudSDKSettingsBrowser)();
|
|
13
|
+
let context;
|
|
14
|
+
if (param instanceof context_1.Context) {
|
|
15
|
+
if (!param.page)
|
|
16
|
+
throw new Error(consts_1.ErrorMessages.MV_0006);
|
|
17
|
+
context = param;
|
|
18
|
+
}
|
|
19
|
+
else
|
|
20
|
+
context = new context_1.Context({ page: { uri: param } });
|
|
21
|
+
const contextRequestBody = context.toDTO();
|
|
22
|
+
const body = JSON.stringify({ ...contextRequestBody });
|
|
23
|
+
return await (0, post_request_1.sendPostRequest)(body, settings);
|
|
24
|
+
}
|
|
25
|
+
exports.getPageWidgetData = getPageWidgetData;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Context } from '../../request-entities/context/context';
|
|
2
|
+
import type { WidgetRequestData } from '../../request-entities/widgets/widget-request-data';
|
|
3
|
+
import type { SearchEndpointResponse } from '../post-request';
|
|
4
|
+
/**
|
|
5
|
+
* This function requests widget data.
|
|
6
|
+
* @param widgetRequestData - An instance of {@link WidgetRequestData}.
|
|
7
|
+
* @returns The response object.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getWidgetData(widgetRequestData: WidgetRequestData, contextRequestData?: Context): Promise<SearchEndpointResponse | null>;
|