@searchstax-inc/searchstudio-ux-angular 1.1.3 → 1.1.5
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/esm2022/lib/components/searchstax-results/searchstax-results.component.mjs +19 -3
- package/esm2022/lib/components/searchstax-search-pagination/searchstax-search-pagination.component.mjs +5 -3
- package/fesm2022/searchstax-inc-searchstudio-ux-angular.mjs +22 -4
- package/fesm2022/searchstax-inc-searchstudio-ux-angular.mjs.map +1 -1
- package/lib/components/searchstax-results/searchstax-results.component.d.ts +3 -1
- package/lib/components/searchstax-search-pagination/searchstax-search-pagination.component.d.ts +2 -1
- package/package.json +2 -2
|
@@ -24,6 +24,8 @@ export class SearchstaxResultsWidget {
|
|
|
24
24
|
this.storeServiceService.searchstax.addSearchResultsWidget('searchstax-results-container', {
|
|
25
25
|
templates: {},
|
|
26
26
|
hooks: this.hooks,
|
|
27
|
+
resultsPerPage: this.resultsPerPage ?? 10,
|
|
28
|
+
renderMethod: this.renderMethod ?? "pagination",
|
|
27
29
|
});
|
|
28
30
|
}, 0);
|
|
29
31
|
}
|
|
@@ -33,7 +35,17 @@ export class SearchstaxResultsWidget {
|
|
|
33
35
|
}
|
|
34
36
|
attachObservables() {
|
|
35
37
|
this.storeServiceService.searchstax.dataLayer.$searchResults.subscribe((results) => {
|
|
36
|
-
this.searchResults
|
|
38
|
+
const current = this.searchResults ? [...this.searchResults] : [];
|
|
39
|
+
const newResults = results ?? [];
|
|
40
|
+
const resultsCombined = this.renderMethod === "infiniteScroll"
|
|
41
|
+
? [...current, ...newResults]
|
|
42
|
+
: results;
|
|
43
|
+
if (this.storeServiceService.searchstax.dataLayer.$searchObject.value?.page === 1) {
|
|
44
|
+
this.searchResults = newResults;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
this.searchResults = resultsCombined;
|
|
48
|
+
}
|
|
37
49
|
});
|
|
38
50
|
this.storeServiceService.searchstax.dataLayer.$searchTermChange.subscribe((result) => {
|
|
39
51
|
this.searchTerm = result;
|
|
@@ -51,7 +63,7 @@ export class SearchstaxResultsWidget {
|
|
|
51
63
|
return field.isImage && typeof field.value === 'string';
|
|
52
64
|
}
|
|
53
65
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: SearchstaxResultsWidget, deps: [{ token: i1.StoreServiceService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
54
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: SearchstaxResultsWidget, selector: "app-searchstax-results", inputs: { afterLinkClick: "afterLinkClick", noResultsTemplate: "noResultsTemplate", resultsTemplate: "resultsTemplate" }, ngImport: i0, template: "<div id=\"searchstax-results-container\">\n <div class=\"searchstax-search-results-container\">\n <div id=\"searchstax-result-container\">\n <div\n *ngIf=\"\n searchResults && searchResults.length === 0 && !noResultsTemplate\n \"\n >\n <div class=\"searchstax-no-results\">\n Showing <strong>no results</strong> for\n <strong>\"{{ searchTerm }}\"</strong>\n <br />\n <span *ngIf=\"metadata?.spellingSuggestion\"\n > Did you mean\n <a href=\"#\" class=\"searchstax-suggestion-term\">{{\n metadata?.spellingSuggestion\n }}</a\n >?</span\n >\n </div>\n <div>\n <p>\n Try searching for search related terms or topics. We offer a wide\n variety of content to help you get the information you need.\n </p>\n <p>Lost? Click on the \u2018X\u201D in the Search Box to reset your search.</p>\n </div>\n </div>\n <div\n *ngIf=\"searchResults && searchResults.length === 0 && noResultsTemplate\"\n >\n <ng-container\n *ngTemplateOutlet=\"noResultsTemplate; context: context\"\n ></ng-container>\n </div>\n\n <div\n class=\"searchstax-search-results\"\n *ngIf=\"searchResults && searchResults.length && !resultsTemplate\"\n >\n <div\n class=\"searchstax-search-result\"\n [ngClass]=\"{ 'has-thumbnail': searchResult.thumbnail }\"\n *ngFor=\"let searchResult of searchResults\"\n >\n <div\n *ngIf=\"searchResult.promoted\"\n class=\"searchstax-search-result-promoted\"\n ></div>\n <a\n *ngIf=\"searchResult.url\"\n [href]=\"searchResult.url\"\n [attr.data-searchstax-unique-result-id]=\"searchResult.uniqueId\"\n (click)=\"resultClicked(searchResult, $event, context)\"\n class=\"searchstax-result-item-link\"\n ></a>\n <div\n *ngIf=\"searchResult.ribbon\"\n class=\"searchstax-search-result-ribbon\"\n >\n {{ searchResult.ribbon }}\n </div>\n <img\n *ngIf=\"searchResult.thumbnail\"\n [src]=\"searchResult.thumbnail\"\n class=\"searchstax-thumbnail\"\n />\n <div class=\"searchstax-search-result-title-container\">\n <span class=\"searchstax-search-result-title\">{{\n searchResult.title\n }}</span>\n </div>\n <p *ngIf=\"searchResult.paths\" class=\"searchstax-search-result-common\">\n {{ searchResult.paths }}\n </p>\n <p\n *ngIf=\"searchResult.description\"\n class=\"searchstax-search-result-description searchstax-search-result-common\"\n >\n {{ searchResult.description }}\n </p>\n <div *ngFor=\"let unmappedField of searchResult.unmappedFields\">\n <div\n *ngIf=\"isImage(unmappedField)\"\n class=\"searchstax-search-result-image-container\"\n >\n <img\n [src]=\"unmappedField.value\"\n class=\"searchstax-result-image\"\n />\n </div>\n <div *ngIf=\"!isImage(unmappedField)\">\n <p class=\"searchstax-search-result-common\">\n {{ unmappedField.value }}\n </p>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"searchResults && searchResults.length && resultsTemplate\">\n <ng-container\n *ngTemplateOutlet=\"resultsTemplate; context: context\"\n ></ng-container>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
66
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: SearchstaxResultsWidget, selector: "app-searchstax-results", inputs: { afterLinkClick: "afterLinkClick", noResultsTemplate: "noResultsTemplate", resultsTemplate: "resultsTemplate", resultsPerPage: "resultsPerPage", renderMethod: "renderMethod" }, ngImport: i0, template: "<div id=\"searchstax-results-container\">\n <div class=\"searchstax-search-results-container\">\n <div id=\"searchstax-result-container\">\n <div\n *ngIf=\"\n searchResults && searchResults.length === 0 && !noResultsTemplate\n \"\n >\n <div class=\"searchstax-no-results\">\n Showing <strong>no results</strong> for\n <strong>\"{{ searchTerm }}\"</strong>\n <br />\n <span *ngIf=\"metadata?.spellingSuggestion\"\n > Did you mean\n <a href=\"#\" class=\"searchstax-suggestion-term\">{{\n metadata?.spellingSuggestion\n }}</a\n >?</span\n >\n </div>\n <div>\n <p>\n Try searching for search related terms or topics. We offer a wide\n variety of content to help you get the information you need.\n </p>\n <p>Lost? Click on the \u2018X\u201D in the Search Box to reset your search.</p>\n </div>\n </div>\n <div\n *ngIf=\"searchResults && searchResults.length === 0 && noResultsTemplate\"\n >\n <ng-container\n *ngTemplateOutlet=\"noResultsTemplate; context: context\"\n ></ng-container>\n </div>\n\n <div\n class=\"searchstax-search-results\"\n *ngIf=\"searchResults && searchResults.length && !resultsTemplate\"\n >\n <div\n class=\"searchstax-search-result\"\n [ngClass]=\"{ 'has-thumbnail': searchResult.thumbnail }\"\n *ngFor=\"let searchResult of searchResults\"\n >\n <div\n *ngIf=\"searchResult.promoted\"\n class=\"searchstax-search-result-promoted\"\n ></div>\n <a\n *ngIf=\"searchResult.url\"\n [href]=\"searchResult.url\"\n [attr.data-searchstax-unique-result-id]=\"searchResult.uniqueId\"\n (click)=\"resultClicked(searchResult, $event, context)\"\n class=\"searchstax-result-item-link\"\n ></a>\n <div\n *ngIf=\"searchResult.ribbon\"\n class=\"searchstax-search-result-ribbon\"\n >\n {{ searchResult.ribbon }}\n </div>\n <img\n *ngIf=\"searchResult.thumbnail\"\n [src]=\"searchResult.thumbnail\"\n class=\"searchstax-thumbnail\"\n />\n <div class=\"searchstax-search-result-title-container\">\n <span class=\"searchstax-search-result-title\">{{\n searchResult.title\n }}</span>\n </div>\n <p *ngIf=\"searchResult.paths\" class=\"searchstax-search-result-common\">\n {{ searchResult.paths }}\n </p>\n <p\n *ngIf=\"searchResult.description\"\n class=\"searchstax-search-result-description searchstax-search-result-common\"\n >\n {{ searchResult.description }}\n </p>\n <div *ngFor=\"let unmappedField of searchResult.unmappedFields\">\n <div\n *ngIf=\"isImage(unmappedField)\"\n class=\"searchstax-search-result-image-container\"\n >\n <img\n [src]=\"unmappedField.value\"\n class=\"searchstax-result-image\"\n />\n </div>\n <div *ngIf=\"!isImage(unmappedField)\">\n <p class=\"searchstax-search-result-common\">\n {{ unmappedField.value }}\n </p>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"searchResults && searchResults.length && resultsTemplate\">\n <ng-container\n *ngTemplateOutlet=\"resultsTemplate; context: context\"\n ></ng-container>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
55
67
|
}
|
|
56
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: SearchstaxResultsWidget, decorators: [{
|
|
57
69
|
type: Component,
|
|
@@ -62,5 +74,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
|
|
|
62
74
|
type: Input
|
|
63
75
|
}], resultsTemplate: [{
|
|
64
76
|
type: Input
|
|
77
|
+
}], resultsPerPage: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}], renderMethod: [{
|
|
80
|
+
type: Input
|
|
65
81
|
}] } });
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoc3RheC1yZXN1bHRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NlYXJjaHN0YXgtaW5jL3NlYXJjaHN0dWRpby11eC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2hzdGF4LXJlc3VsdHMvc2VhcmNoc3RheC1yZXN1bHRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NlYXJjaHN0YXgtaW5jL3NlYXJjaHN0dWRpby11eC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2hzdGF4LXJlc3VsdHMvc2VhcmNoc3RheC1yZXN1bHRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUF1QixNQUFNLGVBQWUsQ0FBQzs7OztBQVl0RSxNQUFNLE9BQU8sdUJBQXVCO0lBYWxDLElBQUksS0FBSztRQUNQLE1BQU0sS0FBSyxHQUEwQyxFQUFFLENBQUM7UUFDeEQsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDL0M7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxZQUFvQixtQkFBd0M7UUFBeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQWI1RCxrQkFBYSxHQUFxQyxJQUFJLENBQUM7UUFDdkQsYUFBUSxHQUFxQyxJQUFJLENBQUM7UUFDbEQsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixZQUFPLEdBQUcsSUFBSSxDQUFDO0lBVWdELENBQUM7SUFFaEUsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRTtZQUN2QyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUV6QixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQ3hELDhCQUE4QixFQUM5QjtvQkFDRSxTQUFTLEVBQUUsRUFBRTtvQkFDYixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7aUJBQ2xCLENBQ0YsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNQO2FBQU07WUFDTCxNQUFNLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO1NBQ2pFO0lBQ0gsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQ3BFLENBQUMsT0FBeUMsRUFBRSxFQUFFO1lBQzVDLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDO1FBQy9CLENBQUMsQ0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUN2RSxDQUFDLE1BQWMsRUFBRSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO1FBQzNCLENBQUMsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUM1RSxDQUFDLEtBQWdDLEVBQUUsRUFBRTtZQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN4QixDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxhQUFhLENBQUMsTUFBK0IsRUFBRSxLQUFZLEVBQUUsT0FBYTtRQUN4RSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBVTtRQUNoQixPQUFPLEtBQUssQ0FBQyxPQUFPLElBQUksT0FBTyxLQUFLLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQTtJQUN6RCxDQUFDOytHQXBFVSx1QkFBdUI7bUdBQXZCLHVCQUF1Qix3TENacEMsc3dIQTRHQTs7NEZEaEdhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSx3QkFBd0I7MEdBS3pCLGNBQWM7c0JBQXRCLEtBQUs7Z0JBSUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZVNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3RvcmUtc2VydmljZS5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIElTZWFyY2hzdGF4UGFyc2VkUmVzdWx0LFxuICBJU2VhcmNoc3RheFNlYXJjaE1ldGFkYXRhLFxufSBmcm9tICdAc2VhcmNoc3RheC1pbmMvc2VhcmNoc3R1ZGlvLXV4LWpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXNlYXJjaHN0YXgtcmVzdWx0cycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2hzdGF4LXJlc3VsdHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hzdGF4UmVzdWx0c1dpZGdldCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGFmdGVyTGlua0NsaWNrPzogKFxuICAgIHJlc3VsdHM6IElTZWFyY2hzdGF4UGFyc2VkUmVzdWx0XG4gICkgPT4gSVNlYXJjaHN0YXhQYXJzZWRSZXN1bHQ7XG5cbiAgQElucHV0KCkgbm9SZXN1bHRzVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSByZXN1bHRzVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIHNlYXJjaFJlc3VsdHM6IElTZWFyY2hzdGF4UGFyc2VkUmVzdWx0W10gfCBudWxsID0gbnVsbDtcbiAgbWV0YWRhdGE6IElTZWFyY2hzdGF4U2VhcmNoTWV0YWRhdGEgfCBudWxsID0gbnVsbDtcbiAgc2VhcmNoVGVybSA9ICcnO1xuICBjb250ZXh0ID0gdGhpcztcblxuICBnZXQgaG9va3MoKTogeyBba2V5OiBzdHJpbmddOiAocHJvcDogYW55KSA9PiBhbnkgfSB7XG4gICAgY29uc3QgaG9va3M6IHsgW2tleTogc3RyaW5nXTogKHByb3A6IGFueSkgPT4gYW55IH0gPSB7fTtcbiAgICBpZiAodGhpcy5hZnRlckxpbmtDbGljaykge1xuICAgICAgaG9va3NbJ2FmdGVyTGlua0NsaWNrJ10gPSB0aGlzLmFmdGVyTGlua0NsaWNrO1xuICAgIH1cbiAgICByZXR1cm4gaG9va3M7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlU2VydmljZVNlcnZpY2U6IFN0b3JlU2VydmljZVNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RvcmVTZXJ2aWNlU2VydmljZS5zZWFyY2hzdGF4KSB7XG4gICAgICB0aGlzLmF0dGFjaE9ic2VydmFibGVzKCk7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnN0b3JlU2VydmljZVNlcnZpY2Uuc2VhcmNoc3RheC5hZGRTZWFyY2hSZXN1bHRzV2lkZ2V0KFxuICAgICAgICAgICdzZWFyY2hzdGF4LXJlc3VsdHMtY29udGFpbmVyJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0ZW1wbGF0ZXM6IHt9LFxuICAgICAgICAgICAgaG9va3M6IHRoaXMuaG9va3MsXG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfSwgMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IEVycm9yKCdTZWFyY2hzdGF4IGluc3RhbmNlIG5lZWRzIHRvIGJlIHBhc3NlZCB2aWEgcHJvcHMnKTtcbiAgICB9XG4gIH1cblxuICBhdHRhY2hPYnNlcnZhYmxlcygpIHtcbiAgICB0aGlzLnN0b3JlU2VydmljZVNlcnZpY2Uuc2VhcmNoc3RheC5kYXRhTGF5ZXIuJHNlYXJjaFJlc3VsdHMuc3Vic2NyaWJlKFxuICAgICAgKHJlc3VsdHM6IElTZWFyY2hzdGF4UGFyc2VkUmVzdWx0W10gfCBudWxsKSA9PiB7XG4gICAgICAgIHRoaXMuc2VhcmNoUmVzdWx0cyA9IHJlc3VsdHM7XG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLnN0b3JlU2VydmljZVNlcnZpY2Uuc2VhcmNoc3RheC5kYXRhTGF5ZXIuJHNlYXJjaFRlcm1DaGFuZ2Uuc3Vic2NyaWJlKFxuICAgICAgKHJlc3VsdDogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuc2VhcmNoVGVybSA9IHJlc3VsdDtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5zdG9yZVNlcnZpY2VTZXJ2aWNlLnNlYXJjaHN0YXguZGF0YUxheWVyLiRzZWFyY2hSZXN1bHRzTWV0YWRhdGEuc3Vic2NyaWJlKFxuICAgICAgKHZhbHVlOiBJU2VhcmNoc3RheFNlYXJjaE1ldGFkYXRhKSA9PiB7XG4gICAgICAgIHRoaXMubWV0YWRhdGEgPSB2YWx1ZTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcmVzdWx0Q2xpY2tlZChyZXN1bHQ6IElTZWFyY2hzdGF4UGFyc2VkUmVzdWx0LCBldmVudDogRXZlbnQsIGNvbnRleHQ6IHRoaXMpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGNvbnRleHQuc3RvcmVTZXJ2aWNlU2VydmljZS5zZWFyY2hzdGF4LmV4ZWN1dGVMaW5rQ2xpY2socmVzdWx0LnVuaXF1ZUlkKTtcbiAgfVxuXG4gIGlzSW1hZ2UoZmllbGQ6IGFueSl7XG4gICAgcmV0dXJuIGZpZWxkLmlzSW1hZ2UgJiYgdHlwZW9mIGZpZWxkLnZhbHVlID09PSAnc3RyaW5nJ1xuICB9XG59XG4iLCI8ZGl2IGlkPVwic2VhcmNoc3RheC1yZXN1bHRzLWNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwic2VhcmNoc3RheC1zZWFyY2gtcmVzdWx0cy1jb250YWluZXJcIj5cbiAgICA8ZGl2IGlkPVwic2VhcmNoc3RheC1yZXN1bHQtY29udGFpbmVyXCI+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgc2VhcmNoUmVzdWx0cyAmJiBzZWFyY2hSZXN1bHRzLmxlbmd0aCA9PT0gMCAmJiAhbm9SZXN1bHRzVGVtcGxhdGVcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaHN0YXgtbm8tcmVzdWx0c1wiPlxuICAgICAgICAgIFNob3dpbmcgPHN0cm9uZz5ubyByZXN1bHRzPC9zdHJvbmc+IGZvclxuICAgICAgICAgIDxzdHJvbmc+XCJ7eyBzZWFyY2hUZXJtIH19XCI8L3N0cm9uZz5cbiAgICAgICAgICA8YnIgLz5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIm1ldGFkYXRhPy5zcGVsbGluZ1N1Z2dlc3Rpb25cIlxuICAgICAgICAgICAgPiZuYnNwO0RpZCB5b3UgbWVhblxuICAgICAgICAgICAgPGEgaHJlZj1cIiNcIiBjbGFzcz1cInNlYXJjaHN0YXgtc3VnZ2VzdGlvbi10ZXJtXCI+e3tcbiAgICAgICAgICAgICAgbWV0YWRhdGE/LnNwZWxsaW5nU3VnZ2VzdGlvblxuICAgICAgICAgICAgfX08L2FcbiAgICAgICAgICAgID4/PC9zcGFuXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8cD5cbiAgICAgICAgICAgIFRyeSBzZWFyY2hpbmcgZm9yIHNlYXJjaCByZWxhdGVkIHRlcm1zIG9yIHRvcGljcy4gV2Ugb2ZmZXIgYSB3aWRlXG4gICAgICAgICAgICB2YXJpZXR5IG9mIGNvbnRlbnQgdG8gaGVscCB5b3UgZ2V0IHRoZSBpbmZvcm1hdGlvbiB5b3UgbmVlZC5cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPHA+TG9zdD8gQ2xpY2sgb24gdGhlIOKAmFjigJ0gaW4gdGhlIFNlYXJjaCBCb3ggdG8gcmVzZXQgeW91ciBzZWFyY2guPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cInNlYXJjaFJlc3VsdHMgJiYgc2VhcmNoUmVzdWx0cy5sZW5ndGggPT09IDAgJiYgbm9SZXN1bHRzVGVtcGxhdGVcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJub1Jlc3VsdHNUZW1wbGF0ZTsgY29udGV4dDogY29udGV4dFwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic2VhcmNoc3RheC1zZWFyY2gtcmVzdWx0c1wiXG4gICAgICAgICpuZ0lmPVwic2VhcmNoUmVzdWx0cyAmJiBzZWFyY2hSZXN1bHRzLmxlbmd0aCAmJiAhcmVzdWx0c1RlbXBsYXRlXCJcbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwic2VhcmNoc3RheC1zZWFyY2gtcmVzdWx0XCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7ICdoYXMtdGh1bWJuYWlsJzogc2VhcmNoUmVzdWx0LnRodW1ibmFpbCB9XCJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgc2VhcmNoUmVzdWx0IG9mIHNlYXJjaFJlc3VsdHNcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJzZWFyY2hSZXN1bHQucHJvbW90ZWRcIlxuICAgICAgICAgICAgY2xhc3M9XCJzZWFyY2hzdGF4LXNlYXJjaC1yZXN1bHQtcHJvbW90ZWRcIlxuICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgKm5nSWY9XCJzZWFyY2hSZXN1bHQudXJsXCJcbiAgICAgICAgICAgIFtocmVmXT1cInNlYXJjaFJlc3VsdC51cmxcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1zZWFyY2hzdGF4LXVuaXF1ZS1yZXN1bHQtaWRdPVwic2VhcmNoUmVzdWx0LnVuaXF1ZUlkXCJcbiAgICAgICAgICAgIChjbGljayk9XCJyZXN1bHRDbGlja2VkKHNlYXJjaFJlc3VsdCwgJGV2ZW50LCBjb250ZXh0KVwiXG4gICAgICAgICAgICBjbGFzcz1cInNlYXJjaHN0YXgtcmVzdWx0LWl0ZW0tbGlua1wiXG4gICAgICAgICAgPjwvYT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cInNlYXJjaFJlc3VsdC5yaWJib25cIlxuICAgICAgICAgICAgY2xhc3M9XCJzZWFyY2hzdGF4LXNlYXJjaC1yZXN1bHQtcmliYm9uXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBzZWFyY2hSZXN1bHQucmliYm9uIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGltZ1xuICAgICAgICAgICAgKm5nSWY9XCJzZWFyY2hSZXN1bHQudGh1bWJuYWlsXCJcbiAgICAgICAgICAgIFtzcmNdPVwic2VhcmNoUmVzdWx0LnRodW1ibmFpbFwiXG4gICAgICAgICAgICBjbGFzcz1cInNlYXJjaHN0YXgtdGh1bWJuYWlsXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2hzdGF4LXNlYXJjaC1yZXN1bHQtdGl0bGUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNlYXJjaHN0YXgtc2VhcmNoLXJlc3VsdC10aXRsZVwiPnt7XG4gICAgICAgICAgICAgIHNlYXJjaFJlc3VsdC50aXRsZVxuICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHAgKm5nSWY9XCJzZWFyY2hSZXN1bHQucGF0aHNcIiBjbGFzcz1cInNlYXJjaHN0YXgtc2VhcmNoLXJlc3VsdC1jb21tb25cIj5cbiAgICAgICAgICAgIHt7IHNlYXJjaFJlc3VsdC5wYXRocyB9fVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8cFxuICAgICAgICAgICAgKm5nSWY9XCJzZWFyY2hSZXN1bHQuZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgY2xhc3M9XCJzZWFyY2hzdGF4LXNlYXJjaC1yZXN1bHQtZGVzY3JpcHRpb24gc2VhcmNoc3RheC1zZWFyY2gtcmVzdWx0LWNvbW1vblwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgc2VhcmNoUmVzdWx0LmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHVubWFwcGVkRmllbGQgb2Ygc2VhcmNoUmVzdWx0LnVubWFwcGVkRmllbGRzXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICpuZ0lmPVwiaXNJbWFnZSh1bm1hcHBlZEZpZWxkKVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwic2VhcmNoc3RheC1zZWFyY2gtcmVzdWx0LWltYWdlLWNvbnRhaW5lclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICBbc3JjXT1cInVubWFwcGVkRmllbGQudmFsdWVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2VhcmNoc3RheC1yZXN1bHQtaW1hZ2VcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWlzSW1hZ2UodW5tYXBwZWRGaWVsZClcIj5cbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJzZWFyY2hzdGF4LXNlYXJjaC1yZXN1bHQtY29tbW9uXCI+XG4gICAgICAgICAgICAgICAge3sgdW5tYXBwZWRGaWVsZC52YWx1ZSB9fVxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdJZj1cInNlYXJjaFJlc3VsdHMgJiYgc2VhcmNoUmVzdWx0cy5sZW5ndGggJiYgcmVzdWx0c1RlbXBsYXRlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInJlc3VsdHNUZW1wbGF0ZTsgY29udGV4dDogY29udGV4dFwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoc3RheC1yZXN1bHRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NlYXJjaHN0YXgtaW5jL3NlYXJjaHN0dWRpby11eC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2hzdGF4LXJlc3VsdHMvc2VhcmNoc3RheC1yZXN1bHRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NlYXJjaHN0YXgtaW5jL3NlYXJjaHN0dWRpby11eC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2hzdGF4LXJlc3VsdHMvc2VhcmNoc3RheC1yZXN1bHRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUF1QixNQUFNLGVBQWUsQ0FBQzs7OztBQVl0RSxNQUFNLE9BQU8sdUJBQXVCO0lBZWxDLElBQUksS0FBSztRQUNQLE1BQU0sS0FBSyxHQUEwQyxFQUFFLENBQUM7UUFDeEQsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDL0M7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxZQUFvQixtQkFBd0M7UUFBeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQWI1RCxrQkFBYSxHQUFxQyxJQUFJLENBQUM7UUFDdkQsYUFBUSxHQUFxQyxJQUFJLENBQUM7UUFDbEQsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixZQUFPLEdBQUcsSUFBSSxDQUFDO0lBVWdELENBQUM7SUFFaEUsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRTtZQUN2QyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUV6QixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQ3hELDhCQUE4QixFQUM5QjtvQkFDRSxTQUFTLEVBQUUsRUFBRTtvQkFDYixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7b0JBQ2pCLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYyxJQUFJLEVBQUU7b0JBQ3pDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxJQUFJLFlBQVk7aUJBQ2hELENBQ0YsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNQO2FBQU07WUFDTCxNQUFNLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO1NBQ2pFO0lBQ0gsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQ3BFLENBQUMsT0FBeUMsRUFBRSxFQUFFO1lBRTVDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNsRSxNQUFNLFVBQVUsR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1lBQ2pDLE1BQU0sZUFBZSxHQUNuQixJQUFJLENBQUMsWUFBWSxLQUFLLGdCQUFnQjtnQkFDcEMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLEVBQUUsR0FBRyxVQUFVLENBQUM7Z0JBQzdCLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDZCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxLQUFLLENBQUMsRUFBRTtnQkFDakYsSUFBSSxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUM7YUFDakM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGFBQWEsR0FBRyxlQUFlLENBQUM7YUFDdEM7UUFDSCxDQUFDLENBQ0YsQ0FBQztRQUNGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FDdkUsQ0FBQyxNQUFjLEVBQUUsRUFBRTtZQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztRQUMzQixDQUFDLENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FDNUUsQ0FBQyxLQUFnQyxFQUFFLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDeEIsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQStCLEVBQUUsS0FBWSxFQUFFLE9BQWE7UUFDeEUsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixPQUFPLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQVU7UUFDaEIsT0FBTyxLQUFLLENBQUMsT0FBTyxJQUFJLE9BQU8sS0FBSyxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUE7SUFDekQsQ0FBQzsrR0FuRlUsdUJBQXVCO21HQUF2Qix1QkFBdUIsd1BDWnBDLHN3SEE0R0E7OzRGRGhHYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0Usd0JBQXdCOzBHQUt6QixjQUFjO3NCQUF0QixLQUFLO2dCQUlHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdG9yZS1zZXJ2aWNlLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgSVNlYXJjaHN0YXhQYXJzZWRSZXN1bHQsXG4gIElTZWFyY2hzdGF4U2VhcmNoTWV0YWRhdGEsXG59IGZyb20gJ0BzZWFyY2hzdGF4LWluYy9zZWFyY2hzdHVkaW8tdXgtanMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtc2VhcmNoc3RheC1yZXN1bHRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaHN0YXgtcmVzdWx0cy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlczogW10sXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaHN0YXhSZXN1bHRzV2lkZ2V0IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgYWZ0ZXJMaW5rQ2xpY2s/OiAoXG4gICAgcmVzdWx0czogSVNlYXJjaHN0YXhQYXJzZWRSZXN1bHRcbiAgKSA9PiBJU2VhcmNoc3RheFBhcnNlZFJlc3VsdDtcblxuICBASW5wdXQoKSBub1Jlc3VsdHNUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIHJlc3VsdHNUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIHJlc3VsdHNQZXJQYWdlPzogbnVtYmVyO1xuICBASW5wdXQoKSByZW5kZXJNZXRob2Q/OiBcImluZmluaXRlU2Nyb2xsXCIgfCBcInBhZ2luYXRpb25cIjtcblxuICBzZWFyY2hSZXN1bHRzOiBJU2VhcmNoc3RheFBhcnNlZFJlc3VsdFtdIHwgbnVsbCA9IG51bGw7XG4gIG1ldGFkYXRhOiBJU2VhcmNoc3RheFNlYXJjaE1ldGFkYXRhIHwgbnVsbCA9IG51bGw7XG4gIHNlYXJjaFRlcm0gPSAnJztcbiAgY29udGV4dCA9IHRoaXM7XG5cbiAgZ2V0IGhvb2tzKCk6IHsgW2tleTogc3RyaW5nXTogKHByb3A6IGFueSkgPT4gYW55IH0ge1xuICAgIGNvbnN0IGhvb2tzOiB7IFtrZXk6IHN0cmluZ106IChwcm9wOiBhbnkpID0+IGFueSB9ID0ge307XG4gICAgaWYgKHRoaXMuYWZ0ZXJMaW5rQ2xpY2spIHtcbiAgICAgIGhvb2tzWydhZnRlckxpbmtDbGljayddID0gdGhpcy5hZnRlckxpbmtDbGljaztcbiAgICB9XG4gICAgcmV0dXJuIGhvb2tzO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZVNlcnZpY2VTZXJ2aWNlOiBTdG9yZVNlcnZpY2VTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0b3JlU2VydmljZVNlcnZpY2Uuc2VhcmNoc3RheCkge1xuICAgICAgdGhpcy5hdHRhY2hPYnNlcnZhYmxlcygpO1xuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zdG9yZVNlcnZpY2VTZXJ2aWNlLnNlYXJjaHN0YXguYWRkU2VhcmNoUmVzdWx0c1dpZGdldChcbiAgICAgICAgICAnc2VhcmNoc3RheC1yZXN1bHRzLWNvbnRhaW5lcicsXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGVtcGxhdGVzOiB7fSxcbiAgICAgICAgICAgIGhvb2tzOiB0aGlzLmhvb2tzLFxuICAgICAgICAgICAgcmVzdWx0c1BlclBhZ2U6IHRoaXMucmVzdWx0c1BlclBhZ2UgPz8gMTAsXG4gICAgICAgICAgICByZW5kZXJNZXRob2Q6IHRoaXMucmVuZGVyTWV0aG9kID8/IFwicGFnaW5hdGlvblwiLFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0sIDApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBFcnJvcignU2VhcmNoc3RheCBpbnN0YW5jZSBuZWVkcyB0byBiZSBwYXNzZWQgdmlhIHByb3BzJyk7XG4gICAgfVxuICB9XG5cbiAgYXR0YWNoT2JzZXJ2YWJsZXMoKSB7XG4gICAgdGhpcy5zdG9yZVNlcnZpY2VTZXJ2aWNlLnNlYXJjaHN0YXguZGF0YUxheWVyLiRzZWFyY2hSZXN1bHRzLnN1YnNjcmliZShcbiAgICAgIChyZXN1bHRzOiBJU2VhcmNoc3RheFBhcnNlZFJlc3VsdFtdIHwgbnVsbCkgPT4ge1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLnNlYXJjaFJlc3VsdHMgPyBbLi4udGhpcy5zZWFyY2hSZXN1bHRzXSA6IFtdO1xuICAgICAgICBjb25zdCBuZXdSZXN1bHRzID0gcmVzdWx0cyA/PyBbXTtcbiAgICAgICAgY29uc3QgcmVzdWx0c0NvbWJpbmVkID1cbiAgICAgICAgICB0aGlzLnJlbmRlck1ldGhvZCA9PT0gXCJpbmZpbml0ZVNjcm9sbFwiXG4gICAgICAgICAgICA/IFsuLi5jdXJyZW50LCAuLi5uZXdSZXN1bHRzXVxuICAgICAgICAgICAgOiByZXN1bHRzO1xuICAgICAgICBpZiAodGhpcy5zdG9yZVNlcnZpY2VTZXJ2aWNlLnNlYXJjaHN0YXguZGF0YUxheWVyLiRzZWFyY2hPYmplY3QudmFsdWU/LnBhZ2UgPT09IDEpIHtcbiAgICAgICAgICB0aGlzLnNlYXJjaFJlc3VsdHMgPSBuZXdSZXN1bHRzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2VhcmNoUmVzdWx0cyA9IHJlc3VsdHNDb21iaW5lZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gICAgdGhpcy5zdG9yZVNlcnZpY2VTZXJ2aWNlLnNlYXJjaHN0YXguZGF0YUxheWVyLiRzZWFyY2hUZXJtQ2hhbmdlLnN1YnNjcmliZShcbiAgICAgIChyZXN1bHQ6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLnNlYXJjaFRlcm0gPSByZXN1bHQ7XG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMuc3RvcmVTZXJ2aWNlU2VydmljZS5zZWFyY2hzdGF4LmRhdGFMYXllci4kc2VhcmNoUmVzdWx0c01ldGFkYXRhLnN1YnNjcmliZShcbiAgICAgICh2YWx1ZTogSVNlYXJjaHN0YXhTZWFyY2hNZXRhZGF0YSkgPT4ge1xuICAgICAgICB0aGlzLm1ldGFkYXRhID0gdmFsdWU7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHJlc3VsdENsaWNrZWQocmVzdWx0OiBJU2VhcmNoc3RheFBhcnNlZFJlc3VsdCwgZXZlbnQ6IEV2ZW50LCBjb250ZXh0OiB0aGlzKSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBjb250ZXh0LnN0b3JlU2VydmljZVNlcnZpY2Uuc2VhcmNoc3RheC5leGVjdXRlTGlua0NsaWNrKHJlc3VsdC51bmlxdWVJZCk7XG4gIH1cblxuICBpc0ltYWdlKGZpZWxkOiBhbnkpe1xuICAgIHJldHVybiBmaWVsZC5pc0ltYWdlICYmIHR5cGVvZiBmaWVsZC52YWx1ZSA9PT0gJ3N0cmluZydcbiAgfVxufVxuIiwiPGRpdiBpZD1cInNlYXJjaHN0YXgtcmVzdWx0cy1jb250YWluZXJcIj5cbiAgPGRpdiBjbGFzcz1cInNlYXJjaHN0YXgtc2VhcmNoLXJlc3VsdHMtY29udGFpbmVyXCI+XG4gICAgPGRpdiBpZD1cInNlYXJjaHN0YXgtcmVzdWx0LWNvbnRhaW5lclwiPlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIHNlYXJjaFJlc3VsdHMgJiYgc2VhcmNoUmVzdWx0cy5sZW5ndGggPT09IDAgJiYgIW5vUmVzdWx0c1RlbXBsYXRlXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2hzdGF4LW5vLXJlc3VsdHNcIj5cbiAgICAgICAgICBTaG93aW5nIDxzdHJvbmc+bm8gcmVzdWx0czwvc3Ryb25nPiBmb3JcbiAgICAgICAgICA8c3Ryb25nPlwie3sgc2VhcmNoVGVybSB9fVwiPC9zdHJvbmc+XG4gICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJtZXRhZGF0YT8uc3BlbGxpbmdTdWdnZXN0aW9uXCJcbiAgICAgICAgICAgID4mbmJzcDtEaWQgeW91IG1lYW5cbiAgICAgICAgICAgIDxhIGhyZWY9XCIjXCIgY2xhc3M9XCJzZWFyY2hzdGF4LXN1Z2dlc3Rpb24tdGVybVwiPnt7XG4gICAgICAgICAgICAgIG1ldGFkYXRhPy5zcGVsbGluZ1N1Z2dlc3Rpb25cbiAgICAgICAgICAgIH19PC9hXG4gICAgICAgICAgICA+Pzwvc3BhblxuICAgICAgICAgID5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPHA+XG4gICAgICAgICAgICBUcnkgc2VhcmNoaW5nIGZvciBzZWFyY2ggcmVsYXRlZCB0ZXJtcyBvciB0b3BpY3MuIFdlIG9mZmVyIGEgd2lkZVxuICAgICAgICAgICAgdmFyaWV0eSBvZiBjb250ZW50IHRvIGhlbHAgeW91IGdldCB0aGUgaW5mb3JtYXRpb24geW91IG5lZWQuXG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIDxwPkxvc3Q/IENsaWNrIG9uIHRoZSDigJhY4oCdIGluIHRoZSBTZWFyY2ggQm94IHRvIHJlc2V0IHlvdXIgc2VhcmNoLjwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJzZWFyY2hSZXN1bHRzICYmIHNlYXJjaFJlc3VsdHMubGVuZ3RoID09PSAwICYmIG5vUmVzdWx0c1RlbXBsYXRlXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwibm9SZXN1bHRzVGVtcGxhdGU7IGNvbnRleHQ6IGNvbnRleHRcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNlYXJjaHN0YXgtc2VhcmNoLXJlc3VsdHNcIlxuICAgICAgICAqbmdJZj1cInNlYXJjaFJlc3VsdHMgJiYgc2VhcmNoUmVzdWx0cy5sZW5ndGggJiYgIXJlc3VsdHNUZW1wbGF0ZVwiXG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInNlYXJjaHN0YXgtc2VhcmNoLXJlc3VsdFwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyAnaGFzLXRodW1ibmFpbCc6IHNlYXJjaFJlc3VsdC50aHVtYm5haWwgfVwiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHNlYXJjaFJlc3VsdCBvZiBzZWFyY2hSZXN1bHRzXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwic2VhcmNoUmVzdWx0LnByb21vdGVkXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2VhcmNoc3RheC1zZWFyY2gtcmVzdWx0LXByb21vdGVkXCJcbiAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgICpuZ0lmPVwic2VhcmNoUmVzdWx0LnVybFwiXG4gICAgICAgICAgICBbaHJlZl09XCJzZWFyY2hSZXN1bHQudXJsXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtc2VhcmNoc3RheC11bmlxdWUtcmVzdWx0LWlkXT1cInNlYXJjaFJlc3VsdC51bmlxdWVJZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwicmVzdWx0Q2xpY2tlZChzZWFyY2hSZXN1bHQsICRldmVudCwgY29udGV4dClcIlxuICAgICAgICAgICAgY2xhc3M9XCJzZWFyY2hzdGF4LXJlc3VsdC1pdGVtLWxpbmtcIlxuICAgICAgICAgID48L2E+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJzZWFyY2hSZXN1bHQucmliYm9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2VhcmNoc3RheC1zZWFyY2gtcmVzdWx0LXJpYmJvblwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgc2VhcmNoUmVzdWx0LnJpYmJvbiB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICpuZ0lmPVwic2VhcmNoUmVzdWx0LnRodW1ibmFpbFwiXG4gICAgICAgICAgICBbc3JjXT1cInNlYXJjaFJlc3VsdC50aHVtYm5haWxcIlxuICAgICAgICAgICAgY2xhc3M9XCJzZWFyY2hzdGF4LXRodW1ibmFpbFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoc3RheC1zZWFyY2gtcmVzdWx0LXRpdGxlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZWFyY2hzdGF4LXNlYXJjaC1yZXN1bHQtdGl0bGVcIj57e1xuICAgICAgICAgICAgICBzZWFyY2hSZXN1bHQudGl0bGVcbiAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxwICpuZ0lmPVwic2VhcmNoUmVzdWx0LnBhdGhzXCIgY2xhc3M9XCJzZWFyY2hzdGF4LXNlYXJjaC1yZXN1bHQtY29tbW9uXCI+XG4gICAgICAgICAgICB7eyBzZWFyY2hSZXN1bHQucGF0aHMgfX1cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPHBcbiAgICAgICAgICAgICpuZ0lmPVwic2VhcmNoUmVzdWx0LmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2VhcmNoc3RheC1zZWFyY2gtcmVzdWx0LWRlc2NyaXB0aW9uIHNlYXJjaHN0YXgtc2VhcmNoLXJlc3VsdC1jb21tb25cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IHNlYXJjaFJlc3VsdC5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB1bm1hcHBlZEZpZWxkIG9mIHNlYXJjaFJlc3VsdC51bm1hcHBlZEZpZWxkc1wiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAqbmdJZj1cImlzSW1hZ2UodW5tYXBwZWRGaWVsZClcIlxuICAgICAgICAgICAgICBjbGFzcz1cInNlYXJjaHN0YXgtc2VhcmNoLXJlc3VsdC1pbWFnZS1jb250YWluZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgW3NyY109XCJ1bm1hcHBlZEZpZWxkLnZhbHVlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNlYXJjaHN0YXgtcmVzdWx0LWltYWdlXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc0ltYWdlKHVubWFwcGVkRmllbGQpXCI+XG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwic2VhcmNoc3RheC1zZWFyY2gtcmVzdWx0LWNvbW1vblwiPlxuICAgICAgICAgICAgICAgIHt7IHVubWFwcGVkRmllbGQudmFsdWUgfX1cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hSZXN1bHRzICYmIHNlYXJjaFJlc3VsdHMubGVuZ3RoICYmIHJlc3VsdHNUZW1wbGF0ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZXN1bHRzVGVtcGxhdGU7IGNvbnRleHQ6IGNvbnRleHRcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -49,12 +49,14 @@ export class SearchstaxSearchPaginationWidget {
|
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
51
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: SearchstaxSearchPaginationWidget, deps: [{ token: i1.StoreServiceService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
52
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: SearchstaxSearchPaginationWidget, selector: "app-searchstax-search-pagination", inputs: { templateOverride: "templateOverride" }, ngImport: i0, template: "<div [id]=\"'searchstax-pagination-container' + rand\">\n <div\n class=\"searchstax-pagination-container\"\n *ngIf=\"paginationData?.totalResults
|
|
52
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: SearchstaxSearchPaginationWidget, selector: "app-searchstax-search-pagination", inputs: { templateOverride: "templateOverride", infiniteScrollTemplateOverride: "infiniteScrollTemplateOverride" }, ngImport: i0, template: "<div [id]=\"'searchstax-pagination-container' + rand\">\n <div\n class=\"searchstax-pagination-container\"\n *ngIf=\"\n paginationData?.totalResults &&\n !templateOverride &&\n !paginationData?.isInfiniteScroll\n \"\n >\n <div class=\"searchstax-pagination-content\">\n <a\n class=\"searchstax-pagination-previous\"\n (click)=\"previousPage($event, context)\"\n id=\"searchstax-pagination-previous\"\n >\n < Previous\n </a>\n <div class=\"searchstax-pagination-details\">\n {{ paginationData?.startResultIndex }} -\n {{ paginationData?.endResultIndex }} of\n {{ paginationData?.totalResults }}\n </div>\n <a\n class=\"searchstax-pagination-next\"\n (click)=\"nextPage($event, context)\"\n id=\"searchstax-pagination-next\"\n >Next ></a\n >\n </div>\n </div>\n\n <div\n *ngIf=\"\n paginationData?.totalResults &&\n templateOverride &&\n !paginationData?.isInfiniteScroll\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"templateOverride; context: context\"\n ></ng-container>\n </div>\n\n <div\n class=\"searchstax-pagination-container\"\n *ngIf=\"\n paginationData?.totalResults &&\n !infiniteScrollTemplateOverride &&\n paginationData?.isInfiniteScroll\n \"\n >\n <a\n className=\"searchstax-pagination-load-more\"\n (click)=\"nextPage($event, context)\"\n >\n Show More\n </a>\n </div>\n\n <div\n *ngIf=\"\n paginationData?.totalResults &&\n infiniteScrollTemplateOverride &&\n paginationData?.isInfiniteScroll\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"infiniteScrollTemplateOverride; context: context\"\n ></ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
53
53
|
}
|
|
54
54
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: SearchstaxSearchPaginationWidget, decorators: [{
|
|
55
55
|
type: Component,
|
|
56
|
-
args: [{ selector: "app-searchstax-search-pagination", template: "<div [id]=\"'searchstax-pagination-container' + rand\">\n <div\n class=\"searchstax-pagination-container\"\n *ngIf=\"paginationData?.totalResults
|
|
56
|
+
args: [{ selector: "app-searchstax-search-pagination", template: "<div [id]=\"'searchstax-pagination-container' + rand\">\n <div\n class=\"searchstax-pagination-container\"\n *ngIf=\"\n paginationData?.totalResults &&\n !templateOverride &&\n !paginationData?.isInfiniteScroll\n \"\n >\n <div class=\"searchstax-pagination-content\">\n <a\n class=\"searchstax-pagination-previous\"\n (click)=\"previousPage($event, context)\"\n id=\"searchstax-pagination-previous\"\n >\n < Previous\n </a>\n <div class=\"searchstax-pagination-details\">\n {{ paginationData?.startResultIndex }} -\n {{ paginationData?.endResultIndex }} of\n {{ paginationData?.totalResults }}\n </div>\n <a\n class=\"searchstax-pagination-next\"\n (click)=\"nextPage($event, context)\"\n id=\"searchstax-pagination-next\"\n >Next ></a\n >\n </div>\n </div>\n\n <div\n *ngIf=\"\n paginationData?.totalResults &&\n templateOverride &&\n !paginationData?.isInfiniteScroll\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"templateOverride; context: context\"\n ></ng-container>\n </div>\n\n <div\n class=\"searchstax-pagination-container\"\n *ngIf=\"\n paginationData?.totalResults &&\n !infiniteScrollTemplateOverride &&\n paginationData?.isInfiniteScroll\n \"\n >\n <a\n className=\"searchstax-pagination-load-more\"\n (click)=\"nextPage($event, context)\"\n >\n Show More\n </a>\n </div>\n\n <div\n *ngIf=\"\n paginationData?.totalResults &&\n infiniteScrollTemplateOverride &&\n paginationData?.isInfiniteScroll\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"infiniteScrollTemplateOverride; context: context\"\n ></ng-container>\n </div>\n</div>\n" }]
|
|
57
57
|
}], ctorParameters: function () { return [{ type: i1.StoreServiceService }]; }, propDecorators: { templateOverride: [{
|
|
58
58
|
type: Input
|
|
59
|
+
}], infiniteScrollTemplateOverride: [{
|
|
60
|
+
type: Input
|
|
59
61
|
}] } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoc3RheC1zZWFyY2gtcGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZWFyY2hzdGF4LWluYy9zZWFyY2hzdHVkaW8tdXgtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvc2VhcmNoc3RheC1zZWFyY2gtcGFnaW5hdGlvbi9zZWFyY2hzdGF4LXNlYXJjaC1wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NlYXJjaHN0YXgtaW5jL3NlYXJjaHN0dWRpby11eC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2hzdGF4LXNlYXJjaC1wYWdpbmF0aW9uL3NlYXJjaHN0YXgtc2VhcmNoLXBhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXVCLE1BQU0sZUFBZSxDQUFDOzs7O0FBWXRFLE1BQU0sT0FBTyxnQ0FBZ0M7SUFRM0MsWUFBb0IsbUJBQXdDO1FBQXhDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFKNUQsbUJBQWMsR0FBMkIsSUFBSSxDQUFDO1FBQzlDLFNBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckIsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLG9CQUFlLEdBQUcsS0FBSyxDQUFDO0lBQ3VDLENBQUM7SUFFaEUsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRTtZQUN2QyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN6QixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDUDthQUFNO1lBQ0wsTUFBTSxLQUFLLENBQUMsa0RBQWtELENBQUMsQ0FBQztTQUNqRTtJQUNILENBQUM7SUFFRCxRQUFRLENBQUMsS0FBWSxFQUFFLE9BQWE7UUFDbEMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsVUFBVSxFQUFFO1lBQ3ZDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsc0JBQXNCLEVBQUUsUUFBUSxDQUNyRSxLQUFLLENBQ04sQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFZLEVBQUUsT0FBYTtRQUN0QyxLQUFLLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxXQUFXLEVBQUU7WUFDeEMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsRUFBRSxZQUFZLENBQ3pFLEtBQUssQ0FDTixDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQ0UsQ0FBQyxJQUFJLENBQUMsZUFBZTtZQUNyQixJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLFlBQVksRUFDaEQ7WUFDQSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztZQUM1QixJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUNyRCxpQ0FBaUMsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUM3QyxFQUFFLENBQ0gsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQ25FLENBQUMsVUFBZ0MsRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQ3JFLENBQUMsVUFBa0MsRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxjQUFjLEdBQUcsVUFBVSxDQUFDO1FBQ25DLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQzsrR0FoRVUsZ0NBQWdDO21HQUFoQyxnQ0FBZ0MsNExDWjdDLHl4REF1RUE7OzRGRDNEYSxnQ0FBZ0M7a0JBTDVDLFNBQVM7K0JBQ0Usa0NBQWtDOzBHQUtuQyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csOEJBQThCO3NCQUF0QyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBUZW1wbGF0ZVJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICBJUGFnaW5hdGlvbkRhdGEsXG4gIElTZWFyY2hPYmplY3QsXG59IGZyb20gXCJAc2VhcmNoc3RheC1pbmMvc2VhcmNoc3R1ZGlvLXV4LWpzXCI7XG5pbXBvcnQgeyBTdG9yZVNlcnZpY2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3N0b3JlLXNlcnZpY2Uuc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiYXBwLXNlYXJjaHN0YXgtc2VhcmNoLXBhZ2luYXRpb25cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9zZWFyY2hzdGF4LXNlYXJjaC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlczogW10sXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaHN0YXhTZWFyY2hQYWdpbmF0aW9uV2lkZ2V0IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgdGVtcGxhdGVPdmVycmlkZT86IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIGluZmluaXRlU2Nyb2xsVGVtcGxhdGVPdmVycmlkZT86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcGFnaW5hdGlvbkRhdGE6IG51bGwgfCBJUGFnaW5hdGlvbkRhdGEgPSBudWxsO1xuICByYW5kID0gTWF0aC5yYW5kb20oKTtcbiAgY29udGV4dCA9IHRoaXM7XG4gIHBhZ2luYXRpb25BZGRlZCA9IGZhbHNlO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlU2VydmljZVNlcnZpY2U6IFN0b3JlU2VydmljZVNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RvcmVTZXJ2aWNlU2VydmljZS5zZWFyY2hzdGF4KSB7XG4gICAgICB0aGlzLmF0dGFjaE9ic2VydmFibGVzKCk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5hZGRXaWRnZXQoKTtcbiAgICAgIH0sIDApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBFcnJvcihcIlNlYXJjaHN0YXggaW5zdGFuY2UgbmVlZHMgdG8gYmUgcGFzc2VkIHZpYSBwcm9wc1wiKTtcbiAgICB9XG4gIH1cblxuICBuZXh0UGFnZShldmVudDogRXZlbnQsIGNvbnRleHQ6IHRoaXMpIHtcbiAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICBpZiAoIWNvbnRleHQucGFnaW5hdGlvbkRhdGE/LmlzTGFzdFBhZ2UpIHtcbiAgICAgIGNvbnRleHQuc3RvcmVTZXJ2aWNlU2VydmljZS5zZWFyY2hzdGF4LnNlYXJjaFBhZ2luYXRpb25XaWRnZXQ/Lm5leHRQYWdlKFxuICAgICAgICBldmVudFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcmV2aW91c1BhZ2UoZXZlbnQ6IEV2ZW50LCBjb250ZXh0OiB0aGlzKSB7XG4gICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKCFjb250ZXh0LnBhZ2luYXRpb25EYXRhPy5pc0ZpcnN0UGFnZSkge1xuICAgICAgY29udGV4dC5zdG9yZVNlcnZpY2VTZXJ2aWNlLnNlYXJjaHN0YXguc2VhcmNoUGFnaW5hdGlvbldpZGdldD8ucHJldmlvdXNQYWdlKFxuICAgICAgICBldmVudFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBhZGRXaWRnZXQoKSB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMucGFnaW5hdGlvbkFkZGVkICYmXG4gICAgICB0aGlzLnN0b3JlU2VydmljZVNlcnZpY2Uuc2VhcmNoc3RheC5yb3V0ZXJIZWxwZXJcbiAgICApIHtcbiAgICAgIHRoaXMucGFnaW5hdGlvbkFkZGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuc3RvcmVTZXJ2aWNlU2VydmljZS5zZWFyY2hzdGF4LmFkZFBhZ2luYXRpb25XaWRnZXQoXG4gICAgICAgIFwic2VhcmNoc3RheC1wYWdpbmF0aW9uLWNvbnRhaW5lclwiICsgdGhpcy5yYW5kLFxuICAgICAgICB7fVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBhdHRhY2hPYnNlcnZhYmxlcygpIHtcbiAgICB0aGlzLnN0b3JlU2VydmljZVNlcnZpY2Uuc2VhcmNoc3RheC5kYXRhTGF5ZXIuJHNlYXJjaE9iamVjdC5zdWJzY3JpYmUoXG4gICAgICAocGFnaW5hdGlvbjogSVNlYXJjaE9iamVjdCB8IG51bGwpID0+IHtcbiAgICAgICAgdGhpcy5hZGRXaWRnZXQoKTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5zdG9yZVNlcnZpY2VTZXJ2aWNlLnNlYXJjaHN0YXguZGF0YUxheWVyLiRwYWdpbmF0aW9uRGF0YS5zdWJzY3JpYmUoXG4gICAgICAocGFnaW5hdGlvbjogSVBhZ2luYXRpb25EYXRhIHwgbnVsbCkgPT4ge1xuICAgICAgICB0aGlzLnBhZ2luYXRpb25EYXRhID0gcGFnaW5hdGlvbjtcbiAgICAgIH1cbiAgICApO1xuICB9XG59XG4iLCI8ZGl2IFtpZF09XCInc2VhcmNoc3RheC1wYWdpbmF0aW9uLWNvbnRhaW5lcicgKyByYW5kXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNlYXJjaHN0YXgtcGFnaW5hdGlvbi1jb250YWluZXJcIlxuICAgICpuZ0lmPVwiXG4gICAgICBwYWdpbmF0aW9uRGF0YT8udG90YWxSZXN1bHRzICYmXG4gICAgICAhdGVtcGxhdGVPdmVycmlkZSAmJlxuICAgICAgIXBhZ2luYXRpb25EYXRhPy5pc0luZmluaXRlU2Nyb2xsXG4gICAgXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJzZWFyY2hzdGF4LXBhZ2luYXRpb24tY29udGVudFwiPlxuICAgICAgPGFcbiAgICAgICAgY2xhc3M9XCJzZWFyY2hzdGF4LXBhZ2luYXRpb24tcHJldmlvdXNcIlxuICAgICAgICAoY2xpY2spPVwicHJldmlvdXNQYWdlKCRldmVudCwgY29udGV4dClcIlxuICAgICAgICBpZD1cInNlYXJjaHN0YXgtcGFnaW5hdGlvbi1wcmV2aW91c1wiXG4gICAgICA+XG4gICAgICAgICZsdDsgUHJldmlvdXNcbiAgICAgIDwvYT5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2hzdGF4LXBhZ2luYXRpb24tZGV0YWlsc1wiPlxuICAgICAgICB7eyBwYWdpbmF0aW9uRGF0YT8uc3RhcnRSZXN1bHRJbmRleCB9fSAtXG4gICAgICAgIHt7IHBhZ2luYXRpb25EYXRhPy5lbmRSZXN1bHRJbmRleCB9fSBvZlxuICAgICAgICB7eyBwYWdpbmF0aW9uRGF0YT8udG90YWxSZXN1bHRzIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxhXG4gICAgICAgIGNsYXNzPVwic2VhcmNoc3RheC1wYWdpbmF0aW9uLW5leHRcIlxuICAgICAgICAoY2xpY2spPVwibmV4dFBhZ2UoJGV2ZW50LCBjb250ZXh0KVwiXG4gICAgICAgIGlkPVwic2VhcmNoc3RheC1wYWdpbmF0aW9uLW5leHRcIlxuICAgICAgICA+TmV4dCA+PC9hXG4gICAgICA+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXZcbiAgICAqbmdJZj1cIlxuICAgICAgcGFnaW5hdGlvbkRhdGE/LnRvdGFsUmVzdWx0cyAmJlxuICAgICAgdGVtcGxhdGVPdmVycmlkZSAmJlxuICAgICAgIXBhZ2luYXRpb25EYXRhPy5pc0luZmluaXRlU2Nyb2xsXG4gICAgXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVPdmVycmlkZTsgY29udGV4dDogY29udGV4dFwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8ZGl2XG4gICAgY2xhc3M9XCJzZWFyY2hzdGF4LXBhZ2luYXRpb24tY29udGFpbmVyXCJcbiAgICAqbmdJZj1cIlxuICAgICAgcGFnaW5hdGlvbkRhdGE/LnRvdGFsUmVzdWx0cyAmJlxuICAgICAgIWluZmluaXRlU2Nyb2xsVGVtcGxhdGVPdmVycmlkZSAmJlxuICAgICAgcGFnaW5hdGlvbkRhdGE/LmlzSW5maW5pdGVTY3JvbGxcbiAgICBcIlxuICA+XG4gICAgPGFcbiAgICAgIGNsYXNzTmFtZT1cInNlYXJjaHN0YXgtcGFnaW5hdGlvbi1sb2FkLW1vcmVcIlxuICAgICAgKGNsaWNrKT1cIm5leHRQYWdlKCRldmVudCwgY29udGV4dClcIlxuICAgID5cbiAgICAgIFNob3cgTW9yZVxuICAgIDwvYT5cbiAgPC9kaXY+XG5cbiAgPGRpdlxuICAgICpuZ0lmPVwiXG4gICAgICBwYWdpbmF0aW9uRGF0YT8udG90YWxSZXN1bHRzICYmXG4gICAgICBpbmZpbml0ZVNjcm9sbFRlbXBsYXRlT3ZlcnJpZGUgJiZcbiAgICAgIHBhZ2luYXRpb25EYXRhPy5pc0luZmluaXRlU2Nyb2xsXG4gICAgXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5maW5pdGVTY3JvbGxUZW1wbGF0ZU92ZXJyaWRlOyBjb250ZXh0OiBjb250ZXh0XCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -182,6 +182,8 @@ class SearchstaxResultsWidget {
|
|
|
182
182
|
this.storeServiceService.searchstax.addSearchResultsWidget('searchstax-results-container', {
|
|
183
183
|
templates: {},
|
|
184
184
|
hooks: this.hooks,
|
|
185
|
+
resultsPerPage: this.resultsPerPage ?? 10,
|
|
186
|
+
renderMethod: this.renderMethod ?? "pagination",
|
|
185
187
|
});
|
|
186
188
|
}, 0);
|
|
187
189
|
}
|
|
@@ -191,7 +193,17 @@ class SearchstaxResultsWidget {
|
|
|
191
193
|
}
|
|
192
194
|
attachObservables() {
|
|
193
195
|
this.storeServiceService.searchstax.dataLayer.$searchResults.subscribe((results) => {
|
|
194
|
-
this.searchResults
|
|
196
|
+
const current = this.searchResults ? [...this.searchResults] : [];
|
|
197
|
+
const newResults = results ?? [];
|
|
198
|
+
const resultsCombined = this.renderMethod === "infiniteScroll"
|
|
199
|
+
? [...current, ...newResults]
|
|
200
|
+
: results;
|
|
201
|
+
if (this.storeServiceService.searchstax.dataLayer.$searchObject.value?.page === 1) {
|
|
202
|
+
this.searchResults = newResults;
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
this.searchResults = resultsCombined;
|
|
206
|
+
}
|
|
195
207
|
});
|
|
196
208
|
this.storeServiceService.searchstax.dataLayer.$searchTermChange.subscribe((result) => {
|
|
197
209
|
this.searchTerm = result;
|
|
@@ -209,7 +221,7 @@ class SearchstaxResultsWidget {
|
|
|
209
221
|
return field.isImage && typeof field.value === 'string';
|
|
210
222
|
}
|
|
211
223
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: SearchstaxResultsWidget, deps: [{ token: StoreServiceService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
212
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: SearchstaxResultsWidget, selector: "app-searchstax-results", inputs: { afterLinkClick: "afterLinkClick", noResultsTemplate: "noResultsTemplate", resultsTemplate: "resultsTemplate" }, ngImport: i0, template: "<div id=\"searchstax-results-container\">\n <div class=\"searchstax-search-results-container\">\n <div id=\"searchstax-result-container\">\n <div\n *ngIf=\"\n searchResults && searchResults.length === 0 && !noResultsTemplate\n \"\n >\n <div class=\"searchstax-no-results\">\n Showing <strong>no results</strong> for\n <strong>\"{{ searchTerm }}\"</strong>\n <br />\n <span *ngIf=\"metadata?.spellingSuggestion\"\n > Did you mean\n <a href=\"#\" class=\"searchstax-suggestion-term\">{{\n metadata?.spellingSuggestion\n }}</a\n >?</span\n >\n </div>\n <div>\n <p>\n Try searching for search related terms or topics. We offer a wide\n variety of content to help you get the information you need.\n </p>\n <p>Lost? Click on the \u2018X\u201D in the Search Box to reset your search.</p>\n </div>\n </div>\n <div\n *ngIf=\"searchResults && searchResults.length === 0 && noResultsTemplate\"\n >\n <ng-container\n *ngTemplateOutlet=\"noResultsTemplate; context: context\"\n ></ng-container>\n </div>\n\n <div\n class=\"searchstax-search-results\"\n *ngIf=\"searchResults && searchResults.length && !resultsTemplate\"\n >\n <div\n class=\"searchstax-search-result\"\n [ngClass]=\"{ 'has-thumbnail': searchResult.thumbnail }\"\n *ngFor=\"let searchResult of searchResults\"\n >\n <div\n *ngIf=\"searchResult.promoted\"\n class=\"searchstax-search-result-promoted\"\n ></div>\n <a\n *ngIf=\"searchResult.url\"\n [href]=\"searchResult.url\"\n [attr.data-searchstax-unique-result-id]=\"searchResult.uniqueId\"\n (click)=\"resultClicked(searchResult, $event, context)\"\n class=\"searchstax-result-item-link\"\n ></a>\n <div\n *ngIf=\"searchResult.ribbon\"\n class=\"searchstax-search-result-ribbon\"\n >\n {{ searchResult.ribbon }}\n </div>\n <img\n *ngIf=\"searchResult.thumbnail\"\n [src]=\"searchResult.thumbnail\"\n class=\"searchstax-thumbnail\"\n />\n <div class=\"searchstax-search-result-title-container\">\n <span class=\"searchstax-search-result-title\">{{\n searchResult.title\n }}</span>\n </div>\n <p *ngIf=\"searchResult.paths\" class=\"searchstax-search-result-common\">\n {{ searchResult.paths }}\n </p>\n <p\n *ngIf=\"searchResult.description\"\n class=\"searchstax-search-result-description searchstax-search-result-common\"\n >\n {{ searchResult.description }}\n </p>\n <div *ngFor=\"let unmappedField of searchResult.unmappedFields\">\n <div\n *ngIf=\"isImage(unmappedField)\"\n class=\"searchstax-search-result-image-container\"\n >\n <img\n [src]=\"unmappedField.value\"\n class=\"searchstax-result-image\"\n />\n </div>\n <div *ngIf=\"!isImage(unmappedField)\">\n <p class=\"searchstax-search-result-common\">\n {{ unmappedField.value }}\n </p>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"searchResults && searchResults.length && resultsTemplate\">\n <ng-container\n *ngTemplateOutlet=\"resultsTemplate; context: context\"\n ></ng-container>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
224
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: SearchstaxResultsWidget, selector: "app-searchstax-results", inputs: { afterLinkClick: "afterLinkClick", noResultsTemplate: "noResultsTemplate", resultsTemplate: "resultsTemplate", resultsPerPage: "resultsPerPage", renderMethod: "renderMethod" }, ngImport: i0, template: "<div id=\"searchstax-results-container\">\n <div class=\"searchstax-search-results-container\">\n <div id=\"searchstax-result-container\">\n <div\n *ngIf=\"\n searchResults && searchResults.length === 0 && !noResultsTemplate\n \"\n >\n <div class=\"searchstax-no-results\">\n Showing <strong>no results</strong> for\n <strong>\"{{ searchTerm }}\"</strong>\n <br />\n <span *ngIf=\"metadata?.spellingSuggestion\"\n > Did you mean\n <a href=\"#\" class=\"searchstax-suggestion-term\">{{\n metadata?.spellingSuggestion\n }}</a\n >?</span\n >\n </div>\n <div>\n <p>\n Try searching for search related terms or topics. We offer a wide\n variety of content to help you get the information you need.\n </p>\n <p>Lost? Click on the \u2018X\u201D in the Search Box to reset your search.</p>\n </div>\n </div>\n <div\n *ngIf=\"searchResults && searchResults.length === 0 && noResultsTemplate\"\n >\n <ng-container\n *ngTemplateOutlet=\"noResultsTemplate; context: context\"\n ></ng-container>\n </div>\n\n <div\n class=\"searchstax-search-results\"\n *ngIf=\"searchResults && searchResults.length && !resultsTemplate\"\n >\n <div\n class=\"searchstax-search-result\"\n [ngClass]=\"{ 'has-thumbnail': searchResult.thumbnail }\"\n *ngFor=\"let searchResult of searchResults\"\n >\n <div\n *ngIf=\"searchResult.promoted\"\n class=\"searchstax-search-result-promoted\"\n ></div>\n <a\n *ngIf=\"searchResult.url\"\n [href]=\"searchResult.url\"\n [attr.data-searchstax-unique-result-id]=\"searchResult.uniqueId\"\n (click)=\"resultClicked(searchResult, $event, context)\"\n class=\"searchstax-result-item-link\"\n ></a>\n <div\n *ngIf=\"searchResult.ribbon\"\n class=\"searchstax-search-result-ribbon\"\n >\n {{ searchResult.ribbon }}\n </div>\n <img\n *ngIf=\"searchResult.thumbnail\"\n [src]=\"searchResult.thumbnail\"\n class=\"searchstax-thumbnail\"\n />\n <div class=\"searchstax-search-result-title-container\">\n <span class=\"searchstax-search-result-title\">{{\n searchResult.title\n }}</span>\n </div>\n <p *ngIf=\"searchResult.paths\" class=\"searchstax-search-result-common\">\n {{ searchResult.paths }}\n </p>\n <p\n *ngIf=\"searchResult.description\"\n class=\"searchstax-search-result-description searchstax-search-result-common\"\n >\n {{ searchResult.description }}\n </p>\n <div *ngFor=\"let unmappedField of searchResult.unmappedFields\">\n <div\n *ngIf=\"isImage(unmappedField)\"\n class=\"searchstax-search-result-image-container\"\n >\n <img\n [src]=\"unmappedField.value\"\n class=\"searchstax-result-image\"\n />\n </div>\n <div *ngIf=\"!isImage(unmappedField)\">\n <p class=\"searchstax-search-result-common\">\n {{ unmappedField.value }}\n </p>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"searchResults && searchResults.length && resultsTemplate\">\n <ng-container\n *ngTemplateOutlet=\"resultsTemplate; context: context\"\n ></ng-container>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
213
225
|
}
|
|
214
226
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: SearchstaxResultsWidget, decorators: [{
|
|
215
227
|
type: Component,
|
|
@@ -220,6 +232,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
|
|
|
220
232
|
type: Input
|
|
221
233
|
}], resultsTemplate: [{
|
|
222
234
|
type: Input
|
|
235
|
+
}], resultsPerPage: [{
|
|
236
|
+
type: Input
|
|
237
|
+
}], renderMethod: [{
|
|
238
|
+
type: Input
|
|
223
239
|
}] } });
|
|
224
240
|
|
|
225
241
|
class SearchstaxSearchFeedbackWidget {
|
|
@@ -306,13 +322,15 @@ class SearchstaxSearchPaginationWidget {
|
|
|
306
322
|
});
|
|
307
323
|
}
|
|
308
324
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: SearchstaxSearchPaginationWidget, deps: [{ token: StoreServiceService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
309
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: SearchstaxSearchPaginationWidget, selector: "app-searchstax-search-pagination", inputs: { templateOverride: "templateOverride" }, ngImport: i0, template: "<div [id]=\"'searchstax-pagination-container' + rand\">\n <div\n class=\"searchstax-pagination-container\"\n *ngIf=\"paginationData?.totalResults
|
|
325
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: SearchstaxSearchPaginationWidget, selector: "app-searchstax-search-pagination", inputs: { templateOverride: "templateOverride", infiniteScrollTemplateOverride: "infiniteScrollTemplateOverride" }, ngImport: i0, template: "<div [id]=\"'searchstax-pagination-container' + rand\">\n <div\n class=\"searchstax-pagination-container\"\n *ngIf=\"\n paginationData?.totalResults &&\n !templateOverride &&\n !paginationData?.isInfiniteScroll\n \"\n >\n <div class=\"searchstax-pagination-content\">\n <a\n class=\"searchstax-pagination-previous\"\n (click)=\"previousPage($event, context)\"\n id=\"searchstax-pagination-previous\"\n >\n < Previous\n </a>\n <div class=\"searchstax-pagination-details\">\n {{ paginationData?.startResultIndex }} -\n {{ paginationData?.endResultIndex }} of\n {{ paginationData?.totalResults }}\n </div>\n <a\n class=\"searchstax-pagination-next\"\n (click)=\"nextPage($event, context)\"\n id=\"searchstax-pagination-next\"\n >Next ></a\n >\n </div>\n </div>\n\n <div\n *ngIf=\"\n paginationData?.totalResults &&\n templateOverride &&\n !paginationData?.isInfiniteScroll\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"templateOverride; context: context\"\n ></ng-container>\n </div>\n\n <div\n class=\"searchstax-pagination-container\"\n *ngIf=\"\n paginationData?.totalResults &&\n !infiniteScrollTemplateOverride &&\n paginationData?.isInfiniteScroll\n \"\n >\n <a\n className=\"searchstax-pagination-load-more\"\n (click)=\"nextPage($event, context)\"\n >\n Show More\n </a>\n </div>\n\n <div\n *ngIf=\"\n paginationData?.totalResults &&\n infiniteScrollTemplateOverride &&\n paginationData?.isInfiniteScroll\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"infiniteScrollTemplateOverride; context: context\"\n ></ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
310
326
|
}
|
|
311
327
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: SearchstaxSearchPaginationWidget, decorators: [{
|
|
312
328
|
type: Component,
|
|
313
|
-
args: [{ selector: "app-searchstax-search-pagination", template: "<div [id]=\"'searchstax-pagination-container' + rand\">\n <div\n class=\"searchstax-pagination-container\"\n *ngIf=\"paginationData?.totalResults
|
|
329
|
+
args: [{ selector: "app-searchstax-search-pagination", template: "<div [id]=\"'searchstax-pagination-container' + rand\">\n <div\n class=\"searchstax-pagination-container\"\n *ngIf=\"\n paginationData?.totalResults &&\n !templateOverride &&\n !paginationData?.isInfiniteScroll\n \"\n >\n <div class=\"searchstax-pagination-content\">\n <a\n class=\"searchstax-pagination-previous\"\n (click)=\"previousPage($event, context)\"\n id=\"searchstax-pagination-previous\"\n >\n < Previous\n </a>\n <div class=\"searchstax-pagination-details\">\n {{ paginationData?.startResultIndex }} -\n {{ paginationData?.endResultIndex }} of\n {{ paginationData?.totalResults }}\n </div>\n <a\n class=\"searchstax-pagination-next\"\n (click)=\"nextPage($event, context)\"\n id=\"searchstax-pagination-next\"\n >Next ></a\n >\n </div>\n </div>\n\n <div\n *ngIf=\"\n paginationData?.totalResults &&\n templateOverride &&\n !paginationData?.isInfiniteScroll\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"templateOverride; context: context\"\n ></ng-container>\n </div>\n\n <div\n class=\"searchstax-pagination-container\"\n *ngIf=\"\n paginationData?.totalResults &&\n !infiniteScrollTemplateOverride &&\n paginationData?.isInfiniteScroll\n \"\n >\n <a\n className=\"searchstax-pagination-load-more\"\n (click)=\"nextPage($event, context)\"\n >\n Show More\n </a>\n </div>\n\n <div\n *ngIf=\"\n paginationData?.totalResults &&\n infiniteScrollTemplateOverride &&\n paginationData?.isInfiniteScroll\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"infiniteScrollTemplateOverride; context: context\"\n ></ng-container>\n </div>\n</div>\n" }]
|
|
314
330
|
}], ctorParameters: function () { return [{ type: StoreServiceService }]; }, propDecorators: { templateOverride: [{
|
|
315
331
|
type: Input
|
|
332
|
+
}], infiniteScrollTemplateOverride: [{
|
|
333
|
+
type: Input
|
|
316
334
|
}] } });
|
|
317
335
|
|
|
318
336
|
class SearchstaxSearchFacetsWidget {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchstax-inc-searchstudio-ux-angular.mjs","sources":["../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/services/store-service.service.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-wrapper.component.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-input/searchstax-input.component.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-input/searchstax-input.component.html","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-results/searchstax-results.component.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-results/searchstax-results.component.html","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-overview/searchstax-search-overview.component.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-overview/searchstax-search-overview.component.html","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-pagination/searchstax-search-pagination.component.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-pagination/searchstax-search-pagination.component.html","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-facets/searchstax-search-facets.component.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-facets/searchstax-search-facets.component.html","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-sorting/searchstax-search-sorting.component.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-sorting/searchstax-search-sorting.component.html","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-related/searchstax-search-related.component.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-related/searchstax-search-related.component.html","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-external/searchstax-search-external.component.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-external/searchstax-search-external.component.html","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/searchstudio-ux-angular.module.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/public-api.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/searchstax-inc-searchstudio-ux-angular.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Searchstax } from '@searchstax-inc/searchstudio-ux-js'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StoreServiceService {\n searchstax = new Searchstax('vue' as any)\n constructor() { }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IRouterConfig, ISearchObject, ISearchstaxParsedResult, Searchstax } from '@searchstax-inc/searchstudio-ux-js';\nimport { StoreServiceService } from '../services/store-service.service';\n\n@Component({\n selector: 'app-searchstax-wrapper',\n template: `\n <div>\n <ng-content></ng-content>\n </div>\n `,\n styles: [\n ]\n})\nexport class SearchstaxWrapper implements OnInit {\n @Input() language = 'en';\n @Input() searchURL: string = '';\n @Input() suggesterURL: string = '';\n @Input() trackApiKey: string = '';\n @Input() searchAuth: string = '';\n @Input() authType: 'basic' | 'token' = 'basic';\n @Input() autoCorrect = true;\n @Input() router?: IRouterConfig;\n @Input() beforeSearch?: (props: ISearchObject) => ISearchObject | null ;\n @Input() afterSearch?: (results: ISearchstaxParsedResult[]) => ISearchstaxParsedResult[];\n @Output() initialized = new EventEmitter<Searchstax>();\n hooks: { beforeSearch?: (props: ISearchObject) => ISearchObject | null, afterSearch?: (results: ISearchstaxParsedResult[]) => ISearchstaxParsedResult[] } = {};\n constructor(private storeServiceService: StoreServiceService) {\n if (this.beforeSearch) {\n this.hooks.beforeSearch = this.beforeSearch;\n }\n if (this.afterSearch) {\n this.hooks.afterSearch = this.afterSearch;\n }\n\n }\n\n ngOnInit(): void {\n\n this.storeServiceService.searchstax.initialize({\n language: this.language,\n searchURL: this.searchURL,\n suggesterURL: this.suggesterURL,\n trackApiKey: this.trackApiKey,\n searchAuth: this.searchAuth,\n authType: this.authType,\n autoCorrect: this.autoCorrect,\n router: this.router,\n hooks: this.hooks\n })\n\n this.initialized.emit(this.storeServiceService.searchstax)\n }\n\n}\n","import { Component, Input, OnInit, TemplateRef } from '@angular/core';\nimport { ISearchstaxSEARCHTERM, ISearchstaxSuggestProps, ISearchstaxSuggestResponse, ISearchstaxSuggestion } from '@searchstax-inc/searchstudio-ux-js';\nimport { StoreServiceService } from '../../services/store-service.service';\n\n@Component({\n selector: 'app-searchstax-input',\n templateUrl: './searchstax-input.component.html',\n styles: []\n})\nexport class SearchstaxInputWidget implements OnInit {\n @Input() afterAutosuggest?: (result: ISearchstaxSuggestResponse) => ISearchstaxSuggestResponse;\n @Input() beforeAutosuggest?: (props: ISearchstaxSuggestProps) => ISearchstaxSuggestProps | null\n @Input() searchInputId = '';\n @Input() suggestAfterMinChars = 3;\n @Input() templateOverride?: TemplateRef<any>;\n\n hooks: {[key: string]: (prop: any) => any } = {};\n suggestions: ISearchstaxSuggestion[] = []\n context = this;\n\n constructor(private storeServiceService: StoreServiceService) { }\n\n ngOnInit(): void {\n console.log('this.templateOverride', this.templateOverride);\n if (this.storeServiceService.searchstax) {\n this.attachObservables();\n // const hooks: { [key: string]: (prop: any) => any } = {}\n if (this.afterAutosuggest) {\n this.hooks['afterAutosuggest'] = this.afterAutosuggest\n }\n if (this.beforeAutosuggest) {\n this.hooks['beforeAutosuggest'] = this.beforeAutosuggest\n }\n setTimeout(() => {\n this.storeServiceService.searchstax.addSearchInputWidget('searchstax-input-container', {\n suggestAfterMinChars: this.suggestAfterMinChars,\n hooks: this.hooks,\n templates: {\n mainTemplate: {\n template: ``,\n searchInputId: this.searchInputId ?? 'searchstax-search-input'\n }\n }\n })\n }, 0);\n } else {\n throw Error('Searchstax instance needs to be passed via props')\n }\n }\n\n onMouseLeave(context: this) {\n context.storeServiceService.searchstax.searchInputWidget?.resetAutosuggestSelection();\n context.storeServiceService.searchstax.searchInputWidget?.markActiveAutosuggestItem();\n }\n\n onMouseOver(suggestion: ISearchstaxSuggestion, context: this) {\n context.storeServiceService.searchstax.searchInputWidget?.onSuggestionEnter(suggestion)\n }\n\n onMouseClick(e: Event, context: this) {\n e.stopImmediatePropagation();\n context.storeServiceService.searchstax.searchInputWidget?.suggestionChosen()\n }\n\n attachObservables() {\n this.storeServiceService.searchstax.dataLayer.$autosuggestResults.subscribe(\n (suggestions: null | ISearchstaxSEARCHTERM) => {\n this.suggestions = suggestions?.suggestions ?? [];\n }\n );\n }\n\n}\n","<div id=\"searchstax-input-container\">\n <div class=\"searchstax-search-input-container\">\n <div *ngIf=\"!templateOverride\" class=\"searchstax-search-input-wrapper\">\n <input\n type=\"text\"\n id=\"searchstax-search-input\"\n class=\"searchstax-search-input\"\n placeholder=\"SEARCH FOR...\"\n />\n <div\n class=\"searchstax-autosuggest-container\"\n [ngClass]=\"{ hidden: suggestions.length === 0 }\"\n (mouseleave)=\"(onMouseLeave)\"\n >\n <div\n class=\"searchstax-autosuggest-item\"\n *ngFor=\"let suggestion of suggestions\"\n >\n <div\n class=\"searchstax-autosuggest-item-term-container\"\n [innerHtml]=\"suggestion.term\"\n (mouseover)=\"onMouseOver(suggestion, context)\"\n (click)=\"onMouseClick($event, context)\"\n ></div>\n </div>\n </div>\n <button\n class=\"searchstax-spinner-icon\"\n id=\"searchstax-search-input-action-button\"\n ></button>\n </div>\n <div *ngIf=\"templateOverride\">\n <ng-container\n *ngTemplateOutlet=\"templateOverride; context: context\"\n ></ng-container>\n </div>\n\n <!-- <slot\n name=\"input\"\n :suggestions=\"suggestions\"\n :onMouseClick=\"onMouseClick\"\n :onMouseOver=\"onMouseOver\"\n :onMouseLeave=\"onMouseLeave\"\n ></slot> -->\n </div>\n</div>\n","import { Component, Input, OnInit, TemplateRef } from '@angular/core';\nimport { StoreServiceService } from '../../services/store-service.service';\nimport {\n ISearchstaxParsedResult,\n ISearchstaxSearchMetadata,\n} from '@searchstax-inc/searchstudio-ux-js';\n\n@Component({\n selector: 'app-searchstax-results',\n templateUrl: './searchstax-results.component.html',\n styles: [],\n})\nexport class SearchstaxResultsWidget implements OnInit {\n @Input() afterLinkClick?: (\n results: ISearchstaxParsedResult\n ) => ISearchstaxParsedResult;\n\n @Input() noResultsTemplate?: TemplateRef<any>;\n @Input() resultsTemplate?: TemplateRef<any>;\n\n searchResults: ISearchstaxParsedResult[] | null = null;\n metadata: ISearchstaxSearchMetadata | null = null;\n searchTerm = '';\n context = this;\n\n get hooks(): { [key: string]: (prop: any) => any } {\n const hooks: { [key: string]: (prop: any) => any } = {};\n if (this.afterLinkClick) {\n hooks['afterLinkClick'] = this.afterLinkClick;\n }\n return hooks;\n }\n\n constructor(private storeServiceService: StoreServiceService) {}\n\n ngOnInit(): void {\n if (this.storeServiceService.searchstax) {\n this.attachObservables();\n\n setTimeout(() => {\n this.storeServiceService.searchstax.addSearchResultsWidget(\n 'searchstax-results-container',\n {\n templates: {},\n hooks: this.hooks,\n }\n );\n }, 0);\n } else {\n throw Error('Searchstax instance needs to be passed via props');\n }\n }\n\n attachObservables() {\n this.storeServiceService.searchstax.dataLayer.$searchResults.subscribe(\n (results: ISearchstaxParsedResult[] | null) => {\n this.searchResults = results;\n }\n );\n this.storeServiceService.searchstax.dataLayer.$searchTermChange.subscribe(\n (result: string) => {\n this.searchTerm = result;\n }\n );\n\n this.storeServiceService.searchstax.dataLayer.$searchResultsMetadata.subscribe(\n (value: ISearchstaxSearchMetadata) => {\n this.metadata = value;\n }\n );\n }\n\n resultClicked(result: ISearchstaxParsedResult, event: Event, context: this) {\n event.preventDefault();\n event.stopPropagation();\n context.storeServiceService.searchstax.executeLinkClick(result.uniqueId);\n }\n\n isImage(field: any){\n return field.isImage && typeof field.value === 'string'\n }\n}\n","<div id=\"searchstax-results-container\">\n <div class=\"searchstax-search-results-container\">\n <div id=\"searchstax-result-container\">\n <div\n *ngIf=\"\n searchResults && searchResults.length === 0 && !noResultsTemplate\n \"\n >\n <div class=\"searchstax-no-results\">\n Showing <strong>no results</strong> for\n <strong>\"{{ searchTerm }}\"</strong>\n <br />\n <span *ngIf=\"metadata?.spellingSuggestion\"\n > Did you mean\n <a href=\"#\" class=\"searchstax-suggestion-term\">{{\n metadata?.spellingSuggestion\n }}</a\n >?</span\n >\n </div>\n <div>\n <p>\n Try searching for search related terms or topics. We offer a wide\n variety of content to help you get the information you need.\n </p>\n <p>Lost? Click on the ‘X” in the Search Box to reset your search.</p>\n </div>\n </div>\n <div\n *ngIf=\"searchResults && searchResults.length === 0 && noResultsTemplate\"\n >\n <ng-container\n *ngTemplateOutlet=\"noResultsTemplate; context: context\"\n ></ng-container>\n </div>\n\n <div\n class=\"searchstax-search-results\"\n *ngIf=\"searchResults && searchResults.length && !resultsTemplate\"\n >\n <div\n class=\"searchstax-search-result\"\n [ngClass]=\"{ 'has-thumbnail': searchResult.thumbnail }\"\n *ngFor=\"let searchResult of searchResults\"\n >\n <div\n *ngIf=\"searchResult.promoted\"\n class=\"searchstax-search-result-promoted\"\n ></div>\n <a\n *ngIf=\"searchResult.url\"\n [href]=\"searchResult.url\"\n [attr.data-searchstax-unique-result-id]=\"searchResult.uniqueId\"\n (click)=\"resultClicked(searchResult, $event, context)\"\n class=\"searchstax-result-item-link\"\n ></a>\n <div\n *ngIf=\"searchResult.ribbon\"\n class=\"searchstax-search-result-ribbon\"\n >\n {{ searchResult.ribbon }}\n </div>\n <img\n *ngIf=\"searchResult.thumbnail\"\n [src]=\"searchResult.thumbnail\"\n class=\"searchstax-thumbnail\"\n />\n <div class=\"searchstax-search-result-title-container\">\n <span class=\"searchstax-search-result-title\">{{\n searchResult.title\n }}</span>\n </div>\n <p *ngIf=\"searchResult.paths\" class=\"searchstax-search-result-common\">\n {{ searchResult.paths }}\n </p>\n <p\n *ngIf=\"searchResult.description\"\n class=\"searchstax-search-result-description searchstax-search-result-common\"\n >\n {{ searchResult.description }}\n </p>\n <div *ngFor=\"let unmappedField of searchResult.unmappedFields\">\n <div\n *ngIf=\"isImage(unmappedField)\"\n class=\"searchstax-search-result-image-container\"\n >\n <img\n [src]=\"unmappedField.value\"\n class=\"searchstax-result-image\"\n />\n </div>\n <div *ngIf=\"!isImage(unmappedField)\">\n <p class=\"searchstax-search-result-common\">\n {{ unmappedField.value }}\n </p>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"searchResults && searchResults.length && resultsTemplate\">\n <ng-container\n *ngTemplateOutlet=\"resultsTemplate; context: context\"\n ></ng-container>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Input, OnInit, TemplateRef } from \"@angular/core\";\nimport { ISearchstaxSearchFeedbackData } from \"@searchstax-inc/searchstudio-ux-js\";\nimport { StoreServiceService } from \"../../services/store-service.service\";\n\n@Component({\n selector: \"app-searchstax-search-feedback\",\n templateUrl: \"./searchstax-search-overview.component.html\",\n styles: [],\n})\nexport class SearchstaxSearchFeedbackWidget implements OnInit {\n @Input() templateOverride?: TemplateRef<any>;\n\n searchFeedbackData: null | ISearchstaxSearchFeedbackData = null;\n rand = Math.random();\n context = this;\n constructor(private storeServiceService: StoreServiceService) {}\n\n ngOnInit(): void {\n if (this.storeServiceService.searchstax) {\n this.attachObservables();\n setTimeout(() => {\n this.storeServiceService.searchstax.addSearchFeedbackWidget(\"search-feedback-container\" + this.rand, {});\n }, 0);\n } else {\n throw Error(\"Searchstax instance needs to be passed via props\");\n }\n }\n\n onOriginalQueryClick(e: Event, context: this) {\n e.stopImmediatePropagation();\n context.storeServiceService.searchstax.searchFeedbackWidget?.onOriginalQueryClick(e);\n }\n\n attachObservables() {\n this.storeServiceService.searchstax.dataLayer.$searchFeedbackData.subscribe(\n (searchFeedbackData: null | ISearchstaxSearchFeedbackData) => {\n this.searchFeedbackData = searchFeedbackData;\n }\n );\n }\n}\n","<div\n class=\"search-feedback-container\"\n [id]=\"'search-feedback-container' + rand\"\n>\n <div\n class=\"searchstax-feedback-container\"\n *ngIf=\"\n searchFeedbackData &&\n searchFeedbackData?.searchExecuted &&\n !templateOverride &&\n searchFeedbackData?.totalResults\n \"\n >\n Showing\n <b\n >{{ searchFeedbackData!.startResultIndex }} -\n {{ searchFeedbackData!.endResultIndex }}</b\n >\n of <b>{{ searchFeedbackData!.totalResults }}</b> results\n <span *ngIf=\"searchFeedbackData.searchTerm\"\n >for \"<b>{{ searchFeedbackData!.searchTerm }}</b\n >\"\n </span>\n <div class=\"searchstax-feedback-container-suggested\">\n <div *ngIf=\"searchFeedbackData.autoCorrectedQuery\">\n Search instead for\n <a\n href=\"#\"\n (click)=\"onOriginalQueryClick($event, context)\"\n class=\"searchstax-feedback-original-query\"\n >{{ searchFeedbackData!.originalQuery }}</a\n >\n </div>\n </div>\n </div>\n\n <div\n *ngIf=\"\n searchFeedbackData &&\n searchFeedbackData?.searchExecuted &&\n templateOverride &&\n searchFeedbackData?.totalResults\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"templateOverride; context: context\"\n ></ng-container>\n </div>\n</div>\n","import { Component, Input, OnInit, TemplateRef } from \"@angular/core\";\nimport {\n IPaginationData,\n ISearchObject,\n} from \"@searchstax-inc/searchstudio-ux-js\";\nimport { StoreServiceService } from \"../../services/store-service.service\";\n\n@Component({\n selector: \"app-searchstax-search-pagination\",\n templateUrl: \"./searchstax-search-pagination.component.html\",\n styles: [],\n})\nexport class SearchstaxSearchPaginationWidget implements OnInit {\n @Input() templateOverride?: TemplateRef<any>;\n\n paginationData: null | IPaginationData = null;\n rand = Math.random();\n context = this;\n paginationAdded = false;\n constructor(private storeServiceService: StoreServiceService) {}\n\n ngOnInit(): void {\n if (this.storeServiceService.searchstax) {\n this.attachObservables();\n setTimeout(() => {\n this.addWidget();\n }, 0);\n } else {\n throw Error(\"Searchstax instance needs to be passed via props\");\n }\n }\n\n nextPage(event: Event, context: this) {\n event.stopImmediatePropagation();\n if (!context.paginationData?.isLastPage) {\n context.storeServiceService.searchstax.searchPaginationWidget?.nextPage(\n event\n );\n }\n }\n\n previousPage(event: Event, context: this) {\n event.stopImmediatePropagation();\n if (!context.paginationData?.isFirstPage) {\n context.storeServiceService.searchstax.searchPaginationWidget?.previousPage(\n event\n );\n }\n }\n\n addWidget() {\n if (\n !this.paginationAdded &&\n this.storeServiceService.searchstax.routerHelper\n ) {\n this.paginationAdded = true;\n this.storeServiceService.searchstax.addPaginationWidget(\n \"searchstax-pagination-container\" + this.rand,\n {}\n );\n }\n }\n\n attachObservables() {\n this.storeServiceService.searchstax.dataLayer.$searchObject.subscribe(\n (pagination: ISearchObject | null) => {\n this.addWidget();\n }\n );\n\n this.storeServiceService.searchstax.dataLayer.$paginationData.subscribe(\n (pagination: IPaginationData | null) => {\n this.paginationData = pagination;\n }\n );\n }\n}\n","<div [id]=\"'searchstax-pagination-container' + rand\">\n <div\n class=\"searchstax-pagination-container\"\n *ngIf=\"paginationData?.totalResults && !templateOverride\"\n >\n <div class=\"searchstax-pagination-content\">\n <a\n class=\"searchstax-pagination-previous\"\n (click)=\"previousPage($event, context)\"\n id=\"searchstax-pagination-previous\"\n >\n < Previous\n </a>\n <div class=\"searchstax-pagination-details\">\n {{ paginationData?.startResultIndex }} -\n {{ paginationData?.endResultIndex }} of\n {{ paginationData?.totalResults }}\n </div>\n <a\n class=\"searchstax-pagination-next\"\n (click)=\"nextPage($event, context)\"\n id=\"searchstax-pagination-next\"\n >Next ></a\n >\n </div>\n </div>\n\n <div *ngIf=\"paginationData?.totalResults && templateOverride\">\n <ng-container\n *ngTemplateOutlet=\"templateOverride; context: context\"\n ></ng-container>\n </div>\n</div>\n","import { Component, ElementRef, Input, OnInit, QueryList, TemplateRef, ViewChild, ViewChildren } from \"@angular/core\";\nimport { IFacetData, IFacetValue, IFacetValueData, IFacetValueRange, IFacetsTemplateData, IPaginationData, ISearchObject } from \"@searchstax-inc/searchstudio-ux-js\";\nimport { StoreServiceService } from \"../../services/store-service.service\";\n\n@Component({\n selector: \"app-searchstax-search-facets\",\n templateUrl: \"./searchstax-search-facets.component.html\",\n styles: [],\n})\nexport class SearchstaxSearchFacetsWidget implements OnInit {\n @Input() templateOverrideMobile?: TemplateRef<any>;\n @Input() templateOverrideDesktop?: TemplateRef<any>;\n @Input() facetingType!: \"and\" | \"or\" | \"showUnavailable\" | \"tabs\";\n @Input() itemsPerPageDesktop!: number;\n @Input() itemsPerPageMobile!: number;\n @Input() specificFacets!: string[];\n\n facetsTemplateDataDesktop: null | IFacetsTemplateData = null;\n facetsTemplateDataMobile: null | IFacetsTemplateData = null;\n context = this;\n selectedFacetsCheckboxes: IFacetValue[] = [];\n selectedFacetsRange: IFacetValueRange[] = [];\n rand = Math.random();\n\n // @ViewChildren(\"facetContainers\") facetContainers: QueryList<ElementRef>;\n constructor(private storeServiceService: StoreServiceService) {}\n\n ngOnInit(): void {\n if (this.storeServiceService.searchstax) {\n this.attachObservables();\n setTimeout(() => {\n this.addWidget();\n }, 0);\n } else {\n throw Error(\"Searchstax instance needs to be passed via props\");\n }\n }\n\n addWidget() {\n this.storeServiceService.searchstax.addFacetsWidget('searchstax-facets-container' + this.rand, {\n facetingType: this.facetingType,\n specificFacets: this.specificFacets,\n itemsPerPageDesktop: this.itemsPerPageDesktop,\n itemsPerPageMobile: this.itemsPerPageMobile\n })\n }\n\n attachObservables() {\n this.storeServiceService.searchstax.dataLayer.$facetsTemplateData.subscribe(\n (data: null | IFacetsTemplateData) => {\n if (data?.isMobile) {\n this.facetsTemplateDataMobile = data;\n\n } else {\n this.facetsTemplateDataDesktop = data;\n }\n }\n );\n\n this.storeServiceService.searchstax.dataLayer.$selectedFacetsTemplateData.subscribe(\n (data: null | (IFacetValue | IFacetValueRange)[]) => {\n const da = data ?? [];\n this.selectedFacetsCheckboxes = da.filter((d) => d.type === 'checkbox') as IFacetValue[];\n }\n );\n }\n\n\n unselectFacet(facet: IFacetValue, context: this) {\n context.storeServiceService.searchstax.searchFacetsWidget?.unselectFacet(facet)\n }\n\n unselectAll(context: this) {\n context.storeServiceService.searchstax.searchFacetsWidget?.removeSelectedFacets()\n }\n\n isNotDeactivated(name: string, context: this) {\n return !context.storeServiceService.searchstax.searchFacetsWidget?.deactivatedFacets[name]\n }\n\n toggleFacetGroup(name: string, context: this) {\n if(context.storeServiceService.searchstax.searchFacetsWidget)\n if (context.isNotDeactivated(name, context)) {\n context.storeServiceService.searchstax.searchFacetsWidget.deactivatedFacets[name] = true\n } else {\n context.storeServiceService.searchstax.searchFacetsWidget.deactivatedFacets[name] = false\n }\n }\n\n isChecked(facetValue: IFacetValueData, context: this) {\n return context.storeServiceService.searchstax.searchFacetsWidget?.isChecked(facetValue)\n }\n\n selectFacet(el: HTMLDivElement, event: Event, data: IFacetValueData, isInput: boolean, context: this) {\n const wrapperDiv = document.createElement('div');\n wrapperDiv.innerHTML = el.outerHTML;\n context.storeServiceService.searchstax.searchFacetsWidget?.onFacetSelect(event, data, el, isInput)\n\n }\n\n showMoreLessDesktop(e: Event, data: IFacetData, context: this) {\n context.storeServiceService.searchstax.searchFacetsWidget?.onShowMoreLessClick(e, data, false)\n }\n\n showMoreLessMobile(e: Event, data: IFacetData, context: this) {\n context.storeServiceService.searchstax.searchFacetsWidget?.onShowMoreLessClick(e, data, true)\n }\n\n openOverlay(context: this) {\n context.storeServiceService.searchstax.searchFacetsWidget?.openOverlay();\n }\n\n closeOverlay(context: this) {\n context.storeServiceService.searchstax.searchFacetsWidget?.closeOverlay();\n }\n\n facetValues(facet: IFacetData) : IFacetValueData[] {\n return facet.values as IFacetValueData[];\n }\n\n facetMobileData(facet: IFacetsTemplateData | null) : any {\n return facet as any\n }\n}\n","<div [id]=\"'searchstax-facets-container' + rand\">\n <div\n *ngIf=\"facetsTemplateDataDesktop?.hasResultsOrExternalPromotions && !templateOverrideDesktop\"\n class=\"searchstax-facets-container-desktop\"\n >\n <div\n class=\"searchstax-facet-container\"\n *ngFor=\"let facet of facetsTemplateDataDesktop?.facets\"\n [class]=\"{ active: isNotDeactivated(facet.name, context) }\"\n >\n <div>\n <div class=\"searchstax-facet-title-container\" (click)=\"toggleFacetGroup(facet.name, context)\">\n <div class=\"searchstax-facet-title\">{{ facet.label }}</div>\n <div class=\"searchstax-facet-title-arrow active\"></div>\n </div>\n <div class=\"searchstax-facet-values-container\">\n <div\n *ngFor=\"let facetValue of facetValues(facet); index as key\"\n class=\"searchstax-facet-value-container\"\n [class]=\"{ 'searchstax-facet-value-disabled': facetValue.disabled }\"\n #ref\n >\n <div class=\"searchstax-facet-input\">\n <input\n type=\"checkbox\"\n class=\"searchstax-facet-input-checkbox\"\n [checked]=\"isChecked(facetValue, context)\"\n [disabled]=\"facetValue.disabled\"\n (click)=\"selectFacet(ref, $event, facetValue, true, context)\"\n />\n </div>\n <div class=\"searchstax-facet-value-label\" (click)=\"selectFacet(ref, $event, facetValue, false, context)\">\n {{ facetValue.value }}\n </div>\n <div class=\"searchstax-facet-value-count\" (click)=\"selectFacet(ref, $event, facetValue, false, context)\">\n ({{ facetValue.count }})\n </div>\n </div>\n <div class=\"searchstax-facet-show-more-container\" *ngIf=\"facet.hasMoreFacets\">\n <div class=\"searchstax-facet-show-more-container\" (click)=\"showMoreLessDesktop($event, facet, context)\">\n <div\n *ngIf=\"facet.showingAllFacets\"\n class=\"searchstax-facet-show-less-button searchstax-facet-show-button\"\n >\n less\n </div>\n <div\n *ngIf=\"!facet.showingAllFacets\"\n class=\"searchstax-facet-show-more-button searchstax-facet-show-button\"\n >\n more\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"facetsTemplateDataDesktop?.hasResultsOrExternalPromotions && templateOverrideDesktop\">\n <ng-container *ngTemplateOutlet=\"templateOverrideDesktop; context: context\"></ng-container>\n </div>\n\n <div\n class=\"searchstax-facets-container-mobile\"\n *ngIf=\"facetsTemplateDataMobile?.hasResultsOrExternalPromotions && !templateOverrideMobile\"\n >\n <div class=\"searchstax-facets-pills-container\">\n <div class=\"searchstax-facets-pill searchstax-facets-pill-filter-by\" (click)=\"openOverlay(context)\">\n <div class=\"searchstax-facets-pill-label\">Filter By</div>\n </div>\n <div class=\"searchstax-facets-pills-selected\">\n <div\n class=\"searchstax-facets-pill searchstax-facets-pill-facets\"\n *ngFor=\"let facet of selectedFacetsCheckboxes\"\n (click)=\"unselectFacet(facet, context)\"\n >\n <div class=\"searchstax-facets-pill-label\">{{ facet.value }} ({{ facet.count }})</div>\n <div class=\"searchstax-facets-pill-icon-close\"></div>\n </div>\n </div>\n <div\n class=\"searchstax-facets-pill searchstax-clear-filters searchstax-facets-pill-clear-all\"\n *ngIf=\"selectedFacetsCheckboxes.length\"\n (click)=\"unselectAll(context)\"\n >\n <div class=\"searchstax-facets-pill-label\">Clear Filters</div>\n </div>\n </div>\n <div\n class=\"searchstax-facets-mobile-overlay\"\n [class]=\"{ 'searchstax-show': facetMobileData(facetsTemplateDataMobile)?.overlayOpened }\"\n >\n <div class=\"searchstax-facets-mobile-overlay-header\">\n <div class=\"searchstax-facets-mobile-overlay-header-title\">Filter By</div>\n <div class=\"searchstax-search-close\" (click)=\"closeOverlay(context)\"></div>\n </div>\n <div class=\"searchstax-facets-container-mobile\">\n <div\n *ngFor=\"let facet of facetsTemplateDataMobile?.facets\"\n class=\"searchstax-facet-container\"\n [class]=\"{ active: isNotDeactivated(facet.name, context) }\"\n >\n <div>\n <div class=\"searchstax-facet-title-container\" (click)=\"toggleFacetGroup(facet.name, context)\">\n <div class=\"searchstax-facet-title\">{{ facet.label }}</div>\n <div class=\"searchstax-facet-title-arrow active\"></div>\n </div>\n <div class=\"searchstax-facet-values-container\">\n <div\n *ngFor=\"let facetValue of facetValues(facet); index as key\"\n class=\"searchstax-facet-value-container\"\n [class]=\"{ 'searchstax-facet-value-disabled': facetValue.disabled }\"\n #ref\n >\n <div class=\"searchstax-facet-input\">\n <input\n type=\"checkbox\"\n class=\"searchstax-facet-input-checkbox\"\n [checked]=\"isChecked(facetValue, context)\"\n [disabled]=\"facetValue.disabled\"\n (click)=\"selectFacet(ref, $event, facetValue, true, context)\"\n />\n </div>\n <div\n class=\"searchstax-facet-value-label\"\n (click)=\"selectFacet(ref, $event, facetValue, false, context)\"\n >\n {{ facetValue.value }}\n </div>\n <div\n class=\"searchstax-facet-value-count\"\n (click)=\"selectFacet(ref, $event, facetValue, false, context)\"\n >\n ({{ facetValue.count }})\n </div>\n </div>\n <div class=\"searchstax-facet-show-more-container\" *ngIf=\"facet.hasMoreFacets\">\n <div class=\"searchstax-facet-show-more-container\" (click)=\"showMoreLessDesktop($event, facet, context)\">\n <div\n *ngIf=\"facet.showingAllFacets\"\n class=\"searchstax-facet-show-less-button searchstax-facet-show-button\"\n >\n less\n </div>\n <div\n *ngIf=\"!facet.showingAllFacets\"\n class=\"searchstax-facet-show-more-button searchstax-facet-show-button\"\n >\n more\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <button class=\"searchstax-facets-mobile-overlay-done\" (click)=\"closeOverlay(context)\">Done</button>\n </div>\n </div>\n <div *ngIf=\"facetsTemplateDataMobile?.hasResultsOrExternalPromotions && templateOverrideMobile\">\n <ng-container *ngTemplateOutlet=\"templateOverrideMobile; context: context\"></ng-container>\n </div>\n</div>\n","import { Component, Input, OnInit, TemplateRef } from \"@angular/core\";\nimport { ISearchObject, ISearchstaxSearchFeedbackData, ISearchstaxSearchSortingData } from \"@searchstax-inc/searchstudio-ux-js\";\nimport { StoreServiceService } from \"../../services/store-service.service\";\n\n@Component({\n selector: \"app-searchstax-search-sorting\",\n templateUrl: \"./searchstax-search-sorting.component.html\",\n styles: [],\n})\nexport class SearchstaxSearchSortingWidget implements OnInit {\n @Input() templateOverride?: TemplateRef<any>;\n\n sortingData: null | ISearchstaxSearchSortingData = null;\n rand = Math.random();\n context = this;\n selectedSorting: string = \"\";\n constructor(private storeServiceService: StoreServiceService) {}\n\n ngOnInit(): void {\n if (this.storeServiceService.searchstax) {\n this.attachObservables();\n setTimeout(() => {\n this.storeServiceService.searchstax.addSearchSortingWidget(\"search-sorting-container\" + this.rand, {});\n }, 0);\n } else {\n throw Error(\"Searchstax instance needs to be passed via props\");\n }\n }\n\n orderChange(e: Event, context: this) {\n e.stopImmediatePropagation();\n context.storeServiceService.searchstax.searchSortingWidget?.setOrderQuery((e.target as HTMLSelectElement).value);\n }\n\n attachObservables() {\n this.storeServiceService.searchstax.dataLayer.$searchSortingData.subscribe(\n (sortingData: null | ISearchstaxSearchSortingData) => {\n this.sortingData = sortingData;\n }\n );\n\n this.storeServiceService.searchstax.dataLayer.$searchObject.subscribe((searchObject: null | ISearchObject) => {\n this.selectedSorting = decodeURIComponent(searchObject?.order ?? '');\n });\n }\n}\n","<div class=\"search-feedback-container\" [id]=\"'search-sorting-container' + rand\">\n <div\n class=\"searchstax-sorting-container\"\n *ngIf=\"sortingData && sortingData?.searchExecuted && sortingData?.hasResultsOrExternalPromotions && !templateOverride\"\n >\n <label class=\"searchstax-sorting-label\" for=\"sort-by\">Sort By</label>\n <select\n id=\"searchstax-search-order-select\"\n class=\"searchstax-search-order-select\"\n [value]=\"selectedSorting\"\n (change)=\"orderChange($event, context)\"\n >\n <option value=\"\">Relevance</option>\n <option value=\"date desc\">Newest Content</option>\n <option value=\"date asc\">Oldest Content</option>\n </select>\n </div>\n\n <div\n *ngIf=\"\n sortingData && sortingData?.searchExecuted && sortingData?.hasResultsOrExternalPromotions && templateOverride\n \"\n >\n <ng-container *ngTemplateOutlet=\"templateOverride; context: context\"></ng-container>\n </div>\n</div>\n","import { Component, Input, OnInit, TemplateRef } from \"@angular/core\";\nimport { ISearchstaxRelatedSearchResult, ISearchstaxRelatedSearchesData } from \"@searchstax-inc/searchstudio-ux-js\";\nimport { StoreServiceService } from \"../../services/store-service.service\";\n\n@Component({\n selector: \"app-searchstax-related-searches\",\n templateUrl: \"./searchstax-search-related.component.html\",\n styles: [],\n})\nexport class SearchstaxSearchRelatedSearchesWidget implements OnInit {\n @Input() relatedSearchesURL?: string;\n @Input() relatedSearchesAPIKey?: string;\n @Input() templateOverride?: TemplateRef<any>;\n\n relatedData: null | ISearchstaxRelatedSearchesData = null;\n rand = Math.random();\n context = this;\n constructor(private storeServiceService: StoreServiceService) {}\n\n ngOnInit(): void {\n if (this.storeServiceService.searchstax) {\n this.attachObservables();\n setTimeout(() => {\n this.storeServiceService.searchstax.addRelatedSearchesWidget(\n \"searchstax-related-searches-container\" + this.rand,\n { relatedSearchesURL: this.relatedSearchesURL ?? \"\", relatedSearchesAPIKey: this.relatedSearchesAPIKey ?? \"\" }\n );\n }, 0);\n } else {\n throw Error(\"Searchstax instance needs to be passed via props\");\n }\n }\n\n executeSearch(result: ISearchstaxRelatedSearchResult, context: this) {\n context.storeServiceService.searchstax.relatedSearchesWidget?.executeSearch(result);\n }\n\n attachObservables() {\n this.storeServiceService.searchstax.dataLayer.$searchRelatedSearchesData.subscribe(\n (relatedData: null | ISearchstaxRelatedSearchesData) => {\n this.relatedData = relatedData;\n }\n );\n }\n}\n","<div\n class=\"searchstax-related-searches-container\"\n [id]=\"'searchstax-related-searches-container' + rand\"\n *ngIf=\"relatedData && relatedData?.searchExecuted && relatedData?.hasRelatedSearches && !templateOverride\"\n>\n Related searches: <span id=\"searchstax-related-searches\"></span>\n <span class=\"searchstax-related-search\" *ngIf=\"relatedData.relatedSearches\">\n <span\n *ngFor=\"let related of relatedData.relatedSearches\"\n (click)=\"executeSearch(related, context)\"\n class=\"searchstax-related-search searchstax-related-search-item\"\n >\n {{ related.related_search }}<span *ngIf=\"!related.last\">,</span>\n </span>\n </span>\n</div>\n\n<div *ngIf=\"relatedData && relatedData?.searchExecuted && relatedData?.hasRelatedSearches && templateOverride\">\n <ng-container *ngTemplateOutlet=\"templateOverride; context: context\"></ng-container>\n</div>\n","import { Component, Input, OnInit, TemplateRef } from \"@angular/core\";\nimport { IExternalPromotion, ISearchstaxExternalPromotionsData } from \"@searchstax-inc/searchstudio-ux-js\";\nimport { StoreServiceService } from \"../../services/store-service.service\";\n\n@Component({\n selector: \"app-searchstax-external-promotions\",\n templateUrl: \"./searchstax-search-external.component.html\",\n styles: [],\n})\nexport class SearchstaxSearchExternalPromotionsWidget implements OnInit {\n @Input() templateOverride?: TemplateRef<any>;\n\n externalPromotionsData: null | ISearchstaxExternalPromotionsData = null;\n rand = Math.random();\n context = this;\n constructor(private storeServiceService: StoreServiceService) {}\n\n ngOnInit(): void {\n if (this.storeServiceService.searchstax) {\n this.attachObservables();\n setTimeout(() => {\n this.storeServiceService.searchstax.addExternalPromotionsWidget(\n \"searchstax-external-promotions-layout-container\" + this.rand,\n {}\n );\n }, 0);\n } else {\n throw Error(\"Searchstax instance needs to be passed via props\");\n }\n }\n\n trackClick(externalPromotion: IExternalPromotion, event: Event, context: this) {\n context.storeServiceService.searchstax.externalPromotionsWidget?.trackClick(externalPromotion, event);\n }\n\n attachObservables() {\n this.storeServiceService.searchstax.dataLayer.$searchExternalPromotionsData.subscribe(\n (externalPromotionsData: null | ISearchstaxExternalPromotionsData) => {\n this.externalPromotionsData = externalPromotionsData;\n }\n );\n }\n}\n","<div [id]=\"'searchstax-external-promotions-layout-container' + rand\">\n <div\n class=\"searchstax-external-promotions-container\"\n id=\"searchstax-external-promotions-container\"\n *ngIf=\"\n externalPromotionsData &&\n externalPromotionsData?.searchExecuted &&\n externalPromotionsData?.hasExternalPromotions &&\n !templateOverride\n \"\n >\n <div\n class=\"searchstax-external-promotion searchstax-search-result\"\n *ngFor=\"let externalPromotion of externalPromotionsData.externalPromotions\"\n >\n <div class=\"icon-elevated\"></div>\n <a\n *ngIf=\"externalPromotion.url\"\n [href]=\"externalPromotion.url\"\n (click)=\"trackClick(externalPromotion, $event, context)\"\n class=\"searchstax-result-item-link\"\n ></a>\n <div class=\"searchstax-search-result-title-container\">\n <span class=\"searchstax-search-result-title\">{{ externalPromotion.name }}</span>\n </div>\n <p\n *ngIf=\"externalPromotion.description\"\n class=\"searchstax-search-result-description searchstax-search-result-common\"\n >\n {{ externalPromotion.description }}\n </p>\n <p *ngIf=\"externalPromotion.url\" class=\"searchstax-search-result-description searchstax-search-result-common\">\n {{ externalPromotion.url }}\n </p>\n </div>\n </div>\n <div\n *ngIf=\"\n externalPromotionsData &&\n externalPromotionsData?.searchExecuted &&\n externalPromotionsData?.hasExternalPromotions &&\n templateOverride\n \"\n >\n <ng-container *ngTemplateOutlet=\"templateOverride; context: context\"></ng-container>\n </div>\n</div>\n","import { NgModule } from \"@angular/core\";\nimport { SearchstaxWrapper } from \"./components/searchstax-wrapper.component\";\nimport { SearchstaxInputWidget } from \"./components/searchstax-input/searchstax-input.component\";\nimport { CommonModule } from \"@angular/common\";\nimport { SearchstaxResultsWidget } from \"./components/searchstax-results/searchstax-results.component\";\nimport { SearchstaxSearchFeedbackWidget } from \"../public-api\";\nimport { SearchstaxSearchPaginationWidget } from \"./components/searchstax-search-pagination/searchstax-search-pagination.component\";\nimport { SearchstaxSearchFacetsWidget } from \"./components/searchstax-search-facets/searchstax-search-facets.component\";\nimport { SearchstaxSearchSortingWidget } from \"./components/searchstax-search-sorting/searchstax-search-sorting.component\";\nimport { SearchstaxSearchRelatedSearchesWidget } from \"./components/searchstax-search-related/searchstax-search-related.component\";\nimport { SearchstaxSearchExternalPromotionsWidget } from \"./components/searchstax-search-external/searchstax-search-external.component\";\n\n@NgModule({\n declarations: [\n SearchstaxWrapper,\n SearchstaxInputWidget,\n SearchstaxResultsWidget,\n SearchstaxSearchFeedbackWidget,\n SearchstaxSearchPaginationWidget,\n SearchstaxSearchFacetsWidget,\n SearchstaxSearchSortingWidget,\n SearchstaxSearchRelatedSearchesWidget,\n SearchstaxSearchExternalPromotionsWidget\n ],\n imports: [CommonModule],\n exports: [\n SearchstaxWrapper,\n SearchstaxInputWidget,\n SearchstaxResultsWidget,\n SearchstaxSearchFeedbackWidget,\n SearchstaxSearchPaginationWidget,\n SearchstaxSearchFacetsWidget,\n SearchstaxSearchSortingWidget,\n SearchstaxSearchRelatedSearchesWidget,\n SearchstaxSearchExternalPromotionsWidget\n ],\n})\nexport class SearchstudioUxAngularModule {}\n","/*\n * Public API Surface of searchstudio-ux-angular\n */\n\nexport * from './lib/components/searchstax-wrapper.component';\nexport * from './lib/components/searchstax-input/searchstax-input.component';\nexport * from './lib/components/searchstax-results/searchstax-results.component';\nexport * from './lib/components/searchstax-search-overview/searchstax-search-overview.component';\nexport * from './lib/components/searchstax-search-pagination/searchstax-search-pagination.component';\nexport * from './lib/components/searchstax-search-facets/searchstax-search-facets.component';\nexport * from './lib/components/searchstax-search-sorting/searchstax-search-sorting.component';\nexport * from './lib/components/searchstax-search-related/searchstax-search-related.component';\nexport * from './lib/components/searchstax-search-external/searchstax-search-external.component';\nexport * from './lib/services/store-service.service';\nexport * from './lib/searchstudio-ux-angular.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.StoreServiceService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"searchstax-inc-searchstudio-ux-angular.mjs","sources":["../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/services/store-service.service.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-wrapper.component.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-input/searchstax-input.component.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-input/searchstax-input.component.html","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-results/searchstax-results.component.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-results/searchstax-results.component.html","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-overview/searchstax-search-overview.component.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-overview/searchstax-search-overview.component.html","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-pagination/searchstax-search-pagination.component.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-pagination/searchstax-search-pagination.component.html","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-facets/searchstax-search-facets.component.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-facets/searchstax-search-facets.component.html","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-sorting/searchstax-search-sorting.component.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-sorting/searchstax-search-sorting.component.html","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-related/searchstax-search-related.component.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-related/searchstax-search-related.component.html","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-external/searchstax-search-external.component.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-external/searchstax-search-external.component.html","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/searchstudio-ux-angular.module.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/public-api.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/searchstax-inc-searchstudio-ux-angular.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Searchstax } from '@searchstax-inc/searchstudio-ux-js'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StoreServiceService {\n searchstax = new Searchstax('vue' as any)\n constructor() { }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IRouterConfig, ISearchObject, ISearchstaxParsedResult, Searchstax } from '@searchstax-inc/searchstudio-ux-js';\nimport { StoreServiceService } from '../services/store-service.service';\n\n@Component({\n selector: 'app-searchstax-wrapper',\n template: `\n <div>\n <ng-content></ng-content>\n </div>\n `,\n styles: [\n ]\n})\nexport class SearchstaxWrapper implements OnInit {\n @Input() language = 'en';\n @Input() searchURL: string = '';\n @Input() suggesterURL: string = '';\n @Input() trackApiKey: string = '';\n @Input() searchAuth: string = '';\n @Input() authType: 'basic' | 'token' = 'basic';\n @Input() autoCorrect = true;\n @Input() router?: IRouterConfig;\n @Input() beforeSearch?: (props: ISearchObject) => ISearchObject | null ;\n @Input() afterSearch?: (results: ISearchstaxParsedResult[]) => ISearchstaxParsedResult[];\n @Output() initialized = new EventEmitter<Searchstax>();\n hooks: { beforeSearch?: (props: ISearchObject) => ISearchObject | null, afterSearch?: (results: ISearchstaxParsedResult[]) => ISearchstaxParsedResult[] } = {};\n constructor(private storeServiceService: StoreServiceService) {\n if (this.beforeSearch) {\n this.hooks.beforeSearch = this.beforeSearch;\n }\n if (this.afterSearch) {\n this.hooks.afterSearch = this.afterSearch;\n }\n\n }\n\n ngOnInit(): void {\n\n this.storeServiceService.searchstax.initialize({\n language: this.language,\n searchURL: this.searchURL,\n suggesterURL: this.suggesterURL,\n trackApiKey: this.trackApiKey,\n searchAuth: this.searchAuth,\n authType: this.authType,\n autoCorrect: this.autoCorrect,\n router: this.router,\n hooks: this.hooks\n })\n\n this.initialized.emit(this.storeServiceService.searchstax)\n }\n\n}\n","import { Component, Input, OnInit, TemplateRef } from '@angular/core';\nimport { ISearchstaxSEARCHTERM, ISearchstaxSuggestProps, ISearchstaxSuggestResponse, ISearchstaxSuggestion } from '@searchstax-inc/searchstudio-ux-js';\nimport { StoreServiceService } from '../../services/store-service.service';\n\n@Component({\n selector: 'app-searchstax-input',\n templateUrl: './searchstax-input.component.html',\n styles: []\n})\nexport class SearchstaxInputWidget implements OnInit {\n @Input() afterAutosuggest?: (result: ISearchstaxSuggestResponse) => ISearchstaxSuggestResponse;\n @Input() beforeAutosuggest?: (props: ISearchstaxSuggestProps) => ISearchstaxSuggestProps | null\n @Input() searchInputId = '';\n @Input() suggestAfterMinChars = 3;\n @Input() templateOverride?: TemplateRef<any>;\n\n hooks: {[key: string]: (prop: any) => any } = {};\n suggestions: ISearchstaxSuggestion[] = []\n context = this;\n\n constructor(private storeServiceService: StoreServiceService) { }\n\n ngOnInit(): void {\n console.log('this.templateOverride', this.templateOverride);\n if (this.storeServiceService.searchstax) {\n this.attachObservables();\n // const hooks: { [key: string]: (prop: any) => any } = {}\n if (this.afterAutosuggest) {\n this.hooks['afterAutosuggest'] = this.afterAutosuggest\n }\n if (this.beforeAutosuggest) {\n this.hooks['beforeAutosuggest'] = this.beforeAutosuggest\n }\n setTimeout(() => {\n this.storeServiceService.searchstax.addSearchInputWidget('searchstax-input-container', {\n suggestAfterMinChars: this.suggestAfterMinChars,\n hooks: this.hooks,\n templates: {\n mainTemplate: {\n template: ``,\n searchInputId: this.searchInputId ?? 'searchstax-search-input'\n }\n }\n })\n }, 0);\n } else {\n throw Error('Searchstax instance needs to be passed via props')\n }\n }\n\n onMouseLeave(context: this) {\n context.storeServiceService.searchstax.searchInputWidget?.resetAutosuggestSelection();\n context.storeServiceService.searchstax.searchInputWidget?.markActiveAutosuggestItem();\n }\n\n onMouseOver(suggestion: ISearchstaxSuggestion, context: this) {\n context.storeServiceService.searchstax.searchInputWidget?.onSuggestionEnter(suggestion)\n }\n\n onMouseClick(e: Event, context: this) {\n e.stopImmediatePropagation();\n context.storeServiceService.searchstax.searchInputWidget?.suggestionChosen()\n }\n\n attachObservables() {\n this.storeServiceService.searchstax.dataLayer.$autosuggestResults.subscribe(\n (suggestions: null | ISearchstaxSEARCHTERM) => {\n this.suggestions = suggestions?.suggestions ?? [];\n }\n );\n }\n\n}\n","<div id=\"searchstax-input-container\">\n <div class=\"searchstax-search-input-container\">\n <div *ngIf=\"!templateOverride\" class=\"searchstax-search-input-wrapper\">\n <input\n type=\"text\"\n id=\"searchstax-search-input\"\n class=\"searchstax-search-input\"\n placeholder=\"SEARCH FOR...\"\n />\n <div\n class=\"searchstax-autosuggest-container\"\n [ngClass]=\"{ hidden: suggestions.length === 0 }\"\n (mouseleave)=\"(onMouseLeave)\"\n >\n <div\n class=\"searchstax-autosuggest-item\"\n *ngFor=\"let suggestion of suggestions\"\n >\n <div\n class=\"searchstax-autosuggest-item-term-container\"\n [innerHtml]=\"suggestion.term\"\n (mouseover)=\"onMouseOver(suggestion, context)\"\n (click)=\"onMouseClick($event, context)\"\n ></div>\n </div>\n </div>\n <button\n class=\"searchstax-spinner-icon\"\n id=\"searchstax-search-input-action-button\"\n ></button>\n </div>\n <div *ngIf=\"templateOverride\">\n <ng-container\n *ngTemplateOutlet=\"templateOverride; context: context\"\n ></ng-container>\n </div>\n\n <!-- <slot\n name=\"input\"\n :suggestions=\"suggestions\"\n :onMouseClick=\"onMouseClick\"\n :onMouseOver=\"onMouseOver\"\n :onMouseLeave=\"onMouseLeave\"\n ></slot> -->\n </div>\n</div>\n","import { Component, Input, OnInit, TemplateRef } from '@angular/core';\nimport { StoreServiceService } from '../../services/store-service.service';\nimport {\n ISearchstaxParsedResult,\n ISearchstaxSearchMetadata,\n} from '@searchstax-inc/searchstudio-ux-js';\n\n@Component({\n selector: 'app-searchstax-results',\n templateUrl: './searchstax-results.component.html',\n styles: [],\n})\nexport class SearchstaxResultsWidget implements OnInit {\n @Input() afterLinkClick?: (\n results: ISearchstaxParsedResult\n ) => ISearchstaxParsedResult;\n\n @Input() noResultsTemplate?: TemplateRef<any>;\n @Input() resultsTemplate?: TemplateRef<any>;\n @Input() resultsPerPage?: number;\n @Input() renderMethod?: \"infiniteScroll\" | \"pagination\";\n\n searchResults: ISearchstaxParsedResult[] | null = null;\n metadata: ISearchstaxSearchMetadata | null = null;\n searchTerm = '';\n context = this;\n\n get hooks(): { [key: string]: (prop: any) => any } {\n const hooks: { [key: string]: (prop: any) => any } = {};\n if (this.afterLinkClick) {\n hooks['afterLinkClick'] = this.afterLinkClick;\n }\n return hooks;\n }\n\n constructor(private storeServiceService: StoreServiceService) {}\n\n ngOnInit(): void {\n if (this.storeServiceService.searchstax) {\n this.attachObservables();\n\n setTimeout(() => {\n this.storeServiceService.searchstax.addSearchResultsWidget(\n 'searchstax-results-container',\n {\n templates: {},\n hooks: this.hooks,\n resultsPerPage: this.resultsPerPage ?? 10,\n renderMethod: this.renderMethod ?? \"pagination\",\n }\n );\n }, 0);\n } else {\n throw Error('Searchstax instance needs to be passed via props');\n }\n }\n\n attachObservables() {\n this.storeServiceService.searchstax.dataLayer.$searchResults.subscribe(\n (results: ISearchstaxParsedResult[] | null) => {\n\n const current = this.searchResults ? [...this.searchResults] : [];\n const newResults = results ?? [];\n const resultsCombined =\n this.renderMethod === \"infiniteScroll\"\n ? [...current, ...newResults]\n : results;\n if (this.storeServiceService.searchstax.dataLayer.$searchObject.value?.page === 1) {\n this.searchResults = newResults;\n } else {\n this.searchResults = resultsCombined;\n }\n }\n );\n this.storeServiceService.searchstax.dataLayer.$searchTermChange.subscribe(\n (result: string) => {\n this.searchTerm = result;\n }\n );\n\n this.storeServiceService.searchstax.dataLayer.$searchResultsMetadata.subscribe(\n (value: ISearchstaxSearchMetadata) => {\n this.metadata = value;\n }\n );\n }\n\n resultClicked(result: ISearchstaxParsedResult, event: Event, context: this) {\n event.preventDefault();\n event.stopPropagation();\n context.storeServiceService.searchstax.executeLinkClick(result.uniqueId);\n }\n\n isImage(field: any){\n return field.isImage && typeof field.value === 'string'\n }\n}\n","<div id=\"searchstax-results-container\">\n <div class=\"searchstax-search-results-container\">\n <div id=\"searchstax-result-container\">\n <div\n *ngIf=\"\n searchResults && searchResults.length === 0 && !noResultsTemplate\n \"\n >\n <div class=\"searchstax-no-results\">\n Showing <strong>no results</strong> for\n <strong>\"{{ searchTerm }}\"</strong>\n <br />\n <span *ngIf=\"metadata?.spellingSuggestion\"\n > Did you mean\n <a href=\"#\" class=\"searchstax-suggestion-term\">{{\n metadata?.spellingSuggestion\n }}</a\n >?</span\n >\n </div>\n <div>\n <p>\n Try searching for search related terms or topics. We offer a wide\n variety of content to help you get the information you need.\n </p>\n <p>Lost? Click on the ‘X” in the Search Box to reset your search.</p>\n </div>\n </div>\n <div\n *ngIf=\"searchResults && searchResults.length === 0 && noResultsTemplate\"\n >\n <ng-container\n *ngTemplateOutlet=\"noResultsTemplate; context: context\"\n ></ng-container>\n </div>\n\n <div\n class=\"searchstax-search-results\"\n *ngIf=\"searchResults && searchResults.length && !resultsTemplate\"\n >\n <div\n class=\"searchstax-search-result\"\n [ngClass]=\"{ 'has-thumbnail': searchResult.thumbnail }\"\n *ngFor=\"let searchResult of searchResults\"\n >\n <div\n *ngIf=\"searchResult.promoted\"\n class=\"searchstax-search-result-promoted\"\n ></div>\n <a\n *ngIf=\"searchResult.url\"\n [href]=\"searchResult.url\"\n [attr.data-searchstax-unique-result-id]=\"searchResult.uniqueId\"\n (click)=\"resultClicked(searchResult, $event, context)\"\n class=\"searchstax-result-item-link\"\n ></a>\n <div\n *ngIf=\"searchResult.ribbon\"\n class=\"searchstax-search-result-ribbon\"\n >\n {{ searchResult.ribbon }}\n </div>\n <img\n *ngIf=\"searchResult.thumbnail\"\n [src]=\"searchResult.thumbnail\"\n class=\"searchstax-thumbnail\"\n />\n <div class=\"searchstax-search-result-title-container\">\n <span class=\"searchstax-search-result-title\">{{\n searchResult.title\n }}</span>\n </div>\n <p *ngIf=\"searchResult.paths\" class=\"searchstax-search-result-common\">\n {{ searchResult.paths }}\n </p>\n <p\n *ngIf=\"searchResult.description\"\n class=\"searchstax-search-result-description searchstax-search-result-common\"\n >\n {{ searchResult.description }}\n </p>\n <div *ngFor=\"let unmappedField of searchResult.unmappedFields\">\n <div\n *ngIf=\"isImage(unmappedField)\"\n class=\"searchstax-search-result-image-container\"\n >\n <img\n [src]=\"unmappedField.value\"\n class=\"searchstax-result-image\"\n />\n </div>\n <div *ngIf=\"!isImage(unmappedField)\">\n <p class=\"searchstax-search-result-common\">\n {{ unmappedField.value }}\n </p>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"searchResults && searchResults.length && resultsTemplate\">\n <ng-container\n *ngTemplateOutlet=\"resultsTemplate; context: context\"\n ></ng-container>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Input, OnInit, TemplateRef } from \"@angular/core\";\nimport { ISearchstaxSearchFeedbackData } from \"@searchstax-inc/searchstudio-ux-js\";\nimport { StoreServiceService } from \"../../services/store-service.service\";\n\n@Component({\n selector: \"app-searchstax-search-feedback\",\n templateUrl: \"./searchstax-search-overview.component.html\",\n styles: [],\n})\nexport class SearchstaxSearchFeedbackWidget implements OnInit {\n @Input() templateOverride?: TemplateRef<any>;\n\n searchFeedbackData: null | ISearchstaxSearchFeedbackData = null;\n rand = Math.random();\n context = this;\n constructor(private storeServiceService: StoreServiceService) {}\n\n ngOnInit(): void {\n if (this.storeServiceService.searchstax) {\n this.attachObservables();\n setTimeout(() => {\n this.storeServiceService.searchstax.addSearchFeedbackWidget(\"search-feedback-container\" + this.rand, {});\n }, 0);\n } else {\n throw Error(\"Searchstax instance needs to be passed via props\");\n }\n }\n\n onOriginalQueryClick(e: Event, context: this) {\n e.stopImmediatePropagation();\n context.storeServiceService.searchstax.searchFeedbackWidget?.onOriginalQueryClick(e);\n }\n\n attachObservables() {\n this.storeServiceService.searchstax.dataLayer.$searchFeedbackData.subscribe(\n (searchFeedbackData: null | ISearchstaxSearchFeedbackData) => {\n this.searchFeedbackData = searchFeedbackData;\n }\n );\n }\n}\n","<div\n class=\"search-feedback-container\"\n [id]=\"'search-feedback-container' + rand\"\n>\n <div\n class=\"searchstax-feedback-container\"\n *ngIf=\"\n searchFeedbackData &&\n searchFeedbackData?.searchExecuted &&\n !templateOverride &&\n searchFeedbackData?.totalResults\n \"\n >\n Showing\n <b\n >{{ searchFeedbackData!.startResultIndex }} -\n {{ searchFeedbackData!.endResultIndex }}</b\n >\n of <b>{{ searchFeedbackData!.totalResults }}</b> results\n <span *ngIf=\"searchFeedbackData.searchTerm\"\n >for \"<b>{{ searchFeedbackData!.searchTerm }}</b\n >\"\n </span>\n <div class=\"searchstax-feedback-container-suggested\">\n <div *ngIf=\"searchFeedbackData.autoCorrectedQuery\">\n Search instead for\n <a\n href=\"#\"\n (click)=\"onOriginalQueryClick($event, context)\"\n class=\"searchstax-feedback-original-query\"\n >{{ searchFeedbackData!.originalQuery }}</a\n >\n </div>\n </div>\n </div>\n\n <div\n *ngIf=\"\n searchFeedbackData &&\n searchFeedbackData?.searchExecuted &&\n templateOverride &&\n searchFeedbackData?.totalResults\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"templateOverride; context: context\"\n ></ng-container>\n </div>\n</div>\n","import { Component, Input, OnInit, TemplateRef } from \"@angular/core\";\nimport {\n IPaginationData,\n ISearchObject,\n} from \"@searchstax-inc/searchstudio-ux-js\";\nimport { StoreServiceService } from \"../../services/store-service.service\";\n\n@Component({\n selector: \"app-searchstax-search-pagination\",\n templateUrl: \"./searchstax-search-pagination.component.html\",\n styles: [],\n})\nexport class SearchstaxSearchPaginationWidget implements OnInit {\n @Input() templateOverride?: TemplateRef<any>;\n @Input() infiniteScrollTemplateOverride?: TemplateRef<any>;\n\n paginationData: null | IPaginationData = null;\n rand = Math.random();\n context = this;\n paginationAdded = false;\n constructor(private storeServiceService: StoreServiceService) {}\n\n ngOnInit(): void {\n if (this.storeServiceService.searchstax) {\n this.attachObservables();\n setTimeout(() => {\n this.addWidget();\n }, 0);\n } else {\n throw Error(\"Searchstax instance needs to be passed via props\");\n }\n }\n\n nextPage(event: Event, context: this) {\n event.stopImmediatePropagation();\n if (!context.paginationData?.isLastPage) {\n context.storeServiceService.searchstax.searchPaginationWidget?.nextPage(\n event\n );\n }\n }\n\n previousPage(event: Event, context: this) {\n event.stopImmediatePropagation();\n if (!context.paginationData?.isFirstPage) {\n context.storeServiceService.searchstax.searchPaginationWidget?.previousPage(\n event\n );\n }\n }\n\n addWidget() {\n if (\n !this.paginationAdded &&\n this.storeServiceService.searchstax.routerHelper\n ) {\n this.paginationAdded = true;\n this.storeServiceService.searchstax.addPaginationWidget(\n \"searchstax-pagination-container\" + this.rand,\n {}\n );\n }\n }\n\n attachObservables() {\n this.storeServiceService.searchstax.dataLayer.$searchObject.subscribe(\n (pagination: ISearchObject | null) => {\n this.addWidget();\n }\n );\n\n this.storeServiceService.searchstax.dataLayer.$paginationData.subscribe(\n (pagination: IPaginationData | null) => {\n this.paginationData = pagination;\n }\n );\n }\n}\n","<div [id]=\"'searchstax-pagination-container' + rand\">\n <div\n class=\"searchstax-pagination-container\"\n *ngIf=\"\n paginationData?.totalResults &&\n !templateOverride &&\n !paginationData?.isInfiniteScroll\n \"\n >\n <div class=\"searchstax-pagination-content\">\n <a\n class=\"searchstax-pagination-previous\"\n (click)=\"previousPage($event, context)\"\n id=\"searchstax-pagination-previous\"\n >\n < Previous\n </a>\n <div class=\"searchstax-pagination-details\">\n {{ paginationData?.startResultIndex }} -\n {{ paginationData?.endResultIndex }} of\n {{ paginationData?.totalResults }}\n </div>\n <a\n class=\"searchstax-pagination-next\"\n (click)=\"nextPage($event, context)\"\n id=\"searchstax-pagination-next\"\n >Next ></a\n >\n </div>\n </div>\n\n <div\n *ngIf=\"\n paginationData?.totalResults &&\n templateOverride &&\n !paginationData?.isInfiniteScroll\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"templateOverride; context: context\"\n ></ng-container>\n </div>\n\n <div\n class=\"searchstax-pagination-container\"\n *ngIf=\"\n paginationData?.totalResults &&\n !infiniteScrollTemplateOverride &&\n paginationData?.isInfiniteScroll\n \"\n >\n <a\n className=\"searchstax-pagination-load-more\"\n (click)=\"nextPage($event, context)\"\n >\n Show More\n </a>\n </div>\n\n <div\n *ngIf=\"\n paginationData?.totalResults &&\n infiniteScrollTemplateOverride &&\n paginationData?.isInfiniteScroll\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"infiniteScrollTemplateOverride; context: context\"\n ></ng-container>\n </div>\n</div>\n","import { Component, ElementRef, Input, OnInit, QueryList, TemplateRef, ViewChild, ViewChildren } from \"@angular/core\";\nimport { IFacetData, IFacetValue, IFacetValueData, IFacetValueRange, IFacetsTemplateData, IPaginationData, ISearchObject } from \"@searchstax-inc/searchstudio-ux-js\";\nimport { StoreServiceService } from \"../../services/store-service.service\";\n\n@Component({\n selector: \"app-searchstax-search-facets\",\n templateUrl: \"./searchstax-search-facets.component.html\",\n styles: [],\n})\nexport class SearchstaxSearchFacetsWidget implements OnInit {\n @Input() templateOverrideMobile?: TemplateRef<any>;\n @Input() templateOverrideDesktop?: TemplateRef<any>;\n @Input() facetingType!: \"and\" | \"or\" | \"showUnavailable\" | \"tabs\";\n @Input() itemsPerPageDesktop!: number;\n @Input() itemsPerPageMobile!: number;\n @Input() specificFacets!: string[];\n\n facetsTemplateDataDesktop: null | IFacetsTemplateData = null;\n facetsTemplateDataMobile: null | IFacetsTemplateData = null;\n context = this;\n selectedFacetsCheckboxes: IFacetValue[] = [];\n selectedFacetsRange: IFacetValueRange[] = [];\n rand = Math.random();\n\n // @ViewChildren(\"facetContainers\") facetContainers: QueryList<ElementRef>;\n constructor(private storeServiceService: StoreServiceService) {}\n\n ngOnInit(): void {\n if (this.storeServiceService.searchstax) {\n this.attachObservables();\n setTimeout(() => {\n this.addWidget();\n }, 0);\n } else {\n throw Error(\"Searchstax instance needs to be passed via props\");\n }\n }\n\n addWidget() {\n this.storeServiceService.searchstax.addFacetsWidget('searchstax-facets-container' + this.rand, {\n facetingType: this.facetingType,\n specificFacets: this.specificFacets,\n itemsPerPageDesktop: this.itemsPerPageDesktop,\n itemsPerPageMobile: this.itemsPerPageMobile\n })\n }\n\n attachObservables() {\n this.storeServiceService.searchstax.dataLayer.$facetsTemplateData.subscribe(\n (data: null | IFacetsTemplateData) => {\n if (data?.isMobile) {\n this.facetsTemplateDataMobile = data;\n\n } else {\n this.facetsTemplateDataDesktop = data;\n }\n }\n );\n\n this.storeServiceService.searchstax.dataLayer.$selectedFacetsTemplateData.subscribe(\n (data: null | (IFacetValue | IFacetValueRange)[]) => {\n const da = data ?? [];\n this.selectedFacetsCheckboxes = da.filter((d) => d.type === 'checkbox') as IFacetValue[];\n }\n );\n }\n\n\n unselectFacet(facet: IFacetValue, context: this) {\n context.storeServiceService.searchstax.searchFacetsWidget?.unselectFacet(facet)\n }\n\n unselectAll(context: this) {\n context.storeServiceService.searchstax.searchFacetsWidget?.removeSelectedFacets()\n }\n\n isNotDeactivated(name: string, context: this) {\n return !context.storeServiceService.searchstax.searchFacetsWidget?.deactivatedFacets[name]\n }\n\n toggleFacetGroup(name: string, context: this) {\n if(context.storeServiceService.searchstax.searchFacetsWidget)\n if (context.isNotDeactivated(name, context)) {\n context.storeServiceService.searchstax.searchFacetsWidget.deactivatedFacets[name] = true\n } else {\n context.storeServiceService.searchstax.searchFacetsWidget.deactivatedFacets[name] = false\n }\n }\n\n isChecked(facetValue: IFacetValueData, context: this) {\n return context.storeServiceService.searchstax.searchFacetsWidget?.isChecked(facetValue)\n }\n\n selectFacet(el: HTMLDivElement, event: Event, data: IFacetValueData, isInput: boolean, context: this) {\n const wrapperDiv = document.createElement('div');\n wrapperDiv.innerHTML = el.outerHTML;\n context.storeServiceService.searchstax.searchFacetsWidget?.onFacetSelect(event, data, el, isInput)\n\n }\n\n showMoreLessDesktop(e: Event, data: IFacetData, context: this) {\n context.storeServiceService.searchstax.searchFacetsWidget?.onShowMoreLessClick(e, data, false)\n }\n\n showMoreLessMobile(e: Event, data: IFacetData, context: this) {\n context.storeServiceService.searchstax.searchFacetsWidget?.onShowMoreLessClick(e, data, true)\n }\n\n openOverlay(context: this) {\n context.storeServiceService.searchstax.searchFacetsWidget?.openOverlay();\n }\n\n closeOverlay(context: this) {\n context.storeServiceService.searchstax.searchFacetsWidget?.closeOverlay();\n }\n\n facetValues(facet: IFacetData) : IFacetValueData[] {\n return facet.values as IFacetValueData[];\n }\n\n facetMobileData(facet: IFacetsTemplateData | null) : any {\n return facet as any\n }\n}\n","<div [id]=\"'searchstax-facets-container' + rand\">\n <div\n *ngIf=\"facetsTemplateDataDesktop?.hasResultsOrExternalPromotions && !templateOverrideDesktop\"\n class=\"searchstax-facets-container-desktop\"\n >\n <div\n class=\"searchstax-facet-container\"\n *ngFor=\"let facet of facetsTemplateDataDesktop?.facets\"\n [class]=\"{ active: isNotDeactivated(facet.name, context) }\"\n >\n <div>\n <div class=\"searchstax-facet-title-container\" (click)=\"toggleFacetGroup(facet.name, context)\">\n <div class=\"searchstax-facet-title\">{{ facet.label }}</div>\n <div class=\"searchstax-facet-title-arrow active\"></div>\n </div>\n <div class=\"searchstax-facet-values-container\">\n <div\n *ngFor=\"let facetValue of facetValues(facet); index as key\"\n class=\"searchstax-facet-value-container\"\n [class]=\"{ 'searchstax-facet-value-disabled': facetValue.disabled }\"\n #ref\n >\n <div class=\"searchstax-facet-input\">\n <input\n type=\"checkbox\"\n class=\"searchstax-facet-input-checkbox\"\n [checked]=\"isChecked(facetValue, context)\"\n [disabled]=\"facetValue.disabled\"\n (click)=\"selectFacet(ref, $event, facetValue, true, context)\"\n />\n </div>\n <div class=\"searchstax-facet-value-label\" (click)=\"selectFacet(ref, $event, facetValue, false, context)\">\n {{ facetValue.value }}\n </div>\n <div class=\"searchstax-facet-value-count\" (click)=\"selectFacet(ref, $event, facetValue, false, context)\">\n ({{ facetValue.count }})\n </div>\n </div>\n <div class=\"searchstax-facet-show-more-container\" *ngIf=\"facet.hasMoreFacets\">\n <div class=\"searchstax-facet-show-more-container\" (click)=\"showMoreLessDesktop($event, facet, context)\">\n <div\n *ngIf=\"facet.showingAllFacets\"\n class=\"searchstax-facet-show-less-button searchstax-facet-show-button\"\n >\n less\n </div>\n <div\n *ngIf=\"!facet.showingAllFacets\"\n class=\"searchstax-facet-show-more-button searchstax-facet-show-button\"\n >\n more\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"facetsTemplateDataDesktop?.hasResultsOrExternalPromotions && templateOverrideDesktop\">\n <ng-container *ngTemplateOutlet=\"templateOverrideDesktop; context: context\"></ng-container>\n </div>\n\n <div\n class=\"searchstax-facets-container-mobile\"\n *ngIf=\"facetsTemplateDataMobile?.hasResultsOrExternalPromotions && !templateOverrideMobile\"\n >\n <div class=\"searchstax-facets-pills-container\">\n <div class=\"searchstax-facets-pill searchstax-facets-pill-filter-by\" (click)=\"openOverlay(context)\">\n <div class=\"searchstax-facets-pill-label\">Filter By</div>\n </div>\n <div class=\"searchstax-facets-pills-selected\">\n <div\n class=\"searchstax-facets-pill searchstax-facets-pill-facets\"\n *ngFor=\"let facet of selectedFacetsCheckboxes\"\n (click)=\"unselectFacet(facet, context)\"\n >\n <div class=\"searchstax-facets-pill-label\">{{ facet.value }} ({{ facet.count }})</div>\n <div class=\"searchstax-facets-pill-icon-close\"></div>\n </div>\n </div>\n <div\n class=\"searchstax-facets-pill searchstax-clear-filters searchstax-facets-pill-clear-all\"\n *ngIf=\"selectedFacetsCheckboxes.length\"\n (click)=\"unselectAll(context)\"\n >\n <div class=\"searchstax-facets-pill-label\">Clear Filters</div>\n </div>\n </div>\n <div\n class=\"searchstax-facets-mobile-overlay\"\n [class]=\"{ 'searchstax-show': facetMobileData(facetsTemplateDataMobile)?.overlayOpened }\"\n >\n <div class=\"searchstax-facets-mobile-overlay-header\">\n <div class=\"searchstax-facets-mobile-overlay-header-title\">Filter By</div>\n <div class=\"searchstax-search-close\" (click)=\"closeOverlay(context)\"></div>\n </div>\n <div class=\"searchstax-facets-container-mobile\">\n <div\n *ngFor=\"let facet of facetsTemplateDataMobile?.facets\"\n class=\"searchstax-facet-container\"\n [class]=\"{ active: isNotDeactivated(facet.name, context) }\"\n >\n <div>\n <div class=\"searchstax-facet-title-container\" (click)=\"toggleFacetGroup(facet.name, context)\">\n <div class=\"searchstax-facet-title\">{{ facet.label }}</div>\n <div class=\"searchstax-facet-title-arrow active\"></div>\n </div>\n <div class=\"searchstax-facet-values-container\">\n <div\n *ngFor=\"let facetValue of facetValues(facet); index as key\"\n class=\"searchstax-facet-value-container\"\n [class]=\"{ 'searchstax-facet-value-disabled': facetValue.disabled }\"\n #ref\n >\n <div class=\"searchstax-facet-input\">\n <input\n type=\"checkbox\"\n class=\"searchstax-facet-input-checkbox\"\n [checked]=\"isChecked(facetValue, context)\"\n [disabled]=\"facetValue.disabled\"\n (click)=\"selectFacet(ref, $event, facetValue, true, context)\"\n />\n </div>\n <div\n class=\"searchstax-facet-value-label\"\n (click)=\"selectFacet(ref, $event, facetValue, false, context)\"\n >\n {{ facetValue.value }}\n </div>\n <div\n class=\"searchstax-facet-value-count\"\n (click)=\"selectFacet(ref, $event, facetValue, false, context)\"\n >\n ({{ facetValue.count }})\n </div>\n </div>\n <div class=\"searchstax-facet-show-more-container\" *ngIf=\"facet.hasMoreFacets\">\n <div class=\"searchstax-facet-show-more-container\" (click)=\"showMoreLessDesktop($event, facet, context)\">\n <div\n *ngIf=\"facet.showingAllFacets\"\n class=\"searchstax-facet-show-less-button searchstax-facet-show-button\"\n >\n less\n </div>\n <div\n *ngIf=\"!facet.showingAllFacets\"\n class=\"searchstax-facet-show-more-button searchstax-facet-show-button\"\n >\n more\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <button class=\"searchstax-facets-mobile-overlay-done\" (click)=\"closeOverlay(context)\">Done</button>\n </div>\n </div>\n <div *ngIf=\"facetsTemplateDataMobile?.hasResultsOrExternalPromotions && templateOverrideMobile\">\n <ng-container *ngTemplateOutlet=\"templateOverrideMobile; context: context\"></ng-container>\n </div>\n</div>\n","import { Component, Input, OnInit, TemplateRef } from \"@angular/core\";\nimport { ISearchObject, ISearchstaxSearchFeedbackData, ISearchstaxSearchSortingData } from \"@searchstax-inc/searchstudio-ux-js\";\nimport { StoreServiceService } from \"../../services/store-service.service\";\n\n@Component({\n selector: \"app-searchstax-search-sorting\",\n templateUrl: \"./searchstax-search-sorting.component.html\",\n styles: [],\n})\nexport class SearchstaxSearchSortingWidget implements OnInit {\n @Input() templateOverride?: TemplateRef<any>;\n\n sortingData: null | ISearchstaxSearchSortingData = null;\n rand = Math.random();\n context = this;\n selectedSorting: string = \"\";\n constructor(private storeServiceService: StoreServiceService) {}\n\n ngOnInit(): void {\n if (this.storeServiceService.searchstax) {\n this.attachObservables();\n setTimeout(() => {\n this.storeServiceService.searchstax.addSearchSortingWidget(\"search-sorting-container\" + this.rand, {});\n }, 0);\n } else {\n throw Error(\"Searchstax instance needs to be passed via props\");\n }\n }\n\n orderChange(e: Event, context: this) {\n e.stopImmediatePropagation();\n context.storeServiceService.searchstax.searchSortingWidget?.setOrderQuery((e.target as HTMLSelectElement).value);\n }\n\n attachObservables() {\n this.storeServiceService.searchstax.dataLayer.$searchSortingData.subscribe(\n (sortingData: null | ISearchstaxSearchSortingData) => {\n this.sortingData = sortingData;\n }\n );\n\n this.storeServiceService.searchstax.dataLayer.$searchObject.subscribe((searchObject: null | ISearchObject) => {\n this.selectedSorting = decodeURIComponent(searchObject?.order ?? '');\n });\n }\n}\n","<div class=\"search-feedback-container\" [id]=\"'search-sorting-container' + rand\">\n <div\n class=\"searchstax-sorting-container\"\n *ngIf=\"sortingData && sortingData?.searchExecuted && sortingData?.hasResultsOrExternalPromotions && !templateOverride\"\n >\n <label class=\"searchstax-sorting-label\" for=\"sort-by\">Sort By</label>\n <select\n id=\"searchstax-search-order-select\"\n class=\"searchstax-search-order-select\"\n [value]=\"selectedSorting\"\n (change)=\"orderChange($event, context)\"\n >\n <option value=\"\">Relevance</option>\n <option value=\"date desc\">Newest Content</option>\n <option value=\"date asc\">Oldest Content</option>\n </select>\n </div>\n\n <div\n *ngIf=\"\n sortingData && sortingData?.searchExecuted && sortingData?.hasResultsOrExternalPromotions && templateOverride\n \"\n >\n <ng-container *ngTemplateOutlet=\"templateOverride; context: context\"></ng-container>\n </div>\n</div>\n","import { Component, Input, OnInit, TemplateRef } from \"@angular/core\";\nimport { ISearchstaxRelatedSearchResult, ISearchstaxRelatedSearchesData } from \"@searchstax-inc/searchstudio-ux-js\";\nimport { StoreServiceService } from \"../../services/store-service.service\";\n\n@Component({\n selector: \"app-searchstax-related-searches\",\n templateUrl: \"./searchstax-search-related.component.html\",\n styles: [],\n})\nexport class SearchstaxSearchRelatedSearchesWidget implements OnInit {\n @Input() relatedSearchesURL?: string;\n @Input() relatedSearchesAPIKey?: string;\n @Input() templateOverride?: TemplateRef<any>;\n\n relatedData: null | ISearchstaxRelatedSearchesData = null;\n rand = Math.random();\n context = this;\n constructor(private storeServiceService: StoreServiceService) {}\n\n ngOnInit(): void {\n if (this.storeServiceService.searchstax) {\n this.attachObservables();\n setTimeout(() => {\n this.storeServiceService.searchstax.addRelatedSearchesWidget(\n \"searchstax-related-searches-container\" + this.rand,\n { relatedSearchesURL: this.relatedSearchesURL ?? \"\", relatedSearchesAPIKey: this.relatedSearchesAPIKey ?? \"\" }\n );\n }, 0);\n } else {\n throw Error(\"Searchstax instance needs to be passed via props\");\n }\n }\n\n executeSearch(result: ISearchstaxRelatedSearchResult, context: this) {\n context.storeServiceService.searchstax.relatedSearchesWidget?.executeSearch(result);\n }\n\n attachObservables() {\n this.storeServiceService.searchstax.dataLayer.$searchRelatedSearchesData.subscribe(\n (relatedData: null | ISearchstaxRelatedSearchesData) => {\n this.relatedData = relatedData;\n }\n );\n }\n}\n","<div\n class=\"searchstax-related-searches-container\"\n [id]=\"'searchstax-related-searches-container' + rand\"\n *ngIf=\"relatedData && relatedData?.searchExecuted && relatedData?.hasRelatedSearches && !templateOverride\"\n>\n Related searches: <span id=\"searchstax-related-searches\"></span>\n <span class=\"searchstax-related-search\" *ngIf=\"relatedData.relatedSearches\">\n <span\n *ngFor=\"let related of relatedData.relatedSearches\"\n (click)=\"executeSearch(related, context)\"\n class=\"searchstax-related-search searchstax-related-search-item\"\n >\n {{ related.related_search }}<span *ngIf=\"!related.last\">,</span>\n </span>\n </span>\n</div>\n\n<div *ngIf=\"relatedData && relatedData?.searchExecuted && relatedData?.hasRelatedSearches && templateOverride\">\n <ng-container *ngTemplateOutlet=\"templateOverride; context: context\"></ng-container>\n</div>\n","import { Component, Input, OnInit, TemplateRef } from \"@angular/core\";\nimport { IExternalPromotion, ISearchstaxExternalPromotionsData } from \"@searchstax-inc/searchstudio-ux-js\";\nimport { StoreServiceService } from \"../../services/store-service.service\";\n\n@Component({\n selector: \"app-searchstax-external-promotions\",\n templateUrl: \"./searchstax-search-external.component.html\",\n styles: [],\n})\nexport class SearchstaxSearchExternalPromotionsWidget implements OnInit {\n @Input() templateOverride?: TemplateRef<any>;\n\n externalPromotionsData: null | ISearchstaxExternalPromotionsData = null;\n rand = Math.random();\n context = this;\n constructor(private storeServiceService: StoreServiceService) {}\n\n ngOnInit(): void {\n if (this.storeServiceService.searchstax) {\n this.attachObservables();\n setTimeout(() => {\n this.storeServiceService.searchstax.addExternalPromotionsWidget(\n \"searchstax-external-promotions-layout-container\" + this.rand,\n {}\n );\n }, 0);\n } else {\n throw Error(\"Searchstax instance needs to be passed via props\");\n }\n }\n\n trackClick(externalPromotion: IExternalPromotion, event: Event, context: this) {\n context.storeServiceService.searchstax.externalPromotionsWidget?.trackClick(externalPromotion, event);\n }\n\n attachObservables() {\n this.storeServiceService.searchstax.dataLayer.$searchExternalPromotionsData.subscribe(\n (externalPromotionsData: null | ISearchstaxExternalPromotionsData) => {\n this.externalPromotionsData = externalPromotionsData;\n }\n );\n }\n}\n","<div [id]=\"'searchstax-external-promotions-layout-container' + rand\">\n <div\n class=\"searchstax-external-promotions-container\"\n id=\"searchstax-external-promotions-container\"\n *ngIf=\"\n externalPromotionsData &&\n externalPromotionsData?.searchExecuted &&\n externalPromotionsData?.hasExternalPromotions &&\n !templateOverride\n \"\n >\n <div\n class=\"searchstax-external-promotion searchstax-search-result\"\n *ngFor=\"let externalPromotion of externalPromotionsData.externalPromotions\"\n >\n <div class=\"icon-elevated\"></div>\n <a\n *ngIf=\"externalPromotion.url\"\n [href]=\"externalPromotion.url\"\n (click)=\"trackClick(externalPromotion, $event, context)\"\n class=\"searchstax-result-item-link\"\n ></a>\n <div class=\"searchstax-search-result-title-container\">\n <span class=\"searchstax-search-result-title\">{{ externalPromotion.name }}</span>\n </div>\n <p\n *ngIf=\"externalPromotion.description\"\n class=\"searchstax-search-result-description searchstax-search-result-common\"\n >\n {{ externalPromotion.description }}\n </p>\n <p *ngIf=\"externalPromotion.url\" class=\"searchstax-search-result-description searchstax-search-result-common\">\n {{ externalPromotion.url }}\n </p>\n </div>\n </div>\n <div\n *ngIf=\"\n externalPromotionsData &&\n externalPromotionsData?.searchExecuted &&\n externalPromotionsData?.hasExternalPromotions &&\n templateOverride\n \"\n >\n <ng-container *ngTemplateOutlet=\"templateOverride; context: context\"></ng-container>\n </div>\n</div>\n","import { NgModule } from \"@angular/core\";\nimport { SearchstaxWrapper } from \"./components/searchstax-wrapper.component\";\nimport { SearchstaxInputWidget } from \"./components/searchstax-input/searchstax-input.component\";\nimport { CommonModule } from \"@angular/common\";\nimport { SearchstaxResultsWidget } from \"./components/searchstax-results/searchstax-results.component\";\nimport { SearchstaxSearchFeedbackWidget } from \"../public-api\";\nimport { SearchstaxSearchPaginationWidget } from \"./components/searchstax-search-pagination/searchstax-search-pagination.component\";\nimport { SearchstaxSearchFacetsWidget } from \"./components/searchstax-search-facets/searchstax-search-facets.component\";\nimport { SearchstaxSearchSortingWidget } from \"./components/searchstax-search-sorting/searchstax-search-sorting.component\";\nimport { SearchstaxSearchRelatedSearchesWidget } from \"./components/searchstax-search-related/searchstax-search-related.component\";\nimport { SearchstaxSearchExternalPromotionsWidget } from \"./components/searchstax-search-external/searchstax-search-external.component\";\n\n@NgModule({\n declarations: [\n SearchstaxWrapper,\n SearchstaxInputWidget,\n SearchstaxResultsWidget,\n SearchstaxSearchFeedbackWidget,\n SearchstaxSearchPaginationWidget,\n SearchstaxSearchFacetsWidget,\n SearchstaxSearchSortingWidget,\n SearchstaxSearchRelatedSearchesWidget,\n SearchstaxSearchExternalPromotionsWidget\n ],\n imports: [CommonModule],\n exports: [\n SearchstaxWrapper,\n SearchstaxInputWidget,\n SearchstaxResultsWidget,\n SearchstaxSearchFeedbackWidget,\n SearchstaxSearchPaginationWidget,\n SearchstaxSearchFacetsWidget,\n SearchstaxSearchSortingWidget,\n SearchstaxSearchRelatedSearchesWidget,\n SearchstaxSearchExternalPromotionsWidget\n ],\n})\nexport class SearchstudioUxAngularModule {}\n","/*\n * Public API Surface of searchstudio-ux-angular\n */\n\nexport * from './lib/components/searchstax-wrapper.component';\nexport * from './lib/components/searchstax-input/searchstax-input.component';\nexport * from './lib/components/searchstax-results/searchstax-results.component';\nexport * from './lib/components/searchstax-search-overview/searchstax-search-overview.component';\nexport * from './lib/components/searchstax-search-pagination/searchstax-search-pagination.component';\nexport * from './lib/components/searchstax-search-facets/searchstax-search-facets.component';\nexport * from './lib/components/searchstax-search-sorting/searchstax-search-sorting.component';\nexport * from './lib/components/searchstax-search-related/searchstax-search-related.component';\nexport * from './lib/components/searchstax-search-external/searchstax-search-external.component';\nexport * from './lib/services/store-service.service';\nexport * from './lib/searchstudio-ux-angular.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.StoreServiceService"],"mappings":"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"}
|
|
@@ -7,6 +7,8 @@ export declare class SearchstaxResultsWidget implements OnInit {
|
|
|
7
7
|
afterLinkClick?: (results: ISearchstaxParsedResult) => ISearchstaxParsedResult;
|
|
8
8
|
noResultsTemplate?: TemplateRef<any>;
|
|
9
9
|
resultsTemplate?: TemplateRef<any>;
|
|
10
|
+
resultsPerPage?: number;
|
|
11
|
+
renderMethod?: "infiniteScroll" | "pagination";
|
|
10
12
|
searchResults: ISearchstaxParsedResult[] | null;
|
|
11
13
|
metadata: ISearchstaxSearchMetadata | null;
|
|
12
14
|
searchTerm: string;
|
|
@@ -20,5 +22,5 @@ export declare class SearchstaxResultsWidget implements OnInit {
|
|
|
20
22
|
resultClicked(result: ISearchstaxParsedResult, event: Event, context: this): void;
|
|
21
23
|
isImage(field: any): any;
|
|
22
24
|
static ɵfac: i0.ɵɵFactoryDeclaration<SearchstaxResultsWidget, never>;
|
|
23
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SearchstaxResultsWidget, "app-searchstax-results", never, { "afterLinkClick": { "alias": "afterLinkClick"; "required": false; }; "noResultsTemplate": { "alias": "noResultsTemplate"; "required": false; }; "resultsTemplate": { "alias": "resultsTemplate"; "required": false; }; }, {}, never, never, false, never>;
|
|
25
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SearchstaxResultsWidget, "app-searchstax-results", never, { "afterLinkClick": { "alias": "afterLinkClick"; "required": false; }; "noResultsTemplate": { "alias": "noResultsTemplate"; "required": false; }; "resultsTemplate": { "alias": "resultsTemplate"; "required": false; }; "resultsPerPage": { "alias": "resultsPerPage"; "required": false; }; "renderMethod": { "alias": "renderMethod"; "required": false; }; }, {}, never, never, false, never>;
|
|
24
26
|
}
|
package/lib/components/searchstax-search-pagination/searchstax-search-pagination.component.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
export declare class SearchstaxSearchPaginationWidget implements OnInit {
|
|
6
6
|
private storeServiceService;
|
|
7
7
|
templateOverride?: TemplateRef<any>;
|
|
8
|
+
infiniteScrollTemplateOverride?: TemplateRef<any>;
|
|
8
9
|
paginationData: null | IPaginationData;
|
|
9
10
|
rand: number;
|
|
10
11
|
context: this;
|
|
@@ -16,5 +17,5 @@ export declare class SearchstaxSearchPaginationWidget implements OnInit {
|
|
|
16
17
|
addWidget(): void;
|
|
17
18
|
attachObservables(): void;
|
|
18
19
|
static ɵfac: i0.ɵɵFactoryDeclaration<SearchstaxSearchPaginationWidget, never>;
|
|
19
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SearchstaxSearchPaginationWidget, "app-searchstax-search-pagination", never, { "templateOverride": { "alias": "templateOverride"; "required": false; }; }, {}, never, never, false, never>;
|
|
20
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SearchstaxSearchPaginationWidget, "app-searchstax-search-pagination", never, { "templateOverride": { "alias": "templateOverride"; "required": false; }; "infiniteScrollTemplateOverride": { "alias": "infiniteScrollTemplateOverride"; "required": false; }; }, {}, never, never, false, never>;
|
|
20
21
|
}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@searchstax-inc/searchstudio-ux-angular",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.5",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "13 - 16",
|
|
6
6
|
"@angular/core": "13 - 16"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"tslib": "^2.3.0",
|
|
10
|
-
"@searchstax-inc/searchstudio-ux-js": "^0.5.
|
|
10
|
+
"@searchstax-inc/searchstudio-ux-js": "^0.5.23"
|
|
11
11
|
},
|
|
12
12
|
"module": "fesm2022/searchstax-inc-searchstudio-ux-angular.mjs",
|
|
13
13
|
"typings": "index.d.ts",
|