@coveo/atomic 3.28.0-pre.c758e56a2c → 3.28.0-pre.df6c8a3eb3
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/dist/atomic/_atomic.esm.js +1 -1
- package/dist/atomic/atomic.esm.js.map +1 -1
- package/dist/atomic/components/_index.d.ts +12 -0
- package/dist/atomic/components/_index.js +6 -0
- package/dist/atomic/components/analytics-config.js +2 -2938
- package/dist/atomic/components/analytics-config.js.map +1 -1
- package/dist/atomic/components/atomic-aria-live2.js +1 -1
- package/dist/atomic/components/atomic-category-facet.js +1 -1
- package/dist/atomic/components/atomic-citation.js +1 -1
- package/dist/atomic/components/atomic-commerce-category-facet2.js +1 -1
- package/dist/atomic/components/atomic-commerce-no-products.d.ts +11 -0
- package/dist/atomic/components/atomic-commerce-no-products.js +74 -0
- package/dist/atomic/components/atomic-commerce-no-products.js.map +1 -0
- package/dist/atomic/components/atomic-commerce-numeric-facet2.js +2 -2
- package/dist/atomic/components/atomic-commerce-query-error.js +1 -1
- package/dist/atomic/components/atomic-commerce-recommendation-interface.d.ts +11 -0
- package/dist/atomic/components/atomic-commerce-recommendation-interface.js +209 -0
- package/dist/atomic/components/atomic-commerce-recommendation-interface.js.map +1 -0
- package/dist/atomic/components/atomic-commerce-refine-modal.js +1 -215
- package/dist/atomic/components/atomic-commerce-refine-modal.js.map +1 -1
- package/dist/atomic/components/atomic-commerce-refine-modal2.js +219 -0
- package/dist/atomic/components/atomic-commerce-refine-modal2.js.map +1 -0
- package/dist/atomic/components/atomic-commerce-refine-toggle.d.ts +11 -0
- package/dist/atomic/{p-852ffdb4.entry.js → components/atomic-commerce-refine-toggle.js} +144 -2
- package/dist/atomic/components/atomic-commerce-refine-toggle.js.map +1 -0
- package/dist/atomic/components/atomic-commerce-text.d.ts +11 -0
- package/dist/atomic/components/atomic-commerce-text.js +8 -0
- package/dist/atomic/components/atomic-commerce-text.js.map +1 -0
- package/dist/atomic/components/atomic-commerce-text2.js +60 -0
- package/dist/atomic/components/atomic-commerce-text2.js.map +1 -0
- package/dist/atomic/components/atomic-commerce-timeframe-facet2.js +1 -1
- package/dist/atomic/components/atomic-facet-manager.js +1 -1
- package/dist/atomic/components/atomic-facet.js +1 -1
- package/dist/atomic/components/atomic-format-currency.js +1 -1
- package/dist/atomic/components/atomic-format-number.js +1 -1
- package/dist/atomic/components/atomic-format-unit.js +1 -1
- package/dist/atomic/components/atomic-generated-answer-feedback-modal.js +1 -1
- package/dist/atomic/components/atomic-html2.js +1 -1
- package/dist/atomic/components/atomic-insight-edit-toggle.js +1 -1
- package/dist/atomic/components/atomic-insight-facet.js +1 -1
- package/dist/atomic/components/atomic-insight-folded-result-list.js +1 -1
- package/dist/atomic/components/atomic-insight-full-search-button.js +1 -1
- package/dist/atomic/components/atomic-insight-history-toggle.js +1 -1
- package/dist/atomic/components/atomic-insight-interface.js +2 -9
- package/dist/atomic/components/atomic-insight-interface.js.map +1 -1
- package/dist/atomic/components/atomic-insight-no-results.js +1 -1
- package/dist/atomic/components/atomic-insight-numeric-facet.js +1 -1
- package/dist/atomic/components/atomic-insight-pager.js +3 -3
- package/dist/atomic/components/atomic-insight-query-error.js +1 -1
- package/dist/atomic/components/atomic-insight-refine-modal2.js +2 -2
- package/dist/atomic/components/atomic-insight-refine-toggle.js +1 -1
- package/dist/atomic/components/atomic-insight-result-attach-to-case-indicator.js +1 -1
- package/dist/atomic/components/atomic-insight-result-children.js +1 -1
- package/dist/atomic/components/atomic-insight-result-list.js +1 -1
- package/dist/atomic/components/atomic-insight-result-quickview-action.js +1 -1
- package/dist/atomic/components/atomic-insight-result2.js +1 -1
- package/dist/atomic/components/atomic-insight-search-box.js +2 -2
- package/dist/atomic/components/atomic-insight-smart-snippet-feedback-modal2.js +2 -2
- package/dist/atomic/components/atomic-insight-tabs.js +1 -1
- package/dist/atomic/components/atomic-insight-user-actions-session2.js +1 -1
- package/dist/atomic/components/atomic-insight-user-actions-toggle.js +1 -1
- package/dist/atomic/components/atomic-ipx-body2.js +2 -2
- package/dist/atomic/components/atomic-ipx-button.js +2 -2
- package/dist/atomic/components/atomic-ipx-embedded.js +1 -1
- package/dist/atomic/components/atomic-ipx-modal.js +2 -2
- package/dist/atomic/components/atomic-ipx-recs-list.js +1 -1
- package/dist/atomic/components/atomic-ipx-refine-modal2.js +1 -1
- package/dist/atomic/components/atomic-ipx-refine-toggle.js +1 -1
- package/dist/atomic/components/atomic-ipx-result-link.js +1 -1
- package/dist/atomic/components/atomic-ipx-tabs.js +1 -1
- package/dist/atomic/components/atomic-layout-section.d.ts +11 -0
- package/dist/atomic/components/atomic-layout-section.js +35 -0
- package/dist/atomic/components/atomic-layout-section.js.map +1 -0
- package/dist/atomic/components/atomic-load-more-results.js +1 -1
- package/dist/atomic/components/atomic-modal2.js +2 -2
- package/dist/atomic/components/atomic-no-results.js +2 -14
- package/dist/atomic/components/atomic-no-results.js.map +1 -1
- package/dist/atomic/components/atomic-numeric-facet.js +1 -1
- package/dist/atomic/components/atomic-pager.js +3 -3
- package/dist/atomic/components/atomic-product-children.js +7 -1
- package/dist/atomic/components/atomic-product-children.js.map +1 -1
- package/dist/atomic/components/atomic-product-description.js +13 -1
- package/dist/atomic/components/atomic-product-description.js.map +1 -1
- package/dist/atomic/components/atomic-product-excerpt.js +13 -1
- package/dist/atomic/components/atomic-product-excerpt.js.map +1 -1
- package/dist/atomic/components/atomic-product-link.js +13 -1
- package/dist/atomic/components/atomic-product-link.js.map +1 -1
- package/dist/atomic/components/atomic-product-price.js +1 -1
- package/dist/atomic/components/atomic-product-text.d.ts +11 -0
- package/dist/atomic/components/atomic-product-text.js +8 -0
- package/dist/atomic/components/atomic-product-text.js.map +1 -0
- package/dist/atomic/components/atomic-product-text2.js +83 -0
- package/dist/atomic/components/atomic-product-text2.js.map +1 -0
- package/dist/atomic/components/atomic-query-error.js +1 -1
- package/dist/atomic/components/atomic-query-summary.js +1 -1
- package/dist/atomic/components/atomic-quickview-modal2.js +1 -1
- package/dist/atomic/components/atomic-quickview.js +1 -1
- package/dist/atomic/components/atomic-recs-error.js +1 -1
- package/dist/atomic/components/atomic-recs-interface.js +2 -1
- package/dist/atomic/components/atomic-recs-interface.js.map +1 -1
- package/dist/atomic/components/atomic-recs-list.js +1 -1
- package/dist/atomic/components/atomic-refine-modal2.js +1 -1
- package/dist/atomic/components/atomic-refine-toggle.js +3 -20
- package/dist/atomic/components/atomic-refine-toggle.js.map +1 -1
- package/dist/atomic/components/atomic-relevance-inspector2.js +2 -2
- package/dist/atomic/components/atomic-result-children.js +1 -1
- package/dist/atomic/components/atomic-result-fields-list.js +1 -1
- package/dist/atomic/components/atomic-result-link.js +1 -1
- package/dist/atomic/components/atomic-result-list.js +1 -1
- package/dist/atomic/components/atomic-result-placeholder2.js +2 -2
- package/dist/atomic/components/atomic-result-table-placeholder2.js +1 -1
- package/dist/atomic/components/atomic-result-text2.js +2 -45
- package/dist/atomic/components/atomic-result-text2.js.map +1 -1
- package/dist/atomic/components/atomic-results-per-page.js +1 -1
- package/dist/atomic/components/atomic-search-box-query-suggestions2.js +1 -1
- package/dist/atomic/components/atomic-search-box-recent-queries2.js +1 -1
- package/dist/atomic/components/atomic-search-box.js +5 -4
- package/dist/atomic/components/atomic-search-box.js.map +1 -1
- package/dist/atomic/components/atomic-search-interface.js +2 -1
- package/dist/atomic/components/atomic-search-interface.js.map +1 -1
- package/dist/atomic/components/atomic-smart-snippet-answer2.js +1 -1
- package/dist/atomic/components/atomic-smart-snippet-collapse-wrapper2.js +2 -2
- package/dist/atomic/components/atomic-smart-snippet-expandable-answer2.js +1 -1
- package/dist/atomic/components/atomic-smart-snippet-feedback-modal2.js +2 -2
- package/dist/atomic/components/atomic-smart-snippet-source2.js +1 -1
- package/dist/atomic/components/atomic-sort-dropdown.js +2 -2
- package/dist/atomic/components/atomic-sort-expression.js +1 -1
- package/dist/atomic/components/atomic-suggestion-renderer2.js +1 -1
- package/dist/atomic/components/atomic-tab-manager.js +1 -1
- package/dist/atomic/components/components/commerce/atomic-commerce-layout/atomic-commerce-layout.js +1 -1
- package/dist/atomic/components/components/commerce/atomic-commerce-products-per-page/atomic-commerce-products-per-page.js +1 -1
- package/dist/atomic/components/components/commerce/atomic-commerce-search-box/atomic-commerce-search-box.js +1 -0
- package/dist/atomic/components/components/commerce/atomic-product-template/atomic-product-template.js +1 -4
- package/dist/atomic/components/components/commerce/index.js +0 -5
- package/dist/atomic/components/components/commerce/lazy-index.js +0 -5
- package/dist/atomic/components/components/common/index.js +0 -1
- package/dist/atomic/components/components/common/interface/interface-common.js +9 -8
- package/dist/atomic/components/components/common/lazy-index.js +0 -1
- package/dist/atomic/components/components/insight/atomic-insight-interface/store.js +0 -8
- package/dist/atomic/components/facet-date-input.js +3 -3
- package/dist/atomic/components/facet-number-input.js +2 -2
- package/dist/atomic/components/global/environment.js +1 -1
- package/dist/atomic/components/index.js.map +1 -1
- package/dist/atomic/components/interface-common-stencil.js +2941 -0
- package/dist/atomic/components/interface-common-stencil.js.map +1 -0
- package/dist/atomic/components/product-utils.js +8 -1
- package/dist/atomic/components/product-utils.js.map +1 -1
- package/dist/atomic/components/sections.js.map +1 -1
- package/dist/atomic/components/stencil-guard.js +23 -0
- package/dist/atomic/components/stencil-guard.js.map +1 -0
- package/dist/atomic/components/stencil-item-text-highlighted.js +49 -0
- package/dist/atomic/components/stencil-item-text-highlighted.js.map +1 -0
- package/dist/atomic/components/tab-button.js +1 -1
- package/dist/atomic/components/tab-popover.js +1 -1
- package/dist/atomic/components/{components/common/no-items/utils.js → utils2.js} +5 -1
- package/dist/atomic/components/utils2.js.map +1 -0
- package/dist/atomic/{p-f5cea23f.entry.js → p-0267a585.entry.js} +2 -2
- package/dist/atomic/p-0a7b0daa.entry.js +2 -0
- package/dist/atomic/{p-55b4fb2b.entry.js.map → p-0a7b0daa.entry.js.map} +1 -1
- package/dist/atomic/{p-dcded8cb.entry.js → p-0b0ea7d3.entry.js} +2 -2
- package/dist/atomic/{p-1326166a.entry.js → p-135be5aa.entry.js} +2 -2
- package/dist/atomic/p-1cb2280d.js +2 -0
- package/dist/atomic/p-1cb2280d.js.map +1 -0
- package/dist/atomic/{p-f3e9a9f8.entry.js → p-1cc97adc.entry.js} +2 -2
- package/dist/atomic/{p-ea5d2736.entry.js → p-22a0d1b9.entry.js} +2 -2
- package/dist/atomic/{p-d88aec96.entry.js → p-29d27418.entry.js} +2 -2
- package/dist/atomic/{p-90e88505.entry.js → p-2f0cb73c.entry.js} +2 -2
- package/dist/atomic/p-2ff906b9.entry.js +2 -0
- package/dist/atomic/p-2ff906b9.entry.js.map +1 -0
- package/dist/atomic/{p-fb060cc0.entry.js → p-306c83ea.entry.js} +2 -2
- package/dist/atomic/{p-b15ca291.entry.js → p-3195fa42.entry.js} +2 -2
- package/dist/atomic/{p-714c5c2c.entry.js → p-32b26cd0.entry.js} +2 -2
- package/dist/atomic/{p-1c72983f.entry.js → p-32c90fe9.entry.js} +2 -2
- package/dist/atomic/p-39223a2a.entry.js +2 -0
- package/dist/atomic/p-39223a2a.entry.js.map +1 -0
- package/dist/atomic/p-39447826.entry.js +2 -0
- package/dist/atomic/{p-fafea879.entry.js.map → p-39447826.entry.js.map} +1 -1
- package/dist/atomic/p-3cc601ad.entry.js +2 -0
- package/dist/atomic/p-3cc601ad.entry.js.map +1 -0
- package/dist/atomic/{p-4e2ec64c.entry.js → p-3ec18de9.entry.js} +2 -2
- package/dist/atomic/{p-a010dddb.entry.js → p-3f42a2db.entry.js} +2 -2
- package/dist/atomic/{p-4495b132.entry.js → p-45b26cc7.entry.js} +2 -2
- package/dist/atomic/p-46522ee4.entry.js +2 -0
- package/dist/atomic/{p-50ff35f8.entry.js.map → p-46522ee4.entry.js.map} +1 -1
- package/dist/atomic/{p-ffb15631.entry.js → p-47ee9d37.entry.js} +2 -2
- package/dist/atomic/p-4e57cee1.entry.js +2 -0
- package/dist/atomic/{p-1429fbdb.entry.js.map → p-4e57cee1.entry.js.map} +1 -1
- package/dist/atomic/{p-aa4fc96f.entry.js → p-50b9a5d2.entry.js} +2 -2
- package/dist/atomic/{p-e25287fd.entry.js → p-51c5acfc.entry.js} +2 -2
- package/dist/atomic/{p-f72a0133.entry.js → p-543e811e.entry.js} +2 -2
- package/dist/atomic/p-57f53200.entry.js +2 -0
- package/dist/atomic/{p-e4f872fb.entry.js.map → p-57f53200.entry.js.map} +1 -1
- package/dist/atomic/{p-0df077b7.entry.js → p-59017e0a.entry.js} +2 -2
- package/dist/atomic/p-59017e0a.entry.js.map +1 -0
- package/dist/atomic/p-5cf5bb98.entry.js +2 -0
- package/dist/atomic/p-5e73a3e8.js +2 -0
- package/dist/atomic/p-5e73a3e8.js.map +1 -0
- package/dist/atomic/{p-2866ca4d.entry.js → p-60a9e718.entry.js} +2 -2
- package/dist/atomic/{p-eabb4eae.entry.js → p-66683abd.entry.js} +2 -2
- package/dist/atomic/{p-8b579505.entry.js → p-67315415.entry.js} +2 -2
- package/dist/atomic/p-67afec23.js +2 -0
- package/dist/atomic/p-67afec23.js.map +1 -0
- package/dist/atomic/p-67ef14ac.entry.js +2 -0
- package/dist/atomic/p-67ef14ac.entry.js.map +1 -0
- package/dist/atomic/{p-714ee3bb.entry.js → p-689e063d.entry.js} +2 -2
- package/dist/atomic/{p-f5686c7e.entry.js → p-690b5853.entry.js} +2 -2
- package/dist/atomic/{p-ace45b24.entry.js → p-70ab347b.entry.js} +2 -2
- package/dist/atomic/p-733252f1.entry.js +2 -0
- package/dist/atomic/p-733252f1.entry.js.map +1 -0
- package/dist/atomic/{p-966509f8.entry.js → p-76122df5.entry.js} +2 -2
- package/dist/atomic/{p-9ec72c3b.entry.js → p-7d1f8d9c.entry.js} +2 -2
- package/dist/atomic/{p-f5323d5b.js → p-7ed31f46.js} +2 -2
- package/dist/atomic/p-7ed31f46.js.map +1 -0
- package/dist/atomic/{p-d37bb72b.entry.js → p-80dc3bab.entry.js} +2 -2
- package/dist/atomic/p-8392e900.entry.js +2 -0
- package/dist/atomic/p-8392e900.entry.js.map +1 -0
- package/dist/atomic/{p-6e11d4c6.entry.js → p-8d7f57d9.entry.js} +2 -2
- package/dist/atomic/{p-7d63f0e6.entry.js → p-8e09f796.entry.js} +2 -2
- package/dist/atomic/{p-a84d94cb.entry.js → p-95942ba2.entry.js} +2 -2
- package/dist/atomic/{p-21d55afc.entry.js → p-99604083.entry.js} +2 -2
- package/dist/atomic/{p-d4ec6961.entry.js → p-9a08dad7.entry.js} +2 -2
- package/dist/atomic/{p-03fa8481.entry.js → p-9ae88402.entry.js} +2 -2
- package/dist/atomic/p-9c7dbbdf.js.map +1 -1
- package/dist/atomic/{p-01c109cf.entry.js → p-9d2230db.entry.js} +2 -2
- package/dist/atomic/{p-fac32d34.entry.js → p-9eb108c9.entry.js} +2 -2
- package/dist/atomic/p-a046cf06.entry.js +2 -0
- package/dist/atomic/p-a046cf06.entry.js.map +1 -0
- package/dist/atomic/{p-5a3cd055.entry.js → p-a3169f59.entry.js} +2 -2
- package/dist/atomic/{p-50ff35f8.entry.js → p-a772b365.entry.js} +2 -2
- package/dist/atomic/{p-56d6d329.entry.js.map → p-a772b365.entry.js.map} +1 -1
- package/dist/atomic/{p-c6f15059.entry.js → p-a8281e9b.entry.js} +2 -2
- package/dist/atomic/{p-4f03327d.entry.js → p-ab5eec3d.entry.js} +2 -2
- package/dist/atomic/{p-1aedbfbf.entry.js → p-b19a8cbb.entry.js} +2 -2
- package/dist/atomic/p-b1a7d837.js +2 -0
- package/dist/atomic/p-b1a7d837.js.map +1 -0
- package/dist/atomic/{p-61f79055.entry.js → p-b4d47ca9.entry.js} +2 -2
- package/dist/atomic/{p-1e3f156e.entry.js → p-b4dfe5b2.entry.js} +2 -2
- package/dist/atomic/p-b747e4a9.entry.js +2 -0
- package/dist/atomic/{p-e4cc2a37.entry.js → p-b7824e0e.entry.js} +2 -2
- package/dist/atomic/p-bb081d4e.js +2 -0
- package/dist/atomic/p-bb081d4e.js.map +1 -0
- package/dist/atomic/p-bd0aa08f.entry.js +2 -0
- package/dist/atomic/{p-022784c5.entry.js.map → p-bd0aa08f.entry.js.map} +1 -1
- package/dist/atomic/{p-3632e456.entry.js → p-be13ed5c.entry.js} +2 -2
- package/dist/atomic/p-befca41f.entry.js +2 -0
- package/dist/atomic/p-befca41f.entry.js.map +1 -0
- package/dist/atomic/{p-2871034a.entry.js → p-bfeefcaa.entry.js} +2 -2
- package/dist/atomic/p-c0b3720d.entry.js +2 -0
- package/dist/atomic/p-c0b3720d.entry.js.map +1 -0
- package/dist/atomic/{p-b4b6f859.entry.js → p-c0d7b26d.entry.js} +2 -2
- package/dist/atomic/{p-9ef7ffc0.entry.js → p-c13d4039.entry.js} +2 -2
- package/dist/atomic/{p-4505f2e0.entry.js → p-c4f042ae.entry.js} +2 -2
- package/dist/atomic/p-c83f9cff.entry.js +2 -0
- package/dist/atomic/p-c83f9cff.entry.js.map +1 -0
- package/dist/atomic/p-cd725265.js +2 -0
- package/dist/atomic/{p-7d1c2ecd.js.map → p-cd725265.js.map} +1 -1
- package/dist/atomic/{p-faee1f57.entry.js → p-cd87574b.entry.js} +2 -2
- package/dist/atomic/{p-0875a7fb.entry.js → p-ce4e939b.entry.js} +2 -2
- package/dist/atomic/{p-1fbbed3e.entry.js → p-d1efd50f.entry.js} +2 -2
- package/dist/atomic/{p-7d773b22.entry.js → p-d30057a0.entry.js} +2 -2
- package/dist/atomic/{p-e7d5c4be.entry.js → p-d4aba9f9.entry.js} +2 -2
- package/dist/atomic/{p-ce1f6392.entry.js → p-d69756ae.entry.js} +2 -2
- package/dist/atomic/{p-08d1db60.entry.js → p-d827c148.entry.js} +2 -2
- package/dist/atomic/p-da578608.entry.js +2 -0
- package/dist/atomic/{p-852ffdb4.entry.js.map → p-da578608.entry.js.map} +1 -1
- package/dist/atomic/{p-d04ad3e5.entry.js → p-dd8c6bdd.entry.js} +2 -2
- package/dist/atomic/{p-886da915.entry.js → p-ddd52850.entry.js} +2 -2
- package/dist/atomic/{p-fecd79de.entry.js → p-e44155cc.entry.js} +2 -2
- package/dist/atomic/{p-7f5485ad.entry.js → p-e46517e9.entry.js} +2 -2
- package/dist/atomic/{p-8074a49d.entry.js.map → p-e46517e9.entry.js.map} +1 -1
- package/dist/atomic/{p-c074198a.entry.js → p-e4754fd0.entry.js} +2 -2
- package/dist/atomic/{p-55b4fb2b.entry.js → p-e604fd29.entry.js} +2 -2
- package/dist/atomic/{p-27054c71.entry.js.map → p-e604fd29.entry.js.map} +1 -1
- package/dist/atomic/p-eab28672.entry.js +2 -0
- package/dist/atomic/p-eab28672.entry.js.map +1 -0
- package/dist/atomic/{p-db5285b1.entry.js → p-ec0161b7.entry.js} +2 -2
- package/dist/atomic/p-ec03a238.entry.js +2 -0
- package/dist/atomic/{p-7f5485ad.entry.js.map → p-ec03a238.entry.js.map} +1 -1
- package/dist/atomic/{p-eea2128f.entry.js → p-ec6bc15b.entry.js} +2 -2
- package/dist/atomic/{p-e37f01fc.entry.js → p-eebb168b.entry.js} +2 -2
- package/dist/atomic/p-f4a1bfe3.entry.js +2 -0
- package/dist/atomic/p-f4a1bfe3.entry.js.map +1 -0
- package/dist/atomic/{p-870dbeef.entry.js → p-f4b98113.entry.js} +2 -2
- package/dist/atomic/p-f6283657.entry.js +2 -0
- package/dist/atomic/{p-0df077b7.entry.js.map → p-f6283657.entry.js.map} +1 -1
- package/dist/atomic/p-f68cee5d.entry.js +2 -0
- package/dist/atomic/{p-b90e5ea5.entry.js.map → p-f68cee5d.entry.js.map} +1 -1
- package/dist/atomic/{p-58268151.entry.js → p-f7f8096a.entry.js} +2 -2
- package/dist/atomic/{p-58268151.entry.js.map → p-f7f8096a.entry.js.map} +1 -1
- package/dist/atomic/{p-e988f378.js → p-f7f81710.js} +2 -2
- package/dist/atomic/{p-8403335e.entry.js → p-fb0bdcdb.entry.js} +2 -2
- package/dist/atomic/p-fb3e07e9.js +2 -0
- package/dist/atomic/p-fb3e07e9.js.map +1 -0
- package/dist/atomic/p-fbbbc454.entry.js +2 -0
- package/dist/atomic/{p-ebb35a4b.entry.js → p-fd9d1c3f.entry.js} +2 -2
- package/dist/cjs/_loader.cjs.js +1 -1
- package/dist/cjs/analytics-config-f82932e2.js +49 -0
- package/dist/cjs/analytics-config-f82932e2.js.map +1 -0
- package/dist/cjs/atomic-aria-live.cjs.entry.js +75 -0
- package/dist/cjs/atomic-aria-live.cjs.entry.js.map +1 -0
- package/dist/cjs/atomic-automatic-facet_2.cjs.entry.js +3 -4
- package/dist/cjs/atomic-automatic-facet_2.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-category-facet.cjs.entry.js +3 -4
- package/dist/cjs/atomic-category-facet.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-citation.cjs.entry.js +1 -1
- package/dist/cjs/atomic-color-facet.cjs.entry.js +3 -4
- package/dist/cjs/atomic-color-facet.cjs.entry.js.map +1 -1
- package/dist/cjs/{atomic-commerce-category-facet_6.cjs.entry.js → atomic-commerce-category-facet_5.cjs.entry.js} +109 -141
- package/dist/cjs/atomic-commerce-category-facet_5.cjs.entry.js.map +1 -0
- package/dist/cjs/atomic-commerce-facet-number-input_2.cjs.entry.js +149 -0
- package/dist/cjs/atomic-commerce-facet-number-input_2.cjs.entry.js.map +1 -0
- package/dist/cjs/atomic-commerce-no-products.cjs.entry.js +65 -0
- package/dist/cjs/atomic-commerce-no-products.cjs.entry.js.map +1 -0
- package/dist/cjs/atomic-commerce-query-error.cjs.entry.js +1 -1
- package/dist/cjs/atomic-commerce-recommendation-interface.cjs.entry.js +179 -0
- package/dist/cjs/atomic-commerce-recommendation-interface.cjs.entry.js.map +1 -0
- package/dist/cjs/atomic-commerce-refine-modal.cjs.entry.js +1 -1
- package/dist/cjs/atomic-commerce-refine-toggle.cjs.entry.js +74 -0
- package/dist/cjs/atomic-commerce-refine-toggle.cjs.entry.js.map +1 -0
- package/dist/cjs/atomic-commerce-text_2.cjs.entry.js +106 -0
- package/dist/cjs/atomic-commerce-text_2.cjs.entry.js.map +1 -0
- package/dist/cjs/atomic-facet-manager.cjs.entry.js +1 -1
- package/dist/cjs/atomic-facet-number-input.cjs.entry.js +2 -2
- package/dist/cjs/atomic-facet.cjs.entry.js +2 -3
- package/dist/cjs/atomic-facet.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-focus-trap_2.cjs.entry.js +2 -2
- package/dist/cjs/atomic-format-currency.cjs.entry.js +1 -1
- package/dist/cjs/atomic-format-number.cjs.entry.js +1 -1
- package/dist/cjs/atomic-format-unit.cjs.entry.js +1 -1
- package/dist/cjs/atomic-generated-answer-feedback-modal.cjs.entry.js +1 -1
- package/dist/cjs/atomic-html.cjs.entry.js +1 -1
- package/dist/cjs/atomic-insight-edit-toggle.cjs.entry.js +1 -1
- package/dist/cjs/atomic-insight-facet.cjs.entry.js +2 -3
- package/dist/cjs/atomic-insight-facet.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-folded-result-list.cjs.entry.js +1 -1
- package/dist/cjs/atomic-insight-full-search-button.cjs.entry.js +1 -1
- package/dist/cjs/atomic-insight-history-toggle.cjs.entry.js +1 -1
- package/dist/cjs/atomic-insight-interface.cjs.entry.js +5 -12
- package/dist/cjs/atomic-insight-interface.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-no-results.cjs.entry.js +1 -1
- package/dist/cjs/atomic-insight-numeric-facet.cjs.entry.js +2 -3
- package/dist/cjs/atomic-insight-numeric-facet.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-pager.cjs.entry.js +3 -3
- package/dist/cjs/atomic-insight-query-error.cjs.entry.js +1 -1
- package/dist/cjs/atomic-insight-refine-modal.cjs.entry.js +2 -2
- package/dist/cjs/atomic-insight-refine-toggle.cjs.entry.js +1 -1
- package/dist/cjs/atomic-insight-result-attach-to-case-indicator.cjs.entry.js +1 -1
- package/dist/cjs/atomic-insight-result-children.cjs.entry.js +1 -1
- package/dist/cjs/atomic-insight-result-list.cjs.entry.js +1 -1
- package/dist/cjs/atomic-insight-result-quickview-action.cjs.entry.js +1 -1
- package/dist/cjs/atomic-insight-result.cjs.entry.js +1 -1
- package/dist/cjs/atomic-insight-search-box.cjs.entry.js +2 -2
- package/dist/cjs/atomic-insight-smart-snippet-feedback-modal.cjs.entry.js +2 -2
- package/dist/cjs/atomic-insight-tabs.cjs.entry.js +1 -1
- package/dist/cjs/atomic-insight-timeframe-facet.cjs.entry.js +5 -6
- package/dist/cjs/atomic-insight-timeframe-facet.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-user-actions-session_2.cjs.entry.js +1 -1
- package/dist/cjs/atomic-insight-user-actions-toggle.cjs.entry.js +1 -1
- package/dist/cjs/atomic-ipx-body.cjs.entry.js +2 -2
- package/dist/cjs/atomic-ipx-button.cjs.entry.js +2 -2
- package/dist/cjs/atomic-ipx-embedded.cjs.entry.js +1 -1
- package/dist/cjs/atomic-ipx-modal.cjs.entry.js +2 -2
- package/dist/cjs/atomic-ipx-recs-list.cjs.entry.js +1 -1
- package/dist/cjs/atomic-ipx-refine-modal.cjs.entry.js +1 -1
- package/dist/cjs/atomic-ipx-refine-toggle.cjs.entry.js +1 -1
- package/dist/cjs/atomic-ipx-result-link.cjs.entry.js +1 -1
- package/dist/cjs/atomic-ipx-tabs.cjs.entry.js +1 -1
- package/dist/cjs/atomic-layout-section.cjs.entry.js +18 -0
- package/dist/cjs/atomic-layout-section.cjs.entry.js.map +1 -0
- package/dist/cjs/atomic-load-more-results.cjs.entry.js +1 -1
- package/dist/cjs/atomic-no-results.cjs.entry.js +3 -15
- package/dist/cjs/atomic-no-results.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-numeric-facet.cjs.entry.js +2 -3
- package/dist/cjs/atomic-numeric-facet.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-pager.cjs.entry.js +3 -3
- package/dist/cjs/atomic-product-link.cjs.entry.js +1 -1
- package/dist/cjs/atomic-product-numeric-field-value.cjs.entry.js +1 -1
- package/dist/cjs/atomic-product-price.cjs.entry.js +2 -2
- package/dist/cjs/atomic-query-error.cjs.entry.js +1 -1
- package/dist/cjs/atomic-query-summary.cjs.entry.js +1 -1
- package/dist/cjs/atomic-quickview-modal.cjs.entry.js +1 -1
- package/dist/cjs/atomic-quickview.cjs.entry.js +1 -1
- package/dist/cjs/atomic-rating-facet.cjs.entry.js +3 -4
- package/dist/cjs/atomic-rating-facet.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-rating-range-facet.cjs.entry.js +3 -4
- package/dist/cjs/atomic-rating-range-facet.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-recs-error.cjs.entry.js +1 -1
- package/dist/cjs/atomic-recs-interface.cjs.entry.js +7 -6
- package/dist/cjs/atomic-recs-interface.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-recs-list.cjs.entry.js +1 -1
- package/dist/cjs/atomic-refine-modal.cjs.entry.js +1 -1
- package/dist/cjs/atomic-refine-toggle.cjs.entry.js +3 -19
- package/dist/cjs/atomic-refine-toggle.cjs.entry.js.map +1 -1
- package/dist/cjs/{atomic-aria-live_2.cjs.entry.js → atomic-relevance-inspector.cjs.entry.js} +3 -70
- package/dist/cjs/atomic-relevance-inspector.cjs.entry.js.map +1 -0
- package/dist/cjs/atomic-result-children.cjs.entry.js +1 -1
- package/dist/cjs/atomic-result-fields-list.cjs.entry.js +1 -1
- package/dist/cjs/atomic-result-link.cjs.entry.js +1 -1
- package/dist/cjs/atomic-result-list.cjs.entry.js +1 -1
- package/dist/cjs/atomic-result-placeholder_8.cjs.entry.js +3 -3
- package/dist/cjs/atomic-result-text_2.cjs.entry.js +4 -46
- package/dist/cjs/atomic-result-text_2.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-results-per-page.cjs.entry.js +1 -1
- package/dist/cjs/atomic-search-box-query-suggestions_2.cjs.entry.js +2 -2
- package/dist/cjs/atomic-search-box.cjs.entry.js +5 -4
- package/dist/cjs/atomic-search-box.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-search-interface.cjs.entry.js +6 -5
- package/dist/cjs/atomic-search-interface.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-smart-snippet-answer_2.cjs.entry.js +2 -2
- package/dist/cjs/atomic-smart-snippet-collapse-wrapper_2.cjs.entry.js +3 -3
- package/dist/cjs/atomic-smart-snippet-feedback-modal.cjs.entry.js +2 -2
- package/dist/cjs/atomic-sort-dropdown.cjs.entry.js +2 -2
- package/dist/cjs/atomic-sort-expression.cjs.entry.js +1 -1
- package/dist/cjs/atomic-suggestion-renderer.cjs.entry.js +1 -1
- package/dist/cjs/atomic-tab-bar_2.cjs.entry.js +1 -1
- package/dist/cjs/atomic-tab-button.cjs.entry.js +1 -1
- package/dist/cjs/atomic-tab-manager.cjs.entry.js +1 -1
- package/dist/cjs/atomic-timeframe-facet.cjs.entry.js +5 -6
- package/dist/cjs/atomic-timeframe-facet.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic.cjs.js +1 -1
- package/dist/cjs/{stencil-facet-header-a3dd9de0.js → facet-placeholder-ad0407f0.js} +12 -1
- package/dist/cjs/facet-placeholder-ad0407f0.js.map +1 -0
- package/dist/cjs/index-757bc886.js +34 -10
- package/dist/cjs/{analytics-config-d3622a33.js → interface-common-stencil-98f073f6.js} +4 -46
- package/dist/cjs/interface-common-stencil-98f073f6.js.map +1 -0
- package/dist/cjs/{product-utils-f6c780e3.js → product-utils-9507462c.js} +9 -1
- package/dist/cjs/product-utils-9507462c.js.map +1 -0
- package/dist/cjs/sections-4b4af2f8.js.map +1 -1
- package/dist/cjs/stencil-guard-caf49888.js +26 -0
- package/dist/cjs/stencil-guard-caf49888.js.map +1 -0
- package/dist/cjs/stencil-item-text-highlighted-91fd0fe8.js +52 -0
- package/dist/cjs/stencil-item-text-highlighted-91fd0fe8.js.map +1 -0
- package/dist/cjs/{timeframe-facet-common-d9078836.js → timeframe-facet-common-c555d20d.js} +4 -5
- package/dist/cjs/timeframe-facet-common-c555d20d.js.map +1 -0
- package/dist/cjs/utils-ca9c9aed.js +18 -0
- package/dist/cjs/utils-ca9c9aed.js.map +1 -0
- package/dist/cjs/version.cjs.js +2 -2
- package/dist/esm/_loader.js +1 -1
- package/dist/esm/analytics-config-253004a0.js +43 -0
- package/dist/esm/analytics-config-253004a0.js.map +1 -0
- package/dist/esm/atomic-aria-live.entry.js +71 -0
- package/dist/esm/atomic-aria-live.entry.js.map +1 -0
- package/dist/esm/atomic-automatic-facet_2.entry.js +1 -2
- package/dist/esm/atomic-automatic-facet_2.entry.js.map +1 -1
- package/dist/esm/atomic-category-facet.entry.js +2 -3
- package/dist/esm/atomic-category-facet.entry.js.map +1 -1
- package/dist/esm/atomic-citation.entry.js +1 -1
- package/dist/esm/atomic-color-facet.entry.js +1 -2
- package/dist/esm/atomic-color-facet.entry.js.map +1 -1
- package/dist/esm/{atomic-commerce-category-facet_6.entry.js → atomic-commerce-category-facet_5.entry.js} +109 -140
- package/dist/esm/atomic-commerce-category-facet_5.entry.js.map +1 -0
- package/dist/esm/atomic-commerce-facet-number-input_2.entry.js +144 -0
- package/dist/esm/atomic-commerce-facet-number-input_2.entry.js.map +1 -0
- package/dist/esm/atomic-commerce-no-products.entry.js +61 -0
- package/dist/esm/atomic-commerce-no-products.entry.js.map +1 -0
- package/dist/esm/atomic-commerce-query-error.entry.js +1 -1
- package/dist/esm/atomic-commerce-recommendation-interface.entry.js +175 -0
- package/dist/esm/atomic-commerce-recommendation-interface.entry.js.map +1 -0
- package/dist/esm/atomic-commerce-refine-modal.entry.js +1 -1
- package/dist/esm/atomic-commerce-refine-toggle.entry.js +70 -0
- package/dist/esm/atomic-commerce-refine-toggle.entry.js.map +1 -0
- package/dist/esm/atomic-commerce-text_2.entry.js +101 -0
- package/dist/esm/atomic-commerce-text_2.entry.js.map +1 -0
- package/dist/esm/atomic-facet-manager.entry.js +1 -1
- package/dist/esm/atomic-facet-number-input.entry.js +2 -2
- package/dist/esm/atomic-facet.entry.js +2 -3
- package/dist/esm/atomic-facet.entry.js.map +1 -1
- package/dist/esm/atomic-focus-trap_2.entry.js +2 -2
- package/dist/esm/atomic-format-currency.entry.js +1 -1
- package/dist/esm/atomic-format-number.entry.js +1 -1
- package/dist/esm/atomic-format-unit.entry.js +1 -1
- package/dist/esm/atomic-generated-answer-feedback-modal.entry.js +1 -1
- package/dist/esm/atomic-html.entry.js +1 -1
- package/dist/esm/atomic-insight-edit-toggle.entry.js +1 -1
- package/dist/esm/atomic-insight-facet.entry.js +2 -3
- package/dist/esm/atomic-insight-facet.entry.js.map +1 -1
- package/dist/esm/atomic-insight-folded-result-list.entry.js +1 -1
- package/dist/esm/atomic-insight-full-search-button.entry.js +1 -1
- package/dist/esm/atomic-insight-history-toggle.entry.js +1 -1
- package/dist/esm/atomic-insight-interface.entry.js +3 -10
- package/dist/esm/atomic-insight-interface.entry.js.map +1 -1
- package/dist/esm/atomic-insight-no-results.entry.js +2 -2
- package/dist/esm/atomic-insight-numeric-facet.entry.js +2 -3
- package/dist/esm/atomic-insight-numeric-facet.entry.js.map +1 -1
- package/dist/esm/atomic-insight-pager.entry.js +3 -3
- package/dist/esm/atomic-insight-query-error.entry.js +1 -1
- package/dist/esm/atomic-insight-refine-modal.entry.js +2 -2
- package/dist/esm/atomic-insight-refine-toggle.entry.js +1 -1
- package/dist/esm/atomic-insight-result-attach-to-case-indicator.entry.js +1 -1
- package/dist/esm/atomic-insight-result-children.entry.js +1 -1
- package/dist/esm/atomic-insight-result-list.entry.js +1 -1
- package/dist/esm/atomic-insight-result-quickview-action.entry.js +1 -1
- package/dist/esm/atomic-insight-result.entry.js +1 -1
- package/dist/esm/atomic-insight-search-box.entry.js +2 -2
- package/dist/esm/atomic-insight-smart-snippet-feedback-modal.entry.js +2 -2
- package/dist/esm/atomic-insight-tabs.entry.js +1 -1
- package/dist/esm/atomic-insight-timeframe-facet.entry.js +5 -6
- package/dist/esm/atomic-insight-timeframe-facet.entry.js.map +1 -1
- package/dist/esm/atomic-insight-user-actions-session_2.entry.js +1 -1
- package/dist/esm/atomic-insight-user-actions-toggle.entry.js +1 -1
- package/dist/esm/atomic-ipx-body.entry.js +2 -2
- package/dist/esm/atomic-ipx-button.entry.js +2 -2
- package/dist/esm/atomic-ipx-embedded.entry.js +1 -1
- package/dist/esm/atomic-ipx-modal.entry.js +2 -2
- package/dist/esm/atomic-ipx-recs-list.entry.js +1 -1
- package/dist/esm/atomic-ipx-refine-modal.entry.js +1 -1
- package/dist/esm/atomic-ipx-refine-toggle.entry.js +1 -1
- package/dist/esm/atomic-ipx-result-link.entry.js +1 -1
- package/dist/esm/atomic-ipx-tabs.entry.js +1 -1
- package/dist/esm/atomic-layout-section.entry.js +14 -0
- package/dist/esm/atomic-layout-section.entry.js.map +1 -0
- package/dist/esm/atomic-load-more-results.entry.js +1 -1
- package/dist/esm/atomic-no-results.entry.js +3 -15
- package/dist/esm/atomic-no-results.entry.js.map +1 -1
- package/dist/esm/atomic-numeric-facet.entry.js +2 -3
- package/dist/esm/atomic-numeric-facet.entry.js.map +1 -1
- package/dist/esm/atomic-pager.entry.js +3 -3
- package/dist/esm/atomic-product-link.entry.js +1 -1
- package/dist/esm/atomic-product-numeric-field-value.entry.js +1 -1
- package/dist/esm/atomic-product-price.entry.js +2 -2
- package/dist/esm/atomic-query-error.entry.js +1 -1
- package/dist/esm/atomic-query-summary.entry.js +1 -1
- package/dist/esm/atomic-quickview-modal.entry.js +1 -1
- package/dist/esm/atomic-quickview.entry.js +1 -1
- package/dist/esm/atomic-rating-facet.entry.js +1 -2
- package/dist/esm/atomic-rating-facet.entry.js.map +1 -1
- package/dist/esm/atomic-rating-range-facet.entry.js +1 -2
- package/dist/esm/atomic-rating-range-facet.entry.js.map +1 -1
- package/dist/esm/atomic-recs-error.entry.js +1 -1
- package/dist/esm/atomic-recs-interface.entry.js +3 -2
- package/dist/esm/atomic-recs-interface.entry.js.map +1 -1
- package/dist/esm/atomic-recs-list.entry.js +1 -1
- package/dist/esm/atomic-refine-modal.entry.js +1 -1
- package/dist/esm/atomic-refine-toggle.entry.js +4 -20
- package/dist/esm/atomic-refine-toggle.entry.js.map +1 -1
- package/dist/esm/{atomic-aria-live_2.entry.js → atomic-relevance-inspector.entry.js} +5 -71
- package/dist/esm/atomic-relevance-inspector.entry.js.map +1 -0
- package/dist/esm/atomic-result-children.entry.js +1 -1
- package/dist/esm/atomic-result-fields-list.entry.js +1 -1
- package/dist/esm/atomic-result-link.entry.js +1 -1
- package/dist/esm/atomic-result-list.entry.js +1 -1
- package/dist/esm/atomic-result-placeholder_8.entry.js +3 -3
- package/dist/esm/atomic-result-text_2.entry.js +3 -45
- package/dist/esm/atomic-result-text_2.entry.js.map +1 -1
- package/dist/esm/atomic-results-per-page.entry.js +1 -1
- package/dist/esm/atomic-search-box-query-suggestions_2.entry.js +2 -2
- package/dist/esm/atomic-search-box.entry.js +5 -4
- package/dist/esm/atomic-search-box.entry.js.map +1 -1
- package/dist/esm/atomic-search-interface.entry.js +2 -1
- package/dist/esm/atomic-search-interface.entry.js.map +1 -1
- package/dist/esm/atomic-smart-snippet-answer_2.entry.js +2 -2
- package/dist/esm/atomic-smart-snippet-collapse-wrapper_2.entry.js +3 -3
- package/dist/esm/atomic-smart-snippet-feedback-modal.entry.js +2 -2
- package/dist/esm/atomic-sort-dropdown.entry.js +2 -2
- package/dist/esm/atomic-sort-expression.entry.js +1 -1
- package/dist/esm/atomic-suggestion-renderer.entry.js +1 -1
- package/dist/esm/atomic-tab-bar_2.entry.js +1 -1
- package/dist/esm/atomic-tab-button.entry.js +1 -1
- package/dist/esm/atomic-tab-manager.entry.js +1 -1
- package/dist/esm/atomic-timeframe-facet.entry.js +5 -6
- package/dist/esm/atomic-timeframe-facet.entry.js.map +1 -1
- package/dist/esm/atomic.js +1 -1
- package/dist/esm/{stencil-facet-header-8a22d37d.js → facet-placeholder-1ed55384.js} +12 -2
- package/dist/esm/facet-placeholder-1ed55384.js.map +1 -0
- package/dist/esm/index-3f35faca.js +34 -10
- package/dist/esm/{analytics-config-9367c413.js → interface-common-stencil-4bb4d80c.js} +4 -42
- package/dist/esm/interface-common-stencil-4bb4d80c.js.map +1 -0
- package/dist/esm/{product-utils-85109d2e.js → product-utils-8348689f.js} +9 -2
- package/dist/esm/product-utils-8348689f.js.map +1 -0
- package/dist/esm/sections-ae00b53a.js.map +1 -1
- package/dist/esm/stencil-guard-9329c8cd.js +23 -0
- package/dist/esm/stencil-guard-9329c8cd.js.map +1 -0
- package/dist/esm/stencil-item-text-highlighted-0e1c6c08.js +49 -0
- package/dist/esm/stencil-item-text-highlighted-0e1c6c08.js.map +1 -0
- package/dist/esm/{stencil-tips-be95482d.js → stencil-tips-06e9b3c2.js} +2 -2
- package/dist/esm/{stencil-tips-be95482d.js.map → stencil-tips-06e9b3c2.js.map} +1 -1
- package/dist/esm/{timeframe-facet-common-e16ae647.js → timeframe-facet-common-987f9f89.js} +2 -3
- package/dist/esm/timeframe-facet-common-987f9f89.js.map +1 -0
- package/dist/esm/utils-bd51f737.js +16 -0
- package/dist/esm/utils-bd51f737.js.map +1 -0
- package/dist/esm/version.js +2 -2
- package/dist/types/components/commerce/atomic-commerce-layout/atomic-commerce-layout.d.ts +1 -1
- package/dist/types/components/commerce/atomic-commerce-no-products/atomic-commerce-no-products.d.ts +6 -15
- package/dist/types/components/commerce/atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.d.ts +45 -63
- package/dist/types/components/commerce/atomic-commerce-refine-toggle/atomic-commerce-refine-toggle.d.ts +8 -14
- package/dist/types/components/commerce/atomic-commerce-text/atomic-commerce-text.d.ts +5 -13
- package/dist/types/components/commerce/atomic-product-template/atomic-product-template.d.ts +1 -4
- package/dist/types/components/commerce/atomic-product-text/atomic-product-text.d.ts +15 -29
- package/dist/types/components/commerce/index.d.ts +0 -5
- package/dist/types/components/common/atomic-layout-section/atomic-layout-section.d.ts +2 -11
- package/dist/types/components/common/atomic-layout-section/sections.d.ts +1 -2
- package/dist/types/components/common/index.d.ts +0 -1
- package/dist/types/components/common/interface/interface-common.d.ts +2 -1
- package/dist/types/components/common/items-per-page/label.d.ts +2 -2
- package/dist/types/components/common/no-items/container.d.ts +2 -2
- package/dist/types/components/common/no-items/magnifying-glass.d.ts +2 -2
- package/dist/types/components/common/refine-modal/button.d.ts +1 -1
- package/dist/types/components/insight/atomic-insight-interface/store.d.ts +0 -4
- package/dist/types/components.d.ts +300 -4
- package/dist/types/utils/functional-component-utils.d.ts +0 -3
- package/docs/atomic-docs.json +795 -31
- package/package.json +3 -3
- package/dist/atomic/components/components/commerce/atomic-commerce-no-products/atomic-commerce-no-products.js +0 -95
- package/dist/atomic/components/components/commerce/atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.js +0 -235
- package/dist/atomic/components/components/commerce/atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.tw.css.js +0 -2
- package/dist/atomic/components/components/commerce/atomic-commerce-refine-toggle/atomic-commerce-refine-toggle.js +0 -84
- package/dist/atomic/components/components/commerce/atomic-commerce-refine-toggle/atomic-commerce-refine-toggle.tw.css.js +0 -2
- package/dist/atomic/components/components/commerce/atomic-commerce-text/atomic-commerce-text.js +0 -54
- package/dist/atomic/components/components/commerce/atomic-product-text/atomic-product-text.js +0 -135
- package/dist/atomic/components/components/commerce/product-template-component-utils/error.js +0 -6
- package/dist/atomic/components/components/commerce/product-template-component-utils/product-utils.js +0 -35
- package/dist/atomic/components/components/common/atomic-layout-section/atomic-layout-section.js +0 -31
- package/dist/atomic/components/components/common/item-text/field-warning.js +0 -6
- package/dist/atomic/components/components/common/item-text/item-text-fallback.js +0 -15
- package/dist/atomic/components/components/common/item-text/item-text-highlighted.js +0 -17
- package/dist/atomic/components/components/common/item-text/render-highlights.js +0 -13
- package/dist/atomic/components/components/common/no-items/container.js +0 -7
- package/dist/atomic/components/components/common/no-items/guard.js +0 -11
- package/dist/atomic/components/components/common/no-items/magnifying-glass.js +0 -11
- package/dist/atomic/components/components/common/no-items/no-items.js +0 -30
- package/dist/atomic/components/components/common/no-items/tips.js +0 -8
- package/dist/atomic/components/components/common/refine-modal/button.js +0 -14
- package/dist/atomic/components/components/common/refine-modal/guard.js +0 -23
- package/dist/atomic/components/utils/object-utils.js +0 -13
- package/dist/atomic/p-022784c5.entry.js +0 -2
- package/dist/atomic/p-06037ffe.entry.js +0 -2
- package/dist/atomic/p-06037ffe.entry.js.map +0 -1
- package/dist/atomic/p-1429fbdb.entry.js +0 -2
- package/dist/atomic/p-27054c71.entry.js +0 -2
- package/dist/atomic/p-3025e992.entry.js +0 -2
- package/dist/atomic/p-56d6d329.entry.js +0 -2
- package/dist/atomic/p-7555ad6d.js +0 -2
- package/dist/atomic/p-7555ad6d.js.map +0 -1
- package/dist/atomic/p-7d1c2ecd.js +0 -2
- package/dist/atomic/p-8074a49d.entry.js +0 -2
- package/dist/atomic/p-a1c4ac09.js +0 -2
- package/dist/atomic/p-a1c4ac09.js.map +0 -1
- package/dist/atomic/p-a3f0aaf4.js +0 -2
- package/dist/atomic/p-a3f0aaf4.js.map +0 -1
- package/dist/atomic/p-b0f8c3ae.entry.js +0 -2
- package/dist/atomic/p-b700e040.entry.js +0 -2
- package/dist/atomic/p-b700e040.entry.js.map +0 -1
- package/dist/atomic/p-b90e5ea5.entry.js +0 -2
- package/dist/atomic/p-bb10a380.entry.js +0 -2
- package/dist/atomic/p-bb10a380.entry.js.map +0 -1
- package/dist/atomic/p-c46d5a44.entry.js +0 -2
- package/dist/atomic/p-c46d5a44.entry.js.map +0 -1
- package/dist/atomic/p-d5d0a472.entry.js +0 -2
- package/dist/atomic/p-d5d0a472.entry.js.map +0 -1
- package/dist/atomic/p-d76c5232.entry.js +0 -2
- package/dist/atomic/p-e4f872fb.entry.js +0 -2
- package/dist/atomic/p-e6f377c8.entry.js +0 -2
- package/dist/atomic/p-e6f377c8.entry.js.map +0 -1
- package/dist/atomic/p-f1bbe060.entry.js +0 -2
- package/dist/atomic/p-f1bbe060.entry.js.map +0 -1
- package/dist/atomic/p-f5323d5b.js.map +0 -1
- package/dist/atomic/p-fafea879.entry.js +0 -2
- package/dist/cjs/analytics-config-d3622a33.js.map +0 -1
- package/dist/cjs/atomic-aria-live_2.cjs.entry.js.map +0 -1
- package/dist/cjs/atomic-commerce-category-facet_6.cjs.entry.js.map +0 -1
- package/dist/cjs/atomic-commerce-facets.cjs.entry.js +0 -120
- package/dist/cjs/atomic-commerce-facets.cjs.entry.js.map +0 -1
- package/dist/cjs/facet-placeholder-0111f0f1.js +0 -17
- package/dist/cjs/facet-placeholder-0111f0f1.js.map +0 -1
- package/dist/cjs/product-utils-f6c780e3.js.map +0 -1
- package/dist/cjs/stencil-facet-header-a3dd9de0.js.map +0 -1
- package/dist/cjs/timeframe-facet-common-d9078836.js.map +0 -1
- package/dist/esm/analytics-config-9367c413.js.map +0 -1
- package/dist/esm/atomic-aria-live_2.entry.js.map +0 -1
- package/dist/esm/atomic-commerce-category-facet_6.entry.js.map +0 -1
- package/dist/esm/atomic-commerce-facets.entry.js +0 -116
- package/dist/esm/atomic-commerce-facets.entry.js.map +0 -1
- package/dist/esm/facet-placeholder-ecbe6e6f.js +0 -15
- package/dist/esm/facet-placeholder-ecbe6e6f.js.map +0 -1
- package/dist/esm/product-utils-85109d2e.js.map +0 -1
- package/dist/esm/stencil-facet-header-8a22d37d.js.map +0 -1
- package/dist/esm/timeframe-facet-common-e16ae647.js.map +0 -1
- /package/dist/atomic/{p-f5cea23f.entry.js.map → p-0267a585.entry.js.map} +0 -0
- /package/dist/atomic/{p-dcded8cb.entry.js.map → p-0b0ea7d3.entry.js.map} +0 -0
- /package/dist/atomic/{p-1326166a.entry.js.map → p-135be5aa.entry.js.map} +0 -0
- /package/dist/atomic/{p-f3e9a9f8.entry.js.map → p-1cc97adc.entry.js.map} +0 -0
- /package/dist/atomic/{p-ea5d2736.entry.js.map → p-22a0d1b9.entry.js.map} +0 -0
- /package/dist/atomic/{p-d88aec96.entry.js.map → p-29d27418.entry.js.map} +0 -0
- /package/dist/atomic/{p-90e88505.entry.js.map → p-2f0cb73c.entry.js.map} +0 -0
- /package/dist/atomic/{p-fb060cc0.entry.js.map → p-306c83ea.entry.js.map} +0 -0
- /package/dist/atomic/{p-b15ca291.entry.js.map → p-3195fa42.entry.js.map} +0 -0
- /package/dist/atomic/{p-714c5c2c.entry.js.map → p-32b26cd0.entry.js.map} +0 -0
- /package/dist/atomic/{p-1c72983f.entry.js.map → p-32c90fe9.entry.js.map} +0 -0
- /package/dist/atomic/{p-4e2ec64c.entry.js.map → p-3ec18de9.entry.js.map} +0 -0
- /package/dist/atomic/{p-a010dddb.entry.js.map → p-3f42a2db.entry.js.map} +0 -0
- /package/dist/atomic/{p-4495b132.entry.js.map → p-45b26cc7.entry.js.map} +0 -0
- /package/dist/atomic/{p-ffb15631.entry.js.map → p-47ee9d37.entry.js.map} +0 -0
- /package/dist/atomic/{p-aa4fc96f.entry.js.map → p-50b9a5d2.entry.js.map} +0 -0
- /package/dist/atomic/{p-e25287fd.entry.js.map → p-51c5acfc.entry.js.map} +0 -0
- /package/dist/atomic/{p-f72a0133.entry.js.map → p-543e811e.entry.js.map} +0 -0
- /package/dist/atomic/{p-d76c5232.entry.js.map → p-5cf5bb98.entry.js.map} +0 -0
- /package/dist/atomic/{p-2866ca4d.entry.js.map → p-60a9e718.entry.js.map} +0 -0
- /package/dist/atomic/{p-eabb4eae.entry.js.map → p-66683abd.entry.js.map} +0 -0
- /package/dist/atomic/{p-8b579505.entry.js.map → p-67315415.entry.js.map} +0 -0
- /package/dist/atomic/{p-714ee3bb.entry.js.map → p-689e063d.entry.js.map} +0 -0
- /package/dist/atomic/{p-f5686c7e.entry.js.map → p-690b5853.entry.js.map} +0 -0
- /package/dist/atomic/{p-ace45b24.entry.js.map → p-70ab347b.entry.js.map} +0 -0
- /package/dist/atomic/{p-966509f8.entry.js.map → p-76122df5.entry.js.map} +0 -0
- /package/dist/atomic/{p-9ec72c3b.entry.js.map → p-7d1f8d9c.entry.js.map} +0 -0
- /package/dist/atomic/{p-d37bb72b.entry.js.map → p-80dc3bab.entry.js.map} +0 -0
- /package/dist/atomic/{p-6e11d4c6.entry.js.map → p-8d7f57d9.entry.js.map} +0 -0
- /package/dist/atomic/{p-7d63f0e6.entry.js.map → p-8e09f796.entry.js.map} +0 -0
- /package/dist/atomic/{p-a84d94cb.entry.js.map → p-95942ba2.entry.js.map} +0 -0
- /package/dist/atomic/{p-21d55afc.entry.js.map → p-99604083.entry.js.map} +0 -0
- /package/dist/atomic/{p-d4ec6961.entry.js.map → p-9a08dad7.entry.js.map} +0 -0
- /package/dist/atomic/{p-03fa8481.entry.js.map → p-9ae88402.entry.js.map} +0 -0
- /package/dist/atomic/{p-01c109cf.entry.js.map → p-9d2230db.entry.js.map} +0 -0
- /package/dist/atomic/{p-fac32d34.entry.js.map → p-9eb108c9.entry.js.map} +0 -0
- /package/dist/atomic/{p-5a3cd055.entry.js.map → p-a3169f59.entry.js.map} +0 -0
- /package/dist/atomic/{p-c6f15059.entry.js.map → p-a8281e9b.entry.js.map} +0 -0
- /package/dist/atomic/{p-4f03327d.entry.js.map → p-ab5eec3d.entry.js.map} +0 -0
- /package/dist/atomic/{p-1aedbfbf.entry.js.map → p-b19a8cbb.entry.js.map} +0 -0
- /package/dist/atomic/{p-61f79055.entry.js.map → p-b4d47ca9.entry.js.map} +0 -0
- /package/dist/atomic/{p-1e3f156e.entry.js.map → p-b4dfe5b2.entry.js.map} +0 -0
- /package/dist/atomic/{p-3025e992.entry.js.map → p-b747e4a9.entry.js.map} +0 -0
- /package/dist/atomic/{p-e4cc2a37.entry.js.map → p-b7824e0e.entry.js.map} +0 -0
- /package/dist/atomic/{p-3632e456.entry.js.map → p-be13ed5c.entry.js.map} +0 -0
- /package/dist/atomic/{p-2871034a.entry.js.map → p-bfeefcaa.entry.js.map} +0 -0
- /package/dist/atomic/{p-b4b6f859.entry.js.map → p-c0d7b26d.entry.js.map} +0 -0
- /package/dist/atomic/{p-9ef7ffc0.entry.js.map → p-c13d4039.entry.js.map} +0 -0
- /package/dist/atomic/{p-4505f2e0.entry.js.map → p-c4f042ae.entry.js.map} +0 -0
- /package/dist/atomic/{p-faee1f57.entry.js.map → p-cd87574b.entry.js.map} +0 -0
- /package/dist/atomic/{p-0875a7fb.entry.js.map → p-ce4e939b.entry.js.map} +0 -0
- /package/dist/atomic/{p-1fbbed3e.entry.js.map → p-d1efd50f.entry.js.map} +0 -0
- /package/dist/atomic/{p-7d773b22.entry.js.map → p-d30057a0.entry.js.map} +0 -0
- /package/dist/atomic/{p-e7d5c4be.entry.js.map → p-d4aba9f9.entry.js.map} +0 -0
- /package/dist/atomic/{p-ce1f6392.entry.js.map → p-d69756ae.entry.js.map} +0 -0
- /package/dist/atomic/{p-08d1db60.entry.js.map → p-d827c148.entry.js.map} +0 -0
- /package/dist/atomic/{p-d04ad3e5.entry.js.map → p-dd8c6bdd.entry.js.map} +0 -0
- /package/dist/atomic/{p-886da915.entry.js.map → p-ddd52850.entry.js.map} +0 -0
- /package/dist/atomic/{p-fecd79de.entry.js.map → p-e44155cc.entry.js.map} +0 -0
- /package/dist/atomic/{p-c074198a.entry.js.map → p-e4754fd0.entry.js.map} +0 -0
- /package/dist/atomic/{p-db5285b1.entry.js.map → p-ec0161b7.entry.js.map} +0 -0
- /package/dist/atomic/{p-eea2128f.entry.js.map → p-ec6bc15b.entry.js.map} +0 -0
- /package/dist/atomic/{p-e37f01fc.entry.js.map → p-eebb168b.entry.js.map} +0 -0
- /package/dist/atomic/{p-870dbeef.entry.js.map → p-f4b98113.entry.js.map} +0 -0
- /package/dist/atomic/{p-e988f378.js.map → p-f7f81710.js.map} +0 -0
- /package/dist/atomic/{p-8403335e.entry.js.map → p-fb0bdcdb.entry.js.map} +0 -0
- /package/dist/atomic/{p-b0f8c3ae.entry.js.map → p-fbbbc454.entry.js.map} +0 -0
- /package/dist/atomic/{p-ebb35a4b.entry.js.map → p-fd9d1c3f.entry.js.map} +0 -0
|
@@ -2,7 +2,7 @@ import { r as registerInstance, h, H as Host } from './index-3f35faca.js';
|
|
|
2
2
|
import { buildContext } from '@coveo/headless/commerce';
|
|
3
3
|
import { I as InitializeBindings, B as BindStateToController } from './initialization-utils-ff3edf9a.js';
|
|
4
4
|
import { d as defaultCurrencyFormatter } from './format-common-274e0f7c.js';
|
|
5
|
-
import { p as parseValue } from './product-utils-
|
|
5
|
+
import { p as parseValue } from './product-utils-8348689f.js';
|
|
6
6
|
import { P as ProductContext } from './stencil-product-template-decorators-0321cc1d.js';
|
|
7
7
|
import './dom-utils-f6086cd3.js';
|
|
8
8
|
import './event-utils-8de63ec3.js';
|
|
@@ -68,7 +68,7 @@ const AtomicProductPrice = class {
|
|
|
68
68
|
const originalPrice = this.hasPromotionalPrice
|
|
69
69
|
? this.getFormattedValue('ec_price')
|
|
70
70
|
: null;
|
|
71
|
-
return (h(Host, { key: '
|
|
71
|
+
return (h(Host, { key: '9be7690a20f179aebcb2ef1330406cf4c0840011', class: "flex flex-wrap gap-1" }, h("div", { key: '17f08914229562dbf5fc52a99980d6e7130c83a5', class: `truncate break-keep ${this.hasPromotionalPrice && 'text-error'}` }, mainPrice), h("div", { key: 'b70aa6768a3d75b7bce253102326b63d683ea879', class: 'original-price content-center truncate text-xl break-keep line-through' +
|
|
72
72
|
(!originalPrice ? ' invisible' : '') }, originalPrice ?? '')));
|
|
73
73
|
}
|
|
74
74
|
};
|
|
@@ -45,7 +45,7 @@ const AtomicQueryError = class {
|
|
|
45
45
|
if (hasError) {
|
|
46
46
|
this.ariaMessage = getAriaMessageFromErrorType(i18n, organizationId, url, error?.type);
|
|
47
47
|
}
|
|
48
|
-
return (h(QueryErrorGuard, { key: '
|
|
48
|
+
return (h(QueryErrorGuard, { key: '35a365a208b92b8fd42190d0914c55941836a0d5', hasError: hasError }, h(QueryErrorContainer, { key: '4a9df9c210520543e6dd28dde603d92ef51eb12d' }, h(QueryErrorIcon, { key: '5acc15d972298c51b9a35899c72b21ec9921071f', errorType: error?.type }), h(QueryErrorTitle, { key: '69c204454af76de98e2ae5af3c480e28d9bcfd3f', errorType: error?.type, i18n: i18n, organizationId: organizationId }), h(QueryErrorDescription, { key: '5bc6f621410459203d5577024abcd2e017a24f77', i18n: i18n, organizationId: organizationId, url: url, errorType: error?.type }), h(QueryErrorShowMore, { key: 'c560a6af5df7c51424b647eacae1f66f29d94295', link: h(QueryErrorLink, { i18n: i18n, errorType: error?.type }), onShowMore: () => (this.showMoreInfo = !this.showMoreInfo), i18n: i18n }), h(QueryErrorDetails, { key: '9d1e8c102af5b43904b5dafad4f6e0c043a916d9', error: error, show: this.showMoreInfo }))));
|
|
49
49
|
}
|
|
50
50
|
};
|
|
51
51
|
__decorate([
|
|
@@ -45,7 +45,7 @@ const AtomicQuerySummary = class {
|
|
|
45
45
|
isLoading,
|
|
46
46
|
});
|
|
47
47
|
this.ariaMessage = ariaLiveMessage;
|
|
48
|
-
return (h(QuerySummaryGuard, { key: '
|
|
48
|
+
return (h(QuerySummaryGuard, { key: '605587e02c8d39c87b0cebcf5877321d3a2a6824', firstSearchExecuted: firstSearchExecuted, hasResults: hasResults, hasError: hasError }, h(QuerySummaryContainer, { key: '33948c83706caaf66a119cbf967e2d394313e42c' }, h(LocalizedString, { key: i18nKey, i18n: this.bindings.i18n, params: highlights, count: total }), h("span", { key: 'cac5b48031278d323209bc35b478ee0f05e57a4a', class: "hidden", part: "duration" }, "\u00A0", h(LocalizedString, { key: "in-seconds", i18n: this.bindings.i18n, params: {
|
|
49
49
|
count: durationInSeconds.toLocaleString(this.bindings.i18n.language),
|
|
50
50
|
} })))));
|
|
51
51
|
}
|
|
@@ -577,7 +577,7 @@ const AtomicQuickviewModal = class {
|
|
|
577
577
|
});
|
|
578
578
|
}
|
|
579
579
|
render() {
|
|
580
|
-
return (h("atomic-modal", { key: '
|
|
580
|
+
return (h("atomic-modal", { key: '56bf44efabfda516af231dd2eb3004e52285aafe', fullscreen: this.bindings.store.isMobile(), class: 'atomic-quickview-modal', isOpen: this.isOpen, close: () => this.onClose(), exportparts: ATOMIC_MODAL_EXPORT_PARTS }, this.renderHeader(), this.renderBody(), this.renderFooter()));
|
|
581
581
|
}
|
|
582
582
|
static get watchers() { return {
|
|
583
583
|
"highlightKeywords": ["watchHighlightKeywords"]
|
|
@@ -113,7 +113,7 @@ const AtomicQuickview = class {
|
|
|
113
113
|
}
|
|
114
114
|
render() {
|
|
115
115
|
if (this.quickviewState.resultHasPreview) {
|
|
116
|
-
return (h(Button, { key: '
|
|
116
|
+
return (h(Button, { key: 'bf02d4c04582bf6fea9e5bb4094942e4bedbcf57', part: "button", title: this.bindings.i18n.t('quickview'), style: "outline-primary", class: "p-2", onClick: (event) => this.onClick(event), ref: this.focusTarget.setTarget }, h("atomic-icon", { key: '8383eda6ce892806f43dde2128b74c700fe4be88', part: "icon", class: "flex w-5 justify-center", icon: QuickviewIcon })));
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
119
|
};
|
|
@@ -6,8 +6,7 @@ import { I as InitializeBindings, B as BindStateToController, H as Hidden } from
|
|
|
6
6
|
import { A as ArrayProp, M as MapProp } from './props-utils-187abfd2.js';
|
|
7
7
|
import { F as FocusTargetController } from './stencil-accessibility-utils-b42ac309.js';
|
|
8
8
|
import { p as parseDependsOn } from './depends-on-d73b0ce3.js';
|
|
9
|
-
import { F as FacetHeader, a as FacetContainer } from './
|
|
10
|
-
import { F as FacetPlaceholder } from './facet-placeholder-ecbe6e6f.js';
|
|
9
|
+
import { F as FacetHeader, b as FacetPlaceholder, a as FacetContainer } from './facet-placeholder-1ed55384.js';
|
|
11
10
|
import { F as FacetValueCheckbox } from './stencil-facet-value-checkbox-b848c25d.js';
|
|
12
11
|
import { F as FacetValueLink } from './stencil-facet-value-link-77d619b8.js';
|
|
13
12
|
import { F as FacetValuesGroup } from './stencil-facet-values-group-1108573d.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"atomic-rating-facet.entry.js","mappings":"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","names":[],"sources":["src/components/search/facets/atomic-rating-facet/atomic-rating-facet.pcss?tag=atomic-rating-facet&encapsulation=shadow","src/components/search/facets/atomic-rating-facet/atomic-rating-facet.tsx"],"sourcesContent":["@import '../../../common/facets/facet-common.pcss';\n@import '../../../common/facets/facet-value-checkbox/facet-value-checkbox.pcss';\n@import '../../../common/atomic-rating/atomic-rating.pcss';\n","import {Schema, StringValue} from '@coveo/bueno';\nimport {\n NumericFacet,\n buildNumericFacet,\n NumericFacetState,\n NumericFacetOptions,\n SearchStatus,\n SearchStatusState,\n buildSearchStatus,\n NumericFacetValue,\n NumericRangeRequest,\n buildNumericRange,\n buildFacetConditionsManager,\n FacetConditionsManager,\n FacetValueRequest,\n CategoryFacetValueRequest,\n buildTabManager,\n TabManager,\n TabManagerState,\n} from '@coveo/headless';\nimport {Component, h, State, Prop, VNode, Element} from '@stencil/core';\nimport Star from '../../../../images/star.svg';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {ArrayProp, MapProp} from '../../../../utils/props-utils';\nimport {FocusTargetController} from '../../../../utils/stencil-accessibility-utils';\nimport {Rating} from '../../../common/atomic-rating/atomic-rating';\nimport {parseDependsOn} from '../../../common/facets/depends-on';\nimport {FacetInfo} from '../../../common/facets/facet-common-store';\nimport {FacetContainer} from '../../../common/facets/facet-container/stencil-facet-container';\nimport {FacetHeader} from '../../../common/facets/facet-header/stencil-facet-header';\nimport {FacetPlaceholder} from '../../../common/facets/facet-placeholder/facet-placeholder';\nimport {FacetValueCheckbox} from '../../../common/facets/facet-value-checkbox/stencil-facet-value-checkbox';\nimport {FacetValueLink} from '../../../common/facets/facet-value-link/stencil-facet-value-link';\nimport {FacetValuesGroup} from '../../../common/facets/facet-values-group/stencil-facet-values-group';\nimport {initializePopover} from '../../../common/facets/popover/popover-type';\nimport {Hidden} from '../../../common/stencil-hidden';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\n\n/**\n * A facet is a list of values for a certain field occurring in the results, ordered using a configurable criteria (e.g., number of occurrences).\n * An `atomic-rating-facet` displays a facet of the results for the current query as ratings.\n * It only supports numeric fields.\n *\n * @part facet - The wrapper for the entire facet.\n * @part placeholder - The placeholder shown before the first search is executed.\n *\n * @part label-button - The button that displays the label and toggles to expand or collapse the facet.\n * @part label-button-icon - The label button icon.\n * @part clear-button - The button that resets the actively selected facet values.\n * @part clear-button-icon - The clear button icon.\n *\n * @part values - The facet values container.\n * @part value-count - The facet value count, common for all displays.\n * @part value-rating - The facet value rating, common for all displays.\n * @part value-rating-icon - The individual star icons used in the rating display.\n *\n * @part value-checkbox - The facet value checkbox, available when display is 'checkbox'.\n * @part value-checkbox-checked - The checked facet value checkbox, available when display is 'checkbox'.\n * @part value-checkbox-label - The facet value checkbox clickable label, available when display is 'checkbox'.\n * @part value-checkbox-icon - The facet value checkbox icon, available when display is 'checkbox'.\n * @part value-link - The facet value when display is 'link'.\n * @part value-link-selected - The selected facet value when display is 'link'.\n */\n@Component({\n tag: 'atomic-rating-facet',\n styleUrl: 'atomic-rating-facet.pcss',\n shadow: true,\n})\nexport class AtomicRatingFacet implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n public facet!: NumericFacet;\n private dependenciesManager?: FacetConditionsManager;\n public searchStatus!: SearchStatus;\n public tabManager!: TabManager;\n @Element() private host!: HTMLElement;\n\n @BindStateToController('facet')\n @State()\n public facetState!: NumericFacetState;\n @BindStateToController('searchStatus')\n @State()\n public searchStatusState!: SearchStatusState;\n @BindStateToController('tabManager')\n @State()\n public tabManagerState!: TabManagerState;\n @State() public error!: Error;\n\n /**\n * Specifies a unique identifier for the facet.\n */\n @Prop({mutable: true, reflect: true}) public facetId?: string;\n /**\n * The non-localized label for the facet.\n * Used in the `atomic-breadbox` component through the bindings store.\n */\n @Prop({reflect: true}) public label = 'no-label';\n /**\n * The field whose values you want to display in the facet.\n */\n @Prop({reflect: true}) public field!: string;\n /**\n * The tabs on which the facet can be displayed. This property should not be used at the same time as `tabs-excluded`.\n *\n * Set this property as a stringified JSON array, e.g.,\n * ```html\n * <atomic-timeframe-facet tabs-included='[\"tabIDA\", \"tabIDB\"]'></atomic-timeframe-facet>\n * ```\n * If you don't set this property, the facet can be displayed on any tab. Otherwise, the facet can only be displayed on the specified tabs.\n */\n @ArrayProp()\n @Prop({reflect: true, mutable: true})\n public tabsIncluded: string[] | string = '[]';\n\n /**\n * The tabs on which this facet must not be displayed. This property should not be used at the same time as `tabs-included`.\n *\n * Set this property as a stringified JSON array, e.g.,\n * ```html\n * <atomic-timeframe-facet tabs-excluded='[\"tabIDA\", \"tabIDB\"]'></atomic-timeframe-facet>\n * ```\n * If you don't set this property, the facet can be displayed on any tab. Otherwise, the facet won't be displayed on any of the specified tabs.\n */\n @ArrayProp()\n @Prop({reflect: true, mutable: true})\n public tabsExcluded: string[] | string = '[]';\n\n /**\n * The number of options to display in the facet. If `maxValueInIndex` isn't specified, it will be assumed that this is also the maximum number of rating icons.\n */\n @Prop({reflect: true}) public numberOfIntervals = 5;\n /**\n * The maximum value in the field's index and the number of rating icons to display in the facet. If not assigned a value, this property will default to the same value as `numberOfIntervals`.\n */\n @Prop({reflect: true}) public maxValueInIndex = this.numberOfIntervals;\n /**\n * The minimum value of the field.\n */\n @Prop({reflect: true}) public minValueInIndex = 1;\n /**\n * Whether to display the facet values as checkboxes (multiple selection) or links (single selection).\n * Possible values are 'checkbox' and 'link'.\n */\n @Prop({reflect: true}) public displayValuesAs: 'checkbox' | 'link' =\n 'checkbox';\n /**\n * The SVG icon to use to display the rating.\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 * When using a custom icon, at least part of your icon should have the color set to `fill=\"currentColor\"`.\n * This part of the SVG will take on the colors set in the following [variables](https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties):\n *\n * - `--atomic-rating-icon-active-color`\n * - `--atomic-rating-icon-inactive-color`\n\n */\n @Prop({reflect: true}) public icon = Star;\n /**\n * Specifies whether the facet is collapsed. When the facet is the child of an `atomic-facet-manager` component, the facet manager controls this property.\n */\n @Prop({reflect: true, mutable: true}) public isCollapsed = false;\n /**\n * The [heading level](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Heading_Elements) to use for the heading over the facet, from 1 to 6.\n */\n @Prop({reflect: true}) public headingLevel = 0;\n /**\n * Whether to exclude the parents of folded results when estimating the result count for each facet value.\n *\n *\n * Note: Resulting count is only an estimation, in some cases this value could be incorrect.\n */\n @Prop({reflect: true}) public filterFacetCount = true;\n /**\n * The maximum number of results to scan in the index to ensure that the facet lists all potential facet values.\n * Note: A high injectionDepth may negatively impact the facet request performance.\n * Minimum: `0`\n */\n @Prop({reflect: true}) public injectionDepth = 1000;\n\n /**\n * The required facets and values for this facet to be displayed.\n * Examples:\n * ```html\n * <atomic-facet facet-id=\"abc\" field=\"objecttype\" ...></atomic-facet>\n *\n * <!-- To show the facet when any value is selected in the facet with id \"abc\": -->\n * <atomic-rating-facet\n * depends-on-abc\n * ...\n * ></atomic-rating-facet>\n *\n * <!-- To show the facet when value \"doc\" is selected in the facet with id \"abc\": -->\n * <atomic-rating-facet\n * depends-on-abc=\"doc\"\n * ...\n * ></atomic-rating-facet>\n * ```\n */\n @MapProp() @Prop() public dependsOn: Record<string, string> = {};\n\n private headerFocus?: FocusTargetController;\n\n private get focusTarget(): FocusTargetController {\n if (!this.headerFocus) {\n this.headerFocus = new FocusTargetController(this);\n }\n return this.headerFocus;\n }\n private validateProps() {\n new Schema({\n displayValuesAs: new StringValue({constrainTo: ['checkbox', 'link']}),\n }).validate({\n displayValuesAs: this.displayValuesAs,\n });\n }\n\n public initialize() {\n if (\n [...this.tabsIncluded].length > 0 &&\n [...this.tabsExcluded].length > 0\n ) {\n console.warn(\n 'Values for both \"tabs-included\" and \"tabs-excluded\" have been provided. This is could lead to unexpected behaviors.'\n );\n }\n this.validateProps();\n this.searchStatus = buildSearchStatus(this.bindings.engine);\n this.tabManager = buildTabManager(this.bindings.engine);\n this.initializeFacet();\n this.initializeDependenciesManager();\n }\n\n private initializeFacet() {\n const options: NumericFacetOptions = {\n facetId: this.facetId,\n field: this.field,\n numberOfValues: this.numberOfIntervals,\n currentValues: this.generateCurrentValues(),\n sortCriteria: 'descending',\n generateAutomaticRanges: false,\n filterFacetCount: this.filterFacetCount,\n injectionDepth: this.injectionDepth,\n tabs: {\n included: [...this.tabsIncluded],\n excluded: [...this.tabsExcluded],\n },\n };\n this.facet = buildNumericFacet(this.bindings.engine, {options});\n this.facetId = this.facet.state.facetId;\n const facetInfo: FacetInfo = {\n label: () => this.bindings.i18n.t(this.label),\n facetId: this.facetId!,\n element: this.host,\n isHidden: () => this.isHidden,\n };\n this.bindings.store.registerFacet('numericFacets', {\n ...facetInfo,\n format: (value) => this.formatFacetValue(value),\n content: (value) => this.ratingContent(value),\n });\n initializePopover(this.host, {\n ...facetInfo,\n hasValues: () => !!this.valuesToRender.length,\n numberOfActiveValues: () => this.numberOfSelectedValues,\n });\n }\n\n public disconnectedCallback() {\n if (this.host.isConnected) {\n return;\n }\n this.dependenciesManager?.stopWatching();\n }\n private get isHidden() {\n return (\n this.searchStatusState.hasError ||\n !this.facet.state.enabled ||\n !this.valuesToRender.length\n );\n }\n\n private get scaleFactor() {\n return this.maxValueInIndex / this.numberOfIntervals;\n }\n\n private get numberOfSelectedValues() {\n return this.facetState.values.filter(({state}) => state === 'selected')\n .length;\n }\n\n private initializeDependenciesManager() {\n this.dependenciesManager = buildFacetConditionsManager(\n this.bindings.engine,\n {\n facetId: this.facetId!,\n conditions: parseDependsOn<\n FacetValueRequest | CategoryFacetValueRequest\n >(this.dependsOn),\n }\n );\n }\n\n private generateCurrentValues() {\n const currentValues: NumericRangeRequest[] = [];\n for (let i = this.minValueInIndex; i <= this.numberOfIntervals; i++) {\n currentValues.push(\n buildNumericRange({\n start: Math.round(i * this.scaleFactor * 100) / 100,\n end: Math.round((i + 1) * this.scaleFactor * 100) / 100,\n endInclusive: false,\n })\n );\n }\n return currentValues;\n }\n\n private formatFacetValue(facetValue: NumericFacetValue) {\n if (facetValue.start === this.maxValueInIndex) {\n return this.bindings.i18n.t('stars-only', {count: facetValue.start});\n }\n return this.bindings.i18n.t('stars', {\n count: facetValue.start,\n max: this.maxValueInIndex,\n });\n }\n\n private ratingContent(facetValue: NumericFacetValue) {\n return (\n <Rating\n i18n={this.bindings.i18n}\n numberOfTotalIcons={this.maxValueInIndex}\n numberOfActiveIcons={facetValue.start}\n icon={this.icon}\n ></Rating>\n );\n }\n\n private renderHeader() {\n return (\n <FacetHeader\n i18n={this.bindings.i18n}\n label={this.label}\n onClearFilters={() => {\n this.focusTarget.focusAfterSearch();\n this.facet.deselectAll();\n }}\n numberOfActiveValues={this.numberOfSelectedValues}\n isCollapsed={this.isCollapsed}\n headingLevel={this.headingLevel}\n onToggleCollapse={() => (this.isCollapsed = !this.isCollapsed)}\n headerRef={(el) => this.focusTarget.setTarget(el)}\n ></FacetHeader>\n );\n }\n\n private renderValue(facetValue: NumericFacetValue, onClick: () => void) {\n const displayValue = this.formatFacetValue(facetValue);\n const isSelected = facetValue.state === 'selected';\n const shouldBeDimmed = this.facetState.hasActiveValues && !isSelected;\n switch (this.displayValuesAs) {\n case 'checkbox':\n return (\n <FacetValueCheckbox\n displayValue={displayValue}\n numberOfResults={facetValue.numberOfResults}\n isSelected={isSelected}\n i18n={this.bindings.i18n}\n onClick={onClick}\n >\n {this.ratingContent(facetValue)}\n </FacetValueCheckbox>\n );\n case 'link':\n return (\n <FacetValueLink\n displayValue={displayValue}\n numberOfResults={facetValue.numberOfResults}\n isSelected={isSelected}\n i18n={this.bindings.i18n}\n onClick={onClick}\n class={shouldBeDimmed ? 'opacity-80' : undefined}\n >\n {this.ratingContent(facetValue)}\n </FacetValueLink>\n );\n }\n }\n\n private renderValuesContainer(children: VNode[]) {\n return (\n <FacetValuesGroup i18n={this.bindings.i18n} label={this.label}>\n <ul class=\"mt-3\" part=\"values\">\n {children}\n </ul>\n </FacetValuesGroup>\n );\n }\n\n private renderValues() {\n return this.renderValuesContainer(\n this.valuesToRender.map((value) =>\n this.renderValue(value, () =>\n this.displayValuesAs === 'link'\n ? this.facet.toggleSingleSelect(value)\n : this.facet.toggleSelect(value)\n )\n )\n );\n }\n\n private get valuesToRender() {\n return this.facet.state.values.filter(\n (value) => value.numberOfResults || value.state !== 'idle'\n );\n }\n\n public render() {\n if (this.searchStatusState.hasError || !this.facet.state.enabled) {\n return <Hidden></Hidden>;\n }\n\n if (!this.searchStatusState.firstSearchExecuted) {\n return (\n <FacetPlaceholder\n numberOfValues={this.numberOfIntervals}\n isCollapsed={this.isCollapsed}\n ></FacetPlaceholder>\n );\n }\n\n if (!this.valuesToRender.length) {\n return <Hidden></Hidden>;\n }\n\n return (\n <FacetContainer>\n {this.renderHeader()}\n {!this.isCollapsed && this.renderValues()}\n </FacetContainer>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"atomic-rating-facet.entry.js","mappings":"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","names":[],"sources":["src/components/search/facets/atomic-rating-facet/atomic-rating-facet.pcss?tag=atomic-rating-facet&encapsulation=shadow","src/components/search/facets/atomic-rating-facet/atomic-rating-facet.tsx"],"sourcesContent":["@import '../../../common/facets/facet-common.pcss';\n@import '../../../common/facets/facet-value-checkbox/facet-value-checkbox.pcss';\n@import '../../../common/atomic-rating/atomic-rating.pcss';\n","import {Schema, StringValue} from '@coveo/bueno';\nimport {\n NumericFacet,\n buildNumericFacet,\n NumericFacetState,\n NumericFacetOptions,\n SearchStatus,\n SearchStatusState,\n buildSearchStatus,\n NumericFacetValue,\n NumericRangeRequest,\n buildNumericRange,\n buildFacetConditionsManager,\n FacetConditionsManager,\n FacetValueRequest,\n CategoryFacetValueRequest,\n buildTabManager,\n TabManager,\n TabManagerState,\n} from '@coveo/headless';\nimport {Component, h, State, Prop, VNode, Element} from '@stencil/core';\nimport Star from '../../../../images/star.svg';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {ArrayProp, MapProp} from '../../../../utils/props-utils';\nimport {FocusTargetController} from '../../../../utils/stencil-accessibility-utils';\nimport {Rating} from '../../../common/atomic-rating/atomic-rating';\nimport {parseDependsOn} from '../../../common/facets/depends-on';\nimport {FacetInfo} from '../../../common/facets/facet-common-store';\nimport {FacetContainer} from '../../../common/facets/facet-container/stencil-facet-container';\nimport {FacetHeader} from '../../../common/facets/facet-header/stencil-facet-header';\nimport {FacetPlaceholder} from '../../../common/facets/facet-placeholder/facet-placeholder';\nimport {FacetValueCheckbox} from '../../../common/facets/facet-value-checkbox/stencil-facet-value-checkbox';\nimport {FacetValueLink} from '../../../common/facets/facet-value-link/stencil-facet-value-link';\nimport {FacetValuesGroup} from '../../../common/facets/facet-values-group/stencil-facet-values-group';\nimport {initializePopover} from '../../../common/facets/popover/popover-type';\nimport {Hidden} from '../../../common/stencil-hidden';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\n\n/**\n * A facet is a list of values for a certain field occurring in the results, ordered using a configurable criteria (e.g., number of occurrences).\n * An `atomic-rating-facet` displays a facet of the results for the current query as ratings.\n * It only supports numeric fields.\n *\n * @part facet - The wrapper for the entire facet.\n * @part placeholder - The placeholder shown before the first search is executed.\n *\n * @part label-button - The button that displays the label and toggles to expand or collapse the facet.\n * @part label-button-icon - The label button icon.\n * @part clear-button - The button that resets the actively selected facet values.\n * @part clear-button-icon - The clear button icon.\n *\n * @part values - The facet values container.\n * @part value-count - The facet value count, common for all displays.\n * @part value-rating - The facet value rating, common for all displays.\n * @part value-rating-icon - The individual star icons used in the rating display.\n *\n * @part value-checkbox - The facet value checkbox, available when display is 'checkbox'.\n * @part value-checkbox-checked - The checked facet value checkbox, available when display is 'checkbox'.\n * @part value-checkbox-label - The facet value checkbox clickable label, available when display is 'checkbox'.\n * @part value-checkbox-icon - The facet value checkbox icon, available when display is 'checkbox'.\n * @part value-link - The facet value when display is 'link'.\n * @part value-link-selected - The selected facet value when display is 'link'.\n */\n@Component({\n tag: 'atomic-rating-facet',\n styleUrl: 'atomic-rating-facet.pcss',\n shadow: true,\n})\nexport class AtomicRatingFacet implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n public facet!: NumericFacet;\n private dependenciesManager?: FacetConditionsManager;\n public searchStatus!: SearchStatus;\n public tabManager!: TabManager;\n @Element() private host!: HTMLElement;\n\n @BindStateToController('facet')\n @State()\n public facetState!: NumericFacetState;\n @BindStateToController('searchStatus')\n @State()\n public searchStatusState!: SearchStatusState;\n @BindStateToController('tabManager')\n @State()\n public tabManagerState!: TabManagerState;\n @State() public error!: Error;\n\n /**\n * Specifies a unique identifier for the facet.\n */\n @Prop({mutable: true, reflect: true}) public facetId?: string;\n /**\n * The non-localized label for the facet.\n * Used in the `atomic-breadbox` component through the bindings store.\n */\n @Prop({reflect: true}) public label = 'no-label';\n /**\n * The field whose values you want to display in the facet.\n */\n @Prop({reflect: true}) public field!: string;\n /**\n * The tabs on which the facet can be displayed. This property should not be used at the same time as `tabs-excluded`.\n *\n * Set this property as a stringified JSON array, e.g.,\n * ```html\n * <atomic-timeframe-facet tabs-included='[\"tabIDA\", \"tabIDB\"]'></atomic-timeframe-facet>\n * ```\n * If you don't set this property, the facet can be displayed on any tab. Otherwise, the facet can only be displayed on the specified tabs.\n */\n @ArrayProp()\n @Prop({reflect: true, mutable: true})\n public tabsIncluded: string[] | string = '[]';\n\n /**\n * The tabs on which this facet must not be displayed. This property should not be used at the same time as `tabs-included`.\n *\n * Set this property as a stringified JSON array, e.g.,\n * ```html\n * <atomic-timeframe-facet tabs-excluded='[\"tabIDA\", \"tabIDB\"]'></atomic-timeframe-facet>\n * ```\n * If you don't set this property, the facet can be displayed on any tab. Otherwise, the facet won't be displayed on any of the specified tabs.\n */\n @ArrayProp()\n @Prop({reflect: true, mutable: true})\n public tabsExcluded: string[] | string = '[]';\n\n /**\n * The number of options to display in the facet. If `maxValueInIndex` isn't specified, it will be assumed that this is also the maximum number of rating icons.\n */\n @Prop({reflect: true}) public numberOfIntervals = 5;\n /**\n * The maximum value in the field's index and the number of rating icons to display in the facet. If not assigned a value, this property will default to the same value as `numberOfIntervals`.\n */\n @Prop({reflect: true}) public maxValueInIndex = this.numberOfIntervals;\n /**\n * The minimum value of the field.\n */\n @Prop({reflect: true}) public minValueInIndex = 1;\n /**\n * Whether to display the facet values as checkboxes (multiple selection) or links (single selection).\n * Possible values are 'checkbox' and 'link'.\n */\n @Prop({reflect: true}) public displayValuesAs: 'checkbox' | 'link' =\n 'checkbox';\n /**\n * The SVG icon to use to display the rating.\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 * When using a custom icon, at least part of your icon should have the color set to `fill=\"currentColor\"`.\n * This part of the SVG will take on the colors set in the following [variables](https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties):\n *\n * - `--atomic-rating-icon-active-color`\n * - `--atomic-rating-icon-inactive-color`\n\n */\n @Prop({reflect: true}) public icon = Star;\n /**\n * Specifies whether the facet is collapsed. When the facet is the child of an `atomic-facet-manager` component, the facet manager controls this property.\n */\n @Prop({reflect: true, mutable: true}) public isCollapsed = false;\n /**\n * The [heading level](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Heading_Elements) to use for the heading over the facet, from 1 to 6.\n */\n @Prop({reflect: true}) public headingLevel = 0;\n /**\n * Whether to exclude the parents of folded results when estimating the result count for each facet value.\n *\n *\n * Note: Resulting count is only an estimation, in some cases this value could be incorrect.\n */\n @Prop({reflect: true}) public filterFacetCount = true;\n /**\n * The maximum number of results to scan in the index to ensure that the facet lists all potential facet values.\n * Note: A high injectionDepth may negatively impact the facet request performance.\n * Minimum: `0`\n */\n @Prop({reflect: true}) public injectionDepth = 1000;\n\n /**\n * The required facets and values for this facet to be displayed.\n * Examples:\n * ```html\n * <atomic-facet facet-id=\"abc\" field=\"objecttype\" ...></atomic-facet>\n *\n * <!-- To show the facet when any value is selected in the facet with id \"abc\": -->\n * <atomic-rating-facet\n * depends-on-abc\n * ...\n * ></atomic-rating-facet>\n *\n * <!-- To show the facet when value \"doc\" is selected in the facet with id \"abc\": -->\n * <atomic-rating-facet\n * depends-on-abc=\"doc\"\n * ...\n * ></atomic-rating-facet>\n * ```\n */\n @MapProp() @Prop() public dependsOn: Record<string, string> = {};\n\n private headerFocus?: FocusTargetController;\n\n private get focusTarget(): FocusTargetController {\n if (!this.headerFocus) {\n this.headerFocus = new FocusTargetController(this);\n }\n return this.headerFocus;\n }\n private validateProps() {\n new Schema({\n displayValuesAs: new StringValue({constrainTo: ['checkbox', 'link']}),\n }).validate({\n displayValuesAs: this.displayValuesAs,\n });\n }\n\n public initialize() {\n if (\n [...this.tabsIncluded].length > 0 &&\n [...this.tabsExcluded].length > 0\n ) {\n console.warn(\n 'Values for both \"tabs-included\" and \"tabs-excluded\" have been provided. This is could lead to unexpected behaviors.'\n );\n }\n this.validateProps();\n this.searchStatus = buildSearchStatus(this.bindings.engine);\n this.tabManager = buildTabManager(this.bindings.engine);\n this.initializeFacet();\n this.initializeDependenciesManager();\n }\n\n private initializeFacet() {\n const options: NumericFacetOptions = {\n facetId: this.facetId,\n field: this.field,\n numberOfValues: this.numberOfIntervals,\n currentValues: this.generateCurrentValues(),\n sortCriteria: 'descending',\n generateAutomaticRanges: false,\n filterFacetCount: this.filterFacetCount,\n injectionDepth: this.injectionDepth,\n tabs: {\n included: [...this.tabsIncluded],\n excluded: [...this.tabsExcluded],\n },\n };\n this.facet = buildNumericFacet(this.bindings.engine, {options});\n this.facetId = this.facet.state.facetId;\n const facetInfo: FacetInfo = {\n label: () => this.bindings.i18n.t(this.label),\n facetId: this.facetId!,\n element: this.host,\n isHidden: () => this.isHidden,\n };\n this.bindings.store.registerFacet('numericFacets', {\n ...facetInfo,\n format: (value) => this.formatFacetValue(value),\n content: (value) => this.ratingContent(value),\n });\n initializePopover(this.host, {\n ...facetInfo,\n hasValues: () => !!this.valuesToRender.length,\n numberOfActiveValues: () => this.numberOfSelectedValues,\n });\n }\n\n public disconnectedCallback() {\n if (this.host.isConnected) {\n return;\n }\n this.dependenciesManager?.stopWatching();\n }\n private get isHidden() {\n return (\n this.searchStatusState.hasError ||\n !this.facet.state.enabled ||\n !this.valuesToRender.length\n );\n }\n\n private get scaleFactor() {\n return this.maxValueInIndex / this.numberOfIntervals;\n }\n\n private get numberOfSelectedValues() {\n return this.facetState.values.filter(({state}) => state === 'selected')\n .length;\n }\n\n private initializeDependenciesManager() {\n this.dependenciesManager = buildFacetConditionsManager(\n this.bindings.engine,\n {\n facetId: this.facetId!,\n conditions: parseDependsOn<\n FacetValueRequest | CategoryFacetValueRequest\n >(this.dependsOn),\n }\n );\n }\n\n private generateCurrentValues() {\n const currentValues: NumericRangeRequest[] = [];\n for (let i = this.minValueInIndex; i <= this.numberOfIntervals; i++) {\n currentValues.push(\n buildNumericRange({\n start: Math.round(i * this.scaleFactor * 100) / 100,\n end: Math.round((i + 1) * this.scaleFactor * 100) / 100,\n endInclusive: false,\n })\n );\n }\n return currentValues;\n }\n\n private formatFacetValue(facetValue: NumericFacetValue) {\n if (facetValue.start === this.maxValueInIndex) {\n return this.bindings.i18n.t('stars-only', {count: facetValue.start});\n }\n return this.bindings.i18n.t('stars', {\n count: facetValue.start,\n max: this.maxValueInIndex,\n });\n }\n\n private ratingContent(facetValue: NumericFacetValue) {\n return (\n <Rating\n i18n={this.bindings.i18n}\n numberOfTotalIcons={this.maxValueInIndex}\n numberOfActiveIcons={facetValue.start}\n icon={this.icon}\n ></Rating>\n );\n }\n\n private renderHeader() {\n return (\n <FacetHeader\n i18n={this.bindings.i18n}\n label={this.label}\n onClearFilters={() => {\n this.focusTarget.focusAfterSearch();\n this.facet.deselectAll();\n }}\n numberOfActiveValues={this.numberOfSelectedValues}\n isCollapsed={this.isCollapsed}\n headingLevel={this.headingLevel}\n onToggleCollapse={() => (this.isCollapsed = !this.isCollapsed)}\n headerRef={(el) => this.focusTarget.setTarget(el)}\n ></FacetHeader>\n );\n }\n\n private renderValue(facetValue: NumericFacetValue, onClick: () => void) {\n const displayValue = this.formatFacetValue(facetValue);\n const isSelected = facetValue.state === 'selected';\n const shouldBeDimmed = this.facetState.hasActiveValues && !isSelected;\n switch (this.displayValuesAs) {\n case 'checkbox':\n return (\n <FacetValueCheckbox\n displayValue={displayValue}\n numberOfResults={facetValue.numberOfResults}\n isSelected={isSelected}\n i18n={this.bindings.i18n}\n onClick={onClick}\n >\n {this.ratingContent(facetValue)}\n </FacetValueCheckbox>\n );\n case 'link':\n return (\n <FacetValueLink\n displayValue={displayValue}\n numberOfResults={facetValue.numberOfResults}\n isSelected={isSelected}\n i18n={this.bindings.i18n}\n onClick={onClick}\n class={shouldBeDimmed ? 'opacity-80' : undefined}\n >\n {this.ratingContent(facetValue)}\n </FacetValueLink>\n );\n }\n }\n\n private renderValuesContainer(children: VNode[]) {\n return (\n <FacetValuesGroup i18n={this.bindings.i18n} label={this.label}>\n <ul class=\"mt-3\" part=\"values\">\n {children}\n </ul>\n </FacetValuesGroup>\n );\n }\n\n private renderValues() {\n return this.renderValuesContainer(\n this.valuesToRender.map((value) =>\n this.renderValue(value, () =>\n this.displayValuesAs === 'link'\n ? this.facet.toggleSingleSelect(value)\n : this.facet.toggleSelect(value)\n )\n )\n );\n }\n\n private get valuesToRender() {\n return this.facet.state.values.filter(\n (value) => value.numberOfResults || value.state !== 'idle'\n );\n }\n\n public render() {\n if (this.searchStatusState.hasError || !this.facet.state.enabled) {\n return <Hidden></Hidden>;\n }\n\n if (!this.searchStatusState.firstSearchExecuted) {\n return (\n <FacetPlaceholder\n numberOfValues={this.numberOfIntervals}\n isCollapsed={this.isCollapsed}\n ></FacetPlaceholder>\n );\n }\n\n if (!this.valuesToRender.length) {\n return <Hidden></Hidden>;\n }\n\n return (\n <FacetContainer>\n {this.renderHeader()}\n {!this.isCollapsed && this.renderValues()}\n </FacetContainer>\n );\n }\n}\n"],"version":3}
|
|
@@ -5,8 +5,7 @@ import { I as InitializeBindings, B as BindStateToController, H as Hidden } from
|
|
|
5
5
|
import { A as ArrayProp, M as MapProp } from './props-utils-187abfd2.js';
|
|
6
6
|
import { F as FocusTargetController } from './stencil-accessibility-utils-b42ac309.js';
|
|
7
7
|
import { p as parseDependsOn } from './depends-on-d73b0ce3.js';
|
|
8
|
-
import { F as FacetHeader, a as FacetContainer } from './
|
|
9
|
-
import { F as FacetPlaceholder } from './facet-placeholder-ecbe6e6f.js';
|
|
8
|
+
import { F as FacetHeader, b as FacetPlaceholder, a as FacetContainer } from './facet-placeholder-1ed55384.js';
|
|
10
9
|
import { F as FacetValueLink } from './stencil-facet-value-link-77d619b8.js';
|
|
11
10
|
import { F as FacetValuesGroup } from './stencil-facet-values-group-1108573d.js';
|
|
12
11
|
import { i as initializePopover } from './popover-type-895c0e24.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"atomic-rating-range-facet.entry.js","mappings":"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","names":[],"sources":["src/components/search/facets/atomic-rating-range-facet/atomic-rating-range-facet.pcss?tag=atomic-rating-range-facet&encapsulation=shadow","src/components/search/facets/atomic-rating-range-facet/atomic-rating-range-facet.tsx"],"sourcesContent":["@import '../../../common/facets/facet-common.pcss';\n@import '../../../common/atomic-rating/atomic-rating.pcss';\n","import {\n NumericFacet,\n buildNumericFacet,\n NumericFacetState,\n NumericFacetOptions,\n SearchStatus,\n SearchStatusState,\n buildSearchStatus,\n NumericFacetValue,\n NumericRangeRequest,\n buildNumericRange,\n buildFacetConditionsManager,\n FacetConditionsManager,\n FacetValueRequest,\n CategoryFacetValueRequest,\n buildTabManager,\n TabManager,\n TabManagerState,\n} from '@coveo/headless';\nimport {Component, h, State, Prop, VNode, Element} from '@stencil/core';\nimport Star from '../../../../images/star.svg';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {ArrayProp, MapProp} from '../../../../utils/props-utils';\nimport {FocusTargetController} from '../../../../utils/stencil-accessibility-utils';\nimport {Rating} from '../../../common/atomic-rating/atomic-rating';\nimport {parseDependsOn} from '../../../common/facets/depends-on';\nimport {FacetInfo} from '../../../common/facets/facet-common-store';\nimport {FacetContainer} from '../../../common/facets/facet-container/stencil-facet-container';\nimport {FacetHeader} from '../../../common/facets/facet-header/stencil-facet-header';\nimport {FacetPlaceholder} from '../../../common/facets/facet-placeholder/facet-placeholder';\nimport {FacetValueLink} from '../../../common/facets/facet-value-link/stencil-facet-value-link';\nimport {FacetValuesGroup} from '../../../common/facets/facet-values-group/stencil-facet-values-group';\nimport {initializePopover} from '../../../common/facets/popover/popover-type';\nimport {Hidden} from '../../../common/stencil-hidden';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\n\n/**\n * A facet is a list of values for a certain field occurring in the results, ordered using a configurable criteria (e.g., number of occurrences).\n * An `atomic-rating-range-facet` displays a facet of the results for the current query as ratings.\n * It only supports numeric fields.\n *\n * @part facet - The wrapper for the entire facet.\n * @part placeholder - The placeholder shown before the first search is executed.\n *\n * @part label-button - The button that displays the label and toggles to expand or collapse the facet.\n * @part label-button-icon - The label button icon.\n * @part clear-button - The button that resets the actively selected facet values.\n * @part clear-button-icon - The clear button icon.\n *\n * @part values - The facet values container.\n * @part value-label - The facet value label, common for all displays.\n * @part value-count - The facet value count, common for all displays.\n * @part value-rating - The facet value rating, common for all displays.\n * @part value-rating-icon - The individual star icons used in the rating display.\n *\n * @part value-link - The facet value when display is 'link'.\n * @part value-link-selected - The selected facet value when display is 'link'.\n * @part value-box - The facet value when display is 'box'.\n * @part value-box-selected - The selected facet value when display is 'box'.\n */\n@Component({\n tag: 'atomic-rating-range-facet',\n styleUrl: 'atomic-rating-range-facet.pcss',\n shadow: true,\n})\nexport class AtomicRatingRangeFacet implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n public facet!: NumericFacet;\n private dependenciesManager?: FacetConditionsManager;\n public searchStatus!: SearchStatus;\n public tabManager!: TabManager;\n @Element() private host!: HTMLElement;\n\n @BindStateToController('facet')\n @State()\n public facetState!: NumericFacetState;\n @BindStateToController('searchStatus')\n @State()\n public searchStatusState!: SearchStatusState;\n @BindStateToController('tabManager')\n @State()\n public tabManagerState!: TabManagerState;\n @State() public error!: Error;\n\n /**\n * Specifies a unique identifier for the facet.\n */\n @Prop({mutable: true, reflect: true}) public facetId?: string;\n /**\n * The non-localized label for the facet.\n * Used in the `atomic-breadbox` component through the bindings store.\n */\n @Prop({reflect: true}) public label = 'no-label';\n /**\n * The field whose values you want to display in the facet.\n */\n @Prop({reflect: true}) public field!: string;\n /**\n * The tabs on which the facet can be displayed. This property should not be used at the same time as `tabs-excluded`.\n *\n * Set this property as a stringified JSON array, e.g.,\n * ```html\n * <atomic-timeframe-facet tabs-included='[\"tabIDA\", \"tabIDB\"]'></atomic-timeframe-facet>\n * ```\n * If you don't set this property, the facet can be displayed on any tab. Otherwise, the facet can only be displayed on the specified tabs.\n */\n @ArrayProp()\n @Prop({reflect: true, mutable: true})\n public tabsIncluded: string[] | string = '[]';\n\n /**\n * The tabs on which this facet must not be displayed. This property should not be used at the same time as `tabs-included`.\n *\n * Set this property as a stringified JSON array, e.g.,\n * ```html\n * <atomic-timeframe-facet tabs-excluded='[\"tabIDA\", \"tabIDB\"]'></atomic-timeframe-facet>\n * ```\n * If you don't set this property, the facet can be displayed on any tab. Otherwise, the facet won't be displayed on any of the specified tabs.\n */\n @ArrayProp()\n @Prop({reflect: true, mutable: true})\n public tabsExcluded: string[] | string = '[]';\n\n /**\n * The number of options to display in the facet. If `maxValueInIndex` isn't specified, it will be assumed that this is also the maximum number of rating icons.\n */\n @Prop({reflect: true}) public numberOfIntervals = 5;\n /**\n * The maximum value in the field's index and the number of rating icons to display in the facet. This property will default to the same value as `numberOfIntervals`, if not assigned a value.\n */\n @Prop({reflect: true}) public maxValueInIndex = this.numberOfIntervals;\n /**\n * The minimum value of the field.\n */\n @Prop({reflect: true}) public minValueInIndex = 1;\n /**\n * The SVG icon to use to display the rating.\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 * When using a custom icon, at least part of your icon should have the color set to `fill=\"currentColor\"`.\n * This part of the SVG will take on the colors set in the following [variables](https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties):\n *\n * - `--atomic-rating-icon-active-color`\n * - `--atomic-rating-icon-inactive-color`\n */\n @Prop({reflect: true}) public icon = Star;\n /**\n * Specifies whether the facet is collapsed. When the facet is the child of an `atomic-facet-manager` component, the facet manager controls this property.\n */\n @Prop({reflect: true, mutable: true}) public isCollapsed = false;\n /**\n * The [heading level](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Heading_Elements) to use for the heading over the facet, from 1 to 6.\n */\n @Prop({reflect: true}) public headingLevel = 0;\n /**\n * Whether to exclude the parents of folded results when estimating the result count for each facet value.\n *\n *\n * Note: Resulting count is only an estimation, in some cases this value could be incorrect.\n */\n @Prop({reflect: true}) public filterFacetCount = true;\n /**\n * The maximum number of results to scan in the index to ensure that the facet lists all potential facet values.\n * Note: A high injectionDepth may negatively impact the facet request performance.\n * Minimum: `0`\n * Default: `1000`\n */\n @Prop({reflect: true}) public injectionDepth = 1000;\n\n /**\n * The required facets and values for this facet to be displayed.\n * Examples:\n * ```html\n * <atomic-facet facet-id=\"abc\" field=\"objecttype\" ...></atomic-facet>\n *\n * <!-- To show the facet when any value is selected in the facet with id \"abc\": -->\n * <atomic-rating-range-facet\n * depends-on-abc\n * ...\n * ></atomic-rating-range-facet>\n *\n * <!-- To show the facet when value \"doc\" is selected in the facet with id \"abc\": -->\n * <atomic-rating-range-facet\n * depends-on-abc=\"doc\"\n * ...\n * ></atomic-rating-range-facet>\n * ```\n */\n @MapProp() @Prop() public dependsOn: Record<string, string> = {};\n\n private headerFocus?: FocusTargetController;\n\n private get focusTarget() {\n if (!this.headerFocus) {\n this.headerFocus = new FocusTargetController(this);\n }\n return this.headerFocus;\n }\n\n public initialize() {\n if (\n [...this.tabsIncluded].length > 0 &&\n [...this.tabsExcluded].length > 0\n ) {\n console.warn(\n 'Values for both \"tabs-included\" and \"tabs-excluded\" have been provided. This is could lead to unexpected behaviors.'\n );\n }\n this.searchStatus = buildSearchStatus(this.bindings.engine);\n this.tabManager = buildTabManager(this.bindings.engine);\n this.initializeFacet();\n this.initializeDependenciesManager();\n }\n public disconnectedCallback() {\n if (this.host.isConnected) {\n return;\n }\n this.dependenciesManager?.stopWatching();\n }\n\n private get isHidden() {\n return (\n !this.valuesToRender.length ||\n this.searchStatusState.hasError ||\n !this.facet.state.enabled\n );\n }\n\n private initializeFacet() {\n const options: NumericFacetOptions = {\n facetId: this.facetId,\n field: this.field,\n numberOfValues: this.numberOfIntervals,\n currentValues: this.generateCurrentValues(),\n sortCriteria: 'descending',\n generateAutomaticRanges: false,\n filterFacetCount: this.filterFacetCount,\n injectionDepth: this.injectionDepth,\n tabs: {\n included: [...this.tabsIncluded],\n excluded: [...this.tabsExcluded],\n },\n };\n this.facet = buildNumericFacet(this.bindings.engine, {options});\n this.facetId = this.facet.state.facetId;\n const facetInfo: FacetInfo = {\n label: () => this.bindings.i18n.t(this.label),\n facetId: this.facetId!,\n element: this.host,\n isHidden: () => this.isHidden,\n };\n this.bindings.store.registerFacet('numericFacets', {\n ...facetInfo,\n format: (value) => this.formatFacetValue(value),\n content: (value) => this.ratingContent(value),\n });\n initializePopover(this.host, {\n ...facetInfo,\n hasValues: () => !!this.valuesToRender.length,\n numberOfActiveValues: () => this.numberOfSelectedValues,\n });\n }\n\n private get scaleFactor() {\n return this.maxValueInIndex / this.numberOfIntervals;\n }\n\n private get numberOfSelectedValues() {\n return this.facetState.values.filter(({state}) => state === 'selected')\n .length;\n }\n\n private initializeDependenciesManager() {\n this.dependenciesManager = buildFacetConditionsManager(\n this.bindings.engine,\n {\n facetId: this.facetId!,\n conditions: parseDependsOn<\n FacetValueRequest | CategoryFacetValueRequest\n >(this.dependsOn),\n }\n );\n }\n\n private generateCurrentValues() {\n const currentValues: NumericRangeRequest[] = [];\n for (let i = this.minValueInIndex; i <= this.numberOfIntervals; i++) {\n currentValues.push(\n buildNumericRange({\n start: Math.round(i * this.scaleFactor * 100) / 100,\n end: Math.round(this.maxValueInIndex * 100) / 100,\n endInclusive: true,\n })\n );\n }\n return currentValues;\n }\n\n private formatFacetValue(facetValue: NumericFacetValue) {\n if (facetValue.start === this.maxValueInIndex) {\n return this.bindings.i18n.t('stars-only', {\n count: facetValue.start,\n });\n }\n return this.bindings.i18n.t('stars-range', {\n value: facetValue.start,\n count: this.maxValueInIndex,\n });\n }\n\n private ratingContent(facetValue: NumericFacetValue) {\n return (\n <div class=\"flex items-center\">\n <Rating\n i18n={this.bindings.i18n}\n numberOfTotalIcons={this.maxValueInIndex}\n numberOfActiveIcons={facetValue.start}\n icon={this.icon}\n ></Rating>\n {this.renderLabelText(facetValue)}\n </div>\n );\n }\n\n private renderHeader() {\n return (\n <FacetHeader\n i18n={this.bindings.i18n}\n label={this.label}\n onClearFilters={() => {\n this.focusTarget.focusAfterSearch();\n this.facet.deselectAll();\n }}\n numberOfActiveValues={this.numberOfSelectedValues}\n isCollapsed={this.isCollapsed}\n headingLevel={this.headingLevel}\n onToggleCollapse={() => (this.isCollapsed = !this.isCollapsed)}\n headerRef={(el) => this.focusTarget.setTarget(el)}\n ></FacetHeader>\n );\n }\n\n private renderLabelText(facetValue: NumericFacetValue) {\n return (\n <span\n part=\"value-label\"\n class={`group-focus:text-primary group-hover:text-primary ml-1 flex items-center truncate ${\n facetValue.state === 'selected' ? 'font-bold' : ''\n }`}\n >\n {facetValue.start === this.maxValueInIndex ? (\n <span>{this.bindings.i18n.t('only')}</span>\n ) : (\n this.bindings.i18n.t('and-up')\n )}\n </span>\n );\n }\n\n private renderValue(facetValue: NumericFacetValue, onClick: () => void) {\n const displayValue = this.formatFacetValue(facetValue);\n const isSelected = facetValue.state === 'selected';\n return (\n <FacetValueLink\n displayValue={displayValue}\n numberOfResults={facetValue.numberOfResults}\n isSelected={isSelected}\n i18n={this.bindings.i18n}\n onClick={onClick}\n >\n {this.ratingContent(facetValue)}\n </FacetValueLink>\n );\n }\n\n private renderValuesContainer(children: VNode[]) {\n return (\n <FacetValuesGroup i18n={this.bindings.i18n} label={this.label}>\n <ul class=\"mt-3\" part=\"values\">\n {children}\n </ul>\n </FacetValuesGroup>\n );\n }\n\n private renderValues() {\n return this.renderValuesContainer(\n this.valuesToRender.map((value) =>\n this.renderValue(value, () => this.facet.toggleSingleSelect(value))\n )\n );\n }\n\n private get valuesToRender() {\n return this.facet.state.values.filter(\n (value) => value.numberOfResults || value.state !== 'idle'\n );\n }\n\n public render() {\n if (this.searchStatusState.hasError || !this.facet.state.enabled) {\n return <Hidden></Hidden>;\n }\n\n if (!this.searchStatusState.firstSearchExecuted) {\n return (\n <FacetPlaceholder\n numberOfValues={this.numberOfIntervals}\n isCollapsed={this.isCollapsed}\n ></FacetPlaceholder>\n );\n }\n\n if (!this.valuesToRender.length) {\n return <Hidden></Hidden>;\n }\n\n return (\n <FacetContainer>\n {this.renderHeader()}\n {!this.isCollapsed && this.renderValues()}\n </FacetContainer>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"atomic-rating-range-facet.entry.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAM,yBAAyB,GAAG,sw3DAAsw3D,CAAC;AACzy3D,qCAAe,yBAAyB;;;;;;;;;;;;MCoE3B,sBAAsB;;;;;;;QA2BH,UAAK,GAAG,UAAU,CAAC;;;;;;;;;;QAgB1C,iBAAY,GAAsB,IAAI,CAAC;;;;;;;;;;QAavC,iBAAY,GAAsB,IAAI,CAAC;;;;QAKhB,sBAAiB,GAAG,CAAC,CAAC;;;;QAItB,oBAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC;;;;QAIzC,oBAAe,GAAG,CAAC,CAAC;;;;;;;;;;;;;;QAcpB,SAAI,GAAG,IAAI,CAAC;;;;QAIG,gBAAW,GAAG,KAAK,CAAC;;;;QAInC,iBAAY,GAAG,CAAC,CAAC;;;;;;;QAOjB,qBAAgB,GAAG,IAAI,CAAC;;;;;;;QAOxB,mBAAc,GAAG,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;QAqB1B,cAAS,GAA2B,EAAE,CAAC;;;;;;qBAnG3B,UAAU;;4BAgBP,IAAI;4BAaJ,IAAI;iCAKK,CAAC;+BAIH,IAAI,CAAC,iBAAiB;+BAItB,CAAC;oBAcZ,IAAI;2BAIkB,KAAK;4BAInB,CAAC;gCAOG,IAAI;8BAON,IAAI;yBAqBW,EAAE;;IAIhE,IAAY,WAAW;QACrB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,IAAI,CAAC,WAAW,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;SACpD;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;IAEM,UAAU;QACf,IACE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC;YACjC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EACjC;YACA,OAAO,CAAC,IAAI,CACV,qHAAqH,CACtH,CAAC;SACH;QACD,IAAI,CAAC,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,6BAA6B,EAAE,CAAC;KACtC;IACM,oBAAoB;QACzB,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACzB,OAAO;SACR;QACD,IAAI,CAAC,mBAAmB,EAAE,YAAY,EAAE,CAAC;KAC1C;IAED,IAAY,QAAQ;QAClB,QACE,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM;YAC3B,IAAI,CAAC,iBAAiB,CAAC,QAAQ;YAC/B,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EACzB;KACH;IAEO,eAAe;QACrB,MAAM,OAAO,GAAwB;YACnC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,cAAc,EAAE,IAAI,CAAC,iBAAiB;YACtC,aAAa,EAAE,IAAI,CAAC,qBAAqB,EAAE;YAC3C,YAAY,EAAE,YAAY;YAC1B,uBAAuB,EAAE,KAAK;YAC9B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,IAAI,EAAE;gBACJ,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;gBAChC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;aACjC;SACF,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAC,OAAO,EAAC,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;QACxC,MAAM,SAAS,GAAc;YAC3B,KAAK,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YAC7C,OAAO,EAAE,IAAI,CAAC,OAAQ;YACtB,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,QAAQ,EAAE,MAAM,IAAI,CAAC,QAAQ;SAC9B,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,eAAe,EAAE;YACjD,GAAG,SAAS;YACZ,MAAM,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAC/C,OAAO,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;SAC9C,CAAC,CAAC;QACH,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE;YAC3B,GAAG,SAAS;YACZ,SAAS,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM;YAC7C,oBAAoB,EAAE,MAAM,IAAI,CAAC,sBAAsB;SACxD,CAAC,CAAC;KACJ;IAED,IAAY,WAAW;QACrB,OAAO,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC;KACtD;IAED,IAAY,sBAAsB;QAChC,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAC,KAAK,EAAC,KAAK,KAAK,KAAK,UAAU,CAAC;aACpE,MAAM,CAAC;KACX;IAEO,6BAA6B;QACnC,IAAI,CAAC,mBAAmB,GAAG,2BAA2B,CACpD,IAAI,CAAC,QAAQ,CAAC,MAAM,EACpB;YACE,OAAO,EAAE,IAAI,CAAC,OAAQ;YACtB,UAAU,EAAE,cAAc,CAExB,IAAI,CAAC,SAAS,CAAC;SAClB,CACF,CAAC;KACH;IAEO,qBAAqB;QAC3B,MAAM,aAAa,GAA0B,EAAE,CAAC;QAChD,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,EAAE;YACnE,aAAa,CAAC,IAAI,CAChB,iBAAiB,CAAC;gBAChB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,GAAG,GAAG;gBACnD,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,GAAG,GAAG;gBACjD,YAAY,EAAE,IAAI;aACnB,CAAC,CACH,CAAC;SACH;QACD,OAAO,aAAa,CAAC;KACtB;IAEO,gBAAgB,CAAC,UAA6B;QACpD,IAAI,UAAU,CAAC,KAAK,KAAK,IAAI,CAAC,eAAe,EAAE;YAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE;gBACxC,KAAK,EAAE,UAAU,CAAC,KAAK;aACxB,CAAC,CAAC;SACJ;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE;YACzC,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,KAAK,EAAE,IAAI,CAAC,eAAe;SAC5B,CAAC,CAAC;KACJ;IAEO,aAAa,CAAC,UAA6B;QACjD,QACE,WAAK,KAAK,EAAC,mBAAmB,IAC5B,EAAC,MAAM,IACL,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EACxB,kBAAkB,EAAE,IAAI,CAAC,eAAe,EACxC,mBAAmB,EAAE,UAAU,CAAC,KAAK,EACrC,IAAI,EAAE,IAAI,CAAC,IAAI,GACP,EACT,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAC7B,EACN;KACH;IAEO,YAAY;QAClB,QACE,EAAC,WAAW,IACV,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EACxB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,cAAc,EAAE;gBACd,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;gBACpC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;aAC1B,EACD,oBAAoB,EAAE,IAAI,CAAC,sBAAsB,EACjD,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,gBAAgB,EAAE,OAAO,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAC9D,SAAS,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,GACpC,EACf;KACH;IAEO,eAAe,CAAC,UAA6B;QACnD,QACE,YACE,IAAI,EAAC,aAAa,EAClB,KAAK,EAAE,qFACL,UAAU,CAAC,KAAK,KAAK,UAAU,GAAG,WAAW,GAAG,EAClD,EAAE,IAED,UAAU,CAAC,KAAK,KAAK,IAAI,CAAC,eAAe,IACxC,gBAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAQ,KAE3C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAC/B,CACI,EACP;KACH;IAEO,WAAW,CAAC,UAA6B,EAAE,OAAmB;QACpE,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,KAAK,UAAU,CAAC;QACnD,QACE,EAAC,cAAc,IACb,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,UAAU,CAAC,eAAe,EAC3C,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EACxB,OAAO,EAAE,OAAO,IAEf,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAChB,EACjB;KACH;IAEO,qBAAqB,CAAC,QAAiB;QAC7C,QACE,EAAC,gBAAgB,IAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAC3D,UAAI,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,QAAQ,IAC3B,QAAQ,CACN,CACY,EACnB;KACH;IAEO,YAAY;QAClB,OAAO,IAAI,CAAC,qBAAqB,CAC/B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,KAC5B,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CACpE,CACF,CAAC;KACH;IAED,IAAY,cAAc;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CACnC,CAAC,KAAK,KAAK,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,CAC3D,CAAC;KACH;IAEM,MAAM;QACX,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE;YAChE,OAAO,EAAC,MAAM,OAAU,CAAC;SAC1B;QAED,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE;YAC/C,QACE,EAAC,gBAAgB,IACf,cAAc,EAAE,IAAI,CAAC,iBAAiB,EACtC,WAAW,EAAE,IAAI,CAAC,WAAW,GACX,EACpB;SACH;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;YAC/B,OAAO,EAAC,MAAM,OAAU,CAAC;SAC1B;QAED,QACE,EAAC,cAAc,QACZ,IAAI,CAAC,YAAY,EAAE,EACnB,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE,CAC1B,EACjB;KACH;;;AAxW4B;IAA5B,kBAAkB,EAAE;wDAA4B;AAS1C;IAFN,qBAAqB,CAAC,OAAO,CAAC;0DAEO;AAG/B;IAFN,qBAAqB,CAAC,cAAc,CAAC;iEAEO;AAGtC;IAFN,qBAAqB,CAAC,YAAY,CAAC;+DAEK;AA2BlC;IAFN,SAAS,EAAE;4DAEkC;AAavC;IAFN,SAAS,EAAE;4DAEkC;AAsEpB;IAAzB,OAAO,EAAE;yDAAuD;;;;;","names":[],"sources":["src/components/search/facets/atomic-rating-range-facet/atomic-rating-range-facet.pcss?tag=atomic-rating-range-facet&encapsulation=shadow","src/components/search/facets/atomic-rating-range-facet/atomic-rating-range-facet.tsx"],"sourcesContent":["@import '../../../common/facets/facet-common.pcss';\n@import '../../../common/atomic-rating/atomic-rating.pcss';\n","import {\n NumericFacet,\n buildNumericFacet,\n NumericFacetState,\n NumericFacetOptions,\n SearchStatus,\n SearchStatusState,\n buildSearchStatus,\n NumericFacetValue,\n NumericRangeRequest,\n buildNumericRange,\n buildFacetConditionsManager,\n FacetConditionsManager,\n FacetValueRequest,\n CategoryFacetValueRequest,\n buildTabManager,\n TabManager,\n TabManagerState,\n} from '@coveo/headless';\nimport {Component, h, State, Prop, VNode, Element} from '@stencil/core';\nimport Star from '../../../../images/star.svg';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {ArrayProp, MapProp} from '../../../../utils/props-utils';\nimport {FocusTargetController} from '../../../../utils/stencil-accessibility-utils';\nimport {Rating} from '../../../common/atomic-rating/atomic-rating';\nimport {parseDependsOn} from '../../../common/facets/depends-on';\nimport {FacetInfo} from '../../../common/facets/facet-common-store';\nimport {FacetContainer} from '../../../common/facets/facet-container/stencil-facet-container';\nimport {FacetHeader} from '../../../common/facets/facet-header/stencil-facet-header';\nimport {FacetPlaceholder} from '../../../common/facets/facet-placeholder/facet-placeholder';\nimport {FacetValueLink} from '../../../common/facets/facet-value-link/stencil-facet-value-link';\nimport {FacetValuesGroup} from '../../../common/facets/facet-values-group/stencil-facet-values-group';\nimport {initializePopover} from '../../../common/facets/popover/popover-type';\nimport {Hidden} from '../../../common/stencil-hidden';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\n\n/**\n * A facet is a list of values for a certain field occurring in the results, ordered using a configurable criteria (e.g., number of occurrences).\n * An `atomic-rating-range-facet` displays a facet of the results for the current query as ratings.\n * It only supports numeric fields.\n *\n * @part facet - The wrapper for the entire facet.\n * @part placeholder - The placeholder shown before the first search is executed.\n *\n * @part label-button - The button that displays the label and toggles to expand or collapse the facet.\n * @part label-button-icon - The label button icon.\n * @part clear-button - The button that resets the actively selected facet values.\n * @part clear-button-icon - The clear button icon.\n *\n * @part values - The facet values container.\n * @part value-label - The facet value label, common for all displays.\n * @part value-count - The facet value count, common for all displays.\n * @part value-rating - The facet value rating, common for all displays.\n * @part value-rating-icon - The individual star icons used in the rating display.\n *\n * @part value-link - The facet value when display is 'link'.\n * @part value-link-selected - The selected facet value when display is 'link'.\n * @part value-box - The facet value when display is 'box'.\n * @part value-box-selected - The selected facet value when display is 'box'.\n */\n@Component({\n tag: 'atomic-rating-range-facet',\n styleUrl: 'atomic-rating-range-facet.pcss',\n shadow: true,\n})\nexport class AtomicRatingRangeFacet implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n public facet!: NumericFacet;\n private dependenciesManager?: FacetConditionsManager;\n public searchStatus!: SearchStatus;\n public tabManager!: TabManager;\n @Element() private host!: HTMLElement;\n\n @BindStateToController('facet')\n @State()\n public facetState!: NumericFacetState;\n @BindStateToController('searchStatus')\n @State()\n public searchStatusState!: SearchStatusState;\n @BindStateToController('tabManager')\n @State()\n public tabManagerState!: TabManagerState;\n @State() public error!: Error;\n\n /**\n * Specifies a unique identifier for the facet.\n */\n @Prop({mutable: true, reflect: true}) public facetId?: string;\n /**\n * The non-localized label for the facet.\n * Used in the `atomic-breadbox` component through the bindings store.\n */\n @Prop({reflect: true}) public label = 'no-label';\n /**\n * The field whose values you want to display in the facet.\n */\n @Prop({reflect: true}) public field!: string;\n /**\n * The tabs on which the facet can be displayed. This property should not be used at the same time as `tabs-excluded`.\n *\n * Set this property as a stringified JSON array, e.g.,\n * ```html\n * <atomic-timeframe-facet tabs-included='[\"tabIDA\", \"tabIDB\"]'></atomic-timeframe-facet>\n * ```\n * If you don't set this property, the facet can be displayed on any tab. Otherwise, the facet can only be displayed on the specified tabs.\n */\n @ArrayProp()\n @Prop({reflect: true, mutable: true})\n public tabsIncluded: string[] | string = '[]';\n\n /**\n * The tabs on which this facet must not be displayed. This property should not be used at the same time as `tabs-included`.\n *\n * Set this property as a stringified JSON array, e.g.,\n * ```html\n * <atomic-timeframe-facet tabs-excluded='[\"tabIDA\", \"tabIDB\"]'></atomic-timeframe-facet>\n * ```\n * If you don't set this property, the facet can be displayed on any tab. Otherwise, the facet won't be displayed on any of the specified tabs.\n */\n @ArrayProp()\n @Prop({reflect: true, mutable: true})\n public tabsExcluded: string[] | string = '[]';\n\n /**\n * The number of options to display in the facet. If `maxValueInIndex` isn't specified, it will be assumed that this is also the maximum number of rating icons.\n */\n @Prop({reflect: true}) public numberOfIntervals = 5;\n /**\n * The maximum value in the field's index and the number of rating icons to display in the facet. This property will default to the same value as `numberOfIntervals`, if not assigned a value.\n */\n @Prop({reflect: true}) public maxValueInIndex = this.numberOfIntervals;\n /**\n * The minimum value of the field.\n */\n @Prop({reflect: true}) public minValueInIndex = 1;\n /**\n * The SVG icon to use to display the rating.\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 * When using a custom icon, at least part of your icon should have the color set to `fill=\"currentColor\"`.\n * This part of the SVG will take on the colors set in the following [variables](https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties):\n *\n * - `--atomic-rating-icon-active-color`\n * - `--atomic-rating-icon-inactive-color`\n */\n @Prop({reflect: true}) public icon = Star;\n /**\n * Specifies whether the facet is collapsed. When the facet is the child of an `atomic-facet-manager` component, the facet manager controls this property.\n */\n @Prop({reflect: true, mutable: true}) public isCollapsed = false;\n /**\n * The [heading level](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Heading_Elements) to use for the heading over the facet, from 1 to 6.\n */\n @Prop({reflect: true}) public headingLevel = 0;\n /**\n * Whether to exclude the parents of folded results when estimating the result count for each facet value.\n *\n *\n * Note: Resulting count is only an estimation, in some cases this value could be incorrect.\n */\n @Prop({reflect: true}) public filterFacetCount = true;\n /**\n * The maximum number of results to scan in the index to ensure that the facet lists all potential facet values.\n * Note: A high injectionDepth may negatively impact the facet request performance.\n * Minimum: `0`\n * Default: `1000`\n */\n @Prop({reflect: true}) public injectionDepth = 1000;\n\n /**\n * The required facets and values for this facet to be displayed.\n * Examples:\n * ```html\n * <atomic-facet facet-id=\"abc\" field=\"objecttype\" ...></atomic-facet>\n *\n * <!-- To show the facet when any value is selected in the facet with id \"abc\": -->\n * <atomic-rating-range-facet\n * depends-on-abc\n * ...\n * ></atomic-rating-range-facet>\n *\n * <!-- To show the facet when value \"doc\" is selected in the facet with id \"abc\": -->\n * <atomic-rating-range-facet\n * depends-on-abc=\"doc\"\n * ...\n * ></atomic-rating-range-facet>\n * ```\n */\n @MapProp() @Prop() public dependsOn: Record<string, string> = {};\n\n private headerFocus?: FocusTargetController;\n\n private get focusTarget() {\n if (!this.headerFocus) {\n this.headerFocus = new FocusTargetController(this);\n }\n return this.headerFocus;\n }\n\n public initialize() {\n if (\n [...this.tabsIncluded].length > 0 &&\n [...this.tabsExcluded].length > 0\n ) {\n console.warn(\n 'Values for both \"tabs-included\" and \"tabs-excluded\" have been provided. This is could lead to unexpected behaviors.'\n );\n }\n this.searchStatus = buildSearchStatus(this.bindings.engine);\n this.tabManager = buildTabManager(this.bindings.engine);\n this.initializeFacet();\n this.initializeDependenciesManager();\n }\n public disconnectedCallback() {\n if (this.host.isConnected) {\n return;\n }\n this.dependenciesManager?.stopWatching();\n }\n\n private get isHidden() {\n return (\n !this.valuesToRender.length ||\n this.searchStatusState.hasError ||\n !this.facet.state.enabled\n );\n }\n\n private initializeFacet() {\n const options: NumericFacetOptions = {\n facetId: this.facetId,\n field: this.field,\n numberOfValues: this.numberOfIntervals,\n currentValues: this.generateCurrentValues(),\n sortCriteria: 'descending',\n generateAutomaticRanges: false,\n filterFacetCount: this.filterFacetCount,\n injectionDepth: this.injectionDepth,\n tabs: {\n included: [...this.tabsIncluded],\n excluded: [...this.tabsExcluded],\n },\n };\n this.facet = buildNumericFacet(this.bindings.engine, {options});\n this.facetId = this.facet.state.facetId;\n const facetInfo: FacetInfo = {\n label: () => this.bindings.i18n.t(this.label),\n facetId: this.facetId!,\n element: this.host,\n isHidden: () => this.isHidden,\n };\n this.bindings.store.registerFacet('numericFacets', {\n ...facetInfo,\n format: (value) => this.formatFacetValue(value),\n content: (value) => this.ratingContent(value),\n });\n initializePopover(this.host, {\n ...facetInfo,\n hasValues: () => !!this.valuesToRender.length,\n numberOfActiveValues: () => this.numberOfSelectedValues,\n });\n }\n\n private get scaleFactor() {\n return this.maxValueInIndex / this.numberOfIntervals;\n }\n\n private get numberOfSelectedValues() {\n return this.facetState.values.filter(({state}) => state === 'selected')\n .length;\n }\n\n private initializeDependenciesManager() {\n this.dependenciesManager = buildFacetConditionsManager(\n this.bindings.engine,\n {\n facetId: this.facetId!,\n conditions: parseDependsOn<\n FacetValueRequest | CategoryFacetValueRequest\n >(this.dependsOn),\n }\n );\n }\n\n private generateCurrentValues() {\n const currentValues: NumericRangeRequest[] = [];\n for (let i = this.minValueInIndex; i <= this.numberOfIntervals; i++) {\n currentValues.push(\n buildNumericRange({\n start: Math.round(i * this.scaleFactor * 100) / 100,\n end: Math.round(this.maxValueInIndex * 100) / 100,\n endInclusive: true,\n })\n );\n }\n return currentValues;\n }\n\n private formatFacetValue(facetValue: NumericFacetValue) {\n if (facetValue.start === this.maxValueInIndex) {\n return this.bindings.i18n.t('stars-only', {\n count: facetValue.start,\n });\n }\n return this.bindings.i18n.t('stars-range', {\n value: facetValue.start,\n count: this.maxValueInIndex,\n });\n }\n\n private ratingContent(facetValue: NumericFacetValue) {\n return (\n <div class=\"flex items-center\">\n <Rating\n i18n={this.bindings.i18n}\n numberOfTotalIcons={this.maxValueInIndex}\n numberOfActiveIcons={facetValue.start}\n icon={this.icon}\n ></Rating>\n {this.renderLabelText(facetValue)}\n </div>\n );\n }\n\n private renderHeader() {\n return (\n <FacetHeader\n i18n={this.bindings.i18n}\n label={this.label}\n onClearFilters={() => {\n this.focusTarget.focusAfterSearch();\n this.facet.deselectAll();\n }}\n numberOfActiveValues={this.numberOfSelectedValues}\n isCollapsed={this.isCollapsed}\n headingLevel={this.headingLevel}\n onToggleCollapse={() => (this.isCollapsed = !this.isCollapsed)}\n headerRef={(el) => this.focusTarget.setTarget(el)}\n ></FacetHeader>\n );\n }\n\n private renderLabelText(facetValue: NumericFacetValue) {\n return (\n <span\n part=\"value-label\"\n class={`group-focus:text-primary group-hover:text-primary ml-1 flex items-center truncate ${\n facetValue.state === 'selected' ? 'font-bold' : ''\n }`}\n >\n {facetValue.start === this.maxValueInIndex ? (\n <span>{this.bindings.i18n.t('only')}</span>\n ) : (\n this.bindings.i18n.t('and-up')\n )}\n </span>\n );\n }\n\n private renderValue(facetValue: NumericFacetValue, onClick: () => void) {\n const displayValue = this.formatFacetValue(facetValue);\n const isSelected = facetValue.state === 'selected';\n return (\n <FacetValueLink\n displayValue={displayValue}\n numberOfResults={facetValue.numberOfResults}\n isSelected={isSelected}\n i18n={this.bindings.i18n}\n onClick={onClick}\n >\n {this.ratingContent(facetValue)}\n </FacetValueLink>\n );\n }\n\n private renderValuesContainer(children: VNode[]) {\n return (\n <FacetValuesGroup i18n={this.bindings.i18n} label={this.label}>\n <ul class=\"mt-3\" part=\"values\">\n {children}\n </ul>\n </FacetValuesGroup>\n );\n }\n\n private renderValues() {\n return this.renderValuesContainer(\n this.valuesToRender.map((value) =>\n this.renderValue(value, () => this.facet.toggleSingleSelect(value))\n )\n );\n }\n\n private get valuesToRender() {\n return this.facet.state.values.filter(\n (value) => value.numberOfResults || value.state !== 'idle'\n );\n }\n\n public render() {\n if (this.searchStatusState.hasError || !this.facet.state.enabled) {\n return <Hidden></Hidden>;\n }\n\n if (!this.searchStatusState.firstSearchExecuted) {\n return (\n <FacetPlaceholder\n numberOfValues={this.numberOfIntervals}\n isCollapsed={this.isCollapsed}\n ></FacetPlaceholder>\n );\n }\n\n if (!this.valuesToRender.length) {\n return <Hidden></Hidden>;\n }\n\n return (\n <FacetContainer>\n {this.renderHeader()}\n {!this.isCollapsed && this.renderValues()}\n </FacetContainer>\n );\n }\n}\n"],"version":3}
|
|
@@ -47,7 +47,7 @@ const AtomicRecsError = class {
|
|
|
47
47
|
if (hasError) {
|
|
48
48
|
this.ariaMessage = getAriaMessageFromErrorType(i18n, organizationId, url, error?.type);
|
|
49
49
|
}
|
|
50
|
-
return (h(QueryErrorGuard, { key: '
|
|
50
|
+
return (h(QueryErrorGuard, { key: '1dca8ab41bdb8a71f1936cf1751fb6017c7c9fad', hasError: hasError }, h(QueryErrorContainer, { key: '711d860dbc6085ed9d3f03fd254865826c9fb897' }, h(QueryErrorIcon, { key: '35a3e19666aa1e38cd41ad11503c56ba0b926ce8', errorType: error?.type }), h(QueryErrorTitle, { key: '6987ab69f7a8a87a5615ccc8cde9c2a34db48e91', i18n: i18n, organizationId: organizationId }), h(QueryErrorDescription, { key: '368140552841c3094bb81c469f58dc59bc1341b7', i18n: i18n, organizationId: organizationId, url: url }), h(QueryErrorShowMore, { key: '9f13261f6873e200f96c2a39fa4da506e7f762f8', link: h(QueryErrorLink, { i18n: i18n, errorType: error?.type }), onShowMore: () => (this.showMoreInfo = !this.showMoreInfo), i18n: i18n }), h(QueryErrorDetails, { key: 'da03ee81b4af216551f847592b4c49d478f35d50', error: error, show: this.showMoreInfo }))));
|
|
51
51
|
}
|
|
52
52
|
};
|
|
53
53
|
__decorate([
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { r as registerInstance, s as setNonce, h, g as getElement } from './index-3f35faca.js';
|
|
2
2
|
import { m as markParentAsReady } from './init-queue-fbe942c3.js';
|
|
3
3
|
import { loadRecommendationActions, loadSearchConfigurationActions, EcommerceDefaultFieldsToInclude, loadFieldActions, buildRecommendationEngine } from '@coveo/headless/recommendation';
|
|
4
|
-
import {
|
|
4
|
+
import { C as CommonAtomicInterfaceHelper, i as instance, m as mismatchedInterfaceAndEnginePropError } from './interface-common-stencil-4bb4d80c.js';
|
|
5
5
|
import { A as ArrayProp } from './props-utils-187abfd2.js';
|
|
6
|
+
import { g as getNextAnalyticsConfig, c as augmentAnalyticsConfigWithDocument, d as augmentAnalyticsConfigWithAtomicVersion, a as augmentWithExternalMiddleware, b as augmentAnalyticsWithAtomicVersion } from './analytics-config-253004a0.js';
|
|
6
7
|
import { u as unsetLoadingFlag, s as setLoadingFlag, a as createBaseStore } from './store-9da184ac.js';
|
|
8
|
+
import '@coveo/headless';
|
|
7
9
|
import './dayjs.min-d04628c6.js';
|
|
8
10
|
import './_commonjsHelpers-1789f0cf.js';
|
|
9
11
|
import './purify-c7ebd240.js';
|
|
10
|
-
import '@coveo/headless';
|
|
11
12
|
import '@coveo/bueno';
|
|
12
13
|
import './utils-3ca7282b.js';
|
|
13
14
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"atomic-recs-interface.entry.js","mappings":"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","names":["i18next"],"sources":["src/components/recommendations/atomic-recs-interface/analytics-config.ts","src/components/recommendations/atomic-recs-interface/store.ts","src/components/recommendations/atomic-recs-interface/atomic-recs-interface.pcss?tag=atomic-recs-interface&encapsulation=shadow","src/components/recommendations/atomic-recs-interface/atomic-recs-interface.tsx"],"sourcesContent":["import {\n AnalyticsConfiguration,\n RecommendationEngineConfiguration,\n} from '@coveo/headless/recommendation';\nimport {\n AnalyticsPayload,\n augmentAnalyticsWithAtomicVersion,\n augmentWithExternalMiddleware,\n augmentAnalyticsConfigWithDocument,\n augmentAnalyticsConfigWithAtomicVersion,\n getNextAnalyticsConfig,\n} from '../../common/interface/analytics-config';\n\nexport function getAnalyticsConfig(\n recsConfig: RecommendationEngineConfiguration,\n enabled: boolean\n): AnalyticsConfiguration {\n switch (recsConfig.analytics?.analyticsMode) {\n case 'next':\n return getNextAnalyticsConfig(recsConfig, enabled);\n case 'legacy':\n default:\n return getLegacyAnalyticsConfig(recsConfig, enabled);\n }\n}\n\nfunction getLegacyAnalyticsConfig(\n recsConfig: RecommendationEngineConfiguration,\n enabled: boolean\n): AnalyticsConfiguration {\n const analyticsClientMiddleware = (\n event: string,\n payload: AnalyticsPayload\n ) => augmentAnalytics(event, payload, recsConfig);\n\n const defaultAnalyticsConfig: AnalyticsConfiguration = {\n analyticsClientMiddleware,\n enabled,\n ...augmentAnalyticsConfigWithDocument(),\n ...augmentAnalyticsConfigWithAtomicVersion(),\n };\n\n if (recsConfig.analytics) {\n return {\n ...defaultAnalyticsConfig,\n ...recsConfig.analytics,\n analyticsClientMiddleware,\n };\n }\n return defaultAnalyticsConfig;\n}\n\nfunction augmentAnalytics(\n event: string,\n payload: AnalyticsPayload,\n recsConfig: RecommendationEngineConfiguration\n) {\n let result = augmentWithExternalMiddleware(event, payload, recsConfig);\n result = augmentAnalyticsWithAtomicVersion(result);\n return result;\n}\n","import {RecommendationEngine} from '@coveo/headless/recommendation';\nimport {\n BaseStore,\n createBaseStore,\n ResultListInfo,\n setLoadingFlag,\n unsetLoadingFlag,\n} from '../../common/interface/store';\n\ninterface Data {\n loadingFlags: string[];\n iconAssetsPath: string;\n resultList: ResultListInfo | undefined;\n}\n\nexport type RecsStore = BaseStore<Data> & {\n unsetLoadingFlag(loadingFlag: string): void;\n setLoadingFlag(flag: string): void;\n};\n\nexport function createRecsStore(): RecsStore {\n const store = createBaseStore<Data>({\n loadingFlags: [],\n iconAssetsPath: '',\n resultList: undefined,\n });\n\n return {\n ...store,\n\n unsetLoadingFlag(loadingFlag: string) {\n unsetLoadingFlag(store, loadingFlag);\n },\n\n setLoadingFlag(loadingFlag: string) {\n setLoadingFlag(store, loadingFlag);\n },\n\n getUniqueIDFromEngine(engine: RecommendationEngine): string {\n return engine.state.recommendation.searchUid;\n },\n };\n}\n","@import '../../../global/global.pcss';\n\n:host {\n display: block;\n}\n","import {markParentAsReady} from '@/src/utils/init-queue';\nimport {\n RecommendationEngine,\n RecommendationEngineConfiguration,\n loadFieldActions,\n EcommerceDefaultFieldsToInclude,\n buildRecommendationEngine,\n loadRecommendationActions,\n loadSearchConfigurationActions,\n LogLevel as RecsLogLevel,\n} from '@coveo/headless/recommendation';\nimport {\n Component,\n Element,\n h,\n Listen,\n Method,\n Prop,\n Watch,\n State,\n setNonce,\n} from '@stencil/core';\nimport i18next, {i18n} from 'i18next';\nimport {InitializeEvent} from '../../../utils/initialization-utils';\nimport {ArrayProp} from '../../../utils/props-utils';\nimport {CommonBindings} from '../../common/interface/bindings';\nimport {\n StencilBaseAtomicInterface,\n CommonAtomicInterfaceHelper,\n mismatchedInterfaceAndEnginePropError,\n} from '../../common/interface/interface-common-stencil';\nimport {getAnalyticsConfig} from './analytics-config';\nimport {createRecsStore, RecsStore} from './store';\n\nconst FirstRecommendationExecutedFlag = 'firstRecommendationExecuted';\nexport type RecsInitializationOptions = RecommendationEngineConfiguration;\nexport type RecsBindings = CommonBindings<\n RecommendationEngine,\n RecsStore,\n HTMLAtomicRecsInterfaceElement\n>;\n\n/**\n * The `atomic-recs-interface` component is the parent to all other atomic components in a recommendation interface. It handles the headless recommendation engine and localization configurations.\n * @slot default - The default slot where you can add child components to the recommendation interface.\n *\n */\n@Component({\n tag: 'atomic-recs-interface',\n styleUrl: 'atomic-recs-interface.pcss',\n shadow: true,\n})\nexport class AtomicRecsInterface\n implements StencilBaseAtomicInterface<RecommendationEngine>\n{\n private store = createRecsStore();\n private commonInterfaceHelper: CommonAtomicInterfaceHelper<RecommendationEngine>;\n private initialized = false;\n\n @Element() public host!: HTMLAtomicRecsInterfaceElement;\n\n @State() public error?: Error;\n\n /**\n * The recommendation interface [query pipeline](https://docs.coveo.com/en/180/).\n *\n * If the recommendation interface is initialized using [`initializeWithRecommendationEngine`](https://docs.coveo.com/en/atomic/latest/reference/recommendation-components/atomic-recs-interface/#initializewithrecommendationengine), the query pipeline should instead be configured in the target engine.\n */\n @Prop({reflect: true, mutable: true}) public pipeline?: string;\n\n /**\n * The recommendation interface [search hub](https://docs.coveo.com/en/1342/).\n *\n * If the recommendation interface is initialized using [`initializeWithRecommendationEngine`](https://docs.coveo.com/en/atomic/latest/reference/recommendation-components/atomic-recs-interface/#initializewithrecommendationengine), the search hub should instead be configured in the target engine.\n */\n @Prop({reflect: true, mutable: true}) public searchHub?: string;\n\n /**\n * The [tz database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) identifier of the time zone to use to correctly interpret dates in the query expression, facets, and result items.\n * By default, the timezone will be [guessed](https://day.js.org/docs/en/timezone/guessing-user-timezone).\n *\n * Example: \"America/Montreal\"\n */\n @Prop({reflect: true}) public timezone?: string;\n\n /**\n * The recommendation interface headless engine.\n */\n @Prop({mutable: true}) public engine?: RecommendationEngine;\n\n /**\n * Whether analytics should be enabled.\n */\n @Prop({reflect: true}) public analytics = true;\n\n /**\n * The recommendation interface i18next instance.\n */\n @Prop() public i18n: i18n;\n\n /**\n * The severity level of the messages to log in the console.\n */\n @Prop({reflect: true}) public logLevel?: RecsLogLevel;\n\n /**\n * The recommendation interface language.\n */\n @Prop({reflect: true}) public language = 'en';\n\n /**\n * A list of non-default fields to include in the query results.\n *\n * Specify the property as an array using a JSON string representation:\n * ```html\n * <atomic-recs-interface fields-to-include='[\"fieldA\", \"fieldB\"]'></atomic-recs-interface>\n * ```\n */\n @ArrayProp()\n @Prop({mutable: true})\n public fieldsToInclude: string[] | string = '[]';\n\n /**\n * The language assets path. By default, this will be a relative URL pointing to `./lang`.\n *\n * Example: \"/mypublicpath/languages\"\n *\n */\n @Prop({reflect: true}) public languageAssetsPath = './lang';\n\n /**\n * The icon assets path. By default, this will be a relative URL pointing to `./assets`.\n *\n * Example: \"/mypublicpath/icons\"\n *\n */\n @Prop({reflect: true}) public iconAssetsPath = './assets';\n\n /**\n * The value to set the [nonce](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/nonce) attribute to on inline script and style elements generated by this interface and its child components.\n * If your application is served with a Content Security Policy (CSP) that doesn't include the `script-src: 'unsafe-inline'` or `style-src: 'unsafe-inline'` directives,\n * you should ensure that your application server generates a new nonce on every page load and uses the generated value to set this prop and serve the corresponding CSP response headers\n * (i.e., script-src 'nonce-<YOUR_GENERATED_NONCE>' and style-src 'nonce-<YOUR_GENERATED_NONCE>').\n * Otherwise you may see console errors such as\n * - Refused to execute inline script because it violates the following Content Security Policy directive: [...]\n * - Refused to apply inline style because it violates the following Content Security Policy directive: [...].\n * @example:\n * ```html\n * <script nonce=\"<YOUR_GENERATED_NONCE>\">\n * import {setNonce} from '@coveo/atomic';\n * setNonce('<YOUR_GENERATED_NONCE>');\n * </script>\n * ```\n */\n @Prop({reflect: true}) public CspNonce?: string;\n\n private i18Initialized: Promise<void>;\n private componentWillLoadCalledPromise: Promise<void>;\n private componentWillLoadResolver: () => void;\n\n public constructor() {\n this.commonInterfaceHelper = new CommonAtomicInterfaceHelper(\n this,\n 'CoveoAtomicRecs'\n );\n ({\n promise: this.componentWillLoadCalledPromise,\n resolve: this.componentWillLoadResolver,\n } = Promise.withResolvers<void>());\n const {promise, resolve} = Promise.withResolvers<void>();\n this.i18Initialized = promise;\n this.i18n = i18next.createInstance(undefined, resolve);\n }\n\n public get bindings(): RecsBindings {\n return {\n engine: this.engine!,\n i18n: this.i18n,\n store: this.store,\n interfaceElement: this.host,\n };\n }\n\n public connectedCallback() {\n this.store.setLoadingFlag(FirstRecommendationExecutedFlag);\n }\n\n componentWillLoad() {\n if (this.CspNonce) {\n setNonce(this.CspNonce);\n }\n this.componentWillLoadResolver();\n }\n\n /**\n * Initializes the connection with the headless recommendation engine using options for `accessToken` (required), `organizationId` (required), `environment` (defaults to `prod`), and `renewAccessToken`.\n */\n @Method() public initialize(options: RecsInitializationOptions) {\n return this.internalInitialization(() => this.initEngine(options));\n }\n\n /**\n * Initializes the connection with an already preconfigured headless recommendation engine.\n * This bypasses the properties set on the component, such as analytics, recommendation, searchHub, language, timezone & logLevel.\n */\n @Method() public initializeWithRecommendationEngine(\n engine: RecommendationEngine\n ) {\n if (this.pipeline && this.pipeline !== engine.state.pipeline) {\n console.warn(\n mismatchedInterfaceAndEnginePropError(\n 'recommendation',\n 'query pipeline'\n )\n );\n }\n if (this.searchHub && this.searchHub !== engine.state.searchHub) {\n console.warn(\n mismatchedInterfaceAndEnginePropError('recommendation', 'search hub')\n );\n }\n return this.internalInitialization(() => (this.engine = engine));\n }\n\n /**\n *\n * Fetches new recommendations.\n */\n @Method() public async getRecommendations() {\n if (!this.commonInterfaceHelper.engineIsCreated(this.engine)) {\n return;\n }\n\n if (!this.initialized) {\n console.error(\n 'You have to wait until the \"initialize\" promise is fulfilled before executing a search.',\n this.host\n );\n return;\n }\n\n this.engine!.dispatch(\n loadRecommendationActions(this.engine!).getRecommendations()\n );\n }\n\n @Watch('iconAssetsPath')\n public updateIconAssetsPath() {\n this.store.state.iconAssetsPath = this.iconAssetsPath;\n }\n\n @Listen('atomic/initializeComponent')\n public handleInitialization(event: InitializeEvent) {\n this.commonInterfaceHelper.onComponentInitializing(event);\n }\n\n @Watch('language')\n public updateLanguage() {\n if (!this.commonInterfaceHelper.engineIsCreated(this.engine)) {\n return;\n }\n\n const {updateSearchConfiguration} = loadSearchConfigurationActions(\n this.engine\n );\n this.engine.dispatch(\n updateSearchConfiguration({\n locale: this.language,\n })\n );\n return this.commonInterfaceHelper.onLanguageChange();\n }\n\n @Watch('analytics')\n public toggleAnalytics() {\n if (!this.commonInterfaceHelper.engineIsCreated(this.engine)) {\n return;\n }\n\n this.commonInterfaceHelper.onAnalyticsChange();\n }\n\n public registerFieldsToInclude() {\n const fields = EcommerceDefaultFieldsToInclude.concat(\n [...this.fieldsToInclude].filter((field) => !!field)\n );\n this.engine!.dispatch(\n loadFieldActions(this.engine!).registerFieldsToInclude(fields)\n );\n }\n\n private async internalInitialization(initEngine: () => void) {\n await this.componentWillLoadCalledPromise;\n await Promise.all([\n this.commonInterfaceHelper.onInitialization(initEngine),\n this.i18Initialized,\n ]);\n await this.updateLanguage();\n markParentAsReady(this.host);\n this.pipeline = this.engine!.state.pipeline;\n this.searchHub = this.engine!.state.searchHub;\n this.store.unsetLoadingFlag(FirstRecommendationExecutedFlag);\n this.initialized = true;\n }\n\n private initEngine(options: RecsInitializationOptions) {\n const analyticsConfig = getAnalyticsConfig(options, this.analytics);\n try {\n this.engine = buildRecommendationEngine({\n configuration: {\n pipeline: this.pipeline,\n searchHub: this.searchHub ?? 'default',\n locale: this.language,\n timezone: this.timezone,\n ...options,\n analytics: analyticsConfig,\n },\n loggerOptions: {\n level: this.logLevel,\n },\n });\n } catch (error) {\n this.error = error as Error;\n throw error;\n }\n }\n\n public render() {\n return this.engine && <slot></slot>;\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"atomic-recs-interface.entry.js","mappings":"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","names":["i18next"],"sources":["src/components/recommendations/atomic-recs-interface/analytics-config.ts","src/components/recommendations/atomic-recs-interface/store.ts","src/components/recommendations/atomic-recs-interface/atomic-recs-interface.pcss?tag=atomic-recs-interface&encapsulation=shadow","src/components/recommendations/atomic-recs-interface/atomic-recs-interface.tsx"],"sourcesContent":["import {\n AnalyticsConfiguration,\n RecommendationEngineConfiguration,\n} from '@coveo/headless/recommendation';\nimport {\n AnalyticsPayload,\n augmentAnalyticsWithAtomicVersion,\n augmentWithExternalMiddleware,\n augmentAnalyticsConfigWithDocument,\n augmentAnalyticsConfigWithAtomicVersion,\n getNextAnalyticsConfig,\n} from '../../common/interface/analytics-config';\n\nexport function getAnalyticsConfig(\n recsConfig: RecommendationEngineConfiguration,\n enabled: boolean\n): AnalyticsConfiguration {\n switch (recsConfig.analytics?.analyticsMode) {\n case 'next':\n return getNextAnalyticsConfig(recsConfig, enabled);\n case 'legacy':\n default:\n return getLegacyAnalyticsConfig(recsConfig, enabled);\n }\n}\n\nfunction getLegacyAnalyticsConfig(\n recsConfig: RecommendationEngineConfiguration,\n enabled: boolean\n): AnalyticsConfiguration {\n const analyticsClientMiddleware = (\n event: string,\n payload: AnalyticsPayload\n ) => augmentAnalytics(event, payload, recsConfig);\n\n const defaultAnalyticsConfig: AnalyticsConfiguration = {\n analyticsClientMiddleware,\n enabled,\n ...augmentAnalyticsConfigWithDocument(),\n ...augmentAnalyticsConfigWithAtomicVersion(),\n };\n\n if (recsConfig.analytics) {\n return {\n ...defaultAnalyticsConfig,\n ...recsConfig.analytics,\n analyticsClientMiddleware,\n };\n }\n return defaultAnalyticsConfig;\n}\n\nfunction augmentAnalytics(\n event: string,\n payload: AnalyticsPayload,\n recsConfig: RecommendationEngineConfiguration\n) {\n let result = augmentWithExternalMiddleware(event, payload, recsConfig);\n result = augmentAnalyticsWithAtomicVersion(result);\n return result;\n}\n","import {RecommendationEngine} from '@coveo/headless/recommendation';\nimport {\n BaseStore,\n createBaseStore,\n ResultListInfo,\n setLoadingFlag,\n unsetLoadingFlag,\n} from '../../common/interface/store';\n\ninterface Data {\n loadingFlags: string[];\n iconAssetsPath: string;\n resultList: ResultListInfo | undefined;\n}\n\nexport type RecsStore = BaseStore<Data> & {\n unsetLoadingFlag(loadingFlag: string): void;\n setLoadingFlag(flag: string): void;\n};\n\nexport function createRecsStore(): RecsStore {\n const store = createBaseStore<Data>({\n loadingFlags: [],\n iconAssetsPath: '',\n resultList: undefined,\n });\n\n return {\n ...store,\n\n unsetLoadingFlag(loadingFlag: string) {\n unsetLoadingFlag(store, loadingFlag);\n },\n\n setLoadingFlag(loadingFlag: string) {\n setLoadingFlag(store, loadingFlag);\n },\n\n getUniqueIDFromEngine(engine: RecommendationEngine): string {\n return engine.state.recommendation.searchUid;\n },\n };\n}\n","@import '../../../global/global.pcss';\n\n:host {\n display: block;\n}\n","import {markParentAsReady} from '@/src/utils/init-queue';\nimport {\n RecommendationEngine,\n RecommendationEngineConfiguration,\n loadFieldActions,\n EcommerceDefaultFieldsToInclude,\n buildRecommendationEngine,\n loadRecommendationActions,\n loadSearchConfigurationActions,\n LogLevel as RecsLogLevel,\n} from '@coveo/headless/recommendation';\nimport {\n Component,\n Element,\n h,\n Listen,\n Method,\n Prop,\n Watch,\n State,\n setNonce,\n} from '@stencil/core';\nimport i18next, {i18n} from 'i18next';\nimport {InitializeEvent} from '../../../utils/initialization-utils';\nimport {ArrayProp} from '../../../utils/props-utils';\nimport {CommonBindings} from '../../common/interface/bindings';\nimport {\n StencilBaseAtomicInterface,\n CommonAtomicInterfaceHelper,\n mismatchedInterfaceAndEnginePropError,\n} from '../../common/interface/interface-common-stencil';\nimport {getAnalyticsConfig} from './analytics-config';\nimport {createRecsStore, RecsStore} from './store';\n\nconst FirstRecommendationExecutedFlag = 'firstRecommendationExecuted';\nexport type RecsInitializationOptions = RecommendationEngineConfiguration;\nexport type RecsBindings = CommonBindings<\n RecommendationEngine,\n RecsStore,\n HTMLAtomicRecsInterfaceElement\n>;\n\n/**\n * The `atomic-recs-interface` component is the parent to all other atomic components in a recommendation interface. It handles the headless recommendation engine and localization configurations.\n * @slot default - The default slot where you can add child components to the recommendation interface.\n *\n */\n@Component({\n tag: 'atomic-recs-interface',\n styleUrl: 'atomic-recs-interface.pcss',\n shadow: true,\n})\nexport class AtomicRecsInterface\n implements StencilBaseAtomicInterface<RecommendationEngine>\n{\n private store = createRecsStore();\n private commonInterfaceHelper: CommonAtomicInterfaceHelper<RecommendationEngine>;\n private initialized = false;\n\n @Element() public host!: HTMLAtomicRecsInterfaceElement;\n\n @State() public error?: Error;\n\n /**\n * The recommendation interface [query pipeline](https://docs.coveo.com/en/180/).\n *\n * If the recommendation interface is initialized using [`initializeWithRecommendationEngine`](https://docs.coveo.com/en/atomic/latest/reference/recommendation-components/atomic-recs-interface/#initializewithrecommendationengine), the query pipeline should instead be configured in the target engine.\n */\n @Prop({reflect: true, mutable: true}) public pipeline?: string;\n\n /**\n * The recommendation interface [search hub](https://docs.coveo.com/en/1342/).\n *\n * If the recommendation interface is initialized using [`initializeWithRecommendationEngine`](https://docs.coveo.com/en/atomic/latest/reference/recommendation-components/atomic-recs-interface/#initializewithrecommendationengine), the search hub should instead be configured in the target engine.\n */\n @Prop({reflect: true, mutable: true}) public searchHub?: string;\n\n /**\n * The [tz database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) identifier of the time zone to use to correctly interpret dates in the query expression, facets, and result items.\n * By default, the timezone will be [guessed](https://day.js.org/docs/en/timezone/guessing-user-timezone).\n *\n * Example: \"America/Montreal\"\n */\n @Prop({reflect: true}) public timezone?: string;\n\n /**\n * The recommendation interface headless engine.\n */\n @Prop({mutable: true}) public engine?: RecommendationEngine;\n\n /**\n * Whether analytics should be enabled.\n */\n @Prop({reflect: true}) public analytics = true;\n\n /**\n * The recommendation interface i18next instance.\n */\n @Prop() public i18n: i18n;\n\n /**\n * The severity level of the messages to log in the console.\n */\n @Prop({reflect: true}) public logLevel?: RecsLogLevel;\n\n /**\n * The recommendation interface language.\n */\n @Prop({reflect: true}) public language = 'en';\n\n /**\n * A list of non-default fields to include in the query results.\n *\n * Specify the property as an array using a JSON string representation:\n * ```html\n * <atomic-recs-interface fields-to-include='[\"fieldA\", \"fieldB\"]'></atomic-recs-interface>\n * ```\n */\n @ArrayProp()\n @Prop({mutable: true})\n public fieldsToInclude: string[] | string = '[]';\n\n /**\n * The language assets path. By default, this will be a relative URL pointing to `./lang`.\n *\n * Example: \"/mypublicpath/languages\"\n *\n */\n @Prop({reflect: true}) public languageAssetsPath = './lang';\n\n /**\n * The icon assets path. By default, this will be a relative URL pointing to `./assets`.\n *\n * Example: \"/mypublicpath/icons\"\n *\n */\n @Prop({reflect: true}) public iconAssetsPath = './assets';\n\n /**\n * The value to set the [nonce](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/nonce) attribute to on inline script and style elements generated by this interface and its child components.\n * If your application is served with a Content Security Policy (CSP) that doesn't include the `script-src: 'unsafe-inline'` or `style-src: 'unsafe-inline'` directives,\n * you should ensure that your application server generates a new nonce on every page load and uses the generated value to set this prop and serve the corresponding CSP response headers\n * (i.e., script-src 'nonce-<YOUR_GENERATED_NONCE>' and style-src 'nonce-<YOUR_GENERATED_NONCE>').\n * Otherwise you may see console errors such as\n * - Refused to execute inline script because it violates the following Content Security Policy directive: [...]\n * - Refused to apply inline style because it violates the following Content Security Policy directive: [...].\n * @example:\n * ```html\n * <script nonce=\"<YOUR_GENERATED_NONCE>\">\n * import {setNonce} from '@coveo/atomic';\n * setNonce('<YOUR_GENERATED_NONCE>');\n * </script>\n * ```\n */\n @Prop({reflect: true}) public CspNonce?: string;\n\n private i18Initialized: Promise<void>;\n private componentWillLoadCalledPromise: Promise<void>;\n private componentWillLoadResolver: () => void;\n\n public constructor() {\n this.commonInterfaceHelper = new CommonAtomicInterfaceHelper(\n this,\n 'CoveoAtomicRecs'\n );\n ({\n promise: this.componentWillLoadCalledPromise,\n resolve: this.componentWillLoadResolver,\n } = Promise.withResolvers<void>());\n const {promise, resolve} = Promise.withResolvers<void>();\n this.i18Initialized = promise;\n this.i18n = i18next.createInstance(undefined, resolve);\n }\n\n public get bindings(): RecsBindings {\n return {\n engine: this.engine!,\n i18n: this.i18n,\n store: this.store,\n interfaceElement: this.host,\n };\n }\n\n public connectedCallback() {\n this.store.setLoadingFlag(FirstRecommendationExecutedFlag);\n }\n\n componentWillLoad() {\n if (this.CspNonce) {\n setNonce(this.CspNonce);\n }\n this.componentWillLoadResolver();\n }\n\n /**\n * Initializes the connection with the headless recommendation engine using options for `accessToken` (required), `organizationId` (required), `environment` (defaults to `prod`), and `renewAccessToken`.\n */\n @Method() public initialize(options: RecsInitializationOptions) {\n return this.internalInitialization(() => this.initEngine(options));\n }\n\n /**\n * Initializes the connection with an already preconfigured headless recommendation engine.\n * This bypasses the properties set on the component, such as analytics, recommendation, searchHub, language, timezone & logLevel.\n */\n @Method() public initializeWithRecommendationEngine(\n engine: RecommendationEngine\n ) {\n if (this.pipeline && this.pipeline !== engine.state.pipeline) {\n console.warn(\n mismatchedInterfaceAndEnginePropError(\n 'recommendation',\n 'query pipeline'\n )\n );\n }\n if (this.searchHub && this.searchHub !== engine.state.searchHub) {\n console.warn(\n mismatchedInterfaceAndEnginePropError('recommendation', 'search hub')\n );\n }\n return this.internalInitialization(() => (this.engine = engine));\n }\n\n /**\n *\n * Fetches new recommendations.\n */\n @Method() public async getRecommendations() {\n if (!this.commonInterfaceHelper.engineIsCreated(this.engine)) {\n return;\n }\n\n if (!this.initialized) {\n console.error(\n 'You have to wait until the \"initialize\" promise is fulfilled before executing a search.',\n this.host\n );\n return;\n }\n\n this.engine!.dispatch(\n loadRecommendationActions(this.engine!).getRecommendations()\n );\n }\n\n @Watch('iconAssetsPath')\n public updateIconAssetsPath() {\n this.store.state.iconAssetsPath = this.iconAssetsPath;\n }\n\n @Listen('atomic/initializeComponent')\n public handleInitialization(event: InitializeEvent) {\n this.commonInterfaceHelper.onComponentInitializing(event);\n }\n\n @Watch('language')\n public updateLanguage() {\n if (!this.commonInterfaceHelper.engineIsCreated(this.engine)) {\n return;\n }\n\n const {updateSearchConfiguration} = loadSearchConfigurationActions(\n this.engine\n );\n this.engine.dispatch(\n updateSearchConfiguration({\n locale: this.language,\n })\n );\n return this.commonInterfaceHelper.onLanguageChange();\n }\n\n @Watch('analytics')\n public toggleAnalytics() {\n if (!this.commonInterfaceHelper.engineIsCreated(this.engine)) {\n return;\n }\n\n this.commonInterfaceHelper.onAnalyticsChange();\n }\n\n public registerFieldsToInclude() {\n const fields = EcommerceDefaultFieldsToInclude.concat(\n [...this.fieldsToInclude].filter((field) => !!field)\n );\n this.engine!.dispatch(\n loadFieldActions(this.engine!).registerFieldsToInclude(fields)\n );\n }\n\n private async internalInitialization(initEngine: () => void) {\n await this.componentWillLoadCalledPromise;\n await Promise.all([\n this.commonInterfaceHelper.onInitialization(initEngine),\n this.i18Initialized,\n ]);\n await this.updateLanguage();\n markParentAsReady(this.host);\n this.pipeline = this.engine!.state.pipeline;\n this.searchHub = this.engine!.state.searchHub;\n this.store.unsetLoadingFlag(FirstRecommendationExecutedFlag);\n this.initialized = true;\n }\n\n private initEngine(options: RecsInitializationOptions) {\n const analyticsConfig = getAnalyticsConfig(options, this.analytics);\n try {\n this.engine = buildRecommendationEngine({\n configuration: {\n pipeline: this.pipeline,\n searchHub: this.searchHub ?? 'default',\n locale: this.language,\n timezone: this.timezone,\n ...options,\n analytics: analyticsConfig,\n },\n loggerOptions: {\n level: this.logLevel,\n },\n });\n } catch (error) {\n this.error = error as Error;\n throw error;\n }\n }\n\n public render() {\n return this.engine && <slot></slot>;\n }\n}\n"],"version":3}
|
|
@@ -264,7 +264,7 @@ const AtomicRecsList = class {
|
|
|
264
264
|
}))));
|
|
265
265
|
}
|
|
266
266
|
render() {
|
|
267
|
-
return (h(Fragment, { key: '
|
|
267
|
+
return (h(Fragment, { key: '8e2cdc749e141dc6c83ffbdf53e3cb3ab4331f67' }, this.renderHeading(), this.shouldRenderPagination ? (h(Carousel, { bindings: this.bindings, currentPage: this.currentPage, nextPage: () => this.nextPage(), previousPage: () => this.previousPage(), numberOfPages: this.numberOfPages }, this.renderListOfRecommendations())) : (this.renderListOfRecommendations())));
|
|
268
268
|
}
|
|
269
269
|
get host() { return getElement(this); }
|
|
270
270
|
static get watchers() { return {
|
|
@@ -179,7 +179,7 @@ const AtomicRefineModal = class {
|
|
|
179
179
|
return (h(RefineModalFiltersSection, { i18n: i18n, withFacets: hasFacetElements, withAutomaticFacets: hasAutomaticFacets }, this.breadcrumbManagerState.hasBreadcrumbs && (h(RefineModalFiltersClearButton, { i18n: i18n, onClick: () => this.breadcrumbManager.deselectAll() }))));
|
|
180
180
|
}
|
|
181
181
|
render() {
|
|
182
|
-
return (h(RefineModal, { key: '
|
|
182
|
+
return (h(RefineModal, { key: '1e877f4411313bcc5c3998c8802dbc807dc189a8', i18n: this.bindings.i18n, host: this.host, isOpen: this.isOpen, onClose: () => (this.isOpen = false), title: this.bindings.i18n.t('sort-and-filter'), numberOfItems: this.querySummaryState.total, openButton: this.openButton }, h(RefineModalBody, { key: '7cc1ef970c9623247304cfbbcbb96fbf72b2bfa7' }, this.renderSort(), this.renderFilters())));
|
|
183
183
|
}
|
|
184
184
|
componentDidLoad() {
|
|
185
185
|
this.host.style.display = '';
|