@coveo/atomic 3.34.0-pre.00dc0c9faa → 3.34.0-pre.011ede392f
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 +0 -4
- package/dist/atomic/components/_index.js +19 -21
- package/dist/atomic/components/analytics-config.js +1 -1
- package/dist/atomic/components/atomic-category-facet.js +1 -1
- package/dist/atomic/components/atomic-facet.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-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-insight-history-toggle.js +2 -2
- package/dist/atomic/components/atomic-insight-history-toggle.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-user-actions-toggle.js +2 -2
- package/dist/atomic/components/atomic-insight-user-actions-toggle.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/{esm/sections-ae00b53a.js → atomic/components/atomic-layout-section-utils.js} +1 -1
- package/dist/atomic/components/atomic-layout-section-utils.js.map +1 -0
- package/dist/atomic/components/atomic-numeric-facet.js +1 -1
- package/dist/atomic/components/atomic-quickview-modal2.js +23 -23
- package/dist/atomic/components/atomic-quickview-modal2.js.map +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-refine-modal2.js +2 -2
- package/dist/atomic/components/atomic-refine-modal2.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-list.js +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-table-placeholder2.js +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-suggestions2.js +1 -1
- package/dist/atomic/components/atomic-search-box.js +5 -11
- 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-sort-dropdown.js +2 -2
- package/dist/atomic/components/atomic-sort-expression.js +1 -1
- package/dist/atomic/components/atomic-tab-manager.js +1 -1
- package/dist/atomic/components/clock.js +2 -2
- package/dist/atomic/components/components/commerce/atomic-commerce-breadbox/atomic-commerce-breadbox.js +17 -32
- package/dist/atomic/components/components/commerce/atomic-product/atomic-product.js +26 -58
- 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 +2 -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/components/commerce/product-template-component-utils/context/interactive-product-context-controller.js +25 -0
- package/dist/atomic/components/components/commerce/product-template-component-utils/context/product-context-controller.js +29 -0
- package/dist/atomic/components/components/common/atomic-layout-section/layout.js +1 -1
- package/dist/atomic/components/components/common/layout/custom-render-controller.js +37 -0
- package/dist/atomic/components/components/common/layout/display-options.js +1 -1
- package/dist/atomic/components/components/common/layout/item-layout-controller.js +103 -0
- package/dist/atomic/components/components/common/layout/{sections.js → item-layout-sections.js} +1 -1
- package/dist/atomic/components/components/common/product-template/product-template-common.js +1 -1
- package/dist/atomic/components/components/common/validate-props-controller/validate-props-controller.js +50 -0
- package/dist/atomic/components/components/insight/atomic-insight-layout/insight-layout.js +1 -1
- package/dist/atomic/components/components/search/atomic-relevance-inspector/atomic-relevance-inspector.js +100 -0
- package/dist/atomic/components/components/search/atomic-search-box-recent-queries/atomic-search-box-recent-queries.js +137 -0
- package/dist/atomic/components/components/search/atomic-search-interface/atomic-search-interface.js +17 -24
- package/dist/atomic/components/components/search/index.js +2 -0
- package/dist/atomic/components/components/search/lazy-index.js +2 -0
- package/dist/atomic/components/display-options.js +1 -1
- package/dist/atomic/components/display-options.js.map +1 -1
- package/dist/atomic/components/global/environment.js +1 -1
- package/dist/atomic/components/index.js.map +1 -1
- package/dist/atomic/components/insight-layout.js +1 -1
- package/dist/atomic/components/insight-layout.js.map +1 -1
- package/dist/atomic/components/{sections2.js → item-layout-sections.js} +1 -1
- package/dist/atomic/components/item-layout-sections.js.map +1 -0
- package/dist/atomic/components/result-template-common.js +1 -1
- package/dist/atomic/components/result-template-common.js.map +1 -1
- 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/components/utils/compare-utils.js +49 -0
- package/dist/atomic/index.esm.js +1 -1
- package/dist/atomic/index.esm.js.map +1 -1
- package/dist/atomic/{p-0c8e7d5f.entry.js → p-0112f957.entry.js} +2 -2
- package/dist/atomic/p-0112f957.entry.js.map +1 -0
- package/dist/atomic/{p-8fdef8a3.entry.js → p-049228f2.entry.js} +2 -2
- package/dist/atomic/p-049228f2.entry.js.map +1 -0
- package/dist/atomic/{p-2caa1859.js → p-0e62bdd6.js} +2 -2
- package/dist/atomic/p-0e62bdd6.js.map +1 -0
- package/dist/atomic/{p-60800b2f.entry.js → p-0ed76e65.entry.js} +2 -2
- package/dist/atomic/{p-5f706e3d.entry.js → p-170c7da6.entry.js} +2 -2
- package/dist/atomic/{p-3857d6a3.entry.js → p-1bbaf206.entry.js} +2 -2
- package/dist/atomic/{p-7c3c5f07.entry.js → p-1ff761e0.entry.js} +2 -2
- package/dist/atomic/p-1ff761e0.entry.js.map +1 -0
- package/dist/atomic/{p-4723ffa5.entry.js → p-20b33c18.entry.js} +2 -2
- package/dist/atomic/{p-7709fba4.js → p-2250f505.js} +2 -2
- package/dist/atomic/p-2250f505.js.map +1 -0
- package/dist/atomic/{p-4069d801.entry.js → p-268ce7ca.entry.js} +2 -2
- package/dist/atomic/p-268ce7ca.entry.js.map +1 -0
- package/dist/atomic/{p-16f6c1f3.entry.js → p-2fb49fe8.entry.js} +2 -2
- package/dist/atomic/{p-13391e75.entry.js → p-3549a469.entry.js} +2 -2
- package/dist/atomic/{p-bd3542d2.entry.js → p-36112c34.entry.js} +2 -2
- package/dist/atomic/p-36112c34.entry.js.map +1 -0
- package/dist/atomic/{p-d6e04719.entry.js → p-373448df.entry.js} +2 -2
- package/dist/atomic/{p-e9dc8e90.entry.js → p-3ec45f9c.entry.js} +2 -2
- package/dist/atomic/p-3ec45f9c.entry.js.map +1 -0
- package/dist/atomic/{p-18684d4c.js → p-4080f740.js} +1 -1
- package/dist/atomic/p-4080f740.js.map +1 -0
- package/dist/atomic/{p-88af4470.entry.js → p-40c1dfcb.entry.js} +2 -2
- package/dist/atomic/{p-475124d2.entry.js → p-464370f7.entry.js} +2 -2
- package/dist/atomic/p-464370f7.entry.js.map +1 -0
- package/dist/atomic/{p-190ddaca.entry.js → p-4cf97b0a.entry.js} +2 -2
- package/dist/atomic/p-4cf97b0a.entry.js.map +1 -0
- package/dist/atomic/{p-20764605.entry.js → p-52d5461a.entry.js} +2 -2
- package/dist/atomic/{p-2e4628bb.entry.js → p-5894d6f6.entry.js} +2 -2
- package/dist/atomic/p-5894d6f6.entry.js.map +1 -0
- package/dist/atomic/{p-78427c6a.entry.js → p-5a9460ab.entry.js} +2 -2
- package/dist/atomic/p-5a9460ab.entry.js.map +1 -0
- package/dist/atomic/{p-fafd5042.entry.js → p-5f2abcb4.entry.js} +2 -2
- package/dist/atomic/p-5f2abcb4.entry.js.map +1 -0
- package/dist/atomic/{p-406a288c.entry.js → p-6078667f.entry.js} +2 -2
- package/dist/atomic/p-62e85c20.entry.js +2 -0
- package/dist/atomic/{p-1ff7a9da.entry.js → p-6a3b139f.entry.js} +2 -2
- package/dist/atomic/p-6a3b139f.entry.js.map +1 -0
- package/dist/atomic/p-6f1bffa2.entry.js +2 -0
- package/dist/atomic/p-6f1bffa2.entry.js.map +1 -0
- package/dist/atomic/{p-93da1f4e.entry.js → p-6f34dd3a.entry.js} +2 -2
- package/dist/atomic/p-6f34dd3a.entry.js.map +1 -0
- package/dist/atomic/{p-aa99e45e.js → p-74373c0a.js} +2 -2
- package/dist/atomic/{p-0c0b8d41.entry.js → p-768b172e.entry.js} +2 -2
- package/dist/atomic/{p-57020985.entry.js → p-77410a85.entry.js} +2 -2
- package/dist/atomic/{p-3cbab25b.entry.js → p-7e971d15.entry.js} +2 -2
- package/dist/atomic/{p-4601eb93.entry.js → p-83d3857f.entry.js} +2 -2
- package/dist/atomic/{p-ee957926.entry.js → p-8ce6badd.entry.js} +2 -2
- package/dist/atomic/p-8ce6badd.entry.js.map +1 -0
- package/dist/atomic/{p-b3f6561d.entry.js → p-8e964890.entry.js} +2 -2
- package/dist/atomic/p-8e964890.entry.js.map +1 -0
- package/dist/atomic/{p-6289adc7.entry.js → p-9239be63.entry.js} +2 -2
- package/dist/atomic/{p-f71b14b2.entry.js → p-9260dd7d.entry.js} +2 -2
- package/dist/atomic/{p-dbf0c5a3.entry.js → p-9564d67d.entry.js} +2 -2
- package/dist/atomic/{p-dbf0c5a3.entry.js.map → p-9564d67d.entry.js.map} +1 -1
- package/dist/atomic/{p-ed8e5c4d.entry.js → p-98dd6df1.entry.js} +2 -2
- package/dist/atomic/{p-3a7a1a00.entry.js → p-99d3a8ce.entry.js} +2 -2
- package/dist/atomic/p-99d3a8ce.entry.js.map +1 -0
- package/dist/atomic/{p-0b5efb51.entry.js → p-a1e5f767.entry.js} +2 -2
- package/dist/atomic/{p-1db20a4a.entry.js → p-a5f66ecd.entry.js} +2 -2
- package/dist/atomic/{p-c9f1790d.entry.js → p-acb1704c.entry.js} +2 -2
- package/dist/atomic/p-acb1704c.entry.js.map +1 -0
- package/dist/atomic/{p-7ec6dd3e.entry.js → p-af1b4924.entry.js} +2 -2
- package/dist/atomic/{p-e398835b.entry.js → p-b2b9e83f.entry.js} +2 -2
- package/dist/atomic/{p-0bdd730f.entry.js → p-b6ae0244.entry.js} +2 -2
- package/dist/atomic/{p-97ce3384.entry.js → p-be2a43f4.entry.js} +2 -2
- package/dist/atomic/{p-0f39889d.entry.js → p-c34f8190.entry.js} +2 -2
- package/dist/atomic/p-c34f8190.entry.js.map +1 -0
- package/dist/atomic/{p-c25f1437.entry.js → p-c41ab197.entry.js} +2 -2
- package/dist/atomic/p-c41ab197.entry.js.map +1 -0
- package/dist/atomic/{p-577d34ba.entry.js → p-c4fb6426.entry.js} +2 -2
- package/dist/atomic/{p-93f1d551.entry.js → p-c6e2939f.entry.js} +2 -2
- package/dist/atomic/p-c6e2939f.entry.js.map +1 -0
- package/dist/atomic/{p-723f76a1.entry.js → p-ca8c87ce.entry.js} +2 -2
- package/dist/atomic/{p-723f76a1.entry.js.map → p-ca8c87ce.entry.js.map} +1 -1
- package/dist/atomic/{p-852cc16d.entry.js → p-cacb7fd8.entry.js} +2 -2
- package/dist/atomic/p-cacb7fd8.entry.js.map +1 -0
- package/dist/atomic/{p-9c7dbbdf.js → p-cc2b2231.js} +1 -1
- package/dist/atomic/p-cc2b2231.js.map +1 -0
- package/dist/atomic/{p-a5714bc4.entry.js → p-d211a422.entry.js} +2 -2
- package/dist/atomic/{p-9faad55b.entry.js → p-dc128135.entry.js} +2 -2
- package/dist/atomic/{p-97748161.js → p-dc28ee14.js} +1 -1
- package/dist/{esm/sections-d787040b.js.map → atomic/p-dc28ee14.js.map} +1 -1
- package/dist/atomic/{p-c280cd05.js → p-e1cc5150.js} +1 -1
- package/dist/atomic/{p-945ddd53.entry.js → p-e1dbe31d.entry.js} +2 -2
- package/dist/atomic/p-e1dbe31d.entry.js.map +1 -0
- package/dist/atomic/{p-27b8404c.js → p-e62fc40e.js} +2 -2
- package/dist/atomic/p-e62fc40e.js.map +1 -0
- package/dist/atomic/{p-d1795580.entry.js → p-e7a25b00.entry.js} +2 -2
- package/dist/atomic/{p-a4d277c7.entry.js → p-e983d6cc.entry.js} +2 -2
- package/dist/atomic/p-e983d6cc.entry.js.map +1 -0
- package/dist/atomic/{p-dbcef3a9.entry.js → p-ed603210.entry.js} +2 -2
- package/dist/atomic/p-ed603210.entry.js.map +1 -0
- package/dist/atomic/{p-9337e1eb.entry.js → p-f251fa62.entry.js} +2 -2
- package/dist/atomic/{p-a71f04f4.entry.js → p-ff91ba6a.entry.js} +2 -2
- package/dist/cjs/_index.cjs.js +20 -20
- package/dist/cjs/_loader.cjs.js +1 -1
- package/dist/cjs/{analytics-config-5b0864ae.js → analytics-config-bc01ed6d.js} +2 -2
- package/dist/cjs/{analytics-config-5b0864ae.js.map → analytics-config-bc01ed6d.js.map} +1 -1
- package/dist/cjs/atomic-category-facet.cjs.entry.js +1 -1
- package/dist/cjs/atomic-facet.cjs.entry.js +1 -1
- package/dist/cjs/atomic-field-condition.cjs.entry.js +4 -4
- package/dist/cjs/atomic-field-condition.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-folded-result-list.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-insight-folded-result-list.cjs.entry.js +2 -2
- package/dist/cjs/atomic-insight-history-toggle.cjs.entry.js +2 -2
- package/dist/cjs/atomic-insight-history-toggle.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-interface.cjs.entry.js +3 -3
- package/dist/cjs/atomic-insight-layout.cjs.entry.js +2 -2
- 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-children-template.cjs.entry.js +2 -2
- package/dist/cjs/atomic-insight-result-list.cjs.entry.js +2 -2
- 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-result-template.cjs.entry.js +2 -2
- package/dist/cjs/atomic-insight-result.cjs.entry.js +2 -2
- package/dist/cjs/atomic-insight-user-actions-toggle.cjs.entry.js +2 -2
- package/dist/cjs/atomic-insight-user-actions-toggle.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-ipx-recs-list.cjs.entry.js +2 -2
- 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/{sections-4b4af2f8.js → atomic-layout-section-utils-08b4fbcd.js} +1 -1
- package/dist/cjs/atomic-layout-section-utils-08b4fbcd.js.map +1 -0
- package/dist/cjs/atomic-numeric-facet.cjs.entry.js +1 -1
- package/dist/cjs/atomic-quickview-modal.cjs.entry.js +23 -23
- package/dist/cjs/atomic-quickview-modal.cjs.entry.js.map +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-recs-list.cjs.entry.js +2 -2
- package/dist/cjs/atomic-recs-result-template.cjs.entry.js +2 -2
- package/dist/cjs/atomic-recs-result.cjs.entry.js +2 -2
- package/dist/cjs/atomic-refine-modal.cjs.entry.js +4 -4
- package/dist/cjs/atomic-refine-modal.cjs.entry.js.map +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-template.cjs.entry.js +2 -2
- 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-list.cjs.entry.js +3 -3
- 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-placeholder_2.cjs.entry.js +3 -3
- 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-template.cjs.entry.js +2 -2
- 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 +2 -2
- package/dist/cjs/atomic-result.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-search-box-query-suggestions.cjs.entry.js +76 -0
- package/dist/cjs/atomic-search-box-query-suggestions.cjs.entry.js.map +1 -0
- package/dist/cjs/atomic-search-box.cjs.entry.js +3 -3
- 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-sort-dropdown.cjs.entry.js +2 -2
- package/dist/cjs/atomic-sort-expression.cjs.entry.js +1 -1
- package/dist/cjs/atomic-tab-manager.cjs.entry.js +1 -1
- package/dist/cjs/atomic.cjs.js +1 -1
- package/dist/cjs/clock-7aeb19d0.js +7 -0
- package/dist/cjs/clock-7aeb19d0.js.map +1 -0
- package/dist/cjs/{display-options-14f05862.js → display-options-69531e8d.js} +4 -4
- package/dist/cjs/display-options-69531e8d.js.map +1 -0
- package/dist/cjs/index-757bc886.js +2 -6
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/{insight-layout-355a94dd.js → insight-layout-b6ff92fd.js} +11 -11
- package/dist/cjs/insight-layout-b6ff92fd.js.map +1 -0
- package/dist/cjs/{sections-fbb93b53.js → item-layout-sections-b09ba4b3.js} +1 -1
- package/dist/cjs/item-layout-sections-b09ba4b3.js.map +1 -0
- package/dist/cjs/{result-template-common-88359dad.js → result-template-common-84bd4057.js} +3 -3
- package/dist/cjs/result-template-common-84bd4057.js.map +1 -0
- package/dist/cjs/{result-template-decorators-432d11a9.js → stencil-result-template-decorators-28b05aaf.js} +6 -2
- package/dist/cjs/stencil-result-template-decorators-28b05aaf.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-64be937d.js → analytics-config-8e41e174.js} +2 -2
- package/dist/esm/{analytics-config-64be937d.js.map → analytics-config-8e41e174.js.map} +1 -1
- package/dist/esm/atomic-category-facet.entry.js +1 -1
- package/dist/esm/atomic-facet.entry.js +1 -1
- package/dist/esm/atomic-field-condition.entry.js +3 -3
- package/dist/esm/atomic-field-condition.entry.js.map +1 -1
- package/dist/esm/atomic-folded-result-list.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-insight-folded-result-list.entry.js +2 -2
- package/dist/esm/atomic-insight-history-toggle.entry.js +2 -2
- package/dist/esm/atomic-insight-history-toggle.entry.js.map +1 -1
- package/dist/esm/atomic-insight-interface.entry.js +3 -3
- package/dist/esm/atomic-insight-layout.entry.js +2 -2
- 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-children-template.entry.js +2 -2
- package/dist/esm/atomic-insight-result-list.entry.js +2 -2
- 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-result-template.entry.js +2 -2
- package/dist/esm/atomic-insight-result.entry.js +2 -2
- package/dist/esm/atomic-insight-user-actions-toggle.entry.js +2 -2
- package/dist/esm/atomic-insight-user-actions-toggle.entry.js.map +1 -1
- package/dist/esm/atomic-ipx-recs-list.entry.js +2 -2
- 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/{atomic/components/sections.js → esm/atomic-layout-section-utils-c8ca7445.js} +1 -1
- package/dist/esm/atomic-layout-section-utils-c8ca7445.js.map +1 -0
- package/dist/esm/atomic-numeric-facet.entry.js +1 -1
- package/dist/esm/atomic-quickview-modal.entry.js +23 -23
- package/dist/esm/atomic-quickview-modal.entry.js.map +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-recs-list.entry.js +2 -2
- package/dist/esm/atomic-recs-result-template.entry.js +2 -2
- package/dist/esm/atomic-recs-result.entry.js +2 -2
- package/dist/esm/atomic-refine-modal.entry.js +2 -2
- package/dist/esm/atomic-refine-modal.entry.js.map +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-template.entry.js +2 -2
- 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-list.entry.js +3 -3
- 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-placeholder_2.entry.js +3 -3
- 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-template.entry.js +2 -2
- 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 +2 -2
- package/dist/esm/atomic-result.entry.js.map +1 -1
- package/dist/esm/atomic-search-box-query-suggestions.entry.js +72 -0
- package/dist/esm/atomic-search-box-query-suggestions.entry.js.map +1 -0
- package/dist/esm/atomic-search-box.entry.js +3 -3
- 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-sort-dropdown.entry.js +2 -2
- package/dist/esm/atomic-sort-expression.entry.js +1 -1
- package/dist/esm/atomic-tab-manager.entry.js +1 -1
- package/dist/esm/atomic.js +1 -1
- package/dist/esm/clock-b1f5d7f7.js +5 -0
- package/dist/esm/clock-b1f5d7f7.js.map +1 -0
- package/dist/esm/{display-options-c16840c6.js → display-options-1199eed5.js} +2 -2
- package/dist/esm/display-options-1199eed5.js.map +1 -0
- package/dist/esm/index-3f35faca.js +2 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/{insight-layout-776b87f2.js → insight-layout-a1e4b795.js} +2 -2
- package/dist/esm/insight-layout-a1e4b795.js.map +1 -0
- package/dist/esm/{sections-d787040b.js → item-layout-sections-8afb5049.js} +1 -1
- package/dist/esm/item-layout-sections-8afb5049.js.map +1 -0
- package/dist/esm/{result-template-common-ac9fecab.js → result-template-common-995b94f8.js} +2 -2
- package/dist/esm/result-template-common-995b94f8.js.map +1 -0
- package/dist/esm/{result-template-decorators-2ed76ea9.js → stencil-result-template-decorators-f989bc6b.js} +6 -2
- package/dist/esm/stencil-result-template-decorators-f989bc6b.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 -3
- package/dist/types/components/commerce/atomic-product/atomic-product.d.ts +5 -17
- package/dist/types/components/commerce/product-template-component-utils/context/fetch-product-context.d.ts +12 -0
- package/dist/types/components/commerce/product-template-component-utils/context/interactive-product-context-controller.d.ts +27 -0
- package/dist/types/components/commerce/product-template-component-utils/context/product-context-controller.d.ts +33 -0
- package/dist/types/components/commerce/product-template-component-utils/{stencil-product-template-decorators.d.ts → context/stencil-product-template-decorators.d.ts} +1 -1
- package/dist/types/components/common/atomic-layout-section/atomic-layout-section.d.ts +1 -1
- package/dist/types/components/common/facets/facet-search/facet-search-input-guard.d.ts +1 -1
- package/dist/types/components/common/layout/custom-render-controller.d.ts +25 -0
- package/dist/types/components/common/layout/item-layout-controller.d.ts +47 -0
- package/dist/types/components/common/no-items/guard.d.ts +1 -1
- package/dist/types/components/common/refine-modal/guard.d.ts +1 -1
- package/dist/types/components/common/smart-snippets/atomic-smart-snippet-source.d.ts +1 -1
- package/dist/types/components/common/sort/sort-guard.d.ts +1 -1
- package/dist/types/components/common/validate-props-controller/validate-props-controller.d.ts +32 -0
- package/dist/types/components/search/atomic-relevance-inspector/atomic-relevance-inspector.d.ts +18 -8
- package/dist/types/components/search/atomic-result/atomic-result.d.ts +1 -1
- package/dist/types/components/search/atomic-search-box-recent-queries/atomic-search-box-recent-queries.d.ts +45 -0
- package/dist/types/components/search/atomic-search-interface/atomic-search-interface.d.ts +6 -3
- package/dist/types/components/search/index.d.ts +2 -0
- package/dist/types/components/search/result-template-component-utils/context/fetch-result-context.d.ts +8 -0
- package/dist/types/components/search/result-template-component-utils/context/interactive-result-context-controller.d.ts +12 -0
- package/dist/types/components/search/result-template-component-utils/context/result-context-controller.d.ts +18 -0
- package/dist/types/components/search/{result-template-components/result-template-decorators.d.ts → result-template-component-utils/context/stencil-result-template-decorators.d.ts} +6 -2
- package/dist/types/components.d.ts +0 -102
- package/dist/types/directives/hierarchical-path.d.ts +1 -1
- package/dist/types/index.d.ts +3 -3
- package/dist/types/utils/compare-utils.d.ts +9 -0
- package/docs/atomic-docs.json +1 -185
- package/package.json +7 -7
- package/dist/atomic/components/atomic-relevance-inspector.d.ts +0 -11
- package/dist/atomic/components/atomic-relevance-inspector.js +0 -53
- package/dist/atomic/components/atomic-relevance-inspector.js.map +0 -1
- package/dist/atomic/components/atomic-search-box-recent-queries.d.ts +0 -11
- package/dist/atomic/components/atomic-search-box-recent-queries.js +0 -8
- package/dist/atomic/components/atomic-search-box-recent-queries.js.map +0 -1
- package/dist/atomic/components/atomic-search-box-recent-queries2.js +0 -183
- package/dist/atomic/components/atomic-search-box-recent-queries2.js.map +0 -1
- package/dist/atomic/components/components/common/item-list/fetch-item-context.js +0 -15
- package/dist/atomic/components/decorators/commerce/product-template-decorators.js +0 -68
- package/dist/atomic/components/result-template-decorators.js.map +0 -1
- package/dist/atomic/components/sections.js.map +0 -1
- package/dist/atomic/components/sections2.js.map +0 -1
- package/dist/atomic/p-0c8e7d5f.entry.js.map +0 -1
- package/dist/atomic/p-0f39889d.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-1ff7a9da.entry.js.map +0 -1
- package/dist/atomic/p-250f34d4.entry.js +0 -2
- package/dist/atomic/p-27b8404c.js.map +0 -1
- package/dist/atomic/p-2caa1859.js.map +0 -1
- package/dist/atomic/p-2e4628bb.entry.js.map +0 -1
- package/dist/atomic/p-3a7a1a00.entry.js.map +0 -1
- package/dist/atomic/p-4069d801.entry.js.map +0 -1
- package/dist/atomic/p-475124d2.entry.js.map +0 -1
- package/dist/atomic/p-7709fba4.js.map +0 -1
- package/dist/atomic/p-78427c6a.entry.js.map +0 -1
- package/dist/atomic/p-7c3c5f07.entry.js.map +0 -1
- package/dist/atomic/p-852cc16d.entry.js.map +0 -1
- package/dist/atomic/p-8fdef8a3.entry.js.map +0 -1
- package/dist/atomic/p-93da1f4e.entry.js.map +0 -1
- package/dist/atomic/p-93f1d551.entry.js.map +0 -1
- package/dist/atomic/p-945ddd53.entry.js.map +0 -1
- package/dist/atomic/p-97748161.js.map +0 -1
- package/dist/atomic/p-9c7dbbdf.js.map +0 -1
- package/dist/atomic/p-a4d277c7.entry.js.map +0 -1
- package/dist/atomic/p-b3f6561d.entry.js.map +0 -1
- package/dist/atomic/p-bd3542d2.entry.js.map +0 -1
- package/dist/atomic/p-c25f1437.entry.js.map +0 -1
- package/dist/atomic/p-c9f1790d.entry.js.map +0 -1
- package/dist/atomic/p-dbcef3a9.entry.js.map +0 -1
- package/dist/atomic/p-de687bed.entry.js +0 -2
- package/dist/atomic/p-de687bed.entry.js.map +0 -1
- package/dist/atomic/p-df4397ab.entry.js +0 -2
- package/dist/atomic/p-df4397ab.entry.js.map +0 -1
- package/dist/atomic/p-e9dc8e90.entry.js.map +0 -1
- package/dist/atomic/p-ee957926.entry.js.map +0 -1
- package/dist/atomic/p-fafd5042.entry.js.map +0 -1
- package/dist/cjs/atomic-relevance-inspector.cjs.entry.js +0 -38
- package/dist/cjs/atomic-relevance-inspector.cjs.entry.js.map +0 -1
- package/dist/cjs/atomic-search-box-query-suggestions_2.cjs.entry.js +0 -234
- package/dist/cjs/atomic-search-box-query-suggestions_2.cjs.entry.js.map +0 -1
- package/dist/cjs/clock-f03ff827.js +0 -7
- package/dist/cjs/clock-f03ff827.js.map +0 -1
- package/dist/cjs/display-options-14f05862.js.map +0 -1
- package/dist/cjs/insight-layout-355a94dd.js.map +0 -1
- package/dist/cjs/result-template-common-88359dad.js.map +0 -1
- package/dist/cjs/result-template-decorators-432d11a9.js.map +0 -1
- package/dist/cjs/sections-4b4af2f8.js.map +0 -1
- package/dist/cjs/sections-fbb93b53.js.map +0 -1
- package/dist/esm/atomic-relevance-inspector.entry.js +0 -34
- package/dist/esm/atomic-relevance-inspector.entry.js.map +0 -1
- package/dist/esm/atomic-search-box-query-suggestions_2.entry.js +0 -229
- package/dist/esm/atomic-search-box-query-suggestions_2.entry.js.map +0 -1
- package/dist/esm/clock-add3e9a5.js +0 -5
- package/dist/esm/clock-add3e9a5.js.map +0 -1
- package/dist/esm/display-options-c16840c6.js.map +0 -1
- package/dist/esm/insight-layout-776b87f2.js.map +0 -1
- package/dist/esm/result-template-common-ac9fecab.js.map +0 -1
- package/dist/esm/result-template-decorators-2ed76ea9.js.map +0 -1
- package/dist/esm/sections-ae00b53a.js.map +0 -1
- package/dist/types/components/search/search-box-suggestions/atomic-search-box-recent-queries/atomic-search-box-recent-queries.d.ts +0 -37
- package/dist/types/decorators/commerce/product-template-decorators.d.ts +0 -68
- /package/dist/atomic/components/components/common/atomic-layout-section/{sections.js → atomic-layout-section-utils.js} +0 -0
- /package/dist/atomic/{p-60800b2f.entry.js.map → p-0ed76e65.entry.js.map} +0 -0
- /package/dist/atomic/{p-5f706e3d.entry.js.map → p-170c7da6.entry.js.map} +0 -0
- /package/dist/atomic/{p-3857d6a3.entry.js.map → p-1bbaf206.entry.js.map} +0 -0
- /package/dist/atomic/{p-4723ffa5.entry.js.map → p-20b33c18.entry.js.map} +0 -0
- /package/dist/atomic/{p-16f6c1f3.entry.js.map → p-2fb49fe8.entry.js.map} +0 -0
- /package/dist/atomic/{p-13391e75.entry.js.map → p-3549a469.entry.js.map} +0 -0
- /package/dist/atomic/{p-d6e04719.entry.js.map → p-373448df.entry.js.map} +0 -0
- /package/dist/atomic/{p-88af4470.entry.js.map → p-40c1dfcb.entry.js.map} +0 -0
- /package/dist/atomic/{p-20764605.entry.js.map → p-52d5461a.entry.js.map} +0 -0
- /package/dist/atomic/{p-406a288c.entry.js.map → p-6078667f.entry.js.map} +0 -0
- /package/dist/atomic/{p-250f34d4.entry.js.map → p-62e85c20.entry.js.map} +0 -0
- /package/dist/atomic/{p-aa99e45e.js.map → p-74373c0a.js.map} +0 -0
- /package/dist/atomic/{p-0c0b8d41.entry.js.map → p-768b172e.entry.js.map} +0 -0
- /package/dist/atomic/{p-57020985.entry.js.map → p-77410a85.entry.js.map} +0 -0
- /package/dist/atomic/{p-3cbab25b.entry.js.map → p-7e971d15.entry.js.map} +0 -0
- /package/dist/atomic/{p-4601eb93.entry.js.map → p-83d3857f.entry.js.map} +0 -0
- /package/dist/atomic/{p-6289adc7.entry.js.map → p-9239be63.entry.js.map} +0 -0
- /package/dist/atomic/{p-f71b14b2.entry.js.map → p-9260dd7d.entry.js.map} +0 -0
- /package/dist/atomic/{p-ed8e5c4d.entry.js.map → p-98dd6df1.entry.js.map} +0 -0
- /package/dist/atomic/{p-0b5efb51.entry.js.map → p-a1e5f767.entry.js.map} +0 -0
- /package/dist/atomic/{p-1db20a4a.entry.js.map → p-a5f66ecd.entry.js.map} +0 -0
- /package/dist/atomic/{p-7ec6dd3e.entry.js.map → p-af1b4924.entry.js.map} +0 -0
- /package/dist/atomic/{p-e398835b.entry.js.map → p-b2b9e83f.entry.js.map} +0 -0
- /package/dist/atomic/{p-0bdd730f.entry.js.map → p-b6ae0244.entry.js.map} +0 -0
- /package/dist/atomic/{p-97ce3384.entry.js.map → p-be2a43f4.entry.js.map} +0 -0
- /package/dist/atomic/{p-577d34ba.entry.js.map → p-c4fb6426.entry.js.map} +0 -0
- /package/dist/atomic/{p-a5714bc4.entry.js.map → p-d211a422.entry.js.map} +0 -0
- /package/dist/atomic/{p-9faad55b.entry.js.map → p-dc128135.entry.js.map} +0 -0
- /package/dist/atomic/{p-c280cd05.js.map → p-e1cc5150.js.map} +0 -0
- /package/dist/atomic/{p-d1795580.entry.js.map → p-e7a25b00.entry.js.map} +0 -0
- /package/dist/atomic/{p-9337e1eb.entry.js.map → p-f251fa62.entry.js.map} +0 -0
- /package/dist/atomic/{p-a71f04f4.entry.js.map → p-ff91ba6a.entry.js.map} +0 -0
- /package/dist/types/components/common/atomic-layout-section/{sections.d.ts → atomic-layout-section-utils.d.ts} +0 -0
- /package/dist/types/components/common/layout/{sections.d.ts → item-layout-sections.d.ts} +0 -0
@@ -7,9 +7,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
7
7
|
import { buildProductListing, buildSearch, ProductTemplatesHelpers, } from '@coveo/headless/commerce';
|
8
8
|
import { html, LitElement, nothing } from 'lit';
|
9
9
|
import { customElement, property, state } from 'lit/decorators.js';
|
10
|
+
import { createProductContextController } from "../product-template-component-utils/context/product-context-controller";
|
10
11
|
import { bindingGuard } from "../../../decorators/binding-guard";
|
11
12
|
import { bindings } from "../../../decorators/bindings";
|
12
|
-
import { createProductContextController } from "../../../decorators/commerce/product-template-decorators";
|
13
13
|
import { errorGuard } from "../../../decorators/error-guard";
|
14
14
|
import { withTailwindStyles } from "../../../decorators/with-tailwind-styles";
|
15
15
|
import { getFieldValueCaption } from '../../../utils/field-utils';
|
@@ -7,9 +7,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
7
7
|
import { html, LitElement } from 'lit';
|
8
8
|
import { customElement, property, state } from 'lit/decorators.js';
|
9
9
|
import { when } from 'lit/directives/when.js';
|
10
|
+
import { createProductContextController } from "../product-template-component-utils/context/product-context-controller.js";
|
10
11
|
import { bindingGuard } from "../../../decorators/binding-guard.js";
|
11
12
|
import { bindings } from "../../../decorators/bindings.js";
|
12
|
-
import { createProductContextController } from "../../../decorators/commerce/product-template-decorators.js";
|
13
13
|
import { errorGuard } from "../../../decorators/error-guard.js";
|
14
14
|
import { LightDomMixin } from "../../../mixins/light-dom.js";
|
15
15
|
import { defaultNumberFormatter, } from '../../common/formats/format-common.js';
|
package/dist/atomic/components/components/commerce/atomic-product-price/atomic-product-price.js
CHANGED
@@ -7,10 +7,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
7
7
|
import { buildContext, } from '@coveo/headless/commerce';
|
8
8
|
import { css, html, LitElement } from 'lit';
|
9
9
|
import { customElement, state } from 'lit/decorators.js';
|
10
|
+
import { createProductContextController } from "../product-template-component-utils/context/product-context-controller.js";
|
10
11
|
import { bindStateToController } from "../../../decorators/bind-state.js";
|
11
12
|
import { bindingGuard } from "../../../decorators/binding-guard.js";
|
12
13
|
import { bindings } from "../../../decorators/bindings.js";
|
13
|
-
import { createProductContextController } from "../../../decorators/commerce/product-template-decorators.js";
|
14
14
|
import { errorGuard } from "../../../decorators/error-guard.js";
|
15
15
|
import { multiClassMap, tw } from "../../../directives/multi-class-map.js";
|
16
16
|
import { LightDomMixin } from "../../../mixins/light-dom.js";
|
package/dist/atomic/components/components/commerce/atomic-product-rating/atomic-product-rating.js
CHANGED
@@ -8,11 +8,11 @@ import { ProductTemplatesHelpers } from '@coveo/headless/commerce';
|
|
8
8
|
import { html, LitElement } from 'lit';
|
9
9
|
import { customElement, property, state } from 'lit/decorators.js';
|
10
10
|
import { when } from 'lit/directives/when.js';
|
11
|
+
import { createProductContextController } from "../product-template-component-utils/context/product-context-controller.js";
|
11
12
|
import ratingStyles from "../../common/atomic-rating/atomic-rating.tw.css.js";
|
12
13
|
import { computeNumberOfStars } from "../../common/atomic-rating/rating-utils.js";
|
13
14
|
import { bindingGuard } from "../../../decorators/binding-guard";
|
14
15
|
import { bindings } from "../../../decorators/bindings.js";
|
15
|
-
import { createProductContextController } from "../../../decorators/commerce/product-template-decorators.js";
|
16
16
|
import { errorGuard } from "../../../decorators/error-guard";
|
17
17
|
import { LightDomMixin } from "../../../mixins/light-dom";
|
18
18
|
const Star = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\">\n <path\n d=\"m 2.6226137,7.5483827 -1.73646599,-1.67659 c -0.58287,-0.56277 -0.2895686,-1.54878 0.50612799,-1.70148 l 2.630348,-0.50477 c 0.31897,-0.06121 0.58834,-0.27352 0.72239,-0.56935 l 0.84414,-1.86293 c 0.35481,-0.78302702 1.46689,-0.78302802 1.8217,0 l 0.84414,1.86293 c 0.13405,0.29583 0.40342,0.50814 0.72239,0.56935 l 2.6303203,0.50477 c 0.7957,0.1527 1.089,1.13871 0.5062,1.70148 l -1.73651,1.67659 c -0.23632,0.22817 -0.34551,0.55786 -0.2921,0.88198 l 0.45461,2.7587403 c 0.1357,0.824 -0.7386003,1.4416 -1.4698203,1.0382 l -2.087,-1.1515 c -0.30069,-0.1659 -0.66547,-0.1659 -0.96616,0 l -2.087,1.1515 c -0.73122,0.4034 -1.60555,-0.2142 -1.46978,-1.0382 l 0.45457,-2.7587403 c 0.05341,-0.32412 -0.05578,-0.65381 -0.2921,-0.88198 z\"\n stroke-width=\"0.8125\"\n />\n</svg>";
|
package/dist/atomic/components/components/commerce/atomic-product-text/atomic-product-text.js
CHANGED
@@ -8,10 +8,10 @@ import { HighlightUtils, ProductTemplatesHelpers, } from '@coveo/headless/commer
|
|
8
8
|
import { html, LitElement, nothing } from 'lit';
|
9
9
|
import { customElement, property, state } from 'lit/decorators.js';
|
10
10
|
import { when } from 'lit/directives/when.js';
|
11
|
+
import { createProductContextController } from "../product-template-component-utils/context/product-context-controller.js";
|
11
12
|
import { booleanConverter } from "../../../converters/boolean-converter";
|
12
13
|
import { bindingGuard } from "../../../decorators/binding-guard";
|
13
14
|
import { bindings } from "../../../decorators/bindings";
|
14
|
-
import { createProductContextController } from "../../../decorators/commerce/product-template-decorators.js";
|
15
15
|
import { errorGuard } from "../../../decorators/error-guard";
|
16
16
|
import { getFieldValueCaption } from '../../../utils/field-utils';
|
17
17
|
import { renderItemTextFallback } from '../../common/item-text/item-text-fallback.js';
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import { InteractiveItemContextController } from "../../../common/item-list/context/interactive-item-context-controller";
|
2
|
+
/**
|
3
|
+
* Creates a [Lit reactive controller](https://lit.dev/docs/composition/controllers/) for managing interactive product context in product template components.
|
4
|
+
*
|
5
|
+
* @param host - The Lit component instance
|
6
|
+
* @returns InteractiveItemContextController instance
|
7
|
+
*
|
8
|
+
* @example
|
9
|
+
* ```typescript
|
10
|
+
* @customElement('my-interactive-product-component')
|
11
|
+
* export class MyInteractiveProductComponent extends LitElement {
|
12
|
+
* private interactiveProductController = createInteractiveProductContextController(this);
|
13
|
+
*
|
14
|
+
* @state() product!: Product;
|
15
|
+
*
|
16
|
+
* render() {
|
17
|
+
* this.product = this.interactiveProductController.interactiveItem;
|
18
|
+
* return html`<div>${this.product?.ec_name}</div>`;
|
19
|
+
* }
|
20
|
+
* }
|
21
|
+
* ```
|
22
|
+
*/
|
23
|
+
export function createInteractiveProductContextController(host) {
|
24
|
+
return new InteractiveItemContextController(host);
|
25
|
+
}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import { ItemContextController, } from "../../../common/item-list/context/item-context-controller";
|
2
|
+
/**
|
3
|
+
* Creates a [Lit reactive controller](https://lit.dev/docs/composition/controllers/) for managing product context in product template components.
|
4
|
+
*
|
5
|
+
* @param host - The Lit component instance
|
6
|
+
* @param options - Configuration options
|
7
|
+
* @returns ItemContextController instance configured for atomic-product
|
8
|
+
*
|
9
|
+
* @example
|
10
|
+
* ```typescript
|
11
|
+
* @customElement('my-product-component')
|
12
|
+
* export class MyProductComponent extends LitElement {
|
13
|
+
* private productController = createProductContextController(this);
|
14
|
+
*
|
15
|
+
* @state() product!: Product;
|
16
|
+
*
|
17
|
+
* render() {
|
18
|
+
* this.product = this.productController.item;
|
19
|
+
* return html`<div>${this.product?.ec_name}</div>`;
|
20
|
+
* }
|
21
|
+
* }
|
22
|
+
* ```
|
23
|
+
*/
|
24
|
+
export function createProductContextController(host, options = {}) {
|
25
|
+
return new ItemContextController(host, {
|
26
|
+
parentName: 'atomic-product',
|
27
|
+
folded: options.folded ?? false,
|
28
|
+
});
|
29
|
+
}
|
@@ -0,0 +1,37 @@
|
|
1
|
+
/**
|
2
|
+
* A reactive controller that manages custom rendering function execution for item components.
|
3
|
+
*/
|
4
|
+
export class CustomRenderController {
|
5
|
+
constructor(host, options) {
|
6
|
+
this.hasExecutedRenderFunction = false;
|
7
|
+
this.options = {
|
8
|
+
linkContainerRef: () => undefined,
|
9
|
+
onRenderComplete: () => { },
|
10
|
+
...options,
|
11
|
+
};
|
12
|
+
host.addController(this);
|
13
|
+
}
|
14
|
+
hostConnected() {
|
15
|
+
this.resetRenderState();
|
16
|
+
}
|
17
|
+
hostUpdated() {
|
18
|
+
this.executeRenderFunction();
|
19
|
+
}
|
20
|
+
resetRenderState() {
|
21
|
+
this.hasExecutedRenderFunction = false;
|
22
|
+
}
|
23
|
+
executeRenderFunction() {
|
24
|
+
const renderingFunction = this.options.renderingFunction();
|
25
|
+
const itemData = this.options.itemData();
|
26
|
+
const rootElementRef = this.options.rootElementRef();
|
27
|
+
if (!renderingFunction ||
|
28
|
+
!itemData ||
|
29
|
+
!rootElementRef ||
|
30
|
+
this.hasExecutedRenderFunction) {
|
31
|
+
return;
|
32
|
+
}
|
33
|
+
const customRenderOutput = renderingFunction(itemData, rootElementRef, this.options.linkContainerRef());
|
34
|
+
this.options.onRenderComplete(rootElementRef, customRenderOutput);
|
35
|
+
this.hasExecutedRenderFunction = true;
|
36
|
+
}
|
37
|
+
}
|
@@ -0,0 +1,103 @@
|
|
1
|
+
import { ItemLayout, } from './display-options';
|
2
|
+
/**
|
3
|
+
* A reactive controller that manages layout creation and class application for item components.
|
4
|
+
*/
|
5
|
+
export class ItemLayoutController {
|
6
|
+
constructor(host, options) {
|
7
|
+
this.layoutInstance = null;
|
8
|
+
this.host = host;
|
9
|
+
this.options = {
|
10
|
+
...options,
|
11
|
+
};
|
12
|
+
host.addController(this);
|
13
|
+
}
|
14
|
+
hostConnected() {
|
15
|
+
this.createLayout();
|
16
|
+
}
|
17
|
+
hostUpdated() {
|
18
|
+
this.applyLayoutClasses();
|
19
|
+
}
|
20
|
+
/**
|
21
|
+
* Gets the current layout instance
|
22
|
+
*/
|
23
|
+
getLayout() {
|
24
|
+
return this.layoutInstance;
|
25
|
+
}
|
26
|
+
/**
|
27
|
+
* Gets combined layout and extra classes
|
28
|
+
*/
|
29
|
+
getCombinedClasses(additionalContent) {
|
30
|
+
const layout = this.getLayout();
|
31
|
+
const layoutClasses = layout ? layout.getClasses(additionalContent) : [];
|
32
|
+
const itemClasses = this.options
|
33
|
+
.itemClasses()
|
34
|
+
.split(/\s+/)
|
35
|
+
.filter((c) => c);
|
36
|
+
return [...layoutClasses, ...itemClasses];
|
37
|
+
}
|
38
|
+
/**
|
39
|
+
* Applies layout classes to a specific element (useful for custom rendering)
|
40
|
+
*/
|
41
|
+
applyLayoutClassesToElement(element, additionalContent) {
|
42
|
+
const layout = this.getLayout();
|
43
|
+
if (!layout) {
|
44
|
+
return;
|
45
|
+
}
|
46
|
+
const classes = this.getCombinedClasses(additionalContent);
|
47
|
+
if (classes.length > 0) {
|
48
|
+
element.classList.add(...classes);
|
49
|
+
}
|
50
|
+
}
|
51
|
+
applyLayoutClasses() {
|
52
|
+
const layout = this.getLayout();
|
53
|
+
if (!layout) {
|
54
|
+
return;
|
55
|
+
}
|
56
|
+
const classes = this.getCombinedClasses();
|
57
|
+
const root = this.host.shadowRoot?.querySelector('.result-root');
|
58
|
+
if (!root || classes.length === 0) {
|
59
|
+
return;
|
60
|
+
}
|
61
|
+
if (this.hasCustomRenderFunction()) {
|
62
|
+
this.observeAndApplyClasses(root, classes);
|
63
|
+
}
|
64
|
+
else {
|
65
|
+
this.addClassesToElements(root, classes);
|
66
|
+
}
|
67
|
+
}
|
68
|
+
createLayout() {
|
69
|
+
const content = this.options.content();
|
70
|
+
if (!content) {
|
71
|
+
console.warn(`${this.options.elementPrefix}: content property is undefined. Cannot create layout.`, this.host);
|
72
|
+
this.layoutInstance = null;
|
73
|
+
return;
|
74
|
+
}
|
75
|
+
const config = this.options.layoutConfig();
|
76
|
+
this.layoutInstance = new ItemLayout(content.children, config.display, config.density, config.imageSize);
|
77
|
+
}
|
78
|
+
hasCustomRenderFunction() {
|
79
|
+
return this.options.renderingFunction() !== undefined;
|
80
|
+
}
|
81
|
+
addClassesToElements(root, classes) {
|
82
|
+
if (classes.length === 0) {
|
83
|
+
return;
|
84
|
+
}
|
85
|
+
const elements = root.querySelectorAll('*');
|
86
|
+
elements.forEach((element) => {
|
87
|
+
const tagName = element.tagName.toLowerCase();
|
88
|
+
if (tagName.startsWith(`${this.options.elementPrefix}-`)) {
|
89
|
+
element.classList.add(...classes);
|
90
|
+
}
|
91
|
+
});
|
92
|
+
}
|
93
|
+
observeAndApplyClasses(root, classes) {
|
94
|
+
const observer = new MutationObserver((mutations) => {
|
95
|
+
const hasNewElements = mutations.some((mutation) => mutation.type === 'childList' && mutation.addedNodes.length > 0);
|
96
|
+
if (hasNewElements) {
|
97
|
+
this.addClassesToElements(root, classes);
|
98
|
+
observer.disconnect();
|
99
|
+
}
|
100
|
+
});
|
101
|
+
observer.observe(root, { childList: true, subtree: true });
|
102
|
+
}
|
103
|
+
}
|
package/dist/atomic/components/components/common/product-template/product-template-common.js
CHANGED
@@ -2,7 +2,7 @@ import { ProductTemplatesHelpers, } from '@coveo/headless/commerce';
|
|
2
2
|
import { intersection } from '../../../utils/set';
|
3
3
|
import { isElementNode, isVisualNode } from '../../../utils/utils';
|
4
4
|
import { tableElementTagName } from '../../search/atomic-table-result/table-element-utils';
|
5
|
-
import { isResultSectionNode } from '../layout/sections';
|
5
|
+
import { isResultSectionNode } from '../layout/item-layout-sections';
|
6
6
|
export function getTemplateNodeType(node) {
|
7
7
|
if (isResultSectionNode(node)) {
|
8
8
|
return 'section';
|
@@ -0,0 +1,50 @@
|
|
1
|
+
import { deepEqual } from "../../../utils/compare-utils";
|
2
|
+
/**
|
3
|
+
* A reactive controller that validates the props of a Lit component against a
|
4
|
+
* provided Bueno schema.
|
5
|
+
*
|
6
|
+
* It validates the props when the host is connected to the DOM and whenever
|
7
|
+
* the host updates, revalidating only if the props have changed since the last
|
8
|
+
* validation.
|
9
|
+
*
|
10
|
+
* If validation fails, the controller sets the `error` property on the host.
|
11
|
+
*/
|
12
|
+
export class ValidatePropsController {
|
13
|
+
/**
|
14
|
+
* Creates a `ValidatePropsController`.
|
15
|
+
*
|
16
|
+
* @param host The host element.
|
17
|
+
* @param getProps A function that returns the current props to validate.
|
18
|
+
* @param schema The Bueno schema to validate the props against.
|
19
|
+
*/
|
20
|
+
constructor(host, getProps, schema) {
|
21
|
+
this.host = host;
|
22
|
+
this.getProps = getProps;
|
23
|
+
this.schema = schema;
|
24
|
+
host.addController(this);
|
25
|
+
}
|
26
|
+
hostConnected() {
|
27
|
+
this.currentProps = this.getProps();
|
28
|
+
this._validateProps();
|
29
|
+
}
|
30
|
+
hostUpdate() {
|
31
|
+
this.currentProps = this.getProps();
|
32
|
+
if (deepEqual(this.currentProps, this.previousProps)) {
|
33
|
+
return;
|
34
|
+
}
|
35
|
+
// @ts-expect-error: we need to clear the error.
|
36
|
+
this.host.error = undefined;
|
37
|
+
this._validateProps();
|
38
|
+
}
|
39
|
+
_validateProps() {
|
40
|
+
try {
|
41
|
+
this.schema.validate(this.currentProps);
|
42
|
+
}
|
43
|
+
catch (error) {
|
44
|
+
this.host.error = error;
|
45
|
+
}
|
46
|
+
finally {
|
47
|
+
this.previousProps = this.currentProps;
|
48
|
+
}
|
49
|
+
}
|
50
|
+
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { findSection, sectionSelector, } from '../../common/atomic-layout-section/
|
1
|
+
import { findSection, sectionSelector, } from '../../common/atomic-layout-section/atomic-layout-section-utils';
|
2
2
|
const tabsSelector = 'atomic-insight-tabs';
|
3
3
|
const refineModalSelector = 'atomic-insight-refine-modal';
|
4
4
|
const searchBoxSelector = 'atomic-insight-search-box';
|
@@ -0,0 +1,100 @@
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
6
|
+
};
|
7
|
+
import { getOrganizationEndpoint } from '@coveo/headless';
|
8
|
+
import { html, LitElement, nothing } from 'lit';
|
9
|
+
import { customElement, state } from 'lit/decorators.js';
|
10
|
+
import { renderButton } from "../../common/button";
|
11
|
+
import { withTailwindStyles } from "../../../decorators/with-tailwind-styles.js";
|
12
|
+
import "../../common/atomic-modal/atomic-modal";
|
13
|
+
import { bindingGuard } from "../../../decorators/binding-guard";
|
14
|
+
import { bindings } from "../../../decorators/bindings";
|
15
|
+
import { errorGuard } from "../../../decorators/error-guard";
|
16
|
+
/**
|
17
|
+
* The `atomic-relevance-inspector` component is used internally to offer insight on search page relevance, as well as information to help troubleshoot issues during development.
|
18
|
+
*
|
19
|
+
* @internal
|
20
|
+
*/
|
21
|
+
let AtomicRelevanceInspector = class AtomicRelevanceInspector extends LitElement {
|
22
|
+
constructor() {
|
23
|
+
super(...arguments);
|
24
|
+
this.open = false;
|
25
|
+
this.initialize = () => {
|
26
|
+
this.bindings.interfaceElement.addEventListener('dblclick', this.handleRelevanceInspectorDoubleClick);
|
27
|
+
};
|
28
|
+
this.handleRelevanceInspectorDoubleClick = (e) => {
|
29
|
+
if (e.altKey) {
|
30
|
+
this.open = !this.open;
|
31
|
+
}
|
32
|
+
};
|
33
|
+
}
|
34
|
+
disconnectedCallback() {
|
35
|
+
this.bindings.interfaceElement.removeEventListener('dblclick', this.handleRelevanceInspectorDoubleClick);
|
36
|
+
}
|
37
|
+
render() {
|
38
|
+
return html `
|
39
|
+
<atomic-modal
|
40
|
+
.isOpen=${this.open}
|
41
|
+
@close=${() => this.handleCloseRelevanceInspector()}
|
42
|
+
exportparts="footer"
|
43
|
+
>
|
44
|
+
<p slot="header">Open the relevance inspector</p>
|
45
|
+
<p slot="body">
|
46
|
+
The Relevance Inspector will open in the Coveo Administration Console.
|
47
|
+
</p>
|
48
|
+
<div slot="footer" class="flex w-full items-center justify-end">
|
49
|
+
${renderButton({
|
50
|
+
props: {
|
51
|
+
style: 'outline-primary',
|
52
|
+
class: 'mr-2 p-2',
|
53
|
+
onClick: () => this.handleCloseRelevanceInspector(),
|
54
|
+
text: 'Ignore',
|
55
|
+
},
|
56
|
+
})(nothing)}
|
57
|
+
${renderButton({
|
58
|
+
props: {
|
59
|
+
style: 'primary',
|
60
|
+
class: 'p-2',
|
61
|
+
onClick: () => {
|
62
|
+
window.open(this.adminHref, '_blank');
|
63
|
+
this.handleCloseRelevanceInspector();
|
64
|
+
},
|
65
|
+
text: 'Open',
|
66
|
+
},
|
67
|
+
})(nothing)}
|
68
|
+
</div>
|
69
|
+
</atomic-modal>
|
70
|
+
`;
|
71
|
+
}
|
72
|
+
handleCloseRelevanceInspector() {
|
73
|
+
this.open = false;
|
74
|
+
}
|
75
|
+
get adminHref() {
|
76
|
+
const { organizationId, environment } = this.bindings.engine.state.configuration;
|
77
|
+
const admin = getOrganizationEndpoint(organizationId, environment, 'admin');
|
78
|
+
const { searchResponseId } = this.bindings.engine.state.search;
|
79
|
+
return `${admin}/admin/#/${organizationId}/search/relevanceInspector/${searchResponseId}`;
|
80
|
+
}
|
81
|
+
};
|
82
|
+
__decorate([
|
83
|
+
state()
|
84
|
+
], AtomicRelevanceInspector.prototype, "bindings", void 0);
|
85
|
+
__decorate([
|
86
|
+
state()
|
87
|
+
], AtomicRelevanceInspector.prototype, "error", void 0);
|
88
|
+
__decorate([
|
89
|
+
state()
|
90
|
+
], AtomicRelevanceInspector.prototype, "open", void 0);
|
91
|
+
__decorate([
|
92
|
+
bindingGuard(),
|
93
|
+
errorGuard()
|
94
|
+
], AtomicRelevanceInspector.prototype, "render", null);
|
95
|
+
AtomicRelevanceInspector = __decorate([
|
96
|
+
customElement('atomic-relevance-inspector'),
|
97
|
+
bindings(),
|
98
|
+
withTailwindStyles
|
99
|
+
], AtomicRelevanceInspector);
|
100
|
+
export { AtomicRelevanceInspector };
|
@@ -0,0 +1,137 @@
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
6
|
+
};
|
7
|
+
import { buildRecentQueriesList, } from '@coveo/headless';
|
8
|
+
import { html, LitElement, nothing } from 'lit';
|
9
|
+
import { customElement, property, state } from 'lit/decorators.js';
|
10
|
+
import { errorGuard } from "../../../decorators/error-guard";
|
11
|
+
import { SafeStorage, StorageItems } from "../../../utils/local-storage-utils";
|
12
|
+
import { once } from "../../../utils/utils";
|
13
|
+
const Clock = "<svg fill=\"none\" stroke=\"currentColor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"8\" cy=\"8\" r=\"7.5\"/><path d=\"m8.5 4.5v4\"/><path d=\"m10.3066 10.1387-1.80932-1.5768\"/></svg>";
|
14
|
+
import { getPartialRecentQueryClearElement, getPartialRecentQueryElement, renderRecentQuery, renderRecentQueryClear, } from '../../common/suggestions/recent-queries';
|
15
|
+
import { dispatchSearchBoxSuggestionsEvent } from '../../common/suggestions/suggestions-events';
|
16
|
+
/**
|
17
|
+
* 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.
|
18
|
+
*/
|
19
|
+
let AtomicSearchBoxRecentQueries = class AtomicSearchBoxRecentQueries extends LitElement {
|
20
|
+
constructor() {
|
21
|
+
super(...arguments);
|
22
|
+
/**
|
23
|
+
* The maximum number of suggestions to display when the user types in the input field.
|
24
|
+
*/
|
25
|
+
this.maxWithQuery = 3;
|
26
|
+
this.warnUser = once(() => this.bindings.engine.logger.warn('The recent queries feature is deactivated because analytics are disabled.'));
|
27
|
+
}
|
28
|
+
connectedCallback() {
|
29
|
+
super.connectedCallback();
|
30
|
+
try {
|
31
|
+
dispatchSearchBoxSuggestionsEvent((bindings) => {
|
32
|
+
this.bindings = bindings;
|
33
|
+
return this.initialize();
|
34
|
+
}, this, ['atomic-search-box']);
|
35
|
+
}
|
36
|
+
catch (error) {
|
37
|
+
this.error = error;
|
38
|
+
}
|
39
|
+
}
|
40
|
+
initialize() {
|
41
|
+
this.storage = new SafeStorage();
|
42
|
+
this.recentQueriesList = buildRecentQueriesList(this.bindings.engine, {
|
43
|
+
initialState: { queries: this.retrieveLocalStorage() },
|
44
|
+
options: {
|
45
|
+
maxLength: 1000,
|
46
|
+
clearFilters: this.bindings.clearFilters,
|
47
|
+
},
|
48
|
+
});
|
49
|
+
this.recentQueriesList.subscribe(() => this.updateLocalStorage());
|
50
|
+
return {
|
51
|
+
position: Array.from(this.parentNode.children).indexOf(this),
|
52
|
+
renderItems: () => this.renderItems(),
|
53
|
+
};
|
54
|
+
}
|
55
|
+
retrieveLocalStorage() {
|
56
|
+
return this.storage.getParsedJSON(StorageItems.RECENT_QUERIES, []);
|
57
|
+
}
|
58
|
+
updateLocalStorage() {
|
59
|
+
if (!this.recentQueriesList.state.analyticsEnabled) {
|
60
|
+
return this.disableFeature();
|
61
|
+
}
|
62
|
+
return this.storage.setJSON(StorageItems.RECENT_QUERIES, this.recentQueriesList.state.queries);
|
63
|
+
}
|
64
|
+
disableFeature() {
|
65
|
+
this.warnUser();
|
66
|
+
this.storage.removeItem(StorageItems.RECENT_QUERIES);
|
67
|
+
}
|
68
|
+
renderItems() {
|
69
|
+
if (!this.recentQueriesList.state.analyticsEnabled) {
|
70
|
+
return [];
|
71
|
+
}
|
72
|
+
const query = this.bindings.searchBoxController.state.value;
|
73
|
+
const hasQuery = query !== '';
|
74
|
+
const max = hasQuery ? this.maxWithQuery : this.maxWithoutQuery;
|
75
|
+
const filteredQueries = this.recentQueriesList.state.queries
|
76
|
+
.filter((recentQuery) => recentQuery.toLowerCase().startsWith(query.toLowerCase()))
|
77
|
+
.slice(0, max);
|
78
|
+
const suggestionElements = filteredQueries.map((value) => this.renderItem(value));
|
79
|
+
if (suggestionElements.length) {
|
80
|
+
suggestionElements.unshift(this.renderClear());
|
81
|
+
}
|
82
|
+
return suggestionElements;
|
83
|
+
}
|
84
|
+
renderClear() {
|
85
|
+
const partialItem = getPartialRecentQueryClearElement(this.bindings.i18n);
|
86
|
+
return {
|
87
|
+
...partialItem,
|
88
|
+
content: renderRecentQueryClear({ i18n: this.bindings.i18n }),
|
89
|
+
onSelect: () => {
|
90
|
+
this.recentQueriesList.clear();
|
91
|
+
this.bindings.triggerSuggestions();
|
92
|
+
},
|
93
|
+
};
|
94
|
+
}
|
95
|
+
renderItem(value) {
|
96
|
+
const query = this.bindings.searchBoxController.state.value;
|
97
|
+
const partialItem = getPartialRecentQueryElement(value, this.bindings.i18n);
|
98
|
+
return {
|
99
|
+
...partialItem,
|
100
|
+
content: renderRecentQuery({
|
101
|
+
icon: this.icon || Clock,
|
102
|
+
query,
|
103
|
+
value,
|
104
|
+
}),
|
105
|
+
onSelect: () => {
|
106
|
+
if (this.bindings.isStandalone) {
|
107
|
+
this.bindings.searchBoxController.updateText(value);
|
108
|
+
this.bindings.searchBoxController.submit();
|
109
|
+
return;
|
110
|
+
}
|
111
|
+
this.recentQueriesList.executeRecentQuery(this.recentQueriesList.state.queries.indexOf(value));
|
112
|
+
},
|
113
|
+
};
|
114
|
+
}
|
115
|
+
render() {
|
116
|
+
return html `${nothing}`;
|
117
|
+
}
|
118
|
+
};
|
119
|
+
__decorate([
|
120
|
+
state()
|
121
|
+
], AtomicSearchBoxRecentQueries.prototype, "error", void 0);
|
122
|
+
__decorate([
|
123
|
+
property()
|
124
|
+
], AtomicSearchBoxRecentQueries.prototype, "icon", void 0);
|
125
|
+
__decorate([
|
126
|
+
property({ type: Number, attribute: 'max-with-query', reflect: true })
|
127
|
+
], AtomicSearchBoxRecentQueries.prototype, "maxWithQuery", void 0);
|
128
|
+
__decorate([
|
129
|
+
property({ type: Number, attribute: 'max-without-query', reflect: true })
|
130
|
+
], AtomicSearchBoxRecentQueries.prototype, "maxWithoutQuery", void 0);
|
131
|
+
__decorate([
|
132
|
+
errorGuard()
|
133
|
+
], AtomicSearchBoxRecentQueries.prototype, "render", null);
|
134
|
+
AtomicSearchBoxRecentQueries = __decorate([
|
135
|
+
customElement('atomic-search-box-recent-queries')
|
136
|
+
], AtomicSearchBoxRecentQueries);
|
137
|
+
export { AtomicSearchBoxRecentQueries };
|