@coveo/atomic 3.33.8-pre.f62f2d7753 → 3.33.8-pre.f660526fae
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 +2 -0
- package/dist/atomic/components/_index.js +20 -19
- package/dist/atomic/components/analytics-config.js +1 -1
- package/dist/atomic/components/atomic-field-condition.js +1 -1
- package/dist/atomic/components/atomic-field-condition.js.map +1 -1
- package/dist/atomic/components/atomic-insight-result-action.js +2 -2
- package/dist/atomic/components/atomic-insight-result-action.js.map +1 -1
- package/dist/atomic/components/atomic-insight-result-attach-to-case-action.js +2 -2
- package/dist/atomic/components/atomic-insight-result-attach-to-case-action.js.map +1 -1
- package/dist/atomic/components/atomic-insight-result-attach-to-case-indicator.js +2 -2
- package/dist/atomic/components/atomic-insight-result-attach-to-case-indicator.js.map +1 -1
- package/dist/atomic/components/atomic-insight-result-quickview-action.js +2 -2
- package/dist/atomic/components/atomic-insight-result-quickview-action.js.map +1 -1
- package/dist/atomic/components/atomic-insight-search-box.js +2 -29
- package/dist/atomic/components/atomic-insight-search-box.js.map +1 -1
- package/dist/atomic/components/atomic-ipx-result-link.js +2 -2
- package/dist/atomic/components/atomic-ipx-result-link.js.map +1 -1
- package/dist/atomic/components/atomic-quickview-modal2.js +1 -1
- package/dist/atomic/components/atomic-quickview.js +2 -2
- package/dist/atomic/components/atomic-quickview.js.map +1 -1
- package/dist/atomic/components/atomic-result-badge.js +1 -1
- package/dist/atomic/components/atomic-result-badge.js.map +1 -1
- package/dist/atomic/components/atomic-result-children.js +2 -2
- package/dist/atomic/components/atomic-result-children.js.map +1 -1
- package/dist/atomic/components/atomic-result-date.js +1 -1
- package/dist/atomic/components/atomic-result-date.js.map +1 -1
- package/dist/atomic/components/atomic-result-fields-list.js +2 -2
- package/dist/atomic/components/atomic-result-fields-list.js.map +1 -1
- package/dist/atomic/components/atomic-result-html.js +1 -1
- package/dist/atomic/components/atomic-result-html.js.map +1 -1
- package/dist/atomic/components/atomic-result-icon.js +1 -1
- package/dist/atomic/components/atomic-result-icon.js.map +1 -1
- package/dist/atomic/components/atomic-result-image.js +1 -1
- package/dist/atomic/components/atomic-result-image.js.map +1 -1
- package/dist/atomic/components/atomic-result-link.js +2 -2
- package/dist/atomic/components/atomic-result-link.js.map +1 -1
- package/dist/atomic/components/atomic-result-localized-text.js +1 -1
- package/dist/atomic/components/atomic-result-localized-text.js.map +1 -1
- package/dist/atomic/components/atomic-result-multi-value-text.js +1 -1
- package/dist/atomic/components/atomic-result-multi-value-text.js.map +1 -1
- package/dist/atomic/components/atomic-result-number.js +1 -1
- package/dist/atomic/components/atomic-result-number.js.map +1 -1
- package/dist/atomic/components/atomic-result-printable-uri.js +1 -1
- package/dist/atomic/components/atomic-result-printable-uri.js.map +1 -1
- package/dist/atomic/components/atomic-result-rating.js +1 -1
- package/dist/atomic/components/atomic-result-rating.js.map +1 -1
- package/dist/atomic/components/atomic-result-text2.js +1 -1
- package/dist/atomic/components/atomic-result-text2.js.map +1 -1
- package/dist/atomic/components/atomic-result-timespan.js +1 -1
- package/dist/atomic/components/atomic-result-timespan.js.map +1 -1
- package/dist/atomic/components/atomic-result2.js.map +1 -1
- package/dist/atomic/components/atomic-search-box-query-suggestions.d.ts +11 -0
- package/dist/atomic/components/atomic-search-box-query-suggestions.js +8 -0
- package/dist/atomic/components/atomic-search-box-query-suggestions.js.map +1 -0
- package/dist/atomic/components/atomic-search-box-query-suggestions2.js +89 -0
- package/dist/atomic/components/atomic-search-box-query-suggestions2.js.map +1 -0
- package/dist/atomic/components/atomic-search-box-recent-queries2.js +1 -1
- package/dist/atomic/components/atomic-search-box.js +7 -1
- package/dist/atomic/components/atomic-search-box.js.map +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-smart-snippet-source2.js.map +1 -1
- package/dist/atomic/components/atomic-tab-manager.js +1 -1
- package/dist/atomic/components/components/commerce/atomic-commerce-breadbox/atomic-commerce-breadbox.js +18 -11
- package/dist/atomic/components/components/commerce/atomic-commerce-interface/atomic-commerce-interface.js +51 -14
- package/dist/atomic/components/components/commerce/atomic-commerce-layout/atomic-commerce-layout.js +19 -10
- package/dist/atomic/components/components/commerce/atomic-commerce-query-summary/atomic-commerce-query-summary.js +2 -2
- package/dist/atomic/components/components/commerce/atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.js +25 -10
- package/dist/atomic/components/components/commerce/atomic-product-children/atomic-product-children.js +1 -1
- package/dist/atomic/components/components/commerce/atomic-product-description/atomic-product-description.js +1 -1
- package/dist/atomic/components/components/commerce/atomic-product-excerpt/atomic-product-excerpt.js +1 -1
- package/dist/atomic/components/components/commerce/atomic-product-field-condition/atomic-product-field-condition.js +1 -1
- package/dist/atomic/components/components/commerce/atomic-product-image/atomic-product-image.js +1 -1
- package/dist/atomic/components/components/commerce/atomic-product-link/atomic-product-link.js +1 -1
- package/dist/atomic/components/components/commerce/atomic-product-multi-value-text/atomic-product-multi-value-text.js +1 -1
- package/dist/atomic/components/components/commerce/atomic-product-numeric-field-value/atomic-product-numeric-field-value.js +1 -1
- package/dist/atomic/components/components/commerce/atomic-product-price/atomic-product-price.js +1 -1
- package/dist/atomic/components/components/commerce/atomic-product-rating/atomic-product-rating.js +1 -1
- package/dist/atomic/components/components/commerce/atomic-product-text/atomic-product-text.js +1 -1
- package/dist/atomic/components/{decorators/commerce/product-template-decorators.js → components/commerce/product-template-component-utils/product-template-controllers.js} +3 -3
- package/dist/atomic/components/components/common/atomic-modal/atomic-modal.js +2 -0
- package/dist/atomic/components/components/common/layout/layout-styles-controller.js +40 -0
- package/dist/atomic/components/components/common/layout/mobile-breakpoint-controller.js +26 -0
- package/dist/atomic/components/components/search/index.js +0 -1
- package/dist/atomic/components/components/search/lazy-index.js +0 -1
- package/dist/atomic/components/global/environment.js +1 -1
- package/dist/atomic/components/index.js.map +1 -1
- package/dist/atomic/components/stencil-query-suggestions.js +33 -0
- package/dist/atomic/components/stencil-query-suggestions.js.map +1 -0
- package/dist/atomic/components/{result-template-decorators.js → stencil-result-template-decorators.js} +6 -2
- package/dist/atomic/components/stencil-result-template-decorators.js.map +1 -0
- package/dist/atomic/index.esm.js +1 -1
- package/dist/atomic/index.esm.js.map +1 -1
- package/dist/atomic/{p-a3f27d57.entry.js → p-1b498edf.entry.js} +2 -2
- package/dist/atomic/p-1b498edf.entry.js.map +1 -0
- package/dist/atomic/{p-a760d9f9.entry.js → p-1eca284d.entry.js} +2 -2
- package/dist/atomic/p-1eca284d.entry.js.map +1 -0
- package/dist/atomic/p-26a51a77.entry.js +2 -0
- package/dist/atomic/p-26a51a77.entry.js.map +1 -0
- package/dist/atomic/p-31f1e44e.entry.js +2 -0
- package/dist/atomic/p-31f1e44e.entry.js.map +1 -0
- package/dist/atomic/{p-e9dc8e90.entry.js → p-327e060b.entry.js} +2 -2
- package/dist/atomic/p-327e060b.entry.js.map +1 -0
- package/dist/atomic/{p-b3f6561d.entry.js → p-354c8c6d.entry.js} +2 -2
- package/dist/atomic/p-354c8c6d.entry.js.map +1 -0
- package/dist/atomic/{p-18684d4c.js → p-38f38674.js} +1 -1
- package/dist/atomic/p-38f38674.js.map +1 -0
- package/dist/atomic/{p-bc0d6d3d.entry.js → p-4ad216aa.entry.js} +2 -2
- package/dist/atomic/p-4ad216aa.entry.js.map +1 -0
- package/dist/atomic/{p-31aa052e.entry.js → p-4fc59a3d.entry.js} +2 -2
- package/dist/atomic/p-4fc59a3d.entry.js.map +1 -0
- package/dist/atomic/p-508b63e7.entry.js.map +1 -1
- package/dist/atomic/{p-1ff7a9da.entry.js → p-544ed45f.entry.js} +2 -2
- package/dist/atomic/p-544ed45f.entry.js.map +1 -0
- package/dist/atomic/{p-4b3d253b.entry.js → p-5aea1924.entry.js} +2 -2
- package/dist/atomic/p-5aea1924.entry.js.map +1 -0
- package/dist/atomic/{p-a4d277c7.entry.js → p-5dc90111.entry.js} +2 -2
- package/dist/atomic/p-5dc90111.entry.js.map +1 -0
- package/dist/atomic/{p-0c8e7d5f.entry.js → p-5ed9530e.entry.js} +2 -2
- package/dist/atomic/p-5ed9530e.entry.js.map +1 -0
- package/dist/atomic/{p-c7800a24.entry.js → p-755b5686.entry.js} +2 -2
- package/dist/atomic/p-755b5686.entry.js.map +1 -0
- package/dist/atomic/{p-ae98c582.entry.js → p-7a625c7e.entry.js} +2 -2
- package/dist/atomic/{p-52ba404c.entry.js → p-7e9eaccb.entry.js} +2 -2
- package/dist/atomic/p-7e9eaccb.entry.js.map +1 -0
- package/dist/atomic/{p-9d6b988d.entry.js → p-8099221a.entry.js} +2 -2
- package/dist/atomic/{p-b28011e6.entry.js → p-887b1c08.entry.js} +2 -2
- package/dist/atomic/{p-78427c6a.entry.js → p-91b40354.entry.js} +2 -2
- package/dist/atomic/p-91b40354.entry.js.map +1 -0
- package/dist/atomic/{p-190ddaca.entry.js → p-98276779.entry.js} +2 -2
- package/dist/atomic/p-98276779.entry.js.map +1 -0
- package/dist/atomic/{p-e162805d.entry.js → p-a4d6fd2c.entry.js} +2 -2
- package/dist/atomic/{p-e162805d.entry.js.map → p-a4d6fd2c.entry.js.map} +1 -1
- package/dist/atomic/{p-39e63678.entry.js → p-aa2a81fd.entry.js} +2 -2
- package/dist/atomic/{p-c9f1790d.entry.js → p-adcfce31.entry.js} +2 -2
- package/dist/atomic/p-adcfce31.entry.js.map +1 -0
- package/dist/atomic/p-af93b44c.js +2 -0
- package/dist/atomic/p-af93b44c.js.map +1 -0
- package/dist/atomic/{p-b87dbae7.js → p-b4b27aa2.js} +2 -2
- package/dist/atomic/{p-1ef658d8.entry.js → p-b7bff15f.entry.js} +2 -2
- package/dist/atomic/p-b7bff15f.entry.js.map +1 -0
- package/dist/atomic/{p-b24d432b.entry.js → p-c309eb0f.entry.js} +2 -2
- package/dist/atomic/{p-604c4085.entry.js → p-c567fcdb.entry.js} +2 -2
- package/dist/atomic/p-c567fcdb.entry.js.map +1 -0
- package/dist/atomic/{p-75e00690.entry.js → p-d1d4fc60.entry.js} +2 -2
- package/dist/atomic/p-d1d4fc60.entry.js.map +1 -0
- package/dist/atomic/{p-945ddd53.entry.js → p-d49328d9.entry.js} +2 -2
- package/dist/atomic/p-d49328d9.entry.js.map +1 -0
- package/dist/atomic/{p-3a2c900c.entry.js → p-f3bea093.entry.js} +2 -2
- package/dist/atomic/p-f3bea093.entry.js.map +1 -0
- package/dist/atomic/{p-e5352270.entry.js → p-f6c5957e.entry.js} +2 -2
- package/dist/atomic/{p-dbf0c5a3.entry.js → p-f70d8cdf.entry.js} +2 -2
- package/dist/atomic/{p-dbf0c5a3.entry.js.map → p-f70d8cdf.entry.js.map} +1 -1
- package/dist/atomic/{p-8a00adbe.entry.js → p-fd99979c.entry.js} +2 -2
- package/dist/atomic/p-fd99979c.entry.js.map +1 -0
- package/dist/cjs/_index.cjs.js +20 -20
- package/dist/cjs/_loader.cjs.js +1 -1
- package/dist/cjs/{analytics-config-de93a689.js → analytics-config-57e2d9c2.js} +2 -2
- package/dist/cjs/{analytics-config-de93a689.js.map → analytics-config-57e2d9c2.js.map} +1 -1
- package/dist/cjs/atomic-field-condition.cjs.entry.js +2 -2
- package/dist/cjs/atomic-field-condition.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-interface.cjs.entry.js +1 -1
- package/dist/cjs/atomic-insight-result-action.cjs.entry.js +3 -3
- package/dist/cjs/atomic-insight-result-action.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-result-attach-to-case-action.cjs.entry.js +3 -3
- package/dist/cjs/atomic-insight-result-attach-to-case-action.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-result-attach-to-case-indicator.cjs.entry.js +3 -3
- package/dist/cjs/atomic-insight-result-attach-to-case-indicator.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-result-quickview-action.cjs.entry.js +3 -3
- package/dist/cjs/atomic-insight-result-quickview-action.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-search-box.cjs.entry.js +4 -30
- package/dist/cjs/atomic-insight-search-box.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-ipx-result-link.cjs.entry.js +4 -4
- package/dist/cjs/atomic-ipx-result-link.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-quickview-modal.cjs.entry.js +1 -1
- package/dist/cjs/atomic-quickview.cjs.entry.js +3 -3
- package/dist/cjs/atomic-quickview.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-recs-interface.cjs.entry.js +1 -1
- package/dist/cjs/atomic-result-badge.cjs.entry.js +2 -2
- package/dist/cjs/atomic-result-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-children.cjs.entry.js +3 -3
- package/dist/cjs/atomic-result-children.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-date.cjs.entry.js +2 -2
- package/dist/cjs/atomic-result-date.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-fields-list.cjs.entry.js +3 -3
- package/dist/cjs/atomic-result-fields-list.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-html.cjs.entry.js +2 -2
- package/dist/cjs/atomic-result-html.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-icon.cjs.entry.js +2 -2
- package/dist/cjs/atomic-result-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-image.cjs.entry.js +2 -2
- package/dist/cjs/atomic-result-image.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-link.cjs.entry.js +4 -4
- package/dist/cjs/atomic-result-link.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-localized-text.cjs.entry.js +3 -3
- package/dist/cjs/atomic-result-localized-text.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-multi-value-text.cjs.entry.js +2 -2
- package/dist/cjs/atomic-result-multi-value-text.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-number.cjs.entry.js +2 -2
- package/dist/cjs/atomic-result-number.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-printable-uri.cjs.entry.js +2 -2
- package/dist/cjs/atomic-result-printable-uri.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-rating.cjs.entry.js +2 -2
- package/dist/cjs/atomic-result-rating.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-text_2.cjs.entry.js +2 -2
- package/dist/cjs/atomic-result-text_2.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-timespan.cjs.entry.js +2 -2
- package/dist/cjs/atomic-result-timespan.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result.cjs.entry.js.map +1 -1
- package/dist/cjs/{atomic-search-box-recent-queries.cjs.entry.js → atomic-search-box-query-suggestions_2.cjs.entry.js} +68 -5
- package/dist/cjs/atomic-search-box-query-suggestions_2.cjs.entry.js.map +1 -0
- package/dist/cjs/atomic-search-interface.cjs.entry.js +1 -1
- package/dist/cjs/atomic-smart-snippet-answer_2.cjs.entry.js +1 -1
- package/dist/cjs/atomic-smart-snippet-answer_2.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-smart-snippet-feedback-modal.cjs.entry.js +2 -2
- package/dist/cjs/atomic-tab-manager.cjs.entry.js +1 -1
- package/dist/cjs/atomic.cjs.js +1 -1
- package/dist/cjs/index-757bc886.js +2 -2
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/stencil-query-suggestions-03268ecc.js +38 -0
- package/dist/cjs/stencil-query-suggestions-03268ecc.js.map +1 -0
- package/dist/cjs/{result-template-decorators-432d11a9.js → stencil-result-template-decorators-5cb5b6e3.js} +6 -2
- package/dist/cjs/stencil-result-template-decorators-5cb5b6e3.js.map +1 -0
- package/dist/cjs/version.cjs.js +2 -2
- package/dist/esm/_index.js +19 -19
- package/dist/esm/_loader.js +1 -1
- package/dist/esm/{analytics-config-018337bf.js → analytics-config-3127413c.js} +2 -2
- package/dist/esm/{analytics-config-018337bf.js.map → analytics-config-3127413c.js.map} +1 -1
- package/dist/esm/atomic-field-condition.entry.js +1 -1
- package/dist/esm/atomic-field-condition.entry.js.map +1 -1
- package/dist/esm/atomic-insight-interface.entry.js +1 -1
- package/dist/esm/atomic-insight-result-action.entry.js +2 -2
- package/dist/esm/atomic-insight-result-action.entry.js.map +1 -1
- package/dist/esm/atomic-insight-result-attach-to-case-action.entry.js +2 -2
- package/dist/esm/atomic-insight-result-attach-to-case-action.entry.js.map +1 -1
- package/dist/esm/atomic-insight-result-attach-to-case-indicator.entry.js +2 -2
- package/dist/esm/atomic-insight-result-attach-to-case-indicator.entry.js.map +1 -1
- package/dist/esm/atomic-insight-result-quickview-action.entry.js +2 -2
- package/dist/esm/atomic-insight-result-quickview-action.entry.js.map +1 -1
- package/dist/esm/atomic-insight-search-box.entry.js +3 -29
- package/dist/esm/atomic-insight-search-box.entry.js.map +1 -1
- package/dist/esm/atomic-ipx-result-link.entry.js +2 -2
- package/dist/esm/atomic-ipx-result-link.entry.js.map +1 -1
- package/dist/esm/atomic-quickview-modal.entry.js +1 -1
- package/dist/esm/atomic-quickview.entry.js +2 -2
- package/dist/esm/atomic-quickview.entry.js.map +1 -1
- package/dist/esm/atomic-recs-interface.entry.js +1 -1
- package/dist/esm/atomic-result-badge.entry.js +1 -1
- package/dist/esm/atomic-result-badge.entry.js.map +1 -1
- package/dist/esm/atomic-result-children.entry.js +2 -2
- package/dist/esm/atomic-result-children.entry.js.map +1 -1
- package/dist/esm/atomic-result-date.entry.js +1 -1
- package/dist/esm/atomic-result-date.entry.js.map +1 -1
- package/dist/esm/atomic-result-fields-list.entry.js +2 -2
- package/dist/esm/atomic-result-fields-list.entry.js.map +1 -1
- package/dist/esm/atomic-result-html.entry.js +1 -1
- package/dist/esm/atomic-result-html.entry.js.map +1 -1
- package/dist/esm/atomic-result-icon.entry.js +1 -1
- package/dist/esm/atomic-result-icon.entry.js.map +1 -1
- package/dist/esm/atomic-result-image.entry.js +1 -1
- package/dist/esm/atomic-result-image.entry.js.map +1 -1
- package/dist/esm/atomic-result-link.entry.js +2 -2
- package/dist/esm/atomic-result-link.entry.js.map +1 -1
- package/dist/esm/atomic-result-localized-text.entry.js +2 -2
- package/dist/esm/atomic-result-localized-text.entry.js.map +1 -1
- package/dist/esm/atomic-result-multi-value-text.entry.js +1 -1
- package/dist/esm/atomic-result-multi-value-text.entry.js.map +1 -1
- package/dist/esm/atomic-result-number.entry.js +1 -1
- package/dist/esm/atomic-result-number.entry.js.map +1 -1
- package/dist/esm/atomic-result-printable-uri.entry.js +1 -1
- package/dist/esm/atomic-result-printable-uri.entry.js.map +1 -1
- package/dist/esm/atomic-result-rating.entry.js +1 -1
- package/dist/esm/atomic-result-rating.entry.js.map +1 -1
- package/dist/esm/atomic-result-text_2.entry.js +1 -1
- package/dist/esm/atomic-result-text_2.entry.js.map +1 -1
- package/dist/esm/atomic-result-timespan.entry.js +1 -1
- package/dist/esm/atomic-result-timespan.entry.js.map +1 -1
- package/dist/esm/atomic-result.entry.js.map +1 -1
- package/dist/esm/{atomic-search-box-recent-queries.entry.js → atomic-search-box-query-suggestions_2.entry.js} +70 -8
- package/dist/esm/atomic-search-box-query-suggestions_2.entry.js.map +1 -0
- package/dist/esm/atomic-search-interface.entry.js +1 -1
- package/dist/esm/atomic-smart-snippet-answer_2.entry.js +1 -1
- package/dist/esm/atomic-smart-snippet-answer_2.entry.js.map +1 -1
- package/dist/esm/atomic-smart-snippet-feedback-modal.entry.js +2 -2
- package/dist/esm/atomic-tab-manager.entry.js +1 -1
- package/dist/esm/atomic.js +1 -1
- package/dist/esm/index-3f35faca.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/stencil-query-suggestions-5d6a46d7.js +33 -0
- package/dist/esm/stencil-query-suggestions-5d6a46d7.js.map +1 -0
- package/dist/esm/{result-template-decorators-2ed76ea9.js → stencil-result-template-decorators-b48247e4.js} +6 -2
- package/dist/esm/stencil-result-template-decorators-b48247e4.js.map +1 -0
- package/dist/esm/version.js +2 -2
- package/dist/types/components/commerce/atomic-commerce-breadbox/atomic-commerce-breadbox.d.ts +2 -1
- package/dist/types/components/commerce/atomic-commerce-interface/atomic-commerce-interface.d.ts +29 -2
- package/dist/types/components/commerce/atomic-commerce-layout/atomic-commerce-layout.d.ts +3 -3
- package/dist/types/components/commerce/atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.d.ts +1 -0
- package/dist/types/components/commerce/atomic-product/atomic-product.d.ts +1 -1
- package/dist/types/{decorators/commerce/product-template-decorators.d.ts → components/commerce/product-template-component-utils/product-template-controllers.d.ts} +2 -2
- package/dist/types/components/commerce/product-template-component-utils/stencil-product-template-decorators.d.ts +1 -1
- package/dist/types/components/common/layout/layout-styles-controller.d.ts +22 -0
- package/dist/types/components/common/layout/mobile-breakpoint-controller.d.ts +18 -0
- package/dist/types/components/common/smart-snippets/atomic-smart-snippet-source.d.ts +1 -1
- package/dist/types/components/search/atomic-result/atomic-result.d.ts +1 -1
- package/dist/types/components/search/index.d.ts +0 -1
- package/dist/types/components/search/result-template-component-utils/result-template-controllers.d.ts +34 -0
- package/dist/types/components/search/{result-template-components/result-template-decorators.d.ts → result-template-component-utils/stencil-result-template-decorators.d.ts} +5 -1
- package/dist/types/components/search/search-box-suggestions/atomic-search-box-query-suggestions/atomic-search-box-query-suggestions.d.ts +29 -0
- package/dist/types/components.d.ts +49 -0
- package/dist/types/index.d.ts +2 -2
- package/docs/atomic-docs.json +102 -3
- package/package.json +3 -3
- package/dist/atomic/components/components/search/atomic-search-box-query-suggestions/atomic-search-box-query-suggestions.js +0 -111
- package/dist/atomic/components/result-template-decorators.js.map +0 -1
- package/dist/atomic/p-0c8e7d5f.entry.js.map +0 -1
- package/dist/atomic/p-18684d4c.js.map +0 -1
- package/dist/atomic/p-190ddaca.entry.js.map +0 -1
- package/dist/atomic/p-1ef658d8.entry.js.map +0 -1
- package/dist/atomic/p-1ff7a9da.entry.js.map +0 -1
- package/dist/atomic/p-31aa052e.entry.js.map +0 -1
- package/dist/atomic/p-3a2c900c.entry.js.map +0 -1
- package/dist/atomic/p-4b3d253b.entry.js.map +0 -1
- package/dist/atomic/p-52ba404c.entry.js.map +0 -1
- package/dist/atomic/p-604c4085.entry.js.map +0 -1
- package/dist/atomic/p-75e00690.entry.js.map +0 -1
- package/dist/atomic/p-78427c6a.entry.js.map +0 -1
- package/dist/atomic/p-7a06a356.entry.js +0 -2
- package/dist/atomic/p-7a06a356.entry.js.map +0 -1
- package/dist/atomic/p-8a00adbe.entry.js.map +0 -1
- package/dist/atomic/p-945ddd53.entry.js.map +0 -1
- package/dist/atomic/p-a3f27d57.entry.js.map +0 -1
- package/dist/atomic/p-a4d277c7.entry.js.map +0 -1
- package/dist/atomic/p-a760d9f9.entry.js.map +0 -1
- package/dist/atomic/p-b3f6561d.entry.js.map +0 -1
- package/dist/atomic/p-bc0d6d3d.entry.js.map +0 -1
- package/dist/atomic/p-c7800a24.entry.js.map +0 -1
- package/dist/atomic/p-c9f1790d.entry.js.map +0 -1
- package/dist/atomic/p-d2b14ff1.entry.js +0 -2
- package/dist/atomic/p-d2b14ff1.entry.js.map +0 -1
- package/dist/atomic/p-e9dc8e90.entry.js.map +0 -1
- package/dist/cjs/atomic-search-box-recent-queries.cjs.entry.js.map +0 -1
- package/dist/cjs/result-template-decorators-432d11a9.js.map +0 -1
- package/dist/esm/atomic-search-box-recent-queries.entry.js.map +0 -1
- package/dist/esm/result-template-decorators-2ed76ea9.js.map +0 -1
- package/dist/types/components/search/atomic-search-box-query-suggestions/atomic-search-box-query-suggestions.d.ts +0 -38
- /package/dist/atomic/{p-ae98c582.entry.js.map → p-7a625c7e.entry.js.map} +0 -0
- /package/dist/atomic/{p-9d6b988d.entry.js.map → p-8099221a.entry.js.map} +0 -0
- /package/dist/atomic/{p-b28011e6.entry.js.map → p-887b1c08.entry.js.map} +0 -0
- /package/dist/atomic/{p-39e63678.entry.js.map → p-aa2a81fd.entry.js.map} +0 -0
- /package/dist/atomic/{p-b87dbae7.js.map → p-b4b27aa2.js.map} +0 -0
- /package/dist/atomic/{p-b24d432b.entry.js.map → p-c309eb0f.entry.js.map} +0 -0
- /package/dist/atomic/{p-e5352270.entry.js.map → p-f6c5957e.entry.js.map} +0 -0
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["getPartialSearchBoxSuggestionElement","suggestion","i18n","part","key","encodeForDomAttribute","rawValue","query","ariaLabel","t","interpolation","escapeValue","QuerySuggestionContainer","_","children","h","class","QuerySuggestionIcon","icon","hasSuggestion","QuerySuggestionText","hasQuery","innerHTML","highlightedValue","atomicInsightSearchBoxCss","AtomicInsightSearchBoxStyle0","AtomicInsightSearchBox","this","isExpanded","disableSearch","numberOfSuggestions","initialize","id","randomID","searchBoxOptions","highlightOptions","notMatchDelimiters","open","close","correctionDelimiters","fetchQuerySuggestions","registerQuerySuggest","loadInsightSearchActions","bindings","engine","searchBox","buildInsightSearchBox","options","dispatch","count","suggestionManager","SuggestionManager","getNumberOfSuggestionsToDisplay","updateQuery","updateText","getSearchBoxValue","searchBoxState","value","getSuggestionTimeout","getSuggestionDelay","getHost","host","getLogger","logger","registerSuggestions","position","renderItems","state","suggestions","map","renderSuggestionItem","onInput","panel","onSubmit","activeDescendantElement","clickOnActiveElement","submit","clearSuggestions","onKeyDown","e","preventDefault","focusNextValue","announceNewActiveSuggestionToScreenReader","focusPreviousValue","triggerTextAreaChange","textAreaRef","dispatchEvent","window","Event","renderSuggestion","item","index","lastIndex","isSelected","activeDescendant","suggestedQuery","hideIfLast","side","isDoubleList","onClick","onSuggestionClick","onMouseOver","onSuggestionMouseOver","partialItem","content","SearchSlimIcon","length","onSelect","selectSuggestion","renderPanel","elements","setRef","getRef","ref","onMouseDown","target","renderSuggestions","hasSuggestions","updateActiveDescendant","role","allSuggestionElements","el","leftPanel","getSearchInputLabel","isMacOS","hasKeyboard","onFocus","triggerSuggestions","announceNewSuggestionsToScreenReader","suggestionsAriaMessage","numberOfSuggestionsToAnnounce","filter","elementHasQuery","searchBoxAriaMessage","render","SearchBoxWrapper","disabled","onFocusout","event","isFocusingOut","SearchTextArea","loading","isLoading","placeholder","onClear","clear","__decorate","InitializeBindings","BindStateToController","AriaLiveRegion"],"sources":["src/components/common/suggestions/stencil-query-suggestions.tsx","src/components/insight/atomic-insight-search-box/atomic-insight-search-box.pcss?tag=atomic-insight-search-box&encapsulation=shadow","src/components/insight/atomic-insight-search-box/atomic-insight-search-box.tsx"],"sourcesContent":["import {FunctionalComponent, h} from '@stencil/core';\nimport {i18n} from 'i18next';\nimport {encodeForDomAttribute} from '../../../utils/string-utils.js';\nimport {SearchBoxSuggestionElement} from './suggestions-types.js';\n\ninterface Suggestion {\n highlightedValue: string;\n rawValue: string;\n}\n\nexport const getPartialSearchBoxSuggestionElement = (\n suggestion: Suggestion,\n i18n: i18n\n): Pick<SearchBoxSuggestionElement, 'ariaLabel' | 'key' | 'query' | 'part'> => {\n return {\n part: 'query-suggestion-item',\n key: `qs-${encodeForDomAttribute(suggestion.rawValue)}`,\n query: suggestion.rawValue,\n ariaLabel: i18n.t('query-suggestion-label', {\n query: suggestion.rawValue,\n interpolation: {escapeValue: false},\n }),\n };\n};\n\nexport const QuerySuggestionContainer: FunctionalComponent = (_, children) => {\n return (\n <div part=\"query-suggestion-content\" class=\"flex items-center\">\n {children}\n </div>\n );\n};\n\ninterface QuerySuggestionIconProps {\n icon: string;\n hasSuggestion: boolean;\n}\n\nexport const QuerySuggestionIcon: FunctionalComponent<\n QuerySuggestionIconProps\n> = ({icon, hasSuggestion}) => {\n if (!hasSuggestion) {\n return;\n }\n\n return (\n <atomic-icon\n part=\"query-suggestion-icon\"\n icon={icon}\n class=\"mr-2 h-4 w-4 shrink-0\"\n ></atomic-icon>\n );\n};\n\ninterface QuerySuggestionTextProps {\n suggestion: Suggestion;\n hasQuery: boolean;\n}\n\nexport const QuerySuggestionText: FunctionalComponent<\n QuerySuggestionTextProps\n> = ({suggestion, hasQuery}) => {\n if (hasQuery) {\n return (\n <span\n part=\"query-suggestion-text\"\n class=\"line-clamp-2 break-all\"\n innerHTML={suggestion.highlightedValue}\n ></span>\n );\n }\n\n return (\n <span part=\"query-suggestion-text\" class=\"line-clamp-2 break-all\">\n {suggestion.rawValue}\n </span>\n );\n};\n","@import '../../../global/global.pcss';\n@import '../../common/search-box/search-box.pcss';\n\n[part='wrapper'] {\n @apply z-10;\n}\n\n:host {\n position: relative;\n}\n\n[part='input'] {\n padding-top: 0.675rem;\n padding-bottom: 0.675rem;\n}\n\n[part='submit-icon'] {\n @apply text-on-background;\n}\n\n[part='submit-button'] {\n @apply flex w-10 items-center justify-center;\n}\n\n.loading::after {\n content: '';\n @apply bg-background absolute h-5/6 w-5/6 rounded-full;\n}\n\n[part='clear-button-wrapper'] {\n @apply mr-2 py-0;\n}\n\n[part='clear-icon'] {\n @apply h-3 w-3;\n}\n\n[part='textarea-expander'] {\n &::after {\n @apply p-2 px-4;\n }\n}\n\n[part='textarea-expander'] {\n [part='textarea'] {\n @apply p-2 px-4;\n }\n}\n","import {loadInsightSearchActions} from '@coveo/headless/insight';\nimport {\n buildSearchBox as buildInsightSearchBox,\n SearchBox as InsightSearchBox,\n SearchBoxState as InsightSearchBoxState,\n Suggestion as InsightSuggestion,\n} from '@coveo/headless/insight';\nimport {Component, Element, h, Prop, State} from '@stencil/core';\nimport SearchSlimIcon from '../../../images/search-slim.svg';\nimport {hasKeyboard, isMacOS} from '../../../utils/device-utils';\nimport {\n BindStateToController,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {AriaLiveRegion} from '../../../utils/stencil-accessibility-utils';\nimport {isFocusingOut, randomID} from '../../../utils/utils';\nimport {SearchBoxWrapper} from '../../common/search-box/stencil-search-box-wrapper';\nimport {SearchTextArea} from '../../common/search-box/stencil-search-text-area';\nimport {\n getPartialSearchBoxSuggestionElement,\n QuerySuggestionContainer,\n QuerySuggestionIcon,\n QuerySuggestionText,\n} from '../../common/suggestions/stencil-query-suggestions';\nimport {SuggestionManager} from '../../common/suggestions/stencil-suggestion-manager';\nimport {\n elementHasQuery,\n} from '../../common/suggestions/suggestions-utils';\nimport {\n SearchBoxSuggestionElement,\n} from '../../common/suggestions/suggestions-types';\nimport {InsightBindings} from '../atomic-insight-interface/atomic-insight-interface';\n\n/**\n * @internal\n */\n@Component({\n tag: 'atomic-insight-search-box',\n styleUrl: 'atomic-insight-search-box.pcss',\n shadow: true,\n})\nexport class AtomicInsightSearchBox {\n @InitializeBindings() public bindings!: InsightBindings;\n\n private searchBox!: InsightSearchBox;\n private id!: string;\n private textAreaRef!: HTMLTextAreaElement;\n private suggestionManager!: SuggestionManager<InsightSearchBox>;\n\n @Element() private host!: HTMLElement;\n\n @BindStateToController('searchBox')\n @State()\n private searchBoxState!: InsightSearchBoxState;\n @State() public error!: Error;\n @State() private isExpanded = false;\n\n /**\n * Whether to prevent the user from triggering a search from the component.\n * Perfect for use cases where you need to disable the search conditionally, like when the input is empty.\n */\n @Prop({reflect: true}) public disableSearch = false;\n /**\n * The number of query suggestions to display when interacting with the search box.\n */\n @Prop({reflect: true}) public numberOfSuggestions = 5;\n\n @AriaLiveRegion('search-box')\n protected searchBoxAriaMessage!: string;\n\n @AriaLiveRegion('search-suggestions', true)\n protected suggestionsAriaMessage!: string;\n\n public initialize() {\n this.id = randomID('atomic-search-box-');\n\n const searchBoxOptions = {\n id: this.id,\n numberOfSuggestions: 0,\n highlightOptions: {\n notMatchDelimiters: {\n open: '<span class=\"font-bold\">',\n close: '</span>',\n },\n correctionDelimiters: {\n open: '<span class=\"font-normal\">',\n close: '</span>',\n },\n },\n };\n\n const {fetchQuerySuggestions, registerQuerySuggest} =\n loadInsightSearchActions(this.bindings.engine);\n\n this.searchBox = buildInsightSearchBox(this.bindings.engine, {\n options: searchBoxOptions,\n });\n\n this.bindings.engine.dispatch(\n registerQuerySuggest({id: this.id, count: this.numberOfSuggestions})\n );\n\n this.suggestionManager = new SuggestionManager({\n getNumberOfSuggestionsToDisplay: () => this.numberOfSuggestions,\n updateQuery: (query) => this.searchBox.updateText(query),\n getSearchBoxValue: () => this.searchBoxState.value,\n getSuggestionTimeout: () => 500,\n getSuggestionDelay: () => 0,\n getHost: () => this.host,\n getLogger: () => this.bindings.engine.logger,\n });\n\n this.suggestionManager.registerSuggestions({\n position: 0,\n renderItems: () =>\n this.searchBox.state.suggestions.map((suggestion) =>\n this.renderSuggestionItem(suggestion)\n ),\n onInput: () => this.bindings.engine.dispatch(fetchQuerySuggestions({id: this.id})),\n panel: 'left',\n });\n }\n\n private onSubmit() {\n if (this.suggestionManager.activeDescendantElement) {\n this.suggestionManager.clickOnActiveElement();\n return;\n }\n\n this.searchBox.submit();\n this.suggestionManager.clearSuggestions();\n }\n\n private async onKeyDown(e: KeyboardEvent) {\n if (this.disableSearch) {\n return;\n }\n\n switch (e.key) {\n case 'Enter':\n this.onSubmit();\n break;\n case 'Escape':\n this.suggestionManager.clearSuggestions();\n break;\n case 'ArrowDown':\n e.preventDefault();\n await this.suggestionManager.focusNextValue();\n this.announceNewActiveSuggestionToScreenReader();\n break;\n case 'ArrowUp':\n e.preventDefault();\n await this.suggestionManager.focusPreviousValue();\n this.announceNewActiveSuggestionToScreenReader();\n break;\n case 'Tab':\n this.suggestionManager.clearSuggestions();\n break;\n }\n }\n\n private triggerTextAreaChange(value: string) {\n this.textAreaRef.value = value;\n this.textAreaRef.dispatchEvent(new window.Event('change'));\n }\n\n private renderSuggestion(\n item: SearchBoxSuggestionElement,\n index: number,\n lastIndex: number\n ) {\n const id = `${this.id}-suggestion-${item.key}`;\n\n const isSelected =\n id === this.suggestionManager.activeDescendant ||\n this.suggestionManager.suggestedQuery === item.query;\n\n if (index === lastIndex && item.hideIfLast) {\n return null;\n }\n\n return (\n <atomic-suggestion-renderer\n i18n={this.bindings.i18n}\n id={id}\n suggestion={item}\n isSelected={isSelected}\n side={'left'}\n index={index}\n lastIndex={lastIndex}\n isDoubleList={false}\n onClick={(e: Event) => {\n this.suggestionManager.onSuggestionClick(item, e);\n }}\n onMouseOver={() => {\n this.suggestionManager.onSuggestionMouseOver(item, 'left', id);\n }}\n ></atomic-suggestion-renderer>\n );\n }\n\n private renderSuggestionItem(\n suggestion: InsightSuggestion\n ): SearchBoxSuggestionElement {\n const hasQuery = this.searchBox.state.value !== '';\n const partialItem = getPartialSearchBoxSuggestionElement(\n suggestion,\n this.bindings.i18n\n );\n\n return {\n ...partialItem,\n content: (\n <QuerySuggestionContainer>\n <QuerySuggestionIcon\n icon={SearchSlimIcon}\n hasSuggestion={this.searchBoxState.suggestions.length > 1}\n />\n\n <QuerySuggestionText suggestion={suggestion} hasQuery={hasQuery} />\n </QuerySuggestionContainer>\n ),\n onSelect: () => {\n this.searchBox.selectSuggestion(suggestion.rawValue);\n },\n };\n }\n\n private renderPanel(\n elements: SearchBoxSuggestionElement[],\n setRef: (el: HTMLElement | undefined) => void,\n getRef: () => HTMLElement | undefined\n ) {\n if (!elements.length) {\n return null;\n }\n\n return (\n <div\n part={'suggestions'}\n ref={setRef}\n class=\"flex grow basis-1/2 flex-col\"\n onMouseDown={(e) => {\n if (e.target === getRef()) {\n e.preventDefault();\n }\n }}\n >\n {elements.map((suggestion, index) =>\n this.renderSuggestion(suggestion, index, elements.length - 1)\n )}\n </div>\n );\n }\n\n private renderSuggestions() {\n if (!this.suggestionManager.hasSuggestions) {\n this.suggestionManager.updateActiveDescendant();\n return null;\n }\n\n return (\n <div\n id={`${this.id}-popup`}\n part=\"suggestions-wrapper\"\n class={`bg-background border-neutral absolute top-full left-0 z-10 flex w-full rounded-md border ${\n this.suggestionManager.hasSuggestions && this.isExpanded\n ? ''\n : 'hidden'\n }`}\n role=\"application\"\n aria-label={this.bindings.i18n.t('search-suggestions-single-list')}\n {...(this.suggestionManager.activeDescendant && {\n 'aria-activedescendant': this.suggestionManager.activeDescendant,\n })}\n >\n {this.renderPanel(\n this.suggestionManager.allSuggestionElements,\n (el) => (this.suggestionManager.leftPanel = el),\n () => this.suggestionManager.leftPanel\n )}\n </div>\n );\n }\n\n private getSearchInputLabel() {\n if (isMacOS()) {\n return this.bindings.i18n.t('search-box-with-suggestions-macos');\n }\n if (!hasKeyboard()) {\n return this.bindings.i18n.t('search-box-with-suggestions-keyboardless');\n }\n return this.bindings.i18n.t('search-box-with-suggestions');\n }\n\n private async onFocus() {\n if (this.isExpanded) {\n return;\n }\n this.isExpanded = true;\n await this.suggestionManager.triggerSuggestions();\n this.announceNewSuggestionsToScreenReader();\n }\n\n private async onInput(value: string) {\n this.searchBox.updateText(value);\n this.isExpanded = true;\n await this.suggestionManager.triggerSuggestions();\n this.announceNewSuggestionsToScreenReader();\n }\n\n private announceNewActiveSuggestionToScreenReader() {\n const ariaLabel = this.suggestionManager.activeDescendantElement?.ariaLabel;\n if (isMacOS() && ariaLabel) {\n this.suggestionsAriaMessage = ariaLabel;\n }\n }\n\n private announceNewSuggestionsToScreenReader() {\n const numberOfSuggestionsToAnnounce =\n this.suggestionManager.allSuggestionElements.filter(\n elementHasQuery\n ).length;\n this.searchBoxAriaMessage = numberOfSuggestionsToAnnounce\n ? this.bindings.i18n.t(\n this.searchBoxState.value\n ? 'query-suggestions-available'\n : 'query-suggestions-available-no-query',\n {\n count: numberOfSuggestionsToAnnounce,\n query: this.searchBoxState.value,\n }\n )\n : this.bindings.i18n.t('query-suggestions-unavailable');\n }\n\n public render() {\n return (\n <SearchBoxWrapper\n disabled={this.disableSearch}\n onFocusout={(event) => {\n if (!isFocusingOut(event)) {\n return;\n }\n this.suggestionManager.clearSuggestions();\n this.isExpanded = false;\n }}\n >\n <atomic-icon\n part=\"submit-icon\"\n icon={SearchSlimIcon}\n class=\"my-auto mr-0 ml-4 h-4 w-4\"\n />\n <SearchTextArea\n textAreaRef={this.textAreaRef}\n loading={this.searchBoxState.isLoading}\n ref={(el) => el && (this.textAreaRef = el)}\n bindings={this.bindings}\n value={this.searchBoxState.value}\n ariaLabel={this.getSearchInputLabel()}\n placeholder={this.bindings.i18n.t('search-ellipsis')}\n onFocus={() => this.onFocus()}\n onKeyDown={(e) => this.onKeyDown(e)}\n onClear={() => {\n this.searchBox.clear();\n this.triggerTextAreaChange('');\n }}\n onInput={(e) => this.onInput((e.target as HTMLInputElement).value)}\n />\n {this.renderSuggestions()}\n </SearchBoxWrapper>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["e","t","module","exports","this","a","n","d","lastDay","sameDay","nextDay","nextWeek","lastWeek","sameElse","prototype","calendar","$locale","o","startOf","s","diff","i","f","l","call","format","updateLocale","Ls","Object","keys","forEach","dayjs","extend","AtomicResultDate","field","dateToRender","updateDateToRender","value","ResultTemplatesHelpers","getResultProperty","result","parsedValue","parseDate","isValid","error","Error","relativeTime","bindings","interfaceElement","language","i18n","componentWillRender","render","host","remove","__decorate","InitializeBindings","ResultContext"],"sources":["../../node_modules/dayjs/plugin/calendar.js","../../node_modules/dayjs/plugin/updateLocale.js","src/components/search/result-template-components/atomic-result-date/atomic-result-date.tsx"],"sourcesContent":["!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_calendar=t()}(this,(function(){\"use strict\";return function(e,t,a){var n=\"h:mm A\",d={lastDay:\"[Yesterday at] \"+n,sameDay:\"[Today at] \"+n,nextDay:\"[Tomorrow at] \"+n,nextWeek:\"dddd [at] \"+n,lastWeek:\"[Last] dddd [at] \"+n,sameElse:\"MM/DD/YYYY\"};t.prototype.calendar=function(e,t){var n=t||this.$locale().calendar||d,o=a(e||void 0).startOf(\"d\"),s=this.diff(o,\"d\",!0),i=\"sameElse\",f=s<-6?i:s<-1?\"lastWeek\":s<0?\"lastDay\":s<1?\"sameDay\":s<2?\"nextDay\":s<7?\"nextWeek\":i,l=n[f]||d[f];return\"function\"==typeof l?l.call(this,a()):this.format(l)}}}));","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_updateLocale=n()}(this,(function(){\"use strict\";return function(e,n,t){t.updateLocale=function(e,n){var o=t.Ls[e];if(o)return(n?Object.keys(n):[]).forEach((function(e){o[e]=n[e]})),o}}}));","import {Result, ResultTemplatesHelpers} from '@coveo/headless';\nimport {Component, Prop, Element, State} from '@stencil/core';\nimport dayjs from 'dayjs';\nimport calendar from 'dayjs/plugin/calendar';\nimport updateLocale from 'dayjs/plugin/updateLocale';\nimport {parseDate} from '../../../../utils/date-utils';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\nimport {ResultContext} from '../result-template-decorators';\n\ndayjs.extend(calendar);\ndayjs.extend(updateLocale);\n\n/**\n * The `atomic-result-date` component renders the value of a date result field.\n */\n@Component({\n tag: 'atomic-result-date',\n shadow: false,\n})\nexport class AtomicResultDate implements InitializableComponent {\n @InitializeBindings()\n public bindings!: Bindings;\n\n @ResultContext() private result!: Result;\n\n @Element() host!: HTMLElement;\n\n @State() public error!: Error;\n\n /**\n * The result field which the component should use.\n * This will look for the field in the Result object first, and then in the Result.raw object.\n * It is important to include the necessary field in the `atomic-search-interface` component.\n */\n @Prop({reflect: true}) field = 'date';\n /**\n * Available formats: https://day.js.org/docs/en/display/format\n */\n @Prop({reflect: true}) format = 'D/M/YYYY';\n\n /**\n * Whether the date should display in the [relative time format](https://day.js.org/docs/en/plugin/calendar).\n *\n * To modify the relative time string, use the [localization feature](https://docs.coveo.com/en/atomic/latest/usage/atomic-localization/).\n */\n @Prop({reflect: true}) relativeTime?: boolean;\n\n private dateToRender: string | null = null;\n\n private updateDateToRender() {\n const value = ResultTemplatesHelpers.getResultProperty(\n this.result,\n this.field\n );\n\n if (value === null) {\n this.dateToRender = null;\n return;\n }\n\n const parsedValue = parseDate(value as never);\n if (!parsedValue.isValid()) {\n this.error = new Error(\n `Field \"${this.field}\" does not contain a valid date.`\n );\n this.dateToRender = null;\n return;\n }\n\n if (this.relativeTime) {\n dayjs.updateLocale(this.bindings.interfaceElement.language, {\n calendar: {\n sameDay: this.bindings.i18n.t('calendar-same-day'),\n nextDay: this.bindings.i18n.t('calendar-next-day'),\n nextWeek: this.bindings.i18n.t('calendar-next-week'),\n lastDay: this.bindings.i18n.t('calendar-last-day'),\n lastWeek: this.bindings.i18n.t('calendar-last-week'),\n sameElse: this.format,\n },\n });\n this.dateToRender = parsedValue.calendar();\n } else {\n this.dateToRender = parsedValue.format(this.format);\n }\n }\n\n public componentWillRender() {\n this.updateDateToRender();\n }\n\n public render() {\n if (this.dateToRender === null) {\n this.host.remove();\n return;\n }\n return this.dateToRender;\n }\n}\n"],"mappings":"mbAAC,SAASA,EAAEC,GAAwDC,EAAAC,QAAeF,GAAmI,CAArN,CAAuNG,GAAI,WAA0B,OAAO,SAASJ,EAAEC,EAAEI,GAAG,IAAIC,EAAE,SAASC,EAAE,CAACC,QAAQ,kBAAkBF,EAAEG,QAAQ,cAAcH,EAAEI,QAAQ,iBAAiBJ,EAAEK,SAAS,aAAaL,EAAEM,SAAS,oBAAoBN,EAAEO,SAAS,cAAcZ,EAAEa,UAAUC,SAAS,SAASf,EAAEC,GAAG,IAAIK,EAAEL,GAAGG,KAAKY,UAAUD,UAAUR,EAAEU,EAAEZ,EAAEL,QAAQ,GAAGkB,QAAQ,KAAKC,EAAEf,KAAKgB,KAAKH,EAAE,KAAK,GAAGI,EAAE,WAAWC,EAAEH,GAAG,EAAEE,EAAEF,GAAG,EAAE,WAAWA,EAAE,EAAE,UAAUA,EAAE,EAAE,UAAUA,EAAE,EAAE,UAAUA,EAAE,EAAE,WAAWE,EAAEE,EAAEjB,EAAEgB,IAAIf,EAAEe,GAAG,MAAM,mBAAmBC,EAAEA,EAAEC,KAAKpB,KAAKC,KAAKD,KAAKqB,OAAOF,EAAE,CAAC,CAAE,G,2DCA/tB,SAASvB,EAAEM,GAAwDJ,EAAAC,QAAeG,GAAuI,CAAzN,CAA2NF,GAAI,WAA0B,OAAO,SAASJ,EAAEM,EAAEL,GAAGA,EAAEyB,aAAa,SAAS1B,EAAEM,GAAG,IAAIW,EAAEhB,EAAE0B,GAAG3B,GAAG,GAAGiB,EAAE,OAAOX,EAAEsB,OAAOC,KAAKvB,GAAG,IAAIwB,SAAO,SAAW9B,GAAGiB,EAAEjB,GAAGM,EAAEN,EAAG,IAAGiB,CAAC,CAAC,CAAE,G,mYCanYc,EAAMC,OAAOjB,GACbgB,EAAMC,OAAON,G,MASAO,EAAgB,M,yBAeJ7B,KAAA8B,MAAQ,OAIR9B,KAAAqB,OAAS,WASxBrB,KAAA+B,aAA8B,K,gCAbP,O,YAIC,W,4BAWxB,kBAAAC,GACN,MAAMC,EAAQC,EAAuBC,kBACnCnC,KAAKoC,OACLpC,KAAK8B,OAGP,GAAIG,IAAU,KAAM,CAClBjC,KAAK+B,aAAe,KACpB,M,CAGF,MAAMM,EAAcC,EAAUL,GAC9B,IAAKI,EAAYE,UAAW,CAC1BvC,KAAKwC,MAAQ,IAAIC,MACf,UAAUzC,KAAK8B,yCAEjB9B,KAAK+B,aAAe,KACpB,M,CAGF,GAAI/B,KAAK0C,aAAc,CACrBf,EAAML,aAAatB,KAAK2C,SAASC,iBAAiBC,SAAU,CAC1DlC,SAAU,CACRN,QAASL,KAAK2C,SAASG,KAAKjD,EAAE,qBAC9BS,QAASN,KAAK2C,SAASG,KAAKjD,EAAE,qBAC9BU,SAAUP,KAAK2C,SAASG,KAAKjD,EAAE,sBAC/BO,QAASJ,KAAK2C,SAASG,KAAKjD,EAAE,qBAC9BW,SAAUR,KAAK2C,SAASG,KAAKjD,EAAE,sBAC/BY,SAAUT,KAAKqB,UAGnBrB,KAAK+B,aAAeM,EAAY1B,U,KAC3B,CACLX,KAAK+B,aAAeM,EAAYhB,OAAOrB,KAAKqB,O,EAIzC,mBAAA0B,GACL/C,KAAKgC,oB,CAGA,MAAAgB,GACL,GAAIhD,KAAK+B,eAAiB,KAAM,CAC9B/B,KAAKiD,KAAKC,SACV,M,CAEF,OAAOlD,KAAK+B,Y,6BA1EPoB,EAAA,CADNC,K,+BAGwBD,EAAA,CAAxBE,K","ignoreList":[]}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"file":"atomic-search-box-recent-queries.entry.cjs.js","mappings":"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","names":["encodeForDomAttribute","h","HighlightUtils","once","dispatchSearchBoxSuggestionsEvent","Clock","SafeStorage","buildRecentQueriesList","StorageItems"],"sources":["src/components/common/suggestions/stencil-recent-queries.tsx","src/components/search/search-box-suggestions/atomic-search-box-recent-queries/atomic-search-box-recent-queries.tsx"],"sourcesContent":["import {HighlightUtils} from '@coveo/headless';\nimport {FunctionalComponent, h} from '@stencil/core';\nimport {i18n} from 'i18next';\nimport {encodeForDomAttribute} from '../../../utils/string-utils';\nimport {SearchBoxSuggestionElement} from './suggestions-types';\n\nexport const getPartialRecentQueryElement = (\n value: string,\n i18n: i18n\n): Pick<SearchBoxSuggestionElement, 'ariaLabel' | 'key' | 'query' | 'part'> => {\n return {\n part: 'recent-query-item',\n query: value,\n key: `recent-${encodeForDomAttribute(value)}`,\n ariaLabel: i18n.t('recent-query-suggestion-label', {\n query: value,\n interpolation: {escapeValue: false},\n }),\n };\n};\n\nexport const getPartialRecentQueryClearElement = (\n i18n: i18n\n): Pick<\n SearchBoxSuggestionElement,\n 'ariaLabel' | 'key' | 'part' | 'hideIfLast'\n> => {\n return {\n key: 'recent-query-clear',\n ariaLabel: i18n.t('clear-recent-searches', {\n interpolation: {escapeValue: false},\n }),\n part: 'recent-query-title-item suggestion-divider',\n hideIfLast: true,\n };\n};\n\nexport const RecentQueriesContainer: FunctionalComponent = (_, children) => {\n return (\n <div\n part=\"recent-query-content\"\n class=\"flex items-center text-left break-all\"\n >\n {children}\n </div>\n );\n};\n\ninterface RecentQueryIconProps {\n icon: string;\n}\n\nexport const RecentQueryIcon: FunctionalComponent<RecentQueryIconProps> = ({\n icon,\n}) => {\n return (\n <atomic-icon\n part=\"recent-query-icon\"\n icon={icon}\n class=\"mr-2 h-4 w-4 shrink-0\"\n ></atomic-icon>\n );\n};\n\ninterface RecentQueryTextProps {\n query: string;\n value: string;\n}\n\nexport const RecentQueryText: FunctionalComponent<RecentQueryTextProps> = ({\n query,\n value,\n}) => {\n if (query === '') {\n return (\n <span part=\"recent-query-text\" class=\"line-clamp-2 break-all\">\n {value}\n </span>\n );\n }\n return (\n <span\n part=\"recent-query-text\"\n class=\"line-clamp-2 break-all\"\n innerHTML={HighlightUtils.highlightString({\n content: value,\n openingDelimiter:\n '<span part=\"recent-query-text-highlight\" class=\"font-bold\">',\n closingDelimiter: '</span>',\n highlights: [\n {\n offset: query.length,\n length: value.length - query.length,\n },\n ],\n })}\n ></span>\n );\n};\n\ninterface RecentQueryClearProps {\n i18n: i18n;\n}\n\nexport const RecentQueryClear: FunctionalComponent<RecentQueryClearProps> = ({\n i18n,\n}) => {\n return (\n <div part=\"recent-query-title-content\" class=\"flex w-full justify-between\">\n <span class=\"font-bold\" part=\"recent-query-title\">\n {i18n.t('recent-searches')}\n </span>\n <span part=\"recent-query-clear\">{i18n.t('clear')}</span>\n </div>\n );\n};\n","import {\n buildRecentQueriesList,\n RecentQueriesList,\n SearchBox,\n} from '@coveo/headless';\nimport {Component, Element, Prop, State, h} from '@stencil/core';\nimport Clock from '../../../../images/clock.svg';\nimport {SafeStorage, StorageItems} from '../../../../utils/local-storage-utils';\nimport {once} from '../../../../utils/utils';\nimport {\n getPartialRecentQueryClearElement,\n getPartialRecentQueryElement,\n RecentQueriesContainer,\n RecentQueryClear,\n RecentQueryIcon,\n RecentQueryText,\n} from '../../../common/suggestions/stencil-recent-queries';\nimport {\n dispatchSearchBoxSuggestionsEvent,\n} from '../../../common/suggestions/suggestions-events';\nimport type {\n SearchBoxSuggestionElement,\n SearchBoxSuggestions,\n SearchBoxSuggestionsBindings,\n} from '../../../common/suggestions/suggestions-types';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\n\n/**\n * The `atomic-search-box-recent-queries` component can be added as a child of an `atomic-search-box` component, allowing for the configuration of recent query suggestions.\n */\n@Component({\n tag: 'atomic-search-box-recent-queries',\n shadow: true,\n})\nexport class AtomicSearchBoxRecentQueries {\n private bindings!: SearchBoxSuggestionsBindings<SearchBox, Bindings>;\n private recentQueriesList!: RecentQueriesList;\n private storage!: SafeStorage;\n\n @Element() private host!: HTMLElement;\n\n @State() public error!: Error;\n\n /**\n * The SVG icon to display.\n *\n * - Use a value that starts with `http://`, `https://`, `./`, or `../`, to fetch and display an icon from a given location.\n * - Use a value that starts with `assets://`, to display an icon from the Atomic package.\n * - Use a stringified SVG to display it directly.\n */\n @Prop() public icon?: string;\n\n /**\n * The maximum number of suggestions that will be displayed if the user has typed something into the input field.\n */\n @Prop({reflect: true}) public maxWithQuery = 3;\n /**\n * The maximum number of suggestions that will be displayed initially when the input field is empty.\n */\n @Prop({reflect: true}) public maxWithoutQuery?: number;\n\n componentWillLoad() {\n try {\n dispatchSearchBoxSuggestionsEvent<SearchBox, Bindings>(\n (bindings) => {\n this.bindings = bindings;\n return this.initialize();\n },\n this.host,\n ['atomic-search-box']\n );\n } catch (error) {\n this.error = error as Error;\n }\n }\n\n private renderIcon() {\n return this.icon || Clock;\n }\n\n private initialize(): SearchBoxSuggestions {\n this.storage = new SafeStorage();\n this.recentQueriesList = buildRecentQueriesList(this.bindings.engine, {\n initialState: {queries: this.retrieveLocalStorage()},\n options: {maxLength: 1000, clearFilters: this.bindings.clearFilters},\n });\n\n this.recentQueriesList.subscribe(() => this.updateLocalStorage());\n\n return {\n position: Array.from(this.host.parentNode!.children).indexOf(this.host),\n renderItems: () => this.renderItems(),\n };\n }\n\n private retrieveLocalStorage() {\n return this.storage.getParsedJSON(StorageItems.RECENT_QUERIES, []);\n }\n\n private updateLocalStorage() {\n if (!this.recentQueriesList.state.analyticsEnabled) {\n return this.disableFeature();\n }\n\n return this.storage.setJSON(\n StorageItems.RECENT_QUERIES,\n this.recentQueriesList.state.queries\n );\n }\n\n private warnUser = once(() =>\n this.bindings.engine.logger.warn(\n 'Because analytics are disabled, the recent queries feature is deactivated.'\n )\n );\n\n private disableFeature() {\n this.warnUser();\n this.storage.removeItem(StorageItems.RECENT_QUERIES);\n }\n\n private renderItems(): SearchBoxSuggestionElement[] {\n if (!this.recentQueriesList.state.analyticsEnabled) {\n return [];\n }\n\n const query = this.bindings.searchBoxController.state.value;\n const hasQuery = query !== '';\n const max = hasQuery ? this.maxWithQuery : this.maxWithoutQuery;\n const filteredQueries = this.recentQueriesList.state.queries\n .filter((recentQuery) =>\n recentQuery.toLowerCase().startsWith(query.toLowerCase())\n )\n .slice(0, max);\n\n const suggestionElements: SearchBoxSuggestionElement[] =\n filteredQueries.map((value) => this.renderItem(value));\n if (suggestionElements.length) {\n suggestionElements.unshift(this.renderClear());\n }\n\n return suggestionElements;\n }\n\n private renderClear(): SearchBoxSuggestionElement {\n const partialItem = getPartialRecentQueryClearElement(this.bindings.i18n);\n\n return {\n ...partialItem,\n content: <RecentQueryClear i18n={this.bindings.i18n} />,\n onSelect: () => {\n this.recentQueriesList.clear();\n this.bindings.triggerSuggestions();\n },\n };\n }\n\n private renderItem(value: string): SearchBoxSuggestionElement {\n const query = this.bindings.searchBoxController.state.value;\n const partialItem = getPartialRecentQueryElement(value, this.bindings.i18n);\n return {\n ...partialItem,\n content: (\n <RecentQueriesContainer>\n <RecentQueryIcon icon={this.renderIcon()} />\n <RecentQueryText query={query} value={value} />\n </RecentQueriesContainer>\n ),\n\n onSelect: () => {\n if (this.bindings.isStandalone) {\n this.bindings.searchBoxController.updateText(value);\n this.bindings.searchBoxController.submit();\n return;\n }\n\n this.recentQueriesList.executeRecentQuery(\n this.recentQueriesList.state.queries.indexOf(value)\n );\n },\n };\n }\n\n public render() {\n if (this.error) {\n return (\n <atomic-component-error\n element={this.host}\n error={this.error}\n ></atomic-component-error>\n );\n }\n }\n}\n"],"version":3}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"file":"result-template-decorators-432d11a9.js","mappings":";;;;AASA;;;;;;;;;SASgB,aAAa,CAAC,OAA0B,EAAC,MAAM,EAAE,KAAK,EAAC;IACrE,OAAOA,iCAAW,CAAC,EAAC,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC,CAAC;AACzE,CAAC;SAEe,wBAAwB;IACtC,OAAOC,4CAAsB,EAAE,CAAC;AAClC,CAAC;AAKD;;;;;;;;;;SAUgB,aAAa,CAC3B,OAAgB;IAEhB,OAAOC,iCAAW,CAAI,OAAO,EAAE,eAAe,CAAC,CAAC;AAClD;;;;;;","names":["ItemContext","InteractiveItemContext","itemContext"],"sources":["src/components/search/result-template-components/result-template-decorators.tsx"],"sourcesContent":["import {FoldedResult, Result} from '@coveo/headless';\nimport {\n InteractiveItemContext,\n InteractiveItemContextEvent,\n ItemContext,\n ItemContextEvent,\n itemContext,\n} from '../../common/item-list/stencil-item-decorators';\n\n/**\n * A [StencilJS property decorator](https://stenciljs.com/) to be used for result template components.\n * This allows the Stencil component to fetch the current result from its rendered parent, the `atomic-result` component.\n *\n * Example:\n * @ResultContext() private result!: Result;\n *\n * For more information and examples, view the \"Utilities\" section of the readme.\n */\nexport function ResultContext(opts: {folded: boolean} = {folded: false}) {\n return ItemContext({parentName: 'atomic-result', folded: opts.folded});\n}\n\nexport function InteractiveResultContext() {\n return InteractiveItemContext();\n}\n\nexport type ResultContextEvent<T = Result> = ItemContextEvent<T>;\nexport type InteractiveResultContextEvent = InteractiveItemContextEvent;\n\n/**\n * Retrieves `Result` on a rendered `atomic-result`.\n *\n * This method is useful for building custom result template elements, see [Create a Result List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-result-template-component-example) for more information.\n *\n * You should use the method in the [connectedCallback lifecycle method](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#using_the_lifecycle_callbacks).\n *\n * @param element The element that the event is dispatched to, which must be the child of a rendered \"atomic-result\".\n * @returns A promise that resolves on initialization of the parent \"atomic-result\" element, or rejects when there is no parent \"atomic-result\" element.\n */\nexport function resultContext<T extends Result | FoldedResult = Result>(\n element: Element\n) {\n return itemContext<T>(element, 'atomic-result');\n}\n"],"version":3}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"file":"atomic-search-box-recent-queries.entry.js","mappings":"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","names":[],"sources":["src/components/common/suggestions/stencil-recent-queries.tsx","src/components/search/search-box-suggestions/atomic-search-box-recent-queries/atomic-search-box-recent-queries.tsx"],"sourcesContent":["import {HighlightUtils} from '@coveo/headless';\nimport {FunctionalComponent, h} from '@stencil/core';\nimport {i18n} from 'i18next';\nimport {encodeForDomAttribute} from '../../../utils/string-utils';\nimport {SearchBoxSuggestionElement} from './suggestions-types';\n\nexport const getPartialRecentQueryElement = (\n value: string,\n i18n: i18n\n): Pick<SearchBoxSuggestionElement, 'ariaLabel' | 'key' | 'query' | 'part'> => {\n return {\n part: 'recent-query-item',\n query: value,\n key: `recent-${encodeForDomAttribute(value)}`,\n ariaLabel: i18n.t('recent-query-suggestion-label', {\n query: value,\n interpolation: {escapeValue: false},\n }),\n };\n};\n\nexport const getPartialRecentQueryClearElement = (\n i18n: i18n\n): Pick<\n SearchBoxSuggestionElement,\n 'ariaLabel' | 'key' | 'part' | 'hideIfLast'\n> => {\n return {\n key: 'recent-query-clear',\n ariaLabel: i18n.t('clear-recent-searches', {\n interpolation: {escapeValue: false},\n }),\n part: 'recent-query-title-item suggestion-divider',\n hideIfLast: true,\n };\n};\n\nexport const RecentQueriesContainer: FunctionalComponent = (_, children) => {\n return (\n <div\n part=\"recent-query-content\"\n class=\"flex items-center text-left break-all\"\n >\n {children}\n </div>\n );\n};\n\ninterface RecentQueryIconProps {\n icon: string;\n}\n\nexport const RecentQueryIcon: FunctionalComponent<RecentQueryIconProps> = ({\n icon,\n}) => {\n return (\n <atomic-icon\n part=\"recent-query-icon\"\n icon={icon}\n class=\"mr-2 h-4 w-4 shrink-0\"\n ></atomic-icon>\n );\n};\n\ninterface RecentQueryTextProps {\n query: string;\n value: string;\n}\n\nexport const RecentQueryText: FunctionalComponent<RecentQueryTextProps> = ({\n query,\n value,\n}) => {\n if (query === '') {\n return (\n <span part=\"recent-query-text\" class=\"line-clamp-2 break-all\">\n {value}\n </span>\n );\n }\n return (\n <span\n part=\"recent-query-text\"\n class=\"line-clamp-2 break-all\"\n innerHTML={HighlightUtils.highlightString({\n content: value,\n openingDelimiter:\n '<span part=\"recent-query-text-highlight\" class=\"font-bold\">',\n closingDelimiter: '</span>',\n highlights: [\n {\n offset: query.length,\n length: value.length - query.length,\n },\n ],\n })}\n ></span>\n );\n};\n\ninterface RecentQueryClearProps {\n i18n: i18n;\n}\n\nexport const RecentQueryClear: FunctionalComponent<RecentQueryClearProps> = ({\n i18n,\n}) => {\n return (\n <div part=\"recent-query-title-content\" class=\"flex w-full justify-between\">\n <span class=\"font-bold\" part=\"recent-query-title\">\n {i18n.t('recent-searches')}\n </span>\n <span part=\"recent-query-clear\">{i18n.t('clear')}</span>\n </div>\n );\n};\n","import {\n buildRecentQueriesList,\n RecentQueriesList,\n SearchBox,\n} from '@coveo/headless';\nimport {Component, Element, Prop, State, h} from '@stencil/core';\nimport Clock from '../../../../images/clock.svg';\nimport {SafeStorage, StorageItems} from '../../../../utils/local-storage-utils';\nimport {once} from '../../../../utils/utils';\nimport {\n getPartialRecentQueryClearElement,\n getPartialRecentQueryElement,\n RecentQueriesContainer,\n RecentQueryClear,\n RecentQueryIcon,\n RecentQueryText,\n} from '../../../common/suggestions/stencil-recent-queries';\nimport {\n dispatchSearchBoxSuggestionsEvent,\n} from '../../../common/suggestions/suggestions-events';\nimport type {\n SearchBoxSuggestionElement,\n SearchBoxSuggestions,\n SearchBoxSuggestionsBindings,\n} from '../../../common/suggestions/suggestions-types';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\n\n/**\n * The `atomic-search-box-recent-queries` component can be added as a child of an `atomic-search-box` component, allowing for the configuration of recent query suggestions.\n */\n@Component({\n tag: 'atomic-search-box-recent-queries',\n shadow: true,\n})\nexport class AtomicSearchBoxRecentQueries {\n private bindings!: SearchBoxSuggestionsBindings<SearchBox, Bindings>;\n private recentQueriesList!: RecentQueriesList;\n private storage!: SafeStorage;\n\n @Element() private host!: HTMLElement;\n\n @State() public error!: Error;\n\n /**\n * The SVG icon to display.\n *\n * - Use a value that starts with `http://`, `https://`, `./`, or `../`, to fetch and display an icon from a given location.\n * - Use a value that starts with `assets://`, to display an icon from the Atomic package.\n * - Use a stringified SVG to display it directly.\n */\n @Prop() public icon?: string;\n\n /**\n * The maximum number of suggestions that will be displayed if the user has typed something into the input field.\n */\n @Prop({reflect: true}) public maxWithQuery = 3;\n /**\n * The maximum number of suggestions that will be displayed initially when the input field is empty.\n */\n @Prop({reflect: true}) public maxWithoutQuery?: number;\n\n componentWillLoad() {\n try {\n dispatchSearchBoxSuggestionsEvent<SearchBox, Bindings>(\n (bindings) => {\n this.bindings = bindings;\n return this.initialize();\n },\n this.host,\n ['atomic-search-box']\n );\n } catch (error) {\n this.error = error as Error;\n }\n }\n\n private renderIcon() {\n return this.icon || Clock;\n }\n\n private initialize(): SearchBoxSuggestions {\n this.storage = new SafeStorage();\n this.recentQueriesList = buildRecentQueriesList(this.bindings.engine, {\n initialState: {queries: this.retrieveLocalStorage()},\n options: {maxLength: 1000, clearFilters: this.bindings.clearFilters},\n });\n\n this.recentQueriesList.subscribe(() => this.updateLocalStorage());\n\n return {\n position: Array.from(this.host.parentNode!.children).indexOf(this.host),\n renderItems: () => this.renderItems(),\n };\n }\n\n private retrieveLocalStorage() {\n return this.storage.getParsedJSON(StorageItems.RECENT_QUERIES, []);\n }\n\n private updateLocalStorage() {\n if (!this.recentQueriesList.state.analyticsEnabled) {\n return this.disableFeature();\n }\n\n return this.storage.setJSON(\n StorageItems.RECENT_QUERIES,\n this.recentQueriesList.state.queries\n );\n }\n\n private warnUser = once(() =>\n this.bindings.engine.logger.warn(\n 'Because analytics are disabled, the recent queries feature is deactivated.'\n )\n );\n\n private disableFeature() {\n this.warnUser();\n this.storage.removeItem(StorageItems.RECENT_QUERIES);\n }\n\n private renderItems(): SearchBoxSuggestionElement[] {\n if (!this.recentQueriesList.state.analyticsEnabled) {\n return [];\n }\n\n const query = this.bindings.searchBoxController.state.value;\n const hasQuery = query !== '';\n const max = hasQuery ? this.maxWithQuery : this.maxWithoutQuery;\n const filteredQueries = this.recentQueriesList.state.queries\n .filter((recentQuery) =>\n recentQuery.toLowerCase().startsWith(query.toLowerCase())\n )\n .slice(0, max);\n\n const suggestionElements: SearchBoxSuggestionElement[] =\n filteredQueries.map((value) => this.renderItem(value));\n if (suggestionElements.length) {\n suggestionElements.unshift(this.renderClear());\n }\n\n return suggestionElements;\n }\n\n private renderClear(): SearchBoxSuggestionElement {\n const partialItem = getPartialRecentQueryClearElement(this.bindings.i18n);\n\n return {\n ...partialItem,\n content: <RecentQueryClear i18n={this.bindings.i18n} />,\n onSelect: () => {\n this.recentQueriesList.clear();\n this.bindings.triggerSuggestions();\n },\n };\n }\n\n private renderItem(value: string): SearchBoxSuggestionElement {\n const query = this.bindings.searchBoxController.state.value;\n const partialItem = getPartialRecentQueryElement(value, this.bindings.i18n);\n return {\n ...partialItem,\n content: (\n <RecentQueriesContainer>\n <RecentQueryIcon icon={this.renderIcon()} />\n <RecentQueryText query={query} value={value} />\n </RecentQueriesContainer>\n ),\n\n onSelect: () => {\n if (this.bindings.isStandalone) {\n this.bindings.searchBoxController.updateText(value);\n this.bindings.searchBoxController.submit();\n return;\n }\n\n this.recentQueriesList.executeRecentQuery(\n this.recentQueriesList.state.queries.indexOf(value)\n );\n },\n };\n }\n\n public render() {\n if (this.error) {\n return (\n <atomic-component-error\n element={this.host}\n error={this.error}\n ></atomic-component-error>\n );\n }\n }\n}\n"],"version":3}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"file":"result-template-decorators-2ed76ea9.js","mappings":";;AASA;;;;;;;;;SASgB,aAAa,CAAC,OAA0B,EAAC,MAAM,EAAE,KAAK,EAAC;IACrE,OAAO,WAAW,CAAC,EAAC,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC,CAAC;AACzE,CAAC;SAEe,wBAAwB;IACtC,OAAO,sBAAsB,EAAE,CAAC;AAClC,CAAC;AAKD;;;;;;;;;;SAUgB,aAAa,CAC3B,OAAgB;IAEhB,OAAO,WAAW,CAAI,OAAO,EAAE,eAAe,CAAC,CAAC;AAClD;;;;","names":[],"sources":["src/components/search/result-template-components/result-template-decorators.tsx"],"sourcesContent":["import {FoldedResult, Result} from '@coveo/headless';\nimport {\n InteractiveItemContext,\n InteractiveItemContextEvent,\n ItemContext,\n ItemContextEvent,\n itemContext,\n} from '../../common/item-list/stencil-item-decorators';\n\n/**\n * A [StencilJS property decorator](https://stenciljs.com/) to be used for result template components.\n * This allows the Stencil component to fetch the current result from its rendered parent, the `atomic-result` component.\n *\n * Example:\n * @ResultContext() private result!: Result;\n *\n * For more information and examples, view the \"Utilities\" section of the readme.\n */\nexport function ResultContext(opts: {folded: boolean} = {folded: false}) {\n return ItemContext({parentName: 'atomic-result', folded: opts.folded});\n}\n\nexport function InteractiveResultContext() {\n return InteractiveItemContext();\n}\n\nexport type ResultContextEvent<T = Result> = ItemContextEvent<T>;\nexport type InteractiveResultContextEvent = InteractiveItemContextEvent;\n\n/**\n * Retrieves `Result` on a rendered `atomic-result`.\n *\n * This method is useful for building custom result template elements, see [Create a Result List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-result-template-component-example) for more information.\n *\n * You should use the method in the [connectedCallback lifecycle method](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#using_the_lifecycle_callbacks).\n *\n * @param element The element that the event is dispatched to, which must be the child of a rendered \"atomic-result\".\n * @returns A promise that resolves on initialization of the parent \"atomic-result\" element, or rejects when there is no parent \"atomic-result\" element.\n */\nexport function resultContext<T extends Result | FoldedResult = Result>(\n element: Element\n) {\n return itemContext<T>(element, 'atomic-result');\n}\n"],"version":3}
|
@@ -1,38 +0,0 @@
|
|
1
|
-
import { type SearchBox } from '@coveo/headless';
|
2
|
-
import { LitElement } from 'lit';
|
3
|
-
import type { SearchBoxSuggestions, SearchBoxSuggestionsBindings } from "../../common/suggestions/suggestions-types.js";
|
4
|
-
import type { SearchBoxSuggestionsComponent } from "../../../decorators/types.js";
|
5
|
-
import type { Bindings } from '../atomic-search-interface/interfaces.js';
|
6
|
-
/**
|
7
|
-
* The `atomic-search-box-query-suggestions` component can be added as a child of an `atomic-search-box` component, allowing for the configuration of query suggestion behavior.
|
8
|
-
*/
|
9
|
-
export declare class AtomicSearchBoxQuerySuggestions extends LitElement implements SearchBoxSuggestionsComponent<Bindings> {
|
10
|
-
bindings: SearchBoxSuggestionsBindings<SearchBox, Bindings>;
|
11
|
-
error: Error;
|
12
|
-
/**
|
13
|
-
* The SVG icon to display.
|
14
|
-
*
|
15
|
-
* - Use a value that starts with `http://`, `https://`, `./`, or `../`, to fetch and display an icon from a given location.
|
16
|
-
* - Use a value that starts with `assets://`, to display an icon from the Atomic package.
|
17
|
-
* - Use a stringified SVG to display it directly.
|
18
|
-
*/
|
19
|
-
icon?: string;
|
20
|
-
/**
|
21
|
-
* The maximum number of suggestions that will be displayed if the user has typed something into the input field.
|
22
|
-
*/
|
23
|
-
maxWithQuery: number;
|
24
|
-
/**
|
25
|
-
* The maximum number of suggestions that will be displayed initially when the input field is empty.
|
26
|
-
*/
|
27
|
-
maxWithoutQuery: number;
|
28
|
-
connectedCallback(): void;
|
29
|
-
initialize(): SearchBoxSuggestions;
|
30
|
-
private renderItems;
|
31
|
-
private renderItem;
|
32
|
-
render(): import("lit-html").TemplateResult<1>;
|
33
|
-
}
|
34
|
-
declare global {
|
35
|
-
interface HTMLElementTagNameMap {
|
36
|
-
'atomic-search-box-query-suggestions': AtomicSearchBoxQuerySuggestions;
|
37
|
-
}
|
38
|
-
}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|