@searchstax-inc/searchstudio-ux-angular 2.0.0 → 4.1.1

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/CHANGELOG.md CHANGED
@@ -20,4 +20,12 @@ All notable changes to the "searchstudio-ux-angular" project will be documented
20
20
  - Readme updated to give more information on how widgets work
21
21
  ### Bug Fixes
22
22
  - NVDA facet groups now announce state
23
- - NVDA added ability to jump from facets to results section
23
+ - NVDA added ability to jump from facets to results section
24
+
25
+ ## [4.1.0]
26
+ ### Bug Fixes
27
+ - stopped making unnecessary calls on blank search page load
28
+ - accessibility: template modified to only read result title for accessibility
29
+ - accessibility: leave feedback button state change is now announced
30
+ - accessibility: focus persistance added for feedback rating
31
+ - added support for react 19
package/README.md CHANGED
@@ -160,12 +160,12 @@ The AppSearchstaxAnswer component for Angular provides an AI answer widget for y
160
160
  **Usage**
161
161
 
162
162
  ```
163
- <app-searchstax-answer [showShowMoreAfterWordCount]="100"></app-searchstax-answer>
163
+ <app-searchstax-answer [showMoreAfterWordCount]="100"></app-searchstax-answer>
164
164
  ```
165
165
 
166
166
  **Props**
167
167
 
168
- - showShowMoreAfterWordCount - number(default 100) determining after how many symbols UI will show “Read More” view.
168
+ - showMoreAfterWordCount - number(default 100) determining after how many symbols UI will show “Read More” view.
169
169
  - feedbackWidget – an optional object that configures thumbs-up and thumbs-down feedback functionality.
170
170
 
171
171
  Example of feedbackWidget config:
@@ -191,7 +191,7 @@ It receives the following props:
191
191
  **Example**
192
192
 
193
193
  ```
194
- <app-searchstax-answer [showShowMoreAfterWordCount]="100" [templateOverride]="answerTemplate" [feedbackwidget]="feedbackConfig">
194
+ <app-searchstax-answer [showMoreAfterWordCount]="100" [templateOverride]="answerTemplate" [feedbackwidget]="feedbackConfig">
195
195
  <ng-template
196
196
  #answerTemplate
197
197
  let-answerData="answerData"
@@ -263,12 +263,12 @@ The SearchstaxInputWidget component for Angular provides a search input with aut
263
263
  - suggestAfterMinChars - default 3. Number of characters needed for autosuggest to start triggering
264
264
  - beforeAutosuggest - callback function that gets called before firing autosuggest. autosuggestProps are being passed as a property and can be modified, if passed along further search will execute with modified properties, if null is returned then event gets canceled and search never fires.
265
265
  - afterAutosuggest - callback function that gets called after autosuggest has values but before rendering. It needs to return same type of data but it can be modified.
266
- - inputTemplate - template override. look at examples below
266
+ - templateOverride - template override. look at examples below
267
267
 
268
268
 
269
269
  **inputWidgetTemplate**
270
270
 
271
- The inputTemplate prop allows customizing the input UI.
271
+ The templateOverride prop allows customizing the input UI.
272
272
 
273
273
  It receives the following props:
274
274
 
@@ -453,6 +453,10 @@ const locationWidgetConfig = {
453
453
 
454
454
  - locationDecode - callback function to override location decoding
455
455
  - locationDecodeCoordinatesToAddress - callback function to override location decoding
456
+ - locationValuesOverride - location widget values
457
+ - locationSearchEnabled - boolean stating if locationSearch is locationSearchEnabled
458
+ - templateOverride - template override. look at examples below
459
+
456
460
 
457
461
  **Template Override**
458
462
 
@@ -571,6 +575,7 @@ const locationWidgetConfig = {
571
575
  [locationValuesOverride]="locationWidgetConfig.locationValuesOverride"
572
576
  [locationSearchEnabled]="locationWidgetConfig.locationSearchEnabled"
573
577
  [locationDecodeCoordinatesToAddress]="locationWidgetConfig.locationDecodeCoordinatesToAddress"
578
+ [templateOverride]="locationTemplate"
574
579
  >
575
580
  <ng-template
576
581
  #locationTemplate
@@ -652,9 +657,20 @@ The SearchstaxResultsWidget for Angular component displays the search results.
652
657
  ```
653
658
  <app-searchstax-results
654
659
  [afterLinkClick]="afterLinkClick"
660
+ [renderMethod]="'“pagination”'"
661
+ [resultsPerPage]="10"
655
662
  ></app-searchstax-results>
656
663
  ```
657
664
 
665
+ **Props**
666
+
667
+ - renderMethod – either “pagination” or “infiniteScroll”.
668
+ - resultsPerPage – number of results on a page.
669
+ - afterLinkClick – Callback function invoked when a result link is clicked. Allows modifying the result object.
670
+ - noResultTemplate - template override for no results view
671
+ - resultsTemplate - template override for result item
672
+
673
+
658
674
  **Result Template Override**
659
675
 
660
676
  The resultsTemplate prop allows customizing the result UI.
@@ -699,6 +715,7 @@ It receives following props:
699
715
  (click)="resultClicked(searchResult, $event, context)"
700
716
  (keyup.enter)="resultClicked(searchResult, $event, context)"
701
717
  (keyup.space)="resultClicked(searchResult, $event, context)"
718
+ [attr.aria-labelledby]="'title-' + searchResult.uniqueId"
702
719
  tabindex="0"
703
720
  class="searchstax-result-item-link searchstax-result-item-link-wrapping"
704
721
  >
@@ -724,6 +741,7 @@ It receives following props:
724
741
  <div class="searchstax-search-result-title-container">
725
742
  <span
726
743
  class="searchstax-search-result-title"
744
+ [id]="'title-' + searchResult.uniqueId"
727
745
  [innerHTML]="searchResult.title"
728
746
  ></span>
729
747
  </div>
@@ -817,6 +835,11 @@ The SearchstaxPaginationWidget for Angular displays pagination controls for sear
817
835
  <app-searchstax-search-pagination></app-searchstax-search-pagination>
818
836
  ```
819
837
 
838
+ **Props**
839
+
840
+ - infiniteScrollTemplateOverride - template override for infinite scroll view pagination
841
+ - templateOverride - template override for standard view pagination
842
+
820
843
  **Main Template Override**
821
844
 
822
845
  Main template for the pagination controls.
@@ -969,6 +992,8 @@ Facet lists are configured and ordered on the Site Search [Faceting Tab](https:/
969
992
  - specificFacets?: string[]; // optional array of facet names that if provided will only render those facets
970
993
  - itemsPerPageDesktop: number; // default expanded facets for desktop
971
994
  - itemsPerPageMobile: number; // default expanded facets for mobile
995
+ - templateOverrideMobile - template override for mobile view
996
+ - templateOverrideDesktop - template override for desktop view
972
997
 
973
998
 
974
999
  **Main Template Desktop Override**
@@ -1284,6 +1309,10 @@ The SearchstaxFeedbackWidget for Angular displays search feedback and stats.
1284
1309
  <app-searchstax-search-feedback></app-searchstax-search-feedback>
1285
1310
  ```
1286
1311
 
1312
+ **Props**
1313
+
1314
+ - templateOverride - template override for search feedback
1315
+
1287
1316
  **Main Template Override**
1288
1317
 
1289
1318
  Main template for the search feedback message.
@@ -1349,6 +1378,7 @@ The SearchstaxRelatedSearchesWidget displays related searches.
1349
1378
 
1350
1379
  - relatedSearchesURL: API URL for fetching related searches
1351
1380
  - relatedSearchesAPIKey?: API key for related searches API
1381
+ - templateOverride - template override for related search
1352
1382
 
1353
1383
  **Main Template Override**
1354
1384
 
@@ -1412,6 +1442,10 @@ The SearchstaxExternalPromotionsWidget displays external promotions fetched from
1412
1442
  <app-searchstax-external-promotions></app-searchstax-external-promotions>
1413
1443
  ```
1414
1444
 
1445
+ **Props**
1446
+
1447
+ - templateOverride - template override for external promotion
1448
+
1415
1449
  **Main Template Override**
1416
1450
 
1417
1451
  Main template for external promotions.
@@ -1492,6 +1526,7 @@ It receives following props:
1492
1526
  - sortingData – Sorting data object
1493
1527
  - orderChange – Handler for sorting change
1494
1528
  - selectedSorting – Current selected sorting
1529
+ - templateOverride - template override for sorting widget
1495
1530
 
1496
1531
  **Example**
1497
1532
 
@@ -27,6 +27,7 @@ export class SearchstaxResultsWidget {
27
27
  templates: {},
28
28
  hooks: this.hooks,
29
29
  renderMethod: this.renderMethod ?? "pagination",
30
+ resultsPerPage: this.resultsPerPage,
30
31
  });
31
32
  }, 0);
32
33
  }
@@ -68,7 +69,7 @@ export class SearchstaxResultsWidget {
68
69
  return field.isImage && typeof field.value === 'string';
69
70
  }
70
71
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SearchstaxResultsWidget, deps: [{ token: i1.StoreServiceService }], target: i0.ɵɵFactoryTarget.Component }); }
71
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SearchstaxResultsWidget, selector: "app-searchstax-results", inputs: { afterLinkClick: "afterLinkClick", noResultsTemplate: "noResultsTemplate", resultsTemplate: "resultsTemplate", renderMethod: "renderMethod" }, ngImport: i0, template: "<div id=\"searchstax-results-container\">\n <section aria-label=\"search results container\" tabindex=\"0\">\n <div\n class=\"searchstax-search-results-container\"\n id=\"searchstax-search-results-container\"\n >\n <div id=\"searchstax-result-container\">\n <div\n *ngIf=\"\n searchResults?.length === 0 &&\n searchTerm !== '' &&\n searchTerm !== '*' &&\n storeServiceService.searchstax.dataLayer.parsedData\n .firstSearchHappened &&\n !noResultsTemplate\n \"\n >\n <app-no-results-template #ref></app-no-results-template>\n <ng-template\n *ngTemplateOutlet=\"ref.noResultsTemplate; context: context\"\n ></ng-template>\n </div>\n <div\n *ngIf=\"\n searchResults?.length === 0 &&\n searchTerm !== '' &&\n searchTerm !== '*' &&\n storeServiceService.searchstax.dataLayer.parsedData\n .firstSearchHappened &&\n noResultsTemplate\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"noResultsTemplate; context: context\"\n ></ng-container>\n </div>\n\n <ng-container\n *ngIf=\"searchResults && searchResults.length && !resultsTemplate\"\n >\n <app-results-template #ref></app-results-template>\n <ng-template\n *ngTemplateOutlet=\"ref.resultsTemplate; context: context\"\n ></ng-template>\n </ng-container>\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 </section>\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"] }, { kind: "component", type: i3.ResultsTemplateComponent, selector: "app-results-template" }, { kind: "component", type: i4.NoResultsTemplateComponent, selector: "app-no-results-template" }] }); }
72
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SearchstaxResultsWidget, selector: "app-searchstax-results", inputs: { afterLinkClick: "afterLinkClick", noResultsTemplate: "noResultsTemplate", resultsTemplate: "resultsTemplate", renderMethod: "renderMethod", resultsPerPage: "resultsPerPage" }, ngImport: i0, template: "<div id=\"searchstax-results-container\">\n <section aria-label=\"search results container\" tabindex=\"0\">\n <div\n class=\"searchstax-search-results-container\"\n id=\"searchstax-search-results-container\"\n >\n <div id=\"searchstax-result-container\">\n <div\n *ngIf=\"\n searchResults?.length === 0 &&\n searchTerm !== '' &&\n searchTerm !== '*' &&\n storeServiceService.searchstax.dataLayer.parsedData\n .firstSearchHappened &&\n !noResultsTemplate\n \"\n >\n <app-no-results-template #ref></app-no-results-template>\n <ng-template\n *ngTemplateOutlet=\"ref.noResultsTemplate; context: context\"\n ></ng-template>\n </div>\n <div\n *ngIf=\"\n searchResults?.length === 0 &&\n searchTerm !== '' &&\n searchTerm !== '*' &&\n storeServiceService.searchstax.dataLayer.parsedData\n .firstSearchHappened &&\n noResultsTemplate\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"noResultsTemplate; context: context\"\n ></ng-container>\n </div>\n\n <ng-container\n *ngIf=\"searchResults && searchResults.length && !resultsTemplate\"\n >\n <app-results-template #ref></app-results-template>\n <ng-template\n *ngTemplateOutlet=\"ref.resultsTemplate; context: context\"\n ></ng-template>\n </ng-container>\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 </section>\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"] }, { kind: "component", type: i3.ResultsTemplateComponent, selector: "app-results-template" }, { kind: "component", type: i4.NoResultsTemplateComponent, selector: "app-no-results-template" }] }); }
72
73
  }
73
74
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SearchstaxResultsWidget, decorators: [{
74
75
  type: Component,
@@ -81,5 +82,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
81
82
  type: Input
82
83
  }], renderMethod: [{
83
84
  type: Input
85
+ }], resultsPerPage: [{
86
+ type: Input
84
87
  }] } });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoc3RheC1yZXN1bHRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NlYXJjaHN0YXgtaW5jL3NlYXJjaHN0dWRpby11eC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2hzdGF4LXJlc3VsdHMvc2VhcmNoc3RheC1yZXN1bHRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NlYXJjaHN0YXgtaW5jL3NlYXJjaHN0dWRpby11eC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2hzdGF4LXJlc3VsdHMvc2VhcmNoc3RheC1yZXN1bHRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUF1QixNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBWXRFLE1BQU0sT0FBTyx1QkFBdUI7SUFjbEMsSUFBSSxLQUFLO1FBQ1AsTUFBTSxLQUFLLEdBQTBDLEVBQUUsQ0FBQztRQUN4RCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdkIsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUMvQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELFlBQW1CLG1CQUF3QztRQUF4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBYjNELGtCQUFhLEdBQXFDLElBQUksQ0FBQztRQUN2RCxhQUFRLEdBQXFDLElBQUksQ0FBQztRQUNsRCxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLFlBQU8sR0FBRyxJQUFJLENBQUM7SUFVK0MsQ0FBQztJQUUvRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBRXpCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FDeEQsOEJBQThCLEVBQzlCO29CQUNFLFNBQVMsRUFBRSxFQUFFO29CQUNiLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztvQkFDakIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLElBQUksWUFBWTtpQkFDaEQsQ0FDRixDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ1A7YUFBTTtZQUNMLE1BQU0sS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7U0FDakU7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLElBQVksRUFBRSxLQUFZLEVBQUUsT0FBYTtRQUNyRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsT0FBTyxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQ3BFLENBQUMsT0FBeUMsRUFBRSxFQUFFO1lBRTVDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNsRSxNQUFNLFVBQVUsR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1lBQ2pDLE1BQU0sZUFBZSxHQUNuQixJQUFJLENBQUMsWUFBWSxLQUFLLGdCQUFnQjtnQkFDcEMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLEVBQUUsR0FBRyxVQUFVLENBQUM7Z0JBQzdCLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDZCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxLQUFLLENBQUMsRUFBRTtnQkFDakYsSUFBSSxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUM7YUFDakM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGFBQWEsR0FBRyxlQUFlLENBQUM7YUFDdEM7UUFDSCxDQUFDLENBQ0YsQ0FBQztRQUNGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FDdkUsQ0FBQyxNQUFjLEVBQUUsRUFBRTtZQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztRQUMzQixDQUFDLENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FDNUUsQ0FBQyxLQUFnQyxFQUFFLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDeEIsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQStCLEVBQUUsS0FBWSxFQUFFLE9BQWE7UUFDeEUsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixPQUFPLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQVU7UUFDaEIsT0FBTyxLQUFLLENBQUMsT0FBTyxJQUFJLE9BQU8sS0FBSyxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUE7SUFDekQsQ0FBQzsrR0F0RlUsdUJBQXVCO21HQUF2Qix1QkFBdUIsc05DWnBDLGt6REF1REE7OzRGRDNDYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0Usd0JBQXdCO3dGQUt6QixjQUFjO3NCQUF0QixLQUFLO2dCQUlHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZVNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3RvcmUtc2VydmljZS5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIElTZWFyY2hzdGF4UGFyc2VkUmVzdWx0LFxuICBJU2VhcmNoc3RheFNlYXJjaE1ldGFkYXRhLFxufSBmcm9tICdAc2VhcmNoc3RheC1pbmMvc2VhcmNoc3R1ZGlvLXV4LWpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXNlYXJjaHN0YXgtcmVzdWx0cycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2hzdGF4LXJlc3VsdHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hzdGF4UmVzdWx0c1dpZGdldCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGFmdGVyTGlua0NsaWNrPzogKFxuICAgIHJlc3VsdHM6IElTZWFyY2hzdGF4UGFyc2VkUmVzdWx0XG4gICkgPT4gSVNlYXJjaHN0YXhQYXJzZWRSZXN1bHQ7XG5cbiAgQElucHV0KCkgbm9SZXN1bHRzVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSByZXN1bHRzVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSByZW5kZXJNZXRob2Q/OiBcImluZmluaXRlU2Nyb2xsXCIgfCBcInBhZ2luYXRpb25cIjtcblxuICBzZWFyY2hSZXN1bHRzOiBJU2VhcmNoc3RheFBhcnNlZFJlc3VsdFtdIHwgbnVsbCA9IG51bGw7XG4gIG1ldGFkYXRhOiBJU2VhcmNoc3RheFNlYXJjaE1ldGFkYXRhIHwgbnVsbCA9IG51bGw7XG4gIHNlYXJjaFRlcm0gPSAnJztcbiAgY29udGV4dCA9IHRoaXM7XG5cbiAgZ2V0IGhvb2tzKCk6IHsgW2tleTogc3RyaW5nXTogKHByb3A6IGFueSkgPT4gYW55IH0ge1xuICAgIGNvbnN0IGhvb2tzOiB7IFtrZXk6IHN0cmluZ106IChwcm9wOiBhbnkpID0+IGFueSB9ID0ge307XG4gICAgaWYgKHRoaXMuYWZ0ZXJMaW5rQ2xpY2spIHtcbiAgICAgIGhvb2tzWydhZnRlckxpbmtDbGljayddID0gdGhpcy5hZnRlckxpbmtDbGljaztcbiAgICB9XG4gICAgcmV0dXJuIGhvb2tzO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHVibGljIHN0b3JlU2VydmljZVNlcnZpY2U6IFN0b3JlU2VydmljZVNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RvcmVTZXJ2aWNlU2VydmljZS5zZWFyY2hzdGF4KSB7XG4gICAgICB0aGlzLmF0dGFjaE9ic2VydmFibGVzKCk7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnN0b3JlU2VydmljZVNlcnZpY2Uuc2VhcmNoc3RheC5hZGRTZWFyY2hSZXN1bHRzV2lkZ2V0KFxuICAgICAgICAgICdzZWFyY2hzdGF4LXJlc3VsdHMtY29udGFpbmVyJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0ZW1wbGF0ZXM6IHt9LFxuICAgICAgICAgICAgaG9va3M6IHRoaXMuaG9va3MsXG4gICAgICAgICAgICByZW5kZXJNZXRob2Q6IHRoaXMucmVuZGVyTWV0aG9kID8/IFwicGFnaW5hdGlvblwiLFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0sIDApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBFcnJvcignU2VhcmNoc3RheCBpbnN0YW5jZSBuZWVkcyB0byBiZSBwYXNzZWQgdmlhIHByb3BzJyk7XG4gICAgfVxuICB9XG5cbiAgZXhlY3V0ZVNlYXJjaCh0ZXJtOiBzdHJpbmcsIGV2ZW50OiBFdmVudCwgY29udGV4dDogdGhpcyk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29udGV4dC5zdG9yZVNlcnZpY2VTZXJ2aWNlLnNlYXJjaHN0YXguZXhlY3V0ZVNlYXJjaCh0ZXJtKTtcbiAgfVxuXG4gIGF0dGFjaE9ic2VydmFibGVzKCkge1xuICAgIHRoaXMuc3RvcmVTZXJ2aWNlU2VydmljZS5zZWFyY2hzdGF4LmRhdGFMYXllci4kc2VhcmNoUmVzdWx0cy5zdWJzY3JpYmUoXG4gICAgICAocmVzdWx0czogSVNlYXJjaHN0YXhQYXJzZWRSZXN1bHRbXSB8IG51bGwpID0+IHtcblxuICAgICAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5zZWFyY2hSZXN1bHRzID8gWy4uLnRoaXMuc2VhcmNoUmVzdWx0c10gOiBbXTtcbiAgICAgICAgY29uc3QgbmV3UmVzdWx0cyA9IHJlc3VsdHMgPz8gW107XG4gICAgICAgIGNvbnN0IHJlc3VsdHNDb21iaW5lZCA9XG4gICAgICAgICAgdGhpcy5yZW5kZXJNZXRob2QgPT09IFwiaW5maW5pdGVTY3JvbGxcIlxuICAgICAgICAgICAgPyBbLi4uY3VycmVudCwgLi4ubmV3UmVzdWx0c11cbiAgICAgICAgICAgIDogcmVzdWx0cztcbiAgICAgICAgaWYgKHRoaXMuc3RvcmVTZXJ2aWNlU2VydmljZS5zZWFyY2hzdGF4LmRhdGFMYXllci4kc2VhcmNoT2JqZWN0LnZhbHVlPy5wYWdlID09PSAxKSB7XG4gICAgICAgICAgdGhpcy5zZWFyY2hSZXN1bHRzID0gbmV3UmVzdWx0cztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnNlYXJjaFJlc3VsdHMgPSByZXN1bHRzQ29tYmluZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICAgIHRoaXMuc3RvcmVTZXJ2aWNlU2VydmljZS5zZWFyY2hzdGF4LmRhdGFMYXllci4kc2VhcmNoVGVybUNoYW5nZS5zdWJzY3JpYmUoXG4gICAgICAocmVzdWx0OiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5zZWFyY2hUZXJtID0gcmVzdWx0O1xuICAgICAgfVxuICAgICk7XG5cbiAgICB0aGlzLnN0b3JlU2VydmljZVNlcnZpY2Uuc2VhcmNoc3RheC5kYXRhTGF5ZXIuJHNlYXJjaFJlc3VsdHNNZXRhZGF0YS5zdWJzY3JpYmUoXG4gICAgICAodmFsdWU6IElTZWFyY2hzdGF4U2VhcmNoTWV0YWRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5tZXRhZGF0YSA9IHZhbHVlO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICByZXN1bHRDbGlja2VkKHJlc3VsdDogSVNlYXJjaHN0YXhQYXJzZWRSZXN1bHQsIGV2ZW50OiBFdmVudCwgY29udGV4dDogdGhpcykge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgY29udGV4dC5zdG9yZVNlcnZpY2VTZXJ2aWNlLnNlYXJjaHN0YXguZXhlY3V0ZUxpbmtDbGljayhyZXN1bHQudW5pcXVlSWQpO1xuICB9XG5cbiAgaXNJbWFnZShmaWVsZDogYW55KXtcbiAgICByZXR1cm4gZmllbGQuaXNJbWFnZSAmJiB0eXBlb2YgZmllbGQudmFsdWUgPT09ICdzdHJpbmcnXG4gIH1cbn1cbiIsIjxkaXYgaWQ9XCJzZWFyY2hzdGF4LXJlc3VsdHMtY29udGFpbmVyXCI+XG4gIDxzZWN0aW9uIGFyaWEtbGFiZWw9XCJzZWFyY2ggcmVzdWx0cyBjb250YWluZXJcIiB0YWJpbmRleD1cIjBcIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNlYXJjaHN0YXgtc2VhcmNoLXJlc3VsdHMtY29udGFpbmVyXCJcbiAgICAgIGlkPVwic2VhcmNoc3RheC1zZWFyY2gtcmVzdWx0cy1jb250YWluZXJcIlxuICAgID5cbiAgICAgIDxkaXYgaWQ9XCJzZWFyY2hzdGF4LXJlc3VsdC1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICBzZWFyY2hSZXN1bHRzPy5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgICAgIHNlYXJjaFRlcm0gIT09ICcnICYmXG4gICAgICAgICAgICBzZWFyY2hUZXJtICE9PSAnKicgJiZcbiAgICAgICAgICAgIHN0b3JlU2VydmljZVNlcnZpY2Uuc2VhcmNoc3RheC5kYXRhTGF5ZXIucGFyc2VkRGF0YVxuICAgICAgICAgICAgICAuZmlyc3RTZWFyY2hIYXBwZW5lZCAmJlxuICAgICAgICAgICAgIW5vUmVzdWx0c1RlbXBsYXRlXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxhcHAtbm8tcmVzdWx0cy10ZW1wbGF0ZSAjcmVmPjwvYXBwLW5vLXJlc3VsdHMtdGVtcGxhdGU+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInJlZi5ub1Jlc3VsdHNUZW1wbGF0ZTsgY29udGV4dDogY29udGV4dFwiXG4gICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIHNlYXJjaFJlc3VsdHM/Lmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICAgICAgc2VhcmNoVGVybSAhPT0gJycgJiZcbiAgICAgICAgICAgIHNlYXJjaFRlcm0gIT09ICcqJyAmJlxuICAgICAgICAgICAgc3RvcmVTZXJ2aWNlU2VydmljZS5zZWFyY2hzdGF4LmRhdGFMYXllci5wYXJzZWREYXRhXG4gICAgICAgICAgICAgIC5maXJzdFNlYXJjaEhhcHBlbmVkICYmXG4gICAgICAgICAgICBub1Jlc3VsdHNUZW1wbGF0ZVxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIm5vUmVzdWx0c1RlbXBsYXRlOyBjb250ZXh0OiBjb250ZXh0XCJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdJZj1cInNlYXJjaFJlc3VsdHMgJiYgc2VhcmNoUmVzdWx0cy5sZW5ndGggJiYgIXJlc3VsdHNUZW1wbGF0ZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8YXBwLXJlc3VsdHMtdGVtcGxhdGUgI3JlZj48L2FwcC1yZXN1bHRzLXRlbXBsYXRlPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZWYucmVzdWx0c1RlbXBsYXRlOyBjb250ZXh0OiBjb250ZXh0XCJcbiAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cInNlYXJjaFJlc3VsdHMgJiYgc2VhcmNoUmVzdWx0cy5sZW5ndGggJiYgcmVzdWx0c1RlbXBsYXRlXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZXN1bHRzVGVtcGxhdGU7IGNvbnRleHQ6IGNvbnRleHRcIlxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9zZWN0aW9uPlxuPC9kaXY+XG4iXX0=
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoc3RheC1yZXN1bHRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NlYXJjaHN0YXgtaW5jL3NlYXJjaHN0dWRpby11eC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2hzdGF4LXJlc3VsdHMvc2VhcmNoc3RheC1yZXN1bHRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NlYXJjaHN0YXgtaW5jL3NlYXJjaHN0dWRpby11eC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2hzdGF4LXJlc3VsdHMvc2VhcmNoc3RheC1yZXN1bHRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUF1QixNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBWXRFLE1BQU0sT0FBTyx1QkFBdUI7SUFlbEMsSUFBSSxLQUFLO1FBQ1AsTUFBTSxLQUFLLEdBQTBDLEVBQUUsQ0FBQztRQUN4RCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdkIsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUMvQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELFlBQW1CLG1CQUF3QztRQUF4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBYjNELGtCQUFhLEdBQXFDLElBQUksQ0FBQztRQUN2RCxhQUFRLEdBQXFDLElBQUksQ0FBQztRQUNsRCxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLFlBQU8sR0FBRyxJQUFJLENBQUM7SUFVK0MsQ0FBQztJQUUvRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBRXpCLFVBQVUs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cEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmVTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0b3JlLXNlcnZpY2Uuc2VydmljZSc7XG5pbXBvcnQge1xuICBJU2VhcmNoc3RheFBhcnNlZFJlc3VsdCxcbiAgSVNlYXJjaHN0YXhTZWFyY2hNZXRhZGF0YSxcbn0gZnJvbSAnQHNlYXJjaHN0YXgtaW5jL3NlYXJjaHN0dWRpby11eC1qcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1zZWFyY2hzdGF4LXJlc3VsdHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoc3RheC1yZXN1bHRzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoc3RheFJlc3VsdHNXaWRnZXQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBhZnRlckxpbmtDbGljaz86IChcbiAgICByZXN1bHRzOiBJU2VhcmNoc3RheFBhcnNlZFJlc3VsdFxuICApID0+IElTZWFyY2hzdGF4UGFyc2VkUmVzdWx0O1xuXG4gIEBJbnB1dCgpIG5vUmVzdWx0c1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgcmVzdWx0c1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgcmVuZGVyTWV0aG9kPzogXCJpbmZpbml0ZVNjcm9sbFwiIHwgXCJwYWdpbmF0aW9uXCI7XG4gIEBJbnB1dCgpIHJlc3VsdHNQZXJQYWdlPzogbnVtYmVyO1xuXG4gIHNlYXJjaFJlc3VsdHM6IElTZWFyY2hzdGF4UGFyc2VkUmVzdWx0W10gfCBudWxsID0gbnVsbDtcbiAgbWV0YWRhdGE6IElTZWFyY2hzdGF4U2VhcmNoTWV0YWRhdGEgfCBudWxsID0gbnVsbDtcbiAgc2VhcmNoVGVybSA9ICcnO1xuICBjb250ZXh0ID0gdGhpcztcblxuICBnZXQgaG9va3MoKTogeyBba2V5OiBzdHJpbmddOiAocHJvcDogYW55KSA9PiBhbnkgfSB7XG4gICAgY29uc3QgaG9va3M6IHsgW2tleTogc3RyaW5nXTogKHByb3A6IGFueSkgPT4gYW55IH0gPSB7fTtcbiAgICBpZiAodGhpcy5hZnRlckxpbmtDbGljaykge1xuICAgICAgaG9va3NbJ2FmdGVyTGlua0NsaWNrJ10gPSB0aGlzLmFmdGVyTGlua0NsaWNrO1xuICAgIH1cbiAgICByZXR1cm4gaG9va3M7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc3RvcmVTZXJ2aWNlU2VydmljZTogU3RvcmVTZXJ2aWNlU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdG9yZVNlcnZpY2VTZXJ2aWNlLnNlYXJjaHN0YXgpIHtcbiAgICAgIHRoaXMuYXR0YWNoT2JzZXJ2YWJsZXMoKTtcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmVTZXJ2aWNlU2VydmljZS5zZWFyY2hzdGF4LmFkZFNlYXJjaFJlc3VsdHNXaWRnZXQoXG4gICAgICAgICAgJ3NlYXJjaHN0YXgtcmVzdWx0cy1jb250YWluZXInLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRlbXBsYXRlczoge30sXG4gICAgICAgICAgICBob29rczogdGhpcy5ob29rcyxcbiAgICAgICAgICAgIHJlbmRlck1ldGhvZDogdGhpcy5yZW5kZXJNZXRob2QgPz8gXCJwYWdpbmF0aW9uXCIsXG4gICAgICAgICAgICByZXN1bHRzUGVyUGFnZTogdGhpcy5yZXN1bHRzUGVyUGFnZSxcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9LCAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgRXJyb3IoJ1NlYXJjaHN0YXggaW5zdGFuY2UgbmVlZHMgdG8gYmUgcGFzc2VkIHZpYSBwcm9wcycpO1xuICAgIH1cbiAgfVxuXG4gIGV4ZWN1dGVTZWFyY2godGVybTogc3RyaW5nLCBldmVudDogRXZlbnQsIGNvbnRleHQ6IHRoaXMpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnRleHQuc3RvcmVTZXJ2aWNlU2VydmljZS5zZWFyY2hzdGF4LmV4ZWN1dGVTZWFyY2godGVybSk7XG4gIH1cblxuICBhdHRhY2hPYnNlcnZhYmxlcygpIHtcbiAgICB0aGlzLnN0b3JlU2VydmljZVNlcnZpY2Uuc2VhcmNoc3RheC5kYXRhTGF5ZXIuJHNlYXJjaFJlc3VsdHMuc3Vic2NyaWJlKFxuICAgICAgKHJlc3VsdHM6IElTZWFyY2hzdGF4UGFyc2VkUmVzdWx0W10gfCBudWxsKSA9PiB7XG5cbiAgICAgICAgY29uc3QgY3VycmVudCA9IHRoaXMuc2VhcmNoUmVzdWx0cyA/IFsuLi50aGlzLnNlYXJjaFJlc3VsdHNdIDogW107XG4gICAgICAgIGNvbnN0IG5ld1Jlc3VsdHMgPSByZXN1bHRzID8/IFtdO1xuICAgICAgICBjb25zdCByZXN1bHRzQ29tYmluZWQgPVxuICAgICAgICAgIHRoaXMucmVuZGVyTWV0aG9kID09PSBcImluZmluaXRlU2Nyb2xsXCJcbiAgICAgICAgICAgID8gWy4uLmN1cnJlbnQsIC4uLm5ld1Jlc3VsdHNdXG4gICAgICAgICAgICA6IHJlc3VsdHM7XG4gICAgICAgIGlmICh0aGlzLnN0b3JlU2VydmljZVNlcnZpY2Uuc2VhcmNoc3RheC5kYXRhTGF5ZXIuJHNlYXJjaE9iamVjdC52YWx1ZT8ucGFnZSA9PT0gMSkge1xuICAgICAgICAgIHRoaXMuc2VhcmNoUmVzdWx0cyA9IG5ld1Jlc3VsdHM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZWFyY2hSZXN1bHRzID0gcmVzdWx0c0NvbWJpbmVkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLnN0b3JlU2VydmljZVNlcnZpY2Uuc2VhcmNoc3RheC5kYXRhTGF5ZXIuJHNlYXJjaFRlcm1DaGFuZ2Uuc3Vic2NyaWJlKFxuICAgICAgKHJlc3VsdDogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuc2VhcmNoVGVybSA9IHJlc3VsdDtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5zdG9yZVNlcnZpY2VTZXJ2aWNlLnNlYXJjaHN0YXguZGF0YUxheWVyLiRzZWFyY2hSZXN1bHRzTWV0YWRhdGEuc3Vic2NyaWJlKFxuICAgICAgKHZhbHVlOiBJU2VhcmNoc3RheFNlYXJjaE1ldGFkYXRhKSA9PiB7XG4gICAgICAgIHRoaXMubWV0YWRhdGEgPSB2YWx1ZTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcmVzdWx0Q2xpY2tlZChyZXN1bHQ6IElTZWFyY2hzdGF4UGFyc2VkUmVzdWx0LCBldmVudDogRXZlbnQsIGNvbnRleHQ6IHRoaXMpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGNvbnRleHQuc3RvcmVTZXJ2aWNlU2VydmljZS5zZWFyY2hzdGF4LmV4ZWN1dGVMaW5rQ2xpY2socmVzdWx0LnVuaXF1ZUlkKTtcbiAgfVxuXG4gIGlzSW1hZ2UoZmllbGQ6IGFueSl7XG4gICAgcmV0dXJuIGZpZWxkLmlzSW1hZ2UgJiYgdHlwZW9mIGZpZWxkLnZhbHVlID09PSAnc3RyaW5nJ1xuICB9XG59XG4iLCI8ZGl2IGlkPVwic2VhcmNoc3RheC1yZXN1bHRzLWNvbnRhaW5lclwiPlxuICA8c2VjdGlvbiBhcmlhLWxhYmVsPVwic2VhcmNoIHJlc3VsdHMgY29udGFpbmVyXCIgdGFiaW5kZXg9XCIwXCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJzZWFyY2hzdGF4LXNlYXJjaC1yZXN1bHRzLWNvbnRhaW5lclwiXG4gICAgICBpZD1cInNlYXJjaHN0YXgtc2VhcmNoLXJlc3VsdHMtY29udGFpbmVyXCJcbiAgICA+XG4gICAgICA8ZGl2IGlkPVwic2VhcmNoc3RheC1yZXN1bHQtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgc2VhcmNoUmVzdWx0cz8ubGVuZ3RoID09PSAwICYmXG4gICAgICAgICAgICBzZWFyY2hUZXJtICE9PSAnJyAmJlxuICAgICAgICAgICAgc2VhcmNoVGVybSAhPT0gJyonICYmXG4gICAgICAgICAgICBzdG9yZVNlcnZpY2VTZXJ2aWNlLnNlYXJjaHN0YXguZGF0YUxheWVyLnBhcnNlZERhdGFcbiAgICAgICAgICAgICAgLmZpcnN0U2VhcmNoSGFwcGVuZWQgJiZcbiAgICAgICAgICAgICFub1Jlc3VsdHNUZW1wbGF0ZVxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8YXBwLW5vLXJlc3VsdHMtdGVtcGxhdGUgI3JlZj48L2FwcC1uby1yZXN1bHRzLXRlbXBsYXRlPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZWYubm9SZXN1bHRzVGVtcGxhdGU7IGNvbnRleHQ6IGNvbnRleHRcIlxuICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICBzZWFyY2hSZXN1bHRzPy5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgICAgIHNlYXJjaFRlcm0gIT09ICcnICYmXG4gICAgICAgICAgICBzZWFyY2hUZXJtICE9PSAnKicgJiZcbiAgICAgICAgICAgIHN0b3JlU2VydmljZVNlcnZpY2Uuc2VhcmNoc3RheC5kYXRhTGF5ZXIucGFyc2VkRGF0YVxuICAgICAgICAgICAgICAuZmlyc3RTZWFyY2hIYXBwZW5lZCAmJlxuICAgICAgICAgICAgbm9SZXN1bHRzVGVtcGxhdGVcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJub1Jlc3VsdHNUZW1wbGF0ZTsgY29udGV4dDogY29udGV4dFwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nSWY9XCJzZWFyY2hSZXN1bHRzICYmIHNlYXJjaFJlc3VsdHMubGVuZ3RoICYmICFyZXN1bHRzVGVtcGxhdGVcIlxuICAgICAgICA+XG4gICAgICAgICAgPGFwcC1yZXN1bHRzLXRlbXBsYXRlICNyZWY+PC9hcHAtcmVzdWx0cy10ZW1wbGF0ZT5cbiAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVmLnJlc3VsdHNUZW1wbGF0ZTsgY29udGV4dDogY29udGV4dFwiXG4gICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hSZXN1bHRzICYmIHNlYXJjaFJlc3VsdHMubGVuZ3RoICYmIHJlc3VsdHNUZW1wbGF0ZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVzdWx0c1RlbXBsYXRlOyBjb250ZXh0OiBjb250ZXh0XCJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvc2VjdGlvbj5cbjwvZGl2PlxuIl19
@@ -14,7 +14,7 @@ export class SearchstaxSearchAnswerWidget {
14
14
  if (this.storeServiceService.searchstax) {
15
15
  this.attachObservables();
16
16
  setTimeout(() => {
17
- this.storeServiceService.searchstax.addAnswerWidget('searchstax-answer-container' + this.rand, { showShowMoreAfterWordCount: this.showShowMoreAfterWordCount, feedbackwidget: this.feedbackwidget });
17
+ this.storeServiceService.searchstax.addAnswerWidget('searchstax-answer-container' + this.rand, { showMoreAfterWordCount: this.showMoreAfterWordCount, feedbackwidget: this.feedbackwidget });
18
18
  }, 0);
19
19
  }
20
20
  else {
@@ -32,7 +32,7 @@ export class SearchstaxSearchAnswerWidget {
32
32
  });
33
33
  }
34
34
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SearchstaxSearchAnswerWidget, deps: [{ token: i1.StoreServiceService }], target: i0.ɵɵFactoryTarget.Component }); }
35
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SearchstaxSearchAnswerWidget, selector: "app-searchstax-answer", inputs: { templateOverride: "templateOverride", feedbackwidget: "feedbackwidget", showShowMoreAfterWordCount: "showShowMoreAfterWordCount" }, ngImport: i0, template: "<div [id]=\"'searchstax-answer-container' + rand\">\n <div\n *ngIf=\"\n answerData &&\n answerData?.searchExecuted &&\n answerData.shouldShowAnswer &&\n !templateOverride\n \"\n >\n <app-answer-template #ref></app-answer-template>\n <ng-template\n [ngTemplateOutlet]=\"ref.answerTemplate\"\n [ngTemplateOutletContext]=\"context\"\n ></ng-template>\n </div>\n <div\n *ngIf=\"\n answerData &&\n answerData?.searchExecuted &&\n answerData.shouldShowAnswer &&\n templateOverride\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"templateOverride; 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"] }, { kind: "component", type: i3.AnswerTemplateComponent, selector: "app-answer-template" }] }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SearchstaxSearchAnswerWidget, selector: "app-searchstax-answer", inputs: { templateOverride: "templateOverride", feedbackwidget: "feedbackwidget", showMoreAfterWordCount: "showMoreAfterWordCount" }, ngImport: i0, template: "<div [id]=\"'searchstax-answer-container' + rand\">\n <div\n *ngIf=\"\n answerData &&\n answerData?.searchExecuted &&\n answerData.shouldShowAnswer &&\n !templateOverride\n \"\n >\n <app-answer-template #ref></app-answer-template>\n <ng-template\n [ngTemplateOutlet]=\"ref.answerTemplate\"\n [ngTemplateOutletContext]=\"context\"\n ></ng-template>\n </div>\n <div\n *ngIf=\"\n answerData &&\n answerData?.searchExecuted &&\n answerData.shouldShowAnswer &&\n templateOverride\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"templateOverride; 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"] }, { kind: "component", type: i3.AnswerTemplateComponent, selector: "app-answer-template" }] }); }
36
36
  }
37
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SearchstaxSearchAnswerWidget, decorators: [{
38
38
  type: Component,
@@ -41,7 +41,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
41
41
  type: Input
42
42
  }], feedbackwidget: [{
43
43
  type: Input
44
- }], showShowMoreAfterWordCount: [{
44
+ }], showMoreAfterWordCount: [{
45
45
  type: Input
46
46
  }] } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoc3RheC1zZWFyY2gtYW5zd2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NlYXJjaHN0YXgtaW5jL3NlYXJjaHN0dWRpby11eC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2hzdGF4LXNlYXJjaC1hbnN3ZXIvc2VhcmNoc3RheC1zZWFyY2gtYW5zd2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NlYXJjaHN0YXgtaW5jL3NlYXJjaHN0dWRpby11eC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2hzdGF4LXNlYXJjaC1hbnN3ZXIvc2VhcmNoc3RheC1zZWFyY2gtYW5zd2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUF1QixNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFTdEUsTUFBTSxPQUFPLDRCQUE0QjtJQVF2QyxZQUFvQixtQkFBd0M7UUFBeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUg1RCxlQUFVLEdBQWlDLElBQUksQ0FBQztRQUNoRCxTQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3JCLFlBQU8sR0FBRyxJQUFJLENBQUM7SUFDZ0QsQ0FBQztJQUVoRSxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3pCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsNkJBQTZCLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFDLDBCQUEwQixFQUFFLElBQUksQ0FBQywwQkFBMEIsRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBQyxDQUFDLENBQUM7WUFDck0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ1A7YUFBTTtZQUNMLE1BQU0sS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7U0FDakU7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVksRUFBRSxPQUFhO1FBQ2xDLElBQUksT0FBTyxDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRTtZQUMxQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDckU7SUFDSCxDQUFDO0lBR0QsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FDakUsQ0FBQyxVQUF3QyxFQUFFLEVBQUU7WUFDM0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDL0IsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDOytHQWxDVSw0QkFBNEI7bUdBQTVCLDRCQUE0QiwyTUNUekMsOHFCQTRCQTs7NEZEbkJhLDRCQUE0QjtrQkFMeEMsU0FBUzsrQkFDRSx1QkFBdUI7d0ZBS3hCLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLDBCQUEwQjtzQkFBbEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgSUZlZWRiYWNrV2lkZ2V0UHJvcGVydGllcywgSVNlYXJjaHN0YXhBbnN3ZXJEYXRhIH0gZnJvbSBcIkBzZWFyY2hzdGF4LWluYy9zZWFyY2hzdHVkaW8tdXgtanNcIjtcbmltcG9ydCB7IFN0b3JlU2VydmljZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvc3RvcmUtc2VydmljZS5zZXJ2aWNlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhcHAtc2VhcmNoc3RheC1hbnN3ZXJcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9zZWFyY2hzdGF4LXNlYXJjaC1hbnN3ZXIuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoc3RheFNlYXJjaEFuc3dlcldpZGdldCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHRlbXBsYXRlT3ZlcnJpZGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSBmZWVkYmFja3dpZGdldD86IElGZWVkYmFja1dpZGdldFByb3BlcnRpZXM7XG4gIEBJbnB1dCgpIHNob3dTaG93TW9yZUFmdGVyV29yZENvdW50PzogbnVtYmVyO1xuXG4gIGFuc3dlckRhdGE6IG51bGwgfCBJU2VhcmNoc3RheEFuc3dlckRhdGEgPSBudWxsO1xuICByYW5kID0gTWF0aC5yYW5kb20oKTtcbiAgY29udGV4dCA9IHRoaXM7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmVTZXJ2aWNlU2VydmljZTogU3RvcmVTZXJ2aWNlU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdG9yZVNlcnZpY2VTZXJ2aWNlLnNlYXJjaHN0YXgpIHtcbiAgICAgIHRoaXMuYXR0YWNoT2JzZXJ2YWJsZXMoKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnN0b3JlU2VydmljZVNlcnZpY2Uuc2VhcmNoc3RheC5hZGRBbnN3ZXJXaWRnZXQoJ3NlYXJjaHN0YXgtYW5zd2VyLWNvbnRhaW5lcicgKyB0aGlzLnJhbmQsIHtzaG93U2hvd01vcmVBZnRlcldvcmRDb3VudDogdGhpcy5zaG93U2hvd01vcmVBZnRlcldvcmRDb3VudCwgZmVlZGJhY2t3aWRnZXQ6IHRoaXMuZmVlZGJhY2t3aWRnZXR9KTtcbiAgICAgIH0sIDApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBFcnJvcihcIlNlYXJjaHN0YXggaW5zdGFuY2UgbmVlZHMgdG8gYmUgcGFzc2VkIHZpYSBwcm9wc1wiKTtcbiAgICB9XG4gIH1cblxuICBzaG93TW9yZShldmVudDogRXZlbnQsIGNvbnRleHQ6IHRoaXMpIHtcbiAgICBpZiAoY29udGV4dC5zdG9yZVNlcnZpY2VTZXJ2aWNlLnNlYXJjaHN0YXgpIHtcbiAgICAgIGNvbnRleHQuc3RvcmVTZXJ2aWNlU2VydmljZS5zZWFyY2hzdGF4LmFuc3dlcldpZGdldD8uc2hvd01vcmUoZXZlbnQpXG4gICAgfVxuICB9XG5cblxuICBhdHRhY2hPYnNlcnZhYmxlcygpIHtcbiAgICB0aGlzLnN0b3JlU2VydmljZVNlcnZpY2Uuc2VhcmNoc3RheC5kYXRhTGF5ZXIuJGFuc3dlckRhdGEuc3Vic2NyaWJlKFxuICAgICAgKGFuc3dlckRhdGE6IG51bGwgfCBJU2VhcmNoc3RheEFuc3dlckRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5hbnN3ZXJEYXRhID0gYW5zd2VyRGF0YTtcbiAgICAgIH1cbiAgICApO1xuICB9XG59XG4iLCI8ZGl2IFtpZF09XCInc2VhcmNoc3RheC1hbnN3ZXItY29udGFpbmVyJyArIHJhbmRcIj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiXG4gICAgICBhbnN3ZXJEYXRhICYmXG4gICAgICBhbnN3ZXJEYXRhPy5zZWFyY2hFeGVjdXRlZCAmJlxuICAgICAgYW5zd2VyRGF0YS5zaG91bGRTaG93QW5zd2VyICYmXG4gICAgICAhdGVtcGxhdGVPdmVycmlkZVxuICAgIFwiXG4gID5cbiAgICA8YXBwLWFuc3dlci10ZW1wbGF0ZSAjcmVmPjwvYXBwLWFuc3dlci10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJlZi5hbnN3ZXJUZW1wbGF0ZVwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiY29udGV4dFwiXG4gICAgPjwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgKm5nSWY9XCJcbiAgICAgIGFuc3dlckRhdGEgJiZcbiAgICAgIGFuc3dlckRhdGE/LnNlYXJjaEV4ZWN1dGVkICYmXG4gICAgICBhbnN3ZXJEYXRhLnNob3VsZFNob3dBbnN3ZXIgJiZcbiAgICAgIHRlbXBsYXRlT3ZlcnJpZGVcbiAgICBcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZU92ZXJyaWRlOyBjb250ZXh0OiBjb250ZXh0XCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoc3RheC1zZWFyY2gtYW5zd2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NlYXJjaHN0YXgtaW5jL3NlYXJjaHN0dWRpby11eC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2hzdGF4LXNlYXJjaC1hbnN3ZXIvc2VhcmNoc3RheC1zZWFyY2gtYW5zd2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NlYXJjaHN0YXgtaW5jL3NlYXJjaHN0dWRpby11eC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2hzdGF4LXNlYXJjaC1hbnN3ZXIvc2VhcmNoc3RheC1zZWFyY2gtYW5zd2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUF1QixNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFTdEUsTUFBTSxPQUFPLDRCQUE0QjtJQVF2QyxZQUFvQixtQkFBd0M7UUFBeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUg1RCxlQUFVLEdBQWlDLElBQUksQ0FBQztRQUNoRCxTQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3JCLFlBQU8sR0FBRyxJQUFJLENBQUM7SUFDZ0QsQ0FBQztJQUVoRSxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3pCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsNkJBQTZCLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFDLHNCQUFzQixFQUFFLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBQyxDQUFDLENBQUM7WUFDN0wsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ1A7YUFBTTtZQUNMLE1BQU0sS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7U0FDakU7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVksRUFBRSxPQUFhO1FBQ2xDLElBQUksT0FBTyxDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRTtZQUMxQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDckU7SUFDSCxDQUFDO0lBR0QsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FDakUsQ0FBQyxVQUF3QyxFQUFFLEVBQUU7WUFDM0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDL0IsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDOytHQWxDVSw0QkFBNEI7bUdBQTVCLDRCQUE0QixtTUNUekMsOHFCQTRCQTs7NEZEbkJhLDRCQUE0QjtrQkFMeEMsU0FBUzsrQkFDRSx1QkFBdUI7d0ZBS3hCLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgSUZlZWRiYWNrV2lkZ2V0UHJvcGVydGllcywgSVNlYXJjaHN0YXhBbnN3ZXJEYXRhIH0gZnJvbSBcIkBzZWFyY2hzdGF4LWluYy9zZWFyY2hzdHVkaW8tdXgtanNcIjtcbmltcG9ydCB7IFN0b3JlU2VydmljZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvc3RvcmUtc2VydmljZS5zZXJ2aWNlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhcHAtc2VhcmNoc3RheC1hbnN3ZXJcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9zZWFyY2hzdGF4LXNlYXJjaC1hbnN3ZXIuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoc3RheFNlYXJjaEFuc3dlcldpZGdldCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHRlbXBsYXRlT3ZlcnJpZGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSBmZWVkYmFja3dpZGdldD86IElGZWVkYmFja1dpZGdldFByb3BlcnRpZXM7XG4gIEBJbnB1dCgpIHNob3dNb3JlQWZ0ZXJXb3JkQ291bnQ/OiBudW1iZXI7XG5cbiAgYW5zd2VyRGF0YTogbnVsbCB8IElTZWFyY2hzdGF4QW5zd2VyRGF0YSA9IG51bGw7XG4gIHJhbmQgPSBNYXRoLnJhbmRvbSgpO1xuICBjb250ZXh0ID0gdGhpcztcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZVNlcnZpY2VTZXJ2aWNlOiBTdG9yZVNlcnZpY2VTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0b3JlU2VydmljZVNlcnZpY2Uuc2VhcmNoc3RheCkge1xuICAgICAgdGhpcy5hdHRhY2hPYnNlcnZhYmxlcygpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmVTZXJ2aWNlU2VydmljZS5zZWFyY2hzdGF4LmFkZEFuc3dlcldpZGdldCgnc2VhcmNoc3RheC1hbnN3ZXItY29udGFpbmVyJyArIHRoaXMucmFuZCwge3Nob3dNb3JlQWZ0ZXJXb3JkQ291bnQ6IHRoaXMuc2hvd01vcmVBZnRlcldvcmRDb3VudCwgZmVlZGJhY2t3aWRnZXQ6IHRoaXMuZmVlZGJhY2t3aWRnZXR9KTtcbiAgICAgIH0sIDApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBFcnJvcihcIlNlYXJjaHN0YXggaW5zdGFuY2UgbmVlZHMgdG8gYmUgcGFzc2VkIHZpYSBwcm9wc1wiKTtcbiAgICB9XG4gIH1cblxuICBzaG93TW9yZShldmVudDogRXZlbnQsIGNvbnRleHQ6IHRoaXMpIHtcbiAgICBpZiAoY29udGV4dC5zdG9yZVNlcnZpY2VTZXJ2aWNlLnNlYXJjaHN0YXgpIHtcbiAgICAgIGNvbnRleHQuc3RvcmVTZXJ2aWNlU2VydmljZS5zZWFyY2hzdGF4LmFuc3dlcldpZGdldD8uc2hvd01vcmUoZXZlbnQpXG4gICAgfVxuICB9XG5cblxuICBhdHRhY2hPYnNlcnZhYmxlcygpIHtcbiAgICB0aGlzLnN0b3JlU2VydmljZVNlcnZpY2Uuc2VhcmNoc3RheC5kYXRhTGF5ZXIuJGFuc3dlckRhdGEuc3Vic2NyaWJlKFxuICAgICAgKGFuc3dlckRhdGE6IG51bGwgfCBJU2VhcmNoc3RheEFuc3dlckRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5hbnN3ZXJEYXRhID0gYW5zd2VyRGF0YTtcbiAgICAgIH1cbiAgICApO1xuICB9XG59XG4iLCI8ZGl2IFtpZF09XCInc2VhcmNoc3RheC1hbnN3ZXItY29udGFpbmVyJyArIHJhbmRcIj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiXG4gICAgICBhbnN3ZXJEYXRhICYmXG4gICAgICBhbnN3ZXJEYXRhPy5zZWFyY2hFeGVjdXRlZCAmJlxuICAgICAgYW5zd2VyRGF0YS5zaG91bGRTaG93QW5zd2VyICYmXG4gICAgICAhdGVtcGxhdGVPdmVycmlkZVxuICAgIFwiXG4gID5cbiAgICA8YXBwLWFuc3dlci10ZW1wbGF0ZSAjcmVmPjwvYXBwLWFuc3dlci10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJlZi5hbnN3ZXJUZW1wbGF0ZVwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiY29udGV4dFwiXG4gICAgPjwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgKm5nSWY9XCJcbiAgICAgIGFuc3dlckRhdGEgJiZcbiAgICAgIGFuc3dlckRhdGE/LnNlYXJjaEV4ZWN1dGVkICYmXG4gICAgICBhbnN3ZXJEYXRhLnNob3VsZFNob3dBbnN3ZXIgJiZcbiAgICAgIHRlbXBsYXRlT3ZlcnJpZGVcbiAgICBcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZU92ZXJyaWRlOyBjb250ZXh0OiBjb250ZXh0XCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -20,6 +20,7 @@ export class ResultsTemplateComponent {
20
20
  (click)="resultClicked(searchResult, $event, context)"
21
21
  (keyup.enter)="resultClicked(searchResult, $event, context)"
22
22
  (keyup.space)="resultClicked(searchResult, $event, context)"
23
+ [attr.aria-labelledby]="'title-' + searchResult.uniqueId"
23
24
  tabindex="0"
24
25
  class="searchstax-result-item-link searchstax-result-item-link-wrapping"
25
26
  >
@@ -45,6 +46,7 @@ export class ResultsTemplateComponent {
45
46
  <div class="searchstax-search-result-title-container">
46
47
  <span
47
48
  class="searchstax-search-result-title"
49
+ [id]="'title-' + searchResult.uniqueId"
48
50
  [innerHTML]="searchResult.title"
49
51
  ></span>
50
52
  </div>
@@ -102,6 +104,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
102
104
  (click)="resultClicked(searchResult, $event, context)"
103
105
  (keyup.enter)="resultClicked(searchResult, $event, context)"
104
106
  (keyup.space)="resultClicked(searchResult, $event, context)"
107
+ [attr.aria-labelledby]="'title-' + searchResult.uniqueId"
105
108
  tabindex="0"
106
109
  class="searchstax-result-item-link searchstax-result-item-link-wrapping"
107
110
  >
@@ -127,6 +130,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
127
130
  <div class="searchstax-search-result-title-container">
128
131
  <span
129
132
  class="searchstax-search-result-title"
133
+ [id]="'title-' + searchResult.uniqueId"
130
134
  [innerHTML]="searchResult.title"
131
135
  ></span>
132
136
  </div>
@@ -168,4 +172,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
168
172
  type: ViewChild,
169
173
  args: ["resultsTemplate"]
170
174
  }] } });
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoc3RheC1zZWFyY2gtcmVzdWx0cy10ZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NlYXJjaHN0YXgtaW5jL3NlYXJjaHN0dWRpby11eC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvc2VhcmNoc3RheC1zZWFyY2gtcmVzdWx0cy10ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUM7QUFDakMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQWUsTUFBTSxlQUFlLENBQUM7OztBQWtGbEUsTUFBTSxPQUFPLHdCQUF3QjsrR0FBeEIsd0JBQXdCO21HQUF4Qix3QkFBd0IsZ0xBOUV6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRFVDs7NEZBRVUsd0JBQXdCO2tCQWhGcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0RVQ7aUJBQ0Y7OEJBRStCLGVBQWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gcmV1c2FibGUtdGVtcGxhdGUuY29tcG9uZW50LnRzXG5pbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiYXBwLXJlc3VsdHMtdGVtcGxhdGVcIixcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICNyZXN1bHRzVGVtcGxhdGVcbiAgICAgIGxldC1zZWFyY2hSZXN1bHRzPVwic2VhcmNoUmVzdWx0c1wiXG4gICAgICBsZXQtcmVzdWx0Q2xpY2tlZD1cInJlc3VsdENsaWNrZWRcIlxuICAgICAgbGV0LWlzSW1hZ2U9XCJpc0ltYWdlXCJcbiAgICAgIGxldC1jb250ZXh0PVwiY29udGV4dFwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaHN0YXgtc2VhcmNoLXJlc3VsdHNcIj5cbiAgICAgICAgPGFcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgc2VhcmNoUmVzdWx0IG9mIHNlYXJjaFJlc3VsdHNcIlxuICAgICAgICAgIFtocmVmXT1cInNlYXJjaFJlc3VsdC51cmxcIlxuICAgICAgICAgIFthdHRyLmRhdGEtc2VhcmNoc3RheC11bmlxdWUtcmVzdWx0LWlkXT1cInNlYXJjaFJlc3VsdC51bmlxdWVJZFwiXG4gICAgICAgICAgKGNsaWNrKT1cInJlc3VsdENsaWNrZWQoc2VhcmNoUmVzdWx0LCAkZXZlbnQsIGNvbnRleHQpXCJcbiAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwicmVzdWx0Q2xpY2tlZChzZWFyY2hSZXN1bHQsICRldmVudCwgY29udGV4dClcIlxuICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJyZXN1bHRDbGlja2VkKHNlYXJjaFJlc3VsdCwgJGV2ZW50LCBjb250ZXh0KVwiXG4gICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICBjbGFzcz1cInNlYXJjaHN0YXgtcmVzdWx0LWl0ZW0tbGluayBzZWFyY2hzdGF4LXJlc3VsdC1pdGVtLWxpbmstd3JhcHBpbmdcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJzZWFyY2hzdGF4LXNlYXJjaC1yZXN1bHRcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaGFzLXRodW1ibmFpbCc6IHNlYXJjaFJlc3VsdC50aHVtYm5haWwgfVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAqbmdJZj1cInNlYXJjaFJlc3VsdC5wcm9tb3RlZFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwic2VhcmNoc3RheC1zZWFyY2gtcmVzdWx0LXByb21vdGVkXCJcbiAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgKm5nSWY9XCJzZWFyY2hSZXN1bHQucmliYm9uXCJcbiAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJzZWFyY2hSZXN1bHQucmliYm9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzZWFyY2hzdGF4LXNlYXJjaC1yZXN1bHQtcmliYm9uXCJcbiAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJzZWFyY2hSZXN1bHQudGh1bWJuYWlsXCJcbiAgICAgICAgICAgICAgW3NyY109XCJzZWFyY2hSZXN1bHQudGh1bWJuYWlsXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzZWFyY2hzdGF4LXRodW1ibmFpbFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaHN0YXgtc2VhcmNoLXJlc3VsdC10aXRsZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cInNlYXJjaHN0YXgtc2VhcmNoLXJlc3VsdC10aXRsZVwiXG4gICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJzZWFyY2hSZXN1bHQudGl0bGVcIlxuICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8cFxuICAgICAgICAgICAgICAqbmdJZj1cInNlYXJjaFJlc3VsdC5wYXRoc1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwic2VhcmNoc3RheC1zZWFyY2gtcmVzdWx0LWNvbW1vblwiXG4gICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwic2VhcmNoUmVzdWx0LnBhdGhzXCJcbiAgICAgICAgICAgID48L3A+XG4gICAgICAgICAgICA8cFxuICAgICAgICAgICAgICAqbmdJZj1cInNlYXJjaFJlc3VsdC5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwic2VhcmNoUmVzdWx0LmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzZWFyY2hzdGF4LXNlYXJjaC1yZXN1bHQtZGVzY3JpcHRpb24gc2VhcmNoc3RheC1zZWFyY2gtcmVzdWx0LWNvbW1vblwiXG4gICAgICAgICAgICA+PC9wPlxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdW5tYXBwZWRGaWVsZCBvZiBzZWFyY2hSZXN1bHQudW5tYXBwZWRGaWVsZHNcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNJbWFnZSh1bm1hcHBlZEZpZWxkKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzZWFyY2hzdGF4LXNlYXJjaC1yZXN1bHQtaW1hZ2UtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgICAgICAgICBbc3JjXT1cInVubWFwcGVkRmllbGQudmFsdWVcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWFyY2hzdGF4LXJlc3VsdC1pbWFnZVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhaXNJbWFnZSh1bm1hcHBlZEZpZWxkKVwiPlxuICAgICAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInNlYXJjaHN0YXgtc2VhcmNoLXJlc3VsdC1jb21tb25cIlxuICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJ1bm1hcHBlZEZpZWxkLnZhbHVlXCJcbiAgICAgICAgICAgICAgICA+PC9wPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBSZXN1bHRzVGVtcGxhdGVDb21wb25lbnQge1xuICBAVmlld0NoaWxkKFwicmVzdWx0c1RlbXBsYXRlXCIpIHJlc3VsdHNUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG59XG4iXX0=
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoc3RheC1zZWFyY2gtcmVzdWx0cy10ZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NlYXJjaHN0YXgtaW5jL3NlYXJjaHN0dWRpby11eC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvc2VhcmNoc3RheC1zZWFyY2gtcmVzdWx0cy10ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUM7QUFDakMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQWUsTUFBTSxlQUFlLENBQUM7OztBQW9GbEUsTUFBTSxPQUFPLHdCQUF3QjsrR0FBeEIsd0JBQXdCO21HQUF4Qix3QkFBd0IsZ0xBaEZ6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEVUOzs0RkFFVSx3QkFBd0I7a0JBbEZwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEVUO2lCQUNGOzhCQUUrQixlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIHJldXNhYmxlLXRlbXBsYXRlLmNvbXBvbmVudC50c1xuaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIFRlbXBsYXRlUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImFwcC1yZXN1bHRzLXRlbXBsYXRlXCIsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAjcmVzdWx0c1RlbXBsYXRlXG4gICAgICBsZXQtc2VhcmNoUmVzdWx0cz1cInNlYXJjaFJlc3VsdHNcIlxuICAgICAgbGV0LXJlc3VsdENsaWNrZWQ9XCJyZXN1bHRDbGlja2VkXCJcbiAgICAgIGxldC1pc0ltYWdlPVwiaXNJbWFnZVwiXG4gICAgICBsZXQtY29udGV4dD1cImNvbnRleHRcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2hzdGF4LXNlYXJjaC1yZXN1bHRzXCI+XG4gICAgICAgIDxhXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHNlYXJjaFJlc3VsdCBvZiBzZWFyY2hSZXN1bHRzXCJcbiAgICAgICAgICBbaHJlZl09XCJzZWFyY2hSZXN1bHQudXJsXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLXNlYXJjaHN0YXgtdW5pcXVlLXJlc3VsdC1pZF09XCJzZWFyY2hSZXN1bHQudW5pcXVlSWRcIlxuICAgICAgICAgIChjbGljayk9XCJyZXN1bHRDbGlja2VkKHNlYXJjaFJlc3VsdCwgJGV2ZW50LCBjb250ZXh0KVwiXG4gICAgICAgICAgKGtleXVwLmVudGVyKT1cInJlc3VsdENsaWNrZWQoc2VhcmNoUmVzdWx0LCAkZXZlbnQsIGNvbnRleHQpXCJcbiAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwicmVzdWx0Q2xpY2tlZChzZWFyY2hSZXN1bHQsICRldmVudCwgY29udGV4dClcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCIndGl0bGUtJyArIHNlYXJjaFJlc3VsdC51bmlxdWVJZFwiXG4gICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICBjbGFzcz1cInNlYXJjaHN0YXgtcmVzdWx0LWl0ZW0tbGluayBzZWFyY2hzdGF4LXJlc3VsdC1pdGVtLWxpbmstd3JhcHBpbmdcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJzZWFyY2hzdGF4LXNlYXJjaC1yZXN1bHRcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaGFzLXRodW1ibmFpbCc6IHNlYXJjaFJlc3VsdC50aHVtYm5haWwgfVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAqbmdJZj1cInNlYXJjaFJlc3VsdC5wcm9tb3RlZFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwic2VhcmNoc3RheC1zZWFyY2gtcmVzdWx0LXByb21vdGVkXCJcbiAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgKm5nSWY9XCJzZWFyY2hSZXN1bHQucmliYm9uXCJcbiAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJzZWFyY2hSZXN1bHQucmliYm9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzZWFyY2hzdGF4LXNlYXJjaC1yZXN1bHQtcmliYm9uXCJcbiAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJzZWFyY2hSZXN1bHQudGh1bWJuYWlsXCJcbiAgICAgICAgICAgICAgW3NyY109XCJzZWFyY2hSZXN1bHQudGh1bWJuYWlsXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzZWFyY2hzdGF4LXRodW1ibmFpbFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaHN0YXgtc2VhcmNoLXJlc3VsdC10aXRsZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cInNlYXJjaHN0YXgtc2VhcmNoLXJlc3VsdC10aXRsZVwiXG4gICAgICAgICAgICAgICAgW2lkXT1cIid0aXRsZS0nICsgc2VhcmNoUmVzdWx0LnVuaXF1ZUlkXCJcbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cInNlYXJjaFJlc3VsdC50aXRsZVwiXG4gICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICpuZ0lmPVwic2VhcmNoUmVzdWx0LnBhdGhzXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzZWFyY2hzdGF4LXNlYXJjaC1yZXN1bHQtY29tbW9uXCJcbiAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJzZWFyY2hSZXN1bHQucGF0aHNcIlxuICAgICAgICAgICAgPjwvcD5cbiAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICpuZ0lmPVwic2VhcmNoUmVzdWx0LmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJzZWFyY2hSZXN1bHQuZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICBjbGFzcz1cInNlYXJjaHN0YXgtc2VhcmNoLXJlc3VsdC1kZXNjcmlwdGlvbiBzZWFyY2hzdGF4LXNlYXJjaC1yZXN1bHQtY29tbW9uXCJcbiAgICAgICAgICAgID48L3A+XG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB1bm1hcHBlZEZpZWxkIG9mIHNlYXJjaFJlc3VsdC51bm1hcHBlZEZpZWxkc1wiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpc0ltYWdlKHVubWFwcGVkRmllbGQpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNlYXJjaHN0YXgtc2VhcmNoLXJlc3VsdC1pbWFnZS1jb250YWluZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICAgICAgICAgIFtzcmNdPVwidW5tYXBwZWRGaWVsZC52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInNlYXJjaHN0YXgtcmVzdWx0LWltYWdlXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc0ltYWdlKHVubWFwcGVkRmllbGQpXCI+XG4gICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VhcmNoc3RheC1zZWFyY2gtcmVzdWx0LWNvbW1vblwiXG4gICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cInVubWFwcGVkRmllbGQudmFsdWVcIlxuICAgICAgICAgICAgICAgID48L3A+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFJlc3VsdHNUZW1wbGF0ZUNvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoXCJyZXN1bHRzVGVtcGxhdGVcIikgcmVzdWx0c1RlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55Pjtcbn1cbiJdfQ==
@@ -650,6 +650,7 @@ class ResultsTemplateComponent {
650
650
  (click)="resultClicked(searchResult, $event, context)"
651
651
  (keyup.enter)="resultClicked(searchResult, $event, context)"
652
652
  (keyup.space)="resultClicked(searchResult, $event, context)"
653
+ [attr.aria-labelledby]="'title-' + searchResult.uniqueId"
653
654
  tabindex="0"
654
655
  class="searchstax-result-item-link searchstax-result-item-link-wrapping"
655
656
  >
@@ -675,6 +676,7 @@ class ResultsTemplateComponent {
675
676
  <div class="searchstax-search-result-title-container">
676
677
  <span
677
678
  class="searchstax-search-result-title"
679
+ [id]="'title-' + searchResult.uniqueId"
678
680
  [innerHTML]="searchResult.title"
679
681
  ></span>
680
682
  </div>
@@ -732,6 +734,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
732
734
  (click)="resultClicked(searchResult, $event, context)"
733
735
  (keyup.enter)="resultClicked(searchResult, $event, context)"
734
736
  (keyup.space)="resultClicked(searchResult, $event, context)"
737
+ [attr.aria-labelledby]="'title-' + searchResult.uniqueId"
735
738
  tabindex="0"
736
739
  class="searchstax-result-item-link searchstax-result-item-link-wrapping"
737
740
  >
@@ -757,6 +760,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
757
760
  <div class="searchstax-search-result-title-container">
758
761
  <span
759
762
  class="searchstax-search-result-title"
763
+ [id]="'title-' + searchResult.uniqueId"
760
764
  [innerHTML]="searchResult.title"
761
765
  ></span>
762
766
  </div>
@@ -904,6 +908,7 @@ class SearchstaxResultsWidget {
904
908
  templates: {},
905
909
  hooks: this.hooks,
906
910
  renderMethod: this.renderMethod ?? "pagination",
911
+ resultsPerPage: this.resultsPerPage,
907
912
  });
908
913
  }, 0);
909
914
  }
@@ -945,7 +950,7 @@ class SearchstaxResultsWidget {
945
950
  return field.isImage && typeof field.value === 'string';
946
951
  }
947
952
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SearchstaxResultsWidget, deps: [{ token: StoreServiceService }], target: i0.ɵɵFactoryTarget.Component }); }
948
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SearchstaxResultsWidget, selector: "app-searchstax-results", inputs: { afterLinkClick: "afterLinkClick", noResultsTemplate: "noResultsTemplate", resultsTemplate: "resultsTemplate", renderMethod: "renderMethod" }, ngImport: i0, template: "<div id=\"searchstax-results-container\">\n <section aria-label=\"search results container\" tabindex=\"0\">\n <div\n class=\"searchstax-search-results-container\"\n id=\"searchstax-search-results-container\"\n >\n <div id=\"searchstax-result-container\">\n <div\n *ngIf=\"\n searchResults?.length === 0 &&\n searchTerm !== '' &&\n searchTerm !== '*' &&\n storeServiceService.searchstax.dataLayer.parsedData\n .firstSearchHappened &&\n !noResultsTemplate\n \"\n >\n <app-no-results-template #ref></app-no-results-template>\n <ng-template\n *ngTemplateOutlet=\"ref.noResultsTemplate; context: context\"\n ></ng-template>\n </div>\n <div\n *ngIf=\"\n searchResults?.length === 0 &&\n searchTerm !== '' &&\n searchTerm !== '*' &&\n storeServiceService.searchstax.dataLayer.parsedData\n .firstSearchHappened &&\n noResultsTemplate\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"noResultsTemplate; context: context\"\n ></ng-container>\n </div>\n\n <ng-container\n *ngIf=\"searchResults && searchResults.length && !resultsTemplate\"\n >\n <app-results-template #ref></app-results-template>\n <ng-template\n *ngTemplateOutlet=\"ref.resultsTemplate; context: context\"\n ></ng-template>\n </ng-container>\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 </section>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ResultsTemplateComponent, selector: "app-results-template" }, { kind: "component", type: NoResultsTemplateComponent, selector: "app-no-results-template" }] }); }
953
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SearchstaxResultsWidget, selector: "app-searchstax-results", inputs: { afterLinkClick: "afterLinkClick", noResultsTemplate: "noResultsTemplate", resultsTemplate: "resultsTemplate", renderMethod: "renderMethod", resultsPerPage: "resultsPerPage" }, ngImport: i0, template: "<div id=\"searchstax-results-container\">\n <section aria-label=\"search results container\" tabindex=\"0\">\n <div\n class=\"searchstax-search-results-container\"\n id=\"searchstax-search-results-container\"\n >\n <div id=\"searchstax-result-container\">\n <div\n *ngIf=\"\n searchResults?.length === 0 &&\n searchTerm !== '' &&\n searchTerm !== '*' &&\n storeServiceService.searchstax.dataLayer.parsedData\n .firstSearchHappened &&\n !noResultsTemplate\n \"\n >\n <app-no-results-template #ref></app-no-results-template>\n <ng-template\n *ngTemplateOutlet=\"ref.noResultsTemplate; context: context\"\n ></ng-template>\n </div>\n <div\n *ngIf=\"\n searchResults?.length === 0 &&\n searchTerm !== '' &&\n searchTerm !== '*' &&\n storeServiceService.searchstax.dataLayer.parsedData\n .firstSearchHappened &&\n noResultsTemplate\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"noResultsTemplate; context: context\"\n ></ng-container>\n </div>\n\n <ng-container\n *ngIf=\"searchResults && searchResults.length && !resultsTemplate\"\n >\n <app-results-template #ref></app-results-template>\n <ng-template\n *ngTemplateOutlet=\"ref.resultsTemplate; context: context\"\n ></ng-template>\n </ng-container>\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 </section>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ResultsTemplateComponent, selector: "app-results-template" }, { kind: "component", type: NoResultsTemplateComponent, selector: "app-no-results-template" }] }); }
949
954
  }
950
955
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SearchstaxResultsWidget, decorators: [{
951
956
  type: Component,
@@ -958,6 +963,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
958
963
  type: Input
959
964
  }], renderMethod: [{
960
965
  type: Input
966
+ }], resultsPerPage: [{
967
+ type: Input
961
968
  }] } });
962
969
 
963
970
  // reusable-template.component.ts
@@ -2183,7 +2190,7 @@ class SearchstaxSearchAnswerWidget {
2183
2190
  if (this.storeServiceService.searchstax) {
2184
2191
  this.attachObservables();
2185
2192
  setTimeout(() => {
2186
- this.storeServiceService.searchstax.addAnswerWidget('searchstax-answer-container' + this.rand, { showShowMoreAfterWordCount: this.showShowMoreAfterWordCount, feedbackwidget: this.feedbackwidget });
2193
+ this.storeServiceService.searchstax.addAnswerWidget('searchstax-answer-container' + this.rand, { showMoreAfterWordCount: this.showMoreAfterWordCount, feedbackwidget: this.feedbackwidget });
2187
2194
  }, 0);
2188
2195
  }
2189
2196
  else {
@@ -2201,7 +2208,7 @@ class SearchstaxSearchAnswerWidget {
2201
2208
  });
2202
2209
  }
2203
2210
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SearchstaxSearchAnswerWidget, deps: [{ token: StoreServiceService }], target: i0.ɵɵFactoryTarget.Component }); }
2204
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SearchstaxSearchAnswerWidget, selector: "app-searchstax-answer", inputs: { templateOverride: "templateOverride", feedbackwidget: "feedbackwidget", showShowMoreAfterWordCount: "showShowMoreAfterWordCount" }, ngImport: i0, template: "<div [id]=\"'searchstax-answer-container' + rand\">\n <div\n *ngIf=\"\n answerData &&\n answerData?.searchExecuted &&\n answerData.shouldShowAnswer &&\n !templateOverride\n \"\n >\n <app-answer-template #ref></app-answer-template>\n <ng-template\n [ngTemplateOutlet]=\"ref.answerTemplate\"\n [ngTemplateOutletContext]=\"context\"\n ></ng-template>\n </div>\n <div\n *ngIf=\"\n answerData &&\n answerData?.searchExecuted &&\n answerData.shouldShowAnswer &&\n templateOverride\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"templateOverride; context: context\"\n ></ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AnswerTemplateComponent, selector: "app-answer-template" }] }); }
2211
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SearchstaxSearchAnswerWidget, selector: "app-searchstax-answer", inputs: { templateOverride: "templateOverride", feedbackwidget: "feedbackwidget", showMoreAfterWordCount: "showMoreAfterWordCount" }, ngImport: i0, template: "<div [id]=\"'searchstax-answer-container' + rand\">\n <div\n *ngIf=\"\n answerData &&\n answerData?.searchExecuted &&\n answerData.shouldShowAnswer &&\n !templateOverride\n \"\n >\n <app-answer-template #ref></app-answer-template>\n <ng-template\n [ngTemplateOutlet]=\"ref.answerTemplate\"\n [ngTemplateOutletContext]=\"context\"\n ></ng-template>\n </div>\n <div\n *ngIf=\"\n answerData &&\n answerData?.searchExecuted &&\n answerData.shouldShowAnswer &&\n templateOverride\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"templateOverride; context: context\"\n ></ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AnswerTemplateComponent, selector: "app-answer-template" }] }); }
2205
2212
  }
2206
2213
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SearchstaxSearchAnswerWidget, decorators: [{
2207
2214
  type: Component,
@@ -2210,7 +2217,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
2210
2217
  type: Input
2211
2218
  }], feedbackwidget: [{
2212
2219
  type: Input
2213
- }], showShowMoreAfterWordCount: [{
2220
+ }], showMoreAfterWordCount: [{
2214
2221
  type: Input
2215
2222
  }] } });
2216
2223
 
@@ -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/templates/SearchstaxLocationWidgetTemplateConfig.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/templates/searchstax-search-location-template.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-location/searchstax-search-location.component.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-location/searchstax-search-location.component.html","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/templates/searchstax-search-input-template.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/templates/searchstax-search-results-template.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/templates/searchstax-search-no-results-template.ts","../../../../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/templates/searchstax-search-overview-template.ts","../../../../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/templates/searchstax-search-pagination-template.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/templates/searchstax-search-pagination-infinite-template.ts","../../../../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/templates/searchstax-search-facet-desktop-template.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/templates/searchstax-search-facet-mobile-template.ts","../../../../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/templates/searchstax-search-sorting-template.ts","../../../../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/templates/searchstax-search-answer-template.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-answer/searchstax-search-answer.component.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-answer/searchstax-search-answer.component.html","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/templates/searchstax-search-related-template.ts","../../../../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/templates/searchstax-search-external-template.ts","../../../../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() model = '';\n @Input() searchURL: string = '';\n @Input() suggesterURL: string = '';\n @Input() trackApiKey: string = '';\n @Input() searchAuth: string = '';\n @Input() sessionId?: string;\n @Input() analyticsBaseUrl: string = '';\n @Input() analyticsSrc: string = '';\n @Input() questionURL: 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 }\n\n ngOnInit(): void {\n if (this.beforeSearch) {\n this.hooks.beforeSearch = this.beforeSearch;\n }\n if (this.afterSearch) {\n this.hooks.afterSearch = this.afterSearch;\n }\n this.storeServiceService.searchstax.initialize({\n language: this.language,\n model: this.model,\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 analyticsBaseUrl: this.analyticsBaseUrl,\n analyticsSrc: this.analyticsSrc,\n sessionId: this.sessionId,\n questionURL: this.questionURL\n })\n\n this.initialized.emit(this.storeServiceService.searchstax)\n }\n\n}\n","import { ISearchstaxLocation } from \"@searchstax-inc/searchstudio-ux-js\";\n\n//CUT START\n\n\nconst config = {\n appId: \"APP_ID\",\n relatedSearchesAPIKey: \"KEY\"\n}\n\nconst locationWidgetConfig = {\n locationDecode: (term: string): Promise<ISearchstaxLocation> => {\n return new Promise((resolve) => {\n // make a request to google geocoding API to retrieve lat, lon and address\n\n const geocodingAPIKey = \"GEOCODING_API_KEY\";\n const geocodingURL = `https://maps.googleapis.com/maps/api/geocode/json?address=${encodeURIComponent(\n term\n )}&key=${geocodingAPIKey}`;\n fetch(geocodingURL)\n .then((response) => response.json())\n .then((data) => {\n if (data.status === \"OK\" && data.results.length > 0) {\n const result = data.results[0];\n const location = {\n lat: result.geometry.location.lat,\n lon: result.geometry.location.lng,\n address: result.formatted_address,\n };\n resolve(location);\n } else {\n resolve({\n address: undefined,\n lat: undefined,\n lon: undefined,\n error: true,\n });\n }\n })\n .catch(() => {\n resolve({\n address: undefined,\n lat: undefined,\n lon: undefined,\n error: true,\n });\n });\n });\n },\n locationDecodeCoordinatesToAddress: (lat: string, lon: string): Promise<ISearchstaxLocation> => {\n return new Promise((resolve) => {\n fetch(\n `https://geocoding-staging.searchstax.co/reverse?location=${lat},${lon}&components=country:US&app_id=${config.appId}`,\n {\n method: \"GET\",\n headers: {\n Authorization: `Token ${config.relatedSearchesAPIKey}`,\n },\n }\n )\n .then((response) => response.json())\n .then((data) => {\n if (data.status === \"OK\" && data.results.length > 0) {\n const result = data.results[0];\n resolve({\n address: result.formatted_address,\n lat: lat,\n lon: lon,\n error: false,\n });\n } else {\n resolve({\n address: undefined,\n lat: lat,\n lon: lon,\n error: true,\n });\n }\n })\n .catch(() => {\n resolve({\n address: undefined,\n lat: lat,\n lon: lon,\n error: true,\n });\n });\n });\n },\n locationSearchEnabled: false,\n locationValuesOverride: {\n locationDistanceEnabled: true,\n filterValues: [\"any\", \"1000\"],\n filterUnit: \"miles\",\n locationFilterDefaultValue: \"any\"\n },\n }\n//CUT END\n export {locationWidgetConfig}","// reusable-template.component.ts\nimport { Component, ViewChild, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"app-location-template\",\n template: `\n <ng-template\n #locationTemplate\n let-context=\"context\"\n let-locationData=\"locationData\"\n let-inputValue=\"inputValue\"\n let-selectValue=\"selectValue\"\n let-radiusChange=\"radiusChange\"\n let-inputChange=\"inputChange\"\n let-locationBlur=\"locationBlur\"\n let-locationError=\"locationError\"\n let-getCurrentLocation=\"getCurrentLocation\"\n >\n <div\n class=\"searchstax-location-input-container\"\n data-test-id=\"searchstax-location-input-container\"\n *ngIf=\"locationData\"\n >\n <div class=\"searchstax-location-input-wrapper\">\n <span class=\"searchstax-location-input-label\">NEAR</span>\n <div class=\"searchstax-location-input-wrapper-inner\">\n <input\n type=\"text\"\n id=\"searchstax-location-input\"\n class=\"searchstax-location-input\"\n [ngClass]=\"{\n 'searchstax-input-location-error': locationError\n }\"\n placeholder=\"Zip, Postal Code or City...\"\n aria-label=\"Search Location Input\"\n data-test-id=\"searchstax-location-input\"\n [value]=\"inputValue\"\n (change)=\"inputChange($event, context)\"\n (blur)=\"locationBlur(context)\"\n />\n <button\n (click)=\"getCurrentLocation(context)\"\n class=\"searchstax-get-current-location-button\"\n >\n Use my current location\n </button>\n </div>\n <span\n *ngIf=\"locationData.shouldShowLocationDistanceDropdown\"\n class=\"searchstax-location-input-label\"\n >WITHIN</span\n >\n <select\n *ngIf=\"locationData.shouldShowLocationDistanceDropdown\"\n id=\"searchstax-location-radius-select\"\n class=\"searchstax-location-radius-select\"\n aria-label=\"Search Location Radius Select\"\n data-test-id=\"searchstax-location-radius-select\"\n (change)=\"radiusChange($event, context)\"\n [(ngModel)]=\"context.selectValue\"\n >\n <option\n *ngFor=\"let value of locationData.locationSearchDistanceValues\"\n [value]=\"value.value\"\n >\n {{ value.label }}\n </option>\n </select>\n </div>\n </div>\n </ng-template>\n `,\n})\nexport class LocationTemplateComponent {\n @ViewChild(\"locationTemplate\") locationTemplate!: TemplateRef<any>;\n}\n","import { Component, Input, OnInit, TemplateRef } from \"@angular/core\";\nimport {\n ISearchstaxLocation,\n ISearchstaxLocationRenderData,\n} from \"@searchstax-inc/searchstudio-ux-js\";\nimport { StoreServiceService } from \"../../services/store-service.service\";\n\n@Component({\n selector: \"app-searchstax-search-location\",\n templateUrl: \"./searchstax-search-location.component.html\",\n styles: [],\n})\nexport class SearchstaxSearchLocationWidget implements OnInit {\n @Input() templateOverride?: TemplateRef<any>;\n @Input() locationSearchEnabled?: boolean;\n @Input() locationValuesOverride?: {\n locationDistanceEnabled: boolean; // if set to true location distance dropdown will be shown\n filterValues: string[]; // array of location filter values to override the default ones\n filterUnit: string; // unit of the location filter to override the default one\n }\n @Input() locationDecode!: (\n locationName: string\n ) => Promise<ISearchstaxLocation>;\n @Input() locationDecodeCoordinatesToAddress!: (\n lat: string,\n lon: string\n ) => Promise<ISearchstaxLocation>;\n\n locationData: null | ISearchstaxLocationRenderData = null;\n inputValue: string = \"\";\n selectValue: string | number = \"\";\n locationAdded = false;\n locationError = false;\n rand = Math.random();\n\n context = this;\n constructor(private storeServiceService: StoreServiceService) {}\n\n ngOnInit(): void {\n if (this.storeServiceService.searchstax) {\n this.attachObservables();\n setTimeout(() => {\n this.addWidget();\n }, 100);\n } else {\n throw Error(\"Searchstax instance needs to be passed via props\");\n }\n }\n\n locationBlur(context: this) {\n context.storeServiceService.searchstax.searchLocationWidget?.triggerGeocoder(\n context.inputValue\n );\n }\n radiusChange(e: Event, context: this) {\n const target = e.target as HTMLSelectElement;\n context.selectValue = target.value;\n context.storeServiceService.searchstax.searchLocationWidget?.setRadiusValue(\n context.selectValue\n );\n }\n inputChange(e: Event, context: this) {\n const target = e.target as HTMLInputElement;\n context.inputValue = target.value;\n }\n\n getCurrentLocation(context: this){\n context.storeServiceService.searchstax.searchLocationWidget?.getCurrentLocation();\n }\n\n addWidget() {\n if (\n !this.locationAdded &&\n this.storeServiceService.searchstax.routerHelper\n ) {\n this.locationAdded = true;\n this.storeServiceService.searchstax.addSearchLocationWidget(\n \"searchstax-location-container\" + this.rand,\n {\n hooks: {\n locationDecode: this.locationDecode,\n locationDecodeCoordinatesToAddress:\n this.locationDecodeCoordinatesToAddress,\n },\n locationSearchEnabled: this.locationSearchEnabled,\n locationValuesOverride: this.locationValuesOverride,\n }\n );\n }\n }\n\n attachObservables() {\n this.storeServiceService.searchstax.dataLayer.$locationWidgetTemplateData.subscribe(\n (sortingData: null | ISearchstaxLocationRenderData) => {\n this.locationData = sortingData;\n }\n );\n\n this.storeServiceService.searchstax.dataLayer.$searchObject.subscribe(\n (result) => {\n this.inputValue = result.location.address ?? \"\";\n this.selectValue = result.location.radius || \"\";\n }\n );\n\n this.storeServiceService.searchstax.dataLayer.$locationError.subscribe(\n (locationError: boolean) => {\n this.locationError = locationError;\n }\n );\n\n this.storeServiceService.searchstax.dataLayer.$searchLocationChange.subscribe(\n (location: string) => {\n this.inputValue = location;\n }\n );\n\n this.storeServiceService.searchstax.dataLayer.$searchRadiusChange.subscribe(\n (radius: string | number) => {\n this.selectValue = radius;\n }\n );\n }\n}\n","<div\n [id]=\"'searchstax-location-container' + rand\"\n class=\"searchstax-location-container\"\n>\n <div *ngIf=\"!!locationData && !templateOverride\">\n <app-location-template #ref></app-location-template>\n <ng-template\n *ngTemplateOutlet=\"ref.locationTemplate; context: context\"\n ></ng-template>\n </div>\n\n <div *ngIf=\"!!locationData && templateOverride\">\n <ng-container\n *ngTemplateOutlet=\"templateOverride; context: context\"\n ></ng-container>\n </div>\n</div>\n","// reusable-template.component.ts\nimport { Component, ViewChild, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"app-input-template\",\n template: `\n <ng-template\n #inputTemplate\n let-suggestions=\"suggestions\"\n let-onMouseLeave=\"onMouseLeave\"\n let-onMouseOver=\"onMouseOver\"\n let-onMouseClick=\"onMouseClick\"\n let-context=\"context\"\n let-locationWidgetConfig=\"locationWidgetConfig\"\n >\n <div 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 aria-label=\"search\"\n />\n <div\n class=\"searchstax-autosuggest-container\"\n [ngClass]=\"{ hidden: suggestions.length === 0 }\"\n (mouseleave)=\"onMouseLeave(context)\"\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 tabindex=\"0\"\n (click)=\"onMouseClick($event, context)\"\n ></div>\n </div>\n </div>\n </div>\n <app-searchstax-search-location\n [locationDecode]=\"locationWidgetConfig.locationDecode\"\n [locationDecodeCoordinatesToAddress]=\"\n locationWidgetConfig.locationDecodeCoordinatesToAddress\n \"\n [locationSearchEnabled]=\"locationWidgetConfig.locationSearchEnabled\"\n [locationValuesOverride]=\"locationWidgetConfig.locationValuesOverride\"\n >\n </app-searchstax-search-location>\n <button\n class=\"searchstax-spinner-icon\"\n id=\"searchstax-search-input-action-button\"\n role=\"button\"\n aria-label=\"search\"\n ></button>\n </ng-template>\n `,\n})\nexport class InputTemplateComponent {\n @ViewChild(\"inputTemplate\") inputTemplate!: TemplateRef<any>;\n}\n","import { Component, Input, OnInit, TemplateRef } from \"@angular/core\";\nimport {\n ISearchstaxLocation,\n ISearchstaxSEARCHTERM,\n ISearchstaxSearchInputRenderData,\n ISearchstaxSuggestProps,\n ISearchstaxSuggestResponse,\n ISearchstaxSuggestion,\n} from \"@searchstax-inc/searchstudio-ux-js\";\nimport { StoreServiceService } from \"../../services/store-service.service\";\nimport { locationWidgetConfig } from \"../templates/SearchstaxLocationWidgetTemplateConfig\";\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?: (\n result: ISearchstaxSuggestResponse\n ) => ISearchstaxSuggestResponse;\n @Input() beforeAutosuggest?: (\n props: ISearchstaxSuggestProps\n ) => ISearchstaxSuggestProps | null;\n @Input() searchInputId = \"\";\n @Input() suggestAfterMinChars?: number;\n @Input() templateOverride?: TemplateRef<any>;\n\n hooks: { [key: string]: (prop: any) => any } = {};\n suggestions: ISearchstaxSuggestion[] = [];\n context = this;\n templateData: null | ISearchstaxSearchInputRenderData = null;\n locationWidgetConfig = locationWidgetConfig;\n\n constructor(private storeServiceService: StoreServiceService) {}\n\n ngOnInit(): void {\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(\n \"searchstax-input-container\",\n {\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 );\n this.storeServiceService.searchstax.dataLayer.setInputTemplateRendered(\n true\n );\n }, 100);\n } else {\n throw Error(\"Searchstax instance needs to be passed via props\");\n }\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(\n suggestion\n );\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 this.storeServiceService.searchstax.dataLayer.$inputWidgetTemplateData.subscribe(\n (data: null | ISearchstaxSearchInputRenderData) => {\n this.templateData = data;\n }\n );\n }\n}\n","<div id=\"searchstax-input-container\">\n <div\n class=\"searchstax-search-input-container searchstax-search-input-container-new\"\n [class]=\"{\n 'searchstax-alternative-render': !!templateData?.locationEnabled\n }\"\n >\n <ng-container *ngIf=\"!templateOverride\">\n <app-input-template #ref></app-input-template>\n <ng-template\n *ngTemplateOutlet=\"ref.inputTemplate; context: context\"\n ></ng-template>\n </ng-container>\n <ng-container *ngIf=\"templateOverride\">\n <ng-container\n *ngTemplateOutlet=\"templateOverride; context: context\"\n ></ng-container>\n </ng-container>\n </div>\n</div>\n","// reusable-template.component.ts\nimport { Component, ViewChild, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"app-results-template\",\n template: `\n <ng-template\n #resultsTemplate\n let-searchResults=\"searchResults\"\n let-resultClicked=\"resultClicked\"\n let-isImage=\"isImage\"\n let-context=\"context\"\n >\n <div class=\"searchstax-search-results\">\n <a\n *ngFor=\"let searchResult of searchResults\"\n [href]=\"searchResult.url\"\n [attr.data-searchstax-unique-result-id]=\"searchResult.uniqueId\"\n (click)=\"resultClicked(searchResult, $event, context)\"\n (keyup.enter)=\"resultClicked(searchResult, $event, context)\"\n (keyup.space)=\"resultClicked(searchResult, $event, context)\"\n tabindex=\"0\"\n class=\"searchstax-result-item-link searchstax-result-item-link-wrapping\"\n >\n <div\n class=\"searchstax-search-result\"\n [ngClass]=\"{ 'has-thumbnail': searchResult.thumbnail }\"\n >\n <div\n *ngIf=\"searchResult.promoted\"\n class=\"searchstax-search-result-promoted\"\n ></div>\n <div\n *ngIf=\"searchResult.ribbon\"\n [innerHTML]=\"searchResult.ribbon\"\n class=\"searchstax-search-result-ribbon\"\n ></div>\n <img\n alt=\"\"\n *ngIf=\"searchResult.thumbnail\"\n [src]=\"searchResult.thumbnail\"\n class=\"searchstax-thumbnail\"\n />\n <div class=\"searchstax-search-result-title-container\">\n <span\n class=\"searchstax-search-result-title\"\n [innerHTML]=\"searchResult.title\"\n ></span>\n </div>\n <p\n *ngIf=\"searchResult.paths\"\n class=\"searchstax-search-result-common\"\n [innerHTML]=\"searchResult.paths\"\n ></p>\n <p\n *ngIf=\"searchResult.description\"\n [innerHTML]=\"searchResult.description\"\n class=\"searchstax-search-result-description searchstax-search-result-common\"\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 alt=\"\"\n [src]=\"unmappedField.value\"\n class=\"searchstax-result-image\"\n />\n </div>\n <div *ngIf=\"!isImage(unmappedField)\">\n <p\n class=\"searchstax-search-result-common\"\n [innerHTML]=\"unmappedField.value\"\n ></p>\n </div>\n </div>\n </div>\n </a>\n </div>\n </ng-template>\n `,\n})\nexport class ResultsTemplateComponent {\n @ViewChild(\"resultsTemplate\") resultsTemplate!: TemplateRef<any>;\n}\n","// reusable-template.component.ts\nimport { Component, ViewChild, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"app-no-results-template\",\n template: `\n <ng-template\n #noResultsTemplate\n let-metadata=\"metadata\"\n let-searchTerm=\"searchTerm\"\n let-executeSearch=\"executeSearch\"\n let-context=\"context\"\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 >&nbsp;Did you mean\n <a\n href=\"#\"\n [attr.aria-label]=\"'did you mean: ' + metadata?.spellingSuggestion\"\n class=\"searchstax-suggestion-term\"\n (click)=\"\n executeSearch(metadata?.spellingSuggestion ?? '', $event, context)\n \"\n >{{ metadata?.spellingSuggestion }}</a\n >?</span\n >\n </div>\n <ul>\n <li>\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 </li>\n <li>Lost? Click on the ‘X” in the Search Box to reset your search.</li>\n </ul>\n </ng-template>\n `,\n})\nexport class NoResultsTemplateComponent {\n @ViewChild(\"noResultsTemplate\") noResultsTemplate!: TemplateRef<any>;\n}\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() 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(public 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 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 executeSearch(term: string, event: Event, context: this): void {\n event.preventDefault();\n context.storeServiceService.searchstax.executeSearch(term);\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 <section aria-label=\"search results container\" tabindex=\"0\">\n <div\n class=\"searchstax-search-results-container\"\n id=\"searchstax-search-results-container\"\n >\n <div id=\"searchstax-result-container\">\n <div\n *ngIf=\"\n searchResults?.length === 0 &&\n searchTerm !== '' &&\n searchTerm !== '*' &&\n storeServiceService.searchstax.dataLayer.parsedData\n .firstSearchHappened &&\n !noResultsTemplate\n \"\n >\n <app-no-results-template #ref></app-no-results-template>\n <ng-template\n *ngTemplateOutlet=\"ref.noResultsTemplate; context: context\"\n ></ng-template>\n </div>\n <div\n *ngIf=\"\n searchResults?.length === 0 &&\n searchTerm !== '' &&\n searchTerm !== '*' &&\n storeServiceService.searchstax.dataLayer.parsedData\n .firstSearchHappened &&\n noResultsTemplate\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"noResultsTemplate; context: context\"\n ></ng-container>\n </div>\n\n <ng-container\n *ngIf=\"searchResults && searchResults.length && !resultsTemplate\"\n >\n <app-results-template #ref></app-results-template>\n <ng-template\n *ngTemplateOutlet=\"ref.resultsTemplate; context: context\"\n ></ng-template>\n </ng-container>\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 </section>\n</div>\n","// reusable-template.component.ts\nimport { Component, ViewChild, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"app-overview-template\",\n template: `\n <ng-template\n #feedbackTemplate\n let-searchFeedbackData=\"searchFeedbackData\"\n let-onOriginalQueryClick=\"onOriginalQueryClick\"\n let-context=\"context\"\n >\n <h2 class=\"searchstax-feedback-container\">\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 [attr.aria-label]=\"\n 'Search instead for: ' + searchFeedbackData!.originalQuery\n \"\n >{{ searchFeedbackData!.originalQuery }}</a\n >\n </div>\n </div>\n </h2>\n </ng-template>\n `,\n})\nexport class OverviewTemplateComponent {\n @ViewChild(\"feedbackTemplate\") overviewTemplate!: TemplateRef<any>;\n}\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 <app-overview-template #ref></app-overview-template>\n <ng-template\n *ngTemplateOutlet=\"ref.overviewTemplate; context: context\"\n ></ng-template>\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","// reusable-template.component.ts\nimport { Component, ViewChild, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"app-pagination-template\",\n template: `\n <ng-template\n #paginationTemplate\n let-paginationData=\"paginationData\"\n let-previousPage=\"previousPage\"\n let-nextPage=\"nextPage\"\n let-context=\"context\"\n >\n <div class=\"searchstax-pagination-container\">\n <div class=\"searchstax-pagination-content\">\n <a\n class=\"searchstax-pagination-previous\"\n [class]=\"paginationData.isFirstPage ? 'disabled' : ''\"\n (click)=\"previousPage($event, context)\"\n (keyup.enter)=\"previousPage($event, context)\"\n (keyup.space)=\"previousPage($event, context)\"\n tabindex=\"0\"\n id=\"searchstax-pagination-previous\"\n >\n &lt; 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 [class]=\"paginationData.isLastPage ? 'disabled' : ''\"\n (click)=\"nextPage($event, context)\"\n (keyup.enter)=\"nextPage($event, context)\"\n (keyup.space)=\"nextPage($event, context)\"\n tabindex=\"0\"\n id=\"searchstax-pagination-next\"\n >Next ></a\n >\n </div>\n </div>\n </ng-template>\n `,\n})\nexport class PaginationTemplateComponent {\n @ViewChild(\"paginationTemplate\") paginationTemplate!: TemplateRef<any>;\n}\n","// reusable-template.component.ts\nimport { Component, ViewChild, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"app-pagination-infinite-template\",\n template: `\n <ng-template\n #infiniteScrollTemplate\n let-paginationData=\"paginationData\"\n let-nextPage=\"nextPage\"\n let-context=\"context\"\n >\n <div class=\"searchstax-pagination-container\">\n <div class=\"searchstax-pagination-content\">\n <a\n class=\"searchstax-pagination-load-more\"\n (click)=\"nextPage($event, context)\"\n (keyup.enter)=\"nextPage($event, context)\"\n (keyup.space)=\"nextPage($event, context)\"\n tabindex=\"0\"\n >\n Load More\n </a>\n </div>\n </div>\n </ng-template>\n `,\n})\nexport class PaginationInfiniteTemplateComponent {\n @ViewChild(\"infiniteScrollTemplate\") infiniteScrollTemplate!: TemplateRef<any>;\n}\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 <ng-container\n *ngIf=\"\n paginationData?.totalResults &&\n !templateOverride &&\n !paginationData?.isInfiniteScroll\n \"\n >\n <app-pagination-template #ref></app-pagination-template>\n <ng-template\n *ngTemplateOutlet=\"ref.paginationTemplate; context: context\"\n ></ng-template>\n </ng-container>\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 <ng-container\n *ngIf=\"\n paginationData?.totalResults &&\n !infiniteScrollTemplateOverride &&\n paginationData?.totalResults !== 0 &&\n !paginationData?.isLastPage &&\n paginationData?.isInfiniteScroll\n \"\n >\n <app-pagination-infinite-template #ref></app-pagination-infinite-template>\n <ng-template\n *ngTemplateOutlet=\"ref.infiniteScrollTemplate; context: context\"\n ></ng-template>\n </ng-container>\n\n <div\n *ngIf=\"\n paginationData?.totalResults &&\n infiniteScrollTemplateOverride &&\n paginationData?.totalResults !== 0 &&\n !paginationData?.isLastPage &&\n paginationData?.isInfiniteScroll\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"infiniteScrollTemplateOverride; context: context\"\n ></ng-container>\n </div>\n</div>\n","// reusable-template.component.ts\nimport { Component, ViewChild, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"app-facet-desktop-template\",\n template: `\n <ng-template\n #templateOverrideDesktop\n let-facetsTemplateDataDesktop=\"facetsTemplateDataDesktop\"\n let-isNotDeactivated=\"isNotDeactivated\"\n let-context=\"context\"\n let-toggleFacetGroup=\"toggleFacetGroup\"\n let-facetValues=\"facetValues\"\n let-isChecked=\"isChecked\"\n let-selectFacet=\"selectFacet\"\n let-showMoreLessDesktop=\"showMoreLessDesktop\"\n >\n <div class=\"searchstax-facets-container-desktop\">\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\n class=\"searchstax-facet-title-container\"\n (click)=\"toggleFacetGroup(facet.name, context)\"\n >\n <div class=\"searchstax-facet-title\">\n {{ facet.label }}\n </div>\n <div class=\"searchstax-facet-title-arrow active\"></div>\n </div>\n <div class=\"searchstax-facet-values-container\" aria-live=\"polite\">\n <div\n *ngFor=\"let facetValue of facetValues(facet); index as key\"\n class=\"searchstax-facet-value-container\"\n [class]=\"{\n 'searchstax-facet-value-disabled': facetValue.disabled\n }\"\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 [attr.aria-label]=\"\n facetValue.value + ' ' + facetValue.count\n \"\n [disabled]=\"facetValue.disabled\"\n (click)=\"\n selectFacet(ref, $event, facetValue, true, context)\n \"\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\n class=\"searchstax-facet-show-more-container\"\n *ngIf=\"facet.hasMoreFacets\"\n >\n <div\n class=\"searchstax-facet-show-more-container\"\n (click)=\"showMoreLessDesktop($event, facet, context)\"\n (keyup.enter)=\"showMoreLessDesktop($event, facet, context)\"\n (keyup.space)=\"showMoreLessDesktop($event, facet, context)\"\n tabindex=\"0\"\n >\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 </ng-template>\n `,\n})\nexport class FacetDesktopTemplateComponent {\n @ViewChild(\"templateOverrideDesktop\")\n templateOverrideDesktop!: TemplateRef<any>;\n}\n","// reusable-template.component.ts\nimport { Component, ViewChild, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"app-facet-mobile-template\",\n template: `\n <ng-template\n #templateOverrideMobile\n let-isNotDeactivated=\"isNotDeactivated\"\n let-context=\"context\"\n let-toggleFacetGroup=\"toggleFacetGroup\"\n let-facetValues=\"facetValues\"\n let-isChecked=\"isChecked\"\n let-selectFacet=\"selectFacet\"\n let-openOverlay=\"openOverlay\"\n let-selectedFacetsCheckboxes=\"selectedFacetsCheckboxes\"\n let-unselectFacet=\"unselectFacet\"\n let-unselectAll=\"unselectAll\"\n let-facetMobileData=\"facetMobileData\"\n let-facetsTemplateDataMobile=\"facetsTemplateDataMobile\"\n let-closeOverlay=\"closeOverlay\"\n let-showMoreLessDesktop=\"showMoreLessDesktop\"\n let-showMoreLessMobile=\"showMoreLessMobile\"\n >\n <div class=\"searchstax-facets-container-mobile\">\n <div class=\"searchstax-facets-pills-container\">\n <div\n class=\"searchstax-facets-pill searchstax-facets-pill-filter-by\"\n (click)=\"openOverlay(context)\"\n >\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\">\n {{ facet.value }} ({{ facet.count }})\n </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]=\"{\n 'searchstax-show': facetMobileData(facetsTemplateDataMobile)\n ?.overlayOpened\n }\"\n >\n <div class=\"searchstax-facets-mobile-overlay-header\">\n <div class=\"searchstax-facets-mobile-overlay-header-title\">\n Filter By\n </div>\n <div\n class=\"searchstax-search-close\"\n (click)=\"closeOverlay(context)\"\n ></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]=\"{\n active: isNotDeactivated(facet.name, context)\n }\"\n >\n <div>\n <div\n class=\"searchstax-facet-title-container\"\n (click)=\"toggleFacetGroup(facet.name, context)\"\n >\n <div class=\"searchstax-facet-title\">\n {{ facet.label }}\n </div>\n <div class=\"searchstax-facet-title-arrow active\"></div>\n </div>\n <div\n class=\"searchstax-facet-values-container\"\n aria-live=\"polite\"\n >\n <div\n *ngFor=\"let facetValue of facetValues(facet); index as key\"\n class=\"searchstax-facet-value-container\"\n [class]=\"{\n 'searchstax-facet-value-disabled': facetValue.disabled\n }\"\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 [attr.aria-label]=\"\n facetValue.value + ' ' + facetValue.count\n \"\n [disabled]=\"facetValue.disabled\"\n (click)=\"\n selectFacet(ref, $event, facetValue, true, context)\n \"\n />\n </div>\n <div\n class=\"searchstax-facet-value-label\"\n (click)=\"\n selectFacet(ref, $event, facetValue, false, context)\n \"\n >\n {{ facetValue.value }}\n </div>\n <div\n class=\"searchstax-facet-value-count\"\n (click)=\"\n selectFacet(ref, $event, facetValue, false, context)\n \"\n >\n ({{ facetValue.count }})\n </div>\n </div>\n <div\n class=\"searchstax-facet-show-more-container\"\n *ngIf=\"facet.hasMoreFacets\"\n >\n <div\n class=\"searchstax-facet-show-more-container\"\n (click)=\"showMoreLessMobile($event, facet, context)\"\n (keyup.enter)=\"showMoreLessMobile($event, facet, context)\"\n (keyup.space)=\"showMoreLessMobile($event, facet, context)\"\n tabindex=\"0\"\n >\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\n class=\"searchstax-facets-mobile-overlay-done\"\n (click)=\"closeOverlay(context)\"\n >\n Done\n </button>\n </div>\n </div>\n </ng-template>\n `,\n})\nexport class FacetMobileTemplateComponent {\n @ViewChild(\"templateOverrideMobile\")\n templateOverrideMobile!: TemplateRef<any>;\n}\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 <ng-container\n *ngIf=\"\n facetsTemplateDataDesktop?.hasResultsOrExternalPromotions &&\n !templateOverrideDesktop\n \"\n >\n <app-facet-desktop-template #ref></app-facet-desktop-template>\n <ng-template\n *ngTemplateOutlet=\"ref.templateOverrideDesktop; context: context\"\n ></ng-template>\n </ng-container>\n\n <div\n *ngIf=\"\n facetsTemplateDataDesktop?.hasResultsOrExternalPromotions &&\n templateOverrideDesktop\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"templateOverrideDesktop; context: context\"\n ></ng-container>\n </div>\n\n <ng-container\n *ngIf=\"\n facetsTemplateDataMobile?.hasResultsOrExternalPromotions &&\n !templateOverrideMobile\n \"\n >\n <app-facet-mobile-template #ref></app-facet-mobile-template>\n <ng-template\n *ngTemplateOutlet=\"ref.templateOverrideMobile; context: context\"\n ></ng-template>\n </ng-container>\n\n <div\n *ngIf=\"\n facetsTemplateDataMobile?.hasResultsOrExternalPromotions &&\n templateOverrideMobile\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"templateOverrideMobile; context: context\"\n ></ng-container>\n </div>\n</div>\n","// reusable-template.component.ts\nimport { Component, ViewChild, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"app-sorting-template\",\n template: `\n <ng-template\n #sortingTemplateOverride\n let-selectedSorting=\"selectedSorting\"\n let-orderChange=\"orderChange\"\n let-context=\"context\"\n >\n <div class=\"searchstax-sorting-container\">\n <label\n class=\"searchstax-sorting-label\"\n for=\"searchstax-search-order-select\"\n >Sort By</label\n >\n <select\n id=\"searchstax-search-order-select\"\n class=\"searchstax-search-order-select\"\n [(ngModel)]=\"context.selectedSorting\"\n (change)=\"orderChange($event, context)\"\n >\n <option\n *ngFor=\"let sortOption of context.sortingData.sortOptions\"\n [value]=\"sortOption.key\"\n >\n {{ sortOption.value }}\n </option>\n </select>\n </div>\n </ng-template>\n `,\n})\nexport class SortingTemplateComponent {\n @ViewChild(\"sortingTemplateOverride\") sortingTemplate!: TemplateRef<any>;\n}\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 <ng-container\n *ngIf=\"\n sortingData &&\n sortingData?.searchExecuted &&\n sortingData?.hasResultsOrExternalPromotions &&\n !templateOverride\n \"\n >\n <app-sorting-template #ref></app-sorting-template>\n <ng-template\n *ngTemplateOutlet=\"ref.sortingTemplate; context: context\"\n ></ng-template>\n </ng-container>\n\n <div\n *ngIf=\"\n sortingData &&\n sortingData?.searchExecuted &&\n sortingData?.hasResultsOrExternalPromotions &&\n templateOverride\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"templateOverride; context: context\"\n ></ng-container>\n </div>\n</div>\n","// reusable-template.component.ts\nimport { Component, ViewChild, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"app-answer-template\",\n template: `\n <ng-template\n #answerTemplate\n let-answerData=\"answerData\"\n let-showMore=\"showMore\"\n let-context=\"context\"\n >\n <div class=\"searchstax-answer-wrap\">\n <div class=\"searchstax-answer-icon\"></div>\n <div>\n <div\n [class]=\"{\n 'searchstax-answer-container': true,\n 'searchstax-answer-show-more': answerData.showMoreButtonVisible\n }\"\n >\n <div class=\"searchstax-answer-title\">Smart Answers</div>\n <div\n class=\"searchstax-answer-error\"\n *ngIf=\"answerData.shouldShowAnswerError\"\n [innerHTML]=\"answerData.answerErrorMessage\"\n ></div>\n <div\n class=\"searchstax-answer-description\"\n [innerHTML]=\"answerData.fullAnswerFormatted\"\n ></div>\n <div\n *ngIf=\"answerData.answerLoading\"\n class=\"searchstax-answer-loading\"\n ></div>\n </div>\n <div\n *ngIf=\"answerData.showMoreButtonVisible\"\n class=\"searchstax-answer-load-more-button-container\"\n >\n <button\n class=\"searchstax-answer-load-more-button\"\n (click)=\"showMore($event, context)\"\n >\n Read More\n </button>\n </div>\n </div>\n <div class=\"searchstax-answer-footer\">\n <div id=\"feedbackWidgetContainer\"></div>\n <div class=\"searchstax-lightweight-widget-separator-inline\"></div>\n <p class=\"searchstax-disclaimer\">Generative AI is Experimental</p>\n </div>\n </div>\n </ng-template>\n `,\n})\nexport class AnswerTemplateComponent {\n @ViewChild(\"answerTemplate\") answerTemplate!: TemplateRef<any>;\n}\n","import { Component, Input, OnInit, TemplateRef } from \"@angular/core\";\nimport { IFeedbackWidgetProperties, ISearchstaxAnswerData } from \"@searchstax-inc/searchstudio-ux-js\";\nimport { StoreServiceService } from \"../../services/store-service.service\";\n\n@Component({\n selector: \"app-searchstax-answer\",\n templateUrl: \"./searchstax-search-answer.component.html\",\n styles: [],\n})\nexport class SearchstaxSearchAnswerWidget implements OnInit {\n @Input() templateOverride?: TemplateRef<any>;\n @Input() feedbackwidget?: IFeedbackWidgetProperties;\n @Input() showShowMoreAfterWordCount?: number;\n\n answerData: null | ISearchstaxAnswerData = 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.addAnswerWidget('searchstax-answer-container' + this.rand, {showShowMoreAfterWordCount: this.showShowMoreAfterWordCount, feedbackwidget: this.feedbackwidget});\n }, 0);\n } else {\n throw Error(\"Searchstax instance needs to be passed via props\");\n }\n }\n\n showMore(event: Event, context: this) {\n if (context.storeServiceService.searchstax) {\n context.storeServiceService.searchstax.answerWidget?.showMore(event)\n }\n }\n\n\n attachObservables() {\n this.storeServiceService.searchstax.dataLayer.$answerData.subscribe(\n (answerData: null | ISearchstaxAnswerData) => {\n this.answerData = answerData;\n }\n );\n }\n}\n","<div [id]=\"'searchstax-answer-container' + rand\">\n <div\n *ngIf=\"\n answerData &&\n answerData?.searchExecuted &&\n answerData.shouldShowAnswer &&\n !templateOverride\n \"\n >\n <app-answer-template #ref></app-answer-template>\n <ng-template\n [ngTemplateOutlet]=\"ref.answerTemplate\"\n [ngTemplateOutletContext]=\"context\"\n ></ng-template>\n </div>\n <div\n *ngIf=\"\n answerData &&\n answerData?.searchExecuted &&\n answerData.shouldShowAnswer &&\n templateOverride\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"templateOverride; context: context\"\n ></ng-container>\n </div>\n</div>\n","// reusable-template.component.ts\nimport { Component, ViewChild, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"app-related-template\",\n template: `\n <ng-template\n #relatedTemplate\n let-rand=\"rand\"\n let-relatedData=\"relatedData\"\n let-executeSearch=\"executeSearch\"\n let-context=\"context\"\n >\n <div\n class=\"searchstax-related-searches-container\"\n [id]=\"'searchstax-related-searches-container' + rand\"\n >\n Related searches: <span id=\"searchstax-related-searches\"></span>\n <span\n class=\"searchstax-related-search\"\n *ngIf=\"relatedData.relatedSearches\"\n >\n <span\n *ngFor=\"let related of relatedData.relatedSearches\"\n (click)=\"executeSearch(related, context)\"\n (keyup.enter)=\"executeSearch(related, context)\"\n (keyup.space)=\"executeSearch(related, context)\"\n tabindex=\"0\"\n class=\"searchstax-related-search searchstax-related-search-item\"\n [attr.aria-label]=\"'Related search: ' + related.related_search\"\n >\n {{ related.related_search }}<span *ngIf=\"!related.last\">,</span>\n </span>\n </span>\n </div>\n </ng-template>\n `,\n})\nexport class RelatedTemplateComponent {\n @ViewChild(\"relatedTemplate\") relatedTemplate!: TemplateRef<any>;\n}\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","<ng-container\n *ngIf=\"\n relatedData &&\n relatedData?.searchExecuted &&\n relatedData?.hasRelatedSearches &&\n !templateOverride\n \"\n>\n <app-related-template #ref></app-related-template>\n <ng-template\n *ngTemplateOutlet=\"ref.relatedTemplate; context: context\"\n ></ng-template>\n</ng-container>\n\n<div\n *ngIf=\"\n relatedData &&\n relatedData?.searchExecuted &&\n relatedData?.hasRelatedSearches &&\n templateOverride\n \"\n>\n <ng-container\n *ngTemplateOutlet=\"templateOverride; context: context\"\n ></ng-container>\n</div>\n","// reusable-template.component.ts\nimport { Component, ViewChild, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"app-external-template\",\n template: `\n <ng-template\n #externalPromotionsTemplate\n let-context=\"context\"\n let-externalPromotionsData=\"externalPromotionsData\"\n let-trackClick=\"trackClick\"\n >\n <div\n class=\"searchstax-external-promotions-container\"\n id=\"searchstax-external-promotions-container\"\n >\n <div\n class=\"searchstax-external-promotion searchstax-search-result\"\n *ngFor=\"\n let externalPromotion of externalPromotionsData.externalPromotions\n \"\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\">{{\n externalPromotion.name\n }}</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\n *ngIf=\"externalPromotion.url\"\n class=\"searchstax-search-result-description searchstax-search-result-common\"\n >\n {{ externalPromotion.url }}\n </p>\n </div>\n </div>\n </ng-template>\n `,\n})\nexport class ExternalPromotionsTemplateComponent {\n @ViewChild(\"externalPromotionsTemplate\") externalPromotionsTemplate!: TemplateRef<any>;\n}\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 <ng-container\n *ngIf=\"\n externalPromotionsData &&\n externalPromotionsData?.searchExecuted &&\n externalPromotionsData?.hasExternalPromotions &&\n !templateOverride\n \"\n >\n <app-external-template #ref></app-external-template>\n <ng-template\n *ngTemplateOutlet=\"ref.externalPromotionsTemplate; context: context\"\n ></ng-template>\n </ng-container>\n <div\n *ngIf=\"\n externalPromotionsData &&\n externalPromotionsData?.searchExecuted &&\n externalPromotionsData?.hasExternalPromotions &&\n templateOverride\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"templateOverride; context: context\"\n ></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 { SearchstaxSearchAnswerWidget } from \"./components/searchstax-search-answer/searchstax-search-answer.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\";\nimport { SearchstaxSearchLocationWidget } from \"./components/searchstax-search-location/searchstax-search-location.component\";\nimport { FormsModule } from \"@angular/forms\";\nimport { AnswerTemplateComponent } from \"./components/templates/searchstax-search-answer-template\";\nimport { InputTemplateComponent } from \"./components/templates/searchstax-search-input-template\";\nimport { OverviewTemplateComponent } from \"./components/templates/searchstax-search-overview-template\";\nimport { LocationTemplateComponent } from \"./components/templates/searchstax-search-location-template\";\nimport { PaginationTemplateComponent } from \"./components/templates/searchstax-search-pagination-template\";\nimport { PaginationInfiniteTemplateComponent } from \"./components/templates/searchstax-search-pagination-infinite-template\";\nimport { ResultsTemplateComponent } from \"./components/templates/searchstax-search-results-template\";\nimport { NoResultsTemplateComponent } from \"./components/templates/searchstax-search-no-results-template\";\nimport { ExternalPromotionsTemplateComponent } from \"./components/templates/searchstax-search-external-template\";\nimport { SortingTemplateComponent } from \"./components/templates/searchstax-search-sorting-template\";\nimport { RelatedTemplateComponent } from \"./components/templates/searchstax-search-related-template\";\nimport { FacetMobileTemplateComponent } from \"./components/templates/searchstax-search-facet-mobile-template\";\nimport { FacetDesktopTemplateComponent } from \"./components/templates/searchstax-search-facet-desktop-template\";\n\n@NgModule({\n declarations: [\n SearchstaxWrapper,\n SearchstaxInputWidget,\n SearchstaxResultsWidget,\n SearchstaxSearchFeedbackWidget,\n SearchstaxSearchPaginationWidget,\n SearchstaxSearchFacetsWidget,\n SearchstaxSearchSortingWidget,\n SearchstaxSearchRelatedSearchesWidget,\n SearchstaxSearchExternalPromotionsWidget,\n SearchstaxSearchAnswerWidget,\n SearchstaxSearchLocationWidget,\n AnswerTemplateComponent,\n OverviewTemplateComponent,\n InputTemplateComponent,\n LocationTemplateComponent,\n PaginationTemplateComponent,\n PaginationInfiniteTemplateComponent,\n ResultsTemplateComponent,\n NoResultsTemplateComponent,\n ExternalPromotionsTemplateComponent,\n SortingTemplateComponent,\n RelatedTemplateComponent,\n FacetDesktopTemplateComponent,\n FacetMobileTemplateComponent\n ],\n imports: [CommonModule, FormsModule],\n exports: [\n SearchstaxWrapper,\n SearchstaxInputWidget,\n SearchstaxResultsWidget,\n SearchstaxSearchFeedbackWidget,\n SearchstaxSearchPaginationWidget,\n SearchstaxSearchFacetsWidget,\n SearchstaxSearchSortingWidget,\n SearchstaxSearchRelatedSearchesWidget,\n SearchstaxSearchExternalPromotionsWidget,\n SearchstaxSearchAnswerWidget,\n SearchstaxSearchLocationWidget,\n AnswerTemplateComponent,\n OverviewTemplateComponent,\n InputTemplateComponent,\n LocationTemplateComponent,\n PaginationTemplateComponent,\n PaginationInfiniteTemplateComponent,\n ResultsTemplateComponent,\n NoResultsTemplateComponent,\n ExternalPromotionsTemplateComponent,\n SortingTemplateComponent,\n RelatedTemplateComponent,\n FacetDesktopTemplateComponent,\n FacetMobileTemplateComponent\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-answer/searchstax-search-answer.component';\nexport * from './lib/components/searchstax-search-location/searchstax-search-location.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';\nexport * from './lib/components/templates/searchstax-search-answer-template';\nexport * from './lib/components/templates/searchstax-search-overview-template';\nexport * from './lib/components/templates/searchstax-search-input-template';\nexport * from './lib/components/templates/searchstax-search-location-template';\nexport * from './lib/components/templates/searchstax-search-pagination-template';\nexport * from './lib/components/templates/searchstax-search-pagination-infinite-template';\nexport * from './lib/components/templates/searchstax-search-results-template';\nexport * from './lib/components/templates/searchstax-search-no-results-template';\nexport * from './lib/components/templates/searchstax-search-external-template';\nexport * from './lib/components/templates/searchstax-search-sorting-template';\nexport * from './lib/components/templates/searchstax-search-related-template';\nexport * from './lib/components/templates/searchstax-search-facet-desktop-template';\nexport * from './lib/components/templates/searchstax-search-facet-mobile-template';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.StoreServiceService","i2","i3.LocationTemplateComponent","i2.SearchstaxSearchLocationWidget","i3.InputTemplateComponent","i3.ResultsTemplateComponent","i4.NoResultsTemplateComponent","i3.OverviewTemplateComponent","i3.PaginationTemplateComponent","i4.PaginationInfiniteTemplateComponent","i3.FacetDesktopTemplateComponent","i4.FacetMobileTemplateComponent","i3.SortingTemplateComponent","i3.AnswerTemplateComponent","i3.RelatedTemplateComponent","i3.ExternalPromotionsTemplateComponent"],"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/templates/SearchstaxLocationWidgetTemplateConfig.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/templates/searchstax-search-location-template.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-location/searchstax-search-location.component.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-location/searchstax-search-location.component.html","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/templates/searchstax-search-input-template.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/templates/searchstax-search-results-template.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/templates/searchstax-search-no-results-template.ts","../../../../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/templates/searchstax-search-overview-template.ts","../../../../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/templates/searchstax-search-pagination-template.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/templates/searchstax-search-pagination-infinite-template.ts","../../../../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/templates/searchstax-search-facet-desktop-template.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/templates/searchstax-search-facet-mobile-template.ts","../../../../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/templates/searchstax-search-sorting-template.ts","../../../../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/templates/searchstax-search-answer-template.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-answer/searchstax-search-answer.component.ts","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/searchstax-search-answer/searchstax-search-answer.component.html","../../../../projects/searchstax-inc/searchstudio-ux-angular/src/lib/components/templates/searchstax-search-related-template.ts","../../../../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/templates/searchstax-search-external-template.ts","../../../../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() model = '';\n @Input() searchURL: string = '';\n @Input() suggesterURL: string = '';\n @Input() trackApiKey: string = '';\n @Input() searchAuth: string = '';\n @Input() sessionId?: string;\n @Input() analyticsBaseUrl: string = '';\n @Input() analyticsSrc: string = '';\n @Input() questionURL: 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 }\n\n ngOnInit(): void {\n if (this.beforeSearch) {\n this.hooks.beforeSearch = this.beforeSearch;\n }\n if (this.afterSearch) {\n this.hooks.afterSearch = this.afterSearch;\n }\n this.storeServiceService.searchstax.initialize({\n language: this.language,\n model: this.model,\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 analyticsBaseUrl: this.analyticsBaseUrl,\n analyticsSrc: this.analyticsSrc,\n sessionId: this.sessionId,\n questionURL: this.questionURL\n })\n\n this.initialized.emit(this.storeServiceService.searchstax)\n }\n\n}\n","import { ISearchstaxLocation } from \"@searchstax-inc/searchstudio-ux-js\";\n\n//CUT START\n\n\nconst config = {\n appId: \"APP_ID\",\n relatedSearchesAPIKey: \"KEY\"\n}\n\nconst locationWidgetConfig = {\n locationDecode: (term: string): Promise<ISearchstaxLocation> => {\n return new Promise((resolve) => {\n // make a request to google geocoding API to retrieve lat, lon and address\n\n const geocodingAPIKey = \"GEOCODING_API_KEY\";\n const geocodingURL = `https://maps.googleapis.com/maps/api/geocode/json?address=${encodeURIComponent(\n term\n )}&key=${geocodingAPIKey}`;\n fetch(geocodingURL)\n .then((response) => response.json())\n .then((data) => {\n if (data.status === \"OK\" && data.results.length > 0) {\n const result = data.results[0];\n const location = {\n lat: result.geometry.location.lat,\n lon: result.geometry.location.lng,\n address: result.formatted_address,\n };\n resolve(location);\n } else {\n resolve({\n address: undefined,\n lat: undefined,\n lon: undefined,\n error: true,\n });\n }\n })\n .catch(() => {\n resolve({\n address: undefined,\n lat: undefined,\n lon: undefined,\n error: true,\n });\n });\n });\n },\n locationDecodeCoordinatesToAddress: (lat: string, lon: string): Promise<ISearchstaxLocation> => {\n return new Promise((resolve) => {\n fetch(\n `https://geocoding-staging.searchstax.co/reverse?location=${lat},${lon}&components=country:US&app_id=${config.appId}`,\n {\n method: \"GET\",\n headers: {\n Authorization: `Token ${config.relatedSearchesAPIKey}`,\n },\n }\n )\n .then((response) => response.json())\n .then((data) => {\n if (data.status === \"OK\" && data.results.length > 0) {\n const result = data.results[0];\n resolve({\n address: result.formatted_address,\n lat: lat,\n lon: lon,\n error: false,\n });\n } else {\n resolve({\n address: undefined,\n lat: lat,\n lon: lon,\n error: true,\n });\n }\n })\n .catch(() => {\n resolve({\n address: undefined,\n lat: lat,\n lon: lon,\n error: true,\n });\n });\n });\n },\n locationSearchEnabled: false,\n locationValuesOverride: {\n locationDistanceEnabled: true,\n filterValues: [\"any\", \"1000\"],\n filterUnit: \"miles\",\n locationFilterDefaultValue: \"any\"\n },\n }\n//CUT END\n export {locationWidgetConfig}","// reusable-template.component.ts\nimport { Component, ViewChild, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"app-location-template\",\n template: `\n <ng-template\n #locationTemplate\n let-context=\"context\"\n let-locationData=\"locationData\"\n let-inputValue=\"inputValue\"\n let-selectValue=\"selectValue\"\n let-radiusChange=\"radiusChange\"\n let-inputChange=\"inputChange\"\n let-locationBlur=\"locationBlur\"\n let-locationError=\"locationError\"\n let-getCurrentLocation=\"getCurrentLocation\"\n >\n <div\n class=\"searchstax-location-input-container\"\n data-test-id=\"searchstax-location-input-container\"\n *ngIf=\"locationData\"\n >\n <div class=\"searchstax-location-input-wrapper\">\n <span class=\"searchstax-location-input-label\">NEAR</span>\n <div class=\"searchstax-location-input-wrapper-inner\">\n <input\n type=\"text\"\n id=\"searchstax-location-input\"\n class=\"searchstax-location-input\"\n [ngClass]=\"{\n 'searchstax-input-location-error': locationError\n }\"\n placeholder=\"Zip, Postal Code or City...\"\n aria-label=\"Search Location Input\"\n data-test-id=\"searchstax-location-input\"\n [value]=\"inputValue\"\n (change)=\"inputChange($event, context)\"\n (blur)=\"locationBlur(context)\"\n />\n <button\n (click)=\"getCurrentLocation(context)\"\n class=\"searchstax-get-current-location-button\"\n >\n Use my current location\n </button>\n </div>\n <span\n *ngIf=\"locationData.shouldShowLocationDistanceDropdown\"\n class=\"searchstax-location-input-label\"\n >WITHIN</span\n >\n <select\n *ngIf=\"locationData.shouldShowLocationDistanceDropdown\"\n id=\"searchstax-location-radius-select\"\n class=\"searchstax-location-radius-select\"\n aria-label=\"Search Location Radius Select\"\n data-test-id=\"searchstax-location-radius-select\"\n (change)=\"radiusChange($event, context)\"\n [(ngModel)]=\"context.selectValue\"\n >\n <option\n *ngFor=\"let value of locationData.locationSearchDistanceValues\"\n [value]=\"value.value\"\n >\n {{ value.label }}\n </option>\n </select>\n </div>\n </div>\n </ng-template>\n `,\n})\nexport class LocationTemplateComponent {\n @ViewChild(\"locationTemplate\") locationTemplate!: TemplateRef<any>;\n}\n","import { Component, Input, OnInit, TemplateRef } from \"@angular/core\";\nimport {\n ISearchstaxLocation,\n ISearchstaxLocationRenderData,\n} from \"@searchstax-inc/searchstudio-ux-js\";\nimport { StoreServiceService } from \"../../services/store-service.service\";\n\n@Component({\n selector: \"app-searchstax-search-location\",\n templateUrl: \"./searchstax-search-location.component.html\",\n styles: [],\n})\nexport class SearchstaxSearchLocationWidget implements OnInit {\n @Input() templateOverride?: TemplateRef<any>;\n @Input() locationSearchEnabled?: boolean;\n @Input() locationValuesOverride?: {\n locationDistanceEnabled: boolean; // if set to true location distance dropdown will be shown\n filterValues: string[]; // array of location filter values to override the default ones\n filterUnit: string; // unit of the location filter to override the default one\n }\n @Input() locationDecode!: (\n locationName: string\n ) => Promise<ISearchstaxLocation>;\n @Input() locationDecodeCoordinatesToAddress!: (\n lat: string,\n lon: string\n ) => Promise<ISearchstaxLocation>;\n\n locationData: null | ISearchstaxLocationRenderData = null;\n inputValue: string = \"\";\n selectValue: string | number = \"\";\n locationAdded = false;\n locationError = false;\n rand = Math.random();\n\n context = this;\n constructor(private storeServiceService: StoreServiceService) {}\n\n ngOnInit(): void {\n if (this.storeServiceService.searchstax) {\n this.attachObservables();\n setTimeout(() => {\n this.addWidget();\n }, 100);\n } else {\n throw Error(\"Searchstax instance needs to be passed via props\");\n }\n }\n\n locationBlur(context: this) {\n context.storeServiceService.searchstax.searchLocationWidget?.triggerGeocoder(\n context.inputValue\n );\n }\n radiusChange(e: Event, context: this) {\n const target = e.target as HTMLSelectElement;\n context.selectValue = target.value;\n context.storeServiceService.searchstax.searchLocationWidget?.setRadiusValue(\n context.selectValue\n );\n }\n inputChange(e: Event, context: this) {\n const target = e.target as HTMLInputElement;\n context.inputValue = target.value;\n }\n\n getCurrentLocation(context: this){\n context.storeServiceService.searchstax.searchLocationWidget?.getCurrentLocation();\n }\n\n addWidget() {\n if (\n !this.locationAdded &&\n this.storeServiceService.searchstax.routerHelper\n ) {\n this.locationAdded = true;\n this.storeServiceService.searchstax.addSearchLocationWidget(\n \"searchstax-location-container\" + this.rand,\n {\n hooks: {\n locationDecode: this.locationDecode,\n locationDecodeCoordinatesToAddress:\n this.locationDecodeCoordinatesToAddress,\n },\n locationSearchEnabled: this.locationSearchEnabled,\n locationValuesOverride: this.locationValuesOverride,\n }\n );\n }\n }\n\n attachObservables() {\n this.storeServiceService.searchstax.dataLayer.$locationWidgetTemplateData.subscribe(\n (sortingData: null | ISearchstaxLocationRenderData) => {\n this.locationData = sortingData;\n }\n );\n\n this.storeServiceService.searchstax.dataLayer.$searchObject.subscribe(\n (result) => {\n this.inputValue = result.location.address ?? \"\";\n this.selectValue = result.location.radius || \"\";\n }\n );\n\n this.storeServiceService.searchstax.dataLayer.$locationError.subscribe(\n (locationError: boolean) => {\n this.locationError = locationError;\n }\n );\n\n this.storeServiceService.searchstax.dataLayer.$searchLocationChange.subscribe(\n (location: string) => {\n this.inputValue = location;\n }\n );\n\n this.storeServiceService.searchstax.dataLayer.$searchRadiusChange.subscribe(\n (radius: string | number) => {\n this.selectValue = radius;\n }\n );\n }\n}\n","<div\n [id]=\"'searchstax-location-container' + rand\"\n class=\"searchstax-location-container\"\n>\n <div *ngIf=\"!!locationData && !templateOverride\">\n <app-location-template #ref></app-location-template>\n <ng-template\n *ngTemplateOutlet=\"ref.locationTemplate; context: context\"\n ></ng-template>\n </div>\n\n <div *ngIf=\"!!locationData && templateOverride\">\n <ng-container\n *ngTemplateOutlet=\"templateOverride; context: context\"\n ></ng-container>\n </div>\n</div>\n","// reusable-template.component.ts\nimport { Component, ViewChild, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"app-input-template\",\n template: `\n <ng-template\n #inputTemplate\n let-suggestions=\"suggestions\"\n let-onMouseLeave=\"onMouseLeave\"\n let-onMouseOver=\"onMouseOver\"\n let-onMouseClick=\"onMouseClick\"\n let-context=\"context\"\n let-locationWidgetConfig=\"locationWidgetConfig\"\n >\n <div 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 aria-label=\"search\"\n />\n <div\n class=\"searchstax-autosuggest-container\"\n [ngClass]=\"{ hidden: suggestions.length === 0 }\"\n (mouseleave)=\"onMouseLeave(context)\"\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 tabindex=\"0\"\n (click)=\"onMouseClick($event, context)\"\n ></div>\n </div>\n </div>\n </div>\n <app-searchstax-search-location\n [locationDecode]=\"locationWidgetConfig.locationDecode\"\n [locationDecodeCoordinatesToAddress]=\"\n locationWidgetConfig.locationDecodeCoordinatesToAddress\n \"\n [locationSearchEnabled]=\"locationWidgetConfig.locationSearchEnabled\"\n [locationValuesOverride]=\"locationWidgetConfig.locationValuesOverride\"\n >\n </app-searchstax-search-location>\n <button\n class=\"searchstax-spinner-icon\"\n id=\"searchstax-search-input-action-button\"\n role=\"button\"\n aria-label=\"search\"\n ></button>\n </ng-template>\n `,\n})\nexport class InputTemplateComponent {\n @ViewChild(\"inputTemplate\") inputTemplate!: TemplateRef<any>;\n}\n","import { Component, Input, OnInit, TemplateRef } from \"@angular/core\";\nimport {\n ISearchstaxLocation,\n ISearchstaxSEARCHTERM,\n ISearchstaxSearchInputRenderData,\n ISearchstaxSuggestProps,\n ISearchstaxSuggestResponse,\n ISearchstaxSuggestion,\n} from \"@searchstax-inc/searchstudio-ux-js\";\nimport { StoreServiceService } from \"../../services/store-service.service\";\nimport { locationWidgetConfig } from \"../templates/SearchstaxLocationWidgetTemplateConfig\";\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?: (\n result: ISearchstaxSuggestResponse\n ) => ISearchstaxSuggestResponse;\n @Input() beforeAutosuggest?: (\n props: ISearchstaxSuggestProps\n ) => ISearchstaxSuggestProps | null;\n @Input() searchInputId = \"\";\n @Input() suggestAfterMinChars?: number;\n @Input() templateOverride?: TemplateRef<any>;\n\n hooks: { [key: string]: (prop: any) => any } = {};\n suggestions: ISearchstaxSuggestion[] = [];\n context = this;\n templateData: null | ISearchstaxSearchInputRenderData = null;\n locationWidgetConfig = locationWidgetConfig;\n\n constructor(private storeServiceService: StoreServiceService) {}\n\n ngOnInit(): void {\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(\n \"searchstax-input-container\",\n {\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 );\n this.storeServiceService.searchstax.dataLayer.setInputTemplateRendered(\n true\n );\n }, 100);\n } else {\n throw Error(\"Searchstax instance needs to be passed via props\");\n }\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(\n suggestion\n );\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 this.storeServiceService.searchstax.dataLayer.$inputWidgetTemplateData.subscribe(\n (data: null | ISearchstaxSearchInputRenderData) => {\n this.templateData = data;\n }\n );\n }\n}\n","<div id=\"searchstax-input-container\">\n <div\n class=\"searchstax-search-input-container searchstax-search-input-container-new\"\n [class]=\"{\n 'searchstax-alternative-render': !!templateData?.locationEnabled\n }\"\n >\n <ng-container *ngIf=\"!templateOverride\">\n <app-input-template #ref></app-input-template>\n <ng-template\n *ngTemplateOutlet=\"ref.inputTemplate; context: context\"\n ></ng-template>\n </ng-container>\n <ng-container *ngIf=\"templateOverride\">\n <ng-container\n *ngTemplateOutlet=\"templateOverride; context: context\"\n ></ng-container>\n </ng-container>\n </div>\n</div>\n","// reusable-template.component.ts\nimport { Component, ViewChild, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"app-results-template\",\n template: `\n <ng-template\n #resultsTemplate\n let-searchResults=\"searchResults\"\n let-resultClicked=\"resultClicked\"\n let-isImage=\"isImage\"\n let-context=\"context\"\n >\n <div class=\"searchstax-search-results\">\n <a\n *ngFor=\"let searchResult of searchResults\"\n [href]=\"searchResult.url\"\n [attr.data-searchstax-unique-result-id]=\"searchResult.uniqueId\"\n (click)=\"resultClicked(searchResult, $event, context)\"\n (keyup.enter)=\"resultClicked(searchResult, $event, context)\"\n (keyup.space)=\"resultClicked(searchResult, $event, context)\"\n [attr.aria-labelledby]=\"'title-' + searchResult.uniqueId\"\n tabindex=\"0\"\n class=\"searchstax-result-item-link searchstax-result-item-link-wrapping\"\n >\n <div\n class=\"searchstax-search-result\"\n [ngClass]=\"{ 'has-thumbnail': searchResult.thumbnail }\"\n >\n <div\n *ngIf=\"searchResult.promoted\"\n class=\"searchstax-search-result-promoted\"\n ></div>\n <div\n *ngIf=\"searchResult.ribbon\"\n [innerHTML]=\"searchResult.ribbon\"\n class=\"searchstax-search-result-ribbon\"\n ></div>\n <img\n alt=\"\"\n *ngIf=\"searchResult.thumbnail\"\n [src]=\"searchResult.thumbnail\"\n class=\"searchstax-thumbnail\"\n />\n <div class=\"searchstax-search-result-title-container\">\n <span\n class=\"searchstax-search-result-title\"\n [id]=\"'title-' + searchResult.uniqueId\"\n [innerHTML]=\"searchResult.title\"\n ></span>\n </div>\n <p\n *ngIf=\"searchResult.paths\"\n class=\"searchstax-search-result-common\"\n [innerHTML]=\"searchResult.paths\"\n ></p>\n <p\n *ngIf=\"searchResult.description\"\n [innerHTML]=\"searchResult.description\"\n class=\"searchstax-search-result-description searchstax-search-result-common\"\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 alt=\"\"\n [src]=\"unmappedField.value\"\n class=\"searchstax-result-image\"\n />\n </div>\n <div *ngIf=\"!isImage(unmappedField)\">\n <p\n class=\"searchstax-search-result-common\"\n [innerHTML]=\"unmappedField.value\"\n ></p>\n </div>\n </div>\n </div>\n </a>\n </div>\n </ng-template>\n `,\n})\nexport class ResultsTemplateComponent {\n @ViewChild(\"resultsTemplate\") resultsTemplate!: TemplateRef<any>;\n}\n","// reusable-template.component.ts\nimport { Component, ViewChild, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"app-no-results-template\",\n template: `\n <ng-template\n #noResultsTemplate\n let-metadata=\"metadata\"\n let-searchTerm=\"searchTerm\"\n let-executeSearch=\"executeSearch\"\n let-context=\"context\"\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 >&nbsp;Did you mean\n <a\n href=\"#\"\n [attr.aria-label]=\"'did you mean: ' + metadata?.spellingSuggestion\"\n class=\"searchstax-suggestion-term\"\n (click)=\"\n executeSearch(metadata?.spellingSuggestion ?? '', $event, context)\n \"\n >{{ metadata?.spellingSuggestion }}</a\n >?</span\n >\n </div>\n <ul>\n <li>\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 </li>\n <li>Lost? Click on the ‘X” in the Search Box to reset your search.</li>\n </ul>\n </ng-template>\n `,\n})\nexport class NoResultsTemplateComponent {\n @ViewChild(\"noResultsTemplate\") noResultsTemplate!: TemplateRef<any>;\n}\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() renderMethod?: \"infiniteScroll\" | \"pagination\";\n @Input() resultsPerPage?: number;\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(public 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 renderMethod: this.renderMethod ?? \"pagination\",\n resultsPerPage: this.resultsPerPage,\n }\n );\n }, 0);\n } else {\n throw Error('Searchstax instance needs to be passed via props');\n }\n }\n\n executeSearch(term: string, event: Event, context: this): void {\n event.preventDefault();\n context.storeServiceService.searchstax.executeSearch(term);\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 <section aria-label=\"search results container\" tabindex=\"0\">\n <div\n class=\"searchstax-search-results-container\"\n id=\"searchstax-search-results-container\"\n >\n <div id=\"searchstax-result-container\">\n <div\n *ngIf=\"\n searchResults?.length === 0 &&\n searchTerm !== '' &&\n searchTerm !== '*' &&\n storeServiceService.searchstax.dataLayer.parsedData\n .firstSearchHappened &&\n !noResultsTemplate\n \"\n >\n <app-no-results-template #ref></app-no-results-template>\n <ng-template\n *ngTemplateOutlet=\"ref.noResultsTemplate; context: context\"\n ></ng-template>\n </div>\n <div\n *ngIf=\"\n searchResults?.length === 0 &&\n searchTerm !== '' &&\n searchTerm !== '*' &&\n storeServiceService.searchstax.dataLayer.parsedData\n .firstSearchHappened &&\n noResultsTemplate\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"noResultsTemplate; context: context\"\n ></ng-container>\n </div>\n\n <ng-container\n *ngIf=\"searchResults && searchResults.length && !resultsTemplate\"\n >\n <app-results-template #ref></app-results-template>\n <ng-template\n *ngTemplateOutlet=\"ref.resultsTemplate; context: context\"\n ></ng-template>\n </ng-container>\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 </section>\n</div>\n","// reusable-template.component.ts\nimport { Component, ViewChild, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"app-overview-template\",\n template: `\n <ng-template\n #feedbackTemplate\n let-searchFeedbackData=\"searchFeedbackData\"\n let-onOriginalQueryClick=\"onOriginalQueryClick\"\n let-context=\"context\"\n >\n <h2 class=\"searchstax-feedback-container\">\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 [attr.aria-label]=\"\n 'Search instead for: ' + searchFeedbackData!.originalQuery\n \"\n >{{ searchFeedbackData!.originalQuery }}</a\n >\n </div>\n </div>\n </h2>\n </ng-template>\n `,\n})\nexport class OverviewTemplateComponent {\n @ViewChild(\"feedbackTemplate\") overviewTemplate!: TemplateRef<any>;\n}\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 <app-overview-template #ref></app-overview-template>\n <ng-template\n *ngTemplateOutlet=\"ref.overviewTemplate; context: context\"\n ></ng-template>\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","// reusable-template.component.ts\nimport { Component, ViewChild, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"app-pagination-template\",\n template: `\n <ng-template\n #paginationTemplate\n let-paginationData=\"paginationData\"\n let-previousPage=\"previousPage\"\n let-nextPage=\"nextPage\"\n let-context=\"context\"\n >\n <div class=\"searchstax-pagination-container\">\n <div class=\"searchstax-pagination-content\">\n <a\n class=\"searchstax-pagination-previous\"\n [class]=\"paginationData.isFirstPage ? 'disabled' : ''\"\n (click)=\"previousPage($event, context)\"\n (keyup.enter)=\"previousPage($event, context)\"\n (keyup.space)=\"previousPage($event, context)\"\n tabindex=\"0\"\n id=\"searchstax-pagination-previous\"\n >\n &lt; 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 [class]=\"paginationData.isLastPage ? 'disabled' : ''\"\n (click)=\"nextPage($event, context)\"\n (keyup.enter)=\"nextPage($event, context)\"\n (keyup.space)=\"nextPage($event, context)\"\n tabindex=\"0\"\n id=\"searchstax-pagination-next\"\n >Next ></a\n >\n </div>\n </div>\n </ng-template>\n `,\n})\nexport class PaginationTemplateComponent {\n @ViewChild(\"paginationTemplate\") paginationTemplate!: TemplateRef<any>;\n}\n","// reusable-template.component.ts\nimport { Component, ViewChild, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"app-pagination-infinite-template\",\n template: `\n <ng-template\n #infiniteScrollTemplate\n let-paginationData=\"paginationData\"\n let-nextPage=\"nextPage\"\n let-context=\"context\"\n >\n <div class=\"searchstax-pagination-container\">\n <div class=\"searchstax-pagination-content\">\n <a\n class=\"searchstax-pagination-load-more\"\n (click)=\"nextPage($event, context)\"\n (keyup.enter)=\"nextPage($event, context)\"\n (keyup.space)=\"nextPage($event, context)\"\n tabindex=\"0\"\n >\n Load More\n </a>\n </div>\n </div>\n </ng-template>\n `,\n})\nexport class PaginationInfiniteTemplateComponent {\n @ViewChild(\"infiniteScrollTemplate\") infiniteScrollTemplate!: TemplateRef<any>;\n}\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 <ng-container\n *ngIf=\"\n paginationData?.totalResults &&\n !templateOverride &&\n !paginationData?.isInfiniteScroll\n \"\n >\n <app-pagination-template #ref></app-pagination-template>\n <ng-template\n *ngTemplateOutlet=\"ref.paginationTemplate; context: context\"\n ></ng-template>\n </ng-container>\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 <ng-container\n *ngIf=\"\n paginationData?.totalResults &&\n !infiniteScrollTemplateOverride &&\n paginationData?.totalResults !== 0 &&\n !paginationData?.isLastPage &&\n paginationData?.isInfiniteScroll\n \"\n >\n <app-pagination-infinite-template #ref></app-pagination-infinite-template>\n <ng-template\n *ngTemplateOutlet=\"ref.infiniteScrollTemplate; context: context\"\n ></ng-template>\n </ng-container>\n\n <div\n *ngIf=\"\n paginationData?.totalResults &&\n infiniteScrollTemplateOverride &&\n paginationData?.totalResults !== 0 &&\n !paginationData?.isLastPage &&\n paginationData?.isInfiniteScroll\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"infiniteScrollTemplateOverride; context: context\"\n ></ng-container>\n </div>\n</div>\n","// reusable-template.component.ts\nimport { Component, ViewChild, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"app-facet-desktop-template\",\n template: `\n <ng-template\n #templateOverrideDesktop\n let-facetsTemplateDataDesktop=\"facetsTemplateDataDesktop\"\n let-isNotDeactivated=\"isNotDeactivated\"\n let-context=\"context\"\n let-toggleFacetGroup=\"toggleFacetGroup\"\n let-facetValues=\"facetValues\"\n let-isChecked=\"isChecked\"\n let-selectFacet=\"selectFacet\"\n let-showMoreLessDesktop=\"showMoreLessDesktop\"\n >\n <div class=\"searchstax-facets-container-desktop\">\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\n class=\"searchstax-facet-title-container\"\n (click)=\"toggleFacetGroup(facet.name, context)\"\n >\n <div class=\"searchstax-facet-title\">\n {{ facet.label }}\n </div>\n <div class=\"searchstax-facet-title-arrow active\"></div>\n </div>\n <div class=\"searchstax-facet-values-container\" aria-live=\"polite\">\n <div\n *ngFor=\"let facetValue of facetValues(facet); index as key\"\n class=\"searchstax-facet-value-container\"\n [class]=\"{\n 'searchstax-facet-value-disabled': facetValue.disabled\n }\"\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 [attr.aria-label]=\"\n facetValue.value + ' ' + facetValue.count\n \"\n [disabled]=\"facetValue.disabled\"\n (click)=\"\n selectFacet(ref, $event, facetValue, true, context)\n \"\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\n class=\"searchstax-facet-show-more-container\"\n *ngIf=\"facet.hasMoreFacets\"\n >\n <div\n class=\"searchstax-facet-show-more-container\"\n (click)=\"showMoreLessDesktop($event, facet, context)\"\n (keyup.enter)=\"showMoreLessDesktop($event, facet, context)\"\n (keyup.space)=\"showMoreLessDesktop($event, facet, context)\"\n tabindex=\"0\"\n >\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 </ng-template>\n `,\n})\nexport class FacetDesktopTemplateComponent {\n @ViewChild(\"templateOverrideDesktop\")\n templateOverrideDesktop!: TemplateRef<any>;\n}\n","// reusable-template.component.ts\nimport { Component, ViewChild, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"app-facet-mobile-template\",\n template: `\n <ng-template\n #templateOverrideMobile\n let-isNotDeactivated=\"isNotDeactivated\"\n let-context=\"context\"\n let-toggleFacetGroup=\"toggleFacetGroup\"\n let-facetValues=\"facetValues\"\n let-isChecked=\"isChecked\"\n let-selectFacet=\"selectFacet\"\n let-openOverlay=\"openOverlay\"\n let-selectedFacetsCheckboxes=\"selectedFacetsCheckboxes\"\n let-unselectFacet=\"unselectFacet\"\n let-unselectAll=\"unselectAll\"\n let-facetMobileData=\"facetMobileData\"\n let-facetsTemplateDataMobile=\"facetsTemplateDataMobile\"\n let-closeOverlay=\"closeOverlay\"\n let-showMoreLessDesktop=\"showMoreLessDesktop\"\n let-showMoreLessMobile=\"showMoreLessMobile\"\n >\n <div class=\"searchstax-facets-container-mobile\">\n <div class=\"searchstax-facets-pills-container\">\n <div\n class=\"searchstax-facets-pill searchstax-facets-pill-filter-by\"\n (click)=\"openOverlay(context)\"\n >\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\">\n {{ facet.value }} ({{ facet.count }})\n </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]=\"{\n 'searchstax-show': facetMobileData(facetsTemplateDataMobile)\n ?.overlayOpened\n }\"\n >\n <div class=\"searchstax-facets-mobile-overlay-header\">\n <div class=\"searchstax-facets-mobile-overlay-header-title\">\n Filter By\n </div>\n <div\n class=\"searchstax-search-close\"\n (click)=\"closeOverlay(context)\"\n ></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]=\"{\n active: isNotDeactivated(facet.name, context)\n }\"\n >\n <div>\n <div\n class=\"searchstax-facet-title-container\"\n (click)=\"toggleFacetGroup(facet.name, context)\"\n >\n <div class=\"searchstax-facet-title\">\n {{ facet.label }}\n </div>\n <div class=\"searchstax-facet-title-arrow active\"></div>\n </div>\n <div\n class=\"searchstax-facet-values-container\"\n aria-live=\"polite\"\n >\n <div\n *ngFor=\"let facetValue of facetValues(facet); index as key\"\n class=\"searchstax-facet-value-container\"\n [class]=\"{\n 'searchstax-facet-value-disabled': facetValue.disabled\n }\"\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 [attr.aria-label]=\"\n facetValue.value + ' ' + facetValue.count\n \"\n [disabled]=\"facetValue.disabled\"\n (click)=\"\n selectFacet(ref, $event, facetValue, true, context)\n \"\n />\n </div>\n <div\n class=\"searchstax-facet-value-label\"\n (click)=\"\n selectFacet(ref, $event, facetValue, false, context)\n \"\n >\n {{ facetValue.value }}\n </div>\n <div\n class=\"searchstax-facet-value-count\"\n (click)=\"\n selectFacet(ref, $event, facetValue, false, context)\n \"\n >\n ({{ facetValue.count }})\n </div>\n </div>\n <div\n class=\"searchstax-facet-show-more-container\"\n *ngIf=\"facet.hasMoreFacets\"\n >\n <div\n class=\"searchstax-facet-show-more-container\"\n (click)=\"showMoreLessMobile($event, facet, context)\"\n (keyup.enter)=\"showMoreLessMobile($event, facet, context)\"\n (keyup.space)=\"showMoreLessMobile($event, facet, context)\"\n tabindex=\"0\"\n >\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\n class=\"searchstax-facets-mobile-overlay-done\"\n (click)=\"closeOverlay(context)\"\n >\n Done\n </button>\n </div>\n </div>\n </ng-template>\n `,\n})\nexport class FacetMobileTemplateComponent {\n @ViewChild(\"templateOverrideMobile\")\n templateOverrideMobile!: TemplateRef<any>;\n}\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 <ng-container\n *ngIf=\"\n facetsTemplateDataDesktop?.hasResultsOrExternalPromotions &&\n !templateOverrideDesktop\n \"\n >\n <app-facet-desktop-template #ref></app-facet-desktop-template>\n <ng-template\n *ngTemplateOutlet=\"ref.templateOverrideDesktop; context: context\"\n ></ng-template>\n </ng-container>\n\n <div\n *ngIf=\"\n facetsTemplateDataDesktop?.hasResultsOrExternalPromotions &&\n templateOverrideDesktop\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"templateOverrideDesktop; context: context\"\n ></ng-container>\n </div>\n\n <ng-container\n *ngIf=\"\n facetsTemplateDataMobile?.hasResultsOrExternalPromotions &&\n !templateOverrideMobile\n \"\n >\n <app-facet-mobile-template #ref></app-facet-mobile-template>\n <ng-template\n *ngTemplateOutlet=\"ref.templateOverrideMobile; context: context\"\n ></ng-template>\n </ng-container>\n\n <div\n *ngIf=\"\n facetsTemplateDataMobile?.hasResultsOrExternalPromotions &&\n templateOverrideMobile\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"templateOverrideMobile; context: context\"\n ></ng-container>\n </div>\n</div>\n","// reusable-template.component.ts\nimport { Component, ViewChild, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"app-sorting-template\",\n template: `\n <ng-template\n #sortingTemplateOverride\n let-selectedSorting=\"selectedSorting\"\n let-orderChange=\"orderChange\"\n let-context=\"context\"\n >\n <div class=\"searchstax-sorting-container\">\n <label\n class=\"searchstax-sorting-label\"\n for=\"searchstax-search-order-select\"\n >Sort By</label\n >\n <select\n id=\"searchstax-search-order-select\"\n class=\"searchstax-search-order-select\"\n [(ngModel)]=\"context.selectedSorting\"\n (change)=\"orderChange($event, context)\"\n >\n <option\n *ngFor=\"let sortOption of context.sortingData.sortOptions\"\n [value]=\"sortOption.key\"\n >\n {{ sortOption.value }}\n </option>\n </select>\n </div>\n </ng-template>\n `,\n})\nexport class SortingTemplateComponent {\n @ViewChild(\"sortingTemplateOverride\") sortingTemplate!: TemplateRef<any>;\n}\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 <ng-container\n *ngIf=\"\n sortingData &&\n sortingData?.searchExecuted &&\n sortingData?.hasResultsOrExternalPromotions &&\n !templateOverride\n \"\n >\n <app-sorting-template #ref></app-sorting-template>\n <ng-template\n *ngTemplateOutlet=\"ref.sortingTemplate; context: context\"\n ></ng-template>\n </ng-container>\n\n <div\n *ngIf=\"\n sortingData &&\n sortingData?.searchExecuted &&\n sortingData?.hasResultsOrExternalPromotions &&\n templateOverride\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"templateOverride; context: context\"\n ></ng-container>\n </div>\n</div>\n","// reusable-template.component.ts\nimport { Component, ViewChild, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"app-answer-template\",\n template: `\n <ng-template\n #answerTemplate\n let-answerData=\"answerData\"\n let-showMore=\"showMore\"\n let-context=\"context\"\n >\n <div class=\"searchstax-answer-wrap\">\n <div class=\"searchstax-answer-icon\"></div>\n <div>\n <div\n [class]=\"{\n 'searchstax-answer-container': true,\n 'searchstax-answer-show-more': answerData.showMoreButtonVisible\n }\"\n >\n <div class=\"searchstax-answer-title\">Smart Answers</div>\n <div\n class=\"searchstax-answer-error\"\n *ngIf=\"answerData.shouldShowAnswerError\"\n [innerHTML]=\"answerData.answerErrorMessage\"\n ></div>\n <div\n class=\"searchstax-answer-description\"\n [innerHTML]=\"answerData.fullAnswerFormatted\"\n ></div>\n <div\n *ngIf=\"answerData.answerLoading\"\n class=\"searchstax-answer-loading\"\n ></div>\n </div>\n <div\n *ngIf=\"answerData.showMoreButtonVisible\"\n class=\"searchstax-answer-load-more-button-container\"\n >\n <button\n class=\"searchstax-answer-load-more-button\"\n (click)=\"showMore($event, context)\"\n >\n Read More\n </button>\n </div>\n </div>\n <div class=\"searchstax-answer-footer\">\n <div id=\"feedbackWidgetContainer\"></div>\n <div class=\"searchstax-lightweight-widget-separator-inline\"></div>\n <p class=\"searchstax-disclaimer\">Generative AI is Experimental</p>\n </div>\n </div>\n </ng-template>\n `,\n})\nexport class AnswerTemplateComponent {\n @ViewChild(\"answerTemplate\") answerTemplate!: TemplateRef<any>;\n}\n","import { Component, Input, OnInit, TemplateRef } from \"@angular/core\";\nimport { IFeedbackWidgetProperties, ISearchstaxAnswerData } from \"@searchstax-inc/searchstudio-ux-js\";\nimport { StoreServiceService } from \"../../services/store-service.service\";\n\n@Component({\n selector: \"app-searchstax-answer\",\n templateUrl: \"./searchstax-search-answer.component.html\",\n styles: [],\n})\nexport class SearchstaxSearchAnswerWidget implements OnInit {\n @Input() templateOverride?: TemplateRef<any>;\n @Input() feedbackwidget?: IFeedbackWidgetProperties;\n @Input() showMoreAfterWordCount?: number;\n\n answerData: null | ISearchstaxAnswerData = 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.addAnswerWidget('searchstax-answer-container' + this.rand, {showMoreAfterWordCount: this.showMoreAfterWordCount, feedbackwidget: this.feedbackwidget});\n }, 0);\n } else {\n throw Error(\"Searchstax instance needs to be passed via props\");\n }\n }\n\n showMore(event: Event, context: this) {\n if (context.storeServiceService.searchstax) {\n context.storeServiceService.searchstax.answerWidget?.showMore(event)\n }\n }\n\n\n attachObservables() {\n this.storeServiceService.searchstax.dataLayer.$answerData.subscribe(\n (answerData: null | ISearchstaxAnswerData) => {\n this.answerData = answerData;\n }\n );\n }\n}\n","<div [id]=\"'searchstax-answer-container' + rand\">\n <div\n *ngIf=\"\n answerData &&\n answerData?.searchExecuted &&\n answerData.shouldShowAnswer &&\n !templateOverride\n \"\n >\n <app-answer-template #ref></app-answer-template>\n <ng-template\n [ngTemplateOutlet]=\"ref.answerTemplate\"\n [ngTemplateOutletContext]=\"context\"\n ></ng-template>\n </div>\n <div\n *ngIf=\"\n answerData &&\n answerData?.searchExecuted &&\n answerData.shouldShowAnswer &&\n templateOverride\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"templateOverride; context: context\"\n ></ng-container>\n </div>\n</div>\n","// reusable-template.component.ts\nimport { Component, ViewChild, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"app-related-template\",\n template: `\n <ng-template\n #relatedTemplate\n let-rand=\"rand\"\n let-relatedData=\"relatedData\"\n let-executeSearch=\"executeSearch\"\n let-context=\"context\"\n >\n <div\n class=\"searchstax-related-searches-container\"\n [id]=\"'searchstax-related-searches-container' + rand\"\n >\n Related searches: <span id=\"searchstax-related-searches\"></span>\n <span\n class=\"searchstax-related-search\"\n *ngIf=\"relatedData.relatedSearches\"\n >\n <span\n *ngFor=\"let related of relatedData.relatedSearches\"\n (click)=\"executeSearch(related, context)\"\n (keyup.enter)=\"executeSearch(related, context)\"\n (keyup.space)=\"executeSearch(related, context)\"\n tabindex=\"0\"\n class=\"searchstax-related-search searchstax-related-search-item\"\n [attr.aria-label]=\"'Related search: ' + related.related_search\"\n >\n {{ related.related_search }}<span *ngIf=\"!related.last\">,</span>\n </span>\n </span>\n </div>\n </ng-template>\n `,\n})\nexport class RelatedTemplateComponent {\n @ViewChild(\"relatedTemplate\") relatedTemplate!: TemplateRef<any>;\n}\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","<ng-container\n *ngIf=\"\n relatedData &&\n relatedData?.searchExecuted &&\n relatedData?.hasRelatedSearches &&\n !templateOverride\n \"\n>\n <app-related-template #ref></app-related-template>\n <ng-template\n *ngTemplateOutlet=\"ref.relatedTemplate; context: context\"\n ></ng-template>\n</ng-container>\n\n<div\n *ngIf=\"\n relatedData &&\n relatedData?.searchExecuted &&\n relatedData?.hasRelatedSearches &&\n templateOverride\n \"\n>\n <ng-container\n *ngTemplateOutlet=\"templateOverride; context: context\"\n ></ng-container>\n</div>\n","// reusable-template.component.ts\nimport { Component, ViewChild, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"app-external-template\",\n template: `\n <ng-template\n #externalPromotionsTemplate\n let-context=\"context\"\n let-externalPromotionsData=\"externalPromotionsData\"\n let-trackClick=\"trackClick\"\n >\n <div\n class=\"searchstax-external-promotions-container\"\n id=\"searchstax-external-promotions-container\"\n >\n <div\n class=\"searchstax-external-promotion searchstax-search-result\"\n *ngFor=\"\n let externalPromotion of externalPromotionsData.externalPromotions\n \"\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\">{{\n externalPromotion.name\n }}</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\n *ngIf=\"externalPromotion.url\"\n class=\"searchstax-search-result-description searchstax-search-result-common\"\n >\n {{ externalPromotion.url }}\n </p>\n </div>\n </div>\n </ng-template>\n `,\n})\nexport class ExternalPromotionsTemplateComponent {\n @ViewChild(\"externalPromotionsTemplate\") externalPromotionsTemplate!: TemplateRef<any>;\n}\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 <ng-container\n *ngIf=\"\n externalPromotionsData &&\n externalPromotionsData?.searchExecuted &&\n externalPromotionsData?.hasExternalPromotions &&\n !templateOverride\n \"\n >\n <app-external-template #ref></app-external-template>\n <ng-template\n *ngTemplateOutlet=\"ref.externalPromotionsTemplate; context: context\"\n ></ng-template>\n </ng-container>\n <div\n *ngIf=\"\n externalPromotionsData &&\n externalPromotionsData?.searchExecuted &&\n externalPromotionsData?.hasExternalPromotions &&\n templateOverride\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"templateOverride; context: context\"\n ></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 { SearchstaxSearchAnswerWidget } from \"./components/searchstax-search-answer/searchstax-search-answer.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\";\nimport { SearchstaxSearchLocationWidget } from \"./components/searchstax-search-location/searchstax-search-location.component\";\nimport { FormsModule } from \"@angular/forms\";\nimport { AnswerTemplateComponent } from \"./components/templates/searchstax-search-answer-template\";\nimport { InputTemplateComponent } from \"./components/templates/searchstax-search-input-template\";\nimport { OverviewTemplateComponent } from \"./components/templates/searchstax-search-overview-template\";\nimport { LocationTemplateComponent } from \"./components/templates/searchstax-search-location-template\";\nimport { PaginationTemplateComponent } from \"./components/templates/searchstax-search-pagination-template\";\nimport { PaginationInfiniteTemplateComponent } from \"./components/templates/searchstax-search-pagination-infinite-template\";\nimport { ResultsTemplateComponent } from \"./components/templates/searchstax-search-results-template\";\nimport { NoResultsTemplateComponent } from \"./components/templates/searchstax-search-no-results-template\";\nimport { ExternalPromotionsTemplateComponent } from \"./components/templates/searchstax-search-external-template\";\nimport { SortingTemplateComponent } from \"./components/templates/searchstax-search-sorting-template\";\nimport { RelatedTemplateComponent } from \"./components/templates/searchstax-search-related-template\";\nimport { FacetMobileTemplateComponent } from \"./components/templates/searchstax-search-facet-mobile-template\";\nimport { FacetDesktopTemplateComponent } from \"./components/templates/searchstax-search-facet-desktop-template\";\n\n@NgModule({\n declarations: [\n SearchstaxWrapper,\n SearchstaxInputWidget,\n SearchstaxResultsWidget,\n SearchstaxSearchFeedbackWidget,\n SearchstaxSearchPaginationWidget,\n SearchstaxSearchFacetsWidget,\n SearchstaxSearchSortingWidget,\n SearchstaxSearchRelatedSearchesWidget,\n SearchstaxSearchExternalPromotionsWidget,\n SearchstaxSearchAnswerWidget,\n SearchstaxSearchLocationWidget,\n AnswerTemplateComponent,\n OverviewTemplateComponent,\n InputTemplateComponent,\n LocationTemplateComponent,\n PaginationTemplateComponent,\n PaginationInfiniteTemplateComponent,\n ResultsTemplateComponent,\n NoResultsTemplateComponent,\n ExternalPromotionsTemplateComponent,\n SortingTemplateComponent,\n RelatedTemplateComponent,\n FacetDesktopTemplateComponent,\n FacetMobileTemplateComponent\n ],\n imports: [CommonModule, FormsModule],\n exports: [\n SearchstaxWrapper,\n SearchstaxInputWidget,\n SearchstaxResultsWidget,\n SearchstaxSearchFeedbackWidget,\n SearchstaxSearchPaginationWidget,\n SearchstaxSearchFacetsWidget,\n SearchstaxSearchSortingWidget,\n SearchstaxSearchRelatedSearchesWidget,\n SearchstaxSearchExternalPromotionsWidget,\n SearchstaxSearchAnswerWidget,\n SearchstaxSearchLocationWidget,\n AnswerTemplateComponent,\n OverviewTemplateComponent,\n InputTemplateComponent,\n LocationTemplateComponent,\n PaginationTemplateComponent,\n PaginationInfiniteTemplateComponent,\n ResultsTemplateComponent,\n NoResultsTemplateComponent,\n ExternalPromotionsTemplateComponent,\n SortingTemplateComponent,\n RelatedTemplateComponent,\n FacetDesktopTemplateComponent,\n FacetMobileTemplateComponent\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-answer/searchstax-search-answer.component';\nexport * from './lib/components/searchstax-search-location/searchstax-search-location.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';\nexport * from './lib/components/templates/searchstax-search-answer-template';\nexport * from './lib/components/templates/searchstax-search-overview-template';\nexport * from './lib/components/templates/searchstax-search-input-template';\nexport * from './lib/components/templates/searchstax-search-location-template';\nexport * from './lib/components/templates/searchstax-search-pagination-template';\nexport * from './lib/components/templates/searchstax-search-pagination-infinite-template';\nexport * from './lib/components/templates/searchstax-search-results-template';\nexport * from './lib/components/templates/searchstax-search-no-results-template';\nexport * from './lib/components/templates/searchstax-search-external-template';\nexport * from './lib/components/templates/searchstax-search-sorting-template';\nexport * from './lib/components/templates/searchstax-search-related-template';\nexport * from './lib/components/templates/searchstax-search-facet-desktop-template';\nexport * from './lib/components/templates/searchstax-search-facet-mobile-template';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.StoreServiceService","i2","i3.LocationTemplateComponent","i2.SearchstaxSearchLocationWidget","i3.InputTemplateComponent","i3.ResultsTemplateComponent","i4.NoResultsTemplateComponent","i3.OverviewTemplateComponent","i3.PaginationTemplateComponent","i4.PaginationInfiniteTemplateComponent","i3.FacetDesktopTemplateComponent","i4.FacetMobileTemplateComponent","i3.SortingTemplateComponent","i3.AnswerTemplateComponent","i3.RelatedTemplateComponent","i3.ExternalPromotionsTemplateComponent"],"mappings":"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"}
@@ -8,6 +8,7 @@ export declare class SearchstaxResultsWidget implements OnInit {
8
8
  noResultsTemplate?: TemplateRef<any>;
9
9
  resultsTemplate?: TemplateRef<any>;
10
10
  renderMethod?: "infiniteScroll" | "pagination";
11
+ resultsPerPage?: number;
11
12
  searchResults: ISearchstaxParsedResult[] | null;
12
13
  metadata: ISearchstaxSearchMetadata | null;
13
14
  searchTerm: string;
@@ -22,5 +23,5 @@ export declare class SearchstaxResultsWidget implements OnInit {
22
23
  resultClicked(result: ISearchstaxParsedResult, event: Event, context: this): void;
23
24
  isImage(field: any): any;
24
25
  static ɵfac: i0.ɵɵFactoryDeclaration<SearchstaxResultsWidget, 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; }; "renderMethod": { "alias": "renderMethod"; "required": false; }; }, {}, never, never, false, never>;
26
+ static ɵcmp: i0.ɵɵComponentDeclaration<SearchstaxResultsWidget, "app-searchstax-results", never, { "afterLinkClick": { "alias": "afterLinkClick"; "required": false; }; "noResultsTemplate": { "alias": "noResultsTemplate"; "required": false; }; "resultsTemplate": { "alias": "resultsTemplate"; "required": false; }; "renderMethod": { "alias": "renderMethod"; "required": false; }; "resultsPerPage": { "alias": "resultsPerPage"; "required": false; }; }, {}, never, never, false, never>;
26
27
  }
@@ -6,7 +6,7 @@ export declare class SearchstaxSearchAnswerWidget implements OnInit {
6
6
  private storeServiceService;
7
7
  templateOverride?: TemplateRef<any>;
8
8
  feedbackwidget?: IFeedbackWidgetProperties;
9
- showShowMoreAfterWordCount?: number;
9
+ showMoreAfterWordCount?: number;
10
10
  answerData: null | ISearchstaxAnswerData;
11
11
  rand: number;
12
12
  context: this;
@@ -15,5 +15,5 @@ export declare class SearchstaxSearchAnswerWidget implements OnInit {
15
15
  showMore(event: Event, context: this): void;
16
16
  attachObservables(): void;
17
17
  static ɵfac: i0.ɵɵFactoryDeclaration<SearchstaxSearchAnswerWidget, never>;
18
- static ɵcmp: i0.ɵɵComponentDeclaration<SearchstaxSearchAnswerWidget, "app-searchstax-answer", never, { "templateOverride": { "alias": "templateOverride"; "required": false; }; "feedbackwidget": { "alias": "feedbackwidget"; "required": false; }; "showShowMoreAfterWordCount": { "alias": "showShowMoreAfterWordCount"; "required": false; }; }, {}, never, never, false, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<SearchstaxSearchAnswerWidget, "app-searchstax-answer", never, { "templateOverride": { "alias": "templateOverride"; "required": false; }; "feedbackwidget": { "alias": "feedbackwidget"; "required": false; }; "showMoreAfterWordCount": { "alias": "showMoreAfterWordCount"; "required": false; }; }, {}, never, never, false, never>;
19
19
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@searchstax-inc/searchstudio-ux-angular",
3
3
  "private": false,
4
- "version": "2.0.0",
4
+ "version": "4.1.1",
5
5
  "type": "module",
6
6
  "peerDependencies": {
7
7
  "@angular/common": "13 - 19",
@@ -9,7 +9,7 @@
9
9
  },
10
10
  "dependencies": {
11
11
  "tslib": "^2.3.0",
12
- "@searchstax-inc/searchstudio-ux-js": "npm:@searchstax-inc/searchstudio-ux-js@^2.0.0"
12
+ "@searchstax-inc/searchstudio-ux-js": "npm:@searchstax-inc/searchstudio-ux-js@^4.1.0"
13
13
  },
14
14
  "module": "fesm2022/searchstax-inc-searchstudio-ux-angular.mjs",
15
15
  "typings": "index.d.ts",