@searchstax-inc/searchstudio-ux-js 0.6.65 → 1.0.4
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 +10 -13
- package/README.md +37 -34
- package/README.mustache +0 -1
- package/dist/@searchstax-inc/searchstudio-ux-js.cjs +9 -9
- package/dist/@searchstax-inc/searchstudio-ux-js.d.mts +4 -0
- package/dist/@searchstax-inc/searchstudio-ux-js.d.ts +4 -0
- package/dist/@searchstax-inc/searchstudio-ux-js.iife.js +9 -9
- package/dist/@searchstax-inc/searchstudio-ux-js.mjs +189 -168
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
-
All notable changes to the "
|
|
4
|
-
|
|
5
|
-
## [
|
|
6
|
-
|
|
7
|
-
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
## [0.0.0] - 2022-03-28
|
|
14
|
-
|
|
15
|
-
- Initial release
|
|
3
|
+
All notable changes to the "searchstudio-ux-js" project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## [1.0.3] - 2024-10-08
|
|
6
|
+
### ⚠️ BREAKING CHANGES
|
|
7
|
+
- Result template needs to be updated to print variables as HTML because they now will contain html <em> tags if highlighting is enabled
|
|
8
|
+
### Features
|
|
9
|
+
- Added support for highlighting controlled via studio UI
|
|
10
|
+
- Results per page are now configured through studio UI
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
- Tracking calls now use unmodified title of the result
|
package/README.md
CHANGED
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Library to build Site Search page
|
|
4
4
|
|
|
5
|
+
## changelog
|
|
6
|
+
changelog is documented at CHANGELOG.md
|
|
7
|
+
|
|
5
8
|
## Installation
|
|
6
9
|
npm install following package
|
|
7
10
|
`npm install --save @searchstax-inc/searchstudio-ux-js`
|
|
@@ -225,7 +228,7 @@ example of result widget initialization with various options
|
|
|
225
228
|
mainTemplate: {
|
|
226
229
|
template: `
|
|
227
230
|
<div class="searchstax-search-results-container">
|
|
228
|
-
<div class="searchstax-search-results" id="searchstax-search-results"
|
|
231
|
+
<div class="searchstax-search-results" id="searchstax-search-results"></div>
|
|
229
232
|
</div>
|
|
230
233
|
`,
|
|
231
234
|
searchResultsContainerId: "searchstax-search-results",
|
|
@@ -240,15 +243,15 @@ example of result widget initialization with various options
|
|
|
240
243
|
|
|
241
244
|
{{#ribbon}}
|
|
242
245
|
<div class="searchstax-search-result-ribbon">
|
|
243
|
-
{{ribbon}}
|
|
246
|
+
{{{ribbon}}}
|
|
244
247
|
</div>
|
|
245
248
|
{{/ribbon}}
|
|
246
249
|
|
|
247
250
|
{{#thumbnail}}
|
|
248
|
-
<img src="{{thumbnail}}" class="searchstax-thumbnail">
|
|
251
|
+
<img src="{{thumbnail}}" alt="" class="searchstax-thumbnail">
|
|
249
252
|
{{/thumbnail}}
|
|
250
253
|
<div class="searchstax-search-result-title-container">
|
|
251
|
-
<
|
|
254
|
+
<h5 class="searchstax-search-result-title">{{{title}}}</h5>
|
|
252
255
|
</div>
|
|
253
256
|
|
|
254
257
|
{{#paths}}
|
|
@@ -259,19 +262,19 @@ example of result widget initialization with various options
|
|
|
259
262
|
|
|
260
263
|
{{#description}}
|
|
261
264
|
<p class="searchstax-search-result-description searchstax-search-result-common">
|
|
262
|
-
{{description}}
|
|
265
|
+
{{{description}}}
|
|
263
266
|
</p>
|
|
264
267
|
{{/description}}
|
|
265
268
|
|
|
266
269
|
{{#unmappedFields}}
|
|
267
270
|
{{#isImage}}
|
|
268
271
|
<div class="searchstax-search-result-image-container">
|
|
269
|
-
<img src="{{value}}" class="searchstax-result-image">
|
|
272
|
+
<img src="{{value}}" alt="" class="searchstax-result-image">
|
|
270
273
|
</div>
|
|
271
274
|
{{/isImage}}
|
|
272
275
|
{{^isImage}}
|
|
273
276
|
<p class="searchstax-search-result-common">
|
|
274
|
-
{{value}}
|
|
277
|
+
{{{value}}}
|
|
275
278
|
</p>
|
|
276
279
|
{{/isImage}}
|
|
277
280
|
{{/unmappedFields}}
|
|
@@ -283,14 +286,14 @@ example of result widget initialization with various options
|
|
|
283
286
|
noSearchResultTemplate: {
|
|
284
287
|
template: `
|
|
285
288
|
{{#searchExecuted}}
|
|
286
|
-
<div class="searchstax-no-results">
|
|
289
|
+
<div class="searchstax-no-results" aria-live="polite">
|
|
287
290
|
Showing <strong>no results</strong> for <strong>"{{ searchTerm }}"</strong>
|
|
288
291
|
<br>
|
|
289
292
|
{{#spellingSuggestion}}
|
|
290
|
-
<span> Did you mean <a href="#" class="searchstax-suggestion-term" onclick="searchCallback('{{ spellingSuggestion }}')">{{ spellingSuggestion }}</a>?</span>
|
|
293
|
+
<span> Did you mean <a href="#" class="searchstax-suggestion-term" onclick="searchCallback('{{ spellingSuggestion }}')" aria-label="suggested term: {{ spellingSuggestion }}">{{ spellingSuggestion }}</a>?</span>
|
|
291
294
|
{{/spellingSuggestion}}
|
|
292
295
|
</div>
|
|
293
|
-
<ul class="searchstax-no-results-list">
|
|
296
|
+
<ul class="searchstax-no-results-list" aria-live="polite">
|
|
294
297
|
<li>Try searching for search related terms or topics. We offer a wide variety of content to help you get the information you need.</li>
|
|
295
298
|
<li>Lost? Click on the ‘X” in the Search Box to reset your search.</li>
|
|
296
299
|
</ul>
|
|
@@ -316,7 +319,7 @@ example of result widget initialization with infinite scroll enabled. This will
|
|
|
316
319
|
mainTemplate: {
|
|
317
320
|
template: `
|
|
318
321
|
<div class="searchstax-search-results-container">
|
|
319
|
-
<div class="searchstax-search-results" id="searchstax-search-results"
|
|
322
|
+
<div class="searchstax-search-results" id="searchstax-search-results"></div>
|
|
320
323
|
</div>
|
|
321
324
|
`,
|
|
322
325
|
searchResultsContainerId: "searchstax-search-results",
|
|
@@ -331,15 +334,15 @@ example of result widget initialization with infinite scroll enabled. This will
|
|
|
331
334
|
|
|
332
335
|
{{#ribbon}}
|
|
333
336
|
<div class="searchstax-search-result-ribbon">
|
|
334
|
-
{{ribbon}}
|
|
337
|
+
{{{ribbon}}}
|
|
335
338
|
</div>
|
|
336
339
|
{{/ribbon}}
|
|
337
340
|
|
|
338
341
|
{{#thumbnail}}
|
|
339
|
-
<img src="{{thumbnail}}" class="searchstax-thumbnail">
|
|
342
|
+
<img src="{{thumbnail}}" alt="" class="searchstax-thumbnail">
|
|
340
343
|
{{/thumbnail}}
|
|
341
344
|
<div class="searchstax-search-result-title-container">
|
|
342
|
-
<
|
|
345
|
+
<h5 class="searchstax-search-result-title">{{{title}}}</h5>
|
|
343
346
|
</div>
|
|
344
347
|
|
|
345
348
|
{{#paths}}
|
|
@@ -350,19 +353,19 @@ example of result widget initialization with infinite scroll enabled. This will
|
|
|
350
353
|
|
|
351
354
|
{{#description}}
|
|
352
355
|
<p class="searchstax-search-result-description searchstax-search-result-common">
|
|
353
|
-
{{description}}
|
|
356
|
+
{{{description}}}
|
|
354
357
|
</p>
|
|
355
358
|
{{/description}}
|
|
356
359
|
|
|
357
360
|
{{#unmappedFields}}
|
|
358
361
|
{{#isImage}}
|
|
359
362
|
<div class="searchstax-search-result-image-container">
|
|
360
|
-
<img src="{{value}}" class="searchstax-result-image">
|
|
363
|
+
<img src="{{value}}" alt="" class="searchstax-result-image">
|
|
361
364
|
</div>
|
|
362
365
|
{{/isImage}}
|
|
363
366
|
{{^isImage}}
|
|
364
367
|
<p class="searchstax-search-result-common">
|
|
365
|
-
{{value}}
|
|
368
|
+
{{{value}}}
|
|
366
369
|
</p>
|
|
367
370
|
{{/isImage}}
|
|
368
371
|
{{/unmappedFields}}
|
|
@@ -374,14 +377,14 @@ example of result widget initialization with infinite scroll enabled. This will
|
|
|
374
377
|
noSearchResultTemplate: {
|
|
375
378
|
template: `
|
|
376
379
|
{{#searchExecuted}}
|
|
377
|
-
<div class="searchstax-no-results">
|
|
380
|
+
<div class="searchstax-no-results" aria-live="polite">
|
|
378
381
|
Showing <strong>no results</strong> for <strong>"{{ searchTerm }}"</strong>
|
|
379
382
|
<br>
|
|
380
383
|
{{#spellingSuggestion}}
|
|
381
|
-
<span> Did you mean <a href="#" class="searchstax-suggestion-term" onclick="searchCallback('{{ spellingSuggestion }}')">{{ spellingSuggestion }}</a>?</span>
|
|
384
|
+
<span> Did you mean <a href="#" class="searchstax-suggestion-term" onclick="searchCallback('{{ spellingSuggestion }}')" aria-label="suggested term: {{ spellingSuggestion }}">{{ spellingSuggestion }}</a>?</span>
|
|
382
385
|
{{/spellingSuggestion}}
|
|
383
386
|
</div>
|
|
384
|
-
<ul class="searchstax-no-results-list">
|
|
387
|
+
<ul class="searchstax-no-results-list" aria-live="polite">
|
|
385
388
|
<li>Try searching for search related terms or topics. We offer a wide variety of content to help you get the information you need.</li>
|
|
386
389
|
<li>Lost? Click on the ‘X” in the Search Box to reset your search.</li>
|
|
387
390
|
</ul>
|
|
@@ -390,7 +393,6 @@ example of result widget initialization with infinite scroll enabled. This will
|
|
|
390
393
|
}
|
|
391
394
|
},
|
|
392
395
|
renderMethod: 'infiniteScroll',
|
|
393
|
-
resultsPerPage: 10,
|
|
394
396
|
hooks: {
|
|
395
397
|
afterLinkClick: function (result: ISearchstaxParsedResult) {
|
|
396
398
|
// gets result that was clicked, if passed along further functions will execute, if null then event gets canceled
|
|
@@ -423,11 +425,11 @@ example of pagination widget initialization with various options
|
|
|
423
425
|
{{#results.length}}
|
|
424
426
|
<div class="searchstax-pagination-container">
|
|
425
427
|
<div class="searchstax-pagination-content">
|
|
426
|
-
<a class="searchstax-pagination-previous {{#isFirstPage}}disabled{{/isFirstPage}}" id="searchstax-pagination-previous" tabindex="0">< Previous</a>
|
|
428
|
+
<a class="searchstax-pagination-previous {{#isFirstPage}}disabled{{/isFirstPage}}" id="searchstax-pagination-previous" tabindex="0" aria-label="Previous Page">< Previous</a>
|
|
427
429
|
<div class="searchstax-pagination-details">
|
|
428
430
|
{{startResultIndex}} - {{endResultIndex}} of {{totalResults}}
|
|
429
431
|
</div>
|
|
430
|
-
<a class="searchstax-pagination-next {{#isLastPage}}disabled{{/isLastPage}}" id="searchstax-pagination-next" tabindex="0">Next ></a>
|
|
432
|
+
<a class="searchstax-pagination-next {{#isLastPage}}disabled{{/isLastPage}}" id="searchstax-pagination-next" tabindex="0" aria-label="Next Page">Next ></a>
|
|
431
433
|
</div>
|
|
432
434
|
</div>
|
|
433
435
|
{{/results.length}}
|
|
@@ -440,11 +442,11 @@ example of pagination widget initialization with various options
|
|
|
440
442
|
{{#results.length}}
|
|
441
443
|
<div class="searchstax-pagination-container">
|
|
442
444
|
<div class="searchstax-pagination-content">
|
|
443
|
-
<a class="searchstax-pagination-previous {{#isFirstPage}}disabled{{/isFirstPage}}" id="searchstax-pagination-previous" tabindex="0">< Previous</a>
|
|
445
|
+
<a class="searchstax-pagination-previous {{#isFirstPage}}disabled{{/isFirstPage}}" id="searchstax-pagination-previous" tabindex="0" aria-label="Previous Page">< Previous</a>
|
|
444
446
|
<div class="searchstax-pagination-details">
|
|
445
447
|
{{startResultIndex}} - {{endResultIndex}} of {{totalResults}}
|
|
446
448
|
</div>
|
|
447
|
-
<a class="searchstax-pagination-next {{#isLastPage}}disabled{{/isLastPage}}" id="searchstax-pagination-next" tabindex="0">Next ></a>
|
|
449
|
+
<a class="searchstax-pagination-next {{#isLastPage}}disabled{{/isLastPage}}" id="searchstax-pagination-next" tabindex="0" aria-label="Next Page">Next ></a>
|
|
448
450
|
</div>
|
|
449
451
|
</div>
|
|
450
452
|
{{/results.length}}
|
|
@@ -497,7 +499,7 @@ example of facets widget initialization with various options
|
|
|
497
499
|
<div class="searchstax-facets-mobile-overlay {{#overlayOpened}} searchstax-show{{/overlayOpened}}" >
|
|
498
500
|
<div class="searchstax-facets-mobile-overlay-header">
|
|
499
501
|
<div class="searchstax-facets-mobile-overlay-header-title">Filter By</div>
|
|
500
|
-
<div class="searchstax-search-close"></div>
|
|
502
|
+
<div class="searchstax-search-close" tabindex="0" aria-label="close overlay" role="button"></div>
|
|
501
503
|
</div>
|
|
502
504
|
<div class="searchstax-facets-container-mobile"></div>
|
|
503
505
|
<button class="searchstax-facets-mobile-overlay-done">Done</button>
|
|
@@ -525,12 +527,12 @@ example of facets widget initialization with various options
|
|
|
525
527
|
template: `
|
|
526
528
|
<div>
|
|
527
529
|
<div class="searchstax-facet-title-container">
|
|
528
|
-
<div class="searchstax-facet-title">
|
|
530
|
+
<div class="searchstax-facet-title" aria-label="Facet group: {{label}}" tabindex="0">
|
|
529
531
|
{{label}}
|
|
530
532
|
</div>
|
|
531
533
|
<div class="searchstax-facet-title-arrow active"></div>
|
|
532
534
|
</div>
|
|
533
|
-
<div class="searchstax-facet-values-container"
|
|
535
|
+
<div class="searchstax-facet-values-container"></div>
|
|
534
536
|
</div>
|
|
535
537
|
`,
|
|
536
538
|
facetListTitleContainerClass: `searchstax-facet-title-container`,
|
|
@@ -539,7 +541,7 @@ example of facets widget initialization with various options
|
|
|
539
541
|
clearFacetsTemplate: {
|
|
540
542
|
template: `
|
|
541
543
|
{{#shouldShow}}}
|
|
542
|
-
<div class="searchstax-facets-pill searchstax-clear-filters searchstax-facets-pill-clear-all">
|
|
544
|
+
<div class="searchstax-facets-pill searchstax-clear-filters searchstax-facets-pill-clear-all" tabindex="0" role="button">
|
|
543
545
|
<div class="searchstax-facets-pill-label">Clear Filters</div>
|
|
544
546
|
</div>
|
|
545
547
|
{{/shouldShow}}
|
|
@@ -559,7 +561,7 @@ example of facets widget initialization with various options
|
|
|
559
561
|
},
|
|
560
562
|
filterByTemplate: {
|
|
561
563
|
template: `
|
|
562
|
-
<div class="searchstax-facets-pill searchstax-facets-pill-filter-by">
|
|
564
|
+
<div class="searchstax-facets-pill searchstax-facets-pill-filter-by" tabindex="0" role="button" >
|
|
563
565
|
<div class="searchstax-facets-pill-label">Filter By</div>
|
|
564
566
|
</div>
|
|
565
567
|
`,
|
|
@@ -567,7 +569,7 @@ example of facets widget initialization with various options
|
|
|
567
569
|
},
|
|
568
570
|
selectedFacetsTemplate: {
|
|
569
571
|
template: `
|
|
570
|
-
<div class="searchstax-facets-pill searchstax-facets-pill-facets">
|
|
572
|
+
<div class="searchstax-facets-pill searchstax-facets-pill-facets" tabindex="0" role="button">
|
|
571
573
|
<div class="searchstax-facets-pill-label">{{value}} ({{count}})</div>
|
|
572
574
|
<div class="searchstax-facets-pill-icon-close"></div>
|
|
573
575
|
</div>
|
|
@@ -600,12 +602,13 @@ searchstax.addSearchFeedbackWidget("search-feedback-container", {
|
|
|
600
602
|
main: {
|
|
601
603
|
template: `
|
|
602
604
|
{{#searchExecuted}}
|
|
605
|
+
<a href="#searchstax-search-results" class="searchstax-skip">Skip to results section</a>
|
|
603
606
|
<h4 class="searchstax-feedback-container">
|
|
604
607
|
{{#hasResults}}
|
|
605
|
-
|
|
608
|
+
<span> Showing <b>{{startResultIndex}} - {{endResultIndex}}</b> </span> of <b>{{totalResults}}</b> results {{#searchTerm}} for "<b>{{searchTerm}}</b>" {{/searchTerm}}
|
|
606
609
|
<div class="searchstax-feedback-container-suggested">
|
|
607
610
|
{{#autoCorrectedQuery}}
|
|
608
|
-
Search instead for <a href="#" class="searchstax-feedback-original-query">{{originalQuery}}</a>
|
|
611
|
+
Search instead for <a href="#" aria-label="Search instead for: {{originalQuery}}" class="searchstax-feedback-original-query">{{originalQuery}}</a>
|
|
609
612
|
{{/autoCorrectedQuery}}
|
|
610
613
|
</div>
|
|
611
614
|
{{/hasResults}}
|
|
@@ -658,7 +661,7 @@ searchstax.addRelatedSearchesWidget("searchstax-related-searches-container", {
|
|
|
658
661
|
},
|
|
659
662
|
relatedSearch: {
|
|
660
663
|
template: `
|
|
661
|
-
<span class="searchstax-related-search searchstax-related-search-item" tabindex="0">
|
|
664
|
+
<span class="searchstax-related-search searchstax-related-search-item" aria-label="Related search: {{related_search}}" tabindex="0">
|
|
662
665
|
{{ related_search }}{{^last}}<span>,</span>{{/last}}
|
|
663
666
|
</span>
|
|
664
667
|
`,
|
package/README.mustache
CHANGED
|
@@ -244,7 +244,6 @@ example of result widget initialization with infinite scroll enabled. This will
|
|
|
244
244
|
}
|
|
245
245
|
},
|
|
246
246
|
renderMethod: 'infiniteScroll',
|
|
247
|
-
resultsPerPage: 10,
|
|
248
247
|
hooks: {
|
|
249
248
|
afterLinkClick: function (result: ISearchstaxParsedResult) {
|
|
250
249
|
// gets result that was clicked, if passed along further functions will execute, if null then event gets canceled
|