@coveo/atomic 3.35.0-pre.f2f26f651f → 3.35.0-pre.f38c5c6e5a
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/components/atomic-external.js +1 -0
- package/dist/atomic/components/atomic-external.js.map +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-children-template.js +1 -1
- package/dist/atomic/components/atomic-insight-result-children-template.js.map +1 -1
- package/dist/atomic/components/atomic-insight-result-template.js +1 -1
- package/dist/atomic/components/atomic-insight-result-template.js.map +1 -1
- package/dist/atomic/components/atomic-recs-interface.js +1 -1
- package/dist/atomic/components/atomic-recs-result-template.js +1 -1
- package/dist/atomic/components/atomic-recs-result-template.js.map +1 -1
- package/dist/atomic/components/atomic-result-children-template.js +1 -1
- package/dist/atomic/components/atomic-result-children-template.js.map +1 -1
- package/dist/atomic/components/atomic-result-list.js.map +1 -1
- package/dist/atomic/components/atomic-result-template.js +1 -1
- package/dist/atomic/components/atomic-result-template.js.map +1 -1
- package/dist/atomic/components/components/commerce/atomic-product-field-condition/atomic-product-field-condition.js +4 -3
- package/dist/atomic/components/components/commerce/atomic-product-template/atomic-product-template.js +4 -3
- package/dist/atomic/components/components/common/item-list/table-layout.js +1 -1
- package/dist/atomic/components/components/common/product-template/product-template-controller.js +10 -81
- package/dist/atomic/components/components/common/template-controller/base-template-controller.js +91 -0
- package/dist/atomic/components/components/common/{product-template/product-template-common.js → template-controller/template-utils.js} +11 -12
- package/dist/atomic/components/dom-utils.js +2 -0
- package/dist/atomic/components/dom-utils.js.map +1 -1
- package/dist/atomic/components/global/environment.js +1 -1
- package/dist/atomic/components/{result-template-common.js → stencil-result-template-common.js} +1 -1
- package/dist/atomic/components/stencil-result-template-common.js.map +1 -0
- package/dist/atomic/components/table-element-utils.js.map +1 -1
- package/dist/atomic/components/utils/dom-utils.js +5 -0
- package/dist/atomic/index.esm.js +1 -1
- package/dist/atomic/index.esm.js.map +1 -1
- package/dist/atomic/p-025a346a.js +1 -1
- package/dist/atomic/{p-ff2d324d.js → p-03e01aef.js} +2 -2
- package/dist/atomic/{p-9392b7da.entry.js → p-043e25e1.entry.js} +2 -2
- package/dist/atomic/{p-104d7a84.entry.js → p-060e1a2c.entry.js} +2 -2
- package/dist/atomic/{p-25ee4bab.entry.js → p-070acab5.entry.js} +2 -2
- package/dist/atomic/{p-66beb63a.entry.js.map → p-070acab5.entry.js.map} +1 -1
- package/dist/atomic/{p-5cab2edf.entry.js → p-071296c5.entry.js} +2 -2
- package/dist/atomic/{p-dbc08e9e.entry.js → p-07323ee1.entry.js} +2 -2
- package/dist/atomic/{p-582ce205.entry.js → p-078926b2.entry.js} +2 -2
- package/dist/atomic/{p-458697db.entry.js → p-084e4c5c.entry.js} +2 -2
- package/dist/atomic/{p-066df32a.entry.js → p-0de79f5f.entry.js} +2 -2
- package/dist/atomic/{p-fb517fba.entry.js → p-0ff3cddc.entry.js} +2 -2
- package/dist/atomic/p-0ff3cddc.entry.js.map +1 -0
- package/dist/atomic/{p-36270a85.entry.js → p-12636f55.entry.js} +2 -2
- package/dist/atomic/{p-c45361ac.entry.js → p-127e1891.entry.js} +2 -2
- package/dist/atomic/{p-9aad555a.entry.js → p-1b5acaf7.entry.js} +2 -2
- package/dist/atomic/{p-84ac45b4.entry.js → p-1cd42a4e.entry.js} +2 -2
- package/dist/atomic/p-1e01224b.entry.js +2 -0
- package/dist/atomic/{p-5a9460ab.entry.js.map → p-1e01224b.entry.js.map} +1 -1
- package/dist/atomic/{p-b06de6f8.entry.js → p-1fabc1e7.entry.js} +2 -2
- package/dist/atomic/{p-37182242.entry.js → p-1fe5514d.entry.js} +2 -2
- package/dist/atomic/{p-3dc06261.js → p-201b58b3.js} +2 -2
- package/dist/atomic/{p-ae346172.entry.js → p-2d4b229d.entry.js} +2 -2
- package/dist/atomic/{p-f12325cc.entry.js → p-2da9105b.entry.js} +2 -2
- package/dist/atomic/p-2dab3401.entry.js +2 -0
- package/dist/atomic/{p-875eb57b.entry.js.map → p-2dab3401.entry.js.map} +1 -1
- package/dist/atomic/{p-4206b797.entry.js → p-2eb2676d.entry.js} +2 -2
- package/dist/atomic/p-30c064ed.entry.js +2 -0
- package/dist/atomic/{p-6d0e9fad.entry.js.map → p-30c064ed.entry.js.map} +1 -1
- package/dist/atomic/{p-91260e2b.entry.js → p-396308f6.entry.js} +2 -2
- package/dist/atomic/{p-4080f740.js → p-3b52e039.js} +2 -2
- package/dist/atomic/{p-8d1f7884.entry.js → p-3cc5717d.entry.js} +2 -2
- package/dist/atomic/p-3dadbb3a.entry.js +2 -0
- package/dist/atomic/{p-8e964890.entry.js.map → p-3dadbb3a.entry.js.map} +1 -1
- package/dist/atomic/p-3e81928e.entry.js +2 -0
- package/dist/atomic/{p-4cf97b0a.entry.js.map → p-3e81928e.entry.js.map} +1 -1
- package/dist/atomic/p-419de484.entry.js +2 -0
- package/dist/atomic/{p-3ec45f9c.entry.js.map → p-419de484.entry.js.map} +1 -1
- package/dist/atomic/p-4219863f.entry.js +2 -0
- package/dist/atomic/{p-0714b56d.entry.js.map → p-4219863f.entry.js.map} +1 -1
- package/dist/atomic/{p-f04c86b4.entry.js → p-4255ba1c.entry.js} +2 -2
- package/dist/atomic/{p-8d63a0c4.entry.js → p-44bf0e38.entry.js} +2 -2
- package/dist/atomic/{p-fb5598e9.entry.js.map → p-44bf0e38.entry.js.map} +1 -1
- package/dist/atomic/{p-2eac7c46.entry.js → p-484df738.entry.js} +2 -2
- package/dist/atomic/p-4a172f6c.entry.js +2 -0
- package/dist/atomic/{p-a48ae7ab.entry.js.map → p-4a172f6c.entry.js.map} +1 -1
- package/dist/atomic/{p-9ae68e86.js → p-4c58b5ee.js} +2 -2
- package/dist/atomic/p-4c58b5ee.js.map +1 -0
- package/dist/atomic/{p-f5a0fdc8.entry.js → p-4f6585c0.entry.js} +2 -2
- package/dist/atomic/{p-d3d0ac7c.entry.js → p-52c8c827.entry.js} +2 -2
- package/dist/atomic/{p-90ace4cd.entry.js → p-5363fc15.entry.js} +2 -2
- package/dist/atomic/{p-6ca16a70.entry.js → p-54235369.entry.js} +2 -2
- package/dist/atomic/{p-3282ccf8.entry.js → p-55eae6bc.entry.js} +2 -2
- package/dist/atomic/{p-33b3b967.entry.js → p-5c12aebe.entry.js} +2 -2
- package/dist/atomic/{p-e0d103ba.entry.js → p-5c21cdbd.entry.js} +2 -2
- package/dist/atomic/p-5e5599f3.js +1 -1
- package/dist/atomic/p-601b8ab7.entry.js +2 -0
- package/dist/atomic/{p-01eda62a.entry.js.map → p-601b8ab7.entry.js.map} +1 -1
- package/dist/atomic/{p-cf0a69e5.entry.js → p-62215819.entry.js} +2 -2
- package/dist/atomic/{p-6489c611.entry.js → p-63423f6b.entry.js} +2 -2
- package/dist/atomic/{p-0035e3da.entry.js → p-64bf37c9.entry.js} +2 -2
- package/dist/atomic/p-6a3efd75.entry.js +2 -0
- package/dist/atomic/{p-25ee4bab.entry.js.map → p-6a3efd75.entry.js.map} +1 -1
- package/dist/atomic/{p-f800678c.entry.js → p-6cc3f4e6.entry.js} +2 -2
- package/dist/atomic/p-6ef684df.js +2 -0
- package/dist/atomic/p-6ef684df.js.map +1 -0
- package/dist/atomic/{p-a9016629.entry.js → p-6fc8bf11.entry.js} +2 -2
- package/dist/atomic/p-6fc8bf11.entry.js.map +1 -0
- package/dist/atomic/p-7627f6e0.entry.js +2 -0
- package/dist/atomic/{p-e1dbe31d.entry.js.map → p-7627f6e0.entry.js.map} +1 -1
- package/dist/atomic/p-798b20e3.entry.js +2 -0
- package/dist/atomic/{p-7bf809eb.entry.js.map → p-798b20e3.entry.js.map} +1 -1
- package/dist/atomic/{p-ceca3fb8.entry.js → p-79ae5adc.entry.js} +2 -2
- package/dist/atomic/{p-3becda0c.entry.js → p-7c5c836e.entry.js} +2 -2
- package/dist/atomic/p-7f137439.entry.js +2 -0
- package/dist/atomic/{p-6a3b139f.entry.js.map → p-7f137439.entry.js.map} +1 -1
- package/dist/atomic/p-81310591.js +2 -0
- package/dist/atomic/{p-fd7a8926.entry.js → p-8347e7a1.entry.js} +2 -2
- package/dist/atomic/{p-5eaee0be.entry.js → p-851709f5.entry.js} +2 -2
- package/dist/atomic/{p-da141605.entry.js → p-888c2a4e.entry.js} +2 -2
- package/dist/atomic/{p-e62caa78.entry.js → p-892dc31b.entry.js} +2 -2
- package/dist/atomic/{p-da87ef51.entry.js → p-8eb03300.entry.js} +2 -2
- package/dist/atomic/p-8eb03300.entry.js.map +1 -0
- package/dist/atomic/p-8fe875c1.entry.js +2 -0
- package/dist/atomic/{p-ab3da44d.entry.js.map → p-8fe875c1.entry.js.map} +1 -1
- package/dist/atomic/{p-895da76b.entry.js → p-939aac48.entry.js} +2 -2
- package/dist/atomic/{p-acd72087.entry.js → p-944d38f4.entry.js} +2 -2
- package/dist/atomic/{p-d5402772.entry.js → p-96d988a8.entry.js} +2 -2
- package/dist/atomic/{p-ae071697.entry.js → p-9afbdee1.entry.js} +2 -2
- package/dist/atomic/{p-27746cac.entry.js → p-9c104243.entry.js} +2 -2
- package/dist/atomic/{p-9519e656.entry.js → p-a0f803cf.entry.js} +2 -2
- package/dist/atomic/p-a5b65a11.entry.js +2 -0
- package/dist/atomic/{p-6f93d6d6.entry.js.map → p-a5b65a11.entry.js.map} +1 -1
- package/dist/atomic/p-a715255f.entry.js +2 -0
- package/dist/atomic/{p-268ce7ca.entry.js.map → p-a715255f.entry.js.map} +1 -1
- package/dist/atomic/p-a81f3714.entry.js +2 -0
- package/dist/atomic/{p-798598a4.entry.js.map → p-a81f3714.entry.js.map} +1 -1
- package/dist/atomic/{p-d8d346f3.entry.js → p-aa0d5996.entry.js} +2 -2
- package/dist/atomic/{p-8b0cf1d4.entry.js → p-af358e98.entry.js} +2 -2
- package/dist/atomic/p-af358e98.entry.js.map +1 -0
- package/dist/atomic/{p-02f2ac0b.entry.js → p-b3fb5a74.entry.js} +2 -2
- package/dist/atomic/{p-a78cbb80.entry.js → p-b9909a73.entry.js} +2 -2
- package/dist/atomic/p-b9909a73.entry.js.map +1 -0
- package/dist/atomic/{p-81b00c43.entry.js → p-bb3a2ec9.entry.js} +2 -2
- package/dist/atomic/{p-acd1a1d3.js → p-be0518ae.js} +1 -1
- package/dist/atomic/p-be0518ae.js.map +1 -0
- package/dist/atomic/{p-c402cc93.entry.js → p-c8df6cfb.entry.js} +2 -2
- package/dist/atomic/{p-c82dd1aa.entry.js.map → p-c8df6cfb.entry.js.map} +1 -1
- package/dist/atomic/p-c966da1f.entry.js +2 -0
- package/dist/atomic/{p-b93c93f7.entry.js.map → p-c966da1f.entry.js.map} +1 -1
- package/dist/atomic/{p-847cdfd5.entry.js → p-cb378159.entry.js} +2 -2
- package/dist/atomic/p-d0b9f281.entry.js +2 -0
- package/dist/atomic/{p-9389337e.entry.js.map → p-d0b9f281.entry.js.map} +1 -1
- package/dist/atomic/p-d0e5fd5e.entry.js +2 -0
- package/dist/atomic/{p-c402cc93.entry.js.map → p-d0e5fd5e.entry.js.map} +1 -1
- package/dist/atomic/{p-dd258eaa.entry.js → p-d25c5ce7.entry.js} +2 -2
- package/dist/atomic/p-d25c5ce7.entry.js.map +1 -0
- package/dist/atomic/{p-d0937472.entry.js → p-d4e0d62c.entry.js} +2 -2
- package/dist/atomic/{p-1fca38e1.js → p-d537096a.js} +2 -2
- package/dist/atomic/p-d5421c6b.entry.js +2 -0
- package/dist/atomic/{p-690cb10f.entry.js.map → p-d5421c6b.entry.js.map} +1 -1
- package/dist/atomic/{p-ff23598b.entry.js → p-d67c59f0.entry.js} +2 -2
- package/dist/atomic/{p-87eafe2f.entry.js → p-d7eb9531.entry.js} +2 -2
- package/dist/atomic/p-dcbef3e1.entry.js +2 -0
- package/dist/atomic/{p-cbec8d32.entry.js.map → p-dcbef3e1.entry.js.map} +1 -1
- package/dist/atomic/p-ddfcae3b.entry.js +2 -0
- package/dist/atomic/{p-609d0550.entry.js.map → p-ddfcae3b.entry.js.map} +1 -1
- package/dist/atomic/p-de4dfbec.entry.js +2 -0
- package/dist/atomic/{p-3f3f6b14.entry.js.map → p-de4dfbec.entry.js.map} +1 -1
- package/dist/atomic/{p-4778132c.entry.js → p-de7950d9.entry.js} +2 -2
- package/dist/atomic/{p-67f62282.entry.js → p-e0c9ddd5.entry.js} +2 -2
- package/dist/atomic/{p-72cdb9d8.entry.js → p-e0d8e122.entry.js} +2 -2
- package/dist/atomic/p-e2d99a33.entry.js +2 -0
- package/dist/atomic/{p-1936bfc8.entry.js.map → p-e2d99a33.entry.js.map} +1 -1
- package/dist/atomic/{p-06bc57be.entry.js → p-e40cac9e.entry.js} +2 -2
- package/dist/atomic/p-e4f7e454.entry.js +2 -0
- package/dist/atomic/{p-47002021.entry.js.map → p-e4f7e454.entry.js.map} +1 -1
- package/dist/atomic/{p-bb0e0b5d.entry.js → p-e9afb6ee.entry.js} +2 -2
- package/dist/atomic/{p-fb5598e9.entry.js → p-ea1a448d.entry.js} +2 -2
- package/dist/atomic/{p-98790c52.entry.js.map → p-ea1a448d.entry.js.map} +1 -1
- package/dist/atomic/{p-6da5e67e.entry.js → p-edb34365.entry.js} +2 -2
- package/dist/atomic/{p-4bc0dc09.entry.js → p-ef9257fa.entry.js} +2 -2
- package/dist/atomic/p-f1624191.entry.js +2 -0
- package/dist/atomic/{p-fa83768b.entry.js.map → p-f1624191.entry.js.map} +1 -1
- package/dist/atomic/{p-cd047d6d.entry.js → p-f20fe78c.entry.js} +2 -2
- package/dist/atomic/{p-b9eeac20.entry.js → p-f3c0122f.entry.js} +2 -2
- package/dist/atomic/p-f3c0122f.entry.js.map +1 -0
- package/dist/atomic/p-f4ff8e62.entry.js +2 -0
- package/dist/atomic/{p-8d63a0c4.entry.js.map → p-f4ff8e62.entry.js.map} +1 -1
- package/dist/atomic/{p-f654697b.entry.js → p-f746c040.entry.js} +2 -2
- package/dist/atomic/{p-66beb63a.entry.js → p-f7b70070.entry.js} +2 -2
- package/dist/atomic/{p-f44e1bd3.entry.js.map → p-f7b70070.entry.js.map} +1 -1
- package/dist/atomic/{p-2033533c.entry.js → p-f7c3528f.entry.js} +2 -2
- package/dist/atomic/p-f8f7ebc9.entry.js +2 -0
- package/dist/atomic/{p-530396d4.entry.js → p-f959d5a1.entry.js} +2 -2
- package/dist/atomic/{p-cae02339.js → p-f983e811.js} +2 -2
- package/dist/cjs/_index.cjs.js +7 -5
- package/dist/cjs/atomic-automatic-facet_2.cjs.entry.js +5 -5
- package/dist/cjs/atomic-breadbox.cjs.entry.js +5 -5
- package/dist/cjs/atomic-category-facet.cjs.entry.js +6 -6
- package/dist/cjs/atomic-color-facet.cjs.entry.js +5 -5
- package/dist/cjs/atomic-did-you-mean.cjs.entry.js +5 -3
- package/dist/cjs/atomic-did-you-mean.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-external.cjs.entry.js +4 -2
- package/dist/cjs/atomic-external.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-facet-manager.cjs.entry.js +5 -3
- package/dist/cjs/atomic-facet-manager.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-facet.cjs.entry.js +6 -6
- package/dist/cjs/atomic-field-condition.cjs.entry.js +6 -6
- package/dist/cjs/atomic-field-condition.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-folded-result-list.cjs.entry.js +6 -6
- package/dist/cjs/atomic-generated-answer-feedback-modal.cjs.entry.js +6 -6
- package/dist/cjs/atomic-generated-answer.cjs.entry.js +5 -5
- package/dist/cjs/atomic-html.cjs.entry.js +3 -3
- package/dist/cjs/atomic-insight-facet.cjs.entry.js +6 -6
- package/dist/cjs/atomic-insight-folded-result-list.cjs.entry.js +6 -6
- package/dist/cjs/atomic-insight-full-search-button.cjs.entry.js +5 -3
- package/dist/cjs/atomic-insight-full-search-button.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-generated-answer.cjs.entry.js +5 -5
- package/dist/cjs/atomic-insight-layout.cjs.entry.js +5 -5
- package/dist/cjs/atomic-insight-no-results.cjs.entry.js +5 -5
- package/dist/cjs/atomic-insight-numeric-facet.cjs.entry.js +6 -6
- package/dist/cjs/atomic-insight-pager.cjs.entry.js +5 -5
- package/dist/cjs/atomic-insight-query-error.cjs.entry.js +5 -5
- package/dist/cjs/atomic-insight-query-summary.cjs.entry.js +5 -5
- package/dist/cjs/atomic-insight-refine-modal.cjs.entry.js +5 -5
- package/dist/cjs/atomic-insight-refine-toggle.cjs.entry.js +5 -3
- package/dist/cjs/atomic-insight-refine-toggle.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-result-action.cjs.entry.js +7 -5
- 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 +7 -5
- 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 +7 -5
- 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 +5 -5
- package/dist/cjs/atomic-insight-result-children-template.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-result-children.cjs.entry.js +5 -5
- package/dist/cjs/atomic-insight-result-list.cjs.entry.js +6 -6
- package/dist/cjs/atomic-insight-result-quickview-action.cjs.entry.js +7 -7
- package/dist/cjs/atomic-insight-result-template.cjs.entry.js +5 -5
- package/dist/cjs/atomic-insight-result-template.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-result.cjs.entry.js +4 -4
- package/dist/cjs/atomic-insight-search-box.cjs.entry.js +3 -3
- package/dist/cjs/atomic-insight-smart-snippet-feedback-modal.cjs.entry.js +4 -4
- package/dist/cjs/atomic-insight-smart-snippet-suggestions.cjs.entry.js +5 -5
- package/dist/cjs/atomic-insight-smart-snippet.cjs.entry.js +4 -4
- package/dist/cjs/atomic-insight-tab.cjs.entry.js +5 -5
- package/dist/cjs/atomic-insight-tabs.cjs.entry.js +5 -3
- package/dist/cjs/atomic-insight-tabs.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-timeframe-facet.cjs.entry.js +5 -5
- package/dist/cjs/atomic-insight-user-actions-modal.cjs.entry.js +5 -3
- package/dist/cjs/atomic-insight-user-actions-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-user-actions-session_2.cjs.entry.js +4 -3
- package/dist/cjs/atomic-insight-user-actions-session_2.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-user-actions-toggle.cjs.entry.js +5 -3
- package/dist/cjs/atomic-insight-user-actions-toggle.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-ipx-body.cjs.entry.js +6 -6
- package/dist/cjs/atomic-ipx-button.cjs.entry.js +5 -3
- package/dist/cjs/atomic-ipx-button.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-ipx-embedded.cjs.entry.js +6 -6
- package/dist/cjs/atomic-ipx-modal.cjs.entry.js +6 -6
- package/dist/cjs/atomic-ipx-recs-list.cjs.entry.js +6 -6
- package/dist/cjs/atomic-ipx-refine-modal.cjs.entry.js +5 -5
- package/dist/cjs/atomic-ipx-refine-toggle.cjs.entry.js +5 -3
- package/dist/cjs/atomic-ipx-refine-toggle.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-ipx-result-link.cjs.entry.js +7 -5
- package/dist/cjs/atomic-ipx-result-link.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-ipx-tab.cjs.entry.js +5 -5
- package/dist/cjs/atomic-ipx-tabs.cjs.entry.js +5 -3
- package/dist/cjs/atomic-ipx-tabs.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-load-more-results.cjs.entry.js +5 -5
- package/dist/cjs/atomic-no-results.cjs.entry.js +5 -5
- package/dist/cjs/atomic-notifications.cjs.entry.js +5 -5
- package/dist/cjs/atomic-numeric-facet.cjs.entry.js +6 -6
- package/dist/cjs/atomic-popover.cjs.entry.js +5 -3
- package/dist/cjs/atomic-popover.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-query-error.cjs.entry.js +5 -5
- package/dist/cjs/atomic-quickview-modal.cjs.entry.js +5 -3
- package/dist/cjs/atomic-quickview-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-quickview.cjs.entry.js +7 -7
- package/dist/cjs/atomic-rating-facet.cjs.entry.js +5 -5
- package/dist/cjs/atomic-rating-range-facet.cjs.entry.js +5 -5
- package/dist/cjs/atomic-recs-error.cjs.entry.js +5 -5
- package/dist/cjs/atomic-recs-interface.cjs.entry.js +1 -1
- package/dist/cjs/atomic-recs-list.cjs.entry.js +6 -6
- package/dist/cjs/atomic-recs-result-template.cjs.entry.js +5 -5
- package/dist/cjs/atomic-recs-result-template.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-recs-result.cjs.entry.js +4 -4
- package/dist/cjs/atomic-refine-modal.cjs.entry.js +5 -5
- package/dist/cjs/atomic-refine-toggle.cjs.entry.js +5 -3
- package/dist/cjs/atomic-refine-toggle.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-badge.cjs.entry.js +5 -3
- package/dist/cjs/atomic-result-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-children-template.cjs.entry.js +4 -4
- package/dist/cjs/atomic-result-children-template.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-children.cjs.entry.js +6 -6
- package/dist/cjs/atomic-result-date.cjs.entry.js +6 -5
- package/dist/cjs/atomic-result-date.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-fields-list.cjs.entry.js +5 -3
- package/dist/cjs/atomic-result-fields-list.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-html.cjs.entry.js +7 -5
- package/dist/cjs/atomic-result-html.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-icon.cjs.entry.js +3 -3
- package/dist/cjs/atomic-result-image.cjs.entry.js +7 -5
- package/dist/cjs/atomic-result-image.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-link.cjs.entry.js +7 -5
- package/dist/cjs/atomic-result-link.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-list.cjs.entry.js +7 -7
- package/dist/cjs/atomic-result-list.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-localized-text.cjs.entry.js +7 -7
- package/dist/cjs/atomic-result-multi-value-text.cjs.entry.js +7 -7
- package/dist/cjs/atomic-result-number.cjs.entry.js +7 -5
- package/dist/cjs/atomic-result-number.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-printable-uri.cjs.entry.js +7 -7
- package/dist/cjs/atomic-result-rating.cjs.entry.js +7 -5
- package/dist/cjs/atomic-result-rating.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-template.cjs.entry.js +4 -4
- package/dist/cjs/atomic-result-template.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-text_2.cjs.entry.js +7 -5
- package/dist/cjs/atomic-result-text_2.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-timespan.cjs.entry.js +6 -5
- package/dist/cjs/atomic-result-timespan.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result.cjs.entry.js +4 -4
- package/dist/cjs/atomic-search-box.cjs.entry.js +6 -6
- package/dist/cjs/atomic-segmented-facet-scrollable.cjs.entry.js +5 -3
- package/dist/cjs/atomic-segmented-facet-scrollable.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-segmented-facet.cjs.entry.js +5 -5
- package/dist/cjs/atomic-smart-snippet-answer_2.cjs.entry.js +3 -3
- package/dist/cjs/atomic-smart-snippet-collapse-wrapper_2.cjs.entry.js +5 -3
- package/dist/cjs/atomic-smart-snippet-collapse-wrapper_2.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-smart-snippet-feedback-modal.cjs.entry.js +4 -4
- package/dist/cjs/atomic-smart-snippet-suggestions.cjs.entry.js +4 -4
- package/dist/cjs/atomic-smart-snippet.cjs.entry.js +3 -3
- package/dist/cjs/atomic-sort-dropdown.cjs.entry.js +5 -5
- package/dist/cjs/atomic-tab-bar_2.cjs.entry.js +5 -3
- package/dist/cjs/atomic-tab-bar_2.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-tab-manager.cjs.entry.js +5 -3
- package/dist/cjs/atomic-tab-manager.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-timeframe-facet.cjs.entry.js +5 -5
- package/dist/cjs/{dom-utils-d4790328.js → dom-utils-99b6ae8e.js} +3 -1
- package/dist/cjs/dom-utils-99b6ae8e.js.map +1 -0
- package/dist/cjs/{facet-guard-0e8cbe50.js → facet-guard-86d4d9eb.js} +2 -2
- package/dist/cjs/{facet-guard-0e8cbe50.js.map → facet-guard-86d4d9eb.js.map} +1 -1
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/{initialization-lit-stencil-common-utils-730030b0.js → initialization-lit-stencil-common-utils-4aa43394.js} +2 -2
- package/dist/cjs/{initialization-lit-stencil-common-utils-730030b0.js.map → initialization-lit-stencil-common-utils-4aa43394.js.map} +1 -1
- package/dist/cjs/{initialization-utils-92f1b080.js → initialization-utils-bd73b57a.js} +3 -3
- package/dist/cjs/{initialization-utils-92f1b080.js.map → initialization-utils-bd73b57a.js.map} +1 -1
- package/dist/cjs/{replace-breakpoint-utils-47f2eaa4.js → replace-breakpoint-utils-929b72a8.js} +2 -2
- package/dist/cjs/{replace-breakpoint-utils-47f2eaa4.js.map → replace-breakpoint-utils-929b72a8.js.map} +1 -1
- package/dist/cjs/{stencil-item-decorators-43a96f33.js → stencil-item-decorators-ac2e8fa8.js} +2 -2
- package/dist/cjs/{stencil-item-decorators-43a96f33.js.map → stencil-item-decorators-ac2e8fa8.js.map} +1 -1
- package/dist/cjs/stencil-item-list-common-b08abf21.js +1 -1
- package/dist/cjs/{result-template-common-bc03b2ad.js → stencil-result-template-common-9906bb6a.js} +2 -2
- package/dist/cjs/stencil-result-template-common-9906bb6a.js.map +1 -0
- package/dist/cjs/{stencil-result-template-decorators-28b05aaf.js → stencil-result-template-decorators-3a5f1319.js} +2 -2
- package/dist/cjs/{stencil-result-template-decorators-28b05aaf.js.map → stencil-result-template-decorators-3a5f1319.js.map} +1 -1
- package/dist/cjs/{table-element-utils-4865b735.js → table-element-utils-2cc6dc82.js} +1 -1
- package/dist/cjs/table-element-utils-2cc6dc82.js.map +1 -0
- package/dist/cjs/timeframe-facet-common-b08ffe64.js +1 -1
- package/dist/cjs/version.cjs.js +2 -2
- package/dist/esm/_index.js +7 -5
- package/dist/esm/atomic-automatic-facet_2.entry.js +5 -5
- package/dist/esm/atomic-breadbox.entry.js +5 -5
- package/dist/esm/atomic-category-facet.entry.js +6 -6
- package/dist/esm/atomic-color-facet.entry.js +5 -5
- package/dist/esm/atomic-did-you-mean.entry.js +5 -3
- package/dist/esm/atomic-did-you-mean.entry.js.map +1 -1
- package/dist/esm/atomic-external.entry.js +4 -2
- package/dist/esm/atomic-external.entry.js.map +1 -1
- package/dist/esm/atomic-facet-manager.entry.js +5 -3
- package/dist/esm/atomic-facet-manager.entry.js.map +1 -1
- package/dist/esm/atomic-facet.entry.js +6 -6
- package/dist/esm/atomic-field-condition.entry.js +5 -5
- package/dist/esm/atomic-field-condition.entry.js.map +1 -1
- package/dist/esm/atomic-folded-result-list.entry.js +6 -6
- package/dist/esm/atomic-generated-answer-feedback-modal.entry.js +6 -6
- package/dist/esm/atomic-generated-answer.entry.js +5 -5
- package/dist/esm/atomic-html.entry.js +3 -3
- package/dist/esm/atomic-insight-facet.entry.js +6 -6
- package/dist/esm/atomic-insight-folded-result-list.entry.js +6 -6
- package/dist/esm/atomic-insight-full-search-button.entry.js +5 -3
- package/dist/esm/atomic-insight-full-search-button.entry.js.map +1 -1
- package/dist/esm/atomic-insight-generated-answer.entry.js +5 -5
- package/dist/esm/atomic-insight-layout.entry.js +5 -5
- package/dist/esm/atomic-insight-no-results.entry.js +5 -5
- package/dist/esm/atomic-insight-numeric-facet.entry.js +6 -6
- package/dist/esm/atomic-insight-pager.entry.js +5 -5
- package/dist/esm/atomic-insight-query-error.entry.js +5 -5
- package/dist/esm/atomic-insight-query-summary.entry.js +5 -5
- package/dist/esm/atomic-insight-refine-modal.entry.js +5 -5
- package/dist/esm/atomic-insight-refine-toggle.entry.js +5 -3
- package/dist/esm/atomic-insight-refine-toggle.entry.js.map +1 -1
- package/dist/esm/atomic-insight-result-action.entry.js +7 -5
- package/dist/esm/atomic-insight-result-action.entry.js.map +1 -1
- package/dist/esm/atomic-insight-result-attach-to-case-action.entry.js +7 -5
- 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 +7 -5
- 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-children-template.entry.js.map +1 -1
- package/dist/esm/atomic-insight-result-children.entry.js +5 -5
- package/dist/esm/atomic-insight-result-list.entry.js +6 -6
- package/dist/esm/atomic-insight-result-quickview-action.entry.js +7 -7
- package/dist/esm/atomic-insight-result-template.entry.js +2 -2
- package/dist/esm/atomic-insight-result-template.entry.js.map +1 -1
- package/dist/esm/atomic-insight-result.entry.js +4 -4
- package/dist/esm/atomic-insight-search-box.entry.js +3 -3
- package/dist/esm/atomic-insight-smart-snippet-feedback-modal.entry.js +4 -4
- package/dist/esm/atomic-insight-smart-snippet-suggestions.entry.js +5 -5
- package/dist/esm/atomic-insight-smart-snippet.entry.js +4 -4
- package/dist/esm/atomic-insight-tab.entry.js +5 -5
- package/dist/esm/atomic-insight-tabs.entry.js +5 -3
- package/dist/esm/atomic-insight-tabs.entry.js.map +1 -1
- package/dist/esm/atomic-insight-timeframe-facet.entry.js +5 -5
- package/dist/esm/atomic-insight-user-actions-modal.entry.js +5 -3
- package/dist/esm/atomic-insight-user-actions-modal.entry.js.map +1 -1
- package/dist/esm/atomic-insight-user-actions-session_2.entry.js +4 -3
- package/dist/esm/atomic-insight-user-actions-session_2.entry.js.map +1 -1
- package/dist/esm/atomic-insight-user-actions-toggle.entry.js +5 -3
- package/dist/esm/atomic-insight-user-actions-toggle.entry.js.map +1 -1
- package/dist/esm/atomic-ipx-body.entry.js +6 -6
- package/dist/esm/atomic-ipx-button.entry.js +5 -3
- package/dist/esm/atomic-ipx-button.entry.js.map +1 -1
- package/dist/esm/atomic-ipx-embedded.entry.js +6 -6
- package/dist/esm/atomic-ipx-modal.entry.js +6 -6
- package/dist/esm/atomic-ipx-recs-list.entry.js +6 -6
- package/dist/esm/atomic-ipx-refine-modal.entry.js +5 -5
- package/dist/esm/atomic-ipx-refine-toggle.entry.js +5 -3
- package/dist/esm/atomic-ipx-refine-toggle.entry.js.map +1 -1
- package/dist/esm/atomic-ipx-result-link.entry.js +7 -5
- package/dist/esm/atomic-ipx-result-link.entry.js.map +1 -1
- package/dist/esm/atomic-ipx-tab.entry.js +5 -5
- package/dist/esm/atomic-ipx-tabs.entry.js +5 -3
- package/dist/esm/atomic-ipx-tabs.entry.js.map +1 -1
- package/dist/esm/atomic-load-more-results.entry.js +5 -5
- package/dist/esm/atomic-no-results.entry.js +5 -5
- package/dist/esm/atomic-notifications.entry.js +5 -5
- package/dist/esm/atomic-numeric-facet.entry.js +6 -6
- package/dist/esm/atomic-popover.entry.js +5 -3
- package/dist/esm/atomic-popover.entry.js.map +1 -1
- package/dist/esm/atomic-query-error.entry.js +5 -5
- package/dist/esm/atomic-quickview-modal.entry.js +5 -3
- package/dist/esm/atomic-quickview-modal.entry.js.map +1 -1
- package/dist/esm/atomic-quickview.entry.js +7 -7
- package/dist/esm/atomic-rating-facet.entry.js +5 -5
- package/dist/esm/atomic-rating-range-facet.entry.js +5 -5
- package/dist/esm/atomic-recs-error.entry.js +5 -5
- package/dist/esm/atomic-recs-interface.entry.js +1 -1
- package/dist/esm/atomic-recs-list.entry.js +6 -6
- package/dist/esm/atomic-recs-result-template.entry.js +2 -2
- package/dist/esm/atomic-recs-result-template.entry.js.map +1 -1
- package/dist/esm/atomic-recs-result.entry.js +4 -4
- package/dist/esm/atomic-refine-modal.entry.js +5 -5
- package/dist/esm/atomic-refine-toggle.entry.js +5 -3
- package/dist/esm/atomic-refine-toggle.entry.js.map +1 -1
- package/dist/esm/atomic-result-badge.entry.js +5 -3
- 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-template.entry.js.map +1 -1
- package/dist/esm/atomic-result-children.entry.js +6 -6
- package/dist/esm/atomic-result-date.entry.js +6 -5
- package/dist/esm/atomic-result-date.entry.js.map +1 -1
- package/dist/esm/atomic-result-fields-list.entry.js +5 -3
- package/dist/esm/atomic-result-fields-list.entry.js.map +1 -1
- package/dist/esm/atomic-result-html.entry.js +7 -5
- package/dist/esm/atomic-result-html.entry.js.map +1 -1
- package/dist/esm/atomic-result-icon.entry.js +3 -3
- package/dist/esm/atomic-result-image.entry.js +7 -5
- package/dist/esm/atomic-result-image.entry.js.map +1 -1
- package/dist/esm/atomic-result-link.entry.js +7 -5
- package/dist/esm/atomic-result-link.entry.js.map +1 -1
- package/dist/esm/atomic-result-list.entry.js +7 -7
- package/dist/esm/atomic-result-list.entry.js.map +1 -1
- package/dist/esm/atomic-result-localized-text.entry.js +7 -7
- package/dist/esm/atomic-result-multi-value-text.entry.js +7 -7
- package/dist/esm/atomic-result-number.entry.js +7 -5
- package/dist/esm/atomic-result-number.entry.js.map +1 -1
- package/dist/esm/atomic-result-printable-uri.entry.js +7 -7
- package/dist/esm/atomic-result-rating.entry.js +7 -5
- 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-template.entry.js.map +1 -1
- package/dist/esm/atomic-result-text_2.entry.js +7 -5
- package/dist/esm/atomic-result-text_2.entry.js.map +1 -1
- package/dist/esm/atomic-result-timespan.entry.js +6 -5
- package/dist/esm/atomic-result-timespan.entry.js.map +1 -1
- package/dist/esm/atomic-result.entry.js +4 -4
- package/dist/esm/atomic-search-box.entry.js +6 -6
- package/dist/esm/atomic-segmented-facet-scrollable.entry.js +5 -3
- package/dist/esm/atomic-segmented-facet-scrollable.entry.js.map +1 -1
- package/dist/esm/atomic-segmented-facet.entry.js +5 -5
- package/dist/esm/atomic-smart-snippet-answer_2.entry.js +3 -3
- package/dist/esm/atomic-smart-snippet-collapse-wrapper_2.entry.js +5 -3
- package/dist/esm/atomic-smart-snippet-collapse-wrapper_2.entry.js.map +1 -1
- package/dist/esm/atomic-smart-snippet-feedback-modal.entry.js +4 -4
- package/dist/esm/atomic-smart-snippet-suggestions.entry.js +4 -4
- package/dist/esm/atomic-smart-snippet.entry.js +3 -3
- package/dist/esm/atomic-sort-dropdown.entry.js +5 -5
- package/dist/esm/atomic-tab-bar_2.entry.js +5 -3
- package/dist/esm/atomic-tab-bar_2.entry.js.map +1 -1
- package/dist/esm/atomic-tab-manager.entry.js +5 -3
- package/dist/esm/atomic-tab-manager.entry.js.map +1 -1
- package/dist/esm/atomic-timeframe-facet.entry.js +5 -5
- package/dist/esm/{dom-utils-f6086cd3.js → dom-utils-7444dea4.js} +3 -1
- package/dist/esm/dom-utils-7444dea4.js.map +1 -0
- package/dist/esm/{facet-guard-3bb4a306.js → facet-guard-9dfe4a77.js} +2 -2
- package/dist/esm/{facet-guard-3bb4a306.js.map → facet-guard-9dfe4a77.js.map} +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/{initialization-lit-stencil-common-utils-804fe146.js → initialization-lit-stencil-common-utils-8013d595.js} +2 -2
- package/dist/esm/{initialization-lit-stencil-common-utils-804fe146.js.map → initialization-lit-stencil-common-utils-8013d595.js.map} +1 -1
- package/dist/esm/{initialization-utils-ffbc4136.js → initialization-utils-39016e9b.js} +3 -3
- package/dist/esm/{initialization-utils-ffbc4136.js.map → initialization-utils-39016e9b.js.map} +1 -1
- package/dist/esm/{replace-breakpoint-utils-13ff9ca5.js → replace-breakpoint-utils-0f20353d.js} +2 -2
- package/dist/esm/{replace-breakpoint-utils-13ff9ca5.js.map → replace-breakpoint-utils-0f20353d.js.map} +1 -1
- package/dist/esm/{stencil-item-decorators-6c453c11.js → stencil-item-decorators-33feff1a.js} +2 -2
- package/dist/esm/{stencil-item-decorators-6c453c11.js.map → stencil-item-decorators-33feff1a.js.map} +1 -1
- package/dist/esm/stencil-item-list-common-d2833d51.js +1 -1
- package/dist/esm/{result-template-common-47799c7c.js → stencil-result-template-common-7dc3918a.js} +2 -2
- package/dist/esm/stencil-result-template-common-7dc3918a.js.map +1 -0
- package/dist/esm/{stencil-result-template-decorators-f989bc6b.js → stencil-result-template-decorators-3874fa73.js} +2 -2
- package/dist/esm/{stencil-result-template-decorators-f989bc6b.js.map → stencil-result-template-decorators-3874fa73.js.map} +1 -1
- package/dist/esm/{table-element-utils-49d22ec6.js → table-element-utils-1dbc5ef6.js} +1 -1
- package/dist/esm/table-element-utils-1dbc5ef6.js.map +1 -0
- package/dist/esm/timeframe-facet-common-33642d0d.js +1 -1
- package/dist/esm/version.js +2 -2
- package/dist/types/components/common/product-template/product-template-controller.d.ts +5 -19
- package/dist/types/components/common/product-template/stencil-product-template-common.d.ts +1 -1
- package/dist/types/components/common/result-templates/result-template-controller.d.ts +12 -0
- package/dist/types/components/common/template-controller/base-template-controller.d.ts +34 -0
- package/dist/types/components/common/template-controller/template-utils.d.ts +11 -0
- package/dist/types/components/insight/result-templates/atomic-insight-result-children-template/atomic-insight-result-children-template.d.ts +1 -1
- package/dist/types/components/search/result-templates/atomic-result-children-template/atomic-result-children-template.d.ts +1 -1
- package/dist/types/utils/dom-utils.d.ts +1 -0
- package/docs/atomic-docs.json +1 -1
- package/package.json +5 -8
- package/dist/atomic/components/result-template-common.js.map +0 -1
- package/dist/atomic/p-01eda62a.entry.js +0 -2
- package/dist/atomic/p-0714b56d.entry.js +0 -2
- package/dist/atomic/p-1936bfc8.entry.js +0 -2
- package/dist/atomic/p-268ce7ca.entry.js +0 -2
- package/dist/atomic/p-3ec45f9c.entry.js +0 -2
- package/dist/atomic/p-3f3f6b14.entry.js +0 -2
- package/dist/atomic/p-47002021.entry.js +0 -2
- package/dist/atomic/p-4cf97b0a.entry.js +0 -2
- package/dist/atomic/p-5a9460ab.entry.js +0 -2
- package/dist/atomic/p-609d0550.entry.js +0 -2
- package/dist/atomic/p-690cb10f.entry.js +0 -2
- package/dist/atomic/p-6a3b139f.entry.js +0 -2
- package/dist/atomic/p-6d0e9fad.entry.js +0 -2
- package/dist/atomic/p-6f93d6d6.entry.js +0 -2
- package/dist/atomic/p-798598a4.entry.js +0 -2
- package/dist/atomic/p-7bf809eb.entry.js +0 -2
- package/dist/atomic/p-875eb57b.entry.js +0 -2
- package/dist/atomic/p-8b0cf1d4.entry.js.map +0 -1
- package/dist/atomic/p-8e964890.entry.js +0 -2
- package/dist/atomic/p-9389337e.entry.js +0 -2
- package/dist/atomic/p-98790c52.entry.js +0 -2
- package/dist/atomic/p-9ae68e86.js.map +0 -1
- package/dist/atomic/p-a48ae7ab.entry.js +0 -2
- package/dist/atomic/p-a78cbb80.entry.js.map +0 -1
- package/dist/atomic/p-a9016629.entry.js.map +0 -1
- package/dist/atomic/p-ab3da44d.entry.js +0 -2
- package/dist/atomic/p-acd1a1d3.js.map +0 -1
- package/dist/atomic/p-b93c93f7.entry.js +0 -2
- package/dist/atomic/p-b9eeac20.entry.js.map +0 -1
- package/dist/atomic/p-c3451367.js +0 -2
- package/dist/atomic/p-c82dd1aa.entry.js +0 -2
- package/dist/atomic/p-c9074946.js +0 -2
- package/dist/atomic/p-c9074946.js.map +0 -1
- package/dist/atomic/p-cbec8d32.entry.js +0 -2
- package/dist/atomic/p-da87ef51.entry.js.map +0 -1
- package/dist/atomic/p-dd258eaa.entry.js.map +0 -1
- package/dist/atomic/p-e1dbe31d.entry.js +0 -2
- package/dist/atomic/p-e8180b21.entry.js +0 -2
- package/dist/atomic/p-f44e1bd3.entry.js +0 -2
- package/dist/atomic/p-fa83768b.entry.js +0 -2
- package/dist/atomic/p-fb517fba.entry.js.map +0 -1
- package/dist/cjs/dom-utils-d4790328.js.map +0 -1
- package/dist/cjs/result-template-common-bc03b2ad.js.map +0 -1
- package/dist/cjs/table-element-utils-4865b735.js.map +0 -1
- package/dist/esm/dom-utils-f6086cd3.js.map +0 -1
- package/dist/esm/result-template-common-47799c7c.js.map +0 -1
- package/dist/esm/table-element-utils-49d22ec6.js.map +0 -1
- package/dist/types/components/common/product-template/product-template-common.d.ts +0 -6
- /package/dist/atomic/components/components/{search/atomic-table-result → common}/table-element-utils.js +0 -0
- /package/dist/atomic/{p-ff2d324d.js.map → p-03e01aef.js.map} +0 -0
- /package/dist/atomic/{p-9392b7da.entry.js.map → p-043e25e1.entry.js.map} +0 -0
- /package/dist/atomic/{p-104d7a84.entry.js.map → p-060e1a2c.entry.js.map} +0 -0
- /package/dist/atomic/{p-5cab2edf.entry.js.map → p-071296c5.entry.js.map} +0 -0
- /package/dist/atomic/{p-dbc08e9e.entry.js.map → p-07323ee1.entry.js.map} +0 -0
- /package/dist/atomic/{p-582ce205.entry.js.map → p-078926b2.entry.js.map} +0 -0
- /package/dist/atomic/{p-458697db.entry.js.map → p-084e4c5c.entry.js.map} +0 -0
- /package/dist/atomic/{p-066df32a.entry.js.map → p-0de79f5f.entry.js.map} +0 -0
- /package/dist/atomic/{p-36270a85.entry.js.map → p-12636f55.entry.js.map} +0 -0
- /package/dist/atomic/{p-c45361ac.entry.js.map → p-127e1891.entry.js.map} +0 -0
- /package/dist/atomic/{p-9aad555a.entry.js.map → p-1b5acaf7.entry.js.map} +0 -0
- /package/dist/atomic/{p-84ac45b4.entry.js.map → p-1cd42a4e.entry.js.map} +0 -0
- /package/dist/atomic/{p-b06de6f8.entry.js.map → p-1fabc1e7.entry.js.map} +0 -0
- /package/dist/atomic/{p-37182242.entry.js.map → p-1fe5514d.entry.js.map} +0 -0
- /package/dist/atomic/{p-3dc06261.js.map → p-201b58b3.js.map} +0 -0
- /package/dist/atomic/{p-ae346172.entry.js.map → p-2d4b229d.entry.js.map} +0 -0
- /package/dist/atomic/{p-f12325cc.entry.js.map → p-2da9105b.entry.js.map} +0 -0
- /package/dist/atomic/{p-4206b797.entry.js.map → p-2eb2676d.entry.js.map} +0 -0
- /package/dist/atomic/{p-91260e2b.entry.js.map → p-396308f6.entry.js.map} +0 -0
- /package/dist/atomic/{p-4080f740.js.map → p-3b52e039.js.map} +0 -0
- /package/dist/atomic/{p-8d1f7884.entry.js.map → p-3cc5717d.entry.js.map} +0 -0
- /package/dist/atomic/{p-f04c86b4.entry.js.map → p-4255ba1c.entry.js.map} +0 -0
- /package/dist/atomic/{p-2eac7c46.entry.js.map → p-484df738.entry.js.map} +0 -0
- /package/dist/atomic/{p-f5a0fdc8.entry.js.map → p-4f6585c0.entry.js.map} +0 -0
- /package/dist/atomic/{p-d3d0ac7c.entry.js.map → p-52c8c827.entry.js.map} +0 -0
- /package/dist/atomic/{p-90ace4cd.entry.js.map → p-5363fc15.entry.js.map} +0 -0
- /package/dist/atomic/{p-6ca16a70.entry.js.map → p-54235369.entry.js.map} +0 -0
- /package/dist/atomic/{p-3282ccf8.entry.js.map → p-55eae6bc.entry.js.map} +0 -0
- /package/dist/atomic/{p-33b3b967.entry.js.map → p-5c12aebe.entry.js.map} +0 -0
- /package/dist/atomic/{p-e0d103ba.entry.js.map → p-5c21cdbd.entry.js.map} +0 -0
- /package/dist/atomic/{p-cf0a69e5.entry.js.map → p-62215819.entry.js.map} +0 -0
- /package/dist/atomic/{p-6489c611.entry.js.map → p-63423f6b.entry.js.map} +0 -0
- /package/dist/atomic/{p-0035e3da.entry.js.map → p-64bf37c9.entry.js.map} +0 -0
- /package/dist/atomic/{p-f800678c.entry.js.map → p-6cc3f4e6.entry.js.map} +0 -0
- /package/dist/atomic/{p-ceca3fb8.entry.js.map → p-79ae5adc.entry.js.map} +0 -0
- /package/dist/atomic/{p-3becda0c.entry.js.map → p-7c5c836e.entry.js.map} +0 -0
- /package/dist/atomic/{p-c3451367.js.map → p-81310591.js.map} +0 -0
- /package/dist/atomic/{p-fd7a8926.entry.js.map → p-8347e7a1.entry.js.map} +0 -0
- /package/dist/atomic/{p-5eaee0be.entry.js.map → p-851709f5.entry.js.map} +0 -0
- /package/dist/atomic/{p-da141605.entry.js.map → p-888c2a4e.entry.js.map} +0 -0
- /package/dist/atomic/{p-e62caa78.entry.js.map → p-892dc31b.entry.js.map} +0 -0
- /package/dist/atomic/{p-895da76b.entry.js.map → p-939aac48.entry.js.map} +0 -0
- /package/dist/atomic/{p-acd72087.entry.js.map → p-944d38f4.entry.js.map} +0 -0
- /package/dist/atomic/{p-d5402772.entry.js.map → p-96d988a8.entry.js.map} +0 -0
- /package/dist/atomic/{p-ae071697.entry.js.map → p-9afbdee1.entry.js.map} +0 -0
- /package/dist/atomic/{p-27746cac.entry.js.map → p-9c104243.entry.js.map} +0 -0
- /package/dist/atomic/{p-9519e656.entry.js.map → p-a0f803cf.entry.js.map} +0 -0
- /package/dist/atomic/{p-d8d346f3.entry.js.map → p-aa0d5996.entry.js.map} +0 -0
- /package/dist/atomic/{p-02f2ac0b.entry.js.map → p-b3fb5a74.entry.js.map} +0 -0
- /package/dist/atomic/{p-81b00c43.entry.js.map → p-bb3a2ec9.entry.js.map} +0 -0
- /package/dist/atomic/{p-847cdfd5.entry.js.map → p-cb378159.entry.js.map} +0 -0
- /package/dist/atomic/{p-d0937472.entry.js.map → p-d4e0d62c.entry.js.map} +0 -0
- /package/dist/atomic/{p-1fca38e1.js.map → p-d537096a.js.map} +0 -0
- /package/dist/atomic/{p-ff23598b.entry.js.map → p-d67c59f0.entry.js.map} +0 -0
- /package/dist/atomic/{p-87eafe2f.entry.js.map → p-d7eb9531.entry.js.map} +0 -0
- /package/dist/atomic/{p-4778132c.entry.js.map → p-de7950d9.entry.js.map} +0 -0
- /package/dist/atomic/{p-67f62282.entry.js.map → p-e0c9ddd5.entry.js.map} +0 -0
- /package/dist/atomic/{p-72cdb9d8.entry.js.map → p-e0d8e122.entry.js.map} +0 -0
- /package/dist/atomic/{p-06bc57be.entry.js.map → p-e40cac9e.entry.js.map} +0 -0
- /package/dist/atomic/{p-bb0e0b5d.entry.js.map → p-e9afb6ee.entry.js.map} +0 -0
- /package/dist/atomic/{p-6da5e67e.entry.js.map → p-edb34365.entry.js.map} +0 -0
- /package/dist/atomic/{p-4bc0dc09.entry.js.map → p-ef9257fa.entry.js.map} +0 -0
- /package/dist/atomic/{p-cd047d6d.entry.js.map → p-f20fe78c.entry.js.map} +0 -0
- /package/dist/atomic/{p-f654697b.entry.js.map → p-f746c040.entry.js.map} +0 -0
- /package/dist/atomic/{p-2033533c.entry.js.map → p-f7c3528f.entry.js.map} +0 -0
- /package/dist/atomic/{p-e8180b21.entry.js.map → p-f8f7ebc9.entry.js.map} +0 -0
- /package/dist/atomic/{p-530396d4.entry.js.map → p-f959d5a1.entry.js.map} +0 -0
- /package/dist/atomic/{p-cae02339.js.map → p-f983e811.js.map} +0 -0
- /package/dist/types/components/common/result-templates/{result-template-common.d.ts → stencil-result-template-common.d.ts} +0 -0
- /package/dist/types/components/{search/atomic-table-result → common}/table-element-utils.d.ts +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
import { proxyCustomElement, HTMLElement } from '@stencil/core/internal/client';
|
2
2
|
import { M as MapProp } from './props-utils.js';
|
3
|
-
import { R as ResultTemplateCommon, m as makeMatchConditions } from './result-template-common.js';
|
3
|
+
import { R as ResultTemplateCommon, m as makeMatchConditions } from './stencil-result-template-common.js';
|
4
4
|
|
5
5
|
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
6
6
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
@@ -1 +1 @@
|
|
1
|
-
{"file":"atomic-result-template.js","mappings":";;;;;;;;;;;;;;MAsBaA,sBAAoB;IAkC/B;;;;;;;;;;;QApBe,eAAU,GAA8B,EAAE,CAAC;;;;;QAMb,cAAS,GAGlD,EAAE,CAAC;;;;;QAMsC,iBAAY,GAGrD,EAAE,CAAC;;0BAlBgD,EAAE;yBASrD,EAAE;4BASF,EAAE;KAEU;IAEhB,iBAAiB;QACf,IAAI,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,CAAC;YACnD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,CAAC,GAAG;gBACZ,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;aAClB;YACD,YAAY,EAAE;gBACZ,oBAAoB;gBACpB,2BAA2B;gBAC3B,mCAAmC;aACpC;YACD,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;KACJ;IAEM,iBAAiB;QACtB,IAAI,CAAC,oBAAoB,CAAC,eAAe,GAAG,mBAAmB,CAC7D,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,YAAY,CAClB,CAAC;KACH;;;;IAMM,MAAM,WAAW;QACtB,OAAO,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3E;IAEM,MAAM;QACX,OAAO,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5D;;;;;;;;;AAhD4C;IAApC,OAAO,CAAC,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC;yDAG9B;AAMsC;IAApC,OAAO,CAAC,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC;4DAG9B;;;;;;;;;;;;;;;;;;;;","names":["AtomicResultTemplate"],"sources":["src/components/search/result-templates/atomic-result-template/atomic-result-template.tsx"],"sourcesContent":["import {ResultTemplate, ResultTemplateCondition} from '@coveo/headless';\nimport {Component, Element, Prop, Method, State} from '@stencil/core';\nimport {MapProp} from '../../../../utils/props-utils';\nimport {\n makeMatchConditions,\n ResultTemplateCommon,\n} from '../../../common/result-templates/result-template-common';\n\n/**\n * A [result template](https://docs.coveo.com/en/atomic/latest/usage/displaying-results#defining-a-result-template) determines the format of the query results, depending on the conditions that are defined for each template.\n *\n * @slot default - Mandatory. A `template` element that defines the structure of the result item.\n * @slot link - A `template` element that contains a single `atomic-result-link` component.\n *\n * **Note:** Any `<script>` tags that are defined inside a `<template>` element will not be executed when the results are being rendered.\n * @MapProp name: mustMatch;attr: must-match;docs: The field and values that define which result items the condition must be applied to. For example, a template with the following attribute only applies to result items whose `filetype` is `lithiummessage` or `YouTubePlaylist`: `must-match-filetype=\"lithiummessage,YouTubePlaylist\"`;type: Record<string, string[]> ;default: {}\n * @MapProp name: mustNotMatch;attr: must-not-match;docs: The field and values that define which result items the condition must not be applied to. For example, a template with the following attribute only applies to result items whose `filetype` is not `lithiummessage`: `must-not-match-filetype=\"lithiummessage\";type: Record<string, string[]> ;default: {}\n */\n@Component({\n tag: 'atomic-result-template',\n shadow: true,\n})\nexport class AtomicResultTemplate {\n private resultTemplateCommon!: ResultTemplateCommon;\n\n @State() public error!: Error;\n\n @Element() public host!: HTMLDivElement;\n\n /**\n * A function that must return true on results for the result template to apply.\n * Set programmatically before initialization, not via attribute.\n *\n * For example, the following targets a template and sets a condition to make it apply only to results whose `title` contains `singapore`:\n * `document.querySelector('#target-template').conditions = [(result) => /singapore/i.test(result.title)];`\n */\n @Prop() public conditions: ResultTemplateCondition[] = [];\n\n /**\n * Verifies whether the specified fields match the specified values.\n * @type {Record<string, string[]>}\n */\n @Prop() @MapProp({splitValues: true}) public mustMatch: Record<\n string,\n string[]\n > = {};\n\n /**\n * Verifies whether the specified fields do not match the specified values.\n * @type {Record<string, string[]>}\n */\n @Prop() @MapProp({splitValues: true}) public mustNotMatch: Record<\n string,\n string[]\n > = {};\n\n constructor() {}\n\n connectedCallback() {\n this.resultTemplateCommon = new ResultTemplateCommon({\n host: this.host,\n setError: (err) => {\n this.error = err;\n },\n validParents: [\n 'atomic-result-list',\n 'atomic-folded-result-list',\n 'atomic-search-box-instant-results',\n ],\n allowEmpty: true,\n });\n }\n\n public componentWillLoad() {\n this.resultTemplateCommon.matchConditions = makeMatchConditions(\n this.mustMatch,\n this.mustNotMatch\n );\n }\n\n /**\n * Gets the appropriate result template based on conditions applied.\n */\n @Method()\n public async getTemplate(): Promise<ResultTemplate<DocumentFragment> | null> {\n return this.resultTemplateCommon.getTemplate(this.conditions, this.error);\n }\n\n public render() {\n return this.resultTemplateCommon.renderIfError(this.error);\n }\n}\n"],"version":3}
|
1
|
+
{"file":"atomic-result-template.js","mappings":";;;;;;;;;;;;;;MAsBaA,sBAAoB;IAkC/B;;;;;;;;;;;QApBe,eAAU,GAA8B,EAAE,CAAC;;;;;QAMb,cAAS,GAGlD,EAAE,CAAC;;;;;QAMsC,iBAAY,GAGrD,EAAE,CAAC;;0BAlBgD,EAAE;yBASrD,EAAE;4BASF,EAAE;KAEU;IAEhB,iBAAiB;QACf,IAAI,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,CAAC;YACnD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,CAAC,GAAG;gBACZ,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;aAClB;YACD,YAAY,EAAE;gBACZ,oBAAoB;gBACpB,2BAA2B;gBAC3B,mCAAmC;aACpC;YACD,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;KACJ;IAEM,iBAAiB;QACtB,IAAI,CAAC,oBAAoB,CAAC,eAAe,GAAG,mBAAmB,CAC7D,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,YAAY,CAClB,CAAC;KACH;;;;IAMM,MAAM,WAAW;QACtB,OAAO,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3E;IAEM,MAAM;QACX,OAAO,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5D;;;;;;;;;AAhD4C;IAApC,OAAO,CAAC,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC;yDAG9B;AAMsC;IAApC,OAAO,CAAC,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC;4DAG9B;;;;;;;;;;;;;;;;;;;;","names":["AtomicResultTemplate"],"sources":["src/components/search/result-templates/atomic-result-template/atomic-result-template.tsx"],"sourcesContent":["import {ResultTemplate, ResultTemplateCondition} from '@coveo/headless';\nimport {Component, Element, Prop, Method, State} from '@stencil/core';\nimport {MapProp} from '../../../../utils/props-utils';\nimport {\n makeMatchConditions,\n ResultTemplateCommon,\n} from '../../../common/result-templates/stencil-result-template-common';\n\n/**\n * A [result template](https://docs.coveo.com/en/atomic/latest/usage/displaying-results#defining-a-result-template) determines the format of the query results, depending on the conditions that are defined for each template.\n *\n * @slot default - Mandatory. A `template` element that defines the structure of the result item.\n * @slot link - A `template` element that contains a single `atomic-result-link` component.\n *\n * **Note:** Any `<script>` tags that are defined inside a `<template>` element will not be executed when the results are being rendered.\n * @MapProp name: mustMatch;attr: must-match;docs: The field and values that define which result items the condition must be applied to. For example, a template with the following attribute only applies to result items whose `filetype` is `lithiummessage` or `YouTubePlaylist`: `must-match-filetype=\"lithiummessage,YouTubePlaylist\"`;type: Record<string, string[]> ;default: {}\n * @MapProp name: mustNotMatch;attr: must-not-match;docs: The field and values that define which result items the condition must not be applied to. For example, a template with the following attribute only applies to result items whose `filetype` is not `lithiummessage`: `must-not-match-filetype=\"lithiummessage\";type: Record<string, string[]> ;default: {}\n */\n@Component({\n tag: 'atomic-result-template',\n shadow: true,\n})\nexport class AtomicResultTemplate {\n private resultTemplateCommon!: ResultTemplateCommon;\n\n @State() public error!: Error;\n\n @Element() public host!: HTMLDivElement;\n\n /**\n * A function that must return true on results for the result template to apply.\n * Set programmatically before initialization, not via attribute.\n *\n * For example, the following targets a template and sets a condition to make it apply only to results whose `title` contains `singapore`:\n * `document.querySelector('#target-template').conditions = [(result) => /singapore/i.test(result.title)];`\n */\n @Prop() public conditions: ResultTemplateCondition[] = [];\n\n /**\n * Verifies whether the specified fields match the specified values.\n * @type {Record<string, string[]>}\n */\n @Prop() @MapProp({splitValues: true}) public mustMatch: Record<\n string,\n string[]\n > = {};\n\n /**\n * Verifies whether the specified fields do not match the specified values.\n * @type {Record<string, string[]>}\n */\n @Prop() @MapProp({splitValues: true}) public mustNotMatch: Record<\n string,\n string[]\n > = {};\n\n constructor() {}\n\n connectedCallback() {\n this.resultTemplateCommon = new ResultTemplateCommon({\n host: this.host,\n setError: (err) => {\n this.error = err;\n },\n validParents: [\n 'atomic-result-list',\n 'atomic-folded-result-list',\n 'atomic-search-box-instant-results',\n ],\n allowEmpty: true,\n });\n }\n\n public componentWillLoad() {\n this.resultTemplateCommon.matchConditions = makeMatchConditions(\n this.mustMatch,\n this.mustNotMatch\n );\n }\n\n /**\n * Gets the appropriate result template based on conditions applied.\n */\n @Method()\n public async getTemplate(): Promise<ResultTemplate<DocumentFragment> | null> {\n return this.resultTemplateCommon.getTemplate(this.conditions, this.error);\n }\n\n public render() {\n return this.resultTemplateCommon.renderIfError(this.error);\n }\n}\n"],"version":3}
|
@@ -4,14 +4,15 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
4
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
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
6
6
|
};
|
7
|
+
import { ProductTemplatesHelpers } from '@coveo/headless/commerce';
|
7
8
|
import { html, LitElement } from 'lit';
|
8
9
|
import { customElement, property, state } from 'lit/decorators.js';
|
9
10
|
import { createProductContextController } from "../product-template-component-utils/context/product-context-controller";
|
11
|
+
import { makeDefinedConditions, makeMatchConditions, } from "../../common/template-controller/template-utils";
|
10
12
|
import { bindings } from "../../../decorators/bindings";
|
11
13
|
import { errorGuard } from "../../../decorators/error-guard";
|
12
14
|
import { LightDomMixin } from "../../../mixins/light-dom";
|
13
15
|
import { mapProperty } from "../../../utils/props-utils";
|
14
|
-
import { makeDefinedConditions, makeMatchConditions, } from '../../common/product-template/product-template-common';
|
15
16
|
/**
|
16
17
|
* The `atomic-product-field-condition` component renders its children only when all of the conditions specified through its props are satisfied.
|
17
18
|
* The condition properties can be based on any top-level product property of the `product` object, not restricted to fields (e.g., `ec_name`).
|
@@ -26,8 +27,8 @@ let AtomicProductFieldCondition = class AtomicProductFieldCondition extends Ligh
|
|
26
27
|
initialize() { }
|
27
28
|
get conditions() {
|
28
29
|
return [
|
29
|
-
...makeDefinedConditions(this.ifDefined, this.ifNotDefined),
|
30
|
-
...makeMatchConditions(this.mustMatch, this.mustNotMatch),
|
30
|
+
...makeDefinedConditions(this.ifDefined, this.ifNotDefined, ProductTemplatesHelpers),
|
31
|
+
...makeMatchConditions(this.mustMatch, this.mustNotMatch, ProductTemplatesHelpers),
|
31
32
|
];
|
32
33
|
}
|
33
34
|
render() {
|
@@ -4,12 +4,13 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
4
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
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
6
6
|
};
|
7
|
+
import { ProductTemplatesHelpers } from '@coveo/headless/commerce';
|
7
8
|
import { html, LitElement, nothing } from 'lit';
|
8
9
|
import { customElement, property, state } from 'lit/decorators.js';
|
10
|
+
import { ProductTemplateController } from "../../common/product-template/product-template-controller";
|
11
|
+
import { makeMatchConditions } from "../../common/template-controller/template-utils";
|
9
12
|
import { errorGuard } from "../../../decorators/error-guard";
|
10
13
|
import { mapProperty } from "../../../utils/props-utils";
|
11
|
-
import { makeMatchConditions } from '../../common/product-template/product-template-common';
|
12
|
-
import { ProductTemplateController } from '../../common/product-template/product-template-controller';
|
13
14
|
import '../atomic-product/atomic-product';
|
14
15
|
/**
|
15
16
|
* * A product template determines the format of the products, depending on the conditions that are defined for each template.
|
@@ -43,7 +44,7 @@ let AtomicProductTemplate = class AtomicProductTemplate extends LitElement {
|
|
43
44
|
}
|
44
45
|
connectedCallback() {
|
45
46
|
super.connectedCallback();
|
46
|
-
this.productTemplateController.matchConditions = makeMatchConditions(this.mustMatch, this.mustNotMatch);
|
47
|
+
this.productTemplateController.matchConditions = makeMatchConditions(this.mustMatch, this.mustNotMatch, ProductTemplatesHelpers);
|
47
48
|
}
|
48
49
|
/**
|
49
50
|
* Gets the product template to apply based on the evaluated conditions.
|
@@ -2,7 +2,7 @@ import { html } from 'lit';
|
|
2
2
|
import { keyed } from 'lit/directives/keyed.js';
|
3
3
|
import { map } from 'lit/directives/map.js';
|
4
4
|
import { ref } from 'lit/directives/ref.js';
|
5
|
-
import { tableElementTagName } from
|
5
|
+
import { tableElementTagName } from "../table-element-utils";
|
6
6
|
export const renderTableLayout = ({ props }) => {
|
7
7
|
const { host, listClasses, logger } = props;
|
8
8
|
const fieldColumns = getFieldTableColumns(props);
|
package/dist/atomic/components/components/common/product-template/product-template-controller.js
CHANGED
@@ -1,94 +1,23 @@
|
|
1
|
-
import {
|
2
|
-
|
3
|
-
export class ProductTemplateController {
|
1
|
+
import { BaseTemplateController, } from "../template-controller/base-template-controller";
|
2
|
+
export class ProductTemplateController extends BaseTemplateController {
|
4
3
|
constructor(host, validParents, allowEmpty = false) {
|
5
|
-
|
6
|
-
this.validParents = validParents;
|
7
|
-
this.allowEmpty = allowEmpty;
|
8
|
-
this.matchConditions = [];
|
9
|
-
this.host.addController(this);
|
10
|
-
}
|
11
|
-
hostConnected() {
|
12
|
-
this.validateTemplate();
|
13
|
-
}
|
14
|
-
setError(error) {
|
15
|
-
this.host.error = error;
|
16
|
-
}
|
17
|
-
validateTemplate() {
|
18
|
-
const hasValidParent = this.validParents
|
19
|
-
.map((p) => p.toUpperCase())
|
20
|
-
.includes(this.parentElement?.nodeName || '');
|
21
|
-
const tagName = this.host.nodeName.toLowerCase();
|
22
|
-
if (!hasValidParent) {
|
23
|
-
this.setError(new Error(ProductTemplateController.ERRORS.invalidParent(tagName, this.validParents)));
|
24
|
-
return;
|
25
|
-
}
|
26
|
-
if (this.parentAttr('display') === 'grid') {
|
27
|
-
this.gridCellLinkTarget = this.parentAttr('grid-cell-link-target');
|
28
|
-
}
|
29
|
-
if (!this.template) {
|
30
|
-
this.setError(new Error(ProductTemplateController.ERRORS.missingTemplate(tagName)));
|
31
|
-
return;
|
32
|
-
}
|
33
|
-
if (!this.allowEmpty && !this.template.innerHTML.trim()) {
|
34
|
-
this.setError(new Error(ProductTemplateController.ERRORS.emptyTemplate(tagName)));
|
35
|
-
return;
|
36
|
-
}
|
37
|
-
if (this.template.content.querySelector('script')) {
|
38
|
-
console.warn(ProductTemplateController.WARNINGS.scriptTag, this.host);
|
39
|
-
}
|
40
|
-
const { section, other } = groupNodesByType(this.template.content.childNodes);
|
41
|
-
if (section?.length && other?.length) {
|
42
|
-
console.warn(ProductTemplateController.WARNINGS.sectionMix, this.host, {
|
43
|
-
section,
|
44
|
-
other,
|
45
|
-
});
|
46
|
-
}
|
4
|
+
super(host, validParents, allowEmpty);
|
47
5
|
}
|
48
6
|
getTemplate(conditions) {
|
49
|
-
|
7
|
+
const baseTemplate = this.getBaseTemplate(conditions);
|
8
|
+
if (!baseTemplate) {
|
50
9
|
return null;
|
51
10
|
}
|
52
11
|
return {
|
53
|
-
conditions: conditions
|
54
|
-
content:
|
55
|
-
linkContent:
|
56
|
-
priority:
|
12
|
+
conditions: baseTemplate.conditions,
|
13
|
+
content: baseTemplate.content,
|
14
|
+
linkContent: baseTemplate.linkContent,
|
15
|
+
priority: baseTemplate.priority,
|
57
16
|
};
|
58
17
|
}
|
59
18
|
getDefaultLinkTemplateElement() {
|
60
19
|
const linkTemplate = document.createElement('template');
|
61
|
-
linkTemplate.innerHTML = `<atomic-product-link>${this.
|
20
|
+
linkTemplate.innerHTML = `<atomic-product-link>${this.currentGridCellLinkTarget ? `<a slot="attributes" target="${this.currentGridCellLinkTarget}"></a>` : ''}</atomic-product-link>`;
|
62
21
|
return linkTemplate;
|
63
22
|
}
|
64
|
-
getLinkTemplateElement(host) {
|
65
|
-
return (host.querySelector('template[slot="link"]') ??
|
66
|
-
this.getDefaultLinkTemplateElement());
|
67
|
-
}
|
68
|
-
get parentElement() {
|
69
|
-
return this.host.parentElement;
|
70
|
-
}
|
71
|
-
get template() {
|
72
|
-
return this.host.querySelector('template');
|
73
|
-
}
|
74
|
-
parentAttr(attribute) {
|
75
|
-
return this.parentElement?.attributes.getNamedItem(attribute)?.value;
|
76
|
-
}
|
77
|
-
}
|
78
|
-
ProductTemplateController.ERRORS = {
|
79
|
-
invalidParent: (tagName, validParents) => `The "${tagName}" component has to be the child of one of the following: ${validParents
|
80
|
-
.map((p) => `"${p.toLowerCase()}"`)
|
81
|
-
.join(', ')}.`,
|
82
|
-
missingTemplate: (tagName) => `The "${tagName}" component must contain a "template" element as a child.`,
|
83
|
-
emptyTemplate: (tagName) => `The "template" tag inside "${tagName}" cannot be empty.`,
|
84
|
-
};
|
85
|
-
ProductTemplateController.WARNINGS = {
|
86
|
-
scriptTag: 'Any "script" tags defined inside of "template" elements are not supported and will not be executed when the products are rendered.',
|
87
|
-
sectionMix: 'Product templates should only contain section elements or non-section elements. Future updates could unpredictably affect this product template.',
|
88
|
-
};
|
89
|
-
function getTemplateElement(host) {
|
90
|
-
return host.querySelector('template:not([slot])');
|
91
|
-
}
|
92
|
-
function groupNodesByType(nodes) {
|
93
|
-
return aggregate(Array.from(nodes), (node) => getTemplateNodeType(node));
|
94
23
|
}
|
package/dist/atomic/components/components/common/template-controller/base-template-controller.js
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
import { groupNodesByType } from "../../../utils/dom-utils";
|
2
|
+
export class BaseTemplateController {
|
3
|
+
constructor(host, validParents, allowEmpty = false) {
|
4
|
+
this.host = host;
|
5
|
+
this.validParents = validParents;
|
6
|
+
this.allowEmpty = allowEmpty;
|
7
|
+
this.matchConditions = [];
|
8
|
+
this.host.addController(this);
|
9
|
+
}
|
10
|
+
hostConnected() {
|
11
|
+
this.validateTemplate();
|
12
|
+
}
|
13
|
+
getLinkTemplateElement(host) {
|
14
|
+
return (host.querySelector('template[slot="link"]') ??
|
15
|
+
this.getDefaultLinkTemplateElement());
|
16
|
+
}
|
17
|
+
getBaseTemplate(conditions) {
|
18
|
+
if (this.host.error) {
|
19
|
+
return null;
|
20
|
+
}
|
21
|
+
return {
|
22
|
+
conditions: conditions.concat(this.matchConditions),
|
23
|
+
content: this.getTemplateElement().content,
|
24
|
+
linkContent: this.getLinkTemplateElement(this.host).content,
|
25
|
+
priority: 1,
|
26
|
+
};
|
27
|
+
}
|
28
|
+
get currentGridCellLinkTarget() {
|
29
|
+
return this.gridCellLinkTarget;
|
30
|
+
}
|
31
|
+
setError(error) {
|
32
|
+
this.host.error = error;
|
33
|
+
}
|
34
|
+
get parentElement() {
|
35
|
+
return this.host.parentElement;
|
36
|
+
}
|
37
|
+
get template() {
|
38
|
+
return this.host.querySelector('template');
|
39
|
+
}
|
40
|
+
parentAttr(attribute) {
|
41
|
+
return this.parentElement?.attributes.getNamedItem(attribute)?.value;
|
42
|
+
}
|
43
|
+
validateTemplate() {
|
44
|
+
const hasValidParent = this.validParents
|
45
|
+
.map((p) => p.toUpperCase())
|
46
|
+
.includes(this.parentElement?.nodeName || '');
|
47
|
+
const tagName = this.host.nodeName.toLowerCase();
|
48
|
+
if (!hasValidParent) {
|
49
|
+
this.setError(new Error(BaseTemplateController.ERRORS.invalidParent(tagName, this.validParents)));
|
50
|
+
return;
|
51
|
+
}
|
52
|
+
if (this.parentAttr('display') === 'grid') {
|
53
|
+
this.gridCellLinkTarget = this.parentAttr('grid-cell-link-target');
|
54
|
+
}
|
55
|
+
if (!this.template) {
|
56
|
+
this.setError(new Error(BaseTemplateController.ERRORS.missingTemplate(tagName)));
|
57
|
+
return;
|
58
|
+
}
|
59
|
+
if (!this.allowEmpty && !this.template.innerHTML.trim()) {
|
60
|
+
this.setError(new Error(BaseTemplateController.ERRORS.emptyTemplate(tagName)));
|
61
|
+
return;
|
62
|
+
}
|
63
|
+
const warnings = this.getWarnings();
|
64
|
+
if (this.template.content.querySelector('script')) {
|
65
|
+
console.warn(warnings.scriptTag, this.host);
|
66
|
+
}
|
67
|
+
const { section, other } = groupNodesByType(this.template.content.childNodes);
|
68
|
+
if (section?.length && other?.length) {
|
69
|
+
console.warn(warnings.sectionMix, this.host, {
|
70
|
+
section,
|
71
|
+
other,
|
72
|
+
});
|
73
|
+
}
|
74
|
+
}
|
75
|
+
getWarnings() {
|
76
|
+
return {
|
77
|
+
scriptTag: 'Any "script" tags defined inside of "template" elements are not supported and will not be executed when the items are rendered.',
|
78
|
+
sectionMix: 'Item templates should only contain section elements or non-section elements, not both. Future updates could unpredictably affect this item template.',
|
79
|
+
};
|
80
|
+
}
|
81
|
+
getTemplateElement() {
|
82
|
+
return this.host.querySelector('template:not([slot])');
|
83
|
+
}
|
84
|
+
}
|
85
|
+
BaseTemplateController.ERRORS = {
|
86
|
+
invalidParent: (tagName, validParents) => `The "${tagName}" component has to be the child of one of the following: ${validParents
|
87
|
+
.map((p) => `"${p.toLowerCase()}"`)
|
88
|
+
.join(', ')}.`,
|
89
|
+
missingTemplate: (tagName) => `The "${tagName}" component must contain a "template" element as a child.`,
|
90
|
+
emptyTemplate: (tagName) => `The "template" tag inside "${tagName}" cannot be empty.`,
|
91
|
+
};
|
@@ -1,8 +1,7 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
3
|
-
import {
|
4
|
-
import {
|
5
|
-
import { isResultSectionNode } from '../layout/item-layout-sections';
|
1
|
+
import { isResultSectionNode } from "../layout/item-layout-sections";
|
2
|
+
import { tableElementTagName } from "../table-element-utils";
|
3
|
+
import { intersection } from "../../../utils/set";
|
4
|
+
import { isElementNode, isVisualNode } from "../../../utils/utils";
|
6
5
|
export function getTemplateNodeType(node) {
|
7
6
|
if (isResultSectionNode(node)) {
|
8
7
|
return 'section';
|
@@ -16,7 +15,7 @@ export function getTemplateNodeType(node) {
|
|
16
15
|
}
|
17
16
|
return 'other';
|
18
17
|
}
|
19
|
-
export function makeMatchConditions(mustMatch, mustNotMatch) {
|
18
|
+
export function makeMatchConditions(mustMatch, mustNotMatch, helpers) {
|
20
19
|
const conditions = [];
|
21
20
|
for (const field in mustMatch) {
|
22
21
|
if (mustNotMatch[field]) {
|
@@ -25,25 +24,25 @@ export function makeMatchConditions(mustMatch, mustNotMatch) {
|
|
25
24
|
const commonValues = intersection(mustNotMatchValues, mustMatchValues);
|
26
25
|
if (commonValues.size > 0) {
|
27
26
|
console.error(`Conflicting match conditions for field ${field}, the template will be ignored.`, commonValues);
|
28
|
-
return [() => false];
|
27
|
+
return [(() => false)];
|
29
28
|
}
|
30
29
|
}
|
31
|
-
conditions.push(
|
30
|
+
conditions.push(helpers.fieldMustMatch(field, mustMatch[field]));
|
32
31
|
}
|
33
32
|
for (const field in mustNotMatch) {
|
34
|
-
conditions.push(
|
33
|
+
conditions.push(helpers.fieldMustNotMatch(field, mustNotMatch[field]));
|
35
34
|
}
|
36
35
|
return conditions;
|
37
36
|
}
|
38
|
-
export function makeDefinedConditions(ifDefined, ifNotDefined) {
|
37
|
+
export function makeDefinedConditions(ifDefined, ifNotDefined, helpers) {
|
39
38
|
const conditions = [];
|
40
39
|
if (ifDefined) {
|
41
40
|
const fieldNames = ifDefined.split(',');
|
42
|
-
conditions.push(
|
41
|
+
conditions.push(helpers.fieldsMustBeDefined(fieldNames));
|
43
42
|
}
|
44
43
|
if (ifNotDefined) {
|
45
44
|
const fieldNames = ifNotDefined.split(',');
|
46
|
-
conditions.push(
|
45
|
+
conditions.push(helpers.fieldsMustNotBeDefined(fieldNames));
|
47
46
|
}
|
48
47
|
return conditions;
|
49
48
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"file":"dom-utils.js","mappings":"
|
1
|
+
{"file":"dom-utils.js","mappings":";;SAGgB,UAAU,CAAC,EAAW,EAAE,EAAW;IACjD,QACE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACb,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACb,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,KAAK;QACrB,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM,EACvB;AACJ,CAAC;SAEe,kBAAkB,CAAC,IAAgB;IACjD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC7B,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC;SAC/B,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;SAkBe,OAAO,CACrB,OAAuB,EACvB,QAAgB;IAEhB,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,IAAI,CAAC;KACb;IACD,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC7B,OAAO,OAAsB,CAAC;KAC/B;IACD,IAAI,OAAO,CAAC,UAAU,YAAY,UAAU,EAAE;QAC5C,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KACnD;IACD,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;AAClD;;;;","names":[],"sources":["src/utils/dom-utils.ts"],"sourcesContent":["import {getTemplateNodeType} from '@/src/components/common/template-controller/template-utils';\nimport {aggregate} from '@/src/utils/utils';\n\nexport function rectEquals(r1: DOMRect, r2: DOMRect) {\n return (\n r1.x === r2.x &&\n r1.y === r2.y &&\n r1.width === r2.width &&\n r1.height === r2.height\n );\n}\n\nexport function parentNodeToString(node: ParentNode): string {\n return Array.from(node.children)\n .map((child) => child.outerHTML)\n .join('');\n}\n\nexport function groupNodesByType(nodes: NodeList) {\n return aggregate(Array.from(nodes), (node) => getTemplateNodeType(node));\n}\n\nexport function closest<K extends keyof HTMLElementTagNameMap>(\n element: Element | null,\n selector: K\n): HTMLElementTagNameMap[K] | null;\nexport function closest<K extends keyof SVGElementTagNameMap>(\n element: Element | null,\n selector: K\n): SVGElementTagNameMap[K] | null;\nexport function closest<E extends Element = Element>(\n element: Element | null,\n selector: string\n): E | null;\nexport function closest(\n element: Element | null,\n selector: string\n): HTMLElement | null {\n if (!element) {\n return null;\n }\n if (element.matches(selector)) {\n return element as HTMLElement;\n }\n if (element.parentNode instanceof ShadowRoot) {\n return closest(element.parentNode.host, selector);\n }\n return closest(element.parentElement, selector);\n}\n"],"version":3}
|
package/dist/atomic/components/{result-template-common.js → stencil-result-template-common.js}
RENAMED
@@ -112,4 +112,4 @@ function makeDefinedConditions(ifDefined, ifNotDefined) {
|
|
112
112
|
|
113
113
|
export { ResultTemplateCommon as R, makeDefinedConditions as a, makeMatchConditions as m };
|
114
114
|
|
115
|
-
//# sourceMappingURL=result-template-common.js.map
|
115
|
+
//# sourceMappingURL=stencil-result-template-common.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"file":"stencil-result-template-common.js","mappings":";;;;;;SA0BgB,mBAAmB,CAAC,IAAU;IAC5C,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE;QAC7B,OAAO,SAAS,CAAC;KAClB;IACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;QACvB,OAAO,UAAU,CAAC;KACnB;IACD,IACE,aAAa,CAAC,IAAI,CAAC;QACnB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,mBAAmB,EAClD;QACA,OAAO,yBAAyB,CAAC;KAClC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAe;IACvC,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3E,CAAC;MAEY,oBAAoB;IAK/B,YAAY,EACV,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,UAAU,GAAG,KAAK,GACQ;QARrB,oBAAe,GAA8B,EAAE,CAAC;QAC/C,uBAAkB,GAAe,OAAO,CAAC;QAQ/C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;KACjE;IAED,gBAAgB,CACd,IAAoB,EACpB,QAAgC,EAChC,YAAsB,EACtB,UAAU,GAAG,IAAI;QAEjB,MAAM,cAAc,GAAG,YAAY;aAChC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;aAC3B,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAE5C,IAAI,CAAC,cAAc,EAAE;YACnB,QAAQ,CACN,IAAI,KAAK,CACP,QAAQ,OAAO,4DAA4D,YAAY;iBACpF,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC;iBAClC,IAAI,CAAC,IAAI,CAAC,GAAG,CACjB,CACF,CAAC;YACF,OAAO;SACR;QAED,IACE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,KAAK,KAAK,MAAM,EACxE;YACA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,YAAY,CACnE,uBAAuB,CACxB,EAAE,KAAmB,CAAC;SACxB;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CACjC,sBAAsB,CACvB,CAAC;QACF,IAAI,CAAC,QAAQ,EAAE;YACb,QAAQ,CACN,IAAI,KAAK,CACP,QAAQ,OAAO,6DAA6D,CAC7E,CACF,CAAC;YACF,OAAO;SACR;QAED,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE;YAC7C,QAAQ,CACN,IAAI,KAAK,CAAC,8BAA8B,OAAO,oBAAoB,CAAC,CACrE,CAAC;YACF,OAAO;SACR;QAED,IAAI,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE;YAC5C,OAAO,CAAC,IAAI,CACV,mIAAmI,EACnI,IAAI,CACL,CAAC;SACH;QAED,MAAM,EAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAC,GAAG,gBAAgB,CACjE,QAAQ,CAAC,OAAO,CAAC,UAAU,CAC5B,CAAC;QACF,IAAI,YAAY,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,EAAE;YAC9C,OAAO,CAAC,IAAI,CACV,gJAAgJ,EAChJ,IAAI,EACJ,EAAC,YAAY,EAAE,UAAU,EAAC,CAC3B,CAAC;SACH;KACF;IAED,WAAW,CACT,UAAqC,EACrC,KAAY;QAEZ,IAAI,KAAK,EAAE;YACT,OAAO,IAAI,CAAC;SACb;QAED,OAAO;YACL,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;YACnD,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAQ;YAC/C,WAAW,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAQ;YAC5D,QAAQ,EAAE,CAAC;SACZ,CAAC;KACH;IAED,aAAa,CAAC,KAAY;QACxB,IAAI,KAAK,EAAE;YACT,QACE,8BACE,OAAO,EAAE,IAAI,CAAC,IAAI,EAClB,KAAK,EAAE,KAAK,GACY,EAC1B;SACH;KACF;IAED,6BAA6B;QAC3B,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACxD,YAAY,CAAC,SAAS,GAAG,uBAAuB,IAAI,CAAC,kBAAkB,GAAG,gCAAgC,IAAI,CAAC,kBAAkB,QAAQ,GAAG,EAAE,uBAAuB,CAAC;QACtK,OAAO,YAAY,CAAC;KACrB;IAED,sBAAsB,CAAC,IAAiB;QACtC,QACE,IAAI,CAAC,aAAa,CAAsB,uBAAuB,CAAC;YAChE,IAAI,CAAC,6BAA6B,EAAE,EACpC;KACH;CACF;AAED,SAAS,kBAAkB,CAAC,IAAiB;IAC3C,OAAO,IAAI,CAAC,aAAa,CAAsB,sBAAsB,CAAE,CAAC;AAC1E,CAAC;SAEe,mBAAmB,CACjC,SAAmC,EACnC,YAAsC;IAEtC,MAAM,UAAU,GAA8B,EAAE,CAAC;IACjD,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE;QAC7B,UAAU,CAAC,IAAI,CACb,sBAAsB,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAC/D,CAAC;KACH;IAED,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE;QAChC,UAAU,CAAC,IAAI,CACb,sBAAsB,CAAC,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CACrE,CAAC;KACH;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;SAEe,qBAAqB,CACnC,SAAkB,EAClB,YAAqB;IAErB,MAAM,UAAU,GAA8B,EAAE,CAAC;IACjD,IAAI,SAAS,EAAE;QACb,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,UAAU,CAAC,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC;KACzE;IAED,IAAI,YAAY,EAAE;QAChB,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3C,UAAU,CAAC,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAC;KAC5E;IACD,OAAO,UAAU,CAAC;AACpB;;;;","names":[],"sources":["src/components/common/result-templates/stencil-result-template-common.tsx"],"sourcesContent":["import {\n ResultTemplate,\n ResultTemplateCondition,\n ResultTemplatesHelpers,\n} from '@coveo/headless';\nimport {h} from '@stencil/core';\nimport {aggregate, isElementNode, isVisualNode} from '@/src/utils/utils';\nimport {tableElementTagName} from '../table-element-utils';\nimport {ItemTarget} from '../layout/display-options';\nimport {isResultSectionNode} from '../layout/item-layout-sections';\n\nexport type TemplateContent = DocumentFragment;\n\ninterface ResultTemplateCommonProps {\n allowEmpty?: boolean;\n host: HTMLDivElement;\n validParents: string[];\n setError: (error: Error) => void;\n}\n\ntype TemplateNodeType =\n | 'section'\n | 'metadata'\n | 'table-column-definition'\n | 'other';\n\nexport function getTemplateNodeType(node: Node): TemplateNodeType {\n if (isResultSectionNode(node)) {\n return 'section';\n }\n if (!isVisualNode(node)) {\n return 'metadata';\n }\n if (\n isElementNode(node) &&\n node.tagName.toLowerCase() === tableElementTagName\n ) {\n return 'table-column-definition';\n }\n return 'other';\n}\n\nfunction groupNodesByType(nodes: NodeList) {\n return aggregate(Array.from(nodes), (node) => getTemplateNodeType(node));\n}\n\nexport class ResultTemplateCommon {\n private host: HTMLDivElement;\n public matchConditions: ResultTemplateCondition[] = [];\n private gridCellLinkTarget: ItemTarget = '_self';\n\n constructor({\n host,\n setError,\n validParents,\n allowEmpty = false,\n }: ResultTemplateCommonProps) {\n this.host = host;\n this.validateTemplate(host, setError, validParents, allowEmpty);\n }\n\n validateTemplate(\n host: HTMLDivElement,\n setError: (error: Error) => void,\n validParents: string[],\n allowEmpty = true\n ) {\n const hasValidParent = validParents\n .map((p) => p.toUpperCase())\n .includes(host.parentElement?.nodeName || '');\n const tagName = host.nodeName.toLowerCase();\n\n if (!hasValidParent) {\n setError(\n new Error(\n `The \"${tagName}\" component has to be the child of one of the following: ${validParents\n .map((p) => `\"${p.toLowerCase()}\"`)\n .join(', ')}.`\n )\n );\n return;\n }\n\n if (\n host.parentElement?.attributes.getNamedItem('display')?.value === 'grid'\n ) {\n this.gridCellLinkTarget = host.parentElement?.attributes.getNamedItem(\n 'grid-cell-link-target'\n )?.value as ItemTarget;\n }\n\n const template = host.querySelector<HTMLTemplateElement>(\n 'template:not([slot])'\n );\n if (!template) {\n setError(\n new Error(\n `The \"${tagName}\" component has to contain a \"template\" element as a child.`\n )\n );\n return;\n }\n\n if (!allowEmpty && !template.innerHTML.trim()) {\n setError(\n new Error(`The \"template\" tag inside \"${tagName}\" cannot be empty.`)\n );\n return;\n }\n\n if (template.content.querySelector('script')) {\n console.warn(\n 'Any \"script\" tags defined inside of \"template\" elements are not supported and will not be executed when the results are rendered.',\n host\n );\n }\n\n const {section: sectionNodes, other: otherNodes} = groupNodesByType(\n template.content.childNodes\n );\n if (sectionNodes?.length && otherNodes?.length) {\n console.warn(\n 'Result templates should only contain section elements or non-section elements. Future updates could unpredictably affect this result template.',\n host,\n {sectionNodes, otherNodes}\n );\n }\n }\n\n getTemplate(\n conditions: ResultTemplateCondition[],\n error: Error\n ): ResultTemplate<TemplateContent> | null {\n if (error) {\n return null;\n }\n\n return {\n conditions: conditions.concat(this.matchConditions),\n content: getTemplateElement(this.host).content!,\n linkContent: this.getLinkTemplateElement(this.host).content!,\n priority: 1,\n };\n }\n\n renderIfError(error: Error) {\n if (error) {\n return (\n <atomic-component-error\n element={this.host}\n error={error}\n ></atomic-component-error>\n );\n }\n }\n\n getDefaultLinkTemplateElement() {\n const linkTemplate = document.createElement('template');\n linkTemplate.innerHTML = `<atomic-result-link>${this.gridCellLinkTarget ? `<a slot=\"attributes\" target=\"${this.gridCellLinkTarget}\"></a>` : ''}</atomic-result-link>`;\n return linkTemplate;\n }\n\n getLinkTemplateElement(host: HTMLElement) {\n return (\n host.querySelector<HTMLTemplateElement>('template[slot=\"link\"]') ??\n this.getDefaultLinkTemplateElement()\n );\n }\n}\n\nfunction getTemplateElement(host: HTMLElement) {\n return host.querySelector<HTMLTemplateElement>('template:not([slot])')!;\n}\n\nexport function makeMatchConditions(\n mustMatch: Record<string, string[]>,\n mustNotMatch: Record<string, string[]>\n): ResultTemplateCondition[] {\n const conditions: ResultTemplateCondition[] = [];\n for (const field in mustMatch) {\n conditions.push(\n ResultTemplatesHelpers.fieldMustMatch(field, mustMatch[field])\n );\n }\n\n for (const field in mustNotMatch) {\n conditions.push(\n ResultTemplatesHelpers.fieldMustNotMatch(field, mustNotMatch[field])\n );\n }\n return conditions;\n}\n\nexport function makeDefinedConditions(\n ifDefined?: string,\n ifNotDefined?: string\n): ResultTemplateCondition[] {\n const conditions: ResultTemplateCondition[] = [];\n if (ifDefined) {\n const fieldNames = ifDefined.split(',');\n conditions.push(ResultTemplatesHelpers.fieldsMustBeDefined(fieldNames));\n }\n\n if (ifNotDefined) {\n const fieldNames = ifNotDefined.split(',');\n conditions.push(ResultTemplatesHelpers.fieldsMustNotBeDefined(fieldNames));\n }\n return conditions;\n}\n"],"version":3}
|
@@ -1 +1 @@
|
|
1
|
-
{"file":"table-element-utils.js","mappings":"MAAa,mBAAmB,GAAG;;;;","names":[],"sources":["src/components/
|
1
|
+
{"file":"table-element-utils.js","mappings":"MAAa,mBAAmB,GAAG;;;;","names":[],"sources":["src/components/common/table-element-utils.ts"],"sourcesContent":["export const tableElementTagName = 'atomic-table-element';\n"],"version":3}
|
@@ -1,3 +1,5 @@
|
|
1
|
+
import { getTemplateNodeType } from "../components/common/template-controller/template-utils";
|
2
|
+
import { aggregate } from "./utils";
|
1
3
|
export function rectEquals(r1, r2) {
|
2
4
|
return (r1.x === r2.x &&
|
3
5
|
r1.y === r2.y &&
|
@@ -9,6 +11,9 @@ export function parentNodeToString(node) {
|
|
9
11
|
.map((child) => child.outerHTML)
|
10
12
|
.join('');
|
11
13
|
}
|
14
|
+
export function groupNodesByType(nodes) {
|
15
|
+
return aggregate(Array.from(nodes), (node) => getTemplateNodeType(node));
|
16
|
+
}
|
12
17
|
export function closest(element, selector) {
|
13
18
|
if (!element) {
|
14
19
|
return null;
|
package/dist/atomic/index.esm.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
import{c as o}from"./p-
|
1
|
+
import{c as o}from"./p-6ef684df.js";import{b as t}from"./p-1580513b.js";import{i as s}from"./p-201b58b3.js";export{e as elementHasNoQuery,a as elementHasQuery}from"./p-0a051b8d.js";export{r as resultContext}from"./p-3b52e039.js";export{i as initializeBindings}from"./p-03e01aef.js";export{b as bindLogDocumentOpenOnResult}from"./p-c3cb3e0c.js";export{M as MissingInterfaceParentError}from"./p-f983e811.js";import"./p-f284897c.js";import"./p-0462f723.js";import"./p-dc3df5ce.js";import"./p-05de7ca3.js";import"@coveo/headless";class n extends Error{constructor(e,o){super(`The "${e}" element must be the child of an "${o}" element.`)}}const c="atomic/resolveResult";function m(e,s){return new Promise(((r,i)=>{const a=t(c,(e=>r(e)));e.dispatchEvent(a);if(!o(e,s)){i(new n(e.nodeName.toLowerCase(),s))}}))}function p(e){return m(e,"atomic-product")}function f(e){return s(e,"atomic-product")}const l=(e,t,s=u)=>{const r=o(t,u.join(", "));if(!r){throw new Error(`The "${t.nodeName.toLowerCase()}" component was not handled, as it is not a child of the following elements: ${s.join(", ")}`)}void h(r,t,e)};const u=["atomic-search-box","atomic-insight-search-box","atomic-commerce-search-box"];const d=e=>"updateComplete"in e&&e.updateComplete instanceof Promise;const h=async(e,o,s)=>{await customElements.whenDefined(e.nodeName.toLowerCase());if(d(e)){await e.updateComplete}else if("componentOnReady"in e){await e.componentOnReady()}o.dispatchEvent(t("atomic/searchBoxSuggestion/register",s))};export{l as dispatchSearchBoxSuggestionsEvent,p as fetchProductContext,f as productContext};
|
2
2
|
//# sourceMappingURL=index.esm.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["MissingParentError","Error","constructor","elementName","parentName","super","itemContextEventName","fetchItemContext","element","Promise","resolve","reject","event","buildCustomEvent","item","dispatchEvent","closest","nodeName","toLowerCase","fetchProductContext","productContext","itemContext","dispatchSearchBoxSuggestionsEvent","allowedSearchBoxElements","searchBoxElements","interfaceElement","join","dispatchSearchBoxSuggestionsEventEventually","isLitElementLoosely","candidate","updateComplete","async","customElements","whenDefined","componentOnReady"],"sources":["src/components/common/item-list/context/item-context-controller.ts","src/components/common/item-list/fetch-item-context.ts","src/components/commerce/product-template-component-utils/context/fetch-product-context.ts","src/components/commerce/product-template-component-utils/context/stencil-product-template-decorators.tsx","src/components/common/suggestions/suggestions-events.ts"],"sourcesContent":["import type {LitElement, ReactiveController, ReactiveControllerHost} from 'lit';\nimport type {InitializableComponent} from '@/src/decorators/types.js';\nimport {buildCustomEvent} from '@/src/utils/event-utils';\n\ntype LitElementWithError = Omit<\n Pick<InitializableComponent, 'error'>,\n 'error'\n> &\n LitElement & {\n error: Error | null;\n };\n\nconst itemContextEventName = 'atomic/resolveResult';\n\nexport class MissingParentError extends Error {\n constructor(elementName: string, parentName: string) {\n super(\n `The \"${elementName}\" element must be the child of an \"${parentName}\" element.`\n );\n }\n}\n\nfunction extractFolded<T = Record<string, unknown>>(\n item: Record<string, unknown>,\n returnFolded: boolean\n): T {\n if (returnFolded) {\n if ('children' in item) {\n return item as T;\n } else {\n return {children: [], result: item} as T;\n }\n }\n\n if ('children' in item && 'result' in item) {\n return item.result as T;\n }\n return item as T;\n}\n\n/**\n * A reactive controller that manages item context data from parent components.\n * Handles fetching item data via custom events and manages error states.\n */\nexport class ItemContextController<T = Record<string, unknown>>\n implements ReactiveController\n{\n private host: ReactiveControllerHost & LitElementWithError;\n private parentName: string;\n private folded: boolean;\n private _item: T | null = null;\n private _error: MissingParentError | null = null;\n\n constructor(\n host: ReactiveControllerHost & LitElementWithError,\n options: {parentName?: string; folded?: boolean} = {}\n ) {\n this.host = host;\n this.parentName = options.parentName ?? 'atomic-result';\n this.folded = options.folded ?? false;\n host.addController(this);\n }\n\n get item(): T | null {\n return this._error ? null : this._item;\n }\n\n get error(): MissingParentError | null {\n return this._error;\n }\n\n get hasError(): boolean {\n return this._error !== null;\n }\n\n hostConnected(): void {\n this._resolveItemContext();\n }\n\n private _resolveItemContext(): void {\n const event = buildCustomEvent(\n itemContextEventName,\n (item: Record<string, unknown>) => {\n this._item = extractFolded<T>(item, this.folded);\n this._error = null;\n this.host.error = null;\n this.host.requestUpdate();\n }\n );\n\n const canceled = this.host.dispatchEvent(event);\n if (canceled) {\n const elementName = (this.host as Element).nodeName.toLowerCase();\n this._error = new MissingParentError(elementName, this.parentName);\n this._item = null;\n this.host.error = this._error;\n this.host.requestUpdate();\n }\n }\n}\n\ntype ItemContextEventHandler<T> = (item: T) => void;\nexport type ItemContextEvent<T> = CustomEvent<ItemContextEventHandler<T>>;\n","import {closest} from '../../../utils/dom-utils.js';\nimport {buildCustomEvent} from '../../../utils/event-utils.js';\nimport {MissingParentError} from './context/item-context-controller.js';\n\nconst itemContextEventName = 'atomic/resolveResult';\n\ntype ItemContextEventHandler<T> = (item: T) => void;\n\nexport function fetchItemContext<T>(element: Element, parentName: string) {\n return new Promise<T>((resolve, reject) => {\n const event = buildCustomEvent<ItemContextEventHandler<T>>(\n itemContextEventName,\n (item: T) => {\n return resolve(item);\n }\n );\n element.dispatchEvent(event);\n\n if (!closest(element, parentName)) {\n reject(\n new MissingParentError(element.nodeName.toLowerCase(), parentName)\n );\n }\n });\n}\n","import type {Product} from '@coveo/headless/commerce';\nimport {fetchItemContext} from '@/src/components/common/item-list/fetch-item-context';\n\n/**\n * Retrieves `Product` on a rendered `atomic-product`.\n *\n * This utility function is useful for building custom product template elements, see [Create a Product List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-product-template-component-example) for more information.\n *\n * You should use the utility function 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-product`.\n * @returns A promise that resolves on initialization of the parent `atomic-product` element, or rejects when there is no parent `atomic-product` element.\n */\nexport function fetchProductContext<T extends Product>(element: Element) {\n return fetchItemContext<T>(element, 'atomic-product');\n}\n","import {Product} from '@coveo/headless/commerce';\nimport {itemContext} from '@/src/components/common/item-list/stencil-item-decorators';\n\n/**\n * Retrieves `Product` on a rendered `atomic-product`.\n *\n * This method is useful for building custom product template elements, see [Create a Product List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-product-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-product\".\n * @returns A promise that resolves on initialization of the parent \"atomic-product\" element, or rejects when there is no parent \"atomic-product\" element.\n *\n * @deprecated should only be used for Stencil components. For Lit components, use `fetchProductContext` from \\@/src/components/commerce/product-template-component-utils/context/fetch-product-context.ts\n */\nexport function productContext<T extends Product>(element: Element) {\n return itemContext<T>(element, 'atomic-product');\n}\n","import type {HTMLStencilElement} from '@stencil/core/internal';\nimport type {LitElement} from 'lit';\nimport {closest} from '../../../utils/dom-utils';\nimport {buildCustomEvent} from '../../../utils/event-utils';\nimport type {AnyBindings} from '../interface/bindings';\nimport type {SearchBoxSuggestionsEvent} from './suggestions-types';\n\n/**\n * Dispatches an event which retrieves the `SearchBoxSuggestionsBindings` on a configured parent search box.\n *\n * @param event Event sent from the registered query suggestions to the parent search box\n * @param element Element on which to dispatch the event, which must be the child of a configured search box\n * @param allowedSearchBoxElements Optional array of allowed search box element selectors\n *\n * @throws Error if the element is not a child of an allowed search box element\n */\nexport const dispatchSearchBoxSuggestionsEvent = <\n SearchBoxController,\n Bindings = AnyBindings,\n>(\n event: SearchBoxSuggestionsEvent<SearchBoxController, Bindings>,\n element: HTMLElement,\n allowedSearchBoxElements: readonly (typeof searchBoxElements)[number][] = searchBoxElements\n) => {\n const interfaceElement = closest(element, searchBoxElements.join(', '));\n if (!interfaceElement) {\n throw new Error(\n `The \"${element.nodeName.toLowerCase()}\" component was not handled, as it is not a child of the following elements: ${allowedSearchBoxElements.join(\n ', '\n )}`\n );\n }\n void dispatchSearchBoxSuggestionsEventEventually(\n interfaceElement,\n element,\n event\n );\n};\n\nconst searchBoxElements = [\n 'atomic-search-box',\n 'atomic-insight-search-box',\n 'atomic-commerce-search-box',\n] as const;\n\nconst isLitElementLoosely = (candidate: unknown): candidate is LitElement =>\n 'updateComplete' in (candidate as LitElement) &&\n (candidate as LitElement).updateComplete instanceof Promise;\n\nconst dispatchSearchBoxSuggestionsEventEventually = async <\n SearchBoxController,\n Bindings = AnyBindings,\n>(\n interfaceElement: Element,\n element: HTMLElement,\n event: SearchBoxSuggestionsEvent<SearchBoxController, Bindings>\n) => {\n await customElements.whenDefined(interfaceElement.nodeName.toLowerCase());\n if (isLitElementLoosely(interfaceElement)) {\n await interfaceElement.updateComplete;\n } else if ('componentOnReady' in interfaceElement) {\n await (interfaceElement as HTMLStencilElement).componentOnReady();\n }\n element.dispatchEvent(\n buildCustomEvent('atomic/searchBoxSuggestion/register', event)\n );\n};\n"],"mappings":"oeAcaA,UAA2BC,MACtC,WAAAC,CAAYC,EAAqBC,GAC/BC,MACE,QAAQF,uCAAiDC,c,ECb/D,MAAME,EAAuB,uB,SAIbC,EAAoBC,EAAkBJ,GACpD,OAAO,IAAIK,SAAW,CAACC,EAASC,KAC9B,MAAMC,EAAQC,EACZP,GACCQ,GACQJ,EAAQI,KAGnBN,EAAQO,cAAcH,GAEtB,IAAKI,EAAQR,EAASJ,GAAa,CACjCO,EACE,IAAIX,EAAmBQ,EAAQS,SAASC,cAAed,G,IAI/D,C,SCXgBe,EAAuCX,GACrD,OAAOD,EAAoBC,EAAS,iBACtC,C,SCAgBY,EAAkCZ,GAChD,OAAOa,EAAeb,EAAS,iBACjC,C,MCDac,EAAoC,CAI/CV,EACAJ,EACAe,EAA0EC,KAE1E,MAAMC,EAAmBT,EAAQR,EAASgB,EAAkBE,KAAK,OACjE,IAAKD,EAAkB,CACrB,MAAM,IAAIxB,MACR,QAAQO,EAAQS,SAASC,6FAA6FK,EAAyBG,KAC7I,Q,MAIDC,EACHF,EACAjB,EACAI,EACD,EAGH,MAAMY,EAAoB,CACxB,oBACA,4BACA,8BAGF,MAAMI,EAAuBC,GAC3B,mBAAqBA,GACpBA,EAAyBC,0BAA0BrB,QAEtD,MAAMkB,EAA8CI,MAIlDN,EACAjB,EACAI,WAEMoB,eAAeC,YAAYR,EAAiBR,SAASC,eAC3D,GAAIU,EAAoBH,GAAmB,OACnCA,EAAiBK,c,MAClB,GAAI,qBAAsBL,EAAkB,OAC1CA,EAAwCS,kB,CAEjD1B,EAAQO,cACNF,EAAiB,sCAAuCD,GACzD,S","ignoreList":[]}
|
1
|
+
{"version":3,"names":["MissingParentError","Error","constructor","elementName","parentName","super","itemContextEventName","fetchItemContext","element","Promise","resolve","reject","event","buildCustomEvent","item","dispatchEvent","closest","nodeName","toLowerCase","fetchProductContext","productContext","itemContext","dispatchSearchBoxSuggestionsEvent","allowedSearchBoxElements","searchBoxElements","interfaceElement","join","dispatchSearchBoxSuggestionsEventEventually","isLitElementLoosely","candidate","updateComplete","async","customElements","whenDefined","componentOnReady"],"sources":["src/components/common/item-list/context/item-context-controller.ts","src/components/common/item-list/fetch-item-context.ts","src/components/commerce/product-template-component-utils/context/fetch-product-context.ts","src/components/commerce/product-template-component-utils/context/stencil-product-template-decorators.tsx","src/components/common/suggestions/suggestions-events.ts"],"sourcesContent":["import type {LitElement, ReactiveController, ReactiveControllerHost} from 'lit';\nimport type {InitializableComponent} from '@/src/decorators/types.js';\nimport {buildCustomEvent} from '@/src/utils/event-utils';\n\ntype LitElementWithError = Omit<\n Pick<InitializableComponent, 'error'>,\n 'error'\n> &\n LitElement & {\n error: Error | null;\n };\n\nconst itemContextEventName = 'atomic/resolveResult';\n\nexport class MissingParentError extends Error {\n constructor(elementName: string, parentName: string) {\n super(\n `The \"${elementName}\" element must be the child of an \"${parentName}\" element.`\n );\n }\n}\n\nfunction extractFolded<T = Record<string, unknown>>(\n item: Record<string, unknown>,\n returnFolded: boolean\n): T {\n if (returnFolded) {\n if ('children' in item) {\n return item as T;\n } else {\n return {children: [], result: item} as T;\n }\n }\n\n if ('children' in item && 'result' in item) {\n return item.result as T;\n }\n return item as T;\n}\n\n/**\n * A reactive controller that manages item context data from parent components.\n * Handles fetching item data via custom events and manages error states.\n */\nexport class ItemContextController<T = Record<string, unknown>>\n implements ReactiveController\n{\n private host: ReactiveControllerHost & LitElementWithError;\n private parentName: string;\n private folded: boolean;\n private _item: T | null = null;\n private _error: MissingParentError | null = null;\n\n constructor(\n host: ReactiveControllerHost & LitElementWithError,\n options: {parentName?: string; folded?: boolean} = {}\n ) {\n this.host = host;\n this.parentName = options.parentName ?? 'atomic-result';\n this.folded = options.folded ?? false;\n host.addController(this);\n }\n\n get item(): T | null {\n return this._error ? null : this._item;\n }\n\n get error(): MissingParentError | null {\n return this._error;\n }\n\n get hasError(): boolean {\n return this._error !== null;\n }\n\n hostConnected(): void {\n this._resolveItemContext();\n }\n\n private _resolveItemContext(): void {\n const event = buildCustomEvent(\n itemContextEventName,\n (item: Record<string, unknown>) => {\n this._item = extractFolded<T>(item, this.folded);\n this._error = null;\n this.host.error = null;\n this.host.requestUpdate();\n }\n );\n\n const canceled = this.host.dispatchEvent(event);\n if (canceled) {\n const elementName = (this.host as Element).nodeName.toLowerCase();\n this._error = new MissingParentError(elementName, this.parentName);\n this._item = null;\n this.host.error = this._error;\n this.host.requestUpdate();\n }\n }\n}\n\ntype ItemContextEventHandler<T> = (item: T) => void;\nexport type ItemContextEvent<T> = CustomEvent<ItemContextEventHandler<T>>;\n","import {closest} from '../../../utils/dom-utils.js';\nimport {buildCustomEvent} from '../../../utils/event-utils.js';\nimport {MissingParentError} from './context/item-context-controller.js';\n\nconst itemContextEventName = 'atomic/resolveResult';\n\ntype ItemContextEventHandler<T> = (item: T) => void;\n\nexport function fetchItemContext<T>(element: Element, parentName: string) {\n return new Promise<T>((resolve, reject) => {\n const event = buildCustomEvent<ItemContextEventHandler<T>>(\n itemContextEventName,\n (item: T) => {\n return resolve(item);\n }\n );\n element.dispatchEvent(event);\n\n if (!closest(element, parentName)) {\n reject(\n new MissingParentError(element.nodeName.toLowerCase(), parentName)\n );\n }\n });\n}\n","import type {Product} from '@coveo/headless/commerce';\nimport {fetchItemContext} from '@/src/components/common/item-list/fetch-item-context';\n\n/**\n * Retrieves `Product` on a rendered `atomic-product`.\n *\n * This utility function is useful for building custom product template elements, see [Create a Product List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-product-template-component-example) for more information.\n *\n * You should use the utility function 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-product`.\n * @returns A promise that resolves on initialization of the parent `atomic-product` element, or rejects when there is no parent `atomic-product` element.\n */\nexport function fetchProductContext<T extends Product>(element: Element) {\n return fetchItemContext<T>(element, 'atomic-product');\n}\n","import {Product} from '@coveo/headless/commerce';\nimport {itemContext} from '@/src/components/common/item-list/stencil-item-decorators';\n\n/**\n * Retrieves `Product` on a rendered `atomic-product`.\n *\n * This method is useful for building custom product template elements, see [Create a Product List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-product-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-product\".\n * @returns A promise that resolves on initialization of the parent \"atomic-product\" element, or rejects when there is no parent \"atomic-product\" element.\n *\n * @deprecated should only be used for Stencil components. For Lit components, use `fetchProductContext` from \\@/src/components/commerce/product-template-component-utils/context/fetch-product-context.ts\n */\nexport function productContext<T extends Product>(element: Element) {\n return itemContext<T>(element, 'atomic-product');\n}\n","import type {HTMLStencilElement} from '@stencil/core/internal';\nimport type {LitElement} from 'lit';\nimport {closest} from '../../../utils/dom-utils';\nimport {buildCustomEvent} from '../../../utils/event-utils';\nimport type {AnyBindings} from '../interface/bindings';\nimport type {SearchBoxSuggestionsEvent} from './suggestions-types';\n\n/**\n * Dispatches an event which retrieves the `SearchBoxSuggestionsBindings` on a configured parent search box.\n *\n * @param event Event sent from the registered query suggestions to the parent search box\n * @param element Element on which to dispatch the event, which must be the child of a configured search box\n * @param allowedSearchBoxElements Optional array of allowed search box element selectors\n *\n * @throws Error if the element is not a child of an allowed search box element\n */\nexport const dispatchSearchBoxSuggestionsEvent = <\n SearchBoxController,\n Bindings = AnyBindings,\n>(\n event: SearchBoxSuggestionsEvent<SearchBoxController, Bindings>,\n element: HTMLElement,\n allowedSearchBoxElements: readonly (typeof searchBoxElements)[number][] = searchBoxElements\n) => {\n const interfaceElement = closest(element, searchBoxElements.join(', '));\n if (!interfaceElement) {\n throw new Error(\n `The \"${element.nodeName.toLowerCase()}\" component was not handled, as it is not a child of the following elements: ${allowedSearchBoxElements.join(\n ', '\n )}`\n );\n }\n void dispatchSearchBoxSuggestionsEventEventually(\n interfaceElement,\n element,\n event\n );\n};\n\nconst searchBoxElements = [\n 'atomic-search-box',\n 'atomic-insight-search-box',\n 'atomic-commerce-search-box',\n] as const;\n\nconst isLitElementLoosely = (candidate: unknown): candidate is LitElement =>\n 'updateComplete' in (candidate as LitElement) &&\n (candidate as LitElement).updateComplete instanceof Promise;\n\nconst dispatchSearchBoxSuggestionsEventEventually = async <\n SearchBoxController,\n Bindings = AnyBindings,\n>(\n interfaceElement: Element,\n element: HTMLElement,\n event: SearchBoxSuggestionsEvent<SearchBoxController, Bindings>\n) => {\n await customElements.whenDefined(interfaceElement.nodeName.toLowerCase());\n if (isLitElementLoosely(interfaceElement)) {\n await interfaceElement.updateComplete;\n } else if ('componentOnReady' in interfaceElement) {\n await (interfaceElement as HTMLStencilElement).componentOnReady();\n }\n element.dispatchEvent(\n buildCustomEvent('atomic/searchBoxSuggestion/register', event)\n );\n};\n"],"mappings":"ohBAcaA,UAA2BC,MACtC,WAAAC,CAAYC,EAAqBC,GAC/BC,MACE,QAAQF,uCAAiDC,c,ECb/D,MAAME,EAAuB,uB,SAIbC,EAAoBC,EAAkBJ,GACpD,OAAO,IAAIK,SAAW,CAACC,EAASC,KAC9B,MAAMC,EAAQC,EACZP,GACCQ,GACQJ,EAAQI,KAGnBN,EAAQO,cAAcH,GAEtB,IAAKI,EAAQR,EAASJ,GAAa,CACjCO,EACE,IAAIX,EAAmBQ,EAAQS,SAASC,cAAed,G,IAI/D,C,SCXgBe,EAAuCX,GACrD,OAAOD,EAAoBC,EAAS,iBACtC,C,SCAgBY,EAAkCZ,GAChD,OAAOa,EAAeb,EAAS,iBACjC,C,MCDac,EAAoC,CAI/CV,EACAJ,EACAe,EAA0EC,KAE1E,MAAMC,EAAmBT,EAAQR,EAASgB,EAAkBE,KAAK,OACjE,IAAKD,EAAkB,CACrB,MAAM,IAAIxB,MACR,QAAQO,EAAQS,SAASC,6FAA6FK,EAAyBG,KAC7I,Q,MAIDC,EACHF,EACAjB,EACAI,EACD,EAGH,MAAMY,EAAoB,CACxB,oBACA,4BACA,8BAGF,MAAMI,EAAuBC,GAC3B,mBAAqBA,GACpBA,EAAyBC,0BAA0BrB,QAEtD,MAAMkB,EAA8CI,MAIlDN,EACAjB,EACAI,WAEMoB,eAAeC,YAAYR,EAAiBR,SAASC,eAC3D,GAAIU,EAAoBH,GAAmB,OACnCA,EAAiBK,c,MAClB,GAAI,qBAAsBL,EAAkB,OAC1CA,EAAwCS,kB,CAEjD1B,EAAQO,cACNF,EAAiB,sCAAuCD,GACzD,S","ignoreList":[]}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import{u as t}from"./p-
|
1
|
+
import{u as t}from"./p-d537096a.js";import{g as s}from"./p-0580b866.js";import{o as i,d as e}from"./p-f537c5af.js";const h="result-component";class n{constructor(s){this.props=s;this.props.store.setLoadingFlag(this.props.loadingFlag);this.props.store.state.resultList=this;this.updateBreakpointsOnce=i((()=>t(this.props.host)));this.props.nextNewItemTarget.registerFocusCallback((()=>{this.indexOfResultToFocus=undefined}))}updateBreakpoints(){this.updateBreakpointsOnce()}getResultId(t,s,i,e){return`${t}${s}${i}${e}`}setNewResultRef(t,i){if(i===0){this.firstResultEl=t}if(i!==this.indexOfResultToFocus){return}if(!t.children.length&&!t.shadowRoot?.children.length){return}this.indexOfResultToFocus=undefined;const e=s(t)??t;this.props.nextNewItemTarget.setTarget(e)}focusOnNextNewResult(){this.indexOfResultToFocus=this.props.getCurrentNumberOfItems();this.props.nextNewItemTarget.focusOnNextTarget()}async focusOnFirstResultAfterNextSearch(){await e();return new Promise((t=>{if(this.props.getIsLoading()){this.firstResultEl=undefined}const i=this.props.engineSubscribe((async()=>{await e();if(!this.props.getIsLoading()&&this.firstResultEl){const e=s(this.firstResultEl)??this.firstResultEl;this.props.nextNewItemTarget.setTarget(e);this.props.nextNewItemTarget.focus();this.firstResultEl=undefined;i();t()}}))}))}}export{n as I,h as r};
|
2
2
|
//# sourceMappingURL=p-025a346a.js.map
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import{h as t,H as i,g as n,f as e}from"./p-dc3df5ce.js";import{c as s}from"./p-
|
2
|
-
//# sourceMappingURL=p-
|
1
|
+
import{h as t,H as i,g as n,f as e}from"./p-dc3df5ce.js";import{c as s}from"./p-6ef684df.js";import{b as o}from"./p-1580513b.js";import{e as r}from"./p-05de7ca3.js";import{M as a,f as c,i as h,a as f}from"./p-f983e811.js";const d=()=>t(i,{class:"atomic-hidden"});function l(t){return c(t)}const u="data-atomic-rendered";const p="data-atomic-loaded";function m({forceUpdate:i}={}){return(c,l)=>{const{componentWillLoad:m,render:g,componentDidRender:b,componentDidLoad:C,disconnectedCallback:j}=c;let y=()=>{};if(l!=="bindings"){return console.error(`The InitializeBindings decorator should be used on a property called "bindings", and not "${l}"`,c)}c.componentWillLoad=function(){const t=n(this);t.setAttribute(u,"false");t.setAttribute(p,"false");const c=o(h,(t=>{this.bindings=t;const n=()=>e(this);this.bindings.i18n.on("languageChanged",n);y=()=>this.bindings.i18n.off("languageChanged",n);try{if(this.initialize){this.initialize();if(i){e(this)}}else{e(this)}}catch(t){this.error=t}}));const d=s(t,f.join(", "));if(!d){this.error=new a(t.nodeName.toLowerCase());return}r(d,c,t);return m&&m.call(this)};c.render=function(){if(this.error){return t("atomic-component-error",{element:n(this),error:this.error})}if(!this.bindings){return t(d,null)}n(this).setAttribute(u,"true");return g&&g.call(this)};c.disconnectedCallback=function(){const t=n(this);t.setAttribute(u,"false");t.setAttribute(p,"false");y();j&&j.call(this)};c.componentDidRender=function(){const t=n(this);if(t.getAttribute(u)==="false"){return}b&&b.call(this);if(t.getAttribute(p)==="false"){t.setAttribute(p,"true");C&&C.call(this)}};c.componentDidLoad=function(){}}}function g(t,i){return(e,s)=>{const{disconnectedCallback:o,initialize:r}=e;e.initialize=function(){r&&r.call(this);if(!r){return console.error(`ControllerState: The "initialize" method has to be defined and instantiate a controller for the property ${t}`,e)}if(!this[t]){return}if(i?.onUpdateCallbackMethod&&!this[i.onUpdateCallbackMethod]){return console.error(`ControllerState: The onUpdateCallbackMethod property "${i.onUpdateCallbackMethod}" is not defined`,e)}this.unsubscribeController=this[t].subscribe((()=>{this[s]=this[t].state;i?.onUpdateCallbackMethod&&this[i.onUpdateCallbackMethod]()}))};e.disconnectedCallback=function(){!n(this).isConnected&&this.unsubscribeController?.();o&&o.call(this)}}}export{g as B,d as H,m as I,l as i};
|
2
|
+
//# sourceMappingURL=p-03e01aef.js.map
|