@coveo/atomic 3.33.9-pre.04dc119c6b → 3.33.9-pre.0eb4b6e2f5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/dist/atomic/_atomic.esm.js +1 -1
  2. package/dist/atomic/atomic.esm.js.map +1 -1
  3. package/dist/atomic/components/_index.d.ts +2 -2
  4. package/dist/atomic/components/_index.js +1 -1
  5. package/dist/atomic/components/analytics-config.js +1 -1
  6. package/dist/atomic/components/atomic-category-facet.js +1 -1
  7. package/dist/atomic/components/atomic-facet.js +1 -1
  8. package/dist/atomic/components/atomic-format-currency.js +1 -1
  9. package/dist/atomic/components/atomic-format-number.js +1 -1
  10. package/dist/atomic/components/atomic-format-unit.js +1 -1
  11. package/dist/atomic/components/atomic-insight-search-box.js +29 -2
  12. package/dist/atomic/components/atomic-insight-search-box.js.map +1 -1
  13. package/dist/atomic/components/atomic-numeric-facet.js +1 -1
  14. package/dist/atomic/components/atomic-quickview-modal2.js +1 -1
  15. package/dist/atomic/components/atomic-quickview.js +1 -1
  16. package/dist/atomic/components/atomic-relevance-inspector.d.ts +11 -0
  17. package/dist/atomic/components/atomic-relevance-inspector.js +53 -0
  18. package/dist/atomic/components/atomic-relevance-inspector.js.map +1 -0
  19. package/dist/atomic/components/atomic-result-children.js +1 -1
  20. package/dist/atomic/components/atomic-result-fields-list.js +1 -1
  21. package/dist/atomic/components/atomic-result-link.js +1 -1
  22. package/dist/atomic/components/atomic-result-list.js +1 -1
  23. package/dist/atomic/components/atomic-result-table-placeholder2.js +1 -1
  24. package/dist/atomic/components/atomic-search-box-recent-queries2.js +1 -1
  25. package/dist/atomic/components/atomic-search-box.js +4 -10
  26. package/dist/atomic/components/atomic-search-box.js.map +1 -1
  27. package/dist/atomic/components/atomic-smart-snippet-feedback-modal2.js +2 -2
  28. package/dist/atomic/components/atomic-sort-dropdown.js +2 -2
  29. package/dist/atomic/components/atomic-sort-expression.js +1 -1
  30. package/dist/atomic/components/atomic-tab-manager.js +1 -1
  31. package/dist/atomic/components/components/search/atomic-search-box-query-suggestions/atomic-search-box-query-suggestions.js +107 -0
  32. package/dist/atomic/components/components/search/atomic-search-interface/atomic-search-interface.js +23 -1
  33. package/dist/atomic/components/components/search/index.js +1 -1
  34. package/dist/atomic/components/components/search/lazy-index.js +1 -1
  35. package/dist/atomic/components/global/environment.js +1 -1
  36. package/dist/atomic/p-0a78b13e.entry.js +2 -0
  37. package/dist/atomic/p-0a78b13e.entry.js.map +1 -0
  38. package/dist/atomic/{p-5a710350.entry.js → p-10da7681.entry.js} +2 -2
  39. package/dist/atomic/{p-e1d6f5e9.entry.js → p-20019654.entry.js} +2 -2
  40. package/dist/atomic/{p-b05d54e3.entry.js → p-30411cd4.entry.js} +2 -2
  41. package/dist/atomic/{p-aa911e35.entry.js → p-3e38aea6.entry.js} +2 -2
  42. package/dist/atomic/{p-b99fa247.entry.js → p-4177c399.entry.js} +2 -2
  43. package/dist/atomic/{p-e296615c.entry.js → p-44ef70b6.entry.js} +2 -2
  44. package/dist/atomic/{p-80fc1821.entry.js → p-4ae14373.entry.js} +2 -2
  45. package/dist/atomic/p-5d71a211.entry.js +2 -0
  46. package/dist/atomic/p-5d71a211.entry.js.map +1 -0
  47. package/dist/atomic/{p-bed9e234.entry.js → p-61f7b3cf.entry.js} +2 -2
  48. package/dist/atomic/{p-dcba2119.entry.js → p-62afcf79.entry.js} +2 -2
  49. package/dist/atomic/{p-ef5ba5ae.entry.js → p-74822069.entry.js} +2 -2
  50. package/dist/atomic/{p-ab44a3c9.entry.js → p-8103bad3.entry.js} +2 -2
  51. package/dist/atomic/{p-f2467a39.entry.js → p-8acb1466.entry.js} +2 -2
  52. package/dist/atomic/{p-c865f044.entry.js → p-aa616502.entry.js} +2 -2
  53. package/dist/atomic/{p-2c221588.entry.js → p-b4ad3036.entry.js} +2 -2
  54. package/dist/atomic/{p-ca3dc59b.entry.js → p-b5ed8ce2.entry.js} +2 -2
  55. package/dist/atomic/{p-2caf7109.entry.js → p-b7cd0342.entry.js} +2 -2
  56. package/dist/atomic/{p-5f2d62d9.entry.js → p-d2d22ab2.entry.js} +2 -2
  57. package/dist/atomic/p-d8028950.entry.js +2 -0
  58. package/dist/atomic/p-d8028950.entry.js.map +1 -0
  59. package/dist/atomic/{p-47d35e28.entry.js → p-df1d50c8.entry.js} +2 -2
  60. package/dist/atomic/{p-bc8e7f18.entry.js → p-dfc385b7.entry.js} +2 -2
  61. package/dist/atomic/{p-db9d1345.js → p-e284c8c5.js} +2 -2
  62. package/dist/atomic/{p-fa11d674.entry.js → p-f073a78d.entry.js} +2 -2
  63. package/dist/cjs/_loader.cjs.js +1 -1
  64. package/dist/cjs/{analytics-config-4d3d32b9.js → analytics-config-71e99ec5.js} +2 -2
  65. package/dist/cjs/{analytics-config-4d3d32b9.js.map → analytics-config-71e99ec5.js.map} +1 -1
  66. package/dist/cjs/atomic-category-facet.cjs.entry.js +1 -1
  67. package/dist/cjs/atomic-facet.cjs.entry.js +1 -1
  68. package/dist/cjs/atomic-format-currency.cjs.entry.js +1 -1
  69. package/dist/cjs/atomic-format-number.cjs.entry.js +1 -1
  70. package/dist/cjs/atomic-format-unit.cjs.entry.js +1 -1
  71. package/dist/cjs/atomic-insight-interface.cjs.entry.js +1 -1
  72. package/dist/cjs/atomic-insight-search-box.cjs.entry.js +30 -4
  73. package/dist/cjs/atomic-insight-search-box.cjs.entry.js.map +1 -1
  74. package/dist/cjs/atomic-numeric-facet.cjs.entry.js +1 -1
  75. package/dist/cjs/atomic-quickview-modal.cjs.entry.js +1 -1
  76. package/dist/cjs/atomic-quickview.cjs.entry.js +1 -1
  77. package/dist/cjs/atomic-recs-interface.cjs.entry.js +1 -1
  78. package/dist/cjs/atomic-relevance-inspector.cjs.entry.js +38 -0
  79. package/dist/cjs/atomic-relevance-inspector.cjs.entry.js.map +1 -0
  80. package/dist/cjs/atomic-result-children.cjs.entry.js +1 -1
  81. package/dist/cjs/atomic-result-fields-list.cjs.entry.js +1 -1
  82. package/dist/cjs/atomic-result-link.cjs.entry.js +1 -1
  83. package/dist/cjs/atomic-result-list.cjs.entry.js +1 -1
  84. package/dist/cjs/atomic-result-placeholder_8.cjs.entry.js +1 -1
  85. package/dist/cjs/{atomic-search-box-query-suggestions_2.cjs.entry.js → atomic-search-box-recent-queries.cjs.entry.js} +5 -68
  86. package/dist/cjs/atomic-search-box-recent-queries.cjs.entry.js.map +1 -0
  87. package/dist/cjs/atomic-search-box.cjs.entry.js +3 -3
  88. package/dist/cjs/atomic-smart-snippet-feedback-modal.cjs.entry.js +2 -2
  89. package/dist/cjs/atomic-sort-dropdown.cjs.entry.js +2 -2
  90. package/dist/cjs/atomic-sort-expression.cjs.entry.js +1 -1
  91. package/dist/cjs/atomic-tab-manager.cjs.entry.js +1 -1
  92. package/dist/cjs/atomic.cjs.js +1 -1
  93. package/dist/cjs/index-757bc886.js +6 -2
  94. package/dist/cjs/version.cjs.js +1 -1
  95. package/dist/esm/_loader.js +1 -1
  96. package/dist/esm/{analytics-config-5b3d6dfb.js → analytics-config-e2fb2ef4.js} +2 -2
  97. package/dist/esm/{analytics-config-5b3d6dfb.js.map → analytics-config-e2fb2ef4.js.map} +1 -1
  98. package/dist/esm/atomic-category-facet.entry.js +1 -1
  99. package/dist/esm/atomic-facet.entry.js +1 -1
  100. package/dist/esm/atomic-format-currency.entry.js +1 -1
  101. package/dist/esm/atomic-format-number.entry.js +1 -1
  102. package/dist/esm/atomic-format-unit.entry.js +1 -1
  103. package/dist/esm/atomic-insight-interface.entry.js +1 -1
  104. package/dist/esm/atomic-insight-search-box.entry.js +29 -3
  105. package/dist/esm/atomic-insight-search-box.entry.js.map +1 -1
  106. package/dist/esm/atomic-numeric-facet.entry.js +1 -1
  107. package/dist/esm/atomic-quickview-modal.entry.js +1 -1
  108. package/dist/esm/atomic-quickview.entry.js +1 -1
  109. package/dist/esm/atomic-recs-interface.entry.js +1 -1
  110. package/dist/esm/atomic-relevance-inspector.entry.js +34 -0
  111. package/dist/esm/atomic-relevance-inspector.entry.js.map +1 -0
  112. package/dist/esm/atomic-result-children.entry.js +1 -1
  113. package/dist/esm/atomic-result-fields-list.entry.js +1 -1
  114. package/dist/esm/atomic-result-link.entry.js +1 -1
  115. package/dist/esm/atomic-result-list.entry.js +1 -1
  116. package/dist/esm/atomic-result-placeholder_8.entry.js +1 -1
  117. package/dist/esm/{atomic-search-box-query-suggestions_2.entry.js → atomic-search-box-recent-queries.entry.js} +8 -70
  118. package/dist/esm/atomic-search-box-recent-queries.entry.js.map +1 -0
  119. package/dist/esm/atomic-search-box.entry.js +3 -3
  120. package/dist/esm/atomic-smart-snippet-feedback-modal.entry.js +2 -2
  121. package/dist/esm/atomic-sort-dropdown.entry.js +2 -2
  122. package/dist/esm/atomic-sort-expression.entry.js +1 -1
  123. package/dist/esm/atomic-tab-manager.entry.js +1 -1
  124. package/dist/esm/atomic.js +1 -1
  125. package/dist/esm/index-3f35faca.js +6 -2
  126. package/dist/esm/version.js +1 -1
  127. package/dist/types/components/search/atomic-relevance-inspector/atomic-relevance-inspector.d.ts +8 -18
  128. package/dist/types/components/search/{search-box-suggestions/atomic-search-box-query-suggestions → atomic-search-box-query-suggestions}/atomic-search-box-query-suggestions.d.ts +16 -7
  129. package/dist/types/components/search/atomic-search-interface/atomic-search-interface.d.ts +4 -1
  130. package/dist/types/components/search/index.d.ts +1 -1
  131. package/dist/types/components.d.ts +53 -49
  132. package/docs/atomic-docs.json +90 -102
  133. package/package.json +1 -1
  134. package/dist/atomic/components/atomic-search-box-query-suggestions.d.ts +0 -11
  135. package/dist/atomic/components/atomic-search-box-query-suggestions.js +0 -8
  136. package/dist/atomic/components/atomic-search-box-query-suggestions.js.map +0 -1
  137. package/dist/atomic/components/atomic-search-box-query-suggestions2.js +0 -89
  138. package/dist/atomic/components/atomic-search-box-query-suggestions2.js.map +0 -1
  139. package/dist/atomic/components/components/search/atomic-relevance-inspector/atomic-relevance-inspector.js +0 -101
  140. package/dist/atomic/components/stencil-query-suggestions.js +0 -33
  141. package/dist/atomic/components/stencil-query-suggestions.js.map +0 -1
  142. package/dist/atomic/p-78bb2db9.entry.js +0 -2
  143. package/dist/atomic/p-78bb2db9.entry.js.map +0 -1
  144. package/dist/atomic/p-a1522fe5.entry.js +0 -2
  145. package/dist/atomic/p-a1522fe5.entry.js.map +0 -1
  146. package/dist/atomic/p-af93b44c.js +0 -2
  147. package/dist/atomic/p-af93b44c.js.map +0 -1
  148. package/dist/cjs/atomic-search-box-query-suggestions_2.cjs.entry.js.map +0 -1
  149. package/dist/cjs/stencil-query-suggestions-03268ecc.js +0 -38
  150. package/dist/cjs/stencil-query-suggestions-03268ecc.js.map +0 -1
  151. package/dist/esm/atomic-search-box-query-suggestions_2.entry.js.map +0 -1
  152. package/dist/esm/stencil-query-suggestions-5d6a46d7.js +0 -33
  153. package/dist/esm/stencil-query-suggestions-5d6a46d7.js.map +0 -1
  154. /package/dist/atomic/{p-5a710350.entry.js.map → p-10da7681.entry.js.map} +0 -0
  155. /package/dist/atomic/{p-e1d6f5e9.entry.js.map → p-20019654.entry.js.map} +0 -0
  156. /package/dist/atomic/{p-b05d54e3.entry.js.map → p-30411cd4.entry.js.map} +0 -0
  157. /package/dist/atomic/{p-aa911e35.entry.js.map → p-3e38aea6.entry.js.map} +0 -0
  158. /package/dist/atomic/{p-b99fa247.entry.js.map → p-4177c399.entry.js.map} +0 -0
  159. /package/dist/atomic/{p-e296615c.entry.js.map → p-44ef70b6.entry.js.map} +0 -0
  160. /package/dist/atomic/{p-80fc1821.entry.js.map → p-4ae14373.entry.js.map} +0 -0
  161. /package/dist/atomic/{p-bed9e234.entry.js.map → p-61f7b3cf.entry.js.map} +0 -0
  162. /package/dist/atomic/{p-dcba2119.entry.js.map → p-62afcf79.entry.js.map} +0 -0
  163. /package/dist/atomic/{p-ef5ba5ae.entry.js.map → p-74822069.entry.js.map} +0 -0
  164. /package/dist/atomic/{p-ab44a3c9.entry.js.map → p-8103bad3.entry.js.map} +0 -0
  165. /package/dist/atomic/{p-f2467a39.entry.js.map → p-8acb1466.entry.js.map} +0 -0
  166. /package/dist/atomic/{p-c865f044.entry.js.map → p-aa616502.entry.js.map} +0 -0
  167. /package/dist/atomic/{p-2c221588.entry.js.map → p-b4ad3036.entry.js.map} +0 -0
  168. /package/dist/atomic/{p-ca3dc59b.entry.js.map → p-b5ed8ce2.entry.js.map} +0 -0
  169. /package/dist/atomic/{p-2caf7109.entry.js.map → p-b7cd0342.entry.js.map} +0 -0
  170. /package/dist/atomic/{p-5f2d62d9.entry.js.map → p-d2d22ab2.entry.js.map} +0 -0
  171. /package/dist/atomic/{p-47d35e28.entry.js.map → p-df1d50c8.entry.js.map} +0 -0
  172. /package/dist/atomic/{p-bc8e7f18.entry.js.map → p-dfc385b7.entry.js.map} +0 -0
  173. /package/dist/atomic/{p-db9d1345.js.map → p-e284c8c5.js.map} +0 -0
  174. /package/dist/atomic/{p-fa11d674.entry.js.map → p-f073a78d.entry.js.map} +0 -0
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2025-10-01T16:05:58",
2
+ "timestamp": "2025-10-01T21:59:49",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.20.0",
@@ -9341,6 +9341,88 @@
9341
9341
  ]
9342
9342
  }
9343
9343
  },
9344
+ {
9345
+ "filePath": "src/components/search/atomic-relevance-inspector/atomic-relevance-inspector.tsx",
9346
+ "encapsulation": "shadow",
9347
+ "tag": "atomic-relevance-inspector",
9348
+ "docs": "The `atomic-relevance-inspector` component is used internally to offer insight on search page relevance, as well as information to help troubleshoot issues during development.",
9349
+ "docsTags": [],
9350
+ "usage": {},
9351
+ "props": [
9352
+ {
9353
+ "name": "bindings",
9354
+ "type": "CommonBindings<SearchEngine<{}>, SearchStore, AtomicSearchInterface> & NonceBindings",
9355
+ "complexType": {
9356
+ "original": "Bindings",
9357
+ "resolved": "CommonBindings<SearchEngine<{}>, SearchStore, AtomicSearchInterface> & NonceBindings",
9358
+ "references": {
9359
+ "Bindings": {
9360
+ "location": "import",
9361
+ "path": "../atomic-search-interface/atomic-search-interface",
9362
+ "id": "src/components/search/atomic-search-interface/atomic-search-interface.ts::Bindings"
9363
+ }
9364
+ }
9365
+ },
9366
+ "mutable": false,
9367
+ "reflectToAttr": false,
9368
+ "docs": "The Atomic interface bindings, namely the headless search engine and i18n instances.",
9369
+ "docsTags": [],
9370
+ "values": [
9371
+ {
9372
+ "type": "CommonBindings<SearchEngine<{}>, SearchStore, AtomicSearchInterface> & NonceBindings"
9373
+ }
9374
+ ],
9375
+ "optional": false,
9376
+ "required": true
9377
+ },
9378
+ {
9379
+ "name": "open",
9380
+ "type": "boolean",
9381
+ "complexType": {
9382
+ "original": "boolean",
9383
+ "resolved": "boolean",
9384
+ "references": {}
9385
+ },
9386
+ "mutable": false,
9387
+ "attr": "open",
9388
+ "reflectToAttr": true,
9389
+ "docs": "",
9390
+ "docsTags": [],
9391
+ "default": "false",
9392
+ "values": [
9393
+ {
9394
+ "type": "boolean"
9395
+ }
9396
+ ],
9397
+ "optional": false,
9398
+ "required": false
9399
+ }
9400
+ ],
9401
+ "methods": [],
9402
+ "events": [
9403
+ {
9404
+ "event": "atomic/relevanceInspector/close",
9405
+ "detail": "any",
9406
+ "bubbles": true,
9407
+ "complexType": {
9408
+ "original": "any",
9409
+ "resolved": "any",
9410
+ "references": {}
9411
+ },
9412
+ "cancelable": true,
9413
+ "composed": true,
9414
+ "docs": "",
9415
+ "docsTags": []
9416
+ }
9417
+ ],
9418
+ "listeners": [],
9419
+ "styles": [],
9420
+ "slots": [],
9421
+ "parts": [],
9422
+ "dependents": [],
9423
+ "dependencies": [],
9424
+ "dependencyGraph": {}
9425
+ },
9344
9426
  {
9345
9427
  "filePath": "src/components/search/atomic-result/atomic-result.tsx",
9346
9428
  "encapsulation": "shadow",
@@ -12392,14 +12474,12 @@
12392
12474
  "dependents": [],
12393
12475
  "dependencies": [
12394
12476
  "atomic-suggestion-renderer",
12395
- "atomic-search-box-recent-queries",
12396
- "atomic-search-box-query-suggestions"
12477
+ "atomic-search-box-recent-queries"
12397
12478
  ],
12398
12479
  "dependencyGraph": {
12399
12480
  "atomic-search-box": [
12400
12481
  "atomic-suggestion-renderer",
12401
- "atomic-search-box-recent-queries",
12402
- "atomic-search-box-query-suggestions"
12482
+ "atomic-search-box-recent-queries"
12403
12483
  ]
12404
12484
  }
12405
12485
  },
@@ -12620,103 +12700,6 @@
12620
12700
  ]
12621
12701
  }
12622
12702
  },
12623
- {
12624
- "filePath": "src/components/search/search-box-suggestions/atomic-search-box-query-suggestions/atomic-search-box-query-suggestions.tsx",
12625
- "encapsulation": "shadow",
12626
- "tag": "atomic-search-box-query-suggestions",
12627
- "docs": "The `atomic-search-box-query-suggestions` component can be added as a child of an `atomic-search-box` component, allowing for the configuration of query suggestion behavior.",
12628
- "docsTags": [],
12629
- "usage": {},
12630
- "props": [
12631
- {
12632
- "name": "icon",
12633
- "type": "string | undefined",
12634
- "complexType": {
12635
- "original": "string",
12636
- "resolved": "string | undefined",
12637
- "references": {}
12638
- },
12639
- "mutable": false,
12640
- "attr": "icon",
12641
- "reflectToAttr": false,
12642
- "docs": "The SVG icon to display.\n\n- Use a value that starts with `http://`, `https://`, `./`, or `../`, to fetch and display an icon from a given location.\n- Use a value that starts with `assets://`, to display an icon from the Atomic package.\n- Use a stringified SVG to display it directly.",
12643
- "docsTags": [],
12644
- "values": [
12645
- {
12646
- "type": "string"
12647
- },
12648
- {
12649
- "type": "undefined"
12650
- }
12651
- ],
12652
- "optional": true,
12653
- "required": false
12654
- },
12655
- {
12656
- "name": "maxWithQuery",
12657
- "type": "number | undefined",
12658
- "complexType": {
12659
- "original": "number",
12660
- "resolved": "number | undefined",
12661
- "references": {}
12662
- },
12663
- "mutable": false,
12664
- "attr": "max-with-query",
12665
- "reflectToAttr": true,
12666
- "docs": "The maximum number of suggestions that will be displayed if the user has typed something into the input field.",
12667
- "docsTags": [],
12668
- "values": [
12669
- {
12670
- "type": "number"
12671
- },
12672
- {
12673
- "type": "undefined"
12674
- }
12675
- ],
12676
- "optional": true,
12677
- "required": false
12678
- },
12679
- {
12680
- "name": "maxWithoutQuery",
12681
- "type": "number | undefined",
12682
- "complexType": {
12683
- "original": "number",
12684
- "resolved": "number | undefined",
12685
- "references": {}
12686
- },
12687
- "mutable": false,
12688
- "attr": "max-without-query",
12689
- "reflectToAttr": true,
12690
- "docs": "The maximum number of suggestions that will be displayed initially when the input field is empty.",
12691
- "docsTags": [],
12692
- "values": [
12693
- {
12694
- "type": "number"
12695
- },
12696
- {
12697
- "type": "undefined"
12698
- }
12699
- ],
12700
- "optional": true,
12701
- "required": false
12702
- }
12703
- ],
12704
- "methods": [],
12705
- "events": [],
12706
- "listeners": [],
12707
- "styles": [],
12708
- "slots": [],
12709
- "parts": [],
12710
- "dependents": [
12711
- "atomic-search-box"
12712
- ],
12713
- "dependencies": [],
12714
- "dependencyGraph": {
12715
- "atomic-search-box": [
12716
- "atomic-search-box-query-suggestions"
12717
- ]
12718
- }
12719
- },
12720
12703
  {
12721
12704
  "filePath": "src/components/search/search-box-suggestions/atomic-search-box-recent-queries/atomic-search-box-recent-queries.tsx",
12722
12705
  "encapsulation": "shadow",
@@ -15609,6 +15592,11 @@
15609
15592
  "docstring": "",
15610
15593
  "path": "src/utils/initialization-utils.tsx"
15611
15594
  },
15595
+ "src/components/search/atomic-search-interface/atomic-search-interface.ts::Bindings": {
15596
+ "declaration": "export type Bindings = CommonBindings<\n SearchEngine,\n SearchStore,\n AtomicSearchInterface\n> &\n //TODO: KIT-4893 - Remove once atomic-quickview-modal migration is complete.\n NonceBindings;",
15597
+ "docstring": "",
15598
+ "path": "src/components/search/atomic-search-interface/atomic-search-interface.ts"
15599
+ },
15612
15600
  "../headless/dist/definitions/index.d.ts::FoldedResult": {
15613
15601
  "declaration": "any",
15614
15602
  "docstring": "",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@coveo/atomic",
3
3
  "type": "module",
4
- "version": "3.33.9-pre.04dc119c6b",
4
+ "version": "3.33.9-pre.0eb4b6e2f5",
5
5
  "description": "A web-component library for building modern UIs interfacing with the Coveo platform",
6
6
  "homepage": "https://docs.coveo.com/en/atomic/latest/",
7
7
  "repository": {
@@ -1,11 +0,0 @@
1
- import type { Components, JSX } from "../../types/components";
2
-
3
- interface AtomicSearchBoxQuerySuggestions extends Components.AtomicSearchBoxQuerySuggestions, HTMLElement {}
4
- export const AtomicSearchBoxQuerySuggestions: {
5
- prototype: AtomicSearchBoxQuerySuggestions;
6
- new (): AtomicSearchBoxQuerySuggestions;
7
- };
8
- /**
9
- * Used to define this component and all nested components recursively.
10
- */
11
- export const defineCustomElement: () => void;
@@ -1,8 +0,0 @@
1
- import { A as AtomicSearchBoxQuerySuggestions$1, d as defineCustomElement$1 } from './atomic-search-box-query-suggestions2.js';
2
-
3
- const AtomicSearchBoxQuerySuggestions = AtomicSearchBoxQuerySuggestions$1;
4
- const defineCustomElement = defineCustomElement$1;
5
-
6
- export { AtomicSearchBoxQuerySuggestions, defineCustomElement };
7
-
8
- //# sourceMappingURL=atomic-search-box-query-suggestions.js.map
@@ -1 +0,0 @@
1
- {"file":"atomic-search-box-query-suggestions.js","mappings":";;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
@@ -1,89 +0,0 @@
1
- import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
2
- import { loadQuerySuggestActions } from '@coveo/headless';
3
- import { S as SearchIcon } from './search.js';
4
- import { g as getPartialSearchBoxSuggestionElement, Q as QuerySuggestionContainer, a as QuerySuggestionIcon, b as QuerySuggestionText } from './stencil-query-suggestions.js';
5
- import { d as dispatchSearchBoxSuggestionsEvent } from './suggestions-events.js';
6
-
7
- const AtomicSearchBoxQuerySuggestions = /*@__PURE__*/ proxyCustomElement(class AtomicSearchBoxQuerySuggestions extends HTMLElement {
8
- constructor() {
9
- super();
10
- this.__registerHost();
11
- this.__attachShadow();
12
- this.error = undefined;
13
- this.icon = undefined;
14
- this.maxWithQuery = undefined;
15
- this.maxWithoutQuery = undefined;
16
- }
17
- componentWillLoad() {
18
- try {
19
- dispatchSearchBoxSuggestionsEvent((bindings) => {
20
- this.bindings = bindings;
21
- return this.initialize();
22
- }, this.host, ['atomic-search-box']);
23
- }
24
- catch (error) {
25
- this.error = error;
26
- }
27
- }
28
- initialize() {
29
- const engine = this.bindings.engine;
30
- const { registerQuerySuggest, fetchQuerySuggestions } = loadQuerySuggestActions(engine);
31
- engine.dispatch(registerQuerySuggest({
32
- id: this.bindings.id,
33
- count: this.bindings.numberOfQueries,
34
- }));
35
- return {
36
- position: Array.from(this.host.parentNode.children).indexOf(this.host),
37
- onInput: () => engine.dispatch(fetchQuerySuggestions({
38
- id: this.bindings.id,
39
- })),
40
- renderItems: () => this.renderItems(),
41
- };
42
- }
43
- renderItems() {
44
- const hasQuery = this.bindings.searchBoxController.state.value !== '';
45
- const max = hasQuery ? this.maxWithQuery : this.maxWithoutQuery;
46
- return this.bindings.searchBoxController.state.suggestions
47
- .slice(0, max)
48
- .map((suggestion) => this.renderItem(suggestion));
49
- }
50
- renderItem(suggestion) {
51
- const hasQuery = this.bindings.searchBoxController.state.value !== '';
52
- const partialItem = getPartialSearchBoxSuggestionElement(suggestion, this.bindings.i18n);
53
- return {
54
- ...partialItem,
55
- content: (h(QuerySuggestionContainer, null, h(QuerySuggestionIcon, { icon: this.icon || SearchIcon, hasSuggestion: this.bindings.getSuggestions().length > 1 }), h(QuerySuggestionText, { suggestion: suggestion, hasQuery: hasQuery }))),
56
- onSelect: () => {
57
- this.bindings.searchBoxController.selectSuggestion(suggestion.rawValue);
58
- },
59
- };
60
- }
61
- render() {
62
- if (this.error) {
63
- return (h("atomic-component-error", { key: '473f8988f08fd8dae7efa056dd16f91427b90a25', element: this.host, error: this.error }));
64
- }
65
- }
66
- get host() { return this; }
67
- }, [1, "atomic-search-box-query-suggestions", {
68
- "icon": [1],
69
- "maxWithQuery": [514, "max-with-query"],
70
- "maxWithoutQuery": [514, "max-without-query"],
71
- "error": [32]
72
- }]);
73
- function defineCustomElement() {
74
- if (typeof customElements === "undefined") {
75
- return;
76
- }
77
- const components = ["atomic-search-box-query-suggestions"];
78
- components.forEach(tagName => { switch (tagName) {
79
- case "atomic-search-box-query-suggestions":
80
- if (!customElements.get(tagName)) {
81
- customElements.define(tagName, AtomicSearchBoxQuerySuggestions);
82
- }
83
- break;
84
- } });
85
- }
86
-
87
- export { AtomicSearchBoxQuerySuggestions as A, defineCustomElement as d };
88
-
89
- //# sourceMappingURL=atomic-search-box-query-suggestions2.js.map
@@ -1 +0,0 @@
1
- {"file":"atomic-search-box-query-suggestions2.js","mappings":";;;;;;MA8Ba,+BAA+B;;;;;;;;;;IAwB1C,iBAAiB;QACf,IAAI;YACF,iCAAiC,CAC/B,CAAC,QAAQ;gBACP,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACzB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;aAC1B,EACD,IAAI,CAAC,IAAI,EACT,CAAC,mBAAmB,CAAC,CACtB,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,KAAK,GAAG,KAAc,CAAC;SAC7B;KACF;IAEO,UAAU;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAG3B,CAAC;QACH,MAAM,EAAC,oBAAoB,EAAE,qBAAqB,EAAC,GACjD,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAElC,MAAM,CAAC,QAAQ,CACb,oBAAoB,CAAC;YACnB,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;YACpB,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe;SACrC,CAAC,CACH,CAAC;QAEF,OAAO;YACL,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAW,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YACvE,OAAO,EAAE,MACP,MAAM,CAAC,QAAQ,CACb,qBAAqB,CAAC;gBACpB,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;aACrB,CAAC,CACH;YACH,WAAW,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE;SACtC,CAAC;KACH;IAEO,WAAW;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;QACtE,MAAM,GAAG,GAAG,QAAQ,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC;QAChE,OAAO,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,WAAW;aACvD,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;aACb,GAAG,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;KACrD;IAEO,UAAU,CAAC,UAAsB;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;QACtE,MAAM,WAAW,GAAG,oCAAoC,CACtD,UAAU,EACV,IAAI,CAAC,QAAQ,CAAC,IAAI,CACnB,CAAC;QAEF,OAAO;YACL,GAAG,WAAW;YACd,OAAO,GACL,EAAC,wBAAwB,QACvB,EAAC,mBAAmB,IAClB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,UAAU,EAC7B,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,MAAM,GAAG,CAAC,GACxD,EAEF,EAAC,mBAAmB,IAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAC1C,CAC5B;YACD,QAAQ,EAAE;gBACR,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;aACzE;SACF,CAAC;KACH;IAEM,MAAM;QACX,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,QACE,+EACE,OAAO,EAAE,IAAI,CAAC,IAAI,EAClB,KAAK,EAAE,IAAI,CAAC,KAAK,GACO,EAC1B;SACH;KACF;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/search/search-box-suggestions/atomic-search-box-query-suggestions/atomic-search-box-query-suggestions.tsx"],"sourcesContent":["import {\n loadQuerySuggestActions,\n SearchBox,\n SearchEngine,\n Suggestion,\n} from '@coveo/headless';\nimport {Component, Element, Prop, State, h} from '@stencil/core';\nimport SearchIcon from '../../../../images/search.svg';\nimport {\n getPartialSearchBoxSuggestionElement,\n QuerySuggestionContainer,\n QuerySuggestionIcon,\n QuerySuggestionText,\n} from '../../../common/suggestions/stencil-query-suggestions';\nimport {\n dispatchSearchBoxSuggestionsEvent,\n} from '../../../common/suggestions/suggestions-events';\nimport type {\n SearchBoxSuggestionElement,\n SearchBoxSuggestions,\n SearchBoxSuggestionsBindings,\n} from '../../../common/suggestions/suggestions-types';\n\n/**\n * The `atomic-search-box-query-suggestions` component can be added as a child of an `atomic-search-box` component, allowing for the configuration of query suggestion behavior.\n */\n@Component({\n tag: 'atomic-search-box-query-suggestions',\n shadow: true,\n})\nexport class AtomicSearchBoxQuerySuggestions {\n private bindings!: SearchBoxSuggestionsBindings<SearchBox>;\n @Element() private host!: HTMLElement;\n\n @State() public error!: Error;\n\n /**\n * The SVG icon to display.\n *\n * - Use a value that starts with `http://`, `https://`, `./`, or `../`, to fetch and display an icon from a given location.\n * - Use a value that starts with `assets://`, to display an icon from the Atomic package.\n * - Use a stringified SVG to display it directly.\n */\n @Prop() public icon?: string;\n\n /**\n * The maximum number of suggestions that will be displayed if the user has typed something into the input field.\n */\n @Prop({reflect: true}) public maxWithQuery?: number;\n /**\n * The maximum number of suggestions that will be displayed initially when the input field is empty.\n */\n @Prop({reflect: true}) public maxWithoutQuery?: number;\n\n componentWillLoad() {\n try {\n dispatchSearchBoxSuggestionsEvent<SearchBox>(\n (bindings) => {\n this.bindings = bindings;\n return this.initialize();\n },\n this.host,\n ['atomic-search-box']\n );\n } catch (error) {\n this.error = error as Error;\n }\n }\n\n private initialize(): SearchBoxSuggestions {\n const engine = this.bindings.engine as SearchEngine<{\n querySet: string;\n querySuggest: string;\n }>;\n const {registerQuerySuggest, fetchQuerySuggestions} =\n loadQuerySuggestActions(engine);\n\n engine.dispatch(\n registerQuerySuggest({\n id: this.bindings.id,\n count: this.bindings.numberOfQueries,\n })\n );\n\n return {\n position: Array.from(this.host.parentNode!.children).indexOf(this.host),\n onInput: () =>\n engine.dispatch(\n fetchQuerySuggestions({\n id: this.bindings.id,\n })\n ),\n renderItems: () => this.renderItems(),\n };\n }\n\n private renderItems(): SearchBoxSuggestionElement[] {\n const hasQuery = this.bindings.searchBoxController.state.value !== '';\n const max = hasQuery ? this.maxWithQuery : this.maxWithoutQuery;\n return this.bindings.searchBoxController.state.suggestions\n .slice(0, max)\n .map((suggestion) => this.renderItem(suggestion));\n }\n\n private renderItem(suggestion: Suggestion) {\n const hasQuery = this.bindings.searchBoxController.state.value !== '';\n const partialItem = getPartialSearchBoxSuggestionElement(\n suggestion,\n this.bindings.i18n\n );\n\n return {\n ...partialItem,\n content: (\n <QuerySuggestionContainer>\n <QuerySuggestionIcon\n icon={this.icon || SearchIcon}\n hasSuggestion={this.bindings.getSuggestions().length > 1}\n />\n\n <QuerySuggestionText suggestion={suggestion} hasQuery={hasQuery} />\n </QuerySuggestionContainer>\n ),\n onSelect: () => {\n this.bindings.searchBoxController.selectSuggestion(suggestion.rawValue);\n },\n };\n }\n\n public render() {\n if (this.error) {\n return (\n <atomic-component-error\n element={this.host}\n error={this.error}\n ></atomic-component-error>\n );\n }\n }\n}\n"],"version":3}
@@ -1,101 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { getOrganizationEndpoint } from '@coveo/headless';
8
- import { html, LitElement, nothing } from 'lit';
9
- import { customElement, state } from 'lit/decorators.js';
10
- import { renderButton } from "../../common/button";
11
- import { withTailwindStyles } from "../../../decorators/with-tailwind-styles.js";
12
- import "../../common/atomic-modal/atomic-modal";
13
- import { bindingGuard } from "../../../decorators/binding-guard";
14
- import { bindings } from "../../../decorators/bindings";
15
- import { errorGuard } from "../../../decorators/error-guard";
16
- /**
17
- * The `atomic-relevance-inspector` component is used internally to offer insight on search page relevance, as well as information to help troubleshoot issues during development.
18
- *
19
- * @internal
20
- */
21
- let AtomicRelevanceInspector = class AtomicRelevanceInspector extends LitElement {
22
- constructor() {
23
- super(...arguments);
24
- this.open = false;
25
- this.initialize = () => {
26
- this.bindings.interfaceElement.addEventListener('dblclick', this.handleRelevanceInspectorDoubleClick);
27
- console.log(this.bindings);
28
- };
29
- this.handleRelevanceInspectorDoubleClick = (e) => {
30
- if (e.altKey) {
31
- this.open = !this.open;
32
- }
33
- };
34
- }
35
- disconnectedCallback() {
36
- this.removeEventListener('dblclick', this.handleRelevanceInspectorDoubleClick);
37
- }
38
- render() {
39
- return html `
40
- <atomic-modal
41
- .isOpen=${this.open}
42
- @close=${() => this.handleCloseRelevanceInspector()}
43
- exportparts="footer"
44
- >
45
- <p slot="header">Open the relevance inspector</p>
46
- <p slot="body">
47
- The Relevance Inspector will open in the Coveo Administration Console.
48
- </p>
49
- <div slot="footer" class="flex w-full items-center justify-end">
50
- ${renderButton({
51
- props: {
52
- style: 'outline-primary',
53
- class: 'mr-2 p-2',
54
- onClick: () => this.handleCloseRelevanceInspector(),
55
- text: 'Ignore',
56
- },
57
- })(nothing)}
58
- ${renderButton({
59
- props: {
60
- style: 'primary',
61
- class: 'p-2',
62
- onClick: () => {
63
- window.open(this.adminHref, '_blank');
64
- this.handleCloseRelevanceInspector();
65
- },
66
- text: 'Open',
67
- },
68
- })(nothing)}
69
- </div>
70
- </atomic-modal>
71
- `;
72
- }
73
- handleCloseRelevanceInspector() {
74
- this.open = false;
75
- }
76
- get adminHref() {
77
- const { organizationId, environment } = this.bindings.engine.state.configuration;
78
- const admin = getOrganizationEndpoint(organizationId, environment, 'admin');
79
- const { searchResponseId } = this.bindings.engine.state.search;
80
- return `${admin}/admin/#/${organizationId}/search/relevanceInspector/${searchResponseId}`;
81
- }
82
- };
83
- __decorate([
84
- state()
85
- ], AtomicRelevanceInspector.prototype, "bindings", void 0);
86
- __decorate([
87
- state()
88
- ], AtomicRelevanceInspector.prototype, "error", void 0);
89
- __decorate([
90
- state()
91
- ], AtomicRelevanceInspector.prototype, "open", void 0);
92
- __decorate([
93
- bindingGuard(),
94
- errorGuard()
95
- ], AtomicRelevanceInspector.prototype, "render", null);
96
- AtomicRelevanceInspector = __decorate([
97
- customElement('atomic-relevance-inspector'),
98
- bindings(),
99
- withTailwindStyles
100
- ], AtomicRelevanceInspector);
101
- export { AtomicRelevanceInspector };
@@ -1,33 +0,0 @@
1
- import { h } from '@stencil/core/internal/client';
2
- import { e as encodeForDomAttribute } from './string-utils.js';
3
-
4
- const getPartialSearchBoxSuggestionElement = (suggestion, i18n) => {
5
- return {
6
- part: 'query-suggestion-item',
7
- key: `qs-${encodeForDomAttribute(suggestion.rawValue)}`,
8
- query: suggestion.rawValue,
9
- ariaLabel: i18n.t('query-suggestion-label', {
10
- query: suggestion.rawValue,
11
- interpolation: { escapeValue: false },
12
- }),
13
- };
14
- };
15
- const QuerySuggestionContainer = (_, children) => {
16
- return (h("div", { part: "query-suggestion-content", class: "flex items-center" }, children));
17
- };
18
- const QuerySuggestionIcon = ({ icon, hasSuggestion }) => {
19
- if (!hasSuggestion) {
20
- return;
21
- }
22
- return (h("atomic-icon", { part: "query-suggestion-icon", icon: icon, class: "mr-2 h-4 w-4 shrink-0" }));
23
- };
24
- const QuerySuggestionText = ({ suggestion, hasQuery }) => {
25
- if (hasQuery) {
26
- return (h("span", { part: "query-suggestion-text", class: "line-clamp-2 break-all", innerHTML: suggestion.highlightedValue }));
27
- }
28
- return (h("span", { part: "query-suggestion-text", class: "line-clamp-2 break-all" }, suggestion.rawValue));
29
- };
30
-
31
- export { QuerySuggestionContainer as Q, QuerySuggestionIcon as a, QuerySuggestionText as b, getPartialSearchBoxSuggestionElement as g };
32
-
33
- //# sourceMappingURL=stencil-query-suggestions.js.map
@@ -1 +0,0 @@
1
- {"file":"stencil-query-suggestions.js","mappings":";;;MAUa,oCAAoC,GAAG,CAClD,UAAsB,EACtB,IAAU;IAEV,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,GAAG,EAAE,MAAM,qBAAqB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QACvD,KAAK,EAAE,UAAU,CAAC,QAAQ;QAC1B,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,wBAAwB,EAAE;YAC1C,KAAK,EAAE,UAAU,CAAC,QAAQ;YAC1B,aAAa,EAAE,EAAC,WAAW,EAAE,KAAK,EAAC;SACpC,CAAC;KACH,CAAC;AACJ,EAAE;MAEW,wBAAwB,GAAwB,CAAC,CAAC,EAAE,QAAQ;IACvE,QACE,WAAK,IAAI,EAAC,0BAA0B,EAAC,KAAK,EAAC,mBAAmB,IAC3D,QAAQ,CACL,EACN;AACJ,EAAE;MAOW,mBAAmB,GAE5B,CAAC,EAAC,IAAI,EAAE,aAAa,EAAC;IACxB,IAAI,CAAC,aAAa,EAAE;QAClB,OAAO;KACR;IAED,QACE,mBACE,IAAI,EAAC,uBAAuB,EAC5B,IAAI,EAAE,IAAI,EACV,KAAK,EAAC,uBAAuB,GAChB,EACf;AACJ,EAAE;MAOW,mBAAmB,GAE5B,CAAC,EAAC,UAAU,EAAE,QAAQ,EAAC;IACzB,IAAI,QAAQ,EAAE;QACZ,QACE,YACE,IAAI,EAAC,uBAAuB,EAC5B,KAAK,EAAC,wBAAwB,EAC9B,SAAS,EAAE,UAAU,CAAC,gBAAgB,GAChC,EACR;KACH;IAED,QACE,YAAM,IAAI,EAAC,uBAAuB,EAAC,KAAK,EAAC,wBAAwB,IAC9D,UAAU,CAAC,QAAQ,CACf,EACP;AACJ;;;;","names":[],"sources":["src/components/common/suggestions/stencil-query-suggestions.tsx"],"sourcesContent":["import {FunctionalComponent, h} from '@stencil/core';\nimport {i18n} from 'i18next';\nimport {encodeForDomAttribute} from '../../../utils/string-utils.js';\nimport {SearchBoxSuggestionElement} from './suggestions-types.js';\n\ninterface Suggestion {\n highlightedValue: string;\n rawValue: string;\n}\n\nexport const getPartialSearchBoxSuggestionElement = (\n suggestion: Suggestion,\n i18n: i18n\n): Pick<SearchBoxSuggestionElement, 'ariaLabel' | 'key' | 'query' | 'part'> => {\n return {\n part: 'query-suggestion-item',\n key: `qs-${encodeForDomAttribute(suggestion.rawValue)}`,\n query: suggestion.rawValue,\n ariaLabel: i18n.t('query-suggestion-label', {\n query: suggestion.rawValue,\n interpolation: {escapeValue: false},\n }),\n };\n};\n\nexport const QuerySuggestionContainer: FunctionalComponent = (_, children) => {\n return (\n <div part=\"query-suggestion-content\" class=\"flex items-center\">\n {children}\n </div>\n );\n};\n\ninterface QuerySuggestionIconProps {\n icon: string;\n hasSuggestion: boolean;\n}\n\nexport const QuerySuggestionIcon: FunctionalComponent<\n QuerySuggestionIconProps\n> = ({icon, hasSuggestion}) => {\n if (!hasSuggestion) {\n return;\n }\n\n return (\n <atomic-icon\n part=\"query-suggestion-icon\"\n icon={icon}\n class=\"mr-2 h-4 w-4 shrink-0\"\n ></atomic-icon>\n );\n};\n\ninterface QuerySuggestionTextProps {\n suggestion: Suggestion;\n hasQuery: boolean;\n}\n\nexport const QuerySuggestionText: FunctionalComponent<\n QuerySuggestionTextProps\n> = ({suggestion, hasQuery}) => {\n if (hasQuery) {\n return (\n <span\n part=\"query-suggestion-text\"\n class=\"line-clamp-2 break-all\"\n innerHTML={suggestion.highlightedValue}\n ></span>\n );\n }\n\n return (\n <span part=\"query-suggestion-text\" class=\"line-clamp-2 break-all\">\n {suggestion.rawValue}\n </span>\n );\n};\n"],"version":3}
@@ -1,2 +0,0 @@
1
- import{r as t,h as e,g as s}from"./p-dc3df5ce.js";import{loadQuerySuggestActions as r,HighlightUtils as i,buildRecentQueriesList as n}from"@coveo/headless";import{S as a}from"./p-cfb3c589.js";import{g as o,Q as c,a as h,b as l}from"./p-af93b44c.js";import{d as u}from"./p-4b7a19db.js";import{C as p}from"./p-c280cd05.js";import{S as f,a as d}from"./p-946fe85f.js";import{o as m}from"./p-a12e1c59.js";import{e as y}from"./p-8f5830b4.js";import"./p-c9074946.js";import"./p-1580513b.js";import"./p-f284897c.js";import"./p-0462f723.js";const g=class{constructor(e){t(this,e);this.error=undefined;this.icon=undefined;this.maxWithQuery=undefined;this.maxWithoutQuery=undefined}componentWillLoad(){try{u((t=>{this.bindings=t;return this.initialize()}),this.host,["atomic-search-box"])}catch(t){this.error=t}}initialize(){const t=this.bindings.engine;const{registerQuerySuggest:e,fetchQuerySuggestions:s}=r(t);t.dispatch(e({id:this.bindings.id,count:this.bindings.numberOfQueries}));return{position:Array.from(this.host.parentNode.children).indexOf(this.host),onInput:()=>t.dispatch(s({id:this.bindings.id})),renderItems:()=>this.renderItems()}}renderItems(){const t=this.bindings.searchBoxController.state.value!=="";const e=t?this.maxWithQuery:this.maxWithoutQuery;return this.bindings.searchBoxController.state.suggestions.slice(0,e).map((t=>this.renderItem(t)))}renderItem(t){const s=this.bindings.searchBoxController.state.value!=="";const r=o(t,this.bindings.i18n);return{...r,content:e(l,null,e(h,{icon:this.icon||a,hasSuggestion:this.bindings.getSuggestions().length>1}),e(c,{suggestion:t,hasQuery:s})),onSelect:()=>{this.bindings.searchBoxController.selectSuggestion(t.rawValue)}}}render(){if(this.error){return e("atomic-component-error",{key:"473f8988f08fd8dae7efa056dd16f91427b90a25",element:this.host,error:this.error})}}get host(){return s(this)}};const b=(t,e)=>({part:"recent-query-item",query:t,key:`recent-${y(t)}`,ariaLabel:e.t("recent-query-suggestion-label",{query:t,interpolation:{escapeValue:false}})});const q=t=>({key:"recent-query-clear",ariaLabel:t.t("clear-recent-searches",{interpolation:{escapeValue:false}}),part:"recent-query-title-item suggestion-divider",hideIfLast:true});const j=(t,s)=>e("div",{part:"recent-query-content",class:"flex items-center text-left break-all"},s);const x=({icon:t})=>e("atomic-icon",{part:"recent-query-icon",icon:t,class:"mr-2 h-4 w-4 shrink-0"});const S=({query:t,value:s})=>{if(t===""){return e("span",{part:"recent-query-text",class:"line-clamp-2 break-all"},s)}return e("span",{part:"recent-query-text",class:"line-clamp-2 break-all",innerHTML:i.highlightString({content:s,openingDelimiter:'<span part="recent-query-text-highlight" class="font-bold">',closingDelimiter:"</span>",highlights:[{offset:t.length,length:s.length-t.length}]})})};const I=({i18n:t})=>e("div",{part:"recent-query-title-content",class:"flex w-full justify-between"},e("span",{class:"font-bold",part:"recent-query-title"},t.t("recent-searches")),e("span",{part:"recent-query-clear"},t.t("clear")));const L=class{constructor(e){t(this,e);this.maxWithQuery=3;this.warnUser=m((()=>this.bindings.engine.logger.warn("Because analytics are disabled, the recent queries feature is deactivated.")));this.error=undefined;this.icon=undefined;this.maxWithQuery=3;this.maxWithoutQuery=undefined}componentWillLoad(){try{u((t=>{this.bindings=t;return this.initialize()}),this.host,["atomic-search-box"])}catch(t){this.error=t}}renderIcon(){return this.icon||p}initialize(){this.storage=new f;this.recentQueriesList=n(this.bindings.engine,{initialState:{queries:this.retrieveLocalStorage()},options:{maxLength:1e3,clearFilters:this.bindings.clearFilters}});this.recentQueriesList.subscribe((()=>this.updateLocalStorage()));return{position:Array.from(this.host.parentNode.children).indexOf(this.host),renderItems:()=>this.renderItems()}}retrieveLocalStorage(){return this.storage.getParsedJSON(d.RECENT_QUERIES,[])}updateLocalStorage(){if(!this.recentQueriesList.state.analyticsEnabled){return this.disableFeature()}return this.storage.setJSON(d.RECENT_QUERIES,this.recentQueriesList.state.queries)}disableFeature(){this.warnUser();this.storage.removeItem(d.RECENT_QUERIES)}renderItems(){if(!this.recentQueriesList.state.analyticsEnabled){return[]}const t=this.bindings.searchBoxController.state.value;const e=t!=="";const s=e?this.maxWithQuery:this.maxWithoutQuery;const r=this.recentQueriesList.state.queries.filter((e=>e.toLowerCase().startsWith(t.toLowerCase()))).slice(0,s);const i=r.map((t=>this.renderItem(t)));if(i.length){i.unshift(this.renderClear())}return i}renderClear(){const t=q(this.bindings.i18n);return{...t,content:e(I,{i18n:this.bindings.i18n}),onSelect:()=>{this.recentQueriesList.clear();this.bindings.triggerSuggestions()}}}renderItem(t){const s=this.bindings.searchBoxController.state.value;const r=b(t,this.bindings.i18n);return{...r,content:e(j,null,e(x,{icon:this.renderIcon()}),e(S,{query:s,value:t})),onSelect:()=>{if(this.bindings.isStandalone){this.bindings.searchBoxController.updateText(t);this.bindings.searchBoxController.submit();return}this.recentQueriesList.executeRecentQuery(this.recentQueriesList.state.queries.indexOf(t))}}}render(){if(this.error){return e("atomic-component-error",{key:"610c29ab15737a0fa9e79aaae6886026015b53f5",element:this.host,error:this.error})}}get host(){return s(this)}};export{g as atomic_search_box_query_suggestions,L as atomic_search_box_recent_queries};
2
- //# sourceMappingURL=p-78bb2db9.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["AtomicSearchBoxQuerySuggestions","componentWillLoad","dispatchSearchBoxSuggestionsEvent","bindings","this","initialize","host","error","engine","registerQuerySuggest","fetchQuerySuggestions","loadQuerySuggestActions","dispatch","id","count","numberOfQueries","position","Array","from","parentNode","children","indexOf","onInput","renderItems","hasQuery","searchBoxController","state","value","max","maxWithQuery","maxWithoutQuery","suggestions","slice","map","suggestion","renderItem","partialItem","getPartialSearchBoxSuggestionElement","i18n","content","h","QuerySuggestionContainer","QuerySuggestionIcon","icon","SearchIcon","hasSuggestion","getSuggestions","length","QuerySuggestionText","onSelect","selectSuggestion","rawValue","render","key","element","getPartialRecentQueryElement","part","query","encodeForDomAttribute","ariaLabel","t","interpolation","escapeValue","getPartialRecentQueryClearElement","hideIfLast","RecentQueriesContainer","_","class","RecentQueryIcon","RecentQueryText","innerHTML","HighlightUtils","highlightString","openingDelimiter","closingDelimiter","highlights","offset","RecentQueryClear","AtomicSearchBoxRecentQueries","warnUser","once","logger","warn","renderIcon","Clock","storage","SafeStorage","recentQueriesList","buildRecentQueriesList","initialState","queries","retrieveLocalStorage","options","maxLength","clearFilters","subscribe","updateLocalStorage","getParsedJSON","StorageItems","RECENT_QUERIES","analyticsEnabled","disableFeature","setJSON","removeItem","filteredQueries","filter","recentQuery","toLowerCase","startsWith","suggestionElements","unshift","renderClear","clear","triggerSuggestions","isStandalone","updateText","submit","executeRecentQuery"],"sources":["src/components/search/search-box-suggestions/atomic-search-box-query-suggestions/atomic-search-box-query-suggestions.tsx","src/components/common/suggestions/stencil-recent-queries.tsx","src/components/search/search-box-suggestions/atomic-search-box-recent-queries/atomic-search-box-recent-queries.tsx"],"sourcesContent":["import {\n loadQuerySuggestActions,\n SearchBox,\n SearchEngine,\n Suggestion,\n} from '@coveo/headless';\nimport {Component, Element, Prop, State, h} from '@stencil/core';\nimport SearchIcon from '../../../../images/search.svg';\nimport {\n getPartialSearchBoxSuggestionElement,\n QuerySuggestionContainer,\n QuerySuggestionIcon,\n QuerySuggestionText,\n} from '../../../common/suggestions/stencil-query-suggestions';\nimport {\n dispatchSearchBoxSuggestionsEvent,\n} from '../../../common/suggestions/suggestions-events';\nimport type {\n SearchBoxSuggestionElement,\n SearchBoxSuggestions,\n SearchBoxSuggestionsBindings,\n} from '../../../common/suggestions/suggestions-types';\n\n/**\n * The `atomic-search-box-query-suggestions` component can be added as a child of an `atomic-search-box` component, allowing for the configuration of query suggestion behavior.\n */\n@Component({\n tag: 'atomic-search-box-query-suggestions',\n shadow: true,\n})\nexport class AtomicSearchBoxQuerySuggestions {\n private bindings!: SearchBoxSuggestionsBindings<SearchBox>;\n @Element() private host!: HTMLElement;\n\n @State() public error!: Error;\n\n /**\n * The SVG icon to display.\n *\n * - Use a value that starts with `http://`, `https://`, `./`, or `../`, to fetch and display an icon from a given location.\n * - Use a value that starts with `assets://`, to display an icon from the Atomic package.\n * - Use a stringified SVG to display it directly.\n */\n @Prop() public icon?: string;\n\n /**\n * The maximum number of suggestions that will be displayed if the user has typed something into the input field.\n */\n @Prop({reflect: true}) public maxWithQuery?: number;\n /**\n * The maximum number of suggestions that will be displayed initially when the input field is empty.\n */\n @Prop({reflect: true}) public maxWithoutQuery?: number;\n\n componentWillLoad() {\n try {\n dispatchSearchBoxSuggestionsEvent<SearchBox>(\n (bindings) => {\n this.bindings = bindings;\n return this.initialize();\n },\n this.host,\n ['atomic-search-box']\n );\n } catch (error) {\n this.error = error as Error;\n }\n }\n\n private initialize(): SearchBoxSuggestions {\n const engine = this.bindings.engine as SearchEngine<{\n querySet: string;\n querySuggest: string;\n }>;\n const {registerQuerySuggest, fetchQuerySuggestions} =\n loadQuerySuggestActions(engine);\n\n engine.dispatch(\n registerQuerySuggest({\n id: this.bindings.id,\n count: this.bindings.numberOfQueries,\n })\n );\n\n return {\n position: Array.from(this.host.parentNode!.children).indexOf(this.host),\n onInput: () =>\n engine.dispatch(\n fetchQuerySuggestions({\n id: this.bindings.id,\n })\n ),\n renderItems: () => this.renderItems(),\n };\n }\n\n private renderItems(): SearchBoxSuggestionElement[] {\n const hasQuery = this.bindings.searchBoxController.state.value !== '';\n const max = hasQuery ? this.maxWithQuery : this.maxWithoutQuery;\n return this.bindings.searchBoxController.state.suggestions\n .slice(0, max)\n .map((suggestion) => this.renderItem(suggestion));\n }\n\n private renderItem(suggestion: Suggestion) {\n const hasQuery = this.bindings.searchBoxController.state.value !== '';\n const partialItem = getPartialSearchBoxSuggestionElement(\n suggestion,\n this.bindings.i18n\n );\n\n return {\n ...partialItem,\n content: (\n <QuerySuggestionContainer>\n <QuerySuggestionIcon\n icon={this.icon || SearchIcon}\n hasSuggestion={this.bindings.getSuggestions().length > 1}\n />\n\n <QuerySuggestionText suggestion={suggestion} hasQuery={hasQuery} />\n </QuerySuggestionContainer>\n ),\n onSelect: () => {\n this.bindings.searchBoxController.selectSuggestion(suggestion.rawValue);\n },\n };\n }\n\n public render() {\n if (this.error) {\n return (\n <atomic-component-error\n element={this.host}\n error={this.error}\n ></atomic-component-error>\n );\n }\n }\n}\n","import {HighlightUtils} from '@coveo/headless';\nimport {FunctionalComponent, h} from '@stencil/core';\nimport {i18n} from 'i18next';\nimport {encodeForDomAttribute} from '../../../utils/string-utils';\nimport {SearchBoxSuggestionElement} from './suggestions-types';\n\nexport const getPartialRecentQueryElement = (\n value: string,\n i18n: i18n\n): Pick<SearchBoxSuggestionElement, 'ariaLabel' | 'key' | 'query' | 'part'> => {\n return {\n part: 'recent-query-item',\n query: value,\n key: `recent-${encodeForDomAttribute(value)}`,\n ariaLabel: i18n.t('recent-query-suggestion-label', {\n query: value,\n interpolation: {escapeValue: false},\n }),\n };\n};\n\nexport const getPartialRecentQueryClearElement = (\n i18n: i18n\n): Pick<\n SearchBoxSuggestionElement,\n 'ariaLabel' | 'key' | 'part' | 'hideIfLast'\n> => {\n return {\n key: 'recent-query-clear',\n ariaLabel: i18n.t('clear-recent-searches', {\n interpolation: {escapeValue: false},\n }),\n part: 'recent-query-title-item suggestion-divider',\n hideIfLast: true,\n };\n};\n\nexport const RecentQueriesContainer: FunctionalComponent = (_, children) => {\n return (\n <div\n part=\"recent-query-content\"\n class=\"flex items-center text-left break-all\"\n >\n {children}\n </div>\n );\n};\n\ninterface RecentQueryIconProps {\n icon: string;\n}\n\nexport const RecentQueryIcon: FunctionalComponent<RecentQueryIconProps> = ({\n icon,\n}) => {\n return (\n <atomic-icon\n part=\"recent-query-icon\"\n icon={icon}\n class=\"mr-2 h-4 w-4 shrink-0\"\n ></atomic-icon>\n );\n};\n\ninterface RecentQueryTextProps {\n query: string;\n value: string;\n}\n\nexport const RecentQueryText: FunctionalComponent<RecentQueryTextProps> = ({\n query,\n value,\n}) => {\n if (query === '') {\n return (\n <span part=\"recent-query-text\" class=\"line-clamp-2 break-all\">\n {value}\n </span>\n );\n }\n return (\n <span\n part=\"recent-query-text\"\n class=\"line-clamp-2 break-all\"\n innerHTML={HighlightUtils.highlightString({\n content: value,\n openingDelimiter:\n '<span part=\"recent-query-text-highlight\" class=\"font-bold\">',\n closingDelimiter: '</span>',\n highlights: [\n {\n offset: query.length,\n length: value.length - query.length,\n },\n ],\n })}\n ></span>\n );\n};\n\ninterface RecentQueryClearProps {\n i18n: i18n;\n}\n\nexport const RecentQueryClear: FunctionalComponent<RecentQueryClearProps> = ({\n i18n,\n}) => {\n return (\n <div part=\"recent-query-title-content\" class=\"flex w-full justify-between\">\n <span class=\"font-bold\" part=\"recent-query-title\">\n {i18n.t('recent-searches')}\n </span>\n <span part=\"recent-query-clear\">{i18n.t('clear')}</span>\n </div>\n );\n};\n","import {\n buildRecentQueriesList,\n RecentQueriesList,\n SearchBox,\n} from '@coveo/headless';\nimport {Component, Element, Prop, State, h} from '@stencil/core';\nimport Clock from '../../../../images/clock.svg';\nimport {SafeStorage, StorageItems} from '../../../../utils/local-storage-utils';\nimport {once} from '../../../../utils/utils';\nimport {\n getPartialRecentQueryClearElement,\n getPartialRecentQueryElement,\n RecentQueriesContainer,\n RecentQueryClear,\n RecentQueryIcon,\n RecentQueryText,\n} from '../../../common/suggestions/stencil-recent-queries';\nimport {\n dispatchSearchBoxSuggestionsEvent,\n} from '../../../common/suggestions/suggestions-events';\nimport type {\n SearchBoxSuggestionElement,\n SearchBoxSuggestions,\n SearchBoxSuggestionsBindings,\n} from '../../../common/suggestions/suggestions-types';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\n\n/**\n * The `atomic-search-box-recent-queries` component can be added as a child of an `atomic-search-box` component, allowing for the configuration of recent query suggestions.\n */\n@Component({\n tag: 'atomic-search-box-recent-queries',\n shadow: true,\n})\nexport class AtomicSearchBoxRecentQueries {\n private bindings!: SearchBoxSuggestionsBindings<SearchBox, Bindings>;\n private recentQueriesList!: RecentQueriesList;\n private storage!: SafeStorage;\n\n @Element() private host!: HTMLElement;\n\n @State() public error!: Error;\n\n /**\n * The SVG icon to display.\n *\n * - Use a value that starts with `http://`, `https://`, `./`, or `../`, to fetch and display an icon from a given location.\n * - Use a value that starts with `assets://`, to display an icon from the Atomic package.\n * - Use a stringified SVG to display it directly.\n */\n @Prop() public icon?: string;\n\n /**\n * The maximum number of suggestions that will be displayed if the user has typed something into the input field.\n */\n @Prop({reflect: true}) public maxWithQuery = 3;\n /**\n * The maximum number of suggestions that will be displayed initially when the input field is empty.\n */\n @Prop({reflect: true}) public maxWithoutQuery?: number;\n\n componentWillLoad() {\n try {\n dispatchSearchBoxSuggestionsEvent<SearchBox, Bindings>(\n (bindings) => {\n this.bindings = bindings;\n return this.initialize();\n },\n this.host,\n ['atomic-search-box']\n );\n } catch (error) {\n this.error = error as Error;\n }\n }\n\n private renderIcon() {\n return this.icon || Clock;\n }\n\n private initialize(): SearchBoxSuggestions {\n this.storage = new SafeStorage();\n this.recentQueriesList = buildRecentQueriesList(this.bindings.engine, {\n initialState: {queries: this.retrieveLocalStorage()},\n options: {maxLength: 1000, clearFilters: this.bindings.clearFilters},\n });\n\n this.recentQueriesList.subscribe(() => this.updateLocalStorage());\n\n return {\n position: Array.from(this.host.parentNode!.children).indexOf(this.host),\n renderItems: () => this.renderItems(),\n };\n }\n\n private retrieveLocalStorage() {\n return this.storage.getParsedJSON(StorageItems.RECENT_QUERIES, []);\n }\n\n private updateLocalStorage() {\n if (!this.recentQueriesList.state.analyticsEnabled) {\n return this.disableFeature();\n }\n\n return this.storage.setJSON(\n StorageItems.RECENT_QUERIES,\n this.recentQueriesList.state.queries\n );\n }\n\n private warnUser = once(() =>\n this.bindings.engine.logger.warn(\n 'Because analytics are disabled, the recent queries feature is deactivated.'\n )\n );\n\n private disableFeature() {\n this.warnUser();\n this.storage.removeItem(StorageItems.RECENT_QUERIES);\n }\n\n private renderItems(): SearchBoxSuggestionElement[] {\n if (!this.recentQueriesList.state.analyticsEnabled) {\n return [];\n }\n\n const query = this.bindings.searchBoxController.state.value;\n const hasQuery = query !== '';\n const max = hasQuery ? this.maxWithQuery : this.maxWithoutQuery;\n const filteredQueries = this.recentQueriesList.state.queries\n .filter((recentQuery) =>\n recentQuery.toLowerCase().startsWith(query.toLowerCase())\n )\n .slice(0, max);\n\n const suggestionElements: SearchBoxSuggestionElement[] =\n filteredQueries.map((value) => this.renderItem(value));\n if (suggestionElements.length) {\n suggestionElements.unshift(this.renderClear());\n }\n\n return suggestionElements;\n }\n\n private renderClear(): SearchBoxSuggestionElement {\n const partialItem = getPartialRecentQueryClearElement(this.bindings.i18n);\n\n return {\n ...partialItem,\n content: <RecentQueryClear i18n={this.bindings.i18n} />,\n onSelect: () => {\n this.recentQueriesList.clear();\n this.bindings.triggerSuggestions();\n },\n };\n }\n\n private renderItem(value: string): SearchBoxSuggestionElement {\n const query = this.bindings.searchBoxController.state.value;\n const partialItem = getPartialRecentQueryElement(value, this.bindings.i18n);\n return {\n ...partialItem,\n content: (\n <RecentQueriesContainer>\n <RecentQueryIcon icon={this.renderIcon()} />\n <RecentQueryText query={query} value={value} />\n </RecentQueriesContainer>\n ),\n\n onSelect: () => {\n if (this.bindings.isStandalone) {\n this.bindings.searchBoxController.updateText(value);\n this.bindings.searchBoxController.submit();\n return;\n }\n\n this.recentQueriesList.executeRecentQuery(\n this.recentQueriesList.state.queries.indexOf(value)\n );\n },\n };\n }\n\n public render() {\n if (this.error) {\n return (\n <atomic-component-error\n element={this.host}\n error={this.error}\n ></atomic-component-error>\n );\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}